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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2AB22C77B7E for ; Sun, 28 May 2023 08:49:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229520AbjE1Isv (ORCPT ); Sun, 28 May 2023 04:48:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47762 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229473AbjE1Iss (ORCPT ); Sun, 28 May 2023 04:48:48 -0400 Received: from wout2-smtp.messagingengine.com (wout2-smtp.messagingengine.com [64.147.123.25]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7A628C7; Sun, 28 May 2023 01:48:46 -0700 (PDT) Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailout.west.internal (Postfix) with ESMTP id C1A2032007F9; Sun, 28 May 2023 04:48:42 -0400 (EDT) Received: from imap51 ([10.202.2.101]) by compute6.internal (MEProxy); Sun, 28 May 2023 04:48:43 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arndb.de; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to; s=fm3; t= 1685263722; x=1685350122; bh=dbKqJffHV3+pecTgDfQClj4wiqdZaANtKaF kt+SsH/g=; b=Tv2E3uUrtLBy2QKoeONeldiMNdpg6aLqu8QF/rrkSiRLOT5cjz0 2fLEpW8vyASR9mA3Mzhiwn5BKVclmpDPSvvdUz1pqLqc+UlLvp+7EeoDWvZxeOky NuvYJ28OhKIEpaiWcNzX9px7nKR1cSuyM7JsuaufiR86tRSF/jCtD2Si3oAWgiiQ e5vgjq3f5m7XAMidY7sVwI3AthMTozE72BYNJVL4iW/WBlU5s+iJTKPHm0aNd2HN NcU+WiDRDFT1ATeGVcD1pbiLzAaVnldpvkK/J1qdaTM904TPIV2+omWuF3bLE63B I+jevwj+8OG9bndinGMoQWxSMvU5qv0cM/Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t= 1685263722; x=1685350122; bh=dbKqJffHV3+pecTgDfQClj4wiqdZaANtKaF kt+SsH/g=; b=hG00OSxux0WIwOwHpOeMTe5riqTGkenybsGeCByKaiWIvN62/9/ NvHEYkxgZhltRf4xLvurXskOkmxEkcAEAdKFXGiXldB1NUZShjGuWTwP8kaELdXl G8KbzNVfqBkxkyerJOjeicPbkOleoOJ6t9KDYIucpJE885ydoD9O/Cf6dS7NJL/n g4JCMrrFxRjcwyv4+QOk/cT9Ddgc8AUG+/PSX1GGzJ1hVzCSHsc5odl6KnUzzGgk BVLU7xg5kMhguVjlin6maI6NJ2LohbyRLT7a1IGXMeUOe+UhgRLKZazZ6TW8rIF0 tUNOFS4b8Uk7W142wq100n/IiEVL+Hzc7Fg== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrfeekfedgtdekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepofgfggfkjghffffhvfevufgtgfesthhqredtreerjeenucfhrhhomhepfdet rhhnugcuuegvrhhgmhgrnhhnfdcuoegrrhhnugesrghrnhgusgdruggvqeenucggtffrrg htthgvrhhnpeegfeejhedvledvffeijeeijeeivddvhfeliedvleevheejleetgedukedt gfejveenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe grrhhnugesrghrnhgusgdruggv X-ME-Proxy: Feedback-ID: i56a14606:Fastmail Received: by mailuser.nyi.internal (Postfix, from userid 501) id F404DB60086; Sun, 28 May 2023 04:48:41 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.9.0-alpha0-441-ga3ab13cd6d-fm-20230517.001-ga3ab13cd Mime-Version: 1.0 Message-Id: <9e4064fc-f0c5-4dd3-941f-344d2150e1cd@app.fastmail.com> In-Reply-To: <20230528082509.293250-1-falcon@tinylab.org> References: <83ab9f47-e1ed-463c-a717-26aad6bf2b71@app.fastmail.com> <20230528082509.293250-1-falcon@tinylab.org> Date: Sun, 28 May 2023 10:48:21 +0200 From: "Arnd Bergmann" To: "Zhangjin Wu" , =?UTF-8?Q?Thomas_Wei=C3=9Fschuh?= , "Willy Tarreau" Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-riscv@lists.infradead.org, "Palmer Dabbelt" , "Paul Walmsley" Subject: Re: [PATCH 09/13] tools/nolibc: sys_poll: riscv: use __NR_ppoll_time64 for rv32 Content-Type: text/plain;charset=utf-8 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, May 28, 2023, at 10:25, Zhangjin Wu wrote: >> On Fri, May 26, 2023, at 09:15, Thomas Wei=3DC3=3D9Fschuh wrote: > * Use __NR_*time64 for all 32bit platforms > * Use __NR_pselect6/ppoll/clock_gettime only for 64bit platforms > * New sizeof tests added to verify off_t, time_t, timespec, itimerspec= ... > > CASE_TEST(sizeof_time_t); EXPECT_EQ(1, 8, =20 > sizeof(time_t)); break; > CASE_TEST(sizeof_timespec); EXPECT_EQ(1, 16, =20 > sizeof(struct timespec)); break; > #ifdef NOLIBC > CASE_TEST(sizeof_itimerspec); EXPECT_EQ(1, 32, =20 > sizeof(struct itimerspec)); break; > #endif > CASE_TEST(sizeof_timeval); EXPECT_EQ(1, 16, =20 > sizeof(struct timeval)); break; > CASE_TEST(sizeof_itimerval); EXPECT_EQ(1, 32, =20 > sizeof(struct itimerval)); break; > CASE_TEST(sizeof_off_t); EXPECT_EQ(1, 8, =20 > sizeof(off_t)); break; > > > @Arnd, the above timeval/itimerval definitions are used to override th= e ones > from linux/time.h to avoid such error: > > error: redefinition of =E2=80=98struct timeval=E2=80=99 > > nolibc/sysroot/riscv/include/types.h:225:8: error: redefinition of=20 > =E2=80=98struct timeval=E2=80=99 > 225 | struct timeval { > | ^~~~~~~ > In file included from nolibc/sysroot/riscv/include/types.h:11, > from nolibc/sysroot/riscv/include/nolibc.h:98, > from nolibc/sysroot/riscv/include/errno.h:26, > from nolibc/sysroot/riscv/include/stdio.h:14, > from=20 > tools/testing/selftests/nolibc/nolibc-test.c:12: > nolibc/sysroot/riscv/include/linux/time.h:16:8: note: originally=20 > defined here > 16 | struct timeval { > > @Arnd, As you commented in another reply, is it time for us to update > include/uapi/linux/time.h together and let it provide time64 timeval/i= timerval > instead of the old ones? perhaps some libc's are still using them. It's hard to know if anything is using it until we try. On the other hand, we also know that anything still relying on it is going to be increasingly broken on 32-bit architectures over as we get closer to y2038, so we can just try removing these here to see what happens. > Or perhaps we can add a switch like __ARCH_WANT_TIME32_SYSCALLS, add a > __ARCH_WANT_TIME32_STRUCTS and simply bind it with __ARCH_WANT_TIME32_= SYSCALLS? I don't like that idea: __ARCH_WANT_TIME32_SYSCALLS tells us that an architeture still provides those syscalls for compatibility, so that is architecture specific, but __ARCH_WANT_TIME32_STRUCTS is not something that is an architecture specific decision at all, it's only needed for old source code. > About the above ugly override code, What's your suggestion in v2? ;-) Can you maybe just remove the "#include " from all include/uapi/ and nolibc headers so it just never gets seen? Unfortunately I see the header contains a few other definitions, which might have to get moved out of the way, possibly to linux/time_types.h. Arnd 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 5293CC7EE2C for ; Sun, 28 May 2023 08:48:57 +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:Subject:Cc:To:From:Date:References: In-Reply-To:Message-Id:Mime-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=9SuvMqFdI042pAe0Q25kb9d3eM0htOv9AwxQdS/3zhg=; b=0bgl3HWfjRiRbh mN6cTZ24USx3crcOWHGWBHGU7AgCykXFnmzri2q/xj1KPGGgQjNXTzrLFZT2h7s9nr+eTPk0u4o/P llIs/RyGXzP9ijpHOZl9zjtQ0tIXfh1N4gkUYtYKaIGeuaSoh5PIDv989z9Z1nYUmOSV/O7XRNFtg QXB/RYVyOtaB2RaiLy2awpm67G4dMLwPkbc1BEybAfDnA9JDVLstzWbaKTm02kXIGSzpSx196YgKP 4CGfCI0z32oIas+2G0HoWHBFOWBg8X2NkzHHSJX2NTCIymcOlyONWX/hMbOjeE2lPWjeU/UxOOsEK jGjoulexgFjwjSgPV36Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q3C55-007DKs-2b; Sun, 28 May 2023 08:48:51 +0000 Received: from wout2-smtp.messagingengine.com ([64.147.123.25]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1q3C51-007DIW-1w for linux-riscv@lists.infradead.org; Sun, 28 May 2023 08:48:49 +0000 Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailout.west.internal (Postfix) with ESMTP id C1A2032007F9; Sun, 28 May 2023 04:48:42 -0400 (EDT) Received: from imap51 ([10.202.2.101]) by compute6.internal (MEProxy); Sun, 28 May 2023 04:48:43 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arndb.de; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to; s=fm3; t= 1685263722; x=1685350122; bh=dbKqJffHV3+pecTgDfQClj4wiqdZaANtKaF kt+SsH/g=; b=Tv2E3uUrtLBy2QKoeONeldiMNdpg6aLqu8QF/rrkSiRLOT5cjz0 2fLEpW8vyASR9mA3Mzhiwn5BKVclmpDPSvvdUz1pqLqc+UlLvp+7EeoDWvZxeOky NuvYJ28OhKIEpaiWcNzX9px7nKR1cSuyM7JsuaufiR86tRSF/jCtD2Si3oAWgiiQ e5vgjq3f5m7XAMidY7sVwI3AthMTozE72BYNJVL4iW/WBlU5s+iJTKPHm0aNd2HN NcU+WiDRDFT1ATeGVcD1pbiLzAaVnldpvkK/J1qdaTM904TPIV2+omWuF3bLE63B I+jevwj+8OG9bndinGMoQWxSMvU5qv0cM/Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t= 1685263722; x=1685350122; bh=dbKqJffHV3+pecTgDfQClj4wiqdZaANtKaF kt+SsH/g=; b=hG00OSxux0WIwOwHpOeMTe5riqTGkenybsGeCByKaiWIvN62/9/ NvHEYkxgZhltRf4xLvurXskOkmxEkcAEAdKFXGiXldB1NUZShjGuWTwP8kaELdXl G8KbzNVfqBkxkyerJOjeicPbkOleoOJ6t9KDYIucpJE885ydoD9O/Cf6dS7NJL/n g4JCMrrFxRjcwyv4+QOk/cT9Ddgc8AUG+/PSX1GGzJ1hVzCSHsc5odl6KnUzzGgk BVLU7xg5kMhguVjlin6maI6NJ2LohbyRLT7a1IGXMeUOe+UhgRLKZazZ6TW8rIF0 tUNOFS4b8Uk7W142wq100n/IiEVL+Hzc7Fg== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrfeekfedgtdekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepofgfggfkjghffffhvfevufgtgfesthhqredtreerjeenucfhrhhomhepfdet rhhnugcuuegvrhhgmhgrnhhnfdcuoegrrhhnugesrghrnhgusgdruggvqeenucggtffrrg htthgvrhhnpeegfeejhedvledvffeijeeijeeivddvhfeliedvleevheejleetgedukedt gfejveenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe grrhhnugesrghrnhgusgdruggv X-ME-Proxy: Feedback-ID: i56a14606:Fastmail Received: by mailuser.nyi.internal (Postfix, from userid 501) id F404DB60086; Sun, 28 May 2023 04:48:41 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.9.0-alpha0-441-ga3ab13cd6d-fm-20230517.001-ga3ab13cd Mime-Version: 1.0 Message-Id: <9e4064fc-f0c5-4dd3-941f-344d2150e1cd@app.fastmail.com> In-Reply-To: <20230528082509.293250-1-falcon@tinylab.org> References: <83ab9f47-e1ed-463c-a717-26aad6bf2b71@app.fastmail.com> <20230528082509.293250-1-falcon@tinylab.org> Date: Sun, 28 May 2023 10:48:21 +0200 From: "Arnd Bergmann" To: "Zhangjin Wu" , =?UTF-8?Q?Thomas_Wei=C3=9Fschuh?= , "Willy Tarreau" Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-riscv@lists.infradead.org, "Palmer Dabbelt" , "Paul Walmsley" Subject: Re: [PATCH 09/13] tools/nolibc: sys_poll: riscv: use __NR_ppoll_time64 for rv32 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230528_014848_086762_1259F7DD X-CRM114-Status: GOOD ( 17.23 ) X-BeenThere: linux-riscv@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-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gU3VuLCBNYXkgMjgsIDIwMjMsIGF0IDEwOjI1LCBaaGFuZ2ppbiBXdSB3cm90ZToKPj4gT24g RnJpLCBNYXkgMjYsIDIwMjMsIGF0IDA5OjE1LCBUaG9tYXMgV2VpPUMzPTlGc2NodWggd3JvdGU6 Cgo+ICogVXNlIF9fTlJfKnRpbWU2NCBmb3IgYWxsIDMyYml0IHBsYXRmb3Jtcwo+ICogVXNlIF9f TlJfcHNlbGVjdDYvcHBvbGwvY2xvY2tfZ2V0dGltZSBvbmx5IGZvciA2NGJpdCBwbGF0Zm9ybXMK PiAqIE5ldyBzaXplb2YgdGVzdHMgYWRkZWQgdG8gdmVyaWZ5IG9mZl90LCB0aW1lX3QsIHRpbWVz cGVjLCBpdGltZXJzcGVjLi4uCj4KPiAgICAJQ0FTRV9URVNUKHNpemVvZl90aW1lX3QpOyAgICAg ICAgICAgRVhQRUNUX0VRKDEsIDgsICAgCj4gc2l6ZW9mKHRpbWVfdCkpOyBicmVhazsKPiAgICAg CUNBU0VfVEVTVChzaXplb2ZfdGltZXNwZWMpOyAgICAgICAgIEVYUEVDVF9FUSgxLCAxNiwgIAo+ IHNpemVvZihzdHJ1Y3QgdGltZXNwZWMpKTsgYnJlYWs7Cj4gICAgICNpZmRlZiBOT0xJQkMKPiAg ICAgCUNBU0VfVEVTVChzaXplb2ZfaXRpbWVyc3BlYyk7ICAgICAgIEVYUEVDVF9FUSgxLCAzMiwg IAo+IHNpemVvZihzdHJ1Y3QgaXRpbWVyc3BlYykpOyBicmVhazsKPiAgICAgI2VuZGlmCj4gICAg IAlDQVNFX1RFU1Qoc2l6ZW9mX3RpbWV2YWwpOyAgICAgICAgICBFWFBFQ1RfRVEoMSwgMTYsICAK PiBzaXplb2Yoc3RydWN0IHRpbWV2YWwpKTsgYnJlYWs7Cj4gICAgIAlDQVNFX1RFU1Qoc2l6ZW9m X2l0aW1lcnZhbCk7ICAgICAgICBFWFBFQ1RfRVEoMSwgMzIsICAKPiBzaXplb2Yoc3RydWN0IGl0 aW1lcnZhbCkpOyBicmVhazsKPiAgICAgCUNBU0VfVEVTVChzaXplb2Zfb2ZmX3QpOyAgICAgICAg ICAgIEVYUEVDVF9FUSgxLCA4LCAgIAo+IHNpemVvZihvZmZfdCkpOyBicmVhazsKPgo+Cj4gQEFy bmQsIHRoZSBhYm92ZSB0aW1ldmFsL2l0aW1lcnZhbCBkZWZpbml0aW9ucyBhcmUgdXNlZCB0byBv dmVycmlkZSB0aGUgb25lcwo+IGZyb20gbGludXgvdGltZS5oIHRvIGF2b2lkIHN1Y2ggZXJyb3I6 Cj4KPiAgICAgZXJyb3I6IHJlZGVmaW5pdGlvbiBvZiDigJhzdHJ1Y3QgdGltZXZhbOKAmQo+Cj4g ICAgIG5vbGliYy9zeXNyb290L3Jpc2N2L2luY2x1ZGUvdHlwZXMuaDoyMjU6ODogZXJyb3I6IHJl ZGVmaW5pdGlvbiBvZiAKPiDigJhzdHJ1Y3QgdGltZXZhbOKAmQo+ICAgICAgIDIyNSB8IHN0cnVj dCB0aW1ldmFsIHsKPiAgICAgICAgICAgfCAgICAgICAgXn5+fn5+fgo+ICAgICBJbiBmaWxlIGlu Y2x1ZGVkIGZyb20gbm9saWJjL3N5c3Jvb3QvcmlzY3YvaW5jbHVkZS90eXBlcy5oOjExLAo+ICAg ICAgICAgICAgICAgICAgICAgIGZyb20gbm9saWJjL3N5c3Jvb3QvcmlzY3YvaW5jbHVkZS9ub2xp YmMuaDo5OCwKPiAgICAgICAgICAgICAgICAgICAgICBmcm9tIG5vbGliYy9zeXNyb290L3Jpc2N2 L2luY2x1ZGUvZXJybm8uaDoyNiwKPiAgICAgICAgICAgICAgICAgICAgICBmcm9tIG5vbGliYy9z eXNyb290L3Jpc2N2L2luY2x1ZGUvc3RkaW8uaDoxNCwKPiAgICAgICAgICAgICAgICAgICAgICBm cm9tIAo+IHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25vbGliYy9ub2xpYmMtdGVzdC5jOjEyOgo+ ICAgICBub2xpYmMvc3lzcm9vdC9yaXNjdi9pbmNsdWRlL2xpbnV4L3RpbWUuaDoxNjo4OiBub3Rl OiBvcmlnaW5hbGx5IAo+IGRlZmluZWQgaGVyZQo+ICAgICAgICAxNiB8IHN0cnVjdCB0aW1ldmFs IHsKPgo+IEBBcm5kLCBBcyB5b3UgY29tbWVudGVkIGluIGFub3RoZXIgcmVwbHksIGlzIGl0IHRp bWUgZm9yIHVzIHRvIHVwZGF0ZQo+IGluY2x1ZGUvdWFwaS9saW51eC90aW1lLmggdG9nZXRoZXIg YW5kIGxldCBpdCBwcm92aWRlIHRpbWU2NCB0aW1ldmFsL2l0aW1lcnZhbAo+IGluc3RlYWQgb2Yg dGhlIG9sZCBvbmVzPyBwZXJoYXBzIHNvbWUgbGliYydzIGFyZSBzdGlsbCB1c2luZyB0aGVtLgoK SXQncyBoYXJkIHRvIGtub3cgaWYgYW55dGhpbmcgaXMgdXNpbmcgaXQgdW50aWwgd2UgdHJ5LiBP biB0aGUgb3RoZXIKaGFuZCwgd2UgYWxzbyBrbm93IHRoYXQgYW55dGhpbmcgc3RpbGwgcmVseWlu ZyBvbiBpdCBpcyBnb2luZyB0byBiZQppbmNyZWFzaW5nbHkgYnJva2VuIG9uIDMyLWJpdCBhcmNo aXRlY3R1cmVzIG92ZXIgYXMgd2UgZ2V0IGNsb3NlciB0bwp5MjAzOCwgc28gd2UgY2FuIGp1c3Qg dHJ5IHJlbW92aW5nIHRoZXNlIGhlcmUgdG8gc2VlIHdoYXQgaGFwcGVucy4KCj4gT3IgcGVyaGFw cyB3ZSBjYW4gYWRkIGEgc3dpdGNoIGxpa2UgX19BUkNIX1dBTlRfVElNRTMyX1NZU0NBTExTLCBh ZGQgYQo+IF9fQVJDSF9XQU5UX1RJTUUzMl9TVFJVQ1RTIGFuZCBzaW1wbHkgYmluZCBpdCB3aXRo IF9fQVJDSF9XQU5UX1RJTUUzMl9TWVNDQUxMUz8KCkkgZG9uJ3QgbGlrZSB0aGF0IGlkZWE6IF9f QVJDSF9XQU5UX1RJTUUzMl9TWVNDQUxMUyB0ZWxscyB1cyB0aGF0CmFuIGFyY2hpdGV0dXJlIHN0 aWxsIHByb3ZpZGVzIHRob3NlIHN5c2NhbGxzIGZvciBjb21wYXRpYmlsaXR5LCBzbwp0aGF0IGlz IGFyY2hpdGVjdHVyZSBzcGVjaWZpYywgYnV0IF9fQVJDSF9XQU5UX1RJTUUzMl9TVFJVQ1RTIGlz IG5vdApzb21ldGhpbmcgdGhhdCBpcyBhbiBhcmNoaXRlY3R1cmUgc3BlY2lmaWMgZGVjaXNpb24g YXQgYWxsLCBpdCdzCm9ubHkgbmVlZGVkIGZvciBvbGQgc291cmNlIGNvZGUuCgo+IEFib3V0IHRo ZSBhYm92ZSB1Z2x5IG92ZXJyaWRlIGNvZGUsIFdoYXQncyB5b3VyIHN1Z2dlc3Rpb24gaW4gdjI/ IDstKQoKQ2FuIHlvdSBtYXliZSBqdXN0IHJlbW92ZSB0aGUgIiNpbmNsdWRlIDxsaW51eC90aW1l Lmg+IiBmcm9tIGFsbAppbmNsdWRlL3VhcGkvIGFuZCBub2xpYmMgaGVhZGVycyBzbyBpdCBqdXN0 IG5ldmVyIGdldHMgc2Vlbj8KClVuZm9ydHVuYXRlbHkgSSBzZWUgdGhlIGhlYWRlciBjb250YWlu cyBhIGZldyBvdGhlciBkZWZpbml0aW9ucywKd2hpY2ggbWlnaHQgaGF2ZSB0byBnZXQgbW92ZWQg b3V0IG9mIHRoZSB3YXksIHBvc3NpYmx5IHRvCmxpbnV4L3RpbWVfdHlwZXMuaC4KCiAgICAgICBB cm5kCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51 eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRw Oi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg==