From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id MChuFmQt22X1HQAAe85BDQ:P1 (envelope-from ) for ; Sun, 25 Feb 2024 13:07:00 +0100 Received: from aspmx1.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2.migadu.com with LMTPS id MChuFmQt22X1HQAAe85BDQ (envelope-from ) for ; Sun, 25 Feb 2024 13:07:00 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=posteo.net header.s=2017 header.b=mi2+2kkF; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=posteo.net ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1708862820; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=DnXBpqZs7Ug63QrFRLE7bHxKcQP5mO2TBoVctlzbmSg=; b=JUbpXNpzQTTIy29XFINWEnlWtYPNozehRwnKBnwnm0NjkEeBpRRIYcclJrd6a1ob0R1NAZ VUDiU52f9EcNsXXNFAvzPZBolbdiPZh+oqpDF+QjLfms/a75qqq6WobITa+iXhi14NL219 NmE9k8uLTkD4YrWHrUyZJpOiZLvVo8R+0KqdGkZupf/3mnwoXEdoQMsekaOf8dmcoQPTvS cNSgnxbF0OrofkfQK+k6g27uiPMiRGKYrlFNKVGiJT9CW23t4Q8c6LvvMFfKv6xKr7YHek Ah7qPsBPEoxacR0qeeRimyD8aMgH9/RhCipVwN1Vt41AB6/Gs0Npbptq+LwbkQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=posteo.net header.s=2017 header.b=mi2+2kkF; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=posteo.net ARC-Seal: i=1; s=key1; d=yhetil.org; t=1708862820; a=rsa-sha256; cv=none; b=sOyG75Kx/E5vGqin0PuXMAEU5pBZoUmamxTJ+nr/V3H2rK81YyxyFmeIwDqKsNJME6fNps ALQ27Eh2A6p2hTSQ/tkMLWbVxtt9QtEANS7M1xU82GMOciXWhANkoxcsROFEg2PLcBFxLE q/PfWlQtrVkrIGCOP9bbDBGFbox8z9mWKYinQugjaF3KPc02Bqgprcig1y6CdMZ5C4YFzK tX6WZBzXosEvpqBuF2g9POc+eW2TqD4DFdoNWlzH89flVJBoyC2uK1Fdej02m4Sgna74Ke 95OqiqiQC7C6QpyotnkeSyCYpXPkns7LwguADC8z7BbF8FZOAgY5RaevAFmjFQ== Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 7F1B4435B7 for ; Sun, 25 Feb 2024 13:06:59 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1reDGo-0004nT-GP; Sun, 25 Feb 2024 07:06:14 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1reDGn-0004mZ-9G for emacs-orgmode@gnu.org; Sun, 25 Feb 2024 07:06:13 -0500 Received: from mout01.posteo.de ([185.67.36.65]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1reDGl-0004RS-2w for emacs-orgmode@gnu.org; Sun, 25 Feb 2024 07:06:13 -0500 Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 26EF5240029 for ; Sun, 25 Feb 2024 13:06:08 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1708862768; bh=Mcw8FpI/weByTraZETERfETz+i3i5lhgj9a5LTyhOKY=; h=MIME-Version:Content-Type:Date:From:To:Cc:Subject:Message-ID: From; b=mi2+2kkF0Ls/34C7Yb7XfAZBHAmoHlFi+skfHms3mmiSbz5W8IonaeMV0ql9+9Z8F ApPLH0U33hZzV6+9/C62TpNd3bXwE9sDDY2nEXYiMg708jeJRlSqZoS1T2LqwXdNGD siZ7UoEAu7eFDTUnRFy0bm1ajcn0fLV5RL+jD+py/9kZjladBNln7xlVWf2Mtj5hBK gD9hqVTM0jjRoHFlPzQ3nLGuTAo3Qp0eEHLk1rBrb71rQ4gyyBrEOnpy6NKWu30cSg nm0RJ4HofSx7ZCoAJ1iztDwL7OiDvpBHL9CTuzMWha48p8If/UI2CoKfywG/QVF+/Y 7gJYEI2+eEGEQ== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4TjMsW4gcCz6twL; Sun, 25 Feb 2024 13:06:07 +0100 (CET) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_fb197daf05aa8bd732a780d5fe6a152e" Date: Sun, 25 Feb 2024 12:06:07 +0000 From: gerard.vermeulen@posteo.net To: Ihor Radchenko Cc: Emacs orgmode , emacs-orgmode-bounces+gerard.vermeulen=posteo.net@gnu.org Subject: Re: [PATCH] org-babel-demarcate-block: split using element API In-Reply-To: <87h6hzi9cy.fsf@localhost> References: <7e41f9b6e9026a404e256f33371e974c@posteo.net> <87y1d55fc6.fsf@localhost> <37fdcc4bfcf734c2e5ec439d40b4f7d8@posteo.net> <878r50yqmo.fsf@localhost> <442006329cfba666710c989aece5191a@posteo.net> <261356c53e857e0bc4b04f884366edfa@posteo.net> <87bk9uy31w.fsf@localhost> <680e4a4fccf4f3c5c8f51d8215257eff@posteo.net> <87a5p9uute.fsf@localhost> <87wmscrty4.fsf@localhost> <2c82fa1399ddaa52ebe5bb21e241fb5f@posteo.net> <87o7dll7vn.fsf@localhost> <874je4hjmr.fsf@localhost> <87frxmtasr.fsf@localhost> <87h6hzi9cy.fsf@localhost> Message-ID: <067f694028817e59ee3d0c49dc80dd3b@posteo.net> Received-SPF: pass client-ip=185.67.36.65; envelope-from=gerard.vermeulen@posteo.net; helo=mout01.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN X-Migadu-Spam-Score: -8.49 X-Spam-Score: -8.49 X-Migadu-Queue-Id: 7F1B4435B7 X-Migadu-Scanner: mx11.migadu.com X-TUID: hkUvGTUJA2vS --=_fb197daf05aa8bd732a780d5fe6a152e Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 23.02.2024 14:43, Ihor Radchenko wrote: > gerard.vermeulen@posteo.net writes: > [...] >> >> I rewrote my `org-babel-edit-prep:python' to get rid of user-errors >> but >> then I bumped on the user-error coming from >> `org-src--make-source-overlay'. > > This is strange. `org-src--make-source-overlay' does not use > `org-element' API. I cannot see how you are getting such warnings from > there. I am using since a few days a clone of the mailed `org-babel-edit-prep:python' function (an irrelevant fix for setting point) and it works without glitches. I have no explanation of what happened. I added the caveat: This patch is incompatible with `org-babel-edit-prep:' functions that signal `user-error's. to the commit message and cleaned it up a bit. I also removed the scaffolding from the tests that checks where mark and point are. The tests pass with make test. Patch attached. Regards -- Gerard --=_fb197daf05aa8bd732a780d5fe6a152e Content-Transfer-Encoding: base64 Content-Type: application/octet-stream; name=0001-org-babel-demarcate-block-split-using-element-API.patch Content-Disposition: attachment; filename=0001-org-babel-demarcate-block-split-using-element-API.patch; size=18844 RnJvbSA0MWVjMjQ2MTY4NDkyMDg4Y2I5ZTRkODczN2E0MzQ1YzUyM2E0OGUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBHZXJhcmQgVmVybWV1bGVuIDxnZXJhcmQudmVybWV1bGVuQHBv c3Rlby5uZXQ+CkRhdGU6IFRodSwgMTEgSmFuIDIwMjQgMjA6MjA6MDEgKzAxMDAKU3ViamVjdDog W1BBVENIXSBvcmctYmFiZWwtZGVtYXJjYXRlLWJsb2NrOiBzcGxpdCB1c2luZyBlbGVtZW50IEFQ SQoKKiBsaXNwL29iLWJhYmVsLmVsIChvcmctYmFiZWwtZGVtYXJjYXRlLWJsb2NrKTogTW9kaWZ5 IGEgY29weQpvZiAob3JnLWVsZW1lbnQtYXQtcG9pbnQpIHRvIHJlcGxhY2UgdGhlIG9sZCBzb3Vy Y2UgYmxvY2sgd2l0aCAyIG9yIDMKbmV3IG1vZGlmaWVkIGNvcGllcyBieSBtZWFucyBvZiBgb3Jn LWVsZW1lbnQtaW50ZXJwcmV0LWRhdGEnLiAgVGhlIDFzdApzb3VyY2UgYmxvY2sgY29udGFpbnMg dGhlIHRleHQgZnJvbSB0aGUgYm9keSBvZiB0aGUgb2xkIGJsb2NrIGJlZm9yZQpwb2ludCBvciBy ZWdpb24sIHRoZSAybmQgYmxvY2sgY29udGFpbnMgdGhlIGJvZHkgdGV4dCBhZnRlciBwb2ludCBv cgpib2R5IHRleHQgd2l0aGluIHJlZ2lvbiwgYW5kIGluIGNhc2Ugb2YgcmVnaW9uLCB0aGUgM3Jk IGJsb2NrIGNvbnRhaW5zCnRoZSB0ZXh0IGFmdGVyIHJlZ2lvbi4gIFRoZSBjYXB0aW9uIGFuZCB0 aGUgbmFtZSBhcmUgZGVsZXRlZCBmcm9tIHRoZQoxIG9yIDIgYmxvY2tzIGJlbG93IHRoZSB1cHBl ciBzb3VyY2UgYmxvY2suICBJbmRlbnQgYWxsIGJsb2NrcwppbW1lZGlhdGVseSBhZnRlciBpbnNl cnRpb24uICBVc2UgOnBvc3QtYmxhbmsgdG8gY29udHJvbCB3aGl0ZSBsaW5lcwpiZXR3ZWVuIGlu c2VydGVkIGJsb2Nrcy4gIExlYXZlIHBvaW50IGF0IHRoZSBsYXN0IGluc2VydGVkIGJsb2NrLgpU cnlpbmcgdG8gc3BsaXQgd2hlbiBwb2ludCBvciByZWdpb24gaXMgbm90IHdpdGhpbiB0aGUgYm9k eSBvZiB0aGUgb2xkCnNvdXJjZSBibG9jayByYWlzZXMgYW4gdXNlci1lcnJvci4KKiBsaXNwL29i LWJhYmVsIChvcmctZ2V0LXNyYy1ibG9jay1pbmZvKTogYWRkIHRoZSAid2l0aGluIGJsYW5rIGxp bmVzCmFmdGVyIGEgc291cmNlIGJsb2NrIiBjb25kaXRpb24gdG8gdGhlIGRvYy1zdHJpbmcgdG8g bWF0Y2ggaXQgd2l0aCB0aGUKZG9jLXN0cmluZyBvZiBhbmQgYSBjb21tZW50IGluIGBvcmctYmFi ZWwtZGVtYXJjYXRlLWJsb2NrJy4KKiB0ZXN0aW5nL2xpc3AvdGVzdC1vYi5lbCAodGVzdC1vYi9k ZW1hcmNhdGUtYmxvY2stc3BsaXQtZHVwbGljYXRpb24pCih0ZXN0LW9iL2RlbWFyY2F0ZS1ibG9j ay1zcGxpdC1wcmVmaXgtcG9pbnQpCih0ZXN0LW9iL2RlbWFyY2F0ZS1ibG9jay1zcGxpdC1wcmVm aXgtcmVnaW9uKQoodGVzdC1vYi9kZW1hcmNhdGUtYmxvY2stc3BsaXQtdXNlci1lcnJvcnMpCih0 ZXN0LW9iL2RlbWFyY2F0ZS1ibG9jay13cmFwLXBvaW50KQoodGVzdC1vYi9kZW1hcmNhdGUtYmxv Y2std3JhcC1yZWdpb24pOiBOZXcgdGVzdHMgdG8gY2hlY2sgdGVzdCBjYXNlcwp0aGF0IGJyb2tl IGVhcmxpZXIgdmVyc2lvbnMgb2YgdGhpcyBwYXRjaC4KClRoaXMgcGF0Y2ggaXMgaW5jb21wYXRp YmxlIHdpdGggYG9yZy1iYWJlbC1lZGl0LXByZXA6PExBTkc+JyBmdW5jdGlvbnMKdGhhdCBzaWdu YWwgYHVzZXItZXJyb3Incy4KCkxpbms6IGh0dHBzOi8vbGlzdC5vcmdtb2RlLm9yZy83ZTQxZjli NmU5MDI2YTQwNGUyNTZmMzMzNzFlOTc0Y0Bwb3N0ZW8ubmV0LwotLS0KIGxpc3Avb2ItY29yZS5l bCAgICAgICAgIHwgIDk0ICsrKysrKysrKysrKy0tLS0tCiB0ZXN0aW5nL2xpc3AvdGVzdC1vYi5l bCB8IDIxOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAyIGZpbGVz IGNoYW5nZWQsIDI4NSBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9saXNwL29iLWNvcmUuZWwgYi9saXNwL29iLWNvcmUuZWwKaW5kZXggYmZlYWMyNTdiLi5lMzEx MGEzZjEgMTAwNjQ0Ci0tLSBhL2xpc3Avb2ItY29yZS5lbAorKysgYi9saXNwL29iLWNvcmUuZWwK QEAgLTczLDEwICs3MywxMiBAQAogKGRlY2xhcmUtZnVuY3Rpb24gb3JnLWVsZW1lbnQtcGFyZW50 ICJvcmctZWxlbWVudC1hc3QiIChub2RlKSkKIChkZWNsYXJlLWZ1bmN0aW9uIG9yZy1lbGVtZW50 LXR5cGUgIm9yZy1lbGVtZW50LWFzdCIgKG5vZGUgJm9wdGlvbmFsIGFub255bW91cykpCiAoZGVj bGFyZS1mdW5jdGlvbiBvcmctZWxlbWVudC10eXBlLXAgIm9yZy1lbGVtZW50LWFzdCIgKG5vZGUg Jm9wdGlvbmFsIHR5cGVzKSkKKyhkZWNsYXJlLWZ1bmN0aW9uIG9yZy1lbGVtZW50LWludGVycHJl dC1kYXRhICJvcmctZWxlbWVudCIgKGRhdGEpKQogKGRlY2xhcmUtZnVuY3Rpb24gb3JnLWVudHJ5 LWdldCAib3JnIiAocG9tIHByb3BlcnR5ICZvcHRpb25hbCBpbmhlcml0IGxpdGVyYWwtbmlsKSkK IChkZWNsYXJlLWZ1bmN0aW9uIG9yZy1lc2NhcGUtY29kZS1pbi1yZWdpb24gIm9yZy1zcmMiIChi ZWcgZW5kKSkKIChkZWNsYXJlLWZ1bmN0aW9uIG9yZy1mb3J3YXJkLWhlYWRpbmctc2FtZS1sZXZl bCAib3JnIiAoYXJnICZvcHRpb25hbCBpbnZpc2libGUtb2spKQogKGRlY2xhcmUtZnVuY3Rpb24g b3JnLWluLWNvbW1lbnRlZC1oZWFkaW5nLXAgIm9yZyIgKCZvcHRpb25hbCBuby1pbmhlcml0YW5j ZSkpCisoZGVjbGFyZS1mdW5jdGlvbiBvcmctaW5kZW50LWJsb2NrICJvcmciICgpKQogKGRlY2xh cmUtZnVuY3Rpb24gb3JnLWluZGVudC1saW5lICJvcmciICgpKQogKGRlY2xhcmUtZnVuY3Rpb24g b3JnLWxpc3QtZ2V0LWxpc3QtZW5kICJvcmctbGlzdCIgKGl0ZW0gc3RydWN0IHByZXZzKSkKIChk ZWNsYXJlLWZ1bmN0aW9uIG9yZy1saXN0LXByZXZzLWFsaXN0ICJvcmctbGlzdCIgKHN0cnVjdCkp CkBAIC03MDAsOCArNzAyLDkgQEAgQnkgZGVmYXVsdCwgY29uc2lkZXIgdGhlIGJsb2NrIGF0IHBv aW50LiAgSG93ZXZlciwgd2hlbiBvcHRpb25hbAogYXJndW1lbnQgREFUVU0gaXMgcHJvdmlkZWQs IGV4dHJhY3QgaW5mb3JtYXRpb24gZnJvbSB0aGF0IHBhcnNlZAogb2JqZWN0IGluc3RlYWQuCiAK LVJldHVybiBuaWwgaWYgcG9pbnQgaXMgbm90IG9uIGEgc291cmNlIGJsb2NrLiAgT3RoZXJ3aXNl LCByZXR1cm4KLWEgbGlzdCB3aXRoIHRoZSBmb2xsb3dpbmcgcGF0dGVybjoKK1JldHVybiBuaWwg aWYgcG9pbnQgaXMgbm90IG9uIGEgc291cmNlIGJsb2NrIChibGFuayBsaW5lcyBhZnRlciBhCitz b3VyY2UgYmxvY2sgYXJlIGNvbnNpZGVyZWQgYSBwYXJ0IG9mIHRoYXQgc291cmNlIGJsb2NrKS4K K090aGVyd2lzZSwgcmV0dXJuIGEgbGlzdCB3aXRoIHRoZSBmb2xsb3dpbmcgcGF0dGVybjoKIAog ICAobGFuZ3VhZ2UgYm9keSBhcmd1bWVudHMgc3dpdGNoZXMgbmFtZSBzdGFydCBjb2RlcmVmKSIK ICAgKGxldCogKChkYXR1bSAob3IgZGF0dW0gKG9yZy1lbGVtZW50LWNvbnRleHQpKSkKQEAgLTIw NzUsNyArMjA3OCw3IEBAIFdpdGggb3B0aW9uYWwgcHJlZml4IGFyZ3VtZW50IEFSRywganVtcCBi YWNrd2FyZCBBUkcgbWFueSBzb3VyY2UgYmxvY2tzLiIKICAgICAgIChnb3RvLWNoYXIgKG1hdGNo LWJlZ2lubmluZyA1KSkpKSkKIAogKGRlZnVuIG9yZy1iYWJlbC1kZW1hcmNhdGUtYmxvY2sgKCZv cHRpb25hbCBhcmcpCi0gICJXcmFwIG9yIHNwbGl0IHRoZSBjb2RlIGluIHRoZSByZWdpb24gb3Ig b24gdGhlIHBvaW50LgorICAiV3JhcCBvciBzcGxpdCB0aGUgY29kZSBpbiBhbiBhY3RpdmUgcmVn aW9uIG9yIGF0IHBvaW50LgogCiBXaXRoIHByZWZpeCBhcmd1bWVudCBBUkcsIGFsc28gY3JlYXRl IGEgbmV3IGhlYWRpbmcgYXQgcG9pbnQuCiAKQEAgLTIwODUsNDEgKzIwODgsNzYgQEAgaXMgY3Jl YXRlZC4gIEluIGJvdGggY2FzZXMgaWYgdGhlIHJlZ2lvbiBpcyBkZW1hcmNhdGVkIGFuZCBpZiB0 aGUKIHJlZ2lvbiBpcyBub3QgYWN0aXZlIHRoZW4gdGhlIHBvaW50IGlzIGRlbWFyY2F0ZWQuCiAK IFdoZW4gY2FsbGVkIHdpdGhpbiBibGFuayBsaW5lcyBhZnRlciBhIGNvZGUgYmxvY2ssIGNyZWF0 ZSBhIG5ldyBjb2RlCi1ibG9jayBvZiB0aGUgc2FtZSBsYW5ndWFnZSB3aXRoIHRoZSBwcmV2aW91 cy4iCitibG9jayBvZiB0aGUgc2FtZSBsYW5ndWFnZSBhcyB0aGUgcHJldmlvdXMuIgogICAoaW50 ZXJhY3RpdmUgIlAiKQogICAobGV0KiAoKGluZm8gKG9yZy1iYWJlbC1nZXQtc3JjLWJsb2NrLWlu Zm8gJ25vLWV2YWwpKQogCSAoc3RhcnQgKG9yZy1iYWJlbC13aGVyZS1pcy1zcmMtYmxvY2staGVh ZCkpCiAgICAgICAgICA7OyBgc3RhcnQnIHdpbGwgYmUgbmlsIHdoZW4gd2l0aGluIHNwYWNlIGxp bmVzIGFmdGVyIHNyYyBibG9jay4KIAkgKGJsb2NrIChhbmQgc3RhcnQgKG1hdGNoLXN0cmluZyAw KSkpCi0JIChoZWFkZXJzIChhbmQgc3RhcnQgKG1hdGNoLXN0cmluZyA0KSkpCisgICAgICAgICAo Ym9keS1iZWcgKGFuZCBzdGFydCAobWF0Y2gtYmVnaW5uaW5nIDUpKSkKKyAgICAgICAgIChib2R5 LWVuZCAoYW5kIHN0YXJ0IChtYXRjaC1lbmQgNSkpKQogCSAoc3RhcnMgKGNvbmNhdCAobWFrZS1z dHJpbmcgKG9yIChvcmctY3VycmVudC1sZXZlbCkgMSkgPyopICIgIikpCiAJICh1cHBlci1jYXNl LXAgKGFuZCBibG9jawogCQkJICAgIChsZXQgKGNhc2UtZm9sZC1zZWFyY2gpCiAJCQkgICAgICAo c3RyaW5nLW1hdGNoLXAgIiNcXCtCRUdJTl9TUkMiIGJsb2NrKSkpKSkKICAgICAoaWYgKGFuZCBp bmZvIHN0YXJ0KSA7OyBBdCBzcmMgYmxvY2ssIGJ1dCBub3Qgd2l0aGluIGJsYW5rIGxpbmVzIGFm dGVyIGl0LgotICAgICAgICAobWFwYwotICAgICAgICAgKGxhbWJkYSAocGxhY2UpCi0gICAgICAg ICAgIChzYXZlLWV4Y3Vyc2lvbgotICAgICAgICAgICAgIChnb3RvLWNoYXIgcGxhY2UpCi0gICAg ICAgICAgICAgKGxldCAoKGxhbmcgKG50aCAwIGluZm8pKQotICAgICAgICAgICAgICAgICAgIChp bmRlbnQgKG1ha2Utc3RyaW5nIChvcmctY3VycmVudC10ZXh0LWluZGVudGF0aW9uKSA/XHMpKSkK LQkgICAgICAgKHdoZW4gKHN0cmluZy1tYXRjaCAiXltbOnNwYWNlOl1dKiQiCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChidWZmZXItc3Vic3RyaW5nIChsaW5lLWJlZ2lubmlu Zy1wb3NpdGlvbikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGxpbmUtZW5kLXBvc2l0aW9uKSkpCi0gICAgICAgICAgICAgICAgIChkZWxldGUt cmVnaW9uIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikgKGxpbmUtZW5kLXBvc2l0aW9uKSkpCi0g ICAgICAgICAgICAgICAoaW5zZXJ0IChjb25jYXQKLQkJICAgICAgICAoaWYgKGxvb2tpbmctYXQg Il4iKSAiIiAiXG4iKQotCQkgICAgICAgIGluZGVudCAoaWYgdXBwZXItY2FzZS1wICIjK0VORF9T UkNcbiIgIiMrZW5kX3NyY1xuIikKLQkJICAgICAgICAoaWYgYXJnIHN0YXJzIGluZGVudCkgIlxu IgotCQkgICAgICAgIGluZGVudCAoaWYgdXBwZXItY2FzZS1wICIjK0JFR0lOX1NSQyAiICIjK2Jl Z2luX3NyYyAiKQotCQkgICAgICAgIGxhbmcKLQkJICAgICAgICAoaWYgKD4gKGxlbmd0aCBoZWFk ZXJzKSAxKQotCQkJICAgIChjb25jYXQgIiAiIGhlYWRlcnMpIGhlYWRlcnMpCi0JCSAgICAgICAg KGlmIChsb29raW5nLWF0ICJbXG5ccl0iKQotCQkJICAgICIiCi0JCQkgIChjb25jYXQgIlxuIiAo bWFrZS1zdHJpbmcgKGN1cnJlbnQtY29sdW1uKSA/ICkpKSkpKSkKLQkgICAobW92ZS1lbmQtb2Yt bGluZSAyKSkKLSAgICAgICAgIChzb3J0IChpZiAob3JnLXJlZ2lvbi1hY3RpdmUtcCkgKGxpc3Qg KG1hcmspIChwb2ludCkpIChsaXN0IChwb2ludCkpKSAjJz4pKQorICAgICAgICAobGV0KiAoKGNv cHkgKG9yZy1lbGVtZW50LWNvcHkgKG9yZy1lbGVtZW50LWF0LXBvaW50KSkpCisgICAgICAgICAg ICAgICAoYmVmb3JlIChvcmctZWxlbWVudC1iZWdpbiBjb3B5KSkKKyAgICAgICAgICAgICAgIChi ZXlvbmQgKG9yZy1lbGVtZW50LWVuZCBjb3B5KSkKKyAgICAgICAgICAgICAgIChwYXJ0cworICAg ICAgICAgICAgICAgIChpZiAob3JnLXJlZ2lvbi1hY3RpdmUtcCkKKyAgICAgICAgICAgICAgICAg ICAgKGxpc3QgYm9keS1iZWcgKHJlZ2lvbi1iZWdpbm5pbmcpIChyZWdpb24tZW5kKSBib2R5LWVu ZCkKKyAgICAgICAgICAgICAgICAgIChsaXN0IGJvZHktYmVnIChwb2ludCkgYm9keS1lbmQpKSkK KyAgICAgICAgICAgICAgIChwYWRzIDs7IFRvIGNhbGN1bGF0ZSBsZWZ0LXNpZGUgd2hpdGUtc3Bh Y2UgcGFkZGluZy4KKyAgICAgICAgICAgICAgICAoaWYgKG9yZy1yZWdpb24tYWN0aXZlLXApCisg ICAgICAgICAgICAgICAgICAgIChsaXN0IChyZWdpb24tYmVnaW5uaW5nKSAocmVnaW9uLWVuZCkp CisgICAgICAgICAgICAgICAgICAobGlzdCAocG9pbnQpKSkpCisgICAgICAgICAgICAgICAobiAo LSAobGVuZ3RoIHBhcnRzKSAyKSkgOzsgMSBvciAyIHBhcnRzIGluIGBkb2xpc3QnIGJlbG93Lgor ICAgICAgICAgICAgICAgOzsgYHBvc3QtYmxhbmsnIGNhY2hlcyB0aGUgcHJvcGVydHkgYmVmb3Jl IHNldHRpbmcgaXQgdG8gMC4KKyAgICAgICAgICAgICAgIChwb3N0LWJsYW5rIChvcmctZWxlbWVu dC1wcm9wZXJ0eSA6cG9zdC1ibGFuayBjb3B5KSkpCisgICAgICAgICAgOzsgUG9pbnQgb3IgcmVn aW9uIGFyZSB3aXRoaW4gYm9keSB3aGVuIHBhcnRzIGlzIGluIGluY3JlYXNpbmcgb3JkZXIuCisg ICAgICAgICAgKHVubGVzcyAoYXBwbHkgIyc8PSBwYXJ0cykKKyAgICAgICAgICAgICh1c2VyLWVy cm9yICJTZWxlY3Qgd2l0aGluIHRoZSBzb3VyY2UgYmxvY2sgYm9keSB0byBzcGxpdCBpdCIpKQor ICAgICAgICAgIChzZXRxIHBhcnRzIChtYXBjYXIgKGxhbWJkYSAocCkgKGJ1ZmZlci1zdWJzdHJp bmcgKGNhciBwKSAoY2RyIHApKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXEt bWFwbiAjJ2NvbnMgcGFydHMgKGNkciBwYXJ0cykpKSkKKyAgICAgICAgICA7OyBNYXAgcG9zaXRp b25zIHRvIGNvbHVtbnMgZm9yIHdoaXRlLXNwYWNlIHBhZGRpbmcuCisgICAgICAgICAgKHNldHEg cGFkcyAobWFwY2FyIChsYW1iZGEgKHApIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgcCkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY3VycmVudC1jb2x1bW4pKSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcGFkcykpCisgICAgICAgICAgKHB1c2ggMCBwYWRzKSA7OyBU aGUgMXN0IHBhcnQgbmV2ZXIgcmVxdWlyZXMgd2hpdGUtc3BhY2UgcGFkZGluZy4KKyAgICAgICAg ICAoc2V0cSBwYXJ0cyAobWFwY2FyIChsYW1iZGEgKHApIChzdHJpbmctam9pbgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IChtYWtlLXN0cmluZyAoY2Fy IHApID9ccykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoY2RyIHApKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VxLW1hcG4gIydj b25zIHBhZHMgcGFydHMpKSkKKyAgICAgICAgICAoZGVsZXRlLXJlZ2lvbiBiZWZvcmUgYmV5b25k KQorICAgICAgICAgIDs7IFNldCBgOnBvc3QtYmxhbmsnIHRvIDAuICBXZSB0YWtlIGNhcmUgb2Yg c3BhY2luZyBiZXR3ZWVuIGJsb2Nrcy4KKyAgICAgICAgICAob3JnLWVsZW1lbnQtcHV0LXByb3Bl cnR5IGNvcHkgOnBvc3QtYmxhbmsgMCkKKyAgICAgICAgICAob3JnLWVsZW1lbnQtcHV0LXByb3Bl cnR5IGNvcHkgOnZhbHVlIChjYXIgcGFydHMpKQorICAgICAgICAgIChpbnNlcnQgKG9yZy1lbGVt ZW50LWludGVycHJldC1kYXRhIGNvcHkpKQorICAgICAgICAgIDs7IGBvcmctaW5kZW50LWJsb2Nr JyBtYXkgc2VlIGFub3RoZXIgYG9yZy1lbGVtZW50JyAoZS5nLiBwYXJhZ3JhcGgpCisgICAgICAg ICAgOzsgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGJsb2NrLiAgRW5zdXJlIHRvIGluZGVudCB0aGUg aW5zZXJ0ZWQgYmxvY2sKKyAgICAgICAgICA7OyBhbmQgbW92ZSBwb2ludCB0byBpdHMgZW5kLgor ICAgICAgICAgIChvcmctYmFiZWwtcHJldmlvdXMtc3JjLWJsb2NrIDEpCisgICAgICAgICAgKG9y Zy1pbmRlbnQtYmxvY2spCisgICAgICAgICAgKGdvdG8tY2hhciAob3JnLWVsZW1lbnQtZW5kIChv cmctZWxlbWVudC1hdC1wb2ludCkpKQorICAgICAgICAgIChvcmctZWxlbWVudC1wdXQtcHJvcGVy dHkgY29weSA6Y2FwdGlvbiBuaWwpCisgICAgICAgICAgKG9yZy1lbGVtZW50LXB1dC1wcm9wZXJ0 eSBjb3B5IDpuYW1lIG5pbCkKKyAgICAgICAgICA7OyBJbnNlcnQgdGhlIDJuZCBibG9jaywgYW5k IHRoZSAzcmQgYmxvY2sgd2hlbiByZWdpb24gaXMgYWN0aXZlLgorICAgICAgICAgIChkb2xpc3Qg KHBhcnQgKGNkciBwYXJ0cykpCisgICAgICAgICAgICAob3JnLWVsZW1lbnQtcHV0LXByb3BlcnR5 IGNvcHkgOnZhbHVlIHBhcnQpCisgICAgICAgICAgICAoaW5zZXJ0IChpZiBhcmcgKGNvbmNhdCBz dGFycyAiXG4iKSAiXG4iKSkKKyAgICAgICAgICAgIChjbC1kZWNmIG4pCisgICAgICAgICAgICAo d2hlbiAoPSBuIDApCisgICAgICAgICAgICAgIDs7IFVzZSBgcG9zdC1ibGFuaycgdG8gcmVzZXQg dGhlIHByb3BlcnR5IG9mIHRoZSBsYXN0IGJsb2NrLgorICAgICAgICAgICAgICAob3JnLWVsZW1l bnQtcHV0LXByb3BlcnR5IGNvcHkgOnBvc3QtYmxhbmsgcG9zdC1ibGFuaykpCisgICAgICAgICAg ICAoaW5zZXJ0IChvcmctZWxlbWVudC1pbnRlcnByZXQtZGF0YSBjb3B5KSkKKyAgICAgICAgICAg IDs7IEVuc3VyZSB0byBpbmRlbnQgdGhlIGluc2VydGVkIGJsb2NrIGFuZCBtb3ZlIHBvaW50IHRv IGl0cyBlbmQuCisgICAgICAgICAgICAob3JnLWJhYmVsLXByZXZpb3VzLXNyYy1ibG9jayAxKQor ICAgICAgICAgICAgKG9yZy1pbmRlbnQtYmxvY2spCisgICAgICAgICAgICAoZ290by1jaGFyIChv cmctZWxlbWVudC1lbmQgKG9yZy1lbGVtZW50LWF0LXBvaW50KSkpKQorICAgICAgICAgIDs7IExl YXZlIHBvaW50IGF0IHRoZSBsYXN0IGluc2VydGVkIGJsb2NrLgorICAgICAgICAgIChnb3RvLWNo YXIgKG9yZy1iYWJlbC1wcmV2aW91cy1zcmMtYmxvY2sgMSkpKQogICAgICAgKGxldCAoKHN0YXJ0 IChwb2ludCkpCiAJICAgIChsYW5nIChvciAoY2FyIGluZm8pIDsgUmV1c2UgbGFuZ3VhZ2UgZnJv bSBwcmV2aW91cyBibG9jay4KICAgICAgICAgICAgICAgICAgICAgICAoY29tcGxldGluZy1yZWFk CmRpZmYgLS1naXQgYS90ZXN0aW5nL2xpc3AvdGVzdC1vYi5lbCBiL3Rlc3RpbmcvbGlzcC90ZXN0 LW9iLmVsCmluZGV4IDQyYzc3Y2E1Ni4uYzA4OGFmN2M4IDEwMDY0NAotLS0gYS90ZXN0aW5nL2xp c3AvdGVzdC1vYi5lbAorKysgYi90ZXN0aW5nL2xpc3AvdGVzdC1vYi5lbApAQCAtMjU0NSw2ICsy NTQ1LDIyNSBAQCBhYmMKIAkJKGxhbWJkYSAoJnJlc3QgXykgKGVycm9yICJObyB3YXJuaW5ncyBz aG91bGQgb2NjdXIiKSkpKQogICAgICAgIChvcmctYmFiZWwtaW1wb3J0LWVsaXNwLWZyb20tZmls ZSAoYnVmZmVyLWZpbGUtbmFtZSkpKSkpKQogCisoZXJ0LWRlZnRlc3QgdGVzdC1vYi9kZW1hcmNh dGUtYmxvY2stc3BsaXQtZHVwbGljYXRpb24gKCkKKyAgIlRlc3QgZHVwbGljYXRpb24gb2YgbGFu Z3VhZ2UsIGJvZHksIHN3aXRjaGVzLCBhbmQgaGVhZGVycyBpbiBzcGxpdHRpbmcuIgorICAobGV0 ICgoY2FwdGlvbiAiIytjYXB0aW9uOiBjYXB0aW9uLiIpCisgICAgICAgIChyZWdleHAgKHJ4ICIj K2NhcHRpb246IGNhcHRpb24uIikpCisgICAgICAgIChvcmctYWRhcHQtaW5kZW50YXRpb24gbmls KSkKKyAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgKGZvcm1hdCAiCislcworIytoZWFkZXI6 IDp2YXIgZWRnZT1cImFsc28gZHVwbGljYXRlZFwiCisjK2hlYWRlcjogOndyYXAgXCJzcmMgYW55 LXNwYW5pc2ggLW5cIgorIytuYW1lOiBOb2JvZHkKKyMrYmVnaW5fc3JjIGFueS1lbmdsaXNoIC1p IC1uIDp2YXIgaGVyZT1cImR1cGxpY2F0ZWRcIiA6d3JhcCBcInNyYyBhbnktZW5nbGlzaCAtblwi CisKK2Fib3ZlIHNwbGl0Cis8cG9pbnQ+CitiZWxvdyBzcGxpdAorCisjK2VuZF9zcmMKK2RvIG5v dCBvcmctaW5kZW50LWJsb2NrIHRleHQgaGVyZQorIiBjYXB0aW9uKQorICAgICAgKGxldCAoKHdy YXAtdmFsICJzcmMgYW55LXNwYW5pc2ggLW4iKSBhYm92ZSBiZWxvdyBhdmFycyBidmFycykKKyAg ICAgICAgKG9yZy1iYWJlbC1kZW1hcmNhdGUtYmxvY2spCisgICAgICAgIChnb3RvLWNoYXIgKHBv aW50LW1pbikpCisgICAgICAgIChvcmctYmFiZWwtbmV4dC1zcmMtYmxvY2spIDs7IHVwcGVyIHNv dXJjZSBibG9jaworICAgICAgICAoc2V0cSBhYm92ZSAob3JnLWJhYmVsLWdldC1zcmMtYmxvY2st aW5mbykpCisgICAgICAgIChzZXRxIGF2YXJzIChvcmctYmFiZWwtLWdldC12YXJzIChudGggMiBh Ym92ZSkpKQorICAgICAgICAob3JnLWJhYmVsLW5leHQtc3JjLWJsb2NrKSA7OyBsb3dlciBzb3Vy Y2UgYmxvY2sKKyAgICAgICAgKHNldHEgYmVsb3cgKG9yZy1iYWJlbC1nZXQtc3JjLWJsb2NrLWlu Zm8pKQorICAgICAgICAoc2V0cSBidmFycyAob3JnLWJhYmVsLS1nZXQtdmFycyAobnRoIDIgYmVs b3cpKSkKKyAgICAgICAgOzsgZHVwbGljYXRlZCBtdWx0aS1saW5lIGhlYWRlciBhcmd1bWVudHM6 CisgICAgICAgIChzaG91bGQgKHN0cmluZz0gImFsc28gZHVwbGljYXRlZCIgKGNkciAoYXNzcSAn ZWRnZSBhdmFycykpKSkKKyAgICAgICAgKHNob3VsZCAoc3RyaW5nPSAiYWxzbyBkdXBsaWNhdGVk IiAoY2RyIChhc3NxICdlZGdlIGJ2YXJzKSkpKQorICAgICAgICAoc2hvdWxkIChzdHJpbmc9IHdy YXAtdmFsIChjZHIgKGFzc3EgOndyYXAgKG50aCAyIGFib3ZlKSkpKSkKKyAgICAgICAgKHNob3Vs ZCAoc3RyaW5nPSB3cmFwLXZhbCAoY2RyIChhc3NxIDp3cmFwIChudGggMiBiZWxvdykpKSkpCisg ICAgICAgIDs7IGR1cGxpY2F0ZWQgbGFuZ3VhZ2UsIG90aGVyIGhlYWRlciBhcmd1bWVudHMsIGFu ZCBzd2l0Y2hlczoKKyAgICAgICAgKHNob3VsZCAoc3RyaW5nPSAiYW55LWVuZ2xpc2giIChudGgg MCBhYm92ZSkpKQorICAgICAgICAoc2hvdWxkIChzdHJpbmc9ICJhbnktZW5nbGlzaCIgKG50aCAw IGJlbG93KSkpCisgICAgICAgIChzaG91bGQgKHN0cmluZz0gImFib3ZlIHNwbGl0IiAob3JnLXRy aW0gKG50aCAxIGFib3ZlKSkpKQorICAgICAgICAoc2hvdWxkIChzdHJpbmc9ICJiZWxvdyBzcGxp dCIgKG9yZy10cmltIChudGggMSBiZWxvdykpKSkKKyAgICAgICAgKHNob3VsZCAoc3RyaW5nPSAi ZHVwbGljYXRlZCIgKGNkciAoYXNzcSAnaGVyZSBhdmFycykpKSkKKyAgICAgICAgKHNob3VsZCAo c3RyaW5nPSAiZHVwbGljYXRlZCIgKGNkciAoYXNzcSAnaGVyZSBidmFycykpKSkKKyAgICAgICAg KHNob3VsZCAoc3RyaW5nPSAiLWkgLW4iIChudGggMyBhYm92ZSkpKQorICAgICAgICAoc2hvdWxk IChzdHJpbmc9ICItaSAtbiIgKG50aCAzIGJlbG93KSkpCisgICAgICAgIDs7IG5vbi1kdXBsaWNh dGlvbiBvZiBuYW1lIGFuZCBjYXB0aW9uLCB3aGljaCBpcyBub3QgaW4gYWJvdmUvYmVsb3cuCisg ICAgICAgIChzaG91bGQgKHN0cmluZz0gIk5vYm9keSIgKG50aCA0IGFib3ZlKSkpCisgICAgICAg IChzaG91bGQtbm90IChzdHJpbmc9ICIiIChudGggNCBiZWxvdykpKQorICAgICAgICAoZ290by1j aGFyIChwb2ludC1taW4pKQorICAgICAgICAoc2hvdWxkIChyZS1zZWFyY2gtZm9yd2FyZCByZWdl eHApKQorICAgICAgICAoc2hvdWxkLW5vdCAocmUtc2VhcmNoLWZvcndhcmQgcmVnZXhwIG5pbCAn bm9lcnJvcikpKSkpKQorCisoZXJ0LWRlZnRlc3QgdGVzdC1vYi9kZW1hcmNhdGUtYmxvY2stc3Bs aXQtcHJlZml4LXBvaW50ICgpCisgICJUZXN0IHByZWZpeCBhcmd1bWVudCBwb2ludCBzcGxpdHRp bmcuIgorICAobGV0ICgob3JnLWFkYXB0LWluZGVudGF0aW9uIHQpCisgICAgICAgIChvcmctZWRp dC1zcmMtY29udGVudC1pbmRlbnRhdGlvbiAyKQorICAgICAgICAob3JnLXNyYy1wcmVzZXJ2ZS1p bmRlbnRhdGlvbiBuaWwpCisgICAgICAgIChvay1jb2wgMTEpCisgICAgICAgIChzdGFycyAiXlxc KlxcKlxcKlxcKlxcKlxcKlxcKlxcKlxcKlxcKiIpKQorICAgIChvcmctdGVzdC13aXRoLXRlbXAt dGV4dCAiCisqKioqKioqKioqIDEwIHN0YXJzIHdpdGggcG9pbnQgYmV0d2VlbiB0d28gbGluZXMK KyAgICAgICAgICAgIytiZWdpbl9zcmMgZW1hY3MtbGlzcAorICAgICAgICAgICAgIDs7IHRvIHVw cGVyIGJsb2NrCisgICAgICAgICAgICAgPHBvaW50PgorICAgICAgICAgICAgIDs7IHRvIGxvd2Vy IGJsb2NrCisgICAgICAgICAgICMrZW5kX3NyYworIgorICAgICAgKG9yZy1iYWJlbC1kZW1hcmNh dGUtYmxvY2sgJ2EtcHJlZml4LWFyZykKKyAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCisg ICAgICAoZG9saXN0IChyZWdleHAgYCgsc3RhcnMKKyAgICAgICAgICAgICAgICAgICAgICAgICIj XFwrYmVnIiAiOzsgdG8gdXBwZXIgYmxvY2siICIjXFwrZW5kIgorICAgICAgICAgICAgICAgICAg ICAgICAgLHN0YXJzCisgICAgICAgICAgICAgICAgICAgICAgICAiI1xcK2JlZyIgIjs7IHRvIGxv d2VyIGJsb2NrIiAiI1xcK2VuZCIpKQorICAgICAgICAoc2hvdWxkIChyZS1zZWFyY2gtZm9yd2Fy ZCByZWdleHApKQorICAgICAgICAoZ290by1jaGFyIChtYXRjaC1iZWdpbm5pbmcgMCkpCisgICAg ICAgIChjb25kICgoc3RyaW5nPSByZWdleHAgc3RhcnMpCisgICAgICAgICAgICAgICAoc2hvdWxk ICg9IDAgKGN1cnJlbnQtY29sdW1uKSkpKQorICAgICAgICAgICAgICAoKHN0cmluZy1wcmVmaXgt cCAiOzsiIHJlZ2V4cCkKKyAgICAgICAgICAgICAgIChzaG91bGQgKD0gKCsgb2stY29sIG9yZy1l ZGl0LXNyYy1jb250ZW50LWluZGVudGF0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAo Y3VycmVudC1jb2x1bW4pKSkpCisgICAgICAgICAgICAgICh0IChzaG91bGQgKD0gb2stY29sIChj dXJyZW50LWNvbHVtbikpKSkpKSkpKQorCisoZXJ0LWRlZnRlc3QgdGVzdC1vYi9kZW1hcmNhdGUt YmxvY2stc3BsaXQtcHJlZml4LXJlZ2lvbiAoKQorICAiVGVzdCBwcmVmaXggYXJndW1lbnQgcmVn aW9uIHNwbGl0dGluZy4iCisgIChsZXQgKChvcmctYWRhcHQtaW5kZW50YXRpb24gdCkKKyAgICAg ICAgKG9yZy1lZGl0LXNyYy1jb250ZW50LWluZGVudGF0aW9uIDIpCisgICAgICAgIChvcmctc3Jj LXByZXNlcnZlLWluZGVudGF0aW9uIG5pbCkKKyAgICAgICAgKG9rLWNvbCAxMSkKKyAgICAgICAg KHN0YXJzICJeXFwqXFwqXFwqXFwqXFwqXFwqXFwqXFwqXFwqXFwqIikKKyAgICAgICAgKHBhcnRz ICcoInRvIHVwcGVyIGJsb2NrIiAibWFyayB0aG9zZSB3b3JkcyBhcyByZWdpb24iICJ0byBsb3dl ciBibG9jayIpKSkKKyAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgKGZvcm1hdCAiCisqKioq KioqKioqIDEwIHN0YXJzIHdpdGggcmVnaW9uIGJldHdlZW4gdHdvIGxpbmVzCisgICAgICAgICAg ICMraGVhZGVyOiA6dmFyIGI9XCJhbHNvIHNlZW5cIgorICAgICAgICAgICAjK2JlZ2luX3NyYyBh bnktbGFuZ3VhZ2UgLWkgLW4gOnZhciBhPVwic2VlblwiCisgICAgICAgICAgICAgJXMKKyAgICAg ICAgICAgICA8cG9pbnQ+JXMKKyAgICAgICAgICAgICAlcworICAgICAgICAgICAjK2VuZF9zcmMK KyIgKG50aCAwIHBhcnRzKSAobnRoIDEgcGFydHMpIChudGggMiBwYXJ0cykpCisgICAgICAobGV0 ICgobiAwKSBpbmZvIHZhcnMpCisgICAgICAgICh0cmFuc2llbnQtbWFyay1tb2RlIDEpCisgICAg ICAgIChwdXNoLW1hcmsgKHBvaW50KSB0IHQpCisgICAgICAgIChzZWFyY2gtZm9yd2FyZCAobnRo IDEgcGFydHMpKQorICAgICAgICAob3JnLWJhYmVsLWRlbWFyY2F0ZS1ibG9jayAnYS1wcmVmaXgt YXJndW1lbnQpCisgICAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAgICAgICh3aGls ZSAoPCBuIChsZW5ndGggcGFydHMpKQorICAgICAgICAgIChvcmctYmFiZWwtbmV4dC1zcmMtYmxv Y2spCisgICAgICAgICAgKHNldHEgaW5mbyAob3JnLWJhYmVsLWdldC1zcmMtYmxvY2staW5mbykp CisgICAgICAgICAgKHNldHEgdmFycyAob3JnLWJhYmVsLS1nZXQtdmFycyAobnRoIDIgaW5mbykp KQorICAgICAgICAgIChzaG91bGQgKHN0cmluZz0gImFueS1sYW5ndWFnZSIgKG50aCAwIGluZm8p KSkKKyAgICAgICAgICAoc2hvdWxkIChzdHJpbmc9IChudGggbiBwYXJ0cykgKG9yZy10cmltIChu dGggMSBpbmZvKSkpKQorICAgICAgICAgIChzaG91bGQgKHN0cmluZz0gInNlZW4iIChjZHIgKGFz c3EgJ2EgdmFycykpKSkKKyAgICAgICAgICAoc2hvdWxkIChzdHJpbmc9ICJhbHNvIHNlZW4iIChj ZHIgKGFzc3EgJ2IgdmFycykpKSkKKyAgICAgICAgICAoc2hvdWxkIChzdHJpbmc9ICItaSAtbiIg KG50aCAzIGluZm8pKSkKKyAgICAgICAgICAoY2wtaW5jZiBuKSkpCisgICAgICAoZ290by1jaGFy IChwb2ludC1taW4pKQorICAgICAgKGRvbGlzdCAocmVnZXhwIGAoLHN0YXJzCisgICAgICAgICAg ICAgICAgICAgICAgICAiI1xcK2JlZyIgLChudGggMCBwYXJ0cykgIiNcXCtlbmQiCisgICAgICAg ICAgICAgICAgICAgICAgICAsc3RhcnMKKyAgICAgICAgICAgICAgICAgICAgICAgICIjXFwrYmVn IiAsKG50aCAxIHBhcnRzKSAiI1xcK2VuZCIKKyAgICAgICAgICAgICAgICAgICAgICAgICxzdGFy cworICAgICAgICAgICAgICAgICAgICAgICAgIiNcXCtiZWciICwobnRoIDIgcGFydHMpICIjXFwr ZW5kIikpCisgICAgICAgIChzaG91bGQgKHJlLXNlYXJjaC1mb3J3YXJkIHJlZ2V4cCkpCisgICAg ICAgIChnb3RvLWNoYXIgKG1hdGNoLWJlZ2lubmluZyAwKSkKKyAgICAgICAgKGNvbmQgKChzdHJp bmc9IHJlZ2V4cCBzdGFycykKKyAgICAgICAgICAgICAgIChzaG91bGQgKD0gMCAoY3VycmVudC1j b2x1bW4pKSkpCisgICAgICAgICAgICAgICgobWVtcSByZWdleHAgcGFydHMpCisgICAgICAgICAg ICAgICAoc2hvdWxkICg9ICgrIG9rLWNvbCBvcmctZWRpdC1zcmMtY29udGVudC1pbmRlbnRhdGlv bikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGN1cnJlbnQtY29sdW1uKSkpKQorICAgICAg ICAgICAgICAodCAoc2hvdWxkICg9IG9rLWNvbCAoY3VycmVudC1jb2x1bW4pKSkpKSkpKSkKKwor KGVydC1kZWZ0ZXN0IHRlc3Qtb2IvZGVtYXJjYXRlLWJsb2NrLXNwbGl0LXVzZXItZXJyb3JzICgp CisgICJUZXN0IGZvciBgdXNlci1lcnJvcidzIGluIHNwbGl0dGluZyIKKyAgKGxldCAoKG9yZy1h ZGFwdC1pbmRlbnRhdGlvbiB0KQorICAgICAgICAob3JnLWVkaXQtc3JjLWNvbnRlbnQtaW5kZW50 YXRpb24gMikKKyAgICAgICAgKG9yZy1zcmMtcHJlc2VydmUtaW5kZW50YXRpb24pKQorICAgIChs ZXQqICgoY2FwdGlvbiAiIytjYXB0aW9uOiBjYXB0aW9uLiIpCisgICAgICAgICAgICh3aXRoaW4t Ym9keSAiOzsgd2l0aGluLWJvZHkiKQorICAgICAgICAgICAoYmVsb3ctYmxvY2sgIiMgYmVsb3cg YmxvY2siKQorICAgICAgICAgICAodGVtcGxhdGUgICIKKyVzJXMKKyMrYmVnaW5fc3JjIGVtYWNz LWxpc3AKKworICAlcworCisjK2VuZF9zcmMKKworJXMlcworIikpCisgICAgICA7OyBUZXN0IHBv aW50IGF0IGNhcHRpb24uCisgICAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKKyAgICAgICAg ICAoZm9ybWF0IHRlbXBsYXRlICI8cG9pbnQ+IiBjYXB0aW9uIHdpdGhpbi1ib2R5IGJlbG93LWJs b2NrICIiKQorICAgICAgICAoc2hvdWxkLWVycm9yIChvcmctYmFiZWwtZGVtYXJjYXRlLWJsb2Nr KSA6dHlwZSAndXNlci1lcnJvcikpCisgICAgICA7OyBUZXN0IHJlZ2lvbiBmcm9tIGJlbG93IHRo ZSBibG9jayAobWFyaykgdG8gd2l0aGluIHRoZSBib2R5IChwb2ludCkuCisgICAgICAob3JnLXRl c3Qtd2l0aC10ZW1wLXRleHQKKyAgICAgICAgICAoZm9ybWF0IHRlbXBsYXRlICIiIGNhcHRpb24g d2l0aGluLWJvZHkgYmVsb3ctYmxvY2sgIjxwb2ludD4iKQorICAgICAgICA7OyBTZXQgbWFyay4K KyAgICAgICAgKHRyYW5zaWVudC1tYXJrLW1vZGUgMSkKKyAgICAgICAgKHB1c2gtbWFyayAocG9p bnQpIHQgdCkKKyAgICAgICAgOzsgU2V0IHBvaW50LgorICAgICAgICAoc2hvdWxkIChzZWFyY2gt YmFja3dhcmQgd2l0aGluLWJvZHkgbmlsICdub2Vycm9yKSkKKyAgICAgICAgKGdvdG8tY2hhciAo bWF0Y2gtYmVnaW5uaW5nIDApKQorICAgICAgICAoc2hvdWxkLWVycm9yIChvcmctYmFiZWwtZGVt YXJjYXRlLWJsb2NrKSA6dHlwZSAndXNlci1lcnJvcikpKSkpCisKKyhlcnQtZGVmdGVzdCB0ZXN0 LW9iL2RlbWFyY2F0ZS1ibG9jay13cmFwLXBvaW50ICgpCisgICJUZXN0IHdyYXBwaW5nIHBvaW50 IGluIGJsYW5rIGxpbmVzIGJlbG93IGEgc291cmNlIGJsb2NrLiIKKyAgKG9yZy10ZXN0LXdpdGgt dGVtcC10ZXh0ICIKKyMrYmVnaW5fc3JjIGFueS1sYW5ndWFnZSAtaSAtbiA6dmFyIGhlcmU9XCJu b3QgZHVwbGljYXRlZFwiCit0byB1cHBlciBibG9jaworIytlbmRfc3JjCis8cG9pbnQ+CisiCisg ICAgKGxldCAoaW5mbyB2YXJzKQorICAgICAgKG9yZy1iYWJlbC1kZW1hcmNhdGUtYmxvY2spCisg ICAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQorICAgICAgKG9yZy1iYWJlbC1uZXh0LXNyYy1i bG9jaykKKyAgICAgIChzZXRxIGluZm8gKG9yZy1iYWJlbC1nZXQtc3JjLWJsb2NrLWluZm8pKSAg OzsgdXBwZXIgc291cmNlIGJsb2NrIGluZm8KKyAgICAgIChzZXRxIHZhcnMgKG9yZy1iYWJlbC0t Z2V0LXZhcnMgKG50aCAyIGluZm8pKSkKKyAgICAgIChzaG91bGQgKHN0cmluZz0gImFueS1sYW5n dWFnZSIgKG50aCAwIGluZm8pKSkKKyAgICAgIChzaG91bGQgKHN0cmluZz0gInRvIHVwcGVyIGJs b2NrIiAob3JnLXRyaW0gKG50aCAxIGluZm8pKSkpCisgICAgICAoc2hvdWxkIChzdHJpbmc9ICJu b3QgZHVwbGljYXRlZCIgKGNkciAoYXNzcSAnaGVyZSB2YXJzKSkpKQorICAgICAgKHNob3VsZCAo c3RyaW5nPSAiLWkgLW4iIChudGggMyBpbmZvKSkpCisgICAgICAob3JnLWJhYmVsLW5leHQtc3Jj LWJsb2NrKQorICAgICAgKHNldHEgaW5mbyAob3JnLWJhYmVsLWdldC1zcmMtYmxvY2staW5mbykp IDs7IGxvd2VyIHNvdXJjZSBibG9jayBpbmZvCisgICAgICAoc2V0cSB2YXJzIChvcmctYmFiZWwt LWdldC12YXJzIChudGggMiBpbmZvKSkpCisgICAgICAoc2hvdWxkIChzdHJpbmc9ICJhbnktbGFu Z3VhZ2UiIChudGggMCBpbmZvKSkpCisgICAgICAoc2hvdWxkIChzdHJpbmc9ICIiIChvcmctdHJp bSAobnRoIDEgaW5mbykpKSkKKyAgICAgIChzaG91bGQtbm90IHZhcnMpCisgICAgICAoc2hvdWxk IChzdHJpbmc9ICIiIChudGggMyBpbmZvKSkpKSkpCisKKyhlcnQtZGVmdGVzdCB0ZXN0LW9iL2Rl bWFyY2F0ZS1ibG9jay13cmFwLXJlZ2lvbiAoKQorICAiVGVzdCB3cmFwcGluZyByZWdpb24gaW4g YmxhbmsgbGluZXMgYmVsb3cgYSBzb3VyY2UgYmxvY2suIgorICAobGV0ICgocmVnaW9uLXRleHQg Im1hcmsgdGhpcyBsaW5lIGFzIHJlZ2lvbiBsZWF2aW5nIHBvaW50IGluIGJsYW5rIGxpbmVzIikp CisgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0IChmb3JtYXQgIgorIytiZWdpbl9zcmMgYW55 LWxhbmd1YWdlIC1pIC1uIDp2YXIgaGVyZT1cIm5vdCBkdXBsaWNhdGVkXCIKK3RvIHVwcGVyIGJs b2NrCisjK2VuZF9zcmMKKzxwb2ludD4KKyVzCisiIHJlZ2lvbi10ZXh0KQorICAgICAgKGxldCAo aW5mbyB2YXJzKQorICAgICAgICAodHJhbnNpZW50LW1hcmstbW9kZSAxKQorICAgICAgICAocHVz aC1tYXJrIChwb2ludCkgdCB0KQorICAgICAgICAoc2VhcmNoLWZvcndhcmQgcmVnaW9uLXRleHQp CisgICAgICAgIChleGNoYW5nZS1wb2ludC1hbmQtbWFyaykKKyAgICAgICAgKG9yZy1iYWJlbC1k ZW1hcmNhdGUtYmxvY2spCisgICAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAgICAg IChvcmctYmFiZWwtbmV4dC1zcmMtYmxvY2spCisgICAgICAgIChzZXRxIGluZm8gKG9yZy1iYWJl bC1nZXQtc3JjLWJsb2NrLWluZm8pKSAgOzsgdXBwZXIgc291cmNlIGJsb2NrIGluZm8KKyAgICAg ICAgKHNldHEgdmFycyAob3JnLWJhYmVsLS1nZXQtdmFycyAobnRoIDIgaW5mbykpKQorICAgICAg ICAoc2hvdWxkIChzdHJpbmc9ICJhbnktbGFuZ3VhZ2UiIChudGggMCBpbmZvKSkpCisgICAgICAg IChzaG91bGQgKHN0cmluZz0gInRvIHVwcGVyIGJsb2NrIiAob3JnLXRyaW0gKG50aCAxIGluZm8p KSkpCisgICAgICAgIChzaG91bGQgKHN0cmluZz0gIm5vdCBkdXBsaWNhdGVkIiAoY2RyIChhc3Nx ICdoZXJlIHZhcnMpKSkpCisgICAgICAgIChzaG91bGQgKHN0cmluZz0gIi1pIC1uIiAobnRoIDMg aW5mbykpKQorICAgICAgICAob3JnLWJhYmVsLW5leHQtc3JjLWJsb2NrKQorICAgICAgICAoc2V0 cSBpbmZvIChvcmctYmFiZWwtZ2V0LXNyYy1ibG9jay1pbmZvKSkgOzsgbG93ZXIgc291cmNlIGJs b2NrIGluZm8KKyAgICAgICAgKHNldHEgdmFycyAob3JnLWJhYmVsLS1nZXQtdmFycyAobnRoIDIg aW5mbykpKQorICAgICAgICAoc2hvdWxkIChzdHJpbmc9ICJhbnktbGFuZ3VhZ2UiIChudGggMCBp bmZvKSkpCisgICAgICAgIChzaG91bGQgKHN0cmluZz0gcmVnaW9uLXRleHQgKG9yZy10cmltIChu dGggMSBpbmZvKSkpKQorICAgICAgICAoc2hvdWxkLW5vdCB2YXJzKQorICAgICAgICAoc2hvdWxk IChzdHJpbmc9ICIiIChudGggMyBpbmZvKSkpKSkpKQorCiAocHJvdmlkZSAndGVzdC1vYikKIAog Ozs7IHRlc3Qtb2IgZW5kcyBoZXJlCi0tIAoyLjQyLjAKCg== --=_fb197daf05aa8bd732a780d5fe6a152e--