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=-3.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS,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 CCFDFC43219 for ; Sun, 28 Apr 2019 12:53:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id A4A992075D for ; Sun, 28 Apr 2019 12:53:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726779AbfD1Mxp (ORCPT ); Sun, 28 Apr 2019 08:53:45 -0400 Received: from smtp-out.xnet.cz ([178.217.244.18]:45292 "EHLO smtp-out.xnet.cz" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726480AbfD1Mxm (ORCPT ); Sun, 28 Apr 2019 08:53:42 -0400 Received: from meh.true.cz (meh.true.cz [108.61.167.218]) (Authenticated sender: petr@true.cz) by smtp-out.xnet.cz (Postfix) with ESMTPSA id 4D2D44532; Sun, 28 Apr 2019 14:53:37 +0200 (CEST) Received: by meh.true.cz (OpenSMTPD) with ESMTP id c6257092; Sun, 28 Apr 2019 14:53:35 +0200 (CEST) From: =?UTF-8?q?Petr=20=C5=A0tetiar?= To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Matthias Brugger Cc: Andrew Lunn , Florian Fainelli , Heiner Kallweit , Rob Herring , Frank Rowand , Srinivas Kandagatla , Maxime Ripard , Alban Bedel , =?UTF-8?q?Petr=20=C5=A0tetiar?= , linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Subject: [PATCH v2 0/4] of_net: Add NVMEM support to of_get_mac_address Date: Sun, 28 Apr 2019 14:53:18 +0200 Message-Id: <1556456002-13430-1-git-send-email-ynezz@true.cz> X-Mailer: git-send-email 1.9.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, this patch series is a continuation of my previous attempt[1], where I've tried to wire MTD layer into of_get_mac_address, so it would be possible to load MAC addresses from various NVMEMs as EEPROMs etc. Predecessor of this patch which used directly MTD layer has originated in OpenWrt some time ago and supports already about 497 use cases in 357 device tree files. During the review process of my 1st attempt I was told, that I shouldn't be using MTD directly, but I should rather use new NVMEM subsystem, so this patch series tries to accommodate that. First patch is wiring NVMEM support directly into of_get_mac_address as it's obvious, that adding support for NVMEM into every other driver would mean adding a lot of repetitive code. This patch allows us to configure MAC addresses in various devices like ethernet and wireless adapters directly from of_get_mac_address, which is used by quite a lot of drivers in the tree already. Second patch is simply updating documentation with NVMEM bits, also adding some missing bits like mac-address and local-mac-address properties, which are currently supported by of_get_mac_address. Third and fourth patches are simply removing duplicate NVMEM code which is no longer needed as the first patch has added NVMEM support directly into of_get_mac_address. Just for a better picture, this patch series and one simple patch[2] on top of it, allows me to configure 8Devices Carambola2 board's MAC addresses with following DTS (simplified): &spi { flash@0 { partitions { art: partition@ff0000 { label = "art"; reg = <0xff0000 0x010000>; read-only; nvmem-cells { compatible = "nvmem-cells"; #address-cells = <1>; #size-cells = <1>; eth0_addr: eth-mac-addr@0 { reg = <0x0 0x6>; }; eth1_addr: eth-mac-addr@6 { reg = <0x6 0x6>; }; wmac_addr: wifi-mac-addr@1002 { reg = <0x1002 0x6>; }; }; }; }; }; }; ð0 { nvmem-cells = <ð0_addr>; nvmem-cell-names = "mac-address"; }; ð1 { nvmem-cells = <ð1_addr>; nvmem-cell-names = "mac-address"; }; &wmac { nvmem-cells = <&wmac_addr>; nvmem-cell-names = "mac-address"; }; 1. https://patchwork.ozlabs.org/patch/1086628/ 2. https://patchwork.ozlabs.org/patch/890738/ -- ynezz Petr Štetiar (4): of_net: Add NVMEM support to of_get_mac_address dt-bindings: doc: Reflect new NVMEM of_get_mac_address behaviour net: macb: Drop nvmem_get_mac_address usage net: davinci_emac: Drop nvmem_get_mac_address usage .../devicetree/bindings/net/altera_tse.txt | 5 ++- Documentation/devicetree/bindings/net/amd-xgbe.txt | 5 +-- .../devicetree/bindings/net/brcm,amac.txt | 4 +-- Documentation/devicetree/bindings/net/cpsw.txt | 5 +-- .../devicetree/bindings/net/davinci_emac.txt | 5 +-- Documentation/devicetree/bindings/net/dsa/dsa.txt | 13 ++----- Documentation/devicetree/bindings/net/ethernet.txt | 6 ++-- .../devicetree/bindings/net/hisilicon-femac.txt | 6 ++-- .../bindings/net/hisilicon-hix5hd2-gmac.txt | 7 ++-- .../devicetree/bindings/net/keystone-netcp.txt | 8 ++--- Documentation/devicetree/bindings/net/macb.txt | 5 ++- .../devicetree/bindings/net/marvell-pxa168.txt | 5 +-- .../devicetree/bindings/net/microchip,enc28j60.txt | 3 +- .../devicetree/bindings/net/microchip,lan78xx.txt | 5 ++- .../devicetree/bindings/net/qca,qca7000.txt | 4 ++- .../devicetree/bindings/net/samsung-sxgbe.txt | 6 ++-- .../bindings/net/snps,dwc-qos-ethernet.txt | 6 ++-- .../bindings/net/socionext,uniphier-ave4.txt | 4 +-- .../devicetree/bindings/net/socionext-netsec.txt | 7 ++-- .../bindings/net/wireless/mediatek,mt76.txt | 5 +-- .../devicetree/bindings/net/wireless/qca,ath9k.txt | 4 +-- drivers/net/ethernet/cadence/macb_main.c | 12 ++----- drivers/net/ethernet/ti/davinci_emac.c | 14 +++----- drivers/of/of_net.c | 42 ++++++++++++++++++++-- 24 files changed, 102 insertions(+), 84 deletions(-) -- 1.9.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=-3.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,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 D5697C4321A for ; Sun, 28 Apr 2019 12:53:54 +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 A6DAD20843 for ; Sun, 28 Apr 2019 12:53:54 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="AVFoiFhb" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A6DAD20843 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=true.cz 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=ScbgfdHBHHcKC4/iGjM83eGN479pU1gZPpJexoFKNtk=; b=AVFoiFhbfBxDZ1 jo6GWl2puZoQcn3rlDarNW3Vyj5gVNyDZDcjcKUHfy//cbcnwd8XcGGeMQSg9qY0FwRPyE7cxti2b lzSHnZOqHEeg8rO2M4K2ghObIGo3rbDfKcpU+5agYgGg/4EW7Oa190QJ6ChJ8eOgwXLKK+VxfYHsX 9bUz42j44PMIX1qS+B/59p9/lh33cUP/Mg2uumPIzPKuhhRvt5taYGofBD/bbGiruKwbKhJcdRC+M BzaO2yJKza8j2JZbsRfHSD2k+7SxglLGPlssqMVKFfNo8Y6V/DEhWGKCCwRQAKKTVDyl5HKQzAVRE HiQoideDLrhJW37umTkA==; 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 1hKjJV-0001rE-0w; Sun, 28 Apr 2019 12:53:49 +0000 Received: from smtp-out.xnet.cz ([178.217.244.18]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hKjJR-0001q9-Cj; Sun, 28 Apr 2019 12:53:47 +0000 Received: from meh.true.cz (meh.true.cz [108.61.167.218]) (Authenticated sender: petr@true.cz) by smtp-out.xnet.cz (Postfix) with ESMTPSA id 4D2D44532; Sun, 28 Apr 2019 14:53:37 +0200 (CEST) Received: by meh.true.cz (OpenSMTPD) with ESMTP id c6257092; Sun, 28 Apr 2019 14:53:35 +0200 (CEST) From: =?UTF-8?q?Petr=20=C5=A0tetiar?= To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Matthias Brugger Subject: [PATCH v2 0/4] of_net: Add NVMEM support to of_get_mac_address Date: Sun, 28 Apr 2019 14:53:18 +0200 Message-Id: <1556456002-13430-1-git-send-email-ynezz@true.cz> X-Mailer: git-send-email 1.9.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190428_055345_735966_68E29574 X-CRM114-Status: GOOD ( 11.22 ) 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: Andrew Lunn , Florian Fainelli , Maxime Ripard , linux-mediatek@lists.infradead.org, Rob Herring , Srinivas Kandagatla , Alban Bedel , =?UTF-8?q?Petr=20=C5=A0tetiar?= , Frank Rowand , linux-arm-kernel@lists.infradead.org, Heiner Kallweit 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 SGksCgp0aGlzIHBhdGNoIHNlcmllcyBpcyBhIGNvbnRpbnVhdGlvbiBvZiBteSBwcmV2aW91cyBh dHRlbXB0WzFdLCB3aGVyZSBJJ3ZlCnRyaWVkIHRvIHdpcmUgTVREIGxheWVyIGludG8gb2ZfZ2V0 X21hY19hZGRyZXNzLCBzbyBpdCB3b3VsZCBiZSBwb3NzaWJsZSB0bwpsb2FkIE1BQyBhZGRyZXNz ZXMgZnJvbSB2YXJpb3VzIE5WTUVNcyBhcyBFRVBST01zIGV0Yy4KClByZWRlY2Vzc29yIG9mIHRo aXMgcGF0Y2ggd2hpY2ggdXNlZCBkaXJlY3RseSBNVEQgbGF5ZXIgaGFzIG9yaWdpbmF0ZWQgaW4K T3BlbldydCBzb21lIHRpbWUgYWdvIGFuZCBzdXBwb3J0cyBhbHJlYWR5IGFib3V0IDQ5NyB1c2Ug Y2FzZXMgaW4gMzU3CmRldmljZSB0cmVlIGZpbGVzLgoKRHVyaW5nIHRoZSByZXZpZXcgcHJvY2Vz cyBvZiBteSAxc3QgYXR0ZW1wdCBJIHdhcyB0b2xkLCB0aGF0IEkgc2hvdWxkbid0IGJlCnVzaW5n IE1URCBkaXJlY3RseSwgYnV0IEkgc2hvdWxkIHJhdGhlciB1c2UgbmV3IE5WTUVNIHN1YnN5c3Rl bSwgc28gdGhpcwpwYXRjaCBzZXJpZXMgdHJpZXMgdG8gYWNjb21tb2RhdGUgdGhhdC4KCkZpcnN0 IHBhdGNoIGlzIHdpcmluZyBOVk1FTSBzdXBwb3J0IGRpcmVjdGx5IGludG8gb2ZfZ2V0X21hY19h ZGRyZXNzIGFzCml0J3Mgb2J2aW91cywgdGhhdCBhZGRpbmcgc3VwcG9ydCBmb3IgTlZNRU0gaW50 byBldmVyeSBvdGhlciBkcml2ZXIgd291bGQKbWVhbiBhZGRpbmcgYSBsb3Qgb2YgcmVwZXRpdGl2 ZSBjb2RlLiBUaGlzIHBhdGNoIGFsbG93cyB1cyB0byBjb25maWd1cmUgTUFDCmFkZHJlc3NlcyBp biB2YXJpb3VzIGRldmljZXMgbGlrZSBldGhlcm5ldCBhbmQgd2lyZWxlc3MgYWRhcHRlcnMgZGly ZWN0bHkKZnJvbSBvZl9nZXRfbWFjX2FkZHJlc3MsIHdoaWNoIGlzIHVzZWQgYnkgcXVpdGUgYSBs b3Qgb2YgZHJpdmVycyBpbiB0aGUKdHJlZSBhbHJlYWR5LgoKU2Vjb25kIHBhdGNoIGlzIHNpbXBs eSB1cGRhdGluZyBkb2N1bWVudGF0aW9uIHdpdGggTlZNRU0gYml0cywgYWxzbyBhZGRpbmcKc29t ZSBtaXNzaW5nIGJpdHMgbGlrZSBtYWMtYWRkcmVzcyBhbmQgbG9jYWwtbWFjLWFkZHJlc3MgcHJv cGVydGllcywgd2hpY2gKYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQgYnkgb2ZfZ2V0X21hY19hZGRy ZXNzLgoKVGhpcmQgYW5kIGZvdXJ0aCBwYXRjaGVzIGFyZSBzaW1wbHkgcmVtb3ZpbmcgZHVwbGlj YXRlIE5WTUVNIGNvZGUgd2hpY2ggaXMKbm8gbG9uZ2VyIG5lZWRlZCBhcyB0aGUgZmlyc3QgcGF0 Y2ggaGFzIGFkZGVkIE5WTUVNIHN1cHBvcnQgZGlyZWN0bHkgaW50bwpvZl9nZXRfbWFjX2FkZHJl c3MuCgpKdXN0IGZvciBhIGJldHRlciBwaWN0dXJlLCB0aGlzIHBhdGNoIHNlcmllcyBhbmQgb25l IHNpbXBsZSBwYXRjaFsyXSBvbiB0b3AKb2YgaXQsIGFsbG93cyBtZSB0byBjb25maWd1cmUgOERl dmljZXMgQ2FyYW1ib2xhMiBib2FyZCdzIE1BQyBhZGRyZXNzZXMKd2l0aCBmb2xsb3dpbmcgRFRT IChzaW1wbGlmaWVkKToKCiAmc3BpIHsKIAlmbGFzaEAwIHsKIAkJcGFydGl0aW9ucyB7CgkJCWFy dDogcGFydGl0aW9uQGZmMDAwMCB7CgkJCQlsYWJlbCA9ICJhcnQiOwoJCQkJcmVnID0gPDB4ZmYw MDAwIDB4MDEwMDAwPjsKCQkJCXJlYWQtb25seTsKCgkJCQludm1lbS1jZWxscyB7CgkJCQkJY29t cGF0aWJsZSA9ICJudm1lbS1jZWxscyI7CgkJCQkJI2FkZHJlc3MtY2VsbHMgPSA8MT47CgkJCQkJ I3NpemUtY2VsbHMgPSA8MT47CgoJCQkJCWV0aDBfYWRkcjogZXRoLW1hYy1hZGRyQDAgewoJCQkJ CQlyZWcgPSA8MHgwIDB4Nj47CgkJCQkJfTsKCgkJCQkJZXRoMV9hZGRyOiBldGgtbWFjLWFkZHJA NiB7CgkJCQkJCXJlZyA9IDwweDYgMHg2PjsKCQkJCQl9OwoKCQkJCQl3bWFjX2FkZHI6IHdpZmkt bWFjLWFkZHJAMTAwMiB7CgkJCQkJCXJlZyA9IDwweDEwMDIgMHg2PjsKCQkJCQl9OwoJCQkJfTsK CQkJfTsKCQl9OwoJfTsKIH07CgogJmV0aDAgewoJbnZtZW0tY2VsbHMgPSA8JmV0aDBfYWRkcj47 Cgludm1lbS1jZWxsLW5hbWVzID0gIm1hYy1hZGRyZXNzIjsKIH07CgogJmV0aDEgewoJbnZtZW0t Y2VsbHMgPSA8JmV0aDFfYWRkcj47Cgludm1lbS1jZWxsLW5hbWVzID0gIm1hYy1hZGRyZXNzIjsK IH07CgogJndtYWMgewoJbnZtZW0tY2VsbHMgPSA8JndtYWNfYWRkcj47Cgludm1lbS1jZWxsLW5h bWVzID0gIm1hYy1hZGRyZXNzIjsKIH07CgoKMS4gaHR0cHM6Ly9wYXRjaHdvcmsub3psYWJzLm9y Zy9wYXRjaC8xMDg2NjI4LwoyLiBodHRwczovL3BhdGNod29yay5vemxhYnMub3JnL3BhdGNoLzg5 MDczOC8KCi0tIHluZXp6CgpQZXRyIMWgdGV0aWFyICg0KToKICBvZl9uZXQ6IEFkZCBOVk1FTSBz dXBwb3J0IHRvIG9mX2dldF9tYWNfYWRkcmVzcwogIGR0LWJpbmRpbmdzOiBkb2M6IFJlZmxlY3Qg bmV3IE5WTUVNIG9mX2dldF9tYWNfYWRkcmVzcyBiZWhhdmlvdXIKICBuZXQ6IG1hY2I6IERyb3Ag bnZtZW1fZ2V0X21hY19hZGRyZXNzIHVzYWdlCiAgbmV0OiBkYXZpbmNpX2VtYWM6IERyb3AgbnZt ZW1fZ2V0X21hY19hZGRyZXNzIHVzYWdlCgogLi4uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2Fs dGVyYV90c2UudHh0ICAgICAgICAgfCAgNSArKy0KIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9i aW5kaW5ncy9uZXQvYW1kLXhnYmUudHh0IHwgIDUgKy0tCiAuLi4vZGV2aWNldHJlZS9iaW5kaW5n cy9uZXQvYnJjbSxhbWFjLnR4dCAgICAgICAgICB8ICA0ICstLQogRG9jdW1lbnRhdGlvbi9kZXZp Y2V0cmVlL2JpbmRpbmdzL25ldC9jcHN3LnR4dCAgICAgfCAgNSArLS0KIC4uLi9kZXZpY2V0cmVl L2JpbmRpbmdzL25ldC9kYXZpbmNpX2VtYWMudHh0ICAgICAgIHwgIDUgKy0tCiBEb2N1bWVudGF0 aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9kc2EudHh0ICB8IDEzICsrLS0tLS0KIERv Y3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZXRoZXJuZXQudHh0IHwgIDYgKyst LQogLi4uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2hpc2lsaWNvbi1mZW1hYy50eHQgICAgfCAg NiArKy0tCiAuLi4vYmluZGluZ3MvbmV0L2hpc2lsaWNvbi1oaXg1aGQyLWdtYWMudHh0ICAgICAg ICB8ICA3ICsrLS0KIC4uLi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9rZXlzdG9uZS1uZXRjcC50 eHQgICAgIHwgIDggKystLS0KIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQv bWFjYi50eHQgICAgIHwgIDUgKystCiAuLi4vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWFydmVs bC1weGExNjgudHh0ICAgICB8ICA1ICstLQogLi4uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21p Y3JvY2hpcCxlbmMyOGo2MC50eHQgfCAgMyArLQogLi4uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0 L21pY3JvY2hpcCxsYW43OHh4LnR4dCAgfCAgNSArKy0KIC4uLi9kZXZpY2V0cmVlL2JpbmRpbmdz L25ldC9xY2EscWNhNzAwMC50eHQgICAgICAgIHwgIDQgKystCiAuLi4vZGV2aWNldHJlZS9iaW5k aW5ncy9uZXQvc2Ftc3VuZy1zeGdiZS50eHQgICAgICB8ICA2ICsrLS0KIC4uLi9iaW5kaW5ncy9u ZXQvc25wcyxkd2MtcW9zLWV0aGVybmV0LnR4dCAgICAgICAgIHwgIDYgKystLQogLi4uL2JpbmRp bmdzL25ldC9zb2Npb25leHQsdW5pcGhpZXItYXZlNC50eHQgICAgICAgfCAgNCArLS0KIC4uLi9k ZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9zb2Npb25leHQtbmV0c2VjLnR4dCAgIHwgIDcgKystLQog Li4uL2JpbmRpbmdzL25ldC93aXJlbGVzcy9tZWRpYXRlayxtdDc2LnR4dCAgICAgICAgfCAgNSAr LS0KIC4uLi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC93aXJlbGVzcy9xY2EsYXRoOWsudHh0IHwg IDQgKy0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9jYWRlbmNlL21hY2JfbWFpbi5jICAgICAgICAg ICB8IDEyICsrLS0tLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L3RpL2RhdmluY2lfZW1hYy5jICAg ICAgICAgICAgIHwgMTQgKysrLS0tLS0KIGRyaXZlcnMvb2Yvb2ZfbmV0LmMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgNDIgKysrKysrKysrKysrKysrKysrKystLQogMjQgZmlsZXMg Y2hhbmdlZCwgMTAyIGluc2VydGlvbnMoKyksIDg0IGRlbGV0aW9ucygtKQoKLS0gCjEuOS4xCgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJt LWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3Jn Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtl cm5lbAo=