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=-0.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=no 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 17201C3A59F for ; Mon, 26 Aug 2019 17:09:12 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C569A21852 for ; Mon, 26 Aug 2019 17:09:11 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20150623.gappssmtp.com header.i=@baylibre-com.20150623.gappssmtp.com header.b="aL4eazpg" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732912AbfHZRJL (ORCPT ); Mon, 26 Aug 2019 13:09:11 -0400 Received: from mail-pf1-f196.google.com ([209.85.210.196]:37331 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729338AbfHZRJL (ORCPT ); Mon, 26 Aug 2019 13:09:11 -0400 Received: by mail-pf1-f196.google.com with SMTP id y9so11819417pfl.4 for ; Mon, 26 Aug 2019 10:09:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:in-reply-to:references:date:message-id :mime-version:content-transfer-encoding; bh=yPeEMddIi0z8KsbVoXmX4P9JjZRScu3qoYzqC8dRJtQ=; b=aL4eazpgspu49x5bhKNzO0ttOCOEIJSQo3jsWqBwo2CIZ5b0YXuTw84rMEeXLIyDTS 9CsdkHCOlwsyqfDQT8RK12Bx4seoREL5VE+27nqmQbTpAWk5JrDBVEPcIwQJjeseaVxV F2RA8lyjbKRhkyxs2559lPjl4GDWJRY6IGHYTVtzBRjIyOzreU6+Q1UX+L3xLd4NwCB8 /mGh9pEOqeI6lWsEh7xXx+K3cWSEHF4wL9LcDJAErjXicJz7nppR8mOeDuTixy8Ofdb9 eXQWzi3CPV5V409yrVcmmM9IV8coOG9j5aMG6AWsCrOT3AhapKOI/gbcc5T9Fau/Loyw 5aQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:in-reply-to:references:date :message-id:mime-version:content-transfer-encoding; bh=yPeEMddIi0z8KsbVoXmX4P9JjZRScu3qoYzqC8dRJtQ=; b=TcDr2M8M2yzgK0Pvx8Nqm8Wvpw/iQ1WSZ+XwcxEm/9voNaSo6ugmq8ajX6YNddZpkw cdgDv6lGZtDQ0a7S9LIfPQhkdurSYoCyfQQ5EhZLZC7QoPrI8u0TRizIaGXxs5LZPZSE m4Q8zmYEnSYDwDgkof7xys4GpjIEEQbIuaHQTf2+he7TpqHchpT0Wx0iizXAzOXSW1kq 1wRQdQTRwaZN7HEULtB/QGvu+RC2pygKgzrQCUgri0nyL0/Utgfduzc3CUWZC7XagI33 tcLGIvafWBsQWEo4d0onYyDrTg/w8IRWdVn7VhuBQFlbOdoT1Q5BIRHRIRkPLIrhCbxE zogA== X-Gm-Message-State: APjAAAWVPniCsXkAfAzDcNg6zrQMXmOzd/55/1Wq2A95NSli5PwNk3nF L/ff9w9P4eTSAI0mZqGcgIUUxw== X-Google-Smtp-Source: APXvYqxVp9zJ5zqqJbitmKSrHWunH37Vo1H3Mu2yAOmtWhXd2V8RC0WBZxuI0F9r1DUFJW2cz7mheg== X-Received: by 2002:a62:754a:: with SMTP id q71mr20811624pfc.15.1566839350017; Mon, 26 Aug 2019 10:09:10 -0700 (PDT) Received: from localhost ([2601:602:9200:a1a5:cc35:e750:308e:47f]) by smtp.gmail.com with ESMTPSA id 22sm15757652pfv.134.2019.08.26.10.09.09 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 26 Aug 2019 10:09:09 -0700 (PDT) From: Kevin Hilman To: Kever Yang , Heiko Stuebner Cc: kernel-build-reports@lists.linaro.org, linux-rockchip@lists.infradead.org, linux-next@vger.kernel.org, =?utf-8?B?5byg5pm0?= , =?utf-8?B?6Zer5a2d?= =?utf-8?B?5Yab?= , linux-arm-kernel@lists.infradead.org Subject: Re: CPUfreq fail on rk3399-firefly In-Reply-To: References: <5d3057c8.1c69fb81.c6489.8ad2@mx.google.com> <20190718162005.GF5761@sirena.org.uk> <7hmugdynmk.fsf@baylibre.com> <2314814.WbdfqDVNqK@phil> <7hv9uq9wfe.fsf@baylibre.com> <7hd0gvzuvw.fsf@baylibre.com> <7h8srjzuen.fsf@baylibre.com> Date: Mon, 26 Aug 2019 10:09:08 -0700 Message-ID: <7h4l23zwej.fsf@baylibre.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Sender: linux-next-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-next@vger.kernel.org Hi Kever, Kever Yang writes: > Hi Kevin, > > =C2=A0=C2=A0=C2=A0 I want to have a test with my board, I can get the Im= age and dtb=20 > from the link for the job, > > but how can I get the randisk which is named initrd-SDbyy2.cpio.gz? The ramdisk images are here: https://storage.kernelci.org/images/rootfs/buildroot/kci-2019.02/arm64/ba= se/ in the kernelCI logs the ramdisk is slightly modified because the kernel modules have been inserted into the cpio archive. However, for the purposes of this test, you can just test with the unmodified rootfs.cpio.gz above. Kevin > Thanks, > > - Kever > > On 2019/8/24 =E4=B8=8A=E5=8D=881:03, Kevin Hilman wrote: >> Kevin Hilman writes: >> >>> Kever Yang writes: >>> >>>> Hi Kevin, Heiko, >>>> >>>> On 2019/8/22 =E4=B8=8A=E5=8D=882:59, Kevin Hilman wrote: >>>>> Hi Heiko, >>>>> >>>>> Heiko Stuebner writes: >>>>> >>>>>> Am Dienstag, 13. August 2019, 19:35:31 CEST schrieb Kevin Hilman: >>>>>>> [ resent with correct addr for linux-rockchip list ] >>>>>>> >>>>>>> Mark Brown writes: >>>>>>> >>>>>>>> On Thu, Jul 18, 2019 at 04:28:08AM -0700, kernelci.org bot wrote: >>>>>>>> >>>>>>>> Today's -next started failing to boot defconfig on rk3399-firefly: >>>>>>>> >>>>>>>>> arm64: >>>>>>>>> defconfig: >>>>>>>>> gcc-8: >>>>>>>>> rk3399-firefly: 1 failed lab >>>>>>>> It hits a BUG() trying to set up cpufreq: >>>>>>>> >>>>>>>> [ 87.381606] cpufreq: cpufreq_online: CPU0: Running at unlisted = freq: 200000 KHz >>>>>>>> [ 87.393244] cpufreq: cpufreq_online: CPU0: Unlisted initial fre= quency changed to: 408000 KHz >>>>>>>> [ 87.469777] cpufreq: cpufreq_online: CPU4: Running at unlisted = freq: 12000 KHz >>>>>>>> [ 87.488595] cpu cpu4: _generic_set_opp_clk_only: failed to set = clock rate: -22 >>>>>>>> [ 87.491881] cpufreq: __target_index: Failed to change cpu frequ= ency: -22 >>>>>>>> [ 87.495335] ------------[ cut here ]------------ >>>>>>>> [ 87.496821] kernel BUG at drivers/cpufreq/cpufreq.c:1438! >>>>>>>> [ 87.498462] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP >>>>>>>> >>>>>>>> I'm struggling to see anything relevant in the diff from yesterday= , the >>>>>>>> unlisted frequency warnings were there in the logs yesterday but n= o oops >>>>>>>> and I'm not seeing any changes in cpufreq, clk or anything relevant >>>>>>>> looking. >>>>>>>> >>>>>>>> Full bootlog and other info can be found here: >>>>>>>> >>>>>>>> https://kernelci.org/boot/id/5d302d8359b51498d049e983/ >>>>>>> I confirm that disabling CPUfreq in the defconfig (CONFIG_CPU_FREQ= =3Dn) >>>>>>> makes the firefly board start working again. >>>>>>> >>>>>>> Note that the default defconfig enables the "performance" CPUfreq >>>>>>> governor as the default governor, so during kernel boot, it will al= ways >>>>>>> switch to the max frequency. >>>>>>> >>>>>>> For fun, I set the default governor to "userspace" so the kernel >>>>>>> wouldn't make any OPP changes, and that leads to a slightly more >>>>>>> informative splat[1] >>>>>>> >>>>>>> There is still an OPP change happening because the detected OPP is = not >>>>>>> one that's listed in the table, so it tries to change to a listed O= PP >>>>>>> and fails in the bowels of clk_set_rate() >>>>>> Though I think that might only be a symptom as well. >>>>>> Both the PLL setting code as well as the actual cpu-clock implementa= tion >>>>>> is unchanged since 2017 (and runs just fine on all boards in my farm= ). >>>>>> >>>>>> One source for these issues is often the regulator supplying the cpu >>>>>> going haywire - aka the voltage not matching the opp. >>>>>> >>>>>> As in this error-case it's CPU4 being set, this would mean it might >>>>>> be the big cluster supplied by the external syr825 (fan5355 clone) >>>>>> that might act up. In the Firefly-rk3399 case this is even stranger. >>>>>> >>>>>> There is a discrepancy between the "fcs,suspend-voltage-selector" >>>>>> between different bootloader versions (how the selection-pin is set = up), >>>>>> so the kernel might actually write his requested voltage to the wrong >>>>>> register (not the one for actual voltage, but the second set used for >>>>>> the suspend voltage). >>>>>> >>>>>> Did you by chance swap bootloaders at some point in recent past? >>>>> No, haven't touched bootloader since I initially setup the board. >>>> The CPU voltage does not affect by bootloader for kernel should have i= ts >>>> own opp-table, >>>> >>>> the bootloader may only affect the center/logic power supply. >>>> >>>>>> I'd assume [2] might actually be the same issue last year, though >>>>>> the CI-logs are not available anymore it seems. >>>>>> >>>>>> Could you try to set the vdd_cpu_b regulator to disabled, so that >>>>>> cpufreq for this cluster defers and see what happens? >>>>> Yes, this change[1] definitely makes things boot reliably again, so >>>>> there's defintiely something a bit unstable with this regulator, at >>>>> least on this firefly. >>>> Is it possible to target which patch introduce this bug? This board >>>> should have work correctly for a long time with upstream source code. >>> Unfortunately, it seems to be a regular, but intermittent failure, so >>> bisection is not producing anything reliable. >>> >>> You can see that both in mainline[1] and in linux-next[2] there are >>> periodic failures, but it's hard to see any patterns. >> Even worse, I (re)tested mainline for versions that were previously >> passing (v5.2, v5.3-rc5) and they are also failing now. >> >> They work again if I disable that regulator as suggested by Heiko. >> >> So this is increasingly pointing to failing hardware. >> >> Kevin >> >> >> From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kevin Hilman Subject: Re: CPUfreq fail on rk3399-firefly Date: Mon, 26 Aug 2019 10:09:08 -0700 Message-ID: <7h4l23zwej.fsf@baylibre.com> References: <5d3057c8.1c69fb81.c6489.8ad2@mx.google.com> <20190718162005.GF5761@sirena.org.uk> <7hmugdynmk.fsf@baylibre.com> <2314814.WbdfqDVNqK@phil> <7hv9uq9wfe.fsf@baylibre.com> <7hd0gvzuvw.fsf@baylibre.com> <7h8srjzuen.fsf@baylibre.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Kever Yang , Heiko Stuebner Cc: kernel-build-reports@lists.linaro.org, linux-rockchip@lists.infradead.org, linux-next@vger.kernel.org, =?utf-8?B?6Zer5a2d?= =?utf-8?B?5Yab?= , =?utf-8?B?5byg5pm0?= , linux-arm-kernel@lists.infradead.org List-Id: linux-rockchip.vger.kernel.org SGkgS2V2ZXIsCgpLZXZlciBZYW5nIDxrZXZlci55YW5nQHJvY2stY2hpcHMuY29tPiB3cml0ZXM6 Cgo+IEhpIEtldmluLAo+Cj4gIMKgwqDCoCBJIHdhbnQgdG8gaGF2ZSBhIHRlc3Qgd2l0aCBteSBi b2FyZCwgSSBjYW4gZ2V0IHRoZSBJbWFnZSBhbmQgZHRiIAo+IGZyb20gdGhlIGxpbmsgZm9yIHRo ZSBqb2IsCj4KPiBidXQgaG93IGNhbiBJIGdldCB0aGUgcmFuZGlzayB3aGljaCBpcyBuYW1lZCBp bml0cmQtU0RieXkyLmNwaW8uZ3o/CgpUaGUgcmFtZGlzayBpbWFnZXMgYXJlIGhlcmU6CgogIGh0 dHBzOi8vc3RvcmFnZS5rZXJuZWxjaS5vcmcvaW1hZ2VzL3Jvb3Rmcy9idWlsZHJvb3Qva2NpLTIw MTkuMDIvYXJtNjQvYmFzZS8KCmluIHRoZSBrZXJuZWxDSSBsb2dzIHRoZSByYW1kaXNrIGlzIHNs aWdodGx5IG1vZGlmaWVkIGJlY2F1c2UgdGhlIGtlcm5lbAptb2R1bGVzIGhhdmUgYmVlbiBpbnNl cnRlZCBpbnRvIHRoZSBjcGlvIGFyY2hpdmUuCgpIb3dldmVyLCBmb3IgdGhlIHB1cnBvc2VzIG9m IHRoaXMgdGVzdCwgeW91IGNhbiBqdXN0IHRlc3Qgd2l0aCB0aGUKdW5tb2RpZmllZCByb290ZnMu Y3Bpby5neiBhYm92ZS4KCktldmluCgoKPiBUaGFua3MsCj4KPiAtIEtldmVyCj4KPiBPbiAyMDE5 LzgvMjQg5LiK5Y2IMTowMywgS2V2aW4gSGlsbWFuIHdyb3RlOgo+PiBLZXZpbiBIaWxtYW4gPGto aWxtYW5AYmF5bGlicmUuY29tPiB3cml0ZXM6Cj4+Cj4+PiBLZXZlciBZYW5nIDxrZXZlci55YW5n QHJvY2stY2hpcHMuY29tPiB3cml0ZXM6Cj4+Pgo+Pj4+IEhpIEtldmluLCBIZWlrbywKPj4+Pgo+ Pj4+IE9uIDIwMTkvOC8yMiDkuIrljYgyOjU5LCBLZXZpbiBIaWxtYW4gd3JvdGU6Cj4+Pj4+IEhp IEhlaWtvLAo+Pj4+Pgo+Pj4+PiBIZWlrbyBTdHVlYm5lciA8aGVpa29Ac250ZWNoLmRlPiB3cml0 ZXM6Cj4+Pj4+Cj4+Pj4+PiBBbSBEaWVuc3RhZywgMTMuIEF1Z3VzdCAyMDE5LCAxOTozNTozMSBD RVNUIHNjaHJpZWIgS2V2aW4gSGlsbWFuOgo+Pj4+Pj4+IFsgcmVzZW50IHdpdGggY29ycmVjdCBh ZGRyIGZvciBsaW51eC1yb2NrY2hpcCBsaXN0IF0KPj4+Pj4+Pgo+Pj4+Pj4+IE1hcmsgQnJvd24g PGJyb29uaWVAa2VybmVsLm9yZz4gd3JpdGVzOgo+Pj4+Pj4+Cj4+Pj4+Pj4+IE9uIFRodSwgSnVs IDE4LCAyMDE5IGF0IDA0OjI4OjA4QU0gLTA3MDAsIGtlcm5lbGNpLm9yZyBib3Qgd3JvdGU6Cj4+ Pj4+Pj4+Cj4+Pj4+Pj4+IFRvZGF5J3MgLW5leHQgc3RhcnRlZCBmYWlsaW5nIHRvIGJvb3QgZGVm Y29uZmlnIG9uIHJrMzM5OS1maXJlZmx5Ogo+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gYXJtNjQ6Cj4+Pj4+ Pj4+PiAgICAgICBkZWZjb25maWc6Cj4+Pj4+Pj4+PiAgICAgICAgICAgZ2NjLTg6Cj4+Pj4+Pj4+ PiAgICAgICAgICAgICAgIHJrMzM5OS1maXJlZmx5OiAxIGZhaWxlZCBsYWIKPj4+Pj4+Pj4gSXQg aGl0cyBhIEJVRygpIHRyeWluZyB0byBzZXQgdXAgY3B1ZnJlcToKPj4+Pj4+Pj4KPj4+Pj4+Pj4g WyAgIDg3LjM4MTYwNl0gY3B1ZnJlcTogY3B1ZnJlcV9vbmxpbmU6IENQVTA6IFJ1bm5pbmcgYXQg dW5saXN0ZWQgZnJlcTogMjAwMDAwIEtIego+Pj4+Pj4+PiBbICAgODcuMzkzMjQ0XSBjcHVmcmVx OiBjcHVmcmVxX29ubGluZTogQ1BVMDogVW5saXN0ZWQgaW5pdGlhbCBmcmVxdWVuY3kgY2hhbmdl ZCB0bzogNDA4MDAwIEtIego+Pj4+Pj4+PiBbICAgODcuNDY5Nzc3XSBjcHVmcmVxOiBjcHVmcmVx X29ubGluZTogQ1BVNDogUnVubmluZyBhdCB1bmxpc3RlZCBmcmVxOiAxMjAwMCBLSHoKPj4+Pj4+ Pj4gWyAgIDg3LjQ4ODU5NV0gY3B1IGNwdTQ6IF9nZW5lcmljX3NldF9vcHBfY2xrX29ubHk6IGZh aWxlZCB0byBzZXQgY2xvY2sgcmF0ZTogLTIyCj4+Pj4+Pj4+IFsgICA4Ny40OTE4ODFdIGNwdWZy ZXE6IF9fdGFyZ2V0X2luZGV4OiBGYWlsZWQgdG8gY2hhbmdlIGNwdSBmcmVxdWVuY3k6IC0yMgo+ Pj4+Pj4+PiBbICAgODcuNDk1MzM1XSAtLS0tLS0tLS0tLS1bIGN1dCBoZXJlIF0tLS0tLS0tLS0t LS0KPj4+Pj4+Pj4gWyAgIDg3LjQ5NjgyMV0ga2VybmVsIEJVRyBhdCBkcml2ZXJzL2NwdWZyZXEv Y3B1ZnJlcS5jOjE0MzghCj4+Pj4+Pj4+IFsgICA4Ny40OTg0NjJdIEludGVybmFsIGVycm9yOiBP b3BzIC0gQlVHOiAwIFsjMV0gUFJFRU1QVCBTTVAKPj4+Pj4+Pj4KPj4+Pj4+Pj4gSSdtIHN0cnVn Z2xpbmcgdG8gc2VlIGFueXRoaW5nIHJlbGV2YW50IGluIHRoZSBkaWZmIGZyb20geWVzdGVyZGF5 LCB0aGUKPj4+Pj4+Pj4gdW5saXN0ZWQgZnJlcXVlbmN5IHdhcm5pbmdzIHdlcmUgdGhlcmUgaW4g dGhlIGxvZ3MgeWVzdGVyZGF5IGJ1dCBubyBvb3BzCj4+Pj4+Pj4+IGFuZCBJJ20gbm90IHNlZWlu ZyBhbnkgY2hhbmdlcyBpbiBjcHVmcmVxLCBjbGsgb3IgYW55dGhpbmcgcmVsZXZhbnQKPj4+Pj4+ Pj4gbG9va2luZy4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gRnVsbCBib290bG9nIGFuZCBvdGhlciBpbmZv IGNhbiBiZSBmb3VuZCBoZXJlOgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAJaHR0cHM6Ly9rZXJuZWxjaS5v cmcvYm9vdC9pZC81ZDMwMmQ4MzU5YjUxNDk4ZDA0OWU5ODMvCj4+Pj4+Pj4gSSBjb25maXJtIHRo YXQgZGlzYWJsaW5nIENQVWZyZXEgaW4gdGhlIGRlZmNvbmZpZyAoQ09ORklHX0NQVV9GUkVRPW4p Cj4+Pj4+Pj4gbWFrZXMgdGhlIGZpcmVmbHkgYm9hcmQgc3RhcnQgd29ya2luZyBhZ2Fpbi4KPj4+ Pj4+Pgo+Pj4+Pj4+IE5vdGUgdGhhdCB0aGUgZGVmYXVsdCBkZWZjb25maWcgZW5hYmxlcyB0aGUg InBlcmZvcm1hbmNlIiBDUFVmcmVxCj4+Pj4+Pj4gZ292ZXJub3IgYXMgdGhlIGRlZmF1bHQgZ292 ZXJub3IsIHNvIGR1cmluZyBrZXJuZWwgYm9vdCwgaXQgd2lsbCBhbHdheXMKPj4+Pj4+PiBzd2l0 Y2ggdG8gdGhlIG1heCBmcmVxdWVuY3kuCj4+Pj4+Pj4KPj4+Pj4+PiBGb3IgZnVuLCBJIHNldCB0 aGUgZGVmYXVsdCBnb3Zlcm5vciB0byAidXNlcnNwYWNlIiBzbyB0aGUga2VybmVsCj4+Pj4+Pj4g d291bGRuJ3QgbWFrZSBhbnkgT1BQIGNoYW5nZXMsIGFuZCB0aGF0IGxlYWRzIHRvIGEgc2xpZ2h0 bHkgbW9yZQo+Pj4+Pj4+IGluZm9ybWF0aXZlIHNwbGF0WzFdCj4+Pj4+Pj4KPj4+Pj4+PiBUaGVy ZSBpcyBzdGlsbCBhbiBPUFAgY2hhbmdlIGhhcHBlbmluZyBiZWNhdXNlIHRoZSBkZXRlY3RlZCBP UFAgaXMgbm90Cj4+Pj4+Pj4gb25lIHRoYXQncyBsaXN0ZWQgaW4gdGhlIHRhYmxlLCBzbyBpdCB0 cmllcyB0byBjaGFuZ2UgdG8gYSBsaXN0ZWQgT1BQCj4+Pj4+Pj4gYW5kIGZhaWxzIGluIHRoZSBi b3dlbHMgb2YgY2xrX3NldF9yYXRlKCkKPj4+Pj4+IFRob3VnaCBJIHRoaW5rIHRoYXQgbWlnaHQg b25seSBiZSBhIHN5bXB0b20gYXMgd2VsbC4KPj4+Pj4+IEJvdGggdGhlIFBMTCBzZXR0aW5nIGNv ZGUgYXMgd2VsbCBhcyB0aGUgYWN0dWFsIGNwdS1jbG9jayBpbXBsZW1lbnRhdGlvbgo+Pj4+Pj4g aXMgdW5jaGFuZ2VkIHNpbmNlIDIwMTcgKGFuZCBydW5zIGp1c3QgZmluZSBvbiBhbGwgYm9hcmRz IGluIG15IGZhcm0pLgo+Pj4+Pj4KPj4+Pj4+IE9uZSBzb3VyY2UgZm9yIHRoZXNlIGlzc3VlcyBp cyBvZnRlbiB0aGUgcmVndWxhdG9yIHN1cHBseWluZyB0aGUgY3B1Cj4+Pj4+PiBnb2luZyBoYXl3 aXJlIC0gYWthIHRoZSB2b2x0YWdlIG5vdCBtYXRjaGluZyB0aGUgb3BwLgo+Pj4+Pj4KPj4+Pj4+ IEFzIGluIHRoaXMgZXJyb3ItY2FzZSBpdCdzIENQVTQgYmVpbmcgc2V0LCB0aGlzIHdvdWxkIG1l YW4gaXQgbWlnaHQKPj4+Pj4+IGJlIHRoZSBiaWcgY2x1c3RlciBzdXBwbGllZCBieSB0aGUgZXh0 ZXJuYWwgc3lyODI1IChmYW41MzU1IGNsb25lKQo+Pj4+Pj4gdGhhdCBtaWdodCBhY3QgdXAuIElu IHRoZSBGaXJlZmx5LXJrMzM5OSBjYXNlIHRoaXMgaXMgZXZlbiBzdHJhbmdlci4KPj4+Pj4+Cj4+ Pj4+PiBUaGVyZSBpcyBhIGRpc2NyZXBhbmN5IGJldHdlZW4gdGhlICJmY3Msc3VzcGVuZC12b2x0 YWdlLXNlbGVjdG9yIgo+Pj4+Pj4gYmV0d2VlbiBkaWZmZXJlbnQgYm9vdGxvYWRlciB2ZXJzaW9u cyAoaG93IHRoZSBzZWxlY3Rpb24tcGluIGlzIHNldCB1cCksCj4+Pj4+PiBzbyB0aGUga2VybmVs IG1pZ2h0IGFjdHVhbGx5IHdyaXRlIGhpcyByZXF1ZXN0ZWQgdm9sdGFnZSB0byB0aGUgd3JvbmcK Pj4+Pj4+IHJlZ2lzdGVyIChub3QgdGhlIG9uZSBmb3IgYWN0dWFsIHZvbHRhZ2UsIGJ1dCB0aGUg c2Vjb25kIHNldCB1c2VkIGZvcgo+Pj4+Pj4gdGhlIHN1c3BlbmQgdm9sdGFnZSkuCj4+Pj4+Pgo+ Pj4+Pj4gRGlkIHlvdSBieSBjaGFuY2Ugc3dhcCBib290bG9hZGVycyBhdCBzb21lIHBvaW50IGlu IHJlY2VudCBwYXN0Pwo+Pj4+PiBObywgaGF2ZW4ndCB0b3VjaGVkIGJvb3Rsb2FkZXIgc2luY2Ug SSBpbml0aWFsbHkgc2V0dXAgdGhlIGJvYXJkLgo+Pj4+IFRoZSBDUFUgdm9sdGFnZSBkb2VzIG5v dCBhZmZlY3QgYnkgYm9vdGxvYWRlciBmb3Iga2VybmVsIHNob3VsZCBoYXZlIGl0cwo+Pj4+IG93 biBvcHAtdGFibGUsCj4+Pj4KPj4+PiB0aGUgYm9vdGxvYWRlciBtYXkgb25seSBhZmZlY3QgdGhl IGNlbnRlci9sb2dpYyBwb3dlciBzdXBwbHkuCj4+Pj4KPj4+Pj4+IEknZCBhc3N1bWUgWzJdIG1p Z2h0IGFjdHVhbGx5IGJlIHRoZSBzYW1lIGlzc3VlIGxhc3QgeWVhciwgdGhvdWdoCj4+Pj4+PiB0 aGUgQ0ktbG9ncyBhcmUgbm90IGF2YWlsYWJsZSBhbnltb3JlIGl0IHNlZW1zLgo+Pj4+Pj4KPj4+ Pj4+IENvdWxkIHlvdSB0cnkgdG8gc2V0IHRoZSB2ZGRfY3B1X2IgcmVndWxhdG9yIHRvIGRpc2Fi bGVkLCBzbyB0aGF0Cj4+Pj4+PiBjcHVmcmVxIGZvciB0aGlzIGNsdXN0ZXIgZGVmZXJzIGFuZCBz ZWUgd2hhdCBoYXBwZW5zPwo+Pj4+PiBZZXMsIHRoaXMgY2hhbmdlWzFdIGRlZmluaXRlbHkgbWFr ZXMgdGhpbmdzIGJvb3QgcmVsaWFibHkgYWdhaW4sIHNvCj4+Pj4+IHRoZXJlJ3MgZGVmaW50aWVs eSBzb21ldGhpbmcgYSBiaXQgdW5zdGFibGUgd2l0aCB0aGlzIHJlZ3VsYXRvciwgYXQKPj4+Pj4g bGVhc3Qgb24gdGhpcyBmaXJlZmx5Lgo+Pj4+IElzIGl0IHBvc3NpYmxlIHRvIHRhcmdldCB3aGlj aCBwYXRjaCBpbnRyb2R1Y2UgdGhpcyBidWc/IFRoaXMgYm9hcmQKPj4+PiBzaG91bGQgaGF2ZSB3 b3JrIGNvcnJlY3RseSBmb3IgYSBsb25nIHRpbWUgd2l0aCB1cHN0cmVhbSBzb3VyY2UgY29kZS4K Pj4+IFVuZm9ydHVuYXRlbHksIGl0IHNlZW1zIHRvIGJlIGEgcmVndWxhciwgYnV0IGludGVybWl0 dGVudCBmYWlsdXJlLCBzbwo+Pj4gYmlzZWN0aW9uIGlzIG5vdCBwcm9kdWNpbmcgYW55dGhpbmcg cmVsaWFibGUuCj4+Pgo+Pj4gWW91IGNhbiBzZWUgdGhhdCBib3RoIGluIG1haW5saW5lWzFdIGFu ZCBpbiBsaW51eC1uZXh0WzJdIHRoZXJlIGFyZQo+Pj4gcGVyaW9kaWMgZmFpbHVyZXMsIGJ1dCBp dCdzIGhhcmQgdG8gc2VlIGFueSBwYXR0ZXJucy4KPj4gRXZlbiB3b3JzZSwgSSAocmUpdGVzdGVk IG1haW5saW5lIGZvciB2ZXJzaW9ucyB0aGF0IHdlcmUgcHJldmlvdXNseQo+PiBwYXNzaW5nICh2 NS4yLCB2NS4zLXJjNSkgYW5kIHRoZXkgYXJlIGFsc28gZmFpbGluZyBub3cuCj4+Cj4+IFRoZXkg d29yayBhZ2FpbiBpZiBJIGRpc2FibGUgdGhhdCByZWd1bGF0b3IgYXMgc3VnZ2VzdGVkIGJ5IEhl aWtvLgo+Pgo+PiBTbyB0aGlzIGlzIGluY3JlYXNpbmdseSBwb2ludGluZyB0byBmYWlsaW5nIGhh cmR3YXJlLgo+Pgo+PiBLZXZpbgo+Pgo+Pgo+PgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgt YXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3Jn L21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=