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=-10.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS autolearn=unavailable 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 5E1A7C433E4 for ; Fri, 10 Jul 2020 14:47:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 32E8720772 for ; Fri, 10 Jul 2020 14:47:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1594392445; bh=BEOaYKIIWHlyZRzRdR8yUTloDj/zIw09diRoNlX/Av4=; h=Date:From:To:Cc:Subject:References:In-Reply-To:List-ID:From; b=c58+jFisphJYo9/5V+yvm5uQEaowFW0Fbp0sBqdQinUo90/v6ykGVVa+cGaNyof9H IdfxKwj91oeKmdIBBgP8PvcMSyC84h0TCmIFc6ws9Re2Nn4qknyp0NaBUeUNJVTuuI 9F1PNiT5HF4KzmXZCd9jJOSqdt+KjEKlY6eNzAEg= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726832AbgGJOrY convert rfc822-to-8bit (ORCPT ); Fri, 10 Jul 2020 10:47:24 -0400 Received: from mail-ed1-f68.google.com ([209.85.208.68]:33047 "EHLO mail-ed1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726820AbgGJOrY (ORCPT ); Fri, 10 Jul 2020 10:47:24 -0400 Received: by mail-ed1-f68.google.com with SMTP id h28so4893056edz.0; Fri, 10 Jul 2020 07:47:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=Xz5xImGDw4ThuClWOrrxh3Lk5Us8ehNrD7H3hvTN4Mc=; b=V1K6DvknJ0+jqMSlDob1U3mmiuzBuvNYZF/cFeSnW07GPydyGW9w/zJrSwEPvG+50F pISIuYdUtxkOiDKn9e3zFgh25WiOmWJvr4lmjx/cDhe9W2xynjIXZ1fmIElHrV53LZBO 67Iqt+sftTdZyxqlgJ1od9YEC6nQpQMTN/mu3O/bg2vAahQX4ShrH/koDUXEp0fIppia TwZzVxBeSkbAZPsZlrtezBwOtT2dFVlceU+fSQ+69zUhVcltnWRjJdI/83UR/aic3x/V oGvNeNXTSBzWnauWIy32Wnf/3dpl4g5o9yTXVImgxGbp8kCWiRJomraE3/sbr+zSJkmu xkKw== X-Gm-Message-State: AOAM53276/l/NwcIkZXvxuC4TJojf3dztYEqSSxmYtouC4AJJiZUfCl3 Mj73aDzTKM8zkjwV+WyDV4Y= X-Google-Smtp-Source: ABdhPJw7p9+SxTcezcmdGl6nEopI7Qd68XFhzE7ZNbnA9Su9N3KDM29Cw8sv/0oQBTtmJz16W0n8pw== X-Received: by 2002:a50:d8c2:: with SMTP id y2mr69401617edj.114.1594392441019; Fri, 10 Jul 2020 07:47:21 -0700 (PDT) Received: from pi3 ([194.230.155.195]) by smtp.googlemail.com with ESMTPSA id j64sm4539997edd.61.2020.07.10.07.47.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Jul 2020 07:47:20 -0700 (PDT) Date: Fri, 10 Jul 2020 16:47:18 +0200 From: Krzysztof Kozlowski To: Lukasz Luba Cc: Bartlomiej Zolnierkiewicz , Chanwoo Choi , linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, willy.mh.wolff.ml@gmail.com, k.konieczny@samsung.com, chanwoo@kernel.org, myungjoo.ham@samsung.com, kyungmin.park@samsung.com, s.nawrocki@samsung.com, kgene@kernel.org Subject: Re: [PATCH 1/2] memory: samsung: exynos5422-dmc: Adjust polling interval and uptreshold Message-ID: <20200710144718.GA23140@pi3> References: <20200708153420.29484-1-lukasz.luba@arm.com> <20200708153420.29484-2-lukasz.luba@arm.com> <20200710124503.GB22897@pi3> <0bfb4332-9a2e-9ff9-1a86-d9875a8f34bb@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8BIT In-Reply-To: Sender: linux-pm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pm@vger.kernel.org On Fri, Jul 10, 2020 at 03:00:37PM +0100, Lukasz Luba wrote: > > > On 7/10/20 2:49 PM, Bartlomiej Zolnierkiewicz wrote: > > > > On 7/10/20 2:56 PM, Lukasz Luba wrote: > > > > > > > > > On 7/10/20 1:45 PM, Krzysztof Kozlowski wrote: > > > > On Fri, Jul 10, 2020 at 09:34:45AM +0100, Lukasz Luba wrote: > > > > > Hi Chanwoo, > > > > > > > > > > On 7/9/20 5:08 AM, Chanwoo Choi wrote: > > > > > > Hi Lukasz, > > > > > > > > > > > > On 7/9/20 12:34 AM, Lukasz Luba wrote: > > > > > > > In order to react faster and make better decisions under some workloads, > > > > > > > benchmarking the memory subsystem behavior, adjust the polling interval > > > > > > > and upthreshold value used by the simple_ondemand governor. > > > > > > > > > > > > > > Reported-by: Willy Wolff > > > > > > > Signed-off-by: Lukasz Luba > > > > > > > --- > > > > > > >    drivers/memory/samsung/exynos5422-dmc.c | 4 ++-- > > > > > > >    1 file changed, 2 insertions(+), 2 deletions(-) > > > > > > > > > > > > > > diff --git a/drivers/memory/samsung/exynos5422-dmc.c b/drivers/memory/samsung/exynos5422-dmc.c > > > > > > > index 93e9c2429c0d..e03ee35f0ab5 100644 > > > > > > > --- a/drivers/memory/samsung/exynos5422-dmc.c > > > > > > > +++ b/drivers/memory/samsung/exynos5422-dmc.c > > > > > > > @@ -1466,10 +1466,10 @@ static int exynos5_dmc_probe(struct platform_device *pdev) > > > > > > >             * Setup default thresholds for the devfreq governor. > > > > > > >             * The values are chosen based on experiments. > > > > > > >             */ > > > > > > > -        dmc->gov_data.upthreshold = 30; > > > > > > > +        dmc->gov_data.upthreshold = 10; > > > > > > >            dmc->gov_data.downdifferential = 5; > > > > > > > -        exynos5_dmc_df_profile.polling_ms = 500; > > > > > > > +        exynos5_dmc_df_profile.polling_ms = 100; > > > > > > >        } > > > > > > > > > > > > > > > > > > > Reviewed-by: Chanwoo Choi > > > > > > > > > > > > > > > > Thank you for the review. Do you think this patch could go through > > > > > your tree together with your patches? > > > > > > > > > > I don't know Krzysztof's opinion about the patch 2/2, but > > > > > I would expect, assuming the patch itself is correct, he would > > > > > like to take it into his next/dt branch. > > > > > > > > In the cover letter you mentioned that this is a follow up for the > > > > Chanwoo's patchset. But are these patches really depending on it? Can > > > > they be picked up independently? > > > > > > > > > They are not heavily dependent on Chanwoo's patches. > > > Yes, they can be picked up independently. > > > > Hmmm, are you sure? > > In a sense: in two phases (first the Chanwoo's changes land into > devfreq, then when Krzysztof prepares his topic branches for > arm soc, I assumed Chanwoo's patches are mainline and will be there > already). > > > > > Sure, they will apply fine but without Chanwoo's patches won't they > > cause the dmc driver to use using polling mode with deferred timer > > (unintended/bad behavior) instead of IRQs (current behavior) or > > polling mode with delayed timer (future behavior)? > > I was assuming that it will take longer, when Krzysztof is going to pick > patch 2/2, definitely after a while (and it could be also the case for > patch 1/1 if Krzysztof was going to take it). > > I think there is no rush and it can go in two phases. > > Good point Bartek for clarifying this. I wasn't clear in the messages. > Thank you for keeping eye on this. ... which means they are dependent on Chanwoo's patchset. They cannot go in parallel, they cannot be picked up independently. You know, when someone's patches are in mainline, it is never a dependency anymore... The patches then could wait for next cycle if there is no rush. Maybe there will be some further revisions of this approach? Best regards, Krzysztof 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=-10.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable 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 C6AB6C433DF for ; Fri, 10 Jul 2020 14:49:02 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 9226F206A1 for ; Fri, 10 Jul 2020 14:49:02 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="M6HS3cw7" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9226F206A1 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+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=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject: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=R/bm6ndIH/OJZQMdr6p5QoQeZZUN0DUHjWXfbC9iBO4=; b=M6HS3cw7aTht1+g1mEV1zAfIY WxX2J6TeWt/5zo9lVr+r4I/9MW+8JenVI4SlZXUOaoe39nWOOKCo/u/IDXh6OgMlaQEhI8lLug5U+ uDYl4PRYvWuvTIGRBVZjDeYXJz786NLBMmO3W8gXCD2mQ+M/b3bqylLLRak0ZFY9qc6yiPs+GibXH JcTi2FjvqvX801NR9yjamz3PmgcQM2SiFDJHrVMc5sy2sYBJaRBy/6ZEa8YtyHfK14X30WrEhRP1r CWsZGeEgmN1WguCDV0nD/5NbbRiUvMH+VxlEEpuzJW5UD1ksibfIYVOYO8xukcwrztak3HXnt2DwL jbEZq32SA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jtuJB-0004i5-NI; Fri, 10 Jul 2020 14:47:25 +0000 Received: from mail-ed1-f67.google.com ([209.85.208.67]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jtuJ8-0004hh-7d for linux-arm-kernel@lists.infradead.org; Fri, 10 Jul 2020 14:47:23 +0000 Received: by mail-ed1-f67.google.com with SMTP id d16so4836887edz.12 for ; Fri, 10 Jul 2020 07:47:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=Xz5xImGDw4ThuClWOrrxh3Lk5Us8ehNrD7H3hvTN4Mc=; b=egtz8DMyByLZthDaACGDWamlsMgy4fY21T8DLb6E+j/mwMThxnxo7Bkdch2E4HqOuW XMsaeXJPmT6N1vaBwXaNF6pcB0Ky7PgbnNth7+JJiC0JYIGZycrmVoY7+vTI15gBCL0g AxPNpSXTE1ydwDLmfJfDzDi1LntqTSEHWOmxYjpNeIC69KUH5UJq1iFk7RZQpgsIr350 XHQkW7wt+F2y3Kv0V+gMy/EzT24YCzFobiW8Hs8YcaVmx+qg9SWi3GiDFlnxkKYBRXkw xXyuAOXx2d/ELiRALt/3ihzH5jYf/Bvm2fcbiTE6gEKDx/IpaXl8YF9LnM2iCrTq//9U B9KQ== X-Gm-Message-State: AOAM530ICE8GuFBANEDw/+ANK/JhaKlyZtFGR8g0yjUDNSKkLAd2Y9v5 F9lc0oEGlhV6ljFeBktm6OGBCxAb X-Google-Smtp-Source: ABdhPJw7p9+SxTcezcmdGl6nEopI7Qd68XFhzE7ZNbnA9Su9N3KDM29Cw8sv/0oQBTtmJz16W0n8pw== X-Received: by 2002:a50:d8c2:: with SMTP id y2mr69401617edj.114.1594392441019; Fri, 10 Jul 2020 07:47:21 -0700 (PDT) Received: from pi3 ([194.230.155.195]) by smtp.googlemail.com with ESMTPSA id j64sm4539997edd.61.2020.07.10.07.47.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Jul 2020 07:47:20 -0700 (PDT) Date: Fri, 10 Jul 2020 16:47:18 +0200 From: Krzysztof Kozlowski To: Lukasz Luba Subject: Re: [PATCH 1/2] memory: samsung: exynos5422-dmc: Adjust polling interval and uptreshold Message-ID: <20200710144718.GA23140@pi3> References: <20200708153420.29484-1-lukasz.luba@arm.com> <20200708153420.29484-2-lukasz.luba@arm.com> <20200710124503.GB22897@pi3> <0bfb4332-9a2e-9ff9-1a86-d9875a8f34bb@arm.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-20200710_104722_307889_A9CC4CA7 X-CRM114-Status: GOOD ( 36.12 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-samsung-soc@vger.kernel.org, s.nawrocki@samsung.com, linux-pm@vger.kernel.org, k.konieczny@samsung.com, Bartlomiej Zolnierkiewicz , linux-kernel@vger.kernel.org, Chanwoo Choi , kyungmin.park@samsung.com, willy.mh.wolff.ml@gmail.com, myungjoo.ham@samsung.com, chanwoo@kernel.org, kgene@kernel.org, linux-arm-kernel@lists.infradead.org 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 T24gRnJpLCBKdWwgMTAsIDIwMjAgYXQgMDM6MDA6MzdQTSArMDEwMCwgTHVrYXN6IEx1YmEgd3Jv dGU6Cj4gCj4gCj4gT24gNy8xMC8yMCAyOjQ5IFBNLCBCYXJ0bG9taWVqIFpvbG5pZXJraWV3aWN6 IHdyb3RlOgo+ID4gCj4gPiBPbiA3LzEwLzIwIDI6NTYgUE0sIEx1a2FzeiBMdWJhIHdyb3RlOgo+ ID4gPiAKPiA+ID4gCj4gPiA+IE9uIDcvMTAvMjAgMTo0NSBQTSwgS3J6eXN6dG9mIEtvemxvd3Nr aSB3cm90ZToKPiA+ID4gPiBPbiBGcmksIEp1bCAxMCwgMjAyMCBhdCAwOTozNDo0NUFNICswMTAw LCBMdWthc3ogTHViYSB3cm90ZToKPiA+ID4gPiA+IEhpIENoYW53b28sCj4gPiA+ID4gPiAKPiA+ ID4gPiA+IE9uIDcvOS8yMCA1OjA4IEFNLCBDaGFud29vIENob2kgd3JvdGU6Cj4gPiA+ID4gPiA+ IEhpIEx1a2FzeiwKPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IE9uIDcvOS8yMCAxMjozNCBBTSwg THVrYXN6IEx1YmEgd3JvdGU6Cj4gPiA+ID4gPiA+ID4gSW4gb3JkZXIgdG8gcmVhY3QgZmFzdGVy IGFuZCBtYWtlIGJldHRlciBkZWNpc2lvbnMgdW5kZXIgc29tZSB3b3JrbG9hZHMsCj4gPiA+ID4g PiA+ID4gYmVuY2htYXJraW5nIHRoZSBtZW1vcnkgc3Vic3lzdGVtIGJlaGF2aW9yLCBhZGp1c3Qg dGhlIHBvbGxpbmcgaW50ZXJ2YWwKPiA+ID4gPiA+ID4gPiBhbmQgdXB0aHJlc2hvbGQgdmFsdWUg dXNlZCBieSB0aGUgc2ltcGxlX29uZGVtYW5kIGdvdmVybm9yLgo+ID4gPiA+ID4gPiA+IAo+ID4g PiA+ID4gPiA+IFJlcG9ydGVkLWJ5OiBXaWxseSBXb2xmZiA8d2lsbHkubWgud29sZmYubWxAZ21h aWwuY29tPgo+ID4gPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IEx1a2FzeiBMdWJhIDxsdWthc3ou bHViYUBhcm0uY29tPgo+ID4gPiA+ID4gPiA+IC0tLQo+ID4gPiA+ID4gPiA+ICDCoMKgIGRyaXZl cnMvbWVtb3J5L3NhbXN1bmcvZXh5bm9zNTQyMi1kbWMuYyB8IDQgKystLQo+ID4gPiA+ID4gPiA+ ICDCoMKgIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCj4g PiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVtb3J5L3Nh bXN1bmcvZXh5bm9zNTQyMi1kbWMuYyBiL2RyaXZlcnMvbWVtb3J5L3NhbXN1bmcvZXh5bm9zNTQy Mi1kbWMuYwo+ID4gPiA+ID4gPiA+IGluZGV4IDkzZTljMjQyOWMwZC4uZTAzZWUzNWYwYWI1IDEw MDY0NAo+ID4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvbWVtb3J5L3NhbXN1bmcvZXh5bm9zNTQy Mi1kbWMuYwo+ID4gPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvbWVtb3J5L3NhbXN1bmcvZXh5bm9z NTQyMi1kbWMuYwo+ID4gPiA+ID4gPiA+IEBAIC0xNDY2LDEwICsxNDY2LDEwIEBAIHN0YXRpYyBp bnQgZXh5bm9zNV9kbWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiA+ID4g PiA+ID4gPiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIFNldHVwIGRlZmF1bHQgdGhyZXNob2xk cyBmb3IgdGhlIGRldmZyZXEgZ292ZXJub3IuCj4gPiA+ID4gPiA+ID4gIMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgKiBUaGUgdmFsdWVzIGFyZSBjaG9zZW4gYmFzZWQgb24gZXhwZXJpbWVudHMuCj4g PiA+ID4gPiA+ID4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKi8KPiA+ID4gPiA+ID4gPiAtwqDC oMKgwqDCoMKgwqAgZG1jLT5nb3ZfZGF0YS51cHRocmVzaG9sZCA9IDMwOwo+ID4gPiA+ID4gPiA+ ICvCoMKgwqDCoMKgwqDCoCBkbWMtPmdvdl9kYXRhLnVwdGhyZXNob2xkID0gMTA7Cj4gPiA+ID4g PiA+ID4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRtYy0+Z292X2RhdGEuZG93bmRpZmZlcmVudGlh bCA9IDU7Cj4gPiA+ID4gPiA+ID4gLcKgwqDCoMKgwqDCoMKgIGV4eW5vczVfZG1jX2RmX3Byb2Zp bGUucG9sbGluZ19tcyA9IDUwMDsKPiA+ID4gPiA+ID4gPiArwqDCoMKgwqDCoMKgwqAgZXh5bm9z NV9kbWNfZGZfcHJvZmlsZS5wb2xsaW5nX21zID0gMTAwOwo+ID4gPiA+ID4gPiA+ICDCoMKgwqDC oMKgwqAgfQo+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gUmV2aWV3ZWQt Ynk6IENoYW53b28gQ2hvaSA8Y3cwMC5jaG9pQHNhbXN1bmcuY29tPgo+ID4gPiA+ID4gPiAKPiA+ ID4gPiA+IAo+ID4gPiA+ID4gVGhhbmsgeW91IGZvciB0aGUgcmV2aWV3LiBEbyB5b3UgdGhpbmsg dGhpcyBwYXRjaCBjb3VsZCBnbyB0aHJvdWdoCj4gPiA+ID4gPiB5b3VyIHRyZWUgdG9nZXRoZXIg d2l0aCB5b3VyIHBhdGNoZXM/Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IEkgZG9uJ3Qga25vdyBLcnp5 c3p0b2YncyBvcGluaW9uIGFib3V0IHRoZSBwYXRjaCAyLzIsIGJ1dAo+ID4gPiA+ID4gSSB3b3Vs ZCBleHBlY3QsIGFzc3VtaW5nIHRoZSBwYXRjaCBpdHNlbGYgaXMgY29ycmVjdCwgaGUgd291bGQK PiA+ID4gPiA+IGxpa2UgdG8gdGFrZSBpdCBpbnRvIGhpcyBuZXh0L2R0IGJyYW5jaC4KPiA+ID4g PiAKPiA+ID4gPiBJbiB0aGUgY292ZXIgbGV0dGVyIHlvdSBtZW50aW9uZWQgdGhhdCB0aGlzIGlz IGEgZm9sbG93IHVwIGZvciB0aGUKPiA+ID4gPiBDaGFud29vJ3MgcGF0Y2hzZXQuIEJ1dCBhcmUg dGhlc2UgcGF0Y2hlcyByZWFsbHkgZGVwZW5kaW5nIG9uIGl0PyBDYW4KPiA+ID4gPiB0aGV5IGJl IHBpY2tlZCB1cCBpbmRlcGVuZGVudGx5Pwo+ID4gPiAKPiA+ID4gCj4gPiA+IFRoZXkgYXJlIG5v dCBoZWF2aWx5IGRlcGVuZGVudCBvbiBDaGFud29vJ3MgcGF0Y2hlcy4KPiA+ID4gWWVzLCB0aGV5 IGNhbiBiZSBwaWNrZWQgdXAgaW5kZXBlbmRlbnRseS4KPiA+IAo+ID4gSG1tbSwgYXJlIHlvdSBz dXJlPwo+IAo+IEluIGEgc2Vuc2U6IGluIHR3byBwaGFzZXMgKGZpcnN0IHRoZSBDaGFud29vJ3Mg Y2hhbmdlcyBsYW5kIGludG8KPiBkZXZmcmVxLCB0aGVuIHdoZW4gS3J6eXN6dG9mIHByZXBhcmVz IGhpcyB0b3BpYyBicmFuY2hlcyBmb3IKPiBhcm0gc29jLCBJIGFzc3VtZWQgQ2hhbndvbydzIHBh dGNoZXMgYXJlIG1haW5saW5lIGFuZCB3aWxsIGJlIHRoZXJlCj4gYWxyZWFkeSkuCj4gCj4gPiAK PiA+IFN1cmUsIHRoZXkgd2lsbCBhcHBseSBmaW5lIGJ1dCB3aXRob3V0IENoYW53b28ncyBwYXRj aGVzIHdvbid0IHRoZXkKPiA+IGNhdXNlIHRoZSBkbWMgZHJpdmVyIHRvIHVzZSB1c2luZyBwb2xs aW5nIG1vZGUgd2l0aCBkZWZlcnJlZCB0aW1lcgo+ID4gKHVuaW50ZW5kZWQvYmFkIGJlaGF2aW9y KSBpbnN0ZWFkIG9mIElSUXMgKGN1cnJlbnQgYmVoYXZpb3IpIG9yCj4gPiBwb2xsaW5nIG1vZGUg d2l0aCBkZWxheWVkIHRpbWVyIChmdXR1cmUgYmVoYXZpb3IpPwo+IAo+IEkgd2FzIGFzc3VtaW5n IHRoYXQgaXQgd2lsbCB0YWtlIGxvbmdlciwgd2hlbiBLcnp5c3p0b2YgaXMgZ29pbmcgdG8gcGlj awo+IHBhdGNoIDIvMiwgZGVmaW5pdGVseSBhZnRlciBhIHdoaWxlIChhbmQgaXQgY291bGQgYmUg YWxzbyB0aGUgY2FzZSBmb3IKPiBwYXRjaCAxLzEgaWYgS3J6eXN6dG9mIHdhcyBnb2luZyB0byB0 YWtlIGl0KS4KPiAKPiBJIHRoaW5rIHRoZXJlIGlzIG5vIHJ1c2ggYW5kIGl0IGNhbiBnbyBpbiB0 d28gcGhhc2VzLgo+IAo+IEdvb2QgcG9pbnQgQmFydGVrIGZvciBjbGFyaWZ5aW5nIHRoaXMuIEkg d2Fzbid0IGNsZWFyIGluIHRoZSBtZXNzYWdlcy4KPiBUaGFuayB5b3UgZm9yIGtlZXBpbmcgZXll IG9uIHRoaXMuCgouLi4gd2hpY2ggbWVhbnMgdGhleSBhcmUgZGVwZW5kZW50IG9uIENoYW53b28n cyBwYXRjaHNldC4gVGhleSBjYW5ub3QgZ28KaW4gcGFyYWxsZWwsIHRoZXkgY2Fubm90IGJlIHBp Y2tlZCB1cCBpbmRlcGVuZGVudGx5LgoKWW91IGtub3csIHdoZW4gc29tZW9uZSdzIHBhdGNoZXMg YXJlIGluIG1haW5saW5lLCBpdCBpcyBuZXZlciBhCmRlcGVuZGVuY3kgYW55bW9yZS4uLgoKVGhl IHBhdGNoZXMgdGhlbiBjb3VsZCB3YWl0IGZvciBuZXh0IGN5Y2xlIGlmIHRoZXJlIGlzIG5vIHJ1 c2guIE1heWJlCnRoZXJlIHdpbGwgYmUgc29tZSBmdXJ0aGVyIHJldmlzaW9ucyBvZiB0aGlzIGFw cHJvYWNoPwoKQmVzdCByZWdhcmRzLApLcnp5c3p0b2YKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdAps aW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVh ZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==