From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa4.mentor.iphmx.com (esa4.mentor.iphmx.com [68.232.137.252]) by sourceware.org (Postfix) with ESMTPS id B0BFB3858D3C; Tue, 25 Jul 2023 11:14:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B0BFB3858D3C 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="6.01,230,1684828800"; d="diff'?scan'208";a="12683621" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa4.mentor.iphmx.com with ESMTP; 25 Jul 2023 03:14:08 -0800 IronPort-SDR: qF1wgYfIhbnjLAsFDGx4j90B8mLUIMYzfKLy5WOfgCWjuEOLivQAmkyF1e0nYV+dR0AckTY2VV s56AFgUfgFCEor+wqAWVKChnFMiik8AFLO/sXN9LJJaHVVVHxE2cq/zSzbw5v0Y7jXrwAr0vxI +aldmG/TMCTwB9fYRcSX7fDETc99HRyXe6mk/5omuI8uomDSai0vciLu8hFfSCzmhKiYHSt5bC WDoS9vm8dduaRv4QLxyr6CODrOhyvhfQ25DLDbScr/EVQolmYTWrMTC5zZOCXqmlFwyTl5+6+v Ju0= Content-Type: multipart/mixed; boundary="------------6QEGHxpVWtZJLJ0joj6J0WFA" Message-ID: <8b5edd17-db3e-d4d7-121e-de8550fa9dbc@codesourcery.com> Date: Tue, 25 Jul 2023 13:14:03 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: [patch] OpenMP/Fortran: Reject declarations between target + teams (was: [Patch] OpenMP/Fortran: Reject not strictly nested target -> teams [PR110725, PR71065]) Content-Language: en-US To: Jakub Jelinek , gcc-patches CC: fortran References: From: Tobias Burnus In-Reply-To: X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-10.6 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE,URIBL_BLACK 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: --------------6QEGHxpVWtZJLJ0joj6J0WFA Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable On 24.07.23 21:49, Jakub Jelinek via Fortran wrote: > On Mon, Jul 24, 2023 at 09:43:10PM +0200, Tobias Burnus wrote: >> This patch adds diagnostic for additional code alongside a nested teams >> in a target region. > Thanks for working on this. The fuzzy thing on the Fortran side is > if e.g. multiple nested BLOCK statements can appear sandwiched in between > target and teams (of course without declarations in them) Talking about declarations, I realized that I missed to diagnose them; the attached patch should handle them as well. (Except for 'omp nothing' and 'omp error', which return ST_NONE.) Comments, remarks, suggestions? If none or no changes are required, I will later commit the attached follow-up patch. 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 --------------6QEGHxpVWtZJLJ0joj6J0WFA Content-Type: text/x-patch; charset="UTF-8"; name="omp-target-teams-diag-decl.diff" Content-Disposition: attachment; filename="omp-target-teams-diag-decl.diff" Content-Transfer-Encoding: base64 T3Blbk1QL0ZvcnRyYW46IFJlamVjdCBkZWNsYXJhdGlvbnMgYmV0d2VlbiB0YXJnZXQgKyB0 ZWFtcwoKV2hpbGUgY29tbWl0IHIxNC0yNzU0LWcyZTMxZmU0MzFiMDhiMDMwMmUxZmE4YTFj MThlZTUxYWRhZmQ0MWRmCmRldGVjdGVkIGV4ZWN1dGFibGUgc3RhdGVtZW50cywgZGVjbGFy YXRpb25zIGRvIG5vdCBzaG93IHVwIGFzCmV4ZWN1dGFibGUgc3RhdGVtZW50cy4gIEhlbmNl LCB3ZSBub3cgY2hlY2sgd2hldGhlciB0aGUgZmlyc3QKc3RhdGVtZW50IGFmdGVyIFRBUkdF VCBpcyBURUFNUyAtIHN1Y2ggdGhhdCB3ZSBjYW4gZGV0ZWN0IGRhdGEKc3RhdGVtZW50cyBs aWtlIHR5cGUgb3IgdmFyaWFibGUgZGVjbGFyYXRpb25zLiAgRm9ydHJhbiBzZW1hbnRpY3MK ZW5zdXJlcyB0aGF0IG9ubHkgZXhlY3V0YWJsZSBkaXJlY3RpdmVzL3N0YXRlbWVucyBjYW4g Y29tZSBhZnRlcgonISRvbXAgZW5kIHRlYW1zJyBzdWNoIHRoYXQgdGhvc2UgY2FuIGJlIGRl dGVjdGVkIHdpdGggdGhlCnByZXZpb3VzIGNoZWNrLgoKTm90ZSB0aGF0IHN0YXRlbWVudHMg cmV0dXJuaW5nIFNUX05PTkUgc3VjaCBhcyAnb21wIG5vdGhpbmcnIG9yCidvbXAgZXJyb3Ig YXQoY29tcGlsYXRpb24pJyB3aWxsIHN0aWxsIHNsaXAgdGhyb3VnaC4KCglQUiBmb3J0cmFu LzExMDcyNQoJUFIgbWlkZGxlLWVuZC83MTA2NQoKZ2NjL2ZvcnRyYW4vQ2hhbmdlTG9nOgoK CSogZ2ZvcnRyYW4uaCAoZ2ZjX29tcF9jbGF1c2VzKTogQWRkIHRhcmdldF9maXJzdF9zdF9p c190ZWFtcy4KCSogcGFyc2UuY2MgKHBhcnNlX29tcF9zdHJ1Y3R1cmVkX2Jsb2NrKTogU2V0 IGl0IGlmIHRoZSBmaXJzdAoJc3RhdGVtZW50IGluIHRoZSBzdHJ1Y3R1cmVkIGJsb2NrIG9m IGEgVEFSR0VUIGlzIFRFQU1TIG9yCglhIGNvbWJpbmVkL2NvbXBvc2l0ZSBzdGFydGluZyB3 aXRoIFRFQU1TLgoJKiBvcGVubXAuY2MgKHJlc29sdmVfb21wX3RhcmdldCk6IEFsc28gc2hv dyBhbiBlcnJvciBmb3IKCWNvbnRhaW5zX3RlYW1zX2NvbnN0cnVjdCB3aXRob3V0IHRhcmdl dF9maXJzdF9zdF9pc190ZWFtcy4KCmdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nOgoKCSogZ2Zv cnRyYW4uZGcvZ29tcC90ZWFtcy02LmY5MDogTmV3IHRlc3QuCgogZ2NjL2ZvcnRyYW4vZ2Zv cnRyYW4uaCAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGdjYy9mb3J0cmFuL29wZW5t cC5jYyAgICAgICAgICAgICAgICAgICAgICB8IDEzICsrLS0tCiBnY2MvZm9ydHJhbi9wYXJz ZS5jYyAgICAgICAgICAgICAgICAgICAgICAgfCAyNSArKysrKysrKy0tCiBnY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL2dvbXAvdGVhbXMtNi5mOTAgfCA3OCArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMTA4IGluc2VydGlvbnMoKyksIDEw IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL2dmb3J0cmFuLmggYi9n Y2MvZm9ydHJhbi9nZm9ydHJhbi5oCmluZGV4IDU3N2VmODA3YWY3Li45YTAwZTZkZWE2ZiAx MDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vZ2ZvcnRyYW4uaAorKysgYi9nY2MvZm9ydHJhbi9n Zm9ydHJhbi5oCkBAIC0xNTc1LDcgKzE1NzUsNyBAQCB0eXBlZGVmIHN0cnVjdCBnZmNfb21w X2NsYXVzZXMKICAgdW5zaWduZWQgb3JkZXJfdW5jb25zdHJhaW5lZDoxLCBvcmRlcl9yZXBy b2R1Y2libGU6MSwgY2FwdHVyZToxOwogICB1bnNpZ25lZCBncmFpbnNpemVfc3RyaWN0OjEs IG51bV90YXNrc19zdHJpY3Q6MSwgY29tcGFyZToxLCB3ZWFrOjE7CiAgIHVuc2lnbmVkIG5v bl9yZWN0YW5ndWxhcjoxLCBvcmRlcl9jb25jdXJyZW50OjE7Ci0gIHVuc2lnbmVkIGNvbnRh aW5zX3RlYW1zX2NvbnN0cnVjdDoxOworICB1bnNpZ25lZCBjb250YWluc190ZWFtc19jb25z dHJ1Y3Q6MSwgdGFyZ2V0X2ZpcnN0X3N0X2lzX3RlYW1zOjE7CiAgIEVOVU1fQklURklFTEQg KGdmY19vbXBfc2NoZWRfa2luZCkgc2NoZWRfa2luZDozOwogICBFTlVNX0JJVEZJRUxEIChn ZmNfb21wX2RldmljZV90eXBlKSBkZXZpY2VfdHlwZToyOwogICBFTlVNX0JJVEZJRUxEIChn ZmNfb21wX21lbW9yZGVyKSBtZW1vcmRlcjozOwpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4v b3Blbm1wLmNjIGIvZ2NjL2ZvcnRyYW4vb3Blbm1wLmNjCmluZGV4IDY3NTAxMWExOGNlLi41 MmVlYWYyZDRkYSAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vb3Blbm1wLmNjCisrKyBiL2dj Yy9mb3J0cmFuL29wZW5tcC5jYwpAQCAtMTA2NjYsMTIgKzEwNjY2LDEzIEBAIHJlc29sdmVf b21wX3RhcmdldCAoZ2ZjX2NvZGUgKmNvZGUpCiAKICAgaWYgKCFjb2RlLT5leHQub21wX2Ns YXVzZXMtPmNvbnRhaW5zX3RlYW1zX2NvbnN0cnVjdCkKICAgICByZXR1cm47Ci0gIGlmICgo R0ZDX0lTX1RFQU1TX0NPTlNUUlVDVCAoY29kZS0+YmxvY2stPm5leHQtPm9wKQotICAgICAg ICYmIGNvZGUtPmJsb2NrLT5uZXh0LT5uZXh0ID09IE5VTEwpCi0gICAgICB8fCAoY29kZS0+ YmxvY2stPm5leHQtPm9wID09IEVYRUNfQkxPQ0sKLQkgICYmIGNvZGUtPmJsb2NrLT5uZXh0 LT5uZXh0Ci0JICAmJiBHRkNfSVNfVEVBTVNfQ09OU1RSVUNUIChjb2RlLT5ibG9jay0+bmV4 dC0+bmV4dC0+b3ApCi0JICAmJiBjb2RlLT5ibG9jay0+bmV4dC0+bmV4dC0+bmV4dCA9PSBO VUxMKSkKKyAgaWYgKGNvZGUtPmV4dC5vbXBfY2xhdXNlcy0+dGFyZ2V0X2ZpcnN0X3N0X2lz X3RlYW1zCisgICAgICAmJiAoKEdGQ19JU19URUFNU19DT05TVFJVQ1QgKGNvZGUtPmJsb2Nr LT5uZXh0LT5vcCkKKwkgICAmJiBjb2RlLT5ibG9jay0+bmV4dC0+bmV4dCA9PSBOVUxMKQor CSAgfHwgKGNvZGUtPmJsb2NrLT5uZXh0LT5vcCA9PSBFWEVDX0JMT0NLCisJICAgICAgJiYg Y29kZS0+YmxvY2stPm5leHQtPm5leHQKKwkgICAgICAmJiBHRkNfSVNfVEVBTVNfQ09OU1RS VUNUIChjb2RlLT5ibG9jay0+bmV4dC0+bmV4dC0+b3ApCisJICAgICAgJiYgY29kZS0+Ymxv Y2stPm5leHQtPm5leHQtPm5leHQgPT0gTlVMTCkpKQogICAgIHJldHVybjsKICAgZ2ZjX2Nv ZGUgKmMgPSBjb2RlLT5ibG9jay0+bmV4dDsKICAgd2hpbGUgKGMgJiYgIUdGQ19JU19URUFN U19DT05TVFJVQ1QgKGMtPm9wKSkKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3BhcnNlLmNj IGIvZ2NjL2ZvcnRyYW4vcGFyc2UuY2MKaW5kZXggMDExYTM5YzNkMDQuLmFhNmJiNjYzZGVm IDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9wYXJzZS5jYworKysgYi9nY2MvZm9ydHJhbi9w YXJzZS5jYwpAQCAtNTc2Niw3ICs1NzY2LDcgQEAgcGFyc2Vfb3Blbm1wX2FsbG9jYXRlX2Js b2NrIChnZmNfc3RhdGVtZW50IG9tcF9zdCkKIHN0YXRpYyBnZmNfc3RhdGVtZW50CiBwYXJz ZV9vbXBfc3RydWN0dXJlZF9ibG9jayAoZ2ZjX3N0YXRlbWVudCBvbXBfc3QsIGJvb2wgd29y a3NoYXJlX3N0bXRzX29ubHkpCiB7Ci0gIGdmY19zdGF0ZW1lbnQgc3QsIG9tcF9lbmRfc3Q7 CisgIGdmY19zdGF0ZW1lbnQgc3QsIG9tcF9lbmRfc3QsIGZpcnN0X3N0OwogICBnZmNfY29k ZSAqY3AsICpucDsKICAgZ2ZjX3N0YXRlX2RhdGEgczsKIApAQCAtNTg1Nyw3ICs1ODU3LDcg QEAgcGFyc2Vfb21wX3N0cnVjdHVyZWRfYmxvY2sgKGdmY19zdGF0ZW1lbnQgb21wX3N0LCBi b29sIHdvcmtzaGFyZV9zdG10c19vbmx5KQogICBnZmNfbmFtZXNwYWNlICpteV9ucyA9IE5V TEw7CiAgIGdmY19uYW1lc3BhY2UgKm15X3BhcmVudCA9IE5VTEw7CiAKLSAgc3QgPSBuZXh0 X3N0YXRlbWVudCAoKTsKKyAgZmlyc3Rfc3QgPSBzdCA9IG5leHRfc3RhdGVtZW50ICgpOwog CiAgIGlmIChzdCA9PSBTVF9CTE9DSykKICAgICB7CkBAIC01ODc2LDkgKzU4NzYsMjggQEAg cGFyc2Vfb21wX3N0cnVjdHVyZWRfYmxvY2sgKGdmY19zdGF0ZW1lbnQgb21wX3N0LCBib29s IHdvcmtzaGFyZV9zdG10c19vbmx5KQogICAgICAgbmV3X3N0LmV4dC5ibG9jay5ucyA9IG15 X25zOwogICAgICAgbmV3X3N0LmV4dC5ibG9jay5hc3NvYyA9IE5VTEw7CiAgICAgICBhY2Nl cHRfc3RhdGVtZW50IChTVF9CTE9DSyk7Ci0gICAgICBzdCA9IHBhcnNlX3NwZWMgKFNUX05P TkUpOworICAgICAgZmlyc3Rfc3QgPSBuZXh0X3N0YXRlbWVudCAoKTsKKyAgICAgIHN0ID0g cGFyc2Vfc3BlYyAoZmlyc3Rfc3QpOwogICAgIH0KIAorICBpZiAob21wX2VuZF9zdCA9PSBT VF9PTVBfRU5EX1RBUkdFVCkKKyAgICBzd2l0Y2ggKGZpcnN0X3N0KQorICAgICAgeworICAg ICAgY2FzZSBTVF9PTVBfVEVBTVM6CisgICAgICBjYXNlIFNUX09NUF9URUFNU19ESVNUUklC VVRFOgorICAgICAgY2FzZSBTVF9PTVBfVEVBTVNfRElTVFJJQlVURV9TSU1EOgorICAgICAg Y2FzZSBTVF9PTVBfVEVBTVNfRElTVFJJQlVURV9QQVJBTExFTF9ETzoKKyAgICAgIGNhc2Ug U1RfT01QX1RFQU1TX0RJU1RSSUJVVEVfUEFSQUxMRUxfRE9fU0lNRDoKKyAgICAgIGNhc2Ug U1RfT01QX1RFQU1TX0xPT1A6CisJeworCSAgZ2ZjX3N0YXRlX2RhdGEgKnN0ayA9IGdmY19z dGF0ZV9zdGFjay0+cHJldmlvdXM7CisJICBzdGstPnRhaWwtPmV4dC5vbXBfY2xhdXNlcy0+ dGFyZ2V0X2ZpcnN0X3N0X2lzX3RlYW1zID0gdHJ1ZTsKKwkgIGJyZWFrOworCX0KKyAgICAg IGRlZmF1bHQ6CisJYnJlYWs7CisgICAgICB9CisKICAgZG8KICAgICB7CiAgICAgICBpZiAo d29ya3NoYXJlX3N0bXRzX29ubHkpCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0 cmFuLmRnL2dvbXAvdGVhbXMtNi5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dv bXAvdGVhbXMtNi5mOTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LmJlNDUzZjI3ZjQwCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJh bi5kZy9nb21wL3RlYW1zLTYuZjkwCkBAIC0wLDAgKzEsNzggQEAKKyEgeyBkZy1kbyBjb21w aWxlIH0KKworISBQUiBmb3J0cmFuLzExMDcyNQorISBQUiBtaWRkbGUtZW5kLzcxMDY1CisK Kworc3Vicm91dGluZSBvbmUKKyEkb21wIHRhcmdldCAgISB7IGRnLWVycm9yICJPTVAgVEFS R0VUIHJlZ2lvbiBhdCAuMS4gd2l0aCBhIG5lc3RlZCBURUFNUyBhdCAuMi4gbWF5IG5vdCBj b250YWluIGFueSBvdGhlciBzdGF0ZW1lbnQsIGRlY2xhcmF0aW9uIG9yIGRpcmVjdGl2ZSBv dXRzaWRlIG9mIHRoZSBzaW5nbGUgVEVBTVMgY29uc3RydWN0IiB9CitibG9jaworICBpbnRl Z2VyIDo6IGkgICAhIDw8PCBpbnZhbGlkOiB2YXJpYWJsZSBkZWNsYXJhdGlvbgorICAhJG9t cCB0ZWFtcyAgISB7IGRnLWVycm9yICJPTVAgVEFSR0VUIHJlZ2lvbiBhdCAuMS4gd2l0aCBh IG5lc3RlZCBURUFNUyBhdCAuMi4gbWF5IG5vdCBjb250YWluIGFueSBvdGhlciBzdGF0ZW1l bnQsIGRlY2xhcmF0aW9uIG9yIGRpcmVjdGl2ZSBvdXRzaWRlIG9mIHRoZSBzaW5nbGUgVEVB TVMgY29uc3RydWN0IiB9CisgIGkgPSA1CisgICEkb21wIGVuZCB0ZWFtcworZW5kIGJsb2Nr CisKKyEkb21wIHRhcmdldCAgISB7IGRnLWVycm9yICJPTVAgVEFSR0VUIHJlZ2lvbiBhdCAu MS4gd2l0aCBhIG5lc3RlZCBURUFNUyBhdCAuMi4gbWF5IG5vdCBjb250YWluIGFueSBvdGhl ciBzdGF0ZW1lbnQsIGRlY2xhcmF0aW9uIG9yIGRpcmVjdGl2ZSBvdXRzaWRlIG9mIHRoZSBz aW5nbGUgVEVBTVMgY29uc3RydWN0IiB9CitibG9jaworICB0eXBlIHQgICAhIDw8PCBpbnZh bGlkOiB0eXBlIGRlY2xhcmF0aW9uCisgIGVuZCB0eXBlIHQKKyAgISRvbXAgdGVhbXMgICEg eyBkZy1lcnJvciAiT01QIFRBUkdFVCByZWdpb24gYXQgLjEuIHdpdGggYSBuZXN0ZWQgVEVB TVMgYXQgLjIuIG1heSBub3QgY29udGFpbiBhbnkgb3RoZXIgc3RhdGVtZW50LCBkZWNsYXJh dGlvbiBvciBkaXJlY3RpdmUgb3V0c2lkZSBvZiB0aGUgc2luZ2xlIFRFQU1TIGNvbnN0cnVj dCIgfQorICBpID0gNQorICAhJG9tcCBlbmQgdGVhbXMKK2VuZCBibG9jaworCishJG9tcCB0 YXJnZXQKKyAgISBUaGUgZm9sbG93aW5nIGlzIGludmFsaWQgLSBidXQgbm90IGRldGVjdGVk IGFzIFNUX05PTkUgaXMgcmV0dXJuZWQ6CisgICEkb21wIGVycm9yIGF0KGNvbXBpbGF0aW9u KSBzZXZlcml0eSh3YXJuaW5nKSAgISB7IGRnLXdhcm5pbmcgIk9NUCBFUlJPUiBlbmNvdW50 ZXJlZCIgfQorICAhJG9tcCB0ZWFtcworICBpID0gNQorICAhJG9tcCBlbmQgdGVhbXMKKyEk b21wIGVuZCB0YXJnZXQKKworISRvbXAgdGFyZ2V0CisgICEgVGhlIGZvbGxvd2luZyBpcyBp bnZhbGlkIC0gYnV0IG5vdCBkZXRlY3RlZCBhcyBTVF9OT05FIGlzIHJldHVybmVkOgorICAh JG9tcCBub3RoaW5nICEgPDw8IGludmFsaWQ6IGRpcmVjdGl2ZQorICAhJG9tcCB0ZWFtcwor ICBpID0gNQorICAhJG9tcCBlbmQgdGVhbXMKKyEkb21wIGVuZCB0YXJnZXQKK2VuZAorCisK K3N1YnJvdXRpbmUgdHdvCishJG9tcCB0YXJnZXQgISB7IGRnLWVycm9yICJPTVAgVEFSR0VU IHJlZ2lvbiBhdCAuMS4gd2l0aCBhIG5lc3RlZCBURUFNUyBhdCAuMi4gbWF5IG5vdCBjb250 YWluIGFueSBvdGhlciBzdGF0ZW1lbnQsIGRlY2xhcmF0aW9uIG9yIGRpcmVjdGl2ZSBvdXRz aWRlIG9mIHRoZSBzaW5nbGUgVEVBTVMgY29uc3RydWN0IiB9CitibG9jaworICBpbnRlZ2Vy IDo6IGkgICAhIDw8PCBpbnZhbGlkOiB2YXJpYWJsZSBkZWNsYXJhdGlvbgorICAhJG9tcCB0 ZWFtcyBkaXN0cmlidXRlICAhIHsgZGctZXJyb3IgIk9NUCBUQVJHRVQgcmVnaW9uIGF0IC4x LiB3aXRoIGEgbmVzdGVkIFRFQU1TIGF0IC4yLiBtYXkgbm90IGNvbnRhaW4gYW55IG90aGVy IHN0YXRlbWVudCwgZGVjbGFyYXRpb24gb3IgZGlyZWN0aXZlIG91dHNpZGUgb2YgdGhlIHNp bmdsZSBURUFNUyBjb25zdHJ1Y3QiIH0KKyAgICBkbyBpID0gMSwgNQorICAgIGVuZCBkbwor ICAhJG9tcCBlbmQgdGVhbXMgZGlzdHJpYnV0ZQorZW5kIGJsb2NrCisKKyEkb21wIHRhcmdl dCAgISB7IGRnLWVycm9yICJPTVAgVEFSR0VUIHJlZ2lvbiBhdCAuMS4gd2l0aCBhIG5lc3Rl ZCBURUFNUyBhdCAuMi4gbWF5IG5vdCBjb250YWluIGFueSBvdGhlciBzdGF0ZW1lbnQsIGRl Y2xhcmF0aW9uIG9yIGRpcmVjdGl2ZSBvdXRzaWRlIG9mIHRoZSBzaW5nbGUgVEVBTVMgY29u c3RydWN0IiB9CitibG9jaworICB0eXBlIHQgICAhIDw8PCBpbnZhbGlkOiB0eXBlIGRlY2xh cmF0aW9uCisgIGVuZCB0eXBlIHQKKyAgISRvbXAgdGVhbXMgZGlzdHJpYnV0ZSBwYXJhbGxl bCBkbyAhIHsgZGctZXJyb3IgIk9NUCBUQVJHRVQgcmVnaW9uIGF0IC4xLiB3aXRoIGEgbmVz dGVkIFRFQU1TIGF0IC4yLiBtYXkgbm90IGNvbnRhaW4gYW55IG90aGVyIHN0YXRlbWVudCwg ZGVjbGFyYXRpb24gb3IgZGlyZWN0aXZlIG91dHNpZGUgb2YgdGhlIHNpbmdsZSBURUFNUyBj b25zdHJ1Y3QiIH0KKyAgZG8gaSA9IDEsIDUKKyAgZW5kIGRvCitlbmQgYmxvY2sKKworISRv bXAgdGFyZ2V0CisgICEgVGhlIGZvbGxvd2luZyBpcyBpbnZhbGlkIC0gYnV0IG5vdCBkZXRl Y3RlZCBhcyBTVF9OT05FIGlzIHJldHVybmVkOgorICAhJG9tcCBlcnJvciBhdChjb21waWxh dGlvbikgc2V2ZXJpdHkod2FybmluZykgICEgeyBkZy13YXJuaW5nICJPTVAgRVJST1IgZW5j b3VudGVyZWQiIH0KKyAgISRvbXAgdGVhbXMgbG9vcAorICBkbyBpID0gNSwgMTAKKyAgZW5k IGRvCishJG9tcCBlbmQgdGFyZ2V0CisKKyEkb21wIHRhcmdldAorICAhIFRoZSBmb2xsb3dp bmcgaXMgaW52YWxpZCAtIGJ1dCBub3QgZGV0ZWN0ZWQgYXMgU1RfTk9ORSBpcyByZXR1cm5l ZDoKKyAgISRvbXAgbm90aGluZyAhIDw8PCBpbnZhbGlkOiBkaXJlY3RpdmUKKyAgISRvbXAg dGVhbXMgZGlzdHJpYnV0ZSBzaW1kCisgIGRvIGkgPSAtMywgNQorICBlbmQgZG8KKyAgISRv bXAgZW5kIHRlYW1zIGRpc3RyaWJ1dGUgc2ltZAorISRvbXAgZW5kIHRhcmdldAorZW5kCg== --------------6QEGHxpVWtZJLJ0joj6J0WFA--