From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id mAgNGyzXYWV8DQAAG6o9tA:P1 (envelope-from ) for ; Sat, 25 Nov 2023 12:14:52 +0100 Received: from aspmx1.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id mAgNGyzXYWV8DQAAG6o9tA (envelope-from ) for ; Sat, 25 Nov 2023 12:14:52 +0100 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 C6E9014B0B for ; Sat, 25 Nov 2023 12:14:51 +0100 (CET) Authentication-Results: aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=felesatra-moe.20230601.gappssmtp.com header.s=20230601 header.b=XzdnZkGb; 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=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1700910892; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=UrSYgeznclESJz4PZmrF7opDUMKSZHkV57D8PWlwxT4=; b=t38sUiyrCSh1LsdSj8uAMnsxLyWjlUYafFlbr1N0Ic9wkWzRRLxcnfWaaZP1Oj7/gzi9L9 9tnWF+MiSmurLFymJGDcYWPC+ryDSfMFTXyZCm+94n12puyD8XuCwRkgmzK/bK/nkosrJN jPtVKcYVBSG7BgTGIhFaGQ9yqKIctL6KHFT0kUSRdVfxW2QDf6S7SRD/yyt0GVP+cbWfV6 HlSGZZjBzYuKJ1iU6VKF/lHm1uDFmbS/Fx2zshvWPpFb1yMsht5743xHOAt6zEGtPxG16v u1ELUNJP9dyazoMNhkyCd8RtGDhyTgmCcqPCW1IqWxpupPh1hZA2uWj4Tiv1pw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=felesatra-moe.20230601.gappssmtp.com header.s=20230601 header.b=XzdnZkGb; 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=none ARC-Seal: i=1; s=key1; d=yhetil.org; t=1700910892; a=rsa-sha256; cv=none; b=n3Mk0DuXPW6vN1Huc35R/RWPaG8/Ql7kbjw5rZzJiw20k5JH6gDTgLT4AY0uEP9gIhFj0T Tk66QpkTjJuGfTcLlATml7kumrIsNReT/6KZ63QgaB+Fa61EOB7BDKibAlNjyWhuOXVILS lHvywQHR8M78Tb6rjPYG3b+FjQsF3MZlQqp8lzx7nCiSxp8ih0eQ+4JYJh0GXqwlnQe057 UnEdREItiIMWU72JqFyguXnZC99aPNdtsnW/Spt/TwSPwH/W9Q8aloFvfwlAQEqjx1lwS0 fO/S0e9LOD6SK96A3W6jtTEWgBi3Ysd0LRwVMkIPqsoltmznjMxqUGkxVBWebw== Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1r6qbg-0000Cg-Rw; Sat, 25 Nov 2023 06:13:52 -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 1r6qbf-0008Ty-BP for emacs-orgmode@gnu.org; Sat, 25 Nov 2023 06:13:51 -0500 Received: from mail-lf1-x129.google.com ([2a00:1450:4864:20::129]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1r6qba-0000JR-O0 for emacs-orgmode@gnu.org; Sat, 25 Nov 2023 06:13:51 -0500 Received: by mail-lf1-x129.google.com with SMTP id 2adb3069b0e04-507f63fcbf6so845846e87.1 for ; Sat, 25 Nov 2023 03:13:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=felesatra-moe.20230601.gappssmtp.com; s=20230601; t=1700910824; x=1701515624; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=IC87/pK9FmCGKdjKB6ZB9m2CQreBXQR5Lr8m5cP8lrg=; b=XzdnZkGbaDPlrGf3EL0FD05soiBzdWkf6Gisklk6yR57+B3DAQpJ/onfdcOTMsGptf iLN6SSEE1VfgBlGNgjpEBSvU5Hgfz1H0A4XC9EV8NmwxXZ8BCrHLm76b9Z9+afRa0lhr T2UrojDtlIxvCwz7ZcherQ5Ji7y652gKMYoSICw5iNuGiWJPS8pDOPn3hYjI8A4p8LB0 gUk6qRCQKRJGQCxWtwNCQ+kMMQirJCTnq+C8axJE+knvMrCLvqsof87QGEgDc4+vQuye a6240pNeNgLg9IpxOYhkC0/OKaSBNqWm89Zlef7ORsUn+o84d+YBRMh6wsOR6n0uPfP6 0KMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700910824; x=1701515624; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=IC87/pK9FmCGKdjKB6ZB9m2CQreBXQR5Lr8m5cP8lrg=; b=JCpbe1S70/c0xWvowTHQvXRA06MPefNdG/wj/bzfoa3tkds/Ux95ZtcpRtErb7o2s1 4h371Gf98FwDCeZGEjdpI7U/zV1TndHhyZU9yDgpscG3ItyeeSun0SVsPBpMxvFLeov8 Do/vSbVRwHw4ToqkESc4LMwJpPlg0DAf142b3VawgaSiQfMNv9ajc6oDhDkLKDSnUNVJ +GcjPOz+nCRQFloXH1EJVhGtWrM4/pyC6KSLQQu8pEu+FKBUGYEcGUZJWIqbtWJJYcha GTALcqGsUXOuwMlxeyDo36P7iTBZ8udIRNgKShA3BMiSEUQ46JoxOfJz/Q0f5swjdRoJ 0riA== X-Gm-Message-State: AOJu0Yxw8GAyZKFaP2wGRVe60RzsTcuSDnF7RWfi3uVKT6xrNtIRHfLy o+fN4pj0sTZzgO3kCAjk/JIF5Dn+5tWdWmQ3iWEv3uOlq1fVGjVD X-Google-Smtp-Source: AGHT+IHIRq4s6kRqwGSdg1wEUR6ITh1IOOePBZjStedNRUl/KaOPUPw2CnmYqvS0R2ct1PTvG40MjiHPwQT0Sdcc/88= X-Received: by 2002:a05:6512:1091:b0:50a:7806:d0db with SMTP id j17-20020a056512109100b0050a7806d0dbmr4423528lfg.4.1700910824004; Sat, 25 Nov 2023 03:13:44 -0800 (PST) MIME-Version: 1.0 From: Allen Li Date: Sat, 25 Nov 2023 03:13:32 -0800 Message-ID: Subject: [PATCH] Fix indentation in test-org.el To: emacs-orgmode@gnu.org Content-Type: multipart/mixed; boundary="00000000000075d7a6060af82913" Received-SPF: pass client-ip=2a00:1450:4864:20::129; envelope-from=darkfeline@felesatra.moe; helo=mail-lf1-x129.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -0.52 X-Spam-Score: -0.52 X-Migadu-Queue-Id: C6E9014B0B X-Migadu-Scanner: mx13.migadu.com X-TUID: pL/5m32rvLFq --00000000000075d7a6060af82913 Content-Type: multipart/alternative; boundary="00000000000075d7a5060af82911" --00000000000075d7a5060af82911 Content-Type: text/plain; charset="UTF-8" The indentation in test-org.el is all over the place. I've attached a patch fixing it. Alternatively, you can do the following to reproduce the changes: Load org-test.el and test-org.el to pick up macros which define their own indentation. In test-org.el, type `C-x h TAB` to mark the entire buffer and re-indent. --00000000000075d7a5060af82911 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
The indentation in test-org.el is all over the place.=C2= =A0 I've attached a patch fixing it.

Alternatively, = you can do the following to reproduce the changes:

Load org-test.el and test-org.el to pick up macros which define their own = indentation.
In test-org.el, type `C-x h TAB` to mark the entire = buffer and re-indent.
--00000000000075d7a5060af82911-- --00000000000075d7a6060af82913 Content-Type: text/x-patch; charset="UTF-8"; name="0001-testing-lisp-test-org.el-Fix-indentation.patch" Content-Disposition: attachment; filename="0001-testing-lisp-test-org.el-Fix-indentation.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lpdyallm0 RnJvbSA2OWRkY2E3MmU0NzQ0YzhmM2QzYTU1MmI3NjAxMDhiZDE3YzY3NmFlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGxlbiBMaSA8ZGFya2ZlbGluZUBmZWxlc2F0cmEubW9lPgpE YXRlOiBTYXQsIDI1IE5vdiAyMDIzIDAzOjA2OjA2IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gdGVz dGluZy9saXNwL3Rlc3Qtb3JnLmVsOiBGaXggaW5kZW50YXRpb24KClRoZSBpbmRlbnRhdGlvbiBp biB0aGlzIGZpbGUgaXMgYWxsIG1lc3NlZCB1cC4gIEZpeCBpdCBieSBsb2FkaW5nCnRlc3Qtb3Jn LmVsIGFuZCBvcmctdGVzdC5lbCB0byBwaWNrIHVwIGFsbCB0aGUgbWFjcm9zLCBhbmQgdGhlbiBD LXggaApUQUIgdG8gcmUtaW5kZW50IHRoZSBlbnRpcmUgZmlsZS4KCiogdGVzdGluZy9saXNwL3Rl c3Qtb3JnLmVsIChvcmctdGVzdC13aXRoLXRpbWV6b25lKTogRml4IGluZGVudGF0aW9uLgotLS0K IHRlc3RpbmcvbGlzcC90ZXN0LW9yZy5lbCB8IDU4NCArKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyOTIgaW5zZXJ0aW9ucygrKSwgMjkyIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvbGlzcC90ZXN0LW9yZy5lbCBiL3Rlc3Rp bmcvbGlzcC90ZXN0LW9yZy5lbAppbmRleCA2MTJiZmExZTUuLjE4MjVhZjIxZCAxMDA2NDQKLS0t IGEvdGVzdGluZy9saXNwL3Rlc3Qtb3JnLmVsCisrKyBiL3Rlc3RpbmcvbGlzcC90ZXN0LW9yZy5l bApAQCAtNDEsNyArNDEsNyBAQAogICAgICAgICAgICAocHJvZ24KICAgICAgICAgICAgICAoc2V0 ZW52ICJUWiIgLHR6KQogICAgICAgICAgICAgICxAYm9keSkKLSAgICAgICAgICAgICAoc2V0ZW52 ICJUWiIgLHR6LXNhdmVkKSkpKSkKKyAgICAgICAgIChzZXRlbnYgIlRaIiAsdHotc2F2ZWQpKSkp KQogCiAoZGVmbWFjcm8gb3JnLXRlc3Qtd2l0aC1yZXN1bHQgKHJlc3VsdCAmcmVzdCBib2R5KQog ICAiRXZhbHVhdGUgQk9EWSwgYW5kIHJldHVybiBidWZmZXIgY29udGVudCBiYXNlZCBvbiBSRVNV TFQuCkBAIC01NjIsNyArNTYyLDcgQEAgT3RoZXJ3aXNlLCBldmFsdWF0ZSBSRVNVTFQgYXMgYW4g c2V4cCBhbmQgcmV0dXJuIGl0cyByZXN1bHQuIgogICA7OyBUaGUgZnVuY3Rpb24gaWdub3JlcyBp bmNvbXBsZXRlIGRyYXdlcnMuCiAgIChzaG91bGQtbm90CiAgICAob3JnLXRlc3Qtd2l0aC10ZW1w LXRleHQgIjpQUk9QRVJUSUVTOlxuPHBvaW50PjpQUk9QOiB0XG4iCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgKG9yZy1hdC1wcm9wZXJ0eS1kcmF3ZXItcCkpKQorICAgICAob3JnLWF0LXBy b3BlcnR5LWRyYXdlci1wKSkpCiAgIDs7IHRhYiBzZXBhcmF0aW5nIHRoZSB2YWx1ZS4KICAgKHNo b3VsZAogICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICI6UFJPUEVSVElFUzpcbjpQUk9QOgl0 XG46RU5EOlxuIgpAQCAtNjgyLDIwICs2ODIsMjAgQEAgT3RoZXJ3aXNlLCBldmFsdWF0ZSBSRVNV TFQgYXMgYW4gc2V4cCBhbmQgcmV0dXJuIGl0cyByZXN1bHQuIgogICAgIChzaG91bGQKICAgICAg KGVxdWFsICIqIEhcbjpQUk9QRVJUSUVTOlxuOkVORDpcbioqKioqKioqKioqKioqKiBJXG4qKioq KioqKioqKioqKiogRU5EXG5QIgogCSAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKLQkJIiog SFxuKioqKioqKioqKioqKioqIElcbioqKioqKioqKioqKioqKiBFTkRcblA8cG9pbnQ+IgorCSAg ICAgICAgIiogSFxuKioqKioqKioqKioqKioqIElcbioqKioqKioqKioqKioqKiBFTkRcblA8cG9p bnQ+IgogCSAgICAgIChsZXQgKChvcmctYWRhcHQtaW5kZW50YXRpb24gbmlsKQogCQkgICAgKG9y Zy1pbmxpbmV0YXNrLW1pbi1sZXZlbCAxNSkpCi0JCShvcmctaW5zZXJ0LXByb3BlcnR5LWRyYXdl cikpCisJICAgICAgICAob3JnLWluc2VydC1wcm9wZXJ0eS1kcmF3ZXIpKQogCSAgICAgIChidWZm ZXItc3RyaW5nKSkpKSkKICAgOzsgQ29ycmVjdGx5IHNldCBkcmF3ZXIgaW4gYW4gaW5saW5ldGFz ay4KICAgKHdoZW4gKGZlYXR1cmVwICdvcmctaW5saW5ldGFzaykKICAgICAoc2hvdWxkCiAgICAg IChlcXVhbCAiKiBIXG4qKioqKioqKioqKioqKiogSVxuOlBST1BFUlRJRVM6XG46RU5EOlxuUFxu KioqKioqKioqKioqKioqIEVORCIKIAkgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0Ci0JCSIq IEhcbioqKioqKioqKioqKioqKiBJXG5QPHBvaW50PlxuKioqKioqKioqKioqKioqIEVORCIKKwkg ICAgICAgICIqIEhcbioqKioqKioqKioqKioqKiBJXG5QPHBvaW50PlxuKioqKioqKioqKioqKioq IEVORCIKIAkgICAgICAobGV0ICgob3JnLWFkYXB0LWluZGVudGF0aW9uIG5pbCkKIAkJICAgIChv cmctaW5saW5ldGFzay1taW4tbGV2ZWwgMTUpKQotCQkob3JnLWluc2VydC1wcm9wZXJ0eS1kcmF3 ZXIpKQorCSAgICAgICAgKG9yZy1pbnNlcnQtcHJvcGVydHktZHJhd2VyKSkKIAkgICAgICAoYnVm ZmVyLXN0cmluZykpKSkpKQogCiAMCkBAIC05NDEsMjEgKzk0MSwyMSBAQCBPdGhlcndpc2UsIGV2 YWx1YXRlIFJFU1VMVCBhcyBhbiBzZXhwIGFuZCByZXR1cm4gaXRzIHJlc3VsdC4iCiAgIChzaG91 bGQKICAgIChlcXVhbCAiXG4tIDIzNDU2NzhcbiAgOVxuLSAyMzQ1Njc4XG4gIDkiCiAJICAob3Jn LXRlc3Qtd2l0aC10ZW1wLXRleHQgIlxuLSAyMzQ1Njc4IDlcbi0gMjM0NTY3OCA5IgotCSAgICAg ICAgICAgICAgICAgICAgICAgICAgIChsZXQgKChmaWxsLWNvbHVtbiAxMCkpCi0JICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAodHJhbnNpZW50LW1hcmstbW9kZSAxKQotCSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHB1c2gtbWFyayAocG9pbnQtbWluKSB0IHQpCi0JICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoZ290by1jaGFyIChwb2ludC1tYXgpKQotCSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGNhbGwtaW50ZXJhY3RpdmVseSAjJ2ZpbGwtcmVnaW9uKQotCSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJ1ZmZlci1zdHJpbmcpKSkpKQorCSAgICAobGV0 ICgoZmlsbC1jb2x1bW4gMTApKQorCSAgICAgICh0cmFuc2llbnQtbWFyay1tb2RlIDEpCisJICAg ICAgKHB1c2gtbWFyayAocG9pbnQtbWluKSB0IHQpCisJICAgICAgKGdvdG8tY2hhciAocG9pbnQt bWF4KSkKKwkgICAgICAoY2FsbC1pbnRlcmFjdGl2ZWx5ICMnZmlsbC1yZWdpb24pCisJICAgICAg KGJ1ZmZlci1zdHJpbmcpKSkpKQogICAoc2hvdWxkCiAgICAoZXF1YWwgIlxuLSAxIDJcbi0gMSAy IgogCSAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICJcbi0gMVxuICAyXG4tIDFcbiAgMiIKLQkg ICAgICAgICAgICAgICAgICAgICAgICAgICAobGV0ICgoZmlsbC1jb2x1bW4gMTApKQotCSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKHRyYW5zaWVudC1tYXJrLW1vZGUgMSkKLQkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChwdXNoLW1hcmsgKHBvaW50LW1pbikgdCB0KQotCSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWF4KSkKLQkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChjYWxsLWludGVyYWN0aXZlbHkgIydmaWxsLXJlZ2lvbikK LQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChidWZmZXItc3RyaW5nKSkpKSkgICkKKwkg ICAgKGxldCAoKGZpbGwtY29sdW1uIDEwKSkKKwkgICAgICAodHJhbnNpZW50LW1hcmstbW9kZSAx KQorCSAgICAgIChwdXNoLW1hcmsgKHBvaW50LW1pbikgdCB0KQorCSAgICAgIChnb3RvLWNoYXIg KHBvaW50LW1heCkpCisJICAgICAgKGNhbGwtaW50ZXJhY3RpdmVseSAjJ2ZpbGwtcmVnaW9uKQor CSAgICAgIChidWZmZXItc3RyaW5nKSkpKSkgICkKIAogKGVydC1kZWZ0ZXN0IHRlc3Qtb3JnL2F1 dG8tZmlsbC1mdW5jdGlvbiAoKQogICAiVGVzdCBhdXRvLWZpbGxpbmcgZmVhdHVyZXMuIgpAQCAt MTEyNyw5ICsxMTI3LDkgQEAgT3RoZXJ3aXNlLCBldmFsdWF0ZSBSRVNVTFQgYXMgYW4gc2V4cCBh bmQgcmV0dXJuIGl0cyByZXN1bHQuIgogICAoc2hvdWxkCiAgICAoPSAxCiAgICAgICAob3JnLXRl c3Qtd2l0aC10ZW1wLXRleHQKLQkgICJcXGJlZ2lue2VxdWF0aW9ufVxuIDxwb2ludD4xKzE9Mlxu XFxlbmR7ZXF1YXRpb259IgotCShvcmctaW5kZW50LWxpbmUpCi0JKG9yZy1nZXQtaW5kZW50YXRp b24pKSkpCisgICAgICAgICAgIlxcYmVnaW57ZXF1YXRpb259XG4gPHBvaW50PjErMT0yXG5cXGVu ZHtlcXVhdGlvbn0iCisgICAgICAgIChvcmctaW5kZW50LWxpbmUpCisgICAgICAgIChvcmctZ2V0 LWluZGVudGF0aW9uKSkpKQogICA7OyBPbiBibGFuayBsaW5lcyBhdCB0aGUgZW5kIG9mIGEgbGlz dCwgaW5kZW50IGxpa2UgbGFzdCBlbGVtZW50CiAgIDs7IHdpdGhpbiBpdCBpZiB0aGUgbGluZSBp cyBzdGlsbCBpbiB0aGUgbGlzdC4gIElmIHRoZSBsYXN0IGVsZW1lbnQKICAgOzsgaXMgYW4gaXRl bSwgaW5kZW50IGxpa2UgaXRzIGNvbnRlbnRzLiAgT3RoZXJ3aXNlLCBpbmRlbnQgbGlrZSB0aGUK QEAgLTExNTcsOSArMTE1Nyw5IEBAIE90aGVyd2lzZSwgZXZhbHVhdGUgUkVTVUxUIGFzIGFuIHNl eHAgYW5kIHJldHVybiBpdHMgcmVzdWx0LiIKICAgKHNob3VsZAogICAgKD0gNAogICAgICAgKG9y Zy10ZXN0LXdpdGgtdGVtcC10ZXh0Ci0JICAiKiBIXG4gIC0gXG4gICAgIytCRUdJTl9TUkMgZW1h Y3MtbGlzcFxuICB0XG4gICAgIytFTkRfU1JDXG48cG9pbnQ+IgotCShsZXQgKChvcmctYWRhcHQt aW5kZW50YXRpb24gdCkpIChvcmctaW5kZW50LWxpbmUpKQotCShvcmctZ2V0LWluZGVudGF0aW9u KSkpKQorICAgICAgICAgICIqIEhcbiAgLSBcbiAgICAjK0JFR0lOX1NSQyBlbWFjcy1saXNwXG4g IHRcbiAgICAjK0VORF9TUkNcbjxwb2ludD4iCisgICAgICAgIChsZXQgKChvcmctYWRhcHQtaW5k ZW50YXRpb24gdCkpIChvcmctaW5kZW50LWxpbmUpKQorICAgICAgICAob3JnLWdldC1pbmRlbnRh dGlvbikpKSkKICAgKHNob3VsZAogICAgKD0gMgogICAgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10 ZXh0ICItIEFcbiAgQlxuXG48cG9pbnQ+IgpAQCAtMTE2OCw5ICsxMTY4LDkgQEAgT3RoZXJ3aXNl LCBldmFsdWF0ZSBSRVNVTFQgYXMgYW4gc2V4cCBhbmQgcmV0dXJuIGl0cyByZXN1bHQuIgogICAo c2hvdWxkCiAgICAoPSAyCiAgICAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKLQkgICItIEFc biAgXGJlZ2lue2Nhc2VzfSAgICAxICsgMVxuICBcZW5ke2Nhc2VzfVxuXG48cG9pbnQ+IgotCShs ZXQgKChvcmctYWRhcHQtaW5kZW50YXRpb24gbmlsKSkgKG9yZy1pbmRlbnQtbGluZSkpCi0JKG9y Zy1nZXQtaW5kZW50YXRpb24pKSkpCisgICAgICAgICAgIi0gQVxuICBcYmVnaW57Y2FzZXN9ICAg IDEgKyAxXG4gIFxlbmR7Y2FzZXN9XG5cbjxwb2ludD4iCisgICAgICAgIChsZXQgKChvcmctYWRh cHQtaW5kZW50YXRpb24gbmlsKSkgKG9yZy1pbmRlbnQtbGluZSkpCisgICAgICAgIChvcmctZ2V0 LWluZGVudGF0aW9uKSkpKQogICA7OyBMaWtld2lzZSwgb24gYSBibGFuayBsaW5lIGF0IHRoZSBl bmQgb2YgYSBmb290bm90ZSBkZWZpbml0aW9uLAogICA7OyBpbmRlbnQgYXQgY29sdW1uIDAgaWYg bGluZSBiZWxvbmdzIHRvIHRoZSBkZWZpbml0aW9uLiAgT3RoZXJ3aXNlLAogICA7OyBpbmRlbnQg bGlrZSB0aGUgZGVmaW5pdGlvbiBpdHNlbGYuCkBAIC0xMTg5LDkgKzExODksOSBAQCBPdGhlcndp c2UsIGV2YWx1YXRlIFJFU1VMVCBhcyBhbiBzZXhwIGFuZCByZXR1cm4gaXRzIHJlc3VsdC4iCiAg IChzaG91bGQKICAgICg9IDEKICAgICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dAotCSAgIiAj K0JFR0lOX0NFTlRFUlxuICBDb250ZW50c1xuPHBvaW50PiMrRU5EX0NFTlRFUiIKLQkob3JnLWlu ZGVudC1saW5lKQotCShvcmctZ2V0LWluZGVudGF0aW9uKSkpKQorICAgICAgICAgICIgIytCRUdJ Tl9DRU5URVJcbiAgQ29udGVudHNcbjxwb2ludD4jK0VORF9DRU5URVIiCisgICAgICAgIChvcmct aW5kZW50LWxpbmUpCisgICAgICAgIChvcmctZ2V0LWluZGVudGF0aW9uKSkpKQogICA7OyBPbiBi bGFuayBsaW5lcyBhZnRlciBhIHBhcmFncmFwaCwgaW5kZW50IGxpa2UgaXRzIGxhc3Qgbm9uLWVt cHR5CiAgIDs7IGxpbmUuCiAgIChzaG91bGQKQEAgLTEyMDYsNDMgKzEyMDYsNDMgQEAgT3RoZXJ3 aXNlLCBldmFsdWF0ZSBSRVNVTFQgYXMgYW4gc2V4cCBhbmQgcmV0dXJuIGl0cyByZXN1bHQuIgog ICAgIChzaG91bGQKICAgICAgKD0gMgogICAgICAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQg IkFcblxuICBCXG5cbkM8cG9pbnQ+IgotCSAgICAgICAgICAgICAgICAgICAgICAgICAob3JnLWlu ZGVudC1saW5lKQotCSAgICAgICAgICAgICAgICAgICAgICAgICAob3JnLWdldC1pbmRlbnRhdGlv bikpKSkKKwkgIChvcmctaW5kZW50LWxpbmUpCisJICAob3JnLWdldC1pbmRlbnRhdGlvbikpKSkK ICAgICAoc2hvdWxkCiAgICAgICg9IDEKICAgICAgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0 ICIgQVxuXG5bZm46MV0gQlxuXG5cbkM8cG9pbnQ+IgotCSAgICAgICAgICAgICAgICAgICAgICAg ICAob3JnLWluZGVudC1saW5lKQotCSAgICAgICAgICAgICAgICAgICAgICAgICAob3JnLWdldC1p bmRlbnRhdGlvbikpKSkKKwkgIChvcmctaW5kZW50LWxpbmUpCisJICAob3JnLWdldC1pbmRlbnRh dGlvbikpKSkKICAgICAoc2hvdWxkCiAgICAgICg9IDEKICAgICAgICAgKG9yZy10ZXN0LXdpdGgt dGVtcC10ZXh0Ci0JICIgIytCRUdJTl9DRU5URVJcbjxwb2ludD4gIENvbnRlbnRzXG4jK0VORF9D RU5URVIiCi0JIChvcmctaW5kZW50LWxpbmUpCi0JIChvcmctZ2V0LWluZGVudGF0aW9uKSkpKSkK KwkgICAgIiAjK0JFR0lOX0NFTlRFUlxuPHBvaW50PiAgQ29udGVudHNcbiMrRU5EX0NFTlRFUiIK KwkgIChvcmctaW5kZW50LWxpbmUpCisJICAob3JnLWdldC1pbmRlbnRhdGlvbikpKSkpCiAgIDs7 IFdpdGhpbiBjb2RlIHBhcnQgb2YgYSBzb3VyY2UgYmxvY2ssIHVzZSBsYW5ndWFnZSBtYWpvciBt b2RlIGlmCiAgIDs7IGBvcmctc3JjLXRhYi1hY3RzLW5hdGl2ZWx5JyBpcyBub24tbmlsLiAgT3Ro ZXJ3aXNlLCBpbmRlbnQKICAgOzsgYWNjb3JkaW5nIHRvIGxpbmUgYWJvdmUuCiAgIChzaG91bGQK ICAgICg9IDYKICAgICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dAotCSAgIiMrQkVHSU5fU1JD IGVtYWNzLWxpc3BcbiAoYW5kIEFcbjxwb2ludD5CKVxuIytFTkRfU1JDIgotCShsZXQgKChvcmct c3JjLXRhYi1hY3RzLW5hdGl2ZWx5IHQpCisgICAgICAgICAgIiMrQkVHSU5fU1JDIGVtYWNzLWxp c3BcbiAoYW5kIEFcbjxwb2ludD5CKVxuIytFTkRfU1JDIgorICAgICAgICAobGV0ICgob3JnLXNy Yy10YWItYWN0cy1uYXRpdmVseSB0KQogCSAgICAgIChvcmctZWRpdC1zcmMtY29udGVudC1pbmRl bnRhdGlvbiAwKSkKIAkgIChvcmctaW5kZW50LWxpbmUpKQotCShvcmctZ2V0LWluZGVudGF0aW9u KSkpKQorICAgICAgICAob3JnLWdldC1pbmRlbnRhdGlvbikpKSkKICAgKHNob3VsZAogICAgKD0g MQogICAgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0Ci0JICAiIytCRUdJTl9TUkMgZW1hY3Mt bGlzcFxuIChhbmQgQVxuPHBvaW50PkIpXG4jK0VORF9TUkMiCi0JKGxldCAoKG9yZy1zcmMtdGFi LWFjdHMtbmF0aXZlbHkgbmlsKQorICAgICAgICAgICIjK0JFR0lOX1NSQyBlbWFjcy1saXNwXG4g KGFuZCBBXG48cG9pbnQ+QilcbiMrRU5EX1NSQyIKKyAgICAgICAgKGxldCAoKG9yZy1zcmMtdGFi LWFjdHMtbmF0aXZlbHkgbmlsKQogCSAgICAgIChvcmctZWRpdC1zcmMtY29udGVudC1pbmRlbnRh dGlvbiAwKSkKIAkgIChvcmctaW5kZW50LWxpbmUpKQotCShvcmctZ2V0LWluZGVudGF0aW9uKSkp KQorICAgICAgICAob3JnLWdldC1pbmRlbnRhdGlvbikpKSkKICAgOzsgT3RoZXJ3aXNlLCBpbmRl bnQgbGlrZSB0aGUgZmlyc3Qgbm9uLWJsYW5rIGxpbmUgYWJvdmUuCiAgIChzaG91bGQKICAgICh6 ZXJvcAogICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dAotCSIjK0JFR0lOX0NFTlRFUlxubGlu ZTFcblxuPHBvaW50PiAgbGluZTJcbiMrRU5EX0NFTlRFUiIKKyAgICAgICAgIiMrQkVHSU5fQ0VO VEVSXG5saW5lMVxuXG48cG9pbnQ+ICBsaW5lMlxuIytFTkRfQ0VOVEVSIgogICAgICAgKG9yZy1p bmRlbnQtbGluZSkKICAgICAgIChvcmctZ2V0LWluZGVudGF0aW9uKSkpKQogICA7OyBBbGlnbiBu b2RlIHByb3BlcnRpZXMgYWNjb3JkaW5nIHRvIGBvcmctcHJvcGVydHktZm9ybWF0Jy4gIEhhbmRs ZQpAQCAtMTI2Niw4ICsxMjY2LDggQEAgT3RoZXJ3aXNlLCBldmFsdWF0ZSBSRVNVTFQgYXMgYW4g c2V4cCBhbmQgcmV0dXJuIGl0cyByZXN1bHQuIgogICAgIChzaG91bGQKICAgICAgKGVxdWFsICJB XG5CXG5DIgogCSAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIiBBXG5CXG4gIEMiCi0JICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAob3JnLWluZGVudC1yZWdpb24gKHBvaW50LW1pbikg KHBvaW50LW1heCkpCi0JICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLXN0cmlu ZykpKSkpCisJICAgICAgKG9yZy1pbmRlbnQtcmVnaW9uIChwb2ludC1taW4pIChwb2ludC1tYXgp KQorCSAgICAgIChidWZmZXItc3RyaW5nKSkpKSkKICAgOzsgSW5kZW50IGdyZWF0ZXIgZWxlbWVu dHMgYWxvbmcgd2l0aCB0aGVpciBjb250ZW50cy4KICAgKHNob3VsZAogICAgKGVxdWFsICIjK0JF R0lOX0NFTlRFUlxuQVxuQlxuIytFTkRfQ0VOVEVSIgpAQCAtMTI4NCw4ICsxMjg0LDggQEAgT3Ro ZXJ3aXNlLCBldmFsdWF0ZSBSRVNVTFQgYXMgYW4gc2V4cCBhbmQgcmV0dXJuIGl0cyByZXN1bHQu IgogICAgIChzaG91bGQKICAgICAgKGVxdWFsICIjK0JFR0lOX1ZFUlNFXG4gIEFcbiAgIEJcbiMr RU5EX1ZFUlNFIgogCSAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIiAjK0JFR0lOX1ZFUlNF XG4gIEFcbiAgIEJcbiAjK0VORF9WRVJTRSIKLQkgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChvcmctaW5kZW50LXJlZ2lvbiAocG9pbnQtbWluKSAocG9pbnQtbWF4KSkKLQkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChidWZmZXItc3RyaW5nKSkpKSkKKwkgICAgICAob3JnLWluZGVu dC1yZWdpb24gKHBvaW50LW1pbikgKHBvaW50LW1heCkpCisJICAgICAgKGJ1ZmZlci1zdHJpbmcp KSkpKQogICA7OyBJbmRlbnQgZXhhbXBsZSBibG9ja3MgYXMgYSBzaW5nbGUgYmxvY2ssIHVubGVz cyBpbmRlbnRhdGlvbgogICA7OyBzaG91bGQgYmUgcHJlc2VydmVkLiAgSW4gdGhpcyBjYXNlIG9u bHkgaW5kZW50IHRoZSBibG9jayBtYXJrZXJzLgogICAoc2hvdWxkCkBAIC0xMjk3LDIxICsxMjk3 LDIxIEBAIE90aGVyd2lzZSwgZXZhbHVhdGUgUkVTVUxUIGFzIGFuIHNleHAgYW5kIHJldHVybiBp dHMgcmVzdWx0LiIKICAgICAoc2hvdWxkCiAgICAgIChlcXVhbCAiIytCRUdJTl9FWEFNUExFXG4g QVxuICBCXG4jK0VORF9FWEFNUExFIgogCSAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIiAj K0JFR0lOX0VYQU1QTEVcbiAgQVxuICAgQlxuICMrRU5EX0VYQU1QTEUiCi0JICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAob3JnLWluZGVudC1yZWdpb24gKHBvaW50LW1pbikgKHBvaW50LW1h eCkpCi0JICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLXN0cmluZykpKSkKKwkg ICAgICAob3JnLWluZGVudC1yZWdpb24gKHBvaW50LW1pbikgKHBvaW50LW1heCkpCisJICAgICAg KGJ1ZmZlci1zdHJpbmcpKSkpCiAgICAgKHNob3VsZAogICAgICAoZXF1YWwgIiMrQkVHSU5fRVhB TVBMRSAtaVxuICBBXG4gICBCXG4jK0VORF9FWEFNUExFIgogCSAgICAob3JnLXRlc3Qtd2l0aC10 ZW1wLXRleHQKLQkgICAgICIgIytCRUdJTl9FWEFNUExFIC1pXG4gIEFcbiAgIEJcbiAjK0VORF9F WEFNUExFIgotCSAgICAgKG9yZy1pbmRlbnQtcmVnaW9uIChwb2ludC1taW4pIChwb2ludC1tYXgp KQotCSAgICAgKGJ1ZmZlci1zdHJpbmcpKSkpCisJICAgICAgICAiICMrQkVHSU5fRVhBTVBMRSAt aVxuICBBXG4gICBCXG4gIytFTkRfRVhBTVBMRSIKKwkgICAgICAob3JnLWluZGVudC1yZWdpb24g KHBvaW50LW1pbikgKHBvaW50LW1heCkpCisJICAgICAgKGJ1ZmZlci1zdHJpbmcpKSkpCiAgICAg KHNob3VsZAogICAgICAoZXF1YWwgIiMrQkVHSU5fRVhBTVBMRVxuICBBXG4gICBCXG4jK0VORF9F WEFNUExFIgogCSAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKLQkgICAgICIgIytCRUdJTl9F WEFNUExFXG4gIEFcbiAgIEJcbiAjK0VORF9FWEFNUExFIgotCSAgICAgKGxldCAoKG9yZy1zcmMt cHJlc2VydmUtaW5kZW50YXRpb24gdCkpCi0JICAgICAgIChvcmctaW5kZW50LXJlZ2lvbiAocG9p bnQtbWluKSAocG9pbnQtbWF4KSkpCi0JICAgICAoYnVmZmVyLXN0cmluZykpKSkpCisJICAgICAg ICAiICMrQkVHSU5fRVhBTVBMRVxuICBBXG4gICBCXG4gIytFTkRfRVhBTVBMRSIKKwkgICAgICAo bGV0ICgob3JnLXNyYy1wcmVzZXJ2ZS1pbmRlbnRhdGlvbiB0KSkKKwkgICAgICAgIChvcmctaW5k ZW50LXJlZ2lvbiAocG9pbnQtbWluKSAocG9pbnQtbWF4KSkpCisJICAgICAgKGJ1ZmZlci1zdHJp bmcpKSkpKQogICA7OyBUcmVhdCBleHBvcnQgYmxvY2tzIGFzIGEgd2hvbGUuCiAgIChzaG91bGQK ICAgIChlcXVhbCAiIytCRUdJTl9FWFBPUlQgbGF0ZXhcbiBBXG4gIEJcbiMrRU5EX0VYUE9SVCIK QEAgLTE0NzAsMjAgKzE0NzAsMjAgQEAgQ0xPQ0s6IFsyMDIyLTA5LTE3IHNhbS4gMTE6MDBdLS1b MjAyMi0wOS0xNyBzYW0uIDExOjQ2XSA9PiAgMDo0NiIKICAgOzsgQ2FsbGluZyBgTS1qJyB3aGVu IHBvaW50IGlzIG5vdCBpbiBhbiBPcmcgY29tbWVudDoKICAgKHNob3VsZAogICAgKGVxdWFsICIq IFNvbWUgaGVhZGluZ1xuIgotICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIiogU29tZSBoZWFk aW5nPHBvaW50PiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYWxsLWludGVyYWN0aXZl bHkgIydkZWZhdWx0LWluZGVudC1uZXctbGluZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg IChidWZmZXItc3RyaW5nKSkpKQorICAgICAgICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAi KiBTb21lIGhlYWRpbmc8cG9pbnQ+IgorICAgICAgICAgICAgKGNhbGwtaW50ZXJhY3RpdmVseSAj J2RlZmF1bHQtaW5kZW50LW5ldy1saW5lKQorICAgICAgICAgICAgKGJ1ZmZlci1zdHJpbmcpKSkp CiAgIDs7IENhbGxpbmcgYE0taicgd2hlbiBwb2ludCBpcyBpbiBhbiBPcmcgY29tbWVudDoKICAg KHNob3VsZAogICAgKGVxdWFsICIjIFNvbWUgT3JnIGNvbW1lbnRcbiMgIgotICAob3JnLXRlc3Qt d2l0aC10ZW1wLXRleHQgIiMgU29tZSBPcmcgY29tbWVudDxwb2ludD4iCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAoY2FsbC1pbnRlcmFjdGl2ZWx5ICMnZGVmYXVsdC1pbmRlbnQtbmV3LWxp bmUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAoYnVmZmVyLXN0cmluZykpKSkKKyAgICAg ICAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIiMgU29tZSBPcmcgY29tbWVudDxwb2ludD4i CisgICAgICAgICAgICAoY2FsbC1pbnRlcmFjdGl2ZWx5ICMnZGVmYXVsdC1pbmRlbnQtbmV3LWxp bmUpCisgICAgICAgICAgICAoYnVmZmVyLXN0cmluZykpKSkKICAgKHNob3VsZAogICAgKGVxdWFs ICIjIFNvbWUgT3JnXG4jIGNvbW1lbnQiCi0gIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAiIyBT b21lIE9yZyA8cG9pbnQ+Y29tbWVudCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYWxs LWludGVyYWN0aXZlbHkgIydkZWZhdWx0LWluZGVudC1uZXctbGluZSkKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgIChidWZmZXItc3RyaW5nKSkpKSkKKyAgICAgICAgICAob3JnLXRlc3Qtd2l0 aC10ZW1wLXRleHQgIiMgU29tZSBPcmcgPHBvaW50PmNvbW1lbnQiCisgICAgICAgICAgICAoY2Fs bC1pbnRlcmFjdGl2ZWx5ICMnZGVmYXVsdC1pbmRlbnQtbmV3LWxpbmUpCisgICAgICAgICAgICAo YnVmZmVyLXN0cmluZykpKSkpCiAKIAogDApAQCAtMTQ5MywxNiArMTQ5MywxNiBAQCBDTE9DSzog WzIwMjItMDktMTcgc2FtLiAxMTowMF0tLVsyMDIyLTA5LTE3IHNhbS4gMTE6NDZdID0+ICAwOjQ2 IgogICAiVGVzdCBgb3JnLWRlbGV0ZS1pbmRlbnRhdGlvbicgc3BlY2lmaWNhdGlvbnMuIgogICA7 OyBSZWd1bGFyIHRlc3QuCiAgIChzaG91bGQgKGVxdWFsICJmb28gYmFyIgotCQkob3JnLXRlc3Qt d2l0aC10ZW1wLXRleHQKLQkJICAgICJmb28gXG4gYmFyPHBvaW50PiIKLQkJICAob3JnLWRlbGV0 ZS1pbmRlbnRhdGlvbikKLQkJICAoYnVmZmVyLXN0cmluZykpKSkKKwkJIChvcmctdGVzdC13aXRo LXRlbXAtdGV4dAorCQkgICAgICJmb28gXG4gYmFyPHBvaW50PiIKKwkJICAgKG9yZy1kZWxldGUt aW5kZW50YXRpb24pCisJCSAgIChidWZmZXItc3RyaW5nKSkpKQogICA7OyBXaXRoIG9wdGlvbmFs IGFyZ3VtZW50LgogICAoc2hvdWxkIChlcXVhbCAiZm9vIGJhciIKLQkJKG9yZy10ZXN0LXdpdGgt dGVtcC10ZXh0Ci0JCSAgICAiZm9vPHBvaW50PiBcbiBiYXIiCi0JCSAgKG9yZy1kZWxldGUtaW5k ZW50YXRpb24gdCkKLQkJICAoYnVmZmVyLXN0cmluZykpKSkKKwkJIChvcmctdGVzdC13aXRoLXRl bXAtdGV4dAorCQkgICAgICJmb288cG9pbnQ+IFxuIGJhciIKKwkJICAgKG9yZy1kZWxldGUtaW5k ZW50YXRpb24gdCkKKwkJICAgKGJ1ZmZlci1zdHJpbmcpKSkpCiAgIDs7IEF0IGhlYWRsaW5lIHRl eHQgc2hvdWxkIGJlIGFwcGVuZGVkIHRvIHRoZSBoZWFkbGluZSB0ZXh0LgogICAoc2hvdWxkCiAg ICAoZXF1YWwiKiBmb28gYmFyIDp0YWc6IgpAQCAtMTUxNSw3ICsxNTE1LDcgQEAgQ0xPQ0s6IFsy MDIyLTA5LTE3IHNhbS4gMTE6MDBdLS1bMjAyMi0wOS0xNyBzYW0uIDExOjQ2XSA9PiAgMDo0NiIK ICAgIChlcXVhbCAiKiBmb28gYmFyIDp0YWc6IgogCSAgKGxldCAob3JnLWF1dG8tYWxpZ24tdGFn cykKIAkgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0Ci0JCSIqIGZvbyA8cG9pbnQ+OnRhZzpc biBiYXIiCisJICAgICAgICAiKiBmb28gPHBvaW50Pjp0YWc6XG4gYmFyIgogCSAgICAgIChvcmct ZGVsZXRlLWluZGVudGF0aW9uIHQpCiAJICAgICAgKGJ1ZmZlci1zdHJpbmcpKSkpKSkKIApAQCAt MjY2OCw5ICsyNjY4LDkgQEAgdGVzdCA8cG9pbnQ+CiAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRl eHQgIiogSGVhZGxpbmUgOkFSQ0hJVkU6XG4qKiBMZXZlbCAyXG5Cb2R5IgogICAgICAoZ290by1j aGFyIChwb2ludC1tYXgpKQogICAgICAob3JnLWluLWFyY2hpdmVkLWhlYWRpbmctcCB0KSkpCi0g ICA7OyBBcmNoaXZlIHRhZyBjb250YWluaW5nIEFSQ0hJVkUgYXMgc3Vic3RyaW5nCi0gICAoc2hv dWxkLW5vdAotICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAiKiBIZWFkbGluZSA6Tk9BUkNI SVZFOlxuKiogTGV2ZWwgMlxuQm9keSIKKyAgOzsgQXJjaGl2ZSB0YWcgY29udGFpbmluZyBBUkNI SVZFIGFzIHN1YnN0cmluZworICAoc2hvdWxkLW5vdAorICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10 ZXh0ICIqIEhlYWRsaW5lIDpOT0FSQ0hJVkU6XG4qKiBMZXZlbCAyXG5Cb2R5IgogICAgICAoZ290 by1jaGFyIChwb2ludC1tYXgpKQogICAgICAob3JnLWluLWFyY2hpdmVkLWhlYWRpbmctcCkpKSkK IApAQCAtMjk2Myw3ICsyOTYzLDcgQEAgU0NIRURVTEVEOiA8MjAxNC0wMy0wNCB0dWUuPiIKIAkg ICAgICAob3JnLW1hcC1lbnRyaWVzICMncG9pbnQgIlRFU1QhPSoxIikpKSkKICAgICA7OyBQcm9w ZXJ0eSBtYXRjaGVzIG9uIG5hbWVzIGNvbnRhaW5pbmcgcXVvdGVkIGNoYXJhY3RlcnMuCiAgICAg KG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0Ci0gICAgICIKKyAgICAgICAgIgogKiBIMSA6QkFSOgog OlBST1BFUlRJRVM6CiA6VEVTVC1GT086IDEKQEAgLTI5ODEsMTEgKzI5ODEsMTEgQEAgU0NIRURV TEVEOiA8MjAxNC0wMy0wNCB0dWUuPiIKIDotRk9POiAyCiA6RU5EOgogKiBINSA6VEVTVDoiCi0g ICAgIChzaG91bGQgKGVxdWFsICcoMikgKG9yZy1tYXAtZW50cmllcyAjJ3BvaW50ICJURVNUXFwt Rk9PIT0qMC1GT08iKSkpCi0gICAgIChzaG91bGQgKGVxdWFsICcoMikgKG9yZy1tYXAtZW50cmll cyAjJ3BvaW50ICItRk9PK1RFU1RcXC1GT08hPSowIikpKQotICAgICAoc2hvdWxkIChlcXVhbCAn KDg4KSAob3JnLW1hcC1lbnRyaWVzICMncG9pbnQgIlxcLUZPTyE9KjAtRk9PIikpKQotICAgICAo c2hvdWxkIChlcXVhbCAnKDg4KSAob3JnLW1hcC1lbnRyaWVzICMncG9pbnQgIi1GT08rXFwtRk9P IT0qMCIpKSkKLSAgICAgKHNob3VsZCAoZXF1YWwgJyg4OCkgKG9yZy1tYXAtZW50cmllcyAjJ3Bv aW50ICItVEVTVC1GT08tVEVTVFxcLUZPTz0xIikpKSkKKyAgICAgIChzaG91bGQgKGVxdWFsICco MikgKG9yZy1tYXAtZW50cmllcyAjJ3BvaW50ICJURVNUXFwtRk9PIT0qMC1GT08iKSkpCisgICAg ICAoc2hvdWxkIChlcXVhbCAnKDIpIChvcmctbWFwLWVudHJpZXMgIydwb2ludCAiLUZPTytURVNU XFwtRk9PIT0qMCIpKSkKKyAgICAgIChzaG91bGQgKGVxdWFsICcoODgpIChvcmctbWFwLWVudHJp ZXMgIydwb2ludCAiXFwtRk9PIT0qMC1GT08iKSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAnKDg4 KSAob3JnLW1hcC1lbnRyaWVzICMncG9pbnQgIi1GT08rXFwtRk9PIT0qMCIpKSkKKyAgICAgIChz aG91bGQgKGVxdWFsICcoODgpIChvcmctbWFwLWVudHJpZXMgIydwb2ludCAiLVRFU1QtRk9PLVRF U1RcXC1GT089MSIpKSkpCiAgICAgOzsgTXVsdGlwbGUgY3JpdGVyaWEuCiAgICAgKHNob3VsZAog ICAgICAoZXF1YWwgJygyMykKQEAgLTM0NDEsNyArMzQ0MSw3IEBAIExldOKAmXMgc3RvcCBoZXJl CiAgICAobGV0ICgoZmlyc3QtbGluZQogCSAgIioqIFRPRE8gWyNBXSBbL10gIFRlc3QgWzEvMl0g WzMzJV0gMSBcdCAgMiBbJV0gOndvcms6dXJnZW50OiAiKSkKICAgICAgKG9yZy10ZXN0LXdpdGgt dGVtcC10ZXh0Ci0JIChjb25jYXQgZmlyc3QtbGluZSAiXG5Gb28gQmFyXG48cG9pbnQ+W1sqVGVz dCAxIDJdXSIpCisgICAgICAgICAoY29uY2F0IGZpcnN0LWxpbmUgIlxuRm9vIEJhclxuPHBvaW50 PltbKlRlc3QgMSAyXV0iKQogICAgICAgIChsZXQgKChvcmctbGluay1zZWFyY2gtbXVzdC1tYXRj aC1leGFjdC1oZWFkbGluZSBuaWwpCiAJICAgICAob3JnLXRvZG8tcmVnZXhwICJUT0RPIikpCiAJ IChvcmctb3Blbi1hdC1wb2ludCkpCkBAIC0zNTI4LDEyICszNTI4LDEyIEBAIEZvbyBCYXIKICAg IkRvZXMgYG9yZy1vcGVuLWF0LXBvaW50JyBvcGVuIGxpbmsgaW4gYSBjb21tZW50ZWQgbGluZT8i CiAgIChzaG91bGQKICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dAotICAgICI8PHRvcD4+XG4j IDxwb2ludD5bW3RvcF1dIgotICAgIChvcmctb3Blbi1hdC1wb2ludCkgdCkpCisgICAgICAgIjw8 dG9wPj5cbiMgPHBvaW50PltbdG9wXV0iCisgICAgIChvcmctb3Blbi1hdC1wb2ludCkgdCkpCiAg IChzaG91bGQKICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dAotICAgICIqIEhcbjw8dG9wPj5c biMgPHBvaW50PltbdG9wXV0iCi0gICAgKG9yZy1vcGVuLWF0LXBvaW50KSB0KSkpCisgICAgICAg IiogSFxuPDx0b3A+PlxuIyA8cG9pbnQ+W1t0b3BdXSIKKyAgICAgKG9yZy1vcGVuLWF0LXBvaW50 KSB0KSkpCiAKIChlcnQtZGVmdGVzdCB0ZXN0LW9yZy9vcGVuLWF0LXBvaW50L2lubGluZS1pbWFn ZSAoKQogICAiVGVzdCBgb3JnLW9wZW4tYXQtcG9pbnQnIG9uIG5lc3RlZCBsaW5rcy4iCkBAIC0z NTgwLDcgKzM1ODAsNyBAQCBGb28gQmFyCiAJIDs7IHBvc3NpYmx5IHRyeWluZyB0byBvcGVuIGF0 dGFjaG1lbnRzIHdoaWNoIHdpbGwgcmV0dXJuIGFuCiAJIDs7IGVycm9yIGlmIHRoZXJlIGlzbid0 IGFuIGF0dGFjaG1lbnQuIFN1cHByZXNzIHRoYXQgZXJyb3IuCiAJIChpZ25vcmUtZXJyb3JzCi0J ICAgICAob3JnLW9wZW4tYXQtcG9pbnQpKQorCSAgIChvcmctb3Blbi1hdC1wb2ludCkpCiAJIG5p bCkpKSkpCiAKIAwKQEAgLTM2MTUsNyArMzYxNSw3IEBAIEZvbyBCYXIKICAgKHNob3VsZAogICAg KGxldCAoKG9yZy1jdXN0b20tcHJvcGVydGllcyAnKCJGT08iICJCQVIiKSkpCiAgICAgIChvcmct dGVzdC13aXRoLXRlbXAtdGV4dAotCSAiKiBIXG46UFJPUEVSVElFUzpcbjxwb2ludD46Rk9POiB2 YWxcbjpQOiAxXG46QkFSOiBiYXpcbjpFTkQ6XG4iCisgICAgICAgICAiKiBIXG46UFJPUEVSVElF Uzpcbjxwb2ludD46Rk9POiB2YWxcbjpQOiAxXG46QkFSOiBiYXpcbjpFTkQ6XG4iCiAgICAgICAg KG9yZy1mb2xkLXJldmVhbCkKICAgICAgICAob3JnLXRvZ2dsZS1jdXN0b20tcHJvcGVydGllcy12 aXNpYmlsaXR5KQogICAgICAgIChhbmQgKG9yZy1pbnZpc2libGUtcDIpCkBAIC0zNjM2LDcgKzM2 MzYsNyBAQCBGb28gQmFyCiAgIChzaG91bGQtbm90CiAgICAobGV0ICgob3JnLWN1c3RvbS1wcm9w ZXJ0aWVzICcoIkEiKSkpCiAgICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dAotCSAiKiBIXG46 UFJPUEVSVElFUzpcbjpBOiAxXG46RU5EOlxuXG46UFJPUEVSVElFUzpcbjxwb2ludD46QTogMlxu OkVORDoiCisgICAgICAgICAiKiBIXG46UFJPUEVSVElFUzpcbjpBOiAxXG46RU5EOlxuXG46UFJP UEVSVElFUzpcbjxwb2ludD46QTogMlxuOkVORDoiCiAgICAgICAgKG9yZy1mb2xkLXJldmVhbCkK ICAgICAgICAob3JnLXRvZ2dsZS1jdXN0b20tcHJvcGVydGllcy12aXNpYmlsaXR5KQogICAgICAg IChvcmctaW52aXNpYmxlLXAyKSkpKSkKQEAgLTM3MDIsNyArMzcwMiw3IEBAIEZvbyBCYXIKIAkJ IChyZWdpb24tYmVnaW5uaW5nKSkpKSkpKQogCiAKLSAMCisMCiA7OzsgTWlzY2VsbGFuZW91cwog CiAoZXJ0LWRlZnRlc3QgdGVzdC1vcmcvc29ydC1lbnRyaWVzICgpCkBAIC01MDA0LDkgKzUwMDQs OSBAQCBhc2QKICAgKHNob3VsZAogICAgKD0gMgogICAgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10 ZXh0Ci0JICAiKiBIXG46UFJPUEVSVElFUzpcbjpwcm9wOiB2YWx1ZVxuOkVORDpcbjxwb2ludD5Q MSIKLQkob3JnLWJhY2t3YXJkLXBhcmFncmFwaCkKLQkob3JnLWN1cnJlbnQtbGluZSkpKSkKKyAg ICAgICAgICAiKiBIXG46UFJPUEVSVElFUzpcbjpwcm9wOiB2YWx1ZVxuOkVORDpcbjxwb2ludD5Q MSIKKyAgICAgICAgKG9yZy1iYWNrd2FyZC1wYXJhZ3JhcGgpCisgICAgICAgIChvcmctY3VycmVu dC1saW5lKSkpKQogICA7OyBJbiBhIHBsYWluIGxpc3Qgd2l0aCBvbmUgaXRlbSBldmVyeSBsaW5l LCBza2lwIHRoZSB3aG9sZSBsaXN0LAogICA7OyBldmVuIHdpdGggcG9pbnQgaW4gdGhlIG1pZGRs ZSBvZiB0aGUgbGlzdC4KICAgKHNob3VsZApAQCAtNTA0MywyMSArNTA0MywyMSBAQCBhc2QKICAg KHNob3VsZAogICAgKD0gMQogICAgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0Ci0JICAiIyti ZWdpbl9jb21tZW50XG48cG9pbnQ+TDFcblxuTDJcblxuTDNcbiMrZW5kX2NvbW1lbnQiCi0JKG9y Zy1iYWNrd2FyZC1wYXJhZ3JhcGgpCi0JKG9yZy1jdXJyZW50LWxpbmUpKSkpCisgICAgICAgICAg IiMrYmVnaW5fY29tbWVudFxuPHBvaW50PkwxXG5cbkwyXG5cbkwzXG4jK2VuZF9jb21tZW50Igor ICAgICAgICAob3JnLWJhY2t3YXJkLXBhcmFncmFwaCkKKyAgICAgICAgKG9yZy1jdXJyZW50LWxp bmUpKSkpCiAgIChzaG91bGQKICAgICg9IDIKICAgICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4 dAotCSAgIiMrYmVnaW5fdmVyc2VcbkwxXG5cbjxwb2ludD5MMlxuXG5MM1xuIytlbmRfdmVyc2Ui Ci0JKG9yZy1iYWNrd2FyZC1wYXJhZ3JhcGgpCi0JKG9yZy1jdXJyZW50LWxpbmUpKSkpCisgICAg ICAgICAgIiMrYmVnaW5fdmVyc2VcbkwxXG5cbjxwb2ludD5MMlxuXG5MM1xuIytlbmRfdmVyc2Ui CisgICAgICAgIChvcmctYmFja3dhcmQtcGFyYWdyYXBoKQorICAgICAgICAob3JnLWN1cnJlbnQt bGluZSkpKSkKICAgKHNob3VsZAogICAgKD0gMwogICAgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10 ZXh0Ci0JICAiIytiZWdpbl9zcmMgZW1hY3MtbGlzcFxuTDFcblxuTDJcblxuPHBvaW50PkwzXG4j K2VuZF9zcmMiCi0JKG9yZy1iYWNrd2FyZC1wYXJhZ3JhcGgpCi0JKG9yZy1jdXJyZW50LWxpbmUp KSkpCisgICAgICAgICAgIiMrYmVnaW5fc3JjIGVtYWNzLWxpc3BcbkwxXG5cbkwyXG5cbjxwb2lu dD5MM1xuIytlbmRfc3JjIgorICAgICAgICAob3JnLWJhY2t3YXJkLXBhcmFncmFwaCkKKyAgICAg ICAgKG9yZy1jdXJyZW50LWxpbmUpKSkpCiAgIDs7IFdoZW4gY2FsbGVkIGZyb20gdGhlIG9wZW5p bmcgbGluZSBpdHNlbGYsIGhvd2V2ZXIsIG1vdmUgdG8KICAgOzsgYmVnaW5uaW5nIG9mIGJsb2Nr LgogICAoc2hvdWxkCkBAIC01MzM1LDcgKzUzMzUsNyBAQCBPdXRzaWRlLiIKICAgIChlcXVhbAog ICAgICIjK0JFR0lOX0NFTlRFUlxuIytCOiAyXG4jK0E6IDFcbiMrRU5EX0NFTlRFUiIKICAgICAo b3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKLQkiIytCRUdJTl9DRU5URVJcbiMrQTogMVxuPHBvaW50 PiMrQjogMlxuIytFTkRfQ0VOVEVSIgorICAgICAgICAiIytCRUdJTl9DRU5URVJcbiMrQTogMVxu PHBvaW50PiMrQjogMlxuIytFTkRfQ0VOVEVSIgogICAgICAgKG9yZy1kcmFnLWVsZW1lbnQtYmFj a3dhcmQpCiAgICAgICAoYnVmZmVyLXN0cmluZykpKSkKICAgOzsgUHJlc2VydmUgYmxhbmsgbGlu ZXMuCkBAIC01Mzc1LDcgKzUzNzUsNyBAQCBPdXRzaWRlLiIKICAgIChlcXVhbCAnKCg2MyAuIDgy KSAoMjYgLiA0OCkpCiAgICAgICAgICAgKGxldCAoKG9yZy1mb2xkLWNvcmUtc3R5bGUgJ3RleHQt cHJvcGVydGllcykpCiAJICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dAotICAgICAgICAgICAg ICIKKyAgICAgICAgICAgICAgICAiCiAjK0JFR0lOX0NFTlRFUgogVGV4dC4KICMrRU5EX0NFTlRF UgpAQCAtNTM4MywyMyArNTM4MywyMyBAQCBUZXh0LgogICAjK0JFR0lOX1FVT1RFCiAgIFRleHQu CiAgICMrRU5EX1FVT1RFIgotCSAgICAgKHdoaWxlIChzZWFyY2gtZm9yd2FyZCAiQkVHSU5fIiBu aWwgdCkgKG9yZy1jeWNsZSkpCi0JICAgICAoc2VhcmNoLWJhY2t3YXJkICItIGl0ZW0gMSIpCi0J ICAgICAob3JnLWRyYWctZWxlbWVudC1iYWNrd2FyZCkKLSAgICAgICAgICAgICAobGV0IChyZWdp b25zKQotICAgICAgICAgICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKLSAgICAgICAgICAg ICAgICh3aGlsZSAoPCAocG9pbnQpIChwb2ludC1tYXgpKQotCSAgICAgICAgIChsZXQgKChyZWdp b24gKG9yZy1mb2xkLWdldC1yZWdpb24tYXQtcG9pbnQpKSkKLSAgICAgICAgICAgICAgICAgICAo aWYgKG5vdCByZWdpb24pCi0gICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKG9yZy1m b2xkLW5leHQtZm9sZGluZy1zdGF0ZS1jaGFuZ2UpKQotICAgICAgICAgICAgICAgICAgICAgKGdv dG8tY2hhciAoY2RyIHJlZ2lvbikpCi0gICAgICAgICAgICAgICAgICAgICAocHVzaCByZWdpb24g cmVnaW9ucykpKSkKLSAgICAgICAgICAgICAgIHJlZ2lvbnMpKSkpKQorCSAgICAgICh3aGlsZSAo c2VhcmNoLWZvcndhcmQgIkJFR0lOXyIgbmlsIHQpIChvcmctY3ljbGUpKQorCSAgICAgIChzZWFy Y2gtYmFja3dhcmQgIi0gaXRlbSAxIikKKwkgICAgICAob3JnLWRyYWctZWxlbWVudC1iYWNrd2Fy ZCkKKyAgICAgICAgICAgICAgKGxldCAocmVnaW9ucykKKyAgICAgICAgICAgICAgICAoZ290by1j aGFyIChwb2ludC1taW4pKQorICAgICAgICAgICAgICAgICh3aGlsZSAoPCAocG9pbnQpIChwb2lu dC1tYXgpKQorCSAgICAgICAgICAobGV0ICgocmVnaW9uIChvcmctZm9sZC1nZXQtcmVnaW9uLWF0 LXBvaW50KSkpCisgICAgICAgICAgICAgICAgICAgIChpZiAobm90IHJlZ2lvbikKKyAgICAgICAg ICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKG9yZy1mb2xkLW5leHQtZm9sZGluZy1zdGF0ZS1j aGFuZ2UpKQorICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKGNkciByZWdpb24pKQor ICAgICAgICAgICAgICAgICAgICAgIChwdXNoIHJlZ2lvbiByZWdpb25zKSkpKQorICAgICAgICAg ICAgICAgIHJlZ2lvbnMpKSkpKQogICAoc2hvdWxkCiAgICAoZXF1YWwgJygoMjYgLiA0OCkgKDYz IC4gODIpKQogICAgICAgICAgIChsZXQgKChvcmctZm9sZC1jb3JlLXN0eWxlICdvdmVybGF5cykp CiAJICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dAotICAgICAgICAgICAgICIKKyAgICAgICAg ICAgICAgICAiCiAjK0JFR0lOX0NFTlRFUgogVGV4dC4KICMrRU5EX0NFTlRFUgpAQCAtNTQwNywx MSArNTQwNywxMSBAQCBUZXh0LgogICAjK0JFR0lOX1FVT1RFCiAgIFRleHQuCiAgICMrRU5EX1FV T1RFIgotICAgICAgICAgICAgICh3aGlsZSAoc2VhcmNoLWZvcndhcmQgIkJFR0lOXyIgbmlsIHQp IChvcmctY3ljbGUpKQotCSAgICAgKHNlYXJjaC1iYWNrd2FyZCAiLSBpdGVtIDEiKQotCSAgICAg KG9yZy1kcmFnLWVsZW1lbnQtYmFja3dhcmQpCi0JICAgICAobWFwY2FyIChsYW1iZGEgKG92KSAo Y29ucyAob3ZlcmxheS1zdGFydCBvdikgKG92ZXJsYXktZW5kIG92KSkpCi0JCSAgICAgKG92ZXJs YXlzLWluIChwb2ludC1taW4pIChwb2ludC1tYXgpKSkpKSkpCisgICAgICAgICAgICAgICh3aGls ZSAoc2VhcmNoLWZvcndhcmQgIkJFR0lOXyIgbmlsIHQpIChvcmctY3ljbGUpKQorCSAgICAgIChz ZWFyY2gtYmFja3dhcmQgIi0gaXRlbSAxIikKKwkgICAgICAob3JnLWRyYWctZWxlbWVudC1iYWNr d2FyZCkKKwkgICAgICAobWFwY2FyIChsYW1iZGEgKG92KSAoY29ucyAob3ZlcmxheS1zdGFydCBv dikgKG92ZXJsYXktZW5kIG92KSkpCisJCSAgICAgIChvdmVybGF5cy1pbiAocG9pbnQtbWluKSAo cG9pbnQtbWF4KSkpKSkpKQogICA7OyBQYXRob2xvZ2ljYWwgY2FzZTogaGFuZGxlIGNhbGwgd2l0 aCBwb2ludCBpbiBibGFuayBsaW5lcyByaWdodAogICA7OyBhZnRlciBhIGhlYWRsaW5lLgogICAo c2hvdWxkCkBAIC01NDUwLDcgKzU0NTAsNyBAQCBUZXh0LgogICA7OyA1LiBQcmVzZXJ2ZSB2aXNp YmlsaXR5IG9mIGVsZW1lbnRzIGFuZCB0aGVpciBjb250ZW50cy4KICAgKGxldCAoKG9yZy1mb2xk LWNvcmUtc3R5bGUgJ3RleHQtcHJvcGVydGllcykpCiAgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10 ZXh0Ci0gICAgICIKKyAgICAgICAgIgogIytCRUdJTl9DRU5URVIKIFRleHQuCiAjK0VORF9DRU5U RVIKQEAgLTU0NTgsMjQgKzU0NTgsMjQgQEAgVGV4dC4KICAgIytCRUdJTl9RVU9URQogICBUZXh0 LgogICAjK0VORF9RVU9URSIKLSAgICAgKHdoaWxlIChzZWFyY2gtZm9yd2FyZCAiQkVHSU5fIiBu aWwgdCkgKG9yZy1jeWNsZSkpCi0gICAgIChzZWFyY2gtYmFja3dhcmQgIiMrQkVHSU5fQ0VOVEVS IikKLSAgICAgKG9yZy1kcmFnLWVsZW1lbnQtZm9yd2FyZCkKLSAgICAgKHNob3VsZAotICAgICAg KGVxdWFsCi0gICAgICAgJygoNjMgLiA4MikgKDI2IC4gNDgpKQotICAgICAgIChsZXQgKHJlZ2lv bnMpCi0gICAgICAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQotICAgICAgICAgKHdoaWxlICg8 IChwb2ludCkgKHBvaW50LW1heCkpCi0JICAgKGxldCAoKHJlZ2lvbiAob3JnLWZvbGQtZ2V0LXJl Z2lvbi1hdC1wb2ludCkpKQotICAgICAgICAgICAgIChpZiAobm90IHJlZ2lvbikKLSAgICAgICAg ICAgICAgICAgKGdvdG8tY2hhciAob3JnLWZvbGQtbmV4dC1mb2xkaW5nLXN0YXRlLWNoYW5nZSkp Ci0gICAgICAgICAgICAgICAoZ290by1jaGFyIChjZHIgcmVnaW9uKSkKLSAgICAgICAgICAgICAg IChwdXNoIHJlZ2lvbiByZWdpb25zKSkpKQotICAgICAgICAgcmVnaW9ucykpKSkpCisgICAgICAo d2hpbGUgKHNlYXJjaC1mb3J3YXJkICJCRUdJTl8iIG5pbCB0KSAob3JnLWN5Y2xlKSkKKyAgICAg IChzZWFyY2gtYmFja3dhcmQgIiMrQkVHSU5fQ0VOVEVSIikKKyAgICAgIChvcmctZHJhZy1lbGVt ZW50LWZvcndhcmQpCisgICAgICAoc2hvdWxkCisgICAgICAgKGVxdWFsCisgICAgICAgICcoKDYz IC4gODIpICgyNiAuIDQ4KSkKKyAgICAgICAgKGxldCAocmVnaW9ucykKKyAgICAgICAgICAoZ290 by1jaGFyIChwb2ludC1taW4pKQorICAgICAgICAgICh3aGlsZSAoPCAocG9pbnQpIChwb2ludC1t YXgpKQorCSAgICAobGV0ICgocmVnaW9uIChvcmctZm9sZC1nZXQtcmVnaW9uLWF0LXBvaW50KSkp CisgICAgICAgICAgICAgIChpZiAobm90IHJlZ2lvbikKKyAgICAgICAgICAgICAgICAgIChnb3Rv LWNoYXIgKG9yZy1mb2xkLW5leHQtZm9sZGluZy1zdGF0ZS1jaGFuZ2UpKQorICAgICAgICAgICAg ICAgIChnb3RvLWNoYXIgKGNkciByZWdpb24pKQorICAgICAgICAgICAgICAgIChwdXNoIHJlZ2lv biByZWdpb25zKSkpKQorICAgICAgICAgIHJlZ2lvbnMpKSkpKQogICAobGV0ICgob3JnLWZvbGQt Y29yZS1zdHlsZSAnb3ZlcmxheXMpKQogICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dAotICAg ICAiCisgICAgICAgICIKICMrQkVHSU5fQ0VOVEVSCiBUZXh0LgogIytFTkRfQ0VOVEVSCkBAIC01 NDgzLDE0ICs1NDgzLDE0IEBAIFRleHQuCiAgICMrQkVHSU5fUVVPVEUKICAgVGV4dC4KICAgIytF TkRfUVVPVEUiCi0gICAgICh3aGlsZSAoc2VhcmNoLWZvcndhcmQgIkJFR0lOXyIgbmlsIHQpIChv cmctY3ljbGUpKQotICAgICAoc2VhcmNoLWJhY2t3YXJkICIjK0JFR0lOX0NFTlRFUiIpCi0gICAg IChvcmctZHJhZy1lbGVtZW50LWZvcndhcmQpCi0gICAgIChzaG91bGQKLSAgICAgIChlcXVhbAot ICAgICAgICcoKDI2IC4gNDgpICg2MyAuIDgyKSkKLSAgICAgICAobWFwY2FyIChsYW1iZGEgKG92 KSAoY29ucyAob3ZlcmxheS1zdGFydCBvdikgKG92ZXJsYXktZW5kIG92KSkpCi0JICAgICAgIChv dmVybGF5cy1pbiAocG9pbnQtbWluKSAocG9pbnQtbWF4KSkpKSkpKSkKKyAgICAgICh3aGlsZSAo c2VhcmNoLWZvcndhcmQgIkJFR0lOXyIgbmlsIHQpIChvcmctY3ljbGUpKQorICAgICAgKHNlYXJj aC1iYWNrd2FyZCAiIytCRUdJTl9DRU5URVIiKQorICAgICAgKG9yZy1kcmFnLWVsZW1lbnQtZm9y d2FyZCkKKyAgICAgIChzaG91bGQKKyAgICAgICAoZXF1YWwKKyAgICAgICAgJygoMjYgLiA0OCkg KDYzIC4gODIpKQorICAgICAgICAobWFwY2FyIChsYW1iZGEgKG92KSAoY29ucyAob3ZlcmxheS1z dGFydCBvdikgKG92ZXJsYXktZW5kIG92KSkpCisJICAgICAgICAob3ZlcmxheXMtaW4gKHBvaW50 LW1pbikgKHBvaW50LW1heCkpKSkpKSkpCiAKIChlcnQtZGVmdGVzdCB0ZXN0LW9yZy9uZXh0LWJs b2NrICgpCiAgICJUZXN0IGBvcmctbmV4dC1ibG9jaycgc3BlY2lmaWNhdGlvbnMuIgpAQCAtNTg4 MSwxMCArNTg4MSwxMCBAQCBUZXh0LgogICAoc2hvdWxkCiAgICAoemVyb3AKICAgICAob3JnLXRl c3Qtd2l0aC10ZW1wLXRleHQKLQkiKiBIXG4jK0JFR0lOX1NSQyBlbWFjcy1saXNwIC1pXG4oKyAx IDEpXG4jK0VORF9TUkMiCisgICAgICAgICIqIEhcbiMrQkVHSU5fU1JDIGVtYWNzLWxpc3AgLWlc bigrIDEgMSlcbiMrRU5EX1NSQyIKICAgICAgIChsZXQgKChvcmctYWRhcHQtaW5kZW50YXRpb24g dCkKIAkgICAgKG9yZy1zcmMtcHJlc2VydmUtaW5kZW50YXRpb24gbmlsKSkKLQkob3JnLWRlbW90 ZSkpCisgICAgICAgIChvcmctZGVtb3RlKSkKICAgICAgIChmb3J3YXJkLWxpbmUgMikKICAgICAg IChvcmctZ2V0LWluZGVudGF0aW9uKSkpKSkKIApAQCAtNjA2MCw0MSArNjA2MCw0MSBAQCBUZXh0 LgogICAoc2hvdWxkLW5vdAogICAgKHplcm9wCiAgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0 Ci0JIioqIEhcbiAjK0JFR0lOX1NSQyBlbWFjcy1saXNwXG4oKyAxIDEpXG4gIytFTkRfU1JDIgor ICAgICAgICAiKiogSFxuICMrQkVHSU5fU1JDIGVtYWNzLWxpc3BcbigrIDEgMSlcbiAjK0VORF9T UkMiCiAgICAgICAobGV0ICgob3JnLWFkYXB0LWluZGVudGF0aW9uIHQpCiAJICAgIChvcmctc3Jj LXByZXNlcnZlLWluZGVudGF0aW9uIG5pbCkKIAkgICAgKG9yZy1vZGQtbGV2ZWxzLW9ubHkgbmls KSkKLQkob3JnLXByb21vdGUpKQorICAgICAgICAob3JnLXByb21vdGUpKQogICAgICAgKGZvcndh cmQtbGluZSkKICAgICAgIChvcmctZ2V0LWluZGVudGF0aW9uKSkpKQogICAoc2hvdWxkCiAgICAo emVyb3AKICAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKLQkiKiogSFxuICMrQkVHSU5fRVhB TVBMRVxuQ29udGVudHNcbiAjK0VORF9FWEFNUExFIgorICAgICAgICAiKiogSFxuICMrQkVHSU5f RVhBTVBMRVxuQ29udGVudHNcbiAjK0VORF9FWEFNUExFIgogICAgICAgKGxldCAoKG9yZy1hZGFw dC1pbmRlbnRhdGlvbiB0KQogCSAgICAob3JnLXNyYy1wcmVzZXJ2ZS1pbmRlbnRhdGlvbiB0KQog CSAgICAob3JnLW9kZC1sZXZlbHMtb25seSBuaWwpKQotCShvcmctcHJvbW90ZSkpCisgICAgICAg IChvcmctcHJvbW90ZSkpCiAgICAgICAoZm9yd2FyZC1saW5lKQogICAgICAgKG9yZy1nZXQtaW5k ZW50YXRpb24pKSkpCiAgIChzaG91bGQKICAgICh6ZXJvcAogICAgIChvcmctdGVzdC13aXRoLXRl bXAtdGV4dAotCSIqKiBIXG4gIytCRUdJTl9TUkMgZW1hY3MtbGlzcFxuKCsgMSAxKVxuICMrRU5E X1NSQyIKKyAgICAgICAgIioqIEhcbiAjK0JFR0lOX1NSQyBlbWFjcy1saXNwXG4oKyAxIDEpXG4g IytFTkRfU1JDIgogICAgICAgKGxldCAoKG9yZy1hZGFwdC1pbmRlbnRhdGlvbiB0KQogCSAgICAo b3JnLXNyYy1wcmVzZXJ2ZS1pbmRlbnRhdGlvbiB0KQogCSAgICAob3JnLW9kZC1sZXZlbHMtb25s eSBuaWwpKQotCShvcmctcHJvbW90ZSkpCisgICAgICAgIChvcmctcHJvbW90ZSkpCiAgICAgICAo Zm9yd2FyZC1saW5lKQogICAgICAgKG9yZy1nZXQtaW5kZW50YXRpb24pKSkpCiAgIChzaG91bGQK ICAgICh6ZXJvcAogICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dAotCSIqKiBIXG4gIytCRUdJ Tl9TUkMgZW1hY3MtbGlzcCAtaVxuKCsgMSAxKVxuICMrRU5EX1NSQyIKKyAgICAgICAgIioqIEhc biAjK0JFR0lOX1NSQyBlbWFjcy1saXNwIC1pXG4oKyAxIDEpXG4gIytFTkRfU1JDIgogICAgICAg KGxldCAoKG9yZy1hZGFwdC1pbmRlbnRhdGlvbiB0KQogCSAgICAob3JnLXNyYy1wcmVzZXJ2ZS1p bmRlbnRhdGlvbiBuaWwpCiAJICAgIChvcmctb2RkLWxldmVscy1vbmx5IG5pbCkpCi0JKG9yZy1w cm9tb3RlKSkKKyAgICAgICAgKG9yZy1wcm9tb3RlKSkKICAgICAgIChmb3J3YXJkLWxpbmUpCiAg ICAgICAob3JnLWdldC1pbmRlbnRhdGlvbikpKSkpCiAKQEAgLTYxNDMsMTkgKzYxNDMsMTkgQEAg VGV4dC4KICAgKHdoZW4gKGZlYXR1cmVwICdvcmctaW5saW5ldGFzaykKICAgICAoc2hvdWxkCiAg ICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dAotCSAiKioqIElubGluZXRhc2tcbjxwb2ludD5E RUFETElORTogPDIwMTQtMDMtMDQgdHVlLj5cbioqKiBFTkQiCisgICAgICAgICAiKioqIElubGlu ZXRhc2tcbjxwb2ludD5ERUFETElORTogPDIwMTQtMDMtMDQgdHVlLj5cbioqKiBFTkQiCiAgICAg ICAgKGxldCAoKG9yZy1pbmxpbmV0YXNrLW1pbi1sZXZlbCAzKSkgKG9yZy1hdC1wbGFubmluZy1w KSkpKQogICAgIChzaG91bGQtbm90CiAgICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dAotCSAi KioqIElubGluZXRhc2tcbjxwb2ludD5ERUFETElORTogPDIwMTQtMDMtMDQgdHVlLj4iCisgICAg ICAgICAiKioqIElubGluZXRhc2tcbjxwb2ludD5ERUFETElORTogPDIwMTQtMDMtMDQgdHVlLj4i CiAgICAgICAgKGxldCAoKG9yZy1pbmxpbmV0YXNrLW1pbi1sZXZlbCAzKSkgKG9yZy1hdC1wbGFu bmluZy1wKSkpKQogICAgIChzaG91bGQtbm90CiAgICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4 dAotCSAiKiBIZWFkbGluZVxuKioqIElubGluZXRhc2tcbjxwb2ludD5ERUFETElORTogPDIwMTQt MDMtMDQgdHVlLj4iCisgICAgICAgICAiKiBIZWFkbGluZVxuKioqIElubGluZXRhc2tcbjxwb2lu dD5ERUFETElORTogPDIwMTQtMDMtMDQgdHVlLj4iCiAgICAgICAgKGxldCAoKG9yZy1pbmxpbmV0 YXNrLW1pbi1sZXZlbCAzKSkgKG9yZy1hdC1wbGFubmluZy1wKSkpKQogICAgIChzaG91bGQtbm90 CiAgICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dAotCSAiKiBIZWFkbGluZVxuKioqIElubGlu ZXRhc2tcbioqKiBFTkRcbjxwb2ludD5ERUFETElORTogPDIwMTQtMDMtMDQgdHVlLj4iCisgICAg ICAgICAiKiBIZWFkbGluZVxuKioqIElubGluZXRhc2tcbioqKiBFTkRcbjxwb2ludD5ERUFETElO RTogPDIwMTQtMDMtMDQgdHVlLj4iCiAgICAgICAgKGxldCAoKG9yZy1pbmxpbmV0YXNrLW1pbi1s ZXZlbCAzKSkgKG9yZy1hdC1wbGFubmluZy1wKSkpKSkpCiAKIChlcnQtZGVmdGVzdCB0ZXN0LW9y Zy9hZGQtcGxhbm5pbmctaW5mbyAoKQpAQCAtNjc1MiwyMSArNjc1MiwyMSBAQCBQYXJhZ3JhcGg8 cG9pbnQ+IgogICAoc2hvdWxkCiAgICAoPSAyNwogICAgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10 ZXh0Ci0JICAiKiBIMVxuOkRSQVdFUjpcbjpBOiAxXG46RU5EOlxuKiBIMlxuOlBST1BFUlRJRVM6 XG46QTogMVxuOkVORDoiCi0JKG9yZy1maW5kLXByb3BlcnR5ICJBIikpKSkKKyAgICAgICAgICAi KiBIMVxuOkRSQVdFUjpcbjpBOiAxXG46RU5EOlxuKiBIMlxuOlBST1BFUlRJRVM6XG46QTogMVxu OkVORDoiCisgICAgICAgIChvcmctZmluZC1wcm9wZXJ0eSAiQSIpKSkpCiAgIDs7IFJldHVybiBm aXJzdCBlbnRyeSBmb3VuZCBpbiBidWZmZXIuCiAgIChzaG91bGQKICAgICg9IDEKICAgICAgIChv cmctdGVzdC13aXRoLXRlbXAtdGV4dAotCSAgIiogSDFcbjpQUk9QRVJUSUVTOlxuOkE6IDFcbjpF TkQ6XG4qIEgyXG46UFJPUEVSVElFUzpcbjo8cG9pbnQ+QTogMVxuOkVORDoiCi0JKG9yZy1maW5k LXByb3BlcnR5ICJBIikpKSkKKyAgICAgICAgICAiKiBIMVxuOlBST1BFUlRJRVM6XG46QTogMVxu OkVORDpcbiogSDJcbjpQUk9QRVJUSUVTOlxuOjxwb2ludD5BOiAxXG46RU5EOiIKKyAgICAgICAg KG9yZy1maW5kLXByb3BlcnR5ICJBIikpKSkKICAgOzsgT25seSBzZWFyY2ggdmlzaWJsZSBwYXJ0 IG9mIHRoZSBidWZmZXIuCiAgIChzaG91bGQKICAgICg9IDMxCiAgICAgICAob3JnLXRlc3Qtd2l0 aC10ZW1wLXRleHQKLQkgICIqIEgxXG46UFJPUEVSVElFUzpcbjpBOiAxXG46RU5EOlxuKiBIMlxu OlBST1BFUlRJRVM6XG46PHBvaW50PkE6IDFcbjpFTkQ6IgotCShvcmctbmFycm93LXRvLXN1YnRy ZWUpCi0JKG9yZy1maW5kLXByb3BlcnR5ICJBIikpKSkKKyAgICAgICAgICAiKiBIMVxuOlBST1BF UlRJRVM6XG46QTogMVxuOkVORDpcbiogSDJcbjpQUk9QRVJUSUVTOlxuOjxwb2ludD5BOiAxXG46 RU5EOiIKKyAgICAgICAgKG9yZy1uYXJyb3ctdG8tc3VidHJlZSkKKyAgICAgICAgKG9yZy1maW5k LXByb3BlcnR5ICJBIikpKSkKICAgOzsgV2l0aCBvcHRpb25hbCBhcmd1bWVudCwgb25seSBmaW5k IGVudHJpZXMgd2l0aCBhIHNwZWNpZmljIHZhbHVlLgogICAoc2hvdWxkLW5vdAogICAgKG9yZy10 ZXN0LXdpdGgtdGVtcC10ZXh0ICIqIEhcbjpQUk9QRVJUSUVTOlxuOkE6IDFcbjpFTkQ6IgpAQCAt Njc3NCwxNCArNjc3NCwxNCBAQCBQYXJhZ3JhcGg8cG9pbnQ+IgogICAoc2hvdWxkCiAgICAoPSAz MQogICAgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0Ci0JICAiKiBIMVxuOlBST1BFUlRJRVM6 XG46QTogMVxuOkVORDpcbiogSDJcbjpQUk9QRVJUSUVTOlxuOkE6IDJcbjpFTkQ6IgotCShvcmct ZmluZC1wcm9wZXJ0eSAiQSIgIjIiKSkpKQorICAgICAgICAgICIqIEgxXG46UFJPUEVSVElFUzpc bjpBOiAxXG46RU5EOlxuKiBIMlxuOlBST1BFUlRJRVM6XG46QTogMlxuOkVORDoiCisgICAgICAg IChvcmctZmluZC1wcm9wZXJ0eSAiQSIgIjIiKSkpKQogICA7OyBVc2UgIm5pbCIgZm9yIGV4cGxp Y2l0IG5pbCB2YWx1ZXMuCiAgIChzaG91bGQKICAgICg9IDMxCiAgICAgICAob3JnLXRlc3Qtd2l0 aC10ZW1wLXRleHQKLQkgICIqIEgxXG46UFJPUEVSVElFUzpcbjpBOiAxXG46RU5EOlxuKiBIMlxu OlBST1BFUlRJRVM6XG46QTogbmlsXG46RU5EOiIKLQkob3JnLWZpbmQtcHJvcGVydHkgIkEiICJu aWwiKSkpKSkKKyAgICAgICAgICAiKiBIMVxuOlBST1BFUlRJRVM6XG46QTogMVxuOkVORDpcbiog SDJcbjpQUk9QRVJUSUVTOlxuOkE6IG5pbFxuOkVORDoiCisgICAgICAgIChvcmctZmluZC1wcm9w ZXJ0eSAiQSIgIm5pbCIpKSkpKQogCiAoZXJ0LWRlZnRlc3QgdGVzdC1vcmcvZW50cnktZGVsZXRl ICgpCiAgICJUZXN0IGBvcmctZW50cnktZGVsZXRlJyBzcGVjaWZpY2F0aW9ucy4iCkBAIC02ODkz LDI1ICs2ODkzLDI1IEBAIFBhcmFncmFwaDxwb2ludD4iCiAgICAoZXF1YWwKICAgICAiMSAyIgog ICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dAotCSI6UFJPUEVSVElFUzpcbjpBOiAxXG46RU5E OlxuKiBIXG46UFJPUEVSVElFUzpcbjpBKzogMlxuOkVORDoiCisgICAgICAgICI6UFJPUEVSVElF UzpcbjpBOiAxXG46RU5EOlxuKiBIXG46UFJPUEVSVElFUzpcbjpBKzogMlxuOkVORDoiCiAgICAg ICAob3JnLWVudHJ5LWdldCAocG9pbnQtbWF4KSAiQSIgdCkpKSkKICAgKHNob3VsZAogICAgKGVx dWFsCiAgICAgIjEgMiIKICAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKLQkiKiBIXG46UFJP UEVSVElFUzpcbjpBOiAxXG46RU5EOlxuKiogSDJcbjpQUk9QRVJUSUVTOlxuOkErOiAyXG46RU5E OiIKKyAgICAgICAgIiogSFxuOlBST1BFUlRJRVM6XG46QTogMVxuOkVORDpcbioqIEgyXG46UFJP UEVSVElFUzpcbjpBKzogMlxuOkVORDoiCiAgICAgICAob3JnLWVudHJ5LWdldCAocG9pbnQtbWF4 KSAiQSIgdCkpKSkKICAgKHNob3VsZAogICAgKGVxdWFsCiAgICAgIjEgMiIKICAgICAob3JnLXRl c3Qtd2l0aC10ZW1wLXRleHQKLQkiOlBST1BFUlRJRVM6XG46QTogMVxuOkVORDpcbiogSDFcbiog SDJcbjpQUk9QRVJUSUVTOlxuOkErOiAyXG46RU5EOiIKKyAgICAgICAgIjpQUk9QRVJUSUVTOlxu OkE6IDFcbjpFTkQ6XG4qIEgxXG4qIEgyXG46UFJPUEVSVElFUzpcbjpBKzogMlxuOkVORDoiCiAg ICAgICAob3JnLWVudHJ5LWdldCAocG9pbnQtbWF4KSAiQSIgdCkpKSkKICAgKHNob3VsZAogICAg KGVxdWFsCiAgICAgIjEgMiIKICAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKLQkiKiBIMVxu OlBST1BFUlRJRVM6XG46QTogMVxuOkVORDpcbioqIEgyLjFcbioqIEgyLjJcbjpQUk9QRVJUSUVT OlxuOkErOiAyXG46RU5EOiIKKyAgICAgICAgIiogSDFcbjpQUk9QRVJUSUVTOlxuOkE6IDFcbjpF TkQ6XG4qKiBIMi4xXG4qKiBIMi4yXG46UFJPUEVSVElFUzpcbjpBKzogMlxuOkVORDoiCiAgICAg ICAob3JnLWVudHJ5LWdldCAocG9pbnQtbWF4KSAiQSIgdCkpKSkKICAgKHNob3VsZAogICAgKGVx dWFsICIxIgpAQCAtNjk2NSwzMCArNjk2NSwzMCBAQCBQYXJhZ3JhcGg8cG9pbnQ+IgogICAoc2hv dWxkCiAgICAoZXF1YWwgIjB+MiIKICAgICAgICAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQK LSAgICAgICAgICAgIjpQUk9QRVJUSUVTOlxuOkE6IDBcbjpBKzogMlxuOkVORDoiCi0gICAgICAg ICAgIChsZXQgKChvcmctcHJvcGVydHktc2VwYXJhdG9ycyAnKCgoIkEiKSAuICJ+IikpKSkKLSAg ICAgICAgICAgICAob3JnLWVudHJ5LWdldCAocG9pbnQpICJBIikpKSkpCisgICAgICAgICAgICAg ICI6UFJPUEVSVElFUzpcbjpBOiAwXG46QSs6IDJcbjpFTkQ6IgorICAgICAgICAgICAgKGxldCAo KG9yZy1wcm9wZXJ0eS1zZXBhcmF0b3JzICcoKCgiQSIpIC4gIn4iKSkpKQorICAgICAgICAgICAg ICAob3JnLWVudHJ5LWdldCAocG9pbnQpICJBIikpKSkpCiAgIDs7IERlZmF1bHQgc2VwYXJhdG9y IGlzIHNpbmdsZSBzcGFjZQogICAoc2hvdWxkCiAgICAoZXF1YWwgIjAgMiIKICAgICAgICAgICAo b3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKLSAgICAgICAgICAgIjpQUk9QRVJUSUVTOlxuOkE6IDBc bjpCOiAxXG46QSs6IDJcbjpCKzogM1xuOkVORDoiCi0gICAgICAgICAgIChsZXQgKChvcmctcHJv cGVydHktc2VwYXJhdG9ycyAnKCgoIkIiKSAuICJ+IikpKSkKLSAgICAgICAgICAgICAob3JnLWVu dHJ5LWdldCAocG9pbnQpICJBIikpKSkpCisgICAgICAgICAgICAgICI6UFJPUEVSVElFUzpcbjpB OiAwXG46QjogMVxuOkErOiAyXG46Qis6IDNcbjpFTkQ6IgorICAgICAgICAgICAgKGxldCAoKG9y Zy1wcm9wZXJ0eS1zZXBhcmF0b3JzICcoKCgiQiIpIC4gIn4iKSkpKQorICAgICAgICAgICAgICAo b3JnLWVudHJ5LWdldCAocG9pbnQpICJBIikpKSkpCiAgIDs7IFJlZ3VsYXIgZXhwcmVzc2lvbiBt YXRjaGluZyBmb3Igc2VwYXJhdG9yCiAgIChzaG91bGQKICAgIChlcXVhbCAiMC8yIgogICAgICAg ICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dAotICAgICAgICAgICAiOlBST1BFUlRJRVM6XG46 QTogMFxuOkErOiAyXG46RU5EOiIKLSAgICAgICAgICAgKGxldCAoKG9yZy1wcm9wZXJ0eS1zZXBh cmF0b3JzICcoKCgiQiIpIC4gIn4iKSAoIltBQ10iIC4gIi8iKSkpKQotICAgICAgICAgICAgIChv cmctZW50cnktZ2V0IChwb2ludCkgIkEiKSkpKSkKKyAgICAgICAgICAgICAgIjpQUk9QRVJUSUVT OlxuOkE6IDBcbjpBKzogMlxuOkVORDoiCisgICAgICAgICAgICAobGV0ICgob3JnLXByb3BlcnR5 LXNlcGFyYXRvcnMgJygoKCJCIikgLiAifiIpICgiW0FDXSIgLiAiLyIpKSkpCisgICAgICAgICAg ICAgIChvcmctZW50cnktZ2V0IChwb2ludCkgIkEiKSkpKSkKICAgOzsgU2VwYXJhdG9yIHdvcmtz IHdpdGggaW5oZXJpdGFuY2UKICAgKHNob3VsZAogICAgKGVxdWFsICIxfjIiCiAgICAgICAgICAg KG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0Ci0gICAgICAgICAgICIqIEhcbjpQUk9QRVJUSUVTOlxu OkE6IDFcbjpFTkQ6XG4qKiBIMlxuOlBST1BFUlRJRVM6XG46QSs6IDJcbjpFTkQ6IgotICAgICAg ICAgICAobGV0ICgob3JnLXByb3BlcnR5LXNlcGFyYXRvcnMgJygoKCJBIikgLiAifiIpKSkpCi0g ICAgICAgICAgICAgKG9yZy1lbnRyeS1nZXQgKHBvaW50LW1heCkgIkEiIHQpKSkpKSkKKyAgICAg ICAgICAgICAgIiogSFxuOlBST1BFUlRJRVM6XG46QTogMVxuOkVORDpcbioqIEgyXG46UFJPUEVS VElFUzpcbjpBKzogMlxuOkVORDoiCisgICAgICAgICAgICAobGV0ICgob3JnLXByb3BlcnR5LXNl cGFyYXRvcnMgJygoKCJBIikgLiAifiIpKSkpCisgICAgICAgICAgICAgIChvcmctZW50cnktZ2V0 IChwb2ludC1tYXgpICJBIiB0KSkpKSkpCiAKIChlcnQtZGVmdGVzdCB0ZXN0LW9yZy9lbnRyeS1w cm9wZXJ0aWVzICgpCiAgICJUZXN0IGBvcmctZW50cnktcHJvcGVydGllcycgc3BlY2lmaWNhdGlv bnMuIgpAQCAtNzM4NywxMyArNzM4NywxMyBAQCBQYXJhZ3JhcGg8cG9pbnQ+IgogICAoc2hvdWxk CiAgICAoZXF1YWwgImNhdDEiCiAJICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKLQkgICAiOlBS T1BFUlRJRVM6XG46Q0FURUdPUlk6IGNhdDFcbjpFTkQ6IgotICAgICAgICAgICAob3JnLWdldC1j YXRlZ29yeSkpKSkKKwkgICAgICAiOlBST1BFUlRJRVM6XG46Q0FURUdPUlk6IGNhdDFcbjpFTkQ6 IgorICAgICAgICAgICAgKG9yZy1nZXQtY2F0ZWdvcnkpKSkpCiAgIChzaG91bGQKICAgIChlcXVh bCAiY2F0MSIKIAkgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dAotCSAgICIqIEhcbjpQUk9QRVJU SUVTOlxuOkNBVEVHT1JZOiBjYXQxXG46RU5EOiIKLQkgICAob3JnLWdldC1jYXRlZ29yeSkpKSkK KwkgICAgICAiKiBIXG46UFJPUEVSVElFUzpcbjpDQVRFR09SWTogY2F0MVxuOkVORDoiCisJICAg IChvcmctZ2V0LWNhdGVnb3J5KSkpKQogICA7OyBFdmVuIHRob3VnaCBwcm9wZXJ0eS1pbmhlcml0 YW5jZSBpcyBkZWFjdGl2YXRlZCwgY2F0ZWdvcnkKICAgOzsgcHJvcGVydHkgc2hvdWxkIGJlIGlu aGVyaXRlZC4gIEFzIGRlc2NyaWJlZCBpbgogICA7OyBgb3JnLXVzZS1wcm9wZXJ0eS1pbmhlcml0 YW5jZScuCkBAIC03NDAxLDIwICs3NDAxLDIwIEBAIFBhcmFncmFwaDxwb2ludD4iCiAgICAoZXF1 YWwgImNhdDEiCiAgICAgICAgICAgKGxldCAoKG9yZy11c2UtcHJvcGVydHktaW5oZXJpdGFuY2Ug bmlsKSkKIAkgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0Ci0JICAgICAiOlBST1BFUlRJRVM6 XG46Q0FURUdPUlk6IGNhdDFcbjpFTkQ6XG48cG9pbnQ+KiBIIgotCSAgICAgKG9yZy1nZXQtY2F0 ZWdvcnkpKSkpKQorCSAgICAgICAgIjpQUk9QRVJUSUVTOlxuOkNBVEVHT1JZOiBjYXQxXG46RU5E OlxuPHBvaW50PiogSCIKKwkgICAgICAob3JnLWdldC1jYXRlZ29yeSkpKSkpCiAgIChzaG91bGQK ICAgIChlcXVhbCAiY2F0MSIKICAgICAgICAgICAobGV0ICgob3JnLXVzZS1wcm9wZXJ0eS1pbmhl cml0YW5jZSB0KSkKIAkgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0Ci0JICAgICAiOlBST1BF UlRJRVM6XG46Q0FURUdPUlk6IGNhdDFcbjpFTkQ6XG48cG9pbnQ+KiBIIgotCSAgICAgKG9yZy1n ZXQtY2F0ZWdvcnkpKSkpKQorCSAgICAgICAgIjpQUk9QRVJUSUVTOlxuOkNBVEVHT1JZOiBjYXQx XG46RU5EOlxuPHBvaW50PiogSCIKKwkgICAgICAob3JnLWdldC1jYXRlZ29yeSkpKSkpCiAgIChz aG91bGQKICAgIChlcXVhbCAiY2F0MiIKICAgICAgICAgICAobGV0ICgob3JnLXVzZS1wcm9wZXJ0 eS1pbmhlcml0YW5jZSB0KSkKIAkgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0Ci0JICAgICAi OlBST1BFUlRJRVM6XG46Q0FURUdPUlk6IGNhdDFcbjpFTkQ6XG48cG9pbnQ+KiBIXG46UFJPUEVS VElFUzpcbjpDQVRFR09SWTogY2F0MlxuOkVORDpcbiIKLQkgICAgIChvcmctZ2V0LWNhdGVnb3J5 KSkpKSkpCisJICAgICAgICAiOlBST1BFUlRJRVM6XG46Q0FURUdPUlk6IGNhdDFcbjpFTkQ6XG48 cG9pbnQ+KiBIXG46UFJPUEVSVElFUzpcbjpDQVRFR09SWTogY2F0MlxuOkVORDpcbiIKKwkgICAg ICAob3JnLWdldC1jYXRlZ29yeSkpKSkpKQogCiAMCiA7OzsgUmVmaWxlCkBAIC03NTMwLDE5ICs3 NTMwLDE5IEBAIFBhcmFncmFwaDxwb2ludD4iCiAgIDs7IGRvY3VtZW50IHRpdGxlCiAgIChzaG91 bGQKICAgIChlcXVhbCAnKCJUIiAiVC9IMSIpCi0gICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4 dC1pbi1maWxlICIjK3RpdGxlOiBUXG4qIEgxIgotICAgICAgKGxldCogKChvcmctcmVmaWxlLXVz ZS1vdXRsaW5lLXBhdGggJ3RpdGxlKQotICAgICAgICAgICAgIChvcmctcmVmaWxlLXRhcmdldHMg YCgobmlsIDpsZXZlbCAuIDEpKSkpCi0gICAgICAgIChtYXBjYXIgIydjYXIgKG9yZy1yZWZpbGUt Z2V0LXRhcmdldHMpKSkpKSkKKyAgICAgICAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQtaW4t ZmlsZSAiIyt0aXRsZTogVFxuKiBIMSIKKyAgICAgICAgICAgIChsZXQqICgob3JnLXJlZmlsZS11 c2Utb3V0bGluZS1wYXRoICd0aXRsZSkKKyAgICAgICAgICAgICAgICAgICAob3JnLXJlZmlsZS10 YXJnZXRzIGAoKG5pbCA6bGV2ZWwgLiAxKSkpKQorICAgICAgICAgICAgICAobWFwY2FyICMnY2Fy IChvcmctcmVmaWxlLWdldC10YXJnZXRzKSkpKSkpCiAgIDs7IFdoZW4gYG9yZy1yZWZpbGUtdXNl LW91dGxpbmUtcGF0aCcgaXMgYHRpdGxlJyB2YWxpZGF0ZSB0aGF0CiAgIDs7IGRlZXBlciBsZXZl bHMgYXJlIGNvcnJlY3RseSByZXBvcnRlZCB0b28gKHRoZSBzYW1lIGJlaGF2aW91ciBhcwogICA7 OyAnZmlsZSkKICAgKHNob3VsZAogICAgKGVxdWFsICcoIlQiICJUL0gxIiAiVC9IMS9IMiIgIlQv SDEvSDIvSDMiICJUL0gxIikKLSAgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0LWluLWZpbGUg IiMrdGl0bGU6IFRcbiogSDFcbioqIEgyXG4qKiogSDNcbiogSDEiCi0gICAgICAgKGxldCAoKG9y Zy1yZWZpbGUtdXNlLW91dGxpbmUtcGF0aCAndGl0bGUpCi0gICAgICAgICAgICAgKG9yZy1yZWZp bGUtdGFyZ2V0cyBgKChuaWwgOm1heGxldmVsIC4gMykpKSkKLSAgICAgICAgIChtYXBjYXIgIydj YXIgKG9yZy1yZWZpbGUtZ2V0LXRhcmdldHMpKSkpKSkKKyAgICAgICAgICAob3JnLXRlc3Qtd2l0 aC10ZW1wLXRleHQtaW4tZmlsZSAiIyt0aXRsZTogVFxuKiBIMVxuKiogSDJcbioqKiBIM1xuKiBI MSIKKyAgICAgICAgICAgIChsZXQgKChvcmctcmVmaWxlLXVzZS1vdXRsaW5lLXBhdGggJ3RpdGxl KQorICAgICAgICAgICAgICAgICAgKG9yZy1yZWZpbGUtdGFyZ2V0cyBgKChuaWwgOm1heGxldmVs IC4gMykpKSkKKyAgICAgICAgICAgICAgKG1hcGNhciAjJ2NhciAob3JnLXJlZmlsZS1nZXQtdGFy Z2V0cykpKSkpKQogICA7OyBXaGVuIGBvcmctcmVmaWxlLXVzZS1vdXRsaW5lLXBhdGgnIGlzIGB0 aXRsZScgYW5kIGRvY3VtZW50IGRvIG5vdAogICA7OyBoYXZlIGFuIGV4dHJhY3RlZCBkb2N1bWVu dCB0aXRsZSwgcmV0dXJuIGp1c3QgdGhlIGZpbGUgbmFtZQogICAoc2hvdWxkCkBAIC03NTU3LDI4 ICs3NTU3LDI4IEBAIFBhcmFncmFwaDxwb2ludD4iCiAgIDs7IGEgdGl0bGUKICAgKHNob3VsZAog ICAgKGVxdWFsICcoIlQiICJUL0gxIikKLSAgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICIj K3RpdGxlOiBUXG4qIEgxXG4qKiBIMiIKLSAgICAgIChsZXQqICgob3JnLXJlZmlsZS11c2Utb3V0 bGluZS1wYXRoICd0aXRsZSkKLSAgICAgICAgICAgICAob3JnLXJlZmlsZS10YXJnZXRzIGAoKG5p bCA6bGV2ZWwgLiAxKSkpKQotICAgICAgKG1hcGNhciAjJ2NhciAob3JnLXJlZmlsZS1nZXQtdGFy Z2V0cykpKSkpKQorICAgICAgICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAiIyt0aXRsZTog VFxuKiBIMVxuKiogSDIiCisgICAgICAgICAgICAobGV0KiAoKG9yZy1yZWZpbGUtdXNlLW91dGxp bmUtcGF0aCAndGl0bGUpCisgICAgICAgICAgICAgICAgICAgKG9yZy1yZWZpbGUtdGFyZ2V0cyBg KChuaWwgOmxldmVsIC4gMSkpKSkKKyAgICAgICAgICAgICAgKG1hcGNhciAjJ2NhciAob3JnLXJl ZmlsZS1nZXQtdGFyZ2V0cykpKSkpKQogICA7OyBXaGVuIGBvcmctcmVmaWxlLXVzZS1vdXRsaW5l LXBhdGgnIGlzIGB0aXRsZScgYW5kIHRoZXJlIGFyZSB0d28KICAgOzsgdGl0bGUga2V5d29yZHMg aW4gdGhlIGZpbGUsIHRpdGxlcyBhcmUgY29uY2F0ZW5hdGVkIGludG8gYSBzaW5nbGUKICAgOzsg b25lLgogICAoc2hvdWxkCiAgICAoZXF1YWwgJygiVDEgVDIiICJUMSBUMi9IMSIpCi0gICAgIChv cmctdGVzdC13aXRoLXRlbXAtdGV4dCAiIyt0aXRsZTogVDFcbiMrdGl0bGU6IFQyXG4qIEgxXG4q KiBIMiIKLSAgICAgICAobGV0KiAoKG9yZy1yZWZpbGUtdXNlLW91dGxpbmUtcGF0aCAndGl0bGUp Ci0gICAgICAgICAgICAgIChvcmctcmVmaWxlLXRhcmdldHMgYCgobmlsIDpsZXZlbCAuIDEpKSkp Ci0gICAgICAgKG1hcGNhciAjJ2NhciAob3JnLXJlZmlsZS1nZXQtdGFyZ2V0cykpKSkpKQorICAg ICAgICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAiIyt0aXRsZTogVDFcbiMrdGl0bGU6IFQy XG4qIEgxXG4qKiBIMiIKKyAgICAgICAgICAgIChsZXQqICgob3JnLXJlZmlsZS11c2Utb3V0bGlu ZS1wYXRoICd0aXRsZSkKKyAgICAgICAgICAgICAgICAgICAob3JnLXJlZmlsZS10YXJnZXRzIGAo KG5pbCA6bGV2ZWwgLiAxKSkpKQorICAgICAgICAgICAgICAobWFwY2FyICMnY2FyIChvcmctcmVm aWxlLWdldC10YXJnZXRzKSkpKSkpCiAgIDs7IFdoZW4gYG9yZy1yZWZpbGUtdXNlLW91dGxpbmUt cGF0aCcgaXMgYHRpdGxlJyBhbmQgdGhlcmUgYXJlIHR3bwogICA7OyB0aXRsZSBrZXl3b3JkcyBp biB0aGUgZmlsZSwgdGl0bGVzIGFyZSBjb25jYXRlbmF0ZWQgaW50byBhIHNpbmdsZQogICA7OyBv bmUgZXZlbiBpZiB0aGV5IGFyZSBpbiB0aGUgbWlkZGxlIG9mIHRoZSBmaWxlLgogICAoc2hvdWxk CiAgICAoZXF1YWwgJygiVDEgVDIiICJUMSBUMi9IMSIpCi0gICAgIChvcmctdGVzdC13aXRoLXRl bXAtdGV4dCAiIyt0aXRsZTogVDFcbiogSDFcbioqIEgyXG4jK3RpdGxlOiBUMlxuIgotICAgICAg IChsZXQqICgob3JnLXJlZmlsZS11c2Utb3V0bGluZS1wYXRoICd0aXRsZSkKLSAgICAgICAgICAg ICAgKG9yZy1yZWZpbGUtdGFyZ2V0cyBgKChuaWwgOmxldmVsIC4gMSkpKSkKLSAgICAgICAobWFw Y2FyICMnY2FyIChvcmctcmVmaWxlLWdldC10YXJnZXRzKSkpKSkpKQorICAgICAgICAgIChvcmct dGVzdC13aXRoLXRlbXAtdGV4dCAiIyt0aXRsZTogVDFcbiogSDFcbioqIEgyXG4jK3RpdGxlOiBU MlxuIgorICAgICAgICAgICAgKGxldCogKChvcmctcmVmaWxlLXVzZS1vdXRsaW5lLXBhdGggJ3Rp dGxlKQorICAgICAgICAgICAgICAgICAgIChvcmctcmVmaWxlLXRhcmdldHMgYCgobmlsIDpsZXZl bCAuIDEpKSkpCisgICAgICAgICAgICAgIChtYXBjYXIgIydjYXIgKG9yZy1yZWZpbGUtZ2V0LXRh cmdldHMpKSkpKSkpCiAKIChlcnQtZGVmdGVzdCB0ZXN0LW9yZy9yZWZpbGUgKCkKICAgIlRlc3Qg YG9yZy1yZWZpbGUnIHNwZWNpZmljYXRpb25zLiIKQEAgLTg0NjksMTMgKzg0NjksMTMgQEAgUGFy YWdyYXBoPHBvaW50PiIKICAgICAiKiBLV0QyIEgiCiAgICAgKGxldCAoKG9yZy10b2RvLWtleXdv cmRzICcoKHNlcXVlbmNlICJLV0QxIiAiS1dEMiIgIkRPTkUiKSkpKQogICAgICAgKG9yZy10ZXN0 LXdpdGgtdGVtcC10ZXh0Ci0JICAiKiBLV0QyIEgKKyAgICAgICAgICAiKiBLV0QyIEgKIDpQUk9Q RVJUSUVTOgogOlJFUEVBVF9UT19TVEFURTogS1dEMgogOkVORDoKIDwyMDEyLTAzLTI5IFRodSAr Mnk+IgotCShvcmctdG9kbyAiRE9ORSIpCi0JKGJ1ZmZlci1zdHJpbmcpKSkpKQorICAgICAgICAo b3JnLXRvZG8gIkRPTkUiKQorICAgICAgICAoYnVmZmVyLXN0cmluZykpKSkpCiAgIDs7IFdoZW4g c3dpdGNoaW5nIHRvIERPTkUgc3RhdGUsIHVwZGF0ZSBiYXNlIGRhdGUuICBJZiB0aGVyZSBhcmUK ICAgOzsgbXVsdGlwbGUgcmVwZWF0ZWQgdGltZSBzdGFtcHMsIHVwZGF0ZSB0aGVtIGFsbC4KICAg KHNob3VsZApAQCAtODQ5MCw5ICs4NDkwLDkgQEAgUGFyYWdyYXBoPHBvaW50PiIKICAgICAiPDIw MTUtMDMtMDQgLiogXFwrMXk+IgogICAgIChsZXQgKChvcmctdG9kby1rZXl3b3JkcyAnKChzZXF1 ZW5jZSAiVE9ETyIgIkRPTkUiKSkpKQogICAgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0Ci0J ICAiKiBUT0RPIEhcbjwyMDEyLTAzLTI5IFRodS4gKzJ5PlxuPDIwMTQtMDMtMDQgVHVlICsxeT4i Ci0JKG9yZy10b2RvICJET05FIikKLQkoYnVmZmVyLXN0cmluZykpKSkpCisgICAgICAgICAgIiog VE9ETyBIXG48MjAxMi0wMy0yOSBUaHUuICsyeT5cbjwyMDE0LTAzLTA0IFR1ZSArMXk+IgorICAg ICAgICAob3JnLXRvZG8gIkRPTkUiKQorICAgICAgICAoYnVmZmVyLXN0cmluZykpKSkpCiAgIDs7 IFRocm93IGFuIGVycm9yIGlmIHJlcGVhdGVyIHVuaXQgaXMgdGhlIGhvdXIgYW5kIG5vIHRpbWUg aXMKICAgOzsgcHJvdmlkZWQgaW4gdGhlIHRpbWVzdGFtcC4KICAgKHNob3VsZC1lcnJvcgpAQCAt ODUwNiwyNSArODUwNiwyNSBAQCBQYXJhZ3JhcGg8cG9pbnQ+IgogICAgIChyZWdleHAtcXVvdGUg IjwyMDE0LTAzLTA0IDAyOjAwICs4aD4iKQogICAgIChvcmctdGVzdC13aXRob3V0LWRvdwogICAg ICAob3JnLXRlc3QtYXQtdGltZSAiPDIwMTQtMDMtMDQgMDI6MzU+IgotICAgICAgKG9yZy10ZXN0 LXdpdGgtdGVtcC10ZXh0ICIqIFRPRE8gSFxuPDIwMTQtMDMtMDMgMTg6MDAgKzhoPiIKLQkob3Jn LXRvZG8gIkRPTkUiKQotCShidWZmZXItc3RyaW5nKSkpKSkpCisgICAgICAgKG9yZy10ZXN0LXdp dGgtdGVtcC10ZXh0ICIqIFRPRE8gSFxuPDIwMTQtMDMtMDMgMTg6MDAgKzhoPiIKKwkgKG9yZy10 b2RvICJET05FIikKKwkgKGJ1ZmZlci1zdHJpbmcpKSkpKSkKICAgKHNob3VsZAogICAgKHN0cmlu Zy1tYXRjaC1wCiAgICAgKHJlZ2V4cC1xdW90ZSAiPDIwMTQtMDMtMDQgMTA6MDAgKys4aD4iKQog ICAgIChvcmctdGVzdC13aXRob3V0LWRvdwogICAgICAob3JnLXRlc3QtYXQtdGltZSAiPDIwMTQt MDMtMDQgMDI6MzU+IgotICAgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICIqIFRPRE8gSFxu PDIwMTQtMDMtMDMgMTg6MDAgKys4aD4iCi0JKG9yZy10b2RvICJET05FIikKLQkoYnVmZmVyLXN0 cmluZykpKSkpKQorICAgICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAiKiBUT0RPIEhcbjwy MDE0LTAzLTAzIDE4OjAwICsrOGg+IgorCSAob3JnLXRvZG8gIkRPTkUiKQorCSAoYnVmZmVyLXN0 cmluZykpKSkpKQogICAoc2hvdWxkCiAgICAoc3RyaW5nLW1hdGNoLXAKICAgICAocmVnZXhwLXF1 b3RlICI8MjAxNC0wMy0wNCAxMDozNSAuKzhoPiIpCiAgICAgKG9yZy10ZXN0LXdpdGhvdXQtZG93 CiAgICAgIChvcmctdGVzdC1hdC10aW1lICI8MjAxNC0wMy0wNCAwMjozNT4iCi0gICAgICAob3Jn LXRlc3Qtd2l0aC10ZW1wLXRleHQgIiogVE9ETyBIXG48MjAxNC0wMy0wMyAxODowMCAuKzhoPiIK LQkob3JnLXRvZG8gIkRPTkUiKQotCShidWZmZXItc3RyaW5nKSkpKSkpCisgICAgICAgKG9yZy10 ZXN0LXdpdGgtdGVtcC10ZXh0ICIqIFRPRE8gSFxuPDIwMTQtMDMtMDMgMTg6MDAgLis4aD4iCisJ IChvcmctdG9kbyAiRE9ORSIpCisJIChidWZmZXItc3RyaW5nKSkpKSkpCiAgIDs7IEhhbmRsZSBg b3JnLWV4dGVuZC10b2RheS11bnRpbCcuCiAgIChzaG91bGQKICAgIChzdHJpbmctbWF0Y2gtcApA QCAtODUzMiw3NSArODUzMiw3NSBAQCBQYXJhZ3JhcGg8cG9pbnQ+IgogICAgIChsZXQgKChvcmct ZXh0ZW5kLXRvZGF5LXVudGlsIDQpKQogICAgICAgKG9yZy10ZXN0LXdpdGhvdXQtZG93CiAgICAg ICAgKG9yZy10ZXN0LWF0LXRpbWUgIjwyMDE0LTAzLTA0IDAyOjM1PiIKLSAgICAgICAgKG9yZy10 ZXN0LXdpdGgtdGVtcC10ZXh0ICIqIFRPRE8gSFxuPDIwMTQtMDMtMDMgKysxZD4iCi0JICAob3Jn LXRvZG8gIkRPTkUiKQotCSAgKGJ1ZmZlci1zdHJpbmcpKSkpKSkpCisgICAgICAgICAob3JnLXRl c3Qtd2l0aC10ZW1wLXRleHQgIiogVE9ETyBIXG48MjAxNC0wMy0wMyArKzFkPiIKKwkgICAob3Jn LXRvZG8gIkRPTkUiKQorCSAgIChidWZmZXItc3RyaW5nKSkpKSkpKQogICAoc2hvdWxkCiAgICAo c3RyaW5nLW1hdGNoLXAKICAgICAocmVnZXhwLXF1b3RlICI8MjAxNC0wMy0wNiAxNzowMCArKzFk PiIpCiAgICAgKGxldCAoKG9yZy1leHRlbmQtdG9kYXktdW50aWwgNCkpCiAgICAgICAob3JnLXRl c3Qtd2l0aG91dC1kb3cKICAgICAgICAob3JnLXRlc3QtYXQtdGltZSAiPDIwMTQtMDMtMDUgMTg6 MDA+IgotICAgICAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIiogVE9ETyBIXG48MjAxNC0w My0wNCAxNzowMCArKzFkPiIKLQkgIChvcmctdG9kbyAiRE9ORSIpCi0JICAoYnVmZmVyLXN0cmlu ZykpKSkpKSkKKyAgICAgICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAiKiBUT0RPIEhcbjwy MDE0LTAzLTA0IDE3OjAwICsrMWQ+IgorCSAgIChvcmctdG9kbyAiRE9ORSIpCisJICAgKGJ1ZmZl ci1zdHJpbmcpKSkpKSkpCiAgIChzaG91bGQKICAgIChzdHJpbmctbWF0Y2gtcAogICAgIChyZWdl eHAtcXVvdGUgIjwyMDE0LTAzLTA0IDEwOjAwICsrOGg+IikKICAgICAobGV0ICgob3JnLWV4dGVu ZC10b2RheS11bnRpbCA0KSkKICAgICAgIChvcmctdGVzdC13aXRob3V0LWRvdwogICAgICAgIChv cmctdGVzdC1hdC10aW1lICI8MjAxNC0wMy0wNCAwMjozNT4iCi0gICAgICAgIChvcmctdGVzdC13 aXRoLXRlbXAtdGV4dCAiKiBUT0RPIEhcbjwyMDE0LTAzLTAzIDE4OjAwICsrOGg+IgotCSAgKG9y Zy10b2RvICJET05FIikKLQkgIChidWZmZXItc3RyaW5nKSkpKSkpKQorICAgICAgICAgKG9yZy10 ZXN0LXdpdGgtdGVtcC10ZXh0ICIqIFRPRE8gSFxuPDIwMTQtMDMtMDMgMTg6MDAgKys4aD4iCisJ ICAgKG9yZy10b2RvICJET05FIikKKwkgICAoYnVmZmVyLXN0cmluZykpKSkpKSkKICAgKHNob3Vs ZAogICAgKHN0cmluZy1tYXRjaC1wCiAgICAgKHJlZ2V4cC1xdW90ZSAiPDIwMTQtMDMtMDQgMTg6 MDAgLisxZD4iKQogICAgIChsZXQgKChvcmctZXh0ZW5kLXRvZGF5LXVudGlsIDQpKQogICAgICAg KG9yZy10ZXN0LXdpdGhvdXQtZG93CiAgICAgICAgKG9yZy10ZXN0LWF0LXRpbWUgIjwyMDE0LTAz LTA0IDAyOjM1PiIKLSAgICAgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICIqIFRPRE8gSFxu PDIwMTQtMDMtMDMgMTg6MDAgLisxZD4iCi0JICAob3JnLXRvZG8gIkRPTkUiKQotCSAgKGJ1ZmZl ci1zdHJpbmcpKSkpKSkpCisgICAgICAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIiogVE9E TyBIXG48MjAxNC0wMy0wMyAxODowMCAuKzFkPiIKKwkgICAob3JnLXRvZG8gIkRPTkUiKQorCSAg IChidWZmZXItc3RyaW5nKSkpKSkpKQogICAoc2hvdWxkCiAgICAoc3RyaW5nLW1hdGNoLXAKICAg ICAocmVnZXhwLXF1b3RlICI8MjAxNC0wMy0wNCAxMDozNSAuKzhoPiIpCiAgICAgKGxldCAoKG9y Zy1leHRlbmQtdG9kYXktdW50aWwgNCkpCiAgICAgICAob3JnLXRlc3Qtd2l0aG91dC1kb3cKICAg ICAgICAob3JnLXRlc3QtYXQtdGltZSAiPDIwMTQtMDMtMDQgMDI6MzU+IgotICAgICAgICAob3Jn LXRlc3Qtd2l0aC10ZW1wLXRleHQgIiogVE9ETyBIXG48MjAxNC0wMy0wMyAxODowMCAuKzhoPiIK LQkgIChvcmctdG9kbyAiRE9ORSIpCi0JICAoYnVmZmVyLXN0cmluZykpKSkpKSkKKyAgICAgICAg IChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAiKiBUT0RPIEhcbjwyMDE0LTAzLTAzIDE4OjAwIC4r OGg+IgorCSAgIChvcmctdG9kbyAiRE9ORSIpCisJICAgKGJ1ZmZlci1zdHJpbmcpKSkpKSkpCiAg IDs7IERvIG5vdCByZXBlYXQgaW5hY3RpdmUgdGltZSBzdGFtcHMgd2l0aCBhIHJlcGVhdGVyLgog ICAoc2hvdWxkLW5vdAogICAgKHN0cmluZy1tYXRjaC1wCiAgICAgIlxcWzIwMTQtMDMtMjkgLiog XFwrMnlcXF0iCiAgICAgKGxldCAoKG9yZy10b2RvLWtleXdvcmRzICcoKHNlcXVlbmNlICJUT0RP IiAiRE9ORSIpKSkpCiAgICAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKLQkgICIqIFRPRE8g SFxuWzIwMTItMDMtMjkgVGh1LiArMnldIgotCShvcmctdG9kbyAiRE9ORSIpCi0JKGJ1ZmZlci1z dHJpbmcpKSkpKQorICAgICAgICAgICIqIFRPRE8gSFxuWzIwMTItMDMtMjkgVGh1LiArMnldIgor ICAgICAgICAob3JnLXRvZG8gIkRPTkUiKQorICAgICAgICAoYnVmZmVyLXN0cmluZykpKSkpCiAg IDs7IERvIG5vdCByZXBlYXQgY29tbWVudGVkIHRpbWUgc3RhbXBzLgogICAoc2hvdWxkLW5vdAog ICAgKHN0cmluZy1wcmVmaXgtcAogICAgICI8MjAxNS0wMy0wNCAuKiBcXCsxeT4iCiAgICAgKGxl dCAoKG9yZy10b2RvLWtleXdvcmRzICcoKHNlcXVlbmNlICJUT0RPIiAiRE9ORSIpKSkpCiAgICAg ICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKLQkgICIqIFRPRE8gSFxuPDIwMTItMDMtMjkgVGh1 ICsyeT5cbiMgPDIwMTQtMDMtMDQgVHVlICsxeT4iCi0JKG9yZy10b2RvICJET05FIikKLQkoYnVm ZmVyLXN0cmluZykpKSkpCisgICAgICAgICAgIiogVE9ETyBIXG48MjAxMi0wMy0yOSBUaHUgKzJ5 PlxuIyA8MjAxNC0wMy0wNCBUdWUgKzF5PiIKKyAgICAgICAgKG9yZy10b2RvICJET05FIikKKyAg ICAgICAgKGJ1ZmZlci1zdHJpbmcpKSkpKQogICAoc2hvdWxkLW5vdAogICAgKHN0cmluZy1wcmVm aXgtcAogICAgICI8MjAxNS0wMy0wNCAuKiBcXCsxeT4iCiAgICAgKGxldCAoKG9yZy10b2RvLWtl eXdvcmRzICcoKHNlcXVlbmNlICJUT0RPIiAiRE9ORSIpKSkpCiAgICAgICAob3JnLXRlc3Qtd2l0 aC10ZW1wLXRleHQKLQkgICIqIFRPRE8gSAorICAgICAgICAgICIqIFRPRE8gSAogPDIwMTItMDMt MjkgVGh1LiArMnk+CiAjK0JFR0lOX0VYQU1QTEUKIDwyMDE0LTAzLTA0IFR1ZSArMXk+CiAjK0VO RF9FWEFNUExFIgotCShvcmctdG9kbyAiRE9ORSIpCi0JKGJ1ZmZlci1zdHJpbmcpKSkpKQorICAg ICAgICAob3JnLXRvZG8gIkRPTkUiKQorICAgICAgICAoYnVmZmVyLXN0cmluZykpKSkpCiAgIDs7 IFdoZW4gYG9yZy1sb2ctcmVwZWF0JyBpcyBub24tbmlsIG9yIHRoZXJlIGlzIGEgQ0xPQ0sgaW4g dGhlCiAgIDs7IGVudHJ5LCByZWNvcmQgdGltZSBvZiBsYXN0IHJlcGVhdC4KICAgKHNob3VsZC1u b3QKQEAgLTg2NDAsOSArODY0MCw5IEBAIFBhcmFncmFwaDxwb2ludD4iCiAgICAgIl5TQ0hFRFVM RUQ6IgogICAgIChsZXQgKChvcmctdG9kby1rZXl3b3JkcyAnKChzZXF1ZW5jZSAiVE9ETyIgIkRP TkUiKSkpKQogICAgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0Ci0JICAiKiBUT0RPIEhcblND SEVEVUxFRDogPDIwMTQtMDMtMDQgVHVlPlxuPDIwMTItMDMtMjkgVGh1ICsyeT4iCi0JKG9yZy10 b2RvICJET05FIikKLQkoYnVmZmVyLXN0cmluZykpKSkpCisgICAgICAgICAgIiogVE9ETyBIXG5T Q0hFRFVMRUQ6IDwyMDE0LTAzLTA0IFR1ZT5cbjwyMDEyLTAzLTI5IFRodSArMnk+IgorICAgICAg ICAob3JnLXRvZG8gIkRPTkUiKQorICAgICAgICAoYnVmZmVyLXN0cmluZykpKSkpCiAgIDs7IFBy b3Blcmx5IGFkdmFuY2UgcmVwZWF0ZXIgZXZlbiB3aGVuIGEgY2xvY2sgZW50cnkgaXMgc3BlY2lm aWVkCiAgIDs7IGFuZCBgb3JnLWxvZy1yZXBlYXQnIGlzIG5pbC4KICAgKHNob3VsZApAQCAtODY1 MSwxMSArODY1MSwxMSBAQCBQYXJhZ3JhcGg8cG9pbnQ+IgogICAgIChsZXQgKChvcmctbG9nLXJl cGVhdCBuaWwpCiAJICAob3JnLXRvZG8ta2V5d29yZHMgJygoc2VxdWVuY2UgIlRPRE8iICJET05F IikpKSkKICAgICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dAotCSAgIiogVE9ETyBICisgICAg ICAgICAgIiogVE9ETyBICiBTQ0hFRFVMRUQ6IDwyMDEyLTAzLTI5IFRodSArMnk+CiBDTE9DSzog WzIwMTItMDMtMjkgVGh1IDEwOjAwXS0tWzIwMTItMDMtMjkgVGh1IDE2OjQwXSA9PiAgNjo0MCIK LQkob3JnLXRvZG8gIkRPTkUiKQotCShidWZmZXItc3RyaW5nKSkpKSkKKyAgICAgICAgKG9yZy10 b2RvICJET05FIikKKyAgICAgICAgKGJ1ZmZlci1zdHJpbmcpKSkpKQogICA7OyBNYWtlIHN1cmUg dGhhdCBsb2dib29rIHN0YXRlIGNoYW5nZSByZWNvcmQgZG9lcyBub3QgZ2V0CiAgIDs7IGR1cGxp Y2F0ZWQgd2hlbiBgb3JnLWxvZy1yZXBlYXQnIGBvcmctbG9nLWRvbmUnIGFyZSBub24tbmlsLgog ICAoc2hvdWxkCkBAIC04Njk1LDExICs4Njk1LDExIEBAIFNDSEVEVUxFRDogPDIwMjEtMDYtMTUg VHVlICsxZD4iCiAgIChzaG91bGQKICAgIChzdHJpbmc9CiAgICAgKGZvcm1hdAotICAgICIqIERP TkUgdGFzaworICAgICAiKiBET05FIHRhc2sKIENMT1NFRDogJXMiCi0gICAgKG9yZy10ZXN0LXdp dGgtdGVtcC10ZXh0ICIiCi0gICAgICAob3JnLWluc2VydC10aW1lc3RhbXAgKGN1cnJlbnQtdGlt ZSkgdCB0KQotICAgICAgKGJ1ZmZlci1zdHJpbmcpKSkKKyAgICAgKG9yZy10ZXN0LXdpdGgtdGVt cC10ZXh0ICIiCisgICAgICAgKG9yZy1pbnNlcnQtdGltZXN0YW1wIChjdXJyZW50LXRpbWUpIHQg dCkKKyAgICAgICAoYnVmZmVyLXN0cmluZykpKQogICAgIChsZXQgKChvcmctbG9nLWRvbmUgJ3Rp bWUpCiAgICAgICAgICAgKG9yZy1sb2ctZG9uZS13aXRoLXRpbWUgdCkKICAgICAgICAgICAob3Jn LXRvZG8ta2V5d29yZHMgJygoc2VxdWVuY2UgIlRPRE8iICJET05FIikpKSkKQEAgLTg3MTIsMTEg Kzg3MTIsMTEgQEAgQ0xPU0VEOiAlcyIKICAgKHNob3VsZAogICAgKHN0cmluZz0KICAgICAoZm9y bWF0Ci0gICAgIiogRE9ORSB0YXNrCisgICAgICIqIERPTkUgdGFzawogQ0xPU0VEOiAlcyIKLSAg ICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIiIKLSAgICAgIChvcmctaW5zZXJ0LXRpbWVzdGFt cCAoY3VycmVudC10aW1lKSBuaWwgdCkKLSAgICAgIChidWZmZXItc3RyaW5nKSkpCisgICAgIChv cmctdGVzdC13aXRoLXRlbXAtdGV4dCAiIgorICAgICAgIChvcmctaW5zZXJ0LXRpbWVzdGFtcCAo Y3VycmVudC10aW1lKSBuaWwgdCkKKyAgICAgICAoYnVmZmVyLXN0cmluZykpKQogICAgIChsZXQg KChvcmctbG9nLWRvbmUgJ3RpbWUpCiAgICAgICAgICAgKG9yZy1sb2ctZG9uZS13aXRoLXRpbWUg bmlsKQogICAgICAgICAgIChvcmctdG9kby1rZXl3b3JkcyAnKChzZXF1ZW5jZSAiVE9ETyIgIkRP TkUiKSkpKQpAQCAtODc0NSwxMiArODc0NSwxMiBAQCBDTE9TRUQ6ICVzIgogICAoc2hvdWxkCiAg ICAoc3RyaW5nPQogICAgIChmb3JtYXQKLSAgICAiIytTVEFSVFVQOiBsb2dkb25lCisgICAgICIj K1NUQVJUVVA6IGxvZ2RvbmUKICogRE9ORSB0YXNrCiBDTE9TRUQ6ICVzIgotICAgIChvcmctdGVz dC13aXRoLXRlbXAtdGV4dCAiIgotICAgICAgKG9yZy1pbnNlcnQtdGltZXN0YW1wIChjdXJyZW50 LXRpbWUpIHQgdCkKLSAgICAgIChidWZmZXItc3RyaW5nKSkpCisgICAgIChvcmctdGVzdC13aXRo LXRlbXAtdGV4dCAiIgorICAgICAgIChvcmctaW5zZXJ0LXRpbWVzdGFtcCAoY3VycmVudC10aW1l KSB0IHQpCisgICAgICAgKGJ1ZmZlci1zdHJpbmcpKSkKICAgICAobGV0ICgob3JnLWxvZy1kb25l IG5pbCkKICAgICAgICAgICAob3JnLWxvZy1kb25lLXdpdGgtdGltZSB0KQogICAgICAgICAgIChv cmctdG9kby1rZXl3b3JkcyAnKChzZXF1ZW5jZSAiVE9ETyIgIkRPTkUiKSkpKQpAQCAtODc4Mywx NCArODc4MywxNCBAQCBDTE9TRUQ6ICVzIgogICAoc2hvdWxkCiAgICAoc3RyaW5nPQogICAgIChm b3JtYXQKLSAgICAiKiBET05FIHRhc2sKKyAgICAgIiogRE9ORSB0YXNrCiBDTE9TRUQ6ICVzCiA6 UFJPUEVSVElFUzoKIDpMT0dHSU5HOiBsb2dkb25lCiA6RU5EOiIKLSAgICAob3JnLXRlc3Qtd2l0 aC10ZW1wLXRleHQgIiIKLSAgICAgIChvcmctaW5zZXJ0LXRpbWVzdGFtcCAoY3VycmVudC10aW1l KSB0IHQpCi0gICAgICAoYnVmZmVyLXN0cmluZykpKQorICAgICAob3JnLXRlc3Qtd2l0aC10ZW1w LXRleHQgIiIKKyAgICAgICAob3JnLWluc2VydC10aW1lc3RhbXAgKGN1cnJlbnQtdGltZSkgdCB0 KQorICAgICAgIChidWZmZXItc3RyaW5nKSkpCiAgICAgKGxldCAoKG9yZy1sb2ctZG9uZSBuaWwp CiAgICAgICAgICAgKG9yZy1sb2ctZG9uZS13aXRoLXRpbWUgdCkKICAgICAgICAgICAob3JnLXRv ZG8ta2V5d29yZHMgJygoc2VxdWVuY2UgIlRPRE8iICJET05FIikpKSkKQEAgLTkzMzQsMjcgKzkz MzQsMjcgQEAgdHdvCiAqIE9uZQogIgogICAgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dAotICAg ICAiKiBPbmUKKyAgICAgICAgIiogT25lCiA8cG9pbnQ+KiBUd28KIHR3bwogIgotICAgICAoY2Fs bC1pbnRlcmFjdGl2ZWx5ICMnb3JnLWN1dC1zdWJ0cmVlKQotICAgICAoZ290by1jaGFyIChwb2lu dC1taW4pKQotICAgICAoY2FsbC1pbnRlcmFjdGl2ZWx5ICMnb3JnLXBhc3RlLXN1YnRyZWUpCi0g ICAgIChidWZmZXItc3RyaW5nKSkpKQorICAgICAgKGNhbGwtaW50ZXJhY3RpdmVseSAjJ29yZy1j dXQtc3VidHJlZSkKKyAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAgICAoY2FsbC1p bnRlcmFjdGl2ZWx5ICMnb3JnLXBhc3RlLXN1YnRyZWUpCisgICAgICAoYnVmZmVyLXN0cmluZykp KSkKICAgKHNob3VsZAogICAgKGVxdWFsCiAgICAgIiogT25lCiAqIFR3bwogIgogICAgIChvcmct dGVzdC13aXRoLXRlbXAtdGV4dAotICAgICAiKiBPbmUKKyAgICAgICAgIiogT25lCiA8cG9pbnQ+ KiBUd28KICIKLSAgICAgKGNhbGwtaW50ZXJhY3RpdmVseSAjJ29yZy1jdXQtc3VidHJlZSkKLSAg ICAgKGJhY2t3YXJkLWNoYXIpCi0gICAgIChjYWxsLWludGVyYWN0aXZlbHkgIydvcmctcGFzdGUt c3VidHJlZSkKLSAgICAgKGJ1ZmZlci1zdHJpbmcpKSkpKQorICAgICAgKGNhbGwtaW50ZXJhY3Rp dmVseSAjJ29yZy1jdXQtc3VidHJlZSkKKyAgICAgIChiYWNrd2FyZC1jaGFyKQorICAgICAgKGNh bGwtaW50ZXJhY3RpdmVseSAjJ29yZy1wYXN0ZS1zdWJ0cmVlKQorICAgICAgKGJ1ZmZlci1zdHJp bmcpKSkpKQogCiAoZXJ0LWRlZnRlc3QgdGVzdC1vcmcvb3JnLS1vcGVuLWZpbGUtZm9ybWF0LWNv bW1hbmQgKCkKICAgIlRlc3QgYG9yZy0tb3Blbi1maWxlLWZvcm1hdC1jb21tYW5kJyBoZWxwZXIg Zm9yIGBvcmctb3Blbi1maWxlJy4iCi0tIAoyLjQyLjEKCg== --00000000000075d7a6060af82913--