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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id AE1B4C46CD2 for ; Sun, 7 Jan 2024 03:03:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; 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=upuKKlfI4tOo2Rm4EKeESTwv9b7faQpvzjVNwtFZSns=; b=wgooOHRdSr6psX 9zs63x1LX0Mk8EOIzNM6Ry+8XULRPVPg0LpW6Ml5m/GX2q4cP9MCZbn5SihoVYi1JOIERYsSclWe4 amzXov4jEI3JtfcrWpSXJqKYoZN0sbu/lInymFcDbRZSbThtoAljw+Z7CFrZHCmQfxZhn/yNfd7U/ wV62SNfr+OJbEsmqxkPxAZWummFKGRwV/LORoUSDhxXUh9U3syQKmxYTHR8SD45h6SfLPNtHlQ3rv H+mNEHzU6DrS00pOvMs8z9DKxh6Mqkvqhr1H61hiUS3L0oI62Cb8tTikgn//nOnfcu/BnoaZwTTyB 5mNG4AitZT/UQAa7UszA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rMJRH-002Fwi-1e; Sun, 07 Jan 2024 03:03:03 +0000 Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rMJRD-002FwK-21 for linux-arm-kernel@lists.infradead.org; Sun, 07 Jan 2024 03:03:01 +0000 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-28d0052beb0so385886a91.0 for ; Sat, 06 Jan 2024 19:02:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1704596578; x=1705201378; darn=lists.infradead.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=4snqkhUuEW8ZG394EttlpuQ67DH0d6MbBqMG4Ly3wkQ=; b=gphl1+RtyloHi9os8aJClipg+l6pBVTD1y00ey6DRTes1zwdY+7jgb2PpO7OJeeiCd IkHIuhys4gu/d2n5lmjiA3FauUIcScVDp6w43kRSgHzj0W2BPartbPTQDJLVB9Y7yffu O90kHZ/9NaRztip9thUgXnwo0L2jPhEm38xcL+0hIG9dTIsHyVksdHbXBf732Fu+KG8F AFDIyCFnpqoE2cL+n4UoiOTswcQJMRAvwZIX6m4LeBiZQEmpfngc0S1LKbkFCh3lbVTE 85bbLpBrs3WR9gPLpVnFeNQFQE6QK1FhSXqbRsw0GdLhu5EDAoJqMQ1LaG8Ua51Pu+K0 XP0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704596578; x=1705201378; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=4snqkhUuEW8ZG394EttlpuQ67DH0d6MbBqMG4Ly3wkQ=; b=pR/vpVUVNIMYm9v4u6p+iKQaHuwxUYb5KNdMM7mCU1GuLNlvAXtpKPHCFygCV1ZWC2 kkQEYO0xhENIa9U1s6P6rBNlzNi6YlAGliiye6+vIhP62D6T5XU3CsPwzF7iYqYgsXhE IAfoIUXLBQ6HLukGC97UyhZI94o6UYsd+a2OZJ1tGFhc09nqSFxIJ+pssy6Ks5zWO3Nd 5CQe9P8461JlJ0exlVjdUhqbEl7R9jTjZhohFLx0ih+pAKeGiWLASUiu+MCQF1lXE6Om F5DazQ6kqymrMM1kIjyK1UUW1lUqM6EaBwH2b1/J/So2TXdil6D9biF22XR0uHBsIPHC 9ZIA== X-Gm-Message-State: AOJu0Yx0eg8GmFyflDB+zN5Q4Ru/gUO0/hPgHRfSDZ3aIjCyJYapffpq CnTc3wfG6+kIk5jzlrFaZ9S7M50fMIyq X-Google-Smtp-Source: AGHT+IFWNyeYcLOxjx7kAt+wXSssgse708DUrf3+R7FincnxfWyy3UrvW3wRM0k+wcgdhEKojCyxOg== X-Received: by 2002:a05:6a20:a89a:b0:199:a10e:13e5 with SMTP id ca26-20020a056a20a89a00b00199a10e13e5mr5093pzb.43.1704596578093; Sat, 06 Jan 2024 19:02:58 -0800 (PST) Received: from thinkpad ([103.197.115.97]) by smtp.gmail.com with ESMTPSA id jb19-20020a170903259300b001d4bcf6cc43sm3707804plb.81.2024.01.06.19.02.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Jan 2024 19:02:57 -0800 (PST) Date: Sun, 7 Jan 2024 08:32:47 +0530 From: Manivannan Sadhasivam To: Frank Li Cc: krzysztof.kozlowski@linaro.org, bhelgaas@google.com, conor+dt@kernel.org, devicetree@vger.kernel.org, festevam@gmail.com, helgaas@kernel.org, hongxing.zhu@nxp.com, imx@lists.linux.dev, kernel@pengutronix.de, krzysztof.kozlowski+dt@linaro.org, kw@linux.com, l.stach@pengutronix.de, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lpieralisi@kernel.org, robh@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org Subject: Re: [PATCH v7 01/16] PCI: imx6: Simplify clock handling by using bulk_clk_*() function Message-ID: <20240107030247.GA3416@thinkpad> References: <20231227182727.1747435-1-Frank.Li@nxp.com> <20231227182727.1747435-2-Frank.Li@nxp.com> <20240106152708.GD2512@thinkpad> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240106_190259_751118_DC976D5F X-CRM114-Status: GOOD ( 35.92 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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 T24gU2F0LCBKYW4gMDYsIDIwMjQgYXQgMTE6NDg6MzVBTSAtMDUwMCwgRnJhbmsgTGkgd3JvdGU6 Cj4gT24gU2F0LCBKYW4gMDYsIDIwMjQgYXQgMDg6NTc6MDhQTSArMDUzMCwgTWFuaXZhbm5hbiBT YWRoYXNpdmFtIHdyb3RlOgo+ID4gT24gV2VkLCBEZWMgMjcsIDIwMjMgYXQgMDE6Mjc6MTJQTSAt MDUwMCwgRnJhbmsgTGkgd3JvdGU6Cj4gPiAKPiA+IFN1YmplY3QgbWVudGlvbnMsICdidWxrX2Ns aycgQVBJcyBidXQgdGhlcmUgaXMgbm8gc3VjaCB0aGluZy4gSXQgc2hvdWxkIGJlCj4gPiAnY2xr X2J1bGsoKScgQVBJcy4KPiA+IAo+ID4gPiBSZWZhY3RvcnMgdGhlIGNsb2NrIGhhbmRsaW5nIGxv Z2ljLiBBZGRzIGNsa19uYW1lc1tdIGRlZmluZSBpbiBkcnZkYXRhLgo+ID4gPiBVc2luZyBjbGtf YnVsayooKSBhcGkgc2ltcGxpZmllcyB0aGUgY29kZS4KPiA+ID4gCj4gPiAKPiA+IEkndmUgbWVu dGlvbmVkIHRoaXMgbWFueSB0aW1lcyBpbiB0aGUgcGFzdC4gQnV0IGxldCBtZSByZWl0ZXJhdGUg aGVyZSBhZ2FpbjoKPiA+IAo+ID4gQ29tbWl0IG1lc3NhZ2Ugc2hvdWxkIGJlIGluIGltcGVyYXRp dmUgbW9vZCBhcyBwZXIgTGludXggS2VybmVsIHJ1bGVzIGZvcgo+ID4gc3VibWl0dGluZyBwYXRj aGVzLiBQbGVhc2Ugc2VlIGhlcmU6Cj4gPiBEb2N1bWVudGF0aW9uL3Byb2Nlc3Mvc3VibWl0dGlu Zy1wYXRjaGVzLnJzdAo+ID4gCj4gPiBUaGUgcmVsZXZhbnQgcGFydCBpczoKPiA+IAo+ID4gIkRl c2NyaWJlIHlvdXIgY2hhbmdlcyBpbiBpbXBlcmF0aXZlIG1vb2QsIGUuZy4gIm1ha2UgeHl6enkg ZG8gZnJvdHoiCj4gPiBpbnN0ZWFkIG9mICJbVGhpcyBwYXRjaF0gbWFrZXMgeHl6enkgZG8gZnJv dHoiIG9yICJbSV0gY2hhbmdlZCB4eXp6eQo+ID4gdG8gZG8gZnJvdHoiLCBhcyBpZiB5b3UgYXJl IGdpdmluZyBvcmRlcnMgdG8gdGhlIGNvZGViYXNlIHRvIGNoYW5nZQo+ID4gaXRzIGJlaGF2aW91 ci4iCj4gPiAKPiA+IFBsZWFzZSB1c2UgdGhpcyBzYW1lIGZvcm1hdCBmb3IgcmVzdCBvZiB0aGUg cGF0Y2hlcyBhcyB3ZWxsIGZvciBmdXR1cmUgb25lcy4KPiAKPiBJIG1heSBoYXZlIG5vdCB1bmRl cnN0YW5kICppbXBlcmF0aXZlIG1vZGUqLiBBc2tlZCBhbiBFbmdsaXNoIG5hdGl2ZQo+IHNwZWFr ZXIuIERvIHlvdSBtZW5hcwo+IAo+ICpSZWZlY3RvciogdGhlIGNsb2NrIGhhbmRsaW5nIGxvZ2lj LiAqQWRkKiBjbGtfbmFtZXNbXSBkZWZpbmUgaW4gZHJ2ZGF0YS4KPiAqVXNlKiBjbGtfYnVsayoo KSBhcGkgKnNpbXBsaWZ5KiB0aGUgY29kZS4KClllcyEKCj4gCj4gPiAKPiA+ID4gU2lnbmVkLW9m Zi1ieTogRnJhbmsgTGkgPEZyYW5rLkxpQG54cC5jb20+Cj4gPiA+IC0tLQo+ID4gPiAKPiA+ID4g Tm90ZXM6Cj4gPiA+ICAgICBDaGFuZ2UgZnJvbSB2NCB0byB2NQo+ID4gPiAgICAgLSB1cGRhdGUg Y29tbWl0IG1lc3NhZ2UKPiA+ID4gICAgIC0gZGlyZWN0IHVzaW5nIGNsayBuYW1lIGxpc3QsIGlu c3RlYWQgb2YgbWFjcm8KPiA+ID4gICAgIC0gc3RpbGwga2VlcCBjYWN1bGF0ZSBjbGsgbGlzdCBj b3VudCBiZWNhdXNlIHNpemVvZiByZXR1cm4gcHJlIGFsbG9jYXRlZAo+ID4gPiAgICAgYXJyYXkg c2l6ZS4KPiA+ID4gICAgIAo+ID4gPiAgICAgQ2hhbmdlIGZyb20gdjMgdG8gdjQKPiA+ID4gICAg IC0gdXNpbmcgY2xrX2J1bGtfKigpIEFQSQo+ID4gPiAgICAgQ2hhbmdlIGZyb20gdjEgdG8gdjMK PiA+ID4gICAgIC0gbm9uZQo+ID4gPiAKPiA+ID4gIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdj L3BjaS1pbXg2LmMgfCAxMjUgKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gIDEgZmls ZSBjaGFuZ2VkLCAzNSBpbnNlcnRpb25zKCspLCA5MCBkZWxldGlvbnMoLSkKPiA+ID4gCj4gPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2ktaW14Ni5jIGIvZHJp dmVycy9wY2kvY29udHJvbGxlci9kd2MvcGNpLWlteDYuYwo+ID4gPiBpbmRleCA3NDcwMzM2MmFl ZWM3Li41MGQ5ZmFhYTE3ZjcxIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL3BjaS9jb250cm9s bGVyL2R3Yy9wY2ktaW14Ni5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdj L3BjaS1pbXg2LmMKClsuLi5dCgo+ID4gPiAgCj4gPiA+IC0JLyogRmV0Y2ggY2xvY2tzICovCj4g PiA+IC0JaW14Nl9wY2llLT5wY2llX2J1cyA9IGRldm1fY2xrX2dldChkZXYsICJwY2llX2J1cyIp Owo+ID4gPiAtCWlmIChJU19FUlIoaW14Nl9wY2llLT5wY2llX2J1cykpCj4gPiA+IC0JCXJldHVy biBkZXZfZXJyX3Byb2JlKGRldiwgUFRSX0VSUihpbXg2X3BjaWUtPnBjaWVfYnVzKSwKPiA+ID4g LQkJCQkgICAgICJwY2llX2J1cyBjbG9jayBzb3VyY2UgbWlzc2luZyBvciBpbnZhbGlkXG4iKTsK PiA+ID4gKwl3aGlsZSAoaW14Nl9wY2llLT5kcnZkYXRhLT5jbGtfbmFtZXNbaW14Nl9wY2llLT5j bGtzX2NudF0pIHsKPiA+ID4gKwkJaW50IGkgPSBpbXg2X3BjaWUtPmNsa3NfY250Owo+ID4gCj4g PiBXaHkgY2FuJ3QgeW91IGluaXRpYWxpemUgaSB0byAwIGRpcmVjdGx5Pwo+IAo+IGNhbid0IGlu aXQgaSB0byAwIGRpcmVjdGx5IGhlcmUsIG90aGVyd2lzZSBuZXh0IGxvb3AgaSB3aWxsIG5vdCBp bmNyZWFzZS4KPiBpIGp1c3QgcmVkdWNlIHJlZmVyIGlteDZfcGNpZS0+Y2xrc19jbnQgaW4gCj4g Cj4gaW14Nl9wY2llLT5jbGtzW2ldLmlkID0gaW14Nl9wY2llLT5kcnZkYXRhLT5jbGtfbmFtZXNb aV07Cj4gCgpXYWl0Li4uIENhbid0IHlvdSBqdXN0IHVzZSBBUlJBWV9TSVpFKCkgdG8gY2FsY3Vs YXRlIHRoZSBjbGtzX2NudCBzdGF0aWNhbGx5PwoKTGlrZSwKCglzdGF0aWMgY29uc3QgY2hhciAq IGNvbnN0IGlteDhfY2xrX25hbWVzW10gPSB7CgkJInBjaWVfYnVzIiwgInBjaWUiLCAicGNpZV9h dXgiLAoJfTsKCglbLi4uXQoKCQkuY2xrX25hbWVzID0gaW14OF9jbGtfbmFtZXMsCgkJLmNsa3Nf Y250ID0gQVJSQVlfU0laRShpbXg4X2Nsa19uYW1lcyksCgpZb3UgY2FuIHVzZSB0aGUgc2FtZSBj bGtfbmFtZXMgYXJyYXkgZm9yIG11bHRpcGxlIFNvQ3MgaWYgdGhlIGNsb2NrcyBhcmUgc2FtZS4K SSBzaG91bGQndmUgbWVudGlvbmVkIHRoaXMgaW4gbGFzdCByZXZpZXcgaXRzZWxmLiBTb3JyeSBh Ym91dCB0aGF0LgoKLSBNYW5pCgo+IEZyYW5rCj4gCj4gPiAKPiA+IFJlc3QgbG9va3MgZ29vZCB0 byBtZS4KPiA+IAo+ID4gLSBNYW5pCj4gPiAKPiA+ID4gKwo+ID4gPiArCQlpbXg2X3BjaWUtPmNs a3NbaV0uaWQgPSBpbXg2X3BjaWUtPmRydmRhdGEtPmNsa19uYW1lc1tpXTsKPiA+ID4gKwkJaW14 Nl9wY2llLT5jbGtzX2NudCsrOwo+ID4gPiArCX0KPiA+ID4gIAo+ID4gPiAtCWlteDZfcGNpZS0+ cGNpZSA9IGRldm1fY2xrX2dldChkZXYsICJwY2llIik7Cj4gPiA+IC0JaWYgKElTX0VSUihpbXg2 X3BjaWUtPnBjaWUpKQo+ID4gPiAtCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIo aW14Nl9wY2llLT5wY2llKSwKPiA+ID4gLQkJCQkgICAgICJwY2llIGNsb2NrIHNvdXJjZSBtaXNz aW5nIG9yIGludmFsaWRcbiIpOwo+ID4gPiArCS8qIEZldGNoIGNsb2NrcyAqLwo+ID4gPiArCXJl dCA9IGRldm1fY2xrX2J1bGtfZ2V0KGRldiwgaW14Nl9wY2llLT5jbGtzX2NudCwgaW14Nl9wY2ll LT5jbGtzKTsKPiA+ID4gKwlpZiAocmV0KQo+ID4gPiArCQlyZXR1cm4gcmV0Owo+ID4gPiAgCj4g PiA+ICAJc3dpdGNoIChpbXg2X3BjaWUtPmRydmRhdGEtPnZhcmlhbnQpIHsKPiA+ID4gLQljYXNl IElNWDZTWDoKPiA+ID4gLQkJaW14Nl9wY2llLT5wY2llX2luYm91bmRfYXhpID0gZGV2bV9jbGtf Z2V0KGRldiwKPiA+ID4gLQkJCQkJCQkgICAicGNpZV9pbmJvdW5kX2F4aSIpOwo+ID4gPiAtCQlp ZiAoSVNfRVJSKGlteDZfcGNpZS0+cGNpZV9pbmJvdW5kX2F4aSkpCj4gPiA+IC0JCQlyZXR1cm4g ZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIoaW14Nl9wY2llLT5wY2llX2luYm91bmRfYXhpKSwK PiA+ID4gLQkJCQkJICAgICAicGNpZV9pbmJvdW5kX2F4aSBjbG9jayBtaXNzaW5nIG9yIGludmFs aWRcbiIpOwo+ID4gPiAtCQlicmVhazsKPiA+ID4gLQljYXNlIElNWDhNUToKPiA+ID4gLQljYXNl IElNWDhNUV9FUDoKPiA+ID4gLQkJaW14Nl9wY2llLT5wY2llX2F1eCA9IGRldm1fY2xrX2dldChk ZXYsICJwY2llX2F1eCIpOwo+ID4gPiAtCQlpZiAoSVNfRVJSKGlteDZfcGNpZS0+cGNpZV9hdXgp KQo+ID4gPiAtCQkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCBQVFJfRVJSKGlteDZfcGNpZS0+ cGNpZV9hdXgpLAo+ID4gPiAtCQkJCQkgICAgICJwY2llX2F1eCBjbG9jayBzb3VyY2UgbWlzc2lu ZyBvciBpbnZhbGlkXG4iKTsKPiA+ID4gLQkJZmFsbHRocm91Z2g7Cj4gPiA+ICAJY2FzZSBJTVg3 RDoKPiA+ID4gIAkJaWYgKGRiaV9iYXNlLT5zdGFydCA9PSBJTVg4TVFfUENJRTJfQkFTRV9BRERS KQo+ID4gPiAgCQkJaW14Nl9wY2llLT5jb250cm9sbGVyX2lkID0gMTsKPiA+ID4gQEAgLTEzNTMs MTAgKzEzMDAsNiBAQCBzdGF0aWMgaW50IGlteDZfcGNpZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpwZGV2KQo+ID4gPiAgCWNhc2UgSU1YOE1NX0VQOgo+ID4gPiAgCWNhc2UgSU1YOE1Q Ogo+ID4gPiAgCWNhc2UgSU1YOE1QX0VQOgo+ID4gPiAtCQlpbXg2X3BjaWUtPnBjaWVfYXV4ID0g ZGV2bV9jbGtfZ2V0KGRldiwgInBjaWVfYXV4Iik7Cj4gPiA+IC0JCWlmIChJU19FUlIoaW14Nl9w Y2llLT5wY2llX2F1eCkpCj4gPiA+IC0JCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9F UlIoaW14Nl9wY2llLT5wY2llX2F1eCksCj4gPiA+IC0JCQkJCSAgICAgInBjaWVfYXV4IGNsb2Nr IHNvdXJjZSBtaXNzaW5nIG9yIGludmFsaWRcbiIpOwo+ID4gPiAgCQlpbXg2X3BjaWUtPmFwcHNf cmVzZXQgPSBkZXZtX3Jlc2V0X2NvbnRyb2xfZ2V0X2V4Y2x1c2l2ZShkZXYsCj4gPiA+ICAJCQkJ CQkJCQkgImFwcHMiKTsKPiA+ID4gIAkJaWYgKElTX0VSUihpbXg2X3BjaWUtPmFwcHNfcmVzZXQp KQo+ID4gPiBAQCAtMTM3MiwxNCArMTMxNSw2IEBAIHN0YXRpYyBpbnQgaW14Nl9wY2llX3Byb2Jl KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPiA+ICAJZGVmYXVsdDoKPiA+ID4gIAkJ YnJlYWs7Cj4gPiA+ICAJfQo+ID4gPiAtCS8qIERvbid0IGZldGNoIHRoZSBwY2llX3BoeSBjbG9j aywgaWYgaXQgaGFzIGFic3RyYWN0IFBIWSBkcml2ZXIgKi8KPiA+ID4gLQlpZiAoaW14Nl9wY2ll LT5waHkgPT0gTlVMTCkgewo+ID4gPiAtCQlpbXg2X3BjaWUtPnBjaWVfcGh5ID0gZGV2bV9jbGtf Z2V0KGRldiwgInBjaWVfcGh5Iik7Cj4gPiA+IC0JCWlmIChJU19FUlIoaW14Nl9wY2llLT5wY2ll X3BoeSkpCj4gPiA+IC0JCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIFBUUl9FUlIoaW14Nl9w Y2llLT5wY2llX3BoeSksCj4gPiA+IC0JCQkJCSAgICAgInBjaWVfcGh5IGNsb2NrIHNvdXJjZSBt aXNzaW5nIG9yIGludmFsaWRcbiIpOwo+ID4gPiAtCX0KPiA+ID4gLQo+ID4gPiAgCj4gPiA+ICAJ LyogR3JhYiB0dXJub2ZmIHJlc2V0ICovCj4gPiA+ICAJaW14Nl9wY2llLT50dXJub2ZmX3Jlc2V0 ID0gZGV2bV9yZXNldF9jb250cm9sX2dldF9vcHRpb25hbF9leGNsdXNpdmUoZGV2LCAidHVybm9m ZiIpOwo+ID4gPiBAQCAtMTQ3Nyw2ICsxNDEyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbXg2 X3BjaWVfZHJ2ZGF0YSBkcnZkYXRhW10gPSB7Cj4gPiA+ICAJCQkgSU1YNl9QQ0lFX0ZMQUdfSU1Y Nl9TUEVFRF9DSEFOR0UsCj4gPiA+ICAJCS5kYmlfbGVuZ3RoID0gMHgyMDAsCj4gPiA+ICAJCS5n cHIgPSAiZnNsLGlteDZxLWlvbXV4Yy1ncHIiLAo+ID4gPiArCQkuY2xrX25hbWVzID0geyJwY2ll X2J1cyIsICJwY2llIiwgInBjaWVfcGh5In0sCj4gPiA+ICAJfSwKPiA+ID4gIAlbSU1YNlNYXSA9 IHsKPiA+ID4gIAkJLnZhcmlhbnQgPSBJTVg2U1gsCj4gPiA+IEBAIC0xNDg0LDYgKzE0MjAsNyBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGlteDZfcGNpZV9kcnZkYXRhIGRydmRhdGFbXSA9IHsKPiA+ ID4gIAkJCSBJTVg2X1BDSUVfRkxBR19JTVg2X1NQRUVEX0NIQU5HRSB8Cj4gPiA+ICAJCQkgSU1Y Nl9QQ0lFX0ZMQUdfU1VQUE9SVFNfU1VTUEVORCwKPiA+ID4gIAkJLmdwciA9ICJmc2wsaW14NnEt aW9tdXhjLWdwciIsCj4gPiA+ICsJCS5jbGtfbmFtZXMgPSB7InBjaWVfYnVzIiwgInBjaWUiLCAi cGNpZV9waHkiLCAicGNpZV9pbmJvdW5kX2F4aSJ9LAo+ID4gPiAgCX0sCj4gPiA+ICAJW0lNWDZR UF0gPSB7Cj4gPiA+ICAJCS52YXJpYW50ID0gSU1YNlFQLAo+ID4gPiBAQCAtMTQ5Miw0MCArMTQy OSw0OCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGlteDZfcGNpZV9kcnZkYXRhIGRydmRhdGFbXSA9 IHsKPiA+ID4gIAkJCSBJTVg2X1BDSUVfRkxBR19TVVBQT1JUU19TVVNQRU5ELAo+ID4gPiAgCQku ZGJpX2xlbmd0aCA9IDB4MjAwLAo+ID4gPiAgCQkuZ3ByID0gImZzbCxpbXg2cS1pb211eGMtZ3By IiwKPiA+ID4gKwkJLmNsa19uYW1lcyA9IHsicGNpZV9idXMiLCAicGNpZSIsICJwY2llX3BoeSJ9 LAo+ID4gPiAgCX0sCj4gPiA+ICAJW0lNWDdEXSA9IHsKPiA+ID4gIAkJLnZhcmlhbnQgPSBJTVg3 RCwKPiA+ID4gIAkJLmZsYWdzID0gSU1YNl9QQ0lFX0ZMQUdfU1VQUE9SVFNfU1VTUEVORCwKPiA+ ID4gIAkJLmdwciA9ICJmc2wsaW14N2QtaW9tdXhjLWdwciIsCj4gPiA+ICsJCS5jbGtfbmFtZXMg PSB7InBjaWVfYnVzIiwgInBjaWUiLCAicGNpZV9waHkifSwKPiA+ID4gIAl9LAo+ID4gPiAgCVtJ TVg4TVFdID0gewo+ID4gPiAgCQkudmFyaWFudCA9IElNWDhNUSwKPiA+ID4gIAkJLmdwciA9ICJm c2wsaW14OG1xLWlvbXV4Yy1ncHIiLAo+ID4gPiArCQkuY2xrX25hbWVzID0geyJwY2llX2J1cyIs ICJwY2llIiwgInBjaWVfcGh5IiwgInBjaWVfYXV4In0sCj4gPiA+ICAJfSwKPiA+ID4gIAlbSU1Y OE1NXSA9IHsKPiA+ID4gIAkJLnZhcmlhbnQgPSBJTVg4TU0sCj4gPiA+ICAJCS5mbGFncyA9IElN WDZfUENJRV9GTEFHX1NVUFBPUlRTX1NVU1BFTkQsCj4gPiA+ICAJCS5ncHIgPSAiZnNsLGlteDht bS1pb211eGMtZ3ByIiwKPiA+ID4gKwkJLmNsa19uYW1lcyA9IHsicGNpZV9idXMiLCAicGNpZSIs ICJwY2llX2F1eCJ9LAo+ID4gPiAgCX0sCj4gPiA+ICAJW0lNWDhNUF0gPSB7Cj4gPiA+ICAJCS52 YXJpYW50ID0gSU1YOE1QLAo+ID4gPiAgCQkuZmxhZ3MgPSBJTVg2X1BDSUVfRkxBR19TVVBQT1JU U19TVVNQRU5ELAo+ID4gPiAgCQkuZ3ByID0gImZzbCxpbXg4bXAtaW9tdXhjLWdwciIsCj4gPiA+ ICsJCS5jbGtfbmFtZXMgPSB7InBjaWVfYnVzIiwgInBjaWUiLCAicGNpZV9hdXgifSwKPiA+ID4g IAl9LAo+ID4gPiAgCVtJTVg4TVFfRVBdID0gewo+ID4gPiAgCQkudmFyaWFudCA9IElNWDhNUV9F UCwKPiA+ID4gIAkJLm1vZGUgPSBEV19QQ0lFX0VQX1RZUEUsCj4gPiA+ICAJCS5ncHIgPSAiZnNs LGlteDhtcS1pb211eGMtZ3ByIiwKPiA+ID4gKwkJLmNsa19uYW1lcyA9IHsicGNpZV9idXMiLCAi cGNpZSIsICJwY2llX3BoeSIsICJwY2llX2F1eCJ9LAo+ID4gPiAgCX0sCj4gPiA+ICAJW0lNWDhN TV9FUF0gPSB7Cj4gPiA+ICAJCS52YXJpYW50ID0gSU1YOE1NX0VQLAo+ID4gPiAgCQkubW9kZSA9 IERXX1BDSUVfRVBfVFlQRSwKPiA+ID4gIAkJLmdwciA9ICJmc2wsaW14OG1tLWlvbXV4Yy1ncHIi LAo+ID4gPiArCQkuY2xrX25hbWVzID0geyJwY2llX2J1cyIsICJwY2llIiwgInBjaWVfYXV4In0s Cj4gPiA+ICAJfSwKPiA+ID4gIAlbSU1YOE1QX0VQXSA9IHsKPiA+ID4gIAkJLnZhcmlhbnQgPSBJ TVg4TVBfRVAsCj4gPiA+ICAJCS5tb2RlID0gRFdfUENJRV9FUF9UWVBFLAo+ID4gPiAgCQkuZ3By ID0gImZzbCxpbXg4bXAtaW9tdXhjLWdwciIsCj4gPiA+ICsJCS5jbGtfbmFtZXMgPSB7InBjaWVf YnVzIiwgInBjaWUiLCAicGNpZV9hdXgifSwKPiA+ID4gIAl9LAo+ID4gPiAgfTsKPiA+ID4gIAo+ ID4gPiAtLSAKPiA+ID4gMi4zNC4xCj4gPiA+IAo+ID4gCj4gPiAtLSAKPiA+IOCuruCuo+Cuv+Cu teCuo+CvjeCuo+CuqeCvjSDgrprgrqTgrr7grprgrr/grrXgrq7gr40KCi0tIArgrq7grqPgrr/g rrXgrqPgr43grqPgrqngr40g4K6a4K6k4K6+4K6a4K6/4K614K6u4K+NCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxp bmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3Rz LmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==