From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa2.mentor.iphmx.com (esa2.mentor.iphmx.com [68.232.141.98]) by sourceware.org (Postfix) with ESMTPS id EB6D338582A7; Mon, 4 Jul 2022 14:10:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org EB6D338582A7 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="5.92,243,1650960000"; d="diff'?scan'208";a="78270909" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa2.mentor.iphmx.com with ESMTP; 04 Jul 2022 06:10:08 -0800 IronPort-SDR: rDD3pZWLbodBeX3G3W10fkDTi03SMclq2F9ZFQUCgR3lA3EKWLoBzh07WsHXGRnF2QnTACoAB5 q9pui4XVUMRtL7ZyGxbX/oOPYpklSYWZ7JygzTvXnMdioxwKWbtJuVhdypBJwbRAehDeE/umDO Ik+LoiNk9EpOg1Wrl0DBPLlhL+aY9HZniPwRr9FRwkztPY+rbfIEnAVyBinJWTi53cA0NwEt9s Oyv9vho57Yhewzw6vgKYP/P4FRiHA40ek/m50xYrgSmU7q18TGqmiDmLLwMnUYD1jM9VYDNRfZ 0+Q= Content-Type: multipart/mixed; boundary="------------q03KZeaIp4iPvkw0BDzYkuI7" Message-ID: <00106b18-d0f4-d449-73de-17831af2006a@codesourcery.com> Date: Mon, 4 Jul 2022 16:10:03 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Content-Language: en-US To: gcc-patches , fortran , Jakub Jelinek From: Tobias Burnus Subject: [Patch] OpenMP/Fortran: Add support for OpenMP 5.2 linear clause syntax X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-02.mgc.mentorg.com (139.181.222.2) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, 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 X-BeenThere: fortran@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Fortran mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Jul 2022 14:10:13 -0000 --------------q03KZeaIp4iPvkw0BDzYkuI7 Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable This patch adds support for the OpenMP 5.2 syntax for the linear clause, following the C/C++ patch. The testcases are modified versions from the C/C++ ones, plus one added one for duplicated modifiers. At least to me it is not quite clear when linear ( var : ref) refers to a variable 'ref' and when to the linear-modifier 'ref'; the spec does not seem to be very clear about it. I made an attempt, based on the C/C++ code =E2=80=93 but I am not positive I handle it correctly. Tested on x86-64-gnu-linux. OK? Or are there comments? Tobias ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstra=C3=9Fe 201= , 80634 M=C3=BCnchen; Gesellschaft mit beschr=C3=A4nkter Haftung; Gesch=C3= =A4ftsf=C3=BChrer: Thomas Heurung, Frank Th=C3=BCrauf; Sitz der Gesellschaf= t: M=C3=BCnchen; Registergericht M=C3=BCnchen, HRB 106955 --------------q03KZeaIp4iPvkw0BDzYkuI7 Content-Type: text/x-patch; charset="UTF-8"; name="linear.diff" Content-Disposition: attachment; filename="linear.diff" Content-Transfer-Encoding: base64 T3Blbk1QL0ZvcnRyYW46IEFkZCBzdXBwb3J0IGZvciBPcGVuTVAgNS4yIGxpbmVhciBjbGF1 c2Ugc3ludGF4CgpGb3J0cmFuIHBhcnQgdG8gQy9DKysKY29tbWl0IHIxMy0xMDAyLWcwM2I3 MTQwNjMyM2RkYzA2NWIxZDc4MzdkOGI0M2IxN2U0YjA0OGI1CgpnY2MvZm9ydHJhbi9DaGFu Z2VMb2c6CgoJKiBnZm9ydHJhbi5oIChnZmNfb21wX25hbWVsaXN0KTogVXBkYXRlIGJ5IGNy ZWF0aW5nICdsaW5lYXInIHN0cnVjdCwKCW1vdmUgJ2xpbmVhcl9vcCcgYXMgJ29wJyB0byBp ZCBhbmQgYWRkICdvbGRfbW9kaWZpZXInIHRvIGl0LgoJKiBkdW1wLXBhcnNlLXRyZWUuY2Mg KHNob3dfb21wX25hbWVsaXN0KTogVXBkYXRlIGFjY29yZGluZ2x5LgoJKiBtb2R1bGUuY2Mg KG1pb19vbXBfZGVjbGFyZV9zaW1kKTogTGlrZXdpc2UuCgkqIHRyYW5zLW9wZW5tcC5jYyAo Z2ZjX3RyYW5zX29tcF9jbGF1c2VzKTogTGlrZXdpc2UuCgkqIG9wZW5tcC5jYyAocmVzb2x2 ZV9vbXBfY2xhdXNlcyk6IExpa2V3aXNlOyBhY2NlcHQgbmV3LXN0eWxlCgkndmFsJyBtb2Rp ZmllciB3aXRoIGRvL3NpbWQuCgkoZ2ZjX21hdGNoX29tcF9jbGF1c2VzKTogSGFuZGxlIE9w ZW5NUCA1LjIgbGluZWFyIGNsYXVzZSBzeW50YXguCgpsaWJnb21wL0NoYW5nZUxvZzoKCgkq IGxpYmdvbXAudGV4aSAoT3Blbk1QIDUuMik6IE1hcmsgbGluZWFyLWNsYXVzZSBjaGFuZ2Ug YXMgJ1knLgoKZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CgoJKiBnZm9ydHJhbi5kZy9nb21w L2xpbmVhci0yLmY5MDogTmV3IHRlc3QuCgkqIGdmb3J0cmFuLmRnL2dvbXAvbGluZWFyLTMu ZjkwOiBOZXcgdGVzdC4KCSogZ2ZvcnRyYW4uZGcvZ29tcC9saW5lYXItNC5mOTA6IE5ldyB0 ZXN0LgoJKiBnZm9ydHJhbi5kZy9nb21wL2xpbmVhci01LmY5MDogTmV3IHRlc3QuCgkqIGdm b3J0cmFuLmRnL2dvbXAvbGluZWFyLTYuZjkwOiBOZXcgdGVzdC4KCSogZ2ZvcnRyYW4uZGcv Z29tcC9saW5lYXItNy5mOTA6IE5ldyB0ZXN0LgoKIGdjYy9mb3J0cmFuL2R1bXAtcGFyc2Ut dHJlZS5jYyAgICAgICAgICAgICAgfCAgIDYgKy0KIGdjYy9mb3J0cmFuL2dmb3J0cmFuLmgg ICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIGdjYy9mb3J0cmFuL21vZHVsZS5jYyAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIGdjYy9mb3J0cmFuL29wZW5tcC5jYyAg ICAgICAgICAgICAgICAgICAgICAgfCAyMzIgKysrKysrKysrKysrKysrKysrKysrKysrKy0t LQogZ2NjL2ZvcnRyYW4vdHJhbnMtb3Blbm1wLmNjICAgICAgICAgICAgICAgICB8ICAgNSAr LQogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2xpbmVhci0yLmY5MCB8IDExMiAr KysrKysrKysrKysrKwogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2xpbmVhci0z LmY5MCB8ICAzOSArKysrKwogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2xpbmVh ci00LmY5MCB8IDEwMiArKysrKysrKysrKysKIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcv Z29tcC9saW5lYXItNS5mOTAgfCAgNDMgKysrKysrCiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFu LmRnL2dvbXAvbGluZWFyLTYuZjkwIHwgIDU0ICsrKysrKysKIGdjYy90ZXN0c3VpdGUvZ2Zv cnRyYW4uZGcvZ29tcC9saW5lYXItNy5mOTAgfCAgMjcgKysrKwogbGliZ29tcC9saWJnb21w LnRleGkgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogMTIgZmlsZXMgY2hhbmdl ZCwgNjA0IGluc2VydGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2dj Yy9mb3J0cmFuL2R1bXAtcGFyc2UtdHJlZS5jYyBiL2djYy9mb3J0cmFuL2R1bXAtcGFyc2Ut dHJlZS5jYwppbmRleCA4NWMwYjk4ZjYxNS4uNTM1MjAwOGE2M2QgMTAwNjQ0Ci0tLSBhL2dj Yy9mb3J0cmFuL2R1bXAtcGFyc2UtdHJlZS5jYworKysgYi9nY2MvZm9ydHJhbi9kdW1wLXBh cnNlLXRyZWUuY2MKQEAgLTE0MjEsOCArMTQyMSw4IEBAIHNob3dfb21wX25hbWVsaXN0IChp bnQgbGlzdF90eXBlLCBnZmNfb21wX25hbWVsaXN0ICpuKQogCSAgY2FzZSBPTVBfTUFQX1JF TEVBU0U6IGZwdXRzICgicmVsZWFzZToiLCBkdW1wZmlsZSk7IGJyZWFrOwogCSAgZGVmYXVs dDogYnJlYWs7CiAJICB9Ci0gICAgICBlbHNlIGlmIChsaXN0X3R5cGUgPT0gT01QX0xJU1Rf TElORUFSKQotCXN3aXRjaCAobi0+dS5saW5lYXJfb3ApCisgICAgICBlbHNlIGlmIChsaXN0 X3R5cGUgPT0gT01QX0xJU1RfTElORUFSICYmIG4tPnUubGluZWFyLm9sZF9tb2RpZmllcikK Kwlzd2l0Y2ggKG4tPnUubGluZWFyLm9wKQogCSAgewogCSAgY2FzZSBPTVBfTElORUFSX1JF RjogZnB1dHMgKCJyZWYoIiwgZHVtcGZpbGUpOyBicmVhazsKIAkgIGNhc2UgT01QX0xJTkVB Ul9WQUw6IGZwdXRzICgidmFsKCIsIGR1bXBmaWxlKTsgYnJlYWs7CkBAIC0xNDMwLDcgKzE0 MzAsNyBAQCBzaG93X29tcF9uYW1lbGlzdCAoaW50IGxpc3RfdHlwZSwgZ2ZjX29tcF9uYW1l bGlzdCAqbikKIAkgIGRlZmF1bHQ6IGJyZWFrOwogCSAgfQogICAgICAgZnByaW50ZiAoZHVt cGZpbGUsICIlcyIsIG4tPnN5bSA/IG4tPnN5bS0+bmFtZSA6ICJvbXBfYWxsX21lbW9yeSIp OwotICAgICAgaWYgKGxpc3RfdHlwZSA9PSBPTVBfTElTVF9MSU5FQVIgJiYgbi0+dS5saW5l YXJfb3AgIT0gT01QX0xJTkVBUl9ERUZBVUxUKQorICAgICAgaWYgKGxpc3RfdHlwZSA9PSBP TVBfTElTVF9MSU5FQVIgJiYgbi0+dS5saW5lYXIub3AgIT0gT01QX0xJTkVBUl9ERUZBVUxU KQogCWZwdXRjICgnKScsIGR1bXBmaWxlKTsKICAgICAgIGlmIChuLT5leHByKQogCXsKZGlm ZiAtLWdpdCBhL2djYy9mb3J0cmFuL2dmb3J0cmFuLmggYi9nY2MvZm9ydHJhbi9nZm9ydHJh bi5oCmluZGV4IDQ2M2Q5NjkyMjM2Li42OTZhYWRkN2RiNiAxMDA2NDQKLS0tIGEvZ2NjL2Zv cnRyYW4vZ2ZvcnRyYW4uaAorKysgYi9nY2MvZm9ydHJhbi9nZm9ydHJhbi5oCkBAIC0xMzQ1 LDcgKzEzNDUsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgZ2ZjX29tcF9uYW1lbGlzdAogICAgICAg Z2ZjX29tcF9yZWR1Y3Rpb25fb3AgcmVkdWN0aW9uX29wOwogICAgICAgZ2ZjX29tcF9kZXBl bmRfb3AgZGVwZW5kX29wOwogICAgICAgZ2ZjX29tcF9tYXBfb3AgbWFwX29wOwotICAgICAg Z2ZjX29tcF9saW5lYXJfb3AgbGluZWFyX29wOworICAgICAgc3RydWN0CisJeworCSAgRU5V TV9CSVRGSUVMRCAoZ2ZjX29tcF9saW5lYXJfb3ApIG9wOjQ7CisJICBib29sIG9sZF9tb2Rp ZmllcjsKKwl9IGxpbmVhcjsKICAgICAgIHN0cnVjdCBnZmNfY29tbW9uX2hlYWQgKmNvbW1v bjsKICAgICAgIGJvb2wgbGFzdHByaXZhdGVfY29uZGl0aW9uYWw7CiAgICAgfSB1OwpkaWZm IC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vbW9kdWxlLmNjIGIvZ2NjL2ZvcnRyYW4vbW9kdWxlLmNj CmluZGV4IDg1YWExNTNiZDc3Li41ZGRhYmRjZmY0ZCAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRy YW4vbW9kdWxlLmNjCisrKyBiL2djYy9mb3J0cmFuL21vZHVsZS5jYwpAQCAtNDM4MywxMCAr NDM4MywxMCBAQCBtaW9fb21wX2RlY2xhcmVfc2ltZCAoZ2ZjX25hbWVzcGFjZSAqbnMsIGdm Y19vbXBfZGVjbGFyZV9zaW1kICoqb2RzcCkKIAkgICAgfQogCSAgZm9yIChuID0gb2RzLT5j bGF1c2VzLT5saXN0c1tPTVBfTElTVF9MSU5FQVJdOyBuOyBuID0gbi0+bmV4dCkKIAkgICAg ewotCSAgICAgIGlmIChuLT51LmxpbmVhcl9vcCA9PSBPTVBfTElORUFSX0RFRkFVTFQpCisJ ICAgICAgaWYgKG4tPnUubGluZWFyLm9wID09IE9NUF9MSU5FQVJfREVGQVVMVCkKIAkJbWlv X25hbWUgKDQsIG9tcF9kZWNsYXJlX3NpbWRfY2xhdXNlcyk7CiAJICAgICAgZWxzZQotCQlt aW9fbmFtZSAoMzIgKyBuLT51LmxpbmVhcl9vcCwgb21wX2RlY2xhcmVfc2ltZF9jbGF1c2Vz KTsKKwkJbWlvX25hbWUgKDMyICsgbi0+dS5saW5lYXIub3AsIG9tcF9kZWNsYXJlX3NpbWRf Y2xhdXNlcyk7CiAJICAgICAgbWlvX3N5bWJvbF9yZWYgKCZuLT5zeW0pOwogCSAgICAgIG1p b19leHByICgmbi0+ZXhwcik7CiAJICAgIH0KQEAgLTQ0MzgsNyArNDQzOCw3IEBAIG1pb19v bXBfZGVjbGFyZV9zaW1kIChnZmNfbmFtZXNwYWNlICpucywgZ2ZjX29tcF9kZWNsYXJlX3Np bWQgKipvZHNwKQogCSAgICBjYXNlIDM0OgogCSAgICBjYXNlIDM1OgogCSAgICAgICpwdHJz WzFdID0gbiA9IGdmY19nZXRfb21wX25hbWVsaXN0ICgpOwotCSAgICAgIG4tPnUubGluZWFy X29wID0gKGVudW0gZ2ZjX29tcF9saW5lYXJfb3ApICh0IC0gMzIpOworCSAgICAgIG4tPnUu bGluZWFyLm9wID0gKGVudW0gZ2ZjX29tcF9saW5lYXJfb3ApICh0IC0gMzIpOwogCSAgICAg IHQgPSA0OwogCSAgICAgIGdvdG8gZmluaXNoX25hbWVsaXN0OwogCSAgICB9CmRpZmYgLS1n aXQgYS9nY2MvZm9ydHJhbi9vcGVubXAuY2MgYi9nY2MvZm9ydHJhbi9vcGVubXAuY2MKaW5k ZXggNTFiNDI5YTU5N2MuLmQzOTQwY2M1MWQwIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9v cGVubXAuY2MKKysrIGIvZ2NjL2ZvcnRyYW4vb3Blbm1wLmNjCkBAIC0yMzI0LDYgKzIzMjQs NyBAQCBnZmNfbWF0Y2hfb21wX2NsYXVzZXMgKGdmY19vbXBfY2xhdXNlcyAqKmNwLCBjb25z dCBvbXBfbWFzayBtYXNrLAogCSAgaWYgKChtYXNrICYgT01QX0NMQVVTRV9MSU5FQVIpCiAJ ICAgICAgJiYgZ2ZjX21hdGNoICgibGluZWFyICgiKSA9PSBNQVRDSF9ZRVMpCiAJICAgIHsK KwkgICAgICBib29sIG9sZF9saW5lYXJfbW9kaWZpZXIgPSBmYWxzZTsKIAkgICAgICBnZmNf b21wX2xpbmVhcl9vcCBsaW5lYXJfb3AgPSBPTVBfTElORUFSX0RFRkFVTFQ7CiAJICAgICAg Z2ZjX2V4cHIgKnN0ZXAgPSBOVUxMOwogCkBAIC0yMzMxLDE3ICsyMzMyLDI2IEBAIGdmY19t YXRjaF9vbXBfY2xhdXNlcyAoZ2ZjX29tcF9jbGF1c2VzICoqY3AsIGNvbnN0IG9tcF9tYXNr IG1hc2ssCiAJCQkJCSAgICAgICAmYy0+bGlzdHNbT01QX0xJU1RfTElORUFSXSwKIAkJCQkJ ICAgICAgIGZhbHNlLCBOVUxMLCAmaGVhZCkKIAkJICA9PSBNQVRDSF9ZRVMpCi0JCWxpbmVh cl9vcCA9IE9NUF9MSU5FQVJfUkVGOworCQl7CisJCSAgbGluZWFyX29wID0gT01QX0xJTkVB Ul9SRUY7CisJCSAgb2xkX2xpbmVhcl9tb2RpZmllciA9IHRydWU7CisJCX0KIAkgICAgICBl bHNlIGlmIChnZmNfbWF0Y2hfb21wX3ZhcmlhYmxlX2xpc3QgKCIgdmFsICgiLAogCQkJCQkJ ICAgICZjLT5saXN0c1tPTVBfTElTVF9MSU5FQVJdLAogCQkJCQkJICAgIGZhbHNlLCBOVUxM LCAmaGVhZCkKIAkJICAgICAgID09IE1BVENIX1lFUykKLQkJbGluZWFyX29wID0gT01QX0xJ TkVBUl9WQUw7CisJCXsKKwkJICBsaW5lYXJfb3AgPSBPTVBfTElORUFSX1ZBTDsKKwkJICBv bGRfbGluZWFyX21vZGlmaWVyID0gdHJ1ZTsKKwkJfQogCSAgICAgIGVsc2UgaWYgKGdmY19t YXRjaF9vbXBfdmFyaWFibGVfbGlzdCAoIiB1dmFsICgiLAogCQkJCQkJICAgICZjLT5saXN0 c1tPTVBfTElTVF9MSU5FQVJdLAogCQkJCQkJICAgIGZhbHNlLCBOVUxMLCAmaGVhZCkKIAkJ ICAgICAgID09IE1BVENIX1lFUykKLQkJbGluZWFyX29wID0gT01QX0xJTkVBUl9VVkFMOwor CQl7CisJCSAgbGluZWFyX29wID0gT01QX0xJTkVBUl9VVkFMOworCQkgIG9sZF9saW5lYXJf bW9kaWZpZXIgPSB0cnVlOworCQl9CiAJICAgICAgZWxzZSBpZiAoZ2ZjX21hdGNoX29tcF92 YXJpYWJsZV9saXN0ICgiIiwKIAkJCQkJCSAgICAmYy0+bGlzdHNbT01QX0xJU1RfTElORUFS XSwKIAkJCQkJCSAgICBmYWxzZSwgJmVuZF9jb2xvbiwgJmhlYWQpCkBAIC0yMzY0LDE0ICsy Mzc0LDE4MyBAQCBnZmNfbWF0Y2hfb21wX2NsYXVzZXMgKGdmY19vbXBfY2xhdXNlcyAqKmNw LCBjb25zdCBvbXBfbWFzayBtYXNrLAogCQkgICAgICBicmVhazsKIAkJICAgIH0KIAkJfQot CSAgICAgIGlmIChlbmRfY29sb24gJiYgZ2ZjX21hdGNoICgiICVlICkiLCAmc3RlcCkgIT0g TUFUQ0hfWUVTKQorCSAgICAgIGdmY19nb2JibGVfd2hpdGVzcGFjZSAoKTsKKwkgICAgICBp ZiAob2xkX2xpbmVhcl9tb2RpZmllciAmJiBlbmRfY29sb24pCiAJCXsKLQkJICBnZmNfZnJl ZV9vbXBfbmFtZWxpc3QgKCpoZWFkLCBmYWxzZSk7Ci0JCSAgZ2ZjX2N1cnJlbnRfbG9jdXMg PSBvbGRfbG9jOwotCQkgICpoZWFkID0gTlVMTDsKLQkJICBicmVhazsKKwkJICBpZiAoZ2Zj X21hdGNoICgiICVlICkiLCAmc3RlcCkgIT0gTUFUQ0hfWUVTKQorCQkgICAgeworCQkgICAg ICBnZmNfZnJlZV9vbXBfbmFtZWxpc3QgKCpoZWFkLCBmYWxzZSk7CisJCSAgICAgIGdmY19j dXJyZW50X2xvY3VzID0gb2xkX2xvYzsKKwkJICAgICAgKmhlYWQgPSBOVUxMOworCQkgICAg ICBnb3RvIGVycm9yOworCQkgICAgfQorCQl9CisJICAgICAgZWxzZSBpZiAoZW5kX2NvbG9u KQorCQl7CisJCSAgZ2ZjX3N5bXRyZWUgKnN0OworCQkgIGJvb2wgaGFzX21vZGlmaWVycyA9 IGZhbHNlOworCQkgIGJvb2wgZHVwbGljYXRlX3N0ZXAgPSBmYWxzZTsKKwkJICBib29sIGR1 cGxpY2F0ZV9tb2QgPSBmYWxzZTsKKwkJICB3aGlsZSAodHJ1ZSkKKwkJICAgIHsKKwkJICAg ICAgb2xkX2xvYyA9IGdmY19jdXJyZW50X2xvY3VzOworCQkgICAgICBpZiAoZ2ZjX21hdGNo ICgidmFsICkiKSA9PSBNQVRDSF9ZRVMpCisJCQl7CisJCQkgIGlmICghaGFzX21vZGlmaWVy cykKKwkJCSAgICB7CisJCQkgICAgICBnZmNfZmluZF9zeW1fdHJlZSAoInZhbCIsIE5VTEws IHRydWUsICZzdCk7CisJCQkgICAgICBib29sIGhhc192YWwgPSAoc3QKKwkJCQkJICAgICAg JiYgIXN0LT5uLnN5bS0+YXR0ci5mdW5jdGlvbgorCQkJCQkgICAgICAmJiAhc3QtPm4uc3lt LT5hdHRyLmRpbWVuc2lvbik7CisJCQkgICAgICBsb2N1cyBsb2MgPSBnZmNfY3VycmVudF9s b2N1czsKKwkJCSAgICAgIGdmY19jdXJyZW50X2xvY3VzID0gb2xkX2xvYzsKKwkJCSAgICAg IGlmIChoYXNfdmFsCisJCQkJICAmJiBnZmNfbWF0Y2ggKCIgJWUgKSAiLCAmc3RlcCkgPT0g TUFUQ0hfWUVTKQorCQkJCWJyZWFrOworCQkJICAgICAgZ2ZjX2N1cnJlbnRfbG9jdXMgPSBs b2M7CisJCQkgICAgfQorCQkJICBpZiAobGluZWFyX29wICE9IE9NUF9MSU5FQVJfREVGQVVM VCkKKwkJCSAgICB7CisJCQkgICAgICBkdXBsaWNhdGVfbW9kID0gdHJ1ZTsKKwkJCSAgICAg IGJyZWFrOworCQkJICAgIH0KKwkJCSAgbGluZWFyX29wID0gT01QX0xJTkVBUl9WQUw7CisJ CQkgIGhhc19tb2RpZmllcnMgPSB0cnVlOworCQkJICBicmVhazsKKwkJCX0KKwkJICAgICAg ZWxzZSBpZiAoZ2ZjX21hdGNoICgidmFsICwgIikgPT0gTUFUQ0hfWUVTKQorCQkJeworCQkJ ICBpZiAobGluZWFyX29wICE9IE9NUF9MSU5FQVJfREVGQVVMVCkKKwkJCSAgICB7CisJCQkg ICAgICBkdXBsaWNhdGVfbW9kID0gdHJ1ZTsKKwkJCSAgICAgIGJyZWFrOworCQkJICAgIH0K KwkJCSAgbGluZWFyX29wID0gT01QX0xJTkVBUl9WQUw7CisJCQkgIGhhc19tb2RpZmllcnMg PSB0cnVlOworCQkJICBjb250aW51ZTsKKwkJCX0KKwkJICAgICAgZWxzZSBpZiAoZ2ZjX21h dGNoICgidXZhbCApIikgPT0gTUFUQ0hfWUVTKQorCQkJeworCQkJICBpZiAoIWhhc19tb2Rp ZmllcnMpCisJCQkgICAgeworCQkJICAgICAgZ2ZjX2ZpbmRfc3ltX3RyZWUgKCJ1dmFsIiwg TlVMTCwgdHJ1ZSwgJnN0KTsKKwkJCSAgICAgIGJvb2wgaGFzX3V2YWwgPSAoc3QKKwkJCQkJ ICAgICAgICYmICFzdC0+bi5zeW0tPmF0dHIuZnVuY3Rpb24KKwkJCQkJICAgICAgICYmICFz dC0+bi5zeW0tPmF0dHIuZGltZW5zaW9uKTsKKwkJCSAgICAgIGxvY3VzIGxvYyA9IGdmY19j dXJyZW50X2xvY3VzOworCQkJICAgICAgZ2ZjX2N1cnJlbnRfbG9jdXMgPSBvbGRfbG9jOwor CQkJICAgICAgaWYgKGhhc191dmFsCisJCQkJICAmJiBnZmNfbWF0Y2ggKCIgJWUgKSAiLCAm c3RlcCkgPT0gTUFUQ0hfWUVTKQorCQkJCWJyZWFrOworCQkJICAgICAgZ2ZjX2N1cnJlbnRf bG9jdXMgPSBsb2M7CisJCQkgICAgfQorCQkJICBpZiAobGluZWFyX29wICE9IE9NUF9MSU5F QVJfREVGQVVMVCkKKwkJCSAgICB7CisJCQkgICAgICBkdXBsaWNhdGVfbW9kID0gdHJ1ZTsK KwkJCSAgICAgIGJyZWFrOworCQkJICAgIH0KKwkJCSAgbGluZWFyX29wID0gT01QX0xJTkVB Ul9VVkFMOworCQkJICBoYXNfbW9kaWZpZXJzID0gdHJ1ZTsKKwkJCSAgYnJlYWs7CisJCQl9 CisJCSAgICAgIGVsc2UgaWYgKGdmY19tYXRjaCAoInV2YWwgLCAiKSA9PSBNQVRDSF9ZRVMp CisJCQl7CisJCQkgIGlmIChsaW5lYXJfb3AgIT0gT01QX0xJTkVBUl9ERUZBVUxUKQorCQkJ ICAgIHsKKwkJCSAgICAgIGR1cGxpY2F0ZV9tb2QgPSB0cnVlOworCQkJICAgICAgYnJlYWs7 CisJCQkgICAgfQorCQkJICBsaW5lYXJfb3AgPSBPTVBfTElORUFSX1VWQUw7CisJCQkgIGhh c19tb2RpZmllcnMgPSB0cnVlOworCQkJICBjb250aW51ZTsKKwkJCX0KKwkJICAgICAgZWxz ZSBpZiAoZ2ZjX21hdGNoICgicmVmICkiKSA9PSBNQVRDSF9ZRVMpCisJCQl7CisJCQkgIGlm ICghaGFzX21vZGlmaWVycykKKwkJCSAgICB7CisJCQkgICAgICBnZmNfZmluZF9zeW1fdHJl ZSAoInJlZiIsIE5VTEwsIHRydWUsICZzdCk7CisJCQkgICAgICBib29sIGhhc19yZWYgPSAo c3QKKwkJCQkJICAgICAgJiYgIXN0LT5uLnN5bS0+YXR0ci5mdW5jdGlvbgorCQkJCQkgICAg ICAmJiAhc3QtPm4uc3ltLT5hdHRyLmRpbWVuc2lvbik7CisJCQkgICAgICBsb2N1cyBsb2Mg PSBnZmNfY3VycmVudF9sb2N1czsKKwkJCSAgICAgIGdmY19jdXJyZW50X2xvY3VzID0gb2xk X2xvYzsKKwkJCSAgICAgIGlmIChoYXNfcmVmCisJCQkJICAmJiBnZmNfbWF0Y2ggKCIgJWUg KSAiLCAmc3RlcCkgPT0gTUFUQ0hfWUVTKQorCQkJCWJyZWFrOworCQkJICAgICAgZ2ZjX2N1 cnJlbnRfbG9jdXMgPSBsb2M7CisJCQkgICAgfQorCQkJICBpZiAobGluZWFyX29wICE9IE9N UF9MSU5FQVJfREVGQVVMVCkKKwkJCSAgICB7CisJCQkgICAgICBkdXBsaWNhdGVfbW9kID0g dHJ1ZTsKKwkJCSAgICAgIGJyZWFrOworCQkJICAgIH0KKwkJCSAgbGluZWFyX29wID0gT01Q X0xJTkVBUl9SRUY7CisJCQkgIGhhc19tb2RpZmllcnMgPSB0cnVlOworCQkJICBicmVhazsK KwkJCX0KKwkJICAgICAgZWxzZSBpZiAoZ2ZjX21hdGNoICgicmVmICwgIikgPT0gTUFUQ0hf WUVTKQorCQkJeworCQkJICBpZiAobGluZWFyX29wICE9IE9NUF9MSU5FQVJfREVGQVVMVCkK KwkJCSAgICB7CisJCQkgICAgICBkdXBsaWNhdGVfbW9kID0gdHJ1ZTsKKwkJCSAgICAgIGJy ZWFrOworCQkJICAgIH0KKwkJCSAgbGluZWFyX29wID0gT01QX0xJTkVBUl9SRUY7CisJCQkg IGhhc19tb2RpZmllcnMgPSB0cnVlOworCQkJICBjb250aW51ZTsKKwkJCX0KKwkJICAgICAg ZWxzZSBpZiAoZ2ZjX21hdGNoICgic3RlcCAoICIpID09IE1BVENIX1lFUykKKwkJCXsKKwkJ CSAgaWYgKCFoYXNfbW9kaWZpZXJzKQorCQkJICAgIHsKKwkJCSAgICAgIGdmY19maW5kX3N5 bV90cmVlICgic3RlcCIsIE5VTEwsIHRydWUsICZzdCk7CisJCQkgICAgICBib29sIGhhc19z dGVwCisJCQkJPSAoc3QgJiYgKHN0LT5uLnN5bS0+YXR0ci5mdW5jdGlvbgorCQkJCQkgIHx8 IHN0LT5uLnN5bS0+YXR0ci5kaW1lbnNpb24pKTsKKwkJCSAgICAgIGxvY3VzIGxvYyA9IGdm Y19jdXJyZW50X2xvY3VzOworCQkJICAgICAgZ2ZjX2N1cnJlbnRfbG9jdXMgPSBvbGRfbG9j OworCQkJICAgICAgaWYgKGhhc19zdGVwCisJCQkJICAmJiBnZmNfbWF0Y2ggKCIlZSApICIs ICZzdGVwKSA9PSBNQVRDSF9ZRVMpCisJCQkJYnJlYWs7CisJCQkgICAgICBnZmNfY3VycmVu dF9sb2N1cyA9IGxvYzsKKwkJCSAgICB9CisJCQkgIGlmIChzdGVwKQorCQkJICAgIHsKKwkJ CSAgICAgIGR1cGxpY2F0ZV9zdGVwID0gdHJ1ZTsKKwkJCSAgICAgIGJyZWFrOworCQkJICAg IH0KKwkJCSAgaGFzX21vZGlmaWVycyA9IHRydWU7CisJCQkgIGlmIChnZmNfbWF0Y2ggKCIl ZSApICIsICZzdGVwKSA9PSBNQVRDSF9ZRVMpCisJCQkgICAgeworCQkJICAgICAgaWYgKGdm Y19tYXRjaCAoIiwgIikgPT0gTUFUQ0hfWUVTKQorCQkJCWNvbnRpbnVlOworCQkJICAgICAg aWYgKGdmY19tYXRjaCAoIikiKSA9PSBNQVRDSF9ZRVMpCisJCQkJYnJlYWs7CisJCQkgICAg fQorCQkJICBnZmNfZnJlZV9vbXBfbmFtZWxpc3QgKCpoZWFkLCBmYWxzZSk7CisJCQkgICpo ZWFkID0gTlVMTDsKKwkJCSAgZ290byBlcnJvcjsKKwkJCX0KKwkJICAgICAgZWxzZSBpZiAo IWhhc19tb2RpZmllcnMKKwkJCSAgICAgICAmJiBnZmNfbWF0Y2ggKCIlZSApIiwgJnN0ZXAp ID09IE1BVENIX1lFUykKKwkJCWJyZWFrOworCQkgICAgICBlbHNlCisJCQl7CisJCQkgIGdm Y19mcmVlX29tcF9uYW1lbGlzdCAoKmhlYWQsIGZhbHNlKTsKKwkJCSAgKmhlYWQgPSBOVUxM OworCQkJICBnb3RvIGVycm9yOworCQkJfQorCQkgICAgfQorCQkgIGlmIChkdXBsaWNhdGVf bW9kIHx8IGR1cGxpY2F0ZV9zdGVwKQorCQkgICAgeworCQkgICAgICBnZmNfZXJyb3IgKCJN dWx0aXBsZSAlcXMgbW9kaWZpZXJzIHNwZWNpZmllZCBhdCAlQyIsCisJCQkJIGR1cGxpY2F0 ZV9tb2QgPyAibGluZWFyIiA6ICJzdGVwIik7CisJCSAgICAgIGdmY19mcmVlX29tcF9uYW1l bGlzdCAoKmhlYWQsIGZhbHNlKTsKKwkJICAgICAgKmhlYWQgPSBOVUxMOworCQkgICAgICBn b3RvIGVycm9yOworCQkgICAgfQogCQl9Ci0JICAgICAgZWxzZSBpZiAoIWVuZF9jb2xvbikK KwkgICAgICBlbHNlCiAJCXsKIAkJICBzdGVwID0gZ2ZjX2dldF9jb25zdGFudF9leHByIChC VF9JTlRFR0VSLAogCQkJCQkJZ2ZjX2RlZmF1bHRfaW50ZWdlcl9raW5kLApAQCAtMjM3OSw5 ICsyNTU4LDEyIEBAIGdmY19tYXRjaF9vbXBfY2xhdXNlcyAoZ2ZjX29tcF9jbGF1c2VzICoq Y3AsIGNvbnN0IG9tcF9tYXNrIG1hc2ssCiAJCSAgbXB6X3NldF9zaSAoc3RlcC0+dmFsdWUu aW50ZWdlciwgMSk7CiAJCX0KIAkgICAgICAoKmhlYWQpLT5leHByID0gc3RlcDsKLQkgICAg ICBpZiAobGluZWFyX29wICE9IE9NUF9MSU5FQVJfREVGQVVMVCkKKwkgICAgICBpZiAobGlu ZWFyX29wICE9IE9NUF9MSU5FQVJfREVGQVVMVCB8fCBvbGRfbGluZWFyX21vZGlmaWVyKQog CQlmb3IgKGdmY19vbXBfbmFtZWxpc3QgKm4gPSAqaGVhZDsgbjsgbiA9IG4tPm5leHQpCi0J CSAgbi0+dS5saW5lYXJfb3AgPSBsaW5lYXJfb3A7CisJCSAgeworCQkgICAgbi0+dS5saW5l YXIub3AgPSBsaW5lYXJfb3A7CisJCSAgICBuLT51LmxpbmVhci5vbGRfbW9kaWZpZXIgPSBv bGRfbGluZWFyX21vZGlmaWVyOworCQkgIH0KIAkgICAgICBjb250aW51ZTsKIAkgICAgfQog CSAgaWYgKChtYXNrICYgT01QX0NMQVVTRV9MSU5LKQpAQCAtNzQzOSwyOCArNzYyMSwzOCBA QCByZXNvbHZlX29tcF9jbGF1c2VzIChnZmNfY29kZSAqY29kZSwgZ2ZjX29tcF9jbGF1c2Vz ICpvbXBfY2xhdXNlcywKIAkJICAgIGJyZWFrOwogCQkgIGNhc2UgT01QX0xJU1RfTElORUFS OgogCQkgICAgaWYgKGNvZGUKLQkJCSYmIG4tPnUubGluZWFyX29wICE9IE9NUF9MSU5FQVJf REVGQVVMVAotCQkJJiYgbi0+dS5saW5lYXJfb3AgIT0gbGluZWFyX29wKQorCQkJJiYgbi0+ dS5saW5lYXIub3AgIT0gT01QX0xJTkVBUl9ERUZBVUxUCisJCQkmJiBuLT51LmxpbmVhci5v cCAhPSBsaW5lYXJfb3ApCiAJCSAgICAgIHsKLQkJCWdmY19lcnJvciAoIkxJTkVBUiBjbGF1 c2UgbW9kaWZpZXIgdXNlZCBvbiBETyBvciBTSU1EIgotCQkJCSAgICIgY29uc3RydWN0IGF0 ICVMIiwgJm4tPndoZXJlKTsKLQkJCWxpbmVhcl9vcCA9IG4tPnUubGluZWFyX29wOworCQkJ aWYgKG4tPnUubGluZWFyLm9sZF9tb2RpZmllcikKKwkJCSAgeworCQkJICAgIGdmY19lcnJv ciAoIkxJTkVBUiBjbGF1c2UgbW9kaWZpZXIgdXNlZCBvbiBETyBvciAiCisJCQkJICAgICAg ICJTSU1EIGNvbnN0cnVjdCBhdCAlTCIsICZuLT53aGVyZSk7CisJCQkgICAgbGluZWFyX29w ID0gbi0+dS5saW5lYXIub3A7CisJCQkgIH0KKwkJCWVsc2UgaWYgKG4tPnUubGluZWFyLm9w ICE9IE9NUF9MSU5FQVJfVkFMKQorCQkJICB7CisJCQkgICAgZ2ZjX2Vycm9yICgiTElORUFS IGNsYXVzZSBtb2RpZmllciBvdGhlciB0aGFuIFZBTCAiCisJCQkJICAgICAgICJ1c2VkIG9u IERPIG9yIFNJTUQgY29uc3RydWN0IGF0ICVMIiwKKwkJCQkgICAgICAgJm4tPndoZXJlKTsK KwkJCSAgICBsaW5lYXJfb3AgPSBuLT51LmxpbmVhci5vcDsKKwkJCSAgfQogCQkgICAgICB9 CiAJCSAgICBlbHNlIGlmIChvbXBfY2xhdXNlcy0+b3JkZXJlZGMpCiAJCSAgICAgIGdmY19l cnJvciAoIkxJTkVBUiBjbGF1c2Ugc3BlY2lmaWVkIHRvZ2V0aGVyIHdpdGggIgogCQkJCSAi T1JERVJFRCBjbGF1c2Ugd2l0aCBhcmd1bWVudCBhdCAlTCIsCiAJCQkJICZuLT53aGVyZSk7 Ci0JCSAgICBlbHNlIGlmIChuLT51LmxpbmVhcl9vcCAhPSBPTVBfTElORUFSX1JFRgorCQkg ICAgZWxzZSBpZiAobi0+dS5saW5lYXIub3AgIT0gT01QX0xJTkVBUl9SRUYKIAkJCSAgICAg JiYgbi0+c3ltLT50cy50eXBlICE9IEJUX0lOVEVHRVIpCiAJCSAgICAgIGdmY19lcnJvciAo IkxJTkVBUiB2YXJpYWJsZSAlcXMgbXVzdCBiZSBJTlRFR0VSICIKIAkJCQkgImF0ICVMIiwg bi0+c3ltLT5uYW1lLCAmbi0+d2hlcmUpOwotCQkgICAgZWxzZSBpZiAoKG4tPnUubGluZWFy X29wID09IE9NUF9MSU5FQVJfUkVGCi0JCQkgICAgICB8fCBuLT51LmxpbmVhcl9vcCA9PSBP TVBfTElORUFSX1VWQUwpCisJCSAgICBlbHNlIGlmICgobi0+dS5saW5lYXIub3AgPT0gT01Q X0xJTkVBUl9SRUYKKwkJCSAgICAgIHx8IG4tPnUubGluZWFyLm9wID09IE9NUF9MSU5FQVJf VVZBTCkKIAkJCSAgICAgJiYgbi0+c3ltLT5hdHRyLnZhbHVlKQogCQkgICAgICBnZmNfZXJy b3IgKCJMSU5FQVIgZHVtbXkgYXJndW1lbnQgJXFzIHdpdGggVkFMVUUgIgogCQkJCSAiYXR0 cmlidXRlIHdpdGggJXMgbW9kaWZpZXIgYXQgJUwiLAogCQkJCSBuLT5zeW0tPm5hbWUsCi0J CQkJIG4tPnUubGluZWFyX29wID09IE9NUF9MSU5FQVJfUkVGCisJCQkJIG4tPnUubGluZWFy Lm9wID09IE9NUF9MSU5FQVJfUkVGCiAJCQkJID8gIlJFRiIgOiAiVVZBTCIsICZuLT53aGVy ZSk7CiAJCSAgICBlbHNlIGlmIChuLT5leHByKQogCQkgICAgICB7CmRpZmYgLS1naXQgYS9n Y2MvZm9ydHJhbi90cmFucy1vcGVubXAuY2MgYi9nY2MvZm9ydHJhbi90cmFucy1vcGVubXAu Y2MKaW5kZXggYzZhNTg0ZDM2ZjIuLmRlMjdlZDUyYzAyIDEwMDY0NAotLS0gYS9nY2MvZm9y dHJhbi90cmFucy1vcGVubXAuY2MKKysrIGIvZ2NjL2ZvcnRyYW4vdHJhbnMtb3Blbm1wLmNj CkBAIC0yNzUxLDcgKzI3NTEsNyBAQCBnZmNfdHJhbnNfb21wX2NsYXVzZXMgKHN0bXRibG9j a190ICpibG9jaywgZ2ZjX29tcF9jbGF1c2VzICpjbGF1c2VzLAogCQkJCQkJICAgICAgT01Q X0NMQVVTRV9MSU5FQVIpOwogCQkJT01QX0NMQVVTRV9ERUNMIChub2RlKSA9IHQ7CiAJCQlv bXBfY2xhdXNlX2xpbmVhcl9raW5kIGtpbmQ7Ci0JCQlzd2l0Y2ggKG4tPnUubGluZWFyX29w KQorCQkJc3dpdGNoIChuLT51LmxpbmVhci5vcCkKIAkJCSAgewogCQkJICBjYXNlIE9NUF9M SU5FQVJfREVGQVVMVDoKIAkJCSAgICBraW5kID0gT01QX0NMQVVTRV9MSU5FQVJfREVGQVVM VDsKQEAgLTI3NjksNyArMjc2OSw4IEBAIGdmY190cmFuc19vbXBfY2xhdXNlcyAoc3RtdGJs b2NrX3QgKmJsb2NrLCBnZmNfb21wX2NsYXVzZXMgKmNsYXVzZXMsCiAJCQkgICAgZ2NjX3Vu cmVhY2hhYmxlICgpOwogCQkJICB9CiAJCQlPTVBfQ0xBVVNFX0xJTkVBUl9LSU5EIChub2Rl KSA9IGtpbmQ7Ci0JCQlPTVBfQ0xBVVNFX0xJTkVBUl9PTERfTElORUFSX01PRElGSUVSIChu b2RlKSA9IDE7CisJCQlPTVBfQ0xBVVNFX0xJTkVBUl9PTERfTElORUFSX01PRElGSUVSIChu b2RlKQorCQkJICA9IG4tPnUubGluZWFyLm9sZF9tb2RpZmllcjsKIAkJCWlmIChsYXN0X3N0 ZXBfZXhwciAmJiBsYXN0X3N0ZXAgPT0gTlVMTF9UUkVFKQogCQkJICB7CiAJCQkgICAgaWYg KCFkZWNsYXJlX3NpbWQpCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRn L2dvbXAvbGluZWFyLTIuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2xp bmVhci0yLmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTI1 ZDkyMmVjZmIKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRn L2dvbXAvbGluZWFyLTIuZjkwCkBAIC0wLDAgKzEsMTEyIEBACishIHsgZGctZG8gY29tcGls ZSB9CishIHsgZGctb3B0aW9ucyAiLWZvcGVubXAgLWZkdW1wLXRyZWUtb3JpZ2luYWwiIH0K KworbW9kdWxlIG0KKyAgaW1wbGljaXQgbm9uZSAodHlwZSwgZXh0ZXJuYWwpCisKKyAgaW50 ZWdlciBpCisKKyAgaW50ZXJmYWNlCisgICAgaW50ZWdlciBmdW5jdGlvbiBiYXIgKHgsIHks IHopCisgICAgICBpbnRlZ2VyLCB2YWx1ZSA6OiB4LCB5LCB6CisgICAgICAhJG9tcCBkZWNs YXJlIHNpbWQgbGluZWFyICh4IDogdmFsLCBzdGVwICgxKSkgbGluZWFyICh5IDogc3RlcCAo MikpCisgICAgZW5kCisKKyAgICBpbnRlZ2VyIGZ1bmN0aW9uIGJheiAoeCwgeSwgeikKKyAg ICAgIGludGVnZXIsIHZhbHVlIDo6IHgsIHksIHoKKyAgICAgICEkb21wIGRlY2xhcmUgc2lt ZCBsaW5lYXIgKHggOiBzdGVwICgxKSwgdmFsKQorICAgIGVuZAorCisgICAgaW50ZWdlciBm dW5jdGlvbiBxdXggKHgsIHZhbCkKKyAgICAgIGludGVnZXIsIHZhbHVlIDo6IHgsIHZhbAor ICAgICAgISRvbXAgZGVjbGFyZSBzaW1kIGxpbmVhciAodmFsICh4KSA6IHZhbCkgdW5pZm9y bSAodmFsKQorICAgIGVuZAorCisgICAgaW50ZWdlciBmdW5jdGlvbiBjb3JnZSAoeCwgdmFs KQorICAgICAgaW50ZWdlciwgdmFsdWUgOjogeCwgdmFsCisgICAgICAhJG9tcCBkZWNsYXJl IHNpbWQgbGluZWFyICh4IDogdmFsLCBzdGVwICh2YWwpKSB1bmlmb3JtICh2YWwpCisgICAg ZW5kCisKKyAgICBpbnRlZ2VyIGZ1bmN0aW9uIGdyYXVsdCAoeCkKKyAgICAgIGludGVnZXIs IHZhbHVlIDo6IHgKKyAgICAgICEkb21wIGRlY2xhcmUgc2ltZCBsaW5lYXIgKHggOiB2YWwp CisgICAgZW5kCisKKyAgICBpbnRlZ2VyIGZ1bmN0aW9uIHN0ZXAgKHgpCisgICAgICBpbnRl Z2VyLCB2YWx1ZSA6OiB4CisgICAgZW5kCisgIGVuZCBpbnRlcmZhY2UKKworY29udGFpbnMK Kworc3Vicm91dGluZSBmb28gKHgseSkKKyAgaW50ZWdlciA6OiB4LCB5CisgIGludGVnZXIg OjogdmFsCisKKyAgdmFsID0gMQorCisgICEkb21wIHNpbWQgbGluZWFyIChpOiBzdGVwICgz KSkKKyAgZG8gaSA9IDAsIDMyLCAzCisgIGVuZCBkbworCisgICEkb21wIHNpbWQgbGluZWFy IChpOiB2YWwsIHN0ZXAgKDMpKQorICBkbyBpID0gMCwgMzIsIDMKKyAgZW5kIGRvCisKKyAg ISRvbXAgc2ltZCBsaW5lYXIgKHg6IHN0ZXAgKHkgKyAxKSkKKyAgZG8gaSA9IDAsIDkKKyAg ICB4ID0geCArIHkgKyAxCisgIGVuZCBkbworCisgICEkb21wIHNpbWQgbGluZWFyICh4OiBz dGVwICh5ICsgMSksIHZhbCkKKyAgZG8gaSA9IDAsIDkKKyAgICB4ID0geCArIHkgKyAxCisg IGVuZCBkbworCisgICEkb21wIHBhcmFsbGVsIGRvIGxpbmVhciAoeDogc3RlcCAoeSArIDEp KQorICBkbyBpID0gMCwgOQorICAgIHggPSB4ICsgeSArIDEKKyAgZW5kIGRvCisKKyAgISRv bXAgcGFyYWxsZWwgZG8gbGluZWFyICh4OiB2YWwsIHN0ZXAgKHkgKyAxKSkKKyAgZG8gaSA9 IDAsIDkKKyAgICB4ID0geCArIHkgKyAxCisgIGVuZCBkbworCisgICEkb21wIHBhcmFsbGVs IGRvIHNpbWQgbGluZWFyIChpOiBzdGVwICgzKSkKKyAgZG8gaSA9IDAsIDMyLCAzCisgIGVu ZCBkbworCisgICEkb21wIHBhcmFsbGVsIGRvIHNpbWQgbGluZWFyIChpOiBzdGVwICgzKSwg dmFsKQorICBkbyBpID0gMCwgMzIsIDMKKyAgZW5kIGRvCisKKyAgISRvbXAgcGFyYWxsZWwg ZG8gc2ltZCBsaW5lYXIgKHg6IHN0ZXAgKHkgKyAxKSkKKyAgZG8gaSA9IDAsIDkKKyAgICB4 ID0geCArIHkgKyAxCisgIGVuZCBkbworCisgICEkb21wIHBhcmFsbGVsIGRvIHNpbWQgbGlu ZWFyICh4OiB2YWwsIHN0ZXAgKHkgKyAxKSkKKyAgZG8gaSA9IDAsIDkKKyAgICB4ID0geCAr IHkgKyAxCisgIGVuZCBkbworCisgICEkb21wIHBhcmFsbGVsIGRvIHNpbWQgbGluZWFyIChp OiB2YWwgKyAwKQorICBkbyBpID0gMCwgOQorICBlbmQgZG8KKworICAhJG9tcCBwYXJhbGxl bCBkbyBzaW1kIGxpbmVhciAoaTogc3RlcCAoMSkgKiAxKQorICBkbyBpID0gMCwgOQorICBl bmQgZG8KK2VuZAorZW5kIG1vZHVsZQorCishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVt cC10aW1lcyAiI3ByYWdtYSBvbXAgcGFyYWxsZWwiIDggIm9yaWdpbmFsIiB9IH0KKyEgeyBk Zy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCBmb3Igbm93YWl0 IiA2ICJvcmlnaW5hbCIgfSB9CishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1l cyAiI3ByYWdtYSBvbXAgZm9yIGxpbmVhclxcKHg6RFxcLlxbMC05XF0rXFwpIG5vd2FpdCIg MSAib3JpZ2luYWwiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMg IiNwcmFnbWEgb21wIGZvciBsaW5lYXJcXCh4OnZhbCxzdGVwXFwoRFxcLlxbMC05XF0rXFwp XFwpIG5vd2FpdCIgMSAib3JpZ2luYWwiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVl LWR1bXAtdGltZXMgIiNwcmFnbWEgb21wIHNpbWQgbGluZWFyXFwoY291bnQuXFswLTlcXTox XFwpIGxpbmVhclxcKGk6RFxcLlxbMC05XF0rXFwpIiAyICJvcmlnaW5hbCIgfSB9CishIHsg ZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiI3ByYWdtYSBvbXAgc2ltZCBsaW5l YXJcXChjb3VudC5cWzAtOVxdOjFcXCkgbGluZWFyXFwoaTp2YWwsc3RlcFxcKDNcXClcXCki IDIgIm9yaWdpbmFsIiB9IH0KKyEgeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVz ICIjcHJhZ21hIG9tcCBzaW1kIGxpbmVhclxcKGk6MVxcKSBsaW5lYXJcXCh4OkRcXC5cWzAt OVxdK1xcKSIgMiAib3JpZ2luYWwiIH0gfQorISB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1 bXAtdGltZXMgIiNwcmFnbWEgb21wIHNpbWQgbGluZWFyXFwoaToxXFwpIGxpbmVhclxcKHg6 dmFsLHN0ZXBcXChEXFwuXFswLTlcXStcXClcXCkiIDIgIm9yaWdpbmFsIiB9IH0KKyEgeyBk Zy1maW5hbCB7IHNjYW4tdHJlZS1kdW1wLXRpbWVzICIjcHJhZ21hIG9tcCBzaW1kIGxpbmVh clxcKGk6RFxcLlxbMC05XF0rXFwpIiAyICJvcmlnaW5hbCIgfSB9CmRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvbGluZWFyLTMuZjkwIGIvZ2NjL3Rlc3Rz dWl0ZS9nZm9ydHJhbi5kZy9nb21wL2xpbmVhci0zLmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uZGVlODdiMWE4OTkKLS0tIC9kZXYvbnVsbAorKysgYi9n Y2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvbGluZWFyLTMuZjkwCkBAIC0wLDAgKzEs MzkgQEAKKyEgeyBkZy1kbyBjb21waWxlIH0KKyEgeyBkZy1vcHRpb25zICItZm9wZW5tcCIg fQorCittb2R1bGUgbTIKKyAgaW1wbGljaXQgbm9uZSAodHlwZSwgZXh0ZXJuYWwpCisKKyAg aW50ZWdlciA6OiB2YWwKKworY29udGFpbnMKK2ludGVnZXIgZnVuY3Rpb24gc3RlcCAoeCkK KyAgaW50ZWdlciwgdmFsdWUgOjogeAorZW5kCitzdWJyb3V0aW5lIGZvbyh4KQorICBpbnRl Z2VyLCB2YWx1ZSA6OiB4CisgICEkb21wIGRlY2xhcmUgc2ltZCBsaW5lYXIgKHZhbCAoeCkg OiBzdGVwICgxKSkJISB7IGRnLWVycm9yICJyZXF1aXJlcyBhIGNvbnN0YW50IGludGVnZXIg bGluZWFyLXN0ZXAgZXhwcmVzc2lvbiBvciBkdW1teSBhcmd1bWVudCIgfQorZW5kCitlbmQg bW9kdWxlIG0yCisKKworbW9kdWxlIG0KKyAgaW1wbGljaXQgbm9uZSAodHlwZSwgZXh0ZXJu YWwpCisKKyAgaW50ZWdlciA6OiB2YWwKKworY29udGFpbnMKK2ludGVnZXIgZnVuY3Rpb24g c3RlcCAoeCkKKyAgaW50ZWdlciwgdmFsdWUgOjogeAorICAhJG9tcCBkZWNsYXJlIHNpbWQg bGluZWFyICh2YWwgKHgpIDogc3RlcCAoMSkpCSEgeyBkZy1lcnJvciAiRmFpbGVkIHRvIG1h dGNoIGNsYXVzZSIgfQorZW5kCisKK2ludGVnZXIgZnVuY3Rpb24gYmFyICh4LCB5LCB6KQor ICBpbnRlZ2VyLCB2YWx1ZSA6OiB4LCB5LCB6CisgICEkb21wIGRlY2xhcmUgc2ltZCBsaW5l YXIgKHZhbCAoeCkgOiB2YWwpCQkhIHsgZGctZXJyb3IgInJlcXVpcmVzIGEgY29uc3RhbnQg aW50ZWdlciBsaW5lYXItc3RlcCBleHByZXNzaW9uIG9yIGR1bW15IGFyZ3VtZW50IiB9Citl bmQKKworaW50ZWdlciBmdW5jdGlvbiBiYXogKHgsIHksIHopCisgIGludGVnZXIsIHZhbHVl IDo6IHgsIHksIHoKK2VuZAorZW5kIG1vZHVsZSBtCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL2dvbXAvbGluZWFyLTQuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9y dHJhbi5kZy9nb21wL2xpbmVhci00LmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uZjA0MWJjZTdlMzUKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL2dvbXAvbGluZWFyLTQuZjkwCkBAIC0wLDAgKzEsMTAyIEBACish IHsgZGctZG8gY29tcGlsZSB9CishIHsgZGctb3B0aW9ucyAiLWZvcGVubXAiIH0KKworbW9k dWxlIG0KK2ltcGxpY2l0IG5vbmUKKworaW50ZWdlciA6OiBpCisKK2ludGVyZmFjZQorICBp bnRlZ2VyIGZ1bmN0aW9uIGJhciAoeCwgIHksIHopCisgICAgaW50ZWdlciA6OiB4LCB5Cisg ICAgaW50ZWdlciwgdmFsdWUgOjogegorICAgICEhJG9tcCBkZWNsYXJlIHNpbWQgbGluZWFy ICh4IDogcmVmLCBzdGVwICgxKSkgbGluZWFyICh5IDogc3RlcCAoMiksIHV2YWwpCisgIGVu ZAorCisgIGludGVnZXIgZnVuY3Rpb24gYmF6ICh4LCB5LCB6KQorICAgIGludGVnZXIgOjog eAorICAgIGludGVnZXIsIHZhbHVlIDo6IHksIHoKKyAgICAhISRvbXAgZGVjbGFyZSBzaW1k IGxpbmVhciAoeCA6IHN0ZXAgKDEpLCB1dmFsKQorICBlbmQKKworICBpbnRlZ2VyIGZ1bmN0 aW9uIHF1eCAoeCwgcmVmKQorICAgIGludGVnZXIgOjogeAorICAgIGludGVnZXIsIHZhbHVl IDo6IHJlZgorICAgICEhJG9tcCBkZWNsYXJlIHNpbWQgbGluZWFyIChyZWYgKHgpIDogcmVm KSB1bmlmb3JtIChyZWYpCisgIGVuZAorCisgIGludGVnZXIgZnVuY3Rpb24gY29yZ2UgKHgs IHJlZikKKyAgICBpbnRlZ2VyIDo6IHgKKyAgICBpbnRlZ2VyLCB2YWx1ZSA6OiByZWYKKyAg ICAhISRvbXAgZGVjbGFyZSBzaW1kIGxpbmVhciAoeCA6IHJlZiwgc3RlcCAocmVmKSkgdW5p Zm9ybSAocmVmKQorICBlbmQKKworICBpbnRlZ2VyIGZ1bmN0aW9uIGdyYXVsdCAoeCkKKyAg ICBpbnRlZ2VyIDo6IHgKKyAgICAhJG9tcCBkZWNsYXJlIHNpbWQgbGluZWFyICh4IDogcmVm KQorICBlbmQKKworICBpbnRlZ2VyIGZ1bmN0aW9uIHdhbGRvICh4KQorICAgIGludGVnZXIg OjogeAorICAgICEkb21wIGRlY2xhcmUgc2ltZCBsaW5lYXIgKHggOiB1dmFsKQorICBlbmQK K2VuZCBpbnRlcmZhY2UKKworY29udGFpbnMKKworaW50ZWdlciBmdW5jdGlvbiBzdGVwICh4 KQorICBpbnRlZ2VyLCB2YWx1ZSA6OiB4CisgIHN0ZXAgPSB4CitlbmQKKworc3Vicm91dGlu ZSBmb28gKHgsIHkpCisgIGludGVnZXIgOjogeCwgeQorICAhJG9tcCBzaW1kIGxpbmVhciAo eDogc3RlcCAoeSArIDEpKQorICBkbyBpID0gMCwgOQorICAgIHggPSB4ICsgeSArIDEKKyAg ZW5kIGRvCisKKyAgISRvbXAgc2ltZCBsaW5lYXIgKHg6IHZhbCwgc3RlcCAoeSArIDEpKQor ICBkbyBpID0gMCwgOQorICAgIHggPSB4ICsgeSArIDEKKyAgZW5kIGRvCisKKyAgISRvbXAg cGFyYWxsZWwgZG8gbGluZWFyICh4OiBzdGVwICh5ICsgMSkpCisgIGRvIGkgPSAwLCA5Cisg ICAgeCA9IHggKyB5ICsgMQorICBlbmQgZG8KKworICAhJG9tcCBwYXJhbGxlbCBkbyBsaW5l YXIgKHg6IHN0ZXAgKHkgKyAxKSwgdmFsKQorICBkbyBpID0gMCwgOQorICAgIHggPSB4ICsg eSArIDEKKyAgZW5kIGRvCisKKyAgISRvbXAgcGFyYWxsZWwgZG8gc2ltZCBsaW5lYXIgKHg6 IHN0ZXAgKHkgKyAxKSkKKyAgZG8gaSA9IDAsIDkKKyAgICB4ID0geCArIHkgKyAxCisgIGVu ZCBkbworCisgICEkb21wIHBhcmFsbGVsIGRvIHNpbWQgbGluZWFyICh4OiB2YWwsIHN0ZXAg KHkgKyAxKSkKKyAgZG8gaSA9IDAsIDkKKyAgICB4ID0geCArIHkgKyAxCisgIGVuZCBkbwor CisgICEkb21wIHBhcmFsbGVsIGRvIHNpbWQgbGluZWFyICh4OiBzdGVwICgxKSArIDApCisg IGRvIGkgPSAwLCA5CisgICAgeCA9IHggKyBzdGVwICgxKSArIDAKKyAgZW5kIGRvCisKKyAg YmxvY2sKKyAgICBpbnRlZ2VyLCBwYXJhbWV0ZXIgOjogcmVmID0gMSwgdXZhbCA9IDIKKyAg ICAhJG9tcCBwYXJhbGxlbCBkbyBzaW1kIGxpbmVhciAoeDogcmVmICsgMCkKKyAgICBkbyBp ID0gMCwgOQorICAgICAgeCA9IHggKyByZWYgKyAwCisgICAgZW5kIGRvCisKKyAgICAhJG9t cCBwYXJhbGxlbCBkbyBzaW1kIGxpbmVhciAoeDogdXZhbCAqIDEpCisgICAgZG8gaSA9IDAs IDkKKyAgICAgIHggPSB4ICsgdXZhbAorICAgIGVuZCBkbworICBlbmQgYmxvY2sKK2VuZAor ZW5kCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvbGluZWFy LTUuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2xpbmVhci01LmY5MApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjAwNDkyZDRiNTgKLS0t IC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvbGluZWFy LTUuZjkwCkBAIC0wLDAgKzEsNDMgQEAKKyEgeyBkZy1kbyBjb21waWxlIH0KKyEgeyBkZy1v cHRpb25zICItZm9wZW5tcCIgfQorCittb2R1bGUgbQoraW1wbGljaXQgbm9uZQoraW50ZWdl ciA6OiBpCisKK2NvbnRhaW5zCisKK3N1YnJvdXRpbmUgZm9vICh4LCB5KQorICBpbnRlZ2Vy IDo6IHgsIHkKKworICAhJG9tcCBzaW1kIGxpbmVhciAoeDogc3RlcCAoeSArIDEpLCByZWYp CQkhIHsgZGctZXJyb3IgIkxJTkVBUiBjbGF1c2UgbW9kaWZpZXIgb3RoZXIgdGhhbiBWQUwg dXNlZCBvbiBETyBvciBTSU1EIGNvbnN0cnVjdCIgfQorICBkbyBpID0gMCwgMTAKKyAgICB4 ID0geCArIHkgKyAxCisgIGVuZCBkbworCisgICEkb21wIHNpbWQgbGluZWFyICh4OiB1dmFs LCBzdGVwICh5ICsgMSkpCQkhIHsgZGctZXJyb3IgIkxJTkVBUiBjbGF1c2UgbW9kaWZpZXIg b3RoZXIgdGhhbiBWQUwgdXNlZCBvbiBETyBvciBTSU1EIGNvbnN0cnVjdCIgfQorICBkbyBp ID0gMCwgMTAKKyAgICB4ID0geCArIHkgKyAxCisgIGVuZCBkbworCisgICEkb21wIHBhcmFs bGVsIGRvIGxpbmVhciAoeDogcmVmLCBzdGVwICh5ICsgMSkpCSEgeyBkZy1lcnJvciAiTElO RUFSIGNsYXVzZSBtb2RpZmllciBvdGhlciB0aGFuIFZBTCB1c2VkIG9uIERPIG9yIFNJTUQg Y29uc3RydWN0IiB9CisgIGRvIGkgPSAwLCAxMAorICAgIHggPSB4ICsgeSArIDEKKyAgZW5k IGRvCisKKyAgISRvbXAgcGFyYWxsZWwgZG8gbGluZWFyICh4OiBzdGVwICh5ICsgMSksIHV2 YWwpCSEgeyBkZy1lcnJvciAiTElORUFSIGNsYXVzZSBtb2RpZmllciBvdGhlciB0aGFuIFZB TCB1c2VkIG9uIERPIG9yIFNJTUQgY29uc3RydWN0IiB9CisgIGRvIGkgPSAwLCAxMAorICAg IHggPSB4ICsgeSArIDEKKyAgZW5kIGRvCisKKyAgISRvbXAgcGFyYWxsZWwgZG8gc2ltZCBs aW5lYXIgKHg6IHN0ZXAgKHkgKyAxKSwgcmVmKQkhIHsgZGctZXJyb3IgIkxJTkVBUiBjbGF1 c2UgbW9kaWZpZXIgb3RoZXIgdGhhbiBWQUwgdXNlZCBvbiBETyBvciBTSU1EIGNvbnN0cnVj dCIgfQorICBkbyBpID0gMCwgMTAKKyAgICB4ID0geCArIHkgKyAxCisgIGVuZCBkbworCisg ICEkb21wIHBhcmFsbGVsIGRvIHNpbWQgbGluZWFyICh4OiB1dmFsLCBzdGVwICh5ICsgMSkp CSEgeyBkZy1lcnJvciAiTElORUFSIGNsYXVzZSBtb2RpZmllciBvdGhlciB0aGFuIFZBTCB1 c2VkIG9uIERPIG9yIFNJTUQgY29uc3RydWN0IiB9CisgIGRvIGkgPSAwLCAxMAorICAgIHgg PSB4ICsgeSArIDEKKyAgZW5kIGRvCitlbmQKK2VuZApkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3Rz dWl0ZS9nZm9ydHJhbi5kZy9nb21wL2xpbmVhci02LmY5MCBiL2djYy90ZXN0c3VpdGUvZ2Zv cnRyYW4uZGcvZ29tcC9saW5lYXItNi5mOTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjU3NjkzYmE2ZGUxCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3Rz dWl0ZS9nZm9ydHJhbi5kZy9nb21wL2xpbmVhci02LmY5MApAQCAtMCwwICsxLDU0IEBACish IHsgZGctZG8gY29tcGlsZSB9CishIHsgZGctb3B0aW9ucyAiLWZvcGVubXAiIH0KKworbW9k dWxlIG0KK2ltcGxpY2l0IG5vbmUKK2ludGVnZXIsIHBhcmFtZXRlciA6OiB2YWwgPSAxCitp bnRlZ2VyLCBwYXJhbWV0ZXIgOjogcmVmID0gMgoraW50ZWdlciwgcGFyYW1ldGVyIDo6IHV2 YWwgPSAzCisKK2ludGVyZmFjZQorICBpbnRlZ2VyIGZ1bmN0aW9uIGZvbyAoeCwgeSwgeikK KyAgICBpbXBvcnQKKyAgICBpbXBsaWNpdCBub25lCisgICAgaW50ZWdlciwgdmFsdWUgOjog eAorICAgIGludGVnZXIgOjogeSwgegorICAgICEkb21wIGRlY2xhcmUgc2ltZCBsaW5lYXIg KHZhbCAoeCkgOiBzdGVwICgxKSkgbGluZWFyIChyZWYgKHkpIDogc3RlcCAoMikpIGxpbmVh ciAodXZhbCAoeikgOiBzdGVwICgzKSkKKworISBTVEVQIGlzIGEgZnVuY3Rpb24gLSB0aHVz OgorISB7IGRnLWVycm9yICIneCcgaW4gTElORUFSIGNsYXVzZSBhdCAuMS4gcmVxdWlyZXMg YSBjb25zdGFudCBpbnRlZ2VyIGxpbmVhci1zdGVwIGV4cHJlc3Npb24gb3IgZHVtbXkgYXJn dW1lbnQgc3BlY2lmaWVkIGluIFVOSUZPUk0gY2xhdXNlIiAiIiB7IHRhcmdldCAqLSotKiB9 IC4tMyB9CishIHsgZGctZXJyb3IgIid5JyBpbiBMSU5FQVIgY2xhdXNlIGF0IC4xLiByZXF1 aXJlcyBhIGNvbnN0YW50IGludGVnZXIgbGluZWFyLXN0ZXAgZXhwcmVzc2lvbiBvciBkdW1t eSBhcmd1bWVudCBzcGVjaWZpZWQgaW4gVU5JRk9STSBjbGF1c2UiICIiIHsgdGFyZ2V0ICot Ki0qIH0gLi00IH0KKyEgeyBkZy1lcnJvciAiJ3onIGluIExJTkVBUiBjbGF1c2UgYXQgLjEu IHJlcXVpcmVzIGEgY29uc3RhbnQgaW50ZWdlciBsaW5lYXItc3RlcCBleHByZXNzaW9uIG9y IGR1bW15IGFyZ3VtZW50IHNwZWNpZmllZCBpbiBVTklGT1JNIGNsYXVzZSIgIiIgeyB0YXJn ZXQgKi0qLSogfSAuLTUgfQorCisgIGVuZAorCisgIGludGVnZXIgZnVuY3Rpb24gYmFyICh4 LCB5LCB6KQorICAgIGltcG9ydAorICAgIGltcGxpY2l0IG5vbmUKKyAgICBpbnRlZ2VyLCB2 YWx1ZSA6OiB4CisgICAgaW50ZWdlciA6OiB5LCB6CisgICAgISRvbXAgZGVjbGFyZSBzaW1k IGxpbmVhciAodmFsICh4KSA6IHZhbCkgbGluZWFyIChyZWYgKHkpIDogcmVmKSBsaW5lYXIg KHV2YWwgKHopIDogdXZhbCkKKyAgZW5kCisKKyAgaW50ZWdlciBmdW5jdGlvbiBiYXogKHgs IHksIHopCisgICAgaW1wb3J0CisgICAgaW1wbGljaXQgbm9uZQorICAgIGludGVnZXIsIHZh bHVlIDo6IHgKKyAgICBpbnRlZ2VyIDo6IHksIHoKKyAgICAhJG9tcCBkZWNsYXJlIHNpbWQg bGluZWFyICh2YWwgKHgpIDogcmVmKSBsaW5lYXIgKHJlZiAoeSkgOiB1dmFsKSBsaW5lYXIg KHV2YWwgKHopIDogdmFsKQorICBlbmQKKworICBpbnRlZ2VyIGZ1bmN0aW9uIHF1eCAoeCwg eSwgeikKKyAgICBpbXBvcnQKKyAgICBpbXBsaWNpdCBub25lCisgICAgaW50ZWdlciwgdmFs dWUgOjogeAorICAgIGludGVnZXIgOjogeSwgegorICAgICEkb21wIGRlY2xhcmUgc2ltZCBs aW5lYXIgKHZhbCAoeCkgOiB1dmFsKSBsaW5lYXIgKHJlZiAoeSkgOiB2YWwpIGxpbmVhciAo dXZhbCAoeikgOiByZWYpCisgIGVuZAorZW5kIGludGVyZmFjZQorY29udGFpbnMKKyAgaW50 ZWdlciBmdW5jdGlvbiBzdGVwICh4KQorICAgIGludGVnZXIsIHZhbHVlIDo6IHgKKyAgICAg c3RlcCA9IHgKKyAgZW5kCitlbmQgbW9kdWxlCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2dmb3J0cmFuLmRnL2dvbXAvbGluZWFyLTcuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJh bi5kZy9nb21wL2xpbmVhci03LmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uNWU3NjNhOTJjYTYKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRl L2dmb3J0cmFuLmRnL2dvbXAvbGluZWFyLTcuZjkwCkBAIC0wLDAgKzEsMjcgQEAKKyEgeyBk Zy1kbyBjb21waWxlIH0KKyEgeyBkZy1vcHRpb25zICItZm9wZW5tcCIgfQorCittb2R1bGUg bQorICBpbXBsaWNpdCBub25lICh0eXBlLCBleHRlcm5hbCkKKworICBpbnRlZ2VyIGkKKwor ICBpbnRlcmZhY2UKKyAgICBpbnRlZ2VyIGZ1bmN0aW9uIHMxICh4LCB5LCB6KQorICAgICAg aW50ZWdlciwgdmFsdWUgOjogeCwgeSwgegorICAgICAgISRvbXAgZGVjbGFyZSBzaW1kIGxp bmVhciAoeCA6IHZhbCwgc3RlcCAoMSksIHZhbCkgICEgeyBkZy1lcnJvciAiTXVsdGlwbGUg J2xpbmVhcicgbW9kaWZpZXJzIHNwZWNpZmllZCIgfQorICAgIGVuZAorCisgICAgaW50ZWdl ciBmdW5jdGlvbiBzMiAoeCwgeSwgeikKKyAgICAgIGludGVnZXIsIHZhbHVlIDo6IHgsIHks IHoKKyAgICAgICEkb21wIGRlY2xhcmUgc2ltZCBsaW5lYXIgKHggOiB2YWwsIHN0ZXAgKDEp LCBzdGVwKDIpKSAgISB7IGRnLWVycm9yICJNdWx0aXBsZSAnc3RlcCcgbW9kaWZpZXJzIHNw ZWNpZmllZCIgfQorICAgIGVuZAorCisgICAgaW50ZWdlciBmdW5jdGlvbiBzMyAoeCwgeSwg eikKKyAgICAgIGludGVnZXIsIHZhbHVlIDo6IHgsIHksIHoKKyAgICAgICEkb21wIGRlY2xh cmUgc2ltZCBsaW5lYXIgKHggOiB2YWwsIHJlZiwgc3RlcCgyKSkgICEgeyBkZy1lcnJvciAi TXVsdGlwbGUgJ2xpbmVhcicgbW9kaWZpZXJzIHNwZWNpZmllZCIgfQorICAgIGVuZAorCisg IGVuZCBpbnRlcmZhY2UKKworZW5kIG1vZHVsZQpkaWZmIC0tZ2l0IGEvbGliZ29tcC9saWJn b21wLnRleGkgYi9saWJnb21wL2xpYmdvbXAudGV4aQppbmRleCAzOTQyNmZmN2ZiZi4uZTg4 ZmU4OWE1YjEgMTAwNjQ0Ci0tLSBhL2xpYmdvbXAvbGliZ29tcC50ZXhpCisrKyBiL2xpYmdv bXAvbGliZ29tcC50ZXhpCkBAIC0zNjMsNyArMzYzLDcgQEAgdG8gYWRkcmVzcyBvZiBtYXRj aGluZyBtYXBwZWQgbGlzdCBpdGVtIHBlciA1LjEsIFNlY3QuIDIuMjEuNy4yIEB0YWIgTiBA dGFiCiBAaXRlbSBDbGF1c2VzIG9uIEBjb2Rle2VuZH0gZGlyZWN0aXZlIGNhbiBiZSBvbiBk aXJlY3RpdmUgQHRhYiBOIEB0YWIKIEBpdGVtIERlcHJlY2F0aW9uIG9mIG5vLWFyZ3VtZW50 IEBjb2Rle2Rlc3Ryb3l9IGNsYXVzZSBvbiBAY29kZXtkZXBvYmp9CiAgICAgICBAdGFiIE4g QHRhYgotQGl0ZW0gQGNvZGV7bGluZWFyfSBjbGF1c2Ugc3ludGF4IGNoYW5nZXMgYW5kIEBj b2Rle3N0ZXB9IG1vZGlmaWVyIEB0YWIgUCBAdGFiIG9ubHkgQy9DKysKK0BpdGVtIEBjb2Rl e2xpbmVhcn0gY2xhdXNlIHN5bnRheCBjaGFuZ2VzIGFuZCBAY29kZXtzdGVwfSBtb2RpZmll ciBAdGFiIFkgQHRhYgogQGl0ZW0gRGVwcmVjYXRpb24gb2YgbWludXMgb3BlcmF0b3IgZm9y IHJlZHVjdGlvbnMgQHRhYiBOIEB0YWIKIEBpdGVtIERlcHJlY2F0aW9uIG9mIHNlcGFyYXRp bmcgQGNvZGV7bWFwfSBtb2RpZmllcnMgd2l0aG91dCBjb21tYSBAdGFiIE4gQHRhYgogQGl0 ZW0gQGNvZGV7ZGVjbGFyZSBtYXBwZXJ9IHdpdGggaXRlcmF0b3IgYW5kIEBjb2Rle3ByZXNl bnR9IG1vZGlmaWVycwo= --------------q03KZeaIp4iPvkw0BDzYkuI7--