From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 91141 invoked by alias); 20 Jun 2019 17:49:49 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 90766 invoked by uid 89); 20 Jun 2019 17:49:49 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-15.5 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=antony, misused, Antony X-HELO: mail-qk1-f193.google.com Received: from mail-qk1-f193.google.com (HELO mail-qk1-f193.google.com) (209.85.222.193) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 20 Jun 2019 17:49:45 +0000 Received: by mail-qk1-f193.google.com with SMTP id m14so2502024qka.10; Thu, 20 Jun 2019 10:49:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=VvipO5YR3ZKMsVmcpK1Tm++4YVgWmSo+Iv0EBj0kX+E=; b=XrGl3xtN8gfgxAzR5sz7HtsNnTVYuyQvV1jQ81nibdQ5CEY1nI99VbNF3qfTCImT7U 8ERtC99jqvKtbpeDsF/2ZXbleAV+DKI0qmRkoTfm3gqeCved0AptvMtIZQBL+nFBERKd xnofzyMphGB9U1xgG8Hy+xVNqDqsECf2U4SklZPcRvAWV3Ol2nmltpaWEK1iWuwIBoIw 1O6uGNFhczQQ7uo6beAvB8nQrEU9O+FtDFd4/6iiJgHDKUOcsFVORJVPDCUEgkzuln0T gB6AK6YeDEWPqRDyg5KFib4eg3yrHce01QBEluvwqlnPRWJSRKsjJMLBU4YJUtQRM6z8 ZU7w== MIME-Version: 1.0 References: <20190508211032.GD2599@redhat.com> <20190530163808.GP2599@redhat.com> <20190531103550.GV2599@redhat.com> <20190606121912.GP2599@redhat.com> In-Reply-To: <20190606121912.GP2599@redhat.com> From: Antony Polukhin Date: Thu, 20 Jun 2019 17:49:00 -0000 Message-ID: Subject: Re: [PATCH] PR libstdc++/71579 assert that type traits are not misused with an incomplete type To: Jonathan Wakely Cc: "libstdc++" , gcc-patches List Content-Type: multipart/mixed; boundary="0000000000008fa4e2058bc4f8e2" X-SW-Source: 2019-06/txt/msg01257.txt.bz2 --0000000000008fa4e2058bc4f8e2 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Content-length: 510 =D1=87=D1=82, 6 =D0=B8=D1=8E=D0=BD. 2019 =D0=B3. =D0=B2 15:19, Jonathan Wak= ely : > I'm removing some of these assertions again, because they are either > reundant or wrong. Thanks for cleaning up! In attachment there is an additional patch for type traits hardening. Things that still remain unasserted are type traits with variadic template arguments. I have to came up with a proper solution for providing a useful and lightweight diagnostics. --=20 Best regards, Antony Polukhin --0000000000008fa4e2058bc4f8e2 Content-Type: text/plain; charset="US-ASCII"; name="type_traits_hardening2.txt" Content-Disposition: attachment; filename="type_traits_hardening2.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jx4yk8i40 Content-length: 29423 ZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9DaGFuZ2VMb2cgYi9saWJzdGRj KystdjMvQ2hhbmdlTG9nCmluZGV4IGFjOThjMGQuLjkwNjNmZTUgMTAwNjQ0 Ci0tLSBhL2xpYnN0ZGMrKy12My9DaGFuZ2VMb2cKKysrIGIvbGlic3RkYysr LXYzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE5LTA2LTIwICBB bnRvbnkgUG9sdWtoaW4gIDxhbnRvc2hra2FAZ21haWwuY29tPgorCisJUFIg bGlic3RkYysrLzcxNTc5CisJKiBpbmNsdWRlL3N0ZC90eXBlX3RyYWl0cyAo aXNfYXNzaWduYWJsZSwgaXNfbm90aHJvd19hc3NpZ25hYmxlKQorCShpc190 cml2aWFsbHlfYXNzaWduYWJsZSwgaXNfbm90aHJvd19pbnZvY2FibGVfcik6 IEFkZCBzdGF0aWNfYXNzZXJ0cworCXRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBz ZWNvbmQgYXJndW1lbnQgb2YgdGhlIHR5cGUgdHJhaXQgaXMgbm90IG1pc3Vz ZWQKKwl3aXRoIGluY29tcGxldGUgdHlwZXMuCisJKGlzX2NvbnZlcnRpYmxl LCBpc19ub3Rocm93X2NvbnZlcnRpYmxlLCBpc19zd2FwcGFibGVfd2l0aCkK KwkoaXNfbm90aHJvd19zd2FwcGFibGVfd2l0aCk6IEFkZCBzdGF0aWNfYXNz ZXJ0cyB0byBtYWtlIHN1cmUgdGhhdCB0aGUKKwlmaXJzdCBhbmQgc2Vjb25k IGFyZ3VtZW50cyBvZiB0aGUgdHlwZSB0cmFpdCBhcmUgbm90IG1pc3VzZWQg d2l0aAorCWluY29tcGxldGUgdHlwZXMuCisJaW52b2tlX3Jlc3VsdDogQWRk IHN0YXRpY19hc3NlcnRzIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBmaXJzdCBh cmd1bWVudAorCW9mIHRoZSB0eXBlIHRyYWl0IGlzIG5vdCBtaXN1c2VkIHdp dGggaW5jb21wbGV0ZSB0eXBlcy4KKwkqIHRlc3RzdWl0ZS8yMF91dGlsL2lu dm9rZV9yZXN1bHQvaW5jb21wbGV0ZV9uZWcuY2M6IE5ldyB0ZXN0LgorCSog dGVzdHN1aXRlLzIwX3V0aWwvaXNfYXNzaWduYWJsZS9pbmNvbXBsZXRlX25l Zy5jYzogTmV3IHRlc3QuCisJKiB0ZXN0c3VpdGUvMjBfdXRpbC9pc19jb252 ZXJ0aWJsZS9pbmNvbXBsZXRlX25lZy5jYzogTmV3IHRlc3QuCisJKiB0ZXN0 c3VpdGUvMjBfdXRpbC9pc19ub3Rocm93X2Fzc2lnbmFibGUvaW5jb21wbGV0 ZV9uZWcuY2M6IE5ldyB0ZXN0LgorCSogdGVzdHN1aXRlLzIwX3V0aWwvaXNf bm90aHJvd19jb252ZXJ0aWJsZS9pbmNvbXBsZXRlX25lZy5jYzogTmV3IHRl c3QuCisJKiB0ZXN0c3VpdGUvMjBfdXRpbC9pc19ub3Rocm93X3N3YXBwYWJs ZS9pbmNvbXBsZXRlX25lZy5jYzogTmV3IHRlc3QuCisJKiB0ZXN0c3VpdGUv MjBfdXRpbC9pc19ub3Rocm93X3N3YXBwYWJsZV93aXRoL2luY29tcGxldGVf bmVnLmNjOiBOZXcKKwl0ZXN0LgorCSogdGVzdHN1aXRlLzIwX3V0aWwvaXNf c3dhcHBhYmxlL2luY29tcGxldGVfbmVnLmNjOiBOZXcgdGVzdC4KKwkqIHRl c3RzdWl0ZS8yMF91dGlsL2lzX3N3YXBwYWJsZV93aXRoL2luY29tcGxldGVf bmVnLmNjOiBOZXcgdGVzdC4KKwkqIHRlc3RzdWl0ZS8yMF91dGlsL2lzX3Ry aXZpYWxseV9hc3NpZ25hYmxlL2luY29tcGxldGVfbmVnLmNjOiBOZXcgdGVz dC4KKwogMjAxOS0wNi0yMCAgSm9uYXRoYW4gV2FrZWx5ICA8andha2VseUBy ZWRoYXQuY29tPgogCiAJKiBhY2luY2x1ZGUubTQgKEdMSUJDWFhfRU5BQkxF X0RFQlVHKTogT25seSBkbyBkZWJ1ZyBidWlsZCBmb3IgZmluYWwKZGlmZiAt LWdpdCBhL2xpYnN0ZGMrKy12My9pbmNsdWRlL3N0ZC90eXBlX3RyYWl0cyBi L2xpYnN0ZGMrKy12My9pbmNsdWRlL3N0ZC90eXBlX3RyYWl0cwppbmRleCA3 ZDRkZWIxLi43N2ZjOTRlIDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvaW5j bHVkZS9zdGQvdHlwZV90cmFpdHMKKysrIGIvbGlic3RkYysrLXYzL2luY2x1 ZGUvc3RkL3R5cGVfdHJhaXRzCkBAIC0xMTA2LDcgKzExMDYsOSBAQCBfR0xJ QkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgogICAgIDogcHVibGljIF9f Ym9vbF9jb25zdGFudDxfX2lzX2Fzc2lnbmFibGUoX1RwLCBfVXApPgogICAg IHsKICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjpfX2lzX2NvbXBsZXRlX29y X3VuYm91bmRlZChfX3R5cGVfaWRlbnRpdHk8X1RwPnt9KSwKLQkidGVtcGxh dGUgYXJndW1lbnQgbXVzdCBiZSBhIGNvbXBsZXRlIGNsYXNzIG9yIGFuIHVu Ym91bmRlZCBhcnJheSIpOworCSJmaXJzdCB0ZW1wbGF0ZSBhcmd1bWVudCBt dXN0IGJlIGEgY29tcGxldGUgY2xhc3Mgb3IgYW4gdW5ib3VuZGVkIGFycmF5 Iik7CisgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6X19pc19jb21wbGV0ZV9v cl91bmJvdW5kZWQoX190eXBlX2lkZW50aXR5PF9VcD57fSksCisJInNlY29u ZCB0ZW1wbGF0ZSBhcmd1bWVudCBtdXN0IGJlIGEgY29tcGxldGUgY2xhc3Mg b3IgYW4gdW5ib3VuZGVkIGFycmF5Iik7CiAgICAgfTsKIAogICB0ZW1wbGF0 ZTx0eXBlbmFtZSBfVHAsIGJvb2wgPSBfX2lzX3JlZmVyZW5jZWFibGU8X1Rw Pjo6dmFsdWU+CkBAIC0xMTY4LDcgKzExNzAsOSBAQCBfR0xJQkNYWF9CRUdJ Tl9OQU1FU1BBQ0VfVkVSU0lPTgogICAgIDogcHVibGljIF9faXNfbm90aHJv d19hc3NpZ25hYmxlX2ltcGw8X1RwLCBfVXA+CiAgICAgewogICAgICAgc3Rh dGljX2Fzc2VydChzdGQ6Ol9faXNfY29tcGxldGVfb3JfdW5ib3VuZGVkKF9f dHlwZV9pZGVudGl0eTxfVHA+e30pLAotCSJ0ZW1wbGF0ZSBhcmd1bWVudCBt dXN0IGJlIGEgY29tcGxldGUgY2xhc3Mgb3IgYW4gdW5ib3VuZGVkIGFycmF5 Iik7CisJImZpcnN0IHRlbXBsYXRlIGFyZ3VtZW50IG11c3QgYmUgYSBjb21w bGV0ZSBjbGFzcyBvciBhbiB1bmJvdW5kZWQgYXJyYXkiKTsKKyAgICAgIHN0 YXRpY19hc3NlcnQoc3RkOjpfX2lzX2NvbXBsZXRlX29yX3VuYm91bmRlZChf X3R5cGVfaWRlbnRpdHk8X1VwPnt9KSwKKwkic2Vjb25kIHRlbXBsYXRlIGFy Z3VtZW50IG11c3QgYmUgYSBjb21wbGV0ZSBjbGFzcyBvciBhbiB1bmJvdW5k ZWQgYXJyYXkiKTsKICAgICB9OwogCiAgIHRlbXBsYXRlPHR5cGVuYW1lIF9U cCwgYm9vbCA9IF9faXNfcmVmZXJlbmNlYWJsZTxfVHA+Ojp2YWx1ZT4KQEAg LTEzMTMsNyArMTMxNyw5IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9W RVJTSU9OCiAgICAgOiBwdWJsaWMgX19ib29sX2NvbnN0YW50PF9faXNfdHJp dmlhbGx5X2Fzc2lnbmFibGUoX1RwLCBfVXApPgogICAgIHsKICAgICAgIHN0 YXRpY19hc3NlcnQoc3RkOjpfX2lzX2NvbXBsZXRlX29yX3VuYm91bmRlZChf X3R5cGVfaWRlbnRpdHk8X1RwPnt9KSwKLQkidGVtcGxhdGUgYXJndW1lbnQg bXVzdCBiZSBhIGNvbXBsZXRlIGNsYXNzIG9yIGFuIHVuYm91bmRlZCBhcnJh eSIpOworCSJmaXJzdCB0ZW1wbGF0ZSBhcmd1bWVudCBtdXN0IGJlIGEgY29t cGxldGUgY2xhc3Mgb3IgYW4gdW5ib3VuZGVkIGFycmF5Iik7CisgICAgICBz dGF0aWNfYXNzZXJ0KHN0ZDo6X19pc19jb21wbGV0ZV9vcl91bmJvdW5kZWQo X190eXBlX2lkZW50aXR5PF9VcD57fSksCisJInNlY29uZCB0ZW1wbGF0ZSBh cmd1bWVudCBtdXN0IGJlIGEgY29tcGxldGUgY2xhc3Mgb3IgYW4gdW5ib3Vu ZGVkIGFycmF5Iik7CiAgICAgfTsKIAogICB0ZW1wbGF0ZTx0eXBlbmFtZSBf VHAsIGJvb2wgPSBfX2lzX3JlZmVyZW5jZWFibGU8X1RwPjo6dmFsdWU+CkBA IC0xNDc0LDcgKzE0ODAsMTIgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNF X1ZFUlNJT04KICAgdGVtcGxhdGU8dHlwZW5hbWUgX0Zyb20sIHR5cGVuYW1l IF9Ubz4KICAgICBzdHJ1Y3QgaXNfY29udmVydGlibGUKICAgICA6IHB1Ymxp YyBfX2lzX2NvbnZlcnRpYmxlX2hlbHBlcjxfRnJvbSwgX1RvPjo6dHlwZQot ICAgIHsgfTsKKyAgICB7CisgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6X19p c19jb21wbGV0ZV9vcl91bmJvdW5kZWQoX190eXBlX2lkZW50aXR5PF9Gcm9t Pnt9KSwKKwkiZmlyc3QgdGVtcGxhdGUgYXJndW1lbnQgbXVzdCBiZSBhIGNv bXBsZXRlIGNsYXNzIG9yIGFuIHVuYm91bmRlZCBhcnJheSIpOworICAgICAg c3RhdGljX2Fzc2VydChzdGQ6Ol9faXNfY29tcGxldGVfb3JfdW5ib3VuZGVk KF9fdHlwZV9pZGVudGl0eTxfVG8+e30pLAorCSJzZWNvbmQgdGVtcGxhdGUg YXJndW1lbnQgbXVzdCBiZSBhIGNvbXBsZXRlIGNsYXNzIG9yIGFuIHVuYm91 bmRlZCBhcnJheSIpOworICAgIH07CiAKICAgdGVtcGxhdGU8dHlwZW5hbWUg X0Zyb20sIHR5cGVuYW1lIF9UbywKICAgICAgICAgICAgYm9vbCA9IF9fb3Jf PGlzX3ZvaWQ8X0Zyb20+LCBpc19mdW5jdGlvbjxfVG8+LApAQCAtMTUxNiw3 ICsxNTI3LDEyIEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9O CiAgIHRlbXBsYXRlPHR5cGVuYW1lIF9Gcm9tLCB0eXBlbmFtZSBfVG8+CiAg ICAgc3RydWN0IGlzX25vdGhyb3dfY29udmVydGlibGUKICAgICA6IHB1Ymxp YyBfX2lzX250X2NvbnZlcnRpYmxlX2hlbHBlcjxfRnJvbSwgX1RvPjo6dHlw ZQotICAgIHsgfTsKKyAgICB7CisgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6 X19pc19jb21wbGV0ZV9vcl91bmJvdW5kZWQoX190eXBlX2lkZW50aXR5PF9G cm9tPnt9KSwKKwkiX0Zyb20gbXVzdCBiZSBhIGNvbXBsZXRlIGNsYXNzIG9y IGFuIHVuYm91bmRlZCBhcnJheSIpOworICAgICAgc3RhdGljX2Fzc2VydChz dGQ6Ol9faXNfY29tcGxldGVfb3JfdW5ib3VuZGVkKF9fdHlwZV9pZGVudGl0 eTxfVG8+e30pLAorCSJfVG8gbXVzdCBiZSBhIGNvbXBsZXRlIGNsYXNzIG9y IGFuIHVuYm91bmRlZCBhcnJheSIpOworfTsKIAogICAvLy8gaXNfbm90aHJv d19jb252ZXJ0aWJsZV92CiAgIHRlbXBsYXRlPHR5cGVuYW1lIF9Gcm9tLCB0 eXBlbmFtZSBfVG8+CkBAIC0yODEwLDEzICsyODI2LDIzIEBAIF9HTElCQ1hY X0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAgIHRlbXBsYXRlPHR5cGVuYW1l IF9UcCwgdHlwZW5hbWUgX1VwPgogICAgIHN0cnVjdCBpc19zd2FwcGFibGVf d2l0aAogICAgIDogcHVibGljIF9faXNfc3dhcHBhYmxlX3dpdGhfaW1wbDxf VHAsIF9VcD46OnR5cGUKLSAgICB7IH07CisgICAgeworICAgICAgc3RhdGlj X2Fzc2VydChzdGQ6Ol9faXNfY29tcGxldGVfb3JfdW5ib3VuZGVkKF9fdHlw ZV9pZGVudGl0eTxfVHA+e30pLAorCSJmaXJzdCB0ZW1wbGF0ZSBhcmd1bWVu dCBtdXN0IGJlIGEgY29tcGxldGUgY2xhc3Mgb3IgYW4gdW5ib3VuZGVkIGFy cmF5Iik7CisgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6X19pc19jb21wbGV0 ZV9vcl91bmJvdW5kZWQoX190eXBlX2lkZW50aXR5PF9VcD57fSksCisJInNl Y29uZCB0ZW1wbGF0ZSBhcmd1bWVudCBtdXN0IGJlIGEgY29tcGxldGUgY2xh c3Mgb3IgYW4gdW5ib3VuZGVkIGFycmF5Iik7CisgICAgfTsKIAogICAvLy8g aXNfbm90aHJvd19zd2FwcGFibGVfd2l0aAogICB0ZW1wbGF0ZTx0eXBlbmFt ZSBfVHAsIHR5cGVuYW1lIF9VcD4KICAgICBzdHJ1Y3QgaXNfbm90aHJvd19z d2FwcGFibGVfd2l0aAogICAgIDogcHVibGljIF9faXNfbm90aHJvd19zd2Fw cGFibGVfd2l0aF9pbXBsPF9UcCwgX1VwPjo6dHlwZQotICAgIHsgfTsKKyAg ICB7CisgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6X19pc19jb21wbGV0ZV9v cl91bmJvdW5kZWQoX190eXBlX2lkZW50aXR5PF9UcD57fSksCisJImZpcnN0 IHRlbXBsYXRlIGFyZ3VtZW50IG11c3QgYmUgYSBjb21wbGV0ZSBjbGFzcyBv ciBhbiB1bmJvdW5kZWQgYXJyYXkiKTsKKyAgICAgIHN0YXRpY19hc3NlcnQo c3RkOjpfX2lzX2NvbXBsZXRlX29yX3VuYm91bmRlZChfX3R5cGVfaWRlbnRp dHk8X1VwPnt9KSwKKwkic2Vjb25kIHRlbXBsYXRlIGFyZ3VtZW50IG11c3Qg YmUgYSBjb21wbGV0ZSBjbGFzcyBvciBhbiB1bmJvdW5kZWQgYXJyYXkiKTsK KyAgICB9OwogCiAjaWYgX19jcGx1c3BsdXMgPj0gMjAxNDAyTAogICAvLy8g aXNfc3dhcHBhYmxlX3dpdGhfdgpAQCAtMjgzOSw3ICsyODY1LDggQEAgX0dM SUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KIAogICB0ZW1wbGF0ZTx0 eXBlbmFtZSBfUmVzdWx0LCB0eXBlbmFtZSBfUmV0PgogICAgIHN0cnVjdCBf X2lzX2ludm9jYWJsZV9pbXBsPF9SZXN1bHQsIF9SZXQsIF9fdm9pZF90PHR5 cGVuYW1lIF9SZXN1bHQ6OnR5cGU+PgotICAgIDogX19vcl88aXNfdm9pZDxf UmV0PiwgaXNfY29udmVydGlibGU8dHlwZW5hbWUgX1Jlc3VsdDo6dHlwZSwg X1JldD4+Ojp0eXBlCisgICAgOiBfX29yXzxpc192b2lkPF9SZXQ+LAorCSAg ICBfX2lzX2NvbnZlcnRpYmxlX2hlbHBlcjx0eXBlbmFtZSBfUmVzdWx0Ojp0 eXBlLCBfUmV0Pj46OnR5cGUKICAgICB7IH07CiAKICAgdGVtcGxhdGU8dHlw ZW5hbWUgX0ZuLCB0eXBlbmFtZS4uLiBfQXJnVHlwZXM+CkBAIC0yOTE2LDcg KzI5NDMsMTAgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04K ICAgdGVtcGxhdGU8dHlwZW5hbWUgX0Z1bmN0b3IsIHR5cGVuYW1lLi4uIF9B cmdUeXBlcz4KICAgICBzdHJ1Y3QgaW52b2tlX3Jlc3VsdAogICAgIDogcHVi bGljIF9faW52b2tlX3Jlc3VsdDxfRnVuY3RvciwgX0FyZ1R5cGVzLi4uPgot ICAgIHsgfTsKKyAgICB7CisgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6X19p c19jb21wbGV0ZV9vcl91bmJvdW5kZWQoX190eXBlX2lkZW50aXR5PF9GdW5j dG9yPnt9KSwKKwkidGVtcGxhdGUgYXJndW1lbnQgbXVzdCBiZSBhIGNvbXBs ZXRlIGNsYXNzIG9yIGFuIHVuYm91bmRlZCBhcnJheSIpOworICAgIH07CiAK ICAgLy8vIHN0ZDo6aW52b2tlX3Jlc3VsdF90CiAgIHRlbXBsYXRlPHR5cGVu YW1lIF9GbiwgdHlwZW5hbWUuLi4gX0FyZ3M+CkBAIC0yOTY1LDcgKzI5OTUs MTAgQEAgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KICAgICBz dHJ1Y3QgaXNfbm90aHJvd19pbnZvY2FibGVfcgogICAgIDogX19hbmRfPF9f aXNfbnRfaW52b2NhYmxlX2ltcGw8X19pbnZva2VfcmVzdWx0PF9GbiwgX0Fy Z1R5cGVzLi4uPiwgX1JldD4sCiAgICAgICAgICAgICAgX19jYWxsX2lzX25v dGhyb3dfPF9GbiwgX0FyZ1R5cGVzLi4uPj46OnR5cGUKLSAgICB7IH07Cisg ICAgeworICAgICAgc3RhdGljX2Fzc2VydChzdGQ6Ol9faXNfY29tcGxldGVf b3JfdW5ib3VuZGVkKF9fdHlwZV9pZGVudGl0eTxfRm4+e30pLAorCSJfRm4g bXVzdCBiZSBhIGNvbXBsZXRlIGNsYXNzIG9yIGFuIHVuYm91bmRlZCBhcnJh eSIpOworICAgIH07CiAKICAgLy8vIHN0ZDo6aXNfaW52b2NhYmxlX3YKICAg dGVtcGxhdGU8dHlwZW5hbWUgX0ZuLCB0eXBlbmFtZS4uLiBfQXJncz4KZGlm ZiAtLWdpdCBhL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjBfdXRpbC9pbnZv a2VfcmVzdWx0L2luY29tcGxldGVfbmVnLmNjIGIvbGlic3RkYysrLXYzL3Rl c3RzdWl0ZS8yMF91dGlsL2ludm9rZV9yZXN1bHQvaW5jb21wbGV0ZV9uZWcu Y2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWIwNjQ3 OQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUv MjBfdXRpbC9pbnZva2VfcmVzdWx0L2luY29tcGxldGVfbmVnLmNjCkBAIC0w LDAgKzEsMzAgQEAKKy8vIHsgZGctZG8gY29tcGlsZSB7IHRhcmdldCBjKysx NyB9IH0KKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTkgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisvLworLy8gVGhpcyBmaWxlIGlzIHBhcnQg b2YgdGhlIEdOVSBJU08gQysrIExpYnJhcnkuICBUaGlzIGxpYnJhcnkgaXMg ZnJlZQorLy8gc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlCisvLyB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZQor Ly8gRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAz LCBvciAoYXQgeW91ciBvcHRpb24pCisvLyBhbnkgbGF0ZXIgdmVyc2lvbi4K Ky8vCisvLyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKy8vIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCisvLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisvLyBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorLy8KKy8vIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGFsb25nCisvLyB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl IHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQorLy8gPGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisvLyB7IGRnLWVycm9yICJtdXN0 IGJlIGEgY29tcGxldGUgY2xhc3MiICIiIHsgdGFyZ2V0ICotKi0qIH0gMCB9 CisKKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKworY2xhc3MgWDsKKwordm9p ZCB0ZXN0MDEoKQoreworICBzdGQ6Omludm9rZV9yZXN1bHQ8WCwgaW50Pigp OwkJLy8geyBkZy1lcnJvciAicmVxdWlyZWQgZnJvbSBoZXJlIiB9CisgIHN0 ZDo6aW52b2tlX3Jlc3VsdDxYPigpOwkJLy8geyBkZy1lcnJvciAicmVxdWly ZWQgZnJvbSBoZXJlIiB9Cit9CmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMv dGVzdHN1aXRlLzIwX3V0aWwvaXNfYXNzaWduYWJsZS9pbmNvbXBsZXRlX25l Zy5jYyBiL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjBfdXRpbC9pc19hc3Np Z25hYmxlL2luY29tcGxldGVfbmVnLmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmYzMmEwODcKLS0tIC9kZXYvbnVsbAorKysgYi9s aWJzdGRjKystdjMvdGVzdHN1aXRlLzIwX3V0aWwvaXNfYXNzaWduYWJsZS9p bmNvbXBsZXRlX25lZy5jYwpAQCAtMCwwICsxLDMxIEBACisvLyB7IGRnLWRv IGNvbXBpbGUgeyB0YXJnZXQgYysrMTEgfSB9CisvLworLy8gQ29weXJpZ2h0 IChDKSAyMDE5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorLy8K Ky8vIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgSVNPIEMrKyBMaWJy YXJ5LiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUKKy8vIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRo ZQorLy8gdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieSB0aGUKKy8vIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbjsgZWl0aGVyIHZlcnNpb24gMywgb3IgKGF0IHlvdXIgb3B0aW9uKQor Ly8gYW55IGxhdGVyIHZlcnNpb24uCisvLworLy8gVGhpcyBsaWJyYXJ5IGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisvLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorLy8gTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZQorLy8gR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKy8vCisvLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5 IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZworLy8g d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElm IG5vdCBzZWUKKy8vIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4K KworLy8geyBkZy1lcnJvciAibXVzdCBiZSBhIGNvbXBsZXRlIGNsYXNzIiAi IiB7IHRhcmdldCAqLSotKiB9IDAgfQorCisjaW5jbHVkZSA8dHlwZV90cmFp dHM+CisKK2NsYXNzIFg7CisKK3ZvaWQgdGVzdDAxKCkKK3sKKyAgc3RkOjpp c19hc3NpZ25hYmxlPFgsIGludD4oKTsJCS8vIHsgZGctZXJyb3IgInJlcXVp cmVkIGZyb20gaGVyZSIgfQorICBzdGQ6OmlzX2Fzc2lnbmFibGU8aW50LCBY PigpOwkJLy8geyBkZy1lcnJvciAicmVxdWlyZWQgZnJvbSBoZXJlIiB9Cisg IHN0ZDo6aXNfYXNzaWduYWJsZTxYLCBYPigpOwkJLy8geyBkZy1lcnJvciAi cmVxdWlyZWQgZnJvbSBoZXJlIiB9Cit9CmRpZmYgLS1naXQgYS9saWJzdGRj KystdjMvdGVzdHN1aXRlLzIwX3V0aWwvaXNfY29udmVydGlibGUvaW5jb21w bGV0ZV9uZWcuY2MgYi9saWJzdGRjKystdjMvdGVzdHN1aXRlLzIwX3V0aWwv aXNfY29udmVydGlibGUvaW5jb21wbGV0ZV9uZWcuY2MKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ZmYjg3OQotLS0gL2Rldi9udWxs CisrKyBiL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjBfdXRpbC9pc19jb252 ZXJ0aWJsZS9pbmNvbXBsZXRlX25lZy5jYwpAQCAtMCwwICsxLDMxIEBACisv LyB7IGRnLWRvIGNvbXBpbGUgeyB0YXJnZXQgYysrMTEgfSB9CisvLworLy8g Q29weXJpZ2h0IChDKSAyMDE5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorLy8KKy8vIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgSVNP IEMrKyBMaWJyYXJ5LiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUKKy8vIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0 IHVuZGVyIHRoZQorLy8gdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKKy8vIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMywgb3IgKGF0IHlvdXIg b3B0aW9uKQorLy8gYW55IGxhdGVyIHZlcnNpb24uCisvLworLy8gVGhpcyBs aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls bCBiZSB1c2VmdWwsCisvLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorLy8gTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LiAgU2VlIHRoZQorLy8gR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKy8vCisvLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBh bG9uZworLy8gd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ SU5HMy4gIElmIG5vdCBzZWUKKy8vIDxodHRwOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4KKworLy8geyBkZy1lcnJvciAibXVzdCBiZSBhIGNvbXBsZXRl IGNsYXNzIiAiIiB7IHRhcmdldCAqLSotKiB9IDAgfQorCisjaW5jbHVkZSA8 dHlwZV90cmFpdHM+CisKK2NsYXNzIFg7CisKK3ZvaWQgdGVzdDAxKCkKK3sK KyAgc3RkOjppc19jb252ZXJ0aWJsZTxYLCBpbnQ+KCk7CS8vIHsgZGctZXJy b3IgInJlcXVpcmVkIGZyb20gaGVyZSIgfQorICBzdGQ6OmlzX2NvbnZlcnRp YmxlPGludCwgWD4oKTsJLy8geyBkZy1lcnJvciAicmVxdWlyZWQgZnJvbSBo ZXJlIiB9CisgIHN0ZDo6aXNfY29udmVydGlibGU8WCwgWD4oKTsJCS8vIHsg ZGctZXJyb3IgInJlcXVpcmVkIGZyb20gaGVyZSIgfQorfQpkaWZmIC0tZ2l0 IGEvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yMF91dGlsL2lzX25vdGhyb3df YXNzaWduYWJsZS9pbmNvbXBsZXRlX25lZy5jYyBiL2xpYnN0ZGMrKy12My90 ZXN0c3VpdGUvMjBfdXRpbC9pc19ub3Rocm93X2Fzc2lnbmFibGUvaW5jb21w bGV0ZV9uZWcuY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uODZiZmZiZQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnN0ZGMrKy12My90 ZXN0c3VpdGUvMjBfdXRpbC9pc19ub3Rocm93X2Fzc2lnbmFibGUvaW5jb21w bGV0ZV9uZWcuY2MKQEAgLTAsMCArMSwzMSBAQAorLy8geyBkZy1kbyBjb21w aWxlIHsgdGFyZ2V0IGMrKzExIH0gfQorLy8KKy8vIENvcHlyaWdodCAoQykg MjAxOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKy8vCisvLyBU aGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIElTTyBDKysgTGlicmFyeS4g IFRoaXMgbGlicmFyeSBpcyBmcmVlCisvLyBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlciB0aGUKKy8v IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkgdGhlCisvLyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247 IGVpdGhlciB2ZXJzaW9uIDMsIG9yIChhdCB5b3VyIG9wdGlvbikKKy8vIGFu eSBsYXRlciB2ZXJzaW9uLgorLy8KKy8vIFRoaXMgbGlicmFyeSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor Ly8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKKy8vIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKy8v IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisvLworLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYWxvbmcKKy8vIHdpdGgg dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qg c2VlCisvLyA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKy8v IHsgZGctZXJyb3IgIm11c3QgYmUgYSBjb21wbGV0ZSBjbGFzcyIgIiIgeyB0 YXJnZXQgKi0qLSogfSAwIH0KKworI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgor CitjbGFzcyBYOworCit2b2lkIHRlc3QwMSgpCit7CisgIHN0ZDo6aXNfbm90 aHJvd19hc3NpZ25hYmxlPFgsIGludD4oKTsJCS8vIHsgZGctZXJyb3IgInJl cXVpcmVkIGZyb20gaGVyZSIgfQorICBzdGQ6OmlzX25vdGhyb3dfYXNzaWdu YWJsZTxpbnQsIFg+KCk7CQkvLyB7IGRnLWVycm9yICJyZXF1aXJlZCBmcm9t IGhlcmUiIH0KKyAgc3RkOjppc19ub3Rocm93X2Fzc2lnbmFibGU8WCwgWD4o KTsJCS8vIHsgZGctZXJyb3IgInJlcXVpcmVkIGZyb20gaGVyZSIgfQorfQpk aWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3Rlc3RzdWl0ZS8yMF91dGlsL2lz X25vdGhyb3dfY29udmVydGlibGUvaW5jb21wbGV0ZV9uZWcuY2MgYi9saWJz dGRjKystdjMvdGVzdHN1aXRlLzIwX3V0aWwvaXNfbm90aHJvd19jb252ZXJ0 aWJsZS9pbmNvbXBsZXRlX25lZy5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5jOTQ0ZDMwCi0tLSAvZGV2L251bGwKKysrIGIvbGli c3RkYysrLXYzL3Rlc3RzdWl0ZS8yMF91dGlsL2lzX25vdGhyb3dfY29udmVy dGlibGUvaW5jb21wbGV0ZV9uZWcuY2MKQEAgLTAsMCArMSwzMiBAQAorLy8g eyBkZy1vcHRpb25zICItc3RkPWdudSsrMmEiIH0KKy8vIHsgZGctZG8gY29t cGlsZSB7IHRhcmdldCBjKysyYSB9IH0KKy8vCisvLyBDb3B5cmlnaHQgKEMp IDIwMTkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisvLworLy8g VGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBJU08gQysrIExpYnJhcnku ICBUaGlzIGxpYnJhcnkgaXMgZnJlZQorLy8gc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlCisv LyB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg cHVibGlzaGVkIGJ5IHRoZQorLy8gRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAzLCBvciAoYXQgeW91ciBvcHRpb24pCisvLyBh bnkgbGF0ZXIgdmVyc2lvbi4KKy8vCisvLyBUaGlzIGxpYnJhcnkgaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK Ky8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisvLyBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisv LyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorLy8KKy8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nCisvLyB3aXRo IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90 IHNlZQorLy8gPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisv LyB7IGRnLWVycm9yICJtdXN0IGJlIGEgY29tcGxldGUgY2xhc3MiICIiIHsg dGFyZ2V0ICotKi0qIH0gMCB9CisKKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4K KworY2xhc3MgWDsKKwordm9pZCB0ZXN0MDEoKQoreworICBzdGQ6OmlzX25v dGhyb3dfY29udmVydGlibGU8WCwgaW50PigpOwkvLyB7IGRnLWVycm9yICJy ZXF1aXJlZCBmcm9tIGhlcmUiIH0KKyAgc3RkOjppc19ub3Rocm93X2NvbnZl cnRpYmxlPGludCwgWD4oKTsJLy8geyBkZy1lcnJvciAicmVxdWlyZWQgZnJv bSBoZXJlIiB9CisgIHN0ZDo6aXNfbm90aHJvd19jb252ZXJ0aWJsZTxYLCBY PigpOwkJLy8geyBkZy1lcnJvciAicmVxdWlyZWQgZnJvbSBoZXJlIiB9Cit9 CmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvdGVzdHN1aXRlLzIwX3V0aWwv aXNfbm90aHJvd19zd2FwcGFibGUvaW5jb21wbGV0ZV9uZWcuY2MgYi9saWJz dGRjKystdjMvdGVzdHN1aXRlLzIwX3V0aWwvaXNfbm90aHJvd19zd2FwcGFi bGUvaW5jb21wbGV0ZV9uZWcuY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uNWRkYjZiNQotLS0gL2Rldi9udWxsCisrKyBiL2xpYnN0 ZGMrKy12My90ZXN0c3VpdGUvMjBfdXRpbC9pc19ub3Rocm93X3N3YXBwYWJs ZS9pbmNvbXBsZXRlX25lZy5jYwpAQCAtMCwwICsxLDI5IEBACisvLyB7IGRn LWRvIGNvbXBpbGUgeyB0YXJnZXQgYysrMTcgfSB9CisvLworLy8gQ29weXJp Z2h0IChDKSAyMDE5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgor Ly8KKy8vIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgSVNPIEMrKyBM aWJyYXJ5LiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUKKy8vIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVy IHRoZQorLy8gdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKKy8vIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMywgb3IgKGF0IHlvdXIgb3B0aW9u KQorLy8gYW55IGxhdGVyIHZlcnNpb24uCisvLworLy8gVGhpcyBsaWJyYXJ5 IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCisvLyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorLy8gTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQorLy8gR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4KKy8vCisvLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZwor Ly8gd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4g IElmIG5vdCBzZWUKKy8vIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4KKworLy8geyBkZy1lcnJvciAibXVzdCBiZSBhIGNvbXBsZXRlIGNsYXNz IiAiIiB7IHRhcmdldCAqLSotKiB9IDAgfQorCisjaW5jbHVkZSA8dHlwZV90 cmFpdHM+CisKK2NsYXNzIFg7CisKK3ZvaWQgdGVzdDAxKCkKK3sKKyAgc3Rk Ojppc19ub3Rocm93X3N3YXBwYWJsZTxYPigpOwkvLyB7IGRnLWVycm9yICJy ZXF1aXJlZCBmcm9tIGhlcmUiIH0KK30KZGlmZiAtLWdpdCBhL2xpYnN0ZGMr Ky12My90ZXN0c3VpdGUvMjBfdXRpbC9pc19ub3Rocm93X3N3YXBwYWJsZV93 aXRoL2luY29tcGxldGVfbmVnLmNjIGIvbGlic3RkYysrLXYzL3Rlc3RzdWl0 ZS8yMF91dGlsL2lzX25vdGhyb3dfc3dhcHBhYmxlX3dpdGgvaW5jb21wbGV0 ZV9uZWcuY2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u NWEwYmNiYgotLS0gL2Rldi9udWxsCisrKyBiL2xpYnN0ZGMrKy12My90ZXN0 c3VpdGUvMjBfdXRpbC9pc19ub3Rocm93X3N3YXBwYWJsZV93aXRoL2luY29t cGxldGVfbmVnLmNjCkBAIC0wLDAgKzEsMzEgQEAKKy8vIHsgZGctZG8gY29t cGlsZSB7IHRhcmdldCBjKysxNyB9IH0KKy8vCisvLyBDb3B5cmlnaHQgKEMp IDIwMTkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisvLworLy8g VGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBJU08gQysrIExpYnJhcnku ICBUaGlzIGxpYnJhcnkgaXMgZnJlZQorLy8gc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlCisv LyB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg cHVibGlzaGVkIGJ5IHRoZQorLy8gRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAzLCBvciAoYXQgeW91ciBvcHRpb24pCisvLyBh bnkgbGF0ZXIgdmVyc2lvbi4KKy8vCisvLyBUaGlzIGxpYnJhcnkgaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK Ky8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisvLyBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisv LyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorLy8KKy8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nCisvLyB3aXRo IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90 IHNlZQorLy8gPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisv LyB7IGRnLWVycm9yICJtdXN0IGJlIGEgY29tcGxldGUgY2xhc3MiICIiIHsg dGFyZ2V0ICotKi0qIH0gMCB9CisKKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4K KworY2xhc3MgWDsKKwordm9pZCB0ZXN0MDEoKQoreworICBzdGQ6OmlzX25v dGhyb3dfc3dhcHBhYmxlX3dpdGg8WCwgaW50PigpOwkvLyB7IGRnLWVycm9y ICJyZXF1aXJlZCBmcm9tIGhlcmUiIH0KKyAgc3RkOjppc19ub3Rocm93X3N3 YXBwYWJsZV93aXRoPGludCwgWD4oKTsJLy8geyBkZy1lcnJvciAicmVxdWly ZWQgZnJvbSBoZXJlIiB9CisgIHN0ZDo6aXNfbm90aHJvd19zd2FwcGFibGVf d2l0aDxYLCBYPigpOwkvLyB7IGRnLWVycm9yICJyZXF1aXJlZCBmcm9tIGhl cmUiIH0KK30KZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUv MjBfdXRpbC9pc19zd2FwcGFibGUvaW5jb21wbGV0ZV9uZWcuY2MgYi9saWJz dGRjKystdjMvdGVzdHN1aXRlLzIwX3V0aWwvaXNfc3dhcHBhYmxlL2luY29t cGxldGVfbmVnLmNjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmM3ZWMzOTkKLS0tIC9kZXYvbnVsbAorKysgYi9saWJzdGRjKystdjMv dGVzdHN1aXRlLzIwX3V0aWwvaXNfc3dhcHBhYmxlL2luY29tcGxldGVfbmVn LmNjCkBAIC0wLDAgKzEsMjkgQEAKKy8vIHsgZGctZG8gY29tcGlsZSB7IHRh cmdldCBjKysxNyB9IH0KKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTkgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisvLworLy8gVGhpcyBmaWxl IGlzIHBhcnQgb2YgdGhlIEdOVSBJU08gQysrIExpYnJhcnkuICBUaGlzIGxp YnJhcnkgaXMgZnJlZQorLy8gc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlCisvLyB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5IHRoZQorLy8gRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg dmVyc2lvbiAzLCBvciAoYXQgeW91ciBvcHRpb24pCisvLyBhbnkgbGF0ZXIg dmVyc2lvbi4KKy8vCisvLyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKy8vIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCisvLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisvLyBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorLy8KKy8v IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nCisvLyB3aXRoIHRoaXMgbGli cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQorLy8g PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisvLyB7IGRnLWVy cm9yICJtdXN0IGJlIGEgY29tcGxldGUgY2xhc3MiICIiIHsgdGFyZ2V0ICot Ki0qIH0gMCB9CisKKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKworY2xhc3Mg WDsKKwordm9pZCB0ZXN0MDEoKQoreworICBzdGQ6OmlzX3N3YXBwYWJsZTxY PigpOwkvLyB7IGRnLWVycm9yICJyZXF1aXJlZCBmcm9tIGhlcmUiIH0KK30K ZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My90ZXN0c3VpdGUvMjBfdXRpbC9p c19zd2FwcGFibGVfd2l0aC9pbmNvbXBsZXRlX25lZy5jYyBiL2xpYnN0ZGMr Ky12My90ZXN0c3VpdGUvMjBfdXRpbC9pc19zd2FwcGFibGVfd2l0aC9pbmNv bXBsZXRlX25lZy5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi41ZmJkM2UwCi0tLSAvZGV2L251bGwKKysrIGIvbGlic3RkYysrLXYz L3Rlc3RzdWl0ZS8yMF91dGlsL2lzX3N3YXBwYWJsZV93aXRoL2luY29tcGxl dGVfbmVnLmNjCkBAIC0wLDAgKzEsMzEgQEAKKy8vIHsgZGctZG8gY29tcGls ZSB7IHRhcmdldCBjKysxNyB9IH0KKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIw MTkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisvLworLy8gVGhp cyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBJU08gQysrIExpYnJhcnkuICBU aGlzIGxpYnJhcnkgaXMgZnJlZQorLy8gc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlCisvLyB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5IHRoZQorLy8gRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAzLCBvciAoYXQgeW91ciBvcHRpb24pCisvLyBhbnkg bGF0ZXIgdmVyc2lvbi4KKy8vCisvLyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKy8v IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCisvLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisvLyBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor Ly8KKy8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nCisvLyB3aXRoIHRo aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNl ZQorLy8gPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisvLyB7 IGRnLWVycm9yICJtdXN0IGJlIGEgY29tcGxldGUgY2xhc3MiICIiIHsgdGFy Z2V0ICotKi0qIH0gMCB9CisKKyNpbmNsdWRlIDx0eXBlX3RyYWl0cz4KKwor Y2xhc3MgWDsKKwordm9pZCB0ZXN0MDEoKQoreworICBzdGQ6OmlzX3N3YXBw YWJsZV93aXRoPFgsIGludD4oKTsJLy8geyBkZy1lcnJvciAicmVxdWlyZWQg ZnJvbSBoZXJlIiB9CisgIHN0ZDo6aXNfc3dhcHBhYmxlX3dpdGg8aW50LCBY PigpOwkvLyB7IGRnLWVycm9yICJyZXF1aXJlZCBmcm9tIGhlcmUiIH0KKyAg c3RkOjppc19zd2FwcGFibGVfd2l0aDxYLCBYPigpOwkvLyB7IGRnLWVycm9y ICJyZXF1aXJlZCBmcm9tIGhlcmUiIH0KK30KZGlmZiAtLWdpdCBhL2xpYnN0 ZGMrKy12My90ZXN0c3VpdGUvMjBfdXRpbC9pc190cml2aWFsbHlfYXNzaWdu YWJsZS9pbmNvbXBsZXRlX25lZy5jYyBiL2xpYnN0ZGMrKy12My90ZXN0c3Vp dGUvMjBfdXRpbC9pc190cml2aWFsbHlfYXNzaWduYWJsZS9pbmNvbXBsZXRl X25lZy5jYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5h OTMyODVjCi0tLSAvZGV2L251bGwKKysrIGIvbGlic3RkYysrLXYzL3Rlc3Rz dWl0ZS8yMF91dGlsL2lzX3RyaXZpYWxseV9hc3NpZ25hYmxlL2luY29tcGxl dGVfbmVnLmNjCkBAIC0wLDAgKzEsMzMgQEAKKy8vIHsgZGctZG8gY29tcGls ZSB7IHRhcmdldCBjKysxMSB9IH0KKy8vIHsgZGctcHJ1bmUtb3V0cHV0ICJp bnZhbGlkIHVzZSBvZiBpbmNvbXBsZXRlIHR5cGUiIH0KKy8vIHsgZGctcHJ1 bmUtb3V0cHV0ICJtdXN0IGJlIGEgY29tcGxldGUiIH0KKy8vCisvLyBDb3B5 cmlnaHQgKEMpIDIwMTkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu CisvLworLy8gVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBJU08gQysr IExpYnJhcnkuICBUaGlzIGxpYnJhcnkgaXMgZnJlZQorLy8gc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5k ZXIgdGhlCisvLyB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZQorLy8gRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzLCBvciAoYXQgeW91ciBvcHRp b24pCisvLyBhbnkgbGF0ZXIgdmVyc2lvbi4KKy8vCisvLyBUaGlzIGxpYnJh cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKKy8vIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisvLyBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlCisvLyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorLy8KKy8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25n CisvLyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcz LiAgSWYgbm90IHNlZQorLy8gPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNl cy8+LgorCisvLyB7IGRnLWVycm9yICJtdXN0IGJlIGEgY29tcGxldGUgY2xh c3MiICIiIHsgdGFyZ2V0ICotKi0qIH0gMCB9CisKKyNpbmNsdWRlIDx0eXBl X3RyYWl0cz4KKworY2xhc3MgWDsKKwordm9pZCB0ZXN0MDEoKQoreworICBz dGQ6OmlzX3RyaXZpYWxseV9hc3NpZ25hYmxlPFgsIGludD4oKTsJLy8geyBk Zy1lcnJvciAicmVxdWlyZWQgZnJvbSBoZXJlIiB9CisgIHN0ZDo6aXNfdHJp dmlhbGx5X2Fzc2lnbmFibGU8aW50LCBYPigpOwkvLyB7IGRnLWVycm9yICJy ZXF1aXJlZCBmcm9tIGhlcmUiIH0KKyAgc3RkOjppc190cml2aWFsbHlfYXNz aWduYWJsZTxYLCBYPigpOwkJLy8geyBkZy1lcnJvciAicmVxdWlyZWQgZnJv bSBoZXJlIiB9Cit9Cg== --0000000000008fa4e2058bc4f8e2--