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=-8.6 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT 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 6345FC2BA1A for ; Sun, 5 Apr 2020 17:36:08 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 383F3206F8 for ; Sun, 5 Apr 2020 17:36:08 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="tTY8TD7u" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727461AbgDERgH (ORCPT ); Sun, 5 Apr 2020 13:36:07 -0400 Received: from mail-wm1-f66.google.com ([209.85.128.66]:50368 "EHLO mail-wm1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726780AbgDERgH (ORCPT ); Sun, 5 Apr 2020 13:36:07 -0400 Received: by mail-wm1-f66.google.com with SMTP id x25so1280058wmc.0; Sun, 05 Apr 2020 10:36:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=SRF6N8cRuZvvVCXMCOyMNsHazept9Ws44rtULXoUZv0=; b=tTY8TD7uDnvBkw/UoC8Tk43vS+8cikFxHyF9Om2gvwsmg+ktlq4rr31JyEUUafawmX bNfBrHvRqtWcuOfPacBJGOLPkY9/GHptKl1Wg4VeTcSodNXbjhEX5cxwZDqGouCSyqFO 5bsfr1Otud+9TNhTCn6Z1FPh4CNm5kStnSBksV2D006oWRzsOOUwR/u+YJ/iZxFvD1C7 5XcxfksQYbjLpzX8WGaoVNhfj6fiB4z6VGv4xVLO3ttinhEVh7+33e/tbm5BqC0ECApm PItcxqN3sN4j7Ck9f0BCkWTlsfTrf8uOA5D/PXrJeg/wZ3Y7JTauiqMzZdtjr4bjPELg ClkA== 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:date:message-id:mime-version :content-transfer-encoding; bh=SRF6N8cRuZvvVCXMCOyMNsHazept9Ws44rtULXoUZv0=; b=eqSms++q9FiWVnVYHEi7bG/ypk0Dct4j2evGKwkEvfnaSb4U6PmdiVNiutlBW71FUx mqgxq4UXuU8ZqWxg6ngC92JowBqc6RQjDHZ4k73jtgp2jFLO4XtV+mJTq2AP5kuLw1dK JJquz48TF3nlwK3r+QEQWFMUYCZTu/N1GjLuXtKVYJZP0dV+LfKa5KIf+xcP4DuqaSXl sbI+K+CAKrKd9RRLNK2S6zokbaf36xGnUbBkUuJwHdV8QX89CJCS8FWxYg2odvhXreyx fHh/NVKdSPORZiJrO2CYdhF/gPTK+OllPXiD0VuqvbuuozMZ63janzJhsWB/ZHOHDQ72 7I6Q== X-Gm-Message-State: AGi0Pua9RDAb7hPfKGxYXroU0u4KVsI5cFqYqX/RGDthlpPR//Kfe3XO 4526I6q1UT4wjATZ4Z9CFzk= X-Google-Smtp-Source: APiQypJEdQdYeNEp0+y3WDmC4ooJao1v/Bv+H68S8EDXP68odyUR9G3QLytTafla8bD+dMOGZ5fhcQ== X-Received: by 2002:a7b:cf27:: with SMTP id m7mr9998785wmg.58.1586108165177; Sun, 05 Apr 2020 10:36:05 -0700 (PDT) Received: from localhost.localdomain (91-167-199-67.subs.proxad.net. [91.167.199.67]) by smtp.gmail.com with ESMTPSA id s13sm6031669wrw.20.2020.04.05.10.36.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 05 Apr 2020 10:36:04 -0700 (PDT) From: =?UTF-8?q?Cl=C3=A9ment=20P=C3=A9ron?= To: Maxime Ripard , Chen-Yu Tsai , Rob Herring Cc: linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-sunxi , =?UTF-8?q?Cl=C3=A9ment=20P=C3=A9ron?= Subject: [PATCH v2 0/7] Add support for Allwinner H6 DVFS Date: Sun, 5 Apr 2020 19:35:54 +0200 Message-Id: <20200405173601.24331-1-peron.clem@gmail.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Sunxi maintainers and members, Now that required drivers are merged we can contibute on DVFS support for Allwinner H6. This serie is based on Yangtao Li serie[0] and Ondřej Jirman work[1]. Most of the OPP tables are taken from original vendor kernel[2]. Plus there is a new CPU frequencies at 1.6GHz, 1.7GHz and 1.8GHz. I wrote a simple script to randomly set a frequency during a random time[3]. With this script and using stress-ng during several hours, I didn't see any issue. Moreover I have tested specifically the 1.8GHz on my Beelink GS1, max thermal 85°C is reached very quickly and then the SoC oscillates quickly between 1.5 and 1.8GHz. So i have added 1.6GHz and 1.7GHz my board now oscillate slower between 1.5GHz and 1.6GHz swapping every second and temperature is also morestable. I also test that that offlining CPU0 and doing DVFS on other CPUs works. As CPU regulator is only set for CPU0. But maybe it doesn't cost much to set the regulator for all the CPUs? Jernej test the GPU devfreq on several H6 board particulary the Tanix TX6 which doesn't have a proper dedicated PMIC and doesn't had any trouble with it. Do you think I can enable GPU OPP for all H6 Boards? Also Yangtao Li enable DVFS for Pine64, as I can't test it. I'm waiting for his ack or someone who has a Pine64 and can test this serie before reenabling this board. Thanks, Clément 0: https://patchwork.kernel.org/cover/10815117/ 1: https://megous.com/git/linux/log/?h=ths-5.7 2: https://github.com/orangepi-xunlong/OrangePiH6_Linux4_9/blob/master/arch/arm64/boot/dts/sunxi/sun50iw6p1.dtsi#L345-L517 3: https://gist.github.com/clementperon/55a055dae3f13bbd14fb39c0069fe2e2 Changes since v1 (thanks to Ondřej Jirman): - Remove Polling thermal - Add Orange Pi boards - Remove minimal voltage change for Beelink GS1 - Add ramp-deplay for GPU and CPU regulators - Push to thermal point to 85°C (Allwinner set them to 100°C and 115°C) - Added 1.6GHz and 1.7GHz to OPP table. Clément Péron (4): arm64: dts: allwinner: h6: Add GPU Operating Performance Points table arm64: configs: Enable sun50i cpufreq nvmem arm64: dts: allwinner: h6: Enable CPU and GPU opp tables for Beelink GS1 arm64: dts: allwinner: h6: Enable CPU and GPU opp tables for Orange Pi boards Ondrej Jirman (2): arm64: dts: allwinner: h6: Add thermal trip points/cooling map arm64: dts: allwinner: h6: Add CPU Operating Performance Points table Yangtao Li (1): arm64: dts: allwinner: h6: Add clock to CPU cores .../dts/allwinner/sun50i-h6-beelink-gs1.dts | 10 +- .../boot/dts/allwinner/sun50i-h6-cpu-opp.dtsi | 121 ++++++++++++++++++ .../boot/dts/allwinner/sun50i-h6-gpu-opp.dtsi | 74 +++++++++++ .../dts/allwinner/sun50i-h6-orangepi.dtsi | 10 +- arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 36 ++++++ arch/arm64/configs/defconfig | 1 + 6 files changed, 250 insertions(+), 2 deletions(-) create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h6-cpu-opp.dtsi create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h6-gpu-opp.dtsi -- 2.20.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 X-Spam-Level: X-Spam-Status: No, score=-8.5 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT 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 0BA43C2BA15 for ; Sun, 5 Apr 2020 17:36:13 +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 CDB3A2063A for ; Sun, 5 Apr 2020 17:36:12 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="RKMgMFFH"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="tTY8TD7u" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CDB3A2063A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com 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:MIME-Version:Message-Id:Date:Subject:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=fDI6vE+Bdqf/5aNNrY8n0HsONaetftmyVXVEvBvRR7U=; b=RKMgMFFH+kx8P4 RONGQK7TB3D8RifHvEU/BgS/2Uc39FfkEZuwbtG5hOJe68x7b+EYyfX+3pN2cSnWOsh9FZ/YD/5vO hSUw07Uil8Ztl31FPIp5fDYyoDDeRgia4SBqNG9Er77yFBMmvAdc4WiILXUkiqygUd6Tr+jdhEPMu 80UgLfe+VWYgjECujyHsEgzM7U2EiA8i/4vMJw7K3i/xwXH/ICiychNXxko/FvIUwKUdeBoQEXdqe ajI6xR78oGfeVlAddK2fEvy3oGlXET+qEu78e8GtvZNf10MeUL7Iiyct+W6ARCOpABZ579AJzm2G9 Tdub332mp8Q9BrxCbGQw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jL9Bs-0001aR-Gi; Sun, 05 Apr 2020 17:36:12 +0000 Received: from mail-wm1-x343.google.com ([2a00:1450:4864:20::343]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jL9Bp-0001Xe-QP for linux-arm-kernel@lists.infradead.org; Sun, 05 Apr 2020 17:36:11 +0000 Received: by mail-wm1-x343.google.com with SMTP id c195so6165085wme.1 for ; Sun, 05 Apr 2020 10:36:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=SRF6N8cRuZvvVCXMCOyMNsHazept9Ws44rtULXoUZv0=; b=tTY8TD7uDnvBkw/UoC8Tk43vS+8cikFxHyF9Om2gvwsmg+ktlq4rr31JyEUUafawmX bNfBrHvRqtWcuOfPacBJGOLPkY9/GHptKl1Wg4VeTcSodNXbjhEX5cxwZDqGouCSyqFO 5bsfr1Otud+9TNhTCn6Z1FPh4CNm5kStnSBksV2D006oWRzsOOUwR/u+YJ/iZxFvD1C7 5XcxfksQYbjLpzX8WGaoVNhfj6fiB4z6VGv4xVLO3ttinhEVh7+33e/tbm5BqC0ECApm PItcxqN3sN4j7Ck9f0BCkWTlsfTrf8uOA5D/PXrJeg/wZ3Y7JTauiqMzZdtjr4bjPELg ClkA== 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:date:message-id:mime-version :content-transfer-encoding; bh=SRF6N8cRuZvvVCXMCOyMNsHazept9Ws44rtULXoUZv0=; b=BDVgxAOGdhkeZclF3qQaI0HtKgr0qvyTJv0eahS3jTLUCJ3aDJcbcbp4vKdFWBeaPP sHXVcFLB/Oo0x/tjYai2OJrHIzXAKiXyHD/T95IT05Dzn2W7Ojcpl6OdWe/dSxqVP3fV 6xWF7LHpB6rqnWkPzBCFSRl8s6rBH2VQK5hgDhkDKDs7p4ZdW1+Z8xY0AKM0u7LjXabf 1R9jhyvI7r2QRLtrM2c8ACNv5chNnFnuWiuhBHg9NoeNIOiMg7qsXFnnbCUkN73ti2eu iHe+jdzR6sEaYpV5MCgYZs+ar1ybvnRWhjHbWS68FH1tICKj2fHrPSTi6fPTGjy2KJPP 07aw== X-Gm-Message-State: AGi0PuZS3qhjjBnqCm8RBhDCS1zr8W57+AoBdSB+2qVe0wDvBxX3CEef E1ycC4lsBFluraRFYqgRZDk= X-Google-Smtp-Source: APiQypJEdQdYeNEp0+y3WDmC4ooJao1v/Bv+H68S8EDXP68odyUR9G3QLytTafla8bD+dMOGZ5fhcQ== X-Received: by 2002:a7b:cf27:: with SMTP id m7mr9998785wmg.58.1586108165177; Sun, 05 Apr 2020 10:36:05 -0700 (PDT) Received: from localhost.localdomain (91-167-199-67.subs.proxad.net. [91.167.199.67]) by smtp.gmail.com with ESMTPSA id s13sm6031669wrw.20.2020.04.05.10.36.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 05 Apr 2020 10:36:04 -0700 (PDT) From: =?UTF-8?q?Cl=C3=A9ment=20P=C3=A9ron?= To: Maxime Ripard , Chen-Yu Tsai , Rob Herring Subject: [PATCH v2 0/7] Add support for Allwinner H6 DVFS Date: Sun, 5 Apr 2020 19:35:54 +0200 Message-Id: <20200405173601.24331-1-peron.clem@gmail.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200405_103609_857982_DA75298D X-CRM114-Status: GOOD ( 15.83 ) 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: devicetree@vger.kernel.org, linux-sunxi , =?UTF-8?q?Cl=C3=A9ment=20P=C3=A9ron?= , linux-kernel@vger.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+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgU3VueGkgbWFpbnRhaW5lcnMgYW5kIG1lbWJlcnMsCgpOb3cgdGhhdCByZXF1aXJlZCBkcml2 ZXJzIGFyZSBtZXJnZWQgd2UgY2FuIGNvbnRpYnV0ZSBvbiBEVkZTCnN1cHBvcnQgZm9yIEFsbHdp bm5lciBINi4KClRoaXMgc2VyaWUgaXMgYmFzZWQgb24gWWFuZ3RhbyBMaSBzZXJpZVswXSBhbmQg T25kxZllaiBKaXJtYW4gd29ya1sxXS4KCk1vc3Qgb2YgdGhlIE9QUCB0YWJsZXMgYXJlIHRha2Vu IGZyb20gb3JpZ2luYWwgdmVuZG9yIGtlcm5lbFsyXS4KUGx1cyB0aGVyZSBpcyBhIG5ldyBDUFUg ZnJlcXVlbmNpZXMgYXQgMS42R0h6LCAxLjdHSHogYW5kIDEuOEdIei4KCkkgd3JvdGUgYSBzaW1w bGUgc2NyaXB0IHRvIHJhbmRvbWx5IHNldCBhIGZyZXF1ZW5jeSBkdXJpbmcKYSByYW5kb20gdGlt ZVszXS4KV2l0aCB0aGlzIHNjcmlwdCBhbmQgdXNpbmcgc3RyZXNzLW5nIGR1cmluZyBzZXZlcmFs IGhvdXJzLCBJIGRpZG4ndApzZWUgYW55IGlzc3VlLiBNb3Jlb3ZlciBJIGhhdmUgdGVzdGVkIHNw ZWNpZmljYWxseSB0aGUgMS44R0h6IG9uIG15CkJlZWxpbmsgR1MxLCBtYXggdGhlcm1hbCA4NcKw QyBpcyByZWFjaGVkIHZlcnkgcXVpY2tseSBhbmQgdGhlbiB0aGUKU29DIG9zY2lsbGF0ZXMgcXVp Y2tseSBiZXR3ZWVuIDEuNSBhbmQgMS44R0h6LiBTbyBpIGhhdmUgYWRkZWQKMS42R0h6IGFuZCAx LjdHSHogbXkgYm9hcmQgbm93IG9zY2lsbGF0ZSBzbG93ZXIgYmV0d2VlbiAxLjVHSHogYW5kCjEu NkdIeiBzd2FwcGluZyBldmVyeSBzZWNvbmQgYW5kIHRlbXBlcmF0dXJlIGlzIGFsc28gbW9yZXN0 YWJsZS4KCkkgYWxzbyB0ZXN0IHRoYXQgdGhhdCBvZmZsaW5pbmcgQ1BVMCBhbmQgZG9pbmcgRFZG UyBvbiBvdGhlciBDUFVzCndvcmtzLiBBcyBDUFUgcmVndWxhdG9yIGlzIG9ubHkgc2V0IGZvciBD UFUwLgoKQnV0IG1heWJlIGl0IGRvZXNuJ3QgY29zdCBtdWNoIHRvIHNldCB0aGUgcmVndWxhdG9y IGZvciBhbGwgdGhlIENQVXM/CgpKZXJuZWogdGVzdCB0aGUgR1BVIGRldmZyZXEgb24gc2V2ZXJh bCBINiBib2FyZCBwYXJ0aWN1bGFyeSB0aGUKVGFuaXggVFg2IHdoaWNoIGRvZXNuJ3QgaGF2ZSBh IHByb3BlciBkZWRpY2F0ZWQgUE1JQyBhbmQgZG9lc24ndApoYWQgYW55IHRyb3VibGUgd2l0aCBp dC4KCkRvIHlvdSB0aGluayBJIGNhbiBlbmFibGUgR1BVIE9QUCBmb3IgYWxsIEg2IEJvYXJkcz8K CkFsc28gWWFuZ3RhbyBMaSBlbmFibGUgRFZGUyBmb3IgUGluZTY0LCBhcyBJIGNhbid0IHRlc3Qg aXQuCkknbSB3YWl0aW5nIGZvciBoaXMgYWNrIG9yIHNvbWVvbmUgd2hvIGhhcyBhIFBpbmU2NCBh bmQgY2FuIHRlc3QgdGhpcwpzZXJpZSBiZWZvcmUgcmVlbmFibGluZyB0aGlzIGJvYXJkLgoKVGhh bmtzLApDbMOpbWVudAoKMDogaHR0cHM6Ly9wYXRjaHdvcmsua2VybmVsLm9yZy9jb3Zlci8xMDgx NTExNy8KMTogaHR0cHM6Ly9tZWdvdXMuY29tL2dpdC9saW51eC9sb2cvP2g9dGhzLTUuNwoyOiBo dHRwczovL2dpdGh1Yi5jb20vb3JhbmdlcGkteHVubG9uZy9PcmFuZ2VQaUg2X0xpbnV4NF85L2Js b2IvbWFzdGVyL2FyY2gvYXJtNjQvYm9vdC9kdHMvc3VueGkvc3VuNTBpdzZwMS5kdHNpI0wzNDUt TDUxNwozOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9jbGVtZW50cGVyb24vNTVhMDU1ZGFlM2Yx M2JiZDE0ZmIzOWMwMDY5ZmUyZTIKCkNoYW5nZXMgc2luY2UgdjEgKHRoYW5rcyB0byBPbmTFmWVq IEppcm1hbik6CiAgLSBSZW1vdmUgUG9sbGluZyB0aGVybWFsCiAgLSBBZGQgT3JhbmdlIFBpIGJv YXJkcwogIC0gUmVtb3ZlIG1pbmltYWwgdm9sdGFnZSBjaGFuZ2UgZm9yIEJlZWxpbmsgR1MxCiAg LSBBZGQgcmFtcC1kZXBsYXkgZm9yIEdQVSBhbmQgQ1BVIHJlZ3VsYXRvcnMKICAtIFB1c2ggdG8g dGhlcm1hbCBwb2ludCB0byA4NcKwQyAoQWxsd2lubmVyIHNldCB0aGVtIHRvIDEwMMKwQyBhbmQg MTE1wrBDKQogIC0gQWRkZWQgMS42R0h6IGFuZCAxLjdHSHogdG8gT1BQIHRhYmxlLiAKCkNsw6lt ZW50IFDDqXJvbiAoNCk6CiAgYXJtNjQ6IGR0czogYWxsd2lubmVyOiBoNjogQWRkIEdQVSBPcGVy YXRpbmcgUGVyZm9ybWFuY2UgUG9pbnRzIHRhYmxlCiAgYXJtNjQ6IGNvbmZpZ3M6IEVuYWJsZSBz dW41MGkgY3B1ZnJlcSBudm1lbQogIGFybTY0OiBkdHM6IGFsbHdpbm5lcjogaDY6IEVuYWJsZSBD UFUgYW5kIEdQVSBvcHAgdGFibGVzIGZvciBCZWVsaW5rCiAgICBHUzEKICBhcm02NDogZHRzOiBh bGx3aW5uZXI6IGg2OiBFbmFibGUgQ1BVIGFuZCBHUFUgb3BwIHRhYmxlcyBmb3IgT3JhbmdlIFBp CiAgICBib2FyZHMKCk9uZHJlaiBKaXJtYW4gKDIpOgogIGFybTY0OiBkdHM6IGFsbHdpbm5lcjog aDY6IEFkZCB0aGVybWFsIHRyaXAgcG9pbnRzL2Nvb2xpbmcgbWFwCiAgYXJtNjQ6IGR0czogYWxs d2lubmVyOiBoNjogQWRkIENQVSBPcGVyYXRpbmcgUGVyZm9ybWFuY2UgUG9pbnRzIHRhYmxlCgpZ YW5ndGFvIExpICgxKToKICBhcm02NDogZHRzOiBhbGx3aW5uZXI6IGg2OiBBZGQgY2xvY2sgdG8g Q1BVIGNvcmVzCgogLi4uL2R0cy9hbGx3aW5uZXIvc3VuNTBpLWg2LWJlZWxpbmstZ3MxLmR0cyAg IHwgIDEwICstCiAuLi4vYm9vdC9kdHMvYWxsd2lubmVyL3N1bjUwaS1oNi1jcHUtb3BwLmR0c2kg fCAxMjEgKysrKysrKysrKysrKysrKysrCiAuLi4vYm9vdC9kdHMvYWxsd2lubmVyL3N1bjUwaS1o Ni1ncHUtb3BwLmR0c2kgfCAgNzQgKysrKysrKysrKysKIC4uLi9kdHMvYWxsd2lubmVyL3N1bjUw aS1oNi1vcmFuZ2VwaS5kdHNpICAgICB8ICAxMCArLQogYXJjaC9hcm02NC9ib290L2R0cy9hbGx3 aW5uZXIvc3VuNTBpLWg2LmR0c2kgIHwgIDM2ICsrKysrKwogYXJjaC9hcm02NC9jb25maWdzL2Rl ZmNvbmZpZyAgICAgICAgICAgICAgICAgIHwgICAxICsKIDYgZmlsZXMgY2hhbmdlZCwgMjUwIGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC9hcm02 NC9ib290L2R0cy9hbGx3aW5uZXIvc3VuNTBpLWg2LWNwdS1vcHAuZHRzaQogY3JlYXRlIG1vZGUg MTAwNjQ0IGFyY2gvYXJtNjQvYm9vdC9kdHMvYWxsd2lubmVyL3N1bjUwaS1oNi1ncHUtb3BwLmR0 c2kKCi0tIAoyLjIwLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxp c3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0 aW5mby9saW51eC1hcm0ta2VybmVsCg==