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 02650385B530 for ; Tue, 26 Sep 2023 18:06:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 02650385B530 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=1695751568; 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; bh=Bu7pBZVv5tU4925QfVhLCbsUAbcHedT7J/Y5I+6w8wo=; b=SVMDwR7yICYpOEMjwm/7g+CFFOM+42yTqJqsK3Do/aa8I+v6wJbDFMWyhSQiE2Zjn8MB6M i+eivC267EGHzfVdzdbborcGAYQjn1wgzUqmEqo7zqP8dOE0BW81qLGGi3t7o8EOAeQfz0 Y9YmuCooedmZOCx/pkfYVqDy1SUEbac= Received: from mail-oa1-f71.google.com (mail-oa1-f71.google.com [209.85.160.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-692-gs9Q-Ub8OSmX9ryZzfM7Yg-1; Tue, 26 Sep 2023 14:06:07 -0400 X-MC-Unique: gs9Q-Ub8OSmX9ryZzfM7Yg-1 Received: by mail-oa1-f71.google.com with SMTP id 586e51a60fabf-1dd31b52af3so10104345fac.3 for ; Tue, 26 Sep 2023 11:06:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695751566; x=1696356366; h=subject:from:cc:to:content-language:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=xZjAy4VJuoFPZQXJIUqoTYdxOuqHp/IFpL7dMtCJwSI=; b=Eo0aqnj3hbFny84gbtn5c95nFOxx8nHlZftSMe2HtaEJLxuClTeUDPdXi1Y8XG0VS0 VpycEN8S9FMK2HVhFUS3h0ZZuoLx19+ugQpz2yN2KsOZcTRFEry4GpUjTlJB/hrjfx/p lkglccpf+0AlduCN2o8zxdBRUXH4UYLLc5FS0LZ6pMLtOxmXcMm6qacyubFWT2gjduRg 5OCjgNtIaqQusZ1Lt6NmftY5moZF5KhMjJjUqxB/s49FmPHGew2yYT8oPtFE9Bwp3bc1 DQ9fwR+gyqwnulKlTvJZ1SgbaKwH9NjCFh/HyvCaebIB/JSm3VD0OUUnQFuHzHREyx6c SiEg== X-Gm-Message-State: AOJu0YxetvZ6mzb6tscGyZYz2aH5JoV4/p+/kG3yt45VY6/N0prs8lhP oU8bRgs8GxTZfGzRslL5HBBuxiU2fKe+xvcuTA251fmQFEdiOVlBcBgjoFcAM5sYQARau+LkpzY 6kWuq8NzPF1RZmAYdlMM+3QtVDwDihxWDQVj+ASczdANFsGdwXGNqPlPHZG8vdLcVdYbXA+Tgtp 4xOw== X-Received: by 2002:a05:6870:7811:b0:1dd:67b7:2ce6 with SMTP id hb17-20020a056870781100b001dd67b72ce6mr2869937oab.58.1695751565800; Tue, 26 Sep 2023 11:06:05 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFGP5GW57mW4X9iTS1AH/AtkUrxF/zdlzFgCRx491mD8Y6QwTKT4F6PgHEGoEu0Wp7T/6EXPg== X-Received: by 2002:a05:6870:7811:b0:1dd:67b7:2ce6 with SMTP id hb17-20020a056870781100b001dd67b72ce6mr2869909oab.58.1695751565413; Tue, 26 Sep 2023 11:06:05 -0700 (PDT) Received: from [192.168.0.174] ([104.219.124.252]) by smtp.gmail.com with ESMTPSA id ph7-20020a0562144a4700b00655ebd053dcsm4126012qvb.82.2023.09.26.11.06.04 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 26 Sep 2023 11:06:04 -0700 (PDT) Message-ID: <1a8e843d-3289-3319-1dd1-53e790ba60d9@redhat.com> Date: Tue, 26 Sep 2023 14:06:07 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 To: gcc-patches Cc: "hernandez, aldy" From: Andrew MacLeod Subject: [COMMITTED][GCC13] PR tree-optimization/110315 - Reduce the initial size of int_range_max. X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="------------YurWwGGtMV6bumZ6DqrR0uWm" Content-Language: en-US X-Spam-Status: No, score=-11.3 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_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,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. --------------YurWwGGtMV6bumZ6DqrR0uWm Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit This patch adds the ability to resize ranges as needed, defaulting to no resizing.  int_range_max now defaults to 3 sub-ranges (instead of 255) and grows to 255 when the range being calculated does not fit. Bootstraps on x86_64-pc-linux-gnu with no regressions.   Pushed. Andrew --------------YurWwGGtMV6bumZ6DqrR0uWm Content-Type: text/x-patch; charset=UTF-8; name="13.patch" Content-Disposition: attachment; filename="13.patch" Content-Transfer-Encoding: base64 RnJvbSA3MDYzOTAxNGE2OWNmNTBmZTExZGMxYWRiZmUxZGI0Yzc3NjBjZTY5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgTWFjTGVvZCA8YW1hY2xlb2RAcmVkaGF0LmNvbT4K RGF0ZTogVHVlLCAyNiBTZXAgMjAyMyAwOTo0NDozOSAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIFJl ZHVjZSB0aGUgaW5pdGlhbCBzaXplIG9mIGludF9yYW5nZV9tYXguCgpUaGlzIHBhdGNoIGFkZHMg dGhlIGFiaWxpdHkgdG8gcmVzaXplIHJhbmdlcyBhcyBuZWVkZWQsIGRlZmF1bHRpbmcgdG8gbm8K cmVzaXppbmcuICBpbnRfcmFuZ2VfbWF4IG5vdyBkZWZhdWx0cyB0byAzIHN1Yi1yYW5nZXMgKGlu c3RlYWQgb2YgMjU1KQphbmQgZ3Jvd3MgdG8gMjU1IHdoZW4gdGhlIHJhbmdlIGJlaW5nIGNhbGN1 bGF0ZWQgZG9lcyBub3QgZml0LgoKCVBSIHRyZWUtb3B0aW1pemF0aW9uLzExMDMxNQoJKiB2YWx1 ZS1yYW5nZS1zdG9yYWdlLmggKHZyYW5nZV9hbGxvY2F0b3I6OmFsbG9jX2lyYW5nZSk6IEFkanVz dAoJbmV3IHBhcmFtcy4KCSogdmFsdWUtcmFuZ2UuY2MgKGlyYW5nZTo6b3BlcmF0b3I9KTogUmVz aXplIHJhbmdlLgoJKGlyYW5nZTo6aXJhbmdlX3VuaW9uKTogU2FtZS4KCShpcmFuZ2U6OmlyYW5n ZV9pbnRlcnNlY3QpOiBTYW1lLgoJKGlyYW5nZTo6aW52ZXJ0KTogU2FtZS4KCSogdmFsdWUtcmFu Z2UuaCAoaXJhbmdlOjptYXliZV9yZXNpemUpOiBOZXcuCgkofmludF9yYW5nZSk6IE5ldy4KCShp bnRfcmFuZ2VfbWF4KTogRGVmYXVsdCB0byAzIHN1Yi1yYW5nZXMgYW5kIHJlc2l6ZSBhcyBuZWVk ZWQuCgkoaW50X3JhbmdlOjppbnRfcmFuZ2UpOiBBZGp1c3QgZm9yIHJlc2l6aW5nLgoJKGludF9y YW5nZTo6b3BlcmF0b3I9KTogU2FtZS4KLS0tCiBnY2MvdmFsdWUtcmFuZ2Utc3RvcmFnZS5oIHwg IDIgKy0KIGdjYy92YWx1ZS1yYW5nZS5jYyAgICAgICAgfCAxNSArKysrKysKIGdjYy92YWx1ZS1y YW5nZS5oICAgICAgICAgfCA5NiArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0KIDMgZmlsZXMgY2hhbmdlZCwgODMgaW5zZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZ2NjL3ZhbHVlLXJhbmdlLXN0b3JhZ2UuaCBiL2djYy92YWx1ZS1yYW5nZS1z dG9yYWdlLmgKaW5kZXggNmRhMzc3ZWJkMmUuLjFlZDZmMWNjZDYxIDEwMDY0NAotLS0gYS9nY2Mv dmFsdWUtcmFuZ2Utc3RvcmFnZS5oCisrKyBiL2djYy92YWx1ZS1yYW5nZS1zdG9yYWdlLmgKQEAg LTE4NCw3ICsxODQsNyBAQCB2cmFuZ2VfYWxsb2NhdG9yOjphbGxvY19pcmFuZ2UgKHVuc2lnbmVk IG51bV9wYWlycykKICAgLy8gQWxsb2NhdGUgdGhlIGlyYW5nZSBhbmQgcmVxdWlyZWQgbWVtb3J5 IGZvciB0aGUgdmVjdG9yLgogICB2b2lkICpyID0gYWxsb2MgKHNpemVvZiAoaXJhbmdlKSk7CiAg IHRyZWUgKm1lbSA9IHN0YXRpY19jYXN0IDx0cmVlICo+IChhbGxvYyAobmJ5dGVzKSk7Ci0gIHJl dHVybiBuZXcgKHIpIGlyYW5nZSAobWVtLCBudW1fcGFpcnMpOworICByZXR1cm4gbmV3IChyKSBp cmFuZ2UgKG1lbSwgbnVtX3BhaXJzLCAvKnJlc2l6YWJsZT0qL2ZhbHNlKTsKIH0KIAogaW5saW5l IGZyYW5nZSAqCmRpZmYgLS1naXQgYS9nY2MvdmFsdWUtcmFuZ2UuY2MgYi9nY2MvdmFsdWUtcmFu Z2UuY2MKaW5kZXggZWM4MjZjMmZlMWIuLjc1M2Y1ZThjYzc2IDEwMDY0NAotLS0gYS9nY2MvdmFs dWUtcmFuZ2UuY2MKKysrIGIvZ2NjL3ZhbHVlLXJhbmdlLmNjCkBAIC04MzEsNiArODMxLDEwIEBA IGlyYW5nZTo6b3BlcmF0b3I9IChjb25zdCBpcmFuZ2UgJnNyYykKICAgICAgIGNvcHlfdG9fbGVn YWN5IChzcmMpOwogICAgICAgcmV0dXJuICp0aGlzOwogICAgIH0KKworICBpbnQgbmVlZGVkID0g c3JjLm51bV9wYWlycyAoKTsKKyAgbWF5YmVfcmVzaXplIChuZWVkZWQpOworCiAgIGlmIChzcmMu bGVnYWN5X21vZGVfcCAoKSkKICAgICB7CiAgICAgICBjb3B5X2xlZ2FjeV90b19tdWx0aV9yYW5n ZSAoc3JjKTsKQEAgLTI1MDYsNiArMjUxMCw3IEBAIGlyYW5nZTo6aXJhbmdlX3VuaW9uIChjb25z dCBpcmFuZ2UgJnIpCiAgIC8vIE5vdyBpdCBzaW1wbHkgbmVlZHMgdG8gYmUgY29waWVkLCBhbmQg aWYgdGhlcmUgYXJlIHRvbyBtYW55CiAgIC8vIHJhbmdlcywgbWVyZ2Ugc29tZS4gIFdlIHdvbnQg ZG8gYW55IGFuYWx5c2lzIGFzIHRvIHdoYXQgdGhlCiAgIC8vICJiZXN0IiBtZXJnZXMgYXJlLCBz aW1wbHkgY29tYmluZSB0aGUgZmluYWwgcmFuZ2VzIGludG8gb25lLgorICBtYXliZV9yZXNpemUg KGkgLyAyKTsKICAgaWYgKGkgPiBtX21heF9yYW5nZXMgKiAyKQogICAgIHsKICAgICAgIHJlc1tt X21heF9yYW5nZXMgKiAyIC0gMV0gPSByZXNbaSAtIDFdOwpAQCAtMjYwNSw2ICsyNjEwLDExIEBA IGlyYW5nZTo6aXJhbmdlX2ludGVyc2VjdCAoY29uc3QgaXJhbmdlICZyKQogICBpZiAoci5pcmFu Z2VfY29udGFpbnNfcCAoKnRoaXMpKQogICAgIHJldHVybiBpbnRlcnNlY3Rfbm9uemVyb19iaXRz IChyKTsKIAorICAvLyA/PyBXZSBjb3VsZCBwcm9iYWJseSBjb21lIHVwIHdpdGggc29tZXRoaW5n IHNtYXJ0ZXIgdGhhbiB0aGUKKyAgLy8gd29yc3QgY2FzZSBzY2VuYXJpbyBoZXJlLgorICBpbnQg bmVlZGVkID0gbnVtX3BhaXJzICgpICsgci5udW1fcGFpcnMgKCk7CisgIG1heWJlX3Jlc2l6ZSAo bmVlZGVkKTsKKwogICBzaWdub3Agc2lnbiA9IFRZUEVfU0lHTiAoVFJFRV9UWVBFKG1fYmFzZVsw XSkpOwogICB1bnNpZ25lZCBibGRfcGFpciA9IDA7CiAgIHVuc2lnbmVkIGJsZF9saW0gPSBtX21h eF9yYW5nZXM7CkBAIC0yODMxLDYgKzI4NDEsMTEgQEAgaXJhbmdlOjppbnZlcnQgKCkKICAgICAg IG1fbnVtX3JhbmdlcyA9IDE7CiAgICAgICByZXR1cm47CiAgICAgfQorCisgIC8vIEF0IHRoaXMg cG9pbnQsIHdlIG5lZWQgb25lIGV4dHJhIHN1Yi1yYW5nZSB0byByZXByZXNlbnQgdGhlCisgIC8v IGludmVyc2UuCisgIG1heWJlX3Jlc2l6ZSAobV9udW1fcmFuZ2VzICsgMSk7CisKICAgLy8gVGhl IGFsZ29yaXRobSBpcyBhcyBmb2xsb3dzLiAgVG8gY2FsY3VsYXRlIElOVkVSVCAoW2EsYl1bYyxk XSksIHdlCiAgIC8vIGdlbmVyYXRlIFstTUlOLCBhLTFdW2IrMSwgYy0xXVtkKzEsIE1BWF0uCiAg IC8vCmRpZmYgLS1naXQgYS9nY2MvdmFsdWUtcmFuZ2UuaCBiL2djYy92YWx1ZS1yYW5nZS5oCmlu ZGV4IDk2OWIyYjY4NDE4Li45NmU1OWVjZmE3MiAxMDA2NDQKLS0tIGEvZ2NjL3ZhbHVlLXJhbmdl LmgKKysrIGIvZ2NjL3ZhbHVlLXJhbmdlLmgKQEAgLTE3Miw3ICsxNzIsOCBAQCBwdWJsaWM6CiAg IGJvb2wgbGVnYWN5X3ZlcmJvc2VfaW50ZXJzZWN0IChjb25zdCBpcmFuZ2UgKik7CS8vIERFUFJF Q0FURUQKIAogcHJvdGVjdGVkOgotICBpcmFuZ2UgKHRyZWUgKiwgdW5zaWduZWQpOworICB2b2lk IG1heWJlX3Jlc2l6ZSAoaW50IG5lZWRlZCk7CisgIGlyYW5nZSAodHJlZSAqLCB1bnNpZ25lZCBu cmFuZ2VzLCBib29sIHJlc2l6YWJsZSk7CiAgIC8vIHBvdGVudGlhbCBwcm9tb3Rpb24gdG8gcHVi bGljPwogICB0cmVlIHRyZWVfbG93ZXJfYm91bmQgKHVuc2lnbmVkID0gMCkgY29uc3Q7CiAgIHRy ZWUgdHJlZV91cHBlcl9ib3VuZCAodW5zaWduZWQpIGNvbnN0OwpAQCAtMjAwLDYgKzIwMSw4IEBA IHByb3RlY3RlZDoKICAgdm9pZCBjb3B5X3RvX2xlZ2FjeSAoY29uc3QgaXJhbmdlICYpOwogICB2 b2lkIGNvcHlfbGVnYWN5X3RvX211bHRpX3JhbmdlIChjb25zdCBpcmFuZ2UgJik7CiAKKyAgLy8g SGFyZCBsaW1pdCBvbiBtYXggcmFuZ2VzIGFsbG93ZWQuCisgIHN0YXRpYyBjb25zdCBpbnQgSEFS RF9NQVhfUkFOR0VTID0gMjU1OwogcHJpdmF0ZToKICAgZnJpZW5kIHZvaWQgZ3RfZ2djX214IChp cmFuZ2UgKik7CiAgIGZyaWVuZCB2b2lkIGd0X3BjaF9ueCAoaXJhbmdlICopOwpAQCAtMjE0LDE1 ICsyMTcsMjEgQEAgcHJpdmF0ZToKIAogICBib29sIGludGVyc2VjdCAoY29uc3Qgd2lkZV9pbnQm IGxiLCBjb25zdCB3aWRlX2ludCYgdWIpOwogICB1bnNpZ25lZCBjaGFyIG1fbnVtX3JhbmdlczsK KyAgYm9vbCBtX3Jlc2l6YWJsZTsKICAgdW5zaWduZWQgY2hhciBtX21heF9yYW5nZXM7CiAgIHRy ZWUgbV9ub256ZXJvX21hc2s7Citwcm90ZWN0ZWQ6CiAgIHRyZWUgKm1fYmFzZTsKIH07CiAKIC8v IEhlcmUgd2UgZGVzY3JpYmUgYW4gaXJhbmdlIHdpdGggTiBwYWlycyBvZiByYW5nZXMuICBUaGUg c3RvcmFnZSBmb3IKIC8vIHRoZSBwYWlycyBpcyBlbWJlZGRlZCBpbiB0aGUgY2xhc3MgYXMgYW4g YXJyYXkuCisvLworLy8gSWYgUkVTSVpBQkxFIGlzIHRydWUsIHRoZSBzdG9yYWdlIHdpbGwgYmUg cmVzaXplZCBvbiB0aGUgaGVhcCB3aGVuCisvLyB0aGUgbnVtYmVyIG9mIHJhbmdlcyBuZWVkZWQg Z29lcyBwYXN0IE4gdXAgdG8gYSBtYXggb2YKKy8vIEhBUkRfTUFYX1JBTkdFUy4gIFRoaXMgbmV3 IHN0b3JhZ2UgaXMgZnJlZWQgdXBvbiBkZXN0cnVjdGlvbi4KIAotdGVtcGxhdGU8dW5zaWduZWQg Tj4KK3RlbXBsYXRlPHVuc2lnbmVkIE4sIGJvb2wgUkVTSVpBQkxFID0gZmFsc2U+CiBjbGFzcyBH VFkoKHVzZXIpKSBpbnRfcmFuZ2UgOiBwdWJsaWMgaXJhbmdlCiB7CiBwdWJsaWM6CkBAIC0yMzMs NyArMjQyLDcgQEAgcHVibGljOgogICBpbnRfcmFuZ2UgKHRyZWUgdHlwZSk7CiAgIGludF9yYW5n ZSAoY29uc3QgaW50X3JhbmdlICYpOwogICBpbnRfcmFuZ2UgKGNvbnN0IGlyYW5nZSAmKTsKLSAg dmlydHVhbCB+aW50X3JhbmdlICgpID0gZGVmYXVsdDsKKyAgdmlydHVhbCB+aW50X3JhbmdlICgp OwogICBpbnRfcmFuZ2UmIG9wZXJhdG9yPSAoY29uc3QgaW50X3JhbmdlICYpOwogcHJpdmF0ZToK ICAgdGVtcGxhdGUgPHVuc2lnbmVkIFg+IGZyaWVuZCB2b2lkIGd0X2dnY19teCAoaW50X3Jhbmdl PFg+ICopOwpAQCAtNDcyLDYgKzQ4MSwzOCBAQCBpc19hIDxmcmFuZ2U+ICh2cmFuZ2UgJnYpCiAg IHJldHVybiB2Lm1fZGlzY3JpbWluYXRvciA9PSBWUl9GUkFOR0U7CiB9CiAKKy8vIEZvciByZXNp emFibGUgcmFuZ2VzLCByZXNpemUgdGhlIHJhbmdlIHVwIHRvIEhBUkRfTUFYX1JBTkdFUyBpZiB0 aGUKKy8vIE5FRURFRCBwYWlycyBpcyBncmVhdGVyIHRoYW4gdGhlIGN1cnJlbnQgY2FwYWNpdHkg b2YgdGhlIHJhbmdlLgorCitpbmxpbmUgdm9pZAoraXJhbmdlOjptYXliZV9yZXNpemUgKGludCBu ZWVkZWQpCit7CisgIGlmICghbV9yZXNpemFibGUgfHwgbV9tYXhfcmFuZ2VzID09IEhBUkRfTUFY X1JBTkdFUykKKyAgICByZXR1cm47CisKKyAgaWYgKG5lZWRlZCA+IG1fbWF4X3JhbmdlcykKKyAg ICB7CisgICAgICBtX21heF9yYW5nZXMgPSBIQVJEX01BWF9SQU5HRVM7CisgICAgICB0cmVlICpu ZXdtZW0gPSBuZXcgdHJlZVttX21heF9yYW5nZXMgKiAyXTsKKyAgICAgIG1lbWNweSAobmV3bWVt LCBtX2Jhc2UsIHNpemVvZiAodHJlZSkgKiBudW1fcGFpcnMgKCkgKiAyKTsKKyAgICAgIG1fYmFz ZSA9IG5ld21lbTsKKyAgICB9Cit9CisKK3RlbXBsYXRlPHVuc2lnbmVkIE4sIGJvb2wgUkVTSVpB QkxFPgoraW5saW5lCitpbnRfcmFuZ2U8TiwgUkVTSVpBQkxFPjo6fmludF9yYW5nZSAoKQorewor ICBpZiAoUkVTSVpBQkxFICYmIG1fYmFzZSAhPSBtX3JhbmdlcykKKyAgICBkZWxldGUgbV9iYXNl OworfQorCisvLyBUaGlzIGlzIGFuICJpbmZpbml0ZSIgcHJlY2lzaW9uIGlyYW5nZSBmb3IgdXNl IGluIHRlbXBvcmFyeQorLy8gY2FsY3VsYXRpb25zLiAgSXQgc3RhcnRzIHdpdGggYSBzZW5zaWJs ZSBkZWZhdWx0IGNvdmVyaW5nIDk5JSBvZgorLy8gdXNlcywgYW5kIGdvZXMgdXAgdG8gSEFSRF9N QVhfUkFOR0VTIHdoZW4gbmVlZGVkLiAgQW55IGFsbG9jYXRlZAorLy8gc3RvcmFnZSBpcyBmcmVl ZCB1cG9uIGRlc3RydWN0aW9uLgordHlwZWRlZiBpbnRfcmFuZ2U8MywgLypSRVNJWkFCTEU9Ki90 cnVlPiBpbnRfcmFuZ2VfbWF4OworCiBjbGFzcyB2cmFuZ2VfdmlzaXRvcgogewogcHVibGljOgpA QCAtNDkwLDEwICs1MzEsNiBAQCBwdWJsaWM6CiAvLyBUaGVyZSBhcmUgY29weSBvcGVyYXRvcnMg dG8gc2VhbWxlc3NseSBjb3B5IHRvL2ZybyBtdWx0aS1yYW5nZXMuCiB0eXBlZGVmIGludF9yYW5n ZTwxPiB2YWx1ZV9yYW5nZTsKIAotLy8gVGhpcyBpcyBhbiAiaW5maW5pdGUiIHByZWNpc2lvbiBp cmFuZ2UgZm9yIHVzZSBpbiB0ZW1wb3JhcnkKLS8vIGNhbGN1bGF0aW9ucy4KLXR5cGVkZWYgaW50 X3JhbmdlPDI1NT4gaW50X3JhbmdlX21heDsKLQogLy8gVGhpcyBpcyBhbiAiaW5maW5pdGUiIHBy ZWNpc2lvbiByYW5nZSBvYmplY3QgZm9yIHVzZSBpbiB0ZW1wb3JhcnkKIC8vIGNhbGN1bGF0aW9u cyBmb3IgYW55IG9mIHRoZSBoYW5kbGVkIHR5cGVzLiAgVGhlIG9iamVjdCBjYW4gYmUKIC8vIHRy YW5zcGFyZW50bHkgdXNlZCBhcyBhIHZyYW5nZS4KQEAgLTg3Miw2NCArOTA5LDY1IEBAIGd0X3Bj aF9ueCAoaW50X3JhbmdlPE4+ICp4LCBndF9wb2ludGVyX29wZXJhdG9yIG9wLCB2b2lkICpjb29r aWUpCiAvLyBDb25zdHJ1Y3RvcnMgZm9yIGlyYW5nZQogCiBpbmxpbmUKLWlyYW5nZTo6aXJhbmdl ICh0cmVlICpiYXNlLCB1bnNpZ25lZCBucmFuZ2VzKQoraXJhbmdlOjppcmFuZ2UgKHRyZWUgKmJh c2UsIHVuc2lnbmVkIG5yYW5nZXMsIGJvb2wgcmVzaXphYmxlKQogewogICBtX2Rpc2NyaW1pbmF0 b3IgPSBWUl9JUkFOR0U7CiAgIG1fYmFzZSA9IGJhc2U7CiAgIG1fbWF4X3JhbmdlcyA9IG5yYW5n ZXM7CisgIG1fcmVzaXphYmxlID0gcmVzaXphYmxlOwogICBzZXRfdW5kZWZpbmVkICgpOwogfQog CiAvLyBDb25zdHJ1Y3RvcnMgZm9yIGludF9yYW5nZTw+LgogCi10ZW1wbGF0ZTx1bnNpZ25lZCBO PgordGVtcGxhdGU8dW5zaWduZWQgTiwgYm9vbCBSRVNJWkFCTEU+CiBpbmxpbmUKLWludF9yYW5n ZTxOPjo6aW50X3JhbmdlICgpCi0gIDogaXJhbmdlIChtX3JhbmdlcywgTikKK2ludF9yYW5nZTxO LCBSRVNJWkFCTEU+OjppbnRfcmFuZ2UgKCkKKyAgOiBpcmFuZ2UgKG1fcmFuZ2VzLCBOLCBSRVNJ WkFCTEUpCiB7CiB9CiAKLXRlbXBsYXRlPHVuc2lnbmVkIE4+Ci1pbnRfcmFuZ2U8Tj46OmludF9y YW5nZSAoY29uc3QgaW50X3JhbmdlICZvdGhlcikKLSAgOiBpcmFuZ2UgKG1fcmFuZ2VzLCBOKQor dGVtcGxhdGU8dW5zaWduZWQgTiwgYm9vbCBSRVNJWkFCTEU+CitpbnRfcmFuZ2U8TiwgUkVTSVpB QkxFPjo6aW50X3JhbmdlIChjb25zdCBpbnRfcmFuZ2UgJm90aGVyKQorICA6IGlyYW5nZSAobV9y YW5nZXMsIE4sIFJFU0laQUJMRSkKIHsKICAgaXJhbmdlOjpvcGVyYXRvcj0gKG90aGVyKTsKIH0K IAotdGVtcGxhdGU8dW5zaWduZWQgTj4KLWludF9yYW5nZTxOPjo6aW50X3JhbmdlICh0cmVlIG1p biwgdHJlZSBtYXgsIHZhbHVlX3JhbmdlX2tpbmQga2luZCkKLSAgOiBpcmFuZ2UgKG1fcmFuZ2Vz LCBOKQordGVtcGxhdGU8dW5zaWduZWQgTiwgYm9vbCBSRVNJWkFCTEU+CitpbnRfcmFuZ2U8Tiwg UkVTSVpBQkxFPjo6aW50X3JhbmdlICh0cmVlIG1pbiwgdHJlZSBtYXgsIHZhbHVlX3JhbmdlX2tp bmQga2luZCkKKyAgOiBpcmFuZ2UgKG1fcmFuZ2VzLCBOLCBSRVNJWkFCTEUpCiB7CiAgIGlyYW5n ZTo6c2V0IChtaW4sIG1heCwga2luZCk7CiB9CiAKLXRlbXBsYXRlPHVuc2lnbmVkIE4+Ci1pbnRf cmFuZ2U8Tj46OmludF9yYW5nZSAodHJlZSB0eXBlKQotICA6IGlyYW5nZSAobV9yYW5nZXMsIE4p Cit0ZW1wbGF0ZTx1bnNpZ25lZCBOLCBib29sIFJFU0laQUJMRT4KK2ludF9yYW5nZTxOLCBSRVNJ WkFCTEU+OjppbnRfcmFuZ2UgKHRyZWUgdHlwZSkKKyAgOiBpcmFuZ2UgKG1fcmFuZ2VzLCBOLCBS RVNJWkFCTEUpCiB7CiAgIHNldF92YXJ5aW5nICh0eXBlKTsKIH0KIAotdGVtcGxhdGU8dW5zaWdu ZWQgTj4KLWludF9yYW5nZTxOPjo6aW50X3JhbmdlICh0cmVlIHR5cGUsIGNvbnN0IHdpZGVfaW50 ICZ3bWluLCBjb25zdCB3aWRlX2ludCAmd21heCwKK3RlbXBsYXRlPHVuc2lnbmVkIE4sIGJvb2wg UkVTSVpBQkxFPgoraW50X3JhbmdlPE4sIFJFU0laQUJMRT46OmludF9yYW5nZSAodHJlZSB0eXBl LCBjb25zdCB3aWRlX2ludCAmd21pbiwgY29uc3Qgd2lkZV9pbnQgJndtYXgsCiAJCQkgdmFsdWVf cmFuZ2Vfa2luZCBraW5kKQotICA6IGlyYW5nZSAobV9yYW5nZXMsIE4pCisgIDogaXJhbmdlICht X3JhbmdlcywgTiwgUkVTSVpBQkxFKQogewogICB0cmVlIG1pbiA9IHdpZGVfaW50X3RvX3RyZWUg KHR5cGUsIHdtaW4pOwogICB0cmVlIG1heCA9IHdpZGVfaW50X3RvX3RyZWUgKHR5cGUsIHdtYXgp OwogICBzZXQgKG1pbiwgbWF4LCBraW5kKTsKIH0KIAotdGVtcGxhdGU8dW5zaWduZWQgTj4KLWlu dF9yYW5nZTxOPjo6aW50X3JhbmdlIChjb25zdCBpcmFuZ2UgJm90aGVyKQotICA6IGlyYW5nZSAo bV9yYW5nZXMsIE4pCit0ZW1wbGF0ZTx1bnNpZ25lZCBOLCBib29sIFJFU0laQUJMRT4KK2ludF9y YW5nZTxOLCBSRVNJWkFCTEU+OjppbnRfcmFuZ2UgKGNvbnN0IGlyYW5nZSAmb3RoZXIpCisgIDog aXJhbmdlIChtX3JhbmdlcywgTiwgUkVTSVpBQkxFKQogewogICBpcmFuZ2U6Om9wZXJhdG9yPSAo b3RoZXIpOwogfQogCi10ZW1wbGF0ZTx1bnNpZ25lZCBOPgotaW50X3JhbmdlPE4+JgotaW50X3Jh bmdlPE4+OjpvcGVyYXRvcj0gKGNvbnN0IGludF9yYW5nZSAmc3JjKQordGVtcGxhdGU8dW5zaWdu ZWQgTiwgYm9vbCBSRVNJWkFCTEU+CitpbnRfcmFuZ2U8TiwgUkVTSVpBQkxFPiYKK2ludF9yYW5n ZTxOLCBSRVNJWkFCTEU+OjpvcGVyYXRvcj0gKGNvbnN0IGludF9yYW5nZSAmc3JjKQogewogICBp cmFuZ2U6Om9wZXJhdG9yPSAoc3JjKTsKICAgcmV0dXJuICp0aGlzOwotLSAKMi40MS4wCgo= --------------YurWwGGtMV6bumZ6DqrR0uWm--