From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9898 invoked by alias); 30 Aug 2014 12:03:35 -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 9878 invoked by uid 89); 30 Aug 2014 12:03:33 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-wi0-f177.google.com Received: from mail-wi0-f177.google.com (HELO mail-wi0-f177.google.com) (209.85.212.177) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Sat, 30 Aug 2014 12:03:30 +0000 Received: by mail-wi0-f177.google.com with SMTP id cc10so3768174wib.10 for ; Sat, 30 Aug 2014 05:03:27 -0700 (PDT) X-Received: by 10.194.77.84 with SMTP id q20mr20081795wjw.2.1409400207372; Sat, 30 Aug 2014 05:03:27 -0700 (PDT) MIME-Version: 1.0 Received: by 10.217.80.73 with HTTP; Sat, 30 Aug 2014 05:03:06 -0700 (PDT) From: =?ISO-8859-1?Q?Manuel_L=F3pez=2DIb=E1=F1ez?= Date: Sat, 30 Aug 2014 12:03:00 -0000 Message-ID: Subject: Make many more options use CPP() To: Gcc Patch List , "Joseph S. Myers" Content-Type: multipart/mixed; boundary=047d7bfd0214b605120501d78e68 X-IsSubscribed: yes X-SW-Source: 2014-08/txt/msg02694.txt.bz2 --047d7bfd0214b605120501d78e68 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 2930 This converts almost all remaining CPP options to use CPP() in the *.opt files. Following your comment here (https://gcc.gnu.org/ml/gcc-patches/2014-08/msg02499.html) several options now use explicit Init(). The only test I needed to tweak was gcc.dg/cpp/endif-pedantic2.c, which tests that "-Wno-endif-labels -pedantic-errors" gives errors for -Wendif-labels warnings. This might be the original intention (https://gcc.gnu.org/ml/gcc-patches/2002-03/msg01732.html) but it is at odds with how other -Wno-* flags work. The current behavior enforced by the automatic machinery is that more specific options have priority over more general options, independently of the order. Although this is not documented in the manual, it has been the consensus of several recent discussions (and not so recent ones https://gcc.gnu.org/ml/gcc/2007-05/msg00720.html). It would be a burden to special-case -Wno-endif-labels just for keeping backwards compatibility. The affected users are likely very few (if any): those that expect "-Wno-endif-labels -pedantic" to give -Wendif-labels warnings. The effect on those users would be that they won't get the warnings they expect until they remove -Wno-endif-labels or append an explicit -Wendif-labels. The two remaining options are a bit problematic: 1) -Wall enables warn_sign_change, which does not have a -W* flag. I could simply add one but perhaps it would be better under an already existing flag. 2) -Wnormalized requires a bit more of special handling. I will try to use the Enum() facility in the *.opt file if possible. Bootstrapped and regression tested on x86_64-linux-gnu. OK? gcc/ChangeLog: 2014-08-30 Manuel L=F3pez-Ib=E1=F1ez * doc/options.texi: Document that Var and Init are required if CPP is given. * optc-gen.awk: Require Var and Init if CPP is given. * common.opt (Wpedantic): Use Init. libcpp/ChangeLog: 2014-08-30 Manuel L=F3pez-Ib=E1=F1ez * macro.c (replace_args): Use cpp_pedwarning, cpp_warning and CPP_W flags. * include/cpplib.h: Add CPP_W_C90_C99_COMPAT and CPP_W_PEDANTIC. * init.c (cpp_create_reader): Do not init to -1 here. * expr.c (num_binary_op): Use cpp_pedwarning. gcc/c-family/ChangeLog: 2014-08-30 Manuel L=F3pez-Ib=E1=F1ez * c.opt (Wc90-c99-compat,Wc++-compat,Wcomment,Wendif-labels, Winvalid-pch,Wlong-long,Wmissing-include-dirs,Wmultichar,Wpedantic, (Wdate-time,Wtraditional,Wundef,Wvariadic-macros): Add CPP, Var and Init. * c-opts.c (c_common_handle_option): Do not handle here. (sanitize_cpp_opts): Likewise. * c-common.c (struct reason_option_codes_t): Handle CPP_W_C90_C99_COMPAT and CPP_W_PEDANTIC. gcc/testsuite/ChangeLog: 2014-08-30 Manuel L=F3pez-Ib=E1=F1ez * gcc.dg/cpp/endif-pedantic2.c: More general options do not override specific ones, but specific ones do. --047d7bfd0214b605120501d78e68 Content-Type: text/plain; charset=US-ASCII; name="cpp_more_options.diff" Content-Disposition: attachment; filename="cpp_more_options.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hzgwexrg0 Content-length: 26609 SW5kZXg6IGdjYy9kb2Mvb3B0aW9ucy50ZXhpCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tIGdjYy9kb2Mvb3B0aW9ucy50ZXhpCShyZXZpc2lvbiAyMTQ3 MzUpCisrKyBnY2MvZG9jL29wdGlvbnMudGV4aQkod29ya2luZyBjb3B5KQpA QCAtNDgzLDggKzQ4Myw5IEBAIFRoZSBvcHRpb24gaXMgb21pdHRlZCBmcm9t IHRoZSBwcm9kdWNlcgogRXZlbiBpZiB0aGlzIGlzIGEgdGFyZ2V0IG9wdGlv biwgdGhpcyBvcHRpb24gd2lsbCBub3QgYmUgcmVjb3JkZWQgLyBjb21wYXJl ZAogdG8gZGV0ZXJtaW5lIGlmIGEgcHJlY29tcGlsZWQgaGVhZGVyIGZpbGUg bWF0Y2hlcy4KIAogQGl0ZW0gQ1BQKEB2YXJ7dmFyfSkKIFRoZSBzdGF0ZSBv ZiB0aGlzIG9wdGlvbiBzaG91bGQgYmUga2VwdCBpbiBzeW5jIHdpdGggdGhl IHByZXByb2Nlc3Nvcgotb3B0aW9uIEB2YXJ7dmFyfS4KK29wdGlvbiBAdmFy e3Zhcn0uICBJZiB0aGlzIHByb3BlcnR5IGlzIHNldCwgdGhlbiBwcm9wZXJ0 aWVzIEBjb2Rle1Zhcn0KK2FuZCBAY29kZXtJbml0fSBtdXN0IGJlIHNldCBh cyB3ZWxsLgogCiBAZW5kIHRhYmxlCkluZGV4OiBnY2MvYy1mYW1pbHkvYy5v cHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZ2NjL2MtZmFtaWx5L2Mu b3B0CShyZXZpc2lvbiAyMTQ3MzUpCisrKyBnY2MvYy1mYW1pbHkvYy5vcHQJ KHdvcmtpbmcgY29weSkKQEAgLTI5NCwxOSArMjk0LDE5IEBAIFdhcm4gYWJv dXQgYm9vbGVhbiBleHByZXNzaW9uIGNvbXBhcmVkIHcKIFdidWlsdGluLW1h Y3JvLXJlZGVmaW5lZAogQyBPYmpDIEMrKyBPYmpDKysgQ1BQKHdhcm5fYnVp bHRpbl9tYWNyb19yZWRlZmluZWQpIFZhcihjcHBfd2Fybl9idWlsdGluX21h Y3JvX3JlZGVmaW5lZCkgSW5pdCgxKSBXYXJuaW5nCiBXYXJuIHdoZW4gYSBi dWlsdC1pbiBwcmVwcm9jZXNzb3IgbWFjcm8gaXMgdW5kZWZpbmVkIG9yIHJl ZGVmaW5lZAogCiBXYzkwLWM5OS1jb21wYXQKLUMgT2JqQyBWYXIod2Fybl9j OTBfYzk5X2NvbXBhdCkgSW5pdCgtMSkgV2FybmluZworQyBPYmpDIENQUChj cHBfd2Fybl9jOTBfYzk5X2NvbXBhdCkgVmFyKHdhcm5fYzkwX2M5OV9jb21w YXQpIEluaXQoLTEpIFdhcm5pbmcKIFdhcm4gYWJvdXQgZmVhdHVyZXMgbm90 IHByZXNlbnQgaW4gSVNPIEM5MCwgYnV0IHByZXNlbnQgaW4gSVNPIEM5OQog CiBXYzk5LWMxMS1jb21wYXQKIEMgT2JqQyBWYXIod2Fybl9jOTlfYzExX2Nv bXBhdCkgSW5pdCgtMSkgV2FybmluZwogV2FybiBhYm91dCBmZWF0dXJlcyBu b3QgcHJlc2VudCBpbiBJU08gQzk5LCBidXQgcHJlc2VudCBpbiBJU08gQzEx CiAKIFdjKystY29tcGF0Ci1DIE9iakMgVmFyKHdhcm5fY3h4X2NvbXBhdCkg V2FybmluZworQyBPYmpDIFZhcih3YXJuX2N4eF9jb21wYXQpIENQUCh3YXJu X2N4eF9vcGVyYXRvcl9uYW1lcykgSW5pdCgwKSBXYXJuaW5nCiBXYXJuIGFi b3V0IEMgY29uc3RydWN0cyB0aGF0IGFyZSBub3QgaW4gdGhlIGNvbW1vbiBz dWJzZXQgb2YgQyBhbmQgQysrCiAKIFdjKysweC1jb21wYXQKIEMrKyBPYmpD KysgVmFyKHdhcm5fY3h4MHhfY29tcGF0KSBXYXJuaW5nIExhbmdFbmFibGVk QnkoQysrIE9iakMrKyxXYWxsKQogRGVwcmVjYXRlZCBpbiBmYXZvciBvZiAt V2MrKzExLWNvbXBhdApAQCAtMzI2LDExICszMjYsMTEgQEAgV2FybiBhYm91 dCBzdWJzY3JpcHRzIHdob3NlIHR5cGUgaXMgXCJjaAogV2Nsb2JiZXJlZAog QyBPYmpDIEMrKyBPYmpDKysgVmFyKHdhcm5fY2xvYmJlcmVkKSBXYXJuaW5n IEVuYWJsZWRCeShXZXh0cmEpCiBXYXJuIGFib3V0IHZhcmlhYmxlcyB0aGF0 IG1pZ2h0IGJlIGNoYW5nZWQgYnkgXCJsb25nam1wXCIgb3IgXCJ2Zm9ya1wi CiAKIFdjb21tZW50Ci1DIE9iakMgQysrIE9iakMrKyBDUFAod2Fybl9jb21t ZW50cykgVmFyKGNwcF93YXJuX2NvbW1lbnQpIFdhcm5pbmcgTGFuZ0VuYWJs ZWRCeShDIE9iakMgQysrIE9iakMrKyxXYWxsKQorQyBPYmpDIEMrKyBPYmpD KysgQ1BQKHdhcm5fY29tbWVudHMpIFZhcihjcHBfd2Fybl9jb21tZW50KSBJ bml0KDApIFdhcm5pbmcgTGFuZ0VuYWJsZWRCeShDIE9iakMgQysrIE9iakMr KyxXYWxsKQogV2FybiBhYm91dCBwb3NzaWJseSBuZXN0ZWQgYmxvY2sgY29t bWVudHMsIGFuZCBDKysgY29tbWVudHMgc3Bhbm5pbmcgbW9yZSB0aGFuIG9u ZSBwaHlzaWNhbCBsaW5lCiAKIFdjb21tZW50cwogQyBPYmpDIEMrKyBPYmpD KysgV2FybmluZyBBbGlhcyhXY29tbWVudCkKIFN5bm9ueW0gZm9yIC1XY29t bWVudApAQCAtMzkwLDExICszOTAsMTEgQEAgV2FybiBhYm91dCB2aW9sYXRp b25zIG9mIEVmZmVjdGl2ZSBDKysgcwogV2VtcHR5LWJvZHkKIEMgT2JqQyBD KysgT2JqQysrIFZhcih3YXJuX2VtcHR5X2JvZHkpIFdhcm5pbmcgRW5hYmxl ZEJ5KFdleHRyYSkKIFdhcm4gYWJvdXQgYW4gZW1wdHkgYm9keSBpbiBhbiBp ZiBvciBlbHNlIHN0YXRlbWVudAogCiBXZW5kaWYtbGFiZWxzCi1DIE9iakMg QysrIE9iakMrKyBDUFAod2Fybl9lbmRpZl9sYWJlbHMpIFZhcihjcHBfd2Fy bl9lbmRpZl9sYWJlbHMpIEluaXQoMSkgV2FybmluZworQyBPYmpDIEMrKyBP YmpDKysgQ1BQKHdhcm5fZW5kaWZfbGFiZWxzKSBWYXIoY3BwX3dhcm5fZW5k aWZfbGFiZWxzKSBJbml0KDEpIFdhcm5pbmcgTGFuZ0VuYWJsZWRCeShDIE9i akMgQysrIE9iakMrKyxXcGVkYW50aWMpCiBXYXJuIGFib3V0IHN0cmF5IHRv a2VucyBhZnRlciAjZWxpZiBhbmQgI2VuZGlmCiAKIFdlbnVtLWNvbXBhcmUK IEMgT2JqQyBDKysgT2JqQysrIFZhcih3YXJuX2VudW1fY29tcGFyZSkgSW5p dCgtMSkgV2FybmluZyBMYW5nRW5hYmxlZEJ5KEMgT2JqQyxXYWxsKQogV2Fy biBhYm91dCBjb21wYXJpc29uIG9mIGRpZmZlcmVudCBlbnVtIHR5cGVzCkBA IC01MDEsMTEgKzUwMSwxMSBAQCBXYXJuIHdoZW4gdGhlcmUgaXMgYSBjYXN0 IHRvIGEgcG9pbnRlciBmCiBXaW52YWxpZC1vZmZzZXRvZgogQysrIE9iakMr KyBWYXIod2Fybl9pbnZhbGlkX29mZnNldG9mKSBJbml0KDEpIFdhcm5pbmcK IFdhcm4gYWJvdXQgaW52YWxpZCB1c2VzIG9mIHRoZSBcIm9mZnNldG9mXCIg bWFjcm8KIAogV2ludmFsaWQtcGNoCi1DIE9iakMgQysrIE9iakMrKyBDUFAo d2Fybl9pbnZhbGlkX3BjaCkgVmFyKGNwcF93YXJuX2ludmFsaWRfcGNoKSBX YXJuaW5nCitDIE9iakMgQysrIE9iakMrKyBDUFAod2Fybl9pbnZhbGlkX3Bj aCkgVmFyKGNwcF93YXJuX2ludmFsaWRfcGNoKSBJbml0KDApIFdhcm5pbmcK IFdhcm4gYWJvdXQgUENIIGZpbGVzIHRoYXQgYXJlIGZvdW5kIGJ1dCBub3Qg dXNlZAogCiBXanVtcC1taXNzZXMtaW5pdAogQyBPYmpDIFZhcih3YXJuX2p1 bXBfbWlzc2VzX2luaXQpIFdhcm5pbmcgTGFuZ0VuYWJsZWRieShDIE9iakMs V2MrKy1jb21wYXQpCiBXYXJuIHdoZW4gYSBqdW1wIG1pc3NlcyBhIHZhcmlh YmxlIGluaXRpYWxpemF0aW9uCkBAIC01MjEsMTEgKzUyMSwxMSBAQCBXYXJu IHdoZW4gYSBsb2dpY2FsIG9wZXJhdG9yIGlzIHN1c3BpY2lvCiBXbG9naWNh bC1ub3QtcGFyZW50aGVzZXMKIEMgT2JqQyBDKysgT2JqQysrIFZhcih3YXJu X2xvZ2ljYWxfbm90X3BhcmVuKSBXYXJuaW5nCiBXYXJuIHdoZW4gbG9naWNh bCBub3QgaXMgdXNlZCBvbiB0aGUgbGVmdCBoYW5kIHNpZGUgb3BlcmFuZCBv ZiBhIGNvbXBhcmlzb24KIAogV2xvbmctbG9uZwotQyBPYmpDIEMrKyBPYmpD KysgVmFyKHdhcm5fbG9uZ19sb25nKSBJbml0KC0xKSBXYXJuaW5nCitDIE9i akMgQysrIE9iakMrKyBDUFAoY3BwX3dhcm5fbG9uZ19sb25nKSBWYXIod2Fy bl9sb25nX2xvbmcpIEluaXQoLTEpIFdhcm5pbmcgTGFuZ0VuYWJsZWRCeShD IE9iakMsV2M5MC1jOTktY29tcGF0KQogRG8gbm90IHdhcm4gYWJvdXQgdXNp bmcgXCJsb25nIGxvbmdcIiB3aGVuIC1wZWRhbnRpYwogCiBXbWFpbgogQyBP YmpDIEMrKyBPYmpDKysgVmFyKHdhcm5fbWFpbikgSW5pdCgtMSkgV2Fybmlu ZyBMYW5nRW5hYmxlZEJ5KEMgT2JqQyxXYWxsLCAyLCAwKQogV2FybiBhYm91 dCBzdXNwaWNpb3VzIGRlY2xhcmF0aW9ucyBvZiBcIm1haW5cIgpAQCAtNTgx LDExICs1ODEsMTEgQEAgV2FybiBhYm91dCBzd2l0Y2hlcyB3aXRoIGJvb2xl YW4gY29udHJvbAogV21pc3NpbmctZm9ybWF0LWF0dHJpYnV0ZQogQyBPYmpD IEMrKyBPYmpDKysgQWxpYXMoV3N1Z2dlc3QtYXR0cmlidXRlPWZvcm1hdCkK IDsKIAogV21pc3NpbmctaW5jbHVkZS1kaXJzCi1DIE9iakMgQysrIE9iakMr KyBDUFAod2Fybl9taXNzaW5nX2luY2x1ZGVfZGlycykgVmFyKGNwcF93YXJu X21pc3NpbmdfaW5jbHVkZV9kaXJzKSBXYXJuaW5nCitDIE9iakMgQysrIE9i akMrKyBDUFAod2Fybl9taXNzaW5nX2luY2x1ZGVfZGlycykgVmFyKGNwcF93 YXJuX21pc3NpbmdfaW5jbHVkZV9kaXJzKSBJbml0KDApIFdhcm5pbmcKIFdh cm4gYWJvdXQgdXNlci1zcGVjaWZpZWQgaW5jbHVkZSBkaXJlY3RvcmllcyB0 aGF0IGRvIG5vdCBleGlzdAogCiBXbWlzc2luZy1wYXJhbWV0ZXItdHlwZQog QyBPYmpDIFZhcih3YXJuX21pc3NpbmdfcGFyYW1ldGVyX3R5cGUpIFdhcm5p bmcgRW5hYmxlZEJ5KFdleHRyYSkKIFdhcm4gYWJvdXQgZnVuY3Rpb24gcGFy YW1ldGVycyBkZWNsYXJlZCB3aXRob3V0IGEgdHlwZSBzcGVjaWZpZXIgaW4g SyZSLXN0eWxlIGZ1bmN0aW9ucwpAQCAtNTk2LDExICs1OTYsMTEgQEAgV2Fy biBhYm91dCBnbG9iYWwgZnVuY3Rpb25zIHdpdGhvdXQgcHJvdAogCiBXbXVk ZmxhcAogQyBPYmpDIEMrKyBPYmpDKysgSWdub3JlIFdhcm4oc3dpdGNoICVx cyBpcyBubyBsb25nZXIgc3VwcG9ydGVkKQogCiBXbXVsdGljaGFyCi1DIE9i akMgQysrIE9iakMrKyBDUFAod2Fybl9tdWx0aWNoYXIpIFZhcihjcHBfd2Fy bl9tdWx0aWNoYXIpIFdhcm5pbmcKK0MgT2JqQyBDKysgT2JqQysrIENQUCh3 YXJuX211bHRpY2hhcikgVmFyKGNwcF93YXJuX211bHRpY2hhcikgSW5pdCgw KSBXYXJuaW5nCiBXYXJuIGFib3V0IHVzZSBvZiBtdWx0aS1jaGFyYWN0ZXIg Y2hhcmFjdGVyIGNvbnN0YW50cwogCiBXbmFycm93aW5nCiBDIE9iakMgQysr IE9iakMrKyBXYXJuaW5nIFZhcih3YXJuX25hcnJvd2luZykgSW5pdCgtMSkg TGFuZ0VuYWJsZWRCeShDKysgT2JqQysrLFdhbGwpCiBXYXJuIGFib3V0IG5h cnJvd2luZyBjb252ZXJzaW9ucyB3aXRoaW4geyB9IHRoYXQgYXJlIGlsbC1m b3JtZWQgaW4gQysrMTEKQEAgLTY3MiwxMSArNjcyLDExIEBAIFdhcm4gYWJv dXQgcGFja2VkIGJpdC1maWVsZHMgd2hvc2Ugb2Zmc2UKIFdwYXJlbnRoZXNl cwogQyBPYmpDIEMrKyBPYmpDKysgVmFyKHdhcm5fcGFyZW50aGVzZXMpIFdh cm5pbmcgTGFuZ0VuYWJsZWRCeShDIE9iakMgQysrIE9iakMrKyxXYWxsKQog V2FybiBhYm91dCBwb3NzaWJseSBtaXNzaW5nIHBhcmVudGhlc2VzCiAKIFdw ZWRhbnRpYwotQyBPYmpDIEMrKyBPYmpDKysgV2FybmluZworQyBPYmpDIEMr KyBPYmpDKysgQ1BQKGNwcF9wZWRhbnRpYykgV2FybmluZwogOyBEb2N1bWVu dGVkIGluIGNvbW1vbi5vcHQKIAogV3BtZi1jb252ZXJzaW9ucwogQysrIE9i akMrKyBWYXIod2Fybl9wbWYycHRyKSBJbml0KDEpIFdhcm5pbmcKIFdhcm4g d2hlbiBjb252ZXJ0aW5nIHRoZSB0eXBlIG9mIHBvaW50ZXJzIHRvIG1lbWJl ciBmdW5jdGlvbnMKQEAgLTcwMCwxMSArNzAwLDExIEBAIFdhcm4gd2hlbiBh IHBvaW50ZXIgaXMgY2FzdCB0byBhbiBpbnRlZ2UKIFdwcmFnbWFzCiBDIE9i akMgQysrIE9iakMrKyBWYXIod2Fybl9wcmFnbWFzKSBJbml0KDEpIFdhcm5p bmcKIFdhcm4gYWJvdXQgbWlzdXNlcyBvZiBwcmFnbWFzCiAKIFdkYXRlLXRp bWUKLUMgT2JqQyBDKysgT2JqQysrIENQUCh3YXJuX2RhdGVfdGltZSkgVmFy KGNwcF93YXJuX2RhdGVfdGltZSkgV2FybmluZworQyBPYmpDIEMrKyBPYmpD KysgQ1BQKHdhcm5fZGF0ZV90aW1lKSBWYXIoY3BwX3dhcm5fZGF0ZV90aW1l KSBJbml0KDApIFdhcm5pbmcKIFdhcm4gYWJvdXQgX19USU1FX18sIF9fREFU RV9fIGFuZCBfX1RJTUVTVEFNUF9fIHVzYWdlCiAKIFdwcm9wZXJ0eS1hc3Np Z24tZGVmYXVsdAogT2JqQyBPYmpDKysgVmFyKHdhcm5fcHJvcGVydHlfYXNz aWduX2RlZmF1bHQpIEluaXQoMSkgV2FybmluZwogV2FybiBpZiBhIHByb3Bl cnR5IGZvciBhbiBPYmplY3RpdmUtQyBvYmplY3QgaGFzIG5vIGFzc2lnbiBz ZW1hbnRpY3Mgc3BlY2lmaWVkCkBAIC03ODQsMTEgKzc4NCwxMSBAQCBEZXBy ZWNhdGVkLiAgVGhpcyBzd2l0Y2ggaGFzIG5vIGVmZmVjdAogV3N5c3RlbS1o ZWFkZXJzCiBDIE9iakMgQysrIE9iakMrKyBXYXJuaW5nCiA7IERvY3VtZW50 ZWQgaW4gY29tbW9uLm9wdAogCiBXdHJhZGl0aW9uYWwKLUMgT2JqQyBWYXIo d2Fybl90cmFkaXRpb25hbCkgV2FybmluZworQyBPYmpDIENQUChjcHBfd2Fy bl90cmFkaXRpb25hbCkgVmFyKHdhcm5fdHJhZGl0aW9uYWwpIEluaXQoMCkg V2FybmluZwogV2FybiBhYm91dCBmZWF0dXJlcyBub3QgcHJlc2VudCBpbiB0 cmFkaXRpb25hbCBDCiAKIFd0cmFkaXRpb25hbC1jb252ZXJzaW9uCiBDIE9i akMgVmFyKHdhcm5fdHJhZGl0aW9uYWxfY29udmVyc2lvbikgV2FybmluZwog V2FybiBvZiBwcm90b3R5cGVzIGNhdXNpbmcgdHlwZSBjb252ZXJzaW9ucyBk aWZmZXJlbnQgZnJvbSB3aGF0IHdvdWxkIGhhcHBlbiBpbiB0aGUgYWJzZW5j ZSBvZiBwcm90b3R5cGUKQEAgLTgwMCwxMSArODAwLDExIEBAIFdhcm4gaWYg dHJpZ3JhcGhzIGFyZSBlbmNvdW50ZXJlZCB0aGF0IG0KIFd1bmRlY2xhcmVk LXNlbGVjdG9yCiBPYmpDIE9iakMrKyBWYXIod2Fybl91bmRlY2xhcmVkX3Nl bGVjdG9yKSBXYXJuaW5nCiBXYXJuIGFib3V0IEBzZWxlY3RvcigpcyB3aXRo b3V0IHByZXZpb3VzbHkgZGVjbGFyZWQgbWV0aG9kcwogCiBXdW5kZWYKLUMg T2JqQyBDKysgT2JqQysrIENQUCh3YXJuX3VuZGVmKSBWYXIoY3BwX3dhcm5f dW5kZWYpIFdhcm5pbmcKK0MgT2JqQyBDKysgT2JqQysrIENQUCh3YXJuX3Vu ZGVmKSBWYXIoY3BwX3dhcm5fdW5kZWYpIEluaXQoMCkgV2FybmluZwogV2Fy biBpZiBhbiB1bmRlZmluZWQgbWFjcm8gaXMgdXNlZCBpbiBhbiAjaWYgZGly ZWN0aXZlCiAKIFd1bmluaXRpYWxpemVkCiBDIE9iakMgQysrIE9iakMrKyBM YW5nRW5hYmxlZEJ5KEMgT2JqQyBDKysgT2JqQysrLFdhbGwpCiA7CkBAIC04 MzYsMTEgKzgzNiwxMSBAQCBXYXJuIGFib3V0IG1hY3JvcyBkZWZpbmVkIGlu IHRoZSBtYWluIGZpCiBXdW51c2VkLXJlc3VsdAogQyBPYmpDIEMrKyBPYmpD KysgVmFyKHdhcm5fdW51c2VkX3Jlc3VsdCkgSW5pdCgxKSBXYXJuaW5nCiBX YXJuIGlmIGEgY2FsbGVyIG9mIGEgZnVuY3Rpb24sIG1hcmtlZCB3aXRoIGF0 dHJpYnV0ZSB3YXJuX3VudXNlZF9yZXN1bHQsIGRvZXMgbm90IHVzZSBpdHMg cmV0dXJuIHZhbHVlCiAKIFd2YXJpYWRpYy1tYWNyb3MKLUMgT2JqQyBDKysg T2JqQysrIENQUCh3YXJuX3ZhcmlhZGljX21hY3JvcykgVmFyKGNwcF93YXJu X3ZhcmlhZGljX21hY3JvcykgV2FybmluZyBMYW5nRW5hYmxlZEJ5KEMgT2Jq QyBDKysgT2JqQysrLFdwZWRhbnRpYykKK0MgT2JqQyBDKysgT2JqQysrIENQ UCh3YXJuX3ZhcmlhZGljX21hY3JvcykgVmFyKGNwcF93YXJuX3ZhcmlhZGlj X21hY3JvcykgSW5pdCgwKSBXYXJuaW5nIExhbmdFbmFibGVkQnkoQyBPYmpD IEMrKyBPYmpDKyssV3BlZGFudGljKQogV2FybiBhYm91dCB1c2luZyB2YXJp YWRpYyBtYWNyb3MKIAogV3ZhcmlhZGljLW1hY3JvcwogTGFuZ0VuYWJsZWRC eShDIE9iakMgQysrIE9iakMrKyxXdHJhZGl0aW9uYWwpCiA7CkluZGV4OiBn Y2MvYy1mYW1pbHkvYy1vcHRzLmMKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gZ2NjL2MtZmFtaWx5L2Mtb3B0cy5jCShyZXZpc2lvbiAyMTQ3MzUpCisr KyBnY2MvYy1mYW1pbHkvYy1vcHRzLmMJKHdvcmtpbmcgY29weSkKQEAgLTM4 MiwxOCArMzgyLDEwIEBAIGNfY29tbW9uX2hhbmRsZV9vcHRpb24gKHNpemVf dCBzY29kZSwgY28KICAgICAgIC8qID8/PyBEb24ndCBhZGQgbmV3IG9wdGlv bnMgaGVyZS4gVXNlIExhbmdFbmFibGVkQnkgaW4gYy5vcHQuICAqLwogCiAg ICAgICBjcHBfb3B0cy0+d2Fybl9udW1fc2lnbl9jaGFuZ2UgPSB2YWx1ZTsK ICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBPUFRfV2NfX19jb21wYXQ6Ci0g ICAgICBjcHBfb3B0cy0+d2Fybl9jeHhfb3BlcmF0b3JfbmFtZXMgPSB2YWx1 ZTsKLSAgICAgIGJyZWFrOwotCi0gICAgY2FzZSBPUFRfV2xvbmdfbG9uZzoK LSAgICAgIGNwcF9vcHRzLT5jcHBfd2Fybl9sb25nX2xvbmcgPSB2YWx1ZTsK LSAgICAgIGJyZWFrOwotCiAgICAgY2FzZSBPUFRfV25vcm1hbGl6ZWRfOgog ICAgICAgLyogRklYTUU6IE1vdmUgYWxsIHRoaXMgdG8gYy5vcHQuICAqLwog ICAgICAgaWYgKGtpbmQgPT0gREtfRVJST1IpCiAJewogCSAgZ2NjX2Fzc2Vy dCAoIWFyZyk7CkBAIC00MTMsMTQgKzQwNSwxMCBAQCBjX2NvbW1vbl9oYW5k bGVfb3B0aW9uIChzaXplX3Qgc2NvZGUsIGNvCiAJICBlbHNlCiAJICAgIGVy cm9yICgiYXJndW1lbnQgJXFzIHRvICU8LVdub3JtYWxpemVkJT4gbm90IHJl Y29nbml6ZWQiLCBhcmcpOwogCSAgYnJlYWs7CiAJfQogCi0gICAgY2FzZSBP UFRfV3RyYWRpdGlvbmFsOgotICAgICAgY3BwX29wdHMtPmNwcF93YXJuX3Ry YWRpdGlvbmFsID0gdmFsdWU7Ci0gICAgICBicmVhazsKLQogICAgIGNhc2Ug T1BUX1d1bmtub3duX3ByYWdtYXM6CiAgICAgICAvKiBTZXQgdG8gZ3JlYXRl ciB0aGFuIDEsIHNvIHRoYXQgZXZlbiB1bmtub3duIHByYWdtYXMgaW4KIAkg c3lzdGVtIGhlYWRlcnMgd2lsbCBiZSB3YXJuZWQgYWJvdXQuICAqLwogICAg ICAgLyogPz8/IFRoZXJlIGlzIG5vIHdheSB0byBoYW5kbGUgdGhpcyBhdXRv bWF0aWNhbGx5IGZvciBub3cuICAqLwogICAgICAgd2Fybl91bmtub3duX3By YWdtYXMgPSB2YWx1ZSAqIDI7CkBAIC02MzIsMTggKzYyMCwxMCBAQCBjX2Nv bW1vbl9oYW5kbGVfb3B0aW9uIChzaXplX3Qgc2NvZGUsIGNvCiAJb3V0X2Zu YW1lID0gYXJnOwogICAgICAgZWxzZQogCWVycm9yICgib3V0cHV0IGZpbGVu YW1lIHNwZWNpZmllZCB0d2ljZSIpOwogICAgICAgYnJlYWs7CiAKLSAgICAg IC8qIFdlIG5lZWQgdG8gaGFuZGxlIHRoZSAtV3BlZGFudGljIHN3aXRjaCBo ZXJlLCByYXRoZXIgdGhhbiBpbgotCSBjX2NvbW1vbl9wb3N0X29wdGlvbnMs IHNvIHRoYXQgYSBzdWJzZXF1ZW50IC1Xbm8tZW5kaWYtbGFiZWxzCi0JIGlz IG5vdCBvdmVycmlkZGVuLiAgKi8KLSAgICBjYXNlIE9QVF9XcGVkYW50aWM6 Ci0gICAgICBjcHBfb3B0cy0+Y3BwX3BlZGFudGljID0gMTsKLSAgICAgIGNw cF9vcHRzLT53YXJuX2VuZGlmX2xhYmVscyA9IDE7Ci0gICAgICBicmVhazsK LQogICAgIGNhc2UgT1BUX3ByaW50X29iamNfcnVudGltZV9pbmZvOgogICAg ICAgcHJpbnRfc3RydWN0X3ZhbHVlcyA9IDE7CiAgICAgICBicmVhazsKIAog ICAgIGNhc2UgT1BUX3JlbWFwOgpAQCAtMTI2NywyNCArMTI0NywyMyBAQCBz YW5pdGl6ZV9jcHBfb3B0cyAodm9pZCkKICAgZWxzZSBpZiAoY3BwX29wdHMt PmRlcHMubWlzc2luZ19maWxlcykKICAgICBlcnJvciAoIi1NRyBtYXkgb25s eSBiZSB1c2VkIHdpdGggLU0gb3IgLU1NIik7CiAKICAgY3BwX29wdHMtPnVu c2lnbmVkX2NoYXIgPSAhZmxhZ19zaWduZWRfY2hhcjsKICAgY3BwX29wdHMt PnN0ZGNfMF9pbl9zeXN0ZW1faGVhZGVycyA9IFNURENfMF9JTl9TWVNURU1f SEVBREVSUzsKLSAgY3BwX29wdHMtPmNwcF93YXJuX2M5MF9jOTlfY29tcGF0 ID0gd2Fybl9jOTBfYzk5X2NvbXBhdDsKIAogICAvKiBXbG9uZy1sb25nIGlz IGRpc2FibGVkIGJ5IGRlZmF1bHQuIEl0IGlzIGVuYWJsZWQgYnk6CiAgICAg ICBbLVdwZWRhbnRpYyB8IC1XdHJhZGl0aW9uYWxdIC1zdGQ9W2dudXxjXSsr OTggOyBvcgotICAgICAgWy1XcGVkYW50aWMgfCAtV3RyYWRpdGlvbmFsXSAt c3RkPW5vbi1jOTkgOyBvcgotICAgICAgLVdjOTAtYzk5LWNvbXBhdCwgaWYg c3BlY2lmaWVkLgorICAgICAgWy1XcGVkYW50aWMgfCAtV3RyYWRpdGlvbmFs XSAtc3RkPW5vbi1jOTkgCiAKLSAgICAgIEVpdGhlciAtV2xvbmctbG9uZyBv ciAtV25vLWxvbmctbG9uZyBvdmVycmlkZSBhbnkgb3RoZXIgc2V0dGluZ3Mu ICAqLwotICBpZiAod2Fybl9sb25nX2xvbmcgPT0gLTEgJiYgd2Fybl9jOTBf Yzk5X2NvbXBhdCAhPSAtMSkKLSAgICB3YXJuX2xvbmdfbG9uZyA9IHdhcm5f YzkwX2M5OV9jb21wYXQ7Ci0gIGVsc2UgaWYgKHdhcm5fbG9uZ19sb25nID09 IC0xKQotICAgIHdhcm5fbG9uZ19sb25nID0gKChwZWRhbnRpYyB8fCB3YXJu X3RyYWRpdGlvbmFsKQotCQkgICAgICAmJiAoY19kaWFsZWN0X2N4eCAoKSA/ IGN4eF9kaWFsZWN0ID09IGN4eDk4IDogIWZsYWdfaXNvYzk5KSk7Ci0gIGNw cF9vcHRzLT5jcHBfd2Fybl9sb25nX2xvbmcgPSB3YXJuX2xvbmdfbG9uZzsK KyAgICAgIEVpdGhlciAtV2xvbmctbG9uZyBvciAtV25vLWxvbmctbG9uZyBv dmVycmlkZSBhbnkgb3RoZXIgc2V0dGluZ3MuCisgICAgICA/Pz8gVGhlc2Ug Y29uZGl0aW9ucyBzaG91bGQgYmUgaGFuZGxlZCBpbiBjLm9wdC4gICovCisg IGlmICh3YXJuX2xvbmdfbG9uZyA9PSAtMSkKKyAgICB7CisgICAgICB3YXJu X2xvbmdfbG9uZyA9ICgocGVkYW50aWMgfHwgd2Fybl90cmFkaXRpb25hbCkK KwkJCSYmIChjX2RpYWxlY3RfY3h4ICgpID8gY3h4X2RpYWxlY3QgPT0gY3h4 OTggOiAhZmxhZ19pc29jOTkpKTsKKyAgICAgIGNwcF9vcHRzLT5jcHBfd2Fy bl9sb25nX2xvbmcgPSB3YXJuX2xvbmdfbG9uZzsKKyAgICB9CiAKICAgLyog SWYgd2UncmUgZ2VuZXJhdGluZyBwcmVwcm9jZXNzb3Igb3V0cHV0LCBlbWl0 IGN1cnJlbnQgZGlyZWN0b3J5CiAgICAgIGlmIGV4cGxpY2l0bHkgcmVxdWVz dGVkIG9yIGlmIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiBpcyBlbmFibGVkLgog ICAgICA/Pz8gTWF5YmUgd2Ugc2hvdWxkIG9ubHkgZG8gaXQgZm9yIGRlYnVn Z2luZyBmb3JtYXRzIHRoYXQKICAgICAgYWN0dWFsbHkgb3V0cHV0IHRoZSBj dXJyZW50IGRpcmVjdG9yeT8gICovCkluZGV4OiBnY2MvYy1mYW1pbHkvYy1j b21tb24uYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnY2MvYy1mYW1p bHkvYy1jb21tb24uYwkocmV2aXNpb24gMjE0NzM1KQorKysgZ2NjL2MtZmFt aWx5L2MtY29tbW9uLmMJKHdvcmtpbmcgY29weSkKQEAgLTk2NzMsMTAgKzk2 NzMsMTEgQEAgc3RydWN0IHJlYXNvbl9vcHRpb25fY29kZXNfdAogICBjb25z dCBpbnQgb3B0aW9uX2NvZGU7CS8qIGdjYyBvcHRpb24gdGhhdCBjb250cm9s cyB0aGlzIG1lc3NhZ2UuICAqLwogfTsKIAogc3RhdGljIGNvbnN0IHN0cnVj dCByZWFzb25fb3B0aW9uX2NvZGVzX3Qgb3B0aW9uX2NvZGVzW10gPSB7CiAg IHtDUFBfV19CVUlMVElOX01BQ1JPX1JFREVGSU5FRCwJT1BUX1didWlsdGlu X21hY3JvX3JlZGVmaW5lZH0sCisgIHtDUFBfV19DOTBfQzk5X0NPTVBBVCwg ICAgICAgICAgICAgICAgT1BUX1djOTBfYzk5X2NvbXBhdH0sCiAgIHtDUFBf V19DT01NRU5UUywJCQlPUFRfV2NvbW1lbnR9LAogICB7Q1BQX1dfQ1hYX09Q RVJBVE9SX05BTUVTLAkJT1BUX1djX19fY29tcGF0fSwKICAge0NQUF9XX0RB VEVfVElNRSwJCQlPUFRfV2RhdGVfdGltZX0sCiAgIHtDUFBfV19ERVBSRUNB VEVELAkJCU9QVF9XZGVwcmVjYXRlZH0sCiAgIHtDUFBfV19FTkRJRl9MQUJF TFMsCQkJT1BUX1dlbmRpZl9sYWJlbHN9LApAQCAtOTY4NCwxMCArOTY4NSwx MSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHJlYXNvbl9vcHRpb25fY29kZXNf CiAgIHtDUFBfV19MSVRFUkFMX1NVRkZJWCwJCU9QVF9XbGl0ZXJhbF9zdWZm aXh9LAogICB7Q1BQX1dfTE9OR19MT05HLAkJCU9QVF9XbG9uZ19sb25nfSwK ICAge0NQUF9XX01JU1NJTkdfSU5DTFVERV9ESVJTLCAgICAgICAgICBPUFRf V21pc3NpbmdfaW5jbHVkZV9kaXJzfSwKICAge0NQUF9XX01VTFRJQ0hBUiwJ CQlPUFRfV211bHRpY2hhcn0sCiAgIHtDUFBfV19OT1JNQUxJWkUsCQkJT1BU X1dub3JtYWxpemVkX30sCisgIHtDUFBfV19QRURBTlRJQywgICAgICAgICAg ICAgICAgICAgICAgT1BUX1dwZWRhbnRpY30sCiAgIHtDUFBfV19UUkFESVRJ T05BTCwJCQlPUFRfV3RyYWRpdGlvbmFsfSwKICAge0NQUF9XX1RSSUdSQVBI UywJCQlPUFRfV3RyaWdyYXBoc30sCiAgIHtDUFBfV19VTkRFRiwJCQkJT1BU X1d1bmRlZn0sCiAgIHtDUFBfV19VTlVTRURfTUFDUk9TLAkJCU9QVF9XdW51 c2VkX21hY3Jvc30sCiAgIHtDUFBfV19WQVJJQURJQ19NQUNST1MsCQlPUFRf V3ZhcmlhZGljX21hY3Jvc30sCkluZGV4OiBnY2MvdGVzdHN1aXRlL2djYy5k Zy9jcHAvZW5kaWYtcGVkYW50aWMyLmMKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvY3BwL2VuZGlmLXBlZGFudGlj Mi5jCShyZXZpc2lvbiAyMTQ3MzUpCisrKyBnY2MvdGVzdHN1aXRlL2djYy5k Zy9jcHAvZW5kaWYtcGVkYW50aWMyLmMJKHdvcmtpbmcgY29weSkKQEAgLTEs OSArMSw5IEBACiAvKiBDb3B5cmlnaHQgKEMpIDIwMDIgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuICAqLwogCiAvKiB7IGRnLWRvIHByZXByb2Nl c3MgfSAqLwotLyogeyBkZy1vcHRpb25zICItV25vLWVuZGlmLWxhYmVscyAt cGVkYW50aWMtZXJyb3JzIiB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1Xbm8t ZW5kaWYtbGFiZWxzIC1wZWRhbnRpYy1lcnJvcnMgLVdlbmRpZi1sYWJlbHMi IH0gKi8KIAogLyogVGVzdHMgY29tYmluYXRpb25zIG9mIC1wZWRhbnRpYyBh bmQgLVduby1lbmRpZi1sYWJlbHM7IHNlZSBleHRyYXRva2VuczIuYwogICAg Zm9yIG1vcmUgZ2VuZXJhbCB0ZXN0cy4gICovCiAKIC8qIFNvdXJjZTogUGhp bCBFZHdhcmRzLCAyNSBNYXIgMjAwMi4gIENvcGllZCBmcm9tIGVuZGlmLXBl ZGFudGljMS5jIGFuZApJbmRleDogZ2NjL29wdGMtZ2VuLmF3awo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLSBnY2Mvb3B0Yy1nZW4uYXdrCShyZXZpc2lv biAyMTQ3MzUpCisrKyBnY2Mvb3B0Yy1nZW4uYXdrCSh3b3JraW5nIGNvcHkp CkBAIC00OTgsMTUgKzQ5OCwyNCBAQCBmb3IgKGkgPSAwOyBpIDwgbl9vcHRz OyBpKyspIHsKICAgICB3aGlsZSggaSArIDEgIT0gbl9vcHRzICYmIG9wdHNb aV0gPT0gb3B0c1tpICsgMV0gKSB7CiAgICAgICAgIGkrKzsKICAgICB9CiAK ICAgICBjcHBfb3B0aW9uID0gbnRoX2FyZygwLCBvcHRfYXJncygiQ1BQIiwg ZmxhZ3NbaV0pKTsKLSAgICBvcHRfdmFyX25hbWUgPSB2YXJfbmFtZShmbGFn c1tpXSk7Ci0gICAgaWYgKGNwcF9vcHRpb24gIT0gIiIgJiYgb3B0X3Zhcl9u YW1lICE9ICIiKSB7Ci0gICAgICAgIHByaW50ICIgICAgY2FzZSAiIG9wdF9l bnVtKG9wdHNbaV0pICI6IgotICAgICAgICBwcmludCAiICAgICAgY3BwX29w dHMtPiIgY3BwX29wdGlvbiAiID0gb3B0cy0+eF8iIG9wdF92YXJfbmFtZSAi OyIKLSAgICAgICAgcHJpbnQgIiAgICAgIGJyZWFrOyIKKyAgICBpZiAoY3Bw X29wdGlvbiAhPSAiIikgeworICAgICAgICBvcHRfdmFyX25hbWUgPSB2YXJf bmFtZShmbGFnc1tpXSk7CisgICAgICAgIGluaXQgPSBvcHRfYXJncygiSW5p dCIsIGZsYWdzW2ldKQorICAgICAgICBpZiAob3B0X3Zhcl9uYW1lICE9ICIi ICYmIGluaXQgIT0gIiIpIHsKKyAgICAgICAgICAgIHByaW50ICIgICAgY2Fz ZSAiIG9wdF9lbnVtKG9wdHNbaV0pICI6IgorICAgICAgICAgICAgcHJpbnQg IiAgICAgIGNwcF9vcHRzLT4iIGNwcF9vcHRpb24gIiA9IG9wdHMtPnhfIiBv cHRfdmFyX25hbWUgIjsiCisgICAgICAgICAgICBwcmludCAiICAgICAgYnJl YWs7IgorICAgICAgICB9IGVsc2UgaWYgKG9wdF92YXJfbmFtZSA9PSAiIiAm JiBpbml0ID09ICIiKSB7CisgICAgICAgICAgICBwcmludCAiI2Vycm9yIENQ UCgpIHJlcXVpcmVzIHNldHRpbmcgSW5pdCgpIGFuZCBWYXIoKSBmb3IgIiBv cHRzW2ldCisgICAgICAgIH0gZWxzZSBpZiAob3B0X3Zhcl9uYW1lICE9ICIi KSB7CisgICAgICAgICAgICBwcmludCAiI2Vycm9yIENQUCgpIHJlcXVpcmVz IHNldHRpbmcgSW5pdCgpIGZvciAiIG9wdHNbaV0KKyAgICAgICAgfSBlbHNl IHsKKyAgICAgICAgICAgIHByaW50ICIjZXJyb3IgQ1BQKCkgcmVxdWlyZXMg c2V0dGluZyBWYXIoKSBmb3IgIiBvcHRzW2ldCisgICAgICAgIH0KICAgICB9 CiB9CiBwcmludCAiICAgIGRlZmF1bHQ6ICAgICIKIHByaW50ICIgICAgICBi cmVhazsgICAgIgogcHJpbnQgIiAgICB9ICAgICAgICAgICAiCkluZGV4OiBn Y2MvY29tbW9uLm9wdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBnY2Mv Y29tbW9uLm9wdAkocmV2aXNpb24gMjE0NzM1KQorKysgZ2NjL2NvbW1vbi5v cHQJKHdvcmtpbmcgY29weSkKQEAgLTYwMiwxMSArNjAyLDExIEBAIFdhcm4g d2hlbiB0aGUgcGFja2VkIGF0dHJpYnV0ZSBoYXMgbm8gZWYKIFdwYWRkZWQK IENvbW1vbiBWYXIod2Fybl9wYWRkZWQpIFdhcm5pbmcKIFdhcm4gd2hlbiBw YWRkaW5nIGlzIHJlcXVpcmVkIHRvIGFsaWduIHN0cnVjdHVyZSBtZW1iZXJz CiAKIFdwZWRhbnRpYwotQ29tbW9uIFZhcihwZWRhbnRpYykgV2FybmluZwor Q29tbW9uIFZhcihwZWRhbnRpYykgSW5pdCgwKSBXYXJuaW5nCiBJc3N1ZSB3 YXJuaW5ncyBuZWVkZWQgZm9yIHN0cmljdCBjb21wbGlhbmNlIHRvIHRoZSBz dGFuZGFyZAogCiBXcmV0dXJuLWxvY2FsLWFkZHIKIENvbW1vbiBWYXIod2Fy bl9yZXR1cm5fbG9jYWxfYWRkcikgSW5pdCgxKSBXYXJuaW5nCiBXYXJuIGFi b3V0IHJldHVybmluZyBhIHBvaW50ZXIvcmVmZXJlbmNlIHRvIGEgbG9jYWwg b3IgdGVtcG9yYXJ5IHZhcmlhYmxlLgpJbmRleDogbGliY3BwL21hY3JvLmMK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0gbGliY3BwL21hY3JvLmMJKHJl dmlzaW9uIDIxNDczNSkKKysrIGxpYmNwcC9tYWNyby5jCSh3b3JraW5nIGNv cHkpCkBAIC0xNzc0LDM5ICsxNzc0LDM2IEBAIHJlcGxhY2VfYXJncyAoY3Bw X3JlYWRlciAqcGZpbGUsIGNwcF9oYXMKIAkgICAgIHRva2VuIHNob3VsZCBi ZSBmbGFnZ2VkIFBBU1RFX0xFRlQuICAqLwogCSAgaWYgKHNyYy0+ZmxhZ3Mg JiBQQVNURV9MRUZUKQogCSAgICBwYXN0ZV9mbGFnID0KIAkgICAgICAoY29u c3QgY3BwX3Rva2VuICoqKSB0b2tlbnNfYnVmZl9sYXN0X3Rva2VuX3B0ciAo YnVmZik7CiAJfQotICAgICAgZWxzZSBpZiAoQ1BQX1BFREFOVElDIChwZmls ZSkgJiYgISBtYWNyby0+c3lzaGRyCi0JICAgICAgICYmICEgQ1BQX09QVElP TiAocGZpbGUsIGM5OSkKLQkgICAgICAgJiYgISBjcHBfaW5fc3lzdGVtX2hl YWRlciAocGZpbGUpKQorICAgICAgZWxzZSBpZiAoQ1BQX1BFREFOVElDIChw ZmlsZSkgJiYgISBDUFBfT1BUSU9OIChwZmlsZSwgYzk5KQorCSAgICAgICAm JiAhIG1hY3JvLT5zeXNoZHIgJiYgISBjcHBfaW5fc3lzdGVtX2hlYWRlciAo cGZpbGUpKQogCXsKIAkgIGlmIChDUFBfT1BUSU9OIChwZmlsZSwgY3BsdXNw bHVzKSkKLQkgICAgY3BwX2Vycm9yIChwZmlsZSwgQ1BQX0RMX1BFRFdBUk4s Ci0JCSAgICAgICAiaW52b2tpbmcgbWFjcm8gJXMgYXJndW1lbnQgJWQ6ICIK LQkJICAgICAgICJlbXB0eSBtYWNybyBhcmd1bWVudHMgYXJlIHVuZGVmaW5l ZCIKLQkJICAgICAgICIgaW4gSVNPIEMrKzk4IiwKLQkJICAgICAgIE5PREVf TkFNRSAobm9kZSksCi0JCSAgICAgICBzcmMtPnZhbC5tYWNyb19hcmcuYXJn X25vKTsKKwkgICAgY3BwX3BlZHdhcm5pbmcgKHBmaWxlLCBDUFBfV19QRURB TlRJQywKKwkJCSAgICAiaW52b2tpbmcgbWFjcm8gJXMgYXJndW1lbnQgJWQ6 ICIKKwkJCSAgICAiZW1wdHkgbWFjcm8gYXJndW1lbnRzIGFyZSB1bmRlZmlu ZWQiCisJCQkgICAgIiBpbiBJU08gQysrOTgiLAorCQkJICAgIE5PREVfTkFN RSAobm9kZSksIHNyYy0+dmFsLm1hY3JvX2FyZy5hcmdfbm8pOwogCSAgZWxz ZSBpZiAoQ1BQX09QVElPTiAocGZpbGUsIGNwcF93YXJuX2M5MF9jOTlfY29t cGF0KSkKLQkgICAgY3BwX2Vycm9yIChwZmlsZSwgQ1BQX0RMX1BFRFdBUk4s Ci0JCSAgICAgICAiaW52b2tpbmcgbWFjcm8gJXMgYXJndW1lbnQgJWQ6ICIK LQkJICAgICAgICJlbXB0eSBtYWNybyBhcmd1bWVudHMgYXJlIHVuZGVmaW5l ZCIKLQkJICAgICAgICIgaW4gSVNPIEM5MCIsCi0JCSAgICAgICBOT0RFX05B TUUgKG5vZGUpLAotCQkgICAgICAgc3JjLT52YWwubWFjcm9fYXJnLmFyZ19u byk7CisJICAgIGNwcF9wZWR3YXJuaW5nIChwZmlsZSwgCisJCQkgICAgQ1BQ X09QVElPTiAocGZpbGUsIGNwcF93YXJuX2M5MF9jOTlfY29tcGF0KSA+IDAK KwkJCSAgICA/IENQUF9XX0M5MF9DOTlfQ09NUEFUIDogQ1BQX1dfUEVEQU5U SUMsCisJCQkgICAgImludm9raW5nIG1hY3JvICVzIGFyZ3VtZW50ICVkOiAi CisJCQkgICAgImVtcHR5IG1hY3JvIGFyZ3VtZW50cyBhcmUgdW5kZWZpbmVk IgorCQkJICAgICIgaW4gSVNPIEM5MCIsCisJCQkgICAgTk9ERV9OQU1FIChu b2RlKSwgc3JjLT52YWwubWFjcm9fYXJnLmFyZ19ubyk7CiAJfQogICAgICAg ZWxzZSBpZiAoQ1BQX09QVElPTiAocGZpbGUsIGNwcF93YXJuX2M5MF9jOTlf Y29tcGF0KSA+IDAKLQkgICAgICAgJiYgISBtYWNyby0+c3lzaGRyCi0JICAg ICAgICYmICEgY3BwX2luX3N5c3RlbV9oZWFkZXIgKHBmaWxlKQotCSAgICAg ICAmJiAhIENQUF9PUFRJT04gKHBmaWxlLCBjcGx1c3BsdXMpKQotCWNwcF9l cnJvciAocGZpbGUsIENQUF9ETF9XQVJOSU5HLAotCQkgICAiaW52b2tpbmcg bWFjcm8gJXMgYXJndW1lbnQgJWQ6ICIKLQkJICAgImVtcHR5IG1hY3JvIGFy Z3VtZW50cyBhcmUgdW5kZWZpbmVkIgotCQkgICAiIGluIElTTyBDOTAiLAot CQkgICBOT0RFX05BTUUgKG5vZGUpLAotCQkgICBzcmMtPnZhbC5tYWNyb19h cmcuYXJnX25vKTsKKwkgICAgICAgJiYgISBDUFBfT1BUSU9OIChwZmlsZSwg Y3BsdXNwbHVzKQorCSAgICAgICAmJiAhIG1hY3JvLT5zeXNoZHIgJiYgISBj cHBfaW5fc3lzdGVtX2hlYWRlciAocGZpbGUpKQorCWNwcF93YXJuaW5nIChw ZmlsZSwgQ1BQX1dfQzkwX0M5OV9DT01QQVQsCisJCSAgICAgImludm9raW5n IG1hY3JvICVzIGFyZ3VtZW50ICVkOiAiCisJCSAgICAgImVtcHR5IG1hY3Jv IGFyZ3VtZW50cyBhcmUgdW5kZWZpbmVkIgorCQkgICAgICIgaW4gSVNPIEM5 MCIsCisJCSAgICAgTk9ERV9OQU1FIChub2RlKSwgc3JjLT52YWwubWFjcm9f YXJnLmFyZ19ubyk7CiAKICAgICAgIC8qIEF2b2lkIHBhc3RlIG9uIFJIUyAo ZXZlbiBjYXNlIGNvdW50ID09IDApLiAgKi8KICAgICAgIGlmICghcGZpbGUt PnN0YXRlLmluX2RpcmVjdGl2ZSAmJiAhKHNyYy0+ZmxhZ3MgJiBQQVNURV9M RUZUKSkKIAl7CiAJICBjb25zdCBjcHBfdG9rZW4gKnQgPSAmcGZpbGUtPmF2 b2lkX3Bhc3RlOwpJbmRleDogbGliY3BwL2luY2x1ZGUvY3BwbGliLmgKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0gbGliY3BwL2luY2x1ZGUvY3BwbGli LmgJKHJldmlzaW9uIDIxNDczNSkKKysrIGxpYmNwcC9pbmNsdWRlL2NwcGxp Yi5oCSh3b3JraW5nIGNvcHkpCkBAIC05MzcsMTEgKzkzNywxMyBAQCBlbnVt IHsKICAgQ1BQX1dfQ1hYX09QRVJBVE9SX05BTUVTLAogICBDUFBfV19OT1JN QUxJWkUsCiAgIENQUF9XX0lOVkFMSURfUENILAogICBDUFBfV19XQVJOSU5H X0RJUkVDVElWRSwKICAgQ1BQX1dfTElURVJBTF9TVUZGSVgsCi0gIENQUF9X X0RBVEVfVElNRQorICBDUFBfV19EQVRFX1RJTUUsCisgIENQUF9XX1BFREFO VElDLAorICBDUFBfV19DOTBfQzk5X0NPTVBBVAogfTsKIAogLyogT3V0cHV0 IGEgZGlhZ25vc3RpYyBvZiBzb21lIGtpbmQuICAqLwogZXh0ZXJuIGJvb2wg Y3BwX2Vycm9yIChjcHBfcmVhZGVyICosIGludCwgY29uc3QgY2hhciAqbXNn aWQsIC4uLikKICAgQVRUUklCVVRFX1BSSU5URl8zOwpJbmRleDogbGliY3Bw L2luaXQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBsaWJjcHAvaW5p dC5jCShyZXZpc2lvbiAyMTQ3MzUpCisrKyBsaWJjcHAvaW5pdC5jCSh3b3Jr aW5nIGNvcHkpCkBAIC0xODMsMTAgKzE4MywxMSBAQCBjcHBfY3JlYXRlX3Jl YWRlciAoZW51bSBjX2xhbmcgbGFuZywgY3BwCiAgIENQUF9PUFRJT04gKHBm aWxlLCBkaXNjYXJkX2NvbW1lbnRzX2luX21hY3JvX2V4cCkgPSAxOwogICBD UFBfT1BUSU9OIChwZmlsZSwgdGFic3RvcCkgPSA4OwogICBDUFBfT1BUSU9O IChwZmlsZSwgb3BlcmF0b3JfbmFtZXMpID0gMTsKICAgQ1BQX09QVElPTiAo cGZpbGUsIHdhcm5fdHJpZ3JhcGhzKSA9IDI7CiAgIENQUF9PUFRJT04gKHBm aWxlLCB3YXJuX2VuZGlmX2xhYmVscykgPSAxOworICBDUFBfT1BUSU9OIChw ZmlsZSwgY3BwX3dhcm5fYzkwX2M5OV9jb21wYXQpID0gLTE7CiAgIENQUF9P UFRJT04gKHBmaWxlLCBjcHBfd2Fybl9kZXByZWNhdGVkKSA9IDE7CiAgIENQ UF9PUFRJT04gKHBmaWxlLCBjcHBfd2Fybl9sb25nX2xvbmcpID0gMDsKICAg Q1BQX09QVElPTiAocGZpbGUsIGRvbGxhcnNfaW5faWRlbnQpID0gMTsKICAg Q1BQX09QVElPTiAocGZpbGUsIHdhcm5fZG9sbGFycykgPSAxOwogICBDUFBf T1BUSU9OIChwZmlsZSwgd2Fybl92YXJpYWRpY19tYWNyb3MpID0gMTsKSW5k ZXg6IGxpYmNwcC9leHByLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g bGliY3BwL2V4cHIuYwkocmV2aXNpb24gMjE0NzM1KQorKysgbGliY3BwL2V4 cHIuYwkod29ya2luZyBjb3B5KQpAQCAtMTg3OCwxMiArMTg3OCwxMiBAQCBu dW1fYmluYXJ5X29wIChjcHBfcmVhZGVyICpwZmlsZSwgY3BwX251CiAKICAg ICAgIC8qIENvbW1hLiAgKi8KICAgICBkZWZhdWx0OiAvKiBjYXNlIENQUF9D T01NQTogKi8KICAgICAgIGlmIChDUFBfUEVEQU5USUMgKHBmaWxlKSAmJiAo IUNQUF9PUFRJT04gKHBmaWxlLCBjOTkpCiAJCQkJICAgfHwgIXBmaWxlLT5z dGF0ZS5za2lwX2V2YWwpKQotCWNwcF9lcnJvciAocGZpbGUsIENQUF9ETF9Q RURXQVJOLAotCQkgICAiY29tbWEgb3BlcmF0b3IgaW4gb3BlcmFuZCBvZiAj aWYiKTsKKwljcHBfcGVkd2FybmluZyAocGZpbGUsIENQUF9XX1BFREFOVElD LAorCQkJImNvbW1hIG9wZXJhdG9yIGluIG9wZXJhbmQgb2YgI2lmIik7CiAg ICAgICBsaHMgPSByaHM7CiAgICAgICBicmVhazsKICAgICB9CiAKICAgcmV0 dXJuIGxoczsK --047d7bfd0214b605120501d78e68--