From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id C17C73858C50 for ; Thu, 9 Feb 2023 21:49:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C17C73858C50 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1675979379; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type; bh=bBtU00F6JKr8JaN1YxSLcoav0dMEyCXNS5tacqK4gPw=; b=ciP/70fYVGoPB183yCN7PPFJaAXOX7DNV6hUUgEf9cVEbHZb/swHQHz9eJ4SmQsWCsnm4s pL73WDfrqwRWuQygn9gcYpqSnsPi3TRg2HKoFPdtzQXRyp/Rkhdw1UlQ5gMYjh5eV1l/3q GaLtqO+Vw74tuoSrQXOKz/CUMK1ePDU= Received: from mail-il1-f198.google.com (mail-il1-f198.google.com [209.85.166.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-311-dwa3yq6LN72iSqdueRXddQ-1; Thu, 09 Feb 2023 16:49:38 -0500 X-MC-Unique: dwa3yq6LN72iSqdueRXddQ-1 Received: by mail-il1-f198.google.com with SMTP id t6-20020a056e02010600b0031417634f4bso8558ilm.18 for ; Thu, 09 Feb 2023 13:49:38 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:from:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=G0FJBc4tdfbInNQR83Qv2FALmC5u8jpLth0r3IkhDlU=; b=Ly3wz9zhcEVAO4pDjOUBf7U55HsAjS4K2j8xr3IvGezcW338fRm/cJh9rq84dHRyEK hB7yzFPhlXxc0DB/opTG4FPGCbsJ0xqiPfOm/ir2LeLWaDlNx1pDiIm6L+1EKnBAi55c CzhFtqMzxdr25AW+r7OukhZksxRDB4oH2slb3AzUXXIOWsaO33O4uZD8+S8NqMMVKDsA L6B0ljIAMq4Dav1TVXif+zL1rLcroK1N0KrAGLs0QXdT8f3wkecdXYN+DN4j//qtfne7 kNR1SYvYfn8qYZQ/m10hiZ1wa2nMF90hVQUWZCofpV3qOsrgEndd65MzggRj6b600Qa/ LjrQ== X-Gm-Message-State: AO0yUKU1S0m05jYy+aGHMojsZ9OKyfok/ookT8eryPrWIoi2H+ocPYfl TEuiqBAN6nUvKEE8bc4n/RkCAHs6g4xv9xfxKcQYYUFlxCwuP5ZHiOGoiXJe9EG1/SiQ1ecqmDU qNz4nOPqh+PKuEVQr3CbKV3kKAKPTtc8hQKW3ptWIDyeXnzXHGDuyZnmmemFdQjzLnOlAAAQQd/ k= X-Received: by 2002:a05:6e02:216c:b0:313:ee3f:2b2b with SMTP id s12-20020a056e02216c00b00313ee3f2b2bmr10254303ilv.8.1675979376489; Thu, 09 Feb 2023 13:49:36 -0800 (PST) X-Google-Smtp-Source: AK7set+TvkVi2/zR06iqEO8aude71T8ISLufZNCYpfDFha1a1sVm9BjA+RvmWLxM8q9L2OpUnoP4Fw== X-Received: by 2002:a05:6e02:216c:b0:313:ee3f:2b2b with SMTP id s12-20020a056e02216c00b00313ee3f2b2bmr10254285ilv.8.1675979376189; Thu, 09 Feb 2023 13:49:36 -0800 (PST) Received: from [192.168.1.104] (23-233-12-120.cpe.pppoe.ca. [23.233.12.120]) by smtp.gmail.com with ESMTPSA id k11-20020a928e4b000000b0030ef5881a51sm773864ilh.34.2023.02.09.13.49.34 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 09 Feb 2023 13:49:35 -0800 (PST) Message-ID: Date: Thu, 9 Feb 2023 16:49:34 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.0 From: Vladimir Makarov Subject: [pushed] [PR103541] RA: Implement reuse of equivalent memory for caller saves optimization (version 2) To: "gcc-patches@gcc.gnu.org" X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="------------mhYattuG1Z1WjmmpqN5e1hiY" Content-Language: en-US X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,TXREP 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: This is a multi-part message in MIME format. --------------mhYattuG1Z1WjmmpqN5e1hiY Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit This is another try to solve https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103541 The patch was successfully bootstrapped (--enable-languages=all) and tested on x86, x86-64, aarch64 --------------mhYattuG1Z1WjmmpqN5e1hiY Content-Type: text/x-patch; charset=UTF-8; name="pr103541-2.patch" Content-Disposition: attachment; filename="pr103541-2.patch" Content-Transfer-Encoding: base64 Y29tbWl0IDFhZDg5OGQxODkwNGFjNjg0MzJiYTliOGZmYTJiMDgzZDAwN2NjMmQKQXV0aG9yOiBW bGFkaW1pciBOLiBNYWthcm92IDx2bWFrYXJvdkByZWRoYXQuY29tPgpEYXRlOiAgIFRodSBGZWIg OSAxNToxODo0OCAyMDIzIC0wNTAwCgogICAgUkE6IEltcGxlbWVudCByZXVzZSBvZiBlcXVpdmFs ZW50IG1lbW9yeSBmb3IgY2FsbGVyIHNhdmVzIG9wdGltaXphdGlvbiAoMm5kIHZlcnNpb24pCiAg ICAKICAgIFRoZSB0ZXN0IHByMTAzNTQxLmMgc2hvd3Mgb3Bwb3J0dW5pdHkgdG8gcmV1c2UgbWVt b3J5IHdpdGggY29uc3RhbnQgYWRkcmVzcyBmb3IKICAgIGNhbGxlciBzYXZlcyBvcHRpbWl6YXRp b24gZm9yIGNvbnN0YW50IG9yIHB1cmUgZnVuY3Rpb24gY2FsbC4gIFRoZSBwYXRjaAogICAgaW1w bGVtZW50cyB0aGUgbWVtb3J5IHJldXNlLgogICAgCiAgICAgICAgICAgIFBSIHJ0bC1vcHRpbWl6 YXRpb24vMTAzNTQxCiAgICAgICAgICAgIFBSIHJ0bC1vcHRpbWl6YXRpb24vMTA4NzExCiAgICAK ICAgIGdjYy9DaGFuZ2VMb2c6CiAgICAKICAgICAgICAgICAgKiBpcmEuaCAoc3RydWN0IGlyYV9y ZWdfZXF1aXZfcyk6IEFkZCBuZXcgZmllbGQgY2FsbGVyX3NhdmVfcC4KICAgICAgICAgICAgKiBp cmEuY2MgKHZhbGlkYXRlX2VxdWl2X21lbSk6IENoZWNrIG1lbXJlZiBhZGRyZXNzIHZhcmlhbmNl LgogICAgICAgICAgICAobm9fZXF1aXYpOiBDbGVhciBjYWxsZXJfc2F2ZV9wIGZsYWcuCiAgICAg ICAgICAgICh1cGRhdGVfZXF1aXZfcmVncyk6IERlZmluZSBjYWxsZXIgc2F2ZSBlcXVpdmFsZW5j ZSBmb3IKICAgICAgICAgICAgdmFsaWRfY29tYmluZS4KICAgICAgICAgICAgKHNldHVwX3JlZ19l cXVpdik6IENsZWFyIGRlZmluZWRfcCBmbGFnIGZvciBjYWxsZXIgc2F2ZSBlcXVpdmFsZW5jZS4K ICAgICAgICAgICAgKiBscmEtY29uc3RyYWludHMuY2MgKGxyYV9jb3B5X3JlZ19lcXVpdik6IEFk ZCBuZXcgYXJnCiAgICAgICAgICAgIGNhbGxfc2F2ZV9wLiAgVXNlIGNhbGxlciBzYXZlIGVxdWl2 YWxlbmNlIGRlcGVuZGluZyBvbiB0aGUgYXJnLgogICAgICAgICAgICAoc3BsaXRfcmVnKTogQWRq dXN0IHRoZSBjYWxsLgogICAgCiAgICBnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoKICAgIAogICAg ICAgICAgICAqIGdjYy50YXJnZXQvaTM4Ni9wcjEwMzU0MS5jOiBOZXcuCiAgICAgICAgICAgICog ZysrLnRhcmdldC9pMzg2L3ByMTA4NzExLkM6IE5ldy4KCmRpZmYgLS1naXQgYS9nY2MvaXJhLmNj IGIvZ2NjL2lyYS5jYwppbmRleCA2NmRmMDNlOGE1OS4uNjE0M2RiMDZjNTIgMTAwNjQ0Ci0tLSBh L2djYy9pcmEuY2MKKysrIGIvZ2NjL2lyYS5jYwpAQCAtMzA3MCw2ICszMDcwLDggQEAgdmFsaWRh dGVfZXF1aXZfbWVtX2Zyb21fc3RvcmUgKHJ0eCBkZXN0LCBjb25zdF9ydHggc2V0IEFUVFJJQlVU RV9VTlVTRUQsCiAgICAgaW5mby0+ZXF1aXZfbWVtX21vZGlmaWVkID0gdHJ1ZTsKIH0KIAorc3Rh dGljIGludCBlcXVpdl9pbml0X3Zhcmllc19wIChydHggeCk7CisKIGVudW0gdmFsaWRfZXF1aXYg eyB2YWxpZF9ub25lLCB2YWxpZF9jb21iaW5lLCB2YWxpZF9yZWxvYWQgfTsKIAogLyogVmVyaWZ5 IHRoYXQgbm8gc3RvcmUgYmV0d2VlbiBTVEFSVCBhbmQgdGhlIGRlYXRoIG9mIFJFRyBpbnZhbGlk YXRlcwpAQCAtMzExMyw3ICszMTE1LDggQEAgdmFsaWRhdGVfZXF1aXZfbWVtIChydHhfaW5zbiAq c3RhcnQsIHJ0eCByZWcsIHJ0eCBtZW1yZWYpCiAJICAgICBiZWVuIGNoYW5nZWQgYW5kIGFsbCBo ZWxsIGJyZWFrcyBsb29zZS4gICovCiAJICByZXQgPSB2YWxpZF9jb21iaW5lOwogCSAgaWYgKCFN RU1fUkVBRE9OTFlfUCAobWVtcmVmKQotCSAgICAgICYmICFSVExfQ09OU1RfT1JfUFVSRV9DQUxM X1AgKGluc24pKQorCSAgICAgICYmICghUlRMX0NPTlNUX09SX1BVUkVfQ0FMTF9QIChpbnNuKQor CQkgIHx8IGVxdWl2X2luaXRfdmFyaWVzX3AgKFhFWFAgKG1lbXJlZiwgMCkpKSkKIAkgICAgcmV0 dXJuIHZhbGlkX25vbmU7CiAJfQogCkBAIC0zNDE0LDYgKzM0MTcsNyBAQCBub19lcXVpdiAocnR4 IHJlZywgY29uc3RfcnR4IHN0b3JlIEFUVFJJQlVURV9VTlVTRUQsCiAgIGlmIChyZWdfZXF1aXZb cmVnbm9dLmlzX2FyZ19lcXVpdmFsZW5jZSkKICAgICByZXR1cm47CiAgIGlyYV9yZWdfZXF1aXZb cmVnbm9dLmRlZmluZWRfcCA9IGZhbHNlOworICBpcmFfcmVnX2VxdWl2W3JlZ25vXS5jYWxsZXJf c2F2ZV9wID0gZmFsc2U7CiAgIGlyYV9yZWdfZXF1aXZbcmVnbm9dLmluaXRfaW5zbnMgPSBOVUxM OwogICBmb3IgKDsgbGlzdDsgbGlzdCA9IGxpc3QtPm5leHQgKCkpCiAgICAgewpAQCAtMzc2Niw3 ICszNzcwLDE4IEBAIHVwZGF0ZV9lcXVpdl9yZWdzICh2b2lkKQogCQl7CiAJCSAgcmVwbGFjZW1l bnQgPSBjb3B5X3J0eCAoU0VUX1NSQyAoc2V0KSk7CiAJCSAgaWYgKHZhbGlkaXR5ID09IHZhbGlk X3JlbG9hZCkKLQkJICAgIG5vdGUgPSBzZXRfdW5pcXVlX3JlZ19ub3RlIChpbnNuLCBSRUdfRVFV SVYsIHJlcGxhY2VtZW50KTsKKwkJICAgIHsKKwkJICAgICAgbm90ZSA9IHNldF91bmlxdWVfcmVn X25vdGUgKGluc24sIFJFR19FUVVJViwgcmVwbGFjZW1lbnQpOworCQkgICAgfQorCQkgIGVsc2UK KwkJICAgIHsKKwkJICAgICAgLyogV2Ugc3RpbGwgY2FuIHVzZSB0aGlzIGVxdWl2YWxlbmNlIGZv ciBjYWxsZXIgc2F2ZQorCQkJIG9wdGltaXphdGlvbiBpbiBMUkEuICBNYXJrIHRoaXMuICAqLwor CQkgICAgICBpcmFfcmVnX2VxdWl2W3JlZ25vXS5jYWxsZXJfc2F2ZV9wID0gdHJ1ZTsKKwkJICAg ICAgaXJhX3JlZ19lcXVpdltyZWdub10uaW5pdF9pbnNucworCQkJPSBnZW5fcnR4X0lOU05fTElT VCAoVk9JRG1vZGUsIGluc24sCisJCQkJCSAgICAgaXJhX3JlZ19lcXVpdltyZWdub10uaW5pdF9p bnNucyk7CisJCSAgICB9CiAJCX0KIAkgICAgfQogCkBAIC00MTU2LDcgKzQxNzEsNyBAQCBzZXR1 cF9yZWdfZXF1aXYgKHZvaWQpCiAJCSAgIGxlZ2l0aW1hdGUsIHdlIGlnbm9yZSBzdWNoIFJFR19F UVVJViBub3Rlcy4gICovCiAJCWlmIChtZW1vcnlfb3BlcmFuZCAoeCwgVk9JRG1vZGUpKQogCQkg IHsKLQkJICAgIGlyYV9yZWdfZXF1aXZbaV0uZGVmaW5lZF9wID0gdHJ1ZTsKKwkJICAgIGlyYV9y ZWdfZXF1aXZbaV0uZGVmaW5lZF9wID0gIWlyYV9yZWdfZXF1aXZbaV0uY2FsbGVyX3NhdmVfcDsK IAkJICAgIGlyYV9yZWdfZXF1aXZbaV0ubWVtb3J5ID0geDsKIAkJICAgIGNvbnRpbnVlOwogCQkg IH0KZGlmZiAtLWdpdCBhL2djYy9pcmEuaCBiL2djYy9pcmEuaAppbmRleCA1OGI1MGRiZThhMi4u M2QzNTAyNWE0NmUgMTAwNjQ0Ci0tLSBhL2djYy9pcmEuaAorKysgYi9nY2MvaXJhLmgKQEAgLTE3 NSw4ICsxNzUsMTEgQEAgZXh0ZXJuIHN0cnVjdCB0YXJnZXRfaXJhICp0aGlzX3RhcmdldF9pcmE7 CiAvKiBNYWpvciBzdHJ1Y3R1cmUgZGVzY3JpYmluZyBlcXVpdmFsZW5jZSBpbmZvIGZvciBhIHBz ZXVkby4gICovCiBzdHJ1Y3QgaXJhX3JlZ19lcXVpdl9zCiB7Ci0gIC8qIFRydWUgaWYgd2UgY2Fu IHVzZSB0aGlzIGVxdWl2YWxlbmNlLiAgKi8KKyAgLyogVHJ1ZSBpZiB3ZSBjYW4gdXNlIHRoaXMg YXMgYSBnZW5lcmFsIGVxdWl2YWxlbmNlLiAgKi8KICAgYm9vbCBkZWZpbmVkX3A7CisgIC8qIFRy dWUgaWYgd2UgY2FuIHVzZSB0aGlzIGVxdWl2YWxlbmNlIG9ubHkgZm9yIGNhbGxlciBzYXZlL3Jl c3RvcmUKKyAgICAgbG9jYXRpb24uICAqLworICBib29sIGNhbGxlcl9zYXZlX3A7CiAgIC8qIFRy dWUgaWYgdGhlIHVzYWdlIG9mIHRoZSBlcXVpdmFsZW5jZSBpcyBwcm9maXRhYmxlLiAgKi8KICAg Ym9vbCBwcm9maXRhYmxlX3A7CiAgIC8qIEVxdWl2LiBtZW1vcnksIGNvbnN0YW50LCBpbnZhcmlh bnQsIGFuZCBpbml0aWFsaXppbmcgaW5zbnMgb2YKZGlmZiAtLWdpdCBhL2djYy9scmEtY29uc3Ry YWludHMuY2MgYi9nY2MvbHJhLWNvbnN0cmFpbnRzLmNjCmluZGV4IDdiZmZiYzA3ZWUyLi5kZDRm NjhiYmZjMCAxMDA2NDQKLS0tIGEvZ2NjL2xyYS1jb25zdHJhaW50cy5jYworKysgYi9nY2MvbHJh LWNvbnN0cmFpbnRzLmNjCkBAIC01NzcxLDE0ICs1NzcxLDE3IEBAIGNob29zZV9zcGxpdF9jbGFz cyAoZW51bSByZWdfY2xhc3MgYWxsb2Nub19jbGFzcywKICAgcmV0dXJuIGJlc3RfY2w7CiB9CiAK LS8qIENvcHkgYW55IGVxdWl2YWxlbmNlIGluZm9ybWF0aW9uIGZyb20gT1JJR0lOQUxfUkVHTk8g dG8gTkVXX1JFR05PLgotICAgSXQgb25seSBtYWtlcyBzZW5zZSB0byBjYWxsIHRoaXMgZnVuY3Rp b24gaWYgTkVXX1JFR05PIGlzIGFsd2F5cwotICAgZXF1YWwgdG8gT1JJR0lOQUxfUkVHTk8uICAq LworLyogQ29weSBhbnkgZXF1aXZhbGVuY2UgaW5mb3JtYXRpb24gZnJvbSBPUklHSU5BTF9SRUdO TyB0byBORVdfUkVHTk8uICBJdCBvbmx5CisgICBtYWtlcyBzZW5zZSB0byBjYWxsIHRoaXMgZnVu Y3Rpb24gaWYgTkVXX1JFR05PIGlzIGFsd2F5cyBlcXVhbCB0bworICAgT1JJR0lOQUxfUkVHTk8u ICBTZXQgdXAgZGVmaW5lZF9wIGZsYWcgd2hlbiBjYWxsZXJfc2F2ZV9wIGZsYWcgaXMgc2V0IHVw IGFuZAorICAgQ0FMTF9TQVZFX1AgaXMgdHJ1ZS4gICovCiAKIHN0YXRpYyB2b2lkCi1scmFfY29w eV9yZWdfZXF1aXYgKHVuc2lnbmVkIGludCBuZXdfcmVnbm8sIHVuc2lnbmVkIGludCBvcmlnaW5h bF9yZWdubykKK2xyYV9jb3B5X3JlZ19lcXVpdiAodW5zaWduZWQgaW50IG5ld19yZWdubywgdW5z aWduZWQgaW50IG9yaWdpbmFsX3JlZ25vLAorCQkgICAgYm9vbCBjYWxsX3NhdmVfcCkKIHsKLSAg aWYgKCFpcmFfcmVnX2VxdWl2W29yaWdpbmFsX3JlZ25vXS5kZWZpbmVkX3ApCisgIGlmICghaXJh X3JlZ19lcXVpdltvcmlnaW5hbF9yZWdub10uZGVmaW5lZF9wCisgICAgICAmJiAhKGNhbGxfc2F2 ZV9wICYmIGlyYV9yZWdfZXF1aXZbb3JpZ2luYWxfcmVnbm9dLmNhbGxlcl9zYXZlX3ApKQogICAg IHJldHVybjsKIAogICBpcmFfZXhwYW5kX3JlZ19lcXVpdiAoKTsKQEAgLTU5NTgsNyArNTk2MSw3 IEBAIHNwbGl0X3JlZyAoYm9vbCBiZWZvcmVfcCwgaW50IG9yaWdpbmFsX3JlZ25vLCBydHhfaW5z biAqaW5zbiwKICAgICAgcmVtYXRlcmlhbGl6aW5nIHRoZSBvcmlnaW5hbCB2YWx1ZSBpbnN0ZWFk IG9mIHNwaWxsaW5nIHRvIHRoZSBzdGFjay4gICovCiAgIGlmICghSEFSRF9SRUdJU1RFUl9OVU1f UCAob3JpZ2luYWxfcmVnbm8pCiAgICAgICAmJiBtb2RlID09IFBTRVVET19SRUdOT19NT0RFIChv cmlnaW5hbF9yZWdubykpCi0gICAgbHJhX2NvcHlfcmVnX2VxdWl2IChuZXdfcmVnbm8sIG9yaWdp bmFsX3JlZ25vKTsKKyAgICBscmFfY29weV9yZWdfZXF1aXYgKG5ld19yZWdubywgb3JpZ2luYWxf cmVnbm8sIGNhbGxfc2F2ZV9wKTsKICAgbHJhX3JlZ19pbmZvW25ld19yZWdub10ucmVzdG9yZV9y dHggPSByZWdub19yZWdfcnR4W29yaWdpbmFsX3JlZ25vXTsKICAgYml0bWFwX3NldF9iaXQgKCZs cmFfc3BsaXRfcmVncywgbmV3X3JlZ25vKTsKICAgaWYgKHRvICE9IE5VTEwpCmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2crKy50YXJnZXQvaTM4Ni9wcjEwODcxMS5DIGIvZ2NjL3Rlc3RzdWl0 ZS9nKysudGFyZ2V0L2kzODYvcHIxMDg3MTEuQwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uMGEyMjNlMDA1ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRl L2crKy50YXJnZXQvaTM4Ni9wcjEwODcxMS5DCkBAIC0wLDAgKzEsMjAgQEAKKy8qIFBSIHRhcmdl dC8xMDg3MTEuQyAqLworLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAi LU8yIC1mbm8tZXhjZXB0aW9ucyIgfSAqLworc3RydWN0IEV4cHJlc3Npb25fbGlzdCB7CisgIEV4 cHJlc3Npb25fbGlzdCAqY29weSgpOworfSB2YWxzXzsKK3N0cnVjdCBQYXJzZXJfZXhwcmVzc2lv biB7CisgIFBhcnNlcl9leHByZXNzaW9uKCk7Cit9Oworc3RydWN0IENvbXBvc2l0ZV9saXRlcmFs X2V4cHJlc3Npb24gOiBQYXJzZXJfZXhwcmVzc2lvbiB7CisgIENvbXBvc2l0ZV9saXRlcmFsX2V4 cHJlc3Npb24oYm9vbCBoYXNfa2V5cywgRXhwcmVzc2lvbl9saXN0ICosCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYm9vbCBhbGxfYXJlX25hbWVzKQorICAgICAgOiBoYXNfa2V5c18o aGFzX2tleXMpLCBhbGxfYXJlX25hbWVzXyhhbGxfYXJlX25hbWVzKSB7fQorICB2b2lkIGRvX2Nv cHkoKTsKKyAgYm9vbCBoYXNfa2V5c187CisgIGJvb2wgYWxsX2FyZV9uYW1lc187Cit9Owordm9p ZCBDb21wb3NpdGVfbGl0ZXJhbF9leHByZXNzaW9uOjpkb19jb3B5KCkgeworICBuZXcgQ29tcG9z aXRlX2xpdGVyYWxfZXhwcmVzc2lvbihoYXNfa2V5c18sIHZhbHNfLmNvcHkoKSwgYWxsX2FyZV9u YW1lc18pOworfQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHIx MDM1NDEuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3ByMTAzNTQxLmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjcyYjI1N2Q0MmVlCi0tLSAvZGV2L251 bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHIxMDM1NDEuYwpAQCAtMCww ICsxLDE0IEBACisvKiBQUiBydGwtb3B0aW1pemF0aW9uLzEwMzU0MSAqLworLyogeyBkZy1kbyBj b21waWxlICB7IHRhcmdldCB4ODZfNjQtKi0qIH0gfSAqLworLyogeyBkZy1vcHRpb25zICItTzIi IH0gKi8KKworZmxvYXQgYTsKK19fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgZm9vIChmbG9h dCk7CisKK2Zsb2F0Cit0ZXN0KCkKK3sKKyAgICAgICAgcmV0dXJuIGEgKyBmb28oYSkgKyBhOwor fQorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90ICJcXFwoJXJzcFxcXCkiIH0g fSAqLwo= --------------mhYattuG1Z1WjmmpqN5e1hiY--