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 405E1C4167B for ; Thu, 7 Dec 2023 11:23:41 +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:In-Reply-To:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=mVH3yrEXsPePHYh8V29B4Va+gddsunw8R5ZQ4LRP8Sg=; b=qn6r7b7Nl6l3P7 BbatetHOap80dVm11dJWfO4PKsC6uzFl+vFDG4q+82KxOiSGbgz9XPdvQLVahvMWuUYQ1/EGrSmHY ZX8a9eBmHhVaR+qRmX+sZxzEWMH3f/KsM9UPaYoPtvqb40O/a0xQDf00eKi+/Jd3Fy3xBt2scbU7K EG7qximGyPqqO38TYYZ+VwuL+185sRDlzdu7NvDdj7HijVOf/c4HI0NwGaQuhQW7vAP+cyidZH2ZL nzONoMY9IwaoeIh7kP46ZwHlHhOZ3rWAvW1L/Izp3RfIMPgaXKf64BbUkRYbd8pDqC4+HwFCtzL2d FWIKSUqiiRUVkis/HzYg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rBCTD-00CcqM-1i; Thu, 07 Dec 2023 11:23:07 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rBCTA-00Ccng-1Z for linux-arm-kernel@lists.infradead.org; Thu, 07 Dec 2023 11:23:06 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 5D9EC12FC; Thu, 7 Dec 2023 03:23:49 -0800 (PST) Received: from [10.1.32.134] (XHFQ2J9959.cambridge.arm.com [10.1.32.134]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id A05F73F762; Thu, 7 Dec 2023 03:23:00 -0800 (PST) Message-ID: <4aa520f0-7c84-4e93-88bf-aee6d8d3ea70@arm.com> Date: Thu, 7 Dec 2023 11:22:59 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v8 03/10] mm: thp: Introduce multi-size THP sysfs interface Content-Language: en-GB To: David Hildenbrand , Andrew Morton , Matthew Wilcox , Yin Fengwei , Yu Zhao , Catalin Marinas , Anshuman Khandual , Yang Shi , "Huang, Ying" , Zi Yan , Luis Chamberlain , Itaru Kitayama , "Kirill A. Shutemov" , John Hubbard , David Rientjes , Vlastimil Babka , Hugh Dickins , Kefeng Wang , Barry Song <21cnbao@gmail.com>, Alistair Popple Cc: linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <20231204102027.57185-1-ryan.roberts@arm.com> <20231204102027.57185-4-ryan.roberts@arm.com> <004ed23d-5571-4474-b7fe-7bc08817c165@redhat.com> <378afc6b-f93a-48ad-8aa6-ab171f3b9613@redhat.com> From: Ryan Roberts In-Reply-To: <378afc6b-f93a-48ad-8aa6-ab171f3b9613@redhat.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231207_032304_622327_8FD1C9D5 X-CRM114-Status: GOOD ( 25.15 ) X-BeenThere: linux-arm-kernel@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-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMDcvMTIvMjAyMyAxMToxMywgRGF2aWQgSGlsZGVuYnJhbmQgd3JvdGU6Cj4+Pgo+Pj4+ICsK Pj4+PiDCoMKgwqDCoMKgwqAgaWYgKCF2bWEtPnZtX21tKcKgwqDCoMKgwqDCoMKgIC8qIHZkc28g Ki8KPj4+PiAtwqDCoMKgwqDCoMKgwqAgcmV0dXJuIGZhbHNlOwo+Pj4+ICvCoMKgwqDCoMKgwqDC oCByZXR1cm4gMDsKPj4+PiDCoMKgIMKgwqDCoMKgwqAgLyoKPj4+PiDCoMKgwqDCoMKgwqDCoCAq IEV4cGxpY2l0bHkgZGlzYWJsZWQgdGhyb3VnaCBtYWR2aXNlIG9yIHByY3RsLCBvciBzb21lCj4+ Pj4gQEAgLTg4LDE2ICsxNDEsMTYgQEAgYm9vbCBodWdlcGFnZV92bWFfY2hlY2soc3RydWN0IHZt X2FyZWFfc3RydWN0ICp2bWEsCj4+Pj4gdW5zaWduZWQgbG9uZyB2bV9mbGFncywKPj4+PiDCoMKg wqDCoMKgwqDCoCAqICovCj4+Pj4gwqDCoMKgwqDCoMKgIGlmICgodm1fZmxhZ3MgJiBWTV9OT0hV R0VQQUdFKSB8fAo+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRlc3RfYml0KE1NRl9ESVNBQkxF X1RIUCwgJnZtYS0+dm1fbW0tPmZsYWdzKSkKPj4+PiAtwqDCoMKgwqDCoMKgwqAgcmV0dXJuIGZh bHNlOwo+Pj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gMDsKPj4+PiDCoMKgwqDCoMKgwqAgLyoK Pj4+PiDCoMKgwqDCoMKgwqDCoCAqIElmIHRoZSBoYXJkd2FyZS9maXJtd2FyZSBtYXJrZWQgaHVn ZXBhZ2Ugc3VwcG9ydCBkaXNhYmxlZC4KPj4+PiDCoMKgwqDCoMKgwqDCoCAqLwo+Pj4+IMKgwqDC oMKgwqDCoCBpZiAodHJhbnNwYXJlbnRfaHVnZXBhZ2VfZmxhZ3MgJiAoMSA8PAo+Pj4+IFRSQU5T UEFSRU5UX0hVR0VQQUdFX1VOU1VQUE9SVEVEKSkKPj4+PiAtwqDCoMKgwqDCoMKgwqAgcmV0dXJu IGZhbHNlOwo+Pj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gMDsKPj4+PiDCoMKgIMKgwqDCoMKg wqAgLyoga2h1Z2VwYWdlZCBkb2Vzbid0IGNvbGxhcHNlIERBWCB2bWEsIGJ1dCBwYWdlIGZhdWx0 IGlzIGZpbmUuICovCj4+Pj4gwqDCoMKgwqDCoMKgIGlmICh2bWFfaXNfZGF4KHZtYSkpCj4+Pj4g LcKgwqDCoMKgwqDCoMKgIHJldHVybiBpbl9wZjsKPj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJu IGluX3BmID8gb3JkZXJzIDogMDsKPj4+PiDCoMKgIMKgwqDCoMKgwqAgLyoKPj4+PiDCoMKgwqDC oMKgwqDCoCAqIGtodWdlcGFnZWQgc3BlY2lhbCBWTUEgYW5kIGh1Z2V0bGIgVk1BLgo+Pj4+IEBA IC0xMDUsMTcgKzE1OCwyOSBAQCBib29sIGh1Z2VwYWdlX3ZtYV9jaGVjayhzdHJ1Y3Qgdm1fYXJl YV9zdHJ1Y3QgKnZtYSwKPj4+PiB1bnNpZ25lZCBsb25nIHZtX2ZsYWdzLAo+Pj4+IMKgwqDCoMKg wqDCoMKgICogVk1fTUlYRURNQVAgc2V0Lgo+Pj4+IMKgwqDCoMKgwqDCoMKgICovCj4+Pj4gwqDC oMKgwqDCoMKgIGlmICghaW5fcGYgJiYgIXNtYXBzICYmICh2bV9mbGFncyAmIFZNX05PX0tIVUdF UEFHRUQpKQo+Pj4+IC3CoMKgwqDCoMKgwqDCoCByZXR1cm4gZmFsc2U7Cj4+Pj4gK8KgwqDCoMKg wqDCoMKgIHJldHVybiAwOwo+Pj4+IMKgwqAgwqDCoMKgwqDCoCAvKgo+Pj4+IC3CoMKgwqDCoCAq IENoZWNrIGFsaWdubWVudCBmb3IgZmlsZSB2bWEgYW5kIHNpemUgZm9yIGJvdGggZmlsZSBhbmQg YW5vbiB2bWEuCj4+Pj4gK8KgwqDCoMKgICogQ2hlY2sgYWxpZ25tZW50IGZvciBmaWxlIHZtYSBh bmQgc2l6ZSBmb3IgYm90aCBmaWxlIGFuZCBhbm9uIHZtYSBieQo+Pj4+ICvCoMKgwqDCoCAqIGZp bHRlcmluZyBvdXQgdGhlIHVuc3VpdGFibGUgb3JkZXJzLgo+Pj4+IMKgwqDCoMKgwqDCoMKgICoK Pj4+PiDCoMKgwqDCoMKgwqDCoCAqIFNraXAgdGhlIGNoZWNrIGZvciBwYWdlIGZhdWx0LiBIdWdl IGZhdWx0IGRvZXMgdGhlIGNoZWNrIGluIGZhdWx0Cj4+Pj4gLcKgwqDCoMKgICogaGFuZGxlcnMu IEFuZCB0aGlzIGNoZWNrIGlzIG5vdCBzdWl0YWJsZSBmb3IgaHVnZSBQVUQgZmF1bHQuCj4+Pj4g K8KgwqDCoMKgICogaGFuZGxlcnMuCj4+Pj4gwqDCoMKgwqDCoMKgwqAgKi8KPj4+PiAtwqDCoMKg IGlmICghaW5fcGYgJiYKPj4+PiAtwqDCoMKgwqDCoMKgwqAgIXRyYW5zaHVnZV92bWFfc3VpdGFi bGUodm1hLCAodm1hLT52bV9lbmQgLSBIUEFHRV9QTURfU0laRSkpKQo+Pj4+IC3CoMKgwqDCoMKg wqDCoCByZXR1cm4gZmFsc2U7Cj4+Pj4gK8KgwqDCoCBpZiAoIWluX3BmKSB7Cj4+Pj4gK8KgwqDC oMKgwqDCoMKgIGludCBvcmRlciA9IGZpcnN0X29yZGVyKG9yZGVycyk7Cj4+Pj4gK8KgwqDCoMKg wqDCoMKgIHVuc2lnbmVkIGxvbmcgYWRkcjsKPj4+PiArCj4+Pj4gK8KgwqDCoMKgwqDCoMKgIHdo aWxlIChvcmRlcnMpIHsKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhZGRyID0gdm1hLT52 bV9lbmQgLSAoUEFHRV9TSVpFIDw8IG9yZGVyKTsKPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBpZiAodGhwX3ZtYV9zdWl0YWJsZV9vcmRlcnModm1hLCBhZGRyLCBCSVQob3JkZXIpKSkKPj4+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOwo+Pj4KPj4+IENvbW1lbnQ6 IHlvdSdkIHdhbnQgYSAidGhwX3ZtYV9zdWl0YWJsZV9vcmRlciIgaGVscGVyIGhlcmUuIEJ1dCBt YXliZSB0aGUKPj4+IGNvbXBpbGVyIGlzIHNtYXJ0IGVub3VnaCB0byBvcHRpbWl6ZSB0aGUgbG9v cCBhbmQgZXZlcnl5dGhpbmcgZWxzZSBvdXQuCj4+Cj4+IEknbSBoYXBweSB0byByZWZhY3RvciBz byB0aGF0IHRocF92bWFfc3VpdGFibGVfb3JkZXIoKSBpcyB0aGUgYmFzaWMgcHJpbWl0aXZlLAo+ PiB0aGVuIG1ha2UgdGhwX3ZtYV9zdWl0YWJsZV9vcmRlcnMoKSBhIGxvb3AgdGhhdCBjYWxscyB0 aHBfdm1hX3N1aXRhYmxlX29yZGVyKCkKPj4gKHRoYXQncyBiYXNpY2FsbHkgaG93IGl0IGlzIGxh aWQgb3V0IGFscmVhZHksIGp1c3QgYWxsIGluIG9uZSBmdW5jdGlvbikuIElzIHRoYXQKPj4gd2hh dCB5b3UgYXJlIHJlcXVlc3Rpbmc/Cj4gCj4gWW91IGdvdCB0aGUgc3Bpcml0LCB5ZXMuCj4gCj4+ Pgo+Pj4gWy4uLl0KPj4+Cj4+Pj4gKwo+Pj4+ICtzdGF0aWMgc3NpemVfdCB0aHBzaXplX2VuYWJs ZWRfc3RvcmUoc3RydWN0IGtvYmplY3QgKmtvYmosCj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGtvYmpfYXR0cmlidXRlICphdHRyLAo+Pj4+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnN0IGNoYXIgKmJ1Ziwg c2l6ZV90IGNvdW50KQo+Pj4+ICt7Cj4+Pj4gK8KgwqDCoCBpbnQgb3JkZXIgPSB0b190aHBzaXpl KGtvYmopLT5vcmRlcjsKPj4+PiArwqDCoMKgIHNzaXplX3QgcmV0ID0gY291bnQ7Cj4+Pj4gKwo+ Pj4+ICvCoMKgwqAgaWYgKHN5c2ZzX3N0cmVxKGJ1ZiwgImFsd2F5cyIpKSB7Cj4+Pj4gK8KgwqDC oMKgwqDCoMKgIHNldF9iaXQob3JkZXIsICZodWdlX2Fub25fb3JkZXJzX2Fsd2F5cyk7Cj4+Pj4g K8KgwqDCoMKgwqDCoMKgIGNsZWFyX2JpdChvcmRlciwgJmh1Z2VfYW5vbl9vcmRlcnNfaW5oZXJp dCk7Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGNsZWFyX2JpdChvcmRlciwgJmh1Z2VfYW5vbl9vcmRl cnNfbWFkdmlzZSk7Cj4+Pj4gK8KgwqDCoCB9IGVsc2UgaWYgKHN5c2ZzX3N0cmVxKGJ1ZiwgImlu aGVyaXQiKSkgewo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBzZXRfYml0KG9yZGVyLCAmaHVnZV9hbm9u X29yZGVyc19pbmhlcml0KTsKPj4+PiArwqDCoMKgwqDCoMKgwqAgY2xlYXJfYml0KG9yZGVyLCAm aHVnZV9hbm9uX29yZGVyc19hbHdheXMpOwo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBjbGVhcl9iaXQo b3JkZXIsICZodWdlX2Fub25fb3JkZXJzX21hZHZpc2UpOwo+Pj4+ICvCoMKgwqAgfSBlbHNlIGlm IChzeXNmc19zdHJlcShidWYsICJtYWR2aXNlIikpIHsKPj4+PiArwqDCoMKgwqDCoMKgwqAgc2V0 X2JpdChvcmRlciwgJmh1Z2VfYW5vbl9vcmRlcnNfbWFkdmlzZSk7Cj4+Pj4gK8KgwqDCoMKgwqDC oMKgIGNsZWFyX2JpdChvcmRlciwgJmh1Z2VfYW5vbl9vcmRlcnNfYWx3YXlzKTsKPj4+PiArwqDC oMKgwqDCoMKgwqAgY2xlYXJfYml0KG9yZGVyLCAmaHVnZV9hbm9uX29yZGVyc19pbmhlcml0KTsK Pj4+PiArwqDCoMKgIH0gZWxzZSBpZiAoc3lzZnNfc3RyZXEoYnVmLCAibmV2ZXIiKSkgewo+Pj4+ ICvCoMKgwqDCoMKgwqDCoCBjbGVhcl9iaXQob3JkZXIsICZodWdlX2Fub25fb3JkZXJzX2Fsd2F5 cyk7Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGNsZWFyX2JpdChvcmRlciwgJmh1Z2VfYW5vbl9vcmRl cnNfaW5oZXJpdCk7Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgIGNsZWFyX2JpdChvcmRlciwgJmh1Z2Vf YW5vbl9vcmRlcnNfbWFkdmlzZSk7Cj4+Pgo+Pj4gTm90ZTogSSB3YXMgd29uZGVyaW5nIGZvciBh IHNlY29uZCBpZiBzb21lIGNvbmN1cnJlbnQgY2FtZXMgY291bGQgbGVhZCB0byBhbgo+Pj4gaW5j b25zaXN0ZW50IHN0YXRlLiBJIHRoaW5rIGluIHRoZSB3b3JzdCBjYXNlIHdlJ2xsIHNpbXBseSBl bmQgdXAgd2l0aCAibmV2ZXIiCj4+PiBvbiByYWNlcy4KPj4KPj4gWW91IG1lYW4gaWYgZGlmZmVy ZW50IHRocmVhZHMgdHJ5IHRvIHdyaXRlIGRpZmZlcmVudCB2YWx1ZXMgdG8gdGhpcyBmaWxlCj4+ IGNvbmN1cnJlbnRseT8gT3IgaWYgdGhlcmUgaXMgYSBjb25jdXJyZW50IGZhdWx0IHRoYXQgdHJp ZXMgdG8gcmVhZCB0aGUgZmxhZ3MKPj4gd2hpbGUgdGhleSBhcmUgYmVpbmcgbW9kaWZpZWQ/Cj4g Cj4gSSB0aG91Z2h0IGFib3V0IHdoYXQgeW91IHNhaWQgZmlyc3QsIGJ1dCB3aGF0IHlvdSBzYWlk IGxhc3QgbWlnaHQgYWxzbyBhcHBseS4gQXMKPiBsb25nIGFzICJub3RoaW5nIGJyZWFrcyIsIGFs bCBnb29kLgo+IAo+Pgo+PiBJIHRob3VnaHQgYWJvdXQgdGhpcyBmb3IgYSBsb25nIHRpbWUgdG9v IGFuZCB3YXNuJ3Qgc3VyZSB3aGF0IHdhcyBiZXN0LiBUaGUKPj4gZXhpc3RpbmcgZ2xvYmFsIGVu YWJsZWQgc3RvcmUgaW1wbCBjbGVhcnMgdGhlIGJpdHMgZmlyc3QgdGhlbiBzZXRzIHRoZSBiaXQu IFdpdGgKPj4gdGhpcyBhcHByb2FjaCB5b3UgY2FuIGVuZCB1cCB3aXRoIG11bHRpcGxlIGJpdHMg c2V0IGlmIHRoZXJlIGlzIGEgcmFjZSB0byBzZXQKPj4gZGlmZmllcmVudCB2YWx1ZXMsIGFuZCB5 b3UgY2FuIGVuZCB1cCB3aXRoIGEgZmF1bHRpbmcgdGhyZWFkIHNlZWluZyBuZXZlciBpZiBpdAo+ PiByZWFkcyB0aGUgYml0cyBhZnRlciB0aGV5IGhhdmUgYmVlbiBjbGVhcmVkIGJ1dCBiZWZvcmUg c2V0dGluZyB0aGVtLgo+IAo+IFJpZ2h0LCBidXQgdXNlciBzcGFjZSBpcyBwbGF5aW5nIHN0dXBp ZCBnYW1lcyBhbmQgY2FuIHdpbiBzdHVwaWQgcHJpY2VzLiBBcyBsb25nCj4gYXMgbm90aGluZyBi cmVha3MsIHdlJ3JlIGdvb2QuCj4gCj4+Cj4+IEkgZGVjaWRlZCB0byBzZXQgdGhlIG5ldyBiaXQg YmVmb3JlIGNsZWFyaW5nIHRoZSBvbGQgYml0cywgd2hpY2ggaXMgZGlmZmVyZW50OyBBCj4+IHJh Y2luZyBmYXVsdCB3aWxsIG5ldmVyIHNlZSAibmV2ZXIiIGJ1dCBhcyB5b3Ugc2F5LCBhIHJhY2Ug dG8gc2V0IHRoZSBmaWxlIGNvdWxkCj4+IHJlc3VsdCBpbiAibmV2ZXIiIGJlaW5nIHNldC4KPj4K Pj4gT24gcmVmbGVjdGlvbiwgaXQncyBwcm9iYWJseSBiZXN0IHRvIHNldCB0aGUgYml0ICpsYXN0 KiBsaWtlIHRoZSBnbG9iYWwgY29udHJvbAo+PiBkb2VzPwo+IAo+IFByb2JhYmx5IG1pZ2h0IGp1 c3Qgc2xhcCBhIHNpbXBsZSBzcGlubG9jayBpbiB0aGVyZSwgc28gYXQgbGVhc3QgdGhlIHdyaXRl ciBzaWRlCj4gaXMgY29tcGxldGVseSBzZXJpYWxpemVkLiBUaGVuIHlvdSBjYW4ganVzdCBzZXQg dGhlIGJpdCBsYXN0LiBJdCdzIHVubGlrZWx5IHRoYXQKPiByZWFkZXJzIHdpbGwgYWN0dWFsbHkg cnVuIGludG8gaXNzdWVzLCBhbmQgaWYgdGhleSBldmVyIHdvdWxkLCB3ZSBjb3VsZCB1c2Ugc29t ZQo+IHJjdSBtYWdpYyB0byBsZXQgdGhlbSByZWFkIGEgY29uc2lzdGVudCBzdGF0ZS4KCkknZCBw cmVmZXIgdG8gbGVhdmUgaXQgYXMgaXQgaXMgbm93OyBjbGVhciBmaXJzdCwgc2V0IGxhc3Qgd2l0 aG91dCBhbnkgZXhwbGljaXQKc2VyaWFsaXphdGlvbi4gSSd2ZSBjb252aW5jZWQgbXlzZWxmIHRo YXQgbm90aGluZyBicmVha3MgYW5kIGl0cyB0aGUgc2FtZQpwYXR0ZXJuIHVzZWQgYnkgdGhlIGds b2JhbCBjb250cm9sIHNvIGl0cyBjb25zaXN0ZW50LiBVbmxlc3MgeW91J3JlIGluc2lzdGluZyBv bgp0aGUgc3BpbiBsb2NrPwoKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5l bEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4v bGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=