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 151C3C433FE for ; Wed, 5 Oct 2022 14:55:46 +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-Type: Content-Transfer-Encoding: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=FQt4Ws1OLYZKpFjr1st8pxbs5d4RawsxpRs/lzbboNA=; b=WQpwZfQhLK7SJW 725blN6HRofS64WwkfnSfP3lPAdFWzZI3+CSBxrCeRGkz3HQhKz9aa0HttXnxq67yF0+bRxo3pWJK UUlbeZ0zaDVes5jsjCYoD7WyP8auPMQkZWx/D0SWHJN3yqKMVD89YGiTo8W7tK50GJVStH3Qxvw2K xIBytK74qWDu/ybtjidPjZHLM1Kg+2jKAbJiQZ9/h7v9Ud/u2pbi3Qnt+6a1+QeX2NQZzPr6cb4ey cRPvZtox/dW6Fi/Ld5pi9CUZAlQHx6PcmgNoSwCZ/3UJvrFOJqO/ufWlU11t2Ha/gTW96n6kiQHu6 LYLmXAtXd28IrHOnzWgA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1og5n7-00EgmV-CW; Wed, 05 Oct 2022 14:54:33 +0000 Received: from szxga01-in.huawei.com ([45.249.212.187]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1og5n1-00Egfy-Mi for linux-arm-kernel@lists.infradead.org; Wed, 05 Oct 2022 14:54:31 +0000 Received: from kwepemi500013.china.huawei.com (unknown [172.30.72.54]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4MjHXv1LldzlVjH; Wed, 5 Oct 2022 22:49:51 +0800 (CST) Received: from [10.67.111.192] (10.67.111.192) by kwepemi500013.china.huawei.com (7.221.188.120) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Wed, 5 Oct 2022 22:54:16 +0800 Message-ID: <7f34d333-3b2a-aea5-f411-d53be2c46eee@huawei.com> Date: Wed, 5 Oct 2022 22:54:15 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.9.0 Subject: Re: [PATCH bpf-next v2 0/4] Add ftrace direct call for arm64 Content-Language: en-US To: Florent Revest CC: Mark Rutland , Catalin Marinas , Daniel Borkmann , Xu Kuohai , , , , Will Deacon , Jean-Philippe Brucker , Steven Rostedt , Ingo Molnar , Oleg Nesterov , Alexei Starovoitov , Andrii Nakryiko , Martin KaFai Lau , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Jiri Olsa , Zi Shen Lim , Pasha Tatashin , Ard Biesheuvel , Marc Zyngier , Guo Ren , Masami Hiramatsu References: <20220913162732.163631-1-xukuohai@huaweicloud.com> <970a25e4-9b79-9e0c-b338-ed1a934f2770@huawei.com> <2cb606b4-aa8b-e259-cdfd-1bfc61fd7c44@huawei.com> From: Xu Kuohai In-Reply-To: X-Originating-IP: [10.67.111.192] X-ClientProxiedBy: dggems701-chm.china.huawei.com (10.3.19.178) To kwepemi500013.china.huawei.com (7.221.188.120) X-CFilter-Loop: Reflected X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221005_075428_147029_18F3FA47 X-CRM114-Status: GOOD ( 48.23 ) 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-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 T24gMTAvNS8yMDIyIDEyOjA2IEFNLCBGbG9yZW50IFJldmVzdCB3cm90ZToKPiBPbiBGcmksIFNl cCAzMCwgMjAyMiBhdCA2OjA3IEFNIFh1IEt1b2hhaSA8eHVrdW9oYWlAaHVhd2VpLmNvbT4gd3Jv dGU6Cj4+Cj4+IE9uIDkvMjkvMjAyMiAxMjo0MiBBTSwgTWFyayBSdXRsYW5kIHdyb3RlOgo+Pj4g T24gVHVlLCBTZXAgMjcsIDIwMjIgYXQgMTI6NDk6NThQTSArMDgwMCwgWHUgS3VvaGFpIHdyb3Rl Ogo+Pj4+IE9uIDkvMjcvMjAyMiAxOjQzIEFNLCBNYXJrIFJ1dGxhbmQgd3JvdGU6Cj4+Pj4+IE9u IE1vbiwgU2VwIDI2LCAyMDIyIGF0IDAzOjQwOjIwUE0gKzAxMDAsIENhdGFsaW4gTWFyaW5hcyB3 cm90ZToKPj4+Pj4+IE9uIFRodSwgU2VwIDIyLCAyMDIyIGF0IDA4OjAxOjE2UE0gKzAyMDAsIERh bmllbCBCb3JrbWFubiB3cm90ZToKPj4+Pj4+PiBPbiA5LzEzLzIyIDY6MjcgUE0sIFh1IEt1b2hh aSB3cm90ZToKPj4+Pj4+Pj4gVGhpcyBzZXJpZXMgYWRkcyBmdHJhY2UgZGlyZWN0IGNhbGwgZm9y IGFybTY0LCB3aGljaCBpcyByZXF1aXJlZCB0byBhdHRhY2gKPj4+Pj4+Pj4gYnBmIHRyYW1wb2xp bmUgdG8gZmVudHJ5Lgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBBbHRob3VnaCB0aGVyZSBpcyBubyBhZ3Jl ZW1lbnQgb24gaG93IHRvIHN1cHBvcnQgZnRyYWNlIGRpcmVjdCBjYWxsIG9uIGFybTY0LAo+Pj4+ Pj4+PiBubyBwYXRjaCBoYXMgYmVlbiBwb3N0ZWQgZXhjZXB0IHRoZSBvbmUgSSBwb3N0ZWQgaW4g WzFdLCBzbyB0aGlzIHNlcmllcwo+IAo+IEhleSBYdSA6KSBTb3JyeSBJIHdhc24ndCBtb3JlIHBy by1hY3RpdmUgYWJvdXQgY29tbXVuaWNhdGluZyB3aGF0IGkKPiB3YXMgZXhwZXJpbWVudGluZyB3 aXRoISBBIGxvdCBvZiBjb252ZXJzYXRpb25zIGhhcHBlbmVkIG9mZi10aGUtbGlzdAo+IGF0IExQ QyBhbmQgTFNTIHNvIEkgd2FzIHBsYXlpbmcgb24gdGhlIHNpZGUgd2l0aCB0aGUgaWRlYXMgdGhh dCBnb3QKPiBzdWdnZXN0ZWQgdG8gbWUuIEkgc3RhcnQgdG8gaGF2ZSBhIGxpdHRsZSBzb21ldGhp bmcgdG8gc2hhcmUuCj4gSG9wZWZ1bGx5IGlmIHdlIHdvcmsgY2xvc2VyIHRvZ2V0aGVyIG5vdyB3 ZSBjYW4gZ2V0IHF1aWNrZXIgcmVzdWx0cy4KPiAKPj4+Pj4+Pj4gY29udGludWVzIHRoZSB3b3Jr IG9mIFsxXSB3aXRoIHRoZSBhZGRpdGlvbiBvZiBsb25nIGp1bXAgc3VwcG9ydC4gTm93IGZ0cmFj ZQo+Pj4+Pj4+PiBkaXJlY3QgY2FsbCB3b3JrcyByZWdhcmRsZXNzIG9mIHRoZSBkaXN0YW5jZSBi ZXR3ZWVuIHRoZSBjYWxsc2l0ZSBhbmQgY3VzdG9tCj4+Pj4+Pj4+IHRyYW1wb2xpbmUuCj4+Pj4+ Pj4+Cj4+Pj4+Pj4+IFsxXSBodHRwczovL2xvcmUua2VybmVsLm9yZy9icGYvMjAyMjA1MTgxMzE2 MzguMzQwMTUwOS0yLXh1a3VvaGFpQGh1YXdlaS5jb20vCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IHYyOgo+ Pj4+Pj4+PiAtIEZpeCBjb21waWxlIGFuZCBydW50aW1lIGVycm9ycyBjYXVzZWQgYnkgZnRyYWNl X3JlY19hcmNoX2luaXQKPj4+Pj4+Pj4KPj4+Pj4+Pj4gdjE6IGh0dHBzOi8vbG9yZS5rZXJuZWwu b3JnL2JwZi8yMDIyMDkxMzA2MzE0Ni43NDc1MC0xLXh1a3VvaGFpQGh1YXdlaWNsb3VkLmNvbS8K Pj4+Pj4+Pj4KPj4+Pj4+Pj4gWHUgS3VvaGFpICg0KToKPj4+Pj4+Pj4gICAgICAgZnRyYWNlOiBB bGxvdyB1c2VycyB0byBkaXNhYmxlIGZ0cmFjZSBkaXJlY3QgY2FsbAo+Pj4+Pj4+PiAgICAgICBh cm02NDogZnRyYWNlOiBTdXBwb3J0IGxvbmcganVtcCBmb3IgZnRyYWNlIGRpcmVjdCBjYWxsCj4+ Pj4+Pj4+ICAgICAgIGFybTY0OiBmdHJhY2U6IEFkZCBmdHJhY2UgZGlyZWN0IGNhbGwgc3VwcG9y dAo+Pj4+Pj4+PiAgICAgICBmdHJhY2U6IEZpeCBkZWFkIGxvb3AgY2F1c2VkIGJ5IGRpcmVjdCBj YWxsIGluIGZ0cmFjZSBzZWxmdGVzdAo+Pj4+Pj4+Cj4+Pj4+Pj4gR2l2ZW4gdGhlcmUncyBqdXN0 IGEgdGlueSBmcmFjdGlvbiB0b3VjaGluZyBCUEYgSklUIGFuZCBtb3N0IGFyZSBhcm91bmQgY29y ZSBhcm02NCwKPj4+Pj4+PiBpdCBwcm9iYWJseSBtYWtlcyBzZW5zZSB0aGF0IHRoaXMgc2VyaWVz IGdvZXMgdmlhIENhdGFsaW4vV2lsbCB0aHJvdWdoIGFybTY0IHRyZWUKPj4+Pj4+PiBpbnN0ZWFk IG9mIGJwZi1uZXh0IGlmIGl0IGxvb2tzIGdvb2QgdG8gdGhlbS4gQ2F0YWxpbi9XaWxsLCB0aG91 Z2h0cyAoQWNrICsgYnBmLW5leHQKPj4+Pj4+PiBjb3VsZCB3b3JrIHRvbywgYnV0IEknZCBwcmVz dW1lIHRoaXMganVzdCByZXN1bHRzIGluIG1lcmdlIGNvbmZsaWN0cyk/Cj4+Pj4+Pgo+Pj4+Pj4g SSB0aGluayBpdCBtYWtlcyBzZW5zZSBmb3IgdGhlIHNlcmllcyB0byBnbyB2aWEgdGhlIGFybTY0 IHRyZWUgYnV0IEknZAo+Pj4+Pj4gbGlrZSBNYXJrIHRvIGhhdmUgYSBsb29rIGF0IHRoZSBmdHJh Y2UgY2hhbmdlcyBmaXJzdC4KPj4+Pj4KPj4+Pj4+ICAgRnJvbSBhIHF1aWNrIHNjYW4sIEkgc3Rp bGwgZG9uJ3QgdGhpbmsgdGhpcyBpcyBxdWl0ZSByaWdodCwgYW5kIGFzIGl0IHN0YW5kcyBJCj4+ Pj4+IGJlbGlldmUgdGhpcyB3aWxsIGJyZWFrIGJhY2t0cmFjaW5nIChhcyB0aGUgaW5zdHJ1Y3Rp b25zIGJlZm9yZSB0aGUgZnVuY3Rpb24KPj4+Pj4gZW50cnkgcG9pbnQgd2lsbCBub3QgYmUgc3lt Ym9saXplZCBjb3JyZWN0bHksIGdldHRpbmcgaW4gdGhlIHdheSBvZgo+Pj4+PiBSRUxJQUJMRV9T VEFDS1RSQUNFKS4gSSB0aGluayBJIHdhcyBpbnN1ZmZpY2llbnRseSBjbGVhciB3aXRoIG15IGVh cmxpZXIKPj4+Pj4gZmVlZGJhY2sgdGhlcmUsIGFzIEkgaGF2ZSBhIG1lY2hhbmlzbSBpbiBtaW5k IHRoYXQgd2EgYSBsaXR0bGUgc2ltcGxlci4KPj4+Pgo+Pj4+IFRoYW5rcyBmb3IgdGhlIHJldmll dy4gSSBoYXZlIHNvbWUgdGhvdWdodHMgYWJvdXQgcmVsaWFibGUgc3RhY2t0cmFjZS4KPj4+Pgo+ Pj4+IElmIFBDIGlzIG5vdCBpbiB0aGUgcmFuZ2Ugb2YgbGl0ZXJhbF9jYWxsLCBzdGFja3RyYWNl IHdvcmtzIGFzIGJlZm9yZSB3aXRob3V0Cj4+Pj4gY2hhbmdlcy4KPj4+Pgo+Pj4+IElmIFBDIGlz IGluIHRoZSByYW5nZSBvZiBsaXRlcmFsX2NhbGwsIGZvciBleGFtcGxlLCBpbnRlcnJ1cHRlZCBi eSBhbgo+Pj4+IGlycSwgSSB0aGluayB0aGVyZSBhcmUgMiBwcm9ibGVtczoKPj4+Pgo+Pj4+IDEu IENhbGxlciBMUiBpcyBub3QgcHVzaGVkIHRvIHRoZSBzdGFjayB5ZXQsIHNvIGNhbGxlcidzIGFk ZHJlc3MgYW5kIG5hbWUKPj4+PiAgICAgIHdpbGwgYmUgbWlzc2luZyBmcm9tIHRoZSBiYWNrdHJh Y2UuCj4+Pj4KPj4+PiAyLiBTaW5jZSBQQyBpcyBub3QgaW4gZnVuYydzIGFkZHJlc3MgcmFuZ2Us IG5vIHN5bWJvbCBuYW1lIHdpbGwgYmUgZm91bmQsIHNvCj4+Pj4gICAgICBmdW5jIG5hbWUgaXMg YWxzbyBtaXNzaW5nLgo+Pj4+Cj4+Pj4gUHJvYmxlbSAxIGlzIG5vdCBpbnRyb2R1Y2VkIGJ5IHRo aXMgcGF0Y2hzZXQsIGJ1dCB0aGUgb2NjdXJyaW5nIHByb2JhYmlsaXR5Cj4+Pj4gbWF5IGJlIGlu Y3JlYXNlZCBieSB0aGlzIHBhdGNoc2V0LiBJIHRoaW5rIHRoaXMgcHJvYmxlbSBzaG91bGQgYmUg YWRkcmVzc2VkIGJ5Cj4+Pj4gYSByZWxpYWJsZSBzdGFja3RyYWNlIHNjaGVtZSwgc3VjaCBhcyBP UkMgb24geDg2Lgo+Pj4KPj4+IEkgYWdyZWUgcHJvYmxlbSAxIGlzIG5vdCBpbnRyb2R1Y2VkIGJ5 IHRoaXMgcGF0Y2ggc2V0OyBJIGhhdmUgcGxhbnMgZm8gaG93IHRvCj4+PiBhZGRyZXNzIHRoYXQg Zm9yIHJlbGlhYmxlIHN0YWNrdHJhY2UgYmFzZWQgb24gaWRlbnRpZnlpbmcgdGhlIGZ0cmFjZQo+ Pj4gdHJhbXBvbGluZS4gVGhpcyBpcyBvbmUgb2YgdGhlIHJlYXNvbnMgSSBkbyBub3Qgd2FudCBk aXJlY3QgY2FsbHMsIGFzCj4+PiBpZGVudGlmeWluZyBhbGwgZGlyZWN0IGNhbGwgdHJhbXBvbGlu ZXMgaXMgZ29pbmcgdG8gYmUgdmVyeSBwYWluZnVsIGFuZCBzbG93LAo+Pj4gd2hlcmVhcyBpZGVu dGlmeWluZyBhIHN0YXRpY2FsbHkgYWxsb2NhdGVkIGZ0cmFjZSB0cmFtcG9saW5lIGlzIGZhciBz aW1wbGVyLgo+Pj4KPj4+PiBQcm9ibGVtIDIgaXMgaW5kZWVkIGludHJvZHVjZWQgYnkgdGhpcyBw YXRjaHNldC4gSSB0aGluayB0aGVyZSBhcmUgYXQgbGVhc3QgMwo+Pj4+IHdheXMgdG8gZGVhbCB3 aXRoIGl0Ogo+Pj4KPj4+IFdoYXQgSSB3b3VsZCBsaWtlIHRvIGRvIGhlcmUsIGFzIG1lbnRpb25l ZCBwcmV2aW91c2x5IGluIG90aGVyIHRocmVhZHMsIGlzIHRvCj4+PiBhdm9pZCBkaXJlY3QgY2Fs bHMsIGFuZCBpbXBsZW1lbnQgIkZUUkFDRV9XSVRIX09QUyIsIHdoZXJlIHdlIGNhbiBhc3NvY2lh dGUKPj4+IGVhY2ggcGF0Y2gtc2l0ZSB3aXRoIGEgc3BlY2lmaWMgc2V0IG9mIG9wcywgYW5kIGlu dm9rZSB0aGF0IGRpcmVjdGx5IGZyb20gdGhlCj4+PiByZWd1bGFyIGZ0cmFjZSB0cmFtcG9saW5l Lgo+Pj4KPj4+IFdpdGggdGhhdCwgdGhlIHBhdGNoIHNpdGUgd291bGQgbG9vayBsaWtlOgo+Pj4K Pj4+ICAgICAgICBwcmVfZnVuY19saXRlcmFsOgo+Pj4gICAgICAgICAgICAgICAgTk9QICAgICAg ICAgICAgIC8vIFBhdGNoZWQgdG8gYSBwb2ludGVyIHRvCj4+PiAgICAgICAgICAgICAgICBOT1Ag ICAgICAgICAgICAgLy8gZnRyYWNlX29wcwo+Pj4gICAgICAgIGZ1bmM6Cj4+PiAgICAgICAgICAg ICAgICA8IG9wdGlvbmFsIEJUSSBoZXJlID4KPj4+ICAgICAgICAgICAgICAgIE5PUCAgICAgICAg ICAgICAvLyBQYXRjaGVkIHRvIE1PViBYOSwgTFIKPj4+ICAgICAgICAgICAgICAgIE5PUCAgICAg ICAgICAgICAvLyBQYXRjaGVkIHRvIGEgQkwgdG8gdGhlIGZ0cmFjZSB0cmFtcG9saW5lCj4+Pgo+ Pj4gLi4uIHRoZW4gaW4gdGhlIGZ0cmFjZSB0cmFtcG9saW5lIHdlIGNhbiByZWNvdmVyIHRoZSBv cHMgcG9pbnRlciBhdCBhIG5lZ2F0aXZlCj4+PiBvZmZzZXQgZnJvbSB0aGUgTFIgYmFzZWQgb24g dGhlIExSLCBhbmQgaW52b2tlIHRoZSBvcHMgZnJvbSB0aGVyZSAocGFzc2luZyBhCj4+PiBzdHJ1 Y3QgZnRyYWNlX3JlZ3Mgd2l0aCB0aGUgc2F2ZWQgcmVncykuCj4+Pgo+Pj4gVGhhdCB3YXkgdGhl IHBhdGNoLXNpdGUgaXMgbGVzcyBzaWduaWZpY2FudGx5IGFmZmVjdGVkLCBhbmQgdGhlcmUncyBu byBpbXBhY3QKPj4+IHRvIGJhY2t0cmFjaW5nLiBUaGF0IGdldHMgbW9zdCBvZiB0aGUgYmVuZWZp dCBvZiB0aGUgZGlyZWN0IGNhbGxzIGF2b2lkaW5nIHRoZQo+Pj4gZnRyYWNlIG9wcyBsaXN0IHRy YXZlcnNhbCwgd2l0aG91dCBoYXZpbmcgdG8gZG8gYW55dGhpbmcgc3BlY2lhbCBhdCBhbGwuIFRo YXQKPj4+IHNob3VsZCBiZSBtdWNoIGVhc2llciB0byBtYWludGFpbiwgdG9vLgo+Pj4KPj4+IEkg c3RhcnRlZCBpbXBsZW1lbnRpbmcgdGhhdCBiZWZvcmUgTFBDIChhbmQgeW91IGNhbiBmaW5kIHNv bWUgYnJhbmNoZXMgb24gbXkKPj4+IGtlcm5lbC5vcmcgcmVwbyksIGJ1dCBJIGhhdmVuJ3QgeWV0 IGhhZCB0aGUgdGltZSB0byByZWJhc2UgdGhvc2UgYW5kIHNvcnQgb3V0Cj4+PiB0aGUgcmVtYWlu aW5nIGlzc3VlczoKPj4+Cj4+PiAgICAgaHR0cHM6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xp bnV4L2tlcm5lbC9naXQvbWFyay9saW51eC5naXQvbG9nLz9oPWFybTY0L2Z0cmFjZS9wZXItY2Fs bHNpdGUtb3BzCj4+Pgo+Pgo+PiBJJ3ZlIHJlYWQgdGhpcyBjb2RlIGJlZm9yZSwgYnV0IGl0IGRv ZXNuJ3QgcnVuIGFuZCBzaW5jZSB5b3UgaGF2ZW4ndCB1cGRhdGVkCj4gCj4gSSBhbHNvIHRyaWVk IHRvIHVzZSB0aGlzIGJ1dCBpbmRlZWQgdGhlICJUT0RPOiBtZXNzIHdpdGggcHJvdGVjdGlvbiB0 bwo+IHNldCB0aGlzIiBpbiAgNTQzN2FhNzg4ZCBuZWVkcyB0byBiZSBhZGRyZXNzZWQgYmVmb3Jl IHdlIGNhbiB1c2UgaXQuCj4gCj4+IGl0LCBJIGFzc3VtZWQgeW91IGRyb3BwZWQgaXQgOigKPj4K Pj4gVGhpcyBhcHByb2FjaCBzZWVtcyBhcHByb3ByaWF0ZSBmb3IgZHluYW1pYyBmdHJhY2UgdHJh bXBvbGluZXMsIGJ1dCBJIHRoaW5rCj4+IHRoZXJlIGFyZSB0d28gbW9yZSBpc3N1ZXMgZm9yIGJw Zi4KPj4KPj4gMS4gYnBmIHRyYW1wb2xpbmUgd2FzIGRlc2lnbmVkIHRvIGJlIGNhbGxlZCBkaXJl Y3RseSBmcm9tIGZlbnRyeSAobG9jYXRlZCBpbgo+PiAgICAgIGtlcm5lbCBmdW5jdGlvbiBvciBi cGYgcHJvZykuIFNvIHRvIG1ha2UgaXQgd29yayBhcyBmdHJhY2Vfb3AsIHdlIG1heSBlbmQKPj4g ICAgICB1cCB3aXRoIHR3byBkaWZmZXJlbnQgYnBmIHRyYW1wb2xpbmUgdHlwZXMgb24gYXJtNjQs IG9uZSBmb3IgYnBmIHByb2cgYW5kCj4+ICAgICAgdGhlIG90aGVyIGZvciBmdHJhY2UuCj4+Cj4+ IDIuIFBlcmZvcm1hbmNlIG92ZXJoZWFkLCBhcyB3ZSBhbHdheXMganVtcCB0byBhIHN0YXRpYyBm dHJhY2UgdHJhbXBvbGluZSB0bwo+PiAgICAgIGNvbnN0cnVjdCBleGVjdXRpb24gZW52aXJvbm1l bnQgZm9yIGJwZiB0cmFtcG9saW5lLCB0aGVuIGp1bXAgdG8gdGhlIGJwZgo+PiAgICAgIHRyYW1w b2xpbmUgdG8gY29uc3RydWN0IGV4ZWN1dGlvbiBlbnZpcm9ubWVudCBmb3IgYnBmIHByb2csIHRo ZW4ganVtcCB0bwo+PiAgICAgIHRoZSBicGYgcHJvZywgc28gZm9yIHNvbWUgc21hbGwgYnBmIHBy b2dzIG9yIGhvdCBmdW5jdGlvbnMsIHRoZSBjYWxsaW5nCj4+ICAgICAgb3ZlcmhlYWQgbWF5IGJl IHVuYWNjZXB0YWJsZS4KPiAKPj5Gcm9tIHRoZSBjb252ZXJzYXRpb25zIEkndmUgaGFkIGF0IExQ QywgU3RldmVuLCBNYXJrLCBKaXJpIGFuZCBNYXNhbWkKPiAoYWxsIGluIENDKSB3b3VsZCBsaWtl IHRvIHNlZSBhbiBmdHJhY2Ugb3BzIGJhc2VkIHNvbHV0aW9uIChvciByYXRoZXIsCj4gc29tZXRo aW5nIHRoYXQgZG9lc24ndCByZXF1aXJlIGRpcmVjdCBjYWxscykgZm9yIGludm9raW5nIEJQRiB0 cmFjaW5nCj4gcHJvZ3JhbXMuIEkgZmlndXJlZCB0aGF0IHRoZSBiZXN0IHdheSB0byBtb3ZlIGZv cndhcmQgb24gdGhlIHF1ZXN0aW9uCj4gb2Ygd2hldGhlciB0aGUgcGVyZm9ybWFuY2UgaW1wYWN0 IG9mIHRoYXQgd291bGQgYmUgYWNjZXB0YWJsZSBvciBub3QKPiBpcyB0byBqdXN0IGJ1aWxkIGl0 IGFuZCBtZWFzdXJlIGl0LiBJIHVuZGVyc3RhbmQgeW91J3JlIHRlc3RpbmcgeW91cgo+IHdvcmsg b24gcmVhbCBoYXJkd2FyZSAoSSB3b3JrIG9uIGFuIGVtdWxhdG9yIGF0IHRoZSBtb21lbnQpICwg d291bGQKPiB5b3UgYmUgYWJsZSB0byBjb21wYXJlIHRoZSBpbXBhY3Qgb2YgbXkgcHJvb2Ygb2Yg Y29uY2VwdCBicmFuY2ggd2l0aAo+IHlvdXIgZGlyZWN0IGNhbGwgYmFzZWQgYXBwcm9hY2ggPwo+ IAo+IGh0dHBzOi8vZ2l0aHViLmNvbS9GbG9yZW50UmV2ZXN0L2xpbnV4L2NvbW1pdHMvZnByb2Jl LW1pbi1hcmdzCj4KClRlc3RlZCBvbiBteSBwaTQsIGhlcmUgaXMgdGhlIHJlc3VsdC4KCjEuIHRl c3Qgd2l0aCBkZAoKMS4xIHdoZW4gbm8gYnBmIHByb2cgYXR0YWNoZWQgdG8gdmZzX3dyaXRlCgoj IGRkIGlmPS9kZXYvemVybyBvZj0vZGV2L251bGwgY291bnQ9MTAwMDAwMAoxMDAwMDAwKzAgcmVj b3JkcyBpbgoxMDAwMDAwKzAgcmVjb3JkcyBvdXQKNTEyMDAwMDAwIGJ5dGVzICg1MTIgTUIsIDQ4 OCBNaUIpIGNvcGllZCwgMS41Njg1OCBzLCAzMjYgTUIvcwoKCjEuMiBhdHRhY2ggYnBmIHByb2cg d2l0aCBrcHJvYmUsIGJwZnRyYWNlIC1lICdrcHJvYmU6dmZzX3dyaXRlIHt9JwoKIyBkZCBpZj0v ZGV2L3plcm8gb2Y9L2Rldi9udWxsIGNvdW50PTEwMDAwMDAKMTAwMDAwMCswIHJlY29yZHMgaW4K MTAwMDAwMCswIHJlY29yZHMgb3V0CjUxMjAwMDAwMCBieXRlcyAoNTEyIE1CLCA0ODggTWlCKSBj b3BpZWQsIDIuMzM0MzkgcywgMjE5IE1CL3MKCgoxLjMgYXR0YWNoIGJwZiBwcm9nIHdpdGggd2l0 aCBkaXJlY3QgY2FsbCwgYnBmdHJhY2UgLWUgJ2tmdW5jOnZmc193cml0ZSB7fScKCiMgZGQgaWY9 L2Rldi96ZXJvIG9mPS9kZXYvbnVsbCBjb3VudD0xMDAwMDAwCjEwMDAwMDArMCByZWNvcmRzIGlu CjEwMDAwMDArMCByZWNvcmRzIG91dAo1MTIwMDAwMDAgYnl0ZXMgKDUxMiBNQiwgNDg4IE1pQikg Y29waWVkLCAxLjcyOTczIHMsIDI5NiBNQi9zCgoKMS40IGF0dGFjaCBicGYgcHJvZyB3aXRoIHdp dGggaW5kaXJlY3QgY2FsbCwgYnBmdHJhY2UgLWUgJ2tmdW5jOnZmc193cml0ZSB7fScKCiMgZGQg aWY9L2Rldi96ZXJvIG9mPS9kZXYvbnVsbCBjb3VudD0xMDAwMDAwCjEwMDAwMDArMCByZWNvcmRz IGluCjEwMDAwMDArMCByZWNvcmRzIG91dAo1MTIwMDAwMDAgYnl0ZXMgKDUxMiBNQiwgNDg4IE1p QikgY29waWVkLCAxLjk5MTc5IHMsIDI1NyBNQi9zCgoKMi4gdGVzdCB3aXRoIGJwZi9iZW5jaAoK Mi4xIGJlbmNoIHRyaWctYmFzZQpJdGVyICAgMCAoIDY1LjI1OXVzKTogaGl0cyAgICAxLjc3NE0v cyAoICAxLjc3NE0vcHJvZCksIGRyb3BzICAgIDAuMDAwTS9zLCB0b3RhbCBvcGVyYXRpb25zICAg IDEuNzc0TS9zCkl0ZXIgICAxICgtMTcuMDc1dXMpOiBoaXRzICAgIDEuNzkwTS9zICggIDEuNzkw TS9wcm9kKSwgZHJvcHMgICAgMC4wMDBNL3MsIHRvdGFsIG9wZXJhdGlvbnMgICAgMS43OTBNL3MK SXRlciAgIDIgKCAgMC4zODh1cyk6IGhpdHMgICAgMS43OTBNL3MgKCAgMS43OTBNL3Byb2QpLCBk cm9wcyAgICAwLjAwME0vcywgdG90YWwgb3BlcmF0aW9ucyAgICAxLjc5ME0vcwpJdGVyICAgMyAo IC0xLjc1OXVzKTogaGl0cyAgICAxLjc5ME0vcyAoICAxLjc5ME0vcHJvZCksIGRyb3BzICAgIDAu MDAwTS9zLCB0b3RhbCBvcGVyYXRpb25zICAgIDEuNzkwTS9zCkl0ZXIgICA0ICggIDEuOTgwdXMp OiBoaXRzICAgIDEuNzkwTS9zICggIDEuNzkwTS9wcm9kKSwgZHJvcHMgICAgMC4wMDBNL3MsIHRv dGFsIG9wZXJhdGlvbnMgICAgMS43OTBNL3MKSXRlciAgIDUgKCAtMi4yMjJ1cyk6IGhpdHMgICAg MS43OTBNL3MgKCAgMS43OTBNL3Byb2QpLCBkcm9wcyAgICAwLjAwME0vcywgdG90YWwgb3BlcmF0 aW9ucyAgICAxLjc5ME0vcwpJdGVyICAgNiAoICAwLjg2OXVzKTogaGl0cyAgICAxLjc5ME0vcyAo ICAxLjc5ME0vcHJvZCksIGRyb3BzICAgIDAuMDAwTS9zLCB0b3RhbCBvcGVyYXRpb25zICAgIDEu NzkwTS9zClN1bW1hcnk6IGhpdHMgICAgMS43OTAgwrEgMC4wMDBNL3MgKCAgMS43OTBNL3Byb2Qp LCBkcm9wcyAgICAwLjAwMCDCsSAwLjAwME0vcywgdG90YWwgb3BlcmF0aW9ucyAgICAxLjc5MCDC sSAwLjAwME0vcwoKMi4yIGJlbmNoIHRyaWcta3Byb2JlCkl0ZXIgICAwICggNTAuNzAzdXMpOiBo aXRzICAgIDAuNzY1TS9zICggIDAuNzY1TS9wcm9kKSwgZHJvcHMgICAgMC4wMDBNL3MsIHRvdGFs IG9wZXJhdGlvbnMgICAgMC43NjVNL3MKSXRlciAgIDEgKC0xNS4wNTZ1cyk6IGhpdHMgICAgMC43 NzFNL3MgKCAgMC43NzFNL3Byb2QpLCBkcm9wcyAgICAwLjAwME0vcywgdG90YWwgb3BlcmF0aW9u cyAgICAwLjc3MU0vcwpJdGVyICAgMiAoICAyLjk4MXVzKTogaGl0cyAgICAwLjc3MU0vcyAoICAw Ljc3MU0vcHJvZCksIGRyb3BzICAgIDAuMDAwTS9zLCB0b3RhbCBvcGVyYXRpb25zICAgIDAuNzcx TS9zCkl0ZXIgICAzICggLTMuODM0dXMpOiBoaXRzICAgIDAuNzcxTS9zICggIDAuNzcxTS9wcm9k KSwgZHJvcHMgICAgMC4wMDBNL3MsIHRvdGFsIG9wZXJhdGlvbnMgICAgMC43NzFNL3MKSXRlciAg IDQgKCAtMS45NjR1cyk6IGhpdHMgICAgMC43NzFNL3MgKCAgMC43NzFNL3Byb2QpLCBkcm9wcyAg ICAwLjAwME0vcywgdG90YWwgb3BlcmF0aW9ucyAgICAwLjc3MU0vcwpJdGVyICAgNSAoICAwLjQy NnVzKTogaGl0cyAgICAwLjc3ME0vcyAoICAwLjc3ME0vcHJvZCksIGRyb3BzICAgIDAuMDAwTS9z LCB0b3RhbCBvcGVyYXRpb25zICAgIDAuNzcwTS9zCkl0ZXIgICA2ICggLTEuMjk3dXMpOiBoaXRz ICAgIDAuNzcxTS9zICggIDAuNzcxTS9wcm9kKSwgZHJvcHMgICAgMC4wMDBNL3MsIHRvdGFsIG9w ZXJhdGlvbnMgICAgMC43NzFNL3MKU3VtbWFyeTogaGl0cyAgICAwLjc3MSDCsSAwLjAwME0vcyAo ICAwLjc3MU0vcHJvZCksIGRyb3BzICAgIDAuMDAwIMKxIDAuMDAwTS9zLCB0b3RhbCBvcGVyYXRp b25zICAgIDAuNzcxIMKxIDAuMDAwTS9zCgoyLjIgYmVuY2ggdHJpZy1mZW50cnksIHdpdGggZGly ZWN0IGNhbGwKSXRlciAgIDAgKCA0OS45ODF1cyk6IGhpdHMgICAgMS4zNTdNL3MgKCAgMS4zNTdN L3Byb2QpLCBkcm9wcyAgICAwLjAwME0vcywgdG90YWwgb3BlcmF0aW9ucyAgICAxLjM1N00vcwpJ dGVyICAgMSAoICAyLjE4NHVzKTogaGl0cyAgICAxLjM2M00vcyAoICAxLjM2M00vcHJvZCksIGRy b3BzICAgIDAuMDAwTS9zLCB0b3RhbCBvcGVyYXRpb25zICAgIDEuMzYzTS9zCkl0ZXIgICAyICgt MTQuMTY3dXMpOiBoaXRzICAgIDEuMzU4TS9zICggIDEuMzU4TS9wcm9kKSwgZHJvcHMgICAgMC4w MDBNL3MsIHRvdGFsIG9wZXJhdGlvbnMgICAgMS4zNThNL3MKSXRlciAgIDMgKCAtNC44OTB1cyk6 IGhpdHMgICAgMS4zNjJNL3MgKCAgMS4zNjJNL3Byb2QpLCBkcm9wcyAgICAwLjAwME0vcywgdG90 YWwgb3BlcmF0aW9ucyAgICAxLjM2Mk0vcwpJdGVyICAgNCAoICA1Ljc1OXVzKTogaGl0cyAgICAx LjM2Mk0vcyAoICAxLjM2Mk0vcHJvZCksIGRyb3BzICAgIDAuMDAwTS9zLCB0b3RhbCBvcGVyYXRp b25zICAgIDEuMzYyTS9zCkl0ZXIgICA1ICggLTQuMzg5dXMpOiBoaXRzICAgIDEuMzYyTS9zICgg IDEuMzYyTS9wcm9kKSwgZHJvcHMgICAgMC4wMDBNL3MsIHRvdGFsIG9wZXJhdGlvbnMgICAgMS4z NjJNL3MKSXRlciAgIDYgKCAtMC41OTR1cyk6IGhpdHMgICAgMS4zNjRNL3MgKCAgMS4zNjRNL3By b2QpLCBkcm9wcyAgICAwLjAwME0vcywgdG90YWwgb3BlcmF0aW9ucyAgICAxLjM2NE0vcwpTdW1t YXJ5OiBoaXRzICAgIDEuMzYyIMKxIDAuMDAyTS9zICggIDEuMzYyTS9wcm9kKSwgZHJvcHMgICAg MC4wMDAgwrEgMC4wMDBNL3MsIHRvdGFsIG9wZXJhdGlvbnMgICAgMS4zNjIgwrEgMC4wMDJNL3MK CjIuMyBiZW5jaCB0cmlnLWZlbnRyeSwgd2l0aCBpbmRpcmVjdCBjYWxsCkl0ZXIgICAwICggNDku MTQ4dXMpOiBoaXRzICAgIDEuMDE0TS9zICggIDEuMDE0TS9wcm9kKSwgZHJvcHMgICAgMC4wMDBN L3MsIHRvdGFsIG9wZXJhdGlvbnMgICAgMS4wMTRNL3MKSXRlciAgIDEgKC0xMy44MTZ1cyk6IGhp dHMgICAgMS4wMjFNL3MgKCAgMS4wMjFNL3Byb2QpLCBkcm9wcyAgICAwLjAwME0vcywgdG90YWwg b3BlcmF0aW9ucyAgICAxLjAyMU0vcwpJdGVyICAgMiAoICAwLjY0OHVzKTogaGl0cyAgICAxLjAy MU0vcyAoICAxLjAyMU0vcHJvZCksIGRyb3BzICAgIDAuMDAwTS9zLCB0b3RhbCBvcGVyYXRpb25z ICAgIDEuMDIxTS9zCkl0ZXIgICAzICggIDMuMzcwdXMpOiBoaXRzICAgIDEuMDIxTS9zICggIDEu MDIxTS9wcm9kKSwgZHJvcHMgICAgMC4wMDBNL3MsIHRvdGFsIG9wZXJhdGlvbnMgICAgMS4wMjFN L3MKSXRlciAgIDQgKCAxMS4zODh1cyk6IGhpdHMgICAgMS4wMjFNL3MgKCAgMS4wMjFNL3Byb2Qp LCBkcm9wcyAgICAwLjAwME0vcywgdG90YWwgb3BlcmF0aW9ucyAgICAxLjAyMU0vcwpJdGVyICAg NSAoLTE3LjI0MnVzKTogaGl0cyAgICAxLjAyMk0vcyAoICAxLjAyMk0vcHJvZCksIGRyb3BzICAg IDAuMDAwTS9zLCB0b3RhbCBvcGVyYXRpb25zICAgIDEuMDIyTS9zCkl0ZXIgICA2ICggIDEuODE1 dXMpOiBoaXRzICAgIDEuMDIxTS9zICggIDEuMDIxTS9wcm9kKSwgZHJvcHMgICAgMC4wMDBNL3Ms IHRvdGFsIG9wZXJhdGlvbnMgICAgMS4wMjFNL3MKU3VtbWFyeTogaGl0cyAgICAxLjAyMSDCsSAw LjAwME0vcyAoICAxLjAyMU0vcHJvZCksIGRyb3BzICAgIDAuMDAwIMKxIDAuMDAwTS9zLCB0b3Rh bCBvcGVyYXRpb25zICAgIDEuMDIxIMKxIDAuMDAwTS9zCgo+IEkgZmlyc3QgdHJpZWQgdG8gaW1w bGVtZW50IHRoaXMgYXMgYW4gZnRyYWNlIG9wIG15c2VsZiBidXQgcmVhbGl6ZWQgSQo+IHdhcyBy ZS1pbXBsZW1lbnRpbmcgYSBsb3Qgb2YgdGhlIGZ1bmN0aW9uIGdyYXBoIHRyYWNlci4gU28gSSB0 aGVuCj4gdHJpZWQgdG8gdXNlIHRoZSBmdW5jdGlvbiBncmFwaCB0cmFjZXIgQVBJIGJ1dCByZWFs aXplZCBJIHdhcyBtaXNzaW5nCj4gc29tZSBmZWF0dXJlcyB3aGljaCBTdGV2ZW4gaGFkIGFkZHJl c3NlZCBpbiBhbiBSRkMgZmV3IHllYXJzIGJhY2suIFNvCj4gSSByZWJ1aWx0IG9uIHRoYXQgdW50 aWwgSSByZWFsaXplZCBNYXNhbWkgaGFzIGJlZW4gdXBzdHJlYW1pbmcgdGhlCj4gZnByb2JlIGFu ZCByZXRob29rIEFQSXMgYXMgc3Bpcml0dWFsIHN1Y2Nlc3NvcnMgb2YgU3RldmVuJ3MgUkZDLi4u IFNvCj4gSSd2ZSBub3cgcmVidWlsdCB5ZXQgYW5vdGhlciBwcm9vZiBvZiBjb25jZXB0IGJhc2Vk IG9uIGZwcm9iZSBhbmQKPiByZXRob29rLgo+IAo+IFRoYXQgYnJhbmNoIGlzIHN0aWxsIHZlcnkg bXVjaCBXSVAgYW5kIHRoZXJlIGFyZSBhIGZldyB0aGluZ3MgSSdkIGxpa2UKPiB0byBhZGRyZXNz IGJlZm9yZSBzZW5kaW5nIGV2ZW4gYW4gUkZDICh3aGVuIGtyZXRwcm9iZSBpcyBidWlsdCBvbgo+ IHJldGhvb2sgZm9yIGV4YW1wbGUsIEkgY29uc3RydWN0IHB0X3JlZ3Mgb24gdGhlIHN0YWNrIGlu IHdoaWNoIEkgY29weQo+IHRoZSBjb250ZW50IG9mIGZ0cmFjZV9yZWdzLi4uIG9yIHByb2dyYW0g bGlua2luZy91bmxpbmtpbmcgaXMgcmFjeQo+IHJpZ2h0IG5vdykgYnV0IEkgdGhpbmsgaXQncyBn b29kIGVub3VnaCBmb3IgcGVyZm9ybWFuY2UgbWVhc3VyZW1lbnRzCj4gYWxyZWFkeS4gKGZlbnRy eV9mZXhpdCBhbmQgbHNtIHRlc3RzIHBhc3MpCj4gCj4+PiBOb3RlIHRoYXQgYXMgYSBwcmVyZXF1 aXNpdGUgZm9yIHRoYXQgSSBhbHNvIHdhbnQgdG8gcmVkdWNlIHRoZSBzZXQgb2YgcmVnaXN0ZXJz Cj4+PiB3ZSBzYXZlL3Jlc3RvcmUgZG93biB0byB0aGUgc2V0IHJlcXVpcmVkIGJ5IG91ciBjYWxs aW5nIGNvbnZlbnRpb24sIGFzIHRoZQo+Pj4gZXhpc3RpbmcgcHRfcmVncyBpcyBib3RoIGxhcmdl IGFuZCBnZW5lcmFsbHkgdW5zb3VuZCAoc2luY2Ugd2UgY2FuIG5vdCBhbmQgZG8KPj4+IG5vdCBm aWxsIGluIG1hbnkgb2YgdGhlIGZpZWxkcyB3ZSBvbmx5IGFjcXVpcmUgYXQgYW4gZXhjZXB0aW9u IGJvdW5kYXJ5KS4KPj4+IFRoYXQnbGwgZnVydGhlciByZWR1Y2UgdGhlIGZ0cmFjZSBvdmVyaGVh ZCBnZW5lcmFsbHksIGFuZCByZW1vdmUgdGhlIG5lZWRzIGZvcgo+Pj4gdGhlIHR3byB0cmFtcG9s aW5lcyB3ZSBjdXJyZW50bHkgaGF2ZS4gSSBoYXZlIGEgV0lQIGF0Ogo+Pj4KPj4+ICAgICBodHRw czovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2VybmVsL2dpdC9tYXJrL2xpbnV4Lmdp dC9sb2cvP2g9YXJtNjQvZnRyYWNlL21pbmltYWwtcmVncwo+IAo+IE5vdGUgdGhhdCBJIGludGVn cmF0ZWQgdGhpcyB3b3JrIHRvIG15IGJyYW5jaCB0b28uIEkgZXh0ZW5kZWQgaXQgdG8KPiBhbHNv IGhhdmUgZnByb2JlIGFuZCByZXRob29rIHNhdmUgYW5kIHBhc3MgZnRyYWNlX3JlZ3Mgc3RydWN0 dXJlcyB0bwo+IHRoZWlyIGNhbGxiYWNrcy4gTW9zdCBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMg d291bGQgY29tZSBmcm9tIHlvdXIKPiBhcm02NC9mdHJhY2UvcGVyLWNhbGxzaXRlLW9wcyBicmFu Y2ggYnV0IHdlJ2QgbmVlZCB0byBmaXggdGhlIGFib3ZlCj4gVE9ETyBmb3IgaXQgdG8gd29yay4K PiAKPj4+IEkgaW50ZW5kIHRvIGdldCBiYWNrIHRvIGJvdGggb2YgdGhvc2Ugc2hvcnRseSAoYWxv bmcgd2l0aCBzb21lIHJlbGF0ZWQgYml0cyBmb3IKPj4+IGtyZXRwcm9iZXMgYW5kIHN0YWNrdHJh Y2luZyk7IEkganVzdCBoYXZlbid0IGhhZCBtdWNoIHRpbWUgcmVjZW50bHkgZHVlIHRvCj4+PiBv dGhlciB3b3JrIGFuZCBpbGxuZXNzLgo+Pj4KPj4KPj4gU29ycnkgZm9yIHRoYXQsIGhvcGUgeW91 IGdldHRpbmcgYmV0dGVyIHNvb24uCj4gCj4gT2gsIHRoYXQgc3Vja3MuIEdldCBiZXR0ZXIgTWFy ayEKPiAuCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K bGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZy YWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGlu dXgtYXJtLWtlcm5lbAo=