From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Kangas Newsgroups: gmane.emacs.devel Subject: Re: ELPA: New package: svg-lib Date: Mon, 27 Sep 2021 07:34:14 -0700 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000c1882805ccfafdcc" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="23410"; mail-complaints-to="usenet@ciao.gmane.io" To: "Nicolas P. Rougier (inria)" , emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Sep 27 16:37:16 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mUrkq-0005rR-9w for ged-emacs-devel@m.gmane-mx.org; Mon, 27 Sep 2021 16:37:16 +0200 Original-Received: from localhost ([::1]:55990 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mUrkp-0001F2-6B for ged-emacs-devel@m.gmane-mx.org; Mon, 27 Sep 2021 10:37:15 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44770) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mUrhy-00076Y-Fp for emacs-devel@gnu.org; Mon, 27 Sep 2021 10:34:24 -0400 Original-Received: from mail-pf1-x434.google.com ([2607:f8b0:4864:20::434]:46693) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mUrhw-0006Wk-D9 for emacs-devel@gnu.org; Mon, 27 Sep 2021 10:34:18 -0400 Original-Received: by mail-pf1-x434.google.com with SMTP id 203so16000990pfy.13 for ; Mon, 27 Sep 2021 07:34:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:in-reply-to:references:mime-version:date:message-id:subject:to; bh=IvABGOugtdQf3Qc/UHfZVQwExAXjf3Zx7ciBj767kxg=; b=Hl/ij60ZOnuA3emqTWDcn31rW160mAjZUiGeu+kXVS01u9iHNE6+wS0v1YPyBZdk4h iKA8aypw/JpQhA6Z/KdxgxdFK5Nd6f9IcBr4oC3o/cSOac/AT/oF9JKogWUkC7p0tnPT pS91rnB8+FJNKDqXQb+X1LSUp3Ncd+7+alcUt2PouhZfjUqYiIOpJ61BUd/0wI+fTgDT 7BKSxpb3DwGjSt/CGyGHcRs2WlWGKuakZUj3PdCLLlsu1Dh8ZI4fSp2WyapSmzYKGY5+ +4Ea6QdZb/5MyRGgaU6nTmiYDMi8Crhi3CB/Uc3Th60jLFerl2t8mCSade7ho9r2m7vB jptA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to; bh=IvABGOugtdQf3Qc/UHfZVQwExAXjf3Zx7ciBj767kxg=; b=OybzR2NZhbEgIocHZZeV3wdeMk3nE3MlrsXcUrRbLzGuXwA7kJcBIS+kuovRb96C59 pYfASHXkM+YrHXmaVYs9JDeXGatw4KOPXyH5Yyxu9TKOd+HFMkZKq8T9dbx5wBBBEZAw dZoYpKYu9vGyk8QNk/519VFYVDu945GyVnGaAioWg5CknK5FalG9sY3Y6lzJQeZYTAgo RB0ywopfpoPpALZdieoWJutEiIB0AiRU9RCwipD8DidXlc6hPTl7k9iW0ZGf7MpWoTMP G9xg+RGuyWD3YamjQIYkNVV5HvIgBe7QO0l/n1742hkVTfUi/uuVag3pxMMgVS9UNxgN SVyw== X-Gm-Message-State: AOAM530NZh6bO7ojECzQtnDiDTlkAI+VHw/cRW4PZtnQmZIQfyuzSfAk EPEu52QQryPR1NPwUoHNP7ZdDmN9qdeBFUYhu/M= X-Google-Smtp-Source: ABdhPJz8wKukozfcRXPvidH1Dt9ovSdTEgkh719rMF50xVWqVrfqDtAgzxAwezViME5KHQKikX2+L+sM10n7eH5bfQM= X-Received: by 2002:a05:6a00:1586:b0:447:b30c:4a65 with SMTP id u6-20020a056a00158600b00447b30c4a65mr284369pfk.0.1632753254753; Mon, 27 Sep 2021 07:34:14 -0700 (PDT) Original-Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Mon, 27 Sep 2021 07:34:14 -0700 In-Reply-To: Received-SPF: pass client-ip=2607:f8b0:4864:20::434; envelope-from=stefankangas@gmail.com; helo=mail-pf1-x434.google.com X-Spam_score_int: -1 X-Spam_score: -0.2 X-Spam_bar: / X-Spam_report: (-0.2 / 5.0 requ) BAYES_40=-0.001, 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 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:275589 Archived-At: --000000000000c1882805ccfafdcc Content-Type: text/plain; charset="UTF-8" "Nicolas P. Rougier (inria)" writes: > The library is hosted at https://github.com/rougier/svg-lib and > the README displays what it looks like. I've attached svg-lib.el below to make reviewing it easier. --000000000000c1882805ccfafdcc Content-Type: application/emacs-lisp; name="svg-lib.el" Content-Disposition: attachment; filename="svg-lib.el" Content-Transfer-Encoding: base64 X-Attachment-Id: b0238decfc2f9919_0.1 Ozs7IHN2Zy1saWIuZWwgLS0tIFNWRyB0YWdzLCBwcm9ncmVzcyBiYXJzICYgaWNvbnMgLSotIGxl eGljYWwtYmluZGluZzogdCAtKi0KCjs7IENvcHlyaWdodCAoQykgMjAyMSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KCjs7IE1haW50YWluZXI6IE5pY29sYXMgUC4gUm91Z2llciA8Tmlj b2xhcy5Sb3VnaWVyQGlucmlhLmZyPgo7OyBVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9yb3VnaWVy L3N2Zy1saWIKOzsgVmVyc2lvbjogMC4xCjs7IFBhY2thZ2UtUmVxdWlyZXM6ICgoZW1hY3MgIjI3 LjEiKSkKOzsgS2V5d29yZHM6IHN2ZywgaWNvbnMsIHRhZ3MsIGNvbnZlbmllbmNlCgo7OyBUaGlz IGZpbGUgaXMgbm90IHBhcnQgb2YgR05VIEVtYWNzLgoKOzsgVGhpcyBmaWxlIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKOzsgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkKOzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMywgb3Ig KGF0IHlvdXIgb3B0aW9uKQo7OyBhbnkgbGF0ZXIgdmVyc2lvbi4KCjs7IFRoaXMgZmlsZSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAo7OyBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo7 OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlCjs7IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgo7 OyBGb3IgYSBmdWxsIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCjs7IHNl ZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKOzs7IENvbW1lbnRhcnk6Cjs7Cjs7 IFVzYWdlIGV4YW1wbGU6Cjs7Cjs7IChpbnNlcnQtaW1hZ2UgKHN2Zy1saWItdGFnICJUT0RPIikp Cjs7IChpbnNlcnQtaW1hZ2UgKHN2Zy1saWItcHJvZ3Jlc3MgMC4zMykpCjs7IChpbnNlcnQtaW1h Z2UgKHN2Zy1saWItaWNvbiAic3RhciIpKQo7Owo7OyBJY29ucyBhcmVzIGNyZWF0ZWQgYnkgcGFy c2luZyByZW1vdGUgY29sbGVjdGlvbnMgd2hvc2UgbGljZW5zZSBhcmUKOzsgY29tcGF0aWJsZXMg d2l0aCBHTlUgRW1hY3M6Cjs7Cjs7IC0gQm94aWNvbnMgKGh0dHBzOi8vZ2l0aHViLmNvbS9hdGlz YXdkL2JveGljb25zKSwgYXZhaWxhYmxlIHVuZGVyIGEKOzsgICBDcmVhdGl2ZSBDb21tb25zIDQu MCBsaWNlbnNlLiBBcyBvZiB2ZXJzaW9uIDIuMDcgKERlY2VtYmVyIDIwMjApLAo7OyAgIHRoaXMg Y29sbGVjdGlvbiBvZmZlcnMgMTUwMCBpY29ucyBpbiB0d28gc3R5bGVzIChyZWd1bGFyICYgc29s aWQpLgo7OyAgIEdhbGxlcnkgaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vYm94aWNvbnMuY29tLwo7 Owo7OyAtIE9jdGljb25zIChodHRwczovL2dpdGh1Yi5jb20vcHJpbWVyL29jdGljb25zKSwgYXZh aWxhYmxlIHVuZGVyIGEKOzsgICBNSVQgTGljZW5zZSB3aXRoIHNvbWUgdXNhZ2UgcmVzdHJpY3Rp b24gZm9yIHRoZSBHaXRIdWIgbG9nby4gQXMgb2YKOzsgICB2ZXJzaW9uIDExLjIuMCAoRGVjZW1i ZXIgMjAyMCksIHRoaXMgY29sbGVjdGlvbiBvZmZlcnMgMjAxIGljb25zLgo7OyAgIEdhbGxlcnkg YXZhaWxhYmxlIGF0IGh0dHBzOi8vcHJpbWVyLnN0eWxlL29jdGljb25zLwo7Owo7OyAtIE1hdGVy aWFsIChodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL21hdGVyaWFsLWRlc2lnbi1pY29ucyksCjs7 ICAgYXZhaWxhYmxlIHVuZGVyIGFuIEFwYWNoZSAyLjAgbGljZW5zZS4gQXMgb2YgdmVyc2lvbiA0 LjAuMAo7OyAgIChEZWNlbWJlciAyMDIwKSwgdGhpcyBjb2xsZWN0aW9uIG9mZmVycyA1MDArIGlj b25zIGluIDQgc3R5bGVzCjs7ICAgKGZpbGxlZCwgb3V0bGluZWQsIHJvdW5kZWQsIHNoYXJwKS4g R2FsbGVyeSBhdmFpbGFibGUgYXQKOzsgICBodHRwczovL21hdGVyaWFsLmlvL3Jlc291cmNlcy9p Y29ucy8/c3R5bGU9YmFzZWxpbmUKOzsKOzsgLSBCb290c3RyYXAgKGh0dHBzOi8vZ2l0aHViLmNv bS90d2JzL2ljb25zKSwgYXZhaWxhYmxlIHVuZGVyIGEgTUlUCjs7ICAgbGljZW5zZS4gIEFzIG9m IHZlcnNpb24gMS4yLjEgKERlY2VtYmVyIDIwMjApLCB0aGlzIGNvbGxlY3Rpb24KOzsgICBvZmZl cnMgMTIwMCsgaWNvbnMgaW4gMiBzdHlsZXMgKHJlZ3VsYXIgJiBmaWxsZWQpLiAgR2FsbGVyeQo7 OyAgIGF2YWlsYWJsZSBhdCBodHRwczovL2ljb25zLmdldGJvb3RzdHJhcC5jb20vCjs7Cjs7IFRo ZSBkZWZhdWx0IHNpemUgb2YgYW4gaWNvbiBpcyBleGFjdGx5IDJ4MSBjaGFyYWN0ZXJzIHN1Y2gg dGhhdCBpdAo7OyBjYW4gYmUgaW5zZXJ0ZWQgaW5zaWRlIGEgdGV4dCB3aXRob3V0IGRpc3R1cmJp bmcgYWxpZ25tZW50Lgo7Owo7OyBOb3RlOiBFYWNoIGljb24gaXMgY2FjaGVkIGxvY2FsbHkgdG8g c3BlZWQtdXAgbG9hZGluZyB0aGUgbmV4dCB0aW1lCjs7ICAgICAgIHlvdSB1c2UgaXQuIElmIGZv ciBzb21lIHJlYXNvbiB0aGUgY2FjaGUgaXMgY29ycnVwdGVkIHlvdSBjYW4KOzsgICAgICAgZm9y Y2UgcmVsb2FkIHVzaW5nIHRoZSBzdmctaWNvbi1nZXQtZGF0YSBmdW5jdGlvbi4KOzsKOzsgSWYg eW91IHdhbnQgdG8gYWRkIG5ldyBjb2xsZWN0aW9ucyAoaS5lLiBVUkwpLCBtYWtlIHN1cmUgdGhl IGljb25zCjs7IGFyZSBtb25vY2hyb21lLCB0aGVpciBzaXplIGlzIGNvbnNpc3RlbnQuCgo7Ozsg TkVXUzoKCjs7IFZlcnNpb24gMC4xOgo7OyAtIFN1Ym1pc3Npb24gdG8gRUxQQQoKCjs7OyBDb2Rl OgoocmVxdWlyZSAnc3ZnKQoocmVxdWlyZSAneG1sKQoocmVxdWlyZSAnY2wtbGliKQoKOzsgQ2hl Y2sgaWYgRW1hY3MgaGFzIGJlZW4gY29tcGlsZWQgd2l0aCBzdmcgc3VwcG9ydAooaWYgKG5vdCAo aW1hZ2UtdHlwZS1hdmFpbGFibGUtcCAnc3ZnKSkKICAgIChlcnJvciAic3ZnLWxpYi5lbCByZXF1 aXJlcyBFbWFjcyB0byBiZSBjb21waWxlZCB3aXRoIHN2ZyBzdXBwb3J0LlxuIikpCgoKKGRlZmdy b3VwIHN2Zy1saWIgbmlsCiAgIlNWRyB0YWdzLCBiYXJzICYgaWNvbnMuIgogIDpncm91cCAnY29u dmVuaWVuY2UKICA6cHJlZml4ICJzdmctbGliLSIpCgo7OyBEZWZhdWx0IGljb24gY29sbGVjdGlv bnMKOzsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCihkZWZjdXN0b20gIHN2Zy1saWItaWNvbi1jb2xsZWN0aW9ucwog ICcoKCJib290c3RyYXAiIC4KICAgICAiaHR0cHM6Ly9pY29ucy5nZXRib290c3RyYXAuY29tL2lj b25zLyVzLnN2ZyIpCiAgICAoInNpbXBsZSIgLgogICAgICJodHRwczovL3Jhdy5naXRodWJ1c2Vy Y29udGVudC5jb20vc2ltcGxlLWljb25zL3NpbXBsZS1pY29ucy9kZXZlbG9wL2ljb25zLyVzLnN2 ZyIpCiAgICAoIm1hdGVyaWFsIiAuCiAgICAgImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50 LmNvbS9UZW1wbGFyaWFuL01hdGVyaWFsRGVzaWduL21hc3Rlci9zdmcvJXMuc3ZnIikKICAgICgi b2N0aWNvbnMiIC4KICAgICAiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3ByaW1l ci9vY3RpY29ucy9tYXN0ZXIvaWNvbnMvJXMtMjQuc3ZnIikKICAgICgiYm94aWNvbnMiIC4KICAg ICAiaHR0cHM6Ly9ib3hpY29ucy5jb20vc3RhdGljL2ltZy9zdmcvcmVndWxhci9ieC0lcy5zdmci KSkKICAgIAogICJWYXJpb3VzIGljb25zIGNvbGxlY3Rpb25zIHN0b3JlZCBhcyAobmFtZSAuIGJh c2UtdXJsKS4KClRoZSBuYW1lIG9mIHRoZSBjb2xsZWN0aW9uIGlzIHVzZWQgYXMgYSBwb2ludGVy IGZvciB0aGUgdmFyaW91cwppY29uIGNyZWF0aW9uIG1ldGhvZHMuICBUaGUgYmFzZS11cmwgaXMg YSBzdHJpbmcgY29udGFpbmluZyBhICVzCnN1Y2ggdGhhdCBpcyBjYW4gYmUgcmVwbGFjZWQgd2l0 aCB0aGUgbmFtZSBvZiBhIHNwZWNpZmljIGljb24uClVzZXIgaXMgcmVzcG9uc2libGUgZm9yIGZp bmRpbmcvZ2l2aW5nIHByb3BlciBuYW1lcyBmb3IgYSBnaXZlbgpjb2xsZWN0aW9uICh0aGVyZSBh cmUgd2F5IHRvbyBtYW55IHRvIHN0b3JlIHRoZW0pLiIKCiAgOnR5cGUgJyhhbGlzdCA6a2V5LXR5 cGUgKHN0cmluZyA6dGFnICJOYW1lIikKICAgICAgICAgICAgICAgIDp2YWx1ZS10eXBlIChzdHJp bmcgOnRhZyAiVVJMIikpCiAgOmdyb3VwICdzdmctbGliKQoKKGRlZmN1c3RvbSBzdmctbGliLWlj b25zLWRpcgogIChleHBhbmQtZmlsZS1uYW1lIChjb25jYXQgdXNlci1lbWFjcy1kaXJlY3Rvcnkg Ii5jYWNoZS9zdmctbGliLyIpKQogICJzdmctbGliIGljb25zIGRpcmVjdG9yeS4iCiAgOmdyb3Vw ICdzdmctbGliCiAgOnR5cGUgJ2RpcmVjdG9yeSkKCgo7OyBEZWZhdWx0IHN0eWxlIGZvciBhbGwg b2JqZWN0cwooZGVmdW4gc3ZnLWxpYi1zdHlsZS1jb21wdXRlLWRlZmF1bHQgKCZvcHRpb25hbCBm YWNlKQogICJDb21wdXRlIHRoZSBkZWZhdWx0IHN0eWxlIGFjY29yZGluZyB0byBmYWNlICh3aGlj aCBkZWZhdWx0cwp0byB0aGUgZGVmYXVsdCBmYWNlKS4iCgogIChsZXQqICgoZmFjZSAgICAgICAg KG9yIGZhY2UgJ2RlZmF1bHQpKQogICAgICAgICAoZm9udC1mYW1pbHkgKGZhY2UtYXR0cmlidXRl IGZhY2UgOmZhbWlseSBuaWwgJ2RlZmF1bHQpKQogICAgICAgICAoZm9udC13ZWlnaHQgKGZhY2Ut YXR0cmlidXRlIGZhY2UgOndlaWdodCBuaWwgJ2RlZmF1bHQpKQogICAgICAgICAoZm9udC1zaXpl ICAgKGZhY2UtYXR0cmlidXRlIGZhY2UgOmhlaWdodCBuaWwgJ2RlZmF1bHQpKQogICAgICAgICAo Zm9udC1zaXplICAgKHJvdW5kICgqIGZvbnQtc2l6ZSAwLjA4NSkpKQogICAgICAgICAoZm9yZWdy b3VuZCAgKGZhY2UtYXR0cmlidXRlIGZhY2UgOmZvcmVncm91bmQgbmlsICdkZWZhdWx0KSkKICAg ICAgICAgKGJhY2tncm91bmQgIChmYWNlLWF0dHJpYnV0ZSBmYWNlIDpiYWNrZ3JvdW5kIG5pbCAn ZGVmYXVsdCkpKQoKICAgIGAoOmJhY2tncm91bmQgICAgLGJhY2tncm91bmQKICAgICAgOmZvcmVn cm91bmQgICAgLGZvcmVncm91bmQKICAgICAgICAgICAgICAgICAgICAgCiAgICAgIDpwYWRkaW5n ICAgICAgIDEgICAgICA7OyBJbiBjaGFyYWN0ZXJzICh0YWcgYW5kIGljb25zKSBvciBwaXhlbHMg KHByb2dyZXNzKQogICAgICA6bWFyZ2luICAgICAgICAxICAgICAgOzsgSW4gY2hyYWN0ZXJzCiAg ICAgIDpzdHJva2UgICAgICAgIDIgICAgICA7OyBJbiBwaXhlbHMKICAgICAgOnJhZGl1cyAgICAg ICAgMyAgICAgIDs7IEluIHBpeGVscwogICAgICA6d2lkdGggICAgICAgICAyMCAgICAgOzsgSW4g Y2hhcmFjdGVycwogICAgICA6aGVpZ2h0ICAgICAgICAwLjkwICAgOzsgUmF0aW8gb2YgdGV4dCBs aW5lIGhlaWdodAogICAgICA6c2NhbGUgICAgICAgICAwLjc1ICAgOzsgSWNvbiBzY2FsaW5nCgog ICAgICA6Y29sbGVjdGlvbiAgICAibWF0ZXJpYWwiIDs7IEljb24gY29sbGVjdGlvbgogICAgICAK ICAgICAgOmZvbnQtZmFtaWx5ICAgLGZvbnQtZmFtaWx5CiAgICAgIDpmb250LXNpemUgICAgICxm b250LXNpemUKICAgICAgOmZvbnQtd2VpZ2h0ICAgLGZvbnQtd2VpZ2h0KSkpCgooZGVmY3VzdG9t IHN2Zy1saWItc3R5bGUtZGVmYXVsdAogIChzdmctbGliLXN0eWxlLWNvbXB1dGUtZGVmYXVsdCkK ICAiRGVmYXVsdCBzdHlsZSIKICA6dHlwZSAnKHBsaXN0IDprZXktdHlwZSAgIChzdHJpbmcgOnRh ZyAiUHJvcGVydHkiKQogICAgICAgICAgICAgICAgOnZhbHVlLXR5cGUgKHN0cmluZyA6dGFnICJW YWx1ZSIpKQogIDpncm91cCAnc3ZnLWxpYikKCgo7OyBDb252ZXJ0IEVtYWNzIGNvbG9yIHRvIFNW RyBjb2xvcgooZGVmdW4gc3ZnLWxpYi1jb252ZXJ0LWNvbG9yIChjb2xvci1uYW1lKQogICJDb252 ZXJ0IEVtYWNzIENPTE9SLU5BTUUgdG8gI3JyZ2diYiBmb3JtLgpJZiBDT0xPUi1OQU1FIGlzIHVu a25vd24gdG8gRW1hY3MsIHRoZW4gcmV0dXJuIENPTE9SLU5BTUUgYXMtaXMuIgogIAogIChsZXQg KChyZ2ItY29sb3IgKGNvbG9yLW5hbWUtdG8tcmdiIGNvbG9yLW5hbWUpKSkKICAgIChpZiByZ2It Y29sb3IKICAgICAgICAoYXBwbHkgIydjb2xvci1yZ2ItdG8taGV4IChhcHBlbmQgcmdiLWNvbG9y ICcoMikpKQogICAgICBjb2xvci1uYW1lKSkpCgoKOzsgU1ZHIExpYnJhcnkgc3R5bGUgYnVpbGQg ZnJvbSBwYXJ0aWFsIHNwZWNpZmljYXRpb24KKGRlZnVuIHN2Zy1saWItc3R5bGUgKCZvcHRpb25h bCBiYXNlICZyZXN0IGFyZ3MpCiAgIkJ1aWxkIGEgbmV3cyBzdHlsZSB1c2luZyBCQVNFIGFuZCBz dHlsZSBlbGVtZW50cyBBUkdTLiIKICAKICAobGV0KiAoKGRlZmF1bHQgc3ZnLWxpYi1zdHlsZS1k ZWZhdWx0KQogICAgICAgICAoYmFzZSAob3IgYmFzZSBkZWZhdWx0KSkKICAgICAgICAgKGtleXMg KGNsLWxvb3AgZm9yIChrZXkgdmFsdWUpIG9uIGRlZmF1bHQgYnkgJ2NkZHIKICAgICAgICAgICAg ICAgICAgICAgICAgY29sbGVjdCBrZXkpKQogICAgICAgICAoc3R5bGUgJygpKSkKCiAgICAoZG9s aXN0IChrZXkga2V5cykKICAgICAgKHNldHEgc3R5bGUgKGlmIChwbGlzdC1tZW1iZXIgYXJncyBr ZXkpCiAgICAgICAgICAgICAgICAgICAgICAocGxpc3QtcHV0IHN0eWxlIGtleSAocGxpc3QtZ2V0 IGFyZ3Mga2V5KSkKICAgICAgICAgICAgICAgICAgICAocGxpc3QtcHV0IHN0eWxlIGtleSAocGxp c3QtZ2V0IGJhc2Uga2V5KSkpKSkKCiAgICA7OyBDb252ZXJ0IGVtYWNzIGNvbG9ycyB0byBTVkcg Y29sb3JzCiAgICAocGxpc3QtcHV0IHN0eWxlIDpmb3JlZ3JvdW5kCiAgICAgICAgICAgICAgIChz dmctbGliLWNvbnZlcnQtY29sb3IgKHBsaXN0LWdldCBzdHlsZSA6Zm9yZWdyb3VuZCkpKQogICAg KHBsaXN0LXB1dCBzdHlsZSA6YmFja2dyb3VuZAogICAgICAgICAgICAgICAoc3ZnLWxpYi1jb252 ZXJ0LWNvbG9yIChwbGlzdC1nZXQgc3R5bGUgOmJhY2tncm91bmQpKSkKCiAgICA7OyBDb252ZXJ0 IGVtYWNzIGZvbnQgd2VpZ2h0cyB0byBTVkcgZm9udCB3ZWlnaHRzCiAgICAobGV0ICgod2VpZ2h0 cwogICAgICAgICAgICcoKHRoaW4gICAgICAgLiAxMDApICh1bHRyYWxpZ2h0IC4gMjAwKSAobGln aHQgICAgICAuIDMwMCkKICAgICAgICAgICAgIChyZWd1bGFyICAgIC4gNDAwKSAobWVkaXVtICAg ICAuIDUwMCkgKHNlbWlib2xkICAgLiA2MDApCiAgICAgICAgICAgICAoYm9sZCAgICAgICAuIDcw MCkgKGV4dHJhYm9sZCAgLiA4MDApIChibGFjayAgICAgIC4gOTAwKSkpKQogICAgICAocGxpc3Qt cHV0IHN0eWxlIDpmb250LXdlaWdodAogICAgICAgICAgICAgICAgIChvciAoY2RyIChhc3NvYyAo cGxpc3QtZ2V0IHN0eWxlIDpmb250LXdlaWdodCkgd2VpZ2h0cykpCiAgICAgICAgICAgICAgICAg ICAgIChwbGlzdC1nZXQgc3R5bGUgOmZvbnQtd2VpZ2h0KSkpKQogICAgc3R5bGUpKQoKCjs7IENy ZWF0ZSBhbiBpbWFnZSBkaXNwbGF5aW5nIExBQkVMIGluIGEgcm91bmRlZCBib3guCihkZWZ1biBz dmctbGliLXRhZyAobGFiZWwgJm9wdGlvbmFsIHN0eWxlICZyZXN0IGFyZ3MpCiAgIkNyZWF0ZSBh biBpbWFnZSBkaXNwbGF5aW5nIExBQkVMIGluIGEgcm91bmRlZCBib3ggdXNpbmcgZ2l2ZW4gU1RZ TEUKYW5kIHN0eWxlIGVsZW1lbnRzIEFSR1MuIgoKICAobGV0KiAoKGRlZmF1bHQgc3ZnLWxpYi1z dHlsZS1kZWZhdWx0KQogICAgICAgICAoc3R5bGUgKGlmIHN0eWxlIChhcHBseSAjJ3N2Zy1saWIt c3R5bGUgbmlsIHN0eWxlKSBkZWZhdWx0KSkKICAgICAgICAgKHN0eWxlIChpZiBhcmdzICAoYXBw bHkgIydzdmctbGliLXN0eWxlIHN0eWxlIGFyZ3MpIHN0eWxlKSkKCiAgICAgICAgIChmb3JlZ3Jv dW5kICAocGxpc3QtZ2V0IHN0eWxlIDpmb3JlZ3JvdW5kKSkKICAgICAgICAgKGJhY2tncm91bmQg IChwbGlzdC1nZXQgc3R5bGUgOmJhY2tncm91bmQpKQogICAgICAgICAoc3Ryb2tlICAgICAgKHBs aXN0LWdldCBzdHlsZSA6c3Ryb2tlKSkKICAgICAgICAgKHdpZHRoICAgICAgIChwbGlzdC1nZXQg c3R5bGUgOndpZHRoKSkKICAgICAgICAgKGhlaWdodCAgICAgIChwbGlzdC1nZXQgc3R5bGUgOmhl aWdodCkpCiAgICAgICAgIChyYWRpdXMgICAgICAocGxpc3QtZ2V0IHN0eWxlIDpyYWRpdXMpKQog ICAgICAgICAoc2NhbGUgICAgICAgKHBsaXN0LWdldCBzdHlsZSA6c2NhbGUpKQogICAgICAgICAo bWFyZ2luICAgICAgKHBsaXN0LWdldCBzdHlsZSA6bWFyZ2luKSkKICAgICAgICAgKHBhZGRpbmcg ICAgIChwbGlzdC1nZXQgc3R5bGUgOnBhZGRpbmcpKQogICAgICAgICAoZm9udC1zaXplICAgKHBs aXN0LWdldCBzdHlsZSA6Zm9udC1zaXplKSkKICAgICAgICAgKGZvbnQtZmFtaWx5IChwbGlzdC1n ZXQgc3R5bGUgOmZvbnQtZmFtaWx5KSkKICAgICAgICAgKGZvbnQtd2VpZ2h0IChwbGlzdC1nZXQg c3R5bGUgOmZvbnQtd2VpZ2h0KSkKCiAgICAgICAgICh0eHQtY2hhci13aWR0aCAgKHdpbmRvdy1m b250LXdpZHRoKSkKICAgICAgICAgKHR4dC1jaGFyLWhlaWdodCAod2luZG93LWZvbnQtaGVpZ2h0 KSkKICAgICAgICAgKGZvbnQtaW5mbyAgICAgICAoZm9udC1pbmZvIChmb3JtYXQgIiVzLSVkIiBm b250LWZhbWlseSBmb250LXNpemUpKSkKICAgICAgICAgKGFzY2VudCAgICAgICAgICAoYXJlZiBm b250LWluZm8gOCkpCiAgICAgICAgICh0YWctY2hhci13aWR0aCAgKGFyZWYgZm9udC1pbmZvIDEx KSkKICAgICAgICAgKHRhZy1jaGFyLWhlaWdodCAoYXJlZiBmb250LWluZm8gMykpCiAgICAgICAg ICh0YWctd2lkdGggICAgICAgKCogKCsgKGxlbmd0aCBsYWJlbCkgcGFkZGluZykgdHh0LWNoYXIt d2lkdGgpKQogICAgICAgICAodGFnLWhlaWdodCAgICAgICgqIHR4dC1jaGFyLWhlaWdodCBoZWln aHQpKQoKICAgICAgICAgKHN2Zy13aWR0aCAgICAgICAoKyB0YWctd2lkdGggKCogbWFyZ2luIHR4 dC1jaGFyLXdpZHRoKSkpCiAgICAgICAgIChzdmctaGVpZ2h0ICAgICAgdGFnLWhlaWdodCkKCiAg ICAgICAgICh0YWcteCAoLyAoLSBzdmctd2lkdGggdGFnLXdpZHRoKSAyKSkKICAgICAgICAgKHRl eHQteCAoKyB0YWcteCAoLyAoLSB0YWctd2lkdGggKCogKGxlbmd0aCBsYWJlbCkgdGFnLWNoYXIt d2lkdGgpKSAyKSkpCiAgICAgICAgICh0ZXh0LXkgYXNjZW50KQogICAgICAgICAKICAgICAgICAg KHN2ZyAoc3ZnLWNyZWF0ZSBzdmctd2lkdGggc3ZnLWhlaWdodCkpKQoKICAgIChpZiAoPj0gc3Ry b2tlIDAuMjUpCiAgICAgICAgKHN2Zy1yZWN0YW5nbGUgc3ZnIHRhZy14IDAgdGFnLXdpZHRoIHRh Zy1oZWlnaHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgOmZpbGwgZm9yZWdyb3VuZCA6cngg cmFkaXVzKSkKICAgIChzdmctcmVjdGFuZ2xlIHN2ZyAoKyB0YWcteCAoLyBzdHJva2UgMi4wKSkg KC8gc3Ryb2tlIDIuMCkKICAgICAgICAgICAgICAgICAgICAgICAoLSB0YWctd2lkdGggc3Ryb2tl KSAoLSB0YWctaGVpZ2h0IHN0cm9rZSkKICAgICAgICAgICAgICAgICAgICAgICA6ZmlsbCBiYWNr Z3JvdW5kIDpyeCAoLSByYWRpdXMgKC8gc3Ryb2tlIDIuMCkpKQogICAgKHN2Zy10ZXh0IHN2ZyBs YWJlbAogICAgICAgICAgICAgIDpmb250LWZhbWlseSBmb250LWZhbWlseSA6Zm9udC13ZWlnaHQg Zm9udC13ZWlnaHQgIDpmb250LXNpemUgZm9udC1zaXplCiAgICAgICAgICAgICAgOmZpbGwgZm9y ZWdyb3VuZCA6eCB0ZXh0LXggOnkgIHRleHQteSkKICAgIChzdmctaW1hZ2Ugc3ZnIDphc2NlbnQg J2NlbnRlcikpKQoKCgo7OyBDcmVhdGUgYSBwcm9ncmVzcyBwaWUKKGRlZnVuIHN2Zy1saWItcHJv Z3Jlc3MtcGllICh2YWx1ZSAmb3B0aW9uYWwgc3R5bGUgJnJlc3QgYXJncykKICAiQ3JlYXRlIGEg cHJvZ3Jlc3MgcGllIGltYWdlIHdpdGggdmFsdWUgVkFMVUUgdXNpbmcgZ2l2ZW4gU1RZTEUKYW5k IHN0eWxlIGVsZW1lbnRzIEFSR1MuIgoKICAobGV0KiAoKGRlZmF1bHQgc3ZnLWxpYi1zdHlsZS1k ZWZhdWx0KQogICAgICAgICAoc3R5bGUgKGlmIHN0eWxlIChhcHBseSAjJ3N2Zy1saWItc3R5bGUg bmlsIHN0eWxlKSBkZWZhdWx0KSkKICAgICAgICAgKHN0eWxlIChpZiBhcmdzICAoYXBwbHkgIydz dmctbGliLXN0eWxlIHN0eWxlIGFyZ3MpIHN0eWxlKSkKCiAgICAgICAgIChmb3JlZ3JvdW5kICAo cGxpc3QtZ2V0IHN0eWxlIDpmb3JlZ3JvdW5kKSkKICAgICAgICAgKGJhY2tncm91bmQgIChwbGlz dC1nZXQgc3R5bGUgOmJhY2tncm91bmQpKQogICAgICAgICAoc3Ryb2tlICAgICAgKHBsaXN0LWdl dCBzdHlsZSA6c3Ryb2tlKSkKICAgICAgICAgKHdpZHRoICAgICAgIChwbGlzdC1nZXQgc3R5bGUg OndpZHRoKSkKICAgICAgICAgKGhlaWdodCAgICAgIChwbGlzdC1nZXQgc3R5bGUgOmhlaWdodCkp CiAgICAgICAgIChzY2FsZSAgICAgICAocGxpc3QtZ2V0IHN0eWxlIDpzY2FsZSkpCiAgICAgICAg IChtYXJnaW4gICAgICAocGxpc3QtZ2V0IHN0eWxlIDptYXJnaW4pKQogICAgICAgICAocGFkZGlu ZyAgICAgKHBsaXN0LWdldCBzdHlsZSA6cGFkZGluZykpCiAgICAgICAgIChmb250LXNpemUgICAo cGxpc3QtZ2V0IHN0eWxlIDpmb250LXNpemUpKQogICAgICAgICAoZm9udC1mYW1pbHkgKHBsaXN0 LWdldCBzdHlsZSA6Zm9udC1mYW1pbHkpKQogICAgICAgICAoZm9udC13ZWlnaHQgKHBsaXN0LWdl dCBzdHlsZSA6Zm9udC13ZWlnaHQpKQogICAgICAgICAKICAgICAgICAgKHR4dC1jaGFyLXdpZHRo ICAod2luZG93LWZvbnQtd2lkdGgpKQogICAgICAgICAodHh0LWNoYXItaGVpZ2h0ICh3aW5kb3ct Zm9udC1oZWlnaHQpKQogICAgICAgICAKICAgICAgICAgKGZvbnQtaW5mbyAgICAgICAoZm9udC1p bmZvIChmb3JtYXQgIiVzLSVkIiBmb250LWZhbWlseSBmb250LXNpemUpKSkKICAgICAgICAgKGFz Y2VudCAgICAgICAgICAoYXJlZiBmb250LWluZm8gOCkpCiAgICAgICAgICh0YWctY2hhci13aWR0 aCAgKGFyZWYgZm9udC1pbmZvIDExKSkKICAgICAgICAgKHRhZy1jaGFyLWhlaWdodCAoYXJlZiBm b250LWluZm8gMykpCgogICAgICAgICAodGFnLXdpZHRoICAgICAgICgqIDIgdHh0LWNoYXItd2lk dGgpKQogICAgICAgICAodGFnLWhlaWdodCAgICAgICgqIHR4dC1jaGFyLWhlaWdodCBoZWlnaHQp KQoKICAgICAgICAgKHN2Zy13aWR0aCAgICAgICAoKyB0YWctd2lkdGggKCogbWFyZ2luIHR4dC1j aGFyLXdpZHRoKSkpCiAgICAgICAgIChzdmctaGVpZ2h0ICAgICAgdGFnLWhlaWdodCkKCiAgICAg ICAgICh0YWcteCAgICAgICAgICAgKC8gKC0gc3ZnLXdpZHRoIHRhZy13aWR0aCkgMikpCgogICAg ICAgICAoY3ggICAgICAgICAgICAgICgvIHN2Zy13aWR0aCAgMikpCiAgICAgICAgIChjeSAgICAg ICAgICAgICAgKC8gc3ZnLWhlaWdodCAyKSkKICAgICAgICAgKHJhZGl1cyAgICAgICAgICAoLSAo LyB0YWctaGVpZ2h0IDIpICgvIHN0cm9rZSAyKSkpCgogICAgICAgICAoaXJhZGl1cyAgICAgICAg ICgtIHJhZGl1cyBzdHJva2UgKC8gcGFkZGluZyAyKSkpCgogICAgICAgICAoYW5nbGUwICAgICAg ICAgICgtICgvIHBpIDIpKSkKICAgICAgICAgKHgwICAgICAgICAgICAgICAoKyBjeCAoKiBpcmFk aXVzIChjb3MgYW5nbGUwKSkpKQogICAgICAgICAoeTAgICAgICAgICAgICAgICgrIGN5ICgqIGly YWRpdXMgKHNpbiBhbmdsZTApKSkpCgogICAgICAgICAoYW5nbGUxICAgICAgICAgICgrIGFuZ2xl MCAoKiB2YWx1ZSAyIHBpKSkpCiAgICAgICAgICh4MSAgICAgICAgICAgICAgKCsgY3ggKCogaXJh ZGl1cyAoY29zIGFuZ2xlMSkpKSkKICAgICAgICAgKHkxICAgICAgICAgICAgICAoKyBjeSAoKiBp cmFkaXVzIChzaW4gYW5nbGUxKSkpKQoKICAgICAgICAgKGxhcmdlLWFyYyAgICAgICAoaWYgKD49 ICgtIGFuZ2xlMSBhbmdsZTApIHBpKSB0IG5pbCkpCiAgICAgICAgIChzdmcgKHN2Zy1jcmVhdGUg c3ZnLXdpZHRoIHN2Zy1oZWlnaHQpKSkKCiAgICAoaWYgKD49IHN0cm9rZSAwLjI1KQogICAgICAg IChzdmctY2lyY2xlIHN2ZyBjeCBjeSByYWRpdXMgOmZpbGwgZm9yZWdyb3VuZCkpCgogICAgKHN2 Zy1jaXJjbGUgc3ZnIGN4IGN5ICgtIHJhZGl1cyAoLyBzdHJva2UgMi4wKSkgOmZpbGwgYmFja2dy b3VuZCkKCiAgICAoaWYgKD49ICgtIGFuZ2xlMSBhbmdsZTApICgqIHBpIDIpKQogICAgICAgIChz dmctY2lyY2xlIHN2ZyBjeCBjeSBpcmFkaXVzIDpmaWxsIGZvcmVncm91bmQpCiAgICAgIChzdmct cGF0aCBzdmcgYCgobW92ZXRvICgoLGN4IC4gLGN5KSkpCiAgICAgICAgICAgICAgICAgICAgKGxp bmV0byAoKCx4MCAuICx5MCkpKQogICAgICAgICAgICAgICAgICAgIChlbGxpcHRpY2FsLWFyYyAo KCxpcmFkaXVzICxpcmFkaXVzICx4MSAseTEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA6c3dlZXAgdCA6bGFyZ2UtYXJjICxsYXJnZS1hcmMpKSkpCiAgICAgICAgICAgICAg OmZpbGwgZm9yZWdyb3VuZCkpCiAgICAoc3ZnLWltYWdlIHN2ZyA6YXNjZW50ICdjZW50ZXIpKSkK CgoKOzsgQ3JlYXRlIGEgcHJvZ3Jlc3MgYmFyCihkZWZ1biBzdmctbGliLXByb2dyZXNzLWJhciAo dmFsdWUgJm9wdGlvbmFsIHN0eWxlICZyZXN0IGFyZ3MpCiAgIkNyZWF0ZSBhIHByb2dyZXNzIGJh ciBpbWFnZSB3aXRoIHZhbHVlIFZBTFVFIHVzaW5nIGdpdmVuIFNUWUxFCmFuZCBzdHlsZSBlbGVt ZW50cyBBUkdTLiIKCiAgKGxldCogKChkZWZhdWx0IHN2Zy1saWItc3R5bGUtZGVmYXVsdCkKICAg ICAgICAgKHN0eWxlIChpZiBzdHlsZSAoYXBwbHkgIydzdmctbGliLXN0eWxlIG5pbCBzdHlsZSkg ZGVmYXVsdCkpCiAgICAgICAgIChzdHlsZSAoaWYgYXJncyAgKGFwcGx5ICMnc3ZnLWxpYi1zdHls ZSBzdHlsZSBhcmdzKSBzdHlsZSkpCgogICAgICAgICAoZm9yZWdyb3VuZCAgKHBsaXN0LWdldCBz dHlsZSA6Zm9yZWdyb3VuZCkpCiAgICAgICAgIChiYWNrZ3JvdW5kICAocGxpc3QtZ2V0IHN0eWxl IDpiYWNrZ3JvdW5kKSkKICAgICAgICAgKHN0cm9rZSAgICAgIChwbGlzdC1nZXQgc3R5bGUgOnN0 cm9rZSkpCiAgICAgICAgICh3aWR0aCAgICAgICAocGxpc3QtZ2V0IHN0eWxlIDp3aWR0aCkpCiAg ICAgICAgIChoZWlnaHQgICAgICAocGxpc3QtZ2V0IHN0eWxlIDpoZWlnaHQpKQogICAgICAgICAo cmFkaXVzICAgICAgKHBsaXN0LWdldCBzdHlsZSA6cmFkaXVzKSkKICAgICAgICAgKHNjYWxlICAg ICAgIChwbGlzdC1nZXQgc3R5bGUgOnNjYWxlKSkKICAgICAgICAgKG1hcmdpbiAgICAgIChwbGlz dC1nZXQgc3R5bGUgOm1hcmdpbikpCiAgICAgICAgIChwYWRkaW5nICAgICAocGxpc3QtZ2V0IHN0 eWxlIDpwYWRkaW5nKSkKICAgICAgICAgKGZvbnQtc2l6ZSAgIChwbGlzdC1nZXQgc3R5bGUgOmZv bnQtc2l6ZSkpCiAgICAgICAgIChmb250LWZhbWlseSAocGxpc3QtZ2V0IHN0eWxlIDpmb250LWZh bWlseSkpCiAgICAgICAgIChmb250LXdlaWdodCAocGxpc3QtZ2V0IHN0eWxlIDpmb250LXdlaWdo dCkpCgogICAgICAgICAodHh0LWNoYXItd2lkdGggICh3aW5kb3ctZm9udC13aWR0aCkpCiAgICAg ICAgICh0eHQtY2hhci1oZWlnaHQgKHdpbmRvdy1mb250LWhlaWdodCkpCiAgICAgICAgIAogICAg ICAgICAoZm9udC1pbmZvICAgICAgIChmb250LWluZm8gKGZvcm1hdCAiJXMtJWQiIGZvbnQtZmFt aWx5IGZvbnQtc2l6ZSkpKQogICAgICAgICAoYXNjZW50ICAgICAgICAgIChhcmVmIGZvbnQtaW5m byA4KSkKICAgICAgICAgKHRhZy1jaGFyLXdpZHRoICAoYXJlZiBmb250LWluZm8gMTEpKQogICAg ICAgICAodGFnLWNoYXItaGVpZ2h0IChhcmVmIGZvbnQtaW5mbyAzKSkKCiAgICAgICAgICh0YWct d2lkdGggICAgICAgKCogd2lkdGggdHh0LWNoYXItd2lkdGgpKQogICAgICAgICAodGFnLWhlaWdo dCAgICAgICgqIHR4dC1jaGFyLWhlaWdodCBoZWlnaHQpKQoKICAgICAgICAgKHN2Zy13aWR0aCAg ICAgICAoKyB0YWctd2lkdGggKCogbWFyZ2luIHR4dC1jaGFyLXdpZHRoKSkpCiAgICAgICAgIChz dmctaGVpZ2h0ICAgICAgdGFnLWhlaWdodCkKCiAgICAgICAgICh0YWcteCAoLyAoLSBzdmctd2lk dGggdGFnLXdpZHRoKSAyKSkKICAgICAgICAgKHN2ZyAoc3ZnLWNyZWF0ZSBzdmctd2lkdGggc3Zn LWhlaWdodCkpKQoKICAgIChpZiAoPj0gc3Ryb2tlIDAuMjUpCiAgICAgICAgKHN2Zy1yZWN0YW5n bGUgc3ZnIHRhZy14IDAgdGFnLXdpZHRoIHRhZy1oZWlnaHQKICAgICAgICAgICAgICAgICAgICAg ICA6ZmlsbCBmb3JlZ3JvdW5kIDpyeCByYWRpdXMpKQogICAgKHN2Zy1yZWN0YW5nbGUgc3ZnICgr IHRhZy14ICgvIHN0cm9rZSAyLjApKQogICAgICAgICAgICAgICAgICAgICAgICgvIHN0cm9rZSAy LjApCiAgICAgICAgICAgICAgICAgICAgICAgKC0gdGFnLXdpZHRoIHN0cm9rZSkKICAgICAgICAg ICAgICAgICAgICAgICAoLSB0YWctaGVpZ2h0IHN0cm9rZSkKICAgICAgICAgICAgICAgICAgICAg ICA6ZmlsbCBiYWNrZ3JvdW5kIDpyeCAoLSByYWRpdXMgKC8gc3Ryb2tlIDIuMCkpKQogICAgKHN2 Zy1yZWN0YW5nbGUgc3ZnICgrIHRhZy14ICgvIHN0cm9rZSAyLjApIHBhZGRpbmcpCiAgICAgICAg ICAgICAgICAgICAgICAgKCsgKC8gc3Ryb2tlIDIuMCkgcGFkZGluZykKICAgICAgICAgICAgICAg ICAgICAgICAoLSAoKiB2YWx1ZSB0YWctd2lkdGgpIHN0cm9rZSAoKiAyIHBhZGRpbmcpKQogICAg ICAgICAgICAgICAgICAgICAgICgtIHRhZy1oZWlnaHQgc3Ryb2tlICgqIDIgcGFkZGluZykpCiAg ICAgICAgICAgICAgICAgICAgICAgOmZpbGwgZm9yZWdyb3VuZCA6cnggKC0gcmFkaXVzICgvIHN0 cm9rZSAyLjApKSkKICAgIAogICAgKHN2Zy1pbWFnZSBzdmcgOmFzY2VudCAnY2VudGVyKSkpCgoK Cjs7IENyZWF0ZSBhIHJvdW5kZWQgYm94IGljb24KKGRlZnVuIHN2Zy1saWItLWljb24tZ2V0LWRh dGEgKGNvbGxlY3Rpb24gbmFtZSAmb3B0aW9uYWwgZm9yY2UtcmVsb2FkKQogICJSZXRyaWV2ZSBp Y29uIE5BTUUgZnJvbSBDT0xMRUNUSU9OLgoKQ2FjaGVkIHZlcnNpb24gaXMgcmV0dXJuZWQgaWYg aXQgZXhpc3RzIHVubGVzcyBGT1JDRS1SRUxPQUQgaXMgdC4iCgogIDs7IEJ1aWxkIHVybCBmcm9t IGNvbGxlY3Rpb24gYW5kIG5hbWUgd2l0aG91dCBjaGVja2luZyBmb3IgZXJyb3IKICAobGV0ICgo dXJsIChmb3JtYXQgKGNkciAoYXNzb2MgY29sbGVjdGlvbiBzdmctbGliLWljb24tY29sbGVjdGlv bnMpKSBuYW1lKSkpCiAgICA7OyBjcmVhdGUgdGhlIHN2Zy1saWItaWNvbnMtZGlyIGlmIG5vdCBl eGlzdHMKICAgICh1bmxlc3MgKGZpbGUtZXhpc3RzLXAgc3ZnLWxpYi1pY29ucy1kaXIpCiAgICAg IChtYWtlLWRpcmVjdG9yeSBzdmctbGliLWljb25zLWRpcikpCiAgICAobGV0KiAoKGZpbGVuYW1l IChleHBhbmQtZmlsZS1uYW1lIChmb3JtYXQgIiVzXyVzLnN2ZyIgY29sbGVjdGlvbiBuYW1lKSBz dmctbGliLWljb25zLWRpcikpCiAgICAgICAgICAgKGJ1ZmZlciAoaWYgKG9yIGZvcmNlLXJlbG9h ZCAobm90IChmaWxlLWV4aXN0cy1wIGZpbGVuYW1lKSkpCiAgICAgICAgICAgICAgICAgICAgICAg KHdpdGgtY3VycmVudC1idWZmZXIgKHVybC1yZXRyaWV2ZS1zeW5jaHJvbm91c2x5IHVybCkKICAg ICAgICAgICAgICAgICAgICAgICAgIChnb3RvLWNoYXIgKHBvaW50LW1pbikpCiAgICAgICAgICAg ICAgICAgICAgICAgICAoc2VhcmNoLWZvcndhcmQgIlxuXG4iKQogICAgICAgICAgICAgICAgICAg ICAgICAgKHdyaXRlLXJlZ2lvbiAocG9pbnQpIChwb2ludC1tYXgpIGZpbGVuYW1lKQogICAgICAg ICAgICAgICAgICAgICAgICAgKGN1cnJlbnQtYnVmZmVyKSkKICAgICAgICAgICAgICAgICAgICAg KHdpdGgtY3VycmVudC1idWZmZXIgKGdlbmVyYXRlLW5ldy1idWZmZXIgIiAqdGVtcCoiKQogICAg ICAgICAgICAgICAgICAgICAgIChpbnNlcnQtZmlsZS1jb250ZW50cyBmaWxlbmFtZSkKICAgICAg ICAgICAgICAgICAgICAgICAoY3VycmVudC1idWZmZXIpKSkpKQogICAgICAod2l0aC1jdXJyZW50 LWJ1ZmZlciBidWZmZXIKICAgICAgICAoeG1sLXBhcnNlLXJlZ2lvbiAocG9pbnQtbWluKSAocG9p bnQtbWF4KSkpKSkpCgoKKGRlZnVuIHN2Zy1saWItaWNvbiAoaWNvbiAmb3B0aW9uYWwgc3R5bGUg JnJlc3QgYXJncykKICAiQ3JlYXRlIGEgU1ZHIGltYWdlIGRpc3BsYXlpbmcgaWNvbiBOQU1FIGZy b20gQ09MTEVDVElPTiB1c2luZwpnaXZlbiBTVFlMRSBhbmQgc3R5bGUgZWxlbWVudHMgQVJHUy4i CgogIChsZXQqICgoZGVmYXVsdCBzdmctbGliLXN0eWxlLWRlZmF1bHQpCiAgICAgICAgIChzdHls ZSAoaWYgc3R5bGUgKGFwcGx5ICMnc3ZnLWxpYi1zdHlsZSBuaWwgc3R5bGUpIGRlZmF1bHQpKQog ICAgICAgICAoc3R5bGUgKGlmIGFyZ3MgIChhcHBseSAjJ3N2Zy1saWItc3R5bGUgc3R5bGUgYXJn cykgc3R5bGUpKQoKICAgICAgICAgKGNvbGxlY3Rpb24gIChwbGlzdC1nZXQgc3R5bGUgOmNvbGxl Y3Rpb24pKQogICAgICAgICAocm9vdCAoc3ZnLWxpYi0taWNvbi1nZXQtZGF0YSBjb2xsZWN0aW9u IGljb24pKQoKICAgICAgICAgCiAgICAgICAgIChmb3JlZ3JvdW5kICAocGxpc3QtZ2V0IHN0eWxl IDpmb3JlZ3JvdW5kKSkKICAgICAgICAgKGJhY2tncm91bmQgIChwbGlzdC1nZXQgc3R5bGUgOmJh Y2tncm91bmQpKQogICAgICAgICAoc3Ryb2tlICAgICAgKHBsaXN0LWdldCBzdHlsZSA6c3Ryb2tl KSkKICAgICAgICAgKGhlaWdodCAgICAgIChwbGlzdC1nZXQgc3R5bGUgOmhlaWdodCkpCiAgICAg ICAgIChyYWRpdXMgICAgICAocGxpc3QtZ2V0IHN0eWxlIDpyYWRpdXMpKQogICAgICAgICAoc2Nh bGUgICAgICAgKHBsaXN0LWdldCBzdHlsZSA6c2NhbGUpKQogICAgICAgICAobWFyZ2luICAgICAg KHBsaXN0LWdldCBzdHlsZSA6bWFyZ2luKSkKICAgICAgICAgKHBhZGRpbmcgICAgIChwbGlzdC1n ZXQgc3R5bGUgOnBhZGRpbmcpKQogICAgICAgICAoZm9udC1zaXplICAgKHBsaXN0LWdldCBzdHls ZSA6Zm9udC1zaXplKSkKICAgICAgICAgKGZvbnQtZmFtaWx5IChwbGlzdC1nZXQgc3R5bGUgOmZv bnQtZmFtaWx5KSkKICAgICAgICAgKGZvbnQtd2VpZ2h0IChwbGlzdC1nZXQgc3R5bGUgOmZvbnQt d2VpZ2h0KSkKICAgICAgICAgKHdpZHRoICAgICAgKCsgMiBwYWRkaW5nKSkKICAgICAgICAgCiAg ICAgICAgICh0eHQtY2hhci13aWR0aCAgKHdpbmRvdy1mb250LXdpZHRoKSkKICAgICAgICAgKHR4 dC1jaGFyLWhlaWdodCAod2luZG93LWZvbnQtaGVpZ2h0KSkKICAgICAgICAgKGJveC13aWR0aCAg ICAgICAoKiB3aWR0aCB0eHQtY2hhci13aWR0aCkpCiAgICAgICAgIChib3gtaGVpZ2h0ICAgICAg KCogaGVpZ2h0IHR4dC1jaGFyLWhlaWdodCkpCiAgICAgICAgIChzdmctd2lkdGggICAgICAgKCsg Ym94LXdpZHRoICgqIG1hcmdpbiB0eHQtY2hhci13aWR0aCkpKQogICAgICAgICAoc3ZnLWhlaWdo dCAgICAgIGJveC1oZWlnaHQpCiAgICAgICAgIChib3gteCAgICAgICAgICAgKC8gKC0gc3ZnLXdp ZHRoIGJveC13aWR0aCkgMikpCiAgICAgICAgIChib3gteSAgICAgICAgICAgMCkKCiAgICAgICAg IDs7IFJlYWQgb3JpZ2luYWwgdmlld2JveAogICAgICAgICAodmlld2JveCAoY2RyIChhc3NxICd2 aWV3Qm94ICh4bWwtbm9kZS1hdHRyaWJ1dGVzIChjYXIgcm9vdCkpKSkpCiAgICAgICAgICh2aWV3 Ym94IChtYXBjYXIgJ3N0cmluZy10by1udW1iZXIgKHNwbGl0LXN0cmluZyB2aWV3Ym94KSkpCiAg ICAgICAgIChpY29uLXggICAgICAobnRoIDAgdmlld2JveCkpCiAgICAgICAgIChpY29uLXkgICAg ICAobnRoIDEgdmlld2JveCkpCiAgICAgICAgIChpY29uLXdpZHRoICAobnRoIDIgdmlld2JveCkp CiAgICAgICAgIChpY29uLWhlaWdodCAobnRoIDMgdmlld2JveCkpCiAgICAgICAgIChzY2FsZSAg ICAgICAoKiBzY2FsZSAoLyAoZmxvYXQgYm94LWhlaWdodCkgKGZsb2F0IGljb24taGVpZ2h0KSkp KQogICAgICAgICAoaWNvbi10cmFuc2Zvcm0KICAgICAgICAgIChmb3JtYXQgInRyYW5zbGF0ZSgl ZiwlZikgc2NhbGUoJWYpIHRyYW5zbGF0ZSglZiwlZikiCiAgICAgICAgICAgICAgICAgICgtIGlj b24teCApCiAgICAgICAgICAgICAgICAgICgtIGljb24teSApCiAgICAgICAgICAgICAgICAgIHNj YWxlCiAgICAgICAgICAgICAgICAgICgtICgvIHN2Zy13aWR0aCAyIHNjYWxlKSAoLyBpY29uLXdp ZHRoIDIpKQogICAgICAgICAgICAgICAgICAoLSAoLyBzdmctaGVpZ2h0IDIgc2NhbGUpICgvIGlj b24taGVpZ2h0IDIpKSkpCgogICAgICAgICAoc3ZnIChzdmctY3JlYXRlIHN2Zy13aWR0aCBzdmct aGVpZ2h0KSkpCgogICAgKGlmICg+PSBzdHJva2UgMC4yNSkKICAgICAgICAoc3ZnLXJlY3Rhbmds ZSBzdmcgYm94LXggYm94LXkgYm94LXdpZHRoIGJveC1oZWlnaHQKICAgICAgICAgICAgICAgICAg ICAgICA6ZmlsbCBmb3JlZ3JvdW5kIDpyeCByYWRpdXMpKQogICAgKHN2Zy1yZWN0YW5nbGUgc3Zn ICgrIGJveC14ICgvIHN0cm9rZSAyLjApKQogICAgICAgICAgICAgICAgICAgICAgICgrIGJveC15 ICgvIHN0cm9rZSAyLjApKQogICAgICAgICAgICAgICAgICAgICAgICgtIGJveC13aWR0aCBzdHJv a2UpCiAgICAgICAgICAgICAgICAgICAgICAgKC0gYm94LWhlaWdodCBzdHJva2UpCiAgICAgICAg ICAgICAgICAgICAgICAgOmZpbGwgYmFja2dyb3VuZCA6cnggKC0gcmFkaXVzICgvIHN0cm9rZSAy LjApKSkKICAgIAogICAgKGRvbGlzdCAoaXRlbSAoeG1sLWdldC1jaGlsZHJlbiAoY2FyIHJvb3Qp ICdwYXRoKSkKICAgICAgKGxldCogKChhdHRycyAoeG1sLW5vZGUtYXR0cmlidXRlcyBpdGVtKSkK ICAgICAgICAgICAgIChwYXRoIChjZHIgKGFzc29jICdkIGF0dHJzKSkpCiAgICAgICAgICAgICAo ZmlsbCAob3IgKGNkciAoYXNzb2MgJ2ZpbGwgYXR0cnMpKSBmb3JlZ3JvdW5kKSkpCiAgICAgICAg KHN2Zy1ub2RlIHN2ZyAncGF0aCA6ZCBwYXRoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6 ZmlsbCBmb3JlZ3JvdW5kCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6dHJhbnNmb3JtIGlj b24tdHJhbnNmb3JtKSkpCiAgICAoc3ZnLWltYWdlIHN2ZyA6YXNjZW50ICdjZW50ZXIpKSkKCgoK OzsgQ3JlYXRlIGFuIGltYWdlIGRpc3BsYXlpbmcgTEFCRUwgaW4gYSByb3VuZGVkIGJveC4KKGRl ZnVuIHN2Zy1saWItYnV0dG9uIChpY29uIGxhYmVsICZvcHRpb25hbCBzdHlsZSAmcmVzdCBhcmdz KQogICJDcmVhdGUgYW4gaW1hZ2UgZGlzcGxheWluZyBMQUJFTCBpbiBhIHJvdW5kZWQgYm94IHVz aW5nIGdpdmVuIFNUWUxFCmFuZCBzdHlsZSBlbGVtZW50cyBBUkdTLiIKCiAgKGxldCogKChkZWZh dWx0IHN2Zy1saWItc3R5bGUtZGVmYXVsdCkKICAgICAgICAgKHN0eWxlIChpZiBzdHlsZSAoYXBw bHkgIydzdmctbGliLXN0eWxlIG5pbCBzdHlsZSkgZGVmYXVsdCkpCiAgICAgICAgIChzdHlsZSAo aWYgYXJncyAgKGFwcGx5ICMnc3ZnLWxpYi1zdHlsZSBzdHlsZSBhcmdzKSBzdHlsZSkpCgogICAg ICAgICAoY29sbGVjdGlvbiAocGxpc3QtZ2V0IHN0eWxlIDpjb2xsZWN0aW9uKSkKICAgICAgICAg KHJvb3QgKHN2Zy1saWItLWljb24tZ2V0LWRhdGEgY29sbGVjdGlvbiBpY29uKSkKICAgICAgICAg CiAgICAgICAgIChmb3JlZ3JvdW5kICAocGxpc3QtZ2V0IHN0eWxlIDpmb3JlZ3JvdW5kKSkKICAg ICAgICAgKGJhY2tncm91bmQgIChwbGlzdC1nZXQgc3R5bGUgOmJhY2tncm91bmQpKQogICAgICAg ICAoc3Ryb2tlICAgICAgKHBsaXN0LWdldCBzdHlsZSA6c3Ryb2tlKSkKICAgICAgICAgKHdpZHRo ICAgICAgIChwbGlzdC1nZXQgc3R5bGUgOndpZHRoKSkKICAgICAgICAgKGhlaWdodCAgICAgIChw bGlzdC1nZXQgc3R5bGUgOmhlaWdodCkpCiAgICAgICAgIChyYWRpdXMgICAgICAocGxpc3QtZ2V0 IHN0eWxlIDpyYWRpdXMpKQogICAgICAgICAoc2NhbGUgICAgICAgKHBsaXN0LWdldCBzdHlsZSA6 c2NhbGUpKQogICAgICAgICAobWFyZ2luICAgICAgKHBsaXN0LWdldCBzdHlsZSA6bWFyZ2luKSkK ICAgICAgICAgKHBhZGRpbmcgICAgIChwbGlzdC1nZXQgc3R5bGUgOnBhZGRpbmcpKQogICAgICAg ICAoZm9udC1zaXplICAgKHBsaXN0LWdldCBzdHlsZSA6Zm9udC1zaXplKSkKICAgICAgICAgKGZv bnQtZmFtaWx5IChwbGlzdC1nZXQgc3R5bGUgOmZvbnQtZmFtaWx5KSkKICAgICAgICAgKGZvbnQt d2VpZ2h0IChwbGlzdC1nZXQgc3R5bGUgOmZvbnQtd2VpZ2h0KSkKCiAgICAgICAgIChsYWJlbC1s ZW5ndGggICAgKCsgKGxlbmd0aCBsYWJlbCkgMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAg CiAgICAgICAgICh0eHQtY2hhci13aWR0aCAgKHdpbmRvdy1mb250LXdpZHRoKSkKICAgICAgICAg KHR4dC1jaGFyLWhlaWdodCAod2luZG93LWZvbnQtaGVpZ2h0KSkKICAgICAgICAgKGJveC13aWR0 aCAgICAgICAoKiB3aWR0aCB0eHQtY2hhci13aWR0aCkpCiAgICAgICAgIChib3gtaGVpZ2h0ICAg ICAgKCogaGVpZ2h0IHR4dC1jaGFyLWhlaWdodCkpCgogICAgICAgICAoZm9udC1pbmZvICAgICAg IChmb250LWluZm8gKGZvcm1hdCAiJXMtJWQiIGZvbnQtZmFtaWx5IGZvbnQtc2l6ZSkpKQogICAg ICAgICAoYXNjZW50ICAgICAgICAgIChhcmVmIGZvbnQtaW5mbyA4KSkKICAgICAgICAgKHRhZy1j aGFyLXdpZHRoICAoYXJlZiBmb250LWluZm8gMTEpKQogICAgICAgICAodGFnLWNoYXItaGVpZ2h0 IChhcmVmIGZvbnQtaW5mbyAzKSkKICAgICAgICAgKHRhZy13aWR0aCAgICAgICAoKiAoKyBsYWJl bC1sZW5ndGggcGFkZGluZykgdHh0LWNoYXItd2lkdGgpKQogICAgICAgICAodGFnLWhlaWdodCAg ICAgICgqIHR4dC1jaGFyLWhlaWdodCBoZWlnaHQpKQoKICAgICAgICAgKHN2Zy13aWR0aCAgICAg ICAoKyB0YWctd2lkdGggKCogbWFyZ2luIHR4dC1jaGFyLXdpZHRoKSkpCiAgICAgICAgIChzdmct aGVpZ2h0ICAgICAgdGFnLWhlaWdodCkKICAgICAgICAgCiAgICAgICAgICh0YWcteCAoLyAoLSBz dmctd2lkdGggdGFnLXdpZHRoKSAyKSkKICAgICAgICAgKHRleHQteCAoKyB0YWcteCAoLyAoLSB0 YWctd2lkdGggKCogKGxlbmd0aCBsYWJlbCkgdGFnLWNoYXItd2lkdGgpKSAyKSkpCiAgICAgICAg ICh0ZXh0LXggKCsgdGV4dC14IHRhZy1jaGFyLXdpZHRoKSkKICAgICAgICAgKHRleHQteSBhc2Nl bnQpCgogICAgICAgICA7OyA7OyBSZWFkIG9yaWdpbmFsIHZpZXdib3gKICAgICAgICAgKHZpZXdi b3ggKGNkciAoYXNzcSAndmlld0JveCAoeG1sLW5vZGUtYXR0cmlidXRlcyAoY2FyIHJvb3QpKSkp KQogICAgICAgICAodmlld2JveCAobWFwY2FyICdzdHJpbmctdG8tbnVtYmVyIChzcGxpdC1zdHJp bmcgdmlld2JveCkpKQogICAgICAgICAoaWNvbi14ICAgICAgKG50aCAwIHZpZXdib3gpKQogICAg ICAgICAoaWNvbi15ICAgICAgKG50aCAxIHZpZXdib3gpKQogICAgICAgICAoaWNvbi13aWR0aCAg KG50aCAyIHZpZXdib3gpKQogICAgICAgICAoaWNvbi1oZWlnaHQgKG50aCAzIHZpZXdib3gpKQog ICAgICAgICAoc2NhbGUgICAgICAgKCogc2NhbGUgKC8gKGZsb2F0IHRhZy1oZWlnaHQpIChmbG9h dCBpY29uLWhlaWdodCkpKSkKICAgICAgICAgKGljb24tdHJhbnNmb3JtCiAgICAgICAgICAoZm9y bWF0ICJ0cmFuc2xhdGUoJWYsJWYpIHNjYWxlKCVmKSB0cmFuc2xhdGUoJWYsJWYpIgogICAgICAg ICAgICAgICAgICAoLSBpY29uLXggKQogICAgICAgICAgICAgICAgICAoLSBpY29uLXkgKQogICAg ICAgICAgICAgICAgICBzY2FsZQogICAgICAgICAgICAgICAgICAoLSAoLyAoLSB0ZXh0LXggKCog dGFnLWNoYXItd2lkdGggMS4yNSkpIHNjYWxlKSAoLyBpY29uLXdpZHRoIDIpKQogICAgICAgICAg ICAgICAgICAoLSAoLyBzdmctaGVpZ2h0IDIgc2NhbGUpICgvIGljb24taGVpZ2h0IDIpKSkpCiAg ICAgICAgIChzdmcgKHN2Zy1jcmVhdGUgc3ZnLXdpZHRoIHN2Zy1oZWlnaHQpKSkKCiAgICAoaWYg KD49IHN0cm9rZSAwLjI1KQogICAgICAgIChzdmctcmVjdGFuZ2xlIHN2ZyB0YWcteCAwIHRhZy13 aWR0aCB0YWctaGVpZ2h0CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDpmaWxsIGZvcmVncm91 bmQgOnJ4IHJhZGl1cykpCiAgICAoc3ZnLXJlY3RhbmdsZSBzdmcgKCsgdGFnLXggKC8gc3Ryb2tl IDIuMCkpICgvIHN0cm9rZSAyLjApCiAgICAgICAgICAgICAgICAgICAgICAgKC0gdGFnLXdpZHRo IHN0cm9rZSkgKC0gdGFnLWhlaWdodCBzdHJva2UpCiAgICAgICAgICAgICAgICAgICAgICAgOmZp bGwgYmFja2dyb3VuZCA6cnggKC0gcmFkaXVzICgvIHN0cm9rZSAyLjApKSkKICAgIChzdmctdGV4 dCBzdmcgbGFiZWwKICAgICAgICAgICAgICA6Zm9udC1mYW1pbHkgZm9udC1mYW1pbHkgOmZvbnQt d2VpZ2h0IGZvbnQtd2VpZ2h0ICA6Zm9udC1zaXplIGZvbnQtc2l6ZQogICAgICAgICAgICAgIDpm aWxsIGZvcmVncm91bmQgOnggdGV4dC14IDp5IHRleHQteSkKCgogICAgKGRvbGlzdCAoaXRlbSAo eG1sLWdldC1jaGlsZHJlbiAoY2FyIHJvb3QpICdwYXRoKSkKICAgICAgKGxldCogKChhdHRycyAo eG1sLW5vZGUtYXR0cmlidXRlcyBpdGVtKSkKICAgICAgICAgICAgIChwYXRoIChjZHIgKGFzc29j ICdkIGF0dHJzKSkpCiAgICAgICAgICAgICAoZmlsbCAob3IgKGNkciAoYXNzb2MgJ2ZpbGwgYXR0 cnMpKSBmb3JlZ3JvdW5kKSkpCiAgICAgICAgKHN2Zy1ub2RlIHN2ZyAncGF0aCA6ZCBwYXRoCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICA6ZmlsbCBmb3JlZ3JvdW5kCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICA6dHJhbnNmb3JtIGljb24tdHJhbnNmb3JtKSkpCiAgICAoc3ZnLWltYWdl IHN2ZyA6YXNjZW50ICdjZW50ZXIpKSkKCgoKKGRlZnVuIHN2Zy1saWItY29uY2F0IChzdmctaW1h Z2UtMSBzdmctaW1hZ2UtMikKICAiQ29uY2F0ZW5hdGUgdHdvIHN2ZyBpbWFnZXMgaG9yaXpvbnRh bGx5LiIKCiAobGV0KiAoKHN2ZyAoY2FyICh3aXRoLXRlbXAtYnVmZmVyCiAJICAgICAgICAgICAg ICAgIChpbnNlcnQgKHBsaXN0LWdldCAoY2RyIHN2Zy1pbWFnZS0xKSA6ZGF0YSkpCiAJICAgICAg ICAgICAgICAgICh4bWwtcGFyc2UtcmVnaW9uIChwb2ludC1taW4pIChwb2ludC1tYXgpKSkpKQog ICAgICAgIChhdHRycyAoeG1sLW5vZGUtYXR0cmlidXRlcyBzdmcpKQogICAgICAgICh3aWR0aC0x IChzdHJpbmctdG8tbnVtYmVyIChjZHIgKGFzc3EgJ3dpZHRoIGF0dHJzKSkpKQogICAgICAgICho ZWlnaHQtMSAoc3RyaW5nLXRvLW51bWJlciAoY2RyIChhc3NxICdoZWlnaHQgYXR0cnMpKSkpCiAg ICAgICAgKGNoaWxkcmVuLTEgKHhtbC1ub2RlLWNoaWxkcmVuIHN2ZykpCiAKICAgICAgICAoc3Zn IChjYXIgKHdpdGgtdGVtcC1idWZmZXIKIAkgICAgICAgICAgICAgICAgKGluc2VydCAocGxpc3Qt Z2V0IChjZHIgc3ZnLWltYWdlLTIpIDpkYXRhKSkKIAkgICAgICAgICAgICAgICAgKHhtbC1wYXJz ZS1yZWdpb24gKHBvaW50LW1pbikgKHBvaW50LW1heCkpKSkpCiAgICAgICAgKGF0dHJzICh4bWwt bm9kZS1hdHRyaWJ1dGVzIHN2ZykpCiAgICAgICAgKHdpZHRoLTIgKHN0cmluZy10by1udW1iZXIg KGNkciAoYXNzcSAnd2lkdGggYXR0cnMpKSkpCiAgICAgICAgKGhlaWdodC0yIChzdHJpbmctdG8t bnVtYmVyIChjZHIgKGFzc3EgJ2hlaWdodCBhdHRycykpKSkKICAgICAgICAoY2hpbGRyZW4tMiAo eG1sLW5vZGUtY2hpbGRyZW4gc3ZnKSkKCiAgICAgICAgKHdpZHRoICgrIHdpZHRoLTEgd2lkdGgt MikpCiAgICAgICAgKGhlaWdodCAobWF4IGhlaWdodC0xIGhlaWdodC0yKSkKICAgICAgICAodHJh bnNmb3JtIChmb3JtYXQgInRyYW5zbGF0ZSglZiwwKSIgd2lkdGgtMSkpCiAgICAgICAgKHN2ZyAo c3ZnLWNyZWF0ZSB3aWR0aCBoZWlnaHQpKSkKCiAgIChkb2xpc3QgKGNoaWxkIGNoaWxkcmVuLTEp CiAgICAgKGRvbS1hcHBlbmQtY2hpbGQgc3ZnIGNoaWxkKSkKCiAgIChkb2xpc3QgKGNoaWxkIGNo aWxkcmVuLTIpCiAgICAgKGlmIChub3QgKHN0cmluZ3AgY2hpbGQpKQogICAgICAgICAoZG9tLXNl dC1hdHRyaWJ1dGUgY2hpbGQgJ3RyYW5zZm9ybSB0cmFuc2Zvcm0pKQogICAgIChkb20tYXBwZW5k LWNoaWxkIHN2ZyBjaGlsZCkpCiAgIHN2ZykpCgoocHJvdmlkZSAnc3ZnLWxpYikKOzs7IHN2Zy1s aWIuZWwgZW5kcyBoZXJlCgoKCiAgICAgIAo= --000000000000c1882805ccfafdcc--