From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29760 invoked by alias); 5 Jun 2017 17:45:37 -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 29616 invoked by uid 89); 5 Jun 2017 17:45:21 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.4 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS,URIBL_RED autolearn=ham version=3.3.2 spammy= X-HELO: mail-qt0-f175.google.com Received: from mail-qt0-f175.google.com (HELO mail-qt0-f175.google.com) (209.85.216.175) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 05 Jun 2017 17:45:03 +0000 Received: by mail-qt0-f175.google.com with SMTP id c10so41547845qtd.1 for ; Mon, 05 Jun 2017 10:45:07 -0700 (PDT) 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=hPjvIrLmxPwKRnW71IFz4lAzTfW6C8rMA1MT0ziZAJk=; b=ukcuR34eIh+2/JKz1y1LBQrcrkC3KM/4yNGadMawx33EJwH9xQAgJRaoL/CCJws5nb a8sFkcgWRHdJFOr8E/I0QCI16qTjpDtTA/ZJHKCHmrRm/wOV5MkAk8HlgVmvHnZjbCGB lxn0cM/PFm7wPFIUG3/1t2wg5Za2ZgUdSKs/PlFLqPOzDBgVQ33c8QuE9BRIepO9PuMc 88njlNacOVqeloor4rP+isrjRrCQY4so6qH7a+oiKzpK+h+UwUH5fhGj4cW5+jYZ/dW8 w9B7Zc5BfzlbxlCveP8mMDFvJ2/tgEqThgvai9pLz7kYEmUq1VhY9TLQTp6RNhUvJ0U8 /Q/A== X-Gm-Message-State: AKS2vOxN5EEQ0ocC5Ft0FJeFDU6luERGtjUxnbCUH/ggEmp3/Lc2SefD yq4PNTnKEi8lSJ8u7s+CFIYZr1GVsQw7 X-Received: by 10.55.105.133 with SMTP id e127mr25610542qkc.19.1496684706166; Mon, 05 Jun 2017 10:45:06 -0700 (PDT) MIME-Version: 1.0 Received: by 10.55.104.86 with HTTP; Mon, 5 Jun 2017 10:45:05 -0700 (PDT) In-Reply-To: References: <20170604155212.GA8692@gmail.com> From: "H.J. Lu" Date: Mon, 05 Jun 2017 17:45:00 -0000 Message-ID: Subject: Re: RFC: [PATCH] Add warn_if_not_aligned attribute To: Joseph Myers Cc: GCC Patches Content-Type: multipart/mixed; boundary="001a114876d240a32005513a10c4" X-IsSubscribed: yes X-SW-Source: 2017-06/txt/msg00240.txt.bz2 --001a114876d240a32005513a10c4 Content-Type: text/plain; charset="UTF-8" Content-length: 832 On Mon, Jun 5, 2017 at 8:11 AM, Joseph Myers wrote: > The new attribute needs documentation. Should the test be in c-c++-common This feature does support C++. But C++ compiler issues a slightly different warning at a different location. > or does this feature not support C++? > Here is the updated patch with documentation and a C++ test. This patch caused a few testsuite failures: FAIL: gcc.dg/compat/struct-align-1 c_compat_x_tst.o compile /export/gnu/import/git/sources/gcc/gcc/testsuite/gcc.dg/compat//struct-align-1.h:169:1: warning: alignment 1 of 'struct B2_m_inner_p_outer' is less than 16 FAIL: g++.dg/torture/pr80334.C -O0 (test for excess errors) /export/gnu/import/git/sources/gcc/gcc/testsuite/g++.dg/torture/pr80334.C:4:8: warning: alignment 1 of 'B' is less than 16 -- H.J. --001a114876d240a32005513a10c4 Content-Type: text/x-patch; charset="UTF-8"; name="0001-Add-warn_if_not_aligned-attribute.patch" Content-Disposition: attachment; filename="0001-Add-warn_if_not_aligned-attribute.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j3kf5ywv0 Content-length: 26418 RnJvbSBiNDI3YjgyYmY5ZTdlNTEwYTFjMWQ1YTkxYWE4MTk4ZGQ4MDM2MjMy IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhq bC50b29sc0BnbWFpbC5jb20+CkRhdGU6IEZyaSwgMjAgQXByIDIwMTIgMTM6 NDk6MDUgLTA3MDAKU3ViamVjdDogW1BBVENIXSBBZGQgd2Fybl9pZl9ub3Rf YWxpZ25lZCBhdHRyaWJ1dGUKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1U eXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNm ZXItRW5jb2Rpbmc6IDhiaXQKCl9fYXR0cmlidXRlX18oKHdhcm5faWZfbm90 X2FsaWduZWQoTikpKSBpc3N1ZXMgYSB3YXJuaW5nIGlmIHRoZSBmaWVsZApp biBhIHN0cnVjdCBvciB1bmlvbiBpcyBub3QgYWxpZ25lZCB0byBOOgoKdHlw ZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgX191NjQKICBfX2F0dHJpYnV0ZV9f KChhbGlnbmVkKDQpLHdhcm5faWZfbm90X2FsaWduZWQoOCkpKTsKCnN0cnVj dCBmb28KewogIGludCBpMTsKICBpbnQgaTI7CiAgX191NjQgeDsKfTsKCl9f dTY0IGlzIGFsaWduZWQgdG8gNCBieXRlcy4gIEJ1dCBpbnNpZGUgc3RydWN0 IGZvbywgX191NjQgc2hvdWxkIGJlCmFsaWduZWQgYXQgOCBieXRlcy4gIEl0 IGlzIHVzZWQgdG8gZGVmaW5lIHN0cnVjdCBmb28gaW4gc3VjaCBhIHdheSB0 aGF0CnN0cnVjdCBmb28gaGFzIHRoZSBzYW1lIGxheW91dCBhbmQgeCBoYXMg dGhlIHNhbWUgYWxpZ25tZW50IHdoZW4gX191NjQKaXMgYWxpZ25lZCBhdCBl aXRoZXIgNCBvciA4IGJ5dGVzLgoKU2luY2Ugc3RydWN0IGZvbyBpcyBub3Jt YWxseSBhbGlnbmVkIHRvIDQgYnl0ZXMsIGEgd2FybmluZyB3aWxsIGJlIGlz c3VlZDoKCndhcm5pbmc6IGFsaWdubWVudCA0IG9mIOKAmHN0cnVjdCBmb2/i gJkgaXMgbGVzcyB0aGFuIDgKCkFsaWduIHN0cnVjdCBmb28gdG8gOCBieXRl czoKCnN0cnVjdCBmb28KewogIGludCBpMTsKICBpbnQgaTI7CiAgX191NjQg eDsKfSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDgpKSk7CgpzaWxlbmNlcyB0 aGUgd2FybmluZy4gIEl0IGFsc28gd2FybnMgdGhlIGZpZWxkIHdpdGggbWlz YWxpZ25lZCBvZmZzZXQ6CgpzdHJ1Y3QgZm9vCnsKICBpbnQgaTE7CiAgaW50 IGkyOwogIGludCBpMzsKICBfX3U2NCB4Owp9IF9fYXR0cmlidXRlX18oKGFs aWduZWQoOCkpKTsKCndhcm5pbmc6IOKAmHjigJkgb2Zmc2V0IDEyIGluIOKA mHN0cnVjdCBmb2/igJkgaXNuJ3QgYWxpZ25lZCB0byA4CgpUaGUgc2FtZSB3 YXJuaW5nIGlzIGFsc28gaXNzdWVkIHdpdGhvdXQgdGhlIHdhcm5faWZfbm90 X2FsaWduZWQgYXR0cmlidXRlCmZvciB0aGUgZmllbGQgd2l0aCBleHBsaWNp dGx5IHNwZWNpZmllZCBhbGlnbm1lbnQgaW4gYSBwYWNrZWQgc3RydWN0IG9y CnVuaW9uOgoKc3RydWN0IF9fYXR0cmlidXRlX18gKChhbGlnbmVkICg4KSkp IFM4IHsgY2hhciBhWzhdOyB9OwpzdHJ1Y3QgX19hdHRyaWJ1dGVfXyAoKHBh Y2tlZCkpIFMgewogIHN0cnVjdCBTOCBzODsKfTsKCndhcm5pbmc6IGFsaWdu bWVudCAxIG9mIOKAmHN0cnVjdCBT4oCZIGlzIGxlc3MgdGhhbiA4CgpnY2Mv CgoJUFIgYy81MzAzNwoJKiBjLWRlY2wuYyAoZmluaXNoX2VudW0pOiBBbHNv IGNvcHkgVFlQRV9XQVJOX0lGX05PVF9BTElHTi4KCSogcHJpbnQtdHJlZS5j IChwcmludF9ub2RlKTogU3VwcG9ydCBUWVBFX1dBUk5fSUZfTk9UX0FMSUdO LgoJKiBzdG9yLWxheW91dC5jIChoYW5kbGVfd2Fybl9pZl9ub3RfYWxpZ24p OiBOZXcuCgkocGxhY2VfdW5pb25fZmllbGQpOiBDYWxsIGhhbmRsZV93YXJu X2lmX25vdF9hbGlnbi4KCShwbGFjZV9maWVsZCk6IENhbGwgaGFuZGxlX3dh cm5faWZfbm90X2FsaWduLiAgQ29weQoJVFlQRV9XQVJOX0lGX05PVF9BTElH Ti4KCShmaW5pc2hfYnVpbHRpbl9zdHJ1Y3QpOiBDb3B5IFRZUEVfV0FSTl9J Rl9OT1RfQUxJR04uCgkobGF5b3V0X3R5cGUpOiBMaWtld2lzZS4KCSogdHJl ZS5jIChidWlsZF9yYW5nZV90eXBlXzEpOiBMaWtld2lzZS4KCSogdHJlZS1j b3JlLmggKHRyZWVfdHlwZV9jb21tb24pOiBBZGQgd2Fybl9pZl9ub3RfYWxp Z24uICBTZXQKCXNwYXJlIHRvIDE4LgoJKiB0cmVlLmggKFRZUEVfV0FSTl9J Rl9OT1RfQUxJR04pOiBOZXcuCgkoU0VUX1RZUEVfV0FSTl9JRl9OT1RfQUxJ R04pOiBMaWtld2lzZS4KCSogYy1mYW1pbHkvYy1hdHRyaWJzLmMgKGhhbmRs ZV93YXJuX2lmX25vdF9hbGlnbmVkX2F0dHJpYnV0ZSk6IE5ldy4KCShjX2Nv bW1vbl9hdHRyaWJ1dGVfdGFibGUpOiBBZGQgd2Fybl9pZl9ub3RfYWxpZ25l ZC4KCShoYW5kbGVfYWxpZ25lZF9hdHRyaWJ1dGUpOiBSZW5hbWVkIHRvIC4u LgoJKGNvbW1vbl9oYW5kbGVfYWxpZ25lZF9hdHRyaWJ1dGUpOiBSZW1vdmUg YXJndW1lbnQsIG5hbWUsIGFuZCBhZGQKCWFyZ3VtZW50LCB3YXJuX2lmX25v dF9hbGlnbmVkLiAgSGFuZGxlIHdhcm5faWZfbm90X2FsaWduZWQuCgkoaGFu ZGxlX2FsaWduZWRfYXR0cmlidXRlKTogTmV3LgoJKiBjL2MtZGVjbC5jIChm aW5pc2hfZW51bSk6IENvcHkgVFlQRV9XQVJOX0lGX05PVF9BTElHTi4KCSog ZG9jL2V4dGVuZC50ZXhpOiBEb2N1bWVudCB3YXJuX2lmX25vdF9hbGlnbmVk IGF0dHJpYnV0ZS4KCmdjYy90ZXN0c3VpdGUvCgoJUFIgYy81MzAzNwoJKiBn KysuZGcvcHI1MzAzNy0xLkM6IE5ldyB0ZXN0LgoJKiBnY2MuZGcvcHI1MzAz Ny0xLmM6IExpa2V3aXNlLgotLS0KIGdjYy9jLWZhbWlseS9jLWF0dHJpYnMu YyAgICAgICAgIHwgNTUgKysrKysrKysrKysrKysrKysrKysrKystLS0KIGdj Yy9jL2MtZGVjbC5jICAgICAgICAgICAgICAgICAgIHwgIDIgKwogZ2NjL2Rv Yy9leHRlbmQudGV4aSAgICAgICAgICAgICAgfCA1MCArKysrKysrKysrKysr KysrKysrKysrKysKIGdjYy9wcmludC10cmVlLmMgICAgICAgICAgICAgICAg IHwgIDYgKystCiBnY2Mvc3Rvci1sYXlvdXQuYyAgICAgICAgICAgICAgICB8 IDQ1ICsrKysrKysrKysrKysrKysrKysrKwogZ2NjL3Rlc3RzdWl0ZS9nKysu ZGcvcHI1MzAzNy0xLkMgfCA4NCArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCiBnY2MvdGVzdHN1aXRlL2djYy5kZy9wcjUzMDM3 LTEuYyB8IDg0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysKIGdjYy90cmVlLWNvcmUuaCAgICAgICAgICAgICAgICAgIHwgIDMg Ky0KIGdjYy90cmVlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwog Z2NjL3RyZWUuaCAgICAgICAgICAgICAgICAgICAgICAgfCAxMCArKysrKwog MTAgZmlsZXMgY2hhbmdlZCwgMzMxIGluc2VydGlvbnMoKyksIDkgZGVsZXRp b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nKysu ZGcvcHI1MzAzNy0xLkMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1 aXRlL2djYy5kZy9wcjUzMDM3LTEuYwoKZGlmZiAtLWdpdCBhL2djYy9jLWZh bWlseS9jLWF0dHJpYnMuYyBiL2djYy9jLWZhbWlseS9jLWF0dHJpYnMuYwpp bmRleCA2OTVjNThjLi5hNzZmOWY3IDEwMDY0NAotLS0gYS9nY2MvYy1mYW1p bHkvYy1hdHRyaWJzLmMKKysrIGIvZ2NjL2MtZmFtaWx5L2MtYXR0cmlicy5j CkBAIC04NSw2ICs4NSw4IEBAIHN0YXRpYyB0cmVlIGhhbmRsZV9kZXN0cnVj dG9yX2F0dHJpYnV0ZSAodHJlZSAqLCB0cmVlLCB0cmVlLCBpbnQsIGJvb2wg Kik7CiBzdGF0aWMgdHJlZSBoYW5kbGVfbW9kZV9hdHRyaWJ1dGUgKHRyZWUg KiwgdHJlZSwgdHJlZSwgaW50LCBib29sICopOwogc3RhdGljIHRyZWUgaGFu ZGxlX3NlY3Rpb25fYXR0cmlidXRlICh0cmVlICosIHRyZWUsIHRyZWUsIGlu dCwgYm9vbCAqKTsKIHN0YXRpYyB0cmVlIGhhbmRsZV9hbGlnbmVkX2F0dHJp YnV0ZSAodHJlZSAqLCB0cmVlLCB0cmVlLCBpbnQsIGJvb2wgKik7CitzdGF0 aWMgdHJlZSBoYW5kbGVfd2Fybl9pZl9ub3RfYWxpZ25lZF9hdHRyaWJ1dGUg KHRyZWUgKiwgdHJlZSwgdHJlZSwKKwkJCQkJCSAgaW50LCBib29sICopOwog c3RhdGljIHRyZWUgaGFuZGxlX3dlYWtfYXR0cmlidXRlICh0cmVlICosIHRy ZWUsIHRyZWUsIGludCwgYm9vbCAqKSA7CiBzdGF0aWMgdHJlZSBoYW5kbGVf bm9wbHRfYXR0cmlidXRlICh0cmVlICosIHRyZWUsIHRyZWUsIGludCwgYm9v bCAqKSA7CiBzdGF0aWMgdHJlZSBoYW5kbGVfYWxpYXNfaWZ1bmNfYXR0cmli dXRlIChib29sLCB0cmVlICosIHRyZWUsIHRyZWUsIGJvb2wgKik7CkBAIC0y MDgsNiArMjEwLDkgQEAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9zcGVjIGNf Y29tbW9uX2F0dHJpYnV0ZV90YWJsZVtdID0KIAkJCSAgICAgIGhhbmRsZV9z ZWN0aW9uX2F0dHJpYnV0ZSwgZmFsc2UgfSwKICAgeyAiYWxpZ25lZCIsICAg ICAgICAgICAgICAgIDAsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCiAJCQkg ICAgICBoYW5kbGVfYWxpZ25lZF9hdHRyaWJ1dGUsIGZhbHNlIH0sCisgIHsg Indhcm5faWZfbm90X2FsaWduZWQiLCAgICAwLCAxLCBmYWxzZSwgZmFsc2Us IGZhbHNlLAorCQkJICAgICAgaGFuZGxlX3dhcm5faWZfbm90X2FsaWduZWRf YXR0cmlidXRlLAorCQkJICAgICAgZmFsc2UgfSwKICAgeyAid2VhayIsICAg ICAgICAgICAgICAgICAgIDAsIDAsIHRydWUsICBmYWxzZSwgZmFsc2UsCiAJ CQkgICAgICBoYW5kbGVfd2Vha19hdHRyaWJ1dGUsIGZhbHNlIH0sCiAgIHsg Im5vcGx0IiwgICAgICAgICAgICAgICAgICAgMCwgMCwgdHJ1ZSwgIGZhbHNl LCBmYWxzZSwKQEAgLTE1NTgsMTIgKzE1NjMsMTMgQEAgY2hlY2tfY3h4X2Z1 bmRhbWVudGFsX2FsaWdubWVudF9jb25zdHJhaW50cyAodHJlZSBub2RlLAog ICByZXR1cm4gIWFsaWdubWVudF90b29fbGFyZ2VfcDsKIH0KIAotLyogSGFu ZGxlIGEgImFsaWduZWQiIGF0dHJpYnV0ZTsgYXJndW1lbnRzIGFzIGluCi0g ICBzdHJ1Y3QgYXR0cmlidXRlX3NwZWMuaGFuZGxlci4gICovCisvKiBDb21t b24gY29kZXMgc2hhcmVkIGJ5IGhhbmRsZV93YXJuX2lmX25vdF9hbGlnbmVk X2F0dHJpYnV0ZSBhbmQKKyAgIGhhbmRsZV9hbGlnbmVkX2F0dHJpYnV0ZS4g ICovCiAKIHN0YXRpYyB0cmVlCi1oYW5kbGVfYWxpZ25lZF9hdHRyaWJ1dGUg KHRyZWUgKm5vZGUsIHRyZWUgQVJHX1VOVVNFRCAobmFtZSksIHRyZWUgYXJn cywKLQkJCSAgaW50IGZsYWdzLCBib29sICpub19hZGRfYXR0cnMpCitjb21t b25faGFuZGxlX2FsaWduZWRfYXR0cmlidXRlICh0cmVlICpub2RlLCB0cmVl IGFyZ3MsIGludCBmbGFncywKKwkJCQkgYm9vbCAqbm9fYWRkX2F0dHJzLAor CQkJCSBib29sIHdhcm5faWZfbm90X2FsaWduZWQpCiB7CiAgIHRyZWUgZGVj bCA9IE5VTExfVFJFRTsKICAgdHJlZSAqdHlwZSA9IE5VTEw7CkBAIC0xNjEy LDggKzE2MTgsMTYgQEAgaGFuZGxlX2FsaWduZWRfYXR0cmlidXRlICh0cmVl ICpub2RlLCB0cmVlIEFSR19VTlVTRUQgKG5hbWUpLCB0cmVlIGFyZ3MsCiAg ICAgICBlbHNlCiAJKnR5cGUgPSBidWlsZF92YXJpYW50X3R5cGVfY29weSAo KnR5cGUpOwogCi0gICAgICBTRVRfVFlQRV9BTElHTiAoKnR5cGUsICgxVSA8 PCBpKSAqIEJJVFNfUEVSX1VOSVQpOwotICAgICAgVFlQRV9VU0VSX0FMSUdO ICgqdHlwZSkgPSAxOworICAgICAgaWYgKHdhcm5faWZfbm90X2FsaWduZWQp CisJeworCSAgU0VUX1RZUEVfV0FSTl9JRl9OT1RfQUxJR04gKCp0eXBlLCAo MVUgPDwgaSkgKiBCSVRTX1BFUl9VTklUKTsKKwkgIHdhcm5faWZfbm90X2Fs aWduZWQgPSBmYWxzZTsKKwl9CisgICAgICBlbHNlCisJeworCSAgU0VUX1RZ UEVfQUxJR04gKCp0eXBlLCAoMVUgPDwgaSkgKiBCSVRTX1BFUl9VTklUKTsK KwkgIFRZUEVfVVNFUl9BTElHTiAoKnR5cGUpID0gMTsKKwl9CiAgICAgfQog ICBlbHNlIGlmICghIFZBUl9PUl9GVU5DVElPTl9ERUNMX1AgKGRlY2wpCiAJ ICAgJiYgVFJFRV9DT0RFIChkZWNsKSAhPSBGSUVMRF9ERUNMKQpAQCAtMTY1 MCw5ICsxNjY0LDM4IEBAIGhhbmRsZV9hbGlnbmVkX2F0dHJpYnV0ZSAodHJl ZSAqbm9kZSwgdHJlZSBBUkdfVU5VU0VEIChuYW1lKSwgdHJlZSBhcmdzLAog ICAgICAgREVDTF9VU0VSX0FMSUdOIChkZWNsKSA9IDE7CiAgICAgfQogCisg IGlmICh3YXJuX2lmX25vdF9hbGlnbmVkKQorICAgIHsKKyAgICAgIGVycm9y ICgid2Fybl9pZl9ub3RfYWxpZ25lZCBtYXkgbm90IGJlIHNwZWNpZmllZCBm b3IgJXErRCIsIGRlY2wpOworICAgICAgKm5vX2FkZF9hdHRycyA9IHRydWU7 CisgICAgfQorCiAgIHJldHVybiBOVUxMX1RSRUU7CiB9CiAKKy8qIEhhbmRs ZSBhICJhbGlnbmVkIiBhdHRyaWJ1dGU7IGFyZ3VtZW50cyBhcyBpbgorICAg c3RydWN0IGF0dHJpYnV0ZV9zcGVjLmhhbmRsZXIuICAqLworCitzdGF0aWMg dHJlZQoraGFuZGxlX2FsaWduZWRfYXR0cmlidXRlICh0cmVlICpub2RlLCB0 cmVlIEFSR19VTlVTRUQgKG5hbWUpLCB0cmVlIGFyZ3MsCisJCQkgIGludCBm bGFncywgYm9vbCAqbm9fYWRkX2F0dHJzKQoreworICByZXR1cm4gY29tbW9u X2hhbmRsZV9hbGlnbmVkX2F0dHJpYnV0ZSAobm9kZSwgYXJncywgZmxhZ3Ms CisJCQkJCSBub19hZGRfYXR0cnMsIGZhbHNlKTsKK30KKworLyogSGFuZGxl IGEgIndhcm5faWZfbm90X2FsaWduZWQiIGF0dHJpYnV0ZTsgYXJndW1lbnRz IGFzIGluCisgICBzdHJ1Y3QgYXR0cmlidXRlX3NwZWMuaGFuZGxlci4gICov CisKK3N0YXRpYyB0cmVlCitoYW5kbGVfd2Fybl9pZl9ub3RfYWxpZ25lZF9h dHRyaWJ1dGUgKHRyZWUgKm5vZGUsIHRyZWUgQVJHX1VOVVNFRCAobmFtZSks CisJCQkJICAgICAgdHJlZSBhcmdzLCBpbnQgZmxhZ3MsCisJCQkJICAgICAg Ym9vbCAqbm9fYWRkX2F0dHJzKQoreworICByZXR1cm4gY29tbW9uX2hhbmRs ZV9hbGlnbmVkX2F0dHJpYnV0ZSAobm9kZSwgYXJncywgZmxhZ3MsCisJCQkJ CSAgbm9fYWRkX2F0dHJzLCB0cnVlKTsKK30KKwogLyogSGFuZGxlIGEgIndl YWsiIGF0dHJpYnV0ZTsgYXJndW1lbnRzIGFzIGluCiAgICBzdHJ1Y3QgYXR0 cmlidXRlX3NwZWMuaGFuZGxlci4gICovCiAKZGlmZiAtLWdpdCBhL2djYy9j L2MtZGVjbC5jIGIvZ2NjL2MvYy1kZWNsLmMKaW5kZXggZjJiODA5Ni4uZjI3 MzU2YiAxMDA2NDQKLS0tIGEvZ2NjL2MvYy1kZWNsLmMKKysrIGIvZ2NjL2Mv Yy1kZWNsLmMKQEAgLTgzNjMsNiArODM2Myw4IEBAIGZpbmlzaF9lbnVtICh0 cmVlIGVudW10eXBlLCB0cmVlIHZhbHVlcywgdHJlZSBhdHRyaWJ1dGVzKQog ICAgICAgVFlQRV9QUkVDSVNJT04gKHRlbSkgPSBUWVBFX1BSRUNJU0lPTiAo ZW51bXR5cGUpOwogICAgICAgU0VUX1RZUEVfQUxJR04gKHRlbSwgVFlQRV9B TElHTiAoZW51bXR5cGUpKTsKICAgICAgIFRZUEVfVVNFUl9BTElHTiAodGVt KSA9IFRZUEVfVVNFUl9BTElHTiAoZW51bXR5cGUpOworICAgICAgU0VUX1RZ UEVfV0FSTl9JRl9OT1RfQUxJR04gKHRlbSwKKwkJCQkgIFRZUEVfV0FSTl9J Rl9OT1RfQUxJR04gKGVudW10eXBlKSk7CiAgICAgICBUWVBFX1VOU0lHTkVE ICh0ZW0pID0gVFlQRV9VTlNJR05FRCAoZW51bXR5cGUpOwogICAgICAgVFlQ RV9MQU5HX1NQRUNJRklDICh0ZW0pID0gVFlQRV9MQU5HX1NQRUNJRklDIChl bnVtdHlwZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvZ2NjL2RvYy9leHRlbmQu dGV4aSBiL2djYy9kb2MvZXh0ZW5kLnRleGkKaW5kZXggNjBhMWEzZi4uMDA2 M2RmMiAxMDA2NDQKLS0tIGEvZ2NjL2RvYy9leHRlbmQudGV4aQorKysgYi9n Y2MvZG9jL2V4dGVuZC50ZXhpCkBAIC01Njc3LDYgKzU2NzcsNTYgQEAgYWxp Z25tZW50LiAgU2VlIHlvdXIgbGlua2VyIGRvY3VtZW50YXRpb24gZm9yIGZ1 cnRoZXIgaW5mb3JtYXRpb24uCiBUaGUgQGNvZGV7YWxpZ25lZH0gYXR0cmli dXRlIGNhbiBhbHNvIGJlIHVzZWQgZm9yIGZ1bmN0aW9ucwogKEBweHJlZntD b21tb24gRnVuY3Rpb24gQXR0cmlidXRlc30uKQogCitAY2luZGV4IEBjb2Rl e3dhcm5faWZfbm90X2FsaWduZWR9IHZhcmlhYmxlIGF0dHJpYnV0ZQorQGl0 ZW0gd2Fybl9pZl9ub3RfYWxpZ25lZCAoQHZhcnthbGlnbm1lbnR9KQorVGhp cyBhdHRyaWJ1dGUgc3BlY2lmaWVzIGEgdGhyZXNob2xkIGZvciB0aGUgc3Ry dWN0dXJlIGZpZWxkLCBtZWFzdXJlZAoraW4gYnl0ZXMuICBJZiB0aGUgc3Ry dWN0dXJlIGZpZWxkIGlzIGFsaWduZWQgYmVsb3cgdGhlIHRocmVzaG9sZCwg YQord2FybmluZyB3aWxsIGJlIGlzc3VlZC4gIEZvciBleGFtcGxlLCB0aGUg ZGVjbGFyYXRpb246CisKK0BzbWFsbGV4YW1wbGUKK3R5cGVkZWYgdW5zaWdu ZWQgbG9uZyBsb25nIF9fdTY0CisgICBfX2F0dHJpYnV0ZV9fKChhbGlnbmVk KDQpLHdhcm5faWZfbm90X2FsaWduZWQoOCkpKTsKKworc3RydWN0IGZvbwor QHsKKyAgaW50IGkxOworICBpbnQgaTI7CisgIF9fdTY0IHg7CitAfTsKK0Bl bmQgc21hbGxleGFtcGxlCisKK0Bub2luZGVudAorY2F1c2VzIHRoZSBjb21w aWxlciB0byBpc3N1ZSBhbiB3YXJuaW5nIG9uIEBjb2Rle3N0cnVjdCBmb299 LCBsaWtlCitAY29kZXt3YXJuaW5nOiBhbGlnbm1lbnQgNCBvZiAnc3RydWN0 IGZvbycgaXMgbGVzcyB0aGFuIDh9LgorSXQgaXMgdXNlZCB0byBkZWZpbmUg QGNvZGV7c3RydWN0IGZvb30gaW4gc3VjaCBhIHdheSB0aGF0CitAY29kZXtz dHJ1Y3QgZm9vfSBoYXMgdGhlIHNhbWUgbGF5b3V0IGFuZCB0aGUgc3RydWN0 dXJlIGZpZWxkIEBjb2Rle3h9CitoYXMgdGhlIHNhbWUgYWxpZ25tZW50IHdo ZW4gQGNvZGV7X191NjR9IGlzIGFsaWduZWQgYXQgZWl0aGVyIDQgb3IKKzgg Ynl0ZXMuICBBbGlnbiBAY29kZXtzdHJ1Y3QgZm9vfSB0byA4IGJ5dGVzOgor CitAc21hbGxleGFtcGxlCitzdHJ1Y3QgZm9vCitAeworICBpbnQgaTE7Cisg IGludCBpMjsKKyAgX191NjQgeDsKK0B9IF9fYXR0cmlidXRlX18oKGFsaWdu ZWQoOCkpKTsKK0BlbmQgc21hbGxleGFtcGxlCisKK0Bub2luZGVudAorc2ls ZW5jZXMgdGhlIHdhcm5pbmcuICBUaGUgY29tcGlsZXIgYWxzbyBpc3N1ZXMg YSB3YXJuaW5nLCBsaWtlCitAY29kZXt3YXJuaW5nOiAneCcgb2Zmc2V0IDEy IGluICdzdHJ1Y3QgZm9vJyBpc24ndCBhbGlnbmVkIHRvIDh9LAord2hlbiB0 aGUgc3RydWN0dXJlIGZpZWxkIGhhcyB0aGUgbWlzYWxpZ25lZCBvZmZzZXQ6 CisKK0BzbWFsbGV4YW1wbGUKK3N0cnVjdCBmb28KK0B7CisgIGludCBpMTsK KyAgaW50IGkyOworICBpbnQgaTM7CisgIF9fdTY0IHg7CitAfSBfX2F0dHJp YnV0ZV9fKChhbGlnbmVkKDgpKSk7CitAZW5kIHNtYWxsZXhhbXBsZQorCiBA aXRlbSBjbGVhbnVwIChAdmFye2NsZWFudXBfZnVuY3Rpb259KQogQGNpbmRl eCBAY29kZXtjbGVhbnVwfSB2YXJpYWJsZSBhdHRyaWJ1dGUKIFRoZSBAY29k ZXtjbGVhbnVwfSBhdHRyaWJ1dGUgcnVucyBhIGZ1bmN0aW9uIHdoZW4gdGhl IHZhcmlhYmxlIGdvZXMKZGlmZiAtLWdpdCBhL2djYy9wcmludC10cmVlLmMg Yi9nY2MvcHJpbnQtdHJlZS5jCmluZGV4IGVhMjZhMGIuLjdiNTNjNDkgMTAw NjQ0Ci0tLSBhL2djYy9wcmludC10cmVlLmMKKysrIGIvZ2NjL3ByaW50LXRy ZWUuYwpAQCAtNjAzLDggKzYwMywxMCBAQCBwcmludF9ub2RlIChGSUxFICpm aWxlLCBjb25zdCBjaGFyICpwcmVmaXgsIHRyZWUgbm9kZSwgaW50IGluZGVu dCwKICAgICAgIGlmIChUWVBFX1VTRVJfQUxJR04gKG5vZGUpKQogCWZwcmlu dGYgKGZpbGUsICIgdXNlciIpOwogCi0gICAgICBmcHJpbnRmIChmaWxlLCAi IGFsaWduICVkIHN5bXRhYiAlZCBhbGlhcyBzZXQgIiBIT1NUX1dJREVfSU5U X1BSSU5UX0RFQywKLQkgICAgICAgVFlQRV9BTElHTiAobm9kZSksIFRZUEVf U1lNVEFCX0FERFJFU1MgKG5vZGUpLAorICAgICAgZnByaW50ZiAoZmlsZSwg IiBhbGlnbiAlZCB3YXJuX2lmX25vdF9hbGlnbiAlZCBzeW10YWIgJWQgYWxp YXMgc2V0ICIKKwkgICAgICAgSE9TVF9XSURFX0lOVF9QUklOVF9ERUMsCisJ ICAgICAgIFRZUEVfQUxJR04gKG5vZGUpLCBUWVBFX1dBUk5fSUZfTk9UX0FM SUdOIChub2RlKSwKKwkgICAgICAgVFlQRV9TWU1UQUJfQUREUkVTUyAobm9k ZSksCiAJICAgICAgIChIT1NUX1dJREVfSU5UKSBUWVBFX0FMSUFTX1NFVCAo bm9kZSkpOwogCiAgICAgICBpZiAoVFlQRV9TVFJVQ1RVUkFMX0VRVUFMSVRZ X1AgKG5vZGUpKQpkaWZmIC0tZ2l0IGEvZ2NjL3N0b3ItbGF5b3V0LmMgYi9n Y2Mvc3Rvci1sYXlvdXQuYwppbmRleCAxNTc0ZTQzLi4yODI0OWJjIDEwMDY0 NAotLS0gYS9nY2Mvc3Rvci1sYXlvdXQuYworKysgYi9nY2Mvc3Rvci1sYXlv dXQuYwpAQCAtMTA3NCw2ICsxMDc0LDM4IEBAIHVwZGF0ZV9hbGlnbm1lbnRf Zm9yX2ZpZWxkIChyZWNvcmRfbGF5b3V0X2luZm8gcmxpLCB0cmVlIGZpZWxk LAogICByZXR1cm4gZGVzaXJlZF9hbGlnbjsKIH0KIAorc3RhdGljIHZvaWQK K2hhbmRsZV93YXJuX2lmX25vdF9hbGlnbiAodHJlZSBmaWVsZCwgdW5zaWdu ZWQgaW50IHJlY29yZF9hbGlnbikKK3sKKyAgdHJlZSB0eXBlID0gVFJFRV9U WVBFIChmaWVsZCk7CisKKyAgaWYgKHR5cGUgPT0gZXJyb3JfbWFya19ub2Rl KQorICAgIHJldHVybjsKKworICB1bnNpZ25lZCBpbnQgd2Fybl9pZl9ub3Rf YWxpZ24gPSBUWVBFX1dBUk5fSUZfTk9UX0FMSUdOICh0eXBlKTsKKworICBp ZiAoIXdhcm5faWZfbm90X2FsaWduICYmIFRZUEVfVVNFUl9BTElHTiAodHlw ZSkpCisgICAgd2Fybl9pZl9ub3RfYWxpZ24gPSBUWVBFX0FMSUdOICh0eXBl KTsKKworICBpZiAoIXdhcm5faWZfbm90X2FsaWduKQorICAgIHJldHVybjsK KworICB0cmVlIGNvbnRleHQgPSBERUNMX0NPTlRFWFQgKGZpZWxkKTsKKwor ICB3YXJuX2lmX25vdF9hbGlnbiAvPSBCSVRTX1BFUl9VTklUOworICByZWNv cmRfYWxpZ24gLz0gQklUU19QRVJfVU5JVDsKKyAgaWYgKChyZWNvcmRfYWxp Z24gJSB3YXJuX2lmX25vdF9hbGlnbikgIT0gMCkKKyAgICB3YXJuaW5nICgw LCAiYWxpZ25tZW50ICVkIG9mICVxVCBpcyBsZXNzIHRoYW4gJWQiLAorCSAg ICAgcmVjb3JkX2FsaWduLCBjb250ZXh0LCB3YXJuX2lmX25vdF9hbGlnbik7 CisKKyAgdW5zaWduZWQgaW50IG9mZgorICAgID0gKHRyZWVfdG9fdWh3aSAo REVDTF9GSUVMRF9PRkZTRVQgKGZpZWxkKSkKKyAgICAgICArIHRyZWVfdG9f dWh3aSAoREVDTF9GSUVMRF9CSVRfT0ZGU0VUIChmaWVsZCkpIC8gQklUU19Q RVJfVU5JVCk7CisgIGlmICgob2ZmICUgd2Fybl9pZl9ub3RfYWxpZ24pICE9 IDApCisgICAgd2FybmluZyAoMCwgIiVxK0Qgb2Zmc2V0ICVkIGluICVxVCBp c24ndCBhbGlnbmVkIHRvICVkIiwKKwkgICAgIGZpZWxkLCBvZmYsIGNvbnRl eHQsIHdhcm5faWZfbm90X2FsaWduKTsKK30KKwogLyogQ2FsbGVkIGZyb20g cGxhY2VfZmllbGQgdG8gaGFuZGxlIHVuaW9ucy4gICovCiAKIHN0YXRpYyB2 b2lkCkBAIC0xMDg0LDYgKzExMTYsNyBAQCBwbGFjZV91bmlvbl9maWVsZCAo cmVjb3JkX2xheW91dF9pbmZvIHJsaSwgdHJlZSBmaWVsZCkKICAgREVDTF9G SUVMRF9PRkZTRVQgKGZpZWxkKSA9IHNpemVfemVyb19ub2RlOwogICBERUNM X0ZJRUxEX0JJVF9PRkZTRVQgKGZpZWxkKSA9IGJpdHNpemVfemVyb19ub2Rl OwogICBTRVRfREVDTF9PRkZTRVRfQUxJR04gKGZpZWxkLCBCSUdHRVNUX0FM SUdOTUVOVCk7CisgIGhhbmRsZV93YXJuX2lmX25vdF9hbGlnbiAoZmllbGQs IHJsaS0+cmVjb3JkX2FsaWduKTsKIAogICAvKiBJZiB0aGlzIGlzIGFuIEVS Uk9SX01BUksgcmV0dXJuICphZnRlciogaGF2aW5nIHNldCB0aGUKICAgICAg ZmllbGQgYXQgdGhlIHN0YXJ0IG9mIHRoZSB1bmlvbi4gVGhpcyBoZWxwcyB3 aGVuIHBhcnNpbmcKQEAgLTExNjksNiArMTIwMiw3IEBAIHBsYWNlX2ZpZWxk IChyZWNvcmRfbGF5b3V0X2luZm8gcmxpLCB0cmVlIGZpZWxkKQogICAgICAg REVDTF9GSUVMRF9PRkZTRVQgKGZpZWxkKSA9IHJsaS0+b2Zmc2V0OwogICAg ICAgREVDTF9GSUVMRF9CSVRfT0ZGU0VUIChmaWVsZCkgPSBybGktPmJpdHBv czsKICAgICAgIFNFVF9ERUNMX09GRlNFVF9BTElHTiAoZmllbGQsIHJsaS0+ b2Zmc2V0X2FsaWduKTsKKyAgICAgIGhhbmRsZV93YXJuX2lmX25vdF9hbGln biAoZmllbGQsIHJsaS0+cmVjb3JkX2FsaWduKTsKICAgICAgIHJldHVybjsK ICAgICB9CiAKQEAgLTEyOTAsNiArMTMyNCw5IEBAIHBsYWNlX2ZpZWxkIChy ZWNvcmRfbGF5b3V0X2luZm8gcmxpLCB0cmVlIGZpZWxkKQogCiAgICAgICBp ZiAoISBERUNMX1BBQ0tFRCAoZmllbGQpKQogCVRZUEVfVVNFUl9BTElHTiAo cmxpLT50KSB8PSBUWVBFX1VTRVJfQUxJR04gKHR5cGUpOworCisgICAgICBT RVRfVFlQRV9XQVJOX0lGX05PVF9BTElHTiAocmxpLT50LAorCQkJCSAgVFlQ RV9XQVJOX0lGX05PVF9BTElHTiAodHlwZSkpOwogICAgIH0KIAogI2lmZGVm IEJJVEZJRUxEX05CWVRFU19MSU1JVEVECkBAIC0xMzI4LDYgKzEzNjUsOCBA QCBwbGFjZV9maWVsZCAocmVjb3JkX2xheW91dF9pbmZvIHJsaSwgdHJlZSBm aWVsZCkKIAlybGktPmJpdHBvcyA9IHJvdW5kX3VwIChybGktPmJpdHBvcywg dHlwZV9hbGlnbik7CiAKICAgICAgIFRZUEVfVVNFUl9BTElHTiAocmxpLT50 KSB8PSBUWVBFX1VTRVJfQUxJR04gKHR5cGUpOworICAgICAgU0VUX1RZUEVf V0FSTl9JRl9OT1RfQUxJR04gKHJsaS0+dCwKKwkJCQkgIFRZUEVfV0FSTl9J Rl9OT1RfQUxJR04gKHR5cGUpKTsKICAgICB9CiAjZW5kaWYKIApAQCAtMTQ3 OCw2ICsxNTE3LDcgQEAgcGxhY2VfZmllbGQgKHJlY29yZF9sYXlvdXRfaW5m byBybGksIHRyZWUgZmllbGQpCiAgIERFQ0xfRklFTERfT0ZGU0VUIChmaWVs ZCkgPSBybGktPm9mZnNldDsKICAgREVDTF9GSUVMRF9CSVRfT0ZGU0VUIChm aWVsZCkgPSBybGktPmJpdHBvczsKICAgU0VUX0RFQ0xfT0ZGU0VUX0FMSUdO IChmaWVsZCwgcmxpLT5vZmZzZXRfYWxpZ24pOworICBoYW5kbGVfd2Fybl9p Zl9ub3RfYWxpZ24gKGZpZWxkLCBybGktPnJlY29yZF9hbGlnbik7CiAKICAg LyogRXZhbHVhdGUgbm9uY29uc3RhbnQgb2Zmc2V0cyBvbmx5IG9uY2UsIGVp dGhlciBub3cgb3IgYXMgc29vbiBhcyBzYWZlLiAgKi8KICAgaWYgKFRSRUVf Q09ERSAoREVDTF9GSUVMRF9PRkZTRVQgKGZpZWxkKSkgIT0gSU5URUdFUl9D U1QpCkBAIC0yMDg4LDYgKzIxMjgsOCBAQCBmaW5pc2hfYnVpbHRpbl9zdHJ1 Y3QgKHRyZWUgdHlwZSwgY29uc3QgY2hhciAqbmFtZSwgdHJlZSBmaWVsZHMs CiAgICAgewogICAgICAgU0VUX1RZUEVfQUxJR04gKHR5cGUsIFRZUEVfQUxJ R04gKGFsaWduX3R5cGUpKTsKICAgICAgIFRZUEVfVVNFUl9BTElHTiAodHlw ZSkgPSBUWVBFX1VTRVJfQUxJR04gKGFsaWduX3R5cGUpOworICAgICAgU0VU X1RZUEVfV0FSTl9JRl9OT1RfQUxJR04gKHR5cGUsCisJCQkJICBUWVBFX1dB Uk5fSUZfTk9UX0FMSUdOIChhbGlnbl90eXBlKSk7CiAgICAgfQogCiAgIGxh eW91dF90eXBlICh0eXBlKTsKQEAgLTIzMjQsNiArMjM2Niw5IEBAIGxheW91 dF90eXBlICh0cmVlIHR5cGUpCiAJICBhbGlnbiA9IE1BWCAoYWxpZ24sIFRZ UEVfQUxJR04gKHR5cGUpKTsKIAllbHNlCiAJICBUWVBFX1VTRVJfQUxJR04g KHR5cGUpID0gVFlQRV9VU0VSX0FMSUdOIChlbGVtZW50KTsKKwlpZiAoIVRZ UEVfV0FSTl9JRl9OT1RfQUxJR04gKHR5cGUpKQorCSAgU0VUX1RZUEVfV0FS Tl9JRl9OT1RfQUxJR04gKHR5cGUsCisJCQkJICAgICAgVFlQRV9XQVJOX0lG X05PVF9BTElHTiAoZWxlbWVudCkpOwogI2lmZGVmIFJPVU5EX1RZUEVfQUxJ R04KIAlhbGlnbiA9IFJPVU5EX1RZUEVfQUxJR04gKHR5cGUsIGFsaWduLCBC SVRTX1BFUl9VTklUKTsKICNlbHNlCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1 aXRlL2crKy5kZy9wcjUzMDM3LTEuQyBiL2djYy90ZXN0c3VpdGUvZysrLmRn L3ByNTMwMzctMS5DCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmQwNWZlNzIKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRl L2crKy5kZy9wcjUzMDM3LTEuQwpAQCAtMCwwICsxLDg0IEBACisvKiBQUiBj LzUzMDM3LiAgKi8KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRn LW9wdGlvbnMgIi1PMCIgfSAqLworCit0eXBlZGVmIHVuc2lnbmVkIGxvbmcg bG9uZyBfX3U2NAorICBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDQpLHdhcm5f aWZfbm90X2FsaWduZWQoOCkpKTsKKworc3RydWN0IGZvbzEgLyogeyBkZy13 YXJuaW5nICJhbGlnbm1lbnQgNCBvZiAnZm9vMScgaXMgbGVzcyB0aGFuIDgi IH0gKi8KK3sKKyAgaW50IGkxOworICBpbnQgaTI7CisgIGludCBpMzsKKyAg X191NjQgeDsgLyogeyBkZy13YXJuaW5nICInZm9vMTo6eCcgb2Zmc2V0IDEy IGluICdmb28xJyBpc24ndCBhbGlnbmVkIHRvIDgiIH0gKi8KK307CisKK3N0 cnVjdCBmb28yCit7CisgIGludCBpMTsKKyAgaW50IGkyOworICBpbnQgaTM7 CisgIF9fdTY0IHg7IC8qIHsgZGctd2FybmluZyAiJ2ZvbzI6OngnIG9mZnNl dCAxMiBpbiAnZm9vMicgaXNuJ3QgYWxpZ25lZCB0byA4IiB9ICovCit9IF9f YXR0cmlidXRlX18oKGFsaWduZWQoOCkpKTsKKworc3RydWN0IGZvbzMgLyog eyBkZy13YXJuaW5nICJhbGlnbm1lbnQgNCBvZiAnZm9vMycgaXMgbGVzcyB0 aGFuIDgiIH0gKi8KK3sKKyAgaW50IGkxOworICBpbnQgaTM7CisgIF9fdTY0 IHg7Cit9OworCitzdHJ1Y3QgZm9vNAoreworICBpbnQgaTE7CisgIGludCBp MjsKKyAgX191NjQgeDsKK30gX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg4KSkp OworCit1bmlvbiBiYXIxIC8qIHsgZGctd2FybmluZyAiYWxpZ25tZW50IDQg b2YgJ2JhcjEnIGlzIGxlc3MgdGhhbiA4IiB9ICovCit7CisgIGludCBpMTsK KyAgaW50IGkzOworICBfX3U2NCB4OworfTsKKwordW5pb24gYmFyMgorewor ICBpbnQgaTE7CisgIGludCBpMzsKKyAgX191NjQgeDsKK30gX19hdHRyaWJ1 dGVfXygoYWxpZ25lZCg4KSkpOworCitzdHJ1Y3QgX19hdHRyaWJ1dGVfXyAo KGFsaWduZWQgKDgpKSkgUzggeyBjaGFyIGFbOF07IH07CitzdHJ1Y3QgX19h dHRyaWJ1dGVfXyAoKHBhY2tlZCkpIFMxIHsgLyogeyBkZy13YXJuaW5nICJh bGlnbm1lbnQgMSBvZiAnUzEnIGlzIGxlc3MgdGhhbiA4IiB9ICovCisgIHN0 cnVjdCBTOCBzODsKK307CisKK3N0cnVjdCBfX2F0dHJpYnV0ZV9fICgocGFj a2VkLCBhbGlnbmVkICg4KSkpIFMyIHsKKyAgc3RydWN0IFM4IHM4OworfTsK Kworc3RydWN0IF9fYXR0cmlidXRlX18gKChwYWNrZWQsIGFsaWduZWQgKDgp KSkgUzMgeworICBpbnQgaTE7CisgIHN0cnVjdCBTOCBzODsgLyogeyBkZy13 YXJuaW5nICInUzM6OnM4JyBvZmZzZXQgNCBpbiAnUzMnIGlzbid0IGFsaWdu ZWQgdG8gOCIgfSAqLworfTsKKworc3RydWN0IF9fYXR0cmlidXRlX18gKChw YWNrZWQsIGFsaWduZWQgKDgpKSkgUzQgeworICBpbnQgaTE7CisgIGludCBp MjsKKyAgc3RydWN0IFM4IHM4OworfTsKKworc3RydWN0IF9fYXR0cmlidXRl X18gKChwYWNrZWQpKSBTNSB7CisgICBsb25nIGxvbmcgbGw7Cit9OworCit1 bmlvbiBfX2F0dHJpYnV0ZV9fICgocGFja2VkKSkgVTEgeyAvKiB7IGRnLXdh cm5pbmcgImFsaWdubWVudCAxIG9mICdVMScgaXMgbGVzcyB0aGFuIDgiIH0g Ki8KKyAgaW50IGkxOworICBzdHJ1Y3QgUzggczg7Cit9OworCit1bmlvbiBf X2F0dHJpYnV0ZV9fICgocGFja2VkLCBhbGlnbmVkICg4KSkpIFUyIHsKKyAg aW50IGkxOworICBzdHJ1Y3QgUzggczg7Cit9OwpkaWZmIC0tZ2l0IGEvZ2Nj L3Rlc3RzdWl0ZS9nY2MuZGcvcHI1MzAzNy0xLmMgYi9nY2MvdGVzdHN1aXRl L2djYy5kZy9wcjUzMDM3LTEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi5hMjA1NTc5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MuZGcvcHI1MzAzNy0xLmMKQEAgLTAsMCArMSw4NCBAQAor LyogUFIgYy81MzAzNy4gICovCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwor LyogeyBkZy1vcHRpb25zICItTzAiIH0gKi8KKwordHlwZWRlZiB1bnNpZ25l ZCBsb25nIGxvbmcgX191NjQKKyAgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg0 KSx3YXJuX2lmX25vdF9hbGlnbmVkKDgpKSk7CisKK3N0cnVjdCBmb28xCit7 CisgIGludCBpMTsKKyAgaW50IGkyOworICBpbnQgaTM7CisgIF9fdTY0IHg7 IC8qIHsgZGctd2FybmluZyAiJ3gnIG9mZnNldCAxMiBpbiAnc3RydWN0IGZv bzEnIGlzbid0IGFsaWduZWQgdG8gOCIgfSAqLworfTsgLyogeyBkZy13YXJu aW5nICJhbGlnbm1lbnQgNCBvZiAnc3RydWN0IGZvbzEnIGlzIGxlc3MgdGhh biA4IiB9ICovCisKK3N0cnVjdCBmb28yCit7CisgIGludCBpMTsKKyAgaW50 IGkyOworICBpbnQgaTM7CisgIF9fdTY0IHg7IC8qIHsgZGctd2FybmluZyAi J3gnIG9mZnNldCAxMiBpbiAnc3RydWN0IGZvbzInIGlzbid0IGFsaWduZWQg dG8gOCIgfSAqLworfSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDgpKSk7CisK K3N0cnVjdCBmb28zCit7CisgIGludCBpMTsKKyAgaW50IGkzOworICBfX3U2 NCB4OworfTsgLyogeyBkZy13YXJuaW5nICJhbGlnbm1lbnQgNCBvZiAnc3Ry dWN0IGZvbzMnIGlzIGxlc3MgdGhhbiA4IiB9ICovCisKK3N0cnVjdCBmb280 Cit7CisgIGludCBpMTsKKyAgaW50IGkyOworICBfX3U2NCB4OworfSBfX2F0 dHJpYnV0ZV9fKChhbGlnbmVkKDgpKSk7CisKK3VuaW9uIGJhcjEKK3sKKyAg aW50IGkxOworICBpbnQgaTM7CisgIF9fdTY0IHg7Cit9OyAvKiB7IGRnLXdh cm5pbmcgImFsaWdubWVudCA0IG9mICd1bmlvbiBiYXIxJyBpcyBsZXNzIHRo YW4gOCIgfSAqLworCit1bmlvbiBiYXIyCit7CisgIGludCBpMTsKKyAgaW50 IGkzOworICBfX3U2NCB4OworfSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDgp KSk7CisKK3N0cnVjdCBfX2F0dHJpYnV0ZV9fICgoYWxpZ25lZCAoOCkpKSBT OCB7IGNoYXIgYVs4XTsgfTsKK3N0cnVjdCBfX2F0dHJpYnV0ZV9fICgocGFj a2VkKSkgUzEgeworICBzdHJ1Y3QgUzggczg7Cit9OyAvKiB7IGRnLXdhcm5p bmcgImFsaWdubWVudCAxIG9mICdzdHJ1Y3QgUzEnIGlzIGxlc3MgdGhhbiA4 IiB9ICovCisKK3N0cnVjdCBfX2F0dHJpYnV0ZV9fICgocGFja2VkLCBhbGln bmVkICg4KSkpIFMyIHsKKyAgc3RydWN0IFM4IHM4OworfTsKKworc3RydWN0 IF9fYXR0cmlidXRlX18gKChwYWNrZWQsIGFsaWduZWQgKDgpKSkgUzMgewor ICBpbnQgaTE7CisgIHN0cnVjdCBTOCBzODsgLyogeyBkZy13YXJuaW5nICIn czgnIG9mZnNldCA0IGluICdzdHJ1Y3QgUzMnIGlzbid0IGFsaWduZWQgdG8g OCIgfSAqLworfTsKKworc3RydWN0IF9fYXR0cmlidXRlX18gKChwYWNrZWQs IGFsaWduZWQgKDgpKSkgUzQgeworICBpbnQgaTE7CisgIGludCBpMjsKKyAg c3RydWN0IFM4IHM4OworfTsKKworc3RydWN0IF9fYXR0cmlidXRlX18gKChw YWNrZWQpKSBTNSB7CisgICBsb25nIGxvbmcgbGw7Cit9OworCit1bmlvbiBf X2F0dHJpYnV0ZV9fICgocGFja2VkKSkgVTEgeworICBpbnQgaTE7CisgIHN0 cnVjdCBTOCBzODsKK307IC8qIHsgZGctd2FybmluZyAiYWxpZ25tZW50IDEg b2YgJ3VuaW9uIFUxJyBpcyBsZXNzIHRoYW4gOCIgfSAqLworCit1bmlvbiBf X2F0dHJpYnV0ZV9fICgocGFja2VkLCBhbGlnbmVkICg4KSkpIFUyIHsKKyAg aW50IGkxOworICBzdHJ1Y3QgUzggczg7Cit9OwpkaWZmIC0tZ2l0IGEvZ2Nj L3RyZWUtY29yZS5oIGIvZ2NjL3RyZWUtY29yZS5oCmluZGV4IGVhNzM0Nzcu LjA4ODJiZGMgMTAwNjQ0Ci0tLSBhL2djYy90cmVlLWNvcmUuaAorKysgYi9n Y2MvdHJlZS1jb3JlLmgKQEAgLTE1MTYsOCArMTUxNiw5IEBAIHN0cnVjdCBH VFkoKCkpIHRyZWVfdHlwZV9jb21tb24gewogICAgICBzbyB3ZSBuZWVkIHRv IHN0b3JlIHRoZSB2YWx1ZSAzMiAobm90IDMxLCBhcyB3ZSBuZWVkIHRoZSB6 ZXJvCiAgICAgIGFzIHdlbGwpLCBoZW5jZSBzaXggYml0cy4gICovCiAgIHVu c2lnbmVkIGFsaWduIDogNjsKKyAgdW5zaWduZWQgd2Fybl9pZl9ub3RfYWxp Z24gOiA2OwogICB1bnNpZ25lZCB0eXBlbGVzc19zdG9yYWdlIDogMTsKLSAg dW5zaWduZWQgc3BhcmUgOiAyNDsKKyAgdW5zaWduZWQgc3BhcmUgOiAxODsK IAogICBhbGlhc19zZXRfdHlwZSBhbGlhc19zZXQ7CiAgIHRyZWUgcG9pbnRl cl90bzsKZGlmZiAtLWdpdCBhL2djYy90cmVlLmMgYi9nY2MvdHJlZS5jCmlu ZGV4IGE1OGY5YWEuLjY2Mjg3YWUgMTAwNjQ0Ci0tLSBhL2djYy90cmVlLmMK KysrIGIvZ2NjL3RyZWUuYwpAQCAtODMwMyw2ICs4MzAzLDcgQEAgYnVpbGRf cmFuZ2VfdHlwZV8xICh0cmVlIHR5cGUsIHRyZWUgbG93dmFsLCB0cmVlIGhp Z2h2YWwsIGJvb2wgc2hhcmVkKQogICBUWVBFX1NJWkVfVU5JVCAoaXR5cGUp ID0gVFlQRV9TSVpFX1VOSVQgKHR5cGUpOwogICBTRVRfVFlQRV9BTElHTiAo aXR5cGUsIFRZUEVfQUxJR04gKHR5cGUpKTsKICAgVFlQRV9VU0VSX0FMSUdO IChpdHlwZSkgPSBUWVBFX1VTRVJfQUxJR04gKHR5cGUpOworICBTRVRfVFlQ RV9XQVJOX0lGX05PVF9BTElHTiAoaXR5cGUsIFRZUEVfV0FSTl9JRl9OT1Rf QUxJR04gKHR5cGUpKTsKIAogICBpZiAoIXNoYXJlZCkKICAgICByZXR1cm4g aXR5cGU7CmRpZmYgLS1naXQgYS9nY2MvdHJlZS5oIGIvZ2NjL3RyZWUuaApp bmRleCBjNmU4ODNjLi43ZDk1NzJlIDEwMDY0NAotLS0gYS9nY2MvdHJlZS5o CisrKyBiL2djYy90cmVlLmgKQEAgLTE5MjIsNiArMTkyMiwxNiBAQCBleHRl cm4gbWFjaGluZV9tb2RlIGVsZW1lbnRfbW9kZSAoY29uc3RfdHJlZSB0KTsK IC8qIFRoZSBhbGlnbm1lbnQgZm9yIE5PREUsIGluIGJ5dGVzLiAgKi8KICNk ZWZpbmUgVFlQRV9BTElHTl9VTklUKE5PREUpIChUWVBFX0FMSUdOIChOT0RF KSAvIEJJVFNfUEVSX1VOSVQpCiAKKy8qIFRoZSBtaW5pbXVtIGFsaWdubWVu dCBuZWNlc3NhcnkgZm9yIG9iamVjdHMgb2YgdGhpcyB0eXBlIHdpdGhvdXQK KyAgIHdhcm5pbmcuICBUaGUgdmFsdWUgaXMgYW4gaW50LCBtZWFzdXJlZCBp biBiaXRzLiAgKi8KKyNkZWZpbmUgVFlQRV9XQVJOX0lGX05PVF9BTElHTihO T0RFKSBcCisgICAgKFRZUEVfQ0hFQ0sgKE5PREUpLT50eXBlX2NvbW1vbi53 YXJuX2lmX25vdF9hbGlnbiBcCisgICAgID8gKCh1bnNpZ25lZCkxKSA8PCAo KE5PREUpLT50eXBlX2NvbW1vbi53YXJuX2lmX25vdF9hbGlnbiAtIDEpIDog MCkKKworLyogU3BlY2lmeSB0aGF0IFRZUEVfV0FSTl9JRl9OT1RfQUxJR04o Tk9ERSkgaXMgWC4gICovCisjZGVmaW5lIFNFVF9UWVBFX1dBUk5fSUZfTk9U X0FMSUdOKE5PREUsIFgpIFwKKyAgICAoVFlQRV9DSEVDSyAoTk9ERSktPnR5 cGVfY29tbW9uLndhcm5faWZfbm90X2FsaWduID0gZmZzX2h3aSAoWCkpCisK IC8qIElmIHlvdXIgbGFuZ3VhZ2UgYWxsb3dzIHlvdSB0byBkZWNsYXJlIHR5 cGVzLCBhbmQgeW91IHdhbnQgZGVidWcgaW5mbwogICAgZm9yIHRoZW0sIHRo ZW4geW91IG5lZWQgdG8gZ2VuZXJhdGUgY29ycmVzcG9uZGluZyBUWVBFX0RF Q0wgbm9kZXMuCiAgICBUaGVzZSAic3R1YiIgVFlQRV9ERUNMIG5vZGVzIGhh dmUgbm8gbmFtZSwgYW5kIHNpbXBseSBwb2ludCBhdCB0aGUKLS0gCjIuOS40 Cgo= --001a114876d240a32005513a10c4--