From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16014 invoked by alias); 5 Aug 2011 00:50:24 -0000 Received: (qmail 15981 invoked by uid 22791); 5 Aug 2011 00:50:16 -0000 X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW X-Spam-Check-By: sourceware.org Received: from mail-qy0-f182.google.com (HELO mail-qy0-f182.google.com) (209.85.216.182) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 05 Aug 2011 00:49:56 +0000 Received: by qyk9 with SMTP id 9so1276805qyk.20 for ; Thu, 04 Aug 2011 17:49:55 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.253.199 with SMTP id nb7mr1184179qcb.85.1312505395476; Thu, 04 Aug 2011 17:49:55 -0700 (PDT) Received: by 10.229.75.2 with HTTP; Thu, 4 Aug 2011 17:49:55 -0700 (PDT) In-Reply-To: References: Date: Fri, 05 Aug 2011 00:50:00 -0000 Message-ID: Subject: Re: RFC: PATCH: Require and use int64 for x86 options From: "H.J. Lu" To: "Joseph S. Myers" Cc: Ian Lance Taylor , Uros Bizjak , Igor Zamyatin , gcc@gcc.gnu.org Content-Type: multipart/mixed; boundary=90e6ba10a7cbdcf87a04a9b77951 X-IsSubscribed: yes Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org X-SW-Source: 2011-08/txt/msg00117.txt.bz2 --90e6ba10a7cbdcf87a04a9b77951 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 2760 On Thu, Aug 4, 2011 at 4:44 PM, H.J. Lu wrote: > On Thu, Aug 4, 2011 at 3:46 PM, Joseph S. Myers = wrote: >> On Thu, 4 Aug 2011, H.J. Lu wrote: >> >>> Here is the updated patch to get proper HOST_WIDE_INT bits and 1 >>> through a new file, opt-gen.c. =A0OK for trunk? >> >> Using another generator program like this can't be the best approach >> (apart from anything else, when built for the build system hwint.h should >> reflect the build system types not the host system types; cf. >> where I suspected that >> sort of host/build confusion of causing a reported build failure). >> >> You want opth-gen.awk to know the number of bits to give errors. =A0Note >> that the errors are given by generating #error into the output file. =A0= It's >> easy enough to generate #if conditions into the file that compare with >> HOST_BITS_PER_WIDE_INT. >> >> You want opth-gen.awk to know whether to use 1LL as the shifted constant. >> You can easily enough make hwint.h contain a HOST_WIDE_INT_1 macro, >> defined to 1L or 1LL as appropriate. >> > > > Here is the updated patch. =A0OK for trunk? > Small update. Replace 1LL with HOST_WIDE_INT_1 in PTA_XXX. OK for trunk? Thanks. --=20 H.J. --- 2011-08-04 H.J. Lu Igor Zamyatin * hwint.h (HOST_WIDE_INT_1): New. * opt-functions.awk (switch_bit_fields): Initialize the host_wide_int field. (host_wide_int_var_name): New. (var_type_struct): Check and return HOST_WIDE_INT. * opt-read.awk: Handle HOST_WIDE_INT for "Variable". * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other. * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT. Properly check masks for HOST_WIDE_INT. * opts-common.c (set_option): Support HOST_WIDE_INT Flag_var. * opts.h (cl_option): Add cl_host_wide_int. Change var_value to HOST_WIDE_INT. * config/i386/i386-c.c (ix86_target_macros_internal): Replace int with HOST_WIDE_INT for isa_flag. (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for isa variables. * config/i386/i386.c (ix86_target_string): Replace int with HOST_WIDE_INT for isa. Use HOST_WIDE_INT_PRINT to print isa. (ix86_target_opts): Replace int with HOST_WIDE_INT on mask. (pta_flags): Removed. (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X). (pta): Use HOST_WIDE_INT on flags. (builtin_isa): Use HOST_WIDE_INT on isa. (ix86_add_new_builtins): Likewise. (def_builtin): Use HOST_WIDE_INT on mask. (def_builtin_const): Likewise. (builtin_description): Likewise. * config/i386/i386.opt (ix86_isa_flags): Replace int with HOST_WIDE_INT. (ix86_isa_flags_explicit): Likewise. (x_ix86_isa_flags_explicit): Likewise. --90e6ba10a7cbdcf87a04a9b77951 Content-Type: text/x-diff; charset=US-ASCII; name="gcc-x86-int64-6.patch" Content-Disposition: attachment; filename="gcc-x86-int64-6.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gqyfrm5n1 Content-length: 22867 MjAxMS0wOC0wNCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoJ ICAgIElnb3IgWmFteWF0aW4gPGlnb3IuemFteWF0aW5AaW50ZWwuY29tPgoK CSogaHdpbnQuaCAoSE9TVF9XSURFX0lOVF8xKTogTmV3LgoKCSogb3B0LWZ1 bmN0aW9ucy5hd2sgKHN3aXRjaF9iaXRfZmllbGRzKTogSW5pdGlhbGl6ZSB0 aGUKCWhvc3Rfd2lkZV9pbnQgZmllbGQuCgkoaG9zdF93aWRlX2ludF92YXJf bmFtZSk6IE5ldy4KCSh2YXJfdHlwZV9zdHJ1Y3QpOiBDaGVjayBhbmQgcmV0 dXJuIEhPU1RfV0lERV9JTlQuCgoJKiBvcHQtcmVhZC5hd2s6IEhhbmRsZSBI T1NUX1dJREVfSU5UIGZvciAiVmFyaWFibGUiLgoKCSogb3B0Yy1zYXZlLWdl bi5hd2s6IFN1cHBvcnQgSE9TVF9XSURFX0lOVCBvbiB2YXJfdGFyZ2V0X290 aGVyLgoKCSogb3B0aC1nZW4uYXdrOiBVc2UgSE9TVF9XSURFX0lOVF8xIG9u IEhPU1RfV0lERV9JTlQuICBQcm9wZXJseQoJY2hlY2sgbWFza3MgZm9yIEhP U1RfV0lERV9JTlQuCgoJKiBvcHRzLWNvbW1vbi5jIChzZXRfb3B0aW9uKTog U3VwcG9ydCBIT1NUX1dJREVfSU5UIEZsYWdfdmFyLgoKCSogb3B0cy5oIChj bF9vcHRpb24pOiBBZGQgY2xfaG9zdF93aWRlX2ludC4gIENoYW5nZSB2YXJf dmFsdWUKCXRvIEhPU1RfV0lERV9JTlQuCgoJKiBjb25maWcvaTM4Ni9pMzg2 LWMuYyAoaXg4Nl90YXJnZXRfbWFjcm9zX2ludGVybmFsKTogUmVwbGFjZSBp bnQKCXdpdGggSE9TVF9XSURFX0lOVCBmb3IgaXNhX2ZsYWcuCgkoaXg4Nl9w cmFnbWFfdGFyZ2V0X3BhcnNlKTogUmVwbGFjZSBpbnQgd2l0aCBIT1NUX1dJ REVfSU5UIGZvcgoJaXNhIHZhcmlhYmxlcy4KCgkqIGNvbmZpZy9pMzg2L2kz ODYuYyAoaXg4Nl90YXJnZXRfc3RyaW5nKTogUmVwbGFjZSBpbnQgd2l0aAoJ SE9TVF9XSURFX0lOVCBmb3IgaXNhLiAgVXNlIEhPU1RfV0lERV9JTlRfUFJJ TlQgdG8gcHJpbnQgaXNhLgoJKGl4ODZfdGFyZ2V0X29wdHMpOiBSZXBsYWNl IGludCB3aXRoIEhPU1RfV0lERV9JTlQgb24gbWFzay4KCShwdGFfZmxhZ3Mp OiBSZW1vdmVkLgoJKFBUQV9YWFgpOiBSZWRlZmluZWQgYXMgKEhPU1RfV0lE RV9JTlRfMSA8PCBYKS4KCShwdGEpOiBVc2UgSE9TVF9XSURFX0lOVCBvbiBm bGFncy4KCShidWlsdGluX2lzYSk6IFVzZSBIT1NUX1dJREVfSU5UIG9uIGlz YS4KCShpeDg2X2FkZF9uZXdfYnVpbHRpbnMpOiBMaWtld2lzZS4KCShkZWZf YnVpbHRpbik6IFVzZSBIT1NUX1dJREVfSU5UIG9uIG1hc2suCgkoZGVmX2J1 aWx0aW5fY29uc3QpOiBMaWtld2lzZS4KCShidWlsdGluX2Rlc2NyaXB0aW9u KTogTGlrZXdpc2UuCgoJKiBjb25maWcvaTM4Ni9pMzg2Lm9wdCAoaXg4Nl9p c2FfZmxhZ3MpOiBSZXBsYWNlIGludCB3aXRoCglIT1NUX1dJREVfSU5ULgoJ KGl4ODZfaXNhX2ZsYWdzX2V4cGxpY2l0KTogTGlrZXdpc2UuCgkoeF9peDg2 X2lzYV9mbGFnc19leHBsaWNpdCk6IExpa2V3aXNlLgoKZGlmZiAtLWdpdCBh L2djYy9jb25maWcvaTM4Ni9pMzg2LWMuYyBiL2djYy9jb25maWcvaTM4Ni9p Mzg2LWMuYwppbmRleCAxZmMzMzNjLi5jNWE3NzBmIDEwMDY0NAotLS0gYS9n Y2MvY29uZmlnL2kzODYvaTM4Ni1jLmMKKysrIGIvZ2NjL2NvbmZpZy9pMzg2 L2kzODYtYy5jCkBAIC0zNCwxNCArMzQsMTQgQEAgYWxvbmcgd2l0aCBHQ0M7 IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUKIAogc3RhdGlj IGJvb2wgaXg4Nl9wcmFnbWFfdGFyZ2V0X3BhcnNlICh0cmVlLCB0cmVlKTsK IHN0YXRpYyB2b2lkIGl4ODZfdGFyZ2V0X21hY3Jvc19pbnRlcm5hbAotICAo aW50LCBlbnVtIHByb2Nlc3Nvcl90eXBlLCBlbnVtIHByb2Nlc3Nvcl90eXBl LCBlbnVtIGZwbWF0aF91bml0LAorICAoSE9TVF9XSURFX0lOVCwgZW51bSBw cm9jZXNzb3JfdHlwZSwgZW51bSBwcm9jZXNzb3JfdHlwZSwgZW51bSBmcG1h dGhfdW5pdCwKICAgIHZvaWQgKCpkZWZfb3JfdW5kZWYpIChjcHBfcmVhZGVy ICosIGNvbnN0IGNoYXIgKikpOwogCiAMCiAvKiBJbnRlcm5hbCBmdW5jdGlv biB0byBlaXRoZXIgZGVmaW5lIG9yIHVuZGVmIHRoZSBhcHByb3ByaWF0ZSBz eXN0ZW0KICAgIG1hY3Jvcy4gICovCiBzdGF0aWMgdm9pZAotaXg4Nl90YXJn ZXRfbWFjcm9zX2ludGVybmFsIChpbnQgaXNhX2ZsYWcsCitpeDg2X3Rhcmdl dF9tYWNyb3NfaW50ZXJuYWwgKEhPU1RfV0lERV9JTlQgaXNhX2ZsYWcsCiAJ CQkgICAgIGVudW0gcHJvY2Vzc29yX3R5cGUgYXJjaCwKIAkJCSAgICAgZW51 bSBwcm9jZXNzb3JfdHlwZSB0dW5lLAogCQkJICAgICBlbnVtIGZwbWF0aF91 bml0IGZwbWF0aCwKQEAgLTMwMSw5ICszMDEsOSBAQCBpeDg2X3ByYWdtYV90 YXJnZXRfcGFyc2UgKHRyZWUgYXJncywgdHJlZSBwb3BfdGFyZ2V0KQogICB0 cmVlIGN1cl90cmVlOwogICBzdHJ1Y3QgY2xfdGFyZ2V0X29wdGlvbiAqcHJl dl9vcHQ7CiAgIHN0cnVjdCBjbF90YXJnZXRfb3B0aW9uICpjdXJfb3B0Owot ICBpbnQgcHJldl9pc2E7Ci0gIGludCBjdXJfaXNhOwotICBpbnQgZGlmZl9p c2E7CisgIEhPU1RfV0lERV9JTlQgcHJldl9pc2E7CisgIEhPU1RfV0lERV9J TlQgY3VyX2lzYTsKKyAgSE9TVF9XSURFX0lOVCBkaWZmX2lzYTsKICAgZW51 bSBwcm9jZXNzb3JfdHlwZSBwcmV2X2FyY2g7CiAgIGVudW0gcHJvY2Vzc29y X3R5cGUgcHJldl90dW5lOwogICBlbnVtIHByb2Nlc3Nvcl90eXBlIGN1cl9h cmNoOwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9pMzg2L2kzODYuYyBiL2dj Yy9jb25maWcvaTM4Ni9pMzg2LmMKaW5kZXggYTdmOGVlNS4uMmU1YzJmYiAx MDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9pMzg2L2kzODYuYworKysgYi9nY2Mv Y29uZmlnL2kzODYvaTM4Ni5jCkBAIC0yNTAwLDcgKzI1MDAsNyBAQCBzdGF0 aWMgaW50IGl4ODZfZnVuY3Rpb25fcmVncGFybSAoY29uc3RfdHJlZSwgY29u c3RfdHJlZSk7CiBzdGF0aWMgdm9pZCBpeDg2X2NvbXB1dGVfZnJhbWVfbGF5 b3V0IChzdHJ1Y3QgaXg4Nl9mcmFtZSAqKTsKIHN0YXRpYyBib29sIGl4ODZf ZXhwYW5kX3ZlY3Rvcl9pbml0X29uZV9ub256ZXJvIChib29sLCBlbnVtIG1h Y2hpbmVfbW9kZSwKIAkJCQkJCSBydHgsIHJ0eCwgaW50KTsKLXN0YXRpYyB2 b2lkIGl4ODZfYWRkX25ld19idWlsdGlucyAoaW50KTsKK3N0YXRpYyB2b2lk IGl4ODZfYWRkX25ld19idWlsdGlucyAoSE9TVF9XSURFX0lOVCk7CiBzdGF0 aWMgcnR4IGl4ODZfZXhwYW5kX3ZlY19wZXJtX2J1aWx0aW4gKHRyZWUpOwog c3RhdGljIHRyZWUgaXg4Nl9jYW5vbmljYWxfdmFfbGlzdF90eXBlICh0cmVl KTsKIHN0YXRpYyB2b2lkIHByZWRpY3RfanVtcCAoaW50KTsKQEAgLTI1MTQs OCArMjUxNCw4IEBAIGVudW0gaXg4Nl9mdW5jdGlvbl9zcGVjaWZpY19zdHJp bmdzCiAgIElYODZfRlVOQ1RJT05fU1BFQ0lGSUNfTUFYCiB9OwogCi1zdGF0 aWMgY2hhciAqaXg4Nl90YXJnZXRfc3RyaW5nIChpbnQsIGludCwgY29uc3Qg Y2hhciAqLCBjb25zdCBjaGFyICosCi0JCQkJIGVudW0gZnBtYXRoX3VuaXQs IGJvb2wpOworc3RhdGljIGNoYXIgKml4ODZfdGFyZ2V0X3N0cmluZyAoSE9T VF9XSURFX0lOVCwgaW50LCBjb25zdCBjaGFyICosCisJCQkJIGNvbnN0IGNo YXIgKiwgZW51bSBmcG1hdGhfdW5pdCwgYm9vbCk7CiBzdGF0aWMgdm9pZCBp eDg2X2RlYnVnX29wdGlvbnMgKHZvaWQpIEFUVFJJQlVURV9VTlVTRUQ7CiBz dGF0aWMgdm9pZCBpeDg2X2Z1bmN0aW9uX3NwZWNpZmljX3NhdmUgKHN0cnVj dCBjbF90YXJnZXRfb3B0aW9uICopOwogc3RhdGljIHZvaWQgaXg4Nl9mdW5j dGlvbl9zcGVjaWZpY19yZXN0b3JlIChzdHJ1Y3QgY2xfdGFyZ2V0X29wdGlv biAqKTsKQEAgLTI2MzMsMTMgKzI2MzMsMTQgQEAgaXg4Nl91c2luZ19yZWRf em9uZSAodm9pZCkKICAgIHJlc3BvbnNpYmxlIGZvciBmcmVlaW5nIHRoZSBz dHJpbmcuICAqLwogCiBzdGF0aWMgY2hhciAqCi1peDg2X3RhcmdldF9zdHJp bmcgKGludCBpc2EsIGludCBmbGFncywgY29uc3QgY2hhciAqYXJjaCwgY29u c3QgY2hhciAqdHVuZSwKLQkJICAgIGVudW0gZnBtYXRoX3VuaXQgZnBtYXRo LCBib29sIGFkZF9ubF9wKQoraXg4Nl90YXJnZXRfc3RyaW5nIChIT1NUX1dJ REVfSU5UIGlzYSwgaW50IGZsYWdzLCBjb25zdCBjaGFyICphcmNoLAorCQkg ICAgY29uc3QgY2hhciAqdHVuZSwgZW51bSBmcG1hdGhfdW5pdCBmcG1hdGgs CisJCSAgICBib29sIGFkZF9ubF9wKQogewogICBzdHJ1Y3QgaXg4Nl90YXJn ZXRfb3B0cwogICB7CiAgICAgY29uc3QgY2hhciAqb3B0aW9uOwkJLyogb3B0 aW9uIHN0cmluZyAqLwotICAgIGludCBtYXNrOwkJCS8qIGlzYSBtYXNrIG9w dGlvbnMgKi8KKyAgICBIT1NUX1dJREVfSU5UIG1hc2s7CQkvKiBpc2EgbWFz ayBvcHRpb25zICovCiAgIH07CiAKICAgLyogVGhpcyB0YWJsZSBpcyBvcmRl cmVkIHNvIHRoYXQgb3B0aW9ucyBsaWtlIC1tc3NlNC4yIHRoYXQgaW1wbHkK QEAgLTI3NDcsNyArMjc0OCw4IEBAIGl4ODZfdGFyZ2V0X3N0cmluZyAoaW50 IGlzYSwgaW50IGZsYWdzLCBjb25zdCBjaGFyICphcmNoLCBjb25zdCBjaGFy ICp0dW5lLAogICBpZiAoaXNhICYmIGFkZF9ubF9wKQogICAgIHsKICAgICAg IG9wdHNbbnVtKytdWzBdID0gaXNhX290aGVyOwotICAgICAgc3ByaW50ZiAo aXNhX290aGVyLCAiKG90aGVyIGlzYTogJSN4KSIsIGlzYSk7CisgICAgICBz cHJpbnRmIChpc2Ffb3RoZXIsICIob3RoZXIgaXNhOiAlIyIgSE9TVF9XSURF X0lOVF9QUklOVCAieCkiLAorCSAgICAgICBpc2EpOwogICAgIH0KIAogICAv KiBBZGQgZmxhZyBvcHRpb25zLiAgKi8KQEAgLTI4ODgsNDcgKzI4OTAsNDQg QEAgaXg4Nl9vcHRpb25fb3ZlcnJpZGVfaW50ZXJuYWwgKGJvb2wgbWFpbl9h cmdzX3ApCiAgIGNvbnN0IGNoYXIgKnN1ZmZpeDsKICAgY29uc3QgY2hhciAq c3c7CiAKLSAgZW51bSBwdGFfZmxhZ3MKLSAgICB7Ci0gICAgICBQVEFfU1NF ID0gMSA8PCAwLAotICAgICAgUFRBX1NTRTIgPSAxIDw8IDEsCi0gICAgICBQ VEFfU1NFMyA9IDEgPDwgMiwKLSAgICAgIFBUQV9NTVggPSAxIDw8IDMsCi0g ICAgICBQVEFfUFJFRkVUQ0hfU1NFID0gMSA8PCA0LAotICAgICAgUFRBXzNE Tk9XID0gMSA8PCA1LAotICAgICAgUFRBXzNETk9XX0EgPSAxIDw8IDYsCi0g ICAgICBQVEFfNjRCSVQgPSAxIDw8IDcsCi0gICAgICBQVEFfU1NTRTMgPSAx IDw8IDgsCi0gICAgICBQVEFfQ1gxNiA9IDEgPDwgOSwKLSAgICAgIFBUQV9Q T1BDTlQgPSAxIDw8IDEwLAotICAgICAgUFRBX0FCTSA9IDEgPDwgMTEsCi0g ICAgICBQVEFfU1NFNEEgPSAxIDw8IDEyLAotICAgICAgUFRBX05PX1NBSEYg PSAxIDw8IDEzLAotICAgICAgUFRBX1NTRTRfMSA9IDEgPDwgMTQsCi0gICAg ICBQVEFfU1NFNF8yID0gMSA8PCAxNSwKLSAgICAgIFBUQV9BRVMgPSAxIDw8 IDE2LAotICAgICAgUFRBX1BDTE1VTCA9IDEgPDwgMTcsCi0gICAgICBQVEFf QVZYID0gMSA8PCAxOCwKLSAgICAgIFBUQV9GTUEgPSAxIDw8IDE5LAotICAg ICAgUFRBX01PVkJFID0gMSA8PCAyMCwKLSAgICAgIFBUQV9GTUE0ID0gMSA8 PCAyMSwKLSAgICAgIFBUQV9YT1AgPSAxIDw8IDIyLAotICAgICAgUFRBX0xX UCA9IDEgPDwgMjMsCi0gICAgICBQVEFfRlNHU0JBU0UgPSAxIDw8IDI0LAot ICAgICAgUFRBX1JEUk5EID0gMSA8PCAyNSwKLSAgICAgIFBUQV9GMTZDID0g MSA8PCAyNiwKLSAgICAgIFBUQV9CTUkgPSAxIDw8IDI3LAotICAgICAgUFRB X1RCTSA9IDEgPDwgMjgsCi0gICAgICBQVEFfTFpDTlQgPSAxIDw8IDI5Ci0g ICAgICAvKiBpZiB0aGlzIHJlYWNoZXMgMzIsIG5lZWQgdG8gd2lkZW4gc3Ry dWN0IHB0YSBmbGFncyBiZWxvdyAqLwotICAgIH07CisjZGVmaW5lIFBUQV8z RE5PVwkgCShIT1NUX1dJREVfSU5UXzEgPDwgMCkKKyNkZWZpbmUgUFRBXzNE Tk9XX0EJIAkoSE9TVF9XSURFX0lOVF8xIDw8IDEpCisjZGVmaW5lIFBUQV82 NEJJVAkJKEhPU1RfV0lERV9JTlRfMSA8PCAyKQorI2RlZmluZSBQVEFfQUJN CQkJKEhPU1RfV0lERV9JTlRfMSA8PCAzKQorI2RlZmluZSBQVEFfQUVTCQkg CShIT1NUX1dJREVfSU5UXzEgPDwgNCkKKyNkZWZpbmUgUFRBX0FWWAkJCShI T1NUX1dJREVfSU5UXzEgPDwgNSkKKyNkZWZpbmUgUFRBX0JNSQkJIAkoSE9T VF9XSURFX0lOVF8xIDw8IDYpCisjZGVmaW5lIFBUQV9DWDE2CQkoSE9TVF9X SURFX0lOVF8xIDw8IDcpCisjZGVmaW5lIFBUQV9GMTZDCQkoSE9TVF9XSURF X0lOVF8xIDw8IDgpCisjZGVmaW5lIFBUQV9GTUEJCQkoSE9TVF9XSURFX0lO VF8xIDw8IDkpCisjZGVmaW5lIFBUQV9GTUE0CSAJKEhPU1RfV0lERV9JTlRf MSA8PCAxMCkKKyNkZWZpbmUgUFRBX0ZTR1NCQVNFCQkoSE9TVF9XSURFX0lO VF8xIDw8IDExKQorI2RlZmluZSBQVEFfTFdQCQkgCShIT1NUX1dJREVfSU5U XzEgPDwgMTIpCisjZGVmaW5lIFBUQV9MWkNOVAkgCShIT1NUX1dJREVfSU5U XzEgPDwgMTMpCisjZGVmaW5lIFBUQV9NTVgJCQkoSE9TVF9XSURFX0lOVF8x IDw8IDE0KQorI2RlZmluZSBQVEFfTU9WQkUJCShIT1NUX1dJREVfSU5UXzEg PDwgMTUpCisjZGVmaW5lIFBUQV9OT19TQUhGCQkoSE9TVF9XSURFX0lOVF8x IDw8IDE2KQorI2RlZmluZSBQVEFfUENMTVVMCQkoSE9TVF9XSURFX0lOVF8x IDw8IDE3KQorI2RlZmluZSBQVEFfUE9QQ05UCQkoSE9TVF9XSURFX0lOVF8x IDw8IDE4KQorI2RlZmluZSBQVEFfUFJFRkVUQ0hfU1NFCShIT1NUX1dJREVf SU5UXzEgPDwgMTkpCisjZGVmaW5lIFBUQV9SRFJORAkgCShIT1NUX1dJREVf SU5UXzEgPDwgMjApCisjZGVmaW5lIFBUQV9TU0UJCQkoSE9TVF9XSURFX0lO VF8xIDw8IDIxKQorI2RlZmluZSBQVEFfU1NFMgkJKEhPU1RfV0lERV9JTlRf MSA8PCAyMikKKyNkZWZpbmUgUFRBX1NTRTMJCShIT1NUX1dJREVfSU5UXzEg PDwgMjMpCisjZGVmaW5lIFBUQV9TU0U0XzEJIAkoSE9TVF9XSURFX0lOVF8x IDw8IDI0KQorI2RlZmluZSBQVEFfU1NFNF8yCSAJKEhPU1RfV0lERV9JTlRf MSA8PCAyNSkKKyNkZWZpbmUgUFRBX1NTRTRBCQkoSE9TVF9XSURFX0lOVF8x IDw8IDI2KQorI2RlZmluZSBQVEFfU1NTRTMJCShIT1NUX1dJREVfSU5UXzEg PDwgMjcpCisjZGVmaW5lIFBUQV9UQk0JCSAJKEhPU1RfV0lERV9JTlRfMSA8 PCAyOCkKKyNkZWZpbmUgUFRBX1hPUAkJIAkoSE9TVF9XSURFX0lOVF8xIDw8 IDI5KQorLyogaWYgdGhpcyByZWFjaGVzIDY0LCBuZWVkIHRvIHdpZGVuIHN0 cnVjdCBwdGEgZmxhZ3MgYmVsb3cgKi8KIAogICBzdGF0aWMgc3RydWN0IHB0 YQogICAgIHsKICAgICAgIGNvbnN0IGNoYXIgKmNvbnN0IG5hbWU7CQkvKiBw cm9jZXNzb3IgbmFtZSBvciBuaWNrbmFtZS4gICovCiAgICAgICBjb25zdCBl bnVtIHByb2Nlc3Nvcl90eXBlIHByb2Nlc3NvcjsKICAgICAgIGNvbnN0IGVu dW0gYXR0cl9jcHUgc2NoZWR1bGU7Ci0gICAgICBjb25zdCB1bnNpZ25lZCAv KmVudW0gcHRhX2ZsYWdzKi8gZmxhZ3M7CisgICAgICBjb25zdCB1bnNpZ25l ZCBIT1NUX1dJREVfSU5UIGZsYWdzOwogICAgIH0KICAgY29uc3QgcHJvY2Vz c29yX2FsaWFzX3RhYmxlW10gPQogICAgIHsKQEAgLTI0MDQ3LDcgKzI0MDQ2 LDcgQEAgc3RhdGljIEdUWSgoKSkgdHJlZSBpeDg2X2J1aWx0aW5zWyhpbnQp IElYODZfQlVJTFRJTl9NQVhdOwogc3RydWN0IGJ1aWx0aW5faXNhIHsKICAg Y29uc3QgY2hhciAqbmFtZTsJCS8qIGZ1bmN0aW9uIG5hbWUgKi8KICAgZW51 bSBpeDg2X2J1aWx0aW5fZnVuY190eXBlIHRjb2RlOyAvKiB0eXBlIHRvIHVz ZSBpbiB0aGUgZGVjbGFyYXRpb24gKi8KLSAgaW50IGlzYTsJCQkvKiBpc2Ff ZmxhZ3MgdGhpcyBidWlsdGluIGlzIGRlZmluZWQgZm9yICovCisgIEhPU1Rf V0lERV9JTlQgaXNhOwkJLyogaXNhX2ZsYWdzIHRoaXMgYnVpbHRpbiBpcyBk ZWZpbmVkIGZvciAqLwogICBib29sIGNvbnN0X3A7CQkJLyogdHJ1ZSBpZiB0 aGUgZGVjbGFyYXRpb24gaXMgY29uc3RhbnQgKi8KICAgYm9vbCBzZXRfYW5k X25vdF9idWlsdF9wOwogfTsKQEAgLTI0MDcyLDcgKzI0MDcxLDggQEAgc3Rh dGljIHN0cnVjdCBidWlsdGluX2lzYSBpeDg2X2J1aWx0aW5zX2lzYVsoaW50 KSBJWDg2X0JVSUxUSU5fTUFYXTsKICAgIGVycm9ycyBpZiBhIGJ1aWx0aW4g aXMgYWRkZWQgaW4gdGhlIG1pZGRsZSBvZiBhIGZ1bmN0aW9uIHNjb3BlLiAg Ki8KIAogc3RhdGljIGlubGluZSB0cmVlCi1kZWZfYnVpbHRpbiAoaW50IG1h c2ssIGNvbnN0IGNoYXIgKm5hbWUsIGVudW0gaXg4Nl9idWlsdGluX2Z1bmNf dHlwZSB0Y29kZSwKK2RlZl9idWlsdGluIChIT1NUX1dJREVfSU5UIG1hc2ss IGNvbnN0IGNoYXIgKm5hbWUsCisJICAgICBlbnVtIGl4ODZfYnVpbHRpbl9m dW5jX3R5cGUgdGNvZGUsCiAJICAgICBlbnVtIGl4ODZfYnVpbHRpbnMgY29k ZSkKIHsKICAgdHJlZSBkZWNsID0gTlVMTF9UUkVFOwpAQCAtMjQxMTAsNyAr MjQxMTAsNyBAQCBkZWZfYnVpbHRpbiAoaW50IG1hc2ssIGNvbnN0IGNoYXIg Km5hbWUsIGVudW0gaXg4Nl9idWlsdGluX2Z1bmNfdHlwZSB0Y29kZSwKIC8q IExpa2UgZGVmX2J1aWx0aW4sIGJ1dCBhbHNvIG1hcmtzIHRoZSBmdW5jdGlv biBkZWNsICJjb25zdCIuICAqLwogCiBzdGF0aWMgaW5saW5lIHRyZWUKLWRl Zl9idWlsdGluX2NvbnN0IChpbnQgbWFzaywgY29uc3QgY2hhciAqbmFtZSwK K2RlZl9idWlsdGluX2NvbnN0IChIT1NUX1dJREVfSU5UIG1hc2ssIGNvbnN0 IGNoYXIgKm5hbWUsCiAJCSAgIGVudW0gaXg4Nl9idWlsdGluX2Z1bmNfdHlw ZSB0Y29kZSwgZW51bSBpeDg2X2J1aWx0aW5zIGNvZGUpCiB7CiAgIHRyZWUg ZGVjbCA9IGRlZl9idWlsdGluIChtYXNrLCBuYW1lLCB0Y29kZSwgY29kZSk7 CkBAIC0yNDEyNyw3ICsyNDEyNyw3IEBAIGRlZl9idWlsdGluX2NvbnN0IChp bnQgbWFzaywgY29uc3QgY2hhciAqbmFtZSwKICAgIGRlY2xhcmF0aW9ucyB0 byB0aGUgdHJlZSwgZXZlbiBpZiB3ZSBkaWRuJ3QgdXNlIHRoZW0uICAqLwog CiBzdGF0aWMgdm9pZAotaXg4Nl9hZGRfbmV3X2J1aWx0aW5zIChpbnQgaXNh KQoraXg4Nl9hZGRfbmV3X2J1aWx0aW5zIChIT1NUX1dJREVfSU5UIGlzYSkK IHsKICAgaW50IGk7CiAKQEAgLTI0MTYxLDcgKzI0MTYxLDcgQEAgaXg4Nl9h ZGRfbmV3X2J1aWx0aW5zIChpbnQgaXNhKQogCiBzdHJ1Y3QgYnVpbHRpbl9k ZXNjcmlwdGlvbgogewotICBjb25zdCB1bnNpZ25lZCBpbnQgbWFzazsKKyAg Y29uc3QgSE9TVF9XSURFX0lOVCBtYXNrOwogICBjb25zdCBlbnVtIGluc25f Y29kZSBpY29kZTsKICAgY29uc3QgY2hhciAqY29uc3QgbmFtZTsKICAgY29u c3QgZW51bSBpeDg2X2J1aWx0aW5zIGNvZGU7CmRpZmYgLS1naXQgYS9nY2Mv Y29uZmlnL2kzODYvaTM4Ni5vcHQgYi9nY2MvY29uZmlnL2kzODYvaTM4Ni5v cHQKaW5kZXggZjE5N2RkOC4uNjU0ZjRlYiAxMDA2NDQKLS0tIGEvZ2NjL2Nv bmZpZy9pMzg2L2kzODYub3B0CisrKyBiL2djYy9jb25maWcvaTM4Ni9pMzg2 Lm9wdApAQCAtMjQsMTIgKzI0LDEyIEBAIGNvbmZpZy9pMzg2L2kzODYtb3B0 cy5oCiAKIDsgQml0IGZsYWdzIHRoYXQgc3BlY2lmeSB0aGUgSVNBIHdlIGFy ZSBjb21waWxpbmcgZm9yLgogVmFyaWFibGUKLWludCBpeDg2X2lzYV9mbGFn cyA9IFRBUkdFVF82NEJJVF9ERUZBVUxUIHwgVEFSR0VUX1NVQlRBUkdFVF9J U0FfREVGQVVMVAorSE9TVF9XSURFX0lOVCBpeDg2X2lzYV9mbGFncyA9IFRB UkdFVF82NEJJVF9ERUZBVUxUIHwgVEFSR0VUX1NVQlRBUkdFVF9JU0FfREVG QVVMVAogCiA7IEEgbWFzayBvZiBpeDg2X2lzYV9mbGFncyB0aGF0IGluY2x1 ZGVzIGJpdCBYIGlmIFggd2FzIHNldCBvciBjbGVhcmVkCiA7IG9uIHRoZSBj b21tYW5kIGxpbmUuCiBWYXJpYWJsZQotaW50IGl4ODZfaXNhX2ZsYWdzX2V4 cGxpY2l0CitIT1NUX1dJREVfSU5UIGl4ODZfaXNhX2ZsYWdzX2V4cGxpY2l0 CiAKIDs7IERlZmluaXRpb25zIHRvIGFkZCB0byB0aGUgY2xfdGFyZ2V0X29w dGlvbiBzdHJ1Y3R1cmUKIDs7IC1tYXJjaD0gcHJvY2Vzc29yCkBAIC01MCw3 ICs1MCw3IEBAIHVuc2lnbmVkIGNoYXIgYnJhbmNoX2Nvc3QKIAogOzsgd2hp Y2ggZmxhZ3Mgd2VyZSBwYXNzZWQgYnkgdGhlIHVzZXIKIFRhcmdldFNhdmUK LWludCB4X2l4ODZfaXNhX2ZsYWdzX2V4cGxpY2l0CitIT1NUX1dJREVfSU5U IHhfaXg4Nl9pc2FfZmxhZ3NfZXhwbGljaXQKIAogOzsgd2hpY2ggZmxhZ3Mg d2VyZSBwYXNzZWQgYnkgdGhlIHVzZXIKIFRhcmdldFNhdmUKZGlmZiAtLWdp dCBhL2djYy9od2ludC5oIGIvZ2NjL2h3aW50LmgKaW5kZXggZmE3N2IxMS4u NjEzNTEzNiAxMDA2NDQKLS0tIGEvZ2NjL2h3aW50LmgKKysrIGIvZ2NjL2h3 aW50LmgKQEAgLTc5LDYgKzc5LDcgQEAgZXh0ZXJuIGNoYXIgc2l6ZW9mX2xv bmdfbG9uZ19tdXN0X2JlXzhbc2l6ZW9mKGxvbmcgbG9uZykgPT0gOCA/IDEg OiAtMV07CiAjaWYgSE9TVF9CSVRTX1BFUl9XSURFX0lOVCA9PSBIT1NUX0JJ VFNfUEVSX0xPTkcKICMgZGVmaW5lIEhPU1RfV0lERV9JTlRfUFJJTlQgSE9T VF9MT05HX0ZPUk1BVAogIyBkZWZpbmUgSE9TVF9XSURFX0lOVF9QUklOVF9D ICJMIgorIyBkZWZpbmUgSE9TVF9XSURFX0lOVF8xIDFMCiAgIC8qICdsb25n JyBtaWdodCBiZSAzMiBvciA2NCBiaXRzLCBhbmQgdGhlIG51bWJlciBvZiBs ZWFkaW5nIHplcm9lcwogICAgICBtdXN0IGJlIHR3ZWFrZWQgYWNjb3JkaW5n bHkuICAqLwogIyBpZiBIT1NUX0JJVFNfUEVSX1dJREVfSU5UID09IDY0CkBA IC05MSw2ICs5Miw3IEBAIGV4dGVybiBjaGFyIHNpemVvZl9sb25nX2xvbmdf bXVzdF9iZV84W3NpemVvZihsb25nIGxvbmcpID09IDggPyAxIDogLTFdOwog I2Vsc2UKICMgZGVmaW5lIEhPU1RfV0lERV9JTlRfUFJJTlQgSE9TVF9MT05H X0xPTkdfRk9STUFUCiAjIGRlZmluZSBIT1NUX1dJREVfSU5UX1BSSU5UX0Mg IkxMIgorIyBkZWZpbmUgSE9TVF9XSURFX0lOVF8xIDFMTAogICAvKiBXZSBj YW4gYXNzdW1lIHRoYXQgJ2xvbmcgbG9uZycgaXMgYXQgbGVhc3QgNjQgYml0 cy4gICovCiAjIGRlZmluZSBIT1NUX1dJREVfSU5UX1BSSU5UX0RPVUJMRV9I RVggXAogICAgICIweCUiIEhPU1RfTE9OR19MT05HX0ZPUk1BVCAieCUwMTYi IEhPU1RfTE9OR19MT05HX0ZPUk1BVCAieCIKZGlmZiAtLWdpdCBhL2djYy9v cHQtZnVuY3Rpb25zLmF3ayBiL2djYy9vcHQtZnVuY3Rpb25zLmF3awppbmRl eCA5NDVlZWIxLi4xZjU4MmZiIDEwMDY0NAotLS0gYS9nY2Mvb3B0LWZ1bmN0 aW9ucy5hd2sKKysrIGIvZ2NjL29wdC1mdW5jdGlvbnMuYXdrCkBAIC0xMTAs NiArMTEwLDExIEBAIGZ1bmN0aW9uIHN3aXRjaF9mbGFncyAoZmxhZ3MpCiAj IFJldHVybiBiaXQtZmllbGQgaW5pdGlhbGl6ZXJzIGZvciBvcHRpb24gZmxh Z3MgRkxBR1MuCiBmdW5jdGlvbiBzd2l0Y2hfYml0X2ZpZWxkcyAoZmxhZ3Mp CiB7CisJdm4gPSB2YXJfbmFtZShmbGFncyk7CisJaWYgKGhvc3Rfd2lkZV9p bnRbdm5dID09ICJ5ZXMiKQorCQlod2kgPSAiSG9zdF9XaWRlX0ludCIKKwll bHNlCisJCWh3aSA9ICIiCiAJcmVzdWx0ID0gIiIKIAlzZXBfYXJncyA9IG9w dF9hcmdzKCJBcmdzIiwgZmxhZ3MpCiAJaWYgKHNlcF9hcmdzID09ICIiKQpA QCAtMTI2LDYgKzEzMSw3IEBAIGZ1bmN0aW9uIHN3aXRjaF9iaXRfZmllbGRz IChmbGFncykKIAkgIGZsYWdfaW5pdCgiUmVqZWN0TmVnYXRpdmUiLCBmbGFn cykgXAogCSAgZmxhZ19pbml0KCJKb2luZWRPck1pc3NpbmciLCBmbGFncykg XAogCSAgZmxhZ19pbml0KCJVSW50ZWdlciIsIGZsYWdzKSBcCisJICBmbGFn X2luaXQoIkhvc3RfV2lkZV9JbnQiLCBod2kpIFwKIAkgIGZsYWdfaW5pdCgi VG9Mb3dlciIsIGZsYWdzKSBcCiAJICBmbGFnX2luaXQoIlJlcG9ydCIsIGZs YWdzKQogCkBAIC0xNDAsNiArMTQ2LDE3IEBAIGZ1bmN0aW9uIHZhcl9uYW1l KGZsYWdzKQogCXJldHVybiBudGhfYXJnKDAsIG9wdF9hcmdzKCJWYXIiLCBm bGFncykpCiB9CiAKKyMgUmV0dXJuIHRoZSBuYW1lIG9mIHRoZSB2YXJpYWJs ZSBpZiBGTEFHUyBoYXMgYSBIT1NUX1dJREVfSU5UIHZhcmlhYmxlLiAKKyMg UmV0dXJuIHRoZSBlbXB0eSBzdHJpbmcgb3RoZXJ3aXNlLgorZnVuY3Rpb24g aG9zdF93aWRlX2ludF92YXJfbmFtZShmbGFncykKK3sKKwlzcGxpdCAoZmxh Z3MsIGFycmF5LCAiWyBcdF0rIikKKwlpZiAoYXJyYXlbMV0gPT0gIkhPU1Rf V0lERV9JTlQiKQorCQlyZXR1cm4gYXJyYXlbMl0KKwllbHNlCisJCXJldHVy biAiIgorfQorCiAjIFJldHVybiB0cnVlIGlmIHRoZSBvcHRpb24gZGVzY3Jp YmVkIGJ5IEZMQUdTIGhhcyBhIGdsb2JhbGx5LXZpc2libGUgc3RhdGUuCiBm dW5jdGlvbiBnbG9iYWxfc3RhdGVfcChmbGFncykKIHsKQEAgLTE5Nyw4ICsy MTQsMTIgQEAgZnVuY3Rpb24gdmFyX3R5cGVfc3RydWN0KGZsYWdzKQogCQly ZXR1cm4gZW51bV90eXBlW2VuXSAiICIKIAl9CiAJZWxzZSBpZiAoIWZsYWdf c2V0X3AoIkpvaW5lZC4qIiwgZmxhZ3MpICYmICFmbGFnX3NldF9wKCJTZXBh cmF0ZSIsIGZsYWdzKSkgewotCQlpZiAoZmxhZ19zZXRfcCgiLipNYXNrLioi LCBmbGFncykpCi0JCQlyZXR1cm4gImludCAiCisJCWlmIChmbGFnX3NldF9w KCIuKk1hc2suKiIsIGZsYWdzKSkgeworCQkJaWYgKGhvc3Rfd2lkZV9pbnRb dmFyX25hbWUoZmxhZ3MpXSA9PSAieWVzIikKKwkJCQlyZXR1cm4gIkhPU1Rf V0lERV9JTlQgIgorCQkJZWxzZQorCQkJCXJldHVybiAiaW50ICIKKwkJfQog CQllbHNlCiAJCQlyZXR1cm4gInNpZ25lZCBjaGFyICIKIAl9CmRpZmYgLS1n aXQgYS9nY2Mvb3B0LXJlYWQuYXdrIGIvZ2NjL29wdC1yZWFkLmF3awppbmRl eCBjNDg4ZWQ1Li42YTRkNGRlIDEwMDY0NAotLS0gYS9nY2Mvb3B0LXJlYWQu YXdrCisrKyBiL2djYy9vcHQtcmVhZC5hd2sKQEAgLTUxLDYgKzUxLDkgQEAg QkVHSU4gewogCQllbHNlIGlmICgkMSA9PSAiVmFyaWFibGUiKSB7CiAJCQll eHRyYV92YXJzW25fZXh0cmFfdmFyc10gPSAkMgogCQkJbl9leHRyYV92YXJz KysKKwkJCW5hbWUgPSBob3N0X3dpZGVfaW50X3Zhcl9uYW1lKCQyKQorCQkJ aWYgKG5hbWUgIT0gIiIpCisJCQkJaG9zdF93aWRlX2ludFtuYW1lXSA9ICJ5 ZXMiCiAJCX0KIAkJZWxzZSBpZiAoJDEgPT0gIlRhcmdldFZhcmlhYmxlIikg ewogCQkJIyBDb21iaW5hdGlvbiBvZiBUYXJnZXRTYXZlIGFuZCBWYXJpYWJs ZQpkaWZmIC0tZ2l0IGEvZ2NjL29wdGMtc2F2ZS1nZW4uYXdrIGIvZ2NjL29w dGMtc2F2ZS1nZW4uYXdrCmluZGV4IDRlZmMxMTUuLjY1NGQ4NjkgMTAwNjQ0 Ci0tLSBhL2djYy9vcHRjLXNhdmUtZ2VuLmF3aworKysgYi9nY2Mvb3B0Yy1z YXZlLWdlbi5hd2sKQEAgLTM2MywxMCArMzYzLDE2IEBAIHByaW50ICJ7IjsK IHByaW50ICIgIGZwdXRzIChcIlxcblwiLCBmaWxlKTsiOwogZm9yIChpID0g MDsgaSA8IG5fdGFyZ2V0X290aGVyOyBpKyspIHsKIAlwcmludCAiICBpZiAo cHRyLT54XyIgdmFyX3RhcmdldF9vdGhlcltpXSAiKSI7Ci0JcHJpbnQgIiAg ICBmcHJpbnRmIChmaWxlLCBcIiUqcyVzICglI2x4KVxcblwiLCI7CisJaWYg KGhvc3Rfd2lkZV9pbnRbdmFyX3RhcmdldF9vdGhlcltpXV0gPT0gInllcyIp CisJCXByaW50ICIgICAgZnByaW50ZiAoZmlsZSwgXCIlKnMlcyAoJSNcIiBI T1NUX1dJREVfSU5UX1BSSU5UIFwieClcXG5cIiwiOworCWVsc2UKKwkJcHJp bnQgIiAgICBmcHJpbnRmIChmaWxlLCBcIiUqcyVzICglI3gpXFxuXCIsIjsK IAlwcmludCAiICAgICAgICAgICAgIGluZGVudCwgXCJcIiwiOwogCXByaW50 ICIgICAgICAgICAgICAgXCIiIHZhcl90YXJnZXRfb3RoZXJbaV0gIlwiLCI7 Ci0JcHJpbnQgIiAgICAgICAgICAgICAodW5zaWduZWQgbG9uZylwdHItPnhf IiB2YXJfdGFyZ2V0X290aGVyW2ldICIpOyI7CisJaWYgKGhvc3Rfd2lkZV9p bnRbdmFyX3RhcmdldF9vdGhlcltpXV0gPT0gInllcyIpCisJCXByaW50ICIg ICAgICAgICAgICAgcHRyLT54XyIgdmFyX3RhcmdldF9vdGhlcltpXSAiKTsi OworCWVsc2UKKwkJcHJpbnQgIiAgICAgICAgICAgICAodW5zaWduZWQgbG9u ZylwdHItPnhfIiB2YXJfdGFyZ2V0X290aGVyW2ldICIpOyI7CiAJcHJpbnQg IiI7CiB9CiAKZGlmZiAtLWdpdCBhL2djYy9vcHRoLWdlbi5hd2sgYi9nY2Mv b3B0aC1nZW4uYXdrCmluZGV4IDg3NmUwZjYuLjQxZTNkODQgMTAwNjQ0Ci0t LSBhL2djYy9vcHRoLWdlbi5hd2sKKysrIGIvZ2NjL29wdGgtZ2VuLmF3awpA QCAtMzAwLDE4ICszMDAsMjYgQEAgZm9yIChpID0gMDsgaSA8IG5fb3B0czsg aSsrKSB7CiAJbmFtZSA9IG9wdF9hcmdzKCJNYXNrIiwgZmxhZ3NbaV0pCiAJ dm5hbWUgPSB2YXJfbmFtZShmbGFnc1tpXSkKIAltYXNrID0gIk1BU0tfIgor CW1hc2tfMSA9ICIxIgogCWlmICh2bmFtZSAhPSAiIikgewogCQltYXNrID0g Ik9QVElPTl9NQVNLXyIKKwkJaWYgKGhvc3Rfd2lkZV9pbnRbdm5hbWVdID09 ICJ5ZXMiKQorCQkJbWFza18xID0gIkhPU1RfV0lERV9JTlRfMSIKIAl9CiAJ aWYgKG5hbWUgIT0gIiIgJiYgIWZsYWdfc2V0X3AoIk1hc2tFeGlzdHMiLCBm bGFnc1tpXSkpCi0JCXByaW50ICIjZGVmaW5lICIgbWFzayBuYW1lICIgKDEg PDwgIiBtYXNrbnVtW3ZuYW1lXSsrICIpIgorCQlwcmludCAiI2RlZmluZSAi IG1hc2sgbmFtZSAiICgiIG1hc2tfMSAiIDw8ICIgbWFza251bVt2bmFtZV0r KyAiKSIKIH0KIGZvciAoaSA9IDA7IGkgPCBuX2V4dHJhX21hc2tzOyBpKysp IHsKIAlwcmludCAiI2RlZmluZSBNQVNLXyIgZXh0cmFfbWFza3NbaV0gIiAo MSA8PCAiIG1hc2tudW1bIiJdKysgIikiCiB9CiAKIGZvciAodmFyIGluIG1h c2tudW0pIHsKLQlpZiAobWFza251bVt2YXJdID4gMzEpIHsKKwlpZiAodmFy ICE9ICIiICYmIGhvc3Rfd2lkZV9pbnRbdmFyXSA9PSAieWVzIikgeworCQlw cmludCAiI2lmICIgbWFza251bVt2YXJdICIgPj0gSE9TVF9CSVRTX1BFUl9X SURFX0lOVCIKKwkJcHJpbnQgIiNlcnJvciB0b28gbWFueSBtYXNrcyBmb3Ig IiB2YXIKKwkJcHJpbnQgIiNlbmRpZiIKKwl9CisJZWxzZSBpZiAobWFza251 bVt2YXJdID4gMzEpIHsKIAkJaWYgKHZhciA9PSAiIikKIAkJCXByaW50ICIj ZXJyb3IgdG9vIG1hbnkgdGFyZ2V0IG1hc2tzIgogCQllbHNlCmRpZmYgLS1n aXQgYS9nY2Mvb3B0cy1jb21tb24uYyBiL2djYy9vcHRzLWNvbW1vbi5jCmlu ZGV4IDk3M2RkN2UuLjFjMjEzOGYgMTAwNjQ0Ci0tLSBhL2djYy9vcHRzLWNv bW1vbi5jCisrKyBiL2djYy9vcHRzLWNvbW1vbi5jCkBAIC0xMDk4LDExICsx MDk4LDI2IEBAIHNldF9vcHRpb24gKHN0cnVjdCBnY2Nfb3B0aW9ucyAqb3B0 cywgc3RydWN0IGdjY19vcHRpb25zICpvcHRzX3NldCwKICAgICBjYXNlIENM VkNfQklUX0NMRUFSOgogICAgIGNhc2UgQ0xWQ19CSVRfU0VUOgogCWlmICgo dmFsdWUgIT0gMCkgPT0gKG9wdGlvbi0+dmFyX3R5cGUgPT0gQ0xWQ19CSVRf U0VUKSkKLQkgICooaW50ICopIGZsYWdfdmFyIHw9IG9wdGlvbi0+dmFyX3Zh bHVlOworCSAgeworCSAgICBpZiAob3B0aW9uLT5jbF9ob3N0X3dpZGVfaW50 KSAKKwkgICAgICAqKEhPU1RfV0lERV9JTlQgKikgZmxhZ192YXIgfD0gb3B0 aW9uLT52YXJfdmFsdWU7CisJICAgIGVsc2UgCisJICAgICAgKihpbnQgKikg ZmxhZ192YXIgfD0gb3B0aW9uLT52YXJfdmFsdWU7CisJICB9CiAJZWxzZQot CSAgKihpbnQgKikgZmxhZ192YXIgJj0gfm9wdGlvbi0+dmFyX3ZhbHVlOwor CSAgeworCSAgICBpZiAob3B0aW9uLT5jbF9ob3N0X3dpZGVfaW50KSAKKwkg ICAgICAqKEhPU1RfV0lERV9JTlQgKikgZmxhZ192YXIgJj0gfm9wdGlvbi0+ dmFyX3ZhbHVlOworCSAgICBlbHNlIAorCSAgICAgICooaW50ICopIGZsYWdf dmFyICY9IH5vcHRpb24tPnZhcl92YWx1ZTsKKwkgIH0KIAlpZiAoc2V0X2Zs YWdfdmFyKQotCSAgKihpbnQgKikgc2V0X2ZsYWdfdmFyIHw9IG9wdGlvbi0+ dmFyX3ZhbHVlOworCSAgeworCSAgICBpZiAob3B0aW9uLT5jbF9ob3N0X3dp ZGVfaW50KSAKKwkgICAgICAqKEhPU1RfV0lERV9JTlQgKikgc2V0X2ZsYWdf dmFyIHw9IG9wdGlvbi0+dmFyX3ZhbHVlOworCSAgICBlbHNlCisJICAgICAg KihpbnQgKikgc2V0X2ZsYWdfdmFyIHw9IG9wdGlvbi0+dmFyX3ZhbHVlOwor CSAgfQogCWJyZWFrOwogCiAgICAgY2FzZSBDTFZDX1NUUklORzoKZGlmZiAt LWdpdCBhL2djYy9vcHRzLmggYi9nY2Mvb3B0cy5oCmluZGV4IGIwNzBjOGYu LjNjMGZlM2YgMTAwNjQ0Ci0tLSBhL2djYy9vcHRzLmgKKysrIGIvZ2NjL29w dHMuaApAQCAtOTYsNiArOTYsOCBAQCBzdHJ1Y3QgY2xfb3B0aW9uCiAgIEJP T0xfQklURklFTEQgY2xfbWlzc2luZ19vayA6IDE7CiAgIC8qIEFyZ3VtZW50 IGlzIGFuIGludGVnZXIgPj0wLiAgKi8KICAgQk9PTF9CSVRGSUVMRCBjbF91 aW50ZWdlciA6IDE7CisgIC8qIEFyZ3VtZW50IGlzIGEgSE9TVF9XSURFX0lO VC4gICovCisgIEJPT0xfQklURklFTEQgY2xfaG9zdF93aWRlX2ludCA6IDE7 CiAgIC8qIEFyZ3VtZW50IHNob3VsZCBiZSBjb252ZXJ0ZWQgdG8gbG93ZXJj YXNlLiAgKi8KICAgQk9PTF9CSVRGSUVMRCBjbF90b2xvd2VyIDogMTsKICAg LyogUmVwb3J0IGFyZ3VtZW50IHdpdGggLWZ2ZXJib3NlLWFzbSAgKi8KQEAg LTEwOSw3ICsxMTEsNyBAQCBzdHJ1Y3QgY2xfb3B0aW9uCiAgIC8qIEhvdyB0 aGlzIG9wdGlvbidzIHZhbHVlIGlzIGRldGVybWluZWQgYW5kIHNldHMgYSBm aWVsZC4gICovCiAgIGVudW0gY2xfdmFyX3R5cGUgdmFyX3R5cGU7CiAgIC8q IFZhbHVlIG9yIGJpdC1tYXNrIHdpdGggd2hpY2ggdG8gc2V0IGEgZmllbGQu ICAqLwotICBpbnQgdmFyX3ZhbHVlOworICBIT1NUX1dJREVfSU5UIHZhcl92 YWx1ZTsKIH07CiAKIC8qIFJlY29yZHMgdGhhdCB0aGUgc3RhdGUgb2YgYW4g b3B0aW9uIGNvbnNpc3RzIG9mIFNJWkUgYnl0ZXMgc3RhcnRpbmcK --90e6ba10a7cbdcf87a04a9b77951--