From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1.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 mGn/K7KNumVpFQAA62LTzQ:P1 (envelope-from ) for ; Wed, 31 Jan 2024 19:13:06 +0100 Received: from aspmx1.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1.migadu.com with LMTPS id mGn/K7KNumVpFQAA62LTzQ (envelope-from ) for ; Wed, 31 Jan 2024 19:13:06 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=ricklupton.name header.s=fm2 header.b="i dmDWmt"; dkim=pass header.d=messagingengine.com header.s=fm3 header.b=ZRvDiLzu; 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=ricklupton.name ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1706724786; 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=OKN+Kqzoc1cxIL8NTo3mR3/h/SenNIlUvdwwXhyNiSg=; b=bE7e+EKo2hFSaaxxzSYga6C8xz5ZjGP0uuHpyxSbxSpY7FdADso8c2yNFMJhCt6wra+Skg R8ytW7D7OU1eOamVGNfNd4PRvj79vXwavwVcDmA2VlEqVfNRppUYj5hrbGzXBrEu08gHkD 5FzNrNfX7PAu/HT8PhrsGCzqrT2t5ZZrMg0QfhNWVtWr4jrEiuJj60uz+9CFpRF0zRw1QB jysqrkyHaUHxB/+8IhYSm3oFwwgaP8MMJqjmowJuXaVX1vhFYiZxX2Llfm++gxZ5/3iFcz ufisv3RlQ6tg9lw2QNtSk/1bfnW+lViZXf5lRPdbttvkDHw4YsZZfBwvZyqcFQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=ricklupton.name header.s=fm2 header.b="i dmDWmt"; dkim=pass header.d=messagingengine.com header.s=fm3 header.b=ZRvDiLzu; 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=ricklupton.name ARC-Seal: i=1; s=key1; d=yhetil.org; t=1706724786; a=rsa-sha256; cv=none; b=ZhcGv9jONHsobTT3UeArpK/ghpHvG2FA2mqUap9+C0HFeNxyWwLPIVJkRLV4fUzKYbMbvb Ag8yiRHsG4qHFDan0CiAj4onO63PQL380D+7wkId+9Him4RfNY+YLoXNF4+ILz/jUq7xWS z1y2OkidGq1yYsb/6k/arUDzfl5gOuRYSN6jqDT+U+NEbZ3zkrq3FRllsKj4Emm1jEzbdF blVGcO1PRE0JemKDfr7eqlOZ0jxkgtDg32FMrlokJXogTALi83lGWxiTCY3WJ5IxKPskqm ucoGDq0ns56OsHRIecAEDeEpTqFSYKv/m0/Th2LhIyMNx9P0zv8Oyhz2wSa+aA== 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 0C5C66EEEB for ; Wed, 31 Jan 2024 19:13:05 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rVF4N-0008D3-QV; Wed, 31 Jan 2024 13:12:19 -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 1rVF4M-0008Ct-N8 for emacs-orgmode@gnu.org; Wed, 31 Jan 2024 13:12:18 -0500 Received: from out5-smtp.messagingengine.com ([66.111.4.29]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rVF4J-0006LJ-BS for emacs-orgmode@gnu.org; Wed, 31 Jan 2024 13:12:18 -0500 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id E55385C006F; Wed, 31 Jan 2024 13:12:12 -0500 (EST) Received: from imap50 ([10.202.2.100]) by compute2.internal (MEProxy); Wed, 31 Jan 2024 13:12:12 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ricklupton.name; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm2; t=1706724732; x= 1706811132; bh=OKN+Kqzoc1cxIL8NTo3mR3/h/SenNIlUvdwwXhyNiSg=; b=i dmDWmtm7SPBmoE7ZJPca6xbWxKdSZwqPneflcA60snaDaSqGtqYtkVLPYPG9FWwX Y4HD//7k9folfULS5aRwouRD02Q1LFSRhwJlOoPwJuRvkAL1rGtlzbWoHMlLzD8W EDYWCx2Shumjgpf3i1H2DskPQUV0Jxg+tilia7ue5In/H5RRssRozYklIy2g2Jzi V63AKBD6TrYA2Wpi7luBALLAxiVTetwxjWKHF1zUn+w3oI8p0EqHURZ6LN4ir163 LA+2uWsvql28PKFoS2OSl4qSS2xs/1bPAwTqPfqvEY5IcMOumge58LJYIvnCACF+ IFwyYoo6OipgwaTR7W6gw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1706724732; x=1706811132; bh=OKN+Kqzoc1cxIL8NTo3mR3/h/Sen NIlUvdwwXhyNiSg=; b=ZRvDiLzujGUKcRrXCZBJe2vWffqRK2XGHXnQ8b0qNmPs KgkcwU+ykQhaP+RaSARHsuSpaCFl/Ed+j19qv8laccf9RoxqVnFcm005pTuV5eXL /yKhbQNiyIC+Brj3OfRkmif0GMu5THRGZbDAzFvN9TJA/6dxpkGKIyACUab1DapZ xLtmEQoCkjT6xEWtgoX+ag/70tnAkspUlqdxT3StiRZ6HEkebx+0uNDl70hIO4HQ HC6KWZJWlc0vu2akWTyfBBJgWwA5PNr4tatZ8ACh2jLewX2LEBgdPVgzTH4w6ZUf /WTu2sYtqAtMKej8fFTKztued3+CJq8iteY+uvR73A== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrfedtledguddtjecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurhepofgfggfkjghffffhvfevufgtse hmtderreerredtnecuhfhrohhmpedftfhitghkucfnuhhpthhonhdfuceomhgrihhlsehr ihgtkhhluhhpthhonhdrnhgrmhgvqeenucggtffrrghtthgvrhhnpeeuvdejuedugeejtd evleeffedvkedtgfffvdejgfegkefgjedvjefghefhtdetveenucffohhmrghinhepthgv shhtrdhorhhgpdhorhhgqdhlihhnkhdqshgvrghrtghhqdhmuhhsthdqmhgrthgthhdqvg igrggtthdqhhgvrggulhhinhgvrdhorhhgpdhthhhinhhkrdhorhhgpdhprhhosghlvghm rdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomh epmhgrihhlsehrihgtkhhluhhpthhonhdrnhgrmhgv X-ME-Proxy: Feedback-ID: i0143436f:Fastmail Received: by mailuser.nyi.internal (Postfix, from userid 501) id 9BE891700097; Wed, 31 Jan 2024 13:12:12 -0500 (EST) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.11.0-alpha0-144-ge5821d614e-fm-20240125.002-ge5821d61 MIME-Version: 1.0 Message-Id: <70c0e6fb-3e9f-4b84-8d00-1b1e62ec19d0@app.fastmail.com> In-Reply-To: <87r0i0mgzi.fsf@localhost> References: <118435e8-0b20-46fd-af6a-88de8e19fac6@app.fastmail.com> <87edkwsafe.fsf@localhost> <87cywh2ad6.fsf@localhost> <87jzpmqiy0.fsf@localhost> <2cdfefbf-e9e3-4aeb-a410-1ff3a9d6168e@app.fastmail.com> <87zfybzkul.fsf@localhost> <3c5737c8-f489-4144-a27f-c0e0527c79c0@app.fastmail.com> <87bkaqcjpz.fsf@localhost> <87msu7r902.fsf@localhost> <1b50d1a4-8573-4dcc-9427-8970f67e632a@app.fastmail.com> <87r0i0mgzi.fsf@localhost> Date: Wed, 31 Jan 2024 18:11:26 +0000 From: "Rick Lupton" To: "Ihor Radchenko" Cc: "Y. E." Subject: Re: [PATCH v2] org-id: allow using parent's existing id in links to headlines Content-Type: multipart/mixed; boundary=fb16068278f54da5b19b304c1a37d964 Received-SPF: pass client-ip=66.111.4.29; envelope-from=mail@ricklupton.name; helo=out5-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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_LOW=-0.7, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-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-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -10.25 X-Migadu-Queue-Id: 0C5C66EEEB X-Spam-Score: -10.25 X-Migadu-Scanner: mx11.migadu.com X-TUID: 1clWlDOZOgdr --fb16068278f54da5b19b304c1a37d964 Content-Type: text/plain On Mon, 29 Jan 2024, at 1:00 PM, Ihor Radchenko wrote: >>> 3. Consider >>> (setq org-id-link-consider-parent-id t) >>> (setq org-id-link-to-org-use-id t) >>> >>> Then, create a new empty Org file >>> M-x org-store-link with create a top-level properties drawer with ID >>> and store the link. However, that link will not be a simple ID link, >>> but also have ::PROPERTIES search string, which is not expected. >> >> This is because it is trying to link to the current line of the file, which contains the text "PROPERTIES". On main, with (setq org-id-link-to-org-use-id nil), you see the equivalent behaviour (a link to [[file:test.org:::PROPERTIES:]]) when point is before the first heading. So, this seems consistent with non-org-id links? > > No. Do note that my instructions start from _empty_ file. With > org-id-link-to-org-use-id, PROPERTIES drawer is not created. This is > different from what happens with your patch - it is unexpected in your > patch that the search string is added for text that did not exist in the > buffer previously. I see. Updated to get the search string first, before the possible properties draw appears. To make this work I changed `org-link-precise-link-target': instead of accepting the RELATIVE-TO argument and rejecting unsuitable targets internally, it now sets a marker `org-link-precise-target-marker' showing where the target that was found is, so the caller can decide if the found target is suitable. I copied the approach from `org-entry-property-inherited-from', hope that doesn't cause any other issues. > That's a good catch. > The fact that links stored via `org-store-link' cannot be open with > default settings is not good. > Also, your patch disregards this setting - it should not match > non-headline search strings with the default value of > `org-link-search-must-match-exact-headline'. `org-link-search-must-match-exact-headline' affects `org-link-search', which is called by `org-id-open' -- so I think the behaviour for these org-id links should be the same as for other file links? Am I missing something? Or, maybe you mean links that rely on `org-link-search-must-match-exact-headline' should not be stored. That would seem reasonable, but also doesn't need to be part of these changes here? > Probably, changing the default value of > `org-link-search-must-match-exact-headline' to nil is due. It seems like the behaviour below would be desirable, but doesn't currently exist with any setting of `org-link-search-must-match-exact-headline'? (org-link-search "plain text") --> fuzzy search for all text (org-link-search "*heading") --> search only headings, optionally creating if missing >> Subject: [PATCH 2/2] org-id.el: Extend links with search strings, inherit >> parent IDs > > I ran make test, and it looks like one test is failing with your patch: Oops, fixed now I think. > `org-context-in-file-links' is an obsolete name. Use > `org-link-context-for-files'. > > Also, please add `org-id-link-use-context' to #+vindex. Updated > Please update the docstring of `org-store-link-functions' to specify > that an argument is passed to :store functions. Updated >> - (org-insert-heading nil t t) >> + ;; Find appropriate level for new heading >> + (let ((level (save-excursion >> + (goto-char (point-min)) >> + (+ 1 (or (org-current-level) 0))))) > > This is fragile. You assume that `point-min' always contains a heading. > That may or may not be the case - `org-link-search' may be called by > third-party code that does not care about setting narrowing in certain > ways. I don't think it's a problem. (org-current-level) returns something suitable whether or not point-min contains a heading. Both the situations below seem reasonable choices for the level of the newly created heading at the end: ---start of narrowing--- Text * H1 ** H2 * A new level 1 heading is created at the end ---end of narrowing--- ---start of narrowing--- * H1 ** H2 ** A new level 2 heading is created at the end ---end of narrowing--- (this is how it currently works, unless I'm missing something) >> +(defun org-link-precise-link-target (&optional relative-to) >> + "Determine search string and description for storing a link. >> + >> +If a search string (see 'org-link-search') is found, return cons > > Quoting: `org-link-search'. Fixed >> + (let* ((element (org-element-at-point)) >> + (name (org-element-property :name element)) >> + (heading (org-element-lineage element 'headline t)) > > What about inlinetasks? I added inlinetasks to the element types, so they are picked up the same as headlines now. >> + (custom-id (org-entry-get nil "CUSTOM_ID"))) > > May as well pass HEADING as the first argument of `org-entry-get'. It > will be slightly more efficient. Ok >> + (org-link--add-to-stored-links link desc) >> + ;; In org buffers, store an additional "human-readable" link >> + ;; using custom id, if available. >> + (when (and (buffer-file-name (buffer-base-buffer)) >> + (derived-mode-p 'org-mode) >> + (org-entry-get nil "CUSTOM_ID")) >> + (setq link (concat "file:" >> + (abbreviate-file-name >> + (buffer-file-name (buffer-base-buffer))) >> + "::#" (org-entry-get nil "CUSTOM_ID"))) > > This is fragile - you are relying upon the exact code used to store > file:...#CUSTOM-ID link. Instead, please refactor the function to re-use > that code. Ok >> + (id-location (or (and org-entry-property-inherited-from >> + (marker-position org-entry-property-inherited-from)) >> + (save-excursion (org-back-to-heading-or-point-min) (point)))) >> (case-fold-search nil) >> (desc (save-excursion >> - (org-back-to-heading-or-point-min t) >> + (goto-char id-location) > > You are calling `org-back-to-heading-or-point-min' without optional > argument INVISIBLE-OK. This looks like an oversight. Fixed --fb16068278f54da5b19b304c1a37d964 Content-Disposition: attachment; filename*0="0001-lisp-org.el-org-insert-heading-allow-specifying-head.pat"; filename*1="ch" Content-Type: application/octet-stream; name="=?UTF-8?Q?0001-lisp-org.el-org-insert-heading-allow-specifying-head.patc?= =?UTF-8?Q?h?=" Content-Transfer-Encoding: BASE64 RnJvbSAzNDdkNDA2MjExM2NiYmZjOWRjZjhkMmI5Mzc3NTg5MzE4ZDJmMDYwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNrIEx1cHRvbiA8bWFpbEByaWNrbHVwdG9uLm5h bWU+CkRhdGU6IFdlZCwgMyBKYW4gMjAyNCAyMjozNzozOCArMDAwMApTdWJqZWN0OiBbUEFU Q0ggMS8yXSBsaXNwL29yZy5lbCAob3JnLWluc2VydC1oZWFkaW5nKTogYWxsb3cgc3BlY2lm eWluZwogaGVhZGluZyBsZXZlbAoKKiBsaXNwL29yZy5lbCAob3JnLWluc2VydC1oZWFkaW5n KTogQ2hhbmdlIG9wdGlvbmFsIGFyZ3VtZW50IFRPUCB0bwpMRVZFTCwgYWNjZXB0aW5nIGEg bnVtYmVyIHRvIGZvcmNlIGEgc3BlY2lmaWMgaGVhZGluZyBsZXZlbC4KKiB0ZXN0aW5nL2xp c3AvdGVzdC1vcmcuZWwgKHRlc3Qtb3JnL2luc2VydC1oZWFkaW5nKTogQWRkIHRlc3RzCiog ZXRjL09SRy1ORVdTOiBEb2N1bWVudCBjaGFuZ2VzCi0tLQogZXRjL09SRy1ORVdTICAgICAg ICAgICAgIHwgIDYgKysrKysrCiBsaXNwL29yZy5lbCAgICAgICAgICAgICAgfCAyMSArKysr KysrKysrKysrKy0tLS0tLS0KIHRlc3RpbmcvbGlzcC90ZXN0LW9yZy5lbCB8IDI2ICsrKysr KysrKysrKysrKysrKysrKysrKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDQ0IGluc2VydGlvbnMo KyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZXRjL09SRy1ORVdTIGIvZXRjL09S Ry1ORVdTCmluZGV4IDFiZjdlYjViNC4uZWMwMTAwNGY4IDEwMDY0NAotLS0gYS9ldGMvT1JH LU5FV1MKKysrIGIvZXRjL09SRy1ORVdTCkBAIC05NDEsNiArOTQxLDEyIEBAIGFzIHRoZSBm dW5jdGlvbiBjYW4gYWxzbyBhY3Qgb24gb2JqZWN0cy4KIAogKioqIH5vcmctZXhwb3J0LWdl dC1wYXJlbnQtZWxlbWVudH4gaXMgcmVuYW1lZCB0byB+b3JnLWVsZW1lbnQtcGFyZW50LWVs ZW1lbnR+IGFuZCBtb3ZlZCB0byA9bGlzcC9vcmctZWxlbWVudC5lbD0KIAorKioqIH5vcmct aW5zZXJ0LWhlYWRpbmd+IG9wdGlvbmFsIGFyZ3VtZW50ID1UT1A9IGlzIG5vdyA9TEVWRUw9 CisKK0EgbnVtZXJpYyB2YWx1ZSBmb3JjZXMgYSBoZWFkaW5nIGF0IHRoYXQgbGV2ZWwgdG8g YmUgaW5zZXJ0ZWQuICBGb3IKK2JhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCBub24tbnVtZXJp YyBub24tbmlsIHZhbHVlcyBpbnNlcnQgbGV2ZWwgMQoraGVhZGluZ3MgYXMgYmVmb3JlLgor CiAqKiBNaXNjZWxsYW5lb3VzCiAqKiogPW9yZy1jcnlwdC5lbD0gbm93IGFwcGxpZXMgaW5p dGlhbCB2aXNpYmlsaXR5IHNldHRpbmdzIHRvIGRlY3J5cHRlZCBlbnRyaWVzCiAKZGlmZiAt LWdpdCBhL2xpc3Avb3JnLmVsIGIvbGlzcC9vcmcuZWwKaW5kZXggNzk2NTQ1MzkyLi44N2I5 NGE1NGQgMTAwNjQ0Ci0tLSBhL2xpc3Avb3JnLmVsCisrKyBiL2xpc3Avb3JnLmVsCkBAIC02 MzUyLDcgKzYzNTIsNyBAQCBoZWFkbGluZSBpbnN0ZWFkIG9mIGN1cnJlbnQgb25lLiIKICAg ICAoYChoZWFkaW5nIC4gLHZhbHVlKSB2YWx1ZSkKICAgICAoXyBuaWwpKSkKIAotKGRlZnVu IG9yZy1pbnNlcnQtaGVhZGluZyAoJm9wdGlvbmFsIGFyZyBpbnZpc2libGUtb2sgdG9wKQor KGRlZnVuIG9yZy1pbnNlcnQtaGVhZGluZyAoJm9wdGlvbmFsIGFyZyBpbnZpc2libGUtb2sg bGV2ZWwpCiAgICJJbnNlcnQgYSBuZXcgaGVhZGluZyBvciBhbiBpdGVtIHdpdGggdGhlIHNh bWUgZGVwdGggYXQgcG9pbnQuCiAKIElmIHBvaW50IGlzIGF0IHRoZSBiZWdpbm5pbmcgb2Yg YSBoZWFkaW5nLCBpbnNlcnQgYSBuZXcgaGVhZGluZwpAQCAtNjM4MSwxMiArNjM4MSwxOSBA QCBXaGVuIElOVklTSUJMRS1PSyBpcyBzZXQsIHN0b3AgYXQgaW52aXNpYmxlIGhlYWRsaW5l cyB3aGVuIGdvaW5nCiBiYWNrLiAgVGhpcyBpcyBpbXBvcnRhbnQgZm9yIG5vbi1pbnRlcmFj dGl2ZSB1c2VzIG9mIHRoZQogY29tbWFuZC4KIAotV2hlbiBvcHRpb25hbCBhcmd1bWVudCBU T1AgaXMgbm9uLW5pbCwgaW5zZXJ0IGEgbGV2ZWwgMSBoZWFkaW5nLAotdW5jb25kaXRpb25h bGx5LiIKK1doZW4gb3B0aW9uYWwgYXJndW1lbnQgTEVWRUwgaXMgYSBudW1iZXIsIGluc2Vy dCBhIGhlYWRpbmcgYXQKK3RoYXQgbGV2ZWwuICBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxp dHksIHdoZW4gTEVWRUwgaXMgbm9uLW5pbAorYnV0IG5vdCBhIG51bWJlciwgaW5zZXJ0IGEg bGV2ZWwtMSBoZWFkaW5nLiIKICAgKGludGVyYWN0aXZlICJQIikKICAgKGxldCogKChibGFu az8gKG9yZy0tYmxhbmstYmVmb3JlLWhlYWRpbmctcCAoZXF1YWwgYXJnICcoMTYpKSkpCi0J IChsZXZlbCAob3JnLWN1cnJlbnQtbGV2ZWwpKQotCSAoc3RhcnMgKG1ha2Utc3RyaW5nIChp ZiAoYW5kIGxldmVsIChub3QgdG9wKSkgbGV2ZWwgMSkgPyopKSkKKyAgICAgICAgIChjdXJy ZW50LWxldmVsIChvcmctY3VycmVudC1sZXZlbCkpCisgICAgICAgICAobnVtLXN0YXJzIChv cgorICAgICAgICAgICAgICAgICAgICAgOzsgQmFja3dhcmRzIGNvbXBhdDogaWYgTEVWRUwg bm9uLW5pbCwgbGV2ZWwgaXMgMQorICAgICAgICAgICAgICAgICAgICAgKGFuZCBsZXZlbCAo aWYgKHdob2xlbnVtcCBsZXZlbCkgbGV2ZWwgMSkpCisgICAgICAgICAgICAgICAgICAgICBj dXJyZW50LWxldmVsCisgICAgICAgICAgICAgICAgICAgICA7OyBUaGlzIGAxJyBpcyBmb3Ig d2hlbiBiZWZvcmUgZmlyc3QgaGVhZGxpbmUKKyAgICAgICAgICAgICAgICAgICAgIDEpKQor ICAgICAgICAgKHN0YXJzIChtYWtlLXN0cmluZyBudW0tc3RhcnMgPyopKSkKICAgICAoY29u ZAogICAgICAoKG9yIG9yZy1pbnNlcnQtaGVhZGluZy1yZXNwZWN0LWNvbnRlbnQKIAkgICht ZW1iZXIgYXJnICcoKDQpICgxNikpKQpAQCAtNjM5NSw3ICs2NDAyLDcgQEAgdW5jb25kaXRp b25hbGx5LiIKICAgICAgIDs7IFBvc2l0aW9uIHBvaW50IGF0IHRoZSBsb2NhdGlvbiBvZiBp bnNlcnRpb24uICBNYWtlIHN1cmUgd2UKICAgICAgIDs7IGVuZCB1cCBvbiBhIHZpc2libGUg aGVhZGxpbmUgaWYgSU5WSVNJQkxFLU9LIGlzIG5pbC4KICAgICAgIChvcmctd2l0aC1saW1p dGVkLWxldmVscwotICAgICAgIChpZiAobm90IGxldmVsKSAob3V0bGluZS1uZXh0LWhlYWRp bmcpIDtiZWZvcmUgZmlyc3QgaGVhZGxpbmUKKyAgICAgICAoaWYgKG5vdCBjdXJyZW50LWxl dmVsKSAob3V0bGluZS1uZXh0LWhlYWRpbmcpIDtiZWZvcmUgZmlyc3QgaGVhZGxpbmUKIAkg KG9yZy1iYWNrLXRvLWhlYWRpbmcgaW52aXNpYmxlLW9rKQogCSAod2hlbiAoZXF1YWwgYXJn ICcoMTYpKSAob3JnLXVwLWhlYWRpbmctc2FmZSkpCiAJIChvcmctZW5kLW9mLXN1YnRyZWUg aW52aXNpYmxlLW9rICd0by1oZWFkaW5nKSkpCkBAIC02NDA4LDcgKzY0MTUsNyBAQCB1bmNv bmRpdGlvbmFsbHkuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAob3JnLWJlZm9yZS1m aXJzdC1oZWFkaW5nLXApKSkKICAgICAgICAgKGluc2VydCAiXG4iKQogICAgICAgICAoYmFj a3dhcmQtY2hhcikpCi0gICAgICAod2hlbiAoYW5kIChub3QgbGV2ZWwpIChub3QgKGVvYnAp KSAobm90IChib2JwKSkpCisgICAgICAod2hlbiAoYW5kIChub3QgY3VycmVudC1sZXZlbCkg KG5vdCAoZW9icCkpIChub3QgKGJvYnApKSkKICAgICAgICAgKHdoZW4gKG9yZy1hdC1oZWFk aW5nLXApIChpbnNlcnQgIlxuIikpCiAgICAgICAgIChiYWNrd2FyZC1jaGFyKSkKICAgICAg ICh1bmxlc3MgKGFuZCBibGFuaz8gKG9yZy1wcmV2aW91cy1saW5lLWVtcHR5LXApKQpkaWZm IC0tZ2l0IGEvdGVzdGluZy9saXNwL3Rlc3Qtb3JnLmVsIGIvdGVzdGluZy9saXNwL3Rlc3Qt b3JnLmVsCmluZGV4IDgyMmNiYzY3YS4uZmM1MGRjNzg3IDEwMDY0NAotLS0gYS90ZXN0aW5n L2xpc3AvdGVzdC1vcmcuZWwKKysrIGIvdGVzdGluZy9saXNwL3Rlc3Qtb3JnLmVsCkBAIC0x OTgwLDggKzE5ODAsMzAgQEAgQ0xPQ0s6IFsyMDIyLTA5LTE3IHNhbS4gMTE6MDBdLS1bMjAy Mi0wOS0xNyBzYW0uIDExOjQ2XSA9PiAgMDo0NiIKIAkgICAgKGxldCAoKG9yZy1pbnNlcnQt aGVhZGluZy1yZXNwZWN0LWNvbnRlbnQgbmlsKSkKIAkgICAgICAob3JnLWluc2VydC1oZWFk aW5nICcoMTYpKSkKIAkgICAgKGJ1ZmZlci1zdHJpbmcpKSkpCi0gIDs7IFdoZW4gb3B0aW9u YWwgVE9QLUxFVkVMIGFyZ3VtZW50IGlzIG5vbi1uaWwsIGFsd2F5cyBpbnNlcnQKLSAgOzsg YSBsZXZlbCAxIGhlYWRpbmcuCisgIDs7IFdoZW4gb3B0aW9uYWwgTEVWRUwgYXJndW1lbnQg aXMgYSBudW1iZXIsIGluc2VydCBhIGhlYWRpbmcgYXQKKyAgOzsgdGhhdCBsZXZlbC4KKyAg KHNob3VsZAorICAgKGVxdWFsICIqIEgxXG4qKiBIMlxuKiAiCisJICAob3JnLXRlc3Qtd2l0 aC10ZW1wLXRleHQgIiogSDFcbioqIEgyPHBvaW50PiIKKwkgICAgKG9yZy1pbnNlcnQtaGVh ZGluZyBuaWwgbmlsIDEpCisJICAgIChidWZmZXItc3RyaW5nKSkpKQorICAoc2hvdWxkCisg ICAoZXF1YWwgIiogSDFcbioqIEgyXG4qKiAiCisJICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRl eHQgIiogSDFcbioqIEgyPHBvaW50PiIKKwkgICAgKG9yZy1pbnNlcnQtaGVhZGluZyBuaWwg bmlsIDIpCisJICAgIChidWZmZXItc3RyaW5nKSkpKQorICAoc2hvdWxkCisgICAoZXF1YWwg IiogSDFcbioqIEgyXG4qKiogIgorCSAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICIqIEgx XG4qKiBIMjxwb2ludD4iCisJICAgIChvcmctaW5zZXJ0LWhlYWRpbmcgbmlsIG5pbCAzKQor CSAgICAoYnVmZmVyLXN0cmluZykpKSkKKyAgKHNob3VsZAorICAgKGVxdWFsICIqIEgxXG4t IGl0ZW1cbiogIgorCSAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICIqIEgxXG4tIGl0ZW08 cG9pbnQ+IgorCSAgICAob3JnLWluc2VydC1oZWFkaW5nIG5pbCBuaWwgMSkKKwkgICAgKGJ1 ZmZlci1zdHJpbmcpKSkpCisgIDs7IFdoZW4gb3B0aW9uYWwgTEVWRUwgYXJndW1lbnQgaXMg bm9uLW5pbCwgYWx3YXlzIGluc2VydCBhIGxldmVsIDEKKyAgOzsgaGVhZGluZy4KICAgKHNo b3VsZAogICAgKGVxdWFsICIqIEgxXG4qKiBIMlxuKiAiCiAJICAob3JnLXRlc3Qtd2l0aC10 ZW1wLXRleHQgIiogSDFcbioqIEgyPHBvaW50PiIKLS0gCjIuMzcuMSAoQXBwbGUgR2l0LTEz Ny4xKQoK --fb16068278f54da5b19b304c1a37d964 Content-Disposition: attachment; filename*0="0002-org-id.el-Extend-links-with-search-strings-inherit-p.pat"; filename*1="ch" Content-Type: application/octet-stream; name="=?UTF-8?Q?0002-org-id.el-Extend-links-with-search-strings-inherit-p.patc?= =?UTF-8?Q?h?=" Content-Transfer-Encoding: BASE64 RnJvbSBlNjJjOTRiMGUyM2Y2NDcxOTViOTE5NmZkY2RhYzIyNWNkOTZiY2JiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNrIEx1cHRvbiA8bWFpbEByaWNrbHVwdG9uLm5h bWU+CkRhdGU6IFN1biwgMTkgTm92IDIwMjMgMTQ6NTI6MDUgKzAwMDAKU3ViamVjdDogW1BB VENIIDIvMl0gb3JnLWlkLmVsOiBFeHRlbmQgbGlua3Mgd2l0aCBzZWFyY2ggc3RyaW5ncywg aW5oZXJpdAogcGFyZW50IElEcwoKKiBsaXNwL29sLmVsIChvcmctc3RvcmUtbGluayk6IFJl ZmFjdG9yIG9yZy1pZCBsaW5rcyB0byB1c2Ugc3RhbmRhcmQKYG9yZy1zdG9yZS1saW5rLWZ1 bmN0aW9ucycuCihvcmctbGluay1zZWFyY2gpOiBDcmVhdGUgbmV3IGhlYWRpbmdzIGF0IGFw cHJvcHJpYXRlIGxldmVsLgoob3JnLWxpbmstcHJlY2lzZS1saW5rLXRhcmdldCk6IE5ldyBm dW5jdGlvbiBleHRyYWN0aW5nIGxvZ2ljIHRvCmlkZW50aWZ5IGEgcHJlY2lzZSBsaW5rIHRh cmdldCwgZS5nLiBhIGhlYWRpbmcsIG5hbWVkIG9iamVjdCwgb3IgdGV4dApzZWFyY2guCihv cmctbGluay10cnktbGluay1zdG9yZS1mdW5jdGlvbnMpOiBFeHRyYWN0IGxvZ2ljIHRvIGNh bGwgZXh0ZXJuYWwKbGluayBzdG9yZSBmdW5jdGlvbnMuIFBhc3MgdGhlbSBhIG5ldyBgaW50 ZXJhY3RpdmU/JyBhcmd1bWVudC4KKiBsaXNwL29sLWJiZGIuZWwgKG9yZy1iYmRiLXN0b3Jl LWxpbmspOgoqIGxpc3Avb2wtYmlidGV4LmVsIChvcmctYmlidGV4LXN0b3JlLWxpbmspOgoq IGxpc3Avb2wtZG9jdmlldy5lbCAob3JnLWRvY3ZpZXctc3RvcmUtbGluayk6CiogbGlzcC9v bC1lc2hlbGwuZWwgKG9yZy1lc2hlbGwtc3RvcmUtbGluayk6CiogbGlzcC9vbC1ld3cuZWwg KG9yZy1ld3ctc3RvcmUtbGluayk6CiogbGlzcC9vbC1nbnVzLmVsIChvcmctZ251cy1zdG9y ZS1saW5rKToKKiBsaXNwL29sLWluZm8uZWwgKG9yZy1pbmZvLXN0b3JlLWxpbmspOgoqIGxp c3Avb2wtaXJjLmVsIChvcmctaXJjLXN0b3JlLWxpbmspOgoqIGxpc3Avb2wtbWFuLmVsIChv cmctbWFuLXN0b3JlLWxpbmspOgoqIGxpc3Avb2wtbWhlLmVsIChvcmctbWhlLXN0b3JlLWxp bmspOgoqIGxpc3Avb2wtcm1haWwuZWwgKG9yZy1ybWFpbC1zdG9yZS1saW5rKTogQWNjZXB0 IG9wdGlvbmFsIGFyZy4KKiBsaXNwL29yZy1pZC5lbCAob3JnLWlkLWxpbmstY29uc2lkZXIt cGFyZW50LWlkKTogTmV3IG9wdGlvbiB0byBhbGxvdwphIHBhcmVudCBoZWFkaW5nIHdpdGgg YW4gaWQgdG8gYmUgY29uc2lkZXJlZCBhcyBhIGxpbmsgdGFyZ2V0Lgoob3JnLWlkLWxpbmst dXNlLWNvbnRleHQpOiBOZXcgb3B0aW9uIHRvIGFkZCBjb250ZXh0IHRvIG9yZy1pZCBsaW5r cy4KKG9yZy1pZC1nZXQpOiBBZGQgb3B0aW9uYWwgYGluaGVyaXQnIGFyZ3VtZW50IHdoaWNo IGNvbnNpZGVycyBwYXJlbnRzJwpJRHMgaWYgdGhlIGN1cnJlbnQgZW50cnkgZG9lcyBub3Qg aGF2ZSBvbmUuCihvcmctaWQtc3RvcmUtbGluayk6IENvbnNpZGVyIElEcyBvZiBwYXJlbnQg aGVhZGluZ3MgYXMgbGluayB0YXJnZXRzCndoZW4gY3VycmVudCBoZWFkaW5nIGhhcyBubyBJ RCBhbmQgYG9yZy1pZC1saW5rLWNvbnNpZGVyLXBhcmVudC1pZCcgaXMKc2V0LiBBZGQgYSBz ZWFyY2ggc3RyaW5nIHRvIHRoZSBsaW5rIHdoZW4gZW5hYmxlZC4KKG9yZy1pZC1zdG9yZS1s aW5rLW1heWJlKTogRnVuY3Rpb24gc2V0IGFzIDpzdG9yZSBvcHRpb24gZm9yIGN1c3RvbSBp ZApsaW5rIHByb3BlcnR5LiBNb3ZlIGxvZ2ljIGZyb20gYG9yZy1zdG9yZS1saW5rJyBoZXJl IHRvIGRldGVybWluZSB3aGVuCmFuIG9yZy1pZCBsaW5rIHNob3VsZCBiZSBzdG9yZWQgdXNp bmcgYG9yZy1pZC1zdG9yZS1saW5rJy4KKG9yZy1pZC1vcGVuKTogUmVjb2duaXNlIHNlYXJj aCBzdHJpbmdzIGFmdGVyICI6OiIgaW4gb3JnLWlkIGxpbmtzLgoqIGxpc3Avb3JnLWxpbnQu ZWw6IGFkZCBjaGVja2VyIGZvciAiOjoiIGluIElEIHByb3BlcnRpZXMuCiogdGVzdGluZy9s aXNwL3Rlc3Qtb2wuZWw6IEFkZCB0ZXN0cyBmb3IKYG9yZy1saW5rLXByZWNpc2UtbGluay10 YXJnZXQnIGFuZCBgb3JnLWlkLXN0b3JlLWxpbmsnIGZ1bmN0aW9ucywKdGVzdGluZyBuZXcg b3B0aW9ucy4KKiBkb2Mvb3JnLW1hbnVhbC5vcmc6IFVwZGF0ZSBkb2N1bWVudGF0aW9uIGFi b3V0IGxpbmtzLgoqIGV0Yy9PUkctTkVXUzogRG9jdW1lbnQgY2hhbmdlcyBhbmQgbmV3IG9w dGlvbnMuCgpUaGVzZSBmZWF0dXJlIGFsbG93cyBmb3IgbW9yZSBwcmVjaXNlIGxpbmtzIHdo ZW4gdXNpbmcgb3JnLWlkIHRvIGxpbmsgdG8Kb3JnIGhlYWRpbmdzLCB3aXRob3V0IHJlcXVp cmluZyBldmVyeSBzaW5nbGUgaGVhZGxpbmUgdG8gaGF2ZSBhbiBpZC4KCkxpbms6IGh0dHBz Oi8vbGlzdC5vcmdtb2RlLm9yZy8xMTg0MzVlOC0wYjIwLTQ2ZmQtYWY2YS04OGRlOGUxOWZh YzZAYXBwLmZhc3RtYWlsLmNvbS8KLS0tCiBkb2Mvb3JnLW1hbnVhbC5vcmcgICAgICB8IDEz MyArKysrKysrKysrLS0tLS0tLQogZXRjL09SRy1ORVdTICAgICAgICAgICAgfCAgNjQgKysr KysrKysrCiBsaXNwL29sLWJiZGIuZWwgICAgICAgICB8ICAgMiArLQogbGlzcC9vbC1iaWJ0 ZXguZWwgICAgICAgfCAgIDIgKy0KIGxpc3Avb2wtZG9jdmlldy5lbCAgICAgIHwgICAyICst CiBsaXNwL29sLWVzaGVsbC5lbCAgICAgICB8ICAgMiArLQogbGlzcC9vbC1ld3cuZWwgICAg ICAgICAgfCAgIDIgKy0KIGxpc3Avb2wtZ251cy5lbCAgICAgICAgIHwgICAyICstCiBsaXNw L29sLWluZm8uZWwgICAgICAgICB8ICAgMiArLQogbGlzcC9vbC1pcmMuZWwgICAgICAgICAg fCAgIDIgKy0KIGxpc3Avb2wtbWFuLmVsICAgICAgICAgIHwgICAyICstCiBsaXNwL29sLW1o ZS5lbCAgICAgICAgICB8ICAgMiArLQogbGlzcC9vbC1ybWFpbC5lbCAgICAgICAgfCAgIDIg Ky0KIGxpc3Avb2wuZWwgICAgICAgICAgICAgIHwgMzEyICsrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0KIGxpc3Avb3JnLWlkLmVsICAgICAgICAgIHwgMTc4ICsr KysrKysrKysrKysrKysrKysrLS0tCiBsaXNwL29yZy1saW50LmVsICAgICAgICB8ICAxNiAr KysKIHRlc3RpbmcvbGlzcC90ZXN0LW9sLmVsIHwgMTMwICsrKysrKysrKysrKysrKysrCiAx NyBmaWxlcyBjaGFuZ2VkLCA2NTggaW5zZXJ0aW9ucygrKSwgMTk3IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RvYy9vcmctbWFudWFsLm9yZyBiL2RvYy9vcmctbWFudWFsLm9yZwpp bmRleCA3ZTVhYzA2NzMuLmYwMjg3ZTA5NSAxMDA2NDQKLS0tIGEvZG9jL29yZy1tYW51YWwu b3JnCisrKyBiL2RvYy9vcmctbWFudWFsLm9yZwpAQCAtMzI5NywxMCArMzI5Nyw2IEBAIEhl cmUgaXMgdGhlIGZ1bGwgc2V0IG9mIGJ1aWx0LWluIGxpbmsgdHlwZXM6CiAKICAgRmlsZSBs aW5rcy4gIEZpbGUgbmFtZSBtYXkgYmUgcmVtb3RlLCBhYnNvbHV0ZSwgb3IgcmVsYXRpdmUu CiAKLSAgQWRkaXRpb25hbGx5LCB5b3UgY2FuIHNwZWNpZnkgYSBsaW5lIG51bWJlciwgb3Ig YSB0ZXh0IHNlYXJjaC4KLSAgSW4gT3JnIGZpbGVzLCB5b3UgbWF5IGxpbmsgdG8gYSBoZWFk bGluZSBuYW1lLCBhIGN1c3RvbSBJRCwgb3IgYQotICBjb2RlIHJlZmVyZW5jZSBpbnN0ZWFk LgotCiAgIEFzIGEgc3BlY2lhbCBjYXNlLCAiZmlsZSIgcHJlZml4IG1heSBiZSBvbWl0dGVk IGlmIHRoZSBmaWxlIG5hbWUKICAgaXMgY29tcGxldGUsIGUuZy4sIGl0IHN0YXJ0cyB3aXRo ID0uLz0sIG9yID0vPS4KIApAQCAtMzM2NCw0NCArMzM2MCw1MCBAQCBIZXJlIGlzIHRoZSBm dWxsIHNldCBvZiBidWlsdC1pbiBsaW5rIHR5cGVzOgogCiAgIEV4ZWN1dGUgYSBzaGVsbCBj b21tYW5kIHVwb24gYWN0aXZhdGlvbi4KIAorCitGb3IgPWZpbGU6PSBhbmQgPWlkOj0gbGlu a3MsIHlvdSBjYW4gYWRkaXRpb25hbGx5IHNwZWNpZnkgYSBsaW5lCitudW1iZXIsIG9yIGEg dGV4dCBzZWFyY2ggc3RyaW5nLCBzZXBhcmF0ZWQgYnkgPTo6PS4gIEluIE9yZyBmaWxlcywg eW91CittYXkgbGluayB0byBhIGhlYWRsaW5lIG5hbWUsIGEgY3VzdG9tIElELCBvciBhIGNv ZGUgcmVmZXJlbmNlIGluc3RlYWQuCisKIFRoZSBmb2xsb3dpbmcgdGFibGUgaWxsdXN0cmF0 ZXMgdGhlIGxpbmsgdHlwZXMgYWJvdmUsIGFsb25nIHdpdGggdGhlaXIKIG9wdGlvbnM6CiAK LXwgTGluayBUeXBlICB8IEV4YW1wbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwKLXwtLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKLXwgaHR0cCAgICAg ICB8ID1odHRwOi8vc3RhZmYuc2NpZW5jZS51dmEubmwvYy5kb21pbmlrLz0gICAgICAgICAg ICAgICAgIHwKLXwgaHR0cHMgICAgICB8ID1odHRwczovL29yZ21vZGUub3JnLz0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgZG9pICAgICAgICB8ID1kb2k6MTAu MTAwMC8xODI9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwg ZmlsZSAgICAgICB8ID1maWxlOi9ob21lL2RvbWluaWsvaW1hZ2VzL2p1cGl0ZXIuanBnPSAg ICAgICAgICAgICAgICAgIHwKLXwgICAgICAgICAgICB8ID0vaG9tZS9kb21pbmlrL2ltYWdl cy9qdXBpdGVyLmpwZz0gKHNhbWUgYXMgYWJvdmUpICAgICAgIHwKLXwgICAgICAgICAgICB8 ID1maWxlOnBhcGVycy9sYXN0LnBkZj0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwKLXwgICAgICAgICAgICB8ID0uL3BhcGVycy9sYXN0LnBkZj0gKHNhbWUgYXMgYWJv dmUpICAgICAgICAgICAgICAgICAgICAgIHwKLXwgICAgICAgICAgICB8ID1maWxlOi9zc2g6 bWVAc29tZS53aGVyZTpwYXBlcnMvbGFzdC5wZGY9IChyZW1vdGUpICAgICAgIHwKLXwgICAg ICAgICAgICB8ID0vc3NoOm1lQHNvbWUud2hlcmU6cGFwZXJzL2xhc3QucGRmPSAoc2FtZSBh cyBhYm92ZSkgICAgIHwKLXwgICAgICAgICAgICB8ID1maWxlOnNvbWV0ZXh0ZmlsZTo6Tk5O PSAoanVtcCB0byBsaW5lIG51bWJlcikgICAgICAgICAgIHwKLXwgICAgICAgICAgICB8ID1m aWxlOnByb2plY3RzLm9yZz0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwKLXwgICAgICAgICAgICB8ID1maWxlOnByb2plY3RzLm9yZzo6c29tZSB3b3Jkcz0gKHRl eHQgc2VhcmNoKVtmbjoxMl0gICAgIHwKLXwgICAgICAgICAgICB8ID1maWxlOnByb2plY3Rz Lm9yZzo6KnRhc2sgdGl0bGU9IChoZWFkbGluZSBzZWFyY2gpICAgICAgIHwKLXwgICAgICAg ICAgICB8ID1maWxlOnByb2plY3RzLm9yZzo6I2N1c3RvbS1pZD0gKGhlYWRsaW5lIHNlYXJj aCkgICAgICAgIHwKLXwgYXR0YWNobWVudCB8ID1hdHRhY2htZW50OnByb2plY3RzLm9yZz0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgICAgICAgICAgICB8ID1hdHRh Y2htZW50OnByb2plY3RzLm9yZzo6c29tZSB3b3Jkcz0gKHRleHQgc2VhcmNoKSAgICAgIHwK LXwgZG9jdmlldyAgICB8ID1kb2N2aWV3OnBhcGVycy9sYXN0LnBkZjo6Tk5OPSAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwKLXwgaWQgICAgICAgICB8ID1pZDpCNzQyM0Y0RC0yRThB LTQ3MUItODgxMC1DNDBGMDc0NzE3RTk9ICAgICAgICAgICAgICAgIHwKLXwgbmV3cyAgICAg ICB8ID1uZXdzOmNvbXAuZW1hY3M9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwKLXwgbWFpbHRvICAgICB8ID1tYWlsdG86YWRlbnRAZ2FsYXh5Lm5ldD0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgbWhlICAgICAgICB8ID1taGU6Zm9s ZGVyPSAoZm9sZGVyIGxpbmspICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwg ICAgICAgICAgICB8ID1taGU6Zm9sZGVyI2lkPSAobWVzc2FnZSBsaW5rKSAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwKLXwgcm1haWwgICAgICB8ID1ybWFpbDpmb2xkZXI9IChmb2xk ZXIgbGluaykgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgICAgICAgICAgICB8 ID1ybWFpbDpmb2xkZXIjaWQ9IChtZXNzYWdlIGxpbmspICAgICAgICAgICAgICAgICAgICAg ICAgIHwKLXwgZ251cyAgICAgICB8ID1nbnVzOmdyb3VwPSAoZ3JvdXAgbGluaykgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgICAgICAgICAgICB8ID1nbnVzOmdyb3Vw I2lkPSAoYXJ0aWNsZSBsaW5rKSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgYmJk YiAgICAgICB8ID1iYmRiOlIuKlN0YWxsbWFuPSAocmVjb3JkIHdpdGggcmVnZXhwKSAgICAg ICAgICAgICAgICAgIHwKLXwgaXJjICAgICAgICB8ID1pcmM6L2lyYy5jb20vI2VtYWNzL2Jv Yj0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgaGVscCAgICAgICB8ID1o ZWxwOm9yZy1zdG9yZS1saW5rPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwKLXwgaW5mbyAgICAgICB8ID1pbmZvOm9yZyNFeHRlcm5hbCBsaW5rcz0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwKLXwgc2hlbGwgICAgICB8ID1zaGVsbDpscyAqLm9y Zz0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLXwgZWxpc3Ag ICAgICB8ID1lbGlzcDooZmluZC1maWxlICJFbGlzcC5vcmciKT0gKEVsaXNwIGZvcm0gdG8g ZXZhbHVhdGUpIHwKLXwgICAgICAgICAgICB8ID1lbGlzcDpvcmctYWdlbmRhPSAoaW50ZXJh Y3RpdmUgRWxpc3AgY29tbWFuZCkgICAgICAgICAgIHwKK3wgTGluayBUeXBlICB8IEV4YW1w bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8Cit8LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAorfCBodHRwICAgICAg IHwgPWh0dHA6Ly9zdGFmZi5zY2llbmNlLnV2YS5ubC9jLmRvbWluaWsvPSAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwKK3wgaHR0cHMgICAgICB8ID1odHRwczovL29yZ21vZGUub3Jn Lz0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8IGRv aSAgICAgICAgfCA9ZG9pOjEwLjEwMDAvMTgyPSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfAorfCBmaWxlICAgICAgIHwgPWZpbGU6L2hvbWUv ZG9taW5pay9pbWFnZXMvanVwaXRlci5qcGc9ICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwKK3wgICAgICAgICAgICB8ID0vaG9tZS9kb21pbmlrL2ltYWdlcy9qdXBpdGVyLmpwZz0g KHNhbWUgYXMgYWJvdmUpICAgICAgICAgICAgICAgICB8Cit8ICAgICAgICAgICAgfCA9Zmls ZTpwYXBlcnMvbGFzdC5wZGY9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfAorfCAgICAgICAgICAgIHwgPS4vcGFwZXJzL2xhc3QucGRmPSAoc2FtZSBh cyBhYm92ZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKK3wgICAgICAgICAg ICB8ID1maWxlOi9zc2g6bWVAc29tZS53aGVyZTpwYXBlcnMvbGFzdC5wZGY9IChyZW1vdGUp ICAgICAgICAgICAgICAgICB8Cit8ICAgICAgICAgICAgfCA9L3NzaDptZUBzb21lLndoZXJl OnBhcGVycy9sYXN0LnBkZj0gKHNhbWUgYXMgYWJvdmUpICAgICAgICAgICAgICAgfAorfCAg ICAgICAgICAgIHwgPWZpbGU6c29tZXRleHRmaWxlOjpOTk49IChqdW1wIHRvIGxpbmUgbnVt YmVyKSAgICAgICAgICAgICAgICAgICAgIHwKK3wgICAgICAgICAgICB8ID1maWxlOnByb2pl Y3RzLm9yZz0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8Cit8ICAgICAgICAgICAgfCA9ZmlsZTpwcm9qZWN0cy5vcmc6OnNvbWUgd29yZHM9ICh0 ZXh0IHNlYXJjaClbZm46MTJdICAgICAgICAgICAgICAgfAorfCAgICAgICAgICAgIHwgPWZp bGU6cHJvamVjdHMub3JnOjoqdGFzayB0aXRsZT0gKGhlYWRsaW5lIHNlYXJjaCkgICAgICAg ICAgICAgICAgIHwKK3wgICAgICAgICAgICB8ID1maWxlOnByb2plY3RzLm9yZzo6I2N1c3Rv bS1pZD0gKGhlYWRsaW5lIHNlYXJjaCkgICAgICAgICAgICAgICAgICB8Cit8IGF0dGFjaG1l bnQgfCA9YXR0YWNobWVudDpwcm9qZWN0cy5vcmc9ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfAorfCAgICAgICAgICAgIHwgPWF0dGFjaG1lbnQ6cHJvamVj dHMub3JnOjpzb21lIHdvcmRzPSAodGV4dCBzZWFyY2gpICAgICAgICAgICAgICAgIHwKK3wg ZG9jdmlldyAgICB8ID1kb2N2aWV3OnBhcGVycy9sYXN0LnBkZjo6Tk5OPSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8IGlkICAgICAgICAgfCA9aWQ6Qjc0MjNG NEQtMkU4QS00NzFCLTg4MTAtQzQwRjA3NDcxN0U5PSAgICAgICAgICAgICAgICAgICAgICAg ICAgfAorfCAgICAgICAgICAgIHwgPWlkOkI3NDIzRjRELTJFOEEtNDcxQi04ODEwLUM0MEYw NzQ3MTdFOTo6KnRhc2s9IChoZWFkbGluZSBzZWFyY2gpIHwKK3wgbmV3cyAgICAgICB8ID1u ZXdzOmNvbXAuZW1hY3M9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8Cit8IG1haWx0byAgICAgfCA9bWFpbHRvOmFkZW50QGdhbGF4eS5uZXQ9 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorfCBtaGUgICAg ICAgIHwgPW1oZTpmb2xkZXI9IChmb2xkZXIgbGluaykgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwKK3wgICAgICAgICAgICB8ID1taGU6Zm9sZGVyI2lkPSAo bWVzc2FnZSBsaW5rKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8 IHJtYWlsICAgICAgfCA9cm1haWw6Zm9sZGVyPSAoZm9sZGVyIGxpbmspICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorfCAgICAgICAgICAgIHwgPXJtYWlsOmZv bGRlciNpZD0gKG1lc3NhZ2UgbGluaykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwKK3wgZ251cyAgICAgICB8ID1nbnVzOmdyb3VwPSAoZ3JvdXAgbGluaykgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8ICAgICAgICAgICAgfCA9 Z251czpncm91cCNpZD0gKGFydGljbGUgbGluaykgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfAorfCBiYmRiICAgICAgIHwgPWJiZGI6Ui4qU3RhbGxtYW49IChyZWNv cmQgd2l0aCByZWdleHApICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKK3wgaXJjICAg ICAgICB8ID1pcmM6L2lyYy5jb20vI2VtYWNzL2JvYj0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8Cit8IGhlbHAgICAgICAgfCA9aGVscDpvcmctc3RvcmUt bGluaz0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAor fCBpbmZvICAgICAgIHwgPWluZm86b3JnI0V4dGVybmFsIGxpbmtzPSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKK3wgc2hlbGwgICAgICB8ID1zaGVsbDps cyAqLm9yZz0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8Cit8IGVsaXNwICAgICAgfCA9ZWxpc3A6KGZpbmQtZmlsZSAiRWxpc3Aub3JnIik9 IChFbGlzcCBmb3JtIHRvIGV2YWx1YXRlKSAgICAgICAgICAgfAorfCAgICAgICAgICAgIHwg PWVsaXNwOm9yZy1hZ2VuZGE9IChpbnRlcmFjdGl2ZSBFbGlzcCBjb21tYW5kKSAgICAgICAg ICAgICAgICAgICAgIHwKIAogIytjaW5kZXg6IFZNIGxpbmtzCiAjK2NpbmRleDogV2FuZGVy bHVzdCBsaW5rcwpAQCAtMzQ2Miw4ICszNDY0LDkgQEAgY3VycmVudCBidWZmZXI6CiAtIC9P cmcgbW9kZSBidWZmZXJzLyA6OgogCiAgIEZvciBPcmcgZmlsZXMsIGlmIHRoZXJlIGlzIGEg PTw8dGFyZ2V0Pj49IGF0IHBvaW50LCB0aGUgbGluayBwb2ludHMKLSAgdG8gdGhlIHRhcmdl dC4gIE90aGVyd2lzZSBpdCBwb2ludHMgdG8gdGhlIGN1cnJlbnQgaGVhZGxpbmUsIHdoaWNo Ci0gIGlzIGFsc28gdGhlIGRlc2NyaXB0aW9uLgorICB0byB0aGUgdGFyZ2V0LiAgSWYgdGhl cmUgaXMgYSBuYW1lZCBibG9jayAodXNpbmcgPSMrbmFtZTo9KSBhdAorICBwb2ludCwgdGhl IGxpbmsgcG9pbnRzIHRvIHRoYXQgbmFtZS4gIE90aGVyd2lzZSBpdCBwb2ludHMgdG8gdGhl CisgIGN1cnJlbnQgaGVhZGxpbmUsIHdoaWNoIGlzIGFsc28gdGhlIGRlc2NyaXB0aW9uLgog CiAgICMrdmluZGV4OiBvcmctaWQtbGluay10by1vcmctdXNlLWlkCiAgICMrY2luZGV4OiBA c2FtcHtDVVNUT01fSUR9LCBwcm9wZXJ0eQpAQCAtMzQ4MSw2ICszNDg0LDMwIEBAIGN1cnJl bnQgYnVmZmVyOgogICB0aW1lc3RhbXAsIGRlcGVuZGluZyBvbiB+b3JnLWlkLW1ldGhvZH4u ICBMYXRlciwgd2hlbiBpbnNlcnRpbmcgdGhlCiAgIGxpbmssIHlvdSBuZWVkIHRvIGRlY2lk ZSB3aGljaCBvbmUgdG8gdXNlLgogCisgICMrdmluZGV4OiBvcmctaWQtbGluay1jb25zaWRl ci1wYXJlbnQtaWQKKyAgIyt2aW5kZXg6IG9yZy1pZC1saW5rLXVzZS1jb250ZXh0CisgIFdo ZW4gfm9yZy1pZC1saW5rLWNvbnNpZGVyLXBhcmVudC1pZH4gaXMgfnR+IChhbmQKKyAgfm9y Zy1saW5rLWNvbnRleHQtZm9yLWZpbGVzfiBhbmQgfm9yZy1pZC1saW5rLXVzZS1jb250ZXh0 fiBhcmUgYm90aAorICBlbmFibGVkKSwgcGFyZW50ID1JRD0gcHJvcGVydGllcyBhcmUgY29u c2lkZXJlZC4gIFRoaXMgYWxsb3dzCisgIGxpbmtpbmcgdG8gc3BlY2lmaWMgdGFyZ2V0cywg bmFtZWQgYmxvY2tzLCBvciBoZWFkbGluZXMgKHdoaWNoIG1heQorICBub3QgaGF2ZSBhIGds b2JhbGx5IHVuaXF1ZSA9SUQ9IHRoZW1zZWx2ZXMpIHdpdGhpbiB0aGUgY29udGV4dCBvZiBh CisgIHBhcmVudCBoZWFkbGluZSBvciBmaWxlIHdoaWNoIGRvZXMuCisKKyAgRm9yIGV4YW1w bGUsIGdpdmVuIHRoaXMgb3JnIGZpbGUgd2l0aCB0aG9zZSB2YXJpYWJsZXMgc2V0OgorCisg ICMrYmVnaW5fc3JjIG9yZworICAsKiBQYXJlbnQKKyAgOlBST1BFUlRJRVM6CisgIDpJRDog YWJjCisgIDpFTkQ6CisgICwqKiBDaGlsZCAxCisgICwqKiBDaGlsZCAyCisgICMrZW5kX3Ny YworCisgIFN0b3JpbmcgYSBsaW5rIHdpdGggcG9pbnQgYXQgIkNoaWxkIDEiIHdpbGwgcHJv ZHVjZSBhIGxpbmsKKyAgPTxpZDphYmM6OipDaGlsZCAxPj0sIHdoaWNoIHByZWNpc2VseSBs aW5rcyB0byB0aGUgIkNoaWxkIDEiCisgIGhlYWRsaW5lIGV2ZW4gdGhvdWdoIGl0IGRvZXMg bm90IGhhdmUgaXRzIG93biBJRC4KKwogLSAvRW1haWwvTmV3cyBjbGllbnRzOiBWTSwgUm1h aWwsIFdhbmRlcmx1c3QsIE1ILUUsIEdudXMvIDo6CiAKICAgIyt2aW5kZXg6IG9yZy1saW5r LWVtYWlsLWRlc2NyaXB0aW9uLWZvcm1hdApAQCAtMzc2MCw3ICszNzg3LDkgQEAgdGhlIGxp bmsgY29tcGxldGlvbiBmdW5jdGlvbiBsaWtlIHRoaXM6CiA6QUxUX1RJVExFOiBTZWFyY2gg T3B0aW9ucwogOkVORDoKICMrY2luZGV4OiBzZWFyY2ggb3B0aW9uIGluIGZpbGUgbGlua3MK KyMrY2luZGV4OiBzZWFyY2ggb3B0aW9uIGluIGlkIGxpbmtzCiAjK2NpbmRleDogZmlsZSBs aW5rcywgc2VhcmNoaW5nCisjK2NpbmRleDogaWQgbGlua3MsIHNlYXJjaGluZwogIytjaW5k ZXg6IGF0dGFjaG1lbnQgbGlua3MsIHNlYXJjaGluZwogCiBGaWxlIGxpbmtzIGNhbiBjb250 YWluIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gdG8gbWFrZSBFbWFjcyBqdW1wIHRvIGEKQEAg LTM3NzIsOCArMzgwMSw4IEBAIGV4YW1wbGUsIHdoZW4gdGhlIGNvbW1hbmQgfm9yZy1zdG9y ZS1saW5rfiBjcmVhdGVzIGEgbGluayAoc2VlCiBsaW5lIGFzIGEgc2VhcmNoIHN0cmluZyB0 aGF0IGNhbiBiZSB1c2VkIHRvIGZpbmQgdGhpcyBsaW5lIGJhY2sgbGF0ZXIKIHdoZW4gZm9s bG93aW5nIHRoZSBsaW5rIHdpdGgge3t7a2JkKEMtYyBDLW8pfX19LgogCi1Ob3RlIHRoYXQg YWxsIHNlYXJjaCBvcHRpb25zIGFwcGx5IGZvciBBdHRhY2htZW50IGxpbmtzIGluIHRoZSBz YW1lCi13YXkgdGhhdCB0aGV5IGFwcGx5IGZvciBGaWxlIGxpbmtzLgorTm90ZSB0aGF0IGFs bCBzZWFyY2ggb3B0aW9ucyBhcHBseSBmb3IgQXR0YWNobWVudCBhbmQgSUQgbGlua3MgaW4g dGhlCitzYW1lIHdheSB0aGF0IHRoZXkgYXBwbHkgZm9yIEZpbGUgbGlua3MuCiAKIEhlcmUg aXMgdGhlIHN5bnRheCBvZiB0aGUgZGlmZmVyZW50IHdheXMgdG8gYXR0YWNoIGEgc2VhcmNo IHRvIGEgZmlsZQogbGluaywgdG9nZXRoZXIgd2l0aCBleHBsYW5hdGlvbnMgZm9yIGVhY2g6 CkBAIC0yMTM1NSw3ICsyMTM4NCw3IEBAIFRoZSBmb2xsb3dpbmcgPW9sLW1hbi5lbD0gZmls ZSBpbXBsZW1lbnRzIGl0CiBQQVRIIHNob3VsZCBiZSBhIHRvcGljIHRoYXQgY2FuIGJlIHRo cm93biBhdCB0aGUgbWFuIGNvbW1hbmQuIgogICAoZnVuY2FsbCBvcmctbWFuLWNvbW1hbmQg cGF0aCkpCiAKLShkZWZ1biBvcmctbWFuLXN0b3JlLWxpbmsgKCkKKyhkZWZ1biBvcmctbWFu LXN0b3JlLWxpbmsgKCZvcHRpb25hbCBfaW50ZXJhY3RpdmU/KQogICAiU3RvcmUgYSBsaW5r IHRvIGEgbWFuIHBhZ2UuIgogICAod2hlbiAobWVtcSBtYWpvci1tb2RlICcoTWFuLW1vZGUg d29tYW4tbW9kZSkpCiAgICAgOzsgVGhpcyBpcyBhIG1hbiBwYWdlLCB3ZSBkbyBtYWtlIHRo aXMgbGluay4KQEAgLTIxNDE1LDEzICsyMTQ0NCwxNSBAQCBBIHJldmlldyBvZiA9b2wtbWFu LmVsPToKIAogICAgRm9yIGV4YW1wbGUsIH5vcmctbWFuLXN0b3JlLWxpbmt+IGlzIHJlc3Bv bnNpYmxlIGZvciBzdG9yaW5nIGEgbGluawogICAgd2hlbiB+b3JnLXN0b3JlLWxpbmt+IChz ZWUgW1sqSGFuZGxpbmcgTGlua3NdXSkgaXMgY2FsbGVkIGZyb20gYSBidWZmZXIKLSAgIGRp c3BsYXlpbmcgYSBtYW4gcGFnZS4gIEl0IGZpcnN0IGNoZWNrcyBpZiB0aGUgbWFqb3IgbW9k ZSBpcwotICAgYXBwcm9wcmlhdGUuICBJZiBjaGVjayBmYWlscywgdGhlIGZ1bmN0aW9uIHJl dHVybnMgfm5pbH4sIHdoaWNoCi0gICBtZWFucyBpdCBpc24ndCByZXNwb25zaWJsZSBmb3Ig Y3JlYXRpbmcgYSBsaW5rIHRvIHRoZSBjdXJyZW50Ci0gICBidWZmZXIuICBPdGhlcndpc2Ug dGhlIGZ1bmN0aW9uIG1ha2VzIGEgbGluayBzdHJpbmcgYnkgY29tYmluaW5nCi0gICB0aGUg PW1hbjo9IHByZWZpeCB3aXRoIHRoZSBtYW4gdG9waWMuICBJdCBhbHNvIHByb3ZpZGVzIGEg ZGVmYXVsdAotICAgZGVzY3JpcHRpb24uICBUaGUgZnVuY3Rpb24gfm9yZy1pbnNlcnQtbGlu a34gY2FuIGluc2VydCBpdCBiYWNrCi0gICBpbnRvIGFuIE9yZyBidWZmZXIgbGF0ZXIgb24u CisgICBkaXNwbGF5aW5nIGEgbWFuIHBhZ2UuICBJdCBpcyBwYXNzZWQgYW4gYXJndW1lbnQg fmludGVyYWN0aXZlP34KKyAgIHdoaWNoIHRoaXMgZnVuY3Rpb24gZG9lcyBub3QgdXNlLCBi dXQgb3RoZXIgc3RvcmUgZnVuY3Rpb25zIHVzZSB0bworICAgYmVoYXZlIGRpZmZlcmVudGx5 IHdoZW4gYSBsaW5rIGlzIHN0b3JlZCBpbnRlcmFjdGl2ZWx5IGJ5IHRoZSB1c2VyLgorICAg SXQgZmlyc3QgY2hlY2tzIGlmIHRoZSBtYWpvciBtb2RlIGlzIGFwcHJvcHJpYXRlLiAgSWYg Y2hlY2sgZmFpbHMsCisgICB0aGUgZnVuY3Rpb24gcmV0dXJucyB+bmlsfiwgd2hpY2ggbWVh bnMgaXQgaXNuJ3QgcmVzcG9uc2libGUgZm9yCisgICBjcmVhdGluZyBhIGxpbmsgdG8gdGhl IGN1cnJlbnQgYnVmZmVyLiAgT3RoZXJ3aXNlIHRoZSBmdW5jdGlvbgorICAgbWFrZXMgYSBs aW5rIHN0cmluZyBieSBjb21iaW5pbmcgdGhlID1tYW46PSBwcmVmaXggd2l0aCB0aGUgbWFu CisgICB0b3BpYy4gIEl0IGFsc28gcHJvdmlkZXMgYSBkZWZhdWx0IGRlc2NyaXB0aW9uLiAg VGhlIGZ1bmN0aW9uCisgICB+b3JnLWluc2VydC1saW5rfiBjYW4gaW5zZXJ0IGl0IGJhY2sg aW50byBhbiBPcmcgYnVmZmVyIGxhdGVyIG9uLgogCiAqKiBBZGRpbmcgRXhwb3J0IEJhY2tl bmRzCiA6UFJPUEVSVElFUzoKZGlmZiAtLWdpdCBhL2V0Yy9PUkctTkVXUyBiL2V0Yy9PUkct TkVXUwppbmRleCBlYzAxMDA0ZjguLjExMTVlM2JiNCAxMDA2NDQKLS0tIGEvZXRjL09SRy1O RVdTCisrKyBiL2V0Yy9PUkctTkVXUwpAQCAtMzQ1LDYgKzM0NSwxNCBAQCB0aW1lc3RhbXAg b2JqZWN0LiAgUG9zc2libGUgdmFsdWVzOiB+dGltZXJhbmdlfiwgfmRhdGVyYW5nZX4sIH5u aWx+Lgogfm9yZy1lbGVtZW50LXRpbWVzdGFtcC1pbnRlcnByZXRlcn4gdGFrZXMgaW50byBh Y2NvdW50IHRoaXMgcHJvcGVydHkKIGFuZCByZXR1cm5zIGFuIGFwcHJvcHJpYXRlIHRpbWVz dGFtcCBzdHJpbmcuCiAKKyoqKiogPW9yZy1saW5rPSBzdG9yZSBmdW5jdGlvbnMgYXJlIHBh c3NlZCBhbiB+aW50ZXJhY3RpdmU/fiBhcmd1bWVudAorCitUaGUgfjpzdG9yZTp+IGZ1bmN0 aW9ucyBzZXQgZm9yIGxpbmsgdHlwZXMgdXNpbmcKK35vcmctbGluay1zZXQtcGFyYW1ldGVy c34gYXJlIG5vdyBwYXNzZWQgYW4gfmludGVyYWN0aXZlP34gYXJndW1lbnQsCitpbmRpY2F0 aW5nIHdoZXRoZXIgfm9yZy1zdG9yZS1saW5rfiB3YXMgY2FsbGVkIGludGVyYWN0aXZlbHku CisKK0V4aXN0aW5nIHN0b3JlIGZ1bmN0aW9ucyB3aWxsIGNvbnRpbnVlIHRvIHdvcmsuCisK ICoqKiB+b3JnLXByaW9yaXR5PXNob3d+IGNvbW1hbmQgbm8gbG9uZ2VyIGFkanVzdHMgZm9y IHNjaGVkdWxlZC9kZWFkbGluZQogCiBJbiBhZ2VuZGEgdmlld3MsIH5vcmctcHJpb3JpdHk9 c2hvd34gY29tbWFuZCBwcmV2aW91c2x5IGRpc3BsYXllZCB0aGUKQEAgLTQyMyw2ICs0MzEs MjcgQEAgVGhlIGNoYW5nZSBpcyBicmVha2luZyB3aGVuIH5vcmctdXNlLXByb3BlcnR5LWlu aGVyaXRhbmNlfiBpcyBzZXQgdG8gfnR+LgogKioqIH5vcmctYmFiZWwtbGlseXBvbmQtY29t cGlsZS1saWx5ZmlsZX4gaWdub3JlcyBvcHRpb25hbCBzZWNvbmQgYXJndW1lbnQKIAogVGhl ID1URVNUPSBwYXJhbWV0ZXIgaXMgYmV0dGVyIHNlcnZlZCBieSBFbWFjcyBkZWJ1Z2dpbmcg dG9vbHMuCisKKyoqKiB+b3JnLWlkLXN0b3JlLWxpbmt+IG5vdyBhZGRzIHNlYXJjaCBzdHJp bmdzIGZvciBwcmVjaXNlIGxpbmsgdGFyZ2V0cworCitUaGlzIG5ldyBiZWhhdmlvdXIgY2Fu IGJlIGRpc2FibGVkIGdlbmVyYWxseSBieSBzZXR0aW5nCit+b3JnLWlkLWxpbmstdXNlLWNv bnRleHR+IHRvIH5uaWx+LCBvciB0aGUgc2V0dGluZyBjYW4gYmUgdG9nZ2xlZCBmb3IKK2Eg c2luZ2xlIGNhbGwgdG8gfm9yZy1zdG9yZS1saW5rfiB3aXRoIGEgdW5pdmVyc2FsIGFyZ3Vt ZW50LgorCitXaGVuIHVzaW5nIHRoaXMgZmVhdHVyZSwgSURzIHNob3VsZCBub3QgaW5jbHVk ZSA9Ojo9LCB3aGljaCBpcyB1c2VkIGluCitsaW5rcyB0byBpbmRpY2F0ZSB0aGUgc3RhcnQg b2YgdGhlIHNlYXJjaCBzdHJpbmcuICBGb3IgYmFja3dhcmRzCitjb21wYWJpbGl0eSwgZXhp c3RpbmcgSURzIGluY2x1ZGluZyA9Ojo9IHdpbGwgc3RpbGwgYmUgbWF0Y2hlZCAoYnV0Citj YW5ub3QgYmUgdXNlZCB0b2dldGhlciB3aXRoIHByZWNpc2UgbGluayB0YXJnZXRzKS4gIEFu IG9yZy1saW50CitjaGVja2VyIGhhcyBiZWVuIGFkZGVkIHRvIHdhcm4gYWJvdXQgdGhpcy4K KworKioqIH5vcmctc3RvcmUtbGlua34gYmVoYXZpb3VyIHN0b3JpbmcgYWRkaXRpb25hbCA9 Q1VTVE9NX0lEPSBsaW5rcyBoYXMgY2hhbmdlZAorCitBcyB3ZWxsIGFzIGFuID1pZDo9IGxp bmssIH5vcmctc3RvcmUtbGlua34gc3RvcmVzIGFuIGFkZGl0aW9uYWwgImh1bWFuCityZWFk YWJsZSIgbGluayB1c2luZyBhIG5vZGUncyA9Q1VTVE9NX0lEPSBwcm9wZXJ0eSwgaWYgYXZh aWxhYmxlLgorVGhpcyBiZWhhdmlvdXIgaGFzIGJlZW4gZXhwYW5kZWQgdG8gc3RvcmUgYW4g YWRkaXRpb25hbCA9Q1VTVE9NX0lEPQorbGluayB3aGVuIHN0b3JpbmcgYW55IHR5cGUgb2Yg ZXh0ZXJuYWwgbGluayB0eXBlIGluIGFuIE9yZyBmaWxlLCBub3QKK2p1c3QgPWlkOj0gbGlu a3MuCisKICoqIE5ldyBhbmQgY2hhbmdlZCBvcHRpb25zCiAqKiogVGhlIGRlZmF1bHQgdmFs dWUgb2Ygfm9yZy1hdHRhY2gtc3RvcmUtbGluay1wfiBpcyBub3cgfmF0dGFjaGVkfgogCkBA IC02NTksNiArNjg4LDM1IEBAIG1hbm5lciB3aXRoIH5ydW4tcHl0aG9ufi4KIFRoaXMgYWxs b3dzIHRvIHJ1biBmdW5jdGlvbnMgYWZ0ZXIgfm9yZy1pbmRlbnR+IGludGlhbGl6ZXMgYSBi dWZmZXIgdG8KIGVucmljaCBpdHMgcHJvcGVydGllcy4KIAorKioqIE5ldyBvcHRpb24gfm9y Zy1pZC1saW5rLWNvbnNpZGVyLXBhcmVudC1pZH4gdG8gYWxsb3cgPWlkOj0gbGlua3MgdG8g cGFyZW50IGhlYWRsaW5lcworCitGb3IgPWlkOj0gbGlua3MsIHdoZW4gdGhpcyBvcHRpb24g aXMgZW5hYmxlZCwgfm9yZy1zdG9yZS1saW5rfiB3aWxsCitsb29rIGZvciBpZHMgZnJvbSBw YXJlbnQvYW5jZXN0b3IgaGVhZGxpbmVzLCBpZiB0aGUgY3VycmVudCBoZWFkbGluZQorZG9l cyBub3QgaGF2ZSBhbiBpZC4KKworQ29tYmluZWQgd2l0aCB0aGUgbmV3IGFiaWxpdHkgZm9y ID1pZDo9IGxpbmtzIHRvIHVzZSBzZWFyY2ggc3RyaW5ncworZm9yIHByZWNpc2UgbGluayB0 YXJnZXRzICh3aGVuID1vcmctaWQtbGluay11c2UtY29udGV4dD0gaXMgPXQ9LCB3aGljaAor aXMgdGhlIGRlZmF1bHQpLCB0aGlzIGFsbG93cyBsaW5raW5nIHRvIHNwZWNpZmljIGhlYWRs aW5lcyB3aXRob3V0CityZXF1aXJpbmcgZXZlcnkgaGVhZGxpbmUgdG8gaGF2ZSBhbiBpZCBw cm9wZXJ0eSwgYXMgbG9uZyBhcyB0aGUKK2hlYWRsaW5lIGlzIHVuaXF1ZSB3aXRoaW4gYSBz dWJ0cmVlIHRoYXQgZG9lcyBoYXZlIGFuIGlkIHByb3BlcnR5LgorCitGb3IgZXhhbXBsZSwg Z2l2ZW4gdGhpcyBvcmcgZmlsZToKKworIytiZWdpbl9zcmMgb3JnCissKiBQYXJlbnQKKzpQ Uk9QRVJUSUVTOgorOklEOiBhYmMKKzpFTkQ6CissKiogQ2hpbGQgMQorLCoqIENoaWxkIDIK KyMrZW5kX3NyYworCitTdG9yaW5nIGEgbGluayB3aXRoIHBvaW50IGF0ICJDaGlsZCAxIiB3 aWxsIHByb2R1Y2UgYSBsaW5rCis9PGlkOmFiYzo6KkNoaWxkIDE+PSwgd2hpY2ggcHJlY2lz ZWx5IGxpbmtzIHRvIHRoZSAiQ2hpbGQgMSIgaGVhZGxpbmUKK2V2ZW4gdGhvdWdoIGl0IGRv ZXMgbm90IGhhdmUgaXRzIG93biBJRC4gIEJ5IGdpdmluZyBmaWxlcyB0b3AtbGV2ZWwgaWQK K3Byb3BlcnRpZXMsIGxpbmtzIHRvIGhlYWRsaW5lcyBpbiB0aGUgZmlsZSBjYW4gYWxzbyBi ZSBtYWRlIG1vcmUKK3JvYnVzdCBieSB1c2luZyB0aGUgZmlsZSBpZCBpbnN0ZWFkIG9mIHRo ZSBmaWxlIHBhdGguCisKICoqIE5ldyBmZWF0dXJlcwogKioqID1vYi1wbGFudHVtbC5lbD06 IFN1cHBvcnQgdGlreiBmaWxlIGZvcm1hdCBvdXRwdXQKIApAQCAtOTQ3LDYgKzEwMDUsMTIg QEAgQSBudW1lcmljIHZhbHVlIGZvcmNlcyBhIGhlYWRpbmcgYXQgdGhhdCBsZXZlbCB0byBi ZSBpbnNlcnRlZC4gIEZvcgogYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIG5vbi1udW1lcmlj IG5vbi1uaWwgdmFsdWVzIGluc2VydCBsZXZlbCAxCiBoZWFkaW5ncyBhcyBiZWZvcmUuCiAK KyoqKiBOZXcgb3B0aW9uYWwgYXJndW1lbnQgZm9yIH5vcmctaWQtZ2V0fgorCitOZXcgb3B0 aW9uYWwgYXJndW1lbnQgPUlOSEVSSVQ9IG1lYW5zIGluaGVyaXRlZCBJRCBwcm9wZXJ0aWVz IGZyb20KK3BhcmVudCBlbnRyaWVzIGFyZSBjb25zaWRlcmVkIHdoZW4gZ2V0dGluZyBhbiBl bnRyeSdzIElEIChzZWUKK35vcmctaWQtbGluay1jb25zaWRlci1wYXJlbnQtaWR+IG9wdGlv bikuCisKICoqIE1pc2NlbGxhbmVvdXMKICoqKiA9b3JnLWNyeXB0LmVsPSBub3cgYXBwbGll cyBpbml0aWFsIHZpc2liaWxpdHkgc2V0dGluZ3MgdG8gZGVjcnlwdGVkIGVudHJpZXMKIApk aWZmIC0tZ2l0IGEvbGlzcC9vbC1iYmRiLmVsIGIvbGlzcC9vbC1iYmRiLmVsCmluZGV4IGJl MzkyNGZjOS4uNmVhMDYwZjcwIDEwMDY0NAotLS0gYS9saXNwL29sLWJiZGIuZWwKKysrIGIv bGlzcC9vbC1iYmRiLmVsCkBAIC0yMjYsNyArMjI2LDcgQEAgZGF0ZSB5ZWFyKS4iCiAKIDs7 OyBJbXBsZW1lbnRhdGlvbgogCi0oZGVmdW4gb3JnLWJiZGItc3RvcmUtbGluayAoKQorKGRl ZnVuIG9yZy1iYmRiLXN0b3JlLWxpbmsgKCZvcHRpb25hbCBfaW50ZXJhY3RpdmU/KQogICAi U3RvcmUgYSBsaW5rIHRvIGEgQkJEQiBkYXRhYmFzZSBlbnRyeS4iCiAgICh3aGVuIChlcSBt YWpvci1tb2RlICdiYmRiLW1vZGUpCiAgICAgOzsgVGhpcyBpcyBCQkRCLCB3ZSBtYWtlIHRo aXMgbGluayEKZGlmZiAtLWdpdCBhL2xpc3Avb2wtYmlidGV4LmVsIGIvbGlzcC9vbC1iaWJ0 ZXguZWwKaW5kZXggYzVhOTUwZTJkLi4zODQ2OGYzMmYgMTAwNjQ0Ci0tLSBhL2xpc3Avb2wt YmlidGV4LmVsCisrKyBiL2xpc3Avb2wtYmlidGV4LmVsCkBAIC01MDcsNyArNTA3LDcgQEAg QVJHLCB3aGVuIG5vbi1uaWwsIGlzIGEgdW5pdmVyc2FsIHByZWZpeCBhcmd1bWVudC4gIFNl ZQogYG9yZy1vcGVuLWZpbGUnIGZvciBkZXRhaWxzLiIKICAgKG9yZy1saW5rLW9wZW4tYXMt ZmlsZSBwYXRoIGFyZykpCiAKLShkZWZ1biBvcmctYmlidGV4LXN0b3JlLWxpbmsgKCkKKyhk ZWZ1biBvcmctYmlidGV4LXN0b3JlLWxpbmsgKCZvcHRpb25hbCBfaW50ZXJhY3RpdmU/KQog ICAiU3RvcmUgYSBsaW5rIHRvIGEgQmliVGVYIGVudHJ5LiIKICAgKHdoZW4gKGVxIG1ham9y LW1vZGUgJ2JpYnRleC1tb2RlKQogICAgIChsZXQqICgoc2VhcmNoIChvcmctY3JlYXRlLWZp bGUtc2VhcmNoLWluLWJpYnRleCkpCmRpZmYgLS1naXQgYS9saXNwL29sLWRvY3ZpZXcuZWwg Yi9saXNwL29sLWRvY3ZpZXcuZWwKaW5kZXggYjMxZjFjZTVlLi4wOTA3ZGRlZTEgMTAwNjQ0 Ci0tLSBhL2xpc3Avb2wtZG9jdmlldy5lbAorKysgYi9saXNwL29sLWRvY3ZpZXcuZWwKQEAg LTgzLDcgKzgzLDcgQEAKICAgICAgIChlcnJvciAiTm8gc3VjaCBmaWxlOiAlcyIgcGF0aCkp CiAgICAgKHdoZW4gcGFnZSAoZG9jLXZpZXctZ290by1wYWdlIHBhZ2UpKSkpCiAKLShkZWZ1 biBvcmctZG9jdmlldy1zdG9yZS1saW5rICgpCisoZGVmdW4gb3JnLWRvY3ZpZXctc3RvcmUt bGluayAoJm9wdGlvbmFsIF9pbnRlcmFjdGl2ZT8pCiAgICJTdG9yZSBhIGxpbmsgdG8gYSBk b2N2aWV3IGJ1ZmZlci4iCiAgICh3aGVuIChlcSBtYWpvci1tb2RlICdkb2Mtdmlldy1tb2Rl KQogICAgIDs7IFRoaXMgYnVmZmVyIGlzIGluIGRvYy12aWV3LW1vZGUKZGlmZiAtLWdpdCBh L2xpc3Avb2wtZXNoZWxsLmVsIGIvbGlzcC9vbC1lc2hlbGwuZWwKaW5kZXggMmM3ZWM2YmVm Li41OTVkZDBlZTAgMTAwNjQ0Ci0tLSBhL2xpc3Avb2wtZXNoZWxsLmVsCisrKyBiL2xpc3Av b2wtZXNoZWxsLmVsCkBAIC02MCw3ICs2MCw3IEBAIGZvbGxvd2VkIGJ5IGEgY29sb24uIgog ICAgIChpbnNlcnQgY29tbWFuZCkKICAgICAoZXNoZWxsLXNlbmQtaW5wdXQpKSkKIAotKGRl ZnVuIG9yZy1lc2hlbGwtc3RvcmUtbGluayAoKQorKGRlZnVuIG9yZy1lc2hlbGwtc3RvcmUt bGluayAoJm9wdGlvbmFsIF9pbnRlcmFjdGl2ZT8pCiAgICJTdG9yZSBlc2hlbGwgbGluay4K IFdoZW4gb3BlbmVkLCB0aGUgbGluayBzd2l0Y2hlcyBiYWNrIHRvIHRoZSBjdXJyZW50IGVz aGVsbCBidWZmZXIgYW5kCiB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4iCmRpZmYg LS1naXQgYS9saXNwL29sLWV3dy5lbCBiL2xpc3Avb2wtZXd3LmVsCmluZGV4IDQwYjgyMGQy Yi4uYzEzZGJmMzM5IDEwMDY0NAotLS0gYS9saXNwL29sLWV3dy5lbAorKysgYi9saXNwL29s LWV3dy5lbApAQCAtNjIsNyArNjIsNyBAQAogICAiT3BlbiBVUkwgd2l0aCBFd3cgaW4gdGhl IGN1cnJlbnQgYnVmZmVyLiIKICAgKGV3dyB1cmwpKQogCi0oZGVmdW4gb3JnLWV3dy1zdG9y ZS1saW5rICgpCisoZGVmdW4gb3JnLWV3dy1zdG9yZS1saW5rICgmb3B0aW9uYWwgX2ludGVy YWN0aXZlPykKICAgIlN0b3JlIGEgbGluayB0byB0aGUgdXJsIG9mIGFuIEVXVyBidWZmZXIu IgogICAod2hlbiAoZXEgbWFqb3ItbW9kZSAnZXd3LW1vZGUpCiAgICAgKG9yZy1saW5rLXN0 b3JlLXByb3BzCmRpZmYgLS1naXQgYS9saXNwL29sLWdudXMuZWwgYi9saXNwL29sLWdudXMu ZWwKaW5kZXggZTEwNWZkYjJjLi5iOWVlODY4M2YgMTAwNjQ0Ci0tLSBhL2xpc3Avb2wtZ251 cy5lbAorKysgYi9saXNwL29sLWdudXMuZWwKQEAgLTEyMyw3ICsxMjMsNyBAQCBJZiBgb3Jn LXN0b3JlLWxpbmsnIHdhcyBjYWxsZWQgd2l0aCBhIHByZWZpeCBhcmcgdGhlIG1lYW5pbmcg b2YKIAkgICAgICAodXJsLWVuY29kZS11cmwgbWVzc2FnZS1pZCkpCiAgICAgKGNvbmNhdCAi Z251czoiIGdyb3VwICIjIiBtZXNzYWdlLWlkKSkpCiAKLShkZWZ1biBvcmctZ251cy1zdG9y ZS1saW5rICgpCisoZGVmdW4gb3JnLWdudXMtc3RvcmUtbGluayAoJm9wdGlvbmFsIF9pbnRl cmFjdGl2ZT8pCiAgICJTdG9yZSBhIGxpbmsgdG8gYSBHbnVzIGZvbGRlciBvciBtZXNzYWdl LiIKICAgKHBjYXNlIG1ham9yLW1vZGUKICAgICAoYGdudXMtZ3JvdXAtbW9kZQpkaWZmIC0t Z2l0IGEvbGlzcC9vbC1pbmZvLmVsIGIvbGlzcC9vbC1pbmZvLmVsCmluZGV4IDBlZGY5YTEz Zi4uNjA2MmNhYjM0IDEwMDY0NAotLS0gYS9saXNwL29sLWluZm8uZWwKKysrIGIvbGlzcC9v bC1pbmZvLmVsCkBAIC01MCw3ICs1MCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAg Omluc2VydC1kZXNjcmlwdGlvbiAjJ29yZy1pbmZvLWRlc2NyaXB0aW9uLWFzLWNvbW1hbmQp CiAKIDs7IEltcGxlbWVudGF0aW9uCi0oZGVmdW4gb3JnLWluZm8tc3RvcmUtbGluayAoKQor KGRlZnVuIG9yZy1pbmZvLXN0b3JlLWxpbmsgKCZvcHRpb25hbCBfaW50ZXJhY3RpdmU/KQog ICAiU3RvcmUgYSBsaW5rIHRvIGFuIEluZm8gZmlsZSBhbmQgbm9kZS4iCiAgICh3aGVuIChl cSBtYWpvci1tb2RlICdJbmZvLW1vZGUpCiAgICAgKGxldCAoKGxpbmsgKGNvbmNhdCAiaW5m bzoiCmRpZmYgLS1naXQgYS9saXNwL29sLWlyYy5lbCBiL2xpc3Avb2wtaXJjLmVsCmluZGV4 IDc4YzQ4ODRiMC4uYjI2M2U1MmRiIDEwMDY0NAotLS0gYS9saXNwL29sLWlyYy5lbAorKysg Yi9saXNwL29sLWlyYy5lbApAQCAtMTAzLDcgKzEwMyw3IEBAIGF0dHJpYnV0ZXMgdGhhdCBh cmUgZm91bmQuIgogICAgIHBhcnRzKSkKIAogOzs7IyMjYXV0b2xvYWQKLShkZWZ1biBvcmct aXJjLXN0b3JlLWxpbmsgKCkKKyhkZWZ1biBvcmctaXJjLXN0b3JlLWxpbmsgKCZvcHRpb25h bCBfaW50ZXJhY3RpdmU/KQogICAiRGlzcGF0Y2ggdG8gdGhlIGFwcHJvcHJpYXRlIGZ1bmN0 aW9uIHRvIHN0b3JlIGEgbGluayB0byBhbiBJUkMgc2Vzc2lvbi4iCiAgIChjb25kCiAgICAo KGVxIG1ham9yLW1vZGUgJ2VyYy1tb2RlKQpkaWZmIC0tZ2l0IGEvbGlzcC9vbC1tYW4uZWwg Yi9saXNwL29sLW1hbi5lbAppbmRleCBlM2YxMzgxNWUuLjQyYWFjZWE4MSAxMDA2NDQKLS0t IGEvbGlzcC9vbC1tYW4uZWwKKysrIGIvbGlzcC9vbC1tYW4uZWwKQEAgLTgyLDcgKzgyLDcg QEAgbWF0Y2hlZCBzdHJpbmdzIGluIG1hbiBidWZmZXIuIgogICAgICAgICAgICAgKHNldC13 aW5kb3ctcG9pbnQgd2luZG93IHBvaW50KQogICAgICAgICAgICAgKHNldC13aW5kb3ctc3Rh cnQgd2luZG93IHBvaW50KSkpKSkpKQogCi0oZGVmdW4gb3JnLW1hbi1zdG9yZS1saW5rICgp CisoZGVmdW4gb3JnLW1hbi1zdG9yZS1saW5rICgmb3B0aW9uYWwgX2ludGVyYWN0aXZlPykK ICAgIlN0b3JlIGEgbGluayB0byBhIFJFQURNRSBmaWxlLiIKICAgKHdoZW4gKG1lbXEgbWFq b3ItbW9kZSAnKE1hbi1tb2RlIHdvbWFuLW1vZGUpKQogICAgIDs7IFRoaXMgaXMgYSBtYW4g cGFnZSwgd2UgZG8gbWFrZSB0aGlzIGxpbmsKZGlmZiAtLWdpdCBhL2xpc3Avb2wtbWhlLmVs IGIvbGlzcC9vbC1taGUuZWwKaW5kZXggMTA2Y2ZlZGM5Li5hMzI0ODEzMjQgMTAwNjQ0Ci0t LSBhL2xpc3Avb2wtbWhlLmVsCisrKyBiL2xpc3Avb2wtbWhlLmVsCkBAIC04MCw3ICs4MCw3 IEBAIHN1cHBvcnRlZCBieSBNSC1FLiIKIChvcmctbGluay1zZXQtcGFyYW1ldGVycyAibWhl IiA6Zm9sbG93ICMnb3JnLW1oZS1vcGVuIDpzdG9yZSAjJ29yZy1taGUtc3RvcmUtbGluaykK IAogOzsgSW1wbGVtZW50YXRpb24KLShkZWZ1biBvcmctbWhlLXN0b3JlLWxpbmsgKCkKKyhk ZWZ1biBvcmctbWhlLXN0b3JlLWxpbmsgKCZvcHRpb25hbCBfaW50ZXJhY3RpdmU/KQogICAi U3RvcmUgYSBsaW5rIHRvIGFuIE1ILUUgZm9sZGVyIG9yIG1lc3NhZ2UuIgogICAod2hlbiAo b3IgKGVxIG1ham9yLW1vZGUgJ21oLWZvbGRlci1tb2RlKQogCSAgICAoZXEgbWFqb3ItbW9k ZSAnbWgtc2hvdy1tb2RlKSkKZGlmZiAtLWdpdCBhL2xpc3Avb2wtcm1haWwuZWwgYi9saXNw L29sLXJtYWlsLmVsCmluZGV4IGY2MDMxYWI1Mi4uZjFmNzUzYjZmIDEwMDY0NAotLS0gYS9s aXNwL29sLXJtYWlsLmVsCisrKyBiL2xpc3Avb2wtcm1haWwuZWwKQEAgLTUxLDcgKzUxLDcg QEAKIAkJCSA6c3RvcmUgIydvcmctcm1haWwtc3RvcmUtbGluaykKIAogOzsgSW1wbGVtZW50 YXRpb24KLShkZWZ1biBvcmctcm1haWwtc3RvcmUtbGluayAoKQorKGRlZnVuIG9yZy1ybWFp bC1zdG9yZS1saW5rICgmb3B0aW9uYWwgX2ludGVyYWN0aXZlPykKICAgIlN0b3JlIGEgbGlu ayB0byBhbiBSbWFpbCBmb2xkZXIgb3IgbWVzc2FnZS4iCiAgICh3aGVuIChvciAoZXEgbWFq b3ItbW9kZSAncm1haWwtbW9kZSkKIAkgICAgKGVxIG1ham9yLW1vZGUgJ3JtYWlsLXN1bW1h cnktbW9kZSkpCmRpZmYgLS1naXQgYS9saXNwL29sLmVsIGIvbGlzcC9vbC5lbAppbmRleCBj ZjU5Yzg1NTYuLjdlN2RmNDY4YSAxMDA2NDQKLS0tIGEvbGlzcC9vbC5lbAorKysgYi9saXNw L29sLmVsCkBAIC02Myw3ICs2Myw2IEBACiAoZGVjbGFyZS1mdW5jdGlvbiBvcmctZmluZC1w cm9wZXJ0eSAib3JnIiAocHJvcGVydHkgJm9wdGlvbmFsIHZhbHVlKSkKIChkZWNsYXJlLWZ1 bmN0aW9uIG9yZy1nZXQtaGVhZGluZyAib3JnIiAoJm9wdGlvbmFsIG5vLXRhZ3Mgbm8tdG9k byBuby1wcmlvcml0eSBuby1jb21tZW50KSkKIChkZWNsYXJlLWZ1bmN0aW9uIG9yZy1pZC1m aW5kLWlkLWZpbGUgIm9yZy1pZCIgKGlkKSkKLShkZWNsYXJlLWZ1bmN0aW9uIG9yZy1pZC1z dG9yZS1saW5rICJvcmctaWQiICgpKQogKGRlY2xhcmUtZnVuY3Rpb24gb3JnLWluc2VydC1o ZWFkaW5nICJvcmciICgmb3B0aW9uYWwgYXJnIGludmlzaWJsZS1vayB0b3ApKQogKGRlY2xh cmUtZnVuY3Rpb24gb3JnLWxvYWQtbW9kdWxlcy1tYXliZSAib3JnIiAoJm9wdGlvbmFsIGZv cmNlKSkKIChkZWNsYXJlLWZ1bmN0aW9uIG9yZy1tYXJrLXJpbmctcHVzaCAib3JnIiAoJm9w dGlvbmFsIHBvcyBidWZmZXIpKQpAQCAtNjIwLDYgKzYxOSwxMiBAQCBJZiBpdCBkZWNpZGVz IHRoYXQgaXQgaXMgbm90IHJlc3BvbnNpYmxlIGZvciB0aGlzIGxpbmssIGl0IG11c3QgcmV0 dXJuCiBuaWwgdG8gaW5kaWNhdGUgdGhhdCBPcmcgY2FuIGNvbnRpbnVlIHdpdGggb3RoZXIg b3B0aW9ucyBsaWtlCiBleGFjdCBhbmQgZnV6enkgdGV4dCBzZWFyY2guIikKIAorKGRlZnZh ciBvcmctbGluay1wcmVjaXNlLXRhcmdldC1tYXJrZXIgKG1ha2UtbWFya2VyKQorICAiTWFy a2VyIHBvaW50aW5nIHRvIHRoZSB0YXJnZXQgaWRlbnRpZmllZCBmb3IgYSBsaW5rIHNlYXJj aCBzdHJpbmcuCitFYWNoIGNhbGwgdG8gYG9yZy1saW5rLXByZWNpc2UtbGluay10YXJnZXQn IHdpbGwgc2V0IHRoaXMgbWFya2VyCit0byB0aGUgbG9jYXRpb24gd2hlcmUgdGhlIHJldHVy bmVkIHRhcmdldCB3YXMgZm91bmQuICBJZiB0aGVyZQord2FzIG5vIHRhcmdldCwgdGhlIG1h cmtlciB3aWxsIHBvaW50IG5vd2hlcmUuIikKKwogDAogOzs7IEludGVybmFsIFZhcmlhYmxl cwogCkBAIC04MTUsNiArODIwLDc0IEBAIHNwZWMuIgogICAob3JnLXdpdGgtcG9pbnQtYXQg KGNhciByZWdpb24pCiAgICAgKG5vdCAob3JnLWluLXJlZ2V4cCBvcmctbGluay1hbnktcmUp KSkpCiAKKyhkZWZ1biBvcmctbGluay0tdHJ5LWxpbmstc3RvcmUtZnVuY3Rpb25zIChpbnRl cmFjdGl2ZT8pCisgICJUcnkgc3RvcmluZyBleHRlcm5hbCBsaW5rcywgcHJvbXB0aW5nIGlm IG1vcmUgdGhhbiBvbmUgaXMgcG9zc2libGUuCisKK0VhY2ggZnVuY3Rpb24gcmV0dXJuZWQg YnkgYG9yZy1zdG9yZS1saW5rLWZ1bmN0aW9ucycgaXMgY2FsbGVkIGluCit0dXJuLiAgSWYg bXVsdGlwbGUgZnVuY3Rpb25zIHJldHVybiBub24tbmlsLCBwcm9tcHQgZm9yIHdoaWNoCits aW5rIHNob3VsZCBiZSBzdG9yZWQuCisKK0FyZ3VtZW50IElOVEVSQUNUSVZFPyBpbmRpY2F0 ZXMgd2hldGhlciBgb3JnLXN0b3JlLWxpbmsnIHdhcworY2FsbGVkIGludGVyYWN0aXZlbHkg YW5kIGlzIHBhc3NlZCB0byB0aGUgbGluayBzdG9yZSBmdW5jdGlvbnMuCisKK1JldHVybiB0 IHdoZW4gYSBsaW5rIGhhcyBiZWVuIHN0b3JlZCBpbiBgb3JnLWxpbmstc3RvcmUtcHJvcHMn LiIKKyAgKGxldCAoKHJlc3VsdHMtYWxpc3QgbmlsKSkKKyAgICAoZG9saXN0IChmIChvcmct c3RvcmUtbGluay1mdW5jdGlvbnMpKQorICAgICAgKHdoZW4gKGNvbmRpdGlvbi1jYXNlIG5p bAorICAgICAgICAgICAgICAgIChmdW5jYWxsIGYgaW50ZXJhY3RpdmU/KQorICAgICAgICAg ICAgICA7OyBGSVhNRTogVGhlIHN0b3JlIGZ1bmN0aW9uIHVzZWQgKDwgT3JnIDkuNykgdG8g YWNjZXB0CisgICAgICAgICAgICAgIDs7IG5vIGFyZ3VtZW50czsgcHJvdmlkZSBiYWNrd2Fy ZCBjb21wYXRpYmlsaXR5IHN1cHBvcnQKKyAgICAgICAgICAgICAgOzsgZm9yIHRoZW0uCisg ICAgICAgICAgICAgICh3cm9uZy1udW1iZXItb2YtYXJndW1lbnRzCisgICAgICAgICAgICAg ICAoZnVuY2FsbCBmKSkpCisgICAgICAgIDs7IEZJWE1FOiByZXR1cm4gdmFsdWUgaXMgbm90 IGxpbmsncyBwbGlzdCwgc28gd2Ugc3RvcmUgdGhlCisgICAgICAgIDs7IG5ldyB2YWx1ZSBi ZWZvcmUgaXQgaXMgbW9kaWZpZWQuICBJdCB3b3VsZCBiZSBjbGVhbmVyIHRvCisgICAgICAg IDs7IGFzayBzdG9yZSBsaW5rIGZ1bmN0aW9ucyB0byByZXR1cm4gdGhlIHBsaXN0IGluc3Rl YWQuCisgICAgICAgIChwdXNoIChjb25zIGYgKGNvcHktc2VxdWVuY2Ugb3JnLXN0b3JlLWxp bmstcGxpc3QpKQorICAgICAgICAgICAgICByZXN1bHRzLWFsaXN0KSkpCisgICAgKHBjYXNl IHJlc3VsdHMtYWxpc3QKKyAgICAgIChgbmlsIG5pbCkKKyAgICAgIChgKCgsXyAuICxfKSkg dCkJO3NpbmdsZSBjaG9pY2U6IG5vdGhpbmcgdG8gZG8KKyAgICAgIChgKCgsbmFtZSAuICxf KSAuICxfKQorICAgICAgIDs7IFJlaW5zdGF0ZSBsaW5rIHBsaXN0IGFzc29jaWF0ZWQgdG8g dGhlIGNob3NlbgorICAgICAgIDs7IGZ1bmN0aW9uLgorICAgICAgIChhcHBseSAjJ29yZy1s aW5rLXN0b3JlLXByb3BzCisgICAgICAgICAgICAgIChjZHIgKGFzc29jLXN0cmluZworICAg ICAgICAgICAgICAgICAgICAoY29tcGxldGluZy1yZWFkCisgICAgICAgICAgICAgICAgICAg ICAoZm9ybWF0ICJTdG9yZSBsaW5rIHdpdGggKGRlZmF1bHQgJXMpOiAiIG5hbWUpCisgICAg ICAgICAgICAgICAgICAgICAobWFwY2FyICMnY2FyIHJlc3VsdHMtYWxpc3QpCisgICAgICAg ICAgICAgICAgICAgICBuaWwgdCBuaWwgbmlsIChzeW1ib2wtbmFtZSBuYW1lKSkKKyAgICAg ICAgICAgICAgICAgICAgcmVzdWx0cy1hbGlzdCkpKQorICAgICAgIHQpKSkpCisKKyhkZWZ1 biBvcmctbGluay0tYWRkLXRvLXN0b3JlZC1saW5rcyAobGluayBkZXNjKQorICAiQWRkIExJ TksgdG8gYG9yZy1zdG9yZWQtbGlua3MnIHdpdGggZGVzY3JpcHRpb24gREVTQy4iCisgIChj b25kCisgICAoKG5vdCAobWVtYmVyIChsaXN0IGxpbmsgZGVzYykgb3JnLXN0b3JlZC1saW5r cykpCisgICAgKHB1c2ggKGxpc3QgbGluayBkZXNjKSBvcmctc3RvcmVkLWxpbmtzKQorICAg IChtZXNzYWdlICJTdG9yZWQ6ICVzIiAob3IgZGVzYyBsaW5rKSkpCisgICAoKGVxdWFsIChs aXN0IGxpbmsgZGVzYykgKGNhciBvcmctc3RvcmVkLWxpbmtzKSkKKyAgICAobWVzc2FnZSAi VGhpcyBsaW5rIGhhcyBhbHJlYWR5IGJlZW4gc3RvcmVkIikpCisgICAodAorICAgIChzZXRx IG9yZy1zdG9yZWQtbGlua3MKKyAgICAgICAgICAoZGVsZXRlIChsaXN0IGxpbmsgZGVzYykg b3JnLXN0b3JlZC1saW5rcykpCisgICAgKHB1c2ggKGxpc3QgbGluayBkZXNjKSBvcmctc3Rv cmVkLWxpbmtzKQorICAgIChtZXNzYWdlICJMaW5rIG1vdmVkIHRvIGZyb250OiAlcyIgKG9y IGRlc2MgbGluaykpKSkpCisKKyhkZWZ1biBvcmctbGluay0tZmlsZS1saW5rLXRvLWhlcmUg KCkKKyAgIlJldHVybiBhcyAoTElOSyAuIERFU0MpIGEgZmlsZSBsaW5rIHdpdGggc2VhcmNo IHN0cmluZyB0byBoZXJlLiIKKyAgKGxldCAoKGxpbmsgKGNvbmNhdCAiZmlsZToiCisgICAg ICAgICAgICAgICAgICAgICAgKGFiYnJldmlhdGUtZmlsZS1uYW1lCisgICAgICAgICAgICAg ICAgICAgICAgIChidWZmZXItZmlsZS1uYW1lIChidWZmZXItYmFzZS1idWZmZXIpKSkpKQor ICAgICAgICBkZXNjKQorICAgICh3aGVuIG9yZy1saW5rLWNvbnRleHQtZm9yLWZpbGVzCisg ICAgICAocGNhc2UgKG9yZy1saW5rLXByZWNpc2UtbGluay10YXJnZXQpCisgICAgICAgIChg bmlsIG5pbCkKKyAgICAgICAgKGAoLHNlYXJjaC1zdHJpbmcgLiAsc2VhcmNoLWRlc2MpCisg ICAgICAgICAoc2V0cSBsaW5rIChmb3JtYXQgIiVzOjolcyIgbGluayBzZWFyY2gtc3RyaW5n KSkKKyAgICAgICAgIChzZXRxIGRlc2Mgc2VhcmNoLWRlc2MpKSkpCisgICAgKGNvbnMgbGlu ayBkZXNjKSkpCisKIAwKIDs7OyBQdWJsaWMgQVBJCiAKQEAgLTEwNDEsNyArMTExNCw5IEBA IExJTksgaXMgZXNjYXBlZCB3aXRoIGJhY2tzbGFzaGVzIGZvciBpbmNsdXNpb24gaW4gYnVm ZmVyLiIKICAgIkxpc3Qgb2YgZnVuY3Rpb25zIHRoYXQgYXJlIGNhbGxlZCB0byBjcmVhdGUg YW5kIHN0b3JlIGEgbGluay4KIAogVGhlIGZ1bmN0aW9ucyBhcmUgZGVmaW5lZCBpbiB0aGUg YDpzdG9yZScgcHJvcGVydHkgb2YKLWBvcmctbGluay1wYXJhbWV0ZXJzJy4KK2BvcmctbGlu ay1wYXJhbWV0ZXJzJy4gIEVhY2ggZnVuY3Rpb24gc2hvdWxkIGFjY2VwdCBhbiBhcmd1bWVu dAorSU5URVJBQ1RJVkU/IHdoaWNoIGluZGljYXRlcyB3aGV0aGVyIHRoZSB1c2VyIGhhcyBp bml0aWF0ZWQKK2Bvcmctc3RvcmUtbGluaycgaW50ZXJhY3RpdmVseS4KIAogRWFjaCBmdW5j dGlvbiB3aWxsIGJlIGNhbGxlZCBpbiB0dXJuIHVudGlsIG9uZSByZXR1cm5zIGEgbm9uLW5p bAogdmFsdWUuICBFYWNoIGZ1bmN0aW9uIHNob3VsZCBjaGVjayBpZiBpdCBpcyByZXNwb25z aWJsZSBmb3IKQEAgLTEyODAsNyArMTM1NSwxMSBAQCByZXNwZWN0cyBidWZmZXIgbmFycm93 aW5nLiIKIAkgICAoeWVzLW9yLW5vLXAgIk5vIG1hdGNoIC0gY3JlYXRlIHRoaXMgYXMgYSBu ZXcgaGVhZGluZz8gIikpCiAgICAgICAoZ290by1jaGFyIChwb2ludC1tYXgpKQogICAgICAg KHVubGVzcyAoYm9scCkgKG5ld2xpbmUpKQotICAgICAgKG9yZy1pbnNlcnQtaGVhZGluZyBu aWwgdCB0KQorICAgICAgOzsgRmluZCBhcHByb3ByaWF0ZSBsZXZlbCBmb3IgbmV3IGhlYWRp bmcKKyAgICAgIChsZXQgKChsZXZlbCAoc2F2ZS1leGN1cnNpb24KKyAgICAgICAgICAgICAg ICAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAgICAgICAgICAgICAgICAgICAo KyAxIChvciAob3JnLWN1cnJlbnQtbGV2ZWwpIDApKSkpKQorICAgICAgICAob3JnLWluc2Vy dC1oZWFkaW5nIG5pbCB0IGxldmVsKSkKICAgICAgIChpbnNlcnQgcyAiXG4iKQogICAgICAg KGZvcndhcmQtbGluZSAtMSkpCiAgICAgIDs7IE9ubHkgaGVhZGxpbmVzIGFyZSBsb29rZWQg YWZ0ZXIuICBObyBuZWVkIHRvIHByb2Nlc3MKQEAgLTEzMzIsNiArMTQxMSw3MSBAQCBwcmlv cml0eSBjb29raWUgb3IgdGFnLiIKIAkgIChvcmctbGluay0tbm9ybWFsaXplLXN0cmluZwog CSAgIChvciBzdHJpbmcgKG9yZy1nZXQtaGVhZGluZyB0IHQgdCB0KSkpKSkKIAorKGRlZnVu IG9yZy1saW5rLXByZWNpc2UtbGluay10YXJnZXQgKCkKKyAgIkRldGVybWluZSBzZWFyY2gg c3RyaW5nIGFuZCBkZXNjcmlwdGlvbiBmb3Igc3RvcmluZyBhIGxpbmsuCisKK0lmIGEgc2Vh cmNoIHN0cmluZyAoc2VlIGBvcmctbGluay1zZWFyY2gnKSBpcyBmb3VuZCwgcmV0dXJuIGNv bnMKK2NlbGwgKFNFQVJDSC1TVFJJTkcgLiBERVNDKS4gIE90aGVyd2lzZSwgcmV0dXJuIG5p bC4KKworSWYgdGhlcmUgaXMgYW4gYWN0aXZlIHJlZ2lvbiwgdGhlIGNvbnRlbnRzIChvciBh IHBhcnQgb2YgaXQsIHNlZQorYG9yZy1saW5rLWNvbnRleHQtZm9yLWZpbGVzJykgaXMgdXNl ZCBhcyB0aGUgc2VhcmNoIHN0cmluZy4KKworSW4gT3JnIGJ1ZmZlcnMsIGlmIHBvaW50IGlz IGF0IGEgbmFtZWQgZWxlbWVudCAoc3VjaCBhcyBhIHNvdXJjZQorYmxvY2spLCB0aGUgbmFt ZSBpcyB1c2VkIGZvciB0aGUgc2VhcmNoIHN0cmluZy4gIElmIGF0IGEgaGVhZGluZywKK2l0 cyBDVVNUT01fSUQgaXMgdXNlZCB0byBmb3JtIGEgc2VhcmNoIHN0cmluZyBvZiB0aGUgZm9y bQorXCIjaWRcIiwgaWYgcHJlc2VudCwgb3RoZXJ3aXNlIHRoZSBjdXJyZW50IGhlYWRpbmcg dGV4dCBpcyB1c2VkCitpbiB0aGUgZm9ybSBcIipIZWFkaW5nXCIuCisKK0lmIG5vbmUgb2Yg dGhvc2UgZmluZHMgYSBzdWl0YWJsZSBzZWFyY2ggc3RyaW5nLCB0aGUgY3VycmVudCBsaW5l CitpcyB1c2VkIGFzIHRoZSBzZWFyY2ggc3RyaW5nLgorCitUaGUgZGVzY3JpcHRpb24gREVT QyBpcyBuaWwgKG1lYW5pbmcgdGhlIHVzZXIgd2lsbCBiZSBwcm9tcHRlZAorZm9yIGEgZGVz Y3JpcHRpb24gd2hlbiBpbnNlcnRpbmcgdGhlIGxpbmspIGZvciBzZWFyY2ggc3RyaW5ncwor YmFzZWQgb24gYSByZWdpb24gb3IgdGhlIGN1cnJlbnQgbGluZS4gIEZvciBvdGhlciBjYXNl cywgREVTQyBpcworYSBjbGVhbmVkLXVwIHZlcnNpb24gb2YgdGhlIG5hbWUgb3IgaGVhZGlu ZyBhdCBwb2ludC4KKworYG9yZy1saW5rLXByZWNpc2UtdGFyZ2V0LW1hcmtlcicgaXMgc2V0 IHRvIHRoZSBsb2NhdGlvbiB0byB3aGljaCB0aGUKK3NlYXJjaCBzdHJpbmcgcmVmZXJzLCBv ciB0byBub3doZXJlIGlmIGEgdGFyZ2V0IGlzIG5vdCBpZGVudGlmaWVkLiIKKyAgKG1vdmUt bWFya2VyIG9yZy1saW5rLXByZWNpc2UtdGFyZ2V0LW1hcmtlciBuaWwpCisgIChsZXQqICgo cmVnaW9uIChvcmctbGluay0tY29udGV4dC1mcm9tLXJlZ2lvbikpCisgICAgICAgICAocmVz dWx0CisgICAgICAgICAgKGNvbmQKKyAgICAgICAgICAgKHJlZ2lvbgorICAgICAgICAgICAg KG1vdmUtbWFya2VyIG9yZy1saW5rLXByZWNpc2UtdGFyZ2V0LW1hcmtlciAocmVnaW9uLWJl Z2lubmluZykpCisgICAgICAgICAgICAoY29ucyAob3JnLWxpbmstLW5vcm1hbGl6ZS1zdHJp bmcgcmVnaW9uIHQpIG5pbCkpCisKKyAgICAgICAgICAgKChkZXJpdmVkLW1vZGUtcCAnb3Jn LW1vZGUpCisgICAgICAgICAgICAobGV0KiAoKGVsZW1lbnQgKG9yZy1lbGVtZW50LWF0LXBv aW50KSkKKyAgICAgICAgICAgICAgICAgICAobmFtZSAob3JnLWVsZW1lbnQtcHJvcGVydHkg Om5hbWUgZWxlbWVudCkpCisgICAgICAgICAgICAgICAgICAgKGhlYWRpbmcgKG9yZy1lbGVt ZW50LWxpbmVhZ2UgZWxlbWVudCAnKGhlYWRsaW5lIGlubGluZXRhc2spIHQpKQorICAgICAg ICAgICAgICAgICAgIChjdXN0b20taWQgKG9yZy1lbnRyeS1nZXQgaGVhZGluZyAiQ1VTVE9N X0lEIikpKQorICAgICAgICAgICAgICAoY29uZAorICAgICAgICAgICAgICAgKG5hbWUKKyAg ICAgICAgICAgICAgICAobW92ZS1tYXJrZXIgb3JnLWxpbmstcHJlY2lzZS10YXJnZXQtbWFy a2VyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvcmctZWxlbWVudC1iZWdpbiBl bGVtZW50KSkKKyAgICAgICAgICAgICAgICAoY29ucyBuYW1lIG5hbWUpKQorICAgICAgICAg ICAgICAgKChvcmctYmVmb3JlLWZpcnN0LWhlYWRpbmctcCkKKyAgICAgICAgICAgICAgICAo bW92ZS1tYXJrZXIgb3JnLWxpbmstcHJlY2lzZS10YXJnZXQtbWFya2VyCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpCisgICAgICAg ICAgICAgICAgKGNvbnMgKG9yZy1saW5rLS1ub3JtYWxpemUtc3RyaW5nIChvcmctY3VycmVu dC1saW5lLXN0cmluZykgdCkgbmlsKSkKKyAgICAgICAgICAgICAgIChoZWFkaW5nCisgICAg ICAgICAgICAgICAgKG1vdmUtbWFya2VyIG9yZy1saW5rLXByZWNpc2UtdGFyZ2V0LW1hcmtl cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3JnLWVsZW1lbnQtYmVnaW4gaGVh ZGluZykpCisgICAgICAgICAgICAgICAgKGNvbnMgKGlmIGN1c3RvbS1pZCAoY29uY2F0ICIj IiBjdXN0b20taWQpCisgICAgICAgICAgICAgICAgICAgICAgICAob3JnLWxpbmstaGVhZGlu Zy1zZWFyY2gtc3RyaW5nKSkKKyAgICAgICAgICAgICAgICAgICAgICAob3JnLWxpbmstLW5v cm1hbGl6ZS1zdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgKG9yZy1nZXQtaGVhZGlu ZyB0IHQgdCB0KSkpKSkpKQorCisgICAgICAgICAgIDs7IE5vdCBpbiBhbiBvcmctbW9kZSBi dWZmZXIsIG5vIHJlZ2lvbgorICAgICAgICAgICAodAorICAgICAgICAgICAgKG1vdmUtbWFy a2VyIG9yZy1saW5rLXByZWNpc2UtdGFyZ2V0LW1hcmtlcgorICAgICAgICAgICAgICAgICAg ICAgICAgIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpCisgICAgICAgICAgICAoY29ucyAo b3JnLWxpbmstLW5vcm1hbGl6ZS1zdHJpbmcgKG9yZy1jdXJyZW50LWxpbmUtc3RyaW5nKSB0 KSBuaWwpKSkpKQorCisgICAgOzsgT25seSB1c2Ugc2VhcmNoIG9wdGlvbiBpZiB0aGVyZSBp cyBzb21lIHRleHQuCisgICAgKHdoZW4gKG9yZy1zdHJpbmctbnctcCAoY2FyIHJlc3VsdCkp CisgICAgICByZXN1bHQpKSkKKwogKGRlZnVuIG9yZy1saW5rLW9wZW4tYXMtZmlsZSAocGF0 aCBpbi1lbWFjcykKICAgIlByZXRlbmQgUEFUSCBpcyBhIGZpbGUgbmFtZSBhbmQgb3BlbiBp dC4KIApAQCAtMTQwNCw3ICsxNTQ4LDcgQEAgUEFUSCBpcyBhIHN5bWJvbCBuYW1lLCBhcyBh IHN0cmluZy4iCiAgICAgKChhbmQgKHByZWQgYm91bmRwKSB2YXJpYWJsZSkgKGRlc2NyaWJl LXZhcmlhYmxlIHZhcmlhYmxlKSkKICAgICAobmFtZSAodXNlci1lcnJvciAiVW5rbm93biBm dW5jdGlvbiBvciB2YXJpYWJsZTogJXMiIG5hbWUpKSkpCiAKLShkZWZ1biBvcmctbGluay0t c3RvcmUtaGVscCAoKQorKGRlZnVuIG9yZy1saW5rLS1zdG9yZS1oZWxwICgmb3B0aW9uYWwg X2ludGVyYWN0aXZlPykKICAgIlN0b3JlIFwiaGVscFwiIHR5cGUgbGluay4iCiAgICh3aGVu IChlcSBtYWpvci1tb2RlICdoZWxwLW1vZGUpCiAgICAgKGxldCAoKHN5bWJvbApAQCAtMTUz OSw3ICsxNjgzLDEyIEBAIHByZWZpeCBBUkcgZm9yY2VzIHN0b3JpbmcgYSBsaW5rIGZvciBl YWNoIGxpbmUgaW4gdGhlCiBhY3RpdmUgcmVnaW9uLgogCiBBc3N1bWUgdGhlIGZ1bmN0aW9u IGlzIGNhbGxlZCBpbnRlcmFjdGl2ZWx5IGlmIElOVEVSQUNUSVZFPyBpcwotbm9uLW5pbC4i Citub24tbmlsLgorCitJbiBPcmcgYnVmZmVycywgYW4gYWRkaXRpb25hbCBcImh1bWFuLXJl YWRhYmxlXCIgc2ltcGxlIGZpbGUgbGluaworaXMgc3RvcmVkIGFzIGFuIGFsdGVybmF0aXZl IHRvIHBlcnNpc3RlbnQgb3JnLWlkIG9yIG90aGVyIGxpbmtzLAoraWYgYXQgYSBoZWFkaW5n IHdpdGggYSBDVVNUT01fSUQgcHJvcGVydHkgb3IgYW4gZWxlbWVudCB3aXRoIGEKK05BTUUu IgogICAoaW50ZXJhY3RpdmUgIlBcbnAiKQogICAob3JnLWxvYWQtbW9kdWxlcy1tYXliZSkK ICAgKGlmIChhbmQgKGVxdWFsIGFyZyAnKDY0KSkgKG9yZy1yZWdpb24tYWN0aXZlLXApKQpA QCAtMTU1NCwzNiArMTcwMywxOSBAQCBub24tbmlsLiIKIAkgICAgKG1vdmUtYmVnaW5uaW5n LW9mLWxpbmUgMikKIAkgICAgKHNldC1tYXJrIChwb2ludCkpKSkpCiAgICAgKHNldHEgb3Jn LXN0b3JlLWxpbmstcGxpc3QgbmlsKQotICAgIChsZXQgKGxpbmsgY3BsdHh0IGRlc2Mgc2Vh cmNoIGN1c3RvbS1pZCBhZ2VuZGEtbGluaykgOzsgZGVzY3JpcHRpb24KKyAgICA7OyBOZWdh dGUgYG9yZy1jb250ZXh0LWluLWZpbGUtbGlua3MnIHdoZW4gZ2l2ZW4gYSBzaW5nbGUgdW5p dmVyc2FsIGFyZy4KKyAgICAobGV0ICgob3JnLWxpbmstY29udGV4dC1mb3ItZmlsZXMgKG9y Zy14b3Igb3JnLWxpbmstY29udGV4dC1mb3ItZmlsZXMKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxdWFsIGFyZyAnKDQpKSkpCisgICAgICAg ICAgbGluayBjcGx0eHQgZGVzYyBzZWFyY2ggYWdlbmRhLWxpbmspIDs7IGRlc2NyaXB0aW9u CiAgICAgICAoY29uZAogICAgICAgIDs7IFN0b3JlIGEgbGluayB1c2luZyBhbiBleHRlcm5h bCBsaW5rIHR5cGUsIGlmIGFueSBmdW5jdGlvbiBpcwotICAgICAgIDs7IGF2YWlsYWJsZS4g SWYgbW9yZSB0aGFuIG9uZSBjYW4gZ2VuZXJhdGUgYSBsaW5rIGZyb20gY3VycmVudAotICAg ICAgIDs7IGxvY2F0aW9uLCBhc2sgd2hpY2ggb25lIHRvIHVzZS4KKyAgICAgICA7OyBhdmFp bGFibGUsIHVubGVzcyBleHRlcm5hbCBsaW5rIHR5cGVzIGFyZSBza2lwcGVkIGZvciB0aGlz CisgICAgICAgOzsgY2FsbCB1c2luZyB0d28gdW5pdmVyc2FsIGFyZ3MuICBJZiBtb3JlIHRo YW4gb25lIGZ1bmN0aW9uCisgICAgICAgOzsgY2FuIGdlbmVyYXRlIGEgbGluayBmcm9tIGN1 cnJlbnQgbG9jYXRpb24sIGFzayB0aGUgdXNlcgorICAgICAgIDs7IHdoaWNoIG9uZSB0byB1 c2UuCiAgICAgICAgKChhbmQgKG5vdCAoZXF1YWwgYXJnICcoMTYpKSkKLQkgICAgIChsZXQg KChyZXN1bHRzLWFsaXN0IG5pbCkpCi0JICAgICAgIChkb2xpc3QgKGYgKG9yZy1zdG9yZS1s aW5rLWZ1bmN0aW9ucykpCi0JCSAod2hlbiAoZnVuY2FsbCBmKQotCQkgICA7OyBYWFg6IHJl dHVybiB2YWx1ZSBpcyBub3QgbGluaydzIHBsaXN0LCBzbyB3ZQotCQkgICA7OyBzdG9yZSB0 aGUgbmV3IHZhbHVlIGJlZm9yZSBpdCBpcyBtb2RpZmllZC4gIEl0Ci0JCSAgIDs7IHdvdWxk IGJlIGNsZWFuZXIgdG8gYXNrIHN0b3JlIGxpbmsgZnVuY3Rpb25zIHRvCi0JCSAgIDs7IHJl dHVybiB0aGUgcGxpc3QgaW5zdGVhZC4KLQkJICAgKHB1c2ggKGNvbnMgZiAoY29weS1zZXF1 ZW5jZSBvcmctc3RvcmUtbGluay1wbGlzdCkpCi0JCQkgcmVzdWx0cy1hbGlzdCkpKQotCSAg ICAgICAocGNhc2UgcmVzdWx0cy1hbGlzdAotCQkgKGBuaWwgbmlsKQotCQkgKGAoKCxfIC4g LF8pKSB0KQk7c2luZ2xlIGNob2ljZTogbm90aGluZyB0byBkbwotCQkgKGAoKCxuYW1lIC4g LF8pIC4gLF8pCi0JCSAgOzsgUmVpbnN0YXRlIGxpbmsgcGxpc3QgYXNzb2NpYXRlZCB0byB0 aGUgY2hvc2VuCi0JCSAgOzsgZnVuY3Rpb24uCi0JCSAgKGFwcGx5ICMnb3JnLWxpbmstc3Rv cmUtcHJvcHMKLQkJCSAoY2RyIChhc3NvYy1zdHJpbmcKLQkJCSAgICAgICAoY29tcGxldGlu Zy1yZWFkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb3JtYXQgIlN0b3Jl IGxpbmsgd2l0aCAoZGVmYXVsdCAlcyk6ICIgbmFtZSkKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKG1hcGNhciAjJ2NhciByZXN1bHRzLWFsaXN0KQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBuaWwgdCBuaWwgbmlsIChzeW1ib2wtbmFtZSBuYW1lKSkK LQkJCSAgICAgICByZXN1bHRzLWFsaXN0KSkpCi0JCSAgdCkpKSkKLQkoc2V0cSBsaW5rIChw bGlzdC1nZXQgb3JnLXN0b3JlLWxpbmstcGxpc3QgOmxpbmspKQorICAgICAgICAgICAgIChv cmctbGluay0tdHJ5LWxpbmstc3RvcmUtZnVuY3Rpb25zIGludGVyYWN0aXZlPykpCisgICAg ICAgIChzZXRxIGxpbmsgKHBsaXN0LWdldCBvcmctc3RvcmUtbGluay1wbGlzdCA6bGluaykp CiAgICAgICAgIDs7IElmIHN0b3JlIGZ1bmN0aW9uIGFjdHVhbGx5IHNldCBgOmRlc2NyaXB0 aW9uJyBwcm9wZXJ0eSwgdXNlCiAgICAgICAgIDs7IGl0LCBldmVuIGlmIGl0IGlzIG5pbC4g IE90aGVyd2lzZSwgZmFsbGJhY2sgdG8gbmlsIChhc2sgdXNlcikuCiAJKHNldHEgZGVzYyAo cGxpc3QtZ2V0IG9yZy1zdG9yZS1saW5rLXBsaXN0IDpkZXNjcmlwdGlvbikpKQpAQCAtMTYz NCw2ICsxNzY2LDcgQEAgbm9uLW5pbC4iCiAJICAgIChvcmctd2l0aC1wb2ludC1hdCBtCiAJ ICAgICAgKHNldHEgYWdlbmRhLWxpbmsgKG9yZy1zdG9yZS1saW5rIG5pbCBpbnRlcmFjdGl2 ZT8pKSkpKSkKIAorICAgICAgIDs7IENhbGVuZGFyIG1vZGUKICAgICAgICAoKGVxIG1ham9y LW1vZGUgJ2NhbGVuZGFyLW1vZGUpCiAJKGxldCAoKGNkIChjYWxlbmRhci1jdXJzb3ItdG8t ZGF0ZSkpKQogCSAgKHNldHEgbGluawpAQCAtMTY0Miw2ICsxNzc1LDcgQEAgbm9uLW5pbC4i CiAJCSAob3JnLWVuY29kZS10aW1lIDAgMCAwIChudGggMSBjZCkgKG50aCAwIGNkKSAobnRo IDIgY2QpKSkpCiAJICAob3JnLWxpbmstc3RvcmUtcHJvcHMgOnR5cGUgImNhbGVuZGFyIiA6 ZGF0ZSBjZCkpKQogCisgICAgICAgOzsgSW1hZ2UgbW9kZQogICAgICAgICgoZXEgbWFqb3It bW9kZSAnaW1hZ2UtbW9kZSkKIAkoc2V0cSBjcGx0eHQgKGNvbmNhdCAiZmlsZToiCiAJCQkg ICAgIChhYmJyZXZpYXRlLWZpbGUtbmFtZSBidWZmZXItZmlsZS1uYW1lKSkKQEAgLTE2NTks MTUgKzE3OTMsMjIgQEAgbm9uLW5pbC4iCiAJICAoc2V0cSBjcGx0eHQgKGNvbmNhdCAiZmls ZToiIGZpbGUpCiAJCWxpbmsgY3BsdHh0KSkpCiAKKyAgICAgICA7OyBUcnkgYG9yZy1jcmVh dGUtZmlsZS1zZWFyY2gtZnVuY3Rpb25zYC4gIElmIGFueSBhcmUKKyAgICAgICA7OyBzdWNj ZXNzZnVsLCBjcmVhdGUgYSBmaWxlIGxpbmsgdG8gdGhlIGN1cnJlbnQgYnVmZmVyIHdpdGgK KyAgICAgICA7OyB0aGUgcHJvdmlkZWQgc2VhcmNoIHN0cmluZy4gIChzZXRzIGBsaW5rYCBh bmQgYGNwbHR4dGAgdG8KKyAgICAgICA7OyB0aGUgc2FtZSB0aGluZzsgaXQgbG9va3MgbGlr ZSB0aGUgaW50ZW50aW9uIG9yaWdpbmFsbHkgd2FzCisgICAgICAgOzsgdGhhdCBjcGx0eHQg d2FzIGEgZGVzY3JpcHRpb24sIHdoaWNoIG1pZ2h0IGhhdmUgYmVlbiBzZXQgYnkKKyAgICAg ICA7OyB0aGUgc2VhcmNoLWZ1bmN0aW9uIChyZW1vdmVkIGluIHN3aXRjaCB0byBsZXhpY2Fs IGJpbmRpbmcpKS4KICAgICAgICAoKHNldHEgc2VhcmNoIChydW4taG9vay13aXRoLWFyZ3Mt dW50aWwtc3VjY2VzcwogCQkgICAgICAnb3JnLWNyZWF0ZS1maWxlLXNlYXJjaC1mdW5jdGlv bnMpKQogCShzZXRxIGxpbmsgKGNvbmNhdCAiZmlsZToiIChhYmJyZXZpYXRlLWZpbGUtbmFt ZSBidWZmZXItZmlsZS1uYW1lKQogCQkJICAgIjo6IiBzZWFyY2gpKQogCShzZXRxIGNwbHR4 dCAob3IgbGluaykpKSA7OyBkZXNjcmlwdGlvbgogCisgICAgICAgOzsgTWFpbiBsb2dpYyBm b3Igc3RvcmluZyBidWlsdC1pbiBsaW5rIHR5cGVzIGluIG9yZy1tb2RlCisgICAgICAgOzsg YnVmZmVycwogICAgICAgICgoYW5kIChidWZmZXItZmlsZS1uYW1lIChidWZmZXItYmFzZS1i dWZmZXIpKSAoZGVyaXZlZC1tb2RlLXAgJ29yZy1tb2RlKSkKIAkob3JnLXdpdGgtbGltaXRl ZC1sZXZlbHMKLQkgKHNldHEgY3VzdG9tLWlkIChvcmctZW50cnktZ2V0IG5pbCAiQ1VTVE9N X0lEIikpCiAJIChjb25kCiAJICA7OyBTdG9yZSBhIGxpbmsgdXNpbmcgdGhlIHRhcmdldCBh dCBwb2ludAogCSAgKChvcmctaW4tcmVnZXhwICJbXjxdPDxcXChbXjw+XStcXCk+PltePl0i IDEpCkBAIC0xNjgxLDc0ICsxODIyLDIxIEBAIG5vbi1uaWwuIgogICAgICAgICAgICAgICAg ICA7OyBsaW5rcy4gIE1heWJlIHRoZSBjYXNlIG9mIGlkZW50aWNhbCB0YXJnZXQgYW5kCiAg ICAgICAgICAgICAgICAgIDs7IGRlc2NyaXB0aW9uIHNob3VsZCBiZSBoYW5kbGVkIGJ5IGBv cmctaW5zZXJ0LWxpbmsnLgogICAgICAgICAgICAgICAgICBjcGx0eHQgbmlsCi0gICAgICAg ICAgICAgICAgIGRlc2MgbmlsCi0gICAgICAgICAgICAgICAgIDs7IERvIG5vdCBhcHBlbmQg I0NVU1RPTV9JRCBsaW5rIGJlbG93LgotICAgICAgICAgICAgICAgICBjdXN0b20taWQgbmls KSkKLQkgICgoYW5kIChmZWF0dXJlcCAnb3JnLWlkKQotCQkob3IgKGVxIG9yZy1pZC1saW5r LXRvLW9yZy11c2UtaWQgdCkKLQkJICAgIChhbmQgaW50ZXJhY3RpdmU/Ci0JCQkgKG9yIChl cSBvcmctaWQtbGluay10by1vcmctdXNlLWlkICdjcmVhdGUtaWYtaW50ZXJhY3RpdmUpCi0J CQkgICAgIChhbmQgKGVxIG9yZy1pZC1saW5rLXRvLW9yZy11c2UtaWQKLQkJCQkgICAgICAn Y3JlYXRlLWlmLWludGVyYWN0aXZlLWFuZC1uby1jdXN0b20taWQpCi0JCQkJICAobm90IGN1 c3RvbS1pZCkpKSkKLQkJICAgIChhbmQgb3JnLWlkLWxpbmstdG8tb3JnLXVzZS1pZCAob3Jn LWVudHJ5LWdldCBuaWwgIklEIikpKSkKLQkgICA7OyBTdG9yZSBhIGxpbmsgdXNpbmcgdGhl IElEIGF0IHBvaW50Ci0JICAgKHNldHEgbGluayAoY29uZGl0aW9uLWNhc2UgbmlsCi0JCQkg IChwcm9nMSAob3JnLWlkLXN0b3JlLWxpbmspCi0JCQkgICAgKHNldHEgZGVzYyAocGxpc3Qt Z2V0IG9yZy1zdG9yZS1saW5rLXBsaXN0IDpkZXNjcmlwdGlvbikpKQotCQkJKGVycm9yCi0J CQkgOzsgUHJvYmFibHkgYmVmb3JlIGZpcnN0IGhlYWRsaW5lLCBsaW5rIG9ubHkgdG8gZmls ZQotCQkJIChjb25jYXQgImZpbGU6IgotCQkJCSAoYWJicmV2aWF0ZS1maWxlLW5hbWUKLQkJ CQkgIChidWZmZXItZmlsZS1uYW1lIChidWZmZXItYmFzZS1idWZmZXIpKSkpKSkpKQotCSAg KHQKKyAgICAgICAgICAgICAgICAgZGVzYyBuaWwpKQorICAgICAgICAgICh0CiAJICAgOzsg SnVzdCBsaW5rIHRvIGN1cnJlbnQgaGVhZGxpbmUuCi0JICAgKHNldHEgY3BsdHh0IChjb25j YXQgImZpbGU6IgotCQkJCShhYmJyZXZpYXRlLWZpbGUtbmFtZQotCQkJCSAoYnVmZmVyLWZp bGUtbmFtZSAoYnVmZmVyLWJhc2UtYnVmZmVyKSkpKSkKLQkgICA7OyBBZGQgYSBjb250ZXh0 IHNlYXJjaCBzdHJpbmcuCi0JICAgKHdoZW4gKG9yZy14b3Igb3JnLWxpbmstY29udGV4dC1m b3ItZmlsZXMgKGVxdWFsIGFyZyAnKDQpKSkKLQkgICAgIChsZXQqICgoZWxlbWVudCAob3Jn LWVsZW1lbnQtYXQtcG9pbnQpKQotCQkgICAgKG5hbWUgKG9yZy1lbGVtZW50LXByb3BlcnR5 IDpuYW1lIGVsZW1lbnQpKQotCQkgICAgKGNvbnRleHQKLQkJICAgICAoY29uZAotCQkgICAg ICAoKGxldCAoKHJlZ2lvbiAob3JnLWxpbmstLWNvbnRleHQtZnJvbS1yZWdpb24pKSkKLQkJ CSAoYW5kIHJlZ2lvbiAob3JnLWxpbmstLW5vcm1hbGl6ZS1zdHJpbmcgcmVnaW9uIHQpKSkp Ci0JCSAgICAgIChuYW1lKQotCQkgICAgICAoKG9yZy1iZWZvcmUtZmlyc3QtaGVhZGluZy1w KQotCQkgICAgICAgKG9yZy1saW5rLS1ub3JtYWxpemUtc3RyaW5nIChvcmctY3VycmVudC1s aW5lLXN0cmluZykgdCkpCi0JCSAgICAgICh0IChvcmctbGluay1oZWFkaW5nLXNlYXJjaC1z dHJpbmcpKSkpKQotCSAgICAgICAod2hlbiAob3JnLXN0cmluZy1udy1wIGNvbnRleHQpCi0J CSAoc2V0cSBjcGx0eHQgKGZvcm1hdCAiJXM6OiVzIiBjcGx0eHQgY29udGV4dCkpCi0JCSAo c2V0cSBkZXNjCi0JCSAgICAgICAob3IgbmFtZQotCQkJICAgOzsgQWx0aG91Z2ggZGVzY3Jp cHRpb24gaXMgbm90IGEgc2VhcmNoCi0JCQkgICA7OyBzdHJpbmcsIHVzZSBgb3JnLWxpbmst LW5vcm1hbGl6ZS1zdHJpbmcnCi0JCQkgICA7OyB0byBwcmV0dGlmeSBpdCAoY29udGlndW91 cyB3aGl0ZSBzcGFjZXMpCi0JCQkgICA7OyBhbmQgcmVtb3ZlIHZvbGF0aWxlIGNvbnRlbnRz IChzdGF0aXN0aWNzCi0JCQkgICA7OyBjb29raWVzKS4KLQkJCSAgIChhbmQgKG5vdCAob3Jn LWJlZm9yZS1maXJzdC1oZWFkaW5nLXApKQotCQkJCShvcmctbGluay0tbm9ybWFsaXplLXN0 cmluZwotCQkJCSAob3JnLWdldC1oZWFkaW5nIHQgdCB0IHQpKSkKLQkJCSAgICJOT05FIikp KSkpCi0JICAgKHNldHEgbGluayBjcGx0eHQpKSkpKQorICAgICAgICAgICAobGV0ICgoaGVy ZSAob3JnLWxpbmstLWZpbGUtbGluay10by1oZXJlKSkpCisgICAgICAgICAgICAgKHNldHEg Y3BsdHh0IChjYXIgaGVyZSkpCisgICAgICAgICAgICAgKHNldHEgZGVzYyAoY2RyIGhlcmUp KSkKKyAgICAgICAgICAgKHNldHEgbGluayBjcGx0eHQpKSkpKQogCisgICAgICAgOzsgQnVm ZmVyIGxpbmtlZCB0byBmaWxlLCBidXQgbm90IGFuIG9yZy1tb2RlIGJ1ZmZlci4KICAgICAg ICAoKGJ1ZmZlci1maWxlLW5hbWUgKGJ1ZmZlci1iYXNlLWJ1ZmZlcikpCiAJOzsgSnVzdCBs aW5rIHRvIHRoaXMgZmlsZSBoZXJlLgotCShzZXRxIGNwbHR4dCAoY29uY2F0ICJmaWxlOiIK LQkJCSAgICAgKGFiYnJldmlhdGUtZmlsZS1uYW1lCi0JCQkgICAgICAoYnVmZmVyLWZpbGUt bmFtZSAoYnVmZmVyLWJhc2UtYnVmZmVyKSkpKSkKLQk7OyBBZGQgYSBjb250ZXh0IHNlYXJj aCBzdHJpbmcuCi0JKHdoZW4gKG9yZy14b3Igb3JnLWxpbmstY29udGV4dC1mb3ItZmlsZXMg KGVxdWFsIGFyZyAnKDQpKSkKLQkgIChsZXQgKChjb250ZXh0IChvcmctbGluay0tbm9ybWFs aXplLXN0cmluZwotCQkJICAob3IgKG9yZy1saW5rLS1jb250ZXh0LWZyb20tcmVnaW9uKQot CQkJICAgICAgKG9yZy1jdXJyZW50LWxpbmUtc3RyaW5nKSkKLQkJCSAgdCkpKQotCSAgICA7 OyBPbmx5IHVzZSBzZWFyY2ggb3B0aW9uIGlmIHRoZXJlIGlzIHNvbWUgdGV4dC4KLQkgICAg KHdoZW4gKG9yZy1zdHJpbmctbnctcCBjb250ZXh0KQotCSAgICAgIChzZXRxIGNwbHR4dCAo Zm9ybWF0ICIlczo6JXMiIGNwbHR4dCBjb250ZXh0KSkKLQkgICAgICAoc2V0cSBkZXNjICJO T05FIikpKSkKLQkoc2V0cSBsaW5rIGNwbHR4dCkpCisgICAgICAgIChsZXQgKChoZXJlIChv cmctbGluay0tZmlsZS1saW5rLXRvLWhlcmUpKSkKKyAgICAgICAgICAoc2V0cSBjcGx0eHQg KGNhciBoZXJlKSkKKyAgICAgICAgICAoc2V0cSBkZXNjIChjZHIgaGVyZSkpKQorICAgICAg ICAoc2V0cSBsaW5rIGNwbHR4dCkpCiAKICAgICAgICAoaW50ZXJhY3RpdmU/CiAJKHVzZXIt ZXJyb3IgIk5vIG1ldGhvZCBmb3Igc3RvcmluZyBhIGxpbmsgZnJvbSB0aGlzIGJ1ZmZlciIp KQpAQCAtMTc2NCwyNCArMTg1MiwxOCBAQCBub24tbmlsLiIKICAgICAgIDs7IFN0b3JlIGFu ZCByZXR1cm4gdGhlIGxpbmsKICAgICAgIChpZiAobm90IChhbmQgaW50ZXJhY3RpdmU/IGxp bmspKQogCSAgKG9yIGFnZW5kYS1saW5rIChhbmQgbGluayAob3JnLWxpbmstbWFrZS1zdHJp bmcgbGluayBkZXNjKSkpCi0gICAgICAgIChkb3RpbWVzIChfIChpZiBjdXN0b20taWQgMiAx KSkgOyBTdG9yZSAyIGxpbmtzIHdoZW4gQ1VTVE9NLUlEIGlzIG5vbi1uaWwuCi0gICAgICAg ICAgKGNvbmQKLSAgICAgICAgICAgKChub3QgKG1lbWJlciAobGlzdCBsaW5rIGRlc2MpIG9y Zy1zdG9yZWQtbGlua3MpKQotICAgICAgICAgICAgKHB1c2ggKGxpc3QgbGluayBkZXNjKSBv cmctc3RvcmVkLWxpbmtzKQotCSAgICAobWVzc2FnZSAiU3RvcmVkOiAlcyIgKG9yIGRlc2Mg bGluaykpKQotICAgICAgICAgICAoKGVxdWFsIChsaXN0IGxpbmsgZGVzYykgKGNhciBvcmct c3RvcmVkLWxpbmtzKSkKLSAgICAgICAgICAgIChtZXNzYWdlICJUaGlzIGxpbmsgaGFzIGFs cmVhZHkgYmVlbiBzdG9yZWQiKSkKLSAgICAgICAgICAgKHQKLSAgICAgICAgICAgIChzZXRx IG9yZy1zdG9yZWQtbGlua3MKLSAgICAgICAgICAgICAgICAgIChkZWxldGUgKGxpc3QgbGlu ayBkZXNjKSBvcmctc3RvcmVkLWxpbmtzKSkKLSAgICAgICAgICAgIChwdXNoIChsaXN0IGxp bmsgZGVzYykgb3JnLXN0b3JlZC1saW5rcykKLSAgICAgICAgICAgIChtZXNzYWdlICJMaW5r IG1vdmVkIHRvIGZyb250OiAlcyIgKG9yIGRlc2MgbGluaykpKSkKLQkgICh3aGVuIGN1c3Rv bS1pZAotCSAgICAoc2V0cSBsaW5rIChjb25jYXQgImZpbGU6IgotCQkJICAgICAgIChhYmJy ZXZpYXRlLWZpbGUtbmFtZQotCQkJICAgICAgICAoYnVmZmVyLWZpbGUtbmFtZSAoYnVmZmVy LWJhc2UtYnVmZmVyKSkpCi0JCQkgICAgICAgIjo6IyIgY3VzdG9tLWlkKSkpKQotCShjYXIg b3JnLXN0b3JlZC1saW5rcykpKSkpCisgICAgICAgIChvcmctbGluay0tYWRkLXRvLXN0b3Jl ZC1saW5rcyBsaW5rIGRlc2MpCisgICAgICAgIDs7IEluIG9yZyBidWZmZXJzLCBzdG9yZSBh biBhZGRpdGlvbmFsICJodW1hbi1yZWFkYWJsZSIgbGluaworICAgICAgICA7OyB1c2luZyBj dXN0b20gaWQsIGlmIGF2YWlsYWJsZS4KKyAgICAgICAgKHdoZW4gKGFuZCAoYnVmZmVyLWZp bGUtbmFtZSAoYnVmZmVyLWJhc2UtYnVmZmVyKSkKKyAgICAgICAgICAgICAgICAgICAoZGVy aXZlZC1tb2RlLXAgJ29yZy1tb2RlKQorICAgICAgICAgICAgICAgICAgIChvcmctZW50cnkt Z2V0IG5pbCAiQ1VTVE9NX0lEIikpCisgICAgICAgICAgKGxldCAoKGhlcmUgKG9yZy1saW5r LS1maWxlLWxpbmstdG8taGVyZSkpKQorICAgICAgICAgICAgKHNldHEgbGluayAoY2FyIGhl cmUpKQorICAgICAgICAgICAgKHNldHEgZGVzYyAoY2RyIGhlcmUpKSkKKyAgICAgICAgICAo dW5sZXNzIChlcXVhbCAobGlzdCBsaW5rIGRlc2MpIChjYXIgb3JnLXN0b3JlZC1saW5rcykp CisgICAgICAgICAgICAob3JnLWxpbmstLWFkZC10by1zdG9yZWQtbGlua3MgbGluayBkZXNj KSkpCisgICAgICAgIChjYXIgb3JnLXN0b3JlZC1saW5rcykpKSkpCiAKIDs7OyMjI2F1dG9s b2FkCiAoZGVmdW4gb3JnLWluc2VydC1saW5rICgmb3B0aW9uYWwgY29tcGxldGUtZmlsZSBs aW5rLWxvY2F0aW9uIGRlc2NyaXB0aW9uKQpkaWZmIC0tZ2l0IGEvbGlzcC9vcmctaWQuZWwg Yi9saXNwL29yZy1pZC5lbAppbmRleCA4NjQ3YTU3Y2MuLjcyMDBiZTM0ZCAxMDA2NDQKLS0t IGEvbGlzcC9vcmctaWQuZWwKKysrIGIvbGlzcC9vcmctaWQuZWwKQEAgLTEyOSw2ICsxMjks NDYgQEAgbmlsICAgTmV2ZXIgdXNlIGFuIElEIHRvIG1ha2UgYSBsaW5rLCBpbnN0ZWFkIGxp bmsgdXNpbmcgYSB0ZXh0IHNlYXJjaCBmb3IKIAkgIChjb25zdCA6dGFnICJPbmx5IHVzZSBl eGlzdGluZyIgdXNlLWV4aXN0aW5nKQogCSAgKGNvbnN0IDp0YWcgIkRvIG5vdCB1c2UgSUQg dG8gY3JlYXRlIGxpbmsiIG5pbCkpKQogCisoZGVmY3VzdG9tIG9yZy1pZC1saW5rLWNvbnNp ZGVyLXBhcmVudC1pZCBuaWwKKyAgIk5vbi1uaWwgbWVhbnMgc3RvcmluZyBhIGxpbmsgdG8g YW4gT3JnIGVudHJ5IGNvbnNpZGVycyBpbmhlcml0ZWQgSURzLgorCitXaGVuIHRoaXMgb3B0 aW9uIGlzIG5vbi1uaWwgYW5kIGBvcmctaWQtbGluay11c2UtY29udGV4dCcgaXMKK2VuYWJs ZWQsIElEIHByb3BlcnRpZXMgaW5oZXJpdGVkIGZyb20gcGFyZW50IGVudHJpZXMgd2lsbCBi ZQorY29uc2lkZXJlZCB3aGVuIHN0b3JpbmcgYW4gSUQgbGluay4gIElmIG5vIElEIGlzIGZv dW5kIGluIHRoaXMKK3dheSwgYSBuZXcgb25lIG1heSBiZSBjcmVhdGVkIGFzIG5vcm1hbCAo c2VlCitgb3JnLWlkLWxpbmstdG8tb3JnLXVzZS1pZCcpLgorCitGb3IgZXhhbXBsZSwgZ2l2 ZW4gdGhpcyBvcmcgZmlsZToKKworKiBQYXJlbnQKKzpQUk9QRVJUSUVTOgorOklEOiBhYmMK KzpFTkQ6CisqKiBDaGlsZCAxCisqKiBDaGlsZCAyCisKK1dpdGggYG9yZy1pZC1saW5rLWNv bnNpZGVyLXBhcmVudC1pZCcgYW5kCitgb3JnLWlkLWxpbmstdXNlLWNvbnRleHQnIGJvdGgg ZW5hYmxlZCwgc3RvcmluZyBhIGxpbmsgd2l0aCBwb2ludAorYXQgXCJDaGlsZCAxXCIgd2ls bCBwcm9kdWNlIGEgbGluayBcIjxpZDphYmM6OipDaGlsZCAxPlwiLiAgVGhpcworYWxsb3dz IGxpbmtpbmcgdG8gdW5pcXVlbHktbmFtZWQgc3ViLWVudHJpZXMgd2l0aGluIGEgcGFyZW50 CitlbnRyeSB3aXRoIGFuIElELCB3aXRob3V0IHJlcXVpcmluZyBldmVyeSBzdWItZW50cnkg dG8gaGF2ZSBpdHMKK293biBJRC4iCisgIDpncm91cCAnb3JnLWxpbmstc3RvcmUKKyAgOmdy b3VwICdvcmctaWQKKyAgOnBhY2thZ2UtdmVyc2lvbiAnKE9yZyAuICI5LjciKQorICA6dHlw ZSAnYm9vbGVhbikKKworKGRlZmN1c3RvbSBvcmctaWQtbGluay11c2UtY29udGV4dCB0Cisg ICJOb24tbmlsIG1lYW5zIGVuYWJsZXMgc2VhcmNoIHN0cmluZyBjb250ZXh0IGluIG9yZy1p ZCBsaW5rcy4KKworU2VhcmNoIHN0cmluZ3MgYXJlIGFkZGVkIGJ5IGBvcmctaWQtc3RvcmUt bGluaycgd2hlbiBib3RoIHRoZQorZ2VuZXJhbCBvcHRpb24gYG9yZy1saW5rLWNvbnRleHQt Zm9yLWZpbGVzJyBhbmQgdGhlIG9yZy1pZCBvcHRpb24KK2BvcmctaWQtbGluay11c2UtY29u dGV4dCcgYXJlIG5vbi1uaWwuIgorICA6Z3JvdXAgJ29yZy1saW5rLXN0b3JlCisgIDpncm91 cCAnb3JnLWlkCisgIDpwYWNrYWdlLXZlcnNpb24gJyhPcmcgLiAiOS43IikKKyAgOnR5cGUg J2Jvb2xlYW4pCisKIChkZWZjdXN0b20gb3JnLWlkLXV1aWQtcHJvZ3JhbSAidXVpZGdlbiIK ICAgIlRoZSB1dWlkZ2VuIHByb2dyYW0uIgogICA6Z3JvdXAgJ29yZy1pZApAQCAtMjgwLDE1 ICszMjAsMjEgQEAgVGhpcyBpcyB1c2VmdWwgd2hlbiB3b3JraW5nIHdpdGggY29udGVudHMg aW4gYSB0ZW1wb3JhcnkgYnVmZmVyCiB0aGF0IHdpbGwgYmUgY29waWVkIGJhY2sgdG8gdGhl IG9yaWdpbmFsLiIpCiAKIDs7OyMjI2F1dG9sb2FkCi0oZGVmdW4gb3JnLWlkLWdldCAoJm9w dGlvbmFsIGVwb20gY3JlYXRlIHByZWZpeCkKLSAgIkdldCB0aGUgSUQgcHJvcGVydHkgb2Yg dGhlIGVudHJ5IGF0IEVQT00uCi1FUE9NIGlzIGFuIGVsZW1lbnQsIG1hcmtlciwgb3IgYnVm ZmVyIHBvc2l0aW9uLgotSWYgRVBPTSBpcyBuaWwsIHJlZmVyIHRvIHRoZSBlbnRyeSBhdCBw b2ludC4KLUlmIHRoZSBlbnRyeSBkb2VzIG5vdCBoYXZlIGFuIElELCB0aGUgZnVuY3Rpb24g cmV0dXJucyBuaWwuCi1Ib3dldmVyLCB3aGVuIENSRUFURSBpcyBub24tbmlsLCBjcmVhdGUg YW4gSUQgaWYgbm9uZSBpcyBwcmVzZW50IGFscmVhZHkuCi1QUkVGSVggd2lsbCBiZSBwYXNz ZWQgdGhyb3VnaCB0byBgb3JnLWlkLW5ldycuCi1JbiBhbnkgY2FzZSwgdGhlIElEIG9mIHRo ZSBlbnRyeSBpcyByZXR1cm5lZC4iCi0gIChsZXQgKChpZCAob3JnLWVudHJ5LWdldCBlcG9t ICJJRCIpKSkKKyhkZWZ1biBvcmctaWQtZ2V0ICgmb3B0aW9uYWwgZXBvbSBjcmVhdGUgcHJl Zml4IGluaGVyaXQpCisgICJHZXQgdGhlIElEIG9mIHRoZSBlbnRyeSBhdCBFUE9NLgorCitF UE9NIGlzIGFuIGVsZW1lbnQsIG1hcmtlciwgb3IgYnVmZmVyIHBvc2l0aW9uLiAgSWYgRVBP TSBpcyBuaWwsCityZWZlciB0byB0aGUgZW50cnkgYXQgcG9pbnQuCisKK0lmIElOSEVSSVQg aXMgbm9uLW5pbCwgSUQgcHJvcGVydGllcyBpbmhlcml0ZWQgZnJvbSBwYXJlbnQKK2VudHJp ZXMgYXJlIGNvbnNpZGVyZWQuICBPdGhlcndpc2UsIG9ubHkgSUQgcHJvcGVydGllcyBvbiB0 aGUKK2VudHJ5IGl0c2VsZiBhcmUgY29uc2lkZXJlZC4KKworV2hlbiBDUkVBVEUgaXMgbmls LCByZXR1cm4gdGhlIElEIG9mIHRoZSBlbnRyeSBpZiBmb3VuZCwKK290aGVyd2lzZSBuaWwu ICBXaGVuIENSRUFURSBpcyBub24tbmlsLCBjcmVhdGUgYW4gSUQgaWYgbm9uZSBoYXMKK2Jl ZW4gZm91bmQsIGFuZCByZXR1cm4gdGhlIG5ldyBJRC4gIFBSRUZJWCB3aWxsIGJlIHBhc3Nl ZCB0aHJvdWdoCit0byBgb3JnLWlkLW5ldycuIgorICAobGV0ICgoaWQgKG9yZy1lbnRyeS1n ZXQgZXBvbSAiSUQiIChhbmQgaW5oZXJpdCB0KSkpKQogICAgIChjb25kCiAgICAgICgoYW5k IGlkIChzdHJpbmdwIGlkKSAoc3RyaW5nLW1hdGNoICJcXFMtIiBpZCkpCiAgICAgICBpZCkK QEAgLTcwMywxOCArNzQ5LDU2IEBAIG9wdGlvbmFsIGFyZ3VtZW50IE1BUktFUlAsIHJldHVy biB0aGUgcG9zaXRpb24gYXMgYSBuZXcgbWFya2VyLiIKIDs7IENhbGxpbmcgdGhlIGZvbGxv d2luZyBmdW5jdGlvbiBpcyBoYXJkLWNvZGVkIGludG8gYG9yZy1zdG9yZS1saW5rJywKIDs7 IHNvIHdlIGRvIGhhdmUgdG8gYWRkIGl0IHRvIGBvcmctc3RvcmUtbGluay1mdW5jdGlvbnMn LgogCisoZGVmdW4gb3JnLWlkLS1nZXQtaWQtdG8tc3RvcmUtbGluayAoJm9wdGlvbmFsIGNy ZWF0ZSkKKyAgIkdldCBvciBjcmVhdGUgdGhlIHJlbGV2YW50IElEIGZvciBzdG9yaW5nIGEg bGluay4KKworT3B0aW9uYWwgYXJndW1lbnQgQ1JFQVRFIGlzIHBhc3NlZCB0byBgb3JnLWlk LWdldCcuCisKK0luaGVyaXRlZCBJRHMgYXJlIG9ubHkgY29uc2lkZXJlZCB3aGVuCitgb3Jn LWlkLWxpbmstY29uc2lkZXItcGFyZW50LWlkJywgYG9yZy1pZC1saW5rLXVzZS1jb250ZXh0 JyBhbmQKK2BvcmctbGluay1jb250ZXh0LWZvci1maWxlcycgYXJlIGFsbCBlbmFibGVkLCBz aW5jZSBpbmhlcml0ZWQgSURzCithcmUgY29uZnVzaW5nIHdpdGhvdXQgdGhlIGFkZGl0aW9u YWwgc2VhcmNoIHN0cmluZyBjb250ZXh0LgorCitOb3RlIHRoYXQgdGhpcyBmdW5jdGlvbiBy ZXNldHMgdGhlCitgb3JnLWVudHJ5LXByb3BlcnR5LWluaGVyaXRlZC1mcm9tJyBtYXJrZXI6 IGl0IHdpbGwgZWl0aGVyIHBvaW50Cit0byBuaWwgKGlmIHRoZSBpZCB3YXMgbm90IGluaGVy aXRlZCkgb3IgdG8gdGhlIHBvaW50IGl0IHdhcworaW5oZXJpdGVkIGZyb20uIgorICAobGV0 KiAoKGluaGVyaXQtaWQgKGFuZCBvcmctaWQtbGluay1jb25zaWRlci1wYXJlbnQtaWQKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgb3JnLWlkLWxpbmstdXNlLWNvbnRleHQKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgb3JnLWxpbmstY29udGV4dC1mb3ItZmlsZXMpKSkKKyAg ICAobW92ZS1tYXJrZXIgb3JnLWVudHJ5LXByb3BlcnR5LWluaGVyaXRlZC1mcm9tIG5pbCkK KyAgICAob3JnLWlkLWdldCBuaWwgY3JlYXRlIG5pbCBpbmhlcml0LWlkKSkpCisKIDs7OyMj I2F1dG9sb2FkCiAoZGVmdW4gb3JnLWlkLXN0b3JlLWxpbmsgKCkKICAgIlN0b3JlIGEgbGlu ayB0byB0aGUgY3VycmVudCBlbnRyeSwgdXNpbmcgaXRzIElELgogCi1JZiBiZWZvcmUgZmly c3QgaGVhZGluZyBzdG9yZSBmaXJzdCB0aXRsZS1rZXl3b3JkIGFzIGRlc2NyaXB0aW9uCi1v ciBmaWxlbmFtZSBpZiBubyB0aXRsZS4iCitUaGUgbGluayBkZXNjcmlwdGlvbiBpcyBiYXNl ZCBvbiB0aGUgaGVhZGluZywgb3IgaWYgYmVmb3JlIHRoZQorZmlyc3QgaGVhZGluZywgdGhl IHRpdGxlIGtleXdvcmQgaWYgYXZhaWxhYmxlLCBvciBlbHNlIHRoZQorZmlsZW5hbWUuCisK K1doZW4gYG9yZy1saW5rLWNvbnRleHQtZm9yLWZpbGVzJyBhbmQgYG9yZy1pZC1saW5rLXVz ZS1jb250ZXh0JworYXJlIG5vbi1uaWwsIGFkZCBhIHNlYXJjaCBzdHJpbmcgdG8gdGhlIGxp bmsuICBUaGUgbGluaworZGVzY3JpcHRpb24gaXMgdGhlbiBiYXNlZCBvbiB0aGUgc2VhcmNo IHN0cmluZyB0YXJnZXQuCisKK1doZW4gaW4gYWRkaXRpb24gYG9yZy1pZC1saW5rLWNvbnNp ZGVyLXBhcmVudC1pZCcgaXMgbm9uLW5pbCwgdGhlCitJRCBjYW4gYmUgaW5oZXJpdGVkIGZy b20gYSBwYXJlbnQgZW50cnksIHdpdGggdGhlIHNlYXJjaCBzdHJpbmcKK3VzZWQgdG8gc3Rp bGwgbGluayB0byB0aGUgY3VycmVudCBsb2NhdGlvbi4iCiAgIChpbnRlcmFjdGl2ZSkKLSAg KHdoZW4gKGFuZCAoYnVmZmVyLWZpbGUtbmFtZSAoYnVmZmVyLWJhc2UtYnVmZmVyKSkgKGRl cml2ZWQtbW9kZS1wICdvcmctbW9kZSkpCi0gICAgKGxldCogKChsaW5rIChjb25jYXQgImlk OiIgKG9yZy1pZC1nZXQtY3JlYXRlKSkpCisgICh3aGVuIChhbmQgKGJ1ZmZlci1maWxlLW5h bWUgKGJ1ZmZlci1iYXNlLWJ1ZmZlcikpCisgICAgICAgICAgICAgKGRlcml2ZWQtbW9kZS1w ICdvcmctbW9kZSkpCisgICAgOzsgR2V0IHRoZSBwcmVjaXNlIHRhcmdldCBmaXJzdCwgaW4g Y2FzZSBsb29raW5nIGZvciBhbiBpZCBjYXVzZXMKKyAgICA7OyBhIHByb3BlcnRpZXMgZHJh d2VyIHRvIGJlIGFkZGVkIGF0IHRoZSBjdXJyZW50IGxvY2F0aW9uLgorICAgIChsZXQqICgo cHJlY2lzZS10YXJnZXQgKGFuZCBvcmctbGluay1jb250ZXh0LWZvci1maWxlcworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBvcmctaWQtbGluay11c2UtY29udGV4dAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3JnLWxpbmstcHJlY2lzZS1saW5rLXRh cmdldCkpKQorICAgICAgICAgICAobGluayAoY29uY2F0ICJpZDoiIChvcmctaWQtLWdldC1p ZC10by1zdG9yZS1saW5rICdjcmVhdGUpKSkKKyAgICAgICAgICAgKGlkLWxvY2F0aW9uIChv ciAoYW5kIG9yZy1lbnRyeS1wcm9wZXJ0eS1pbmhlcml0ZWQtZnJvbQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKG1hcmtlci1wb3NpdGlvbiBvcmctZW50cnktcHJvcGVy dHktaW5oZXJpdGVkLWZyb20pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzYXZl LWV4Y3Vyc2lvbiAob3JnLWJhY2stdG8taGVhZGluZy1vci1wb2ludC1taW4gdCkgKHBvaW50 KSkpKQogCSAgIChjYXNlLWZvbGQtc2VhcmNoIG5pbCkKIAkgICAoZGVzYyAoc2F2ZS1leGN1 cnNpb24KLQkJICAgKG9yZy1iYWNrLXRvLWhlYWRpbmctb3ItcG9pbnQtbWluIHQpCisgICAg ICAgICAgICAgICAgICAgKGdvdG8tY2hhciBpZC1sb2NhdGlvbikKICAgICAgICAgICAgICAg ICAgICAoY29uZCAoKG9yZy1iZWZvcmUtZmlyc3QtaGVhZGluZy1wKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAobGV0ICgoa2V5d29yZHMgKG9yZy1jb2xsZWN0LWtleXdvcmRzICco IlRJVExFIikpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaWYga2V5d29yZHMK QEAgLTcyNiwxNCArODEwLDYxIEBAIG9yIGZpbGVuYW1lIGlmIG5vIHRpdGxlLiIKIAkJCSAg ICAgIChtYXRjaC1zdHJpbmcgNCkKIAkJCSAgICAobWF0Y2gtc3RyaW5nIDApKSkKICAgICAg ICAgICAgICAgICAgICAgICAgICAodCBsaW5rKSkpKSkKKyAgICAgIDs7IFByZWNpc2UgdGFy Z2V0cyBzaG91bGQgYmUgYWZ0ZXIgaWQtbG9jYXRpb24gdG8gYXZvaWQKKyAgICAgIDs7IGR1 cGxpY2F0aW5nIHRoZSBjdXJyZW50IGhlYWRsaW5lIGFzIGEgc2VhcmNoIHN0cmluZworICAg ICAgKHdoZW4gKGFuZCBwcmVjaXNlLXRhcmdldAorICAgICAgICAgICAgICAgICBvcmctbGlu ay1wcmVjaXNlLXRhcmdldC1tYXJrZXIKKyAgICAgICAgICAgICAgICAgKD4gKG1hcmtlci1w b3NpdGlvbiBvcmctbGluay1wcmVjaXNlLXRhcmdldC1tYXJrZXIpCisgICAgICAgICAgICAg ICAgICAgIGlkLWxvY2F0aW9uKSkKKyAgICAgICAgIChzZXRxIGxpbmsgKGNvbmNhdCBsaW5r ICI6OiIgKGNhciBwcmVjaXNlLXRhcmdldCkpKQorICAgICAgICAgKHNldHEgZGVzYyAoY2Ry IHByZWNpc2UtdGFyZ2V0KSkpCiAgICAgICAob3JnLWxpbmstc3RvcmUtcHJvcHMgOmxpbmsg bGluayA6ZGVzY3JpcHRpb24gZGVzYyA6dHlwZSAiaWQiKQogICAgICAgbGluaykpKQogCi0o ZGVmdW4gb3JnLWlkLW9wZW4gKGlkIF8pCi0gICJHbyB0byB0aGUgZW50cnkgd2l0aCBpZCBJ RC4iCi0gIChvcmctbWFyay1yaW5nLXB1c2gpCi0gIChsZXQgKChtIChvcmctaWQtZmluZCBp ZCAnbWFya2VyKSkKLQljbWQpCis7OzsjIyNhdXRvbG9hZAorKGRlZnVuIG9yZy1pZC1zdG9y ZS1saW5rLW1heWJlICgmb3B0aW9uYWwgaW50ZXJhY3RpdmU/KQorICAiU3RvcmUgYSBsaW5r IHRvIHRoZSBjdXJyZW50IGVudHJ5IHVzaW5nIGl0cyBJRCBpZiBlbmFibGVkLgorCitUaGUg dmFsdWUgb2YgYG9yZy1pZC1saW5rLXRvLW9yZy11c2UtaWQnIGRldGVybWluZXMgd2hldGhl ciBhbiBJRAorbGluayBzaG91bGQgYmUgc3RvcmVkLCB1c2luZyBgb3JnLWlkLXN0b3JlLWxp bmsnLgorCitBc3N1bWUgdGhlIGZ1bmN0aW9uIGlzIGNhbGxlZCBpbnRlcmFjdGl2ZWx5IGlm IElOVEVSQUNUSVZFPyBpcworbm9uLW5pbC4iCisgICh3aGVuIChhbmQgKGJ1ZmZlci1maWxl LW5hbWUgKGJ1ZmZlci1iYXNlLWJ1ZmZlcikpCisgICAgICAgICAgICAgKGRlcml2ZWQtbW9k ZS1wICdvcmctbW9kZSkKKyAgICAgICAgICAgICAob3IgKGVxIG9yZy1pZC1saW5rLXRvLW9y Zy11c2UtaWQgdCkKKyAgICAgICAgICAgICAgICAgKGFuZCBpbnRlcmFjdGl2ZT8KKyAgICAg ICAgICAgICAgICAgICAgICAob3IgKGVxIG9yZy1pZC1saW5rLXRvLW9yZy11c2UtaWQgJ2Ny ZWF0ZS1pZi1pbnRlcmFjdGl2ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGFuZCAo ZXEgb3JnLWlkLWxpbmstdG8tb3JnLXVzZS1pZAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnY3JlYXRlLWlmLWludGVyYWN0aXZlLWFuZC1uby1jdXN0b20taWQpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5vdCAob3JnLWVudHJ5LWdldCBuaWwg IkNVU1RPTV9JRCIpKSkpKQorICAgICAgICAgICAgICAgICA7OyAndXNlLWV4aXN0aW5nCisg ICAgICAgICAgICAgICAgIChhbmQgb3JnLWlkLWxpbmstdG8tb3JnLXVzZS1pZAorICAgICAg ICAgICAgICAgICAgICAgIChvcmctaWQtLWdldC1pZC10by1zdG9yZS1saW5rKSkpKQorICAg IChvcmctaWQtc3RvcmUtbGluaykpKQorCisoZGVmdW4gb3JnLWlkLW9wZW4gKGxpbmsgXykK KyAgIkdvIHRvIHRoZSBlbnRyeSBpbmRpY2F0ZWQgYnkgaWQgbGluayBMSU5LLgorCitUaGUg bGluayBjYW4gaW5jbHVkZSBhIHNlYXJjaCBzdHJpbmcgYWZ0ZXIgXCI6OlwiLCB3aGljaCBp cworcGFzc2VkIHRvIGBvcmctbGluay1zZWFyY2gnLgorCitGb3IgYmFja3dhcmRzIGNvbXBh dGliaWxpdHkgd2l0aCBJRHMgdGhhdCBjb250YWluIFwiOjpcIiwgaWYgbm8KK21hdGNoIGlz IGZvdW5kIGZvciB0aGUgSUQsIHRoZSBmdWxsIGxpbmsgc3RyaW5nIGluY2x1ZGluZyBcIjo6 XCIKK3dpbGwgYmUgdHJpZWQgYXMgYW4gSUQuIgorICAobGV0KiAoKG9wdGlvbiAoYW5kIChz dHJpbmctbWF0Y2ggIjo6XFwoLipcXClcXCciIGxpbmspCisJCSAgICAgIChtYXRjaC1zdHJp bmcgMSBsaW5rKSkpCisJIChpZCAoaWYgKG5vdCBvcHRpb24pIGxpbmsKKyAgICAgICAgICAg ICAgIChzdWJzdHJpbmcgbGluayAwIChtYXRjaC1iZWdpbm5pbmcgMCkpKSkKKyAgICAgICAg IG0gY21kKQorICAgIChvcmctbWFyay1yaW5nLXB1c2gpCisgICAgKHNldHEgbSAob3JnLWlk LWZpbmQgaWQgJ21hcmtlcikpCisgICAgKHdoZW4gKGFuZCAobm90IG0pIG9wdGlvbikKKyAg ICAgIDs7IEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OiBpZiBpZCBpcyBub3QgZm91bmQsIHRy eSB0cmVhdGluZworICAgICAgOzsgd2hvbGUgbGluayBhcyBhbiBpZC4KKyAgICAgIChzZXRx IG0gKG9yZy1pZC1maW5kIGxpbmsgJ21hcmtlcikpCisgICAgICAod2hlbiBtCisgICAgICAg IChzZXRxIG9wdGlvbiBuaWwpKSkKICAgICAodW5sZXNzIG0KICAgICAgIChlcnJvciAiQ2Fu bm90IGZpbmQgZW50cnkgd2l0aCBJRCBcIiVzXCIiIGlkKSkKICAgICA7OyBVc2UgYSBidWZm ZXItc3dpdGNoaW5nIGNvbW1hbmQgaW4gYW5hbG9neSB0byBmaW5kaW5nIGZpbGVzCkBAIC03 NTAsOSArODgxLDE2IEBAIG9yIGZpbGVuYW1lIGlmIG5vIHRpdGxlLiIKIAkoZnVuY2FsbCBj bWQgKG1hcmtlci1idWZmZXIgbSkpKQogICAgIChnb3RvLWNoYXIgbSkKICAgICAobW92ZS1t YXJrZXIgbSBuaWwpCisgICAgKHdoZW4gb3B0aW9uCisgICAgICAoc2F2ZS1yZXN0cmljdGlv bgorICAgICAgICAodW5sZXNzIChvcmctYmVmb3JlLWZpcnN0LWhlYWRpbmctcCkKKyAgICAg ICAgICAob3JnLW5hcnJvdy10by1zdWJ0cmVlKSkKKyAgICAgICAgKG9yZy1saW5rLXNlYXJj aCBvcHRpb24pKSkKICAgICAob3JnLWZvbGQtc2hvdy1jb250ZXh0KSkpCiAKLShvcmctbGlu ay1zZXQtcGFyYW1ldGVycyAiaWQiIDpmb2xsb3cgIydvcmctaWQtb3BlbikKKyhvcmctbGlu ay1zZXQtcGFyYW1ldGVycyAiaWQiCisgIDpmb2xsb3cgIydvcmctaWQtb3BlbgorICA6c3Rv cmUgIydvcmctaWQtc3RvcmUtbGluay1tYXliZSkKIAogKHByb3ZpZGUgJ29yZy1pZCkKIApk aWZmIC0tZ2l0IGEvbGlzcC9vcmctbGludC5lbCBiL2xpc3Avb3JnLWxpbnQuZWwKaW5kZXgg NGQyYTU1ZDE1Li5iMjNhZmNjYTMgMTAwNjQ0Ci0tLSBhL2xpc3Avb3JnLWxpbnQuZWwKKysr IGIvbGlzcC9vcmctbGludC5lbApAQCAtNjUsNiArNjUsNyBAQAogOzsgLSBzcGVjaWFsIHBy b3BlcnRpZXMgaW4gcHJvcGVydGllcyBkcmF3ZXJzLAogOzsgLSBvYnNvbGV0ZSBzeW50YXgg Zm9yIHByb3BlcnRpZXMgZHJhd2VycywKIDs7IC0gaW52YWxpZCBkdXJhdGlvbiBpbiBFRkZP UlQgcHJvcGVydHksCis7OyAtIGludmFsaWQgSUQgcHJvcGVydHkgd2l0aCBhIGRvdWJsZSBj b2xvbiwKIDs7IC0gbWlzc2luZyBkZWZpbml0aW9uIGZvciBmb290bm90ZSByZWZlcmVuY2Vz LAogOzsgLSBtaXNzaW5nIHJlZmVyZW5jZSBmb3IgZm9vdG5vdGUgZGVmaW5pdGlvbnMsCiA7 OyAtIG5vbi1mb290bm90ZSBkZWZpbml0aW9ucyBpbiBmb290bm90ZSBzZWN0aW9uLApAQCAt Njg2LDYgKzY4NywxNiBAQCBVc2UgOmhlYWRlci1hcmdzOiBpbnN0ZWFkIgogCSAgICAgICAo bGlzdCAob3JnLWVsZW1lbnQtYmVnaW4gcCkKIAkJICAgICAoZm9ybWF0ICJJbnZhbGlkIGVm Zm9ydCBkdXJhdGlvbiBmb3JtYXQ6ICVTIiB2YWx1ZSkpKSkpKSkpCiAKKyhkZWZ1biBvcmct bGludC1pbnZhbGlkLWlkLXByb3BlcnR5IChhc3QpCisgIChvcmctZWxlbWVudC1tYXAgYXN0 ICdub2RlLXByb3BlcnR5CisgICAgKGxhbWJkYSAocCkKKyAgICAgICh3aGVuIChlcXVhbCAi SUQiIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6a2V5IHApKQorCShsZXQgKCh2YWx1ZSAob3Jn LWVsZW1lbnQtcHJvcGVydHkgOnZhbHVlIHApKSkKKwkgIChhbmQgKG9yZy1zdHJpbmctbnct cCB2YWx1ZSkKKyAgICAgICAgICAgICAgIChzdHJpbmctbWF0Y2gtcCAiOjoiIHZhbHVlKQor CSAgICAgICAobGlzdCAob3JnLWVsZW1lbnQtYmVnaW4gcCkKKwkJICAgICAoZm9ybWF0ICJJ RHMgc2hvdWxkIG5vdCBpbmNsdWRlIFwiOjpcIjogJVMiIHZhbHVlKSkpKSkpKSkKKwogKGRl ZnVuIG9yZy1saW50LWxpbmstdG8tbG9jYWwtZmlsZSAoYXN0KQogICAob3JnLWVsZW1lbnQt bWFwIGFzdCAnbGluawogICAgIChsYW1iZGEgKGwpCkBAIC0xNjg0LDYgKzE2OTUsMTEgQEAg QVNUIGlzIHRoZSBidWZmZXIgcGFyc2UgdHJlZS4iCiAgICMnb3JnLWxpbnQtaW52YWxpZC1l ZmZvcnQtcHJvcGVydHkKICAgOmNhdGVnb3JpZXMgJyhwcm9wZXJ0aWVzKSkKIAorKG9yZy1s aW50LWFkZC1jaGVja2VyICdpbnZhbGlkLWlkLXByb3BlcnR5CisgICJSZXBvcnQgc2VhcmNo IHN0cmluZyBkZWxpbWl0ZXIgXCI6OlwiIGluIElEIHByb3BlcnR5IgorICAjJ29yZy1saW50 LWludmFsaWQtaWQtcHJvcGVydHkKKyAgOmNhdGVnb3JpZXMgJyhwcm9wZXJ0aWVzKSkKKwog KG9yZy1saW50LWFkZC1jaGVja2VyICd1bmRlZmluZWQtZm9vdG5vdGUtcmVmZXJlbmNlCiAg ICJSZXBvcnQgbWlzc2luZyBkZWZpbml0aW9uIGZvciBmb290bm90ZSByZWZlcmVuY2VzIgog ICAjJ29yZy1saW50LXVuZGVmaW5lZC1mb290bm90ZS1yZWZlcmVuY2UKZGlmZiAtLWdpdCBh L3Rlc3RpbmcvbGlzcC90ZXN0LW9sLmVsIGIvdGVzdGluZy9saXNwL3Rlc3Qtb2wuZWwKaW5k ZXggZTBjZWMwODU0Li40YmU2YjMwNTUgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvbGlzcC90ZXN0 LW9sLmVsCisrKyBiL3Rlc3RpbmcvbGlzcC90ZXN0LW9sLmVsCkBAIC0zODEsNiArMzgxLDEz NiBAQCBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3lhbnRhcjkyL29yZy9pc3N1ZXMvNC4iCiAJ IChlcXVhbCAoZm9ybWF0ICJbW2ZpbGU6JXM6Oipmb28gYmFyXVtmb28gYmFyXV0iIGZpbGUg ZmlsZSkKIAkJKG9yZy1zdG9yZS1saW5rIG5pbCkpKSkpKSkKIAorKGVydC1kZWZ0ZXN0IHRl c3Qtb3JnLWxpbmsvcHJlY2lzZS1saW5rLXRhcmdldCAoKQorICAiVGVzdCBgb3JnLWxpbmst cHJlY2lzZS1saW5rLXRhcmdldGAgc3BlY2lmaWNhdGlvbnMuIgorICAob3JnLXRlc3Qtd2l0 aC10ZW1wLXRleHQgIiogSDE8cG9pbnQ+XG4qIEgyXG4iCisgICAgKHNob3VsZAorICAgICAo ZXF1YWwgJygiKkgxIiAuICJIMSIpCisgICAgICAgICAgICAob3JnLWxpbmstcHJlY2lzZS1s aW5rLXRhcmdldCkpKQorICAgIChzaG91bGQKKyAgICAgKGVxdWFsIDEgKG1hcmtlci1wb3Np dGlvbiBvcmctbGluay1wcmVjaXNlLXRhcmdldC1tYXJrZXIpKSkpCisgIChvcmctdGVzdC13 aXRoLXRlbXAtdGV4dCAiKiBIMVxuIytuYW1lOiBmb288cG9pbnQ+XG4jK2JlZ2luX2V4YW1w bGVcbmhpXG4jK2VuZF9leGFtcGxlXG4iCisgICAgKHNob3VsZAorICAgICAoZXF1YWwgJygi Zm9vIiAuICJmb28iKQorICAgICAgICAgICAgKG9yZy1saW5rLXByZWNpc2UtbGluay10YXJn ZXQpKSkKKyAgICAoc2hvdWxkCisgICAgIChlcXVhbCA2IChtYXJrZXItcG9zaXRpb24gb3Jn LWxpbmstcHJlY2lzZS10YXJnZXQtbWFya2VyKSkpKQorICAob3JnLXRlc3Qtd2l0aC10ZW1w LXRleHQgIlxuVGV4dDxwb2ludD5cbiogSDFcbiIKKyAgICAoc2hvdWxkCisgICAgIChlcXVh bCAnKCJUZXh0IiAuIG5pbCkKKyAgICAgICAgICAgIChvcmctbGluay1wcmVjaXNlLWxpbmst dGFyZ2V0KSkpCisgICAgKHNob3VsZAorICAgICAoZXF1YWwgMiAobWFya2VyLXBvc2l0aW9u IG9yZy1saW5rLXByZWNpc2UtdGFyZ2V0LW1hcmtlcikpKSkKKyAgKG9yZy10ZXN0LXdpdGgt dGVtcC10ZXh0ICJcbjxwb2ludD5cbiogSDFcbiIKKyAgICAoc2hvdWxkCisgICAgIChlcXVh bCBuaWwgKG9yZy1saW5rLXByZWNpc2UtbGluay10YXJnZXQpKSkKKyAgICAoc2hvdWxkCisg ICAgIChlcXVhbCAyIChtYXJrZXItcG9zaXRpb24gb3JnLWxpbmstcHJlY2lzZS10YXJnZXQt bWFya2VyKSkpKSkKKworKGRlZm1hY3JvIHRlc3Qtb2wtc3RvcmVkLWxpbmstd2l0aC10ZXh0 ICh0ZXh0ICZyZXN0IGJvZHkpCisgICJSZXR1cm4gOmxpbmsgYW5kIDpkZXNjcmlwdGlvbiBm cm9tIGxpbmsgc3RvcmVkIGluIGJvZHkuIgorICAoZGVjbGFyZSAoaW5kZW50IDEpKQorICBg KGxldCAob3JnLXN0b3JlLWxpbmstcGxpc3QpCisgICAgIChvcmctdGVzdC13aXRoLXRlbXAt dGV4dC1pbi1maWxlICx0ZXh0CisgICAgICAgLEBib2R5CisgICAgICAgKGxpc3QgKHBsaXN0 LWdldCBvcmctc3RvcmUtbGluay1wbGlzdCA6bGluaykKKyAgICAgICAgICAgICAocGxpc3Qt Z2V0IG9yZy1zdG9yZS1saW5rLXBsaXN0IDpkZXNjcmlwdGlvbikpKSkpCisKKyhlcnQtZGVm dGVzdCB0ZXN0LW9yZy1saW5rL2lkLXN0b3JlLWxpbmsgKCkKKyAgIlRlc3QgYG9yZy1pZC1z dG9yZS1saW5rJyBzcGVjaWZpY2F0aW9ucy4iCisgIChsZXQgKChvcmctaWQtbGluay10by1v cmctdXNlLWlkIG5pbCkpCisgICAgKHNob3VsZAorICAgICAoZXF1YWwgJyhuaWwgbmlsKQor ICAgICAgICAgICAgKHRlc3Qtb2wtc3RvcmVkLWxpbmstd2l0aC10ZXh0ICIqIEgxXG46UFJP UEVSVElFUzpcbjpJRDogYWJjXG46RU5EOlxuIgorICAgICAgICAgICAgICAob3JnLWlkLXN0 b3JlLWxpbmstbWF5YmUgdCkpKSkpCisgIDs7IE9uIGEgaGVhZGxpbmUsIGxpbmsgdG8gdGhh dCBoZWFkbGluZSdzIElELiAgVXNlIGhlYWRpbmcgYXMgdGhlCisgIDs7IGRlc2NyaXB0aW9u IG9mIHRoZSBsaW5rLgorICAobGV0ICgob3JnLWlkLWxpbmstdG8tb3JnLXVzZS1pZCB0KSkK KyAgICAoc2hvdWxkCisgICAgIChlcXVhbCAnKCJpZDphYmMiICJIMSIpCisgICAgICAgICAg ICAodGVzdC1vbC1zdG9yZWQtbGluay13aXRoLXRleHQgIiogSDFcbjpQUk9QRVJUSUVTOlxu OklEOiBhYmNcbjpFTkQ6XG4iCisgICAgICAgICAgICAgIChvcmctaWQtc3RvcmUtbGluay1t YXliZSB0KSkpKSkKKyAgOzsgUmVtb3ZlIFRPRE8ga2V5d29yZHMgZXRjIGZyb20gZGVzY3Jp cHRpb24gb2YgdGhlIGxpbmsuCisgIChsZXQgKChvcmctaWQtbGluay10by1vcmctdXNlLWlk IHQpKQorICAgIChzaG91bGQKKyAgICAgKGVxdWFsICcoImlkOmFiYyIgIkgxIikKKyAgICAg ICAgICAgICh0ZXN0LW9sLXN0b3JlZC1saW5rLXdpdGgtdGV4dCAiKiBUT0RPIFsjQV0gSDEg OnRhZzpcbjpQUk9QRVJUSUVTOlxuOklEOiBhYmNcbjpFTkQ6XG4iCisgICAgICAgICAgICAg IChvcmctaWQtc3RvcmUtbGluay1tYXliZSB0KSkpKSkKKyAgOzsgY3JlYXRlLWlmLWludGVy YWN0aXZlCisgIChsZXQgKChvcmctaWQtbGluay10by1vcmctdXNlLWlkICdjcmVhdGUtaWYt aW50ZXJhY3RpdmUpKQorICAgIChzaG91bGQKKyAgICAgKGVxdWFsICcoImlkOmFiYyIgIkgx IikKKyAgICAgICAgICAgIChjbC1sZXRmICgoKHN5bWJvbC1mdW5jdGlvbiAnb3JnLWlkLW5l dykKKyAgICAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAoJnJlc3QgX3Jlc3QpICJhYmMi KSkpCisgICAgICAgICAgICAgICh0ZXN0LW9sLXN0b3JlZC1saW5rLXdpdGgtdGV4dCAiKiBI MVxuIgorICAgICAgICAgICAgICAgIChvcmctaWQtc3RvcmUtbGluay1tYXliZSB0KSkpKSkK KyAgICAoc2hvdWxkCisgICAgIChlcXVhbCAnKG5pbCBuaWwpCisgICAgICAgICAgICAodGVz dC1vbC1zdG9yZWQtbGluay13aXRoLXRleHQgIiogSDFcbiIKKyAgICAgICAgICAgICAgKG9y Zy1pZC1zdG9yZS1saW5rLW1heWJlIG5pbCkpKSkpCisgIDs7IGNyZWF0ZS1pZi1pbnRlcmFj dGl2ZS1hbmQtbm8tY3VzdG9tLWlkCisgIChsZXQgKChvcmctaWQtbGluay10by1vcmctdXNl LWlkICdjcmVhdGUtaWYtaW50ZXJhY3RpdmUtYW5kLW5vLWN1c3RvbS1pZCkpCisgICAgKHNo b3VsZAorICAgICAoZXF1YWwgJygiaWQ6YWJjIiAiSDEiKQorICAgICAgICAgICAgKGNsLWxl dGYgKCgoc3ltYm9sLWZ1bmN0aW9uICdvcmctaWQtbmV3KQorICAgICAgICAgICAgICAgICAg ICAgICAobGFtYmRhICgmcmVzdCBfcmVzdCkgImFiYyIpKSkKKyAgICAgICAgICAgICAgKHRl c3Qtb2wtc3RvcmVkLWxpbmstd2l0aC10ZXh0ICIqIEgxXG4iCisgICAgICAgICAgICAgICAg KG9yZy1pZC1zdG9yZS1saW5rLW1heWJlIHQpKSkpKQorICAgIChzaG91bGQKKyAgICAgKGVx dWFsICcobmlsIG5pbCkKKyAgICAgICAgICAgICh0ZXN0LW9sLXN0b3JlZC1saW5rLXdpdGgt dGV4dCAiKiBIMVxuOlBST1BFUlRJRVM6XG46Q1VTVE9NX0lEOiB4eXpcbjpFTkQ6XG4iCisg ICAgICAgICAgICAgIChvcmctaWQtc3RvcmUtbGluay1tYXliZSB0KSkpKQorICAgIChzaG91 bGQKKyAgICAgKGVxdWFsICcobmlsIG5pbCkKKyAgICAgICAgICAgICh0ZXN0LW9sLXN0b3Jl ZC1saW5rLXdpdGgtdGV4dCAiKiBIMVxuIgorICAgICAgICAgICAgICAob3JnLWlkLXN0b3Jl LWxpbmstbWF5YmUgbmlsKSkpKSkKKyAgOzsgdXNlLWNvbnRleHQgc2hvdWxkIGhhdmUgbm8g ZWZmZWN0IHdoZW4gb24gdGhlIGhlYWRsaW5lIHdpdGggYW4gaWQKKyAgKGxldCAoKG9yZy1p ZC1saW5rLXRvLW9yZy11c2UtaWQgdCkKKyAgICAgICAgKG9yZy1pZC1saW5rLXVzZS1jb250 ZXh0IHQpKQorICAgIChzaG91bGQKKyAgICAgKGVxdWFsICcoImlkOmFiYyIgIkgyIikKKyAg ICAgICAgICAgICh0ZXN0LW9sLXN0b3JlZC1saW5rLXdpdGgtdGV4dCAiKiBIMVxuKiogSDI8 cG9pbnQ+XG46UFJPUEVSVElFUzpcbjpJRDogYWJjXG46RU5EOlxuIgorICAgICAgICAgICAg ICA7OyBzaW11bGF0ZSBwcmV2aW91c2x5IGdldHRpbmcgYW4gaW5oZXJpdGVkIHZhbHVlCisg ICAgICAgICAgICAgIChtb3ZlLW1hcmtlciBvcmctZW50cnktcHJvcGVydHktaW5oZXJpdGVk LWZyb20gMSkKKyAgICAgICAgICAgICAgKG9yZy1pZC1zdG9yZS1saW5rLW1heWJlIHQpKSkp KSkKKworKGVydC1kZWZ0ZXN0IHRlc3Qtb3JnLWxpbmsvaWQtc3RvcmUtbGluay11c2luZy1w YXJlbnQgKCkKKyAgIlRlc3QgYG9yZy1pZC1zdG9yZS1saW5rJyBzcGVjaWZpY2F0aW9ucyB3 aXRoIGBvcmctaWQtbGluay1jb25zaWRlci1wYXJlbnQtaWRgIHNldC4iCisgIDs7IHdoZW4g dXNpbmcgY29udGV4dCB0byBzdGlsbCBmaW5kIHNwZWNpZmljIGhlYWRpbmcKKyAgKGxldCAo KG9yZy1pZC1saW5rLXRvLW9yZy11c2UtaWQgdCkKKyAgICAgICAgKG9yZy1pZC1saW5rLWNv bnNpZGVyLXBhcmVudC1pZCB0KQorICAgICAgICAob3JnLWlkLWxpbmstdXNlLWNvbnRleHQg dCkpCisgICAgKHNob3VsZAorICAgICAoZXF1YWwgJygiaWQ6YWJjOjoqSDIiICJIMiIpCisg ICAgICAgICAgICAodGVzdC1vbC1zdG9yZWQtbGluay13aXRoLXRleHQgIiogSDFcbjpQUk9Q RVJUSUVTOlxuOklEOiBhYmNcbjpFTkQ6XG4qKiBIMlxuPHBvaW50PiIKKyAgICAgICAgICAg ICAgKG9yZy1pZC1zdG9yZS1saW5rKSkpKQorICAgIChzaG91bGQKKyAgICAgKGVxdWFsICco ImlkOmFiYzo6bmFtZSIgIm5hbWUiKQorICAgICAgICAgICAgKHRlc3Qtb2wtc3RvcmVkLWxp bmstd2l0aC10ZXh0ICIqIEgxXG46UFJPUEVSVElFUzpcbjpJRDogYWJjXG46RU5EOlxuXG4j K25hbWU6IG5hbWVcbjxwb2ludD4jK2JlZ2luX2V4YW1wbGVcbmhpXG4jK2VuZF9leGFtcGxl XG4iCisgICAgICAgICAgICAgIChvcmctaWQtc3RvcmUtbGluaykpKSkKKyAgICAoc2hvdWxk CisgICAgIChlcXVhbCAnKCJpZDphYmMiICJIMSIpCisgICAgICAgICAgICAodGVzdC1vbC1z dG9yZWQtbGluay13aXRoLXRleHQgIiogSDE8cG9pbnQ+XG46UFJPUEVSVElFUzpcbjpJRDog YWJjXG46RU5EOlxuKiogSDJcbiIKKyAgICAgICAgICAgICAgKG9yZy1pZC1zdG9yZS1saW5r KSkpKQorICAgIDs7IHNob3VsZCBub3QgdXNlIG5ld2x5IGFkZGVkIGlkcyBhcyBzZWFyY2gg c3RyaW5nLCBlLmcuIGluIGFuIGVtcHR5IGZpbGUKKyAgICAoc2hvdWxkCisgICAgIChsZXQg KG5hbWUgcmVzdWx0KQorICAgICAgIChzZXRxIHJlc3VsdAorICAgICAgICAgICAgIChjbC1s ZXRmICgoKHN5bWJvbC1mdW5jdGlvbiAnb3JnLWlkLW5ldykKKyAgICAgICAgICAgICAgICAg ICAgICAgIChsYW1iZGEgKCZyZXN0IF9yZXN0KSAiYWJjIikpKQorICAgICAgICAgICAgICAg KHRlc3Qtb2wtc3RvcmVkLWxpbmstd2l0aC10ZXh0ICI8cG9pbnQ+IgorICAgICAgICAgICAg ICAgICAoc2V0cSBuYW1lIChidWZmZXItbmFtZSkpCisgICAgICAgICAgICAgICAgIChvcmct aWQtc3RvcmUtbGluaykpKSkKKyAgICAgICAoZXF1YWwgYCgiaWQ6YWJjIiAsbmFtZSkgcmVz dWx0KSkpKQorICA7OyBzaG91bGQgbm90IGZpbmQgdGFyZ2V0cyBpbiB0aGUgbmV4dCBzZWN0 aW9uCisgIChsZXQgKChvcmctaWQtbGluay10by1vcmctdXNlLWlkICd1c2UtZXhpc3Rpbmcp CisgICAgICAgIChvcmctaWQtbGluay1jb25zaWRlci1wYXJlbnQtaWQgdCkKKyAgICAgICAg KG9yZy1pZC1saW5rLXVzZS1jb250ZXh0IHQpKQorICAgIChzaG91bGQKKyAgICAgKGVxdWFs ICcobmlsIG5pbCkKKyAgICAgICAgICAgICh0ZXN0LW9sLXN0b3JlZC1saW5rLXdpdGgtdGV4 dCAiKiBIMVxuOlBST1BFUlRJRVM6XG46SUQ6IGFiY1xuOkVORDpcbiogSDJcbioqIDxwb2lu dD5UYXJnZXRcbiIKKyAgICAgICAgICAgICAgKG9yZy1pZC1zdG9yZS1saW5rLW1heWJlIHQp KSkpKSkKKwogDAogOzs7IFJhZGlvIFRhcmdldHMKIAotLSAKMi4zNy4xIChBcHBsZSBHaXQt MTM3LjEpCgo= --fb16068278f54da5b19b304c1a37d964--