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 X-Spam-Level: X-Spam-Status: No, score=-8.3 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_MUTT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A75D9C43613 for ; Mon, 24 Jun 2019 16:02:11 +0000 (UTC) Received: from lists.sourceforge.net (lists.sourceforge.net [216.105.38.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 733E820449 for ; Mon, 24 Jun 2019 16:02:11 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=sourceforge.net header.i=@sourceforge.net header.b="iINgpq6U"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=sf.net header.i=@sf.net header.b="bZp2EwFu"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="lyAmZk98" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 733E820449 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=linux-f2fs-devel-bounces@lists.sourceforge.net Received: from [127.0.0.1] (helo=sfs-ml-2.v29.lw.sourceforge.com) by sfs-ml-2.v29.lw.sourceforge.com with esmtp (Exim 4.90_1) (envelope-from ) id 1hfRPz-0005kp-AT; Mon, 24 Jun 2019 16:02:07 +0000 Received: from [172.30.20.202] (helo=mx.sourceforge.net) by sfs-ml-2.v29.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) (envelope-from ) id 1hfRPy-0005kj-Nh for linux-f2fs-devel@lists.sourceforge.net; Mon, 24 Jun 2019 16:02:06 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sourceforge.net; s=x; h=In-Reply-To:Content-Transfer-Encoding:Content-Type: MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=4LK1Kgr3XJFaHWTeSeALP7bmLZWdPZ1H6WXr4LPd11U=; b=iINgpq6UTIv+ebNvujrg7YhGCW yKDAnTwlPmazbxMCM51cQjJTgAxBeAQBUhm3HN8VEa4e4PM/8JXseQqYCbs+E1e/9LnMBpqtKhieT HTslsgq9EpORhUVnxpAl7pr095M7pLhMT2BudkrTCJe2ZhNGkbo7tmNQVZG0C3SAKMAY=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x ; h=In-Reply-To:Content-Transfer-Encoding:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=4LK1Kgr3XJFaHWTeSeALP7bmLZWdPZ1H6WXr4LPd11U=; b=bZp2EwFujFfk5ClDrs0jcEyRbr K4yxFPbe2GqpzFZGZvUhxR0ESKm+NrsNko+wXPUSnwyy5LDLrx8VcbOeOVxM+8QEX9YUiuFumJ5QN EYQpEoBd7pWkY9N91jCbcn7sXGfXdZYn26s2314waIPbGq4KtUPc3XIHoBDWGFZJrRok=; Received: from mail.kernel.org ([198.145.29.99]) by sfi-mx-4.v28.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) id 1hfRQ0-00BrQo-HA for linux-f2fs-devel@lists.sourceforge.net; Mon, 24 Jun 2019 16:02:09 +0000 Received: from localhost (unknown [104.132.1.68]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 45C3D20449; Mon, 24 Jun 2019 16:02:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1561392121; bh=Yw5EPIvcV0LvtgR2bR1nXjl+f7In0Q5aeu8u0xgOpnw=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=lyAmZk98809+yQ+YVcjFNg5sAldQnbz6ymGyXusgLzL0Rx03gbF051hrt6N7MCzQy M3OLrAxOVvXEOOOkzd79QAxHDAo90jkGxGZCxEm7VeBFX83gTWxUNeAfqeBPXJVPZ5 KXHvKiZLDW9CI/M1LOsd3lr51PYLyeEPgm0CRrV4= Date: Mon, 24 Jun 2019 09:02:00 -0700 From: Jaegeuk Kim To: Chao Yu Message-ID: <20190624160200.GA88431@jaegeuk-macbookpro.roam.corp.google.com> References: <20190524075627.107151-1-yuchao0@huawei.com> <20190622214656.GA18429@jaegeuk-macbookpro.roam.corp.google.com> <637ce454-0ca9-77db-fb63-1577762ddc79@kernel.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <637ce454-0ca9-77db-fb63-1577762ddc79@kernel.org> User-Agent: Mutt/1.8.2 (2017-04-18) X-Headers-End: 1hfRQ0-00BrQo-HA Subject: Re: [f2fs-dev] =?utf-8?b?5Zue5aSNOiBbUEFUQ0hdIGZzY2suZjJmczogd3Jp?= =?utf-8?q?te_checkpoint_with_OPU_mode?= X-BeenThere: linux-f2fs-devel@lists.sourceforge.net X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "linux-f2fs-devel@lists.sourceforge.net" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net T24gMDYvMjQsIENoYW8gWXUgd3JvdGU6Cj4gSGkgYWxsLAo+IAo+IE9uZSBtb3JlIGNvbmNlcm4g aXMgdGhhdCwgaWYgY2hlY2twb2ludCBBIGlzIGNvcnJ1cHRlZCwgYW5kIGNoZWNrcG9pbnQgQiBp cwo+IHZhbGlkLCB3ZSBtYXkgY29weSBDUCBCIHRvIENQIEEsIGFuZCB0aGVuIHdyaXRlYmFjayBm aXhlZCBDUCBCIHdpdGggdGhlIHNhbWUKPiBjcF92ZXIsIHRoZW4ga2VybmVsIHdpbGwgbG9hZCBD UCBBIGlmIHR3byBDUCBoYXMgdGhlIHNhbWUgY3BfdmVyLCByZXN1bHQgaW4KPiBsb2FkaW5nIHdy b25nIENQLCByaWdodD8KCll1cCwgd2UgbmVlZCB0byBoYW5kbGUgdGhhdC4gV2hlbiBjb3B5aW5n IHRoZSBjaGVja3BvaW50LCB3ZSBtYXkgbmVlZCB0byBjb3B5Cndob2xlIHNlZ21lbnQgdy8gdmVy c2lvbiAtIDEuCgo+IAo+IFRoYW5rcywKPiAKPiBPbiAyMDE5LTYtMjQgMTA6MjQsIENoYW8gWXUg d3JvdGU6Cj4gPiBIaSBKYWVnZXVrLAo+ID4gCj4gPiBJIHBpY2tlZCB1cCBXZWljaGFvJ3MgcGF0 Y2ggc2luY2UgSSdtIG5vdCBzdXJlIHdoZXRoZXIgV2VpY2hhbyBzdGlsbCBoYXMgdGltZQo+ID4g d29ya2luZyBvbiBpdC4KPiA+IAo+ID4gT24gMjAxOS82LzI0IDk6MjMsIGd1byB3ZWljaGFvIHdy b3RlOgo+ID4+IEhpIEphZWdldWssCj4gPj4KPiA+PiBJIHRoaW5rIGl0J3MgYmV0dGVyIHRvIGNv cHkgQ1AgQSB0byBDUCBCIHBvc2l0aW9uIGZpcnN0LCB3aGljaCBjYW4gbWFrZSBzdXJlIHdlCj4g Pj4gaGF2ZSBhIGZzY2stbm90LXRvdWNoZWQgY29ycmVjdCBjaGVja3BvaW50LiAKPiA+IAo+ID4g SmFlZ2V1aywgV2VpY2hhbywKPiA+IAo+ID4gSSB0aGluayBpdCdzIG9rYXksIGxldCBtZSB1cGRh dGUgdGhlIHBhdGNoLiA6KQo+ID4gCj4gPj4KPiA+PiBQLlM6IGRpZCB5b3Ugd2FudCB0byBkaXNj dXNzIGl0IHdpdGggQ2hhbyBZdT8gOu+8iUhBSEEKPiA+IAo+ID4gV2VpY2hhbywgaXQncyBnbGFk IHRvIHNlZSB5b3VyIGFjdGl2aXR5IGFnYWluLiA7KQo+ID4gCj4gPiBUaGFua3MsCj4gPiAKPiA+ Pgo+ID4+IEJSLAo+ID4+IFdlaWNoYW8KPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+ ICrlj5Hku7bkuro6KiBKYWVnZXVrIEtpbSA8amFlZ2V1a0BrZXJuZWwub3JnPgo+ID4+ICrlj5Hp gIHml7bpl7Q6KiAyMDE55bm0NuaciDIz5pelIDU6NDYKPiA+PiAq5pS25Lu25Lq6OiogQ2hhbyBZ dQo+ID4+ICrmioTpgIE6KiBsaW51eC1mMmZzLWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldAo+ ID4+ICrkuLvpopg6KiBSZTogW2YyZnMtZGV2XSBbUEFUQ0hdIGZzY2suZjJmczogd3JpdGUgY2hl Y2twb2ludCB3aXRoIE9QVSBtb2RlCj4gPj4gwqAKPiA+PiBIaSBXZWljaGFvLAo+ID4+Cj4gPj4g VGhpcyBwYXRjaCBicmVha3MgdGhlIGltYWdlIGZvdW5kIGJ5IG15IGxvY2FsIHBvd2VyLWN1dCB0 ZXN0cy4KPiA+Pgo+ID4+IE9uIDA1LzI0LCBDaGFvIFl1IHdyb3RlOgo+ID4+PiBUaGlzIG9yaWdp bmFsIHBhdGNoIHdhcyBmcm9tIFdlaWNoYW8gR3VvLgo+ID4+Pgo+ID4+PiBXZSBtYXkgZW5jb3Vu dGVyIGJvdGggY2hlY2twb2ludHMgaW52YWxpZCBpbiBzdWNoIGEgY2FzZToKPiA+Pj4gMS4ga2Vy bmVsIHdyaXRlcyBDUCBBOwo+ID4+PiAyLiBwb3dlci1jdXQgd2hlbiBrZXJuZWwgd3JpdGVzIENQ IEIsIHRoZW4gQ1AgQiBpcyBjb3JydXB0ZWQ7Cj4gPj4+IDMuIGZzY2s6IGxvYWQgQ1AgQSwgZml4 IG1ldGEvZGF0YTsKPiA+Pgo+ID4+IFdvdWxkIGl0IGJlIGJldHRlciB0byBjb3B5IENQIEEgdG8g Q1AgQiBwb3NpdGlvbiBmaXJzdD8KPiA+Pgo+ID4+IFRoYW5rcywKPiA+Pgo+ID4+PiA0LiBwb3dl ci1jdXQgd2hlbiBmc2NrIHdyaXRlcyBDUCBBIGluLXBsYWNlLCB0aGVuIENQIEEgaXMgY29ycnVw dGVkIHRvbzsKPiA+Pj4KPiA+Pj4gVG8gYXZvaWQgYm90aCBjaGVja3BvaW50cyBiZWluZyBpbnZh bGlkLCB0aGlzIHBhdGNoIGNoYW5nZXMgdG8gZW5hYmxlcwo+ID4+PiBmc2NrIHRvIHdyaXRlIGNo ZWNrcG9pbnQgd2l0aCBvdXQtcGxhY2UtdXBkYXRlIG1ldGhvZCBmaXJzdCwgYW5kIHRoZW4KPiA+ Pj4gd3JpdGUgY2hlY2twb2ludCBpbiBvcmlnaW5hbCBwbGFjZS4KPiA+Pj4KPiA+Pj4gVGhpcyBj YW4gbWFrZSBzdXJlIGR1cmluZyBmc2NrIHJlcGFpcmluZywgZXZlbiB0aGVyZSBpcyBzdWRkZW4g cG93ZXItY3V0LAo+ID4+PiBmaWxlc3lzdGVtIHdpbGwgc3RpbGwgaGF2ZSBhdCBsZWFzdCBvbmUg dmFsaWQgY2hlY2twb2ludC4KPiA+Pj4KPiA+Pj4gU2lnbmVkLW9mZi1ieTogV2VpY2hhbyBHdW8g PGd1b3dlaWNoYW9AaHVhd2VpLmNvbT4KPiA+Pj4gU2lnbmVkLW9mZi1ieTogQ2hhbyBZdSA8eXVj aGFvMEBodWF3ZWkuY29tPgo+ID4+PiAtLS0KPiA+Pj4gdjI6Cj4gPj4+IC0gY2xlYW4gdXAgY29k ZXMKPiA+Pj4gLSBjb3ZlciBmbHVzaF9qb3VybmFsX2VudHJpZXMoKSBjYXNlCj4gPj4+IC0gdXBk YXRlIGNvbW1ldCBtZXNzYWdlCj4gPj4+IMKgIGZzY2svZnNjay5jwqAgfCAxNyArKysrKysrKysr KysrKystLQo+ID4+PiDCoCBmc2NrL2ZzY2suaMKgIHzCoCAxICsKPiA+Pj4gwqAgZnNjay9tb3Vu dC5jIHwgMTUgKysrKysrKysrKysrKystCj4gPj4+IMKgIDMgZmlsZXMgY2hhbmdlZCwgMzAgaW5z ZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKPiA+Pj4KPiA+Pj4gZGlmZiAtLWdpdCBhL2ZzY2sv ZnNjay5jIGIvZnNjay9mc2NrLmMKPiA+Pj4gaW5kZXggNmYwZjI2Mi4uNmFlZDUxZCAxMDA2NDQK PiA+Pj4gLS0tIGEvZnNjay9mc2NrLmMKPiA+Pj4gKysrIGIvZnNjay9mc2NrLmMKPiA+Pj4gQEAg LTIxMjEsNiArMjEyMSwxOSBAQCBzdGF0aWMgdm9pZCBmaXhfY2hlY2twb2ludChzdHJ1Y3QgZjJm c19zYl9pbmZvICpzYmkpCj4gPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB3cml0 ZV9uYXRfYml0cyhzYmksIHNiLCBjcCwgc2JpLT5jdXJfY3ApOwo+ID4+PiDCoCB9Cj4gPj4+IMKg IAo+ID4+PiArc3RhdGljIHZvaWQgZml4X2NoZWNrcG9pbnRzKHN0cnVjdCBmMmZzX3NiX2luZm8g KnNiaSkKPiA+Pj4gK3sKPiA+Pj4gK8KgwqDCoMKgIGludCBpLCByZXQ7Cj4gPj4+ICsKPiA+Pj4g K8KgwqDCoMKgIGZvciAoaSA9IDA7IGkgPCAyOyBpKyspIHsKPiA+Pj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAvKiB3cml0ZSBjaGVja3BvaW50IG91dCBvZiBwbGFjZSBmaXJzdCAqLwo+ID4+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNiaS0+Y3VyX2NwID0gc2JpLT5jdXJfY3AgJSAy ICsgMTsKPiA+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBmaXhfY2hlY2twb2ludChzYmkp Owo+ID4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldCA9IGYyZnNfZnN5bmNfZGV2aWNl KCk7Cj4gPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQVNTRVJUKHJldCA+PSAwKTsKPiA+ Pj4gK8KgwqDCoMKgIH0KPiA+Pj4gK30KPiA+Pj4gKwo+ID4+PiDCoCBpbnQgY2hlY2tfY3Vyc2Vn X29mZnNldChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmksIGludCB0eXBlKQo+ID4+PiDCoCB7Cj4g Pj4+IMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBjdXJzZWdfaW5mbyAqY3Vyc2VnID0gQ1VSU0VHX0ko c2JpLCB0eXBlKTsKPiA+Pj4gQEAgLTI3NzEsMTAgKzI3ODQsMTAgQEAgaW50IGZzY2tfdmVyaWZ5 KHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKPiA+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXdyaXRlX3NpdF9hcmVhX2JpdG1hcChzYmkpOwo+ID4+ PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZpeF9jdXJz ZWdfaW5mbyhzYmkpOwo+ID4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGZpeF9jaGVja3N1bShzYmkpOwo+ID4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBmaXhfY2hlY2twb2ludChzYmkpOwo+ID4+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBmaXhfY2hlY2twb2ludHMoc2JpKTsKPiA+ Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0gZWxzZSBpZiAoaXNfc2V0X2NrcHRf ZmxhZ3MoY3AsIENQX0ZTQ0tfRkxBRykgfHwKPiA+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpc19zZXRfY2twdF9mbGFncyhjcCwgQ1BfUVVPVEFfTkVF RF9GU0NLX0ZMQUcpKSB7Cj4gPj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHdyaXRlX2NoZWNrcG9pbnQoc2JpKTsKPiA+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgd3JpdGVfY2hlY2twb2ludHMoc2JpKTsKPiA+Pj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPiA+Pj4gwqDCoMKgwqDCoMKgwqAgfQo+ID4+PiDC oMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0Owo+ID4+PiBkaWZmIC0tZ2l0IGEvZnNjay9mc2NrLmgg Yi9mc2NrL2ZzY2suaAo+ID4+PiBpbmRleCBkMzhlOGRlLi44ZmU1ZGIxIDEwMDY0NAo+ID4+PiAt LS0gYS9mc2NrL2ZzY2suaAo+ID4+PiArKysgYi9mc2NrL2ZzY2suaAo+ID4+PiBAQCAtMTkyLDYg KzE5Miw3IEBAIGV4dGVybiB2b2lkIG1vdmVfY3Vyc2VnX2luZm8oc3RydWN0IGYyZnNfc2JfaW5m byAqLCB1NjQsIGludCk7Cj4gPj4+IMKgIGV4dGVybiB2b2lkIHdyaXRlX2N1cnNlZ19pbmZvKHN0 cnVjdCBmMmZzX3NiX2luZm8gKik7Cj4gPj4+IMKgIGV4dGVybiBpbnQgZmluZF9uZXh0X2ZyZWVf YmxvY2soc3RydWN0IGYyZnNfc2JfaW5mbyAqLCB1NjQgKiwgaW50LCBpbnQpOwo+ID4+PiDCoCBl eHRlcm4gdm9pZCB3cml0ZV9jaGVja3BvaW50KHN0cnVjdCBmMmZzX3NiX2luZm8gKik7Cj4gPj4+ ICtleHRlcm4gdm9pZCB3cml0ZV9jaGVja3BvaW50cyhzdHJ1Y3QgZjJmc19zYl9pbmZvICopOwo+ ID4+PiDCoCBleHRlcm4gdm9pZCB1cGRhdGVfc3VwZXJibG9jayhzdHJ1Y3QgZjJmc19zdXBlcl9i bG9jayAqLCBpbnQpOwo+ID4+PiDCoCBleHRlcm4gdm9pZCB1cGRhdGVfZGF0YV9ibGthZGRyKHN0 cnVjdCBmMmZzX3NiX2luZm8gKiwgbmlkX3QsIHUxNiwgYmxvY2tfdCk7Cj4gPj4+IMKgIGV4dGVy biB2b2lkIHVwZGF0ZV9uYXRfYmxrYWRkcihzdHJ1Y3QgZjJmc19zYl9pbmZvICosIG5pZF90LCBu aWRfdCwgYmxvY2tfdCk7Cj4gPj4+IGRpZmYgLS1naXQgYS9mc2NrL21vdW50LmMgYi9mc2NrL21v dW50LmMKPiA+Pj4gaW5kZXggMWM1Y2Q5My4uYmJiMWFmNyAxMDA2NDQKPiA+Pj4gLS0tIGEvZnNj ay9tb3VudC5jCj4gPj4+ICsrKyBiL2ZzY2svbW91bnQuYwo+ID4+PiBAQCAtMjEyNyw3ICsyMTI3 LDcgQEAgdm9pZCBmbHVzaF9qb3VybmFsX2VudHJpZXMoc3RydWN0IGYyZnNfc2JfaW5mbyAqc2Jp KQo+ID4+PiDCoMKgwqDCoMKgwqDCoCBpbnQgbl9zaXRzID0gZmx1c2hfc2l0X2pvdXJuYWxfZW50 cmllcyhzYmkpOwo+ID4+PiDCoCAKPiA+Pj4gwqDCoMKgwqDCoMKgwqAgaWYgKG5fbmF0cyB8fCBu X3NpdHMpCj4gPj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgd3JpdGVfY2hlY2twb2ludChz YmkpOwo+ID4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHdyaXRlX2NoZWNrcG9pbnRzKHNi aSk7Cj4gPj4+IMKgIH0KPiA+Pj4gwqAgCj4gPj4+IMKgIHZvaWQgZmx1c2hfc2l0X2VudHJpZXMo c3RydWN0IGYyZnNfc2JfaW5mbyAqc2JpKQo+ID4+PiBAQCAtMjQ1Miw2ICsyNDUyLDE5IEBAIHZv aWQgd3JpdGVfY2hlY2twb2ludChzdHJ1Y3QgZjJmc19zYl9pbmZvICpzYmkpCj4gPj4+IMKgwqDC oMKgwqDCoMKgIEFTU0VSVChyZXQgPj0gMCk7Cj4gPj4+IMKgIH0KPiA+Pj4gwqAgCj4gPj4+ICt2 b2lkIHdyaXRlX2NoZWNrcG9pbnRzKHN0cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKPiA+Pj4gK3sK PiA+Pj4gK8KgwqDCoMKgIGludCBpLCByZXQ7Cj4gPj4+ICsKPiA+Pj4gK8KgwqDCoMKgIGZvciAo aSA9IDA7IGkgPCAyOyBpKyspIHsKPiA+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKiB3 cml0ZSBjaGVja3BvaW50IG91dCBvZiBwbGFjZSBmaXJzdCAqLwo+ID4+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHNiaS0+Y3VyX2NwID0gc2JpLT5jdXJfY3AgJSAyICsgMTsKPiA+Pj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB3cml0ZV9jaGVja3BvaW50KHNiaSk7Cj4gPj4+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0ID0gZjJmc19mc3luY19kZXZpY2UoKTsKPiA+Pj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBBU1NFUlQocmV0ID49IDApOwo+ID4+PiArwqDCoMKgwqAg fQo+ID4+PiArfQo+ID4+PiArCj4gPj4+IMKgIHZvaWQgYnVpbGRfbmF0X2FyZWFfYml0bWFwKHN0 cnVjdCBmMmZzX3NiX2luZm8gKnNiaSkKPiA+Pj4gwqAgewo+ID4+PiDCoMKgwqDCoMKgwqDCoCBz dHJ1Y3QgY3Vyc2VnX2luZm8gKmN1cnNlZyA9IENVUlNFR19JKHNiaSwgQ1VSU0VHX0hPVF9EQVRB KTsKPiA+Pj4gLS0gCj4gPj4+IDIuMTguMC5yYzEKPiA+Pgo+ID4+Cj4gPj4gX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+PiBMaW51eC1mMmZzLWRldmVs IG1haWxpbmcgbGlzdAo+ID4+IExpbnV4LWYyZnMtZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2UubmV0 Cj4gPj4gaHR0cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vbGludXgt ZjJmcy1kZXZlbAo+ID4gCj4gPiAKPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCj4gPiBMaW51eC1mMmZzLWRldmVsIG1haWxpbmcgbGlzdAo+ID4gTGlu dXgtZjJmcy1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQKPiA+IGh0dHBzOi8vbGlzdHMuc291 cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL2xpbnV4LWYyZnMtZGV2ZWwKPiA+IAoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4LWYyZnMtZGV2 ZWwgbWFpbGluZyBsaXN0CkxpbnV4LWYyZnMtZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2UubmV0Cmh0 dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL2xpbnV4LWYyZnMtZGV2 ZWwK