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 DD137C46CD4 for ; Fri, 29 Dec 2023 21:09:32 +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:Subject:References: In-Reply-To:Message-ID: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=KAWvjoVYv1wrLwJ/xVkafY//g/PFuLMFcoHbZXXwT0s=; b=jlD9UOtfDkP/dimA0Pk8g2UO/6 axgqcARWoTz4wv56QkKEVUCB1EUjPOg4IRUB24lBlPNh4Sb/wlZwt+tMV4Um9gt1vxpKMOSuMGXrf X9HG4YIqHe4iszej7Z6+MfHC7bBPNKO0Zd7nD/T+Qz0v1TD42Ap3V2FuOfdmi/SLtMqVXblZXHAoi iPVNY/pxDUT+Kpe77zkJrbJdxL1GYC6IiXhtkjd+WzFaUySzJuwEiyAf+6NotbthKLl38R+gki/Y9 mf9kp94KhXSAcS/W7bFJj+HzMZaEo0f14pKb5pSwqWpzo1uQvoiaP6UlTMFskhWNy86N0veXZwjCu H3S8LbLw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rJK6S-001X29-1S; Fri, 29 Dec 2023 21:09:12 +0000 Received: from lithops.sigma-star.at ([195.201.40.130]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rJK6M-001WzS-1T for linux-mtd@lists.infradead.org; Fri, 29 Dec 2023 21:09:09 +0000 Received: from localhost (localhost [127.0.0.1]) by lithops.sigma-star.at (Postfix) with ESMTP id F16556343B5F; Fri, 29 Dec 2023 22:08:59 +0100 (CET) Received: from lithops.sigma-star.at ([127.0.0.1]) by localhost (lithops.sigma-star.at [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id rK-5C5k2T2LH; Fri, 29 Dec 2023 22:08:59 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by lithops.sigma-star.at (Postfix) with ESMTP id 3E8EE6343B49; Fri, 29 Dec 2023 22:08:59 +0100 (CET) Received: from lithops.sigma-star.at ([127.0.0.1]) by localhost (lithops.sigma-star.at [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 0EugnY1wJAwv; Fri, 29 Dec 2023 22:08:59 +0100 (CET) Received: from lithops.sigma-star.at (lithops.sigma-star.at [195.201.40.130]) by lithops.sigma-star.at (Postfix) with ESMTP id 1B1F36343B3A; Fri, 29 Dec 2023 22:08:59 +0100 (CET) Date: Fri, 29 Dec 2023 22:08:59 +0100 (CET) From: Richard Weinberger To: chengzhihao1 Cc: david oberhollenzer , Miquel Raynal , Sascha Hauer , Tudor Ambarus , linux-kernel , linux-mtd Message-ID: <642239519.177270.1703884138999.JavaMail.zimbra@nod.at> In-Reply-To: <13b259ca-b32f-a8d6-5e11-8bb38df72f5c@huawei.com> References: <20231228014112.2836317-1-chengzhihao1@huawei.com> <1145531757.175508.1703844362355.JavaMail.zimbra@nod.at> <13b259ca-b32f-a8d6-5e11-8bb38df72f5c@huawei.com> Subject: Re: [PATCH RFC 00/17] ubifs: Add filesystem repair support MIME-Version: 1.0 X-Originating-IP: [195.201.40.130] X-Mailer: Zimbra 8.8.12_GA_3807 (ZimbraWebClient - FF97 (Linux)/8.8.12_GA_3809) Thread-Topic: ubifs: Add filesystem repair support Thread-Index: AkgMz2JGx84iN/cShcb2uWeDWhTkSA== X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231229_130906_868431_EEC235F8 X-CRM114-Status: GOOD ( 32.09 ) 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 LS0tLS0gVXJzcHLDvG5nbGljaGUgTWFpbCAtLS0tLQo+IFZvbjogImNoZW5nemhpaGFvMSIgPGNo ZW5nemhpaGFvMUBodWF3ZWkuY29tPgo+IEkgbWFrZSBVQklGUyByZXBhaXIgZm9yIHR3byByZWFz b25zOgo+IAo+IDEuIFRoZXJlIGhhdmUgYmVlbiBtYW55IGluY29uc2lzdGVudCBwcm9ibGVtcyBo YXBwZW5lZCBpbiBvdXIKPiBwcm9kdWN0cyg0MCsgcGVyIHllYXIpLCBhbmQgcmVhc29ucyBmb3Ig bW9zdCBvZiB0aGVtIGFyZSB1bmtub3duLCBJIGV2ZW4KPiBjYW4ndCBqdWRnZSB0aGUgcHJvYmxl bSBpcyBjYXVzZWQgYnkgVUJJRlMgYnVnIG9yIGhhcmR3YXJlIGV4Y2VwdGlvbi4KPiBUaGUgY29u c2lzdGVudCBwcm9ibGVtcywgZm9yIGV4YW1wbGUsIFROQyBwb2ludHMgdG8gYW4gZW1wdHkgc3Bh Y2UsIFROQwo+IHBvaW50cyB0byBhbiB1bmV4cGVjdGVkIG5vZGUsIGJhZCBrZXkgb3JkZXIgaW4g em5vZGVzLCBkaXJ0eSBzcGFjZSBvZgo+IHBub2RlIGJlY29tZXMgZ3JlYXRlciB0aGFuIExFQiBz aXplLCBodWdlIG51bWJlciBpbgo+IG1hc3Rlci0+dG90YWxfZGVhZChsb29rcyBsaWtlIG92ZXJm bG93KSwgZXRjLiBJIGNhbm5vdCBzZW5kIHRoZXNlIGJhZAo+IGltYWdlcyB0byBmaW5kIGhlbHAs IGJlY2F1c2UgdGhlIGNvcnBvcmF0ZSBwb2xpY3kuIE91ciBrZXJuZWwgdmVyc2lvbiBpcwo+IG5l dywgYW5kIGxhdGVzdCBidWdmaXhzIGluIGxpbnV4LW1haW5saW5lIGFyZSBwaWNrZWQgaW4gdGlt ZS4gSSBoYXZlCgpSZWdhcmRpbmcgY29tcGFueSBwb2xpY3ksIHdlIGNvdWxkIGltcGxlbWVudCBh IHRvb2wgd2hpY2ggZHVtcHMganVzdCBVQklGUycKbWV0YSBkYXRhIChubyBkYXRhIG5vZGUgY29u dGVudCBub3IgZmlsZW5hbWVzKS4gZXh0NCBoYXMgc3VjaCBhIHRvb2wgdG8KZXhjaGFuZ2UgZmF1 bHR5IGZpbGVzeXN0ZW1zLgpBbm90aGVyIG9wdGlvbiBpcywgaW4gY2FzZSB5b3Ugd2FudCBzb21l IGVsc2UgbG9va2luZyBpbnRvIHRoZSBpc3N1ZSwKYXNraW5nIGEgY29udHJhY3RvciBsaWtlIG1l LiBVc3VhbGx5IHNpZ25pbmcgYSBOREEgaXMgbm90IGEgYmlnIGRlYWwuCgpJbiBhbnkgY2FzZSwg SSdtIGtlZW4gdG8gbG9vayBpbnRvIHRoaXMgaXNzdWVzLiBCdXQgSSBmZWFyCndlIG5lZWQgbW9y ZSB0ZXN0aW5nIHRvIGZpbmQgdGhlIHJvb3QgY2F1c2UsIGlmIHRoZXkgYXJlIGNhdXNlZCBieSBV QklGUyBidWdzLgoKPiBsb29rZWQgdGhvdWdoIGpvdXJuYWwvcmVjb3ZlcnkgVUJJRlMgc3Vic3lz dGVtIGRvemVucyBvZiB0aW1lcywgdGhlCj4gaW1wbGVtZW50YXRpb24gbG9va3MgZ29vZCwgZXhj ZXB0IG9uZSBwcm9ibGVtWzJdLiBBbmQgd2UgaGF2ZSBkbyBtYW55Cj4gcG93ZXJjdXQvZmF1bC1p bmplY3Rpb24gdGVzdHMgZm9yIHViaWZzLCBhbmQgWmhhb2xvbmcgaGFzIHB1Ymxpc2hlZCBvdXIK PiBmYXVsdC1pbmplY3Rpb24gaW1wbGVtZW50YXRpb24gaW4gWzNdLCB0aGUgcmVzdWx0IGlzIHRo YXQKPiBqb3VybmFsL3JlY292ZXJ5IFVCSUZTIHN1YnN5c3RlbSBkb2VzIGxvb2sgc3R1cmR5LgoK SSBjYW1lIHRvIHRoZSBzYW1lIGNvbmNsdXNpb24gYWZ0ZXIgZGlnZ2luZyB0aHJvdWdoIHRoZSBj b2RlIG1vcmUgdGhhbiBvbmNlLiA6LSkKIAo+IDIuIElmIHRoZXJlIGV4aXN0cyBhIGZzY2sgdG9v bCwgdXNlciBoYXZlIG9uZSBtb3JlIG9wdGlvbiB0byBkZWFsIHdpdGgKPiBpbmNvbnNpc3RlbnQg VUJJRlMgaW1hZ2UuIFVCSUZTIGlzIG1haW5seSBhcHBsaWVkIGluIGVtYmVkZWQgc3lzdGVtLAo+ IG1ha2luZyBmaWxlc3lzdGVtIGF2YWlsYWJsZSBpcyBtb3N0IGltcG9ydGFudCB3aGVuIGZpbGVz eXN0ZW0gYmVjb21lcwo+IGluY29uc2lzdGVudCBpbiBzb21lIHNpdHVhdGlvbnMuCgpUaGlzIGlz IHRoZSBwb2ludCB3aGVyZSBJJ20gbW9yZSBzY2VwdGljYWwuClBsZWFzZSBzZWUgbXkgY29tbWVu dHMgYmVsb3cuCgo+IFsxXQo+IGh0dHBzOi8vbGludXgtbXRkLmluZnJhZGVhZC5uYXJraXZlLmNv bS9iZmNIekQwai91YmktdWJpZnMtY29ycnVwdGlvbnMtZHVyaW5nLXJhbmRvbS1wb3dlci1jdXRz Cj4gCj4gWzJdIGh0dHBzOi8vYnVnemlsbGEua2VybmVsLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4 MzA5Cj4gCj4gWzNdIGh0dHBzOi8vcGF0Y2h3b3JrLm96bGFicy5vcmcvcHJvamVjdC9saW51eC1t dGQvbGlzdC8/c2VyaWVzPTM4ODAzNAo+IAo+IEknbSBub3Qgc3VyZSB3aGV0aGVyIHlvdSBwcmVm ZXIgYSBmc2NrIHRvb2wsIGluIG15IG9waW5pb24sIGZzY2sganVzdAo+IHByb3ZpZGUgYSB3YXkg Zm9yIHVzZXJzcGFjZSB0byBmaXggZmlsZXN5c3RlbSwgdXNlciBjYW4gY2hvb3NlIGludm9rZSBp dAo+IG9yIG5vdCBhY2NvcmRpbmcgdG8gdGhlIHRvb2wncyBsaW1pdGF0aW9ucyBiYXNlZCBvbiBz cGVjaWZpYyBzaXR1YXRpb24uCj4gQnV0IGFjY29yZGluZyB0byB5b3VyIGZvbGxvd2luZyByZXBs eSwgSSBndWVzcyB5b3UgY2FuIGFjY2VwdCB0aGF0IFVCSUZTCj4gY2FuIGhhdmUgYSBmc2NrLCBh bmQgZnNjayBzaG91bGQgbGV0IHVzZXIga25vd24gd2hpY2ggZmlsZSBpcyByZWNvdmVyZWQKPiBp bmNvbXBsZXRlLCB3aGljaCBmaWxlIGlzIG9sZCwgcmF0aGVyIHRoYW4ganVzdCBtYWtlIGZpbGVz eXN0ZW0gYmVjb21lCj4gY29uc2lzdGVudC4KCkkgc2VlIHRocmVlIGRpZmZlcmVudCBmdW5jdGlv bnM6CgoxLiBPbmxpbmUgc2NydWJiaW5nCgpBIGZlYXR1cmUgd2hpY2ggY2FuIGNoZWNrIGFsbCBV QklGUyBzdHJ1Y3R1cmVzIHdoaWxlIFVCSUZTIGlzIG1vdW50ZWQKYW5kIHRlbGwgd2hhdCdzIHdy b25nLiBXZSBoYXZlIHRoaXMgYWxyZWFkeSBtb3JlIG9yIGxlc3MgcmVhZHksIHRoZSBjaGtfZnMK ZGVidWdmcyBrbm9iLgoKMi4gT25saW5lIHJlcGFpcgoKTGlrZSBYRlMgb25saW5lIHJlcGFpciwg dGhpcyBmZWF0dXJlIGFsbG93cyBVQklGUyB0byBmaXggZGF0YSBzdHJ1Y3R1cmVzIGJ5CipyZS1j b21wdXRpbmcqIHRoZW0gZnJvbSBvdGhlciBzdHJ1Y3R1cmVzIHdpdGhvdXQgbG9vc2luZyBkYXRh IG5vciB2aW9sYXRpbmcKZmlsZSBjb250ZW50cyBjb25zaXN0ZW5jeS4KRS5nLiBpZiBhIGRhdGEg bm9kZSB2YW5pc2hlZCwgaXQgY2FuIGRvIG5vdGhpbmcuIEZpeGluZyB0aGUgaW5kZXggdHJlZQp3 aWxsIG1ha2UgVUJJRlMgbm8gbG9uZ2VyIGZhaWwgYnV0IHVzZXJzcGFjZSB3aWxsIGJlIHVuaGFw cHkgaWYgYSBmaWxlCmhhcyBzdWRkZW5seSBhIGhvbGUgb3IgaXMgdHJ1bmNhdGVkLgpPbiB0aGUg b3RoZXIgaGFuZCwgYSBkaXNjb25uZWN0ZWQgaW5vZGUgY291bGQgYmUgbGlua2VkIGludG8gYSBs b3N0K2ZvdW5kCmZvbGRlciBvciByZS1jb21wdXRpbmcgdGhlIExQVCB0cmVlIChJJ20gc3RpbGwg bm90IHN1cmUgYWJvdXQgdGhlIExQVCkuClNhbWUgZm9yIHVwZGF0aW5nIGxpbmsgY291bnRlcnMs IGV0Yy4uLgoKMy4gT2ZmbGluZSByZXBhaXIKClRoaXMgaXMgdGhlIGNsYXNzaWNhbCBmc2NrLiBJ dCBjYW4gZG8gZXZlcnl0aGluZyB3aGF0IDEpIGFuZCAyKSBjYW4gZG8gcGx1cwpkYW5nZXJvdXMg b3BlcmF0aW9ucyBsaWtlIHJlLWJ1aWxkaW5nIHRoZSBpbmRleCB0cmVlIGJ5IHNjYW5uaW5nIGZv cgpVQklGUyBub2RlcyBvbiB0aGUgbWVkaWEuCgpSZS1idWlsZGluZyB0aGUgaW5kZXggdHJlZSBp cyBkYW5nZXJvdXMgYmVjYXVzZSBmaWxlICpjb250ZW50cyogY2FuIGJlCmluY29uc2lzdGVudCBs YXRlci4gSWYgZm9yIGV4YW1wbGUgYSB3aG9sZSBMRUIgaXMgbG9zdCwgYSBmaWxlIGNhbgpjb250 YWluIGEgbWl4dHVyZSBvZiBvbGQgYW5kIG5ldyBkYXRhIGJsb2Nrcy4gRm9yIGEgdGV4dCBmaWxl IHRoaXMgaXMKbm90IGFsd2F5cyBmYXRhbC4gRm9yIGEgZGF0YWJhc2UgaXQgaXMuCgpCdXQgVUJJ RlMgaXRzZWxmIHdpbGwgYmUgY29uc2lzdGVudCBhZ2Fpbiwgd2lsbCBtb3VudCBhbmQgbm90IHJl bmRlcgpyZWFkLW9ubHkgYWxsIG9mIGEgc3VkZGVuLgoKPj4KPj4+IEFib3V0IHdoeSBkbyB3ZSBu ZWVkIGl0LCBob3cgaXQgd29ya3MsIHdoYXQgaXQgY2FuIGZpeCBvciBpdCBjYW4gbm90Cj4+PiBm aXgsIHdoZW4gYW5kIGhvdyB0byB1c2UgaXQsIHNlZSBtb3JlIGRldGFpbHMgaW4KPj4+IERvY3Vt ZW50YXRpb24vZmlsZXN5c3RlbXMvdWJpZnMvcmVwYWlyLnJzdCAoUGF0Y2ggMTcpLgo+PiBUaGlz IG5lZWRzIHRvIGdvIGludG8gdGhlIGNvdmVyIGxldHRlci4KPiBPSywgdGhhbmtzIGZvciByZW1p bmRpbmcuCj4+ICAgCj4+PiBUZXN0aW5nIG9uIFVCSUZTIHJlcGFpciByZWZlcnMgdG8KPj4+IGh0 dHBzOi8vYnVnemlsbGEua2VybmVsLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MzI3Cj4+Pgo+Pj4g V2hhdGV2ZXIsIHdlIGZpbmFsbHkgaGF2ZSBhIHdheSB0byBmaXggaW5jb25zaXN0ZW50IFVCRklT IGltYWdlIGluc3RlYWQKPj4+IG9mIGZvcm1hdHRpbmcgVUJJIHdoZW4gVUJJRlMgYmVjb21lcyBp bmNvbnNpc3RlbnQuCj4+IEZpeCBpbiB0ZXJtcyBvZiBtYWtpbmcgbW91bnQgd29yayBhZ2Fpbiwg SSBmZWFyPyBBcyBJIHNhaWQsIG1vc3QgbGlrZWx5Cj4+IHRoZSBwcm9ibGVtIGlzIG5vdyBvbmUg bGF5ZXIgYWJvdmUuIFVCSUZTIHRoaW5rcyBldmVyeXRoaW5nIGlzIGdvb2QgYnV0Cj4+IHVzZXJz cGFjZSBzdWRkZW5seSB3aWxsIHNlZSBvbGQvaW5jb21wbGV0ZSBmaWxlcy4KPj4KPj4gV2hhdCBJ IGNhbiB0aGluayBvZiBpcyBhIHRvb2wgKGluIHVzZXJzcGFjZSBsaWtlIG90aGVyIGZzY2tzKSB3 aGljaAo+PiBjYW4gcmVjb3ZlciBjZXJ0YWluIFVCSUZTIHN0cnVjdHVyZXMgYnV0IG1ha2VzIHZl cnkgY2xlYXIgdG8gdGhlIHVzZXIgd2hhdAo+PiB0aGUgZGF0YSBpcyBsb3N0LiBlLmcuIHRoYXQg aW5vZGUgWFkgbm93IG1pc3NlcyBzb21lIGJsb2NrcyBvciBhbiBvbGQgdmVyc2lvbgo+PiBvZiBz b21ldGhpbmcgd2lsbCBiZSB1c2VkLgo+PiBCdXQgdGhpcyBpc2wgbm90aGluZyB5b3UgY2FuIHJ1 biBibGluZGx5IGluIHByb2R1Y3Rpb24uCj4gCj4gTGV0IG1lIHNlZS4KPiAKPiBGaXJzdCwgd2Ug aGF2ZSBhIGNvbW1vbiB2aWV3LCBmc2NrIHRvb2wgaXMgdmFsdWFibGUgZm9yIFVCSUZTLCBpdCBq dXN0Cj4gcHJvdmlkZSBhIHdheSBmb3IgdXNlciBhcHBsaWNhdGlvbiB0byBtYWtlIFVCSUZTIGJl IGNvbnNpc3RlbnQgYW5kCj4gYXZhaWxhYmxlLiBSaWdodD8KClllcy4gRGF2aWQgT2JlcmhvbGxl bnplciBhbmQgSSB3aWxsIGhhcHBpbHkgaGVscCB3aXRoIGltcGxlbWVudGluZywgdGVzdGluZyBh bmQKcmV2aWV3aW5nIGNvZGUuCiAKPiBTZWNvbmQsIHlvdSBjb25jZXJuIG9kZC9pbmNvbXBsZXRl IGZpbGVzIGFyZSByZWNvdmVyZWQganVzdCBsaWtlIEkKPiBtZXRpb25lZCBpbiBkb2N1bWVudGF0 aW9uKExpbWl0YXRpb25zIHNlY3Rpb24pLCB3aGljaCBzdGlsbCBtYWtlCj4gYXBwbGljYXRpb24g ZmFpbGVkIGJlY2F1c2UgdGhlIHJlY292ZXJlZCBmaWxlIGxvc3QgZGF0YSBvciBkZWxldGVkIGZp bGUKPiBpcyByZWNvdmVyZWQuIFNvIHlvdSBzdWdnZXN0ZWQgbWUgdGhhdCBtYWtlIGEgdXNlcnNw YWNlIGZzY2sgdG9vbCwgYW5kCj4gZnNjayBjYW4gdGVsbGwgdXNlciB3aGljaCBmaWxlIGlzIGRh dGEgbG9zdCwgd2hpY2ggZmlsZSBpcyByZWNvdmVyZWQKPiBhZnRlciBkZWxldGlvbi4KPiAKPiBU aGUgZGlmZmljdWx0eSBjb21lcyBmcm9tIHNlY29uZCBwb2ludCzCoCBob3cgZG9lcyBmc2NrIGtu b3cgYSBmaWxlIGlzCj4gcmVjb3ZlcmVkIGluY29tcGxldGUgb3Igb2xkLiBXaGV0aGVyIHRoZSBu b2RlIGlzIGV4aXN0aW5nLCBpdCBpcyBqdWRnZWQKPiBieSBUTkMsIGJ1dCBUTkMgY291bGQgYmUg ZGFtYWdlZCBsaWtlIEkgZGVzY2liZWQgaW4gYWJvdmUuIERvIHlvdSBoYXZlCj4gYW55IGlkZWFz PwoKVGhhdCdzIHRoZSBwcm9ibGVtIHdoYXQgYWxsIGZzY2sgdG9vbHMgaGF2ZSBpbiBjb21tb24u ClRoZSBiZXN0IHdlIGNhbiBkbyBpcyBvZmZlcmluZyBzYWZlIGFuZCBkYW5nZXJvdXMgcmVwYWly IG1vZGVzCnBsdXMgYSBnb29kIHJlcGFpciByZXBvcnQuCgpMb25nIHN0b3J5IHNob3J0LCBJJ20g bm90IG9wcG9zZWQgdG8gdGhlIGlkZWEsIEkganVzdCB3YW50IHRvIG1ha2UKc3VyZSB0aGF0IHRo aXMgbmV3IHRvb2wgb3IgZmVhdHVyZSBpcyBub3QgdXNlZCBibGluZGx5LCBzaW5jZQppdCBjYW5u b3QgZG8gbWFnaWMuCgpUaGFua3MsCi8vcmljaGFyZAoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4IE1URCBkaXNjdXNzaW9uIG1haWxp bmcgbGlzdApodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4 LW10ZC8K