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 9E33BCD4F3B for ; Fri, 22 Sep 2023 09:20:48 +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:MIME-Version:References:In-Reply-To: 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=DLvnmRzAt8z/VkLGIn/GvFOePKhj7KBIA4lAzoQ8Lcs=; b=Hva/6DM2TBvGso 5dtVuezABzWpS0e2lUpIVOlJSU0Wi8BZ6gfVAlIcOpfTyEe9M9yF3FQrHX2rFMiL9aGQHMnN/fh+Y 6RAnCZ7KBwe+Zpdbd0wqdHkLQHzjGEl7017NR8uErQP+F4i1eRkBn7+9iyGaCCPSk2hTZX3hvRZQ0 Ghm8TM5SdJ+eEVwlw9LM0CgFl+KQVBhAZMOXlpT5bQeQEYsbYSdB80aFKObNhhReeuC8GxNsVJAps SS/6fJ3JN1l2Uhlc2MFwa5ZYRiiH6IdDMiKX5UecTWinj93lZDJhHa6xeTUrrsuN7BH7xQtZMcsOG u7+HxlACel+9TtfRpqtA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qjcL5-008YXQ-0T; Fri, 22 Sep 2023 09:20:43 +0000 Received: from relay1-d.mail.gandi.net ([217.70.183.193]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qjcL1-008YWF-0I for linux-mtd@lists.infradead.org; Fri, 22 Sep 2023 09:20:41 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 1BCC024000F; Fri, 22 Sep 2023 09:20:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1695374433; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IvSzz1AwD6QohpdSxgRFW1EHw3cCk6vuyHXK1dOQwPg=; b=ASOn6MF4zDLR1q88ykAvjQlKNxu5Q7qDp5ZhMDtPkQhaUoagXS2tKIDaqyo0ZJfVWUOT8i rlD6UWbFYqxbSKBM7t0sZGNw+zQeoEeMEfXtnLz9XIKWZsSebltLt/W8AGckAyiUhrfa00 QJIRxLbmnba723couWDAvxGBRuR0HxX9XBgu+PxUMR9Y14ayvXtQCACh9cisFb2S3NYclt NEbaRU5cEoU5Y2TnvXjN2D5x+i3IpSl8QXR1pVQ+4z0Ivsv2tHx3CGmQmfw0MBcHm0Lx2p 4ihBPyBDcbseuLq8CGToWmz9mMrcSrho1IVtpb8AWThymb0szA5lXKS0OtwFLg== Date: Fri, 22 Sep 2023 11:20:30 +0200 From: Miquel Raynal To: Martin =?UTF-8?B?SHVuZGViw7hsbA==?= Cc: Richard Weinberger , Vignesh Raghavendra , Tudor Ambarus , Pratyush Yadav , Michael Walle , linux-mtd@lists.infradead.org, Julien Su , Jaime Liao , Alvin Zhou , Thomas Petazzoni , JaimeLiao , Sean =?UTF-8?B?Tnlla2rDpnI=?= Subject: Re: [PATCH v2 3/3] mtd: rawnand: Support for sequential cache reads Message-ID: <20230922112030.531d153f@xps-13> In-Reply-To: References: <20230112093637.987838-1-miquel.raynal@bootlin.com> <20230112093637.987838-4-miquel.raynal@bootlin.com> <9d0c42fcde79bfedfe5b05d6a4e9fdef71d3dd52.camel@geanix.com> <20230912175946.6ec242f6@xps-13> Organization: Bootlin X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-GND-Sasl: miquel.raynal@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230922_022039_405777_77E320E7 X-CRM114-Status: GOOD ( 46.70 ) 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 SGkgTWFydGluLAoKbWFydGluQGdlYW5peC5jb20gd3JvdGUgb24gRnJpLCAxNSBTZXAgMjAyMyAx MzoyMDoxMCArMDIwMDoKCj4gSGkgTWlxdWVsLAo+IAo+IE9uIFR1ZSwgMjAyMy0wOS0xMiBhdCAx Nzo1OSArMDIwMCwgTWlxdWVsIFJheW5hbCB3cm90ZToKPiA+IEhpIE1hcnRpbiwKPiA+IAo+ID4g bWFydGluQGdlYW5peC5jb23CoHdyb3RlIG9uIEZyaSwgMDggU2VwIDIwMjMgMTQ6MjU6NTkgKzAy MDA6Cj4gPiAgIAo+ID4gPiBIaSBNaXF1ZWwgZXQgYWwuCj4gPiA+IAo+ID4gPiBPbiBUaHUsIDIw MjMtMDEtMTIgYXQgMTA6MzYgKzAxMDAsIE1pcXVlbCBSYXluYWwgd3JvdGU6ICAKPiA+ID4gPiBG cm9tOiBKYWltZUxpYW8gPGphaW1lbGlhby50d0BnbWFpbC5jb20+Cj4gPiA+ID4gCj4gPiA+ID4g QWRkIHN1cHBvcnQgZm9yIHNlcXVlbnRpYWwgY2FjaGUgcmVhZHMgZm9yIGNvbnRyb2xsZXJzIHVz aW5nIHRoZQo+ID4gPiA+IGdlbmVyaWMKPiA+ID4gPiBjb3JlIGhlbHBlcnMgZm9yIHRoZWlyIGZh c3QgcmVhZC93cml0ZSBoZWxwZXJzLgo+ID4gPiA+IAo+ID4gPiA+IFNlcXVlbnRpYWwgcmVhZHMg bWF5IHJlZHVjZSB0aGUgb3ZlcmhlYWQgd2hlbiBhY2Nlc3NpbmcKPiA+ID4gPiBwaHlzaWNhbGx5 Cj4gPiA+ID4gY29udGludW91cyBkYXRhIGJ5IGxvYWRpbmcgaW4gY2FjaGUgdGhlIG5leHQgcGFn ZSB3aGlsZSB0aGUKPiA+ID4gPiBwcmV2aW91cwo+ID4gPiA+IHBhZ2UgZ2V0cyBzZW50IG91dCBv biB0aGUgTkFORCBidXMuCj4gPiA+ID4gCj4gPiA+ID4gVGhlIE9ORkkgc3BlY2lmaWNhdGlvbiBw cm92aWRlcyB0aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgY29tbWFuZHMKPiA+ID4gPiB0bwo+ID4g PiA+IGhhbmRsZSBzZXF1ZW50aWFsIGNhY2hlZCByZWFkczoKPiA+ID4gPiAKPiA+ID4gPiAqIDB4 MzEgLSBSRUFEIENBQ0hFIFNFUVVFTlRJQUw6Cj4gPiA+ID4gwqAgUmVxdWlyZXMgdGhlIE5BTkQg Y2hpcCB0byBsb2FkIHRoZSBuZXh0IHBhZ2UgaW50byBjYWNoZSB3aGlsZQo+ID4gPiA+IGtlZXBp bmcKPiA+ID4gPiDCoCB0aGUgY3VycmVudCBjYWNoZSBhdmFpbGFibGUgZm9yIGhvc3QgcmVhZHMu Cj4gPiA+ID4gKiAweDNGIC0gUkVBRCBDQUNIRSBFTkQ6Cj4gPiA+ID4gwqAgVGVsbHMgdGhlIE5B TkQgY2hpcCB0aGlzIGlzIHRoZSBlbmQgb2YgdGhlIHNlcXVlbnRpYWwgY2FjaGUKPiA+ID4gPiBy ZWFkLAo+ID4gPiA+IHRoZQo+ID4gPiA+IMKgIGN1cnJlbnQgY2FjaGUgc2hhbGwgcmVtYWluIGFj Y2Vzc2libGUgZm9yIHRoZSBob3N0IGJ1dCBubyBtb3JlCj4gPiA+ID4gwqAgaW50ZXJuYWwgY2Fj aGUgbG9hZGluZyBvcGVyYXRpb24gaXMgcmVxdWlyZWQuCj4gPiA+ID4gCj4gPiA+ID4gT24gdGhl IGJ1cywgYSBtdWx0aSBwYWdlIHJlYWQgb3BlcmF0aW9uIGlzIGN1cnJlbnRseSBoYW5kbGVkIGxp a2UKPiA+ID4gPiB0aGlzOgo+ID4gPiA+IAo+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqAwMCAtLSBB RERSMSAtLSAzMCAtLSBXQUlUX1JEWSAodFIrdFJSKSAtLSBEQVRBMV9JTgo+ID4gPiA+IMKgwqDC oMKgwqDCoMKgwqAwMCAtLSBBRERSMiAtLSAzMCAtLSBXQUlUX1JEWSAodFIrdFJSKSAtLSBEQVRB Ml9JTgo+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqAwMCAtLSBBRERSMyAtLSAzMCAtLSBXQUlUX1JE WSAodFIrdFJSKSAtLSBEQVRBM19JTgo+ID4gPiA+IAo+ID4gPiA+IFNlcXVlbnRpYWwgY2FjaGVk IHJlYWRzIG1heSBpbnN0ZWFkIGJlIGFjaGlldmVkIHdpdGg6Cj4gPiA+ID4gCj4gPiA+ID4gwqDC oMKgwqDCoMKgwqDCoDAwIC0tIEFERFIxIC0tIDMwIC0tIFdBSVRfUkRZICh0UikgLS0gXAo+ID4g PiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDMxIC0tIFdB SVRfUkRZICh0UkNCU1krdFJSKSAtLSBEQVRBMV9JTiBcCj4gPiA+ID4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMzEgLS0gV0FJVF9SRFkgKHRSQ0JTWSt0UlIp IC0tIERBVEEyX0lOIFwKPiA+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAzRiAtLSBXQUlUX1JEWSAodFJDQlNZK3RSUikgLS0gREFUQTNfSU4KPiA+ID4g PiAKPiA+ID4gPiBCZWxvdyBhcmUgdGhlIHJlYWQgc3BlZWQgdGVzdCByZXN1bHRzIHdpdGggcmVn dWxhciByZWFkcyBhbmQKPiA+ID4gPiBzZXF1ZW50aWFsIGNhY2hlZCByZWFkcywgb24gTlhQIGku TVg2IFZBUi1TT00tU09MTyBpbiBtYXBwaW5nCj4gPiA+ID4gbW9kZQo+ID4gPiA+IHdpdGgKPiA+ ID4gPiBhIE5BTkQgY2hpcCBjaGFyYWN0ZXJpemVkIHdpdGggdGhlIGZvbGxvd2luZyB0aW1pbmdz Ogo+ID4gPiA+ICogdFI6IDIwIMK1cwo+ID4gPiA+ICogdFJDQlNZOiA1IMK1cwo+ID4gPiA+ICog dFJSOiAyMCBucwo+ID4gPiA+IGFuZCB0aGUgZm9sbG93aW5nIGdlb21ldHJ5Ogo+ID4gPiA+ICog ZGV2aWNlIHNpemU6IDIgTWlCCj4gPiA+ID4gKiBlcmFzZWJsb2NrIHNpemU6IDEyOCBraUIKPiA+ ID4gPiAqIHBhZ2Ugc2l6ZTogMiBraUIKPiA+ID4gPiAKPiA+ID4gPiA9PT09PT09PT09PT09IE5v cm1hbCByZWFkIEAgMzNNSHogPT09PT09PT09PT09PT09PT0KPiA+ID4gPiBtdGRfc3BlZWR0ZXN0 OiBlcmFzZWJsb2NrIHJlYWQgc3BlZWQgaXMgMTU2MzMgS2lCL3MKPiA+ID4gPiBtdGRfc3BlZWR0 ZXN0OiBwYWdlIHJlYWQgc3BlZWQgaXMgMTU1MTUgS2lCL3MKPiA+ID4gPiBtdGRfc3BlZWR0ZXN0 OiAyIHBhZ2UgcmVhZCBzcGVlZCBpcyAxNTM5OCBLaUIvcwo+ID4gPiA+ID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+ID4gPiA+IAo+ID4gPiA+ID09 PT09PT09PSBTZXF1ZW50aWFsIGNhY2hlIHJlYWQgQCAzM01IeiA9PT09PT09PT09PQo+ID4gPiA+ IG10ZF9zcGVlZHRlc3Q6IGVyYXNlYmxvY2sgcmVhZCBzcGVlZCBpcyAxODI4NSBLaUIvcwo+ID4g PiA+IG10ZF9zcGVlZHRlc3Q6IHBhZ2UgcmVhZCBzcGVlZCBpcyAxNTg3NSBLaUIvcwo+ID4gPiA+ IG10ZF9zcGVlZHRlc3Q6IDIgcGFnZSByZWFkIHNwZWVkIGlzIDE2MjUzIEtpQi9zCj4gPiA+ID4g PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4gPiA+ ID4gCj4gPiA+ID4gV2Ugb2JzZXJ2ZSBhbiBvdmVyYWxsIHNwZWVkIGltcHJvdmVtZW50IG9mIGFi b3V0IDUlIHdoZW4gcmVhZGluZwo+ID4gPiA+IDIgcGFnZXMsIHVwIHRvIDE1JSB3aGVuIHJlYWRp bmcgYW4gZW50aXJlIGJsb2NrLiBUaGlzIGlzIGR1ZSB0bwo+ID4gPiA+IHRoZQo+ID4gPiA+IH4x NHVzIGdhaW4gb24gZWFjaCBhZGRpdGlvbmFsIHBhZ2UgcmVhZCAodFIgLSAodFJDQlNZICsgdFJS KSkuCj4gPiA+ID4gCj4gPiA+ID4gQ28tZGV2ZWxvcGVkLWJ5OiBNaXF1ZWwgUmF5bmFsIDxtaXF1 ZWwucmF5bmFsQGJvb3RsaW4uY29tPgo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IE1pcXVlbCBSYXlu YWwgPG1pcXVlbC5yYXluYWxAYm9vdGxpbi5jb20+Cj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogSmFp bWVMaWFvIDxqYWltZWxpYW8udHdAZ21haWwuY29tPsKgICAgCj4gPiA+IAo+ID4gPiBUaGlzIHBh dGNoIGJyb2tlIG91ciBpbXg2dWxsIHN5c3RlbSBhZnRlciBkb2luZyBhIGtlcm5lbCB1cGdyYWRl Ogo+ID4gPiBbwqDCoMKgIDIuOTIxODg2XSB1YmkwOiBkZWZhdWx0IGZhc3RtYXAgcG9vbCBzaXpl OiAxMDAKPiA+ID4gW8KgwqDCoCAyLjkyNjYxMl0gdWJpMDogZGVmYXVsdCBmYXN0bWFwIFdMIHBv b2wgc2l6ZTogNTAKPiA+ID4gW8KgwqDCoCAyLjkzMTQyMV0gdWJpMDogYXR0YWNoaW5nIG10ZDEK PiA+ID4gW8KgwqDCoCAzLjUxNTc5OV0gdWJpMDogc2Nhbm5pbmcgaXMgZmluaXNoZWQKPiA+ID4g W8KgwqDCoCAzLjUyNTIzN10gdWJpMCBlcnJvcjogdnRibF9jaGVjazogYmFkIENSQyBhdCByZWNv cmQgMDoKPiA+ID4gMHg4OGNkZmI2LAo+ID4gPiBub3QgMHhmZmZmZmZmZgo+ID4gPiBbwqDCoMKg IDMuNTMyOTM3XSBWb2x1bWUgdGFibGUgcmVjb3JkIDAgZHVtcDoKPiA+ID4gW8KgwqDCoCAzLjUz Njc4M13CoCByZXNlcnZlZF9wZWJzwqDCoCAtMQo+ID4gPiBbwqDCoMKgIDMuNTM5OTMyXcKgIGFs aWdubWVudMKgwqDCoMKgwqDCoCAtMQo+ID4gPiBbwqDCoMKgIDMuNTQzMTAxXcKgIGRhdGFfcGFk wqDCoMKgwqDCoMKgwqAgLTEKPiA+ID4gW8KgwqDCoCAzLjU0NjI1MV3CoCB2b2xfdHlwZcKgwqDC oMKgwqDCoMKgIDI1NQo+ID4gPiBbwqDCoMKgIDMuNTQ5NDg1XcKgIHVwZF9tYXJrZXLCoMKgwqDC oMKgIDI1NQo+ID4gPiBbwqDCoMKgIDMuNTUyNzQ2XcKgIG5hbWVfbGVuwqDCoMKgwqDCoMKgwqAg NjU1MzUKPiA+ID4gW8KgwqDCoCAzLjU1NjE1NV3CoCAxc3QgNSBjaGFyYWN0ZXJzIG9mIG5hbWU6 IAo+ID4gPiBbwqDCoMKgIDMuNTYwNDI5XcKgIGNyY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAw eGZmZmZmZmZmCj4gPiA+IFvCoMKgwqAgMy41NjQyOTRdIHViaTAgZXJyb3I6IHZ0YmxfY2hlY2s6 IGJhZCBDUkMgYXQgcmVjb3JkIDA6Cj4gPiA+IDB4ODhjZGZiNiwKPiA+ID4gbm90IDB4ZmZmZmZm ZmYKPiA+ID4gW8KgwqDCoCAzLjU3MTg5Ml0gVm9sdW1lIHRhYmxlIHJlY29yZCAwIGR1bXA6Cj4g PiA+IFvCoMKgwqAgMy41NzU3NTRdwqAgcmVzZXJ2ZWRfcGVic8KgwqAgLTEKPiA+ID4gW8KgwqDC oCAzLjU3ODkwNl3CoCBhbGlnbm1lbnTCoMKgwqDCoMKgwqAgLTEKPiA+ID4gW8KgwqDCoCAzLjU4 MjA0OV3CoCBkYXRhX3BhZMKgwqDCoMKgwqDCoMKgIC0xCj4gPiA+IFvCoMKgwqAgMy41ODUyMTZd wqAgdm9sX3R5cGXCoMKgwqDCoMKgwqDCoCAyNTUKPiA+ID4gW8KgwqDCoCAzLjU4ODQ1Ml3CoCB1 cGRfbWFya2VywqDCoMKgwqDCoCAyNTUKPiA+ID4gW8KgwqDCoCAzLjU5MTY4N13CoCBuYW1lX2xl bsKgwqDCoMKgwqDCoMKgIDY1NTM1Cj4gPiA+IFvCoMKgwqAgMy41OTUxMDhdwqAgMXN0IDUgY2hh cmFjdGVycyBvZiBuYW1lOiAKPiA+ID4gW8KgwqDCoCAzLjU5OTM4NF3CoCBjcmPCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgMHhmZmZmZmZmZgo+ID4gPiBbwqDCoMKgIDMuNjAzMjg1XSB1YmkwIGVy cm9yOiB1YmlfcmVhZF92b2x1bWVfdGFibGU6IGJvdGggdm9sdW1lCj4gPiA+IHRhYmxlcwo+ID4g PiBhcmUgY29ycnVwdGVkCj4gPiA+IFvCoMKgwqAgMy42MTE0NjBdIHViaTAgZXJyb3I6IHViaV9h dHRhY2hfbXRkX2RldjogZmFpbGVkIHRvIGF0dGFjaAo+ID4gPiBtdGQxLAo+ID4gPiBlcnJvciAt MjIKPiA+ID4gW8KgwqDCoCAzLjYxODc2MF0gVUJJIGVycm9yOiBjYW5ub3QgYXR0YWNoIG10ZDEK PiA+ID4gW8KgwqDCoCAzLjYyMjgzMV0gVUJJOiBibG9jazogY2FuJ3Qgb3BlbiB2b2x1bWUgb24g dWJpMF80LCBlcnI9LTE5Cj4gPiA+IFvCoMKgwqAgMy42Mjg1MDVdIFVCSTogYmxvY2s6IGNhbid0 IG9wZW4gdm9sdW1lIG9uIHViaTBfNiwgZXJyPS0xOQo+ID4gPiBbwqDCoMKgIDMuNjM0MTk2XSBV Qkk6IGJsb2NrOiBjYW4ndCBvcGVuIHZvbHVtZSBvbiB1YmkwXzcsIGVycj0tMTkKPiA+ID4gCj4g PiA+IEl0IGZhaWxzIGNvbnNpc3RlbnRseSBhdCBldmVyeSBhdHRhY2ggb3BlcmF0aW9uLiBBcyBt ZW50aW9uZWQKPiA+ID4gYWJvdmUsCj4gPiA+IHRoaXMgaXMgb24gYW4gaS5NWDZVTEwgYW5kIGEg VG9zaGliYSBOQU5EIGNoaXA6Cj4gPiA+IFvCoMKgwqAgMC41MzAxMjFdIG5hbmQ6IGRldmljZSBm b3VuZCwgTWFudWZhY3R1cmVyIElEOiAweDk4LCBDaGlwIElEOgo+ID4gPiAweGRjCj4gPiA+IFvC oMKgwqAgMC41MzAxNzNdIG5hbmQ6IFRvc2hpYmEgTkFORCA1MTJNaUIgMywzViA4LWJpdAo+ID4g PiBbwqDCoMKgIDAuNTMwMTk0XSBuYW5kOiA1MTIgTWlCLCBTTEMsIGVyYXNlIHNpemU6IDI1NiBL aUIsIHBhZ2Ugc2l6ZToKPiA+ID4gNDA5NiwgT09CIHNpemU6IDEyOAo+ID4gPiAKPiA+ID4gSSdt IGhhcHB5IHRvIHBlcmZvcm0gZXhwZXJpbWVudHMgdG8gZml4IHRoaXMuICAKPiA+IAo+ID4gSSBy ZWNlaXZlZCB0d28gb3RoZXIgcmVwb3J0cyB1c2luZyBhbm90aGVyIGNvbnRyb2xsZXIgYW5kIHR3 bwo+ID4gZGlmZmVyZW50Cj4gPiBjaGlwcywgd2UgaW52ZXN0aWdhdGVkIHRoZSB0aW1pbmdzIHdo aWNoIGNvdWxkIGJlIHRoZSBpc3N1ZSBidXQgZm91bmQKPiA+IG5vdGhpbmcgcmVsZXZhbnQuIEkg dGhvdWdodCBpdCB3YXMgc3BlY2lmaWMgdG8gdGhlIGNvbnRyb2xsZXIgKG9yIGl0cwo+ID4gZHJp dmVyKSBidXQgaWYgeW91IHJlcHJvZHVjZSBvbiBpbXg2IGl0IG11c3QgYmUgc29tZXRoaW5nIGVs c2UuCj4gPiBFc3BlY2lhbGx5IHNpbmNlIHRoaXMgc2VyaWVzIHdhcyBhbHNvIHRlc3RlZCBvbiBp bXg2LiBTbyBtYXliZSBzb21lCj4gPiBkZXZpY2VzIGRvIG5vdCByZWFsbHkgc3VwcG9ydCB3aGF0 IHRoZXkgYWR2ZXJ0aXNlPyBPciB0aGV5IGV4cGVjdAo+ID4gYW5vdGhlciBzZXF1ZW5jZT8gSSBu ZWVkIHRvIGludmVzdGlnYXRlIHRoaXMgZnVydGhlciBidXQgSSBhbSBhIGJpdAo+ID4gY2x1ZWxl c3MuICAKPiA+ID4gICAKPiAKPiBGb3Igd2hhdCBpdCdzIHdvcnRoOiBJJ3ZlIHRlc3RlZCBzZXF1 ZW50aWFsIHJlYWQgb24gYW4gYWxtb3N0IGlkZW50aWNhbAo+IGJvYXJkIHRoYXQgaGFzIGEgTWlj cm9uIGZsYXNoIGluc3RlYWQgb2YgdGhlIFRvc2hpYmEgb25lOgo+IAo+IFsgICAgMS4zNzAzMzZd IG5hbmQ6IGRldmljZSBmb3VuZCwgTWFudWZhY3R1cmVyIElEOiAweDJjLCBDaGlwIElEOiAweGRj Cj4gWyAgICAxLjM3NjgzMF0gbmFuZDogTWljcm9uIE1UMjlGNEcwOEFCQUZBV1AKPiBbICAgIDEu MzgwODcwXSBuYW5kOiA1MTIgTWlCLCBTTEMsIGVyYXNlIHNpemU6IDI1NiBLaUIsIHBhZ2Ugc2l6 ZToKPiA0MDk2LCBPT0Igc2l6ZTogMjU2Cj4gCj4gCj4gRmlzdCwgdWJpIHNlZW1zIHRvIGJlIGhh cHB5Ogo+IAo+IFsgICAgMi43MDI0MTVdIHViaTA6IGRlZmF1bHQgZmFzdG1hcCBwb29sIHNpemU6 IDEwMCAgICAgICAgICAgICAgICAgICAKPiBbICAgIDIuNzA3MTM4XSB1YmkwOiBkZWZhdWx0IGZh c3RtYXAgV0wgcG9vbCBzaXplOiA1MCAgICAgICAgICAgICAgICAgCj4gWyAgICAyLjcxMTk0Nl0g dWJpMDogYXR0YWNoaW5nIG10ZDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo+ IFsgICAgMy41Mjg4MzBdIHViaTA6IHNjYW5uaW5nIGlzIGZpbmlzaGVkICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKPiBbICAgIDMuNTQwNjI2XSB1YmkwOiBhdHRhY2hlZCBtdGQxIChuYW1l ICJ1YmkiLCBzaXplIDUwNCBNaUIpICAgICAgICAgCj4gWyAgICAzLjU0NjIzNV0gdWJpMDogUEVC IHNpemU6IDI2MjE0NCBieXRlcyAoMjU2IEtpQiksIExFQiBzaXplOiAyNTM5NTIKPiBieXRlcyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCj4gWyAgICAzLjU1MzE2OV0gdWJpMDogbWluLi9tYXguIEkvTyB1bml0IHNpemVzOiA0 MDk2LzQwOTYsIHN1Yi1wYWdlIHNpemUKPiA0MDk2ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCj4gWyAgICAzLjU1OTk3Ml0g dWJpMDogVklEIGhlYWRlciBvZmZzZXQ6IDQwOTYgKGFsaWduZWQgNDA5NiksIGRhdGEKPiBvZmZz ZXQ6IDgxOTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCj4gWyAgICAzLjU2Njk2OF0gdWJpMDogZ29vZCBQRUJzOiAyMDEyLCBiYWQgUEVC czogNCwgY29ycnVwdGVkIFBFQnM6IDAgIAo+IFsgICAgMy41NzMwOTZdIHViaTA6IHVzZXIgdm9s dW1lOiA5LCBpbnRlcm5hbCB2b2x1bWVzOiAxLCBtYXguIHZvbHVtZXMKPiBjb3VudDogMTI4ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Cj4gWyAgICAzLjU4MDMzMF0gdWJpMDogbWF4L21lYW4gZXJhc2UgY291bnRlcjogNS8yLCBXTCB0 aHJlc2hvbGQ6IDQwOTYsCj4gaW1hZ2Ugc2VxdWVuY2UgbnVtYmVyOiAxMjk4MjcwNzUyICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo+IFsgICAgMy41ODk0OTZdIHViaTA6IGF2 YWlsYWJsZSBQRUJzOiAxMiwgdG90YWwgcmVzZXJ2ZWQgUEVCczogMjAwMCwKPiBQRUJzIHJlc2Vy dmVkIGZvciBiYWQgUEVCIGhhbmRsaW5nOiAzNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCj4gWyAgICAzLjU5ODk0NV0gdWJpMDogYmFja2dyb3VuZCB0aHJlYWQgInViaV9iZ3QwZCIg c3RhcnRlZCwgUElEIDM1ICAgIAo+IFsgICAgMy42MDc0MDldIGJsb2NrIHViaWJsb2NrMF80OiBj cmVhdGVkIGZyb20gdWJpMDo0KHJvb3Rmcy5hKSAgICAgICAKPiBbICAgIDMuNjE1MTkwXSBibG9j ayB1YmlibG9jazBfNjogY3JlYXRlZCBmcm9tIHViaTA6NihhcHBmcy5hKSAgICAgICAgCj4gWyAg ICAzLjYyMjg4OF0gYmxvY2sgdWJpYmxvY2swXzc6IGNyZWF0ZWQgZnJvbSB1YmkwOjcoYXBwZnMu YikKPiAKPiAKPiBCdXQgdGhlbiBzcXVhc2hmcyBmYWlscyAod2UncmUgdXNpbmcgdWJpYmxvY2sg ZGV2aWNlcyk6Cj4gCj4gWyAgICAzLjY1MTgxOF0gVkZTOiBNb3VudGVkIHJvb3QgKHNxdWFzaGZz IGZpbGVzeXN0ZW0pIHJlYWRvbmx5IG9uCj4gZGV2aWNlIDI1NDowLiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo+IFsgICAgMy42NjA2NDZd IGRldnRtcGZzOiBtb3VudGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK PiBbICAgIDMuNjY1NTE1XSBGcmVlaW5nIHVudXNlZCBrZXJuZWwgaW1hZ2UgKGluaXRtZW0pIG1l bW9yeTogMTAyNEsgICAgCj4gWyAgICAzLjY3MjgxNl0gUnVuIC9zYmluL2luaXQgYXMgaW5pdCBw cm9jZXNzICAgICAgICAgICAgICAgICAgICAgICAgIAo+IFsgICAgMy42NzgwOTddIFNRVUFTSEZT IGVycm9yOiBVbmFibGUgdG8gcmVhZCBpbm9kZSAweDgwMDgxMTVkICAgICAgICAKPiBbICAgIDMu NjgzOTE3XSBTdGFydGluZyBpbml0OiAvc2Jpbi9pbml0IGV4aXN0cyBidXQgY291bGRuJ3QgZXhl Y3V0ZSBpdAo+IChlcnJvciAtMjIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKPiBbICAgIDMuNjkxMzQwXSBSdW4gL2V0Yy9pbml0IGFz IGluaXQgcHJvY2VzcyAgICAgICAgICAgICAgICAgICAgICAgICAgCj4gWyAgICAzLjY5NzU1M10g UnVuIC9iaW4vaW5pdCBhcyBpbml0IHByb2Nlc3MgICAgICAgICAgICAgICAgICAgICAgICAgIAo+ IFsgICAgMy43MDI5ODJdIFJ1biAvYmluL3NoIGFzIGluaXQgcHJvY2Vzcwo+IAo+IFsgICAgMi43 MDI0MTVdIHViaTA6IGRlZmF1bHQgZmFzdG1hcCBwb29sIHNpemU6IDEwMAo+IFsgICAgMi43MDcx MzhdIHViaTA6IGRlZmF1bHQgZmFzdG1hcCBXTCBwb29sIHNpemU6IDUwCj4gWyAgICAyLjcxMTk0 Nl0gdWJpMDogYXR0YWNoaW5nIG10ZDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAo+IFsgICAgMy41Mjg4MzBdIHViaTA6IHNjYW5uaW5nIGlzIGZpbmlzaGVkICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKPiBbICAgIDMuNTQwNjI2XSB1YmkwOiBhdHRhY2hlZCBtdGQxIChu YW1lICJ1YmkiLCBzaXplIDUwNCBNaUIpCj4gWyAgICAzLjU0NjIzNV0gdWJpMDogUEVCIHNpemU6 IDI2MjE0NCBieXRlcyAoMjU2IEtpQiksIExFQiBzaXplOiAyNTM5NTIKPiBieXRlcwo+IFsgICAg My41NTMxNjldIHViaTA6IG1pbi4vbWF4LiBJL08gdW5pdCBzaXplczogNDA5Ni80MDk2LCBzdWIt cGFnZSBzaXplCj4gNDA5Ngo+IFsgICAgMy41NTk5NzJdIHViaTA6IFZJRCBoZWFkZXIgb2Zmc2V0 OiA0MDk2IChhbGlnbmVkIDQwOTYpLCBkYXRhCj4gb2Zmc2V0OiA4MTkyCj4gWyAgICAzLjU2Njk2 OF0gdWJpMDogZ29vZCBQRUJzOiAyMDEyLCBiYWQgUEVCczogNCwgY29ycnVwdGVkIFBFQnM6IDAK PiBbICAgIDMuNTczMDk2XSB1YmkwOiB1c2VyIHZvbHVtZTogOSwgaW50ZXJuYWwgdm9sdW1lczog MSwgbWF4LiB2b2x1bWVzCj4gY291bnQ6IDEyOAo+IFsgICAgMy41ODAzMzBdIHViaTA6IG1heC9t ZWFuIGVyYXNlIGNvdW50ZXI6IDUvMiwgV0wgdGhyZXNob2xkOiA0MDk2LAo+IGltYWdlIHNlcXVl bmNlIG51bWJlcjogMTI5ODI3MDc1Mgo+IFsgICAgMy41ODk0OTZdIHViaTA6IGF2YWlsYWJsZSBQ RUJzOiAxMiwgdG90YWwgcmVzZXJ2ZWQgUEVCczogMjAwMCwKPiBQRUJzIHJlc2VydmVkIGZvciBi YWQgUEVCIGhhbmRsaW5nOiAzNgo+IFsgICAgMy41OTg5NDVdIHViaTA6IGJhY2tncm91bmQgdGhy ZWFkICJ1YmlfYmd0MGQiIHN0YXJ0ZWQsIFBJRCAzNQoKQ2FuIHlvdSBzaG93IG1lIHRoZSBlcnJv cnM/IERpZCB5b3UgbG9vayBhdCB0aGUgZmxhc2ggcmF3IGNvbnRlbnQsCmFueXRoaW5nIHNwZWNp YWwgdGhhdCBjYW4gYmUgc2Vlbj8KCj4gCj4gSSB0aGluayB0aGUgcGF0Y2ggc2hvdWxkIGJlIHJl dmVydGVkLCB1bnRpbCB3ZSBnZXQgc29tZSBtb3JlIGluc2lnaHQuCj4gCgpJIGNhbm5vdCBtYWtl IGFueSBzZW5zZSBvZiBhbGwgdGhlIGRpZmZlcmVudCBmZWVkYmFjayBJJ3ZlIGdvdCAoZ29vZAph bmQgYmFkKS4gSSB3aWxsIHJldmVydCB0aGUgcGF0Y2ggZm9yIG5vdy4KClRoYW5rcywKTWlxdcOo bAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkxpbnV4IE1URCBkaXNjdXNzaW9uIG1haWxpbmcgbGlzdApodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW10ZC8K