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.133.124]) by sourceware.org (Postfix) with ESMTPS id 61A843850226 for ; Thu, 9 Mar 2023 15:28:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 61A843850226 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=1678375712; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=kPTbUuOSEeqnEd9j+VpuTlSskIm5Y8Wt6Dh7vG3slTw=; b=GtPrfPrqG+jQDrHtJWBtNovot46mzHtKtlKstX1tw5CjBRe6IAIXWCckwdM0sXqe/iXBje Vu6A3y6MAXc3rQgd8aMnNosqx/Kv1mgLurTnMhbUQ/UCKH3z/bxTSnMRgWvPdOpiTcGrW2 bTRMNCdwSEm/w6RiSlb27uPEuxWeECk= Received: from mail-qv1-f69.google.com (mail-qv1-f69.google.com [209.85.219.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-652-9ZJAUmqiOPiSptk39OmS-g-1; Thu, 09 Mar 2023 10:28:30 -0500 X-MC-Unique: 9ZJAUmqiOPiSptk39OmS-g-1 Received: by mail-qv1-f69.google.com with SMTP id y3-20020a0cec03000000b0056ee5b123bbso1367639qvo.7 for ; Thu, 09 Mar 2023 07:28:30 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678375709; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=8PdBmgUbj/IKvteieFkGgTUeZOi0Imkm6nblgZMYGsI=; b=nafbOEsF3lDXLYwPsGg5VaXpTu7nivVDeHXyU1LsYumWVxeEa2eltfj1zYQhRjgBQL xT341SYxsyU61eSsJ30ECl8YjeWfzZQZC035jy1+aKp49/D9dyFoNaDa9PeXNpFRTspT w9QfyNnbWjYqH40Z359WwmlL6FmZbJd8EMbC4IJ6Dz+eAag+rOMBWLl20vhNeXz9yCEG zprOEmPUj1yvfH6h4QXyFpaySOoRC/Gl8on1S+JHW2SKGuxbi/c7Sr7HaqYdNMxDxI0e HyMxVxhrQb6NWwXnV51B5Nb8FocyFyd7+opVP5lGqUoLRoZ5hIOxL7V/UhCpU6F7AdW1 RGcA== X-Gm-Message-State: AO0yUKXIi+7uFKnE415c8nrSVJkp/Ua9RZXETlpFbNTof9XRQaqNsYPW StSYC+T/T2PWSFZ1QUaB9BPXLmRPYoYqOAnToRkrKjL1IPeNkQvecafo4dQvLGb/ROhhcvao4zo BJb7FDLgZnHMwFSocJ0ds382I+w== X-Received: by 2002:a05:622a:190b:b0:3b6:5fc7:f554 with SMTP id w11-20020a05622a190b00b003b65fc7f554mr38419133qtc.7.1678375709398; Thu, 09 Mar 2023 07:28:29 -0800 (PST) X-Google-Smtp-Source: AK7set9+M1avPnp2T6FrgBX/XNEzO5hXt6AyjoppENg1k3EagB4m8pwhjc5JRL8AYURpN2JB4hZ71A== X-Received: by 2002:a05:622a:190b:b0:3b6:5fc7:f554 with SMTP id w11-20020a05622a190b00b003b65fc7f554mr38419079qtc.7.1678375708933; Thu, 09 Mar 2023 07:28:28 -0800 (PST) Received: from [192.168.1.108] (130-44-159-43.s15913.c3-0.arl-cbr1.sbo-arl.ma.cable.rcncustomer.com. [130.44.159.43]) by smtp.gmail.com with ESMTPSA id e8-20020ac80108000000b003b9a6d54b6csm13794669qtg.59.2023.03.09.07.28.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 09 Mar 2023 07:28:28 -0800 (PST) Message-ID: Date: Thu, 9 Mar 2023 10:28:26 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [PATCH RFC 1/3] c++: add __is_deducible trait [PR105841] To: Patrick Palka Cc: gcc-patches@gcc.gnu.org References: <20230218214239.2297623-1-jason@redhat.com> <61a57325-0312-d0d6-5ad0-977551459637@idea> From: Jason Merrill In-Reply-To: <61a57325-0312-d0d6-5ad0-977551459637@idea> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="------------QvSX2pu0sbwEfPvKYai0BLSd" Content-Language: en-US X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,NICE_REPLY_A,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. --------------QvSX2pu0sbwEfPvKYai0BLSd Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 2/20/23 11:58, Patrick Palka wrote: > On Sat, 18 Feb 2023, Jason Merrill via Gcc-patches wrote: > >> Tested x86_64-pc-linux-gnu. Since this is fixing experimental (C++20) >> functionality, I think it's reasonable to apply now; I'm interested in other >> opinions, and thoughts about the user-facing functionality. I'm thinking to >> make it internal-only for GCC 13 at least by adding a space in the name, but >> does this look useful to the library? > > IIUC this looks like a generalization of an __is_specialization_of trait > that returns whether a type is a specialization of a given class template, > which seems potentially useful for the library to me. We already define > some ad-hoc predicates for testing this, e.g. __is_reverse_view, > __is_span etc in as well as a more general __is_specialization_of > in for templates that take only type arguments. Using a built-in > trait should be more efficient. > >[...] > > Since the first argument of a TRAIT_EXPR can now be a TEMPLATE_DECL, I > suppose cp_tree_equal needs to be changed too. > >[...] > > For sake of the __is_specialization_of use case, I wonder if it'd > be possible to have a "fast path" that avoids deduction/coercion when > the given template is a class template? Thanks, done. I've also fixed array bounds type deduction and added more comments about the relationship of the implementation and the specification in terms of partial specialization. The second patch makes it internal-only for GCC 13; you can revert that if you want to experiment with using it in the library. Tested x86_64-pc-linux-gnu, applying to trunk. --------------QvSX2pu0sbwEfPvKYai0BLSd Content-Type: text/x-patch; charset=UTF-8; name="0001-c-add-__is_deducible-trait-PR105841.patch" Content-Disposition: attachment; filename="0001-c-add-__is_deducible-trait-PR105841.patch" Content-Transfer-Encoding: base64 RnJvbSA4MWY4MjBjZmYzMzE2Y2VhNDU0YmE4MWRjMzhkZGY1NWIxYWZhODUyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYXNvbiBNZXJyaWxsIDxqYXNvbkByZWRoYXQuY29tPgpEYXRl OiBUaHUsIDkgRmViIDIwMjMgMTI6NTE6NTEgLTA4MDAKU3ViamVjdDogW1BBVENIXSBjKys6IGFk ZCBfX2lzX2RlZHVjaWJsZSB0cmFpdCBbUFIxMDU4NDFdClRvOiBnY2MtcGF0Y2hlc0BnY2MuZ251 Lm9yZwoKQysrMjAgY2xhc3MgdGVtcGxhdGUgYXJndW1lbnQgZGVkdWN0aW9uIGZvciBhbiBhbGlh cyB0ZW1wbGF0ZSBpbnZvbHZlcwphZGRpbmcgYSBjb25zdHJhaW50IHRoYXQgdGhlIHRlbXBsYXRl IGFyZ3VtZW50cyBmb3IgdGhlIGFsaWFzIHRlbXBsYXRlIGNhbgpiZSBkZWR1Y2VkIGZyb20gdGhl IHJldHVybiB0eXBlIG9mIHRoZSBkZWR1Y3Rpb24gZ3VpZGUgZm9yIHRoZSB1bmRlcmx5aW5nCmNs YXNzIHRlbXBsYXRlLiAgSW4gdGhlIHN0YW5kYXJkLCB0aGlzIGlzIG1vZGVsZWQgYXMgZGVmaW5p bmcgYSBjbGFzcwp0ZW1wbGF0ZSB3aXRoIGEgcGFydGlhbCBzcGVjaWFsaXphdGlvbiwgYnV0IGl0 J3MgbXVjaCBtb3JlIGVmZmljaWVudCB0bwppbXBsZW1lbnQgd2l0aCBhIHRyYWl0IHRoYXQgZGly ZWN0bHkgdHJpZXMgdG8gcGVyZm9ybSB0aGUgZGVkdWN0aW9uLgoKVGhlIGZpcnN0IGFyZ3VtZW50 IHRvIHRoZSB0cmFpdCBpcyBhIHRlbXBsYXRlIHJhdGhlciB0aGFuIGEgdHlwZSwgc28gdmFyaW91 cwpwbGFjZXMgbmVlZGVkIHRvIGJlIGFkanVzdGVkIHRvIGFjY29tbW9kYXRlIHRoYXQuCgoJUFIg YysrLzEwNTg0MQoKZ2NjL0NoYW5nZUxvZzoKCgkqIGRvYy9leHRlbmQudGV4aSAoVHlwZSBUcmFp dHMpOjogRG9jdW1lbnQgX19pc19kZWR1Y2libGUuCgpnY2MvY3AvQ2hhbmdlTG9nOgoKCSogY3At dHJhaXQuZGVmIChJU19ERURVQ0lCTEUpOiBOZXcuCgkqIGN4eC1wcmV0dHktcHJpbnQuY2MgKHBw X2N4eF90cmFpdCk6IEhhbmRsZSBub24tdHlwZS4KCSogcGFyc2VyLmNjIChjcF9wYXJzZXJfdHJh aXQpOiBMaWtld2lzZS4KCSogdHJlZS5jYyAoY3BfdHJlZV9lcXVhbCk6IExpa2V3aXNlLgoJKiBw dC5jYyAodHN1YnN0X2NvcHlfYW5kX2J1aWxkKTogTGlrZXdpc2UuCgkodHlwZV90YXJnc19kZWR1 Y2libGVfZnJvbSk6IE5ldy4KCShhbGlhc19jdGFkX3R3ZWFrcyk6IFVzZSBpdC4KCSogc2VtYW50 aWNzLmNjICh0cmFpdF9leHByX3ZhbHVlKTogSGFuZGxlIENQVEtfSVNfREVEVUNJQkxFLgoJKGZp bmlzaF90cmFpdF9leHByKTogTGlrZXdpc2UuCgkqIGNvbnN0cmFpbnQuY2MgKGRpYWdub3NlX3Ry YWl0X2V4cHIpOiBMaWtld2lzZS4KCSogY3AtdHJlZS5oICh0eXBlX3RhcmdzX2RlZHVjaWJsZV9m cm9tKTogRGVjbGFyZS4KCmdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nOgoKCSogZysrLmRnL2V4dC9p c19kZWR1Y2libGUxLkM6IE5ldyB0ZXN0LgotLS0KIGdjYy9kb2MvZXh0ZW5kLnRleGkgICAgICAg ICAgICAgICAgICAgICAgfCAgNCArKwogZ2NjL2NwL2NwLXRyZWUuaCAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAxICsKIGdjYy9jcC9jb25zdHJhaW50LmNjICAgICAgICAgICAgICAgICAgICAg fCAgMyArKwogZ2NjL2NwL2N4eC1wcmV0dHktcHJpbnQuY2MgICAgICAgICAgICAgICB8ICA1ICst CiBnY2MvY3AvcGFyc2VyLmNjICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAgKysrKystLQog Z2NjL2NwL3B0LmNjICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDY5ICsrKysrKysrKysr KysrKysrKysrLS0tLQogZ2NjL2NwL3NlbWFudGljcy5jYyAgICAgICAgICAgICAgICAgICAgICB8 IDExICsrKysKIGdjYy9jcC90cmVlLmNjICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiAr LQogZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvZXh0L2lzX2RlZHVjaWJsZTEuQyB8IDMxICsrKysrKysr KysrCiBnY2MvY3AvY3AtdHJhaXQuZGVmICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogMTAg ZmlsZXMgY2hhbmdlZCwgMTMxIGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZysrLmRnL2V4dC9pc19kZWR1Y2libGUxLkMKCmRp ZmYgLS1naXQgYS9nY2MvZG9jL2V4dGVuZC50ZXhpIGIvZ2NjL2RvYy9leHRlbmQudGV4aQppbmRl eCBjMTEyMjkxNjI1NS4uYjY0YTg1NzIyZGIgMTAwNjQ0Ci0tLSBhL2djYy9kb2MvZXh0ZW5kLnRl eGkKKysrIGIvZ2NjL2RvYy9leHRlbmQudGV4aQpAQCAtMjUyMTMsNiArMjUyMTMsMTAgQEAgdHlw ZS4gIEEgZGlhZ25vc3RpYyBpcyBwcm9kdWNlZCBpZiB0aGlzIHJlcXVpcmVtZW50IGlzIG5vdCBt ZXQuCiBJZiBAY29kZXt0eXBlfSBpcyBhIGN2LXF1YWxpZmllZCBjbGFzcyB0eXBlLCBhbmQgbm90 IGEgdW5pb24gdHlwZQogKFtiYXNpYy5jb21wb3VuZF0pIHRoZSB0cmFpdCBpcyBAY29kZXt0cnVl fSwgZWxzZSBpdCBpcyBAY29kZXtmYWxzZX0uCiAKK0BpdGVtIF9faXNfZGVkdWNpYmxlICh0ZW1w bGF0ZSwgdHlwZSkKK0lmIHRlbXBsYXRlIGFyZ3VtZW50cyBmb3IgQGNvZGV7dGVtcGxhdGV9IGNh biBiZSBkZWR1Y2VkIGZyb20KK0Bjb2Rle3R5cGV9IG9yIG9idGFpbmVkIGZyb20gZGVmYXVsdCB0 ZW1wbGF0ZSBhcmd1bWVudHMuCisKIEBpdGVtIF9faXNfZW1wdHkgKHR5cGUpCiBJZiBAY29kZXtf X2lzX2NsYXNzICh0eXBlKX0gaXMgQGNvZGV7ZmFsc2V9IHRoZW4gdGhlIHRyYWl0IGlzIEBjb2Rl e2ZhbHNlfS4KIE90aGVyd2lzZSBAY29kZXt0eXBlfSBpcyBjb25zaWRlcmVkIGVtcHR5IGlmIGFu ZCBvbmx5IGlmOiBAY29kZXt0eXBlfQpkaWZmIC0tZ2l0IGEvZ2NjL2NwL2NwLXRyZWUuaCBiL2dj Yy9jcC9jcC10cmVlLmgKaW5kZXggZmIyMWMwNjQxNDEuLmRmYzFjODQ1NzY4IDEwMDY0NAotLS0g YS9nY2MvY3AvY3AtdHJlZS5oCisrKyBiL2djYy9jcC9jcC10cmVlLmgKQEAgLTczNjEsNiArNzM2 MSw3IEBAIGV4dGVybiB0cmVlIGZuX3R5cGVfdW5pZmljYXRpb24JCQkodHJlZSwgdHJlZSwgdHJl ZSwKIAkJCQkJCSBib29sLCBib29sKTsKIGV4dGVybiB2b2lkIG1hcmtfZGVjbF9pbnN0YW50aWF0 ZWQJCSh0cmVlLCBpbnQpOwogZXh0ZXJuIGludCBtb3JlX3NwZWNpYWxpemVkX2ZuCQkJKHRyZWUs IHRyZWUsIGludCk7CitleHRlcm4gYm9vbCB0eXBlX3RhcmdzX2RlZHVjaWJsZV9mcm9tCQkodHJl ZSwgdHJlZSk7CiBleHRlcm4gdm9pZCBkb19kZWNsX2luc3RhbnRpYXRpb24JCSh0cmVlLCB0cmVl KTsKIGV4dGVybiB2b2lkIGRvX3R5cGVfaW5zdGFudGlhdGlvbgkJKHRyZWUsIHRyZWUsIHRzdWJz dF9mbGFnc190KTsKIGV4dGVybiBib29sIGFsd2F5c19pbnN0YW50aWF0ZV9wCQkodHJlZSk7CmRp ZmYgLS1naXQgYS9nY2MvY3AvY29uc3RyYWludC5jYyBiL2djYy9jcC9jb25zdHJhaW50LmNjCmlu ZGV4IDkzNzQzMjcwMDhiLi5hMjhjODUxNzhmZSAxMDA2NDQKLS0tIGEvZ2NjL2NwL2NvbnN0cmFp bnQuY2MKKysrIGIvZ2NjL2NwL2NvbnN0cmFpbnQuY2MKQEAgLTM3OTcsNiArMzc5Nyw5IEBAIGRp YWdub3NlX3RyYWl0X2V4cHIgKHRyZWUgZXhwciwgdHJlZSBhcmdzKQogICAgICAgaW5mb3JtIChs b2MsICIgICVxVCBpcyBub3QgYSByZWZlcmVuY2UgdGhhdCBiaW5kcyB0byBhIHRlbXBvcmFyeSAi CiAJICAgICAgIm9iamVjdCBvZiB0eXBlICVxVCAoY29weS1pbml0aWFsaXphdGlvbikiLCB0MSwg dDIpOwogICAgICAgYnJlYWs7CisgICAgY2FzZSBDUFRLX0lTX0RFRFVDSUJMRToKKyAgICAgIGlu Zm9ybSAobG9jLCAiICAlcUQgaXMgbm90IGRlZHVjaWJsZSBmcm9tICVxVCIsIHQxLCB0Mik7Cisg ICAgICBicmVhazsKICNkZWZpbmUgREVGVFJBSVRfVFlQRShDT0RFLCBOQU1FLCBBUklUWSkgXAog ICAgIGNhc2UgQ1BUS18jI0NPREU6CiAjaW5jbHVkZSAiY3AtdHJhaXQuZGVmIgpkaWZmIC0tZ2l0 IGEvZ2NjL2NwL2N4eC1wcmV0dHktcHJpbnQuY2MgYi9nY2MvY3AvY3h4LXByZXR0eS1wcmludC5j YwppbmRleCBiZWE1MmE2MDhmMS4uN2Y0NTU2ZDBkYTIgMTAwNjQ0Ci0tLSBhL2djYy9jcC9jeHgt cHJldHR5LXByaW50LmNjCisrKyBiL2djYy9jcC9jeHgtcHJldHR5LXByaW50LmNjCkBAIC0yNjI2 LDcgKzI2MjYsMTAgQEAgcHBfY3h4X3RyYWl0IChjeHhfcHJldHR5X3ByaW50ZXIgKnBwLCB0cmVl IHQpCiAgICAgfQogCiAgIHBwX2N4eF9sZWZ0X3BhcmVuIChwcCk7Ci0gIHBwLT50eXBlX2lkICh0 eXBlMSk7CisgIGlmIChUWVBFX1AgKHR5cGUxKSkKKyAgICBwcC0+dHlwZV9pZCAodHlwZTEpOwor ICBlbHNlCisgICAgcHAtPmV4cHJlc3Npb24gKHR5cGUxKTsKICAgaWYgKHR5cGUyKQogICAgIHsK ICAgICAgIGlmIChUUkVFX0NPREUgKHR5cGUyKSAhPSBUUkVFX0xJU1QpCmRpZmYgLS1naXQgYS9n Y2MvY3AvcGFyc2VyLmNjIGIvZ2NjL2NwL3BhcnNlci5jYwppbmRleCBiMDBhNmNkNWI4Yi4uNTMz MDQxOTQ2YzAgMTAwNjQ0Ci0tLSBhL2djYy9jcC9wYXJzZXIuY2MKKysrIGIvZ2NjL2NwL3BhcnNl ci5jYwpAQCAtMTA5NjAsMTAgKzEwOTYwLDIyIEBAIGNwX3BhcnNlcl90cmFpdCAoY3BfcGFyc2Vy KiBwYXJzZXIsIGVudW0gcmlkIGtleXdvcmQpCiAgIG1hdGNoaW5nX3BhcmVucyBwYXJlbnM7CiAg IHBhcmVucy5yZXF1aXJlX29wZW4gKHBhcnNlcik7CiAKLSAgewotICAgIHR5cGVfaWRfaW5fZXhw cl9zZW50aW5lbCBzIChwYXJzZXIpOwotICAgIHR5cGUxID0gY3BfcGFyc2VyX3R5cGVfaWQgKHBh cnNlcik7Ci0gIH0KKyAgaWYgKGtpbmQgPT0gQ1BUS19JU19ERURVQ0lCTEUpCisgICAgeworICAg ICAgY29uc3QgY3BfdG9rZW4qIHRva2VuID0gY3BfbGV4ZXJfcGVla190b2tlbiAocGFyc2VyLT5s ZXhlcik7CisgICAgICB0eXBlMSA9IGNwX3BhcnNlcl9pZF9leHByZXNzaW9uIChwYXJzZXIsCisJ CQkJICAgICAgIC8qdGVtcGxhdGVfa2V5d29yZF9wPSovZmFsc2UsCisJCQkJICAgICAgIC8qY2hl Y2tfZGVwZW5kZW5jeV9wPSovdHJ1ZSwKKwkJCQkgICAgICAgbnVsbHB0ciwKKwkJCQkgICAgICAg LypkZWNsYXJhdG9yX3A9Ki9mYWxzZSwKKwkJCQkgICAgICAgLypvcHRpb25hbF9wPSovZmFsc2Up OworICAgICAgdHlwZTEgPSBjcF9wYXJzZXJfbG9va3VwX25hbWVfc2ltcGxlIChwYXJzZXIsIHR5 cGUxLCB0b2tlbi0+bG9jYXRpb24pOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIHR5cGVf aWRfaW5fZXhwcl9zZW50aW5lbCBzIChwYXJzZXIpOworICAgICAgdHlwZTEgPSBjcF9wYXJzZXJf dHlwZV9pZCAocGFyc2VyKTsKKyAgICB9CiAKICAgaWYgKHR5cGUxID09IGVycm9yX21hcmtfbm9k ZSkKICAgICByZXR1cm4gZXJyb3JfbWFya19ub2RlOwpkaWZmIC0tZ2l0IGEvZ2NjL2NwL3B0LmNj IGIvZ2NjL2NwL3B0LmNjCmluZGV4IGFhZmM5OWQxMmMzLi5lODdjZGEyNDViMiAxMDA2NDQKLS0t IGEvZ2NjL2NwL3B0LmNjCisrKyBiL2djYy9jcC9wdC5jYwpAQCAtMjE1ODcsOCArMjE1ODcsOCBA QCB0c3Vic3RfY29weV9hbmRfYnVpbGQgKHRyZWUgdCwKIAogICAgIGNhc2UgVFJBSVRfRVhQUjoK ICAgICAgIHsKLQl0cmVlIHR5cGUxID0gdHN1YnN0IChUUkFJVF9FWFBSX1RZUEUxICh0KSwgYXJn cywKLQkJCSAgICAgY29tcGxhaW4sIGluX2RlY2wpOworCXRyZWUgdHlwZTEgPSB0c3Vic3RfY29w eSAoVFJBSVRfRVhQUl9UWVBFMSAodCksIGFyZ3MsCisJCQkJICBjb21wbGFpbiwgaW5fZGVjbCk7 CiAJdHJlZSB0eXBlMiA9IHRzdWJzdCAoVFJBSVRfRVhQUl9UWVBFMiAodCksIGFyZ3MsCiAJCQkg ICAgIGNvbXBsYWluLCBpbl9kZWNsKTsKIAlSRVRVUk4gKGZpbmlzaF90cmFpdF9leHByIChUUkFJ VF9FWFBSX0xPQ0FUSU9OICh0KSwKQEAgLTI5OTg5LDcgKzI5OTg5LDcgQEAgYWxpYXNfY3RhZF90 d2Vha3MgKHRyZWUgdG1wbCwgdHJlZSB1Z3VpZGVzKQogICAvKiBUaGlzIGltcGxlbWVudGF0aW9u IGRpZmZlcnMgZnJvbSB0aGUgYWJvdmUgaW4gdHdvIHNpZ25pZmljYW50IHdheXM6CiAKICAgICAg MSkgV2UgaW5jbHVkZSBhbGwgdGVtcGxhdGUgcGFyYW1ldGVycyBvZiBBLCBub3QganVzdCBzb21l LgotICAgICAyKSBUaGUgYWRkZWQgY29uc3RyYWludCBpcyBzYW1lX3R5cGUgaW5zdGVhZCBvZiBk ZWR1Y2libGUuCisgICAgIDIpIFtmaXhlZF0gVGhlIGFkZGVkIGNvbnN0cmFpbnQgaXMgc2FtZV90 eXBlIGluc3RlYWQgb2YgZGVkdWNpYmxlLgogCiAgICAgIEkgYmVsaWV2ZSB0aGF0IHdoaWxlIGl0 J3MgcHJvYmFibHkgcG9zc2libGUgdG8gY29uc3RydWN0IGEgdGVzdGNhc2UgdGhhdAogICAgICBi ZWhhdmVzIGRpZmZlcmVudGx5IHdpdGggdGhpcyBzaW1wbGlmaWNhdGlvbiwgaXQgc2hvdWxkIGhh dmUgdGhlIHNhbWUKQEAgLTMwMDg5LDcgKzMwMDg5LDcgQEAgYWxpYXNfY3RhZF90d2Vha3MgKHRy ZWUgdG1wbCwgdHJlZSB1Z3VpZGVzKQogCSAgICAgIC8qIEZJWE1FIHRoaXMgc2hvdWxkIG1lYW4g dGhleSBkb24ndCBjb21wYXJlIGFzIGVxdWl2YWxlbnQuICAqLwogCSAgICAgIHx8IGRlcGVuZGVu dF9hbGlhc190ZW1wbGF0ZV9zcGVjX3AgKGF0eXBlLCBudF9vcGFxdWUpKQogCSAgICB7Ci0JICAg ICAgdHJlZSBzYW1lID0gZmluaXNoX3RyYWl0X2V4cHIgKGxvYywgQ1BUS19JU19TQU1FLCBhdHlw ZSwgcmV0KTsKKwkgICAgICB0cmVlIHNhbWUgPSBmaW5pc2hfdHJhaXRfZXhwciAobG9jLCBDUFRL X0lTX0RFRFVDSUJMRSwgdG1wbCwgcmV0KTsKIAkgICAgICBjaSA9IGFwcGVuZF9jb25zdHJhaW50 IChjaSwgc2FtZSk7CiAJICAgIH0KIApAQCAtMzAxMDMsMTIgKzMwMTAzLDcgQEAgYWxpYXNfY3Rh ZF90d2Vha3MgKHRyZWUgdG1wbCwgdHJlZSB1Z3VpZGVzKQogCXsKIAkgIC8qIEZvciBhIG5vbi10 ZW1wbGF0ZSBkZWR1Y3Rpb24gZ3VpZGUsIGlmIHRoZSBhcmd1bWVudHMgb2YgQSBhcmVuJ3QKIAkg ICAgIGRlZHVjaWJsZSBmcm9tIHRoZSByZXR1cm4gdHlwZSwgZG9uJ3QgYWRkIHRoZSBjYW5kaWRh dGUuICAqLwotCSAgdHJlZSB0YXJncyA9IG1ha2VfdHJlZV92ZWMgKG5hdHBhcm1zKTsKLQkgIGlu dCBlcnIgPSB1bmlmeSAoYXRwYXJtcywgdGFyZ3MsIHV0eXBlLCByZXQsIFVOSUZZX0FMTE9XX05P TkUsIGZhbHNlKTsKLQkgIGZvciAodW5zaWduZWQgaSA9IDA7ICFlcnIgJiYgaSA8IG5hdHBhcm1z OyArK2kpCi0JICAgIGlmIChUUkVFX1ZFQ19FTFQgKHRhcmdzLCBpKSA9PSBOVUxMX1RSRUUpCi0J ICAgICAgZXJyID0gdHJ1ZTsKLQkgIGlmIChlcnIpCisJICBpZiAoIXR5cGVfdGFyZ3NfZGVkdWNp YmxlX2Zyb20gKHRtcGwsIHJldCkpCiAJICAgIGNvbnRpbnVlOwogCX0KIApAQCAtMzAxMTgsNiAr MzAxMTMsNjAgQEAgYWxpYXNfY3RhZF90d2Vha3MgKHRyZWUgdG1wbCwgdHJlZSB1Z3VpZGVzKQog ICByZXR1cm4gYWd1aWRlczsKIH0KIAorLyogVHJ1ZSBpZmYgdGVtcGxhdGUgYXJndW1lbnRzIGZv ciBUTVBMIGNhbiBiZSBkZWR1Y2VkIGZyb20gVFlQRS4KKyAgIFVzZWQgdG8gaW1wbGVtZW50IENQ VEtfSVNfREVEVUNJQkxFIGZvciBhbGlhcyBDVEFEIGFjY29yZGluZyB0bworICAgW292ZXIubWF0 Y2guY2xhc3MuZGVkdWN0XS4KKworICAgVGhpcyBjaGVjayBpcyBzcGVjaWZpZWQgaW4gdGVybXMg b2YgcGFydGlhbCBzcGVjaWFsaXphdGlvbiwgc28gdGhlIGJlaGF2aW9yCisgICBzaG91bGQgYmUg cGFyYWxsZWwgdG8gdGhhdCBvZiBnZXRfcGFydGlhbF9zcGVjX2JpbmRpbmdzLiAgKi8KKworYm9v bAordHlwZV90YXJnc19kZWR1Y2libGVfZnJvbSAodHJlZSB0bXBsLCB0cmVlIHR5cGUpCit7Cisg IHRyZWUgdHBhcm1zID0gREVDTF9JTk5FUk1PU1RfVEVNUExBVEVfUEFSTVMgKHRtcGwpOworICBp bnQgbGVuID0gVFJFRV9WRUNfTEVOR1RIICh0cGFybXMpOworICB0cmVlIHRhcmdzID0gbWFrZV90 cmVlX3ZlYyAobGVuKTsKKyAgYm9vbCB0cmllZF9hcnJheV9kZWR1Y3Rpb24gPSAoY3h4X2RpYWxl Y3QgPCBjeHgxNyk7CisKKyAgLyogSWYgdG1wbCBpcyBhIGNsYXNzIHRlbXBsYXRlLCB0aGlzIGlz IHRyaXZpYWw6IGl0J3MgZGVkdWNpYmxlIGlmIFRZUEUgaXMgYQorICAgICBzcGVjaWFsaXphdGlv biBvZiBUTVBMLiAgKi8KKyAgaWYgKERFQ0xfQ0xBU1NfVEVNUExBVEVfUCAodG1wbCkpCisgICAg cmV0dXJuIChDTEFTU19UWVBFX1AgKHR5cGUpCisJICAgICYmIENMQVNTVFlQRV9URU1QTEFURV9J TkZPICh0eXBlKQorCSAgICAmJiBDTEFTU1RZUEVfVElfVEVNUExBVEUgKHR5cGUpID09IHRtcGwp OworCisgIC8qIE90aGVyd2lzZSBpdCdzIGFuIGFsaWFzIHRlbXBsYXRlLiAgKi8KKyBhZ2FpbjoK KyAgaWYgKHVuaWZ5ICh0cGFybXMsIHRhcmdzLCBUUkVFX1RZUEUgKHRtcGwpLCB0eXBlLAorCSAg ICAgVU5JRllfQUxMT1dfTk9ORSwgZmFsc2UpKQorICAgIHJldHVybiBmYWxzZTsKKworICAvKiBX ZSBkb24ndCBmYWlsIG9uIGFuIHVuZGVkdWNlZCB0YXJnIHRoZSBzZWNvbmQgdGltZSB0aHJvdWdo IChsaWtlCisgICAgIGdldF9wYXJ0aWFsX3NwZWNfYmluZGluZ3MpIGJlY2F1c2Ugd2UncmUgZ29p bmcgdG8gdHJ5IGRlZmF1bHRzLiAgKi8KKyAgaWYgKCF0cmllZF9hcnJheV9kZWR1Y3Rpb24pCisg ICAgZm9yIChpbnQgaSA9ICAwOyBpIDwgbGVuOyArK2kpCisgICAgICBpZiAoISBUUkVFX1ZFQ19F TFQgKHRhcmdzLCBpKSkKKwl7CisJICB0cnlfYXJyYXlfZGVkdWN0aW9uICh0cGFybXMsIHRhcmdz LCBUUkVFX1RZUEUgKHRtcGwpKTsKKwkgIHRyaWVkX2FycmF5X2RlZHVjdGlvbiA9IHRydWU7CisJ ICBpZiAoVFJFRV9WRUNfRUxUICh0YXJncywgaSkpCisJICAgIGdvdG8gYWdhaW47CisJfQorCisg IC8qIE1heWJlIGFkZCBpbiBkZWZhdWx0IHRlbXBsYXRlIGFyZ3MuICBUaGlzIHNlZW1zIGxpa2Ug YSBmbGF3IGluIHRoZQorICAgICBzcGVjaWZpY2F0aW9uIGluIHRlcm1zIG9mIHBhcnRpYWwgc3Bl Y2lhbGl6YXRpb24sIHNpbmNlIGl0IHNheXMgdGhlCisgICAgIHBhcnRpYWwgc3BlY2lhbGl6YXRp b24gaGFzIHRoZSB0aGUgdGVtcGxhdGUgcGFyYW1ldGVyIGxpc3Qgb2YgQSwgYnV0IGEKKyAgICAg cGFydGlhbCBzcGVjaWFsaXphdGlvbiBjYW4ndCBoYXZlIGRlZmF1bHQgdGFyZ3MuICAqLworICB0 YXJncyA9IGNvZXJjZV90ZW1wbGF0ZV9wYXJtcyAodHBhcm1zLCB0YXJncywgdG1wbCwgdGZfbm9u ZSk7CisgIGlmICh0YXJncyA9PSBlcnJvcl9tYXJrX25vZGUpCisgICAgcmV0dXJuIGZhbHNlOwor CisgIC8qIEkgYmVsaWV2ZSB3ZSBkb24ndCBuZWVkIHRoZSB0ZW1wbGF0ZV90ZW1wbGF0ZV9wYXJt X2JpbmRpbmdzX29rX3AgY2FsbAorICAgICBiZWNhdXNlIGNvZXJjZV90ZW1wbGF0ZV9wYXJtcyBk aWQgY29lcmNlX3RlbXBsYXRlX3RlbXBsYXRlX3Bhcm1zLiAgKi8KKworICByZXR1cm4gY29uc3Ry YWludHNfc2F0aXNmaWVkX3AgKHRtcGwsIHRhcmdzKTsKK30KKwogLyogUmV0dXJuIGFydGlmaWNp YWwgZGVkdWN0aW9uIGd1aWRlcyBidWlsdCBmcm9tIHRoZSBjb25zdHJ1Y3RvcnMgb2YgY2xhc3MK ICAgIHRlbXBsYXRlIFRNUEwuICAqLwogCmRpZmYgLS1naXQgYS9nY2MvY3Avc2VtYW50aWNzLmNj IGIvZ2NjL2NwL3NlbWFudGljcy5jYwppbmRleCBkYjk4MmQ1OTRlNi4uZDY3YTliMjY3MTkgMTAw NjQ0Ci0tLSBhL2djYy9jcC9zZW1hbnRpY3MuY2MKKysrIGIvZ2NjL2NwL3NlbWFudGljcy5jYwpA QCAtMTIwNDksNiArMTIwNDksOSBAQCB0cmFpdF9leHByX3ZhbHVlIChjcF90cmFpdF9raW5kIGtp bmQsIHRyZWUgdHlwZTEsIHRyZWUgdHlwZTIpCiAgICAgY2FzZSBDUFRLX1JFRl9DT05WRVJUU19G Uk9NX1RFTVBPUkFSWToKICAgICAgIHJldHVybiByZWZfeGVzX2Zyb21fdGVtcG9yYXJ5ICh0eXBl MSwgdHlwZTIsIC8qZGlyZWN0X2luaXQ9Ki9mYWxzZSk7CiAKKyAgICBjYXNlIENQVEtfSVNfREVE VUNJQkxFOgorICAgICAgcmV0dXJuIHR5cGVfdGFyZ3NfZGVkdWNpYmxlX2Zyb20gKHR5cGUxLCB0 eXBlMik7CisKICNkZWZpbmUgREVGVFJBSVRfVFlQRShDT0RFLCBOQU1FLCBBUklUWSkgXAogICAg IGNhc2UgQ1BUS18jI0NPREU6CiAjaW5jbHVkZSAiY3AtdHJhaXQuZGVmIgpAQCAtMTIyMDYsNiAr MTIyMDksMTQgQEAgZmluaXNoX3RyYWl0X2V4cHIgKGxvY2F0aW9uX3QgbG9jLCBjcF90cmFpdF9r aW5kIGtpbmQsIHRyZWUgdHlwZTEsIHRyZWUgdHlwZTIpCiAJcmV0dXJuIGVycm9yX21hcmtfbm9k ZTsKICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBDUFRLX0lTX0RFRFVDSUJMRToKKyAgICAgIGlm ICghREVDTF9UWVBFX1RFTVBMQVRFX1AgKHR5cGUxKSkKKwl7CisJICBlcnJvciAoIiVxRCBpcyBu b3QgYSBjbGFzcyBvciBhbGlhcyB0ZW1wbGF0ZSIsIHR5cGUxKTsKKwkgIHJldHVybiBlcnJvcl9t YXJrX25vZGU7CisJfQorICAgICAgYnJlYWs7CisKICNkZWZpbmUgREVGVFJBSVRfVFlQRShDT0RF LCBOQU1FLCBBUklUWSkgXAogICAgIGNhc2UgQ1BUS18jI0NPREU6CiAjaW5jbHVkZSAiY3AtdHJh aXQuZGVmIgpkaWZmIC0tZ2l0IGEvZ2NjL2NwL3RyZWUuY2MgYi9nY2MvY3AvdHJlZS5jYwppbmRl eCBjZDBkZDk2MzUzMi4uZGU4M2Q0MWU2YjQgMTAwNjQ0Ci0tLSBhL2djYy9jcC90cmVlLmNjCisr KyBiL2djYy9jcC90cmVlLmNjCkBAIC00MjM1LDcgKzQyMzUsNyBAQCBjcF90cmVlX2VxdWFsICh0 cmVlIHQxLCB0cmVlIHQyKQogICAgIGNhc2UgVFJBSVRfRVhQUjoKICAgICAgIGlmIChUUkFJVF9F WFBSX0tJTkQgKHQxKSAhPSBUUkFJVF9FWFBSX0tJTkQgKHQyKSkKIAlyZXR1cm4gZmFsc2U7Ci0g ICAgICByZXR1cm4gc2FtZV90eXBlX3AgKFRSQUlUX0VYUFJfVFlQRTEgKHQxKSwgVFJBSVRfRVhQ Ul9UWVBFMSAodDIpKQorICAgICAgcmV0dXJuIGNwX3RyZWVfZXF1YWwgKFRSQUlUX0VYUFJfVFlQ RTEgKHQxKSwgVFJBSVRfRVhQUl9UWVBFMSAodDIpKQogCSYmIGNwX3RyZWVfZXF1YWwgKFRSQUlU X0VYUFJfVFlQRTIgKHQxKSwgVFJBSVRfRVhQUl9UWVBFMiAodDIpKTsKIAogICAgIGNhc2UgTk9O X0xWQUxVRV9FWFBSOgpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvZXh0L2lzX2Rl ZHVjaWJsZTEuQyBiL2djYy90ZXN0c3VpdGUvZysrLmRnL2V4dC9pc19kZWR1Y2libGUxLkMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjMwY2JlMDg5ZjUwCi0tLSAvZGV2 L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvZXh0L2lzX2RlZHVjaWJsZTEuQwpAQCAt MCwwICsxLDMxIEBACisvLyB7IGRnLWRvIGNvbXBpbGUgeyB0YXJnZXQgYysrMjAgfSB9CisKK3Rl bXBsYXRlIDxjbGFzcyBUPiBzdHJ1Y3QgQSB7IH07Cit0ZW1wbGF0ZSA8Y2xhc3MgVD4gc3RydWN0 IEIgeyB9OworCisvLyBTaW1wbGUgZm9ybXMuCitzdGF0aWNfYXNzZXJ0IChfX2lzX2RlZHVjaWJs ZSAoOjpBLCBBPGludD4pKTsKK3N0YXRpY19hc3NlcnQgKF9faXNfZGVkdWNpYmxlIChCLCBCPGlu dD4pKTsKK3N0YXRpY19hc3NlcnQgKCFfX2lzX2RlZHVjaWJsZSAoQSwgQjxpbnQ+KSk7CitzdGF0 aWNfYXNzZXJ0ICghX19pc19kZWR1Y2libGUgKDo6QiwgQTxpbnQ+KSk7CisKKy8vIFRoaXMgaXMg dGhlIGludGVyZXN0aW5nIHVzZSBjYXNlIGZvciBhbGlhcyBDVEFELgordGVtcGxhdGUgPGNsYXNz IFQ+IHVzaW5nIEFQID0gQTxUKj47CitzdGF0aWNfYXNzZXJ0IChfX2lzX2RlZHVjaWJsZSAoQVAs IEE8aW50Kj4pKTsKK3N0YXRpY19hc3NlcnQgKCFfX2lzX2RlZHVjaWJsZSAoQVAsIEE8aW50Pikp OworCisvLyBDYW4ndCBkZWR1Y2UgYSBwYXJhbWV0ZXIgbm90IHVzZWQgb24gdGhlIFJIUy4KK3Rl bXBsYXRlIDxjbGFzcyBUPiB1c2luZyBDID0gdm9pZDsKK3N0YXRpY19hc3NlcnQgKCFfX2lzX2Rl ZHVjaWJsZSAoQywgQzxpbnQ+KSk7CisKKy8vIEJ1dCBhIGRlZmF1bHQgdGVtcGxhdGUgYXJndW1l bnQgY291bnRzLgordGVtcGxhdGUgPGNsYXNzIFQgPSB2b2lkPiB1c2luZyBEID0gdm9pZDsKK3N0 YXRpY19hc3NlcnQgKF9faXNfZGVkdWNpYmxlIChELCBEPGludD4pKTsKKworLy8gUDAxMjcgYXJy YXkgYm91bmQgdHlwZSBkZWR1Y3Rpb24gc2hvdWxkIHdvcmsgaGVyZS4KK3RlbXBsYXRlIDxjbGFz cyBULCBUIE4+IHVzaW5nIEUgPSBpbnRbTl07CitzdGF0aWNfYXNzZXJ0IChfX2lzX2RlZHVjaWJs ZSAoRSwgaW50WzQyXSkpOworCisvLyBXZSBkb24ndCB0cnkgdG8gc3VwcG9ydCB0aGlzLgordGVt cGxhdGUgPGNsYXNzIFQ+IHZvaWQgZihUKTsKK2Jvb2wgYiA9IF9faXNfZGVkdWNpYmxlIChmLCB2 b2lkIChpbnQpKTsgLy8geyBkZy1lcnJvciAiY2xhc3Mgb3IgYWxpYXMiIH0KZGlmZiAtLWdpdCBh L2djYy9jcC9jcC10cmFpdC5kZWYgYi9nY2MvY3AvY3AtdHJhaXQuZGVmCmluZGV4IDgyMzg5OWEy NmM1Li5lNDNmYjQ2NGY0MiAxMDA2NDQKLS0tIGEvZ2NjL2NwL2NwLXRyYWl0LmRlZgorKysgYi9n Y2MvY3AvY3AtdHJhaXQuZGVmCkBAIC04NCw2ICs4NCw3IEBAIERFRlRSQUlUX0VYUFIgKElTX1RS SVZJQUxMWV9DT1BZQUJMRSwgIl9faXNfdHJpdmlhbGx5X2NvcHlhYmxlIiwgMSkKIERFRlRSQUlU X0VYUFIgKElTX1VOSU9OLCAiX19pc191bmlvbiIsIDEpCiBERUZUUkFJVF9FWFBSIChSRUZfQ09O U1RSVUNUU19GUk9NX1RFTVBPUkFSWSwgIl9fcmVmZXJlbmNlX2NvbnN0cnVjdHNfZnJvbV90ZW1w b3JhcnkiLCAyKQogREVGVFJBSVRfRVhQUiAoUkVGX0NPTlZFUlRTX0ZST01fVEVNUE9SQVJZLCAi X19yZWZlcmVuY2VfY29udmVydHNfZnJvbV90ZW1wb3JhcnkiLCAyKQorREVGVFJBSVRfRVhQUiAo SVNfREVEVUNJQkxFLCAiX19pc19kZWR1Y2libGUiLCAyKQogCiBERUZUUkFJVF9UWVBFIChSRU1P VkVfQ1YsICJfX3JlbW92ZV9jdiIsIDEpCiBERUZUUkFJVF9UWVBFIChSRU1PVkVfUkVGRVJFTkNF LCAiX19yZW1vdmVfcmVmZXJlbmNlIiwgMSkKLS0gCjIuMzEuMQoK --------------QvSX2pu0sbwEfPvKYai0BLSd Content-Type: text/x-patch; charset=UTF-8; name="0001-c-hide-__is_deducible-for-GCC-13.patch" Content-Disposition: attachment; filename="0001-c-hide-__is_deducible-for-GCC-13.patch" Content-Transfer-Encoding: base64 RnJvbSA0ZDQ1NjZjMzJlMGM0ZGM5ODhlODgzYmQzYTFjMzAzYjNiNDc1YmRhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYXNvbiBNZXJyaWxsIDxqYXNvbkByZWRoYXQuY29tPgpEYXRl OiBXZWQsIDggTWFyIDIwMjMgMjM6NTM6MjEgLTA1MDAKU3ViamVjdDogW1BBVENIXSBjKys6IGhp ZGUgX19pc19kZWR1Y2libGUgZm9yIEdDQyAxMwpUbzogZ2NjLXBhdGNoZXNAZ2NjLmdudS5vcmcK Ckkgd2FudCB0byBoYXZlIG1vcmUgZGlzY3Vzc2lvbiBhYm91dCB0aGUgaW50ZXJmYWNlIGJlZm9y ZSBjbGFpbWluZyB0aGUKX19pc19kZWR1Y2libGUgbmFtZSwgc28gZm9yIEdDQyAxMyBtYWtlIGl0 IGludGVybmFsLW9ubHkuCgpnY2MvQ2hhbmdlTG9nOgoKCSogZG9jL2V4dGVuZC50ZXhpOiBDb21t ZW50IG91dCBfX2lzX2RlZHVjaWJsZSBkb2NzLgoKZ2NjL2NwL0NoYW5nZUxvZzoKCgkqIGNwLXRy YWl0LmRlZiAoSVNfREVEVUNJQkxFKTogQWRkIHNwYWNlIHRvIG5hbWUuCgpnY2MvdGVzdHN1aXRl L0NoYW5nZUxvZzoKCgkqIGcrKy5kZy9leHQvaXNfZGVkdWNpYmxlMS5DOiBHdWFyZCB3aXRoCglf X2hhc19idWlsdGluIChfX2lzX2RlZHVjaWJsZSkuCi0tLQogZ2NjL2RvYy9leHRlbmQudGV4aSAg ICAgICAgICAgICAgICAgICAgICB8IDcgKysrKy0tLQogZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvZXh0 L2lzX2RlZHVjaWJsZTEuQyB8IDYgKysrKystCiBnY2MvY3AvY3AtdHJhaXQuZGVmICAgICAgICAg ICAgICAgICAgICAgIHwgMyArKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwg NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9nY2MvZG9jL2V4dGVuZC50ZXhpIGIvZ2NjL2Rv Yy9leHRlbmQudGV4aQppbmRleCBiNjRhODU3MjJkYi4uOWRjZmM4NjAxMDggMTAwNjQ0Ci0tLSBh L2djYy9kb2MvZXh0ZW5kLnRleGkKKysrIGIvZ2NjL2RvYy9leHRlbmQudGV4aQpAQCAtMjUyMTMs OSArMjUyMTMsMTAgQEAgdHlwZS4gIEEgZGlhZ25vc3RpYyBpcyBwcm9kdWNlZCBpZiB0aGlzIHJl cXVpcmVtZW50IGlzIG5vdCBtZXQuCiBJZiBAY29kZXt0eXBlfSBpcyBhIGN2LXF1YWxpZmllZCBj bGFzcyB0eXBlLCBhbmQgbm90IGEgdW5pb24gdHlwZQogKFtiYXNpYy5jb21wb3VuZF0pIHRoZSB0 cmFpdCBpcyBAY29kZXt0cnVlfSwgZWxzZSBpdCBpcyBAY29kZXtmYWxzZX0uCiAKLUBpdGVtIF9f aXNfZGVkdWNpYmxlICh0ZW1wbGF0ZSwgdHlwZSkKLUlmIHRlbXBsYXRlIGFyZ3VtZW50cyBmb3Ig QGNvZGV7dGVtcGxhdGV9IGNhbiBiZSBkZWR1Y2VkIGZyb20KLUBjb2Rle3R5cGV9IG9yIG9idGFp bmVkIGZyb20gZGVmYXVsdCB0ZW1wbGF0ZSBhcmd1bWVudHMuCitAYyBGSVhNRSBDb21tZW50ZWQg b3V0IGZvciBHQ0MgMTMsIGRpc2N1c3MgdXNlciBpbnRlcmZhY2UgZm9yIEdDQyAxNC4KK0BjIEBp dGVtIF9faXNfZGVkdWNpYmxlICh0ZW1wbGF0ZSwgdHlwZSkKK0BjIElmIHRlbXBsYXRlIGFyZ3Vt ZW50cyBmb3IgQGNvZGV7dGVtcGxhdGV9IGNhbiBiZSBkZWR1Y2VkIGZyb20KK0BjIEBjb2Rle3R5 cGV9IG9yIG9idGFpbmVkIGZyb20gZGVmYXVsdCB0ZW1wbGF0ZSBhcmd1bWVudHMuCiAKIEBpdGVt IF9faXNfZW1wdHkgKHR5cGUpCiBJZiBAY29kZXtfX2lzX2NsYXNzICh0eXBlKX0gaXMgQGNvZGV7 ZmFsc2V9IHRoZW4gdGhlIHRyYWl0IGlzIEBjb2Rle2ZhbHNlfS4KZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZysrLmRnL2V4dC9pc19kZWR1Y2libGUxLkMgYi9nY2MvdGVzdHN1aXRlL2crKy5k Zy9leHQvaXNfZGVkdWNpYmxlMS5DCmluZGV4IDMwY2JlMDg5ZjUwLi42ODczZTRmNGMyZSAxMDA2 NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvZXh0L2lzX2RlZHVjaWJsZTEuQworKysgYi9n Y2MvdGVzdHN1aXRlL2crKy5kZy9leHQvaXNfZGVkdWNpYmxlMS5DCkBAIC0xLDUgKzEsNyBAQAog Ly8geyBkZy1kbyBjb21waWxlIHsgdGFyZ2V0IGMrKzIwIH0gfQogCisjaWYgX19oYXNfYnVpbHRp biAoX19pc19kZWR1Y2libGUpCisKIHRlbXBsYXRlIDxjbGFzcyBUPiBzdHJ1Y3QgQSB7IH07CiB0 ZW1wbGF0ZSA8Y2xhc3MgVD4gc3RydWN0IEIgeyB9OwogCkBAIC0yNiw2ICsyOCw4IEBAIHN0YXRp Y19hc3NlcnQgKF9faXNfZGVkdWNpYmxlIChELCBEPGludD4pKTsKIHRlbXBsYXRlIDxjbGFzcyBU LCBUIE4+IHVzaW5nIEUgPSBpbnRbTl07CiBzdGF0aWNfYXNzZXJ0IChfX2lzX2RlZHVjaWJsZSAo RSwgaW50WzQyXSkpOwogCisjZW5kaWYgLy8gX19oYXNfYnVpbHRpbiAoX19pc19kZWR1Y2libGUp CisKIC8vIFdlIGRvbid0IHRyeSB0byBzdXBwb3J0IHRoaXMuCiB0ZW1wbGF0ZSA8Y2xhc3MgVD4g dm9pZCBmKFQpOwotYm9vbCBiID0gX19pc19kZWR1Y2libGUgKGYsIHZvaWQgKGludCkpOyAvLyB7 IGRnLWVycm9yICJjbGFzcyBvciBhbGlhcyIgfQorYm9vbCBiID0gX19pc19kZWR1Y2libGUgKGYs IHZvaWQgKGludCkpOyAvLyB7IGRnLWVycm9yICIiIH0KZGlmZiAtLWdpdCBhL2djYy9jcC9jcC10 cmFpdC5kZWYgYi9nY2MvY3AvY3AtdHJhaXQuZGVmCmluZGV4IGU0M2ZiNDY0ZjQyLi5iYWM1OTNj MDA5NCAxMDA2NDQKLS0tIGEvZ2NjL2NwL2NwLXRyYWl0LmRlZgorKysgYi9nY2MvY3AvY3AtdHJh aXQuZGVmCkBAIC04NCw3ICs4NCw4IEBAIERFRlRSQUlUX0VYUFIgKElTX1RSSVZJQUxMWV9DT1BZ QUJMRSwgIl9faXNfdHJpdmlhbGx5X2NvcHlhYmxlIiwgMSkKIERFRlRSQUlUX0VYUFIgKElTX1VO SU9OLCAiX19pc191bmlvbiIsIDEpCiBERUZUUkFJVF9FWFBSIChSRUZfQ09OU1RSVUNUU19GUk9N X1RFTVBPUkFSWSwgIl9fcmVmZXJlbmNlX2NvbnN0cnVjdHNfZnJvbV90ZW1wb3JhcnkiLCAyKQog REVGVFJBSVRfRVhQUiAoUkVGX0NPTlZFUlRTX0ZST01fVEVNUE9SQVJZLCAiX19yZWZlcmVuY2Vf Y29udmVydHNfZnJvbV90ZW1wb3JhcnkiLCAyKQotREVGVFJBSVRfRVhQUiAoSVNfREVEVUNJQkxF LCAiX19pc19kZWR1Y2libGUiLCAyKQorLyogRklYTUUgQWRkZWQgc3BhY2UgdG8gYXZvaWQgZGly ZWN0IHVzYWdlIGluIEdDQyAxMy4gICovCitERUZUUkFJVF9FWFBSIChJU19ERURVQ0lCTEUsICJf X2lzX2RlZHVjaWJsZSAiLCAyKQogCiBERUZUUkFJVF9UWVBFIChSRU1PVkVfQ1YsICJfX3JlbW92 ZV9jdiIsIDEpCiBERUZUUkFJVF9UWVBFIChSRU1PVkVfUkVGRVJFTkNFLCAiX19yZW1vdmVfcmVm ZXJlbmNlIiwgMSkKLS0gCjIuMzEuMQoK --------------QvSX2pu0sbwEfPvKYai0BLSd--