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=-5.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SIGNED_OFF_BY,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 33896C43331 for ; Sat, 7 Sep 2019 10:05:51 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 16CCE20854 for ; Sat, 7 Sep 2019 10:05:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730171AbfIGKFu (ORCPT ); Sat, 7 Sep 2019 06:05:50 -0400 Received: from foss.arm.com ([217.140.110.172]:35908 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726012AbfIGKFt (ORCPT ); Sat, 7 Sep 2019 06:05:49 -0400 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 DA1641576; Sat, 7 Sep 2019 03:05:48 -0700 (PDT) Received: from [10.37.12.3] (unknown [10.37.12.3]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 85A3F3F59C; Sat, 7 Sep 2019 03:05:46 -0700 (PDT) Subject: Re: [Xen-devel] [PATCH] ARM: xen: unexport HYPERVISOR_platform_op function To: Andrew Cooper , Arnd Bergmann Cc: Stefano Stabellini , Emil Velikov , Russell King , Denis Efremov , "linux-kernel@vger.kernel.org" , Masahiro Yamada , xen-devel , Linux ARM References: <20190906153948.2160342-1-arnd@arndb.de> <7abad95e-ea47-c068-d91c-ba503f2530b9@citrix.com> From: Julien Grall Message-ID: <95dbd972-fe78-d0ca-f7b4-1a6bdd418eab@arm.com> Date: Sat, 7 Sep 2019 11:05:45 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Andrew, On 9/6/19 6:20 PM, Andrew Cooper wrote: > On 06/09/2019 17:00, Arnd Bergmann wrote: >> On Fri, Sep 6, 2019 at 5:55 PM Andrew Cooper wrote: >>> On 06/09/2019 16:39, Arnd Bergmann wrote: >>>> HYPERVISOR_platform_op() is an inline function and should not >>>> be exported. Since commit 15bfc2348d54 ("modpost: check for >>>> static EXPORT_SYMBOL* functions"), this causes a warning: >>>> >>>> WARNING: "HYPERVISOR_platform_op" [vmlinux] is a static EXPORT_SYMBOL_GPL >>>> >>>> Remove the extraneous export. >>>> >>>> Fixes: 15bfc2348d54 ("modpost: check for static EXPORT_SYMBOL* functions") >>>> Signed-off-by: Arnd Bergmann >>> Something is wonky. That symbol is (/ really ought to be) in the >>> hypercall page and most definitely not inline. >>> >>> Which tree is that changeset from? I can't find the SHA. >> This is from linux-next, I think from the kbuild tree. > > Thanks. > > Julien/Stefano: Why are any of these hypercalls out-of-line?  ARM > doesn't use the hypercall page, and there is no argument translation > (not even in arm32 as there are no 5-argument hypercalls declared). I am not sure how the hypercall page makes things different. You still have to store the arguments in the correct register so... > > They'd surely be easier to implement with a few static inlines and some > common code, than to try and replicate the x86 side hypercall_page > interface ? ... I don't think they will be easier to implement with a few static inlines. The implementation will likely end up to be similar to arch/x86/asm/xen/hypercall.h. Furthermore, one of the downside of per-arch static inline is it is more difficult to ensure the prototype match for all the architectures. Although, it might be possible to make them common by only requesting per-arch to implement HYPERCALL_N(...). So I think the code is better as it is. While looking at the code, I also realized that the implementation of HYPERCALL_dm_op might be incorrect for Arm32. Similarly do privcmd call, I think dm_op call should enable user access as they will be used by userspace. We don't use dm_op on Arm so far, hence why I think this was unnoticed. I will see if I can reproduce it and send a patch. Cheers, -- Julien Grall 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=-5.3 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 0E8CDC43331 for ; Sat, 7 Sep 2019 10:06:00 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id CE83320854 for ; Sat, 7 Sep 2019 10:05:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="TVR4mMTD" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CE83320854 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-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=bombadil.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=JcPvCBz//EiIx+AuGzXXsCppRx9ECi3rPL0HHXrG7OI=; b=TVR4mMTDdZKRBMcZI4hTtuvTM wk6h7G1LuVsZ/SYl8Rv9/ejrd7ZtYMwBS+Oc6s2YyCkcJ8u51LROPj/kRrIOdSDnLr6+Yfh+LfaN7 WNPitjIa9/34Qpf4VWq79lJRUh0GYi+LKdQAJWHfOt2dCMf6fSI/VU8jHKwqo7U+FtescwtQE7UAP GYlJ00Pyc5I5Hz8Mql5s6DHDKzDGvgwk8NchSUaDDBqPeTyGg2NfbTSMcAstzNEL+1uxp151nGhFk JMFFP9shVxOrUne4YmnxdWCYJs476FfSceRTyMfJBcUBbAmLCYo9FF2ZRce4Tic4htn0s7EHLjeIB j/yYBX2oA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1i6XbP-0002DU-60; Sat, 07 Sep 2019 10:05:55 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1i6XbM-0002DB-7E for linux-arm-kernel@lists.infradead.org; Sat, 07 Sep 2019 10:05:53 +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 DA1641576; Sat, 7 Sep 2019 03:05:48 -0700 (PDT) Received: from [10.37.12.3] (unknown [10.37.12.3]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 85A3F3F59C; Sat, 7 Sep 2019 03:05:46 -0700 (PDT) Subject: Re: [Xen-devel] [PATCH] ARM: xen: unexport HYPERVISOR_platform_op function To: Andrew Cooper , Arnd Bergmann References: <20190906153948.2160342-1-arnd@arndb.de> <7abad95e-ea47-c068-d91c-ba503f2530b9@citrix.com> From: Julien Grall Message-ID: <95dbd972-fe78-d0ca-f7b4-1a6bdd418eab@arm.com> Date: Sat, 7 Sep 2019 11:05:45 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190907_030552_308510_6DC40B4A X-CRM114-Status: GOOD ( 18.96 ) 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: Stefano Stabellini , Emil Velikov , Russell King , Denis Efremov , "linux-kernel@vger.kernel.org" , Masahiro Yamada , xen-devel , Linux ARM Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgQW5kcmV3LAoKT24gOS82LzE5IDY6MjAgUE0sIEFuZHJldyBDb29wZXIgd3JvdGU6Cj4gT24g MDYvMDkvMjAxOSAxNzowMCwgQXJuZCBCZXJnbWFubiB3cm90ZToKPj4gT24gRnJpLCBTZXAgNiwg MjAxOSBhdCA1OjU1IFBNIEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ IHdyb3RlOgo+Pj4gT24gMDYvMDkvMjAxOSAxNjozOSwgQXJuZCBCZXJnbWFubiB3cm90ZToKPj4+ PiBIWVBFUlZJU09SX3BsYXRmb3JtX29wKCkgaXMgYW4gaW5saW5lIGZ1bmN0aW9uIGFuZCBzaG91 bGQgbm90Cj4+Pj4gYmUgZXhwb3J0ZWQuIFNpbmNlIGNvbW1pdCAxNWJmYzIzNDhkNTQgKCJtb2Rw b3N0OiBjaGVjayBmb3IKPj4+PiBzdGF0aWMgRVhQT1JUX1NZTUJPTCogZnVuY3Rpb25zIiksIHRo aXMgY2F1c2VzIGEgd2FybmluZzoKPj4+Pgo+Pj4+IFdBUk5JTkc6ICJIWVBFUlZJU09SX3BsYXRm b3JtX29wIiBbdm1saW51eF0gaXMgYSBzdGF0aWMgRVhQT1JUX1NZTUJPTF9HUEwKPj4+Pgo+Pj4+ IFJlbW92ZSB0aGUgZXh0cmFuZW91cyBleHBvcnQuCj4+Pj4KPj4+PiBGaXhlczogMTViZmMyMzQ4 ZDU0ICgibW9kcG9zdDogY2hlY2sgZm9yIHN0YXRpYyBFWFBPUlRfU1lNQk9MKiBmdW5jdGlvbnMi KQo+Pj4+IFNpZ25lZC1vZmYtYnk6IEFybmQgQmVyZ21hbm4gPGFybmRAYXJuZGIuZGU+Cj4+PiBT b21ldGhpbmcgaXMgd29ua3kuICBUaGF0IHN5bWJvbCBpcyAoLyByZWFsbHkgb3VnaHQgdG8gYmUp IGluIHRoZQo+Pj4gaHlwZXJjYWxsIHBhZ2UgYW5kIG1vc3QgZGVmaW5pdGVseSBub3QgaW5saW5l Lgo+Pj4KPj4+IFdoaWNoIHRyZWUgaXMgdGhhdCBjaGFuZ2VzZXQgZnJvbT8gIEkgY2FuJ3QgZmlu ZCB0aGUgU0hBLgo+PiBUaGlzIGlzIGZyb20gbGludXgtbmV4dCwgSSB0aGluayBmcm9tIHRoZSBr YnVpbGQgdHJlZS4KPiAKPiBUaGFua3MuCj4gCj4gSnVsaWVuL1N0ZWZhbm86IFdoeSBhcmUgYW55 IG9mIHRoZXNlIGh5cGVyY2FsbHMgb3V0LW9mLWxpbmU/wqAgQVJNCj4gZG9lc24ndCB1c2UgdGhl IGh5cGVyY2FsbCBwYWdlLCBhbmQgdGhlcmUgaXMgbm8gYXJndW1lbnQgdHJhbnNsYXRpb24KPiAo bm90IGV2ZW4gaW4gYXJtMzIgYXMgdGhlcmUgYXJlIG5vIDUtYXJndW1lbnQgaHlwZXJjYWxscyBk ZWNsYXJlZCkuCgpJIGFtIG5vdCBzdXJlIGhvdyB0aGUgaHlwZXJjYWxsIHBhZ2UgbWFrZXMgdGhp bmdzIGRpZmZlcmVudC4gWW91IHN0aWxsIApoYXZlIHRvIHN0b3JlIHRoZSBhcmd1bWVudHMgaW4g dGhlIGNvcnJlY3QgcmVnaXN0ZXIgc28uLi4KCj4gCj4gVGhleSdkIHN1cmVseSBiZSBlYXNpZXIg dG8gaW1wbGVtZW50IHdpdGggYSBmZXcgc3RhdGljIGlubGluZXMgYW5kIHNvbWUKPiBjb21tb24g Y29kZSwgdGhhbiB0byB0cnkgYW5kIHJlcGxpY2F0ZSB0aGUgeDg2IHNpZGUgaHlwZXJjYWxsX3Bh Z2UKPiBpbnRlcmZhY2UgPwoKLi4uIEkgZG9uJ3QgdGhpbmsgdGhleSB3aWxsIGJlIGVhc2llciB0 byBpbXBsZW1lbnQgd2l0aCBhIGZldyBzdGF0aWMgCmlubGluZXMuIFRoZSBpbXBsZW1lbnRhdGlv biB3aWxsIGxpa2VseSBlbmQgdXAgdG8gYmUgc2ltaWxhciB0byAKYXJjaC94ODYvYXNtL3hlbi9o eXBlcmNhbGwuaC4KCkZ1cnRoZXJtb3JlLCBvbmUgb2YgdGhlIGRvd25zaWRlIG9mIHBlci1hcmNo IHN0YXRpYyBpbmxpbmUgaXMgaXQgaXMgbW9yZSAKZGlmZmljdWx0IHRvIGVuc3VyZSB0aGUgcHJv dG90eXBlIG1hdGNoIGZvciBhbGwgdGhlIGFyY2hpdGVjdHVyZXMuIApBbHRob3VnaCwgaXQgbWln aHQgYmUgcG9zc2libGUgdG8gbWFrZSB0aGVtIGNvbW1vbiBieSBvbmx5IHJlcXVlc3RpbmcgCnBl ci1hcmNoIHRvIGltcGxlbWVudCBIWVBFUkNBTExfTiguLi4pLgoKU28gSSB0aGluayB0aGUgY29k ZSBpcyBiZXR0ZXIgYXMgaXQgaXMuCgpXaGlsZSBsb29raW5nIGF0IHRoZSBjb2RlLCBJIGFsc28g cmVhbGl6ZWQgdGhhdCB0aGUgaW1wbGVtZW50YXRpb24gb2YgCkhZUEVSQ0FMTF9kbV9vcCBtaWdo dCBiZSBpbmNvcnJlY3QgZm9yIEFybTMyLiBTaW1pbGFybHkgZG8gcHJpdmNtZCBjYWxsLCAKSSB0 aGluayBkbV9vcCBjYWxsIHNob3VsZCBlbmFibGUgdXNlciBhY2Nlc3MgYXMgdGhleSB3aWxsIGJl IHVzZWQgYnkgCnVzZXJzcGFjZS4KCldlIGRvbid0IHVzZSBkbV9vcCBvbiBBcm0gc28gZmFyLCBo ZW5jZSB3aHkgSSB0aGluayB0aGlzIHdhcyB1bm5vdGljZWQuIApJIHdpbGwgc2VlIGlmIEkgY2Fu IHJlcHJvZHVjZSBpdCBhbmQgc2VuZCBhIHBhdGNoLgoKQ2hlZXJzLAoKLS0gCkp1bGllbiBHcmFs bAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgt YXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQu b3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJt LWtlcm5lbAo= 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=-5.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=unavailable 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 76D64C43331 for ; Sat, 7 Sep 2019 10:06:36 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (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 5003120854 for ; Sat, 7 Sep 2019 10:06:36 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5003120854 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i6XbO-0003VQ-7l; Sat, 07 Sep 2019 10:05:54 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i6XbM-0003VL-Id for xen-devel@lists.xenproject.org; Sat, 07 Sep 2019 10:05:52 +0000 X-Inumbo-ID: 113d68b2-d157-11e9-abfd-12813bfff9fa Received: from foss.arm.com (unknown [217.140.110.172]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTP id 113d68b2-d157-11e9-abfd-12813bfff9fa; Sat, 07 Sep 2019 10:05:49 +0000 (UTC) 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 DA1641576; Sat, 7 Sep 2019 03:05:48 -0700 (PDT) Received: from [10.37.12.3] (unknown [10.37.12.3]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 85A3F3F59C; Sat, 7 Sep 2019 03:05:46 -0700 (PDT) To: Andrew Cooper , Arnd Bergmann References: <20190906153948.2160342-1-arnd@arndb.de> <7abad95e-ea47-c068-d91c-ba503f2530b9@citrix.com> From: Julien Grall Message-ID: <95dbd972-fe78-d0ca-f7b4-1a6bdd418eab@arm.com> Date: Sat, 7 Sep 2019 11:05:45 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US Subject: Re: [Xen-devel] [PATCH] ARM: xen: unexport HYPERVISOR_platform_op function X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Stefano Stabellini , Emil Velikov , Russell King , Denis Efremov , "linux-kernel@vger.kernel.org" , Masahiro Yamada , xen-devel , Linux ARM Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" SGkgQW5kcmV3LAoKT24gOS82LzE5IDY6MjAgUE0sIEFuZHJldyBDb29wZXIgd3JvdGU6Cj4gT24g MDYvMDkvMjAxOSAxNzowMCwgQXJuZCBCZXJnbWFubiB3cm90ZToKPj4gT24gRnJpLCBTZXAgNiwg MjAxOSBhdCA1OjU1IFBNIEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+ IHdyb3RlOgo+Pj4gT24gMDYvMDkvMjAxOSAxNjozOSwgQXJuZCBCZXJnbWFubiB3cm90ZToKPj4+ PiBIWVBFUlZJU09SX3BsYXRmb3JtX29wKCkgaXMgYW4gaW5saW5lIGZ1bmN0aW9uIGFuZCBzaG91 bGQgbm90Cj4+Pj4gYmUgZXhwb3J0ZWQuIFNpbmNlIGNvbW1pdCAxNWJmYzIzNDhkNTQgKCJtb2Rw b3N0OiBjaGVjayBmb3IKPj4+PiBzdGF0aWMgRVhQT1JUX1NZTUJPTCogZnVuY3Rpb25zIiksIHRo aXMgY2F1c2VzIGEgd2FybmluZzoKPj4+Pgo+Pj4+IFdBUk5JTkc6ICJIWVBFUlZJU09SX3BsYXRm b3JtX29wIiBbdm1saW51eF0gaXMgYSBzdGF0aWMgRVhQT1JUX1NZTUJPTF9HUEwKPj4+Pgo+Pj4+ IFJlbW92ZSB0aGUgZXh0cmFuZW91cyBleHBvcnQuCj4+Pj4KPj4+PiBGaXhlczogMTViZmMyMzQ4 ZDU0ICgibW9kcG9zdDogY2hlY2sgZm9yIHN0YXRpYyBFWFBPUlRfU1lNQk9MKiBmdW5jdGlvbnMi KQo+Pj4+IFNpZ25lZC1vZmYtYnk6IEFybmQgQmVyZ21hbm4gPGFybmRAYXJuZGIuZGU+Cj4+PiBT b21ldGhpbmcgaXMgd29ua3kuICBUaGF0IHN5bWJvbCBpcyAoLyByZWFsbHkgb3VnaHQgdG8gYmUp IGluIHRoZQo+Pj4gaHlwZXJjYWxsIHBhZ2UgYW5kIG1vc3QgZGVmaW5pdGVseSBub3QgaW5saW5l Lgo+Pj4KPj4+IFdoaWNoIHRyZWUgaXMgdGhhdCBjaGFuZ2VzZXQgZnJvbT8gIEkgY2FuJ3QgZmlu ZCB0aGUgU0hBLgo+PiBUaGlzIGlzIGZyb20gbGludXgtbmV4dCwgSSB0aGluayBmcm9tIHRoZSBr YnVpbGQgdHJlZS4KPiAKPiBUaGFua3MuCj4gCj4gSnVsaWVuL1N0ZWZhbm86IFdoeSBhcmUgYW55 IG9mIHRoZXNlIGh5cGVyY2FsbHMgb3V0LW9mLWxpbmU/wqAgQVJNCj4gZG9lc24ndCB1c2UgdGhl IGh5cGVyY2FsbCBwYWdlLCBhbmQgdGhlcmUgaXMgbm8gYXJndW1lbnQgdHJhbnNsYXRpb24KPiAo bm90IGV2ZW4gaW4gYXJtMzIgYXMgdGhlcmUgYXJlIG5vIDUtYXJndW1lbnQgaHlwZXJjYWxscyBk ZWNsYXJlZCkuCgpJIGFtIG5vdCBzdXJlIGhvdyB0aGUgaHlwZXJjYWxsIHBhZ2UgbWFrZXMgdGhp bmdzIGRpZmZlcmVudC4gWW91IHN0aWxsIApoYXZlIHRvIHN0b3JlIHRoZSBhcmd1bWVudHMgaW4g dGhlIGNvcnJlY3QgcmVnaXN0ZXIgc28uLi4KCj4gCj4gVGhleSdkIHN1cmVseSBiZSBlYXNpZXIg dG8gaW1wbGVtZW50IHdpdGggYSBmZXcgc3RhdGljIGlubGluZXMgYW5kIHNvbWUKPiBjb21tb24g Y29kZSwgdGhhbiB0byB0cnkgYW5kIHJlcGxpY2F0ZSB0aGUgeDg2IHNpZGUgaHlwZXJjYWxsX3Bh Z2UKPiBpbnRlcmZhY2UgPwoKLi4uIEkgZG9uJ3QgdGhpbmsgdGhleSB3aWxsIGJlIGVhc2llciB0 byBpbXBsZW1lbnQgd2l0aCBhIGZldyBzdGF0aWMgCmlubGluZXMuIFRoZSBpbXBsZW1lbnRhdGlv biB3aWxsIGxpa2VseSBlbmQgdXAgdG8gYmUgc2ltaWxhciB0byAKYXJjaC94ODYvYXNtL3hlbi9o eXBlcmNhbGwuaC4KCkZ1cnRoZXJtb3JlLCBvbmUgb2YgdGhlIGRvd25zaWRlIG9mIHBlci1hcmNo IHN0YXRpYyBpbmxpbmUgaXMgaXQgaXMgbW9yZSAKZGlmZmljdWx0IHRvIGVuc3VyZSB0aGUgcHJv dG90eXBlIG1hdGNoIGZvciBhbGwgdGhlIGFyY2hpdGVjdHVyZXMuIApBbHRob3VnaCwgaXQgbWln aHQgYmUgcG9zc2libGUgdG8gbWFrZSB0aGVtIGNvbW1vbiBieSBvbmx5IHJlcXVlc3RpbmcgCnBl ci1hcmNoIHRvIGltcGxlbWVudCBIWVBFUkNBTExfTiguLi4pLgoKU28gSSB0aGluayB0aGUgY29k ZSBpcyBiZXR0ZXIgYXMgaXQgaXMuCgpXaGlsZSBsb29raW5nIGF0IHRoZSBjb2RlLCBJIGFsc28g cmVhbGl6ZWQgdGhhdCB0aGUgaW1wbGVtZW50YXRpb24gb2YgCkhZUEVSQ0FMTF9kbV9vcCBtaWdo dCBiZSBpbmNvcnJlY3QgZm9yIEFybTMyLiBTaW1pbGFybHkgZG8gcHJpdmNtZCBjYWxsLCAKSSB0 aGluayBkbV9vcCBjYWxsIHNob3VsZCBlbmFibGUgdXNlciBhY2Nlc3MgYXMgdGhleSB3aWxsIGJl IHVzZWQgYnkgCnVzZXJzcGFjZS4KCldlIGRvbid0IHVzZSBkbV9vcCBvbiBBcm0gc28gZmFyLCBo ZW5jZSB3aHkgSSB0aGluayB0aGlzIHdhcyB1bm5vdGljZWQuIApJIHdpbGwgc2VlIGlmIEkgY2Fu IHJlcHJvZHVjZSBpdCBhbmQgc2VuZCBhIHBhdGNoLgoKQ2hlZXJzLAoKLS0gCkp1bGllbiBHcmFs bAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRl dmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9s aXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==