From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13247 invoked by alias); 1 Feb 2020 17:19:07 -0000 Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org Received: (qmail 13233 invoked by uid 89); 1 Feb 2020 17:19:07 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-14.8 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,SPF_PASS autolearn=ham version=3.3.1 spammy= X-HELO: mail-oi1-f193.google.com Received: from mail-oi1-f193.google.com (HELO mail-oi1-f193.google.com) (209.85.167.193) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 01 Feb 2020 17:19:04 +0000 Received: by mail-oi1-f193.google.com with SMTP id c16so10618321oic.3 for ; Sat, 01 Feb 2020 09:19:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=V9HX9rXc7ELy3UlxiZX2lKclPR7Ham2GLY+ZWny5fvI=; b=pR/xFM8UiQmB6rxl/S6U9bUprnAfRaEaxmFcK7NPmGxHwv0HywUpXb2IPFU5PyueP5 iBq698PWGIyekXOu8TMtMMYjjE/Wir8Cw6jhlS212R7ZnKLkuT6TOpO0nnWEnqqs6NeN 9i5ol31vYpfgxKKLd7UQCmfRWukaU37Lazd5KTawm0fVbkVAUeYC1B4qevU4o3YV89Md On/+JVsD6ekrP7tzPrDnw3fo1tP3Yr67kdOp5M5xpU0L3pkFkX5pv9ivV8YgMM4slx7F soaXB+ybVqNevyhDU11VX83bTG9GMU92tMr2woWNhh9n0Mr07tIfIPiiS41zBw9qwDtd v/zA== MIME-Version: 1.0 References: <20200201162613.2023476-1-hjl.tools@gmail.com> In-Reply-To: <20200201162613.2023476-1-hjl.tools@gmail.com> From: "H.J. Lu" Date: Sat, 01 Feb 2020 17:19:00 -0000 Message-ID: Subject: Re: [PATCH] x86: Keep __patchable_function_entries sections with --gc-sections To: Binutils Content-Type: multipart/mixed; boundary="000000000000fb06e1059d86e2fd" X-IsSubscribed: yes X-SW-Source: 2020-02/txt/msg00010.txt.bz2 --000000000000fb06e1059d86e2fd Content-Type: text/plain; charset="UTF-8" Content-length: 507 On Sat, Feb 1, 2020 at 8:26 AM H.J. Lu wrote: > > After all text sections have been garbage collected, if a > __patchable_function_entries section references a section which > wasn't marked, mark it with SEC_EXCLUDE and return NULL. Otherwise, > keep it. > > Should it be handled in _bfd_elf_gc_mark_extra_sections? > It should be an error if a __patchable_function_entries section references both kept and garbage collected sections. Here is the updated patch to do it. -- H.J. --000000000000fb06e1059d86e2fd Content-Type: text/x-patch; charset="US-ASCII"; name="0001-x86-Keep-__patchable_function_entries-sections-with-.patch" Content-Disposition: attachment; filename="0001-x86-Keep-__patchable_function_entries-sections-with-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k63v08mw0 Content-length: 19285 RnJvbSAxNmRiYzM2YTdmZjM1OGY4MmI5NWFiZTg5MmUyMzU3NWY1MDJmMWQ5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhq bC50b29sc0BnbWFpbC5jb20+CkRhdGU6IFNhdCwgMSBGZWIgMjAyMCAwODox OTowMCAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIHg4NjogS2VlcCBfX3BhdGNo YWJsZV9mdW5jdGlvbl9lbnRyaWVzIHNlY3Rpb25zIHdpdGgKIC0tZ2Mtc2Vj dGlvbnMKCkFmdGVyIGFsbCB0ZXh0IHNlY3Rpb25zIGhhdmUgYmVlbiBnYXJi YWdlIGNvbGxlY3RlZCwgaWYgYQpfX3BhdGNoYWJsZV9mdW5jdGlvbl9lbnRy aWVzIHNlY3Rpb24gcmVmZXJlbmNlcyBhIHNlY3Rpb24gd2hpY2gKd2Fzbid0 IG1hcmtlZCwgbWFyayBpdCB3aXRoIFNFQ19FWENMVURFIGFuZCByZXR1cm4g TlVMTC4gIE90aGVyd2lzZSwKa2VlcCBpdC4gIElzc3VlIGFuIGVycm9yIGlm IGEgX19wYXRjaGFibGVfZnVuY3Rpb25fZW50cmllcyBzZWN0aW9uCnJlZmVy ZW5jZXMgYm90aCBrZXB0IGFuZCBnYXJiYWdlIGNvbGxlY3RlZCBzZWN0aW9u cy4KCmJmZC8KCglQUiBsZC8yNTQ5MAoJKiBlbGZ4eC14ODYuYyAoX2JmZF94 ODZfZWxmX2djX21hcmtfaG9vayk6IEhhbmRsZQoJX19wYXRjaGFibGVfZnVu Y3Rpb25fZW50cmllcyBzZWN0aW9ucy4KCShfYmZkX3g4Nl9lbGZfZ2NfbWFy a19leHRyYV9zZWN0aW9ucyk6IE5ldyBmdW5jdGlvbi4KCSogZWxmeHgteDg2 LmggKF9iZmRfeDg2X2VsZl9nY19tYXJrX2V4dHJhX3NlY3Rpb25zKTogTmV3 LgoJKGVsZl9iYWNrZW5kX2djX21hcmtfZXh0cmFfc2VjdGlvbnMpOiBMaWtl d2lzZS4KCmxkLwoKCVBSIGxkLzI1NDkwCgkqIHRlc3RzdWl0ZS9sZC1pMzg2 L2kzODYuZXhwOiBSdW4gUFIgbGQvMjU0OTAgdGVzdHMuCgkqIHRlc3RzdWl0 ZS9sZC14ODYtNjQveDg2LTY0LmV4cDogTGlrZXdpc2UuCgkqIHRlc3RzdWl0 ZS9sZC1pMzg2L3ByMjU0OTAtMS5kOiBOZXcgZmlsZS4KCSogdGVzdHN1aXRl L2xkLWkzODYvcHIyNTQ5MC0yYS5kOiBMaWtld2lzZS4KCSogdGVzdHN1aXRl L2xkLWkzODYvcHIyNTQ5MC0yYi5kOiBMaWtld2lzZS4KCSogdGVzdHN1aXRl L2xkLWkzODYvcHIyNTQ5MC0zLmQ6IExpa2V3aXNlLgoJKiB0ZXN0c3VpdGUv bGQteDg2LTY0L3ByMjU0OTAtMS14MzIuZDogTGlrZXdpc2UuCgkqIHRlc3Rz dWl0ZS9sZC14ODYtNjQvcHIyNTQ5MC0xLmQ6IExpa2V3aXNlLgoJKiB0ZXN0 c3VpdGUvbGQteDg2LTY0L3ByMjU0OTAtMS5zOiBMaWtld2lzZS4KCSogdGVz dHN1aXRlL2xkLXg4Ni02NC9wcjI1NDkwLTIuczogTGlrZXdpc2UuCgkqIHRl c3RzdWl0ZS9sZC14ODYtNjQvcHIyNTQ5MC0yYS14MzIuZDogTGlrZXdpc2Uu CgkqIHRlc3RzdWl0ZS9sZC14ODYtNjQvcHIyNTQ5MC0yYS5kOiBMaWtld2lz ZS4KCSogdGVzdHN1aXRlL2xkLXg4Ni02NC9wcjI1NDkwLTJiLXgzMi5kOiBM aWtld2lzZS4KCSogdGVzdHN1aXRlL2xkLXg4Ni02NC9wcjI1NDkwLTJiLmQ6 IExpa2V3aXNlLgoJKiB0ZXN0c3VpdGUvbGQteDg2LTY0L3ByMjU0OTAtMy14 MzIuZDogTGlrZXdpc2UuCgkqIHRlc3RzdWl0ZS9sZC14ODYtNjQvcHIyNTQ5 MC0zLmQ6IExpa2V3aXNlLgoJKiB0ZXN0c3VpdGUvbGQteDg2LTY0L3ByMjU0 OTAtMy5zOiBMaWtld2lzZS4KLS0tCiBiZmQvZWxmeHgteDg2LmMgICAgICAg ICAgICAgICAgICAgICAgICAgfCA0OSArKysrKysrKysrKysrKysrKysrKysr KysrCiBiZmQvZWxmeHgteDg2LmggICAgICAgICAgICAgICAgICAgICAgICAg fCAgNSArKysKIGxkL3Rlc3RzdWl0ZS9sZC1pMzg2L2kzODYuZXhwICAgICAg ICAgICB8ICA0ICsrCiBsZC90ZXN0c3VpdGUvbGQtaTM4Ni9wcjI1NDkwLTEu ZCAgICAgICAgfCAgOCArKysrCiBsZC90ZXN0c3VpdGUvbGQtaTM4Ni9wcjI1 NDkwLTJhLmQgICAgICAgfCAgOCArKysrCiBsZC90ZXN0c3VpdGUvbGQtaTM4 Ni9wcjI1NDkwLTJiLmQgICAgICAgfCAgOSArKysrKwogbGQvdGVzdHN1aXRl L2xkLWkzODYvcHIyNTQ5MC0zLmQgICAgICAgIHwgIDQgKysKIGxkL3Rlc3Rz dWl0ZS9sZC14ODYtNjQvcHIyNTQ5MC0xLXgzMi5kICB8ICA4ICsrKysKIGxk L3Rlc3RzdWl0ZS9sZC14ODYtNjQvcHIyNTQ5MC0xLmQgICAgICB8ICA3ICsr KysKIGxkL3Rlc3RzdWl0ZS9sZC14ODYtNjQvcHIyNTQ5MC0xLnMgICAgICB8 IDEzICsrKysrKysKIGxkL3Rlc3RzdWl0ZS9sZC14ODYtNjQvcHIyNTQ5MC0y LnMgICAgICB8IDI2ICsrKysrKysrKysrKysKIGxkL3Rlc3RzdWl0ZS9sZC14 ODYtNjQvcHIyNTQ5MC0yYS14MzIuZCB8ICA4ICsrKysKIGxkL3Rlc3RzdWl0 ZS9sZC14ODYtNjQvcHIyNTQ5MC0yYS5kICAgICB8ICA4ICsrKysKIGxkL3Rl c3RzdWl0ZS9sZC14ODYtNjQvcHIyNTQ5MC0yYi14MzIuZCB8ICA5ICsrKysr CiBsZC90ZXN0c3VpdGUvbGQteDg2LTY0L3ByMjU0OTAtMmIuZCAgICAgfCAg OSArKysrKwogbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC9wcjI1NDkwLTMteDMy LmQgIHwgIDQgKysKIGxkL3Rlc3RzdWl0ZS9sZC14ODYtNjQvcHIyNTQ5MC0z LmQgICAgICB8ICAzICsrCiBsZC90ZXN0c3VpdGUvbGQteDg2LTY0L3ByMjU0 OTAtMy5zICAgICAgfCAyOCArKysrKysrKysrKysrKwogbGQvdGVzdHN1aXRl L2xkLXg4Ni02NC94ODYtNjQuZXhwICAgICAgIHwgIDggKysrKwogMTkgZmls ZXMgY2hhbmdlZCwgMjE4IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEw MDY0NCBsZC90ZXN0c3VpdGUvbGQtaTM4Ni9wcjI1NDkwLTEuZAogY3JlYXRl IG1vZGUgMTAwNjQ0IGxkL3Rlc3RzdWl0ZS9sZC1pMzg2L3ByMjU0OTAtMmEu ZAogY3JlYXRlIG1vZGUgMTAwNjQ0IGxkL3Rlc3RzdWl0ZS9sZC1pMzg2L3By MjU0OTAtMmIuZAogY3JlYXRlIG1vZGUgMTAwNjQ0IGxkL3Rlc3RzdWl0ZS9s ZC1pMzg2L3ByMjU0OTAtMy5kCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGQvdGVz dHN1aXRlL2xkLXg4Ni02NC9wcjI1NDkwLTEteDMyLmQKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBsZC90ZXN0c3VpdGUvbGQteDg2LTY0L3ByMjU0OTAtMS5kCiBj cmVhdGUgbW9kZSAxMDA2NDQgbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC9wcjI1 NDkwLTEucwogY3JlYXRlIG1vZGUgMTAwNjQ0IGxkL3Rlc3RzdWl0ZS9sZC14 ODYtNjQvcHIyNTQ5MC0yLnMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsZC90ZXN0 c3VpdGUvbGQteDg2LTY0L3ByMjU0OTAtMmEteDMyLmQKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBsZC90ZXN0c3VpdGUvbGQteDg2LTY0L3ByMjU0OTAtMmEuZAog Y3JlYXRlIG1vZGUgMTAwNjQ0IGxkL3Rlc3RzdWl0ZS9sZC14ODYtNjQvcHIy NTQ5MC0yYi14MzIuZAogY3JlYXRlIG1vZGUgMTAwNjQ0IGxkL3Rlc3RzdWl0 ZS9sZC14ODYtNjQvcHIyNTQ5MC0yYi5kCiBjcmVhdGUgbW9kZSAxMDA2NDQg bGQvdGVzdHN1aXRlL2xkLXg4Ni02NC9wcjI1NDkwLTMteDMyLmQKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBsZC90ZXN0c3VpdGUvbGQteDg2LTY0L3ByMjU0OTAt My5kCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGQvdGVzdHN1aXRlL2xkLXg4Ni02 NC9wcjI1NDkwLTMucwoKZGlmZiAtLWdpdCBhL2JmZC9lbGZ4eC14ODYuYyBi L2JmZC9lbGZ4eC14ODYuYwppbmRleCBmYzc4M2IwZTk4OC4uNzU4NzE3ZDk5 YWUgMTAwNjQ0Ci0tLSBhL2JmZC9lbGZ4eC14ODYuYworKysgYi9iZmQvZWxm eHgteDg2LmMKQEAgLTIxMTAsMTAgKzIxMTAsNTkgQEAgX2JmZF94ODZfZWxm X2djX21hcmtfaG9vayAoYXNlY3Rpb24gKnNlYywKICAgICAgIGNhc2UgUl9Y ODZfNjRfR05VX1ZURU5UUlk6CiAJcmV0dXJuIE5VTEw7CiAgICAgICB9Cisg IGVsc2UgaWYgKENPTlNUX1NUUk5FUSAoYmZkX3NlY3Rpb25fbmFtZSAoc2Vj KSwKKwkJCSAiX19wYXRjaGFibGVfZnVuY3Rpb25fZW50cmllcyIpKQorICAg IHsKKyAgICAgIC8qIEFmdGVyIGFsbCB0ZXh0IHNlY3Rpb25zIGhhdmUgYmVl biBnYXJiYWdlIGNvbGxlY3RlZCwgaWYgYQorCSBfX3BhdGNoYWJsZV9mdW5j dGlvbl9lbnRyaWVzIHNlY3Rpb24gcmVmZXJlbmNlcyBhIHNlY3Rpb24KKwkg d2hpY2ggd2Fzbid0IG1hcmtlZCwgbWFyayBpdCB3aXRoIFNFQ19FWENMVURF IGFuZCByZXR1cm4KKwkgTlVMTC4gICovCisgICAgICBhc2VjdGlvbiAqdHNl YyA9IGJmZF9zZWN0aW9uX2Zyb21fZWxmX2luZGV4IChzZWMtPm93bmVyLAor CQkJCQkJICAgc3ltLT5zdF9zaG5keCk7CisgICAgICAvKiBOQjogQSBfX3Bh dGNoYWJsZV9mdW5jdGlvbl9lbnRyaWVzIHNlY3Rpb24gbWF5IHJlZmVyZW5j ZSBib3RoCisgICAgICAgICBrZXB0IGFuZCBnYXJiYWdlIGNvbGxlY3RlZCBz ZWN0aW9ucy4gICovCisgICAgICBpZiAodHNlYy0+Z2NfbWFyaykKKwlzZWMt PmZsYWdzIHw9IFNFQ19LRUVQOworICAgICAgZWxzZQorCXNlYy0+ZmxhZ3Mg fD0gU0VDX0VYQ0xVREU7CisgICAgfQogCiAgIHJldHVybiBfYmZkX2VsZl9n Y19tYXJrX2hvb2sgKHNlYywgaW5mbywgcmVsLCBoLCBzeW0pOwogfQogCisv KiBQcmV2ZW50IF9fcGF0Y2hhYmxlX2Z1bmN0aW9uX2VudHJpZXMgc2VjdGlv bnMgZnJvbSBiZWluZyBkaXNjYXJkZWQKKyAgIHdpdGggLS1nYy1zZWN0aW9u cy4gICovCisKK2JmZF9ib29sZWFuCitfYmZkX3g4Nl9lbGZfZ2NfbWFya19l eHRyYV9zZWN0aW9ucyAoc3RydWN0IGJmZF9saW5rX2luZm8gKmluZm8sCisJ CQkJICAgICBlbGZfZ2NfbWFya19ob29rX2ZuIGdjX21hcmtfaG9vaykKK3sK KyAgYmZkICpzdWI7CisKKyAgX2JmZF9lbGZfZ2NfbWFya19leHRyYV9zZWN0 aW9ucyAoaW5mbywgZ2NfbWFya19ob29rKTsKKworICBmb3IgKHN1YiA9IGlu Zm8tPmlucHV0X2JmZHM7IHN1YiAhPSBOVUxMOyBzdWIgPSBzdWItPmxpbmsu bmV4dCkKKyAgICB7CisgICAgICBhc2VjdGlvbiAqbzsKKworICAgICAgZm9y IChvID0gc3ViLT5zZWN0aW9uczsgbyAhPSBOVUxMOyBvID0gby0+bmV4dCkK KwlpZiAoIW8tPmdjX21hcmsKKwkgICAgJiYgKG8tPmZsYWdzICYgU0VDX0VY Q0xVREUpID09IDAKKwkgICAgJiYgKG8tPmZsYWdzICYgU0VDX0tFRVApID09 IDAKKwkgICAgJiYgQ09OU1RfU1RSTkVRIChiZmRfc2VjdGlvbl9uYW1lIChv KSwKKwkJCSAgICAgIl9fcGF0Y2hhYmxlX2Z1bmN0aW9uX2VudHJpZXMiKSkK KwkgIHsKKwkgICAgaWYgKCFfYmZkX2VsZl9nY19tYXJrIChpbmZvLCBvLCBn Y19tYXJrX2hvb2spKQorCSAgICAgIHJldHVybiBGQUxTRTsKKwkgICAgaWYg KChvLT5mbGFncyAmIFNFQ19FWENMVURFKSAmJiAoby0+ZmxhZ3MgJiBTRUNf S0VFUCkpCisJICAgICAgaW5mby0+Y2FsbGJhY2tzLT5laW5mbyAoXygiJUYl cEIoJXBBKTogcmVmZXJlbmNlIHRvIGdhcmJhZ2UgY29sbGVjdGVkIHNlY3Rp b25cbiIpLAorCQkJCSAgICAgIG8tPm93bmVyLCBvKTsKKwkgIH0KKyAgICB9 CisKKyAgcmV0dXJuIFRSVUU7Cit9CisKIHN0YXRpYyBiZmRfdm1hCiBlbGZf aTM4Nl9nZXRfcGx0X2dvdF92bWEgKHN0cnVjdCBlbGZfeDg2X3BsdCAqcGx0 X3AgQVRUUklCVVRFX1VOVVNFRCwKIAkJCSAgYmZkX3ZtYSBvZmYsCmRpZmYg LS1naXQgYS9iZmQvZWxmeHgteDg2LmggYi9iZmQvZWxmeHgteDg2LmgKaW5k ZXggYmVmMTdkYzJiYWMuLjFlNDNmMWQ3ODZjIDEwMDY0NAotLS0gYS9iZmQv ZWxmeHgteDg2LmgKKysrIGIvYmZkL2VsZnh4LXg4Ni5oCkBAIC02ODgsNiAr Njg4LDkgQEAgZXh0ZXJuIGFzZWN0aW9uICogX2JmZF94ODZfZWxmX2djX21h cmtfaG9vawogICAoYXNlY3Rpb24gKiwgc3RydWN0IGJmZF9saW5rX2luZm8g KiwgRWxmX0ludGVybmFsX1JlbGEgKiwKICAgIHN0cnVjdCBlbGZfbGlua19o YXNoX2VudHJ5ICosIEVsZl9JbnRlcm5hbF9TeW0gKik7CiAKK2V4dGVybiBi ZmRfYm9vbGVhbiBfYmZkX3g4Nl9lbGZfZ2NfbWFya19leHRyYV9zZWN0aW9u cworICAoc3RydWN0IGJmZF9saW5rX2luZm8gKiwgZWxmX2djX21hcmtfaG9v a19mbik7CisKIGV4dGVybiBsb25nIF9iZmRfeDg2X2VsZl9nZXRfc3ludGhl dGljX3N5bXRhYgogICAoYmZkICosIGxvbmcsIGxvbmcsIGJmZF92bWEsIHN0 cnVjdCBlbGZfeDg2X3BsdCBbXSwgYXN5bWJvbCAqKiwKICAgIGFzeW1ib2wg KiopOwpAQCAtNzM3LDYgKzc0MCw4IEBAIGV4dGVybiB2b2lkIF9iZmRfeDg2 X2VsZl9saW5rX2ZpeHVwX2lmdW5jX3N5bWJvbAogICBfYmZkX3g4Nl9lbGZf YWRqdXN0X2R5bmFtaWNfc3ltYm9sCiAjZGVmaW5lIGVsZl9iYWNrZW5kX2dj X21hcmtfaG9vayBcCiAgIF9iZmRfeDg2X2VsZl9nY19tYXJrX2hvb2sKKyNk ZWZpbmUgZWxmX2JhY2tlbmRfZ2NfbWFya19leHRyYV9zZWN0aW9ucyBcCisg IF9iZmRfeDg2X2VsZl9nY19tYXJrX2V4dHJhX3NlY3Rpb25zCiAjZGVmaW5l IGVsZl9iYWNrZW5kX29taXRfc2VjdGlvbl9keW5zeW0gXAogICBfYmZkX2Vs Zl9vbWl0X3NlY3Rpb25fZHluc3ltX2FsbAogI2RlZmluZSBlbGZfYmFja2Vu ZF9wYXJzZV9nbnVfcHJvcGVydGllcyBcCmRpZmYgLS1naXQgYS9sZC90ZXN0 c3VpdGUvbGQtaTM4Ni9pMzg2LmV4cCBiL2xkL3Rlc3RzdWl0ZS9sZC1pMzg2 L2kzODYuZXhwCmluZGV4IDdiYjM2MzZkM2IwLi5lMTNmMjNjZGM2NyAxMDA2 NDQKLS0tIGEvbGQvdGVzdHN1aXRlL2xkLWkzODYvaTM4Ni5leHAKKysrIGIv bGQvdGVzdHN1aXRlL2xkLWkzODYvaTM4Ni5leHAKQEAgLTQ5Niw2ICs0OTYs MTAgQEAgcnVuX2R1bXBfdGVzdCAicHIyMzkzMCIKIHJ1bl9kdW1wX3Rlc3Qg InByMjQzMjJhIgogcnVuX2R1bXBfdGVzdCAicHIyNDMyMmIiCiBydW5fZHVt cF90ZXN0ICJhbGlnbi1icmFuY2gtMSIKK3J1bl9kdW1wX3Rlc3QgInByMjU0 OTAtMSIKK3J1bl9kdW1wX3Rlc3QgInByMjU0OTAtMmEiCitydW5fZHVtcF90 ZXN0ICJwcjI1NDkwLTJiIgorcnVuX2R1bXBfdGVzdCAicHIyNTQ5MC0zIgog CiBpZiB7ICEoW2lzdGFyZ2V0ICJpPzg2LSotbGludXgqIl0KICAgICAgICB8 fCBbaXN0YXJnZXQgImk/ODYtKi1nbnUqIl0KZGlmZiAtLWdpdCBhL2xkL3Rl c3RzdWl0ZS9sZC1pMzg2L3ByMjU0OTAtMS5kIGIvbGQvdGVzdHN1aXRlL2xk LWkzODYvcHIyNTQ5MC0xLmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjY3Y2M1ZTg2ZWMyCi0tLSAvZGV2L251bGwKKysrIGIv bGQvdGVzdHN1aXRlL2xkLWkzODYvcHIyNTQ5MC0xLmQKQEAgLTAsMCArMSw4 IEBACisjc291cmNlOiAuLi9sZC14ODYtNjQvcHIyNTQ5MC0xLnMKKyNhczog LS0zMgorI2xkOiAtLWdjLXNlY3Rpb25zIC1tZWxmX2kzODYKKyNyZWFkZWxm OiAtU1cKKworIy4uLgorICtcWyAqWzAtOV0rXF0gX19wYXRjaGFibGVfZnVu Y3Rpb25fZW50cmllcyArUFJPR0JJVFMgK1swLTlhLWZdKyArWzAtOWEtZl0r MDAwICswKzQgKzAwICtXQSArMCArMCArMQorI3Bhc3MKZGlmZiAtLWdpdCBh L2xkL3Rlc3RzdWl0ZS9sZC1pMzg2L3ByMjU0OTAtMmEuZCBiL2xkL3Rlc3Rz dWl0ZS9sZC1pMzg2L3ByMjU0OTAtMmEuZApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uNTA5NjI1MjgyOWYKLS0tIC9kZXYvbnVs bAorKysgYi9sZC90ZXN0c3VpdGUvbGQtaTM4Ni9wcjI1NDkwLTJhLmQKQEAg LTAsMCArMSw4IEBACisjc291cmNlOiAuLi9sZC14ODYtNjQvcHIyNTQ5MC0y LnMKKyNhczogLS0zMgorI2xkOiAtLWdjLXNlY3Rpb25zIC1tZWxmX2kzODYK KyNyZWFkZWxmOiAtU1cKKworIy4uLgorICtcWyAqWzAtOV0rXF0gX19wYXRj aGFibGVfZnVuY3Rpb25fZW50cmllcy5fc3RhcnQgK1BST0dCSVRTICtbMC05 YS1mXSsgK1swLTlhLWZdKzAwMCArMCs0ICswMCArV0EgKzAgKzAgKzEKKyNw YXNzCmRpZmYgLS1naXQgYS9sZC90ZXN0c3VpdGUvbGQtaTM4Ni9wcjI1NDkw LTJiLmQgYi9sZC90ZXN0c3VpdGUvbGQtaTM4Ni9wcjI1NDkwLTJiLmQKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNmOWNhYjU0 OGJlCi0tLSAvZGV2L251bGwKKysrIGIvbGQvdGVzdHN1aXRlL2xkLWkzODYv cHIyNTQ5MC0yYi5kCkBAIC0wLDAgKzEsOSBAQAorI3NvdXJjZTogLi4vbGQt eDg2LTY0L3ByMjU0OTAtMi5zCisjYXM6IC0tMzIKKyNsZDogLS1nYy1zZWN0 aW9ucyAtbWVsZl9pMzg2CisjcmVhZGVsZjogLVNXCisKKyNmYWlsaWYKKyMu Li4KKyArXFsgKlswLTldK1xdIF9fcGF0Y2hhYmxlX2Z1bmN0aW9uX2VudHJp ZXMuYmFyICtQUk9HQklUUyArLioKKyNwYXNzCmRpZmYgLS1naXQgYS9sZC90 ZXN0c3VpdGUvbGQtaTM4Ni9wcjI1NDkwLTMuZCBiL2xkL3Rlc3RzdWl0ZS9s ZC1pMzg2L3ByMjU0OTAtMy5kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi40ZGExZjg1ZDYzMAotLS0gL2Rldi9udWxsCisrKyBi L2xkL3Rlc3RzdWl0ZS9sZC1pMzg2L3ByMjU0OTAtMy5kCkBAIC0wLDAgKzEs NCBAQAorI3NvdXJjZTogLi4vbGQteDg2LTY0L3ByMjU0OTAtMy5zCisjYXM6 IC0tMzIKKyNsZDogLS1nYy1zZWN0aW9ucyAtbWVsZl9pMzg2CisjZXJyb3I6 IC4qXChfX3BhdGNoYWJsZV9mdW5jdGlvbl9lbnRyaWVzXCk6IHJlZmVyZW5j ZSB0byBnYXJiYWdlIGNvbGxlY3RlZCBzZWN0aW9uCmRpZmYgLS1naXQgYS9s ZC90ZXN0c3VpdGUvbGQteDg2LTY0L3ByMjU0OTAtMS14MzIuZCBiL2xkL3Rl c3RzdWl0ZS9sZC14ODYtNjQvcHIyNTQ5MC0xLXgzMi5kCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42NWJjMmJlZTI4YwotLS0g L2Rldi9udWxsCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC14ODYtNjQvcHIyNTQ5 MC0xLXgzMi5kCkBAIC0wLDAgKzEsOCBAQAorI3NvdXJjZTogcHIyNTQ5MC0x LnMKKyNhczogLS14MzIKKyNsZDogLS1nYy1zZWN0aW9ucyAtbWVsZjMyX3g4 Nl82NAorI3JlYWRlbGY6IC1TVworCisjLi4uCisgK1xbICpbMC05XStcXSBf X3BhdGNoYWJsZV9mdW5jdGlvbl9lbnRyaWVzICtQUk9HQklUUyArWzAtOWEt Zl0rICtbMC05YS1mXSswMDAgKzArNCArMDAgK1dBICswICswICsxCisjcGFz cwpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC9wcjI1NDkw LTEuZCBiL2xkL3Rlc3RzdWl0ZS9sZC14ODYtNjQvcHIyNTQ5MC0xLmQKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmRjMWQ5MTIw NzZiCi0tLSAvZGV2L251bGwKKysrIGIvbGQvdGVzdHN1aXRlL2xkLXg4Ni02 NC9wcjI1NDkwLTEuZApAQCAtMCwwICsxLDcgQEAKKyNhczogLS02NAorI2xk OiAtLWdjLXNlY3Rpb25zIC1tZWxmX3g4Nl82NAorI3JlYWRlbGY6IC1TVwor CisjLi4uCisgK1xbICpbMC05XStcXSBfX3BhdGNoYWJsZV9mdW5jdGlvbl9l bnRyaWVzICtQUk9HQklUUyArWzAtOWEtZl0rICtbMC05YS1mXSswMDAgKzAr OCArMDAgK1dBICswICswICsxCisjcGFzcwpkaWZmIC0tZ2l0IGEvbGQvdGVz dHN1aXRlL2xkLXg4Ni02NC9wcjI1NDkwLTEucyBiL2xkL3Rlc3RzdWl0ZS9s ZC14ODYtNjQvcHIyNTQ5MC0xLnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLjIxMTIzYWQ4YWEwCi0tLSAvZGV2L251bGwKKysr IGIvbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC9wcjI1NDkwLTEucwpAQCAtMCww ICsxLDEzIEBACisJLnRleHQKKwkucDJhbGlnbiA0CisJLmdsb2JsCV9zdGFy dAorCS50eXBlCV9zdGFydCwgJWZ1bmN0aW9uCitfc3RhcnQ6CisJLnNlY3Rp b24JX19wYXRjaGFibGVfZnVuY3Rpb25fZW50cmllcywiYXciLCVwcm9nYml0 cworCS5kYy5hCS5MUEZFMQorCS50ZXh0CisuTFBGRTE6CisJbm9wCisJcmV0 CisJLnNpemUJX3N0YXJ0LCAuLV9zdGFydAorCS5zZWN0aW9uCS5ub3RlLkdO VS1zdGFjaywiIiwlcHJvZ2JpdHMKZGlmZiAtLWdpdCBhL2xkL3Rlc3RzdWl0 ZS9sZC14ODYtNjQvcHIyNTQ5MC0yLnMgYi9sZC90ZXN0c3VpdGUvbGQteDg2 LTY0L3ByMjU0OTAtMi5zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi4xZjhkZjg3MDMxNgotLS0gL2Rldi9udWxsCisrKyBiL2xk L3Rlc3RzdWl0ZS9sZC14ODYtNjQvcHIyNTQ5MC0yLnMKQEAgLTAsMCArMSwy NiBAQAorCS50ZXh0CisJLnAyYWxpZ24gNAorCS5zZWN0aW9uCS50ZXh0LmJh ciwiYXgiLCVwcm9nYml0cworCS5nbG9ibAliYXIKKwkudHlwZQliYXIsICVm dW5jdGlvbgorYmFyOgorCS5zZWN0aW9uIF9fcGF0Y2hhYmxlX2Z1bmN0aW9u X2VudHJpZXMuYmFyLCJhdyIsJXByb2diaXRzCisJLmRjLmEJLkxQRkUxCisJ LnNlY3Rpb24JLnRleHQuYmFyLCJheCIsJXByb2diaXRzCisuTFBGRTE6CisJ bm9wCisJcmV0CisJLnNpemUJYmFyLCAuLWJhcgorCS5wMmFsaWduIDQKKwku c2VjdGlvbgkudGV4dC5fc3RhcnQsImF4IiwlcHJvZ2JpdHMKKwkuZ2xvYmwJ X3N0YXJ0CisJLnR5cGUJX3N0YXJ0LCAlZnVuY3Rpb24KK19zdGFydDoKKwku c2VjdGlvbiBfX3BhdGNoYWJsZV9mdW5jdGlvbl9lbnRyaWVzLl9zdGFydCwi YXciLCVwcm9nYml0cworCS5kYy5hCS5MUEZFMgorCS5zZWN0aW9uCS50ZXh0 Ll9zdGFydCwiYXgiLCVwcm9nYml0cworLkxQRkUyOgorCW5vcAorCXJldAor CS5zaXplCV9zdGFydCwgLi1fc3RhcnQKKwkuc2VjdGlvbgkubm90ZS5HTlUt c3RhY2ssIiIsJXByb2diaXRzCmRpZmYgLS1naXQgYS9sZC90ZXN0c3VpdGUv bGQteDg2LTY0L3ByMjU0OTAtMmEteDMyLmQgYi9sZC90ZXN0c3VpdGUvbGQt eDg2LTY0L3ByMjU0OTAtMmEteDMyLmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLjIwMjkwMjlhMGYzCi0tLSAvZGV2L251bGwK KysrIGIvbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC9wcjI1NDkwLTJhLXgzMi5k CkBAIC0wLDAgKzEsOCBAQAorI3NvdXJjZTogcHIyNTQ5MC0yLnMKKyNhczog LS14MzIKKyNsZDogLS1nYy1zZWN0aW9ucyAtbWVsZjMyX3g4Nl82NAorI3Jl YWRlbGY6IC1TVworCisjLi4uCisgK1xbICpbMC05XStcXSBfX3BhdGNoYWJs ZV9mdW5jdGlvbl9lbnRyaWVzLl9zdGFydCArUFJPR0JJVFMgK1swLTlhLWZd KyArWzAtOWEtZl0rMDAwICswKzQgKzAwICtXQSArMCArMCArMQorI3Bhc3MK ZGlmZiAtLWdpdCBhL2xkL3Rlc3RzdWl0ZS9sZC14ODYtNjQvcHIyNTQ5MC0y YS5kIGIvbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC9wcjI1NDkwLTJhLmQKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE1ZjBiMTQx Yzg3Ci0tLSAvZGV2L251bGwKKysrIGIvbGQvdGVzdHN1aXRlL2xkLXg4Ni02 NC9wcjI1NDkwLTJhLmQKQEAgLTAsMCArMSw4IEBACisjc291cmNlOiBwcjI1 NDkwLTIucworI2FzOiAtLTY0CisjbGQ6IC0tZ2Mtc2VjdGlvbnMgLW1lbGZf eDg2XzY0CisjcmVhZGVsZjogLVNXCisKKyMuLi4KKyArXFsgKlswLTldK1xd IF9fcGF0Y2hhYmxlX2Z1bmN0aW9uX2VudHJpZXMuX3N0YXJ0ICtQUk9HQklU UyArWzAtOWEtZl0rICtbMC05YS1mXSswMDAgKzArOCArMDAgK1dBICswICsw ICsxCisjcGFzcwpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLXg4Ni02 NC9wcjI1NDkwLTJiLXgzMi5kIGIvbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC9w cjI1NDkwLTJiLXgzMi5kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi5hOWZlNmJhNmIzYwotLS0gL2Rldi9udWxsCisrKyBiL2xk L3Rlc3RzdWl0ZS9sZC14ODYtNjQvcHIyNTQ5MC0yYi14MzIuZApAQCAtMCww ICsxLDkgQEAKKyNzb3VyY2U6IHByMjU0OTAtMi5zCisjYXM6IC0teDMyCisj bGQ6IC0tZ2Mtc2VjdGlvbnMgLW1lbGYzMl94ODZfNjQKKyNyZWFkZWxmOiAt U1cKKworI2ZhaWxpZgorIy4uLgorICtcWyAqWzAtOV0rXF0gX19wYXRjaGFi bGVfZnVuY3Rpb25fZW50cmllcy5iYXIgK1BST0dCSVRTICsuKgorI3Bhc3MK ZGlmZiAtLWdpdCBhL2xkL3Rlc3RzdWl0ZS9sZC14ODYtNjQvcHIyNTQ5MC0y Yi5kIGIvbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC9wcjI1NDkwLTJiLmQKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVlYjkzM2Y1 YjM2Ci0tLSAvZGV2L251bGwKKysrIGIvbGQvdGVzdHN1aXRlL2xkLXg4Ni02 NC9wcjI1NDkwLTJiLmQKQEAgLTAsMCArMSw5IEBACisjc291cmNlOiBwcjI1 NDkwLTIucworI2FzOiAtLTY0CisjbGQ6IC0tZ2Mtc2VjdGlvbnMgLW1lbGZf eDg2XzY0CisjcmVhZGVsZjogLVNXCisKKyNmYWlsaWYKKyMuLi4KKyArXFsg KlswLTldK1xdIF9fcGF0Y2hhYmxlX2Z1bmN0aW9uX2VudHJpZXMuYmFyICtQ Uk9HQklUUyArLioKKyNwYXNzCmRpZmYgLS1naXQgYS9sZC90ZXN0c3VpdGUv bGQteDg2LTY0L3ByMjU0OTAtMy14MzIuZCBiL2xkL3Rlc3RzdWl0ZS9sZC14 ODYtNjQvcHIyNTQ5MC0zLXgzMi5kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi40OTc5YTNlNzk3OAotLS0gL2Rldi9udWxsCisr KyBiL2xkL3Rlc3RzdWl0ZS9sZC14ODYtNjQvcHIyNTQ5MC0zLXgzMi5kCkBA IC0wLDAgKzEsNCBAQAorI3NvdXJjZTogcHIyNTQ5MC0zLnMKKyNhczogLS14 MzIKKyNsZDogLS1nYy1zZWN0aW9ucyAtbWVsZjMyX3g4Nl82NAorI2Vycm9y OiAuKlwoX19wYXRjaGFibGVfZnVuY3Rpb25fZW50cmllc1wpOiByZWZlcmVu Y2UgdG8gZ2FyYmFnZSBjb2xsZWN0ZWQgc2VjdGlvbgpkaWZmIC0tZ2l0IGEv bGQvdGVzdHN1aXRlL2xkLXg4Ni02NC9wcjI1NDkwLTMuZCBiL2xkL3Rlc3Rz dWl0ZS9sZC14ODYtNjQvcHIyNTQ5MC0zLmQKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI3YTExNDgwYjYwCi0tLSAvZGV2L251 bGwKKysrIGIvbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC9wcjI1NDkwLTMuZApA QCAtMCwwICsxLDMgQEAKKyNhczogLS02NAorI2xkOiAtLWdjLXNlY3Rpb25z IC1tZWxmX3g4Nl82NAorI2Vycm9yOiAuKlwoX19wYXRjaGFibGVfZnVuY3Rp b25fZW50cmllc1wpOiByZWZlcmVuY2UgdG8gZ2FyYmFnZSBjb2xsZWN0ZWQg c2VjdGlvbgpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC9w cjI1NDkwLTMucyBiL2xkL3Rlc3RzdWl0ZS9sZC14ODYtNjQvcHIyNTQ5MC0z LnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM3 ZmFlNzgzMTRjCi0tLSAvZGV2L251bGwKKysrIGIvbGQvdGVzdHN1aXRlL2xk LXg4Ni02NC9wcjI1NDkwLTMucwpAQCAtMCwwICsxLDI4IEBACisJLnRleHQK Kwkuc2VjdGlvbgkudGV4dC5iYXIsImF4IiwlcHJvZ2JpdHMKKwkucDJhbGln biA0CisJLmdsb2JsCWJhcgorCS50eXBlCWJhciwgJWZ1bmN0aW9uCitiYXI6 CisJLnNlY3Rpb24JX19wYXRjaGFibGVfZnVuY3Rpb25fZW50cmllcywiYXci LCVwcm9nYml0cworCS5hbGlnbiA4CisJLmRjLmEJLkxQRkUxCisJLnNlY3Rp b24JLnRleHQuYmFyCisuTFBGRTE6CisJbm9wCisJcmV0CisJLnNpemUJYmFy LCAuLWJhcgorCS5zZWN0aW9uCS50ZXh0Ll9zdGFydCwiYXgiLCVwcm9nYml0 cworCS5wMmFsaWduIDQKKwkuZ2xvYmwJX3N0YXJ0CisJLnR5cGUJX3N0YXJ0 LCAlZnVuY3Rpb24KK19zdGFydDoKKwkuc2VjdGlvbglfX3BhdGNoYWJsZV9m dW5jdGlvbl9lbnRyaWVzCisJLmFsaWduIDgKKwkuZGMuYQkuTFBGRTIKKwku c2VjdGlvbgkudGV4dC5fc3RhcnQKKy5MUEZFMjoKKwlub3AKKwlyZXQKKwku c2l6ZQlfc3RhcnQsIC4tX3N0YXJ0CisJLnNlY3Rpb24JLm5vdGUuR05VLXN0 YWNrLCIiLCVwcm9nYml0cwpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xk LXg4Ni02NC94ODYtNjQuZXhwIGIvbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC94 ODYtNjQuZXhwCmluZGV4IGM3OGIwZmQ3NTc2Li40ODkxMmFjZTFjMSAxMDA2 NDQKLS0tIGEvbGQvdGVzdHN1aXRlL2xkLXg4Ni02NC94ODYtNjQuZXhwCisr KyBiL2xkL3Rlc3RzdWl0ZS9sZC14ODYtNjQveDg2LTY0LmV4cApAQCAtNDY3 LDYgKzQ2NywxNCBAQCBydW5fZHVtcF90ZXN0ICJwcjI1NDE2LTJhIgogcnVu X2R1bXBfdGVzdCAicHIyNTQxNi0yYiIKIHJ1bl9kdW1wX3Rlc3QgInByMjU0 MTYtMyIKIHJ1bl9kdW1wX3Rlc3QgInByMjU0MTYtNCIKK3J1bl9kdW1wX3Rl c3QgInByMjU0OTAtMSIKK3J1bl9kdW1wX3Rlc3QgInByMjU0OTAtMS14MzIi CitydW5fZHVtcF90ZXN0ICJwcjI1NDkwLTJhIgorcnVuX2R1bXBfdGVzdCAi cHIyNTQ5MC0yYS14MzIiCitydW5fZHVtcF90ZXN0ICJwcjI1NDkwLTJiIgor cnVuX2R1bXBfdGVzdCAicHIyNTQ5MC0yYi14MzIiCitydW5fZHVtcF90ZXN0 ICJwcjI1NDkwLTMiCitydW5fZHVtcF90ZXN0ICJwcjI1NDkwLTMteDMyIgog CiBpZiB7ICFbaXN0YXJnZXQgIng4Nl82NC0qLWxpbnV4KiJdICYmICFbaXN0 YXJnZXQgIng4Nl82NC0qLW5hY2wqIl19IHsKICAgICByZXR1cm4KLS0gCjIu MjQuMQoK --000000000000fb06e1059d86e2fd--