Received: from localhost ([::1]:56572 helo=stodi.digitalkingdom.org) by stodi.digitalkingdom.org with esmtp (Exim 4.76) (envelope-from ) id 1UX1R0-0007TE-G0; Mon, 29 Apr 2013 20:40:54 -0700 Received: from 173-13-139-235-sfba.hfc.comcastbusiness.net ([173.13.139.235]:45077 helo=digitalkingdom.org) by stodi.digitalkingdom.org with smtp (Exim 4.76) (envelope-from ) id 1UX1Qq-0007T8-UP for wikichanges@lojban.org; Mon, 29 Apr 2013 20:40:53 -0700 Received: by digitalkingdom.org (sSMTP sendmail emulation); Mon, 29 Apr 2013 20:40:44 -0700 From: "Apache" Date: Mon, 29 Apr 2013 20:40:44 -0700 To: wikichanges@lojban.org X-PHP-Originating-Script: 48:htmlMimeMail.php MIME-Version: 1.0 Message-ID: X-Spam-Score: 2.0 (++) X-Spam_score: 2.0 X-Spam_score_int: 20 X-Spam_bar: ++ X-Spam-Report: Spam detection software, running on the system "stodi.digitalkingdom.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: The page leçons wave en français was changed by daeldir at 05:40 CEST Comment: Traduit la leçon zéro jusqu'à la préface. You can view the page by following this link: http://lojban.org/tiki/le%C3%A7ons%20wave%20en%20fran%C3%A7ais [...] Content analysis details: (2.0 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [URIs: lojban.org] 1.6 RCVD_IN_BRBL_LASTEXT RBL: RCVD_IN_BRBL_LASTEXT [173.13.139.235 listed in bb.barracudacentral.org] 0.4 RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS Subject: [Wikichanges] =?utf-8?q?Wiki_page_le=C3=A7ons_wave_en_fran=C3=A7a?= =?utf-8?q?is_changed_by_daeldir?= X-BeenThere: wikichanges@lojban.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: webmaster@lojban.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: wikichanges-bounces@lojban.org VGhlIHBhZ2UgbGXDp29ucyB3YXZlIGVuIGZyYW7Dp2FpcyB3YXMgY2hhbmdlZCBieSBkYWVsZGly IGF0IDA1OjQwIENFU1QKQ29tbWVudDogVHJhZHVpdCBsYSBsZcOnb24gesOpcm8ganVzcXUnw6Ag bGEgcHLDqWZhY2UuCgpZb3UgY2FuIHZpZXcgdGhlIHBhZ2UgYnkgZm9sbG93aW5nIHRoaXMgbGlu azoKIApodHRwOi8vbG9qYmFuLm9yZy90aWtpL2xlJUMzJUE3b25zJTIwd2F2ZSUyMGVuJTIwZnJh biVDMyVBN2FpcwoKWW91IGNhbiB2aWV3IGEgZGlmZiBiYWNrIHRvIHRoZSBwcmV2aW91cyB2ZXJz aW9uIGJ5IGZvbGxvd2luZyB0aGlzIGxpbms6IApodHRwOi8vbG9qYmFuLm9yZy90aWtpL3Rpa2kt cGFnZWhpc3RvcnkucGhwP3BhZ2U9bGUlQzMlQTdvbnMlMjB3YXZlJTIwZW4lMjBmcmFuJUMzJUE3 YWlzJmNvbXBhcmU9MSZvbGR2ZXI9MyZuZXd2ZXI9NAoKCioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqClRoZSBjaGFuZ2VzIGluIHRoaXMg dmVyc2lvbiBmb2xsb3cgYmVsb3csIGZvbGxvd2VkIGFmdGVyIGJ5IHRoZSBjdXJyZW50IGZ1bGwg cGFnZSB0ZXh0LgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgoKCistKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rCkBAIC1MaW5lczogMTMtMjcgY2hhbmdlZCB0byArTGluZXM6IDEz LTI3IEBACistKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rCgohIUxlw6dvbnMgZGUgbG9qYmFuIOKAkyBsZcOnb24gesOpcm86IGF2YW50IHBy b3BvcwotIENlcyBsZW9ucyBzb250IHVuZSB0ZW50YXRpdmUgZGUgZHZlbG9wcGVyIGxlcyBMZW9u cyBkZSBHb29nbGUgV2F2ZSwgdW4gZXhjZWxsZW50IGRpZGFjdGljaWVsIGNvbnNhY3IgYXUgbG9q YmFuLCBjcml0IHBhciBrcmliYWNyLCB4YWxibywgZXQgZCdhdXRyZXMsIHF1aSwgaGxhcywgbmUg Y291dnJhaXQgcXVlIGxlcyBxdWF0cmVzIHByZW1pZXJzIGNoYXBpdHJlcyBkdSBwcnNlbnQgZGlk YWN0aWNpZWwuIElsIHRyYWl0ZSBkZXMgcmdsZXMgbGVzIHBsdXMgcmNlbnRlcyBkdSBsb2piYW4s IHF1aSBuZSBzb250IHBhcyBjb3V2ZXJ0ZXMgcGFyIGRlIHBsdXMgYW5jaWVucyBjb3VycyB0ZWxz IHF1ZSBXaGF0IGlzIExvamJhbj8sIGV0IExvamJhbiBmb3IgQmVnaW5uZXJzLiAobm90ZSBkdSB0 cmFkdWN0ZXVyIChuZHQpOiBjZXMgZG9jdW1lbnRzIG5lIHBvc3NkZW50IHBhcyAgbWEgY29ubmFp c3NhbmNlIGRlIHRyYWR1Y3Rpb24gZW4gZnJhbmFpcy4pCisgQ2VzIGxlb25zIHNvbnQgdW5lIHRl bnRhdGl2ZSBkZSBkdmVsb3BwZXIgbGVzIExlb25zIGRlIEdvb2dsZSBXYXZlLCB1biBleGNlbGxl bnQgZGlkYWN0aWNpZWwgY29uc2FjciBhdSBsb2piYW4sIGNyaXQgcGFyIGtyaWJhY3IsIHhhbGJv LCBldCBkJ2F1dHJlcywgcXVpLCBobGFzLCBuZSBjb3V2cmFpdCBxdWUgbGVzIHF1YXRyZXMgcHJl bWllcnMgY2hhcGl0cmVzIGR1IHByc2VudCBkaWRhY3RpY2llbC4gSWwgdHJhaXRlIGRlcyByZ2xl cyBsZXMgcGx1cyByY2VudGVzIGR1IGxvamJhbiwgcXVpIG5lIHNvbnQgcGFzIGNvdXZlcnRlcyBw YXIgZGUgcGx1cyBhbmNpZW5zIGNvdXJzIHRlbHMgcXVlIFdoYXQgaXMgTG9qYmFuPywgZXQgTG9q YmFuIGZvciBCZWdpbm5lcnMuCgpTaSBsZSBsb2piYW4gZXN0IHRvdGFsZW1lbnQgbm91dmVhdSBw b3VyIHZvdXMsIGplIHZvdXMgcmVjb21tYW5kZSBkJ8OpY291dGVyIHRvdXQgbGVzIGVucmVnaXN0 cmVtZW50IGRlIGxvamJhbiBwYXJsw6kgcXVlIHZvdXMgcG91cnJleiB0cm91dmVyLCB0YW50IGF2 YW50IHF1ZSBwZW5kYW50IGxhIGxlY3R1cmUgZGUgY2UgZGlkYWN0aWNpZWwsIGFmaW4gZGUgdm91 cyBmYW1pbGlhcmlzZXIgYXZlYyBsZXMgc29ucyBldCBsZXMgbW90cyBkdSBsYW5nYWdlLiBEZSBw bHVzLCBlc3NheWV6IGRlIHByb25vbmNlciBjZSBxdWUgdm91cyBsaXNleiBhdmVjIGwnYWNjZW50 IGR1IGxvamJhbiBzaSB2b3VzIGxlIHBvdXZlei4gQ2VjaSB2b3VzIGFpZGVyYSDDoCBwcm9ub25j ZXIgbGUgbG9qYmFuLiAKCi0gRW4gc3VpdmFudCBjZSBkaWRhY3RpY2llbCwgaWwgZXN0IGNvbnNl aWxsIGRlIHByZW5kcmUgZGVzIHBhdXNlcyBlbnRyZSBsZXMgbGVvbnMgYWZpbiBkZSBkaWdyZXIg Y2UgcXVlIHZvdXMgYXZleiBhcHByaXMuIEonYWkgZXNzYXkgZGUgY29uc3RydWlyZSBjZXMgbGVv bnMgZHUgc2ltcGxlIGF1IGNvbXBsZXhlLCBldCBkJ2V4Y2x1cmUgdG91dCBtb3Qgb3UgY29uY2Vw dCBxdWkgbidhIHBhcyB0IGV4cGxpcXUgZGFucyBsZXMgbGVvbiBwcmNkZW50ZS4gVW5lIGZvaXMg ZXhwbGlxdXMsIGlscyBzb250IHV0aWxpc3MgbGlicmVtZW50IHRvdXQgYXUgbG9uZyBkdSByZXN0 ZSBkdSBkaWRhY3RpY2llbC4gSidleGhvcnRlIGxlIGxlY3RldXIgIG5lIHBhcyBmYWlyZSBsJ2lt cGFzc2Ugc3VyIHVuIGNvbnRlbnUgaW5jb21wcmlzOiBzaSB2b3VzIGF2ZXogdW5lIHF1ZXN0aW9u IG91IHRlcyBpbmNlcnRhaW4gZCd1bmUgY2hvc2UsIG4nYXlleiBwYXMgZGUgY29tcGxleGUgIGRl bWFuZGVyICBsYSBjb21tdW5hdXQgbG9qYmFuLCBxdWkgcGV1dCB0cmUgdHJvdXZlIHN1ciAjbG9q YmFuIHN1ciBsZSByc2VhdSBJUkMgRnJlZW5vZGUgKG5kdDogY2UgY2FuYWwgSVJDIGVzdCBhbmds b3Bob25lLiBWb3VzIHBvdXZleiBhdXNzaSB0ZW50ZXIgdm90cmUgY2hhbmNlIHN1ciBsYSBtYWls aW5nLWxpc3QgZnJhbmNvcGhvbmUgW2h0dHA6Ly9tYWlsLmxvamJhbi5vcmcvbWFpbG1hbi9saXN0 aW5mby9sb2piYW4tZnJ8bG9qYmFuLWZyXSkuIEVsbGUgc2VyYSBoZXVyZXVzZSBkJ2FpZGVyLgor IEVuIHN1aXZhbnQgY2UgZGlkYWN0aWNpZWwsIGlsIGVzdCBjb25zZWlsbCBkZSBwcmVuZHJlIGRl cyBwYXVzZXMgZW50cmUgbGVzIGxlb25zIGFmaW4gZGUgZGlncmVyIGNlIHF1ZSB2b3VzIGF2ZXog YXBwcmlzLiBKJ2FpIGVzc2F5IGRlIGNvbnN0cnVpcmUgY2VzIGxlb25zIGR1IHNpbXBsZSBhdSBj b21wbGV4ZSwgZXQgZCdleGNsdXJlIHRvdXQgbW90IG91IGNvbmNlcHQgcXVpIG4nYSBwYXMgdCBl eHBsaXF1IGRhbnMgbGVzIGxlb24gcHJjZGVudGUuIFVuZSBmb2lzIGV4cGxpcXVzLCBpbHMgc29u dCB1dGlsaXNzIGxpYnJlbWVudCB0b3V0IGF1IGxvbmcgZHUgcmVzdGUgZHUgZGlkYWN0aWNpZWwu IEonZXhob3J0ZSBsZSBsZWN0ZXVyICBuZSBwYXMgZmFpcmUgbCdpbXBhc3NlIHN1ciB1biBjb250 ZW51IGluY29tcHJpczogc2kgdm91cyBhdmV6IHVuZSBxdWVzdGlvbiBvdSB0ZXMgaW5jZXJ0YWlu IGQndW5lIGNob3NlLCBuJ2F5ZXogcGFzIGRlIGNvbXBsZXhlICBkZW1hbmRlciAgbGEgY29tbXVu YXV0IGxvamJhbiwgcXVpIHBldXQgdHJlIHRyb3V2ZSBzdXIgI2xvamJhbiBzdXIgbGUgcnNlYXUg SVJDIEZyZWVub2RlIChlbiBhbmdsYWlzKSwgb3Ugc3VyIGxhIFtodHRwOi8vbWFpbC5sb2piYW4u b3JnL21haWxtYW4vbGlzdGluZm8vbG9qYmFuLWZyfG1haWxpbmctbGlzdCBmcmFuY29waG9uZV0u IEVsbGUgc2VyYSBoZXVyZXVzZSBkJ2FpZGVyLgoKLSBJbiB0aGlzIHR1dG9yaWFsLCBMb2piYW4g dGV4dCBpcyB3cml0dGVuIGluICcnaXRhbGljcycnLiBMYXRlciwgd2hlbiB1c2VkIGFzIExvamJh biBsb2Fud29yZHMgaW4gRW5nbGlzaCBzZW50ZW5jZXMsIHRoZXkgYXJlIG5vdCBtYXJrZWQuIEFu c3dlcnMgdG8gZXhlcmNpc2VzIGFyZSBkaXNwbGF5ZWQgYXMgYSBncmV5IGJhci4gSGlnaGxpZ2h0 IHRoZSB0ZXh0IGluIG9yZGVyIHRvIHNlZSBpdC4KKyBEYW5zIGNlIGRpZGFjdGljaWVsLCBsZSB0 ZXh0ZSBlbiBsb2piYW4gZXN0IGNyaXQgZW4gJydpdGFsaXF1ZXMnJy4gUGx1cyB0YXJkLCBxdWFu ZCB1dGlsaXNzIGNvbW1lcyBtb3RzIGVtcHJ1bnRzIGR1IGxvamJhbiBkYW5zIGRlcyBwaHJhc2Vz IGZyYW5haXNlcywgaWxzIG5lIHNvbnQgcGFzIG1hcnF1cy4gTGVzIHJwb25zZXMgZGVzIGV4ZXJj aWNlcyBzb250IGFmZmljaGVzIGNvbW1lIHVuZSBiYXJyZSBncmlzZS4gU2xlY3Rpb25uZXogY2V0 dGUgYmFycmUgcG91ciB2b2lyIGxlIHRleHRlLgoKLSBMYXN0bHksIEkgaGF2ZSBhcyBmYXIgYXMg cG9zc2libGUgYXR0ZW1wdGVkIHRvIHVzZSB0aGUgTG9qYmFuIHdvcmRzIGZvciBncmFtbWF0aWNh bCBjb25zdHJ1Y3RzOiAnJ3N1bWthJ2knJyBpbnN0ZWFkIG9mIHByby1zdW10aSwgJydzdW10Y2l0 YScnIGluc3RlYWQgb2YgbW9kYWwgYW5kICcnanVmcmEnJyBpbnN0ZWFkIG9mIHV0dGVyYW5jZS4g VGhpcyBpcyBiZWNhdXNlIEkgZmVlbCB0aGUgRW5nbGlzaCB3b3JkcyBhcmUgb2Z0ZW4gZWl0aGVy IGFyYml0cmFyeSwgaW4gd2hpY2ggY2FzZSB0aGV5IGFyZSBqdXN0IG1vcmUgd29yZHMgdG8gbGVh cm4sIG9yIG1pc2xlYWRpbmcsIGluIHdoaWNoIGNhc2UgdGhleSBhcmUgd29yc2UgdGhhbiB1c2Vs ZXNzLiBJbiBlaXRoZXIgY2FzZSwgYXMgbG9uZyBhcyB0aGUgd29yZHMgYXJlIHNwZWNpZmljIHRv IHRob3NlIHdobyBhcmUgbGVhcm5pbmcgTG9qYmFuIGFueXdheSwgdGhlcmUgaXMgbm8gcmVhc29u IGZvciB0aGVtIHRvIGV4aXN0IGFzIHNlcGFyYXRlIEVuZ2xpc2ggd29yZHMuCisgRW5maW4sIGon YWkgYXV0YW50IHF1ZSBwb3NzaWJsZSBlc3NheSBkJ3V0aWxpc2VyIGxlcyBtb3RzIGR1IGxvamJh biBwb3VyIGRzaWduZXIgbGVzIGNvbnN0cnVjdGlvbnMgZ3JhbW1hdGljYWxlczogJydzdW1rYSdp JycgYXUgbGlldSBkZSBwcm8tc3VtdGksICcnc3VtdGNpdGEnJyBhdSBsaWV1IGRlIG1vZGFsLCBl dCAnJ2p1ZnJhJycgYXUgbGlldSBkJ25vbmMuIENlY2kgcGFyY2UgcXVlIGonYWkgbCdpbXByZXNz aW9uIHF1ZSBsZXMgbW90cyBmcmFuYWlzIHNvbnQgc291dmVudCBzb2l0IGFyYml0cmFpcmVzLCBh dXF1ZWwgY2FzIGlscyBzb250IGp1c3RlcyBkZXMgbW90cyBlbiBwbHVzICBhcHByZW5kcmUsIHNv aXQgdHJvbXBldXJzLCBhdXF1ZWwgY2FzIGlscyBzb250IHBpcmUgcXUnaW51dGlsZXMuIERhbnMg bGVzIGRldXggY2FzLCBwdWlzcXVlIGNlcyBtb3RzIHNvbnQgc3BjaWZpcXVlcyAgbCdhcHByZW50 aXNzYWdlIGR1IGxvamJhbiBkZSB0b3V0ZSBmYW9uLCBpbCBuJ3kgYSBwYXMgZGUgcmFpc29uIHBv dXIgZXV4IGQnZXhpc3RlciBjb21tZSBkZXMgbW90cyBmcmFuYWlzIGRpc3RpbmN0LgoKLSAhISFQ cmVmYWNlLiBTb3VuZHMKKyAhISFQcmZhY2UuIFNvbnMKVGhlIGZpcnN0IHRoaW5nIHlvdSBuZWVk IHRvIGRvIHdoZW4geW91IGxlYXJuIGEgZm9yZWlnbiBsYW5ndWFnZSBpcyB0byBiZWNvbWUgZmFt aWxpYXIgd2l0aCB0aGUgc291bmRzIG9mIHRoZSBsYW5ndWFnZSBhbmQgaG93IHRoZXkgYXJlIHdy aXR0ZW4sIGFuZCB0aGUgc2FtZSBnb2VzIGZvciBMb2piYW4uIEZvcnR1bmF0ZWx5LCBMb2piYW4g c291bmRzIChfX3Bob25lbWVzX18pIGFyZSBmYWlybHkgc3RyYWlnaHRmb3J3YXJkLgohISEhVm93 ZWxzCgoKCgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgpUaGUgbmV3IHBhZ2UgY29udGVudCBmb2xsb3dzIGJlbG93LgoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKe0JPWCgK CiAgdGl0bGU9IlRyYXZhaWwgZW4gY291cnMiCgopfQoKdGV4dGUKCkNldHRlIHBhZ2UgZXN0IHVu ZSB0cmFkdWN0aW9uIGVuIGNvdXJzIGRlICgod2F2ZWxlc3NvbnNjb250aW51ZWQpKSBlbiBmcmFu w6dhaXMuIExlIHN0YXR1dCBhY3R1ZWwgZXN0IHVuIGltcG9ydCBiw6p0ZSBldCBtw6ljaGFudCBk ZSBsYSBwYWdlIGFuZ2xhaXNlLiBBdSBmdXIgZXQgw6AgbWVzdXJlIGRlIGxhIHRyYWR1Y3Rpb24s IGNldHRlIG5vdGUgc2VyYSBtaXNlIMOgIGpvdXIgcG91ciBpbmRpcXVlciBsJ8OpdGF0IGQnYXZh bmNlbWVudCBkZXMgbGXDp29ucy4gCgoKCsOJdGF0IGFjdHVlbMKgOiB0cmFkdWN0aW9uIGRlIGxh IGxlw6dvbiB6w6lybyBlbnRhbcOpZS4KCntCT1h9IAoKCgohTGVzIGxlw6dvbnMgV2F2ZSBjb250 aW51w6llc8KgOgoKISEhUsOpZGlnw6llcyBwYXIgbGEga2xha3UsIGF2ZWMgbCdhaWRlIGRlIGxv amJhbmlzdGVzIHZhcmnDqXMuIEJhc8OpZSBzdXIgbGUgdHJhdmFpbCBkZSBsYSAua3JpYmFjci4g UHJpbnRlbXBzIDIwMTMuCgpUcmFkdWl0ZXMgZGUgbCdhbmdsYWlzIHZlcnMgbGUgZnJhbsOnYWlz IHBhciBEYWVsZGlyLgoKCgohIUxlw6dvbnMgZGUgbG9qYmFuIOKAkyBsZcOnb24gesOpcm86IGF2 YW50IHByb3BvcwoKQ2VzIGxlw6dvbnMgc29udCB1bmUgdGVudGF0aXZlIGRlIGTDqXZlbG9wcGVy IGxlcyDCq8KgTGXDp29ucyBkZSBHb29nbGUgV2F2ZcKgwrssIHVuIGV4Y2VsbGVudCBkaWRhY3Rp Y2llbCBjb25zYWNyw6kgYXUgbG9qYmFuLCDDqWNyaXQgcGFyIGtyaWJhY3IsIHhhbGJvLCBldCBk J2F1dHJlcywgcXVpLCBow6lsYXMsIG5lIGNvdXZyYWl0IHF1ZSBsZXMgcXVhdHJlcyBwcmVtaWVy cyBjaGFwaXRyZXMgZHUgcHLDqXNlbnQgZGlkYWN0aWNpZWwuIElsIHRyYWl0ZSBkZXMgcsOoZ2xl cyBsZXMgcGx1cyByw6ljZW50ZXMgZHUgbG9qYmFuLCBxdWkgbmUgc29udCBwYXMgY291dmVydGVz IHBhciBkZSBwbHVzIGFuY2llbnMgY291cnMgdGVscyBxdWUgwqvCoFdoYXQgaXMgTG9qYmFuP8Kg wrssIGV0IMKrwqBMb2piYW4gZm9yIEJlZ2lubmVyc8KgwrsuCgoKClNpIGxlIGxvamJhbiBlc3Qg dG90YWxlbWVudCBub3V2ZWF1IHBvdXIgdm91cywgamUgdm91cyByZWNvbW1hbmRlIGQnw6ljb3V0 ZXIgdG91dCBsZXMgZW5yZWdpc3RyZW1lbnQgZGUgbG9qYmFuIHBhcmzDqSBxdWUgdm91cyBwb3Vy cmV6IHRyb3V2ZXIsIHRhbnQgYXZhbnQgcXVlIHBlbmRhbnQgbGEgbGVjdHVyZSBkZSBjZSBkaWRh Y3RpY2llbCwgYWZpbiBkZSB2b3VzIGZhbWlsaWFyaXNlciBhdmVjIGxlcyBzb25zIGV0IGxlcyBt b3RzIGR1IGxhbmdhZ2UuIERlIHBsdXMsIGVzc2F5ZXogZGUgcHJvbm9uY2VyIGNlIHF1ZSB2b3Vz IGxpc2V6IGF2ZWMgbCdhY2NlbnQgZHUgbG9qYmFuIHNpIHZvdXMgbGUgcG91dmV6LiBDZWNpIHZv dXMgYWlkZXJhIMOgIHByb25vbmNlciBsZSBsb2piYW4uIAoKCgpFbiBzdWl2YW50IGNlIGRpZGFj dGljaWVsLCBpbCBlc3QgY29uc2VpbGzDqSBkZSBwcmVuZHJlIGRlcyBwYXVzZXMgZW50cmUgbGVz IGxlw6dvbnMgYWZpbiBkZSBkaWfDqXJlciBjZSBxdWUgdm91cyBhdmV6IGFwcHJpcy4gSidhaSBl c3NhecOpIGRlIGNvbnN0cnVpcmUgY2VzIGxlw6dvbnMgZHUgc2ltcGxlIGF1IGNvbXBsZXhlLCBl dCBkJ2V4Y2x1cmUgdG91dCBtb3Qgb3UgY29uY2VwdCBxdWkgbidhIHBhcyDDqXTDqSBleHBsaXF1 w6kgZGFucyBsZXMgbGXDp29uIHByw6ljw6lkZW50ZS4gVW5lIGZvaXMgZXhwbGlxdcOpcywgaWxz IHNvbnQgdXRpbGlzw6lzIGxpYnJlbWVudCB0b3V0IGF1IGxvbmcgZHUgcmVzdGUgZHUgZGlkYWN0 aWNpZWwuIEonZXhob3J0ZSBsZSBsZWN0ZXVyIMOgIG5lIHBhcyBmYWlyZSBsJ2ltcGFzc2Ugc3Vy IHVuIGNvbnRlbnUgaW5jb21wcmlzwqA6IHNpIHZvdXMgYXZleiB1bmUgcXVlc3Rpb24gb3Ugw6p0 ZXMgaW5jZXJ0YWluIGQndW5lIGNob3NlLCBuJ2F5ZXogcGFzIGRlIGNvbXBsZXhlIMOgIGRlbWFu ZGVyIMOgIGxhIGNvbW11bmF1dMOpIGxvamJhbiwgcXVpIHBldXQgw6p0cmUgdHJvdXbDqWUgc3Vy ICNsb2piYW4gc3VyIGxlIHLDqXNlYXUgSVJDIEZyZWVub2RlIChlbiBhbmdsYWlzKSwgb3Ugc3Vy IGxhIFtodHRwOi8vbWFpbC5sb2piYW4ub3JnL21haWxtYW4vbGlzdGluZm8vbG9qYmFuLWZyfG1h aWxpbmctbGlzdCBmcmFuY29waG9uZV0uIEVsbGUgc2VyYSBoZXVyZXVzZSBkJ2FpZGVyLgoKCgpE YW5zIGNlIGRpZGFjdGljaWVsLCBsZSB0ZXh0ZSBlbiBsb2piYW4gZXN0IMOpY3JpdCBlbiAnJ2l0 YWxpcXVlcycnLiBQbHVzIHRhcmQsIHF1YW5kIHV0aWxpc8OpcyBjb21tZXMgbW90cyBlbXBydW50 w6lzIGR1IGxvamJhbiBkYW5zIGRlcyBwaHJhc2VzIGZyYW7Dp2Fpc2VzLCBpbHMgbmUgc29udCBw YXMgbWFycXXDqXMuIExlcyByw6lwb25zZXMgZGVzIGV4ZXJjaWNlcyBzb250IGFmZmljaMOpZXMg Y29tbWUgdW5lIGJhcnJlIGdyaXNlLiBTw6lsZWN0aW9ubmV6IGNldHRlIGJhcnJlIHBvdXIgdm9p ciBsZSB0ZXh0ZS4KCgoKRW5maW4sIGonYWkgYXV0YW50IHF1ZSBwb3NzaWJsZSBlc3NhecOpIGQn dXRpbGlzZXIgbGVzIG1vdHMgZHUgbG9qYmFuIHBvdXIgZMOpc2lnbmVyIGxlcyBjb25zdHJ1Y3Rp b25zIGdyYW1tYXRpY2FsZXPCoDogJydzdW1rYSdpJycgYXUgbGlldSBkZSBwcm8tc3VtdGksICcn c3VtdGNpdGEnJyBhdSBsaWV1IGRlIG1vZGFsLCBldCAnJ2p1ZnJhJycgYXUgbGlldSBkJ8Opbm9u Y8OpLiBDZWNpIHBhcmNlIHF1ZSBqJ2FpIGwnaW1wcmVzc2lvbiBxdWUgbGVzIG1vdHMgZnJhbsOn YWlzIHNvbnQgc291dmVudCBzb2l0IGFyYml0cmFpcmVzLCBhdXF1ZWwgY2FzIGlscyBzb250IGp1 c3RlcyBkZXMgbW90cyBlbiBwbHVzIMOgIGFwcHJlbmRyZSwgc29pdCB0cm9tcGV1cnMsIGF1cXVl bCBjYXMgaWxzIHNvbnQgcGlyZSBxdSdpbnV0aWxlcy4gRGFucyBsZXMgZGV1eCBjYXMsIHB1aXNx dWUgY2VzIG1vdHMgc29udCBzcMOpY2lmaXF1ZXMgw6AgbCdhcHByZW50aXNzYWdlIGR1IGxvamJh biBkZSB0b3V0ZSBmYcOnb24sIGlsIG4neSBhIHBhcyBkZSByYWlzb24gcG91ciBldXggZCdleGlz dGVyIGNvbW1lIGRlcyBtb3RzIGZyYW7Dp2FpcyBkaXN0aW5jdC4KCgoKISEhUHLDqWZhY2UuIFNv bnMKClRoZSBmaXJzdCB0aGluZyB5b3UgbmVlZCB0byBkbyB3aGVuIHlvdSBsZWFybiBhIGZvcmVp Z24gbGFuZ3VhZ2UgaXMgdG8gYmVjb21lIGZhbWlsaWFyIHdpdGggdGhlIHNvdW5kcyBvZiB0aGUg bGFuZ3VhZ2UgYW5kIGhvdyB0aGV5IGFyZSB3cml0dGVuLCBhbmQgdGhlIHNhbWUgZ29lcyBmb3Ig TG9qYmFuLiBGb3J0dW5hdGVseSwgTG9qYmFuIHNvdW5kcyAoX19waG9uZW1lc19fKSBhcmUgZmFp cmx5IHN0cmFpZ2h0Zm9yd2FyZC4KCiEhISFWb3dlbHMKClRoZXJlIGFyZSBzaXggdm93ZWxzIGlu IExvamJhbi4KCgoKfHwnJ2EnJyB8YXMgaW4gImZfX2FfX3RoZXIiIChub3QgYXMgaW4gImhfX2Ff X3QiKQoKJydlJycgfGFzIGluICJnX19lX190IgoKJydpJycgfGFzIGluICJtYWNoX19pX19uZSIg b3IgKEl0YWxpYW4pICJ2X19pX19ubyIgKG5vdCBhcyBpbiAiaF9faV9fdCIpCgonJ28nJyB8YXMg aW4gImJfX29fX2xkIiBvciAibV9fb19fcmUiIOKAlCBub3QgYXMgaW4gInNfX29fXyIgKHRoaXMg c2hvdWxkIGJlIGEgJ3B1cmUnIHNvdW5kLikKCicndScnIHxhcyBpbiAiY19fb29fX2wiIChub3Qg YXMgaW4gImJfX3VfX3QiKSB8fAoKVGhlc2UgYXJlIHByZXR0eSBtdWNoIHRoZSBzYW1lIGFzIHZv d2VscyBpbiBJdGFsaWFuIG9yIFNwYW5pc2guIFRoZSBzaXh0aCB2b3dlbCwgJyd5JycsIGlzIGNh bGxlZCBhIF9fc2Nod2FfXyBpbiB0aGUgbGFuZ3VhZ2UgdHJhZGUsIGFuZCBpcyBwcm9ub3VuY2Vk IGxpa2UgdGhlIGZpcnN0IGFuZCBsYXN0ICJBIidzIGluICJBbWVyaWNhIiAodGhhdCdzIEVuZ2xp c2ggIkFtZXJpY2EiLCBub3QgU3BhbmlzaC4pIEl0J3MgdGhlIHNvdW5kIHRoYXQgY29tZXMgb3V0 IHdoZW4gdGhlIG1vdXRoIGlzIGNvbXBsZXRlbHkgcmVsYXhlZC4KClR3byB2b3dlbHMgdG9nZXRo ZXIgYXJlIHByb25vdW5jZWQgYXMgb25lIHNvdW5kIChfX2RpcGh0aG9uZ19fKS4gU29tZSBleGFt cGxlcyBhcmU6CgoKCnx8JydhaScnIHxhcyBpbiAiaF9faWdoX18iCgonJ2F1JycgfGFzIGluICJo X19vd19fIgoKJydlaScnIHxhcyBpbiAiaF9fZXlfXyIKCicnb2knJyB8YXMgaW4gImJfX295X18i CgonJ2lhJycgfGxpa2UgR2VybWFuIF9fIkphX18iCgonJ2llJycgfGxpa2UgX18ieWVhaF9fIgoK JydpdScnIHxsaWtlIF9fInlvdV9fIgoKJyd1YScnIHxhcyBpbiBfXyJ3YWFoIV9fIiwgb3IgRnJl bmNoICJxX191b2lfXyIKCicndWUnJyB8YXMgaW4gInFfX3VlX19zdGlvbiIKCicndW8nJyB8YXMg aW4gInFfX3VvX190ZSIKCicndWknJyB8bGlrZSBfXyJ3ZV9fIiwgb3IgRnJlbmNoIF9fIm91aV9f IiB8fAoKRG91YmxlIHZvd2VscyBhcmUgcmFyZS4gVGhlIG9ubHkgZXhhbXBsZXMgYXJlICcnaWkn Jywgd2hpY2ggaXMgcHJvbm91bmNlZCBsaWtlIEVuZ2xpc2ggInllIiAoYXMgaW4g4oCcT2ggY29t ZSBhbGwgeWUgZmFpdGhmdWzigJ0pIG9yIENoaW5lc2UgInlpIiwgYW5kICcndXUnJywgcHJvbm91 bmNlZCBsaWtlICJ3b28iLgoKISEhIUNvbnNvbmFudHMKCk1vc3QgTG9qYmFuIGNvbnNvbmFudHMg YXJlIHRoZSBzYW1lIGFzIEVuZ2xpc2gsIGJ1dCB0aGVyZSBhcmUgc29tZSBleGNlcHRpb25zOgoK Cgp8fGcgfGFsd2F5cyAnJ2cnJyBhcyBpbiAnJ19fZ19fdW0nJywgbmV2ZXIgJydnJycgYXMgaW4g JydfX2dfX2VtJycKCmMgfCcnc2gnJywgYXMgaW4gJydfX3NoX19pcCcnCgpqIHxhcyBpbiAnJ21l YV9fc19fdXJlJycgb3IgRnJlbmNoICcnYm9uX19qX19vdXInJwoKeCB8YXMgaW4gR2VybWFuICcn QmFfX2NoJydfXywgU3BhbmlzaCAnJ19fSl9fb3NlJycgb3IgQXJhYmljICcnX19LaF9fYWxlZCcn IHx8CgpUaGUgRW5nbGlzaCBzb3VuZHMgJydjaCcnIGFuZCAnJ2onJyBhcmUgd3JpdHRlbiBhcyB0 YyBhbmQgZGouCgpMb2piYW4gZG9lc24ndCB1c2UgdGhlIGxldHRlcnMgJydIJycsICcnUScnIG9y ICcnVycnLgoKISEhIVNwZWNpYWwgQ2hhcmFjdGVycwoKTG9qYmFuIGRvZXMgbm90IHJlcXVpcmUg YW55IHB1bmN0dWF0aW9uLCBidXQgc29tZSBzcGVjaWFsIGNoYXJhY3RlcnMgKG5vcm1hbGx5IHVz ZWQgaW4gcHVuY3R1YXRpb24gaW4gb3RoZXIgbGFuZ3VhZ2VzKSBhZmZlY3QgdGhlIHdheSBMb2pi YW4gaXMgcHJvbm91bmNlZC4KClRoZSBvbmx5IG9uZSBvZiB0aGVzZSBjaGFyYWN0ZXJzIHdoaWNo IGlzIG9ibGlnYXRvcnkgaW4gTG9qYmFuIGlzIHRoZSBhcG9zdHJvcGhlOyBpbiBmYWN0IHRoZSBh cG9zdHJvcGhlIGlzIHJlZ2FyZGVkIGFzIGEgcHJvcGVyIGxldHRlciBvZiBMb2piYW4uIEFuIGFw b3N0cm9waGUgc2VwYXJhdGVzIHR3byB2b3dlbHMsIHByZXZlbnRpbmcgdGhlbSBmcm9tIGJlaW5n IHByb25vdW5jZWQgdG9nZXRoZXIgKGFzIGEgX19kaXBodGhvbmdfXyk7IGl0IGlzIGl0c2VsZiBw cm9ub3VuY2VkIGxpa2UgYW4gJydoJycuIEZvciBleGFtcGxlLCB1aSBpcyBub3JtYWxseSBwcm9u b3VuY2VkICcnd2UnJywgYnV0IHUnaSBpcyAnJ29vaGVlJycuCgpBIGZ1bGwgc3RvcCAocGVyaW9k KSBpcyBhIHNob3J0IHBhdXNlIHRvIHN0b3Agd29yZHMgcnVubmluZyBpbnRvIGVhY2ggb3RoZXIu IFRoZSBydWxlcyBvZiBMb2piYW4gbWFrZSBpdCBlYXNpZXIgZm9yIG9uZSB3b3JkIHRvIHJ1biBp bnRvIGFub3RoZXIgd2hlbiB0aGUgc2Vjb25kIHdvcmQgYmVnaW5zIHdpdGggYSB2b3dlbDsgc28g YW55IHdvcmQgc3RhcnRpbmcgd2l0aCBhIHZvd2VsIGNvbnZlbnRpb25hbGx5IGhhcyBhIGZ1bGwg c3RvcCBwbGFjZWQgaW4gZnJvbnQgb2YgaXQuCgpDb21tYXMgYXJlIHJhcmUgaW4gTG9qYmFuLCBi dXQgY2FuIGJlIHVzZWQgdG8gc3RvcCB0d28gdm93ZWxzIGJsdXJyaW5nIHRvZ2V0aGVyIHdoZW4g eW91IGRvbid0IHdhbnQgdG8gdXNlIGFuIGFwb3N0cm9waGUgKHdoaWNoIHdvdWxkIHB1dCBhICcn aCcnIGJldHdlZW4gdGhlbSkuIE5vIExvamJhbiB3b3JkcyBoYXZlIGNvbW1hcywgYnV0IHRoZXkn cmUgc29tZXRpbWVzIHVzZWQgaW4gd3JpdGluZyBub24tTG9qYmFuIG5hbWVzLCBmb3IgZXhhbXBs ZSBwaSxFUi4gKCcnUGllcnJlJycpLCBhcyBvcHBvc2VkIHRvIHBpZXIuICgnJ1AteWVycicnKSwg cGkuRVIuICgnJ1BlZTsgRWhyJycpLCBvciBwaSdFUi4gKCcnUGloZXJyJycpLgoKQ2FwaXRhbCBs ZXR0ZXJzIGFyZSBub3Qgbm9ybWFsbHkgdXNlZCBpbiBMb2piYW4uIFdlIHVzZSB0aGVtIGluIG5v bi1Mb2piYW4gd29yZHMgKGxpa2UgJydQaWVycmUnJykgd2hlbiB0aGUgc3RyZXNzIG9mIGEgd29y ZCBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgTG9qYmFuIG5vcm0uIFRoZSBub3JtIGlzIHRvIHB1dCB0 aGUgc3RyZXNzIG9uIHRoZSBsYXN0LWJ1dC1vbmUgc3lsbGFibGU7IHNvLCBmb3IgZXhhbXBsZSwg a3VybWlrY2UgJ251cnNlJyBpcyBrdXJfX01JS19fY2UsIG5vdCBfX0tVUl9fbWlrY2UuIFRoZSBu YW1lICcnSnVsaWV0dGUnJyB3b3VsZCBiZSB3cml0dGVuIERKVWxpLGV0LiBpZiBwcm9ub3VuY2Vk IGluIGFuIEVuZ2xpc2ggd2F5LCBidXQganVMSUVULiBpZiBwcm9ub3VuY2VkIGFzIGluIEZyZW5j aC4KCiEhISFBbHBoYWJldAoKSW4gbW9zdCBsYW5ndWFnZSB0ZXh0Ym9va3MsIHlvdSBnZXQgdGhl IGFscGhhYmV0IG9mIHRoZSBsYW5ndWFnZSB0b2dldGhlciB3aXRoIGl0cyBzb3VuZHMuIExldHRl cnMgKGxlcmZ1KSB0dXJuIG91dCB0byBiZSBldmVuIG1vcmUgaW1wb3J0YW50IHRoYW4gdXN1YWwg aW4gTG9qYmFuLCBzbyB3ZSBtaWdodCBhcyB3ZWxsIGdvIHRocm91Z2ggdGhlaXIgbmFtZXMgcXVp Y2tseS4KCkNvbnNvbmFudHMgYXJlIHN0cmFpZ2h0Zm9yd2FyZDogdGhlIG5hbWUgb2YgYSBjb25z b25hbnQgbGV0dGVyIGlzIHRoYXQgbGV0dGVyLCBwbHVzIHkuIFNvIHRoZSBjb25zb25hbnQgbGV0 dGVycyBvZiBMb2piYW4sICcnYiwgYywgZCwgZiwgZyAuLi4nJywgYXJlIGNhbGxlZCBieS4sIGN5 LiwgZHkuLCBmeS4sIGd5Li4uLiBpbiBMb2piYW4gKHVzaW5nIHRoZSBmdWxsIHN0b3AgYXMgd2Un dmUganVzdCBkZXNjcmliZWQuKQoKVm93ZWxzICcnd291bGQnJyBiZSBjYWxsZWQgLmF5LCAuZXks IC5peSwgYnV0IHRoYXQgd291bGQgYmUgcmF0aGVyIGRpZmZpY3VsdCB0byBwcm9ub3VuY2UuIElu c3RlYWQsIHRoZXkgYXJlIGhhbmRsZWQgYnkgZm9sbG93aW5nIHRoZSB2b3dlbCBzb3VuZCB3aXRo IHRoZSB3b3JkIGJ1LCB3aGljaCBiYXNpY2FsbHkgbWVhbnMgJ2xldHRlcicuIFNvIHRoZSB2b3dl bHMgb2YgTG9qYmFuIGFyZTogLmFidSwgLmVidSwgLmlidSwgLm9idSwgLnVidSwgeWJ1LgoKVGhl IGFwb3N0cm9waGUgaXMgcmVnYXJkZWQgYXMgYSBwcm9wZXIgbGV0dGVyIGluIExvamJhbiwgYW5k IGlzIGNhbGxlZCAueSd5Li4gVG8gc29tZSBwZW9wbGUsIHRoaXMgc291bmRzIGxpa2UgYSBjb3Vn aDsgdG8gb3RoZXIsIGxpa2UgJyd1aC1odWgnJyAod2hlbiBpdCBtZWFucyAnWWVzJyByYXRoZXIg dGhhbiAnTm8nLikKCkxvamJhbiBoYXMgd2F5cyBvZiByZWZlcmluZyB0byBtb3N0IGxldHRlcnMg eW91IGNhbiB0aGluayBvZi4gSWYgeW91IGhhdmUgdGhlIHVyZ2UgdG8gc3BlbGwgb3V0IHlvdXIg bmFtZSBpbiBMb2piYW4gYW5kIGhhdmUgYW4gJydIJycsICcnUScnLCBvciAnJ1cnJyB0byBkZWFs IHdpdGgsIHlvdSBjYW4gdXNlIC55J3kuYnUsIGt5LmJ1IGFuZCB2eS5idS4gU28gJydTY2h3YXJ6 ZW5lZ2dlcicnIGlzIHNwZWx0IGluIExvamJhbiBhczoKCnN5LiBjeS4gLnkneWJ1IHZ5YnUuIC5h YnUgcnkuIHp5LiAuZWJ1IG55LiAuZWJ1IGd5LiBneS4gLmVidSByeS4KCkFuZCBzcGVsbGluZyAn J3RoYXQnJyBpcyBhIHRhc2sgdGhlIGVxdWFsIG9mIGFueXRoaW5nIHRoZSBUZXJtaW5hdG9yIGV2 ZXIgZGlkIQoKCgpOb3cgc3BlbGwgeW91ciBuYW1lIGluIExvamJhbiAob3IgYXQgbGVhc3Qgc29t ZXRoaW5nIGNsb3NlIGVub3VnaCB0byBpdCB0byB1c2UgdGhlIHR3ZW50eS1zaXggbGV0dGVycyBv ZiBFbmdsaXNoIHdlIGhhdmUgbGVhcm5lZCwgYW5kIHRoZSBhcG9zdHJvcGhlKS4KCgoKISEhISAn Q29ycmVjdCcgcHJvbnVuY2lhdGlvbgoKWW91IGRvbid0IGhhdmUgdG8gYmUgdmVyeSBwcmVjaXNl IGFib3V0IExvamJhbiBwcm9udW5jaWF0aW9uLCBiZWNhdXNlIHRoZSBwaG9uZW1lcyBhcmUgZGlz dHJpYnV0ZWQgc28gdGhhdCBpdCBpcyBoYXJkIHRvIG1pc3Rha2Ugb25lIHNvdW5kIGZvciBhbm90 aGVyLiBUaGlzIG1lYW5zIHRoYXQgcmF0aGVyIHRoYW4gb25lICdjb3JyZWN0JyBwcm9udW5jaWF0 aW9uLCB0aGVyZSBpcyBhIHJhbmdlIG9mIGFjY2VwdGFibGUgcHJvbnVuY2lhdGlvbuKAlHRoZSBn ZW5lcmFsIHByaW5jaXBsZSBpcyB0aGF0IGFueXRoaW5nIGlzIE9LIHNvIGxvbmcgYXMgaXQgZG9l c24ndCBzb3VuZCB0b28gbXVjaCBsaWtlIHNvbWV0aGluZyBlbHNlLiBGb3IgZXhhbXBsZSwgTG9q YmFuIHIgY2FuIGJlIHByb25vdW5jZWQgbGlrZSB0aGUgJydyJycgaW4gRW5nbGlzaCwgU2NvdHRp c2ggb3IgRnJlbmNoLgoKVHdvIHRoaW5ncyB0byBiZSBjYXJlZnVsIG9mLCB0aG91Z2gsIGFyZSBw cm9ub3VuY2luZyBMb2piYW4gaSBhbmQgdSBsaWtlIFN0YW5kYXJkIEJyaXRpc2ggRW5nbGlzaCAn J2hpdCcnIGFuZCAnJ2J1dCcnIChOb3J0aGVybiBFbmdsaXNoICcnYnV0JycgaXMgZmluZSEpLiBU aGlzIGlzIGJlY2F1c2Ugbm9uLUxvamJhbiB2b3dlbHMsIHBhcnRpY3VsYXJseSB0aGVzZSB0d28s IGFyZSB1c2VkIHRvIHNlcGFyYXRlIGNvbnNvbmFudHMgYnkgcGVvcGxlIHdobyBmaW5kIHRoZW0g aGFyZCB0byBzYXkuIEZvciBleGFtcGxlLCBpZiB5b3UgaGF2ZSBwcm9ibGVtcyBzcGl0dGluZyBv dXQgdGhlIHpkIGluIHpkYW5pIChob3VzZSksIHlvdSBjYW4gc2F5IHrJqmRhbmnigJR3aGVyZSB0 aGUgJyfJqicnIGlzIHZlcnkgc2hvcnQsIGJ1dCB0aGUgZmluYWwgJydpJycgaGFzIHRvIGJlIGxv bmcuCgohISEhTG9qYmFuIE5hbWVzIChjbWV2bGEpCgpXYXRjaCBhbnkgZmlsbSB3aGVyZSBwZW9w bGUgZG9uJ3Qga25vdyBlYWNoIG90aGVyJ3MgbGFuZ3VhZ2UuIFRoZXkgc3RhcnQgb2ZmIHNheWlu ZyB0aGluZ3MgbGlrZSDigJxNZSBUYXJ6YW4s4oCdIHdoaWNoIGlzIGFzIGdvb2QgYSBwbGFjZSB0 byBzdGFydCBsZWFybmluZyBMb2piYW4gYXMgYW55LiBTbyBoZXJlIHdlIGdvLgoKX18nJ21pJ2Ug LnJvYmluLicnX18KCicnSS1hbS1uYW1lZCBSb2JpbicnCgonJ0knbSBSb2JpbicnCgonJ21pJ2Un JyBpcyByZWxhdGVkIHRvICcnbWknJywgd2hpY2ggaXMgJ0knLCAnbWUnIGFuZCBzbyBvbi4gSXQn cyBhIGdvb2QgZXhhbXBsZSBvZiB0aGUgYXBvc3Ryb3BoZSBzZXBhcmF0aW5nIHR3byB2b3dlbHMs IGFuZCBzb3VuZHMgYSBiaXQgbGlrZSAnJ21lIGhlaCcnLgoKVGhpcyBndXkgUm9iaW4gaXMgbHVj a3kgYmVjYXVzZSBoaXMgbmFtZSBnb2VzIGRpcmVjdGx5IGludG8gTG9qYmFuIHdpdGhvdXQgYW55 IGNoYW5nZXMuIEhvd2V2ZXIsIHRoZXJlIGFyZSBzb21lIHJ1bGVzIGZvciBMb2piYW4gbmFtZXMg d2hpY2ggbWVhbiB0aGF0IHNvbWUgbmFtZXMgaGF2ZSB0byBiZSAnTG9qYmFuaXNlZCcuIFRoaXMg bWF5IHNvdW5kIHN0cmFuZ2XigJRhZnRlciBhbGwsIGEgbmFtZSBpcyBhIG5hbWXigJRidXQgaW4g ZmFjdCBhbGwgbGFuZ3VhZ2VzIGRvIHRoaXMgdG8gc29tZSBleHRlbnQuIEZvciBleGFtcGxlLCBF bmdsaXNoIHNwZWFrZXJzIHRlbmQgdG8gcHJvbm91bmNlICcnSm9zZScnIHNvbWV0aGluZyBsaWtl ICcnSG96YXknJywgYW5kICcnTWFyZ2FyZXQnJyBpbiBDaGluZXNlIGlzICcnTWFnZWxpdGEnJy4g U29tZSBzb3VuZHMganVzdCBkb24ndCBleGlzdCBpbiBzb21lIGxhbmd1YWdlcywgc28gdGhlIGZp cnN0IHRoaW5nIHlvdSBuZWVkIHRvIGRvIGlzIHJld3JpdGUgdGhlIG5hbWUgc28gdGhhdCBpdCBv bmx5IGNvbnRhaW5zIExvamJhbiBzb3VuZHMsIGFuZCBpcyBzcGVsdCBpbiBhIExvamJhbiB3YXku CgpfX05vdGU6IF9fVGhlIGNhdGNoIGhlcmUgaXMsIHdoYXQgdmVyc2lvbiBvZiB0aGUgc291bmRz IHdpbGwgeW91IGJlIHVzaW5nPyBGb3IgRW5nbGlzaCBpbiBwYXJ0aWN1bGFyLCBCcml0aXNoIGFu ZCBBbWVyaWNhbiB2b3dlbHMgY2FuIGJlIHF1aXRlIGRpZmZlcmVudC4gVGhlIEJyaXRpc2ggdmVy c2lvbiBvZiAnJ1JvYmluJycgaXMgcmVhc29uYWJseSBhcHByb3hpbWF0ZWQgYnkgLnJvYmluLjsg YnV0IHRoZSBBbWVyaWNhbiB2ZXJzaW9uIGlzIGNsb3NlciB0byAnJ3JhYnluLicnIG9yICcncmFi LG4uJycuIEFuZCB3aXRoaW4gQW1lcmljYSBhbmQgQnJpdGFpbiwgdGhlcmUgaXMgYWxzbyBhIGdv b2QgZGVhbCBvZiB2YXJpYXRpb24uIFNvIHlvdSBzaG91bGQgdGFrZSB0aGUgdHJhbnNsaXRlcmF0 aW9ucyBnaXZlbiBiZWxvdyB3aXRoIGEgZ3JhaW4gb2Ygc2FsdC4KCkxldCdzIHRha2UgdGhlIEVu Z2xpc2ggbmFtZSAnJ1N1c2FuJycuIFRoZSB0d28gJydzJycncyBhcmUgcHJvbm91bmNlZCBkaWZm ZXJlbnRseeKAlHRoZSBzZWNvbmQgb25lIGlzIGFjdHVhbGx5IGEgJyd6JyfigJRhbmQgdGhlICcn YScnIGlzIG5vdCByZWFsbHkgYW4gJydhJycgc291bmQsIGl0J3MgdGhlICdzY2h3YScgd2UganVz dCBtZW50aW9uZWQuIFNvICcnU3VzYW4nJyBjb21lcyBvdXQgaW4gTG9qYmFuIGFzICcnLnN1enlu LicnLgoKWW91IG1heSBoYXZlIG5vdGljZWQgdHdvIGV4dHJhIGZ1bGwgc3RvcHMgKHBlcmlvZHMp IHRoZXJlLiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIGlmIHlvdSBkaWRuJ3QgcGF1c2UsIHlv dSBtaWdodCBub3Qga25vdyB3aGVyZSB0aGUgcHJldmlvdXMgd29yZCBlbmRlZCBhbmQgdGhlIG5l eHQgd29yZCBiZWdhbi4KCgoKWW91IHNob3VsZCBhbHNvIHB1dCBhIGZ1bGwgc3RvcCBpbiBiZXR3 ZWVuIGEgcGVyc29uJ3MgZmlyc3QgYW5kIGxhc3QgbmFtZXMgKHRob3VnaCBpdCdzIG5vdCBjb21w dWxzb3J5KSwgc28gJydKaW0gSm9uZXMnJyBiZWNvbWVzICcnZGppbS5kam9uei4nJy4KCkFuIGlt cG9ydGFudCBydWxlIGZvciBMb2piYW5pc2luZyBuYW1lcyBpcyB0aGF0IHRoZSBsYXN0IGxldHRl ciBvZiBhIGNtZXZsYSAoTG9qYmFuIG5hbWUpIG11c3QgYmUgYSBjb25zb25hbnQuIEFnYWluLCB0 aGlzIGlzIHRvIHByZXZlbnQgY29uZnVzaW9uIGFzIHRvIHdoZXJlIGEgbmFtZSBlbmRzLCBhbmQg d2hhdCBpcyBhbmQgaXMgbm90IGEgbmFtZSAoYWxsIG90aGVyIExvamJhbiB3b3JkcyBlbmQgaW4g YSB2b3dlbCkuIFdlIHVzdWFsbHkgdXNlICcncycnIGZvciB0aGlzOyBzbyBpbiBMb2piYW4sICcn TWFyeScnIGJlY29tZXMgLm1lcmlzLiAsICcnSm9lJycgYmVjb21lcyAuZGpvcy4gYW5kIHNvIG9u LiBBbiBhbHRlcm5hdGl2ZSBpcyB0byBsZWF2ZSBvdXQgdGhlIGxhc3Qgdm93ZWwsIHNvICcnTWFy eScnIHdvdWxkIGJlY29tZSAubWVyLiBvciAubWVpci4uCgoKClRoZSBmaW5hbCBwb2ludCBpcyBz dHJlc3MuIEFzIHdlJ3ZlIHNlZW4sIExvamJhbiB3b3JkcyBhcmUgc3RyZXNzZWQgb24gdGhlIHBl bnVsdGltYXRlIHN5bGxhYmxlLCBhbmQgaWYgYSBuYW1lIGhhcyBkaWZmZXJlbnQgc3RyZXNzLCB3 ZSB1c2UgY2FwaXRhbCBsZXR0ZXJzLiBUaGlzIG1lYW5zIHRoYXQgdGhlIEVuZ2xpc2ggYW5kIEZy ZW5jaCBuYW1lcyAnJ1JvYmVydCcnIGNvbWUgb3V0IGRpZmZlcmVudGx5IGluIExvamJhbjogdGhl IEVuZ2xpc2ggbmFtZSBpcyAnJy5yb2J5dC4nJyBpbiBVSyBFbmdsaXNoLCBvciAnJy5yYWIscnQu JycgaW4gc29tZSBBbWVyaWNhbiBkaWFsZWN0cywgYnV0IHRoZSBGcmVuY2ggaXMgJycucm9CRVIu JycuCgpUbyBnaXZlIGFuIGlkZWEgb2YgaG93IGFsbCB0aGlzIHdvcmtzLCBoZXJlIGFyZSBzb21l IG5hbWVzIG9mIGZhbW91cyBwZW9wbGUgaW4gdGhlaXIgb3duIGxhbmd1YWdlIGFuZCBpbiBMb2pi YW4uCgoKCnx8X19FbmdsaXNoX18KCk1hcmdhcmV0IFRoYXRjaGVyIHwubWFncnl0LnRhdGN5ci4g KG5vICcndGgnJyBpbiBMb2piYW4gYmVjYXVzZSBtb3N0IHBlb3BsZSBhcm91bmQgdGhlIHdvcmxk IGNhbid0IHNheSBpdCEpCgpNaWNrIEphZ2dlciB8Lm1pay5kamFneXMuIHx8Cgp8fF9fRnJlbmNo X18KCk5hcG9sZW9uIEJvbmFwYXJ0ZSB8Lm5hcG9sZSxPTi5ib25hUEFSVC4KCkp1bGlldHRlIEJp bm9jaGUgfC5qdUxJRVQuYmluT0MuIHx8Cgp8fF9fQ2hpbmVzZV9fCgpMYW96aSB8LmxhdWR6LgoK TWFvIFplZG9uZyB8Lm1hdWR6eURZTi4gKEZpbmFsICcnbmcnJyBpcyBpbiBMb2piYW4gY29udmVu dGlvbmFsbHkgdHVybmVkIGludG8gbi4pIHx8Cgp8fF9fVHVya2lzaF9fCgpNdXN0YWZhIEtlbWFs IHwuTVVTdGFmYXMua2VNQUwuCgpFcmtpbiBLb3JheSB8LmVya2luLmtvcmFpcy4gfHwKCnx8X19H ZXJtYW5fXwoKRnJpZWRyaWNoIE5pZXR6c2NoZSB8LmZyaWRyaXgubml0Y3lzLgoKQ2xhcmEgU2No dW1hbm4gfC5rbGFyYXMuY3VtYW4uIHx8Cgp8fF9fU3BhbmlzaF9fCgpJc2FiZWwgQWxsZW5kZSB8 Lml6YUJFTC5haWVuZGVzLgoKQ2hlIEd1ZXZhcmEgfC50Y2VnZXZhcmFzLiB8fAoKX19FeGVyY2lz ZV9fLgoKV2hlcmUgYXJlIHRoZXNlIHBsYWNlcz8KCiMubnUsSU9SSy4KCiMucm9tYXMuCgojLnhh dmFuYXMuCgojLmthcmRpZi4KCiMuYmVpZGppbi4KCiMuQU5rYXJhcy4KCiMuQUxiZWtlcmtpcy4K CiMudmFua3V2ZXIuCgojLmtlaXB0YXVuLgoKIy50YWliZWlzLgoKIy5ib24uCgojLmRlbGlzLgoK Iy5uaXMuCgojLmF0aW5hcy4KCiMubGlkei4KCiMueGVsc2lua2lzLgoKQW5zd2VyOgoKfn5ncmF5 LGdyYXk6fn4KCiN+fmdyYXksZ3JheTpOZXcgWW9yazogVVNBfn4KCiN+fmdyYXksZ3JheTpSb21l OiBJdGFseX5+Cgojfn5ncmF5LGdyYXk6SGF2YW5hOiBDdWJhfn4KCiN+fmdyYXksZ3JheTpDYXJk aWZmOiBXYWxlcyAoVGhlIFdlbHNoIGZvciAnJ0NhcmRpZmYnJyBpcyAnJ0NhZXJkeWRkJycsIHdo aWNoIHdvdWxkIExvamJhbmlzZSB0byBzb21ldGhpbmcgbGlrZSBrYWlyZHlkLi4pfn4KCiN+fmdy YXksZ3JheTpCZWlqaW5nOiBDaGluYX5+Cgojfn5ncmF5LGdyYXk6QW5rYXJhOiBUdXJrZXl+fgoK I35+Z3JheSxncmF5OkFsYmVxdWVycXVlOiBOZXcgTWV4aWNvLCBVU0F+fgoKI35+Z3JheSxncmF5 OlZhbmNvdXZlcjogQ2FuYWRhfn4KCiN+fmdyYXksZ3JheTpDYXBlIFRvd246IFNvdXRoIEFmcmlj YX5+Cgojfn5ncmF5LGdyYXk6VGFpcGVpOiBUYWl3YW4gKG5vdGUgYiwgbm90IHAuIEFsdGhvdWdo IGFjdHVhbGx5LCB0aGUgYiBpbiBQaW55aW4gaXMgcHJvbm91bmNlZCBhcyBhIHAuLi4gQnV0IHRo aXMgaXNuJ3QgbWVhbnQgdG8gYmUgYSBjb3Vyc2Ugb24gTWFuZGFyaW4hKX5+Cgojfn5ncmF5LGdy YXk6Qm9ubjogR2VybWFueX5+Cgojfn5ncmF5LGdyYXk6RGVsaGk6IEluZGlhIChUaGUgSGluZGkg Zm9yICcnRGVsaGknJyBpcyAnJ0RpbGzDricnLCB3aGljaCB3b3VsZCBnaXZlIGRpbGl5cy4gb3Ig ZGlsaSdpcy4uKX5+Cgojfn5ncmF5LGdyYXk6TmljZTogRnJhbmNlfn4KCiN+fmdyYXksZ3JheTpB dGhlbnM6IEdyZWVjZSAoJydBdGhpbmEnJyBpbiBHcmVlayl+fgoKI35+Z3JheSxncmF5OkxlZWRz OiBFbmdsYW5kfn4KCiN+fmdyYXksZ3JheTpIZWxzaW5raTogRmlubGFuZH5+CgpfX0V4ZXJjaXNl X18uCgpMb2piYW5pc2UgdGhlIGZvbGxvd2luZyBuYW1lcwoKI0pvaG4KCiNNZWxpc3NhCgojQW1h bmRhCgojTWF0dGhldwoKI01pY2hhZWwKCiNEYXZpZCBCb3dpZQoKI0phbmUgQXVzdGVuCgojV2ls bGlhbSBTaGFrZXNwZWFyZQoKI1NpZ291cm5leSBXZWF2ZXIKCiNSaWNoYXJkIE5peG9uCgojSXN0 YW5idWwKCiNNYWRyaWQKCiNUb2t5bwoKI1NhbiBTYWx2YWRvcgoKQW5zd2VyOgoKfn5ncmF5LGdy YXk6VGhlcmUgYXJlIHVzdWFsbHkgYWx0ZXJuYXRpdmUgc3BlbGxpbmdzIGZvciBuYW1lcywgZWl0 aGVyIGJlY2F1c2UgcGVvcGxlIHByb25vdW5jZSB0aGUgb3JpZ2luYWxzIGRpZmZlcmVudGx5LCBv ciBiZWNhdXNlIHRoZSBleGFjdCBzb3VuZCBkb2Vzbid0IGV4aXN0IGluIExvamJhbiwgc28geW91 IG5lZWQgdG8gY2hvb3NlIGJldHdlZW4gdHdvIExvamJhbiBsZXR0ZXJzLiBUaGlzIGRvZXNuJ3Qg bWF0dGVyLCBzbyBsb25nIGFzIGV2ZXJ5b25lIGtub3dzIHdobyBvciB3aGVyZSB5b3UncmUgdGFs a2luZyBhYm91dC5+fgoKI35+Z3JheSxncmF5Oi5kam9uLiAob3IgLmRqYW4uIHdpdGggc29tZSBh Y2NlbnRzKX5+Cgojfn5ncmF5LGdyYXk6Lm1lbGlzeXMufn4KCiN+fmdyYXksZ3JheTouYW1hbmR5 cy4gKGFnYWluLCBkZXBlbmRpbmcgb24geW91ciBhY2NlbnQsIHRoZSBmaW5hbCB5IG1heSBiZSBh LCB0aGUgaW5pdGlhbCBhIG1heSBiZSB5LCBhbmQgdGhlIG1pZGRsZSBhIG1heSBiZSBlLil+fgoK I35+Z3JheSxncmF5Oi5tYXRpdXMufn4KCiN+fmdyYXksZ3JheToubWFpa3lsLiBvciAubWFpayxs LiAsIGRlcGVuZGluZyBvbiBob3cgeW91IHNheSBpdC5+fgoKI35+Z3JheSxncmF5Oi5kZWl2eWQu YmF1LGlzLiBvciAuYm8saXMuIChidXQgbm90IC5idSxpcy4g4oCUIHRoYXQncyB0aGUga25pZmUp fn4KCiN+fmdyYXksZ3JheTouZGplaW4ub3N0aW4ufn4KCiN+fmdyYXksZ3JheToudWlsaWFtLmNl a3NwaXIufn4KCiN+fmdyYXksZ3JheTouc2lnb3JuaXMudWl2eXIuIG9yIC5zeWdvcm5pcy51aXZ5 ci5+fgoKI35+Z3JheSxncmF5Oi5yaXRjeXJkLm5pa3N5bi5+fgoKI35+Z3JheSxncmF5Oi5pc3Rh bkJVTC4gd2l0aCBFbmdsaXNoIHN0cmVzcywgLklTdGFuYnVsLiB3aXRoIEFtZXJpY2FuLCAuaXN0 YW5idWwuIHdpdGggVHVya2lzaC4gTG9qYmFuaXN0cyBnZW5lcmFsbHkgcHJlZmVyIHRvIGJhc2Ug Y21ldmxhIG9uIGxvY2FsIHByb251bmNpYXRpb24sIGJ1dCB0aGlzIGlzIG5vdCBhbiBhYnNvbHV0 ZSBydWxlLn5+Cgojfn5ncmF5LGdyYXk6Lm1hRFJJRC5+fgoKI35+Z3JheSxncmF5Oi50b2tpb3Mu fn4KCiN+fmdyYXksZ3JheTouc2FuLnNhbHZhRE9SLiAod2l0aCBTcGFuaXNoIHN0cmVzcykgPC9z cGFuPjwvaHRtbD5+fgoKISEhIUxvamJhbiB3b3JkcyBhcyBuYW1lcwoKQnkgbm93IHlvdSBzaG91 bGQgYmUgYWJsZSB0byBMb2piYW5pc2UgeW91ciBvd24gbmFtZS4gSG93ZXZlciwgaWYgeW91IHBy ZWZlciwgeW91IGNhbiB0cmFuc2xhdGUgeW91ciBuYW1lIGludG8gTG9qYmFuIChpZiB5b3Uga25v dyB3aGF0IGl0IG1lYW5zLCBvZiBjb3Vyc2UpIG9yIGFkb3B0IGEgY29tcGxldGVseSBuZXcgTG9q YmFuIGlkZW50aXR5LiBOYXRpdmUgQW1lcmljYW5zIGdlbmVyYWxseSB0cmFuc2xhdGUgdGhlaXIg bmFtZSB3aGVuIHNwZWFraW5nIEVuZ2xpc2gsIHBhcnRseSBiZWNhdXNlIHRoZXkgaGF2ZSBtZWFu aW5nZnVsIG5hbWVzLCBhbmQgcGFydGx5IGJlY2F1c2UgdGhleSBkb24ndCBleHBlY3QgdGhlICcn d2FzaWNodScnIHRvIGJlIGFibGUgdG8gcHJvbm91bmNlIHdvcmRzIGluIExha290YSwgQ2hlcm9r ZWUgb3Igd2hhdGV2ZXIhCgpMb2piYW4gd29yZHMgKGV4Y2VwdCBjbWV2bGEpIGVuZCBpbiBhIHZv d2VsLiBZb3UgY2FuIHVzZSBsb2piYW4gd29yZHMgYXMgbmFtZXMgdG9vLiBCdXQgaWYgeW91IHBy ZWZlciB0aGF0IHlvdXIgbmFtZSBpcyBhIGNtZXZsYSBhbmQgaXQgZW5kcyBpbiBhIHZvd2VsIHRo ZW4geW91IGNhbiBlaXRoZXIgYWRkIGEgY29uc29uYW50IHRvIHRoZSBlbmQgb2YgaXQgb3IganVz dCBjaG9wIHRoZSBlbmQgdm93ZWwgb2ZmLgoKSGVyZSBhcmUgYSBmZXcgZXhhbXBsZXMgKG9yaWdp bmFsIG5hbWUsIG1lYW5pbmcsIG5hbWUgYW5kIG5hbWUgYXMgY21ldmxhKToKCipGaXNoIOKAkyBm aW5wZSDigJMgLmZpbnAuCgoqQmrDtnJuIChTY2FuZGluYXZpYW4gPSBiZWFyKSDigJMgY3JpYmUg 4oCTIC5jcmliLgoKKkdyZWVuIOKAkyBjcmlubyDigJMgLmNyaW4uCgoqTWVpIExpIChDaGluZXNl ID0gYmVhdXRpZnVsKSDigJMgbWVsYmkg4oCTIC5tZWxiLgoKKkF5aGFuIChUdXJraXNoID0gTW9v biBMb3JkKSDigJMgbHVucmEgbm9ibGkgKD0gbHVybm9ibGkpIOKAkyAubHVybm9ibGlzLgoKISFM b2piYW4gTGVzc29ucyDigJMgbGVzc29uIG9uZSAoYnJpZGksIGp1ZnJhLCBzdW10aSBhbmQgc2Vs YnJpKQoKQSAnJ2JyaWRpJycgaXMgdGhlIG1vc3QgY2VudHJhbCB1bml0IG9mIExvamJhbiB1dHRl cmFuY2VzLiBUaGUgY29uY2VwdCBpcyB2ZXJ5IGNsb3NlIHRvIHdoYXQgd2UgY2FsbCBhIHByb3Bv c2l0aW9uIGluIEVuZ2xpc2guIEEgYnJpZGkgaXMgYSBjbGFpbSB0aGF0IHNvbWUgb2JqZWN0cyBz dGFuZCBpbiBhIHJlbGF0aW9uIHRvIGVhY2ggb3RoZXIsIG9yIHRoYXQgYW4gb2JqZWN0IGhhcyBz b21lIHByb3BlcnR5LiBUaGlzIHN0YW5kcyBpbiBjb250cmFzdCB0byAnJ2p1ZnJhJycsIHdoaWNo IGFyZSBtZXJlbHkgTG9qYmFuIHV0dGVyYW5jZXMsIHdoaWNoIGNhbiBiZSBicmlkaSBvciBhbnl0 aGluZyBlbHNlIGJlaW5nIHNhaWQuIFRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYSBicmlkaSBhbmQg YSBqdWZyYSBpcyB0aGF0IGEganVmcmEgZG9lcyBub3QgbmVjZXNzYXJpbHkgc3RhdGUgYW55dGhp bmcsIHdoaWxlIGEgYnJpZGkgZG9lcy4gVGh1cywgYSBicmlkaSBtaWdodCBiZSB0cnVlIG9yIGZh bHNlLCB3aGlsZSBub3QgYWxsIGp1ZnJhIGNhbiBiZSBzYWlkIHRvIGJlIHN1Y2guCgpUbyBoYXZl IHNvbWUgZXhhbXBsZXMgKGluIEVuZ2xpc2gsIHRvIGJlZ2luIHdpdGgpLCDigJxNb3phcnQgd2Fz IHRoZSBncmVhdGVzdCBtdXNpY2lhbiBvZiBhbGwgdGltZeKAnSBpcyBhIGJyaWRpLCBiZWNhdXNl IGl0IG1ha2VzIGEgY2xhaW0gd2l0aCBhIHRydXRoIHZhbHVlLCBhbmQgaXQgaW52b2x2ZXMgYW4g b2JqZWN0LCBNb3phcnQsIGFuZCBhIHByb3BlcnR5LCBiZWluZyB0aGUgZ3JlYXRlc3QgbXVzaWNp YW4gb2YgYWxsIHRpbWUuIE9uIHRoZSBjb250cmFyeSwg4oCcT3chIE15IHRvZSHigJ0gaXMgbm90 IGEgYnJpZGksIHNpbmNlIGl0IGRvZXMgbm90IGludm9sdmUgYSByZWxhdGlvbiwgYW5kIHRodXMg ZG9lcyBub3Qgc3RhdGUgYW55dGhpbmcuIEJvdGgsIHRob3VnaCwgYXJlIGp1ZnJhLgoKVHJ5IHRv IGlkZW50aWZ5IHRoZSBicmlkaSBhbW9uZyB0aGVzZSBFbmdsaXNoIGp1ZnJhOgoKCgojIOKAnEkg aGF0ZSBpdCB3aGVuIHlvdSBkbyB0aGF0LuKAnQoKIyDigJxSdW5zLuKAnQoKIyDigJxXb2FoLCB0 aGF0IGxvb2tzIGRlbGljaW91cyHigJ0KCiMg4oCcR2Vleiwgbm90IGFnYWluLuKAnQoKIyDigJxO bywgSSBvd24gdGhyZWUgY2Fyc+KAnQoKIyDigJxOaW5ldGVlbiBtaW51dGVzIHBhc3QgZWlnaHQu 4oCdCgojIOKAnFRoaXMgU2F0dXJkYXksIHllcy7igJ0KCgoKQW5zd2VyOiB+fmdyZXksZ3JleTox LCAzIGFuZCA1IGFyZSBicmlkaS4gMiBjb250YWlucyBubyBvYmplY3RzIGFuZCB0aGUgcmVzdCBj b250YWluIG5vIHJlbGF0aW9uIG9yIGNsYWltIG9mIGEgcHJvcGVydHkufn4KCgoKUHV0IGluIExv amJhbiB0ZXJtcywgYSBicmlkaSBjb25zaXN0cyBvZiBvbmUgJydzZWxicmknJywgYW5kIG9uZSBv ciBtb3JlICcnc3VtdGknJy4gVGhlIHNlbGJyaSBpcyB0aGUgcmVsYXRpb24gb3IgY2xhaW0gYWJv dXQgdGhlIG9iamVjdCwgYW5kIHRoZSBzdW10aSBhcmUgdGhlIG9iamVjdHMgd2hpY2ggYXJlIGlu IGEgcmVsYXRpb24uIE5vdGUgdGhhdCDigJxvYmplY3TigJ0gaXMgbm90IGEgcGVyZmVjdCB0cmFu c2xhdGlvbiBvZiDigJxzdW10aeKAnSwgc2luY2Ug4oCcc3VtdGnigJ0gY2FuIHJlZmVyIHRvIG5v dCBqdXN0IHBoeXNpY2FsIG9iamVjdHMsIGJ1dCBjYW4gYWxzbyBwdXJlbHkgYWJzdHJhY3QgdGhp bmdzIGxpa2Ug4oCcVGhlIGlkZWEgb2Ygd2FyZmFyZeKAnS4gQSBiZXR0ZXIgdHJhbnNsYXRpb24g d291bGQgYmUgc29tZXRoaW5nIGxpa2Ug4oCcc3ViamVjdCwgZGlyZWN0IG9yIGluZGlyZWN0IG9i amVjdOKAnSBmb3Igc3VtdGksIGFuZCDigJx2ZXJi4oCdIGZvciBzZWxicmksIHRob3VnaCwgYXMg d2Ugd2lsbCBzZWUsIHRoaXMgaXMgbm90IG9wdGltYWwgZWl0aGVyLgoKV2UgY2FuIG5vdyB3cml0 ZSB0aGUgZmlyc3QgaW1wb3J0YW50IGxlc3NvbiBkb3duOgoKYnJpZGkgPSBzZWxicmkgKyBvbmUg b3IgbW9yZSBzdW10aQoKUHV0IGFub3RoZXIgd2F5LCBhIGJyaWRpIHN0YXRlcyB0aGF0IHNvbWUg c3VtdGkgZG8vYXJlIHNvbWV0aGluZyBleHBsYWluZWQgYnkgYSBzZWxicmkuCgoKCklkZW50aWZ5 IHRoZSBzdW10aSBhbmQgc2VsYnJpIGVxdWl2YWxlbnRzIGluIHRoZXNlIEVuZ2xpc2gganVmcmE6 CgrigJxJIHdpbGwgcGljayB1cCBteSBkYXVnaHRlcnMgd2l0aCBteSBjYXLigJ0KCgoKQW5zd2Vy OiB+fmdyZXksZ3JleTpzZWxicmk6IOKAnHBpY2sgdXAgKHdpdGgp4oCdLiBzdW10aTog4oCcSeKA nSwg4oCcbXkgZGF1Z2h0ZXJz4oCdLCDigJxteSBjYXLigJ1+fgoKCgrigJxIZSBib3VnaHQgc2l4 dGVlbiBuZXcgc2hpcnRzIGZyb20gTGVhJkxldnkncyBmb3IganVzdCB0d28gaHVuZHJlZCBldXJv IeKAnQoKCgpBbnN3ZXI6IH5+Z3JleSxncmV5OnNlbGJyaTog4oCcYm91Z2h0IChmcm9tKSAoZm9y KeKAnSBzdW10aTog4oCcSGXigJ0sIOKAnHNpeHRlZW4gbmV3IHNoaXJ0c+KAnSwg4oCcTGVhJkxl d2lz4oCdIGFuZCDigJx0d28gaHVuZHJlZCBldXJvc+KAnX5+CgoKClNpbmNlIHRoZXNlIGNvbmNl cHRzIGFyZSBzbyBmdW5kYW1lbnRhbCB0byBMb2piYW4sIGxldCdzIGhhdmUgYSB0aGlyZCBleGFt cGxlOiDigJxTbyBmYXIsIHRoZSBFUEEgaGFzIGRvbmUgbm90aGluZyBhYm91dCB0aGUgYW1vdW50 IG9mIHN1bHBodXIgZGlveGlkZS7igJ0KCgoKQW5zd2VyOiB+fmdyZXksZ3JleTpzZWxicmk6IOKA nGhhcyBkb25lIChhYm91dCnigJ0gc3VtdGk6IOKAnFRoZSBFUEHigJ0sIOKAnG5vdGhpbmfigJ0g YW5kIOKAnHRoZSBhbW91bnQgb2Ygc3VscGh1ciBkaW94aWRl4oCdfn4KCgoKTm93IHRyeSBiZWdp biBtYWtpbmcgTG9qYmFuIGJyaWRpLiBGb3IgdGhpcyB5b3Ugd2lsbCBuZWVkIHRvIHVzZSBzb21l IHdvcmRzLCB3aGljaCBjYW4gYWN0IGFzIHNlbGJyaToKCicnX19kdW5kYV9fJycgeDEgZ2l2ZXMg eDIgdG8geDMgKHdpdGhvdXQgcGF5bWVudCkKCicnX19wZWx4dV9fJycgeDEgaXMgeWVsbG93Cgon J19femRhbmlfXycnIHgxIGlzIGEgaG9tZSBvZiB4MgoKCgpOb3RpY2UgdGhhdCB0aGVzZSB3b3Jk cyBtZWFuaW5nIOKAnGdpdmXigJ0sIOKAnHllbGxvd+KAnSBhbmQg4oCcaG9tZeKAnSB3b3VsZCBi ZSBjb25zaWRlcmVkIGEgdmVyYiwgYW4gYWRqZWN0aXZlIGFuZCBhIG5vdW4gaW4gRW5nbGlzaC4g SW4gTG9qYmFuLCB0aGVyZSBhcmUgbm8gc3VjaCBjYXRlZ29yaWVzIGFuZCBubyBzdWNoIGRpc3Rp bmN0aW9uLiAnJ2R1bmRhJycgY2FuIGJlIHRyYW5zbGF0ZWQg4oCcZ2l2ZXPigJ0gKHZlcmIpLCDi gJxpcyBhIGdpdmVy4oCdIChub3VuKSwg4oCcaXMgZ2l2aW5n4oCdIChhZGplY3RpdmUpIGFzIHdl bGwgYXMgdG8gYW4gYWR2ZXJiIGZvcm0uIFRoZXkgYWxsIGFjdCBhcyBzZWxicmksIGFuZCBhcmUg dXNlZCBpbiB0aGUgc2FtZSB3YXkuCgoKCkFzIHdlbGwgYXMgYSBmZXcgd29yZHMsIHdoaWNoIGNh biBhY3QgYXMgc3VtdGk6CgonJ19fbWlfXycnIOKAnEnigJ0gb3Ig4oCcd2XigJ0g4oCTIHRoZSBv bmUgb3IgdGhvc2Ugd2hvIGFyZSBzcGVha2luZy4KCicnX190aV9fJycg4oCcdGhpc+KAnSDigJMg YSBjbG9zZSB0aGluZyBvciBldmVudCBuZWFyYnkgd2hpY2ggY2FuIGJlIHBvaW50ZWQgdG8gYnkg dGhlIHNwZWFrZXIuCgonJ19fZG9fXycnIOKAnHlvdeKAnSDigJMgdGhlIG9uZSBvciB0aG9zZSB3 aG8gYXJlIGJlaW5nIHNwb2tlbiB0by4KCgoKU2VlIHRoZSBzdHJhbmdlIHRyYW5zbGF0aW9ucyBv ZiB0aGUgc2VsYnJpIGFib3ZlIC0gZXNwZWNpYWxseSB0aGUgeDEsIHgyIGFuZCB4Mz8gVGhvc2Ug YXJlIGNhbGxlZCBzdW10aSBwbGFjZXMuIFRoZXkgYXJlIHBsYWNlcyB3aGVyZSBzdW10aSBjYW4g Z28gdG8gZmlsbCBhIGJyaWRpLiBGaWxsaW5nIGEgc3VtdGkgaW4gYSBwbGFjZSBzdGF0ZXMgdGhh dCB0aGUgc3VtdGkgZml0cyBpbiB0aGF0IHBsYWNlLiBUaGUgc2Vjb25kIHBsYWNlIG9mICcnZHVu ZGEnJywgZm9yIGV4YW1wbGUsIHgyLCBpcyB0aGUgdGhpbmcgYmVpbmcgZ2l2ZW4uIFRoZSB0aGly ZCBpcyB0aGUgb2JqZWN0IHdoaWNoIHJlY2VpdmVzIHRoZSB0aGluZy4gTm90aWNlIGFsc28gdGhh dCB0aGUgdHJhbnNsYXRpb24gb2YgJydkdW5kYScnIGhhcyB0aGUgd29yZCDigJx0b+KAnSBpbiBp dC4gVGhpcyBpcyBiZWNhdXNlLCB3aGlsZSB0aGlzIHdvcmQgaXMgbmVlZGVkIGluIEVuZ2xpc2gg dG8gc2lnbmlmeSB0aGUgcmVjZWl2ZXIsIHRoZSByZWNlaXZlciBpcyBpbiB0aGUgdGhpcmQgc3Vt dGkgcGxhY2Ugb2YgJydkdW5kYScnLiBTbyB3aGVuIHlvdSBmaWxsIHRoZSB0aGlyZCBzdW10aSBw bGFjZSBvZiAnJ2R1bmRhJycsIHRoZSBzdW10aSB5b3UgZmlsbCBpbiBpcyBhbHdheXMgdGhlIHJl Y2VpdmVyLCBhbmQgeW91IGRvbid0IG5lZWQgYW4gZXF1aXZhbGVudCB0byB0aGUgd29yZCDigJx0 b+KAnSEKCgoKVG8gc2F5IGEgYnJpZGksIHlvdSBzaW1wbHkgc2F5IHRoZSB4MSBzdW10aSBmaXJz dCwgdGhlbiB0aGUgc2VsYnJpLCB0aGVuIGFueSBvdGhlciBzdW10aS4KClVzdWFsIGJyaWRpOiB7 eDEgc3VtdGl9IF9fe3NlbGJyaX1fXyB7eDIgc3VtdGl9IHt4MyBzdW10aX0ge3g0IHN1bXRpfSB7 eDUgc3VtdGl9IHthbmQgc28gb259CgpUaGUgb3JkZXIgY2FuIGJlIHBsYXllZCBhcm91bmQgd2l0 aCwgYnV0IGZvciBub3csIHdlIHN0aWNrIHdpdGggdGhlIHVzdWFsIGZvcm0uIFRvIHNheSDigJxJ IGdpdmUgdGhpcyB0byB5b3XigJ0geW91IGp1c3Qgc2F5ICcnbWkgZHVuZGEgdGkgZG8nJywgd2l0 aCB0aGUgdGhyZWUgc3VtdGkgYXQgdGhlIHJpZ2h0IHBsYWNlcy4KCgoKU28sIGhvdyB3b3VsZCB5 b3Ugc2F5IOKAnFRoaXMgaXMgYSBob21lIG9mIG1l4oCdPwoKCgpBbnN3ZXI6IH5+Z3JleSxncmV5 OicndGkgemRhbmkgbWknJ35+CgoKClRyeSBhIGZldyBtb3JlIGluIG9yZGVyIHRvIGdldCB0aGUg aWRlYSBvZiBhIHBsYWNlIHN0cnVjdHVyZSBzaW5rIGluLgoKCgrigJxZb3UgZ2l2ZSB0aGlzIHRv IG1l4oCdPwoKCgpBbnN3ZXI6IH5+Z3JleSxncmV5OicnZG8gZHVuZGEgdGkgbWknJ35+CgoKCkFu ZCB0cmFuc2xhdGUgJyd0aSBwZWx4dScnCgoKCkFuc3dlcjogfn5ncmV5LGdyZXk64oCcVGhpcyBp cyB5ZWxsb3cu4oCdfn4KCgoKUXVpdGUgZWFzeSBvbmNlIHlvdSBnZXQgdGhlIGhhbmcgb2YgaXQs IHJpZ2h0PwoKCgpNdWx0aXBsZSBicmlkaSBhZnRlciBlYWNoIG90aGVyIGFyZSBzZXBhcmF0ZWQg YnkgJycuaScnIFRoaXMgaXMgdGhlIExvamJhbiBlcXVpdmFsZW50IG9mIGZ1bGwgc3RvcCwgYnV0 IGl0IHVzdWFsbHkgZ29lcyBiZWZvcmUgYnJpZGkgaW5zdGVhZCBvZiBhZnRlciB0aGVtLiBJdCdz IG9mdGVuIGxlZnQgb3V0IGJlZm9yZSB0aGUgZmlyc3QgYnJpZGksIHRob3VnaCwgYXMgaW4gYWxs IHRoZXNlIGV4YW1wbGVzOgoKJydfXy5pX18nJyBTZW50ZW5jZSBzZXBhcmF0b3IuIFNlcGFyYXRl cyBhbnkgdHdvIGp1ZnJhIChhbmQgdGhlcmVmb3JlIGFsc28gYnJpZGkpLgoKCgonJ3RpIHpkYW5p IG1pICAuaSB0aSBwZWx4dScnIOKAnVRoaXMgaXMgYSBob21lIHRvIG1lLiBUaGlzIGlzIHllbGxv dy7igJ0KCgoKQmVmb3JlIHlvdSBtb3ZlIG9uIHRvIHRoZSBuZXh0IGxlc3NvbiwgSSByZWNvbW1l bmQgdGhhdCB5b3UgdGFrZSBhIGJyZWFrIGZvciBhdCBsZWFzdCBzZXZlbiBtaW51dGVzIHRvIGxl dCB0aGUgaW5mb3JtYXRpb24gc2luayBpbi4KCgoKCgohIUxvamJhbiBMZXNzb25zIOKAkyBsZXNz b24gdHdvIChGQSBhbmQgem8nZSkKCk1vc3Qgc2VsYnJpIGhhdmUgZnJvbSBvbmUgdG8gZml2ZSBz dW10aSBwbGFjZXMsIGJ1dCBzb21lIGhhdmUgbW9yZS4gSGVyZSBpcyBhIHNlbGJyaSB3aXRoIGZv dXIgc3VtdGkgcGxhY2VzOgoKJydfX3ZlY251X18nJyB4MSBzZWxscyB4MiB0byB4MyBmb3IgcHJp Y2UgeDQKCgoKSWYgSSB3YW50IHRvIHNheSDigJxJIHNlbGwgdGhpc+KAnSwgaXQgd291bGQgYmUg dG9vIG11Y2ggdG8gaGF2ZSB0byBmaWxsIHRoZSBzdW10aSBwbGFjZXMgeDMgYW5kIHg0LCB3aGlj aCBzcGVjaWZ5IHdobyBJIHNlbGwgdGhlIHRoaW5nIHRvLCBhbmQgZm9yIHdoYXQgcHJpY2UuIEx1 Y2tpbHksIEkgZG9uJ3QgbmVlZCB0by4gc3VtdGkgcGxhY2VzIGNhbiBiZSBmaWxsZWQgd2l0aCAn J3pvJ2UnJy4gJyd6bydlJycgaW5kaWNhdGVzIHRvIHVzIHRoYXQgdGhlIHZhbHVlIG9mIHRoZSBz dW10aSBwbGFjZSBpcyB1bnNwZWNpZmllZCBiZWNhdXNlIGl0J3MgdW5pbXBvcnRhbnQgb3IgY2Fu IGJlIGRldGVybWluZWQgZnJvbSBjb250ZXh0LgoKJydfX3pvJ2VfXycnIOKAnHNvbWV0aGluZ+KA nSBGaWxscyBhIHN1bXRpIHBsYWNlIHdpdGggc29tZXRoaW5nLCBidXQgZG9lcyBub3Qgc3RhdGUg d2hhdC4KCgoKU28gdG8gc2F5IOKAnEkgc2VsbCB0byB5b3XigJ0sIEkgY291bGQgc2F5ICcnbWkg dmVjbnUgem8nZSBkbyB6bydlJycg4oCTIEkgc2VsbCBzb21ldGhpbmcgdG8geW91IGZvciBzb21l IHByaWNlLgoKSG93IHdvdWxkIHlvdSBzYXk6IOKAnFRoYXQncyBhIGhvbWUgKGZvciBzb21lYm9k eSnigJ0/CgoKCkFuc3dlcjogfn5ncmV5LGdyZXk6ICcndGkgemRhbmkgem8nZScnfn4KCgoKSG93 IGFib3V0IOKAnChzb21lb25lKSBnaXZlcyB0aGlzIHRvIChzb21lb25lKeKAnT8KCgoKQW5zd2Vy OiB+fmdyZXksZ3JleTonJ3pvJ2UgZHVuZGEgdGkgem8nZScnfn4KCgoKU3RpbGwsIGZpbGxpbmcg b3V0IHRocmVlIHpvJ2UganVzdCB0byBzYXkgdGhhdCBhIHRoaW5nIGlzIGJlaW5nIHNvbGQgdGFr ZXMgdGltZS4gVGhlcmVmb3JlIHlvdSBkb24ndCBuZWVkIHRvIHdyaXRlIGFsbCB0aGUgJyd6bydl JycgaW4gYSBicmlkaS4gVGhlIHJ1bGUgc2ltcGx5IGlzIHRoYXQgaWYgeW91IGxlYXZlIG91dCBh bnkgc3VtdGksIHRoZXkgd2lsbCBiZSBjb25zaWRlcmVkIGFzIGlmIHRoZXkgY29udGFpbmVkICcn em8nZScnLiBJZiB0aGUgYnJpZGkgYmVnaW5zIHdpdGggYSBzZWxicmksIHRoZSB4MSBpcyBwcmVz dW1lZCB0byBiZSBvbWl0dGVkIGFuZCBpdCBiZWNvbWVzICcnem8nZScnLgoKVHJ5IGl0IG91dC4g V2hhdCdzIExvamJhbiBmb3Ig4oCcSSBzZWxs4oCdPwoKCgpBbnN3ZXI6IH5+Z3JleSxncmV5Oicn bWkgdmVjbnUnJ35+CgoKCkFuZCB3aGF0IGRvZXMgJyd6ZGFuaSBtaScnIG1lYW4/CgoKCkFuc3dl cjogfn5ncmV5LGdyZXk64oCcU29tZXRoaW5nIGlzIGEgaG9tZSBvZiBtZeKAnSBvciBqdXN0IOKA nEkgaGF2ZSBhIGhvbWUu4oCdfn4KCgoKQXMgbWVudGlvbmVkIGVhcmxpZXIsIHRoZSBmb3JtIGRv ZXNuJ3QgaGF2ZSB0byBiZSB7eDEgc3VtdGl9IHtzZWxicml9IHt4MiBzdW10aX0ge3gzIHN1bXRp fSAoZWN0LikgSW4gZmFjdCwgeW91IGNhbiBwbGFjZSB0aGUgc2VsYnJpIGFueXdoZXJlIHlvdSB3 YW50LCBqdXN0IG5vdCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBicmlkaS4gSWYgeW91IGRvIHRo YXQsIHRoZSB4MSBpcyBjb25zaWRlcmVkIGxlZnQgb3V0IGFuZCBmaWxsZWQgd2l0aCAnJ3pvJ2Un JyBpbnN0ZWFkLiBTbyB0aGUgZm9sbG93aW5nIHRocmVlIGp1ZnJhIGFyZSBhbGwgdGhlIGV4YWN0 bHkgc2FtZSBicmlkaToKCicnbWkgZHVuZGEgdGkgZG8nJwoKJydtaSB0aSBkdW5kYSBkbycnCgon J21pIHRpIGRvIGR1bmRhJycKCgoKU29tZXRpbWVzIHRoaXMgaXMgdXNlZCBmb3IgcG9ldGljIGVm ZmVjdC4g4oCcWW91IHNlbGwgeW91cnNlbGbigJ0gY291bGQgYmUgJydkbyBkbyB2ZWNudScnLCB3 aGljaCBzb3VuZHMgYmV0dGVyIHRoYW4gJydkbyB2ZWNudSBkbycnLiBPciBpdCBjYW4gYmUgdXNl ZCBmb3IgY2xhcml0eSBpZiB0aGUgc2VsYnJpIGlzIHZlcnkgbG9uZyBhbmQgdGhlcmVmb3JlIGJl dHRlciBiZSBsZWZ0IGF0IHRoZSBlbmQgb2YgdGhlIGJyaWRpLgoKCgpUaGVyZSBhcmUgYWxzbyBz ZXZlcmFsIHdheXMgdG8gcGxheSBhcm91bmQgd2l0aCB0aGUgb3JkZXIgb2YgdGhlIHN1bXRpIGlu c2lkZSB0aGUgYnJpZGkuIFRoZSBlYXNpZXN0IG9uZSBpcyBieSB1c2luZyB0aGUgd29yZHMgJydm YScnLCAnJ2ZlJycsICcnZmknJywgJydmbycnIGFuZCAnJ2Z1JycuIE5vdGljZSB0aGF0IHRoZSB2 b3dlbHMgYXJlIHRoZSBmaXZlIHZvd2VscyBpbiB0aGUgTG9qYmFuIGFscGhhYmV0IGluIG9yZGVy LiBVc2luZyBvbmUgb2YgdGhlc2Ugd29yZHMgbWFya3MgdGhhdCB0aGUgbmV4dCBzdW10aSB3aWxs IGZpbGwgdGhlIHgxLCB4MiwgeDMsIHg0IGFuZCB4NSByZXNwZWN0aXZlbHkuIFRoZSBuZXh0IHN1 bXRpIGFmdGVyIHRoYXQgd2lsbCBiZSBwcmVzdW1lZCB0byBmaWxsIGEgc2xvdCBvbmUgZ3JlYXRl ciB0aGFuIHRoZSBwcmV2aW91cy4gVG8gdXNlIGFuIGV4YW1wbGU6CgonJ2R1bmRhIGZhIGRvIGZl IHRpIGRvJycg4oCTIOKAnEdpdmluZyBieSB5b3Ugb2YgdGhpcyB0aGluZyB0byB5b3XigJ0uICcn ZmEnJyBtYXJrcyB0aGUgeDEsIHRoZSBnaXZlciwgd2hpY2ggaXMgeW91LiAnJ2ZlJycgbWFya3Mg dGhlIHRoaW5nIGJlaW5nIGdpdmVuLCB0aGUgeDIuIFN1bXRpIGNvdW50aW5nIHRoZW4gY29udGlu dWVzIGZyb20gJydmZScnLCBtZWFuaW5nIHRoYXQgdGhlIGxhc3Qgc3VtdGkgZmlsbHMgeDMsIHRo ZSBvYmplY3QgcmVjZWl2aW5nLgoKCgpBdHRlbXB0IHRvIHRyYW5zbGF0ZSB0aGUgZm9sbG93aW5n IHRocmVlIHNlbnRlbmNlczoKCgoKJydtaSB2ZWNudSBmbyB0aSBmZSBkbycnCgoKCkFuc3dlcjog fn5ncmV5LGdyZXk64oCdSSBzZWxsLCBmb3IgdGhlIHByaWNlIG9mIHRoaXMsIHlvdeKAnS4gb3Ig 4oCcSSBzZWxsIHlvdSBmb3IgdGhlIHByaWNlIG9mIHRoaXPigJ0gKHByb2JhYmx5IHBvaW50aW5n IHRvIGEgYnVuY2ggb2YgbW9uZXkpfn4KCgoKJyd6ZGFuaSBmZSB0aScnCgoKCkFuc3dlcjogfn5n cmV5LGdyZXk64oCcVGhpcyBoYXMgYSBob21l4oCdLiBIZXJlLCB0aGUgZmUgaXMgcmVkdW5kYW50 Ln5+CgoKCicndmVjbnUgem8nZSBtaSB0aSBmYSBkbycnCgoKCkFuc3dlcjogfn5ncmV5LGdyZXk6 4oCcWW91IHNlbGwgc29tZXRoaW5nIHRvIG1lIGZvciB0aGlzIHByaWNl4oCdfn4KCgoKCgohIUxv amJhbiBMZXNzb25zIOKAkyBsZXNzb24gdGhyZWUgKHRhbnJ1IGFuZCBsbykKCkluIHRoaXMgbGVz c29uLCB5b3Ugd2lsbCBiZWNvbWUgZmFtaWxpYXIgd2l0aCB0aGUgY29uY2VwdCBvZiBhICcndGFu cnUnJy4gQSB0YW5ydSBpcyBmb3JtZWQgd2hlbiBhIHNlbGJyaSBpcyBwdXQgaW4gZnJvbnQgb2Yg YW5vdGhlciBzZWxicmksIG1vZGlmeWluZyBpdHMgbWVhbmluZy4gQSB0YW5ydSBpcyBpdHNlbGYg YSBzZWxicmksIGFuZCBjYW4gY29tYmluZSB3aXRoIG90aGVyIHNlbGJyaSBvciB0YW5ydSB0byBm b3JtIG1vcmUgY29tcGxleCB0YW5ydS4gVGh1cyAnJ3pkYW5pIHZlY251JycgaXMgYSB0YW5ydSwg YXMgd2VsbCBhcyAgJydwZWx4dSB6ZGFuaSB2ZWNudScnLCB3aGljaCBpcyBtYWRlIGZyb20gdGhl IHRhbnJ1ICcncGVseHUgemRhbmknJyBhbmQgdGhlIHNpbmdsZSBicml2bGEgd29yZCAnJ3ZlY251 JycuIFRvIHVuZGVyc3RhbmQgdGhlIGNvbmNlcHQgb2YgdGFucnUsIGNvbnNpZGVyIHRoZSBFbmds aXNoIG5vdW4gY29tYmluYXRpb24g4oCcbGVtb24gdHJlZeKAnS4gSWYgeW91IGRpZG4ndCBrbm93 IHdoYXQgYSBsZW1vbiB0cmVlIHdhcywgYnV0IGhhZCBoZWFyZCBhYm91dCBib3RoIGxlbW9ucyBh bmQgdHJlZXMsIHlvdSB3b3VsZCBub3QgYmUgYWJsZSB0byBkZWR1Y2Ugd2hhdCBhIGxlbW9uIHRy ZWUgd2FzLiBQZXJoYXBzIGEgbGVtb24tY29sb3JlZCB0cmVlLCBvciBhIHRyZWUgc2hhcGVkIGxp a2UgYSBsZW1vbiwgb3IgYSB0cmVlIHdob3NlIGJhcmsgdGFzdGVzIGxpa2UgbGVtb24uIFRoZSBv bmx5IHRoaW5ncyB5b3UgY291bGQga25vdyBmb3Igc3VyZSB3b3VsZCBiZSB0aGF0IGl0IHdvdWxk IGJlIGEgdHJlZSwgYW5kIGl0IHdvdWxkIGJlIGxlbW9uLWxpa2UgaW4gc29tZSB3YXkuCgpBIHRh bnJ1IGlzIGNsb3NlbHkgYW5hbG9nb3VzIHRvIHRoaXMuIEl0IGNhbm5vdCBiZSBzYWlkIGV4YWN0 bHkgd2hhdCBhICcnemRhbmkgdmVjbnUnJyBpcywgYnV0IGl0IGNhbiBiZSBzYWlkIHRoYXQgaXQg aXMgZGVmaW5pdGVseSBhIHZlY251LCBhbmQgdGhhdCBpdCdzIHpkYW5pLWxpa2UgaW4gc29tZSB3 YXkuIEFuZCBpdCBjb3VsZCBiZSB6ZGFuaS1saWtlIGluIGFueSB3YXkuIEluIHRoZW9yeSwgbm8g bWF0dGVyIGhvdyBzaWxseSBvciBhYnN1cmQgdGhlIGNvbm5lY3Rpb24gdG8gemRhbmkgd2FzLCBp dCBjb3VsZCBzdGlsbCB0cnVseSBiZSBhICcnemRhbmkgdmVjbnUnJy4gSG93ZXZlciwgaXQgbXVz dCBhY3R1YWxseSBiZSBhIHZlY251IGluIHRoZSBvcmRpbmFyeSBzZW5zZSBpbiBvcmRlciBmb3Ig dGhlIHRhbnJ1IHRvIGFwcGx5LiBZb3UgY291bGQgZ2xvc3MgJyd6ZGFuaSB2ZWNudScnIGFzIOKA nGhvbWUgc2VsbGVy4oCdLCBvciBldmVuIGJldHRlciBidXQgd29yc2Ugc291bmRpbmcg4oCcYSBo b21lLXR5cGUtb2Ygc2VsbGVy4oCdLiBUaGUgcGxhY2Ugc3RydWN0dXJlIG9mIGEgdGFucnUgaXMg YWx3YXlzIHRoYXQgb2YgdGhlIHJpZ2h0bW9zdCBzZWxicmkuIEl0J3MgYWxzbyBzYWlkIHRoYXQg dGhlIGxlZnQgc2VsYnJpIG1vZGlmaWVzIHRoZSByaWdodCBzZWxicmkuCgrigJxSZWFsbHk/4oCd LCB5b3UgYXNrLCBzY2VwdGljYWxseSwg4oCcSXQgZG9lc24ndCBtYXR0ZXIgaG93IHNpbGx5IHRo ZSBjb25uZWN0aW9uIHRvIHRoZSBsZWZ0IHdvcmQgaW4gYSB0YW5ydSBpcywgaXQncyBzdGlsbCB0 cnVlPyBTbyBJIGNvdWxkIGNhbGwgYWxsIHNlbGxlcnMgZm9yICcnemRhbmkgdmVjbnUnJyBhbmQg dGhlbiBtYWtlIHVwIHNvbWUgc2lsbHkgZXhjdXNlIHdoeSBJIHRoaW5rIGl0J3MgemRhbmktbGlr ZT/igJ0KCldlbGwgeWVzLCBidXQgdGhlbiB5b3UnZCBiZSBhIGRpY2suIE9yIGF0IGxlYXN0IHlv dSdkIGJlIGludGVudGlvbmFsbHkgbWlzbGVhZGluZy4gSW4gZ2VuZXJhbCwgeW91IHNob3VsZCB1 c2UgYSB0YW5ydSB3aGVuIGl0J3Mgb2J2aW91cyBob3cgdGhlIGxlZnQgd29yZCByZWxhdGVzIHRv IHRoZSByaWdodC4KCgoKQXR0ZW1wdCB0byB0cmFuc2xhdGUgdGhlIGZvbGxvd2luZzogJyd0aSBw ZWx4dSB6ZGFuaSBkbycnCgoKCkFuc3dlcjogfn5ncmV5LGdyZXk64oCcVGhhdCBpcyBhIHllbGxv dyBob21lIGZvciB5b3XigJ0gQWdhaW4sIHdlIGRvbid0IGtub3cgaW4gd2hpY2ggd2F5IGl0J3Mg eWVsbG93LiBQcm9iYWJseSBpdCdzIHBhaW50ZWQgeWVsbG93LCBidXQgd2UgZG9uJ3Qga25vdyBm b3Igc3VyZS5+fgoKCgonJ21pIHZlY251IGR1bmRhJycKCgoKQW5zd2VyOiB+fmdyZXksZ3JleTri gJxJIHNlbGwtbGlrZSBnaXZl4oCdLiBXaGF0IGNhbiB0aGF0IG1lYW4/IE5vIGlkZWEuIEl0IGNl cnRhaW5seSBkb2Vzbid0IG1lYW4gdGhhdCB5b3Ugc29sZCBzb21ldGhpbmcsIHNpbmNlLCBieSBk ZWZpbml0aW9uIG9mICcnZHVuZGEnJywgdGhlcmUgY2FuIGJlIG5vIHBheW1lbnQgaW52b2x2ZWQu IEl0IGhhcyB0byBiZSBhIGdpdmVhd2F5LCBidXQgYmUgc2VsbC1saWtlIGluIHNvbWUgYXNwZWN0 Ln5+CgoKCkFuZCBub3cgZm9yIHNvbWV0aGluZyBjb21wbGV0ZWx5IGRpZmZlcmVudC4gV2hhdCBp ZiBJIHdhbnRlZCB0byBzYXkgSSBzb2xkIHRvIGEgR2VybWFuPwoKJydfX2RvdGNvX18nJyB4MSBp cyBHZXJtYW4vcmVmbGVjdHMgR2VybWFuIGN1bHR1cmUgaW4gYXNwZWN0IHgyCgoKCkkgY2FuJ3Qg c2F5ICcnbWkgdmVjbnUgem8nZSBkb3RjbycnIGJlY2F1c2UgdGhhdCB3b3VsZCBsZWF2ZSB0d28g c2VsYnJpIGluIGEgYnJpZGksIHdoaWNoIGlzIG5vdCBwZXJtaXR0ZWQuIEkgY291bGQgc2F5ICcn bWkgZG90Y28gdmVjbnUnJyBidXQgdGhhdCB3b3VsZCBiZSB1bm5lY2Vzc2FyeSB2YWd1ZSAtIEkg Y291bGQgc2VsbCBpbiBhIEdlcm1hbiB3YXkuIExpa2V3aXNlLCBpZiBJIHdhbnQgdG8gc2F5IOKA nEkgYW0gZnJpZW5kcyB3aXRoIGFuIEFtZXJpY2Fu4oCdLCB3aGF0IHNob3VsZCBJIHNheT8KCicn X19wZW5kb19fJycgMXggaXMgYSBmcmllbmQgb2YgeDIKCicnX19tZXJrb19fJycgeDEgaXMgQW1l cmljYW4vcmVmbGVjdCBVUyBjdWx0dXJlIGluIGFzcGVjdCB4MgoKCgpBZ2FpbiwgdGhlIG9idmlv dXMgd291bGQgYmUgdG8gc2F5ICcnbWkgcGVuZG8gbWVya28nJywgYnV0IHRoYXQgd291bGQgZm9y bSBhIHRhbnJ1LCBtZWFuaW5nIOKAnEkgYW0gZnJpZW5kLWxpa2UgQW1lcmljYW7igJ0sIHdoaWNo IGlzIHdyb25nLiBXaGF0IHdlIHJlYWxseSB3YW50IHRvIGlzIHRvIHRha2UgdGhlIHNlbGJyaSAn J21lcmtvJycgYW5kIHRyYW5zZm9ybSBpdCBpbnRvIGEgc3VtdGkgc28gaXQgY2FuIGJlIHVzZWQg aW4gdGhlIHNlbGJyaSAnJ3BlbmRvJycuIFRoaXMgaXMgZG9uZSBieSB0aGUgdHdvIHdvcmRzICcn bG8nJyBhbmQgJydrdScnLgoKX18nJ2xvJydfXyDigJMgZ2VuZXJpYyBiZWdpbiBjb252ZXJ0IHNl bGJyaSB0byBzdW10aSB3b3JkLiBFeHRyYWN0cyB4MSBvZiBzZWxicmkgdG8gdXNlIGFzIHN1bXRp LgoKX18nJ2t1JydfXyDigJMgZW5kIGNvbnZlcnQgc2VsYnJpIHRvIHN1bXRpIHByb2Nlc3MuCgoK CllvdSBzaW1wbHkgcGxhY2UgYSBzZWxicmkgYmV0d2VlbiB0aGVzZSB0d28gd29yZHMsIGFuZCBp dCB0YWtlcyBhbnl0aGluZyB0aGF0IGNhbiBmaWxsIHRoZSB4MSBvZiB0aGF0IHNlbGJyaSBhbmQg dHVybnMgaXQgaW50byBhIHN1bXRpLgoKU28gZm9yIGluc3RhbmNlLCB0aGUgdGhpbmdzIHRoYXQg Y2FuIGZpbGwgemRhbmnigJhzIHgxIGFyZSBvbmx5IHRoaW5ncyB3aGljaCBhcmUgaG9tZXMgb2Yg c29tZWJvZHkuIFNvICcnbG8gemRhbmkga3UnJyBtZWFucyDigJxhIGhvbWUgb3Igc29tZSBob21l cyBmb3Igc29tZWJvZHku4oCdIFNpbWlsYXJseSwgaWYgSSBzYXkgdGhhdCBzb21ldGhpbmcgaXMg cGVseHUsIGl0IG1lYW5zIGl0J3MgeWVsbG93LiBTbyAnJ2xvIHBlbHh1IGt1JycgcmVmZXJzIHRv IHNvbWV0aGluZyB5ZWxsb3cuCgoKCk5vdyB5b3UgaGF2ZSB0aGUgbmVjZXNzYXJ5IGdyYW1tYXIg dG8gYmUgYWJsZSB0byBzYXkg4oCcSSBhbSBmcmllbmRzIHdpdGggYW4gQW1lcmljYW4u4oCdIEhv dz8KCgoKQW5zd2VyOiB+fmdyZXksZ3JleTonJ21pIHBlbmRvIGxvIG1lcmtvIGt1Jyd+fgoKCgpU aGVyZSBpcyBhIGdvb2QgcmVhc29uIHdoeSB0aGUgJydrdScnIGlzIG5lY2Vzc2FyeS4gVHJ5IHRv IHRyYW5zbGF0ZSDigJxBIEdlcm1hbiBzZWxscyB0aGlzIHRvIG1l4oCdCgoKCkFuc3dlcjogfn5n cmV5LGdyZXk6JydsbyBkb3RjbyBrdSB2ZWNudSB0aSBtaScnIElmIHlvdSBsZWF2ZSBvdXQgdGhl IGt1LCB5b3UgZG8gbm90IGdldCBhIGJyaWRpLCBidXQgc2ltcGx5IHRocmVlIHN1bXRpLiBTaW5j ZSBsb+KApmt1IGNhbm5vdCBjb252ZXJ0IGJyaWRpLCB0aGUgdGkgaXMgZm9yY2VkIG91dHNpZGUg dGhlIHN1bXRpLCB0aGUgbG8tY29uc3RydWN0IGlzIGZvcmNlZCB0byBjbG9zZSBhbmQgaXQgc2lt cGx5IGJlY29tZXMgdGhlIHRocmVlIHN1bXRpIG9mICcnbG8gZG90Y28gdmVjbnUge2t1fScnLCAn J3RpJycgYW5kICcnbWknJy5+fgoKCgpZb3UgYWx3YXlzIGhhdmUgdG8gYmUgY2FyZWZ1bCB3aXRo IGp1ZnJhIGxpa2UgJydsbyB6ZGFuaSBrdSBwZWx4dScnLiBJZiB0aGUgJydrdScnIGlzIGxlZnQg b3V0IHRoZSBjb252ZXJzaW9uIHByb2Nlc3MgZG9lcyBub3QgZW5kLCBhbmQgaXQgc2ltcGx5IGJl Y29tZXMgb25lIHN1bXRpLCBtYWRlIGZyb20gdGhlIHRhbnJ1ICcnemRhbmkgcGVseHUnJyBhbmQg dGhlbiBjb252ZXJ0ZWQgd2l0aCAnJ2xvJycuCgoKCgoKISFMb2piYW4gTGVzc29ucyDigJMgbGVz c29uIGZvdXIgKGF0dGl0dWRpbmFscykKCkFub3RoZXIgY29uY2VwdCB3aGljaCBjYW4gYmUgdW5m YW1pbGlhciB0byBFbmdsaXNoIHNwZWFrZXJzIGlzIHRoYXQgb2YgYXR0aXR1ZGluYWxzLiBBdHRp dHVkaW5hbHMgYXJlIHdvcmRzIHRoYXQgZXhwcmVzcyBlbW90aW9ucyBkaXJlY3RseS4gVGhlIGlk ZWEgb2YgYXR0aXR1ZGluYWxzIG9yaWdpbmF0ZWQgaW4gdGhlIGZlbWluaXN0IGNvbnN0cnVjdGVk IGxhbmd1YWdlIExhZGFuLCBzdXBwb3NlZGx5IHRvIGVuYWJsZSB0cnVlIGZlbWFsZSBlbW90aW9u cy4gVGhlIGlkZWEgd2FzIHRoYXQgZmVtYWxlIGVtb3Rpb25hbCBleHByZXNzaW9uIHdhcyBoaW5k ZXJlZCBieSBtYWxlIGRvbWluYXRlZCBsYW5ndWFnZSwgYW5kIGlmIG9ubHkgdGhleSB3ZXJlIGFi bGUgdG8gYmUgZXhwcmVzc2VkIG1vcmUgZnJlZWx5LCB0aGlzIHdvdWxkIGVtcG93ZXIgd29tZW4g dGhyb3VnaCBsaWJlcmF0aW9uIG9mIHRoZSBsYW5ndWFnZS4KCkluIExvamJhbiwgdGhlcmUgaXMg bm8gc3VjaCBhZ2VuZGEsIGFuZCBhdHRpdHVkaW5hbHMgbW9zdCBwcm9iYWJseSBoYXZlIGJlZW4g ZGVzaWduZWQgaW50byB0aGUgbGFuZ3VhZ2UgYmVjYXVzZSB0aGV5IHR1cm5lZCBvdXQgdG8gYmUg aW5jcmVkaWJseSBhd2Vzb21lIGFuZCB1c2VmdWwuIFRoZXkgYWxsIGhhdmUgYSBzby1jYWxsZWQg ZnJlZSBncmFtbWFyLCB3aGljaCBtZWFucyB0aGF0IHRoZXkgY2FuIGFwcGVhciBhbG1vc3QgYW55 d2hlcmUgd2l0aGluIGJyaWRpIHdpdGhvdXQgZGlzcnVwdGluZyB0aGUgYnJpZGkncyBncmFtbWFy IG9yIGFueSBncmFtbWF0aWNhbCBjb25zdHJ1Y3RzLgoKSW4gTG9qYmFuIGdyYW1tYXIsIGFuIGF0 dGl0dWRpbmFsIGFwcGxpZXMgdG8gdGhlIHByZXZpb3VzIHdvcmQuIElmIHRoYXQgcHJldmlvdXMg d29yZCBpcyBhIHdvcmQgd2hpY2ggYmVnaW5zIGEgY29uc3RydWN0IChsaWtlICcnLmknJyBvciAn J2xvJycpLCBpdCBhcHBsaWVzIHRvIHRoZSBlbnRpcmUgY29uc3RydWN0LiBMaWtld2lzZSwgaWYg dGhlIGF0dGl0dWRpbmFsIGZvbGxvd3MgYSB3b3JkIHdoaWNoIGVuZHMgYSBjb25zdHJ1Y3QgbGlr ZSAnJ2t1JycsIGl0IGFwcGxpZXMgdG8gdGhlIGVuZGVkIGNvbnN0cnVjdC4KCgoKTGV0J3MgaGF2 ZSB0d28gYXR0aXR1ZGluYWxzIHRvIG1ha2Ugc29tZSBleGFtcGxlczoKCl9fJycudWknJ19fOiBh dHRpdHVkaW5hbDogc2ltcGxlIHB1cmUgZW1vdGlvbjogaGFwcGluZXNzIC0gdW5oYXBwaW5lc3MK Cl9fJyd6YSdhJydfXzogYXR0aXR1ZGluYWw6IGV2aWRlbnRpYWw6IEkgZGlyZWN0bHkgb2JzZXJ2 ZQoKCgpOb3RlIHRoYXQgaW4gdGhlIGRlZmluaXRpb24gb2YgJycudWknJywgdGhlcmUgYXJlIGxp c3RlZCB0d28gZW1vdGlvbnMsIGhhcHBpbmVzcyBhbmQgdW5oYXBwaW5lc3MuIFRoaXMgbWVhbnMg dGhhdCAnJy51aScnIGlzIGRlZmluZWQgYXMgaGFwcGluZXNzLCB3aGlsZSBpdHMg4oCcbmVnYXRp b27igJ0sIG1lYW5zIHVuaGFwcGluZXNzLiDigJxOZWdhdGlvbuKAnSBtaWdodCBiZSB0aGUgd3Jv bmcgd29yZCBoZXJlLiBUZWNobmljYWxseSwgdGhlIG90aGVyIGRlZmluaXRpb24gb2YgJycudWkn JyBpcyBhbm90aGVyIGNvbnN0cnVjdCwgJycudWkgbmFpJycuIE1vc3Qgb2YgdGhlIHRpbWUsIHRo ZSBzZWNvbmQgZGVmaW5pdGlvbiBvZiBhdHRpdHVkaW5hbHMgLSB0aGUgb25lcyBzdWZmaXhlZCB3 aXRoICcnbmFpJycgLSByZWFsbHkgaXMgdGhlIG5lZ2F0aW9uIG9mIHRoZSBiYXJlIGF0dGl0dWRp bmFsLiBPdGhlciB0aW1lcywgbm90IHNvIG11Y2guCgpfXycnbmFpJydfXyBtaXNjLiBuZWdhdGlv biAtIGF0dGFjaGVkIHRvIGF0dGl0dWRpbmFscywgaXQgY2hhbmdlcyB0aGUgbWVhbmluZyBpbnRv IHRoZSBhdHRpdHVkaW5hbCdzICJuZWdhdGlvbiIKCgoKQW5kIHNvbWUgbW9yZSBzZWxicmksIGp1 c3QgZm9yIHRoZSBoZWNrIG9mIGl0OgoKX18nJ2NpdGthJydfXyDigJMgeDEgZWF0cyB4MgoKX18n J3BsaXNlJydfXyDigJMgeDEgaXMgYW4gYXBwbGUgb2Ygc3RyYWluL3R5cGUgeDIKCgoKVGhlIHNl bnRlbmNlICcnZG8gY2l0a2EgbG8gcGxpc2Uga3UgLnVpJycsIG1lYW5zIOKAnFlvdSBlYXQgYW4g YXBwbGUsIHlheSHigJ0gKGVzcGVjaWFsbHkgZXhwcmVzc2luZyB0aGF0IGl0IGlzIHRoZSBfX2Fw cGxlX18gdGhhdCB0aGUgc3BlYWtlciBpcyBoYXBweSBhYm91dCwgbm90IHRoZSBlYXRpbmcsIG9y IHRoZSBmYWN0IHRoYXQgaXQgd2FzIHlvdS4pIEluIHRoZSBzZW50ZW5jZSAnJ2RvIHphJ2EgY2l0 a2EgbG8gcGxpc2Uga3UnJywgdGhlIHNwZWFrZXIgZGlyZWN0bHkgb2JzZXJ2ZXMgdGhhdCBpdCBp cyBpbmRlZWQgdGhlIF9f4oCceW914oCdX18sIHdobyBlYXRzIGFuIGFwcGxlIGFzIG9wcG9zZWQg dG8gc29tZW9uZSBlbHNlLgoKCgpJZiBhbiBhdHRpdHVkaW5hbCBpcyBwbGFjZWQgYXQgdGhlIGJl Z2lubmluZyBvZiB0aGUgYnJpZGksIGl0IGlzIHVuZGVyc3Rvb2QgdG8gYXBwbHkgdG8gYW4gZXhw bGljaXQgb3IgaW1wbGljaXQgJycuaScnLCB0aHVzIGFwcGx5aW5nIHRvIHRoZSBlbnRpcmUgYnJp ZGk6CgonJy51aSB6YSdhIGRvIGR1bmRhIGxvIHBsaXNlIGt1IG1pJycg4oCTIOKAnFlheSwgSSBv YnNlcnZlIHRoYXQgeW91IGdpdmUgYW4vc29tZSBhcHBsZSB0byBtZSHigJ0KCgoKJydtaSB2ZWNu dSAudWkgbmFpIGxvIHpkYW5pIGt1Jycg4oCcSSBzZWxsICh3aGljaCBzdWNrcyEpIGEgaG9tZeKA nS4KCgoKVHJ5IGl0IG91dCB3aXRoIGEgZmV3IGV4YW1wbGVzLiBGaXJzdCwgdGhvdWdoLCBoZXJl IGFyZSBzb21lIG1vcmUgYXR0aXR1ZGluYWxzOgoKX18nJy51J3UnJ19fIGF0dGl0dWRpbmFsOiBz aW1wbGUgcHVyZSBlbW90aW9uOiBndWlsdCAtIHJlbW9yc2VsZXNzbmVzcyAtIGlubm9jZW5jZS4K Cl9fJycub2knJ19fIGF0dGl0dWRpbmFsOiBjb21wbGV4IHB1cmUgZW1vdGlvbjogY29tcGxhaW50 IC0gcGxlYXN1cmUuCgpfXycnLml1JydfXyBhdHRpdHVkaW5hbDogbWlzY2VsbGFuZW91cyBwdXJl IGVtb3Rpb246IGxvdmUgLSBoYXRlLgoKCgpMb29rIGF0IHRoYXQsIHR3byB3b3JkcyB3aXRoIHRo cmVlIGVtb3Rpb25zIGluIHRoZSBkZWZpbml0aW9uISBUaGUgbWlkZGxlIG9uZSBpcyBhY2Nlc3Nl ZCBieSBzdWZmaXhpbm5nIHdpdGggJydjdSdpJycuIEl0J3MgY29uc2lkZXJlZCB0aGUgbWlkcG9p bnQgb2YgdGhlIGVtb3Rpb24uCgpfXycnY3UnaScnX18gYXR0aXR1ZGluYWwgbWlkcG9pbnQgc2Nh bGFyOiBhdHRhY2ggdG8gYXR0aXR1ZGluYWwgdG8gY2hhbmdlIHRoZSBtZWFuaW5nIHRvIHRoZSAi bWlkcG9pbnQiIG9mIHRoZSBlbW90aW9uLgoKCgpUcnkgc2F5aW5nIOKAnEkgZ2l2ZSBzb21ldGhp bmcgdG8gYSBHZXJtYW4sIHdobyBJIGxvdmXigJ0KCgoKQW5zd2VyOiB+fmdyZXksZ3JleTonJ21p IGR1bmRhIGZpIGxvIGRvdGNvIGt1IC5pdScnIG9yICcnem8nZScnIGluc3RlYWQgb2YgJydmaScn fn4KCgoKTm93IOKAnEFhaCwgSSBlYXQgYSB5ZWxsb3cgYXBwbGXigJ0KCkFuc3dlcjogfn5ncmV5 LGdyZXk6Jycub2kgbmFpIG1pIGNpdGthIGxvIHBlbHh1IHBsaXNlIGt1Jyd+fgoKCgpMZXQncyBo YXZlIGFub3RoZXIgYXR0aXR1ZGluYWwgb2YgYSBkaWZmZXJlbnQga2luZCB0byBpbGx1c3RyYXRl IHNvbWV0aGluZyBwZWN1bGlhcjoKCicnLmVpJycgQXR0aXR1ZGluYWw6IGNvbXBsZXggcHJvcG9z aXRpb25hbCBlbW90aW9uOiBvYmxpZ2F0aW9uIC0gZnJlZWRvbS4KCgoKU28sIHF1aXRlIGVhc3k6 IOKAnEkgaGF2ZSB0byBnaXZlIHRoZSBhcHBsZSBhd2F54oCdIGlzICcnbWkgZHVuZGEgLmVpIGxv IHBsaXNlIGt1JycsIHJpZ2h0PyBJdCBpcywgYWN0dWFsbHkhIFdoZW4geW91IHRoaW5rIGFib3V0 IGl0LCB0aGF0J3Mgd2VpcmQuIFdoeSBpcyBpdCB0aGF0IGFsbCB0aGUgb3RoZXIgYXR0aXR1ZGlu YWxzIHdlIGhhdmUgc2VlbiBzbyBmYXIgZXhwcmVzc2VzIHRoZSBzcGVha2VyJ3MgZmVlbGluZyBh Ym91dCB0aGUgYnJpZGksIGJ1dCB0aGlzIG9uZSBhY3R1YWxseSBjaGFuZ2VzIHdoYXQgdGhlIGJy aWRpIG1lYW5zPyBTdXJlbHksIGJ5IHNheWluZyDigJxJIGhhdmUgdG8gZ2l2ZSB0aGUgYXBwbGUg YXdheeKAnSwgd2Ugc2F5IG5vdGhpbmcgYWJvdXQgd2hldGhlciB0aGUgYXBwbGUgYWN0dWFsbHkg aXMgYmVpbmcgZ2l2ZW4gYXdheS4gSWYgSSBoYWQgdXNlZCAnJy51aScnLCBob3dldmVyLCBJIHdv dWxkIGFjdHVhbGx5IGhhdmUgc3RhdGVkIHRoYXQgSSBnYXZlIHRoZSBhcHBsZSBhd2F5LCBhbmQg dGhhdCBJIHdhcyBoYXBweSBhYm91dCBpdC4gV2hhdCdzIHRoYXQgYWxsIGFib3V0PwoKCgpUaGlz IGlzc3VlLCBleGFjdGx5IGhvdyBhdHRpdHVkaW5hbHMgY2hhbmdlIHRoZSBjb25kaXRpb25zIG9u IHdoaWNoIGEgYnJpZGkgaXMgdHJ1ZSwgaXMgYSBzdWJqZWN0IG9mIGEgbWlub3IgZGViYXRlLiBU aGUgb2ZmaWNpYWwsIOKAnHRleHRib29r4oCdIHJ1bGUsIHdoaWNoIHByb2JhYmx5IHdvbid0IGJl IGNoYW5nZWQsIGlzIHRoYXQgdGhlcmUgaXMgYSBkaXN0aW5jdGlvbiBiZXR3ZWVuIOKAnHB1cmUg ZW1vdGlvbnPigJ0gYW5kIOKAnHByb3Bvc2l0aW9uYWwgZW1vdGlvbnPigJ0uIE9ubHkgcHJvcG9z dGlvbmFsIGVtb3Rpb25zIGNhbiBjaGFuZ2UgdGhlIHRydXRoIGNvbmRpdGlvbnMsIHdoaWxlIHB1 cmUgZW1vdGlvbnMgY2Fubm90LiBJbiBvcmRlciB0byBleHByZXNzIGEgcHJvcG9zaXRpb25hbCBl bW90aW9uYWwgYXR0aXR1ZGluYWwgd2l0aG91dCBjaGFuZ2luZyB0aGUgdHJ1dGggdmFsdWUgb2Yg dGhlIGJyaWRpLCB5b3UgY2FuIGp1c3Qgc2VwYXJhdGUgaXQgZnJvbSB0aGUgYnJpZGkgd2l0aCAn Jy5pJycuIFRoZXJlIGlzIGFsc28gYSB3b3JkIGZvciBleHBsaWNpdGx5IGNvbnNlcnZpbmcgb3Ig Y2hhbmdpbmcgdGhlIHRydXRoIGNvbmRpdGlvbnMgb2YgYSBicmlkaToKCgoKX18nJ2RhJ2knJ19f IGF0dGl0dWRpbmFsOiBkaXNjdXJzaXZlOiBzdXBwb3NpbmcgLSBpbiBmYWN0CgpTYXlpbmcgJydk YSdpJycgaW4gYSBicmlkaSBjaGFuZ2VzIHRoZSB0cnV0aCBjb25kaXRpb25zIHRvIGh5cG90aGV0 aWNhbCwgd2hpY2ggaXMgdGhlIGRlZmF1bHQgdXNpbmcgcHJvcG9zaXRpb25hbCBhdHRpdHVkaW5h bHMuIFNheWluZyAnJ2RhJ2kgbmFpJycgY2hhbmdlcyB0aGUgdHJ1dGggY29uZGl0aW9uIHRvIHRo ZSBub3JtYWwsIHdoaWNoIGlzIGRlZmF1bHQgdXNpbmcgcHVyZSBhdHRpdHVkaW5hbHMuCgoKClNv LCB3aGF0J3MgdHdvIHdheXMgb2Ygc2F5aW5nIOKAnEkgZ2l2ZSB0aGUgYXBwbGUgYXdheeKAnT8g KGFuZCBmZWVsIG9ibGlnYXRpb24gYWJvdXQgaXQpCgoKCkFuc3dlcjogfn5ncmV5LGdyZXk6Jydt aSBkdW5kYSBsbyBwbGlzZSAuaSAuZWknJyAgYW5kICcnbWkgZHVuZGEgZGEnaSBuYWkgLmVpIGxv IHBsaXNlJyd+fgoKCgpUaGUgZmVlbGluZyBvZiBhbiBhdHRpdHVkaW5hbCBjYW4gYmUgc3Vic2Ny aWJlZCB0byBzb21lb25lIGVsc2UgdXNpbmcgJydkYWknJy4gVXN1YWxseSBpbiBvcmRpbmFyeSBz cGVlY2gsIHRoZSBhdHRpdHVkaW5hbCBpcyBzdWJzY3JpYmVkIHRvIHRoZSBsaXN0ZW5lciwgYnV0 IGl0IGRvZXNuJ3QgaGF2ZSB0byBiZSBzby4gQWxzbywgYmVjYXVzZSB0aGUgd29yZCBpcyBnbG9z c2VkIOKAnGVtcGF0aHnigJ0gKGZlZWxpbmcgb3RoZXJzIGVtb3Rpb25zKSwgc29tZSBMb2piYW5p c3RzIG1pc3Rha2VubHkgdGhpbmsgdGhhdCB0aGUgc3BlYWtlciBtdXN0IHNoYXJlIHRoZSBlbW90 aW9uIGJlaW5nIHN1YnNjcmliZWQgdG8gb3RoZXJzLgoKX18nJ2RhaScnX18gYXR0aXR1ZGluYWwg bW9kaWZ5ZXI6IEVtcGF0aHkgKHN1YnNjcmliZXMgYXR0aXR1ZGluYWwgdG8gc29tZW9uZSBlbHNl LCB1bnNwZWNpZmllZCkKCkV4YW1wbGU6ICcndSdpIC5vaSBkYWkgY2l0a2EgdGknJyAtIOKAnEhh IGhhLCB0aGlzIHdhcyBlYXRlbiEgVGhhdCBtdXN0IGhhdmUgaHVydCHigJ0KCgoKV2hhdCBvZnRl biB1c2VkIHBocmFzZSBjb3VsZCAnJy5vaSB1J2kgZGFpJycgbWVhbj8KCgoKQW5zd2VyOiB+fmdy ZXksZ3JleTrigJxPdWNoLCB2ZXJ5IGZ1bm55LuKAnX5+CgoKCkFuZCBhbm90aGVyIG9uZSB0byB0 ZXN0IHlvdXIga25vd2xlZGdlOiBUcnkgdG8gdHJhbnNsYXRlIOKAnEhlIHdhcyBzb3JyeSBoZSBz b2xkIGEgaG9tZeKAnSAocmVtZW1iZXJpbmcsIHRoYXQgdGVuc2UgaXMgaW1wbGllZCBhbmQgbmVl ZCBub3QgYmUgc3BlY2lmaWVkLiBBbHNvLCDigJxoZeKAnSBjb3VsZCBiZSBvYnZpb3VzIGZyb20g Y29udGV4dCkKCgoKQW5zd2VyOiB+fmdyZXksZ3JleTonJ3UndSBkYWkgdmVjbnUgbG8gemRhbmkg a3UnJ35+CgoKCkxhc3RseSwgdGhlIGludGVuc2l0eSBvZiBhbiBhdHRpdHVkaW5hbCBjYW4gYmUg c3BlY2lmaWVkIHVzaW5nIGNlcnRhaW4gd29yZHMuIFRoZXNlIGNhbiBiZSB1c2VkIGFmdGVyIGFu IGF0dGl0dWRpbmFsLCBvciBhbiBhdHRpdHVkaW5hbCB3aXRoICcnbmFpJycgb3IgJydjdSdpJycg c3VmZml4ZWQuIEl0J3MgbGVzcyBjbGVhciB3aGF0IGhhcHBlbnMgd2hlbiB5b3UgYXR0YWNoIGl0 IHRvIG90aGVyIHdvcmRzLCBsaWtlIGEgc2VsYnJpLCBtdXN0IGl0J3MgbW9zdGx5IHVuZGVyc3Rv b2QgYXMgaW50ZW5zaWZ5aW5nIG9yIHdlYWtlbmluZyB0aGUgc2VsYnJpIGluIHNvbWUgdW5zcGVj aWZpZWQgd2F5OgoKfHwgTW9kaWZ5aW5nIHdvcmQgIHwgSW50ZW5zaXR5ICAKCiBjYWl8ICAgRXh0 cmVtZQoKIHNhaXwgICBTdHJvbmcKCiAobm9uZSl8ICAgVW5zcGVjaWZpZWQgKG1lZGl1bSkKCiBy dSdlICB8ICAgV2Vha3x8CgoKCldoYXQgZW1vdGlvbiBpcyBleHByZXNzZWQgdXNpbmcgJycudSdp IG5haSBzYWknJyA/CgpfXycnLnUnaScnX186IGF0dGl0dWRpbmFsOiBzaW1wbGUgcHVyZSBlbW90 aW9uOiBhbXVzZW1lbnQgLSB3ZWFyaW5lc3MKCgoKQW5zd2VyOiB+fmdyZXksZ3JleTpTdHJvbmcg d2VhcmluZXNzfn4KCgoKQW5kIGhvdyB3b3VsZCB5b3UgZXhwcmVzcyB0aGF0IHlvdSBhcmUgbWls ZGx5IHJlbW9yc2VsZXNzPwoKCgpBbnN3ZXI6IH5+Z3JleSxncmV5OicnLnUndSBjdSdpIHJ1J2Un J35+CgoKCiEhTG9qYmFuIGxlc3NvbnMg4oCTIGxlc3NvbiBmaXZlIChTRSkKCkJlZm9yZSB3ZSB2 ZW50dXJlIGludG8gdGhlIHRlcnJpdG9yeSBvZiBtb3JlIGNvbXBsZXggY29uc3RydWN0cywgeW91 IHNob3VsZCBsZWFybiBhbm90aGVyIG1lY2hhbmlzbSBmb3IgcmVvcmRlcmluZyB0aGUgc3VtdGkg b2YgYSBzZWxicmkuIFRoaXMsIGFzIHdlIHdpbGwgc2hvdywgaXMgdmVyeSB1c2VmdWwgZm9yIG1h a2luZyBkZXNjcmlwdGlvbi1saWtlIHN1bXRpICh0aGUga2luZCBvZiBzdW10aSB3aXRoICcnbG8n JykuCgpDb25zaWRlciB0aGUgc2VudGVuY2Ug4oCcSSBlYXQgYSBnaWZ04oCdLCB3aGljaCBtaWdo dCBiZSBhcHByb3ByaWF0ZSBpZiB0aGF0IGdpZnQgaXMgYW4gYXBwbGUuIFRvIHRyYW5zbGF0ZSB0 aGlzLCBpdCB3b3VsZCBzZWVtIG5hdHVyYWwgdG8gbG9vayB1cCBhIHNlbGJyaSBtZWFuaW5nIOKA nGdpZnTigJ0gYmVmb3JlIGNvbnRpbnVpbmcuIEhvd2V2ZXIsIGlmIG9uZSBsb29rcyBjYXJlZnVs bHkgYXQgdGhlIGRlZmluaXRpb24gb2YgJydkdW5kYScnLCB4MSBnaXZlcyB4MiB0byB4Mywgb25l IHJlYWxpemVzIHRoYXQgdGhlIHgyIG9mICcnZHVuZGEnJyBpcyBzb21ldGhpbmcgZ2l2ZW4g4oCT IGEgZ2lmdC4KClNvLCB0byBleHByZXNzIHRoYXQgc2VudGVuY2UsIHdlIGNhbid0IHNheSAnJ21p IGNpdGthIGxvIGR1bmRhIGt1JycsIGJlY2F1c2UgJydsbyBkdW5kYSBrdScnIHdvdWxkIGJlIHRo ZSB4MSBvZiAnJ2R1bmRhJycsIHdoaWNoIGlzIGEgZG9ub3Igb2YgYSBnaWZ0LiBDYW5uaWJhbGlz bSBhc2lkZSwgd2UgZG9uJ3Qgd2FudCB0byBzYXkgdGhhdC4gV2hhdCB3ZSB3YW50IGlzIGEgd2F5 IHRvIGV4dHJhY3QgdGhlIHgyIG9mIGEgc2VsYnJpLgoKVGhpcyBpcyBvbmUgZXhhbXBsZSB3aGVy ZSBpdCBpcyB1c2VmdWwgdG8gdXNlIHRoZSB3b3JkICcnc2UnJy4gV2hhdCAnJ3NlJycgZG9lcyBp cyB0byBtb2RpZnkgYSBzZWxicmkgc3VjaCB0aGF0IHRoZSB4MSBhbmQgeDIgb2YgdGhhdCBzZWxi cmkgdHJhZGUgcGxhY2VzLiBUaGUgY29uc3RydWN0IG9mICcnc2UnJyArIHNlbGJyaSBpcyBvbiBp dHMgb3duIGNvbnNpZGVyZWQgb25lIHNlbGJyaS4gTGV0J3MgdHJ5IHdpdGggYW4gb3JkaW5hcnkg c2VudGVuY2U6CgpfXycnZmFudmEnJ19fID0g4oCceDEgdHJhbnNsYXRlcyB4MiB0byBsYW5ndWFn ZSB4MyBmcm9tIGxhbmd1YWdlIHg0IHdpdGggcmVzdWx0IG9mIHRyYW5zbGF0aW9uIHg14oCdCgon J3RpIHNlIGZhbnZhIG1pJycgPSAnJ21pIGZhbnZhIHRpJycKClRoaXMgaXMgdHJhbnNsYXRlZCBi eSBtZSAoPSBJIHRyYW5zbGF0ZSB0aGlzKS4gT2Z0ZW4sIGJ1dCBub3QgYWx3YXlzLCBicmlkaSB3 aXRoICcnc2UnJy1jb25zdHJ1Y3RzIGFyZSB0cmFuc2xhdGVkIHRvIHNlbnRlbmNlcyB3aXRoIHRo ZSBwYXNzaXZlIHZvaWNlLCBzaW5jZSB0aGUgeDEgaXMgb2Z0ZW4gdGhlIG9iamVjdCB0YWtpbmcg YWN0aW9uLgoKJydzZScnIGhhcyBpdHMgb3duIGZhbWlseSBvZiB3b3Jkcy4gQWxsIG9mIHRoZW0g c3dhcCBhIGRpZmZlcmVudCBwbGFjZSB3aXRoIHRoZSB4MS4KCnx8c2UJfHN3YXAgeDEgYW5kIHgy Cgp0ZQl8c3dhcCB4MSBhbmQgeDMKCnZlCXxzd2FwIHgxIGFuZCB4NAoKeGUJfHN3YXAgeDEgYW5k IHg1fHwKCk5vdGUgdGhhdCBzLCB0LCB2LCBhbmQgeCBhcmUgY29uc2VjdXRpdmUgY29uc29uYW50 cyBpbiB0aGUgbG9qYmFuIGFscGhhYmV0LgoKCgpTbzogVXNpbmcgdGhpcyBrbm93bGVkZ2UsIHdo YXQgd291bGQgJyd0aSB4ZSBmYW52YSB0aScnIG1lYW4/CgoKCkFuc3dlcjogfn5ncmV5LGdyZXk6 4oCcVGhpcyBpcyBhIHRyYW5zbGF0aW9uIG9mIHRoaXPigJ0gKG9yICcnZmFudmEgdGkgZnUgdGkn Jyl+fgoKCgonJ3NlJycgYW5kIGl0cyBmYW1pbHkgY2FuIG9mIGNvdXJzZSBiZSBjb21iaW5lZCB3 aXRoICcnZmEnJyBhbmQgaXRzIGZhbWlseS4gVGhlIHJlc3VsdCBjYW4gYmUgdmVyeSBjb25mdXNp bmcgaW5kZWVkLCBpZiB5b3Ugd2lzaCB0byBtYWtlIGl0IHNvOgoKX18nJ2tsYW1hJydfXyA9IOKA nHgxIHRyYXZlbHMvZ29lcyB0byB4MiBmcm9tIHgzIHZpYSB4NCB1c2luZyB4NSBhcyB0cmFuc3Bv cnRhdGlvbiBkZXZpY2XigJ0KCicnZnUgbG8gemRhbmkga3UgdGUga2xhbWEgZmUgZG8gdGkgZmEg bWknJyA9ICcnbWkgdGUga2xhbWEgZG8gdGkgbG8gemRhbmkga3UnJyBhbmQgc2luY2UgJyd0ZScn IGV4Y2hhbmdlcyB4MSBhbmQgeDM6ID0gJyd0aSBrbGFtYSBkbyBtaSBsbyB6ZGFuaSBrdScnCgri gJxUaGlzIHRyYXZlbHMgdG8geW91IGZyb20gbWUgdmlhIGEgaG9tZS7igJ0gT2YgY291cnNlLCBu byBvbmUgd291bGQgbWFrZSBzdWNoIGEgc2VudGVuY2UgZXhjZXB0IHRvIGNvbmZ1c2UgcGVvcGxl LCBvciBjcnVlbGx5IHRvIHRlc3QgdGhlaXIgdW5kZXJzdGFuZGluZyBvZiBMb2piYW4gZ3JhbW1h ci4KCkFuZCB0aHVzLCB3ZSBoYXZlIGNvbWUgdG8gdGhlIHBvaW50IHdoZXJlIHdlIGNhbiBzYXkg 4oCcSSBlYXQgYSBnaWZ0LuKAnS4gU2ltcGx5IGV4Y2hhbmdlIHRoZSBzdW10aSBwbGFjZXMgb2Yg JydkdW5kYScnIHRvIGdldCB0aGUgZ2lmdCB0byBiZSB4MSwgdGhlbiBleHRyYWN0IHRoaXMgbmV3 IHgxIHdpdGggJydsbycnLi4uJydrdScnLiBTbywgaG93IHdvdWxkIHlvdSBzYXkgaXQ/CgpPbmUg KHBvc3NpYmxlKSBhbnN3ZXI6IH5+Z3JleSxncmV5OicnbWkgY2l0a2EgbG8gc2UgZHVuZGEga3Un J35+CgpUaGlzIHNob3dzIG9uZSBvZiB0aGUgbWFueSB1c2VzIGZvciAnJ3NlJycgYW5kIGl0cyBm YW1pbHkuCgoKCgoKISFMb2piYW4gbGVzc29ucyDigJMgbGVzc29uIHNpeCAoYWJzdHJhY3Rpb25z KQoKU28gZmFyIHdlIGhhdmUgb25seSBleHByZXNzZWQgc2luZ2xlIHNlbnRlbmNlcyBvbmUgYXQg YSB0aW1lLiBUbyBleHByZXNzIG1vcmUgY29tcGxleCB0aGluZ3MsIGhvd2V2ZXIsIHlvdSBvZnRl biBuZWVkIHN1Ym9yZGluYXRlIHNlbnRlbmNlcy4gTHVja2lseSwgdGhlc2UgYXJlIG11Y2ggZWFz aWVyIGluIExvamJhbiB0aGFuIHdoYXQgb25lIHdvdWxkIGV4cGVjdC4KCldlIGNhbiBiZWdpbiB3 aXRoIGFuIGV4YW1wbGUgdG8gZGVtb25zdHJhdGUgdGhpczog4oCcSSBhbSBoYXBweSB0aGF0IHlv dSBhcmUgbXkgZnJpZW5kLuKAnSBIZXJlLCB0aGUgbWFpbiBicmlkaSBpcyDigJxJIGFtIGhhcHB5 IHRoYXQgWC7igJ0sIGFuZCB0aGUgc3ViLWJyaWRpIGlzIOKAnFlvdSBhcmUgbXkgZnJpZW5kLuKA nSBMb29raW5nIGF0IHRoZSBkZWZpbml0aW9uIGZvciDigJxoYXBweeKAnSwgd2hpY2ggaXMgJydn bGVraScnOgoKX18nJ2dsZWtpJydfXyDigJx4MSBpcyBoYXBweSBhYm91dCB4MiAoZXZlbnQvc3Rh dGUp4oCdCgpPbmUgc2VlcyB0aGF0IHRoZSB4MiBuZWVkcyB0byBiZSBhbiBldmVudCBvciBhIHN0 YXRlLiBUaGlzIGlzIG5hdHVyYWwsIGJlY2F1c2Ugb25lIGNhbm5vdCBiZSBoYXBweSBhYm91dCBh biBvYmplY3QgaW4gaXRzZWxmLCBvbmx5IGFib3V0IHNvbWUgc3RhdGUgdGhlIG9iamVjdCBpcyBp bi4gQnV0IGFsYXMhIE9ubHkgYnJpZGkgY2FuIGV4cHJlc3MgYSBzdGF0ZSBvciBhbiBldmVudCwg YW5kIG9ubHkgc3VtdGkgY2FuIGZpbGwgdGhlIHgyIG9mICcnZ2xla2knJyEKCkFzIHlvdSBtaWdo dCBoYXZlIGd1ZXNzZWQsIHRoZXJlIGlzIGEgc29sdXRpb24uIFRoZSB3b3JkcyAnJ3N1J3UnJy4u Licna2VpJycgaXMgYSBnZW5lcmljIOKAnGNvbnZlcnQgYnJpZGkgdG8gc2VsYnJp4oCdIGZ1bmN0 aW9uLCBhbmQgd29ya3MganVzdCBsaWtlICcnbG8nJ+KApicna3UnJy4gRXhhbXBsZToKCl9fJydt cm9iaSdvJydfXyDigJx4MSBkaWVzIHVuZGVyIGNvbmRpdGlvbiB4MuKAnQoKX18nJ3N1J3UnJ19f IHgxIGlzIGFuIGFic3RyYWN0aW9uIG9mIHticmlkaX0gb2YgdHlwZSB4MgoKX18nJ2tlaScnX18g ZW5kIGFic3RyYWN0aW9uCgonJ21pIHN1J3UgZG8gbXJvYmknbyBrZWknJyDigJMg4oCcSSBhbSB5 b3VyIGRlYXRo4oCdLgoKSXQncyBoYXJkIHRvIGZpbmQgZ29vZCB1c2VzIG9mIGEgYnJpZGkgYXMg YSBzZWxicmksIGFuZCB0aGUgYWJvdmUgZXhhbXBsZSBzZWVtcyBhIGxpdHRsZSB1bmNvbnZpbmNp bmcuIEhvd2V2ZXIsIHNpbmNlICcnc3UndSBCUklESSBrZWknJyBpcyBhIHNlbGJyaSwgb25lIGNh biBjb252ZXJ0IGl0IHRvIGEgc3VtdGkgdXNpbmcgJydsbycnLi4uJydrdScnLgoKTm93IHdlIGhh dmUgdGhlIGVxdWlwbWVudCB0byBleHByZXNzIOKAnEkgYW0gaGFwcHkgdGhhdCB5b3UgYXJlIG15 IGZyaWVuZOKAnS4gVHJ5IGl0IG91dCEKCl9fJydwZW5kbycnX18g4oCceDEgaXMgYSBmcmllbmQg b2YgeDLigJ0KCgoKQW5zd2VyOiB+fmdyZXksZ3JleTonJ21pIGdsZWtpIGxvIHN1J3UgZG8gcGVu ZG8gbWkga2VpIGt1Jyd+fgoKCgpIb3dldmVyLCAnJ3N1J3UnJ+KApicna2VpJycgZG9lcyBub3Qg c2VlIG11Y2ggdXNlLiBQZW9wbGUgcHJlZmVyIHRvIHVzZSB0aGUgbW9yZSBzcGVjaWZpYyB3b3Jk cyAnJ251JyfigKYnJ2tlaScnIGFuZCAnJ2R1J3UnJ+KApicna2VpJycuIFRoZXkgd29yayB0aGUg c2FtZSB3YXksIGJ1dCBtZWFuIHNvbWV0aGluZyBkaWZmZXJlbnQuICcnbnXigKZrZWknJyB0cmVh dHMgdGhlIGJyaWRpIGluIGJldHdlZW4gYXMgYW4gZXZlbnQgb3Igc3RhdGUsIGFuZCAnJ2R1J3Xi gKZrZWknJyB0cmVhdHMgaXQgYXMgYW4gYWJzdHJhY3QgYnJpZGksIGZvciBleHByZXNzaW5nIHRo aW5ncyBsaWtlIGlkZWFzLCB0aG91Z2h0cyBvciB0cnV0aHMuIEFsbCB0aGVzZSB3b3JkcyAoZXhj ZXB0ICcna2VpJycpIGFyZSBjYWxsZWQgYWJzdHJhY3RvcnMuIFRoZXJlIGFyZSBtYW55IG9mIHRo ZW0sIGFuZCBvbmx5IGZldyBhcmUgdXNlZCBtdWNoLiAnJ3N1J3XigKZrZWknJyBpcyBhIGdlbmVy YWwgYWJzdHJhY3RvciwgYW5kIHdpbGwgd29yayBpbiBhbGwgY2FzZXMuCgoKClVzZSAnJ251Jycg dG8gc2F5IOKAnEknbSBoYXBweSBhYm91dCB0YWxraW5nIHRvIHlvdS7igJ0KCl9fJyd0YXZsYScn X18geDEgdGFsa3MgdG8geDIgYWJvdXQgc3ViamVjdCB4MyBpbiBsYW5ndWFnZSB4NC4KCgoKQW5z d2VyOiB+fmdyZXksZ3JleTonJ21pIGdsZWtpIGxvIG51IHRhdmxhIGRvIGtlaSBrdScnIChub3Rp Y2UgYm90aCB0aGUgRW5nbGlzaCBhbmQgdGhlIExvamJhbiBpcyB2YWd1ZSBhcyB0byB3aG8gaXMg ZG9pbmcgdGhlIHRhbGtpbmcpLn5+CgoKCk90aGVyIGltcG9ydGFudCBhYnN0cmFjdG9ycyBpbmNs dWRlOiAnJ2thLi4ua2VpJycgKHByb3BlcnR5L2FzcGVjdCBhYnN0cmFjdGlvbiksICcnc2knby4u LmtlaScnIChjb25jZXB0L2lkZWEgYWJzdHJhY3Rpb24pLCAnJ25pLi4ua2VpJycgKHF1YW50aXR5 IGFic3RyYWN0aW9uKSBhbW9uZyBvdGhlcnMuIFRoZSBtZWFuaW5ncyBvZiB0aGVzZSBpcyBhIGNv bXBsaWNhdGVkIG1hdHRlciwgYW5kIHdpbGwgYmUgZGlzY3Vzc2VkIG11Y2ggbGF0ZXIsIGluIGxl c3NvbiB0d2VudHktbmluZS4gRm9yIG5vdywgeW91J2xsIGhhdmUgdG8gZG8gd2l0aG91dCB0aGVt LgoKCgpJdCBpcyBpbXBvcnRhbnQgdG8gbm90aWNlIHRoYXQgc29tZSBhYnN0cmFjdG9ycyBoYXZl IHNldmVyYWwgc3VtdGkgcGxhY2VzLiBBcyBhbiBleGFtcGxlLCAnJ2R1J3UnJyBjYW4gYmUgbWVu dGlvbmVkLiAnJ2R1J3UnJyBpcyBkZWZpbmVkOgoKJydkdSd1JycgPSDigJxhYnN0cmFjdG9yLiB4 MSBpcyB0aGUgcHJlZGljYXRlL2JyaWRpIG9mIHticmlkaX0gZXhwcmVzc2VkIGluIHNlbnRlbmNl IHgy4oCdLgoKVGhlIG90aGVyIHN1bXRpIHBsYWNlcyBiZXNpZGVzIHgxIGlzIHJhcmVseSB1c2Vk LCBidXQgJydsbyBzZSBkdSd1IHticmlkaX0ga2VpIGt1JycgaXMgc29tZXRpbWVzIHVzZWQgYXMg YSBzdW10aSBmb3IgaW5kaXJlY3QgcXVvdGF0aW9uOiDigJxJIHNhaWQgdGhhdCBJIHdhcyBnaXZl biBhIGRvZ+KAnSBjYW4gYmUgd3JpdHRlbiAnJ21pIGN1c2t1IGxvIHNlIGR1J3UgbWkgdGUgZHVu ZGEgbG8gZ2Vya3Uga3Uga2VpIGt1JycsIGlmIHlvdSB3aWxsIHBhcmRvbiB0aGUgd2VpcmQgZXhh bXBsZS4KCl9fJydjdXNrdScnX18geDEgZXhwcmVzc2VzIHgyIHRvIHgzIHRocm91Z2ggbWVkaXVt IHg0CgpfXycnZ2Vya3UnJ19fIHgxIGlzIGEgZG9nIG9mIHJhY2UgeDIKCiEhTG9qYmFuIGxlc3Nv bnMg4oCTIGxlc3NvbiBzZXZlbiAoTk9JKQoKV2hpbGUgd2UncmUgYXQgaXQsIHRoZXJlJ3MgYW5v dGhlciB0eXBlIG9mIHN1Ym9yZGluYXRlIGJyaWRpLiBUaGVzZSBhcmUgY2FsbGVkIHJlbGF0aXZl IGNsYXVzZXMuIFRoZXkgYXJlIHNlbnRlbmNlcyB3aGljaCBhZGQgc29tZSBkZXNjcmlwdGlvbiB0 byBhIHN1bXRpLiBJbmRlZWQsIHRoZSDigJx3aGljaOKAnSBpbiB0aGUgcHJldmlvdXMgc2VudGVu Y2UgbWFya2VkIHRoZSBiZWdpbm5pbmcgb2YgYSByZWxhdGl2ZSBjbGF1c2UgaW4gRW5nbGlzaCBk ZXNjcmliaW5nIHJlbGF0aXZlIGNsYXVzZXMuIEluIExvamJhbiwgdGhleSBjb21lIGluIHR3byBm bGF2b3JzLCBhbmQgaXQgbWlnaHQgYmUgd29ydGggZGlzdGluZ3Vpc2hpbmcgdGhlIHR3byBraW5k cyBiZWZvcmUgbGVhcm5pbmcgaG93IHRvIGV4cHJlc3MgdGhlbS4KClRoZSB0d28ga2luZHMgYXJl IGNhbGxlZCByZXN0cmljdGl2ZSBhbmQgbm9uLXJlc3RyaWN0aXZlIChvciBpbmNpZGVudGlhbCkg cmVsYXRpdmUgY2xhdXNlcy4gQW4gZXhhbXBsZSB3b3VsZCBiZSBnb29kIGhlcmU6CgrigJxNeSBi cm90aGVyLCB3aG8gaXMgdHdvIG1ldGVycyB0YWxsLCBpcyBhIHBvbGl0aWNpYW4u4oCdIFRoaXMg Y2FuIGJlIHVuZGVyc3Rvb2QgaW4gdHdvIHdheXMuIEkgY291bGQgaGF2ZSBzZXZlcmFsIGJyb3Ro ZXJzLCBpbiB3aGljaCBjYXNlIHNheWluZyBoZSBpcyB0d28gbWV0ZXJzIHRhbGwgd2lsbCBsZXQg eW91IGtub3cgd2hpY2ggYnJvdGhlciBJIGFtIHRhbGtpbmcgYWJvdXQuIE9yIEkgbWlnaHQgaGF2 ZSBvbmx5IG9uZSBicm90aGVyLCBpbiB3aGljaCBjYXNlIEkgYW0gc2ltcGx5IGdpdmluZyB5b3Ug YWRkaXRpb25hbCBpbmZvcm1hdGlvbi4KCgoKSW4gRW5nbGlzaCBhcyB3ZWxsIGFzIExvamJhbiB3 ZSBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZXNlIHR3byBraW5kcyDigJMgdGhlIGZpcnN0IGludGVy cHJldGF0aW9uIGlzIHJlc3RyaWN0aXZlIChzaW5jZSBpdCBoZWxwcyByZXN0cmljdCB0aGUgcG9z c2libGUgYnJvdGhlcnMgSSBtaWdodCBiZSB0YWxraW5nIGFib3V0KSwgdGhlIHNlY29uZCBub24t cmVzdHJpY3RpdmUuIFdoZW4gc3BlYWtpbmcgRW5nbGlzaCwgY29udGV4dCBhbmQgdG9uZSBvZiB2 b2ljZSAob3IgaW4gd3JpdHRlbiBFbmdsaXNoLCBwdW5jdHVhdGlvbikgaGVscHMgdXMgZGlzdGlu Z3Vpc2ggYmV0d2VlbiB0aGVzZSB0d28sIGJ1dCBub3Qgc28gaW4gTG9qYmFuLiBMb2piYW4gdXNl cyB0aGUgY29uc3RydWN0cyAnJ3BvaeKApmt1J28nJyBhbmQgJydub2nigKZrdSdvJycgZm9yIHJl c3RyaWN0aXZlIGFuZCBub24tcmVzdHJpY3RpdmUgcmVsYXRpdmUgY2xhdXNlcywgcmVzcGVjdGl2 ZWx5LgoKTGV0J3MgaGF2ZSBhIExvamJhbmljIGV4YW1wbGUsIHdoaWNoIGNhbiBhbHNvIGV4cGxh aW4gb3VyIHN0cmFuZ2UgZ2lmdC1lYXRpbmcgYmVoYXZpb3VyIGluIHRoZSBleGFtcGxlIGluIGxl c3NvbiBmaXZlOgoKX18nJ25vaScnX18gYmVnaW4gbm9uLXJlc3RyaWN0aXZlIHJlbGF0aXZlIGNs YXVzZSAoY2FuIG9ubHkgYXR0YWNoIHRvIHN1bXRpKQoKX18nJ3BvaScnX18gYmVnaW4gcmVzdHJp Y3RpdmUgcmVsYXRpdmUgY2xhdXNlIChjYW4gb25seSBhdHRhY2ggdG8gc3VtdGkpCgpfXycna3Un bycnX18gZW5kIHJlbGF0aXZlIGNsYXVzZQoKCgonJ21pIGNpdGthIGxvIHNlIGR1bmRhIGt1IHBv aSBwbGlzZSBrdSdvJycgPSDigJxJIGVhdCBhIGdpZnQgc3VjaCB0aGF0IChzb21ldGhpbmcgaXMp IGFuIGFwcGxl4oCdLiAKCkhlcmUgdGhlICcncG9p4oCma3UnbycnIGlzIHBsYWNlZCBqdXN0IGFm dGVyICcnbG8gc2UgZHVuZGEga3UnJywgc28gaXQgYXBwbGllcyB0byB0aGUgZ2lmdC4gVG8gYmUg c3RyaWN0LCB0aGUgcmVsYXRpdmUgY2xhdXNlIGRvZXMgbm90IHNwZWNpZnkgd2hhdCBpdCBpcywg d2hpY2ggaXMgYW4gYXBwbGUsIGJ1dCBzaW5jZSB0aGUgcmVsYXRpdmUgY2xhdXNlIGFwcGxpZXMg dG8gdGhlIGdpZnQsIHdlIGNhbiBzYWZlbHkgYXNzdW1lIHRoYXQgaXQgbWVhbnMgdGhhdCB0aGUg Z2lmdCBpcyBhbiBhcHBsZS4gQWZ0ZXIgYWxsLCBpbiB0aGUgY29udGV4dCBvZiBsZXNzb24gZml2 ZSwgdGhpcyBzZWVtcyByZWFzb25hYmxlLiBJZiB3ZSB3YW50IHRvIGJlIGFic29sdXRlbHkgc3Vy ZSB0aGF0IGl0IGluZGVlZCB3YXMgdGhlIGdpZnQgdGhhdCB3YXMgYW4gYXBwbGUsIHdlIHVzZSB0 aGUgd29yZCAnJ2tlJ2EnJywgd2hpY2ggaXMgYSAnJ3N1bWthJ2knJyAoYSBMb2piYW4gcHJvbm91 biwgbW9yZSBvbiB0aGVtIGxhdGVyKSByZXByZXNlbnRpbmcgdGhlIHN1bXRpIHdoaWNoIHRoZSBy ZWxhdGl2ZSBjbGF1c2UgaXMgYXR0YWNoZWQgdG8uCgpfXycna2UnYScnX18gc3Vta2EnaTsgcmVm ZXJzIHRvIHRoZSBzdW10aSwgdG8gd2hpY2ggdGhlIHJlbGF0aXZlIGNsYXVzZSBpdCBhdHRhY2hl ZC4KCgoKJycudWkgbWkgY2l0a2EgbG8gc2UgZHVuZGEga3UgcG9pIGtlJ2EgcGxpc2Uga3Unbycn ID0g4oCcWWF5LCBJIGVhdCBhIGdpZnQgd2hpY2ggaXMgYW4gYXBwbGXigJ0uCgpUbyB1bmRlcmxp bmUgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiByZXN0cmljdGl2ZSBhbmQgbm9uLXJlc3RyaWN0aXZl IHJlbGF0aXZlIGNsYXVzZXMsIGhlcmUncyBhbm90aGVyIGV4YW1wbGU6CgoKCl9fJydsb2pibycn X18g4oCceDEgcmVmbGVjdHMgTG9qYmFuaWMgY3VsdHVyZS9jb21tdW5pdHkgaXMgYXNwZWN0IHgy OyB4MSBpcyBMb2piYW5pYy7igJ0KCgoKJydtaSBub2kgbG9qYm8ga3UnbyBmYW52YSBmbyBsbyBs b2pibyBrdScnID0g4oCcSSwgd2hvIGFtIGEgTG9qYmFuaWMsIHRyYW5zbGF0ZSBmcm9tIHNvbWUg TG9qYmFuaWMgbGFuZ3VhZ2Uu4oCdIEhlcmUsIHRoZXJlIGlzIG5vdCBtdWx0aXBsZSB0aGluZ3Mg d2hpY2ggJydtaScnIGNvdWxkIHJlZmVyIHRvLCBhbmQgdGhlIGZhY3QgdGhhdCBJIGFtIGxvamJh bmljIGlzIG1lcmVseSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIG5vdCBuZWVkZWQgdG8gaWRlbnRp ZnkgbWUuIFRoZXJlZm9yZSAnJ25vaeKApmt1J28nJyBpcyBhcHByb3ByaWF0ZS4KClNlZSBpZiB5 b3UgY2FuIHRyYW5zbGF0ZSB0aGlzOiDigJxJIGZsaXJ0IHdpdGggYSBtYW4gd2hvIGlzIGJlYXV0 aWZ1bC9oYW5kc29tZeKAnS4KCl9fJyduYW5tdScnX18g4oCceDEgaXMgYSBtYW7igJ0KCl9fJydt ZWxiaScnX18g4oCceDEgaXMgYmVhdXRpZnVsIHRvIHgyIGluIGFzcGVjdCAoa2EpIHgzIGJ5IHN0 YW5kYXJkIHg04oCdCgpfXycnY2luamlrY2EnJ19fIOKAnHgxIGZsaXJ0cy9jb3VydHMgeDIsIGV4 aGliaXRpbmcgc2V4dWFsaXR5IHgzIGJ5IHN0YW5kYXJkIHg04oCdCgoKCkFuc3dlcjogfn5ncmV5 LGdyZXk6JydtaSBjaW5qaWtjYSBsbyBuYW5tdSBrdSBwb2kge2tlJ2F9IG1lbGJpIGt1J28nJ35+ CgoKCk9uIGEgbW9yZSB0ZWNobmljYWwgc2lkZSBub3RlLCBpdCBtaWdodCBiZSB1c2VmdWwgdG8g a25vdyB0aGF0ICcnbG8ge3NlbGJyaX0ga3UnJyBpcyBvZnRlbiBzZWVuIGRlZmluZWQgYXMgJyd6 bydlIG5vaSBrZSdhIHtzZWxicml9IGt1J28nJy4KCgoKCgohIUxvamJhbiBMZXNzb25zIOKAkyBM ZXNzb24gZWlnaHQgKHRlcm1pbmF0b3IgZWxpc2lvbikKCicnLmF1IGRhJ2kgbWkgZGppY2EgbG8g bnUgbGUgbWVya28gcG9pIHR1bmJhIG1pIF9fdmF1IGt1J28ga3VfXyBqaW1wZSBsbyBkdSd1IG1p IG5hIG5lbGNpIGxvIG51IHZvJ2EgZGFyeGkgbWkgX192YXUga2VpIGt1IHZhdSBrZWkga3UgdmF1 IGtlaSBrdSB2YXVfXycnCgogLSAg4oCcSSB3aXNoIHRoZSBBbWVyaWNhbiwgd2hvIGlzIG15IHNp YmxpbmcsIHdvdWxkIHVuZGVyc3RhbmQgdGhhdCBJIGRvbid0IGxpa2UgdGhhdCBoZSBoaXRzIG1l LuKAnQoKUmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSBhYm92ZSBzZW50ZW5jZSBpcyBiZWluZyB1 bmRlcnN0b29kLCAoaXQgc2hvdWxkbid0LCBhcyBpdCBjb250YWlucyB3b3JkcyB3ZSBoYXZlIG5v dCBjb3ZlcmVkIGluIHRoZXNlIGxlc3NvbnMgeWV0KSBvbmUgdGhpbmcgc3RhbmRzIG91dDogQXMg bW9yZSBjb21wbGV4IExvamJhbiBzdHJ1Y3R1cmVzIGFyZSBsZWFybmVkLCBtb3JlIGFuZCBtb3Jl IG9mIHRoZSBzZW50ZW5jZXMgZ2V0IGZpbGxlZCB3aXRoICcna3UnJywgJydrZWknJywgJydrdSdv JycgYW5kIG90aGVyIG9mIHRob3NlIHdvcmRzIHdoaWNoIGJ5IHRoZW1zZWx2ZXMgY2Fycnkgbm8g bWVhbmluZy4KCgoKVGhlIGZ1bmN0aW9uIG9mIGFsbCB0aGVzZSB3b3JkcyBpcyB0byBzaWduYWwg dGhlIGVuZCBvZiBhIGNlcnRhaW4gZ3JhbW1hdGljYWwgY29uc3RydWN0LCBsaWtlIGZvciBpbnN0 YW5jZSDigJxjb252ZXJ0IHNlbGJyaSB0byBzdW10aeKAnSBpbiB0aGUgY2FzZSBvZiAnJ2t1Jycu IFRoZSBFbmdsaXNoIHdvcmQgZm9yIHRoaXMga2luZCBvZiB3b3JkIGlzIOKAnHRlcm1pbmF0b3Li gJ0sIHRoZSBMb2piYW4gd29yZCBpcyAnJ2ZhJ29ybWEnbycnLiBUaGV5IGFyZSB3cml0dGVuIGlu IGJvbGQgaW4gdGhlIGV4YW1wbGUgYWJvdmUuCgpOb3RlOiBUaGUgJyd2YXUnJyBpbiB0aGUgYWJv dmUgZXhhbXBsZSBhcmUgdGhlIGZhJ29ybWEnbyBmb3Ig4oCcZW5kIGJyaWRp4oCdLiBUaGVyZSBp cyBhIGdvb2QgcmVhc29uIHlvdSBoYXZlIG5vdCB5ZXQgc2VlbiBpdCwgc3RheSB0dW5lZC4KCl9f Jyd2YXUnJ19fIGZhJ29ybWEnbzogVGVybWluYXRlcyBicmlkaS4KCgoKSW4gbW9zdCBzcG9rZW4g YW5kIHdyaXR0ZW4gTG9qYmFuLCBtb3N0IGZhJ29ybWEnbyBhcmUgc2tpcHBlZCAoZWxpZGVkKS4g VGhpcyBncmVhdGx5IHNhdmVzIHN5bGxhYmxlcyBpbiBzcGVlY2ggYW5kIHNwYWNlIGluIHdyaXRp bmcsIGhvd2V2ZXIsIG9uZSBtdXN0IGFsd2F5cyBiZSBjYXJlZnVsIHdoZW4gZWxpZGluZyBmYSdv cm1hJ28uIEluIHRoZSBzaW1wbGUgZXhhbXBsZSAnJ2xvIG1lcmtvIGt1IGtsYW1hJycsIHJlbW92 aW5nIHRoZSBmYSdvcm1hJ28gJydrdScnIHdvdWxkIHlpZWxkICcnbG8gbWVya28ga2xhbWEnJywg d2hpY2ggaXMgYSBzaW5nbGUgc3VtdGkgbWFkZSBmcm9tIHRoZSB0YW5ydSAnJ21lcmtvIGtsYW1h JycuIFRodXMsIGl0IG1lYW5zIOKAnGFuIEFtZXJpY2FuIHRyYXZlbGVy4oCdIGluc3RlYWQgb2Yg 4oCcYW4gQW1lcmljYW4gdHJhdmVsc+KAnS4gZmEnb3JtYSdvIGVsaXNpb24gY2FuIGxlYWQgdG8g dmVyeSB3cm9uZyByZXN1bHRzIGlmIGRvbmUgaW5jb3JyZWN0bHksIHdoaWNoIGlzIHdoeSB5b3Ug aGF2ZW4ndCBsZWFybmVkIGFib3V0IGl0IHVudGlsIG5vdy4KCgoKVGhlIHJ1bGUgZm9yIHdoZW4g ZmEnb3JtYSdvIGNhbiBiZSBlbGlkZWQgaXMgdmVyeSBzaW1wbGUsIGF0IGxlYXN0IGluIHRoZW9y eTog4oCcWW91IGNhbiBlbGlkZSBhIGZhJ29ybWEnbywgX19pZiBhbmQgb25seSBpZl9fIGRvaW5n IHNvIGRvZXMgbm90IGNoYW5nZSB0aGUgZ3JhbW1hdGljYWwgY29uc3RydWN0cyBpbiB0aGUgc2Vu dGVuY2Uu4oCdCgpNb3N0IGZhJ29ybWEnbyBjYW4gYmUgc2FmZWx5IGVsaWRlZCBhdCB0aGUgZW5k IG9mIHRoZSBicmlkaS4gRXhjZXB0aW9ucyBhcmUgdGhlIG9idmlvdXMgb25lcyBsaWtlIOKAnGVu ZCBxdW90ZeKAnS1mYSdvcm1hJ28gYW5kIOKAnGVuZCBicmlkaSBncm91cGluZ+KAnS1mYSdvcm1h J28uIFRoaXMgaXMgd2h5ICcndmF1JycgaXMgYWxtb3N0IG5ldmVyIHVzZWQg4oCTIHNpbXBseSBi ZWdpbm5pbmcgYSBuZXcgYnJpZGkgd2l0aCAnJy5pJycgd2lsbCBhbG1vc3QgYWx3YXlzIHRlcm1p bmF0ZSB0aGUgcHJlY2VkaW5nIGJyaWRpIGFueXdheS4gSXQgaGFzIG9uZSBmcmVxdWVudCB1c2Us IGhvd2V2ZXIuIFNpbmNlIGF0dGl0dWRpbmFscyBhbHdheXMgYXBwbHkgdG8gdGhlIHByZWNlZGlu ZyB3b3JkLCBhcHBseWluZyBpdCB0byBhIGZhJ29ybWEnbyBhcHBsaWVzIGl0IHRvIHRoZSBlbnRp cmUgY29uc3RydWN0IHdoaWNoIGlzIHRlcm1pbmF0ZWQuIFVzaW5nICcndmF1JycsIG9uZSBjYW4g dGhlbiB1c2UgYXR0aXR1ZGluYWxzIGFmdGVydGhvdWdodCBhbmQgYXBwbHkgdGhlbSB0byB0aGUg ZW50aXJlIGJyaWRpOgoKJyd6YSdhIGRvIGR1bmRhIGxvIHpkYW5pIHtrdX0gbG8gcHJlbnUge2t1 fS4uLiB2YXUgaSdlJycgLSDigJxJIHNlZSB0aGF0IHlvdSBnaXZlIGEgaG9tZSB0byBhIHBlcnNv bi4uLiBJIGFwcHJvdmUh4oCdCgpfXycncHJlbnUnJ19fIHgxIGlzIGEgcGVyc29uOyB4MSBoYXMg YSBwZXJzb25hbGl0eS4KCgoKS25vd2luZyB0aGUgYmFzaWMgcnVsZXMgZm9yIGZhJ29ybWEnbyBl bGlzaW9uLCB3ZSBjYW4gdGh1cyByZXR1cm4gdG8gdGhlIG9yaWdpbmFsIHNlbnRlbmNlIGFuZCBi ZWdpbiByZW1vdmluZyBmYSdvcm1hJ286CgoKCicnLmF1IGRhJ2kgbWkgZGppY2EgbG8gbnUgbGUg bWVya28gcG9pIHR1bmJhIG1pIF9fdmF1IGt1J28ga3VfXyBqaW1wZSBsbyBkdSd1IG1pIG5hIG5l bGNpIGxvIG51IHZvJ2EgZGFyeGkgbWkgX192YXUga2VpIGt1IHZhdSBrZWkga3UgdmF1IGtlaSBr dSB2YXVfXycnCgoKCldlIGNhbiBzZWUgdGhhdCB0aGUgZmlyc3QgJyd2YXUnJyBpcyBncmFtbWF0 aWNhbGx5IHVubmVjZXNzYXJ5LCBiZWNhdXNlIHRoZSBuZXh0IG5vbi1mYSdvcm1hJ28td29yZCBp cyAnJ2ppbXBlJycsIHdoaWNoIGlzIGEgc2VsYnJpLiBTaW5jZSB0aGVyZSBjYW4gb25seSBiZSBv bmUgc2VsYnJpIHBlciBicmlkaSwgJyd2YXUnJyBpcyBub3QgbmVlZGVkLiBTaW5jZSAnJ2ppbXBl JycgYXMgYSBzZWxicmkgY2Fubm90IGJlIGluIHRoZSByZWxhdGl2ZSBjbGF1c2UgZWl0aGVyIChv bmx5IG9uZSBicmlkaSBpbiBhIGNsYXVzZSwgb25seSBvbmUgc2VsYnJpIGluIGVhY2ggYnJpZGkp LCB3ZSBjYW4gZWxpZGUgJydrdSdvJycuIExpa2V3aXNlLCAnJ2ppbXBlJycgY2Fubm90IGJlIGEg c2Vjb25kIHNlbGJyaSBpbnNpZGUgdGhlIGNvbnN0cnVjdCAnJ2xlIG1lcmtvIHBvaXsuLi59Jycs IHNvIHRoZSAnJ2t1JycgaXMgbm90IG5lZWRlZCBlaXRoZXIuIEZ1cnRoZXJtb3JlLCBhbGwgdGhl IGZhJ29ybWEnbyBhdCB0aGUgdmVyeSBlbmQgb2YgdGhlIHNlbnRlbmNlIGNhbiBiZSBlbGlkZWQg dG9vLCBzaW5jZSBiZWdpbm5pbmcgYSBuZXcgYnJpZGkgd2lsbCB0ZXJtaW5hdGUgYWxsIG9mIHRo ZXNlIGNvbnN0cnVjdHMgYW55d2F5LgoKV2UgdGhlbiBlbmQgdXAgd2l0aDoKCicnLmF1IGRhJ2kg bWkgZGppY2EgbG8gbnUgbGUgbWVya28gcG9pIHR1bmJhIG1pIGppbXBlIGxvIGR1J3UgbWkgbmEg bmVsY2kgbG8gbnUgdm8nYSBkYXJ4aSBtaScnIOKAkyB3aXRoIG5vIGZhJ29ybWEnbyBhdCBhbGwh CgoKCldoZW4gZWxpZGluZyBmYSdvcm1hJ28sIGl0IGlzIGEgZ29vZCBpZGVhIHRvIGJlIGFjcXVh aW50ZWQgd2l0aCAnJ2N1JycuICcnY3UnJyBpcyBvbmUgb2YgdGhvc2Ugd29yZHMgd2hpY2ggY2Fu IG1ha2UgeW91ciAoTG9qYmFuaWMpIGxpZmUgYSBsb3QgZWFzaWVyLiBXaGF0IGl0IGRvZXMgaXMg dG8gc2VwYXJhdGUgYW55IHByZXZpb3VzIHN1bXRpIGZyb20gdGhlIHNlbGJyaS4gT25lIGNvdWxk IHNheSB0aGF0IGl0IGRlZmluZXMgdGhlIG5leHQgd29yZCB0byBiZSBhIHNlbGJyaSwgYW5kIHRl cm1pbmF0ZXMgZXhhY3RseSBhcyBtdWNoIGFzIGl0IG5lZWRzIHRvIGluIG9yZGVyIHRvIGRvIHRo YXQuCgpfXycnY3UnJ19fIGVsaWRhYmxlIG1hcmtlcjogc2VwYXJhdGVzIHNlbGJyaSBmcm9tIHBy ZWNlZGluZyBzdW10aSwgYWxsb3dzIHByZWNlZGluZyBmYSdvcm1hJ28gZWxpc2lvbi4KCgoKX18n J3ByYW1pJydfXyA9IOKAnHgxIGxvdmVzIHgy4oCdCgoKCicnbG8gc3UndSBkbyBjdXNrdSBsbyBz ZSBkdSd1IGRvIHByYW1pIG1pIF9fdmF1IGtlaSBrdSB2YXUga2VpIGt1X18gc2UgZGppY2EgbWkn JyA9CgonJ2xvIHN1J3UgZG8gY3Vza3UgbG8gc2UgZHUndSBkbyBwcmFtaSBtaSBfX2N1X18gc2Ug ZGppY2EgbWknJwoK4oCcVGhhdCB5b3Ugc2F5IHRoYXQgeW91IGxvdmUgbWUgaXMgZGVzaXJlZCBi eSBiZeKAnSBvciDigJxJIHdpc2ggeW91IHNhaWQgeW91IGxvdmVkIG1l4oCdCgpub3RlOiAnJ2N1 JycgaXMgbm90IGEgZmEnb3JtYSdvLCBiZWNhdXNlIGl0IGlzIG5vdCB0aWVkIHRvIG9uZSBzcGVj aWZpYyBjb25zdHJ1Y3QuIEJ1dCBpdCBjYW4gYmUgdXNlZCB0byBlbGlkZSBvdGhlciBmYSdvcm1h J28uCgoKCk9uZSBvZiB0aGUgZ3JlYXRlc3Qgc3RyZW5ndGhzIG9mICcnY3UnJyBpcyB0aGF0IGl0 IHF1aWNrbHkgYmVjb21lcyBlYXN5IHRvIGludHVpdGl2ZWx5IHVuZGVyc3RhbmQuIEJ5IGl0c2Vs ZiBpdCBtZWFucyBub3RoaW5nLCBidXQgaXQgcmV2ZWFscyB0aGUgc3RydWN0dXJlIG9mIExvamJh biBleHByZXNzaW9ucyBieSBpZGVudGlmeWluZyB0aGUgY29yZSBzZWxicmkuIEluIHRoZSBvcmln aW5hbCBleGFtcGxlIHdpdGggdGhlIHZpb2xlbnQgQW1lcmljYW4gYnJvdGhlciwgdXNpbmcgJydj dScnIGJlZm9yZSAnJ2ppbXBlJycgZG9lcyBub3QgY2hhbmdlIHRoZSBtZWFuaW5nIG9mIHRoZSBz ZW50ZW5jZSBpbiBhbnkgd2F5LCBidXQgbWlnaHQgbWFrZSBpdCBlYXNpZXIgdG8gcmVhZC4KCgoK SW4gdGhlIGZvbGxvd2luZyBjb3VwbGUgb2YgbGVzc29ucywgJydjdScnIHdpbGwgYmUgdXNlZCB3 aGVuIG5lY2Vzc2FyeSwgYW5kIGFsbCBmYSdvcm1hJ28gZWxpZGVkIGlmIHBvc3NpYmxlLiBUaGUg ZWxpZGVkIGZhJ29ybWEnbyB3aWxsIGJlIGVuY2FzZWQgaW4gY3VybHkgYnJhY2tldHMsIGFzIHNo b3duIGJlbG93LiBUcnkgdG8gdHJhbnNsYXRlIGl0IQoKX18nJ3Zham5pJydfXyDigJx4MSBpcyBp bXBvcnRhbnQgdG8geDIgZm9yIHJlYXNvbiB4M+KAnQoKX18nJ2ppbXBlJydfXyDigJx4MSB1bmRl cnN0YW5kcyB0aGF0IHgyIChkdSd1LWFic3RyYWN0aW9uKSBpcyB0cnVlIGFib3V0IHgz4oCdCgpf XycnYSdvJydfXyAtIEF0dGl0dWRpbmFsOiBTaW1wbGUgcHJvcG9zaXRpb25hbCBlbW90aW9uOiBI b3BlIC0gZGVzcGFpcgoKCgonJ2EnbyBkbyBub2kga2UnYSBsb2pibyAuaSdlIHtrdSdvfSB7a3V9 IGN1IGppbXBlIGxvIGR1J3UgbG8gZmEnb3JtYSdvIHtrdX0gY3UgdmFqbmkge3ZhdX0ge2tlaX0g e2t1fSB7dmF1fScnCgpXaGF0IGRvIEkgc3RhdGU/CgoKCkFuc3dlcjogfn5ncmV5LGdyZXk64oCc SSBob3BlIHRoYXQgeW91LCBhIHByb3VkIExvamJhbmlzdCwgdW5kZXJzdGFuZHMgdGhhdCBmYSdv cm1hJ28gYXJlIGltcG9ydGFudOKAnX5+CgoKCkZ1biBzaWRlIG5vdGU6IE1vc3QgcGVvcGxlIHdl bGwtdmVyc2VkIGluIGZhJ29ybWEnby1lbGlzaW9uIGRvIGl0IHNvIGluc3RpbmN0aXZlbHkgdGhh dCB0aGV5IG9mdGVuIG11c3QgYmUgcmVtaW5kZWQgaG93IGltcG9ydGFudCB1bmRlcnN0YW5kaW5n IGZhJ29ybWEnbyBhcmUgdG8gdGhlIHVuZGVyc3RhbmRpbmcgb2YgTG9qYmFuLiBUaGVyZWZvcmUs IGVhY2ggVHVlc2RheSBoYXZlIGJlZW4gZGVzaWduYXRlZCDigJxUZXJtaW5hdG9yIERheeKAnSBv ciAnJ2ZhJ29ybWEnbyBkamVkaScnIG9uIHRoZSBMb2piYW4gSVJDIGNoYXRyb29tLiBEdXJpbmcg VGVybWluYXRvciBEYXksIG1hbnkgcGVvcGxlIHRyeSAoYW5kIG9mdGVuIGZhaWwpIHRvIHJlbWVt YmVyIHdyaXRpbmcgb3V0IGFsbCBmYSdvcm1hJ28gd2l0aCBzb21lIHZlcnkgdmVyYm9zZSBjb252 ZXJzYXRpb25zIGFzIGEgcmVzdWx0LgoKCgoKCiEhTG9qYmFuIExlc3NvbnMgLSBMZXNzb24gbmlu ZSAoc3VtdGNpdGEpCgpTbyBmYXIgd2UgaGF2ZSBiZWVuIGRvaW5nIHByZXR0eSB3ZWxsIHdpdGgg dGhlIHNlbGJyaSB3ZSBoYXZlIGhhZCBhdCBoYW5kLiBIb3dldmVyLCB0aGVyZSBpcyBhIGZpbml0 ZSBhbW91bnQgb2YgZGVmaW5lZCBzZWxicmkgb3V0IHRoZXJlLCBhbmQgaW4gbWFueSBjYXNlcyB0 aGUgc3VtdGkgcGxhY2VzIGFyZSBub3QgdXNlZnVsIGZvciB3aGF0IHdlIGhhZCBpbiBtaW5kLiBX aGF0IGlmLCBzYXksIGkgd2FudCB0byBzYXkgdGhhdCBJIGFtIHRyYW5zbGF0aW5nIHVzaW5nIGEg Y29tcHV0ZXI/IFRoZXJlIGlzIG5vIHBsYWNlIGluIHRoZSBzdHJ1Y3R1cmUgb2YgJydmYW52YScn IHRvIHNwZWNpZnkgd2hhdCB0b29sIEkgdHJhbnNsYXRlIHdpdGgsIHNpbmNlLCBtb3N0IG9mIHRo ZSB0aW1lLCB0aGF0IGlzIG5vdCBuZWNlc3NhcnkuIE5vdCB0byB3b3JyeSwgdGhpcyBsZXNzb24g aXMgb24gaG93IHRvIGFkZCBhZGRpdGlvbmFsIHN1bXRpIHBsYWNlcyB0byB0aGUgc2VsYnJpLgoK CgpUaGUgbW9zdCBiYXNpYyB3YXkgdG8gYWRkIHN1bXRpIHBsYWNlcyBhcmUgd2l0aCAnJ2ZpJ28g U0VMQlJJIGZlJ3UnJyAoeWVzLCBhbm90aGVyIGV4YW1wbGUgb2YgYSBmYSdvcm1hJ28sICcnZmUn dScnLiBJdCdzIGFsbW9zdCBuZXZlciBuZWNlc3NhcnksIHNvIHRoaXMgbWlnaHQgYmUgdGhlIGxh c3QgdGltZSB5b3UgZXZlciBzZWUgaXQuKQoKSW4gYmV0d2VlbiB0aGVzZSB0d28gd29yZHMgZ29l cyBhIHNlbGJyaSwgYW5kIGxpa2UgJydsbyBTRUxCUkkga3UnJywgJydmaSdvIFNFTEJSSSBmZSd1 JycgZXh0cmFjdHMgdGhlIHgxIG9mIHRoZSBzZWxicmkgcHV0IGludG8gaXQuIEhvd2V2ZXIsIHdp dGggJydmaSdvIFNFTEJSSSBmZSd1JycsIHRoZSBzZWxicmkgcGxhY2UgaXMgY29udmVydGVkLCBu b3QgdG8gYSBzdW10aSwgYnV0IHRvIGEgJydzdW10Y2l0YScnLCBtZWFuaW5nIOKAnHN1bXRpLWxh YmVs4oCdLCB3aXRoIHRoZSBwbGFjZSBzdHJ1Y3R1cmUgb2YgdGhlIHgxIG9mIHRoZSBzZWxicmkg aXQgY29udmVydGVkLiBUaGlzICcnc3VtdGNpdGEnJyB0aGVuIGFic29yYnMgdGhlIG5leHQgc3Vt dGkuIE9uZSBjb3VsZCBzYXkgdGhhdCB1c2luZyBhICcnc3VtdGNpdGEnJywgeW91IGltcG9ydCBh IHN1bXRpIHBsYWNlIGZyb20gYW5vdGhlciBzZWxicmksIGFuZCBhZGQgaXQgdG8gdGhlIGJyaWRp IGJlaW5nIHNhaWQuCgpOb3RlOiBTb21ldGltZXMsIGVzcGVjaWFsbHkgaW4gb2xkZXIgdGV4dHMs IHRoZSB0ZXJtIOKAnHRhZ+KAnSBvciDigJxtb2RhbOKAnSBpcyB1c2VkIGZvciAnJ3N1bXRjaXRh JycuIElnbm9yZSB0aG9zZSBwdW55IEVuZ2xpc2ggZXhwcmVzc2lvbnMuIFdlIHRlYWNoIHByb3Bl ciBMb2piYW4gaGVyZS4KCgoKV2hpbGUgaXQgaXMgaGFyZCB0byBncmFzcCB0aGUgcHJvY2VzcyBm cm9tIHJlYWRpbmcgYWJvdXQgaXQsIGFuIGV4YW1wbGUgY2FuIHBlcmhhcHMgc2hvdyBpdHMgYWN0 dWFsIHNpbXBsaWNpdHk6CgpfXycnc2thbWknJ19fIOKAnHgxIGlzIGEgY29tcHV0ZXIgZm9yIHB1 cnBvc2UgeDLigJ0KCl9fJydwaWxubycnX18g4oCceDEgdXNlcyB4MiBhcyBhIHRvb2wgZm9yIGRv aW5nIHgz4oCdCgoKCicnbWkgZmFudmEgdGkgZmknbyBzZSBwaWxubyB7ZmUndX0gbG8gc2thbWkg e2t1fXt2YXV9JycgLSDigJxJIHRyYW5zbGF0ZSB0aGlzIHdpdGggYSBjb21wdXRlcuKAnSBUaGUg eDIgb2YgJydwaWxubycnLCB3aGljaCBpcyB0aGUgeDEgb2YgJydzZSBwaWxubycnIGlzIGEgcGxh Y2Ugc3RydWN0dXJlIGZvciBhIHRvb2wgYmVpbmcgdXNlZCBieSBzb21lb25lLiBUaGlzIHBsYWNl IHN0cnVjdHVyZSBpcyBjYXB0dXJlZCBieSAnJ2ZpJ28gU0VMQlJJIGZlJ3UnJywgYWRkZWQgdG8g dGhlIG1haW4gc2VsYnJpLCBhbmQgdGhlbiBmaWxsZWQgYnkgJydsbyBza2FtaScnLiBUaGUgaWRl YSBvZiAnJ3N1bXRjaXRhJycgaXMgc29tZXRpbWVzIGV4cHJlc3NlZCBpbiBFbmdsaXNoIHVzaW5n IHRoZSBmb2xsb3dpbmcgdHJhbnNsYXRpb246CgrigJxJIHRyYW5zbGF0ZSB0aGlzIHdpdGgtdG9v bDogQSBjb21wdXRlcuKAnQoKCgpBICcnc3VtdGNpdGEnJyBjYW4gb25seSBhYnNvcmIgb25lIHN1 bXRpLCB3aGljaCBpcyBhbHdheXMgdGhlIGZvbGxvd2luZyBvbmUuIEFsdGVybmF0aXZlbHksIHRo ZSAnJ3N1bXRjaXRhJycgY29uc3RydWN0IGNhbiBiZSB0ZXJtaW5hdGVkIHdpdGggJydrdScnLCBp biB3aGljaCBjYXNlIGEgJyd6bydlJycgaXMgaW1wbGllZCB0byBmaWxsIHRoZSAnJ3N1bXRjaXRh JycuIE9yLCBvbmUgY291bGQgaW1hZ2luZSBhbiBlbGlkZWQgc3VtdGkgYmVpbmcgdGVybWluYXRl ZCB3aXRoIHRoZSAnJ2t1JycuCgpfXycnenVrdGUnJ19fIOKAnHgxIGlzIGEgdm9saXRpb25hbCBl bnRpdHkgY2Fycnlpbmcgb3V0IGFjdGlvbiB4MiBmb3IgcHVycG9zZSB4M+KAnQoKCgonJ2ZpJ28g enVrdGUge2ZlJ3V9IGt1IGxvIHNrYW1pIHtrdX0gY3UgcGlsbm8gbG8gbG9qYm8ge2t1fXt2YXV9 JycgLSDigJxXaXRoIHZvbGl0aW9uLCBhIGNvbXB1dGVyIHVzZWQgc29tZXRoaW5nIExvamJhbmlj 4oCdIChwZXJoYXBzIGltcGx5aW5nIHRoYXQgYSBMb2piYW5pYyBjb21wdXRlciB3ZW50IHNlbnRp ZW50PyBUb3VnaCBpdCBkb2VzIG5vdCBzcGVjaWZ5IHdobyBoYWQgdm9saXRpb24uIEl0IGNvdWxk IGp1c3QgYmUgdGhlIHByb2dyYW1tZXIgd2hvIHByb2dyYW1tZWQgdGhlIGNvbXB1dGVyIC0gaG93 IGJvcmluZy4pCgoKCldoYXQgZG9lcyAnJ21pIGppbXBlIGZpIGxhIGxvamJhbiB7a3V9IGZpJ28g c2UgdGF2bGEge2ZlJ3V9IG1pJycgc3RhdGU/CgoKCkFuc3dlcjogfn5ncmV5LGdyZXk64oCcSSB1 bmRlcnN0YW5kIHNvbWV0aGluZyBhYm91dCBMb2piYW4sIHNwb2tlbiB0byBtZeKAnX5+CgoKClB1 dHRpbmcgdGhlICcnc3VtdGNpdGEnJyByaWdodCBpbiBmcm9udCBvZiB0aGUgc2VsYnJpIGFsc28g bWFrZXMgaXQgc2VsZi10ZXJtaW5hdGUsIHNpbmNlIHN1bXRjaXRhIG9ubHkgY2FuIGFic29yYiBz dW10aSwgYW5kIG5vdCBzZWxicmkuIFRoaXMgZmFjdCB3aWxsIGJlIG9mIGltcG9ydGFuY2UgaW4g bmV4dCBsZXNzb24sIGFzIHlvdSB3aWxsIHNlZS4KCgoKU2FkbHksICcnZmknbycnIGlzIG5vdCB1 c2VkIHZlcnkgb2Z0ZW4gZGVzcGl0ZSBpdHMgZmxleGliaWxpdHkuIFdoYXQgSVMgdXNlZCB2ZXJ5 IG9mdGVuLCB0aG91Z2gsIGFyZSBCQUkuIEJBSSBpcyBhIGNsYXNzIG9mIExvamJhbiB3b3Jkcywg d2hpY2ggaW4gdGhlbXNlbHZlcyBhY3QgYXMgJydzdW10Y2l0YScnLiBBbiBleGFtcGxlIG9mIHRo aXMgaXMgJyd6dSdlJycsIHRoZSBCQUkgZm9yICcnenVrdGUnJy4gR3JhbWF0aWNhbGx5LCAnJ3p1 J2UnJyBpcyB0aGUgc2FtZSBhcyAnJ2ZpJ28genVrdGUgZmUndScnLiBUaHVzLCB0aGUgYWJvdmUg ZXhhbXBsZSBjb3VsZCBiZSByZWR1Y2VkIHRvOgoKJyd6dSdlIGt1IGxvIHNrYW1pIHtrdX0gY3Ug cGlsbm8gbG8gbG9qYm8ge2t1fSB7dmF1fScnLiBUaGVyZSBleGlzdCBzb21ldGhpbmcgbGlrZSA2 MCBCQUksIGFuZCBhIGxvdCBvZiB0aGVzZSBhcmUgdmVyeSB1c2VmdWwgaW5kZWVkLiBGdXJ0ZXJt b3JlLCBCQUkgY2FuIGFsc28gYmUgY29udmVydGVkIHdpdGggJydzZScnIGFuZCBmcmllbmRzLCBt ZWFuaW5nIHRoYXQgJydzZSB6dSdlJycgaXMgZXF1YWwgdG8gJydmaSdvIHNlIHp1a3RlIGZlJ3Un Jywgd2hpY2ggcmVzdWx0cyBpbiBhIGdyZWF0IGRlYWwgbW9yZSBCQUkuCgoKCiEhTG9qYmFuIExl c3NvbnMgLSBMZXNzb24gdGVuIChQVSwgRkFoQSwgWkksIFZBLCBaRWhBLCBWRWhBKQoKSG93IHVu ZmFtaWxpYXIgdG8gdGhlIEVuZ2xpc2gtc3BlYWtlciBhIGxhbmd1YWdlIExvamJhbiBpcyB3aGVu IG9uZSBjYW4gcmVhZCB0aHJvdWdoIG5pbmUgbGVzc29ucyBvZiBMb2piYW4gZ3JhbW1hciB3aXRo b3V0IG1lZXRpbmcgYSB0ZW5zZSBvbmNlLiBUaGlzIGlzIGJlY2F1c2UsIHVubGlrZSBtYW55IG5h dHVyYWwgbGFuZ3VhZ2VzIChtb3N0IEluZG8tRXVyb3BlYW4gb25lcywgZm9yIGluc3RhbmNlKSwg YWxsIHRlbnNlcyBpbiBMb2piYW4gYXJlIG9wdGlvbmFsLiBTYXlpbmcgJydtaSBjaXRrYSBsbyBj aXJsYSB7a3V9JycgY2FuIG1lYW4g4oCcSSBlYXQgY2hlZXNl4oCdIG9yIOKAnEkgYXRlIHRoZSBj aGVlc2XigJ0gb3Ig4oCcSSBhbHdheXMgZWF0IGNoZWVzZeKAnSBvciDigJxJbiBhIG1vbWVudCwg aSB3aWxsIGhhdmUganVzdCBmaW5pc2hlZCBlYXRpbmcgY2hlZXNl4oCdLiBDb250ZXh0IHJlc29s dmVzIHdoYXQgaXMgY29ycmVjdCwgYW5kIGluIG1vc3QgY29udmVyc2F0aW9uLCB0ZW5zZXMgYXJl IG5vdCBuZWVkZWQgYXQgYWxsLiBIb3dldmVyLCB3aGVuIGl0J3MgbmVlZGVkIGl0J3MgbmVlZGVk LCBhbmQgaXQgbXVzdCBiZSB0YXVnaHQuIEZ1cnRoZXJtb3JlLCBMb2piYW4gdGVuc2VzIGFyZSB1 bnVzdWFsIGJlY2F1c2UgdGhleSB0cmVhdCB0aW1lIGFuZCBzcGFjZSBmdW5kYW1lbnRhbGx5IHRo ZSBzYW1lIC0gc2F5aW5nIHRoYXQgSSB3b3JrZWQgYSBsb25nIHRpbWUgYWdvIGlzIG5vdCBncmFt bWF0aWNhbGx5IGRpZmZlcmVudCB0aGFuIHNheWluZyBJIHdvcmsgZmFyIGF3YXkgdG8gdGhlIG5v cnRoLgoKTGlrZSBtYW55IG90aGVyIGxhbmd1YWdlcywgdGhlIExvamJhbiB0ZW5zZSBzeXN0ZW0g aXMgcGVyaGFwcyB0aGUgbW9zdCBkaWZmaWN1bHQgcGFydCBvZiB0aGUgbGFuZ3VhZ2UuIFVubGlr ZSBtYW55IG90aGVyIGxhbmd1YWdlcyB0aG91Z2gsIGl0J3MgcGVyZmVjdGx5IHJlZ3VsYXIgYW5k IG1ha2VzIHNlbnNlLiBTbyBmZWFyIG5vdCwgZm9yIGl0IHdpbGwgbm90IGludm9sdmUgc3dlYXRp bmcgdG8gbGVhcm4gaG93IHRvIG1vZGlmeSB0aGUgc2VsYnJpIG9yIGFueXRoaW5nIHNpbGx5IGxp a2UgdGhhdC4KCgoKTm8sIGluIHRoZSBMb2piYW4gdGVuc2Ugc3lzdGVtLCBhbGwgdGVuc2VzIGFy ZSBzdW10Y2l0YSwgd2hpY2ggd2UgaGF2ZSBjb252ZW5pZW50bHkganVzdCBtYWRlIG91cnNlbHZl cyBmYW1pbGlhciB3aXRoLiBPa2F5IG9rYXksIHRlY2huaWNhbGx5LCB0ZW5zZXMgYXJlIHNsaWdo dGx5IGRpZmZlcmVudCBmcm9tIG90aGVyIHN1bXRjaXRhLCBidXQgdGhpcyBkaWZmZXJlbmNlIGlz IGFsbW9zdCBpbnNpZ25pZmljYW50LCBhbmQgd2lsbCBiZSB3b24ndCBiZSBleHBsYWluZWQgdW50 aWwgbGF0ZXIuIEluIG1vc3QgYXNwZWN0cyB0aGV5IGFyZSBsaWtlIGFsbCBvdGhlciBzdW10Y2l0 YTsgdGhleSBhcmUgdGVybWluYXRlZCBieSAnJ2t1JycsIG1ha2luZyBpdCBleHBsaWNpdCB0aGF0 IFBVIGlzIHRlcm1pbmF0ZWQgYnkgJydrdScnLgoKVGhlcmUgYXJlIG1hbnkgZGlmZmVyZW50IGtp bmRzIG9mIHRlbnNlLXN1bXRjaXRhLCBzbyBsZXQncyBzdGFydCBhdCB0aGUgb25lcyBtb3N0IGZh bWlsaWFyIHRvIEVuZ2xpc2gtc3BlYWtlcnMuCgpfXycncHUnJ19fIC0gc3VtdGNpdGE6IGJlZm9y ZSB7c3VtdGl9CgpfXycnY2EnJ19fIC0gc3VtdGNpdGE6IGF0IHRoZSBzYW1lIHRpbWUgYXMge3N1 bXRpfQoKX18nJ2JhJydfXyAtIHN1bXRjaXRhOiBhZnRlciB7c3VtdGl9CgoKClRoZXNlIGFyZSBs aWtlIHRoZSBFbmdsaXNoIGNvbmNlcHRzIOKAnGJlZm9yZeKAnSwg4oCcbm934oCdIGFuZCDigJxh ZnRlcuKAnS4gSW4gYWN0dWFsaXR5IHRob3VnaCwgb25lIGNvdWxkIGFyZ3VlIHRoYXQgdHdvIHBv aW50LWxpa2UgZXZlbnRzIGNhbiBuZXZlciBvY2N1ciBleGFjdGx5IHNpbXVsdGFuZW91c2x5LCBy ZW5kZXJpbmcgJydjYScnIHVzZWxlc3MuIEJ1dCAnJ2NhJycgZXh0ZW5kcyBzbGlnaHRseSBpbnRv IHRoZSBwYXN0IGFuZCB0aGUgZnV0dXJlLCBtZWFuaW5nIGp1c3Qg4oCcYWJvdXQgbm934oCdLiBU aGlzIGlzIGJlY2F1c2UgaHVtYW4gYmVpbmdzIGRvbid0IHBlcmNlaXZlIHRpbWUgaW4gYSBwZXJm ZWN0bHkgbG9naWNhbCB3YXksIGFuZCB0aGUgTG9qYmFuIHRlbnNlIHN5c3RlbSByZWZsZWN0cyB0 aGF0LgoKCgpTaWRlIG5vdGU6IEl0IHdhcyBhY3R1YWxseSBzdWdnZXN0ZWQgbWFraW5nIHRoZSBM b2piYW4gdGVuc2Ugc3lzdGVtIHJlbGF0aXZpc3RpYy4gVGhhdCBpZGVhLCBob3dldmVyLCB3YXMg ZHJvcHBlZCwgYmVjYXVzZSBpdCBpcyBjb3VudGVyLWludHVpdGl2ZSwgYW5kIHdvdWxkIG1lYW4g dGhhdCB0byBsZWFybiBMb2piYW4sIG9uZSB3b3VsZCBoYXZlIHRvIGxlYXJuIHRoZSB0aGVvcnkg b2YgcmVsYXRpdml0eSBmaXJzdC4gIAoKCgpTbywgaG93IHdvdWxkIHlvdSBzYXkg4oCcSSBleHBy ZXNzIHRoaXMgYWZ0ZXIgSSBjYW1lIGhlcmU/4oCdIChwb2ludGluZyB0byBhIHBhcGVyKQoKCgpB bnN3ZXI6IH5+Z3JleSxncmV5OicnbWkgY3Vza3UgdGkgYmEgbG8gbnUgbWkga2xhbWEgdGkge3Zh dX0ge2tlaSB7a3V9IHt2YXV9Jyd+fgoKCgpVc3VhbGx5IHdoZW4gc3BlYWtpbmcsIHdlIGRvIG5v dCBuZWVkIHRvIHNwZWNpZnkgd2hpY2ggZXZlbnQgdGhpcyBhY3Rpb24gaXMgaW4gdGhlIHBhc3Qg cmVsYXRpdmUgdG8uIEluOiDigJxJIGdhdmUgYSBjb21wdXRlciBhd2F54oCdLCB3ZSBjYW4gYXNz dW1lIHRoYXQgdGhlIGFjdGlvbiBoYXBwZW5lZCByZWxhdGl2ZSB0byDigJxub3figJ0sIGFuZCB0 aHVzIHdlIGNhbiBlbGlkZSB0aGUgc3VtdGkgb2YgdGhlIHN1bXRjaXRhLCBiZWNhdXNlIGl0J3Mg b2J2aW91czoKCicncHUga3UgbWkgZHVuZGEgbG8gc2thbWkge2t1fSB7dmF1fScnIG9yCgonJ21p IGR1bmRhIGxvIHNrYW1pIHtrdX0gcHUge2t1fSB7dmF1fScnIG9yLCBtb3JlIGNvbW1vbmx5Cgon J21pIHB1IHtrdX0gZHVuZGEgbG8gc2thbWkge2t1fSB7dmF1fScnLiBUaGUgc3VtdGkgd2hpY2gg ZmlsbHMgdGhlIHN1bXRjaXRhIGlzIGFuIGltcGxpZWQgJyd6bydlJycsIHdoaWNoIGlzIGFsbW9z dCBhbHdheXMgdW5kZXJzdG9vZCBhcyByZWxhdGl2ZSB0byB0aGUgc3BlYWtlcidzIHRpbWUgYW5k IHBsYWNlICh0aGlzIGlzIGVzcGVjaWFsbHkgaW1wb3J0YW50IHdoZW4gc3BlYWtpbmcgYWJvdXQg bGVmdCBhbmQgcmlnaHQpLiBJZiBzcGVha2luZyBhYm91dCBzb21lIGV2ZW50cyB0aGF0IGhhcHBl bmVkIHNvbWUgb3RoZXIgdGltZSB0aGFuIHRoZSBwcmVzZW50LCBpdCBpcyBzb21ldGltZXMgYXNz dW1lZCB0aGF0IGFsbCB0ZW5zZXMgYXJlIHJlbGF0aXZlIHRvIHRoYXQgZXZlbnQgd2hpY2ggaXMg YmVpbmcgc3Bva2VuIGFib3V0LiBJbiBvcmRlciB0byBjbGFyaWZ5IHRoYXQgYWxsIHRlbnNlcyBh cmUgcmVsYXRpdmUgdG8gdGhlIHNwZWFrZXIncyBjdXJyZW50IHBvc2l0aW9uLCB0aGUgd29yZCAn J25hdScnIGNhbiBiZSB1c2VkIGF0IGFueSB0aW1lLiBBbm90aGVyIHdvcmQsICcna2knJyBtYXJr cyBhIHRlbnNlIHdoaWNoIGlzIHRoZW4gY29uc2lkZXJlZCB0aGUgbmV3IHN0YW5kYXJkLiBUaGF0 IHdpbGwgYmUgdGF1Z2h0IHdheSBsYXRlci4KCl9fJyduYXUnJ19fIHVwZGF0ZXMgdGVtcG9yYWwg YW5kIHNwYWNpYWwgZnJhbWUgb2YgcmVmZXJlbmNlIHRvIHRoZSBzcGVha2VyJ3MgY3VycmVudCBo ZXJlIGFuZCBub3cuCgoKCl9fJydndWdkZScnX18gPSDigJx4MSBpcyB0aGUgY291bnRyeSBvZiBw ZW9wbGUgeDIgd2l0aCBsYW5kL3RlcnJpdG9yeSB4M+KAnQoKCgpBbHNvIG5vdGUgdGhhdCAnJ21p IHB1IHtrdX0ga2xhbWEgbG8gbWVya28gZ3VnZGUge2t1fSB7dmF1fScnLCDigJxJIHdlbnQgdG8g QW1lcmljYeKAnSwgZG9lcyBub3QgaW1wbHkgdGhhdCBJJ20gbm90IHN0aWxsIHRyYXZlbGluZyB0 byBVU0EsIG9ubHkgdGhhdCBpdCB3YXMgYWxzbyB0cnVlIHNvbWUgdGltZSBpbiB0aGUgcGFzdCwg Zm9yIGluc3RhbmNlIGZpdmUgbWludXRlcyBhZ28uCgoKCkFzIG1lbnRpb25lZCwgc3BhY2lhbCBh bmQgdGVtcG9yYWwgdGltZSB0ZW5zZXMgYXJlIHZlcnkgbXVjaCBhbGlrZS4gQ29udHJhc3QgdGhl IHByZXZpb3VzIHRocmVlIHRpbWUgdGVuc2VzIHdpdGggdGhlc2UgZm91ciBzcGFjaWFsIHRlbnNl czoKCl9fJyd6dSdhJydfXyBzdW10Y2l0YTogbGVmdCBvZiB7c3VtdGl9CgpfXycnY2EndScnX18g c3VtdGNpdGE6IGluIGZyb250IG9mIHtzdW10aX0KCl9fJydyaSd1JydfXyBzdW10Y2l0YTogcmln aHQgb2Yge3N1bXRpfQoKX18nJ2J1J3UnJ19fIHN1bXRjaXRhOiBhdCB0aGUgc2FtZSBwbGFjZSBh cyB7c3VtdGl9IChzcGFjaWFsIGVxdWl2YWxlbnQgb2YgJydjYScnKQoKCgpfXycnbydvJydfXzog YXR0aXR1ZGluYWw6IGNvbXBsZXggcHVyZSBlbW90aW9uOiBwYXRpZW5jZSAtIHRvbGVyYW5jZSAt IGFuZ2VyCgoKCldoYXQgd291bGQgJycubydvbmFpIHJpJ3Uge2t1fSBudSBsbyBwcmVudSB7a3V9 IGN1IGRhcnhpIGxvIGdlcmt1IHB1IHtrdX0ge2t1fSB7dmF1fSB7a2VpfSB7dmF1fScnIG1lYW4/ IChub3RpY2UgdGhlIGZpcnN0IGVsaWRlZCBrdSEpCgpfXycnZGFyeGknJ19fIHgxIGJlYXRzL2hp dHMgeDIgd2l0aCBpbnN0cnVtZW50IHgzIGF0IGxvY3VzIHg0CgoKCkFuc3dlcjogfn5ncmV5LGdy ZXk64oCce2FuZ2VyIX0gVG8gdGhlIHJpZ2h0IChvZiBzb21ldGhpbmcsIHByb2JhYmx5IG1lKSBh bmQgaW4gdGhlIHBhc3QgKG9mIHNvbWUgZXZlbnQpLCBzb21ldGhpbmcgaXMgYW4gZXZlbnQgb2Yg YSBwZXJzb24gYmVhdGluZyBhIGRvZy7igJ0gb3Ig4oCcQSBtYW4gaGl0IGEgZG9nIHRvIG15IHJp Z2h0IeKAnX5+CgoKCklmIHRoZXJlIGFyZSBzZXZlcmFsIHRlbnNlIHN1bXRjaXRhIGluIG9uZSBi cmlkaSwgdGhlIHJ1bGUgaXMgdGhhdCB5b3UgcmVhZCB0aGVtIGZyb20gbGVmdCB0byByaWdodCwg dGhpbmtpbmcgaXQgYXMgYSBzbyBjYWxsZWQg4oCcaW1hZ2luYXJ5IGpvdXJuZXnigJ0sIFdoZXJl IHlvdSBiZWdpbiBhdCBhbiBpbXBsaWVkIHBvaW50IGluIHRpbWUgYW5kIHNwYWNlIChkZWZhdWx0 OiB0aGUgc3BlYWtlcidzIG5vdyBhbmQgaGVyZSksIGFuZCB0aGVuIGZvbGxvdyB0aGUgc3VtdGNp dGEgb25lIGF0IGEgdGltZSBmcm9tIGxlZnQgdG8gcmlnaHQuCgpFeGFtcGxlCgonJ21pIHB1IHtr dX0gYmEge2t1fSBqaW1wZSBmaSBsbyBsb2pibyBmYSdvcm1hJ28ge2t1fSB7dmF1fScnID0g4oCc QXQgc29tZSB0aW1lIGluIHRoZSBwYXN0LCBJIHdpbGwgYmUgYWJvdXQgdG8ga25vdyBhYm91dCBm YSdvcm1hJ29zLuKAnQoKJydtaSBiYSB7a3V9IHB1IHtrdX0gamltcGUgZmkgbG8gbG9qYm8gZmEn b3JtYSdvIHtrdX0ge3ZhdX0nJyDigJxBdCBzb21lIHBvaW50IGluIHRoZSBmdXR1cmUsIEkgd2ls bCBoYXZlIHVuZGVyc3Rvb2QgYWJvdXQgZmEnb3JtYSdvcy7igJ0KClNpbmNlIHdlIGRvIG5vdCBz cGVjaWZ5IHRoZSBhbW91bnQgb2YgdGltZSB3ZSBtb3ZlIGJhY2sgb3IgZm9ydGgsIHRoZSB1bmRl cnN0YW5kaW5nIGNvdWxkIGluIGJvdGggY2FzZXMgaGFwcGVuIGluIHRoZSBmdXR1cmUgb3IgdGhl IHBhc3Qgb2YgdGhlIHBvaW50IG9mIHJlZmVyZW5jZS4KCgoKQWxzbywgaWYgc3BhY2lhbCBhbmQg dGVtcG9yYWwgdGVuc2VzIGFyZSBtaXhlZCwgdGhlIHJ1bGUgaXMgdG8gYWx3YXlzIHB1dCB0ZW1w b3JhbCBiZWZvcmUgc3BhY2lhbC4gSWYgdGhpcyBydWxlIGlzIHZpb2xhdGVkLCBpdCBjYW4gc29t ZXRpbWVzIHJlc3VsdCBpbiBzeW50YWN0aWNhbCBhbWJpZ3VpdHksIHdoaWNoIExvamJhbiBkb2Vz IG5vdCB0b2xlcmF0ZS4KCgoKU3VwcG9zZSB3ZSB3YW50IHRvIHNwZWNpZnkgdGhhdCB0aGUgYSBt YW4gaGl0IGEgZG9nIGp1c3QgYSBtaW51dGUgYWdvLiBUaGUgd29yZHMgJyd6aScnLCAnJ3phJycg YW5kICcnenUnJyBzcGVjaWZpZXMgYSBzaG9ydCwgdW5zcGVjaWZpZWQgKHByZXN1bWFibHkgbWVk aXVtKSBhbmQgbG9uZyBkaXN0YW5jZSBpbiB0aW1lLiBOb3RpY2UgdGhlIHZvd2VsIG9yZGVyICcn aScnLCAnJ2EnJyBhbmQgJyd1JycuIFRoaXMgb3JkZXIgYXBwZWFycyBhZ2FpbiBhbmQgYWdhaW4g aW4gTG9qYmFuLCBhbmQgbWlnaHQgYmUgd29ydGggdG8gbWVtb3JpemUuIOKAnFNob3J04oCdIGFu ZCDigJxsb25n4oCdIGluIGFyZSBhbHdheXMgY29udGV4dCBkZXBlbmRlbnQsIHJlbGF0aXZlIGFu ZCBzdWJqZWN0aXZlLiBUd28gaHVuZHJlZCB5ZWFycyBpcyBhIHNob3J0IHRpbWUgZm9yIGEgc3Bl Y2llcyB0byBldm9sdmUsIGJ1dCBhIGxvbmcgdGltZSB0byB3YWl0IGZvciB0aGUgYnVzLgoKX18n J3ppJydfXyBzdW10Y2l0YTogT2N1cnJpbmcgdGhlIHNtYWxsIGRpc3RhbmNlIG9mIHtzdW10aX0g aW4gdGltZSBmcm9tIHBvaW50IG9mIHJlZmVyZW5jZSAKCl9fJyd6YScnX18gc3VtdGNpdGE6IE9j dXJyaW5nIHRoZSB1bnNwZWNpZmllZChtZWRpdW0pIGRpc3RhbmNlIG9mIHtzdW10aX0gaW4gdGlt ZSBmcm9tIHBvaW50IG9mIHJlZmVyZW5jZSAKCl9fJyd6dScnX18gc3VtdGNpdGE6IE9jdXJyaW5n IHRoZSBmYXIgZGlzdGFuY2Ugb2Yge3N1bXRpfSBpbiB0aW1lIGZyb20gdGhlIHBvaW50IG9mIHJl ZmVyZW5jZSAKCgoKU2ltaWxhcmx5LCBzcGFjaWFsIGRpc3RhbmNlIGlzIG1hcmtlZCBieSAnJ3Zp JycsICcndmEnJyBhbmQgJyd2dScnIGZvciBzaG9ydCwgdW5zcGVjaWZpZWQgKG1lZGl1bSkgYW5k IGxvbmcgZGlzdGFuY2UgaW4gc3BhY2UuCgpfXycndmknJ19fIHN1bXRjaXRhOiBPY3VycmluZyB0 aGUgc21hbGwgZGlzdGFuY2Ugb2Yge3N1bXRpfSBpbiBzcGFjZSBmcm9tIHBvaW50IG9mIHJlZmVy ZW5jZSAKCl9fJyd2YScnX18gc3VtdGNpdGE6IE9jdXJyaW5nIHRoZSB1bnNwZWNpZmllZChtZWRp dW0pIGRpc3RhbmNlIG9mIHtzdW10aX0gaW4gc3BhY2UgZnJvbSBwb2ludCBvZiByZWZlcmVuY2Ug CgpfXycndnUnJ19fIHN1bXRjaXRhOiBPY3VycmluZyB0aGUgZmFyIGRpc3RhbmNlIG9mIHtzdW10 aX0gaW4gc3BhY2UgZnJvbSB0aGUgcG9pbnQgb2YgcmVmZXJlbmNlIAoKX18nJ2d1bmthJydfXyDi gJx4MSB3b3JrcyBhdCB4MiB3aXRoIG9iamVjdGl2ZSB4M+KAnQoKCgpUcmFuc2xhdGU6ICcnYmEg e2t1fSB6YSBrdSBtaSB2dSB7a3V9IGd1bmthIHt2YXV9JycKCgoKQW5zd2VyOiB+fmdyZXksZ3Jl eTrigJxTb21lIHRpbWUgaW4gdGhlIGZ1dHVyZSwgSSB3aWxsIHdvcmsgYSBwbGFjZSBsb25nIGF3 YXnigJ1+fgoKTm90ZTogUGVvcGxlIHJhcmVseSB1c2UgJyd6aScnLCAnJ3phJycgb3IgJyd6dScn IHdpdGhvdXQgYSAnJ3B1Jycgb3IgJydiYScnIGluIGZyb250IG9mIGl0LiBUaGlzIGlzIGJlY2F1 c2UgbW9zdCBwZW9wbGUgYWx3YXlzIG5lZWQgdG8gc3BlY2lmeSBwYXN0IG9yIGZ1dHVyZSBpbiB0 aGVpciBuYXRpdmUgbGFuZ3VhZ2UuIFdoZW4geW91IHRoaW5rIGFib3V0IGl0IExvamJhbmljYWxs eSwgbW9zdCBvZiB0aGUgdGltZSB0aGUgdGltZS1kaXJlY3Rpb24gaXMgb2J2aW91cywgYW5kIHRo ZSAnJ3B1Jycgb3IgJydiYScnIHN1cGVyZmx1b3VzIQoKCgpUaGUgb3JkZXIgaW4gd2hpY2ggZGly ZWN0aW9uLXN1bXRjaXRhIGFuZCBkaXN0YW5jZS1zdW10Y2l0YSBhcmUgc2FpZCBtYWtlcyBhIGRp ZmZlcmVuY2UuIFJlbWVtYmVyIHRoYXQgdGhlIG1lYW5pbmdzIG9mIHNldmVyYWwgdGVuc2Ugd29y ZHMgcGxhY2VkIHRvZ2V0aGVyIGFyZSBwaWN0dXJlZCBieSBhbiBpbWFnaW5hcnkgam91cm5leSBy ZWFkaW5nIGZyb20gbGVmdCB0byByaWdodC4gVGh1cyAnJ3B1IHp1JycgaXMg4oCcYSBsb25nIHRp bWUgYWdv4oCdIHdoaWxlICcnenUgcHUnJyBpcyDigJxpbiB0aGUgcGFzdCBvZiBzb21lIHBvaW50 IGluIHRpbWUgd2hpY2ggaXMgYSBsb25nIHRpbWUgdG93YXJkIHRoZSBmdXR1cmUgb3IgdGhlIHBh c3Qgb2Ygbm934oCdLiBJbiB0aGUgZmlyc3QgZXhhbXBsZSwgJydwdScnIHNob3dzIHRoYXQgd2Ug YmVnaW4gaW4gdGhlIHBhc3QsICcnenUnJyB0aGVuIHRoYXQgaXQgaXMgYSBsb25nIHRpbWUgYmFj a3dhcmRzLiBJbiB0aGUgc2Vjb25kIGV4YW1wbGUsICcnenUnJyBzaG93cyB0aGF0IHdlIGJlZ2lu IGF0IHNvbWUgcG9pbnQgZmFyIGF3YXkgaW4gdGltZSBmcm9tIG5vdywgJydwdScnIHRoZW4sIHRo YXQgd2UgbW92ZSBiYWNrd2FyZHMgZnJvbSB0aGF0IHBvaW50LiBUaHVzICcncHUgenUnJyBpcyBh bHdheXMgaW4gdGhlIHBhc3QuICcnenUgcHUnJyBjb3VsZCBiZSBpbiB0aGUgZnV0dXJlLiBUaGUg ZmFjdCB0aGF0IHRoZXNlIHRpbWUgdGVuc2VzIGNvbWJpbmUgaW4gdGhpcyB3YXkgaXMgb25lIG9m IHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRlbnNlIHN1bXRjaXRhIGFuZCBvdGhlciBzdW10Y2l0 YS4gVGhlIG1lYW5pbmdzIG9mIG90aGVyIHN1bXRjaXRhIGFyZSBub3QgYWx0ZXJlZCBieSB0aGUg cHJlc2VuY2Ugb2YgYWRkaXRpb25hbCBzdW10Y2l0YSBpbiBhIGJyaWRpLgoKCgpBcyBicmllZmx5 IGltcGxpZWQgZWFybGllciwgYWxsIHRoZXNlIGNvbnN0cnVjdHMgYmFzaWNhbGx5IHRyZWF0IGJy aWRpIGFzIGlmIHRoZXkgd2VyZSBwb2ludC1saWtlIGluIHRpbWUgYW5kIHNwYWNlLiBJbiBhY3R1 YWxpdHksIG1vc3QgZXZlbnRzIHBsYXkgb3V0IG92ZXIgYSBzcGFuIG9mIHRpbWUgYW5kIHNwYWNl LiBJbiB0aGUgZm9sbG93aW5nIGZldyBwYXJhZ3JhcGhzLCB3ZSB3aWxsIGxlYXJuIGhvdyB0byBz cGVjaWZ5IGludGVydmFscyBvZiB0aW1lIGFuZCBzcGFjZS4KCgoKX18nJ3plJ2knJ19fIHN1bXRj aXRhOiBzcGFubmluZyBvdmVyIHRoZSBzaG9ydCB0aW1lIG9mIHtzdW10aX0KCl9fJyd6ZSdhJydf XyBzdW10Y2l0YTogc3Bhbm5pbmcgb3ZlciB0aGUgdW5zcGVjaWZpZWQgKG1lZGl1bSkgdGltZSBv ZiB7c3VtdGl9CgpfXycnemUndScnX18gc3VtdGNpdGE6IHNwYW5uaW5nIG92ZXIgdGhlIGxvbmcg dGltZSBvZiB7c3VtdGl9CgoKCl9fJyd2ZSdpJydfXyBzdW10Y2l0YTogc3Bhbm5pbmcgb3ZlciB0 aGUgc2hvcnQgc3BhY2Ugb2Yge3N1bXRpfQoKX18nJ3ZlJ2EnJ19fIHN1bXRjaXRhOiBzcGFubmlu ZyBvdmVyIHRoZSB1bnNwZWNpZmllZCAobWVkaXVtKSBzcGFjZSBvZiB7c3VtdGl9CgpfXycndmUn dScnX18gc3VtdGNpdGE6IHNwYW5uaW5nIG92ZXIgdGhlIGxvbmcgc3BhY2Ugb2Yge3N1bXRpfQoK CgpTaXggd29yZHMgYXQgYSB0aW1lLCBJIGtub3csIGJ1dCByZW1lbWJlcmluZyB0aGUgdm93ZWwg c2VxdWVuY2UgYW5kIHRoZSBzaW1pbGFyaXR5IG9mIHRoZSBpbml0aWFsIGxldHRlciB6IGZvciB0 ZW1wb3JhbCB0ZW5zZXMgYW5kIHYgZm9yIHNwYWNpYWwgdGVuc2VzIG1pZ2h0IGhlbHAgdGhlIG1l bW9yaXppbmcuCgpfXycnLm9pJydfXyAtIGF0dGl0dWRpbmFsOiBwYWluIC0gcGxlYXN1cmUKCgoK VHJhbnNsYXRlOiAnJy5vaSBkYWkgZG8gdmUndSB7a3V9IGtsYW1hIGxvIGRvdGNvIGd1Z2RlIHtr dX0gemUndSB7a3V9IHt2YXV9JycKCgoKQW5zd2VyOiB+fmdyZXksZ3JleTrigJxPdWNoLCB5b3Ug c3BlbmQgYSBsb25nIHRpbWUgdHJhdmVsaW5nIGEgbG9uZyBzcGFjZSB0byBHZXJtYW554oCdIH5+ CgoKClRob3VnaCBtb3N0IHBlb3BsZSBhcmUgbm90IGZhbWlsaWFyIHdpdGggc3BhY2lhbCB0ZW5z ZXMsIHRoZXNlIG5ldyB3b3JkcyBjYW4gb3BlbiB1cCBmb3Igc29tZSBwcmV0dHkgc3dlZXQgdXNl cy4gT25lIGNvdWxkLCBmb3IgaW5zdGFuY2UsIHRyYW5zbGF0ZSDigJxUaGF0J3MgYSBiaWcgZG9n 4oCdIGFzICcndGkgdmUndSB7a3V9IGdlcmt1IHt2YXV9JycuIFNheWluZzog4oCcVGhpcyB0aGlu ZyBkb2dzIGZvciBhIGxvbmcgc3BhY2XigJ0gbWFrZXMgeW91IHNvdW5kIHJldGFyZGVkIGluIEVu Z2xpc2gsIGJ1dCB3ZWxsLXNwb2tlbiBpbiBMb2piYW4hCgoKCicnemUndScnIGFuZCBpdHMgYnJv dGhlcnMgYWxzbyBjb21iaW5lIHdpdGggb3RoZXIgdGVuc2VzIHRvIGZvcm0gY29tcG91bmQgdGVu c2VzLiBUaGUgcnVsZSBmb3IgJyd6ZSd1JycgYW5kIHRoZSBvdGhlcnMgYXJlIHRoYXQgYW55IHRl bnNlcyBwcmVjZWRpbmcgaXQgbWFya3MgYW4gZW5kcG9pbnQgb2YgdGhlIHByb2Nlc3MgKHJlbGF0 aXZlIHRvIHRoZSBwb2ludCBvZiByZWZlcmVuY2UpIGFuZCBhbnkgdGVuc2VzIGNvbWluZyBhZnRl ciBpdCBtYXJrcyB0aGUgb3RoZXIgZW5kcG9pbnQgcmVsYXRpdmUgdG8gdGhlIGZpcnN0LiBUaGlz IHNob3VsZCBiZSBkZW1vbnN0cmF0ZWQgd2l0aCBhIGNvdXBsZSBvZiBleGFtcGxlczoKCicnLm8n b2N1J2kgZG8gY2l0a2EgcHUge2t1fSB6ZSd1IHtrdX0gYmEge2t1fSB6dSB7a3V9IHt2YXV9Jycg LSDigJx7dG9sZXJhbmNlfSB5b3UgZWF0IGJlZ2lubmluZyBpbiB0aGUgcGFzdCBhbmQgZm9yIGEg bG9uZyB0aW1lIGVuZGluZyBhdCBzb21lIHBvaW50IGZhciBpbnRvIHRoZSBmdXR1cmUgb2Ygd2hl biB5b3Ugc3RhcnRlZOKAnSBvciDigJxIbXBmLCB5b3UgYXRlIGZvciBhIGxvbmcgdGltZeKAnS4g T25lIGNhbiBhbHNvIGNvbnRyYXN0ICcnZG8gY2Ege2t1fSB6ZSdpIHtrdX0gcHUge2t1fSBrbGFt YSB7dmF1fScnIHdpdGggJydkbyBwdSB7a3V9IHplJ2kge2t1fSBjYSB7a3V9IGtsYW1hIHt2YXV9 JycuIFRoZSBmaXJzdCBldmVudCBvZiB0cmF2ZWxpbmcgaGFzIG9uZSBlbmRwb2ludCBpbiB0aGUg cHJlc2VudCBhbmQgZXh0ZW5kcyBhIGxpdHRsZSB0b3dhcmRzIHRoZSBwYXN0LCB3aGlsZSB0aGUg c2Vjb25kIGV2ZW50IGhhcyBvbmUgZW5kcG9pbnQgaW4gdGhlIHBhc3QgYW5kIGV4dGVuZHMgb25s eSB0byB0aGUgcHJlc2VudCAodGhhdCBpcywgc2xpZ2h0eSBpbnRvIHRoZSBwYXN0IG9yIGZ1dHVy ZSkgb2YgdGhhdCBlbmRwb2ludC4KCl9fJydqbWl2ZScnX18g4oCceDEgaXMgYWxpdmUgYnkgc3Rh bmRhcmQgeDLigJ0KCgoKV2hhdCBkb2VzICcnLnVpIG1pIHB1IHtrdX0gemkge2t1fSB6ZSd1IHtr dX0gam1pdmUge3ZhdX0nJyBleHByZXNzPwoKCgpBbnN3ZXI6IH5+Z3JleSxncmV5OuKAnHtoYXBw aW5lc3MhfSBJIGxpdmUgZnJvbSBhIGxpdHRsZSBpbnRvIHRoZSBwYXN0IGFuZCBhIGxvbmcgd2F5 IHRvd2FyZHMgdGhlIGZ1dHVyZSBvciBwYXN0IChvYnZpb3VzbHkgdGhlIGZ1dHVyZSwgaW4gdGhp cyBjYXNlKSBvZiB0aGF0IGV2ZW504oCdIG9yIOKAnEkgYW0geW91bmcsIGFuZCBoYXZlIG1vc3Qg b2YgbXkgbGlmZSBhaGVhZCBvZiBtZSA6KeKAnX5+CgoKCkp1c3QgdG8gdW5kZXJsaW5lIHRoZSBz aW1pbGFyaXR5IHdpdGggc3BhY2lhbCB0ZW5zZXMsIGxldCdzIGhhdmUgYW5vdGhlciBleGFtcGxl LCB0aGlzIHRpbWUgd2l0aCBzcGFjaWFsIHRlbnNlczoKCl9fJycudSdlJydfXyBhdHRpdHVkaW5h bDogd29uZGVyIC0gY29tbW9ucGxhY2UKCgoKJycudSdlIHphJ2Ege2t1fSBidSd1IHtrdX0gdmUn dSB7a3V9IGNhJ3Uge2t1fSB6ZGFuaSB7dmF1fScnIC0gV2hhdCBkb2VzIGl0IG1lYW4/CgoKCkFu c3dlcjogfn5ncmV5LGdyZXk6IOKAnHt3b25kZXJ9IHtJIG9ic2VydmUhfSBFeHRlbmRpbmcgYSBs b25nIHNwYWNlIGZyb20gaGVyZSB0byBteSBmcm9udCBpcyBhIGhvbWUu4oCdIG9yIOKAnFdvdywg dGhpcyBob21lIGV4dGVuZGluZyBhaGVhZCBpcyBodWdlIeKAnX5+CgoKCkJlZm9yZSB3ZSBjb250 aW51ZSB3aXRoIHRoaXMgc3ludGF4LWhlYXZ5IHRlbnNlIHN5c3RlbSwgaSByZWNvbW1lbmQgc3Bl bmRpbmcgYXQgbGVhc3QgdGVuIG1pbnV0ZXMgZG9pbmcgc29tZXRoaW5nIHdoaWNoIGRvZXNuJ3Qg b2NjdXB5IHlvdXIgYnJhaW4gaW4gb3JkZXIgdG8gbGV0IHRoZSBpbmZvcm1hdGlvbiBzaW5rIGlu LiBTaW5nIGEgc29uZyBvciBlYXQgYSBjb29raWUgdmVyeSBzbG93bHkgLSB3aGF0ZXZlciwgYXMg bG9uZyBhcyB5b3UgbGV0IHlvdXIgbWluZCByZXN0LgoKCgohIUxvamJhbiBMZXNzb25zIC0gTGVz c29uIGVsZXZlbiAoWkFoTykKClRob3VnaCB3ZSB3b24ndCBnbyB0aHJvdWdoIGFsbCBMb2piYW4g dGVuc2UgY29uc3RydWN0cyBmb3Igbm93LCB0aGVyZSBpcyBvbmUgb3RoZXIga2luZCBvZiB0ZW5z ZSB0aGF0IEkgdGhpbmsgc2hvdWxkIGJlIHRhdWdodCBub3cuIFRoZXNlIGFyZSBjYWxsZWQg4oCc ZXZlbnQgY29udG91cnPigJ0sIGFuZCByZXByZXNlbnQgYSB2ZXJ5IGRpZmZlcmVudCB3YXkgb2Yg dmlld2luZyB0ZW5zZXMgdGhhdCB3ZSBoYXZlIHNlZW4gc28gZmFyLiBTbyBsZXQncyBnZXQgdG8g aXQ6CgoKClVzaW5nIHRoZSB0ZW5zZXMgd2UgaGF2ZSBsZWFybmVkIHNvIGZhciwgd2UgY2FuIGlt YWdpbmUgYW4gaW5kZWZpbml0ZSB0aW1lIGxpbmUsIGFuZCB3ZSB0aGVuIHBsYWNlIGV2ZW50cyBv biB0aGF0IGxpbmUgcmVsYXRpdmUgdG8gdGhlIOKAnG5vd+KAnS4gV2l0aCBldmVudCBjb250b3Vy cywgaG93ZXZlciwgd2UgdmlldyBlYWNoIGV2ZW50IGFzIGEgcHJvY2Vzcywgd2hpY2ggaGFzIGNl cnRhaW4gc3RhZ2VzOiBBIHRpbWUgYmVmb3JlIGl0IHVuZm9sZHMsIGEgdGltZSB3aGVuIGl0IGJl Z2lucywgYSB0aW1lIHdoZW4gaXQgaXMgaW4gcHJvY2VzcywgYSB0aW1lIHdoZW4gaXQgZW5kcywg YW5kIGEgdGltZSBhZnRlciBpdCBoYXMgZW5kZWQuIEV2ZW50IGNvbnRvdXJzIHRoZW4gdGVsbHMg dXMgd2hpY2ggcGFydCBvZiB0aGUgZXZlbnQncyBwcm9jZXNzIHdhcyBoYXBwZW5pbmcgZHVyaW5n IHRoZSB0aW1lIHNwZWNpZmllZCBieSB0aGUgb3RoZXIgdGVuc2VzLiBXZSBuZWVkIGEgY291cGxl IG9mIHRlbnNlcyBmaXJzdDoKCgoKX18nJ3B1J28nJ19fIC0gc3VtdGNpdGE6IGV2ZW50IGNvbnRv dXI6IEJyaWRpIGhhcyBub3QgeWV0IGhhcHBlbmVkIGR1cmluZyB7c3VtdGl9CgpfXycnY2Enbycn X18gLSBzdW10Y2l0YTogZXZlbnQgY29udG91cjogQnJpZGkgaXMgaW4gcHJvY2VzcyBkdXJpbmcg e3N1bXRpfQoKX18nJ2JhJ28nJ19fIC0gc3VtdGNpdGE6IGV2ZW50IGNvbnRvdXI6IFRoZSBwcm9j ZXNzIG9mIGJyaWRpIGhhcyBlbmRlZCBkdXJpbmcge3N1bXRpfQoKCgpUaGlzIG5lZWRzIHRvIGJl IGRlbW9uc3RyYXRlZCBieSBzb21lIGV4YW1wbGVzLiBXaGF0J3MgJycudWkgbWkgcHUnbyB7a3V9 IHNlIHpkYW5pIHt2YXV9JycgbWVhbj8KCgoKQW5zd2VyOiDigJxZYXksIEknbGwgYmVnaW4gdG8g aGF2ZSBhIGhvbWXigJ0uCgoKCkJ1dCBoZXksIHlvdSBhc2ssIHdoeSBub3QganVzdCBzYXkgJycu dWkgbWkgYmEge2t1fSBzZSB6ZGFuaSB7dmF1fScnIGFuZCBldmVuIHNhdmUgYSBzeWxsYWJsZT8g QmVjYXVzZSwgcmVtZW1iZXIsIHNheWluZyB0aGF0IHlvdSB3aWxsIGhhdmUgYSBob21lIGluIHRo ZSBmdXR1cmUgc2F5cyBub3RoaW5nIGFib3V0IHdoZXRoZXIgeW91IGhhdmUgYSBob21lIG5vdy4g VXNpbmcgJydwdSdvJycsIHRob3VnaCwgeW91IHNheSB0aGF0IHlvdSBhcmUgbm93IGluIHRoZSBw YXN0IG9mIHRoZSBwcm9jZXNzIG9mIHlvdSBoYXZpbmcgYSBob21lLCB3aGljaCBtZWFucyB0aGF0 IHlvdSBkb24ndCBoYXZlIG9uZSBub3cuCgpOb3RlLCBieSB0aGUgd2F5LCB0aGF0ICcnbWkgYmEg e2t1fSBzZSB6ZGFuaSB7dmF1fScnIGlzIHNpbWlsYXIgdG8gJydtaSBwdSdvIHtrdX0gc2UgemRh bmkge3ZhdX0nJywgYW5kIGxpa2V3aXNlIHdpdGggJydiYSdvJycgYW5kICcncHUnJy4gV2h5IGRv IHRoZXkgc2VlbSByZXZlcnNlZD8gQmVjYXVzZSBldmVudCBjb250b3VycyB2aWV3IHRoZSBwcmVz ZW50IGFzIHNlZW4gZnJvbSB0aGUgdmlld3BvaW50IG9mIHRoZSBwcm9jZXNzLCB3aGVyZWFzIHRo ZSBvdGhlciB0ZW5zZXMgdmlldyBldmVudHMgc2VlbiBmcm9tIHRoZSBwcmVzZW50LgoKCgpPZnRl biwgZXZlbnQgY29udG91cnMgYXJlIG1vcmUgcHJlY2lzZSB0aGF0IG90aGVyIGtpbmQgb2YgdGVu c2VzLiBFdmVuIG1vcmUgY2xhcml0eSBpcyBhY2hpZXZlZCBieSBjb21iaW5pbmcgc2V2ZXJhbCB0 ZW5zZXM6ICcnLmEnbyBtaSBiYXtrdX0gemkge2t1fSBiYSdvIHtrdX0gZ3Vua2Ege3ZhdX0nJyAt IOKAnEkgaG9wZSBJJ3ZlIHNvb24gZmluaXNoZWQgd29ya2luZy7igJ0KCgoKSW4gTG9qYmFuLCB3 ZSBhbHNvIG9wZXJhdGUgd2l0aCBhbiBldmVudCdzIOKAnG5hdHVyYWwgYmVnaW5uaW5n4oCdIGFu ZCBpdHMg4oCcbmF0dXJhbCBlbmTigJ0uIFRoZSB0ZXJtIOKAnG5hdHVyYWzigJ0gaXMgaGlnaGx5 IHN1YmplY3RpdmUgaW4gdGhpcyBzZW5zZSwgYW5kIHRoZSBuYXR1cmFsIGVuZCByZWZlcnMgdG8g dGhlIHBvaW50IGluIHRoZSBwcm9jZXNzIHdoZXJlIGl0IHNob3VsZCBlbmQuIFlvdSBjYW4gc2F5 IGFib3V0IGEgbGF0ZSB0cmFpbiwgZm9yIGluc3RhbmNlLCB0aGF0IGl0cyBwcm9jZXNzIG9mIHJl YWNoaW5nIHlvdSBpcyBub3cgZXh0ZW5kaW5nIGJleW9uZCBpdHMgbmF0dXJhbCBlbmQuIEFuIHVu ZGVyY29va2VkLCBidXQgc2VydmVkIG1lYWwsIHNpbWlsYXJseSwgaXMgYmVpbmcgZWF0ZW4gYmVm b3JlIHRoYXQgcHJvY2VzcycgbmF0dXJhbCBiZWdpbm5pbmcuIFRoZSBldmVudCBjb250b3VycyB1 c2VkIGluIHRoZXNlIGV4YW1wbGVzIGFyZSBhcyBmb2xsb3dzOgoKCgpfXycnemEnbycnX18gLSBz dW10Y2l0YTogZXZlbnQgY29udG91cjogQnJpZGkgaXMgaW4gcHJvY2VzcyBiZXlvbmQgaXRzIG5h dHVyYWwgZW5kIGR1cmluZyB7c3VtdGl9CgpfXycneGEnbycnX18gLSBzdW10Y2l0YTogZXZlbnQg Y29udG91cjogQnJpZGkgaXMgaW1tYXR1cmVseSBpbiBwcm9jZXNzIGR1cmluZyB7c3VtdGl9CgoK Cl9fJydjaWRqYScnX186IOKAnHgxIGlzIGZvb2QsIHdoaWNoIGlzIGVkaWJsZSBmb3IgeDLigJ0K CgoKVHJhbnNsYXRlOiAnJy5vaSBkbyBjaXRrYSB6YSdvIGxvIG51IGRvIGJhJ28ge2t1fSB1J2Ug Y2l0a2Egem8nZSBub2kgY2lkamEgZG8ge3ZhdX0ge2t1J299IHt2YXV9IHtrZWl9IHtrdX0nJwoK CgpBbnN3ZXI6IH5+Z3JleSxncmV5OuKAnE95LCB5b3Uga2VlcCBlYXRpbmcgd2hlbiB5b3UgaGF2 ZSBmaW5pc2hlZCwgaW5jcmVkaWJseSwgZWF0aW5nIHNvbWV0aGluZyBlZGlibGUh4oCdfn4KCgoK e2ltZyBmaWxlSWQ9IjIiIHRodW1iPSJ5IiByZWw9ImJveFtnXSJ9CgpJbWFnZSBhYm92ZTogWkFo TyB0ZW5zZXMgKGV2ZW50IGNvbnRvdXJzKS4gQWxsIHRlbnNlcyBhYm92ZSB0aGUgbGluZSBvZiB0 aGUgZXZlbnQgc2lnbmlmeSBzdGFnZXMgY292ZXJpbmcgYW4gYW1vdW50IG9mIHRpbWUuIEFsbCB0 ZW5zZXMgYmVsb3cgdGhlIGV2ZW50IGxpbmUgc2lnbmlmeSBzdGFnZXMgd2hpY2ggYXJlIHBvaW50 LWxpa2UuCgoKCkFsbCBvZiB0aGVzZSB0ZW5zZXMgaGF2ZSBiZWVuIGRlc2NyaWJpbmcgc3RhZ2Vz IG9mIGEgcHJvY2VzcyB3aGljaCB0YWtlcyBzb21lIHRpbWUgKGFzIHNob3duIG9uIHRoZSBncmFw aCBhYm92ZTsgdGhvc2UgdGVuc2VzIGFib3ZlIHRoZSBldmVudCBsaWtlKS4gQnV0IG1hbnkgb2Yg dGhlIGV2ZW50IGNvbnRvdXJzIGRlc2NyaWJlcyBwb2ludCBsaWtlIHN0YWdlcyBpbiB0aGUgcHJv Y2VzcywgbGlrZSBpdHMgYmVnaW5uaW5nLiBBcyBpcyB0cnVlIG9mICcnY2EnJyBhbmQgJydidSd1 JycsIHRoZXkgYWN0dWFsbHkgZXh0ZW5kIHNsaWdodGx5IGludG8gdGhlIHBhc3QgYW5kIGZ1dHVy ZSBvZiB0aGF0IHBvaW50LCBhbmQgbmVlZCBub3QgdG8gYmUgcHJlY2lzZS4KCgoKVGhlIHR3byBt b3N0IGltcG9ydGFudCBwb2ludC1saWtlIGV2ZW50IGNvbnRvdXJzIGFyZToKCl9fJydjbydhJydf XyAtIHN1bXRjaXRhOiBldmVudCBjb250b3VyOiBCcmlkaSBpcyBhdCBpdHMgYmVnaW5uaW5nIGR1 cmluZyB7c3VtdGl9CgpfXycnY28ndScnX18gLSBzdW10Y2l0YTogZXZlbnQgY29udG91cjogQnJp ZGkgaXMgYXQgaXRzIGVuZGluZyBkdXJpbmcge3N1bXRpfQoKCgpGdXJ0aGVybW9yZSwgdGhlcmUg aXMgYSBwb2ludCB3aGVyZSB0aGUgcHJvY2VzcyBpcyBuYXR1cmFsbHkgY29tcGxldGUsIGJ1dCBu b3QgbmVjZXNzYXJpbHkgaGFzIGVuZGVkIHlldDoKCl9fJydtbyd1JydfXyAtIHN1bXRjaXRhOiBl dmVudCBjb250b3VyOiBCcmlkaSBpcyBhdCBpdHMgbmF0dXJhbCBlbmRpbmcgZHVyaW5nIHtzdW10 aX0KCk1vc3Qgb2YgdGhlIHRpbWUsIHRob3VnaCwgcHJvY2Vzc2VzIGFjdHVhbGx5IGVuZCBhdCB0 aGVpciBuYXR1cmFsIGVuZGluZzsgdGhpcyBpcyB3aGF0IG1ha2VzIGl0IG5hdHVyYWwuIFRyYWlu cyBhcmUgbm90IHVzdWFsbHkgbGF0ZSwgYW5kIHBlb3BsZSB1c3VhbGx5IHJldHJhaW4gdGhlbXNl bHZlcyB0byBlYXQgb25seSBlZGlibGUgZm9vZC4KCgoKU2luY2UgYSBwcm9jZXNzIGNhbiBiZSBp bnRlcnJ1cHRlZCBhbmQgcmVzdW1lZCwgdGhlc2UgcG9pbnRzIGhhdmUgZWFybmVkIHRoZWlyIG93 biBldmVudCBjb250b3VyIGFsc286CgpfXycnZGUnYScnX18gLSBzdW10Y2l0YTogZXZlbnQgY29u dG91cjogQnJpZGkgaXMgcGF1c2luZyBkdXJpbmcge3N1bXRpfQoKX18nJ2RpJ2EnJ19fIC0gc3Vt dGNpdGE6IGV2ZW50IGNvbnRvdXI6IEJyaWRpIGlzIHJlc3VtaW5nIGR1cmluZyB7c3VtdGl9CgoK CkluIGZhY3QsIHNpbmNlICcnanVuZGknJyBtZWFucyDigJx4MSBwYXlzIGF0dGVudGlvbiB0byB4 MuKAnSwgJydkZSdhIGp1bmRpJycgYW5kICcnZGknYSBqdW5kaScnIGFyZSBjb21tb24gTG9qYmFu IHdheXMgb2Ygc2F5aW5nIOKAnEJSQuKAnSBhbmQg4oCcYmFja+KAnS4gT25lIGNvdWxkIG9mIGNv dXJzZSBhbHNvIHNheSB0aGUgZXZlbnQgY29udG91cnMgYnkgdGhlbXNlbHZlcyBhbmQgaG9wZSB0 aGUgcG9pbnQgZ2V0cyBhY3Jvc3MuCgoKCkZpbmFsbHksIG9uZSBjYW4gdHJlYXQgYW4gZW50aXJl IGV2ZW50LCBmcm9tIHRoZSBiZWdpbm5pbmcgdG8gdGhlIGVuZCBhcyBvbmUgc2luZ2xlIHBvaW50 IHVzaW5nICcnY28naScnOgoKX18nJ3Blbm1pJydfXyDigJx4MSBtZWV0cyB4MiBhdCBsb2NhdGlv biB4M+KAnQoKJydtaSBwdSB7a3V9IHppIHtrdX0gY28naSB7a3V9IHBlbm1pIGxvIGRvdGNvIHBy ZW51IHtrdX0ge3ZhdX0nJyAtIOKAnEEgbGl0dGxlIHdoaWxlIGFnbywgSSB3YXMgYXQgdGhlIHBv aW50IGluIHRpbWUgd2hlcmUgaSBtZXQgYSBHZXJtYW4gcGVyc29u4oCdCgoKCgoKISFMb2piYW4g TGVzc29ucyAtIExlc3NvbiB0d2VsdmUgKG9yZGVycyBhbmQgcXVlc3Rpb25zKQoKUGhldywgdGhv c2UgdHdvIGxvbmcgbGVzc29ucyB3aXRoIHN5bnRheCBoZWF2eSBMb2piYW4gZ2l2ZXMgdGhlIGJy YWluIHNvbWV0aGluZyB0byBwb25kZXIgYWJvdXQuIEVzcGVjaWFsbHkgYmVjYXVzZSBpdCdzIHNv IGRpZmZlcmVudCBmcm9tIEVuZ2xpc2guIFNvIGxldCdzIHR1cm4gdG8gc29tZXRoaW5nIGEgbGl0 dGxlIGxpZ2h0ZXI6IE9yZGVycyBhbmQgcXVlc3Rpb25zLgoKCgpXaGF0IHRoZS4uLiBfX3NpdCB1 cCBhbmQgZm9jdXMhX18KCgoKU2luY2UgdGhlIHdheSB0byBleHByZXNzIG9yZGVycyBpbiBFbmds aXNoIGlzIHRvIGxlYXZlIG91dCB0aGUgc3ViamVjdCBvZiB0aGUgY2xhdXNlLCB3aHkgZGlkIHlv dSBhc3N1bWUgdGhhdCBpdCB3YXMgeW91IEkgd2FzIHNwZWFraW5nIHRvLCBhbmQgbm90IG9yZGVy aW5nIG15c2VsZiwgb3IgZXhwcmVzc2luZyB0aGUgb2JsaWdhdGlvbiBzb21lb25lIGVsc2UgaGFz PyBCZWNhdXNlIHRoZSBFbmdsaXNoIGxhbmd1YWdlIHVuZGVyc3RhbmRzIHRoYXQgb3JkZXJzLCBi eSB0aGVpciB2ZXJ5IG5hdHVyZSwgYXJlIGFsd2F5cyBkaXJlY3RlZCB0b3dhcmRzIHRoZSBsaXN0 ZW5lciAtIHRoZSDigJx5b3XigJ0sIGFuZCBzbyB0aGUgc3ViamVjdCBpcyBub3QgbmVjZXNzYXJ5 LgoKSW4gTG9qYmFuLCBlbGlkaW5nIHRoZSBzdWJqZWN0IHlpZWxkcyAnJ3pvJ2UnJywgc28gdGhh dCBwb3NzaWJpbGl0eSBpcyBzYWRseSBub3Qgb3BlbiB0byB1cy4gSW5zdGVhZCwgd2UgdXNlIHRo ZSB3b3JkICcna28nJywgd2hpY2ggaXMgdGhlIGltcGVyYXRpdmUgZm9ybSBvZiAnJ2RvJycuIEdy YW1tYXRpY2FsbHkgYW5kIGJyaWRpLXdpc2UsIGl0J3MgZXF1aXZhbGVudCB0byAnJ2RvJycsIGJ1 dCBpdCBhZGRzIGEgbGF5ZXIgb2Ygc2VtYW50aWNzLCBzaW5jZSBpdCB0dXJucyBldmVyeSBzdGF0 ZW1lbnQgd2l0aCAnJ2tvJycgaW4gaXQgaW50byBhbiBvcmRlci4g4oCcRG8gc3VjaCB0aGF0IHRo aXMgc2VudGVuY2UgaXMgdHJ1ZSBmb3IgeW91PScna28nJyHigJ0gRm9yIHRoZSBzYW1lIHJlYXNv biB3ZSBkb24ndCBuZWVkIHRoZSBzdWJqZWN0IGluIEVuZ2xpc2ggc2VudGVuY2VzLCB3ZSBkb24n dCBuZWVkIG9yZGVyLXdvcmRzIGRlcml2ZWQgZnJvbSBhbnkgb3RoZXIgc3VtdGkgdGhhbiAnJ2Rv JycuCgoKCkhvdyBjb3VsZCB5b3Ugb3JkZXIgb25lIHRvIGdvIGZhciBhd2F5IGZvciBhIGxvbmcg dGltZSAodXNpbmcgJydrbGFtYScnIGFzIHRoZSBvbmx5IHNlbGJyaT8pCgoKCkFuc3dlcjogfn5n cmV5LGdyZXk6a28gdmUndSB6ZSd1IGtsYW1hfn4KCignJy5pIHphJ2EgZGFpIGEnbyBtaSBjYSBj byd1IGNpc2thIGxvIGZhJ29ybWEnbyAuaSBrbyBqaW1wZSB2YXUgLnVpJycpIC0gbG9vayB1cCBj aXNrYSBhbmQgd29yayBpdCBvdXQuCgoKClF1ZXN0aW9ucyBpbiBMb2piYW4gYXJlIHZlcnkgZWFz eSB0byBsZWFybiwgYW5kIHRoZXkgY29tZSBpbiB0d28ga2luZHM6IEZpbGwgaW4gdGhlIGJsYW5r LCBhbmQgdHJ1ZS9mYWxzZSBxdWVzdGlvbnMuIExldCdzIGJlZ2luIHdpdGggdGhlIHRydWUtZmFs c2UgcXVlc3Rpb24ga2luZCAtIHRoYXQncyBwcmV0dHkgb3ZlcmNvbWVhYmxlLCBzaW5jZSBpdCBv bmx5IGludm9sdmVzIG9uZSB3b3JkLCAnJ3h1JycuCgonJ3h1Jycgd29ya3MgbGlrZSBhbiBhdHRp dHVkaW5hbCBpbiB0aGUgc2Vuc2UgdGhhdCBpdCBjYW4gZ28gYW55d2hlcmUsIGFuZCBpdCBhcHBs aWVzIHRvIHRoZSBwcmVjZWRpbmcgd29yZCAob3IgY29uc3RydWN0KS4gSXQgdGhlbiB0cmFuc2Zv cm1zIHRoZSBzZW50ZW5jZSBpbnRvIGEgcXVlc3Rpb24sIGFza2luZyB3aGV0aGVyIGl0IGlzIHRy dWUgb3Igbm90LiBJbiBvcmRlciB0byBhZmZpcm0sIHlvdSBzaW1wbHkgcmVwZWF0IHRoZSBicmlk aToKCicneHUgdmUndSB6ZGFuaSBkbycnICcnLmkgdmUndSB6ZGFuaSBtaScnLCBvciB5b3UganVz dCByZXBlYXQgdGhlIHRoZSBzZWxicmksIHdoaWNoIGlzIHRoZSBicmlkaSB3aXRoIGFsbCB0aGUg c3VtdGkgYW5kIHRlbnNlcyBlbGlkZWQ6ICcnemRhbmknJy4KClRoZXJlIGlzIGFuIGV2ZW4gZWFz aWVyIHdheSB0byBhZmZpcm0gdXNpbmcgYnJpa2EnaSwgYnV0IHRob3NlIGFyZSBhIHRhbGUgZm9y IGFub3RoZXIgdGltZS4gVG8gYW5zd2VyIOKAnG5v4oCdIG9yIOKAnGZhbHNl4oCdLCB5b3Ugc2lt cGx5IGFuc3dlciB3aXRoIHRoZSBicmlkaSBuZWdhdGVkLiBUaGF0IHRvbywgd2lsbCBiZSBsZWZ0 IGZvciBsYXRlciwgYnV0IHdlIHdpbGwgcmV0dXJuIHRvIHF1ZXN0aW9uIGFuc3dlcmluZyBieSB0 aGVuLgoKCgpUaGUgb3RoZXIga2luZCBpcyBmaWxsIGluIHRoZSBibGFuay4gSGVyZSwgeW91IGFz ayBmb3IgdGhlIHF1ZXN0aW9uIHdvcmQgdG8gYmUgcmVwbGFjZWQgZm9yIGEgY29uc3RydWN0LCB3 aGljaCBtYWtlcyB0aGUgYnJpZGkgY29ycmVjdC4gVGhlcmUgYXJlIHNldmVyYWwgb2YgdGhlc2Ug d29yZHMsIGRlcGVuZGluZyBvbiB3aGF0IHlvdSBhcmUgYXNraW5nIGFib3V0OgoKX18nJ21hJydf XyAtIHN1bXRpIHF1ZXN0aW9uCgpfXycnbW8nJ19fIC0gc2VsYnJpIHF1ZXN0aW9uCgpfXycneG8n J19fIC0gbnVtYmVyIHF1ZXN0aW9uCgpfXycnY3UnZScnX18gLSB0ZW5zZSBxdWVzdGlvbgoKCgpB cyB3ZWxsIGFzIG1hbnkgb3RoZXJzLiBUbyBhc2sgYWJvdXQgYSBzdW10aSwgeW91IHRoZW4ganVz dCBwbGFjZSB0aGUgcXVlc3Rpb24gd29yZCB3aGVyZSB5b3Ugd2FudCB5b3VyIGFuc3dlcjogJydk byBkdW5kYSBtYSBtaScnIC0gYXNrcyBmb3IgdGhlIHgyIHRvIGJlIGZpbGxlZCB3aXRoIGEgY29y cmVjdCBzdW10aS4g4oCcWW91IGdpdmUgd2hhdCB0byBtZT/igJ0uIFRoZSBjb21iaW5hdGlvbiBv ZiAnJ3N1bXRjaXRhJycgKyAnJ21hJycgaXMgdmVyeSB1c2VmdWwgaW5kZWVkOgoKX18nJ211J2kn J19fIC0gc3VtdGNpdGE6IG1vdGl2YXRlZCBieSB0aGUgYWJzdHJhY3Rpb24gb2Yge3N1bXRpfQoK CgonJy5vaSBkbyBkYXJ4aSBtaSBtdSdpIG1hJycgLSDigJxPeSwgd2h5IGRvIHlvdSBoaXQgbWU/ IeKAnQoKCgpMZXQncyB0cnkgYW5vdGhlciBvbmUuIFRoaXMgdGltZSwgeW91IHRyYW5zbGF0ZToK CicnLnVpIGRhaSBkbyBjYSB6ZSd1IHB1IG1vJycKCgoKQW5zd2VyOiB+fmdyZXksZ3JleTrigJxZ b3UncmUgaGFwcHksIHdoYXQgaGF2ZSB5b3UgYmVlbiBkb2luZyBhbGwgdGhpcyBsb25nIHRpbWUg dW50aWwgbm93P+KAnSBUZWNobmljYWxseSwgaXQgY291bGQgYWxzbyBtZWFuIOKAnHdoYXQgaGF2 ZSB5b3UgYmVlbj/igJ0sIGJ1dCBhbnN3ZXJpbmcgd2l0aCAnJy51YSBuYWkgbGknYSByZW1uYScn IChVaCwgaHVtYW4sIG9idmlvdXNseSkgaXMganVzdCBiZWluZyBpbmNyZWRpYmx5IGFubm95aW5n IG9uIHB1cnBvc2Uufn4KCgoKU2luY2UgdG9uZSBvZiB2b2ljZSBvciBzZW50ZW5jZSBzdHJ1Y3R1 cmUgZG9lcyBub3QgcmV2ZWFsIHdoZXRoZXIgYSBzZW50ZW5jZSBpcyBhIHF1ZXN0aW9uIG9yIG5v dCwgb25lIGJldHRlciBub3QgbWlzcyB0aGUgcXVlc3Rpb24gd29yZC4gVGhlcmVmb3JlLCBzaW5j ZSBwZW9wbGUgdGVuZCB0byBmb2N1cyBtb3JlIG9uIHdvcmRzIGluIHRoZSBiZWdpbm5pbmcgb3Ig YXQgdGhlIGVuZCBvZiBzZW50ZW5jZXMsIGl0J3MgdXN1YWxseSB3b3J0aCB0aGUgd2hpbGUgdG8g cmUtb3JkZXIgdGhlIHNlbnRlbmNlIHNvIHRoYXQgdGhlIHF1ZXN0aW9uIHdvcmRzIGFyZSBhdCB0 aG9zZSBwbGFjZXMuIElmIHRoYXQgaXMgbm90IGZlYXNhYmxlLCAnJ3BhdScnIGlzIGFuIGF0dGl0 dWRpbmFsIG1hcmtpbmcgdGhhdCB0aGUgc2VudGVuY2UgaXMgYSBxdWVzdGlvbi4gQ29udHJhcnks ICcncGF1IG5haScnIGV4cGxpY2l0bHkgbWFya3MgYW55IHF1ZXN0aW9uIGFzIGJlaW5nIHJoZXRv cmljYWwuCgoKCldoaWxlIHdlIGFyZSBvbiB0aGUgdG9waWMgb2YgcXVlc3Rpb25zLCBpdCdzIGFs c28gYXBwcm9wcmlhdGUgdG8gbWVudGlvbiB0aGUgd29yZCAnJ2thdScnLCB3aGljaCBpcyBhIG1h cmtlciBmb3Ig4oCcaW5kaXJlY3QgcXVlc3Rpb27igJ0uIFdoYXQncyBhbiBpbmRpcmVjdCBxdWVz dGlvbiwgdGhlbj8gV2VsbCwgdGFrZSBhIGxvb2sgYXQgdGhlIHNlbnRlbmNlOiAnJ21pIGRqdW5v IGxvIGR1J3UgbWEga2F1IHpkYW5pIGRvJycgLSDigJxJIGtub3cgd2hhdCBpcyB5b3VyIGhvbWUu 4oCdCgpfXycnZGp1bm8nJ19fIOKAnHgxIGtub3dzIGZhY3QocykgeDIgYXJlIHRydWUgYWJvdXQg eDMgYnkgZXBpc3RlbW9sb2d5IHg04oCdCgpPbmUgY2FuIHRoaW5rIGl0IGFzIHRoZSBhbnN3ZXIg dG8gdGhlIHF1ZXN0aW9uICcnbWEgemRhbmkgZG8nJy4gTW9yZSByYXJlbHksIG9uZSBjYW4gbWFy ayBhIG5vbi1xdWVzdGlvbiB3b3JkIHdpdGggJydrYXUnJywgaW4gd2hpY2ggY2FzZSBvbmUgc3Rp bGwgY2FuIGltYWdpbmUgaXQgYXMgdGhlIGFuc3dlciB0byBhIHF1ZXN0aW9uOiAnJ21pIGppbXBl IGxvIGR1J3UgZHVuZGEgdGkga2F1IGRvJycgLSDigJxJIGtub3cgd2hhdCB5b3UgaGF2ZSBiZWVu IGdpdmVuLCBpdCBpcyB0aGlzLuKAnQoKCgoKCiEhTG9qYmFuIExlc3NvbnMgLSBMZXNzb24gdGhp cnRlZW4gKG1vcnBob2xvZ3kgYW5kIHdvcmQgY2xhc3NlcykKCkJhY2sgdG8gbW9yZSBoZWF2eSAo YW5kIGludGVyZXN0aW5nKSBzdHVmZi4KCklmIHlvdSBoYXZlbid0IGFscmVhZHksIEkgc3Ryb25n bHkgc3VnZ2VzdCB5b3UgZmluZCB0aGUgTG9qYmFuaWMgcmVjb3JkaW5nIGNhbGxlZCAiU3Rvcnkg VGltZSB3aXRoIFVuY2xlIFJvYmluIiwgb3IgbGlzdGVuIHRvIHNvbWVvbmUgc3BlYWsgTG9qYmFu IG9uIE11bWJsZSwgYW5kIHRoZW4gcHJhY3RpY2UgeW91ciBwcm9udW5jaWF0aW9uLiBIYXZpbmcg YW4gaW50ZXJuYWwgY29udmVyc2F0aW9uIGluIHlvdXIgaGVhZCBpbiBMb2piYW4gaXMgb25seSBn b29kIGlmIGl0IGlzbid0IHdpdGggYWxsIHRoZSB3cm9uZyBzb3VuZHMsIGFuZCBsZWFybmluZyBw cm9udW5jaWF0aW9uIGZyb20gd3JpdHRlbiB0ZXh0IGlzIGhhcmQuIFRoZXJlZm9yZSwgdGhpcyBs ZXNzb24gd2lsbCBub3QgYmUgb24gdGhlIExvamJhbiBzb3VuZHMsIGhvd2V2ZXIgaW1wb3J0YW50 IHRoZXkgbWlnaHQgYmUsIGJ1dCBhIHNob3J0IGludHJvZHVjdGlvbiB0byB0aGUgTG9qYmFuIG1v cnBob2xvZ3kuCgoKCldoYXQgaXMgbW9ycGhvbG9neT8gVGhlIHdvcmQgaXMgZGVyaXZlZCBmcm9t IEdyZWVrIG1lYW5pbmcg4oCcdGhlIHN0dWR5IG9mIHNoYXBlc+KAnSwgYW5kIGluIHRoaXMgY29u dGV4dCwgd2UgdGFsayBhYm91dCBob3cgd2UgbWFrZSB3b3JkcyBmcm9tIGxldHRlcnMgYW5kIHNv dW5kcywgYXMgY29udHJhc3RlZCB3aXRoIHN5bnRheCAtIGhvdyB3ZSBtYWtlIHNlbnRlbmNlcyB3 aXRoIHdvcmRzLiBMb2piYW4gb3BlcmF0ZXMgd2l0aCBkaWZmZXJlbnQgbW9ycGhvbG9naWNhbCB3 b3JkIGNsYXNzZXMsIHdoaWNoIGFyZSBhbGwgZGVmaW5lZCBieSB0aGVpciBtb3JwaG9sb2d5LiBU byBtYWtlIGl0IGFsbCBuaWNlIGFuZCBzeXN0ZW1hdGljIHRob3VnaCwgd29yZHMgd2l0aCBjZXJ0 YWluIGZ1bmN0aW9ucyB0ZW5kIHRvIGJlIGdyb3VwZWQgYnkgbW9ycGhvbG9naWNhbCBjbGFzc2Vz LCBidXQgZXhjZXB0aW9ucyBtYXkgb2NjdXIuCgp8fCAgIENsYXNzfE1lYW5pbmd8RGVmaW5lZCBC eXxUeXBpY2FsIEZ1bmN0aW9uCgogICBXb3Jkczp8ICAgfCAgIHwgICAKCiAgIEJyaXZsYXwgICBi cmlkaS13b3JkfCAgIEFtb25nIGZpcnN0IDUgbGV0dGVycyAoZXhjbHVkaW5nIOKAnCDigJgg4oCc KSBpcyBhIGNvbnNvbmFudCBjbHVzdGVyLiBFbmRzIGluIHZvd2VsLiAgIHwgICBBY3RzIGFzIGEg c2VsYnJpIGJ5IGRlZmF1bHQuIEFsd2F5cyBoYXMgYSBwbGFjZSBzdHJ1Y3R1cmUuCgogICAtLUdp c211fCAgIFJvb3Qtd29yZHwgNSBsZXR0ZXJzIG9mIHRoZSBmb3JtIENWQ0NWIG9yIENDVkNWICAg fCAgIE9uZSB0byBmaXZlIHN1bXRpIHBsYWNlcy4gQ292ZXJzIGJhc2ljIGNvbmNlcHRzLgoKICAg LS1MdWp2b3wgIENvbXBvdW5kIHdvcmQuIERlcml2ZWQgZnJvbSBmcm9tIOKAnGx1anZsYeKAnSwg bWVhbmluZyDigJxjb21wbGV4IHdvcmTigJ0gfCAgIE1pbi4gNiBsZXR0ZXJzLiBNYWRlIGJ5IHN0 cmluZ2luZyByYWZzaSB0b2dldGhlciB3aXRoIGJpbmRpbmcgbGV0dGVycyBpZiBuZWNlc3Nhcnku fCAgIENvdmVycyBtb3JlIGNvbXBsZXggY29uY2VwdHMgdGhhbiBnaXNtdS4KCiAgIC0tRnUnaXZs YXwgIENvcHktd29yZCB8IEFzIGJyaXZsYSwgYnV0IGRvIG5vdCBtZWV0IGRlZmluaW5nIGNyaXRl cmlhIG9mIGdpc211IG9yIGx1anZvLCBleDogJydhbmdlbGknJyAgfCAgIENvdmVycyB1bmlxdWUg Y29uY2VwdHMgbGlrZSBuYW1lcyBvZiBwbGFjZXMgb3Igb3JnYW5pc21zLgoKICAgQ21ldmxhfCAg TmFtZS13b3JkIHwgICBCZWdpbm5pbmcgYW5kIGVuZGluZyB3aXRoIHBhdXNlIChmdWxsIHN0b3Ap LiBMYXN0IHNvdW5kL2xldHRlciBpcyBhIGNvbnNvbmFudC58ICAgQWx3YXlzIGFjdHMgYXMgYSBu YW1lIG9yIGFzIHRoZSBjb250ZW50IG9mIGEgcXVvdGUuCgogICBDbWF2b3wgICBHcmFtbWFyLXdv cmQuIEZyb20g4oCcY21hdmxh4oCdLCBtZWFuaW5nIOKAnHNtYWxsIHdvcmTigJ18IE9uZSBjb25z b25hbnQgb3IgemVybywgYWx3YXlzIGF0IHRoZSBiZWdpbm5pbmcuIEVuZHMgaW4gYSB2b3dlbC4g IHwgICBHcmFtbWF0aWNhbCBmdW5jdGlvbnMuIFZhcmllcwoKICAgV29yZC1mcmFnbWVudHM6fCAg IHwgICB8CgogICBSYWZzaXwgICBBZmZpeHwgIENDViwgQ1ZDLCBDVidWLCAtQ1ZDQ1YsIC1DQ1ZD ViwgQ1ZDQ3ktIG9yIENDVkN5LSAgfCBOb3QgYWN0dWFsIHdvcmRzLCBidXQgY2FuIGJlIHN0cmlu Z2VkIHRvZ2V0aGVyIHRvIGZvcm0gbHVqdm8gfHwKCgoKCgpfXycnY21ldmxhJydfXyBhcmUgdmVy eSBlYXN5IHRvIGlkZW50aWZ5IGJlY2F1c2UgdGhleSBiZWdpbiBhbmQgZW5kIHdpdGggYSBwYXVz ZSwgc2lnbmFsZWQgYnkgYSBmdWxsIHN0b3AgaW4gd3JpdGluZywgYW5kIHRoZSBsYXN0IGxldHRl ciBpcyBhIGNvbnNvbmFudC4gY21ldmxhIGNhbid0IGhhdmUgYW55IG90aGVyIGZ1bmN0aW9uIGJl c2lkZXMgYWN0aW5nIGFzIGEgbmFtZS4gT24gdGhlIG90aGVyIGhhbmQsIG5hbWVzIHdoaWNoIGFy ZSBub3Qgc2VsYnJpIGNhbm5vdCBhcHBlYXIgaW4gTG9qYmFuIHdpdGhvdXQgdGhlbSBiZWluZyBj bWV2bGEsIG9yIGVuY2FzZWQgYnkgY2VydGFpbiBxdW90ZSB3b3Jkcy4gT25lIGNhbiBtYXJrIHN0 cmVzcyBpbiB0aGUgbmFtZXMgYnkgY2FwaXRhbGl6aW5nIHRoZSBsZXR0ZXJzIHdoaWNoIGFyZSBz dHJlc3NlZC4gRXhhbXBsZXMgb2YgY21ldmxhIGFyZTogJycuaW9oQU4uJycgKEpvaGFuLCBoIGlz IGNhcGl0YWwgYXBvc3Ryb3BoZSksICcnLm1hdC4nJyAoTWF0dCkgYW5kICcnLmx1dGNpTUlOLicn IChMdWktQ2hpIE1pbikuIE5hbWVzIHdoaWNoIGRvIG5vdCBlbmQgaW4gY29uc29uYW50cyBoYXZl IHRvIGhhdmUgb25lIGFkZGVkOiAnJy5pdnluLicnIChFdmUpLCBvciAocHJvYmFibHkgYmV0dGVy IGluIHRoaXMgY2FzZSkgcmVtb3ZlZDogJycuaXYuJycKCgoKX18nJ2JyaXZsYScnX18gYXJlIGNh bGxlZCDigJxicmlkaS13b3Jkc+KAnSBiZWNhdXNlIHRoZXkgYnkgZGVmYXVsdCBhcmUgc2VsYnJp LCBhbmQgdGhlcmVmb3JlIGFsbW9zdCBhbGwgTG9qYmFuIHdvcmRzIHdpdGggYSBwbGFjZSBzdHJ1 Y3R1cmUgYXJlIGJyaXZsYS4gVGhpcyBoYXMgYWxzbyBnaXZlbiB0aGVtIHRoZSBFbmdsaXNoIG5p Y2tuYW1lIOKAnGNvbnRlbnQtd29yZHPigJ0uIEl0J3MgbmVhcmx5IGltcG9zc2libGUgdG8gc2F5 IGFueXRoaW5nIHVzZWZ1bCB3aXRob3V0IGJyaXZsYSwgYW5kIGFsbW9zdCBhbGwgd29yZHMgZm9y IGNvbmNlcHRzIG91dHNpZGUgbG9qYmFuIGdyYW1tYXIgKGFuZCBldmVuIG1vc3Qgb2YgdGhlIHdv cmRzIGZvciB0aGluZ3MgaW4gdGhlIGxhbmd1YWdlKSBhcmUgY2FwdHVyZWQgYnkgYnJpdmxhLiBB cyBzaG93biBpbiB0aGUgdGFibGUsIGJyaXZsYSBoYXMgdGhyZWUgc3ViY2F0ZWdvcmllczoKCl9f JydnaXNtdScnX18gYXJlIHRoZSByb290IHdvcmRzIG9mIHRoZSBsYW5ndWFnZS4gT25seSBhYm91 dCAxNDUwIGV4aXN0cywgYW5kIHZlcnkgZmV3IG5ldyBvbmVzIGFyZSBhZGRlZC4gVGhleSBjb3Zl ciB0aGUgbW9zdCBiYXNpYyBjb25jZXB0cyBsaWtlIOKAnGNpcmNsZeKAnSwg4oCcZnJpZW5k4oCd LCDigJx0cmVl4oCdIGFuZCDigJxkcmVhbeKAnS4gRXhhbXBsZXMgaW5jbHVkZSAnJ3pkYW5pJycs ICcncGVseHUnJyBhbmQgJydkdW5kYScnCgpfXycnbHVqdm8nJ19fIGFyZSBtYWRlIGJ5IGNvbWJp bmluZyByYWZzaSAoc2VlIHVuZGVyIHJhZnNpKSwgcmVzcHJlc2VudGluZyBnaXNtdS4gQnkgY29t YmluaW5nIHJhZnNpLCBvbmUgbmFycm93cyBkb3duIHRoZSBtZWFuaW5nIG9mIHRoZSB3b3JkLiBs dWp2byBhcmUgbWFkZSBieSBhbiBlbGFib3JhdGUgYWxnb3JpdGhtLCBzbyBtYWtpbmcgdmFsaWQg bHVqdm8gb24gdGhlIGZseSBpcyBuZWFyIGltcG9zc2libGUsIHdpdGggZmV3IGV4Y2VwdGlvbnMg bGlrZSAnJ3NlbHBhJ2knJywgZnJvbSAnJ3NlIHByYW1pJycsIHdoaWNoIGNhbiBvbmx5IGhhdmUg b25lIGRlZmluaXRpb24uIEluc3RlYWQsIGx1anZvIGFyZSBtYWRlIG9uY2UsIGl0cyBwbGFjZSBz dHJ1Y3R1cmUgZGVmaW5lZCwgYW5kIHRoZW4gdGhhdCBkZWZpbml0aW9uIGlzIG1hZGUgb2ZmaWNp YWwgYnkgdGhlIGRpY3Rpb25hcnkuIEV4YW1wbGVzIGluY2x1ZGUgYnJpdmxhIChicmlkaS13b3Jk KSwgJydjaW5qaWtjYScnIChzZXh1YWwtc29jaWFsaXppbmcgPSBmbGlydGluZykgYW5kICcnY2Fr Y2lua2knJyAoc2hlbGwtaW5zZWN0ID0gYmVldGxlKS4KCl9fJydmdSdpdmxhJydfXyBhcmUgbWFk ZSBieSBtYWtpbmcgdXAgd29yZHMgd2hpY2ggZml0IHRoZSBkZWZpbml0aW9uIGZvciBicml2bGEs IGJ1dCBub3QgZm9yIGx1anZvIG9yIGdpc211LiBUaGV5IHRlbmQgdG8gY292ZXIgY29uY2VwdHMg d2hpY2ggaXQncyBoYXJkIHRvIGNvdmVyIGJ5IGx1anZvLCBmb3IgaW5zdGFuY2UgbmFtZXMgb2Yg c3BlY2llcywgbmF0aW9ucyBvciB2ZXJ5IGN1bHR1cmFsIHNwZWNpZmljIGNvbmNlcHRzLiBFeGFt cGxlcyBpbmNsdWRlICcnZ3VnZHJnb2d1cmlvJycgKEtvcmVhKSAnJ2NpZGpycGl0c2EnJyAocGl6 emEpIG9yICcnYW5nZWxpJycgKGFuZ2VsKS4KCgoKX18nJ2NtYXZvJydfXyBhcmUgc21hbGwgd29y ZHMgd2l0aCBvbmUgb3IgemVybyBjb25zb25hbnRzLiBUaGV5IHRlbmQgdG8gbm90IHNpZ25pZnkg YW55dGhpbmcgaW4gdGhlIGV4dGVyaW9yIHdvcmxkLCBidXQgdG8gaGF2ZSBvbmx5IGdyYW1tYXRp Y2FsIGZ1bmN0aW9uLiBFeGNlcHRpb25zIG9jY3VyLCBhbmQgaXQncyBkZWJhdGFibGUgaG93IG11 Y2ggYXR0aXR1ZGluYWxzIGV4aXN0cyBmb3IgdGhlaXIgZ3JhbW1hdGljYWwgZnVuY3Rpb24uIEFu b3RoZXIgd2VpcmQgZXhhbXBsZSBhcmUgdGhlIHdvcmRzIG9mIHRoZSBjbGFzcyBHT2hBLCB3aGlj aCBhY3QgYXMgYnJpdmxhLiBJdCBpcyB2YWxpZCB0byB0eXBlIHNldmVyYWwgY21hdm8gaW4gYSBy b3cgYXMgb25lIHdvcmQsIGJ1dCBpbiB0aGVzZSBsZXNzb25zLCB0aGF0IHdvbid0IGJlIGRvbmUu IEJ5IGdyb3VwaW5nIGNlcnRhaW4gY21hdm8gaW4gZnVuY3Rpb25hbCB1bml0cywgdGhvdWdoLCBp dCBpcyBzb21ldGltZXMgZWFzaWVyIHRvIHJlYWQuIFRodXMsICcnLnVpcHV6dXZ1a3VtaSBjaXRr YScnIGlzIHZhbGlkLCBhbmQgaXMgcGFyc2VkIGFuZCB1bmRlcnN0b29kIGFzICcnLnVpIHB1IHp1 IHZ1IGt1IG1pIGNpdGthJycuIExpa2Ugb3RoZXIgTG9qYmFuIHdvcmRzLCBvbmUgc2hvdWxkIChi dXQgbmVlZCBub3QgYWx3YXlzKSBwbGFjZSBhIGZ1bGwgc3RvcCBiZWZvcmUgYW55IHdvcmRzIGJl Z2lubmluZyB3aXRoIGEgdm93ZWwuCgpjbWF2byBvZiB0aGUgZm9ybSB4VlYsIENWJ1ZWIG9yIFYn VlYgYXJlIGV4cGVyaW1lbnRhbCwgYW5kIGFyZSB3b3JkcyB3aGljaCBhcmUgbm90IGluIHRoZSBm b3JtYWwgZ3JhbW1hciwgYnV0IHdoaWNoIGhhdmUgYmVlbiBhZGRlZCBieSBMb2piYW4gdXNlcnMg dG8gcmVzcG9uZCB0byBhIGNlcnRhaW4gbmVlZC4KCgoKX18nJ3JhZnNpJydfXyBhcmUgbm90IExv amJhbiB3b3JkcywgYW5kIGNhbiBuZXZlciBhcHBlYXIgYWxvbmUuIEhvd2V2ZXIsIHNldmVyYWwg KG1vcmUgdGhhbiBvbmUpIHJhZnNpIGNvbWJpbmUgdG8gZm9ybSBsdWp2by4gVGhlc2UgbXVzdCBz dGlsbCBsaXZlIHVwIHRvIHRoZSBicml2bGEtZGVmaW5pdGlvbiwgZm9yIGluc3RhbmNlICcnbG9q YmFuJycgaXMgaW52YWxpZCBiZWNhdXNlIGl0IGVuZHMgaW4gYSBjb25zb25hbnQgKHdoaWNoIG1h a2VzIGl0IGEgY21ldmxhKSwgYW5kICcnY2knZWtlaScnIGlzIGludmFsaWQgYmVjYXVzZSBpdCBk b2VzIG5vdCBjb250YWluIGEgY29uc29uYW50IGNsdXN0ZXIsIGFuZCBpcyB0aHVzIHJlYWQgYXMg dHdvIGNtYXZvIHdyaXR0ZW4gYXMgb25lIHdvcmQuIE9mdGVuLCBhIDMtNCBsZXR0ZXIgc3RyaW5n IGlzIGJvdGggYSBjbWF2byBhbmQgYSByYWZzaSwgbGlrZSAnJ3p1J2UnJywgd2hpY2ggaXMgYm90 aCB0aGUgQkFJIGFuZCB0aGUgcmFmc2kgZm9yICcnenVrdGUnJy4gTm90ZSB0aGF0IHRoZXJlIGlz IG5vd2hlcmUgdGhhdCBib3RoIGEgY21hdm8gYW5kIGEgcmFmc2kgd291bGQgYmUgZ3JhbW1hdGlj YWwsIHNvIHRoZXNlIGFyZSBub3QgY29uc2lkZXJlZCBob21vcGhvbmVzLiBBbGwgZ2lzbXUgY2Fu IGRvdWJsZSBhcyByYWZzaSwgaWYgdGhleSBhcmUgcHJlZml4ZWQgd2l0aCBhbm90aGVyIHJhZnNp LiBUaGUgZmlyc3QgZm91ciBsZXR0ZXIgb2YgYSBnaXNtdSBzdWZmaXhlZCB3aXRoIGFuICJ5IiBj YW4gYWxzbyBhY3QgYXMgYSByYWZzaSwgaWYgdGhleSBhcmUgc3VmZml4ZWQgd2l0aCBhbm90aGVy IHJhZnNpLiBUaGUgdm93ZWwgInkiIGNhbiBvbmx5IGFwcGVhciBpbiBsdWp2byBvciBjbWV2bGEu IFZhbGlkIHJhZnNpIGxldHRlciBjb21iaW5hdGlvbnMgYXJlOiBDVlYsIENWJ1YsIENDViwgQ1ZD Q3ktIENDVkN5LSwgLUNWQ0NWIGFuZCAtQ0NWQ1YuCgoKClVzaW5nIHdoYXQgeW91IGtub3cgbm93 LCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gYW5zd2VyIHRoZSB0ZXN0IGkgdGh1cyBwcmVzZW50OgoK Q2F0ZWdvcml6ZSBlYWNoIG9mIHRoZSBmb2xsb3dpbmcgd29yZHMgYXMgY21ldmxhIChDKSwgZ2lz bXUgKGcpLCBsdWp2byAobCksICcnZnUnaXZsYScnIChmKSBvciBjbWF2byAoYyk6CgpBICkgamFp ICAgICAgICBHICkgbXVtYmwKCkIgKSAuaXJjaSAgICAgICAgSCApIC5pJ2kKCkMgKSBib3N0dSAg ICAgICAgSSApIGN1CgpEICkgeGVsbWFuICAgICAgICBKICkgcGxhanZhCgpFICkgcG8nZSAgICAg ICAgSyApIGRhbnNla2UKCkYgKSBkamlza3UgICAgICAgIEwgKSAuZXJ0c2EKCgoKQW5zd2VyOiB+ fmdyZXksZ3JleTphLWMsIGItZiwgYy1nLCBkLUMsIGUtYywgZi1sLCBnLUMsIGgtYywgaS1jLCBq LWwsIGstZiwgbC1mLiBJIGxlZnQgb3V0IHRoZSBmdWxsIHN0b3BzIGJlZm9yZSBhbmQgYWZ0ZXIg bmFtZXMgc28gaXQgd291bGRuJ3QgYmUgdG9vIGVhc3kuCgpOb3RlOiBzb21lIG9mIHRoZXNlIHdv cmRzLCBsaWtlICcnYm9zdHUnJyBkbyBub3QgZXhpc3QgaW4gdGhlIGRpY3Rpb25hcnksIGJ1dCB0 aGlzIGlzIGlycmVsZXZhbnQuIFRoZSBtb3JwaG9sb2d5IHN0aWxsIG1ha2VzIGl0IGEgZ2lzbXUs IHNvIGl0J3MganVzdCBhbiB1bmRlZmluZWQgZ2lzbXUuIFNpbWlsYXJseSB3aXRoICcnLmVydHNh Jyd+fgoKCgoKCiEhTG9qYmFuIExlc3NvbnMgLSBMZXNzb24gZm91cnRlZW4gKHRoZSBMb2piYW4g c3VtdGkgMTogTEUgYW5kIExBKQoKSWYgeW91IGhhdmUgcmVhZCBhbmQgdW5kZXJzdG9vZCB0aGUg Y29udGVudCBvZiBhbGwgdGhlIGxlc3NvbnMgdW50aWwgbm93LCB5b3UgaGF2ZSBhbWFzc2VkIGEg bGFyZ2UgZW5vdWdoIGtub3dsZWRnZSBvZiBMb2piYW4gc28gdGhhdCBpdCBkb2Vzbid0IG1hdHRl ciBpbiB3aGljaCBvcmRlciB5b3UgbGVhcm4gdGhlIHJlc3QuIEFzIGEgcmVzdWx0LCB0aGUgb3Jk ZXIgb2YgdGhlIG5leHQgbGVzc29ucyB3aWxsIGJlIGEgbWl4dHVyZSBvZiBzb3J0ZWQgYnkgaW5j cmVhc2luZyBkaWZmaWN1bHR5IGFuZCBzb3J0ZWQgYnkgaW1wb3J0YW5jZSBpbiBvcmRpbmFyeSBM b2piYW4gY29udmVyc2F0aW9uLgoKCgpPbmUgb2YgdGhlIGJpZ2dlc3QgY29uc3RyYWlucyBvbiB5 b3VyIHNwZWFrIG5vdyBpcyB5b3VyIGxpbWl0ZWQga25vd2xlZGdlIG9uIGhvdyB0byBtYWtlIHN1 bXRpLiBTbyBmYXIsIHlvdSBvbmx5IGtub3cgJyd0aScnIGFuZCAnJ2xvIFNFTEJSSScnLCB3aGlj aCBkb2Vzbid0IHRha2UgeW91IGZhciBjb25zaWRlcmluZyBob3cgaW1wb3J0YW50IHN1bXRpIGFy ZSBpbiBMb2piYW4uIFRoaXMgbGVzc29uIGFzIHdlbGwgYXMgdGhlIGZvbGxvd2luZyB0d28gd2ls bCBiZSBhYm91dCB0aGUgTG9qYmFuIHN1bXRpLiBGb3Igbm93LCB3ZSBmb2N1cyBvbiB0aGUgZGVz Y3JpcHRpdmUtbGlrZSBzdW10aSwgdGhlIG9uZXMgbWFkZSB3aXRoIGFydGljbGVzIGxpa2UgJyds bycnCgpBcnRpY2xlcyBhcmUgaW4gbG9qYmFuIGNhbGxlZCAnJ2dhZHJpJycsIGFuZCBhbGwgdGhl IG9uZXMgZGlzY3Vzc2VkIGluIHRoaXMgbGVzc29uIGFyZSB0ZXJtaW5hdGVkIGJ5ICcna3UnJywg ZXhjZXB0IHRoZSBjb21iaW5hdGlvbnMgJydsYSBDTUVWTEEnJywgJydsYWkgQ01FVkxBJycgYW5k ICcnbGEnaSBDTUVWTEEnJy4gV2Ugd2lsbCBiZWdpbiBieSBkZXNjcmliaW5nIHRocmVlIHNpbXBs ZSBraW5kcyBvZiBkZXNjcmlwdGl2ZSBzdW10aSwgYW5kIHRoZW4gaW1tZWRpYXRlbHkgZmluZCB0 aGF0IHRoZXkgYXJlIG5vdCBzbyBzaW1wbGUgYWZ0ZXIgYWxsOgoKX18nJ2xvJydfXyAtIGdhZHJp OiBHZW5lcmljIHZlcmlkaWNhbCDigJxjb252ZXJ0IHNlbGJyaSB0byBzdW10aeKAnS4gUmVzdWx0 IGlzIHZhZ3VlIHdpdGggcmVnYXJkIHRvIGluZGl2aWR1YWxpdHkvbWFzcy1uZXNzLgoKX18nJ2xl JydfXyAtIGdhZHJpOiBHZW5lcmljIGRlc2NyaXB0aXZlIOKAnGNvbnZlcnQgc2VsYnJpIHRvIHN1 bXRp4oCdLiBSZXN1bHQgaXMgdmFndWUgd2l0aCByZWdhcmQgdG8gaW5kaXZpZHVhbGl0eS9tYXNz LW5lc3MuCgpfXycnbGEnJ19fIC0gZ2Fkcmk6IE5hbWluZyBhcnRpY2xlOiBDb252ZW50aW9uYWws IOKAnGNvbnZlcnQgc2VsYnJpIG9yIGNtZXZsYSB0byBzdW10aeKAnS4gVHJlYXQgcmVzdWx0IGFz IGluZGl2aWR1YWwocykuCgoKCllvdSBhcmUgYWxyZWFkeSBmYW1pbGlhciB3aXRoICcnbG8nJyBh bmQgd2hhdCBpdCBkb2VzLiBCdXQgd2hhdCBkb2VzIGl0IG1lYW4sIOKAnHZlcmlkaWNhbOKAnSBh bmQg4oCcdmFndWUgd2l0aCByZWdhcmQgdG8gaW5kaXZpZHVhbGl0eS9tYXNzLW5lc3PigJ0/IFRo ZSBsYXR0ZXIgYWJvdXQgaW5kaXZpZHVhbHMgYW5kIG1hc3NlcywgSSdsbCBjb21lIGJhY2sgdG8g bGF0ZXIuIEZvciBub3csIOKAnHZlcmlkaWNhbOKAnSBpbiB0aGlzIGNvbnRleHQgbWVhbnMgdGhh dCBpbiBvcmRlciBmb3IgYSB0aGluZyB0byBxdWFsaWZ5IGJlZ2luIGxhYmVsbGVkIGFzICcnbG8g a2xhbWEnJywgaXQgaGFzIHRvIGFjdHVhbGx5ICcna2xhbWEnJy4gVGh1cywgdmVyaWRpY2FsIGdh ZHJpIG1ha2VzIGEgY2xhaW0gd2hpY2ggbWF5IGJlIHRydWUgb3IgZmFsc2UgLSB0aGF0IHRoZSBv YmplY3QocykgaW4gcXVlc3Rpb24gYXJlIGFjdHVhbGx5IHRoZSB4MSBvZiB0aGUgc2VsYnJpIGFm dGVyICcnbG8nJy4gCgoKClRoaXMgbWF5IGJlIGNvbnRyYXN0ZWQgd2l0aCAnJ2xlJycsIHdoaWNo IGlzIGRlc2NyaXB0aXZlLCBhbmQgdGh1cyBub3QgdmVyaWRpY2FsLiBTYXlpbmcgJydsZSBnZXJr dScnIHNheXMgdGhhdCB5b3UgaGF2ZSBvbmUgb3IgbW9yZSBzcGVjaWZpYyBvYmplY3RzIGluIG1p bmQsIGFuZCB5b3UgdXNlIHRoZSBzZWxicmkgJydnZXJrdScnIHRvIGRlc2NyaWJlIGl0LCBzbyB0 aGF0IHRoZSBsaXN0ZW5lciBtYXkgaWRlbnRpZnkgdGhvc2Ugc3BlY2lmaWMgb2JqZWN0cy4gVGhp cyBtZWFucyB0aGF0ICcnbGUnJyBoYXZlcyB0d28gaW1wb3J0YW50IGRpZmZlcmVuY2VzIGZyb20g JydsbycnOiBGaXJzdGx5LCBpdCBjYW5ub3QgcmVmZXIgdG8gb2JqZWN0cyBpbiBnZW5lcmFsLCBi dXQgYWx3YXlzIHJlZmVycyB0byBzcGVjaWZpYyBvYmplY3RzLiBTZWNvbmRseSwgd2hpbGUgJyds byBnZXJrdScnIGRlZmluaXRlbHkgaXMgb25lIG9yIG1vcmUgZG9ncywgJydsZSBnZXJrdScnLCBi ZWNhdXNlIGl0J3Mgbm90IHZlcmlkaWNhbCwgY2FuIGJlIGFueXRoaW5nLCBhcyBsb25nIGFzIHRo ZSBzcGVha2VyIHRoaW5rcyB0aGUgZGVzY3JpcHRpb24gd2lsbCBoZWxwIGlkZW50aWZ5aW5nIHRo ZSBjb3JyZWN0IG9iamVjdHMuIFBlcmhhcHMgdGhlIHNwZWFrZXIgaXMgcmVmZXJyaW5nIHRvIGEg aHllbmEsIGJ1dCBhcmUgbm90IGZhbWlsaWFyIHdpdGggdGhlbSBhbmQgdGhpbmsg4oCcZG9n4oCd IGlzIGEgZ29vZCBlbm91Z2ggYXBwcm94aW1hdGlvbiB0byBiZSB1bmRlcnN0b29kLiBUaGlzIG5v bi12ZXJpZGljYWxpdHkgaXMgcGVyaGFwcyBvdmVyLWVtcGhhc2lzZWQgaW4gbW9zdCBtYW55IHRl eHRzOyBUaGUgYmVzdCB3YXkgdG8gZGVzY3JpYmUgYSBkb2cgaXMgdXN1YWxseSB0byBkZXNjcmli ZSBpdCBhcyBiZWluZyBhIGRvZywgYW5kIHVubGVzcyB0aGVyZSBpcyBhIGdvb2QgcmVhc29uIG5v dCB0bywgJydsZSBnZXJrdScnIGlzIHVzdWFsbHkgcHJlc3VtZWQgdG8gcmVmZXIgdG8gc29tZXRo aW5nIHdoaWNoIGlzIGFsc28gJydsbyBnZXJrdScnLgoKSW4gdHJhbnNsYXRpb24sICcnbG8gZ2Vy a3UnJyBpcyB1c3VhbGx5IOKAnGEgZG9n4oCdIG9yIOKAnHNvbWUgZG9nc+KAnSwgd2hpbGUgJyds ZSBnZXJrdScnIGlzIOKAnHRoZSBkb2figJ0gb3Ig4oCcdGhlIGRvZ3PigJ0uIEV2ZW4gYmV0dGVy IGZvciAnJ2xlIGdlcmt1Jycgd291bGQgYmUg4oCcdGhlIOKAnGRvZyhzKeKAnSDigJ0KCgoKTGFz dCBvZiB0aGUgdGhyZWUgYmFzaWMgJydnYWRyaScnLCB0aGVyZSBpcyAnJ2xhJycsIHRoZSBuYW1p bmcgJydnYWRyaScnLCB3aGljaCBJIGhhdmUgdW5jb252ZW50aW9uYWxseSBjYWxsZWQg4oCcY29u dmVudGlvbmFs4oCdLiBXaGF0IEkgbWVhbiBieSB0aGlzIGlzIHRoYXQgaXQncyBuZWl0aGVyIGRl c2NyaXB0aXZlIG5vciB2ZXJpZGljYWwsIHNpbmNlIGl0IHJlZmVycyB0byBhIHByb3BlciBuYW1l LiBJZiBJIGluIEVuZ2xpc2ggcmVmZXIgdG8gYSBwZXJzb24gY2FsbGVkIElubm9jZW50IGJ5IGhl ciBuYW1lLCBJIG5laXRoZXIgZGVzY3JpYmUgaGVyIGFzIGJlaW5nIGlubm9jZW50LCBub3IgZG8g SSBzdGF0ZSB0aGF0IHNoZSBpcy4gSSBvbmx5IHN0YXRlIHRoYXQgYnkgY29udmVudGlvbiwgdGhh dCBvYmplY3QgaXMgcmVmZXJyZWQgdG8gYnkgdGhhdCBzZWxicmkgb3IgY21ldmxhLiBOb3RlIHRo YXQgJydsYScnIGFuZCB0aGUgZ2FkcmkgZGVyaXZlZCBmcm9tIGl0IGNhbiBjb252ZXJ0IGNtZXZs YSB0byBzdW10aSB1bmxpa2UgYW55IG90aGVyICcnZ2FkcmknJy4gQWxzbzogQmUgY2F1dGlvdXM6 IE90aGVyIHRleHRzIGRvIG5vdCBtZW50aW9uIHRoYXQgbmFtZXMgY2FuIGJlIGZvcm1lZCBmcm9t IG9yZGluYXJ5IHNlbGJyaSB1c2luZyB0aGUgZ2FkcmkgJydsYScnLiBCdXQgdGhvc2UgaGVyZXRp Y3MgbXVzdCBidXJuOyBzZWxicmkgbmFtZXMgYXJlIGFzIGdvb2QgYXMgdGhleSBnZXQsIGFuZCBt YW55IGEgcHJvdWQgTG9qYmFuaXN0IGhhdmUgdGhlbS4KCicnbGEnJywgYXMgd2VsbCBhcyAnJ2xh aScnIGFuZCAnJ2xhJ2knJyBhcmUgYSBiaXQgZWNjZW50cmljLCBzaW5jZSB0aGV5IF9fYWx3YXlz X18gbWFya3MgdGhlIGJlZ2lubmluZyBvZiBhIG5hbWUuIFVubGlrZSB0aGUgb3RoZXIgZ2Fkcmks IGFueXRoaW5nIHRoYXQgY2FuIGJlIGdyYW1tYXRpY2FsbHkgcGxhY2VkIGFmdGVyICcnbGEnJyBh bmQgaXRzIHNpc3RlcnMgYXJlIGNvbnNpZGVyZWQgcGFydCBvZiB0aGUgbmFtZS4gRm9yIGV4YW1w bGUsICcnbGUgbWkgZ2Vya3UnJyBpcyAibXkgZG9nIiwgYnV0ICcnbGEgbWkgZ2Vya3UnJyBpcyBz b21lb25lIGNhbGxlZCAiTXkgRG9nIi4KCgoKVGhlc2UgdGhyZWUgYmFzaWMgJydnYWRyaScnIGNh biBiZSBleHBhbmRlZCB3aXRoIHRocmVlIG1vcmUsIHdoaWNoIGNvcnJlc3BvbmRzIHRvIHRoZSBw cmV2aW91czoKCgoKX18nJ2xvaScnX18gLSBnYWRyaTogdmVyaWRpY2FsIOKAnGNvbnZlcnQgc2Vs YnJpIHRvIHN1bXRp4oCdLiBUcmVhdCByZXN1bHQgYXMgbWFzcyhlcykuCgpfXycnbGVpJydfXyAt IGdhZHJpOiBEZXNjcmlwdGl2ZSDigJxjb252ZXJ0IHNlbGJyaSB0byBzdW10aeKAnS4gVHJlYXQg cmVzdWx0IGFzIGEgbWFzcyhlcykuCgpfXycnbGFpJydfXyAtIGdhZHJpOiBOYW1pbmcgYXJ0aWNs ZTogQ29udmVudGlvbmFsLCDigJxjb252ZXJ0IHNlbGJyaSBvciBjbWV2bGEgdG8gc3VtdGnigJ0u IFRyZWF0IHJlc3VsdCBhcyBtYXNzKGVzKS4KCgoKVGhlc2UgYXJlIHRoZSBzYW1lIGluIGFsbCBh c3BlY3RzIGV4Y2VwdCBmb3Igb25lOiBUaGV5IHRyZWF0IHRoZSBzdW10aSBleHBsaWNpdGx5IGFz IG1hc3Nlcy4gSWYgdGhlcmUgaXMgb25seSBvbmUgb2JqZWN0IGluIHF1ZXN0aW9uLCBhbiBpbmRp dmlkdWFsIGFuZCBhIG1hc3MgY29uc2lzdGluZyBvZiBvbmUgb2JqZWN0IGFyZSBlcXVpdmFsZW50 LiBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZXNlIHR3byBjb25jZXB0cyBsaWUgaW4gd2hpY2gg c2VsYnJpIGNhbiBiZSBhc2NyaWJlZCB0byBhIGdyb3VwIG9mIGluZGl2aWR1YWxzIHZlcnN1cyBh IG1hc3MuIEEgZ3JvdXAgb2YgaW5kaXZpZHVhbHMgY2FuIGJlIHNhaWQgdG8gZml0IGEgY2VydGFp biBzZWxicmkgaWYsIGFuZCBvbmx5IGlmLCBhbGwgbWVtYmVycyBvZiB0aGUgZ3JvdXAgZWFjaCBm aXQgdGhlIHNlbGJyaS4gSXQgaXMgY29ycmVjdCB0byBkZXNjcmliZSBhIHBhY2sgb2YgJydsbyBn ZXJrdScnLCBjb25zaWRlcmVkIGluZGl2aWR1YWxseSwgYXMgYmVpbmcgYmxhY2ssIGlmIGZvciBl YWNoIG9mIHRoZSBkb2dzIGl0J3MgdHJ1ZSB0aGF0IHRoZXkgYXJlIGJsYWNrLiBBIG1hc3MsIG9u IHRoZSBvdGhlciBoYW5kLCBmaXRzIG9ubHkgdGhvc2Ugc2VsYnJpIHdoaWNoIGl0cyBjb21wb25l bnRzIGZpdCBhcyBhIHdob2xlLCBhcyBhIHRlYW0sIHNvIHRvIHNwZWFrLiBIb3dldmVyLCBhbGwg dGhlIG1lbWJlcnMgb2YgYSBtYXNzICcnbG9pIGdlcmt1JycgbXVzdCBiZSBkb2dzIGluIG9yZGVy IGZvciAnJ2xvaScnIHRvIGJlIGFwcGxpY2FibGUuIFRoZSBub3Rpb24gb2YgIm1hc3NlcyIgYXJl IHNvcGhpc3RpY2F0ZWQsIGFuZCByZXF1aXJlcyBzb21lIGV4YW1wbGVzIHRvIGRlbW9uc3RyYXRl IHdoaWNoIHByb3BlcnRpZXMgaXQgY2FuIGhhdmU6CgpfXycnc3J1cmknJ19fOiDigJx4MSBmbGFu a3MvZW5jaXJjbGVzL2VuY2xvc2VzIHgyIGluIGxpbmUvcGxhbmUvZGlyZWN0aW9ucyB4M+KAnQoK JydsZWkgcHJlbnUgY3Ugc3J1cmkgbG8gemRhbmknJyAtIOKAnFRoZSBwZW9wbGUgc3Vycm91bmRl ZCB0aGUgaG9tZS7igJ0gaXMgcGxhdXNpYmxlLCBldmVuIHRob3VnaCwgeW8gbW9tYSBqb2tlcyBu b3QgY29uc2lkZXJlZCwgaXQncyBjb21wbGV0ZWx5IGltcGxhdXNpYmxlIHRoYXQgaXQgY291bGQg YmUgdHJ1ZSBmb3IgYW55IG9uZSBvZiB0aGUgbWVtYmVycyBhbG9uZS4gQW4gRW5nbGlzaCBhbmFs b2d5IGNvdWxkIGJlOiDigJxIdW1hbnMgZGVmZWF0ZWQgc21hbGxwb3ggaW4gdGhlIDIwdGggY2Vu dHVyeeKAnS4gU3VyZWx5IG5vIGh1bWFuIGRpZCBzbywgYnV0IHRoZSBtYXNzIG9mIGh1bWFucyBk aWQsIGFuZCB0aGF0IG1ha2VzIHRoZSBzZW50ZW5jZSB0cnVlIGluIEVuZ2xpc2gsIGFzIHdlbGwg YXMgaW4gTG9qYmFuIGlmIOKAnGh1bWFuc+KAnSBhcmUgYSBtYXNzLiBKdXN0IGxpa2UgdGhlIExv amJhbiBtYXNzLCB0aGUgRW5nbGlzaCBtYXNzIOKAnGh1bWFuc+KAnSBjYW4gb25seSByZWZlciB0 byBpbmRpdmlkdWFscyBlYWNoIG9mIHdoaWNoIGFyZSBodW1hbi4gQW5vdGhlciBleGFtcGxlOgoK X18nJ21pdnlzbGUnJ19fOiAieDEgaXMgYSBiaW9sb2dpY2FsIGNlbGwgb2Ygb3JnYW5pc20geDIi CgpfXycncmVtbmEnJ19fOiAieDEgaXMgYSBodW1hbiIKCicnbG9pIG1pdnlzbGUgY3UgcmVtbmEn JyAtICJTb21lIG1hc3NlcyBvZiBjZWxscyBhcmUgaHVtYW4iLiBBZ2Fpbiwgbm9uZSBvZiB0aGUg Y2VsbHMgYXJlIGh1bWFuLiBJbmRlZWQsIHRoZSBjZWxscyBoYXZlIHZlcnkgZmV3IGh1bWFuIHRy YWl0cywgYnV0IHRoZSBjZWxscyBjb25zaWRlcmVkIGFzIGEgd2hvbGUgbWFrZXMgdXAgYSBodW1h bi4KCgoKQSBtYXNzIG1hZGUgd2l0aCAnJ2xlaScnLCBzdWNoIGFzICcnbGVpIGdlcmt1JycsIHJl ZmVycyB0byBhIG1hc3MgZm9ybWVkIGJ5IGEgZ3JvdXAgb2Ygc3BlY2lmaWMgaW5kaXZpZHVhbHMs IGVhY2ggb2Ygd2hpY2ggdGhlIHNwZWFrZXIgcmVmZXJzIHRvIGFzICcnbGUgZ2Vya3UnJy4KCk1h c3MgbmFtZXMgYXMgZGVzY3JpYmVzIGJ5ICcnbGFpJycgYXJlIG9ubHkgYXBwcm9wcmlhdGUgaWYg dGhlIGdyb3VwIGFzIGEgd2hvbGUgaXMgbmFtZWQgc3VjaCwgYW5kIG5vdCBqdXN0IGlmIGFueSBv ZiB0aGUgbWVtYmVycyBhcmUuIEl0IGNhbiwgaG93ZXZlciBiZSB1c2VkIGlmIHRoZSBicmlkaSBp cyB0cnVlIGZvciBvbmx5IGEgZnJhY3Rpb24gb2YgdGhhdCBncm91cC4KCgoKSXQgaXMgaW1wb3J0 YW50IHRvIHJlbWVtYmVyIHRoYXQgJydsbycnIGFuZCAnJ2xlJycgY2FuIGJlIHVzZWQgdG8gZGVz Y3JpYmUgYm90aCBpbmRpdmlkdWFscyBhbmQgbWFzc2VzLiBMZXQncyBzYXkgYSBwYWNrIG9mIGRv Z3MsIGNvbnNpZGVyZWQgYXMgYSBtYXNzIG5lZWRzIGRlc2NyaXB0aW9uLiBJIG1pZ2h0IGRlc2Ny aWJlIGl0IGFzIGVpdGhlciAnJ2xvaSBnZXJrdScnIG9yICcnbG8gZ2Vya3UnJy4gSWYgSSB1c2Ug JydsbycnLCB0aGlzIGFsbG93cyBtZSB0byBjb3JyZWN0bHkgc3RhdGUgc29tZXRoaW5nIHdoaWNo IGxvb2tzIGxpa2UgYSBjb250cmFkaWN0aW9uLCBidXQgcmVhbGx5IGlzbid0OiAnJ2xvIGdlcmt1 IG5hIGdlcmt1JycgLSAiU29tZSBkb2dzIGFyZSBub3QgZG9ncyIuIFNpbmNlIGl0J3MgYmVpbmcg Y29uc2lkZXJlZCBhIG1hc3Mgb2YgZG9ncywgdGhlIG1hbnkgZG9ncyBjb25zaWRlcmVzIGFzIGEg d2hvbGUgaXMgbm90IGEgZG9nLCBidXQgcmF0aGVyIGEgcGFjayBvZiBkb2dzLgoKWW91IG1pZ2h0 IGhhdmUgbm90aWNlZCB0aGF0IHRoZXJlIGlzIG5vIHdvcmQgd2hpY2ggdW5hbWJpZ3VvdXNseSBj b252ZXJ0cyBzZWxicmkgdG8gaW5kaXZpZHVhbChzKS4gSW4gb3JkZXIgdG8gYmUgZXhwbGljaXQg YWJvdXQgaW5kaXZpZHVhbG5lc3MsIG9uZSBuZWVkcyAnJ2xvJycsICcnbGUnJyBvciAnJ2xhJycg d2l0aCBhbiBvdXRlciBxdWFudGlmaWVyLiBUaGUgc3ViamVjdCBvZiBxdWFudGlmaWVycyB3aWxs IGJlIGNvbnNpZGVyZWQgbGF0ZXIsIGluIGxlc3NvbiB0d2VudHktdHdvLiBXaGF0IGlzIHRoZSBy ZWFzb24gdGhhdCAnJ2xvJycgYW5kICcnbGUnJyB2YWd1ZSwgYW5kIG5vdCBleHBsaWNpdGx5IGlu ZGl2aWR1YWw/IEl0IGlzIGJlY2F1c2UgdGhlaXIgdmFndWVuZXNzIGVuYWJsZXMgdGhlbSB0byBi ZSB1c2VkIGluIGFueSBjb250ZXh0LCB3aXRob3V0IHRoZSBzcGVha2VyIGhhdmluZyB0byB0aGlu ayBhYm91dCB3aGV0aGVyIGlzIGJlaGF2ZXMgYXMgYSBtYXNzIG9yIGEgZ3JvdXAgb2YgaW5kaXZp ZHVhbHMuCgoKClRoaXJkIGluIHRoaXMgc2VyaWVzLCB0aGVyZSBhcmUgdGhyZWUgc2V0LWZvcm1p bmcgJydnYWRyaScnOgoKCgpfXycnbG8naScnX18gLSBnYWRyaTogdmVyaWRpY2FsIOKAnGNvbnZl cnQgc2VsYnJpIHRvIHN1bXRp4oCdLiBUcmVhdCByZXN1bHQgYXMgYSBzZXQuCgpfXycnbGUnaScn X18gLSBnYWRyaTogRGVzY3JpcHRpdmUg4oCcY29udmVydCBzZWxicmkgdG8gc3VtdGnigJ0uIFRy ZWF0IHJlc3VsdCBhcyBhIHNldC4KCl9fJydsYSdpJydfXyAtIGdhZHJpOiBOYW1pbmcgYXJ0aWNs ZTogQ29udmVudGlvbmFsLCDigJxjb252ZXJ0IHNlbGJyaSBvciBjbWV2bGEgdG8gc3VtdGnigJ0u IFRyZWF0IHJlc3VsdCBhcyBhIHNldC4KCgoKVW5saWtlIGdyb3VwcyBvZiBpbmRpdmlkdWFscyBv ciwgc29tZXRpbWVzLCBtYXNzZXMsIHNldHMgZG9lcyBub3QgdGFrZSBhbnkgb2YgdGhlIHByb3Bl cnRpZXMgZnJvbSB0aGUgb2JqZWN0cyBmcm9tIHdoaWNoIHRoZSBzZXQgaXMgZm9ybWVkLiBBIHNl dCBpcyBhIHB1cmVseSBtYXRoZW1hdGljYWwgb3IgbG9naWNhbCBjb25zdHJ1Y3QsIGFuZCBoYXMg cHJvcGVydGllcyBsaWtlIGNhcmRpbmFsaXR5LCBtZW1iZXJzaGlwIGFuZCBzZXQgaW5jbHVzaW9u LiBBZ2Fpbiwgbm90ZSB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgc2V0IG9mIHRoaW5ncywgYW5k IHRoZSB0aGluZ3Mgb2Ygd2hpY2ggdGhlIHNldCBpcyBmb3JtZWQ6CgpfXycndGlyeHUnJ19fIOKA nHgxIGlzIGEgdGlnZXIvbGVvcGFyZC9qYWd1YXIgb2Ygc3BlY2llcy9icmVlZCB4MiB3aXRoIGNv YXQgbWFya2luZ3MgeDPigJ0KCicnbG8naSB0aXJ4dSBjdSBjbWFsdScnIHNheXMgbm90aGluZyBh Ym91dCB3aGV0aGVyIGJpZyBjYXRzIGFyZSBzbWFsbCAod2hpY2ggaXMsIGJ5IHRoZSB3YXksIG9i dmlvdXNseSBmYWxzZSksIGJ1dCBpbnN0ZWFkIHNheSB0aGF0IHRoZSBzZXQgb2YgYmlnIGNhdHMg aXMgc21hbGw7IHRoYXQgaXMgLSB0aGVyZSBhcmUgZmV3IG9mIHRoZW0uCgoKCkxhc3RseSwgdGhl cmUgYXJlIHRoZSAob25seSB0d28pIGdlbmVyYWxpemluZyAnJ2dhZHJpJyc6CgpfXycnbG8nZScn X18gLSBnYWRyaTogdmVyaWRpY2FsIOKAnGNvbnZlcnQgc2VsYnJpIHRvIHN1bXRp4oCdLiBTdW10 aSByZWZlcnMgdG8gdGhlIGFyY2hldHlwZSBvZiAnJ2xvIHtzZWxicml9JycuCgpfXycnbGUnZScn X18gLSBnYWRyaTogRGVzY3JpcHRpdmUg4oCcY29udmVydCBzZWxicmkgdG8gc3VtdGnigJ0uIFN1 bXRpIHJlZmVycyB0byB0aGUgZGVzY3JpYmVkL3BlcmNlaXZlZCBhcmNoZXR5cGUgb2YgJydsZSB7 c2VsYnJpfScnLgoKT2Ygd2hpY2ggdGhlcmUgaXMgbm8gJydsYScnLWVxdWl2YWxlbnQuCgoKClNv LCB3aGF0IGlzIGFjdHVhbGx5IG1lYW50IGJ5IHRoZSBhcmNoZXR5cGU/IEZvciAnJ2xvJ2UgdGly eHUnJywgaXQgaXMgYW4gaWRlYWwsIGltYWdpbmVkIGJpZyBjYXQsIHdoaWNoIGhhcyBhbGwgdGhl IHByb3BlcnRpZXMgd2hpY2ggYmVzdCBleGVtcGxpZmllcyBiaWcgY2F0cy4gSXQgd291bGQgYmUg d3JvbmcgdG8gc2F5IHRoYXQgdGhpcyBpbmNsdWRlcyBoYXZpbmcgYSBzdHJpcGVkIGZ1ciwgc2lu Y2UgYSBiaWcgc3lzdGVtYXRpYyBzdWJncm91cCBvZiB0aGUgbWVtYmVycyBvZiB0aGUgc2V0IG9m IGJpZyBjYXRzIGRvIG5vdCBoYXZlIHN0cmlwZWQgZnVyLCB0aGUgbGVvcGFyZHMgYW5kIHRoZSBq YWd1YXJzLiBMaWtld2lzZSwgdGhlIHR5cGljYWwgaHVtYW4gZG9lcyBub3QgbGl2ZSBpbiBBc2lh IGV2ZW4gdGhvdWdoIGEgbG90IG9mIGh1bWFucyBkby4gSG93ZXZlciwgaWYgc3VmZmljaWVudGx5 IG1hbnkgaHVtYW5zIGhhdmUgYSB0cmFpdCwgZm9yIGluc3RhbmNlIGJlaW5nIGFibGUgdG8gc3Bl YWssIHdlIGNhbiBzYXk6CgpfXycna2FrbmUnJ19fOiDigJx4MSBpcyBjYXBhYmxlIG9mIGRvaW5n L2JlaW5nIHgyIHVuZGVyIGNpcmN1bXN0YW5jZSB4M+KAnQoKJydsbydlIHJlbW5hIGN1IGtha25l IGxvIG51IHRhdmxhJycgLSDigJxUaGUgdHlwaWNhbCBodW1hbiBiZWluZyBjYW4gc3BlYWvigJ0u CgoKCicnbGUnZScnIHRoZW4sIGlzIHRoZSBpZGVhbCBvYmplY3QgYXMgcGVyY2VpdmVkIG9yIGRl c2NyaWJlZCBieSB0aGUgc3BlYWtlci4gVGhpcyBuZWVkIG5vdCBiZSBmYWN0dWFsbHkgY29ycmVj dCwgYW5kIGlzIG9mdGVuIHRyYW5zbGF0ZWQgYXMgdGhlIOKAnHN0ZXJlb3R5cGXigJ0sIGV2ZW4g dGhvdWdoIHRoZSBFbmdsaXNoIHBocmFzZSBoYXZlIHNvbWUgdW5wbGVhc2FudCBuZWdhdGl2ZSBj b25ub3RhdGlvbnMsIHdoaWNoIHRoZSBMb2piYW4gZG9lcyBub3QuIEluIGZhY3QsIGV2ZXJ5b25l IGhhcyBhIHN0ZXJlb3R5cGljYWwgYXJjaGV0eXBpY2hhbCBpbWFnZSBvZiBhbnkgY2F0ZWdvcnku IEluIG90aGVyIHdvcmRzLCAnJ2xvJ2UgcmVtbmEnJyBpcyB0aGUgYXJjaGV0eXBlIHdoaWNoIGJl c3QgZXhlbXBsaWZpZXMgYWxsICcnbG8gcmVtbmEnJywgd2hpbGUgdGhlIGFyY2hldHlwZSAnJ2xl J2UgcmVtbmEnJyBiZXN0IGV4ZW1wbGlmaWVzIGFsbCAnJ2xlIHJlbW5hJycuCgoKClRoZSBlbGV2 ZW4gZ2FkcmkgY2FuIGJlIHNlZW4gaW4gdGhlIGRpYWdyYW0gYmVsb3cuCgp8fCB8R2VuZXJpY3xN YXNzZXN8U2V0c3xHZW5lcmFsaXppbmcKCnZlcmlkaWNhbHxsb3xsb2l8bG8naXxsbydlCgpEZXNj cmlwdGl2ZXxsZXxsZWl8bGUnaXxsZSdlCgpOYW1lfGxhfGxhaXxsYSdpfGRvZXMgbm90IGV4aXN0 fHwKCgoKTm90ZTogRWFybGllciwgdGhlcmUgd2FzIGEgd29yZCAnJ3hvJ2UnJyBmb3IgdGhlIGdl bmVyaWMgZ2FkcmkuIEhvd2V2ZXIsIHRoZSBydWxlcyBhbmQgZGVmaW5pdGlvbnMgZm9yIGdhZHJp IHdlcmUgY2hhbmdlZCBpbiBsYXRlIDIwMDQsIGFuZCB0aGUgY3VycmVudCBzZXQgb2YgcnVsZXMg b24gdGhpcyB0b3BpYywgbmlja2VkIOKAnHhvcmxv4oCdIGhhcyByZXBsYWNlZCB0aGUgb2xkIHdh eS4gTm93LCAnJ2xvJycgaXMgZ2VuZXJpYywgYW5kICcneG8nZScnIGlzIHVzZWQgYXMgYSBlbGxp cHRpY2FsIGRpZ2l0IChsZXNzb24gbmluZXRlZW4pLgoKCgoKCiEhTG9qYmFuIExlc3NvbnMgLSBM ZXNzb24gZmlmdGVlbiAodGhlIExvamJhbiBzdW10aSAyOiBLT2hBMywgS09oQTUgYW5kIEtPaEE2 KQoKU2VlIHdoYXQgaGFwcGVucyBpZiBJIHRyeSB0byB0cmFuc2xhdGUgdGhlIHNlbnRlbmNlOiDi gJxTdGVyZW90eXBpY2FsIHBlb3BsZSB3aG8gY2FuIHNwZWFrIExvamJhbiBzcGVhayB0byBlYWNo IG90aGVyIGFib3V0IHRoZSBsYW5ndWFnZXMgdGhleSBjYW4gc3BlYWvigJ06CgpfXycnYmFuZ3Un J19fIOKAnHgxIGlzIGEgbGFuZ3VhZ2UgdXNlZCBieSB4MiB0byBleHByZXNzIHgzIChhYnN0cmFj dGlvbinigJ0KCicnbGUnZSBwcmVudSBwb2kga2UnYSBrYWtuZSBsbyBudSB0YXZsYSBmbyBsYSAu bG9qYmFuLiBjdSB0YXZsYSBsZSdlIHByZW51IHBvaSBrZSdhIGtha25lIGxvIG51IHRhdmxhIGZv IGxhIC5sb2piYW4uIGxvIGJhbmd1IHBvaSBsbyBwcmVudSBwb2kga2UnYSB0YXZsYSBmbyBsYSAu bG9qYmFuLiBjdSBzZSBiYW5ndSBrZSdhJycKCgoKV2hhdCB3ZSBzZWUgaXMgdGhhdCB0aGUgTG9q YmFuIHZlcnNpb24gaXMgbXVjaCBsb25nZXIgdGhhbiB0aGUgRW5nbGlzaC4gVGhpcyBpcyBwcmlt YXJpbHkgYmVjYXVzZSB0aGUgZmlyc3QsIHJpZGljdWxvdXNseSBsb25nIHN1bXRpIGlzIGJlaW5n IHJlcGVhdGVkIHR3byBtb3JlIHRpbWVzIGluIHRoZSBMb2piYW4gdGV4dCwgd2hpbGUgdGhlIEVu Z2xpc2ggY2FuIHJlZmVyIHRvIGl0IGJ5IOKAnGVhY2ggb3RoZXLigJ0gYW5kIOKAnHRoZXnigJ0g LSBtdWNoIG1vcmUgZWZmaWNpZW50bHkuIFdvdWxkbid0IGl0IGJlIGNsZXZlciBpZiBMb2piYW4g c29tZWhvdyBoYWQgbWVjaGFuaXNtcyBmb3IgZG9pbmcgdGhlIHNhbWU/CgoKCkl0IHR1cm5zIG91 dCBpdCBkb2VzLCB3aGF0IGEgc3VycHJpc2UhIExvamJhbiBoYXMgYSByYW5nZSBvZiB3b3JkcyBj YWxsZWQgJydzdW1rYSdpJycgbWVhbmluZyDigJxzdW10aS1yZXByZXNlbnRhdGl2ZXPigJ0uIElu IEVuZ2xpc2gsIHdlIHJlZmVyIHRvIHRoZW0gYXMgcHJvLXN1bXRpLCBiZWNhdXNlIHRoZXkgYXJl IGVzc2VudGlhbGx5IHRoZSBzYW1lIGFzIHRoZSBFbmdsaXNoIHByb25vdW5zLCBidXQgd2l0aCBz dW10aSBpbnN0ZWFkIG9mIG5vdW5zLiBJbiBmYWN0LCB5b3UgYWxyZWFkeSBrbm93ICcndGknJywg JydkbycnIGFuZCAnJ21pJycsIGJ1dCB0aGVyZSBhcmUgbWFueSBtb3JlLCBzbyBsZXQncyBnZXQg bGVhcm5pbmcuIEZpcnN0LCB3ZSB3YW50IHRvIHB1dCBpdCBpbnRvIHN5c3RlbS4gV2UgY2FuIGJl Z2luIHdpdGggdGhlIG9uZXMgbW9zdCBmYW1pbGlhciB0byBFbmdsaXNoLCBhbmQgd2hhdCB5b3Un dmUgYWxyZWFkeSBsZWFybmVkOgoKCgpfXycndGknJ19fIC0gc3Vta2EnaTog4oCcaW1tZWRpYXRl IOKAmGl0JzogcmVwcmVzZW50cyBhIHN1bXRpIHBoeXNpY2FsbHkgbmVhciB0aGUgc3BlYWtlcuKA nQoKX18nJ3RhJydfXyAtIHN1bWthJ2k6IOKAnG5lYXJieSDigJhpdCc6IHJlcHJlc2VudHMgYSBz dW10aSBzb21lIHBoeXNpY2FsIGRpc3RhbmNlIGZyb20gdGhlIHNwZWFrZXIgT1IgY2xvc2UgdG8g dGhlIGxpc3RlbmVy4oCdCgpfXycndHUnJ19fIC0gc3Vta2EnaTog4oCcZGlzdGFudCDigJhpdCc6 IHJlcHJlc2VudHMgYSBzdW10aSBwaHlzaWNhbGx5IGZhciBmcm9tIHRoZSBzcGVha2VyIGFuZCB0 aGUgbGlzdGVuZXIu4oCdCgoKCllvdSBjYW4gYWdhaW4gcmVjb2duaXplIHRoZSDigJxpLCBhLCB1 4oCdLXNlcXVlbmNlIHdoaWNoIHBvcHMgdXAgb3ZlciBhbmQgb3Zlci4gU29tZSB0aGluZ3MgbWln aHQgdGFrZSBzb21lIGNsZWFyaW5nIHVwLCB0aG91Z2guIEZpcnN0bHksIHRoZXNlIHN1bXRpIGNh biByZXByZXNlbnQgYW55dGhpbmcgd2hpY2ggY2FuIGJlIHNhaWQgdG8gb2NjdXB5IGEgcGh5c2lj YWwgc3BhY2UuIE9iamVjdHMsIGNlcnRhaW5seS4gSWRlYXMsIGNlcnRhaW5seSBub3QuIEV2ZW50 cyBhcmUgYWNjZXB0ZWQsIGJ1dCBvbmx5IHRvIHRoZSBleHRlbnQgdGhleSBhcmUgcmVzdHJpY3Rl ZCB0byBhIHNwZWNpZmljIHBsYWNlIC0gdGhlIEphc21pbiBSZXZvbHV0aW9uIGNhbm5vdCBiZSBw b2ludGVkIGF0LCBidXQgc29tZSBiYXItZmlnaHQgb3IgYSBraXNzIG1pZ2h0LiBTZWNvbmRseSwg bm90ZSB0aGF0IHRoZSBkaXN0YW5jZSBpcyByZWxhdGl2ZSB0byBkaWZmZXJlbnQgdGhpbmdzIGZv ciB0aGUgZGlmZmVyZW50IHdvcmRzOiAnJ3R1Jycgb25seSBhcHBsaWVzIGlmIGl0J3MgZGlzdGFu dCBmcm9tIGJvdGggdGhlIHNwZWFrZXIgYW5kIHRoZSBsaXN0ZW5lci4gSW4gY2FzZXMgd2hlcmUg dGhlIHNwZWFrZXIgYW5kIGxpc3RlbmVyIGlzIGZhciBhcGFydCBhbmQgdGhlIGxpc3RlbmVyIGNh bm5vdCBzZWUgdGhlIHNwZWFrZXIgdGFsa2luZywgJyd0YScnIHJlZmVycyB0byBzb21ldGhpbmcg Y2xvc2UgdG8gdGhlIGxpc3RlbmVyLiBUaGlyZGx5LCBpdCdzIGFsbCByZWxhdGl2ZSBhbmQgY29u dGV4dCBkZXBlbmRlbnQuIFRoZXNlIHRocmVlIHdvcmRzIGFyZSBhbGwgcHJvYmxlbWF0aWMgaW4g d3JpdHRlbiB0ZXh0LCBmb3IgaW5zdGFuY2UsIGJlY2F1c2UgdGhlIHBvc2l0aW9uIG9mIHRoZSBz cGVha2VyIGFuZCBsaXN0ZW5lciBpcyB1bmtub3duIHRvIGVhY2ggb3RoZXIsIGFuZCBjaGFuZ2Vz IGFzIHRpbWUgZ29lcyBieS4gRnVydGhlcm1vcmUsIHRoZSBhdXRob3Igb2YgYSBib29rIGNhbm5v dCBwb2ludCB0byBhbiBvYmplY3QgYW5kIGV4cHJlc3MgdGhlIHBvaW50aW5nIGluIHRoZSBib29r LgoKCgpUaGVuIHRoZXJlIGlzIGEgc2VyaWVzIGNhbGxlZCBLT2hBMywgdG8gd2hpY2ggJydtaScn IGFuZCAnJ2RvJycgKGFuZCAnJ2tvJycsIGJ1dCBJIHdvbid0IHdyaXRlIHRoYXQgaGVyZSkgYmVs b25nczoKCl9fJydtaScnX18gLSBzdW1rYSdpOiBUaGUgc3BlYWtlcihzKS4KCl9fJydtaSdvJydf XyAtIHN1bWthJ2k6IFRoZSBtYXNzIG9mIHRoZSBzcGVha2VyKHMpIGFuZCB0aGUgbGlzdGVuZXIo cykgLgoKX18nJ21pJ2EnJ19fIC0gc3Vta2EnaTogVGhlIG1hc3Mgb2YgdGhlIHNwZWFrZXIocykg YW5kIG90aGVycy4KCl9fJydtYSdhJydfXyAtIHN1bWthJ2k6IFRoZSBtYXNzIG9mIHRoZSBzcGVh a2VyKHMpLCB0aGUgbGlzdGVuZXIocykgYW5kIG90aGVycy4KCl9fJydkbycnX18gLSBzdW1rYSdp OiBUaGUgbGlzdGVuZXIocykuCgpfXycnZG8nbycnX18gLSBzdW1rYSdpOiBUaGUgbWFzcyBvZiB0 aGUgbGlzdGVuZXIocykgYW5kIG90aGVycy4KCgoKVGhlc2Ugc2l4IHN1bWthJ2kgYXJlIG1vcmUg ZWFzaWx5IGdyYXNwZWQgaW4gdGhlIGJlbG93IFZlbm4gZGlhZ3JhbToKCgoKe2ltZyBmaWxlSWQ9 IjMiIHRodW1iPSJ5IiByZWw9ImJveFtnXSJ9CgpWZW5uIGRpYWdyYW0gb2YgS09oQTMgKCcna28n JyBleGNsdWRlZCkuICcnbGUgZHJhdGEnJyBpcyBub3QgYSBLT2hBMywgYnV0IG1lYW5zIOKAnHRo ZSBvdGhlcihzKeKAnQoKCgpJdCBpcyBwb3NzaWJsZSBmb3Igc2V2ZXJhbCBwZW9wbGUgdG8gYmUg 4oCcdGhlIHNwZWFrZXJz4oCdLCBpZiBvbmUgc3RhdGVtZW50IGlzIG1hZGUgb24gdGhlIGJlaGFs ZiBvZiBhbGwgb2YgdGhlbS4gVGhlcmVmb3JlLCB3aGlsZSDigJx3ZeKAnSBjYW4gYmUgdHJhbnNs YXRlZCBhcyBlaXRoZXIgJydtaScnLCAnJ21pJ28nJywgJydtaSdhJycgb3IgJydtYSdhJycsIHdo YXQgb25lIHF1aXRlIG9mdGVuIG1lYW5zIGlzIHJlYWxseSBqdXN0ICcnbWknJy4gQWxsIG9mIHRo ZXNlIHNpeCwgaWYgdGhleSByZWZlciB0byBtb3JlIHRoYW4gb25lIGluZGl2aWR1YWwsIHJlcHJl c2VudCBtYXNzZXMuIFdpdGhpbiBicmlkaS1sb2dpYywgdGhlIGJyaWRpICcnbWkgZ2xla2knJyBz YWlkIGJ5IHNwZWFrZXIgQSBpcyBleGFjdGx5IGVxdWl2YWxlbnQgdG8gJydkbyBnbGVraScnIHNh aWQgYnkgc3BlYWtlciBCIHRvIHNwZWFrZXIgQSwgYW5kIGFyZSBjb25zaWRlcmVkIHRoZSBzYW1l IGJyaWRpLiBXZSB3aWxsIGNvbWUgYmFjayB0byB0aGlzIGxhdGVyLCBpbiB0aGUgJydicmlrYSdp JycgKHByby1icmlkaSkgbGVzc29uLgoKCgpBbGwgb2YgdGhlc2UgJydzdW1rYSdpJycgYXJlIHZl cnkgY29udGVudC1zcGVjaWZpYywgYW5kIGNhbm5vdCBiZSB1c2VkLCBmb3IgaW5zdGFuY2UsIHRv IGhlbHAgdXMgd2l0aCB0aGUgc2VudGVuY2Ugd2hpY2ggdGhpcyBsZXNzb24gYmVnYW4gd2l0aC4g VGhlIGZvbGxvd2luZyBzZXJpZXMgY2FuIGluIHByaW5jaXBsZSBiZSB1c2VkIHRvIHJlZmVyIHRv IGFueSBzdW10aToKCl9fJydyaScnX18gLSBzdW1rYSdpOiDigJxMYXN0IHN1bXRpIG1lbnRpb25l ZOKAnQoKX18nJ3JhJydfXyAtIHN1bWthJ2k6IOKAnEEgcmVjZW50LCBidXQgbm90IHRoZSBsYXN0 IHN1bXRpIG1lbnRpb25lZOKAnQoKX18nJ3J1JydfXyAtIHN1bWthJ2k6IOKAnEEgc3VtdGkgbWVu dGlvbmVkIGxvbmcgYWdv4oCdCgoKClRoZXNlIHN1bXRpIHdpbGwgcmVmZXIgdG8gYW55IHRlcm1p bmF0ZWQgc3VtdGkgZXhjZXB0IG1vc3Qgb3RoZXIgJydzdW1rYSdpJycuIFRoZSByZWFzb24gdGhh dCBtb3N0IG90aGVyICcnc3Vta2EnaScnIGNhbm5vdCBiZSByZWZlcnJlZCB0byBieSB0aGVzZSBz dW10aSwgaXMgdGhhdCB0aGV5IGFyZSBzbyBlYXN5IHRvIGp1c3QgcmVwZWF0IGJ5IHRoZW1zZWx2 ZXMuIFRoZSBleGNlcHRpb24gdG8gdGhlIHJ1bGUgYXJlICcndGknJywgJyd0YScnIGFuZCAnJ3R1 JycsIGJlY2F1c2UgeW91IGNvdWxkIGhhdmUgY2hhbmdlZCB3aGF0IHlvdSBwb2ludCBhdCwgYW5k IHRodXMgY2Fubm90IGp1c3QgcmVwZWF0IHRoZSB3b3JkLiBUaGV5IHdpbGwgb25seSByZWZlciB0 byB0ZXJtaW5hdGVkIHN1bXRpLCBhbmQgdGh1cyBjYW5ub3QsIGZvciBpbnN0YW5jZSwgYmUgdXNl ZCB0byByZWZlciB0byBhbiBhYnN0cmFjdGlvbiBpZiB0aGUgd29yZCBpbiBpcyB0aGF0IGFic3Ry YWN0aW9uOiAnJ2xlIHBlbmRvIG5vaSBrZSdhIHBlbmRvIG1pIGN1IGRqaWNhIGxvIG51IHJpIHNl IHpkYW5pJycgLSBoZXJlICcncmknJyBjYW5ub3QgcmVmZXIgdG8gdGhlIGFic3RyYXRpb24sIHNp bmNlIGl0IGlzIG5vdCB0ZXJtaW5hdGVkLCBub3IgdG8gJydtaScnIG9yICcna2UnYScnLCBzaW5j ZSB0aGV5IGFyZSBzdW1rYSdpLCBzbyBpdCByZWZlcnMgdG8gJydsZSBwZW5kbycnLgoKJydyYScn IGFuZCAnJ3J1JycgYXJlIGNvbnRleHQtZGVwZW5kZW50IGluIHdoYXQgdGhleSByZWZlciB0bywg YnV0IHRoZXkgZm9sbG93IHRoZSBydWxlcyBtZW50aW9uZWQgYWJvdmUsIGFuZCAnJ3J1JycgYWx3 YXlzIHJlZmVyIHRvIGEgbW9yZSBkaXN0YW50IHN1bXRpIHRoYW4gJydyYScnLCB3aGljaCBpcyBh bHdheXMgbW9yZSBkaXN0YW50IHRoYW4gJydyaScnLgoKCgonJ3JpJycgYW5kIGl0J3MgYnJvdGhl cnMgYXJlIHByZXR0eSB3ZWxsIHN1aXRlZCBmb3IgZGVhbGluZyB3aXRoIHRoZSBvcmlnaW5hbCBz ZW50ZW5jZS4gVHJ5IHNheWluZyBpdCB1c2luZyB0d28gaW5zdGFuY2VzIG9mICcnc3Vta2EnaScn IQoKCgpBbnN3ZXI6IH5+Z3JleSxncmV5OicnbGUnZSBwcmVudSBwb2kga2UnYSBrYWtuZSBsbyBu dSB0YXZsYSBmbyBsYSAubG9qYmFuLiBjdSB0YXZsYSBydSBsbyBiYW5ndSBwb2kgcnUgY3Ugc2Ug YmFuZ3Uga2UnYScnLiAnJ3JpJycgaXMgbm90IGNvcnJlY3QsIGJlY2F1c2UgaXQgcmVmZXJzIHRv ICcnbGEgLmxvamJhbi4nJy4gJydyYScnIGNvdWxkIGJlIHVzZWQsIGJ1dCBjb3VsZCBiZSBtaXN0 YWtlbmx5IGJlIHRob3VnaHQgdG8gcmVmZXIgdG8gJydsbyBudSB0YXZsYSBmbyBsYSAubG9qYmFu LicnLCBidXQgJydydScnIGlzIGFzc3VtZWQgdG8gcmVmZXIgdG8gdGhlIG1vc3QgZGlzdGFudCBz dW10aSAtIHRoZSBtb3N0IG91dGVyIG9uZS5+fgoKCgpMYXN0bHksIHRoZXJlIGEgc3VtdGNpdGEg d2hpY2ggcmVwcmVzZW50IHV0dGVyYW5jZXM6IFNvIGNhbGxlZCB1dHRlcmFuY2UgdmFyaWFibGVz LiBUaGV5IG5lZWQgbm90IGJlIHJlc3RyaWN0ZWQgdG8gb25lIHNlbnRlbmNlIChqdWZyYSksIGJ1 dCBjYW4gYmUgc2V2ZXJhbCBzZW50ZW5jZXMsIGlmIHRoZSBjb250ZXh0IGFsbG93cyBpdDoKCl9f JydkYSd1JydfXyBVdHRlcmFuY2UgdmFyaWFibGU6IFJlbW90ZSBwYXN0IHNlbnRlbmNlCgpfXycn ZGUndScnX18gVXR0ZXJhbmNlIHZhcmlhYmxlOiBSZWNlbnQgc2VudGVuY2UKCl9fJydkaSd1Jydf XyBVdHRlcmFuY2UgdmFyaWFibGU6IFByZXZpb3VzIHNlbnRlbmNlCgpfXycnZGVpJydfXyBVdHRl cmFuY2UgdmFyaWFibGU6IFRoaXMgc2VudGVuY2UKCl9fJydkaSdlJydfXyBVdHRlcmFuY2UgdmFy aWFibGU6IE5leHQgc2VudGVuY2UKCl9fJydkZSdlJydfXyBVdHRlcmFuY2UgdmFyaWFibGU6IE5l YXIgZnV0dXJlIHNlbnRlbmNlCgpfXycnZGEnZScnX18gVXR0ZXJhbmNlIHZhcmlhYmxlOiBSZW1v dGUgZnV0dXJlIHNlbnRlbmNlCgpfXycnZG8naScnX18gVXR0ZXJhbmNlIHZhcmlhYmxlOiBFbGxp cHRpY2FsIHV0dGVyYW5jZSB2YXJpYWJsZTog4oCcU29tZSBzZW50ZW5jZeKAnQoKVGhlc2UgcmVw cmVzZW50cyBzZW50ZW5jZXMgYXMgc3VtdGksIGFuZCByZWZlciBvbmx5IHRvIHRoZSBzcG9rZW4g d29yZHMgb3IgdGhlIGxldHRlcnMsIG5vdCB0byB0aGUgbWVhbmluZyBiZWhpbmQgdGhlbS4KCgoK VGhlcmUgYXJlIG1vcmUgTG9qYmFuICcnc3Vta2EnaScnLCBidXQgZm9yIG5vdyB5b3UgcHJvYmFi bHkgbmVlZCBhIGJyZWFrIGZyb20gdGhlbS4gVGhlIG5leHQgbGVzc29uIHdpbGwgYmUgb24gZGVy aXZlZCBzdW10aSwgc3VtdGkgbWFkZSBmcm9tIG90aGVyIHN1bXRpLgoKCgoKCiEhTG9qYmFuIExl c3NvbnMgLSBMZXNzb24gc2l4dGVlbiAodGhlIExvamJhbiBzdW10aSAzOiBkZXJpdmVkIHN1bXRp KQoKWW91IGNhbiBwcm9iYWJseSBzZWUgdGhhdCB0aGUgc3VtdGkgJydsZSBiYW5ndSBwb2kgbWkg c2UgYmFuZ3Uga2UnYScnIGlzIGEgbGVzcyB0aGFuIGVsZWdhbnQgZXhwcmVzc2lvbiBmb3Ig4oCc bXkgbGFuZ3VhZ2XigJ0uIFRoaXMgaXMgYmVjYXVzZSBpdCdzIHJlYWxseSBhIHdvcmsgYXJvdW5k LiBBIGxhbmd1YWdlIHdoaWNoIEkgc3BlYWsgY2FuIGJlIHNhaWQgdG8gZmlsbCBpbnRvIHRoZSB4 MSBvZiB0aGUgYnJpZGkgJydiYW5ndSBtaScnLiBXZSBjYW4ndCBjb252ZXJ0IHRoYXQgdG8gYSBz dW10aSB1c2luZyBhIGdhZHJpOiAnJ2xlIGJhbmd1IHtrdX0gbWknJyBpcyB0d28gc3VtdGksIGJl Y2F1c2UgJydiYW5ndSBtaScnIGlzIGEgYnJpZGksIG5vdCBhIHNlbGJyaS4gTmVpdGhlciBjYW4g d2UgY29udmVydCBpdCB1c2luZyAnJ2xlIHN1J3UnJywgYmVjYXVzZSB0aGUgc3UndSBnaXZlcyB0 aGUgYnJpZGkgYSBuZXcgeDEsIHRoZSBhYnN0cmFjdGlvbiwgYW5kIHRoZSAnJ2xlJycgdGhlbiBl eHRyYWN0cyB0aGF0LiBUaGF0IG1ha2VzIGFuIGFic3RyYWN0aW9uIHN1bXRpIG1lYW5pbmcgc29t ZXRoaW5nIGxpa2Ug4oCcdGhhdCBzb21ldGhpbmcgaXMgbXkgbGFuZ3VhZ2XigJ0uCgpFbnRlciAn J2JlJycuICcnYmUnJyBpcyBhIHdvcmQgd2hpY2ggYmluZHMgY29uc3RydWN0cyAoc3VtdGksIHN1 bXRjaXRhIGFuZCBvdGhlcnMpIHRvIGEgc2VsYnJpLiBVc2luZyBpdCBpbiBvcmRpbmFyeSBzZWxi cmkgaGFzIG5vIGVmZmVjdDogaW4gJydtaSBuZWxjaSBiZSBkbycnLCB0aGUgJydiZScnIGRvZXMg bm90aGluZy4gSG93ZXZlciwgd2hlbiBhIHN1bXRpIGlzIGJvdW5kIHRvIGEgc2VsYnJpIHRoaXMg d2F5LCB5b3UgY2FuIHVzZSBhIGdhZHJpIG9uIHRoZSBzZWxicmkgd2l0aG91dCB0aGUgc3VtdGkg c3BsaXR0aW5nIG9mZjogJydsZSBiYW5ndSBiZSBtaScnIGlzIGEgY29ycmVjdCBzb2x1dGlvbiB0 byB0aGUgcHJvYmxlbSBhYm92ZS4gTGlrZXdpc2UsIHlvdSBjYW4gYXR0YWNoIGEgc3VtdGNpdGE6 ICcnbGUgbnUgZGFyeGkga2VpIGJlIGdhdSBkbycnOiDigJxUaGUgZXZlbnQgb2YgaGl0dGluZywg d2hpY2ggaXMgY2F1c2VkIGJ5IHlvdeKAnS4gTm90ZSB0aGF0IHRoZSBwcmVzZW5jZSBvciBhYnNl bmNlIG9mICcna2VpJycgbWFrZXMgaXQgcGFyc2UgZGlmZmVyZW50bHk6IFdpdGggdGhlIGZhJ29y bWEnbyBwcmVzZW50LCAnJ2JlJycgYXR0YWNoZXMgdG8gJydudScnLCB3aXRob3V0IHRoZSBmYSdv cm1hJ28sIGl0IGF0dGFjaGVzIHRvICcnZGFyeGknJy4gU28gaXQgZGVjaWRlcyB3aGF0IGlzIGJl aW5nIGVtcGhhc2lzZWQ6IElzIHRoZSBoaXR0aW5nLCBvciB0aGUgZXZlbnQgb2YgaGl0dGluZyBj YXVzZWQgYnkgeW91PyBJbiB0aGlzIHNwZWNpZmljIGNhc2UsIHRob3VnaCwgdGhhdCdzIGp1c3Qg YWJvdXQgdGhlIHNhbWUgdGhpbmcuCgoKCldoYXQgaWYgSSB3YW50IHRvIGF0dGFjaCBzZXZlcmFs IHN1bXRpIHRvIGEgc2VsYnJpIGluc2lkZSBhIGdhZHJpPyDigJxUaGUgZ2l2ZXIgb2YgdGhlIGFw cGxlIHRvIHlvdeKAnSBpcyAnJ2xlIGR1bmRhIGJlIGxvIHBsaXNlIGJlIGRvJycsIHJpZ2h0PyBO b3BlLiBUaGUgc2Vjb25kICcnYmUnJyBhdHRhY2hlcyB0byB0aGUgYXBwbGUsIG1lYW5pbmcgJyds ZSBwbGlzZSBiZSBkbycnIC0g4oCcVGhlIGFwcGxlIG9mIHRoZSBzdHJhaW4gb2YgeW914oCdLCB3 aGljaCBtYWtlcyBubyBzZW5zZS4gSW4gb3JkZXIgdG8gc3RyaW5nIHNldmVyYWwgc3VtdGkgdG8g YSBzZWxicmksIHRoZSBhbGwgdGhlIG9uZXMgZm9sbG93aW5nIHRoZSBmaXJzdCBtdXN0IGJlIGJv dW5kIHdpdGggJydiZWknJy4gVGhlIOKAnGJpbmRpbmfigJ0gY2FuIGJlIHRlcm1pbmF0ZWQgd2l0 aCAnJ2JlJ28nJyAtIG9uZSBpbnN0YW5jZSBvZiAnJ2JlJ28nJyBmb3IgZWFjaCBzZWxicmkgd2hp Y2ggaGFzIHN1bXRpIGJvdW5kIGJ5ICcnYmUnJy4KClRvIGxpc3QgdGhlbToKCl9fJydiZScnX18g YmluZHMgc3VtdGkgb3Igc3VtdGNpdGEgdG8gc2VsYnJpCgpfXycnYmVpJydfXyBiaW5kcyBhIHNl Y29uZCwgdGhpcmQsIGZvdXJ0aCAoZWN0KSBzdW10aSBvciBzdW10Y2l0YSB0byBhIHNlbGJyaQoK X18nJ2JlJ28nJ19fIGVuZHMgYmluZGluZyB0byBzZWxicmkKCgoKVGhlcmUgaXMgYWxzbyB3YXlz IHRvIGxvb3NlbHkgYXNzb2NpYXRlIGEgc3VtdGkgd2l0aCBhbm90aGVyLiAnJ3BlJycgYW5kICcn bmUnJyBmb3IgcmVzdHJpY3RpdmUgYW5kIG5vbi1yZXN0cmljdGl2ZSBhc3NvY2lhdGlvbi4gQWN0 dWFsbHksICcnbGUgYmFuZ3UgcGUgbWknJyBpcyBhIGJldHRlciB0cmFuc2xhdGlvbiBvZiDigJxt eSBsYW5ndWFnZeKAnSwgc2luY2UgdGhpcyBwaHJhc2UsIGxpa2UgdGhlIEVuZ2xpc2gsIGlzIHZh Z3VlIGFzIHRvIGhvdyB0aGUgdHdvIGFyZSBhc3NvY2lhdGVkIHdpdGggZWFjaCBvdGhlci4KCicn cGUnJyBhbmQgJyduZScnIGFyZSB1c2VkIGFzIGxvb3NlIGFzc29jaWF0aW9uIG9ubHksIGxpa2Ug c2F5aW5nIOKAnG15IGNoYWly4oCdIGFib3V0IGEgY2hhaXIgd2hpY2ggeW91IHNpdCBvbi4gSXQn cyBub3QgcmVhbGx5IHlvdXJzLCBidXQgaGFzIHNvbWV0aGluZyBkbyB0byB3aXRoIHlvdS4gQSBt b3JlIGludGltYXRlIGNvbm5lY3Rpb24gY2FuIGJlIGVzdGFibGlzaGVkIHdpdGggJydwbycnLCB3 aGljaCBtYWtlcyB0aGUgYXNzb2NpYXRpb24gdW5pcXVlIGFuZCBiaW5kaW5nIHRvIGEgcGVyc29u LCBhcyBpbiDigJxteSBjYXLigJ0gZm9yIGEgY2FyIHRoYXQgeW91IGFjdHVhbGx5IG93bi4gVGhl IGxhc3Qga2luZCBvZiBhc3NvY2lhdG9yIGlzICcncG8nZScnLCB3aGljaCBtYWtlcyBhIHNvLWNh bGxlZCAiaW5hbGllbmFibGUiIGJvbmQgYmV0d2VlbiBzdW10aSwgbWVhbmluZyB0aGF0IHRoZSBi b25kIGlzIGlubmF0ZSBiZXR3ZWVuIHRoZSB0d28gc3VtdGkuIFNvbWUgZXhhbXBsZXMgY291bGQg YmUgIm15IG1vdGhlciIsICJteSBhcm0iIG9yICJteSBob21lIGNvdW50cnkiOyBub25lIG9mIHRo ZXNlICJwb3NzZXNpb25zIiBjYW4gYmUgbG9zdCAoZXZlbiBpZiB5b3Ugc2F3IG9mZiB5b3VyIGFy bSwgaXQncyBzdGlsbCBfX3lvdXJfXyBhcm0pLCBhbmQgYXJlIHRoZXJlZm9yZSBpbmFsaWVuYWJs ZS4gQWxtb3N0IGFsbCBvZiB0aGUgdGltZXMgYSAnJ3BvJ2UnJyBpcyBhcHByb3ByaWF0ZSwgdGhv dWdoLCB0aGUgeDIgb2YgdGhlIHNlbGJyaSBjb250YWlucyB0aGUgb25lIHRvIHdoaWNoIHRoZSB4 MSBpcyBjb25uZWN0ZWQsIHNvICcnYmUnJyBpcyBiZXR0ZXIuCgpfXycnbmUnJ19fIG5vbi1yZXN0 cmljdGl2ZSByZWxhdGl2ZSBwaHJhc2UuICJ3aGljaCBpcyBhc3NvY2lhdGVkIHdpdGguLi4iCgpf XycncGUnJ19fIHJlc3RyaWN0aXZlIHJlbGF0aXZlIHBocmFzZS4gIndoaWNoIGlzIGFzc29jaWF0 ZWQgd2l0aC4uLiIKCl9fJydwbycnX18gcG9zc2VzaXZlIHJlbGF0aXZlIHBocmFzZS4gIndoaWNo IGlzIHNwZWNpZmljIHRvLi4uIgoKX18nJ3BvJ2UnJ19fIGluYWxpZW5hYmxlIHJlbGF0aXZlIHBo cmFzZS4gIndoaWNoIGJlbG9uZ3MgdG8uLi4iCgoKCkEgdmVyeSB1c2VmdWwgY29uc3RydWN0IHRv IGtub3cgaXMgJyd7Z2Fkcml9IHtzdW10aX0ge3NlbGJyaX0nJy4gdGhpcyBpcyBlcXVpdmFsZW50 IHRvICcne2dhZHJpfSB7c2VsYnJpfSBwZSAge3N1bXRpfScnLiBGb3IgaW5zdGFuY2UgJydsZSBt aSBnZXJrdScnIGlzIGVxdWl2YWxlbnQgdG8gJydsZSBnZXJrdSBwZSBtaScnLiBPbmUgY291bGQg aGF2ZSBkZXNjcmlwdGlvbiBzdW10aSBpbnNpZGUgZGVzY3JpcHRpb24gc3VtdGksIHNheWluZyAn J2xlIGxlIHNlIGNpbmppa2NhIGJlIG1pIGt1IGdlcmt1JycsID0gJydsZSBnZXJrdSBwZSBsZSBz ZSBjaW5qaWtjYSBiZSBtaScnID3igJx0aGUgZG9nIG9mIHRoZSBtYW4gSSdtIGZsaXJ0aW5nIHdp dGjigJ0sIGJ1dCB0aGF0J3Mgbm90IHZlcnkgZWFzeSB0byByZWFkIChvciB0byB1bmRlcnN0YW5k IHdoZW4gc3Bva2VuKSwgYW5kIGlzIG9mdGVuIGJlaW5nIGF2b2lkZWQuCgoKCk9uZSBuZWVkIGFs c28gdG8gbGVhcm4gJyd0dSdhJycsIHNpbmNlIGl0IHdpbGwgbWFrZSBhIGxvdCBvZiBzZW50ZW5j ZXMgbXVjaCBlYXNpZXIuIEl0IHRha2VzIGEgc3VtdGkgYW5kIGNvbnZlcnRzIGl0IHRvIGFub3Ro ZXIgc3VtdGkgLSBhbiBlbGxpcHRpY2FsIGFic3RyYWN0aW9uIHdoaWNoIGhhcyBzb21ldGhpbmcg dG8gZG8gd2l0aCB0aGUgZmlyc3Qgc3VtdGkuIEZvciBleGFtcGxlLCBJIGNvdWxkIHNheSAnJ21p IGRqaWNhIGxvIG51IG1pIGNpdGthIGxvIHBsaXNlJycsIG9yIEkgY291bGQgbGV0IGl0IGJlIHVw IHRvIGNvbnRleHQgd2hhdCBhYnN0cmFjdGlvbiBhYm91dCB0aGUgYXBwbGUgSSBkZXNpcmUgYW5k IGp1c3Qgc2F5ICcnbWkgZGppY2EgdHUnYSBsbyBwbGlzZScnLiBPbmUgYWx3YXlzIGhhcyB0byBn dWVzcyB3aGF0IGFic3RyYWN0aW9uIHRoZSBzcGVha2VyIG1lYW5zIGJ5ICcndHUnYSBTVU1USScn LCBzbyBpdCBzaG91bGQgb25seSBiZSB1c2VkIHdoZW4gY29udGV4dCBtYWtlcyBpdCBlYXN5IHRv IGd1ZXNzLiBBbm90aGVyIGV4YW1wbGU6CgpfXycnZ2FzbnUnJ19fIOKAnHgxIGRvZXMvYnJpbmdz IGFib3V0IHgyICh2b2xpdGlvbiBub3QgaW1wbGllZCnigJ0KCicnemEnYSBkbyBnYXNudSB0dSdh IGxvIHNrYW1pJycgLSDigJxJIHNlZSB0aGF0IHlvdSBtYWtlIHRoZSBjb21wdXRlciBkbyBzb21l dGhpbmfigJ0uIE9mZmljaWFsbHksICcndHUnYSBTVU1USScnIGlzIGVxdWl2YWxlbnQgdG8gJyds ZSBzdSd1IFNVTVRJIGNvJ2UnJy4gVmFndWUsIGJ1dCB1c2VmdWwuIFRoZXJlIGFyZSBzaXR1YXRp b25zIHdoZXJlIHlvdSBjYW5ub3QgdXNlICcndHUnYScnLCBldmVuIHRob3VnaCBpdCB3b3VsZCBz ZWVtIHN1aXRhYmxlLiBUaGVzZSBzaXR1YXRpb25zIGFyZSB3aGVuIEkgZG9uJ3Qgd2FudCB0aGUg cmVzdWx0aW5nIHN1bXRpIHRvIGJlIGFuIGFic3RyYWN0aW9uLCBidXQgYSBjb25jcmV0ZSBzdW10 aS4gSW4gdGhpcyBjYXNlLCBvbmUgY2FuIHVzZSAnJ3pvJ2UgcGUnJy4KCl9fJyd0dSdhJydfXyBj b252ZXJ0IHN1bXRpIHRvIHZhZ3VlIGFic3RyYWN0aW9uIGludm9sdmluZyB0aGUgc3VtdGkuIEVx dWl2YWxlbnQgdG8gJydsZSBzdSd1IFNVTVRJIGNvJ2Uga2VpIGt1JycKCgoKRmluYWxseSwgb25l IGtpbmQgb2Ygc3VtdGkgY2FuIGJlIHR1cm5lZCBpbnRvIGFub3RoZXIgYnkgdGhlIHdvcmRzIG9m IHRoZSBjbGFzcyBMQWhFLgoKX18nJ2x1J2EnJ19fIC0gQ29udmVydCBpbmRpdmlkdWFsKHMpL21h c3Mvc2VxdWVuY2Uvc2V0IHRvIGluZGl2aWR1YWxzLgoKX18nJ2x1J2knJ19fIC0gQ29udmVydCBp bmRpdmlkdWFsKHMpL21hc3Mvc2VxdWVuY2Uvc2V0IHRvIGEgc2V0LgoKX18nJ2x1J28nJ19fIC0g Q29udmVydCBpbmRpdmlkdWFsKHMpL21hc3Mvc2VxdWVuY2Uvc2V0IHRvIG1hc3MuCgpfXycndnUn aScnX18gLSBDb252ZXJ0IGluZGl2aWR1YWwocykvbWFzcy9zZXF1ZW5jZS9zZXQgdG8gc2VxdWVu Y2U7IHRoZSBvcmRlciBpcyBub3Qgc3RhdGVkLgoKVGhlIHVzZSBvZiB0aGVzZSB3b3JkcyBpcyBz dHJhaWdodC1mb3J3YXJkbHk6IFBsYWNpbmcgdGhlbSBiZWZvcmUgYSBzdW10aSBvZiBhIGNlcnRh aW4gdHlwZSBtYWtlcyBhIG5ldyBzdW10aSBvZiBhIG5ldyB0eXBlLiBOb3RpY2UsIHRob3VnaCwg dGhhdCBhcyBhIGZvdXJ0aCBraW5kIG9mIHN1bXRpLCBhIHNlcXVlbmNlIGhhcyBiZWVuIGludHJv ZHVjZWQuIFRoaXMgaXMgbm90IHVzZWQgdmVyeSBvZnRlbiAoaXQgZG9lc24ndCBoYXZlIGl0cyBv d24gZ2FkcmksIGZvciBpbnN0YW5jZSksIGJ1dCBqdXN0IGluY2x1ZGVkIGhlcmUgZm9yIGNvbXBs ZXRpb24uCgpUaGUgbGFzdCB0d28gbWVtYmVycyBvZiBMQWhFIGRvIG5vdCBjb252ZXJ0IGJldHdl ZW4gdHlwZXMgb2Ygc3VtdGksIGJ1dCBhbGxvd3MgeW91IHRvIHNwZWFrIG9mIGEgYSBzdW10aSBi eSBvbmx5IG1lbnRpb25pbmcgc29tZXRoaW5nIHdoaWNoIHJlZmVyZW5jZXMgdG8gaXQ6CgpJZiBv bmUgc3VtdGkgQSByZWZlcnMgdG8gYSBzdW10aSBCLCBmb3IgaW5zdGFuY2UgYmVjYXVzZSBzdW10 aSBBIGlzIGEgdGl0bGUgb2YgYSBib29rLCBvciBhIG5hbWUsIG9yIGEgc2VudGVuY2UgKHdoaWNo IGFsd2F5cyByZWZlciB0byBzb21ldGhpbmcsIGF0IGxlYXN0IGEgYnJpZGkpLCDigJgnbGEnZSBT VU1USSBBJycgcmVmZXJzIHRvIHN1bXRpIEIuIEZvciBpbnN0YW5jZSwg4oCYJ21pIG5lbGNpIGxh J2UgZGkndScnIGZvciDigJxJIGxpa2Ugd2hhdCB5b3UganVzdCBzYWlk4oCdIChub3QgJydtaSBu ZWxjaSBkaSd1Jycgd2hpY2gganVzdCBtZWFucyAiSSBsaWtlIHlvdXIgcHJldmlvdXMgc2VudGVu Y2UiKSBvciDigJgnbGEnZSBsZSBjbWFsdSBub2x0cnUnJyBmb3IgdGhlIGJvb2sg4oCcVGhlIExp dHRsZSBQcmluY2XigJ0sIGFuZCBub3Qgc29tZSBsaXR0bGUgcHJpbmNlIGhpbXNlbGYuIFRoZSBj bWF2byDigJgnbHUnZScnIGRvZXMgdGhlIGV4YWN0IHJldmVyc2Ug4oCTIOKAmCdsdSdlIFNVTVRJ JycgcmVmZXJzIHRvIGFuIG9iamVjdCB3aGljaCByZWZlcnMgdG8gdGhlIHN1bXRpLiAKCl9fJyds YSdlJydfXyAtIOKAnHRoZSB0aGluZyByZWZlcnJlZCB0byBieeKAnSAtIGV4dHJhY3RzIGEgc3Vt dGkgQSBmcm9tIGEgc3VtdGkgQiB3aGljaCByZWZlcnMgdG8gQS4gCgpfXycnbHUnZScnX18gLSDi gJx0aGUgdGhpbmcgcmVmZXJyaW5nIHRv4oCdIC0gZXh0cmFjdHMgYSBzdW10aSBCIGZyb20gYSBz dW10aSBBLCB3aGVuIEIgcmVmZXJzIHRvIEEuCgoKCgoKISEhRW5kIG9mIHBhcnQgb25lCgpEdWUg dG8gdGhlIGltcHJhY3RpY2FsbHkgbGFyZ2Ugc2l6ZSBvZiB0aGVzZSBsZXNzb25zLCB0aGUgc2Vj b25kIGFuZCB0aGlyZCBpbnN0YWxsbWVudCBjYW4gYmUgZm91bmQgb24gcGFnZXMgZGVkaWNhdGVk IHRvICgod2F2ZWxlc3NvbnNjb250aW51ZWRwMnx0aGUgZm9ybWVyKSkgYW5kICgod2F2ZWxlc3Nv bnNjb250aW51ZWRwM3x0aGUgbGF0dGVyKSkuIE5vIHdvcnJpZXMsIHRob3VnaCwgY2xpY2tpbmcg b24gInRoZSBmb3JtZXIiIG9yICJ0aGUgbGF0dGVyIiB3aWxsIHRha2UgeW91IHRoZXJlIHBhaW5s ZXNzbHkuCgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpXaWtpY2hhbmdlcyBtYWlsaW5nIGxpc3QKV2lraWNoYW5nZXNAbG9qYmFuLm9yZwpodHRwOi8v bWFpbC5sb2piYW4ub3JnL21haWxtYW4vbGlzdGluZm8vd2lraWNoYW5nZXMK