From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id QNf5Au6Qo2LoLAAAbAwnHQ (envelope-from ) for ; Fri, 10 Jun 2022 20:43:58 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id 8A7rAe6Qo2LT0AAAG6o9tA (envelope-from ) for ; Fri, 10 Jun 2022 20:43:58 +0200 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 6CCBA29A1 for ; Fri, 10 Jun 2022 20:43:56 +0200 (CEST) Received: from localhost ([::1]:56586 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nzjbu-0002a6-73 for larch@yhetil.org; Fri, 10 Jun 2022 14:43:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42106) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nzjYt-0001Q8-R7 for emacs-orgmode@gnu.org; Fri, 10 Jun 2022 14:40:47 -0400 Received: from peaceful.gatewayhost.com ([144.202.44.248]:55875) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nzjYo-0006RA-To for emacs-orgmode@gnu.org; Fri, 10 Jun 2022 14:40:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=hacktivista.org; s=mail; h=Cc:Subject:To:From:In-Reply-To:Message-Id:Date: Mime-Version:Content-Type:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:References:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=MJbs59TLyG1fpy5uiTA1CPjW2gNYADj92CXqO/EAErk=; b=n6LTZ2TGaxFM1vQwE8ijOaCKLm L1JIhK5A/gvBvb8QTbeDA4/bHdOw1zpzZmqLCRwCL7edfVib0B0HTm1Rv3sQ22m1GDHx6ulhOrKQZ l+BYwKCVP/y180AbTXY5g/+NGZ6IuURK8SEsVEUeqhsa7tTfBTk2SoEDXhDem/A6vQBg=; Received: from pc-76-109-215-201.cm.vtr.net ([201.215.109.76] helo=localhost) by peaceful.gatewayhost.com with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1nzjYl-004rUn-K3 for emacs-orgmode@gnu.org; Fri, 10 Jun 2022 14:40:40 -0400 Content-Type: multipart/mixed; boundary=06d6a98fa1be4864613d27800fe61d4a89917b7dabc22d60a84b712f53d0 Mime-Version: 1.0 Date: Fri, 10 Jun 2022 14:42:52 -0400 Message-Id: In-Reply-To: To: Subject: [BUG] ob-shell: cmdline and stdin broken when used with TRAMP Cc: X-Mailer: aerc 0.9.0 Received-SPF: pass client-ip=144.202.44.248; envelope-from=libsys@hacktivista.org; helo=peaceful.gatewayhost.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, 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" Reply-to: "Felix Freeman" From: "Felix Freeman" via "General discussions about Org-mode." X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1654886637; h=from:from:sender:sender:reply-to: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=MJbs59TLyG1fpy5uiTA1CPjW2gNYADj92CXqO/EAErk=; b=gtEbFhaJuOCwGJY7n28mf1jJxE3sEGsHi4agR08o/9mf3SWdqZKHJHvurVpbQ2gyv3TAXH OFsdveAkpemN2VAsr/42Of37QvC4VgjqA3KakbP4qFbxuhWZKcIqlGo5PPmd6mIF6kB0z2 VjQXcicDJK2y8AYxDY3HO/8mVOJu8Qw6PgDeEHe2g0rbkSkJykd8lBXnNpt1henctjzXFE NDqeAZbgJp1fNRQ2FsdONpolhnMZYpPG5GhNVgDMUEhchy/oSQ4TsowLOnZBpdeUEjAMA2 iWvcJEAvxpSzUGEL9Lwhm2pvQOMmsXRoTkAxv+mvffrWg8yqmqHkq64ENOOF0g== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1654886637; a=rsa-sha256; cv=none; b=A2+KMZ/hOw6JtfgXhgnQSovuMw0o9avHf0XMGaXskkeIaTuD/uly2ns+CEI55AXUu78GeL KgBFIyOCRrXF7UQ1CO3i7G7q8iFO7189tOx85Z1Mwn9X7Ew7S/JPTWPVJxTUQ140HKxzSo LWUIkwxpBJQH/pImIlS2BeyUFXslBKdM4C5GJzl/9nUSFjtwigPA3qdNb9Gvg4DygNkola ZNjf0abMdB1X5TUFdpK5VqBexHP7DDel1GqSbIQcZuVOWhFFTlIt2kJeCjDvNHO4NQLXmc 8xqvy/Z6wz470e0rF+givEPf/xcQCPWXTWSOAywnj+M/7RV73hhdnuI0YF8Mlw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=hacktivista.org header.s=mail header.b=n6LTZ2TG; dmarc=pass (policy=none) header.from=gnu.org; 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" X-Migadu-Spam-Score: -0.48 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=hacktivista.org header.s=mail header.b=n6LTZ2TG; dmarc=pass (policy=none) header.from=gnu.org; 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" X-Migadu-Queue-Id: 6CCBA29A1 X-Spam-Score: -0.48 X-Migadu-Scanner: scn0.migadu.com X-TUID: l5SbTvAhd2DE --06d6a98fa1be4864613d27800fe61d4a89917b7dabc22d60a84b712f53d0 Content-Type: multipart/alternative; boundary=41e675eb6a2dbeb0ffe7176ba3b09e2852370c4f9ad7abe4f8bbb8f11848 --41e675eb6a2dbeb0ffe7176ba3b09e2852370c4f9ad7abe4f8bbb8f11848 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8 When using TRAMP, ob-shell's :cmdline and :stdin header options are broken on org-babel. I've noticed that when those options are present, it takes other route on ob-shell.el, but I lack the proper background to fix or debug it further. Probably cmdline is more complicated to get working right, but stdin seems to do most things just fine (it creates the file within the remote part) but isn't able to read it when needed. I'm attaching: - A file to test the functionality: test-tramp.org - The backtrace: backtrace.el - Emacs generated "current state": current-state.el Emacs : GNU Emacs 28.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.33= , cairo version 1.17.6) of 2022-04-27 Package: Org mode version 9.5.4 (release_9.5.4-521-g1105da.dirty @ /home/me= /src/org-mode/lisp/) Felix Freeman --41e675eb6a2dbeb0ffe7176ba3b09e2852370c4f9ad7abe4f8bbb8f11848-- --06d6a98fa1be4864613d27800fe61d4a89917b7dabc22d60a84b712f53d0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=test-tramp.org Content-Type: text/org; charset=utf-8; name=test-tramp.org IytuYW1lOiBpbnB1dAp0cmFtcAoKKiBXb3JrcwoKIytiZWdpbl9zcmMgc2ggOnN0ZGluIGlucHV0 CiAgcmVhZCAtciB3aG8KICBlY2hvICJoZWxsbyAkd2hvIgojK2VuZF9zcmMKCiMrYmVnaW5fc3Jj IHNoIDpkaXIgL3NzaDp1c2VyQGhvc3Q6CiAgd2hvPXRyYW1wCiAgZWNobyAiaGVsbG8gJHdobyIK IytlbmRfc3JjCgoqIEZhaWxzCgojK2JlZ2luX3NyYyBzaCA6ZGlyIC9zc2g6dXNlckBob3N0OiA6 c3RkaW4gaW5wdXQKICByZWFkIC1yIHdobwogIGVjaG8gImhlbGxvICR3aG8iCiMrZW5kX3NyYwo= --06d6a98fa1be4864613d27800fe61d4a89917b7dabc22d60a84b712f53d0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=current-state.el Content-Type: text/x-emacs-lisp; charset=utf-8; name=current-state.el KHNldHEKIG9yZy1saW5rLWVsaXNwLWNvbmZpcm0tZnVuY3Rpb24gJ3llcy1vci1uby1wCiBvcmct YmlidGV4LWhlYWRsaW5lLWZvcm1hdC1mdW5jdGlvbiAnKGNsb3N1cmUKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKG9yZy1pZC1sb2NhdGlvbnMKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy1hZ2VuZGEtc2VhcmNoLXZpZXctYWx3YXlzLWJv b2xlYW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy1hZ2VuZGEt b3ZlcnJpZGluZy1oZWFkZXIgdCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGVudHJ5KSAoY2RyIChhc3NxIDp0aXRsZSBlbnRyeSkpKQogb3JnLXBlcnNpc3QtYWZ0ZXIt cmVhZC1ob29rICcob3JnLWVsZW1lbnQtLWNhY2hlLXBlcnNpc3QtYWZ0ZXItcmVhZCkKIG9yZy1l eHBvcnQtYmVmb3JlLXBhcnNpbmctaG9vayAnKG9yZy1hdHRhY2gtZXhwYW5kLWxpbmtzKQogb3Jn LWN5Y2xlLXRhYi1maXJzdC1ob29rICcob3JnLWJhYmVsLWhpZGUtcmVzdWx0LXRvZ2dsZS1tYXli ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JnLWJhYmVsLWhlYWRlci1hcmctZXhwYW5k KQogb3JnLWFyY2hpdmUtaG9vayAnKG9yZy1hdHRhY2gtYXJjaGl2ZS1kZWxldGUtbWF5YmUpCiBv cmctZmlsZS1hcHBzICcoKCJcXC5wbmdcXCciIC4gInNldHNpZCAtdyB4ZGctb3BlbiAlcyIpIChh dXRvLW1vZGUgLiBlbWFjcykKICAgICAgICAgICAgICAgICAoZGlyZWN0b3J5IC4gZW1hY3MpICgi XFwubW1cXCciIC4gZGVmYXVsdCkKICAgICAgICAgICAgICAgICAoIlxcLng/aHRtbD9cXCciIC4g ZGVmYXVsdCkgKCJcXC5wZGZcXCciIC4gZGVmYXVsdCkpCiBvcmctY3ljbGUtaG9vayAnKG9yZy1j eWNsZS1oaWRlLWFyY2hpdmVkLXN1YnRyZWVzIG9yZy1jeWNsZS1zaG93LWVtcHR5LWxpbmVzCiAg ICAgICAgICAgICAgICAgIG9yZy1jeWNsZS1vcHRpbWl6ZS13aW5kb3ctYWZ0ZXItdmlzaWJpbGl0 eS1jaGFuZ2UpCiBvcmctcGVyc2lzdC1iZWZvcmUtcmVhZC1ob29rICcob3JnLWVsZW1lbnQtLWNh Y2hlLXBlcnNpc3QtYmVmb3JlLXJlYWQpCiBvcmctbW9kZS1ob29rICcoKGNsb3N1cmUKICAgICAg ICAgICAgICAgICAgKG9yZy0tcmRzIHJlZnRleC1kb2NzdHJ1Y3Qtc3ltYm9sIG9yZy1lbGVtZW50 LWdyZWF0ZXItZWxlbWVudHMKICAgICAgICAgICAgICAgICAgIHZpc3VhbC1maWxsLWNvbHVtbi13 aWR0aCBvcmctY2xvY2staGlzdG9yeQogICAgICAgICAgICAgICAgICAgb3JnLWFnZW5kYS1jdXJy ZW50LWRhdGUgb3JnLXdpdGgtdGltZSBvcmctZGVmZGVjb2RlIG9yZy1kZWYKICAgICAgICAgICAg ICAgICAgIG9yZy1yZWFkLWRhdGUtaW5hY3RpdmUgb3JnLWFuczIgb3JnLWFuczEKICAgICAgICAg ICAgICAgICAgIG9yZy1jb2x1bW5zLWN1cnJlbnQtZm10LWNvbXBpbGVkIG9yZy1jbG9jay1jdXJy ZW50LXRhc2sKICAgICAgICAgICAgICAgICAgIG9yZy1jbG9jay1lZmZvcnQgb3JnLWFnZW5kYS1z a2lwLWZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgICBvcmctYWdlbmRhLXNraXAtY29tbWVudC10 cmVlcyBvcmctYWdlbmRhLWFyY2hpdmVzLW1vZGUKICAgICAgICAgICAgICAgICAgIG9yZy1lbmQt dGltZS13YXMtZ2l2ZW4gb3JnLXRpbWUtd2FzLWdpdmVuIG9yZy1sb2ctbm90ZS1leHRyYQogICAg ICAgICAgICAgICAgICAgb3JnLWxvZy1ub3RlLXB1cnBvc2Ugb3JnLWxvZy1wb3N0LW1lc3NhZ2UK ICAgICAgICAgICAgICAgICAgIG9yZy1sYXN0LWluc2VydGVkLXRpbWVzdGFtcCBvcmctbGFzdC1j aGFuZ2VkLXRpbWVzdGFtcAogICAgICAgICAgICAgICAgICAgb3JnLWVudHJ5LXByb3BlcnR5LWlu aGVyaXRlZC1mcm9tIG9yZy1ibG9ja2VkLWJ5LWNoZWNrYm94ZXMKICAgICAgICAgICAgICAgICAg IG9yZy1zdGF0ZSBvcmctYWdlbmRhLWhlYWRsaW5lLXNuYXBzaG90LWJlZm9yZS1yZXBlYXQKICAg ICAgICAgICAgICAgICAgIG9yZy1hZ2VuZGEtYnVmZmVyLW5hbWUgb3JnLWFnZW5kYS1zdGFydC1v bi13ZWVrZGF5CiAgICAgICAgICAgICAgICAgICBvcmctYWdlbmRhLWJ1ZmZlci10bXAtbmFtZSBv cmctcHJpb3JpdHktcmVnZXhwCiAgICAgICAgICAgICAgICAgICBvcmctbW9kZS1hYmJyZXYtdGFi bGUgb3JnLW1vZGUtc3ludGF4LXRhYmxlCiAgICAgICAgICAgICAgICAgICBvcmctZWxlbWVudC11 c2UtY2FjaGUgb3JnLWVsZW1lbnQtY2FjaGUtcGVyc2lzdGVudAogICAgICAgICAgICAgICAgICAg YnVmZmVyLWZhY2UtbW9kZS1mYWNlIG9yZy10YmwtbWVudSBvcmctb3JnLW1lbnUKICAgICAgICAg ICAgICAgICAgIG9yZy1zdHJ1Y3QtbWVudSBvcmctZW50aXRpZXMgb3JnLWxhc3Qtc3RhdGUKICAg ICAgICAgICAgICAgICAgIG9yZy1pZC10cmFjay1nbG9iYWxseSBvcmctY2xvY2stc3RhcnQtdGlt ZSB0ZXhtYXRocC13aHkKICAgICAgICAgICAgICAgICAgIHJlbWVtYmVyLWRhdGEtZmlsZSBvcmct YWdlbmRhLXRhZ3MtdG9kby1ob25vci1pZ25vcmUtb3B0aW9ucwogICAgICAgICAgICAgICAgICAg aXN3aXRjaGItdGVtcC1idWZsaXN0IGFsaWduLW1vZGUtcnVsZXMtbGlzdCBvcmctZW1waGFzaXMt YWxpc3QKICAgICAgICAgICAgICAgICAgIG9yZy1lbXBoYXNpcy1yZWdleHAtY29tcG9uZW50cyBv cmctZXhwb3J0LXJlZ2lzdGVyZWQtYmFja2VuZHMKICAgICAgICAgICAgICAgICAgIG9yZy1tb2R1 bGVzIGNybS1zZXBhcmF0b3Igb3JnLWJhYmVsLWxvYWQtbGFuZ3VhZ2VzCiAgICAgICAgICAgICAg ICAgICBvcmctaWQtb3ZlcnJpZGluZy1maWxlLW5hbWUgb3JnLWluZGVudC1pbmRlbnRhdGlvbi1w ZXItbGV2ZWwKICAgICAgICAgICAgICAgICAgIG9yZy1lbGVtZW50LS10aW1lc3RhbXAtcmVnZXhw CiAgICAgICAgICAgICAgICAgICBvcmctZWxlbWVudC1jYWNoZS1tYXAtY29udGludWUtZnJvbQog ICAgICAgICAgICAgICAgICAgb3JnLWVsZW1lbnQtcGFyYWdyYXBoLXNlcGFyYXRlIG9yZy1hZ2Vu ZGEtYnVmZmVyLW5hbWUKICAgICAgICAgICAgICAgICAgIG9yZy1pbmxpbmV0YXNrLW1pbi1sZXZl bCB0KQogICAgICAgICAgICAgICAgICBuaWwKICAgICAgICAgICAgICAgICAgKGFkZC1ob29rICdj aGFuZ2UtbWFqb3ItbW9kZS1ob29rICdvcmctZm9sZC1zaG93LWFsbCAnYXBwZW5kCiAgICAgICAg ICAgICAgICAgICAnbG9jYWwpCiAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAo Y2xvc3VyZQogICAgICAgICAgICAgICAgICAob3JnLXNyYy13aW5kb3ctc2V0dXAgKnRoaXMqCiAg ICAgICAgICAgICAgICAgICBvcmctYmFiZWwtY29uZmlybS1ldmFsdWF0ZS1hbnN3ZXItbm8KICAg ICAgICAgICAgICAgICAgIG9yZy1iYWJlbC10YW5nbGUtdW5jb21tZW50LWNvbW1lbnRzCiAgICAg ICAgICAgICAgICAgICBvcmctc3JjLXByZXNlcnZlLWluZGVudGF0aW9uIG9yZy1zcmMtbGFuZy1t b2RlcwogICAgICAgICAgICAgICAgICAgb3JnLWVkaXQtc3JjLWNvbnRlbnQtaW5kZW50YXRpb24g b3JnLWJhYmVsLWxpYnJhcnktb2YtYmFiZWwgdCkKICAgICAgICAgICAgICAgICAgbmlsCiAgICAg ICAgICAgICAgICAgIChhZGQtaG9vayAnY2hhbmdlLW1ham9yLW1vZGUtaG9vayAjJ29yZy1iYWJl bC1zaG93LXJlc3VsdC1hbGwKICAgICAgICAgICAgICAgICAgICdhcHBlbmQgJ2xvY2FsKQogICAg ICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgb3JnLWJhYmVsLXJlc3VsdC1oaWRlLXNw ZWMgb3JnLWJhYmVsLWhpZGUtYWxsLWhhc2hlcwogICAgICAgICAgICAgICAgIChjbG9zdXJlCiAg ICAgICAgICAgICAgICAgIChvcmctYWdlbmRhLXNraXAtcmVnZXhwIG9yZy1mb2xkLWNvcmUtc3R5 bGUKICAgICAgICAgICAgICAgICAgIG9yZy10YWJsZTEtaGxpbmUtcmVnZXhwIG9yZy10YWJsZS10 YWItcmVjb2duaXplcy10YWJsZVwuZWwKICAgICAgICAgICAgICAgICAgIG9yZy10YWJsZS1kYXRh bGluZS1yZWdleHAgb3JnLXRhYmxlLWFueS1ib3JkZXItcmVnZXhwCiAgICAgICAgICAgICAgICAg ICBvcmctYWdlbmRhLXJlc3RyaWN0aW9uLWxvY2stb3ZlcmxheQogICAgICAgICAgICAgICAgICAg b3JnLWFnZW5kYS1vdmVycmlkaW5nLXJlc3RyaWN0aW9uIG9yZy1hZ2VuZGEtZGlhcnktZmlsZQog ICAgICAgICAgICAgICAgICAgb3JnLWNvbXBsZXgtaGVhZGluZy1yZWdleHAgdCkKICAgICAgICAg ICAgICAgICAgbmlsIChzZXRxIGltZW51LWNyZWF0ZS1pbmRleC1mdW5jdGlvbiAnb3JnLWltZW51 LWdldC10cmVlKSkKICAgICAgICAgICAgICAgICBvcmctc2V0dXApCiBvcmctYmFiZWwtbG9hZC1s YW5ndWFnZXMgJygoZW1hY3MtbGlzcCAuIHQpIChzaGVsbCAuIHQpIChodHRwIC4gdCkpCiBvcmct Y29uZmlybS1zaGVsbC1saW5rLWZ1bmN0aW9uICd5ZXMtb3Itbm8tcAogb3V0bGluZS1pc2VhcmNo LW9wZW4taW52aXNpYmxlLWZ1bmN0aW9uICdvdXRsaW5lLWlzZWFyY2gtb3Blbi1pbnZpc2libGUK IG9yZy1hZ2VuZGEtYmVmb3JlLXdyaXRlLWhvb2sgJyhvcmctYWdlbmRhLWFkZC1lbnRyeS10ZXh0 KQogb3JnLXNyYy1tb2RlLWhvb2sgJyhvcmctc3JjLWJhYmVsLWNvbmZpZ3VyZS1lZGl0LWJ1ZmZl cgogICAgICAgICAgICAgICAgICAgICBvcmctc3JjLW1vZGUtY29uZmlndXJlLWVkaXQtYnVmZmVy KQogb3JnLWNvbmZpcm0tZWxpc3AtbGluay1mdW5jdGlvbiAneWVzLW9yLW5vLXAKIG9yZy1zcGVl ZC1jb21tYW5kLWhvb2sgJyhvcmctc3BlZWQtY29tbWFuZC1hY3RpdmF0ZQogICAgICAgICAgICAg ICAgICAgICAgICAgIG9yZy1iYWJlbC1zcGVlZC1jb21tYW5kLWFjdGl2YXRlKQogb3JnLWNvbmZp cm0tYmFiZWwtZXZhbHVhdGUgbmlsCiBvcmctZm9sZC1jb3JlLWlzZWFyY2gtb3Blbi1mdW5jdGlv biAnb3JnLWZvbGQtLWlzZWFyY2gtcmV2ZWFsCiBvcmctcGVyc2lzdC1iZWZvcmUtd3JpdGUtaG9v ayAnKG9yZy1lbGVtZW50LS1jYWNoZS1wZXJzaXN0LWJlZm9yZS13cml0ZSkKIG9yZy10YWItZmly c3QtaG9vayAnKG9yZy1iYWJlbC1oaWRlLXJlc3VsdC10b2dnbGUtbWF5YmUKICAgICAgICAgICAg ICAgICAgICAgIG9yZy1iYWJlbC1oZWFkZXItYXJnLWV4cGFuZCkKIG9yZy1saW5rLXNoZWxsLWNv bmZpcm0tZnVuY3Rpb24gJ3llcy1vci1uby1wCiBvcmctYmFiZWwtcHJlLXRhbmdsZS1ob29rICco c2F2ZS1idWZmZXIpCiBvcmctYWdlbmRhLWxvb3Atb3Zlci1oZWFkbGluZXMtaW4tYWN0aXZlLXJl Z2lvbiBuaWwKIG9yZy1vY2N1ci1ob29rICcob3JnLWZpcnN0LWhlYWRsaW5lLXJlY2VudGVyKQog b3JnLW1ldGFkb3duLWhvb2sgJyhvcmctYmFiZWwtcG9wLXRvLXNlc3Npb24tbWF5YmUpCiBvcmct bGluay1wYXJhbWV0ZXJzICcoKCJhdHRhY2htZW50IiA6Zm9sbG93IG9yZy1hdHRhY2gtZm9sbG93 IDpjb21wbGV0ZQogICAgICAgICAgICAgICAgICAgICAgICBvcmctYXR0YWNoLWNvbXBsZXRlLWxp bmspCiAgICAgICAgICAgICAgICAgICAgICAgKCJpZCIgOmZvbGxvdyBvcmctaWQtb3BlbikKICAg ICAgICAgICAgICAgICAgICAgICAoImV3dyIgOmZvbGxvdyBvcmctZXd3LW9wZW4gOnN0b3JlIG9y Zy1ld3ctc3RvcmUtbGluaykKICAgICAgICAgICAgICAgICAgICAgICAoInJtYWlsIiA6Zm9sbG93 IG9yZy1ybWFpbC1vcGVuIDpzdG9yZQogICAgICAgICAgICAgICAgICAgICAgICBvcmctcm1haWwt c3RvcmUtbGluaykKICAgICAgICAgICAgICAgICAgICAgICAoIm1oZSIgOmZvbGxvdyBvcmctbWhl LW9wZW4gOnN0b3JlIG9yZy1taGUtc3RvcmUtbGluaykKICAgICAgICAgICAgICAgICAgICAgICAo ImlyYyIgOmZvbGxvdyBvcmctaXJjLXZpc2l0IDpzdG9yZSBvcmctaXJjLXN0b3JlLWxpbmsKICAg ICAgICAgICAgICAgICAgICAgICAgOmV4cG9ydCBvcmctaXJjLWV4cG9ydCkKICAgICAgICAgICAg ICAgICAgICAgICAoImluZm8iIDpmb2xsb3cgb3JnLWluZm8tb3BlbiA6ZXhwb3J0IG9yZy1pbmZv LWV4cG9ydAogICAgICAgICAgICAgICAgICAgICAgICA6c3RvcmUgb3JnLWluZm8tc3RvcmUtbGlu aykKICAgICAgICAgICAgICAgICAgICAgICAoImdudXMiIDpmb2xsb3cgb3JnLWdudXMtb3BlbiA6 c3RvcmUgb3JnLWdudXMtc3RvcmUtbGluaykKICAgICAgICAgICAgICAgICAgICAgICAoImRvY3Zp ZXciIDpmb2xsb3cgb3JnLWRvY3ZpZXctb3BlbiA6ZXhwb3J0CiAgICAgICAgICAgICAgICAgICAg ICAgIG9yZy1kb2N2aWV3LWV4cG9ydCA6c3RvcmUgb3JnLWRvY3ZpZXctc3RvcmUtbGluaykKICAg ICAgICAgICAgICAgICAgICAgICAoImJpYnRleCIgOmZvbGxvdyBvcmctYmlidGV4LW9wZW4gOnN0 b3JlCiAgICAgICAgICAgICAgICAgICAgICAgIG9yZy1iaWJ0ZXgtc3RvcmUtbGluaykKICAgICAg ICAgICAgICAgICAgICAgICAoImJiZGIiIDpmb2xsb3cgb3JnLWJiZGItb3BlbiA6ZXhwb3J0IG9y Zy1iYmRiLWV4cG9ydAogICAgICAgICAgICAgICAgICAgICAgICA6Y29tcGxldGUgb3JnLWJiZGIt Y29tcGxldGUtbGluayA6c3RvcmUKICAgICAgICAgICAgICAgICAgICAgICAgb3JnLWJiZGItc3Rv cmUtbGluaykKICAgICAgICAgICAgICAgICAgICAgICAoInczbSIgOnN0b3JlIG9yZy13M20tc3Rv cmUtbGluaykKICAgICAgICAgICAgICAgICAgICAgICAoImRvaSIgOmZvbGxvdyBvcmctbGluay1k b2ktb3BlbiA6ZXhwb3J0CiAgICAgICAgICAgICAgICAgICAgICAgIG9yZy1saW5rLWRvaS1leHBv cnQpCiAgICAgICAgICAgICAgICAgICAgICAgKCJ0cmVlbWFjcyIgOnN0b3JlIHRyZWVtYWNzLXN0 b3JlLW9yZy1saW5rKSAoImZpbGUrc3lzIikKICAgICAgICAgICAgICAgICAgICAgICAoImZpbGUr ZW1hY3MiKSAoInNoZWxsIiA6Zm9sbG93IG9yZy1saW5rLS1vcGVuLXNoZWxsKQogICAgICAgICAg ICAgICAgICAgICAgICgibmV3cyIgOmZvbGxvdwogICAgICAgICAgICAgICAgICAgICAgICAoY2xv c3VyZQogICAgICAgICAgICAgICAgICAgICAgICAgKChzY2hlbWUgLiAibmV3cyIpICgtLWRvbGlz dC10YWlsLS0pIG9yZy10cy1yZWdleHAKICAgICAgICAgICAgICAgICAgICAgICAgICBvcmctdGlt ZS1zdGFtcC1mb3JtYXRzIG9yZy1zcmMtc291cmNlLWZpbGUtbmFtZQogICAgICAgICAgICAgICAg ICAgICAgICAgIG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgb3JnLWluaGliaXQtc3RhcnR1cAogICAg ICAgICAgICAgICAgICAgICAgICAgIG9yZy1pZC1saW5rLXRvLW9yZy11c2UtaWQgb3JnLWhpZ2hs aWdodC1saW5rcwogICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy1jb21tZW50LXN0cmluZyBv cmctYWdlbmRhLWJ1ZmZlci1uYW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYW4tYnVm ZmVyLWxpc3Qta2lsbC1idWZmZXItbmFtZXMgdCkKICAgICAgICAgICAgICAgICAgICAgICAgICh1 cmwgYXJnKSAoYnJvd3NlLXVybCAoY29uY2F0IHNjaGVtZSAiOiIgdXJsKSBhcmcpKQogICAgICAg ICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgKCJtYWlsdG8iIDpmb2xs b3cKICAgICAgICAgICAgICAgICAgICAgICAgKGNsb3N1cmUKICAgICAgICAgICAgICAgICAgICAg ICAgICgoc2NoZW1lIC4gIm1haWx0byIpICgtLWRvbGlzdC10YWlsLS0pIG9yZy10cy1yZWdleHAK ICAgICAgICAgICAgICAgICAgICAgICAgICBvcmctdGltZS1zdGFtcC1mb3JtYXRzIG9yZy1zcmMt c291cmNlLWZpbGUtbmFtZQogICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy1vdXRsaW5lLXJl Z2V4cC1ib2wgb3JnLWluaGliaXQtc3RhcnR1cAogICAgICAgICAgICAgICAgICAgICAgICAgIG9y Zy1pZC1saW5rLXRvLW9yZy11c2UtaWQgb3JnLWhpZ2hsaWdodC1saW5rcwogICAgICAgICAgICAg ICAgICAgICAgICAgIG9yZy1jb21tZW50LXN0cmluZyBvcmctYWdlbmRhLWJ1ZmZlci1uYW1lCiAg ICAgICAgICAgICAgICAgICAgICAgICAgY2xlYW4tYnVmZmVyLWxpc3Qta2lsbC1idWZmZXItbmFt ZXMgdCkKICAgICAgICAgICAgICAgICAgICAgICAgICh1cmwgYXJnKSAoYnJvd3NlLXVybCAoY29u Y2F0IHNjaGVtZSAiOiIgdXJsKSBhcmcpKQogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAg ICAgICAgICAgICAgICAgICAgKCJodHRwcyIgOmZvbGxvdwogICAgICAgICAgICAgICAgICAgICAg ICAoY2xvc3VyZQogICAgICAgICAgICAgICAgICAgICAgICAgKChzY2hlbWUgLiAiaHR0cHMiKSAo LS1kb2xpc3QtdGFpbC0tKSBvcmctdHMtcmVnZXhwCiAgICAgICAgICAgICAgICAgICAgICAgICAg b3JnLXRpbWUtc3RhbXAtZm9ybWF0cyBvcmctc3JjLXNvdXJjZS1maWxlLW5hbWUKICAgICAgICAg ICAgICAgICAgICAgICAgICBvcmctb3V0bGluZS1yZWdleHAtYm9sIG9yZy1pbmhpYml0LXN0YXJ0 dXAKICAgICAgICAgICAgICAgICAgICAgICAgICBvcmctaWQtbGluay10by1vcmctdXNlLWlkIG9y Zy1oaWdobGlnaHQtbGlua3MKICAgICAgICAgICAgICAgICAgICAgICAgICBvcmctY29tbWVudC1z dHJpbmcgb3JnLWFnZW5kYS1idWZmZXItbmFtZQogICAgICAgICAgICAgICAgICAgICAgICAgIGNs ZWFuLWJ1ZmZlci1saXN0LWtpbGwtYnVmZmVyLW5hbWVzIHQpCiAgICAgICAgICAgICAgICAgICAg ICAgICAodXJsIGFyZykgKGJyb3dzZS11cmwgKGNvbmNhdCBzY2hlbWUgIjoiIHVybCkgYXJnKSkK ICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICgiaHR0cCIg OmZvbGxvdwogICAgICAgICAgICAgICAgICAgICAgICAoY2xvc3VyZQogICAgICAgICAgICAgICAg ICAgICAgICAgKChzY2hlbWUgLiAiaHR0cCIpICgtLWRvbGlzdC10YWlsLS0pIG9yZy10cy1yZWdl eHAKICAgICAgICAgICAgICAgICAgICAgICAgICBvcmctdGltZS1zdGFtcC1mb3JtYXRzIG9yZy1z cmMtc291cmNlLWZpbGUtbmFtZQogICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy1vdXRsaW5l LXJlZ2V4cC1ib2wgb3JnLWluaGliaXQtc3RhcnR1cAogICAgICAgICAgICAgICAgICAgICAgICAg IG9yZy1pZC1saW5rLXRvLW9yZy11c2UtaWQgb3JnLWhpZ2hsaWdodC1saW5rcwogICAgICAgICAg ICAgICAgICAgICAgICAgIG9yZy1jb21tZW50LXN0cmluZyBvcmctYWdlbmRhLWJ1ZmZlci1uYW1l CiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYW4tYnVmZmVyLWxpc3Qta2lsbC1idWZmZXIt bmFtZXMgdCkKICAgICAgICAgICAgICAgICAgICAgICAgICh1cmwgYXJnKSAoYnJvd3NlLXVybCAo Y29uY2F0IHNjaGVtZSAiOiIgdXJsKSBhcmcpKQogICAgICAgICAgICAgICAgICAgICAgICApCiAg ICAgICAgICAgICAgICAgICAgICAgKCJmdHAiIDpmb2xsb3cKICAgICAgICAgICAgICAgICAgICAg ICAgKGNsb3N1cmUKICAgICAgICAgICAgICAgICAgICAgICAgICgoc2NoZW1lIC4gImZ0cCIpICgt LWRvbGlzdC10YWlsLS0pIG9yZy10cy1yZWdleHAKICAgICAgICAgICAgICAgICAgICAgICAgICBv cmctdGltZS1zdGFtcC1mb3JtYXRzIG9yZy1zcmMtc291cmNlLWZpbGUtbmFtZQogICAgICAgICAg ICAgICAgICAgICAgICAgIG9yZy1vdXRsaW5lLXJlZ2V4cC1ib2wgb3JnLWluaGliaXQtc3RhcnR1 cAogICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy1pZC1saW5rLXRvLW9yZy11c2UtaWQgb3Jn LWhpZ2hsaWdodC1saW5rcwogICAgICAgICAgICAgICAgICAgICAgICAgIG9yZy1jb21tZW50LXN0 cmluZyBvcmctYWdlbmRhLWJ1ZmZlci1uYW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xl YW4tYnVmZmVyLWxpc3Qta2lsbC1idWZmZXItbmFtZXMgdCkKICAgICAgICAgICAgICAgICAgICAg ICAgICh1cmwgYXJnKSAoYnJvd3NlLXVybCAoY29uY2F0IHNjaGVtZSAiOiIgdXJsKSBhcmcpKQog ICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgKCJoZWxwIiA6 Zm9sbG93IG9yZy1saW5rLS1vcGVuLWhlbHAgOnN0b3JlCiAgICAgICAgICAgICAgICAgICAgICAg IG9yZy1saW5rLS1zdG9yZS1oZWxwKQogICAgICAgICAgICAgICAgICAgICAgICgiZmlsZSIgOmNv bXBsZXRlIG9yZy1saW5rLWNvbXBsZXRlLWZpbGUpCiAgICAgICAgICAgICAgICAgICAgICAgKCJl bGlzcCIgOmZvbGxvdyBvcmctbGluay0tb3Blbi1lbGlzcCkpCiBvcmctbWV0YXVwLWhvb2sgJyhv cmctYmFiZWwtbG9hZC1pbi1zZXNzaW9uLW1heWJlKQogb3JnLXNyYy1sYW5nLW1vZGVzICcoKCJo dHRwIiAuICJvYi1odHRwIikgKCJDIiAuIGMpICgiQysrIiAuIGMrKykKICAgICAgICAgICAgICAg ICAgICAgICgiYXN5bXB0b3RlIiAuIGFzeSkgKCJiYXNoIiAuIHNoKSAoImJlYW1lciIgLiBsYXRl eCkKICAgICAgICAgICAgICAgICAgICAgICgiY2FsYyIgLiBmdW5kYW1lbnRhbCkgKCJjcHAiIC4g YysrKSAoImRpdGFhIiAuIGFydGlzdCkKICAgICAgICAgICAgICAgICAgICAgICgiZGVza3RvcCIg LiBjb25mLWRlc2t0b3ApICgiZG90IiAuIGZ1bmRhbWVudGFsKQogICAgICAgICAgICAgICAgICAg ICAgKCJlbGlzcCIgLiBlbWFjcy1saXNwKSAoIm9jYW1sIiAuIHR1YXJlZykKICAgICAgICAgICAg ICAgICAgICAgICgic2NyZWVuIiAuIHNoZWxsLXNjcmlwdCkgKCJzaGVsbCIgLiBzaCkgKCJzcWxp dGUiIC4gc3FsKQogICAgICAgICAgICAgICAgICAgICAgKCJ0b21sIiAuIGNvbmYtdG9tbCkpCiAp Cg== --06d6a98fa1be4864613d27800fe61d4a89917b7dabc22d60a84b712f53d0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=backtrace.el Content-Type: text/x-emacs-lisp; charset=utf-8; name=backtrace.el RGVidWdnZXIgZW50ZXJlZC0tTGlzcCBlcnJvcjogKGZpbGUtbWlzc2luZyAiT3BlbmluZyBwcm9j ZXNzIGlucHV0IGZpbGUiICJObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5IiAiL3NzaDpyb290QGNv cmVib290Lmx4ZDovdG1wL3NoLXN0ZGluLXNUYzR2eSIpCiAgY2FsbC1wcm9jZXNzKCJzaCIgIi9z c2g6cm9vdEBjb3JlYm9vdC5seGQ6L3RtcC9zaC1zdGRpbi1zVGM0dnkiICM8YnVmZmVyICAqdGVt cCo+IG5pbCAiLWMiICJzaCAvc3NoOnJvb3RAY29yZWJvb3QubHhkOi90bXAvc2gtc2NyaXB0LWRP T3JHQSIpCiAgY2FsbC1wcm9jZXNzLXNoZWxsLWNvbW1hbmQoInNoIC9zc2g6cm9vdEBjb3JlYm9v dC5seGQ6L3RtcC9zaC1zY3JpcHQtZE9PckdBIiAiL3NzaDpyb290QGNvcmVib290Lmx4ZDovdG1w L3NoLXN0ZGluLXNUYzR2eSIgIzxidWZmZXIgICp0ZW1wKj4pCiAgKHByb2duIChjYWxsLXByb2Nl c3Mtc2hlbGwtY29tbWFuZCAoY29uY2F0IChpZiBzaGViYW5nIHNjcmlwdC1maWxlIChmb3JtYXQg IiVzICVzIiBzaGVsbC1maWxlLW5hbWUgc2NyaXB0LWZpbGUpKSAoYW5kIGNtZGxpbmUgKGNvbmNh dCAiICIgY21kbGluZSkpKSBzdGRpbi1maWxlIChjdXJyZW50LWJ1ZmZlcikpIChidWZmZXItc3Ry aW5nKSkKICAodW53aW5kLXByb3RlY3QgKHByb2duIChjYWxsLXByb2Nlc3Mtc2hlbGwtY29tbWFu ZCAoY29uY2F0IChpZiBzaGViYW5nIHNjcmlwdC1maWxlIChmb3JtYXQgIiVzICVzIiBzaGVsbC1m aWxlLW5hbWUgc2NyaXB0LWZpbGUpKSAoYW5kIGNtZGxpbmUgKGNvbmNhdCAiICIgY21kbGluZSkp KSBzdGRpbi1maWxlIChjdXJyZW50LWJ1ZmZlcikpIChidWZmZXItc3RyaW5nKSkgKGFuZCAoYnVm ZmVyLW5hbWUgdGVtcC1idWZmZXIpIChraWxsLWJ1ZmZlciB0ZW1wLWJ1ZmZlcikpKQogIChzYXZl LWN1cnJlbnQtYnVmZmVyIChzZXQtYnVmZmVyIHRlbXAtYnVmZmVyKSAodW53aW5kLXByb3RlY3Qg KHByb2duIChjYWxsLXByb2Nlc3Mtc2hlbGwtY29tbWFuZCAoY29uY2F0IChpZiBzaGViYW5nIHNj cmlwdC1maWxlIChmb3JtYXQgIiVzICVzIiBzaGVsbC1maWxlLW5hbWUgc2NyaXB0LWZpbGUpKSAo YW5kIGNtZGxpbmUgKGNvbmNhdCAiICIgY21kbGluZSkpKSBzdGRpbi1maWxlIChjdXJyZW50LWJ1 ZmZlcikpIChidWZmZXItc3RyaW5nKSkgKGFuZCAoYnVmZmVyLW5hbWUgdGVtcC1idWZmZXIpIChr aWxsLWJ1ZmZlciB0ZW1wLWJ1ZmZlcikpKSkKICAobGV0ICgodGVtcC1idWZmZXIgKGdlbmVyYXRl LW5ldy1idWZmZXIgIiAqdGVtcCoiIHQpKSkgKHNhdmUtY3VycmVudC1idWZmZXIgKHNldC1idWZm ZXIgdGVtcC1idWZmZXIpICh1bndpbmQtcHJvdGVjdCAocHJvZ24gKGNhbGwtcHJvY2Vzcy1zaGVs bC1jb21tYW5kIChjb25jYXQgKGlmIHNoZWJhbmcgc2NyaXB0LWZpbGUgKGZvcm1hdCAiJXMgJXMi IHNoZWxsLWZpbGUtbmFtZSBzY3JpcHQtZmlsZSkpIChhbmQgY21kbGluZSAoY29uY2F0ICIgIiBj bWRsaW5lKSkpIHN0ZGluLWZpbGUgKGN1cnJlbnQtYnVmZmVyKSkgKGJ1ZmZlci1zdHJpbmcpKSAo YW5kIChidWZmZXItbmFtZSB0ZW1wLWJ1ZmZlcikgKGtpbGwtYnVmZmVyIHRlbXAtYnVmZmVyKSkp KSkKICAobGV0ICgoc2NyaXB0LWZpbGUgKG9yZy1iYWJlbC10ZW1wLWZpbGUgInNoLXNjcmlwdC0i KSkgKHN0ZGluLWZpbGUgKG9yZy1iYWJlbC10ZW1wLWZpbGUgInNoLXN0ZGluLSIpKSAocGFkbGlu ZSAobm90IChzdHJpbmc9ICJubyIgKGNkciAoYXNzcSA6cGFkbGluZSBwYXJhbXMpKSkpKSkgKGxl dCAoKHRlbXAtZmlsZSBzY3JpcHQtZmlsZSkgKHRlbXAtYnVmZmVyIChnZW5lcmF0ZS1uZXctYnVm ZmVyICIgKnRlbXAgZmlsZSoiIHQpKSkgKHVud2luZC1wcm90ZWN0IChwcm9nMSAoc2F2ZS1jdXJy ZW50LWJ1ZmZlciAoc2V0LWJ1ZmZlciB0ZW1wLWJ1ZmZlcikgKGlmIHNoZWJhbmcgKHByb2duIChp bnNlcnQgc2hlYmFuZyAiXG4iKSkpIChpZiBwYWRsaW5lIChwcm9nbiAoaW5zZXJ0ICJcbiIpKSkg KGluc2VydCBib2R5KSkgKHNhdmUtY3VycmVudC1idWZmZXIgKHNldC1idWZmZXIgdGVtcC1idWZm ZXIpICh3cml0ZS1yZWdpb24gbmlsIG5pbCB0ZW1wLWZpbGUgbmlsIDApKSkgKGFuZCAoYnVmZmVy LW5hbWUgdGVtcC1idWZmZXIpIChraWxsLWJ1ZmZlciB0ZW1wLWJ1ZmZlcikpKSkgKHNldC1maWxl LW1vZGVzIHNjcmlwdC1maWxlIDQ5MykgKGxldCAoKHRlbXAtZmlsZSBzdGRpbi1maWxlKSAodGVt cC1idWZmZXIgKGdlbmVyYXRlLW5ldy1idWZmZXIgIiAqdGVtcCBmaWxlKiIgdCkpKSAodW53aW5k LXByb3RlY3QgKHByb2cxIChzYXZlLWN1cnJlbnQtYnVmZmVyIChzZXQtYnVmZmVyIHRlbXAtYnVm ZmVyKSAoaW5zZXJ0IChvciBzdGRpbiAiIikpKSAoc2F2ZS1jdXJyZW50LWJ1ZmZlciAoc2V0LWJ1 ZmZlciB0ZW1wLWJ1ZmZlcikgKHdyaXRlLXJlZ2lvbiBuaWwgbmlsIHRlbXAtZmlsZSBuaWwgMCkp KSAoYW5kIChidWZmZXItbmFtZSB0ZW1wLWJ1ZmZlcikgKGtpbGwtYnVmZmVyIHRlbXAtYnVmZmVy KSkpKSAobGV0ICgodGVtcC1idWZmZXIgKGdlbmVyYXRlLW5ldy1idWZmZXIgIiAqdGVtcCoiIHQp KSkgKHNhdmUtY3VycmVudC1idWZmZXIgKHNldC1idWZmZXIgdGVtcC1idWZmZXIpICh1bndpbmQt cHJvdGVjdCAocHJvZ24gKGNhbGwtcHJvY2Vzcy1zaGVsbC1jb21tYW5kIChjb25jYXQgKGlmIHNo ZWJhbmcgc2NyaXB0LWZpbGUgLi4uKSAoYW5kIGNtZGxpbmUgLi4uKSkgc3RkaW4tZmlsZSAoY3Vy cmVudC1idWZmZXIpKSAoYnVmZmVyLXN0cmluZykpIChhbmQgKGJ1ZmZlci1uYW1lIHRlbXAtYnVm ZmVyKSAoa2lsbC1idWZmZXIgdGVtcC1idWZmZXIpKSkpKSkKICAoY29uZCAoKG9yIHN0ZGluIGNt ZGxpbmUpIChsZXQgKChzY3JpcHQtZmlsZSAob3JnLWJhYmVsLXRlbXAtZmlsZSAic2gtc2NyaXB0 LSIpKSAoc3RkaW4tZmlsZSAob3JnLWJhYmVsLXRlbXAtZmlsZSAic2gtc3RkaW4tIikpIChwYWRs aW5lIChub3QgKHN0cmluZz0gIm5vIiAoY2RyIC4uLikpKSkpIChsZXQgKCh0ZW1wLWZpbGUgc2Ny aXB0LWZpbGUpICh0ZW1wLWJ1ZmZlciAoZ2VuZXJhdGUtbmV3LWJ1ZmZlciAiICp0ZW1wIGZpbGUq IiB0KSkpICh1bndpbmQtcHJvdGVjdCAocHJvZzEgKHNhdmUtY3VycmVudC1idWZmZXIgKHNldC1i dWZmZXIgdGVtcC1idWZmZXIpIChpZiBzaGViYW5nIC4uLikgKGlmIHBhZGxpbmUgLi4uKSAoaW5z ZXJ0IGJvZHkpKSAoc2F2ZS1jdXJyZW50LWJ1ZmZlciAoc2V0LWJ1ZmZlciB0ZW1wLWJ1ZmZlcikg KHdyaXRlLXJlZ2lvbiBuaWwgbmlsIHRlbXAtZmlsZSBuaWwgMCkpKSAoYW5kIChidWZmZXItbmFt ZSB0ZW1wLWJ1ZmZlcikgKGtpbGwtYnVmZmVyIHRlbXAtYnVmZmVyKSkpKSAoc2V0LWZpbGUtbW9k ZXMgc2NyaXB0LWZpbGUgNDkzKSAobGV0ICgodGVtcC1maWxlIHN0ZGluLWZpbGUpICh0ZW1wLWJ1 ZmZlciAoZ2VuZXJhdGUtbmV3LWJ1ZmZlciAiICp0ZW1wIGZpbGUqIiB0KSkpICh1bndpbmQtcHJv dGVjdCAocHJvZzEgKHNhdmUtY3VycmVudC1idWZmZXIgKHNldC1idWZmZXIgdGVtcC1idWZmZXIp IChpbnNlcnQgLi4uKSkgKHNhdmUtY3VycmVudC1idWZmZXIgKHNldC1idWZmZXIgdGVtcC1idWZm ZXIpICh3cml0ZS1yZWdpb24gbmlsIG5pbCB0ZW1wLWZpbGUgbmlsIDApKSkgKGFuZCAoYnVmZmVy LW5hbWUgdGVtcC1idWZmZXIpIChraWxsLWJ1ZmZlciB0ZW1wLWJ1ZmZlcikpKSkgKGxldCAoKHRl bXAtYnVmZmVyIChnZW5lcmF0ZS1uZXctYnVmZmVyICIgKnRlbXAqIiB0KSkpIChzYXZlLWN1cnJl bnQtYnVmZmVyIChzZXQtYnVmZmVyIHRlbXAtYnVmZmVyKSAodW53aW5kLXByb3RlY3QgKHByb2du IChjYWxsLXByb2Nlc3Mtc2hlbGwtY29tbWFuZCAuLi4gc3RkaW4tZmlsZSAuLi4pIChidWZmZXIt c3RyaW5nKSkgKGFuZCAoYnVmZmVyLW5hbWUgdGVtcC1idWZmZXIpIChraWxsLWJ1ZmZlciB0ZW1w LWJ1ZmZlcikpKSkpKSkgKHNlc3Npb24gKG1hcGNvbmNhdCAjJ29yZy1iYWJlbC1zaC1zdHJpcC13 ZWlyZC1sb25nLXByb21wdCAobWFwY2FyICMnb3JnLXRyaW0gKGJ1dGxhc3QgKHByb2duIChpZiAo b3JnLWJhYmVsLWNvbWludC1idWZmZXItbGl2ZXAgc2Vzc2lvbikgbmlsIChlcnJvciAiQnVmZmVy ICVzIGRvZXMgbm90IGV4aXN0IG9yIGhhcyBubyBwcm9jZXNzIiBzZXNzaW9uKSkgKGxldCAoLi4u KSAodW53aW5kLXByb3RlY3QgLi4uIC4uLikpKSAyKSkgIlxuIikpICgob3JnLXN0cmluZy1udy1w IHNoZWJhbmcpIChsZXQgKChzY3JpcHQtZmlsZSAob3JnLWJhYmVsLXRlbXAtZmlsZSAic2gtc2Ny aXB0LSIpKSAocGFkbGluZSAobm90IChlcXVhbCAibm8iIChjZHIgLi4uKSkpKSkgKGxldCAoKHRl bXAtZmlsZSBzY3JpcHQtZmlsZSkgKHRlbXAtYnVmZmVyIChnZW5lcmF0ZS1uZXctYnVmZmVyICIg KnRlbXAgZmlsZSoiIHQpKSkgKHVud2luZC1wcm90ZWN0IChwcm9nMSAoc2F2ZS1jdXJyZW50LWJ1 ZmZlciAoc2V0LWJ1ZmZlciB0ZW1wLWJ1ZmZlcikgKGluc2VydCBzaGViYW5nICJcbiIpIChpZiBw YWRsaW5lIC4uLikgKGluc2VydCBib2R5KSkgKHNhdmUtY3VycmVudC1idWZmZXIgKHNldC1idWZm ZXIgdGVtcC1idWZmZXIpICh3cml0ZS1yZWdpb24gbmlsIG5pbCB0ZW1wLWZpbGUgbmlsIDApKSkg KGFuZCAoYnVmZmVyLW5hbWUgdGVtcC1idWZmZXIpIChraWxsLWJ1ZmZlciB0ZW1wLWJ1ZmZlcikp KSkgKHNldC1maWxlLW1vZGVzIHNjcmlwdC1maWxlIDQ5MykgKG9yZy1iYWJlbC1ldmFsIHNjcmlw dC1maWxlICIiKSkpICh0IChvcmctYmFiZWwtZXZhbCBzaGVsbC1maWxlLW5hbWUgKG9yZy10cmlt IGJvZHkpKSkpCiAgKGxldCogKChzaGViYW5nIChjZHIgKGFzc3EgOnNoZWJhbmcgcGFyYW1zKSkp IChyZXN1bHRzLXBhcmFtcyAoY2RyIChhc3NxIDpyZXN1bHQtcGFyYW1zIHBhcmFtcykpKSAodmFs dWUtaXMtZXhpdC1zdGF0dXMgKG9yIChhbmQgKGVxdWFsICcoInJlcGxhY2UiKSByZXN1bHRzLXBh cmFtcykgKG5vdCBvcmctYmFiZWwtc2hlbGwtcmVzdWx0cy1kZWZhdWx0cy10by1vdXRwdXQpKSAo bWVtYmVyICJ2YWx1ZSIgcmVzdWx0cy1wYXJhbXMpKSkgKHJlc3VsdHMgKGNvbmQgKChvciBzdGRp biBjbWRsaW5lKSAobGV0ICgoc2NyaXB0LWZpbGUgLi4uKSAoc3RkaW4tZmlsZSAuLi4pIChwYWRs aW5lIC4uLikpIChsZXQgKC4uLiAuLi4pICh1bndpbmQtcHJvdGVjdCAuLi4gLi4uKSkgKHNldC1m aWxlLW1vZGVzIHNjcmlwdC1maWxlIDQ5MykgKGxldCAoLi4uIC4uLikgKHVud2luZC1wcm90ZWN0 IC4uLiAuLi4pKSAobGV0ICguLi4pIChzYXZlLWN1cnJlbnQtYnVmZmVyIC4uLiAuLi4pKSkpIChz ZXNzaW9uIChtYXBjb25jYXQgIydvcmctYmFiZWwtc2gtc3RyaXAtd2VpcmQtbG9uZy1wcm9tcHQg KG1hcGNhciAjJ29yZy10cmltIChidXRsYXN0IC4uLiAyKSkgIlxuIikpICgob3JnLXN0cmluZy1u dy1wIHNoZWJhbmcpIChsZXQgKChzY3JpcHQtZmlsZSAuLi4pIChwYWRsaW5lIC4uLikpIChsZXQg KC4uLiAuLi4pICh1bndpbmQtcHJvdGVjdCAuLi4gLi4uKSkgKHNldC1maWxlLW1vZGVzIHNjcmlw dC1maWxlIDQ5MykgKG9yZy1iYWJlbC1ldmFsIHNjcmlwdC1maWxlICIiKSkpICh0IChvcmctYmFi ZWwtZXZhbCBzaGVsbC1maWxlLW5hbWUgKG9yZy10cmltIGJvZHkpKSkpKSkgKGlmIHZhbHVlLWlz LWV4aXQtc3RhdHVzIChwcm9nbiAoc2V0cSByZXN1bHRzIChjYXIgKHJldmVyc2UgKHNwbGl0LXN0 cmluZyByZXN1bHRzICJcbiIgdCkpKSkpKSAoaWYgcmVzdWx0cyAocHJvZ24gKGxldCAoKHJlc3Vs dC1wYXJhbXMgKGNkciAoYXNzcSA6cmVzdWx0LXBhcmFtcyBwYXJhbXMpKSkpIChsZXQgKCgtLXBh cmFtcyByZXN1bHQtcGFyYW1zKSkgKGlmIChtZW1iZXIgIm5vbmUiIC0tcGFyYW1zKSBuaWwgKGlm IChvciAuLi4gLi4uIC4uLiAuLi4gLi4uIC4uLiAuLi4pIHJlc3VsdHMgKGxldCAuLi4gLi4uIC4u LikpKSkpKSkpCiAgb3JnLWJhYmVsLXNoLWV2YWx1YXRlKG5pbCAicmVhZCAtciB3aG9cbmVjaG8g XCJoZWxsbyAkd2hvXCIiICgoOmNvbG5hbWUtbmFtZXMpICg6cm93bmFtZS1uYW1lcykgKDpyZXN1 bHQtcGFyYW1zICJyZXBsYWNlIikgKDpyZXN1bHQtdHlwZSAuIHZhbHVlKSAoOnJlc3VsdHMgLiAi cmVwbGFjZSIpICg6ZXhwb3J0cyAuICJjb2RlIikgKDpzZXNzaW9uIC4gIm5vbmUiKSAoOmNhY2hl IC4gIm5vIikgKDpub3dlYiAuICJubyIpICg6aGxpbmVzIC4gIm5vIikgKDp0YW5nbGUgLiAibm8i KSAoOmRpciAuICIvc3NoOnJvb3RAY29yZWJvb3QubHhkOiIpICg6c3RkaW4gLiAiaW5wdXQiKSkg InRyYW1wXG4iIG5pbCkKICAob3JnLWJhYmVsLXJlYXNzZW1ibGUtdGFibGUgKG9yZy1iYWJlbC1z aC1ldmFsdWF0ZSBzZXNzaW9uIGZ1bGwtYm9keSBwYXJhbXMgc3RkaW4gY21kbGluZSkgKG9yZy1i YWJlbC1waWNrLW5hbWUgKGNkciAoYXNzcSA6Y29sbmFtZS1uYW1lcyBwYXJhbXMpKSAoY2RyIChh c3NxIDpjb2xuYW1lcyBwYXJhbXMpKSkgKG9yZy1iYWJlbC1waWNrLW5hbWUgKGNkciAoYXNzcSA6 cm93bmFtZS1uYW1lcyBwYXJhbXMpKSAoY2RyIChhc3NxIDpyb3duYW1lcyBwYXJhbXMpKSkpCiAg KGxldCogKChzZXNzaW9uIChvcmctYmFiZWwtc2gtaW5pdGlhdGUtc2Vzc2lvbiAoY2RyIChhc3Nx IDpzZXNzaW9uIHBhcmFtcykpKSkgKHN0ZGluIChsZXQgKChzdGRpbiAoY2RyIChhc3NxIDpzdGRp biBwYXJhbXMpKSkpIChpZiBzdGRpbiAocHJvZ24gKG9yZy1iYWJlbC1zaC12YXItdG8tc3RyaW5n IChvcmctYmFiZWwtcmVmLXJlc29sdmUgc3RkaW4pKSkpKSkgKHJlc3VsdHMtcGFyYW1zIChjZHIg KGFzc3EgOnJlc3VsdC1wYXJhbXMgcGFyYW1zKSkpICh2YWx1ZS1pcy1leGl0LXN0YXR1cyAob3Ig KGFuZCAoZXF1YWwgJygicmVwbGFjZSIpIHJlc3VsdHMtcGFyYW1zKSAobm90IG9yZy1iYWJlbC1z aGVsbC1yZXN1bHRzLWRlZmF1bHRzLXRvLW91dHB1dCkpIChtZW1iZXIgInZhbHVlIiByZXN1bHRz LXBhcmFtcykpKSAoY21kbGluZSAoY2RyIChhc3NxIDpjbWRsaW5lIHBhcmFtcykpKSAoZnVsbC1i b2R5IChjb25jYXQgKG9yZy1iYWJlbC1leHBhbmQtYm9keTpnZW5lcmljIGJvZHkgcGFyYW1zIChv cmctYmFiZWwtdmFyaWFibGUtYXNzaWdubWVudHM6c2hlbGwgcGFyYW1zKSkgKGlmIHZhbHVlLWlz LWV4aXQtc3RhdHVzIChwcm9nbiAiXG5lY2hvICQ/IikpKSkpIChvcmctYmFiZWwtcmVhc3NlbWJs ZS10YWJsZSAob3JnLWJhYmVsLXNoLWV2YWx1YXRlIHNlc3Npb24gZnVsbC1ib2R5IHBhcmFtcyBz dGRpbiBjbWRsaW5lKSAob3JnLWJhYmVsLXBpY2stbmFtZSAoY2RyIChhc3NxIDpjb2xuYW1lLW5h bWVzIHBhcmFtcykpIChjZHIgKGFzc3EgOmNvbG5hbWVzIHBhcmFtcykpKSAob3JnLWJhYmVsLXBp Y2stbmFtZSAoY2RyIChhc3NxIDpyb3duYW1lLW5hbWVzIHBhcmFtcykpIChjZHIgKGFzc3EgOnJv d25hbWVzIHBhcmFtcykpKSkpCiAgb3JnLWJhYmVsLWV4ZWN1dGU6c2hlbGwoInJlYWQgLXIgd2hv XG5lY2hvIFwiaGVsbG8gJHdob1wiIiAoKDpjb2xuYW1lLW5hbWVzKSAoOnJvd25hbWUtbmFtZXMp ICg6cmVzdWx0LXBhcmFtcyAicmVwbGFjZSIpICg6cmVzdWx0LXR5cGUgLiB2YWx1ZSkgKDpyZXN1 bHRzIC4gInJlcGxhY2UiKSAoOmV4cG9ydHMgLiAiY29kZSIpICg6c2Vzc2lvbiAuICJub25lIikg KDpjYWNoZSAuICJubyIpICg6bm93ZWIgLiAibm8iKSAoOmhsaW5lcyAuICJubyIpICg6dGFuZ2xl IC4gIm5vIikgKDpkaXIgLiAiL3NzaDpyb290QGNvcmVib290Lmx4ZDoiKSAoOnN0ZGluIC4gImlu cHV0IikpKQogIChsZXQgKChzaGVsbC1maWxlLW5hbWUgInNoIikpIChvcmctYmFiZWwtZXhlY3V0 ZTpzaGVsbCBib2R5IHBhcmFtcykpCiAgb3JnLWJhYmVsLWV4ZWN1dGU6c2goInJlYWQgLXIgd2hv XG5lY2hvIFwiaGVsbG8gJHdob1wiIiAoKDpjb2xuYW1lLW5hbWVzKSAoOnJvd25hbWUtbmFtZXMp ICg6cmVzdWx0LXBhcmFtcyAicmVwbGFjZSIpICg6cmVzdWx0LXR5cGUgLiB2YWx1ZSkgKDpyZXN1 bHRzIC4gInJlcGxhY2UiKSAoOmV4cG9ydHMgLiAiY29kZSIpICg6c2Vzc2lvbiAuICJub25lIikg KDpjYWNoZSAuICJubyIpICg6bm93ZWIgLiAibm8iKSAoOmhsaW5lcyAuICJubyIpICg6dGFuZ2xl IC4gIm5vIikgKDpkaXIgLiAiL3NzaDpyb290QGNvcmVib290Lmx4ZDoiKSAoOnN0ZGluIC4gImlu cHV0IikpKQogIGZ1bmNhbGwob3JnLWJhYmVsLWV4ZWN1dGU6c2ggInJlYWQgLXIgd2hvXG5lY2hv IFwiaGVsbG8gJHdob1wiIiAoKDpjb2xuYW1lLW5hbWVzKSAoOnJvd25hbWUtbmFtZXMpICg6cmVz dWx0LXBhcmFtcyAicmVwbGFjZSIpICg6cmVzdWx0LXR5cGUgLiB2YWx1ZSkgKDpyZXN1bHRzIC4g InJlcGxhY2UiKSAoOmV4cG9ydHMgLiAiY29kZSIpICg6c2Vzc2lvbiAuICJub25lIikgKDpjYWNo ZSAuICJubyIpICg6bm93ZWIgLiAibm8iKSAoOmhsaW5lcyAuICJubyIpICg6dGFuZ2xlIC4gIm5v IikgKDpkaXIgLiAiL3NzaDpyb290QGNvcmVib290Lmx4ZDoiKSAoOnN0ZGluIC4gImlucHV0Iikp KQogIChsZXQgKChyIChmdW5jYWxsIGNtZCBib2R5IHBhcmFtcykpKSAoaWYgKGFuZCAoZXEgKGNk ciAoYXNzcSA6cmVzdWx0LXR5cGUgcGFyYW1zKSkgJ3ZhbHVlKSAob3IgKG1lbWJlciAidmVjdG9y IiByZXN1bHQtcGFyYW1zKSAobWVtYmVyICJ0YWJsZSIgcmVzdWx0LXBhcmFtcykpIChub3QgKGxp c3RwIHIpKSkgKGxpc3QgKGxpc3QgcikpIHIpKQogIChzZXRxIHJlc3VsdCAobGV0ICgociAoZnVu Y2FsbCBjbWQgYm9keSBwYXJhbXMpKSkgKGlmIChhbmQgKGVxIChjZHIgKGFzc3EgOnJlc3VsdC10 eXBlIHBhcmFtcykpICd2YWx1ZSkgKG9yIChtZW1iZXIgInZlY3RvciIgcmVzdWx0LXBhcmFtcykg KG1lbWJlciAidGFibGUiIHJlc3VsdC1wYXJhbXMpKSAobm90IChsaXN0cCByKSkpIChsaXN0IChs aXN0IHIpKSByKSkpCiAgKGlmIChtZW1iZXIgIm5vbmUiIHJlc3VsdC1wYXJhbXMpIChwcm9nbiAo ZnVuY2FsbCBjbWQgYm9keSBwYXJhbXMpIChtZXNzYWdlICJyZXN1bHQgc2lsZW5jZWQiKSkgKHNl dHEgcmVzdWx0IChsZXQgKChyIChmdW5jYWxsIGNtZCBib2R5IHBhcmFtcykpKSAoaWYgKGFuZCAo ZXEgKGNkciAoYXNzcSA6cmVzdWx0LXR5cGUgcGFyYW1zKSkgJ3ZhbHVlKSAob3IgKG1lbWJlciAi dmVjdG9yIiByZXN1bHQtcGFyYW1zKSAobWVtYmVyICJ0YWJsZSIgcmVzdWx0LXBhcmFtcykpIChu b3QgKGxpc3RwIHIpKSkgKGxpc3QgKGxpc3QgcikpIHIpKSkgKGxldCAoKGZpbGUgKGFuZCAobWVt YmVyICJmaWxlIiByZXN1bHQtcGFyYW1zKSAoY2RyIChhc3NxIDpmaWxlIHBhcmFtcykpKSkpIChp ZiBmaWxlIChwcm9nbiAoaWYgKGFuZCByZXN1bHQgKG5vdCAob3IgLi4uIC4uLikpKSAocHJvZ24g KGxldCAoLi4uIC4uLikgKHVud2luZC1wcm90ZWN0IC4uLiAuLi4pKSAoaWYgKGFzc3EgOmZpbGUt bW9kZSBwYXJhbXMpIChwcm9nbiAuLi4pKSkpIChzZXRxIHJlc3VsdCBmaWxlKSkpIChsZXQgKChw b3N0IChjZHIgKGFzc3EgOnBvc3QgcGFyYW1zKSkpKSAoaWYgcG9zdCAocHJvZ24gKGxldCAoKCp0 aGlzKiAuLi4pKSAoc2V0cSByZXN1bHQgKG9yZy1iYWJlbC1yZWYtcmVzb2x2ZSBwb3N0KSkgKGlm IGZpbGUgKHByb2duIC4uLikpKSkpKSAob3JnLWJhYmVsLWluc2VydC1yZXN1bHQgcmVzdWx0IHJl c3VsdC1wYXJhbXMgaW5mbyBuZXctaGFzaCBsYW5nKSkpCiAgKGxldCogKChsYW5nIChudGggMCBp bmZvKSkgKHJlc3VsdC1wYXJhbXMgKGNkciAoYXNzcSA6cmVzdWx0LXBhcmFtcyBwYXJhbXMpKSkg KGJvZHkgKG9yZy1iYWJlbC0tZXhwYW5kLWJvZHkgaW5mbykpIChkaXIgKGNkciAoYXNzcSA6ZGly IHBhcmFtcykpKSAobWtkaXJwIChjZHIgKGFzc3EgOm1rZGlycCBwYXJhbXMpKSkgKGRlZmF1bHQt ZGlyZWN0b3J5IChjb25kICgobm90IGRpcikgZGVmYXVsdC1kaXJlY3RvcnkpICgobWVtYmVyIG1r ZGlycCAnKCJubyIgIm5pbCIgbmlsKSkgKGZpbGUtbmFtZS1hcy1kaXJlY3RvcnkgKGV4cGFuZC1m aWxlLW5hbWUgZGlyKSkpICh0IChsZXQgKChkIC4uLikpIChtYWtlLWRpcmVjdG9yeSBkICdwYXJl bnRzKSBkKSkpKSAoY21kIChpbnRlcm4gKGNvbmNhdCAib3JnLWJhYmVsLWV4ZWN1dGU6IiBsYW5n KSkpIHJlc3VsdCkgKGlmIChmYm91bmRwIGNtZCkgbmlsIChlcnJvciAiTm8gb3JnLWJhYmVsLWV4 ZWN1dGUgZnVuY3Rpb24gZm9yICVzISIgbGFuZykpIChtZXNzYWdlICJleGVjdXRpbmcgJXMgY29k ZSBibG9jayVzLi4uIiAoY2FwaXRhbGl6ZSBsYW5nKSAobGV0ICgobmFtZSAobnRoIDQgaW5mbykp KSAoaWYgbmFtZSAoZm9ybWF0ICIgKCVzKSIgbmFtZSkgIiIpKSkgKGlmIChtZW1iZXIgIm5vbmUi IHJlc3VsdC1wYXJhbXMpIChwcm9nbiAoZnVuY2FsbCBjbWQgYm9keSBwYXJhbXMpIChtZXNzYWdl ICJyZXN1bHQgc2lsZW5jZWQiKSkgKHNldHEgcmVzdWx0IChsZXQgKChyIChmdW5jYWxsIGNtZCBi b2R5IHBhcmFtcykpKSAoaWYgKGFuZCAoZXEgKGNkciAuLi4pICd2YWx1ZSkgKG9yIChtZW1iZXIg InZlY3RvciIgcmVzdWx0LXBhcmFtcykgKG1lbWJlciAidGFibGUiIHJlc3VsdC1wYXJhbXMpKSAo bm90IChsaXN0cCByKSkpIChsaXN0IChsaXN0IHIpKSByKSkpIChsZXQgKChmaWxlIChhbmQgKG1l bWJlciAiZmlsZSIgcmVzdWx0LXBhcmFtcykgKGNkciAoYXNzcSA6ZmlsZSBwYXJhbXMpKSkpKSAo aWYgZmlsZSAocHJvZ24gKGlmIChhbmQgcmVzdWx0IChub3QgLi4uKSkgKHByb2duIChsZXQgLi4u IC4uLikgKGlmIC4uLiAuLi4pKSkgKHNldHEgcmVzdWx0IGZpbGUpKSkgKGxldCAoKHBvc3QgKGNk ciAoYXNzcSA6cG9zdCBwYXJhbXMpKSkpIChpZiBwb3N0IChwcm9nbiAobGV0ICguLi4pIChzZXRx IHJlc3VsdCAuLi4pIChpZiBmaWxlIC4uLikpKSkpIChvcmctYmFiZWwtaW5zZXJ0LXJlc3VsdCBy ZXN1bHQgcmVzdWx0LXBhcmFtcyBpbmZvIG5ldy1oYXNoIGxhbmcpKSkgKHJ1bi1ob29rcyAnb3Jn LWJhYmVsLWFmdGVyLWV4ZWN1dGUtaG9vaykgcmVzdWx0KQogIChjb25kIChjdXJyZW50LWNhY2hl IChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIChvcmctYmFiZWwtd2hlcmUtaXMtc3JjLWJsb2Nr LXJlc3VsdCBuaWwgaW5mbykpIChmb3J3YXJkLWxpbmUpIChza2lwLWNoYXJzLWZvcndhcmQgIiBc MTEiKSAobGV0ICgocmVzdWx0IChvcmctYmFiZWwtcmVhZC1yZXN1bHQpKSkgKG1lc3NhZ2UgKHJl cGxhY2UtcmVnZXhwLWluLXN0cmluZyAiJSIgIiUlIiAoZm9ybWF0ICIlUyIgcmVzdWx0KSkpIHJl c3VsdCkpKSAoKG9yZy1iYWJlbC1jb25maXJtLWV2YWx1YXRlIGluZm8pIChsZXQqICgobGFuZyAo bnRoIDAgaW5mbykpIChyZXN1bHQtcGFyYW1zIChjZHIgKGFzc3EgOnJlc3VsdC1wYXJhbXMgcGFy YW1zKSkpIChib2R5IChvcmctYmFiZWwtLWV4cGFuZC1ib2R5IGluZm8pKSAoZGlyIChjZHIgKGFz c3EgOmRpciBwYXJhbXMpKSkgKG1rZGlycCAoY2RyIChhc3NxIDpta2RpcnAgcGFyYW1zKSkpIChk ZWZhdWx0LWRpcmVjdG9yeSAoY29uZCAoKG5vdCBkaXIpIGRlZmF1bHQtZGlyZWN0b3J5KSAoKG1l bWJlciBta2RpcnAgLi4uKSAoZmlsZS1uYW1lLWFzLWRpcmVjdG9yeSAuLi4pKSAodCAobGV0IC4u LiAuLi4gZCkpKSkgKGNtZCAoaW50ZXJuIChjb25jYXQgIm9yZy1iYWJlbC1leGVjdXRlOiIgbGFu ZykpKSByZXN1bHQpIChpZiAoZmJvdW5kcCBjbWQpIG5pbCAoZXJyb3IgIk5vIG9yZy1iYWJlbC1l eGVjdXRlIGZ1bmN0aW9uIGZvciAlcyEiIGxhbmcpKSAobWVzc2FnZSAiZXhlY3V0aW5nICVzIGNv ZGUgYmxvY2slcy4uLiIgKGNhcGl0YWxpemUgbGFuZykgKGxldCAoKG5hbWUgKG50aCA0IGluZm8p KSkgKGlmIG5hbWUgKGZvcm1hdCAiICglcykiIG5hbWUpICIiKSkpIChpZiAobWVtYmVyICJub25l IiByZXN1bHQtcGFyYW1zKSAocHJvZ24gKGZ1bmNhbGwgY21kIGJvZHkgcGFyYW1zKSAobWVzc2Fn ZSAicmVzdWx0IHNpbGVuY2VkIikpIChzZXRxIHJlc3VsdCAobGV0ICgociAuLi4pKSAoaWYgKGFu ZCAuLi4gLi4uIC4uLikgKGxpc3QgLi4uKSByKSkpIChsZXQgKChmaWxlIChhbmQgLi4uIC4uLikp KSAoaWYgZmlsZSAocHJvZ24gKGlmIC4uLiAuLi4pIChzZXRxIHJlc3VsdCBmaWxlKSkpIChsZXQg KChwb3N0IC4uLikpIChpZiBwb3N0IChwcm9nbiAuLi4pKSkgKG9yZy1iYWJlbC1pbnNlcnQtcmVz dWx0IHJlc3VsdCByZXN1bHQtcGFyYW1zIGluZm8gbmV3LWhhc2ggbGFuZykpKSAocnVuLWhvb2tz ICdvcmctYmFiZWwtYWZ0ZXItZXhlY3V0ZS1ob29rKSByZXN1bHQpKSkKICAobGV0KiAoKHBhcmFt cyAobnRoIDIgaW5mbykpIChjYWNoZSAobGV0ICgoYyAoY2RyIChhc3NxIDpjYWNoZSBwYXJhbXMp KSkpIChhbmQgKG5vdCBhcmcpIGMgKHN0cmluZz0gInllcyIgYykpKSkgKG5ldy1oYXNoIChhbmQg Y2FjaGUgKG9yZy1iYWJlbC1zaGExLWhhc2ggaW5mbyA6ZXZhbCkpKSAob2xkLWhhc2ggKGFuZCBj YWNoZSAob3JnLWJhYmVsLWN1cnJlbnQtcmVzdWx0LWhhc2gpKSkgKGN1cnJlbnQtY2FjaGUgKGFu ZCBuZXctaGFzaCAoZXF1YWwgbmV3LWhhc2ggb2xkLWhhc2gpKSkpIChjb25kIChjdXJyZW50LWNh Y2hlIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIChvcmctYmFiZWwtd2hlcmUtaXMtc3JjLWJs b2NrLXJlc3VsdCBuaWwgaW5mbykpIChmb3J3YXJkLWxpbmUpIChza2lwLWNoYXJzLWZvcndhcmQg IiBcMTEiKSAobGV0ICgocmVzdWx0IChvcmctYmFiZWwtcmVhZC1yZXN1bHQpKSkgKG1lc3NhZ2Ug KHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAiJSIgIiUlIiAoZm9ybWF0ICIlUyIgcmVzdWx0KSkp IHJlc3VsdCkpKSAoKG9yZy1iYWJlbC1jb25maXJtLWV2YWx1YXRlIGluZm8pIChsZXQqICgobGFu ZyAobnRoIDAgaW5mbykpIChyZXN1bHQtcGFyYW1zIChjZHIgKGFzc3EgOnJlc3VsdC1wYXJhbXMg cGFyYW1zKSkpIChib2R5IChvcmctYmFiZWwtLWV4cGFuZC1ib2R5IGluZm8pKSAoZGlyIChjZHIg KGFzc3EgOmRpciBwYXJhbXMpKSkgKG1rZGlycCAoY2RyIChhc3NxIDpta2RpcnAgcGFyYW1zKSkp IChkZWZhdWx0LWRpcmVjdG9yeSAoY29uZCAoLi4uIGRlZmF1bHQtZGlyZWN0b3J5KSAoLi4uIC4u LikgKHQgLi4uKSkpIChjbWQgKGludGVybiAoY29uY2F0ICJvcmctYmFiZWwtZXhlY3V0ZToiIGxh bmcpKSkgcmVzdWx0KSAoaWYgKGZib3VuZHAgY21kKSBuaWwgKGVycm9yICJObyBvcmctYmFiZWwt ZXhlY3V0ZSBmdW5jdGlvbiBmb3IgJXMhIiBsYW5nKSkgKG1lc3NhZ2UgImV4ZWN1dGluZyAlcyBj b2RlIGJsb2NrJXMuLi4iIChjYXBpdGFsaXplIGxhbmcpIChsZXQgKChuYW1lIC4uLikpIChpZiBu YW1lIChmb3JtYXQgIiAoJXMpIiBuYW1lKSAiIikpKSAoaWYgKG1lbWJlciAibm9uZSIgcmVzdWx0 LXBhcmFtcykgKHByb2duIChmdW5jYWxsIGNtZCBib2R5IHBhcmFtcykgKG1lc3NhZ2UgInJlc3Vs dCBzaWxlbmNlZCIpKSAoc2V0cSByZXN1bHQgKGxldCAoLi4uKSAoaWYgLi4uIC4uLiByKSkpIChs ZXQgKChmaWxlIC4uLikpIChpZiBmaWxlIChwcm9nbiAuLi4gLi4uKSkgKGxldCAoLi4uKSAoaWYg cG9zdCAuLi4pKSAob3JnLWJhYmVsLWluc2VydC1yZXN1bHQgcmVzdWx0IHJlc3VsdC1wYXJhbXMg aW5mbyBuZXctaGFzaCBsYW5nKSkpIChydW4taG9va3MgJ29yZy1iYWJlbC1hZnRlci1leGVjdXRl LWhvb2spIHJlc3VsdCkpKSkKICAocHJvZ24gKGxldCogKChjIChudGhjZHIgMiBpbmZvKSkpIChz ZXRjYXIgYyAob3JnLWJhYmVsLXByb2Nlc3MtcGFyYW1zIChjYXIgYykpKSkgKGxldCogKChwYXJh bXMgKG50aCAyIGluZm8pKSAoY2FjaGUgKGxldCAoKGMgKGNkciAuLi4pKSkgKGFuZCAobm90IGFy ZykgYyAoc3RyaW5nPSAieWVzIiBjKSkpKSAobmV3LWhhc2ggKGFuZCBjYWNoZSAob3JnLWJhYmVs LXNoYTEtaGFzaCBpbmZvIDpldmFsKSkpIChvbGQtaGFzaCAoYW5kIGNhY2hlIChvcmctYmFiZWwt Y3VycmVudC1yZXN1bHQtaGFzaCkpKSAoY3VycmVudC1jYWNoZSAoYW5kIG5ldy1oYXNoIChlcXVh bCBuZXctaGFzaCBvbGQtaGFzaCkpKSkgKGNvbmQgKGN1cnJlbnQtY2FjaGUgKHNhdmUtZXhjdXJz aW9uIChnb3RvLWNoYXIgKG9yZy1iYWJlbC13aGVyZS1pcy1zcmMtYmxvY2stcmVzdWx0IG5pbCBp bmZvKSkgKGZvcndhcmQtbGluZSkgKHNraXAtY2hhcnMtZm9yd2FyZCAiIFwxMSIpIChsZXQgKChy ZXN1bHQgLi4uKSkgKG1lc3NhZ2UgKHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAiJSIgIiUlIiAu Li4pKSByZXN1bHQpKSkgKChvcmctYmFiZWwtY29uZmlybS1ldmFsdWF0ZSBpbmZvKSAobGV0KiAo KGxhbmcgKG50aCAwIGluZm8pKSAocmVzdWx0LXBhcmFtcyAoY2RyIC4uLikpIChib2R5IChvcmct YmFiZWwtLWV4cGFuZC1ib2R5IGluZm8pKSAoZGlyIChjZHIgLi4uKSkgKG1rZGlycCAoY2RyIC4u LikpIChkZWZhdWx0LWRpcmVjdG9yeSAoY29uZCAuLi4gLi4uIC4uLikpIChjbWQgKGludGVybiAu Li4pKSByZXN1bHQpIChpZiAoZmJvdW5kcCBjbWQpIG5pbCAoZXJyb3IgIk5vIG9yZy1iYWJlbC1l eGVjdXRlIGZ1bmN0aW9uIGZvciAlcyEiIGxhbmcpKSAobWVzc2FnZSAiZXhlY3V0aW5nICVzIGNv ZGUgYmxvY2slcy4uLiIgKGNhcGl0YWxpemUgbGFuZykgKGxldCAoLi4uKSAoaWYgbmFtZSAuLi4g IiIpKSkgKGlmIChtZW1iZXIgIm5vbmUiIHJlc3VsdC1wYXJhbXMpIChwcm9nbiAoZnVuY2FsbCBj bWQgYm9keSBwYXJhbXMpIChtZXNzYWdlICJyZXN1bHQgc2lsZW5jZWQiKSkgKHNldHEgcmVzdWx0 IChsZXQgLi4uIC4uLikpIChsZXQgKC4uLikgKGlmIGZpbGUgLi4uKSAobGV0IC4uLiAuLi4pIChv cmctYmFiZWwtaW5zZXJ0LXJlc3VsdCByZXN1bHQgcmVzdWx0LXBhcmFtcyBpbmZvIG5ldy1oYXNo IGxhbmcpKSkgKHJ1bi1ob29rcyAnb3JnLWJhYmVsLWFmdGVyLWV4ZWN1dGUtaG9vaykgcmVzdWx0 KSkpKSkKICAoaWYgKG9yZy1iYWJlbC1jaGVjay1ldmFsdWF0ZSBpbmZvKSAocHJvZ24gKGxldCog KChjIChudGhjZHIgMiBpbmZvKSkpIChzZXRjYXIgYyAob3JnLWJhYmVsLXByb2Nlc3MtcGFyYW1z IChjYXIgYykpKSkgKGxldCogKChwYXJhbXMgKG50aCAyIGluZm8pKSAoY2FjaGUgKGxldCAoKGMg Li4uKSkgKGFuZCAobm90IGFyZykgYyAoc3RyaW5nPSAieWVzIiBjKSkpKSAobmV3LWhhc2ggKGFu ZCBjYWNoZSAob3JnLWJhYmVsLXNoYTEtaGFzaCBpbmZvIDpldmFsKSkpIChvbGQtaGFzaCAoYW5k IGNhY2hlIChvcmctYmFiZWwtY3VycmVudC1yZXN1bHQtaGFzaCkpKSAoY3VycmVudC1jYWNoZSAo YW5kIG5ldy1oYXNoIChlcXVhbCBuZXctaGFzaCBvbGQtaGFzaCkpKSkgKGNvbmQgKGN1cnJlbnQt Y2FjaGUgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgKG9yZy1iYWJlbC13aGVyZS1pcy1zcmMt YmxvY2stcmVzdWx0IG5pbCBpbmZvKSkgKGZvcndhcmQtbGluZSkgKHNraXAtY2hhcnMtZm9yd2Fy ZCAiIFwxMSIpIChsZXQgKC4uLikgKG1lc3NhZ2UgLi4uKSByZXN1bHQpKSkgKChvcmctYmFiZWwt Y29uZmlybS1ldmFsdWF0ZSBpbmZvKSAobGV0KiAoKGxhbmcgLi4uKSAocmVzdWx0LXBhcmFtcyAu Li4pIChib2R5IC4uLikgKGRpciAuLi4pIChta2RpcnAgLi4uKSAoZGVmYXVsdC1kaXJlY3Rvcnkg Li4uKSAoY21kIC4uLikgcmVzdWx0KSAoaWYgKGZib3VuZHAgY21kKSBuaWwgKGVycm9yICJObyBv cmctYmFiZWwtZXhlY3V0ZSBmdW5jdGlvbiBmb3IgJXMhIiBsYW5nKSkgKG1lc3NhZ2UgImV4ZWN1 dGluZyAlcyBjb2RlIGJsb2NrJXMuLi4iIChjYXBpdGFsaXplIGxhbmcpIChsZXQgLi4uIC4uLikp IChpZiAobWVtYmVyICJub25lIiByZXN1bHQtcGFyYW1zKSAocHJvZ24gLi4uIC4uLikgKHNldHEg cmVzdWx0IC4uLikgKGxldCAuLi4gLi4uIC4uLiAuLi4pKSAocnVuLWhvb2tzICdvcmctYmFiZWwt YWZ0ZXItZXhlY3V0ZS1ob29rKSByZXN1bHQpKSkpKSkKICAobGV0KiAoKG9yZy1iYWJlbC1jdXJy ZW50LXNyYy1ibG9jay1sb2NhdGlvbiAob3Igb3JnLWJhYmVsLWN1cnJlbnQtc3JjLWJsb2NrLWxv Y2F0aW9uIChudGggNSBpbmZvKSAob3JnLWJhYmVsLXdoZXJlLWlzLXNyYy1ibG9jay1oZWFkKSkp IChpbmZvIChpZiBpbmZvIChjb3B5LXRyZWUgaW5mbykgKG9yZy1iYWJlbC1nZXQtc3JjLWJsb2Nr LWluZm8pKSkpIChsZXQqICgoYyAobnRoY2RyIDIgaW5mbykpKSAoc2V0Y2FyIGMgKG9yZy1iYWJl bC1tZXJnZS1wYXJhbXMgKGNhciBjKSBwYXJhbXMpKSkgKGlmIChvcmctYmFiZWwtY2hlY2stZXZh bHVhdGUgaW5mbykgKHByb2duIChsZXQqICgoYyAobnRoY2RyIDIgaW5mbykpKSAoc2V0Y2FyIGMg KG9yZy1iYWJlbC1wcm9jZXNzLXBhcmFtcyAoY2FyIGMpKSkpIChsZXQqICgocGFyYW1zIChudGgg MiBpbmZvKSkgKGNhY2hlIChsZXQgKC4uLikgKGFuZCAuLi4gYyAuLi4pKSkgKG5ldy1oYXNoIChh bmQgY2FjaGUgKG9yZy1iYWJlbC1zaGExLWhhc2ggaW5mbyA6ZXZhbCkpKSAob2xkLWhhc2ggKGFu ZCBjYWNoZSAob3JnLWJhYmVsLWN1cnJlbnQtcmVzdWx0LWhhc2gpKSkgKGN1cnJlbnQtY2FjaGUg KGFuZCBuZXctaGFzaCAoZXF1YWwgbmV3LWhhc2ggb2xkLWhhc2gpKSkpIChjb25kIChjdXJyZW50 LWNhY2hlIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIC4uLikgKGZvcndhcmQtbGluZSkgKHNr aXAtY2hhcnMtZm9yd2FyZCAiIFwxMSIpIChsZXQgLi4uIC4uLiByZXN1bHQpKSkgKChvcmctYmFi ZWwtY29uZmlybS1ldmFsdWF0ZSBpbmZvKSAobGV0KiAoLi4uIC4uLiAuLi4gLi4uIC4uLiAuLi4g Li4uIHJlc3VsdCkgKGlmIC4uLiBuaWwgLi4uKSAobWVzc2FnZSAiZXhlY3V0aW5nICVzIGNvZGUg YmxvY2slcy4uLiIgLi4uIC4uLikgKGlmIC4uLiAuLi4gLi4uIC4uLikgKHJ1bi1ob29rcyAuLi4p IHJlc3VsdCkpKSkpKSkKICBvcmctYmFiZWwtZXhlY3V0ZS1zcmMtYmxvY2sobmlsICgic2giICJy ZWFkIC1yIHdob1xuZWNobyBcImhlbGxvICR3aG9cIiIgKCg6Y29sbmFtZS1uYW1lcykgKDpyb3du YW1lLW5hbWVzKSAoOnJlc3VsdC1wYXJhbXMgInJlcGxhY2UiKSAoOnJlc3VsdC10eXBlIC4gdmFs dWUpICg6cmVzdWx0cyAuICJyZXBsYWNlIikgKDpleHBvcnRzIC4gImNvZGUiKSAoOnN0ZGluIC4g ImlucHV0IikgKDpkaXIgLiAiL3NzaDpyb290QGNvcmVib290Lmx4ZDoiKSAoOnRhbmdsZSAuICJu byIpICg6aGxpbmVzIC4gIm5vIikgKDpub3dlYiAuICJubyIpICg6Y2FjaGUgLiAibm8iKSAoOnNl c3Npb24gLiAibm9uZSIpKSAiIiBuaWwgMjM0ICIocmVmOiVzKSIpKQogIChpZiBvcmctYmFiZWwt bm8tZXZhbC1vbi1jdHJsLWMtY3RybC1jIG5pbCAob3JnLWJhYmVsLWV2YWwtd2lwZS1lcnJvci1i dWZmZXIpIChvcmctYmFiZWwtZXhlY3V0ZS1zcmMtYmxvY2sgY3VycmVudC1wcmVmaXgtYXJnIChv cmctYmFiZWwtZ2V0LXNyYy1ibG9jay1pbmZvIG5pbCBjb250ZXh0KSkpCiAgKGxldCBuaWwgKGlm IG9yZy1iYWJlbC1uby1ldmFsLW9uLWN0cmwtYy1jdHJsLWMgbmlsIChvcmctYmFiZWwtZXZhbC13 aXBlLWVycm9yLWJ1ZmZlcikgKG9yZy1iYWJlbC1leGVjdXRlLXNyYy1ibG9jayBjdXJyZW50LXBy ZWZpeC1hcmcgKG9yZy1iYWJlbC1nZXQtc3JjLWJsb2NrLWluZm8gbmlsIGNvbnRleHQpKSkpCiAg KGNvbmQgKChtZW1xIHR5cGUgJyhzcmMtYmxvY2sgaW5saW5lLXNyYy1ibG9jaykpIChsZXQgbmls IChpZiBvcmctYmFiZWwtbm8tZXZhbC1vbi1jdHJsLWMtY3RybC1jIG5pbCAob3JnLWJhYmVsLWV2 YWwtd2lwZS1lcnJvci1idWZmZXIpIChvcmctYmFiZWwtZXhlY3V0ZS1zcmMtYmxvY2sgY3VycmVu dC1wcmVmaXgtYXJnIChvcmctYmFiZWwtZ2V0LXNyYy1ibG9jay1pbmZvIG5pbCBjb250ZXh0KSkp KSkgKChvcmctbWF0Y2gtbGluZSAiWyBcMTFdKiQiKSAobGV0IG5pbCAob3IgKHJ1bi1ob29rLXdp dGgtYXJncy11bnRpbC1zdWNjZXNzICdvcmctY3RybC1jLWN0cmwtYy1maW5hbC1ob29rKSAodXNl ci1lcnJvciAoc3Vic3RpdHV0ZS1jb21tYW5kLWtleXMgImBcXFtvcmctY3RybC1jLWN0cmwtY10n IGNhbiBkbyBub3RoaW5nIHVzZWZ1bCBoZXJlIikpKSkpICgobWVtcSB0eXBlICcoaW5saW5lLWJh YmVsLWNhbGwgYmFiZWwtY2FsbCkpIChsZXQgbmlsIChsZXQgKChpbmZvIChvcmctYmFiZWwtbG9i LWdldC1pbmZvIGNvbnRleHQpKSkgKGlmIGluZm8gKHByb2duIChvcmctYmFiZWwtZXhlY3V0ZS1z cmMtYmxvY2sgbmlsIGluZm8pKSkpKSkgKChlcSB0eXBlICdjbG9jaykgKGxldCBuaWwgKG9yZy1j bG9jay11cGRhdGUtdGltZS1tYXliZSkpKSAoKGVxIHR5cGUgJ2R5bmFtaWMtYmxvY2spIChsZXQg bmlsIChzYXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cG9z dC1hZmZpbGlhdGVkIGNvbnRleHQpKSAob3JnLXVwZGF0ZS1kYmxvY2spKSkpICgoZXEgdHlwZSAn Zm9vdG5vdGUtZGVmaW5pdGlvbikgKGxldCBuaWwgKGdvdG8tY2hhciAob3JnLWVsZW1lbnQtcHJv cGVydHkgOnBvc3QtYWZmaWxpYXRlZCBjb250ZXh0KSkgKGNhbGwtaW50ZXJhY3RpdmVseSAnb3Jn LWZvb3Rub3RlLWFjdGlvbikpKSAoKGVxIHR5cGUgJ2Zvb3Rub3RlLXJlZmVyZW5jZSkgKGxldCBu aWwgKGNhbGwtaW50ZXJhY3RpdmVseSAjJ29yZy1mb290bm90ZS1hY3Rpb24pKSkgKChtZW1xIHR5 cGUgJyhpbmxpbmV0YXNrIGhlYWRsaW5lKSkgKGxldCBuaWwgKHNhdmUtZXhjdXJzaW9uIChnb3Rv LWNoYXIgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpiZWdpbiBjb250ZXh0KSkgKGNhbGwtaW50ZXJh Y3RpdmVseSAjJ29yZy1zZXQtdGFncy1jb21tYW5kKSkpKSAoKGVxIHR5cGUgJ2l0ZW0pIChsZXQg bmlsIChpZiAob3IgcmFkaW8tbGlzdC1wIChhbmQgKGJvdW5kcCBvcmctbGlzdC1jaGVja2JveC1y YWRpby1tb2RlKSBvcmctbGlzdC1jaGVja2JveC1yYWRpby1tb2RlKSkgKG9yZy10b2dnbGUtcmFk aW8tYnV0dG9uIGFyZykgKGxldCogKChib3ggKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjaGVja2Jv eCBjb250ZXh0KSkgKHN0cnVjdCAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnN0cnVjdHVyZSBjb250 ZXh0KSkgKG9sZC1zdHJ1Y3QgKGNvcHktdHJlZSBzdHJ1Y3QpKSAocGFyZW50cyAob3JnLWxpc3Qt cGFyZW50cy1hbGlzdCBzdHJ1Y3QpKSAocHJldnMgKG9yZy1saXN0LXByZXZzLWFsaXN0IHN0cnVj dCkpIChvcmRlcmVkcCAob3JnLW5vdC1uaWwgLi4uKSkpIChvcmctbGlzdC1zZXQtY2hlY2tib3gg KG9yZy1lbGVtZW50LXByb3BlcnR5IDpiZWdpbiBjb250ZXh0KSBzdHJ1Y3QgKGNvbmQgKC4uLiAi Wy1dIikgKC4uLiAiWyBdIikgKC4uLiBuaWwpICguLi4gIlsgXSIpICh0ICJbWF0iKSkpIChvcmct bGlzdC1zdHJ1Y3QtZml4LWluZCBzdHJ1Y3QgcGFyZW50cyAyKSAob3JnLWxpc3Qtc3RydWN0LWZp eC1pdGVtLWVuZCBzdHJ1Y3QpIChvcmctbGlzdC1zdHJ1Y3QtZml4LWJ1bCBzdHJ1Y3QgcHJldnMp IChvcmctbGlzdC1zdHJ1Y3QtZml4LWluZCBzdHJ1Y3QgcGFyZW50cykgKGxldCAoKGJsb2NrLWl0 ZW0gLi4uKSkgKGlmIChhbmQgYm94IC4uLikgKGlmIC4uLiAuLi4gLi4uKSAob3JnLWxpc3Qtc3Ry dWN0LWFwcGx5LXN0cnVjdCBzdHJ1Y3Qgb2xkLXN0cnVjdCkgKG9yZy11cGRhdGUtY2hlY2tib3gt Y291bnQtbWF5YmUpKSAoaWYgYmxvY2staXRlbSAocHJvZ24gLi4uKSkpKSkpKSAoKGVxIHR5cGUg J3BsYWluLWxpc3QpIChsZXQgbmlsIChpZiAob3IgcmFkaW8tbGlzdC1wIChhbmQgKGJvdW5kcCBv cmctbGlzdC1jaGVja2JveC1yYWRpby1tb2RlKSBvcmctbGlzdC1jaGVja2JveC1yYWRpby1tb2Rl KSkgKG9yZy10b2dnbGUtcmFkaW8tYnV0dG9uIGFyZykgKGxldCogKChiZWdpbiAob3JnLWVsZW1l bnQtcHJvcGVydHkgOmNvbnRlbnRzLWJlZ2luIGNvbnRleHQpKSAoc3RydWN0IChvcmctZWxlbWVu dC1wcm9wZXJ0eSA6c3RydWN0dXJlIGNvbnRleHQpKSAob2xkLXN0cnVjdCAoY29weS10cmVlIHN0 cnVjdCkpIChmaXJzdC1ib3ggKHNhdmUtZXhjdXJzaW9uIC4uLiAuLi4gLi4uKSkgKG5ldy1ib3gg KGNvbmQgLi4uIC4uLiAuLi4gLi4uKSkpIChjb25kIChhcmcgKGxldCAuLi4gLi4uKSkgKChhbmQg Zmlyc3QtYm94IC4uLikgKG9yZy1saXN0LXNldC1jaGVja2JveCBiZWdpbiBzdHJ1Y3QgbmV3LWJv eCkpKSAoaWYgKGVxdWFsIChvcmctbGlzdC13cml0ZS1zdHJ1Y3Qgc3RydWN0IC4uLiBvbGQtc3Ry dWN0KSBvbGQtc3RydWN0KSAocHJvZ24gKG1lc3NhZ2UgIkNhbm5vdCB1cGRhdGUgdGhpcyBjaGVj a2JveCIpKSkgKG9yZy11cGRhdGUtY2hlY2tib3gtY291bnQtbWF5YmUpKSkpKSAoKGVxIHR5cGUg J2tleXdvcmQpIChsZXQgbmlsIChsZXQgKChvcmctaW5oaWJpdC1zdGFydHVwLXZpc2liaWxpdHkt c3R1ZmYgdCkgKG9yZy1zdGFydHVwLWFsaWduLWFsbC10YWJsZXMgbmlsKSkgKGlmIChib3VuZHAg J29yZy10YWJsZS1jb29yZGluYXRlLW92ZXJsYXlzKSAocHJvZ24gKG1hcGMgIydkZWxldGUtb3Zl cmxheSBvcmctdGFibGUtY29vcmRpbmF0ZS1vdmVybGF5cykgKHNldHEgb3JnLXRhYmxlLWNvb3Jk aW5hdGUtb3ZlcmxheXMgbmlsKSkpIChpZiAoZXEgb3JnLWZvbGQtY29yZS1zdHlsZSAndGV4dC1w cm9wZXJ0aWVzKSAobGV0KiAoKC0tc3BlY3MgLi4uKSAoLS1tYXJrZXJzXD8gLi4uKSAoLS1kYXRh IC4uLikpICh1bndpbmQtcHJvdGVjdCAocHJvZ24gLi4uKSAoc2F2ZS1leGN1cnNpb24gLi4uKSkp IChsZXQqICgoLS1pbnZpc2libGUtdHlwZXMgLi4uKSAoLS1tYXJrZXJzXD8gLi4uKSAoLS1kYXRh IC4uLikpICh1bndpbmQtcHJvdGVjdCAocHJvZ24gLi4uKSAoc2F2ZS1leGN1cnNpb24gLi4uKSkp KSkgKG1lc3NhZ2UgIkxvY2FsIHNldHVwIGhhcyBiZWVuIHJlZnJlc2hlZCIpKSkgKChtZW1xIHR5 cGUgJyhub2RlLXByb3BlcnR5IHByb3BlcnR5LWRyYXdlcikpIChsZXQgbmlsIChjYWxsLWludGVy YWN0aXZlbHkgIydvcmctcHJvcGVydHktYWN0aW9uKSkpICgoZXEgdHlwZSAncmFkaW8tdGFyZ2V0 KSAobGV0IG5pbCAoY2FsbC1pbnRlcmFjdGl2ZWx5ICMnb3JnLXVwZGF0ZS1yYWRpby10YXJnZXQt cmVnZXhwKSkpICgoZXEgdHlwZSAnc3RhdGlzdGljcy1jb29raWUpIChsZXQgbmlsIChjYWxsLWlu dGVyYWN0aXZlbHkgIydvcmctdXBkYXRlLXN0YXRpc3RpY3MtY29va2llcykpKSAoKG1lbXEgdHlw ZSAnKHRhYmxlLXJvdyB0YWJsZS1jZWxsIHRhYmxlKSkgKGxldCBuaWwgKGNvbmQgKChhbmQgKG9y Zy1tYXRjaC1saW5lICJbIFwxMV0qI1xcK3Bsb3Q6IikgKDwgKHBvaW50KSAob3JnLWVsZW1lbnQt cHJvcGVydHkgOnBvc3QtYWZmaWxpYXRlZCBjb250ZXh0KSkpIChvcmctcGxvdC9nbnVwbG90KSkg KChlcSAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnR5cGUgY29udGV4dCkgJ3RhYmxlXC5lbCkgKG1l c3NhZ2UgIiVzIiAoc3Vic3RpdHV0ZS1jb21tYW5kLWtleXMgIlxcPG9yZy1tb2RlLW1hcD5Vc2Ug YFxcW29yZy1lZGl0LXNwZWNpYWxdJyB0byBlZGl0IHQuLi4iKSkpICgob3IgKGVxIHR5cGUgJ3Rh YmxlKSAoYW5kIChlcSB0eXBlIC4uLikgKD0gLi4uIC4uLikpKSAoc2F2ZS1leGN1cnNpb24gKGlm IChvcmctYXQtVEJMRk0tcCkgKHByb2duIC4uLiAuLi4pIChnb3RvLWNoYXIgLi4uKSAob3JnLWNh bGwtd2l0aC1hcmcgLi4uIC4uLikgKG9yZ3RibC1zZW5kLXRhYmxlIC4uLikpKSkgKHQgKG9yZy10 YWJsZS1tYXliZS1ldmFsLWZvcm11bGEpIChjb25kIChhcmcgKGNhbGwtaW50ZXJhY3RpdmVseSAu Li4pKSAoKG9yZy10YWJsZS1tYXliZS1yZWNhbGN1bGF0ZS1saW5lKSkgKHQgKG9yZy10YWJsZS1h bGlnbikpKSkpKSkgKChlcSB0eXBlICd0aW1lc3RhbXApIChmdW5jYWxsIHBjYXNlLTEpKSAoKGVx IHR5cGUgJ3BsYW5uaW5nKSAoY29uZCAoKG9yZy1hdC10aW1lc3RhbXAtcCAnbGF4KSAoZnVuY2Fs bCBwY2FzZS0xKSkgKChydW4taG9vay13aXRoLWFyZ3MtdW50aWwtc3VjY2VzcyAnb3JnLWN0cmwt Yy1jdHJsLWMtZmluYWwtaG9vaykgJ25pbCkgKHQgKGZ1bmNhbGwgcGNhc2UtMCkpKSkgKChudWxs IHR5cGUpIChjb25kICgob3JnLWF0LWhlYWRpbmctcCkgKGxldCBuaWwgKGNhbGwtaW50ZXJhY3Rp dmVseSAjJ29yZy1zZXQtdGFncy1jb21tYW5kKSkpICgocnVuLWhvb2std2l0aC1hcmdzLXVudGls LXN1Y2Nlc3MgJ29yZy1jdHJsLWMtY3RybC1jLWZpbmFsLWhvb2spICduaWwpICh0IChmdW5jYWxs IHBjYXNlLTApKSkpICgocnVuLWhvb2std2l0aC1hcmdzLXVudGlsLXN1Y2Nlc3MgJ29yZy1jdHJs LWMtY3RybC1jLWZpbmFsLWhvb2spICduaWwpICh0IChmdW5jYWxsIHBjYXNlLTApKSkKICAobGV0 KiAoKHBjYXNlLTEgIycobGFtYmRhIG5pbCAob3JnLXRpbWVzdGFtcC1jaGFuZ2UgMCAnZGF5KSkp IChwY2FzZS0wICMnKGxhbWJkYSBuaWwgKHVzZXItZXJyb3IgKHN1YnN0aXR1dGUtY29tbWFuZC1r ZXlzICJgXFxbb3JnLWN0cmwtYy1jdHJsLWNdJyBjYW4gZG8gbm90aGluZyB1c2VmdWwgaGVyZSIp KSkpKSAoY29uZCAoKG1lbXEgdHlwZSAnKHNyYy1ibG9jayBpbmxpbmUtc3JjLWJsb2NrKSkgKGxl dCBuaWwgKGlmIG9yZy1iYWJlbC1uby1ldmFsLW9uLWN0cmwtYy1jdHJsLWMgbmlsIChvcmctYmFi ZWwtZXZhbC13aXBlLWVycm9yLWJ1ZmZlcikgKG9yZy1iYWJlbC1leGVjdXRlLXNyYy1ibG9jayBj dXJyZW50LXByZWZpeC1hcmcgKG9yZy1iYWJlbC1nZXQtc3JjLWJsb2NrLWluZm8gbmlsIGNvbnRl eHQpKSkpKSAoKG9yZy1tYXRjaC1saW5lICJbIFwxMV0qJCIpIChsZXQgbmlsIChvciAocnVuLWhv b2std2l0aC1hcmdzLXVudGlsLXN1Y2Nlc3MgJ29yZy1jdHJsLWMtY3RybC1jLWZpbmFsLWhvb2sp ICh1c2VyLWVycm9yIChzdWJzdGl0dXRlLWNvbW1hbmQta2V5cyAiYFxcW29yZy1jdHJsLWMtY3Ry bC1jXScgY2FuIGRvIG5vdGhpbmcgdXNlZnVsIGhlcmUiKSkpKSkgKChtZW1xIHR5cGUgJyhpbmxp bmUtYmFiZWwtY2FsbCBiYWJlbC1jYWxsKSkgKGxldCBuaWwgKGxldCAoKGluZm8gKG9yZy1iYWJl bC1sb2ItZ2V0LWluZm8gY29udGV4dCkpKSAoaWYgaW5mbyAocHJvZ24gKG9yZy1iYWJlbC1leGVj dXRlLXNyYy1ibG9jayBuaWwgaW5mbykpKSkpKSAoKGVxIHR5cGUgJ2Nsb2NrKSAobGV0IG5pbCAo b3JnLWNsb2NrLXVwZGF0ZS10aW1lLW1heWJlKSkpICgoZXEgdHlwZSAnZHluYW1pYy1ibG9jaykg KGxldCBuaWwgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIgKG9yZy1lbGVtZW50LXByb3BlcnR5 IDpwb3N0LWFmZmlsaWF0ZWQgY29udGV4dCkpIChvcmctdXBkYXRlLWRibG9jaykpKSkgKChlcSB0 eXBlICdmb290bm90ZS1kZWZpbml0aW9uKSAobGV0IG5pbCAoZ290by1jaGFyIChvcmctZWxlbWVu dC1wcm9wZXJ0eSA6cG9zdC1hZmZpbGlhdGVkIGNvbnRleHQpKSAoY2FsbC1pbnRlcmFjdGl2ZWx5 ICdvcmctZm9vdG5vdGUtYWN0aW9uKSkpICgoZXEgdHlwZSAnZm9vdG5vdGUtcmVmZXJlbmNlKSAo bGV0IG5pbCAoY2FsbC1pbnRlcmFjdGl2ZWx5ICMnb3JnLWZvb3Rub3RlLWFjdGlvbikpKSAoKG1l bXEgdHlwZSAnKGlubGluZXRhc2sgaGVhZGxpbmUpKSAobGV0IG5pbCAoc2F2ZS1leGN1cnNpb24g KGdvdG8tY2hhciAob3JnLWVsZW1lbnQtcHJvcGVydHkgOmJlZ2luIGNvbnRleHQpKSAoY2FsbC1p bnRlcmFjdGl2ZWx5ICMnb3JnLXNldC10YWdzLWNvbW1hbmQpKSkpICgoZXEgdHlwZSAnaXRlbSkg KGxldCBuaWwgKGlmIChvciByYWRpby1saXN0LXAgKGFuZCAoYm91bmRwIG9yZy1saXN0LWNoZWNr Ym94LXJhZGlvLW1vZGUpIG9yZy1saXN0LWNoZWNrYm94LXJhZGlvLW1vZGUpKSAob3JnLXRvZ2ds ZS1yYWRpby1idXR0b24gYXJnKSAobGV0KiAoKGJveCAuLi4pIChzdHJ1Y3QgLi4uKSAob2xkLXN0 cnVjdCAuLi4pIChwYXJlbnRzIC4uLikgKHByZXZzIC4uLikgKG9yZGVyZWRwIC4uLikpIChvcmct bGlzdC1zZXQtY2hlY2tib3ggKG9yZy1lbGVtZW50LXByb3BlcnR5IDpiZWdpbiBjb250ZXh0KSBz dHJ1Y3QgKGNvbmQgLi4uIC4uLiAuLi4gLi4uIC4uLikpIChvcmctbGlzdC1zdHJ1Y3QtZml4LWlu ZCBzdHJ1Y3QgcGFyZW50cyAyKSAob3JnLWxpc3Qtc3RydWN0LWZpeC1pdGVtLWVuZCBzdHJ1Y3Qp IChvcmctbGlzdC1zdHJ1Y3QtZml4LWJ1bCBzdHJ1Y3QgcHJldnMpIChvcmctbGlzdC1zdHJ1Y3Qt Zml4LWluZCBzdHJ1Y3QgcGFyZW50cykgKGxldCAoLi4uKSAoaWYgLi4uIC4uLiAuLi4gLi4uKSAo aWYgYmxvY2staXRlbSAuLi4pKSkpKSkgKChlcSB0eXBlICdwbGFpbi1saXN0KSAobGV0IG5pbCAo aWYgKG9yIHJhZGlvLWxpc3QtcCAoYW5kIChib3VuZHAgb3JnLWxpc3QtY2hlY2tib3gtcmFkaW8t bW9kZSkgb3JnLWxpc3QtY2hlY2tib3gtcmFkaW8tbW9kZSkpIChvcmctdG9nZ2xlLXJhZGlvLWJ1 dHRvbiBhcmcpIChsZXQqICgoYmVnaW4gLi4uKSAoc3RydWN0IC4uLikgKG9sZC1zdHJ1Y3QgLi4u KSAoZmlyc3QtYm94IC4uLikgKG5ldy1ib3ggLi4uKSkgKGNvbmQgKGFyZyAuLi4pICguLi4gLi4u KSkgKGlmIChlcXVhbCAuLi4gb2xkLXN0cnVjdCkgKHByb2duIC4uLikpIChvcmctdXBkYXRlLWNo ZWNrYm94LWNvdW50LW1heWJlKSkpKSkgKChlcSB0eXBlICdrZXl3b3JkKSAobGV0IG5pbCAobGV0 ICgob3JnLWluaGliaXQtc3RhcnR1cC12aXNpYmlsaXR5LXN0dWZmIHQpIChvcmctc3RhcnR1cC1h bGlnbi1hbGwtdGFibGVzIG5pbCkpIChpZiAoYm91bmRwICdvcmctdGFibGUtY29vcmRpbmF0ZS1v dmVybGF5cykgKHByb2duIChtYXBjIC4uLiBvcmctdGFibGUtY29vcmRpbmF0ZS1vdmVybGF5cykg KHNldHEgb3JnLXRhYmxlLWNvb3JkaW5hdGUtb3ZlcmxheXMgbmlsKSkpIChpZiAoZXEgb3JnLWZv bGQtY29yZS1zdHlsZSAndGV4dC1wcm9wZXJ0aWVzKSAobGV0KiAoLi4uIC4uLiAuLi4pICh1bndp bmQtcHJvdGVjdCAuLi4gLi4uKSkgKGxldCogKC4uLiAuLi4gLi4uKSAodW53aW5kLXByb3RlY3Qg Li4uIC4uLikpKSkgKG1lc3NhZ2UgIkxvY2FsIHNldHVwIGhhcyBiZWVuIHJlZnJlc2hlZCIpKSkg KChtZW1xIHR5cGUgJyhub2RlLXByb3BlcnR5IHByb3BlcnR5LWRyYXdlcikpIChsZXQgbmlsIChj YWxsLWludGVyYWN0aXZlbHkgIydvcmctcHJvcGVydHktYWN0aW9uKSkpICgoZXEgdHlwZSAncmFk aW8tdGFyZ2V0KSAobGV0IG5pbCAoY2FsbC1pbnRlcmFjdGl2ZWx5ICMnb3JnLXVwZGF0ZS1yYWRp by10YXJnZXQtcmVnZXhwKSkpICgoZXEgdHlwZSAnc3RhdGlzdGljcy1jb29raWUpIChsZXQgbmls IChjYWxsLWludGVyYWN0aXZlbHkgIydvcmctdXBkYXRlLXN0YXRpc3RpY3MtY29va2llcykpKSAo KG1lbXEgdHlwZSAnKHRhYmxlLXJvdyB0YWJsZS1jZWxsIHRhYmxlKSkgKGxldCBuaWwgKGNvbmQg KChhbmQgKG9yZy1tYXRjaC1saW5lICJbIFwxMV0qI1xcK3Bsb3Q6IikgKDwgLi4uIC4uLikpIChv cmctcGxvdC9nbnVwbG90KSkgKChlcSAob3JnLWVsZW1lbnQtcHJvcGVydHkgOnR5cGUgY29udGV4 dCkgJ3RhYmxlXC5lbCkgKG1lc3NhZ2UgIiVzIiAoc3Vic3RpdHV0ZS1jb21tYW5kLWtleXMgIlxc PG9yZy1tb2RlLW1hcD5Vc2UgYFxcW29yZy1lZGl0LXNwZWNpYWxdJyB0byBlZGl0IHQuLi4iKSkp ICgob3IgKGVxIHR5cGUgLi4uKSAoYW5kIC4uLiAuLi4pKSAoc2F2ZS1leGN1cnNpb24gKGlmIC4u LiAuLi4gLi4uIC4uLiAuLi4pKSkgKHQgKG9yZy10YWJsZS1tYXliZS1ldmFsLWZvcm11bGEpIChj b25kIChhcmcgLi4uKSAoLi4uKSAodCAuLi4pKSkpKSkgKChlcSB0eXBlICd0aW1lc3RhbXApIChm dW5jYWxsIHBjYXNlLTEpKSAoKGVxIHR5cGUgJ3BsYW5uaW5nKSAoY29uZCAoKG9yZy1hdC10aW1l c3RhbXAtcCAnbGF4KSAoZnVuY2FsbCBwY2FzZS0xKSkgKChydW4taG9vay13aXRoLWFyZ3MtdW50 aWwtc3VjY2VzcyAnb3JnLWN0cmwtYy1jdHJsLWMtZmluYWwtaG9vaykgJ25pbCkgKHQgKGZ1bmNh bGwgcGNhc2UtMCkpKSkgKChudWxsIHR5cGUpIChjb25kICgob3JnLWF0LWhlYWRpbmctcCkgKGxl dCBuaWwgKGNhbGwtaW50ZXJhY3RpdmVseSAjJ29yZy1zZXQtdGFncy1jb21tYW5kKSkpICgocnVu LWhvb2std2l0aC1hcmdzLXVudGlsLXN1Y2Nlc3MgJ29yZy1jdHJsLWMtY3RybC1jLWZpbmFsLWhv b2spICduaWwpICh0IChmdW5jYWxsIHBjYXNlLTApKSkpICgocnVuLWhvb2std2l0aC1hcmdzLXVu dGlsLXN1Y2Nlc3MgJ29yZy1jdHJsLWMtY3RybC1jLWZpbmFsLWhvb2spICduaWwpICh0IChmdW5j YWxsIHBjYXNlLTApKSkpCiAgKGxldCogKChjb250ZXh0IChvcmctZWxlbWVudC1saW5lYWdlIChv cmctZWxlbWVudC1jb250ZXh0KSAnKGJhYmVsLWNhbGwgY2xvY2sgZHluYW1pYy1ibG9jayBmb290 bm90ZS1kZWZpbml0aW9uIGZvb3Rub3RlLXJlZmVyZW5jZSBpbmxpbmUtYmFiZWwtY2FsbCBpbmxp bmUtc3JjLWJsb2NrIGlubGluZXRhc2sgaXRlbSBrZXl3b3JkIG5vZGUtcHJvcGVydHkgcGFyYWdy YXBoIHBsYWluLWxpc3QgcGxhbm5pbmcgcHJvcGVydHktZHJhd2VyIHJhZGlvLXRhcmdldCBzcmMt YmxvY2sgc3RhdGlzdGljcy1jb29raWUgdGFibGUgdGFibGUtY2VsbCB0YWJsZS1yb3cgdGltZXN0 YW1wKSB0KSkgKHJhZGlvLWxpc3QtcCAob3JnLWF0LXJhZGlvLWxpc3QtcCkpICh0eXBlIChvcmct ZWxlbWVudC10eXBlIGNvbnRleHQpKSkgKGlmIChlcSB0eXBlICdwYXJhZ3JhcGgpIChwcm9nbiAo bGV0ICgocGFyZW50IChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cGFyZW50IGNvbnRleHQpKSkgKGlm IChhbmQgKGVxIChvcmctZWxlbWVudC10eXBlIHBhcmVudCkgJ2l0ZW0pICg9IChsaW5lLWJlZ2lu bmluZy1wb3NpdGlvbikgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpiZWdpbiBwYXJlbnQpKSkgKHBy b2duIChzZXRxIGNvbnRleHQgcGFyZW50KSAoc2V0cSB0eXBlICdpdGVtKSkpKSkpIChsZXQqICgo cGNhc2UtMSAjJyhsYW1iZGEgbmlsIChvcmctdGltZXN0YW1wLWNoYW5nZSAwICdkYXkpKSkgKHBj YXNlLTAgIycobGFtYmRhIG5pbCAodXNlci1lcnJvciAoc3Vic3RpdHV0ZS1jb21tYW5kLWtleXMg ImBcXFtvcmctY3RybC1jLWN0cmwtY10nIGNhbiBkbyBub3RoaW5nIHVzZWZ1bCBoZXJlIikpKSkp IChjb25kICgobWVtcSB0eXBlICcoc3JjLWJsb2NrIGlubGluZS1zcmMtYmxvY2spKSAobGV0IG5p bCAoaWYgb3JnLWJhYmVsLW5vLWV2YWwtb24tY3RybC1jLWN0cmwtYyBuaWwgKG9yZy1iYWJlbC1l dmFsLXdpcGUtZXJyb3ItYnVmZmVyKSAob3JnLWJhYmVsLWV4ZWN1dGUtc3JjLWJsb2NrIGN1cnJl bnQtcHJlZml4LWFyZyAob3JnLWJhYmVsLWdldC1zcmMtYmxvY2staW5mbyBuaWwgY29udGV4dCkp KSkpICgob3JnLW1hdGNoLWxpbmUgIlsgXDExXSokIikgKGxldCBuaWwgKG9yIChydW4taG9vay13 aXRoLWFyZ3MtdW50aWwtc3VjY2VzcyAnb3JnLWN0cmwtYy1jdHJsLWMtZmluYWwtaG9vaykgKHVz ZXItZXJyb3IgKHN1YnN0aXR1dGUtY29tbWFuZC1rZXlzICJgXFxbb3JnLWN0cmwtYy1jdHJsLWNd JyBjYW4gZG8gbm90aGluZyB1c2VmdWwgaGVyZSIpKSkpKSAoKG1lbXEgdHlwZSAnKGlubGluZS1i YWJlbC1jYWxsIGJhYmVsLWNhbGwpKSAobGV0IG5pbCAobGV0ICgoaW5mbyAuLi4pKSAoaWYgaW5m byAocHJvZ24gLi4uKSkpKSkgKChlcSB0eXBlICdjbG9jaykgKGxldCBuaWwgKG9yZy1jbG9jay11 cGRhdGUtdGltZS1tYXliZSkpKSAoKGVxIHR5cGUgJ2R5bmFtaWMtYmxvY2spIChsZXQgbmlsIChz YXZlLWV4Y3Vyc2lvbiAoZ290by1jaGFyIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6cG9zdC1hZmZp bGlhdGVkIGNvbnRleHQpKSAob3JnLXVwZGF0ZS1kYmxvY2spKSkpICgoZXEgdHlwZSAnZm9vdG5v dGUtZGVmaW5pdGlvbikgKGxldCBuaWwgKGdvdG8tY2hhciAob3JnLWVsZW1lbnQtcHJvcGVydHkg OnBvc3QtYWZmaWxpYXRlZCBjb250ZXh0KSkgKGNhbGwtaW50ZXJhY3RpdmVseSAnb3JnLWZvb3Ru b3RlLWFjdGlvbikpKSAoKGVxIHR5cGUgJ2Zvb3Rub3RlLXJlZmVyZW5jZSkgKGxldCBuaWwgKGNh bGwtaW50ZXJhY3RpdmVseSAjJ29yZy1mb290bm90ZS1hY3Rpb24pKSkgKChtZW1xIHR5cGUgJyhp bmxpbmV0YXNrIGhlYWRsaW5lKSkgKGxldCBuaWwgKHNhdmUtZXhjdXJzaW9uIChnb3RvLWNoYXIg KG9yZy1lbGVtZW50LXByb3BlcnR5IDpiZWdpbiBjb250ZXh0KSkgKGNhbGwtaW50ZXJhY3RpdmVs eSAjJ29yZy1zZXQtdGFncy1jb21tYW5kKSkpKSAoKGVxIHR5cGUgJ2l0ZW0pIChsZXQgbmlsIChp ZiAob3IgcmFkaW8tbGlzdC1wIChhbmQgLi4uIG9yZy1saXN0LWNoZWNrYm94LXJhZGlvLW1vZGUp KSAob3JnLXRvZ2dsZS1yYWRpby1idXR0b24gYXJnKSAobGV0KiAoLi4uIC4uLiAuLi4gLi4uIC4u LiAuLi4pIChvcmctbGlzdC1zZXQtY2hlY2tib3ggLi4uIHN0cnVjdCAuLi4pIChvcmctbGlzdC1z dHJ1Y3QtZml4LWluZCBzdHJ1Y3QgcGFyZW50cyAyKSAob3JnLWxpc3Qtc3RydWN0LWZpeC1pdGVt LWVuZCBzdHJ1Y3QpIChvcmctbGlzdC1zdHJ1Y3QtZml4LWJ1bCBzdHJ1Y3QgcHJldnMpIChvcmct bGlzdC1zdHJ1Y3QtZml4LWluZCBzdHJ1Y3QgcGFyZW50cykgKGxldCAuLi4gLi4uIC4uLikpKSkp ICgoZXEgdHlwZSAncGxhaW4tbGlzdCkgKGxldCBuaWwgKGlmIChvciByYWRpby1saXN0LXAgKGFu ZCAuLi4gb3JnLWxpc3QtY2hlY2tib3gtcmFkaW8tbW9kZSkpIChvcmctdG9nZ2xlLXJhZGlvLWJ1 dHRvbiBhcmcpIChsZXQqICguLi4gLi4uIC4uLiAuLi4gLi4uKSAoY29uZCAuLi4gLi4uKSAoaWYg Li4uIC4uLikgKG9yZy11cGRhdGUtY2hlY2tib3gtY291bnQtbWF5YmUpKSkpKSAoKGVxIHR5cGUg J2tleXdvcmQpIChsZXQgbmlsIChsZXQgKChvcmctaW5oaWJpdC1zdGFydHVwLXZpc2liaWxpdHkt c3R1ZmYgdCkgKG9yZy1zdGFydHVwLWFsaWduLWFsbC10YWJsZXMgbmlsKSkgKGlmIChib3VuZHAg Li4uKSAocHJvZ24gLi4uIC4uLikpIChpZiAoZXEgb3JnLWZvbGQtY29yZS1zdHlsZSAuLi4pIChs ZXQqIC4uLiAuLi4pIChsZXQqIC4uLiAuLi4pKSkgKG1lc3NhZ2UgIkxvY2FsIHNldHVwIGhhcyBi ZWVuIHJlZnJlc2hlZCIpKSkgKChtZW1xIHR5cGUgJyhub2RlLXByb3BlcnR5IHByb3BlcnR5LWRy YXdlcikpIChsZXQgbmlsIChjYWxsLWludGVyYWN0aXZlbHkgIydvcmctcHJvcGVydHktYWN0aW9u KSkpICgoZXEgdHlwZSAncmFkaW8tdGFyZ2V0KSAobGV0IG5pbCAoY2FsbC1pbnRlcmFjdGl2ZWx5 ICMnb3JnLXVwZGF0ZS1yYWRpby10YXJnZXQtcmVnZXhwKSkpICgoZXEgdHlwZSAnc3RhdGlzdGlj cy1jb29raWUpIChsZXQgbmlsIChjYWxsLWludGVyYWN0aXZlbHkgIydvcmctdXBkYXRlLXN0YXRp c3RpY3MtY29va2llcykpKSAoKG1lbXEgdHlwZSAnKHRhYmxlLXJvdyB0YWJsZS1jZWxsIHRhYmxl KSkgKGxldCBuaWwgKGNvbmQgKChhbmQgLi4uIC4uLikgKG9yZy1wbG90L2dudXBsb3QpKSAoKGVx IC4uLiAuLi4pIChtZXNzYWdlICIlcyIgLi4uKSkgKChvciAuLi4gLi4uKSAoc2F2ZS1leGN1cnNp b24gLi4uKSkgKHQgKG9yZy10YWJsZS1tYXliZS1ldmFsLWZvcm11bGEpIChjb25kIC4uLiAuLi4g Li4uKSkpKSkgKChlcSB0eXBlICd0aW1lc3RhbXApIChmdW5jYWxsIHBjYXNlLTEpKSAoKGVxIHR5 cGUgJ3BsYW5uaW5nKSAoY29uZCAoKG9yZy1hdC10aW1lc3RhbXAtcCAnbGF4KSAoZnVuY2FsbCBw Y2FzZS0xKSkgKChydW4taG9vay13aXRoLWFyZ3MtdW50aWwtc3VjY2VzcyAnb3JnLWN0cmwtYy1j dHJsLWMtZmluYWwtaG9vaykgJ25pbCkgKHQgKGZ1bmNhbGwgcGNhc2UtMCkpKSkgKChudWxsIHR5 cGUpIChjb25kICgob3JnLWF0LWhlYWRpbmctcCkgKGxldCBuaWwgKGNhbGwtaW50ZXJhY3RpdmVs eSAuLi4pKSkgKChydW4taG9vay13aXRoLWFyZ3MtdW50aWwtc3VjY2VzcyAnb3JnLWN0cmwtYy1j dHJsLWMtZmluYWwtaG9vaykgJ25pbCkgKHQgKGZ1bmNhbGwgcGNhc2UtMCkpKSkgKChydW4taG9v ay13aXRoLWFyZ3MtdW50aWwtc3VjY2VzcyAnb3JnLWN0cmwtYy1jdHJsLWMtZmluYWwtaG9vaykg J25pbCkgKHQgKGZ1bmNhbGwgcGNhc2UtMCkpKSkpCiAgKGNvbmQgKChhbmQgKGJvdW5kcCAnb3Jn LWNvbHVtbnMtb3ZlcmxheXMpIG9yZy1jb2x1bW5zLW92ZXJsYXlzKSAob3JnLWNvbHVtbnMtcXVp dCkpICgob3IgKGFuZCAoYm91bmRwICdvcmctY2xvY2stb3ZlcmxheXMpIG9yZy1jbG9jay1vdmVy bGF5cykgb3JnLW9jY3VyLWhpZ2hsaWdodHMpIChpZiAoYm91bmRwICdvcmctY2xvY2stb3Zlcmxh eXMpIChwcm9nbiAob3JnLWNsb2NrLXJlbW92ZS1vdmVybGF5cykpKSAob3JnLXJlbW92ZS1vY2N1 ci1oaWdobGlnaHRzKSAobWVzc2FnZSAiVGVtcG9yYXJ5IGhpZ2hsaWdodHMvb3ZlcmxheXMgcmVt b3ZlZCBmcm9tIGN1cnJlbnQuLi4iKSkgKChhbmQgKGxvY2FsLXZhcmlhYmxlLXAgJ29yZy1maW5p c2gtZnVuY3Rpb24pIChmYm91bmRwIG9yZy1maW5pc2gtZnVuY3Rpb24pKSAoZnVuY2FsbCBvcmct ZmluaXNoLWZ1bmN0aW9uKSkgKChvcmctYmFiZWwtaGFzaC1hdC1wb2ludCkpICgocnVuLWhvb2st d2l0aC1hcmdzLXVudGlsLXN1Y2Nlc3MgJ29yZy1jdHJsLWMtY3RybC1jLWhvb2spKSAodCAobGV0 KiAoKGNvbnRleHQgKG9yZy1lbGVtZW50LWxpbmVhZ2UgKG9yZy1lbGVtZW50LWNvbnRleHQpICco YmFiZWwtY2FsbCBjbG9jayBkeW5hbWljLWJsb2NrIGZvb3Rub3RlLWRlZmluaXRpb24gZm9vdG5v dGUtcmVmZXJlbmNlIGlubGluZS1iYWJlbC1jYWxsIGlubGluZS1zcmMtYmxvY2sgaW5saW5ldGFz ayBpdGVtIGtleXdvcmQgbm9kZS1wcm9wZXJ0eSBwYXJhZ3JhcGggcGxhaW4tbGlzdCBwbGFubmlu ZyBwcm9wZXJ0eS1kcmF3ZXIgcmFkaW8tdGFyZ2V0IHNyYy1ibG9jayBzdGF0aXN0aWNzLWNvb2tp ZSB0YWJsZSB0YWJsZS1jZWxsIHRhYmxlLXJvdyB0aW1lc3RhbXApIHQpKSAocmFkaW8tbGlzdC1w IChvcmctYXQtcmFkaW8tbGlzdC1wKSkgKHR5cGUgKG9yZy1lbGVtZW50LXR5cGUgY29udGV4dCkp KSAoaWYgKGVxIHR5cGUgJ3BhcmFncmFwaCkgKHByb2duIChsZXQgKChwYXJlbnQgLi4uKSkgKGlm IChhbmQgLi4uIC4uLikgKHByb2duIC4uLiAuLi4pKSkpKSAobGV0KiAoKHBjYXNlLTEgIycobGFt YmRhIG5pbCAuLi4pKSAocGNhc2UtMCAjJyhsYW1iZGEgbmlsIC4uLikpKSAoY29uZCAoKG1lbXEg dHlwZSAnLi4uKSAobGV0IG5pbCAoaWYgb3JnLWJhYmVsLW5vLWV2YWwtb24tY3RybC1jLWN0cmwt YyBuaWwgLi4uIC4uLikpKSAoKG9yZy1tYXRjaC1saW5lICJbIFwxMV0qJCIpIChsZXQgbmlsIChv ciAuLi4gLi4uKSkpICgobWVtcSB0eXBlICcuLi4pIChsZXQgbmlsIChsZXQgLi4uIC4uLikpKSAo KGVxIHR5cGUgJ2Nsb2NrKSAobGV0IG5pbCAob3JnLWNsb2NrLXVwZGF0ZS10aW1lLW1heWJlKSkp ICgoZXEgdHlwZSAnZHluYW1pYy1ibG9jaykgKGxldCBuaWwgKHNhdmUtZXhjdXJzaW9uIC4uLiAu Li4pKSkgKChlcSB0eXBlICdmb290bm90ZS1kZWZpbml0aW9uKSAobGV0IG5pbCAoZ290by1jaGFy IC4uLikgKGNhbGwtaW50ZXJhY3RpdmVseSAuLi4pKSkgKChlcSB0eXBlICdmb290bm90ZS1yZWZl cmVuY2UpIChsZXQgbmlsIChjYWxsLWludGVyYWN0aXZlbHkgLi4uKSkpICgobWVtcSB0eXBlICcu Li4pIChsZXQgbmlsIChzYXZlLWV4Y3Vyc2lvbiAuLi4gLi4uKSkpICgoZXEgdHlwZSAnaXRlbSkg KGxldCBuaWwgKGlmIC4uLiAuLi4gLi4uKSkpICgoZXEgdHlwZSAncGxhaW4tbGlzdCkgKGxldCBu aWwgKGlmIC4uLiAuLi4gLi4uKSkpICgoZXEgdHlwZSAna2V5d29yZCkgKGxldCBuaWwgKGxldCAu Li4gLi4uIC4uLikgKG1lc3NhZ2UgIkxvY2FsIHNldHVwIGhhcyBiZWVuIHJlZnJlc2hlZCIpKSkg KChtZW1xIHR5cGUgJy4uLikgKGxldCBuaWwgKGNhbGwtaW50ZXJhY3RpdmVseSAuLi4pKSkgKChl cSB0eXBlICdyYWRpby10YXJnZXQpIChsZXQgbmlsIChjYWxsLWludGVyYWN0aXZlbHkgLi4uKSkp ICgoZXEgdHlwZSAnc3RhdGlzdGljcy1jb29raWUpIChsZXQgbmlsIChjYWxsLWludGVyYWN0aXZl bHkgLi4uKSkpICgobWVtcSB0eXBlICcuLi4pIChsZXQgbmlsIChjb25kIC4uLiAuLi4gLi4uIC4u LikpKSAoKGVxIHR5cGUgJ3RpbWVzdGFtcCkgKGZ1bmNhbGwgcGNhc2UtMSkpICgoZXEgdHlwZSAn cGxhbm5pbmcpIChjb25kICguLi4gLi4uKSAoLi4uIC4uLikgKHQgLi4uKSkpICgobnVsbCB0eXBl KSAoY29uZCAoLi4uIC4uLikgKC4uLiAuLi4pICh0IC4uLikpKSAoKHJ1bi1ob29rLXdpdGgtYXJn cy11bnRpbC1zdWNjZXNzICdvcmctY3RybC1jLWN0cmwtYy1maW5hbC1ob29rKSAnbmlsKSAodCAo ZnVuY2FsbCBwY2FzZS0wKSkpKSkpKQogIG9yZy1jdHJsLWMtY3RybC1jKG5pbCkKICBmdW5jYWxs LWludGVyYWN0aXZlbHkob3JnLWN0cmwtYy1jdHJsLWMgbmlsKQogIGNhbGwtaW50ZXJhY3RpdmVs eShvcmctY3RybC1jLWN0cmwtYyBuaWwgbmlsKQogIGNvbW1hbmQtZXhlY3V0ZShvcmctY3RybC1j LWN0cmwtYykK --06d6a98fa1be4864613d27800fe61d4a89917b7dabc22d60a84b712f53d0--