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=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 5BC38C433E6 for ; Tue, 22 Dec 2020 07:32:16 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 254B92313F for ; Tue, 22 Dec 2020 07:32:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726172AbgLVHcD (ORCPT ); Tue, 22 Dec 2020 02:32:03 -0500 Received: from esa.microchip.iphmx.com ([68.232.153.233]:37558 "EHLO esa.microchip.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725782AbgLVHcD (ORCPT ); Tue, 22 Dec 2020 02:32:03 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1608622321; x=1640158321; h=message-id:subject:from:to:cc:date:in-reply-to: references:mime-version:content-transfer-encoding; bh=fiSj1G3bsRHVgJi4A4NbaPKhuzCrlQNF4M9ZnyJ3ZQQ=; b=YRrzDwtMRgpamRvi+UFNV6xn0ktuJS3YpiSOU4DSVbE7EtmBdtriNc9n T0nPVajxpv2Hrrod3KEE8uvU0b+S0+vUESb0zTJ1ADigFFMs5UUHG7psC IXWZnOr1I+ImCtu8+ds7MSigk+f+yEHsjXT2JXrQnJj0ci3nnSlBu83aG ZR7MkFvU2y+PcPZ2zQ7EVvZQ770hYJsNOY1raXA9FPCVwL1twxueO5pvu j7kF9Z2tE3/F6+m6r94qEnZZB7ssuwZkt26iDmoVlCs8CpJWDRE+JFURW s2i5Yw3ul/uZ2IwrooggkenHNiP15Hv8gI2fF8CCtJt2GTxZao/tCMT2F A==; IronPort-SDR: Y+yNfPyybZTRusIEJfIptk1cWNyIdlvvxhNu0kFNxnzKm3ay01vsX7KAid0fIjOB5JWvZUmJuh hIhvVwQMVyLjgb7muGBJ5+gRKR0yR6CPpm5C3+e+wOiXsRET18WTajWg5bx9BDm/MJR++uNTzn iAazcKX8K9FbGDJzooTD56RO9b4sSFMQOG9fSzhhz3FIsMtxN0uLhcbAJYJK0eVkq1ghzRILrC fgme//W0hSsXg1Hp0C5Pr+CAjjT16T832ZAdXY56JaM08JFuthZ0Uw8aRbx3qjswJvwQWgmBKr wVA= X-IronPort-AV: E=Sophos;i="5.78,438,1599548400"; d="scan'208";a="108551061" Received: from smtpout.microchip.com (HELO email.microchip.com) ([198.175.253.82]) by esa1.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 22 Dec 2020 00:30:45 -0700 Received: from chn-vm-ex02.mchp-main.com (10.10.85.144) by chn-vm-ex01.mchp-main.com (10.10.85.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3; Tue, 22 Dec 2020 00:30:45 -0700 Received: from tyr.hegelund-hansen.dk (10.10.115.15) by chn-vm-ex02.mchp-main.com (10.10.85.144) with Microsoft SMTP Server id 15.1.1979.3 via Frontend Transport; Tue, 22 Dec 2020 00:30:42 -0700 Message-ID: Subject: Re: [RFC PATCH v2 1/8] dt-bindings: net: sparx5: Add sparx5-switch bindings From: Steen Hegelund To: Rob Herring CC: "David S. Miller" , Jakub Kicinski , Device Tree List , Andrew Lunn , Russell King , Lars Povlsen , Bjarni Jonasson , Microchip Linux Driver Support , Alexandre Belloni , Madalin Bucur , Nicolas Ferre , Mark Einon , Masahiro Yamada , "Arnd Bergmann" , , , Date: Tue, 22 Dec 2020 08:30:41 +0100 In-Reply-To: <20201221214041.GA599050@robh.at.kernel.org> References: <20201217075134.919699-1-steen.hegelund@microchip.com> <20201217075134.919699-2-steen.hegelund@microchip.com> <20201221214041.GA599050@robh.at.kernel.org> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.38.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Rob, On Mon, 2020-12-21 at 14:40 -0700, Rob Herring wrote: > EXTERNAL EMAIL: Do not click links or open attachments unless you > know the content is safe > > On Thu, Dec 17, 2020 at 08:51:27AM +0100, Steen Hegelund wrote: > > Document the Sparx5 switch device driver bindings > > > > Signed-off-by: Steen Hegelund > > Signed-off-by: Lars Povlsen > > --- > >  .../bindings/net/microchip,sparx5-switch.yaml | 178 > > ++++++++++++++++++ > >  1 file changed, 178 insertions(+) > >  create mode 100644 > > Documentation/devicetree/bindings/net/microchip,sparx5-switch.yaml > > > > diff --git > > a/Documentation/devicetree/bindings/net/microchip,sparx5- > > switch.yaml > > b/Documentation/devicetree/bindings/net/microchip,sparx5- > > switch.yaml > > new file mode 100644 > > index 000000000000..6e3ef8285e9a > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/net/microchip,sparx5- > > switch.yaml > > @@ -0,0 +1,178 @@ > > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause > > +%YAML 1.2 > > +--- > > +$id: > > http://devicetree.org/schemas/net/microchip,sparx5-switch.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Microchip Sparx5 Ethernet switch controller > > + > > +maintainers: > > +  - Lars Povlsen > > +  - Steen Hegelund > > + > > +description: | > > +  The SparX-5 Enterprise Ethernet switch family provides a rich > > set of > > +  Enterprise switching features such as advanced TCAM-based VLAN > > and > > +  QoS processing enabling delivery of differentiated services, and > > +  security through TCAM-based frame processing using versatile > > content > > +  aware processor (VCAP). > > + > > +  IPv4/IPv6 Layer 3 (L3) unicast and multicast routing is > > supported > > +  with up to 18K IPv4/9K IPv6 unicast LPM entries and up to 9K > > IPv4/3K > > +  IPv6 (S,G) multicast groups. > > + > > +  L3 security features include source guard and reverse path > > +  forwarding (uRPF) tasks. Additional L3 features include VRF-Lite > > and > > +  IP tunnels (IP over GRE/IP). > > + > > +  The SparX-5 switch family targets managed Layer 2 and Layer 3 > > +  equipment in SMB, SME, and Enterprise where high port count > > +  1G/2.5G/5G/10G switching with 10G/25G aggregation links is > > required. > > + > > +properties: > > +  $nodename: > > +    pattern: "^switch@[0-9a-f]+$" > > + > > +  compatible: > > +    const: microchip,sparx5-switch > > + > > +  reg: > > +    minItems: 2 > > + > > +  reg-names: > > +    minItems: 2 > > This is the default based on 'items' length. Does that mean that I should omit minItems here? > > > +    items: > > +      - const: devices > > +      - const: gcb > > + > > +  interrupts: > > +    maxItems: 1 > > +    description: Interrupt used for reception of packets to the > > CPU > > + > > +  ethernet-ports: > > +    type: object > > +    properties: > > +      '#address-cells': > > +        const: 1 > > +      '#size-cells': > > +        const: 0 > > + > > +    patternProperties: > > +      "^port@[0-9]+$": > > +        type: object > > +        description: Switch ports > > + > > +        allOf: > > +          - $ref: ethernet-controller.yaml# > > + > > +        properties: > > +          reg: > > +            description: Switch port number > > + > > +          max-speed: > > +            maxItems: 1 > > Is that an array? No it is just a single value. > > > +            description: Bandwidth allocated to this port > > + > > +          phys: > > How many? (maxItems) I will add "maxItems: 1" > > > +            description: phandle of a Ethernet Serdes PHY > > + > > +          phy-handle: > > +            description: phandle of a Ethernet PHY > > + > > +          phy-mode: > > +            description: Interface between the serdes and the phy > > The whole set of modes defined is supported? This driver does not impose any limits on phy-mode. It is passed on to the phy, so all modes are supported as I see it. > > > + > > +          sfp: > > +            description: phandle of an SFP > > + > > +          managed: > > +            maxItems: 1 > > An array? No just a single item. Thanks for your comments. BR Steen > > > +            description: SFP management > > + > > +        required: > > +          - reg > > +          - max-speed > > +          - phys > > + > > +        oneOf: > > +          - required: > > +              - phy-handle > > +              - phy-mode > > +          - required: > > +              - sfp > > +              - managed > > + > > +        additionalProperties: false > > + > > +required: > > +  - compatible > > +  - reg > > +  - reg-names > > +  - interrupts > > +  - ethernet-ports > > + > > +additionalProperties: false > > + > > +examples: > > +  - | > > +    #include > > +    switch: switch@600000000 { > > +      compatible = "microchip,sparx5-switch"; > > +      reg =  <0x10000000 0x800000>, > > +             <0x11010000 0x1b00000>; > > +      reg-names = "devices", "gcb"; > > + > > +      interrupts = ; > > +      ethernet-ports { > > +        #address-cells = <1>; > > +        #size-cells = <0>; > > + > > +        port0: port@0 { > > +          reg = <0>; > > +          max-speed = <1000>; > > +          phys = <&serdes 13>; > > +          phy-handle = <&phy0>; > > +          phy-mode = "qsgmii"; > > +        }; > > +        /* ... */ > > +        /* Then the 25G interfaces */ > > +        port60: port@60 { > > +          reg = <60>; > > +          max-speed = <25000>; > > +          phys = <&serdes 29>; > > +          sfp = <&sfp_eth60>; > > +          managed = "in-band-status"; > > +        }; > > +        port61: port@61 { > > +          reg = <61>; > > +          max-speed = <25000>; > > +          phys = <&serdes 30>; > > +          sfp = <&sfp_eth61>; > > +          managed = "in-band-status"; > > +        }; > > +        port62: port@62 { > > +          reg = <62>; > > +          max-speed = <25000>; > > +          phys = <&serdes 31>; > > +          sfp = <&sfp_eth62>; > > +          managed = "in-band-status"; > > +        }; > > +        port63: port@63 { > > +          reg = <63>; > > +          max-speed = <25000>; > > +          phys = <&serdes 32>; > > +          sfp = <&sfp_eth63>; > > +          managed = "in-band-status"; > > +        }; > > +        /* Finally the Management interface */ > > +        port64: port@64 { > > +          reg = <64>; > > +          max-speed = <1000>; > > +          phys = <&serdes 0>; > > +          phy-handle = <&phy64>; > > +          phy-mode = "sgmii"; > > +        }; > > +      }; > > +    }; > > + > > +... > > -- > > 2.29.2 > > 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=-13.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,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 E41DFC433DB for ; Tue, 22 Dec 2020 07:32:51 +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 62C242079A for ; Tue, 22 Dec 2020 07:32:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 62C242079A Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=microchip.com 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:MIME-Version:References:In-Reply-To:Date:To:From: Subject:Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=ZWDwPQFhyXm1KzdY6tFQpfum0wZf0iqEvbyl74HF7MY=; b=a/Bdndlap0ZmBXV65khVUHmZf nxGZ8AT0g8tly4UoCL2MuhHeeGw+Ux+6p7D9xg0tJILWMT70dtiIEaWFOolanX66jrfBPpikZRwPG 0BU5aaXC2PuDFwc3qdnCgtYrmWjL3oYA8f7wcyfcSF63B7wnU8/QqOktGJ/fe6JZm2Pc1h+RsM3kS dZ+JmxhgJ49cFr9i0Nso4J6ohP0q3N8HH9KEdqqDowK60wrTIzum2kGu+MXMyY/q4nzyET5wlh9Of Ryor3B6Jfb/ddO6b2FMqG/57gGRhAl4WMzbN3PIIImbWO+WkKxXUZH+f4zPuWwC16CRduTVZkLM/P WxFHu89Gw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1krc8B-0002Ou-K9; Tue, 22 Dec 2020 07:30:51 +0000 Received: from esa.microchip.iphmx.com ([68.232.153.233]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1krc88-0002Nw-D4 for linux-arm-kernel@lists.infradead.org; Tue, 22 Dec 2020 07:30:49 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1608622248; x=1640158248; h=message-id:subject:from:to:cc:date:in-reply-to: references:mime-version:content-transfer-encoding; bh=fiSj1G3bsRHVgJi4A4NbaPKhuzCrlQNF4M9ZnyJ3ZQQ=; b=hVwNgvNp1djbfs9Ahtg2th5YkRoQQ/+NcN9j69Gd9zy/ghPOxThdwSB2 /ok3rm1arXzM4S3TK5n+3Uc+SIIXTbDlr56towPMlV5kQ9jAdimj1aSyU 7HSlP6bsFRnoJ/fUQT2lOhrwrpmaXg/CknjC5JF34tgNy30dvOANVrzmv HoKF5TbDOWvL0OVvXJh/grYHGSqsprp1kgUS93/hshcEDeL+uUf9/vUQw J3z8O34E1leqh1fnbl2mlCgxocPbLNIuqH1zgs5St7jt7nGwhYuwxIbIh UQAxfl66QGwZODrtVwz7aRM7B9ICevumNSDEEpN97TZ49IMGwKfz/5Xzu A==; IronPort-SDR: Y+yNfPyybZTRusIEJfIptk1cWNyIdlvvxhNu0kFNxnzKm3ay01vsX7KAid0fIjOB5JWvZUmJuh hIhvVwQMVyLjgb7muGBJ5+gRKR0yR6CPpm5C3+e+wOiXsRET18WTajWg5bx9BDm/MJR++uNTzn iAazcKX8K9FbGDJzooTD56RO9b4sSFMQOG9fSzhhz3FIsMtxN0uLhcbAJYJK0eVkq1ghzRILrC fgme//W0hSsXg1Hp0C5Pr+CAjjT16T832ZAdXY56JaM08JFuthZ0Uw8aRbx3qjswJvwQWgmBKr wVA= X-IronPort-AV: E=Sophos;i="5.78,438,1599548400"; d="scan'208";a="108551061" Received: from smtpout.microchip.com (HELO email.microchip.com) ([198.175.253.82]) by esa1.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 22 Dec 2020 00:30:45 -0700 Received: from chn-vm-ex02.mchp-main.com (10.10.85.144) by chn-vm-ex01.mchp-main.com (10.10.85.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3; Tue, 22 Dec 2020 00:30:45 -0700 Received: from tyr.hegelund-hansen.dk (10.10.115.15) by chn-vm-ex02.mchp-main.com (10.10.85.144) with Microsoft SMTP Server id 15.1.1979.3 via Frontend Transport; Tue, 22 Dec 2020 00:30:42 -0700 Message-ID: Subject: Re: [RFC PATCH v2 1/8] dt-bindings: net: sparx5: Add sparx5-switch bindings From: Steen Hegelund To: Rob Herring Date: Tue, 22 Dec 2020 08:30:41 +0100 In-Reply-To: <20201221214041.GA599050@robh.at.kernel.org> References: <20201217075134.919699-1-steen.hegelund@microchip.com> <20201217075134.919699-2-steen.hegelund@microchip.com> <20201221214041.GA599050@robh.at.kernel.org> User-Agent: Evolution 3.38.2 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201222_023048_650472_589FB308 X-CRM114-Status: GOOD ( 29.65 ) 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: Andrew Lunn , Alexandre Belloni , linux-kernel@vger.kernel.org, Arnd Bergmann , Device Tree List , Madalin Bucur , netdev@vger.kernel.org, Masahiro Yamada , Russell King , Microchip Linux Driver Support , linux-arm-kernel@lists.infradead.org, Mark Einon , Jakub Kicinski , Bjarni Jonasson , "David S. Miller" , Lars Povlsen 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 SGkgUm9iLAoKT24gTW9uLCAyMDIwLTEyLTIxIGF0IDE0OjQwIC0wNzAwLCBSb2IgSGVycmluZyB3 cm90ZToKPiBFWFRFUk5BTCBFTUFJTDogRG8gbm90IGNsaWNrIGxpbmtzIG9yIG9wZW4gYXR0YWNo bWVudHMgdW5sZXNzIHlvdQo+IGtub3cgdGhlIGNvbnRlbnQgaXMgc2FmZQo+IAo+IE9uIFRodSwg RGVjIDE3LCAyMDIwIGF0IDA4OjUxOjI3QU0gKzAxMDAsIFN0ZWVuIEhlZ2VsdW5kIHdyb3RlOgo+ ID4gRG9jdW1lbnQgdGhlIFNwYXJ4NSBzd2l0Y2ggZGV2aWNlIGRyaXZlciBiaW5kaW5ncwo+ID4g Cj4gPiBTaWduZWQtb2ZmLWJ5OiBTdGVlbiBIZWdlbHVuZCA8c3RlZW4uaGVnZWx1bmRAbWljcm9j aGlwLmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IExhcnMgUG92bHNlbiA8bGFycy5wb3Zsc2VuQG1p Y3JvY2hpcC5jb20+Cj4gPiAtLS0KPiA+IMKgLi4uL2JpbmRpbmdzL25ldC9taWNyb2NoaXAsc3Bh cng1LXN3aXRjaC55YW1sIHwgMTc4Cj4gPiArKysrKysrKysrKysrKysrKysKPiA+IMKgMSBmaWxl IGNoYW5nZWQsIDE3OCBpbnNlcnRpb25zKCspCj4gPiDCoGNyZWF0ZSBtb2RlIDEwMDY0NAo+ID4g RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9taWNyb2NoaXAsc3Bhcng1LXN3 aXRjaC55YW1sCj4gPiAKPiA+IGRpZmYgLS1naXQKPiA+IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0 cmVlL2JpbmRpbmdzL25ldC9taWNyb2NoaXAsc3Bhcng1LQo+ID4gc3dpdGNoLnlhbWwKPiA+IGIv RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9taWNyb2NoaXAsc3Bhcng1LQo+ ID4gc3dpdGNoLnlhbWwKPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gPiBpbmRleCAwMDAwMDAw MDAwMDAuLjZlM2VmODI4NWU5YQo+ID4gLS0tIC9kZXYvbnVsbAo+ID4gKysrIGIvRG9jdW1lbnRh dGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9taWNyb2NoaXAsc3Bhcng1LQo+ID4gc3dpdGNo LnlhbWwKPiA+IEBAIC0wLDAgKzEsMTc4IEBACj4gPiArIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmll cjogR1BMLTIuMC1vbmx5IE9SIEJTRC0yLUNsYXVzZQo+ID4gKyVZQU1MIDEuMgo+ID4gKy0tLQo+ ID4gKyRpZDogCj4gPiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9uZXQvbWljcm9jaGlw LHNwYXJ4NS1zd2l0Y2gueWFtbCMKPiA+ICskc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcv bWV0YS1zY2hlbWFzL2NvcmUueWFtbCMKPiA+ICsKPiA+ICt0aXRsZTogTWljcm9jaGlwIFNwYXJ4 NSBFdGhlcm5ldCBzd2l0Y2ggY29udHJvbGxlcgo+ID4gKwo+ID4gK21haW50YWluZXJzOgo+ID4g K8KgIC0gTGFycyBQb3Zsc2VuIDxsYXJzLnBvdmxzZW5AbWljcm9jaGlwLmNvbT4KPiA+ICvCoCAt IFN0ZWVuIEhlZ2VsdW5kIDxzdGVlbi5oZWdlbHVuZEBtaWNyb2NoaXAuY29tPgo+ID4gKwo+ID4g K2Rlc2NyaXB0aW9uOiB8Cj4gPiArwqAgVGhlIFNwYXJYLTUgRW50ZXJwcmlzZSBFdGhlcm5ldCBz d2l0Y2ggZmFtaWx5IHByb3ZpZGVzIGEgcmljaAo+ID4gc2V0IG9mCj4gPiArwqAgRW50ZXJwcmlz ZSBzd2l0Y2hpbmcgZmVhdHVyZXMgc3VjaCBhcyBhZHZhbmNlZCBUQ0FNLWJhc2VkIFZMQU4KPiA+ IGFuZAo+ID4gK8KgIFFvUyBwcm9jZXNzaW5nIGVuYWJsaW5nIGRlbGl2ZXJ5IG9mIGRpZmZlcmVu dGlhdGVkIHNlcnZpY2VzLCBhbmQKPiA+ICvCoCBzZWN1cml0eSB0aHJvdWdoIFRDQU0tYmFzZWQg ZnJhbWUgcHJvY2Vzc2luZyB1c2luZyB2ZXJzYXRpbGUKPiA+IGNvbnRlbnQKPiA+ICvCoCBhd2Fy ZSBwcm9jZXNzb3IgKFZDQVApLgo+ID4gKwo+ID4gK8KgIElQdjQvSVB2NiBMYXllciAzIChMMykg dW5pY2FzdCBhbmQgbXVsdGljYXN0IHJvdXRpbmcgaXMKPiA+IHN1cHBvcnRlZAo+ID4gK8KgIHdp dGggdXAgdG8gMThLIElQdjQvOUsgSVB2NiB1bmljYXN0IExQTSBlbnRyaWVzIGFuZCB1cCB0byA5 Swo+ID4gSVB2NC8zSwo+ID4gK8KgIElQdjYgKFMsRykgbXVsdGljYXN0IGdyb3Vwcy4KPiA+ICsK PiA+ICvCoCBMMyBzZWN1cml0eSBmZWF0dXJlcyBpbmNsdWRlIHNvdXJjZSBndWFyZCBhbmQgcmV2 ZXJzZSBwYXRoCj4gPiArwqAgZm9yd2FyZGluZyAodVJQRikgdGFza3MuIEFkZGl0aW9uYWwgTDMg ZmVhdHVyZXMgaW5jbHVkZSBWUkYtTGl0ZQo+ID4gYW5kCj4gPiArwqAgSVAgdHVubmVscyAoSVAg b3ZlciBHUkUvSVApLgo+ID4gKwo+ID4gK8KgIFRoZSBTcGFyWC01IHN3aXRjaCBmYW1pbHkgdGFy Z2V0cyBtYW5hZ2VkIExheWVyIDIgYW5kIExheWVyIDMKPiA+ICvCoCBlcXVpcG1lbnQgaW4gU01C LCBTTUUsIGFuZCBFbnRlcnByaXNlIHdoZXJlIGhpZ2ggcG9ydCBjb3VudAo+ID4gK8KgIDFHLzIu NUcvNUcvMTBHIHN3aXRjaGluZyB3aXRoIDEwRy8yNUcgYWdncmVnYXRpb24gbGlua3MgaXMKPiA+ IHJlcXVpcmVkLgo+ID4gKwo+ID4gK3Byb3BlcnRpZXM6Cj4gPiArwqAgJG5vZGVuYW1lOgo+ID4g K8KgwqDCoCBwYXR0ZXJuOiAiXnN3aXRjaEBbMC05YS1mXSskIgo+ID4gKwo+ID4gK8KgIGNvbXBh dGlibGU6Cj4gPiArwqDCoMKgIGNvbnN0OiBtaWNyb2NoaXAsc3Bhcng1LXN3aXRjaAo+ID4gKwo+ ID4gK8KgIHJlZzoKPiA+ICvCoMKgwqAgbWluSXRlbXM6IDIKPiA+ICsKPiA+ICvCoCByZWctbmFt ZXM6Cj4gPiArwqDCoMKgIG1pbkl0ZW1zOiAyCj4gCj4gVGhpcyBpcyB0aGUgZGVmYXVsdCBiYXNl ZCBvbiAnaXRlbXMnIGxlbmd0aC4KCkRvZXMgdGhhdCBtZWFuIHRoYXQgSSBzaG91bGQgb21pdCBt aW5JdGVtcyBoZXJlPwoKPiAKPiA+ICvCoMKgwqAgaXRlbXM6Cj4gPiArwqDCoMKgwqDCoCAtIGNv bnN0OiBkZXZpY2VzCj4gPiArwqDCoMKgwqDCoCAtIGNvbnN0OiBnY2IKPiA+ICsKPiA+ICvCoCBp bnRlcnJ1cHRzOgo+ID4gK8KgwqDCoCBtYXhJdGVtczogMQo+ID4gK8KgwqDCoCBkZXNjcmlwdGlv bjogSW50ZXJydXB0IHVzZWQgZm9yIHJlY2VwdGlvbiBvZiBwYWNrZXRzIHRvIHRoZQo+ID4gQ1BV Cj4gPiArCj4gPiArwqAgZXRoZXJuZXQtcG9ydHM6Cj4gPiArwqDCoMKgIHR5cGU6IG9iamVjdAo+ ID4gK8KgwqDCoCBwcm9wZXJ0aWVzOgo+ID4gK8KgwqDCoMKgwqAgJyNhZGRyZXNzLWNlbGxzJzoK PiA+ICvCoMKgwqDCoMKgwqDCoCBjb25zdDogMQo+ID4gK8KgwqDCoMKgwqAgJyNzaXplLWNlbGxz JzoKPiA+ICvCoMKgwqDCoMKgwqDCoCBjb25zdDogMAo+ID4gKwo+ID4gK8KgwqDCoCBwYXR0ZXJu UHJvcGVydGllczoKPiA+ICvCoMKgwqDCoMKgICJecG9ydEBbMC05XSskIjoKPiA+ICvCoMKgwqDC oMKgwqDCoCB0eXBlOiBvYmplY3QKPiA+ICvCoMKgwqDCoMKgwqDCoCBkZXNjcmlwdGlvbjogU3dp dGNoIHBvcnRzCj4gPiArCj4gPiArwqDCoMKgwqDCoMKgwqAgYWxsT2Y6Cj4gPiArwqDCoMKgwqDC oMKgwqDCoMKgIC0gJHJlZjogZXRoZXJuZXQtY29udHJvbGxlci55YW1sIwo+ID4gKwo+ID4gK8Kg wqDCoMKgwqDCoMKgIHByb3BlcnRpZXM6Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgIHJlZzoKPiA+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRlc2NyaXB0aW9uOiBTd2l0Y2ggcG9ydCBudW1iZXIK PiA+ICsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqAgbWF4LXNwZWVkOgo+ID4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgbWF4SXRlbXM6IDEKPiAKPiBJcyB0aGF0IGFuIGFycmF5PwoKTm8gaXQgaXMg anVzdCBhIHNpbmdsZSB2YWx1ZS4KPiAKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRlc2Ny aXB0aW9uOiBCYW5kd2lkdGggYWxsb2NhdGVkIHRvIHRoaXMgcG9ydAo+ID4gKwo+ID4gK8KgwqDC oMKgwqDCoMKgwqDCoCBwaHlzOgo+IAo+IEhvdyBtYW55PyAobWF4SXRlbXMpCgpJIHdpbGwgYWRk ICJtYXhJdGVtczogMSIKCj4gCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkZXNjcmlwdGlv bjogcGhhbmRsZSBvZiBhIEV0aGVybmV0IFNlcmRlcyBQSFkKPiA+ICsKPiA+ICvCoMKgwqDCoMKg wqDCoMKgwqAgcGh5LWhhbmRsZToKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRlc2NyaXB0 aW9uOiBwaGFuZGxlIG9mIGEgRXRoZXJuZXQgUEhZCj4gPiArCj4gPiArwqDCoMKgwqDCoMKgwqDC oMKgIHBoeS1tb2RlOgo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZGVzY3JpcHRpb246IElu dGVyZmFjZSBiZXR3ZWVuIHRoZSBzZXJkZXMgYW5kIHRoZSBwaHkKPiAKPiBUaGUgd2hvbGUgc2V0 IG9mIG1vZGVzIGRlZmluZWQgaXMgc3VwcG9ydGVkPwoKVGhpcyBkcml2ZXIgZG9lcyBub3QgaW1w b3NlIGFueSBsaW1pdHMgb24gcGh5LW1vZGUuICBJdCBpcyBwYXNzZWQgb24gdG8KdGhlIHBoeSwg c28gYWxsIG1vZGVzIGFyZSBzdXBwb3J0ZWQgYXMgSSBzZWUgaXQuCgo+IAo+ID4gKwo+ID4gK8Kg wqDCoMKgwqDCoMKgwqDCoCBzZnA6Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkZXNjcmlw dGlvbjogcGhhbmRsZSBvZiBhbiBTRlAKPiA+ICsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqAgbWFu YWdlZDoKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1heEl0ZW1zOiAxCj4gCj4gQW4gYXJy YXk/CgpObyBqdXN0IGEgc2luZ2xlIGl0ZW0uCgoKVGhhbmtzIGZvciB5b3VyIGNvbW1lbnRzLgoK QlIKU3RlZW4KCj4gCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkZXNjcmlwdGlvbjogU0ZQ IG1hbmFnZW1lbnQKPiA+ICsKPiA+ICvCoMKgwqDCoMKgwqDCoCByZXF1aXJlZDoKPiA+ICvCoMKg wqDCoMKgwqDCoMKgwqAgLSByZWcKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqAgLSBtYXgtc3BlZWQK PiA+ICvCoMKgwqDCoMKgwqDCoMKgwqAgLSBwaHlzCj4gPiArCj4gPiArwqDCoMKgwqDCoMKgwqAg b25lT2Y6Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgIC0gcmVxdWlyZWQ6Cj4gPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgLSBwaHktaGFuZGxlCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgLSBwaHktbW9kZQo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoCAtIHJlcXVpcmVkOgo+ID4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC0gc2ZwCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgLSBtYW5hZ2VkCj4gPiArCj4gPiArwqDCoMKgwqDCoMKgwqAgYWRkaXRpb25hbFBy b3BlcnRpZXM6IGZhbHNlCj4gPiArCj4gPiArcmVxdWlyZWQ6Cj4gPiArwqAgLSBjb21wYXRpYmxl Cj4gPiArwqAgLSByZWcKPiA+ICvCoCAtIHJlZy1uYW1lcwo+ID4gK8KgIC0gaW50ZXJydXB0cwo+ ID4gK8KgIC0gZXRoZXJuZXQtcG9ydHMKPiA+ICsKPiA+ICthZGRpdGlvbmFsUHJvcGVydGllczog ZmFsc2UKPiA+ICsKPiA+ICtleGFtcGxlczoKPiA+ICvCoCAtIHwKPiA+ICvCoMKgwqAgI2luY2x1 ZGUgPGR0LWJpbmRpbmdzL2ludGVycnVwdC1jb250cm9sbGVyL2FybS1naWMuaD4KPiA+ICvCoMKg wqAgc3dpdGNoOiBzd2l0Y2hANjAwMDAwMDAwIHsKPiA+ICvCoMKgwqDCoMKgIGNvbXBhdGlibGUg PSAibWljcm9jaGlwLHNwYXJ4NS1zd2l0Y2giOwo+ID4gK8KgwqDCoMKgwqAgcmVnID3CoCA8MHgx MDAwMDAwMCAweDgwMDAwMD4sCj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDwweDExMDEw MDAwIDB4MWIwMDAwMD47Cj4gPiArwqDCoMKgwqDCoCByZWctbmFtZXMgPSAiZGV2aWNlcyIsICJn Y2IiOwo+ID4gKwo+ID4gK8KgwqDCoMKgwqAgaW50ZXJydXB0cyA9IDxHSUNfU1BJIDMwIElSUV9U WVBFX0xFVkVMX0hJR0g+Owo+ID4gK8KgwqDCoMKgwqAgZXRoZXJuZXQtcG9ydHMgewo+ID4gK8Kg wqDCoMKgwqDCoMKgICNhZGRyZXNzLWNlbGxzID0gPDE+Owo+ID4gK8KgwqDCoMKgwqDCoMKgICNz aXplLWNlbGxzID0gPDA+Owo+ID4gKwo+ID4gK8KgwqDCoMKgwqDCoMKgIHBvcnQwOiBwb3J0QDAg ewo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoCByZWcgPSA8MD47Cj4gPiArwqDCoMKgwqDCoMKgwqDC oMKgIG1heC1zcGVlZCA9IDwxMDAwPjsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqAgcGh5cyA9IDwm c2VyZGVzIDEzPjsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqAgcGh5LWhhbmRsZSA9IDwmcGh5MD47 Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgIHBoeS1tb2RlID0gInFzZ21paSI7Cj4gPiArwqDCoMKg wqDCoMKgwqAgfTsKPiA+ICvCoMKgwqDCoMKgwqDCoCAvKiAuLi4gKi8KPiA+ICvCoMKgwqDCoMKg wqDCoCAvKiBUaGVuIHRoZSAyNUcgaW50ZXJmYWNlcyAqLwo+ID4gK8KgwqDCoMKgwqDCoMKgIHBv cnQ2MDogcG9ydEA2MCB7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgIHJlZyA9IDw2MD47Cj4gPiAr wqDCoMKgwqDCoMKgwqDCoMKgIG1heC1zcGVlZCA9IDwyNTAwMD47Cj4gPiArwqDCoMKgwqDCoMKg wqDCoMKgIHBoeXMgPSA8JnNlcmRlcyAyOT47Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgIHNmcCA9 IDwmc2ZwX2V0aDYwPjsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqAgbWFuYWdlZCA9ICJpbi1iYW5k LXN0YXR1cyI7Cj4gPiArwqDCoMKgwqDCoMKgwqAgfTsKPiA+ICvCoMKgwqDCoMKgwqDCoCBwb3J0 NjE6IHBvcnRANjEgewo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoCByZWcgPSA8NjE+Owo+ID4gK8Kg wqDCoMKgwqDCoMKgwqDCoCBtYXgtc3BlZWQgPSA8MjUwMDA+Owo+ID4gK8KgwqDCoMKgwqDCoMKg wqDCoCBwaHlzID0gPCZzZXJkZXMgMzA+Owo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoCBzZnAgPSA8 JnNmcF9ldGg2MT47Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgIG1hbmFnZWQgPSAiaW4tYmFuZC1z dGF0dXMiOwo+ID4gK8KgwqDCoMKgwqDCoMKgIH07Cj4gPiArwqDCoMKgwqDCoMKgwqAgcG9ydDYy OiBwb3J0QDYyIHsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqAgcmVnID0gPDYyPjsKPiA+ICvCoMKg wqDCoMKgwqDCoMKgwqAgbWF4LXNwZWVkID0gPDI1MDAwPjsKPiA+ICvCoMKgwqDCoMKgwqDCoMKg wqAgcGh5cyA9IDwmc2VyZGVzIDMxPjsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqAgc2ZwID0gPCZz ZnBfZXRoNjI+Owo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoCBtYW5hZ2VkID0gImluLWJhbmQtc3Rh dHVzIjsKPiA+ICvCoMKgwqDCoMKgwqDCoCB9Owo+ID4gK8KgwqDCoMKgwqDCoMKgIHBvcnQ2Mzog cG9ydEA2MyB7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgIHJlZyA9IDw2Mz47Cj4gPiArwqDCoMKg wqDCoMKgwqDCoMKgIG1heC1zcGVlZCA9IDwyNTAwMD47Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKg IHBoeXMgPSA8JnNlcmRlcyAzMj47Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgIHNmcCA9IDwmc2Zw X2V0aDYzPjsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqAgbWFuYWdlZCA9ICJpbi1iYW5kLXN0YXR1 cyI7Cj4gPiArwqDCoMKgwqDCoMKgwqAgfTsKPiA+ICvCoMKgwqDCoMKgwqDCoCAvKiBGaW5hbGx5 IHRoZSBNYW5hZ2VtZW50IGludGVyZmFjZSAqLwo+ID4gK8KgwqDCoMKgwqDCoMKgIHBvcnQ2NDog cG9ydEA2NCB7Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgIHJlZyA9IDw2ND47Cj4gPiArwqDCoMKg wqDCoMKgwqDCoMKgIG1heC1zcGVlZCA9IDwxMDAwPjsKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqAg cGh5cyA9IDwmc2VyZGVzIDA+Owo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoCBwaHktaGFuZGxlID0g PCZwaHk2ND47Cj4gPiArwqDCoMKgwqDCoMKgwqDCoMKgIHBoeS1tb2RlID0gInNnbWlpIjsKPiA+ ICvCoMKgwqDCoMKgwqDCoCB9Owo+ID4gK8KgwqDCoMKgwqAgfTsKPiA+ICvCoMKgwqAgfTsKPiA+ ICsKPiA+ICsuLi4KPiA+IC0tCj4gPiAyLjI5LjIKPiA+IAoKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlz dApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJh ZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==