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 1DA5B3858C5E for ; Mon, 24 Jul 2023 14:39:33 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1DA5B3858C5E 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=1690209572; 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=SsMjbONER+lXBHENNVxXPkNaOhmtAClcS8gwiXI6OEE=; b=QafyNy7ya9410M9i+HzjnkvISLVr60t4+1gZXwjim1C5XeskJV5/ONbmJ+iT0DIh02mPAL 6fMjIhDDjY2FPakscg7BYYEl9/r2PIQmbiaqzGroluGvHVScv07pGzeeUAhqZuxdy8ybxE FLZwraqkpcUzI9t31+Q11VSUS1pKm0k= Received: from mail-vs1-f71.google.com (mail-vs1-f71.google.com [209.85.217.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-501-B5P_1WbCPmWU_ZcRWzTQyQ-1; Mon, 24 Jul 2023 10:39:30 -0400 X-MC-Unique: B5P_1WbCPmWU_ZcRWzTQyQ-1 Received: by mail-vs1-f71.google.com with SMTP id ada2fe7eead31-440d57c812bso643007137.0 for ; Mon, 24 Jul 2023 07:39:30 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690209570; x=1690814370; 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=TZM59dDu4fPFTKD8PaAakTkGj6EOVdogrQMwSdjFYEw=; b=War6zWS72bdezvNoU3jrnikgV4XzSrHVJeLyrQytT/1MB8uvLWbk/qjKcRVyMB0R03 X7gydhR3PXWTsdUt8zIwcqIPOKViWpLFBDRP7kfuIB03S0lkrIW6wkMgPc6A9VVwPbLc FJj1QUvnbWju6jZm17XuF/o5aM2YMqkOfUVVP8VGNtwnIm6lhKMFJ1jhLA2Nwu6uoLpS xoK7VIMsiFjvURc67ZaAjoxXwniMYAfDKm8iL+GqgxugdWvLGzUeBlJ2mjbxva6lHQgZ HmI47Spbjdw8rwU3o2qnkvL6CPi1pdF8ZdSv5Z/lDXjG4wWSJWPQTQqcZtNZvDsQpt7i L+Vg== X-Gm-Message-State: ABy/qLbrlMhFbRLWih7BBvI9KlDb7RcNoM2Z8BG2CNAD2JJsrg3OCVnc spM/Hr9ENJXeRGCFSM9u/aEvpaI/GeY8tf0tkxO0I526Qh1NmECC9MmbkjkEZmVchqTc96BDvfE 1xjTGKssqinTfVJpHTBp7MRv/+hXg6unqmHziy/0rXrip7yDwmEOGPPBMTL2le6GLhu14GSOzUB kwvw== X-Received: by 2002:a67:fb4a:0:b0:443:5aca:d2dc with SMTP id e10-20020a67fb4a000000b004435acad2dcmr2747552vsr.6.1690209570039; Mon, 24 Jul 2023 07:39:30 -0700 (PDT) X-Google-Smtp-Source: APBJJlHipiM3UjiQqGzB7y6cbGdpEPO9+HvscAJu8BGTRHUkH+dHX218c458ohST+NfTlJ0ZsiFsYA== X-Received: by 2002:a67:fb4a:0:b0:443:5aca:d2dc with SMTP id e10-20020a67fb4a000000b004435acad2dcmr2747536vsr.6.1690209569619; Mon, 24 Jul 2023 07:39:29 -0700 (PDT) Received: from ?IPV6:2607:fea8:51df:4200::bdd9? ([2607:fea8:51df:4200::bdd9]) by smtp.gmail.com with ESMTPSA id h9-20020a05620a13e900b00767ce8e6d7fsm2983676qkl.57.2023.07.24.07.39.28 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 24 Jul 2023 07:39:29 -0700 (PDT) Message-ID: <8b98831c-23cd-0c27-58f3-62bbcb4b3347@redhat.com> Date: Mon, 24 Jul 2023 10:39:27 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 To: gcc-patches Cc: "hernandez, aldy" From: Andrew MacLeod Subject: [PATCH] [GCC13] PR tree-optimization/110315 - Add auto-resizing capability to irange's X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="------------FojRmtPdtn2D6esAOUQcHhAA" Content-Language: en-US X-Spam-Status: No, score=-12.4 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_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,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: This is a multi-part message in MIME format. --------------FojRmtPdtn2D6esAOUQcHhAA Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Aldy has ported his irange reduction patch to GCC 13.  It resolves this PR. I have bootstrapped it and it passes regression tests. Do we want to check it into the GCC 13 branch?  The patch has all his comments in it. Andrew --------------FojRmtPdtn2D6esAOUQcHhAA Content-Type: text/x-patch; charset=UTF-8; name="stack.patch" Content-Disposition: attachment; filename="stack.patch" Content-Transfer-Encoding: base64 RnJvbSA3NzdhYTkzMGIxMDZmZWEyZGQ2ZWQ5ZmUyMmI0MmEyNzE3ZjE0NzJkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGR5IEhlcm5hbmRleiA8YWxkeWhAcmVkaGF0LmNvbT4KRGF0 ZTogTW9uLCAxNSBNYXkgMjAyMyAxMjoyNTo1OCArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIFtHQ0Mx M10gQWRkIGF1dG8tcmVzaXppbmcgY2FwYWJpbGl0eSB0byBpcmFuZ2UncyBbUFIxMDk2OTVdCgpC YWNrcG9ydCB0aGUgZm9sbG93aW5nIGZyb20gdHJ1bmsuCgoJTm90ZSB0aGF0IHRoZSBwYXRjaCBo YXMgYmVlbiBhZGFwdGVkIHRvIHRyZWVzLgoKCVRoZSBudW1iZXJzIGZvciB2YXJpb3VzIHN1Yi1y YW5nZXMgb24gR0NDMTMgYXJlOgoJCTwgMj4gPSAgNjQgYnl0ZXMsIC0zLjAyJSBmb3IgVlJQLgoJ CTwgMz4gPSAgODAgYnl0ZXMsIC0yLjY3JSBmb3IgVlJQLgoJCTwgOD4gPSAxNjAgYnl0ZXMsIC0y LjQ2JSBmb3IgVlJQLgoJCTwxNj4gPSAyODggYnl0ZXMsIC0yLjQwJSBmb3IgVlJQLgoKPHRsZHI+ CldlIGNhbiBub3cgaGF2ZSBpbnRfcmFuZ2U8TiwgUkVTSVpBQkxFPWZhbHNlPiBmb3IgYXV0b21h dGljYWxseQpyZXNpemFibGUgcmFuZ2VzLiAgaW50X3JhbmdlX21heCBpcyBub3cgaW50X3Jhbmdl PDMsIHRydWU+CmZvciBhIDY5WCByZWR1Y3Rpb24gaW4gc2l6ZSBmcm9tIGN1cnJlbnQgdHJ1bmss IGFuZCA2LjlYIHJlZHVjdGlvbiBmcm9tCkdDQzEyLiAgVGhpcyBpbmN1cnMgYSA1JSBwZXJmb3Jt YW5jZSBwZW5hbHR5IGZvciBWUlAgdGhhdCBpcyBtb3JlIHRoYW4KY292ZXJlZCBieSBvdXIgPiAx MyUgaW1wcm92ZW1lbnRzIHJlY2VudGx5Lgo8L3RsZHI+CgppbnRfcmFuZ2VfbWF4IGlzIHRoZSB0 ZW1wb3JhcnkgcmFuZ2Ugb2JqZWN0IHdlIHVzZSBpbiB0aGUgcmFuZ2VyIGZvcgppbnRlZ2Vycy4g IFdpdGggdGhlIGNvbnZlcnNpb24gdG8gd2lkZV9pbnQsIHRoaXMgc3RydWN0dXJlIGJsb2F0ZWQg dXAKc2lnbmlmaWNhbnRseSBiZWNhdXNlIHdpZGVfaW50cyBhcmUgaHVnZSAoODAgYnl0ZXMgYSBw aWVjZSkgYW5kIGFyZQphYm91dCAxMCB0aW1lcyBhcyBiaWcgYXMgYSBwbGFpbiB0cmVlLiAgU2lu Y2UgdGhlIHRlbXBvcmFyeSBvYmplY3QKcmVxdWlyZXMgMjU1IHN1Yi1yYW5nZXMsIHRoYXQncyAy NTUgKiA4MCAqIDIsIHBsdXMgdGhlIGNvbnRyb2wgd29yZC4KVGhpcyBtZWFucyB0aGUgc3RydWN0 dXJlIGdyZXcgZnJvbSA0MTEyIGJ5dGVzIHRvIDQwOTEyIGJ5dGVzLgoKVGhpcyBwYXRjaCBhZGRz IHRoZSBhYmlsaXR5IHRvIHJlc2l6ZSByYW5nZXMgYXMgbmVlZGVkLCBkZWZhdWx0aW5nIHRvCm5v IHJlc2l6aW5nLCB3aGlsZSBpbnRfcmFuZ2VfbWF4IG5vdyBkZWZhdWx0cyB0byAzIHN1Yi1yYW5n ZXMgKGluc3RlYWQKb2YgMjU1KSBhbmQgZ3Jvd3MgdG8gMjU1IHdoZW4gdGhlIHJhbmdlIGJlaW5n IGNhbGN1bGF0ZWQgZG9lcyBub3QgZml0LgoKRm9yIGV4YW1wbGU6CgppbnRfcmFuZ2U8MT4gZm9v OwkvLyAxIHN1Yi1yYW5nZSB3aXRoIG5vIHJlc2l6aW5nLgppbnRfcmFuZ2U8NT4gZm9vOwkvLyA1 IHN1Yi1yYW5nZXMgd2l0aCBubyByZXNpemluZy4KaW50X3JhbmdlPDUsIHRydWU+IGZvbzsJLy8g NSBzdWItcmFuZ2VzIHdpdGggcmVzaXppbmcuCgpJIHJhbiBzb21lIHRlc3RzIGFuZCBmb3VuZCB0 aGF0IDMgc3ViLXJhbmdlcyBjb3ZlciA5OSUgb2YgY2FzZXMsIHNvCkkndmUgc2V0IHRoZSBpbnRf cmFuZ2VfbWF4IGRlZmF1bHQgdG8gdGhhdDoKCgl0eXBlZGVmIGludF9yYW5nZTwzLCAvKlJFU0la QUJMRT0qL3RydWU+IGludF9yYW5nZV9tYXg7CgpXZSBkb24ndCBib3RoZXIgZ3Jvd2luZyBpbmNy ZW1lbnRhbGx5LCBzaW5jZSB0aGUgZGVmYXVsdCBjb3ZlcnMgbW9zdApjYXNlcyBhbmQgd2UgaGF2 ZSBhIDI1NSBoYXJkLWxpbWl0LiAgVGhpcyBoYXJkIGxpbWl0IGNvdWxkIGJlIHJlZHVjZWQKdG8g MTI4LCBzaW5jZSBteSB0ZXN0cyBuZXZlciBzYXcgYSByYW5nZSBuZWVkaW5nIG1vcmUgdGhhbiAx MjQsIGJ1dCB3ZQpjb3VsZCBkbyB0aGF0IGFzIGEgZm9sbG93LXVwIGlmIG5lZWRlZC4KCldpdGgg My1zdWJyYW5nZXMsIGludF9yYW5nZV9tYXggaXMgbm93IDU5MiBieXRlcyB2ZXJzdXMgNDA5MTIg Zm9yCnRydW5rLCBhbmQgdmVyc3VzIDQxMTIgYnl0ZXMgZm9yIEdDQzEyISAgVGhlIHBlbmFsdHkg aXMgNS4wNCUgZm9yIFZSUAphbmQgMy4wMiUgZm9yIHRocmVhZGluZywgd2l0aCBubyBub3RpY2Vh YmxlIGNoYW5nZSBpbiBvdmVyYWxsCmNvbXBpbGF0aW9uICgwLjI3JSkuICBUaGlzIGlzIG1vcmUg dGhhbiBjb3ZlcmVkIGJ5IG91ciAxMy4yNiUKaW1wcm92ZW1lbnRzIGZvciB0aGUgbGVnYWN5IHJl bW92YWwgKyB3aWRlX2ludCBjb252ZXJzaW9uLgoKSSB0aGluayB0aGlzIGFwcHJvYWNoIGlzIGEg Z29vZCBhbHRlcm5hdGl2ZSwgd2hpbGUgcHJvdmlkaW5nIHVzIHdpdGgKZmxleGliaWxpdHkgZ29p bmcgZm9yd2FyZC4gIEZvciBleGFtcGxlLCB3ZSBjb3VsZCB0cnkgZGVmYXVsdGluZyB0byBhCjgg c3ViLXJhbmdlcyBmb3IgYSBub3RpY2VhYmxlIGltcHJvdmVtZW50IGluIFZSUC4gIFdlIGNvdWxk IGFsc28gdXNlCmxhcmdlIHN1Yi1yYW5nZXMgZm9yIHN3aXRjaCBhbmFseXNpcyB0byBhdm9pZCBy ZXNpemluZy4KCkFub3RoZXIgYXBwcm9hY2ggSSB0cmllZCB3YXMgYWx3YXlzIHJlc2l6aW5nLiAg V2l0aCB0aGlzLCB3ZSBjb3VsZApkcm9wIHRoZSB3aG9sZSBpbnRfcmFuZ2U8Tj4gbm9uc2Vuc2Us IGFuZCBoYXZlIGlyYW5nZSBqdXN0IGhvbGQgYQpyZXNpemFibGUgcmFuZ2UuICBUaGlzIHNpbXBs aWZpZWQgdGhpbmdzLCBidXQgaW5jdXJyZWQgYSA3JSBwZW5hbHR5IG9uCmlwYV9jcC4gIFRoaXMg d2FzIGhhcmQgdG8gcGlucG9pbnQsIGFuZCBJJ20gbm90IGVudGlyZWx5IGNvbnZpbmNlZAp0aGlz IHdhc24ndCBzb21lIGFydGlmYWN0IG9mIHZhbGdyaW5kLiAgSG93ZXZlciwgdW50aWwgd2UncmUg c3VyZSwKbGV0J3MgYXZvaWQgbWFzc2l2ZSBjaGFuZ2VzLCBlc3BlY2lhbGx5IHNpbmNlIElQQSBj aGFuZ2VzIGFyZSBjb21pbmcKdXAuCgpGb3IgdGhlIGN1cmlvdXMsIGEgcGFydGljdWxhciBob3Qg c3BvdCBmb3IgSVBBIGluIHRoaXMgYXJlYSB3YXM6CgppcGNwX3ZyX2xhdHRpY2U6Om1lZXRfd2l0 aF8xIChjb25zdCB2YWx1ZV9yYW5nZSAqb3RoZXJfdnIpCnsKLi4uCi4uLgogIHZhbHVlX3Jhbmdl IHNhdmUgKG1fdnIpOwogIG1fdnIudW5pb25fICgqb3RoZXJfdnIpOwogIHJldHVybiBtX3ZyICE9 IHNhdmU7Cn0KClRoZSBwcm9ibGVtIGlzbid0IHRoZSByZXNpemluZyAoc2luY2Ugd2UgZG8gdGhh dCBhdCBtb3N0IG9uY2UpIGJ1dCB0aGUKZmFjdCB0aGF0IGZvciBzb21lIGZ1bmN0aW9ucyB3aXRo IGxvdHMgb2YgY2FsbGVycyB3ZSBlbmQgdXAgYSBodWdlCnJhbmdlIHRoYXQgZ2V0cyBjb3BpZWQg YW5kIGNvbXBhcmVkIGZvciBldmVyeSBtZWV0IG9wZXJhdGlvbi4gIE1heWJlCnRoZSBJUEEgYWxn b3JpdGhtIGNvdWxkIGJlIGFkanVzdGVkIHNvbWVob3c/Py4KCkFueXdob29vLi4uIGZvciBub3cg dGhlcmUgaXMgbm90aGluZyB0byB3b3JyeSBhYm91dCwgc2luY2UgdmFsdWVfcmFuZ2UKc3RpbGwg aGFzIDIgc3VicmFuZ2VzIGFuZCBpcyBub3QgcmVzaXphYmxlLiAgQnV0IHdlIHNob3VsZCBwcm9i YWJseQp0aGluayB3aGF0IGlmIGFueXRoaW5nIHdlIHdhbnQgdG8gZG8gaGVyZSwgYXMgSSBlbnZp c2lvbiBJUEEgdXNpbmcKaW5maW5pdGUgcmFuZ2VzIGhlcmUgKHdlbGwsIGludF9yYW5nZV9tYXgp IGFuZCBoYW5kbGluZyBmcmFuZ2UncywgZXRjLgoKZ2NjL0NoYW5nZUxvZzoKCglQUiB0cmVlLW9w dGltaXphdGlvbi8xMDk2OTUKCSogdmFsdWUtcmFuZ2UuY2MgKGlyYW5nZTo6b3BlcmF0b3I9KTog UmVzaXplIHJhbmdlLgoJKGlyYW5nZTo6dW5pb25fKTogU2FtZS4KCShpcmFuZ2U6OmludGVyc2Vj dCk6IFNhbWUuCgkoaXJhbmdlOjppbnZlcnQpOiBTYW1lLgoJKGludF9yYW5nZV9tYXgpOiBEZWZh dWx0IHRvIDMgc3ViLXJhbmdlcyBhbmQgcmVzaXplIGFzIG5lZWRlZC4KCSogdmFsdWUtcmFuZ2Uu aCAoaXJhbmdlOjptYXliZV9yZXNpemUpOiBOZXcuCgkofmludF9yYW5nZSk6IE5ldy4KCShpbnRf cmFuZ2U6OmludF9yYW5nZSk6IEFkanVzdCBmb3IgcmVzaXppbmcuCgkoaW50X3JhbmdlOjpvcGVy YXRvcj0pOiBTYW1lLgotLS0KIGdjYy92YWx1ZS1yYW5nZS1zdG9yYWdlLmggfCAgMiArLQogZ2Nj L3ZhbHVlLXJhbmdlLmNjICAgICAgICB8IDE1ICsrKysrKwogZ2NjL3ZhbHVlLXJhbmdlLmggICAg ICAgICB8IDk2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQogMyBmaWxl cyBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCspLCAzMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9nY2MvdmFsdWUtcmFuZ2Utc3RvcmFnZS5oIGIvZ2NjL3ZhbHVlLXJhbmdlLXN0b3JhZ2UuaApp bmRleCA2ZGEzNzdlYmQyZS4uMWVkNmYxY2NkNjEgMTAwNjQ0Ci0tLSBhL2djYy92YWx1ZS1yYW5n ZS1zdG9yYWdlLmgKKysrIGIvZ2NjL3ZhbHVlLXJhbmdlLXN0b3JhZ2UuaApAQCAtMTg0LDcgKzE4 NCw3IEBAIHZyYW5nZV9hbGxvY2F0b3I6OmFsbG9jX2lyYW5nZSAodW5zaWduZWQgbnVtX3BhaXJz KQogICAvLyBBbGxvY2F0ZSB0aGUgaXJhbmdlIGFuZCByZXF1aXJlZCBtZW1vcnkgZm9yIHRoZSB2 ZWN0b3IuCiAgIHZvaWQgKnIgPSBhbGxvYyAoc2l6ZW9mIChpcmFuZ2UpKTsKICAgdHJlZSAqbWVt ID0gc3RhdGljX2Nhc3QgPHRyZWUgKj4gKGFsbG9jIChuYnl0ZXMpKTsKLSAgcmV0dXJuIG5ldyAo cikgaXJhbmdlIChtZW0sIG51bV9wYWlycyk7CisgIHJldHVybiBuZXcgKHIpIGlyYW5nZSAobWVt LCBudW1fcGFpcnMsIC8qcmVzaXphYmxlPSovZmFsc2UpOwogfQogCiBpbmxpbmUgZnJhbmdlICoK ZGlmZiAtLWdpdCBhL2djYy92YWx1ZS1yYW5nZS5jYyBiL2djYy92YWx1ZS1yYW5nZS5jYwppbmRl eCBlYzgyNmMyZmUxYi4uNzUzZjVlOGNjNzYgMTAwNjQ0Ci0tLSBhL2djYy92YWx1ZS1yYW5nZS5j YworKysgYi9nY2MvdmFsdWUtcmFuZ2UuY2MKQEAgLTgzMSw2ICs4MzEsMTAgQEAgaXJhbmdlOjpv cGVyYXRvcj0gKGNvbnN0IGlyYW5nZSAmc3JjKQogICAgICAgY29weV90b19sZWdhY3kgKHNyYyk7 CiAgICAgICByZXR1cm4gKnRoaXM7CiAgICAgfQorCisgIGludCBuZWVkZWQgPSBzcmMubnVtX3Bh aXJzICgpOworICBtYXliZV9yZXNpemUgKG5lZWRlZCk7CisKICAgaWYgKHNyYy5sZWdhY3lfbW9k ZV9wICgpKQogICAgIHsKICAgICAgIGNvcHlfbGVnYWN5X3RvX211bHRpX3JhbmdlIChzcmMpOwpA QCAtMjUwNiw2ICsyNTEwLDcgQEAgaXJhbmdlOjppcmFuZ2VfdW5pb24gKGNvbnN0IGlyYW5nZSAm cikKICAgLy8gTm93IGl0IHNpbXBseSBuZWVkcyB0byBiZSBjb3BpZWQsIGFuZCBpZiB0aGVyZSBh cmUgdG9vIG1hbnkKICAgLy8gcmFuZ2VzLCBtZXJnZSBzb21lLiAgV2Ugd29udCBkbyBhbnkgYW5h bHlzaXMgYXMgdG8gd2hhdCB0aGUKICAgLy8gImJlc3QiIG1lcmdlcyBhcmUsIHNpbXBseSBjb21i aW5lIHRoZSBmaW5hbCByYW5nZXMgaW50byBvbmUuCisgIG1heWJlX3Jlc2l6ZSAoaSAvIDIpOwog ICBpZiAoaSA+IG1fbWF4X3JhbmdlcyAqIDIpCiAgICAgewogICAgICAgcmVzW21fbWF4X3Jhbmdl cyAqIDIgLSAxXSA9IHJlc1tpIC0gMV07CkBAIC0yNjA1LDYgKzI2MTAsMTEgQEAgaXJhbmdlOjpp cmFuZ2VfaW50ZXJzZWN0IChjb25zdCBpcmFuZ2UgJnIpCiAgIGlmIChyLmlyYW5nZV9jb250YWlu c19wICgqdGhpcykpCiAgICAgcmV0dXJuIGludGVyc2VjdF9ub256ZXJvX2JpdHMgKHIpOwogCisg IC8vID8/IFdlIGNvdWxkIHByb2JhYmx5IGNvbWUgdXAgd2l0aCBzb21ldGhpbmcgc21hcnRlciB0 aGFuIHRoZQorICAvLyB3b3JzdCBjYXNlIHNjZW5hcmlvIGhlcmUuCisgIGludCBuZWVkZWQgPSBu dW1fcGFpcnMgKCkgKyByLm51bV9wYWlycyAoKTsKKyAgbWF5YmVfcmVzaXplIChuZWVkZWQpOwor CiAgIHNpZ25vcCBzaWduID0gVFlQRV9TSUdOIChUUkVFX1RZUEUobV9iYXNlWzBdKSk7CiAgIHVu c2lnbmVkIGJsZF9wYWlyID0gMDsKICAgdW5zaWduZWQgYmxkX2xpbSA9IG1fbWF4X3JhbmdlczsK QEAgLTI4MzEsNiArMjg0MSwxMSBAQCBpcmFuZ2U6OmludmVydCAoKQogICAgICAgbV9udW1fcmFu Z2VzID0gMTsKICAgICAgIHJldHVybjsKICAgICB9CisKKyAgLy8gQXQgdGhpcyBwb2ludCwgd2Ug bmVlZCBvbmUgZXh0cmEgc3ViLXJhbmdlIHRvIHJlcHJlc2VudCB0aGUKKyAgLy8gaW52ZXJzZS4K KyAgbWF5YmVfcmVzaXplIChtX251bV9yYW5nZXMgKyAxKTsKKwogICAvLyBUaGUgYWxnb3JpdGht IGlzIGFzIGZvbGxvd3MuICBUbyBjYWxjdWxhdGUgSU5WRVJUIChbYSxiXVtjLGRdKSwgd2UKICAg Ly8gZ2VuZXJhdGUgWy1NSU4sIGEtMV1bYisxLCBjLTFdW2QrMSwgTUFYXS4KICAgLy8KZGlmZiAt LWdpdCBhL2djYy92YWx1ZS1yYW5nZS5oIGIvZ2NjL3ZhbHVlLXJhbmdlLmgKaW5kZXggOTY5YjJi Njg0MTguLjk2ZTU5ZWNmYTcyIDEwMDY0NAotLS0gYS9nY2MvdmFsdWUtcmFuZ2UuaAorKysgYi9n Y2MvdmFsdWUtcmFuZ2UuaApAQCAtMTcyLDcgKzE3Miw4IEBAIHB1YmxpYzoKICAgYm9vbCBsZWdh Y3lfdmVyYm9zZV9pbnRlcnNlY3QgKGNvbnN0IGlyYW5nZSAqKTsJLy8gREVQUkVDQVRFRAogCiBw cm90ZWN0ZWQ6Ci0gIGlyYW5nZSAodHJlZSAqLCB1bnNpZ25lZCk7CisgIHZvaWQgbWF5YmVfcmVz aXplIChpbnQgbmVlZGVkKTsKKyAgaXJhbmdlICh0cmVlICosIHVuc2lnbmVkIG5yYW5nZXMsIGJv b2wgcmVzaXphYmxlKTsKICAgLy8gcG90ZW50aWFsIHByb21vdGlvbiB0byBwdWJsaWM/CiAgIHRy ZWUgdHJlZV9sb3dlcl9ib3VuZCAodW5zaWduZWQgPSAwKSBjb25zdDsKICAgdHJlZSB0cmVlX3Vw cGVyX2JvdW5kICh1bnNpZ25lZCkgY29uc3Q7CkBAIC0yMDAsNiArMjAxLDggQEAgcHJvdGVjdGVk OgogICB2b2lkIGNvcHlfdG9fbGVnYWN5IChjb25zdCBpcmFuZ2UgJik7CiAgIHZvaWQgY29weV9s ZWdhY3lfdG9fbXVsdGlfcmFuZ2UgKGNvbnN0IGlyYW5nZSAmKTsKIAorICAvLyBIYXJkIGxpbWl0 IG9uIG1heCByYW5nZXMgYWxsb3dlZC4KKyAgc3RhdGljIGNvbnN0IGludCBIQVJEX01BWF9SQU5H RVMgPSAyNTU7CiBwcml2YXRlOgogICBmcmllbmQgdm9pZCBndF9nZ2NfbXggKGlyYW5nZSAqKTsK ICAgZnJpZW5kIHZvaWQgZ3RfcGNoX254IChpcmFuZ2UgKik7CkBAIC0yMTQsMTUgKzIxNywyMSBA QCBwcml2YXRlOgogCiAgIGJvb2wgaW50ZXJzZWN0IChjb25zdCB3aWRlX2ludCYgbGIsIGNvbnN0 IHdpZGVfaW50JiB1Yik7CiAgIHVuc2lnbmVkIGNoYXIgbV9udW1fcmFuZ2VzOworICBib29sIG1f cmVzaXphYmxlOwogICB1bnNpZ25lZCBjaGFyIG1fbWF4X3JhbmdlczsKICAgdHJlZSBtX25vbnpl cm9fbWFzazsKK3Byb3RlY3RlZDoKICAgdHJlZSAqbV9iYXNlOwogfTsKIAogLy8gSGVyZSB3ZSBk ZXNjcmliZSBhbiBpcmFuZ2Ugd2l0aCBOIHBhaXJzIG9mIHJhbmdlcy4gIFRoZSBzdG9yYWdlIGZv cgogLy8gdGhlIHBhaXJzIGlzIGVtYmVkZGVkIGluIHRoZSBjbGFzcyBhcyBhbiBhcnJheS4KKy8v CisvLyBJZiBSRVNJWkFCTEUgaXMgdHJ1ZSwgdGhlIHN0b3JhZ2Ugd2lsbCBiZSByZXNpemVkIG9u IHRoZSBoZWFwIHdoZW4KKy8vIHRoZSBudW1iZXIgb2YgcmFuZ2VzIG5lZWRlZCBnb2VzIHBhc3Qg TiB1cCB0byBhIG1heCBvZgorLy8gSEFSRF9NQVhfUkFOR0VTLiAgVGhpcyBuZXcgc3RvcmFnZSBp cyBmcmVlZCB1cG9uIGRlc3RydWN0aW9uLgogCi10ZW1wbGF0ZTx1bnNpZ25lZCBOPgordGVtcGxh dGU8dW5zaWduZWQgTiwgYm9vbCBSRVNJWkFCTEUgPSBmYWxzZT4KIGNsYXNzIEdUWSgodXNlcikp IGludF9yYW5nZSA6IHB1YmxpYyBpcmFuZ2UKIHsKIHB1YmxpYzoKQEAgLTIzMyw3ICsyNDIsNyBA QCBwdWJsaWM6CiAgIGludF9yYW5nZSAodHJlZSB0eXBlKTsKICAgaW50X3JhbmdlIChjb25zdCBp bnRfcmFuZ2UgJik7CiAgIGludF9yYW5nZSAoY29uc3QgaXJhbmdlICYpOwotICB2aXJ0dWFsIH5p bnRfcmFuZ2UgKCkgPSBkZWZhdWx0OworICB2aXJ0dWFsIH5pbnRfcmFuZ2UgKCk7CiAgIGludF9y YW5nZSYgb3BlcmF0b3I9IChjb25zdCBpbnRfcmFuZ2UgJik7CiBwcml2YXRlOgogICB0ZW1wbGF0 ZSA8dW5zaWduZWQgWD4gZnJpZW5kIHZvaWQgZ3RfZ2djX214IChpbnRfcmFuZ2U8WD4gKik7CkBA IC00NzIsNiArNDgxLDM4IEBAIGlzX2EgPGZyYW5nZT4gKHZyYW5nZSAmdikKICAgcmV0dXJuIHYu bV9kaXNjcmltaW5hdG9yID09IFZSX0ZSQU5HRTsKIH0KIAorLy8gRm9yIHJlc2l6YWJsZSByYW5n ZXMsIHJlc2l6ZSB0aGUgcmFuZ2UgdXAgdG8gSEFSRF9NQVhfUkFOR0VTIGlmIHRoZQorLy8gTkVF REVEIHBhaXJzIGlzIGdyZWF0ZXIgdGhhbiB0aGUgY3VycmVudCBjYXBhY2l0eSBvZiB0aGUgcmFu Z2UuCisKK2lubGluZSB2b2lkCitpcmFuZ2U6Om1heWJlX3Jlc2l6ZSAoaW50IG5lZWRlZCkKK3sK KyAgaWYgKCFtX3Jlc2l6YWJsZSB8fCBtX21heF9yYW5nZXMgPT0gSEFSRF9NQVhfUkFOR0VTKQor ICAgIHJldHVybjsKKworICBpZiAobmVlZGVkID4gbV9tYXhfcmFuZ2VzKQorICAgIHsKKyAgICAg IG1fbWF4X3JhbmdlcyA9IEhBUkRfTUFYX1JBTkdFUzsKKyAgICAgIHRyZWUgKm5ld21lbSA9IG5l dyB0cmVlW21fbWF4X3JhbmdlcyAqIDJdOworICAgICAgbWVtY3B5IChuZXdtZW0sIG1fYmFzZSwg c2l6ZW9mICh0cmVlKSAqIG51bV9wYWlycyAoKSAqIDIpOworICAgICAgbV9iYXNlID0gbmV3bWVt OworICAgIH0KK30KKwordGVtcGxhdGU8dW5zaWduZWQgTiwgYm9vbCBSRVNJWkFCTEU+Citpbmxp bmUKK2ludF9yYW5nZTxOLCBSRVNJWkFCTEU+Ojp+aW50X3JhbmdlICgpCit7CisgIGlmIChSRVNJ WkFCTEUgJiYgbV9iYXNlICE9IG1fcmFuZ2VzKQorICAgIGRlbGV0ZSBtX2Jhc2U7Cit9CisKKy8v IFRoaXMgaXMgYW4gImluZmluaXRlIiBwcmVjaXNpb24gaXJhbmdlIGZvciB1c2UgaW4gdGVtcG9y YXJ5CisvLyBjYWxjdWxhdGlvbnMuICBJdCBzdGFydHMgd2l0aCBhIHNlbnNpYmxlIGRlZmF1bHQg Y292ZXJpbmcgOTklIG9mCisvLyB1c2VzLCBhbmQgZ29lcyB1cCB0byBIQVJEX01BWF9SQU5HRVMg d2hlbiBuZWVkZWQuICBBbnkgYWxsb2NhdGVkCisvLyBzdG9yYWdlIGlzIGZyZWVkIHVwb24gZGVz dHJ1Y3Rpb24uCit0eXBlZGVmIGludF9yYW5nZTwzLCAvKlJFU0laQUJMRT0qL3RydWU+IGludF9y YW5nZV9tYXg7CisKIGNsYXNzIHZyYW5nZV92aXNpdG9yCiB7CiBwdWJsaWM6CkBAIC00OTAsMTAg KzUzMSw2IEBAIHB1YmxpYzoKIC8vIFRoZXJlIGFyZSBjb3B5IG9wZXJhdG9ycyB0byBzZWFtbGVz c2x5IGNvcHkgdG8vZnJvIG11bHRpLXJhbmdlcy4KIHR5cGVkZWYgaW50X3JhbmdlPDE+IHZhbHVl X3JhbmdlOwogCi0vLyBUaGlzIGlzIGFuICJpbmZpbml0ZSIgcHJlY2lzaW9uIGlyYW5nZSBmb3Ig dXNlIGluIHRlbXBvcmFyeQotLy8gY2FsY3VsYXRpb25zLgotdHlwZWRlZiBpbnRfcmFuZ2U8MjU1 PiBpbnRfcmFuZ2VfbWF4OwotCiAvLyBUaGlzIGlzIGFuICJpbmZpbml0ZSIgcHJlY2lzaW9uIHJh bmdlIG9iamVjdCBmb3IgdXNlIGluIHRlbXBvcmFyeQogLy8gY2FsY3VsYXRpb25zIGZvciBhbnkg b2YgdGhlIGhhbmRsZWQgdHlwZXMuICBUaGUgb2JqZWN0IGNhbiBiZQogLy8gdHJhbnNwYXJlbnRs eSB1c2VkIGFzIGEgdnJhbmdlLgpAQCAtODcyLDY0ICs5MDksNjUgQEAgZ3RfcGNoX254IChpbnRf cmFuZ2U8Tj4gKngsIGd0X3BvaW50ZXJfb3BlcmF0b3Igb3AsIHZvaWQgKmNvb2tpZSkKIC8vIENv bnN0cnVjdG9ycyBmb3IgaXJhbmdlCiAKIGlubGluZQotaXJhbmdlOjppcmFuZ2UgKHRyZWUgKmJh c2UsIHVuc2lnbmVkIG5yYW5nZXMpCitpcmFuZ2U6OmlyYW5nZSAodHJlZSAqYmFzZSwgdW5zaWdu ZWQgbnJhbmdlcywgYm9vbCByZXNpemFibGUpCiB7CiAgIG1fZGlzY3JpbWluYXRvciA9IFZSX0lS QU5HRTsKICAgbV9iYXNlID0gYmFzZTsKICAgbV9tYXhfcmFuZ2VzID0gbnJhbmdlczsKKyAgbV9y ZXNpemFibGUgPSByZXNpemFibGU7CiAgIHNldF91bmRlZmluZWQgKCk7CiB9CiAKIC8vIENvbnN0 cnVjdG9ycyBmb3IgaW50X3JhbmdlPD4uCiAKLXRlbXBsYXRlPHVuc2lnbmVkIE4+Cit0ZW1wbGF0 ZTx1bnNpZ25lZCBOLCBib29sIFJFU0laQUJMRT4KIGlubGluZQotaW50X3JhbmdlPE4+OjppbnRf cmFuZ2UgKCkKLSAgOiBpcmFuZ2UgKG1fcmFuZ2VzLCBOKQoraW50X3JhbmdlPE4sIFJFU0laQUJM RT46OmludF9yYW5nZSAoKQorICA6IGlyYW5nZSAobV9yYW5nZXMsIE4sIFJFU0laQUJMRSkKIHsK IH0KIAotdGVtcGxhdGU8dW5zaWduZWQgTj4KLWludF9yYW5nZTxOPjo6aW50X3JhbmdlIChjb25z dCBpbnRfcmFuZ2UgJm90aGVyKQotICA6IGlyYW5nZSAobV9yYW5nZXMsIE4pCit0ZW1wbGF0ZTx1 bnNpZ25lZCBOLCBib29sIFJFU0laQUJMRT4KK2ludF9yYW5nZTxOLCBSRVNJWkFCTEU+OjppbnRf cmFuZ2UgKGNvbnN0IGludF9yYW5nZSAmb3RoZXIpCisgIDogaXJhbmdlIChtX3JhbmdlcywgTiwg UkVTSVpBQkxFKQogewogICBpcmFuZ2U6Om9wZXJhdG9yPSAob3RoZXIpOwogfQogCi10ZW1wbGF0 ZTx1bnNpZ25lZCBOPgotaW50X3JhbmdlPE4+OjppbnRfcmFuZ2UgKHRyZWUgbWluLCB0cmVlIG1h eCwgdmFsdWVfcmFuZ2Vfa2luZCBraW5kKQotICA6IGlyYW5nZSAobV9yYW5nZXMsIE4pCit0ZW1w bGF0ZTx1bnNpZ25lZCBOLCBib29sIFJFU0laQUJMRT4KK2ludF9yYW5nZTxOLCBSRVNJWkFCTEU+ OjppbnRfcmFuZ2UgKHRyZWUgbWluLCB0cmVlIG1heCwgdmFsdWVfcmFuZ2Vfa2luZCBraW5kKQor ICA6IGlyYW5nZSAobV9yYW5nZXMsIE4sIFJFU0laQUJMRSkKIHsKICAgaXJhbmdlOjpzZXQgKG1p biwgbWF4LCBraW5kKTsKIH0KIAotdGVtcGxhdGU8dW5zaWduZWQgTj4KLWludF9yYW5nZTxOPjo6 aW50X3JhbmdlICh0cmVlIHR5cGUpCi0gIDogaXJhbmdlIChtX3JhbmdlcywgTikKK3RlbXBsYXRl PHVuc2lnbmVkIE4sIGJvb2wgUkVTSVpBQkxFPgoraW50X3JhbmdlPE4sIFJFU0laQUJMRT46Omlu dF9yYW5nZSAodHJlZSB0eXBlKQorICA6IGlyYW5nZSAobV9yYW5nZXMsIE4sIFJFU0laQUJMRSkK IHsKICAgc2V0X3ZhcnlpbmcgKHR5cGUpOwogfQogCi10ZW1wbGF0ZTx1bnNpZ25lZCBOPgotaW50 X3JhbmdlPE4+OjppbnRfcmFuZ2UgKHRyZWUgdHlwZSwgY29uc3Qgd2lkZV9pbnQgJndtaW4sIGNv bnN0IHdpZGVfaW50ICZ3bWF4LAordGVtcGxhdGU8dW5zaWduZWQgTiwgYm9vbCBSRVNJWkFCTEU+ CitpbnRfcmFuZ2U8TiwgUkVTSVpBQkxFPjo6aW50X3JhbmdlICh0cmVlIHR5cGUsIGNvbnN0IHdp ZGVfaW50ICZ3bWluLCBjb25zdCB3aWRlX2ludCAmd21heCwKIAkJCSB2YWx1ZV9yYW5nZV9raW5k IGtpbmQpCi0gIDogaXJhbmdlIChtX3JhbmdlcywgTikKKyAgOiBpcmFuZ2UgKG1fcmFuZ2VzLCBO LCBSRVNJWkFCTEUpCiB7CiAgIHRyZWUgbWluID0gd2lkZV9pbnRfdG9fdHJlZSAodHlwZSwgd21p bik7CiAgIHRyZWUgbWF4ID0gd2lkZV9pbnRfdG9fdHJlZSAodHlwZSwgd21heCk7CiAgIHNldCAo bWluLCBtYXgsIGtpbmQpOwogfQogCi10ZW1wbGF0ZTx1bnNpZ25lZCBOPgotaW50X3JhbmdlPE4+ OjppbnRfcmFuZ2UgKGNvbnN0IGlyYW5nZSAmb3RoZXIpCi0gIDogaXJhbmdlIChtX3Jhbmdlcywg TikKK3RlbXBsYXRlPHVuc2lnbmVkIE4sIGJvb2wgUkVTSVpBQkxFPgoraW50X3JhbmdlPE4sIFJF U0laQUJMRT46OmludF9yYW5nZSAoY29uc3QgaXJhbmdlICZvdGhlcikKKyAgOiBpcmFuZ2UgKG1f cmFuZ2VzLCBOLCBSRVNJWkFCTEUpCiB7CiAgIGlyYW5nZTo6b3BlcmF0b3I9IChvdGhlcik7CiB9 CiAKLXRlbXBsYXRlPHVuc2lnbmVkIE4+Ci1pbnRfcmFuZ2U8Tj4mCi1pbnRfcmFuZ2U8Tj46Om9w ZXJhdG9yPSAoY29uc3QgaW50X3JhbmdlICZzcmMpCit0ZW1wbGF0ZTx1bnNpZ25lZCBOLCBib29s IFJFU0laQUJMRT4KK2ludF9yYW5nZTxOLCBSRVNJWkFCTEU+JgoraW50X3JhbmdlPE4sIFJFU0la QUJMRT46Om9wZXJhdG9yPSAoY29uc3QgaW50X3JhbmdlICZzcmMpCiB7CiAgIGlyYW5nZTo6b3Bl cmF0b3I9IChzcmMpOwogICByZXR1cm4gKnRoaXM7Ci0tIAoyLjQwLjAKCg== --------------FojRmtPdtn2D6esAOUQcHhAA--