From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24821 invoked by alias); 8 Nov 2018 17:09:54 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 24793 invoked by uid 89); 8 Nov 2018 17:09:53 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy=1010, 1-4, PRINT, sk:OPT_fch X-HELO: mail-io1-f43.google.com Received: from mail-io1-f43.google.com (HELO mail-io1-f43.google.com) (209.85.166.43) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 08 Nov 2018 17:09:49 +0000 Received: by mail-io1-f43.google.com with SMTP id t81-v6so15152874iod.10; Thu, 08 Nov 2018 09:09:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=wCUDgCSEReZdSH3jIZkONZiMcT18s8yQrRjoGFu9L24=; b=CQlW41zJSb2psCOYZt3mbrgAnXqcc3Wn9kjMp5kWKOM0LXIjRHc8ixs6hMM+p6AAfc shdqoPCzkWLpxZUb3bsbPeUZnD/HykxFIjkPaAlSzsOXcrncEDWFI1pGBlpHUHTivY2Q wNwvOZyHX7KKPfiQdjEGifLNxPFb9vbWKcVRDBo/WZi3CGkhZNZSrNmYD8fFUC+1MgUM ERWrfGOLvrLTm19nm9mfqlnZ4u1CpLFYBlhgtmskb1VoauKyYtVFO9oVYWXJmRZIJ45B 6cf4IU13ZPXJqh5iw8EeEBMcQTVv6UI0a5geU1geS5WyUdYPtvj/aVpg/9iDzATC7Hff jBfA== MIME-Version: 1.0 References: <686ba917-27d4-451b-a0de-b28074166f2c@codethink.co.uk> <20181107152216.GD11625@tucnak> <20181107223230.GI11625@tucnak> In-Reply-To: <20181107223230.GI11625@tucnak> From: Fritz Reese Date: Thu, 08 Nov 2018 17:09:00 -0000 Message-ID: Subject: Re: PR fortran/87919 patch for -fno-dec-structure To: Jakub Jelinek Cc: mark.eggleston@codethink.co.uk, fortran , gcc-patches , beth.white@codethink.co.uk, emmet.hikory@codethink.co.uk, Jeff Law Content-Type: multipart/mixed; boundary="0000000000004509d8057a2a4d0e" X-SW-Source: 2018-11/txt/msg00625.txt.bz2 --0000000000004509d8057a2a4d0e Content-Type: text/plain; charset="UTF-8" Content-length: 6295 On Wed, Nov 7, 2018 at 5:32 PM Jakub Jelinek wrote: > > On Wed, Nov 07, 2018 at 05:05:13PM -0500, Fritz Reese wrote: > > --- a/gcc/fortran/options.c > +++ b/gcc/fortran/options.c > @@ -32,6 +32,20 @@ along with GCC; see the file COPYING3. If not see > > gfc_option_t gfc_option; > > +#define _expand(m) m > > I think it would be better to avoid names like _expand, too generic > name and starts with underscore, name it e.g. SET_BITFLAG_1 or something > similar. And it isn't mentioned in the ChangeLog. I find "expand" a more helpful name than "set_bitflag_1" since it describes what the macro does. However, I don't think it makes too much of a difference so I'll follow your preference (but I'll use SET_BITFLAG2 since then the definition line fits in 80 characters). > > @@ -62,14 +75,30 @@ set_dec_flags (int value) > } > > What about the > /* Allow legacy code without warnings. */ > gfc_option.allow_std |= GFC_STD_F95_OBS | GFC_STD_F95_DEL > | GFC_STD_GNU | GFC_STD_LEGACY; > gfc_option.warn_std &= ~(GFC_STD_LEGACY | GFC_STD_F95_DEL); > that is done for value, shouldn't set_dec_flags remove those > flags again? Maybe not the allow_std ones, because those are set already by > default, perhaps just the warn_std flags? > Sure. I wasn't convinced about this and how it might interplay with -std= so I left it alone, but I suppose it makes sense to unsuppress the warnings when disabling -fdec. > --- /dev/null > +++ b/gcc/testsuite/gfortran.dg/array_temporaries_5.f90 > @@ -0,0 +1,20 @@ > +! { dg-do run } > +! { dg-options "-fcheck-array-temporaries -fno-check-array-temporaries" } > +! > +! PR fortran/87919 > +! > +! Ensure -fno-check-array-temporaries disables array temporary checking. > +! Copied from array_temporaries_2.f90. > > For tests where you expect no errors and that are just copies of other > testcases, perhaps > include 'array_temporaries_2.f90' > or similar instead? > Strictly speaking it's not an exact copy because it omits the final { dg-output } check for the runtime warning, since the warning is supposed to occur in array_temporaries_2.f90 but not in the new case array_temporaries_5.f90. I assumed include would propagate the { dg-output } check -- upon actually testing this, it appears that is not the case. I find this misleading at a glance, but it works, so I don't mind this with an extra comment line. Attached is a new patch which incorporates your recommendations. Here's the diff between the two, followed by the new changelog: diff --git a/gcc/fortran/options.c b/gcc/fortran/options.c index e703cad96fd..167621905bc 100644 --- a/gcc/fortran/options.c +++ b/gcc/fortran/options.c @@ -32,8 +32,6 @@ along with GCC; see the file COPYING3. If not see gfc_option_t gfc_option; -#define _expand(m) m - #define SET_FLAG(flag, condition, on_value, off_value) \ do \ { \ @@ -43,8 +41,10 @@ gfc_option_t gfc_option; flag = (off_value); \ } while (0) +#define SET_BITFLAG2(m) m + #define SET_BITFLAG(flag, condition, value) \ - _expand (SET_FLAG (flag, condition, (flag | (value)), (flag & ~(value)))) + SET_BITFLAG2 (SET_FLAG (flag, condition, (flag | (value)), (flag & ~(value)))) /* Set flags that control warnings and errors for different @@ -66,15 +66,17 @@ set_default_std_flags (void) static void set_dec_flags (int value) { + /* Allow legacy code without warnings. + Nb. We do not unset the allowed standards with value == 0 because + they are set by default in set_default_std_flags. */ if (value) - { - /* Allow legacy code without warnings. */ - gfc_option.allow_std |= GFC_STD_F95_OBS | GFC_STD_F95_DEL - | GFC_STD_GNU | GFC_STD_LEGACY; - gfc_option.warn_std &= ~(GFC_STD_LEGACY | GFC_STD_F95_DEL); - } + gfc_option.allow_std |= GFC_STD_F95_OBS | GFC_STD_F95_DEL + | GFC_STD_GNU | GFC_STD_LEGACY; + + SET_BITFLAG (gfc_option.warn_std, !value, GFC_STD_LEGACY); + SET_BITFLAG (gfc_option.warn_std, !value, GFC_STD_F95_DEL); - /* Set other DEC compatibility extensions. */ + /* Set (or unset) other DEC compatibility extensions. */ SET_BITFLAG (flag_dollar_ok, value, value); SET_BITFLAG (flag_cray_pointer, value, value); SET_BITFLAG (flag_dec_structure, value, value); @@ -855,3 +871,7 @@ gfc_get_option_string (void) } #undef SET_BITFLAG +#undef SET_BITFLAG2 #undef SET_FLAG -#undef _expand diff --git a/gcc/testsuite/gfortran.dg/array_temporaries_5.f90 b/gcc/testsuite/gfortran.dg/array_temporaries_5.f90 index 0070a935933..dd147ba38ed 100644 --- a/gcc/testsuite/gfortran.dg/array_temporaries_5.f90 +++ b/gcc/testsuite/gfortran.dg/array_temporaries_5.f90 @@ -4,17 +4,7 @@ ! PR fortran/87919 ! ! Ensure -fno-check-array-temporaries disables array temporary checking. -! Copied from array_temporaries_2.f90. ! -program test - implicit none - integer :: a(3,3) - call foo(a(:,1)) ! OK, no temporary created - call foo(a(1,:)) ! BAD, temporary var created -contains - subroutine foo(x) - integer :: x(3) - x = 5 - end subroutine foo -end program test +! Note that 'include' drops the dg-output check from the original test case. +include 'array_temporaries_2.f90' >>>>>> ChangeLog <<<<<< PR fortran/87919 Fix handling -fno-* prefix for init-local-zero, check-array-temporaries and dec. gcc/fortran/ * options.c (SET_FLAG, SET_BITFLAG, SET_BITFLAG2): New macros. (set_dec_flags): Set/unset DEC and std flags according to value. (set_init_local_zero): New helper for -finit-local-zero flag group. (gfc_init_options): Fix disabling of init flags, array temporaries check, and dec flags when value is zero (from -fno-*). gcc/testsuiste/ * gfortran.dg/array_temporaries_5.f90: New test. * gfortran.dg/dec_bitwise_ops_3.f90: Ditto. * gfortran.dg/dec_d_lines_3.f: Ditto. * gfortran.dg/dec_exp_4.f90: Ditto. * gfortran.dg/dec_exp_5.f90: Ditto. * gfortran.dg/dec_io_7.f90: Ditto. * gfortran.dg/dec_structure_24.f: Ditto. * gfortran.dg/dec_structure_25.f: Ditto. * gfortran.dg/dec_structure_26.f: Ditto. * gfortran.dg/dec_structure_27.f: Ditto. * gfortran.dg/dec_type_print_3.f90: Ditto. * gfortran.dg/init_flag_20.f90: Ditto. --0000000000004509d8057a2a4d0e Content-Type: text/x-patch; charset="US-ASCII"; name="0002-PR-fortran-87919.patch" Content-Disposition: attachment; filename="0002-PR-fortran-87919.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jo8uiw600 Content-length: 25027 RnJvbSA3MjU3ZDg4ZTA1MGY5NmY4M2I2NmI4MzEzMDg3ZGJjODkzNGRjNDY1 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGcml0eiBSZWVzZSA8 ZnJpdHpvcmVlc2VAZ21haWwuY29tPgpEYXRlOiBUaHUsIDggTm92IDIwMTgg MTE6NTg6NDEgLTA1MDAKU3ViamVjdDogW1BBVENIXSBQUiBmb3J0cmFuLzg3 OTE5CgpGaXggaGFuZGxpbmcgLWZuby0qIHByZWZpeCBmb3IgaW5pdC1sb2Nh bC16ZXJvLCBjaGVjay1hcnJheS10ZW1wb3JhcmllcyBhbmQgZGVjLgoKZ2Nj L2ZvcnRyYW4vCgkqIG9wdGlvbnMuYyAoU0VUX0ZMQUcsIFNFVF9CSVRGTEFH LCBTRVRfQklURkxBRzIpOiBOZXcgbWFjcm9zLgoJKHNldF9kZWNfZmxhZ3Mp OiBTZXQvdW5zZXQgREVDIGFuZCBzdGQgZmxhZ3MgYWNjb3JkaW5nIHRvIHZh bHVlLgoJKHNldF9pbml0X2xvY2FsX3plcm8pOiBOZXcgaGVscGVyIGZvciAt ZmluaXQtbG9jYWwtemVybyBmbGFnIGdyb3VwLgoJKGdmY19pbml0X29wdGlv bnMpOiBGaXggZGlzYWJsaW5nIG9mIGluaXQgZmxhZ3MsIGFycmF5IHRlbXBv cmFyaWVzCgljaGVjaywgYW5kIGRlYyBmbGFncyB3aGVuIHZhbHVlIGlzIHpl cm8gKGZyb20gLWZuby0qKS4KCmdjYy90ZXN0c3Vpc3RlLwoJKiBnZm9ydHJh bi5kZy9hcnJheV90ZW1wb3Jhcmllc181LmY5MDogTmV3IHRlc3QuCgkqIGdm b3J0cmFuLmRnL2RlY19iaXR3aXNlX29wc18zLmY5MDogRGl0dG8uCgkqIGdm b3J0cmFuLmRnL2RlY19kX2xpbmVzXzMuZjogRGl0dG8uCgkqIGdmb3J0cmFu LmRnL2RlY19leHBfNC5mOTA6IERpdHRvLgoJKiBnZm9ydHJhbi5kZy9kZWNf ZXhwXzUuZjkwOiBEaXR0by4KCSogZ2ZvcnRyYW4uZGcvZGVjX2lvXzcuZjkw OiBEaXR0by4KCSogZ2ZvcnRyYW4uZGcvZGVjX3N0cnVjdHVyZV8yNC5mOiBE aXR0by4KCSogZ2ZvcnRyYW4uZGcvZGVjX3N0cnVjdHVyZV8yNS5mOiBEaXR0 by4KCSogZ2ZvcnRyYW4uZGcvZGVjX3N0cnVjdHVyZV8yNi5mOiBEaXR0by4K CSogZ2ZvcnRyYW4uZGcvZGVjX3N0cnVjdHVyZV8yNy5mOiBEaXR0by4KCSog Z2ZvcnRyYW4uZGcvZGVjX3R5cGVfcHJpbnRfMy5mOTA6IERpdHRvLgoJKiBn Zm9ydHJhbi5kZy9pbml0X2ZsYWdfMjAuZjkwOiBEaXR0by4KLS0tCiBnY2Mv Zm9ydHJhbi9vcHRpb25zLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgODggKysrKysrKysrKysrKystLS0tLS0tLS0KIGdjYy90ZXN0c3VpdGUv Z2ZvcnRyYW4uZGcvYXJyYXlfdGVtcG9yYXJpZXNfNS5mOTAgfCAxMCArKysK IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2JpdHdpc2Vfb3BzXzMu ZjkwICAgfCAxOSArKysrKwogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9k ZWNfZF9saW5lc18zLmYgICAgICAgICB8IDEwICsrKwogZ2NjL3Rlc3RzdWl0 ZS9nZm9ydHJhbi5kZy9kZWNfZXhwXzQuZjkwICAgICAgICAgICB8IDEzICsr KysKIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2V4cF81LmY5MCAg ICAgICAgICAgfCAxNSArKysrCiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRn L2RlY19pb183LmY5MCAgICAgICAgICAgIHwgMjIgKysrKysrCiBnY2MvdGVz dHN1aXRlL2dmb3J0cmFuLmRnL2RlY19zdHJ1Y3R1cmVfMjQuZiAgICAgIHwg MjEgKysrKysrCiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19zdHJ1 Y3R1cmVfMjUuZiAgICAgIHwgMjIgKysrKysrCiBnY2MvdGVzdHN1aXRlL2dm b3J0cmFuLmRnL2RlY19zdHJ1Y3R1cmVfMjYuZiAgICAgIHwgMjIgKysrKysr CiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19zdHJ1Y3R1cmVfMjcu ZiAgICAgIHwgMjAgKysrKysrCiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRn L2RlY190eXBlX3ByaW50XzMuZjkwICAgIHwgMjkgKysrKysrKysKIGdjYy90 ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvaW5pdF9mbGFnXzIwLmY5MCAgICAgICAg fCA2MiArKysrKysrKysrKysrKysrCiAxMyBmaWxlcyBjaGFuZ2VkLCAzMjAg aW5zZXJ0aW9ucygrKSwgMzMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx MDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9hcnJheV90ZW1wb3Jh cmllc181LmY5MAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUv Z2ZvcnRyYW4uZGcvZGVjX2JpdHdpc2Vfb3BzXzMuZjkwCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfZF9saW5l c18zLmYKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2dmb3J0 cmFuLmRnL2RlY19leHBfNC5mOTAKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2Mv dGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19leHBfNS5mOTAKIGNyZWF0ZSBt b2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19pb183 LmY5MAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRy YW4uZGcvZGVjX3N0cnVjdHVyZV8yNC5mCiBjcmVhdGUgbW9kZSAxMDA2NDQg Z2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfc3RydWN0dXJlXzI1LmYK IGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRn L2RlY19zdHJ1Y3R1cmVfMjYuZgogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90 ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX3N0cnVjdHVyZV8yNy5mCiBjcmVh dGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNf dHlwZV9wcmludF8zLmY5MAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0 c3VpdGUvZ2ZvcnRyYW4uZGcvaW5pdF9mbGFnXzIwLmY5MAoKZGlmZiAtLWdp dCBhL2djYy9mb3J0cmFuL29wdGlvbnMuYyBiL2djYy9mb3J0cmFuL29wdGlv bnMuYwppbmRleCA3M2Y1Mzg5MzYxZC4uYWY4OWE1ZDJmYWYgMTAwNjQ0Ci0t LSBhL2djYy9mb3J0cmFuL29wdGlvbnMuYworKysgYi9nY2MvZm9ydHJhbi9v cHRpb25zLmMKQEAgLTMyLDYgKzMyLDIwIEBAIGFsb25nIHdpdGggR0NDOyBz ZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qgc2VlCiAKIGdmY19vcHRp b25fdCBnZmNfb3B0aW9uOwogCisjZGVmaW5lIFNFVF9GTEFHKGZsYWcsIGNv bmRpdGlvbiwgb25fdmFsdWUsIG9mZl92YWx1ZSkgXAorICBkbyBcCisgICAg eyBcCisgICAgICBpZiAoY29uZGl0aW9uKSBcCisJZmxhZyA9IChvbl92YWx1 ZSk7IFwKKyAgICAgIGVsc2UgXAorCWZsYWcgPSAob2ZmX3ZhbHVlKTsgXAor ICAgIH0gd2hpbGUgKDApCisKKyNkZWZpbmUgU0VUX0JJVEZMQUcyKG0pIG0K KworI2RlZmluZSBTRVRfQklURkxBRyhmbGFnLCBjb25kaXRpb24sIHZhbHVl KSBcCisgIFNFVF9CSVRGTEFHMiAoU0VUX0ZMQUcgKGZsYWcsIGNvbmRpdGlv biwgKGZsYWcgfCAodmFsdWUpKSwgKGZsYWcgJiB+KHZhbHVlKSkpKQorCiAK IC8qIFNldCBmbGFncyB0aGF0IGNvbnRyb2wgd2FybmluZ3MgYW5kIGVycm9y cyBmb3IgZGlmZmVyZW50CiAgICBGb3J0cmFuIHN0YW5kYXJkcyB0byB0aGVp ciBkZWZhdWx0IHZhbHVlcy4gIEtlZXAgaW4gc3luYyB3aXRoCkBAIC00Nywy OSArNjEsNDYgQEAgc2V0X2RlZmF1bHRfc3RkX2ZsYWdzICh2b2lkKQogICBn ZmNfb3B0aW9uLndhcm5fc3RkID0gR0ZDX1NURF9GMjAxOF9ERUwgfCBHRkNf U1REX0Y5NV9ERUwgfCBHRkNfU1REX0xFR0FDWTsKIH0KIAotCi0vKiBTZXQg YWxsIHRoZSBERUMgZXh0ZW5zaW9uIGZsYWdzLiAgKi8KKy8qIFNldCAob3Ig dW5zZXQpIHRoZSBERUMgZXh0ZW5zaW9uIGZsYWdzLiAgKi8KIAogc3RhdGlj IHZvaWQKIHNldF9kZWNfZmxhZ3MgKGludCB2YWx1ZSkKIHsKKyAgLyogQWxs b3cgbGVnYWN5IGNvZGUgd2l0aG91dCB3YXJuaW5ncy4KKyAgICAgTmIuIFdl IGRvIG5vdCB1bnNldCB0aGUgYWxsb3dlZCBzdGFuZGFyZHMgd2l0aCB2YWx1 ZSA9PSAwIGJlY2F1c2UKKyAgICAgdGhleSBhcmUgc2V0IGJ5IGRlZmF1bHQg aW4gc2V0X2RlZmF1bHRfc3RkX2ZsYWdzLiAgKi8KICAgaWYgKHZhbHVlKQot ICAgIHsKLSAgICAgIC8qIEFsbG93IGxlZ2FjeSBjb2RlIHdpdGhvdXQgd2Fy bmluZ3MuICAqLwotICAgICAgZ2ZjX29wdGlvbi5hbGxvd19zdGQgfD0gR0ZD X1NURF9GOTVfT0JTIHwgR0ZDX1NURF9GOTVfREVMCi0gICAgICAgIHwgR0ZD X1NURF9HTlUgfCBHRkNfU1REX0xFR0FDWTsKLSAgICAgIGdmY19vcHRpb24u d2Fybl9zdGQgJj0gfihHRkNfU1REX0xFR0FDWSB8IEdGQ19TVERfRjk1X0RF TCk7Ci0gICAgfQotCi0gIC8qIFNldCBvdGhlciBERUMgY29tcGF0aWJpbGl0 eSBleHRlbnNpb25zLiAgKi8KLSAgZmxhZ19kb2xsYXJfb2sgfD0gdmFsdWU7 Ci0gIGZsYWdfY3JheV9wb2ludGVyIHw9IHZhbHVlOwotICBmbGFnX2RlY19z dHJ1Y3R1cmUgfD0gdmFsdWU7Ci0gIGZsYWdfZGVjX2ludHJpbnNpY19pbnRz IHw9IHZhbHVlOwotICBmbGFnX2RlY19zdGF0aWMgfD0gdmFsdWU7Ci0gIGZs YWdfZGVjX21hdGggfD0gdmFsdWU7CisgICAgZ2ZjX29wdGlvbi5hbGxvd19z dGQgfD0gR0ZDX1NURF9GOTVfT0JTIHwgR0ZDX1NURF9GOTVfREVMCisgICAg ICB8IEdGQ19TVERfR05VIHwgR0ZDX1NURF9MRUdBQ1k7CisKKyAgU0VUX0JJ VEZMQUcgKGdmY19vcHRpb24ud2Fybl9zdGQsICF2YWx1ZSwgR0ZDX1NURF9M RUdBQ1kpOworICBTRVRfQklURkxBRyAoZ2ZjX29wdGlvbi53YXJuX3N0ZCwg IXZhbHVlLCBHRkNfU1REX0Y5NV9ERUwpOworCisgIC8qIFNldCAob3IgdW5z ZXQpIG90aGVyIERFQyBjb21wYXRpYmlsaXR5IGV4dGVuc2lvbnMuICAqLwor ICBTRVRfQklURkxBRyAoZmxhZ19kb2xsYXJfb2ssIHZhbHVlLCB2YWx1ZSk7 CisgIFNFVF9CSVRGTEFHIChmbGFnX2NyYXlfcG9pbnRlciwgdmFsdWUsIHZh bHVlKTsKKyAgU0VUX0JJVEZMQUcgKGZsYWdfZGVjX3N0cnVjdHVyZSwgdmFs dWUsIHZhbHVlKTsKKyAgU0VUX0JJVEZMQUcgKGZsYWdfZGVjX2ludHJpbnNp Y19pbnRzLCB2YWx1ZSwgdmFsdWUpOworICBTRVRfQklURkxBRyAoZmxhZ19k ZWNfc3RhdGljLCB2YWx1ZSwgdmFsdWUpOworICBTRVRfQklURkxBRyAoZmxh Z19kZWNfbWF0aCwgdmFsdWUsIHZhbHVlKTsKIH0KIAorLyogRW5hYmxlIChv ciBkaXNhYmxlKSAtZmluaXQtbG9jYWwtemVyby4gICovCisKK3N0YXRpYyB2 b2lkCitzZXRfaW5pdF9sb2NhbF96ZXJvIChpbnQgdmFsdWUpCit7CisgIGdm Y19vcHRpb24uZmxhZ19pbml0X2ludGVnZXJfdmFsdWUgPSAwOworICBnZmNf b3B0aW9uLmZsYWdfaW5pdF9jaGFyYWN0ZXJfdmFsdWUgPSAoY2hhcikwOwor CisgIFNFVF9GTEFHIChnZmNfb3B0aW9uLmZsYWdfaW5pdF9pbnRlZ2VyLCB2 YWx1ZSwgR0ZDX0lOSVRfSU5URUdFUl9PTiwKKwkgICAgR0ZDX0lOSVRfSU5U RUdFUl9PRkYpOworICBTRVRfRkxBRyAoZ2ZjX29wdGlvbi5mbGFnX2luaXRf bG9naWNhbCwgdmFsdWUsIEdGQ19JTklUX0xPR0lDQUxfRkFMU0UsCisJICAg IEdGQ19JTklUX0xPR0lDQUxfT0ZGKTsKKyAgU0VUX0ZMQUcgKGdmY19vcHRp b24uZmxhZ19pbml0X2NoYXJhY3RlciwgdmFsdWUsIEdGQ19JTklUX0NIQVJB Q1RFUl9PTiwKKwkgICAgR0ZDX0lOSVRfQ0hBUkFDVEVSX09GRik7CisgIFNF VF9GTEFHIChmbGFnX2luaXRfcmVhbCwgdmFsdWUsIEdGQ19JTklUX1JFQUxf WkVSTywgR0ZDX0lOSVRfUkVBTF9PRkYpOworfQogCiAvKiBSZXR1cm4gbGFu Z3VhZ2UgbWFzayBmb3IgRm9ydHJhbiBvcHRpb25zLiAgKi8KIApAQCAtMTA3 LDExICsxMzgsNyBAQCBnZmNfaW5pdF9vcHRpb25zICh1bnNpZ25lZCBpbnQg ZGVjb2RlZF9vcHRpb25zX2NvdW50LAogCiAgIGdmY19vcHRpb24uZmxhZ19w cmVwcm9jZXNzZWQgPSAwOwogICBnZmNfb3B0aW9uLmZsYWdfZF9saW5lcyA9 IC0xOwotICBnZmNfb3B0aW9uLmZsYWdfaW5pdF9pbnRlZ2VyID0gR0ZDX0lO SVRfSU5URUdFUl9PRkY7Ci0gIGdmY19vcHRpb24uZmxhZ19pbml0X2ludGVn ZXJfdmFsdWUgPSAwOwotICBnZmNfb3B0aW9uLmZsYWdfaW5pdF9sb2dpY2Fs ID0gR0ZDX0lOSVRfTE9HSUNBTF9PRkY7Ci0gIGdmY19vcHRpb24uZmxhZ19p bml0X2NoYXJhY3RlciA9IEdGQ19JTklUX0NIQVJBQ1RFUl9PRkY7Ci0gIGdm Y19vcHRpb24uZmxhZ19pbml0X2NoYXJhY3Rlcl92YWx1ZSA9IChjaGFyKTA7 CisgIHNldF9pbml0X2xvY2FsX3plcm8gKDApOwogICAKICAgZ2ZjX29wdGlv bi5mcGUgPSAwOwogICAvKiBBbGwgZXhjZXB0IEdGQ19GUEVfSU5FWEFDVC4g ICovCkBAIC02MDQsNyArNjMxLDcgQEAgZ2ZjX2hhbmRsZV9vcHRpb24gKHNp emVfdCBzY29kZSwgY29uc3QgY2hhciAqYXJnLCBIT1NUX1dJREVfSU5UIHZh bHVlLAogICAgICAgYnJlYWs7CiAKICAgICBjYXNlIE9QVF9mY2hlY2tfYXJy YXlfdGVtcG9yYXJpZXM6Ci0gICAgICBnZmNfb3B0aW9uLnJ0Y2hlY2sgfD0g R0ZDX1JUQ0hFQ0tfQVJSQVlfVEVNUFM7CisgICAgICBTRVRfQklURkxBRyAo Z2ZjX29wdGlvbi5ydGNoZWNrLCB2YWx1ZSwgR0ZDX1JUQ0hFQ0tfQVJSQVlf VEVNUFMpOwogICAgICAgYnJlYWs7CiAgICAgICAKICAgICBjYXNlIE9QVF9m ZF9saW5lc19hc19jb2RlOgpAQCAtNjU0LDEyICs2ODEsNyBAQCBnZmNfaGFu ZGxlX29wdGlvbiAoc2l6ZV90IHNjb2RlLCBjb25zdCBjaGFyICphcmcsIEhP U1RfV0lERV9JTlQgdmFsdWUsCiAgICAgICBicmVhazsKIAogICAgIGNhc2Ug T1BUX2Zpbml0X2xvY2FsX3plcm86Ci0gICAgICBnZmNfb3B0aW9uLmZsYWdf aW5pdF9pbnRlZ2VyID0gR0ZDX0lOSVRfSU5URUdFUl9PTjsKLSAgICAgIGdm Y19vcHRpb24uZmxhZ19pbml0X2ludGVnZXJfdmFsdWUgPSAwOwotICAgICAg ZmxhZ19pbml0X3JlYWwgPSBHRkNfSU5JVF9SRUFMX1pFUk87Ci0gICAgICBn ZmNfb3B0aW9uLmZsYWdfaW5pdF9sb2dpY2FsID0gR0ZDX0lOSVRfTE9HSUNB TF9GQUxTRTsKLSAgICAgIGdmY19vcHRpb24uZmxhZ19pbml0X2NoYXJhY3Rl ciA9IEdGQ19JTklUX0NIQVJBQ1RFUl9PTjsKLSAgICAgIGdmY19vcHRpb24u ZmxhZ19pbml0X2NoYXJhY3Rlcl92YWx1ZSA9IChjaGFyKTA7CisgICAgICBz ZXRfaW5pdF9sb2NhbF96ZXJvICh2YWx1ZSk7CiAgICAgICBicmVhazsKIAog ICAgIGNhc2UgT1BUX2Zpbml0X2xvZ2ljYWxfOgpAQCAtNzU5LDExICs3ODEs NyBAQCBnZmNfaGFuZGxlX29wdGlvbiAoc2l6ZV90IHNjb2RlLCBjb25zdCBj aGFyICphcmcsIEhPU1RfV0lERV9JTlQgdmFsdWUsCiAKICAgICBjYXNlIE9Q VF9mZGVjOgogICAgICAgLyogRW5hYmxlIGFsbCBERUMgZXh0ZW5zaW9ucy4g ICovCi0gICAgICBzZXRfZGVjX2ZsYWdzICgxKTsKLSAgICAgIGJyZWFrOwot Ci0gICAgY2FzZSBPUFRfZmRlY19zdHJ1Y3R1cmU6Ci0gICAgICBmbGFnX2Rl Y19zdHJ1Y3R1cmUgPSAxOworICAgICAgc2V0X2RlY19mbGFncyAodmFsdWUp OwogICAgICAgYnJlYWs7CiAgICAgfQogCkBAIC04NTUsMyArODczLDcgQEAg Z2ZjX2dldF9vcHRpb25fc3RyaW5nICh2b2lkKQogICByZXN1bHRbLS1wb3Nd ID0gJ1wwJzsKICAgcmV0dXJuIHJlc3VsdDsKIH0KKworI3VuZGVmIFNFVF9C SVRGTEFHCisjdW5kZWYgU0VUX0JJVEZMQUcyCisjdW5kZWYgU0VUX0ZMQUcK ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvYXJyYXlf dGVtcG9yYXJpZXNfNS5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRn L2FycmF5X3RlbXBvcmFyaWVzXzUuZjkwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi5kZDE0N2JhMzhlZAotLS0gL2Rldi9udWxs CisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvYXJyYXlfdGVtcG9y YXJpZXNfNS5mOTAKQEAgLTAsMCArMSwxMCBAQAorISB7IGRnLWRvIHJ1biB9 CishIHsgZGctb3B0aW9ucyAiLWZjaGVjay1hcnJheS10ZW1wb3JhcmllcyAt Zm5vLWNoZWNrLWFycmF5LXRlbXBvcmFyaWVzIiB9CishCishIFBSIGZvcnRy YW4vODc5MTkKKyEKKyEgRW5zdXJlIC1mbm8tY2hlY2stYXJyYXktdGVtcG9y YXJpZXMgZGlzYWJsZXMgYXJyYXkgdGVtcG9yYXJ5IGNoZWNraW5nLgorIQor CishIE5vdGUgdGhhdCAnaW5jbHVkZScgZHJvcHMgdGhlIGRnLW91dHB1dCBj aGVjayBmcm9tIHRoZSBvcmlnaW5hbCB0ZXN0IGNhc2UuCitpbmNsdWRlICdh cnJheV90ZW1wb3Jhcmllc18yLmY5MCcKZGlmZiAtLWdpdCBhL2djYy90ZXN0 c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2JpdHdpc2Vfb3BzXzMuZjkwIGIvZ2Nj L3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfYml0d2lzZV9vcHNfMy5mOTAK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjg4ODg3 YzE2ZjhlCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9y dHJhbi5kZy9kZWNfYml0d2lzZV9vcHNfMy5mOTAKQEAgLTAsMCArMSwxOSBA QAorISB7IGRnLWRvIGNvbXBpbGUgfQorISB7IGRnLW9wdGlvbnMgIi1zdGQ9 bGVnYWN5IC1mZGVjIC1mbm8tZGVjIiB9CishCishIE1ha2Ugc3VyZSAtZm5v LWRlYyBkaXNhYmxlcyBiaXR3aXNlIG9wcyBhbmQgY2hlY2sgZm9yIHRoZSBy aWdodCBlcnJvcnMuCishIC1zdGQ9bGVnYWN5IGlzIGFkZGVkIHRvIGF2b2lk IHRoZSAuWE9SLiBleHRlbnNpb24gd2FybmluZy4KKyEKKworaW1wbGljaXQg bm9uZQorCitpbnRlZ2VyIGkKKworaSA9IDMgIC5BTkQuIDUgISB7IGRnLWVy cm9yICJPcGVyYW5kcyBvZiBsb2dpY2FsIG9wZXJhdG9yIiB9CitpID0gMyAg LkVRVi4gNSAhIHsgZGctZXJyb3IgIk9wZXJhbmRzIG9mIGxvZ2ljYWwgb3Bl cmF0b3IiIH0KK2kgPSAzIC5ORVFWLiA1ICEgeyBkZy1lcnJvciAiT3BlcmFu ZHMgb2YgbG9naWNhbCBvcGVyYXRvciIgfQoraSA9ICAgIC5OT1QuIDUgISB7 IGRnLWVycm9yICJPcGVyYW5kIG9mIiB9CitpID0gMyAgIC5PUi4gNSAhIHsg ZGctZXJyb3IgIk9wZXJhbmRzIG9mIGxvZ2ljYWwgb3BlcmF0b3IiIH0KK2kg PSAzICAuWE9SLiA1ICEgeyBkZy1lcnJvciAiT3BlcmFuZHMgb2YgbG9naWNh bCBvcGVyYXRvciIgfQorCitlbmQKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2ZvcnRyYW4uZGcvZGVjX2RfbGluZXNfMy5mIGIvZ2NjL3Rlc3RzdWl0 ZS9nZm9ydHJhbi5kZy9kZWNfZF9saW5lc18zLmYKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZiMzU5MjM3MTJiCi0tLSAvZGV2 L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfZF9s aW5lc18zLmYKQEAgLTAsMCArMSwxMCBAQAorISB7IGRnLWRvIGNvbXBpbGUg fQorISB7IGRnLW9wdGlvbnMgIi1mZml4ZWQtZm9ybSAtZm5vLWRlYyIgfQor IQorISBFbnN1cmUgLWZkLWxpbmVzLWFzLWNvbW1lbnRzIGlzIG5vdCBlbmFi bGVkIGJ5IGRlZmF1bHQgd2l0aG91dCAtZmRlYy4KKyEKKworZCAgICAgISB7 IGRnLWVycm9yICJOb24tbnVtZXJpYyBjaGFyYWN0ZXIgaW4gc3RhdGVtZW50 IGxhYmVsIiB9CitEICAgICAhIHsgZGctZXJyb3IgIk5vbi1udW1lcmljIGNo YXJhY3RlciBpbiBzdGF0ZW1lbnQgbGFiZWwiIH0KKworICAgICAgZW5kCmRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19leHBf NC5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19leHBfNC5m OTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE5 YzY5OThkNzEyCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Zm9ydHJhbi5kZy9kZWNfZXhwXzQuZjkwCkBAIC0wLDAgKzEsMTMgQEAKKyEg eyBkZy1kbyBjb21waWxlIH0KKyEgeyBkZy1vcHRpb25zICItZmRlYyAtZm5v LWRlYyIgfQorIQorISBTYW1lIGFzIGRlY19leHBfMiwgYnV0IG1ha2Ugc3Vy ZSAtZm5vLWRlYyBkaXNhYmxlcyAtZmRlYy4KKyEKKworaW1wbGljaXQgbm9u ZQorCityZWFsLCBwYXJhbWV0ZXIgOjogcjEgPSA4ZSAhIHsgZGctZXJyb3Ig Ik1pc3NpbmcgZXhwb25lbnQiIH0KK3JlYWwsIHZvbGF0aWxlIDo6IHIyCity MiA9IDhlICEgeyBkZy1lcnJvciAiTWlzc2luZyBleHBvbmVudCIgfQorCitl bmQKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVj X2V4cF81LmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX2V4 cF81LmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uY2UxNDg2MDQxOGYKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL2RlY19leHBfNS5mOTAKQEAgLTAsMCArMSwxNSBA QAorISB7IGRnLWRvIHJ1biAieGZhaWwgKi0qLSoiIH0KKyEgeyBkZy1vcHRp b25zICItZmRlYyAtZm5vLWRlYyIgfQorIQorISBTYW1lIGFzIGRlY19leHBf MywgYnV0IG1ha2Ugc3VyZSAtZm5vLWRlYyBkaXNhYmxlcyAtZmRlYy4KKyEK KworaW1wbGljaXQgbm9uZQorCityZWFsIDo6IHIKK2NoYXJhY3RlcigyKSA6 OiBzCitzID0gJzhlJworCityZWFkIChzLCAqKSByICEgeyBYRkFJTCAiQmFk IHJlYWwgbnVtYmVyIiB9CisKK2VuZApkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nZm9ydHJhbi5kZy9kZWNfaW9fNy5mOTAgYi9nY2MvdGVzdHN1aXRl L2dmb3J0cmFuLmRnL2RlY19pb183LmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uMzM5Yjg4OTYxNjkKLS0tIC9kZXYvbnVs bAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19pb183LmY5 MApAQCAtMCwwICsxLDIyIEBACishIHsgZGctZG8gY29tcGlsZSB9CishIHsg ZGctb3B0aW9ucyAiLWZkZWMgLWZuby1kZWMiIH0KKyEKKyEgTWFrZSBzdXJl IC1mbm8tZGVjIHJlamVjdHMgLWZkZWMgSS9PIHNwZWNpZmllcnMuCishCisK K2ltcGxpY2l0IG5vbmUKKworaW50ZWdlciwgcGFyYW1ldGVyIDo6IGZkPTMK K2NoYXJhY3RlcigqKSwgcGFyYW1ldGVyIDo6IGZuYW1lPSJ0ZXN0LnR4dCIK Kworb3BlbiAodW5pdD1mZCwgZmlsZT1mbmFtZSwgcmVhZG9ubHkpICEgeyBk Zy1lcnJvciAiaXMgYSBERUMgZXh0ZW5zaW9uIiB9CitvcGVuICh1bml0PWZk LCBmaWxlPWZuYW1lLCBhY3Rpb249J3JlYWQnLCBzaGFyZWQpICEgeyBkZy1l cnJvciAiaXMgYSBERUMgZXh0ZW5zaW9uIiB9CitvcGVuICh1bml0PWZkLCBm aWxlPWZuYW1lLCBhY3Rpb249J3JlYWQnLCBzaGFyZT0nREVOWU5PTkUnKSAh IHsgZGctZXJyb3IgImlzIGEgREVDIGV4dGVuc2lvbiIgfQorb3BlbiAodW5p dD1mZCwgZmlsZT1mbmFtZSwgYWN0aW9uPSd3cml0ZScsIG5vc2hhcmVkKSAh IHsgZGctZXJyb3IgImlzIGEgREVDIGV4dGVuc2lvbiIgfQorb3BlbiAodW5p dD1mZCwgZmlsZT1mbmFtZSwgYWN0aW9uPSd3cml0ZScsIHNoYXJlPSdERU5Z UlcnKSAhIHsgZGctZXJyb3IgImlzIGEgREVDIGV4dGVuc2lvbiIgfQorb3Bl bih1bml0PWZkLCAgZmlsZT1mbmFtZSwgYWN0aW9uID0nV1JJVEUnLCBjYXJy aWFnZWNvbnRyb2w9J0ZPUlRSQU4nKSAhIHsgZGctZXJyb3IgImlzIGEgREVD IGV4dGVuc2lvbiIgfQorb3Blbih1bml0PWZkLCAgZmlsZT1mbmFtZSwgYWN0 aW9uID0nV1JJVEUnLCBjYXJyaWFnZWNvbnRyb2w9J0xJU1QnKSAhIHsgZGct ZXJyb3IgImlzIGEgREVDIGV4dGVuc2lvbiIgfQorb3Blbih1bml0PWZkLCAg ZmlsZT1mbmFtZSwgYWN0aW9uID0nV1JJVEUnLCBjYXJyaWFnZWNvbnRyb2w9 J05PTkUnKSAhIHsgZGctZXJyb3IgImlzIGEgREVDIGV4dGVuc2lvbiIgfQor CisKK2VuZApkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5k Zy9kZWNfc3RydWN0dXJlXzI0LmYgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFu LmRnL2RlY19zdHJ1Y3R1cmVfMjQuZgpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uNDEwZDNhZjQwODAKLS0tIC9kZXYvbnVsbAor KysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19zdHJ1Y3R1cmVf MjQuZgpAQCAtMCwwICsxLDIxIEBACishIHsgZGctZG8gY29tcGlsZSB9Cish CishIFBSIGZvcnRyYW4vODc5MTkKKyEKKyEgU2hvdWxkIGZhaWwgdG8gY29t cGlsZSB3aXRob3V0IHRoZSAtZmRlYyBvciAtZmRlYy1zdHJ1Y3R1cmUgb3B0 aW9ucy4KKyEKKyEgQ29udHJpYnV0ZWQgYnkgTWFyayBFZ2dsZXN0b24gPG1h cmsuZWdnbGVzdG9uQGNvZGV0aGluay5jb20+CisKKyAgICAgIHByb2dyYW0g dGVzdAorCisgICAgICAgIHN0cnVjdHVyZSAvaW5mby8gISB7IGRnLWVycm9y ICItZmRlYy1zdHJ1Y3R1cmUiIH0KKyAgICAgICAgICBpbnRlZ2VyIGEKKyAg ICAgICAgICByZWFsIGIKKyAgICAgICAgIGVuZCBzdHJ1Y3R1cmUgICAhIHsg ZGctZXJyb3IgIkVORCBQUk9HUkFNIiB9CisKKyAgICAgICAgcmVjb3JkIC9p bmZvLyBzICAhIHsgZGctZXJyb3IgIi1mZGVjLXN0cnVjdHVyZSIgfQorICAg ICAgICBzLmEgPSAxOTkgICAgICAgICEgeyBkZy1lcnJvciAiVW5jbGFzc2lm aWFibGUiIH0KKyAgICAgICAgcy5iID0gNy42ICAgICAgICAhIHsgZGctZXJy b3IgIlVuY2xhc3NpZmlhYmxlIiB9CisgICAgICAgIHdyaXRlICgqLCopIHMu YSAgISB7IGRnLWVycm9yICJTeW50YXggZXJyb3IgaW4gV1JJVEUiIH0KKyAg ICAgICAgd3JpdGUgKCosKikgcy5iICAhIHsgZGctZXJyb3IgIlN5bnRheCBl cnJvciBpbiBXUklURSIgfQorICAgICAgZW5kIHByb2dyYW0gdGVzdApkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfc3RydWN0 dXJlXzI1LmYgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19zdHJ1 Y3R1cmVfMjUuZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uNGYxZWE1OGI4ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVz dHN1aXRlL2dmb3J0cmFuLmRnL2RlY19zdHJ1Y3R1cmVfMjUuZgpAQCAtMCww ICsxLDIyIEBACishIHsgZGctZG8gcnVuIH0KKyEgeyBkZy1vcHRpb25zICIt ZmRlYyIgfQorIQorISBQUiBmb3J0cmFuLzg3OTE5CishCishIFNob3VsZCBj b21waWxlIGFuZCBydW4gd2l0aCB0aGUgLWZkZWMgb3B0aW9uLgorIQorISBD b250cmlidXRlZCBieSBNYXJrIEVnZ2xlc3RvbiA8bWFyay5lZ2dsZXN0b25A Y29kZXRoaW5rLmNvbT4KKyEKKyAgICAgIHByb2dyYW0gdGVzdAorCisgICAg ICAgIHN0cnVjdHVyZSAvaW5mby8KKyAgICAgICAgICBpbnRlZ2VyIGEKKyAg ICAgICAgICByZWFsIGIKKyAgICAgICAgIGVuZCBzdHJ1Y3R1cmUKKworICAg ICAgICByZWNvcmQgL2luZm8vIHMKKyAgICAgICAgcy5hID0gMTk5CisgICAg ICAgIHMuYiA9IDcuNgorICAgICAgICBpZiAocy5hIC5uZS4gMTk5KSBzdG9w IDEKKyAgICAgICAgaWYgKGFicyhzLmIgLSA3LjYpIC5ndC4gMWUtNSkgc3Rv cCAyCisgICAgICBlbmQgcHJvZ3JhbSB0ZXN0CmRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY19zdHJ1Y3R1cmVfMjYuZiBiL2dj Yy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX3N0cnVjdHVyZV8yNi5mCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xODZkNzJm NjIyYwotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRy YW4uZGcvZGVjX3N0cnVjdHVyZV8yNi5mCkBAIC0wLDAgKzEsMjIgQEAKKyEg eyBkZy1kbyBjb21waWxlIH0KKyEgeyBkZy1vcHRpb25zICItZmRlYyAtZm5v LWRlYy1zdHJ1Y3R1cmUiIH0KKyEKKyEgUFIgZm9ydHJhbi84NzkxOQorIQor ISBTaG91bGQgZmFpbCB0byBjb21waWxlIHdpdGggLWZkZWMgYW5kIC1mbm8t ZGVjLXN0cnVjdHVyZS4KKyEKKyEgQ29udHJpYnV0ZWQgYnkgTWFyayBFZ2ds ZXN0b24gPG1hcmsuZWdnbGVzdG9uQGNvZGV0aGluay5jb20+CishCisgICAg ICBwcm9ncmFtIHRlc3QKKworICAgICAgICBzdHJ1Y3R1cmUgL2luZm8vICEg eyBkZy1lcnJvciAiLWZkZWMtc3RydWN0dXJlIiB9CisgICAgICAgICAgaW50 ZWdlciBhCisgICAgICAgICAgcmVhbCBiCisgICAgICAgICBlbmQgc3RydWN0 dXJlICAgISB7IGRnLWVycm9yICJFTkQgUFJPR1JBTSIgfQorCisgICAgICAg IHJlY29yZCAvaW5mby8gcyAgISB7IGRnLWVycm9yICItZmRlYy1zdHJ1Y3R1 cmUiIH0KKyAgICAgICAgcy5hID0gMTk5ICAgICAgICAhIHsgZGctZXJyb3Ig IlVuY2xhc3NpZmlhYmxlIiB9CisgICAgICAgIHMuYiA9IDcuNiAgICAgICAg ISB7IGRnLWVycm9yICJVbmNsYXNzaWZpYWJsZSIgfQorICAgICAgICB3cml0 ZSAoKiwqKSBzLmEgICEgeyBkZy1lcnJvciAiU3ludGF4IGVycm9yIGluIFdS SVRFIiB9CisgICAgICAgIHdyaXRlICgqLCopIHMuYiAgISB7IGRnLWVycm9y ICJTeW50YXggZXJyb3IgaW4gV1JJVEUiIH0KKyAgICAgIGVuZCBwcm9ncmFt IHRlc3QKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcv ZGVjX3N0cnVjdHVyZV8yNy5mIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5k Zy9kZWNfc3RydWN0dXJlXzI3LmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLjIzM2FhMzhhYjM2Ci0tLSAvZGV2L251bGwKKysr IGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9kZWNfc3RydWN0dXJlXzI3 LmYKQEAgLTAsMCArMSwyMCBAQAorISB7IGRnLWRvIGNvbXBpbGUgfQorISB7 IGRnLW9wdGlvbnMgIi1mZGVjLXN0cnVjdHVyZSAtZm5vLWRlYy1zdHJ1Y3R1 cmUiIH0KKyEKKyEgUFIgZm9ydHJhbi84NzkxOQorIQorISBTaG91bGQgZmFp bCB0byBjb21waWxlIHdpdGggLWZkZWMtc3RydWN0dXJlIGFuZCAtZm5vLWRl Yy1zdHJ1Y3R1cmUuCishCisgICAgICBwcm9ncmFtIHRlc3QKKworICAgICAg ICBzdHJ1Y3R1cmUgL2luZm8vICEgeyBkZy1lcnJvciAiLWZkZWMtc3RydWN0 dXJlIiB9CisgICAgICAgICAgaW50ZWdlciBhCisgICAgICAgICAgcmVhbCBi CisgICAgICAgICBlbmQgc3RydWN0dXJlICAgISB7IGRnLWVycm9yICJFTkQg UFJPR1JBTSIgfQorCisgICAgICAgIHJlY29yZCAvaW5mby8gcyAgISB7IGRn LWVycm9yICItZmRlYy1zdHJ1Y3R1cmUiIH0KKyAgICAgICAgcy5hID0gMTk5 ICAgICAgICAhIHsgZGctZXJyb3IgIlVuY2xhc3NpZmlhYmxlIiB9CisgICAg ICAgIHMuYiA9IDcuNiAgICAgICAgISB7IGRnLWVycm9yICJVbmNsYXNzaWZp YWJsZSIgfQorICAgICAgICB3cml0ZSAoKiwqKSBzLmEgICEgeyBkZy1lcnJv ciAiU3ludGF4IGVycm9yIGluIFdSSVRFIiB9CisgICAgICAgIHdyaXRlICgq LCopIHMuYiAgISB7IGRnLWVycm9yICJTeW50YXggZXJyb3IgaW4gV1JJVEUi IH0KKyAgICAgIGVuZCBwcm9ncmFtIHRlc3QKZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZGVjX3R5cGVfcHJpbnRfMy5mOTAgYi9n Y2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2RlY190eXBlX3ByaW50XzMuZjkw Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41YTkz MzRjOGM5OAotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2Zv cnRyYW4uZGcvZGVjX3R5cGVfcHJpbnRfMy5mOTAKQEAgLTAsMCArMSwyOSBA QAorISB7IGRnLWRvIGNvbXBpbGUgfQorISB7IGRnLW9wdGlvbnMgIi1mZGVj IC1mbm8tZGVjIiB9CishCishIEVuc3VyZSB0aGF0IC1mbm8tZGVjIGRpc2Fi bGVzIHRoZSB1c2FnZSBvZiBUWVBFIGFzIGFuIGFsaWFzIGZvciBQUklOVC4K KyEKKworaW1wbGljaXQgbm9uZQorCitpbnRlZ2VyIGkgLzAvLCBqIC8xLywg ayAvMi8KK2NoYXJhY3RlcigqKSwgcGFyYW1ldGVyIDo6IGZtdHN0ciA9ICIo QTExKSIKK25hbWVsaXN0IC9ubWxpc3QvIGksIGosIGsKK2ludGVnZXIsIHBh cmFtZXRlciA6OiBuID0gNQorCishIFR5cGUgYXMgYWxpYXMgZm9yIHByaW50 Cit0eXBlKiAhIHsgZGctZXJyb3IgIkludmFsaWQgY2hhcmFjdGVyIGluIG5h bWUiIH0KK3R5cGUgKiAhIHsgZGctZXJyb3IgIkludmFsaWQgY2hhcmFjdGVy IGluIG5hbWUiIH0KK3R5cGUqLCdTdCcsJ2FyJyAhIHsgZGctZXJyb3IgIklu dmFsaWQgY2hhcmFjdGVyIGluIG5hbWUiIH0KK3R5cGUgKiwgJ1N0JywgJ2Fy JyAhIHsgZGctZXJyb3IgIkludmFsaWQgY2hhcmFjdGVyIGluIG5hbWUiIH0K K3R5cGUgMTAsICdJbnRlZ2VyIGxpdGVyYWwnICEgeyBkZy1lcnJvciAiSW52 YWxpZCBjaGFyYWN0ZXIgaW4gbmFtZSIgfQordHlwZSAxMCwgJ0ludGVnZXIg dmFyaWFibGUnICEgeyBkZy1lcnJvciAiSW52YWxpZCBjaGFyYWN0ZXIgaW4g bmFtZSIgfQordHlwZSAnKEExMSknLCAnQ2hhcmFjdGVyIGxpdGVyYWwnICEg eyBkZy1lcnJvciAiSW52YWxpZCBjaGFyYWN0ZXIgaW4gbmFtZSIgfQordHlw ZSBmbXRzdHIsICdDaGFyYWN0ZXIgdmFyaWFibGUnICEgeyBkZy1lcnJvciAi VW5jbGFzc2lmaWFibGUgc3RhdGVtZW50IiB9Cit0eXBlIG5tbGlzdCAhIHsg ZGctZXJyb3IgIk5BTUVMSVNUIGF0dHJpYnV0ZS4qP2NvbmZsaWN0cyB3aXRo IFBST0NFRFVSRSIgfQorCitpZiAobiAuZXEuIG4pIHR5cGUqLCBmbXRzdHIg ISB7IGRnLWVycm9yICJDYW5ub3QgYXNzaWduIHRvIGEgbmFtZWQgY29uc3Rh bnQiIH0KKworMTAgICAgZm9ybWF0IChBMTEpCisKK2VuZCBwcm9ncmFtCmRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2luaXRfZmxh Z18yMC5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2luaXRfZmxh Z18yMC5mOTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLmUwNWNmOTUxZjRjCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nZm9ydHJhbi5kZy9pbml0X2ZsYWdfMjAuZjkwCkBAIC0wLDAgKzEs NjIgQEAKKyEgeyBkZy1kbyBjb21waWxlIH0KKyEgeyBkZy1vcHRpb25zICIt ZmluaXQtbG9jYWwtemVybyAtZm5vLWluaXQtbG9jYWwtemVybyAtZmR1bXAt dHJlZS1vcmlnaW5hbCIgfQorIQorISBQUiBmb3J0cmFuLzg3OTE5CishCish IE1ha2Ugc3VyZSAtZm5vLWluaXQtbG9jYWwtemVybyBkaXNhYmxlcyAtZmlu aXQtbG9jYWwtemVyby4KKyEKKyEgVGhlIGJhc2ljIHRlc3Qgc3Vicm91dGlu ZXMgYXJlIGNvcGllZCBmcm9tIGluaXRfZmxhZ18xLmY5MCwgYnV0IHRoaXMg dGVzdAorISBvbmx5IGNvbXBpbGVzIGFuZCBjaGVjayB0aGUgb3JpZ2luYWwg dHJlZS4gVGhlIGNvbmRpdGlvbmFsIGNoZWNrcyBhcmUgb25seQorISBrZXB0 IHRvIHByZXZlbnQgdGhlIHZhcmlhYmxlcyBmcm9tIGJlaW5nIG1hcmtlZCB1 bnVzZWQuCishCisKK3N1YnJvdXRpbmUgcmVhbF90ZXN0CisgIHJlYWwgcjEK KyAgcmVhbCByMigxMCkKKyAgZGltZW5zaW9uIHIzKDEwLDEwKQorICBpZiAo cjEgLz0gMC4wKSBTVE9QIDEKKyAgaWYgKHIyKDIpIC89IDAuMCkgU1RPUCAy CisgIGlmIChyMyg1LDUpIC89IDAuMCkgU1RPUCAzCisgIGlmIChyNCAvPSAw LjApIFNUT1AgNAorZW5kIHN1YnJvdXRpbmUgcmVhbF90ZXN0CisKK3N1YnJv dXRpbmUgbG9naWNhbF90ZXN0CisgIGxvZ2ljYWwgbDEKKyAgbG9naWNhbCBs MigyKQorICBpZiAobDEgLm5lcXYuIC5mYWxzZS4pIFNUT1AgNQorICBpZiAo bDIoMikgLm5lcXYuIC5mYWxzZS4pIFNUT1AgNgorZW5kIHN1YnJvdXRpbmUg bG9naWNhbF90ZXN0CisKK3N1YnJvdXRpbmUgaW50X3Rlc3QKKyAgaW50ZWdl ciBpMQorICBpbnRlZ2VyIGkyKDEwKQorICBkaW1lbnNpb24gaTMoMTAsMTAp CisgIGlmIChpMSAvPSAwKSBTVE9QIDcKKyAgaWYgKGkyKDIpIC89IDApIFNU T1AgOAorICBpZiAoaTMoNSw1KSAvPSAwKSBTVE9QIDkKKyAgaWYgKGk0IC89 IDApIFNUT1AgMTAKK2VuZCBzdWJyb3V0aW5lIGludF90ZXN0CisKK3N1YnJv dXRpbmUgY29tcGxleF90ZXN0CisgIGNvbXBsZXggYzEKKyAgY29tcGxleCBj MigyMCwyMCkKKyAgaWYgKGMxIC89ICgwLjAsMC4wKSkgU1RPUCAxMQorICBp ZiAoYzIoMSwxKSAvPSAoMC4wLDAuMCkpIFNUT1AgMTIKK2VuZCBzdWJyb3V0 aW5lIGNvbXBsZXhfdGVzdAorCitzdWJyb3V0aW5lIGNoYXJfdGVzdAorICBj aGFyYWN0ZXIqMSBjMQorICBjaGFyYWN0ZXIqOCBjMiwgYzMoNSkKKyAgY2hh cmFjdGVyIGM0KDEwKQorICBpZiAoYzEgLz0gJ1wwJykgU1RPUCAxMworICBp ZiAoYzIgLz0gJ1wwXDBcMFwwXDBcMFwwXDAnKSBTVE9QIDE0CisgIGlmIChj MygxKSAvPSAnXDBcMFwwXDBcMFwwXDBcMCcpIFNUT1AgMTUKKyAgaWYgKGMz KDUpIC89ICdcMFwwXDBcMFwwXDBcMFwwJykgU1RPUCAxNgorICBpZiAoYzQo NSkgLz0gJ1wwJykgU1RPUCAxNworZW5kIHN1YnJvdXRpbmUgY2hhcl90ZXN0 CisKKyEgTWFrZSBzdXJlIG5vIGluaXRpYWxpemF0aW9uIGNvZGUgaXMgZ2Vu ZXJhdGVkLgorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMg InJcWzEtNF0gKj0gKlxbMFx7XSIgMCAib3JpZ2luYWwiIH0gfQorISB7IGRn LWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgImxcWzEyXSAqPSAqXFsw XHtdIiAwICJvcmlnaW5hbCIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRy ZWUtZHVtcC10aW1lcyAiaVxbMS00XSAqPSAqXFswXHtdIiAwICJvcmlnaW5h bCIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAi bWVtbW92ZSAqXFsoXVxbXixdKmNcWzEtNF0iIDAgIm9yaWdpbmFsIiB9IH0K LS0gCjIuMTIuMgoK --0000000000004509d8057a2a4d0e--