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=-14.0 required=3.0 tests=BAYES_00,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 DE860C433ED for ; Tue, 20 Apr 2021 18:50:49 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9A09A613D3 for ; Tue, 20 Apr 2021 18:50:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233381AbhDTSvU (ORCPT ); Tue, 20 Apr 2021 14:51:20 -0400 Received: from mail-oi1-f178.google.com ([209.85.167.178]:36504 "EHLO mail-oi1-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233092AbhDTSvT (ORCPT ); Tue, 20 Apr 2021 14:51:19 -0400 Received: by mail-oi1-f178.google.com with SMTP id v6so12143122oiv.3 for ; Tue, 20 Apr 2021 11:50:46 -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=Yq05HJjvXFWUCB70l0hIrexD734+DkLVVdC1qR6VUTw=; b=tC0wZpDUH/qz2wBUv+ezrMsgs/R8WfwAxVpPGUmtl3qEPXxTORkNQhmG1c1yAaQOp9 nbBFnyj0xI+6ON4W9qt5YQhz2eN+FPvihjoj+U1TLBNzkJ0W6uyz3zWwGZ8dFoyvr203 0vpNcK0ZZGxBzBsHoNc3wtvqVgPA3zitlC9sXFUvUl4bjumwLbqIrrLMvtKt2PhPpb6M ae7pHvTQatcicq2cwYVLGjVfYLSSZ9x6MWq/sL5dD5u2VH1HKvxzZIxB+Ui91DXYm/Si 1oeHScSTaxvRTcroqcCYwpawAW778zvkzOY6u8Tu3S4nltjJ5q7yi3O4perZsmmpRIyf YqJA== X-Gm-Message-State: AOAM533GSwOOoFKnf4u4vWIZrvv7EdhEbMbdqThyWPApzQqLLKwlM6MC hgtfqUlPhuKjqXJyFxRRtw== X-Google-Smtp-Source: ABdhPJxajGFz41NXUP8PH5Rz+4MCTQNuveFG9LtojTOGp8DtsmRHbl5++ibLnTHBXaLTT2I4DbxpuQ== X-Received: by 2002:a05:6808:13d0:: with SMTP id d16mr4171391oiw.169.1618944645965; Tue, 20 Apr 2021 11:50:45 -0700 (PDT) Received: from robh.at.kernel.org (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.gmail.com with ESMTPSA id q13sm3639357ool.7.2021.04.20.11.50.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Apr 2021 11:50:44 -0700 (PDT) Received: (nullmailer pid 3624157 invoked by uid 1000); Tue, 20 Apr 2021 18:50:43 -0000 Date: Tue, 20 Apr 2021 13:50:43 -0500 From: Rob Herring To: =?utf-8?B?UmFmYcWCIE1pxYJlY2tp?= Cc: Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Brian Norris , Kamal Dasu , linux-mtd@lists.infradead.org, devicetree@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com, =?utf-8?B?UmFmYcWCIE1pxYJlY2tp?= Subject: Re: [PATCH V2] dt-bindings: mtd: brcm,brcmnand: convert to the json-schema Message-ID: <20210420185043.GA3597594@robh.at.kernel.org> References: <20210416123339.14205-1-zajec5@gmail.com> <20210416195432.24595-1-zajec5@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20210416195432.24595-1-zajec5@gmail.com> Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org On Fri, Apr 16, 2021 at 09:54:32PM +0200, Rafał Miłecki wrote: > From: Rafał Miłecki > > This helps validating DTS files. > > Changes that require mentioning: > 1. Property "clock" was renamed to "clocks" > 2. Duplicated properties (defined in nand-controller.yaml) were dropped > 3. Compatible "brcm,nand-bcm63168" was added > > Examples changes: > 1. Nodes "nand" were renamed to "nand-controller" > 2. Nodes "nandcs" were renamed to "nand" > 3. Dropped partitions as they were using old syntax and are well > documented elsewhere anyway > > This rewritten binding validates cleanly using the "dt_binding_check". > Some Linux stored DTS files will require updating to make "dtbs_check" > happy. > > Signed-off-by: Rafał Miłecki > --- > V2: Drop example partitions that were using deprecated syntax-thanks Rob > --- > .../devicetree/bindings/mtd/brcm,brcmnand.txt | 186 ------------ > .../bindings/mtd/brcm,brcmnand.yaml | 265 ++++++++++++++++++ > 2 files changed, 265 insertions(+), 186 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/mtd/brcm,brcmnand.txt > create mode 100644 Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml > diff --git a/Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml b/Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml > new file mode 100644 > index 000000000000..c0f1e7747e23 > --- /dev/null > +++ b/Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml > @@ -0,0 +1,265 @@ > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/mtd/brcm,brcmnand.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Broadcom STB NAND Controller > + > +maintainers: > + - Brian Norris > + - Kamal Dasu > + > +description: | > + The Broadcom Set-Top Box NAND controller supports low-level access to raw NAND > + flash chips. It has a memory-mapped register interface for both control > + registers and for its data input/output buffer. On some SoCs, this controller > + is paired with a custom DMA engine (inventively named "Flash DMA") which > + supports basic PROGRAM and READ functions, among other features. > + > + This controller was originally designed for STB SoCs (BCM7xxx) but is now > + available on a variety of Broadcom SoCs, including some BCM3xxx, BCM63xx, and > + iProc/Cygnus. Its history includes several similar (but not fully register > + compatible) versions. > + > + -- Additional SoC-specific NAND controller properties -- > + > + The NAND controller is integrated differently on the variety of SoCs on which > + it is found. Part of this integration involves providing status and enable > + bits with which to control the 8 exposed NAND interrupts, as well as hardware > + for configuring the endianness of the data bus. On some SoCs, these features > + are handled via standard, modular components (e.g., their interrupts look like > + a normal IRQ chip), but on others, they are controlled in unique and > + interesting ways, sometimes with registers that lump multiple NAND-related > + functions together. The former case can be described simply by the standard > + interrupts properties in the main controller node. But for the latter > + exceptional cases, we define additional 'compatible' properties and associated > + register resources within the NAND controller node above. > + > +properties: > + compatible: > + oneOf: > + - items: > + - enum: > + - brcm,brcmnand-v2.1 > + - brcm,brcmnand-v2.2 > + - brcm,brcmnand-v4.0 > + - brcm,brcmnand-v5.0 > + - brcm,brcmnand-v6.0 > + - brcm,brcmnand-v6.1 > + - brcm,brcmnand-v6.2 > + - brcm,brcmnand-v7.0 > + - brcm,brcmnand-v7.1 > + - brcm,brcmnand-v7.2 > + - brcm,brcmnand-v7.3 > + - const: brcm,brcmnand > + - description: SoC-specific NAND controller > + items: > + - enum: > + - brcm,nand-bcm63138 > + - brcm,nand-iproc > + - enum: > + - brcm,brcmnand-v2.1 > + - brcm,brcmnand-v2.2 > + - brcm,brcmnand-v4.0 > + - brcm,brcmnand-v5.0 > + - brcm,brcmnand-v6.0 > + - brcm,brcmnand-v6.1 > + - brcm,brcmnand-v6.2 > + - brcm,brcmnand-v7.0 > + - brcm,brcmnand-v7.1 > + - brcm,brcmnand-v7.2 > + - brcm,brcmnand-v7.3 How can a specific SoC have all these different versions? > + - const: brcm,brcmnand > + - description: BCM6368 SoC-specific NAND controller > + items: > + - enum: > + - brcm,nand-bcm63168 > + - const: brcm,nand-bcm6368 > + - enum: > + - brcm,brcmnand-v2.1 > + - brcm,brcmnand-v2.2 > + - brcm,brcmnand-v4.0 > + - brcm,brcmnand-v5.0 > + - brcm,brcmnand-v6.0 > + - brcm,brcmnand-v6.1 > + - brcm,brcmnand-v6.2 > + - brcm,brcmnand-v7.0 > + - brcm,brcmnand-v7.1 > + - brcm,brcmnand-v7.2 > + - brcm,brcmnand-v7.3 > + - const: brcm,brcmnand > + > + reg: > + minItems: 1 > + maxItems: 6 > + > + reg-names: > + minItems: 1 > + maxItems: 6 > + items: > + - const: nand > + - enum: [ flash-dma, flash-edu, nand-cache, nand-int-base, iproc-idm, iproc-ext ] > + - enum: [ flash-dma, flash-edu, nand-cache, nand-int-base, iproc-idm, iproc-ext ] > + - enum: [ flash-dma, flash-edu, nand-cache, nand-int-base, iproc-idm, iproc-ext ] > + - enum: [ flash-dma, flash-edu, nand-cache, nand-int-base, iproc-idm, iproc-ext ] > + - enum: [ flash-dma, flash-edu, nand-cache, nand-int-base, iproc-idm, iproc-ext ] How many actual combinations do you need to support? A reasonable number can be listed out under a 'oneOf'. Given you're already explicit for 3 cases below, I think I'd just do: items: enum: [ nand, flash-dma, flash-edu, nand-cache, nand-int-base, iproc-idm, iproc-ext ] (Without the '-', 'items' is a schema rather than list and is applied to all entries.) > + > + interrupts: > + minItems: 1 > + maxItems: 3 > + items: > + - description: NAND CTLRDY interrupt > + - description: FLASH_DMA_DONE if flash DMA is available > + - description: FLASH_EDU_DONE if EDU is available > + > + interrupt-names: > + minItems: 1 > + maxItems: 3 > + items: > + - const: nand_ctlrdy > + - const: flash_dma_done > + - const: flash_edu_done > + > + clocks: > + maxItems: 1 > + description: reference to the clock for the NAND controller > + > + clock-names: > + const: nand > + > + brcm,nand-has-wp: > + description: > > + Some versions of this IP include a write-protect > + (WP) control bit. It is always available on >= > + v7.0. Use this property to describe the rare > + earlier versions of this core that include WP > + type: boolean > + > +patternProperties: > + "^nand@[a-f0-9]$": > + type: object > + properties: > + compatible: > + const: brcm,nandcs > + > + nand-ecc-step-size: > + enum: [ 512, 1024 ] > + > + brcm,nand-oob-sector-size: > + description: | > + integer, to denote the spare area sector size > + expected for the ECC layout in use. This size, in > + addition to the strength and step-size, > + determines how the hardware BCH engine will lay > + out the parity bytes it stores on the flash. > + This property can be automatically determined by > + the flash geometry (particularly the NAND page > + and OOB size) in many cases, but when booting > + from NAND, the boot controller has only a limited > + number of available options for its default ECC > + layout. > + $ref: /schemas/types.yaml#/definitions/uint32 > + > +allOf: > + - $ref: nand-controller.yaml# > + - if: > + properties: > + compatible: > + contains: > + const: brcm,nand-bcm63138 > + then: > + properties: > + reg-names: > + minItems: 2 > + maxItems: 2 > + items: > + - const: nand > + - const: nand-int-base > + - if: > + properties: > + compatible: > + contains: > + const: brcm,nand-bcm6368 > + then: > + properties: > + reg-names: > + minItems: 2 > + maxItems: 3 > + items: > + - const: nand > + - const: nand-int-base > + - const: nand-cache > + - if: > + properties: > + compatible: > + contains: > + const: brcm,nand-iproc > + then: > + properties: > + reg-names: > + minItems: 2 > + maxItems: 3 > + items: > + - const: nand > + - const: iproc-idm > + - const: iproc-ext > + > +unevaluatedProperties: false > + > +required: > + - reg > + - reg-names > + - interrupts > + > +examples: > + - | > + nand-controller@f0442800 { > + compatible = "brcm,brcmnand-v7.0", "brcm,brcmnand"; > + reg = <0xf0442800 0x600>, > + <0xf0443000 0x100>; > + reg-names = "nand", "flash-dma"; > + interrupt-parent = <&hif_intr2_intc>; > + interrupts = <24>, <4>; > + > + #address-cells = <1>; > + #size-cells = <0>; > + > + nand@1 { > + compatible = "brcm,nandcs"; > + reg = <1>; // Chip select 1 > + nand-on-flash-bbt; > + nand-ecc-strength = <12>; > + nand-ecc-step-size = <512>; > + > + #address-cells = <1>; > + #size-cells = <1>; > + }; > + }; > + - | > + nand-controller@10000200 { > + compatible = "brcm,nand-bcm63168", "brcm,nand-bcm6368", > + "brcm,brcmnand-v4.0", "brcm,brcmnand"; > + reg = <0x10000200 0x180>, > + <0x100000b0 0x10>, > + <0x10000600 0x200>; > + reg-names = "nand", "nand-int-base", "nand-cache"; > + interrupt-parent = <&periph_intc>; > + interrupts = <50>; > + clocks = <&periph_clk 20>; > + clock-names = "nand"; > + > + #address-cells = <1>; > + #size-cells = <0>; > + > + nand@0 { > + compatible = "brcm,nandcs"; > + reg = <0>; > + nand-on-flash-bbt; > + nand-ecc-strength = <1>; > + nand-ecc-step-size = <512>; > + > + #address-cells = <1>; > + #size-cells = <1>; > + }; > + }; > -- > 2.26.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=-14.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,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 8FD33C433ED for ; Tue, 20 Apr 2021 18:52:18 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 9C760613DC for ; Tue, 20 Apr 2021 18:52:17 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9C760613DC 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-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References:Message-ID: Subject:Cc: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=HglUxB7FJzpsYPreYtWTzjof8rExbuDx28884cxFY6U=; b=i/4y8QAOupXWMx5gIv7SQ4qzn OY97vNV+SG0g8URhZ2232YIblGqILdwxb185bt7QHDQJzSFKd/AGGnd4fMV/uO6LU+5ZLcQCZjPCa lMYUefWTAlvsKLFMttl7Zzv7a48hnegzw9fRHsTKYva8nRWBAPZZaTK0pdYdkH9Z2mIp11nA9uN41 qIV3sJudiLC+VqoJMY2+n2+GwICUH8gJ2E6kmS406l5v4BQt3hbqdlNYl8zPPvi9ZEoSy9/b6owqI INW8vV9QECDYLK1PkE1YrU4Khz/biJP8U6+fbt5Sw78CVvC0NI+AclVvqd6QUgmyaXkH0dfBQyxbC 8ypyLFFOQ==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lYvSb-00CtCG-KH; Tue, 20 Apr 2021 18:50:57 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lYvSW-00CtBW-Db for linux-mtd@desiato.infradead.org; Tue, 20 Apr 2021 18:50:52 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=In-Reply-To:Content-Transfer-Encoding :Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date: Sender:Reply-To:Content-ID:Content-Description; bh=Yq05HJjvXFWUCB70l0hIrexD734+DkLVVdC1qR6VUTw=; b=v0qlBqWRuszQiMFjbc959GeKPG tCmIWM1KVMNSsE2FjNB+ShwdBCMSBqSdVBDj/YU6+amXWLd0YglhJKdA8828j5D+h5urTdZt89SMn jfBGHt4Yo7ONtnlXfBsoKhQmIOvZgW/oCdvgjbZZPKLSnerY1UufdF1vgH52PHeUlR/rp2A9GVVcS 8KbS2KvDKvrLQYjqtuBz7niKwlrjaHM290NReiKqENYVdUcGRovl9Emc4w3lkF3MkMGL5rj2O2cas pKhBDRDbbHHNB58WfImA44cQpdQeDyregZnAvGlf9zx70Y5edayv1jvJ4+SQJKb7DRIDYk4Nhp3Du W0ofsEug==; Received: from mail-oi1-f173.google.com ([209.85.167.173]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lYvSR-00CMMd-37 for linux-mtd@lists.infradead.org; Tue, 20 Apr 2021 18:50:50 +0000 Received: by mail-oi1-f173.google.com with SMTP id n140so39935229oig.9 for ; Tue, 20 Apr 2021 11:50:46 -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=Yq05HJjvXFWUCB70l0hIrexD734+DkLVVdC1qR6VUTw=; b=hORW6lDCJc9bWhO6LJWMSjPYNB8lwCUQMMTw9V7fqFdRP1P529HY14HwA8Fj4k/Ib4 QsSQJIAFfzuPi3vvlNbQjWH06G3q2VZQ19jcPWmmWCAmaSltaKl4WGxrcQ3u7IH9E03m 8kb/dTirGIcBLkhxZNdMGMP9b9eNqwAkTy6phoNVO+jAootst47p33gcaxDsfQTzETaA uIgcuGfUkgULZbwSkIpw+dbB/P9DE+zGjZcbKeznGmbO+WLjsJqaOvCiJBI9WOOHcFIY JNvodW8eacwpANb6bOmqNC8u4RNc3+UXIR2Lj2hEak3tDMHd+s/sSvpzdGMzwa5rGG/A tSag== X-Gm-Message-State: AOAM533j8svGeh4Cfm6gA5U/ITUfn7mjofy5h55s7FtjgjNS8s6oXjlb 6ln7DUgPPARwpEgY5ntIIw== X-Google-Smtp-Source: ABdhPJxajGFz41NXUP8PH5Rz+4MCTQNuveFG9LtojTOGp8DtsmRHbl5++ibLnTHBXaLTT2I4DbxpuQ== X-Received: by 2002:a05:6808:13d0:: with SMTP id d16mr4171391oiw.169.1618944645965; Tue, 20 Apr 2021 11:50:45 -0700 (PDT) Received: from robh.at.kernel.org (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.gmail.com with ESMTPSA id q13sm3639357ool.7.2021.04.20.11.50.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Apr 2021 11:50:44 -0700 (PDT) Received: (nullmailer pid 3624157 invoked by uid 1000); Tue, 20 Apr 2021 18:50:43 -0000 Date: Tue, 20 Apr 2021 13:50:43 -0500 From: Rob Herring To: =?utf-8?B?UmFmYcWCIE1pxYJlY2tp?= Cc: Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Brian Norris , Kamal Dasu , linux-mtd@lists.infradead.org, devicetree@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com, =?utf-8?B?UmFmYcWCIE1pxYJlY2tp?= Subject: Re: [PATCH V2] dt-bindings: mtd: brcm,brcmnand: convert to the json-schema Message-ID: <20210420185043.GA3597594@robh.at.kernel.org> References: <20210416123339.14205-1-zajec5@gmail.com> <20210416195432.24595-1-zajec5@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20210416195432.24595-1-zajec5@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210420_115047_168431_5BE87DFA X-CRM114-Status: GOOD ( 36.90 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org T24gRnJpLCBBcHIgMTYsIDIwMjEgYXQgMDk6NTQ6MzJQTSArMDIwMCwgUmFmYcWCIE1pxYJlY2tp IHdyb3RlOgo+IEZyb206IFJhZmHFgiBNacWCZWNraSA8cmFmYWxAbWlsZWNraS5wbD4KPiAKPiBU aGlzIGhlbHBzIHZhbGlkYXRpbmcgRFRTIGZpbGVzLgo+IAo+IENoYW5nZXMgdGhhdCByZXF1aXJl IG1lbnRpb25pbmc6Cj4gMS4gUHJvcGVydHkgImNsb2NrIiB3YXMgcmVuYW1lZCB0byAiY2xvY2tz Igo+IDIuIER1cGxpY2F0ZWQgcHJvcGVydGllcyAoZGVmaW5lZCBpbiBuYW5kLWNvbnRyb2xsZXIu eWFtbCkgd2VyZSBkcm9wcGVkCj4gMy4gQ29tcGF0aWJsZSAiYnJjbSxuYW5kLWJjbTYzMTY4IiB3 YXMgYWRkZWQKPiAKPiBFeGFtcGxlcyBjaGFuZ2VzOgo+IDEuIE5vZGVzICJuYW5kIiB3ZXJlIHJl bmFtZWQgdG8gIm5hbmQtY29udHJvbGxlciIKPiAyLiBOb2RlcyAibmFuZGNzIiB3ZXJlIHJlbmFt ZWQgdG8gIm5hbmQiCj4gMy4gRHJvcHBlZCBwYXJ0aXRpb25zIGFzIHRoZXkgd2VyZSB1c2luZyBv bGQgc3ludGF4IGFuZCBhcmUgd2VsbAo+ICAgIGRvY3VtZW50ZWQgZWxzZXdoZXJlIGFueXdheQo+ IAo+IFRoaXMgcmV3cml0dGVuIGJpbmRpbmcgdmFsaWRhdGVzIGNsZWFubHkgdXNpbmcgdGhlICJk dF9iaW5kaW5nX2NoZWNrIi4KPiBTb21lIExpbnV4IHN0b3JlZCBEVFMgZmlsZXMgd2lsbCByZXF1 aXJlIHVwZGF0aW5nIHRvIG1ha2UgImR0YnNfY2hlY2siCj4gaGFwcHkuCj4gCj4gU2lnbmVkLW9m Zi1ieTogUmFmYcWCIE1pxYJlY2tpIDxyYWZhbEBtaWxlY2tpLnBsPgo+IC0tLQo+IFYyOiBEcm9w IGV4YW1wbGUgcGFydGl0aW9ucyB0aGF0IHdlcmUgdXNpbmcgZGVwcmVjYXRlZCBzeW50YXgtdGhh bmtzIFJvYgo+IC0tLQo+ICAuLi4vZGV2aWNldHJlZS9iaW5kaW5ncy9tdGQvYnJjbSxicmNtbmFu ZC50eHQgfCAxODYgLS0tLS0tLS0tLS0tCj4gIC4uLi9iaW5kaW5ncy9tdGQvYnJjbSxicmNtbmFu ZC55YW1sICAgICAgICAgICB8IDI2NSArKysrKysrKysrKysrKysrKysKPiAgMiBmaWxlcyBjaGFu Z2VkLCAyNjUgaW5zZXJ0aW9ucygrKSwgMTg2IGRlbGV0aW9ucygtKQo+ICBkZWxldGUgbW9kZSAx MDA2NDQgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL210ZC9icmNtLGJyY21uYW5k LnR4dAo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRp bmdzL210ZC9icmNtLGJyY21uYW5kLnlhbWwKCgo+IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9u L2RldmljZXRyZWUvYmluZGluZ3MvbXRkL2JyY20sYnJjbW5hbmQueWFtbCBiL0RvY3VtZW50YXRp b24vZGV2aWNldHJlZS9iaW5kaW5ncy9tdGQvYnJjbSxicmNtbmFuZC55YW1sCj4gbmV3IGZpbGUg bW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLmMwZjFlNzc0N2UyMwo+IC0tLSAvZGV2 L251bGwKPiArKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbXRkL2JyY20s YnJjbW5hbmQueWFtbAo+IEBAIC0wLDAgKzEsMjY1IEBACj4gKyMgU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEdQTC0yLjAtb25seSBPUiBCU0QtMi1DbGF1c2UKPiArJVlBTUwgMS4yCj4gKy0tLQo+ ICskaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL210ZC9icmNtLGJyY21uYW5kLnlh bWwjCj4gKyRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55 YW1sIwo+ICsKPiArdGl0bGU6IEJyb2FkY29tIFNUQiBOQU5EIENvbnRyb2xsZXIKPiArCj4gK21h aW50YWluZXJzOgo+ICsgIC0gQnJpYW4gTm9ycmlzIDxjb21wdXRlcnNmb3JwZWFjZUBnbWFpbC5j b20+Cj4gKyAgLSBLYW1hbCBEYXN1IDxrZGFzdS5rZGV2QGdtYWlsLmNvbT4KPiArCj4gK2Rlc2Ny aXB0aW9uOiB8Cj4gKyAgVGhlIEJyb2FkY29tIFNldC1Ub3AgQm94IE5BTkQgY29udHJvbGxlciBz dXBwb3J0cyBsb3ctbGV2ZWwgYWNjZXNzIHRvIHJhdyBOQU5ECj4gKyAgZmxhc2ggY2hpcHMuIEl0 IGhhcyBhIG1lbW9yeS1tYXBwZWQgcmVnaXN0ZXIgaW50ZXJmYWNlIGZvciBib3RoIGNvbnRyb2wK PiArICByZWdpc3RlcnMgYW5kIGZvciBpdHMgZGF0YSBpbnB1dC9vdXRwdXQgYnVmZmVyLiBPbiBz b21lIFNvQ3MsIHRoaXMgY29udHJvbGxlcgo+ICsgIGlzIHBhaXJlZCB3aXRoIGEgY3VzdG9tIERN QSBlbmdpbmUgKGludmVudGl2ZWx5IG5hbWVkICJGbGFzaCBETUEiKSB3aGljaAo+ICsgIHN1cHBv cnRzIGJhc2ljIFBST0dSQU0gYW5kIFJFQUQgZnVuY3Rpb25zLCBhbW9uZyBvdGhlciBmZWF0dXJl cy4KPiArCj4gKyAgVGhpcyBjb250cm9sbGVyIHdhcyBvcmlnaW5hbGx5IGRlc2lnbmVkIGZvciBT VEIgU29DcyAoQkNNN3h4eCkgYnV0IGlzIG5vdwo+ICsgIGF2YWlsYWJsZSBvbiBhIHZhcmlldHkg b2YgQnJvYWRjb20gU29DcywgaW5jbHVkaW5nIHNvbWUgQkNNM3h4eCwgQkNNNjN4eCwgYW5kCj4g KyAgaVByb2MvQ3lnbnVzLiBJdHMgaGlzdG9yeSBpbmNsdWRlcyBzZXZlcmFsIHNpbWlsYXIgKGJ1 dCBub3QgZnVsbHkgcmVnaXN0ZXIKPiArICBjb21wYXRpYmxlKSB2ZXJzaW9ucy4KPiArCj4gKyAg LS0gQWRkaXRpb25hbCBTb0Mtc3BlY2lmaWMgTkFORCBjb250cm9sbGVyIHByb3BlcnRpZXMgLS0K PiArCj4gKyAgVGhlIE5BTkQgY29udHJvbGxlciBpcyBpbnRlZ3JhdGVkIGRpZmZlcmVudGx5IG9u IHRoZSB2YXJpZXR5IG9mIFNvQ3Mgb24gd2hpY2gKPiArICBpdCBpcyBmb3VuZC4gUGFydCBvZiB0 aGlzIGludGVncmF0aW9uIGludm9sdmVzIHByb3ZpZGluZyBzdGF0dXMgYW5kIGVuYWJsZQo+ICsg IGJpdHMgd2l0aCB3aGljaCB0byBjb250cm9sIHRoZSA4IGV4cG9zZWQgTkFORCBpbnRlcnJ1cHRz LCBhcyB3ZWxsIGFzIGhhcmR3YXJlCj4gKyAgZm9yIGNvbmZpZ3VyaW5nIHRoZSBlbmRpYW5uZXNz IG9mIHRoZSBkYXRhIGJ1cy4gT24gc29tZSBTb0NzLCB0aGVzZSBmZWF0dXJlcwo+ICsgIGFyZSBo YW5kbGVkIHZpYSBzdGFuZGFyZCwgbW9kdWxhciBjb21wb25lbnRzIChlLmcuLCB0aGVpciBpbnRl cnJ1cHRzIGxvb2sgbGlrZQo+ICsgIGEgbm9ybWFsIElSUSBjaGlwKSwgYnV0IG9uIG90aGVycywg dGhleSBhcmUgY29udHJvbGxlZCBpbiB1bmlxdWUgYW5kCj4gKyAgaW50ZXJlc3Rpbmcgd2F5cywg c29tZXRpbWVzIHdpdGggcmVnaXN0ZXJzIHRoYXQgbHVtcCBtdWx0aXBsZSBOQU5ELXJlbGF0ZWQK PiArICBmdW5jdGlvbnMgdG9nZXRoZXIuIFRoZSBmb3JtZXIgY2FzZSBjYW4gYmUgZGVzY3JpYmVk IHNpbXBseSBieSB0aGUgc3RhbmRhcmQKPiArICBpbnRlcnJ1cHRzIHByb3BlcnRpZXMgaW4gdGhl IG1haW4gY29udHJvbGxlciBub2RlLiBCdXQgZm9yIHRoZSBsYXR0ZXIKPiArICBleGNlcHRpb25h bCBjYXNlcywgd2UgZGVmaW5lIGFkZGl0aW9uYWwgJ2NvbXBhdGlibGUnIHByb3BlcnRpZXMgYW5k IGFzc29jaWF0ZWQKPiArICByZWdpc3RlciByZXNvdXJjZXMgd2l0aGluIHRoZSBOQU5EIGNvbnRy b2xsZXIgbm9kZSBhYm92ZS4KPiArCj4gK3Byb3BlcnRpZXM6Cj4gKyAgY29tcGF0aWJsZToKPiAr ICAgIG9uZU9mOgo+ICsgICAgICAtIGl0ZW1zOgo+ICsgICAgICAgICAgLSBlbnVtOgo+ICsgICAg ICAgICAgICAgIC0gYnJjbSxicmNtbmFuZC12Mi4xCj4gKyAgICAgICAgICAgICAgLSBicmNtLGJy Y21uYW5kLXYyLjIKPiArICAgICAgICAgICAgICAtIGJyY20sYnJjbW5hbmQtdjQuMAo+ICsgICAg ICAgICAgICAgIC0gYnJjbSxicmNtbmFuZC12NS4wCj4gKyAgICAgICAgICAgICAgLSBicmNtLGJy Y21uYW5kLXY2LjAKPiArICAgICAgICAgICAgICAtIGJyY20sYnJjbW5hbmQtdjYuMQo+ICsgICAg ICAgICAgICAgIC0gYnJjbSxicmNtbmFuZC12Ni4yCj4gKyAgICAgICAgICAgICAgLSBicmNtLGJy Y21uYW5kLXY3LjAKPiArICAgICAgICAgICAgICAtIGJyY20sYnJjbW5hbmQtdjcuMQo+ICsgICAg ICAgICAgICAgIC0gYnJjbSxicmNtbmFuZC12Ny4yCj4gKyAgICAgICAgICAgICAgLSBicmNtLGJy Y21uYW5kLXY3LjMKPiArICAgICAgICAgIC0gY29uc3Q6IGJyY20sYnJjbW5hbmQKPiArICAgICAg LSBkZXNjcmlwdGlvbjogU29DLXNwZWNpZmljIE5BTkQgY29udHJvbGxlcgo+ICsgICAgICAgIGl0 ZW1zOgo+ICsgICAgICAgICAgLSBlbnVtOgo+ICsgICAgICAgICAgICAgIC0gYnJjbSxuYW5kLWJj bTYzMTM4Cj4gKyAgICAgICAgICAgICAgLSBicmNtLG5hbmQtaXByb2MKPiArICAgICAgICAgIC0g ZW51bToKPiArICAgICAgICAgICAgICAtIGJyY20sYnJjbW5hbmQtdjIuMQo+ICsgICAgICAgICAg ICAgIC0gYnJjbSxicmNtbmFuZC12Mi4yCj4gKyAgICAgICAgICAgICAgLSBicmNtLGJyY21uYW5k LXY0LjAKPiArICAgICAgICAgICAgICAtIGJyY20sYnJjbW5hbmQtdjUuMAo+ICsgICAgICAgICAg ICAgIC0gYnJjbSxicmNtbmFuZC12Ni4wCj4gKyAgICAgICAgICAgICAgLSBicmNtLGJyY21uYW5k LXY2LjEKPiArICAgICAgICAgICAgICAtIGJyY20sYnJjbW5hbmQtdjYuMgo+ICsgICAgICAgICAg ICAgIC0gYnJjbSxicmNtbmFuZC12Ny4wCj4gKyAgICAgICAgICAgICAgLSBicmNtLGJyY21uYW5k LXY3LjEKPiArICAgICAgICAgICAgICAtIGJyY20sYnJjbW5hbmQtdjcuMgo+ICsgICAgICAgICAg ICAgIC0gYnJjbSxicmNtbmFuZC12Ny4zCgpIb3cgY2FuIGEgc3BlY2lmaWMgU29DIGhhdmUgYWxs IHRoZXNlIGRpZmZlcmVudCB2ZXJzaW9ucz8KCj4gKyAgICAgICAgICAtIGNvbnN0OiBicmNtLGJy Y21uYW5kCj4gKyAgICAgIC0gZGVzY3JpcHRpb246IEJDTTYzNjggU29DLXNwZWNpZmljIE5BTkQg Y29udHJvbGxlcgo+ICsgICAgICAgIGl0ZW1zOgo+ICsgICAgICAgICAgLSBlbnVtOgo+ICsgICAg ICAgICAgICAgIC0gYnJjbSxuYW5kLWJjbTYzMTY4Cj4gKyAgICAgICAgICAtIGNvbnN0OiBicmNt LG5hbmQtYmNtNjM2OAo+ICsgICAgICAgICAgLSBlbnVtOgo+ICsgICAgICAgICAgICAgIC0gYnJj bSxicmNtbmFuZC12Mi4xCj4gKyAgICAgICAgICAgICAgLSBicmNtLGJyY21uYW5kLXYyLjIKPiAr ICAgICAgICAgICAgICAtIGJyY20sYnJjbW5hbmQtdjQuMAo+ICsgICAgICAgICAgICAgIC0gYnJj bSxicmNtbmFuZC12NS4wCj4gKyAgICAgICAgICAgICAgLSBicmNtLGJyY21uYW5kLXY2LjAKPiAr ICAgICAgICAgICAgICAtIGJyY20sYnJjbW5hbmQtdjYuMQo+ICsgICAgICAgICAgICAgIC0gYnJj bSxicmNtbmFuZC12Ni4yCj4gKyAgICAgICAgICAgICAgLSBicmNtLGJyY21uYW5kLXY3LjAKPiAr ICAgICAgICAgICAgICAtIGJyY20sYnJjbW5hbmQtdjcuMQo+ICsgICAgICAgICAgICAgIC0gYnJj bSxicmNtbmFuZC12Ny4yCj4gKyAgICAgICAgICAgICAgLSBicmNtLGJyY21uYW5kLXY3LjMKPiAr ICAgICAgICAgIC0gY29uc3Q6IGJyY20sYnJjbW5hbmQKPiArCj4gKyAgcmVnOgo+ICsgICAgbWlu SXRlbXM6IDEKPiArICAgIG1heEl0ZW1zOiA2Cj4gKwo+ICsgIHJlZy1uYW1lczoKPiArICAgIG1p bkl0ZW1zOiAxCj4gKyAgICBtYXhJdGVtczogNgo+ICsgICAgaXRlbXM6Cj4gKyAgICAgIC0gY29u c3Q6IG5hbmQKPiArICAgICAgLSBlbnVtOiBbIGZsYXNoLWRtYSwgZmxhc2gtZWR1LCBuYW5kLWNh Y2hlLCBuYW5kLWludC1iYXNlLCBpcHJvYy1pZG0sIGlwcm9jLWV4dCBdCj4gKyAgICAgIC0gZW51 bTogWyBmbGFzaC1kbWEsIGZsYXNoLWVkdSwgbmFuZC1jYWNoZSwgbmFuZC1pbnQtYmFzZSwgaXBy b2MtaWRtLCBpcHJvYy1leHQgXQo+ICsgICAgICAtIGVudW06IFsgZmxhc2gtZG1hLCBmbGFzaC1l ZHUsIG5hbmQtY2FjaGUsIG5hbmQtaW50LWJhc2UsIGlwcm9jLWlkbSwgaXByb2MtZXh0IF0KPiAr ICAgICAgLSBlbnVtOiBbIGZsYXNoLWRtYSwgZmxhc2gtZWR1LCBuYW5kLWNhY2hlLCBuYW5kLWlu dC1iYXNlLCBpcHJvYy1pZG0sIGlwcm9jLWV4dCBdCj4gKyAgICAgIC0gZW51bTogWyBmbGFzaC1k bWEsIGZsYXNoLWVkdSwgbmFuZC1jYWNoZSwgbmFuZC1pbnQtYmFzZSwgaXByb2MtaWRtLCBpcHJv Yy1leHQgXQoKSG93IG1hbnkgYWN0dWFsIGNvbWJpbmF0aW9ucyBkbyB5b3UgbmVlZCB0byBzdXBw b3J0PyBBIHJlYXNvbmFibGUgbnVtYmVyIApjYW4gYmUgbGlzdGVkIG91dCB1bmRlciBhICdvbmVP ZicuIAoKR2l2ZW4geW91J3JlIGFscmVhZHkgZXhwbGljaXQgZm9yIDMgY2FzZXMgYmVsb3csIEkg dGhpbmsgSSdkIGp1c3QgZG86CgppdGVtczoKICBlbnVtOiBbIG5hbmQsIGZsYXNoLWRtYSwgZmxh c2gtZWR1LCBuYW5kLWNhY2hlLCBuYW5kLWludC1iYXNlLCBpcHJvYy1pZG0sIGlwcm9jLWV4dCBd CgooV2l0aG91dCB0aGUgJy0nLCAnaXRlbXMnIGlzIGEgc2NoZW1hIHJhdGhlciB0aGFuIGxpc3Qg YW5kIGlzIGFwcGxpZWQgdG8gCmFsbCBlbnRyaWVzLikKCj4gKwo+ICsgIGludGVycnVwdHM6Cj4g KyAgICBtaW5JdGVtczogMQo+ICsgICAgbWF4SXRlbXM6IDMKPiArICAgIGl0ZW1zOgo+ICsgICAg ICAtIGRlc2NyaXB0aW9uOiBOQU5EIENUTFJEWSBpbnRlcnJ1cHQKPiArICAgICAgLSBkZXNjcmlw dGlvbjogRkxBU0hfRE1BX0RPTkUgaWYgZmxhc2ggRE1BIGlzIGF2YWlsYWJsZQo+ICsgICAgICAt IGRlc2NyaXB0aW9uOiBGTEFTSF9FRFVfRE9ORSBpZiBFRFUgaXMgYXZhaWxhYmxlCj4gKwo+ICsg IGludGVycnVwdC1uYW1lczoKPiArICAgIG1pbkl0ZW1zOiAxCj4gKyAgICBtYXhJdGVtczogMwo+ ICsgICAgaXRlbXM6Cj4gKyAgICAgIC0gY29uc3Q6IG5hbmRfY3RscmR5Cj4gKyAgICAgIC0gY29u c3Q6IGZsYXNoX2RtYV9kb25lCj4gKyAgICAgIC0gY29uc3Q6IGZsYXNoX2VkdV9kb25lCj4gKwo+ ICsgIGNsb2NrczoKPiArICAgIG1heEl0ZW1zOiAxCj4gKyAgICBkZXNjcmlwdGlvbjogcmVmZXJl bmNlIHRvIHRoZSBjbG9jayBmb3IgdGhlIE5BTkQgY29udHJvbGxlcgo+ICsKPiArICBjbG9jay1u YW1lczoKPiArICAgIGNvbnN0OiBuYW5kCj4gKwo+ICsgIGJyY20sbmFuZC1oYXMtd3A6Cj4gKyAg ICBkZXNjcmlwdGlvbjogPgo+ICsgICAgICBTb21lIHZlcnNpb25zIG9mIHRoaXMgSVAgaW5jbHVk ZSBhIHdyaXRlLXByb3RlY3QKPiArICAgICAgKFdQKSBjb250cm9sIGJpdC4gSXQgaXMgYWx3YXlz IGF2YWlsYWJsZSBvbiA+PQo+ICsgICAgICB2Ny4wLiBVc2UgdGhpcyBwcm9wZXJ0eSB0byBkZXNj cmliZSB0aGUgcmFyZQo+ICsgICAgICBlYXJsaWVyIHZlcnNpb25zIG9mIHRoaXMgY29yZSB0aGF0 IGluY2x1ZGUgV1AKPiArICAgIHR5cGU6IGJvb2xlYW4KPiArCj4gK3BhdHRlcm5Qcm9wZXJ0aWVz Ogo+ICsgICJebmFuZEBbYS1mMC05XSQiOgo+ICsgICAgdHlwZTogb2JqZWN0Cj4gKyAgICBwcm9w ZXJ0aWVzOgo+ICsgICAgICBjb21wYXRpYmxlOgo+ICsgICAgICAgIGNvbnN0OiBicmNtLG5hbmRj cwo+ICsKPiArICAgICAgbmFuZC1lY2Mtc3RlcC1zaXplOgo+ICsgICAgICAgIGVudW06IFsgNTEy LCAxMDI0IF0KPiArCj4gKyAgICAgIGJyY20sbmFuZC1vb2Itc2VjdG9yLXNpemU6Cj4gKyAgICAg ICAgZGVzY3JpcHRpb246IHwKPiArICAgICAgICAgIGludGVnZXIsIHRvIGRlbm90ZSB0aGUgc3Bh cmUgYXJlYSBzZWN0b3Igc2l6ZQo+ICsgICAgICAgICAgZXhwZWN0ZWQgZm9yIHRoZSBFQ0MgbGF5 b3V0IGluIHVzZS4gVGhpcyBzaXplLCBpbgo+ICsgICAgICAgICAgYWRkaXRpb24gdG8gdGhlIHN0 cmVuZ3RoIGFuZCBzdGVwLXNpemUsCj4gKyAgICAgICAgICBkZXRlcm1pbmVzIGhvdyB0aGUgaGFy ZHdhcmUgQkNIIGVuZ2luZSB3aWxsIGxheQo+ICsgICAgICAgICAgb3V0IHRoZSBwYXJpdHkgYnl0 ZXMgaXQgc3RvcmVzIG9uIHRoZSBmbGFzaC4KPiArICAgICAgICAgIFRoaXMgcHJvcGVydHkgY2Fu IGJlIGF1dG9tYXRpY2FsbHkgZGV0ZXJtaW5lZCBieQo+ICsgICAgICAgICAgdGhlIGZsYXNoIGdl b21ldHJ5IChwYXJ0aWN1bGFybHkgdGhlIE5BTkQgcGFnZQo+ICsgICAgICAgICAgYW5kIE9PQiBz aXplKSBpbiBtYW55IGNhc2VzLCBidXQgd2hlbiBib290aW5nCj4gKyAgICAgICAgICBmcm9tIE5B TkQsIHRoZSBib290IGNvbnRyb2xsZXIgaGFzIG9ubHkgYSBsaW1pdGVkCj4gKyAgICAgICAgICBu dW1iZXIgb2YgYXZhaWxhYmxlIG9wdGlvbnMgZm9yIGl0cyBkZWZhdWx0IEVDQwo+ICsgICAgICAg ICAgbGF5b3V0Lgo+ICsgICAgICAgICRyZWY6IC9zY2hlbWFzL3R5cGVzLnlhbWwjL2RlZmluaXRp b25zL3VpbnQzMgo+ICsKPiArYWxsT2Y6Cj4gKyAgLSAkcmVmOiBuYW5kLWNvbnRyb2xsZXIueWFt bCMKPiArICAtIGlmOgo+ICsgICAgICBwcm9wZXJ0aWVzOgo+ICsgICAgICAgIGNvbXBhdGlibGU6 Cj4gKyAgICAgICAgICBjb250YWluczoKPiArICAgICAgICAgICAgY29uc3Q6IGJyY20sbmFuZC1i Y202MzEzOAo+ICsgICAgdGhlbjoKPiArICAgICAgcHJvcGVydGllczoKPiArICAgICAgICByZWct bmFtZXM6Cj4gKyAgICAgICAgICBtaW5JdGVtczogMgo+ICsgICAgICAgICAgbWF4SXRlbXM6IDIK PiArICAgICAgICAgIGl0ZW1zOgo+ICsgICAgICAgICAgICAtIGNvbnN0OiBuYW5kCj4gKyAgICAg ICAgICAgIC0gY29uc3Q6IG5hbmQtaW50LWJhc2UKPiArICAtIGlmOgo+ICsgICAgICBwcm9wZXJ0 aWVzOgo+ICsgICAgICAgIGNvbXBhdGlibGU6Cj4gKyAgICAgICAgICBjb250YWluczoKPiArICAg ICAgICAgICAgY29uc3Q6IGJyY20sbmFuZC1iY202MzY4Cj4gKyAgICB0aGVuOgo+ICsgICAgICBw cm9wZXJ0aWVzOgo+ICsgICAgICAgIHJlZy1uYW1lczoKPiArICAgICAgICAgIG1pbkl0ZW1zOiAy Cj4gKyAgICAgICAgICBtYXhJdGVtczogMwo+ICsgICAgICAgICAgaXRlbXM6Cj4gKyAgICAgICAg ICAgIC0gY29uc3Q6IG5hbmQKPiArICAgICAgICAgICAgLSBjb25zdDogbmFuZC1pbnQtYmFzZQo+ ICsgICAgICAgICAgICAtIGNvbnN0OiBuYW5kLWNhY2hlCj4gKyAgLSBpZjoKPiArICAgICAgcHJv cGVydGllczoKPiArICAgICAgICBjb21wYXRpYmxlOgo+ICsgICAgICAgICAgY29udGFpbnM6Cj4g KyAgICAgICAgICAgIGNvbnN0OiBicmNtLG5hbmQtaXByb2MKPiArICAgIHRoZW46Cj4gKyAgICAg IHByb3BlcnRpZXM6Cj4gKyAgICAgICAgcmVnLW5hbWVzOgo+ICsgICAgICAgICAgbWluSXRlbXM6 IDIKPiArICAgICAgICAgIG1heEl0ZW1zOiAzCj4gKyAgICAgICAgICBpdGVtczoKPiArICAgICAg ICAgICAgLSBjb25zdDogbmFuZAo+ICsgICAgICAgICAgICAtIGNvbnN0OiBpcHJvYy1pZG0KPiAr ICAgICAgICAgICAgLSBjb25zdDogaXByb2MtZXh0Cj4gKwo+ICt1bmV2YWx1YXRlZFByb3BlcnRp ZXM6IGZhbHNlCj4gKwo+ICtyZXF1aXJlZDoKPiArICAtIHJlZwo+ICsgIC0gcmVnLW5hbWVzCj4g KyAgLSBpbnRlcnJ1cHRzCj4gKwo+ICtleGFtcGxlczoKPiArICAtIHwKPiArICAgIG5hbmQtY29u dHJvbGxlckBmMDQ0MjgwMCB7Cj4gKyAgICAgICAgICAgIGNvbXBhdGlibGUgPSAiYnJjbSxicmNt bmFuZC12Ny4wIiwgImJyY20sYnJjbW5hbmQiOwo+ICsgICAgICAgICAgICByZWcgPSA8MHhmMDQ0 MjgwMCAweDYwMD4sCj4gKyAgICAgICAgICAgICAgICAgIDwweGYwNDQzMDAwIDB4MTAwPjsKPiAr ICAgICAgICAgICAgcmVnLW5hbWVzID0gIm5hbmQiLCAiZmxhc2gtZG1hIjsKPiArICAgICAgICAg ICAgaW50ZXJydXB0LXBhcmVudCA9IDwmaGlmX2ludHIyX2ludGM+Owo+ICsgICAgICAgICAgICBp bnRlcnJ1cHRzID0gPDI0PiwgPDQ+Owo+ICsKPiArICAgICAgICAgICAgI2FkZHJlc3MtY2VsbHMg PSA8MT47Cj4gKyAgICAgICAgICAgICNzaXplLWNlbGxzID0gPDA+Owo+ICsKPiArICAgICAgICAg ICAgbmFuZEAxIHsKPiArICAgICAgICAgICAgICAgICAgICBjb21wYXRpYmxlID0gImJyY20sbmFu ZGNzIjsKPiArICAgICAgICAgICAgICAgICAgICByZWcgPSA8MT47IC8vIENoaXAgc2VsZWN0IDEK PiArICAgICAgICAgICAgICAgICAgICBuYW5kLW9uLWZsYXNoLWJidDsKPiArICAgICAgICAgICAg ICAgICAgICBuYW5kLWVjYy1zdHJlbmd0aCA9IDwxMj47Cj4gKyAgICAgICAgICAgICAgICAgICAg bmFuZC1lY2Mtc3RlcC1zaXplID0gPDUxMj47Cj4gKwo+ICsgICAgICAgICAgICAgICAgICAgICNh ZGRyZXNzLWNlbGxzID0gPDE+Owo+ICsgICAgICAgICAgICAgICAgICAgICNzaXplLWNlbGxzID0g PDE+Owo+ICsgICAgICAgICAgICB9Owo+ICsgICAgfTsKPiArICAtIHwKPiArICAgIG5hbmQtY29u dHJvbGxlckAxMDAwMDIwMCB7Cj4gKyAgICAgICAgICAgIGNvbXBhdGlibGUgPSAiYnJjbSxuYW5k LWJjbTYzMTY4IiwgImJyY20sbmFuZC1iY202MzY4IiwKPiArICAgICAgICAgICAgICAgICAgICAg ICAgICJicmNtLGJyY21uYW5kLXY0LjAiLCAiYnJjbSxicmNtbmFuZCI7Cj4gKyAgICAgICAgICAg IHJlZyA9IDwweDEwMDAwMjAwIDB4MTgwPiwKPiArICAgICAgICAgICAgICAgICAgPDB4MTAwMDAw YjAgMHgxMD4sCj4gKyAgICAgICAgICAgICAgICAgIDwweDEwMDAwNjAwIDB4MjAwPjsKPiArICAg ICAgICAgICAgcmVnLW5hbWVzID0gIm5hbmQiLCAibmFuZC1pbnQtYmFzZSIsICJuYW5kLWNhY2hl IjsKPiArICAgICAgICAgICAgaW50ZXJydXB0LXBhcmVudCA9IDwmcGVyaXBoX2ludGM+Owo+ICsg ICAgICAgICAgICBpbnRlcnJ1cHRzID0gPDUwPjsKPiArICAgICAgICAgICAgY2xvY2tzID0gPCZw ZXJpcGhfY2xrIDIwPjsKPiArICAgICAgICAgICAgY2xvY2stbmFtZXMgPSAibmFuZCI7Cj4gKwo+ ICsgICAgICAgICAgICAjYWRkcmVzcy1jZWxscyA9IDwxPjsKPiArICAgICAgICAgICAgI3NpemUt Y2VsbHMgPSA8MD47Cj4gKwo+ICsgICAgICAgICAgICBuYW5kQDAgewo+ICsgICAgICAgICAgICAg ICAgICAgIGNvbXBhdGlibGUgPSAiYnJjbSxuYW5kY3MiOwo+ICsgICAgICAgICAgICAgICAgICAg IHJlZyA9IDwwPjsKPiArICAgICAgICAgICAgICAgICAgICBuYW5kLW9uLWZsYXNoLWJidDsKPiAr ICAgICAgICAgICAgICAgICAgICBuYW5kLWVjYy1zdHJlbmd0aCA9IDwxPjsKPiArICAgICAgICAg ICAgICAgICAgICBuYW5kLWVjYy1zdGVwLXNpemUgPSA8NTEyPjsKPiArCj4gKyAgICAgICAgICAg ICAgICAgICAgI2FkZHJlc3MtY2VsbHMgPSA8MT47Cj4gKyAgICAgICAgICAgICAgICAgICAgI3Np emUtY2VsbHMgPSA8MT47Cj4gKyAgICAgICAgICAgIH07Cj4gKyAgICB9Owo+IC0tIAo+IDIuMjYu Mgo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkxpbnV4IE1URCBkaXNjdXNzaW9uIG1haWxpbmcgbGlzdApodHRwOi8vbGlzdHMuaW5mcmFk ZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW10ZC8K