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=-11.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 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 C5EABC64E7A for ; Tue, 1 Dec 2020 17:21:17 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 4BCA920757 for ; Tue, 1 Dec 2020 17:21:17 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="B3p1cgty" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4BCA920757 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=huawei.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=eErgxJGwGFlJqfSt3RlQoZljcm6E4FtjcAvQCTiXkT4=; b=B3p1cgty4FNk/V4GELXCMfeHe 1j4XU/ZplQKVVZSmBq3M6+KFnijvF5yI85pHcJA7f5b1skOPdarZfhxs7ayafJZUyojWOCu375D13 lRjR8IQmZVnvjo404IX2EN+Zfqix2+aZsldkHcD7KpAt6/iJKb3ei1uG24NLY/5rCxV/z4s/hwsHm KL4e3ksGbiqJATbuGUhqXkIgHmLWxKtUn1iHslzojAGOPNluWf0Ziuc0/cTQUM8iL4TXzjmBzD6lY 1Z0fpLE4g7cE0HGKdODE2LTlwEN4QWO7alkxB7BGAYzfy7ZZv2WlNuH79Opseq1HllhMxbYeAL5Wv hZRYRPEOg==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kk9Jb-0006hb-SH; Tue, 01 Dec 2020 17:19:47 +0000 Received: from szxga02-in.huawei.com ([45.249.212.188]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kk9JY-0006fM-FD for linux-arm-kernel@lists.infradead.org; Tue, 01 Dec 2020 17:19:46 +0000 Received: from dggeme756-chm.china.huawei.com (unknown [172.30.72.55]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4Clpjt1hNKzQlbg; Wed, 2 Dec 2020 01:19:14 +0800 (CST) Received: from [10.174.186.123] (10.174.186.123) by dggeme756-chm.china.huawei.com (10.3.19.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1913.5; Wed, 2 Dec 2020 01:19:35 +0800 Subject: Re: [RFC PATCH 1/3] KVM: arm64: Fix possible memory leak in kvm stage2 To: Will Deacon References: <20201130121847.91808-1-wangyanan55@huawei.com> <20201130121847.91808-2-wangyanan55@huawei.com> <20201130132133.GA24837@willie-the-truck> <20201201141632.GC26973@willie-the-truck> From: "wangyanan (Y)" Message-ID: <1dbb71f2-a794-86ab-e1cc-ceb9c1e3dd37@huawei.com> Date: Wed, 2 Dec 2020 01:19:35 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: <20201201141632.GC26973@willie-the-truck> Content-Language: en-US X-Originating-IP: [10.174.186.123] X-ClientProxiedBy: dggeme709-chm.china.huawei.com (10.1.199.105) To dggeme756-chm.china.huawei.com (10.3.19.102) X-CFilter-Loop: Reflected X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201201_121945_031358_1332B0EF X-CRM114-Status: GOOD ( 22.59 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: jiangkunkun@huawei.com, Gavin Shan , Suzuki K Poulose , Marc Zyngier , wangjingyi11@huawei.com, Quentin Perret , lushenming@huawei.com, linux-kernel@vger.kernel.org, yezengruan@huawei.com, James Morse , linux-arm-kernel@lists.infradead.org, Catalin Marinas , yuzenghui@huawei.com, wanghaibin.wang@huawei.com, zhukeqian1@huawei.com, Julien Thierry Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMjAyMC8xMi8xIDIyOjE2LCBXaWxsIERlYWNvbiB3cm90ZToKCj4gT24gVHVlLCBEZWMgMDEs IDIwMjAgYXQgMDM6MjE6MjNQTSArMDgwMCwgd2FuZ3lhbmFuIChZKSB3cm90ZToKPj4gT24gMjAy MC8xMS8zMCAyMToyMSwgV2lsbCBEZWFjb24gd3JvdGU6Cj4+PiBPbiBNb24sIE5vdiAzMCwgMjAy MCBhdCAwODoxODo0NVBNICswODAwLCBZYW5hbiBXYW5nIHdyb3RlOgo+Pj4+IGRpZmYgLS1naXQg YS9hcmNoL2FybTY0L2t2bS9oeXAvcGd0YWJsZS5jIGIvYXJjaC9hcm02NC9rdm0vaHlwL3BndGFi bGUuYwo+Pj4+IGluZGV4IDAyNzFiNGEzYjlmZS4uNjk2YjZhYTgzZmFmIDEwMDY0NAo+Pj4+IC0t LSBhL2FyY2gvYXJtNjQva3ZtL2h5cC9wZ3RhYmxlLmMKPj4+PiArKysgYi9hcmNoL2FybTY0L2t2 bS9oeXAvcGd0YWJsZS5jCj4+Pj4gQEAgLTE4Niw2ICsxODYsNyBAQCBzdGF0aWMgYm9vbCBrdm1f c2V0X3ZhbGlkX2xlYWZfcHRlKGt2bV9wdGVfdCAqcHRlcCwgdTY0IHBhLCBrdm1fcHRlX3QgYXR0 ciwKPj4+PiAgICAJCXJldHVybiBvbGQgPT0gcHRlOwo+Pj4+ICAgIAlzbXBfc3RvcmVfcmVsZWFz ZShwdGVwLCBwdGUpOwo+Pj4+ICsJZ2V0X3BhZ2UodmlydF90b19wYWdlKHB0ZXApKTsKPj4+IFRo aXMgaXMgYWxzbyB1c2VkIGZvciB0aGUgaHlwZXJ2aXNvciBzdGFnZS0xIHBhZ2UtdGFibGUsIHNv IEknZCBwcmVmZXIgdG8KPj4+IGxlYXZlIHRoaXMgZnVuY3Rpb24gYXMtaXMuCj4+IEkgYWdyZWUg YXQgdGhpcyBwb2ludC4KPj4+PiAgICAJcmV0dXJuIHRydWU7Cj4+Pj4gICAgfQo+Pj4+IEBAIC00 NzYsNiArNDc3LDcgQEAgc3RhdGljIGJvb2wgc3RhZ2UyX21hcF93YWxrZXJfdHJ5X2xlYWYodTY0 IGFkZHIsIHU2NCBlbmQsIHUzMiBsZXZlbCwKPj4+PiAgICAJLyogVGhlcmUncyBhbiBleGlzdGlu ZyB2YWxpZCBsZWFmIGVudHJ5LCBzbyBwZXJmb3JtIGJyZWFrLWJlZm9yZS1tYWtlICovCj4+Pj4g ICAgCWt2bV9zZXRfaW52YWxpZF9wdGUocHRlcCk7Cj4+Pj4gICAgCWt2bV9jYWxsX2h5cChfX2t2 bV90bGJfZmx1c2hfdm1pZF9pcGEsIGRhdGEtPm1tdSwgYWRkciwgbGV2ZWwpOwo+Pj4+ICsJcHV0 X3BhZ2UodmlydF90b19wYWdlKHB0ZXApKTsKPj4+PiAgICAJa3ZtX3NldF92YWxpZF9sZWFmX3B0 ZShwdGVwLCBwaHlzLCBkYXRhLT5hdHRyLCBsZXZlbCk7Cj4+Pj4gICAgb3V0Ogo+Pj4+ICAgIAlk YXRhLT5waHlzICs9IGdyYW51bGU7Cj4+PiBJc24ndCB0aGlzIGh1bmsgYWxvbmUgc3VmZmljaWVu dCB0byBzb2x2ZSB0aGUgcHJvYmxlbT8KPj4+Cj4+PiBXaWxsCj4+PiAuCj4+IE5vdCBzdWZmaWNp ZW50IGVub3VnaC4gV2hlbiB0aGUgb2xkIHB0ZXAgaXMgdmFsaWQgYW5kIG9sZCBwdGUgZXF1bGFz IG5ldwo+PiBwdGUsIGluIHRoaXMgY2FzZSwgIlRydWUiIGlzIGFsc28gcmV0dXJuZWQgYnkga3Zt X3NldF92YWxpZF9sZWFmX3B0ZSgpCj4+Cj4+IGFuZCBnZXRfcGFnZSgpIHdpbGwgc3RpbGwgYmUg Y2FsbGVkLgo+IEkgaGFkIGEgZ28gYXQgZml4aW5nIHRoaXMgd2l0aG91dCBpbnRyb2R1Y2luZyBy ZWZjb3VudGluZyB0byB0aGUgaHlwIHN0YWdlLTEKPiBjYXNlLCBhbmQgZW5kZWQgdXAgd2l0aCB0 aGUgZGlmZiBiZWxvdy4gV2hhdCBkbyB5b3UgdGhpbms/CgpIaSBXaWxsLAoKRnVuY3Rpb25hbGx5 IHRoaXMgZGlmZiBsb29rcyBmaW5lIHRvIG1lLiBBIHNtYWxsIGNvbW1lbnQgaW5saW5lLCBwbGVh c2UgCnNlZSBiZWxvdy4KCkkgaGFkIG1hZGUgYW4gYWx0ZXJuYXRpdmUgZml4IChhZnRlciBzZW5k aW5nIHYxKSBhbmQgaXQgbG9va3MgbXVjaCBtb3JlIApjb25jaXNlLgoKSWYgeW91J3JlIG9rIHdp dGggaXQsIEkgY2FuIHNlbmQgaXQgYXMgdjIgKHRvZ2V0aGVyIHdpdGggcGF0Y2gjMiBhbmQgIzMp IAphZnRlciBzb21lIHRlc3RzLgoKClRoYW5rcywKCllhbmFuCgoKZGlmZiAtLWdpdCBhL2FyY2gv YXJtNjQva3ZtL2h5cC9wZ3RhYmxlLmMgYi9hcmNoL2FybTY0L2t2bS9oeXAvcGd0YWJsZS5jCmlu ZGV4IDAyNzFiNGEzYjlmZS4uYjIzMmJkZDE0MmE2IDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2t2 bS9oeXAvcGd0YWJsZS5jCisrKyBiL2FyY2gvYXJtNjQva3ZtL2h5cC9wZ3RhYmxlLmMKQEAgLTQ3 MCw2ICs0NzAsOSBAQCBzdGF0aWMgYm9vbCBzdGFnZTJfbWFwX3dhbGtlcl90cnlfbGVhZih1NjQg YWRkciwgdTY0IAplbmQsIHUzMiBsZXZlbCwKIMKgwqDCoMKgwqDCoMKgIGlmICgha3ZtX2Jsb2Nr X21hcHBpbmdfc3VwcG9ydGVkKGFkZHIsIGVuZCwgcGh5cywgbGV2ZWwpKQogwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBmYWxzZTsKCivCoMKgwqDCoMKgwqAgaWYgKGt2bV9w dGVfdmFsaWQoKnB0ZXApKQorwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwdXRfcGFnZSh2 aXJ0X3RvX3BhZ2UocHRlcCkpOworCiDCoMKgwqDCoMKgwqDCoCBpZiAoa3ZtX3NldF92YWxpZF9s ZWFmX3B0ZShwdGVwLCBwaHlzLCBkYXRhLT5hdHRyLCBsZXZlbCkpCiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgZ290byBvdXQ7Cgo+Cj4gLS0tPjgKPgo+IGRpZmYgLS1naXQgYS9hcmNo L2FybTY0L2t2bS9oeXAvcGd0YWJsZS5jIGIvYXJjaC9hcm02NC9rdm0vaHlwL3BndGFibGUuYwo+ IGluZGV4IDAyNzFiNGEzYjlmZS4uNzhlMmMwZGM0N2FlIDEwMDY0NAo+IC0tLSBhL2FyY2gvYXJt NjQva3ZtL2h5cC9wZ3RhYmxlLmMKPiArKysgYi9hcmNoL2FybTY0L2t2bS9oeXAvcGd0YWJsZS5j Cj4gQEAgLTE3MCwyMyArMTcwLDE2IEBAIHN0YXRpYyB2b2lkIGt2bV9zZXRfdGFibGVfcHRlKGt2 bV9wdGVfdCAqcHRlcCwga3ZtX3B0ZV90ICpjaGlsZHApCj4gICAJc21wX3N0b3JlX3JlbGVhc2Uo cHRlcCwgcHRlKTsKPiAgIH0KPiAgIAo+IC1zdGF0aWMgYm9vbCBrdm1fc2V0X3ZhbGlkX2xlYWZf cHRlKGt2bV9wdGVfdCAqcHRlcCwgdTY0IHBhLCBrdm1fcHRlX3QgYXR0ciwKPiAtCQkJCSAgIHUz MiBsZXZlbCkKPiArc3RhdGljIGt2bV9wdGVfdCBrdm1faW5pdF92YWxpZF9sZWFmX3B0ZSh1NjQg cGEsIGt2bV9wdGVfdCBhdHRyLCB1MzIgbGV2ZWwpCj4gICB7Cj4gLQlrdm1fcHRlX3Qgb2xkID0g KnB0ZXAsIHB0ZSA9IGt2bV9waHlzX3RvX3B0ZShwYSk7Cj4gKwlrdm1fcHRlX3QgcHRlID0ga3Zt X3BoeXNfdG9fcHRlKHBhKTsKPiAgIAl1NjQgdHlwZSA9IChsZXZlbCA9PSBLVk1fUEdUQUJMRV9N QVhfTEVWRUxTIC0gMSkgPyBLVk1fUFRFX1RZUEVfUEFHRSA6Cj4gICAJCQkJCQkJICAgS1ZNX1BU RV9UWVBFX0JMT0NLOwo+ICAgCj4gICAJcHRlIHw9IGF0dHIgJiAoS1ZNX1BURV9MRUFGX0FUVFJf TE8gfCBLVk1fUFRFX0xFQUZfQVRUUl9ISSk7Cj4gICAJcHRlIHw9IEZJRUxEX1BSRVAoS1ZNX1BU RV9UWVBFLCB0eXBlKTsKPiAgIAlwdGUgfD0gS1ZNX1BURV9WQUxJRDsKPiAtCj4gLQkvKiBUb2xl cmF0ZSBLVk0gcmVjcmVhdGluZyB0aGUgZXhhY3Qgc2FtZSBtYXBwaW5nLiAqLwo+IC0JaWYgKGt2 bV9wdGVfdmFsaWQob2xkKSkKPiAtCQlyZXR1cm4gb2xkID09IHB0ZTsKPiAtCj4gLQlzbXBfc3Rv cmVfcmVsZWFzZShwdGVwLCBwdGUpOwo+IC0JcmV0dXJuIHRydWU7Cj4gKwlyZXR1cm4gcHRlOwo+ ICAgfQo+ICAgCj4gICBzdGF0aWMgaW50IGt2bV9wZ3RhYmxlX3Zpc2l0b3JfY2Ioc3RydWN0IGt2 bV9wZ3RhYmxlX3dhbGtfZGF0YSAqZGF0YSwgdTY0IGFkZHIsCj4gQEAgLTM0MSwxMiArMzM0LDE3 IEBAIHN0YXRpYyBpbnQgaHlwX21hcF9zZXRfcHJvdF9hdHRyKGVudW0ga3ZtX3BndGFibGVfcHJv dCBwcm90LAo+ICAgc3RhdGljIGJvb2wgaHlwX21hcF93YWxrZXJfdHJ5X2xlYWYodTY0IGFkZHIs IHU2NCBlbmQsIHUzMiBsZXZlbCwKPiAgIAkJCQkgICAga3ZtX3B0ZV90ICpwdGVwLCBzdHJ1Y3Qg aHlwX21hcF9kYXRhICpkYXRhKQo+ICAgewo+ICsJa3ZtX3B0ZV90IG5ldywgb2xkID0gKnB0ZXA7 Cj4gICAJdTY0IGdyYW51bGUgPSBrdm1fZ3JhbnVsZV9zaXplKGxldmVsKSwgcGh5cyA9IGRhdGEt PnBoeXM7Cj4gICAKPiAgIAlpZiAoIWt2bV9ibG9ja19tYXBwaW5nX3N1cHBvcnRlZChhZGRyLCBl bmQsIHBoeXMsIGxldmVsKSkKPiAgIAkJcmV0dXJuIGZhbHNlOwo+ICAgCj4gLQlXQVJOX09OKCFr dm1fc2V0X3ZhbGlkX2xlYWZfcHRlKHB0ZXAsIHBoeXMsIGRhdGEtPmF0dHIsIGxldmVsKSk7Cj4g KwkvKiBUb2xlcmF0ZSBLVk0gcmVjcmVhdGluZyB0aGUgZXhhY3Qgc2FtZSBtYXBwaW5nLiAqLwo+ ICsJbmV3ID0ga3ZtX2luaXRfdmFsaWRfbGVhZl9wdGUocGh5cywgZGF0YS0+YXR0ciwgbGV2ZWwp Owo+ICsJaWYgKG9sZCAhPSBuZXcgJiYgIVdBUk5fT04oa3ZtX3B0ZV92YWxpZChvbGQpKSkKPiAr CQlzbXBfc3RvcmVfcmVsZWFzZShwdGVwLCBuZXcpOwo+ICsKPiAgIAlkYXRhLT5waHlzICs9IGdy YW51bGU7Cj4gICAJcmV0dXJuIHRydWU7Cj4gICB9Cj4gQEAgLTQ2NSwxOSArNDYzLDI0IEBAIHN0 YXRpYyBib29sIHN0YWdlMl9tYXBfd2Fsa2VyX3RyeV9sZWFmKHU2NCBhZGRyLCB1NjQgZW5kLCB1 MzIgbGV2ZWwsCj4gICAJCQkJICAgICAgIGt2bV9wdGVfdCAqcHRlcCwKPiAgIAkJCQkgICAgICAg c3RydWN0IHN0YWdlMl9tYXBfZGF0YSAqZGF0YSkKPiAgIHsKPiArCWt2bV9wdGVfdCBuZXcsIG9s ZCA9ICpwdGVwOwo+ICAgCXU2NCBncmFudWxlID0ga3ZtX2dyYW51bGVfc2l6ZShsZXZlbCksIHBo eXMgPSBkYXRhLT5waHlzOwo+ICAgCj4gICAJaWYgKCFrdm1fYmxvY2tfbWFwcGluZ19zdXBwb3J0 ZWQoYWRkciwgZW5kLCBwaHlzLCBsZXZlbCkpCj4gICAJCXJldHVybiBmYWxzZTsKPiAgIAo+IC0J aWYgKGt2bV9zZXRfdmFsaWRfbGVhZl9wdGUocHRlcCwgcGh5cywgZGF0YS0+YXR0ciwgbGV2ZWwp KQo+IC0JCWdvdG8gb3V0Owo+ICsJbmV3ID0ga3ZtX2luaXRfdmFsaWRfbGVhZl9wdGUocGh5cywg ZGF0YS0+YXR0ciwgbGV2ZWwpOwo+ICsJaWYgKGt2bV9wdGVfdmFsaWQob2xkKSkgewo+ICsJCS8q Cj4gKwkJICogVGhlcmUncyBhbiBleGlzdGluZyB2YWxpZCBsZWFmIGVudHJ5LCBzbyBwZXJmb3Jt Cj4gKwkJICogYnJlYWstYmVmb3JlLW1ha2UuCj4gKwkJICovCj4gKwkJa3ZtX3NldF9pbnZhbGlk X3B0ZShwdGVwKTsKPiArCQlrdm1fY2FsbF9oeXAoX19rdm1fdGxiX2ZsdXNoX3ZtaWRfaXBhLCBk YXRhLT5tbXUsIGFkZHIsIGxldmVsKTsKPiArCQlwdXRfcGFnZSh2aXJ0X3RvX3BhZ2UocHRlcCkp OwoKV2hlbiBvbGQgUFRFIGlzIHZhbGlkIGFuZCBlcXVhbHMgdG8gdGhlIG5ldyBvbmUsIHdlIHdp bGwgYWxzbyBwZXJmb3JtIApicmVhay1iZWZvcmUtbWFrZSBhbmQgdGhlIG5ldyBQVEUgaW5zdGFs bGF0aW9uLiBCdXQgdGhleSdyZSBhY3R1YWxseSBub3QgCm5lY2Vzc2FyeSBpbiB0aGlzIGNhc2Uu Cgo+ICsJfQo+ICAgCj4gLQkvKiBUaGVyZSdzIGFuIGV4aXN0aW5nIHZhbGlkIGxlYWYgZW50cnks IHNvIHBlcmZvcm0gYnJlYWstYmVmb3JlLW1ha2UgKi8KPiAtCWt2bV9zZXRfaW52YWxpZF9wdGUo cHRlcCk7Cj4gLQlrdm1fY2FsbF9oeXAoX19rdm1fdGxiX2ZsdXNoX3ZtaWRfaXBhLCBkYXRhLT5t bXUsIGFkZHIsIGxldmVsKTsKPiAtCWt2bV9zZXRfdmFsaWRfbGVhZl9wdGUocHRlcCwgcGh5cywg ZGF0YS0+YXR0ciwgbGV2ZWwpOwo+IC1vdXQ6Cj4gKwlzbXBfc3RvcmVfcmVsZWFzZShwdGVwLCBu ZXcpOwo+ICAgCWRhdGEtPnBoeXMgKz0gZ3JhbnVsZTsKPiAgIAlyZXR1cm4gdHJ1ZTsKPiAgIH0K PiAuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51 eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVh ZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1h cm0ta2VybmVsCg==