From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13185 invoked by alias); 17 Aug 2011 20:41:44 -0000 Received: (qmail 13173 invoked by uid 22791); 17 Aug 2011 20:41:41 -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-qw0-f47.google.com (HELO mail-qw0-f47.google.com) (209.85.216.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 17 Aug 2011 20:41:24 +0000 Received: by qwh5 with SMTP id 5so840761qwh.20 for ; Wed, 17 Aug 2011 13:41:23 -0700 (PDT) MIME-Version: 1.0 Received: by 10.224.194.138 with SMTP id dy10mr1463128qab.196.1313613682801; Wed, 17 Aug 2011 13:41:22 -0700 (PDT) Received: by 10.229.29.7 with HTTP; Wed, 17 Aug 2011 13:41:22 -0700 (PDT) In-Reply-To: References: Date: Wed, 17 Aug 2011 20:41:00 -0000 Message-ID: Subject: Re: PING: PATCH: 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, Richard Henderson Content-Type: multipart/mixed; boundary=20cf300fb4f1ef7d1a04aab984f7 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/msg00319.txt.bz2 --20cf300fb4f1ef7d1a04aab984f7 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 2525 On Wed, Aug 17, 2011 at 1:35 PM, Joseph S. Myers wrote: > On Wed, 17 Aug 2011, H.J. Lu wrote: > >> On Wed, Aug 17, 2011 at 12:28 PM, Joseph S. Myers >> wrote: >> > On Sun, 7 Aug 2011, H.J. Lu wrote: >> > >> >> HOST_BITS_PER_WIDE_INT isn't defined in target library. >> >> I need to check if HOST_BITS_PER_WIDE_INT is defined >> >> first. =A0Here is the updated patch. >> > >> > As I said in , you ne= ed >> > to check all CLVC_* uses for cases that need updating for HOST_WIDE_INT >> > fields. =A0This patch fails to update option_enabled and get_option_st= ate. >> > >> >> Here is the additional patch. > > Thanks. =A0The target-independent parts of your patch are OK with these > extra changes, subject to the usual test requirements. > > -- > Joseph S. Myers > joseph@codesourcery.com I am testing this complete patch. Richard, Uros, is x86 backend change OK? Thanks. --=20 H.J. ---- 2011-08-17 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. (option_enabled): Likewise. (get_option_state): Likewise. * 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. --20cf300fb4f1ef7d1a04aab984f7 Content-Type: text/x-diff; charset=US-ASCII; name="gcc-x86-int64-8.patch" Content-Disposition: attachment; filename="gcc-x86-int64-8.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_grgrkvlr0 Content-length: 25340 MjAxMS0wOC0xNyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoJ ICAgIElnb3IgWmFteWF0aW4gPGlnb3IuemFteWF0aW5AaW50ZWwuY29tPgoK CSogaHdpbnQuaCAoSE9TVF9XSURFX0lOVF8xKTogTmV3LgoKCSogb3B0LWZ1 bmN0aW9ucy5hd2sgKHN3aXRjaF9iaXRfZmllbGRzKTogSW5pdGlhbGl6ZSB0 aGUKCWhvc3Rfd2lkZV9pbnQgZmllbGQuCgkoaG9zdF93aWRlX2ludF92YXJf bmFtZSk6IE5ldy4KCSh2YXJfdHlwZV9zdHJ1Y3QpOiBDaGVjayBhbmQgcmV0 dXJuIEhPU1RfV0lERV9JTlQuCgoJKiBvcHQtcmVhZC5hd2s6IEhhbmRsZSBI T1NUX1dJREVfSU5UIGZvciAiVmFyaWFibGUiLgoKCSogb3B0Yy1zYXZlLWdl bi5hd2s6IFN1cHBvcnQgSE9TVF9XSURFX0lOVCBvbiB2YXJfdGFyZ2V0X290 aGVyLgoKCSogb3B0aC1nZW4uYXdrOiBVc2UgSE9TVF9XSURFX0lOVF8xIG9u IEhPU1RfV0lERV9JTlQuICBQcm9wZXJseQoJY2hlY2sgbWFza3MgZm9yIEhP U1RfV0lERV9JTlQuCgoJKiBvcHRzLWNvbW1vbi5jIChzZXRfb3B0aW9uKTog U3VwcG9ydCBIT1NUX1dJREVfSU5UIGZsYWdfdmFyLgoJKG9wdGlvbl9lbmFi bGVkKTogTGlrZXdpc2UuCgkoZ2V0X29wdGlvbl9zdGF0ZSk6IExpa2V3aXNl LgoKCSogb3B0cy5oIChjbF9vcHRpb24pOiBBZGQgY2xfaG9zdF93aWRlX2lu dC4gIENoYW5nZSB2YXJfdmFsdWUKCXRvIEhPU1RfV0lERV9JTlQuCgoJKiBj b25maWcvaTM4Ni9pMzg2LWMuYyAoaXg4Nl90YXJnZXRfbWFjcm9zX2ludGVy bmFsKTogUmVwbGFjZSBpbnQKCXdpdGggSE9TVF9XSURFX0lOVCBmb3IgaXNh X2ZsYWcuCgkoaXg4Nl9wcmFnbWFfdGFyZ2V0X3BhcnNlKTogUmVwbGFjZSBp bnQgd2l0aCBIT1NUX1dJREVfSU5UIGZvcgoJaXNhIHZhcmlhYmxlcy4KCgkq IGNvbmZpZy9pMzg2L2kzODYuYyAoaXg4Nl90YXJnZXRfc3RyaW5nKTogUmVw bGFjZSBpbnQgd2l0aAoJSE9TVF9XSURFX0lOVCBmb3IgaXNhLiAgVXNlIEhP U1RfV0lERV9JTlRfUFJJTlQgdG8gcHJpbnQgaXNhLgoJKGl4ODZfdGFyZ2V0 X29wdHMpOiBSZXBsYWNlIGludCB3aXRoIEhPU1RfV0lERV9JTlQgb24gbWFz ay4KCShwdGFfZmxhZ3MpOiBSZW1vdmVkLgoJKFBUQV9YWFgpOiBSZWRlZmlu ZWQgYXMgKEhPU1RfV0lERV9JTlRfMSA8PCBYKS4KCShwdGEpOiBVc2UgSE9T VF9XSURFX0lOVCBvbiBmbGFncy4KCShidWlsdGluX2lzYSk6IFVzZSBIT1NU X1dJREVfSU5UIG9uIGlzYS4KCShpeDg2X2FkZF9uZXdfYnVpbHRpbnMpOiBM aWtld2lzZS4KCShkZWZfYnVpbHRpbik6IFVzZSBIT1NUX1dJREVfSU5UIG9u IG1hc2suCgkoZGVmX2J1aWx0aW5fY29uc3QpOiBMaWtld2lzZS4KCShidWls dGluX2Rlc2NyaXB0aW9uKTogTGlrZXdpc2UuCgoJKiBjb25maWcvaTM4Ni9p Mzg2Lm9wdCAoaXg4Nl9pc2FfZmxhZ3MpOiBSZXBsYWNlIGludCB3aXRoCglI T1NUX1dJREVfSU5ULgoJKGl4ODZfaXNhX2ZsYWdzX2V4cGxpY2l0KTogTGlr ZXdpc2UuCgkoeF9peDg2X2lzYV9mbGFnc19leHBsaWNpdCk6IExpa2V3aXNl LgoKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvaTM4Ni9pMzg2LWMuYyBiL2dj Yy9jb25maWcvaTM4Ni9pMzg2LWMuYwppbmRleCAxZmMzMzNjLi5jNWE3NzBm IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2kzODYvaTM4Ni1jLmMKKysrIGIv Z2NjL2NvbmZpZy9pMzg2L2kzODYtYy5jCkBAIC0zNCwxNCArMzQsMTQgQEAg YWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5v dCBzZWUKIAogc3RhdGljIGJvb2wgaXg4Nl9wcmFnbWFfdGFyZ2V0X3BhcnNl ICh0cmVlLCB0cmVlKTsKIHN0YXRpYyB2b2lkIGl4ODZfdGFyZ2V0X21hY3Jv c19pbnRlcm5hbAotICAoaW50LCBlbnVtIHByb2Nlc3Nvcl90eXBlLCBlbnVt IHByb2Nlc3Nvcl90eXBlLCBlbnVtIGZwbWF0aF91bml0LAorICAoSE9TVF9X SURFX0lOVCwgZW51bSBwcm9jZXNzb3JfdHlwZSwgZW51bSBwcm9jZXNzb3Jf dHlwZSwgZW51bSBmcG1hdGhfdW5pdCwKICAgIHZvaWQgKCpkZWZfb3JfdW5k ZWYpIChjcHBfcmVhZGVyICosIGNvbnN0IGNoYXIgKikpOwogCiAMCiAvKiBJ bnRlcm5hbCBmdW5jdGlvbiB0byBlaXRoZXIgZGVmaW5lIG9yIHVuZGVmIHRo ZSBhcHByb3ByaWF0ZSBzeXN0ZW0KICAgIG1hY3Jvcy4gICovCiBzdGF0aWMg dm9pZAotaXg4Nl90YXJnZXRfbWFjcm9zX2ludGVybmFsIChpbnQgaXNhX2Zs YWcsCitpeDg2X3RhcmdldF9tYWNyb3NfaW50ZXJuYWwgKEhPU1RfV0lERV9J TlQgaXNhX2ZsYWcsCiAJCQkgICAgIGVudW0gcHJvY2Vzc29yX3R5cGUgYXJj aCwKIAkJCSAgICAgZW51bSBwcm9jZXNzb3JfdHlwZSB0dW5lLAogCQkJICAg ICBlbnVtIGZwbWF0aF91bml0IGZwbWF0aCwKQEAgLTMwMSw5ICszMDEsOSBA QCBpeDg2X3ByYWdtYV90YXJnZXRfcGFyc2UgKHRyZWUgYXJncywgdHJlZSBw b3BfdGFyZ2V0KQogICB0cmVlIGN1cl90cmVlOwogICBzdHJ1Y3QgY2xfdGFy Z2V0X29wdGlvbiAqcHJldl9vcHQ7CiAgIHN0cnVjdCBjbF90YXJnZXRfb3B0 aW9uICpjdXJfb3B0OwotICBpbnQgcHJldl9pc2E7Ci0gIGludCBjdXJfaXNh OwotICBpbnQgZGlmZl9pc2E7CisgIEhPU1RfV0lERV9JTlQgcHJldl9pc2E7 CisgIEhPU1RfV0lERV9JTlQgY3VyX2lzYTsKKyAgSE9TVF9XSURFX0lOVCBk aWZmX2lzYTsKICAgZW51bSBwcm9jZXNzb3JfdHlwZSBwcmV2X2FyY2g7CiAg IGVudW0gcHJvY2Vzc29yX3R5cGUgcHJldl90dW5lOwogICBlbnVtIHByb2Nl c3Nvcl90eXBlIGN1cl9hcmNoOwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9p Mzg2L2kzODYuYyBiL2djYy9jb25maWcvaTM4Ni9pMzg2LmMKaW5kZXggZmU2 Y2NiZS4uMzA4NzY4YiAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9pMzg2L2kz ODYuYworKysgYi9nY2MvY29uZmlnL2kzODYvaTM4Ni5jCkBAIC0yNTAwLDcg KzI1MDAsNyBAQCBzdGF0aWMgaW50IGl4ODZfZnVuY3Rpb25fcmVncGFybSAo Y29uc3RfdHJlZSwgY29uc3RfdHJlZSk7CiBzdGF0aWMgdm9pZCBpeDg2X2Nv bXB1dGVfZnJhbWVfbGF5b3V0IChzdHJ1Y3QgaXg4Nl9mcmFtZSAqKTsKIHN0 YXRpYyBib29sIGl4ODZfZXhwYW5kX3ZlY3Rvcl9pbml0X29uZV9ub256ZXJv IChib29sLCBlbnVtIG1hY2hpbmVfbW9kZSwKIAkJCQkJCSBydHgsIHJ0eCwg aW50KTsKLXN0YXRpYyB2b2lkIGl4ODZfYWRkX25ld19idWlsdGlucyAoaW50 KTsKK3N0YXRpYyB2b2lkIGl4ODZfYWRkX25ld19idWlsdGlucyAoSE9TVF9X SURFX0lOVCk7CiBzdGF0aWMgcnR4IGl4ODZfZXhwYW5kX3ZlY19wZXJtX2J1 aWx0aW4gKHRyZWUpOwogc3RhdGljIHRyZWUgaXg4Nl9jYW5vbmljYWxfdmFf bGlzdF90eXBlICh0cmVlKTsKIHN0YXRpYyB2b2lkIHByZWRpY3RfanVtcCAo aW50KTsKQEAgLTI1MTQsOCArMjUxNCw4IEBAIGVudW0gaXg4Nl9mdW5jdGlv bl9zcGVjaWZpY19zdHJpbmdzCiAgIElYODZfRlVOQ1RJT05fU1BFQ0lGSUNf TUFYCiB9OwogCi1zdGF0aWMgY2hhciAqaXg4Nl90YXJnZXRfc3RyaW5nIChp bnQsIGludCwgY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosCi0JCQkJIGVu dW0gZnBtYXRoX3VuaXQsIGJvb2wpOworc3RhdGljIGNoYXIgKml4ODZfdGFy Z2V0X3N0cmluZyAoSE9TVF9XSURFX0lOVCwgaW50LCBjb25zdCBjaGFyICos CisJCQkJIGNvbnN0IGNoYXIgKiwgZW51bSBmcG1hdGhfdW5pdCwgYm9vbCk7 CiBzdGF0aWMgdm9pZCBpeDg2X2RlYnVnX29wdGlvbnMgKHZvaWQpIEFUVFJJ QlVURV9VTlVTRUQ7CiBzdGF0aWMgdm9pZCBpeDg2X2Z1bmN0aW9uX3NwZWNp ZmljX3NhdmUgKHN0cnVjdCBjbF90YXJnZXRfb3B0aW9uICopOwogc3RhdGlj IHZvaWQgaXg4Nl9mdW5jdGlvbl9zcGVjaWZpY19yZXN0b3JlIChzdHJ1Y3Qg Y2xfdGFyZ2V0X29wdGlvbiAqKTsKQEAgLTI2MzMsMTMgKzI2MzMsMTQgQEAg aXg4Nl91c2luZ19yZWRfem9uZSAodm9pZCkKICAgIHJlc3BvbnNpYmxlIGZv ciBmcmVlaW5nIHRoZSBzdHJpbmcuICAqLwogCiBzdGF0aWMgY2hhciAqCi1p eDg2X3RhcmdldF9zdHJpbmcgKGludCBpc2EsIGludCBmbGFncywgY29uc3Qg Y2hhciAqYXJjaCwgY29uc3QgY2hhciAqdHVuZSwKLQkJICAgIGVudW0gZnBt YXRoX3VuaXQgZnBtYXRoLCBib29sIGFkZF9ubF9wKQoraXg4Nl90YXJnZXRf c3RyaW5nIChIT1NUX1dJREVfSU5UIGlzYSwgaW50IGZsYWdzLCBjb25zdCBj aGFyICphcmNoLAorCQkgICAgY29uc3QgY2hhciAqdHVuZSwgZW51bSBmcG1h dGhfdW5pdCBmcG1hdGgsCisJCSAgICBib29sIGFkZF9ubF9wKQogewogICBz dHJ1Y3QgaXg4Nl90YXJnZXRfb3B0cwogICB7CiAgICAgY29uc3QgY2hhciAq b3B0aW9uOwkJLyogb3B0aW9uIHN0cmluZyAqLwotICAgIGludCBtYXNrOwkJ CS8qIGlzYSBtYXNrIG9wdGlvbnMgKi8KKyAgICBIT1NUX1dJREVfSU5UIG1h c2s7CQkvKiBpc2EgbWFzayBvcHRpb25zICovCiAgIH07CiAKICAgLyogVGhp cyB0YWJsZSBpcyBvcmRlcmVkIHNvIHRoYXQgb3B0aW9ucyBsaWtlIC1tc3Nl NC4yIHRoYXQgaW1wbHkKQEAgLTI3NDcsNyArMjc0OCw4IEBAIGl4ODZfdGFy Z2V0X3N0cmluZyAoaW50IGlzYSwgaW50IGZsYWdzLCBjb25zdCBjaGFyICph cmNoLCBjb25zdCBjaGFyICp0dW5lLAogICBpZiAoaXNhICYmIGFkZF9ubF9w KQogICAgIHsKICAgICAgIG9wdHNbbnVtKytdWzBdID0gaXNhX290aGVyOwot ICAgICAgc3ByaW50ZiAoaXNhX290aGVyLCAiKG90aGVyIGlzYTogJSN4KSIs IGlzYSk7CisgICAgICBzcHJpbnRmIChpc2Ffb3RoZXIsICIob3RoZXIgaXNh OiAlIyIgSE9TVF9XSURFX0lOVF9QUklOVCAieCkiLAorCSAgICAgICBpc2Ep OwogICAgIH0KIAogICAvKiBBZGQgZmxhZyBvcHRpb25zLiAgKi8KQEAgLTI4 ODgsNDcgKzI4OTAsNDQgQEAgaXg4Nl9vcHRpb25fb3ZlcnJpZGVfaW50ZXJu YWwgKGJvb2wgbWFpbl9hcmdzX3ApCiAgIGNvbnN0IGNoYXIgKnN1ZmZpeDsK ICAgY29uc3QgY2hhciAqc3c7CiAKLSAgZW51bSBwdGFfZmxhZ3MKLSAgICB7 Ci0gICAgICBQVEFfU1NFID0gMSA8PCAwLAotICAgICAgUFRBX1NTRTIgPSAx IDw8IDEsCi0gICAgICBQVEFfU1NFMyA9IDEgPDwgMiwKLSAgICAgIFBUQV9N TVggPSAxIDw8IDMsCi0gICAgICBQVEFfUFJFRkVUQ0hfU1NFID0gMSA8PCA0 LAotICAgICAgUFRBXzNETk9XID0gMSA8PCA1LAotICAgICAgUFRBXzNETk9X X0EgPSAxIDw8IDYsCi0gICAgICBQVEFfNjRCSVQgPSAxIDw8IDcsCi0gICAg ICBQVEFfU1NTRTMgPSAxIDw8IDgsCi0gICAgICBQVEFfQ1gxNiA9IDEgPDwg OSwKLSAgICAgIFBUQV9QT1BDTlQgPSAxIDw8IDEwLAotICAgICAgUFRBX0FC TSA9IDEgPDwgMTEsCi0gICAgICBQVEFfU1NFNEEgPSAxIDw8IDEyLAotICAg ICAgUFRBX05PX1NBSEYgPSAxIDw8IDEzLAotICAgICAgUFRBX1NTRTRfMSA9 IDEgPDwgMTQsCi0gICAgICBQVEFfU1NFNF8yID0gMSA8PCAxNSwKLSAgICAg IFBUQV9BRVMgPSAxIDw8IDE2LAotICAgICAgUFRBX1BDTE1VTCA9IDEgPDwg MTcsCi0gICAgICBQVEFfQVZYID0gMSA8PCAxOCwKLSAgICAgIFBUQV9GTUEg PSAxIDw8IDE5LAotICAgICAgUFRBX01PVkJFID0gMSA8PCAyMCwKLSAgICAg IFBUQV9GTUE0ID0gMSA8PCAyMSwKLSAgICAgIFBUQV9YT1AgPSAxIDw8IDIy LAotICAgICAgUFRBX0xXUCA9IDEgPDwgMjMsCi0gICAgICBQVEFfRlNHU0JB U0UgPSAxIDw8IDI0LAotICAgICAgUFRBX1JEUk5EID0gMSA8PCAyNSwKLSAg ICAgIFBUQV9GMTZDID0gMSA8PCAyNiwKLSAgICAgIFBUQV9CTUkgPSAxIDw8 IDI3LAotICAgICAgUFRBX1RCTSA9IDEgPDwgMjgsCi0gICAgICBQVEFfTFpD TlQgPSAxIDw8IDI5Ci0gICAgICAvKiBpZiB0aGlzIHJlYWNoZXMgMzIsIG5l ZWQgdG8gd2lkZW4gc3RydWN0IHB0YSBmbGFncyBiZWxvdyAqLwotICAgIH07 CisjZGVmaW5lIFBUQV8zRE5PVwkgCShIT1NUX1dJREVfSU5UXzEgPDwgMCkK KyNkZWZpbmUgUFRBXzNETk9XX0EJIAkoSE9TVF9XSURFX0lOVF8xIDw8IDEp CisjZGVmaW5lIFBUQV82NEJJVAkJKEhPU1RfV0lERV9JTlRfMSA8PCAyKQor I2RlZmluZSBQVEFfQUJNCQkJKEhPU1RfV0lERV9JTlRfMSA8PCAzKQorI2Rl ZmluZSBQVEFfQUVTCQkgCShIT1NUX1dJREVfSU5UXzEgPDwgNCkKKyNkZWZp bmUgUFRBX0FWWAkJCShIT1NUX1dJREVfSU5UXzEgPDwgNSkKKyNkZWZpbmUg UFRBX0JNSQkJIAkoSE9TVF9XSURFX0lOVF8xIDw8IDYpCisjZGVmaW5lIFBU QV9DWDE2CQkoSE9TVF9XSURFX0lOVF8xIDw8IDcpCisjZGVmaW5lIFBUQV9G MTZDCQkoSE9TVF9XSURFX0lOVF8xIDw8IDgpCisjZGVmaW5lIFBUQV9GTUEJ CQkoSE9TVF9XSURFX0lOVF8xIDw8IDkpCisjZGVmaW5lIFBUQV9GTUE0CSAJ KEhPU1RfV0lERV9JTlRfMSA8PCAxMCkKKyNkZWZpbmUgUFRBX0ZTR1NCQVNF CQkoSE9TVF9XSURFX0lOVF8xIDw8IDExKQorI2RlZmluZSBQVEFfTFdQCQkg CShIT1NUX1dJREVfSU5UXzEgPDwgMTIpCisjZGVmaW5lIFBUQV9MWkNOVAkg CShIT1NUX1dJREVfSU5UXzEgPDwgMTMpCisjZGVmaW5lIFBUQV9NTVgJCQko SE9TVF9XSURFX0lOVF8xIDw8IDE0KQorI2RlZmluZSBQVEFfTU9WQkUJCShI T1NUX1dJREVfSU5UXzEgPDwgMTUpCisjZGVmaW5lIFBUQV9OT19TQUhGCQko SE9TVF9XSURFX0lOVF8xIDw8IDE2KQorI2RlZmluZSBQVEFfUENMTVVMCQko SE9TVF9XSURFX0lOVF8xIDw8IDE3KQorI2RlZmluZSBQVEFfUE9QQ05UCQko SE9TVF9XSURFX0lOVF8xIDw8IDE4KQorI2RlZmluZSBQVEFfUFJFRkVUQ0hf U1NFCShIT1NUX1dJREVfSU5UXzEgPDwgMTkpCisjZGVmaW5lIFBUQV9SRFJO RAkgCShIT1NUX1dJREVfSU5UXzEgPDwgMjApCisjZGVmaW5lIFBUQV9TU0UJ CQkoSE9TVF9XSURFX0lOVF8xIDw8IDIxKQorI2RlZmluZSBQVEFfU1NFMgkJ KEhPU1RfV0lERV9JTlRfMSA8PCAyMikKKyNkZWZpbmUgUFRBX1NTRTMJCShI T1NUX1dJREVfSU5UXzEgPDwgMjMpCisjZGVmaW5lIFBUQV9TU0U0XzEJIAko SE9TVF9XSURFX0lOVF8xIDw8IDI0KQorI2RlZmluZSBQVEFfU1NFNF8yCSAJ KEhPU1RfV0lERV9JTlRfMSA8PCAyNSkKKyNkZWZpbmUgUFRBX1NTRTRBCQko SE9TVF9XSURFX0lOVF8xIDw8IDI2KQorI2RlZmluZSBQVEFfU1NTRTMJCShI T1NUX1dJREVfSU5UXzEgPDwgMjcpCisjZGVmaW5lIFBUQV9UQk0JCSAJKEhP U1RfV0lERV9JTlRfMSA8PCAyOCkKKyNkZWZpbmUgUFRBX1hPUAkJIAkoSE9T VF9XSURFX0lOVF8xIDw8IDI5KQorLyogaWYgdGhpcyByZWFjaGVzIDY0LCBu ZWVkIHRvIHdpZGVuIHN0cnVjdCBwdGEgZmxhZ3MgYmVsb3cgKi8KIAogICBz dGF0aWMgc3RydWN0IHB0YQogICAgIHsKICAgICAgIGNvbnN0IGNoYXIgKmNv bnN0IG5hbWU7CQkvKiBwcm9jZXNzb3IgbmFtZSBvciBuaWNrbmFtZS4gICov CiAgICAgICBjb25zdCBlbnVtIHByb2Nlc3Nvcl90eXBlIHByb2Nlc3NvcjsK ICAgICAgIGNvbnN0IGVudW0gYXR0cl9jcHUgc2NoZWR1bGU7Ci0gICAgICBj b25zdCB1bnNpZ25lZCAvKmVudW0gcHRhX2ZsYWdzKi8gZmxhZ3M7CisgICAg ICBjb25zdCB1bnNpZ25lZCBIT1NUX1dJREVfSU5UIGZsYWdzOwogICAgIH0K ICAgY29uc3QgcHJvY2Vzc29yX2FsaWFzX3RhYmxlW10gPQogICAgIHsKQEAg LTI0MDk5LDcgKzI0MDk4LDcgQEAgc3RhdGljIEdUWSgoKSkgdHJlZSBpeDg2 X2J1aWx0aW5zWyhpbnQpIElYODZfQlVJTFRJTl9NQVhdOwogc3RydWN0IGJ1 aWx0aW5faXNhIHsKICAgY29uc3QgY2hhciAqbmFtZTsJCS8qIGZ1bmN0aW9u IG5hbWUgKi8KICAgZW51bSBpeDg2X2J1aWx0aW5fZnVuY190eXBlIHRjb2Rl OyAvKiB0eXBlIHRvIHVzZSBpbiB0aGUgZGVjbGFyYXRpb24gKi8KLSAgaW50 IGlzYTsJCQkvKiBpc2FfZmxhZ3MgdGhpcyBidWlsdGluIGlzIGRlZmluZWQg Zm9yICovCisgIEhPU1RfV0lERV9JTlQgaXNhOwkJLyogaXNhX2ZsYWdzIHRo aXMgYnVpbHRpbiBpcyBkZWZpbmVkIGZvciAqLwogICBib29sIGNvbnN0X3A7 CQkJLyogdHJ1ZSBpZiB0aGUgZGVjbGFyYXRpb24gaXMgY29uc3RhbnQgKi8K ICAgYm9vbCBzZXRfYW5kX25vdF9idWlsdF9wOwogfTsKQEAgLTI0MTI0LDcg KzI0MTIzLDggQEAgc3RhdGljIHN0cnVjdCBidWlsdGluX2lzYSBpeDg2X2J1 aWx0aW5zX2lzYVsoaW50KSBJWDg2X0JVSUxUSU5fTUFYXTsKICAgIGVycm9y cyBpZiBhIGJ1aWx0aW4gaXMgYWRkZWQgaW4gdGhlIG1pZGRsZSBvZiBhIGZ1 bmN0aW9uIHNjb3BlLiAgKi8KIAogc3RhdGljIGlubGluZSB0cmVlCi1kZWZf YnVpbHRpbiAoaW50IG1hc2ssIGNvbnN0IGNoYXIgKm5hbWUsIGVudW0gaXg4 Nl9idWlsdGluX2Z1bmNfdHlwZSB0Y29kZSwKK2RlZl9idWlsdGluIChIT1NU X1dJREVfSU5UIG1hc2ssIGNvbnN0IGNoYXIgKm5hbWUsCisJICAgICBlbnVt IGl4ODZfYnVpbHRpbl9mdW5jX3R5cGUgdGNvZGUsCiAJICAgICBlbnVtIGl4 ODZfYnVpbHRpbnMgY29kZSkKIHsKICAgdHJlZSBkZWNsID0gTlVMTF9UUkVF OwpAQCAtMjQxNjIsNyArMjQxNjIsNyBAQCBkZWZfYnVpbHRpbiAoaW50IG1h c2ssIGNvbnN0IGNoYXIgKm5hbWUsIGVudW0gaXg4Nl9idWlsdGluX2Z1bmNf dHlwZSB0Y29kZSwKIC8qIExpa2UgZGVmX2J1aWx0aW4sIGJ1dCBhbHNvIG1h cmtzIHRoZSBmdW5jdGlvbiBkZWNsICJjb25zdCIuICAqLwogCiBzdGF0aWMg aW5saW5lIHRyZWUKLWRlZl9idWlsdGluX2NvbnN0IChpbnQgbWFzaywgY29u c3QgY2hhciAqbmFtZSwKK2RlZl9idWlsdGluX2NvbnN0IChIT1NUX1dJREVf SU5UIG1hc2ssIGNvbnN0IGNoYXIgKm5hbWUsCiAJCSAgIGVudW0gaXg4Nl9i dWlsdGluX2Z1bmNfdHlwZSB0Y29kZSwgZW51bSBpeDg2X2J1aWx0aW5zIGNv ZGUpCiB7CiAgIHRyZWUgZGVjbCA9IGRlZl9idWlsdGluIChtYXNrLCBuYW1l LCB0Y29kZSwgY29kZSk7CkBAIC0yNDE3OSw3ICsyNDE3OSw3IEBAIGRlZl9i dWlsdGluX2NvbnN0IChpbnQgbWFzaywgY29uc3QgY2hhciAqbmFtZSwKICAg IGRlY2xhcmF0aW9ucyB0byB0aGUgdHJlZSwgZXZlbiBpZiB3ZSBkaWRuJ3Qg dXNlIHRoZW0uICAqLwogCiBzdGF0aWMgdm9pZAotaXg4Nl9hZGRfbmV3X2J1 aWx0aW5zIChpbnQgaXNhKQoraXg4Nl9hZGRfbmV3X2J1aWx0aW5zIChIT1NU X1dJREVfSU5UIGlzYSkKIHsKICAgaW50IGk7CiAKQEAgLTI0MjEzLDcgKzI0 MjEzLDcgQEAgaXg4Nl9hZGRfbmV3X2J1aWx0aW5zIChpbnQgaXNhKQogCiBz dHJ1Y3QgYnVpbHRpbl9kZXNjcmlwdGlvbgogewotICBjb25zdCB1bnNpZ25l ZCBpbnQgbWFzazsKKyAgY29uc3QgSE9TVF9XSURFX0lOVCBtYXNrOwogICBj b25zdCBlbnVtIGluc25fY29kZSBpY29kZTsKICAgY29uc3QgY2hhciAqY29u c3QgbmFtZTsKICAgY29uc3QgZW51bSBpeDg2X2J1aWx0aW5zIGNvZGU7CmRp ZmYgLS1naXQgYS9nY2MvY29uZmlnL2kzODYvaTM4Ni5vcHQgYi9nY2MvY29u ZmlnL2kzODYvaTM4Ni5vcHQKaW5kZXggZjE5N2RkOC4uNjU0ZjRlYiAxMDA2 NDQKLS0tIGEvZ2NjL2NvbmZpZy9pMzg2L2kzODYub3B0CisrKyBiL2djYy9j b25maWcvaTM4Ni9pMzg2Lm9wdApAQCAtMjQsMTIgKzI0LDEyIEBAIGNvbmZp Zy9pMzg2L2kzODYtb3B0cy5oCiAKIDsgQml0IGZsYWdzIHRoYXQgc3BlY2lm eSB0aGUgSVNBIHdlIGFyZSBjb21waWxpbmcgZm9yLgogVmFyaWFibGUKLWlu dCBpeDg2X2lzYV9mbGFncyA9IFRBUkdFVF82NEJJVF9ERUZBVUxUIHwgVEFS R0VUX1NVQlRBUkdFVF9JU0FfREVGQVVMVAorSE9TVF9XSURFX0lOVCBpeDg2 X2lzYV9mbGFncyA9IFRBUkdFVF82NEJJVF9ERUZBVUxUIHwgVEFSR0VUX1NV QlRBUkdFVF9JU0FfREVGQVVMVAogCiA7IEEgbWFzayBvZiBpeDg2X2lzYV9m bGFncyB0aGF0IGluY2x1ZGVzIGJpdCBYIGlmIFggd2FzIHNldCBvciBjbGVh cmVkCiA7IG9uIHRoZSBjb21tYW5kIGxpbmUuCiBWYXJpYWJsZQotaW50IGl4 ODZfaXNhX2ZsYWdzX2V4cGxpY2l0CitIT1NUX1dJREVfSU5UIGl4ODZfaXNh X2ZsYWdzX2V4cGxpY2l0CiAKIDs7IERlZmluaXRpb25zIHRvIGFkZCB0byB0 aGUgY2xfdGFyZ2V0X29wdGlvbiBzdHJ1Y3R1cmUKIDs7IC1tYXJjaD0gcHJv Y2Vzc29yCkBAIC01MCw3ICs1MCw3IEBAIHVuc2lnbmVkIGNoYXIgYnJhbmNo X2Nvc3QKIAogOzsgd2hpY2ggZmxhZ3Mgd2VyZSBwYXNzZWQgYnkgdGhlIHVz ZXIKIFRhcmdldFNhdmUKLWludCB4X2l4ODZfaXNhX2ZsYWdzX2V4cGxpY2l0 CitIT1NUX1dJREVfSU5UIHhfaXg4Nl9pc2FfZmxhZ3NfZXhwbGljaXQKIAog Ozsgd2hpY2ggZmxhZ3Mgd2VyZSBwYXNzZWQgYnkgdGhlIHVzZXIKIFRhcmdl dFNhdmUKZGlmZiAtLWdpdCBhL2djYy9od2ludC5oIGIvZ2NjL2h3aW50LmgK aW5kZXggZmE3N2IxMS4uNjEzNTEzNiAxMDA2NDQKLS0tIGEvZ2NjL2h3aW50 LmgKKysrIGIvZ2NjL2h3aW50LmgKQEAgLTc5LDYgKzc5LDcgQEAgZXh0ZXJu IGNoYXIgc2l6ZW9mX2xvbmdfbG9uZ19tdXN0X2JlXzhbc2l6ZW9mKGxvbmcg bG9uZykgPT0gOCA/IDEgOiAtMV07CiAjaWYgSE9TVF9CSVRTX1BFUl9XSURF X0lOVCA9PSBIT1NUX0JJVFNfUEVSX0xPTkcKICMgZGVmaW5lIEhPU1RfV0lE RV9JTlRfUFJJTlQgSE9TVF9MT05HX0ZPUk1BVAogIyBkZWZpbmUgSE9TVF9X SURFX0lOVF9QUklOVF9DICJMIgorIyBkZWZpbmUgSE9TVF9XSURFX0lOVF8x IDFMCiAgIC8qICdsb25nJyBtaWdodCBiZSAzMiBvciA2NCBiaXRzLCBhbmQg dGhlIG51bWJlciBvZiBsZWFkaW5nIHplcm9lcwogICAgICBtdXN0IGJlIHR3 ZWFrZWQgYWNjb3JkaW5nbHkuICAqLwogIyBpZiBIT1NUX0JJVFNfUEVSX1dJ REVfSU5UID09IDY0CkBAIC05MSw2ICs5Miw3IEBAIGV4dGVybiBjaGFyIHNp emVvZl9sb25nX2xvbmdfbXVzdF9iZV84W3NpemVvZihsb25nIGxvbmcpID09 IDggPyAxIDogLTFdOwogI2Vsc2UKICMgZGVmaW5lIEhPU1RfV0lERV9JTlRf UFJJTlQgSE9TVF9MT05HX0xPTkdfRk9STUFUCiAjIGRlZmluZSBIT1NUX1dJ REVfSU5UX1BSSU5UX0MgIkxMIgorIyBkZWZpbmUgSE9TVF9XSURFX0lOVF8x IDFMTAogICAvKiBXZSBjYW4gYXNzdW1lIHRoYXQgJ2xvbmcgbG9uZycgaXMg YXQgbGVhc3QgNjQgYml0cy4gICovCiAjIGRlZmluZSBIT1NUX1dJREVfSU5U X1BSSU5UX0RPVUJMRV9IRVggXAogICAgICIweCUiIEhPU1RfTE9OR19MT05H X0ZPUk1BVCAieCUwMTYiIEhPU1RfTE9OR19MT05HX0ZPUk1BVCAieCIKZGlm ZiAtLWdpdCBhL2djYy9vcHQtZnVuY3Rpb25zLmF3ayBiL2djYy9vcHQtZnVu Y3Rpb25zLmF3awppbmRleCA5NDVlZWIxLi4xZjU4MmZiIDEwMDY0NAotLS0g YS9nY2Mvb3B0LWZ1bmN0aW9ucy5hd2sKKysrIGIvZ2NjL29wdC1mdW5jdGlv bnMuYXdrCkBAIC0xMTAsNiArMTEwLDExIEBAIGZ1bmN0aW9uIHN3aXRjaF9m bGFncyAoZmxhZ3MpCiAjIFJldHVybiBiaXQtZmllbGQgaW5pdGlhbGl6ZXJz IGZvciBvcHRpb24gZmxhZ3MgRkxBR1MuCiBmdW5jdGlvbiBzd2l0Y2hfYml0 X2ZpZWxkcyAoZmxhZ3MpCiB7CisJdm4gPSB2YXJfbmFtZShmbGFncyk7CisJ aWYgKGhvc3Rfd2lkZV9pbnRbdm5dID09ICJ5ZXMiKQorCQlod2kgPSAiSG9z dF9XaWRlX0ludCIKKwllbHNlCisJCWh3aSA9ICIiCiAJcmVzdWx0ID0gIiIK IAlzZXBfYXJncyA9IG9wdF9hcmdzKCJBcmdzIiwgZmxhZ3MpCiAJaWYgKHNl cF9hcmdzID09ICIiKQpAQCAtMTI2LDYgKzEzMSw3IEBAIGZ1bmN0aW9uIHN3 aXRjaF9iaXRfZmllbGRzIChmbGFncykKIAkgIGZsYWdfaW5pdCgiUmVqZWN0 TmVnYXRpdmUiLCBmbGFncykgXAogCSAgZmxhZ19pbml0KCJKb2luZWRPck1p c3NpbmciLCBmbGFncykgXAogCSAgZmxhZ19pbml0KCJVSW50ZWdlciIsIGZs YWdzKSBcCisJICBmbGFnX2luaXQoIkhvc3RfV2lkZV9JbnQiLCBod2kpIFwK IAkgIGZsYWdfaW5pdCgiVG9Mb3dlciIsIGZsYWdzKSBcCiAJICBmbGFnX2lu aXQoIlJlcG9ydCIsIGZsYWdzKQogCkBAIC0xNDAsNiArMTQ2LDE3IEBAIGZ1 bmN0aW9uIHZhcl9uYW1lKGZsYWdzKQogCXJldHVybiBudGhfYXJnKDAsIG9w dF9hcmdzKCJWYXIiLCBmbGFncykpCiB9CiAKKyMgUmV0dXJuIHRoZSBuYW1l IG9mIHRoZSB2YXJpYWJsZSBpZiBGTEFHUyBoYXMgYSBIT1NUX1dJREVfSU5U IHZhcmlhYmxlLiAKKyMgUmV0dXJuIHRoZSBlbXB0eSBzdHJpbmcgb3RoZXJ3 aXNlLgorZnVuY3Rpb24gaG9zdF93aWRlX2ludF92YXJfbmFtZShmbGFncykK K3sKKwlzcGxpdCAoZmxhZ3MsIGFycmF5LCAiWyBcdF0rIikKKwlpZiAoYXJy YXlbMV0gPT0gIkhPU1RfV0lERV9JTlQiKQorCQlyZXR1cm4gYXJyYXlbMl0K KwllbHNlCisJCXJldHVybiAiIgorfQorCiAjIFJldHVybiB0cnVlIGlmIHRo ZSBvcHRpb24gZGVzY3JpYmVkIGJ5IEZMQUdTIGhhcyBhIGdsb2JhbGx5LXZp c2libGUgc3RhdGUuCiBmdW5jdGlvbiBnbG9iYWxfc3RhdGVfcChmbGFncykK IHsKQEAgLTE5Nyw4ICsyMTQsMTIgQEAgZnVuY3Rpb24gdmFyX3R5cGVfc3Ry dWN0KGZsYWdzKQogCQlyZXR1cm4gZW51bV90eXBlW2VuXSAiICIKIAl9CiAJ ZWxzZSBpZiAoIWZsYWdfc2V0X3AoIkpvaW5lZC4qIiwgZmxhZ3MpICYmICFm bGFnX3NldF9wKCJTZXBhcmF0ZSIsIGZsYWdzKSkgewotCQlpZiAoZmxhZ19z ZXRfcCgiLipNYXNrLioiLCBmbGFncykpCi0JCQlyZXR1cm4gImludCAiCisJ CWlmIChmbGFnX3NldF9wKCIuKk1hc2suKiIsIGZsYWdzKSkgeworCQkJaWYg KGhvc3Rfd2lkZV9pbnRbdmFyX25hbWUoZmxhZ3MpXSA9PSAieWVzIikKKwkJ CQlyZXR1cm4gIkhPU1RfV0lERV9JTlQgIgorCQkJZWxzZQorCQkJCXJldHVy biAiaW50ICIKKwkJfQogCQllbHNlCiAJCQlyZXR1cm4gInNpZ25lZCBjaGFy ICIKIAl9CmRpZmYgLS1naXQgYS9nY2Mvb3B0LXJlYWQuYXdrIGIvZ2NjL29w dC1yZWFkLmF3awppbmRleCBjNDg4ZWQ1Li42YTRkNGRlIDEwMDY0NAotLS0g YS9nY2Mvb3B0LXJlYWQuYXdrCisrKyBiL2djYy9vcHQtcmVhZC5hd2sKQEAg LTUxLDYgKzUxLDkgQEAgQkVHSU4gewogCQllbHNlIGlmICgkMSA9PSAiVmFy aWFibGUiKSB7CiAJCQlleHRyYV92YXJzW25fZXh0cmFfdmFyc10gPSAkMgog CQkJbl9leHRyYV92YXJzKysKKwkJCW5hbWUgPSBob3N0X3dpZGVfaW50X3Zh cl9uYW1lKCQyKQorCQkJaWYgKG5hbWUgIT0gIiIpCisJCQkJaG9zdF93aWRl X2ludFtuYW1lXSA9ICJ5ZXMiCiAJCX0KIAkJZWxzZSBpZiAoJDEgPT0gIlRh cmdldFZhcmlhYmxlIikgewogCQkJIyBDb21iaW5hdGlvbiBvZiBUYXJnZXRT YXZlIGFuZCBWYXJpYWJsZQpkaWZmIC0tZ2l0IGEvZ2NjL29wdGMtc2F2ZS1n ZW4uYXdrIGIvZ2NjL29wdGMtc2F2ZS1nZW4uYXdrCmluZGV4IDRlZmMxMTUu LjY1NGQ4NjkgMTAwNjQ0Ci0tLSBhL2djYy9vcHRjLXNhdmUtZ2VuLmF3awor KysgYi9nY2Mvb3B0Yy1zYXZlLWdlbi5hd2sKQEAgLTM2MywxMCArMzYzLDE2 IEBAIHByaW50ICJ7IjsKIHByaW50ICIgIGZwdXRzIChcIlxcblwiLCBmaWxl KTsiOwogZm9yIChpID0gMDsgaSA8IG5fdGFyZ2V0X290aGVyOyBpKyspIHsK IAlwcmludCAiICBpZiAocHRyLT54XyIgdmFyX3RhcmdldF9vdGhlcltpXSAi KSI7Ci0JcHJpbnQgIiAgICBmcHJpbnRmIChmaWxlLCBcIiUqcyVzICglI2x4 KVxcblwiLCI7CisJaWYgKGhvc3Rfd2lkZV9pbnRbdmFyX3RhcmdldF9vdGhl cltpXV0gPT0gInllcyIpCisJCXByaW50ICIgICAgZnByaW50ZiAoZmlsZSwg XCIlKnMlcyAoJSNcIiBIT1NUX1dJREVfSU5UX1BSSU5UIFwieClcXG5cIiwi OworCWVsc2UKKwkJcHJpbnQgIiAgICBmcHJpbnRmIChmaWxlLCBcIiUqcyVz ICglI3gpXFxuXCIsIjsKIAlwcmludCAiICAgICAgICAgICAgIGluZGVudCwg XCJcIiwiOwogCXByaW50ICIgICAgICAgICAgICAgXCIiIHZhcl90YXJnZXRf b3RoZXJbaV0gIlwiLCI7Ci0JcHJpbnQgIiAgICAgICAgICAgICAodW5zaWdu ZWQgbG9uZylwdHItPnhfIiB2YXJfdGFyZ2V0X290aGVyW2ldICIpOyI7CisJ aWYgKGhvc3Rfd2lkZV9pbnRbdmFyX3RhcmdldF9vdGhlcltpXV0gPT0gInll cyIpCisJCXByaW50ICIgICAgICAgICAgICAgcHRyLT54XyIgdmFyX3Rhcmdl dF9vdGhlcltpXSAiKTsiOworCWVsc2UKKwkJcHJpbnQgIiAgICAgICAgICAg ICAodW5zaWduZWQgbG9uZylwdHItPnhfIiB2YXJfdGFyZ2V0X290aGVyW2ld ICIpOyI7CiAJcHJpbnQgIiI7CiB9CiAKZGlmZiAtLWdpdCBhL2djYy9vcHRo LWdlbi5hd2sgYi9nY2Mvb3B0aC1nZW4uYXdrCmluZGV4IDg3NmUwZjYuLjJi YWU2OTUgMTAwNjQ0Ci0tLSBhL2djYy9vcHRoLWdlbi5hd2sKKysrIGIvZ2Nj L29wdGgtZ2VuLmF3awpAQCAtMzAwLDE4ICszMDAsMjYgQEAgZm9yIChpID0g MDsgaSA8IG5fb3B0czsgaSsrKSB7CiAJbmFtZSA9IG9wdF9hcmdzKCJNYXNr IiwgZmxhZ3NbaV0pCiAJdm5hbWUgPSB2YXJfbmFtZShmbGFnc1tpXSkKIAlt YXNrID0gIk1BU0tfIgorCW1hc2tfMSA9ICIxIgogCWlmICh2bmFtZSAhPSAi IikgewogCQltYXNrID0gIk9QVElPTl9NQVNLXyIKKwkJaWYgKGhvc3Rfd2lk ZV9pbnRbdm5hbWVdID09ICJ5ZXMiKQorCQkJbWFza18xID0gIkhPU1RfV0lE RV9JTlRfMSIKIAl9CiAJaWYgKG5hbWUgIT0gIiIgJiYgIWZsYWdfc2V0X3Ao Ik1hc2tFeGlzdHMiLCBmbGFnc1tpXSkpCi0JCXByaW50ICIjZGVmaW5lICIg bWFzayBuYW1lICIgKDEgPDwgIiBtYXNrbnVtW3ZuYW1lXSsrICIpIgorCQlw cmludCAiI2RlZmluZSAiIG1hc2sgbmFtZSAiICgiIG1hc2tfMSAiIDw8ICIg bWFza251bVt2bmFtZV0rKyAiKSIKIH0KIGZvciAoaSA9IDA7IGkgPCBuX2V4 dHJhX21hc2tzOyBpKyspIHsKIAlwcmludCAiI2RlZmluZSBNQVNLXyIgZXh0 cmFfbWFza3NbaV0gIiAoMSA8PCAiIG1hc2tudW1bIiJdKysgIikiCiB9CiAK IGZvciAodmFyIGluIG1hc2tudW0pIHsKLQlpZiAobWFza251bVt2YXJdID4g MzEpIHsKKwlpZiAodmFyICE9ICIiICYmIGhvc3Rfd2lkZV9pbnRbdmFyXSA9 PSAieWVzIikgeworCQlwcmludCIgI2lmIGRlZmluZWQoSE9TVF9CSVRTX1BF Ul9XSURFX0lOVCkgJiYgIiBtYXNrbnVtW3Zhcl0gIiA+PSBIT1NUX0JJVFNf UEVSX1dJREVfSU5UIgorCQlwcmludCAiI2Vycm9yIHRvbyBtYW55IG1hc2tz IGZvciAiIHZhcgorCQlwcmludCAiI2VuZGlmIgorCX0KKwllbHNlIGlmICht YXNrbnVtW3Zhcl0gPiAzMSkgewogCQlpZiAodmFyID09ICIiKQogCQkJcHJp bnQgIiNlcnJvciB0b28gbWFueSB0YXJnZXQgbWFza3MiCiAJCWVsc2UKZGlm ZiAtLWdpdCBhL2djYy9vcHRzLWNvbW1vbi5jIGIvZ2NjL29wdHMtY29tbW9u LmMKaW5kZXggOTczZGQ3ZS4uMGI4Njc2NCAxMDA2NDQKLS0tIGEvZ2NjL29w dHMtY29tbW9uLmMKKysrIGIvZ2NjL29wdHMtY29tbW9uLmMKQEAgLTEwODgs OSArMTA4OCwxNCBAQCBzZXRfb3B0aW9uIChzdHJ1Y3QgZ2NjX29wdGlvbnMg Km9wdHMsIHN0cnVjdCBnY2Nfb3B0aW9ucyAqb3B0c19zZXQsCiAJYnJlYWs7 CiAKICAgICBjYXNlIENMVkNfRVFVQUw6Ci0JKihpbnQgKikgZmxhZ192YXIg PSAodmFsdWUKLQkJCSAgICAgPyBvcHRpb24tPnZhcl92YWx1ZQotCQkJICAg ICA6ICFvcHRpb24tPnZhcl92YWx1ZSk7CisJaWYgKG9wdGlvbi0+Y2xfaG9z dF93aWRlX2ludCkgCisJICAqKEhPU1RfV0lERV9JTlQgKikgZmxhZ192YXIg PSAodmFsdWUKKwkJCQkJID8gb3B0aW9uLT52YXJfdmFsdWUKKwkJCQkJIDog IW9wdGlvbi0+dmFyX3ZhbHVlKTsKKwllbHNlCisJICAqKGludCAqKSBmbGFn X3ZhciA9ICh2YWx1ZQorCQkJICAgICAgID8gb3B0aW9uLT52YXJfdmFsdWUK KwkJCSAgICAgICA6ICFvcHRpb24tPnZhcl92YWx1ZSk7CiAJaWYgKHNldF9m bGFnX3ZhcikKIAkgICooaW50ICopIHNldF9mbGFnX3ZhciA9IDE7CiAJYnJl YWs7CkBAIC0xMDk4LDExICsxMTAzLDI2IEBAIHNldF9vcHRpb24gKHN0cnVj dCBnY2Nfb3B0aW9ucyAqb3B0cywgc3RydWN0IGdjY19vcHRpb25zICpvcHRz X3NldCwKICAgICBjYXNlIENMVkNfQklUX0NMRUFSOgogICAgIGNhc2UgQ0xW Q19CSVRfU0VUOgogCWlmICgodmFsdWUgIT0gMCkgPT0gKG9wdGlvbi0+dmFy X3R5cGUgPT0gQ0xWQ19CSVRfU0VUKSkKLQkgICooaW50ICopIGZsYWdfdmFy IHw9IG9wdGlvbi0+dmFyX3ZhbHVlOworCSAgeworCSAgICBpZiAob3B0aW9u LT5jbF9ob3N0X3dpZGVfaW50KSAKKwkgICAgICAqKEhPU1RfV0lERV9JTlQg KikgZmxhZ192YXIgfD0gb3B0aW9uLT52YXJfdmFsdWU7CisJICAgIGVsc2Ug CisJICAgICAgKihpbnQgKikgZmxhZ192YXIgfD0gb3B0aW9uLT52YXJfdmFs dWU7CisJICB9CiAJZWxzZQotCSAgKihpbnQgKikgZmxhZ192YXIgJj0gfm9w dGlvbi0+dmFyX3ZhbHVlOworCSAgeworCSAgICBpZiAob3B0aW9uLT5jbF9o b3N0X3dpZGVfaW50KSAKKwkgICAgICAqKEhPU1RfV0lERV9JTlQgKikgZmxh Z192YXIgJj0gfm9wdGlvbi0+dmFyX3ZhbHVlOworCSAgICBlbHNlIAorCSAg ICAgICooaW50ICopIGZsYWdfdmFyICY9IH5vcHRpb24tPnZhcl92YWx1ZTsK KwkgIH0KIAlpZiAoc2V0X2ZsYWdfdmFyKQotCSAgKihpbnQgKikgc2V0X2Zs YWdfdmFyIHw9IG9wdGlvbi0+dmFyX3ZhbHVlOworCSAgeworCSAgICBpZiAo b3B0aW9uLT5jbF9ob3N0X3dpZGVfaW50KSAKKwkgICAgICAqKEhPU1RfV0lE RV9JTlQgKikgc2V0X2ZsYWdfdmFyIHw9IG9wdGlvbi0+dmFyX3ZhbHVlOwor CSAgICBlbHNlCisJICAgICAgKihpbnQgKikgc2V0X2ZsYWdfdmFyIHw9IG9w dGlvbi0+dmFyX3ZhbHVlOworCSAgfQogCWJyZWFrOwogCiAgICAgY2FzZSBD TFZDX1NUUklORzoKQEAgLTExNzMsMTMgKzExOTMsMjIgQEAgb3B0aW9uX2Vu YWJsZWQgKGludCBvcHRfaWR4LCB2b2lkICpvcHRzKQogCXJldHVybiAqKGlu dCAqKSBmbGFnX3ZhciAhPSAwOwogCiAgICAgICBjYXNlIENMVkNfRVFVQUw6 Ci0JcmV0dXJuICooaW50ICopIGZsYWdfdmFyID09IG9wdGlvbi0+dmFyX3Zh bHVlOworCWlmIChvcHRpb24tPmNsX2hvc3Rfd2lkZV9pbnQpIAorCSAgcmV0 dXJuICooSE9TVF9XSURFX0lOVCAqKSBmbGFnX3ZhciA9PSBvcHRpb24tPnZh cl92YWx1ZTsKKwllbHNlCisJICByZXR1cm4gKihpbnQgKikgZmxhZ192YXIg PT0gb3B0aW9uLT52YXJfdmFsdWU7CiAKICAgICAgIGNhc2UgQ0xWQ19CSVRf Q0xFQVI6Ci0JcmV0dXJuICgqKGludCAqKSBmbGFnX3ZhciAmIG9wdGlvbi0+ dmFyX3ZhbHVlKSA9PSAwOworCWlmIChvcHRpb24tPmNsX2hvc3Rfd2lkZV9p bnQpIAorCSAgcmV0dXJuICgqKEhPU1RfV0lERV9JTlQgKikgZmxhZ192YXIg JiBvcHRpb24tPnZhcl92YWx1ZSkgPT0gMDsKKwllbHNlCisJICByZXR1cm4g KCooaW50ICopIGZsYWdfdmFyICYgb3B0aW9uLT52YXJfdmFsdWUpID09IDA7 CiAKICAgICAgIGNhc2UgQ0xWQ19CSVRfU0VUOgotCXJldHVybiAoKihpbnQg KikgZmxhZ192YXIgJiBvcHRpb24tPnZhcl92YWx1ZSkgIT0gMDsKKwlpZiAo b3B0aW9uLT5jbF9ob3N0X3dpZGVfaW50KSAKKwkgIHJldHVybiAoKihIT1NU X1dJREVfSU5UICopIGZsYWdfdmFyICYgb3B0aW9uLT52YXJfdmFsdWUpICE9 IDA7CisJZWxzZSAKKwkgIHJldHVybiAoKihpbnQgKikgZmxhZ192YXIgJiBv cHRpb24tPnZhcl92YWx1ZSkgIT0gMDsKIAogICAgICAgY2FzZSBDTFZDX1NU UklORzoKICAgICAgIGNhc2UgQ0xWQ19FTlVNOgpAQCAtMTIwNiw3ICsxMjM1 LDkgQEAgZ2V0X29wdGlvbl9zdGF0ZSAoc3RydWN0IGdjY19vcHRpb25zICpv cHRzLCBpbnQgb3B0aW9uLAogICAgIGNhc2UgQ0xWQ19CT09MRUFOOgogICAg IGNhc2UgQ0xWQ19FUVVBTDoKICAgICAgIHN0YXRlLT5kYXRhID0gZmxhZ192 YXI7Ci0gICAgICBzdGF0ZS0+c2l6ZSA9IHNpemVvZiAoaW50KTsKKyAgICAg IHN0YXRlLT5zaXplID0gKGNsX29wdGlvbnNbb3B0aW9uXS5jbF9ob3N0X3dp ZGVfaW50CisJCSAgICAgPyBzaXplb2YgKEhPU1RfV0lERV9JTlQpCisJCSAg ICAgOiBzaXplb2YgKGludCkpOwogICAgICAgYnJlYWs7CiAKICAgICBjYXNl IENMVkNfQklUX0NMRUFSOgpkaWZmIC0tZ2l0IGEvZ2NjL29wdHMuaCBiL2dj Yy9vcHRzLmgKaW5kZXggYjA3MGM4Zi4uM2MwZmUzZiAxMDA2NDQKLS0tIGEv Z2NjL29wdHMuaAorKysgYi9nY2Mvb3B0cy5oCkBAIC05Niw2ICs5Niw4IEBA IHN0cnVjdCBjbF9vcHRpb24KICAgQk9PTF9CSVRGSUVMRCBjbF9taXNzaW5n X29rIDogMTsKICAgLyogQXJndW1lbnQgaXMgYW4gaW50ZWdlciA+PTAuICAq LwogICBCT09MX0JJVEZJRUxEIGNsX3VpbnRlZ2VyIDogMTsKKyAgLyogQXJn dW1lbnQgaXMgYSBIT1NUX1dJREVfSU5ULiAgKi8KKyAgQk9PTF9CSVRGSUVM RCBjbF9ob3N0X3dpZGVfaW50IDogMTsKICAgLyogQXJndW1lbnQgc2hvdWxk IGJlIGNvbnZlcnRlZCB0byBsb3dlcmNhc2UuICAqLwogICBCT09MX0JJVEZJ RUxEIGNsX3RvbG93ZXIgOiAxOwogICAvKiBSZXBvcnQgYXJndW1lbnQgd2l0 aCAtZnZlcmJvc2UtYXNtICAqLwpAQCAtMTA5LDcgKzExMSw3IEBAIHN0cnVj dCBjbF9vcHRpb24KICAgLyogSG93IHRoaXMgb3B0aW9uJ3MgdmFsdWUgaXMg ZGV0ZXJtaW5lZCBhbmQgc2V0cyBhIGZpZWxkLiAgKi8KICAgZW51bSBjbF92 YXJfdHlwZSB2YXJfdHlwZTsKICAgLyogVmFsdWUgb3IgYml0LW1hc2sgd2l0 aCB3aGljaCB0byBzZXQgYSBmaWVsZC4gICovCi0gIGludCB2YXJfdmFsdWU7 CisgIEhPU1RfV0lERV9JTlQgdmFyX3ZhbHVlOwogfTsKIAogLyogUmVjb3Jk cyB0aGF0IHRoZSBzdGF0ZSBvZiBhbiBvcHRpb24gY29uc2lzdHMgb2YgU0la RSBieXRlcyBzdGFydGluZwo= --20cf300fb4f1ef7d1a04aab984f7--