From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) by sourceware.org (Postfix) with ESMTPS id 1D5E6385842B; Wed, 22 Nov 2023 20:36:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1D5E6385842B Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmx.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmx.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 1D5E6385842B Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=212.227.15.19 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700685410; cv=none; b=Si8GEGu12WGZZJx0hnjkHk2/v3o+nBHYl/CvtiTOWjKzLVqjA2/R5FkYv7zyImGGSQiP75s1s5Cn0bHccmOC383VJysmTnKdU4Mtyhouy9qTDgDQAHe1MLhOADn4v41a0Y0sZRl3muHexTQUsA46gBipTHvzkxXybBDs4FLpbSM= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700685410; c=relaxed/simple; bh=pVP6wBpzAijgMAmKGOQp+zzmBzAXiGNeEpAYize9MsY=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=a2/DO3osFPVgAlDNdUD9n9ifZ+lhR/oxKlq3cfMoeXRfaW06U7Tq+HA8ced+haUoKEp4DaP/ttE1pelAjqoPOdi2BYdGJO8wNyG/yMV4+vh/u3CQ2Q0dCBtuK03NGuwYylxhAUgs/TNqMqQiHJDGtzpGukkkXbK3gqwLBAZqb7Q= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1700685391; x=1701290191; i=anlauf@gmx.de; bh=pVP6wBpzAijgMAmKGOQp+zzmBzAXiGNeEpAYize9MsY=; h=X-UI-Sender-Class:Date:Subject:To:Cc:References:From: In-Reply-To; b=Kkma0maZlPiIxiXIZh6WONrVNMA8USL+6AnRn5vdZLXwUa4BAFDfGZWhA11ROzMi 9QDA6bLNDXn3321SIdxheYpw9CxudEDXLOpGNsDeEeE/JW+dzSDhF0+UAt4g1uhzB /9abPYZj6yuyhpEHOsVGbu9PcYdLdV/opfkc2KnlSeP55MEvZw729uWvTC4PS8GCP JPVYU2CIMTgKljz4IkbKz5Npqjv3XtDXR6emtg+Apfl5fU5LpA4JkwzmrBPMyUVwD PYRvcvCRDwUoVoBU4dXS4/9PAk81q1QwKP+ml8VvKSczjkT0962BkVvcv+EE49/ru DePIKCDZLZFt/yazuQ== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.178.29] ([93.207.84.205]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1M9o1v-1r0gtm2xkL-005scZ; Wed, 22 Nov 2023 21:36:31 +0100 Content-Type: multipart/mixed; boundary="------------wOrMR0iAmNT0BdMWk7zSACmN" Message-ID: <956bd0e6-d53d-4df9-b952-f441b7e3fac4@gmx.de> Date: Wed, 22 Nov 2023 21:36:27 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH, v4] Fortran: restrictions on integer arguments to SYSTEM_CLOCK [PR112609] To: Mikael Morin , sgk@troutmask.apl.washington.edu Cc: fortran , gcc-patches Newsgroups: gmane.comp.gcc.patches,gmane.comp.gcc.fortran References: <2898e351-eee8-45dd-a05d-0280378ba872@gmx.de> <84f48fee-a5b8-4bef-aa9b-f176d3cfbfa6@orange.fr> <06b5440b-fdab-4c02-988a-ea849aadfd48@gmx.de> <97809d56-b3dc-42c9-85e8-6eb8bc618428@orange.fr> Content-Language: en-US From: Harald Anlauf In-Reply-To: <97809d56-b3dc-42c9-85e8-6eb8bc618428@orange.fr> X-Provags-ID: V03:K1:8v69yYFQqsQTz5KkNro7Yt03vKFAx9aasPVR6z7xBHP3+NGXDOK gGP055iopQ8xY22CZ9JSZg6k0y5beS66ERa6i4f/6PLQ1i14wteViTgoAqUulRBPbWOGl69 fmhhw2B+cu9Z9g7MFkbjZBCN+AYWQ5LoG2Hrc8ULfBwRDuE7+WLfF7QJqXrkUwn/0ydR92+ 9jQ5Qxpwsy1n11CkNSasw== UI-OutboundReport: notjunk:1;M01:P0:GYVBR6EfpFc=;hcxkTKkLq7HBUpNkvD1cV2iQbX8 /3Xh2LL0FANSSUsjoHwPBuX+IUQp3hTAysKFhZnVCeLofD9Pmj8gcv6cN1lWbZtfmAFrutEqn KHmJL9xe0ejsbk/TWR+NpArLa7iEmZzc8kwhh3C4zTAKPizGYzI9SgfFaw4kI4Cc698ubzsys nngpDKqTHiTVjpH0vApmoN/AlzziCkXWZZwtZdRKU4dKjzAWIkTag+1jn3zXnAEyIa8e85SmU DJlDF7xEDydqLSrPnVtQUSIN6LzUC+roezNEEr+GChckbwZ7+hDxzPcyEqeljOm1s+F0uM+wA UhvPz5SISgdZy1JYY97jY4b6MHQXg7SDN9WsyHLVjouu6gjVFOsiN7OBou1Fv+/fWtviJb/Gk xDT75Ik0TC2b1aleRjQ6BAg22k8jeeZlgDUf5NsjgcSrV5UV9ZYZjbhvazPQA57GQzqgDV2BH vTtdNhIo9LwYTFyh+kI+PImPEB1ITle7Wd86uwpeC/kus1q12tUNwel9rTdNy9QAKX0yjwzeo 1i2Q0LvzZPu6XDYtiAfPFm8H3A7czaonB3lsSeiP/jI5mYbUzN6K//KYX6bRPd6LcLrhnn1js 80+NcPN45T/0GBHTvJqnqYysl2rwi+QRAw2a8IX2gaBhlQQOf1CF8m1ycPP0jkSlaDT4jjztW kTplj6UHjR+8C9ZSUQ5/tnJaiHZzbOLFJwDMwgriBF639VZGB9iNnKM/nBTNvj+DSlOoo1eHd 01eH26LyF0IpTK/SEBmt706HBhwLI1kl4sd1e6TL1j9xr+XwLMxGheNA+oatGkq4HzMoLhdyz gLjhCKTP7GH1HGki427HOCVHP6Hbf5JVfKfJVObgPxyfVuyDnTwqu5i48LoIxDhZNPUUyQU+A 20kRW/BEYIdPsUigd8O7WgZCSTc0ByPI4HFa8UzXQyhF5WHspsGaKdtsU1zW2pVEH5G+ADTRz 6pa8amuWR4K5Br80uCQyyCgECzw= X-Spam-Status: No, score=-10.9 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------wOrMR0iAmNT0BdMWk7zSACmN Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Hi Mikael! On 11/22/23 10:36, Mikael Morin wrote: > (...) > >> diff --git a/gcc/fortran/error.cc b/gcc/fortran/error.cc >> index 2ac51e95e4d..be715b50469 100644 >> --- a/gcc/fortran/error.cc >> +++ b/gcc/fortran/error.cc >> @@ -980,7 +980,11 @@ char const* >> =C2=A0notify_std_msg(int std) >> =C2=A0{ >> >> -=C2=A0 if (std & GFC_STD_F2018_DEL) >> +=C2=A0 if (std & GFC_STD_F2023_DEL) >> +=C2=A0=C2=A0=C2=A0 return _("Fortran 2023 deleted feature:"); > > As there are officially no deleted feature in f2023, maybe use a > slightly different wording?=C2=A0 Say "Not allowed in fortran 2023" or > "forbidden in Fortran 2023" or similar? > >> +=C2=A0 else if (std & GFC_STD_F2023) >> +=C2=A0=C2=A0=C2=A0 return _("Fortran 2023:"); >> +=C2=A0 else if (std & GFC_STD_F2018_DEL) >> =C2=A0=C2=A0=C2=A0=C2=A0 return _("Fortran 2018 deleted feature:"); >> =C2=A0=C2=A0 else if (std & GFC_STD_F2018_OBS) >> =C2=A0=C2=A0=C2=A0=C2=A0 return _("Fortran 2018 obsolescent feature:"); I skimmed over existing error messages, and since "forbidden" did not show up and since "Not allowed" exists but not at the beginning of a message, I found that "Prohibited in Fortran 2023" appeared to be a good alternative. Not being a native speaker, I hope that someone speaks up if this is not appropriate. And since I do not explicitly verify that part in the testcase, it can be changed. >> diff --git a/gcc/fortran/libgfortran.h b/gcc/fortran/libgfortran.h >> index bdddb317ab0..af7a170c2b1 100644 >> --- a/gcc/fortran/libgfortran.h >> +++ b/gcc/fortran/libgfortran.h >> @@ -19,9 +19,10 @@ along with GCC; see the file COPYING3.=C2=A0 If not = see >> >> >> =C2=A0/* Flags to specify which standard/extension contains a feature. >> -=C2=A0=C2=A0 Note that no features were obsoleted nor deleted in F2003= nor in >> F2023. >> +=C2=A0=C2=A0 Note that no features were obsoleted nor deleted in F2003= . > > I think we can add a comment that F2023 has no deleted feature, but some > more stringent restrictions in f2023 forbid some previously valid code. > >> =C2=A0=C2=A0=C2=A0 Please remember to keep those definitions in sync wi= th >> =C2=A0=C2=A0=C2=A0 gfortran.texi.=C2=A0 */ >> +#define GFC_STD_F2023_DEL=C2=A0=C2=A0=C2=A0 (1<<13)=C2=A0=C2=A0=C2=A0 = /* Deleted in F2023.=C2=A0 */ >> =C2=A0#define GFC_STD_F2023=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (= 1<<12)=C2=A0=C2=A0=C2=A0 /* New in F2023.=C2=A0 */ >> =C2=A0#define GFC_STD_F2018_DEL=C2=A0=C2=A0=C2=A0 (1<<11)=C2=A0=C2=A0= =C2=A0 /* Deleted in F2018.=C2=A0 */ >> =C2=A0#define GFC_STD_F2018_OBS=C2=A0=C2=A0=C2=A0 (1<<10)=C2=A0=C2=A0= =C2=A0 /* Obsolescent in F2018.=C2=A0 */ >> @@ -41,12 +42,13 @@ along with GCC; see the file COPYING3.=C2=A0 If not= see >> =C2=A0 * are allowed with a certain -std option.=C2=A0 */ >> =C2=A0#define GFC_STD_OPT_F95=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= (GFC_STD_F77 | GFC_STD_F95 | >> GFC_STD_F95_OBS=C2=A0 \ >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 | GFC_STD_F2008_OBS | GFC_STD_F2018_OBS \ >> -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 | GFC_STD_F2018_DEL) >> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 | GFC_STD_F2018_DEL | GFC_STD_F2023_DEL) >> =C2=A0#define GFC_STD_OPT_F03=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= (GFC_STD_OPT_F95 | GFC_STD_F2003) >> =C2=A0#define GFC_STD_OPT_F08=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= (GFC_STD_OPT_F03 | GFC_STD_F2008) >> =C2=A0#define GFC_STD_OPT_F18=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= ((GFC_STD_OPT_F08 | GFC_STD_F2018) \ >> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 & (~GFC_STD_F2018_DEL)) > F03, F08 and F18 should have GFC_STD_F2023_DEL (and also F03 and F08 > should have GFC_STD_F2018_DEL). Well, these macros do an incremental bitwise-or, so the bit representing GFC_STD_F2023_DEL is included everywhere. I also ran the testcases with different -std=3D options to check. > OK with this fixed (and the previous comments as you wish), if Steve has > no more comments. > > Thanks for the patch. > > If there are no further comments, I will commit once I am able to fully build again with --disable-bootstrap and -march=3Dnative ... Thanks, Harald --------------wOrMR0iAmNT0BdMWk7zSACmN Content-Type: text/x-patch; charset=UTF-8; name="pr112609-v4.diff" Content-Disposition: attachment; filename="pr112609-v4.diff" Content-Transfer-Encoding: base64 RnJvbSA1NjM4NmY0ZjMzMmNmODk3MGE0MjRiYTY3Njc4MzM1ZmE2MTg2ZTRjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYXJhbGQgQW5sYXVmIDxhbmxhdWZAZ214LmRlPgpE YXRlOiBXZWQsIDIyIE5vdiAyMDIzIDIwOjU3OjU5ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g Rm9ydHJhbjogcmVzdHJpY3Rpb25zIG9uIGludGVnZXIgYXJndW1lbnRzIHRvIFNZU1RFTV9D TE9DSwogW1BSMTEyNjA5XQoKRm9ydHJhbiAyMDIzIGFkZGVkIHJlc3RyaWN0aW9ucyBvbiBp bnRlZ2VyIGFyZ3VtZW50cyB0byBTWVNURU1fQ0xPQ0sgdG8KaGF2ZSBhIGRlY2ltYWwgZXhw b25lbnQgcmFuZ2UgYXQgbGVhc3QgYXMgbGFyZ2UgYXMgYSBkZWZhdWx0IGludGVnZXIsCmFu ZCB0aGF0IGFsbCBpbnRlZ2VyIGFyZ3VtZW50cyBoYXZlIHRoZSBzYW1lIGtpbmQgdHlwZSBw YXJhbWV0ZXIuCgpnY2MvZm9ydHJhbi9DaGFuZ2VMb2c6CgoJUFIgZm9ydHJhbi8xMTI2MDkK CSogY2hlY2suY2MgKGdmY19jaGVja19zeXN0ZW1fY2xvY2spOiBBZGQgY2hlY2tzIG9uIGlu dGVnZXIgYXJndW1lbnRzCgl0byBTWVNURU1fQ0xPQ0sgc3BlY2lmaWMgdG8gRjIwMjMuCgkq IGVycm9yLmNjIChub3RpZnlfc3RkX21zZyk6IEFkanVzdCB0byBoYW5kbGUgbmV3IGZlYXR1 cmVzIGFkZGVkCglpbiBGMjAyMy4KCSogZ2ZvcnRyYW4udGV4aSAoX2dmb3J0cmFuX3NldF9v cHRpb25zKTogRG9jdW1lbnQgR0ZDX1NURF9GMjAyM19ERUwsCglyZW1vdmUgb2Jzb2xldGUg b3B0aW9uIEdGQ19TVERfRjIwMDhfVFMgYW5kIGZpeCBlbnVtZXJhdGlvbiB2YWx1ZXMuCgkq IGxpYmdmb3J0cmFuLmggKEdGQ19TVERfRjIwMjNfREVMKTogQWRkIGFuZCB1c2UgaW4gR0ZD X1NURF9PUFRfRjIzLgoJKiBvcHRpb25zLmNjIChzZXRfZGVmYXVsdF9zdGRfZmxhZ3MpOiBB ZGQgR0ZDX1NURF9GMjAyM19ERUwuCgpnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoKCglQUiBm b3J0cmFuLzExMjYwOQoJKiBnZm9ydHJhbi5kZy9zeXN0ZW1fY2xvY2tfMS5mOTA6IEFkZCBv cHRpb24gLXN0ZD1mMjAwMy4KCSogZ2ZvcnRyYW4uZGcvc3lzdGVtX2Nsb2NrXzMuZjA4OiBB ZGQgb3B0aW9uIC1zdGQ9ZjIwMDguCgkqIGdmb3J0cmFuLmRnL3N5c3RlbV9jbG9ja180LmY5 MDogTmV3IHRlc3QuCi0tLQogZ2NjL2ZvcnRyYW4vY2hlY2suY2MgICAgICAgICAgICAgICAg ICAgICAgICAgfCA1MCArKysrKysrKysrKysrKysrKysrKwogZ2NjL2ZvcnRyYW4vZXJyb3Iu Y2MgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArKy0KIGdjYy9mb3J0cmFuL2dmb3J0 cmFuLnRleGkgICAgICAgICAgICAgICAgICAgIHwgMTAgKystLQogZ2NjL2ZvcnRyYW4vbGli Z2ZvcnRyYW4uaCAgICAgICAgICAgICAgICAgICAgfCAgNyArKy0KIGdjYy9mb3J0cmFuL29w dGlvbnMuY2MgICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKystCiBnY2MvdGVzdHN1aXRl L2dmb3J0cmFuLmRnL3N5c3RlbV9jbG9ja18xLmY5MCB8ICAxICsKIGdjYy90ZXN0c3VpdGUv Z2ZvcnRyYW4uZGcvc3lzdGVtX2Nsb2NrXzMuZjA4IHwgIDEgKwogZ2NjL3Rlc3RzdWl0ZS9n Zm9ydHJhbi5kZy9zeXN0ZW1fY2xvY2tfNC5mOTAgfCAyNCArKysrKysrKysrCiA4IGZpbGVz IGNoYW5nZWQsIDk1IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1v ZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvc3lzdGVtX2Nsb2NrXzQuZjkw CgpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vY2hlY2suY2MgYi9nY2MvZm9ydHJhbi9jaGVj ay5jYwppbmRleCA2YzQ1ZTY1NDJmMC4uM2IxYTBmOWY0ZjQgMTAwNjQ0Ci0tLSBhL2djYy9m b3J0cmFuL2NoZWNrLmNjCisrKyBiL2djYy9mb3J0cmFuL2NoZWNrLmNjCkBAIC02Nzc0LDYg KzY3NzQsOCBAQCBib29sCiBnZmNfY2hlY2tfc3lzdGVtX2Nsb2NrIChnZmNfZXhwciAqY291 bnQsIGdmY19leHByICpjb3VudF9yYXRlLAogCQkJZ2ZjX2V4cHIgKmNvdW50X21heCkKIHsK KyAgaW50IGZpcnN0X2ludF9raW5kID0gLTE7CisKICAgaWYgKGNvdW50ICE9IE5VTEwpCiAg ICAgewogICAgICAgaWYgKCFzY2FsYXJfY2hlY2sgKGNvdW50LCAwKSkKQEAgLTY3ODgsOCAr Njc5MCwxNyBAQCBnZmNfY2hlY2tfc3lzdGVtX2Nsb2NrIChnZmNfZXhwciAqY291bnQsIGdm Y19leHByICpjb3VudF9yYXRlLAogCQkJICAgICAgJmNvdW50LT53aGVyZSkpCiAJcmV0dXJu IGZhbHNlOwogCisgICAgICBpZiAoY291bnQtPnRzLmtpbmQgPCBnZmNfZGVmYXVsdF9pbnRl Z2VyX2tpbmQKKwkgICYmICFnZmNfbm90aWZ5X3N0ZCAoR0ZDX1NURF9GMjAyM19ERUwsCisJ CQkgICAgICAiQ09VTlQgYXJndW1lbnQgdG8gU1lTVEVNX0NMT0NLIGF0ICVMICIKKwkJCSAg ICAgICJ3aXRoIGtpbmQgc21hbGxlciB0aGFuIGRlZmF1bHQgaW50ZWdlciIsCisJCQkgICAg ICAmY291bnQtPndoZXJlKSkKKwlyZXR1cm4gZmFsc2U7CisKICAgICAgIGlmICghdmFyaWFi bGVfY2hlY2sgKGNvdW50LCAwLCBmYWxzZSkpCiAJcmV0dXJuIGZhbHNlOworCisgICAgICBm aXJzdF9pbnRfa2luZCA9IGNvdW50LT50cy5raW5kOwogICAgIH0KIAogICBpZiAoY291bnRf cmF0ZSAhPSBOVUxMKQpAQCAtNjgxNiw2ICs2ODI3LDE2IEBAIGdmY19jaGVja19zeXN0ZW1f Y2xvY2sgKGdmY19leHByICpjb3VudCwgZ2ZjX2V4cHIgKmNvdW50X3JhdGUsCiAJCQkJICAi U1lTVEVNX0NMT0NLIGF0ICVMIGhhcyBub24tZGVmYXVsdCBraW5kIiwKIAkJCQkgICZjb3Vu dF9yYXRlLT53aGVyZSkpCiAJICAgIHJldHVybiBmYWxzZTsKKworCSAgaWYgKGNvdW50X3Jh dGUtPnRzLmtpbmQgPCBnZmNfZGVmYXVsdF9pbnRlZ2VyX2tpbmQKKwkgICAgICAmJiAhZ2Zj X25vdGlmeV9zdGQgKEdGQ19TVERfRjIwMjNfREVMLAorCQkJCSAgIkNPVU5UX1JBVEUgYXJn dW1lbnQgdG8gU1lTVEVNX0NMT0NLIGF0ICVMICIKKwkJCQkgICJ3aXRoIGtpbmQgc21hbGxl ciB0aGFuIGRlZmF1bHQgaW50ZWdlciIsCisJCQkJICAmY291bnRfcmF0ZS0+d2hlcmUpKQor CSAgICByZXR1cm4gZmFsc2U7CisKKwkgIGlmIChmaXJzdF9pbnRfa2luZCA8IDApCisJICAg IGZpcnN0X2ludF9raW5kID0gY291bnRfcmF0ZS0+dHMua2luZDsKIAl9CiAKICAgICB9CkBA IC02ODM2LDYgKzY4NTcsMzUgQEAgZ2ZjX2NoZWNrX3N5c3RlbV9jbG9jayAoZ2ZjX2V4cHIg KmNvdW50LCBnZmNfZXhwciAqY291bnRfcmF0ZSwKIAogICAgICAgaWYgKCF2YXJpYWJsZV9j aGVjayAoY291bnRfbWF4LCAyLCBmYWxzZSkpCiAJcmV0dXJuIGZhbHNlOworCisgICAgICBp ZiAoY291bnRfbWF4LT50cy5raW5kIDwgZ2ZjX2RlZmF1bHRfaW50ZWdlcl9raW5kCisJICAm JiAhZ2ZjX25vdGlmeV9zdGQgKEdGQ19TVERfRjIwMjNfREVMLAorCQkJICAgICAgIkNPVU5U X01BWCBhcmd1bWVudCB0byBTWVNURU1fQ0xPQ0sgYXQgJUwgIgorCQkJICAgICAgIndpdGgg a2luZCBzbWFsbGVyIHRoYW4gZGVmYXVsdCBpbnRlZ2VyIiwKKwkJCSAgICAgICZjb3VudF9t YXgtPndoZXJlKSkKKwlyZXR1cm4gZmFsc2U7CisKKyAgICAgIGlmIChmaXJzdF9pbnRfa2lu ZCA8IDApCisJZmlyc3RfaW50X2tpbmQgPSBjb3VudF9tYXgtPnRzLmtpbmQ7CisgICAgfQor CisgIGlmIChmaXJzdF9pbnRfa2luZCA+IDApCisgICAgeworICAgICAgaWYgKGNvdW50X3Jh dGUKKwkgICYmIGNvdW50X3JhdGUtPnRzLnR5cGUgPT0gQlRfSU5URUdFUgorCSAgJiYgY291 bnRfcmF0ZS0+dHMua2luZCAhPSBmaXJzdF9pbnRfa2luZAorCSAgJiYgIWdmY19ub3RpZnlf c3RkIChHRkNfU1REX0YyMDIzX0RFTCwKKwkJCSAgICAgICJpbnRlZ2VyIGFyZ3VtZW50cyB0 byBTWVNURU1fQ0xPQ0sgYXQgJUwgIgorCQkJICAgICAgIndpdGggZGlmZmVyZW50IGtpbmQg cGFyYW1ldGVycyIsCisJCQkgICAgICAmY291bnRfcmF0ZS0+d2hlcmUpKQorCXJldHVybiBm YWxzZTsKKworICAgICAgaWYgKGNvdW50X21heCAmJiBjb3VudF9tYXgtPnRzLmtpbmQgIT0g Zmlyc3RfaW50X2tpbmQKKwkgICYmICFnZmNfbm90aWZ5X3N0ZCAoR0ZDX1NURF9GMjAyM19E RUwsCisJCQkgICAgICAiaW50ZWdlciBhcmd1bWVudHMgdG8gU1lTVEVNX0NMT0NLIGF0ICVM ICIKKwkJCSAgICAgICJ3aXRoIGRpZmZlcmVudCBraW5kIHBhcmFtZXRlcnMiLAorCQkJICAg ICAgJmNvdW50X21heC0+d2hlcmUpKQorCXJldHVybiBmYWxzZTsKICAgICB9CiAKICAgcmV0 dXJuIHRydWU7CmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9lcnJvci5jYyBiL2djYy9mb3J0 cmFuL2Vycm9yLmNjCmluZGV4IDJhYzUxZTk1ZTRkLi41NmQyZTYzNjIyZCAxMDA2NDQKLS0t IGEvZ2NjL2ZvcnRyYW4vZXJyb3IuY2MKKysrIGIvZ2NjL2ZvcnRyYW4vZXJyb3IuY2MKQEAg LTk4MCw3ICs5ODAsMTEgQEAgY2hhciBjb25zdCoKIG5vdGlmeV9zdGRfbXNnKGludCBzdGQp CiB7CiAKLSAgaWYgKHN0ZCAmIEdGQ19TVERfRjIwMThfREVMKQorICBpZiAoc3RkICYgR0ZD X1NURF9GMjAyM19ERUwpCisgICAgcmV0dXJuIF8oIlByb2hpYml0ZWQgaW4gRm9ydHJhbiAy MDIzOiIpOworICBlbHNlIGlmIChzdGQgJiBHRkNfU1REX0YyMDIzKQorICAgIHJldHVybiBf KCJGb3J0cmFuIDIwMjM6Iik7CisgIGVsc2UgaWYgKHN0ZCAmIEdGQ19TVERfRjIwMThfREVM KQogICAgIHJldHVybiBfKCJGb3J0cmFuIDIwMTggZGVsZXRlZCBmZWF0dXJlOiIpOwogICBl bHNlIGlmIChzdGQgJiBHRkNfU1REX0YyMDE4X09CUykKICAgICByZXR1cm4gXygiRm9ydHJh biAyMDE4IG9ic29sZXNjZW50IGZlYXR1cmU6Iik7CmRpZmYgLS1naXQgYS9nY2MvZm9ydHJh bi9nZm9ydHJhbi50ZXhpIGIvZ2NjL2ZvcnRyYW4vZ2ZvcnRyYW4udGV4aQppbmRleCA0MTg1 N2NjOTAzOC4uYzI5Y2I3ODYyNzkgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL2dmb3J0cmFu LnRleGkKKysrIGIvZ2NjL2ZvcnRyYW4vZ2ZvcnRyYW4udGV4aQpAQCAtMzQ3NiwxMyArMzQ3 NiwxMyBAQCBzdGFuZGFyZC4gIFBvc3NpYmxlIHZhbHVlcyBhcmUgKGJpdHdpc2Ugb3ItZWQp IEBjb2Rle0dGQ19TVERfRjc3fSAoMSksCiBAY29kZXtHRkNfU1REX0Y5NV9PQlN9ICgyKSwg QGNvZGV7R0ZDX1NURF9GOTVfREVMfSAoNCksCiBAY29kZXtHRkNfU1REX0Y5NX0gKDgpLCBA Y29kZXtHRkNfU1REX0YyMDAzfSAoMTYpLCBAY29kZXtHRkNfU1REX0dOVX0KICgzMiksIEBj b2Rle0dGQ19TVERfTEVHQUNZfSAoNjQpLCBAY29kZXtHRkNfU1REX0YyMDA4fSAoMTI4KSwK LUBjb2Rle0dGQ19TVERfRjIwMDhfT0JTfSAoMjU2KSwgQGNvZGV7R0ZDX1NURF9GMjAwOF9U U30gKDUxMiksCi1AY29kZXtHRkNfU1REX0YyMDE4fSAoMTAyNCksIEBjb2Rle0dGQ19TVERf RjIwMThfT0JTfSAoMjA0OCksCi1AY29kZXtHRkNfU1REPUYyMDE4X0RFTH0gKDQwOTYpLCBh bmQgQGNvZGV7R0ZDX1NURD1GMjAyM30gKDgxOTIpLgorQGNvZGV7R0ZDX1NURF9GMjAwOF9P QlN9ICgyNTYpLCBAY29kZXtHRkNfU1REX0YyMDE4fSAoNTEyKSwKK0Bjb2Rle0dGQ19TVERf RjIwMThfT0JTfSAoMTAyNCksIEBjb2Rle0dGQ19TVERfRjIwMThfREVMfSAoMjA0OCksCitA Y29kZXtHRkNfU1REX0YyMDIzfSAoNDA5NiksIGFuZCBAY29kZXtHRkNfU1REX0YyMDIzX0RF TH0gKDgxOTIpLgogRGVmYXVsdDogQGNvZGV7R0ZDX1NURF9GOTVfT0JTIHwgR0ZDX1NURF9G OTVfREVMIHwgR0ZDX1NURF9GOTUgfAotR0ZDX1NURF9GMjAwMyB8IEdGQ19TVERfRjIwMDgg fCBHRkNfU1REX0YyMDA4X1RTIHwgR0ZDX1NURF9GMjAwOF9PQlMKK0dGQ19TVERfRjIwMDMg fCBHRkNfU1REX0YyMDA4IHwgR0ZDX1NURF9GMjAwOF9PQlMKIHwgR0ZDX1NURF9GNzcgfCBH RkNfU1REX0YyMDE4IHwgR0ZDX1NURF9GMjAxOF9PQlMgfCBHRkNfU1REX0YyMDE4X0RFTAot fCBHRkNfU1REX0YyMDIzIHwgR0ZDX1NURF9HTlUgfCBHRkNfU1REX0xFR0FDWX0uCit8IEdG Q19TVERfRjIwMjMgfCBHRkNfU1REX0YyMDIzX0RFTCB8IEdGQ19TVERfR05VIHwgR0ZDX1NU RF9MRUdBQ1l9LgogQGl0ZW0gQHZhcntvcHRpb259WzFdIEB0YWIgU3RhbmRhcmQtd2Fybmlu ZyBmbGFnOyBwcmludHMgYSB3YXJuaW5nIHRvCiBzdGFuZGFyZCBlcnJvci4gIERlZmF1bHQ6 IEBjb2Rle0dGQ19TVERfRjk1X0RFTCB8IEdGQ19TVERfTEVHQUNZfS4KIEBpdGVtIEB2YXJ7 b3B0aW9ufVsyXSBAdGFiIElmIG5vbiB6ZXJvLCBlbmFibGUgcGVkYW50aWMgY2hlY2tpbmcu CmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9saWJnZm9ydHJhbi5oIGIvZ2NjL2ZvcnRyYW4v bGliZ2ZvcnRyYW4uaAppbmRleCBiZGRkYjMxN2FiMC4uMmM3MWI5MGE4NzEgMTAwNjQ0Ci0t LSBhL2djYy9mb3J0cmFuL2xpYmdmb3J0cmFuLmgKKysrIGIvZ2NjL2ZvcnRyYW4vbGliZ2Zv cnRyYW4uaApAQCAtMjAsOCArMjAsMTAgQEAgYWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmls ZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUKIAogLyogRmxhZ3MgdG8gc3BlY2lmeSB3aGljaCBz dGFuZGFyZC9leHRlbnNpb24gY29udGFpbnMgYSBmZWF0dXJlLgogICAgTm90ZSB0aGF0IG5v IGZlYXR1cmVzIHdlcmUgb2Jzb2xldGVkIG5vciBkZWxldGVkIGluIEYyMDAzIG5vciBpbiBG MjAyMy4KKyAgIE5ldmVydGhlbGVzcywgc29tZSBmZWF0dXJlcyBhdmFpbGFibGUgaW4gRjIw MTggYXJlIHByb2hpYml0ZWQgaW4gRjIwMjMuCiAgICBQbGVhc2UgcmVtZW1iZXIgdG8ga2Vl cCB0aG9zZSBkZWZpbml0aW9ucyBpbiBzeW5jIHdpdGgKICAgIGdmb3J0cmFuLnRleGkuICAq LworI2RlZmluZSBHRkNfU1REX0YyMDIzX0RFTAkoMTw8MTMpCS8qIFByb2hpYml0ZWQgaW4g RjIwMjMuICAqLwogI2RlZmluZSBHRkNfU1REX0YyMDIzCQkoMTw8MTIpCS8qIE5ldyBpbiBG MjAyMy4gICovCiAjZGVmaW5lIEdGQ19TVERfRjIwMThfREVMCSgxPDwxMSkJLyogRGVsZXRl ZCBpbiBGMjAxOC4gICovCiAjZGVmaW5lIEdGQ19TVERfRjIwMThfT0JTCSgxPDwxMCkJLyog T2Jzb2xlc2NlbnQgaW4gRjIwMTguICAqLwpAQCAtNDEsMTIgKzQzLDEzIEBAIGFsb25nIHdp dGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qgc2VlCiAgKiBhcmUgYWxs b3dlZCB3aXRoIGEgY2VydGFpbiAtc3RkIG9wdGlvbi4gICovCiAjZGVmaW5lIEdGQ19TVERf T1BUX0Y5NQkJKEdGQ19TVERfRjc3IHwgR0ZDX1NURF9GOTUgfCBHRkNfU1REX0Y5NV9PQlMg IFwKIAkJCQl8IEdGQ19TVERfRjIwMDhfT0JTIHwgR0ZDX1NURF9GMjAxOF9PQlMgXAotCQkJ CXwgR0ZDX1NURF9GMjAxOF9ERUwpCisJCQkJfCBHRkNfU1REX0YyMDE4X0RFTCB8IEdGQ19T VERfRjIwMjNfREVMKQogI2RlZmluZSBHRkNfU1REX09QVF9GMDMJCShHRkNfU1REX09QVF9G OTUgfCBHRkNfU1REX0YyMDAzKQogI2RlZmluZSBHRkNfU1REX09QVF9GMDgJCShHRkNfU1RE X09QVF9GMDMgfCBHRkNfU1REX0YyMDA4KQogI2RlZmluZSBHRkNfU1REX09QVF9GMTgJCSgo R0ZDX1NURF9PUFRfRjA4IHwgR0ZDX1NURF9GMjAxOCkgXAogCQkJCSYgKH5HRkNfU1REX0Yy MDE4X0RFTCkpCi0jZGVmaW5lIEdGQ19TVERfT1BUX0YyMwkJKEdGQ19TVERfT1BUX0YxOCB8 IEdGQ19TVERfRjIwMjMpCisjZGVmaW5lIEdGQ19TVERfT1BUX0YyMwkJKChHRkNfU1REX09Q VF9GMTggfCBHRkNfU1REX0YyMDIzKSBcCisJCQkJJiAofkdGQ19TVERfRjIwMjNfREVMKSkK IAogLyogQml0bWFza3MgZm9yIHRoZSB2YXJpb3VzIEZQRSB0aGF0IGNhbiBiZSBlbmFibGVk LiAgVGhlc2UgbmVlZCB0byBiZSBzdHJhaWdodCBpbnRlZ2VycwogICAgZS5nLiwgOCBpbnN0 ZWFkIG9mICgxPDwzKSwgYmVjYXVzZSB0aGV5IHdpbGwgYmUgaW5jbHVkZWQgaW4gRm9ydHJh biBzb3VyY2UuICAqLwpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vb3B0aW9ucy5jYyBiL2dj Yy9mb3J0cmFuL29wdGlvbnMuY2MKaW5kZXggYjc4ODUyMWU4MTYuLjAyYTI5ZjgzYjU4IDEw MDY0NAotLS0gYS9nY2MvZm9ydHJhbi9vcHRpb25zLmNjCisrKyBiL2djYy9mb3J0cmFuL29w dGlvbnMuY2MKQEAgLTU3LDggKzU3LDEwIEBAIHNldF9kZWZhdWx0X3N0ZF9mbGFncyAodm9p ZCkKICAgZ2ZjX29wdGlvbi5hbGxvd19zdGQgPSBHRkNfU1REX0Y5NV9PQlMgfCBHRkNfU1RE X0Y5NV9ERUwKICAgICB8IEdGQ19TVERfRjIwMDMgfCBHRkNfU1REX0YyMDA4IHwgR0ZDX1NU RF9GOTUgfCBHRkNfU1REX0Y3NwogICAgIHwgR0ZDX1NURF9GMjAwOF9PQlMgfCBHRkNfU1RE X0dOVSB8IEdGQ19TVERfTEVHQUNZCi0gICAgfCBHRkNfU1REX0YyMDE4IHwgR0ZDX1NURF9G MjAxOF9ERUwgfCBHRkNfU1REX0YyMDE4X09CUyB8IEdGQ19TVERfRjIwMjM7Ci0gIGdmY19v cHRpb24ud2Fybl9zdGQgPSBHRkNfU1REX0YyMDE4X0RFTCB8IEdGQ19TVERfRjk1X0RFTCB8 IEdGQ19TVERfTEVHQUNZOworICAgIHwgR0ZDX1NURF9GMjAxOCB8IEdGQ19TVERfRjIwMThf REVMIHwgR0ZDX1NURF9GMjAxOF9PQlMgfCBHRkNfU1REX0YyMDIzCisgICAgfCBHRkNfU1RE X0YyMDIzX0RFTDsKKyAgZ2ZjX29wdGlvbi53YXJuX3N0ZCA9IEdGQ19TVERfRjIwMThfREVM IHwgR0ZDX1NURF9GOTVfREVMIHwgR0ZDX1NURF9MRUdBQ1kKKyAgICB8IEdGQ19TVERfRjIw MjNfREVMOwogfQogCiAvKiBTZXQgKG9yIHVuc2V0KSB0aGUgREVDIGV4dGVuc2lvbiBmbGFn cy4gICovCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3N5c3RlbV9j bG9ja18xLmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvc3lzdGVtX2Nsb2NrXzEu ZjkwCmluZGV4IDQxMDI3ZGViMjhmLi4wY2IwMTQ1ZTg4MSAxMDA2NDQKLS0tIGEvZ2NjL3Rl c3RzdWl0ZS9nZm9ydHJhbi5kZy9zeXN0ZW1fY2xvY2tfMS5mOTAKKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nZm9ydHJhbi5kZy9zeXN0ZW1fY2xvY2tfMS5mOTAKQEAgLTEsNCArMSw1IEBACiAh IHsgZGctZG8gcnVuIH0KKyEgeyBkZy1vcHRpb25zICItc3RkPWYyMDAzIiB9CiAKICAgaW50 ZWdlciA6OiBpLCBqLCBrCiAgIGludGVnZXIoa2luZD04KSA6OiBpOCwgajgsIGs4CmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3N5c3RlbV9jbG9ja18zLmYwOCBi L2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvc3lzdGVtX2Nsb2NrXzMuZjA4CmluZGV4IGU1 MmE1MWE3ZGE0Li5jMTI4NDliNzdhYiAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nZm9y dHJhbi5kZy9zeXN0ZW1fY2xvY2tfMy5mMDgKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJh bi5kZy9zeXN0ZW1fY2xvY2tfMy5mMDgKQEAgLTEsNCArMSw1IEBACiAhIHsgZGctZG8gcnVu IH0KKyEgeyBkZy1vcHRpb25zICItc3RkPWYyMDA4IiB9CiAhIFBSNjQ0MzIKIHByb2dyYW0g Y291bnRlbQogICBpbXBsaWNpdCBub25lCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dm b3J0cmFuLmRnL3N5c3RlbV9jbG9ja180LmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvc3lzdGVtX2Nsb2NrXzQuZjkwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi4xYmI0MmVmYWM5NQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUv Z2ZvcnRyYW4uZGcvc3lzdGVtX2Nsb2NrXzQuZjkwCkBAIC0wLDAgKzEsMjQgQEAKKyEgeyBk Zy1kbyBjb21waWxlIH0KKyEgeyBkZy1vcHRpb25zICItc3RkPWYyMDIzIiB9CishIFBSIGZv cnRyYW4vMTEyNjA5IC0gRjIwMjMgcmVzdHJpY3Rpb25zIG9uIGludGVnZXIgYXJndW1lbnRz IHRvIFNZU1RFTV9DTE9DSworCitwcm9ncmFtIHAKKyAgaW1wbGljaXQgbm9uZQorICBpbnRl Z2VyICAgIDo6IGksICBqLCAgaworICBpbnRlZ2VyKDIpIDo6IGkyLCBqMiwgazIKKyAgaW50 ZWdlcig4KSA6OiBpOCwgajgsIGs4CisgIHJlYWwgICAgICAgOjogeAorCisgIGNhbGwgc3lz dGVtX2Nsb2NrKGNvdW50PWkyKSAgICAgICEgeyBkZy1lcnJvciAia2luZCBzbWFsbGVyIHRo YW4gZGVmYXVsdCBpbnRlZ2VyIiB9CisgIGNhbGwgc3lzdGVtX2Nsb2NrKGNvdW50X3JhdGU9 ajIpICEgeyBkZy1lcnJvciAia2luZCBzbWFsbGVyIHRoYW4gZGVmYXVsdCBpbnRlZ2VyIiB9 CisgIGNhbGwgc3lzdGVtX2Nsb2NrKGNvdW50X21heD1rMikgICEgeyBkZy1lcnJvciAia2lu ZCBzbWFsbGVyIHRoYW4gZGVmYXVsdCBpbnRlZ2VyIiB9CisKKyAgY2FsbCBzeXN0ZW1fY2xv Y2soY291bnQ9aTgsY291bnRfcmF0ZT14LGNvdW50X21heD1rOCkKKyAgY2FsbCBzeXN0ZW1f Y2xvY2soY291bnQ9aSwgY291bnRfcmF0ZT1qOCkgICAgICEgeyBkZy1lcnJvciAiZGlmZmVy ZW50IGtpbmQiIH0KKyAgY2FsbCBzeXN0ZW1fY2xvY2soY291bnQ9aTgsY291bnRfcmF0ZT1q KSAgICAgICEgeyBkZy1lcnJvciAiZGlmZmVyZW50IGtpbmQiIH0KKyAgY2FsbCBzeXN0ZW1f Y2xvY2soY291bnQ9aSwgY291bnRfbWF4PWs4KSAgICAgICEgeyBkZy1lcnJvciAiZGlmZmVy ZW50IGtpbmQiIH0KKyAgY2FsbCBzeXN0ZW1fY2xvY2soY291bnQ9aTgsY291bnRfbWF4PWsp ICAgICAgICEgeyBkZy1lcnJvciAiZGlmZmVyZW50IGtpbmQiIH0KKyAgY2FsbCBzeXN0ZW1f Y2xvY2soY291bnRfcmF0ZT1qLCBjb3VudF9tYXg9azgpICEgeyBkZy1lcnJvciAiZGlmZmVy ZW50IGtpbmQiIH0KKyAgY2FsbCBzeXN0ZW1fY2xvY2soY291bnRfcmF0ZT1qOCxjb3VudF9t YXg9aykgICEgeyBkZy1lcnJvciAiZGlmZmVyZW50IGtpbmQiIH0KKyAgY2FsbCBzeXN0ZW1f Y2xvY2soaSx4LGs4KSAgICAgICAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiZGlmZmVy ZW50IGtpbmQiIH0KK2VuZAotLSAKMi4zNS4zCgo= --------------wOrMR0iAmNT0BdMWk7zSACmN--