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 8B9E8C77B61 for ; Thu, 13 Apr 2023 08:22:33 +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=GYONEbEG82hitci11G4GgYkapeOBi5UMPrPcXxrTvMU=; b=hSXq+sSljXQgps NRvlIwsfwx7FP1N/P6Sj34BCZRGV7z4EEUbWm3+d0jJSyCBmX02fafkCafG4AuMwV3G04wIxMvm1y M5xkShCuUpa6VCYM/qoccY8A5FIDx3+F31miYlbOfPrBmlOLqt/ACfTXtSWFnvvqJS4GqUQuWBOlK IRDguJHVXuJ16wJ0kp4g8stbfcFJYkN/mVanX/OtaiJUIxW8olVFB06rYOJO7TVeBS/CvAKpc6SOY f9mbHWLjIciLPp/CKhziQydiUsLalv0omDOjYTXEqNh4lQDVl4Q14gn38aA9ZZtuKUrnyoYcrE9es b6B+dGR7Q9Jdc4WCiW3w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pmsDh-005Oj3-1e; Thu, 13 Apr 2023 08:22:17 +0000 Received: from relay9-d.mail.gandi.net ([217.70.183.199]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pmsDZ-005OhB-2L; Thu, 13 Apr 2023 08:22:12 +0000 Received: (Authenticated sender: miquel.raynal@bootlin.com) by mail.gandi.net (Postfix) with ESMTPSA id A20A2FF811; Thu, 13 Apr 2023 08:22:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1681374123; 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=jKDwU6qCHx/OiJp9i/J/E9UgrqMYtUFZ9YIKoZ1nLA8=; b=obZyPhFvxzqi67rpClmp0uemQXyhVAptA6qC/rrXQTaglZY2VEyf5HOIB7FCK9RuBfzBKT zk1MIWguaqNh1YOHX8S3cLrG1n/bgicF4qneiQ7i8C0G8HCGz7ro0P1LVzg+FkFupcagfb afl7CYSwEei68bXZzXGEaQdM9ITYEkkSBhIXkx6uvvtu9H3QiYm8dfYCcNCIoX916v8OH+ pdNj8u3khEZDhKrdmwQM2nVCUnXcJdOnzk8W30TfDECn2UMyBIfgdgghszeg1S53eFYYRu dpD4oSTKojdF4owiFKp+aloV2FerZ/1nOOmEJLNAxIFBtGJJdaXQrG1IZ+m2Zw== Date: Thu, 13 Apr 2023 10:22:00 +0200 From: Miquel Raynal To: Arseniy Krasnov Cc: Liang Yang , Richard Weinberger , Vignesh Raghavendra , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , Jianxin Pan , Yixun Lan , , , , , , , "yonghui.yu" Subject: Re: [PATCH v1 4/5] mtd: rawnand: meson: clear OOB buffer before read Message-ID: <20230413102200.309fbe9c@xps-13> In-Reply-To: <7520e512-8a19-ff04-364c-b5be0a579ef0@sberdevices.ru> References: <20230412061700.1492474-1-AVKrasnov@sberdevices.ru> <20230412061700.1492474-5-AVKrasnov@sberdevices.ru> <20230412094400.3c82f631@xps-13> <20230412113654.183350d0@xps-13> <4eace0a0-f6af-7d99-a52f-7913a2139330@sberdevices.ru> <20230412141824.755b2bca@xps-13> <20230412145715.58c2be4a@xps-13> <7c996832-258f-001c-56bd-87bbdf23eeaa@amlogic.com> <20230412163214.0c764bb3@xps-13> <0c61eaae-053e-5768-a533-70b2ff0cc95d@amlogic.com> <7520e512-8a19-ff04-364c-b5be0a579ef0@sberdevices.ru> Organization: Bootlin X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230413_012210_057253_613C422A X-CRM114-Status: GOOD ( 40.35 ) 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 SGkgQXJzZW5peSwKCmF2a3Jhc25vdkBzYmVyZGV2aWNlcy5ydSB3cm90ZSBvbiBUaHUsIDEzIEFw ciAyMDIzIDEwOjAwOjI0ICswMzAwOgoKPiBPbiAxMy4wNC4yMDIzIDA5OjExLCBMaWFuZyBZYW5n IHdyb3RlOgo+ID4gCj4gPiBPbiAyMDIzLzQvMTMgMTM6MzIsIExpYW5nIFlhbmcgd3JvdGU6ICAK PiA+PiBIaSBNaXF1ZWwsCj4gPj4KPiA+PiBPbiAyMDIzLzQvMTIgMjI6MzIsIE1pcXVlbCBSYXlu YWwgd3JvdGU6ICAKPiA+Pj4gWyBFWFRFUk5BTCBFTUFJTCBdCj4gPj4+Cj4gPj4+IEhlbGxvLAo+ ID4+Pgo+ID4+PiBsaWFuZy55YW5nQGFtbG9naWMuY29tIHdyb3RlIG9uIFdlZCwgMTIgQXByIDIw MjMgMjI6MDQ6MjggKzA4MDA6Cj4gPj4+ICAKPiA+Pj4+IEhpIE1pcXVlbCBhbmQgQXJzZW5peSwK PiA+Pj4+Cj4gPj4+PiBPbiAyMDIzLzQvMTIgMjA6NTcsIE1pcXVlbCBSYXluYWwgd3JvdGU6ICAK PiA+Pj4+PiBbIEVYVEVSTkFMIEVNQUlMIF0KPiA+Pj4+Pgo+ID4+Pj4+IEhpIEFyc2VuaXksCj4g Pj4+Pj4KPiA+Pj4+PiBhdmtyYXNub3ZAc2JlcmRldmljZXMucnUgd3JvdGUgb24gV2VkLCAxMiBB cHIgMjAyMyAxNToyMjoyNiArMDMwMDogIAo+ID4+Pj4+PiBPbiAxMi4wNC4yMDIzIDE1OjE4LCBN aXF1ZWwgUmF5bmFsIHdyb3RlOiAgCj4gPj4+Pj4+PiBIaSBBcnNlbml5LAo+ID4+Pj4+Pj4KPiA+ Pj4+Pj4+IGF2a3Jhc25vdkBzYmVyZGV2aWNlcy5ydSB3cm90ZSBvbiBXZWQsIDEyIEFwciAyMDIz IDEzOjE0OjUyICswMzAwOgo+ID4+Pj4+Pj4gwqDCoMKgID4+Pj4gT24gMTIuMDQuMjAyMyAxMjoz NiwgTWlxdWVsIFJheW5hbCB3cm90ZTogIAo+ID4+Pj4+Pj4+PiBIaSBBcnNlbml5LAo+ID4+Pj4+ Pj4+Pgo+ID4+Pj4+Pj4+PiBhdmtyYXNub3ZAc2JlcmRldmljZXMucnUgd3JvdGUgb24gV2VkLCAx MiBBcHIgMjAyMyAxMjoyMDo1NSArMDMwMDoKPiA+Pj4+Pj4+Pj4gwqDCoMKgwqDCoCA+Pj4+Pj4g T24gMTIuMDQuMjAyMyAxMDo0NCwgTWlxdWVsIFJheW5hbCB3cm90ZTogIAo+ID4+Pj4+Pj4+Pj4+ IEhpIEFyc2VuaXksCj4gPj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiBBVktyYXNub3ZAc2JlcmRl dmljZXMucnUgd3JvdGUgb24gV2VkLCAxMiBBcHIgMjAyMyAwOToxNjo1OCArMDMwMDoKPiA+Pj4+ Pj4+Pj4+PiDCoMKgwqDCoMKgwqDCoCA+Pj4+Pj4+PiBUaGlzIE5BTkQgcmVhZHMgb25seSBmZXcg dXNlcidzIGJ5dGVzIGluIEVDQyBtb2RlIChub3QgZnVsbCBPT0IpLCBzbwo+ID4+Pj4+Pj4+Pj4+ Cj4gPj4+Pj4+Pj4+Pj4gIlRoaXMgTkFORCByZWFkcyIgZG9lcyBub3QgbG9vayByaWdodCwgZG8g eW91IG1lYW4gIlN1YnBhZ2UgcmVhZHMgZG8KPiA+Pj4+Pj4+Pj4+PiBub3QgcmV0cmlldmUgYWxs IHRoZSBPT0IgYnl0ZXMsIj8KPiA+Pj4+Pj4+Pj4+PiDCoMKgwqDCoMKgwqDCoCA+Pj4+Pj4+PiBm aWxsIE9PQiBidWZmZXIgd2l0aCB6ZXJvZXMgdG8gbm90IHJldHVybiBnYXJiYWdlIGZyb20gcHJl dmlvdXMgcmVhZHMgIAo+ID4+Pj4+Pj4+Pj4+PiB0byB1c2VyLgo+ID4+Pj4+Pj4+Pj4+PiBPdGhl cndpc2UgJ25hbmRkdW1wJyB1dGlsaXR5IHByaW50cyBzb21ldGhpbmcgbGlrZSB0aGlzIGZvciBq dXN0IGVyYXNlZAo+ID4+Pj4+Pj4+Pj4+PiBwYWdlOgo+ID4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+ Pj4+PiAuLi4KPiA+Pj4+Pj4+Pj4+Pj4gMHgwMDAwMDdmMDogZmYgZmYgZmYgZmYgZmYgZmYgZmYg ZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYKPiA+Pj4+Pj4+Pj4+Pj4gwqDCoMKgIE9PQiBEYXRh OiBmZiBmZiBmZiBmZiAwMCAwMCBmZiBmZiA4MCBjZiAyMiA5OSBjYiBhZCBkMyBiZQo+ID4+Pj4+ Pj4+Pj4+PiDCoMKgwqAgT09CIERhdGE6IDYzIDI3IGFlIDA2IDE2IDBhIDJmIGViIGJiIGRkIDQ2 IDc0IDQxIDhlIDg4IDZlCj4gPj4+Pj4+Pj4+Pj4+IMKgwqDCoCBPT0IgRGF0YTogMzggYTEgMmQg ZTYgNzcgZDQgMDUgMDYgZjIgYTUgN2UgMjUgZWIgMzQgN2MgZmYKPiA+Pj4+Pj4+Pj4+Pj4gwqDC oMKgIE9PQiBEYXRhOiAzOCBlYSBkZSAxNCAxMCBkZSA5YiA0MCAzMyAxNiA2YSBjYyA5ZCBhYSAy ZiA1ZQo+ID4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBBcnNlbml5 IEtyYXNub3YgPEFWS3Jhc25vdkBzYmVyZGV2aWNlcy5ydT4KPiA+Pj4+Pj4+Pj4+Pj4gLS0tCj4g Pj4+Pj4+Pj4+Pj4+IMKgwqAgZHJpdmVycy9tdGQvbmFuZC9yYXcvbWVzb25fbmFuZC5jIHwgNSAr KysrKwo+ID4+Pj4+Pj4+Pj4+PiDCoMKgIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKykK PiA+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbXRkL25h bmQvcmF3L21lc29uX25hbmQuYyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L21lc29uX25hbmQuYwo+ ID4+Pj4+Pj4+Pj4+PiBpbmRleCBmODRhMTAyMzhlNGQuLmYyZjI0NzJjYjUxMSAxMDA2NDQKPiA+ Pj4+Pj4+Pj4+Pj4gLS0tIGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvbWVzb25fbmFuZC5jCj4gPj4+ Pj4+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L21lc29uX25hbmQuYwo+ID4+Pj4+ Pj4+Pj4+PiBAQCAtODU4LDkgKzg1OCwxMiBAQCBzdGF0aWMgaW50IG1lc29uX25mY19yZWFkX3Bh Z2Vfc3ViKHN0cnVjdCBuYW5kX2NoaXAgKm5hbmQsCj4gPj4+Pj4+Pj4+Pj4+IMKgwqAgc3RhdGlj IGludCBtZXNvbl9uZmNfcmVhZF9wYWdlX3JhdyhzdHJ1Y3QgbmFuZF9jaGlwICpuYW5kLCB1OCAq YnVmLAo+ID4+Pj4+Pj4+Pj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgaW50IG9vYl9yZXF1aXJlZCwgaW50IHBhZ2UpCj4gPj4+Pj4+Pj4+Pj4+IMKgwqAgewo+ ID4+Pj4+Pj4+Pj4+PiArwqDCoMKgIHN0cnVjdCBtdGRfaW5mbyAqbXRkID0gbmFuZF90b19tdGQo bmFuZCk7Cj4gPj4+Pj4+Pj4+Pj4+IMKgwqDCoMKgwqDCoCB1OCAqb29iX2J1ZiA9IG5hbmQtPm9v Yl9wb2k7Cj4gPj4+Pj4+Pj4+Pj4+IMKgwqDCoMKgwqDCoCBpbnQgcmV0Owo+ID4+Pj4+Pj4+Pj4+ PiDCoMKgID4+Pj4+Pj4+ICvCoMKgwqAgbWVtc2V0KG9vYl9idWYsIDAsIG10ZC0+b29ic2l6ZSk7 ICAKPiA+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+IEknbSBzdXJwcmlzZWQgcmF3IHJlYWRzIGRv IG5vdCByZWFkIHRoZSBlbnRpcmUgT09CPyAgCj4gPj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4gWWVz ISBTZWVtcyBpbiBjYXNlIG9mIHJhdyBhY2Nlc3MgKHdoYXQgaSBzZWUgaW4gdGhpcyBkcml2ZXIp IG51bWJlciBvZiBPT0IgYnl0ZXMgcmVhZAo+ID4+Pj4+Pj4+Pj4gc3RpbGwgZGVwZW5kcyBvbiBF Q0MgcGFyYW1ldGVyczogZm9yIGVhY2ggcG9ydGlvbiBvZiBkYXRhIGNvdmVyZWQgd2l0aCBFQ0Mg Y29kZSB3ZSBjYW4KPiA+Pj4+Pj4+Pj4+IHJlYWQgaXQncyBFQ0MgY29kZSBhbmQgInVzZXIgYnl0 ZXMiIGZyb20gT09CIC0gaXQgaXMgd2hhdCBpIHNlZSBieSBkdW1waW5nIERNQSBidWZmZXIgYnkK PiA+Pj4+Pj4+Pj4+IHByaW50aygpLiBGb3IgZXhhbXBsZSBJJ20gd29ya2luZyB3aXRoIDJLIE5B TkQgcGFnZXMsIGVhY2ggcGFnZSBoYXMgMiB4IDFLIEVDQyBibG9ja3MuCj4gPj4+Pj4+Pj4+PiBG b3IgZWFjaCBFQ0MgYmxvY2sgSSBoYXZlIDE2IE9PQiBieXRlcyB3aGljaCBJIGNhbiBhY2Nlc3Mg YnkgcmVhZC93cml0ZS4gRWFjaCAxNiBieXRlcwo+ID4+Pj4+Pj4+Pj4gY29udGFpbnMgMiBieXRl cyBvZiB1c2VyJ3MgZGF0YSBhbmQgMTQgYnl0ZXMgRUNDIGNvZGVzLiBTbyB3aGVuIEkgcmVhZCBw YWdlIGluIHJhdyBtb2RlCj4gPj4+Pj4+Pj4+PiBjb250cm9sbGVyIHJldHVybnMgMzIgYnl0ZXMg KDIgeCAoMiArIDE0KSkgb2YgT09CLiBXaGlsZSBPT0IgaXMgcmVwb3J0ZWQgYXMgNjQgYnl0ZXMu ICAKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gSW4gYWxsIG1vZGVzLCB3aGVuIHlvdSByZWFkIE9P QiwgeW91IHNob3VsZCBnZXQgdGhlIGZ1bGwgT09CLiBUaGUgZmFjdAo+ID4+Pj4+Pj4+PiB0aGF0 IEVDQyBjb3JyZWN0aW9uIGlzIGVuYWJsZWQgb3IgZGlzYWJsZWQgZG9lcyBub3QgbWF0dGVyLiBJ ZiB0aGUgTkFORAo+ID4+Pj4+Pj4+PiBmZWF0dXJlcyBPT0Igc2VjdGlvbnMgb2YgNjQgYnl0ZXMs IHlvdSBzaG91bGQgZ2V0IHRoZSA2NCBieXRlcy4KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gV2hh dCBoYXBwZW5zIHNvbWV0aW1lcywgaXMgdGhhdCBzb21lIG9mIHRoZSBieXRlcyBhcmUgbm90IHBy b3RlY3RlZAo+ID4+Pj4+Pj4+PiBhZ2FpbnN0IGJpdGZsaXBzLCBidXQgdGhlIHBvbGljeSBpcyB0 byByZXR1cm4gdGhlIGZ1bGwgYnVmZmVyLiAgCj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+PiBPaywgc28g dG8gY2xhcmlmeSBjYXNlIGZvciB0aGlzIE5BTkQgY29udHJvbGxlcjoKPiA+Pj4+Pj4+PiAxKSBJ biBib3RoIEVDQyBhbmQgcmF3IG1vZGVzIGkgbmVlZCB0byByZXR1cm4gdGhlIHNhbWUgcmF3IE9P QiBkYXRhIChlLmcuIHVzZXIgYnl0ZXMKPiA+Pj4+Pj4+PiDCoMKgwqDCoCArIEVDQyBjb2Rlcyk/ ICAKPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBXZWxsLCB5b3UgbmVlZCB0byBjb3ZlciB0aGUgc2FtZSBh bW91bnQgb2YgZGF0YSwgeWVzLiBCdXQgaW4gdGhlIEVDQwo+ID4+Pj4+Pj4gY2FzZSB0aGUgZGF0 YSB3b24ndCBiZSByYXcgKGF0IGxlYXN0IG5vdCBhbGwgb2YgaXQpLiAgCj4gPj4+Pj4+Cj4gPj4+ Pj4+IFNvICJzYW1lIGFtb3VudCBvZiBkYXRhIiwgaW4gRUNDIG1vZGUgY3VycmVudCBpbXBsZW1l bnRhdGlvbiByZXR1cm5zIG9ubHkgdXNlciBPT0IgYnl0ZXMgKGUuZy4KPiA+Pj4+Pj4gT09CIGRh dGEgZXhjbHVkaW5nIEVDQyBjb2RlcyksIGluIHJhdyBpdCByZXR1cm5zIHVzZXIgYnl0ZXMgKyBF Q0MgY29kZXMuIElJVUMgY29ycmVjdAo+ID4+Pj4+PiBiZWhhdmlvdXIgaXMgdG8gYWx3YXlzIHJl dHVybiB1c2VyIGJ5dGVzICsgRUNDIGNvZGVzIGFzIE9PQiBkYXRhIGV2ZW4gaW4gRUNDIG1vZGUg PyAgCj4gPj4+Pj4KPiA+Pj4+PiBJZiB0aGUgcGFnZSBhcmUgMmsrNjRCIHlvdSBzaG91bGQgcmVh ZCAyays2NEIgd2hlbiBPT0IgYXJlIHJlcXVlc3RlZC4KPiA+Pj4+Pgo+ID4+Pj4+IElmIHRoZSBj b250cm9sbGVyIG9ubHkgcmV0dXJucyAyayszMkIsIHRoZW4gcGVyZm9ybSBhIHJhbmRvbSByZWFk IHRvCj4gPj4+Pj4ganVzdCBtb3ZlIHRoZSByZWFkIHBvaW50ZXIgdG8gbXRkLT5zaXplICsgbXRk LT5vb2JzaXplIC0gMzIgYW5kCj4gPj4+Pj4gcmV0cmlldmUgdGhlIG1pc3NpbmcgMzIgYnl0ZXM/ ICAKPiA+Pj4+Cj4gPj4+PiAxKSByYXcgcmVhZCBjYW4gcmVhZCBvdXQgdGhlIHdob2xlIHBhZ2Ug ZGF0YSAyays2NEIsIGRlY2lkZWQgYnkgdGhlIGxlbiBpbiB0aGUgY29udHJvbGxlciByYXcgcmVh ZCBjb21tYW5kOgo+ID4+Pj4gwqDCoMKgwqBjbWQgPSAobGVuICYgR0VOTUFTSyg1LCAwKSkgfCBz Y3JhbWJsZXIgfCBETUFfRElSKGRpcik7Cj4gPj4+PiBhZnRlciB0aGF0LCB0aGUgbWlzc2luZyBv b2IgYnl0ZXMobm90IHVzZWQpIGNhbiBiZSBjb3BpZWQgZnJvbSBtZXNvbl9jaGlwLT5kYXRhX2J1 Zi4gc28gdGhlIGltcGxlbWVudGF0aW9uIG9mIG1lc29uX25mY19yZWFkX3BhZ2VfcmF3KCkgaXMg bGlrZSB0aGlzIGlmIG5lZWQuCj4gPj4+PiDCoMKgwqDCoHsKPiA+Pj4+IMKgwqDCoMKgwqDCoMKg IC4uLi4uLgo+ID4+Pj4gwqDCoMKgwqDCoMKgwqAgbWVzb25fbmZjX3JlYWRfcGFnZV9zdWIobmFu ZCwgcGFnZSwgMSk7Cj4gPj4+PiDCoMKgwqDCoMKgwqDCoCBtZXNvbl9uZmNfZ2V0X2RhdGFfb29i KG5hbmQsIGJ1Ziwgb29iX2J1Zik7Cj4gPj4+PiDCoMKgwqDCoMKgwqDCoCBvb2JfbGVuID0gKG5h bmQtPmVjYy5ieXRlcyArIDIpICogbmFuZC0+ZWNjLnN0ZXBzOwo+ID4+Pj4gwqDCoMKgwqDCoMKg wqAgbWVtY3B5KG9vYl9idWYgKyBvb2JfbGVuLCBtZXNvbl9jaGlwLT5kYXRhX2J1ZiArIG9vYl9s ZW4sIG10ZC0+b29ic2l6ZSAtIG9vYl9sZW4pOwo+ID4+Pj4KPiA+Pj4+IMKgwqDCoMKgfQo+ID4+ Pj4gMikgSW4gRUNDIG1vZGUsIHRoZSBjb250cm9sbGVyIGNhbid0IGJyaW5nIGJhY2sgdGhlIG1p c3NpbmcgT09CIGJ5dGVzLiBpdCBjYW4gcmVhZCBvdXQgdGhlIHVzZXIgYnl0ZXMgYW5kIGVjYyBi eXRlcyBwZXIgbWVzb25fb29ibGF5b3V0X29wcyBkZWZpbmUuICAKPiA+Pj4KPiA+Pj4gQW5kIHRo ZW4gKGlmIG9vYl9yZXF1aXJlZCkgeW91IGNhbiBicmluZyB0aGUgbWlzc2luZyBieXRlcyB3aXRo Cj4gPj4+IHNvbWV0aGluZyBhbG9uZzoKPiA+Pj4gbmFuZF9jaGFuZ2VfcmVhZF9jb2x1bW5fb3Ao Y2hpcCwgbXRkLT53cml0ZXNpemUgKyBvb2JfbGVuLAo+ID4+PiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIG9vYl9idWYgKyBvb2JfbGVuLAo+ID4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIG10ZC0+b29ic2l6ZSAtIG9vYl9sZW4sCj4gPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgZmFsc2UpOwo+ID4+PiBTaG91bGQgbm90IGJlIGEgaHVnZSBwZXJmb3JtYW5jZSBo aXQuICAKPiA+Pgo+ID4+IEFmdGVyIGZpbmlzaGluZyBFQ0MgbW9kZSByZWFkaW5nLCB0aGUgY29s dW1uIGFkZHJlc3MgaW50ZXJuYWwgaW4gTkFORCBkZXZpY2Ugc2hvdWxkIGJlIHRoZSByaWdodCBw b3M7IGl0IGRvZXNuJ3QgbmVlZCB0byBjaGFuZ2UgdGhlIGNvbHVtbiBhZ2Fpbi4gc28gYWRkaW5n IGNvbnRyb2xsZXIgcmF3IHJlYWQgZm9yIHRoZSBtaXNzaW5nIGJ5dGVzIGFmdGVyIEVDQyByZWFk aW5nIG1heSB3b3Jrcy4KPiA+PiAgCj4gPiB1c2UgcmF3IHJlYWQgZm9yIHRoZSBtaXNzaW5nIGJ5 dGVzLCBidXQgdGhleSBhcmUgbm90IHByb3RlY3RlZCBieSBob3N0IEVDQy4gdG8gdGhlIE5BTkQg dHlwZSBvZiBzdG9yYWdlLCBpcyBpdCBvayBvciBtaXNzaW5nIGJ5dGVzIGJldHRlciB0byBiZSBm aWxsZWQgd2l0aCAweGZmPyAgCj4gCj4gSUlVQyBNaXF1w6hsJ3MgcmVwbHksIHZhbGlkIGJlaGF2 aW91ciBpcyB0byByZXR1cm4gZnVsbCBPT0IgZGF0YSBpbiBib3RoIG1vZGVzLiBTbyBpbjoKPiBF Q0MgbW9kZSBpdCBpcyB1c2VyIGJ5dGVzKGNvcnJlY3RlZCBieSBFQ0MsIHJlYWQgZnJvbSBpbmZv IGJ1ZmZlcikgKyBFQ0MgKyBtaXNzaW5nIGJ5dGVzLiBFQ0MgYW5kIG1pc3NpbmcgYnl0ZXMgcmVh ZCBpbiBSQVcgbW9kZS4KCkkgYmVsaWV2ZSB0aGUgRUNDIGJ5dGVzIHlvdSdsbCBnZXQgd2lsbCBi ZSBjb3JyZWN0ZWQuCllvdSBjYW4gY2hlY2sgdGhpcyBieSB1c2luZyBuYW5kZmxpcGJpdHMgaW4g bXRkLXV0aWxzLgoKPiBSQVcgbW9kZSBpdCBpcyB1c2VyIGJ5dGVzKG5vdCBjb3JyZWN0ZWQgYnkg RUNDKSArIEVDQyArIG1pc3NpbmcgYnl0ZXMKPiAKPiAKPiBBbHNvIEBMaWFuZywgaXMgdGhpcyB2 YWxpZCBjb2RlIChkcml2ZXJzL210ZC9uYW5kL3Jhdy9tZXNvbl9uYW5kLmMpPwo+IAo+IAlyZXQg PSBuYW5kX2NoZWNrX2VyYXNlZF9lY2NfY2h1bmsoZGF0YSwgZWNjLT5zaXplLAo+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9vYiwgZWNjLT5ieXRlcyArIDIsCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgMCwgICAgICAK PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2MtPnN0cmVuZ3Ro KTsKPiAKPiBJdCBjb25mdXNlZCBtZSwgYmVjYXVzZSAnb29iJyBidWZmZXIgY29udGFpbnMgYm90 aCB1c2VyIGJ5dGVzIGFuZCBFQ0MgY29kZSwKPiAnZWNjLT5ieXRlcyArIDInIGlzIDE2LiBNYXkg YmUgaXQgc2hvdWxkIGJlOgo+IAo+IAlyZXQgPSBuYW5kX2NoZWNrX2VyYXNlZF9lY2NfY2h1bmso ZGF0YSwgZWNjLT5zaXplLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9vYiArIDIsIGVjYy0+Ynl0ZXMsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTlVMTCwgMCwgICAgICAKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBlY2MtPnN0cmVuZ3RoKTsKCldoZW4geW91IGNoZWNrIGZvciBhbiBlcmFz ZWQgY2h1bmsgeW91IHNob3VsZCBwcm9iYWJseSBjaGVjayB0aGUgd2hvbGUKT09CIGFyZWEuCgo+ IAo+IEZvciBleGFtcGxlIGxldCdzIGxvb2sgb24gVGVncmEncyBkcml2ZXIgKGRyaXZlcnMvbXRk L25hbmQvcmF3L3RlZ3JhX25hbmQuYyk6Cj4gCj4gICAgICAgICAgICAgICAgICAgICAgICAgdTgg Km9vYiA9IGNoaXAtPm9vYl9wb2kgKyBuYW5kLT5lY2Mub2Zmc2V0ICsgICAgCj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChjaGlwLT5lY2MuYnl0ZXMgKiBiaXQpOyAgICAgICAg ICAgICAgCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCj4gICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0g bmFuZF9jaGVja19lcmFzZWRfZWNjX2NodW5rKGRhdGEsIGNoaXAtPmVjYy5zaXplLAo+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvb2Is IGNoaXAtPmVjYy5ieXRlcywKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTlVMTCwgMCwgICAgICAKPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpcC0+ZWNjLnN0cmVuZ3Ro KTsKPiAKPiAnb29iJyBjb250YWlucyAnbmFuZC0+ZWNjLm9mZnNldCcsIGFuZCBFQ0MgbGVuZ3Ro IGRvZXMgbm90IGFjY291bnQgdXNlciBieXRlcyBsZW5ndGgKPiAoZS5nLiAyKSAtIGl0IGlzIGp1 c3QgJ2NoaXAtPmVjYy5ieXRlcycKCkkgaGF2ZW4ndCBsb29rZWQgY2FyZWZ1bGx5LCBidXQgYmUg YXdhcmUgdGhlcmUgYXJlIHR3byB1c2VyIGJ5dGVzCnJlc2VydmVkIGF0IHRoZSBiZWdpbm5pbmcg b2YgdGhlIE9PQiBhcmVhIGZvciBtYXJraW5nIGJhZCBibG9ja3MuIFRoZXJlCiptYXkqIGJlIGEg Y29uZnVzaW9uIHNvbWV3aGVyZS4gSSBhbSBub3Qgc2F5aW5nIHRoZXJlIGlzIG9uZSwganVzdCBh CmhpbnQgaWYgeW91IGNhbid0IGZpbmQgYW4gZXhwbGFuYXRpb24uCgoKVGhhbmtzLApNaXF1w6hs CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K TGludXggTVREIGRpc2N1c3Npb24gbWFpbGluZyBsaXN0Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQu b3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtbXRkLwo=