From unknown Thu Jun 19 14:24:52 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#67460 <67460@debbugs.gnu.org> To: bug#67460 <67460@debbugs.gnu.org> Subject: Status: [PATCH] Add ert-font-lock Reply-To: bug#67460 <67460@debbugs.gnu.org> Date: Thu, 19 Jun 2025 21:24:52 +0000 retitle 67460 [PATCH] Add ert-font-lock reassign 67460 emacs submitter 67460 Vladimir Kazanov severity 67460 normal tag 67460 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Sun Nov 26 13:48:09 2023 Received: (at submit) by debbugs.gnu.org; 26 Nov 2023 18:48:09 +0000 Received: from localhost ([127.0.0.1]:42712 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r7KAp-0007wv-KV for submit@debbugs.gnu.org; Sun, 26 Nov 2023 13:48:09 -0500 Received: from lists.gnu.org ([2001:470:142::17]:60916) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r7KAk-0007vY-J6 for submit@debbugs.gnu.org; Sun, 26 Nov 2023 13:48:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r7KAZ-0003q2-EI for bug-gnu-emacs@gnu.org; Sun, 26 Nov 2023 13:47:51 -0500 Received: from mail-lj1-x22b.google.com ([2a00:1450:4864:20::22b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1r7KAU-0005v9-Ay for bug-gnu-emacs@gnu.org; Sun, 26 Nov 2023 13:47:51 -0500 Received: by mail-lj1-x22b.google.com with SMTP id 38308e7fff4ca-2c51682fddeso46009551fa.1 for ; Sun, 26 Nov 2023 10:47:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701024462; x=1701629262; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=Dvn/c3M22h6ICLemmCSB3Odn6Rs6fqjldjEgt/u+mSQ=; b=eCMeeQoMgqTLoap36lkawGB+BPiyWEvnOFHn5a9QbeuDU5aWORlAA/WncS0gcDBSdR GXE5bfPWK0IVTLqbfA6jRs9WaGvao/sEghhQxMLyIqOmHzF6QBzx5C8hwmfh63xRIqyr MbOqNHxtfNIxuSoZdr7mCZwZQEtUJdgtu3HBC2fMyOXreK1gu3jToVKnlwr2ZYZw9Gv1 XxYNSssTaerBXpgbAUqf9ofJdQNkKFFFydZH8AYnEHBDQ2kFah4DfmTGiUjgMhXUb83U Sj/lXIIGZPX+kmQNDsjhDBD/NrsSG9J3JDCNeJ8IraNuY8XisoSFFNWBvmXQs/D+WV2Y /aaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701024462; x=1701629262; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Dvn/c3M22h6ICLemmCSB3Odn6Rs6fqjldjEgt/u+mSQ=; b=iqeZvx7t1nRB5ZGOzcVulC3QM1lRRrMSK6GyfRb/30Ky3VLwCVZnaCXYdf9ecb/Bm/ WPcbMr43B2/tg7sHxhNoR9XtEoUjnPu4ZOf1fDvJdon0Ahs7ejL3vqNpFPaAjuiKEfCY As3lE1eFw2oO/i/ahCYGdvakI44WptZiSqT9r+wCQasU6tk7wAF9fdiMJrNEEIGd96H0 tASrPMA4f9AsQA7+PnWq7OZGvgEUzUptcRDRLv8KUvhP1CkyuVoYMYDsJQbvtr65CNlr gADLvpgLbuzR13uUQzdVCzoN4x3npg7FZJe5M9ZtXb3g5FIXSg773ziPqkp4MPWjvH8R 3ShQ== X-Gm-Message-State: AOJu0YzBuaY0m2FZEW2O6/nWzzyNkFK4xEpvsQXY/so3Vt7beLbINbUQ e6sWYHfLbDnwRpEGO2855n94cn3qS4cYzLPIoagA9qyZKQ== X-Google-Smtp-Source: AGHT+IFhsYLrsMGh4NZinShb2ifuYxsZuJv2mV0d8HN8xDXNldJFrYUSNxi4jZmqYZkYtB2rnIA1yn9BuyEqZjJm9Oc= X-Received: by 2002:a05:651c:3cf:b0:2c8:80bf:977b with SMTP id f15-20020a05651c03cf00b002c880bf977bmr4463531ljp.24.1701024461938; Sun, 26 Nov 2023 10:47:41 -0800 (PST) MIME-Version: 1.0 From: Vladimir Kazanov Date: Sun, 26 Nov 2023 18:47:30 +0000 Message-ID: Subject: [PATCH] Add ert-font-lock To: bug-gnu-emacs@gnu.org Content-Type: multipart/mixed; boundary="000000000000cefb58060b129e56" Received-SPF: pass client-ip=2a00:1450:4864:20::22b; envelope-from=vekazanov@gmail.com; helo=mail-lj1-x22b.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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --000000000000cefb58060b129e56 Content-Type: text/plain; charset="UTF-8" As suggested in emacs-devel@ [1], this patch adds ert-lont-lock.el to Emacs. Ert-font-lock is an extension to ERT providing an easy way to check font faces either in inline strings or resource files. The assertion syntax is based on Tree-sitter's syntax highlighter unit tests [2]. This makes it easy to port existing tree-sitter grammar tests to support both new-style ts-based major modes and the traditional ones. [1] https://lists.gnu.org/archive/html/emacs-devel/2023-11/msg00867.html [2] https://tree-sitter.github.io/tree-sitter/syntax-highlighting#unit-testing -- Regards, Vladimir Kazanov --000000000000cefb58060b129e56 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Add-ert-font-lock.patch" Content-Disposition: attachment; filename="0001-Add-ert-font-lock.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lpftlako0 RnJvbSA0MDM2Yjc0ZGFhNjE3OGZiZjZjZGUzYjQyZWYxYWFjZDBmYmNlNzY2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWbGFkaW1pciBLYXphbm92IDx2ZWthemFub3ZAZ21haWwuY29t PgpEYXRlOiBTdW4sIDI2IE5vdiAyMDIzIDExOjQ4OjE2ICswMDAwClN1YmplY3Q6IFtQQVRDSF0g QWRkIGVydC1mb250LWxvY2sKCkFkZCBlcnQtZm9udC1sb2NrIGFzIHdlbGwgYXMgdW5pdCB0ZXN0 cyBhbmQgdGVzdGluZyByZXNvdXJjZXMuCiogbGlzcC9lbWFjcy1saXNwL2VydC1mb250LWxvY2su ZWw6IHRoZSBsaWJyYXJ5IGl0c2VsZi4KKiB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9lcnQtZm9udC1s b2NrLXJlc291cmNlcy9icm9rZW4uanM6CiogdGVzdC9saXNwL2VtYWNzLWxpc3AvZXJ0LWZvbnQt bG9jay1yZXNvdXJjZXMvY29ycmVjdC5qczoKKiB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9lcnQtZm9u dC1sb2NrLXRlc3RzLmVsOiB1bml0IHRlc3RzLgotLS0KIGxpc3AvZW1hY3MtbGlzcC9lcnQtZm9u dC1sb2NrLmVsICAgICAgICAgICAgICB8IDM2NCArKysrKysrKysrKysrKwogLi4uL2VydC1mb250 LWxvY2stcmVzb3VyY2VzL2Jyb2tlbi5qcyAgICAgICAgIHwgICAzICsKIC4uLi9lcnQtZm9udC1s b2NrLXJlc291cmNlcy9jb3JyZWN0LmpzICAgICAgICB8ICAgMyArCiB0ZXN0L2xpc3AvZW1hY3Mt bGlzcC9lcnQtZm9udC1sb2NrLXRlc3RzLmVsICAgfCA0NjQgKysrKysrKysrKysrKysrKysrCiA0 IGZpbGVzIGNoYW5nZWQsIDgzNCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGlz cC9lbWFjcy1saXNwL2VydC1mb250LWxvY2suZWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0L2xp c3AvZW1hY3MtbGlzcC9lcnQtZm9udC1sb2NrLXJlc291cmNlcy9icm9rZW4uanMKIGNyZWF0ZSBt b2RlIDEwMDY0NCB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9lcnQtZm9udC1sb2NrLXJlc291cmNlcy9j b3JyZWN0LmpzCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdC9saXNwL2VtYWNzLWxpc3AvZXJ0LWZv bnQtbG9jay10ZXN0cy5lbAoKZGlmZiAtLWdpdCBhL2xpc3AvZW1hY3MtbGlzcC9lcnQtZm9udC1s b2NrLmVsIGIvbGlzcC9lbWFjcy1saXNwL2VydC1mb250LWxvY2suZWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNmZjY0NGU5YWZiCi0tLSAvZGV2L251bGwKKysrIGIv bGlzcC9lbWFjcy1saXNwL2VydC1mb250LWxvY2suZWwKQEAgLTAsMCArMSwzNjQgQEAKKzs7OyBl cnQtZm9udC1sb2NrLmVsIC0tLSBFUlQgRm9udCBMb2NrICAgLSotIGxleGljYWwtYmluZGluZzog dCAtKi0KKworOzsgQ29weXJpZ2h0IChDKSAyMDIzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorCis7OyBBdXRob3I6IFZsYWRpbWlyIEthemFub3YKKzs7IEtleXdvcmRzOiBsaXNwLCB0 b29scworCis7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgRW1hY3MuCisKKzs7IEdOVSBFbWFj cyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5 Cis7OyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieQorOzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVy IHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKzs7IChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCisKKzs7IEdOVSBFbWFjcyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorOzsgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKzs7IE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKzs7IEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKzs7IFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCis7OyBhbG9u ZyB3aXRoIEdOVSBFbWFjcy4gIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uCisKKzs7OyBDb21tZW50YXJ5OgorOzsKKzs7IEVSVCBGb250IExvY2sgaXMgYW4gZXh0 ZW5zaW9uIHRvIHRoZSBFbWFjcyBMaXNwIFJlZ3Jlc3Npb24gVGVzdAorOzsgbGlicmFyeSAoRVJU KSBwcm92aWRpbmcgYSBjb252ZW5pZW50IHdheSB0byBjaGVjayBzeW50YXgKKzs7IGhpZ2hsaWdo dGluZyBwcm92aWRlZCBieSBmb250LWxvY2suCis7OworOzsgZXJ0LWZvbnQtbG9jayBlbnRyeSBw b2ludHMgYXJlIGZ1bmN0aW9ucworOzsgYGVydC1mb250LWxvY2stdGVzdC1zdHJpbmcnIGFuZCBg ZXJ0LWZvbnQtbG9jay10ZXN0LWZpbGUnIGFuZAorOzsgY292ZW5pZW5jZSBtYWNyb3M6IGBlcnQt Zm9udC1sb2NrLWRlZnRlc3QnIGFuZAorOzsgYGVydC1mb250LWxvY2stZGVmdGVzdC1maWxlJy4K Kzs7Cis7OyBTZWUgdW5pdCB0ZXN0cyBpbiBlcnQtZm9udC1sb2NrLXRlc3RzLmVsIGZvciB1c2Fn ZSBleGFtcGxlcy4KKworOzs7IENvZGU6CisKKyhyZXF1aXJlICdlcnQpCisocmVxdWlyZSAnbmV3 Y29tbWVudCkKKyhyZXF1aXJlICdwY2FzZSkKKworKGRlZmNvbnN0IGVydC1mb250LWxvY2stLWFz c2VydGlvbi1yZQorICAocngKKyAgIDs7IGNvbHVtbiBzcGVjaWZpZXJzCisgICAoZ3JvdXAgKG9y ICJeIiAiPC0iKSkKKyAgIChvbmUtb3ItbW9yZSAiICIpCisgICA7OyBvcHRpb25hbCBuZWdhdGlv biBvZiB0aGUgZmFjZSBzcGVjaWZpY2F0aW9uCisgICAoZ3JvdXAgKG9wdGlvbmFsICIhIikpCisg ICA7OyBmYWNlIHN5bWJvbCBuYW1lCisgICAoZ3JvdXAgKG9uZS1vci1tb3JlIChvciBhbHBoYW51 bWVyaWMgIi0iICJfIiAiLiIpKSkpCisgICJBbiBlcnQtZm9udC1sb2NrIGFzc2VydGlvbiByZWdl eC4iKQorCisoZGVmdW4gZXJ0LWZvbnQtbG9jay0tdmFsaWRhdGUtbWFqb3ItbW9kZSAobW9kZSkK KyAgIlZhbGlkYXRlIGlmIE1PREUgaXMgYSB2YWxpZCBtYWpvciBtb2RlLiIKKyAgKHVubGVzcyAo ZnVuY3Rpb25wIG1vZGUpCisgICAgKGVycm9yICJJbnZhbGlkIG1ham9yIG1vZGU6ICVTLiBQbGVh c2Ugc3BlY2lmeSBhIHZhbGlkIG1ham9yIG1vZGUgZm9yCisgc3ludGF4IGhpZ2hsaWdodGluZyB0 ZXN0cyIgbW9kZSkpKQorCisoZGVmdW4gZXJ0LWZvbnQtbG9jay0tdGVzdC1ib2R5LXN0ciAobW9k ZSBzdHIgdGVzdC1uYW1lKQorICAiUnVuIGFzc2VydGlvbnMgZnJvbSBTVFIuCitBcmd1bWVudCBN T0RFIC0gbWFqb3IgbW9kZSB0byB0ZXN0LgorQXJndW1lbnQgVEVTVC1OQU1FIC0gbmFtZSBvZiB0 aGUgY3VycmVudGx5IHJ1bm5pbmcgZXJ0IHRlc3QuIgorICAoZXJ0LWZvbnQtbG9jay0tdmFsaWRh dGUtbWFqb3ItbW9kZSBtb2RlKQorICAod2l0aC10ZW1wLWJ1ZmZlcgorICAgIChpbnNlcnQgc3Ry KQorICAgIChmdW5jYWxsIG1vZGUpCisgICAgKGZvbnQtbG9jay1lbnN1cmUpCisgICAgKGxldCAo KHRlc3RzIChlcnQtZm9udC1sb2NrLS1wYXJzZS1jb21tZW50cykpKQorICAgICAgKGVydC1mb250 LWxvY2stLWNoZWNrLWZhY2VzIHRlc3RzKSkpCisgIHRlc3QtbmFtZSkKKworKGRlZnVuIGVydC1m b250LWxvY2stLXRlc3QtYm9keS1maWxlIChtb2RlIGZpbGUgdGVzdC1uYW1lKQorICAiUnVuIGFz c2VydGlvbnMgZnJvbSBGSUxFLgorQXJndW1lbnQgTU9ERSAtIG1ham9yIG1vZGUgdG8gdGVzdC4K K0FyZ3VtZW50IFRFU1QtTkFNRSAtIG5hbWUgb2YgdGhlIGN1cnJlbnRseSBydW5uaW5nIGVydCB0 ZXN0LiIKKyAgKGVydC1mb250LWxvY2stLXZhbGlkYXRlLW1ham9yLW1vZGUgbW9kZSkKKyAgKGVy dC1mb250LWxvY2stdGVzdC1maWxlIGZpbGUgbW9kZSkKKyAgdGVzdC1uYW1lKQorCisoZGVmdW4g ZXJ0LWZvbnQtbG9jay0tcGFyc2UtbWFjcm8tYXJncyAoZG9jLWtleXMtbW9kZS1hcmcpCisgICJQ YXJzZSBET0MtS0VZUy1NT0RFLUFSRyBtYWNybyBhcmd1bWVudCBsaXN0LiIKKyAgKGxldCAoZG9j IGRvYy1wIGtleXMgbW9kZSBhcmcpCisKKyAgICAod2hlbiAoc3RyaW5ncCAoY2FyIGRvYy1rZXlz LW1vZGUtYXJnKSkKKyAgICAgIChzZXRxIGRvYyAocG9wIGRvYy1rZXlzLW1vZGUtYXJnKQorICAg ICAgICAgICAgZG9jLXAgdCkpCisKKyAgICAocGNhc2UtbGV0CisgICAgICAgICgoYCgsa2V5cyAs bW9kZS1hcmcpCisgICAgICAgICAgKGVydC0tcGFyc2Uta2V5cy1hbmQtYm9keSBkb2Mta2V5cy1t b2RlLWFyZykpKQorCisgICAgICAodW5sZXNzIChzeW1ib2xwIChjYXIgbW9kZS1hcmcpKQorICAg ICAgICAoZXJyb3IgIkEgbWFqb3IgbW9kZSBzeW1ib2wgZXhwZWN0ZWQ6ICVTIiAoY2FyIG1vZGUt YXJnKSkpCisgICAgICAoc2V0cSBtb2RlIChwb3AgbW9kZS1hcmcpKQorCisgICAgICAodW5sZXNz IChzdHJpbmdwIChjYXIgbW9kZS1hcmcpKQorICAgICAgICAoZXJyb3IgIkEgc3RyaW5nIG9yIGZp bGUgd2l0aCBhc3NlcnRpb25zIGV4cGVjdGVkOiAlUyIgKGNhciBtb2RlLWFyZykpKQorICAgICAg KHNldHEgYXJnIChwb3AgbW9kZS1hcmcpKQorCisgICAgICAobGlzdCBkb2MgZG9jLXAga2V5cyBt b2RlIGFyZykpKSkKKworOzs7IyMjYXV0b2xvYWQKKyhkZWZtYWNybyBlcnQtZm9udC1sb2NrLWRl ZnRlc3QgKG5hbWUgJnJlc3QgZG9jc3RyaW5nLWtleXMtbW9kZS1hbmQtc3RyKQorICAiRGVmaW5l IHRlc3QgTkFNRSAoYSBzeW1ib2wpIHVzaW5nIGFzc2VydGlvbnMgZnJvbSBURVNULVNUUi4KKwor T3RoZXIgdGhhbiBNQUpPUi1NT0RFIGFuZCBURVNULVNUUiBwYXJhbWV0ZXJzLCB0aGlzIG1hY3Jv IGFjY2VwdHMKK3RoZSBzYW1lIHBhcmFtZXRlcnMgYW5kIGtleXdvcmRzIGFzIGBlcnQtZGVmdGVz dCcgYW5kIGlzIGludGVuZGVkCit0byBiZSB1c2VkIHRocm91Z2ggYGVydCcuCisKK1woZm4gTkFN RSAoKSBbRE9DU1RSSU5HXSBbOmV4cGVjdGVkLXJlc3VsdCBSRVNVTFQtVFlQRV0gXAorWzp0YWdz IFxcPScoVEFHLi4uKV0gTUFKT1ItTU9ERSBURVNULVNUUikiCisgIChkZWNsYXJlIChkZWJ1ZyAo JmRlZmluZSBbJm5hbWUgInRlc3RAIiBzeW1ib2xwXQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2V4cCBbJm9wdGlvbmFsIHN0cmluZ3BdCisgICAgICAgICAgICAgICAgICAgICAgICAgICBb JnJlc3Qga2V5d29yZHAgc2V4cF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bWJvbHAK KyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ3ApKQorICAgICAgICAgICAoZG9jLXN0 cmluZyAzKQorICAgICAgICAgICAoaW5kZW50IDIpKQorICAocGNhc2UtbGV0ICgoYCgsZG9jdW1l bnRhdGlvbgorICAgICAgICAgICAgICAgICAsZG9jdW1lbnRhdGlvbi1zdXBwbGllZC1wCisgICAg ICAgICAgICAgICAgICxrZXlzICxtb2RlICxhcmcpCisgICAgICAgICAgICAgICAoZXJ0LWZvbnQt bG9jay0tcGFyc2UtbWFjcm8tYXJncyBkb2NzdHJpbmcta2V5cy1tb2RlLWFuZC1zdHIpKSkKKwor ICAgIGAoZXJ0LXNldC10ZXN0ICcsbmFtZQorICAgICAgICAgICAgICAgICAgIChtYWtlLWVydC10 ZXN0CisgICAgICAgICAgICAgICAgICAgIDpuYW1lICcsbmFtZQorICAgICAgICAgICAgICAgICAg ICAsQCh3aGVuIGRvY3VtZW50YXRpb24tc3VwcGxpZWQtcAorICAgICAgICAgICAgICAgICAgICAg ICAgYCg6ZG9jdW1lbnRhdGlvbiAsZG9jdW1lbnRhdGlvbikpCisgICAgICAgICAgICAgICAgICAg ICxAKHdoZW4gKG1hcC1jb250YWlucy1rZXkga2V5cyA6ZXhwZWN0ZWQtcmVzdWx0KQorICAgICAg ICAgICAgICAgICAgICAgICAgYCg6ZXhwZWN0ZWQtcmVzdWx0LXR5cGUgLChtYXAtZWx0IGtleXMg OmV4cGVjdGVkLXJlc3VsdCkpKQorICAgICAgICAgICAgICAgICAgICAsQCh3aGVuIChtYXAtY29u dGFpbnMta2V5IGtleXMgOnRhZ3MpCisgICAgICAgICAgICAgICAgICAgICAgICBgKDp0YWdzICwo bWFwLWVsdCBrZXlzIDp0YWdzKSkpCisgICAgICAgICAgICAgICAgICAgIDpib2R5IChsYW1iZGEg KCkgKGVydC1mb250LWxvY2stLXRlc3QtYm9keS1zdHIgJyxtb2RlICxhcmcgJyxuYW1lKSkKKwor ICAgICAgICAgICAgICAgICAgICA6ZmlsZS1uYW1lICwob3IgKG1hY3JvZXhwLWZpbGUtbmFtZSkg YnVmZmVyLWZpbGUtbmFtZSkpKSkpCisKKzs7OyMjI2F1dG9sb2FkCisoZGVmbWFjcm8gZXJ0LWZv bnQtbG9jay1kZWZ0ZXN0LWZpbGUgKG5hbWUgJnJlc3QgZG9jc3RyaW5nLWtleXMtbW9kZS1hbmQt ZmlsZSkKKyAgIkRlZmluZSB0ZXN0IE5BTUUgKGEgc3ltYm9sKSB1c2luZyBhc3NlcnRpb25zIGZy b20gRklMRS4KKworRklMRSAtIHBhdGggdG8gYSBmaWxlIHdpdGggYXNzZXJ0aW9ucyBpbiBFUlQg cmVzb3VyY2UgZGlyZWN0b3IgYXMKK3JldHVybiBieSBgZXJ0LXJlc291cmNlLWRpcmVjdG9yeScu CisKK090aGVyIHRoYW4gTUFKT1ItTU9ERSBhbmQgRklMRSBwYXJhbWV0ZXJzLCB0aGlzIG1hY3Jv IGFjY2VwdHMgdGhlCitzYW1lIHBhcmFtZXRlcnMgYW5kIGtleXdvcmRzIGFzIGBlcnQtZGVmdGVz dCcgYW5kIGlzIGludGVuZGVkIHRvCitiZSB1c2VkIHRocm91Z2ggYGVydCcuCisKK1woZm4gTkFN RSAoKSBbRE9DU1RSSU5HXSBbOmV4cGVjdGVkLXJlc3VsdCBSRVNVTFQtVFlQRV0gXAorWzp0YWdz IFxcPScoVEFHLi4uKV0gTUFKT1ItTU9ERSBGSUxFKSIKKyAgKGRlY2xhcmUgKGRlYnVnICgmZGVm aW5lIFsmbmFtZSAidGVzdEAiIHN5bWJvbHBdCisgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZXhwIFsmb3B0aW9uYWwgc3RyaW5ncF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFsmcmVz dCBrZXl3b3JkcCBzZXhwXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ltYm9scAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5ncCkpCisgICAgICAgICAgIChkb2Mtc3RyaW5n IDMpCisgICAgICAgICAgIChpbmRlbnQgMikpCisKKyAgKHBjYXNlLWxldCAoKGAoLGRvY3VtZW50 YXRpb24KKyAgICAgICAgICAgICAgICAgLGRvY3VtZW50YXRpb24tc3VwcGxpZWQtcAorICAgICAg ICAgICAgICAgICAsa2V5cyAsbW9kZSAsYXJnKQorICAgICAgICAgICAgICAgKGVydC1mb250LWxv Y2stLXBhcnNlLW1hY3JvLWFyZ3MgZG9jc3RyaW5nLWtleXMtbW9kZS1hbmQtZmlsZSkpKQorCisg ICAgYChlcnQtc2V0LXRlc3QgJyxuYW1lCisgICAgICAgICAgICAgICAgICAgKG1ha2UtZXJ0LXRl c3QKKyAgICAgICAgICAgICAgICAgICAgOm5hbWUgJyxuYW1lCisgICAgICAgICAgICAgICAgICAg ICxAKHdoZW4gZG9jdW1lbnRhdGlvbi1zdXBwbGllZC1wCisgICAgICAgICAgICAgICAgICAgICAg ICBgKDpkb2N1bWVudGF0aW9uICxkb2N1bWVudGF0aW9uKSkKKyAgICAgICAgICAgICAgICAgICAg LEAod2hlbiAobWFwLWNvbnRhaW5zLWtleSBrZXlzIDpleHBlY3RlZC1yZXN1bHQpCisgICAgICAg ICAgICAgICAgICAgICAgICBgKDpleHBlY3RlZC1yZXN1bHQtdHlwZSAsKG1hcC1lbHQga2V5cyA6 ZXhwZWN0ZWQtcmVzdWx0KSkpCisgICAgICAgICAgICAgICAgICAgICxAKHdoZW4gKG1hcC1jb250 YWlucy1rZXkga2V5cyA6dGFncykKKyAgICAgICAgICAgICAgICAgICAgICAgIGAoOnRhZ3MgLCht YXAtZWx0IGtleXMgOnRhZ3MpKSkKKyAgICAgICAgICAgICAgICAgICAgOmJvZHkgKGxhbWJkYSAo KSAoZXJ0LWZvbnQtbG9jay0tdGVzdC1ib2R5LWZpbGUKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICcsbW9kZSAoZXJ0LXJlc291cmNlLWZpbGUgLGFyZykgJyxuYW1lKSkKKyAgICAg ICAgICAgICAgICAgICAgOmZpbGUtbmFtZSAsKG9yIChtYWNyb2V4cC1maWxlLW5hbWUpIGJ1ZmZl ci1maWxlLW5hbWUpKSkpKQorCisoZGVmdW4gZXJ0LWZvbnQtbG9jay0taW4tY29tbWVudC1wICgp CisgICJDaGVjayBpZiB0aGUgY3VycmVudCBwb2ludCBpcyBpbnNpZGUgYSBjb21tZW50LiIKKyAg KG50aCA0IChzeW50YXgtcHBzcykpKQorCisoZGVmdW4gZXJ0LWZvbnQtbG9jay0tY29tbWVudC1z dGFydC1wICgpCisgICJDaGVjayBpZiB0aGUgY3VycmVudCBwb2ludCBzdGFydHMgYSBjb21tZW50 LiIKKyAgKG9yCisgICA7OyByZWdleHBzIHVzZSBzeW50YXggdGFibGVzIHNvIGxldCdzIGNoZWNr IHRoYXQgZmlyc3QKKyAgIChsb29raW5nLWF0ICJcXHM8IikKKworICAgOzsgY2hlY2sgbmV3Y29t bWVudC5lbCBmYWNpbGl0aWVzCisgICAoYW5kIGNvbW1lbnQtc3RhcnQgKGxvb2tpbmctYXQgKHJl Z2V4cC1xdW90ZSBjb21tZW50LXN0YXJ0KSkpCisgICAoYW5kIGNvbW1lbnQtc3RhcnQtc2tpcCAo bG9va2luZy1hdCBjb21tZW50LXN0YXJ0LXNraXApKQorCisgICA7OyBzb21ldGltZXMgY29tbWVu dCBzeW50YXggaXMganVzdCBoYXJkY29kZWQKKyAgIChhbmQgKGRlcml2ZWQtbW9kZS1wICdjLW1v ZGUgJ2MrKy1tb2RlICdqYXZhLW1vZGUpCisgICAgICAgIChsb29raW5nLWF0LXAgIi8vIikpKSkK KworKGRlZnVuIGVydC1mb250LWxvY2stLWxpbmUtY29tbWVudC1wICgpCisgICJSZXR1cm4gdCBp ZiB0aGUgY3VycmVudCBsaW5lIGlzIGEgY29tbWVudC1vbmx5IGxpbmUuIgorICAoc3ludGF4LXBw c3MpCisgIChzYXZlLWV4Y3Vyc2lvbgorICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgICAoc2tp cC1zeW50YXgtZm9yd2FyZCAiICIpCisgICAgOzsgc2tpcCBlbXB0eSBsaW5lcworICAgICh1bmxl c3MgKGVvbHApCisgICAgICAob3IKKyAgICAgICA7OyBtdWx0aWxpbmUgY29tbWVudHMKKyAgICAg ICAoZXJ0LWZvbnQtbG9jay0taW4tY29tbWVudC1wKQorCisgICAgICAgOzsgc2luZ2xlIGxpbmUg Y29tbWVudHMKKyAgICAgICAoZXJ0LWZvbnQtbG9jay0tY29tbWVudC1zdGFydC1wKSkpKSkKKwor KGRlZnVuIGVydC1mb250LWxvY2stLWxpbmUtYXNzZXJ0aW9uLXAgKCkKKyAgIlJldHVybiB0IGlm IHRoZSBjdXJyZW50IGxpbmUgY29udGFpbnMgYW4gYXNzZXJ0aW9uLiIKKyAgKHN5bnRheC1wcHNz KQorICAoc2F2ZS1leGN1cnNpb24KKyAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgKHNraXAt c3ludGF4LWZvcndhcmQgIiAiKQorICAgIChyZS1zZWFyY2gtZm9yd2FyZCBlcnQtZm9udC1sb2Nr LS1hc3NlcnRpb24tcmUKKyAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUtZW5kLXBvc2l0aW9u KSB0IDEpKSkKKworKGRlZnVuIGVydC1mb250LWxvY2stLWdvdG8tZmlyc3QtY2hhciAoKQorICAi TW92ZSB0aGUgcG9pbnQgdG8gdGhlIGZpcnN0IGNoYXJhY3Rlci4iCisgIChiZWdpbm5pbmctb2Yt bGluZSkKKyAgKHNraXAtc3ludGF4LWZvcndhcmQgIiAiKSkKKworKGRlZnVuIGVydC1mb250LWxv Y2stLWdldC1maXJzdC1jaGFyLWNvbHVtbiAoKQorICAiR2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUg Zmlyc3Qgbm9uLWVtcHR5IGNoYXIgaW4gdGhlIGN1cnJlbnQgbGluZS4iCisgIChzYXZlLWV4Y3Vy c2lvbgorICAgIChlcnQtZm9udC1sb2NrLS1nb3RvLWZpcnN0LWNoYXIpCisgICAgKC0gKHBvaW50 KSAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkpCisKKyhkZWZ1biBlcnQtZm9udC1sb2NrLS1w YXJzZS1jb21tZW50cyAoKQorICAiUmVhZCB0ZXN0IGFzc2VydGlvbnMgZnJvbSBjb21tZW50cyBp biB0aGUgY3VycmVudCBidWZmZXIuIgorICAobGV0ICgodGVzdHMgJygpKQorICAgICAgICAoY3Vy bGluZSAxKQorICAgICAgICAobGluZXRvY2hlY2sgLTEpKQorCisgICAgKGdvdG8tY2hhciAocG9p bnQtbWluKSkKKworICAgIDs7IEdvIHRocm91Z2ggYWxsIGxpbmVzLCBmb3IgY29tbWVudHMgY2hl Y2sgaWYgdGhlcmUgYXJlCisgICAgOzsgYXNzZXJ0aW9ucy4gRm9yIG5vbi1jb21tZW50IGFuZCBj b21tZW50L25vbi1hc3NlcnQgbGluZXMKKyAgICA7OyByZW1lbWJlciB0aGUgbGFzdCBsaW5lIHNl ZW4uCisgICAgKHdoaWxlIChub3QgKGVvYnApKQorICAgICAgKGNhdGNoICduZXh0bGluZQorCisg ICAgICAgIDs7IE5vdCBhIGNvbW1lbnQ/IHJlbWVtYmVyIHRoZSBsaW5lLCBtb3ZlIHRvIHRoZSBu ZXh0IG9uZQorICAgICAgICAodW5sZXNzIChlcnQtZm9udC1sb2NrLS1saW5lLWNvbW1lbnQtcCkK KyAgICAgICAgICAoc2V0cSBsaW5ldG9jaGVjayBjdXJsaW5lKQorICAgICAgICAgICh0aHJvdyAn bmV4dGxpbmUgdCkpCisKKyAgICAgICAgOzsgQSBjb21tZW50LiBOb3QgYW4gYXNzZXJ0aW9uPyBy ZW1lbWJlciB0aGUgbGluZSB0byBiZQorICAgICAgICA7OyBjaGVja2VkLCBtb3ZlIHRvIHRoZSBu ZXh0IGxpbmUKKyAgICAgICAgKHVubGVzcyAoZXJ0LWZvbnQtbG9jay0tbGluZS1hc3NlcnRpb24t cCkKKyAgICAgICAgICAoc2V0cSBsaW5ldG9jaGVjayBjdXJsaW5lKQorICAgICAgICAgICh0aHJv dyAnbmV4dGxpbmUgdCkpCisKKworICAgICAgICA7OyBDb2xsZWN0IHRoZSBhc3NlcnRpb24KKyAg ICAgICAgKHdoZW4gKHJlLXNlYXJjaC1mb3J3YXJkIGVydC1mb250LWxvY2stLWFzc2VydGlvbi1y ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUtZW5kLXBvc2l0aW9uKSB0 IDEpCisKKyAgICAgICAgICAodW5sZXNzICg+IGxpbmV0b2NoZWNrIC0xKQorICAgICAgICAgICAg KHVzZXItZXJyb3IgIkludmFsaWQgdGVzdCBjb21tZW50IHN5bnRheCBhdCBsaW5lICVkLiBFeHBl Y3RlZCBhIGxpbmUgdG8gdGVzdCBiZWZvcmUgdGhlIGNvbW1lbnQgbGluZSIgY3VybGluZSkpCisK KyAgICAgICAgICA7OyBjb25zdHJ1Y3QgYSB0ZXN0CisgICAgICAgICAgKGxldCogKDs7IGVpdGhl ciBjb21tZW50IHN0YXJ0IGNoYXIgY29sdW1uIChmb3IgYXJyb3dzKSBvcgorICAgICAgICAgICAg ICAgICA7OyBjYXJldCBjb2x1bW4KKyAgICAgICAgICAgICAgICAgKGNvbHVtbi1jaGVja2VkIChp ZiAoZXF1YWwgKG1hdGNoLXN0cmluZy1uby1wcm9wZXJ0aWVzIDEpICJeIikKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoLSAobWF0Y2gtYmVnaW5uaW5nIDEpIChsaW5lLWJl Z2lubmluZy1wb3NpdGlvbikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChl cnQtZm9udC1sb2NrLS1nZXQtZmlyc3QtY2hhci1jb2x1bW4pKSkKKyAgICAgICAgICAgICAgICAg OzsgbmVnYXRlIHRoZSBmYWNlPworICAgICAgICAgICAgICAgICAobmVnYXRpb24gKHN0cmluZy1l cXVhbCAobWF0Y2gtc3RyaW5nLW5vLXByb3BlcnRpZXMgMikgIiEiKSkKKyAgICAgICAgICAgICAg ICAgOzsgdGhlIGZhY2UgdGhhdCBpcyBzdXBwb3NlZCB0byBiZSBpbiB0aGUgcG9zaXRpb24gc3Bl Y2lmaWVkCisgICAgICAgICAgICAgICAgIChmYWNlIChtYXRjaC1zdHJpbmctbm8tcHJvcGVydGll cyAzKSkpCisKKyAgICAgICAgICAgIChwdXNoIChsaXN0IDpsaW5lLWNoZWNrZWQgbGluZXRvY2hl Y2sKKyAgICAgICAgICAgICAgICAgICAgICAgIDpsaW5lLWFzc2VydCBjdXJsaW5lCisgICAgICAg ICAgICAgICAgICAgICAgICA6Y29sdW1uLWNoZWNrZWQgY29sdW1uLWNoZWNrZWQKKyAgICAgICAg ICAgICAgICAgICAgICAgIDpmYWNlIGZhY2UKKyAgICAgICAgICAgICAgICAgICAgICAgIDpuZWdh dGlvbiBuZWdhdGlvbikKKyAgICAgICAgICAgICAgICAgIHRlc3RzKSkpKQorCisgICAgICA7OyBu ZXh0IGxpbmUKKyAgICAgIChzZXRxIGN1cmxpbmUgKDErIGN1cmxpbmUpKQorICAgICAgKGZvcndh cmQtbGluZSAxKSkKKworICAgIChyZXZlcnNlIHRlc3RzKSkpCisKKyhkZWZ1biBlcnQtZm9udC1s b2NrLS1wb2ludC1hdC1saW5lLWFuZC1jb2x1bW4gKGxpbmUgY29sdW1uKQorICAiR2V0IHRoZSBi dWZmZXIgcG9zaXRpb24gZm9yIExJTkUgYW5kIENPTFVNTi4iCisgIChzYXZlLWV4Y3Vyc2lvbgor ICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCisgICAgKGZvcndhcmQtbGluZSAoMS0gbGluZSkp CisgICAgKG1vdmUtdG8tY29sdW1uIGNvbHVtbikKKyAgICAocG9pbnQpKSkKKworKGRlZnVuIGVy dC1mb250LWxvY2stLWdldC1saW5lIChsaW5lLW51bWJlcikKKyAgIlJldHVybiB0aGUgY29udGVu dCBvZiB0aGUgbGluZSBzcGVjaWZpZWQgYnkgTElORS1OVU1CRVIuIgorICAoc2F2ZS1leGN1cnNp b24KKyAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQorICAgIChmb3J3YXJkLWxpbmUgKDEtIGxp bmUtbnVtYmVyKSkKKyAgICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzIChsaW5lLWJl Z2lubmluZy1wb3NpdGlvbikgKGxpbmUtZW5kLXBvc2l0aW9uKSkpKQorCisoZGVmdW4gZXJ0LWZv bnQtbG9jay0tY2hlY2stZmFjZXMgKHRlc3RzKQorICAiQ2hlY2sgaWYgdGhlIGN1cnJlbnQgYnVm ZmVyIGlzIGZvbnRpZmllZCBjb3JyZWN0bHkuCitURVNUUyAtIHRlc3RzIHRvIHJ1bi4KKworVGhl IGZ1bmN0aW9uIGlzIG1lYW50IHRvIGJlIHJ1biBmcm9tIHdpdGhpbiBhbiBFUlQgdGVzdC4iCisg IChkb2xpc3QgKHRlc3QgdGVzdHMpCisgICAgKGxldCogKChsaW5lLWNoZWNrZWQgKHBsaXN0LWdl dCB0ZXN0IDpsaW5lLWNoZWNrZWQpKQorICAgICAgICAgICAobGluZS1hc3NlcnQgKHBsaXN0LWdl dCB0ZXN0IDpsaW5lLWFzc2VydCkpCisgICAgICAgICAgIChjb2x1bW4tY2hlY2tlZCAocGxpc3Qt Z2V0IHRlc3QgOmNvbHVtbi1jaGVja2VkKSkKKyAgICAgICAgICAgKGV4cGVjdGVkLWZhY2UgKGlu dGVybiAocGxpc3QtZ2V0IHRlc3QgOmZhY2UpKSkKKyAgICAgICAgICAgKG5lZ2F0aW9uIChwbGlz dC1nZXQgdGVzdCA6bmVnYXRpb24pKQorCisgICAgICAgICAgIChhY3R1YWwtZmFjZSAoZ2V0LXRl eHQtcHJvcGVydHkgKGVydC1mb250LWxvY2stLXBvaW50LWF0LWxpbmUtYW5kLWNvbHVtbiBsaW5l LWNoZWNrZWQgY29sdW1uLWNoZWNrZWQpICdmYWNlKSkKKyAgICAgICAgICAgKGxpbmUtc3RyIChl cnQtZm9udC1sb2NrLS1nZXQtbGluZSBsaW5lLWNoZWNrZWQpKQorICAgICAgICAgICAobGluZS1h c3NlcnQtc3RyIChlcnQtZm9udC1sb2NrLS1nZXQtbGluZSBsaW5lLWFzc2VydCkpKQorCisgICAg ICAod2hlbiAobm90IChlcSBhY3R1YWwtZmFjZSBleHBlY3RlZC1mYWNlKSkKKyAgICAgICAgKGVy dC1mYWlsCisgICAgICAgICAobGlzdCAoZm9ybWF0ICJFeHBlY3RlZCBmYWNlICVTLCBnb3QgJVMg b24gbGluZSAlZCBjb2x1bW4gJWQiCisgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkLWZh Y2UgYWN0dWFsLWZhY2UgbGluZS1jaGVja2VkIGNvbHVtbi1jaGVja2VkKQorICAgICAgICAgICAg ICAgOmxpbmUgbGluZS1zdHIKKyAgICAgICAgICAgICAgIDphc3NlcnQgbGluZS1hc3NlcnQtc3Ry KSkpCisKKyAgICAgICh3aGVuIChhbmQgbmVnYXRpb24gKGVxIGFjdHVhbC1mYWNlIGV4cGVjdGVk LWZhY2UpKQorICAgICAgICAoZXJ0LWZhaWwKKyAgICAgICAgIChsaXN0IChmb3JtYXQgIkRpZCBu b3QgZXhwZWN0IGZhY2UgJVMgZmFjZSBvbiBsaW5lICVkLCBjb2x1bW4gJWQiCisgICAgICAgICAg ICAgICAgICAgICAgIGFjdHVhbC1mYWNlIGxpbmUtY2hlY2tlZCBjb2x1bW4tY2hlY2tlZCkKKyAg ICAgICAgICAgICAgIDpsaW5lIGxpbmUtc3RyCisgICAgICAgICAgICAgICA6YXNzZXJ0IGxpbmUt YXNzZXJ0LXN0cikpKSkpKQorCis7OzsjIyNhdXRvbG9hZAorKGRlZnVuIGVydC1mb250LWxvY2st dGVzdC1zdHJpbmcgKHRlc3Qtc3RyaW5nIG1vZGUpCisgICJDaGVjayBmb250IGZhY2VzIGluIFRF U1QtU1RSSU5HIHNldCBieSBNT0RFLgorCitUaGUgZnVuY3Rpb24gaXMgbWVhbnQgdG8gYmUgcnVu IGZyb20gd2l0aGluIGFuIEVSVCB0ZXN0LiIKKyAgKGVydC1mb250LWxvY2stLXZhbGlkYXRlLW1h am9yLW1vZGUgbW9kZSkKKyAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAoaW5zZXJ0IHRlc3Qtc3Ry aW5nKQorICAgIChmdW5jYWxsIG1vZGUpCisgICAgKGZvbnQtbG9jay1lbnN1cmUpCisKKyAgICAo ZXJ0LWZvbnQtbG9jay0tY2hlY2stZmFjZXMgKGVydC1mb250LWxvY2stLXBhcnNlLWNvbW1lbnRz KSkpCisKKyAgKGVydC1wYXNzKSkKKworOzs7IyMjYXV0b2xvYWQKKyhkZWZ1biBlcnQtZm9udC1s b2NrLXRlc3QtZmlsZSAoZmlsZW5hbWUgbW9kZSkKKyAgIkNoZWNrIGZvbnQgZmFjZXMgaW4gRklM RU5BTUUgc2V0IGJ5IE1PREUuCisKK1RoZSBmdW5jdGlvbiBpcyBtZWFudCB0byBiZSBydW4gZnJv bSB3aXRoaW4gYW4gRVJUIHRlc3QuIgorICAoZXJ0LWZvbnQtbG9jay0tdmFsaWRhdGUtbWFqb3It bW9kZSBtb2RlKQorICAod2l0aC10ZW1wLWJ1ZmZlcgorICAgIChpbnNlcnQtZmlsZS1jb250ZW50 cyBmaWxlbmFtZSkKKyAgICAoZnVuY2FsbCBtb2RlKQorICAgIChmb250LWxvY2stZW5zdXJlKQor CisgICAgKGVydC1mb250LWxvY2stLWNoZWNrLWZhY2VzIChlcnQtZm9udC1sb2NrLS1wYXJzZS1j b21tZW50cykpKQorCisgIChlcnQtcGFzcykpCisKKworKHByb3ZpZGUgJ2VydC1mb250LWxvY2sp CisKKzs7OyBlcnQtZm9udC1sb2NrLmVsIGVuZHMgaGVyZQpkaWZmIC0tZ2l0IGEvdGVzdC9saXNw L2VtYWNzLWxpc3AvZXJ0LWZvbnQtbG9jay1yZXNvdXJjZXMvYnJva2VuLmpzIGIvdGVzdC9saXNw L2VtYWNzLWxpc3AvZXJ0LWZvbnQtbG9jay1yZXNvdXJjZXMvYnJva2VuLmpzCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42OWMxYzVjY2E4OAotLS0gL2Rldi9udWxsCisr KyBiL3Rlc3QvbGlzcC9lbWFjcy1saXNwL2VydC1mb250LWxvY2stcmVzb3VyY2VzL2Jyb2tlbi5q cwpAQCAtMCwwICsxLDMgQEAKK3ZhciBhYmMgPSBmdW5jdGlvbihkKSB7CisvLyAgIF4gd3Jvbmct ZmFjZQorfTsKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9lbWFjcy1saXNwL2VydC1mb250LWxvY2st cmVzb3VyY2VzL2NvcnJlY3QuanMgYi90ZXN0L2xpc3AvZW1hY3MtbGlzcC9lcnQtZm9udC1sb2Nr LXJlc291cmNlcy9jb3JyZWN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi41ZTYxNGM2NDc1NQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3QvbGlzcC9lbWFjcy1saXNw L2VydC1mb250LWxvY2stcmVzb3VyY2VzL2NvcnJlY3QuanMKQEAgLTAsMCArMSwzIEBACit2YXIg YWJjID0gZnVuY3Rpb24oZCkgeworLy8gICBeIGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZhY2UK K307CmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvZW1hY3MtbGlzcC9lcnQtZm9udC1sb2NrLXRlc3Rz LmVsIGIvdGVzdC9saXNwL2VtYWNzLWxpc3AvZXJ0LWZvbnQtbG9jay10ZXN0cy5lbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMzNlZjBjNmVlZGUKLS0tIC9kZXYvbnVs bAorKysgYi90ZXN0L2xpc3AvZW1hY3MtbGlzcC9lcnQtZm9udC1sb2NrLXRlc3RzLmVsCkBAIC0w LDAgKzEsNDY0IEBACis7OzsgZXJ0LWZvbnQtbG9jay10ZXN0cy5lbCAtLS0gRVJUIEZvbnQgTG9j ayB0ZXN0cyAgLSotIGxleGljYWwtYmluZGluZzogdCAtKi0KKworOzsgQ29weXJpZ2h0IChDKSAy MDIzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCis7OyBBdXRob3I6IFZsYWRpbWly IEthemFub3YKKworOzsgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEVtYWNzLgorCis7OyBHTlUg RW1hY3MgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQorOzsgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkKKzs7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVp dGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCis7OyAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgorCis7OyBHTlUgRW1hY3MgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKzs7IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCis7OyBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCis7OyBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCis7OyBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorOzsg YWxvbmcgd2l0aCBHTlUgRW1hY3MuICBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LgorCis7OzsgQ29tbWVudGFyeToKKworOzsgVGhpcyBmaWxlIGlzIHBhcnQgb2Yg RVJUIEZvbnQgTG9jaywgYW4gZXh0ZW5zaW9uIHRvIHRoZSBFbWFjcyBMaXNwCis7OyBSZWdyZXNz aW9uIFRlc3QgbGlicmFyeSAoRVJUKSBwcm92aWRpbmcgYSBjb252ZW5pZW50IHdheSB0byBjaGVj aworOzsgc3ludGF4IGhpZ2hsaWdodGluZyBwcm92aWRlZCBieSBmb250LWxvY2suCis7OworOzsg U2VlIGVydC1mb250LWxvY2suZWwgZm9yIGRldGFpbHMsIGFuZCBiZWxvdyBmb3IgZXhhbXBsZSB1 c2FnZSBvZgorOzsgZXJ0LWZvbnQtbG9jayBmYWNpbGl0aWVzLgorCisocmVxdWlyZSAnZXJ0KQor KHJlcXVpcmUgJ2VydC14KQorKHJlcXVpcmUgJ2VydC1mb250LWxvY2spCisKKzs7OyBIZWxwZXJz Cis7OworCisoZGVmbWFjcm8gd2l0aC10ZW1wLWJ1ZmZlci1zdHItbW9kZSAobW9kZSBzdHIgJnJl c3QgYm9keSkKKyAgIkNyZWF0ZSBhIGJ1ZmZlciB3aXRoIFNUUiBjb250ZW50cyBhbmQgTU9ERS4g IgorICAoZGVjbGFyZSAoaW5kZW50IDEpIChkZWJ1ZyB0KSkKKyAgYCh3aXRoLXRlbXAtYnVmZmVy CisgICAgIChpbnNlcnQgLHN0cikKKyAgICAgKCxtb2RlKQorICAgICAoZ290by1jaGFyIChwb2lu dC1taW4pKQorICAgICAsQGJvZHkpKQorCis7OzsgQ29tbWVudCBwYXJzaW5nIHRlc3RzCis7Owor CisoZXJ0LWRlZnRlc3QgdGVzdC1saW5lLWNvbW1lbnQtcC0tZnVuZGFtZW50YWwgKCkKKyAgKHdp dGgtdGVtcC1idWZmZXItc3RyLW1vZGUgZnVuZGFtZW50YWwtbW9kZQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiLy8gY29tbWVudFxuIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoc2hvdWxkLW5vdCAoZXJ0LWZvbnQtbG9jay0tbGluZS1jb21tZW50LXApKSkpCisKKyhlcnQt ZGVmdGVzdCB0ZXN0LWxpbmUtY29tbWVudC1wLS1lbWFjcy1saXNwICgpCisgICh3aXRoLXRlbXAt YnVmZmVyLXN0ci1tb2RlIGVtYWNzLWxpc3AtbW9kZQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAibm90IGNvbW1lbnQKKzs7IGNvbW1lbnQKKyIKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHNob3VsZC1ub3QgKGVydC1mb250LWxvY2stLWxpbmUtY29tbWVudC1wKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGZvcndhcmQtbGluZSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKHNob3VsZCAoZXJ0LWZvbnQtbG9jay0tbGluZS1jb21tZW50LXApKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9yd2FyZC1saW5lKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoc2hvdWxkLW5vdCAoZXJ0LWZvbnQtbG9jay0tbGluZS1jb21tZW50LXAp KSkpCisKKyhlcnQtZGVmdGVzdCB0ZXN0LWxpbmUtY29tbWVudC1wLS1zaGVsbC1zY3JpcHQgKCkK KyAgKHdpdGgtdGVtcC1idWZmZXItc3RyLW1vZGUgc2hlbGwtc2NyaXB0LW1vZGUKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgImVjaG8gTm90IGEgY29tbWVudAorIyBjb21tZW50CisiCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzaG91bGQtbm90IChlcnQtZm9udC1sb2NrLS1s aW5lLWNvbW1lbnQtcCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb3J3YXJkLWxp bmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzaG91bGQgKGVydC1mb250LWxvY2st LWxpbmUtY29tbWVudC1wKSkpKQorCisoZGVjbGFyZS1mdW5jdGlvbiBwaHAtbW9kZSAicGhwLW1v ZGUiKQorKGVydC1kZWZ0ZXN0IHRlc3QtbGluZS1jb21tZW50LXAtLXBocCAoKQorICAoc2tpcC11 bmxlc3MgKGZlYXR1cmVwICdwaHAtbW9kZSkpCisKKyAgKHdpdGgtdGVtcC1idWZmZXItc3RyLW1v ZGUgcGhwLW1vZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVjaG8gJ05vdCBhIGNv bW1lbnQnCisvLyBjb21tZW50CisvKiBjb21tZW50ICovCisiCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChzaG91bGQtbm90IChlcnQtZm9udC1sb2NrLS1saW5lLWNvbW1lbnQtcCkpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb3J3YXJkLWxpbmUpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChzaG91bGQgKGVydC1mb250LWxvY2stLWxpbmUtY29tbWVudC1wKSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcndhcmQtbGluZSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHNob3VsZCAoZXJ0LWZvbnQtbG9jay0tbGluZS1jb21tZW50LXAp KSkpCisKKworKGVydC1kZWZ0ZXN0IHRlc3QtbGluZS1jb21tZW50LXAtLWphdmFzY3JpcHQgKCkK KyAgKHdpdGgtdGVtcC1idWZmZXItc3RyLW1vZGUgamF2YXNjcmlwdC1tb2RlCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICIvLyBjb21tZW50CisKKyAgIC8vIGNvbW1lbnQsIGFmdGVyIGEg YmxhbmsgbGluZQorCit2YXIgYWJjID0gZnVuY3Rpb24oZCkge307CisiCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChzaG91bGQgKGVydC1mb250LWxvY2stLWxpbmUtY29tbWVudC1wKSkK KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9yd2FyZC1saW5lKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoc2hvdWxkLW5vdCAoZXJ0LWZvbnQtbG9jay0tbGluZS1jb21t ZW50LXApKQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb3J3YXJkLWxpbmUpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzaG91bGQgKGVydC1mb250LWxvY2stLWxpbmUt Y29tbWVudC1wKSkKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9yd2FyZC1saW5l KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2hvdWxkLW5vdCAoZXJ0LWZvbnQtbG9j ay0tbGluZS1jb21tZW50LXApKQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb3J3 YXJkLWxpbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzaG91bGQtbm90IChlcnQt Zm9udC1sb2NrLS1saW5lLWNvbW1lbnQtcCkpKSkKKworKGVydC1kZWZ0ZXN0IHRlc3QtbGluZS1j b21tZW50LXAtLXB5dGhvbiAoKQorCisgICh3aXRoLXRlbXAtYnVmZmVyLXN0ci1tb2RlIHB5dGhv bi1tb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIjIGNvbW1lbnQKKworICAgIyBj b21tZW50CitwcmludChcIkhlbGxvLCB3b3JsZCFcIikiCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChzaG91bGQgKGVydC1mb250LWxvY2stLWxpbmUtY29tbWVudC1wKSkKKworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoZm9yd2FyZC1saW5lKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoc2hvdWxkLW5vdCAoZXJ0LWZvbnQtbG9jay0tbGluZS1jb21tZW50LXApKQor CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmb3J3YXJkLWxpbmUpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChzaG91bGQgKGVydC1mb250LWxvY2stLWxpbmUtY29tbWVudC1w KSkKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9yd2FyZC1saW5lKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoc2hvdWxkLW5vdCAoZXJ0LWZvbnQtbG9jay0tbGluZS1j b21tZW50LXApKSkpCisKKyhlcnQtZGVmdGVzdCB0ZXN0LWxpbmUtY29tbWVudC1wLS1jICgpCisK KyAgKHdpdGgtdGVtcC1idWZmZXItc3RyLW1vZGUgYy1tb2RlCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICIvLyBjb21tZW50CisvKiBhbHNvIGNvbW1lbnQgKi8iCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChzaG91bGQgKGVydC1mb250LWxvY2stLWxpbmUtY29tbWVudC1wKSkK KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9yd2FyZC1saW5lKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoc2hvdWxkIChlcnQtZm9udC1sb2NrLS1saW5lLWNvbW1lbnQt cCkpKSkKKworKGVydC1kZWZ0ZXN0IHRlc3QtcGFyc2UtY29tbWVudHMtLXNpbmdsZS1saW5lLWVy cm9yICgpCisgIChsZXQqICgoc3RyICIvLyBeIGZhY2UuZmFjZTEiKSkKKyAgICAod2l0aC10ZW1w LWJ1ZmZlcgorICAgICAgKGluc2VydCBzdHIpCisgICAgICAoamF2YXNjcmlwdC1tb2RlKQorCisg ICAgICAoc2hvdWxkLWVycm9yIChlcnQtZm9udC1sb2NrLS1wYXJzZS1jb21tZW50cykpKSkpCisK KyhlcnQtZGVmdGVzdCB0ZXN0LXBhcnNlLWNvbW1lbnRzLS1zaW5nbGUtbGluZS1zaW5nbGUtY2Fy ZXQgKCkKKyAgKGxldCogKChzdHIgIgorZmlyc3QKKy8vIF4gZmFjZS5mYWNlMQorIikKKyAgICAg ICAgIGFzc2VydHMpCisgICAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAgIChpbnNlcnQgc3RyKQor ICAgICAgKGphdmFzY3JpcHQtbW9kZSkKKworICAgICAgKHNldHEgYXNzZXJ0cyAoZXJ0LWZvbnQt bG9jay0tcGFyc2UtY29tbWVudHMpKQorICAgICAgKHNob3VsZCAoZXFsIChsZW5ndGggYXNzZXJ0 cykgMSkpCisgICAgICAoc2hvdWxkIChlcXVhbCAoY2FyIGFzc2VydHMpCisgICAgICAgICAgICAg ICAgICAgICAnKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQg MyA6ZmFjZSAiZmFjZS5mYWNlMSIgOm5lZ2F0aW9uIG5pbCkpKSkpKQorCisoZXJ0LWRlZnRlc3Qg dGVzdC1wYXJzZS1jb21tZW50cy0tY2FyZXQtbmVnYXRpb24gKCkKKyAgKGxldCogKChzdHIgIgor Zmlyc3QKKy8vIF4gIWZhY2UKKy8vIF4gZmFjZQorIikKKyAgICAgICAgIGFzc2VydHMpCisgICAg KHdpdGgtdGVtcC1idWZmZXIKKyAgICAgIChpbnNlcnQgc3RyKQorICAgICAgKGphdmFzY3JpcHQt bW9kZSkKKworICAgICAgKHNldHEgYXNzZXJ0cyAoZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVu dHMpKQorICAgICAgKHNob3VsZCAoZXFsIChsZW5ndGggYXNzZXJ0cykgMikpCisgICAgICAoc2hv dWxkIChlcXVhbCBhc3NlcnRzCisgICAgICAgICAgICAgICAgICAgICAnKCg6bGluZS1jaGVja2Vk IDIgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDMgOmZhY2UgImZhY2UiIDpuZWdhdGlv biB0KQorICAgICAgICAgICAgICAgICAgICAgICAoOmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFzc2Vy dCA0IDpjb2x1bW4tY2hlY2tlZCAzIDpmYWNlICJmYWNlIiA6bmVnYXRpb24gbmlsKSkpKSkpKQor CisKKyhlcnQtZGVmdGVzdCB0ZXN0LXBhcnNlLWNvbW1lbnRzLS1zaW5nbGUtbGluZS1tdWx0aXBs ZS1jYXJldHMgKCkKKyAgKGxldCogKChzdHIgIgorZmlyc3QKKy8vIF4gZmFjZTEKKy8vICAgICBe IGZhY2UuZmFjZTIKKy8vICAgICBeIGZhY2UtZmFjZS5mYWNlMworICAgLy8gIF4gZmFjZV9mYWNl LmZhY2U0CisiKQorICAgICAgICAgYXNzZXJ0cykKKworICAgICh3aXRoLXRlbXAtYnVmZmVyCisg ICAgICAoaW5zZXJ0IHN0cikKKyAgICAgIChqYXZhc2NyaXB0LW1vZGUpCisKKyAgICAgIChzZXRx IGFzc2VydHMgKGVydC1mb250LWxvY2stLXBhcnNlLWNvbW1lbnRzKSkKKyAgICAgIChzaG91bGQg KGVxbCAobGVuZ3RoIGFzc2VydHMpIDQpKQorICAgICAgKHNob3VsZCAoZXF1YWwgYXNzZXJ0cwor ICAgICAgICAgICAgICAgICAgICAgJygoOmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCAzIDpj b2x1bW4tY2hlY2tlZCAzIDpmYWNlICJmYWNlMSIgOm5lZ2F0aW9uIG5pbCkKKyAgICAgICAgICAg ICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgNCA6Y29sdW1uLWNoZWNr ZWQgNyA6ZmFjZSAiZmFjZS5mYWNlMiIgOm5lZ2F0aW9uIG5pbCkKKyAgICAgICAgICAgICAgICAg ICAgICAgKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgNSA6Y29sdW1uLWNoZWNrZWQgNyA6 ZmFjZSAiZmFjZS1mYWNlLmZhY2UzIiA6bmVnYXRpb24gbmlsKQorICAgICAgICAgICAgICAgICAg ICAgICAoOmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCA2IDpjb2x1bW4tY2hlY2tlZCA3IDpm YWNlICJmYWNlX2ZhY2UuZmFjZTQiIDpuZWdhdGlvbiBuaWwpKSkpKSkpCisKKyhlcnQtZGVmdGVz dCB0ZXN0LXBhcnNlLWNvbW1lbnRzLS1tdWx0aXBsZS1saW5lLW11bHRpcGxlLWNhcmV0cyAoKQor ICAobGV0KiAoKHN0ciAiCitmaXJzdAorLy8gXiBmYWNlMQorc2Vjb25kCisvLyBeIGZhY2UyCisv LyAgIF4gZmFjZTMKK3RoaXJkCisiKQorICAgICAgICAgYXNzZXJ0cykKKyAgICAod2l0aC10ZW1w LWJ1ZmZlcgorICAgICAgKGluc2VydCBzdHIpCisgICAgICAoamF2YXNjcmlwdC1tb2RlKQorCisg ICAgICAoc2V0cSBhc3NlcnRzIChlcnQtZm9udC1sb2NrLS1wYXJzZS1jb21tZW50cykpCisgICAg ICAoc2hvdWxkIChlcWwgKGxlbmd0aCBhc3NlcnRzKSAzKSkKKyAgICAgIChzaG91bGQgKGVxdWFs IGFzc2VydHMKKyAgICAgICAgICAgICAgICAgICAgICcoKDpsaW5lLWNoZWNrZWQgMiAgOmxpbmUt YXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDMgOmZhY2UgImZhY2UxIiA6bmVnYXRpb24gbmlsKQor ICAgICAgICAgICAgICAgICAgICAgICAoOmxpbmUtY2hlY2tlZCA0ICA6bGluZS1hc3NlcnQgNSA6 Y29sdW1uLWNoZWNrZWQgMyA6ZmFjZSAiZmFjZTIiIDpuZWdhdGlvbiBuaWwpCisgICAgICAgICAg ICAgICAgICAgICAgICg6bGluZS1jaGVja2VkIDQgIDpsaW5lLWFzc2VydCA2IDpjb2x1bW4tY2hl Y2tlZCA1IDpmYWNlICJmYWNlMyIgOm5lZ2F0aW9uIG5pbCkpKSkpKSkKKworCisoZXJ0LWRlZnRl c3QgdGVzdC1wYXJzZS1jb21tZW50cy0tYXJyb3ctc2luZ2xlLWxpbmUtc2luZ2xlICgpCisgIChs ZXQqICgoc3RyICIKK2ZpcnN0CisvLyA8LSBmYWNlMQorIikKKyAgICAgICAgIGFzc2VydHMpCisg ICAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAgIChpbnNlcnQgc3RyKQorICAgICAgKGphdmFzY3Jp cHQtbW9kZSkKKworICAgICAgKHNldHEgYXNzZXJ0cyAoZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29t bWVudHMpKQorICAgICAgKHNob3VsZCAoZXFsIChsZW5ndGggYXNzZXJ0cykgMSkpCisgICAgICAo c2hvdWxkIChlcXVhbCAoY2FyIGFzc2VydHMpCisgICAgICAgICAgICAgICAgICAgICAnKDpsaW5l LWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQgMCA6ZmFjZSAiZmFjZTEi IDpuZWdhdGlvbiBuaWwpKSkpKSkKKworCisoZXJ0LWRlZnRlc3QgdGVzdC1wYXJzZS1jb21tZW50 cy1hcnJvdy1tdWx0aXBsZS1saW5lLXNpbmdsZSAoKQorICAobGV0KiAoKHN0ciAiCitmaXJzdAor Ly8gPC0gZmFjZTEKKyAgLy8gPC0gZmFjZTIKKyAgICAvLyA8LSBmYWNlMworIikKKyAgICAgICAg IGFzc2VydHMpCisgICAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAgIChpbnNlcnQgc3RyKQorICAg ICAgKGphdmFzY3JpcHQtbW9kZSkKKworICAgICAgKHNldHEgYXNzZXJ0cyAoZXJ0LWZvbnQtbG9j ay0tcGFyc2UtY29tbWVudHMpKQorICAgICAgKHNob3VsZCAoZXFsIChsZW5ndGggYXNzZXJ0cykg MykpCisgICAgICAoc2hvdWxkIChlcXVhbCBhc3NlcnRzCisgICAgICAgICAgICAgICAgICAgICAn KCg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDAgOmZhY2Ug ImZhY2UxIiA6bmVnYXRpb24gbmlsKQorICAgICAgICAgICAgICAgICAgICAgICAoOmxpbmUtY2hl Y2tlZCAyIDpsaW5lLWFzc2VydCA0IDpjb2x1bW4tY2hlY2tlZCAyIDpmYWNlICJmYWNlMiIgOm5l Z2F0aW9uIG5pbCkKKyAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgMiA6bGlu ZS1hc3NlcnQgNSA6Y29sdW1uLWNoZWNrZWQgNCA6ZmFjZSAiZmFjZTMiIDpuZWdhdGlvbiBuaWwp KSkpKSkpCisKKyhlcnQtZGVmdGVzdCB0ZXN0LXBhcnNlLWNvbW1lbnRzLS1ub24tYXNzZXJ0LWNv bW1lbnQtc2luZ2xlICgpCisgIChsZXQqICgoc3RyICIKKy8vIGZpcnN0CisvLyAgXiBjb21tZW50 LWZhY2UKKyIpCisgICAgICAgICBhc3NlcnRzKQorICAgICh3aXRoLXRlbXAtYnVmZmVyCisgICAg ICAoaW5zZXJ0IHN0cikKKyAgICAgIChqYXZhc2NyaXB0LW1vZGUpCisKKyAgICAgIChzZXRxIGFz c2VydHMgKGVydC1mb250LWxvY2stLXBhcnNlLWNvbW1lbnRzKSkKKyAgICAgIChzaG91bGQgKGVx bCAobGVuZ3RoIGFzc2VydHMpIDEpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGNhciBhc3NlcnRz KQorICAgICAgICAgICAgICAgICAgICAgJyg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDMg OmNvbHVtbi1jaGVja2VkIDQgOmZhY2UgImNvbW1lbnQtZmFjZSIgOm5lZ2F0aW9uIG5pbCkpKSkp KQorCisoZXJ0LWRlZnRlc3QgdGVzdC1wYXJzZS1jb21tZW50cy0tbm9uLWFzc2VydC1jb21tZW50 LW11bHRpcGxlICgpCisgIChsZXQqICgoc3RyICIKKy8vIGZpcnN0IHNlY29uZCB0aGlyZAorLy8g IF4gY29tbWVudC1mYWNlCisvLyAgICAgICAgXiBjb21tZW50LWZhY2UKKy8vICAgICAgICAgICAg ICAgIF4gY29tbWVudC1mYWNlCisiKQorICAgICAgICAgYXNzZXJ0cykKKyAgICAod2l0aC10ZW1w LWJ1ZmZlcgorICAgICAgKGluc2VydCBzdHIpCisgICAgICAoamF2YXNjcmlwdC1tb2RlKQorCisg ICAgICAoc2V0cSBhc3NlcnRzIChlcnQtZm9udC1sb2NrLS1wYXJzZS1jb21tZW50cykpCisgICAg ICAoc2hvdWxkIChlcWwgKGxlbmd0aCBhc3NlcnRzKSAzKSkKKyAgICAgIChzaG91bGQgKGVxdWFs IGFzc2VydHMKKyAgICAgICAgICAgICAgICAgICAgICcoKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1h c3NlcnQgMyA6Y29sdW1uLWNoZWNrZWQgNCA6ZmFjZSAiY29tbWVudC1mYWNlIiA6bmVnYXRpb24g bmlsKQorICAgICAgICAgICAgICAgICAgICAgICAoOmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFzc2Vy dCA0IDpjb2x1bW4tY2hlY2tlZCAxMCA6ZmFjZSAiY29tbWVudC1mYWNlIiA6bmVnYXRpb24gbmls KQorICAgICAgICAgICAgICAgICAgICAgICAoOmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCA1 IDpjb2x1bW4tY2hlY2tlZCAxOCA6ZmFjZSAiY29tbWVudC1mYWNlIiA6bmVnYXRpb24gbmlsKSkp KSkpKQorCisKKyhlcnQtZGVmdGVzdCB0ZXN0LXBhcnNlLWNvbW1lbnRzLS1tdWx0aWxpbmUtY29t bWVudC1zaW5nbGUgKCkKKyAgKGxldCogKChzdHIgIgorLyoKKyAgdGhpcyBpcyBhIGNvbW1lbnQK KyAgIF4gY29tbWVudC1mYWNlCisgKi8KKyIpCisgICAgICAgICBhc3NlcnRzKQorICAgICh3aXRo LXRlbXAtYnVmZmVyCisgICAgICAoaW5zZXJ0IHN0cikKKyAgICAgIChjLW1vZGUpCisKKyAgICAg IChzZXRxIGFzc2VydHMgKGVydC1mb250LWxvY2stLXBhcnNlLWNvbW1lbnRzKSkKKyAgICAgIChz aG91bGQgKGVxbCAobGVuZ3RoIGFzc2VydHMpIDEpKQorICAgICAgKHNob3VsZCAoZXF1YWwgKGNh ciBhc3NlcnRzKQorICAgICAgICAgICAgICAgICAgICAgJyg6bGluZS1jaGVja2VkIDMgOmxpbmUt YXNzZXJ0IDQgOmNvbHVtbi1jaGVja2VkIDMgOmZhY2UgImNvbW1lbnQtZmFjZSIgOm5lZ2F0aW9u IG5pbCkpKSkpKQorCisoZXJ0LWRlZnRlc3QgdGVzdC1wYXJzZS1jb21tZW50cy0tbXVsdGlsaW5l LWNvbW1lbnQtbXVsdGlwbGUgKCkKKyAgKGxldCogKChzdHIgIgorLyoKKyAgdGhpcyBpcyBhIGNv bW1lbnQKKyAgIF4gY29tbWVudC1mYWNlCisgIGFub3RoZXIgY29tbWVudAorICAgIF4gY29tbWVu dC1mYWNlCisgKi8KKyIpCisgICAgICAgICBhc3NlcnRzKQorICAgICh3aXRoLXRlbXAtYnVmZmVy CisgICAgICAoaW5zZXJ0IHN0cikKKyAgICAgIChjLW1vZGUpCisKKyAgICAgIChzZXRxIGFzc2Vy dHMgKGVydC1mb250LWxvY2stLXBhcnNlLWNvbW1lbnRzKSkKKyAgICAgIChzaG91bGQgKGVxbCAo bGVuZ3RoIGFzc2VydHMpIDIpKQorICAgICAgKHNob3VsZCAoZXF1YWwgYXNzZXJ0cworICAgICAg ICAgICAgICAgICAgICAgJygoOmxpbmUtY2hlY2tlZCAzIDpsaW5lLWFzc2VydCA0IDpjb2x1bW4t Y2hlY2tlZCAzIDpmYWNlICJjb21tZW50LWZhY2UiIDpuZWdhdGlvbiBuaWwpCisgICAgICAgICAg ICAgICAgICAgICAgICg6bGluZS1jaGVja2VkIDUgOmxpbmUtYXNzZXJ0IDYgOmNvbHVtbi1jaGVj a2VkIDQgOmZhY2UgImNvbW1lbnQtZmFjZSIgOm5lZ2F0aW9uIG5pbCkpKSkpKSkKKworOzs7IFN5 bnRheCBoaWdobGlnaHRpbmcgYXNzZXJ0aW9uIHRlc3RzCis7OworCisoZXJ0LWRlZnRlc3QgdGVz dC1zeW50YXgtaGlnaGxpZ2h0LWlubGluZS0tY2FyZXQtbXVsdGlwbGUtZmFjZXMgKCkKKyAgKGxl dCAoKHN0ciAiCit2YXIgYWJjID0gZnVuY3Rpb24oZCkgeworLy8gICBeIGZvbnQtbG9jay12YXJp YWJsZS1uYW1lLWZhY2UKKyAgICAvLyAgICAgICAgXiBmb250LWxvY2sta2V5d29yZC1mYWNlCisg ICAgLy8gICAgICAgICAgICAgXiBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlCit9OworCisi KSkKKyAgICAod2l0aC10ZW1wLWJ1ZmZlcgorICAgICAgKGluc2VydCBzdHIpCisgICAgICAoamF2 YXNjcmlwdC1tb2RlKQorICAgICAgKGZvbnQtbG9jay1lbnN1cmUpCisKKyAgICAgIChlcnQtZm9u dC1sb2NrLS1jaGVjay1mYWNlcworICAgICAgIChlcnQtZm9udC1sb2NrLS1wYXJzZS1jb21tZW50 cykpKSkpCisKKyhlcnQtZGVmdGVzdCB0ZXN0LXN5bnRheC1oaWdobGlnaHQtaW5saW5lLS1jYXJl dC13cm9uZy1mYWNlICgpCisgIChsZXQqICgoc3RyICIKK3ZhciBhYmMgPSBmdW5jdGlvbihkKSB7 CisvLyAgIF4gbm90LWEtZmFjZQorfTsKKyIpKQorICAgICh3aXRoLXRlbXAtYnVmZmVyCisgICAg ICAoaW5zZXJ0IHN0cikKKyAgICAgIChqYXZhc2NyaXB0LW1vZGUpCisgICAgICAoZm9udC1sb2Nr LWVuc3VyZSkKKworICAgICAgKHNob3VsZC1lcnJvciAoZXJ0LWZvbnQtbG9jay0tY2hlY2stZmFj ZXMKKyAgICAgICAgICAgICAgICAgICAgIChlcnQtZm9udC1sb2NrLS1wYXJzZS1jb21tZW50cykp KSkpKQorCisKKyhlcnQtZGVmdGVzdCB0ZXN0LXN5bnRheC1oaWdobGlnaHQtaW5saW5lLS1jb21t ZW50LWZhY2UgKCkKKyAgKGxldCogKChzdHIgIgorLy8gdGhpcyBpcyBhIGNvbW1lbnQKKy8vICAg XiBmb250LWxvY2stY29tbWVudC1mYWNlCisvLyAgICAgICBeIGZvbnQtbG9jay1jb21tZW50LWZh Y2UKKy8vICAgICAgICAgICAgXiBmb250LWxvY2stY29tbWVudC1mYWNlCisiKSkKKyAgICAod2l0 aC10ZW1wLWJ1ZmZlcgorICAgICAgKGluc2VydCBzdHIpCisgICAgICAoamF2YXNjcmlwdC1tb2Rl KQorICAgICAgKGZvbnQtbG9jay1lbnN1cmUpCisKKyAgICAgIChlcnQtZm9udC1sb2NrLS1jaGVj ay1mYWNlcworICAgICAgIChlcnQtZm9udC1sb2NrLS1wYXJzZS1jb21tZW50cykpKSkpCisKKwor KGVydC1kZWZ0ZXN0IHRlc3Qtc3ludGF4LWhpZ2hsaWdodC1pbmxpbmUtLW11bHRpbGluZS1jb21t ZW50LWZhY2UgKCkKKyAgKGxldCogKChzdHIgIgorLyoKKyAgdGhpcyBpcyBhIGNvbW1lbnQKKyAg IF4gZm9udC1sb2NrLWNvbW1lbnQtZmFjZQorICBhbm90aGVyIGNvbW1lbnQKKyAgbW9yZSBjb21t ZW50cworICAgIF4gZm9udC1sb2NrLWNvbW1lbnQtZmFjZQorICovCisiKSkKKyAgICAod2l0aC10 ZW1wLWJ1ZmZlcgorICAgICAgKGluc2VydCBzdHIpCisgICAgICAoYy1tb2RlKQorICAgICAgKGZv bnQtbG9jay1lbnN1cmUpCisKKyAgICAgIChlcnQtZm9udC1sb2NrLS1jaGVjay1mYWNlcworICAg ICAgIChlcnQtZm9udC1sb2NrLS1wYXJzZS1jb21tZW50cykpKSkpCisKKworKGVydC1kZWZ0ZXN0 IHRlc3QtZm9udC1sb2NrLXRlc3Qtc3RyaW5nLS1jb3JyZWN0ICgpCisgIChlcnQtZm9udC1sb2Nr LXRlc3Qtc3RyaW5nCisgICAiCit2YXIgYWJjID0gZnVuY3Rpb24oZCkgeworLy8gPC0gZm9udC1s b2NrLWtleXdvcmQtZmFjZQorLy8gICBeIGZvbnQtbG9jay12YXJpYWJsZS1uYW1lLWZhY2UKKyAg ICAvLyAgICAgICAgXiBmb250LWxvY2sta2V5d29yZC1mYWNlCisgICAgLy8gICAgICAgICAgICAg XiBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlCit9OworCisiCisgICAnamF2YXNjcmlwdC1t b2RlKSkKKworKGVydC1kZWZ0ZXN0IHRlc3QtZm9udC1sb2NrLXRlc3QtZmlsZS0tY29ycmVjdCAo KQorICAoZXJ0LWZvbnQtbG9jay10ZXN0LWZpbGUKKyAgIChlcnQtcmVzb3VyY2UtZmlsZSAiY29y cmVjdC5qcyIpCisgICAnamF2YXNjcmlwdC1tb2RlKSkKKworKGVydC1kZWZ0ZXN0IHRlc3QtZm9u dC1sb2NrLXRlc3QtZmlsZS0td3JvbmcgKCkKKyAgOmV4cGVjdGVkLXJlc3VsdCA6ZmFpbGVkCisg IChlcnQtZm9udC1sb2NrLXRlc3QtZmlsZQorICAgKGVydC1yZXNvdXJjZS1maWxlICJicm9rZW4u anMiKQorICAgJ2phdmFzY3JpcHQtbW9kZSkpCisKKzs7OyBNYWNybyB0ZXN0cworOzsKKworKGVy dC1mb250LWxvY2stZGVmdGVzdCB0ZXN0LW1hY3JvLXRlc3QtLWNvcnJlY3QtaGlnaGxpZ2h0aW5n CisgICAgZW1hY3MtbGlzcC1tb2RlCisgICIKKyhkZWZ1biBmdW4gKCkpCis7OyBeIGZvbnQtbG9j ay1rZXl3b3JkLWZhY2UKKzs7ICAgICAgXiBmb250LWxvY2stZnVuY3Rpb24tbmFtZS1mYWNlIikK KworKGVydC1mb250LWxvY2stZGVmdGVzdCB0ZXN0LW1hY3JvLXRlc3QtLWRvY3N0cmluZworICAg ICJBIHRlc3Qgd2l0aCBhIGRvY3N0cmluZy4iCisgIGVtYWNzLWxpc3AtbW9kZQorICAiCisoZGVm dW4gZnVuICgpKQorOzsgXiBmb250LWxvY2sta2V5d29yZC1mYWNlIgorICApCisKKyhlcnQtZm9u dC1sb2NrLWRlZnRlc3QgdGVzdC1tYWNyby10ZXN0LS1mYWlsaW5nCisgICAgIkEgZmFpbGluZyB0 ZXN0LiIKKyAgOmV4cGVjdGVkLXJlc3VsdCA6ZmFpbGVkCisgIGVtYWNzLWxpc3AtbW9kZQorICAi CisoZGVmdW4gZnVuICgpKQorOzsgXiB3cm9uZy1mYWNlIikKKworKGVydC1mb250LWxvY2stZGVm dGVzdC1maWxlIHRlc3QtbWFjcm8tdGVzdC0tZmlsZQorICAgICJUZXN0IHJlYWRpbmcgY29ycmVj dCBhc3NlcnRpb25zIGZyb20gYSBmaWxlIgorICBqYXZhc2NyaXB0LW1vZGUKKyAgImNvcnJlY3Qu anMiKQorCisoZXJ0LWZvbnQtbG9jay1kZWZ0ZXN0LWZpbGUgdGVzdC1tYWNyby10ZXN0LS1maWxl LWZhaWxpbmcKKyAgICAiVGVzdCByZWFkaW5nIHdyb25nIGFzc2VydGlvbnMgZnJvbSBhIGZpbGUi CisgIDpleHBlY3RlZC1yZXN1bHQgOmZhaWxlZAorICBqYXZhc2NyaXB0LW1vZGUKKyAgImJyb2tl bi5qcyIpCisKKzs7OyBlcnQtZm9udC1sb2NrLXRlc3RzLmVsIGVuZHMgaGVyZQotLQoyLjM0LjEK --000000000000cefb58060b129e56-- From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 01 22:51:34 2023 Received: (at submit) by debbugs.gnu.org; 2 Dec 2023 03:51:35 +0000 Received: from localhost ([127.0.0.1]:56464 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r9H2U-0001LU-HM for submit@debbugs.gnu.org; Fri, 01 Dec 2023 22:51:34 -0500 Received: from lists.gnu.org ([2001:470:142::17]:53026) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r9H2Q-0001LC-8U for submit@debbugs.gnu.org; Fri, 01 Dec 2023 22:51:33 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r9H2B-0005Xl-3B for bug-gnu-emacs@gnu.org; Fri, 01 Dec 2023 22:51:15 -0500 Received: from mail-pf1-x434.google.com ([2607:f8b0:4864:20::434]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1r9H28-00075S-Em; Fri, 01 Dec 2023 22:51:13 -0500 Received: by mail-pf1-x434.google.com with SMTP id d2e1a72fcca58-6cde14ff73bso2274593b3a.0; Fri, 01 Dec 2023 19:51:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701489070; x=1702093870; darn=gnu.org; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=LxgCHGIAAMBB2vRe20xuxs9Pg7ed4OHB/cmM4D/hHWE=; b=AvRepQuNdw5Oa7LKHwvgY9MYUmQw1wC6nTF8FK7mIxzKoDUSo1jsvkfvTpE6uu+sHR zjx8lfZdnbSXW9tOAnahNvX2OHizpv9wDaqqFEOQTmBgWTGQs5STwqvKT/841qays4iO OkAD43BxosnuvwOiyOD0bkl7XJEX6vQIyOdDxO3xo5cawGN0EJuCPkwiuCzt9ggp/QJk avEOcp72mVpN09T7K/672HlxrHLyTgoek3hqeSVmMl87z3nEIFhcKXMo+Fsl4nMWIXeR hhmxn9r2g8r9mo80rrGf0idilkZRCm3c2m7QsqFpF9BB4dLXTdckCMtepOUkCwH/L3NX Nuow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701489070; x=1702093870; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=LxgCHGIAAMBB2vRe20xuxs9Pg7ed4OHB/cmM4D/hHWE=; b=nJrx6mZeGIndZx/j40FXOmreUf8Ch9TQuduI/n/geKGEGQQqp4r0cziYPbk5qzbvxO em3GW0bptB3qPu8mZSo4yo0H6YbFmrZOBrCNBBIsyl0fwdDthTvbw/rgvgAGPmX7nMxf vBuD/gqxw0B1bZkFhoJSygWnbY5lAccOiGWHUIU6keTBYbGIBXNlUgZ7WAsLw+10D8wd 8HENHKISTt9YfIVqMQETClGcG6W//Gk3AZL7Y0B/PX9IZag85Ro2oCMKHmx4NWPd+Fmi CKq2W4fCm5r3wvUIyR6Js13qW3OfJvNKlK5Q4vS1v80z4088ltRcWbOJhyaCyvHusLY9 6TDA== X-Gm-Message-State: AOJu0Yw73jsfvBwBA+5EoMLgbz+h5GmS4+ZjcE+B/5cPfWACoteUfEtH xUD+keM0RF2i7Cu0rkul/EKuhWgqUcFFAA== X-Google-Smtp-Source: AGHT+IGUcOzGhQwQA7iIqmLMVFFecqbsI/l+teroDNYHilTR9Mh3jcvDBeJ155xQumKiczmbeZIvww== X-Received: by 2002:a05:6a00:1d0d:b0:6cd:fa15:8d86 with SMTP id a13-20020a056a001d0d00b006cdfa158d86mr654317pfx.2.1701489070262; Fri, 01 Dec 2023 19:51:10 -0800 (PST) Received: from [192.168.1.7] (cpe-172-117-161-177.socal.res.rr.com. [172.117.161.177]) by smtp.gmail.com with ESMTPSA id g17-20020aa78751000000b006cbb56d4e58sm3691132pfo.65.2023.12.01.19.51.09 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 01 Dec 2023 19:51:09 -0800 (PST) Message-ID: <54ebe33b-c0d5-499d-8c11-b2549fdc917a@gmail.com> Date: Fri, 1 Dec 2023 19:51:08 -0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#67460: [PATCH] Add ert-font-lock Content-Language: en-US To: bug-gnu-emacs@gnu.org, Dmitry Gutov , Eli Zaretskii References: From: Yuan Fu In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Received-SPF: pass client-ip=2607:f8b0:4864:20::434; envelope-from=casouri@gmail.com; helo=mail-pf1-x434.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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) On 11/26/23 10:47 AM, Vladimir Kazanov wrote: > As suggested in emacs-devel@ [1], this patch adds ert-lont-lock.el to > Emacs. Ert-font-lock is an extension to ERT providing an easy way to > check font faces either in inline strings or resource files. > > The assertion syntax is based on Tree-sitter's syntax highlighter unit > tests [2]. This makes it easy to port existing tree-sitter grammar > tests to support both new-style ts-based major modes and the > traditional ones. > > [1] https://lists.gnu.org/archive/html/emacs-devel/2023-11/msg00867.html > [2] https://tree-sitter.github.io/tree-sitter/syntax-highlighting#unit-testing Thanks for working on this, this is fantastic! I had a cursory look and it is very well written. It will be a great boon to the tree-sitter modes, which don't have tests for font-locking right now. Yuan From debbugs-submit-bounces@debbugs.gnu.org Sat Dec 02 07:50:49 2023 Received: (at 67460) by debbugs.gnu.org; 2 Dec 2023 12:50:49 +0000 Received: from localhost ([127.0.0.1]:56857 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r9PSL-0006Gi-8X for submit@debbugs.gnu.org; Sat, 02 Dec 2023 07:50:49 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:33022) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r9PSJ-0006GT-M0 for 67460@debbugs.gnu.org; Sat, 02 Dec 2023 07:50:48 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r9PS4-0004zh-OP; Sat, 02 Dec 2023 07:50:32 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=xrKkM3o4qwBw69b8aSA96Evd3oX5Pq9RNB6eVJ9/0K0=; b=k+uLdegs7p5F 7Mh31RtVSJIUK+gm62xVfetjEVODtC63V44K4m1T9n5X73wso5Xbp22IXkBjDSWWpShpAKPfqBNpj gcB13MCEvB9JYlUTaBi3EsWG0qpuBzk0WPfVzgwP5+lS4EAg/CBUYoSdh9Xib0YJf9diHNezyUOAL KJXKnbfey/20BT5RSJLUb6VeEKZfviwDOlAakJ7hgKUIqxiAJZ1mwd1Z0ej61JMZXSdWmfveJSZ41 KGDXgJRpSDImIf8yBiXxk39UuJMFVRlJ/HHVZ1YJaUCpgLVWkGf0PZR+HvLU1BK8KGARvV98gOyBk AfhR6D10gUlrV0AUso1zMw==; Date: Sat, 02 Dec 2023 14:50:17 +0200 Message-Id: <83h6l093au.fsf@gnu.org> From: Eli Zaretskii To: Vladimir Kazanov In-Reply-To: (message from Vladimir Kazanov on Sun, 26 Nov 2023 18:47:30 +0000) Subject: Re: bug#67460: [PATCH] Add ert-font-lock References: X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 67460 Cc: 67460@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Vladimir Kazanov > Date: Sun, 26 Nov 2023 18:47:30 +0000 > > As suggested in emacs-devel@ [1], this patch adds ert-lont-lock.el to > Emacs. Ert-font-lock is an extension to ERT providing an easy way to > check font faces either in inline strings or resource files. > > The assertion syntax is based on Tree-sitter's syntax highlighter unit > tests [2]. This makes it easy to port existing tree-sitter grammar > tests to support both new-style ts-based major modes and the > traditional ones. Thanks. Byte-compiling this I get two warnings: ELC emacs-lisp/ert-font-lock.elc In ert-font-lock--parse-macro-args: emacs-lisp/ert-font-lock.el:82:19: Warning: Unused lexical variable `keys' In ert-font-lock--comment-start-p: emacs-lisp/ert-font-lock.el:191:10: Warning: `derived-mode-p' called with 3 arguments, but accepts only 1 Could you please fix these and resubmit the patch? From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 03 04:52:15 2023 Received: (at 67460) by debbugs.gnu.org; 3 Dec 2023 09:52:15 +0000 Received: from localhost ([127.0.0.1]:59157 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r9j94-0008IH-4Q for submit@debbugs.gnu.org; Sun, 03 Dec 2023 04:52:15 -0500 Received: from mail-lf1-x12c.google.com ([2a00:1450:4864:20::12c]:48475) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r9j90-0008I2-Kq for 67460@debbugs.gnu.org; Sun, 03 Dec 2023 04:52:12 -0500 Received: by mail-lf1-x12c.google.com with SMTP id 2adb3069b0e04-50bf32c0140so218786e87.1 for <67460@debbugs.gnu.org>; Sun, 03 Dec 2023 01:52:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701597114; x=1702201914; darn=debbugs.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=ynAtRQKBm9071TvvIp6tpbak6+0a48IT3LJIbmwoqPU=; b=ixlHRdm5eX9kYcGAmcvT/zw0tcO8MOM+tM+9JZsyRPBHZPeeytLVXJBN5hFNbm6pGh DYMXQEZpa47TCsr2WfpmrYoT7V5QO/QdyqbcZvpdRaEqE43P7ckiaQd2jZP8Clve/kqm 6q8q2jqGkaNr/P6shP0ZxqYNNclOodP4xcQ40YQr9C+ur3VjHxIbxDbzZjHq4gUfA2X8 7/SXKx8PDuqlI/wS/iM8b/YQ0d4M165fx7KRr1tcjMc2CzM02eP5ZytyGH4qRRvl9BLI K9/JrBm3CDp8zrZuWgndOUH0AEA8A2W8Wd3m2DfTCjbOdxXZadMa8HyPzxbDYi1rTxhL u8Ww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701597114; x=1702201914; 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=ynAtRQKBm9071TvvIp6tpbak6+0a48IT3LJIbmwoqPU=; b=fxjKejzxwSTEgvP5ocomEf5EjHvdUneeLYOwTH1RAs/bIIYUhC2+uVzH6vBJX7c3Y3 do5OZnvd6+Xd+w4AMoMH6S6L9VCfpbpdaBZ3oog7j1fzzIDyPJEKsxdtTsSkZ9Bm36fR gw1nTKo3JZJEwYqniL+tEVIjBLRWj/d3K11RY18svEC8Qq3pMXi7vbgfj1BYsPak6HOl L0D3xjL39qBb2mA1lK6H8jbkbGZ7wV4HqZuTRtg50FolarlSR3H61noAGppcjS4WKkV8 pg6YExpKFglrk1Ah5H9HhbFnFrLe50Z1BAM4xu20keZ449LKEfAt/1qe2WxoQ0kKA9NG gHoA== X-Gm-Message-State: AOJu0YyLneBCYcOQ50bMbj8czQjtw62CiHrBE5YJ9X1Ly0w15iIlYpnU Kgpzme4VxlTPKeFe0x7SpHJB1TjGXWotIYaXuAugoWY= X-Google-Smtp-Source: AGHT+IForMikrNssWMF6VakJHZqx0LQxmDZFre1Glx4UfQFX09mZlAY77vN0nU33FodJOs6i7WsdTWlIO7DJyiOgbyk= X-Received: by 2002:a05:6512:1597:b0:50b:f0af:5605 with SMTP id bp23-20020a056512159700b0050bf0af5605mr371383lfb.102.1701597114356; Sun, 03 Dec 2023 01:51:54 -0800 (PST) MIME-Version: 1.0 References: <83h6l093au.fsf@gnu.org> In-Reply-To: <83h6l093au.fsf@gnu.org> From: Vladimir Kazanov Date: Sun, 3 Dec 2023 09:51:43 +0000 Message-ID: Subject: Re: bug#67460: [PATCH] Add ert-font-lock To: Eli Zaretskii Content-Type: multipart/mixed; boundary="0000000000008db8c1060b97f3d1" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 67460 Cc: 67460@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --0000000000008db8c1060b97f3d1 Content-Type: text/plain; charset="UTF-8" Hi Eli, Thanks for looking into this! Note to myself: I need to make byte-compiling into a habit. Anyway, warnings fixed, here's the updated patch. On Sat, 2 Dec 2023 at 12:50, Eli Zaretskii wrote: > > > From: Vladimir Kazanov > > Date: Sun, 26 Nov 2023 18:47:30 +0000 > > > > As suggested in emacs-devel@ [1], this patch adds ert-lont-lock.el to > > Emacs. Ert-font-lock is an extension to ERT providing an easy way to > > check font faces either in inline strings or resource files. > > > > The assertion syntax is based on Tree-sitter's syntax highlighter unit > > tests [2]. This makes it easy to port existing tree-sitter grammar > > tests to support both new-style ts-based major modes and the > > traditional ones. > > Thanks. > > Byte-compiling this I get two warnings: > > ELC emacs-lisp/ert-font-lock.elc > > In ert-font-lock--parse-macro-args: > emacs-lisp/ert-font-lock.el:82:19: Warning: Unused lexical variable `keys' > > In ert-font-lock--comment-start-p: > emacs-lisp/ert-font-lock.el:191:10: Warning: `derived-mode-p' called with 3 arguments, but accepts only 1 > > Could you please fix these and resubmit the patch? -- Regards, Vladimir Kazanov --0000000000008db8c1060b97f3d1 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Add-ert-font-lock.patch" Content-Disposition: attachment; filename="0001-Add-ert-font-lock.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lppasksp0 RnJvbSA0NTMxNWJmY2QyMjA4MTNhYWYwZjk4ZGM5ZjRiZWNjZGQyMDA0YmQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWbGFkaW1pciBLYXphbm92IDx2ZWthemFub3ZAZ21haWwuY29t PgpEYXRlOiBTdW4sIDI2IE5vdiAyMDIzIDExOjQ4OjE2ICswMDAwClN1YmplY3Q6IFtQQVRDSF0g QWRkIGVydC1mb250LWxvY2sKCkFkZCBlcnQtZm9udC1sb2NrIGFzIHdlbGwgYXMgdW5pdCB0ZXN0 cyBhbmQgdGVzdGluZyByZXNvdXJjZXMuCiogbGlzcC9lbWFjcy1saXNwL2VydC1mb250LWxvY2su ZWw6IHRoZSBsaWJyYXJ5IGl0c2VsZi4KKiB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9lcnQtZm9udC1s b2NrLXJlc291cmNlcy9icm9rZW4uanM6CiogdGVzdC9saXNwL2VtYWNzLWxpc3AvZXJ0LWZvbnQt bG9jay1yZXNvdXJjZXMvY29ycmVjdC5qczoKKiB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9lcnQtZm9u dC1sb2NrLXRlc3RzLmVsOiB1bml0IHRlc3RzLgotLS0KIGxpc3AvZW1hY3MtbGlzcC9lcnQtZm9u dC1sb2NrLmVsICAgICAgICAgICAgICB8IDM2NCArKysrKysrKysrKysrKwogLi4uL2VydC1mb250 LWxvY2stcmVzb3VyY2VzL2Jyb2tlbi5qcyAgICAgICAgIHwgICAzICsKIC4uLi9lcnQtZm9udC1s b2NrLXJlc291cmNlcy9jb3JyZWN0LmpzICAgICAgICB8ICAgMyArCiB0ZXN0L2xpc3AvZW1hY3Mt bGlzcC9lcnQtZm9udC1sb2NrLXRlc3RzLmVsICAgfCA0NjQgKysrKysrKysrKysrKysrKysrCiA0 IGZpbGVzIGNoYW5nZWQsIDgzNCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGlz cC9lbWFjcy1saXNwL2VydC1mb250LWxvY2suZWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0L2xp c3AvZW1hY3MtbGlzcC9lcnQtZm9udC1sb2NrLXJlc291cmNlcy9icm9rZW4uanMKIGNyZWF0ZSBt b2RlIDEwMDY0NCB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9lcnQtZm9udC1sb2NrLXJlc291cmNlcy9j b3JyZWN0LmpzCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdC9saXNwL2VtYWNzLWxpc3AvZXJ0LWZv bnQtbG9jay10ZXN0cy5lbAoKZGlmZiAtLWdpdCBhL2xpc3AvZW1hY3MtbGlzcC9lcnQtZm9udC1s b2NrLmVsIGIvbGlzcC9lbWFjcy1saXNwL2VydC1mb250LWxvY2suZWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZhMDJjZjdhY2M0Ci0tLSAvZGV2L251bGwKKysrIGIv bGlzcC9lbWFjcy1saXNwL2VydC1mb250LWxvY2suZWwKQEAgLTAsMCArMSwzNjQgQEAKKzs7OyBl cnQtZm9udC1sb2NrLmVsIC0tLSBFUlQgRm9udCBMb2NrICAgLSotIGxleGljYWwtYmluZGluZzog dCAtKi0KKworOzsgQ29weXJpZ2h0IChDKSAyMDIzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorCis7OyBBdXRob3I6IFZsYWRpbWlyIEthemFub3YKKzs7IEtleXdvcmRzOiBsaXNwLCB0 b29scworCis7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgRW1hY3MuCisKKzs7IEdOVSBFbWFj cyBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5 Cis7OyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieQorOzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVy IHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKzs7IChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCisKKzs7IEdOVSBFbWFjcyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorOzsgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKzs7IE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKzs7IEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKzs7IFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCis7OyBhbG9u ZyB3aXRoIEdOVSBFbWFjcy4gIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uCisKKzs7OyBDb21tZW50YXJ5OgorOzsKKzs7IEVSVCBGb250IExvY2sgaXMgYW4gZXh0 ZW5zaW9uIHRvIHRoZSBFbWFjcyBMaXNwIFJlZ3Jlc3Npb24gVGVzdAorOzsgbGlicmFyeSAoRVJU KSBwcm92aWRpbmcgYSBjb252ZW5pZW50IHdheSB0byBjaGVjayBzeW50YXgKKzs7IGhpZ2hsaWdo dGluZyBwcm92aWRlZCBieSBmb250LWxvY2suCis7OworOzsgZXJ0LWZvbnQtbG9jayBlbnRyeSBw b2ludHMgYXJlIGZ1bmN0aW9ucworOzsgYGVydC1mb250LWxvY2stdGVzdC1zdHJpbmcnIGFuZCBg ZXJ0LWZvbnQtbG9jay10ZXN0LWZpbGUnIGFuZAorOzsgY292ZW5pZW5jZSBtYWNyb3M6IGBlcnQt Zm9udC1sb2NrLWRlZnRlc3QnIGFuZAorOzsgYGVydC1mb250LWxvY2stZGVmdGVzdC1maWxlJy4K Kzs7Cis7OyBTZWUgdW5pdCB0ZXN0cyBpbiBlcnQtZm9udC1sb2NrLXRlc3RzLmVsIGZvciB1c2Fn ZSBleGFtcGxlcy4KKworOzs7IENvZGU6CisKKyhyZXF1aXJlICdlcnQpCisocmVxdWlyZSAnbmV3 Y29tbWVudCkKKyhyZXF1aXJlICdwY2FzZSkKKworKGRlZmNvbnN0IGVydC1mb250LWxvY2stLWFz c2VydGlvbi1yZQorICAocngKKyAgIDs7IGNvbHVtbiBzcGVjaWZpZXJzCisgICAoZ3JvdXAgKG9y ICJeIiAiPC0iKSkKKyAgIChvbmUtb3ItbW9yZSAiICIpCisgICA7OyBvcHRpb25hbCBuZWdhdGlv biBvZiB0aGUgZmFjZSBzcGVjaWZpY2F0aW9uCisgICAoZ3JvdXAgKG9wdGlvbmFsICIhIikpCisg ICA7OyBmYWNlIHN5bWJvbCBuYW1lCisgICAoZ3JvdXAgKG9uZS1vci1tb3JlIChvciBhbHBoYW51 bWVyaWMgIi0iICJfIiAiLiIpKSkpCisgICJBbiBlcnQtZm9udC1sb2NrIGFzc2VydGlvbiByZWdl eC4iKQorCisoZGVmdW4gZXJ0LWZvbnQtbG9jay0tdmFsaWRhdGUtbWFqb3ItbW9kZSAobW9kZSkK KyAgIlZhbGlkYXRlIGlmIE1PREUgaXMgYSB2YWxpZCBtYWpvciBtb2RlLiIKKyAgKHVubGVzcyAo ZnVuY3Rpb25wIG1vZGUpCisgICAgKGVycm9yICJJbnZhbGlkIG1ham9yIG1vZGU6ICVTLiBQbGVh c2Ugc3BlY2lmeSBhIHZhbGlkIG1ham9yIG1vZGUgZm9yCisgc3ludGF4IGhpZ2hsaWdodGluZyB0 ZXN0cyIgbW9kZSkpKQorCisoZGVmdW4gZXJ0LWZvbnQtbG9jay0tdGVzdC1ib2R5LXN0ciAobW9k ZSBzdHIgdGVzdC1uYW1lKQorICAiUnVuIGFzc2VydGlvbnMgZnJvbSBTVFIuCitBcmd1bWVudCBN T0RFIC0gbWFqb3IgbW9kZSB0byB0ZXN0LgorQXJndW1lbnQgVEVTVC1OQU1FIC0gbmFtZSBvZiB0 aGUgY3VycmVudGx5IHJ1bm5pbmcgZXJ0IHRlc3QuIgorICAoZXJ0LWZvbnQtbG9jay0tdmFsaWRh dGUtbWFqb3ItbW9kZSBtb2RlKQorICAod2l0aC10ZW1wLWJ1ZmZlcgorICAgIChpbnNlcnQgc3Ry KQorICAgIChmdW5jYWxsIG1vZGUpCisgICAgKGZvbnQtbG9jay1lbnN1cmUpCisgICAgKGxldCAo KHRlc3RzIChlcnQtZm9udC1sb2NrLS1wYXJzZS1jb21tZW50cykpKQorICAgICAgKGVydC1mb250 LWxvY2stLWNoZWNrLWZhY2VzIHRlc3RzKSkpCisgIHRlc3QtbmFtZSkKKworKGRlZnVuIGVydC1m b250LWxvY2stLXRlc3QtYm9keS1maWxlIChtb2RlIGZpbGUgdGVzdC1uYW1lKQorICAiUnVuIGFz c2VydGlvbnMgZnJvbSBGSUxFLgorQXJndW1lbnQgTU9ERSAtIG1ham9yIG1vZGUgdG8gdGVzdC4K K0FyZ3VtZW50IFRFU1QtTkFNRSAtIG5hbWUgb2YgdGhlIGN1cnJlbnRseSBydW5uaW5nIGVydCB0 ZXN0LiIKKyAgKGVydC1mb250LWxvY2stLXZhbGlkYXRlLW1ham9yLW1vZGUgbW9kZSkKKyAgKGVy dC1mb250LWxvY2stdGVzdC1maWxlIGZpbGUgbW9kZSkKKyAgdGVzdC1uYW1lKQorCisoZGVmdW4g ZXJ0LWZvbnQtbG9jay0tcGFyc2UtbWFjcm8tYXJncyAoZG9jLWtleXMtbW9kZS1hcmcpCisgICJQ YXJzZSBET0MtS0VZUy1NT0RFLUFSRyBtYWNybyBhcmd1bWVudCBsaXN0LiIKKyAgKGxldCAoZG9j IGRvYy1wIG1vZGUgYXJnKQorCisgICAgKHdoZW4gKHN0cmluZ3AgKGNhciBkb2Mta2V5cy1tb2Rl LWFyZykpCisgICAgICAoc2V0cSBkb2MgKHBvcCBkb2Mta2V5cy1tb2RlLWFyZykKKyAgICAgICAg ICAgIGRvYy1wIHQpKQorCisgICAgKHBjYXNlLWxldAorICAgICAgICAoKGAoLGtleXMgLG1vZGUt YXJnKQorICAgICAgICAgIChlcnQtLXBhcnNlLWtleXMtYW5kLWJvZHkgZG9jLWtleXMtbW9kZS1h cmcpKSkKKworICAgICAgKHVubGVzcyAoc3ltYm9scCAoY2FyIG1vZGUtYXJnKSkKKyAgICAgICAg KGVycm9yICJBIG1ham9yIG1vZGUgc3ltYm9sIGV4cGVjdGVkOiAlUyIgKGNhciBtb2RlLWFyZykp KQorICAgICAgKHNldHEgbW9kZSAocG9wIG1vZGUtYXJnKSkKKworICAgICAgKHVubGVzcyAoc3Ry aW5ncCAoY2FyIG1vZGUtYXJnKSkKKyAgICAgICAgKGVycm9yICJBIHN0cmluZyBvciBmaWxlIHdp dGggYXNzZXJ0aW9ucyBleHBlY3RlZDogJVMiIChjYXIgbW9kZS1hcmcpKSkKKyAgICAgIChzZXRx IGFyZyAocG9wIG1vZGUtYXJnKSkKKworICAgICAgKGxpc3QgZG9jIGRvYy1wIGtleXMgbW9kZSBh cmcpKSkpCisKKzs7OyMjI2F1dG9sb2FkCisoZGVmbWFjcm8gZXJ0LWZvbnQtbG9jay1kZWZ0ZXN0 IChuYW1lICZyZXN0IGRvY3N0cmluZy1rZXlzLW1vZGUtYW5kLXN0cikKKyAgIkRlZmluZSB0ZXN0 IE5BTUUgKGEgc3ltYm9sKSB1c2luZyBhc3NlcnRpb25zIGZyb20gVEVTVC1TVFIuCisKK090aGVy IHRoYW4gTUFKT1ItTU9ERSBhbmQgVEVTVC1TVFIgcGFyYW1ldGVycywgdGhpcyBtYWNybyBhY2Nl cHRzCit0aGUgc2FtZSBwYXJhbWV0ZXJzIGFuZCBrZXl3b3JkcyBhcyBgZXJ0LWRlZnRlc3QnIGFu ZCBpcyBpbnRlbmRlZAordG8gYmUgdXNlZCB0aHJvdWdoIGBlcnQnLgorCitcKGZuIE5BTUUgKCkg W0RPQ1NUUklOR10gWzpleHBlY3RlZC1yZXN1bHQgUkVTVUxULVRZUEVdIFwKK1s6dGFncyBcXD0n KFRBRy4uLildIE1BSk9SLU1PREUgVEVTVC1TVFIpIgorICAoZGVjbGFyZSAoZGVidWcgKCZkZWZp bmUgWyZuYW1lICJ0ZXN0QCIgc3ltYm9scF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl eHAgWyZvcHRpb25hbCBzdHJpbmdwXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgWyZyZXN0 IGtleXdvcmRwIHNleHBdCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2xwCisgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmdwKSkKKyAgICAgICAgICAgKGRvYy1zdHJpbmcg MykKKyAgICAgICAgICAgKGluZGVudCAyKSkKKyAgKHBjYXNlLWxldCAoKGAoLGRvY3VtZW50YXRp b24KKyAgICAgICAgICAgICAgICAgLGRvY3VtZW50YXRpb24tc3VwcGxpZWQtcAorICAgICAgICAg ICAgICAgICAsa2V5cyAsbW9kZSAsYXJnKQorICAgICAgICAgICAgICAgKGVydC1mb250LWxvY2st LXBhcnNlLW1hY3JvLWFyZ3MgZG9jc3RyaW5nLWtleXMtbW9kZS1hbmQtc3RyKSkpCisKKyAgICBg KGVydC1zZXQtdGVzdCAnLG5hbWUKKyAgICAgICAgICAgICAgICAgICAobWFrZS1lcnQtdGVzdAor ICAgICAgICAgICAgICAgICAgICA6bmFtZSAnLG5hbWUKKyAgICAgICAgICAgICAgICAgICAgLEAo d2hlbiBkb2N1bWVudGF0aW9uLXN1cHBsaWVkLXAKKyAgICAgICAgICAgICAgICAgICAgICAgIGAo OmRvY3VtZW50YXRpb24gLGRvY3VtZW50YXRpb24pKQorICAgICAgICAgICAgICAgICAgICAsQCh3 aGVuIChtYXAtY29udGFpbnMta2V5IGtleXMgOmV4cGVjdGVkLXJlc3VsdCkKKyAgICAgICAgICAg ICAgICAgICAgICAgIGAoOmV4cGVjdGVkLXJlc3VsdC10eXBlICwobWFwLWVsdCBrZXlzIDpleHBl Y3RlZC1yZXN1bHQpKSkKKyAgICAgICAgICAgICAgICAgICAgLEAod2hlbiAobWFwLWNvbnRhaW5z LWtleSBrZXlzIDp0YWdzKQorICAgICAgICAgICAgICAgICAgICAgICAgYCg6dGFncyAsKG1hcC1l bHQga2V5cyA6dGFncykpKQorICAgICAgICAgICAgICAgICAgICA6Ym9keSAobGFtYmRhICgpIChl cnQtZm9udC1sb2NrLS10ZXN0LWJvZHktc3RyICcsbW9kZSAsYXJnICcsbmFtZSkpCisKKyAgICAg ICAgICAgICAgICAgICAgOmZpbGUtbmFtZSAsKG9yIChtYWNyb2V4cC1maWxlLW5hbWUpIGJ1ZmZl ci1maWxlLW5hbWUpKSkpKQorCis7OzsjIyNhdXRvbG9hZAorKGRlZm1hY3JvIGVydC1mb250LWxv Y2stZGVmdGVzdC1maWxlIChuYW1lICZyZXN0IGRvY3N0cmluZy1rZXlzLW1vZGUtYW5kLWZpbGUp CisgICJEZWZpbmUgdGVzdCBOQU1FIChhIHN5bWJvbCkgdXNpbmcgYXNzZXJ0aW9ucyBmcm9tIEZJ TEUuCisKK0ZJTEUgLSBwYXRoIHRvIGEgZmlsZSB3aXRoIGFzc2VydGlvbnMgaW4gRVJUIHJlc291 cmNlIGRpcmVjdG9yIGFzCityZXR1cm4gYnkgYGVydC1yZXNvdXJjZS1kaXJlY3RvcnknLgorCitP dGhlciB0aGFuIE1BSk9SLU1PREUgYW5kIEZJTEUgcGFyYW1ldGVycywgdGhpcyBtYWNybyBhY2Nl cHRzIHRoZQorc2FtZSBwYXJhbWV0ZXJzIGFuZCBrZXl3b3JkcyBhcyBgZXJ0LWRlZnRlc3QnIGFu ZCBpcyBpbnRlbmRlZCB0bworYmUgdXNlZCB0aHJvdWdoIGBlcnQnLgorCitcKGZuIE5BTUUgKCkg W0RPQ1NUUklOR10gWzpleHBlY3RlZC1yZXN1bHQgUkVTVUxULVRZUEVdIFwKK1s6dGFncyBcXD0n KFRBRy4uLildIE1BSk9SLU1PREUgRklMRSkiCisgIChkZWNsYXJlIChkZWJ1ZyAoJmRlZmluZSBb Jm5hbWUgInRlc3RAIiBzeW1ib2xwXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V4cCBb Jm9wdGlvbmFsIHN0cmluZ3BdCisgICAgICAgICAgICAgICAgICAgICAgICAgICBbJnJlc3Qga2V5 d29yZHAgc2V4cF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bWJvbHAKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cmluZ3ApKQorICAgICAgICAgICAoZG9jLXN0cmluZyAzKQor ICAgICAgICAgICAoaW5kZW50IDIpKQorCisgIChwY2FzZS1sZXQgKChgKCxkb2N1bWVudGF0aW9u CisgICAgICAgICAgICAgICAgICxkb2N1bWVudGF0aW9uLXN1cHBsaWVkLXAKKyAgICAgICAgICAg ICAgICAgLGtleXMgLG1vZGUgLGFyZykKKyAgICAgICAgICAgICAgIChlcnQtZm9udC1sb2NrLS1w YXJzZS1tYWNyby1hcmdzIGRvY3N0cmluZy1rZXlzLW1vZGUtYW5kLWZpbGUpKSkKKworICAgIGAo ZXJ0LXNldC10ZXN0ICcsbmFtZQorICAgICAgICAgICAgICAgICAgIChtYWtlLWVydC10ZXN0Cisg ICAgICAgICAgICAgICAgICAgIDpuYW1lICcsbmFtZQorICAgICAgICAgICAgICAgICAgICAsQCh3 aGVuIGRvY3VtZW50YXRpb24tc3VwcGxpZWQtcAorICAgICAgICAgICAgICAgICAgICAgICAgYCg6 ZG9jdW1lbnRhdGlvbiAsZG9jdW1lbnRhdGlvbikpCisgICAgICAgICAgICAgICAgICAgICxAKHdo ZW4gKG1hcC1jb250YWlucy1rZXkga2V5cyA6ZXhwZWN0ZWQtcmVzdWx0KQorICAgICAgICAgICAg ICAgICAgICAgICAgYCg6ZXhwZWN0ZWQtcmVzdWx0LXR5cGUgLChtYXAtZWx0IGtleXMgOmV4cGVj dGVkLXJlc3VsdCkpKQorICAgICAgICAgICAgICAgICAgICAsQCh3aGVuIChtYXAtY29udGFpbnMt a2V5IGtleXMgOnRhZ3MpCisgICAgICAgICAgICAgICAgICAgICAgICBgKDp0YWdzICwobWFwLWVs dCBrZXlzIDp0YWdzKSkpCisgICAgICAgICAgICAgICAgICAgIDpib2R5IChsYW1iZGEgKCkgKGVy dC1mb250LWxvY2stLXRlc3QtYm9keS1maWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAnLG1vZGUgKGVydC1yZXNvdXJjZS1maWxlICxhcmcpICcsbmFtZSkpCisgICAgICAgICAg ICAgICAgICAgIDpmaWxlLW5hbWUgLChvciAobWFjcm9leHAtZmlsZS1uYW1lKSBidWZmZXItZmls ZS1uYW1lKSkpKSkKKworKGRlZnVuIGVydC1mb250LWxvY2stLWluLWNvbW1lbnQtcCAoKQorICAi Q2hlY2sgaWYgdGhlIGN1cnJlbnQgcG9pbnQgaXMgaW5zaWRlIGEgY29tbWVudC4iCisgIChudGgg NCAoc3ludGF4LXBwc3MpKSkKKworKGRlZnVuIGVydC1mb250LWxvY2stLWNvbW1lbnQtc3RhcnQt cCAoKQorICAiQ2hlY2sgaWYgdGhlIGN1cnJlbnQgcG9pbnQgc3RhcnRzIGEgY29tbWVudC4iCisg IChvcgorICAgOzsgcmVnZXhwcyB1c2Ugc3ludGF4IHRhYmxlcyBzbyBsZXQncyBjaGVjayB0aGF0 IGZpcnN0CisgICAobG9va2luZy1hdCAiXFxzPCIpCisKKyAgIDs7IGNoZWNrIG5ld2NvbW1lbnQu ZWwgZmFjaWxpdGllcworICAgKGFuZCBjb21tZW50LXN0YXJ0IChsb29raW5nLWF0IChyZWdleHAt cXVvdGUgY29tbWVudC1zdGFydCkpKQorICAgKGFuZCBjb21tZW50LXN0YXJ0LXNraXAgKGxvb2tp bmctYXQgY29tbWVudC1zdGFydC1za2lwKSkKKworICAgOzsgc29tZXRpbWVzIGNvbW1lbnQgc3lu dGF4IGlzIGp1c3QgaGFyZGNvZGVkCisgICAoYW5kIChkZXJpdmVkLW1vZGUtcCAnKGMtbW9kZSBj KystbW9kZSBqYXZhLW1vZGUpKQorICAgICAgICAobG9va2luZy1hdC1wICIvLyIpKSkpCisKKyhk ZWZ1biBlcnQtZm9udC1sb2NrLS1saW5lLWNvbW1lbnQtcCAoKQorICAiUmV0dXJuIHQgaWYgdGhl IGN1cnJlbnQgbGluZSBpcyBhIGNvbW1lbnQtb25seSBsaW5lLiIKKyAgKHN5bnRheC1wcHNzKQor ICAoc2F2ZS1leGN1cnNpb24KKyAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCisgICAgKHNraXAtc3lu dGF4LWZvcndhcmQgIiAiKQorICAgIDs7IHNraXAgZW1wdHkgbGluZXMKKyAgICAodW5sZXNzIChl b2xwKQorICAgICAgKG9yCisgICAgICAgOzsgbXVsdGlsaW5lIGNvbW1lbnRzCisgICAgICAgKGVy dC1mb250LWxvY2stLWluLWNvbW1lbnQtcCkKKworICAgICAgIDs7IHNpbmdsZSBsaW5lIGNvbW1l bnRzCisgICAgICAgKGVydC1mb250LWxvY2stLWNvbW1lbnQtc3RhcnQtcCkpKSkpCisKKyhkZWZ1 biBlcnQtZm9udC1sb2NrLS1saW5lLWFzc2VydGlvbi1wICgpCisgICJSZXR1cm4gdCBpZiB0aGUg Y3VycmVudCBsaW5lIGNvbnRhaW5zIGFuIGFzc2VydGlvbi4iCisgIChzeW50YXgtcHBzcykKKyAg KHNhdmUtZXhjdXJzaW9uCisgICAgKGJlZ2lubmluZy1vZi1saW5lKQorICAgIChza2lwLXN5bnRh eC1mb3J3YXJkICIgIikKKyAgICAocmUtc2VhcmNoLWZvcndhcmQgZXJ0LWZvbnQtbG9jay0tYXNz ZXJ0aW9uLXJlCisgICAgICAgICAgICAgICAgICAgICAgIChsaW5lLWVuZC1wb3NpdGlvbikgdCAx KSkpCisKKyhkZWZ1biBlcnQtZm9udC1sb2NrLS1nb3RvLWZpcnN0LWNoYXIgKCkKKyAgIk1vdmUg dGhlIHBvaW50IHRvIHRoZSBmaXJzdCBjaGFyYWN0ZXIuIgorICAoYmVnaW5uaW5nLW9mLWxpbmUp CisgIChza2lwLXN5bnRheC1mb3J3YXJkICIgIikpCisKKyhkZWZ1biBlcnQtZm9udC1sb2NrLS1n ZXQtZmlyc3QtY2hhci1jb2x1bW4gKCkKKyAgIkdldCB0aGUgcG9zaXRpb24gb2YgdGhlIGZpcnN0 IG5vbi1lbXB0eSBjaGFyIGluIHRoZSBjdXJyZW50IGxpbmUuIgorICAoc2F2ZS1leGN1cnNpb24K KyAgICAoZXJ0LWZvbnQtbG9jay0tZ290by1maXJzdC1jaGFyKQorICAgICgtIChwb2ludCkgKGxp bmUtYmVnaW5uaW5nLXBvc2l0aW9uKSkpKQorCisoZGVmdW4gZXJ0LWZvbnQtbG9jay0tcGFyc2Ut Y29tbWVudHMgKCkKKyAgIlJlYWQgdGVzdCBhc3NlcnRpb25zIGZyb20gY29tbWVudHMgaW4gdGhl IGN1cnJlbnQgYnVmZmVyLiIKKyAgKGxldCAoKHRlc3RzICcoKSkKKyAgICAgICAgKGN1cmxpbmUg MSkKKyAgICAgICAgKGxpbmV0b2NoZWNrIC0xKSkKKworICAgIChnb3RvLWNoYXIgKHBvaW50LW1p bikpCisKKyAgICA7OyBHbyB0aHJvdWdoIGFsbCBsaW5lcywgZm9yIGNvbW1lbnRzIGNoZWNrIGlm IHRoZXJlIGFyZQorICAgIDs7IGFzc2VydGlvbnMuIEZvciBub24tY29tbWVudCBhbmQgY29tbWVu dC9ub24tYXNzZXJ0IGxpbmVzCisgICAgOzsgcmVtZW1iZXIgdGhlIGxhc3QgbGluZSBzZWVuLgor ICAgICh3aGlsZSAobm90IChlb2JwKSkKKyAgICAgIChjYXRjaCAnbmV4dGxpbmUKKworICAgICAg ICA7OyBOb3QgYSBjb21tZW50PyByZW1lbWJlciB0aGUgbGluZSwgbW92ZSB0byB0aGUgbmV4dCBv bmUKKyAgICAgICAgKHVubGVzcyAoZXJ0LWZvbnQtbG9jay0tbGluZS1jb21tZW50LXApCisgICAg ICAgICAgKHNldHEgbGluZXRvY2hlY2sgY3VybGluZSkKKyAgICAgICAgICAodGhyb3cgJ25leHRs aW5lIHQpKQorCisgICAgICAgIDs7IEEgY29tbWVudC4gTm90IGFuIGFzc2VydGlvbj8gcmVtZW1i ZXIgdGhlIGxpbmUgdG8gYmUKKyAgICAgICAgOzsgY2hlY2tlZCwgbW92ZSB0byB0aGUgbmV4dCBs aW5lCisgICAgICAgICh1bmxlc3MgKGVydC1mb250LWxvY2stLWxpbmUtYXNzZXJ0aW9uLXApCisg ICAgICAgICAgKHNldHEgbGluZXRvY2hlY2sgY3VybGluZSkKKyAgICAgICAgICAodGhyb3cgJ25l eHRsaW5lIHQpKQorCisKKyAgICAgICAgOzsgQ29sbGVjdCB0aGUgYXNzZXJ0aW9uCisgICAgICAg ICh3aGVuIChyZS1zZWFyY2gtZm9yd2FyZCBlcnQtZm9udC1sb2NrLS1hc3NlcnRpb24tcmUKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lLWVuZC1wb3NpdGlvbikgdCAxKQor CisgICAgICAgICAgKHVubGVzcyAoPiBsaW5ldG9jaGVjayAtMSkKKyAgICAgICAgICAgICh1c2Vy LWVycm9yICJJbnZhbGlkIHRlc3QgY29tbWVudCBzeW50YXggYXQgbGluZSAlZC4gRXhwZWN0ZWQg YSBsaW5lIHRvIHRlc3QgYmVmb3JlIHRoZSBjb21tZW50IGxpbmUiIGN1cmxpbmUpKQorCisgICAg ICAgICAgOzsgY29uc3RydWN0IGEgdGVzdAorICAgICAgICAgIChsZXQqICg7OyBlaXRoZXIgY29t bWVudCBzdGFydCBjaGFyIGNvbHVtbiAoZm9yIGFycm93cykgb3IKKyAgICAgICAgICAgICAgICAg OzsgY2FyZXQgY29sdW1uCisgICAgICAgICAgICAgICAgIChjb2x1bW4tY2hlY2tlZCAoaWYgKGVx dWFsIChtYXRjaC1zdHJpbmctbm8tcHJvcGVydGllcyAxKSAiXiIpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKC0gKG1hdGNoLWJlZ2lubmluZyAxKSAobGluZS1iZWdpbm5p bmctcG9zaXRpb24pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJ0LWZv bnQtbG9jay0tZ2V0LWZpcnN0LWNoYXItY29sdW1uKSkpCisgICAgICAgICAgICAgICAgIDs7IG5l Z2F0ZSB0aGUgZmFjZT8KKyAgICAgICAgICAgICAgICAgKG5lZ2F0aW9uIChzdHJpbmctZXF1YWwg KG1hdGNoLXN0cmluZy1uby1wcm9wZXJ0aWVzIDIpICIhIikpCisgICAgICAgICAgICAgICAgIDs7 IHRoZSBmYWNlIHRoYXQgaXMgc3VwcG9zZWQgdG8gYmUgaW4gdGhlIHBvc2l0aW9uIHNwZWNpZmll ZAorICAgICAgICAgICAgICAgICAoZmFjZSAobWF0Y2gtc3RyaW5nLW5vLXByb3BlcnRpZXMgMykp KQorCisgICAgICAgICAgICAocHVzaCAobGlzdCA6bGluZS1jaGVja2VkIGxpbmV0b2NoZWNrCisg ICAgICAgICAgICAgICAgICAgICAgICA6bGluZS1hc3NlcnQgY3VybGluZQorICAgICAgICAgICAg ICAgICAgICAgICAgOmNvbHVtbi1jaGVja2VkIGNvbHVtbi1jaGVja2VkCisgICAgICAgICAgICAg ICAgICAgICAgICA6ZmFjZSBmYWNlCisgICAgICAgICAgICAgICAgICAgICAgICA6bmVnYXRpb24g bmVnYXRpb24pCisgICAgICAgICAgICAgICAgICB0ZXN0cykpKSkKKworICAgICAgOzsgbmV4dCBs aW5lCisgICAgICAoc2V0cSBjdXJsaW5lICgxKyBjdXJsaW5lKSkKKyAgICAgIChmb3J3YXJkLWxp bmUgMSkpCisKKyAgICAocmV2ZXJzZSB0ZXN0cykpKQorCisoZGVmdW4gZXJ0LWZvbnQtbG9jay0t cG9pbnQtYXQtbGluZS1hbmQtY29sdW1uIChsaW5lIGNvbHVtbikKKyAgIkdldCB0aGUgYnVmZmVy IHBvc2l0aW9uIGZvciBMSU5FIGFuZCBDT0xVTU4uIgorICAoc2F2ZS1leGN1cnNpb24KKyAgICAo Z290by1jaGFyIChwb2ludC1taW4pKQorICAgIChmb3J3YXJkLWxpbmUgKDEtIGxpbmUpKQorICAg IChtb3ZlLXRvLWNvbHVtbiBjb2x1bW4pCisgICAgKHBvaW50KSkpCisKKyhkZWZ1biBlcnQtZm9u dC1sb2NrLS1nZXQtbGluZSAobGluZS1udW1iZXIpCisgICJSZXR1cm4gdGhlIGNvbnRlbnQgb2Yg dGhlIGxpbmUgc3BlY2lmaWVkIGJ5IExJTkUtTlVNQkVSLiIKKyAgKHNhdmUtZXhjdXJzaW9uCisg ICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKKyAgICAoZm9yd2FyZC1saW5lICgxLSBsaW5lLW51 bWJlcikpCisgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGllcyAobGluZS1iZWdpbm5p bmctcG9zaXRpb24pIChsaW5lLWVuZC1wb3NpdGlvbikpKSkKKworKGRlZnVuIGVydC1mb250LWxv Y2stLWNoZWNrLWZhY2VzICh0ZXN0cykKKyAgIkNoZWNrIGlmIHRoZSBjdXJyZW50IGJ1ZmZlciBp cyBmb250aWZpZWQgY29ycmVjdGx5LgorVEVTVFMgLSB0ZXN0cyB0byBydW4uCisKK1RoZSBmdW5j dGlvbiBpcyBtZWFudCB0byBiZSBydW4gZnJvbSB3aXRoaW4gYW4gRVJUIHRlc3QuIgorICAoZG9s aXN0ICh0ZXN0IHRlc3RzKQorICAgIChsZXQqICgobGluZS1jaGVja2VkIChwbGlzdC1nZXQgdGVz dCA6bGluZS1jaGVja2VkKSkKKyAgICAgICAgICAgKGxpbmUtYXNzZXJ0IChwbGlzdC1nZXQgdGVz dCA6bGluZS1hc3NlcnQpKQorICAgICAgICAgICAoY29sdW1uLWNoZWNrZWQgKHBsaXN0LWdldCB0 ZXN0IDpjb2x1bW4tY2hlY2tlZCkpCisgICAgICAgICAgIChleHBlY3RlZC1mYWNlIChpbnRlcm4g KHBsaXN0LWdldCB0ZXN0IDpmYWNlKSkpCisgICAgICAgICAgIChuZWdhdGlvbiAocGxpc3QtZ2V0 IHRlc3QgOm5lZ2F0aW9uKSkKKworICAgICAgICAgICAoYWN0dWFsLWZhY2UgKGdldC10ZXh0LXBy b3BlcnR5IChlcnQtZm9udC1sb2NrLS1wb2ludC1hdC1saW5lLWFuZC1jb2x1bW4gbGluZS1jaGVj a2VkIGNvbHVtbi1jaGVja2VkKSAnZmFjZSkpCisgICAgICAgICAgIChsaW5lLXN0ciAoZXJ0LWZv bnQtbG9jay0tZ2V0LWxpbmUgbGluZS1jaGVja2VkKSkKKyAgICAgICAgICAgKGxpbmUtYXNzZXJ0 LXN0ciAoZXJ0LWZvbnQtbG9jay0tZ2V0LWxpbmUgbGluZS1hc3NlcnQpKSkKKworICAgICAgKHdo ZW4gKG5vdCAoZXEgYWN0dWFsLWZhY2UgZXhwZWN0ZWQtZmFjZSkpCisgICAgICAgIChlcnQtZmFp bAorICAgICAgICAgKGxpc3QgKGZvcm1hdCAiRXhwZWN0ZWQgZmFjZSAlUywgZ290ICVTIG9uIGxp bmUgJWQgY29sdW1uICVkIgorICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZC1mYWNlIGFj dHVhbC1mYWNlIGxpbmUtY2hlY2tlZCBjb2x1bW4tY2hlY2tlZCkKKyAgICAgICAgICAgICAgIDps aW5lIGxpbmUtc3RyCisgICAgICAgICAgICAgICA6YXNzZXJ0IGxpbmUtYXNzZXJ0LXN0cikpKQor CisgICAgICAod2hlbiAoYW5kIG5lZ2F0aW9uIChlcSBhY3R1YWwtZmFjZSBleHBlY3RlZC1mYWNl KSkKKyAgICAgICAgKGVydC1mYWlsCisgICAgICAgICAobGlzdCAoZm9ybWF0ICJEaWQgbm90IGV4 cGVjdCBmYWNlICVTIGZhY2Ugb24gbGluZSAlZCwgY29sdW1uICVkIgorICAgICAgICAgICAgICAg ICAgICAgICBhY3R1YWwtZmFjZSBsaW5lLWNoZWNrZWQgY29sdW1uLWNoZWNrZWQpCisgICAgICAg ICAgICAgICA6bGluZSBsaW5lLXN0cgorICAgICAgICAgICAgICAgOmFzc2VydCBsaW5lLWFzc2Vy dC1zdHIpKSkpKSkKKworOzs7IyMjYXV0b2xvYWQKKyhkZWZ1biBlcnQtZm9udC1sb2NrLXRlc3Qt c3RyaW5nICh0ZXN0LXN0cmluZyBtb2RlKQorICAiQ2hlY2sgZm9udCBmYWNlcyBpbiBURVNULVNU UklORyBzZXQgYnkgTU9ERS4KKworVGhlIGZ1bmN0aW9uIGlzIG1lYW50IHRvIGJlIHJ1biBmcm9t IHdpdGhpbiBhbiBFUlQgdGVzdC4iCisgIChlcnQtZm9udC1sb2NrLS12YWxpZGF0ZS1tYWpvci1t b2RlIG1vZGUpCisgICh3aXRoLXRlbXAtYnVmZmVyCisgICAgKGluc2VydCB0ZXN0LXN0cmluZykK KyAgICAoZnVuY2FsbCBtb2RlKQorICAgIChmb250LWxvY2stZW5zdXJlKQorCisgICAgKGVydC1m b250LWxvY2stLWNoZWNrLWZhY2VzIChlcnQtZm9udC1sb2NrLS1wYXJzZS1jb21tZW50cykpKQor CisgIChlcnQtcGFzcykpCisKKzs7OyMjI2F1dG9sb2FkCisoZGVmdW4gZXJ0LWZvbnQtbG9jay10 ZXN0LWZpbGUgKGZpbGVuYW1lIG1vZGUpCisgICJDaGVjayBmb250IGZhY2VzIGluIEZJTEVOQU1F IHNldCBieSBNT0RFLgorCitUaGUgZnVuY3Rpb24gaXMgbWVhbnQgdG8gYmUgcnVuIGZyb20gd2l0 aGluIGFuIEVSVCB0ZXN0LiIKKyAgKGVydC1mb250LWxvY2stLXZhbGlkYXRlLW1ham9yLW1vZGUg bW9kZSkKKyAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAoaW5zZXJ0LWZpbGUtY29udGVudHMgZmls ZW5hbWUpCisgICAgKGZ1bmNhbGwgbW9kZSkKKyAgICAoZm9udC1sb2NrLWVuc3VyZSkKKworICAg IChlcnQtZm9udC1sb2NrLS1jaGVjay1mYWNlcyAoZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVu dHMpKSkKKworICAoZXJ0LXBhc3MpKQorCisKKyhwcm92aWRlICdlcnQtZm9udC1sb2NrKQorCis7 OzsgZXJ0LWZvbnQtbG9jay5lbCBlbmRzIGhlcmUKZGlmZiAtLWdpdCBhL3Rlc3QvbGlzcC9lbWFj cy1saXNwL2VydC1mb250LWxvY2stcmVzb3VyY2VzL2Jyb2tlbi5qcyBiL3Rlc3QvbGlzcC9lbWFj cy1saXNwL2VydC1mb250LWxvY2stcmVzb3VyY2VzL2Jyb2tlbi5qcwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjljMWM1Y2NhODgKLS0tIC9kZXYvbnVsbAorKysgYi90 ZXN0L2xpc3AvZW1hY3MtbGlzcC9lcnQtZm9udC1sb2NrLXJlc291cmNlcy9icm9rZW4uanMKQEAg LTAsMCArMSwzIEBACit2YXIgYWJjID0gZnVuY3Rpb24oZCkgeworLy8gICBeIHdyb25nLWZhY2UK K307CmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvZW1hY3MtbGlzcC9lcnQtZm9udC1sb2NrLXJlc291 cmNlcy9jb3JyZWN0LmpzIGIvdGVzdC9saXNwL2VtYWNzLWxpc3AvZXJ0LWZvbnQtbG9jay1yZXNv dXJjZXMvY29ycmVjdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u NWU2MTRjNjQ3NTUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0L2xpc3AvZW1hY3MtbGlzcC9lcnQt Zm9udC1sb2NrLXJlc291cmNlcy9jb3JyZWN0LmpzCkBAIC0wLDAgKzEsMyBAQAordmFyIGFiYyA9 IGZ1bmN0aW9uKGQpIHsKKy8vICAgXiBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlCit9Owpk aWZmIC0tZ2l0IGEvdGVzdC9saXNwL2VtYWNzLWxpc3AvZXJ0LWZvbnQtbG9jay10ZXN0cy5lbCBi L3Rlc3QvbGlzcC9lbWFjcy1saXNwL2VydC1mb250LWxvY2stdGVzdHMuZWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjMzZWYwYzZlZWRlCi0tLSAvZGV2L251bGwKKysr IGIvdGVzdC9saXNwL2VtYWNzLWxpc3AvZXJ0LWZvbnQtbG9jay10ZXN0cy5lbApAQCAtMCwwICsx LDQ2NCBAQAorOzs7IGVydC1mb250LWxvY2stdGVzdHMuZWwgLS0tIEVSVCBGb250IExvY2sgdGVz dHMgIC0qLSBsZXhpY2FsLWJpbmRpbmc6IHQgLSotCisKKzs7IENvcHlyaWdodCAoQykgMjAyMyBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKworOzsgQXV0aG9yOiBWbGFkaW1pciBLYXph bm92CisKKzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBFbWFjcy4KKworOzsgR05VIEVtYWNz IGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkK Kzs7IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5Cis7OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIg dmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorOzsgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KKworOzsgR05VIEVtYWNzIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCis7OyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorOzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorOzsgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworOzsgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKzs7IGFsb25n IHdpdGggR05VIEVtYWNzLiAgSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvPi4KKworOzs7IENvbW1lbnRhcnk6CisKKzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEVSVCBG b250IExvY2ssIGFuIGV4dGVuc2lvbiB0byB0aGUgRW1hY3MgTGlzcAorOzsgUmVncmVzc2lvbiBU ZXN0IGxpYnJhcnkgKEVSVCkgcHJvdmlkaW5nIGEgY29udmVuaWVudCB3YXkgdG8gY2hlY2sKKzs7 IHN5bnRheCBoaWdobGlnaHRpbmcgcHJvdmlkZWQgYnkgZm9udC1sb2NrLgorOzsKKzs7IFNlZSBl cnQtZm9udC1sb2NrLmVsIGZvciBkZXRhaWxzLCBhbmQgYmVsb3cgZm9yIGV4YW1wbGUgdXNhZ2Ug b2YKKzs7IGVydC1mb250LWxvY2sgZmFjaWxpdGllcy4KKworKHJlcXVpcmUgJ2VydCkKKyhyZXF1 aXJlICdlcnQteCkKKyhyZXF1aXJlICdlcnQtZm9udC1sb2NrKQorCis7OzsgSGVscGVycworOzsK KworKGRlZm1hY3JvIHdpdGgtdGVtcC1idWZmZXItc3RyLW1vZGUgKG1vZGUgc3RyICZyZXN0IGJv ZHkpCisgICJDcmVhdGUgYSBidWZmZXIgd2l0aCBTVFIgY29udGVudHMgYW5kIE1PREUuICIKKyAg KGRlY2xhcmUgKGluZGVudCAxKSAoZGVidWcgdCkpCisgIGAod2l0aC10ZW1wLWJ1ZmZlcgorICAg ICAoaW5zZXJ0ICxzdHIpCisgICAgICgsbW9kZSkKKyAgICAgKGdvdG8tY2hhciAocG9pbnQtbWlu KSkKKyAgICAgLEBib2R5KSkKKworOzs7IENvbW1lbnQgcGFyc2luZyB0ZXN0cworOzsKKworKGVy dC1kZWZ0ZXN0IHRlc3QtbGluZS1jb21tZW50LXAtLWZ1bmRhbWVudGFsICgpCisgICh3aXRoLXRl bXAtYnVmZmVyLXN0ci1tb2RlIGZ1bmRhbWVudGFsLW1vZGUKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIi8vIGNvbW1lbnRcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNo b3VsZC1ub3QgKGVydC1mb250LWxvY2stLWxpbmUtY29tbWVudC1wKSkpKQorCisoZXJ0LWRlZnRl c3QgdGVzdC1saW5lLWNvbW1lbnQtcC0tZW1hY3MtbGlzcCAoKQorICAod2l0aC10ZW1wLWJ1ZmZl ci1zdHItbW9kZSBlbWFjcy1saXNwLW1vZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Im5vdCBjb21tZW50Cis7OyBjb21tZW50CisiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChzaG91bGQtbm90IChlcnQtZm9udC1sb2NrLS1saW5lLWNvbW1lbnQtcCkpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChmb3J3YXJkLWxpbmUpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChzaG91bGQgKGVydC1mb250LWxvY2stLWxpbmUtY29tbWVudC1wKSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGZvcndhcmQtbGluZSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKHNob3VsZC1ub3QgKGVydC1mb250LWxvY2stLWxpbmUtY29tbWVudC1wKSkpKQor CisoZXJ0LWRlZnRlc3QgdGVzdC1saW5lLWNvbW1lbnQtcC0tc2hlbGwtc2NyaXB0ICgpCisgICh3 aXRoLXRlbXAtYnVmZmVyLXN0ci1tb2RlIHNoZWxsLXNjcmlwdC1tb2RlCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJlY2hvIE5vdCBhIGNvbW1lbnQKKyMgY29tbWVudAorIgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoc2hvdWxkLW5vdCAoZXJ0LWZvbnQtbG9jay0tbGluZS1j b21tZW50LXApKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9yd2FyZC1saW5lKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2hvdWxkIChlcnQtZm9udC1sb2NrLS1saW5l LWNvbW1lbnQtcCkpKSkKKworKGRlY2xhcmUtZnVuY3Rpb24gcGhwLW1vZGUgInBocC1tb2RlIikK KyhlcnQtZGVmdGVzdCB0ZXN0LWxpbmUtY29tbWVudC1wLS1waHAgKCkKKyAgKHNraXAtdW5sZXNz IChmZWF0dXJlcCAncGhwLW1vZGUpKQorCisgICh3aXRoLXRlbXAtYnVmZmVyLXN0ci1tb2RlIHBo cC1tb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlY2hvICdOb3QgYSBjb21tZW50 JworLy8gY29tbWVudAorLyogY29tbWVudCAqLworIgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoc2hvdWxkLW5vdCAoZXJ0LWZvbnQtbG9jay0tbGluZS1jb21tZW50LXApKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoZm9yd2FyZC1saW5lKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoc2hvdWxkIChlcnQtZm9udC1sb2NrLS1saW5lLWNvbW1lbnQtcCkpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChmb3J3YXJkLWxpbmUpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChzaG91bGQgKGVydC1mb250LWxvY2stLWxpbmUtY29tbWVudC1wKSkpKQor CisKKyhlcnQtZGVmdGVzdCB0ZXN0LWxpbmUtY29tbWVudC1wLS1qYXZhc2NyaXB0ICgpCisgICh3 aXRoLXRlbXAtYnVmZmVyLXN0ci1tb2RlIGphdmFzY3JpcHQtbW9kZQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiLy8gY29tbWVudAorCisgICAvLyBjb21tZW50LCBhZnRlciBhIGJsYW5r IGxpbmUKKwordmFyIGFiYyA9IGZ1bmN0aW9uKGQpIHt9OworIgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoc2hvdWxkIChlcnQtZm9udC1sb2NrLS1saW5lLWNvbW1lbnQtcCkpCisKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcndhcmQtbGluZSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHNob3VsZC1ub3QgKGVydC1mb250LWxvY2stLWxpbmUtY29tbWVudC1w KSkKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9yd2FyZC1saW5lKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoc2hvdWxkIChlcnQtZm9udC1sb2NrLS1saW5lLWNvbW1l bnQtcCkpCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcndhcmQtbGluZSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNob3VsZC1ub3QgKGVydC1mb250LWxvY2stLWxp bmUtY29tbWVudC1wKSkKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9yd2FyZC1s aW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2hvdWxkLW5vdCAoZXJ0LWZvbnQt bG9jay0tbGluZS1jb21tZW50LXApKSkpCisKKyhlcnQtZGVmdGVzdCB0ZXN0LWxpbmUtY29tbWVu dC1wLS1weXRob24gKCkKKworICAod2l0aC10ZW1wLWJ1ZmZlci1zdHItbW9kZSBweXRob24tbW9k ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIyBjb21tZW50CisKKyAgICMgY29tbWVu dAorcHJpbnQoXCJIZWxsbywgd29ybGQhXCIpIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoc2hvdWxkIChlcnQtZm9udC1sb2NrLS1saW5lLWNvbW1lbnQtcCkpCisKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGZvcndhcmQtbGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHNob3VsZC1ub3QgKGVydC1mb250LWxvY2stLWxpbmUtY29tbWVudC1wKSkKKworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9yd2FyZC1saW5lKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoc2hvdWxkIChlcnQtZm9udC1sb2NrLS1saW5lLWNvbW1lbnQtcCkpCisK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcndhcmQtbGluZSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHNob3VsZC1ub3QgKGVydC1mb250LWxvY2stLWxpbmUtY29tbWVu dC1wKSkpKQorCisoZXJ0LWRlZnRlc3QgdGVzdC1saW5lLWNvbW1lbnQtcC0tYyAoKQorCisgICh3 aXRoLXRlbXAtYnVmZmVyLXN0ci1tb2RlIGMtbW9kZQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiLy8gY29tbWVudAorLyogYWxzbyBjb21tZW50ICovIgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoc2hvdWxkIChlcnQtZm9udC1sb2NrLS1saW5lLWNvbW1lbnQtcCkpCisKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcndhcmQtbGluZSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHNob3VsZCAoZXJ0LWZvbnQtbG9jay0tbGluZS1jb21tZW50LXApKSkp CisKKyhlcnQtZGVmdGVzdCB0ZXN0LXBhcnNlLWNvbW1lbnRzLS1zaW5nbGUtbGluZS1lcnJvciAo KQorICAobGV0KiAoKHN0ciAiLy8gXiBmYWNlLmZhY2UxIikpCisgICAgKHdpdGgtdGVtcC1idWZm ZXIKKyAgICAgIChpbnNlcnQgc3RyKQorICAgICAgKGphdmFzY3JpcHQtbW9kZSkKKworICAgICAg KHNob3VsZC1lcnJvciAoZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVudHMpKSkpKQorCisoZXJ0 LWRlZnRlc3QgdGVzdC1wYXJzZS1jb21tZW50cy0tc2luZ2xlLWxpbmUtc2luZ2xlLWNhcmV0ICgp CisgIChsZXQqICgoc3RyICIKK2ZpcnN0CisvLyBeIGZhY2UuZmFjZTEKKyIpCisgICAgICAgICBh c3NlcnRzKQorICAgICh3aXRoLXRlbXAtYnVmZmVyCisgICAgICAoaW5zZXJ0IHN0cikKKyAgICAg IChqYXZhc2NyaXB0LW1vZGUpCisKKyAgICAgIChzZXRxIGFzc2VydHMgKGVydC1mb250LWxvY2st LXBhcnNlLWNvbW1lbnRzKSkKKyAgICAgIChzaG91bGQgKGVxbCAobGVuZ3RoIGFzc2VydHMpIDEp KQorICAgICAgKHNob3VsZCAoZXF1YWwgKGNhciBhc3NlcnRzKQorICAgICAgICAgICAgICAgICAg ICAgJyg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDMgOmZh Y2UgImZhY2UuZmFjZTEiIDpuZWdhdGlvbiBuaWwpKSkpKSkKKworKGVydC1kZWZ0ZXN0IHRlc3Qt cGFyc2UtY29tbWVudHMtLWNhcmV0LW5lZ2F0aW9uICgpCisgIChsZXQqICgoc3RyICIKK2ZpcnN0 CisvLyBeICFmYWNlCisvLyBeIGZhY2UKKyIpCisgICAgICAgICBhc3NlcnRzKQorICAgICh3aXRo LXRlbXAtYnVmZmVyCisgICAgICAoaW5zZXJ0IHN0cikKKyAgICAgIChqYXZhc2NyaXB0LW1vZGUp CisKKyAgICAgIChzZXRxIGFzc2VydHMgKGVydC1mb250LWxvY2stLXBhcnNlLWNvbW1lbnRzKSkK KyAgICAgIChzaG91bGQgKGVxbCAobGVuZ3RoIGFzc2VydHMpIDIpKQorICAgICAgKHNob3VsZCAo ZXF1YWwgYXNzZXJ0cworICAgICAgICAgICAgICAgICAgICAgJygoOmxpbmUtY2hlY2tlZCAyIDps aW5lLWFzc2VydCAzIDpjb2x1bW4tY2hlY2tlZCAzIDpmYWNlICJmYWNlIiA6bmVnYXRpb24gdCkK KyAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgNCA6 Y29sdW1uLWNoZWNrZWQgMyA6ZmFjZSAiZmFjZSIgOm5lZ2F0aW9uIG5pbCkpKSkpKSkKKworCiso ZXJ0LWRlZnRlc3QgdGVzdC1wYXJzZS1jb21tZW50cy0tc2luZ2xlLWxpbmUtbXVsdGlwbGUtY2Fy ZXRzICgpCisgIChsZXQqICgoc3RyICIKK2ZpcnN0CisvLyBeIGZhY2UxCisvLyAgICAgXiBmYWNl LmZhY2UyCisvLyAgICAgXiBmYWNlLWZhY2UuZmFjZTMKKyAgIC8vICBeIGZhY2VfZmFjZS5mYWNl NAorIikKKyAgICAgICAgIGFzc2VydHMpCisKKyAgICAod2l0aC10ZW1wLWJ1ZmZlcgorICAgICAg KGluc2VydCBzdHIpCisgICAgICAoamF2YXNjcmlwdC1tb2RlKQorCisgICAgICAoc2V0cSBhc3Nl cnRzIChlcnQtZm9udC1sb2NrLS1wYXJzZS1jb21tZW50cykpCisgICAgICAoc2hvdWxkIChlcWwg KGxlbmd0aCBhc3NlcnRzKSA0KSkKKyAgICAgIChzaG91bGQgKGVxdWFsIGFzc2VydHMKKyAgICAg ICAgICAgICAgICAgICAgICcoKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgMyA6Y29sdW1u LWNoZWNrZWQgMyA6ZmFjZSAiZmFjZTEiIDpuZWdhdGlvbiBuaWwpCisgICAgICAgICAgICAgICAg ICAgICAgICg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDQgOmNvbHVtbi1jaGVja2VkIDcg OmZhY2UgImZhY2UuZmFjZTIiIDpuZWdhdGlvbiBuaWwpCisgICAgICAgICAgICAgICAgICAgICAg ICg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0IDUgOmNvbHVtbi1jaGVja2VkIDcgOmZhY2Ug ImZhY2UtZmFjZS5mYWNlMyIgOm5lZ2F0aW9uIG5pbCkKKyAgICAgICAgICAgICAgICAgICAgICAg KDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgNiA6Y29sdW1uLWNoZWNrZWQgNyA6ZmFjZSAi ZmFjZV9mYWNlLmZhY2U0IiA6bmVnYXRpb24gbmlsKSkpKSkpKQorCisoZXJ0LWRlZnRlc3QgdGVz dC1wYXJzZS1jb21tZW50cy0tbXVsdGlwbGUtbGluZS1tdWx0aXBsZS1jYXJldHMgKCkKKyAgKGxl dCogKChzdHIgIgorZmlyc3QKKy8vIF4gZmFjZTEKK3NlY29uZAorLy8gXiBmYWNlMgorLy8gICBe IGZhY2UzCit0aGlyZAorIikKKyAgICAgICAgIGFzc2VydHMpCisgICAgKHdpdGgtdGVtcC1idWZm ZXIKKyAgICAgIChpbnNlcnQgc3RyKQorICAgICAgKGphdmFzY3JpcHQtbW9kZSkKKworICAgICAg KHNldHEgYXNzZXJ0cyAoZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVudHMpKQorICAgICAgKHNo b3VsZCAoZXFsIChsZW5ndGggYXNzZXJ0cykgMykpCisgICAgICAoc2hvdWxkIChlcXVhbCBhc3Nl cnRzCisgICAgICAgICAgICAgICAgICAgICAnKCg6bGluZS1jaGVja2VkIDIgIDpsaW5lLWFzc2Vy dCAzIDpjb2x1bW4tY2hlY2tlZCAzIDpmYWNlICJmYWNlMSIgOm5lZ2F0aW9uIG5pbCkKKyAgICAg ICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgNCAgOmxpbmUtYXNzZXJ0IDUgOmNvbHVt bi1jaGVja2VkIDMgOmZhY2UgImZhY2UyIiA6bmVnYXRpb24gbmlsKQorICAgICAgICAgICAgICAg ICAgICAgICAoOmxpbmUtY2hlY2tlZCA0ICA6bGluZS1hc3NlcnQgNiA6Y29sdW1uLWNoZWNrZWQg NSA6ZmFjZSAiZmFjZTMiIDpuZWdhdGlvbiBuaWwpKSkpKSkpCisKKworKGVydC1kZWZ0ZXN0IHRl c3QtcGFyc2UtY29tbWVudHMtLWFycm93LXNpbmdsZS1saW5lLXNpbmdsZSAoKQorICAobGV0KiAo KHN0ciAiCitmaXJzdAorLy8gPC0gZmFjZTEKKyIpCisgICAgICAgICBhc3NlcnRzKQorICAgICh3 aXRoLXRlbXAtYnVmZmVyCisgICAgICAoaW5zZXJ0IHN0cikKKyAgICAgIChqYXZhc2NyaXB0LW1v ZGUpCisKKyAgICAgIChzZXRxIGFzc2VydHMgKGVydC1mb250LWxvY2stLXBhcnNlLWNvbW1lbnRz KSkKKyAgICAgIChzaG91bGQgKGVxbCAobGVuZ3RoIGFzc2VydHMpIDEpKQorICAgICAgKHNob3Vs ZCAoZXF1YWwgKGNhciBhc3NlcnRzKQorICAgICAgICAgICAgICAgICAgICAgJyg6bGluZS1jaGVj a2VkIDIgOmxpbmUtYXNzZXJ0IDMgOmNvbHVtbi1jaGVja2VkIDAgOmZhY2UgImZhY2UxIiA6bmVn YXRpb24gbmlsKSkpKSkpCisKKworKGVydC1kZWZ0ZXN0IHRlc3QtcGFyc2UtY29tbWVudHMtYXJy b3ctbXVsdGlwbGUtbGluZS1zaW5nbGUgKCkKKyAgKGxldCogKChzdHIgIgorZmlyc3QKKy8vIDwt IGZhY2UxCisgIC8vIDwtIGZhY2UyCisgICAgLy8gPC0gZmFjZTMKKyIpCisgICAgICAgICBhc3Nl cnRzKQorICAgICh3aXRoLXRlbXAtYnVmZmVyCisgICAgICAoaW5zZXJ0IHN0cikKKyAgICAgIChq YXZhc2NyaXB0LW1vZGUpCisKKyAgICAgIChzZXRxIGFzc2VydHMgKGVydC1mb250LWxvY2stLXBh cnNlLWNvbW1lbnRzKSkKKyAgICAgIChzaG91bGQgKGVxbCAobGVuZ3RoIGFzc2VydHMpIDMpKQor ICAgICAgKHNob3VsZCAoZXF1YWwgYXNzZXJ0cworICAgICAgICAgICAgICAgICAgICAgJygoOmxp bmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCAzIDpjb2x1bW4tY2hlY2tlZCAwIDpmYWNlICJmYWNl MSIgOm5lZ2F0aW9uIG5pbCkKKyAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQg MiA6bGluZS1hc3NlcnQgNCA6Y29sdW1uLWNoZWNrZWQgMiA6ZmFjZSAiZmFjZTIiIDpuZWdhdGlv biBuaWwpCisgICAgICAgICAgICAgICAgICAgICAgICg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNz ZXJ0IDUgOmNvbHVtbi1jaGVja2VkIDQgOmZhY2UgImZhY2UzIiA6bmVnYXRpb24gbmlsKSkpKSkp KQorCisoZXJ0LWRlZnRlc3QgdGVzdC1wYXJzZS1jb21tZW50cy0tbm9uLWFzc2VydC1jb21tZW50 LXNpbmdsZSAoKQorICAobGV0KiAoKHN0ciAiCisvLyBmaXJzdAorLy8gIF4gY29tbWVudC1mYWNl CisiKQorICAgICAgICAgYXNzZXJ0cykKKyAgICAod2l0aC10ZW1wLWJ1ZmZlcgorICAgICAgKGlu c2VydCBzdHIpCisgICAgICAoamF2YXNjcmlwdC1tb2RlKQorCisgICAgICAoc2V0cSBhc3NlcnRz IChlcnQtZm9udC1sb2NrLS1wYXJzZS1jb21tZW50cykpCisgICAgICAoc2hvdWxkIChlcWwgKGxl bmd0aCBhc3NlcnRzKSAxKSkKKyAgICAgIChzaG91bGQgKGVxdWFsIChjYXIgYXNzZXJ0cykKKyAg ICAgICAgICAgICAgICAgICAgICcoOmxpbmUtY2hlY2tlZCAyIDpsaW5lLWFzc2VydCAzIDpjb2x1 bW4tY2hlY2tlZCA0IDpmYWNlICJjb21tZW50LWZhY2UiIDpuZWdhdGlvbiBuaWwpKSkpKSkKKwor KGVydC1kZWZ0ZXN0IHRlc3QtcGFyc2UtY29tbWVudHMtLW5vbi1hc3NlcnQtY29tbWVudC1tdWx0 aXBsZSAoKQorICAobGV0KiAoKHN0ciAiCisvLyBmaXJzdCBzZWNvbmQgdGhpcmQKKy8vICBeIGNv bW1lbnQtZmFjZQorLy8gICAgICAgIF4gY29tbWVudC1mYWNlCisvLyAgICAgICAgICAgICAgICBe IGNvbW1lbnQtZmFjZQorIikKKyAgICAgICAgIGFzc2VydHMpCisgICAgKHdpdGgtdGVtcC1idWZm ZXIKKyAgICAgIChpbnNlcnQgc3RyKQorICAgICAgKGphdmFzY3JpcHQtbW9kZSkKKworICAgICAg KHNldHEgYXNzZXJ0cyAoZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVudHMpKQorICAgICAgKHNo b3VsZCAoZXFsIChsZW5ndGggYXNzZXJ0cykgMykpCisgICAgICAoc2hvdWxkIChlcXVhbCBhc3Nl cnRzCisgICAgICAgICAgICAgICAgICAgICAnKCg6bGluZS1jaGVja2VkIDIgOmxpbmUtYXNzZXJ0 IDMgOmNvbHVtbi1jaGVja2VkIDQgOmZhY2UgImNvbW1lbnQtZmFjZSIgOm5lZ2F0aW9uIG5pbCkK KyAgICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgNCA6 Y29sdW1uLWNoZWNrZWQgMTAgOmZhY2UgImNvbW1lbnQtZmFjZSIgOm5lZ2F0aW9uIG5pbCkKKyAg ICAgICAgICAgICAgICAgICAgICAgKDpsaW5lLWNoZWNrZWQgMiA6bGluZS1hc3NlcnQgNSA6Y29s dW1uLWNoZWNrZWQgMTggOmZhY2UgImNvbW1lbnQtZmFjZSIgOm5lZ2F0aW9uIG5pbCkpKSkpKSkK KworCisoZXJ0LWRlZnRlc3QgdGVzdC1wYXJzZS1jb21tZW50cy0tbXVsdGlsaW5lLWNvbW1lbnQt c2luZ2xlICgpCisgIChsZXQqICgoc3RyICIKKy8qCisgIHRoaXMgaXMgYSBjb21tZW50CisgICBe IGNvbW1lbnQtZmFjZQorICovCisiKQorICAgICAgICAgYXNzZXJ0cykKKyAgICAod2l0aC10ZW1w LWJ1ZmZlcgorICAgICAgKGluc2VydCBzdHIpCisgICAgICAoYy1tb2RlKQorCisgICAgICAoc2V0 cSBhc3NlcnRzIChlcnQtZm9udC1sb2NrLS1wYXJzZS1jb21tZW50cykpCisgICAgICAoc2hvdWxk IChlcWwgKGxlbmd0aCBhc3NlcnRzKSAxKSkKKyAgICAgIChzaG91bGQgKGVxdWFsIChjYXIgYXNz ZXJ0cykKKyAgICAgICAgICAgICAgICAgICAgICcoOmxpbmUtY2hlY2tlZCAzIDpsaW5lLWFzc2Vy dCA0IDpjb2x1bW4tY2hlY2tlZCAzIDpmYWNlICJjb21tZW50LWZhY2UiIDpuZWdhdGlvbiBuaWwp KSkpKSkKKworKGVydC1kZWZ0ZXN0IHRlc3QtcGFyc2UtY29tbWVudHMtLW11bHRpbGluZS1jb21t ZW50LW11bHRpcGxlICgpCisgIChsZXQqICgoc3RyICIKKy8qCisgIHRoaXMgaXMgYSBjb21tZW50 CisgICBeIGNvbW1lbnQtZmFjZQorICBhbm90aGVyIGNvbW1lbnQKKyAgICBeIGNvbW1lbnQtZmFj ZQorICovCisiKQorICAgICAgICAgYXNzZXJ0cykKKyAgICAod2l0aC10ZW1wLWJ1ZmZlcgorICAg ICAgKGluc2VydCBzdHIpCisgICAgICAoYy1tb2RlKQorCisgICAgICAoc2V0cSBhc3NlcnRzIChl cnQtZm9udC1sb2NrLS1wYXJzZS1jb21tZW50cykpCisgICAgICAoc2hvdWxkIChlcWwgKGxlbmd0 aCBhc3NlcnRzKSAyKSkKKyAgICAgIChzaG91bGQgKGVxdWFsIGFzc2VydHMKKyAgICAgICAgICAg ICAgICAgICAgICcoKDpsaW5lLWNoZWNrZWQgMyA6bGluZS1hc3NlcnQgNCA6Y29sdW1uLWNoZWNr ZWQgMyA6ZmFjZSAiY29tbWVudC1mYWNlIiA6bmVnYXRpb24gbmlsKQorICAgICAgICAgICAgICAg ICAgICAgICAoOmxpbmUtY2hlY2tlZCA1IDpsaW5lLWFzc2VydCA2IDpjb2x1bW4tY2hlY2tlZCA0 IDpmYWNlICJjb21tZW50LWZhY2UiIDpuZWdhdGlvbiBuaWwpKSkpKSkpCisKKzs7OyBTeW50YXgg aGlnaGxpZ2h0aW5nIGFzc2VydGlvbiB0ZXN0cworOzsKKworKGVydC1kZWZ0ZXN0IHRlc3Qtc3lu dGF4LWhpZ2hsaWdodC1pbmxpbmUtLWNhcmV0LW11bHRpcGxlLWZhY2VzICgpCisgIChsZXQgKChz dHIgIgordmFyIGFiYyA9IGZ1bmN0aW9uKGQpIHsKKy8vICAgXiBmb250LWxvY2stdmFyaWFibGUt bmFtZS1mYWNlCisgICAgLy8gICAgICAgIF4gZm9udC1sb2NrLWtleXdvcmQtZmFjZQorICAgIC8v ICAgICAgICAgICAgIF4gZm9udC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZQorfTsKKworIikpCisg ICAgKHdpdGgtdGVtcC1idWZmZXIKKyAgICAgIChpbnNlcnQgc3RyKQorICAgICAgKGphdmFzY3Jp cHQtbW9kZSkKKyAgICAgIChmb250LWxvY2stZW5zdXJlKQorCisgICAgICAoZXJ0LWZvbnQtbG9j ay0tY2hlY2stZmFjZXMKKyAgICAgICAoZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVudHMpKSkp KQorCisoZXJ0LWRlZnRlc3QgdGVzdC1zeW50YXgtaGlnaGxpZ2h0LWlubGluZS0tY2FyZXQtd3Jv bmctZmFjZSAoKQorICAobGV0KiAoKHN0ciAiCit2YXIgYWJjID0gZnVuY3Rpb24oZCkgeworLy8g ICBeIG5vdC1hLWZhY2UKK307CisiKSkKKyAgICAod2l0aC10ZW1wLWJ1ZmZlcgorICAgICAgKGlu c2VydCBzdHIpCisgICAgICAoamF2YXNjcmlwdC1tb2RlKQorICAgICAgKGZvbnQtbG9jay1lbnN1 cmUpCisKKyAgICAgIChzaG91bGQtZXJyb3IgKGVydC1mb250LWxvY2stLWNoZWNrLWZhY2VzCisg ICAgICAgICAgICAgICAgICAgICAoZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVudHMpKSkpKSkK KworCisoZXJ0LWRlZnRlc3QgdGVzdC1zeW50YXgtaGlnaGxpZ2h0LWlubGluZS0tY29tbWVudC1m YWNlICgpCisgIChsZXQqICgoc3RyICIKKy8vIHRoaXMgaXMgYSBjb21tZW50CisvLyAgIF4gZm9u dC1sb2NrLWNvbW1lbnQtZmFjZQorLy8gICAgICAgXiBmb250LWxvY2stY29tbWVudC1mYWNlCisv LyAgICAgICAgICAgIF4gZm9udC1sb2NrLWNvbW1lbnQtZmFjZQorIikpCisgICAgKHdpdGgtdGVt cC1idWZmZXIKKyAgICAgIChpbnNlcnQgc3RyKQorICAgICAgKGphdmFzY3JpcHQtbW9kZSkKKyAg ICAgIChmb250LWxvY2stZW5zdXJlKQorCisgICAgICAoZXJ0LWZvbnQtbG9jay0tY2hlY2stZmFj ZXMKKyAgICAgICAoZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVudHMpKSkpKQorCisKKyhlcnQt ZGVmdGVzdCB0ZXN0LXN5bnRheC1oaWdobGlnaHQtaW5saW5lLS1tdWx0aWxpbmUtY29tbWVudC1m YWNlICgpCisgIChsZXQqICgoc3RyICIKKy8qCisgIHRoaXMgaXMgYSBjb21tZW50CisgICBeIGZv bnQtbG9jay1jb21tZW50LWZhY2UKKyAgYW5vdGhlciBjb21tZW50CisgIG1vcmUgY29tbWVudHMK KyAgICBeIGZvbnQtbG9jay1jb21tZW50LWZhY2UKKyAqLworIikpCisgICAgKHdpdGgtdGVtcC1i dWZmZXIKKyAgICAgIChpbnNlcnQgc3RyKQorICAgICAgKGMtbW9kZSkKKyAgICAgIChmb250LWxv Y2stZW5zdXJlKQorCisgICAgICAoZXJ0LWZvbnQtbG9jay0tY2hlY2stZmFjZXMKKyAgICAgICAo ZXJ0LWZvbnQtbG9jay0tcGFyc2UtY29tbWVudHMpKSkpKQorCisKKyhlcnQtZGVmdGVzdCB0ZXN0 LWZvbnQtbG9jay10ZXN0LXN0cmluZy0tY29ycmVjdCAoKQorICAoZXJ0LWZvbnQtbG9jay10ZXN0 LXN0cmluZworICAgIgordmFyIGFiYyA9IGZ1bmN0aW9uKGQpIHsKKy8vIDwtIGZvbnQtbG9jay1r ZXl3b3JkLWZhY2UKKy8vICAgXiBmb250LWxvY2stdmFyaWFibGUtbmFtZS1mYWNlCisgICAgLy8g ICAgICAgIF4gZm9udC1sb2NrLWtleXdvcmQtZmFjZQorICAgIC8vICAgICAgICAgICAgIF4gZm9u dC1sb2NrLXZhcmlhYmxlLW5hbWUtZmFjZQorfTsKKworIgorICAgJ2phdmFzY3JpcHQtbW9kZSkp CisKKyhlcnQtZGVmdGVzdCB0ZXN0LWZvbnQtbG9jay10ZXN0LWZpbGUtLWNvcnJlY3QgKCkKKyAg KGVydC1mb250LWxvY2stdGVzdC1maWxlCisgICAoZXJ0LXJlc291cmNlLWZpbGUgImNvcnJlY3Qu anMiKQorICAgJ2phdmFzY3JpcHQtbW9kZSkpCisKKyhlcnQtZGVmdGVzdCB0ZXN0LWZvbnQtbG9j ay10ZXN0LWZpbGUtLXdyb25nICgpCisgIDpleHBlY3RlZC1yZXN1bHQgOmZhaWxlZAorICAoZXJ0 LWZvbnQtbG9jay10ZXN0LWZpbGUKKyAgIChlcnQtcmVzb3VyY2UtZmlsZSAiYnJva2VuLmpzIikK KyAgICdqYXZhc2NyaXB0LW1vZGUpKQorCis7OzsgTWFjcm8gdGVzdHMKKzs7CisKKyhlcnQtZm9u dC1sb2NrLWRlZnRlc3QgdGVzdC1tYWNyby10ZXN0LS1jb3JyZWN0LWhpZ2hsaWdodGluZworICAg IGVtYWNzLWxpc3AtbW9kZQorICAiCisoZGVmdW4gZnVuICgpKQorOzsgXiBmb250LWxvY2sta2V5 d29yZC1mYWNlCis7OyAgICAgIF4gZm9udC1sb2NrLWZ1bmN0aW9uLW5hbWUtZmFjZSIpCisKKyhl cnQtZm9udC1sb2NrLWRlZnRlc3QgdGVzdC1tYWNyby10ZXN0LS1kb2NzdHJpbmcKKyAgICAiQSB0 ZXN0IHdpdGggYSBkb2NzdHJpbmcuIgorICBlbWFjcy1saXNwLW1vZGUKKyAgIgorKGRlZnVuIGZ1 biAoKSkKKzs7IF4gZm9udC1sb2NrLWtleXdvcmQtZmFjZSIKKyAgKQorCisoZXJ0LWZvbnQtbG9j ay1kZWZ0ZXN0IHRlc3QtbWFjcm8tdGVzdC0tZmFpbGluZworICAgICJBIGZhaWxpbmcgdGVzdC4i CisgIDpleHBlY3RlZC1yZXN1bHQgOmZhaWxlZAorICBlbWFjcy1saXNwLW1vZGUKKyAgIgorKGRl ZnVuIGZ1biAoKSkKKzs7IF4gd3JvbmctZmFjZSIpCisKKyhlcnQtZm9udC1sb2NrLWRlZnRlc3Qt ZmlsZSB0ZXN0LW1hY3JvLXRlc3QtLWZpbGUKKyAgICAiVGVzdCByZWFkaW5nIGNvcnJlY3QgYXNz ZXJ0aW9ucyBmcm9tIGEgZmlsZSIKKyAgamF2YXNjcmlwdC1tb2RlCisgICJjb3JyZWN0LmpzIikK KworKGVydC1mb250LWxvY2stZGVmdGVzdC1maWxlIHRlc3QtbWFjcm8tdGVzdC0tZmlsZS1mYWls aW5nCisgICAgIlRlc3QgcmVhZGluZyB3cm9uZyBhc3NlcnRpb25zIGZyb20gYSBmaWxlIgorICA6 ZXhwZWN0ZWQtcmVzdWx0IDpmYWlsZWQKKyAgamF2YXNjcmlwdC1tb2RlCisgICJicm9rZW4uanMi KQorCis7OzsgZXJ0LWZvbnQtbG9jay10ZXN0cy5lbCBlbmRzIGhlcmUKLS0KMi4zNC4xCg== --0000000000008db8c1060b97f3d1-- From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 03 08:19:47 2023 Received: (at 67460-done) by debbugs.gnu.org; 3 Dec 2023 13:19:47 +0000 Received: from localhost ([127.0.0.1]:59263 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r9mNv-0008V7-Ew for submit@debbugs.gnu.org; Sun, 03 Dec 2023 08:19:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49866) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1r9mNt-0008Un-87 for 67460-done@debbugs.gnu.org; Sun, 03 Dec 2023 08:19:45 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1r9mNU-0005Cl-Mk; Sun, 03 Dec 2023 08:19:28 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=sU067/IKnE4nWyoPq8n99NYsqXOsmdxU3C7RLG8hPJc=; b=TZibdZCVNr8I w6cxkejAj3DrMVM0Qf/B90sIbmLW/d75EKUYkNFoZhdqwiJZWAWhW4qOCaKhvQ5KWHHMVXoBIPweH t6SHW0x2eM+blrQEBIGuUjTMCK+KAhTcKUYm9ibWQ3DDo6RE15SxTeHQE7RmylfItNrlxIaDMEE5q yUv5vvdeg9zLgTnblh2fgV3oQV93hjmumdG+2Xmja/xh8tuZXjiBnefjZ3rmYxjIwgUQO3vMQwGye 1yOP856JXxklxWoj/ijKJDJMi7JYaat//G5t4z6eaChLOOLP42tLFRlsL8IepvB53/pTVVEzh1hGu BxqydksFTupmM+2PBmpUmw==; Date: Sun, 03 Dec 2023 15:19:17 +0200 Message-Id: <83o7f777ai.fsf@gnu.org> From: Eli Zaretskii To: Vladimir Kazanov In-Reply-To: (message from Vladimir Kazanov on Sun, 3 Dec 2023 09:51:43 +0000) Subject: Re: bug#67460: [PATCH] Add ert-font-lock References: <83h6l093au.fsf@gnu.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 67460-done Cc: 67460-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Vladimir Kazanov > Date: Sun, 3 Dec 2023 09:51:43 +0000 > Cc: 67460@debbugs.gnu.org > > Thanks for looking into this! > > Note to myself: I need to make byte-compiling into a habit. Anyway, > warnings fixed, here's the updated patch. Thanks, installed on the master branch, and closing the bug. From unknown Thu Jun 19 14:24:52 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 01 Jan 2024 12:24:08 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator