Received: from localhost ([::1]:54677 helo=stodi.digitalkingdom.org) by stodi.digitalkingdom.org with esmtp (Exim 4.80.1) (envelope-from ) id 1VbHe7-00054p-3Q; Tue, 29 Oct 2013 15:20:19 -0700 Received: from 173-13-139-235-sfba.hfc.comcastbusiness.net ([173.13.139.235]:42451 helo=jukni.digitalkingdom.org) by stodi.digitalkingdom.org with smtp (Exim 4.80.1) (envelope-from ) id 1VbHdx-00054i-O3 for wikineurotic@lojban.org; Tue, 29 Oct 2013 15:20:17 -0700 Received: by jukni.digitalkingdom.org (sSMTP sendmail emulation); Tue, 29 Oct 2013 15:20:09 -0700 From: "Apache" Date: Tue, 29 Oct 2013 15:20:09 -0700 To: wikineurotic@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 wavelessonscontinued was changed by daeldir at 23:19 CET Comment: Schwarzenegger was inconsistant (.y'ybu vs .y'y.bu) You can view the page by following this link: http://www.lojban.org/tiki/wavelessonscontinued [...] 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: wikipedia.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: [Wikineurotic] Wiki page wavelessonscontinued changed by daeldir X-BeenThere: wikineurotic@lojban.org X-Mailman-Version: 2.1.15 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: wikineurotic-bounces@lojban.org VGhlIHBhZ2Ugd2F2ZWxlc3NvbnNjb250aW51ZWQgd2FzIGNoYW5nZWQgYnkgZGFlbGRpciBhdCAy MzoxOSBDRVQKQ29tbWVudDogU2Nod2FyemVuZWdnZXIgd2FzIGluY29uc2lzdGFudCAoLnkneWJ1 IHZzIC55J3kuYnUpCgpZb3UgY2FuIHZpZXcgdGhlIHBhZ2UgYnkgZm9sbG93aW5nIHRoaXMgbGlu azoKIApodHRwOi8vd3d3LmxvamJhbi5vcmcvdGlraS93YXZlbGVzc29uc2NvbnRpbnVlZAoKWW91 IGNhbiB2aWV3IGEgZGlmZiBiYWNrIHRvIHRoZSBwcmV2aW91cyB2ZXJzaW9uIGJ5IGZvbGxvd2lu ZyB0aGlzIGxpbms6IApodHRwOi8vd3d3LmxvamJhbi5vcmcvdGlraS90aWtpLXBhZ2VoaXN0b3J5 LnBocD9wYWdlPXdhdmVsZXNzb25zY29udGludWVkJmNvbXBhcmU9MSZvbGR2ZXI9ODcmbmV3dmVy PTg4CgoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKVGhlIGNoYW5nZXMgaW4gdGhpcyB2ZXJzaW9uIGZvbGxvdyBiZWxvdywgZm9sbG93 ZWQgYWZ0ZXIgYnkgdGhlIGN1cnJlbnQgZnVsbCBwYWdlIHRleHQuCioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgoKKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKQEAgLUxpbmVz OiA2Ni03MCBjaGFuZ2VkIHRvICtMaW5lczogNjYtNzAgQEAKKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKVGhlIGFwb3N0cm9waGUgaXMg cmVnYXJkZWQgYXMgYSBwcm9wZXIgbGV0dGVyIGluIExvamJhbiwgYW5kIGlzIGNhbGxlZCAnJy55 J3kuJycgLiBUbyBzb21lIHBlb3BsZSwgdGhpcyBzb3VuZHMgbGlrZSBhIGNvdWdoOyB0byBvdGhl ciwgbGlrZSAidWgtaHVoIiAod2hlbiBpdCBtZWFucyAnWWVzJyByYXRoZXIgdGhhbiAnTm8nLikK TG9qYmFuIGhhcyB3YXlzIG9mIHJlZmVyaW5nIHRvIG1vc3QgbGV0dGVycyB5b3UgY2FuIHRoaW5r IG9mLiBJZiB5b3UgaGF2ZSB0aGUgdXJnZSB0byBzcGVsbCBvdXQgeW91ciBuYW1lIGluIExvamJh biBhbmQgaGF2ZSBhbiAiSCIsICJRIiwgb3IgIlciIHRvIGRlYWwgd2l0aCwgeW91IGNhbiB1c2Ug JycueSd5LmJ1LCBreS5idScnIGFuZCAnJ3Z5LmJ1JycuIFNvICJTY2h3YXJ6ZW5lZ2dlciIgaXMg c3BlbHQgaW4gTG9qYmFuIGFzOgotICcnc3kuIGN5LiAueSd5YnUgdnlidS4gLmFidSByeS4genku IC5lYnUgbnkuIC5lYnUgZ3kuIGd5LiAuZWJ1IHJ5LicnCisgJydzeS4gY3kuIC55J3kuYnUgdnku YnUuIC5hYnUgcnkuIHp5LiAuZWJ1IG55LiAuZWJ1IGd5LiBneS4gLmVidSByeS4nJwpBbmQgc3Bl bGxpbmcgInRoYXQiIGlzIGEgdGFzayB0aGUgZXF1YWwgb2YgYW55dGhpbmcgdGhlIFRlcm1pbmF0 b3IgZXZlciBkaWQhCgoKCgoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioKVGhlIG5ldyBwYWdlIGNvbnRlbnQgZm9sbG93cyBiZWxvdy4K KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKCiFMb2piYW4gV2F2ZSBMZXNzb25zIENvbnRpbnVlZDoKCiEhIU1hZGUgYnkgbGEga2xha3Ug d2l0aCBoZWxwIGZyb20gdmFyaW91cyBsb2piYW5pc3RzLiBCYXNlZCBvbiB0aGUgd29yayBvZiBs YSAua3JpYmFjci4gU3ByaW5nIDIwMTMuCgoKCiEhTG9qYmFuIExlc3NvbnMg4oCTIGxlc3NvbiB6 ZXJvOiBGb3Jld29yZAoKVGhlc2UgbGVzc29ucyBhcmUgYW4gYXR0ZW1wdCB0byBleHBhbmQgb24g dGhlIEdvb2dsZSBXYXZlIExlc3NvbnMsIGFuIGV4Y2VsbGVudCBMb2piYW4gdHV0b3JpYWwgYnkg a3JpYmFjciwgeGFsYm8sIGFuZCBvdGhlcnMsIG9yaWdpbmFsbHkgdHJhbnNjcmliZWQsIGNvbGxh dGVkLCBhbmQgcmVzY3VlZCBmcm9tIG9ibGl2aW9uIGJ5IE1hcmVueiwgd2hpY2ggc2FkbHkgb25s eSBjb3ZlcmVkIHRoZSBmaXJzdCBmb3VyIGNoYXB0ZXJzIGluIHRoaXMgdHV0b3JpYWwuIEl0IGlt cGxlbWVudHMgdGhlIG5ld2VzdCBydWxlcyBvZiBMb2piYW4gbm90IGNvdmVyZWQgYnkgb2xkZXIg bWF0ZXJpYWxzIHN1Y2ggYXMgV2hhdCBpcyBMb2piYW4/IGFuZCBMb2piYW4gZm9yIEJlZ2lubmVy cy4KCgoKSWYgeW91IGFyZSBuZXcgdG8gTG9qYmFuLCBJIHJlY29tbWVuZCBsaXN0ZW5pbmcgdG8g YW55IHJlY29yZGluZ3MgeW91IGNhbiBmaW5kIG9mIHNwb2tlbiBMb2piYW4gYm90aCBiZWZvcmUg YW5kIHdoaWxlIHlvdSBhcmUgdGFraW5nIHRoaXMgdHV0b3JpYWwsIGluIG9yZGVyIHRvIG1ha2Ug eW91cnNlbGYgZmFtaWxpYXIgd2l0aCB0aGUgc291bmRzIGFuZCB3b3JkcyBvZiB0aGUgbGFuZ3Vh Z2V+dGN+LCB3aGljaCB3aWxsIG5vdCBiZSBleHBsYWluZWQgaGVyZX4vdGN+LiBGdXJ0aGVybW9y ZSwgdHJ5IHRvIHNheSB0aGUgdGhpbmdzIHlvdSByZWFkIGluIExvamJhbiBhY2NlbnQgaWYgaXQn cyByZWFzb25hYmx5IHByYWN0aWNhbC4gVGhpcyBjYW4gaGVscCB5b3VyIHByb251bmNpYXRpb24g YSBsb3QuCgoKCldoZW4gdGFraW5nIHRoaXMgdHV0b3JpYWwsIGl0J3MgYmVzdCB0byBwYXVzZSBi ZXR3ZWVuIGxlc3NvbnMgaW4gb3JkZXIgdG8gaW50ZXJuYWxpemUgd2hhdCB5b3UgaGF2ZSBsZWFy bnQuIEkgaGF2ZSBhdHRlbXB0ZWQgdG8gYnVpbGQgdGhlc2UgbGVzc29ucyBmcm9tIHRoZSBib3R0 b20gdXAgYW5kIGV4Y2x1ZGUgYW55IHdvcmRzIG9yIGNvbmNlcHRzIHRoYXQgaGF2ZSBub3QgYmVl biBleHBsYWluZWQgaW4gcHJldmlvdXMgbGVzc29ucy4gT25jZSBleHBsYWluZWQsIHRoZXkgYXJl IHVzZWQgZnJlZWx5IHRocm91Z2hvdXQgdGhlIHJlbWFpbmRlciBvZiB0aGUgdHV0b3JpYWwuIEkg dXJnZSByZWFkZXJzIG5vdCB0byBwYXNzIGFueSBtaXN1bmRlcnN0b29kIGNvbnRlbnQ7IGlmIHlv dSBoYXZlIHF1ZXN0aW9ucyBvciBhcmUgdW5jZXJ0YWluIGFib3V0IHNvbWV0aGluZywgZmVlbCBm cmVlIHRvIGFzayB0aGUgTG9qYmFuIGNvbW11bml0eSwgd2hpY2ggY2FuIGJlIGZvdW5kIGluICNs b2piYW4gb24gdGhlIEZyZWVub2RlIElSQyBuZXR3b3JrLiBUaGV5IHdpbGwgYmUgaGFwcHkgdG8g aGVscC4KCgoKSW4gdGhpcyB0dXRvcmlhbCwgTG9qYmFuIHRleHQgaXMgd3JpdHRlbiBpbiAnJ2l0 YWxpY3MnJy4gTGF0ZXIsIHdoZW4gdXNlZCBhcyBMb2piYW4gbG9hbndvcmRzIGluIEVuZ2xpc2gg c2VudGVuY2VzLCB0aGV5IGFyZSBub3QgbWFya2VkLiBBbnN3ZXJzIHRvIGV4ZXJjaXNlcyBhcmUg ZGlzcGxheWVkIGFzIGEgZ3JleSBiYXIuIEhpZ2hsaWdodCB0aGUgdGV4dCBpbiBvcmRlciB0byBz ZWUgaXQuCgoKCkxhc3RseSwgSSBoYXZlIGFzIGZhciBhcyBwb3NzaWJsZSBhdHRlbXB0ZWQgdG8g dXNlIHRoZSBMb2piYW4gd29yZHMgZm9yIGdyYW1tYXRpY2FsIGNvbnN0cnVjdHM6ICcnc3Vta2En aScnIGluc3RlYWQgb2YgcHJvLXN1bXRpLCAnJ3N1bXRjaXRhJycgaW5zdGVhZCBvZiBtb2RhbCBh bmQgJydqdWZyYScnIGluc3RlYWQgb2YgdXR0ZXJhbmNlLiBUaGlzIGlzIGJlY2F1c2UgSSBmZWVs IHRoZSBFbmdsaXNoIHdvcmRzIGFyZSBvZnRlbiBlaXRoZXIgYXJiaXRyYXJ5LCBpbiB3aGljaCBj YXNlIHRoZXkgYXJlIGp1c3QgbW9yZSB3b3JkcyB0byBsZWFybiwgb3IgbWlzbGVhZGluZywgaW4g d2hpY2ggY2FzZSB0aGV5IGFyZSB3b3JzZSB0aGFuIHVzZWxlc3MuIEluIGVpdGhlciBjYXNlLCBh cyBsb25nIGFzIHRoZSB3b3JkcyBhcmUgc3BlY2lmaWMgdG8gdGhvc2Ugd2hvIGFyZSBsZWFybmlu ZyBMb2piYW4gYW55d2F5LCB0aGVyZSBpcyBubyByZWFzb24gZm9yIHRoZW0gdG8gZXhpc3QgYXMg c2VwYXJhdGUgRW5nbGlzaCB3b3Jkcy4KCgoKISEhUHJlZmFjZS4gU291bmRzCgpUaGUgZmlyc3Qg dGhpbmcgeW91IG5lZWQgdG8gZG8gd2hlbiB5b3UgbGVhcm4gYSBmb3JlaWduIGxhbmd1YWdlIGlz IHRvIGJlY29tZSBmYW1pbGlhciB3aXRoIHRoZSBzb3VuZHMgb2YgdGhlIGxhbmd1YWdlIGFuZCBo b3cgdGhleSBhcmUgd3JpdHRlbiwgYW5kIHRoZSBzYW1lIGdvZXMgZm9yIExvamJhbi4gRm9ydHVu YXRlbHksIExvamJhbiBzb3VuZHMgKF9fcGhvbmVtZXNfXykgYXJlIGZhaXJseSBzdHJhaWdodGZv cndhcmQuCgoKCkZvciBtb3JlIGRldGFpbHMgb24gdm93ZWxzIGFuZCBjb25zb25hbnRzIHNvdW5k cyB1c2VkIGluIGxvamJhbiwgeW91IGNhbiBjbGljayBvbiB0aGUgbGV0dGVycyBkZXNjcmliZWQu IFRoZXkgYXJlIHBvaW50aW5nIHRvIHdpa2lwZWRpYSBhcnRpY2xlcyB3aGljaCBkZXNjcmliZSB0 aGUgc291bmQgJydhbmQgdXN1YWxseSBoYXZlIGFuIGF1ZGlvIHJlY29yZCBvZiBpdCcnLgoKCgoh ISEhVm93ZWxzCgpUaGVyZSBhcmUgc2l4IHZvd2VscyBpbiBMb2piYW4uCgoKCnx8JydbaHR0cDov L2VuLndpa2lwZWRpYS5vcmcvd2lraS9PcGVuX2Zyb250X3Vucm91bmRlZF92b3dlbHxhXScnIHxh cyBpbiAiZl9fYV9fdGhlciIgKG5vdCBhcyBpbiAiaF9fYV9fdCIpCgonJ1todHRwOi8vZW4ud2lr aXBlZGlhLm9yZy93aWtpL0Nsb3NlLW1pZF9mcm9udF91bnJvdW5kZWRfdm93ZWx8ZV0nJyB8YXMg aW4gImdfX2VfX3QiCgonJ1todHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0Nsb3NlX2Zyb250 X3Vucm91bmRlZF92b3dlbHxpXScnIHxhcyBpbiAibWFjaF9faV9fbmUiIG9yIChJdGFsaWFuKSAi dl9faV9fbm8iIChub3QgYXMgaW4gImhfX2lfX3QiKQoKJydbaHR0cDovL2VuLndpa2lwZWRpYS5v cmcvd2lraS9DbG9zZS1taWRfYmFja19yb3VuZGVkX3Zvd2VsfG9dJycgfGFzIGluICJiX19vX19s ZCIgb3IgIm1fX29fX3JlIiDigJQgbm90IGFzIGluICJzX19vX18iICh0aGlzIHNob3VsZCBiZSBh ICdwdXJlJyBzb3VuZC4pCgonJ1todHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0Nsb3NlX2Jh Y2tfcm91bmRlZF92b3dlbHx1XScnIHxhcyBpbiAiY19fb29fX2wiIChub3QgYXMgaW4gImJfX3Vf X3QiKSB8fAoKVGhlc2UgYXJlIHByZXR0eSBtdWNoIHRoZSBzYW1lIGFzIHZvd2VscyBpbiBJdGFs aWFuIG9yIFNwYW5pc2guIFRoZSBzaXh0aCB2b3dlbCwgJydbaHR0cDovL2VuLndpa2lwZWRpYS5v cmcvd2lraS9TY2h3YXx5XScnLCBpcyBjYWxsZWQgYSBfX3NjaHdhX18gaW4gdGhlIGxhbmd1YWdl IHRyYWRlLCBhbmQgaXMgcHJvbm91bmNlZCBsaWtlIHRoZSBmaXJzdCBhbmQgbGFzdCAiQSIncyBp biAiQW1lcmljYSIgKHRoYXQncyBFbmdsaXNoICJBbWVyaWNhIiwgbm90IFNwYW5pc2guKSBJdCdz IHRoZSBzb3VuZCB0aGF0IGNvbWVzIG91dCB3aGVuIHRoZSBtb3V0aCBpcyBjb21wbGV0ZWx5IHJl bGF4ZWQuCgpUd28gdm93ZWxzIHRvZ2V0aGVyIGFyZSBwcm9ub3VuY2VkIGFzIG9uZSBzb3VuZCAo X19kaXBodGhvbmdfXykuIFNvbWUgZXhhbXBsZXMgYXJlOgoKCgp8fCcnYWknJyB8YXMgaW4gImhf X2lnaF9fIgoKJydhdScnIHxhcyBpbiAiaF9fb3dfXyIKCicnZWknJyB8YXMgaW4gImhfX2V5X18i CgonJ29pJycgfGFzIGluICJiX19veV9fIgoKJydpYScnIHxsaWtlIEdlcm1hbiBfXyJKYV9fIgoK JydpZScnIHxsaWtlIF9fInllYWhfXyIKCicnaXUnJyB8bGlrZSBfXyJ5b3VfXyIKCicndWEnJyB8 YXMgaW4gX18id2FhaCFfXyIsIG9yIEZyZW5jaCAicV9fdW9pX18iCgonJ3VlJycgfGFzIGluICJx X191ZV9fc3Rpb24iCgonJ3VvJycgfGFzIGluICJxX191b19fdGUiCgonJ3VpJycgfGxpa2UgX18i d2VfXyIsIG9yIEZyZW5jaCBfXyJvdWlfXyIgfHwKCkRvdWJsZSB2b3dlbHMgYXJlIHJhcmUuIFRo ZSBvbmx5IGV4YW1wbGVzIGFyZSAnJ2lpJycsIHdoaWNoIGlzIHByb25vdW5jZWQgbGlrZSBFbmds aXNoICJ5ZSIgKGFzIGluIOKAnE9oIGNvbWUgYWxsIHllIGZhaXRoZnVs4oCdKSBvciBDaGluZXNl ICJ5aSIsIGFuZCAnJ3V1JycsIHByb25vdW5jZWQgbGlrZSAid29vIi4KCiEhISFDb25zb25hbnRz CgpNb3N0IExvamJhbiBjb25zb25hbnRzIGFyZSB0aGUgc2FtZSBhcyBFbmdsaXNoLCBidXQgdGhl cmUgYXJlIHNvbWUgZXhjZXB0aW9uczoKCgoKfHxbaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lr aS9Wb2ljZWRfdmVsYXJfcGxvc2l2ZXxnXSB8YWx3YXlzICcnZycnIGFzIGluICcnX19nX191bScn LCBuZXZlciAnJ2cnJyBhcyBpbiAnJ19fZ19fZW0nJwoKW2h0dHBzOi8vZW4ud2lraXBlZGlhLm9y Zy93aWtpL1ZvaWNlbGVzc19wYWxhdG8tYWx2ZW9sYXJfc2liaWxhbnR8Y10gfCcnc2gnJywgYXMg aW4gJydfX3NoX19pcCcnCgpbaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Wb2ljZWRfcGFs YXRvLWFsdmVvbGFyX3NpYmlsYW50fGpdIHxhcyBpbiAnJ21lYV9fc19fdXJlJycgb3IgRnJlbmNo ICcnYm9uX19qX19vdXInJwoKW2h0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1ZvaWNlbGVz c192ZWxhcl9mcmljYXRpdmV8eF0gfGFzIGluIEdlcm1hbiAnJ0JhX19jaCcnX18sIFNwYW5pc2gg JydfX0pfX29zZScnIG9yIEFyYWJpYyAnJ19fS2hfX2FsZWQnJyB8fAoKVGhlIEVuZ2xpc2ggc291 bmRzICcnY2gnJyBhbmQgJydqJycgYXJlIHdyaXR0ZW4gYXMgdGMgYW5kIGRqLgoKTG9qYmFuIGRv ZXNuJ3QgdXNlIHRoZSBsZXR0ZXJzICcnSCcnLCAnJ1EnJyBvciAnJ1cnJy4KCgoKRm9yIGNvbXBy ZWhlbnNpdmVuZXNzIHNha2UsIGhlcmUgaXMgYSBsaXN0IG9mIHRoZSByZW1haW5pbmcgKGFuZCBs ZXNzIHRyaWNreSkgbG9qYmFuIGNvbnNvbmFudHM6CgonJ1todHRwOi8vZW4ud2lraXBlZGlhLm9y Zy93aWtpL1ZvaWNlZF9iaWxhYmlhbF9wbG9zaXZlfGJdJycsICcnW2h0dHA6Ly9lbi53aWtpcGVk aWEub3JnL3dpa2kvVm9pY2VkX2FsdmVvbGFyX3Bsb3NpdmV8ZF0nJywgJydbaHR0cDovL2VuLndp a2lwZWRpYS5vcmcvd2lraS9Wb2ljZWxlc3NfbGFiaW9kZW50YWxfZnJpY2F0aXZlfGZdJycsICcn W2h0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVm9pY2VsZXNzX3ZlbGFyX3Bsb3NpdmV8a10n JywgJydbaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9BbHZlb2xhcl9sYXRlcmFsX2FwcHJv eGltYW50fGxdJycsICcnW2h0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQmlsYWJpYWxfbmFz YWx8bV0nJywgJydbaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9BbHZlb2xhcl9uYXNhbHxu XScnLCAnJ1todHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1ZvaWNlbGVzc19iaWxhYmlhbF9w bG9zaXZlfHBdJycsICcnW2h0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQWx2ZW9sYXJfdGFw fHJdJycsICcnW2h0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVm9pY2VsZXNzX2FsdmVvbGFy X3NpYmlsYW50I1ZvaWNlbGVzc19hbHZlb2xhcl9zaWJpbGFudHxzXScnLCAnJ1todHRwczovL2Vu Lndpa2lwZWRpYS5vcmcvd2lraS9Wb2ljZWxlc3NfYWx2ZW9sYXJfcGxvc2l2ZXx0XScnLCAnJ1to dHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Wb2ljZWRfbGFiaW9kZW50YWxfZnJpY2F0aXZl fHZdJycsICcnW2h0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVm9pY2VkX2FsdmVvbGFyX3Np YmlsYW50I1ZvaWNlZF9hbHZlb2xhcl9zaWJpbGFudHx6XScnCgoKCiEhISFTcGVjaWFsIENoYXJh Y3RlcnMKCkxvamJhbiBkb2VzIG5vdCByZXF1aXJlIGFueSBwdW5jdHVhdGlvbiwgYnV0IHNvbWUg c3BlY2lhbCBjaGFyYWN0ZXJzIChub3JtYWxseSB1c2VkIGluIHB1bmN0dWF0aW9uIGluIG90aGVy IGxhbmd1YWdlcykgYWZmZWN0IHRoZSB3YXkgTG9qYmFuIGlzIHByb25vdW5jZWQuCgpUaGUgb25s eSBvbmUgb2YgdGhlc2UgY2hhcmFjdGVycyB3aGljaCBpcyBvYmxpZ2F0b3J5IGluIExvamJhbiBp cyB0aGUgW2h0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVm9pY2VsZXNzX2dsb3R0YWxfZnJp Y2F0aXZlfGFwb3N0cm9waGVdOyBpbiBmYWN0IHRoZSBhcG9zdHJvcGhlIGlzIHJlZ2FyZGVkIGFz IGEgcHJvcGVyIGxldHRlciBvZiBMb2piYW4uIEFuIGFwb3N0cm9waGUgc2VwYXJhdGVzIHR3byB2 b3dlbHMsIHByZXZlbnRpbmcgdGhlbSBmcm9tIGJlaW5nIHByb25vdW5jZWQgdG9nZXRoZXIgKGFz IGEgX19kaXBodGhvbmdfXyk7IGl0IGlzIGl0c2VsZiBwcm9ub3VuY2VkIGxpa2UgYW4gImgiLiBG b3IgZXhhbXBsZSwgJyd1aScnIGlzIG5vcm1hbGx5IHByb25vdW5jZWQgIndlIiwgYnV0ICcndSdp JycgaXMgIm9vaGVlIicuCgpBIGZ1bGwgc3RvcCAocGVyaW9kKSBpcyBhIHNob3J0IHBhdXNlIHRv IHN0b3Agd29yZHMgcnVubmluZyBpbnRvIGVhY2ggb3RoZXIuIFRoZSBydWxlcyBvZiBMb2piYW4g bWFrZSBpdCBlYXNpZXIgZm9yIG9uZSB3b3JkIHRvIHJ1biBpbnRvIGFub3RoZXIgd2hlbiB0aGUg c2Vjb25kIHdvcmQgYmVnaW5zIHdpdGggYSB2b3dlbDsgc28gYW55IHdvcmQgc3RhcnRpbmcgd2l0 aCBhIHZvd2VsIGNvbnZlbnRpb25hbGx5IGhhcyBhIGZ1bGwgc3RvcCBwbGFjZWQgaW4gZnJvbnQg b2YgaXQuCgpDb21tYXMgYXJlIHJhcmUgaW4gTG9qYmFuLCBidXQgY2FuIGJlIHVzZWQgdG8gc3Rv cCB0d28gdm93ZWxzIGJsdXJyaW5nIHRvZ2V0aGVyIHdoZW4geW91IGRvbid0IHdhbnQgdG8gdXNl IGFuIGFwb3N0cm9waGUgKHdoaWNoIHdvdWxkIHB1dCBhICcnaCcnIGJldHdlZW4gdGhlbSkuIE5v IExvamJhbiB3b3JkcyBoYXZlIGNvbW1hcywgYnV0IHRoZXkncmUgc29tZXRpbWVzIHVzZWQgaW4g d3JpdGluZyBub24tTG9qYmFuIG5hbWVzLCBmb3IgZXhhbXBsZSAnJy5waSxFUi4nJyAoIlBpZXJy ZSIpLCBhcyBvcHBvc2VkIHRvICcnLnBpZXIuJycgKCJQLXllcnIiKSwgJycucGkuRVIuJycgKCJQ ZWU7IEVociIpLCBvciAnJy5waSdFUi4nJyAoIlBpaGVyciIpLgoKQ2FwaXRhbCBsZXR0ZXJzIGFy ZSBub3Qgbm9ybWFsbHkgdXNlZCBpbiBMb2piYW4uIFdlIHVzZSB0aGVtIGluIG5vbi1Mb2piYW4g d29yZHMgKGxpa2UgIlBpZXJyZSIpIHdoZW4gdGhlIHN0cmVzcyBvZiBhIHdvcmQgaXMgZGlmZmVy ZW50IGZyb20gdGhlIExvamJhbiBub3JtLiBUaGUgbm9ybSBpcyB0byBwdXQgdGhlIHN0cmVzcyBv biB0aGUgbGFzdC1idXQtb25lIHN5bGxhYmxlOyBzbywgZm9yIGV4YW1wbGUsICcna3VqbWlrY2Un JyAibnVyc2UiIGlzICcna3VqX19NSUtfX2NlJycsIG5vdCAnJ19fS1VKX19taWtjZScnLiBUaGUg bmFtZSAiSnVsaWV0dGUiIHdvdWxkIGJlIHdyaXR0ZW4gJycuREpVbGksZXQuJycgaWYgcHJvbm91 bmNlZCBpbiBhbiBFbmdsaXNoIHdheSwgYnV0ICcnLmp1TElFVC4nJyBpZiBwcm9ub3VuY2VkIGFz IGluIEZyZW5jaC4KCiEhISFBbHBoYWJldAoKSW4gbW9zdCBsYW5ndWFnZSB0ZXh0Ym9va3MsIHlv dSBnZXQgdGhlIGFscGhhYmV0IG9mIHRoZSBsYW5ndWFnZSB0b2dldGhlciB3aXRoIGl0cyBzb3Vu ZHMuIExldHRlcnMgKCcnbGVyZnUnJykgdHVybiBvdXQgdG8gYmUgZXZlbiBtb3JlIGltcG9ydGFu dCB0aGFuIHVzdWFsIGluIExvamJhbiwgc28gd2UgbWlnaHQgYXMgd2VsbCBnbyB0aHJvdWdoIHRo ZWlyIG5hbWVzIHF1aWNrbHkuCgpDb25zb25hbnRzIGFyZSBzdHJhaWdodGZvcndhcmQ6IHRoZSBu YW1lIG9mIGEgY29uc29uYW50IGxldHRlciBpcyB0aGF0IGxldHRlciwgcGx1cyB5LiBTbyB0aGUg Y29uc29uYW50IGxldHRlcnMgb2YgTG9qYmFuLCAiYiwgYywgZCwgZiwgZyAuLi4iLCBhcmUgY2Fs bGVkICcnYnkuLCBjeS4sIGR5LiwgZnkuLCBneS4nJyAuLi4gaW4gTG9qYmFuICh1c2luZyB0aGUg ZnVsbCBzdG9wIGFzIHdlJ3ZlIGp1c3QgZGVzY3JpYmVkLikKClZvd2VscyBfX3dvdWxkX18gYmUg Y2FsbGVkICcnLmF5LCAuZXksIC5peScnLCBidXQgdGhhdCB3b3VsZCBiZSByYXRoZXIgZGlmZmlj dWx0IHRvIHByb25vdW5jZS4gSW5zdGVhZCwgdGhleSBhcmUgaGFuZGxlZCBieSBmb2xsb3dpbmcg dGhlIHZvd2VsIHNvdW5kIHdpdGggdGhlIHdvcmQgJydidScnLCB3aGljaCBiYXNpY2FsbHkgbWVh bnMgJ2xldHRlcicuIFNvIHRoZSB2b3dlbHMgb2YgTG9qYmFuIGFyZTogJycuYWJ1LCAuZWJ1LCAu aWJ1LCAub2J1LCAudWJ1LCB5YnUuJycKClRoZSBhcG9zdHJvcGhlIGlzIHJlZ2FyZGVkIGFzIGEg cHJvcGVyIGxldHRlciBpbiBMb2piYW4sIGFuZCBpcyBjYWxsZWQgJycueSd5LicnIC4gVG8gc29t ZSBwZW9wbGUsIHRoaXMgc291bmRzIGxpa2UgYSBjb3VnaDsgdG8gb3RoZXIsIGxpa2UgInVoLWh1 aCIgKHdoZW4gaXQgbWVhbnMgJ1llcycgcmF0aGVyIHRoYW4gJ05vJy4pCgpMb2piYW4gaGFzIHdh eXMgb2YgcmVmZXJpbmcgdG8gbW9zdCBsZXR0ZXJzIHlvdSBjYW4gdGhpbmsgb2YuIElmIHlvdSBo YXZlIHRoZSB1cmdlIHRvIHNwZWxsIG91dCB5b3VyIG5hbWUgaW4gTG9qYmFuIGFuZCBoYXZlIGFu ICJIIiwgIlEiLCBvciAiVyIgdG8gZGVhbCB3aXRoLCB5b3UgY2FuIHVzZSAnJy55J3kuYnUsIGt5 LmJ1JycgYW5kICcndnkuYnUnJy4gU28gIlNjaHdhcnplbmVnZ2VyIiBpcyBzcGVsdCBpbiBMb2pi YW4gYXM6CgonJ3N5LiBjeS4gLnkneS5idSB2eS5idS4gLmFidSByeS4genkuIC5lYnUgbnkuIC5l YnUgZ3kuIGd5LiAuZWJ1IHJ5LicnCgpBbmQgc3BlbGxpbmcgInRoYXQiIGlzIGEgdGFzayB0aGUg ZXF1YWwgb2YgYW55dGhpbmcgdGhlIFRlcm1pbmF0b3IgZXZlciBkaWQhCgoKCk5vdyBzcGVsbCB5 b3VyIG5hbWUgaW4gTG9qYmFuIChvciBhdCBsZWFzdCBzb21ldGhpbmcgY2xvc2UgZW5vdWdoIHRv IGl0IHRvIHVzZSB0aGUgdHdlbnR5LXNpeCBsZXR0ZXJzIG9mIEVuZ2xpc2ggd2UgaGF2ZSBsZWFy bmVkLCBhbmQgdGhlIGFwb3N0cm9waGUpLgoKCgohISEhICdDb3JyZWN0JyBwcm9udW5jaWF0aW9u CgpZb3UgZG9uJ3QgaGF2ZSB0byBiZSB2ZXJ5IHByZWNpc2UgYWJvdXQgTG9qYmFuIHByb251bmNp YXRpb24sIGJlY2F1c2UgdGhlIHBob25lbWVzIGFyZSBkaXN0cmlidXRlZCBzbyB0aGF0IGl0IGlz IGhhcmQgdG8gbWlzdGFrZSBvbmUgc291bmQgZm9yIGFub3RoZXIuIFRoaXMgbWVhbnMgdGhhdCBy YXRoZXIgdGhhbiBvbmUgJ2NvcnJlY3QnIHByb251bmNpYXRpb24sIHRoZXJlIGlzIGEgcmFuZ2Ug b2YgYWNjZXB0YWJsZSBwcm9udW5jaWF0aW9u4oCUdGhlIGdlbmVyYWwgcHJpbmNpcGxlIGlzIHRo YXQgYW55dGhpbmcgaXMgT0sgc28gbG9uZyBhcyBpdCBkb2Vzbid0IHNvdW5kIHRvbyBtdWNoIGxp a2Ugc29tZXRoaW5nIGVsc2UuIEZvciBleGFtcGxlLCBMb2piYW4gciBjYW4gYmUgcHJvbm91bmNl ZCBsaWtlIHRoZSAiciIgaW4gRW5nbGlzaCwgU2NvdHRpc2ggb3IgRnJlbmNoLgoKVHdvIHRoaW5n cyB0byBiZSBjYXJlZnVsIG9mLCB0aG91Z2gsIGFyZSBwcm9ub3VuY2luZyBMb2piYW4gJydpJycg YW5kICcndScnIGxpa2UgU3RhbmRhcmQgQnJpdGlzaCBFbmdsaXNoICJoaXQiIGFuZCAiYnV0IiAo Tm9ydGhlcm4gRW5nbGlzaCAiYnV0IiBpcyBmaW5lISkuIFRoaXMgaXMgYmVjYXVzZSBub24tTG9q YmFuIHZvd2VscywgcGFydGljdWxhcmx5IHRoZXNlIHR3bywgYXJlIHVzZWQgdG8gc2VwYXJhdGUg Y29uc29uYW50cyBieSBwZW9wbGUgd2hvIGZpbmQgdGhlbSBoYXJkIHRvIHNheS4gRm9yIGV4YW1w bGUsIGlmIHlvdSBoYXZlIHByb2JsZW1zIHNwaXR0aW5nIG91dCB0aGUgJyd6ZCcnIGluICcnemRh bmknJyAoaG91c2UpLCB5b3UgY2FuIHNheSB6yapkYW5p4oCUd2hlcmUgdGhlICLJqiIgaXMgdmVy eSBzaG9ydCwgYnV0IHRoZSBmaW5hbCAiaSIgaGFzIHRvIGJlIGxvbmcuCgohISEhTG9qYmFuIE5h bWVzIChjbWV2bGEpCgpXYXRjaCBhbnkgZmlsbSB3aGVyZSBwZW9wbGUgZG9uJ3Qga25vdyBlYWNo IG90aGVyJ3MgbGFuZ3VhZ2UuIFRoZXkgc3RhcnQgb2ZmIHNheWluZyB0aGluZ3MgbGlrZSDigJxN ZSBUYXJ6YW4s4oCdIHdoaWNoIGlzIGFzIGdvb2QgYSBwbGFjZSB0byBzdGFydCBsZWFybmluZyBM b2piYW4gYXMgYW55LiBTbyBoZXJlIHdlIGdvLgoKX18nJ21pJ2UgLnJvYmluLicnX18KCiJJLWFt LW5hbWVkIFJvYmluIgoKIkknbSBSb2JpbiIKCicnbWknZScnIGlzIHJlbGF0ZWQgdG8gJydtaScn LCB3aGljaCBpcyAnSScsICdtZScgYW5kIHNvIG9uLiBJdCdzIGEgZ29vZCBleGFtcGxlIG9mIHRo ZSBhcG9zdHJvcGhlIHNlcGFyYXRpbmcgdHdvIHZvd2VscywgYW5kIHNvdW5kcyBhIGJpdCBsaWtl ICJtZSBoZWgiLgoKVGhpcyBndXkgUm9iaW4gaXMgbHVja3kgYmVjYXVzZSBoaXMgbmFtZSBnb2Vz IGRpcmVjdGx5IGludG8gTG9qYmFuIHdpdGhvdXQgYW55IGNoYW5nZXMuIEhvd2V2ZXIsIHRoZXJl IGFyZSBzb21lIHJ1bGVzIGZvciBMb2piYW4gbmFtZXMgd2hpY2ggbWVhbiB0aGF0IHNvbWUgbmFt ZXMgaGF2ZSB0byBiZSAnTG9qYmFuaXNlZCcuIFRoaXMgbWF5IHNvdW5kIHN0cmFuZ2XigJRhZnRl ciBhbGwsIGEgbmFtZSBpcyBhIG5hbWXigJRidXQgaW4gZmFjdCBhbGwgbGFuZ3VhZ2VzIGRvIHRo aXMgdG8gc29tZSBleHRlbnQuIEZvciBleGFtcGxlLCBFbmdsaXNoIHNwZWFrZXJzIHRlbmQgdG8g cHJvbm91bmNlICJKb3NlIiBzb21ldGhpbmcgbGlrZSAiSG96YXkiLCBhbmQgIk1hcmdhcmV0IiBp biBDaGluZXNlIGlzICJNYWdlbGl0YSIuIFNvbWUgc291bmRzIGp1c3QgZG9uJ3QgZXhpc3QgaW4g c29tZSBsYW5ndWFnZXMsIHNvIHRoZSBmaXJzdCB0aGluZyB5b3UgbmVlZCB0byBkbyBpcyByZXdy aXRlIHRoZSBuYW1lIHNvIHRoYXQgaXQgb25seSBjb250YWlucyBMb2piYW4gc291bmRzLCBhbmQg aXMgc3BlbHQgaW4gYSBMb2piYW4gd2F5LgoKX19Ob3RlOiBfX1RoZSBjYXRjaCBoZXJlIGlzLCB3 aGF0IHZlcnNpb24gb2YgdGhlIHNvdW5kcyB3aWxsIHlvdSBiZSB1c2luZz8gRm9yIEVuZ2xpc2gg aW4gcGFydGljdWxhciwgQnJpdGlzaCBhbmQgQW1lcmljYW4gdm93ZWxzIGNhbiBiZSBxdWl0ZSBk aWZmZXJlbnQuIFRoZSBCcml0aXNoIHZlcnNpb24gb2YgIlJvYmluIiBpcyByZWFzb25hYmx5IGFw cHJveGltYXRlZCBieSAnJy5yb2Jpbi4nJzsgYnV0IHRoZSBBbWVyaWNhbiB2ZXJzaW9uIGlzIGNs b3NlciB0byAnJy5yYWJ5bi4nJyBvciAnJy5yYWIsbi4nJy4gQW5kIHdpdGhpbiBBbWVyaWNhIGFu ZCBCcml0YWluLCB0aGVyZSBpcyBhbHNvIGEgZ29vZCBkZWFsIG9mIHZhcmlhdGlvbi4gU28geW91 IHNob3VsZCB0YWtlIHRoZSB0cmFuc2xpdGVyYXRpb25zIGdpdmVuIGJlbG93IHdpdGggYSBncmFp biBvZiBzYWx0LgoKTGV0J3MgdGFrZSB0aGUgRW5nbGlzaCBuYW1lICJTdXNhbiIuIFRoZSB0d28g JydzJycncyBhcmUgcHJvbm91bmNlZCBkaWZmZXJlbnRseeKAlHRoZSBzZWNvbmQgb25lIGlzIGFj dHVhbGx5IGEgInoi4oCUYW5kIHRoZSAiYSIgaXMgbm90IHJlYWxseSBhbiAiYSIgc291bmQsIGl0 J3MgdGhlICdzY2h3YScgd2UganVzdCBtZW50aW9uZWQuIFNvICJTdXNhbiIgY29tZXMgb3V0IGlu IExvamJhbiBhcyAnJy5zdXp5bi4nJy4KCllvdSBtYXkgaGF2ZSBub3RpY2VkIHR3byBleHRyYSBm dWxsIHN0b3BzIChwZXJpb2RzKSB0aGVyZS4gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSBpZiB5 b3UgZGlkbid0IHBhdXNlLCB5b3UgbWlnaHQgbm90IGtub3cgd2hlcmUgdGhlIHByZXZpb3VzIHdv cmQgZW5kZWQgYW5kIHRoZSBuZXh0IHdvcmQgYmVnYW4uCgoKCllvdSBzaG91bGQgYWxzbyBwdXQg YSBmdWxsIHN0b3AgaW4gYmV0d2VlbiBhIHBlcnNvbidzIGZpcnN0IGFuZCBsYXN0IG5hbWVzICh0 aG91Z2ggaXQncyBub3QgY29tcHVsc29yeSksIHNvICJKaW0gSm9uZXMiIGJlY29tZXMgJycuZGpp bS5kam9uei4nJy4KCkFuIGltcG9ydGFudCBydWxlIGZvciBMb2piYW5pc2luZyBuYW1lcyBpcyB0 aGF0IHRoZSBsYXN0IGxldHRlciBvZiBhIGNtZXZsYSAoTG9qYmFuIG5hbWUpIG11c3QgYmUgYSBj b25zb25hbnQuIEFnYWluLCB0aGlzIGlzIHRvIHByZXZlbnQgY29uZnVzaW9uIGFzIHRvIHdoZXJl IGEgbmFtZSBlbmRzLCBhbmQgd2hhdCBpcyBhbmQgaXMgbm90IGEgbmFtZSAoYWxsIG90aGVyIExv amJhbiB3b3JkcyBlbmQgaW4gYSB2b3dlbCkuIFdlIHVzdWFsbHkgdXNlICcncycnIGZvciB0aGlz OyBzbyBpbiBMb2piYW4sICJNYXJ5IiBiZWNvbWVzICcnLm1lcmlzLicnICwgIkpvZSIgYmVjb21l cyAnJy5kam9zLicnIGFuZCBzbyBvbi4gQW4gYWx0ZXJuYXRpdmUgaXMgdG8gbGVhdmUgb3V0IHRo ZSBsYXN0IHZvd2VsLCBzbyAiTWFyeSIgd291bGQgYmVjb21lICcnLm1lci4nJyBvciAnJy5tZWly LicnLgoKCgpUaGUgZmluYWwgcG9pbnQgaXMgc3RyZXNzLiBBcyB3ZSd2ZSBzZWVuLCBMb2piYW4g d29yZHMgYXJlIHN0cmVzc2VkIG9uIHRoZSBwZW51bHRpbWF0ZSBzeWxsYWJsZSwgYW5kIGlmIGEg bmFtZSBoYXMgZGlmZmVyZW50IHN0cmVzcywgd2UgdXNlIGNhcGl0YWwgbGV0dGVycy4gVGhpcyBt ZWFucyB0aGF0IHRoZSBFbmdsaXNoIGFuZCBGcmVuY2ggbmFtZXMgIlJvYmVydCIgY29tZSBvdXQg ZGlmZmVyZW50bHkgaW4gTG9qYmFuOiB0aGUgRW5nbGlzaCBuYW1lIGlzICcnLnJvYnl0LicnIGlu IFVLIEVuZ2xpc2gsIG9yICcnLnJhYixydC4nJyBpbiBzb21lIEFtZXJpY2FuIGRpYWxlY3RzLCBi dXQgdGhlIEZyZW5jaCBpcyAnJy5yb0JFUi4nJy4KClRvIGdpdmUgYW4gaWRlYSBvZiBob3cgYWxs IHRoaXMgd29ya3MsIGhlcmUgYXJlIHNvbWUgbmFtZXMgb2YgZmFtb3VzIHBlb3BsZSBpbiB0aGVp ciBvd24gbGFuZ3VhZ2UgYW5kIGluIExvamJhbi4KCgoKfHxfX0VuZ2xpc2hfXwoKTWFyZ2FyZXQg VGhhdGNoZXIgfCcnLm1hZ3J5dC50YXRjeXIuJycgKG5vICJ0aCIgaW4gTG9qYmFuIGJlY2F1c2Ug bW9zdCBwZW9wbGUgYXJvdW5kIHRoZSB3b3JsZCBjYW4ndCBzYXkgaXQhKQoKTWljayBKYWdnZXIg fCcnLm1pay5kamFneXMuJycgfHwKCnx8X19GcmVuY2hfXwoKTmFwb2xlb24gQm9uYXBhcnRlIHwn Jy5uYXBvbGUsT04uYm9uYVBBUlQuJycKCkp1bGlldHRlIEJpbm9jaGUgfCcnLmp1TElFVC5iaW5P Qy4nJyB8fAoKfHxfX0NoaW5lc2VfXwoKTGFvemkgfCcnLmxhdWR6LicnCgpNYW8gWmVkb25nIHwn Jy5tYXVkenlEWU4uJycgKEZpbmFsICcnbmcnJyBpcyBpbiBMb2piYW4gY29udmVudGlvbmFsbHkg dHVybmVkIGludG8gbi4pIHx8Cgp8fF9fVHVya2lzaF9fCgpNdXN0YWZhIEtlbWFsIHwnJy5NVVN0 YWZhcy5rZU1BTC4nJwoKRXJraW4gS29yYXkgfCcnLmVya2luLmtvcmFpcy4nJyB8fAoKfHxfX0dl cm1hbl9fCgpGcmllZHJpY2ggTmlldHpzY2hlIHwnJy5mcmlkcml4Lm5pdGN5cy4nJwoKQ2xhcmEg U2NodW1hbm4gfCcnLmtsYXJhcy5jdW1hbi4nJyB8fAoKfHxfX1NwYW5pc2hfXwoKSXNhYmVsIEFs bGVuZGUgfCcnLml6YUJFTC5haWVuZGVzLicnCgpDaGUgR3VldmFyYSB8JycudGNlZ2V2YXJhcy4n JyB8fAoKX19FeGVyY2lzZV9fLgoKV2hlcmUgYXJlIHRoZXNlIHBsYWNlcz8KCiMubnUsSU9SSy4K CiMucm9tYXMuCgojLnhhdmFuYXMuCgojLmthcmRpZi4KCiMuYmVpZGppbi4KCiMuQU5rYXJhcy4K CiMuQUxiZWtlcmtpcy4KCiMudmFua3V2ZXIuCgojLmtlaXB0YXVuLgoKIy50YWliZWlzLgoKIy5i b24uCgojLmRlbGlzLgoKIy5uaXMuCgojLmF0aW5hcy4KCiMubGlkei4KCiMueGVsc2lua2lzLgoK QW5zd2VyOgoKfn5ncmF5LGdyYXk6fn4KCiN+fmdyYXksZ3JheTpOZXcgWW9yazogVVNBfn4KCiN+ fmdyYXksZ3JheTpSb21lOiBJdGFseX5+Cgojfn5ncmF5LGdyYXk6SGF2YW5hOiBDdWJhfn4KCiN+ fmdyYXksZ3JheTpDYXJkaWZmOiBXYWxlcyAoVGhlIFdlbHNoIGZvciAiQ2FyZGlmZiIgaXMgIkNh ZXJkeWRkIiwgd2hpY2ggd291bGQgTG9qYmFuaXNlIHRvIHNvbWV0aGluZyBsaWtlIGthaXJkeWQu Lil+fgoKI35+Z3JheSxncmF5OkJlaWppbmc6IENoaW5hfn4KCiN+fmdyYXksZ3JheTpBbmthcmE6 IFR1cmtleX5+Cgojfn5ncmF5LGdyYXk6QWxiZXF1ZXJxdWU6IE5ldyBNZXhpY28sIFVTQX5+Cgoj fn5ncmF5LGdyYXk6VmFuY291dmVyOiBDYW5hZGF+fgoKI35+Z3JheSxncmF5OkNhcGUgVG93bjog U291dGggQWZyaWNhfn4KCiN+fmdyYXksZ3JheTpUYWlwZWk6IFRhaXdhbiAobm90ZSBiLCBub3Qg cC4gQWx0aG91Z2ggYWN0dWFsbHksIHRoZSBiIGluIFBpbnlpbiBpcyBwcm9ub3VuY2VkIGFzIGEg cC4uLiBCdXQgdGhpcyBpc24ndCBtZWFudCB0byBiZSBhIGNvdXJzZSBvbiBNYW5kYXJpbiEpfn4K CiN+fmdyYXksZ3JheTpCb25uOiBHZXJtYW55fn4KCiN+fmdyYXksZ3JheTpEZWxoaTogSW5kaWEg KFRoZSBIaW5kaSBmb3IgIkRlbGhpIiBpcyAiRGlsbMOuIiwgd2hpY2ggd291bGQgZ2l2ZSBkaWxp eXMuIG9yIGRpbGknaXMuLil+fgoKI35+Z3JheSxncmF5Ok5pY2U6IEZyYW5jZX5+Cgojfn5ncmF5 LGdyYXk6QXRoZW5zOiBHcmVlY2UgKCJBdGhpbmEiIGluIEdyZWVrKX5+Cgojfn5ncmF5LGdyYXk6 TGVlZHM6IEVuZ2xhbmR+fgoKI35+Z3JheSxncmF5OkhlbHNpbmtpOiBGaW5sYW5kfn4KCl9fRXhl cmNpc2VfXy4KCkxvamJhbmlzZSB0aGUgZm9sbG93aW5nIG5hbWVzCgojSm9obgoKI01lbGlzc2EK CiNBbWFuZGEKCiNNYXR0aGV3CgojTWljaGFlbAoKI0RhdmlkIEJvd2llCgojSmFuZSBBdXN0ZW4K CiNXaWxsaWFtIFNoYWtlc3BlYXJlCgojU2lnb3VybmV5IFdlYXZlcgoKI1JpY2hhcmQgTml4b24K CiNJc3RhbmJ1bAoKI01hZHJpZAoKI1Rva3lvCgojU2FuIFNhbHZhZG9yCgpBbnN3ZXI6Cgp+fmdy YXksZ3JheTpUaGVyZSBhcmUgdXN1YWxseSBhbHRlcm5hdGl2ZSBzcGVsbGluZ3MgZm9yIG5hbWVz LCBlaXRoZXIgYmVjYXVzZSBwZW9wbGUgcHJvbm91bmNlIHRoZSBvcmlnaW5hbHMgZGlmZmVyZW50 bHksIG9yIGJlY2F1c2UgdGhlIGV4YWN0IHNvdW5kIGRvZXNuJ3QgZXhpc3QgaW4gTG9qYmFuLCBz byB5b3UgbmVlZCB0byBjaG9vc2UgYmV0d2VlbiB0d28gTG9qYmFuIGxldHRlcnMuIFRoaXMgZG9l c24ndCBtYXR0ZXIsIHNvIGxvbmcgYXMgZXZlcnlvbmUga25vd3Mgd2hvIG9yIHdoZXJlIHlvdSdy ZSB0YWxraW5nIGFib3V0Ln5+Cgojfn5ncmF5LGdyYXk6LmRqb24uIChvciAuZGphbi4gd2l0aCBz b21lIGFjY2VudHMpfn4KCiN+fmdyYXksZ3JheToubWVsaXN5cy5+fgoKI35+Z3JheSxncmF5Oi5h bWFuZHlzLiAoYWdhaW4sIGRlcGVuZGluZyBvbiB5b3VyIGFjY2VudCwgdGhlIGZpbmFsIHkgbWF5 IGJlIGEsIHRoZSBpbml0aWFsIGEgbWF5IGJlIHksIGFuZCB0aGUgbWlkZGxlIGEgbWF5IGJlIGUu KX5+Cgojfn5ncmF5LGdyYXk6Lm1hdGl1cy5+fgoKI35+Z3JheSxncmF5Oi5tYWlreWwuIG9yIC5t YWlrLGwuICwgZGVwZW5kaW5nIG9uIGhvdyB5b3Ugc2F5IGl0Ln5+Cgojfn5ncmF5LGdyYXk6LmRl aXZ5ZC5iYXUsaXMuIG9yIC5ibyxpcy4gKGJ1dCBub3QgLmJ1LGlzLiDigJQgdGhhdCdzIHRoZSBr bmlmZSl+fgoKI35+Z3JheSxncmF5Oi5kamVpbi5vc3Rpbi5+fgoKI35+Z3JheSxncmF5Oi51aWxp YW0uY2Vrc3Bpci5+fgoKI35+Z3JheSxncmF5Oi5zaWdvcm5pcy51aXZ5ci4gb3IgLnN5Z29ybmlz LnVpdnlyLn5+Cgojfn5ncmF5LGdyYXk6LnJpdGN5cmQubmlrc3luLn5+Cgojfn5ncmF5LGdyYXk6 LmlzdGFuQlVMLiB3aXRoIEVuZ2xpc2ggc3RyZXNzLCAuSVN0YW5idWwuIHdpdGggQW1lcmljYW4s IC5pc3RhbmJ1bC4gd2l0aCBUdXJraXNoLiBMb2piYW5pc3RzIGdlbmVyYWxseSBwcmVmZXIgdG8g YmFzZSBjbWV2bGEgb24gbG9jYWwgcHJvbnVuY2lhdGlvbiwgYnV0IHRoaXMgaXMgbm90IGFuIGFi c29sdXRlIHJ1bGUufn4KCiN+fmdyYXksZ3JheToubWFEUklELn5+Cgojfn5ncmF5LGdyYXk6LnRv a2lvcy5+fgoKI35+Z3JheSxncmF5Oi5zYW4uc2FsdmFET1IuICh3aXRoIFNwYW5pc2ggc3RyZXNz KSA8L3NwYW4+PC9odG1sPn5+CgohISEhTG9qYmFuIHdvcmRzIGFzIG5hbWVzCgpCeSBub3cgeW91 IHNob3VsZCBiZSBhYmxlIHRvIExvamJhbmlzZSB5b3VyIG93biBuYW1lLiBIb3dldmVyLCBpZiB5 b3UgcHJlZmVyLCB5b3UgY2FuIHRyYW5zbGF0ZSB5b3VyIG5hbWUgaW50byBMb2piYW4gKGlmIHlv dSBrbm93IHdoYXQgaXQgbWVhbnMsIG9mIGNvdXJzZSkgb3IgYWRvcHQgYSBjb21wbGV0ZWx5IG5l dyBMb2piYW4gaWRlbnRpdHkuIE5hdGl2ZSBBbWVyaWNhbnMgZ2VuZXJhbGx5IHRyYW5zbGF0ZSB0 aGVpciBuYW1lIHdoZW4gc3BlYWtpbmcgRW5nbGlzaCwgcGFydGx5IGJlY2F1c2UgdGhleSBoYXZl IG1lYW5pbmdmdWwgbmFtZXMsIGFuZCBwYXJ0bHkgYmVjYXVzZSB0aGV5IGRvbid0IGV4cGVjdCB0 aGUgIndhc2ljaHUiIHRvIGJlIGFibGUgdG8gcHJvbm91bmNlIHdvcmRzIGluIExha290YSwgQ2hl cm9rZWUgb3Igd2hhdGV2ZXIhCgpMb2piYW4gd29yZHMgKGV4Y2VwdCBjbWV2bGEpIGVuZCBpbiBh IHZvd2VsLiBZb3UgY2FuIHVzZSBsb2piYW4gd29yZHMgYXMgbmFtZXMgdG9vLiBCdXQgaWYgeW91 IHByZWZlciB0aGF0IHlvdXIgbmFtZSBpcyBhIGNtZXZsYSBhbmQgaXQgZW5kcyBpbiBhIHZvd2Vs IHRoZW4geW91IGNhbiBlaXRoZXIgYWRkIGEgY29uc29uYW50IHRvIHRoZSBlbmQgb2YgaXQgb3Ig anVzdCBjaG9wIHRoZSBlbmQgdm93ZWwgb2ZmLgoKSGVyZSBhcmUgYSBmZXcgZXhhbXBsZXMgKG9y aWdpbmFsIG5hbWUsIG1lYW5pbmcsIG5hbWUgYW5kIG5hbWUgYXMgY21ldmxhKToKCipGaXNoIOKA kyBmaW5wZSDigJMgJycuZmlucC4nJwoKKkJqw7ZybiAoU2NhbmRpbmF2aWFuID0gYmVhcikg4oCT IGNyaWJlIOKAkyAnJy5jcmliLicnCgoqR3JlZW4g4oCTIGNyaW5vIOKAkyAnJy5jcmluLicnCgoq TWVpIExpIChDaGluZXNlID0gYmVhdXRpZnVsKSDigJMgbWVsYmkg4oCTICcnLm1lbGIuJycKCipB eWhhbiAoVHVya2lzaCA9IE1vb24gTG9yZCkg4oCTIGx1bnJhIG5vYmxpICg9IGx1cm5vYmxpKSDi gJMgJycubHVybm9ibGlzLicnCgoKCiEhTG9qYmFuIExlc3NvbnMg4oCTIGxlc3NvbiBvbmUgKGJy aWRpLCBqdWZyYSwgc3VtdGkgYW5kIHNlbGJyaSkKCkEgJydicmlkaScnIGlzIHRoZSBtb3N0IGNl bnRyYWwgdW5pdCBvZiBMb2piYW4gdXR0ZXJhbmNlcy4gVGhlIGNvbmNlcHQgaXMgdmVyeSBjbG9z ZSB0byB3aGF0IHdlIGNhbGwgYSBwcm9wb3NpdGlvbiBpbiBFbmdsaXNoLiBBIGJyaWRpIGlzIGEg Y2xhaW0gdGhhdCBzb21lIG9iamVjdHMgc3RhbmQgaW4gYSByZWxhdGlvbiB0byBlYWNoIG90aGVy LCBvciB0aGF0IGFuIG9iamVjdCBoYXMgc29tZSBwcm9wZXJ0eS4gVGhpcyBzdGFuZHMgaW4gY29u dHJhc3QgdG8gJydqdWZyYScnLCB3aGljaCBhcmUgbWVyZWx5IExvamJhbiB1dHRlcmFuY2VzLCB3 aGljaCBjYW4gYmUgYnJpZGkgb3IgYW55dGhpbmcgZWxzZSBiZWluZyBzYWlkLiBUaGUgZGlmZmVy ZW5jZSBiZXR3ZWVuIGEgYnJpZGkgYW5kIGEganVmcmEgaXMgdGhhdCBhIGp1ZnJhIGRvZXMgbm90 IG5lY2Vzc2FyaWx5IHN0YXRlIGFueXRoaW5nLCB3aGlsZSBhIGJyaWRpIGRvZXMuIFRodXMsIGEg YnJpZGkgbWlnaHQgYmUgdHJ1ZSBvciBmYWxzZSwgd2hpbGUgbm90IGFsbCBqdWZyYSBjYW4gYmUg c2FpZCB0byBiZSBzdWNoLgoKVG8gaGF2ZSBzb21lIGV4YW1wbGVzIChpbiBFbmdsaXNoLCB0byBi ZWdpbiB3aXRoKSwg4oCcTW96YXJ0IHdhcyB0aGUgZ3JlYXRlc3QgbXVzaWNpYW4gb2YgYWxsIHRp bWXigJ0gaXMgYSBicmlkaSwgYmVjYXVzZSBpdCBtYWtlcyBhIGNsYWltIHdpdGggYSB0cnV0aCB2 YWx1ZSwgYW5kIGl0IGludm9sdmVzIGFuIG9iamVjdCwgTW96YXJ0LCBhbmQgYSBwcm9wZXJ0eSwg YmVpbmcgdGhlIGdyZWF0ZXN0IG11c2ljaWFuIG9mIGFsbCB0aW1lLiBPbiB0aGUgY29udHJhcnks IOKAnE93ISBNeSB0b2Uh4oCdIGlzIG5vdCBhIGJyaWRpLCBzaW5jZSBpdCBkb2VzIG5vdCBpbnZv bHZlIGEgcmVsYXRpb24sIGFuZCB0aHVzIGRvZXMgbm90IHN0YXRlIGFueXRoaW5nLiBCb3RoLCB0 aG91Z2gsIGFyZSBqdWZyYS4KClRyeSB0byBpZGVudGlmeSB0aGUgYnJpZGkgYW1vbmcgdGhlc2Ug RW5nbGlzaCBqdWZyYToKCgoKIyDigJxJIGhhdGUgaXQgd2hlbiB5b3UgZG8gdGhhdC7igJ0KCiMg 4oCcUnVucy7igJ0KCiMg4oCcV29haCwgdGhhdCBsb29rcyBkZWxpY2lvdXMh4oCdCgojIOKAnEdl ZXosIG5vdCBhZ2Fpbi7igJ0KCiMg4oCcTm8sIEkgb3duIHRocmVlIGNhcnPigJ0KCiMg4oCcTmlu ZXRlZW4gbWludXRlcyBwYXN0IGVpZ2h0LuKAnQoKIyDigJxUaGlzIFNhdHVyZGF5LCB5ZXMu4oCd CgoKCkFuc3dlcjogfn5ncmV5LGdyZXk6MSwgMyBhbmQgNSBhcmUgYnJpZGkuIDIgY29udGFpbnMg bm8gb2JqZWN0cyBhbmQgdGhlIHJlc3QgY29udGFpbiBubyByZWxhdGlvbiBvciBjbGFpbSBvZiBh IHByb3BlcnR5Ln5+CgoKClB1dCBpbiBMb2piYW4gdGVybXMsIGEgYnJpZGkgY29uc2lzdHMgb2Yg b25lICcnc2VsYnJpJycsIGFuZCBvbmUgb3IgbW9yZSAnJ3N1bXRpJycuIFRoZSBzZWxicmkgaXMg dGhlIHJlbGF0aW9uIG9yIGNsYWltIGFib3V0IHRoZSBvYmplY3QsIGFuZCB0aGUgc3VtdGkgYXJl IHRoZSBvYmplY3RzIHdoaWNoIGFyZSBpbiBhIHJlbGF0aW9uLiBOb3RlIHRoYXQg4oCcb2JqZWN0 4oCdIGlzIG5vdCBhIHBlcmZlY3QgdHJhbnNsYXRpb24gb2Yg4oCcc3VtdGnigJ0sIHNpbmNlIOKA nHN1bXRp4oCdIGNhbiByZWZlciB0byBub3QganVzdCBwaHlzaWNhbCBvYmplY3RzLCBidXQgY2Fu IGFsc28gcHVyZWx5IGFic3RyYWN0IHRoaW5ncyBsaWtlIOKAnFRoZSBpZGVhIG9mIHdhcmZhcmXi gJ0uIEEgYmV0dGVyIHRyYW5zbGF0aW9uIHdvdWxkIGJlIHNvbWV0aGluZyBsaWtlIOKAnHN1Ympl Y3QsIGRpcmVjdCBvciBpbmRpcmVjdCBvYmplY3TigJ0gZm9yIHN1bXRpLCBhbmQg4oCcdmVyYuKA nSBmb3Igc2VsYnJpLCB0aG91Z2gsIGFzIHdlIHdpbGwgc2VlLCB0aGlzIGlzIG5vdCBvcHRpbWFs IGVpdGhlci4KCldlIGNhbiBub3cgd3JpdGUgdGhlIGZpcnN0IGltcG9ydGFudCBsZXNzb24gZG93 bjoKCmJyaWRpID0gc2VsYnJpICsgb25lIG9yIG1vcmUgc3VtdGkKClB1dCBhbm90aGVyIHdheSwg YSBicmlkaSBzdGF0ZXMgdGhhdCBzb21lIHN1bXRpIGRvL2FyZSBzb21ldGhpbmcgZXhwbGFpbmVk IGJ5IGEgc2VsYnJpLgoKCgpJZGVudGlmeSB0aGUgc3VtdGkgYW5kIHNlbGJyaSBlcXVpdmFsZW50 cyBpbiB0aGVzZSBFbmdsaXNoIGp1ZnJhOgoK4oCcSSB3aWxsIHBpY2sgdXAgbXkgZGF1Z2h0ZXJz IHdpdGggbXkgY2Fy4oCdCgoKCkFuc3dlcjogfn5ncmV5LGdyZXk6c2VsYnJpOiDigJxwaWNrIHVw ICh3aXRoKeKAnS4gc3VtdGk6IOKAnEnigJ0sIOKAnG15IGRhdWdodGVyc+KAnSwg4oCcbXkgY2Fy 4oCdfn4KCgoK4oCcSGUgYm91Z2h0IDUgbmV3IHNoaXJ0cyBmcm9tIE1hcmsgZm9yIGp1c3QgdHdv IGh1bmRyZWQgZXVybyHigJ0KCgoKQW5zd2VyOiB+fmdyZXksZ3JleTpzZWxicmk6IOKAnGJvdWdo dCAoZnJvbSkgKGZvcinigJ0gc3VtdGk6IOKAnEhl4oCdLCDigJw1IG5ldyBzaGlydHPigJ0sIOKA nE1hcmvigJ0gYW5kIOKAnHR3byBodW5kcmVkIGV1cm9z4oCdfn4KCgoKU2luY2UgdGhlc2UgY29u Y2VwdHMgYXJlIHNvIGZ1bmRhbWVudGFsIHRvIExvamJhbiwgbGV0J3MgaGF2ZSBhIHRoaXJkIGV4 YW1wbGU6IOKAnFNvIGZhciwgdGhlIEVQQSBoYXMgZG9uZSBub3RoaW5nIGFib3V0IHRoZSBhbW91 bnQgb2Ygc3VscGh1ciBkaW94aWRlLuKAnQoKCgpBbnN3ZXI6IH5+Z3JleSxncmV5OnNlbGJyaTog 4oCcaGFzIGRvbmUgKGFib3V0KeKAnSBzdW10aTog4oCcVGhlIEVQQeKAnSwg4oCcbm90aGluZ+KA nSBhbmQg4oCcdGhlIGFtb3VudCBvZiBzdWxwaHVyIGRpb3hpZGXigJ1+fgoKCgpOb3cgdHJ5IGJl Z2luIG1ha2luZyBMb2piYW4gYnJpZGkuIEZvciB0aGlzIHlvdSB3aWxsIG5lZWQgdG8gdXNlIHNv bWUgd29yZHMsIHdoaWNoIGNhbiBhY3QgYXMgc2VsYnJpOgoKJydfX2R1bmRhX18nJyB4MSBnaXZl cyB4MiB0byB4MyAod2l0aG91dCBwYXltZW50KQoKJydfX3BlbHh1X18nJyB4MSBpcyB5ZWxsb3cK CicnX196ZGFuaV9fJycgeDEgaXMgYSBob21lIG9mIHgyCgoKCk5vdGljZSB0aGF0IHRoZXNlIHdv cmRzIG1lYW5pbmcg4oCcZ2l2ZeKAnSwg4oCceWVsbG934oCdIGFuZCDigJxob21l4oCdIHdvdWxk IGJlIGNvbnNpZGVyZWQgYSB2ZXJiLCBhbiBhZGplY3RpdmUgYW5kIGEgbm91biBpbiBFbmdsaXNo LiBJbiBMb2piYW4sIHRoZXJlIGFyZSBubyBzdWNoIGNhdGVnb3JpZXMgYW5kIG5vIHN1Y2ggZGlz dGluY3Rpb24uICcnZHVuZGEnJyBjYW4gYmUgdHJhbnNsYXRlZCDigJxnaXZlc+KAnSAodmVyYiks IOKAnGlzIGEgZ2l2ZXLigJ0gKG5vdW4pLCDigJxpcyBnaXZpbmfigJ0gKGFkamVjdGl2ZSkgYXMg d2VsbCBhcyB0byBhbiBhZHZlcmIgZm9ybS4gVGhleSBhbGwgYWN0IGFzIHNlbGJyaSwgYW5kIGFy ZSB1c2VkIGluIHRoZSBzYW1lIHdheS4KCgoKQXMgd2VsbCBhcyBhIGZldyB3b3Jkcywgd2hpY2gg Y2FuIGFjdCBhcyBzdW10aToKCicnX19taV9fJycg4oCcSeKAnSBvciDigJx3ZeKAnSDigJMgdGhl IG9uZSBvciB0aG9zZSB3aG8gYXJlIHNwZWFraW5nLgoKJydfX3RpX18nJyDigJx0aGlz4oCdIOKA kyBhIGNsb3NlIHRoaW5nIG9yIGV2ZW50IG5lYXJieSB3aGljaCBjYW4gYmUgcG9pbnRlZCB0byBi eSB0aGUgc3BlYWtlci4KCicnX19kb19fJycg4oCceW914oCdIOKAkyB0aGUgb25lIG9yIHRob3Nl IHdobyBhcmUgYmVpbmcgc3Bva2VuIHRvLgoKCgpTZWUgdGhlIHN0cmFuZ2UgdHJhbnNsYXRpb25z IG9mIHRoZSBzZWxicmkgYWJvdmUgLSBlc3BlY2lhbGx5IHRoZSB4MSwgeDIgYW5kIHgzPyBUaG9z ZSBhcmUgY2FsbGVkIHN1bXRpIHBsYWNlcy4gVGhleSBhcmUgcGxhY2VzIHdoZXJlIHN1bXRpIGNh biBnbyB0byBmaWxsIGEgYnJpZGkuIEZpbGxpbmcgYSBzdW10aSBpbiBhIHBsYWNlIHN0YXRlcyB0 aGF0IHRoZSBzdW10aSBmaXRzIGluIHRoYXQgcGxhY2UuIFRoZSBzZWNvbmQgcGxhY2Ugb2YgJydk dW5kYScnLCBmb3IgZXhhbXBsZSwgeDIsIGlzIHRoZSB0aGluZyBiZWluZyBnaXZlbi4gVGhlIHRo aXJkIGlzIHRoZSBvYmplY3Qgd2hpY2ggcmVjZWl2ZXMgdGhlIHRoaW5nLiBOb3RpY2UgYWxzbyB0 aGF0IHRoZSB0cmFuc2xhdGlvbiBvZiAnJ2R1bmRhJycgaGFzIHRoZSB3b3JkIOKAnHRv4oCdIGlu IGl0LiBUaGlzIGlzIGJlY2F1c2UsIHdoaWxlIHRoaXMgd29yZCBpcyBuZWVkZWQgaW4gRW5nbGlz aCB0byBzaWduaWZ5IHRoZSByZWNlaXZlciwgdGhlIHJlY2VpdmVyIGlzIGluIHRoZSB0aGlyZCBz dW10aSBwbGFjZSBvZiAnJ2R1bmRhJycuIFNvIHdoZW4geW91IGZpbGwgdGhlIHRoaXJkIHN1bXRp IHBsYWNlIG9mICcnZHVuZGEnJywgdGhlIHN1bXRpIHlvdSBmaWxsIGluIGlzIGFsd2F5cyB0aGUg cmVjZWl2ZXIsIGFuZCB5b3UgZG9uJ3QgbmVlZCBhbiBlcXVpdmFsZW50IHRvIHRoZSB3b3JkIOKA nHRv4oCdIQoKCgpUbyBzYXkgYSBicmlkaSwgeW91IHNpbXBseSBzYXkgdGhlIHgxIHN1bXRpIGZp cnN0LCB0aGVuIHRoZSBzZWxicmksIHRoZW4gYW55IG90aGVyIHN1bXRpLgoKVXN1YWwgYnJpZGk6 IHt4MSBzdW10aX0gX197c2VsYnJpfV9fIHt4MiBzdW10aX0ge3gzIHN1bXRpfSB7eDQgc3VtdGl9 IHt4NSBzdW10aX0ge2FuZCBzbyBvbn0KClRoZSBvcmRlciBjYW4gYmUgcGxheWVkIGFyb3VuZCB3 aXRoLCBidXQgZm9yIG5vdywgd2Ugc3RpY2sgd2l0aCB0aGUgdXN1YWwgZm9ybS4gVG8gc2F5IOKA nEkgZ2l2ZSB0aGlzIHRvIHlvdeKAnSB5b3UganVzdCBzYXkgJydtaSBkdW5kYSB0aSBkbycnLCB3 aXRoIHRoZSB0aHJlZSBzdW10aSBhdCB0aGUgcmlnaHQgcGxhY2VzLgoKCgpTbywgaG93IHdvdWxk IHlvdSBzYXkg4oCcVGhpcyBpcyBhIGhvbWUgb2YgbWXigJ0/CgoKCkFuc3dlcjogfn5ncmV5LGdy ZXk6Jyd0aSB6ZGFuaSBtaScnfn4KCgoKVHJ5IGEgZmV3IG1vcmUgaW4gb3JkZXIgdG8gZ2V0IHRo ZSBpZGVhIG9mIGEgcGxhY2Ugc3RydWN0dXJlIHNpbmsgaW4uCgoKCuKAnFlvdSBnaXZlIHRoaXMg dG8gbWXigJ0/CgoKCkFuc3dlcjogfn5ncmV5LGdyZXk6JydkbyBkdW5kYSB0aSBtaScnfn4KCgoK QW5kIHRyYW5zbGF0ZSAnJ3RpIHBlbHh1JycKCgoKQW5zd2VyOiB+fmdyZXksZ3JleTrigJxUaGlz IGlzIHllbGxvdy7igJ1+fgoKCgpRdWl0ZSBlYXN5IG9uY2UgeW91IGdldCB0aGUgaGFuZyBvZiBp dCwgcmlnaHQ/CgoKCk11bHRpcGxlIGJyaWRpIGFmdGVyIGVhY2ggb3RoZXIgYXJlIHNlcGFyYXRl ZCBieSAnJy5pJycgVGhpcyBpcyB0aGUgTG9qYmFuIGVxdWl2YWxlbnQgb2YgZnVsbCBzdG9wLCBi dXQgaXQgdXN1YWxseSBnb2VzIGJlZm9yZSBicmlkaSBpbnN0ZWFkIG9mIGFmdGVyIHRoZW0uIEl0 J3Mgb2Z0ZW4gbGVmdCBvdXQgYmVmb3JlIHRoZSBmaXJzdCBicmlkaSwgdGhvdWdoLCBhcyBpbiBh bGwgdGhlc2UgZXhhbXBsZXM6CgonJ19fLmlfXycnIFNlbnRlbmNlIHNlcGFyYXRvci4gU2VwYXJh dGVzIGFueSB0d28ganVmcmEgKGFuZCB0aGVyZWZvcmUgYWxzbyBicmlkaSkuCgoKCicndGkgemRh bmkgbWkgIC5pIHRpIHBlbHh1Jycg4oCdVGhpcyBpcyBhIGhvbWUgdG8gbWUuIFRoaXMgaXMgeWVs bG93LuKAnQoKCgpCZWZvcmUgeW91IG1vdmUgb24gdG8gdGhlIG5leHQgbGVzc29uLCBJIHJlY29t bWVuZCB0aGF0IHlvdSB0YWtlIGEgYnJlYWsgZm9yIGF0IGxlYXN0IHNldmVuIG1pbnV0ZXMgdG8g bGV0IHRoZSBpbmZvcm1hdGlvbiBzaW5rIGluLgoKCgoKCiEhTG9qYmFuIExlc3NvbnMg4oCTIGxl c3NvbiB0d28gKEZBIGFuZCB6bydlKQoKTW9zdCBzZWxicmkgaGF2ZSBmcm9tIG9uZSB0byBmaXZl IHN1bXRpIHBsYWNlcywgYnV0IHNvbWUgaGF2ZSBtb3JlLiBIZXJlIGlzIGEgc2VsYnJpIHdpdGgg Zm91ciBzdW10aSBwbGFjZXM6CgonJ19fdmVjbnVfXycnIHgxIHNlbGxzIHgyIHRvIHgzIGZvciBw cmljZSB4NAoKCgpJZiBJIHdhbnQgdG8gc2F5IOKAnEkgc2VsbCB0aGlz4oCdLCBpdCB3b3VsZCBi ZSB0b28gbXVjaCB0byBoYXZlIHRvIGZpbGwgdGhlIHN1bXRpIHBsYWNlcyB4MyBhbmQgeDQsIHdo aWNoIHNwZWNpZnkgd2hvIEkgc2VsbCB0aGUgdGhpbmcgdG8sIGFuZCBmb3Igd2hhdCBwcmljZS4g THVja2lseSwgSSBkb24ndCBuZWVkIHRvLiBzdW10aSBwbGFjZXMgY2FuIGJlIGZpbGxlZCB3aXRo ICcnem8nZScnLiAnJ3pvJ2UnJyBpbmRpY2F0ZXMgdG8gdXMgdGhhdCB0aGUgdmFsdWUgb2YgdGhl IHN1bXRpIHBsYWNlIGlzIHVuc3BlY2lmaWVkIGJlY2F1c2UgaXQncyB1bmltcG9ydGFudCBvciBj YW4gYmUgZGV0ZXJtaW5lZCBmcm9tIGNvbnRleHQuCgonJ19fem8nZV9fJycg4oCcc29tZXRoaW5n 4oCdIEZpbGxzIGEgc3VtdGkgcGxhY2Ugd2l0aCBzb21ldGhpbmcsIGJ1dCBkb2VzIG5vdCBzdGF0 ZSB3aGF0LgoKCgpTbyB0byBzYXkg4oCcSSBzZWxsIHRvIHlvdeKAnSwgSSBjb3VsZCBzYXkgJydt aSB2ZWNudSB6bydlIGRvIHpvJ2UnJyDigJMgSSBzZWxsIHNvbWV0aGluZyB0byB5b3UgZm9yIHNv bWUgcHJpY2UuCgpIb3cgd291bGQgeW91IHNheTog4oCcVGhhdCdzIGEgaG9tZSAoZm9yIHNvbWVi b2R5KeKAnT8KCgoKQW5zd2VyOiB+fmdyZXksZ3JleTogJyd0aSB6ZGFuaSB6bydlJyd+fgoKCgpI b3cgYWJvdXQg4oCcKHNvbWVvbmUpIGdpdmVzIHRoaXMgdG8gKHNvbWVvbmUp4oCdPwoKCgpBbnN3 ZXI6IH5+Z3JleSxncmV5Oicnem8nZSBkdW5kYSB0aSB6bydlJyd+fgoKCgpTdGlsbCwgZmlsbGlu ZyBvdXQgdGhyZWUgem8nZSBqdXN0IHRvIHNheSB0aGF0IGEgdGhpbmcgaXMgYmVpbmcgc29sZCB0 YWtlcyB0aW1lLiBUaGVyZWZvcmUgeW91IGRvbid0IG5lZWQgdG8gd3JpdGUgYWxsIHRoZSAnJ3pv J2UnJyBpbiBhIGJyaWRpLiBUaGUgcnVsZSBzaW1wbHkgaXMgdGhhdCBpZiB5b3UgbGVhdmUgb3V0 IGFueSBzdW10aSwgdGhleSB3aWxsIGJlIGNvbnNpZGVyZWQgYXMgaWYgdGhleSBjb250YWluZWQg Jyd6bydlJycuIElmIHRoZSBicmlkaSBiZWdpbnMgd2l0aCBhIHNlbGJyaSwgdGhlIHgxIGlzIHBy ZXN1bWVkIHRvIGJlIG9taXR0ZWQgYW5kIGl0IGJlY29tZXMgJyd6bydlJycuCgpUcnkgaXQgb3V0 LiBXaGF0J3MgTG9qYmFuIGZvciDigJxJIHNlbGzigJ0/CgoKCkFuc3dlcjogfn5ncmV5LGdyZXk6 JydtaSB2ZWNudScnfn4KCgoKQW5kIHdoYXQgZG9lcyAnJ3pkYW5pIG1pJycgbWVhbj8KCgoKQW5z d2VyOiB+fmdyZXksZ3JleTrigJxTb21ldGhpbmcgaXMgYSBob21lIG9mIG1l4oCdIG9yIGp1c3Qg 4oCcSSBoYXZlIGEgaG9tZS7igJ1+fgoKCgpBcyBtZW50aW9uZWQgZWFybGllciwgdGhlIGZvcm0g ZG9lc24ndCBoYXZlIHRvIGJlIHt4MSBzdW10aX0ge3NlbGJyaX0ge3gyIHN1bXRpfSB7eDMgc3Vt dGl9IChlY3QuKSBJbiBmYWN0LCB5b3UgY2FuIHBsYWNlIHRoZSBzZWxicmkgYW55d2hlcmUgeW91 IHdhbnQsIGp1c3Qgbm90IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGJyaWRpLiBJZiB5b3UgZG8g dGhhdCwgdGhlIHgxIGlzIGNvbnNpZGVyZWQgbGVmdCBvdXQgYW5kIGZpbGxlZCB3aXRoICcnem8n ZScnIGluc3RlYWQuIFNvIHRoZSBmb2xsb3dpbmcgdGhyZWUganVmcmEgYXJlIGFsbCB0aGUgZXhh Y3RseSBzYW1lIGJyaWRpOgoKJydtaSBkdW5kYSB0aSBkbycnCgonJ21pIHRpIGR1bmRhIGRvJycK CicnbWkgdGkgZG8gZHVuZGEnJwoKCgpTb21ldGltZXMgdGhpcyBpcyB1c2VkIGZvciBwb2V0aWMg ZWZmZWN0LiDigJxZb3Ugc2VsbCB5b3Vyc2VsZuKAnSBjb3VsZCBiZSAnJ2RvIGRvIHZlY251Jycs IHdoaWNoIHNvdW5kcyBiZXR0ZXIgdGhhbiAnJ2RvIHZlY251IGRvJycuIE9yIGl0IGNhbiBiZSB1 c2VkIGZvciBjbGFyaXR5IGlmIHRoZSBzZWxicmkgaXMgdmVyeSBsb25nIGFuZCB0aGVyZWZvcmUg YmV0dGVyIGJlIGxlZnQgYXQgdGhlIGVuZCBvZiB0aGUgYnJpZGkuCgoKClRoZXJlIGFyZSBhbHNv IHNldmVyYWwgd2F5cyB0byBwbGF5IGFyb3VuZCB3aXRoIHRoZSBvcmRlciBvZiB0aGUgc3VtdGkg aW5zaWRlIHRoZSBicmlkaS4gVGhlIGVhc2llc3Qgb25lIGlzIGJ5IHVzaW5nIHRoZSB3b3JkcyAn J2ZhJycsICcnZmUnJywgJydmaScnLCAnJ2ZvJycgYW5kICcnZnUnJy4gTm90aWNlIHRoYXQgdGhl IHZvd2VscyBhcmUgdGhlIGZpdmUgdm93ZWxzIGluIHRoZSBMb2piYW4gYWxwaGFiZXQgaW4gb3Jk ZXIuIFVzaW5nIG9uZSBvZiB0aGVzZSB3b3JkcyBtYXJrcyB0aGF0IHRoZSBuZXh0IHN1bXRpIHdp bGwgZmlsbCB0aGUgeDEsIHgyLCB4MywgeDQgYW5kIHg1IHJlc3BlY3RpdmVseS4gVGhlIG5leHQg c3VtdGkgYWZ0ZXIgdGhhdCB3aWxsIGJlIHByZXN1bWVkIHRvIGZpbGwgYSBzbG90IG9uZSBncmVh dGVyIHRoYW4gdGhlIHByZXZpb3VzLiBUbyB1c2UgYW4gZXhhbXBsZToKCicnZHVuZGEgZmEgZG8g ZmUgdGkgZG8nJyDigJMg4oCcR2l2aW5nIGJ5IHlvdSBvZiB0aGlzIHRoaW5nIHRvIHlvdeKAnS4g JydmYScnIG1hcmtzIHRoZSB4MSwgdGhlIGdpdmVyLCB3aGljaCBpcyB5b3UuICcnZmUnJyBtYXJr cyB0aGUgdGhpbmcgYmVpbmcgZ2l2ZW4sIHRoZSB4Mi4gU3VtdGkgY291bnRpbmcgdGhlbiBjb250 aW51ZXMgZnJvbSAnJ2ZlJycsIG1lYW5pbmcgdGhhdCB0aGUgbGFzdCBzdW10aSBmaWxscyB4Mywg dGhlIG9iamVjdCByZWNlaXZpbmcuCgoKCkF0dGVtcHQgdG8gdHJhbnNsYXRlIHRoZSBmb2xsb3dp bmcgdGhyZWUgc2VudGVuY2VzOgoKCgonJ21pIHZlY251IGZvIHRpIGZlIGRvJycKCgoKQW5zd2Vy OiB+fmdyZXksZ3JleTrigJ1JIHNlbGwsIGZvciB0aGUgcHJpY2Ugb2YgdGhpcywgeW914oCdLiBv ciDigJxJIHNlbGwgeW91IGZvciB0aGUgcHJpY2Ugb2YgdGhpc+KAnSAocHJvYmFibHkgcG9pbnRp bmcgdG8gYSBidW5jaCBvZiBtb25leSl+fgoKCgonJ3pkYW5pIGZlIHRpJycKCgoKQW5zd2VyOiB+ fmdyZXksZ3JleTrigJxUaGlzIGhhcyBhIGhvbWXigJ0uIEhlcmUsIHRoZSBmZSBpcyByZWR1bmRh bnQufn4KCgoKJyd2ZWNudSB6bydlIG1pIHRpIGZhIGRvJycKCgoKQW5zd2VyOiB+fmdyZXksZ3Jl eTrigJxZb3Ugc2VsbCBzb21ldGhpbmcgdG8gbWUgZm9yIHRoaXMgcHJpY2XigJ1+fgoKCgoKCiEh TG9qYmFuIExlc3NvbnMg4oCTIGxlc3NvbiB0aHJlZSAodGFucnUgYW5kIGxvKQoKSW4gdGhpcyBs ZXNzb24sIHlvdSB3aWxsIGJlY29tZSBmYW1pbGlhciB3aXRoIHRoZSBjb25jZXB0IG9mIGEgJyd0 YW5ydScnLiBBIHRhbnJ1IGlzIGZvcm1lZCB3aGVuIGEgc2VsYnJpIGlzIHB1dCBpbiBmcm9udCBv ZiBhbm90aGVyIHNlbGJyaSwgbW9kaWZ5aW5nIGl0cyBtZWFuaW5nLiBBIHRhbnJ1IGlzIGl0c2Vs ZiBhIHNlbGJyaSwgYW5kIGNhbiBjb21iaW5lIHdpdGggb3RoZXIgc2VsYnJpIG9yIHRhbnJ1IHRv IGZvcm0gbW9yZSBjb21wbGV4IHRhbnJ1LiBUaHVzICcnemRhbmkgdmVjbnUnJyBpcyBhIHRhbnJ1 LCBhcyB3ZWxsIGFzICAnJ3BlbHh1IHpkYW5pIHZlY251JycsIHdoaWNoIGlzIG1hZGUgZnJvbSB0 aGUgdGFucnUgJydwZWx4dSB6ZGFuaScnIGFuZCB0aGUgc2luZ2xlIGJyaXZsYSB3b3JkICcndmVj bnUnJy4gVG8gdW5kZXJzdGFuZCB0aGUgY29uY2VwdCBvZiB0YW5ydSwgY29uc2lkZXIgdGhlIEVu Z2xpc2ggbm91biBjb21iaW5hdGlvbiDigJxsZW1vbiB0cmVl4oCdLiBJZiB5b3UgZGlkbid0IGtu b3cgd2hhdCBhIGxlbW9uIHRyZWUgd2FzLCBidXQgaGFkIGhlYXJkIGFib3V0IGJvdGggbGVtb25z IGFuZCB0cmVlcywgeW91IHdvdWxkIG5vdCBiZSBhYmxlIHRvIGRlZHVjZSB3aGF0IGEgbGVtb24g dHJlZSB3YXMuIFBlcmhhcHMgYSBsZW1vbi1jb2xvcmVkIHRyZWUsIG9yIGEgdHJlZSBzaGFwZWQg bGlrZSBhIGxlbW9uLCBvciBhIHRyZWUgd2hvc2UgYmFyayB0YXN0ZXMgbGlrZSBsZW1vbi4gVGhl IG9ubHkgdGhpbmdzIHlvdSBjb3VsZCBrbm93IGZvciBzdXJlIHdvdWxkIGJlIHRoYXQgaXQgd291 bGQgYmUgYSB0cmVlLCBhbmQgaXQgd291bGQgYmUgbGVtb24tbGlrZSBpbiBzb21lIHdheS4KCkEg dGFucnUgaXMgY2xvc2VseSBhbmFsb2dvdXMgdG8gdGhpcy4gSXQgY2Fubm90IGJlIHNhaWQgZXhh Y3RseSB3aGF0IGEgJyd6ZGFuaSB2ZWNudScnIGlzLCBidXQgaXQgY2FuIGJlIHNhaWQgdGhhdCBp dCBpcyBkZWZpbml0ZWx5IGEgdmVjbnUsIGFuZCB0aGF0IGl0J3MgemRhbmktbGlrZSBpbiBzb21l IHdheS4gQW5kIGl0IGNvdWxkIGJlIHpkYW5pLWxpa2UgaW4gYW55IHdheS4gSW4gdGhlb3J5LCBu byBtYXR0ZXIgaG93IHNpbGx5IG9yIGFic3VyZCB0aGUgY29ubmVjdGlvbiB0byB6ZGFuaSB3YXMs IGl0IGNvdWxkIHN0aWxsIHRydWx5IGJlIGEgJyd6ZGFuaSB2ZWNudScnLiBIb3dldmVyLCBpdCBt dXN0IGFjdHVhbGx5IGJlIGEgdmVjbnUgaW4gdGhlIG9yZGluYXJ5IHNlbnNlIGluIG9yZGVyIGZv ciB0aGUgdGFucnUgdG8gYXBwbHkuIFlvdSBjb3VsZCBnbG9zcyAnJ3pkYW5pIHZlY251JycgYXMg 4oCcaG9tZSBzZWxsZXLigJ0sIG9yIGV2ZW4gYmV0dGVyIGJ1dCB3b3JzZSBzb3VuZGluZyDigJxh IGhvbWUtdHlwZS1vZiBzZWxsZXLigJ0uIFRoZSBwbGFjZSBzdHJ1Y3R1cmUgb2YgYSB0YW5ydSBp cyBhbHdheXMgdGhhdCBvZiB0aGUgcmlnaHRtb3N0IHNlbGJyaS4gSXQncyBhbHNvIHNhaWQgdGhh dCB0aGUgbGVmdCBzZWxicmkgbW9kaWZpZXMgdGhlIHJpZ2h0IHNlbGJyaS4KCuKAnFJlYWxseT/i gJ0sIHlvdSBhc2ssIHNjZXB0aWNhbGx5LCDigJxJdCBkb2Vzbid0IG1hdHRlciBob3cgc2lsbHkg dGhlIGNvbm5lY3Rpb24gdG8gdGhlIGxlZnQgd29yZCBpbiBhIHRhbnJ1IGlzLCBpdCdzIHN0aWxs IHRydWU/IFNvIEkgY291bGQgY2FsbCBhbGwgc2VsbGVycyBmb3IgJyd6ZGFuaSB2ZWNudScnIGFu ZCB0aGVuIG1ha2UgdXAgc29tZSBzaWxseSBleGN1c2Ugd2h5IEkgdGhpbmsgaXQncyB6ZGFuaS1s aWtlP+KAnQoKV2VsbCB5ZXMsIGJ1dCB0aGVuIHlvdSdkIGJlIGEgZGljay4gT3IgYXQgbGVhc3Qg eW91J2QgYmUgaW50ZW50aW9uYWxseSBtaXNsZWFkaW5nLiBJbiBnZW5lcmFsLCB5b3Ugc2hvdWxk IHVzZSBhIHRhbnJ1IHdoZW4gaXQncyBvYnZpb3VzIGhvdyB0aGUgbGVmdCB3b3JkIHJlbGF0ZXMg dG8gdGhlIHJpZ2h0LgoKCgpBdHRlbXB0IHRvIHRyYW5zbGF0ZSB0aGUgZm9sbG93aW5nOiAnJ3Rp IHBlbHh1IHpkYW5pIGRvJycKCgoKQW5zd2VyOiB+fmdyZXksZ3JleTrigJxUaGF0IGlzIGEgeWVs bG93IGhvbWUgZm9yIHlvdeKAnSBBZ2Fpbiwgd2UgZG9uJ3Qga25vdyBpbiB3aGljaCB3YXkgaXQn cyB5ZWxsb3cuIFByb2JhYmx5IGl0J3MgcGFpbnRlZCB5ZWxsb3csIGJ1dCB3ZSBkb24ndCBrbm93 IGZvciBzdXJlLn5+CgoKCicnbWkgdmVjbnUgZHVuZGEnJwoKCgpBbnN3ZXI6IH5+Z3JleSxncmV5 OuKAnEkgc2VsbC1saWtlIGdpdmXigJ0uIFdoYXQgY2FuIHRoYXQgbWVhbj8gTm8gaWRlYS4gSXQg Y2VydGFpbmx5IGRvZXNuJ3QgbWVhbiB0aGF0IHlvdSBzb2xkIHNvbWV0aGluZywgc2luY2UsIGJ5 IGRlZmluaXRpb24gb2YgJydkdW5kYScnLCB0aGVyZSBjYW4gYmUgbm8gcGF5bWVudCBpbnZvbHZl ZC4gSXQgaGFzIHRvIGJlIGEgZ2l2ZWF3YXksIGJ1dCBiZSBzZWxsLWxpa2UgaW4gc29tZSBhc3Bl Y3Qufn4KCgoKQW5kIG5vdyBmb3Igc29tZXRoaW5nIGNvbXBsZXRlbHkgZGlmZmVyZW50LiBXaGF0 IGlmIEkgd2FudGVkIHRvIHNheSBJIHNvbGQgdG8gYSBHZXJtYW4/CgonJ19fZG90Y29fXycnIHgx IGlzIEdlcm1hbi9yZWZsZWN0cyBHZXJtYW4gY3VsdHVyZSBpbiBhc3BlY3QgeDIKCgoKSSBjYW4n dCBzYXkgJydtaSB2ZWNudSB6bydlIGRvdGNvJycgYmVjYXVzZSB0aGF0IHdvdWxkIGxlYXZlIHR3 byBzZWxicmkgaW4gYSBicmlkaSwgd2hpY2ggaXMgbm90IHBlcm1pdHRlZC4gSSBjb3VsZCBzYXkg JydtaSBkb3RjbyB2ZWNudScnIGJ1dCB0aGF0IHdvdWxkIGJlIHVubmVjZXNzYXJ5IHZhZ3VlIC0g SSBjb3VsZCBzZWxsIGluIGEgR2VybWFuIHdheS4gTGlrZXdpc2UsIGlmIEkgd2FudCB0byBzYXkg 4oCcSSBhbSBmcmllbmRzIHdpdGggYW4gQW1lcmljYW7igJ0sIHdoYXQgc2hvdWxkIEkgc2F5PwoK JydfX3BlbmRvX18nJyAxeCBpcyBhIGZyaWVuZCBvZiB4MgoKJydfX21lcmtvX18nJyB4MSBpcyBB bWVyaWNhbi9yZWZsZWN0IFVTIGN1bHR1cmUgaW4gYXNwZWN0IHgyCgoKCkFnYWluLCB0aGUgb2J2 aW91cyB3b3VsZCBiZSB0byBzYXkgJydtaSBwZW5kbyBtZXJrbycnLCBidXQgdGhhdCB3b3VsZCBm b3JtIGEgdGFucnUsIG1lYW5pbmcg4oCcSSBhbSBmcmllbmQtbGlrZSBBbWVyaWNhbuKAnSwgd2hp Y2ggaXMgd3JvbmcuIFdoYXQgd2UgcmVhbGx5IHdhbnQgdG8gaXMgdG8gdGFrZSB0aGUgc2VsYnJp ICcnbWVya28nJyBhbmQgdHJhbnNmb3JtIGl0IGludG8gYSBzdW10aSBzbyBpdCBjYW4gYmUgdXNl ZCBpbiB0aGUgc2VsYnJpICcncGVuZG8nJy4gVGhpcyBpcyBkb25lIGJ5IHRoZSB0d28gd29yZHMg JydsbycnIGFuZCAnJ2t1JycuCgpfXycnbG8nJ19fIOKAkyBnZW5lcmljIGJlZ2luIGNvbnZlcnQg c2VsYnJpIHRvIHN1bXRpIHdvcmQuIEV4dHJhY3RzIHgxIG9mIHNlbGJyaSB0byB1c2UgYXMgc3Vt dGkuCgpfXycna3UnJ19fIOKAkyBlbmQgY29udmVydCBzZWxicmkgdG8gc3VtdGkgcHJvY2Vzcy4K CgoKWW91IHNpbXBseSBwbGFjZSBhIHNlbGJyaSBiZXR3ZWVuIHRoZXNlIHR3byB3b3JkcywgYW5k IGl0IHRha2VzIGFueXRoaW5nIHRoYXQgY2FuIGZpbGwgdGhlIHgxIG9mIHRoYXQgc2VsYnJpIGFu ZCB0dXJucyBpdCBpbnRvIGEgc3VtdGkuCgpTbyBmb3IgaW5zdGFuY2UsIHRoZSB0aGluZ3MgdGhh dCBjYW4gZmlsbCB6ZGFuaeKAmHMgeDEgYXJlIG9ubHkgdGhpbmdzIHdoaWNoIGFyZSBob21lcyBv ZiBzb21lYm9keS4gU28gJydsbyB6ZGFuaSBrdScnIG1lYW5zIOKAnGEgaG9tZSBvciBzb21lIGhv bWVzIGZvciBzb21lYm9keS7igJ0gU2ltaWxhcmx5LCBpZiBJIHNheSB0aGF0IHNvbWV0aGluZyBp cyBwZWx4dSwgaXQgbWVhbnMgaXQncyB5ZWxsb3cuIFNvICcnbG8gcGVseHUga3UnJyByZWZlcnMg dG8gc29tZXRoaW5nIHllbGxvdy4KCgoKTm93IHlvdSBoYXZlIHRoZSBuZWNlc3NhcnkgZ3JhbW1h ciB0byBiZSBhYmxlIHRvIHNheSDigJxJIGFtIGZyaWVuZHMgd2l0aCBhbiBBbWVyaWNhbi7igJ0g SG93PwoKCgpBbnN3ZXI6IH5+Z3JleSxncmV5OicnbWkgcGVuZG8gbG8gbWVya28ga3UnJ35+CgoK ClRoZXJlIGlzIGEgZ29vZCByZWFzb24gd2h5IHRoZSAnJ2t1JycgaXMgbmVjZXNzYXJ5LiBUcnkg dG8gdHJhbnNsYXRlIOKAnEEgR2VybWFuIHNlbGxzIHRoaXMgdG8gbWXigJ0KCgoKQW5zd2VyOiB+ fmdyZXksZ3JleTonJ2xvIGRvdGNvIGt1IHZlY251IHRpIG1pJycgSWYgeW91IGxlYXZlIG91dCB0 aGUga3UsIHlvdSBkbyBub3QgZ2V0IGEgYnJpZGksIGJ1dCBzaW1wbHkgdGhyZWUgc3VtdGkuIFNp bmNlIGxv4oCma3UgY2Fubm90IGNvbnZlcnQgYnJpZGksIHRoZSB0aSBpcyBmb3JjZWQgb3V0c2lk ZSB0aGUgc3VtdGksIHRoZSBsby1jb25zdHJ1Y3QgaXMgZm9yY2VkIHRvIGNsb3NlIGFuZCBpdCBz aW1wbHkgYmVjb21lcyB0aGUgdGhyZWUgc3VtdGkgb2YgJydsbyBkb3RjbyB2ZWNudSB7a3V9Jycs ICcndGknJyBhbmQgJydtaScnLn5+CgoKCllvdSBhbHdheXMgaGF2ZSB0byBiZSBjYXJlZnVsIHdp dGgganVmcmEgbGlrZSAnJ2xvIHpkYW5pIGt1IHBlbHh1JycuIElmIHRoZSAnJ2t1JycgaXMgbGVm dCBvdXQgdGhlIGNvbnZlcnNpb24gcHJvY2VzcyBkb2VzIG5vdCBlbmQsIGFuZCBpdCBzaW1wbHkg YmVjb21lcyBvbmUgc3VtdGksIG1hZGUgZnJvbSB0aGUgdGFucnUgJyd6ZGFuaSBwZWx4dScnIGFu ZCB0aGVuIGNvbnZlcnRlZCB3aXRoICcnbG8nJy4KCgoKCgohIUxvamJhbiBMZXNzb25zIOKAkyBs ZXNzb24gZm91ciAoYXR0aXR1ZGluYWxzKQoKQW5vdGhlciBjb25jZXB0IHdoaWNoIGNhbiBiZSB1 bmZhbWlsaWFyIHRvIEVuZ2xpc2ggc3BlYWtlcnMgaXMgdGhhdCBvZiBhdHRpdHVkaW5hbHMuIEF0 dGl0dWRpbmFscyBhcmUgd29yZHMgdGhhdCBleHByZXNzIGVtb3Rpb25zIGRpcmVjdGx5LiBUaGUg aWRlYSBvZiBhdHRpdHVkaW5hbHMgb3JpZ2luYXRlZCBpbiB0aGUgZmVtaW5pc3QgY29uc3RydWN0 ZWQgbGFuZ3VhZ2UgTGFkYW4sIHN1cHBvc2VkbHkgdG8gZW5hYmxlIHRydWUgZmVtYWxlIGVtb3Rp b25zLiBUaGUgaWRlYSB3YXMgdGhhdCBmZW1hbGUgZW1vdGlvbmFsIGV4cHJlc3Npb24gd2FzIGhp bmRlcmVkIGJ5IG1hbGUgZG9taW5hdGVkIGxhbmd1YWdlLCBhbmQgaWYgb25seSB0aGV5IHdlcmUg YWJsZSB0byBiZSBleHByZXNzZWQgbW9yZSBmcmVlbHksIHRoaXMgd291bGQgZW1wb3dlciB3b21l biB0aHJvdWdoIGxpYmVyYXRpb24gb2YgdGhlIGxhbmd1YWdlLgoKSW4gTG9qYmFuLCB0aGVyZSBp cyBubyBzdWNoIGFnZW5kYSwgYW5kIGF0dGl0dWRpbmFscyBtb3N0IHByb2JhYmx5IGhhdmUgYmVl biBkZXNpZ25lZCBpbnRvIHRoZSBsYW5ndWFnZSBiZWNhdXNlIHRoZXkgdHVybmVkIG91dCB0byBi ZSBpbmNyZWRpYmx5IGF3ZXNvbWUgYW5kIHVzZWZ1bC4gVGhleSBhbGwgaGF2ZSBhIHNvLWNhbGxl ZCBmcmVlIGdyYW1tYXIsIHdoaWNoIG1lYW5zIHRoYXQgdGhleSBjYW4gYXBwZWFyIGFsbW9zdCBh bnl3aGVyZSB3aXRoaW4gYnJpZGkgd2l0aG91dCBkaXNydXB0aW5nIHRoZSBicmlkaSdzIGdyYW1t YXIgb3IgYW55IGdyYW1tYXRpY2FsIGNvbnN0cnVjdHMuCgpJbiBMb2piYW4gZ3JhbW1hciwgYW4g YXR0aXR1ZGluYWwgYXBwbGllcyB0byB0aGUgcHJldmlvdXMgd29yZC4gSWYgdGhhdCBwcmV2aW91 cyB3b3JkIGlzIGEgd29yZCB3aGljaCBiZWdpbnMgYSBjb25zdHJ1Y3QgKGxpa2UgJycuaScnIG9y ICcnbG8nJyksIGl0IGFwcGxpZXMgdG8gdGhlIGVudGlyZSBjb25zdHJ1Y3QuIExpa2V3aXNlLCBp ZiB0aGUgYXR0aXR1ZGluYWwgZm9sbG93cyBhIHdvcmQgd2hpY2ggZW5kcyBhIGNvbnN0cnVjdCBs aWtlICcna3UnJywgaXQgYXBwbGllcyB0byB0aGUgZW5kZWQgY29uc3RydWN0LgoKCgpMZXQncyBo YXZlIHR3byBhdHRpdHVkaW5hbHMgdG8gbWFrZSBzb21lIGV4YW1wbGVzOgoKX18nJy51aScnX186 IGF0dGl0dWRpbmFsOiBzaW1wbGUgcHVyZSBlbW90aW9uOiBoYXBwaW5lc3MgLSB1bmhhcHBpbmVz cwoKX18nJ3phJ2EnJ19fOiBhdHRpdHVkaW5hbDogZXZpZGVudGlhbDogSSBkaXJlY3RseSBvYnNl cnZlCgoKCk5vdGUgdGhhdCBpbiB0aGUgZGVmaW5pdGlvbiBvZiAnJy51aScnLCB0aGVyZSBhcmUg bGlzdGVkIHR3byBlbW90aW9ucywgaGFwcGluZXNzIGFuZCB1bmhhcHBpbmVzcy4gVGhpcyBtZWFu cyB0aGF0ICcnLnVpJycgaXMgZGVmaW5lZCBhcyBoYXBwaW5lc3MsIHdoaWxlIGl0cyDigJxuZWdh dGlvbuKAnSwgbWVhbnMgdW5oYXBwaW5lc3MuIOKAnE5lZ2F0aW9u4oCdIG1pZ2h0IGJlIHRoZSB3 cm9uZyB3b3JkIGhlcmUuIFRlY2huaWNhbGx5LCB0aGUgb3RoZXIgZGVmaW5pdGlvbiBvZiAnJy51 aScnIGlzIGFub3RoZXIgY29uc3RydWN0LCAnJy51aSBuYWknJy4gTW9zdCBvZiB0aGUgdGltZSwg dGhlIHNlY29uZCBkZWZpbml0aW9uIG9mIGF0dGl0dWRpbmFscyAtIHRoZSBvbmVzIHN1ZmZpeGVk IHdpdGggJyduYWknJyAtIHJlYWxseSBpcyB0aGUgbmVnYXRpb24gb2YgdGhlIGJhcmUgYXR0aXR1 ZGluYWwuIE90aGVyIHRpbWVzLCBub3Qgc28gbXVjaC4KCl9fJyduYWknJ19fIG1pc2MuIG5lZ2F0 aW9uIC0gYXR0YWNoZWQgdG8gYXR0aXR1ZGluYWxzLCBpdCBjaGFuZ2VzIHRoZSBtZWFuaW5nIGlu dG8gdGhlIGF0dGl0dWRpbmFsJ3MgIm5lZ2F0aW9uIgoKCgpBbmQgc29tZSBtb3JlIHNlbGJyaSwg anVzdCBmb3IgdGhlIGhlY2sgb2YgaXQ6CgpfXycnY2l0a2EnJ19fIOKAkyB4MSBlYXRzIHgyCgpf XycncGxpc2UnJ19fIOKAkyB4MSBpcyBhbiBhcHBsZSBvZiBzdHJhaW4vdHlwZSB4MgoKCgpUaGUg c2VudGVuY2UgJydkbyBjaXRrYSBsbyBwbGlzZSBrdSAudWknJywgbWVhbnMg4oCcWW91IGVhdCBh biBhcHBsZSwgeWF5IeKAnSAoZXNwZWNpYWxseSBleHByZXNzaW5nIHRoYXQgaXQgaXMgdGhlIF9f YXBwbGVfXyB0aGF0IHRoZSBzcGVha2VyIGlzIGhhcHB5IGFib3V0LCBub3QgdGhlIGVhdGluZywg b3IgdGhlIGZhY3QgdGhhdCBpdCB3YXMgeW91LikgSW4gdGhlIHNlbnRlbmNlICcnZG8gemEnYSBj aXRrYSBsbyBwbGlzZSBrdScnLCB0aGUgc3BlYWtlciBkaXJlY3RseSBvYnNlcnZlcyB0aGF0IGl0 IGlzIGluZGVlZCB0aGUgX1/igJx5b3XigJ1fXywgd2hvIGVhdHMgYW4gYXBwbGUgYXMgb3Bwb3Nl ZCB0byBzb21lb25lIGVsc2UuCgoKCklmIGFuIGF0dGl0dWRpbmFsIGlzIHBsYWNlZCBhdCB0aGUg YmVnaW5uaW5nIG9mIHRoZSBicmlkaSwgaXQgaXMgdW5kZXJzdG9vZCB0byBhcHBseSB0byBhbiBl eHBsaWNpdCBvciBpbXBsaWNpdCAnJy5pJycsIHRodXMgYXBwbHlpbmcgdG8gdGhlIGVudGlyZSBi cmlkaToKCicnLnVpIHphJ2EgZG8gZHVuZGEgbG8gcGxpc2Uga3UgbWknJyDigJMg4oCcWWF5LCBJ IG9ic2VydmUgdGhhdCB5b3UgZ2l2ZSBhbi9zb21lIGFwcGxlIHRvIG1lIeKAnQoKCgonJ21pIHZl Y251IC51aSBuYWkgbG8gemRhbmkga3UnJyDigJxJIHNlbGwgKHdoaWNoIHN1Y2tzISkgYSBob21l 4oCdLgoKCgpUcnkgaXQgb3V0IHdpdGggYSBmZXcgZXhhbXBsZXMuIEZpcnN0LCB0aG91Z2gsIGhl cmUgYXJlIHNvbWUgbW9yZSBhdHRpdHVkaW5hbHM6CgpfXycnLnUndScnX18gYXR0aXR1ZGluYWw6 IHNpbXBsZSBwdXJlIGVtb3Rpb246IGd1aWx0IC0gcmVtb3JzZWxlc3NuZXNzIC0gaW5ub2NlbmNl LgoKX18nJy5vaScnX18gYXR0aXR1ZGluYWw6IGNvbXBsZXggcHVyZSBlbW90aW9uOiBjb21wbGFp bnQgLSBwbGVhc3VyZS4KCl9fJycuaXUnJ19fIGF0dGl0dWRpbmFsOiBtaXNjZWxsYW5lb3VzIHB1 cmUgZW1vdGlvbjogbG92ZSAtIGhhdGUuCgoKCkxvb2sgYXQgdGhhdCwgYSB3b3JkIHdpdGggdGhy ZWUgZW1vdGlvbnMgaW4gdGhlIGRlZmluaXRpb24hIFRoZSBtaWRkbGUgb25lIGlzIGFjY2Vzc2Vk IGJ5IHN1ZmZpeGlubmcgd2l0aCAnJ2N1J2knJy4gSXQncyBjb25zaWRlcmVkIHRoZSBtaWRwb2lu dCBvZiB0aGUgZW1vdGlvbi4KCl9fJydjdSdpJydfXyBhdHRpdHVkaW5hbCBtaWRwb2ludCBzY2Fs YXI6IGF0dGFjaCB0byBhdHRpdHVkaW5hbCB0byBjaGFuZ2UgdGhlIG1lYW5pbmcgdG8gdGhlICJt aWRwb2ludCIgb2YgdGhlIGVtb3Rpb24uCgoKClRyeSBzYXlpbmcg4oCcSSBnaXZlIHNvbWV0aGlu ZyB0byBhIEdlcm1hbiwgd2hvIEkgbG92ZeKAnQoKCgpBbnN3ZXI6IH5+Z3JleSxncmV5OicnbWkg ZHVuZGEgZmkgbG8gZG90Y28ga3UgLml1Jycgb3IgJyd6bydlJycgaW5zdGVhZCBvZiAnJ2ZpJyd+ fgoKCgpOb3cg4oCcQWFoLCBJIGVhdCBhIHllbGxvdyBhcHBsZeKAnQoKQW5zd2VyOiB+fmdyZXks Z3JleTonJy5vaSBuYWkgbWkgY2l0a2EgbG8gcGVseHUgcGxpc2Uga3UnJ35+CgoKCkxldCdzIGhh dmUgYW5vdGhlciBhdHRpdHVkaW5hbCBvZiBhIGRpZmZlcmVudCBraW5kIHRvIGlsbHVzdHJhdGUg c29tZXRoaW5nIHBlY3VsaWFyOgoKJycuZWknJyBBdHRpdHVkaW5hbDogY29tcGxleCBwcm9wb3Np dGlvbmFsIGVtb3Rpb246IG9ibGlnYXRpb24gLSBmcmVlZG9tLgoKCgpTbywgcXVpdGUgZWFzeTog 4oCcSSBoYXZlIHRvIGdpdmUgdGhlIGFwcGxlIGF3YXnigJ0gaXMgJydtaSBkdW5kYSAuZWkgbG8g cGxpc2Uga3UnJywgcmlnaHQ/IEl0IGlzLCBhY3R1YWxseSEgV2hlbiB5b3UgdGhpbmsgYWJvdXQg aXQsIHRoYXQncyB3ZWlyZC4gV2h5IGlzIGl0IHRoYXQgYWxsIHRoZSBvdGhlciBhdHRpdHVkaW5h bHMgd2UgaGF2ZSBzZWVuIHNvIGZhciBleHByZXNzZXMgdGhlIHNwZWFrZXIncyBmZWVsaW5nIGFi b3V0IHRoZSBicmlkaSwgYnV0IHRoaXMgb25lIGFjdHVhbGx5IGNoYW5nZXMgd2hhdCB0aGUgYnJp ZGkgbWVhbnM/IFN1cmVseSwgYnkgc2F5aW5nIOKAnEkgaGF2ZSB0byBnaXZlIHRoZSBhcHBsZSBh d2F54oCdLCB3ZSBzYXkgbm90aGluZyBhYm91dCB3aGV0aGVyIHRoZSBhcHBsZSBhY3R1YWxseSBp cyBiZWluZyBnaXZlbiBhd2F5LiBJZiBJIGhhZCB1c2VkICcnLnVpJycsIGhvd2V2ZXIsIEkgd291 bGQgYWN0dWFsbHkgaGF2ZSBzdGF0ZWQgdGhhdCBJIGdhdmUgdGhlIGFwcGxlIGF3YXksIGFuZCB0 aGF0IEkgd2FzIGhhcHB5IGFib3V0IGl0LiBXaGF0J3MgdGhhdCBhbGwgYWJvdXQ/CgoKClRoaXMg aXNzdWUsIGV4YWN0bHkgaG93IGF0dGl0dWRpbmFscyBjaGFuZ2UgdGhlIGNvbmRpdGlvbnMgb24g d2hpY2ggYSBicmlkaSBpcyB0cnVlLCBpcyBhIHN1YmplY3Qgb2YgYSBtaW5vciBkZWJhdGUuIFRo ZSBvZmZpY2lhbCwg4oCcdGV4dGJvb2vigJ0gcnVsZSwgd2hpY2ggcHJvYmFibHkgd29uJ3QgYmUg Y2hhbmdlZCwgaXMgdGhhdCB0aGVyZSBpcyBhIGRpc3RpbmN0aW9uIGJldHdlZW4g4oCccHVyZSBl bW90aW9uc+KAnSBhbmQg4oCccHJvcG9zaXRpb25hbCBlbW90aW9uc+KAnS4gT25seSBwcm9wb3N0 aW9uYWwgZW1vdGlvbnMgY2FuIGNoYW5nZSB0aGUgdHJ1dGggY29uZGl0aW9ucywgd2hpbGUgcHVy ZSBlbW90aW9ucyBjYW5ub3QuIEluIG9yZGVyIHRvIGV4cHJlc3MgYSBwcm9wb3NpdGlvbmFsIGVt b3Rpb25hbCBhdHRpdHVkaW5hbCB3aXRob3V0IGNoYW5naW5nIHRoZSB0cnV0aCB2YWx1ZSBvZiB0 aGUgYnJpZGksIHlvdSBjYW4ganVzdCBzZXBhcmF0ZSBpdCBmcm9tIHRoZSBicmlkaSB3aXRoICcn LmknJy4gVGhlcmUgaXMgYWxzbyBhIHdvcmQgZm9yIGV4cGxpY2l0bHkgY29uc2VydmluZyBvciBj aGFuZ2luZyB0aGUgdHJ1dGggY29uZGl0aW9ucyBvZiBhIGJyaWRpOgoKCgpfXycnZGEnaScnX18g YXR0aXR1ZGluYWw6IGRpc2N1cnNpdmU6IHN1cHBvc2luZyAtIGluIGZhY3QKClNheWluZyAnJ2Rh J2knJyBpbiBhIGJyaWRpIGNoYW5nZXMgdGhlIHRydXRoIGNvbmRpdGlvbnMgdG8gaHlwb3RoZXRp Y2FsLCB3aGljaCBpcyB0aGUgZGVmYXVsdCB1c2luZyBwcm9wb3NpdGlvbmFsIGF0dGl0dWRpbmFs cy4gU2F5aW5nICcnZGEnaSBuYWknJyBjaGFuZ2VzIHRoZSB0cnV0aCBjb25kaXRpb24gdG8gdGhl IG5vcm1hbCwgd2hpY2ggaXMgZGVmYXVsdCB1c2luZyBwdXJlIGF0dGl0dWRpbmFscy4KCgoKU28s IHdoYXQncyB0d28gd2F5cyBvZiBzYXlpbmcg4oCcSSBnaXZlIHRoZSBhcHBsZSBhd2F54oCdPyAo YW5kIGZlZWwgb2JsaWdhdGlvbiBhYm91dCBpdCkKCgoKQW5zd2VyOiB+fmdyZXksZ3JleTonJ21p IGR1bmRhIGxvIHBsaXNlIC5pIC5laScnICBhbmQgJydtaSBkdW5kYSBkYSdpIG5haSAuZWkgbG8g cGxpc2UnJ35+CgoKClRoZSBmZWVsaW5nIG9mIGFuIGF0dGl0dWRpbmFsIGNhbiBiZSBzdWJzY3Jp YmVkIHRvIHNvbWVvbmUgZWxzZSB1c2luZyAnJ2RhaScnLiBVc3VhbGx5IGluIG9yZGluYXJ5IHNw ZWVjaCwgdGhlIGF0dGl0dWRpbmFsIGlzIHN1YnNjcmliZWQgdG8gdGhlIGxpc3RlbmVyLCBidXQg aXQgZG9lc24ndCBoYXZlIHRvIGJlIHNvLiBBbHNvLCBiZWNhdXNlIHRoZSB3b3JkIGlzIGdsb3Nz ZWQg4oCcZW1wYXRoeeKAnSAoZmVlbGluZyBvdGhlcnMgZW1vdGlvbnMpLCBzb21lIExvamJhbmlz dHMgbWlzdGFrZW5seSB0aGluayB0aGF0IHRoZSBzcGVha2VyIG11c3Qgc2hhcmUgdGhlIGVtb3Rp b24gYmVpbmcgc3Vic2NyaWJlZCB0byBvdGhlcnMuCgpfXycnZGFpJydfXyBhdHRpdHVkaW5hbCBt b2RpZnllcjogRW1wYXRoeSAoc3Vic2NyaWJlcyBhdHRpdHVkaW5hbCB0byBzb21lb25lIGVsc2Us IHVuc3BlY2lmaWVkKQoKRXhhbXBsZTogJyd1J2kgLm9pIGRhaSBjaXRrYSB0aScnIC0g4oCcSGEg aGEsIHRoaXMgd2FzIGVhdGVuISBUaGF0IG11c3QgaGF2ZSBodXJ0IeKAnQoKCgpXaGF0IG9mdGVu IHVzZWQgcGhyYXNlIGNvdWxkICcnLm9pIHUnaSBkYWknJyBtZWFuPwoKCgpBbnN3ZXI6IH5+Z3Jl eSxncmV5OuKAnE91Y2gsIHZlcnkgZnVubnku4oCdfn4KCgoKQW5kIGFub3RoZXIgb25lIHRvIHRl c3QgeW91ciBrbm93bGVkZ2U6IFRyeSB0byB0cmFuc2xhdGUg4oCcSGUgd2FzIHNvcnJ5IGhlIHNv bGQgYSBob21l4oCdIChyZW1lbWJlcmluZywgdGhhdCB0ZW5zZSBpcyBpbXBsaWVkIGFuZCBuZWVk IG5vdCBiZSBzcGVjaWZpZWQuIEFsc28sIOKAnGhl4oCdIGNvdWxkIGJlIG9idmlvdXMgZnJvbSBj b250ZXh0KQoKCgpBbnN3ZXI6IH5+Z3JleSxncmV5OicndSd1IGRhaSB2ZWNudSBsbyB6ZGFuaSBr dScnfn4KCgoKTGFzdGx5LCB0aGUgaW50ZW5zaXR5IG9mIGFuIGF0dGl0dWRpbmFsIGNhbiBiZSBz cGVjaWZpZWQgdXNpbmcgY2VydGFpbiB3b3Jkcy4gVGhlc2UgY2FuIGJlIHVzZWQgYWZ0ZXIgYW4g YXR0aXR1ZGluYWwsIG9yIGFuIGF0dGl0dWRpbmFsIHdpdGggJyduYWknJyBvciAnJ2N1J2knJyBz dWZmaXhlZC4gSXQncyBsZXNzIGNsZWFyIHdoYXQgaGFwcGVucyB3aGVuIHlvdSBhdHRhY2ggaXQg dG8gb3RoZXIgd29yZHMsIGxpa2UgYSBzZWxicmksIGJ1dCBpdCdzIG1vc3RseSB1bmRlcnN0b29k IGFzIGludGVuc2lmeWluZyBvciB3ZWFrZW5pbmcgdGhlIHNlbGJyaSBpbiBzb21lIHVuc3BlY2lm aWVkIHdheToKCnx8IE1vZGlmeWluZyB3b3JkICB8IEludGVuc2l0eSAgCgogY2FpfCAgIEV4dHJl bWUKCiBzYWl8ICAgU3Ryb25nCgogKG5vbmUpfCAgIFVuc3BlY2lmaWVkIChtZWRpdW0pCgogcnUn ZSAgfCAgIFdlYWt8fAoKCgpXaGF0IGVtb3Rpb24gaXMgZXhwcmVzc2VkIHVzaW5nICcnLnUnaSBu YWkgc2FpJycgPwoKX18nJy51J2knJ19fOiBhdHRpdHVkaW5hbDogc2ltcGxlIHB1cmUgZW1vdGlv bjogYW11c2VtZW50IC0gd2VhcmluZXNzCgoKCkFuc3dlcjogfn5ncmV5LGdyZXk6U3Ryb25nIHdl YXJpbmVzc35+CgoKCkFuZCBob3cgd291bGQgeW91IGV4cHJlc3MgdGhhdCB5b3UgYXJlIG1pbGRs eSByZW1vcnNlbGVzcz8KCgoKQW5zd2VyOiB+fmdyZXksZ3JleTonJy51J3UgY3UnaSBydSdlJyd+ fgoKCgohIUxvamJhbiBsZXNzb25zIOKAkyBsZXNzb24gZml2ZSAoU0UpCgpCZWZvcmUgd2UgdmVu dHVyZSBpbnRvIHRoZSB0ZXJyaXRvcnkgb2YgbW9yZSBjb21wbGV4IGNvbnN0cnVjdHMsIHlvdSBz aG91bGQgbGVhcm4gYW5vdGhlciBtZWNoYW5pc20gZm9yIHJlb3JkZXJpbmcgdGhlIHN1bXRpIG9m IGEgc2VsYnJpLiBUaGlzLCBhcyB3ZSB3aWxsIHNob3csIGlzIHZlcnkgdXNlZnVsIGZvciBtYWtp bmcgZGVzY3JpcHRpb24tbGlrZSBzdW10aSAodGhlIGtpbmQgb2Ygc3VtdGkgd2l0aCAnJ2xvJycp LgoKQ29uc2lkZXIgdGhlIHNlbnRlbmNlIOKAnEkgZWF0IGEgZ2lmdOKAnSwgd2hpY2ggbWlnaHQg YmUgYXBwcm9wcmlhdGUgaWYgdGhhdCBnaWZ0IGlzIGFuIGFwcGxlLiBUbyB0cmFuc2xhdGUgdGhp cywgaXQgd291bGQgc2VlbSBuYXR1cmFsIHRvIGxvb2sgdXAgYSBzZWxicmkgbWVhbmluZyDigJxn aWZ04oCdIGJlZm9yZSBjb250aW51aW5nLiBIb3dldmVyLCBpZiBvbmUgbG9va3MgY2FyZWZ1bGx5 IGF0IHRoZSBkZWZpbml0aW9uIG9mICcnZHVuZGEnJywgeDEgZ2l2ZXMgeDIgdG8geDMsIG9uZSBy ZWFsaXplcyB0aGF0IHRoZSB4MiBvZiAnJ2R1bmRhJycgaXMgc29tZXRoaW5nIGdpdmVuIOKAkyBh IGdpZnQuCgpTbywgdG8gZXhwcmVzcyB0aGF0IHNlbnRlbmNlLCB3ZSBjYW4ndCBzYXkgJydtaSBj aXRrYSBsbyBkdW5kYSBrdScnLCBiZWNhdXNlICcnbG8gZHVuZGEga3UnJyB3b3VsZCBiZSB0aGUg eDEgb2YgJydkdW5kYScnLCB3aGljaCBpcyBhIGRvbm9yIG9mIGEgZ2lmdC4gQ2FubmliYWxpc20g YXNpZGUsIHdlIGRvbid0IHdhbnQgdG8gc2F5IHRoYXQuIFdoYXQgd2Ugd2FudCBpcyBhIHdheSB0 byBleHRyYWN0IHRoZSB4MiBvZiBhIHNlbGJyaS4KClRoaXMgaXMgb25lIGV4YW1wbGUgd2hlcmUg aXQgaXMgdXNlZnVsIHRvIHVzZSB0aGUgd29yZCAnJ3NlJycuIFdoYXQgJydzZScnIGRvZXMgaXMg dG8gbW9kaWZ5IGEgc2VsYnJpIHN1Y2ggdGhhdCB0aGUgeDEgYW5kIHgyIG9mIHRoYXQgc2VsYnJp IHRyYWRlIHBsYWNlcy4gVGhlIGNvbnN0cnVjdCBvZiAnJ3NlJycgKyBzZWxicmkgaXMgb24gaXRz IG93biBjb25zaWRlcmVkIG9uZSBzZWxicmkuIExldCdzIHRyeSB3aXRoIGFuIG9yZGluYXJ5IHNl bnRlbmNlOgoKX18nJ2ZhbnZhJydfXyA9IOKAnHgxIHRyYW5zbGF0ZXMgeDIgdG8gbGFuZ3VhZ2Ug eDMgZnJvbSBsYW5ndWFnZSB4NCB3aXRoIHJlc3VsdCBvZiB0cmFuc2xhdGlvbiB4NeKAnQoKJyd0 aSBzZSBmYW52YSBtaScnID0gJydtaSBmYW52YSB0aScnCgpUaGlzIGlzIHRyYW5zbGF0ZWQgYnkg bWUgKD0gSSB0cmFuc2xhdGUgdGhpcykuIE9mdGVuLCBidXQgbm90IGFsd2F5cywgYnJpZGkgd2l0 aCAnJ3NlJyctY29uc3RydWN0cyBhcmUgdHJhbnNsYXRlZCB0byBzZW50ZW5jZXMgd2l0aCB0aGUg cGFzc2l2ZSB2b2ljZSwgc2luY2UgdGhlIHgxIGlzIG9mdGVuIHRoZSBvYmplY3QgdGFraW5nIGFj dGlvbi4KCicnc2UnJyBoYXMgaXRzIG93biBmYW1pbHkgb2Ygd29yZHMuIEFsbCBvZiB0aGVtIHN3 YXAgYSBkaWZmZXJlbnQgcGxhY2Ugd2l0aCB0aGUgeDEuCgp8fHNlCXxzd2FwIHgxIGFuZCB4MgoK dGUJfHN3YXAgeDEgYW5kIHgzCgp2ZQl8c3dhcCB4MSBhbmQgeDQKCnhlCXxzd2FwIHgxIGFuZCB4 NXx8CgpOb3RlIHRoYXQgcywgdCwgdiwgYW5kIHggYXJlIGNvbnNlY3V0aXZlIGNvbnNvbmFudHMg aW4gdGhlIGxvamJhbiBhbHBoYWJldC4KCgoKU286IFVzaW5nIHRoaXMga25vd2xlZGdlLCB3aGF0 IHdvdWxkICcndGkgeGUgZmFudmEgdGknJyBtZWFuPwoKCgpBbnN3ZXI6IH5+Z3JleSxncmV5OuKA nFRoaXMgaXMgYSB0cmFuc2xhdGlvbiBvZiB0aGlz4oCdIChvciAnJ2ZhbnZhIHRpIGZ1IHRpJycp fn4KCgoKJydzZScnIGFuZCBpdHMgZmFtaWx5IGNhbiBvZiBjb3Vyc2UgYmUgY29tYmluZWQgd2l0 aCAnJ2ZhJycgYW5kIGl0cyBmYW1pbHkuIFRoZSByZXN1bHQgY2FuIGJlIHZlcnkgY29uZnVzaW5n IGluZGVlZCwgaWYgeW91IHdpc2ggdG8gbWFrZSBpdCBzbzoKCl9fJydrbGFtYScnX18gPSDigJx4 MSB0cmF2ZWxzL2dvZXMgdG8geDIgZnJvbSB4MyB2aWEgeDQgdXNpbmcgeDUgYXMgdHJhbnNwb3J0 YXRpb24gZGV2aWNl4oCdCgonJ2ZvIGxvIHpkYW5pIGt1IHRlIGtsYW1hIGZlIGRvIHRpIGZhIG1p JycgPSAnJ21pIHRlIGtsYW1hIGRvIHRpIGxvIHpkYW5pIGt1JycgYW5kIHNpbmNlICcndGUnJyBl eGNoYW5nZXMgeDEgYW5kIHgzOiA9ICcndGkga2xhbWEgZG8gbWkgbG8gemRhbmkga3UnJwoK4oCc VGhpcyB0cmF2ZWxzIHRvIHlvdSBmcm9tIG1lIHZpYSBhIGhvbWUu4oCdIE9mIGNvdXJzZSwgbm8g b25lIHdvdWxkIG1ha2Ugc3VjaCBhIHNlbnRlbmNlIGV4Y2VwdCB0byBjb25mdXNlIHBlb3BsZSwg b3IgY3J1ZWxseSB0byB0ZXN0IHRoZWlyIHVuZGVyc3RhbmRpbmcgb2YgTG9qYmFuIGdyYW1tYXIu CgpBbmQgdGh1cywgd2UgaGF2ZSBjb21lIHRvIHRoZSBwb2ludCB3aGVyZSB3ZSBjYW4gc2F5IOKA nEkgZWF0IGEgZ2lmdC7igJ0uIFNpbXBseSBleGNoYW5nZSB0aGUgc3VtdGkgcGxhY2VzIG9mICcn ZHVuZGEnJyB0byBnZXQgdGhlIGdpZnQgdG8gYmUgeDEsIHRoZW4gZXh0cmFjdCB0aGlzIG5ldyB4 MSB3aXRoICcnbG8nJy4uLicna3UnJy4gU28sIGhvdyB3b3VsZCB5b3Ugc2F5IGl0PwoKT25lIChw b3NzaWJsZSkgYW5zd2VyOiB+fmdyZXksZ3JleTonJ21pIGNpdGthIGxvIHNlIGR1bmRhIGt1Jyd+ fgoKVGhpcyBzaG93cyBvbmUgb2YgdGhlIG1hbnkgdXNlcyBmb3IgJydzZScnIGFuZCBpdHMgZmFt aWx5LgoKCgoKCiEhTG9qYmFuIGxlc3NvbnMg4oCTIGxlc3NvbiBzaXggKGFic3RyYWN0aW9ucykK ClNvIGZhciB3ZSBoYXZlIG9ubHkgZXhwcmVzc2VkIHNpbmdsZSBzZW50ZW5jZXMgb25lIGF0IGEg dGltZS4gVG8gZXhwcmVzcyBtb3JlIGNvbXBsZXggdGhpbmdzLCBob3dldmVyLCB5b3Ugb2Z0ZW4g bmVlZCBzdWJvcmRpbmF0ZSBzZW50ZW5jZXMuIEx1Y2tpbHksIHRoZXNlIGFyZSBtdWNoIGVhc2ll ciBpbiBMb2piYW4gdGhhbiB3aGF0IG9uZSB3b3VsZCBleHBlY3QuCgpXZSBjYW4gYmVnaW4gd2l0 aCBhbiBleGFtcGxlIHRvIGRlbW9uc3RyYXRlIHRoaXM6IOKAnEkgYW0gaGFwcHkgdGhhdCB5b3Ug YXJlIG15IGZyaWVuZC7igJ0gSGVyZSwgdGhlIG1haW4gYnJpZGkgaXMg4oCcSSBhbSBoYXBweSB0 aGF0IFgu4oCdLCBhbmQgdGhlIHN1Yi1icmlkaSBpcyDigJxZb3UgYXJlIG15IGZyaWVuZC7igJ0g TG9va2luZyBhdCB0aGUgZGVmaW5pdGlvbiBmb3Ig4oCcaGFwcHnigJ0sIHdoaWNoIGlzICcnZ2xl a2knJzoKCl9fJydnbGVraScnX18g4oCceDEgaXMgaGFwcHkgYWJvdXQgeDIgKGV2ZW50L3N0YXRl KeKAnQoKT25lIHNlZXMgdGhhdCB0aGUgeDIgbmVlZHMgdG8gYmUgYW4gZXZlbnQgb3IgYSBzdGF0 ZS4gVGhpcyBpcyBuYXR1cmFsLCBiZWNhdXNlIG9uZSBjYW5ub3QgYmUgaGFwcHkgYWJvdXQgYW4g b2JqZWN0IGluIGl0c2VsZiwgb25seSBhYm91dCBzb21lIHN0YXRlIHRoZSBvYmplY3QgaXMgaW4u IEJ1dCBhbGFzISBPbmx5IGJyaWRpIGNhbiBleHByZXNzIGEgc3RhdGUgb3IgYW4gZXZlbnQsIGFu ZCBvbmx5IHN1bXRpIGNhbiBmaWxsIHRoZSB4MiBvZiAnJ2dsZWtpJychCgpBcyB5b3UgbWlnaHQg aGF2ZSBndWVzc2VkLCB0aGVyZSBpcyBhIHNvbHV0aW9uLiBUaGUgd29yZHMgJydzdSd1JycuLi4n J2tlaScnIGlzIGEgZ2VuZXJpYyDigJxjb252ZXJ0IGJyaWRpIHRvIHNlbGJyaeKAnSBmdW5jdGlv biwgYW5kIHdvcmtzIGp1c3QgbGlrZSAnJ2xvJyfigKYnJ2t1JycuCgpfXycnc3UndScnX18geDEg aXMgYW4gYWJzdHJhY3Rpb24gb2Yge2JyaWRpfSBvZiB0eXBlIHgyCgpfXycna2VpJydfXyBlbmQg YWJzdHJhY3Rpb24KCgoKRXhhbXBsZToKCl9fJydtZWxiaScnX18geDEgaXMgYmVhdXRpZnVsIHRv IHgyLgoKX18nJ2RhbnN1JydfXyB4MSBkYW5jZXMgdG8gYWNjb21wYW5pbWVudC9tdXNpYy9yaHl0 aG0geDIuCgonJ21lbGJpIHN1J3UgZGFuc3Uga2VpJycgLSDigJxCZWF1dGlmdWwgZGFuY2luZ+KA nS/igJxCZWF1dGlmdWwgZGFuY2XigJ0KCgoKSXQncyB1c3VhbGx5IGhhcmQgdG8gZmluZCBnb29k IHVzZXMgb2YgYSBicmlkaSBhcyBhIHNlbGJyaS4gSG93ZXZlciwgc2luY2UgJydzdSd1IEJSSURJ IGtlaScnIGlzIGEgc2VsYnJpLCBvbmUgY2FuIGNvbnZlcnQgaXQgdG8gYSBzdW10aSB1c2luZyAn J2xvJycuLi4nJ2t1JycuCgpOb3cgd2UgaGF2ZSB0aGUgZXF1aXBtZW50IHRvIGV4cHJlc3Mg4oCc SSBhbSBoYXBweSB0aGF0IHlvdSBhcmUgbXkgZnJpZW5k4oCdLiBUcnkgaXQgb3V0IQoKX18nJ3Bl bmRvJydfXyDigJx4MSBpcyBhIGZyaWVuZCBvZiB4MuKAnQoKCgpBbnN3ZXI6IH5+Z3JleSxncmV5 OicnbWkgZ2xla2kgbG8gc3UndSBkbyBwZW5kbyBtaSBrZWkga3UnJ35+CgoKCkhvd2V2ZXIsICcn c3UndScn4oCmJydrZWknJyBkb2VzIG5vdCBzZWUgbXVjaCB1c2UuIFBlb3BsZSBwcmVmZXIgdG8g dXNlIHRoZSBtb3JlIHNwZWNpZmljIHdvcmRzICcnbnUnJ+KApicna2VpJycgYW5kICcnZHUndScn 4oCmJydrZWknJy4gVGhleSB3b3JrIHRoZSBzYW1lIHdheSwgYnV0IG1lYW4gc29tZXRoaW5nIGRp ZmZlcmVudC4gJydudeKApmtlaScnIHRyZWF0cyB0aGUgYnJpZGkgaW4gYmV0d2VlbiBhcyBhbiBl dmVudCBvciBzdGF0ZSwgYW5kICcnZHUndeKApmtlaScnIHRyZWF0cyBpdCBhcyBhbiBhYnN0cmFj dCBicmlkaSwgZm9yIGV4cHJlc3NpbmcgdGhpbmdzIGxpa2UgaWRlYXMsIHRob3VnaHRzIG9yIHRy dXRocy4gQWxsIHRoZXNlIHdvcmRzIChleGNlcHQgJydrZWknJykgYXJlIGNhbGxlZCBhYnN0cmFj dG9ycy4gVGhlcmUgYXJlIG1hbnkgb2YgdGhlbSwgYW5kIG9ubHkgZmV3IGFyZSB1c2VkIG11Y2gu ICcnc3UndeKApmtlaScnIGlzIGEgZ2VuZXJhbCBhYnN0cmFjdG9yLCBhbmQgd2lsbCB3b3JrIGlu IGFsbCBjYXNlcy4KCgoKVXNlICcnbnUnJyB0byBzYXkg4oCcSSdtIGhhcHB5IGFib3V0IHRhbGtp bmcgdG8geW91LuKAnQoKX18nJ3RhdmxhJydfXyB4MSB0YWxrcyB0byB4MiBhYm91dCBzdWJqZWN0 IHgzIGluIGxhbmd1YWdlIHg0LgoKCgpBbnN3ZXI6IH5+Z3JleSxncmV5OicnbWkgZ2xla2kgbG8g bnUgdGF2bGEgZG8ga2VpIGt1JycgKG5vdGljZSBib3RoIHRoZSBFbmdsaXNoIGFuZCB0aGUgTG9q YmFuIGlzIHZhZ3VlIGFzIHRvIHdobyBpcyBkb2luZyB0aGUgdGFsa2luZykufn4KCgoKT3RoZXIg aW1wb3J0YW50IGFic3RyYWN0b3JzIGluY2x1ZGU6ICcna2EuLi5rZWknJyAocHJvcGVydHkvYXNw ZWN0IGFic3RyYWN0aW9uKSwgJydzaSdvLi4ua2VpJycgKGNvbmNlcHQvaWRlYSBhYnN0cmFjdGlv biksICcnbmkuLi5rZWknJyAocXVhbnRpdHkgYWJzdHJhY3Rpb24pIGFtb25nIG90aGVycy4gVGhl IG1lYW5pbmdzIG9mIHRoZXNlIGlzIGEgY29tcGxpY2F0ZWQgbWF0dGVyLCBhbmQgd2lsbCBiZSBk aXNjdXNzZWQgbXVjaCBsYXRlciwgaW4gbGVzc29uIHR3ZW50eS1uaW5lLiBGb3Igbm93LCB5b3Un bGwgaGF2ZSB0byBkbyB3aXRob3V0IHRoZW0uCgoKCkl0IGlzIGltcG9ydGFudCB0byBub3RpY2Ug dGhhdCBzb21lIGFic3RyYWN0b3JzIGhhdmUgc2V2ZXJhbCBzdW10aSBwbGFjZXMuIEFzIGFuIGV4 YW1wbGUsICcnZHUndScnIGNhbiBiZSBtZW50aW9uZWQuICcnZHUndScnIGlzIGRlZmluZWQ6Cgon J2R1J3UnJyA9IOKAnGFic3RyYWN0b3IuIHgxIGlzIHRoZSBwcmVkaWNhdGUvYnJpZGkgb2Yge2Jy aWRpfSBleHByZXNzZWQgaW4gc2VudGVuY2UgeDLigJ0uCgpUaGUgb3RoZXIgc3VtdGkgcGxhY2Vz IGJlc2lkZXMgeDEgaXMgcmFyZWx5IHVzZWQsIGJ1dCAnJ2xvIHNlIGR1J3Uge2JyaWRpfSBrZWkg a3UnJyBpcyBzb21ldGltZXMgdXNlZCBhcyBhIHN1bXRpIGZvciBpbmRpcmVjdCBxdW90YXRpb246 IOKAnEkgc2FpZCB0aGF0IEkgd2FzIGdpdmVuIGEgZG9n4oCdIGNhbiBiZSB3cml0dGVuICcnbWkg Y3Vza3UgbG8gc2UgZHUndSBtaSB0ZSBkdW5kYSBsbyBnZXJrdSBrdSBrZWkga3UnJywgaWYgeW91 IHdpbGwgcGFyZG9uIHRoZSB3ZWlyZCBleGFtcGxlLgoKX18nJ2N1c2t1JydfXyB4MSBleHByZXNz ZXMgeDIgdG8geDMgdGhyb3VnaCBtZWRpdW0geDQKCl9fJydnZXJrdScnX18geDEgaXMgYSBkb2cg b2YgcmFjZSB4MgoKISFMb2piYW4gbGVzc29ucyDigJMgbGVzc29uIHNldmVuIChOT0kpCgpXaGls ZSB3ZSdyZSBhdCBpdCwgdGhlcmUncyBhbm90aGVyIHR5cGUgb2Ygc3Vib3JkaW5hdGUgYnJpZGku IFRoZXNlIGFyZSBjYWxsZWQgcmVsYXRpdmUgY2xhdXNlcy4gVGhleSBhcmUgc2VudGVuY2VzIHdo aWNoIGFkZCBzb21lIGRlc2NyaXB0aW9uIHRvIGEgc3VtdGkuIEluZGVlZCwgdGhlIOKAnHdoaWNo 4oCdIGluIHRoZSBwcmV2aW91cyBzZW50ZW5jZSBtYXJrZWQgdGhlIGJlZ2lubmluZyBvZiBhIHJl bGF0aXZlIGNsYXVzZSBpbiBFbmdsaXNoIGRlc2NyaWJpbmcgcmVsYXRpdmUgY2xhdXNlcy4gSW4g TG9qYmFuLCB0aGV5IGNvbWUgaW4gdHdvIGZsYXZvcnMsIGFuZCBpdCBtaWdodCBiZSB3b3J0aCBk aXN0aW5ndWlzaGluZyB0aGUgdHdvIGtpbmRzIGJlZm9yZSBsZWFybmluZyBob3cgdG8gZXhwcmVz cyB0aGVtLgoKVGhlIHR3byBraW5kcyBhcmUgY2FsbGVkIHJlc3RyaWN0aXZlIGFuZCBub24tcmVz dHJpY3RpdmUgKG9yIGluY2lkZW50aWFsKSByZWxhdGl2ZSBjbGF1c2VzLiBBbiBleGFtcGxlIHdv dWxkIGJlIGdvb2QgaGVyZToKCuKAnE15IGJyb3RoZXIsIHdobyBpcyB0d28gbWV0ZXJzIHRhbGws IGlzIGEgcG9saXRpY2lhbi7igJ0gVGhpcyBjYW4gYmUgdW5kZXJzdG9vZCBpbiB0d28gd2F5cy4g SSBjb3VsZCBoYXZlIHNldmVyYWwgYnJvdGhlcnMsIGluIHdoaWNoIGNhc2Ugc2F5aW5nIGhlIGlz IHR3byBtZXRlcnMgdGFsbCB3aWxsIGxldCB5b3Uga25vdyB3aGljaCBicm90aGVyIEkgYW0gdGFs a2luZyBhYm91dC4gT3IgSSBtaWdodCBoYXZlIG9ubHkgb25lIGJyb3RoZXIsIGluIHdoaWNoIGNh c2UgSSBhbSBzaW1wbHkgZ2l2aW5nIHlvdSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uLgoKCgpJbiBF bmdsaXNoIGFzIHdlbGwgYXMgTG9qYmFuIHdlIGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlc2UgdHdv IGtpbmRzIOKAkyB0aGUgZmlyc3QgaW50ZXJwcmV0YXRpb24gaXMgcmVzdHJpY3RpdmUgKHNpbmNl IGl0IGhlbHBzIHJlc3RyaWN0IHRoZSBwb3NzaWJsZSBicm90aGVycyBJIG1pZ2h0IGJlIHRhbGtp bmcgYWJvdXQpLCB0aGUgc2Vjb25kIG5vbi1yZXN0cmljdGl2ZS4gV2hlbiBzcGVha2luZyBFbmds aXNoLCBjb250ZXh0IGFuZCB0b25lIG9mIHZvaWNlIChvciBpbiB3cml0dGVuIEVuZ2xpc2gsIHB1 bmN0dWF0aW9uKSBoZWxwcyB1cyBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZXNlIHR3bywgYnV0IG5v dCBzbyBpbiBMb2piYW4uIExvamJhbiB1c2VzIHRoZSBjb25zdHJ1Y3RzICcncG9p4oCma3Unbycn IGFuZCAnJ25vaeKApmt1J28nJyBmb3IgcmVzdHJpY3RpdmUgYW5kIG5vbi1yZXN0cmljdGl2ZSBy ZWxhdGl2ZSBjbGF1c2VzLCByZXNwZWN0aXZlbHkuCgpMZXQncyBoYXZlIGEgTG9qYmFuaWMgZXhh bXBsZSwgd2hpY2ggY2FuIGFsc28gZXhwbGFpbiBvdXIgc3RyYW5nZSBnaWZ0LWVhdGluZyBiZWhh dmlvdXIgaW4gdGhlIGV4YW1wbGUgaW4gbGVzc29uIGZpdmU6CgpfXycnbm9pJydfXyBiZWdpbiBu b24tcmVzdHJpY3RpdmUgcmVsYXRpdmUgY2xhdXNlIChjYW4gb25seSBhdHRhY2ggdG8gc3VtdGkp CgpfXycncG9pJydfXyBiZWdpbiByZXN0cmljdGl2ZSByZWxhdGl2ZSBjbGF1c2UgKGNhbiBvbmx5 IGF0dGFjaCB0byBzdW10aSkKCl9fJydrdSdvJydfXyBlbmQgcmVsYXRpdmUgY2xhdXNlCgoKCicn bWkgY2l0a2EgbG8gc2UgZHVuZGEga3UgcG9pIHBsaXNlIGt1J28nJyA9IOKAnEkgZWF0IGEgZ2lm dCBzdWNoIHRoYXQgKHNvbWV0aGluZyBpcykgYW4gYXBwbGXigJ0uIAoKSGVyZSB0aGUgJydwb2ni gKZrdSdvJycgaXMgcGxhY2VkIGp1c3QgYWZ0ZXIgJydsbyBzZSBkdW5kYSBrdScnLCBzbyBpdCBh cHBsaWVzIHRvIHRoZSBnaWZ0LiBUbyBiZSBzdHJpY3QsIHRoZSByZWxhdGl2ZSBjbGF1c2UgZG9l cyBub3Qgc3BlY2lmeSB3aGF0IGl0IGlzLCB3aGljaCBpcyBhbiBhcHBsZSwgYnV0IHNpbmNlIHRo ZSByZWxhdGl2ZSBjbGF1c2UgYXBwbGllcyB0byB0aGUgZ2lmdCwgd2UgY2FuIHNhZmVseSBhc3N1 bWUgdGhhdCBpdCBtZWFucyB0aGF0IHRoZSBnaWZ0IGlzIGFuIGFwcGxlLiBBZnRlciBhbGwsIGlu IHRoZSBjb250ZXh0IG9mIGxlc3NvbiBmaXZlLCB0aGlzIHNlZW1zIHJlYXNvbmFibGUuIElmIHdl IHdhbnQgdG8gYmUgYWJzb2x1dGVseSBzdXJlIHRoYXQgaXQgaW5kZWVkIHdhcyB0aGUgZ2lmdCB0 aGF0IHdhcyBhbiBhcHBsZSwgd2UgdXNlIHRoZSB3b3JkICcna2UnYScnLCB3aGljaCBpcyBhICcn c3Vta2EnaScnIChhIExvamJhbiBwcm9ub3VuLCBtb3JlIG9uIHRoZW0gbGF0ZXIpIHJlcHJlc2Vu dGluZyB0aGUgc3VtdGkgd2hpY2ggdGhlIHJlbGF0aXZlIGNsYXVzZSBpcyBhdHRhY2hlZCB0by4K Cl9fJydrZSdhJydfXyBzdW1rYSdpOyByZWZlcnMgdG8gdGhlIHN1bXRpLCB0byB3aGljaCB0aGUg cmVsYXRpdmUgY2xhdXNlIGl0IGF0dGFjaGVkLgoKCgonJy51aSBtaSBjaXRrYSBsbyBzZSBkdW5k YSBrdSBwb2kga2UnYSBwbGlzZSBrdSdvJycgPSDigJxZYXksIEkgZWF0IGEgZ2lmdCB3aGljaCBp cyBhbiBhcHBsZeKAnS4KClRvIHVuZGVybGluZSB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHJlc3Ry aWN0aXZlIGFuZCBub24tcmVzdHJpY3RpdmUgcmVsYXRpdmUgY2xhdXNlcywgaGVyZSdzIGFub3Ro ZXIgZXhhbXBsZToKCgoKX18nJ2xvamJvJydfXyDigJx4MSByZWZsZWN0cyBMb2piYW5pYyBjdWx0 dXJlL2NvbW11bml0eSBpcyBhc3BlY3QgeDI7IHgxIGlzIExvamJhbmljLuKAnQoKCgonJ21pIG5v aSBsb2pibyBrdSdvIGZhbnZhIGZvIGxvIGxvamJvIGt1JycgPSDigJxJLCB3aG8gYW0gYSBMb2pi YW5pYywgdHJhbnNsYXRlIGZyb20gc29tZSBMb2piYW5pYyBsYW5ndWFnZS7igJ0gSGVyZSwgdGhl cmUgaXMgbm90IG11bHRpcGxlIHRoaW5ncyB3aGljaCAnJ21pJycgY291bGQgcmVmZXIgdG8sIGFu ZCB0aGUgZmFjdCB0aGF0IEkgYW0gbG9qYmFuaWMgaXMgbWVyZWx5IGFkZGl0aW9uYWwgaW5mb3Jt YXRpb24gbm90IG5lZWRlZCB0byBpZGVudGlmeSBtZS4gVGhlcmVmb3JlICcnbm9p4oCma3Unbycn IGlzIGFwcHJvcHJpYXRlLgoKU2VlIGlmIHlvdSBjYW4gdHJhbnNsYXRlIHRoaXM6IOKAnEkgZmxp cnQgd2l0aCBhIG1hbiB3aG8gaXMgYmVhdXRpZnVsL2hhbmRzb21l4oCdLgoKX18nJ25hbm11Jydf XyDigJx4MSBpcyBhIG1hbuKAnQoKX18nJ21lbGJpJydfXyDigJx4MSBpcyBiZWF1dGlmdWwgdG8g eDIgaW4gYXNwZWN0IChrYSkgeDMgYnkgc3RhbmRhcmQgeDTigJ0KCl9fJydjaW5qaWtjYScnX18g 4oCceDEgZmxpcnRzL2NvdXJ0cyB4MiwgZXhoaWJpdGluZyBzZXh1YWxpdHkgeDMgYnkgc3RhbmRh cmQgeDTigJ0KCgoKQW5zd2VyOiB+fmdyZXksZ3JleTonJ21pIGNpbmppa2NhIGxvIG5hbm11IGt1 IHBvaSB7a2UnYX0gbWVsYmkga3Unbycnfn4KCgoKT24gYSBtb3JlIHRlY2huaWNhbCBzaWRlIG5v dGUsIGl0IG1pZ2h0IGJlIHVzZWZ1bCB0byBrbm93IHRoYXQgJydsbyB7c2VsYnJpfSBrdScnIGlz IG9mdGVuIHNlZW4gZGVmaW5lZCBhcyAnJ3pvJ2Ugbm9pIGtlJ2Ege3NlbGJyaX0ga3UnbycnLgoK CgpCZXNpZGVzLCBpdCBpcyBhbHNvIHBvc3NpYmxlIHRvIGNvbm5lY3QgdHdvIG9yIG1vcmUgcmVs YXRpdmUgY2xhdXNlcyB0byB0aGUgc2FtZSBzdW10aSwgYnkgdXNpbmcgdGhlIHJlbGF0aXZlIGNs YXVzZSBqb2luZXIge3ppJ2V9LiBJdCdzIHN5bnRheCBpcyAic3VtdGkgKyByZWxhdGl2ZSBjbGF1 c2UgKyB6aSdlICsgcmVsYXRpdmUgY2xhdXNlICgrIHppJ2UgKyByZWxhdGl2ZSBjbGF1c2UgKC4u LikpIi4gSGVyZSBpcyBhbiBleGFtcGxlOgoKCgpfXycncGVubWknJ19fIOKAnHgxIG1lZXRzL2Vu Y291bnRlcnMgeDIgYXQvaW4gbG9jYXRpb24geDPigJ0KCl9fJydkYXNuaScnX18g4oCceDEgd2Vh cnMvaXMgcm9iZWQvZ2FyYmVkIGluIHgyIGFzIGEgZ2FybWVudCBvZiB0eXBlIHgz4oCdCgoKCicn bWkgdGF2bGEgbG8gbmFubXUga3UgcG9pIGRvIHBlbm1pIGtlJ2Ega3UnbyB6aSdlIG5vaSBkYXNu aSBsbyB4dW5yZSBrdSBrdSdvJycKCj0g4oCcSSB0YWxrZWQgdG8gdGhlIG1hbiB0aGF0IHlvdSBt ZXQgYW5kIHdoaWNoIChpbmNpZGVudGFsbHkpIHdhcyBkcmVzc2VkIGluIHJlZC7igJ0KCihMaXRl cmFsbHk6IOKAnC4uLiBhbmQgd2hpY2ggd2VhcnMgc29tZXRoaW5nIHJlZOKAnS4pCgoKCgoKISFM b2piYW4gTGVzc29ucyDigJMgTGVzc29uIGVpZ2h0ICh0ZXJtaW5hdG9yIGVsaXNpb24pCgonJy5h dSBkYSdpIG1pIGRqaWNhIGxvIG51IGxlIG1lcmtvIHBvaSB0dW5iYSBtaSBfX3ZhdSBrdSdvIGt1 X18gamltcGUgbG8gZHUndSBtaSBuYSBuZWxjaSBsbyBudSB2bydhIGRhcnhpIG1pIF9fdmF1IGtl aSBrdSB2YXUga2VpIGt1IHZhdSBrZWkga3UgdmF1X18nJwoKIC0gIOKAnEkgd2lzaCB0aGUgQW1l cmljYW4sIHdobyBpcyBteSBzaWJsaW5nLCB3b3VsZCB1bmRlcnN0YW5kIHRoYXQgSSBkb24ndCBs aWtlIHRoYXQgaGUgaGl0cyBtZS7igJ0KClJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgYWJvdmUg c2VudGVuY2UgaXMgYmVpbmcgdW5kZXJzdG9vZCwgKGl0IHNob3VsZG4ndCwgYXMgaXQgY29udGFp bnMgd29yZHMgd2UgaGF2ZSBub3QgY292ZXJlZCBpbiB0aGVzZSBsZXNzb25zIHlldCkgb25lIHRo aW5nIHN0YW5kcyBvdXQ6IEFzIG1vcmUgY29tcGxleCBMb2piYW4gc3RydWN0dXJlcyBhcmUgbGVh cm5lZCwgbW9yZSBhbmQgbW9yZSBvZiB0aGUgc2VudGVuY2VzIGdldCBmaWxsZWQgd2l0aCAnJ2t1 JycsICcna2VpJycsICcna3UnbycnIGFuZCBvdGhlciBvZiB0aG9zZSB3b3JkcyB3aGljaCBieSB0 aGVtc2VsdmVzIGNhcnJ5IG5vIG1lYW5pbmcuCgoKClRoZSBmdW5jdGlvbiBvZiBhbGwgdGhlc2Ug d29yZHMgaXMgdG8gc2lnbmFsIHRoZSBlbmQgb2YgYSBjZXJ0YWluIGdyYW1tYXRpY2FsIGNvbnN0 cnVjdCwgbGlrZSBmb3IgaW5zdGFuY2Ug4oCcY29udmVydCBzZWxicmkgdG8gc3VtdGnigJ0gaW4g dGhlIGNhc2Ugb2YgJydrdScnLiBUaGUgRW5nbGlzaCB3b3JkIGZvciB0aGlzIGtpbmQgb2Ygd29y ZCBpcyDigJx0ZXJtaW5hdG9y4oCdLCB0aGUgTG9qYmFuIHdvcmQgaXMgJydmYSdvcm1hJ28nJy4g VGhleSBhcmUgd3JpdHRlbiBpbiBib2xkIGluIHRoZSBleGFtcGxlIGFib3ZlLgoKTm90ZTogVGhl ICcndmF1JycgaW4gdGhlIGFib3ZlIGV4YW1wbGUgYXJlIHRoZSBmYSdvcm1hJ28gZm9yIOKAnGVu ZCBicmlkaeKAnS4gVGhlcmUgaXMgYSBnb29kIHJlYXNvbiB5b3UgaGF2ZSBub3QgeWV0IHNlZW4g aXQsIHN0YXkgdHVuZWQuCgpfXycndmF1JydfXyBmYSdvcm1hJ286IFRlcm1pbmF0ZXMgYnJpZGku CgoKCkluIG1vc3Qgc3Bva2VuIGFuZCB3cml0dGVuIExvamJhbiwgbW9zdCBmYSdvcm1hJ28gYXJl IHNraXBwZWQgKGVsaWRlZCkuIFRoaXMgZ3JlYXRseSBzYXZlcyBzeWxsYWJsZXMgaW4gc3BlZWNo IGFuZCBzcGFjZSBpbiB3cml0aW5nLCBob3dldmVyLCBvbmUgbXVzdCBhbHdheXMgYmUgY2FyZWZ1 bCB3aGVuIGVsaWRpbmcgZmEnb3JtYSdvLiBJbiB0aGUgc2ltcGxlIGV4YW1wbGUgJydsbyBtZXJr byBrdSBrbGFtYScnLCByZW1vdmluZyB0aGUgZmEnb3JtYSdvICcna3UnJyB3b3VsZCB5aWVsZCAn J2xvIG1lcmtvIGtsYW1hJycsIHdoaWNoIGlzIGEgc2luZ2xlIHN1bXRpIG1hZGUgZnJvbSB0aGUg dGFucnUgJydtZXJrbyBrbGFtYScnLiBUaHVzLCBpdCBtZWFucyDigJxhbiBBbWVyaWNhbiB0cmF2 ZWxlcuKAnSBpbnN0ZWFkIG9mIOKAnGFuIEFtZXJpY2FuIHRyYXZlbHPigJ0uIGZhJ29ybWEnbyBl bGlzaW9uIGNhbiBsZWFkIHRvIHZlcnkgd3JvbmcgcmVzdWx0cyBpZiBkb25lIGluY29ycmVjdGx5 LCB3aGljaCBpcyB3aHkgeW91IGhhdmVuJ3QgbGVhcm5lZCBhYm91dCBpdCB1bnRpbCBub3cuCgoK ClRoZSBydWxlIGZvciB3aGVuIGZhJ29ybWEnbyBjYW4gYmUgZWxpZGVkIGlzIHZlcnkgc2ltcGxl LCBhdCBsZWFzdCBpbiB0aGVvcnk6IOKAnFlvdSBjYW4gZWxpZGUgYSBmYSdvcm1hJ28sIF9faWYg YW5kIG9ubHkgaWZfXyBkb2luZyBzbyBkb2VzIG5vdCBjaGFuZ2UgdGhlIGdyYW1tYXRpY2FsIGNv bnN0cnVjdHMgaW4gdGhlIHNlbnRlbmNlLuKAnQoKTW9zdCBmYSdvcm1hJ28gY2FuIGJlIHNhZmVs eSBlbGlkZWQgYXQgdGhlIGVuZCBvZiB0aGUgYnJpZGkuIEV4Y2VwdGlvbnMgYXJlIHRoZSBvYnZp b3VzIG9uZXMgbGlrZSDigJxlbmQgcXVvdGXigJ0tZmEnb3JtYSdvIGFuZCDigJxlbmQgYnJpZGkg Z3JvdXBpbmfigJ0tZmEnb3JtYSdvLiBUaGlzIGlzIHdoeSAnJ3ZhdScnIGlzIGFsbW9zdCBuZXZl ciB1c2VkIOKAkyBzaW1wbHkgYmVnaW5uaW5nIGEgbmV3IGJyaWRpIHdpdGggJycuaScnIHdpbGwg YWxtb3N0IGFsd2F5cyB0ZXJtaW5hdGUgdGhlIHByZWNlZGluZyBicmlkaSBhbnl3YXkuIEl0IGhh cyBvbmUgZnJlcXVlbnQgdXNlLCBob3dldmVyLiBTaW5jZSBhdHRpdHVkaW5hbHMgYWx3YXlzIGFw cGx5IHRvIHRoZSBwcmVjZWRpbmcgd29yZCwgYXBwbHlpbmcgaXQgdG8gYSBmYSdvcm1hJ28gYXBw bGllcyBpdCB0byB0aGUgZW50aXJlIGNvbnN0cnVjdCB3aGljaCBpcyB0ZXJtaW5hdGVkLiBVc2lu ZyAnJ3ZhdScnLCBvbmUgY2FuIHRoZW4gdXNlIGF0dGl0dWRpbmFscyBhZnRlcnRob3VnaHQgYW5k IGFwcGx5IHRoZW0gdG8gdGhlIGVudGlyZSBicmlkaToKCicnemEnYSBkbyBkdW5kYSBsbyB6ZGFu aSB7a3V9IGxvIHByZW51IHtrdX0uLi4gdmF1IGknZScnIC0g4oCcSSBzZWUgdGhhdCB5b3UgZ2l2 ZSBhIGhvbWUgdG8gYSBwZXJzb24uLi4gSSBhcHByb3ZlIeKAnQoKX18nJ3ByZW51JydfXyB4MSBp cyBhIHBlcnNvbjsgeDEgaGFzIGEgcGVyc29uYWxpdHkuCgoKCktub3dpbmcgdGhlIGJhc2ljIHJ1 bGVzIGZvciBmYSdvcm1hJ28gZWxpc2lvbiwgd2UgY2FuIHRodXMgcmV0dXJuIHRvIHRoZSBvcmln aW5hbCBzZW50ZW5jZSBhbmQgYmVnaW4gcmVtb3ZpbmcgZmEnb3JtYSdvOgoKCgonJy5hdSBkYSdp IG1pIGRqaWNhIGxvIG51IGxlIG1lcmtvIHBvaSB0dW5iYSBtaSBfX3ZhdSBrdSdvIGt1X18gamlt cGUgbG8gZHUndSBtaSBuYSBuZWxjaSBsbyBudSB2bydhIGRhcnhpIG1pIF9fdmF1IGtlaSBrdSB2 YXUga2VpIGt1IHZhdSBrZWkga3UgdmF1X18nJwoKCgpXZSBjYW4gc2VlIHRoYXQgdGhlIGZpcnN0 ICcndmF1JycgaXMgZ3JhbW1hdGljYWxseSB1bm5lY2Vzc2FyeSwgYmVjYXVzZSB0aGUgbmV4dCBu b24tZmEnb3JtYSdvLXdvcmQgaXMgJydqaW1wZScnLCB3aGljaCBpcyBhIHNlbGJyaS4gU2luY2Ug dGhlcmUgY2FuIG9ubHkgYmUgb25lIHNlbGJyaSBwZXIgYnJpZGksICcndmF1JycgaXMgbm90IG5l ZWRlZC4gU2luY2UgJydqaW1wZScnIGFzIGEgc2VsYnJpIGNhbm5vdCBiZSBpbiB0aGUgcmVsYXRp dmUgY2xhdXNlIGVpdGhlciAob25seSBvbmUgYnJpZGkgaW4gYSBjbGF1c2UsIG9ubHkgb25lIHNl bGJyaSBpbiBlYWNoIGJyaWRpKSwgd2UgY2FuIGVsaWRlICcna3UnbycnLiBMaWtld2lzZSwgJydq aW1wZScnIGNhbm5vdCBiZSBhIHNlY29uZCBzZWxicmkgaW5zaWRlIHRoZSBjb25zdHJ1Y3QgJyds ZSBtZXJrbyBwb2l7Li4ufScnLCBzbyB0aGUgJydrdScnIGlzIG5vdCBuZWVkZWQgZWl0aGVyLiBG dXJ0aGVybW9yZSwgYWxsIHRoZSBmYSdvcm1hJ28gYXQgdGhlIHZlcnkgZW5kIG9mIHRoZSBzZW50 ZW5jZSBjYW4gYmUgZWxpZGVkIHRvbywgc2luY2UgYmVnaW5uaW5nIGEgbmV3IGJyaWRpIHdpbGwg dGVybWluYXRlIGFsbCBvZiB0aGVzZSBjb25zdHJ1Y3RzIGFueXdheS4KCldlIHRoZW4gZW5kIHVw IHdpdGg6CgonJy5hdSBkYSdpIG1pIGRqaWNhIGxvIG51IGxlIG1lcmtvIHBvaSB0dW5iYSBtaSBq aW1wZSBsbyBkdSd1IG1pIG5hIG5lbGNpIGxvIG51IHZvJ2EgZGFyeGkgbWknJyDigJMgd2l0aCBu byBmYSdvcm1hJ28gYXQgYWxsIQoKCgpXaGVuIGVsaWRpbmcgZmEnb3JtYSdvLCBpdCBpcyBhIGdv b2QgaWRlYSB0byBiZSBhY3F1YWludGVkIHdpdGggJydjdScnLiAnJ2N1JycgaXMgb25lIG9mIHRo b3NlIHdvcmRzIHdoaWNoIGNhbiBtYWtlIHlvdXIgKExvamJhbmljKSBsaWZlIGEgbG90IGVhc2ll ci4gV2hhdCBpdCBkb2VzIGlzIHRvIHNlcGFyYXRlIGFueSBwcmV2aW91cyBzdW10aSBmcm9tIHRo ZSBzZWxicmkuIE9uZSBjb3VsZCBzYXkgdGhhdCBpdCBkZWZpbmVzIHRoZSBuZXh0IHdvcmQgdG8g YmUgYSBzZWxicmksIGFuZCB0ZXJtaW5hdGVzIGV4YWN0bHkgYXMgbXVjaCBhcyBpdCBuZWVkcyB0 byBpbiBvcmRlciB0byBkbyB0aGF0LgoKX18nJ2N1JydfXyBlbGlkYWJsZSBtYXJrZXI6IHNlcGFy YXRlcyBzZWxicmkgZnJvbSBwcmVjZWRpbmcgc3VtdGksIGFsbG93cyBwcmVjZWRpbmcgZmEnb3Jt YSdvIGVsaXNpb24uCgoKCl9fJydwcmFtaScnX18gPSDigJx4MSBsb3ZlcyB4MuKAnQoKCgonJ2xv IHN1J3UgZG8gY3Vza3UgbG8gc2UgZHUndSBkbyBwcmFtaSBtaSBfX3ZhdSBrZWkga3UgdmF1IGtl aSBrdV9fIHNlIGRqaWNhIG1pJycgPQoKJydsbyBzdSd1IGRvIGN1c2t1IGxvIHNlIGR1J3UgZG8g cHJhbWkgbWkgX19jdV9fIHNlIGRqaWNhIG1pJycKCuKAnFRoYXQgeW91IHNheSB0aGF0IHlvdSBs b3ZlIG1lIGlzIGRlc2lyZWQgYnkgYmXigJ0gb3Ig4oCcSSB3aXNoIHlvdSBzYWlkIHlvdSBsb3Zl ZCBtZeKAnQoKbm90ZTogJydjdScnIGlzIG5vdCBhIGZhJ29ybWEnbywgYmVjYXVzZSBpdCBpcyBu b3QgdGllZCB0byBvbmUgc3BlY2lmaWMgY29uc3RydWN0LiBCdXQgaXQgY2FuIGJlIHVzZWQgdG8g ZWxpZGUgb3RoZXIgZmEnb3JtYSdvLgoKCgpPbmUgb2YgdGhlIGdyZWF0ZXN0IHN0cmVuZ3RocyBv ZiAnJ2N1JycgaXMgdGhhdCBpdCBxdWlja2x5IGJlY29tZXMgZWFzeSB0byBpbnR1aXRpdmVseSB1 bmRlcnN0YW5kLiBCeSBpdHNlbGYgaXQgbWVhbnMgbm90aGluZywgYnV0IGl0IHJldmVhbHMgdGhl IHN0cnVjdHVyZSBvZiBMb2piYW4gZXhwcmVzc2lvbnMgYnkgaWRlbnRpZnlpbmcgdGhlIGNvcmUg c2VsYnJpLiBJbiB0aGUgb3JpZ2luYWwgZXhhbXBsZSB3aXRoIHRoZSB2aW9sZW50IEFtZXJpY2Fu IGJyb3RoZXIsIHVzaW5nICcnY3UnJyBiZWZvcmUgJydqaW1wZScnIGRvZXMgbm90IGNoYW5nZSB0 aGUgbWVhbmluZyBvZiB0aGUgc2VudGVuY2UgaW4gYW55IHdheSwgYnV0IG1pZ2h0IG1ha2UgaXQg ZWFzaWVyIHRvIHJlYWQuCgoKCkluIHRoZSBmb2xsb3dpbmcgY291cGxlIG9mIGxlc3NvbnMsICcn Y3UnJyB3aWxsIGJlIHVzZWQgd2hlbiBuZWNlc3NhcnksIGFuZCBhbGwgZmEnb3JtYSdvIGVsaWRl ZCBpZiBwb3NzaWJsZS4gVGhlIGVsaWRlZCBmYSdvcm1hJ28gd2lsbCBiZSBlbmNhc2VkIGluIGN1 cmx5IGJyYWNrZXRzLCBhcyBzaG93biBiZWxvdy4gVHJ5IHRvIHRyYW5zbGF0ZSBpdCEKCl9fJyd2 YWpuaScnX18g4oCceDEgaXMgaW1wb3J0YW50IHRvIHgyIGZvciByZWFzb24geDPigJ0KCl9fJydq aW1wZScnX18g4oCceDEgdW5kZXJzdGFuZHMgdGhhdCB4MiAoZHUndS1hYnN0cmFjdGlvbikgaXMg dHJ1ZSBhYm91dCB4M+KAnQoKX18nJ2EnbycnX18gLSBBdHRpdHVkaW5hbDogU2ltcGxlIHByb3Bv c2l0aW9uYWwgZW1vdGlvbjogSG9wZSAtIGRlc3BhaXIKCgoKJydhJ28gZG8gbm9pIGtlJ2EgbG9q Ym8gLmknZSB7a3Unb30ge2t1fSBjdSBqaW1wZSBsbyBkdSd1IGxvIGZhJ29ybWEnbyB7a3V9IGN1 IHZham5pIHt2YXV9IHtrZWl9IHtrdX0ge3ZhdX0nJwoKV2hhdCBkbyBJIHN0YXRlPwoKCgpBbnN3 ZXI6IH5+Z3JleSxncmV5OuKAnEkgaG9wZSB0aGF0IHlvdSwgYSBwcm91ZCBMb2piYW5pc3QsIHVu ZGVyc3RhbmRzIHRoYXQgZmEnb3JtYSdvIGFyZSBpbXBvcnRhbnTigJ1+fgoKCgpGdW4gc2lkZSBu b3RlOiBNb3N0IHBlb3BsZSB3ZWxsLXZlcnNlZCBpbiBmYSdvcm1hJ28tZWxpc2lvbiBkbyBpdCBz byBpbnN0aW5jdGl2ZWx5IHRoYXQgdGhleSBvZnRlbiBtdXN0IGJlIHJlbWluZGVkIGhvdyBpbXBv cnRhbnQgdW5kZXJzdGFuZGluZyBmYSdvcm1hJ28gYXJlIHRvIHRoZSB1bmRlcnN0YW5kaW5nIG9m IExvamJhbi4gVGhlcmVmb3JlLCBlYWNoIFR1ZXNkYXkgaGF2ZSBiZWVuIGRlc2lnbmF0ZWQg4oCc VGVybWluYXRvciBEYXnigJ0gb3IgJydmYSdvcm1hJ28gZGplZGknJyBvbiB0aGUgTG9qYmFuIElS QyBjaGF0cm9vbS4gRHVyaW5nIFRlcm1pbmF0b3IgRGF5LCBtYW55IHBlb3BsZSB0cnkgKGFuZCBv ZnRlbiBmYWlsKSB0byByZW1lbWJlciB3cml0aW5nIG91dCBhbGwgZmEnb3JtYSdvIHdpdGggc29t ZSB2ZXJ5IHZlcmJvc2UgY29udmVyc2F0aW9ucyBhcyBhIHJlc3VsdC4KCgoKCgohIUxvamJhbiBM ZXNzb25zIC0gTGVzc29uIG5pbmUgKHN1bXRjaXRhKQoKU28gZmFyIHdlIGhhdmUgYmVlbiBkb2lu ZyBwcmV0dHkgd2VsbCB3aXRoIHRoZSBzZWxicmkgd2UgaGF2ZSBoYWQgYXQgaGFuZC4gSG93ZXZl ciwgdGhlcmUgaXMgYSBmaW5pdGUgYW1vdW50IG9mIGRlZmluZWQgc2VsYnJpIG91dCB0aGVyZSwg YW5kIGluIG1hbnkgY2FzZXMgdGhlIHN1bXRpIHBsYWNlcyBhcmUgbm90IHVzZWZ1bCBmb3Igd2hh dCB3ZSBoYWQgaW4gbWluZC4gV2hhdCBpZiwgc2F5LCBpIHdhbnQgdG8gc2F5IHRoYXQgSSBhbSB0 cmFuc2xhdGluZyB1c2luZyBhIGNvbXB1dGVyPyBUaGVyZSBpcyBubyBwbGFjZSBpbiB0aGUgc3Ry dWN0dXJlIG9mICcnZmFudmEnJyB0byBzcGVjaWZ5IHdoYXQgdG9vbCBJIHRyYW5zbGF0ZSB3aXRo LCBzaW5jZSwgbW9zdCBvZiB0aGUgdGltZSwgdGhhdCBpcyBub3QgbmVjZXNzYXJ5LiBOb3QgdG8g d29ycnksIHRoaXMgbGVzc29uIGlzIG9uIGhvdyB0byBhZGQgYWRkaXRpb25hbCBzdW10aSBwbGFj ZXMgdG8gdGhlIHNlbGJyaS4KCgoKVGhlIG1vc3QgYmFzaWMgd2F5IHRvIGFkZCBzdW10aSBwbGFj ZXMgYXJlIHdpdGggJydmaSdvIFNFTEJSSSBmZSd1JycgKHllcywgYW5vdGhlciBleGFtcGxlIG9m IGEgZmEnb3JtYSdvLCAnJ2ZlJ3UnJy4gSXQncyBhbG1vc3QgbmV2ZXIgbmVjZXNzYXJ5LCBzbyB0 aGlzIG1pZ2h0IGJlIHRoZSBsYXN0IHRpbWUgeW91IGV2ZXIgc2VlIGl0LikKCkluIGJldHdlZW4g dGhlc2UgdHdvIHdvcmRzIGdvZXMgYSBzZWxicmksIGFuZCBsaWtlICcnbG8gU0VMQlJJIGt1Jycs ICcnZmknbyBTRUxCUkkgZmUndScnIGV4dHJhY3RzIHRoZSB4MSBvZiB0aGUgc2VsYnJpIHB1dCBp bnRvIGl0LiBIb3dldmVyLCB3aXRoICcnZmknbyBTRUxCUkkgZmUndScnLCB0aGUgc2VsYnJpIHBs YWNlIGlzIGNvbnZlcnRlZCwgbm90IHRvIGEgc3VtdGksIGJ1dCB0byBhICcnc3VtdGNpdGEnJywg bWVhbmluZyDigJxzdW10aS1sYWJlbOKAnSwgd2l0aCB0aGUgcGxhY2Ugc3RydWN0dXJlIG9mIHRo ZSB4MSBvZiB0aGUgc2VsYnJpIGl0IGNvbnZlcnRlZC4gVGhpcyAnJ3N1bXRjaXRhJycgdGhlbiBh YnNvcmJzIHRoZSBuZXh0IHN1bXRpLiBPbmUgY291bGQgc2F5IHRoYXQgdXNpbmcgYSAnJ3N1bXRj aXRhJycsIHlvdSBpbXBvcnQgYSBzdW10aSBwbGFjZSBmcm9tIGFub3RoZXIgc2VsYnJpLCBhbmQg YWRkIGl0IHRvIHRoZSBicmlkaSBiZWluZyBzYWlkLgoKTm90ZTogU29tZXRpbWVzLCBlc3BlY2lh bGx5IGluIG9sZGVyIHRleHRzLCB0aGUgdGVybSDigJx0YWfigJ0gb3Ig4oCcbW9kYWzigJ0gaXMg dXNlZCBmb3IgJydzdW10Y2l0YScnLiBJZ25vcmUgdGhvc2UgcHVueSBFbmdsaXNoIGV4cHJlc3Np b25zLiBXZSB0ZWFjaCBwcm9wZXIgTG9qYmFuIGhlcmUuCgoKCldoaWxlIGl0IGlzIGhhcmQgdG8g Z3Jhc3AgdGhlIHByb2Nlc3MgZnJvbSByZWFkaW5nIGFib3V0IGl0LCBhbiBleGFtcGxlIGNhbiBw ZXJoYXBzIHNob3cgaXRzIGFjdHVhbCBzaW1wbGljaXR5OgoKX18nJ3NrYW1pJydfXyDigJx4MSBp cyBhIGNvbXB1dGVyIGZvciBwdXJwb3NlIHgy4oCdCgpfXycncGlsbm8nJ19fIOKAnHgxIHVzZXMg eDIgYXMgYSB0b29sIGZvciBkb2luZyB4M+KAnQoKCgonJ21pIGZhbnZhIHRpIGZpJ28gc2UgcGls bm8ge2ZlJ3V9IGxvIHNrYW1pIHtrdX17dmF1fScnIC0g4oCcSSB0cmFuc2xhdGUgdGhpcyB3aXRo IGEgY29tcHV0ZXLigJ0gVGhlIHgyIG9mICcncGlsbm8nJywgd2hpY2ggaXMgdGhlIHgxIG9mICcn c2UgcGlsbm8nJyBpcyBhIHBsYWNlIHN0cnVjdHVyZSBmb3IgYSB0b29sIGJlaW5nIHVzZWQgYnkg c29tZW9uZS4gVGhpcyBwbGFjZSBzdHJ1Y3R1cmUgaXMgY2FwdHVyZWQgYnkgJydmaSdvIFNFTEJS SSBmZSd1JycsIGFkZGVkIHRvIHRoZSBtYWluIHNlbGJyaSwgYW5kIHRoZW4gZmlsbGVkIGJ5ICcn bG8gc2thbWknJy4gVGhlIGlkZWEgb2YgJydzdW10Y2l0YScnIGlzIHNvbWV0aW1lcyBleHByZXNz ZWQgaW4gRW5nbGlzaCB1c2luZyB0aGUgZm9sbG93aW5nIHRyYW5zbGF0aW9uOgoK4oCcSSB0cmFu c2xhdGUgdGhpcyB3aXRoLXRvb2w6IEEgY29tcHV0ZXLigJ0KCgoKQSAnJ3N1bXRjaXRhJycgY2Fu IG9ubHkgYWJzb3JiIG9uZSBzdW10aSwgd2hpY2ggaXMgYWx3YXlzIHRoZSBmb2xsb3dpbmcgb25l LiBBbHRlcm5hdGl2ZWx5LCBvbmUgY2FuIHVzZSB0aGUgJydzdW10Y2l0YScnIGNvbnN0cnVjdCBi eSBpdHNlbGYgd2l0aG91dCBzdW10aS4gSW4gdGhpcyBjYXNlIHlvdSBuZWVkIHRvIHB1dCBpdCBl aXRoZXIgYmVmb3JlIHRoZSBzZWxicmkgb3IgdGVybWluYXRlIGl0IHdpdGggJydrdScnLiBJbiBz dWNoIGNhc2Ugb25lIGNhbiB0aGluayBhcyBpZiB0aGUgc3VtdGNpdGEgaGFzIHRoZSB3b3JkICcn em8nZScnIGFzIHRoZSBzdW10aS4KCgoKX18nJ3p1a3RlJydfXyDigJx4MSBpcyBhIHZvbGl0aW9u YWwgZW50aXR5IGNhcnJ5aW5nIG91dCBhY3Rpb24geDIgZm9yIHB1cnBvc2UgeDPigJ0KCl9fJyd6 YXJjaScnX18g4oCceDEgaXMgYSBtYXJrZXQvc3RvcmUvZXhjaGFuZ2Uvc2hvcChzKSBzZWxsaW5n L3RyYWRpbmcgKGZvcikgeDIsIG9wZXJhdGVkIGJ5L3dpdGggcGFydGljaXBhbnRzIHgz4oCdCgoK CicnZmknbyB6dWt0ZSB7ZmUndX0ga3UgbG8gcHJlbnUge2t1fSBjdSBrbGFtYSBsbyB6YXJjaSB7 a3V9e3ZhdX0nJyAtIOKAnEJ5IHRoZWlyIG93biB2b2xpdGlvbiwgYSBwZXJzb24gaXMgZ29pbmcg dG8gdGhlIHN0b3Jl4oCdCgoKCk5vdGUgdGhhdCB0aGVyZSBpcyAnJ2t1JycgaW4gJydmaSdvIHp1 a3RlIHtmZSd1fSBrdScnLiBXaXRob3V0IGl0IHRoZSBzdW10Y2l0YSB3b3VsZCBoYXZlIGFic29y YmVkICcnbG8gcHJlbnUge2t1fScnIGFuZCB3ZSBkb24ndCB3YW50IHRoYXQuCgoKCldlIGNhbiBz YXkgdGhlIHNhbWUgaW4gb3RoZXIgd29yZHM6CgoKCicnZmknbyB6dWt0ZSB7ZmUndX0gem8nZSBs byBwcmVudSB7a3V9IGN1IGtsYW1hIGxvIHphcmNpIHtrdX17dmF1fScnIAoKJydsbyBwcmVudSB7 a3V9IGN1IGZpJ28genVrdGUge2ZlJ3V9IGtsYW1hIGxvIHphcmNpIHtrdX17dmF1fScnIAoKCgpy ZXRhaW5pbmcgdGhlIG1lYW5pbmcuCgoKCldoYXQgZG9lcyAnJ21pIGppbXBlIGZpIGxhIGxvamJh biBmaSdvIHNlIHRhdmxhIHtmZSd1fSBtaScnIHN0YXRlPwoKCgpBbnN3ZXI6IH5+Z3JleSxncmV5 OuKAnEkgdW5kZXJzdGFuZCBzb21ldGhpbmcgYWJvdXQgTG9qYmFuLCBzcG9rZW4gdG8gbWXigJ1+ fgoKCgpQdXR0aW5nIHRoZSAnJ3N1bXRjaXRhJycgcmlnaHQgaW4gZnJvbnQgb2YgdGhlIHNlbGJy aSBhbHNvIG1ha2VzIGl0IHNlbGYtdGVybWluYXRlLCBzaW5jZSBzdW10Y2l0YSBvbmx5IGNhbiBh YnNvcmIgc3VtdGksIGFuZCBub3Qgc2VsYnJpLiBUaGlzIGZhY3Qgd2lsbCBiZSBvZiBpbXBvcnRh bmNlIGluIG5leHQgbGVzc29uLCBhcyB5b3Ugd2lsbCBzZWUuCgoKCkFjdHVhbGx5LCAnJ2ZpJ28n JyBpcyBub3QgdXNlZCB2ZXJ5IG9mdGVuIGRlc3BpdGUgaXRzIGZsZXhpYmlsaXR5LiBXaGF0IElT IHVzZWQgdmVyeSBvZnRlbiwgdGhvdWdoLCBhcmUgQkFJLiBCQUkgaXMgYSBjbGFzcyBvZiBMb2pi YW4gd29yZHMsIHdoaWNoIGluIHRoZW1zZWx2ZXMgYWN0IGFzICcnc3VtdGNpdGEnJy4gQW4gZXhh bXBsZSBvZiB0aGlzIGlzICcnenUnZScnLCB0aGUgQkFJIGZvciAnJ3p1a3RlJycuIEdyYW1hdGlj YWxseSwgJyd6dSdlJycgaXMgdGhlIHNhbWUgYXMgJydmaSdvIHp1a3RlIGZlJ3UnJy4gVGh1cywg dGhlIGFib3ZlIGV4YW1wbGUgY291bGQgYmUgcmVkdWNlZCB0bzoKCicnenUnZSBrdSBsbyBwcmVu dSB7a3V9IGN1IGtsYW1hIGxvIHphcmNpIHtrdX17dmF1fScnLiBUaGVyZSBleGlzdCBzb21ldGhp bmcgbGlrZSA2MCBCQUksIGFuZCBhIGxvdCBvZiB0aGVzZSBhcmUgdmVyeSB1c2VmdWwgaW5kZWVk LiBGdXJ0ZXJtb3JlLCBCQUkgY2FuIGFsc28gYmUgY29udmVydGVkIHdpdGggJydzZScnIGFuZCBm cmllbmRzLCBtZWFuaW5nIHRoYXQgJydzZSB6dSdlJycgaXMgZXF1YWwgdG8gJydmaSdvIHNlIHp1 a3RlIGZlJ3UnJywgd2hpY2ggcmVzdWx0cyBpbiBhIGdyZWF0IGRlYWwgbW9yZSBCQUkuCgohIUxv amJhbiBMZXNzb25zIC0gTGVzc29uIHRlbiAoUFUsIEZBaEEsIFpJLCBWQSwgWkVoQSwgVkVoQSkK CkhvdyB1bmZhbWlsaWFyIHRvIHRoZSBFbmdsaXNoLXNwZWFrZXIgYSBsYW5ndWFnZSBMb2piYW4g aXMgd2hlbiBvbmUgY2FuIHJlYWQgdGhyb3VnaCBuaW5lIGxlc3NvbnMgb2YgTG9qYmFuIGdyYW1t YXIgd2l0aG91dCBtZWV0aW5nIGEgdGVuc2Ugb25jZS4gVGhpcyBpcyBiZWNhdXNlLCB1bmxpa2Ug bWFueSBuYXR1cmFsIGxhbmd1YWdlcyAobW9zdCBJbmRvLUV1cm9wZWFuIG9uZXMsIGZvciBpbnN0 YW5jZSksIGFsbCB0ZW5zZXMgaW4gTG9qYmFuIGFyZSBvcHRpb25hbC4gU2F5aW5nICcnbWkgY2l0 a2EgbG8gY2lybGEge2t1fScnIGNhbiBtZWFuIOKAnEkgZWF0IGNoZWVzZeKAnSBvciDigJxJIGF0 ZSB0aGUgY2hlZXNl4oCdIG9yIOKAnEkgYWx3YXlzIGVhdCBjaGVlc2XigJ0gb3Ig4oCcSW4gYSBt b21lbnQsIGkgd2lsbCBoYXZlIGp1c3QgZmluaXNoZWQgZWF0aW5nIGNoZWVzZeKAnS4gQ29udGV4 dCByZXNvbHZlcyB3aGF0IGlzIGNvcnJlY3QsIGFuZCBpbiBtb3N0IGNvbnZlcnNhdGlvbiwgdGVu c2VzIGFyZSBub3QgbmVlZGVkIGF0IGFsbC4gSG93ZXZlciwgd2hlbiBpdCdzIG5lZWRlZCBpdCdz IG5lZWRlZCwgYW5kIGl0IG11c3QgYmUgdGF1Z2h0LiBGdXJ0aGVybW9yZSwgTG9qYmFuIHRlbnNl cyBhcmUgdW51c3VhbCBiZWNhdXNlIHRoZXkgdHJlYXQgdGltZSBhbmQgc3BhY2UgZnVuZGFtZW50 YWxseSB0aGUgc2FtZSAtIHNheWluZyB0aGF0IEkgd29ya2VkIGEgbG9uZyB0aW1lIGFnbyBpcyBu b3QgZ3JhbW1hdGljYWxseSBkaWZmZXJlbnQgdGhhbiBzYXlpbmcgSSB3b3JrIGZhciBhd2F5IHRv IHRoZSBub3J0aC4KCkxpa2UgbWFueSBvdGhlciBsYW5ndWFnZXMsIHRoZSBMb2piYW4gdGVuc2Ug c3lzdGVtIGlzIHBlcmhhcHMgdGhlIG1vc3QgZGlmZmljdWx0IHBhcnQgb2YgdGhlIGxhbmd1YWdl LiBVbmxpa2UgbWFueSBvdGhlciBsYW5ndWFnZXMgdGhvdWdoLCBpdCdzIHBlcmZlY3RseSByZWd1 bGFyIGFuZCBtYWtlcyBzZW5zZS4gU28gZmVhciBub3QsIGZvciBpdCB3aWxsIG5vdCBpbnZvbHZl IHN3ZWF0aW5nIHRvIGxlYXJuIGhvdyB0byBtb2RpZnkgdGhlIHNlbGJyaSBvciBhbnl0aGluZyBz aWxseSBsaWtlIHRoYXQuCgoKCk5vLCBpbiB0aGUgTG9qYmFuIHRlbnNlIHN5c3RlbSwgYWxsIHRl bnNlcyBhcmUgc3VtdGNpdGEsIHdoaWNoIHdlIGhhdmUgY29udmVuaWVudGx5IGp1c3QgbWFkZSBv dXJzZWx2ZXMgZmFtaWxpYXIgd2l0aC4gT2theSBva2F5LCB0ZWNobmljYWxseSwgdGVuc2VzIGFy ZSBzbGlnaHRseSBkaWZmZXJlbnQgZnJvbSBvdGhlciBzdW10Y2l0YSwgYnV0IHRoaXMgZGlmZmVy ZW5jZSBpcyBhbG1vc3QgaW5zaWduaWZpY2FudCwgYW5kIHdvbid0IGJlIGV4cGxhaW5lZCB1bnRp bCBsYXRlci4gSW4gbW9zdCBhc3BlY3RzIHRoZXkgYXJlIGxpa2UgYWxsIG90aGVyIHN1bXRjaXRh OyB0aGV5IGFyZSB0ZXJtaW5hdGVkIGJ5ICcna3UnJywgbWFraW5nIGl0IGV4cGxpY2l0IHRoYXQg UFUgaXMgdGVybWluYXRlZCBieSAnJ2t1JycuCgpUaGVyZSBhcmUgbWFueSBkaWZmZXJlbnQga2lu ZHMgb2YgdGVuc2Utc3VtdGNpdGEsIHNvIGxldCdzIHN0YXJ0IGF0IHRoZSBvbmVzIG1vc3QgZmFt aWxpYXIgdG8gRW5nbGlzaC1zcGVha2Vycy4KCl9fJydwdScnX18gLSBzdW10Y2l0YTogYmVmb3Jl IHtzdW10aX0KCl9fJydjYScnX18gLSBzdW10Y2l0YTogYXQgdGhlIHNhbWUgdGltZSBhcyB7c3Vt dGl9CgpfXycnYmEnJ19fIC0gc3VtdGNpdGE6IGFmdGVyIHtzdW10aX0KCgoKVGhlc2UgYXJlIGxp a2UgdGhlIEVuZ2xpc2ggY29uY2VwdHMg4oCcYmVmb3Jl4oCdLCDigJxub3figJ0gYW5kIOKAnGFm dGVy4oCdLiBJbiBhY3R1YWxpdHkgdGhvdWdoLCBvbmUgY291bGQgYXJndWUgdGhhdCB0d28gcG9p bnQtbGlrZSBldmVudHMgY2FuIG5ldmVyIG9jY3VyIGV4YWN0bHkgc2ltdWx0YW5lb3VzbHksIHJl bmRlcmluZyAnJ2NhJycgdXNlbGVzcy4gQnV0ICcnY2EnJyBleHRlbmRzIHNsaWdodGx5IGludG8g dGhlIHBhc3QgYW5kIHRoZSBmdXR1cmUsIG1lYW5pbmcganVzdCDigJxhYm91dCBub3figJ0uIFRo aXMgaXMgYmVjYXVzZSBodW1hbiBiZWluZ3MgZG9uJ3QgcGVyY2VpdmUgdGltZSBpbiBhIHBlcmZl Y3RseSBsb2dpY2FsIHdheSwgYW5kIHRoZSBMb2piYW4gdGVuc2Ugc3lzdGVtIHJlZmxlY3RzIHRo YXQuCgoKClNpZGUgbm90ZTogSXQgd2FzIGFjdHVhbGx5IHN1Z2dlc3RlZCBtYWtpbmcgdGhlIExv amJhbiB0ZW5zZSBzeXN0ZW0gcmVsYXRpdmlzdGljLiBUaGF0IGlkZWEsIGhvd2V2ZXIsIHdhcyBk cm9wcGVkLCBiZWNhdXNlIGl0IGlzIGNvdW50ZXItaW50dWl0aXZlLCBhbmQgd291bGQgbWVhbiB0 aGF0IHRvIGxlYXJuIExvamJhbiwgb25lIHdvdWxkIGhhdmUgdG8gbGVhcm4gdGhlIHRoZW9yeSBv ZiByZWxhdGl2aXR5IGZpcnN0LiAgCgoKClNvLCBob3cgd291bGQgeW91IHNheSDigJxJIGV4cHJl c3MgdGhpcyBhZnRlciBJIGNhbWUgaGVyZT/igJ0gKHBvaW50aW5nIHRvIGEgcGFwZXIpCgoKCkFu c3dlcjogfn5ncmV5LGdyZXk6JydtaSBjdXNrdSB0aSBiYSBsbyBudSBtaSBrbGFtYSB0aSB7dmF1 fSB7a2VpfSB7a3V9IHt2YXV9Jyd+fgoKCgpVc3VhbGx5IHdoZW4gc3BlYWtpbmcsIHdlIGRvIG5v dCBuZWVkIHRvIHNwZWNpZnkgd2hpY2ggZXZlbnQgaW4gdGhlIHBhc3QgdGhpcyBhY3Rpb24gaXMg 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 eS4gTm93LCAnJ2xvJycgaXMgZ2VuZXJpYywgYW5kICcneG8nZScnIGlzIHVzZWQgYXMgYW4gZWxs aXB0aWNhbCBkaWdpdCAobGVzc29uIG5pbmV0ZWVuKS4KCgoKCgohIUxvamJhbiBMZXNzb25zIC0g TGVzc29uIGZpZnRlZW4gKHRoZSBMb2piYW4gc3VtdGkgMjogS09oQTMsIEtPaEE1IGFuZCBLT2hB NikKClNlZSB3aGF0IGhhcHBlbnMgaWYgSSB0cnkgdG8gdHJhbnNsYXRlIHRoZSBzZW50ZW5jZTog 4oCcU3RlcmVvdHlwaWNhbCBwZW9wbGUgd2hvIGNhbiBzcGVhayBMb2piYW4gc3BlYWsgdG8gZWFj aCBvdGhlciBhYm91dCB0aGUgbGFuZ3VhZ2VzIHRoZXkgY2FuIHNwZWFr4oCdOgoKX18nJ2Jhbmd1 JydfXyDigJx4MSBpcyBhIGxhbmd1YWdlIHVzZWQgYnkgeDIgdG8gZXhwcmVzcyB4MyAoYWJzdHJh Y3Rpb24p4oCdCgonJ2xlJ2UgcHJlbnUgcG9pIGtlJ2Ega2FrbmUgbG8gbnUgdGF2bGEgZm8gbGEg LmxvamJhbi4gY3UgdGF2bGEgbGUnZSBwcmVudSBwb2kga2UnYSBrYWtuZSBsbyBudSB0YXZsYSBm byBsYSAubG9qYmFuLiBsbyBiYW5ndSBwb2kgbG8gcHJlbnUgcG9pIGtlJ2EgdGF2bGEgZm8gbGEg LmxvamJhbi4gY3Ugc2UgYmFuZ3Uga2UnYScnCgoKCldoYXQgd2Ugc2VlIGlzIHRoYXQgdGhlIExv amJhbiB2ZXJzaW9uIGlzIG11Y2ggbG9uZ2VyIHRoYW4gdGhlIEVuZ2xpc2guIFRoaXMgaXMgcHJp bWFyaWx5IGJlY2F1c2UgdGhlIGZpcnN0LCByaWRpY3Vsb3VzbHkgbG9uZyBzdW10aSBpcyBiZWlu ZyByZXBlYXRlZCB0d28gbW9yZSB0aW1lcyBpbiB0aGUgTG9qYmFuIHRleHQsIHdoaWxlIHRoZSBF bmdsaXNoIGNhbiByZWZlciB0byBpdCBieSDigJxlYWNoIG90aGVy4oCdIGFuZCDigJx0aGV54oCd IC0gbXVjaCBtb3JlIGVmZmljaWVudGx5LiBXb3VsZG4ndCBpdCBiZSBjbGV2ZXIgaWYgTG9qYmFu IHNvbWVob3cgaGFkIG1lY2hhbmlzbXMgZm9yIGRvaW5nIHRoZSBzYW1lPwoKCgpJdCB0dXJucyBv dXQgaXQgZG9lcywgd2hhdCBhIHN1cnByaXNlISBMb2piYW4gaGFzIGEgcmFuZ2Ugb2Ygd29yZHMg Y2FsbGVkICcnc3Vta2EnaScnIG1lYW5pbmcg4oCcc3VtdGktcmVwcmVzZW50YXRpdmVz4oCdLiBJ biBFbmdsaXNoLCB3ZSByZWZlciB0byB0aGVtIGFzIHByby1zdW10aSwgYmVjYXVzZSB0aGV5IGFy ZSBlc3NlbnRpYWxseSB0aGUgc2FtZSBhcyB0aGUgRW5nbGlzaCBwcm9ub3VucywgYnV0IHdpdGgg c3VtdGkgaW5zdGVhZCBvZiBub3Vucy4gSW4gZmFjdCwgeW91IGFscmVhZHkga25vdyAnJ3RpJycs ICcnZG8nJyBhbmQgJydtaScnLCBidXQgdGhlcmUgYXJlIG1hbnkgbW9yZSwgc28gbGV0J3MgZ2V0 IGxlYXJuaW5nLiBGaXJzdCwgd2Ugd2FudCB0byBwdXQgaXQgaW50byBzeXN0ZW0uIFdlIGNhbiBi ZWdpbiB3aXRoIHRoZSBvbmVzIG1vc3QgZmFtaWxpYXIgdG8gRW5nbGlzaCwgYW5kIHdoYXQgeW91 J3ZlIGFscmVhZHkgbGVhcm5lZDoKCgoKX18nJ3RpJydfXyAtIHN1bWthJ2k6IOKAnGltbWVkaWF0 ZSDigJhpdCc6IHJlcHJlc2VudHMgYSBzdW10aSBwaHlzaWNhbGx5IG5lYXIgdGhlIHNwZWFrZXLi gJ0KCl9fJyd0YScnX18gLSBzdW1rYSdpOiDigJxuZWFyYnkg4oCYaXQnOiByZXByZXNlbnRzIGEg c3VtdGkgc29tZSBwaHlzaWNhbCBkaXN0YW5jZSBmcm9tIHRoZSBzcGVha2VyIE9SIGNsb3NlIHRv IHRoZSBsaXN0ZW5lcuKAnQoKX18nJ3R1JydfXyAtIHN1bWthJ2k6IOKAnGRpc3RhbnQg4oCYaXQn OiByZXByZXNlbnRzIGEgc3VtdGkgcGh5c2ljYWxseSBmYXIgZnJvbSB0aGUgc3BlYWtlciBhbmQg dGhlIGxpc3RlbmVyLuKAnQoKCgpZb3UgY2FuIGFnYWluIHJlY29nbml6ZSB0aGUg4oCcaSwgYSwg deKAnS1zZXF1ZW5jZSB3aGljaCBwb3BzIHVwIG92ZXIgYW5kIG92ZXIuIFNvbWUgdGhpbmdzIG1p Z2h0IHRha2Ugc29tZSBjbGVhcmluZyB1cCwgdGhvdWdoLiBGaXJzdGx5LCB0aGVzZSBzdW10aSBj YW4gcmVwcmVzZW50IGFueXRoaW5nIHdoaWNoIGNhbiBiZSBzYWlkIHRvIG9jY3VweSBhIHBoeXNp Y2FsIHNwYWNlLiBPYmplY3RzLCBjZXJ0YWlubHkuIElkZWFzLCBjZXJ0YWlubHkgbm90LiBFdmVu dHMgYXJlIGFjY2VwdGVkLCBidXQgb25seSB0byB0aGUgZXh0ZW50IHRoZXkgYXJlIHJlc3RyaWN0 ZWQgdG8gYSBzcGVjaWZpYyBwbGFjZSAtIHRoZSBKYXNtaW4gUmV2b2x1dGlvbiBjYW5ub3QgYmUg cG9pbnRlZCBhdCwgYnV0IHNvbWUgYmFyLWZpZ2h0IG9yIGEga2lzcyBtaWdodC4gU2Vjb25kbHks IG5vdGUgdGhhdCB0aGUgZGlzdGFuY2UgaXMgcmVsYXRpdmUgdG8gZGlmZmVyZW50IHRoaW5ncyBm b3IgdGhlIGRpZmZlcmVudCB3b3JkczogJyd0dScnIG9ubHkgYXBwbGllcyBpZiBpdCdzIGRpc3Rh bnQgZnJvbSBib3RoIHRoZSBzcGVha2VyIGFuZCB0aGUgbGlzdGVuZXIuIEluIGNhc2VzIHdoZXJl IHRoZSBzcGVha2VyIGFuZCBsaXN0ZW5lciBpcyBmYXIgYXBhcnQgYW5kIHRoZSBsaXN0ZW5lciBj YW5ub3Qgc2VlIHRoZSBzcGVha2VyIHRhbGtpbmcsICcndGEnJyByZWZlcnMgdG8gc29tZXRoaW5n IGNsb3NlIHRvIHRoZSBsaXN0ZW5lci4gVGhpcmRseSwgaXQncyBhbGwgcmVsYXRpdmUgYW5kIGNv bnRleHQgZGVwZW5kZW50LiBUaGVzZSB0aHJlZSB3b3JkcyBhcmUgYWxsIHByb2JsZW1hdGljIGlu IHdyaXR0ZW4gdGV4dCwgZm9yIGluc3RhbmNlLCBiZWNhdXNlIHRoZSBwb3NpdGlvbiBvZiB0aGUg c3BlYWtlciBhbmQgbGlzdGVuZXIgaXMgdW5rbm93biB0byBlYWNoIG90aGVyLCBhbmQgY2hhbmdl cyBhcyB0aW1lIGdvZXMgYnkuIEZ1cnRoZXJtb3JlLCB0aGUgYXV0aG9yIG9mIGEgYm9vayBjYW5u b3QgcG9pbnQgdG8gYW4gb2JqZWN0IGFuZCBleHByZXNzIHRoZSBwb2ludGluZyBpbiB0aGUgYm9v ay4KCgoKVGhlbiB0aGVyZSBpcyBhIHNlcmllcyBjYWxsZWQgS09oQTMsIHRvIHdoaWNoICcnbWkn JyBhbmQgJydkbycnIChhbmQgJydrbycnLCBidXQgSSB3b24ndCB3cml0ZSB0aGF0IGhlcmUpIGJl bG9uZ3M6CgpfXycnbWknJ19fIC0gc3Vta2EnaTogVGhlIHNwZWFrZXIocykuCgpfXycnbWknbycn X18gLSBzdW1rYSdpOiBUaGUgbWFzcyBvZiB0aGUgc3BlYWtlcihzKSBhbmQgdGhlIGxpc3RlbmVy KHMpIC4KCl9fJydtaSdhJydfXyAtIHN1bWthJ2k6IFRoZSBtYXNzIG9mIHRoZSBzcGVha2VyKHMp IGFuZCBvdGhlcnMuCgpfXycnbWEnYScnX18gLSBzdW1rYSdpOiBUaGUgbWFzcyBvZiB0aGUgc3Bl YWtlcihzKSwgdGhlIGxpc3RlbmVyKHMpIGFuZCBvdGhlcnMuCgpfXycnZG8nJ19fIC0gc3Vta2En aTogVGhlIGxpc3RlbmVyKHMpLgoKX18nJ2RvJ28nJ19fIC0gc3Vta2EnaTogVGhlIG1hc3Mgb2Yg dGhlIGxpc3RlbmVyKHMpIGFuZCBvdGhlcnMuCgoKClRoZXNlIHNpeCBzdW1rYSdpIGFyZSBtb3Jl IGVhc2lseSBncmFzcGVkIGluIHRoZSBiZWxvdyBWZW5uIGRpYWdyYW06CgoKCntpbWcgZmlsZUlk PSIzIiB0aHVtYj0ieSIgcmVsPSJib3hbZ10ifQoKVmVubiBkaWFncmFtIG9mIEtPaEEzICgnJ2tv JycgZXhjbHVkZWQpLiAnJ2xlIGRyYXRhJycgaXMgbm90IGEgS09oQTMsIGJ1dCBtZWFucyDigJx0 aGUgb3RoZXIocynigJ0KCgoKSXQgaXMgcG9zc2libGUgZm9yIHNldmVyYWwgcGVvcGxlIHRvIGJl IOKAnHRoZSBzcGVha2Vyc+KAnSwgaWYgb25lIHN0YXRlbWVudCBpcyBtYWRlIG9uIHRoZSBiZWhh bGYgb2YgYWxsIG9mIHRoZW0uIFRoZXJlZm9yZSwgd2hpbGUg4oCcd2XigJ0gY2FuIGJlIHRyYW5z bGF0ZWQgYXMgZWl0aGVyICcnbWknJywgJydtaSdvJycsICcnbWknYScnIG9yICcnbWEnYScnLCB3 aGF0IG9uZSBxdWl0ZSBvZnRlbiBtZWFucyBpcyByZWFsbHkganVzdCAnJ21pJycuIEFsbCBvZiB0 aGVzZSBzaXgsIGlmIHRoZXkgcmVmZXIgdG8gbW9yZSB0aGFuIG9uZSBpbmRpdmlkdWFsLCByZXBy ZXNlbnQgbWFzc2VzLiBXaXRoaW4gYnJpZGktbG9naWMsIHRoZSBicmlkaSAnJ21pIGdsZWtpJycg c2FpZCBieSBzcGVha2VyIEEgaXMgZXhhY3RseSBlcXVpdmFsZW50IHRvICcnZG8gZ2xla2knJyBz YWlkIGJ5IHNwZWFrZXIgQiB0byBzcGVha2VyIEEsIGFuZCBhcmUgY29uc2lkZXJlZCB0aGUgc2Ft ZSBicmlkaS4gV2Ugd2lsbCBjb21lIGJhY2sgdG8gdGhpcyBsYXRlciwgaW4gdGhlICcnYnJpa2En aScnIChwcm8tYnJpZGkpIGxlc3Nvbi4KCgoKQWxsIG9mIHRoZXNlICcnc3Vta2EnaScnIGFyZSB2 ZXJ5IGNvbnRlbnQtc3BlY2lmaWMsIGFuZCBjYW5ub3QgYmUgdXNlZCwgZm9yIGluc3RhbmNlLCB0 byBoZWxwIHVzIHdpdGggdGhlIHNlbnRlbmNlIHdoaWNoIHRoaXMgbGVzc29uIGJlZ2FuIHdpdGgu IFRoZSBmb2xsb3dpbmcgc2VyaWVzIGNhbiBpbiBwcmluY2lwbGUgYmUgdXNlZCB0byByZWZlciB0 byBhbnkgc3VtdGk6CgpfXycncmknJ19fIC0gc3Vta2EnaTog4oCcTGFzdCBzdW10aSBtZW50aW9u ZWTigJ0KCl9fJydyYScnX18gLSBzdW1rYSdpOiDigJxBIHJlY2VudCwgYnV0IG5vdCB0aGUgbGFz dCBzdW10aSBtZW50aW9uZWTigJ0KCl9fJydydScnX18gLSBzdW1rYSdpOiDigJxBIHN1bXRpIG1l bnRpb25lZCBsb25nIGFnb+KAnQoKCgpUaGVzZSBzdW10aSB3aWxsIHJlZmVyIHRvIGFueSB0ZXJt aW5hdGVkIHN1bXRpIGV4Y2VwdCBtb3N0IG90aGVyICcnc3Vta2EnaScnLiBUaGUgcmVhc29uIHRo YXQgbW9zdCBvdGhlciAnJ3N1bWthJ2knJyBjYW5ub3QgYmUgcmVmZXJyZWQgdG8gYnkgdGhlc2Ug c3VtdGksIGlzIHRoYXQgdGhleSBhcmUgc28gZWFzeSB0byBqdXN0IHJlcGVhdCBieSB0aGVtc2Vs dmVzLiBUaGUgZXhjZXB0aW9uIHRvIHRoZSBydWxlIGFyZSAnJ3RpJycsICcndGEnJyBhbmQgJyd0 dScnLCBiZWNhdXNlIHlvdSBjb3VsZCBoYXZlIGNoYW5nZWQgd2hhdCB5b3UgcG9pbnQgYXQsIGFu ZCB0aHVzIGNhbm5vdCBqdXN0IHJlcGVhdCB0aGUgd29yZC4gVGhleSB3aWxsIG9ubHkgcmVmZXIg dG8gdGVybWluYXRlZCBzdW10aSwgYW5kIHRodXMgY2Fubm90LCBmb3IgaW5zdGFuY2UsIGJlIHVz ZWQgdG8gcmVmZXIgdG8gYW4gYWJzdHJhY3Rpb24gaWYgdGhlIHdvcmQgaW4gaXMgdGhhdCBhYnN0 cmFjdGlvbjogJydsZSBwZW5kbyBub2kga2UnYSBwZW5kbyBtaSBjdSBkamljYSBsbyBudSByaSBz ZSB6ZGFuaScnIC0gaGVyZSAnJ3JpJycgY2Fubm90IHJlZmVyIHRvIHRoZSBhYnN0cmF0aW9uLCBz aW5jZSBpdCBpcyBub3QgdGVybWluYXRlZCwgbm9yIHRvICcnbWknJyBvciAnJ2tlJ2EnJywgc2lu Y2UgdGhleSBhcmUgc3Vta2EnaSwgc28gaXQgcmVmZXJzIHRvICcnbGUgcGVuZG8nJy4KCicncmEn JyBhbmQgJydydScnIGFyZSBjb250ZXh0LWRlcGVuZGVudCBpbiB3aGF0IHRoZXkgcmVmZXIgdG8s IGJ1dCB0aGV5IGZvbGxvdyB0aGUgcnVsZXMgbWVudGlvbmVkIGFib3ZlLCBhbmQgJydydScnIGFs d2F5cyByZWZlciB0byBhIG1vcmUgZGlzdGFudCBzdW10aSB0aGFuICcncmEnJywgd2hpY2ggaXMg YWx3YXlzIG1vcmUgZGlzdGFudCB0aGFuICcncmknJy4KCgoKJydyaScnIGFuZCBpdCdzIGJyb3Ro ZXJzIGFyZSBwcmV0dHkgd2VsbCBzdWl0ZWQgZm9yIGRlYWxpbmcgd2l0aCB0aGUgb3JpZ2luYWwg c2VudGVuY2UuIFRyeSBzYXlpbmcgaXQgdXNpbmcgdHdvIGluc3RhbmNlcyBvZiAnJ3N1bWthJ2kn JyEKCgoKQW5zd2VyOiB+fmdyZXksZ3JleTonJ2xlJ2UgcHJlbnUgcG9pIGtlJ2Ega2FrbmUgbG8g bnUgdGF2bGEgZm8gbGEgLmxvamJhbi4gY3UgdGF2bGEgcnUgbG8gYmFuZ3UgcG9pIHJ1IGN1IHNl IGJhbmd1IGtlJ2EnJy4gJydyaScnIGlzIG5vdCBjb3JyZWN0LCBiZWNhdXNlIGl0IHJlZmVycyB0 byAnJ2xhIC5sb2piYW4uJycuICcncmEnJyBjb3VsZCBiZSB1c2VkLCBidXQgY291bGQgYmUgbWlz dGFrZW5seSBiZSB0aG91Z2h0IHRvIHJlZmVyIHRvICcnbG8gbnUgdGF2bGEgZm8gbGEgLmxvamJh bi4nJywgYnV0ICcncnUnJyBpcyBhc3N1bWVkIHRvIHJlZmVyIHRvIHRoZSBtb3N0IGRpc3RhbnQg c3VtdGkgLSB0aGUgbW9zdCBvdXRlciBvbmUufn4KCgoKTGFzdGx5LCB0aGVyZSBhIHN1bXRjaXRh IHdoaWNoIHJlcHJlc2VudCB1dHRlcmFuY2VzOiBTbyBjYWxsZWQgdXR0ZXJhbmNlIHZhcmlhYmxl cy4gVGhleSBuZWVkIG5vdCBiZSByZXN0cmljdGVkIHRvIG9uZSBzZW50ZW5jZSAoanVmcmEpLCBi dXQgY2FuIGJlIHNldmVyYWwgc2VudGVuY2VzLCBpZiB0aGUgY29udGV4dCBhbGxvd3MgaXQ6Cgpf XycnZGEndScnX18gVXR0ZXJhbmNlIHZhcmlhYmxlOiBSZW1vdGUgcGFzdCBzZW50ZW5jZQoKX18n J2RlJ3UnJ19fIFV0dGVyYW5jZSB2YXJpYWJsZTogUmVjZW50IHNlbnRlbmNlCgpfXycnZGkndScn X18gVXR0ZXJhbmNlIHZhcmlhYmxlOiBQcmV2aW91cyBzZW50ZW5jZQoKX18nJ2RlaScnX18gVXR0 ZXJhbmNlIHZhcmlhYmxlOiBUaGlzIHNlbnRlbmNlCgpfXycnZGknZScnX18gVXR0ZXJhbmNlIHZh cmlhYmxlOiBOZXh0IHNlbnRlbmNlCgpfXycnZGUnZScnX18gVXR0ZXJhbmNlIHZhcmlhYmxlOiBO ZWFyIGZ1dHVyZSBzZW50ZW5jZQoKX18nJ2RhJ2UnJ19fIFV0dGVyYW5jZSB2YXJpYWJsZTogUmVt b3RlIGZ1dHVyZSBzZW50ZW5jZQoKX18nJ2RvJ2knJ19fIFV0dGVyYW5jZSB2YXJpYWJsZTogRWxs aXB0aWNhbCB1dHRlcmFuY2UgdmFyaWFibGU6IOKAnFNvbWUgc2VudGVuY2XigJ0KClRoZXNlIHJl cHJlc2VudHMgc2VudGVuY2VzIGFzIHN1bXRpLCBhbmQgcmVmZXIgb25seSB0byB0aGUgc3Bva2Vu IHdvcmRzIG9yIHRoZSBsZXR0ZXJzLCBub3QgdG8gdGhlIG1lYW5pbmcgYmVoaW5kIHRoZW0uCgoK ClRoZXJlIGFyZSBtb3JlIExvamJhbiAnJ3N1bWthJ2knJywgYnV0IGZvciBub3cgeW91IHByb2Jh Ymx5IG5lZWQgYSBicmVhayBmcm9tIHRoZW0uIFRoZSBuZXh0IGxlc3NvbiB3aWxsIGJlIG9uIGRl cml2ZWQgc3VtdGksIHN1bXRpIG1hZGUgZnJvbSBvdGhlciBzdW10aS4KCgoKCgohIUxvamJhbiBM ZXNzb25zIC0gTGVzc29uIHNpeHRlZW4gKHRoZSBMb2piYW4gc3VtdGkgMzogZGVyaXZlZCBzdW10 aSkKCllvdSBjYW4gcHJvYmFibHkgc2VlIHRoYXQgdGhlIHN1bXRpICcnbGUgYmFuZ3UgcG9pIG1p IHNlIGJhbmd1IGtlJ2EnJyBpcyBhIGxlc3MgdGhhbiBlbGVnYW50IGV4cHJlc3Npb24gZm9yIOKA nG15IGxhbmd1YWdl4oCdLiBUaGlzIGlzIGJlY2F1c2UgaXQncyByZWFsbHkgYSB3b3JrIGFyb3Vu ZC4gQSBsYW5ndWFnZSB3aGljaCBJIHNwZWFrIGNhbiBiZSBzYWlkIHRvIGZpbGwgaW50byB0aGUg eDEgb2YgdGhlIGJyaWRpICcnYmFuZ3UgbWknJy4gV2UgY2FuJ3QgY29udmVydCB0aGF0IHRvIGEg c3VtdGkgdXNpbmcgYSBnYWRyaTogJydsZSBiYW5ndSB7a3V9IG1pJycgaXMgdHdvIHN1bXRpLCBi ZWNhdXNlICcnYmFuZ3UgbWknJyBpcyBhIGJyaWRpLCBub3QgYSBzZWxicmkuIE5laXRoZXIgY2Fu IHdlIGNvbnZlcnQgaXQgdXNpbmcgJydsZSBzdSd1JycsIGJlY2F1c2UgdGhlIHN1J3UgZ2l2ZXMg dGhlIGJyaWRpIGEgbmV3IHgxLCB0aGUgYWJzdHJhY3Rpb24sIGFuZCB0aGUgJydsZScnIHRoZW4g ZXh0cmFjdHMgdGhhdC4gVGhhdCBtYWtlcyBhbiBhYnN0cmFjdGlvbiBzdW10aSBtZWFuaW5nIHNv bWV0aGluZyBsaWtlIOKAnHRoYXQgc29tZXRoaW5nIGlzIG15IGxhbmd1YWdl4oCdLgoKRW50ZXIg JydiZScnLiAnJ2JlJycgaXMgYSB3b3JkIHdoaWNoIGJpbmRzIGNvbnN0cnVjdHMgKHN1bXRpLCBz dW10Y2l0YSBhbmQgb3RoZXJzKSB0byBhIHNlbGJyaS4gVXNpbmcgaXQgaW4gb3JkaW5hcnkgc2Vs YnJpIGhhcyBubyBlZmZlY3Q6IGluICcnbWkgbmVsY2kgYmUgZG8nJywgdGhlICcnYmUnJyBkb2Vz IG5vdGhpbmcuIEhvd2V2ZXIsIHdoZW4gYSBzdW10aSBpcyBib3VuZCB0byBhIHNlbGJyaSB0aGlz IHdheSwgeW91IGNhbiB1c2UgYSBnYWRyaSBvbiB0aGUgc2VsYnJpIHdpdGhvdXQgdGhlIHN1bXRp IHNwbGl0dGluZyBvZmY6ICcnbGUgYmFuZ3UgYmUgbWknJyBpcyBhIGNvcnJlY3Qgc29sdXRpb24g dG8gdGhlIHByb2JsZW0gYWJvdmUuIExpa2V3aXNlLCB5b3UgY2FuIGF0dGFjaCBhIHN1bXRjaXRh OiAnJ2xlIG51IGRhcnhpIGtlaSBiZSBnYXUgZG8nJzog4oCcVGhlIGV2ZW50IG9mIGhpdHRpbmcs IHdoaWNoIGlzIGNhdXNlZCBieSB5b3XigJ0uIE5vdGUgdGhhdCB0aGUgcHJlc2VuY2Ugb3IgYWJz ZW5jZSBvZiAnJ2tlaScnIG1ha2VzIGl0IHBhcnNlIGRpZmZlcmVudGx5OiBXaXRoIHRoZSBmYSdv cm1hJ28gcHJlc2VudCwgJydiZScnIGF0dGFjaGVzIHRvICcnbnUnJywgd2l0aG91dCB0aGUgZmEn b3JtYSdvLCBpdCBhdHRhY2hlcyB0byAnJ2RhcnhpJycuIFNvIGl0IGRlY2lkZXMgd2hhdCBpcyBi ZWluZyBlbXBoYXNpc2VkOiBJcyB0aGUgaGl0dGluZywgb3IgdGhlIGV2ZW50IG9mIGhpdHRpbmcg Y2F1c2VkIGJ5IHlvdT8gSW4gdGhpcyBzcGVjaWZpYyBjYXNlLCB0aG91Z2gsIHRoYXQncyBqdXN0 IGFib3V0IHRoZSBzYW1lIHRoaW5nLgoKCgpXaGF0IGlmIEkgd2FudCB0byBhdHRhY2ggc2V2ZXJh bCBzdW10aSB0byBhIHNlbGJyaSBpbnNpZGUgYSBnYWRyaT8g4oCcVGhlIGdpdmVyIG9mIHRoZSBh cHBsZSB0byB5b3XigJ0gaXMgJydsZSBkdW5kYSBiZSBsbyBwbGlzZSBiZSBkbycnLCByaWdodD8g Tm9wZS4gVGhlIHNlY29uZCAnJ2JlJycgYXR0YWNoZXMgdG8gdGhlIGFwcGxlLCBtZWFuaW5nICcn bGUgcGxpc2UgYmUgZG8nJyAtIOKAnFRoZSBhcHBsZSBvZiB0aGUgc3RyYWluIG9mIHlvdeKAnSwg d2hpY2ggbWFrZXMgbm8gc2Vuc2UuIEluIG9yZGVyIHRvIHN0cmluZyBzZXZlcmFsIHN1bXRpIHRv IGEgc2VsYnJpLCB0aGUgYWxsIHRoZSBvbmVzIGZvbGxvd2luZyB0aGUgZmlyc3QgbXVzdCBiZSBi b3VuZCB3aXRoICcnYmVpJycuIFRoZSDigJxiaW5kaW5n4oCdIGNhbiBiZSB0ZXJtaW5hdGVkIHdp dGggJydiZSdvJycgLSBvbmUgaW5zdGFuY2Ugb2YgJydiZSdvJycgZm9yIGVhY2ggc2VsYnJpIHdo aWNoIGhhcyBzdW10aSBib3VuZCBieSAnJ2JlJycuCgpUbyBsaXN0IHRoZW06CgpfXycnYmUnJ19f IGJpbmRzIHN1bXRpIG9yIHN1bXRjaXRhIHRvIHNlbGJyaQoKX18nJ2JlaScnX18gYmluZHMgYSBz ZWNvbmQsIHRoaXJkLCBmb3VydGggKGVjdCkgc3VtdGkgb3Igc3VtdGNpdGEgdG8gYSBzZWxicmkK Cl9fJydiZSdvJydfXyBlbmRzIGJpbmRpbmcgdG8gc2VsYnJpCgoKClRoZXJlIGlzIGFsc28gd2F5 cyB0byBsb29zZWx5IGFzc29jaWF0ZSBhIHN1bXRpIHdpdGggYW5vdGhlci4gJydwZScnIGFuZCAn J25lJycgZm9yIHJlc3RyaWN0aXZlIGFuZCBub24tcmVzdHJpY3RpdmUgYXNzb2NpYXRpb24uIEFj dHVhbGx5LCAnJ2xlIGJhbmd1IHBlIG1pJycgaXMgYSBiZXR0ZXIgdHJhbnNsYXRpb24gb2Yg4oCc bXkgbGFuZ3VhZ2XigJ0sIHNpbmNlIHRoaXMgcGhyYXNlLCBsaWtlIHRoZSBFbmdsaXNoLCBpcyB2 YWd1ZSBhcyB0byBob3cgdGhlIHR3byBhcmUgYXNzb2NpYXRlZCB3aXRoIGVhY2ggb3RoZXIuCgon J3BlJycgYW5kICcnbmUnJyBhcmUgdXNlZCBhcyBsb29zZSBhc3NvY2lhdGlvbiBvbmx5LCBsaWtl IHNheWluZyDigJxteSBjaGFpcuKAnSBhYm91dCBhIGNoYWlyIHdoaWNoIHlvdSBzaXQgb24uIEl0 J3Mgbm90IHJlYWxseSB5b3VycywgYnV0IGhhcyBzb21ldGhpbmcgZG8gdG8gd2l0aCB5b3UuIEEg bW9yZSBpbnRpbWF0ZSBjb25uZWN0aW9uIGNhbiBiZSBlc3RhYmxpc2hlZCB3aXRoICcncG8nJywg d2hpY2ggbWFrZXMgdGhlIGFzc29jaWF0aW9uIHVuaXF1ZSBhbmQgYmluZGluZyB0byBhIHBlcnNv biwgYXMgaW4g4oCcbXkgY2Fy4oCdIGZvciBhIGNhciB0aGF0IHlvdSBhY3R1YWxseSBvd24uIFRo ZSBsYXN0IGtpbmQgb2YgYXNzb2NpYXRvciBpcyAnJ3BvJ2UnJywgd2hpY2ggbWFrZXMgYSBzby1j YWxsZWQgImluYWxpZW5hYmxlIiBib25kIGJldHdlZW4gc3VtdGksIG1lYW5pbmcgdGhhdCB0aGUg Ym9uZCBpcyBpbm5hdGUgYmV0d2VlbiB0aGUgdHdvIHN1bXRpLiBTb21lIGV4YW1wbGVzIGNvdWxk IGJlICJteSBtb3RoZXIiLCAibXkgYXJtIiBvciAibXkgaG9tZSBjb3VudHJ5Ijsgbm9uZSBvZiB0 aGVzZSAicG9zc2VzaW9ucyIgY2FuIGJlIGxvc3QgKGV2ZW4gaWYgeW91IHNhdyBvZmYgeW91ciBh cm0sIGl0J3Mgc3RpbGwgX195b3VyX18gYXJtKSwgYW5kIGFyZSB0aGVyZWZvcmUgaW5hbGllbmFi bGUuIEFsbW9zdCBhbGwgb2YgdGhlIHRpbWVzIGEgJydwbydlJycgaXMgYXBwcm9wcmlhdGUsIHRo b3VnaCwgdGhlIHgyIG9mIHRoZSBzZWxicmkgY29udGFpbnMgdGhlIG9uZSB0byB3aGljaCB0aGUg eDEgaXMgY29ubmVjdGVkLCBzbyAnJ2JlJycgaXMgYmV0dGVyLgoKX18nJ25lJydfXyBub24tcmVz dHJpY3RpdmUgcmVsYXRpdmUgcGhyYXNlLiAid2hpY2ggaXMgYXNzb2NpYXRlZCB3aXRoLi4uIgoK X18nJ3BlJydfXyByZXN0cmljdGl2ZSByZWxhdGl2ZSBwaHJhc2UuICJ3aGljaCBpcyBhc3NvY2lh dGVkIHdpdGguLi4iCgpfXycncG8nJ19fIHBvc3Nlc2l2ZSByZWxhdGl2ZSBwaHJhc2UuICJ3aGlj aCBpcyBzcGVjaWZpYyB0by4uLiIKCl9fJydwbydlJydfXyBpbmFsaWVuYWJsZSByZWxhdGl2ZSBw aHJhc2UuICJ3aGljaCBiZWxvbmdzIHRvLi4uIgoKCgpBIHZlcnkgdXNlZnVsIGNvbnN0cnVjdCB0 byBrbm93IGlzICcne2dhZHJpfSB7c3VtdGl9IHtzZWxicml9JycuIHRoaXMgaXMgZXF1aXZhbGVu dCB0byAnJ3tnYWRyaX0ge3NlbGJyaX0gcGUgIHtzdW10aX0nJy4gRm9yIGluc3RhbmNlICcnbGUg bWkgZ2Vya3UnJyBpcyBlcXVpdmFsZW50IHRvICcnbGUgZ2Vya3UgcGUgbWknJy4gT25lIGNvdWxk IGhhdmUgZGVzY3JpcHRpb24gc3VtdGkgaW5zaWRlIGRlc2NyaXB0aW9uIHN1bXRpLCBzYXlpbmcg JydsZSBsZSBzZSBjaW5qaWtjYSBiZSBtaSBrdSBnZXJrdScnLCA9ICcnbGUgZ2Vya3UgcGUgbGUg c2UgY2luamlrY2EgYmUgbWknJyA94oCcdGhlIGRvZyBvZiB0aGUgbWFuIEknbSBmbGlydGluZyB3 aXRo4oCdLCBidXQgdGhhdCdzIG5vdCB2ZXJ5IGVhc3kgdG8gcmVhZCAob3IgdG8gdW5kZXJzdGFu ZCB3aGVuIHNwb2tlbiksIGFuZCBpcyBvZnRlbiBiZWluZyBhdm9pZGVkLgoKCgpPbmUgbmVlZCBh bHNvIHRvIGxlYXJuICcndHUnYScnLCBzaW5jZSBpdCB3aWxsIG1ha2UgYSBsb3Qgb2Ygc2VudGVu Y2VzIG11Y2ggZWFzaWVyLiBJdCB0YWtlcyBhIHN1bXRpIGFuZCBjb252ZXJ0cyBpdCB0byBhbm90 aGVyIHN1bXRpIC0gYW4gZWxsaXB0aWNhbCBhYnN0cmFjdGlvbiB3aGljaCBoYXMgc29tZXRoaW5n IHRvIGRvIHdpdGggdGhlIGZpcnN0IHN1bXRpLiBGb3IgZXhhbXBsZSwgSSBjb3VsZCBzYXkgJydt aSBkamljYSBsbyBudSBtaSBjaXRrYSBsbyBwbGlzZScnLCBvciBJIGNvdWxkIGxldCBpdCBiZSB1 cCB0byBjb250ZXh0IHdoYXQgYWJzdHJhY3Rpb24gYWJvdXQgdGhlIGFwcGxlIEkgZGVzaXJlIGFu ZCBqdXN0IHNheSAnJ21pIGRqaWNhIHR1J2EgbG8gcGxpc2UnJy4gT25lIGFsd2F5cyBoYXMgdG8g Z3Vlc3Mgd2hhdCBhYnN0cmFjdGlvbiB0aGUgc3BlYWtlciBtZWFucyBieSAnJ3R1J2EgU1VNVEkn Jywgc28gaXQgc2hvdWxkIG9ubHkgYmUgdXNlZCB3aGVuIGNvbnRleHQgbWFrZXMgaXQgZWFzeSB0 byBndWVzcy4gQW5vdGhlciBleGFtcGxlOgoKX18nJ2dhc251JydfXyDigJx4MSBkb2VzL2JyaW5n cyBhYm91dCB4MiAodm9saXRpb24gbm90IGltcGxpZWQp4oCdCgonJ3phJ2EgZG8gZ2FzbnUgdHUn YSBsbyBza2FtaScnIC0g4oCcSSBzZWUgdGhhdCB5b3UgbWFrZSB0aGUgY29tcHV0ZXIgZG8gc29t ZXRoaW5n4oCdLiBPZmZpY2lhbGx5LCAnJ3R1J2EgU1VNVEknJyBpcyBlcXVpdmFsZW50IHRvICcn bGUgc3UndSBTVU1USSBjbydlJycuIFZhZ3VlLCBidXQgdXNlZnVsLiBUaGVyZSBhcmUgc2l0dWF0 aW9ucyB3aGVyZSB5b3UgY2Fubm90IHVzZSAnJ3R1J2EnJywgZXZlbiB0aG91Z2ggaXQgd291bGQg c2VlbSBzdWl0YWJsZS4gVGhlc2Ugc2l0dWF0aW9ucyBhcmUgd2hlbiBJIGRvbid0IHdhbnQgdGhl IHJlc3VsdGluZyBzdW10aSB0byBiZSBhbiBhYnN0cmFjdGlvbiwgYnV0IGEgY29uY3JldGUgc3Vt dGkuIEluIHRoaXMgY2FzZSwgb25lIGNhbiB1c2UgJyd6bydlIHBlJycuCgpfXycndHUnYScnX18g Y29udmVydCBzdW10aSB0byB2YWd1ZSBhYnN0cmFjdGlvbiBpbnZvbHZpbmcgdGhlIHN1bXRpLiBF cXVpdmFsZW50IHRvICcnbGUgc3UndSBTVU1USSBjbydlIGtlaSBrdScnCgoKCkZpbmFsbHksIG9u ZSBraW5kIG9mIHN1bXRpIGNhbiBiZSB0dXJuZWQgaW50byBhbm90aGVyIGJ5IHRoZSB3b3JkcyBv ZiB0aGUgY2xhc3MgTEFoRS4KCl9fJydsdSdhJydfXyAtIENvbnZlcnQgaW5kaXZpZHVhbChzKS9t YXNzL3NlcXVlbmNlL3NldCB0byBpbmRpdmlkdWFscy4KCl9fJydsdSdpJydfXyAtIENvbnZlcnQg aW5kaXZpZHVhbChzKS9tYXNzL3NlcXVlbmNlL3NldCB0byBhIHNldC4KCl9fJydsdSdvJydfXyAt IENvbnZlcnQgaW5kaXZpZHVhbChzKS9tYXNzL3NlcXVlbmNlL3NldCB0byBtYXNzLgoKX18nJ3Z1 J2knJ19fIC0gQ29udmVydCBpbmRpdmlkdWFsKHMpL21hc3Mvc2VxdWVuY2Uvc2V0IHRvIHNlcXVl bmNlOyB0aGUgb3JkZXIgaXMgbm90IHN0YXRlZC4KClRoZSB1c2Ugb2YgdGhlc2Ugd29yZHMgaXMg c3RyYWlnaHQtZm9yd2FyZGx5OiBQbGFjaW5nIHRoZW0gYmVmb3JlIGEgc3VtdGkgb2YgYSBjZXJ0 YWluIHR5cGUgbWFrZXMgYSBuZXcgc3VtdGkgb2YgYSBuZXcgdHlwZS4gTm90aWNlLCB0aG91Z2gs IHRoYXQgYXMgYSBmb3VydGgga2luZCBvZiBzdW10aSwgYSBzZXF1ZW5jZSBoYXMgYmVlbiBpbnRy b2R1Y2VkLiBUaGlzIGlzIG5vdCB1c2VkIHZlcnkgb2Z0ZW4gKGl0IGRvZXNuJ3QgaGF2ZSBpdHMg b3duIGdhZHJpLCBmb3IgaW5zdGFuY2UpLCBidXQganVzdCBpbmNsdWRlZCBoZXJlIGZvciBjb21w bGV0aW9uLgoKVGhlIGxhc3QgdHdvIG1lbWJlcnMgb2YgTEFoRSBkbyBub3QgY29udmVydCBiZXR3 ZWVuIHR5cGVzIG9mIHN1bXRpLCBidXQgYWxsb3dzIHlvdSB0byBzcGVhayBvZiBhIGEgc3VtdGkg Ynkgb25seSBtZW50aW9uaW5nIHNvbWV0aGluZyB3aGljaCByZWZlcmVuY2VzIHRvIGl0OgoKSWYg b25lIHN1bXRpIEEgcmVmZXJzIHRvIGEgc3VtdGkgQiwgZm9yIGluc3RhbmNlIGJlY2F1c2Ugc3Vt dGkgQSBpcyBhIHRpdGxlIG9mIGEgYm9vaywgb3IgYSBuYW1lLCBvciBhIHNlbnRlbmNlICh3aGlj aCBhbHdheXMgcmVmZXIgdG8gc29tZXRoaW5nLCBhdCBsZWFzdCBhIGJyaWRpKSwg4oCYJ2xhJ2Ug U1VNVEkgQScnIHJlZmVycyB0byBzdW10aSBCLiBGb3IgaW5zdGFuY2UsIOKAmCdtaSBuZWxjaSBs YSdlIGRpJ3UnJyBmb3Ig4oCcSSBsaWtlIHdoYXQgeW91IGp1c3Qgc2FpZOKAnSAobm90ICcnbWkg bmVsY2kgZGkndScnIHdoaWNoIGp1c3QgbWVhbnMgIkkgbGlrZSB5b3VyIHByZXZpb3VzIHNlbnRl bmNlIikgb3Ig4oCYJ2xhJ2UgbGUgY21hbHUgbm9sdHJ1JycgZm9yIHRoZSBib29rIOKAnFRoZSBM aXR0bGUgUHJpbmNl4oCdLCBhbmQgbm90IHNvbWUgbGl0dGxlIHByaW5jZSBoaW1zZWxmLiBUaGUg Y21hdm8g4oCYJ2x1J2UnJyBkb2VzIHRoZSBleGFjdCByZXZlcnNlIOKAkyDigJgnbHUnZSBTVU1U SScnIHJlZmVycyB0byBhbiBvYmplY3Qgd2hpY2ggcmVmZXJzIHRvIHRoZSBzdW10aS4gCgpfXycn bGEnZScnX18gLSDigJx0aGUgdGhpbmcgcmVmZXJyZWQgdG8gYnnigJ0gLSBleHRyYWN0cyBhIHN1 bXRpIEEgZnJvbSBhIHN1bXRpIEIgd2hpY2ggcmVmZXJzIHRvIEEuIAoKX18nJ2x1J2UnJ19fIC0g 4oCcdGhlIHRoaW5nIHJlZmVycmluZyB0b+KAnSAtIGV4dHJhY3RzIGEgc3VtdGkgQiBmcm9tIGEg c3VtdGkgQSwgd2hlbiBCIHJlZmVycyB0byBBLgoKCgoKCiEhIUVuZCBvZiBwYXJ0IG9uZQoKRHVl IHRvIHRoZSBpbXByYWN0aWNhbGx5IGxhcmdlIHNpemUgb2YgdGhlc2UgbGVzc29ucywgdGhlIHNl Y29uZCBhbmQgdGhpcmQgaW5zdGFsbG1lbnQgY2FuIGJlIGZvdW5kIG9uIHBhZ2VzIGRlZGljYXRl ZCB0byAoKHdhdmVsZXNzb25zY29udGludWVkcDJ8dGhlIGZvcm1lcikpIGFuZCAoKHdhdmVsZXNz b25zY29udGludWVkcDN8dGhlIGxhdHRlcikpLiBObyB3b3JyaWVzLCB0aG91Z2gsIGNsaWNraW5n IG9uICJ0aGUgZm9ybWVyIiBvciAidGhlIGxhdHRlciIgd2lsbCB0YWtlIHlvdSB0aGVyZSBwYWlu bGVzc2x5LgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Cldpa2luZXVyb3RpYyBtYWlsaW5nIGxpc3QKV2lraW5ldXJvdGljQGxvamJhbi5vcmcKaHR0cDov L21haWwubG9qYmFuLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3dpa2luZXVyb3RpYwo=