From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sender4-pp-o90.zoho.com (sender4-pp-o90.zoho.com [136.143.188.90]) by sourceware.org (Postfix) with ESMTPS id 8A57A38582AA; Thu, 21 Dec 2023 21:01:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8A57A38582AA Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=zoho.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=zoho.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 8A57A38582AA Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=136.143.188.90 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1703192500; cv=pass; b=OAw2iPyMYMbJTkOUqA4eyMR6VIbY3YPU25CK7ReytZB2/rzhkRteCTpOjGbfEeeE8QxofUxOEwPNQfiWWSKAQ6yHbKXzjhCj4Ama64T0chGSa1Bs/clxn6VNq5GD0KVb57ih5H/kkLO8cCZ+cMHJwrQBfsIU5IKl/C1VoKhtdlE= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1703192500; c=relaxed/simple; bh=RVrIMAMv9EUdzMirkKKbUWvIpPuQXitnKKOQdRt2xfY=; h=DKIM-Signature:Message-ID:Subject:From:To:Date:MIME-Version; b=KWm4LydXxQhBJDM/qAkZ/rcSMZwg1L07UPZJH7rtrB1CS5W/sghPhsfXOPHXoWhCztDxBHi9WoZZDOrgDkFR1O4kQUJkM4vU1WuI/cxT4mCDSnA+j/qsFoTp6bykABW215LrgqPKPZmMeynoYIDtngI093vgcBETN6r+E3Vy9ns= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; t=1703192490; cv=none; d=zohomail.com; s=zohoarc; b=RC26kDnV+loN657vLpKa37HVlgLw7oi77cqIZWIO3s1ZCv1eIjZglW/CSRO7T+8aRboZpbXtfiLHQIkL3A6ZNP/A10xOl6iwFeWAKXuHa8tmmK9HZr2cQrDTpFHg3A55ayAvhyErq/WGgMnoSEaF2eXLvLhctRnSna/l0ZTY9SU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1703192490; h=Content-Type:Cc:Cc:Date:Date:From:From:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To; bh=UywAlr/iPPVQLBFORTUQkmAzb0oEzd4/8CNE3dQgtXA=; b=QOzN33efTgpCyrjqRHpbYELvTyK8S6jg80G7ayWKigrv+MtgHLnSRU7Kyva1uJgBYJvOxwZS+6ujzxpYst1WvTSxu2VkNLNMw0EMWCSgdExigEahosEEqbhUyBs2vBtLoP7tZmwMTV0oRfQrkMqBa8wqHKKSOtJaROnKTce0eYE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=zoho.com; spf=pass smtp.mailfrom=bouanto@zoho.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1703192490; s=zm2022; d=zoho.com; i=bouanto@zoho.com; h=Message-ID:Subject:Subject:From:From:To:To:Cc:Cc:Date:Date:Content-Type:MIME-Version:Feedback-ID:Message-Id:Reply-To; bh=UywAlr/iPPVQLBFORTUQkmAzb0oEzd4/8CNE3dQgtXA=; b=QlUxgXtnqpxEFr6F52mJ7f3pJc3fPR/Hd8W2HLMzPdb1vImjsqOfFU3jzOm2DYyi qCPwnWFOeACYOjtFleU+RcGPMaplEkRtY2yPrx4UNPMK0LoxGuiW+dOleoGoKMyG911 KyJv3H5jzycCHlpcYUE8FBjrB71TREsPi3T+JtAQ= Received: from [192.168.1.172] (38.87.11.6 [38.87.11.6]) by mx.zohomail.com with SMTPS id 1703192488885698.861684682584; Thu, 21 Dec 2023 13:01:28 -0800 (PST) Message-ID: Subject: [PATCH] libgccjit: Add convert vector From: Antoni Boucher To: "jit@gcc.gnu.org" , "gcc-patches@gcc.gnu.org" Cc: David Malcolm Date: Thu, 21 Dec 2023 16:01:27 -0500 Autocrypt: addr=bouanto@zoho.com; prefer-encrypt=mutual; keydata=mQENBFOSMLQBCADO5aw6Ys8thMQUNzrwAnfJX2wbgWiz0pQ01DjYj22eeIpChkoZn6LWdt4dieq30u2rFi/yQzJ02foHwI2+aL9rU6xz/x4TwqyRJQGMOqklNc3R+pdXmH4WDQkQDWmLxvc07vu+zb8Tx5A6pMDh4J2ncCEhLEUcH39Yq/yg4eBnFwUX6N7kakvHrnScGNqhnSFCacoJeMJUAR+1G7VBSBd++jmnHLnx3mj7QkRZVECJUw2zqiv1yReCC6GU4SvqLjdqm5ZGeoWOqD/NHjBRoEeOVjzp6M/qOjjWRbkJVqmvgfcD8UytSSqqboR35YFT4L+rZt2ri3T12MJb3i5syCAXABEBAAG0IUFudG9uaSBCb3VjaGVyIDxib3VhbnRvQHpvaG8uY29tPokBVgQTAQgAQAIbIwcLCQgHAwIBBhUIAgkKCwQWAgMBAh4BAheAFiEEOELC4Uw1Jeb66YE6RVeGAwR4zcEFAlz4QM4FCRLMEZoACgkQRVeGAwR4zcFBQQf/afttJrA/puADQZhrDfkgr0MFvq6iB+GCy1b8BkXimk1TOXTPt87YLehSeijNu3JkYhl5eRc87BNfU9J87KfI/KIy6hZxqlDXk16FhW9bw/7wYEA0hpb3MUn7xLElXDT0ZHaD+KTe8Oun7qfzgx5RlL6r/WODf3CkSpO085R/rfeBqDEx9mVlhDWgq6Az3CZoD+3CqiCKVqmDuHTWz4kwrd9AM5eVcLvvLKnZIdoIp+G5Ao6BvaGlZyfenN1iOSjLy2NXNt4MnUt0lUYEP5KSIIRhHQ8xkUbj7eWUmaahkxhNb3fH3sAPwGnRZrPpb4rgYzNmSk63wWMh9M2xk+rLb7kBDQRTkjC0AQgAumZzsAV/UFWI+dpzebQfma36kKYZZFuseant5sq/HWP553XQ/U6ttJiKyN5MpCqtxvCAoRplf42YhlHuFqgf73WJxoJ6Y+sdyqoBSwlR+ gzAneAmsa8gmmY0wawH0Z2leazjKuS7mJjVEQZg0ZGsiCVRGeRnDqFGzDEzDc9ngWKSoTq0fKzlGy1X85OrtmUrvEbhSo6HP+FoeunHkIqrxu3w3vDoFEXxVQlKI6V3I4nCz5n6DB8WR3L7nsiiTnOiGirPw1ngvWFLW86kkA4FJpayc8Xl3va3SLY+2y4yuROboX2DVI4AC/Qeug/mDiBicPxkP6YfUartQRMe6obkEQARAQABiQE8BBgBCAAmAhsMFiEEOELC4Uw1Jeb66YE6RVeGAwR4zcEFAlz4QRsFCRLMEecACgkQRVeGAwR4zcE56ggAgTgrJInBKC+7552Dpccuo6Clh3wZfjlNLv9/6r5lKEbaNzaTrfhPiAP4WgnluIUmj8amOFLFJpj+BAVNOXpZ4D2R3o9ch8z7fot+fW4Yw+PKIxH4I2xEys8ndoEB3aiQwHjKcGIhkIU7uyMJFQr2aWjdTY0gmXw0YZueHOSLgo7uX4XKxB8fEO/yto/Tff2YBAAq+AtNwt+Gh5YS9rZw7rwUTWMi84yVOlc+zRE79E9NJkvdTwX7IJYo64VzIRNfgHsn7QNdVzuM1XIFHl+Glk6cIlI8s6BO7nEoCn3hTF104fQTAO3fEs+XXZOKXo2lk8faowEoPq5r58StrV0nyg== Content-Type: multipart/mixed; boundary="=-s1rv2MskeImKGsTpFDT0" User-Agent: Evolution 3.50.2 MIME-Version: 1.0 X-Zoho-Virus-Status: 1 X-Zoho-AV-Stamp: zmail-av-1.1.0/203.141.47 Feedback-ID: rr08011228bc7ff4022dd8a1b980c8b46a00008c3d97addb9416aaddca876c7327179a63110afa83fdc99d91e1:zu080112262c53e0060e64db7faf51e08a0000097b72eb4074f6e9588903cdfc694491e79a3fbc318067a1:rf08011232f64210cdabe3fa8767326cd50000be0599cf2cfe92389a49a48da5ed3b563f92cb44be5bff93c103d8a5ad33e5823187011c:ZohoMail X-ZohoMailClient: External X-Spam-Status: No, score=-11.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --=-s1rv2MskeImKGsTpFDT0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi. This patch adds the support for the convert vector internal function. I'll need to double-check that making the decl a register is necessary. Thanks for the review. --=-s1rv2MskeImKGsTpFDT0 Content-Disposition: attachment; filename="0001-libgccjit-Add-convert-vector.patch" Content-Type: text/x-patch; name="0001-libgccjit-Add-convert-vector.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBjYTRiMzYwNmM4NTNiMzQyNWNmNGVmOWU4OGZiZDU5MzlmMGU4ZjdjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmkgQm91Y2hlciA8Ym91YW50b0B6b2hvLmNvbT4KRGF0 ZTogU2F0LCAxNCBNYXkgMjAyMiAxNzoyNDoyOSAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIGxpYmdj Y2ppdDogQWRkIGNvbnZlcnQgdmVjdG9yCgpnY2Mvaml0L0NoYW5nZUxvZzoKCgkqIGRvY3MvdG9w aWNzL2NvbXBhdGliaWxpdHkucnN0IChMSUJHQ0NKSVRfQUJJXzI2KTogTmV3IEFCSSB0YWcuCgkq IGRvY3MvdG9waWNzL2V4cHJlc3Npb25zLnJzdDogRG9jdW1lbnQgZ2NjX2ppdF9jb250ZXh0X2Nv bnZlcnRfdmVjdG9yLgoJKiBqaXQtcGxheWJhY2suY2MgKGNvbnZlcnRfdmVjdG9yKTogTmV3IG1l dGhvZC4KCSogaml0LXBsYXliYWNrLmg6IE5ldyBtZXRob2QuCgkqIGppdC1yZWNvcmRpbmcuY2Mg KHJlY29yZGluZzo6Y29udGV4dDo6bmV3X2NvbnZlcnRfdmVjdG9yLAoJcmVjb3JkaW5nOjpjb252 ZXJ0X3ZlY3Rvcjo6cmVwbGF5X2ludG8sCglyZWNvcmRpbmc6OmNvbnZlcnRfdmVjdG9yOjp2aXNp dF9jaGlsZHJlbiwKCXJlY29yZGluZzo6Y29udmVydF92ZWN0b3I6Om1ha2VfZGVidWdfc3RyaW5n LAoJcmVjb3JkaW5nOjpjb252ZXJ0X3ZlY3Rvcjo6d3JpdGVfcmVwcm9kdWNlcik6IE5ldyBtZXRo b2RzLgoJKiBqaXQtcmVjb3JkaW5nLmggKGNsYXNzIGNvbnZlcnRfdmVjdG9yKTogTmV3IGNsYXNz LgoJKGNvbnRleHQ6Om5ld19jb252ZXJ0X3ZlY3Rvcik6IE5ldyBtZXRob2QuCgkqIGxpYmdjY2pp dC5jYyAoZ2NjX2ppdF9jb250ZXh0X2NvbnZlcnRfdmVjdG9yKTogTmV3IGZ1bmN0aW9uLgoJKiBs aWJnY2NqaXQuaCAoZ2NjX2ppdF9jb250ZXh0X2NvbnZlcnRfdmVjdG9yKTogTmV3IGZ1bmN0aW9u LgoJKiBsaWJnY2NqaXQubWFwOiBOZXcgZnVuY3Rpb24uCgpnY2MvdGVzdHN1aXRlL0NoYW5nZUxv ZzoKCgkqIGppdC5kZy9hbGwtbm9uLWZhaWxpbmctdGVzdHMuaDogTmV3IHRlc3QuCgkqIGppdC5k Zy90ZXN0LWNvbnZlcnQtdmVjdG9yLmM6IE5ldyB0ZXN0LgotLS0KIGdjYy9qaXQvZG9jcy90b3Bp Y3MvY29tcGF0aWJpbGl0eS5yc3QgICAgICAgIHwgIDcgKysKIGdjYy9qaXQvZG9jcy90b3BpY3Mv ZXhwcmVzc2lvbnMucnN0ICAgICAgICAgIHwgMTggKysrKysKIGdjYy9qaXQvaml0LXBsYXliYWNr LmNjICAgICAgICAgICAgICAgICAgICAgIHwgMzEgKysrKysrKysrCiBnY2Mvaml0L2ppdC1wbGF5 YmFjay5oICAgICAgICAgICAgICAgICAgICAgICB8ICA1ICsrCiBnY2Mvaml0L2ppdC1yZWNvcmRp bmcuY2MgICAgICAgICAgICAgICAgICAgICB8IDcyICsrKysrKysrKysrKysrKysrKysrCiBnY2Mv aml0L2ppdC1yZWNvcmRpbmcuaCAgICAgICAgICAgICAgICAgICAgICB8IDM0ICsrKysrKysrKwog Z2NjL2ppdC9saWJnY2NqaXQuY2MgICAgICAgICAgICAgICAgICAgICAgICAgfCAzNiArKysrKysr KysrCiBnY2Mvaml0L2xpYmdjY2ppdC5oICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA4ICsr KwogZ2NjL2ppdC9saWJnY2NqaXQubWFwICAgICAgICAgICAgICAgICAgICAgICAgfCAgNSArKwog Z2NjL3Rlc3RzdWl0ZS9qaXQuZGcvYWxsLW5vbi1mYWlsaW5nLXRlc3RzLmggfCAxMCArKysKIGdj Yy90ZXN0c3VpdGUvaml0LmRnL3Rlc3QtY29udmVydC12ZWN0b3IuYyAgIHwgNTYgKysrKysrKysr KysrKysrCiAxMSBmaWxlcyBjaGFuZ2VkLCAyODIgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUg MTAwNjQ0IGdjYy90ZXN0c3VpdGUvaml0LmRnL3Rlc3QtY29udmVydC12ZWN0b3IuYwoKZGlmZiAt LWdpdCBhL2djYy9qaXQvZG9jcy90b3BpY3MvY29tcGF0aWJpbGl0eS5yc3QgYi9nY2Mvaml0L2Rv Y3MvdG9waWNzL2NvbXBhdGliaWxpdHkucnN0CmluZGV4IGViZWRlNDQwZWU0Li4zM2ViMWEwYmMw NiAxMDA2NDQKLS0tIGEvZ2NjL2ppdC9kb2NzL3RvcGljcy9jb21wYXRpYmlsaXR5LnJzdAorKysg Yi9nY2Mvaml0L2RvY3MvdG9waWNzL2NvbXBhdGliaWxpdHkucnN0CkBAIC0zNzgsMyArMzc4LDEw IEBAIGFsaWdubWVudCBvZiBhIHZhcmlhYmxlOgogLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGBgTElC R0NDSklUX0FCSV8yNWBgIGNvdmVycyB0aGUgYWRkaXRpb24gb2YKIDpmdW5jOmBnY2Nfaml0X3R5 cGVfZ2V0X3Jlc3RyaWN0YAorCisuLiBfTElCR0NDSklUX0FCSV8yNjoKKworYGBMSUJHQ0NKSVRf QUJJXzI2YGAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCitgYExJQkdDQ0pJVF9BQklfMjZgYCBjb3Zl cnMgdGhlIGFkZGl0aW9uIG9mCis6ZnVuYzpgZ2NjX2ppdF9jb250ZXh0X2NvbnZlcnRfdmVjdG9y YApkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9kb2NzL3RvcGljcy9leHByZXNzaW9ucy5yc3QgYi9nY2Mv aml0L2RvY3MvdG9waWNzL2V4cHJlc3Npb25zLnJzdAppbmRleCA0MmNmZWUzNjMwMi4uYTc1ZTY5 YmYxZjQgMTAwNjQ0Ci0tLSBhL2djYy9qaXQvZG9jcy90b3BpY3MvZXhwcmVzc2lvbnMucnN0Cisr KyBiL2djYy9qaXQvZG9jcy90b3BpY3MvZXhwcmVzc2lvbnMucnN0CkBAIC02OTksNiArNjk5LDI0 IEBAIFR5cGUtY29lcmNpb24KIAogICAgICAgI2lmZGVmIExJQkdDQ0pJVF9IQVZFX2djY19qaXRf Y29udGV4dF9uZXdfYml0Y2FzdAogCisuLiBmdW5jdGlvbjo6IGdjY19qaXRfcnZhbHVlICoKKyAg ICAgICAgICAgICAgZ2NjX2ppdF9jb250ZXh0X2NvbnZlcnRfdmVjdG9yIChnY2Nfaml0X2NvbnRl eHQgKmN0eHQsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBnY2Nfaml0X2xvY2F0aW9uICpsb2MsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBnY2Nfaml0X3J2YWx1ZSAqdmVjdG9yLCBcCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NjX2ppdF90eXBlICp0eXBlKQorCisg ICBHaXZlbiBhIHZlY3RvciBydmFsdWUsIGNhc3QgaXQgdG8gdGhlIHR5cGUgYGB0eXBlYGAuCisK KyAgIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gYGB2ZWN0b3JgYCBhbmQgYGB0eXBlYGAgbXVz dCBtYXRjaC4KKyAgIFRoZSBgYHR5cGVgYCBtdXN0IGJlIGEgdmVjdG9yIHR5cGUuCisKKyAgIFRo aXMgZW50cnlwb2ludCB3YXMgYWRkZWQgaW4gOnJlZjpgTElCR0NDSklUX0FCSV8yNmA7IHlvdSBj YW4gdGVzdCBmb3IKKyAgIGl0cyBwcmVzZW5jZSB1c2luZworCisgICAuLiBjb2RlLWJsb2NrOjog YworCisgICAgICAjaWZkZWYgTElCR0NDSklUX0hBVkVfZ2NjX2ppdF9jb250ZXh0X2NvbnZlcnRf dmVjdG9yCisKIEx2YWx1ZXMKIC0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9qaXQtcGxh eWJhY2suY2MgYi9nY2Mvaml0L2ppdC1wbGF5YmFjay5jYwppbmRleCBkZGRkNTM3ZjNiMS4uNDg5 MDFkNzE0MTggMTAwNjQ0Ci0tLSBhL2djYy9qaXQvaml0LXBsYXliYWNrLmNjCisrKyBiL2djYy9q aXQvaml0LXBsYXliYWNrLmNjCkBAIC0xNTI3LDYgKzE1MjcsMzcgQEAgbmV3X2FycmF5X2FjY2Vz cyAobG9jYXRpb24gKmxvYywKICAgICB9CiB9CiAKKy8qIENvbnN0cnVjdCBhIHBsYXliYWNrOjpy dmFsdWUgaW5zdGFuY2UgKHdyYXBwaW5nIGEgdHJlZSkgZm9yIGEKKyAgIHZlY3RvciBjb252ZXJz aW9uLiAgKi8KKworcGxheWJhY2s6OnJ2YWx1ZSAqCitwbGF5YmFjazo6Y29udGV4dDo6Citjb252 ZXJ0X3ZlY3RvciAobG9jYXRpb24gKmxvYywKKwkJICAgcnZhbHVlICp2ZWN0b3IsCisJCSAgIHR5 cGUgKnR5cGUpCit7CisgIGdjY19hc3NlcnQgKHZlY3Rvcik7CisgIGdjY19hc3NlcnQgKHR5cGUp OworCisgIC8qIEZvciBjb21wYXJpc29uLCBzZWU6CisgICAgICAgYy9jLWNvbW1vbi5jYzogY19i dWlsZF92ZWNfY29udmVydAorICAqLworCisgIHRyZWUgdF92ZWN0b3IgPSB2ZWN0b3ItPmFzX3Ry ZWUgKCk7CisKKyAgLyogSXQgc2VlbXMgSUZOX1ZFQ19DT05WRVJUIG9ubHkgd29yayBvbiByZWdp c3RlcnMsIG5vdCBvbiBtZW1vcnkuICAqLworICBpZiAoVFJFRV9DT0RFICh0X3ZlY3RvcikgPT0g VkFSX0RFQ0wpCisgICAgREVDTF9SRUdJU1RFUiAodF92ZWN0b3IpID0gMTsKKyAgdHJlZSB0X3Jl c3VsdCA9CisgICAgYnVpbGRfY2FsbF9leHByX2ludGVybmFsX2xvYyAoVU5LTk9XTl9MT0NBVElP TiwgSUZOX1ZFQ19DT05WRVJULAorICAgICAgdHlwZS0+YXNfdHJlZSAoKSwgMSwgdF92ZWN0b3Ip OworCisgIGlmIChsb2MpCisgICAgc2V0X3RyZWVfbG9jYXRpb24gKHRfcmVzdWx0LCBsb2MpOwor CisgIHJldHVybiBuZXcgcnZhbHVlICh0aGlzLCB0X3Jlc3VsdCk7Cit9CisKIC8qIENvbnN0cnVj dCBhIHRyZWUgZm9yIGEgZmllbGQgYWNjZXNzLiAgKi8KIAogdHJlZQpkaWZmIC0tZ2l0IGEvZ2Nj L2ppdC9qaXQtcGxheWJhY2suaCBiL2djYy9qaXQvaml0LXBsYXliYWNrLmgKaW5kZXggYjAxNjZm OGY2Y2UuLjU5ZmZkNzM5ODc1IDEwMDY0NAotLS0gYS9nY2Mvaml0L2ppdC1wbGF5YmFjay5oCisr KyBiL2djYy9qaXQvaml0LXBsYXliYWNrLmgKQEAgLTE5MSw2ICsxOTEsMTEgQEAgcHVibGljOgog CQkgICAgcnZhbHVlICpwdHIsCiAJCSAgICBydmFsdWUgKmluZGV4KTsKIAorICBydmFsdWUgKgor ICBjb252ZXJ0X3ZlY3RvciAobG9jYXRpb24gKmxvYywKKwkJICBydmFsdWUgKnZlY3RvciwKKwkJ ICB0eXBlICp0eXBlKTsKKwogICB2b2lkCiAgIHNldF9zdHJfb3B0aW9uIChlbnVtIGdjY19qaXRf c3RyX29wdGlvbiBvcHQsCiAJCSAgY29uc3QgY2hhciAqdmFsdWUpOwpkaWZmIC0tZ2l0IGEvZ2Nj L2ppdC9qaXQtcmVjb3JkaW5nLmNjIGIvZ2NjL2ppdC9qaXQtcmVjb3JkaW5nLmNjCmluZGV4IDli NWI4MDA1ZWJlLi5hMGNlODM0YTYxMCAxMDA2NDQKLS0tIGEvZ2NjL2ppdC9qaXQtcmVjb3JkaW5n LmNjCisrKyBiL2djYy9qaXQvaml0LXJlY29yZGluZy5jYwpAQCAtMTMwOSw2ICsxMzA5LDIzIEBA IHJlY29yZGluZzo6Y29udGV4dDo6bmV3X2FycmF5X2FjY2VzcyAocmVjb3JkaW5nOjpsb2NhdGlv biAqbG9jLAogICByZXR1cm4gcmVzdWx0OwogfQogCisvKiBDcmVhdGUgYSByZWNvcmRpbmc6OmNv bnZlcnRfdmVjdG9yIGluc3RhbmNlIGFuZCBhZGQgaXQgdG8gdGhpcyBjb250ZXh0J3MgbGlzdAor ICAgb2YgbWVtZW50b3MuCisKKyAgIEltcGxlbWVudHMgdGhlIHBvc3QtZXJyb3ItY2hlY2tpbmcg cGFydCBvZgorICAgZ2NjX2ppdF9jb250ZXh0X2NvbnZlcnRfdmVjdG9yLiAgKi8KKworcmVjb3Jk aW5nOjpydmFsdWUgKgorcmVjb3JkaW5nOjpjb250ZXh0OjpuZXdfY29udmVydF92ZWN0b3IgKHJl Y29yZGluZzo6bG9jYXRpb24gKmxvYywKKwkJCQkgICAgcmVjb3JkaW5nOjpydmFsdWUgKnZlY3Rv ciwKKwkJCQkgICAgcmVjb3JkaW5nOjp0eXBlICp0eXBlKQoreworICAvLyBUT0RPOiBpbnN0ZWFk IGhhdmUgYW4gImludGVybmFsIGZ1bmN0aW9uIiBtZW1lbnRvPworICByZWNvcmRpbmc6OnJ2YWx1 ZSAqcmVzdWx0ID0gbmV3IGNvbnZlcnRfdmVjdG9yICh0aGlzLCBsb2MsIHZlY3RvciwgdHlwZSk7 CisgIHJlY29yZCAocmVzdWx0KTsKKyAgcmV0dXJuIHJlc3VsdDsKK30KKwogLyogQ3JlYXRlIGEg cmVjb3JkaW5nOjpjYXNlXyBpbnN0YW5jZSBhbmQgYWRkIGl0IHRvIHRoaXMgY29udGV4dCdzIGxp c3QKICAgIG9mIG1lbWVudG9zLgogCkBAIC02MzA3LDYgKzYzMjQsNjEgQEAgcmVjb3JkaW5nOjph cnJheV9hY2Nlc3M6OndyaXRlX3JlcHJvZHVjZXIgKHJlcHJvZHVjZXIgJnIpCiAJICAgci5nZXRf aWRlbnRpZmllcl9hc19ydmFsdWUgKG1faW5kZXgpKTsKIH0KIAorLyogVGhlIGltcGxlbWVudGF0 aW9uIG9mIGNsYXNzIGdjYzo6aml0OjpyZWNvcmRpbmc6OmNvbnZlcnRfdmVjdG9yLiAgKi8KKwor LyogSW1wbGVtZW50YXRpb24gb2YgcHVyZSB2aXJ0dWFsIGhvb2sgcmVjb3JkaW5nOjptZW1lbnRv OjpyZXBsYXlfaW50bworICAgZm9yIHJlY29yZGluZzo6Y29udmVydF92ZWN0b3IuICAqLworCit2 b2lkCityZWNvcmRpbmc6OmNvbnZlcnRfdmVjdG9yOjpyZXBsYXlfaW50byAocmVwbGF5ZXIgKnIp Cit7CisgIHNldF9wbGF5YmFja19vYmogKAorICAgIHItPmNvbnZlcnRfdmVjdG9yIChwbGF5YmFj a19sb2NhdGlvbiAociwgbV9sb2MpLAorCQkJICBtX3ZlY3Rvci0+cGxheWJhY2tfcnZhbHVlICgp LAorCQkJICBtX3R5cGUtPnBsYXliYWNrX3R5cGUgKCkpKTsKK30KKworLyogSW1wbGVtZW50YXRp b24gb2YgcHVyZSB2aXJ0dWFsIGhvb2sgcmVjb3JkaW5nOjpydmFsdWU6OnZpc2l0X2NoaWxkcmVu CisgICBmb3IgcmVjb3JkaW5nOjpjb252ZXJ0X3ZlY3Rvci4gICovCisKK3ZvaWQKK3JlY29yZGlu Zzo6Y29udmVydF92ZWN0b3I6OnZpc2l0X2NoaWxkcmVuIChydmFsdWVfdmlzaXRvciAqdikKK3sK KyAgdi0+dmlzaXQgKG1fdmVjdG9yKTsKK30KKworLyogSW1wbGVtZW50YXRpb24gb2YgcmVjb3Jk aW5nOjptZW1lbnRvOjptYWtlX2RlYnVnX3N0cmluZyBmb3IKKyAgIGFycmF5IGFjY2Vzc2VzLiAg Ki8KKworcmVjb3JkaW5nOjpzdHJpbmcgKgorcmVjb3JkaW5nOjpjb252ZXJ0X3ZlY3Rvcjo6bWFr ZV9kZWJ1Z19zdHJpbmcgKCkKK3sKKyAgZW51bSBwcmVjZWRlbmNlIHByZWMgPSBnZXRfcHJlY2Vk ZW5jZSAoKTsKKyAgcmV0dXJuIHN0cmluZzo6ZnJvbV9wcmludGYgKG1fY3R4dCwKKwkJCSAgICAg ICIoJXMpJXMiLAorCQkJICAgICAgbV90eXBlLT5nZXRfZGVidWdfc3RyaW5nICgpLAorCQkJICAg ICAgbV92ZWN0b3ItPmdldF9kZWJ1Z19zdHJpbmdfcGFyZW5zIChwcmVjKSk7Cit9CisKKy8qIElt cGxlbWVudGF0aW9uIG9mIHJlY29yZGluZzo6bWVtZW50bzo6d3JpdGVfcmVwcm9kdWNlciBmb3IK KyAgIGNvbnZlcnRfdmVjdG9yLiAgKi8KKwordm9pZAorcmVjb3JkaW5nOjpjb252ZXJ0X3ZlY3Rv cjo6d3JpdGVfcmVwcm9kdWNlciAocmVwcm9kdWNlciAmcikKK3sKKyAgY29uc3QgY2hhciAqaWQg PSByLm1ha2VfaWRlbnRpZmllciAodGhpcywgImx2YWx1ZSIpOworICByLndyaXRlICgiICBnY2Nf aml0X3J2YWx1ZSAqJXMgPSBcbiIKKwkgICAiICAgIGdjY19qaXRfY29udGV4dF9jb252ZXJ0X3Zl Y3RvciAoJXMsIC8qIGdjY19qaXRfY29udGV4dCAqY3R4dCAqL1xuIgorCSAgICIgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAlcywgLypnY2Nfaml0X2xvY2F0aW9uICpsb2MgKi9c biIKKwkgICAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJXMsIC8qIGdjY19q aXRfcnZhbHVlICp2ZWN0b3IgKi9cbiIKKwkgICAiICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJXMpOyAvKiBnY2Nfaml0X3R5cGUgKnR5cGUgKi9cbiIsCisJICAgaWQsCisJICAg ci5nZXRfaWRlbnRpZmllciAoZ2V0X2NvbnRleHQgKCkpLAorCSAgIHIuZ2V0X2lkZW50aWZpZXIg KG1fbG9jKSwKKwkgICByLmdldF9pZGVudGlmaWVyX2FzX3J2YWx1ZSAobV92ZWN0b3IpLAorCSAg IHIuZ2V0X2lkZW50aWZpZXJfYXNfdHlwZSAobV90eXBlKSk7Cit9CisKIC8qIFRoZSBpbXBsZW1l bnRhdGlvbiBvZiBjbGFzcyBnY2M6OmppdDo6cmVjb3JkaW5nOjphY2Nlc3NfZmllbGRfb2ZfbHZh bHVlLiAgKi8KIAogLyogSW1wbGVtZW50YXRpb24gb2YgcHVyZSB2aXJ0dWFsIGhvb2sgcmVjb3Jk aW5nOjptZW1lbnRvOjpyZXBsYXlfaW50bwpkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9qaXQtcmVjb3Jk aW5nLmggYi9nY2Mvaml0L2ppdC1yZWNvcmRpbmcuaAppbmRleCA0YTgwODI5OTFmYi4uNzY1MGUy YTgyNDEgMTAwNjQ0Ci0tLSBhL2djYy9qaXQvaml0LXJlY29yZGluZy5oCisrKyBiL2djYy9qaXQv aml0LXJlY29yZGluZy5oCkBAIC0yMTUsNiArMjE1LDExIEBAIHB1YmxpYzoKIAkJICAgIHJ2YWx1 ZSAqcHRyLAogCQkgICAgcnZhbHVlICppbmRleCk7CiAKKyAgcnZhbHVlICoKKyAgbmV3X2NvbnZl cnRfdmVjdG9yIChsb2NhdGlvbiAqbG9jLAorCQkgIHJ2YWx1ZSAqdmVjdG9yLAorCQkgIHR5cGUg KnR5cGUpOworCiAgIGNhc2VfICoKICAgbmV3X2Nhc2UgKHJ2YWx1ZSAqbWluX3ZhbHVlLAogCSAg ICBydmFsdWUgKm1heF92YWx1ZSwKQEAgLTE5MDcsNiArMTkxMiwzNSBAQCBwcml2YXRlOgogICBy dmFsdWUgKm1faW5kZXg7CiB9OwogCitjbGFzcyBjb252ZXJ0X3ZlY3RvciA6IHB1YmxpYyBydmFs dWUKK3sKK3B1YmxpYzoKKyAgY29udmVydF92ZWN0b3IgKGNvbnRleHQgKmN0eHQsCisJCSAgbG9j YXRpb24gKmxvYywKKwkJICBydmFsdWUgKnZlY3RvciwKKwkJICB0eXBlICp0eXBlKQorICA6IHJ2 YWx1ZSAoY3R4dCwgbG9jLCB0eXBlKSwKKyAgICBtX3ZlY3RvciAodmVjdG9yKSwKKyAgICBtX3R5 cGUgKHR5cGUpCisgIHt9CisKKyAgdm9pZCByZXBsYXlfaW50byAocmVwbGF5ZXIgKnIpIGZpbmFs IG92ZXJyaWRlOworCisgIHZvaWQgdmlzaXRfY2hpbGRyZW4gKHJ2YWx1ZV92aXNpdG9yICp2KSBm aW5hbCBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgc3RyaW5nICogbWFrZV9kZWJ1Z19zdHJpbmcg KCkgZmluYWwgb3ZlcnJpZGU7CisgIHZvaWQgd3JpdGVfcmVwcm9kdWNlciAocmVwcm9kdWNlciAm cikgZmluYWwgb3ZlcnJpZGU7CisgIGVudW0gcHJlY2VkZW5jZSBnZXRfcHJlY2VkZW5jZSAoKSBj b25zdCBmaW5hbCBvdmVycmlkZQorICB7CisgICAgcmV0dXJuIFBSRUNFREVOQ0VfUE9TVEZJWDsK KyAgfQorCitwcml2YXRlOgorICBydmFsdWUgKm1fdmVjdG9yOworICB0eXBlICptX3R5cGU7Cit9 OworCiBjbGFzcyBhY2Nlc3NfZmllbGRfb2ZfbHZhbHVlIDogcHVibGljIGx2YWx1ZQogewogcHVi bGljOgpkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9saWJnY2NqaXQuY2MgYi9nY2Mvaml0L2xpYmdjY2pp dC5jYwppbmRleCAwNDUxYjRkZjdmOS4uNTE3ZWY0NjYyOGMgMTAwNjQ0Ci0tLSBhL2djYy9qaXQv bGliZ2Njaml0LmNjCisrKyBiL2djYy9qaXQvbGliZ2Njaml0LmNjCkBAIC0yNTAzLDYgKzI1MDMs NDIgQEAgZ2NjX2ppdF9jb250ZXh0X25ld19hcnJheV9hY2Nlc3MgKGdjY19qaXRfY29udGV4dCAq Y3R4dCwKICAgcmV0dXJuIChnY2Nfaml0X2x2YWx1ZSAqKWN0eHQtPm5ld19hcnJheV9hY2Nlc3Mg KGxvYywgcHRyLCBpbmRleCk7CiB9CiAKKy8qIFB1YmxpYyBlbnRyeXBvaW50LiAgU2VlIGRlc2Ny aXB0aW9uIGluIGxpYmdjY2ppdC5oLgorCisgICBBZnRlciBlcnJvci1jaGVja2luZywgdGhlIHJl YWwgd29yayBpcyBkb25lIGJ5IHRoZQorICAgZ2NjOjpqaXQ6OnJlY29yZGluZzo6Y29udGV4dDo6 bmV3X2NvbnZlcnRfdmVjdG9yIG1ldGhvZCBpbgorICAgaml0LXJlY29yZGluZy5jYy4gICovCisK K2djY19qaXRfcnZhbHVlICoKK2djY19qaXRfY29udGV4dF9jb252ZXJ0X3ZlY3RvciAoZ2NjX2pp dF9jb250ZXh0ICpjdHh0LAorCQkJCWdjY19qaXRfbG9jYXRpb24gKmxvYywKKwkJCQlnY2Nfaml0 X3J2YWx1ZSAqdmVjdG9yLAorCQkJCWdjY19qaXRfdHlwZSAqdHlwZSkKK3sKKyAgUkVUVVJOX05V TExfSUZfRkFJTCAoY3R4dCwgTlVMTCwgbG9jLCAiTlVMTCBjb250ZXh0Iik7CisgIEpJVF9MT0df RlVOQyAoY3R4dC0+Z2V0X2xvZ2dlciAoKSk7CisgIC8qIExPQyBjYW4gYmUgTlVMTC4gICovCisg IFJFVFVSTl9OVUxMX0lGX0ZBSUwgKHZlY3RvciwgY3R4dCwgbG9jLCAiTlVMTCB2ZWN0b3IiKTsK KyAgUkVUVVJOX05VTExfSUZfRkFJTCAodHlwZSwgY3R4dCwgbG9jLCAiTlVMTCB0eXBlIik7CisK KyAgZ2NjOjpqaXQ6OnJlY29yZGluZzo6dmVjdG9yX3R5cGUgKnZhbHVlX3ZlY190eXBlCisgICAg PSB2ZWN0b3ItPmdldF90eXBlICgpLT5keW5fY2FzdF92ZWN0b3JfdHlwZSAoKTsKKyAgUkVUVVJO X05VTExfSUZfRkFJTF9QUklOVEYxICh2YWx1ZV92ZWNfdHlwZSwgY3R4dCwgbG9jLAorCQkJICAg ICAgICIlcyBpcyBub3QgYSB2YWx1ZSBvZiBhIHZlY3RvciB0eXBlIiwKKwkJCSAgICAgICB2ZWN0 b3ItPmdldF9kZWJ1Z19zdHJpbmcgKCkpOworICBnY2M6OmppdDo6cmVjb3JkaW5nOjp2ZWN0b3Jf dHlwZSAqYXNfdmVjX3R5cGUKKyAgICA9IHR5cGUtPmR5bl9jYXN0X3ZlY3Rvcl90eXBlICgpOwor ICBSRVRVUk5fTlVMTF9JRl9GQUlMX1BSSU5URjEgKGFzX3ZlY190eXBlLCBjdHh0LCBsb2MsCisJ CQkgICAgICAgIiVzIGlzIG5vdCBhIHZlY3RvciB0eXBlIiwKKwkJCSAgICAgICB0eXBlLT5nZXRf ZGVidWdfc3RyaW5nICgpKTsKKyAgUkVUVVJOX05VTExfSUZfRkFJTF9QUklOVEYyICgKKyAgICBh c192ZWNfdHlwZS0+Z2V0X251bV91bml0cyAoKSA9PSB2YWx1ZV92ZWNfdHlwZS0+Z2V0X251bV91 bml0cyAoKSwgY3R4dCwKKyAgICBsb2MsICIlcyBzaG91bGQgY29udGFpbiB0aGUgc2FtZSBudW1i ZXIgb2YgZWxlbWVudHMgYXMgJXMiLAorICAgIHZlY3Rvci0+Z2V0X2RlYnVnX3N0cmluZyAoKSwg dHlwZS0+Z2V0X2RlYnVnX3N0cmluZyAoKSk7CisKKyAgcmV0dXJuIChnY2Nfaml0X3J2YWx1ZSAq KWN0eHQtPm5ld19jb252ZXJ0X3ZlY3RvciAobG9jLCB2ZWN0b3IsIHR5cGUpOworfQorCiAvKiBQ dWJsaWMgZW50cnlwb2ludC4gIFNlZSBkZXNjcmlwdGlvbiBpbiBsaWJnY2NqaXQuaC4KIAogICAg QWZ0ZXIgZXJyb3ItY2hlY2tpbmcsIHRoZSByZWFsIHdvcmsgaXMgZG9uZSBieSB0aGUKZGlmZiAt LWdpdCBhL2djYy9qaXQvbGliZ2Njaml0LmggYi9nY2Mvaml0L2xpYmdjY2ppdC5oCmluZGV4IDc0 OWY2YzI0MTc3Li4wMGJlYWI4ZjM5NyAxMDA2NDQKLS0tIGEvZ2NjL2ppdC9saWJnY2NqaXQuaAor KysgYi9nY2Mvaml0L2xpYmdjY2ppdC5oCkBAIC0xMzAxLDYgKzEzMDEsMTQgQEAgZ2NjX2ppdF9j b250ZXh0X25ld19hcnJheV9hY2Nlc3MgKGdjY19qaXRfY29udGV4dCAqY3R4dCwKIAkJCQkgIGdj Y19qaXRfcnZhbHVlICpwdHIsCiAJCQkJICBnY2Nfaml0X3J2YWx1ZSAqaW5kZXgpOwogCisjZGVm aW5lIExJQkdDQ0pJVF9IQVZFX2djY19qaXRfY29udGV4dF9jb252ZXJ0X3ZlY3RvcgorCitleHRl cm4gZ2NjX2ppdF9ydmFsdWUgKgorZ2NjX2ppdF9jb250ZXh0X2NvbnZlcnRfdmVjdG9yIChnY2Nf aml0X2NvbnRleHQgKmN0eHQsCisJCQkJZ2NjX2ppdF9sb2NhdGlvbiAqbG9jLAorCQkJCWdjY19q aXRfcnZhbHVlICp2ZWN0b3IsCisJCQkJZ2NjX2ppdF90eXBlICp0eXBlKTsKKwogLyogRmllbGQg YWNjZXNzIGlzIHByb3ZpZGVkIHNlcGFyYXRlbHkgZm9yIGJvdGggbHZhbHVlcyBhbmQgcnZhbHVl cy4gICovCiAKIC8qIEFjY2Vzc2luZyBhIGZpZWxkIG9mIGFuIGx2YWx1ZSBvZiBzdHJ1Y3QgdHlw ZSwgYW5hbG9nb3VzIHRvOgpkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9saWJnY2NqaXQubWFwIGIvZ2Nj L2ppdC9saWJnY2NqaXQubWFwCmluZGV4IDhiOTBhMGUyZmYzLi5lOTVkN2JlNWQwOSAxMDA2NDQK LS0tIGEvZ2NjL2ppdC9saWJnY2NqaXQubWFwCisrKyBiL2djYy9qaXQvbGliZ2Njaml0Lm1hcApA QCAtMjc2LDMgKzI3Niw4IEBAIExJQkdDQ0pJVF9BQklfMjUgewogICBnbG9iYWw6CiAgICAgZ2Nj X2ppdF90eXBlX2dldF9yZXN0cmljdDsKIH0gTElCR0NDSklUX0FCSV8yNDsKKworTElCR0NDSklU X0FCSV8yNiB7CisgIGdsb2JhbDoKKyAgICBnY2Nfaml0X2NvbnRleHRfY29udmVydF92ZWN0b3I7 Cit9IExJQkdDQ0pJVF9BQklfMjU7CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2ppdC5kZy9h bGwtbm9uLWZhaWxpbmctdGVzdHMuaCBiL2djYy90ZXN0c3VpdGUvaml0LmRnL2FsbC1ub24tZmFp bGluZy10ZXN0cy5oCmluZGV4IGU3NjI1NjNmOWJkLi41MjhlNWI0ZjkyMSAxMDA2NDQKLS0tIGEv Z2NjL3Rlc3RzdWl0ZS9qaXQuZGcvYWxsLW5vbi1mYWlsaW5nLXRlc3RzLmgKKysrIGIvZ2NjL3Rl c3RzdWl0ZS9qaXQuZGcvYWxsLW5vbi1mYWlsaW5nLXRlc3RzLmgKQEAgLTEyNiw2ICsxMjYsMTMg QEAKICN1bmRlZiBjcmVhdGVfY29kZQogI3VuZGVmIHZlcmlmeV9jb2RlCiAKKy8qIHRlc3QtY29u dmVydC12ZWN0b3IuYyAqLworI2RlZmluZSBjcmVhdGVfY29kZSBjcmVhdGVfY29kZV9jb252ZXJ0 X3ZlY3RvcgorI2RlZmluZSB2ZXJpZnlfY29kZSB2ZXJpZnlfY29kZV9jb252ZXJ0X3ZlY3Rvcgor I2luY2x1ZGUgInRlc3QtY29udmVydC12ZWN0b3IuYyIKKyN1bmRlZiBjcmVhdGVfY29kZQorI3Vu ZGVmIHZlcmlmeV9jb2RlCisKIC8qIHRlc3QtZGVidWctc3RyaW5ncy5jICovCiAjZGVmaW5lIGNy ZWF0ZV9jb2RlIGNyZWF0ZV9jb2RlX2RlYnVnX3N0cmluZ3MKICNkZWZpbmUgdmVyaWZ5X2NvZGUg dmVyaWZ5X2NvZGVfZGVidWdfc3RyaW5ncwpAQCAtNDM3LDYgKzQ0NCw5IEBAIGNvbnN0IHN0cnVj dCB0ZXN0Y2FzZSB0ZXN0Y2FzZXNbXSA9IHsKICAgeyJjb25zdGFudHMiLAogICAgY3JlYXRlX2Nv ZGVfY29uc3RhbnRzLAogICAgdmVyaWZ5X2NvZGVfY29uc3RhbnRzfSwKKyAgeyJjb252ZXJ0X3Zl Y3RvciIsCisgICBjcmVhdGVfY29kZV9jb252ZXJ0X3ZlY3RvciwKKyAgIHZlcmlmeV9jb2RlX2Nv bnZlcnRfdmVjdG9yfSwKICAgeyJkZWJ1Z19zdHJpbmdzIiwKICAgIGNyZWF0ZV9jb2RlX2RlYnVn X3N0cmluZ3MsCiAgICB2ZXJpZnlfY29kZV9kZWJ1Z19zdHJpbmdzfSwKZGlmZiAtLWdpdCBhL2dj Yy90ZXN0c3VpdGUvaml0LmRnL3Rlc3QtY29udmVydC12ZWN0b3IuYyBiL2djYy90ZXN0c3VpdGUv aml0LmRnL3Rlc3QtY29udmVydC12ZWN0b3IuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uYjliZjY0OGNkOWEKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRl L2ppdC5kZy90ZXN0LWNvbnZlcnQtdmVjdG9yLmMKQEAgLTAsMCArMSw1NiBAQAorI2luY2x1ZGUg PHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5j bHVkZSA8dGltZS5oPgorCisjaW5jbHVkZSAibGliZ2Njaml0LmgiCisKKyNpbmNsdWRlICJoYXJu ZXNzLmgiCisKK3ZvaWQKK2NyZWF0ZV9jb2RlIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIHZvaWQg KnVzZXJfZGF0YSkKK3sKKyAgLyogTGV0J3MgdHJ5IHRvIGluamVjdCB0aGUgZXF1aXZhbGVudCBv ZjoKKworICAgICBpbnQgX19hdHRyaWJ1dGVfXyAoKF9fdmVjdG9yX3NpemVfXyAoOCkpKSBjb252 ZXJ0X3ZlYyhkb3VibGUgX19hdHRyaWJ1dGVfXyAoKF9fdmVjdG9yX3NpemVfXyAoMTYpKSkgZG91 YmxlX3ZlYykKKyAgICAgeworICAgICAgcmV0dXJuIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yIChk b3VibGVfdmVjLCBpbnQgX19hdHRyaWJ1dGVfXyAoKF9fdmVjdG9yX3NpemVfXyAoOCkpKSk7Cisg ICAgIH0KKyAgKi8KKyAgZ2NjX2ppdF90eXBlICppbnRfdHlwZSA9CisgICAgZ2NjX2ppdF9jb250 ZXh0X2dldF90eXBlIChjdHh0LCBHQ0NfSklUX1RZUEVfSU5UKTsKKyAgZ2NjX2ppdF90eXBlICpp bnRfdmVjdG9yX3R5cGUgPQorICAgIGdjY19qaXRfdHlwZV9nZXRfdmVjdG9yIChpbnRfdHlwZSwg Mik7CisgIGdjY19qaXRfdHlwZSAqZG91YmxlX3R5cGUgPQorICAgIGdjY19qaXRfY29udGV4dF9n ZXRfdHlwZSAoY3R4dCwgR0NDX0pJVF9UWVBFX0RPVUJMRSk7CisgIGdjY19qaXRfdHlwZSAqZG91 YmxlX3ZlY3Rvcl90eXBlID0KKyAgICBnY2Nfaml0X3R5cGVfZ2V0X3ZlY3RvciAoZG91YmxlX3R5 cGUsIDIpOworCisgIC8qIEJ1aWxkIHRoZSBjb252ZXJ0X3ZlYy4gICovCisgIGdjY19qaXRfcGFy YW0gKnBhcmFtID0KKyAgICBnY2Nfaml0X2NvbnRleHRfbmV3X3BhcmFtIChjdHh0LCBOVUxMLCBk b3VibGVfdmVjdG9yX3R5cGUsICJkb3VibGVfdmVjIik7CisgIGdjY19qaXRfZnVuY3Rpb24gKmNv bnZlcnRfdmVjID0KKyAgICBnY2Nfaml0X2NvbnRleHRfbmV3X2Z1bmN0aW9uIChjdHh0LCBOVUxM LAorCQkJCSAgR0NDX0pJVF9GVU5DVElPTl9FWFBPUlRFRCwKKwkJCQkgIGludF92ZWN0b3JfdHlw ZSwKKwkJCQkgICJjb252ZXJ0X3ZlYyIsCisJCQkJICAxLCAmcGFyYW0sCisJCQkJICAwKTsKKyAg Z2NjX2ppdF9ibG9jayAqYmxvY2sgPSBnY2Nfaml0X2Z1bmN0aW9uX25ld19ibG9jayAoY29udmVy dF92ZWMsIE5VTEwpOworICBnY2Nfaml0X2Jsb2NrX2VuZF93aXRoX3JldHVybiAoYmxvY2ssCisg ICAgTlVMTCwKKyAgICBnY2Nfaml0X2NvbnRleHRfY29udmVydF92ZWN0b3IgKGN0eHQsIE5VTEws IGdjY19qaXRfcGFyYW1fYXNfcnZhbHVlIChwYXJhbSksIGludF92ZWN0b3JfdHlwZSkpOworfQor Cit2b2lkCit2ZXJpZnlfY29kZSAoZ2NjX2ppdF9jb250ZXh0ICpjdHh0LCBnY2Nfaml0X3Jlc3Vs dCAqcmVzdWx0KQoreworICBDSEVDS19OT05fTlVMTCAocmVzdWx0KTsKKworICB0eXBlZGVmIGlu dCBfX2F0dHJpYnV0ZV9fICgoX192ZWN0b3Jfc2l6ZV9fICg4KSkpICgqY29udmVydF92ZWMpKGRv dWJsZSBfX2F0dHJpYnV0ZV9fICgoX192ZWN0b3Jfc2l6ZV9fICgxNikpKSBkb3VibGVfdmVjKTsK KyAgZG91YmxlIF9fYXR0cmlidXRlX18gKChfX3ZlY3Rvcl9zaXplX18gKDE2KSkpIGRvdWJsZV92 ZWMgPSB7IDMuMiwgNy45IH07CisgIGNvbnZlcnRfdmVjIGZ1bmMgPSAoY29udmVydF92ZWMpZ2Nj X2ppdF9yZXN1bHRfZ2V0X2NvZGUgKHJlc3VsdCwgImNvbnZlcnRfdmVjIik7CisgIGludCBfX2F0 dHJpYnV0ZV9fICgoX192ZWN0b3Jfc2l6ZV9fICg4KSkpIHJlcyA9IGZ1bmMgKGRvdWJsZV92ZWMp OworICBpbnQgX19hdHRyaWJ1dGVfXyAoKF9fdmVjdG9yX3NpemVfXyAoOCkpKSBleHBlY3RlZCA9 IHsgMywgNyB9OworICBDSEVDS19WRUNUT1JfVkFMVUUgKDIsIHJlcywgZXhwZWN0ZWQpOworfQot LSAKMi40My4wCgo= --=-s1rv2MskeImKGsTpFDT0--