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 9372538582B2 for ; Thu, 22 Sep 2022 19:01:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 9372538582B2 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=1663873302; 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=kK0FQJbAK71p8IOyH+H0aw9znpAxAoTdiSdzVUY+Nak=; b=KahxvULLaTDKgiHm4BLLp/5sMT3KZsYbceKwyu4J/hoJPstrHWo2pb595jcRqkjCQ7RtLa uQVWreVpNH5/00X+Q4gV4AjHwIYsPSnoNX7FaW0hY8QxGPiAk2WNbGaP2f1PPNJtojXxzm BNGohkbCsP3JwO+zoulxFUCyDddMlJs= Received: from mail-io1-f71.google.com (mail-io1-f71.google.com [209.85.166.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-275-jaBIDfLDO-irhBEidCgNIQ-1; Thu, 22 Sep 2022 15:01:40 -0400 X-MC-Unique: jaBIDfLDO-irhBEidCgNIQ-1 Received: by mail-io1-f71.google.com with SMTP id e15-20020a5d8acf000000b006a3ed059e49so1632193iot.14 for ; Thu, 22 Sep 2022 12:01:40 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:references:cc:to:from:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date; bh=XwpzxSles3mwN9YpT4Vbd8BI7WiDolADYXFnosYLvgw=; b=bN2dfJOASqgVpuw/t/bsVQJPvqIiq8BlmRRRSIUZ+7v8UcRKwtzmyFUVIRrIpyD+Dp 0qbCV8HNBjt1OO9o22eg5n0moKY5Hn5itOiAiQTZgTrKuPdH8igI1J9yMAWjjlf0F+Qy QQz+tllK5wwa+ypQPNIBv1jcFV/bbs3WO4R+YlZvWbzhOgjYH78+hP8Hktpr8+Y5ZxPt 725H4N7OfmdCuqWOiDoCqSrRgAbRA9FUXc7XYbEQfWODBnHSle4bntNz8M1LVRyxNcsz uksQr+yi/FPWutHABIVfPXiKS5cIxMqEotUyjR5s256tM8gKB5CRxHtfv5g91nNr28kH ZaSA== X-Gm-Message-State: ACrzQf1WxZ9AY2dFuWsMO9nU42B0UtxBwTdYt3SAjqXAnAaEZhb5vzBC z6+6NV1oMXoqh9bLYkYWOE42+ZDcMJFz19kKe68pE8asVh1lDc6UQ0/E48dbX5rRofSctJGVEUt NR/9qPKD8KWUqFOGkXGcdeUTJYIk8y9oWbaQL6yJ6w4yR6rXACOwDSolRHMP57+yLos2UCQ== X-Received: by 2002:a05:6602:1594:b0:6a1:ce0d:e1b4 with SMTP id e20-20020a056602159400b006a1ce0de1b4mr2313219iow.104.1663873299552; Thu, 22 Sep 2022 12:01:39 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5UhRJG30IcfmOQz8tWsI2GfqWjQ9lxU0d2oagqr60pm3GFTW2aaUtOSn1H9vpigPEVFtM5aw== X-Received: by 2002:a05:6602:1594:b0:6a1:ce0d:e1b4 with SMTP id e20-20020a056602159400b006a1ce0de1b4mr2313203iow.104.1663873299219; Thu, 22 Sep 2022 12:01:39 -0700 (PDT) Received: from ?IPV6:2607:fea8:a263:f600::3dbe? ([2607:fea8:a263:f600::3dbe]) by smtp.gmail.com with ESMTPSA id l187-20020a6b3ec4000000b006a102cb4900sm2647261ioa.39.2022.09.22.12.01.38 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 22 Sep 2022 12:01:38 -0700 (PDT) Message-ID: <4ca8b041-459d-6fbc-794f-d1d93a266f95@redhat.com> Date: Thu, 22 Sep 2022 15:01:37 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.1 Subject: [PATCH 07/17] Add range-ops support for builtin functions. From: Andrew MacLeod To: gcc-patches Cc: "hernandez, aldy" References: <571782f9-72e6-5c30-da55-b8d62d3a153e@redhat.com> In-Reply-To: <571782f9-72e6-5c30-da55-b8d62d3a153e@redhat.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="------------ArlSgfFGMQrmvkDdyqYrNG0o" 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,RCVD_IN_DNSWL_LOW,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. --------------ArlSgfFGMQrmvkDdyqYrNG0o Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Check for builtins that can be a range-op entry and Convert CFN_BUILT_IN_CONSTANT_P as first POC. Bootstrapped on x86_64-pc-linux-gnu with no regressions.  Pushed. Andrew --------------ArlSgfFGMQrmvkDdyqYrNG0o Content-Type: text/x-patch; charset=UTF-8; name="0007-Add-range-ops-support-for-builtin-functions.patch" Content-Disposition: attachment; filename="0007-Add-range-ops-support-for-builtin-functions.patch" Content-Transfer-Encoding: base64 RnJvbSBiNDBiMzAzNTg3OWNmNjk1YjcyMDEwODU4Yjk3MDVhMzQ0MjkyYmRiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgTWFjTGVvZCA8YW1hY2xlb2RAcmVkaGF0LmNvbT4K RGF0ZTogVHVlLCAyMCBTZXAgMjAyMiAxNjo1MzozNyAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMDcv MTddIEFkZCByYW5nZS1vcHMgc3VwcG9ydCBmb3IgYnVpbHRpbiBmdW5jdGlvbnMuCgpDb252ZXJ0 IENGTl9CVUlMVF9JTl9DT05TVEFOVF9QIGFzIGZpcnN0IFBPQy4KCgkqIGdpbXBsZS1yYW5nZS1m b2xkLmNjCgkoZm9sZF91c2luZ19yYW5nZTo6cmFuZ2Vfb2ZfYnVpbHRpbl9pbnRfY2FsbCk6IFJl bW92ZSBjYXNlIGZvcgoJQ0ZOX0JVSUxUX0lOX0NPTlNUQU5UX1AuCgkqIGdpbXBsZS1yYW5nZS1v cC5jYyAoZ2ltcGxlX3JhbmdlX29wX2hhbmRsZXI6OnN1cHBvcnRlZF9wKToKCUNoZWNrIGlmIGEg Y2FsbCBhbHNvIGNyZWF0ZXMgYSByYW5nZS1vcCBvYmplY3QuCgkoZ2ltcGxlX3JhbmdlX29wX2hh bmRsZXIpOiBBbHNvIGNoZWNrIGJ1aWx0aW4gY2FsbHMuCgkoY2xhc3MgY2ZuX2NvbnN0YW50X2Zs b2F0X3ApOiBOZXcuICBGbG9hdCBDRk5fQlVJTFRfSU5fQ09OU1RBTlRfUC4KCShjbGFzcyBjZm5f Y29uc3RhbnRfcCk6IE5ldy4gIEludGVncmFsIENGTl9CVUlMVF9JTl9DT05TVEFOVF9QLgoJKGdp bXBsZV9yYW5nZV9vcF9oYW5kbGVyOjptYXliZV9idWlsdGluX2NhbGwpOiBTZXQgYXJndW1lbnRz IGFuZAoJaGFuZGxlciBmb3Igc3VwcG9ydGVkIGJ1aWx0LWluIGNhbGxzLgoJKiBnaW1wbGUtcmFu Z2Utb3AuaCAobWF5YmVfYnVpbHRpbl9jYWxsKTogTmV3IHByb3RvdHlwZS4KLS0tCiBnY2MvZ2lt cGxlLXJhbmdlLWZvbGQuY2MgfCAgMTcgLS0tLS0tLQogZ2NjL2dpbXBsZS1yYW5nZS1vcC5jYyAg IHwgMTA0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogZ2NjL2dpbXBs ZS1yYW5nZS1vcC5oICAgIHwgICAxICsKIDMgZmlsZXMgY2hhbmdlZCwgOTcgaW5zZXJ0aW9ucygr KSwgMjUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ2NjL2dpbXBsZS1yYW5nZS1mb2xkLmNj IGIvZ2NjL2dpbXBsZS1yYW5nZS1mb2xkLmNjCmluZGV4IDQyNDA4MjU0YzM1Li42M2ExZjUxN2Qy OCAxMDA2NDQKLS0tIGEvZ2NjL2dpbXBsZS1yYW5nZS1mb2xkLmNjCisrKyBiL2djYy9naW1wbGUt cmFuZ2UtZm9sZC5jYwpAQCAtOTQ0LDIzICs5NDQsNiBAQCBmb2xkX3VzaW5nX3JhbmdlOjpyYW5n ZV9vZl9idWlsdGluX2ludF9jYWxsIChpcmFuZ2UgJnIsIGdjYWxsICpjYWxsLAogCiAgIHN3aXRj aCAoZnVuYykKICAgICB7Ci0gICAgY2FzZSBDRk5fQlVJTFRfSU5fQ09OU1RBTlRfUDoKLSAgICAg IHsKLQlhcmcgPSBnaW1wbGVfY2FsbF9hcmcgKGNhbGwsIDApOwotCVZhbHVlX1JhbmdlIHRtcCAo VFJFRV9UWVBFIChhcmcpKTsKLQlpZiAoc3JjLmdldF9vcGVyYW5kICh0bXAsIGFyZykgJiYgdG1w LnNpbmdsZXRvbl9wICgpKQotCSAgewotCSAgICByLnNldCAoYnVpbGRfb25lX2NzdCAodHlwZSks IGJ1aWxkX29uZV9jc3QgKHR5cGUpKTsKLQkgICAgcmV0dXJuIHRydWU7Ci0JICB9Ci0JaWYgKGNm dW4tPmFmdGVyX2lubGluaW5nKQotCSAgewotCSAgICByLnNldF96ZXJvICh0eXBlKTsKLQkgICAg cmV0dXJuIHRydWU7Ci0JICB9Ci0JYnJlYWs7Ci0gICAgICB9Ci0KICAgICBjYXNlIENGTl9CVUlM VF9JTl9TSUdOQklUOgogICAgICAgewogCWFyZyA9IGdpbXBsZV9jYWxsX2FyZyAoY2FsbCwgMCk7 CmRpZmYgLS1naXQgYS9nY2MvZ2ltcGxlLXJhbmdlLW9wLmNjIGIvZ2NjL2dpbXBsZS1yYW5nZS1v cC5jYwppbmRleCBhYjViMzg5NDQ5ZC4uYmNjNGMzZDc3OGMgMTAwNjQ0Ci0tLSBhL2djYy9naW1w bGUtcmFuZ2Utb3AuY2MKKysrIGIvZ2NjL2dpbXBsZS1yYW5nZS1vcC5jYwpAQCAtMTIzLDcgKzEy MywxMSBAQCBnaW1wbGVfcmFuZ2Vfb3BfaGFuZGxlcjo6c3VwcG9ydGVkX3AgKGdpbXBsZSAqcykK IHsKICAgZW51bSB0cmVlX2NvZGUgY29kZTsKICAgdHJlZSB0eXBlID0gZ2V0X2NvZGVfYW5kX3R5 cGUgKHMsIGNvZGUpOwotICByZXR1cm4gKHR5cGUgJiYgcmFuZ2Vfb3BfaGFuZGxlciAoY29kZSwg dHlwZSkpOworICBpZiAodHlwZSAmJiByYW5nZV9vcF9oYW5kbGVyIChjb2RlLCB0eXBlKSkKKyAg ICByZXR1cm4gdHJ1ZTsKKyAgaWYgKGlzX2EgPGdjYWxsICo+IChzKSAmJiBnaW1wbGVfcmFuZ2Vf b3BfaGFuZGxlciAocykpCisgICAgcmV0dXJuIHRydWU7CisgIHJldHVybiBmYWxzZTsKIH0KIAog Ly8gQ29uc3RydWN0IGEgaGFuZGxlciBvYmplY3QgZm9yIHN0YXRlbWVudCBTLgpAQCAtMTMzLDYg KzEzNyw4IEBAIGdpbXBsZV9yYW5nZV9vcF9oYW5kbGVyOjpnaW1wbGVfcmFuZ2Vfb3BfaGFuZGxl ciAoZ2ltcGxlICpzKQogICBlbnVtIHRyZWVfY29kZSBjb2RlOwogICB0cmVlIHR5cGUgPSBnZXRf Y29kZV9hbmRfdHlwZSAocywgY29kZSk7CiAgIG1fc3RtdCA9IHM7CisgIG1fb3AxID0gTlVMTF9U UkVFOworICBtX29wMiA9IE5VTExfVFJFRTsKICAgaWYgKHR5cGUpCiAgICAgc2V0X29wX2hhbmRs ZXIgKGNvZGUsIHR5cGUpOwogCkBAIC0xNDIsNyArMTQ4LDcgQEAgZ2ltcGxlX3JhbmdlX29wX2hh bmRsZXI6OmdpbXBsZV9yYW5nZV9vcF9oYW5kbGVyIChnaW1wbGUgKnMpCiAJY2FzZSBHSU1QTEVf Q09ORDoKIAkgIG1fb3AxID0gZ2ltcGxlX2NvbmRfbGhzIChtX3N0bXQpOwogCSAgbV9vcDIgPSBn aW1wbGVfY29uZF9yaHMgKG1fc3RtdCk7Ci0JICBicmVhazsKKwkgIHJldHVybjsKIAljYXNlIEdJ TVBMRV9BU1NJR046CiAJICBtX29wMSA9IGdpbXBsZV9yYW5nZV9iYXNlX29mX2Fzc2lnbm1lbnQg KG1fc3RtdCk7CiAJICBpZiAobV9vcDEgJiYgVFJFRV9DT0RFIChtX29wMSkgPT0gTUVNX1JFRikK QEAgLTE1OCwxNCArMTY0LDE1IEBAIGdpbXBsZV9yYW5nZV9vcF9oYW5kbGVyOjpnaW1wbGVfcmFu Z2Vfb3BfaGFuZGxlciAoZ2ltcGxlICpzKQogCSAgICB9CiAJICBpZiAoZ2ltcGxlX251bV9vcHMg KG1fc3RtdCkgPj0gMykKIAkgICAgbV9vcDIgPSBnaW1wbGVfYXNzaWduX3JoczIgKG1fc3RtdCk7 Ci0JICBlbHNlCi0JICAgIG1fb3AyID0gTlVMTF9UUkVFOwotCSAgYnJlYWs7CisJICByZXR1cm47 CiAJZGVmYXVsdDoKLQkgIG1fb3AxID0gTlVMTF9UUkVFOwotCSAgbV9vcDIgPSBOVUxMX1RSRUU7 Ci0JICBicmVhazsKKwkgIGdjY191bnJlYWNoYWJsZSAoKTsKKwkgIHJldHVybjsKICAgICAgIH0K KyAgLy8gSWYgbm8gcmFuZ2Utb3AgdGFibGUgZW50cnkgaGFuZGxlZCB0aGlzIHN0bXQsIGNoZWNr IGZvciBvdGhlciBzdXBwb3J0ZWQKKyAgLy8gc3RhdGVtZW50cy4KKyAgaWYgKGlzX2EgPGdjYWxs ICo+IChtX3N0bXQpKQorICAgIG1heWJlX2J1aWx0aW5fY2FsbCAoKTsKIH0KIAogLy8gQ2FsY3Vs YXRlIHdoYXQgd2UgY2FuIGRldGVybWluZSBvZiB0aGUgcmFuZ2Ugb2YgdGhpcyB1bmFyeQpAQCAt MjQ3LDMgKzI1NCw4NCBAQCBnaW1wbGVfcmFuZ2Vfb3BfaGFuZGxlcjo6Y2FsY19vcDIgKHZyYW5n ZSAmciwgY29uc3QgdnJhbmdlICZsaHNfcmFuZ2UsCiAgICAgfQogICByZXR1cm4gb3AyX3Jhbmdl IChyLCB0eXBlLCBsaHNfcmFuZ2UsIG9wMV9yYW5nZSk7CiB9CisKKy8vIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK Ky8vIEltcGxlbWVudCByYW5nZSBvcGVyYXRvciBmb3IgZmxvYXQgQ0ZOX0JVSUxUX0lOX0NPTlNU QU5UX1AuCitjbGFzcyBjZm5fY29uc3RhbnRfZmxvYXRfcCA6IHB1YmxpYyByYW5nZV9vcGVyYXRv cl9mbG9hdAoreworcHVibGljOgorICB1c2luZyByYW5nZV9vcGVyYXRvcl9mbG9hdDo6Zm9sZF9y YW5nZTsKKyAgdmlydHVhbCBib29sIGZvbGRfcmFuZ2UgKGlyYW5nZSAmciwgdHJlZSB0eXBlLCBj b25zdCBmcmFuZ2UgJmxoLAorCQkJICAgY29uc3QgaXJhbmdlICYsIHJlbGF0aW9uX2tpbmQpIGNv bnN0CisgIHsKKyAgICBpZiAobGguc2luZ2xldG9uX3AgKCkpCisgICAgICB7CisJci5zZXQgKGJ1 aWxkX29uZV9jc3QgKHR5cGUpLCBidWlsZF9vbmVfY3N0ICh0eXBlKSk7CisJcmV0dXJuIHRydWU7 CisgICAgICB9CisgICAgaWYgKGNmdW4tPmFmdGVyX2lubGluaW5nKQorICAgICAgeworCXIuc2V0 X3plcm8gKHR5cGUpOworCXJldHVybiB0cnVlOworICAgICAgfQorICAgIHJldHVybiBmYWxzZTsK KyAgfQorfSBvcF9jZm5fY29uc3RhbnRfZmxvYXRfcDsKKworLy8gSW1wbGVtZW50IHJhbmdlIG9w ZXJhdG9yIGZvciBpbnRlZ3JhbCBDRk5fQlVJTFRfSU5fQ09OU1RBTlRfUC4KK2NsYXNzIGNmbl9j b25zdGFudF9wIDogcHVibGljIHJhbmdlX29wZXJhdG9yCit7CitwdWJsaWM6CisgIHVzaW5nIHJh bmdlX29wZXJhdG9yOjpmb2xkX3JhbmdlOworICB2aXJ0dWFsIGJvb2wgZm9sZF9yYW5nZSAoaXJh bmdlICZyLCB0cmVlIHR5cGUsIGNvbnN0IGlyYW5nZSAmbGgsCisJCQkgICBjb25zdCBpcmFuZ2Ug JiwgcmVsYXRpb25fa2luZCkgY29uc3QKKyAgeworICAgIGlmIChsaC5zaW5nbGV0b25fcCAoKSkK KyAgICAgIHsKKwlyLnNldCAoYnVpbGRfb25lX2NzdCAodHlwZSksIGJ1aWxkX29uZV9jc3QgKHR5 cGUpKTsKKwlyZXR1cm4gdHJ1ZTsKKyAgICAgIH0KKyAgICBpZiAoY2Z1bi0+YWZ0ZXJfaW5saW5p bmcpCisgICAgICB7CisJci5zZXRfemVybyAodHlwZSk7CisJcmV0dXJuIHRydWU7CisgICAgICB9 CisgICAgcmV0dXJuIGZhbHNlOworICB9Cit9IG9wX2Nmbl9jb25zdGFudF9wOworCisvLyBTZXQg dXAgYSBnaW1wbGVfcmFuZ2Vfb3BfaGFuZGxlciBmb3IgYW55IGJ1aWx0IGluIGZ1bmN0aW9uIHdo aWNoIGNhbiBiZQorLy8gc3VwcG9ydGVkIHZpYSByYW5nZS1vcHMuCisKK3ZvaWQKK2dpbXBsZV9y YW5nZV9vcF9oYW5kbGVyOjptYXliZV9idWlsdGluX2NhbGwgKCkKK3sKKyAgZ2NjX2NoZWNraW5n X2Fzc2VydCAoaXNfYSA8Z2NhbGwgKj4gKG1fc3RtdCkpOworCisgIGdjYWxsICpjYWxsID0gYXNf YSA8Z2NhbGwgKj4gKG1fc3RtdCk7CisgIGNvbWJpbmVkX2ZuIGZ1bmMgPSBnaW1wbGVfY2FsbF9j b21iaW5lZF9mbiAoY2FsbCk7CisgIGlmIChmdW5jID09IENGTl9MQVNUKQorICAgIHJldHVybjsK KyAgdHJlZSB0eXBlID0gZ2ltcGxlX3JhbmdlX3R5cGUgKGNhbGwpOworICBnY2NfY2hlY2tpbmdf YXNzZXJ0ICh0eXBlKTsKKyAgaWYgKCFWYWx1ZV9SYW5nZTo6c3VwcG9ydHNfdHlwZV9wICh0eXBl KSkKKyAgICByZXR1cm47CisKKyAgc3dpdGNoIChmdW5jKQorICAgIHsKKyAgICBjYXNlIENGTl9C VUlMVF9JTl9DT05TVEFOVF9QOgorICAgICAgbV9vcDEgPSBnaW1wbGVfY2FsbF9hcmcgKGNhbGws IDApOworICAgICAgbV92YWxpZCA9IHRydWU7CisgICAgICBpZiAoaXJhbmdlOjpzdXBwb3J0c19w IChUUkVFX1RZUEUgKG1fb3AxKSkpCisJbV9pbnQgPSAmb3BfY2ZuX2NvbnN0YW50X3A7CisgICAg ICBlbHNlIGlmIChmcmFuZ2U6OnN1cHBvcnRzX3AgKFRSRUVfVFlQRSAobV9vcDEpKSkKKwltX2Zs b2F0ID0gJm9wX2Nmbl9jb25zdGFudF9mbG9hdF9wOworICAgICAgZWxzZQorCW1fdmFsaWQgPSBm YWxzZTsKKyAgICAgIGJyZWFrOworCisgICAgZGVmYXVsdDoKKyAgICAgIGJyZWFrOworICAgIH0K K30KZGlmZiAtLWdpdCBhL2djYy9naW1wbGUtcmFuZ2Utb3AuaCBiL2djYy9naW1wbGUtcmFuZ2Ut b3AuaAppbmRleCA4YmMwYThmYmUxMS4uNjg3NjQxOThiYzAgMTAwNjQ0Ci0tLSBhL2djYy9naW1w bGUtcmFuZ2Utb3AuaAorKysgYi9nY2MvZ2ltcGxlLXJhbmdlLW9wLmgKQEAgLTM4LDYgKzM4LDcg QEAgcHVibGljOgogICBib29sIGNhbGNfb3AxICh2cmFuZ2UgJnIsIGNvbnN0IHZyYW5nZSAmbGhz X3JhbmdlLCBjb25zdCB2cmFuZ2UgJm9wMl9yYW5nZSk7CiAgIGJvb2wgY2FsY19vcDIgKHZyYW5n ZSAmciwgY29uc3QgdnJhbmdlICZsaHNfcmFuZ2UsIGNvbnN0IHZyYW5nZSAmb3AxX3JhbmdlKTsK IHByaXZhdGU6CisgIHZvaWQgbWF5YmVfYnVpbHRpbl9jYWxsICgpOwogICBnaW1wbGUgKm1fc3Rt dDsKICAgdHJlZSBtX29wMSwgbV9vcDI7CiB9OwotLSAKMi4zNy4zCgo= --------------ArlSgfFGMQrmvkDdyqYrNG0o--