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 044F7C7EE23 for ; Wed, 7 Jun 2023 08:03:34 +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=I8xseth/wNWVBJD8yvCHnzaz2Er6CDhLZztW7AJt/wQ=; b=voo7bZPyLHg5oE rf9A/IRmEX+aQKncj/gSBKnixwNB9h5ekbYyADYGeDObQ0ibZdm5l8groxm3z6ZOwDPcb086mzd/N NgJ5qnI09usuHikMgs6wc84Y5sediluIgKxZRk/Q5na/ixxYbVyDwh8lLCH7oPmPeWvFSKDB8bHhu m3Rkl6D4UkGvdwFZya/H7ZiMjsQ0MqoC7eQx4OKVK5Uv5KJRAvtFZzRR8fDSVkWWu0SA0AGiNLBv8 saLQCup6UW6jWatxjGR2JRtfF/N5SfofMHbzSDAJaJArWOYnKm6XNL1HQkSN32WRUUWJwBWpHTxmb Pm3TtcXI60PQ+pGcTK+A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q6o8L-004qrk-2q; Wed, 07 Jun 2023 08:03:09 +0000 Received: from relay5-d.mail.gandi.net ([217.70.183.197]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1q6o8H-004qq8-2a; Wed, 07 Jun 2023 08:03:07 +0000 X-GND-Sasl: miquel.raynal@bootlin.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1686124980; 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=TPtobzb++j+FXVO8cp/kj3PoJZPInkCcA1UC+qnSrzo=; b=nf+3Nj4bwgyX0tyG12f+zUP+DsYAF9pNp2Ne6ZLnFzKUOIUXynGzw7vGLwF5NGF7zMHOLS A5xkpOP2sAlv355HiQZCDg/1qsJBqvfiBOOnFOOBkDG3/j8opS6G6Rf2KZ0MqvuyvirZ/p 4bxb+fTS/o3ats3RZ8iazMARWLLrrI/jYtDMKuSh2irHnU3PCVy9jkEF3why/KoeVuEYzB zhfqHP/JbvzU2LOInA00qjLymhbH04Pz7FTHiVhXcbPO+qY4b0vfSJkA5cRpsDr8Z46pVy rQWhqTAxvn+8+zdB2giYp+2SMzKSkAIeqfzZ/EvcA5DiuX7VroZs6sDiteTtpQ== X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com Received: by mail.gandi.net (Postfix) with ESMTPSA id CA4011C0010; Wed, 7 Jun 2023 08:02:58 +0000 (UTC) Date: Wed, 7 Jun 2023 10:02:57 +0200 From: Miquel Raynal To: Arseniy Krasnov Cc: Liang Yang , Richard Weinberger , Vignesh Raghavendra , Neil Armstrong , Kevin Hilman , Jerome Brunet , Martin Blumenstingl , , , , , , Subject: Re: [PATCH v2] mtd: rawnand: meson: waiting w/o wired ready/busy pin Message-ID: <20230607100257.627fc438@xps-13> In-Reply-To: <20230607073015.1280085-1-AVKrasnov@sberdevices.ru> References: <20230607073015.1280085-1-AVKrasnov@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-20230607_010306_103756_C95E105F X-CRM114-Status: GOOD ( 33.03 ) X-BeenThere: linux-amlogic@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-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org SGkgQXJzZW5peSwKCkFWS3Jhc25vdkBzYmVyZGV2aWNlcy5ydSB3cm90ZSBvbiBXZWQsIDcgSnVu IDIwMjMgMTA6MzA6MTUgKzAzMDA6Cgo+IElmIHRoZXJlIGlzIG5vIHdpcmVkIHJlYWR5L2J1c3kg cGluLCBjbGFzc2ljIHdheSB0byB3YWl0IGZvciBjb21tYW5kCj4gY29tcGxldGlvbiBpcyB0byB1 c2UgZnVuY3Rpb24gJ25hbmRfc29mdF93YWl0cmR5KCknLiBNZXNvbiBOQU5EIGhhcwo+IHNwZWNp YWwgY29tbWFuZCB3aGljaCBhbGxvd3MgdG8gd2FpdCBmb3IgTkFORF9TVEFUVVNfUkVBRFkgYml0 IHdpdGhvdXQKPiByZWFkaW5nIHN0YXR1cyBpbiBhIHNvZnR3YXJlIGxvb3AgKGFzICduYW5kX3Nv ZnRfd2FpdHJkeSgpJyBkb2VzKS4gVG8KPiB1c2UgaXQgc2VuZCB0aGlzIGNvbW1hbmQgYWxvbmcg d2l0aCBOQU5EX0NNRF9TVEFUVVMsIHRoZW4gd2FpdCBmb3IgYW4KPiBpbnRlcnJ1cHQsIGFuZCBh ZnRlciBpbnRlcnJ1cHQgc2VuZCBOQU5EX0NNRF9SRUFEMC4gU28gdGhpcyBmZWF0dXJlCj4gYWxs b3dzIHRvIHVzZSBpbnRlcnJ1cHQgZHJpdmVuIHdhaXRpbmcgd2l0aG91dCB3aXJlZCByZWFkeS9i dXN5IHBpbi4KPiAKPiBTdWdnZXN0ZWQtYnk6IExpYW5nIFlhbmcgPGxpYW5nLnlhbmdAYW1sb2dp Yy5jb20+Cj4gU2lnbmVkLW9mZi1ieTogQXJzZW5peSBLcmFzbm92IDxBVktyYXNub3ZAc2JlcmRl dmljZXMucnU+Cj4gLS0tCj4gIENoYW5nZWxvZzoKPiAgdjEgLT4gdjI6Cj4gICAqIFJlbW92ZSBz bWFsbCBkZWxheXMgZnJvbSAnbWVzb25fbmZjX3dhaXRfbm9fcmJfcGluKCknLiBCb3RoIGhhdmUg bm8KPiAgICAgZWZmZWN0IGFjY29yZGluZyBMaWFuZydzIG1lc3NhZ2UuCj4gICAqIFR5cGUgb2Yg J25vX3JiX3BpbicgaXMgdTMyLCB0aGUgc2FtZSBhcyBmb3IgJ25hbmQtcmInIHByb3BlcnR5Lgo+ ICAgKiAnbWVzb25fbmZjX3dhaXRfbm9fcmJfcGluKCknIGRvZXNuJ3Qgc2VuZCBOQU5EX0NNRF9S RUFEMCBpbiBjYXNlIG9mCj4gICAgIHBhZ2UgcHJvZ3JhbW1pbmcuIEV4dHJhIGFyZ3VtZW50IGlz IGFkZGVkIHRvICdtZXNvbl9uZmNfcXVldWVfcmIoKScKPiAgICAgdG8gY2hlY2sgdGhhdCBjYXNl Lgo+IAo+ICBkcml2ZXJzL210ZC9uYW5kL3Jhdy9tZXNvbl9uYW5kLmMgfCA3NCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tCj4gIDEgZmlsZSBjaGFuZ2VkLCA3MCBpbnNlcnRpb25zKCsp LCA0IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9t ZXNvbl9uYW5kLmMgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9tZXNvbl9uYW5kLmMKPiBpbmRleCAw NzRlMTQyMjVjMDYuLmFlNDA0NjU1YjY4YyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL210ZC9uYW5k L3Jhdy9tZXNvbl9uYW5kLmMKPiArKysgYi9kcml2ZXJzL210ZC9uYW5kL3Jhdy9tZXNvbl9uYW5k LmMKPiBAQCAtMzgsNiArMzgsNyBAQAo+ICAjZGVmaW5lIE5GQ19DTURfU0NSQU1CTEVSX0RJU0FC TEUJMAo+ICAjZGVmaW5lIE5GQ19DTURfU0hPUlRNT0RFX0RJU0FCTEUJMAo+ICAjZGVmaW5lIE5G Q19DTURfUkJfSU5UCQlCSVQoMTQpCj4gKyNkZWZpbmUgTkZDX0NNRF9SQl9JTlRfTk9fUElOCSgo MHhiIDw8IDEwKSB8IEJJVCgxOCkgfCBCSVQoMTYpKQo+ICAKPiAgI2RlZmluZSBORkNfQ01EX0dF VF9TSVpFKHgpCSgoKHgpID4+IDIyKSAmIEdFTk1BU0soNCwgMCkpCj4gIAo+IEBAIC0xNzksNiAr MTgwLDcgQEAgc3RydWN0IG1lc29uX25mYyB7Cj4gIAl1MzIgaW5mb19ieXRlczsKPiAgCj4gIAl1 bnNpZ25lZCBsb25nIGFzc2lnbmVkX2NzOwo+ICsJdTMyIG5vX3JiX3BpbjsKPiAgfTsKPiAgCj4g IGVudW0gewo+IEBAIC0zOTIsNyArMzk0LDQyIEBAIHN0YXRpYyB2b2lkIG1lc29uX25mY19zZXRf ZGF0YV9vb2Ioc3RydWN0IG5hbmRfY2hpcCAqbmFuZCwKPiAgCX0KPiAgfQo+ICAKPiAtc3RhdGlj IGludCBtZXNvbl9uZmNfcXVldWVfcmIoc3RydWN0IG1lc29uX25mYyAqbmZjLCBpbnQgdGltZW91 dF9tcykKPiArc3RhdGljIGludCBtZXNvbl9uZmNfd2FpdF9ub19yYl9waW4oc3RydWN0IG1lc29u X25mYyAqbmZjLCBpbnQgdGltZW91dF9tcywKPiArCQkJCSAgICBib29sIG5lZWRfY21kX3JlYWQw KQo+ICt7Cj4gKwl1MzIgY21kLCBjZmc7Cj4gKwo+ICsJbWVzb25fbmZjX2NtZF9pZGxlKG5mYywg bmZjLT50aW1pbmcudHdiKTsKPiArCW1lc29uX25mY19kcmFpbl9jbWQobmZjKTsKPiArCW1lc29u X25mY193YWl0X2NtZF9maW5pc2gobmZjLCBDTURfRklGT19FTVBUWV9USU1FT1VUKTsKPiArCj4g KwljZmcgPSByZWFkbChuZmMtPnJlZ19iYXNlICsgTkZDX1JFR19DRkcpOwo+ICsJY2ZnIHw9IE5G Q19SQl9JUlFfRU47Cj4gKwl3cml0ZWwoY2ZnLCBuZmMtPnJlZ19iYXNlICsgTkZDX1JFR19DRkcp Owo+ICsKPiArCXJlaW5pdF9jb21wbGV0aW9uKCZuZmMtPmNvbXBsZXRpb24pOwo+ICsJY21kID0g bmZjLT5wYXJhbS5jaGlwX3NlbGVjdCB8IE5GQ19DTURfQ0xFIHwgTkFORF9DTURfU1RBVFVTOwo+ ICsJd3JpdGVsKGNtZCwgbmZjLT5yZWdfYmFzZSArIE5GQ19SRUdfQ01EKTsKPiArCj4gKwkvKiB1 c2UgdGhlIG1heCBlcmFzZSB0aW1lIGFzIHRoZSBtYXhpbXVtIGNsb2NrIGZvciB3YWl0aW5nIFIv QiAqLwo+ICsJY21kID0gTkZDX0NNRF9SQiB8IE5GQ19DTURfUkJfSU5UX05PX1BJTiB8IG5mYy0+ dGltaW5nLnRiZXJzX21heDsKPiArCXdyaXRlbChjbWQsIG5mYy0+cmVnX2Jhc2UgKyBORkNfUkVH X0NNRCk7Cj4gKwo+ICsJaWYgKCF3YWl0X2Zvcl9jb21wbGV0aW9uX3RpbWVvdXQoJm5mYy0+Y29t cGxldGlvbiwKPiArCQkJCQkgbXNlY3NfdG9famlmZmllcyh0aW1lb3V0X21zKSkpCj4gKwkJcmV0 dXJuIC1FVElNRURPVVQ7Cj4gKwo+ICsJaWYgKG5lZWRfY21kX3JlYWQwKSB7Cj4gKwkJY21kID0g bmZjLT5wYXJhbS5jaGlwX3NlbGVjdCB8IE5GQ19DTURfQ0xFIHwgTkFORF9DTURfUkVBRDA7Cj4g KwkJd3JpdGVsKGNtZCwgbmZjLT5yZWdfYmFzZSArIE5GQ19SRUdfQ01EKTsKPiArCQltZXNvbl9u ZmNfZHJhaW5fY21kKG5mYyk7Cj4gKwkJbWVzb25fbmZjX3dhaXRfY21kX2ZpbmlzaChuZmMsIENN RF9GSUZPX0VNUFRZX1RJTUVPVVQpOwo+ICsJfQo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ ICtzdGF0aWMgaW50IG1lc29uX25mY193YWl0X3JiX3BpbihzdHJ1Y3QgbWVzb25fbmZjICpuZmMs IGludCB0aW1lb3V0X21zKQo+ICB7Cj4gIAl1MzIgY21kLCBjZmc7Cj4gIAlpbnQgcmV0ID0gMDsK PiBAQCAtNDIwLDYgKzQ1NywyNSBAQCBzdGF0aWMgaW50IG1lc29uX25mY19xdWV1ZV9yYihzdHJ1 Y3QgbWVzb25fbmZjICpuZmMsIGludCB0aW1lb3V0X21zKQo+ICAJcmV0dXJuIHJldDsKPiAgfQo+ ICAKPiArc3RhdGljIGludCBtZXNvbl9uZmNfcXVldWVfcmIoc3RydWN0IG1lc29uX25mYyAqbmZj LCBpbnQgdGltZW91dF9tcywKPiArCQkJICAgICAgYm9vbCBuZWVkX2NtZF9yZWFkMCkKPiArewo+ ICsJaWYgKG5mYy0+bm9fcmJfcGluKSB7Cj4gKwkJLyogVGhpcyBtb2RlIGlzIHVzZWQgd2hlbiB0 aGVyZSBpcyBubyB3aXJlZCBSL0IgcGluLgo+ICsJCSAqIEl0IHdvcmtzIGxpa2UgJ25hbmRfc29m dF93YWl0cmR5KCknLCBidXQgaW5zdGVhZCBvZgo+ICsJCSAqIHBvbGxpbmcgTkFORF9DTURfU1RB VFVTIGJpdCBpbiB0aGUgc29mdHdhcmUgbG9vcCwKPiArCQkgKiBpdCB3aWxsIHdhaXQgZm9yIGlu dGVycnVwdCAtIGNvbnRyb2xsZXJzIGNoZWNrcyBJTwo+ICsJCSAqIGJ1cyBhbmQgd2hlbiBpdCBk ZXRlY3RzIE5BTkRfQ01EX1NUQVRVUyBvbiBpdCwgaXQKPiArCQkgKiByYWlzZXMgaW50ZXJydXB0 LiBBZnRlciBpbnRlcnJ1cHQsIE5BTkRfQ01EX1JFQUQwIGlzCj4gKwkJICogc2VudCBhcyB0ZXJt aW5hdG9yIG9mIHRoZSByZWFkeSB3YWl0aW5nIHByb2NlZHVyZS4KClBsZWFzZSBhbHNvIHRlbGwg dXMgaW4gd2hpY2ggY2FzZSB0aGlzIGlzIG5lZWRlZC9ub3QgbmVlZGVkLgoKPiArCQkgKi8KPiAr CQlyZXR1cm4gbWVzb25fbmZjX3dhaXRfbm9fcmJfcGluKG5mYywgdGltZW91dF9tcywKPiArCQkJ CQkJbmVlZF9jbWRfcmVhZDApOwo+ICsJfSBlbHNlIHsKPiArCQlyZXR1cm4gbWVzb25fbmZjX3dh aXRfcmJfcGluKG5mYywgdGltZW91dF9tcyk7Cj4gKwl9Cj4gK30KPiArCj4gIHN0YXRpYyB2b2lk IG1lc29uX25mY19zZXRfdXNlcl9ieXRlKHN0cnVjdCBuYW5kX2NoaXAgKm5hbmQsIHU4ICpvb2Jf YnVmKQo+ICB7Cj4gIAlzdHJ1Y3QgbWVzb25fbmZjX25hbmRfY2hpcCAqbWVzb25fY2hpcCA9IHRv X21lc29uX25hbmQobmFuZCk7Cj4gQEAgLTYyMyw3ICs2NzksNyBAQCBzdGF0aWMgaW50IG1lc29u X25mY19yd19jbWRfcHJlcGFyZV9hbmRfZXhlY3V0ZShzdHJ1Y3QgbmFuZF9jaGlwICpuYW5kLAo+ ICAJaWYgKGluKSB7Cj4gIAkJbmZjLT5jbWRmaWZvLnJ3LmNtZDEgPSBjcyB8IE5GQ19DTURfQ0xF IHwgTkFORF9DTURfUkVBRFNUQVJUOwo+ICAJCXdyaXRlbChuZmMtPmNtZGZpZm8ucncuY21kMSwg bmZjLT5yZWdfYmFzZSArIE5GQ19SRUdfQ01EKTsKPiAtCQltZXNvbl9uZmNfcXVldWVfcmIobmZj LCBQU0VDX1RPX01TRUMoc2RyLT50Ul9tYXgpKTsKPiArCQltZXNvbl9uZmNfcXVldWVfcmIobmZj LCBQU0VDX1RPX01TRUMoc2RyLT50Ul9tYXgpLCB0cnVlKTsKPiAgCX0gZWxzZSB7Cj4gIAkJbWVz b25fbmZjX2NtZF9pZGxlKG5mYywgbmZjLT50aW1pbmcudGFkbCk7Cj4gIAl9Cj4gQEAgLTY2OSw3 ICs3MjUsNyBAQCBzdGF0aWMgaW50IG1lc29uX25mY193cml0ZV9wYWdlX3N1YihzdHJ1Y3QgbmFu ZF9jaGlwICpuYW5kLAo+ICAKPiAgCWNtZCA9IG5mYy0+cGFyYW0uY2hpcF9zZWxlY3QgfCBORkNf Q01EX0NMRSB8IE5BTkRfQ01EX1BBR0VQUk9HOwo+ICAJd3JpdGVsKGNtZCwgbmZjLT5yZWdfYmFz ZSArIE5GQ19SRUdfQ01EKTsKPiAtCW1lc29uX25mY19xdWV1ZV9yYihuZmMsIFBTRUNfVE9fTVNF QyhzZHItPnRQUk9HX21heCkpOwo+ICsJbWVzb25fbmZjX3F1ZXVlX3JiKG5mYywgUFNFQ19UT19N U0VDKHNkci0+dFBST0dfbWF4KSwgZmFsc2UpOwo+ICAKPiAgCW1lc29uX25mY19kbWFfYnVmZmVy X3JlbGVhc2UobmFuZCwgZGF0YV9sZW4sIGluZm9fbGVuLCBETUFfVE9fREVWSUNFKTsKPiAgCj4g QEAgLTk1Miw3ICsxMDA4LDggQEAgc3RhdGljIGludCBtZXNvbl9uZmNfZXhlY19vcChzdHJ1Y3Qg bmFuZF9jaGlwICpuYW5kLAo+ICAJCQlicmVhazsKPiAgCj4gIAkJY2FzZSBOQU5EX09QX1dBSVRS RFlfSU5TVFI6Cj4gLQkJCW1lc29uX25mY19xdWV1ZV9yYihuZmMsIGluc3RyLT5jdHgud2FpdHJk eS50aW1lb3V0X21zKTsKPiArCQkJbWVzb25fbmZjX3F1ZXVlX3JiKG5mYywgaW5zdHItPmN0eC53 YWl0cmR5LnRpbWVvdXRfbXMsCj4gKwkJCQkJICAgdHJ1ZSk7Cj4gIAkJCWlmIChpbnN0ci0+ZGVs YXlfbnMpCj4gIAkJCQltZXNvbl9uZmNfY21kX2lkbGUobmZjLCBkZWxheV9pZGxlKTsKPiAgCQkJ YnJlYWs7Cj4gQEAgLTE0MTIsNiArMTQ2OSwxNSBAQCBzdGF0aWMgaW50IG1lc29uX25mY19wcm9i ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAJCXJldHVybiByZXQ7Cj4gIAl9Cj4g IAo+ICsJcmV0ID0gb2ZfcHJvcGVydHlfcmVhZF91MzIoZGV2LT5vZl9ub2RlLCAibmFuZC1yYiIs ICZuZmMtPm5vX3JiX3Bpbik7Cj4gKwlpZiAocmV0KSB7Cj4gKwkJLyogSWYgcHJvcGVydHkgd2Fz IG5vdCBmb3VuZCwgZG9uJ3QgdXNlIHJiIHBpbi4gKi8KPiArCQlpZiAocmV0ID09IC1FSU5WQUwp Cj4gKwkJCW5mYy0+bm9fcmJfcGluID0gMTsKCllvdSBtaXggdHdvIHRoaW5nczoKLSB0aGUgcHJl c2VuY2Ugb2YgdGhlIFJCIHBpbgotIHRoZSBSQiBsaW5lCkp1c3QgdHVybiBub19yYl9waW4gaW50 byBhIGJvb2xlYW4gYnV0IGQnb250IHVzZSBpdCB0byByZWFkIHRoZQpwcm9wZXJ0eS4gVXNlIGFu b3RoZXIgbG9jYWwgdTMyIGFuZCBqdXN0IGNoZWNrIHRoZSB2YWx1ZSBpcyAwLiBJZiB0aGUKdmFs dWUgaXMgbm90IDAsIHRoZW4gcmV0dXJuIC1FSU5WQUwuCgpBbHNvIHlvdSBzaG91bGQgY29uc3Ry YWluIHRoZSBkdCBwcm9wZXJ0eSBpbiB0aGUgYmluZGluZyB0byBiZSBlaXRoZXIKYWJzZW50IG9y IDAgYnV0IG5vdGhpbmcgZWxzZSwgd2l0aCBzb21ldGhpbmcgbGlrZToKbWF4SXRlbXM6IDEKICBt aW5pbXVtOiAwCiAgbWF4aW11bTogMAoKPiArCQllbHNlCj4gKwkJCXJldHVybiByZXQ7Cj4gKwl9 Cj4gKwo+ICAJd3JpdGVsKDAsIG5mYy0+cmVnX2Jhc2UgKyBORkNfUkVHX0NGRyk7Cj4gIAlyZXQg PSBkZXZtX3JlcXVlc3RfaXJxKGRldiwgaXJxLCBtZXNvbl9uZmNfaXJxLCAwLCBkZXZfbmFtZShk ZXYpLCBuZmMpOwo+ICAJaWYgKHJldCkgewoKClRoYW5rcywKTWlxdcOobAoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYW1sb2dpYyBtYWlsaW5n IGxpc3QKbGludXgtYW1sb2dpY0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZy YWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYW1sb2dpYwo=