From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oo1-xc2f.google.com (mail-oo1-xc2f.google.com [IPv6:2607:f8b0:4864:20::c2f]) by sourceware.org (Postfix) with ESMTPS id 8E89D3836C52 for ; Mon, 4 Jan 2021 16:40:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 8E89D3836C52 Received: by mail-oo1-xc2f.google.com with SMTP id k9so6399564oop.6 for ; Mon, 04 Jan 2021 08:40:57 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=DuPR443rNB3I/DONqbdGMHKwLYERDKpIHNBmc0Tq4PY=; b=HaYBposIvroMZweXxb6GG23hQ1BvNO16QXmALfeobVoG2Bt8rrz7wPr9GU+E5JPtBd 8vDKnm0ljnTtfH32Y5k6IMAu03Dol4e9Kqqzg87zGO1eJbunkvD6ST4MtIc0hJJlo9Go H7yf+xLzkkXBGpOBTK8AzPwEEthVTZR0KL25BH5FSkQPeroVlpmpdXyYsDMWHbPsinng SLnbJ3X4IrNKd0HE8NNxD+Xjdk3fhJhK/PdasoQDRy7/iUZ4D8Du6D9jMFb71uFU2jeu uoE0lgYkv8qwlxc1/SxqaSUltyT9rm25Ht3xLtZmpHj8pxtri2HfVTDWvaPey2cMv8jq tysw== X-Gm-Message-State: AOAM533VIQ5GXNjdRYzOZJciySMd2fk5vDI7Nde1t7afX0WjT0xYbRIz 8yw4kzknN/ox6hcRJO8h5PrwpP14/Gl2nGsgpnk= X-Google-Smtp-Source: ABdhPJwvh1bfvFnJoXdNbGveipSisHvl+5r9C1uZPkfNzHbg0p1J93eDHW5JQncxfZmPP+nBwW5JjHvp1esu5Fjq100= X-Received: by 2002:a4a:1e42:: with SMTP id 63mr49850935ooq.57.1609778456984; Mon, 04 Jan 2021 08:40:56 -0800 (PST) MIME-Version: 1.0 References: <20201221215428.1330614-1-hjl.tools@gmail.com> <20201221232438.ugnexqk6ibmtyzka@gmail.com> <074028b9-6ab6-429d-bc1a-0218a48ba01f@redhat.com> In-Reply-To: <074028b9-6ab6-429d-bc1a-0218a48ba01f@redhat.com> From: "H.J. Lu" Date: Mon, 4 Jan 2021 08:40:20 -0800 Message-ID: Subject: V4 [PATCH] elf: Allow mixed ordered/unordered inputs for non-relocatable link To: Nick Clifton Cc: Fangrui Song , Binutils Content-Type: multipart/mixed; boundary="00000000000018aab805b815c17b" X-Spam-Status: No, score=-3030.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Jan 2021 16:40:58 -0000 --00000000000018aab805b815c17b Content-Type: text/plain; charset="UTF-8" On Mon, Jan 4, 2021 at 5:32 AM Nick Clifton wrote: > > Hi H.J. > > >>>> 1. Add pattern to bfd_section for the matching section name pattern in > >>>> linker script and update BFD_FAKE_SECTION. > >>>> 2. Sort the consecutive bfd_indirect_link_order sections with the same > >>>> pattern to allow linker script to overdide input section order. > >>>> 3. Place unordered sections before ordered sections. > >>>> 4. Change the offsets of the indirect input sections only. > > The patch looks good to me, but the new tests do cause problems for > a variety of targets. For example: > > fido-elf ... LD REGRESSION: ld-elf/pr26256-3a ld-elf/pr26256-3b > fr30-elf ... LD REGRESSION: ld-elf/pr26256-2b > mipsel-linux-gnu ... LD REGRESSION: ld-elf/pr26256-3a ld-elf/pr26256-3b > riscv32-elf ... LD REGRESSION: ld-elf/pr26256-3a ld-elf/pr26256-3b > s390-linux ... LD REGRESSION: ld-elf/pr26256-3a ld-elf/pr26256-3b > score-elf ... LD REGRESSION: ld-elf/pr26256-3a ld-elf/pr26256-3b > > (This is just a selection). > > The cause appears to be an incorrect assumption about the start address of > the text section: > > regexp_diff match failure > regexp "^ 0x[a-f0-9]+ +020103 +.+$" > line " 0x00000020 02010000 03000000 ........" > FAIL: ld-elf/pr26256-3a > > regexp_diff match failure > regexp "^ 0x[a-f0-9]+ +020103 +.+$" > aline " 0x00000020 02010000 03000000 ........" > FAIL: ld-elf/pr26256-3b > > Could you fix these please ? > Here is the updated patch with testcases fixed. OK for master? Thanks. -- H.J. --00000000000018aab805b815c17b Content-Type: application/x-patch; name="0001-elf-Allow-mixed-ordered-unordered-inputs-for-non-rel.patch" Content-Disposition: attachment; filename="0001-elf-Allow-mixed-ordered-unordered-inputs-for-non-rel.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kjish50d0 RnJvbSA1ZjcyY2Y1MGNiMGQyNGEzNWFkMTA3OTM4NmE2NjQxMzkxY2UzMjY2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6 IFNhdCwgMTkgRGVjIDIwMjAgMTM6MTY6MTcgLTA4MDAKU3ViamVjdDogW1BBVENIXSBlbGY6IEFs bG93IG1peGVkIG9yZGVyZWQvdW5vcmRlcmVkIGlucHV0cyBmb3Igbm9uLXJlbG9jYXRhYmxlCiBs aW5rCgpGb3Igbm9uLXJlbG9jYXRhYmxlIGxpbmsgd2l0aCBTSEZfTElOS19PUkRFUiBpbnB1dHMs IGFsbG93IG1peGVkIGluZGlyZWN0CmFuZCBkYXRhIGlucHV0cyB3aXRoIG9yZGVyZWQgYW5kIHVu b3JkZXJlZCBpbnB1dHM6CgoxLiBBZGQgcGF0dGVybiB0byBiZmRfc2VjdGlvbiBmb3IgdGhlIG1h dGNoaW5nIHNlY3Rpb24gbmFtZSBwYXR0ZXJuIGluCmxpbmtlciBzY3JpcHQgYW5kIHVwZGF0ZSBC RkRfRkFLRV9TRUNUSU9OLgoyLiBTb3J0IHRoZSBjb25zZWN1dGl2ZSBiZmRfaW5kaXJlY3RfbGlu a19vcmRlciBzZWN0aW9ucyB3aXRoIHRoZSBzYW1lCnBhdHRlcm4gdG8gYWxsb3cgbGlua2VyIHNj cmlwdCB0byBvdmVyZGlkZSBpbnB1dCBzZWN0aW9uIG9yZGVyLgozLiBQbGFjZSB1bm9yZGVyZWQg c2VjdGlvbnMgYmVmb3JlIG9yZGVyZWQgc2VjdGlvbnMuCjQuIENoYW5nZSB0aGUgb2Zmc2V0cyBv ZiB0aGUgaW5kaXJlY3QgaW5wdXQgc2VjdGlvbnMgb25seS4KCmJmZC8KCglQUiBsZC8yNjI1NgoJ KiBlbGZsaW5rLmMgKGNvbXBhcmVfbGlua19vcmRlcik6IFBsYWNlIHVub3JkZXJlZCBzZWN0aW9u cyBiZWZvcmUKCW9yZGVyZWQgc2VjdGlvbnMuCgkoZWxmX2ZpeHVwX2xpbmtfb3JkZXIpOiBBZGQg YSBsaW5rIGluZm8gYXJndW1lbnQuICBBbGxvdyBtaXhlZAoJb3JkZXJlZCBhbmQgdW5vcmRlcmVk IGlucHV0IHNlY3Rpb25zIGZvciBub24tcmVsb2NhdGFibGUgbGluay4KCVNvcnQgdGhlIGNvbnNl Y3V0aXZlIGJmZF9pbmRpcmVjdF9saW5rX29yZGVyIHNlY3Rpb25zIHdpdGggdGhlCglzYW1lIHBh dHRlcm4uICBDaGFuZ2UgdGhlIG9mZnNldHMgb2YgdGhlIGJmZF9pbmRpcmVjdF9saW5rX29yZGVy CglzZWN0aW9ucyBvbmx5LgoJKGJmZF9lbGZfZmluYWxfbGluayk6IFBhc3MgaW5mbyB0byBlbGZf Zml4dXBfbGlua19vcmRlci4KCSogc2VjdGlvbi5jIChiZmRfc2VjdGlvbik6IEFkZCBwYXR0ZXJu LgoJKEJGRF9GQUtFX1NFQ1RJT04pOiBJbml0aWFsaXplIHBhdHRlcm4gdG8gTlVMTC4KCSogYmZk LWluMi5oOiBSZWdlbmVyYXRlZC4KCmdhcy8KCglQUiBsZC8yNjI1NgoJKiBjb25maWcvb2JqLWVs Zi5jIChvYmpfZWxmX2NoYW5nZV9zZWN0aW9uKTogQWxzbyBmaWx0ZXIgb3V0CglTSEZfTElOS19P UkRFUi4KCmxkLwoKCVBSIGxkLzI2MjU2CgkqIGxkbGFuZy5jIChnY19zZWN0aW9uX2NhbGxiYWNr KTogU2V0IHBhdHRlcm4uCgkqIHRlc3RzdWl0ZS9sZC1lbGYvcHIyNjI1Ni0xLnM6IE5ldyBmaWxl LgoJKiB0ZXN0c3VpdGUvbGQtZWxmL3ByMjYyNTYtMS50OiBMaWtld2lzZS4KCSogdGVzdHN1aXRl L2xkLWVsZi9wcjI2MjU2LTFhLmQ6IExpa2V3aXNlLgoJKiB0ZXN0c3VpdGUvbGQtZWxmL3ByMjYy NTYtMWIuZDogTGlrZXdpc2UuCgkqIHRlc3RzdWl0ZS9sZC1lbGYvcHIyNjI1Ni0yLnM6IExpa2V3 aXNlLgoJKiB0ZXN0c3VpdGUvbGQtZWxmL3ByMjYyNTYtMi50OiBMaWtld2lzZS4KCSogdGVzdHN1 aXRlL2xkLWVsZi9wcjI2MjU2LTJhLmQ6IExpa2V3aXNlLgoJKiB0ZXN0c3VpdGUvbGQtZWxmL3By MjYyNTYtMmItYWx0LmQ6IExpa2V3aXNlLgoJKiB0ZXN0c3VpdGUvbGQtZWxmL3ByMjYyNTYtMmIu ZDogTGlrZXdpc2UuCgkqIHRlc3RzdWl0ZS9sZC1lbGYvcHIyNjI1Ni0zLnM6IExpa2V3aXNlLgoJ KiB0ZXN0c3VpdGUvbGQtZWxmL3ByMjYyNTYtM2EuZDogTGlrZXdpc2UuCgkqIHRlc3RzdWl0ZS9s ZC1lbGYvcHIyNjI1Ni0zYS50OiBMaWtld2lzZS4KCSogdGVzdHN1aXRlL2xkLWVsZi9wcjI2MjU2 LTNiLmQ6IExpa2V3aXNlLgoJKiB0ZXN0c3VpdGUvbGQtZWxmL3ByMjYyNTYtM2IudDogTGlrZXdp c2UuCi0tLQogYmZkL2JmZC1pbjIuaCAgICAgICAgICAgICAgICAgICAgICAgIHwgIDcgKystCiBi ZmQvZWxmbGluay5jICAgICAgICAgICAgICAgICAgICAgICAgfCA4MyArKysrKysrKysrKysrKysr KysrKystLS0tLS0tCiBiZmQvc2VjdGlvbi5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgNyAr Ky0KIGdhcy9jb25maWcvb2JqLWVsZi5jICAgICAgICAgICAgICAgICB8ICA0ICstCiBsZC9sZGxh bmcuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQogbGQvdGVzdHN1aXRlL2xkLWVs Zi9wcjI2MjU2LTEucyAgICAgIHwgMjAgKysrKysrKwogbGQvdGVzdHN1aXRlL2xkLWVsZi9wcjI2 MjU2LTEudCAgICAgIHwgMTMgKysrKysKIGxkL3Rlc3RzdWl0ZS9sZC1lbGYvcHIyNjI1Ni0xYS5k ICAgICB8ICA3ICsrKwogbGQvdGVzdHN1aXRlL2xkLWVsZi9wcjI2MjU2LTFiLmQgICAgIHwgIDcg KysrCiBsZC90ZXN0c3VpdGUvbGQtZWxmL3ByMjYyNTYtMi5zICAgICAgfCAzMiArKysrKysrKysr KwogbGQvdGVzdHN1aXRlL2xkLWVsZi9wcjI2MjU2LTIudCAgICAgIHwgIDkgKysrCiBsZC90ZXN0 c3VpdGUvbGQtZWxmL3ByMjYyNTYtMmEuZCAgICAgfCAyMCArKysrKysrCiBsZC90ZXN0c3VpdGUv bGQtZWxmL3ByMjYyNTYtMmItYWx0LmQgfCAyMSArKysrKysrCiBsZC90ZXN0c3VpdGUvbGQtZWxm L3ByMjYyNTYtMmIuZCAgICAgfCAyMiArKysrKysrKwogbGQvdGVzdHN1aXRlL2xkLWVsZi9wcjI2 MjU2LTMucyAgICAgIHwgMjcgKysrKysrKysrCiBsZC90ZXN0c3VpdGUvbGQtZWxmL3ByMjYyNTYt M2EuZCAgICAgfCAxMSArKysrCiBsZC90ZXN0c3VpdGUvbGQtZWxmL3ByMjYyNTYtM2EudCAgICAg fCAxNyArKysrKysKIGxkL3Rlc3RzdWl0ZS9sZC1lbGYvcHIyNjI1Ni0zYi5kICAgICB8IDEyICsr KysKIGxkL3Rlc3RzdWl0ZS9sZC1lbGYvcHIyNjI1Ni0zYi50ICAgICB8IDE2ICsrKysrKwogMTkg ZmlsZXMgY2hhbmdlZCwgMzE0IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGxkL3Rlc3RzdWl0ZS9sZC1lbGYvcHIyNjI1Ni0xLnMKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBsZC90ZXN0c3VpdGUvbGQtZWxmL3ByMjYyNTYtMS50CiBjcmVhdGUgbW9kZSAxMDA2 NDQgbGQvdGVzdHN1aXRlL2xkLWVsZi9wcjI2MjU2LTFhLmQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBs ZC90ZXN0c3VpdGUvbGQtZWxmL3ByMjYyNTYtMWIuZAogY3JlYXRlIG1vZGUgMTAwNjQ0IGxkL3Rl c3RzdWl0ZS9sZC1lbGYvcHIyNjI1Ni0yLnMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsZC90ZXN0c3Vp dGUvbGQtZWxmL3ByMjYyNTYtMi50CiBjcmVhdGUgbW9kZSAxMDA2NDQgbGQvdGVzdHN1aXRlL2xk LWVsZi9wcjI2MjU2LTJhLmQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsZC90ZXN0c3VpdGUvbGQtZWxm L3ByMjYyNTYtMmItYWx0LmQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsZC90ZXN0c3VpdGUvbGQtZWxm L3ByMjYyNTYtMmIuZAogY3JlYXRlIG1vZGUgMTAwNjQ0IGxkL3Rlc3RzdWl0ZS9sZC1lbGYvcHIy NjI1Ni0zLnMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsZC90ZXN0c3VpdGUvbGQtZWxmL3ByMjYyNTYt M2EuZAogY3JlYXRlIG1vZGUgMTAwNjQ0IGxkL3Rlc3RzdWl0ZS9sZC1lbGYvcHIyNjI1Ni0zYS50 CiBjcmVhdGUgbW9kZSAxMDA2NDQgbGQvdGVzdHN1aXRlL2xkLWVsZi9wcjI2MjU2LTNiLmQKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBsZC90ZXN0c3VpdGUvbGQtZWxmL3ByMjYyNTYtM2IudAoKZGlmZiAt LWdpdCBhL2JmZC9iZmQtaW4yLmggYi9iZmQvYmZkLWluMi5oCmluZGV4IDUxOTZiYjY5NDBkLi40 M2VhZDE4NWMxOSAxMDA2NDQKLS0tIGEvYmZkL2JmZC1pbjIuaAorKysgYi9iZmQvYmZkLWluMi5o CkBAIC0xMTg0LDYgKzExODQsOSBAQCB0eXBlZGVmIHN0cnVjdCBiZmRfc2VjdGlvbgogICBzdHJ1 Y3QgYmZkX3N5bWJvbCAqc3ltYm9sOwogICBzdHJ1Y3QgYmZkX3N5bWJvbCAqKnN5bWJvbF9wdHJf cHRyOwogCisgIC8qIFRoZSBtYXRjaGluZyBzZWN0aW9uIG5hbWUgcGF0dGVybiBpbiBsaW5rZXIg c2NyaXB0LiAgKi8KKyAgY29uc3QgY2hhciAqcGF0dGVybjsKKwogICAvKiBFYXJseSBpbiB0aGUg bGluayBwcm9jZXNzLCBtYXBfaGVhZCBhbmQgbWFwX3RhaWwgYXJlIHVzZWQgdG8gYnVpbGQKICAg ICAgYSBsaXN0IG9mIGlucHV0IHNlY3Rpb25zIGF0dGFjaGVkIHRvIGFuIG91dHB1dCBzZWN0aW9u LiAgTGF0ZXIsCiAgICAgIG91dHB1dCBzZWN0aW9ucyB1c2UgdGhlc2UgZmllbGRzIGZvciBhIGxp c3Qgb2YgYmZkX2xpbmtfb3JkZXIKQEAgLTEzNzcsOCArMTM4MCw4IEBAIGRpc2NhcmRlZF9zZWN0 aW9uIChjb25zdCBhc2VjdGlvbiAqc2VjKQogICAvKiB0YXJnZXRfaW5kZXgsIHVzZWRfYnlfYmZk LCBjb25zdHJ1Y3Rvcl9jaGFpbiwgb3duZXIsICAgICAgICAgICAqLyBcCiAgICAgIDAsICAgICAg ICAgICAgTlVMTCwgICAgICAgIE5VTEwsICAgICAgICAgICAgICBOVUxMLCAgICAgICAgICAgICAg IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAotICAvKiBzeW1ib2wsICAgICAgICAgICAgICAgICAgICBzeW1i b2xfcHRyX3B0ciwgICAgICAgICAgICAgICAgICAgICAqLyBcCi0gICAgIChzdHJ1Y3QgYmZkX3N5 bWJvbCAqKSBTWU0sICZTRUMuc3ltYm9sLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAg Lyogc3ltYm9sLCAgICAgICAgICAgICAgICAgICAgc3ltYm9sX3B0cl9wdHIsIHBhdHRlcm4sICAg ICAgICAgICAgKi8gXAorICAgICAoc3RydWN0IGJmZF9zeW1ib2wgKikgU1lNLCAmU0VDLnN5bWJv bCwgICAgTlVMTCwgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgLyogbWFw X2hlYWQsIG1hcF90YWlsLCBhbHJlYWR5X2Fzc2lnbmVkICAgICAgICAgICAgICAgICAgICAgICAg ICAgKi8gXAogICAgICB7IE5VTEwgfSwgeyBOVUxMIH0sIE5VTEwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCmRpZmYgLS1naXQgYS9iZmQvZWxmbGluay5jIGIvYmZk L2VsZmxpbmsuYwppbmRleCA0NDg5ODlhMjgyNy4uZGY1Yjk5N2NmMDAgMTAwNjQ0Ci0tLSBhL2Jm ZC9lbGZsaW5rLmMKKysrIGIvYmZkL2VsZmxpbmsuYwpAQCAtMTE4NjksOCArMTE4NjksMjEgQEAg Y29tcGFyZV9saW5rX29yZGVyIChjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiKQogICBjb25z dCBzdHJ1Y3QgYmZkX2xpbmtfb3JkZXIgKmJsbyA9ICooY29uc3Qgc3RydWN0IGJmZF9saW5rX29y ZGVyICoqKSBiOwogICBhc2VjdGlvbiAqYXNlYyA9IGVsZl9saW5rZWRfdG9fc2VjdGlvbiAoYWxv LT51LmluZGlyZWN0LnNlY3Rpb24pOwogICBhc2VjdGlvbiAqYnNlYyA9IGVsZl9saW5rZWRfdG9f c2VjdGlvbiAoYmxvLT51LmluZGlyZWN0LnNlY3Rpb24pOwotICBiZmRfdm1hIGFwb3MgPSBhc2Vj LT5vdXRwdXRfc2VjdGlvbi0+bG1hICsgYXNlYy0+b3V0cHV0X29mZnNldDsKLSAgYmZkX3ZtYSBi cG9zID0gYnNlYy0+b3V0cHV0X3NlY3Rpb24tPmxtYSArIGJzZWMtPm91dHB1dF9vZmZzZXQ7Cisg IGJmZF92bWEgYXBvcywgYnBvczsKKworICAvKiBDaGVjayBpZiBhbnkgc2VjdGlvbnMgYXJlIHVu b3JkZXJlZC4gICovCisgIGlmIChhc2VjID09IE5VTEwgfHwgYnNlYyA9PSBOVUxMKQorICAgIHsK KyAgICAgIC8qIFBsYWNlIHVub3JkZXJlZCBzZWN0aW9ucyBiZWZvcmUgb3JkZXJlZCBzZWN0aW9u cy4gICovCisgICAgICBpZiAoYnNlYyAhPSBOVUxMKQorCXJldHVybiAtMTsKKyAgICAgIGVsc2Ug aWYgKGFzZWMgIT0gTlVMTCkKKwlyZXR1cm4gMTsKKyAgICAgIHJldHVybiAwOworICAgIH0KKwor ICBhcG9zID0gYXNlYy0+b3V0cHV0X3NlY3Rpb24tPmxtYSArIGFzZWMtPm91dHB1dF9vZmZzZXQ7 CisgIGJwb3MgPSBic2VjLT5vdXRwdXRfc2VjdGlvbi0+bG1hICsgYnNlYy0+b3V0cHV0X29mZnNl dDsKIAogICBpZiAoYXBvcyA8IGJwb3MpCiAgICAgcmV0dXJuIC0xOwpAQCAtMTE5MDUsMTQgKzEx OTE4LDE0IEBAIGNvbXBhcmVfbGlua19vcmRlciAoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAq YikKICAgIHNlY3Rpb25zLiAgSWRlYWxseSB3ZSdkIGRvIHRoaXMgaW4gdGhlIGxpbmtlciBwcm9w ZXIuICAqLwogCiBzdGF0aWMgYmZkX2Jvb2xlYW4KLWVsZl9maXh1cF9saW5rX29yZGVyIChiZmQg KmFiZmQsIGFzZWN0aW9uICpvKQorZWxmX2ZpeHVwX2xpbmtfb3JkZXIgKHN0cnVjdCBiZmRfbGlu a19pbmZvICppbmZvLCBiZmQgKmFiZmQsIGFzZWN0aW9uICpvKQogewogICBzaXplX3Qgc2Vlbl9s aW5rb3JkZXI7CiAgIHNpemVfdCBzZWVuX290aGVyOwogICBzaXplX3QgbjsKICAgc3RydWN0IGJm ZF9saW5rX29yZGVyICpwOwogICBiZmQgKnN1YjsKLSAgc3RydWN0IGJmZF9saW5rX29yZGVyICoq c2VjdGlvbnM7CisgIHN0cnVjdCBiZmRfbGlua19vcmRlciAqKnNlY3Rpb25zLCAqKmluZGlyZWN0 X3NlY3Rpb25zOwogICBhc2VjdGlvbiAqb3RoZXJfc2VjLCAqbGlua29yZGVyX3NlYzsKICAgYmZk X3ZtYSBvZmZzZXQ7ICAvKiBPY3RldHMuICAqLwogCkBAIC0xMTk0Myw3ICsxMTk1Niw5IEBAIGVs Zl9maXh1cF9saW5rX29yZGVyIChiZmQgKmFiZmQsIGFzZWN0aW9uICpvKQogICAgICAgZWxzZQog CXNlZW5fb3RoZXIrKzsKIAotICAgICAgaWYgKHNlZW5fb3RoZXIgJiYgc2Vlbl9saW5rb3JkZXIp CisgICAgICAvKiBBbGxvdyBtaXhlZCBvcmRlcmVkIGFuZCB1bm9yZGVyZWQgaW5wdXQgc2VjdGlv bnMgZm9yCisgICAgICAgICBub24tcmVsb2NhdGFibGUgbGluay4gICovCisgICAgICBpZiAoYmZk X2xpbmtfcmVsb2NhdGFibGUgKGluZm8pICYmIHNlZW5fb3RoZXIgJiYgc2Vlbl9saW5rb3JkZXIp CiAJewogCSAgaWYgKG90aGVyX3NlYyAmJiBsaW5rb3JkZXJfc2VjKQogCSAgICBfYmZkX2Vycm9y X2hhbmRsZXIKQEAgLTExOTYzLDYgKzExOTc4LDEwIEBAIGVsZl9maXh1cF9saW5rX29yZGVyIChi ZmQgKmFiZmQsIGFzZWN0aW9uICpvKQogICBpZiAoIXNlZW5fbGlua29yZGVyKQogICAgIHJldHVy biBUUlVFOwogCisgIC8qIE5vbi1yZWxvY2F0YWJsZSBvdXRwdXQgY2FuIGhhdmUgYm90aCBvcmRl cmVkIGFuZCB1bm9yZGVyZWQgaW5wdXQKKyAgICAgc2VjdGlvbnMuICAqLworICBzZWVuX2xpbmtv cmRlciArPSBzZWVuX290aGVyOworCiAgIHNlY3Rpb25zID0gYmZkX21hbGxvYyAoc2Vlbl9saW5r b3JkZXIgKiBzaXplb2YgKCpzZWN0aW9ucykpOwogICBpZiAoc2VjdGlvbnMgPT0gTlVMTCkKICAg ICByZXR1cm4gRkFMU0U7CkBAIC0xMTk3MSwyMiArMTE5OTAsNDggQEAgZWxmX2ZpeHVwX2xpbmtf b3JkZXIgKGJmZCAqYWJmZCwgYXNlY3Rpb24gKm8pCiAgIGZvciAocCA9IG8tPm1hcF9oZWFkLmxp bmtfb3JkZXI7IHAgIT0gTlVMTDsgcCA9IHAtPm5leHQpCiAgICAgc2VjdGlvbnNbc2Vlbl9saW5r b3JkZXIrK10gPSBwOwogCi0gIC8qIFNvcnQgdGhlIGlucHV0IHNlY3Rpb25zIGluIHRoZSBvcmRl ciBvZiB0aGVpciBsaW5rZWQgc2VjdGlvbi4gICovCi0gIHFzb3J0IChzZWN0aW9ucywgc2Vlbl9s aW5rb3JkZXIsIHNpemVvZiAoKnNlY3Rpb25zKSwgY29tcGFyZV9saW5rX29yZGVyKTsKKyAgZm9y IChpbmRpcmVjdF9zZWN0aW9ucyA9IHNlY3Rpb25zLCBuID0gMDsKKyAgICAgICBuIDwgc2Vlbl9s aW5rb3JkZXI7CisgICAgICAgaW5kaXJlY3Rfc2VjdGlvbnMrKywgbisrKQorICAgIHsKKyAgICAg IC8qIEZpbmQgdGhlIGZpcnN0IGJmZF9pbmRpcmVjdF9saW5rX29yZGVyIHNlY3Rpb24uICAqLwor ICAgICAgaWYgKGluZGlyZWN0X3NlY3Rpb25zWzBdLT50eXBlID09IGJmZF9pbmRpcmVjdF9saW5r X29yZGVyKQorCXsKKwkgIC8qIENvdW50IHRoZSBjb25zZWN1dGl2ZSBiZmRfaW5kaXJlY3RfbGlu a19vcmRlciBzZWN0aW9ucworCSAgICAgd2l0aCB0aGUgc2FtZSBwYXR0ZXJuLiAgKi8KKwkgIHNp emVfdCBpLCBuX2luZGlyZWN0OworCSAgY29uc3QgY2hhciAqcGF0dGVybgorCSAgICA9IGluZGly ZWN0X3NlY3Rpb25zWzBdLT51LmluZGlyZWN0LnNlY3Rpb24tPnBhdHRlcm47CisJICBmb3IgKGkg PSBuICsgMTsgaSA8IHNlZW5fbGlua29yZGVyOyBpKyspCisJICAgIGlmIChzZWN0aW9uc1tpXS0+ dHlwZSAhPSBiZmRfaW5kaXJlY3RfbGlua19vcmRlcgorCQl8fCBzZWN0aW9uc1tpXS0+dS5pbmRp cmVjdC5zZWN0aW9uLT5wYXR0ZXJuICE9IHBhdHRlcm4pCisJICAgICAgYnJlYWs7CisJICBuX2lu ZGlyZWN0ID0gaSAtIG47CisJICAvKiBTb3J0IHRoZSBiZmRfaW5kaXJlY3RfbGlua19vcmRlciBz ZWN0aW9ucyBpbiB0aGUgb3JkZXIgb2YKKwkgICAgIHRoZWlyIGxpbmtlZCBzZWN0aW9uLiAgKi8K KwkgIHFzb3J0IChpbmRpcmVjdF9zZWN0aW9ucywgbl9pbmRpcmVjdCwgc2l6ZW9mICgqc2VjdGlv bnMpLAorCQkgY29tcGFyZV9saW5rX29yZGVyKTsKKwkgIGluZGlyZWN0X3NlY3Rpb25zICs9IG5f aW5kaXJlY3Q7CisJICBuICs9IG5faW5kaXJlY3Q7CisJfQorICAgIH0KIAotICAvKiBDaGFuZ2Ug dGhlIG9mZnNldHMgb2YgdGhlIHNlY3Rpb25zLiAgKi8KKyAgLyogQ2hhbmdlIHRoZSBvZmZzZXRz IG9mIHRoZSBiZmRfaW5kaXJlY3RfbGlua19vcmRlciBzZWN0aW9ucy4gICovCiAgIG9mZnNldCA9 IDA7CiAgIGZvciAobiA9IDA7IG4gPCBzZWVuX2xpbmtvcmRlcjsgbisrKQotICAgIHsKLSAgICAg IGJmZF92bWEgbWFzazsKLSAgICAgIGFzZWN0aW9uICpzID0gc2VjdGlvbnNbbl0tPnUuaW5kaXJl Y3Quc2VjdGlvbjsKLSAgICAgIHVuc2lnbmVkIGludCBvcGIgPSBiZmRfb2N0ZXRzX3Blcl9ieXRl IChhYmZkLCBzKTsKLQotICAgICAgbWFzayA9IH4oYmZkX3ZtYSkgMCA8PCBzLT5hbGlnbm1lbnRf cG93ZXIgKiBvcGI7Ci0gICAgICBvZmZzZXQgPSAob2Zmc2V0ICsgfm1hc2spICYgbWFzazsKLSAg ICAgIHNlY3Rpb25zW25dLT5vZmZzZXQgPSBzLT5vdXRwdXRfb2Zmc2V0ID0gb2Zmc2V0IC8gb3Bi OwotICAgICAgb2Zmc2V0ICs9IHNlY3Rpb25zW25dLT5zaXplOwotICAgIH0KKyAgICBpZiAoc2Vj dGlvbnNbbl0tPnR5cGUgPT0gYmZkX2luZGlyZWN0X2xpbmtfb3JkZXIpCisgICAgICB7CisJYmZk X3ZtYSBtYXNrOworCWFzZWN0aW9uICpzID0gc2VjdGlvbnNbbl0tPnUuaW5kaXJlY3Quc2VjdGlv bjsKKwl1bnNpZ25lZCBpbnQgb3BiID0gYmZkX29jdGV0c19wZXJfYnl0ZSAoYWJmZCwgcyk7CisK KwltYXNrID0gfihiZmRfdm1hKSAwIDw8IHMtPmFsaWdubWVudF9wb3dlciAqIG9wYjsKKwlvZmZz ZXQgPSAob2Zmc2V0ICsgfm1hc2spICYgbWFzazsKKwlzZWN0aW9uc1tuXS0+b2Zmc2V0ID0gcy0+ b3V0cHV0X29mZnNldCA9IG9mZnNldCAvIG9wYjsKKwlvZmZzZXQgKz0gc2VjdGlvbnNbbl0tPnNp emU7CisgICAgICB9CisgICAgZWxzZQorICAgICAgb2Zmc2V0ID0gc2VjdGlvbnNbbl0tPm9mZnNl dCArIHNlY3Rpb25zW25dLT5zaXplOwogCiAgIGZyZWUgKHNlY3Rpb25zKTsKICAgcmV0dXJuIFRS VUU7CkBAIC0xMjYyOSw3ICsxMjY3NCw3IEBAIGJmZF9lbGZfZmluYWxfbGluayAoYmZkICphYmZk LCBzdHJ1Y3QgYmZkX2xpbmtfaW5mbyAqaW5mbykKICAgLyogUmVvcmRlciBTSEZfTElOS19PUkRF UiBzZWN0aW9ucy4gICovCiAgIGZvciAobyA9IGFiZmQtPnNlY3Rpb25zOyBvICE9IE5VTEw7IG8g PSBvLT5uZXh0KQogICAgIHsKLSAgICAgIGlmICghZWxmX2ZpeHVwX2xpbmtfb3JkZXIgKGFiZmQs IG8pKQorICAgICAgaWYgKCFlbGZfZml4dXBfbGlua19vcmRlciAoaW5mbywgYWJmZCwgbykpCiAJ cmV0dXJuIEZBTFNFOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvYmZkL3NlY3Rpb24uYyBiL2JmZC9z ZWN0aW9uLmMKaW5kZXggM2U2YmEwYzA5MzguLjEwZWZjM2M0YWE3IDEwMDY0NAotLS0gYS9iZmQv c2VjdGlvbi5jCisrKyBiL2JmZC9zZWN0aW9uLmMKQEAgLTU0MSw2ICs1NDEsOSBAQCBDT0RFX0ZS QUdNRU5UCiAuICBzdHJ1Y3QgYmZkX3N5bWJvbCAqc3ltYm9sOwogLiAgc3RydWN0IGJmZF9zeW1i b2wgKipzeW1ib2xfcHRyX3B0cjsKIC4KKy4gIHsqIFRoZSBtYXRjaGluZyBzZWN0aW9uIG5hbWUg cGF0dGVybiBpbiBsaW5rZXIgc2NyaXB0LiAgKn0KKy4gIGNvbnN0IGNoYXIgKnBhdHRlcm47Cisu CiAuICB7KiBFYXJseSBpbiB0aGUgbGluayBwcm9jZXNzLCBtYXBfaGVhZCBhbmQgbWFwX3RhaWwg YXJlIHVzZWQgdG8gYnVpbGQKIC4gICAgIGEgbGlzdCBvZiBpbnB1dCBzZWN0aW9ucyBhdHRhY2hl ZCB0byBhbiBvdXRwdXQgc2VjdGlvbi4gIExhdGVyLAogLiAgICAgb3V0cHV0IHNlY3Rpb25zIHVz ZSB0aGVzZSBmaWVsZHMgZm9yIGEgbGlzdCBvZiBiZmRfbGlua19vcmRlcgpAQCAtNzM0LDggKzcz Nyw4IEBAIENPREVfRlJBR01FTlQKIC4gIHsqIHRhcmdldF9pbmRleCwgdXNlZF9ieV9iZmQsIGNv bnN0cnVjdG9yX2NoYWluLCBvd25lciwgICAgICAgICAgICp9CVwKIC4gICAgIDAsICAgICAgICAg ICAgTlVMTCwgICAgICAgIE5VTEwsICAgICAgICAgICAgICBOVUxMLAkJXAogLgkJCQkJCQkJCVwK LS4gIHsqIHN5bWJvbCwgICAgICAgICAgICAgICAgICAgIHN5bWJvbF9wdHJfcHRyLCAgICAgICAg ICAgICAgICAgICAgICp9CVwKLS4gICAgIChzdHJ1Y3QgYmZkX3N5bWJvbCAqKSBTWU0sICZTRUMu c3ltYm9sLAkJCQlcCisuICB7KiBzeW1ib2wsICAgICAgICAgICAgICAgICAgICBzeW1ib2xfcHRy X3B0ciwgcGF0dGVybiwgICAgICAgICAgICAqfQlcCisuICAgICAoc3RydWN0IGJmZF9zeW1ib2wg KikgU1lNLCAmU0VDLnN5bWJvbCwgICAgTlVMTCwJCQlcCiAuCQkJCQkJCQkJXAogLiAgeyogbWFw X2hlYWQsIG1hcF90YWlsLCBhbHJlYWR5X2Fzc2lnbmVkICAgICAgICAgICAgICAgICAgICAgICAg ICAgKn0JXAogLiAgICAgeyBOVUxMIH0sIHsgTlVMTCB9LCBOVUxMCQkJCQkJXApkaWZmIC0tZ2l0 IGEvZ2FzL2NvbmZpZy9vYmotZWxmLmMgYi9nYXMvY29uZmlnL29iai1lbGYuYwppbmRleCBiZjc5 YjA1NzQzZC4uOTRmYTgwNTFhMGIgMTAwNjQ0Ci0tLSBhL2dhcy9jb25maWcvb2JqLWVsZi5jCisr KyBiL2dhcy9jb25maWcvb2JqLWVsZi5jCkBAIC02NjYsNyArNjY2LDkgQEAgb2JqX2VsZl9jaGFu Z2Vfc2VjdGlvbiAoY29uc3QgY2hhciAqbmFtZSwKIAkgICAgfQogCX0KIAotICAgICAgaWYgKG9s ZF9zZWMgPT0gTlVMTCAmJiAoKGF0dHIgJiB+KFNIRl9NQVNLT1MgfCBTSEZfTUFTS1BST0MpKQor ICAgICAgaWYgKG9sZF9zZWMgPT0gTlVMTCAmJiAoKGF0dHIgJiB+KFNIRl9MSU5LX09SREVSCisJ CQkJCXwgU0hGX01BU0tPUworCQkJCQl8IFNIRl9NQVNLUFJPQykpCiAJCQkgICAgICAmIH5zc2Vj dC0+YXR0cikgIT0gMCkKIAl7CiAJICAvKiBBcyBhIEdOVSBleHRlbnNpb24sIHdlIHBlcm1pdCBh IC5ub3RlIHNlY3Rpb24gdG8gYmUKZGlmZiAtLWdpdCBhL2xkL2xkbGFuZy5jIGIvbGQvbGRsYW5n LmMKaW5kZXggMzI0NTBmYmJjYmEuLjhjYmVkYTY4ZjQ2IDEwMDY0NAotLS0gYS9sZC9sZGxhbmcu YworKysgYi9sZC9sZGxhbmcuYwpAQCAtNzQ4OCw3ICs3NDg4LDcgQEAgbGFuZ19yZXNldF9tZW1v cnlfcmVnaW9ucyAodm9pZCkKIAogc3RhdGljIHZvaWQKIGdjX3NlY3Rpb25fY2FsbGJhY2sgKGxh bmdfd2lsZF9zdGF0ZW1lbnRfdHlwZSAqcHRyLAotCQkgICAgIHN0cnVjdCB3aWxkY2FyZF9saXN0 ICpzZWMgQVRUUklCVVRFX1VOVVNFRCwKKwkJICAgICBzdHJ1Y3Qgd2lsZGNhcmRfbGlzdCAqc2Vj LAogCQkgICAgIGFzZWN0aW9uICpzZWN0aW9uLAogCQkgICAgIHN0cnVjdCBmbGFnX2luZm8gKnNm bGFnX2luZm8gQVRUUklCVVRFX1VOVVNFRCwKIAkJICAgICBsYW5nX2lucHV0X3N0YXRlbWVudF90 eXBlICpmaWxlIEFUVFJJQlVURV9VTlVTRUQsCkBAIC03NDk4LDYgKzc0OTgsOCBAQCBnY19zZWN0 aW9uX2NhbGxiYWNrIChsYW5nX3dpbGRfc3RhdGVtZW50X3R5cGUgKnB0ciwKICAgICAgc2hvdWxk IGJlIGFzIHdlbGwuICAqLwogICBpZiAocHRyLT5rZWVwX3NlY3Rpb25zKQogICAgIHNlY3Rpb24t PmZsYWdzIHw9IFNFQ19LRUVQOworICBpZiAoc2VjKQorICAgIHNlY3Rpb24tPnBhdHRlcm4gPSBz ZWMtPnNwZWMubmFtZTsKIH0KIAogLyogSXRlcmF0ZSBvdmVyIHNlY3Rpb25zIG1hcmtpbmcgdGhl bSBhZ2FpbnN0IEdDLiAgKi8KZGlmZiAtLWdpdCBhL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvcHIyNjI1 Ni0xLnMgYi9sZC90ZXN0c3VpdGUvbGQtZWxmL3ByMjYyNTYtMS5zCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43MzUxZjc2NjU1YQotLS0gL2Rldi9udWxsCisrKyBiL2xk L3Rlc3RzdWl0ZS9sZC1lbGYvcHIyNjI1Ni0xLnMKQEAgLTAsMCArMSwyMCBAQAorCS5zZWN0aW9u CS50ZXh0LmJhciwiYXgiLCVwcm9nYml0cworCS5nbG9ibAliYXIKKwkudHlwZQliYXIsICVmdW5j dGlvbgorYmFyOgorCS5zZWN0aW9uIF9fcGF0Y2hhYmxlX2Z1bmN0aW9uX2VudHJpZXMsImF3byIs JXByb2diaXRzLGJhcgorCS5kYy5hCS5MUEZFMQorCS5zZWN0aW9uCS50ZXh0LmJhciwiYXgiLCVw cm9nYml0cworLkxQRkUxOgorCS5ieXRlIDAKKwkuc2VjdGlvbgkudGV4dC5fc3RhcnQsImF4Iiwl cHJvZ2JpdHMKKwkuZ2xvYmwJX3N0YXJ0CisJLnR5cGUJX3N0YXJ0LCAlZnVuY3Rpb24KK19zdGFy dDoKKwkuc2VjdGlvbiBfX3BhdGNoYWJsZV9mdW5jdGlvbl9lbnRyaWVzLCJhd28iLCVwcm9nYml0 cyxfc3RhcnQKKwkuZGMuYQkuTFBGRTIKKwkuc2VjdGlvbgkudGV4dC5fc3RhcnQsImF4IiwlcHJv Z2JpdHMKKy5MUEZFMjoKKwkuYnl0ZSAwCisJLnNlY3Rpb24gLmluaXQuZGF0YSwiYXciLCVwcm9n Yml0cworCS5ieXRlIDAKZGlmZiAtLWdpdCBhL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvcHIyNjI1Ni0x LnQgYi9sZC90ZXN0c3VpdGUvbGQtZWxmL3ByMjYyNTYtMS50Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi5mOTNmZmY5MzU0MQotLS0gL2Rldi9udWxsCisrKyBiL2xkL3Rl c3RzdWl0ZS9sZC1lbGYvcHIyNjI1Ni0xLnQKQEAgLTAsMCArMSwxMyBAQAorU0VDVElPTlMKK3sK KyAgLnRleHQgOiB7ICooLnRleHQqKSB9CisgIC5pbml0LmRhdGEgOgorICB7CisgICAgKiguaW5p dC5kYXRhKTsKKyAgICAqKF9fcGF0Y2hhYmxlX2Z1bmN0aW9uX2VudHJpZXMpOworICB9CisgIC9E SVNDQVJELyA6CisgIHsKKyAgICAqKC5yZWdpbmZvKSAqKC5NSVBTLmFiaWZsYWdzKSAqKC5NSVBT Lm9wdGlvbnMpICooLnRyYW1wb2xpbmVzKQorICB9Cit9CmRpZmYgLS1naXQgYS9sZC90ZXN0c3Vp dGUvbGQtZWxmL3ByMjYyNTYtMWEuZCBiL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvcHIyNjI1Ni0xYS5k Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wMjVhY2UwZTg3OQotLS0g L2Rldi9udWxsCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvcHIyNjI1Ni0xYS5kCkBAIC0wLDAg KzEsNyBAQAorI3NvdXJjZTogcHIyNjI1Ni0xLnMKKyNsZDogLWUgX3N0YXJ0IC1UIHByMjYyNTYt MS50Cisjbm06IC1uCisKKyMuLi4KK1swLTlhLWZdKyBUIF9zdGFydAorI3Bhc3MKZGlmZiAtLWdp dCBhL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvcHIyNjI1Ni0xYi5kIGIvbGQvdGVzdHN1aXRlL2xkLWVs Zi9wcjI2MjU2LTFiLmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjc2 MGM2ZDgyZTdiCi0tLSAvZGV2L251bGwKKysrIGIvbGQvdGVzdHN1aXRlL2xkLWVsZi9wcjI2MjU2 LTFiLmQKQEAgLTAsMCArMSw3IEBACisjc291cmNlOiBwcjI2MjU2LTEucworI2xkOiAtZSBfc3Rh cnQKKyNubTogLW4KKworIy4uLgorWzAtOWEtZl0rIFQgX3N0YXJ0CisjcGFzcwpkaWZmIC0tZ2l0 IGEvbGQvdGVzdHN1aXRlL2xkLWVsZi9wcjI2MjU2LTIucyBiL2xkL3Rlc3RzdWl0ZS9sZC1lbGYv cHIyNjI1Ni0yLnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjcwZTM2 OTNmNDI5Ci0tLSAvZGV2L251bGwKKysrIGIvbGQvdGVzdHN1aXRlL2xkLWVsZi9wcjI2MjU2LTIu cwpAQCAtMCwwICsxLDMyIEBACisJLnNlY3Rpb24gLnRleHQsImF4IiwlcHJvZ2JpdHMsdW5pcXVl LDAKKwkuZ2xvYmwgdGV4dDAKK3RleHQwOgorCS5ub3AKKwkuc2VjdGlvbiAudGV4dCwiYXgiLCVw cm9nYml0cyx1bmlxdWUsMQorCS5nbG9ibCB0ZXh0MQordGV4dDE6CisJLm5vcAorCS5zZWN0aW9u IC5saW5rb3JkZXIsImFvIiwlcHJvZ2JpdHMsMCx1bmlxdWUsMAorCS5nbG9ibCBsaW5rb3JkZXIy CitsaW5rb3JkZXIyOgorCS5ieXRlIDAKKwkuc2VjdGlvbiAubGlua29yZGVyLCJhbyIsJXByb2di aXRzLHRleHQwCisJLmdsb2JsIGxpbmtvcmRlcjAKK2xpbmtvcmRlcjA6CisJLmJ5dGUgMQorCS5z ZWN0aW9uIC5saW5rb3JkZXIsImFvIiwlcHJvZ2JpdHMsdGV4dDEKKwkuZ2xvYmwgbGlua29yZGVy MQorbGlua29yZGVyMToKKwkuYnl0ZSAyCisJLnNlY3Rpb24gLmxpbmtvcmRlciwiYSIsJXByb2di aXRzCisJLmdsb2JsIGxpbmtvcmRlcjMKK2xpbmtvcmRlcjM6CisJLmJ5dGUgMworCS5zZWN0aW9u IC5saW5rb3JkZXIsImFvIiwlcHJvZ2JpdHMsMCx1bmlxdWUsMworCS5nbG9ibCBsaW5rb3JkZXI0 CitsaW5rb3JkZXI0OgorCS5ieXRlIDQKKwkudGV4dAorCS5nbG9iYWwgX3N0YXJ0Citfc3RhcnQ6 CisJLm5vcApkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLWVsZi9wcjI2MjU2LTIudCBiL2xk L3Rlc3RzdWl0ZS9sZC1lbGYvcHIyNjI1Ni0yLnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjBjNWU1YmMyZjEzCi0tLSAvZGV2L251bGwKKysrIGIvbGQvdGVzdHN1aXRl L2xkLWVsZi9wcjI2MjU2LTIudApAQCAtMCwwICsxLDkgQEAKK1NFQ1RJT05TCit7CisgIC5saW5r b3JkZXIgOiB7ICooLmxpbmtvcmRlci4qKSB9CisgIC50ZXh0IDogeyAqKC50ZXh0KSB9CisgIC9E SVNDQVJELyA6CisgIHsKKyAgICAqKC5yZWdpbmZvKSAqKC5NSVBTLmFiaWZsYWdzKSAqKC5NSVBT Lm9wdGlvbnMpICooLnRyYW1wb2xpbmVzKQorICB9Cit9CmRpZmYgLS1naXQgYS9sZC90ZXN0c3Vp dGUvbGQtZWxmL3ByMjYyNTYtMmEuZCBiL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvcHIyNjI1Ni0yYS5k Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wMzgwNGQ4NDRkNwotLS0g L2Rldi9udWxsCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvcHIyNjI1Ni0yYS5kCkBAIC0wLDAg KzEsMjAgQEAKKyNzb3VyY2U6IHByMjYyNTYtMi5zCisjbGQ6IC1lIF9zdGFydCAtVCBwcjI2MjU2 LTIudAorI25tOiAtbgorI3hmYWlsOiBbaXNfZ2VuZXJpY10KKworIy4uLgorWzAtOWEtZl0rIFIg bGlua29yZGVyMgorIy4uLgorWzAtOWEtZl0rIFIgbGlua29yZGVyMworIy4uLgorWzAtOWEtZl0r IFIgbGlua29yZGVyNAorIy4uLgorWzAtOWEtZl0rIFIgbGlua29yZGVyMAorIy4uLgorWzAtOWEt Zl0rIFIgbGlua29yZGVyMQorIy4uLgorWzAtOWEtZl0rIFQgdGV4dDAKKyMuLi4KK1swLTlhLWZd KyBUIHRleHQxCisjcGFzcwpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLWVsZi9wcjI2MjU2 LTJiLWFsdC5kIGIvbGQvdGVzdHN1aXRlL2xkLWVsZi9wcjI2MjU2LTJiLWFsdC5kCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mMmYwM2EwZjBjMwotLS0gL2Rldi9udWxs CisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvcHIyNjI1Ni0yYi1hbHQuZApAQCAtMCwwICsxLDIx IEBACisjc291cmNlOiBwcjI2MjU2LTIucworI2xkOiAtZSBfc3RhcnQKKyNubTogLW4KKyN0YXJn ZXQ6IGZyMzAtKi0qIGlxMjAwMC0qLSogaXAyay0qLSogeHN0b3JteTE2LSotKgorIyBUaGVzZSB0 YXJnZXRzIHBsYWNlIC5saW5rb3JkZXIgc2VjdGlvbnMgYmVmb3JlIC50ZXh0IHNlY3Rpb25zLgor CisjLi4uCitbMC05YS1mXSsgUiBsaW5rb3JkZXIyCisjLi4uCitbMC05YS1mXSsgUiBsaW5rb3Jk ZXIzCisjLi4uCitbMC05YS1mXSsgUiBsaW5rb3JkZXI0CisjLi4uCitbMC05YS1mXSsgUiBsaW5r b3JkZXIwCisjLi4uCitbMC05YS1mXSsgUiBsaW5rb3JkZXIxCisjLi4uCitbMC05YS1mXSsgVCB0 ZXh0MAorIy4uLgorWzAtOWEtZl0rIFQgdGV4dDEKKyNwYXNzCmRpZmYgLS1naXQgYS9sZC90ZXN0 c3VpdGUvbGQtZWxmL3ByMjYyNTYtMmIuZCBiL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvcHIyNjI1Ni0y Yi5kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42MGMzYmZmN2NkMwot LS0gL2Rldi9udWxsCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvcHIyNjI1Ni0yYi5kCkBAIC0w LDAgKzEsMjIgQEAKKyNzb3VyY2U6IHByMjYyNTYtMi5zCisjbGQ6IC1lIF9zdGFydAorI25tOiAt bgorI3hmYWlsOiBbaXNfZ2VuZXJpY10KKyNub3RhcmdldDogZnIzMC0qLSogaXEyMDAwLSotKiBp cDJrLSotKiB4c3Rvcm15MTYtKi0qCisjIFRoZXNlIHRhcmdldHMgcGxhY2UgLmxpbmtvcmRlciBz ZWN0aW9ucyBiZWZvcmUgLnRleHQgc2VjdGlvbnMuCisKKyMuLi4KK1swLTlhLWZdKyBUIHRleHQw CisjLi4uCitbMC05YS1mXSsgVCB0ZXh0MQorIy4uLgorWzAtOWEtZl0rIFIgbGlua29yZGVyMgor Iy4uLgorWzAtOWEtZl0rIFIgbGlua29yZGVyMworIy4uLgorWzAtOWEtZl0rIFIgbGlua29yZGVy NAorIy4uLgorWzAtOWEtZl0rIFIgbGlua29yZGVyMAorIy4uLgorWzAtOWEtZl0rIFIgbGlua29y ZGVyMQorI3Bhc3MKZGlmZiAtLWdpdCBhL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvcHIyNjI1Ni0zLnMg Yi9sZC90ZXN0c3VpdGUvbGQtZWxmL3ByMjYyNTYtMy5zCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi5iYWFkOWRjZDJlNwotLS0gL2Rldi9udWxsCisrKyBiL2xkL3Rlc3Rz dWl0ZS9sZC1lbGYvcHIyNjI1Ni0zLnMKQEAgLTAsMCArMSwyNyBAQAorCS50ZXh0CisJLmdsb2Jh bCBfc3RhcnQKK19zdGFydDoKKwkubG9uZyAweDMzMzMzMzMzCisJLmxvbmcgMHgzMzMzMzMzMwor CS5sb25nIDB4MzMzMzMzMzMKKwkubG9uZyAweDMzMzMzMzMzCisKKwkuc2VjdGlvbiAucm9zZWN0 aW9uLCJhIgorCS5ieXRlIDkKKworCS5zZWN0aW9uIC50ZXh0LmJhciwiYSIsJXByb2diaXRzCisJ LmxvbmcgMHgyMjIyMjIyMgorCS5sb25nIDB4MjIyMjIyMjIKKwkubG9uZyAweDIyMjIyMjIyCisJ LmxvbmcgMHgyMjIyMjIyMgorCS5zZWN0aW9uIC50ZXh0LmZvbywiYSIsJXByb2diaXRzCisJLmxv bmcgMHgxMTExMTExMQorCS5sb25nIDB4MTExMTExMTEKKwkubG9uZyAweDExMTExMTExCisJLmxv bmcgMHgxMTExMTExMQorCS5zZWN0aW9uIC5yb2RhdGEuZm9vLCJhbyIsJXByb2diaXRzLC50ZXh0 LmZvbworCS5ieXRlIDEKKwkuc2VjdGlvbiAucm9kYXRhLmJhciwiYSIsJXByb2diaXRzCisJLmJ5 dGUgMgorCS5zZWN0aW9uIC5yb2RhdGEuYmFyLCJhbyIsJXByb2diaXRzLC50ZXh0LmJhcgorCS5i eXRlIDMKZGlmZiAtLWdpdCBhL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvcHIyNjI1Ni0zYS5kIGIvbGQv dGVzdHN1aXRlL2xkLWVsZi9wcjI2MjU2LTNhLmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjQ1NDZmMGEwMDA0Ci0tLSAvZGV2L251bGwKKysrIGIvbGQvdGVzdHN1aXRl L2xkLWVsZi9wcjI2MjU2LTNhLmQKQEAgLTAsMCArMSwxMSBAQAorI3NvdXJjZTogcHIyNjI1Ni0z LnMKKyNsZDogLWUgX3N0YXJ0IC1UIHByMjYyNTYtM2EudAorI3JlYWRlbGY6IC14IC5yb2RhdGEg LXggLnRleHQKKworSGV4IGR1bXAgb2Ygc2VjdGlvbiBcJy5yb2RhdGFcJzoKKyAgMHhbYS1mMC05 XSsgKzAwMDEwMjAzICswNDA5MDcgKy4rCisKK0hleCBkdW1wIG9mIHNlY3Rpb24gXCcudGV4dFwn OgorICAweFthLWYwLTldKyArMjIyMjIyMjIgKzIyMjIyMjIyICsyMjIyMjIyMiArLisKKyAgMHhb YS1mMC05XSsgKzExMTExMTExICsxMTExMTExMSArMTExMTExMTEgKy4rCisgIDB4W2EtZjAtOV0r ICszMzMzMzMzMyArMzMzMzMzMzMgKzMzMzMzMzMzICsuKwpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1 aXRlL2xkLWVsZi9wcjI2MjU2LTNhLnQgYi9sZC90ZXN0c3VpdGUvbGQtZWxmL3ByMjYyNTYtM2Eu dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTJmNmZkMTE3MWQKLS0t IC9kZXYvbnVsbAorKysgYi9sZC90ZXN0c3VpdGUvbGQtZWxmL3ByMjYyNTYtM2EudApAQCAtMCww ICsxLDE3IEBACitTRUNUSU9OUworeworICAucm9kYXRhIDoKKyAgICB7CisgICAgICBCWVRFKDAp CisgICAgICAqKC5yb2RhdGEuZm9vKQorICAgICAgKigucm9kYXRhLmJhcikKKyAgICAgIEJZVEUo NCkKKyAgICAgICooLnJvc2VjdGlvbikKKyAgICAgIEJZVEUoNykKKyAgICB9CisgIC50ZXh0IDog eyooLnRleHQuYmFyKSAqKC50ZXh0LmZvbyl9CisgIC9ESVNDQVJELyA6CisgIHsKKyAgICAqKC5y ZWdpbmZvKSAqKC5NSVBTLmFiaWZsYWdzKSAqKC5NSVBTLm9wdGlvbnMpICooLnRyYW1wb2xpbmVz KQorICB9Cit9CmRpZmYgLS1naXQgYS9sZC90ZXN0c3VpdGUvbGQtZWxmL3ByMjYyNTYtM2IuZCBi L2xkL3Rlc3RzdWl0ZS9sZC1lbGYvcHIyNjI1Ni0zYi5kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi43ZDZkZmYyNGZiZAotLS0gL2Rldi9udWxsCisrKyBiL2xkL3Rlc3Rz dWl0ZS9sZC1lbGYvcHIyNjI1Ni0zYi5kCkBAIC0wLDAgKzEsMTIgQEAKKyNzb3VyY2U6IHByMjYy NTYtMy5zCisjbGQ6IC1lIF9zdGFydCAtVCBwcjI2MjU2LTNiLnQKKyNyZWFkZWxmOiAteCAucm9k YXRhIC14IC50ZXh0CisjeGZhaWw6IFtpc19nZW5lcmljXQorCitIZXggZHVtcCBvZiBzZWN0aW9u IFwnLnJvZGF0YVwnOgorICAweFthLWYwLTldKyArMDAwMjAzMDEgKzA0MDkwNyArLisKKworSGV4 IGR1bXAgb2Ygc2VjdGlvbiBcJy50ZXh0XCc6CisgIDB4W2EtZjAtOV0rICsyMjIyMjIyMiArMjIy MjIyMjIgKzIyMjIyMjIyICsuKworICAweFthLWYwLTldKyArMTExMTExMTEgKzExMTExMTExICsx MTExMTExMSArLisKKyAgMHhbYS1mMC05XSsgKzMzMzMzMzMzICszMzMzMzMzMyArMzMzMzMzMzMg Ky4rCmRpZmYgLS1naXQgYS9sZC90ZXN0c3VpdGUvbGQtZWxmL3ByMjYyNTYtM2IudCBiL2xkL3Rl c3RzdWl0ZS9sZC1lbGYvcHIyNjI1Ni0zYi50Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi45NTJjOGQyZDg5MAotLS0gL2Rldi9udWxsCisrKyBiL2xkL3Rlc3RzdWl0ZS9s ZC1lbGYvcHIyNjI1Ni0zYi50CkBAIC0wLDAgKzEsMTYgQEAKK1NFQ1RJT05TCit7CisgIC5yb2Rh dGEgOgorICAgIHsKKyAgICAgIEJZVEUoMCkKKyAgICAgICooLnJvZGF0YSopCisgICAgICBCWVRF KDQpCisgICAgICAqKC5yb3NlY3Rpb24pCisgICAgICBCWVRFKDcpCisgICAgfQorICAudGV4dCA6 IHsqKC50ZXh0LmJhcikgKigudGV4dC5mb28pfQorICAvRElTQ0FSRC8gOgorICB7CisgICAgKigu cmVnaW5mbykgKiguTUlQUy5hYmlmbGFncykgKiguTUlQUy5vcHRpb25zKSAqKC50cmFtcG9saW5l cykKKyAgfQorfQotLSAKMi4yOS4yCgo= --00000000000018aab805b815c17b--