From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms1.migadu.com with LMTPS id QOVOLPs/QmZ/2wAAe85BDQ:P1 (envelope-from ) for ; Mon, 13 May 2024 18:29:47 +0200 Received: from aspmx1.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2.migadu.com with LMTPS id QOVOLPs/QmZ/2wAAe85BDQ (envelope-from ) for ; Mon, 13 May 2024 18:29:47 +0200 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=gmail.com header.s=20230601 header.b=TnK+GQ31; 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=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1715617787; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=j+czhA9sP8EbdW0P3EwMbrelwjDkpe7EOkPqhlqiSr8=; b=MXYE5803QqwZtzm/CWtDuAXLcO8o/7UwIrs0TZb36uRk8O9H1LwTJ8AbhB1NM6qKvw6vQt Ae2/5P+glZRVKF/kVFs/fYHPKa8sTr0vcS6syyTOhM9yO9I/P3En3tTWfFkAVD8/CFi9l9 qj80EVynYhxf778DJ4EPmfOVKt2oiTgNG43NYh6nMsv4RkN51MA36xQZSCMoufcvcyZDFI jnm0erv519cw2iCbLpUSgqbzyCdisvNv0MczzcbSC6aP/rwS3/1eJ6gEJYE89b03Y1dhof ygxHbcl6DXeiuyNbR2kvjcOAvR+Yc2pTCCtAaAks8jeL1ekCBS+KYW6jNaH5Kg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=gmail.com header.s=20230601 header.b=TnK+GQ31; 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=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none) ARC-Seal: i=1; s=key1; d=yhetil.org; t=1715617787; a=rsa-sha256; cv=none; b=ovlEpXGUs6nwGQ8+yH+5fh8vswyJ3aea/QzBefysX3Xcy6yXL4zTOrUCL0PKnBNyejgGh2 rPjfZ84iQq5C0uSxD4GGr8+iC9FihsXxQ+r3Pov6lvEtJ+YgA++L4RoBZO3OeY+M6VFemU dpEHJsDZc2lYaZpfeIq+Sb+vm9LEObrTZ7PgOsfXg6N3W1NrHHLH/ELtX2EhnkNZD+DjlZ q/Prj/P+r0NYDKjnUvjt6PIUpQ2IHVGUvNOZB7QlKZCndWlO0kxGsPRuyJPOTr81nQLvcq Yu01Dg/ks1rhMQP3B07ivtbYNmVamiyC4ivm8KfQEkW3RkbVcIrFU/0viDnlRg== 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 E82395443E for ; Mon, 13 May 2024 18:29:46 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s6YXn-0001io-RO; Mon, 13 May 2024 12:28:55 -0400 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 1s6YXl-0001iV-Lg for emacs-orgmode@gnu.org; Mon, 13 May 2024 12:28:53 -0400 Received: from mail-ej1-x62d.google.com ([2a00:1450:4864:20::62d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1s6YXh-0000up-Nm for emacs-orgmode@gnu.org; Mon, 13 May 2024 12:28:53 -0400 Received: by mail-ej1-x62d.google.com with SMTP id a640c23a62f3a-a59ab4f60a6so955731866b.0 for ; Mon, 13 May 2024 09:28:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715617728; x=1716222528; darn=gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=8gEi2p1JCW/o70PjezAGSA6juFbYJsMZTizTzGjn8XY=; b=TnK+GQ31vofgjdk9uVYhm0rdtDAwFLSItXEwLlmlseC+wbDOetptWbYYQQxhf4NlHK vL/vDt12ldoxJQk1Sy2I+ipREj0VvpRG5QH5VVC/NCcRBLfpst4XQZ9E7y95XUsufRGi fZHoDw4vv++IHnHBn+tlGQ0bA/NSlNA2YFEYmVVoYggAsKm4Ko9noVxzY56WhBSxAbim w+cCTSqn6ZjnSO3ADjbeF0E2aCr2QqEaswPK9XAOLeMzq1LaVSECWvaDANVAZ9YfgfJs WTJPM0V7Gs4H9n7JQo4e9aReICsoFzVQVaWKNyv7N+kePvaByMQbJqr3LWoPJ08hIU3m /8hA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715617728; x=1716222528; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=8gEi2p1JCW/o70PjezAGSA6juFbYJsMZTizTzGjn8XY=; b=knwDhDVwQ38Ct0R0J+WDPiSyKyHPPmd4WzHrhxX55KyFHEiPH4xi2riu24c26USr4b eJB7IR2h569ocmBtkPZQ5Y1M+kb8YDr3ldNuVeP5G29QwZNqGcG+ml8gq+kRg+XSMQZw nB23V/m+hXYLLMAtC8XYgz4ke5KDey6/TApBux1EADnW5phrlFm6fsSmI529ux8EEN2P Ztf36KMTLImEibJ0+2gnyyMaDALMAfcPaUA2qCRAVNczCHxWRxMPZ/IfzvA/S+UNalgm Tnp5iaO/0yUgeXKxmJzXyxNuO6zeO+jgR75zUn9SUvqkd5XrOlX8hPkrmg7j/1kjOSHs /eNQ== X-Gm-Message-State: AOJu0YyAS8I2hq6HfUn7jxS1jHJHN+IJGm2SoqGqsvmTYQuBCqwohudC PTmNuycq6X2dTq9dl0etNwpoYpgn7lkMmRFYUYyYeHeVtlLTMuQLdn4hWl6ZQKPW4ynZe9SC0LI PAjilaFbkofWZdixJk1IpK0puuJgS7Q== X-Google-Smtp-Source: AGHT+IExg3EysBgKY7wOqDFEdIspB66Jy3SYp7XSIVkTLftSZ4GhrXLWkz/vF9vh/C9H9oAZBjuGk1f0i/QjPamsh/U= X-Received: by 2002:a17:907:747:b0:a59:a3ef:21f5 with SMTP id a640c23a62f3a-a5a2d65ed16mr1334594166b.57.1715617727709; Mon, 13 May 2024 09:28:47 -0700 (PDT) MIME-Version: 1.0 References: <87le9szzev.fsf@localhost> <87le7at17k.fsf@bzg.fr> <87cyskn7xa.fsf@localhost> <87plvzek3f.fsf@localhost> <87y18ef7yt.fsf@localhost> In-Reply-To: <87y18ef7yt.fsf@localhost> From: Francesc Rocher Date: Mon, 13 May 2024 18:28:36 +0200 Message-ID: Subject: Re: Testing issues for Ada/SPARK support in Babel To: Ihor Radchenko Cc: emacs-orgmode@gnu.org Content-Type: multipart/mixed; boundary="0000000000003b4661061858617c" Received-SPF: pass client-ip=2a00:1450:4864:20::62d; envelope-from=francesc.rocher@gmail.com; helo=mail-ej1-x62d.google.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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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: 2.73 X-Spam-Score: 2.73 X-Migadu-Queue-Id: E82395443E X-Migadu-Scanner: mx13.migadu.com X-TUID: iERdEpW5HBgo --0000000000003b4661061858617c Content-Type: multipart/alternative; boundary="0000000000003b4661061858617a" --0000000000003b4661061858617a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Ihor, The patch is almost finished: refactored support for Ada and SPARK, tests and documentation of custom variables. The only pending thing is to write the changes in the NEWS files and other minor changes. If you don't mind, I attach here the patch in its current state for reviewing purposes. BR, -- Francesc Rocher On Mon, May 13, 2024 at 10:08=E2=80=AFAM Ihor Radchenko wrote: > Ihor Radchenko writes: > > > Francesc Rocher writes: > > > >> I'm starting from scratch the set of tests for Ada/SPARK support in > Babel. > >> I've prepared a file with the first example: > > ... > > It has been a while since the last update in this thread. > May I know if you need any help to progress on your work? > > -- > Ihor Radchenko // yantar92, > Org mode contributor, > Learn more about Org mode at . > Support Org development at , > or support my work at > --0000000000003b4661061858617a Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Ihor,

The patch is almost= finished: refactored support for Ada and SPARK, tests and documentation of= custom variables.
The only pending thing is to write the cha= nges in the NEWS files and other minor changes.

If you don't mind, I attach here the patch in its current state for r= eviewing purposes.

BR,
-- Francesc Rocher
<= br>

On Mon, May 13, 2024 at 10:08=E2=80=AFAM Ihor Radchenko <yantar92@posteo.net&= gt; wrote:
Ihor = Radchenko <yant= ar92@posteo.net> writes:

> Francesc Rocher <francesc.rocher@gmail.com> writes:
>
>> I'm starting from scratch the set of tests for Ada/SPARK suppo= rt in Babel.
>> I've prepared a file with the first example:
> ...

It has been a while since the last update in this thread.
May I know if you need any help to progress on your work?

--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,=
or support my work at <https://liberapay.com/yantar92>
--0000000000003b4661061858617a-- --0000000000003b4661061858617c Content-Type: text/x-patch; charset="UTF-8"; name="0001-Initial-support-for-Ada-SPARK.patch" Content-Disposition: attachment; filename="0001-Initial-support-for-Ada-SPARK.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lw56gt9r0 RnJvbSA4MDZkYTA5ODU1MmYwNWJkNGMzYWY4MmJhNTRiZGFlOGMxYWQ1NGYxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmFuY2VzYyBSb2NoZXIgPGZyYW5jZXNjLnJvY2hlckBnbWFp bC5jb20+CkRhdGU6IFRodSwgMjEgTWFyIDIwMjQgMDg6NDY6MzMgKzAxMDAKU3ViamVjdDogW1BB VENIXSBJbml0aWFsIHN1cHBvcnQgZm9yIEFkYS9TUEFSSwoKLS0tCiBsaXNwL29iLWFkYS1zcGFy ay5lbCAgICAgICAgICAgICAgICAgICB8IDQ5NiArKysrKysrKysrKysrKysrKysrKysrKysrCiB0 ZXN0aW5nL2V4YW1wbGVzL29iLWFkYS1zcGFyay10ZXN0Lm9yZyB8IDMwMCArKysrKysrKysrKysr KysKIHRlc3RpbmcvbGlzcC90ZXN0LW9iLWFkYS1zcGFyay5lbCAgICAgIHwgMjQwICsrKysrKysr KysrKwogMyBmaWxlcyBjaGFuZ2VkLCAxMDM2IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEw MDY0NCBsaXNwL29iLWFkYS1zcGFyay5lbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RpbmcvZXhh bXBsZXMvb2ItYWRhLXNwYXJrLXRlc3Qub3JnCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdGluZy9s aXNwL3Rlc3Qtb2ItYWRhLXNwYXJrLmVsCgpkaWZmIC0tZ2l0IGEvbGlzcC9vYi1hZGEtc3Bhcmsu ZWwgYi9saXNwL29iLWFkYS1zcGFyay5lbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAuLjc5ZjQwZGY2OQotLS0gL2Rldi9udWxsCisrKyBiL2xpc3Avb2ItYWRhLXNwYXJrLmVs CkBAIC0wLDAgKzEsNDk2IEBACis7Ozsgb2ItYWRhLXNwYXJrLmVsIC0tLSBvcmctYmFiZWwgZnVu Y3Rpb25zIGZvciBBZGEgJiBTUEFSSyAtKi0gbGV4aWNhbC1iaW5kaW5nOiB0OyAtKi0KKworOzsg Q29weXJpZ2h0IChDKSAyMDIxLTIwMjQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisK Kzs7IEF1dGhvcjogRnJhbmNlc2MgUm9jaGVyCis7OyBNYWludGFpbmVyOiBGcmFuY2VzYyBSb2No ZXIKKzs7IEtleXdvcmRzOiBsaXRlcmF0ZSBwcm9ncmFtbWluZywgcmVwcm9kdWNpYmxlIHJlc2Vh cmNoLCBBZGEvU1BBUksKKzs7IFVSTDogaHR0cHM6Ly9vcmdtb2RlLm9yZworCis7OyBUaGlzIGZp bGUgaXMgcGFydCBvZiBHTlUgRW1hY3MuCisKKzs7IEdOVSBFbWFjcyBpcyBmcmVlIHNvZnR3YXJl OiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cis7OyBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQor OzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUg TGljZW5zZSwgb3IKKzs7IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKzs7 IEdOVSBFbWFjcyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAorOzsgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKzs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKzs7IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisKKzs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCis7OyBhbG9uZyB3aXRoIG9iLWFkYS1zcGFy ay4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworOzs7IENv bW1lbnRhcnk6CisKKzs7IE9yZy1CYWJlbCBzdXBwb3J0IGZvciBldmFsdWF0aW5nIEFkYSAmIFNQ QVJLIGNvZGUgYW5kIHByb3ZpbmcgU1BBUksgY29kZS4KKworOzs7IFJlcXVpcmVtZW50czoKKwor OzsgKiBBbiBBZGEgY29tcGlsZXIgKGduYXRtYWtlKQorOzsgKiBBIFNQQVJLIGZvcm1hbCB2ZXJp ZmljYXRpb24gdG9vbCAoZ25hdHByb3ZlKQorOzsgKiBFbWFjcyBhZGEtbW9kZSwgb3B0aW9uYWwg YnV0IHN0cm9uZ2x5IHJlY29tbWVuZGVkLCBzZWUKKzs7ICAgPGh0dHBzOi8vd3d3Lm5vbmdudS5v cmcvYWRhLW1vZGUvPgorCis7OzsgQ29kZToKKworKHJlcXVpcmUgJ29iKQorKHJlcXVpcmUgJ3Rp bWUtc3RhbXApCisKKyhvcmctYXNzZXJ0LXZlcnNpb24pCisKKyhkZWZ2YXIgb3JnLWJhYmVsLXRh bmdsZS1sYW5nLWV4dHMpCisoYWRkLXRvLWxpc3QgJ29yZy1iYWJlbC10YW5nbGUtbGFuZy1leHRz ICcoImFkYSIgLiAiYWRiIikpCisKKyhkZWZ2YXIgb3JnLWJhYmVsLXRlbXBvcmFyeS1kaXJlY3Rv cnkpCisKKyhkZWZ2YXIgb3JnLWJhYmVsLWRlZmF1bHQtaGVhZGVyLWFyZ3M6YWRhICcoKDphcmdz IC4gbmlsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoOmNm bGFncyAuIG5pbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KDpwZmxhZ3MgLiBuaWwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICg6cHJvdmUgLiBuaWwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICg6dGVtcGxhdGUgLiBuaWwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICg6dW5pdCAuIG5pbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKDp3aXRoIC4gbmlsKSkKKyAgIkFkYS9TUEFSSyBkZWZhdWx0IGhlYWRl ciBhcmd1bWVudHMuIikKKworKGRlZmNvbnN0IG9yZy1iYWJlbC1oZWFkZXItYXJnczphZGEgJygo YXJncyAuIGFueSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNmbGFn cyAuIGFueSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBmbGFncyAu IGFueSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb3ZlIC4gKChu aWwgdCkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGVtcGxhdGUg LiA6YW55KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5pdCAuIDph bnkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3aXRoIC4gbmlsKSkK KyAgIkFkYS9TUEFSSyBzcGVjaWZpYyBoZWFkZXIgYXJndW1lbnRzLiIpCisKKyhkZWZjb25zdCBv Yi1hZGEtc3BhcmstdGVtcGxhdGUtdmFyLW5hbWUtZm9ybWF0ICJvYi1hZGEtc3BhcmstdGVtcGxh dGU6JXMiCisgICJGb3JtYXQgb2YgdGhlIG5hbWUgb2YgdGhlIHRlbXBsYXRlIHZhcmlhYmxlcy4K K0FsbCB0ZW1wbGF0ZXMgbXVzdCBiZSBkZWZpbmVkIGluIGEgdmFyaWFibGUgd2l0aCBhIG5hbWUK K2NvbXBhdGlibGUgd2l0aCB0aGlzIGZvcm1hdC4gVGhlIHRlbXBsYXRlIG5hbWUgaXMgb25seSB0 aGUgJyVzJworcGFydC4gRnJvbSB0aGUgc291cmNlIGJsb2NrLCB0ZW1wbGF0ZXMgY2FuIGJlIHVz ZWQgaW4gdGhlCisnOnRlbXBsYXRlJyBoZWFkZXIgd2l0aCB0aGUgdGVtcGxhdGUgbmFtZS4KKwor Rm9yIGV4YW1wbGUsIHRoZSB0ZW1wbGF0ZSBkZWZpbmVkIGluIHRoZSB2YXJpYWJsZQorYG9iLWFk YS1zcGFyay10ZW1wbGF0ZTphZGEtbWFpbicgaXMgdXNlZCBpbiB0aGUgaGVhZGVyIG9mIHRoZQor c291cmNlIGJsb2NrIHdpdGggJzp0ZW1wbGF0ZSBhZGEtbWFpbicuIikKKworKGRlZmN1c3RvbSBv cmctYmFiZWwtYWRhLXNwYXJrLWNvbXBpbGUtY29tbWFuZCAiZ25hdG1ha2UiCisgICJDb21tYW5k IHVzZWQgdG8gY29tcGlsZSBBZGEvU1BBUksgY29kZSBpbnRvIGFuIGV4ZWN1dGFibGUuCitNYXkg YmUgZWl0aGVyIGEgY29tbWFuZCBpbiB0aGUgcGF0aCwgbGlrZSBnbmF0bWFrZSwgb3IgYW4KK2Fi c29sdXRlIHBhdGggbmFtZS4KKworSWYgdXNpbmcgQWxpcmUgMi54LCBpbnN0YWxsIHRoZSBkZWZh dWx0IG5hdGl2ZSB0b29sY2hhaW4sIHdpdGgKK2BhbHIgaW5zdGFsbCBnbmF0X25hdGl2ZScsIGFu ZCB3cml0ZSBoZXJlIHRoZSBwYXRoIHRvIGduYXRtYWtlIG9yCithcHBlbmQgJEhPTUUvLmFsaXJl L2JpbiB0byBQQVRILiIKKyAgOmdyb3VwICdvcmctYmFiZWwKKyAgOnR5cGUgJ3N0cmluZworICA6 cGFja2FnZS12ZXJzaW9uICcoT3JnIC4gIjkuNyIpCisgIDpzYWZlICMnc3RyaW5ncCkKKworKGRl ZmN1c3RvbSBvcmctYmFiZWwtYWRhLXNwYXJrLXByb3ZlLWNvbW1hbmQgImduYXRwcm92ZSIKKyAg IkNvbW1hbmQgdXNlZCB0byBwcm92ZSBTUEFSSyBjb2RlLgorTWF5IGJlIGVpdGhlciBhIGNvbW1h bmQgaW4gdGhlIHBhdGgsIGxpa2UgZ25hdHByb3ZlLCBvciBhbgorYWJzb2x1dGUgcGF0aCBuYW1l LCBsaWtlIC9vcHQvYWRhL2Jpbi9nbmF0cHJvdmUuCisKK0lmIHVzaW5nIEFsaXJlIDIueCwgaW5z dGFsbCBnbmF0cHJvdmUsIGBhbHIgaW5zdGFsbCBnbmF0cHJvdmUnLAorYW5kIHdyaXRlIGhlcmUg dGhlIHBhdGggdG8gZ25hdHByb3ZlIG9yIGFwcGVuZCAkSE9NRS8uYWxpcmUvYmluCit0byBQQVRI LiIKKyAgOmdyb3VwICdvcmctYmFiZWwKKyAgOnR5cGUgJ3N0cmluZworICA6cGFja2FnZS12ZXJz aW9uICcoT3JnIC4gIjkuNyIpCisgIDpzYWZlICMnc3RyaW5ncCkKKworKGRlZmN1c3RvbSBvcmct YmFiZWwtYWRhLXNwYXJrLWRlZmF1bHQtY29tcGlsZS1mbGFncworICAiLWYgLXdlIC1nbmF0YSAt Z25hdGVGIC1nbmF0ZVYgLWduYXRmIC1nbmF0VmEgLWduYXR3YSAtZ25hdFggLWduYXQyMDIyIC1n bmF0VzgiCisgICJEZWZhdWx0IGNvbXBpbGVyIGZsYWdzIGZvciBBZGEgYW5kIFNQQVJLLgorVGhl c2UgZmxhZ3MgYXJlIHVzZWQgdG8gY29tcGlsZSBBZGEgYW5kIFNQQVJLIGNvZGUuIEFueQorYWRk aXRpb25hbCBmbGFncyBzcGVjaWZpZWQgaW4gdGhlICc6Y2xmYWdzJyBoZWFkZXIgaXMgcGFzc2Vk CithZnRlciB0aGUgZGVmYXVsdCBvbmVzLgorCitEZWZhdWx0IGZsYWdzIGZvciBnbmF0bWFrZSBh cmU6CisKKyAgLWYgICAgICAgIEZvcmNlIHJlY29tcGlsYXRpb25zIG9mIG5vbiBwcmVkZWZpbmVk IHVuaXRzCisgIC13ZSAgICAgICBUcmVhdCBhbGwgd2FybmluZ3MgYXMgZXJyb3JzCisgIC1nbmF0 YSAgICBBc3NlcnRpb25zIGVuYWJsZWQuIFByYWdtYSBBc3NlcnQvRGVidWcgdG8gYmUgYWN0aXZh dGVkCisgIC1nbmF0ZUYgICBDaGVjayBvdmVyZmxvdyBvbiBwcmVkZWZpbmVkIEZsb2F0IHR5cGVz CisgIC1nbmF0ZVYgICBWYWxpZGl0eSBjaGVja3Mgb24gc3VicHJvZ3JhbSBwYXJhbWV0ZXJzCisg IC1nbmF0ZiAgICBGdWxsIGVycm9ycy4gVmVyYm9zZSBkZXRhaWxzLCBhbGwgdW5kZWZpbmVkIHJl ZmVyZW5jZXMKKyAgLWduYXR3YSAgIEVuYWJsZSBzZWxlY3RlZCB3YXJuaW5nIG1vZGVzICh0dXJu IG9uIGFsbCBpbmZvL3dhcm5pbmdzKQorICAtZ25hdFggICAgTGFuZ3VhZ2UgZXh0ZW5zaW9ucyBw ZXJtaXR0ZWQKKyAgLWduYXQyMDIyIEFkYSAyMDIyIG1vZGUKKyAgLWduYXRXOCAgIFdpZGUgY2hh cmFjdGVyIGVuY29kaW5nIG1ldGhvZCAoPz1oL3Uvcy9lLzgvYikKKyIKKyAgOmdyb3VwICdvcmct YmFiZWwKKyAgOnR5cGUgJ3N0cmluZworICA6cGFja2FnZS12ZXJzaW9uICcoT3JnIC4gIjkuNyIp CisgIDpzYWZlICMnc3RyaW5ncCkKKworKGRlZmN1c3RvbSBvcmctYmFiZWwtYWRhLXNwYXJrLWRl ZmF1bHQtcHJvdmUtZmxhZ3MKKyAgIi1mIC0tYXNzdW1wdGlvbnMgLS1sZXZlbD00IC0tcmVwb3J0 PWFsbCAtLXZlcmJvc2UiCisgICJEZWZhdWx0IGZsYWdzIGZvciBnbmF0cHJvdmUuCitUaGVzZSBm bGFncyBhcmUgdXNlZCB0byBwcm92ZSBTUEFSSyBjb2RlLiBBbnkgYWRkaXRpb25hbCBmbGFnCitz cGVjaWZpZWQgaW4gdGhlICc6cGZsYWdzJyBoZWFkZXIgaXMgcGFzc2VkIGFmdGVyIHRoZSBkZWZh dWx0CitvbmVzLgorCitUaGUgY29tcGlsZXIgZmxhZ3MgYXJlIGFsc28gcGFzc2VkIHRvIGduYXRw cm92ZSB1c2luZyB0aGUKKyctY2FyZ3MnIGZsYWcsIGJvdGggdGhlIHRoZSBkZWZhdWx0IGZsYWdz IGluCitgb3JnLWJhYmVsLWFkYS1zcGFyay1kZWZhdWx0LWNvbXBpbGUtZmxhZ3MnIGFuZCB0aGUg ZmxhZ3MKK3NwZWNpZmllZCBpbiB0aGUgJzpjZmxhZ3MnIGhlYWRlciwgaW4gdGhhdCBvcmRlci4K KworRGVmYXVsdCBmbGFncyBmb3IgZ25hdHByb3ZlIGFyZToKKworICAtZiAgICAgICAgICAgICAg ICBGb3JjZSByZWNvbXBpbGF0aW9uL2FuYWx5c2lzIG9mIGFsbCB1bml0cworICAtLWFzc3VtcHRp b25zICAgICBPdXRwdXQgYXNzdW1wdGlvbnMgaW5mb3JtYXRpb24KKyAgLS1sZXZlbD00ICAgICAg ICAgU2V0IHRoZSBsZXZlbCBvZiBwcm9vZiAoMCA9IGZhc3RlciB0byA0ID0gbW9yZSBwb3dlcmZ1 bCkKKyAgLS1yZXBvcnQ9YWxsICAgICAgU2V0IHRoZSByZXBvcnQgbW9kZSBvZiBHTkFUcHJvdmUg KHI9ZmFpbCosIGFsbCwKKyAgICAgICAgICAgICAgICAgICAgcHJvdmVycywgc3RhdGlzdGljcykK KyAgLS12ZXJib3NlICAgICAgICAgT3V0cHV0IGV4dHJhIHZlcmJvc2UgaW5mb3JtYXRpb24KKyIK KyAgOmdyb3VwICdvcmctYmFiZWwKKyAgOnR5cGUgJ3N0cmluZworICA6cGFja2FnZS12ZXJzaW9u ICcoT3JnIC4gIjkuNyIpCisgIDpzYWZlICMnc3RyaW5ncCkKKworKGRlZmN1c3RvbSBvcmctYmFi ZWwtYWRhLXNwYXJrLWRlZmF1bHQtZmlsZS1oZWFkZXIKKyAgKGxhbWJkYSAoKQorICAgIChmb3Jt YXQKKyAgICAgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCistLQorLS0gIFNvdXJjZSBjb2RlIGdlbmVy YXRlZCBhdXRvbWF0aWNhbGx5IGJ5ICdvcmctYmFiZWwtdGFuZ2xlJyBmcm9tCistLSAgZmlsZSAl cworLS0gICVzCistLQorLS0gIERPIE5PVCBFRElUISEKKy0tCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorCisiCisgICAgIChidWZmZXItZmlsZS1uYW1lIChjdXJyZW50LWJ1ZmZlcikpCisgICAgICh0 aW1lLXN0YW1wLXN0cmluZyAiJVktJTAybS0lMDJkICUwMkg6JTAyTTolMDJTIikpKQorICAiSGVh ZGVyIHdyaXR0ZW4gaW4gZmlsZXMgZ2VuZXJhdGVkIHdpdGggYG9yZy1iYWJlbC10YW5nbGUnLiIK KyAgOmdyb3VwICdvcmctYmFiZWwKKyAgOnR5cGUgJ2Z1bmN0aW9uCisgIDpwYWNrYWdlLXZlcnNp b24gJyhPcmcgLiAiOS43IikpCisKKyhkZWZ2YXIgb2ItYWRhLXNwYXJrLXRlbXBsYXRlOmFkYS1t YWluCisgICcoKDpwYXJhbXMgLiAoKDp1bml0IC4gIm1haW4iKSAoOmNmbGFncyAuICItZ25hdFc4 IikpKQorICAgICg6Ym9keSAuICJ3aXRoIEFkYS5UZXh0X0lPOyB1c2UgQWRhLlRleHRfSU87Cisl cworcHJvY2VkdXJlIE1haW4gaXMKKyVzCitlbmQgTWFpbjsKKyIpKQorICAiVGVtcGxhdGUgZm9y IGEgYmFzaWMgTWFpbiBwcm9jZWR1cmUgd3JpdHRlbiBpbiBBZGEgMjAyMi4KK01ha2VzIHVzZSBv ZiB0aGUgQWRhLlRleHRfSU8gKHdpdGggYW5kIHVzZSBjbGF1c2VzKS4gQWRtaXRzCithZGRpdGlv bmFsIHdpdGgnZWQgcGFja2FnZXMgYW5kIGEgcHJvY2VkdXJlIGJvZHkuCisKK1VzZSB0aGlzIHRl bXBsYXRlIGFzIGEgc3RhcnRpbmcgcG9pbnQgZm9yIG5ldyBBZGEgdGVtcGxhdGVzLiBBbGwKK3Rl bXBsYXRlcyBtdXN0IGluY2x1ZGUgdHdvIHBsYWNlaG9sZGVycywgZm9yIHRoZSB3aXRoIHNlY3Rp b24gYW5kCitmb3IgdGhlIGJvZHkuCisKK0V4YW1wbGUgb2YgdXNlOgorCisjK2JlZ2luX3NyYyBh ZGEgOnRlbXBsYXRlIGFkYS1tYWluIDp3aXRoIFN5c3RlbS5PU19MaWIKKyAgIFRpbWUgOiBjb25z dGFudCBTdHJpbmcgOj0gQ3VycmVudF9UaW1lX1N0cmluZzsKK2JlZ2luCisgICBQdXRfTGluZSAo VGltZSk7CisjK2VuZF9zcmMKKworVGhlIHJlc3VsdGluZyBib2R5IGlzOgorCit3aXRoIEFkYS5U ZXh0X0lPOyB1c2UgQWRhLlRleHRfSU87Cit3aXRoIFN5c3RlbS5PU19MaWI7IHVzZSBTeXN0ZW0u T1NfTGliOworCitwcm9jZWR1cmUgTWFpbiBpcworICAgVGltZSA6IGNvbnN0YW50IFN0cmluZyA6 PSBDdXJyZW50X1RpbWVfU3RyaW5nOworYmVnaW4KKyAgIFB1dF9MaW5lIChUaW1lKTsKK2VuZCBN YWluOworIikKKworKGRlZnZhciBvYi1hZGEtc3BhcmstdGVtcGxhdGU6c3BhcmstbWFpbgorICAn KCg6cGFyYW1zIC4gKCg6Y2ZsYWdzIC4gIi1nbmF0VzgiKSAoOnByb3ZlIC4gdCkgKDp1bml0IC4g Im1haW4iKSkpCisgICAgKDpib2R5IC4gIndpdGggQWRhLlRleHRfSU87IHVzZSBBZGEuVGV4dF9J TzsKKyVzCitwcm9jZWR1cmUgTWFpbiB3aXRoIFNwYXJrX01vZGUgPT4gT24gaXMKKyVzCitlbmQg TWFpbjsKKyIpKQorICAiVGVtcGxhdGUgZm9yIGEgYmFzaWMgTWFpbiBwcm9jZWR1cmUgd3JpdHRl biBpbiBTUEFSSy4KK01ha2VzIHVzZSBvZiB0aGUgQWRhLlRleHRfSU8gKHdpdGggYW5kIHVzZSBj bGF1c2VzKS4gQWRtaXRzCithZGRpdGlvbmFsIHdpdGgnZWQgcGFja2FnZXMgYW5kIGEgcHJvY2Vk dXJlIGJvZHkuCisKK1VzZSB0aGlzIHRlbXBsYXRlIGFzIGEgc3RhcnRpbmcgcG9pbnQgZm9yIG5l dyBTUEFSSyB0ZW1wbGF0ZXMuIEFsbAordGVtcGxhdGVzIG11c3QgaW5jbHVkZSB0d28gcGxhY2Vo b2xkZXJzLCBmb3IgdGhlIHdpdGggc2VjdGlvbiBhbmQKK2ZvciB0aGUgYm9keS4KKworRXhhbXBs ZSBvZiB1c2U6CisKKyMrYmVnaW5fc3JjIGFkYSA6dGVtcGxhdGUgYWRhLW1haW4gOndpdGggU3lz dGVtLk9TX0xpYgorICAgUHV0X0xpbmUgKEN1cnJlbnRfVGltZV9TdHJpbmcpOworIytlbmRfc3Jj CisKK1RoZSByZXN1bHRpbmcgYm9keSBpczoKKword2l0aCBBZGEuVGV4dF9JTzsgdXNlIEFkYS5U ZXh0X0lPOword2l0aCBTeXN0ZW0uT1NfTGliOyB1c2UgU3lzdGVtLk9TX0xpYjsKKworcHJvY2Vk dXJlIE1haW4gaXMKK2JlZ2luCisgICBQdXRfTGluZSAoQ3VycmVudF9UaW1lX1N0cmluZyk7Citl bmQgTWFpbjsKKyIpCisKKyhkZWZ1biBvYi1hZGEtc3BhcmstcmVwbGFjZS1wYXJhbXMtZnJvbS10 ZW1wbGF0ZSAocGFyYW1zKQorICAiUmVwbGFjZSBoZWFkZXJzIGluIFBBUkFNUyB3aXRoIGhlYWRl cnMgZGVmaW5lZCBpbiB0aGUgdGVtcGxhdGUuCitJZiBhIHRlbXBsYXRlIGRlZmluZXMgYSBzZXQg b2YgcGFyYW1zLCByZXBsYWNlIHRoZSB2YWx1ZXMgaW4KK1BBUkFNUyB3aXRoIHRoZSB2YWx1ZXMg ZGVmaW5lZCBpbiB0aGUgdGVtcGxhdGUsIG92ZXJ3cml0aW5nCitwYXJhbWV0ZXJzIGFscmVhZHkg ZGVmaW5lZCBpbiB0aGUgc291cmNlIGNvZGUgYmxvY2suCitSZXR1cm4gdGhlIG5ldyBsaXN0IG9m IFBBUkFNUywgb3IgdGhlIG9yaWdpbmFsIGxpc3QgaWYgdGhlCit0ZW1wbGF0ZSBkb2VzIG5vdCBk ZWZpbmUgYW55IGhlYWRlciBvciBubyB0ZW1wbGF0ZSBpcyB1c2VkLiIKKyAgKGxldCogKCh0ZW1w bGF0ZS1uYW1lIChjZHIgKGFzc3EgOnRlbXBsYXRlIHBhcmFtcykpKQorICAgICAgICAgKHRlbXBs YXRlIChldmFsCisgICAgICAgICAgICAgICAgICAgIChpbnRlcm4tc29mdAorICAgICAgICAgICAg ICAgICAgICAgKGZvcm1hdCBvYi1hZGEtc3BhcmstdGVtcGxhdGUtdmFyLW5hbWUtZm9ybWF0Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlLW5hbWUpKSkpKQorICAgIChpZiB0 ZW1wbGF0ZQorICAgICAgICAocHJvZ24KKyAgICAgICAgICAobWVzc2FnZSAiLS0gcmVwbGFjaW5n IHBhcmFtcyBmcm9tIHRlbXBsYXRlICVzIiB0ZW1wbGF0ZS1uYW1lKQorICAgICAgICAgIChtYXBj IChsYW1iZGEgKHApCisgICAgICAgICAgICAgICAgICAoYXNzcS1kZWxldGUtYWxsIChjYXIgcCkg cGFyYW1zKSkKKyAgICAgICAgICAgICAgICAoY2RyIChhc3NxIDpwYXJhbXMgdGVtcGxhdGUpKSkK KyAgICAgICAgICAoYXBwZW5kIHBhcmFtcyAoY2RyIChhc3NxIDpwYXJhbXMgdGVtcGxhdGUpKSkp CisgICAgICBwYXJhbXMpKSkKKworKGRlZnVuIG9yZy1iYWJlbC1leHBhbmQtYm9keTphZGEgKGJv ZHkgcGFyYW1zKQorICAiRXhwYW5kIEJPRFkgYWNjb3JkaW5nIHRvIFBBUkFNUyBhbmQgcmV0dXJu IHRoZSBleHBhbmRlZCBib2R5LgorQm9keSBleHBhbnNpb24gY29tcHJpc2VzIHJlcGxhY2VtZW50 IG9mIHRlbXBsYXRlIGFuZCBsaXRlcmFsCit2YXJpYWJsZXMuCitGaXJzdCwgdGVtcGxhdGUgaXMg ZmlsbGVkIHdpdGggdGhlIHZhbHVlIG9mICc6d2l0aCcgYW5kICc6Ym9keScKK2hlYWRlcnMgaW4g UEFSQU1TLiBTZWNvbmQsIGFsbCBsaXRlcmFsIHZhcmlhYmxlcyBhcmUgcmVwbGFjZWQgYnkKK3Ro ZSB2YWx1ZXMgZm91bmQgaW4gdGhlICc6dmFyJyBoZWFkZXIgb2YgUEFSQU1TLiIKKyAgKGxldCog KCh0ZW1wbGF0ZS1uYW1lIChjZHIgKGFzc3EgOnRlbXBsYXRlIHBhcmFtcykpKQorICAgICAgICAg KHRlbXBsYXRlIChldmFsCisgICAgICAgICAgICAgICAgICAgIChpbnRlcm4tc29mdAorICAgICAg ICAgICAgICAgICAgICAgKGZvcm1hdCBvYi1hZGEtc3BhcmstdGVtcGxhdGUtdmFyLW5hbWUtZm9y bWF0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlLW5hbWUpKSkpCisgICAg ICAgICAodmFycyAob3JnLWJhYmVsLS1nZXQtdmFycyBwYXJhbXMpKQorICAgICAgICAgKHdpdGgg KGNkciAoYXNzcSA6d2l0aCBwYXJhbXMpKSkpCisKKyAgICAoaWYgKGFuZCB0ZW1wbGF0ZS1uYW1l IChudWxsIHRlbXBsYXRlKSkKKyAgICAgICAgKGVycm9yCisgICAgICAgICAiSW52YWxpZCB0ZW1w bGF0ZSBuYW1lICclcycsIHZhcmlhYmxlIG9iLWFkYS1zcGFyay10ZW1wbGF0ZTolcyB1bmRlZmlu ZWQiCisgICAgICAgICB0ZW1wbGF0ZS1uYW1lIHRlbXBsYXRlLW5hbWUpKQorCisgICAgOzsgVXNl IHRoZSBib2R5IGRlZmluZWQgaW4gdGhlIHRlbXBsYXRlLCBpZiBhbnkuIEl0IG5lZWRzIHR3bwor ICAgIDs7IHBhcmFtZXRlcnM6IHRoZSAnd2l0aCcgc2VjdGlvbiAoZGVmaW5lZCBpbiBwYXJhbXMp IGFuZCB0aGUKKyAgICA7OyAnYm9keScgc2VjdGlvbiAodGhlIGNvbnRlbnRzIG9mIHNvdXJjZSBj b2RlIGJsb2NrKQorICAgIChzZXRxIGJvZHkKKyAgICAgICAgICAoaWYgdGVtcGxhdGUKKyAgICAg ICAgICAgICAgKHByb2duCisgICAgICAgICAgICAgICAgKG1lc3NhZ2UgIi0tIGV4cGFuZGluZyBi b2R5IGZyb20gdGVtcGxhdGUgJXMiIHRlbXBsYXRlLW5hbWUpCisgICAgICAgICAgICAgICAgKGZv cm1hdAorICAgICAgICAgICAgICAgICA7OyBib2R5J3MgdGVtcGxhdGUgYXMgZm9ybWF0IGNvbnRy b2wgc3RyaW5nCisgICAgICAgICAgICAgICAgIChjZHIgKGFzc3EgOmJvZHkgdGVtcGxhdGUpKQor ICAgICAgICAgICAgICAgICAoaWYgKG51bGwgd2l0aCkgIiIKKyAgICAgICAgICAgICAgICAgICA7 OyByZXBsYWNlIDp3aXRoIHBhcmFtZXRlcgorICAgICAgICAgICAgICAgICAgIChtYXBjb25jYXQK KyAgICAgICAgICAgICAgICAgICAgKGxhbWJkYSAodykgKGZvcm1hdCAid2l0aCAlczsgdXNlICVz O1xuIiB3IHcpKQorICAgICAgICAgICAgICAgICAgICAoc3BsaXQtc3RyaW5nIHdpdGggIiAiIHQp CisgICAgICAgICAgICAgICAgICAgICIiKSkKKyAgICAgICAgICAgICAgICAgOzsgdXNlIGJvZHkg aW4gdGhlIHNvdXJjZSBjb2RlIGJsb2NrCisgICAgICAgICAgICAgICAgIGJvZHkpKQorICAgICAg ICAgICAgYm9keSkpCisKKyAgICA7OyBleHBhbmQgbGl0ZXJhbCB2YXJpYWJsZXMgaW4gdGhlIGJv ZHksIGlmIGFueQorICAgICh3aGVuIHZhcnMKKyAgICAgIChtYXBjCisgICAgICAgKGxhbWJkYSAo dmFyKQorICAgICAgICAgKGxldCAoKGtleSAoY2FyIHZhcikpCisgICAgICAgICAgICAgICAodmFs IChjZHIgdmFyKSkpCisgICAgICAgICAgIChzZXRxIGJvZHkgKHN0cmluZy1yZXBsYWNlIChmb3Jt YXQgIiVzIiBrZXkpIChmb3JtYXQgIiVzIiB2YWwpIGJvZHkpKSkpCisgICAgICAgdmFycykpCisg ICAgYm9keSkpCisKKyhkZWZ1biBvcmctYmFiZWwtZXhlY3V0ZTphZGEgKGJvZHkgcGFyYW1zKQor ICAiRXhlY3V0ZSBvciBwcm92ZSBhIGJsb2NrIG9mIEFkYS9TUEFSSyBjb2RlIHdpdGggb3JnLWJh YmVsLgorQk9EWSBjb250YWlucyB0aGUgQWRhL1NQQVJLIHNvdXJjZSBjb2RlIHRvIGV2YWx1YXRl LiBQQVJBTVMgaXMKK3RoZSBsaXN0IG9mIHNvdXJjZSBjb2RlIGJsb2NrIHBhcmFtZXRlcnMuCisK K1RoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IGBvcmctYmFiZWwtZXhlY3V0ZS1zcmMtYmxvY2sn IgorICAobGV0KiAoKHByb2Nlc3NlZC1wYXJhbXMgKG9yZy1iYWJlbC1wcm9jZXNzLXBhcmFtcyBw YXJhbXMpKQorICAgICAgICAgKGFsbC1wYXJhbXMKKyAgICAgICAgICAob2ItYWRhLXNwYXJrLXJl cGxhY2UtcGFyYW1zLWZyb20tdGVtcGxhdGUgcHJvY2Vzc2VkLXBhcmFtcykpCisgICAgICAgICAo ZnVsbC1ib2R5IChvcmctYmFiZWwtZXhwYW5kLWJvZHk6YWRhIGJvZHkgYWxsLXBhcmFtcykpCisg ICAgICAgICAocHJvdmUgKGNkciAoYXNzcSA6cHJvdmUgYWxsLXBhcmFtcykpKSkKKyAgICAoaWYg cHJvdmUKKyAgICAgICAgKG9iLWFkYS1zcGFyay1wcm92ZSBmdWxsLWJvZHkgYWxsLXBhcmFtcykK KyAgICAgIChvYi1hZGEtc3BhcmstZXhlY3V0ZSBmdWxsLWJvZHkgYWxsLXBhcmFtcykpKSkKKwor KGRlZnVuIG9iLWFkYS1zcGFyay1leGVjdXRlIChib2R5IHBhcmFtcykKKyAgIkV4ZWN1dGUgb3Ig cHJvdmUgYSBibG9jayBvZiBBZGEvU1BBUksgY29kZSB3aXRoIG9yZy1iYWJlbC4KK0JPRFkgY29u dGFpbnMgdGhlIEFkYS9TUEFSSyBzb3VyY2UgY29kZSB0byBldmFsdWF0ZSwgYWxyZWFkeQorZXhw YW5kZWQgd2hlbiB1c2luZyB0ZW1wbGF0ZXMuIFBBUkFNUyBpcyB0aGUgbGlzdCBvZiBzb3VyY2Ug Y29kZQorYmxvY2sgcGFyYW1ldGVycywgYWxzbyBleHBhbmRlZCB3aXRoIHRoZSB0ZW1wbGF0ZSBw YXJhbWV0ZXJzLgorCitUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBgb3JnLWJhYmVsLWV4ZWN1 dGU6YWRhJyIKKyAgKGxldCogKChhcmdzIChjZHIgKGFzc3EgOmFyZ3MgcGFyYW1zKSkpCisgICAg ICAgICAoY2ZsYWdzIChjZHIgKGFzc3EgOmNmbGFncyBwYXJhbXMpKSkKKyAgICAgICAgICh1bml0 IChjZHIgKGFzc3EgOnVuaXQgcGFyYW1zKSkpCisgICAgICAgICAoZGVmYXVsdC1kaXJlY3Rvcnkg KG9yZy1iYWJlbC10ZW1wLWRpcmVjdG9yeSkpCisgICAgICAgICAodG1wLXNyYy1maWxlIChpZiB1 bml0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmlsZS1uYW1lLWNvbmNhdCAob3JnLWJh YmVsLXRlbXAtZGlyZWN0b3J5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGNvbmNhdCB1bml0ICIuYWRiIikpCisgICAgICAgICAgICAgICAgICAgICAgICAg KG9yZy1iYWJlbC10ZW1wLWZpbGUgImFkYS1zcmMtIiAiLmFkYiIpKSkKKyAgICAgICAgICh0bXAt YmluLWZpbGUgKGlmIHVuaXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWxlLW5hbWUt Y29uY2F0IChvcmctYmFiZWwtdGVtcC1kaXJlY3RvcnkpIHVuaXQpCisgICAgICAgICAgICAgICAg ICAgICAgICAgKG9yZy1iYWJlbC10ZW1wLWZpbGUgImFkYS1iaW4tIiBvcmctYmFiZWwtZXhlZXh0 KSkpKQorCisgICAgOzsgd3JpdGUgY29tcGlsYXRpb24gdW5pdAorICAgICh3aXRoLXRlbXAtZmls ZSB0bXAtc3JjLWZpbGUgKGluc2VydCBib2R5KSkKKworICAgIDs7IGNsZWFuIHByZXZpb3VzIGV2 YWx1YXRpb24gb2YgdGhlIHNhbWUgdW5pdAorICAgIChpZiAoc3RyaW5ncCB1bml0KQorICAgICAg ICAoY2wtbWFwY2FyCisgICAgICAgICAobGFtYmRhIChleHQpCisgICAgICAgICAgIChsZXQgKChm aWxlIChmaWxlLW5hbWUtY29uY2F0IGRlZmF1bHQtZGlyZWN0b3J5CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQgdW5pdCBleHQpKSkpCisgICAgICAgICAg ICAgKGlmIChmaWxlLWV4aXN0cy1wIGZpbGUpIChkZWxldGUtZmlsZSBmaWxlKSkpKQorICAgICAg ICAgJygiIiAiLmFsaSIgIi5vIikpKQorCisgICAgOzsgY29tcGlsZQorICAgIChzZXRxIGNvbXBp bGUtY29tbWFuZAorICAgICAgICAgIChmb3JtYXQgIiVzICVzIC1vICVzICVzICVzIgorICAgICAg ICAgICAgICAgICAgb3JnLWJhYmVsLWFkYS1zcGFyay1jb21waWxlLWNvbW1hbmQKKyAgICAgICAg ICAgICAgICAgIChvciBvcmctYmFiZWwtYWRhLXNwYXJrLWRlZmF1bHQtY29tcGlsZS1mbGFncyAi IikKKyAgICAgICAgICAgICAgICAgIHRtcC1iaW4tZmlsZQorICAgICAgICAgICAgICAgICAgKG9y IGNmbGFncyAiIikKKyAgICAgICAgICAgICAgICAgIHRtcC1zcmMtZmlsZSkpCisgICAgKG1lc3Nh Z2UgIi0tIEFkYSBjb21waWxlLWNvbW1hbmQ6ICVzIiBjb21waWxlLWNvbW1hbmQpCisgICAgKG9y Zy1iYWJlbC1ldmFsIGNvbXBpbGUtY29tbWFuZCAiIikKKworICAgIDs7IGV4ZWN1dGUKKyAgICAo bGV0KiAoKGV4ZWMtY29tbWFuZCAoY29uY2F0IHRtcC1iaW4tZmlsZSAoaWYgYXJncyAoY29uY2F0 ICIgIiBhcmdzKSAiIikpKQorICAgICAgICAgICAocmVzdWx0cworICAgICAgICAgICAgKG9yZy10 cmltCisgICAgICAgICAgICAgKG9yZy1yZW1vdmUtaW5kZW50YXRpb24KKyAgICAgICAgICAgICAg KG9yZy1iYWJlbC1ldmFsIGV4ZWMtY29tbWFuZCAiIikpKSkpCisgICAgICAob3JnLWJhYmVsLXJl YXNzZW1ibGUtdGFibGUKKyAgICAgICAob3JnLWJhYmVsLXJlc3VsdC1jb25kIChjZHIgKGFzc3Eg OnJlc3VsdC1wYXJhbXMgcGFyYW1zKSkKKyAgICAgICAgIChvcmctYmFiZWwtcmVhZCByZXN1bHRz KQorICAgICAgICAgKGxldCAoKHRtcC1maWxlIChvcmctYmFiZWwtdGVtcC1maWxlICJhZGEtIikp KQorICAgICAgICAgICAod2l0aC10ZW1wLWZpbGUgdG1wLWZpbGUgKGluc2VydCByZXN1bHRzKSkK KyAgICAgICAgICAgKG9yZy1iYWJlbC1pbXBvcnQtZWxpc3AtZnJvbS1maWxlIHRtcC1maWxlKSkp CisgICAgICAgKG9yZy1iYWJlbC1waWNrLW5hbWUKKyAgICAgICAgKGNkciAoYXNzcSA6Y29sbmFt ZS1uYW1lcyBwYXJhbXMpKSAoY2RyIChhc3NxIDpjb2xuYW1lcyBwYXJhbXMpKSkKKyAgICAgICAo b3JnLWJhYmVsLXBpY2stbmFtZQorICAgICAgICAoY2RyIChhc3NxIDpyb3duYW1lLW5hbWVzIHBh cmFtcykpIChjZHIgKGFzc3EgOnJvd25hbWVzIHBhcmFtcykpKSkpKSkKKworKGRlZnVuIG9iLWFk YS1zcGFyay1wcm92ZSAoYm9keSBwYXJhbXMpCisgICJQcm92ZSBhIGJsb2NrIG9mIFNQQVJLIGNv ZGUgd2l0aCBvcmctYmFiZWwuCitCT0RZIGNvbnRhaW5zIHRoZSBTUEFSSyBzb3VyY2UgY29kZSB0 byBwcm92ZSwgYWxyZWFkeSBleHBhbmRlZAord2hlbiB1c2luZyB0ZW1wbGF0ZXMuIFBBUkFNUyBp cyB0aGUgbGlzdCBvZiBzb3VyY2UgY29kZSBibG9jaworcGFyYW1ldGVycywgYWxzbyBleHBhbmRl ZCB3aXRoIHRoZSB0ZW1wbGF0ZSBwYXJhbWV0ZXJzLgorCitUaGlzIGZ1bmN0aW9uIGlzIGNhbGxl ZCBieSBgb3JnLWJhYmVsLWV4ZWN1dGU6YWRhJyIKKyAgKGxldCogKChjZmxhZ3MgKGNkciAoYXNz cSA6Y2ZsYWdzIHBhcmFtcykpKQorICAgICAgICAgKHBmbGFncyAoY2RyIChhc3NxIDpwZmxhZ3Mg cGFyYW1zKSkpCisgICAgICAgICAodW5pdCAoY2RyIChhc3NxIDp1bml0IHBhcmFtcykpKQorICAg ICAgICAgKGRlZmF1bHQtZGlyZWN0b3J5IChvcmctYmFiZWwtdGVtcC1kaXJlY3RvcnkpKQorICAg ICAgICAgKHRtcC1zcmMtZmlsZSAoaWYgdW5pdCAoY29uY2F0IHVuaXQgIi5hZGIiKSAic3Bhcmtf c3JjLmFkYiIpKQorICAgICAgICAgKHRtcC1ncHItZmlsZSAoaWYgdW5pdCAoY29uY2F0IHVuaXQg Ii5ncHIiKSAic3BhcmtfcHJqLmdwciIpKQorICAgICAgICAgKHRtcC1wcm9qZWN0IChmaWxlLW5h bWUtc2Fucy1leHRlbnNpb24gdG1wLWdwci1maWxlKSkKKyAgICAgICAgIChwcm92ZS1jb21tYW5k LWFyZ3MKKyAgICAgICAgICAoZm9ybWF0ICItUCAlcyAlcyAlcyAtdSAlcyAtY2FyZ3MgJXMgJXMi CisgICAgICAgICAgICAgICAgICB0bXAtZ3ByLWZpbGUKKyAgICAgICAgICAgICAgICAgIChvciBv cmctYmFiZWwtYWRhLXNwYXJrLWRlZmF1bHQtcHJvdmUtZmxhZ3MgIiIpCisgICAgICAgICAgICAg ICAgICAob3IgcGZsYWdzICIiKQorICAgICAgICAgICAgICAgICAgdG1wLXNyYy1maWxlCisgICAg ICAgICAgICAgICAgICAob3Igb3JnLWJhYmVsLWFkYS1zcGFyay1kZWZhdWx0LWNvbXBpbGUtZmxh Z3MgIiIpCisgICAgICAgICAgICAgICAgICAob3IgY2ZsYWdzICIiKSkpKQorCisgICAgOzsgd3Jp dGUgY29tcGlsYXRpb24gdW5pdAorICAgICh3aXRoLXRlbXAtZmlsZSB0bXAtc3JjLWZpbGUgKGlu c2VydCBib2R5KSkKKworICAgIDs7IGNyZWF0ZSB0ZW1wb3JhcnkgcHJvamVjdAorICAgICh3aXRo LXRlbXAtZmlsZSB0bXAtZ3ByLWZpbGUKKyAgICAgIChpbnNlcnQgKGZvcm1hdCAicHJvamVjdCAl cyBpcworICBmb3IgU291cmNlX0RpcnMgdXNlIChcIiVzXCIpOworICBmb3IgU291cmNlX0ZpbGVz IHVzZSAoXCIlc1wiKTsKKyAgZm9yIE1haW4gdXNlIChcIiVzXCIpOworZW5kICVzOworIgorICAg ICAgICAgICAgICAgICAgICAgIHRtcC1wcm9qZWN0CisgICAgICAgICAgICAgICAgICAgICAgZGVm YXVsdC1kaXJlY3RvcnkKKyAgICAgICAgICAgICAgICAgICAgICB0bXAtc3JjLWZpbGUKKyAgICAg ICAgICAgICAgICAgICAgICB0bXAtc3JjLWZpbGUKKyAgICAgICAgICAgICAgICAgICAgICB0bXAt cHJvamVjdCkpKQorCisgICAgOzsgcmVtb3ZlIGduYXRwcm92ZSBkaXJlY3RvcnkgYW5kIGNsZWFu IHByZXZpb3VzIGV2YWx1YXRpb24gb2YgdGhlCisgICAgOzsgc2FtZSB1bml0CisgICAgKGRlbGV0 ZS1kaXJlY3RvcnkKKyAgICAgKGZpbGUtbmFtZS1jb25jYXQgb3JnLWJhYmVsLXRlbXBvcmFyeS1k aXJlY3RvcnkgImduYXRwcm92ZSIpIHQpCisgICAgKG9yZy1iYWJlbC1ldmFsCisgICAgIChmb3Jt YXQgIiVzIC0tY2xlYW4gJXMiCisgICAgICAgICAgICAgb3JnLWJhYmVsLWFkYS1zcGFyay1wcm92 ZS1jb21tYW5kIHByb3ZlLWNvbW1hbmQtYXJncykKKyAgICAgIiIpCisKKyAgICA7OyBpbnZva2Ug Z25hdHByb3ZlCisgICAgKGxldCogKChwcm92ZS1jb21tYW5kCisgICAgICAgICAgICAoZm9ybWF0 ICIlcyAlcyIKKyAgICAgICAgICAgICAgICAgICAgb3JnLWJhYmVsLWFkYS1zcGFyay1wcm92ZS1j b21tYW5kIHByb3ZlLWNvbW1hbmQtYXJncykpCisgICAgICAgICAgIChyZXN1bHRzCisgICAgICAg ICAgICAob3JnLXRyaW0KKyAgICAgICAgICAgICAob3JnLXJlbW92ZS1pbmRlbnRhdGlvbgorICAg ICAgICAgICAgICAob3JnLWJhYmVsLWV2YWwgcHJvdmUtY29tbWFuZCAiIikpKSkpCisgICAgICAo bWVzc2FnZSAiLS0gU1BBUksgcHJvdmUtY29tbWFuZDogJXMiIHByb3ZlLWNvbW1hbmQpCisgICAg ICAob3JnLWJhYmVsLXJlYXNzZW1ibGUtdGFibGUKKyAgICAgICAob3JnLWJhYmVsLXJlc3VsdC1j b25kIChjZHIgKGFzc3EgOnJlc3VsdC1wYXJhbXMgcGFyYW1zKSkKKyAgICAgICAgIChvcmctYmFi ZWwtcmVhZCByZXN1bHRzKQorICAgICAgICAgKGxldCAoKHRtcC1maWxlIChvcmctYmFiZWwtdGVt cC1maWxlICJhZGEtIikpKQorICAgICAgICAgICAod2l0aC10ZW1wLWZpbGUgdG1wLWZpbGUgKGlu c2VydCByZXN1bHRzKSkKKyAgICAgICAgICAgKG9yZy1iYWJlbC1pbXBvcnQtZWxpc3AtZnJvbS1m aWxlIHRtcC1maWxlKSkpCisgICAgICAgKG9yZy1iYWJlbC1waWNrLW5hbWUKKyAgICAgICAgKGNk ciAoYXNzcSA6Y29sbmFtZS1uYW1lcyBwYXJhbXMpKSAoY2RyIChhc3NxIDpjb2xuYW1lcyBwYXJh bXMpKSkKKyAgICAgICAob3JnLWJhYmVsLXBpY2stbmFtZQorICAgICAgICAoY2RyIChhc3NxIDpy b3duYW1lLW5hbWVzIHBhcmFtcykpIChjZHIgKGFzc3EgOnJvd25hbWVzIHBhcmFtcykpKSkpKSkK KworKGRlZnVuIG9yZy1iYWJlbC1wcmVwLXNlc3Npb246YWRhLXNwYXJrICgpCisgICJUaGlzIGZ1 bmN0aW9uIGRvZXMgbm90aGluZy4KK0FkYSBhbmQgU1BBUksgYXJlIGNvbXBpbGVkIGxhbmd1YWdl cyB3aXRoIG5vIHN1cHBvcnQgZm9yCitzZXNzaW9ucy4iCisgIChlcnJvciAiQWRhICYgU1BBUksg YXJlIGNvbXBpbGVkIGxhbmd1YWdlcyAtLSBubyBzdXBwb3J0IGZvciBzZXNzaW9ucyIpKQorCiso ZGVmdmFyIGFkYS1za2VsLWluaXRpYWwtc3RyaW5nLS1iYWNrdXAgIiIpCisKKyhkZWZ1biBvYi1h ZGEtc3BhcmstcHJlLXRhbmdsZS1ob29rICgpCisgICJUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBq dXN0IGJlZm9yZSBgb3JnLWJhYmVsLXRhbmdsZScuCitXaGVuIHVzaW5nIHRhbmdsZSB0byBleHBv cnQgQWRhL1NQQVJLIGNvZGUgdG8gYSBmaWxlLCB0aGlzCitmdW5jdGlvbiBpcyB1c2VkIHRvIHNl dCB0aGUgaGVhZGVyIG9mIHRoZSBmaWxlIGFjY29yZGluZyB0byB0aGUKK3ZhbHVlIG9mIHRoZSB2 YXJpYWJsZSBgb3JnLWJhYmVsLWFkYS1zcGFyay1kZWZhdWx0LWZpbGUtaGVhZGVyJy4iCisgIDs7 IGFkYS1za2VsLWluaXRpYWwtc3RyaW5nIGlzIGRlZmluZWQgaW4gYWRhLW1vZGUgYW5kIGlzIGlu c2VydGVkCisgIDs7IGF1dG9tYXRpY2FsbHkgd2hlbiBFbWFjcyBzZXRzIGFkYS1tb2RlIGluIGFu IGVtcHR5IGJ1ZmZlcjsgc3dpdGNoaW5nCisgIDs7IHRlbXBvcmFyaWx5IGl0cyB2YWx1ZSBzbyB0 aGUgb3JnLWJhYmVsLWFkYS1zcGFyay1kZWZhdWx0LWZpbGUtaGVhZGVyIGlzCisgIDs7IGluc2Vy dGVkCisgIChpZiAoYm91bmRwICdhZGEtc2tlbC1pbml0aWFsLXN0cmluZykKKyAgICAgIChwcm9n biAoc2V0cSBhZGEtc2tlbC1pbml0aWFsLXN0cmluZy0tYmFja3VwIGFkYS1za2VsLWluaXRpYWwt c3RyaW5nKQorICAgICAgICAgICAgIChzZXRxIGFkYS1za2VsLWluaXRpYWwtc3RyaW5nIChmdW5j YWxsIG9yZy1iYWJlbC1hZGEtc3BhcmstZGVmYXVsdC1maWxlLWhlYWRlcikpKSkpCisKKyhkZWZ1 biBvYi1hZGEtc3BhcmstcG9zdC10YW5nbGUtaG9vayAoKQorICAiVGhpcyBmdW5jdGlvbiBpcyBj YWxsZWQganVzdCBhZnRlciBgb3JnLWJhYmVsLXRhbmdsZScuCitPbmNlIHRoZSBmaWxlIGhhcyBi ZWVuIGdlbmVyYXRlZCwgdGhpcyBmdW5jdGlvbiByZXN0b3JlcyB0aGUKK3ZhbHVlIG9mIHRoZSBo ZWFkZXIgaW5zZXJ0ZWQgaW50byBBZGEvU1BBUksgZmlsZXMuIgorICA7OyBpZiBhZGEtc2tlbC1p bml0aWFsLXN0cmluZyBoYXMgbm90IGJlZW4gaW5zZXJ0ZWQgYnkgYWRhLW1vZGUsIHRoZW4KKyAg OzsgaW5zZXJ0IHRoZSBkZWZhdWx0IGhlYWRlcgorICAoaWYgKGJvdW5kcCAnYWRhLXNrZWwtaW5p dGlhbC1zdHJpbmcpCisgICAgICAoc2V0cSBhZGEtc2tlbC1pbml0aWFsLXN0cmluZyBhZGEtc2tl bC1pbml0aWFsLXN0cmluZy0tYmFja3VwKQorICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgKGdv dG8tY2hhciAocG9pbnQtbWluKSkKKyAgICAgIChpbnNlcnQgKGZ1bmNhbGwgb3JnLWJhYmVsLWFk YS1zcGFyay1kZWZhdWx0LWZpbGUtaGVhZGVyKSkpKSkKKworKGFkZC1ob29rICdvcmctYmFiZWwt cHJlLXRhbmdsZS1ob29rICMnb2ItYWRhLXNwYXJrLXByZS10YW5nbGUtaG9vaykKKyhhZGQtaG9v ayAnb3JnLWJhYmVsLXBvc3QtdGFuZ2xlLWhvb2sgIydvYi1hZGEtc3BhcmstcG9zdC10YW5nbGUt aG9vaykKKworKHByb3ZpZGUgJ29iLWFkYS1zcGFyaykKKworOzs7IG9iLWFkYS1zcGFyay5lbCBl bmRzIGhlcmUKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZXhhbXBsZXMvb2ItYWRhLXNwYXJrLXRlc3Qu b3JnIGIvdGVzdGluZy9leGFtcGxlcy9vYi1hZGEtc3BhcmstdGVzdC5vcmcKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5kZWMxZTM3MWMKLS0tIC9kZXYvbnVsbAorKysgYi90 ZXN0aW5nL2V4YW1wbGVzL29iLWFkYS1zcGFyay10ZXN0Lm9yZwpAQCAtMCwwICsxLDMwMCBAQAor IytQUk9QRVJUWTogcmVzdWx0cyBzaWxlbnQgc2NhbGFyCisjK3RpdGxlOkEgY29sbGVjdGlvbiBv ZiBleGFtcGxlcyBmb3Igb2ItYWRhLXNwYXJrIHRlc3RzCisKKyogU2ltcGxlIHByb2dyYW1zCisK KyoqIEhlbGxvIHdvcmxkCis6UFJPUEVSVElFUzoKKzpJRDogNzc4ZTYzYzItMjY0NC00YTZmLThl N2QtZjk1NmZhM2Q5MjQxCis6RU5EOgorCisjK25hbWU6IEhlbGxvIHdvcmxkCisjK2JlZ2luX3Ny YyBhZGEgOnJlc3VsdHMgc2lsZW50CisgICB3aXRoIEFkYS5UZXh0X0lPOworICAgcHJvY2VkdXJl IEhlbGxvX1dvcmxkIGlzCisgICBiZWdpbgorICAgICAgQWRhLlRleHRfSU8uUHV0X0xpbmUgKCJI ZWxsbyB3b3JsZCIpOworICAgZW5kIEhlbGxvX1dvcmxkOworIytlbmRfc3JjCisKKyoqIFJlY3Vy c2l2ZSBGaWJvbmFjY2kKKzpQUk9QRVJUSUVTOgorOklEOiA2MjgxY2I0MC0yNmNjLTQyM2UtODhj OC1lOGYyNjkwMWVlNGEKKzpFTkQ6CisKKyMrbmFtZTogUmVjdXJzaXZlIEZpYm9uYWNjaQorIyti ZWdpbl9zcmMgYWRhIDp1bml0IGZpYm9uYWNjaSA6cmVzdWx0cyBzaWxlbnQKKyAgIHdpdGggQWRh LlRleHRfSU87CisgICBwcm9jZWR1cmUgRmlib25hY2NpIGlzCisgICAgICBmdW5jdGlvbiBmaWIg KG4gOiBOYXR1cmFsKSByZXR1cm4gTmF0dXJhbCBpcworICAgICAgICAoaWYgbiA8PSAyIHRoZW4g MSBlbHNlIGZpYiAobi0xKSArIGZpYiAobi0yKSk7CisgICAgICBGaWJfMTUgOiBOYXR1cmFsOwor ICAgYmVnaW4KKyAgICAgIEZpYl8xNSA6PSBmaWIgKDE1KTsKKyAgICAgIEFkYS5UZXh0X0lPLlB1 dF9MaW5lIChGaWJfMTUnSW1hZ2UpOworICAgZW5kIEZpYm9uYWNjaTsKKyMrZW5kX3NyYworCisq KiBTZXF1ZW50aWFsIEZpYm9uYWNjaQorOlBST1BFUlRJRVM6Cis6SUQ6IDQxYjQ1MTRiLTBkNDYt NDAxMS1iNWZhLTc5OTdhZWNmNzVhOQorOkVORDoKKworIytuYW1lIFNlcXVlbnRpYWwgRmlib25h Y2NpCisjK2JlZ2luX3NyYyBhZGEgOnVuaXQgZmlib25hY2NpIDpyZXN1bHRzIHNpbGVudAorICAg d2l0aCBBZGEuVGV4dF9JTzsgdXNlIEFkYS5UZXh0X0lPOworICAgcHJvY2VkdXJlIEZpYm9uYWNj aSBpcworICAgICAgZnVuY3Rpb24gZmliIChuIDogTmF0dXJhbCkgcmV0dXJuIE5hdHVyYWwgaXMK KyAgICAgIGZuMSwgZm4yIDogTmF0dXJhbCA6PSAxOworICAgICAgYmVnaW4KKyAgICAgICAgIHJl dHVybiByZXN1bHQgOiBOYXR1cmFsIDo9IDEgZG8KKyAgICAgICAgICAgIGZvciBpIGluIHJldmVy c2UgMyAuLiBuIGxvb3AKKyAgICAgICAgICAgICAgIHJlc3VsdCA6PSBmbjEgKyBmbjI7CisgICAg ICAgICAgICAgICBmbjIgOj0gZm4xOworICAgICAgICAgICAgICAgZm4xIDo9IHJlc3VsdDsKKyAg ICAgICAgICAgIGVuZCBsb29wOworICAgICAgICAgZW5kIHJldHVybjsKKyAgICAgIGVuZCBmaWI7 CisgICAgICBGaWJfMTUgOiBjb25zdGFudCBOYXR1cmFsIDo9IGZpYiAoMTUpOworICAgYmVnaW4K KyAgICAgQWRhLlRleHRfSU8uUHV0X0xpbmUgKEZpYl8xNSdJbWFnZSk7CisgICBlbmQgRmlib25h Y2NpOworIytlbmRfc3JjCisKKyoqIFVURjggaWRlbnRpZmllcnMKKzpQUk9QRVJUSUVTOgorOklE OiAwNmU0ZGM1Yi01NTY2LTQ4NmItODFhZi1jYjdjNTQ3ZDQ2ZjEKKzpFTkQ6CisKKyMrbmFtZTog VVRGOCBpbmRldGlmaWVycworIytiZWdpbl9zcmMgYWRhIDp1bml0IGF2ZXJhZ2UgOnJlc3VsdHMg c2lsZW50CisgICB3aXRoIEFkYS5UZXh0X0lPOyB1c2UgQWRhLlRleHRfSU87CisgICBwcm9jZWR1 cmUgQXZlcmFnZSBpcworICAgICAgzqNfbnVtYmVycyA6IE5hdHVyYWwgOj0gMDsKKyAgICAgIM6x LCDOsiwgzpRfeCA6IE5hdHVyYWwgOj0gMTsKKyAgICAgIEF2ZXJhZ2UgICA6IEZsb2F0OworICAg YmVnaW4KKyAgICAgIGxvb3AKKyAgICAgICAgIM6jX251bWJlcnMgOj0gQCArIM6xOworICAgICAg ICAgZXhpdCB3aGVuIM6xID4gMTAwOworICAgICAgICAgzrEgOj0gQCArIM6UX3g7CisgICAgICAg ICDOsiA6PSBAICsgMTsKKyAgICAgICAgIM6UX1ggOj0gQCAqIDI7CisgICAgICBlbmQgbG9vcDsK KyAgICAgIEF2ZXJhZ2UgOj0gRmxvYXQgKM6jX251bWJlcnMpIC8gRmxvYXQgKM6yKTsKKyAgICAg IFB1dF9MaW5lICgiQXZlcmFnZToiICYgTmF0dXJhbCAoQXZlcmFnZSknSW1hZ2UpOworICAgZW5k IEF2ZXJhZ2U7CisjK2VuZF9zcmMKKworKiBVc2luZyB0ZW1wbGF0ZXMKKworKiogTWFpbiB0ZW1w bGF0ZQorOlBST1BFUlRJRVM6Cis6SUQ6IGEyYTY0MTUzLWE3YjYtNGMzMi04NGM1LWE1ODlmMGNh YWM5MworOkVORDoKKworIytuYW1lOiBNYWluIHRlbXBsYXRlCisjK2JlZ2luX3NyYyBhZGEgOnRl bXBsYXRlIGFkYS1tYWluIDpyZXN1bHRzIHNpbGVudAorYmVnaW4KKyAgIFB1dF9MaW5lICgiSGVs bG8gd29ybGQiKTsKKyMrZW5kX3NyYworCisqKiBGaWJvbmFjY2kKKzpQUk9QRVJUSUVTOgorOklE OiBjYmVmNGVlMy02M2UzLTQyOTUtOGIyNi1lMjQ3MGUzMGIxZmYKKzpFTkQ6CisKKyMrbmFtZTog Rmlib25hY2NpCisjK2JlZ2luX3NyYyBhZGEgOnRlbXBsYXRlIGFkYS1tYWluIDpyZXN1bHRzIHNp bGVudAorICAgLS0gIGRlY2xhcmF0aWlvbnMKKyAgIGZ1bmN0aW9uIGZpYiAobiA6IE5hdHVyYWwp IHJldHVybiBOYXR1cmFsIGlzCisgICAgICAoaWYgbiA8PSAyIHRoZW4gMSBlbHNlIGZpYiAobi0x KSArIGZpYiAobi0yKSk7CisgICBGaWJfMTUgOiBOYXR1cmFsOworCitiZWdpbgorICAgRmliXzE1 IDo9IGZpYiAoMTUpOworICAgUHV0X0xpbmUgKEZpYl8xNSdJbWFnZSk7CisjK2VuZF9zcmMKKwor KiogSW52YWxpZCB0ZW1wbGF0ZSBuYW1lCis6UFJPUEVSVElFUzoKKzpJRDogM2ZiMGFjMWMtZGZl ZC00ZDJmLTk4MDMtZDFkZWExOGVlYzQ1Cis6RU5EOgorCisjK25hbWU6IEludmFsaWQgdGVtcGxh dGUKKyMrYmVnaW5fc3JjIGFkYSA6dGVtcGxhdGUgZm9vLWJhciA6cmVzdWx0cyBzaWxlbnQKK2Jl Z2luCisgICBQdXRfTGluZSAoIkhlbGxvIHdvcmxkIik7CisjK2VuZF9zcmMKKworKiBMaXRlcmF0 ZSBwcm9ncmFtbWluZworCisqKiBIZWxsbyBub3dlYgorOlBST1BFUlRJRVM6Cis6SUQ6IDUzODYy MjFlLWRhNmYtNDExZi04ZGQ1LTMwNDVlMTRiMmUxNQorOkVORDoKKworIytuYW1lOiBfX1NheV9I ZWxsb19Ob3dlYl9fCisjK2JlZ2luX3NyYyBhZGEKKyAgIFB1dF9MaW5lICgiSGVsbG8gbm93ZWIi KTsKKyMrZW5kX3NyYworCisjK2hlYWRlcjogOm5vd2ViIHllcworIytuYW1lOiBIZWxsbyBub3dl YgorIytiZWdpbl9zcmMgYWRhIDp1bml0IGhlbGxvX3dvcmxkIDpyZXN1bHRzIHNpbGVudCBzY2Fs YXIKKyAgIHdpdGggQWRhLlRleHRfSU87IHVzZSBBZGEuVGV4dF9JTzsKKyAgIHByb2NlZHVyZSBI ZWxsb19Xb3JsZCBpcworICAgYmVnaW4KKyAgICAgIDw8X19TYXlfSGVsbG9fTm93ZWJfXz4+Cisg ICBlbmQgSGVsbG9fV29ybGQ7CisjK2VuZF9zcmMKKworKiogQ29uc3RhbnQgbGl0ZXJhbHMKKzpQ Uk9QRVJUSUVTOgorOklEOiAxYmMxZjUzNy1lMzFmLTRiOGUtYWRiMy1iZGQ0NzQ2NzNlMTcKKzpF TkQ6CisKKyMrbmFtZTogX19TYXlfSGVsbG9fXworIytiZWdpbl9zcmMgYWRhCisgICBQdXQgKCJI ZWxsbyIpOworIytlbmRfc3JjCisKKyMraGVhZGVyOiA6bm93ZWIgeWVzCisjK2hlYWRlcjogOnZh ciBfX1RJTUVTX189MworIytuYW1lOiBDb25zdGFudCBsaXRlcmFscworIytiZWdpbl9zcmMgYWRh IDp0ZW1wbGF0ZSBhZGEtbWFpbiA6cmVzdWx0cyBzaWxlbnQgc2NhbGFyCitiZWdpbgorICAgZm9y IEkgaW4gMSAuLiBfX1RJTUVTX18gbG9vcAorICAgICAgUHV0IChJJ0ltYWdlICYgIiAiKTsKKyAg ICAgIDw8X19TYXlfSGVsbG9fXz4+CisgICBlbmQgbG9vcDsKKyMrZW5kX3NyYworCisjK2hlYWRl cjogOnZhciBfX01FU1NBR0VfXz0iSGVsbG93IHdvcmxkIgorIytuYW1lOiBDb25zdGFudCBsaXRl cmFscyAtIGludmFsaWQgbGl0ZXJhbCBuYW1lCisjK2JlZ2luX3NyYyBhZGEgOnRlbXBsYXRlIGFk YS1tYWluIDpyZXN1bHRzIHNpbGVudCBzY2FsYXIKKyAgIFB1dF9MaW5lICgiTWVzc2FnZTogIiAm ICBfX01TR19fKTsKKyMrZW5kX3NyYworCisqKiBFdmFsdWF0ZWQgbGl0ZXJhbHMKKzpQUk9QRVJU SUVTOgorOklEOiA3Y2MyMjBjMS1hOTE3LTRhZjQtYTQ5Ny03ZTI0N2YxYzE1YWUKKzpFTkQ6CisK KyMraGVhZGVyOiA6dmFyIF9fU1VNX189KCsgMSAxIDMgNSA4IDEzIDM0IDU1IDg5IDE0NCkKKyMr bmFtZTogVmFyaWFibGUgZXZhbHVhdGlvbgorIytiZWdpbl9zcmMgYWRhIDp0ZW1wbGF0ZSBhZGEt bWFpbiA6cmVzdWx0cyBzaWxlbnQgc2NhbGFyCitiZWdpbgorICAgUHV0X0xpbmUgKCJTVU0gaXMg X19TVU1fXyIpOworIytlbmRfc3JjCisKKyogVXNlci1EZWZpbmVkIHRlbXBsYXRlcworCitGb3Ig dGhlIHRlc3QsIHRoZSB0ZW1wbGF0ZSA9b2ItYWRhLXNwYXJrLXRlbXBsYXRlOnRlc3Q9IGlzIGRl ZmluZWQgaW4KK3RoZSBmaWxlID10ZXN0LW9iLWFkYS1zcGFyay5lbD0uCisKKyoqIFRlc3QKKzpQ Uk9QRVJUSUVTOgorOklEOiA3MGZlYjllOC0xOWYxLTQwMmItYjFkMC00YzhjY2RmMmNmZTQKKzpF TkQ6CisKKyMrbmFtZTogVGVzdAorIytiZWdpbl9zcmMgYWRhIDp0ZW1wbGF0ZSB0ZXN0CisgICBX cml0ZV9BbnN3ZXIgKDQyKTsKKyMrZW5kX3NyYworCisqKiBVc2luZyBhbmQgZXZhbHVhdGVkIGxp dGVyYWxzCis6UFJPUEVSVElFUzoKKzpJRDogMmEwNWIxODItMDdiZi00YmE1LTljY2EtMTI4OTE5 Y2I4MzdlCis6RU5EOgorCisjK2hlYWRlcjogOnZhciBfX0Fuc3dlcl9fPSgqIDIxIDIpCisjK25h bWU6IFVzaW5nIGV2YWx1YXRlZCBsaXRlcmFscworIytiZWdpbl9zcmMgYWRhIDp0ZW1wbGF0ZSB0 ZXN0CisgICBXcml0ZV9BbnN3ZXIgKF9fQW5zd2VyX18pOworIytlbmRfc3JjCisKKyoqIFVzaW5n IG5vd2ViIGFuZCBldmFsdWF0ZWQgbGl0ZXJhbHMKKzpQUk9QRVJUSUVTOgorOklEOiA2OWU4NTJi MS1hMjc4LTQwNTEtODcxOS05MTdjZmI1OWM1ODIKKzpFTkQ6CisKKyMrbmFtZTogX19Xcml0ZV9B bnN3ZXJfXworIytiZWdpbl9zcmMgYWRhIDp0ZW1wbGF0ZSB0ZXN0CisgICBXcml0ZV9BbnN3ZXIg KF9fQW5zd2VyX18pOworIytlbmRfc3JjCisKKyMraGVhZGVyOiA6bm93ZWIgeWVzCisjK2hlYWRl cjogOnZhciBfX0Fuc3dlcl9fPSgqIDIxIDIpCisjK25hbWU6IFVzaW5nIG5vd2ViIGFuZCBldmFs dWF0ZWQgbGl0ZXJhbHMKKyMrYmVnaW5fc3JjIGFkYSA6dGVtcGxhdGUgdGVzdAorICAgPDxfX1dy aXRlX0Fuc3dlcl9fPj4KKyMrZW5kX3NyYworCisqIFByb3ZpbmcgU1BBUksgY29kZQorCisqKiBJ bmNyZW1lbnQKKworIytuYW1lOiBfX0luY3JlbWVudF9fCisjK2JlZ2luX3NyYyBhZGEKKyAgIHN1 YnR5cGUgTmF0MTYgaXMgTmF0dXJhbCByYW5nZSAwIC4uIDIqKjE2OworICAgTnVtYmVyIDogTmF0 MTYgOj0gTmF0MTYnTGFzdCAtIDE7CisKKyAgIHByb2NlZHVyZSBJbmNyZW1lbnQgKFggOiBpbiBv dXQgTmF0MTYpIHdpdGgKKyAgICAgIEdsb2JhbCAgPT4gbnVsbCwKKyAgICAgIERlcGVuZHMgPT4g KFggPT4gWCksCisgICAgICBQcmUgICAgID0+IChYIDwgTmF0MTYnTGFzdCksCisgICAgICBQb3N0 ICAgID0+IChYID0gWCdPbGQgKyAxKQorICAgaXMKKyAgIGJlZ2luCisgICAgICBYIDo9IFggKyAx OworICAgZW5kIEluY3JlbWVudDsKKworYmVnaW4KKyAgIEluY3JlbWVudCAoTnVtYmVyKTsKKyAg IFB1dF9MaW5lICgiTGFzdCBOYXQxNiBpcyIgJiBOdW1iZXInSW1hZ2UpOworIytlbmRfc3JjCisK KyoqIFN0b25lCis6UFJPUEVSVElFUzoKKzpJRDogZmQ2MjhkYmItYWFjYy00OTMxLWFhYjUtNTgx NmY3Yzg1YjQ2Cis6RU5EOgorCisjK25hbWU6IFN0b25lCisjK2hlYWRlcjogOm5vd2ViIHllcwor IytiZWdpbl9zcmMgYWRhIDp0ZW1wbGF0ZSBzcGFyay1tYWluIDpwZmxhZ3MgLS1tb2RlPXN0b25l IDpyZXN1bHRzIHNjYWxhcgorICAgPDxfX0luY3JlbWVudF9fPj4KKyMrZW5kX3NyYworCisqKiBC cm9uemUKKzpQUk9QRVJUSUVTOgorOklEOiA3OWI0Y2ExNS04MTI3LTQ2N2QtYjIzOS1kZDE5MGNi NDVmMmQKKzpFTkQ6CisKKyMrbmFtZTogQnJvbnplCisjK2hlYWRlcjogOm5vd2ViIHllcworIyti ZWdpbl9zcmMgYWRhIDp0ZW1wbGF0ZSBzcGFyay1tYWluIDpwZmxhZ3MgLS1tb2RlPWJyb256ZSA6 cmVzdWx0cyBzY2FsYXIKKyAgIDw8X19JbmNyZW1lbnRfXz4+CisjK2VuZF9zcmMKKworKiogU2ls dmVyCis6UFJPUEVSVElFUzoKKzpJRDogNDUyOWU0N2YtODM1YS00NDEwLTg4M2EtYjNmYWIwMDI2 NTUzCis6RU5EOgorCisjK25hbWU6IFNpbHZlcgorIytoZWFkZXI6IDpub3dlYiB5ZXMKKyMrYmVn aW5fc3JjIGFkYSA6dGVtcGxhdGUgc3BhcmstbWFpbiA6cGZsYWdzIC0tbW9kZT1zaWx2ZXIgOnJl c3VsdHMgc2NhbGFyCisgICA8PF9fSW5jcmVtZW50X18+PgorIytlbmRfc3JjCisKKyoqIEdvbGQK KzpQUk9QRVJUSUVTOgorOklEOiAzNzFkMGY4OS00MjgxLTQ4YjQtYTcwYi1kMGI1MWQ1MTU0MjMK KzpFTkQ6CisKKyMrbmFtZTogR29sZAorIytoZWFkZXI6IDpub3dlYiB5ZXMKKyMrYmVnaW5fc3Jj IGFkYSA6dGVtcGxhdGUgc3BhcmstbWFpbiA6cGZsYWdzIC0tbW9kZT1nb2xkIDpyZXN1bHRzIHNj YWxhcgorICAgPDxfX0luY3JlbWVudF9fPj4KKyMrZW5kX3NyYwpkaWZmIC0tZ2l0IGEvdGVzdGlu Zy9saXNwL3Rlc3Qtb2ItYWRhLXNwYXJrLmVsIGIvdGVzdGluZy9saXNwL3Rlc3Qtb2ItYWRhLXNw YXJrLmVsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uMjFhYjY2MDI2Ci0t LSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9saXNwL3Rlc3Qtb2ItYWRhLXNwYXJrLmVsCkBAIC0w LDAgKzEsMjQwIEBACis7OzsgdGVzdC1vYi1hZGEtc3BhcmsuZWwgLS0tIHRlc3RzIGZvciBvYi1h ZGEtc3BhcmsuZWwgIC0qLSBsZXhpY2FsLWJpbmRpbmc6IHQ7IC0qLQorCis7OyBDb3B5cmlnaHQg KGMpIDIwMjQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCis7OyBBdXRob3JzOiBGcmFu Y2VzYyBSb2NoZXIKKzs7IE1haW50YWluZXI6IEZyYW5jZXNjIFJvY2hlciA8ZnJhbmNlc2Mucm9j aGVyQGdtYWlsLmNvbT4KKworOzsgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEVtYWNzLgorCis7 OyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQorOzsgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKzs7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCis7OyAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCis7OyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKzs7IGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCis7OyBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl Cis7OyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCis7OyBZ b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZQorOzsgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cHM6 Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCis7OzsgQ29kZToKKyhyZXF1aXJlICdvYi1jb3Jl KQorKHJlcXVpcmUgJ29iLWFkYS1zcGFyaykKKworKG9yZy10ZXN0LWZvci1leGVjdXRhYmxlICJn bmF0bWFrZSIpCisob3JnLXRlc3QtZm9yLWV4ZWN1dGFibGUgImduYXRwcm92ZSIpCisKKyh1bmxl c3MgKGZlYXR1cmVwICdvYi1hZGEtc3BhcmspCisgIChzaWduYWwgJ21pc3NpbmctdGVzdC1kZXBl bmRlbmN5ICJTdXBwb3J0IGZvciBBZGEgYW5kIFNQQVJLIGNvZGUgYmxvY2tzIikpCisKKzs7IFNp bXBsZSBwcm9ncmFtcworCisoZXJ0LWRlZnRlc3Qgb2ItYWRhLXNwYXJrL3NpbXBsZS9oZWxsby13 b3JsZCAoKQorICAiU2ltcGxlIHByb2dyYW06IEhlbGxvIHdvcmxkIgorICAob3JnLXRlc3QtYXQt aWQKKyAgICI3NzhlNjNjMi0yNjQ0LTRhNmYtOGU3ZC1mOTU2ZmEzZDkyNDEiCisgICAob3JnLWJh YmVsLW5leHQtc3JjLWJsb2NrKQorICAgKHNob3VsZCAoZXF1YWwgIkhlbGxvIHdvcmxkIiAob3Jn LWJhYmVsLWV4ZWN1dGUtc3JjLWJsb2NrKSkpKSkKKworKGVydC1kZWZ0ZXN0IG9iLWFkYS1zcGFy ay9zaW1wbGUvcmVjdXJzaXZlLWZpYm9uYWNjaSAoKQorICAiU2ltcGxlIHByb2dyYW06IFJlY3Vy c2l2ZSBGaWJvbmFjY2kiCisgIChvcmctdGVzdC1hdC1pZAorICAgIjYyODFjYjQwLTI2Y2MtNDIz ZS04OGM4LWU4ZjI2OTAxZWU0YSIKKyAgIChvcmctYmFiZWwtbmV4dC1zcmMtYmxvY2spCisgICAo c2hvdWxkICg9IDYxMCAob3JnLWJhYmVsLWV4ZWN1dGUtc3JjLWJsb2NrKSkpKSkKKworKGVydC1k ZWZ0ZXN0IG9iLWFkYS1zcGFyay9zaW1wbGUvc2VxdWVudGlhbC1maWJvbmFjY2kgKCkKKyAgIlNp bXBsZSBwcm9ncmFtOiBTZXF1ZW50aWFsIEZpYm9uYWNjaSIKKyAgKG9yZy10ZXN0LWF0LWlkCisg ICAiNDFiNDUxNGItMGQ0Ni00MDExLWI1ZmEtNzk5N2FlY2Y3NWE5IgorICAgKG9yZy1iYWJlbC1u ZXh0LXNyYy1ibG9jaykKKyAgIChzaG91bGQgKD0gNjEwIChvcmctYmFiZWwtZXhlY3V0ZS1zcmMt YmxvY2spKSkpKQorCisoZXJ0LWRlZnRlc3Qgb2ItYWRhLXNwYXJrL3NpbXBsZS91dGY4LWlkZW50 aWZpZXJzICgpCisgICJTaW1wbGUgcHJvZ3JhbTogVVRGLTggaW5kZW50aWZpZXJzIgorICAob3Jn LXRlc3QtYXQtaWQKKyAgICIwNmU0ZGM1Yi01NTY2LTQ4NmItODFhZi1jYjdjNTQ3ZDQ2ZjEiCisg ICAob3JnLWJhYmVsLW5leHQtc3JjLWJsb2NrKQorICAgKHNob3VsZCAoZXF1YWwgIkF2ZXJhZ2U6 IDMyIiAob3JnLWJhYmVsLWV4ZWN1dGUtc3JjLWJsb2NrKSkpKSkKKworKGVydC1kZWZ0ZXN0IG9i LWFkYS1zcGFyay9zaW1wbGUvdXRmOC1pZGVudGlmaWVycy1lcnJvciAoKQorICAiU2ltcGxlIHBy b2dyYW06IFVURi04IGluZGVudGlmaWVycyIKKyAgKG9yZy10ZXN0LWF0LWlkCisgICAiMDZlNGRj NWItNTU2Ni00ODZiLTgxYWYtY2I3YzU0N2Q0NmYxIgorICAgKG9yZy1iYWJlbC1uZXh0LXNyYy1i bG9jayAyKQorICAgKHdoZW4gKHNob3VsZCAoYnVmZmVyLWxpdmUtcCAoZ2V0LWJ1ZmZlciBvcmct YmFiZWwtZXJyb3ItYnVmZmVyLW5hbWUpKSkKKyAgICAgKGtpbGwtYnVmZmVyIG9yZy1iYWJlbC1l cnJvci1idWZmZXItbmFtZSkpCisgICA6dHlwZSAnZXJyb3IpKQorCis7OyBVc2luZyB0ZW1wbGF0 ZXMKKworKGVydC1kZWZ0ZXN0IG9iLWFkYS1zcGFyay91c2luZy10ZW1wbGF0ZXMvbWFpbi10ZW1w bGF0ZSAoKQorICAiVXNpbmcgdGVtcGxhdGVzOiBNYWluIHRlbXBsYXRlIgorICAob3JnLXRlc3Qt YXQtaWQKKyAgICJhMmE2NDE1My1hN2I2LTRjMzItODRjNS1hNTg5ZjBjYWFjOTMiCisgICAob3Jn LWJhYmVsLW5leHQtc3JjLWJsb2NrKQorICAgKHNob3VsZCAoZXF1YWwgIkhlbGxvIHdvcmxkIiAo b3JnLWJhYmVsLWV4ZWN1dGUtc3JjLWJsb2NrKSkpKSkKKworKGVydC1kZWZ0ZXN0IG9iLWFkYS1z cGFyay91c2luZy10ZW1wbGF0ZXMvZmlib25hY2NpICgpCisgICJVc2luZyB0ZW1wbGF0ZXM6IEZp Ym9uYWNjaSIKKyAgKG9yZy10ZXN0LWF0LWlkCisgICAiY2JlZjRlZTMtNjNlMy00Mjk1LThiMjYt ZTI0NzBlMzBiMWZmIgorICAgKG9yZy1iYWJlbC1uZXh0LXNyYy1ibG9jaykKKyAgIChzaG91bGQg KD0gNjEwIChvcmctYmFiZWwtZXhlY3V0ZS1zcmMtYmxvY2spKSkpKQorCisoZXJ0LWRlZnRlc3Qg b2ItYWRhLXNwYXJrL3VzaW5nLXRlbXBsYXRlcy9pbnZsYWlkLXRlbXBsYXRlLW5hbWUgKCkKKyAg IlVzaW5nIHRlbXBsYXRlczogSW52YWxpZCB0ZW1wbGF0ZSBuYW1lIgorICAob3JnLXRlc3QtYXQt aWQKKyAgICIzZmIwYWMxYy1kZmVkLTRkMmYtOTgwMy1kMWRlYTE4ZWVjNDUiCisgICAob3JnLWJh YmVsLW5leHQtc3JjLWJsb2NrKQorICAgKHdoZW4gKHNob3VsZCAoYnVmZmVyLWxpdmUtcCAoZ2V0 LWJ1ZmZlciBvcmctYmFiZWwtZXJyb3ItYnVmZmVyLW5hbWUpKSkKKyAgICAgKGtpbGwtYnVmZmVy IG9yZy1iYWJlbC1lcnJvci1idWZmZXItbmFtZSkpCisgICA6dHlwZSAnZXJyb3IpKQorCis7OyBM aXRlcmF0ZSBwcm9ncmFtbWluZworCisoZXJ0LWRlZnRlc3Qgb2ItYWRhLXNwYXJrL2xpdGVyYXRl LXByb2dyYW1taW5nL2hlbGxvLW5vd2ViICgpCisgICJMaXRlcmF0ZSBwcm9ncmFtbWluZzogSGVs bG8gbm93ZWIiCisgIChvcmctdGVzdC1hdC1pZAorICAgIjUzODYyMjFlLWRhNmYtNDExZi04ZGQ1 LTMwNDVlMTRiMmUxNSIKKyAgIChvcmctYmFiZWwtbmV4dC1zcmMtYmxvY2sgMikKKyAgIChzaG91 bGQgKGVxdWFsICJIZWxsbyBub3dlYiIgKG9yZy1iYWJlbC1leGVjdXRlLXNyYy1ibG9jaykpKSkp CisKKyhlcnQtZGVmdGVzdCBvYi1hZGEtc3BhcmsvbGl0ZXJhdGUtcHJvZ3JhbW1pbmcvY29uc3Rh bnQtbGl0ZXJhbHMgKCkKKyAgIkxpdGVyYXRlIHByb2dyYW1taW5nOiBDb25zdGFudCBsaXRlcmFs cyIKKyAgKG9yZy10ZXN0LWF0LWlkCisgICAiMWJjMWY1MzctZTMxZi00YjhlLWFkYjMtYmRkNDc0 NjczZTE3IgorICAgKG9yZy1iYWJlbC1uZXh0LXNyYy1ibG9jayAyKQorICAgKHNob3VsZCAoZXF1 YWwgIjEgSGVsbG8gMiBIZWxsbyAzIEhlbGxvIgorICAgICAgICAgICAgICAgICAgKG9yZy1iYWJl bC1leGVjdXRlLXNyYy1ibG9jaykpKSkpCisKKyhlcnQtZGVmdGVzdCBvYi1hZGEtc3BhcmsvbGl0 ZXJhdGUtcHJvZ3JhbW1pbmcvY29uc3RhbnQtbGl0ZXJhbHMtaW52YWxpZC1saXRlcmFsLW5hbWUg KCkKKyAgIkxpdGVyYXRlIHByb2dyYW1taW5nOiBDb25zdGFudCBsaXRlcmFscyAtIEludmFsaWQg bGl0ZXJhbCBuYW1lIgorICAob3JnLXRlc3QtYXQtaWQKKyAgICIxYmMxZjUzNy1lMzFmLTRiOGUt YWRiMy1iZGQ0NzQ2NzNlMTciCisgICAob3JnLWJhYmVsLW5leHQtc3JjLWJsb2NrIDMpCisgICAo d2hlbiAoc2hvdWxkIChidWZmZXItbGl2ZS1wIChnZXQtYnVmZmVyIG9yZy1iYWJlbC1lcnJvci1i dWZmZXItbmFtZSkpKQorICAgICAoa2lsbC1idWZmZXIgb3JnLWJhYmVsLWVycm9yLWJ1ZmZlci1u YW1lKSkKKyAgIDp0eXBlICdlcnJvcikpCisKKyhlcnQtZGVmdGVzdCBvYi1hZGEtc3BhcmsvdXNp bmctdGVtcGxhdGVzL2V2YWx1YXRlZC1saXRlcmFscyAoKQorICAiVXNpbmcgdGVtcGxhdGVzOiBF dmFsdWF0ZWQgbGl0ZXJhbHMiCisgIChvcmctdGVzdC1hdC1pZAorICAgIjdjYzIyMGMxLWE5MTct NGFmNC1hNDk3LTdlMjQ3ZjFjMTVhZSIKKyAgIChvcmctYmFiZWwtbmV4dC1zcmMtYmxvY2spCisg ICAoc2hvdWxkIChlcXVhbCAiU1VNIGlzIDM1MyIgKG9yZy1iYWJlbC1leGVjdXRlLXNyYy1ibG9j aykpKSkpCisKKzs7IFVzZXItZGVmaW5lZCB0ZW1wbGF0ZXMKKworKHNldHEgb2ItYWRhLXNwYXJr LXRlbXBsYXRlOnRlc3QKKyAgICAgICcoKDpwYXJhbXMgLiAoKDp1bml0IC4gIm1haW4iKSAoOnJl c3VsdHMgc2lsZW50KSkpCisgICAgICAgICg6Ym9keSAuICIKK3dpdGggQWRhLlRleHRfSU87IHVz ZSBBZGEuVGV4dF9JTzsKKyVzCitwcm9jZWR1cmUgTWFpbiBpcworICAgcHJvY2VkdXJlIFdyaXRl X0Fuc3dlciAoTiA6IE5hdHVyYWwpIGlzCisgICBiZWdpbgorICAgICAgUHV0X0xpbmUgKFwiQW5z d2VyOlwiICYgTidJbWFnZSk7CisgICBlbmQgV3JpdGVfQW5zd2VyOworYmVnaW4KKyAgICVzCitl bmQgTWFpbjsKKyIpKSkKKworKGVydC1kZWZ0ZXN0IG9iLWFkYS1zcGFyay91c2VyLWRlZmluZWQt dGVtcGxhdGUvdGVzdCAoKQorICAiVXNlcnMtZGVmaW5lZCB0ZW1wbGF0ZXM6IFRlc3QiCisgIChv cmctdGVzdC1hdC1pZAorICAgIjcwZmViOWU4LTE5ZjEtNDAyYi1iMWQwLTRjOGNjZGYyY2ZlNCIK KyAgIChvcmctYmFiZWwtbmV4dC1zcmMtYmxvY2spCisgICAoc2hvdWxkIChlcXVhbCAiQW5zd2Vy OiA0MiIgKG9yZy1iYWJlbC1leGVjdXRlLXNyYy1ibG9jaykpKSkpCisKKyhlcnQtZGVmdGVzdCBv Yi1hZGEtc3BhcmsvdXNlci1kZWZpbmVkLXRlbXBsYXRlL3VzaW5nLWV2YWx1YXRlZC1saXRlcmFs cyAoKQorICAiVXNlcnMtZGVmaW5lZCB0ZW1wbGF0ZXM6IFVzaW5nIGV2YWx1YXRlZCBsaXRlcmFs cyIKKyAgKG9yZy10ZXN0LWF0LWlkCisgICAiMmEwNWIxODItMDdiZi00YmE1LTljY2EtMTI4OTE5 Y2I4MzdlIgorICAgKG9yZy1iYWJlbC1uZXh0LXNyYy1ibG9jaykKKyAgIChzaG91bGQgKGVxdWFs ICJBbnN3ZXI6IDQyIiAob3JnLWJhYmVsLWV4ZWN1dGUtc3JjLWJsb2NrKSkpKSkKKworKGVydC1k ZWZ0ZXN0IG9iLWFkYS1zcGFyay91c2VyLWRlZmluZWQtdGVtcGxhdGUvdXNpbmctbm93ZWItYW5k LWV2YWx1YXRlZC1saXRlcmFscyAoKQorICAiVXNlcnMtZGVmaW5lZCB0ZW1wbGF0ZXM6IFVzaW5n IG5vd2ViIGFuZCBldmFsdWF0ZWQgbGl0ZXJhbHMiCisgIChvcmctdGVzdC1hdC1pZAorICAgIjY5 ZTg1MmIxLWEyNzgtNDA1MS04NzE5LTkxN2NmYjU5YzU4MiIKKyAgIChvcmctYmFiZWwtbmV4dC1z cmMtYmxvY2sgMikKKyAgIChzaG91bGQgKGVxdWFsICJBbnN3ZXI6IDQyIiAob3JnLWJhYmVsLWV4 ZWN1dGUtc3JjLWJsb2NrKSkpKSkKKworOzsgUHJvdmluZyBTUEFSSyBDb2RlCisKKyhlcnQtZGVm dGVzdCBvYi1hZGEtc3BhcmsvcHJvdmluZy1zcGFyay1jb2RlL3N0b25lICgpCisgICJQcm92aW5n IFNQQVJLIGNvZGU6IFN0b25lIgorICAob3JnLXRlc3QtYXQtaWQKKyAgICAgICJmZDYyOGRiYi1h YWNjLTQ5MzEtYWFiNS01ODE2ZjdjODViNDYiCisgICAob3JnLWJhYmVsLW5leHQtc3JjLWJsb2Nr KQorICAgKG9yZy1iYWJlbC1leGVjdXRlLXNyYy1ibG9jaykKKyAgIChzaG91bGQgKHNlYXJjaC1m b3J3YXJkICIjK2JlZ2luX2V4YW1wbGUiIG5pbCB0KSkKKyAgIChmb3J3YXJkLWxpbmUgMSkKKyAg IChsZXQgKChyZXBvcnQtYmVnaW4gKHBvaW50LWF0LWJvbCkpCisgICAgICAgICAocmVwb3J0LWVu ZCAwKSkKKyAgICAgKHNob3VsZCAoc2VhcmNoLWZvcndhcmQgIiMrZW5kX2V4YW1wbGUiIG5pbCB0 KSkKKyAgICAgKGZvcndhcmQtbGluZSAtMSkKKyAgICAgKHNldHEgcmVwb3J0LWVuZCAocG9pbnQt YXQtZW9sKSkKKyAgICAgKHNob3VsZAorICAgICAgKHN0cmluZy1tYXRjaAorICAgICAgICJQaGFz ZSAxIG9mIDI6IGdlbmVyYXRpb24gb2YgR2xvYmFsIGNvbnRyYWN0cyAuLi4KK1xcKC5cXHxcblxc KSsKK1BoYXNlIDIgb2YgMjogZnVsbCBjaGVja2luZyBvZiBTUEFSSyBsZWdhbGl0eSBydWxlcyAu Li4iCisgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyByZXBvcnQtYmVnaW4g cmVwb3J0LWVuZCkpKSkpKQorCisoZXJ0LWRlZnRlc3Qgb2ItYWRhLXNwYXJrL3Byb3Zpbmctc3Bh cmstY29kZS9icm9uemUgKCkKKyAgIlByb3ZpbmcgU1BBUksgY29kZTogQnJvbnplIgorICAob3Jn LXRlc3QtYXQtaWQKKyAgICAgICI3OWI0Y2ExNS04MTI3LTQ2N2QtYjIzOS1kZDE5MGNiNDVmMmQi CisgICAgKG9yZy1iYWJlbC1uZXh0LXNyYy1ibG9jaykKKyAgICAob3JnLWJhYmVsLWV4ZWN1dGUt c3JjLWJsb2NrKQorICAgIChzaG91bGQgKHNlYXJjaC1mb3J3YXJkICIjK2JlZ2luX2V4YW1wbGUi IG5pbCB0KSkKKyAgICAoZm9yd2FyZC1saW5lIDEpCisgICAgKGxldCAoKHJlcG9ydC1iZWdpbiAo cG9pbnQtYXQtYm9sKSkKKyAgICAgICAgICAocmVwb3J0LWVuZCAwKSkKKyAgICAgIChzaG91bGQg KHNlYXJjaC1mb3J3YXJkICIjK2VuZF9leGFtcGxlIiBuaWwgdCkpCisgICAgICAoZm9yd2FyZC1s aW5lIC0xKQorICAgICAgKHNldHEgcmVwb3J0LWVuZCAocG9pbnQtYXQtZW9sKSkKKyAgICAgIChz aG91bGQKKyAgICAgICAoc3RyaW5nLW1hdGNoCisgICAgICAgICJQaGFzZSAxIG9mIDI6IGdlbmVy YXRpb24gb2YgR2xvYmFsIGNvbnRyYWN0cyAuLi4KK1xcKC5cXHxcblxcKSsKK1BoYXNlIDIgb2Yg MjogYW5hbHlzaXMgb2YgZGF0YSBhbmQgaW5mb3JtYXRpb24gZmxvdyAuLi4KK1xcKC5cXHxcblxc KSsKK21haW4uYWRiOjg6MDc6IGluZm86IGRhdGEgZGVwZW5kZW5jaWVzIHByb3ZlZAorbWFpbi5h ZGI6OTowNzogaW5mbzogZmxvdyBkZXBlbmRlbmNpZXMgcHJvdmVkIgorICAgICAgICAoYnVmZmVy LXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIHJlcG9ydC1iZWdpbiByZXBvcnQtZW5kKSkpKSkpCisK KyhlcnQtZGVmdGVzdCBvYi1hZGEtc3BhcmsvcHJvdmluZy1zcGFyay1jb2RlL3NpbHZlciAoKQor ICAiUHJvdmluZyBTUEFSSyBjb2RlOiBTaWx2ZXIiCisgIChvcmctdGVzdC1hdC1pZAorICAgICAg IjQ1MjllNDdmLTgzNWEtNDQxMC04ODNhLWIzZmFiMDAyNjU1MyIKKyAgICAob3JnLWJhYmVsLW5l eHQtc3JjLWJsb2NrKQorICAgIChvcmctYmFiZWwtZXhlY3V0ZS1zcmMtYmxvY2spCisgICAgKHNo b3VsZCAoc2VhcmNoLWZvcndhcmQgIiMrYmVnaW5fZXhhbXBsZSIgbmlsIHQpKQorICAgIChmb3J3 YXJkLWxpbmUgMSkKKyAgICAobGV0ICgocmVwb3J0LWJlZ2luIChwb2ludC1hdC1ib2wpKQorICAg ICAgICAgIChyZXBvcnQtZW5kIDApKQorICAgICAgKHNob3VsZCAoc2VhcmNoLWZvcndhcmQgIiMr ZW5kX2V4YW1wbGUiIG5pbCB0KSkKKyAgICAgIChmb3J3YXJkLWxpbmUgLTEpCisgICAgICAoc2V0 cSByZXBvcnQtZW5kIChwb2ludC1hdC1lb2wpKQorICAgICAgKHNob3VsZAorICAgICAgIChzdHJp bmctbWF0Y2gKKyAgICAgICAgIlBoYXNlIDEgb2YgMjogZ2VuZXJhdGlvbiBvZiBHbG9iYWwgY29u dHJhY3RzIC4uLgorXFwoLlxcfFxuXFwpKworUGhhc2UgMiBvZiAyOiBmbG93IGFuYWx5c2lzIGFu ZCBwcm9vZiAuLi4KK1xcKC5cXHxcblxcKSsKK21haW4uYWRiOjg6MDc6IGluZm86IGRhdGEgZGVw ZW5kZW5jaWVzIHByb3ZlZAorbWFpbi5hZGI6OTowNzogaW5mbzogZmxvdyBkZXBlbmRlbmNpZXMg cHJvdmVkCittYWluLmFkYjoxMToxODogaW5mbzogcG9zdGNvbmRpdGlvbiBwcm92ZWQKK21haW4u YWRiOjE0OjE0OiBpbmZvOiByYW5nZSBjaGVjayBwcm92ZWQKK21haW4uYWRiOjE4OjA0OiBpbmZv OiBwcmVjb25kaXRpb24gcHJvdmVkCittYWluLmFkYjoxOTozMDogaW5mbzogcmFuZ2UgY2hlY2sg cHJvdmVkIgorICAgICAgICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIHJlcG9ydC1i ZWdpbiByZXBvcnQtZW5kKSkpKSkpCisKKyhwcm92aWRlICd0ZXN0LW9iLWFkYS1zcGFyaykKKzs7 OyB0ZXN0LW9iLWFkYS1zcGFyay5lbCBlbmRzIGhlcmUKLS0gCjIuNDMuMAoK --0000000000003b4661061858617c--