From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 127944 invoked by alias); 21 Nov 2017 19:53:02 -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 127933 invoked by uid 89); 21 Nov 2017 19:53:01 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-15.4 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_ASCII_DIVIDERS,KB_WAM_FROM_NAME_SINGLEWORD,RCVD_IN_DNSWL_NONE,SPF_PASS,URIBL_RED autolearn=ham version=3.3.2 spammy=sk:mcallm, sk:mcall-m X-HELO: mail-io0-f177.google.com Received: from mail-io0-f177.google.com (HELO mail-io0-f177.google.com) (209.85.223.177) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 21 Nov 2017 19:52:59 +0000 Received: by mail-io0-f177.google.com with SMTP id v21so20759556ioi.4 for ; Tue, 21 Nov 2017 11:52:59 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=Pf8hufkpBiOwUpIOEN+TXXX+gc6YAUiWC0AupMxWBqA=; b=VyfV4w/K2ZwAfG06BTLopDCggAXCNHttushLyveSf99F6+Q5wYnjBDRh1auyzamgbn kns5Wd1b263Tl27+7C6lOlkwT25jbQDGfUGiZ5ilc7qKCZ5F1zquggFIl+e3r51dsLBi MCdDruv/indZ/1K5VKxs3yVQT3eVW+Qo9XmITgYEXwvNwSx5+Kombi2RT+kQTOT/wWKt Efly6H0yHzI5aY1n8jkU7rAAnTxMqJN3uzEJ5YgffCxGhnigZu2iR9dzpJA9XTKMsVFw sWpEWRooPSlFKe/VGoX3xNvqQdwrLSL86vjYfS/UB+UOm3ksZGjUq8ZNQrcy6byaCLhb to5Q== X-Gm-Message-State: AJaThX7GGClXRHPTsaT1eor8pXqlrcsWu1DVNVBp/XPgEm+zE9gGPqry hxwedQiFvhv1OBvnWLuqHZ2281ivZe/ZN/wOv90= X-Google-Smtp-Source: AGs4zMb6THlAaODgU6ua0RiJRLEShP7nMxChCNnZgROCni7BJcVvU2K49DneYNNcv2uPk0rrE3U/VJaxjyMe0F+WBQw= X-Received: by 10.107.201.201 with SMTP id z192mr4340908iof.211.1511293977504; Tue, 21 Nov 2017 11:52:57 -0800 (PST) MIME-Version: 1.0 Received: by 10.2.43.85 with HTTP; Tue, 21 Nov 2017 11:52:55 -0800 (PST) In-Reply-To: <71475DE127B5E94A8E189586234C088822AE597B@irsmsx105.ger.corp.intel.com> References: <71475DE127B5E94A8E189586234C088822AE2AC8@irsmsx105.ger.corp.intel.com> <71475DE127B5E94A8E189586234C088822AE58FD@irsmsx105.ger.corp.intel.com> <71475DE127B5E94A8E189586234C088822AE597B@irsmsx105.ger.corp.intel.com> From: Uros Bizjak Date: Tue, 21 Nov 2017 20:04:00 -0000 Message-ID: Subject: Re: [PATCH, i386] Refactor -mprefer-avx[128|256] options into common -mprefer-vector-width=[none|128|256|512] To: "Shalnov, Sergey" Cc: "gcc-patches@gcc.gnu.org" , "kirill.yukhin@gmail.com" , "Koval, Julia" , "Senkevich, Andrew" , "Peryt, Sebastian" , "Ivchenko, Alexander" , Joseph Myers Content-Type: multipart/mixed; boundary="94eb2c0ba0f2ae6c26055e838ccd" X-SW-Source: 2017-11/txt/msg01951.txt.bz2 --94eb2c0ba0f2ae6c26055e838ccd Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Content-length: 3186 I have committed the attached patch. Uros. On Tue, Nov 21, 2017 at 6:18 PM, Shalnov, Sergey wrote: > Uros, > Yes, please. Thank you for your proposals and comments. > Please commit as you proposed. > Sergey > > -----Original Message----- > From: Uros Bizjak [mailto:ubizjak@gmail.com] > Sent: Tuesday, November 21, 2017 6:13 PM > To: Shalnov, Sergey > Cc: gcc-patches@gcc.gnu.org; kirill.yukhin@gmail.com; Koval, Julia ; Senkevich, Andrew ; Peryt, S= ebastian ; Ivchenko, Alexander ; Joseph Myers > Subject: Re: [PATCH, i386] Refactor -mprefer-avx[128|256] options into co= mmon -mprefer-vector-width=3D[none|128|256|512] > > On Tue, Nov 21, 2017 at 4:50 PM, Shalnov, Sergey wrote: >> Uros, >> I did new patch with all comments addressed as proposed. >> 1. old option -mprefer-avx128 is Alias(mprefer-vector-width=3D, 128, >> none) 2. Simplified default initialization (as Bernhard proposed) 3. >> Fixed documentation (proposed by Sandra) 4. Several tests are changed >> to use new style of the option but many leaved with -mprefer-avx128 >> (one test with new style -mprefer-vector-width=3D128) >> >> >> 2017-11-21 Sergey Shalnov >> >> gcc/ >> * config/i386/i386-opts.h (enum prefer_vector_width): Added new = enum >> for the new option -mprefer-vector-width=3D[none|128|256|512]. >> * config/i386/i386.c (ix86_target_string): remove old style opti= ons >> -mprefer-avx256 and make -mprefer-avx128 as alias. >> (ix86_option_override_internal): Apply defaults for the >> -mprefer-vector-width=3D[128|256] option. >> * config/i386/i386.h (TARGET_PREFER_AVX128, TARGET_PREFER_AVX256= ): >> Implement macros to work with -mprefer-vector-width=3D. >> * config/i386/i386.opt: Implemented option >> -mprefer-vector-width=3D[none|128|256|512]. >> * doc/invoke.texi: Documentation for >> -mprefer-vector-width=3D[none|128|256|512]. >> >> gcc/testsuite/ >> * g++.dg/ext/pr57362.C (__attribute__): Apply new option syntax. >> * g++.dg/torture/pr81249.C: Ditto. >> * gcc.target/i386/avx512f-constant-float-return.c: Ditto. >> * gcc.target/i386/avx512f-prefer.c: Ditto. >> * gcc.target/i386/pr82460-2.c: Ditto. >> >> Please merge this patch if you think it is acceptable. >> Thank you >> Sergey > > mprefer-avx128 > -Target Report Mask(PREFER_AVX128) Save > -Use 128-bit AVX instructions instead of 256-bit AVX instructions in the = auto-vectorizer. > +Target Undocumented Alias(mprefer-vector-width=3D, 128, none) > > For compatibility, I'd rather leave this option documented with: > > +Target Alias(mprefer-vector-width=3D, 128, 256) > > This would mean that in addition to -mprefer-avx128 switching to 128-bit = AVX, -mno-prefer-avx128 would switch to 256-bit AVX, as documented for the = option. > > The patch is OK, and If you agree, I can commit the patch with the above = change. > > Thanks, > Uros. --94eb2c0ba0f2ae6c26055e838ccd Content-Type: text/plain; charset="US-ASCII"; name="p.diff.txt" Content-Disposition: attachment; filename="p.diff.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jaa1em0w0 Content-length: 11948 SW5kZXg6IGNvbmZpZy9pMzg2L2kzODYtb3B0cy5oCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tIGNvbmZpZy9pMzg2L2kzODYtb3B0cy5oCShyZXZpc2lv biAyNTUwMTYpCisrKyBjb25maWcvaTM4Ni9pMzg2LW9wdHMuaAkod29ya2lu ZyBjb3B5KQpAQCAtOTksNCArOTksMTEgQEAgZW51bSBzdGFja19wcm90ZWN0 b3JfZ3VhcmQgewogICBTU1BfR0xPQkFMICAgIC8qIGdsb2JhbCBjYW5hcnkg Ki8KIH07CiAKK2VudW0gcHJlZmVyX3ZlY3Rvcl93aWR0aCB7CisgICAgUFZX X05PTkUsCisgICAgUFZXX0FWWDEyOCwKKyAgICBQVldfQVZYMjU2LAorICAg IFBWV19BVlg1MTIKK307CisKICNlbmRpZgpJbmRleDogY29uZmlnL2kzODYv aTM4Ni5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGNvbmZpZy9pMzg2 L2kzODYuYwkocmV2aXNpb24gMjU1MDE2KQorKysgY29uZmlnL2kzODYvaTM4 Ni5jCSh3b3JraW5nIGNvcHkpCkBAIC0yODQ3LDcgKzI4NDcsNiBAQCBpeDg2 X3RhcmdldF9zdHJpbmcgKEhPU1RfV0lERV9JTlQgaXNhLCBIT1NUX1dJREVf SQogICAgIHsgIi1tc3R2IiwJCQkJTUFTS19TVFYgfSwKICAgICB7ICItbWF2 eDI1Ni1zcGxpdC11bmFsaWduZWQtbG9hZCIsCU1BU0tfQVZYMjU2X1NQTElU X1VOQUxJR05FRF9MT0FEIH0sCiAgICAgeyAiLW1hdngyNTYtc3BsaXQtdW5h bGlnbmVkLXN0b3JlIiwJTUFTS19BVlgyNTZfU1BMSVRfVU5BTElHTkVEX1NU T1JFIH0sCi0gICAgeyAiLW1wcmVmZXItYXZ4MTI4IiwJCU1BU0tfUFJFRkVS X0FWWDEyOCB9LAogICAgIHsgIi1tY2FsbC1tczJzeXN2LXhsb2d1ZXMiLAkJ TUFTS19DQUxMX01TMlNZU1ZfWExPR1VFUyB9CiAgIH07CiAKQEAgLTI4NTQs OCArMjg1Myw3IEBAIGl4ODZfdGFyZ2V0X3N0cmluZyAoSE9TVF9XSURFX0lO VCBpc2EsIEhPU1RfV0lERV9JCiAgIC8qIEFkZGl0aW9uYWwgZmxhZyBvcHRp b25zLiAgKi8KICAgc3RhdGljIHN0cnVjdCBpeDg2X3RhcmdldF9vcHRzIGZs YWcyX29wdHNbXSA9CiAgIHsKLSAgICB7ICItbWdlbmVyYWwtcmVncy1vbmx5 IiwJCU9QVElPTl9NQVNLX0dFTkVSQUxfUkVHU19PTkxZIH0sCi0gICAgeyAi LW1wcmVmZXItYXZ4MjU2IiwJCU9QVElPTl9NQVNLX1BSRUZFUl9BVlgyNTYg fSwKKyAgICB7ICItbWdlbmVyYWwtcmVncy1vbmx5IiwJCU9QVElPTl9NQVNL X0dFTkVSQUxfUkVHU19PTkxZIH0KICAgfTsKIAogICBjb25zdCBjaGFyICpv cHRzW0FSUkFZX1NJWkUgKGlzYV9vcHRzKSArIEFSUkFZX1NJWkUgKGlzYTJf b3B0cykKQEAgLTQ2ODYsMTYgKzQ2ODQsMTggQEAgaXg4Nl9vcHRpb25fb3Zl cnJpZGVfaW50ZXJuYWwgKGJvb2wgbWFpbl9hcmdzX3AsCiAgIGlmICghaXg4 Nl90dW5lX2ZlYXR1cmVzW1g4Nl9UVU5FX0FWWDI1Nl9VTkFMSUdORURfU1RP UkVfT1BUSU1BTF0KICAgICAgICYmICEob3B0c19zZXQtPnhfdGFyZ2V0X2Zs YWdzICYgTUFTS19BVlgyNTZfU1BMSVRfVU5BTElHTkVEX1NUT1JFKSkKICAg ICBvcHRzLT54X3RhcmdldF9mbGFncyB8PSBNQVNLX0FWWDI1Nl9TUExJVF9V TkFMSUdORURfU1RPUkU7CisKICAgLyogRW5hYmxlIDEyOC1iaXQgQVZYIGlu c3RydWN0aW9uIGdlbmVyYXRpb24KICAgICAgZm9yIHRoZSBhdXRvLXZlY3Rv cml6ZXIuICAqLwogICBpZiAoVEFSR0VUX0FWWDEyOF9PUFRJTUFMCi0gICAg ICAmJiAhKG9wdHNfc2V0LT54X3RhcmdldF9mbGFncyAmIE1BU0tfUFJFRkVS X0FWWDEyOCkpCi0gICAgb3B0cy0+eF90YXJnZXRfZmxhZ3MgfD0gTUFTS19Q UkVGRVJfQVZYMTI4OwotICAvKiBVc2UgMjU2LWJpdCBBVlggaW5zdHJ1Y3Rp b25zIGluc3RlYWQgb2YgNTEyLWJpdCBBVlggaW5zdHJ1Y3Rpb25zCisgICAg ICAmJiAob3B0c19zZXQtPnhfcHJlZmVyX3ZlY3Rvcl93aWR0aF90eXBlID09 IFBWV19OT05FKSkKKyAgICBvcHRzLT54X3ByZWZlcl92ZWN0b3Jfd2lkdGhf dHlwZSA9IFBWV19BVlgxMjg7CisKKyAgLyogVXNlIDI1Ni1iaXQgQVZYIGlu c3RydWN0aW9uIGdlbmVyYXRpb24KICAgICAgaW4gdGhlIGF1dG8tdmVjdG9y aXplci4gICovCiAgIGlmIChpeDg2X3R1bmVfZmVhdHVyZXNbWDg2X1RVTkVf QVZYMjU2X09QVElNQUxdCi0gICAgICAmJiAhKG9wdHNfc2V0LT54X2l4ODZf dGFyZ2V0X2ZsYWdzICYgT1BUSU9OX01BU0tfUFJFRkVSX0FWWDI1NikpCi0g ICAgb3B0cy0+eF9peDg2X3RhcmdldF9mbGFncyB8PSBPUFRJT05fTUFTS19Q UkVGRVJfQVZYMjU2OworICAgICAgJiYgKG9wdHNfc2V0LT54X3ByZWZlcl92 ZWN0b3Jfd2lkdGhfdHlwZSA9PSBQVldfTk9ORSkpCisgICAgb3B0cy0+eF9w cmVmZXJfdmVjdG9yX3dpZHRoX3R5cGUgPSBQVldfQVZYMjU2OwogCiAgIGlm IChvcHRzLT54X2l4ODZfcmVjaXBfbmFtZSkKICAgICB7CkluZGV4OiBjb25m aWcvaTM4Ni9pMzg2LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gY29u ZmlnL2kzODYvaTM4Ni5oCShyZXZpc2lvbiAyNTUwMTYpCisrKyBjb25maWcv aTM4Ni9pMzg2LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2NzgsNiArMjY3OCwx MSBAQCBleHRlcm4gdm9pZCBkZWJ1Z19kaXNwYXRjaF93aW5kb3cgKGludCk7 CiAjZGVmaW5lIFRBUkdFVF9SRUNJUF9WRUNfRElWCSgocmVjaXBfbWFzayAm IFJFQ0lQX01BU0tfVkVDX0RJVikgIT0gMCkKICNkZWZpbmUgVEFSR0VUX1JF Q0lQX1ZFQ19TUVJUCSgocmVjaXBfbWFzayAmIFJFQ0lQX01BU0tfVkVDX1NR UlQpICE9IDApCiAKKy8qIFVzZSAxMjgtYml0IEFWWCBpbnN0cnVjdGlvbnMg aW4gdGhlIGF1dG8tdmVjdG9yaXplci4gICovCisjZGVmaW5lIFRBUkdFVF9Q UkVGRVJfQVZYMTI4CShwcmVmZXJfdmVjdG9yX3dpZHRoX3R5cGUgPT0gUFZX X0FWWDEyOCkKKy8qIFVzZSAyNTYtYml0IEFWWCBpbnN0cnVjdGlvbnMgaW4g dGhlIGF1dG8tdmVjdG9yaXplci4gICovCisjZGVmaW5lIFRBUkdFVF9QUkVG RVJfQVZYMjU2CShwcmVmZXJfdmVjdG9yX3dpZHRoX3R5cGUgPT0gUFZXX0FW WDI1NikKKwogI2RlZmluZSBJWDg2X0hMRV9BQ1FVSVJFICgxIDw8IDE2KQog I2RlZmluZSBJWDg2X0hMRV9SRUxFQVNFICgxIDw8IDE3KQogCkluZGV4OiBj b25maWcvaTM4Ni9pMzg2Lm9wdAo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LSBjb25maWcvaTM4Ni9pMzg2Lm9wdAkocmV2aXNpb24gMjU1MDE2KQorKysg Y29uZmlnL2kzODYvaTM4Ni5vcHQJKHdvcmtpbmcgY29weSkKQEAgLTE4Miw2 ICsxODIsMTAgQEAgaW50IHhfaXg4Nl90dW5lX25vX2RlZmF1bHQKIFRhcmdl dFNhdmUKIGVudW0gaXg4Nl92ZWNsaWJhYmkgeF9peDg2X3ZlY2xpYmFiaV90 eXBlCiAKKzs7IC1tcHJlZmVyLXZlY3Rvci13aWR0aD0KK1RhcmdldFNhdmUK K2VudW0gcHJlZmVyX3ZlY3Rvcl93aWR0aCB4X3ByZWZlcl92ZWN0b3Jfd2lk dGhfdHlwZQorCiA7OyB4ODYgb3B0aW9ucwogbTEyOGJpdC1sb25nLWRvdWJs ZQogVGFyZ2V0IFJlamVjdE5lZ2F0aXZlIFJlcG9ydCBNYXNrKDEyOEJJVF9M T05HX0RPVUJMRSkgU2F2ZQpAQCAtNTg4LDEzICs1OTIsMjkgQEAgRG8gZGlz cGF0Y2ggc2NoZWR1bGluZyBpZiBwcm9jZXNzb3IgaXMgYmR2ZXIxLCBiZHYK IG9yIHpudmVyMSBhbmQgSGFpZmEgc2NoZWR1bGluZyBpcyBzZWxlY3RlZC4K IAogbXByZWZlci1hdngxMjgKLVRhcmdldCBSZXBvcnQgTWFzayhQUkVGRVJf QVZYMTI4KSBTYXZlCitUYXJnZXQgQWxpYXMobXByZWZlci12ZWN0b3Itd2lk dGg9LCAxMjgsIDI1NikKIFVzZSAxMjgtYml0IEFWWCBpbnN0cnVjdGlvbnMg aW5zdGVhZCBvZiAyNTYtYml0IEFWWCBpbnN0cnVjdGlvbnMgaW4gdGhlIGF1 dG8tdmVjdG9yaXplci4KIAotbXByZWZlci1hdngyNTYKLVRhcmdldCBSZXBv cnQgTWFzayhQUkVGRVJfQVZYMjU2KSBWYXIoaXg4Nl90YXJnZXRfZmxhZ3Mp IFNhdmUKLVVzZSAyNTYtYml0IEFWWCBpbnN0cnVjdGlvbnMgaW5zdGVhZCBv ZiA1MTItYml0IEFWWCBpbnN0cnVjdGlvbnMgaW4gdGhlIGF1dG8tdmVjdG9y aXplci4KK21wcmVmZXItdmVjdG9yLXdpZHRoPQorVGFyZ2V0IFJlcG9ydCBS ZWplY3ROZWdhdGl2ZSBKb2luZWQgVmFyKHByZWZlcl92ZWN0b3Jfd2lkdGhf dHlwZSkgRW51bShwcmVmZXJfdmVjdG9yX3dpZHRoKSBJbml0KFBWV19OT05F KQorVXNlIGdpdmVuIHJlZ2lzdGVyIHZlY3RvciB3aWR0aCBpbnN0cnVjdGlv bnMgaW5zdGVhZCBvZiBtYXhpbXVtIHJlZ2lzdGVyIHdpZHRoIGluIHRoZSBh dXRvLXZlY3Rvcml6ZXIuCiAKK0VudW0KK05hbWUocHJlZmVyX3ZlY3Rvcl93 aWR0aCkgVHlwZShlbnVtIHByZWZlcl92ZWN0b3Jfd2lkdGgpCitLbm93biBw cmVmZXJyZWQgcmVnaXN0ZXIgdmVjdG9yIGxlbmd0aCAodG8gdXNlIHdpdGgg dGhlIC1tcHJlZmVyLXZlY3Rvci13aWR0aD0gb3B0aW9uKQorCitFbnVtVmFs dWUKK0VudW0ocHJlZmVyX3ZlY3Rvcl93aWR0aCkgU3RyaW5nKG5vbmUpIFZh bHVlKFBWV19OT05FKQorCitFbnVtVmFsdWUKK0VudW0ocHJlZmVyX3ZlY3Rv cl93aWR0aCkgU3RyaW5nKDEyOCkgVmFsdWUoUFZXX0FWWDEyOCkKKworRW51 bVZhbHVlCitFbnVtKHByZWZlcl92ZWN0b3Jfd2lkdGgpIFN0cmluZygyNTYp IFZhbHVlKFBWV19BVlgyNTYpCisKK0VudW1WYWx1ZQorRW51bShwcmVmZXJf dmVjdG9yX3dpZHRoKSBTdHJpbmcoNTEyKSBWYWx1ZShQVldfQVZYNTEyKQor CiA7OyBJU0Egc3VwcG9ydAogCiBtMzIKSW5kZXg6IGRvYy9pbnZva2UudGV4 aQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb2MvaW52b2tlLnRleGkJ KHJldmlzaW9uIDI1NTAxNikKKysrIGRvYy9pbnZva2UudGV4aQkod29ya2lu ZyBjb3B5KQpAQCAtMTE5Niw3ICsxMTk2LDcgQEAgU2VlIFJTLzYwMDAgYW5k IFBvd2VyUEMgT3B0aW9ucy4KIC1taW5jb21pbmctc3RhY2stYm91bmRhcnk9 QHZhcntudW19IEBnb2wKIC1tY2xkICAtbWN4MTYgIC1tc2FoZiAgLW1tb3Zi ZSAgLW1jcmMzMiBAZ29sCiAtbXJlY2lwICAtbXJlY2lwPUB2YXJ7b3B0fSBA Z29sCi0tbXZ6ZXJvdXBwZXIgIC1tcHJlZmVyLWF2eDEyOCAtbXByZWZlci1h dngyNTYgQGdvbAorLW12emVyb3VwcGVyICAtbXByZWZlci1hdngxMjggLW1w cmVmZXItdmVjdG9yLXdpZHRoPUB2YXJ7b3B0fSBAZ29sCiAtbW1teCAgLW1z c2UgIC1tc3NlMiAgLW1zc2UzICAtbXNzc2UzICAtbXNzZTQuMSAgLW1zc2U0 LjIgIC1tc3NlNCAgLW1hdnggQGdvbAogLW1hdngyICAtbWF2eDUxMmYgIC1t YXZ4NTEycGYgIC1tYXZ4NTEyZXIgIC1tYXZ4NTEyY2QgIC1tYXZ4NTEydmwg QGdvbAogLW1hdng1MTJidyAgLW1hdng1MTJkcSAgLW1hdng1MTJpZm1hICAt bWF2eDUxMnZibWkgIC1tc2hhICAtbWFlcyBAZ29sCkBAIC0yNjA5MywxMSAr MjYwOTMsMjUgQEAgaW50cmluc2ljcy4KIFRoaXMgb3B0aW9uIGluc3RydWN0 cyBHQ0MgdG8gdXNlIDEyOC1iaXQgQVZYIGluc3RydWN0aW9ucyBpbnN0ZWFk IG9mCiAyNTYtYml0IEFWWCBpbnN0cnVjdGlvbnMgaW4gdGhlIGF1dG8tdmVj dG9yaXplci4KIAotQGl0ZW0gLW1wcmVmZXItYXZ4MjU2Ci1Ab3BpbmRleCBt cHJlZmVyLWF2eDI1NgotVGhpcyBvcHRpb24gaW5zdHJ1Y3RzIEdDQyB0byB1 c2UgMjU2LWJpdCBBVlggaW5zdHJ1Y3Rpb25zIGluc3RlYWQgb2YKLTUxMi1i aXQgQVZYIGluc3RydWN0aW9ucyBpbiB0aGUgYXV0by12ZWN0b3JpemVyLgor QGl0ZW0gLW1wcmVmZXItdmVjdG9yLXdpZHRoPUB2YXJ7b3B0fQorQG9waW5k ZXggbXByZWZlci12ZWN0b3Itd2lkdGgKK1RoaXMgb3B0aW9uIGluc3RydWN0 cyBHQ0MgdG8gdXNlIEB2YXJ7b3B0fS1iaXQgdmVjdG9yIHdpZHRoIGluIGlu c3RydWN0aW9ucworaW5zdGVhZCBvZiBkZWZhdWx0IG9uIHRoZSBzZWxlY3Rl ZCBwbGF0Zm9ybS4KIAorQHRhYmxlIEBzYW1wCitAaXRlbSBub25lCitObyBl eHRyYSBsaW1pdGF0aW9ucyBhcHBsaWVkIHRvIEdDQyBvdGhlciB0aGFuIGRl ZmluZWQgYnkgdGhlIHNlbGVjdGVkIHBsYXRmb3JtLgorCitAaXRlbSAxMjgK K1ByZWZlciAxMjgtYml0IHZlY3RvciB3aWR0aCBmb3IgaW5zdHJ1Y3Rpb25z LgorCitAaXRlbSAyNTYKK1ByZWZlciAyNTYtYml0IHZlY3RvciB3aWR0aCBm b3IgaW5zdHJ1Y3Rpb25zLgorCitAaXRlbSA1MTIKK1ByZWZlciA1MTItYml0 IHZlY3RvciB3aWR0aCBmb3IgaW5zdHJ1Y3Rpb25zLgorQGVuZCB0YWJsZQor CiBAaXRlbSAtbWN4MTYKIEBvcGluZGV4IG1jeDE2CiBUaGlzIG9wdGlvbiBl bmFibGVzIEdDQyB0byBnZW5lcmF0ZSBAY29kZXtDTVBYQ0hHMTZCfSBpbnN0 cnVjdGlvbnMgaW4gNjQtYml0CkluZGV4OiB0ZXN0c3VpdGUvZysrLmRnL2V4 dC9wcjU3MzYyLkMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdGVzdHN1 aXRlL2crKy5kZy9leHQvcHI1NzM2Mi5DCShyZXZpc2lvbiAyNTUwMTYpCisr KyB0ZXN0c3VpdGUvZysrLmRnL2V4dC9wcjU3MzYyLkMJKHdvcmtpbmcgY29w eSkKQEAgLTgxLDggKzgxLDEwIEBAIF9fYXR0cmlidXRlX18oKHRhcmdldCgi ZGlzcGF0Y2gtc2NoZWR1bGVyIikpKQogaW50IGZvbyh2b2lkKSB7IHJldHVy biAxOyB9CiBfX2F0dHJpYnV0ZV9fKCh0YXJnZXQoInByZWZlci1hdngxMjgi KSkpCiBpbnQgZm9vKHZvaWQpIHsgcmV0dXJuIDE7IH0KLV9fYXR0cmlidXRl X18oKHRhcmdldCgicHJlZmVyLWF2eDI1NiIpKSkKK19fYXR0cmlidXRlX18o KHRhcmdldCgicHJlZmVyLXZlY3Rvci13aWR0aD0xMjgiKSkpCiBpbnQgZm9v KHZvaWQpIHsgcmV0dXJuIDE7IH0KK19fYXR0cmlidXRlX18oKHRhcmdldCgi cHJlZmVyLXZlY3Rvci13aWR0aD0yNTYiKSkpCitpbnQgZm9vKHZvaWQpIHsg cmV0dXJuIDE7IH0KIF9fYXR0cmlidXRlX18oKHRhcmdldCgiMzIiKSkpCiBp bnQgZm9vKHZvaWQpIHsgcmV0dXJuIDE7IH0KIF9fYXR0cmlidXRlX18oKHRh cmdldCgiNjQiKSkpCkluZGV4OiB0ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2 L2F2eDUxMmYtY29uc3RhbnQtZmxvYXQtcmV0dXJuLmMKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0gdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdng1 MTJmLWNvbnN0YW50LWZsb2F0LXJldHVybi5jCShyZXZpc2lvbiAyNTUwMTYp CisrKyB0ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L2F2eDUxMmYtY29uc3Rh bnQtZmxvYXQtcmV0dXJuLmMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1 IEBACiAvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwotLyogeyBkZy1vcHRpb25z ICItTzMgLW1hcmNoPXNreWxha2UtYXZ4NTEyIC1tcHJlZmVyLWF2eDI1NiIg fSAqLworLyogeyBkZy1vcHRpb25zICItTzMgLW1hcmNoPXNreWxha2UtYXZ4 NTEyIC1tcHJlZmVyLXZlY3Rvci13aWR0aD0yNTYiIH0gKi8KIC8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3QgIiV6bW1cWzAtOVxdKyIgfSB9 ICovCiAKIGZsb2F0CkluZGV4OiB0ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2 L2F2eDUxMmYtcHJlZmVyLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g dGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9hdng1MTJmLXByZWZlci5jCShy ZXZpc2lvbiAyNTUwMTYpCisrKyB0ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2 L2F2eDUxMmYtcHJlZmVyLmMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1 IEBACiAvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwotLyogeyBkZy1vcHRpb25z ICItTzMgLW1hcmNoPXNreWxha2UtYXZ4NTEyIC1tcHJlZmVyLWF2eDI1NiIg fSAqLworLyogeyBkZy1vcHRpb25zICItTzMgLW1hcmNoPXNreWxha2UtYXZ4 NTEyIC1tcHJlZmVyLXZlY3Rvci13aWR0aD0yNTYiIH0gKi8KIC8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci1ub3QgIiV6bW1cWzAtOVxdKyIgfSB9 ICovCiAvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInZtdWxwZCIg fSB9ICovCiAKSW5kZXg6IHRlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHI4 MjQ2MC0yLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdGVzdHN1aXRl L2djYy50YXJnZXQvaTM4Ni9wcjgyNDYwLTIuYwkocmV2aXNpb24gMjU1MDE2 KQorKysgdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjgyNDYwLTIuYwko d29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qIFBSIHRhcmdldC84 MjQ2MCAqLwogLyogeyBkZy1kbyBjb21waWxlIH0gKi8KLS8qIHsgZGctb3B0 aW9ucyAiLU8yIC1mdHJlZS12ZWN0b3JpemUgLW1hdng1MTJ2Ym1pIC1tbm8t cHJlZmVyLWF2eDI1NiIgfSAqLworLyogeyBkZy1vcHRpb25zICItTzIgLWZ0 cmVlLXZlY3Rvcml6ZSAtbWF2eDUxMnZibWkgLW1wcmVmZXItdmVjdG9yLXdp ZHRoPW5vbmUiIH0gKi8KIC8qIFdlIHdhbnQgdG8gcmV1c2UgdGhlIHBlcm11 dGF0aW9uIG1hc2sgaW4gdGhlIGxvb3AsIHNvIHVzZSB2cGVybXQyYiByYXRo ZXIKICAgIHRoYW4gdnBlcm1pMmIuICAqLwogLyogeyBkZy1maW5hbCB7IHNj YW4tYXNzZW1ibGVyLW5vdCB7XG12cGVybWkyYlxNfSB9IH0gKi8K --94eb2c0ba0f2ae6c26055e838ccd--