Received: from localhost ([::1]:45305 helo=stodi.digitalkingdom.org) by stodi.digitalkingdom.org with esmtp (Exim 4.80.1) (envelope-from ) id 1Wrnbm-0004nh-92; Tue, 03 Jun 2014 05:14:26 -0700 Received: from 173-13-139-235-sfba.hfc.comcastbusiness.net ([173.13.139.235]:51702 helo=jukni.digitalkingdom.org) by stodi.digitalkingdom.org with smtp (Exim 4.80.1) (envelope-from ) id 1Wrnbb-0004na-Pn for wikineurotic@lojban.org; Tue, 03 Jun 2014 05:14:24 -0700 Received: by jukni.digitalkingdom.org (sSMTP sendmail emulation); Tue, 03 Jun 2014 05:14:15 -0700 From: "Apache" Date: Tue, 03 Jun 2014 05:14:15 -0700 To: wikineurotic@lojban.org X-PHP-Originating-Script: 48:htmlMimeMail.php MIME-Version: 1.0 Message-ID: X-Spam-Score: -0.9 (/) X-Spam_score: -0.9 X-Spam_score_int: -8 X-Spam_bar: / Subject: [Wikineurotic] Wiki page gadri: an unofficial commentary from a logical point of view changed by guskant X-BeenThere: wikineurotic@lojban.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: webmaster@lojban.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: wikineurotic-bounces@lojban.org Content-Length: 75907 VGhlIHBhZ2UgZ2Fkcmk6IGFuIHVub2ZmaWNpYWwgY29tbWVudGFyeSBmcm9tIGEgbG9naWNhbCBw b2ludCBvZiB2aWV3IHdhcyBjaGFuZ2VkIGJ5IGd1c2thbnQgYXQgMTI6MTMgVVRDCkNvbW1lbnQ6 IG1hbmFnZSBsaW5rcwoKWW91IGNhbiB2aWV3IHRoZSBwYWdlIGJ5IGZvbGxvd2luZyB0aGlzIGxp bms6CiAKaHR0cDovL3d3dy5sb2piYW4ub3JnL3Rpa2kvZ2FkcmklM0ElMjBhbiUyMHVub2ZmaWNp YWwlMjBjb21tZW50YXJ5JTIwZnJvbSUyMGElMjBsb2dpY2FsJTIwcG9pbnQlMjBvZiUyMHZpZXcK CllvdSBjYW4gdmlldyBhIGRpZmYgYmFjayB0byB0aGUgcHJldmlvdXMgdmVyc2lvbiBieSBmb2xs b3dpbmcgdGhpcyBsaW5rOiAKaHR0cDovL3d3dy5sb2piYW4ub3JnL3Rpa2kvdGlraS1wYWdlaGlz dG9yeS5waHA/cGFnZT1nYWRyaSUzQSUyMGFuJTIwdW5vZmZpY2lhbCUyMGNvbW1lbnRhcnklMjBm cm9tJTIwYSUyMGxvZ2ljYWwlMjBwb2ludCUyMG9mJTIwdmlldyZjb21wYXJlPTEmb2xkdmVyPTIw Jm5ld3Zlcj0yMQoKCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqClRoZSBjaGFuZ2VzIGluIHRoaXMgdmVyc2lvbiBmb2xsb3cgYmVsb3cs IGZvbGxvd2VkIGFmdGVyIGJ5IHRoZSBjdXJyZW50IGZ1bGwgcGFnZSB0ZXh0LgoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKCistKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCkBA IC1MaW5lczogMjItMjYgY2hhbmdlZCB0byArTGluZXM6IDIyLTI2IEBACistKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCgohISMgUGx1cmFs IHF1YW50aWZpY2F0aW9uCi0gSW4gb3JkZXIgdG8gdW5kZXJzdGFuZCBhcmd1bWVudHMgb2YgTG9q YmFuIGZyb20gYSBsb2dpY2FsIHBvaW50IG9mIHZpZXcsIGl0IGlzIGVzc2VudGlhbCB0byBoYXZl IGEga25vd2xlZGdlIG9mIF9fcGx1cmFsIHF1YW50aWZpY2F0aW9uX18uCisgSW4gb3JkZXIgdG8g dW5kZXJzdGFuZCBhcmd1bWVudHMgb2YgTG9qYmFuIGZyb20gYSBsb2dpY2FsIHBvaW50IG9mIHZp ZXcsIGl0IGlzIGVzc2VudGlhbCB0byBoYXZlIGEga25vd2xlZGdlIG9mIF9fcGx1cmFsIHF1YW50 aWZpY2F0aW9uX18gKHNlZSwgZm9yIGV4YW1wbGUsIFtodHRwOi8vdGhlY29sbGVnZS5zeXIuZWR1 L3Byb2ZpbGVzL3BhZ2VzL21ja2F5LXRob21hcy5odG1sfFRob21hcyBNY0theV06ICcnUGx1cmFs IFByZWRpY2F0aW9uJycsIE94Zm9yZCBVbml2ZXJzaXR5IFByZXNzLCAyMDA2KS4KClBsdXJhbCBx dWFudGlmaWNhdGlvbiB3YXMgaW52ZW50ZWQgaW4gb3JkZXIgdG8gZmFjaWxpdGF0ZSBleHByZXNz aW9uIG9mIHByb3Bvc2l0aW9uIHRoYXQgaXMgbWVhbmluZ2Z1bCBvbmx5IHdoZW4gdGhlIHJlZmVy ZW50IG9mIGFuIGFyZ3VtZW50IGlzIHBsdXJhbC4gCgorLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKwpAQCAtTGluZXM6IDQ0MS00NDUgY2hh bmdlZCB0byArTGluZXM6IDQ0MS00NDUgQEAKKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKVW5sZXNzIGFsbCBjYXRzIGluIHRoaXMgdW5p dmVyc2Ugb2YgZGlzY291cnNlIGFyZS93aWxsIGJlIGJvcm4gdG8gY29tbW9uIHBhcmVudHMgYXQg dGhlIHNhbWUgdGltZSBhdCB0aGUgc2FtZSBwbGFjZSwgdGhlc2Uge3pvJ2V9IGNhbm5vdCBiZSBj b25zaWRlcmVkIGFzIGNvbW1vbiBjb25zdGFudHMgZm9yIGFsbCByZWZlcmVudHMgaW4gYSBkb21h aW4gb2Yge3JvIG1sYXR1fS4gSW4gb3JkZXIgdG8gbWFrZSBzdWNoIGFuIGV4cHJlc3Npb24gbGlr ZSB7cm8gbWxhdHUgY3UgamJlbmF9IGhhdmUgaW50ZW5kZWQgbWVhbmluZywgImNvbnN0YW50cyIg b2YgTG9qYmFuIGNhbiBiZSBkZXBlbmRlbnQgb24gcmVmZXJlbnRzIGluIGRvbWFpbnMgb2YgYm91 bmQgdmFyaWFibGVzLgoKLSAmcXVvdDtDb25zdGFudHMmcXVvdDsgaW4gdGhpcyBtZWFuaW5nIGNv cnJlc3BvbmQgdG8gU2tvbGVtIGZ1bmN0aW9ucyBpbiBTa29sZW0gbm9ybWFsIGZvcm1zIG9mIHBy ZWRpY2F0ZSBsb2dpYy4gVGhlIHRhYmxlIGJlbG93IHNob3dzIGNvbXBhcmlzb24gb2YgaW50ZXJw cmV0YXRpb25zIGJldHdlZW4gcHJlZGljYXRlIGxvZ2ljLCB4b3JsbyBvbiB3aGljaCB0aGlzIGNv bW1lbnRhcnkgZGVwZW5kcyBhbmQgaW1wbGljaXQgcXVhbnRpZmllciAoW2h0dHA6Ly9kYWcuZ2l0 aHViLmlvL2NsbC82LzEvfENMTCB2ZXIuMS4wIENoYXB0ZXIgNl0pIHdoaWNoIHdhcyBhYm9saXNo ZWQuIFRoZSBleHByZXNzaW9ucyB0aGF0IGhhdmUgdGhlIHNhbWUgdHJ1dGggdmFsdWUgYXJlIGFs aWduZWQgaW4gdGhlIHNhbWUgY29sdW1uLiBVcHBlciBjYXNlIFkgcmVwcmVzZW50cyBhIHBsdXJh bCB2YXJpYWJsZS4gVGhlIHJvdyBvZiB6bydlK3hvcmxvIHNob3dzIHVub2ZmaWNpYWwgc3VnZ2Vz dGlvbiBvZiBpbnRlcnByZXRhdGlvbi4gSW4gdGhlIGdyYXkgcGFydCBpbiB0aGUgcm93IG9mIFBy ZW5leCBub3JtYWwsIHVub2ZmaWNpYWwgZXhwcmVzc2lvbnMgd2l0aCBhbiBleHBlcmltZW50YWwg Y21hdm8ge3N1J29pfSBhcmUgc2hvd24uIChDbGljayBvbiB0aGUgdGFibGUgdG8gZW5sYXJnZS4p CisgJnF1b3Q7Q29uc3RhbnRzJnF1b3Q7IGluIHRoaXMgbWVhbmluZyBjb3JyZXNwb25kIHRvIFNr b2xlbSBmdW5jdGlvbnMgaW4gU2tvbGVtIG5vcm1hbCBmb3JtcyBvZiBwcmVkaWNhdGUgbG9naWMu IFRoZSB0YWJsZSBiZWxvdyBzaG93cyBjb21wYXJpc29uIG9mIGludGVycHJldGF0aW9ucyBiZXR3 ZWVuIHByZWRpY2F0ZSBsb2dpYywgeG9ybG8gb24gd2hpY2ggdGhpcyBjb21tZW50YXJ5IGRlcGVu ZHMgYW5kIGltcGxpY2l0IHF1YW50aWZpZXIgKFtodHRwOi8vZGFnLmdpdGh1Yi5pby9jbGwvNi8x L3xDTEwgQ2hhcHRlciA2XSkgd2hpY2ggd2FzIGFib2xpc2hlZC4gVGhlIGV4cHJlc3Npb25zIHRo YXQgaGF2ZSB0aGUgc2FtZSB0cnV0aCB2YWx1ZSBhcmUgYWxpZ25lZCBpbiB0aGUgc2FtZSBjb2x1 bW4uIFVwcGVyIGNhc2UgWSByZXByZXNlbnRzIGEgcGx1cmFsIHZhcmlhYmxlLiBUaGUgcm93IG9m IHpvJ2UreG9ybG8gc2hvd3MgdW5vZmZpY2lhbCBzdWdnZXN0aW9uIG9mIGludGVycHJldGF0aW9u LiBJbiB0aGUgZ3JheSBwYXJ0IGluIHRoZSByb3cgb2YgUHJlbmV4IG5vcm1hbCwgdW5vZmZpY2lh bCBleHByZXNzaW9ucyB3aXRoIGFuIGV4cGVyaW1lbnRhbCBjbWF2byB7c3Unb2l9IGFyZSBzaG93 bi4gKENsaWNrIG9uIHRoZSB0YWJsZSB0byBlbmxhcmdlLikKe2ltZyBmaWxlSWQ9IjEyIiB0aHVt Yj0ieSIgbGluaz0iZGlzcGxheTExIiByZWw9ImJveFtnXSJ9CgoKKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKQEAgLUxpbmVzOiA1NzUt NTc3IGNoYW5nZWQgdG8gK0xpbmVzOiA1NzUtNTc2IEBACistKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCl5jZSd1IGNlJ3UgY2l0a2F+cHB+ Cn4vcHB+JydBIGVhdHMgQi4nJyAoT3BlbiBzZW50ZW5jZSwgdHJ1dGggdmFsdWUgaW5kZWZpbml0 ZS4pXgotIAoKCgoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKVGhlIG5ldyBwYWdlIGNvbnRlbnQgZm9sbG93cyBiZWxvdy4KKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCigo QlBGSyBTZWN0aW9uOiBnYWRyaXxCUEZLJ3MgZ2FkcmkgcGFnZSkpIGNvbnRhaW5zIGV4cHJlc3Np b25zIG1pc2xlYWRpbmcgcGVvcGxlIHdobyBoYXZlIGF0IGxlYXN0IGEgbGl0dGxlIGtub3dsZWRn ZSBvZiBsb2dpYyAoW2h0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vZC90b3BpYy9sb2piYW4vUkF0 RTdZay1kcXcvZGlzY3Vzc2lvbnxkaXNjdXNzaW9uXSkuCgpJIHdpbGwgbWFrZSBoZXJlIGEgY29t bWVudGFyeSBvbiBCUEZLJ3MgZ2Fkcmkgc28gdGhhdCBpdCBpcyB1bmRlcnNvb2QgYnkgdGhlbSBj b3JyZWN0bHkuCgoKCnttYWtldG9jfQoKCgohISMgR2xvc3NhcnkKCldlIHdpbGwgdXNlIHRoZSBm b2xsb3dpbmcgdGVybXMgaW4gdGhpcyBjb21tZW50YXJ5LgoKO19fYXJndW1lbnQgKHN1bXRpKV9f OiBTeW1ib2wgdGhhdCByZWZlcnMgdG8gYSByZWZlcmVudCwgb3IgdGhhdCBhbm90aGVyIGFyZ3Vt ZW50IGNhbiBiZSBzdWJzdGl0dXRlZCBmb3IuCgpeR3JhbW1hdGljYWxseSwgYWxsIHRoZXNlIGFy ZSBzdW10aTogYXJndW1lbnRzLCB7emknb30gd2hpY2ggcmVtb3ZlcyBhIHBsYWNlIGZvciBhbiBh cmd1bWVudCwge2tvfSB3aGljaCByZWZlcnMgdG8gbGlzdGVuZXIocykgYW5kIGZvcm1zIGltcGVy YXRpdmUsIHttYX0gd2hpY2ggZm9ybXMgaW50ZXJyb2dhdGl2ZSB0byBhc2sgd2hpY2ggc3VtdGkg bWFrZXMgdGhlIHN0YXRlbWVudCB0cnVlLCBzdW10aSBhbmQgcmVsYXRpdmUgY2xhdXNlcyAoe3pv J2Ugbm9pIGJyb2RhfS4uLiksIHF1YW50aWZpZXIgYW5kIHN1bXRpL3NlbGJyaSAoe25vZGF9LCB7 Y2kgbG8gYnJvZGF9LCB7cm8gYnJvZGF9Li4uKSAsIHN1bXRpIGNvbm5lY3RlZCBieSBjb25uZWN0 aXZlcyAoe2tvJ2EgLmUga28nZX0uLi4pLiBIb3dldmVyLCBpbiB0aGlzIGFydGljbGUsICJzdW10 aSIgcmVmZXJzIHRvIGFuIGFyZ3VtZW50IG9mIGxvZ2ljIHJlcHJlc2VudGVkIGluIExvamJhbi5e Cgo7X191bml2ZXJzZSBvZiBkaXNjb3Vyc2VfXzogU2V0IG9mIGFsbCByZWZlcmVudHMgb2YgYXJn dW1lbnRzLiBJdCBpcyBuYXR1cmFsbHkgYSB1bml2ZXJzZSB0aGF0IGlzIGRpc2N1c3NlZC4gQSB1 bml2ZXJzZSBvZiBkaXNjb3Vyc2UgZGVwZW5kcyBvbiB0aGUgY29udGV4dC4KCjtfX2NvbnN0YW50 X186IEFyZ3VtZW50IHRoYXQgcmVmZXJzIHRvIGEgcmVmZXJlbnQuCgo7X192YXJpYWJsZV9fOiBB cmd1bWVudCBhcyBhIHBsYWNlIGhvbGRlci4gSXQgZG9lcyBub3QgcmVmZXIgdG8gYW55dGhpbmcu IEl0IGlzIHRvIGJlIHN1YnN0aXR1dGVkIGZvci4gVmFyaWFibGUgb3RoZXIgdGhhbiBib3VuZCB2 YXJpYWJsZSB0aGF0IHdpbGwgYmUgZGVmaW5lZCBiZWxvdyBpcyBjYWxsZWQgX19mcmVlIHZhcmlh YmxlX18uIFRoZSB0cnV0aCB2YWx1ZSBvZiBhIHNlbnRlbmNlIHRoYXQgaW5jbHVkZXMgYSBmcmVl IHZhcmlhYmxlIGlzIGluZGVmaW5pdGUuIFN1Y2ggYSBzZW50ZW5jZSBpcyBjYWxsZWQgX19vcGVu IHNlbnRlbmNlX18uCgpeSW4gTG9qYmFuLCB7a2UnYX0gYW5kIHtjZSd1fSBhcmUgYWx3YXlzIGZy ZWUgdmFyaWFibGVzLiBBIHNlbnRlbmNlIGluIE5PSS1jbGF1c2Ugb3IgTlUtY2xhdXNlIHdpdGgg e2NlJ3V9IGlzIG9wZW4uIChBIHNlbnRlbmNlIGluIE5VLWNsYXVzZSB3aXRoIG5vIHtjZSd1fSBo YXMgYSB0cnV0aCB2YWx1ZSwgYnV0IGVhY2ggb2YgdGhlIGluc2lkZSBhbmQgdGhlIG91dHNpZGUg b2YgTlUtY2xhdXNlIGhhcyBhbiBpbmRlcGVuZGVudCB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIGFu ZCB0aHVzIGVhY2ggb2YgdGhlbSBoYXMgYW4gaW5kZXBlbmRlbnQgdHJ1dGggdmFsdWUgKGZvciBl eGFtcGxlLCBzZWUgW2h0dHA6Ly9kYWcuZ2l0aHViLmlvL2NsbC85LzcvfENMTDkuN10pLiBJbiBk ZWZpbml0aW9ucyBvZiB3b3JkcyBpbiBMb2piYW4sIGtvJ1YvZm8nViBzZXJpZXMge2tvJ2EsIGtv J2UsIC4uLn0gb2Ygc2VsbWEnbyBLT2hBNCBhcmUgdXNlZCBhcyBmcmVlIHZhcmlhYmxlcywgYnV0 IGl0IGlzIG9ubHkgYSBjdXN0b20gZm9yIGNvbnZlbmllbmNlLiBBbGwgY21hdm8gb2YgS09oQTIs Myw0LDUsNiBhbmQge3pvJ2V9IG9mIEtPaEE3IGFyZSBlc3NlbnRpYWxseSBjb25zdGFudHMuIENv bnNpZGVyaW5nIHRoZSBjYXNlIHRoYXQgYm90aCBjb25zdGFudHMgYW5kIGJvdW5kIHZhcmlhYmxl cyAodG8gYmUgZGVmaW5lZCBiZWxvdykgYXBwZWFyIGluIGEgc3RhdGVtZW50LCAiY29uc3RhbnRz IiBhcmUgZ2VuZXJhbGx5IGNvbnNpZGVyZWQgdG8gYmUgU2tvbGVtIGZ1bmN0aW9ucy4gU2VlICgo fCNCb3VuZF92YXJpYWJsZXNfYW5kX2NvbnN0YW50c19pbl9hX3N0YXRlbWVudHxTZWN0aW9uIDMu Mi4yKSkgZm9yIGRldGFpbC5eCgo7X19xdWFudGlmeV9fOiBJbiBzdWJzdGl0dXRpbmcgcG9zc2li bGUgYXJndW1lbnRzIG9uZSBieSBvbmUgZm9yIGEgdmFyaWFibGUgaW4gYSBzZW50ZW5jZSwgY291 bnQgdGhlIG51bWJlciBvZiByZWZlcmVudHMgdGhhdCBtYWtlIHRoZSBzZW50ZW5jZSB0cnVlLCBh bmQgcHJlZml4IHRoZSBudW1iZXIgdG8gdGhlIHZhcmlhYmxlLgoKO19fcXVhbnRpZmllcl9fOiBO dW1iZXIgdXNlZCBmb3IgcXVhbnRpZmljYXRpb24uIEJlc2lkZXMge3BhfSwge3JlfSwge3ZlaSBu eSBzdSdpIHBhICh2ZSdvKX0gYW5kIHNvIG9uLCB7cm99ICJhbGwiIGFuZCB7c3Unb30gInRoZXJl IGlzIG9uZSBvciBtb3JlIiBhcmUgYWxzbyBxdWFudGlmaWVycy4KCjtfX2JvdW5kIHZhcmlhYmxl X186IFZhcmlhYmxlIHByZWZpeGVkIGJ5IGEgcXVhbnRpZmllci4gQXMgYSByZXN1bHQgb2YgcXVh bnRpZmljYXRpb24sIHRoZXJlIGlzIG5vIHJvb20gZm9yIHN1YnN0aXR1dGluZyBhbiBhcmJpdHJh cnkgYXJndW1lbnQgZm9yIHRoZSB2YXJpYWJsZS4KCl5JbiBMb2piYW4sIHtkYX0sIHtkZX0gYW5k IHtkaX0gYXJlIGJvdW5kIHZhcmlhYmxlcy4gRm9yIGV4YW1wbGUsIHtybyBkYSB6byd1IGRhIGJy b2RhfSBtZWFucyAiRm9yIGFsbCB7ZGF9IGluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIHtk YSBicm9kYX0gaXMgdHJ1ZS4iIEluIHRoZSBjYXNlIHRoYXQge2RhfSwge2RlfSBvciB7ZGl9IGFy ZSBub3QgcHJlZml4ZWQgYnkgYSBxdWFudGlmaWVyLCB0aGV5IGFyZSByZWdhcmRlZCBhcyBpbXBs aWNpdGx5IHByZWZpeGVkIGJ5IHtzdSdvfS5eCgo7X19kb21haW5fXzogUmFuZ2Ugb2YgcmVmZXJl bnRzIHRvIGJlIHN1YnN0aXR1dGVkIGZvciBhIHZhcmlhYmxlLCBvciByYW5nZSB0byBiZSBjb25z aWRlcmVkIGluIGNvdW50aW5nIHJlZmVyZW50cyBpbiBxdWFudGlmaWNhdGlvbi4KCl5JbiBMb2pi YW4sIGEgZG9tYWluIG9mIGEgYm91bmQgdmFyaWFibGUgY2FuIGJlIGxpbWl0ZWQgd2l0aCBhbiBl eHByZXNzaW9uIHtkYSBwb2kuLi59LiBGb3IgZXhhbXBsZSwge3JvIGRhIHBvaSBrZSdhIGJyb2Rh IHpvJ3UgZGEgYnJvZGV9IG1lYW5zICJGb3IgYWxsIHtkYX0gdGhhdCBhcmUgeDEgb2Yge2Jyb2Rh fSBpbiB0aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLCB7ZGEgYnJvZGV9IGlzIHRydWUuIiBJZiB7 cG9pLi4ufSBkb2VzIG5vdCBmb2xsb3cge2RhfSwgdGhlIGRvbWFpbiBpcyB0aGUgd2hvbGUgdW5p dmVyc2Ugb2YgZGlzY291cnNlLl4KCjtfX3RhdXRvbG9neV9fOiBTZW50ZW5jZSB0aGF0IGlzIGFs d2F5cyB0cnVlIGluZGVwZW5kZW50bHkgb2YgY29udGV4dC4ge2tvJ2EgZHUga28nYX0gZXRjLgoK O19fbG9naWNhbCBheGlvbXNfXzogU2VudGVuY2VzIHNlbGVjdGVkIGZyb20gdGF1dG9sb2dpZXMg c28gdGhhdCBhbGwgdGF1dG9sb2dpZXMgYXJlIHByb3ZlZCBmcm9tIHRoZW0gd2l0aCBydWxlcyBv ZiBpbmZlcmVuY2UgdGhhdCBhcmUgZGVmaW5lZC4KCgoKISEjIFBsdXJhbCBxdWFudGlmaWNhdGlv bgoKSW4gb3JkZXIgdG8gdW5kZXJzdGFuZCBhcmd1bWVudHMgb2YgTG9qYmFuIGZyb20gYSBsb2dp Y2FsIHBvaW50IG9mIHZpZXcsIGl0IGlzIGVzc2VudGlhbCB0byBoYXZlIGEga25vd2xlZGdlIG9m IF9fcGx1cmFsIHF1YW50aWZpY2F0aW9uX18gKHNlZSwgZm9yIGV4YW1wbGUsIFtodHRwOi8vdGhl Y29sbGVnZS5zeXIuZWR1L3Byb2ZpbGVzL3BhZ2VzL21ja2F5LXRob21hcy5odG1sfFRob21hcyBN Y0theV06ICcnUGx1cmFsIFByZWRpY2F0aW9uJycsIE94Zm9yZCBVbml2ZXJzaXR5IFByZXNzLCAy MDA2KS4KCgoKUGx1cmFsIHF1YW50aWZpY2F0aW9uIHdhcyBpbnZlbnRlZCBpbiBvcmRlciB0byBm YWNpbGl0YXRlIGV4cHJlc3Npb24gb2YgcHJvcG9zaXRpb24gdGhhdCBpcyBtZWFuaW5nZnVsIG9u bHkgd2hlbiB0aGUgcmVmZXJlbnQgb2YgYW4gYXJndW1lbnQgaXMgcGx1cmFsLiAKCl4KCjtFeGFt cGxlOiBQZW9wbGUgZ2F0aGVyZWQsIGNvb2tlZCBhbmQgYXRlLl4KCkxvZ2ljYWxseSwgdGhpcyBz ZW50ZW5jZSBpcyBhIHByb3Bvc2l0aW9uIHRoYXQgY29uc2lzdHMgb2YgYSBjb25zdGFudCAicGVv cGxlIiBhbmQgdGhyZWUgcHJlZGljYXRlcyAiZ2F0aGVyZWQiICJjb29rZWQiIGFuZCAiYXRlIi4g VGhlIHByZWRpY2F0ZXMgYXJlIGRpZmZlcmVudCBmcm9tIGVhY2ggb3RoZXIgaW4gcHJvcGVydHkg b2YgdHJlYXRpbmcgdGhlIGFyZ3VtZW50LiBXZSB3aWxsIGRpc2N1c3MgcHJlY2lzZWx5IGhvdyB0 aGUgYXJndW1lbnQgaW4gdGhlIHNlbnRlbmNlIGlzIHRyZWF0ZWQuCgoKCiEhISMgQ29sbGVjdGl2 aXR5IGFuZCBkaXN0cmlidXRpdml0eQoKCgpDb25zaWRlciB0aGUgZXhwcmVzc2lvbiAicGVvcGxl IGdhdGhlcmVkIjogYmFzZWQgb24gdGhlIG1lYW5pbmcgb2YgdGhlIHByZWRpY2F0ZSAiZ2F0aGVy ZWQiLCB0aGUgY29uc3RhbnQgInBlb3BsZSIgc2hvdWxkIHJlZmVyIHRvIHBsdXJhbCBwZW9wbGUu CgpXaGVuIHJlZmVyZW50cyBvZiBhbiBhcmd1bWVudCBzYXRpc2Z5IGEgcHJlZGljYXRlIGFzIGNv bGxlY3RpdmUgcGx1cmFsIHRoaW5ncyBsaWtlIHRoaXMsIHdlIGV4cHJlc3MgaXQgYXMgImFuIGFy Z3VtZW50IHNhdGlzZmllcyBhbiBwcmVkaWNhdGUgX19jb2xsZWN0aXZlbHlfXyIsIG9yICJ0aGUg YXJndW1lbnQgaGFzIF9fY29sbGVjdGl2aXR5X18iLgoKCgpBcyBmb3IgZWFjaCBvZiB0aGUgcGx1 cmFsIHBlb3BsZSByZWZlcnJlZCB0byBieSB0aGUgY29uc3RhbnQsICBlYWNoIHNlbnRlbmNlIHN1 Y2ggdGhhdCAiQWxpY2UgZ2F0aGVyZWQiLCAiQm9iIGdhdGhlcmVkIiBhbmQgc28gb24gaXMgbm9u c2Vuc2UuCgpXaGVuIGVhY2ggcmVmZXJlbnQgcmVmZXJyZWQgdG8gYnkgYSBjb25zdGFudCBjYW5u b3Qgc2F0aXNmeSBhIHByZWRpY2F0ZSBhbG9uZSwgd2UgZXhwcmVzcyBpdCBhcyAiYW4gYXJndW1l bnQgc2F0aXNmaWVzIGFuIHByZWRpY2F0ZSBfX25vbi1kaXN0cmlidXRpdmVseV9fIi4KCgoKT24g dGhlIG90aGVyIGhhbmQsIGluIHRoZSBleHByZXNzaW9uICJwZW9wbGUgYXRlIiwgYWx0aG91Z2gg dGhlIGNvbnN0YW50ICJwZW9wbGUiIHJlZmVycyB0byBwbHVyYWwgcGVvcGxlLCB0aGUgcHJlZGlj YXRlICJhdGUiIGlzIHNhdGlzZmllZCBieSBlYWNoIHBlcnNvbi4gVGhhdCBpcyB0byBzYXksIGVh Y2ggc2VudGVuY2Ugc3VjaCB0aGF0ICJBbGljZSBhdGUiLCAiQm9iIGF0ZSIgYW5kIHNvIG9uIGlz IG1lYW5pbmdmdWwuCgpXaGVuIGVhY2ggcmVmZXJlbnQgcmVmZXJyZWQgdG8gYnkgYSBjb25zdGFu dCBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUgYWxvbmUsIHdlIGV4cHJlc3MgaXQgYXMgImFuIGFyZ3Vt ZW50IHNhdGlzZmllcyBhbiBwcmVkaWNhdGUgX19kaXN0cmlidXRpdmVseV9fIiwgb3IgInRoZSBh cmd1bWVudCBoYXMgX19kaXN0cmlidXRpdml0eV9fIi4KCgoKTW9yZW92ZXIsIGlmIHRoZSBwcmVk aWNhdGUgImVhdCIgbWVhbnMgYW4gYWN0ICJwdXQgZm9vZCBpbiBhIG1vdXRoLCBiaXRlIGl0LCBs ZXQgaXQgcGFzcyB0aHJvdWdoIGFuIGVzb3BoYWd1cyBhbmQgc2VuZCBpdCB0byBhIHN0b21hY2gi LCBpdCBpcyBoYXJkbHkgY29uc2lkZXJlZCB0aGF0ICJwZW9wbGUiIHNhdGlzZmllcyAiZWF0IiBj b2xsZWN0aXZlbHkuIEV2ZW4gaWYgYSBwZXJzb24gaGVscHMgYW5vdGhlciB0byBlYXQsIHRoZSBo ZWxwZXIgaXMgbm90IGVhdGVyLCBhbmQgdGhlIGVhdGVyIGlzIG5vdCBjb2xsZWN0aXZlIHBlb3Bs ZSBidXQgYW4gaW5kaXZpZHVhbC4gCgpXaGVuIGVhY2ggcmVmZXJlbnQgcmVmZXJyZWQgdG8gYnkg YSBjb25zdGFudCBjYW5ub3Qgc2F0aXNmeSBhIHByZWRpY2F0ZSBhcyBjb2xsZWN0aXZlIHBsdXJh bCB0aGluZ3MsIHdlIGV4cHJlc3MgaXQgYXMgImFuIGFyZ3VtZW50IHNhdGlzZmllcyBhbiBwcmVk aWNhdGUgX19ub24tY29sbGVjdGl2ZWx5X18iLgoKKEhvd2V2ZXIsIGl0IGlzIHBvc3NpYmxlIHRv IGludGVycHJldCB0aGUgcHJlZGljYXRlICJlYXQiIGFzIGludm9sdmluZyBjb2xsZWN0aXZpdHku IEZvciBleGFtcGxlLCBpZiBpdCBpcyBpbnRlcnByZXRlZCBhcyAicHV0IGZvb2QgYXdheSBmcm9t IG91dHNpZGUgdG8gaW5zaWRlIG9mIGJvZHkiLCB3ZSBtYXkgc2F5ICJjb2xsZWN0aXZlbHkgZWF0 IiB0byBleHByZXNzIGFuIGV2ZW50IHRoYXQgcGVvcGxlIGVhdCBhbmQgY29uc3VtZSBhIG1hc3Mg b2YgZm9vZCB0b2dldGhlci4pCgoKClRoZXJlIGFyZSBhbHNvIHByZWRpY2F0ZXMgdGhhdCBhbGxv dyBib3RoIHByb3BlcnRpZXMgImNvbGxlY3Rpdml0eSIgYW5kICJkaXN0cmlidXRpdml0eSIuCgoi UGVvcGxlIGNvb2tlZCIgbWF5IG1lYW4gdGhhdCBwbHVyYWwgcGVvcGxlIGtuZWFkIHBhc3RlIG9m IHBpenphIHRvZ2V0aGVyLCBhbmQgdGhhdCBlYWNoIG9mIHRoZW0gaXMgaW4gY2hhcmdlIG9mIGNh a2VzIG9yIHBvdC1hdS1mZXUuIEluIHRoaXMgY2FzZSwgdGhlIGNvbnN0YW50ICJwZW9wbGUiIHJl ZmVycyB0byBwbHVyYWwgcGVvcGxlLCBhbmQgdGhleSBjb29rZWQgcGl6emEgY29sbGVjdGl2ZWx5 LCBjYWtlcyBhbmQgcG90LWF1LWZldSBkaXN0cmlidXRpdmVseS4gVGhlIGNvbnN0YW50ICJwZW9w bGUiIHRodXMgc2F0aXNmaWVzIHRoZSBwcmVkaWNhdGUgImNvb2tlZCIgY29sbGVjdGl2ZWx5IGFu ZCBkaXN0cmlidXRpdmVseS4KCgoKTm90ZSB0aGF0IHRoZSBjb25zdGFudCAicGVvcGxlIiByZWZl cnMgdG8gd2hhdCBpcyBjb21tb24gdG8gdGhyZWUgcHJlZGljYXRlcyAiZ2F0aGVyZWQiLCAiY29v a2VkIiBhbmQgImF0ZSIuIE5vIG1hdHRlciBpZiBhIGNvbnN0YW50IHNhdGlzZmllcyBwcmVkaWNh dGVzIGNvbGxlY3RpdmVseSBvciBkaXN0cmlidXRpdmVseSwgdGhlIHJlZmVyZW50IGlzIHRoZSBz YW1lLgoKCgpJZiB3ZSB1c2UgYW4gYXJndW1lbnQgImEgc2V0IG9mIHBlb3BsZSIgaW4gdGhlIGNh c2Ugb2Ygc2F0aXNmeWluZyBhIHByZWRpY2F0ZSBjb2xsZWN0aXZlbHksIGl0IG1pZ2h0IGJlIHBv c3NpYmxlIHRvIGludGVycHJldCB0aGUgcHJlZGljYXRlICJnYXRoZXJlZCIgc28gdGhhdCB0aGUg YXJndW1lbnQgc2F0aXNmaWVzIGl0LCBidXQgdGhlIHNhbWUgYXJndW1lbnQgY2Fubm90IHNhdGlz ZnkgdGhlIHByZWRpY2F0ZSAiYXRlIiwgYmVjYXVzZSB3ZSBjYW4gaGFyZGx5IHNheSB0aGF0IGEg c2V0IG9mIHBlb3BsZSwgd2hpY2ggaXMgYW4gYWJzdHJhY3QgZW50aXR5LCBwZXJmb3JtcyAiYXRl Ii4KCgoKVXNpbmcgcGx1cmFsIGNvbnN0YW50cyBhbmQgcGx1cmFsIHZhcmlhYmxlcyB0aGF0IHdp bGwgYmUgZGlzY3Vzc2VkIGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMsIHdlIGNhbiBleHByZXNz IHBsdXJhbCB0aGluZ3MgaW4gdGhlIGZvcm0gb2YgcHJlZGljYXRlIGxvZ2ljIHdpdGhvdXQgdXNp bmcgc2V0cy4KCgoKISEhIyBQbHVyYWwgY29uc3RhbnQgYW5kIHBsdXJhbCB2YXJpYWJsZQoKQW4g YXJndW1lbnQgdGhhdCByZWZlcnMgdG8gcmVmZXJlbnQgd2l0aG91dCBpbnRyb2R1Y2luZyBhIG5v dGlvbiBvZiBzZXRzLCB3aXRob3V0IGRpc3Rpbmd1aXNoaW5nIGNvbGxlY3Rpdml0eSBhbmQgZGlz dHJpYnV0aXZpdHksIHdpdGhvdXQgZGlzdGluZ3Vpc2hpbmcgcGx1cmFsaXR5IGFuZCBzaW5ndWxh cml0eSwgaXMgY2FsbGVkIF9fcGx1cmFsIGNvbnN0YW50X18uCgpBIHZhcmlhYmxlIGZvciB3aGlj aCBhIHBsdXJhbCBjb25zdGFudCBjYW4gYmUgc3Vic3RpdHV0ZWQgaXMgY2FsbGVkIF9fcGx1cmFs IHZhcmlhYmxlX18uCgpRdWFudGlmeWluZyBhIHBsdXJhbCB2YXJpYWJsZSBpcyBjYWxsZWQgX19w bHVyYWwgcXVhbnRpZmljYXRpb25fXy4gQSBxdWFudGlmaWVyIHVzZWQgZm9yIHBsdXJhbCBxdWFu dGlmaWNhdGlvbiBpcyBjYWxsZWQgX19wbHVyYWwgcXVhbnRpZmllcl9fLiBBIHBsdXJhbCB2YXJp YWJsZSBwcmVmaXhlZCB3aXRoIGEgcGx1cmFsIHF1YW50aWZpZXIgaXMgY2FsbGVkIGEgX19ib3Vu ZCBwbHVyYWwgdmFyaWFibGVfXy4KCgoKISEhISMgbWUgYW5kIGpvJ3UKCldlIGludHJvZHVjZSBy ZWxhdGlvbnMgYmV0d2VlbiBwbHVyYWwgY29uc3RhbnRzIGFuZCBwbHVyYWwgdmFyaWFibGVzOiB7 bWV9IGFuZCB7am8ndX0uCgoKCnx8CgpYIG1lIFkgKG1lJ3UpIH5oc358fmhzfiBYIGlzIGFtb25n IFkKCnx8CgpYIGFuZCBZIHJlcHJlc2VudCBoZXJlIHBsdXJhbCBjb25zdGFudHMgb3IgcGx1cmFs IHZhcmlhYmxlcy4gQSBjbHVzdGVyIHttZSBZIChtZSd1KX0gaXMgYSBzZWxicmkgaW4gTG9qYmFu IGdyYW1tYXIuIHttZSd1fSBpcyBhbiBlbGlkYWJsZSB0ZXJtaW5hdG9yIG9mIHN0cnVjdHVyZSBi ZWdpbm5pbmcgd2l0aCB7bWV9LgoKCgp7bWV9IGhhcyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMg d2l0aCBhcmJpdHJhcnkgYXJndW1lbnRzIFgsIFkgYW5kIFo6CgojIFggbWUgWCAocmVmbGV4aXZp dHkpCgojIFggbWUgWSBpamVibyBZIG1lIFogaW5hamEgWCBtZSBaICh0cmFuc2l0aXZpdHkpCgoj IFggbWUgWSBpamVibyBZIG1lIFggaWpvIFggZHUgWSAoaWRlbnRpdHkpCgpUaGUgcHJvcGVydHkg MyBtZWFucyB0aGF0IHRoZSBpZGVudGl0eSBiZXR3ZWVuIHJlZmVyZW50cyBvZiBYIGFuZCBZIGlz IHJlcHJlc2VudGVkIHdpdGgge21lfSwgYXMgYSByZWxhdGlvbiB0aGF0IHtYIG1lIFkgaWplYm8g WSBtZSBYfS4KCgoKfHwKClggam8ndSBZIH5oc358fmhzfiBYIGFuZCBZCgp8fAoKe2pvJ3V9IGNv bWJpbmVzIHR3byBhcmd1bWVudHMgWCBhbmQgWSBpbnRvIG9uZSBwbHVyYWwgY29uc3RhbnQgb3Ig b25lIHBsdXJhbCB2YXJpYWJsZS4KCgoKe2pvJ3V9IGhhcyB0aGUgZm9sbG93aW5nIHByb3BlcnRp ZXMgd2l0aCBhcmJpdHJhcnkgYXJndW1lbnRzIFggYW5kIFk6CgojIFggbWUgWCBqbyd1IFkKCiMg WCBqbyd1IFkgZHUgWSBqbyd1IFgKCiMgWCBqbyd1IFggZHUgWAoKVGhlIHByb3BlcnR5IDIgbWVh bnMgdGhhdCB0aGUgcmVmZXJlbnQgb2YgdGhlIHdob2xlIGFyZ3VtZW50IGRvZXMgbm90IHZhcnkg d2hlbiB0d28gYXJndW1lbnRzIGNvbWJpbmVkIGJ5IHtqbyd1fSBhcmUgaW50ZXJjaGFuZ2VkIHdp dGggZWFjaCBvdGhlci4gVGhlIHByb3BlcnR5IDMgbWVhbnMgdGhhdCB7am8ndX0gZG9lcyBub3Qg YWRkIGFueSByZWZlcmVudCB3aGVuIGl0IGNvbWJpbmVzIGFuIGFyZ3VtZW50IHdpdGggaXRzZWxm LgoKCgpVc2luZyB7am8ndX0sIHRoZSBmb2xsb3dpbmcgZXhwcmVzc2lvbiBpcyBwb3NzaWJsZToK Cl4KCjtFeGFtcGxlOiBCIGFuZCBDIGdhdGhlcmVkLCBjb29rZWQgYW5kIGF0ZS4KCjs6IGJ5IGpv J3UgY3kgam1hamkgZ2knZSBqdWtwYSBnaSdlIGNpdGthXgoKRWFjaCBvZiB7Ynl9IGFuZCB7Y3l9 IGlzIGEgcGx1cmFsIGNvbnN0YW50LgoKCgpUaGUgcHJlZGljYXRlIHtqdWtwYX0gKGNvb2spIGNh biBiZSBpbnRlcnByZXRlZCBjb2xsZWN0aXZlbHkgYW5kL29yIGRpc3RyaWJ1dGl2ZWx5LCBidXQg dGhlIHBsdXJhbCBjb25zdGFudCB7Ynkgam8ndSBjeX0gc2F5cyBub3RoaW5nIGFib3V0IHdoZXRo ZXIgaXQgc2F0aXNmaWVzIHtqdWtwYX0gY29sbGVjdGl2ZWx5IGFuZC9vciBkaXN0cmlidXRpdmVs eS4gSWYgd2Ugd2FudCB0byBtYWtlIGV4cGxpY2l0IHRoYXQgdGhleSBjb29rZWQgImNvbGxlY3Rp dmVseSIsIHdlIHNheSB7Ynkgam9pIGN5fSB1c2luZyB7am9pfSB0aGF0IHdpbGwgYmUgZGlzY3Vz c2VkIGluICgofCNSZWxhdGlvbl9iZXR3ZWVuX2pvX3Vfam9pX2NlX2FuZF9nYWRyaXxTZWN0aW9u IDMuNCkpLCBvciB7bHUnbyBieSBqbyd1IGN5fSB1c2luZyB7bHUnb30gdGhhdCB3aWxsIGJlIGRp c2N1c3NlZCBpbiAoKHwjUmVsYXRpb25fYmV0d2Vlbl9sdV9hX2x1X29fbHVfaV9hbmRfZ2Fkcml8 U2VjdGlvbiAzLjMpKS4gQ29udHJhc3RpdmVseSwgaWYgd2Ugd2FudCB0byBtYWtlIGV4cGxpY2l0 IHRoYXQgdGhleSBjb29rZWQgImRpc3RyaWJ1dGl2ZWx5Iiwgd2Ugc2F5ICB7bHUnYSBieSBqbyd1 IGN5fSB1c2luZyB7bHUnYX0gdGhhdCB3aWxsIGJlIGRpc2N1c3NlZCBpbiAoKHwjUmVsYXRpb25f YmV0d2Vlbl9sdV9hX2x1X29fbHVfaV9hbmRfZ2Fkcml8U2VjdGlvbiAzLjMpKS4gSG93ZXZlciwg dGhlc2UgYXJndW1lbnRzIHRoYXQgc2F5cyBleHBsaWNpdGx5IGNvbGxlY3Rpdml0eSBhbmQvb3Ig ZGlzdHJpYnV0aXZpdHkgYXJlIG5vdCBhbHdheXMgY29tbW9ubHkgdXNlZCBmb3Igb3RoZXIgcHJl ZGljYXRlcyBsaWtlIHtqbWFqaX0gb3Ige2NpdGthfS4KCgoKVGhlIGRpYWdyYW0gYmVsb3cgc2hv d3MgcmVsYXRpb25zIGNvbnN0cnVjdGVkIHdpdGgge21lfSBhbmQge2pvJ3V9IHJlcHJlc2VudGVk IHdpdGggYSBkaXJlY3RlZCBncmFwaCwgaW4gd2hpY2ggdGhlIHZlcnRpY2VzIHJlcHJlc2VudCBw bHVyYWwgY29uc3RhbnRzLgoKCgp7aW1nIGZpbGVJZD0iNyIgdGh1bWI9InkiIHJlbD0iYm94W2dd In0KCgoKISEhISMgSW5kaXZpZHVhbAoKUmVmZXJlbnQgb2YgYSBwbHVyYWwgY29uc3RhbnQgaXMg bm90IG5lY2Vzc2FyaWx5IHBsdXJhbDogYSBwbHVyYWwgY29uc3RhbnQgY2FuIHJlZmVyIHRvIG9u ZSBpbmRpdmlkdWFsLgoKX19BbiBpbmRpdmlkdWFsX18gaXMgZGVmaW5lZCBhcyBmb2xsb3dzOgoK fHwKCl9fWCBpcyBhbiBpbmRpdmlkdWFsX18gfmhzfnx+aHN+ID1jYSdlIH5oc358fmhzfiBybydv aSBkYSBwb2kga2UnYSBtZSBYIHpvJ3UgWCBtZSBkYQoKfHwKCgoKd2hlcmUgX19ybydvaV9fIGlz IGFuIGV4cGVyaW1lbnRhbCBjbWF2byBwcm9wb3NlZCBieSAoKHhvcnhlc3xsYSB4b3J4ZXMpKSwg d2hpY2ggaXMgYSBwbHVyYWwgcXVhbnRpZmllciBtZWFuaW5nICJhbGwiLiAge3JvJ29pIGRhfSBp cyBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZSBtZWFuaW5nICJmb3IgYWxsIHRoYXQgY2FuIGJlIHN1 YnN0aXR1dGVkIGZvciB7ZGF9Ii4gVGhpcyBkZWZpbml0aW9uIG1lYW5zIHRoYXQgWCBpcyBjYWxs ZWQgYW4gaW5kaXZpZHVhbCB3aGVuIHRoZSBjb25kaXRpb24gImZvciBhbGwge2RhfSB0aGF0IGFy ZSBhbW9uZyBYLCBYIGlzIGFtb25nIHtkYX0iIGlzIHNhdGlzZmllZC4gSW4gb3RoZXIgd29yZHMs ICJpbiB0aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLCBub3RoaW5nIG90aGVyIHRoYW4ge1h9IGNh biBiZSBzdWJzdGl0dXRlZCBmb3Ige2RhfSBzdWNoIHRoYXQge1ggbWUgZGF9IiBpcyBleHByZXNz ZWQgYnkgIlggaXMgYW4gaW5kaXZpZHVhbCIuCgoKCldoZW4gZWFjaCBvZiBYIGFuZCBZIGlzIGFu IGluZGl2aWR1YWwgYW5kIFggaXMgbm90IGVxdWFsIHRvIFksIHtYIGpvJ3UgWX0gaXMgY2FsbGVk IF9faW5kaXZpZHVhbHNfXy4gV2hlbiBlYWNoIG9mIFggYW5kIFkgaXMgYW4gaW5kaXZpZHVhbCBv ciBpbmRpdmlkdWFscywge1ggam8ndSBZfSBpcyBjYWxsZWQgaW5kaXZpZHVhbHMgYXMgd2VsbC4K CgoKISEhISMgRGlmZmVyZW5jZSBiZXR3ZWVuIHBsdXJhbCBhbmQgc2luZ3VsYXIKCkEgcGx1cmFs IGNvbnN0YW50IHRoYXQgcmVmZXJzIHRvIGEgc2luZ2xlIGluZGl2aWR1YWwgaXMgY2FsbGVkIGEg X19zaW5ndWxhciBjb25zdGFudF9fLgoKCgpVbmxlc3MgWD1ZIGFuZCBYIGlzIGFuIGluZGl2aWR1 YWwsIG5vIG1hdHRlciB3aGV0aGVyIGVhY2ggb2YgWCBhbmQgWSBpcyBwbHVyYWwgb3Igc2luZ3Vs YXIsIHtYIGpvJ3UgWX0gaXMgbm90IGEgc2luZ3VsYXIgY29uc3RhbnQuIEl0IGlzIGJlY2F1c2Ug CgpeWCBtZSBYIGpvJ3UgWSBpamVuYWkgWCBqbyd1IFkgbWUgWF4KCmhvbGRzIHRydWUsIGFuZCB0 aGVuIHtYIGpvJ3UgWX0gZG9lcyBub3Qgc2F0aXNmeSB0aGUgY29uZGl0aW9uIG9mIGFuIGluZGl2 aWR1YWwge3JvJ29pIGRhIHBvaSBrZSdhIG1lIFggam8ndSBZIHpvJ3UgWCBqbyd1IFkgbWUgZGF9 LgoKCgohISEhIyBCb3VuZCBzaW5ndWxhciB2YXJpYWJsZQoKV2hlbiB0aGUgZG9tYWluIG9mIGEg Ym91bmQgcGx1cmFsIHZhcmlhYmxlIGlzIHJlc3RyaWN0ZWQgdG8gd2hhdCBpcyBhbiBpbmRpdmlk dWFsLCB0aGUgdmFyaWFibGUgaXMgY2FsbGVkIF9fYm91bmQgc2luZ3VsYXIgdmFyaWFibGVfXy4g QSBib3VuZCBzaW5ndWxhciB2YXJpYWJsZSBjYW5ub3QgdGFrZSBtb3JlIHRoYW4gb25lIGluZGl2 aWR1YWwgdmFsdWUgYXQgYSB0aW1lLgoKe3JvIGRhfSAoZm9yIGFsbCB7ZGF9KSBhbmQge3N1J28g ZGF9ICh0aGVyZSBpcyBhdCBsZWFzdCBvbmUge2RhfSksIHdoaWNoIGFyZSBvZmZpY2lhbGx5IGRl ZmluZWQgaW4gTG9qYmFuLCBhcmUgYm91bmQgc2luZ3VsYXIgdmFyaWFibGVzLiBUaGV5IGNhbiBi ZSBkZWZpbmVkIHdpdGggYm91bmQgcGx1cmFsIHZhcmlhYmxlcyBhcyBmb2xsb3dzOgoKfHwKCnJv IGRhIH5oc358fmhzfiBybydvaSBkYSBwb2kgcm8nb2kgZGUgcG9pIGRlIG1lIGRhIHpvJ3UgZGEg bWUgZGUKCnN1J28gZGEgfmhzfnx+aHN+IHN1J29pIGRhIHBvaSBybydvaSBkZSBwb2kgZGUgbWUg ZGEgem8ndSBkYSBtZSBkZQoKfHwKCl9fc3Unb2lfXyBpcyBhbiBleHBlcmltZW50YWwgY21hdm8g cHJvcG9zZWQgYnkgKCh4b3J4ZXN8bGEgeG9yeGVzKSksIGFuZCBpcyBhIHBsdXJhbCBxdWFudGlm aWVyIG1lYW5pbmcgInRoZXJlIGlzL2FyZSIuIE5vdGUgdGhhdCB7c3Unb2l9IGlzIF9fbm90X18g ImF0IGxlYXN0IG9uZSIuIHtzdSdvaSBkYX0gaXMgYSBib3VuZCBwbHVyYWwgdmFyaWFibGUgbWVh bmluZyAidGhlcmUgaXMvYXJlIHtkYX0iLgoKCgohISEhIyBXaGF0IGlzIG5laXRoZXIgYW4gaW5k aXZpZHVhbCBub3IgaW5kaXZpZHVhbHMKClJlZmVyZW50IG9mIGEgcGx1cmFsIGNvbnN0YW50IGlz IG5vdCBuZWNlc3NhcmlseSBhbiBpbmRpdmlkdWFsIG9yIGluZGl2aWR1YWxzLiAKCkl0IGlzIHBv c3NpYmxlIHRvIGRpc2N1c3MgYSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2Ugc3VjaCB0aGF0IHJlZmVy ZW50IG9mIGEgcGx1cmFsIGNvbnN0YW50IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5k aXZpZHVhbHMuCgoKCkZvciBleGFtcGxlLCBjb25zaWRlciBzdWNoIGEgdW5pdmVyc2Ugb2YgZGlz Y291cnNlIGluIHdoaWNoIHRoZSBmb2xsb3dpbmcgcHJvcG9zaXRpb24gaG9sZHMgdHJ1ZS4KCl5y bydvaSBkYSBwb2kga2UnYSBtZSBrbydhIGt1J28gc3Unb2kgZGUgem8ndSBkZSBtZSBkYSBpamVu YWkgZGEgbWUgZGUgfi0tfiBDb25kaXRpb25fMV4KCkluIG90aGVyIHdvcmRzLCBpbiB0aGlzIHVu aXZlcnNlIG9mIGRpc2NvdXJzZSwgZm9yIGFsbCBYIHN1Y2ggdGhhdCB7WCBtZSBrbydhfSwgdGhl cmUgaXMgYWx3YXlzIFkgc3VjaCB0aGF0IHtZIG1lIFh9IGFuZCBub3Qge1ggbWUgWX0uCgoKCjtU aGVvcmVtOiBJbiBhIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSB3aGVyZSBDb25kaXRpb25fMSBpcyB0 cnVlLCB7a28nYX0gaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscy4KCgoK O1Byb29mOiBTdXBwb3NlIHtrbydhfSBpcyBhbiBpbmRpdmlkdWFsLiBGcm9tIHRoZSBkZWZpbml0 aW9uIG9mICJhbiBpbmRpdmlkdWFsIjoKCl5ybydvaSBkYSBwb2kga2UnYSBtZSBrbydhIHpvJ3Ug a28nYSBtZSBkYSB+LS1+IFN1cHBvc2l0aW9uXzJeCgpSZXBsYWNlIHtybydvaSBkYX0gd2l0aCB7 bmFrdSBzdSdvaSBkYSBuYWt1fToKCl5uYWt1IHN1J29pIGRhIHBvaSBrZSdhIG1lIGtvJ2Ega3Un byBuYWt1IHpvJ3Uga28nYSBtZSBkYSB+LS1+IFN1cHBvc2l0aW9uXzItMV4KCk1vdmUgdGhlIGlu bmVyLW1vc3Qge25ha3V9IGludG8gdGhlIHByb3Bvc2l0aW9uOgoKXm5ha3Ugc3Unb2kgZGEgcG9p IGtlJ2EgbWUga28nYSB6byd1IG5ha3Uga28nYSBtZSBkYSB+LS1+IFN1cHBvc2l0aW9uXzItMl4K ClJlcGxhY2Uge3N1J29pIGRhIHBvaX0gd2l0aCB7aWplfSBhbmQgbW92ZSBpbnRvIHRoZSBwcm9w b3NpdGlvbjoKCl5uYWt1IHN1J29pIGRhIHpvJ3UgZGEgbWUga28nYSBpamUgbmFrdSBrbydhIG1l IGRhIH4tLX4gU3VwcG9zaXRpb25fMi0zXgoKUmVwbGFjZSB7aWplIG5ha3V9IHdpdGgge2lqZW5h aX06CgpebmFrdSBzdSdvaSBkYSB6byd1IGRhIG1lIGtvJ2EgaWplbmFpIGtvJ2EgbWUgZGEgfi0t fiBTdXBwb3NpdGlvbl8yLTReCgpCeSB0aGUgd2F5LCBmcm9tIGEgcHJvcGVydHkgb2Yge21lfSwK Cl5rbydhIG1lIGtvJ2EgXgoKaXMgYWx3YXlzIHRydWUuIHtrbydhfSBpcyB0aGVyZWZvcmUgaW4g dGhlIGRvbWFpbiBvZiB7ZGF9IG9mIENvbmRpdGlvbl8xLiBSZXBsYWNlIHtybydvaSBkYX0gb2Yg Q29uZGl0aW9uXzEgd2l0aCB7a28nYX0sIGFuZCBpdCB0aHVzIGhvbGRzIHRydWU6Cgpec3Unb2kg ZGUgem8ndSBkZSBtZSBrbydhIGlqZW5haSBrbydhIG1lIGRlIH4tLX4gQ29uZGl0aW9uXzEtMV4K CkNvbmRpdGlvbl8xLTEgYW5kIFN1cHBvc2l0aW9uXzItNCBjb250cmFkaWN0IGVhY2ggb3RoZXIu CgpTdXBwb3NpdGlvbl8yIGlzIHRodXMgcmVqZWN0ZWQgYnkgcmVkdWN0aW8gYWQgYWJzdXJkdW0u CgpJdCBtZWFucyB0aGF0IHtrbydhfSBpcyBub3QgYW4gaW5kaXZpZHVhbC4KCgoKTW9yZW92ZXIs IHdoZW4ge2tvJ2F9IGlzIGV4cGFuZGVkIHRvIHtBIGpvJ3UgQn0sIGZyb20gYSBwcm9wZXJ0eSBv ZiB7am8ndX0sIHRoZSBmb2xsb3dpbmcgcHJvcG9zaXRpb25zIGhvbGQgdHJ1ZToKCl5BIG1lIGtv J2F+cHB+Cgp+L3BwfkIgbWUga28nYV4KCkVhY2ggb2YgQSBhbmQgQiBpcyBpbiB0aGUgZG9tYWlu IG9mIHtkYX0gb2YgQ29uZGl0aW9uXzEuIENvbnNpZGVyaW5nIHNpbWlsYXJseSB0byBDb25kaXRp b25fMS0xLCBuZWl0aGVyIEEgbm9yIEIgaXMgYW4gaW5kaXZpZHVhbC4ge2tvJ2F9IGlzIHRodXMg bm90IGluZGl2aWR1YWxzLgoKUS5FLkQuCgoKCldoZW4ge2tvJ2F9IGlzIG5laXRoZXIgYW4gaW5k aXZpZHVhbCBub3IgaW5kaXZpZHVhbHMsIHdoYXQgYWN0dWFsbHkgZG9lcyBpdCByZWZlciB0bz8K CldlIG1heSBpbnRlcnByZXQgdGhhdCBpdCByZWZlcnMgdG8gd2hhdCBpcyByZWZlcnJlZCB0byBi eSBhIG1hdGVyaWFsIG5vdW4sIGZvciBleGFtcGxlLgoKQnkgYSBzcGVha2VyIHdobyB0aGlua3Mg dGhhdCBhIGN1dC1vZmYgcGllY2Ugb2YgYnJlYWQgaXMgYWxzbyBicmVhZCwgYnJlYWQgaXMgcmVn YXJkZWQgYXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscy4KCgoKW2h0dHBz Oi8vZ3JvdXBzLmdvb2dsZS5jb20vZC9tc2cvbG9qYmFuL1JBdEU3WWstZHF3L3BDR2VZQ0U5bDFR SnwoUmVsYXRlZCBkaXNjdXNzaW9uOiBmb3IgdGhlIGNhc2Ugb2Yge2tvJ2F9PXtsbyBzaWRib30s IEkgd3JvdGUgdGhlIHNhbWUgcHJvb2Ygb25seSBpbiBMb2piYW4uKV0KCgoKISEhISMgQSBsb2dp Y2FsIGF4aW9tIG9uIHBsdXJhbCBjb25zdGFudAoKVGhlIGZvbGxvd2luZyBsb2dpY2FsIGF4aW9t IGlzIGdpdmVuIHRvIGFuIGFyYml0cmFyeSBwbHVyYWwgY29uc3RhbnQgQzoKCl5nYW5haSBDIGJy b2RhIGdpIHN1J29pIGRhIHpvJ3UgZGEgYnJvZGFeCgoKCkl0IG1lYW5zICJpbiBhIHVuaXZlcnNl IG9mIGRpc2NvdXJzZSwgaWYgYSBwcm9wb3NpdGlvbiBpbiB3aGljaCBhIHBsdXJhbCBjb25zdGFu dCBpcyB4MSBvZiB7YnJvZGF9IGhvbGRzIHRydWUsIHRoZXJlIGlzIHJlZmVyZW50IHRoYXQgaXMg eDEgb2Yge2Jyb2RhfSIuCgoKClRoYXQgaXMgdG8gc2F5LCBhbiBhcmd1bWVudCB0aGF0IGhhcyBu byByZWZlcmVudCBpbiBhIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSBjYW5ub3QgYmUgcmVwcmVzZW50 ZWQgYnkgYSBwbHVyYWwgY29uc3RhbnQuIEFuIGFyZ3VtZW50IHRoYXQgaGFzIG5vIHJlZmVyZW50 IGlzIGV4cHJlc3NlZCBpbiB0aGUgZm9ybSB7bmFrdSBzdSdvaSBkYX0sIHdoaWNoIGlzIGEgbmVn YXRpb24gb2YgYSBib3VuZCBwbHVyYWwgdmFyaWFibGUge3N1J29pIGRhfSBtZWFuaW5nICJ0aGVy ZSBpcy9hcmUiLgoKCgohISMgRGVmaW5pdGlvbiBvZiBnYWRyaQoKO19fbG9fXyAoTEUpOiBJdCBp cyBwcmVmaXhlZCB0byBzZWxicmksIGFuZCBmb3JtcyBhIHBsdXJhbCBjb25zdGFudCB0aGF0IHJl ZmVycyB0byB3aGF0IHNhdGlzZmllcyB4MSwgdGhlIGZpcnN0IHBsYWNlIG9mIHRoZSBzZWxicmku IElmIGEgcXVhbnRpZmllciBmb2xsb3dzIHtsb30sIHRoZSBxdWFudGlmaWVyIHJlcHJlc2VudHMg dGhlIGNvdW50IG9mIGFsbCB0aGUgcmVmZXJlbnRzIG9mIHRoZSBwbHVyYWwgY29uc3RhbnQuIElu IHRoZSBjYXNlIHRoYXQgYSBxdWFudGlmaWVyIGZvbGxvd3Mge2xvfSwgYSBzdW10aSBtYXkgZm9s bG93IGl0LiBJbiB0aGlzIGNhc2UsIGl0IGZvcm1zIGEgcGx1cmFsIGNvbnN0YW50IHRoYXQgcmVm ZXJzIHRvIHdoYXQgaXMvYXJlIGFtb25nICcnc3VtdGknJy4KCnx8CgpsbyBbW1BBXSBicm9kYSAo a3UpIH5oc358fmhzfiB6bydlIG5vaSBrZSdhIGJyb2RhIFtbZ2knZSB6aWxrYW5jdSBsaSBQQSBs byBicm9kYV0gKGt1J28pIH5oc358fmhzfiB3aGF0IGlzL2FyZSBicm9kYSBbW3RoYXQgaXMvYXJl IFBBIGluIHRvdGFsXQoKbG8gUEEgJydzdW10aScnIChrdSkgfmhzfnx+aHN+IGxvIFBBIG1lICcn c3VtdGknJyAobWUndSkgKGt1KSB+aHN+fH5oc34gd2hhdCBpcy9hcmUgYW1vbmcgJydzdW10aScn LCBhbmQgUEEgaW4gdG90YWwKCnx8Cgp7a3V9LCB7a3Unb30sIHttZSd1fSBhcmUgZWxpZGFibGUg dGVybWluYXRvcnMuCgoKClB1dHRpbmcgYSBxdWFudGlmaWVyIGFmdGVyIGdhZHJpIGxpa2Uge2xv IFBBfSBpcyBjYWxsZWQgX19pbm5lciBxdWFudGlmaWNhdGlvbl9fLCBhbmQgdGhlIHF1YW50aWZp ZXIgaXMgY2FsbGVkIF9faW5uZXIgcXVhbnRpZmllcl9fLiBBbHRob3VnaCB0aGUgdGVybSAicXVh bnRpZnkiIGlzIGludm9sdmVkLCBpdCBpcyBkaWZmZXJlbnQgZnJvbSBxdWFudGlmaWNhdGlvbiBv ZiBsb2dpYy4gSW5uZXIgcXVhbnRpZmljYXRpb24gZG9lcyBub3QgaW52b2x2ZSBjb3VudGluZyBy ZWZlcmVudHMgb2YgY29uc3RhbnRzIHRoYXQgY2FuIGJlIHN1YnN0aXR1dGVkIGZvciBhIHZhcmlh YmxlLCBidXQgY291bnRpbmcgYWxsIHRoZSByZWZlcmVudHMgb2Ygb25lIHBsdXJhbCBjb25zdGFu dC4gSW5uZXIgcXVhbnRpZmljYXRpb24gd2lsbCBiZSBkaXNjdXNzZWQgbW9yZSBwcmVjaXNlbHkg aW4gKCh8I0lubmVyX3F1YW50aWZpY2F0aW9ufFNlY3Rpb24gMy4xKSkuCgoKCk9uIHRoZSBvdGhl ciBoYW5kLCBwdXR0aW5nIGEgcXVhbnRpZmllciBiZWZvcmUgZ2FkcmksIG9yIGJlZm9yZSBhIHN1 bXRpIG1vcmUgZ2VuZXJhbGx5LCBpcyBjYWxsZWQgX19vdXRlciBxdWFudGlmaWNhdGlvbl9fLCBh bmQgdGhlIHF1YW50aWZpZXIgaXMgY2FsbGVkIF9fb3V0ZXIgcXVhbnRpZmllcl9fLiBPdXRlciBx dWFudGlmaWNhdGlvbiB3aWxsIGJlIGRpc2N1c3NlZCBtb3JlIHByZWNpc2VseSBpbiAoKHwjT3V0 ZXJfcXVhbnRpZmljYXRpb258U2VjdGlvbiAzLjIpKS4KCgoKQWxsIHN1bXRpIGZvcm1lZCB3aXRo IGdhZHJpIGFyZSBkZWZpbmVkIHNvIHRoYXQgdGhleSBhcmUgZXhwYW5kZWQgaW50byBleHByZXNz aW9ucyB3aXRoIHt6bydlfS4gVGhhdCBpcyB0byBzYXksIHRoZSBtb3N0IGdlbmVyYWwgcGx1cmFs IGNvbnN0YW50IGlzIHJlcHJlc2VudGVkIGJ5IGEgc2luZ2xlIHt6bydlfS4gQSBzdW10aSBmb3Jt ZWQgd2l0aCBnYWRyaSBpcyB7em8nZX0gYWNjb21wYW5pZWQgYnkgYW4gZXhwbGFuYXRpb24uCgpe Cgo7RXhhbXBsZTogUGVvcGxlIGdhdGhlcmVkLCBjb29rZWQgYW5kIGF0ZS4KCjs6IGxvIHByZW51 IGN1IGptYWppIGdpJ2UganVrcGEgZ2knZSBjaXRrYV4KCgoKV2hpbGUgdGhlIHByZWRpY2F0ZSB7 anVrcGF9IChjb29rKSBjYW4gYmUgaW50ZXJwcmV0ZWQgY29sbGVjdGl2ZWx5IGFzIHdlbGwgYXMg ZGlzdHJpYnV0aXZlbHksIHRoZSBwbHVyYWwgY29uc3RhbnQge2xvIHByZW51fSAocGVvcGxlKSBk b2VzIG5vdCBzYXkgZXhwbGljaXRseSBpZiBpdCBzYXRpc2ZpZXMge2p1a3BhfSBjb2xsZWN0aXZl bHkgb3IgZGlzdHJpYnV0aXZlbHkuIElmIHdlIHdhbnQgdG8gc2F5IGV4cGxpY2l0bHkgdGhhdCB0 aGV5ICJjb2xsZWN0aXZlbHkiIGNvb2tlZCwgd2UgdXNlIHtsb2l9LCB3aGljaCB3aWxsIGJlIGRp c2N1c3NlZCBsYXRlciwgYW5kIHNheSB7bG9pIHByZW51fS4gQ29udHJhc3RpdmVseSwgaWYgd2Ug d2FudCB0byBzYXkgZXhwbGljaXRseSB0aGF0IHRoZXkgImRpc3RyaWJ1dGl2ZWx5IiBjb29rZWQs IHdlIHNheSB7cm8gbG8gcHJlbnV9IHdpdGggYW4gb3V0ZXIgcXVhbnRpZmljYXRpb24sIG9yIHts dSdhIGxvIHByZW51fS4gSG93ZXZlciwgYSBzdW10aSB0aGF0IHNheXMgZXhwbGljaXRseSBjb2xs ZWN0aXZpdHkgb3IgZGlzdHJpYnV0aXZpdHkgaXMgbm90IG5lY2Vzc2FyaWx5IGFibGUgdG8gYmUg c2hhcmVkIHdpdGggb3RoZXIgcHJlZGljYXRlIGxpa2Uge2ptYWppfSBvciB7Y2l0a2F9LgoKCgo7 X19sZV9fIChMRSk6IHtsZSBicm9kYX0gcmVmZXJzIF9fc3BlY2lmaWNhbGx5X18gdG8gYSByZWZl cmVudCBvZiB7bG8gYnJvZGF9LCBhbmQgX19leHBsaWNpdGx5IGV4cHJlc3MgdGhhdCB0aGUgc3Bl YWtlciBoYXMgdGhlIHJlZmVyZW50IGluIG1pbmRfXy4gSXRzIGxvZ2ljYWwgcHJvcGVydHkgaXMg dGhlIHNhbWUgYXMgdGhhdCBvZiB7bG99LgoKfHwKCmxlIFtbUEFdIGJyb2RhIChrdSkgfmhzfnx+ aHN+IHpvJ2Ugbm9pIG1pIGtlJ2EgZG8gc2tpY3UgbG8ga2EgY2UndSBicm9kYSBbW2dpJ2Ugemls a2FuY3UgbGkgUEEgbG8gYnJvZGFdIChrdSdvKSAKCmxlIFBBICcnc3VtdGknJyAoa3UpIH5oc358 fmhzfiBsZSBQQSBtZSAnJ3N1bXRpJycgKG1lJ3UpIChrdSkKCnx8CgoKCjtfX2xhX18gKExBKTog SXQgaXMgcHJlZml4ZWQgdG8gc2VsYnJpIG9yIGNtZXZsYSwgYW5kIGZvcm1zIGEgcGx1cmFsIGNv bnN0YW50IHRoYXQgcmVmZXJzIHRvIHdoYXQgaXMgbmFtZWQgdGhlIHNlbGJyaSBvciBjbWV2bGEg c3RyaW5nLiBJdHMgbG9naWNhbCBwcm9wZXJ0eSBpcyB0aGUgc2FtZSBhcyB0aGF0IG9mIHtsb30u Cgp8fAoKbGEgW1tQQV0gYnJvZGEgKGt1KSB+aHN+fH5oc34gem8nZSBub2kgbHUgW1tQQV0gYnJv ZGEgbGkndSBjbWVuZSBrZSdhIG1pIChrdSdvKSAKCmxhIFBBICcnc3VtdGknJyAoa3UpIH5oc358 fmhzfiB6bydlIG5vaSBsdSBQQSBzdW10aSBsaSd1IGNtZW5lIGtlJ2EgbWkgKGt1J28pIAoKfHwK CgoKO19fbG9pX18gKExFKSwgX19sZWlfXyAoTEUpLCBfX2xhaV9fIChMQSk6IHtsb2kvbGVpL2xh aSBicm9kYX0gcmVmZXJzIHRvIGEgcmVmZXJlbnQgb2Yge2xvL2xlL2xhIGJyb2RhfSwgYW5kIF9f ZXhwbGljaXRseSBleHByZXNzIHRoYXQgdGhlIHJlZmVyZW50IHNhdGlzZmllcyBhIHByZWRpY2F0 ZSBjb2xsZWN0aXZlbHlfXy4KCnx8Cgpsb2kgW1tQQV0gYnJvZGEgfmhzfnx+aHN+IGxvIGd1bm1h IGJlIGxvIFtbUEFdIGJyb2RhCgpsZWkgW1tQQV0gYnJvZGEgfmhzfnx+aHN+IGxvIGd1bm1hIGJl IGxlIFtbUEFdIGJyb2RhCgpsYWkgW1tQQV0gYnJvZGEgfmhzfnx+aHN+IGxvIGd1bm1hIGJlIGxh IFtbUEFdIGJyb2RhCgpsb2kgUEEgJydzdW10aScnIH5oc358fmhzfiBsbyBndW5tYSBiZSBsbyBQ QSAnJ3N1bXRpJycKCmxlaSBQQSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvIGd1bm1hIGJlIGxlIFBB ICcnc3VtdGknJwoKbGFpIFBBICcnc3VtdGknJyB+aHN+fH5oc34gbG8gZ3VubWEgYmUgbGEgUEEg JydzdW10aScnCgp8fAoKQmVjYXVzZSB7bG9pL2xlaS9sYWl9IGlzIHRodXMgZGVmaW5lZCBieSBh bm90aGVyIHBsdXJhbCBjb25zdGFudCB7bG8gZ3VubWEgYmUgbG8vbGUvbGF9LCBpdCBkb2VzIG5v dCByZWZlciBkaXJlY3RseSB0byByZWZlcmVudCBvZiB7bG8gYnJvZGF9IG9yIHtsbyBQQSAnJ3N1 bXRpJyd9LCBidXQgcmVmZXJlbnQgb2Yge2xvIGd1bm1hfS4gVGhlcmVmb3JlLCBldmVuIGlmIHts byBicm9kYX0gb3Ige2xvIFBBICcnc3VtdGknJ30gaXMgbm90IGFuIGluZGl2aWR1YWwsIHtsb2kg YnJvZGF9IG9yIHtsb2kgUEEgJydzdW10aScnfSBjYW4gYmUgYW4gaW5kaXZpZHVhbCB7bG8gZ3Vu bWF9IHVuZGVyIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uOgoKXnJvJ29pIGRhIHBvaSBrZSdhIG1l IGxvIGd1bm1hIGJlIGxvL2xlL2xhIFtbUEFdIGJyb2RhIHpvJ3UgbG8gZ3VubWEgYmUgbG8vbGUv bGEgW1tQQV0gYnJvZGEgY3UgbWUgZGF+cHB+Cgp+L3BwfnJvJ29pIGRhIHBvaSBrZSdhIG1lIGxv IGd1bm1hIGJlIGxvL2xlL2xhIFBBICcnc3VtdGknJyB6byd1IGxvIGd1bm1hIGJlIGxvL2xlL2xh IFBBICcnc3VtdGknJyBjdSBtZSBkYV4KCgoKO19fbG8naV9fIChMRSksIF9fbGUnaV9fIChMRSks IF9fbGEnaV9fIChMQSk6IHtsbydpL2xlJ2kvbGEnaSBicm9kYX0gcmVmZXJzIHRvIGEgc2V0IG9y IHNldHMgb2YgaW5kaXZpZHVhbChzKSB0aGF0IGNvbnN0aXR1dGUocykgYSBwbHVyYWwgY29uc3Rh bnQge2xvL2xlL2xhIGJyb2RhfS4gQmVjYXVzZSB7bG8naS9sZSdpL2xhJ2l9IGZvcm1zIGEgc2V0 IG9yIHNldHMsIGl0IGlzIGRlZmluZWQgb25seSB3aGVuIGl0cy90aGVpciBtZW1iZXIocykge2xv L2xlL2xhIGJyb2RhfSBpcy9hcmUgYW4gaW5kaXZpZHVhbCBvciBpbmRpdmlkdWFscy4gQSBzZXQg aXRzZWxmIGlzIGFsd2F5cyBhbiBpbmRpdmlkdWFsLCBhbmQgc2V0cyBhcmUgYWx3YXlzIGluZGl2 aWR1YWxzOiB0aGVyZSBpcyBubyBzZXQgdGhhdCBpcyBub3QgYW4gaW5kaXZpZHVhbC4KCnx8Cgps bydpIFtbUEFdIGJyb2RhIH5oc358fmhzfiBsbyBzZWxjbWkgYmUgbG8gW1tQQV0gYnJvZGEKCmxl J2kgW1tQQV0gYnJvZGEgfmhzfnx+aHN+IGxvIHNlbGNtaSBiZSBsZSBbW1BBXSBicm9kYQoKbGEn aSBbW1BBXSBicm9kYSB+aHN+fH5oc34gbG8gc2VsY21pIGJlIGxhIFtbUEFdIGJyb2RhCgpsbydp IFBBICcnc3VtdGknJyB+aHN+fH5oc34gbG8gc2VsY21pIGJlIGxvIFBBICcnc3VtdGknJwoKbGUn aSBQQSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvIHNlbGNtaSBiZSBsZSBQQSAnJ3N1bXRpJycKCmxh J2kgUEEgJydzdW10aScnIH5oc358fmhzfiBsbyBzZWxjbWkgYmUgbGEgUEEgJydzdW10aScnCgp8 fAoKQmVjYXVzZSB7bG8naS9sZSdpL2xhJ2l9IGlzIGRlZmluZWQgYnkgYW5vdGhlciBwbHVyYWwg Y29uc3RhbnQge2xvIHNlbGNtaSBiZSBsby9sZS9sYX0sIGl0IGRvZXMgbm90IHJlZmVyIGRpcmVj dGx5IHRvIHJlZmVyZW50IG9mIHtsbyBicm9kYX0gb3Ige2xvIFBBICcnc3VtdGknJ30sIGJ1dCBy ZWZlcmVudCBvZiB7bG8gc2VsY21pfS4KCgoKSW4gc2V0IHRoZW9yeSwgYW4gZW1wdHkgc2V0IGlz IGRlZmluZWQgYXMge2xvIHNlbGNtaSBiZSBubyBkYX0sIGFuZCBhbiBleHByZXNzaW9uIHtsbyBu byBicm9kYX0gaXMgb2ZmaWNpYWxseSBtZWFuaW5nbGVzcyAoc2VlICgofCNJbm5lcl9xdWFudGlm aWNhdGlvbnxTZWN0aW9uIDMuMSkpLiBUaGlzIGltcGxpZXMgdGhhdCBhbiBlbXB0eSBzZXQgY2Fu bm90IGJlIGV4cHJlc3NlZCB3aXRoIHtsbydpL2xlJ2kvbGEnaX0uIAoKCgpBY2NvcmRpbmcgdG8g W2h0dHA6Ly9qYm92bGFzdGUubG9qYmFuLm9yZy9kaWN0L3NlbGNtaXxqYm92bGFzdGVdLCB7c2Vs Y21pfSBpcyBkZWZpbmVkIGFzIGZvbGxvd3M6fHwKCngxIHNlbGNtaSB4MiB+aHN+fH5oc34gPWNh J2Ugfmhzfnx+aHN+IHgxIHNlIGNtaW1hIHJvIGxvIG1lIHgyIG1lJ3UgZSBubyBsbyBuYSBtZSB4 MiB8fAoKSWYgd2UgYWNjZXB0IHRoaXMgZGVmaW5pdGlvbiwgYSBzZXQgcmVmZXJyZWQgdG8gYnkg e2xvJ2kvbGUnaS9sYSdpfS1zdW10aSBjb25zaXN0cyBvZiBvbmx5IHRoZSByZWZlcmVudCBvZiB7 bG8vbGUvbGEgW1tQQV0gYnJvZGF9IG9yIHtsby9sZS9sYSBQQSAnJ3N1bXRpJyd9LiBDb250cmFz dGl2ZWx5LCBpZiB3ZSBkZWZpbmUgaXQgYXMge3NlbGNtaX09e3NlIGNtaW1hfSwgdGhlIHNldCBt YXkgaW5jbHVkZSB3aGF0IGlzL2FyZSBvdGhlciB0aGFuIHRoZSByZWZlcmVudCBvZiB7bG8vbGUv bGEgW1tQQV0gYnJvZGF9IG9yIHtsby9sZS9sYSBQQSAnJ3N1bXRpJyd9LiBJdCBpcyBub3QgeWV0 IG9mZmljaWFsbHkgZGV0ZXJtaW5lZCB3aGljaCBpbnRlcnByZXRhdGlvbiBpcyB0byBiZSBhY2Nl cHRlZC4KCgoKISEhIyBJbm5lciBxdWFudGlmaWNhdGlvbgoKKChCUEZLIFNlY3Rpb246IGdhZHJp fEJQRksgZGVmaW5lcyBpbm5lciBxdWFudGlmaWNhdGlvbikpIGFzIGZvbGxvd3M6Cgp8fAoKbG8g W1tQQV0gYnJvZGEgfmhzfnx+aHN+IHpvJ2Ugbm9pIGtlJ2EgYnJvZGEgW1tnaSdlIHppbGthbmN1 IGxpIFBBIGxvIGJyb2RhXQoKbG8gUEEgJydzdW10aScnIH5oc358fmhzfiBsbyBQQSBtZSAnJ3N1 bXRpJycKCnx8CgpUaGF0IGlzIHRvIHNheSwgaW5uZXIgcXVhbnRpZmllciBtZWFucyBudW1iZXIg b2YgcmVmZXJlbnQgY291bnRlZCBieSB1bml0IHtsbyBicm9kYX0gb3Ige2xvIG1lICcnc3VtdGkn J30gdGhhdCBpcyB4MyBvZiB7emlsa2FuY3V9LiAKCkhvd2V2ZXIsIGluc3RlYWQgb2Yge3ppbGth bmN1fSwgdGhlIG1lYW5pbmcgb2Ygd2hpY2ggaXMgdG9vIHZhZ3VlIGZvciBkZWZpbml0aW9uLCBb aHR0cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9kL21zZy9sb2piYW4vUkF0RTdZay1kcXcveGkyaDZB MTdDdXNKfGFuIGlkZWEgb2YgcmVkZWZpbml0aW9uIHVzaW5nIHttZWl9IHdhcyBzdWdnZXN0ZWRd IGFzIGZvbGxvd3M6CgoKCjtBeGlvbSAxOiBybydvaSBkYSBzdSdvIHBhIG1laQoKO0RlZmluaXRp b246fHwKCihEMSkga28nYSBzdSdvIE4gbWVpIH5oc358fmhzfiA9Y2EnZSB+aHN+fH5oc34gc3Un b2kgZGEgcG9pIG1lIGtvJ2Ega3UnbyBzdSdvaSBkZSBwb2kgbWUga28nYSB6byd1IGdlIGRhIHN1 J28gTi0xIG1laSBnaW5haSBkZSBtZSBkYQoKKEQyKSBrbydhIE4gbWVpIH5oc358fmhzfiA9Y2En ZSB+aHN+fH5oc34ga28nYSBzdSdvIE4gbWVpIGdpJ2UgbmFpIHN1J28gTisxIG1laSAKCihEMykg bG8gUEEgYnJvZGEgfmhzfnx+aHN+ID1jYSdlIH5oc358fmhzfiB6bydlIG5vaSBrZSdhIFBBIG1l aSBnaSdlIGJyb2RhCgp8fAoKCgpVc2luZyB0aGVzZSBkZWZpbml0aW9ucyBhbmQgQXhpb20gMSwg dGhlIGZvbGxvd2luZyB0aGVvcmVtIHdpbGwgYmUgcHJvdmVkLgoKXklmIGFuZCBvbmx5IGlmIHtr bydhIHBhIG1laX0sIHtrbydhfSBpcyBhbiBpbmRpdmlkdWFsLl4KCgoKO1Byb29mOiAoRDIpIGlz Cgp8fAoKa28nYSBOIG1laQl8PXwga28nYSBzdSdvIE4gbWVpIGdpJ2UgbmFpIHN1J28gTisxIG1l aSAKCgkJfD18IGdlIGtvJ2Egc3UnbyBOIG1laSAtLS0tLShTMSkKCgkJfCB8IGdpIG5ha3Uga28n YSBzdSdvIE4rMSBtZWkgLS0tLS0oUzIpCgp8fAoKQXBwbHlpbmcgKEQxKSB0byAoUzIpLCAKCnx8 CgooUzIpCQl8PXwgbmFrdSBzdSdvaSBkYSBwb2kgbWUga28nYSBrdSdvIHN1J29pIGRlIHBvaSBt ZSBrbydhIHpvJ3UgCgoJCXwgfCBnZSBkYSBzdSdvIE4gbWVpIAoKCQl8IHwgZ2luYWkgZGUgbWUg ZGEKCgkJfD18IHJvJ29pIGRhIHBvaSBtZSBrbydhIGt1J28gcm8nb2kgZGUgcG9pIG1lIGtvJ2Eg em8ndQoKCQl8IHwgbmFrdSBnZSBkYSBzdSdvIE4gbWVpIAoKCQl8IHwgZ2kgbmFrdSBkZSBtZSBk YQoKCQl8PXwgcm8nb2kgZGEgcG9pIG1lIGtvJ2Ega3UnbyBybydvaSBkZSBwb2kgbWUga28nYSB6 byd1CgoJCXwgfCBnYW5haSBkYSBzdSdvIE4gbWVpIAoKCQl8IHwgZ2kgZGUgbWUgZGEKCnx8Cgoo RDIpIGlzIHRoZXJlZm9yZQoKfHwKCmtvJ2EgTiBtZWkJfD18IGdlIChTMSkgZ2kgKFMyKSAKCgkJ fD18IGdlIGtvJ2Egc3UnbyBOIG1laQoKCQl8IHwgZ2kgcm8nb2kgZGEgcG9pIG1lIGtvJ2Ega3Un byBybydvaSBkZSBwb2kgbWUga28nYSB6byd1CgoJCXwgfCBnYW5haSBkYSBzdSdvIE4gbWVpIAoK CQl8IHwgZ2kgZGUgbWUgZGEKCnx8CgpXaGVuIE49MSwKCnx8CgprbydhIHBhIG1laQl8PXwgZ2Ug a28nYSBzdSdvIHBhIG1laQoKCQl8IHwgZ2kgcm8nb2kgZGEgcG9pIG1lIGtvJ2Ega3UnbyBybydv aSBkZSBwb2kgbWUga28nYSB6byd1CgoJCXwgfCBnYW5haSBkYSBzdSdvIHBhIG1laSAKCgkJfCB8 IGdpIGRlIG1lIGRhIAoKfHwKCkJlY2F1c2Ugb2YgQXhpb20gMSwgaXQgaW1wbGllcwoKfHwKCmtv J2EgcGEgbWVpCXw9fCBybydvaSBkYSBwb2kgbWUga28nYSBrdSdvIHJvJ29pIGRlIHBvaSBtZSBr bydhIHpvJ3UgZGUgbWUgZGEKCnx8CgpUaGUgcmlnaHQgc2lkZSBpbXBsaWVzIHtybydvaSBkYSBw b2kga2UnYSBtZSBrbydhIHpvJ3Uga28nYSBtZSBkYX0sIHdoaWNoIGlzIHRoZSBjb25kaXRpb24g Zm9yICJ7a28nYX0gaXMgYW4gaW5kaXZpZHVhbCIuIEl0cyBjb252ZXJzZSBpcyBhbHNvIHRydWUu CgpRLkUuRC4KCgoKVGhlIGRpYWdyYW0gYmVsb3cgc2hvd3MgYSBwcm9jZWR1cmUgb2YgY291bnRp bmcgc29tZXRoaW5nIHVwIHRvIGZvdXIgcmVwcmVzZW50ZWQgd2l0aCBhIGRpcmVjdGVkIGdyYXBo LiBJbiB0aGlzIGRpYWdyYW0sIGxvb3BzIHN1Y2ggYXMge1ggbWUgWH0gYXJlIG9taXR0ZWQgZm9y IHNpbXBsaWNpdHksIHRob3VnaCB0aGV5IGV4aXN0LiBDb3VudGluZyB1cCBjb3JyZXNwb25kcyB0 byBzZWxlY3RpbmcgYSBzdWJncmFwaCBvZiBhIGRpcmVjdGVkIGdyYXBoIGZvcm1lZCB3aXRoIHtt ZX06IHRoZSBzdWJncmFwaCB0aGF0IGhhcyBhIGZvcm0gb2YgdHJlZSB0aGF0IGluY2x1ZGVzIGFs bCBsZWF2ZXMgKGNvbnN0YW50cyBlYWNoIG9mIHdoaWNoIGlzIGFuIGluZGl2aWR1YWwpIHRvIGJl IGNvdW50ZWQsIGZvciBleGFtcGxlIHRoZSBwYXJ0IG9mIG1hZ2VudGEgY29sb3IgaW4gdGhlIGRp YWdyYW0uCgoKCntpbWcgZmlsZUlkPSIxMCIgdGh1bWI9InkiIHJlbD0iYm94W2ddIn0KCgoKISEh ISMgUmVwZWF0aW5nIGlubmVyIHF1YW50aWZpY2F0aW9uCgpCZWNhdXNlIHtsbyBQQSAnJ3N1bXRp Jyd9IGlzIGRlZmluZWQsIHdlIGNhbiByZXBlYXQgaW5uZXIgcXVhbnRpZmljYXRpb24gdG8gZm9y bSBhbiBhcmd1bWVudC4KCl4KCjtFeGFtcGxlOiBsbyBtdWxubyBrYXJkeWdyaSBjdSBndW5tYSBs byB2byBsb2kgcGFjaSBrYXJkYSB+aHN+ICcnQSBmdWxsIGRlY2sgY29uc2lzdHMgb2YgZm91ciBn cm91cHMgb2YgdGhpcnRlZW4gY2FyZHMuJycKCjs6IHN1J28gZGEgem8ndSBsb2kgcmUgbG8naSBy byBtb2tjYSBub2kgc2VwbGkgcHkgbm9pIG1va2NhIGt1J28gZGEgY3UgcmVsY3VrdGFpIH5oc34g JydUd28gc2V0cyBvZiBwb2ludHMgdGhhdCBhcmUgZXF1aWRpc3RhbnQgZnJvbSBhIHBvaW50IFAg aXMgYSBkb3VibGUgY2lyY2xlLicnXgoKCgohISEhIyBQcm9ibGVtcyBvbiBpbm5lciBxdWFudGlm aWNhdGlvbgoKISEhISEjIENhbm5vdCBzYXkgemVybwoKCgpCZWNhdXNlIGFuIGFyZ3VtZW50IGZv cm1lZCBieSBnYWRyaSBpcyBhIHBsdXJhbCBjb25zdGFudCwge2xvIGJyb2RhfSBpbXBsaWVzIHtz dSdvaSBkYSB6byd1IGRhIGJyb2RhfSBhY2NvcmRpbmcgdG8gdGhlIGxvZ2ljYWwgYXhpb20gb24g cGx1cmFsIGNvbnN0YW50IHNob3duIGluICgofCNBX2xvZ2ljYWxfYXhpb21fb25fcGx1cmFsX2Nv bnN0YW50fFNlY3Rpb24gMi4yLjYpKS4gVGhhdCBpcyB0byBzYXksIHRoZSBleHByZXNzaW9uIHts byBubyBicm9kYX0gaW1wbGllcyAidGhlcmUgYXJlIHdoYXQgYXJlIGJyb2RhLCB3aGljaCBhcmUg Y291bnRlZCAwIiwgd2hpY2ggc2VlbXMgbWVhbmluZ2xlc3MuCgoKClRoaXMgbWVhbnMgdGhhdCBv ZmZpY2lhbCBMb2piYW4gY2Fubm90IGV4cHJlc3MgbmVnYXRpb24gb2YgZXhpc3RlbmNlIG9mIHBs dXJhbCB2YXJpYWJsZSB7bmFrdSBzdSdvaSBkYX0sIHdoaWNoIGlzIG5ldmVydGhlbGVzcyBuZWNl c3NhcnksIGZvciBleGFtcGxlIGluIHRoZSBmb2xsb3dpbmcgc2l0dWF0aW9uOgoKCgpeIGxvIHhv IHByZW51IGN1IGptYWppIGdpJ2UganVrcGEgZ2knZSBjaXRrYSB+aHN+fi0tfiBub35wcH4KCn4v cHB+JyciSG93IG1hbnkgcGVvcGxlIGdhdGhlcmVkLCBjb29rZWQgYW5kIGF0ZT8iICJ6ZXJvLiIn J14KCgoKVGhpcyByZXNwb25zZSBpcyBhbiBhYmJyZXZpYXRlZCBmb3JtIG9mIHtsbyBubyBwcmVu dSBjdSBqbWFqaSBnaSdlIGp1a3BhIGdpJ2UgY2l0a2F9LgoKCgpUaGlzIHByb3Bvc2l0aW9uIG1l YW5zIHRoYXQge2xvIG5vIHByZW51fSBzYXRpc2ZpZXMgc2VsYnJpIHtqbWFqaX0gY29sbGVjdGl2 ZWx5IGFuZCAoamUpIG5vbi1kaXN0cmlidXRpdmVseSwge2p1a3BhfSBjb2xsZWN0aXZlbHkgb3Ig KGphKSBkaXN0cmlidXRpdmVseSwge2NpdGthfSBub24tY29sbGVjdGl2ZWx5IGFuZCAoamUpIGRp c3RyaWJ1dGl2ZWx5LiBCZWNhdXNlIGl0IGluY2x1ZGVzIHNlbGJyaSB7am1haml9IHRvIGJlIHNh dGlzZmllZCBub24tZGlzdHJpYnV0aXZlbHksIHRoZSBzdW10aSBjYW5ub3QgYmUgcmVwbGFjZWQg YnkgbmVnYXRpb24gb2YgZXhpc3RlbmNlIG9mIGJvdW5kIHNpbmd1bGFyIHZhcmlhYmxlIHtuYWt1 IHN1J28gZGF9PXtubyBkYX0uIE1vcmVvdmVyLCBiZWNhdXNlIGl0IGluY2x1ZGVzIHNlbGJyaSB7 Y2l0a2F9IHRvIGJlIHNhdGlzZmllZCBub24tY29sbGVjdGl2ZWx5LCB7bG99IG9mIHRoZSBzdW10 aSBjYW5ub3QgYmUgcmVwbGFjZWQgYnkge2xvaX09e2xvIGd1bm1hIGJlIGxvfS4KCgoKRm9yIG1h a2luZyBzdWNoIGEgcHJvcG9zaXRpb24gbWVhbmluZ2Z1bCwgaXQgaXMgZXNzZW50aWFsIHRvIGdp dmUgYW4gZXhwcmVzc2lvbiB7bG8gbm8gYnJvZGF9IGEgbWVhbmluZyBvZiBuZWdhdGlvbiBvZiBl eGlzdGVuY2Ugb2YgcGx1cmFsIHZhcmlhYmxlLgoKRm9yIHRoaXMgcHVycG9zZSwgSSBzdWdnZXN0 IHRoZSBmb2xsb3dpbmcgZGVmaW5pdGlvbiB2YWxpZCBpbiB0aGUgY2FzZSB0aGF0IFBBPTAgZm9y IHtsbyBQQSBicm9kYX0uCgo7VW5vZmZpY2lhbCBkZWZpbml0aW9uIG9mIHtsbyBubyBicm9kYX06 fHwKCmxvIG5vIGJyb2RhIH5oc358fmhzfiA9Y2EnZSB+aHN+fH5oc34gbmFrdSBzdSdvaSBkYSBw b2kga2UnYSBicm9kYQoKfHwKCgoK77yISWYgaXQgd2VyZSBkZWZpbmVkIGFzIHtuYWt1IGxvIGJy b2RhfSwgdGhlIG5lZ2F0aW9uIHdvdWxkIGhhdmUgc3Bhbm5lZCB0aGUgd2hvbGUgcHJvcG9zaXRp b24sIGFuZCBpdCB3b3VsZCBub3QgaGF2ZSBpbXBsaWVkIHF1YW50aWZpY2F0aW9uLiBJIGFiYW5k b25lZCB0aGVyZWZvcmUgc3VjaCBhIGRlZmluaXRpb24uKQoKCgohISEhISMgQ2Fubm90IHF1YW50 aWZ5IG1hdGVyaWFsIG5vdW4gb3Igc29tZXRoaW5nCgpBeGlvbSAxIG9mICgofCNJbm5lcl9xdWFu dGlmaWNhdGlvbnxTZWN0aW9uIDMuMSkpIGV4Y2x1ZGVzIHN1bXRpIHRoYXQgaXMgbmVpdGhlciBh biBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscyBmcm9tIGV4cHJlc3Npb25zIHsoc3UnbykgTiBt ZWl9IGFuZCB7bG8gTiBicm9kYX0uCgoKCkNhbiB3ZSB1c2Uge3BpUEF9IGZvciBzdW10aSB0aGF0 IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHMsIHRoZW4/IE5vLgoKKChC UEZLIFNlY3Rpb246IGdhZHJpfEFjdHVhbGx5LCBwaVBBIGlzIGRlZmluZWQgb25seSBmb3Igb3V0 ZXIgcXVhbnRpZmljYXRpb24uKSkKCnx8CgpwaVBBICcnc3VtdGknJyB+aHN+fH5oc34gbG8gcGlQ QSBzaSdlIGJlIHBhIG1lICcnc3VtdGknJwoKfHwKCkFzIHdlIGNhbiBzZWUgaW4gdGhlIGRlZmlu aXRpb24sIHRoZSBib2R5IG9mIG91dGVyIHF1YW50aWZpY2F0aW9uIGJ5IHtwaVBBfSBpcyBwbHVy YWwgY29uc3RhbnQge2xvIHBpUEEgc2knZX0sIHdoaWNoIGlzIG5vdCBhIGJvdW5kIHNpbmd1bGFy IHZhcmlhYmxlLiBIb3dldmVyLCB4MiBvZiB7cGlQQSBzaSdlfSBpcyB7cGEgbWUgJydzdW10aScn fSwgdG8gd2hpY2ggKChCUEZLIFNlY3Rpb246IGdhZHJpfHRoZSBkZWZpbml0aW9uIG9mIFBBIGJy b2RhKSkgaXMgYXBwbGllZDoKCnx8CgpQQSBicm9kYSB+aHN+fH5oc34gUEEgZGEgcG9pIGJyb2Rh IAoKfHwKCkFzIGEgcmVzdWx0LCB7cGlQQSAnJ3N1bXRpJyd9IGlzIGRlZmluZWQgb25seSB3aGVu IHRoZXJlIGlzIGFuIGluZGl2aWR1YWwgdGhhdCBzYXRpc2ZpZXMgeDEgb2Yge21lICcnc3VtdGkn J30uIFRoYXQgaXMgdG8gc2F5LCB3aGF0IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5k aXZpZHVhbHMgaXMgZXhjbHVkZWQgYWxzbyBmcm9tIGFuIGV4cHJlc3Npb24gb2Ygb3V0ZXIgcXVh bnRpZmljYXRpb24gd2l0aCB7cGlQQX0uCgoKCldoYXQgd291bGQgYmUgaWYge3BpUEF9IHdlcmUg ZGVmaW5lZCBhbHNvIGZvciBpbm5lciBxdWFudGlmaWNhdGlvbj8KCkluIHRoYXQgY2FzZSwgdGhl IGZvbGxvd2luZyBkZWZpbml0aW9uIHdvdWxkIGJlIGRlc2lyYWJsZSB0byBjb25mb3JtIHRoZSBk ZWZpbml0aW9uIG9mIHtwaVBBfSBvZiBvdXRlciBxdWFudGlmaWNhdGlvbjoKCjsgVW5vZmZpY2lh bCBkZWZpbml0aW9uIG9mIHtwaVBBfSBvZiBpbm5lciBxdWFudGlmaWNhdGlvbjp8fAoKbG8gcGlQ QSBicm9kYSB+aHN+fH5oc34gPWNhJ2Ugfmhzfnx+aHN+IHpvJ2Ugbm9pIGtlJ2EgcGlQQSBzaSdl IGJlIGxvIHBhIGJyb2RhCgp8fAoKVGhpcyBkZWZpbml0aW9uIG9mIHtwaVBBfSBvZiBpbm5lciBx dWFudGlmaWNhdGlvbiBzdGlsbCBleGNsdWRlcyB3aGF0IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVh bCBub3IgaW5kaXZpZHVhbHMgdW5sZXNzIHtsbyBwYSBicm9kYX0gaXMgZGVmaW5lZCBpbiBhbm90 aGVyIHdheSBzbyB0aGF0IGl0IGNhbiBiZSB3aGF0IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBu b3IgaW5kaXZpZHVhbHMuCgoKCldoeSBkb24ndCB3ZSB1c2Uge1BBIHNpJ2V9IHRvIGV4cHJlc3Mg cXVhbnRpZmljYXRpb24gb2Ygd2hhdCBpcyBuZWl0aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2 aWR1YWxzPyAKCkl0IGlzIHBvc3NpYmxlLCBidXQgKChCUEZLIFNlY3Rpb246IE51bWVyaWMgc2Vs YnJpfEJQRksncyBjdXJyZW50IGRlZmluaXRpb24gb2Yge3NpJ2V9KSkgZGVwZW5kcyBvbiB7cGFn YnV9OgoKfHwKCngxIG51bWJlciBzaSdlIHgyIH5oc358fmhzfiB4MSBwYWdidSB4MiBnaSdlIGts YW5pIGxpIG51bWJlciBsbyBzZSBncmFkdSBiZSB4MgoKfHwKCklmIHdlIGludGVycHJldCB7cGFn YnV9IHNvIHRoYXQgeDEgaXMgbm90IGxhcmdlciB0aGFuIHgyIChhbmQgdGhpcyBpcyBvcmRpbmFy eSBpbnRlcnByZXRhdGlvbiksIFtodHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2QvbXNnL2xvamJh bi9SQXRFN1lrLWRxdy9uVWJaaXdtQjJNMEp8e3NpJ2V9IGlzIHZlcnkgaW5jb252ZW5pZW50IGJl Y2F1c2UgdGhlIHVuaXQgc2hvdWxkIGJlIGNoYW5nZWQgZXZlcnkgdGltZSBjb3VudGluZyB1cC5d IElmIHtzaSdlfSB3ZXJlIGRlZmluZWQgc28gdGhhdCBQQSBvZiB7UEEgc2knZX0gY291bGQgYmUg bGFyZ2VyIHRoYW4gMSwge3NpJ2V9IHdvdWxkIGhhdmUgYmVlbiBwcmFnbWF0aWMgZm9yIHF1YW50 aWZpY2F0aW9uIG9mIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFs cy4KCgoKQmVzaWRlcyB0aG9zZSBjb25zaWRlcmF0aW9ucywgaWYgd2UgYWJhbmRvbiBBeGlvbSAx IG9mICgofCNJbm5lcl9xdWFudGlmaWNhdGlvbnxTZWN0aW9uIDMuMSkpLCBEZWZpbml0aW9ucyAo RDEpIChEMikgKEQzKSBjYW4gYmUgYXBwbGllZCB0byB3aGF0IGlzIG5laXRoZXIgYW4gaW5kaXZp ZHVhbCBub3IgaW5kaXZpZHVhbHMuCgpJbiB0aGlzIGNhc2UsIGEgc3BlYWtlciBzaG91bGQgc2Vs ZWN0IHNvbWUgcGx1cmFsIGNvbnN0YW50cyB7a28nYSwga28nZSwgLi4ufSwgYW5kIGRlY2lkZSB0 aGF0IHtbW2tvJ2Eva28nZS8uLi5dIHN1J28gcGEgbWVpfTsgdGhlIHNlbGVjdGlvbiBtdXN0IGJl IGRvbmUgYXR0ZW50aXZlbHkgc28gdGhhdCByZWZlcmVudHMgb2YgcGx1cmFsIGNvbnN0YW50cyB0 aGF0IGFyZSB7cGEgbWVpfSBkbyBub3Qgb3ZlcmxhcCB3aXRoIGVhY2ggb3RoZXIuCgpUaG9zZSBw cmVwYXJhdGlvbnMgb2Yge2tvJ2EsIGtvJ2UsIC4uLn0gYW5kIChEMikgaW1wbHkgb25seQoKfHwK CmdhbmFpIFtba28nYS9rbydlLy4uLl0gcGEgbWVpIAoKZ2kgcm8nb2kgZGUgcG9pIG1lIFtba28n YS9rbydlLy4uLl0gem8ndSBkZSBtZSBbW2tvJ2Eva28nZS8uLi5dCgp8fAoKVW5kZXIgdGhlc2Ug Y29uZGl0aW9ucywgdGhlcmUgaXMgbm8gbmVlZCB0aGF0IHdoYXQgaXMgeDEgb2Yge3BhIG1laX0g aXMgYW4gaW5kaXZpZHVhbC4KCgoKV2hlbiB3ZSB1c2UgRGVmaW5pdGlvbnMgKEQxKSAoRDIpIChE Mykgd2l0aG91dCB1c2luZyBBeGlvbSAxIG9mICgofCNJbm5lcl9xdWFudGlmaWNhdGlvbnxTZWN0 aW9uIDMuMSkpLCBhIGNvbmRpdGlvbiB7Z2knZSBzdSdvIHBhIG1laX0gbXVzdCBiZSBhZGRlZCB0 byB7ZGV9IG9mIChEMSnvvIhXaGVuIEF4aW9tIDEgaXMgdXNlZCwgcmVmZXJlbnRzIGluIHRoZSBk b21haW4gb2YgdmFyaWFibGUge2RlfSBzYXRpc2ZpZXMgdGhpcyBjb25kaXRpb24gYXV0b21hdGlj YWxseSkuIAoKO1Vub2ZmaWNpYWwgZGVmaW5pdGlvbnMgdW5kZXIgdGhlIGNvbmRpdGlvbiB0aGF0 IEF4aW9tIDEgaXMgYWJhbmRvbmVkOnx8CgooRDEnKSBrbydhIHN1J28gTiBtZWkgfmhzfnx+aHN+ ID1jYSdlIH5oc358fmhzfiBzdSdvaSBkYSBwb2kgbWUga28nYSBrdSdvIHN1J29pIGRlIHBvaSBt ZSBrbydhIGdpJ2Ugc3UnbyBwYSBtZWkgem8ndSBnZSBkYSBzdSdvIE4tMSBtZWkgZ2luYWkgZGUg bWUgZGEKCihEMikga28nYSBOIG1laSB+aHN+fH5oc34gPWNhJ2Ugfmhzfnx+aHN+IGtvJ2Egc3Un byBOIG1laSBnaSdlIG5haSBzdSdvIE4rMSBtZWkgCgooRDMpIGxvIFBBIGJyb2RhIH5oc358fmhz fiA9Y2EnZSB+aHN+fH5oc34gem8nZSBub2kga2UnYSBQQSBtZWkgZ2knZSBicm9kYQoKfHwKClVz aW5nIHRoZXNlIGRlZmluaXRpb25zLCBpbm5lciBxdWFudGlmaWNhdGlvbiBvZiB3aGF0IGlzIG5l aXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHMgYmVjb21lcyBwb3NzaWJsZS4gTW9y ZW92ZXIsICJVbm9mZmljaWFsIGRlZmluaXRpb24gb2Yge3BpUEF9IG9mIGlubmVyIHF1YW50aWZp Y2F0aW9uIiBkaXNjdXNzZWQgYWJvdmUgYmVjb21lcyBhYmxlIHRvIGJlIGFwcGxpZWQgdG8gd2hh dCBpcyBuZWl0aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzLgoKCgpUaGUgZGlhZ3Jh bSBiZWxvdyBzaG93cyBhIHByb2NlZHVyZSBvZiBjb3VudGluZyB1cCB3aGF0IGlzIG5laXRoZXIg YW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHMgcmVwcmVzZW50ZWQgd2l0aCBhIGRpcmVjdGVk IGdyYXBoLiBJbiB0aGlzIGRpYWdyYW0sIGxvb3BzIHN1Y2ggYXMge1ggbWUgWH0gYXJlIG9taXR0 ZWQgZm9yIHNpbXBsaWNpdHksIHRob3VnaCB0aGV5IGV4aXN0LiBBbW9uZyBpbmZpbml0ZSBudW1i ZXIgb2YgdmVydGljZXMgKHBsdXJhbCBjb25zdGFudHMpLCB0aGUgdmVydGljZXMgdGhhdCBhIHNw ZWFrZXIgc2VsZWN0ZWQgYXMge3N1J28gcGEgbWVpfSBhcmUgY29sb3JlZCBwaW5rLiBDb3VudGlu ZyB1cCBjb3JyZXNwb25kcyB0byBzZWxlY3RpbmcgYSB0cmVlIHRoYXQgaXMgYSBzdWJncmFwaCBv ZiBhIGRpcmVjdGVkIGdyYXBoIGZvcm1lZCB3aXRoIHttZX0sIGZvciBleGFtcGxlIHRoZSBwYXJ0 IG9mIGJsdWUgY29sb3IgaW4gdGhlIGRpYWdyYW0uCgoKCntpbWcgZmlsZUlkPSI5IiB0aHVtYj0i eSIgcmVsPSJib3hbZ10ifQoKCgohISEjIE91dGVyIHF1YW50aWZpY2F0aW9uCgooKEJQRksgU2Vj dGlvbjogZ2Fkcml8QlBGSyBkZWZpbmVzIG91dGVyIHF1YW50aWZpY2F0aW9uKSkgYXMgZm9sbG93 czoKCnx8CgpQQSAnJ3N1bXRpJycgfmhzfnx+aHN+IFBBIGRhIHBvaSBrZSdhIG1lICcnc3VtdGkn JwoKUEEgYnJvZGEgfmhzfnx+aHN+IFBBIGRhIHBvaSBicm9kYSAKCnBpUEEgJydzdW10aScnIH5o c358fmhzfiBsbyBwaVBBIHNpJ2UgYmUgcGEgbWUgJydzdW10aScnCgp8fAoKCgpPdXRlciBxdWFu dGlmaWNhdGlvbiBleGNlcHQge3BpUEF9IGZvcm1zIHtQQSBkYX0sIHdoaWNoIGlzIG9mZmljaWFs bHkgYSBib3VuZCBzaW5ndWxhciB2YXJpYWJsZS4gSXQgaW1wbGllcyB0aGF0IHRoZXNlIGFyZ3Vt ZW50cyBzYXRpc2Z5IGEgcHJlZGljYXRlIF9fZGlzdHJpYnV0aXZlbHlfXy4gRm9yIGV4YW1wbGUs IGl0IGlzIG1lYW5pbmdsZXNzIHRvIHVzZSB7Y2kgbG8gcHJlbnV9IGFzIHgxIG9mIHtqbWFqaX0g KGdhdGhlciksIGJlY2F1c2UgaXQgaXMgbm90IHRoZSBjYXNlIHRoYXQgZWFjaCBvZiB0aHJlZSBw ZW9wbGUgc2F0aXNmaWVzIHRoZSBwcmVkaWNhdGUgImdhdGhlciIuCgoKCkhvd2V2ZXIsIGlmIHdl IHVzZSB1bm9mZmljaWFsIHBsdXJhbCBxdWFudGlmaWVycyB7cm8nb2l9IG9yIHtzdSdvaX0gZm9y IFBBLCBvdXRlciBxdWFudGlmaWNhdGlvbiBjYW4gZm9ybSBib3VuZCBwbHVyYWwgdmFyaWFibGUu IEZvciBleGFtcGxlLAoKXnN1J29pIHByZW51IGN1IGptYWppIH5oc34gdGhlcmUgYXJlIHBlb3Bs ZSB3aG8gZ2F0aGVyLl4KClRoaXMgcHJvcG9zaXRpb24gaXMgaW1wbGllZCBieSBhIHByb3Bvc2l0 aW9uIGluY2x1ZGluZyBwbHVyYWwgY29uc3RhbnQKCl5sbyBwcmVudSBjdSBqbWFqaSB+aHN+IFBl b3BsZSBnYXRoZXIuXgoKd2l0aCB0aGUgbG9naWNhbCBheGlvbSBpbiAoKHwjQV9sb2dpY2FsX2F4 aW9tX29uX3BsdXJhbF9jb25zdGFudHxTZWN0aW9uIDIuMi42KSkuCgoKCntQQSBsbyBicm9kYX0g ZGlmZmVycyBmcm9tIHtQQSBicm9kYX0gaW4gZG9tYWluIG9mIHJlZmVyZW50cyBvZiBib3VuZCBz aW5ndWxhciB2YXJpYWJsZSB0byBiZSBjb3VudGVkLiBUaGUgZGVmaW5pdGlvbnMgb2Ygb3V0ZXIg cXVhbnRpZmljYXRpb24gYXJlIGFwcGxpZWQgdG8gdGhlbSBhcyBmb2xsb3dzOgoKfHwKClBBIGxv IGJyb2RhIH5oc358fmhzfiBQQSBkYSBwb2kga2UnYSBtZSBsbyBicm9kYSB+aHN+fH5oc34gVGhl IGRvbWFpbiBvZiBib3VuZCBzaW5ndWxhciB2YXJpYWJsZSBpcyBhIHJlZmVyZW50IG9mIHBsdXJh bCBjb25zdGFudCB7bG8gYnJvZGF9IGluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIGFuZCBj b3VudGVkIHRvIGJlIFBBCgpQQSBicm9kYSB+aHN+fH5oc34gUEEgZGEgcG9pIGtlJ2EgYnJvZGEg fmhzfnx+aHN+IFRoZSBkb21haW4gb2YgYm91bmQgc2luZ3VsYXIgdmFyaWFibGUgaXMgYWxsIHRo YXQgYXJlIHticm9kYX0gaW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSwgYW5kIGNvdW50ZWQg dG8gYmUgUEEKCnx8CgoKCl4KCjtFeGFtcGxlIDE6IHJvIGptaXZlIGJhIG1vcnNpIH5oc34gJydB bGwgbGl2aW5nIHRoaW5ncyB3aWxsIGRpZS4nJwoKO0V4YW1wbGUgMjogcm8gbG8gcHJlbnUgdGkg a2xhbWEgfmhzfiAnJ0FsbCB0aGUgcGVvcGxlIGNvbWUgaGVyZS4nJ14KCkV4YW1wbGUgMSBtZW50 aW9ucyBhbGwge2ptaXZlfSBpbiB0aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLiBJbiB0aGUgdW5p dmVyc2Ugb2YgZGlzY291cnNlIG9mIEV4YW1wbGUgMiwgaXQgaXMgcG9zc2libGUgdG8gaW50ZXJw cmV0IHRoYXQgdGhlcmUgYXJlIHtwcmVudX0gb3RoZXIgdGhhbiB0aGUgcmVmZXJlbnQgb2YgdGhl IHBsdXJhbCBjb25zdGFudCB7bG8gcHJlbnV9LgoKCgpUaGUgb3V0ZXIgcXVhbnRpZmljYXRpb24g Ynkge3BpUEF9IGZvcm1zIHBsdXJhbCBjb25zdGFudCB7bG8gcGlQQSBzaSdlfS4gSG93ZXZlciwg eDIgb2Yge3BpUEEgc2knZX0gaXMgYm91bmQgc2luZ3VsYXIgdmFyaWFibGUge3BhIG1lICcnc3Vt dGknJ30uIHtwaX0gaW4gdGhpcyBkZWZpbml0aW9uIG1lYW5zICJub3QgbGFyZ2VyIHRoYW4gMSI7 IHByYWN0aWNhbGx5LCB7ZmkndX0gb3Igc29tZXRoaW5nIGNhbiBiZSB1c2VkIGluc3RlYWQgb2Yg e3BpfQoKCgohISEhIyBDb21iaW5hdGlvbiBvZiBvdXRlciBhbmQgaW5uZXIgcXVhbnRpZmljYXRp b25zCgpUaGUgZGVmaW5pdGlvbnMgb2YgaW5uZXIgYW5kIG91dGVyIHF1YW50aWZpY2F0aW9uIGlt cGx5IHRoZSBmb2xsb3dpbmcgaW50ZXJwcmV0YXRpb25zOgoKfHwKCk0gbG8gW1tOXSBicm9kYSB+ aHN+fH5oc34gTSAod2hpY2ggc2F0aXNmaWVzIGEgcHJlZGljYXRlIGRpc3RyaWJ1dGl2ZWx5KSBv ZiB7bG8gYnJvZGF9IFtbdGhhdCBhcmUgTl0KCk0gbG9pIFtbTl0gYnJvZGEgfmhzfnx+aHN+IE0g KHdoaWNoIHNhdGlzZmllcyBhIHByZWRpY2F0ZSBkaXN0cmlidXRpdmVseSkgb2Yge2xvIGd1bm1h fSB0aGF0IGNvbnNpc3RzIG9mIHtsbyBicm9kYX0gW1t0aGF0IGFyZSBOXQoKTSBsbydpIFtbTl0g YnJvZGEgfmhzfnx+aHN+IE0gKHdoaWNoIHNhdGlzZmllcyBhIHByZWRpY2F0ZSBkaXN0cmlidXRp dmVseSkgb2Yge2xvIHNlbGNtaX0gdGhhdCBjb25zaXN0cyBvZiB7bG8gYnJvZGF9IFtbdGhhdCBh cmUgTl0KCnBpIE0gbG8gW1tOXSBicm9kYSB+aHN+fH5oc34gUXVhbnRpdHkge3BpIE0gc2knZX0g b2YgYSBwYXJ0IG9mIG9uZSBvZiB7bG8gYnJvZGF9IFtbdGhhdCBhcmUgTl0KCnBpIE0gbG9pIFtb Tl0gYnJvZGEgfmhzfnx+aHN+IFF1YW50aXR5IHtwaSBNIHNpJ2V9IG9mIGEgcGFydCBvZiBvbmUg b2Yge2xvIGd1bm1hfSB0aGF0IGNvbnNpc3RzIG9mIHtsbyBicm9kYX0gW1t0aGF0IGFyZSBOXQoK cGkgTSBsbydpIFtbTl0gYnJvZGEgfmhzfnx+aHN+IFF1YW50aXR5IHtwaSBNIHNpJ2V9IG9mIGEg cGFydCAoc3Vic2V0KSBvZiBvbmUgb2Yge2xvIHNlbGNtaX0gdGhhdCBjb25zaXN0cyBvZiB7bG8g YnJvZGF9IFtbdGhhdCBhcmUgTl0KCnx8CgoKCkFtb25nIHRoZW0sIHtNIGxvIFtbTl0gYnJvZGF9 IGFuZCB7cGkgTSBsb2kgW1tOXSBicm9kYX0gY2FuIGV4cHJlc3Mgc29tZSBvZiBwbHVyYWwgbnVt YmVyIG9mIHRoaW5ncy4KCl4KCjtFeGFtcGxlIDE6IHJlIGxvIFtbY2ldIG1sYXR1IG1pIHZpc2th IH5oc34gJydUd28gW1tvZiB0aHJlZV0gY2F0cyBzZWUgbWUuJycKCjtFeGFtcGxlIDI6IHJlIGZp J3UgY2kgbG9pIFtbdmVpIGNpIHBpJ2kgbnkgKHZlJ28pXSBtbGF0dSBtaSB2aXNrYSB+aHN+ICcn VHdvIHRoaXJkIG9mIFtbM25dIGNhdHMgc2VlIG1lLicnXgoKCgp7cmUgbG8gW1tjaV0gbWxhdHV9 IG9mIEV4YW1wbGUgMSByZWZlcnMgdG8gdHdvIGNhdHMgYW1vbmcgW1t0aHJlZV0gY2F0cyB0aGF0 IGFyZSByZWZlcmVudCBvZiB7bG8gW1tjaV0gbWxhdHV9LgoKSWYgdGhlIGlubmVyIHF1YW50aWZp ZXIge2NpfSBpcyBub3Qgc2FpZCwgaXQgaXMgdW5jbGVhciBob3cgbWFueSBjYXRzIGFyZSByZWZl cnJlZCB0byBieSB7bG8gbWxhdHV9OyBpbiBhbnkgY2FzZSB7cmUgbG8gbWxhdHV9IHJlZmVycyB0 byB0d28gb2YgdGhlbS4KCgoKSW4gRXhhbXBsZSAyLCB0aGUgYXJndW1lbnQgaXMgZm9ybWVkIGJ5 IHtsb2l9LCBhbmQgdGhlIHJlZmVyZW50IGlzIGFjdHVhbGx5IHtsbyBndW5tYX0uIEV4cGFuZGlu ZyBFeGFtcGxlIDIgYWNjb3JkaW5nIHRvIHRoZSBkZWZpbml0aW9ucyBvZiB7bG9pfSBhbmQge3Bp UEEgJydzdW10aScnfSwKCl4KCjtFeGFtcGxlIDItMTogbG8gcmUgZmkndSBjaSBzaSdlIGJlIHBh IG1lIGxvIGd1bm1hIGJlIGxvIFtbdmVpIGNpIHBpJ2kgbnkgKHZlJ28pXSBtbGF0dSBtaSB2aXNr YV4KClRoYXQgaXMgdG8gc2F5LCB7cmUgZmkndSBjaSBsb2kuLi59IHJlZmVycyB0byB0d28gdGhp cmQgb2YgYW4gaW5kaXZpZHVhbCB7cGEgbWUgbG8gZ3VubWEuLi59LiBUaGlzIHtsbyBndW5tYX0g Y29uc2lzdHMgb2Yge3ZlaSBjaSBwaSdpIG55ICh2ZSdvKX0gY2F0cy4gCgpJZiB0aGUgaW5uZXIg cXVhbnRpZmllciBpcyBub3Qgc2FpZCwgaXQgaXMgdW5jbGVhciBob3cgbWFueSBjYXRzIGNvbnN0 aXR1dGUge2xvIGd1bm1hfSB0aGF0IGlzIHtsb2kgbWxhdHV9OyBpbiBhbnkgY2FzZSB7cmUgZmkn dSBjaSBsb2kgbWxhdHV9IHJlZmVycyB0byB0d28gdGhpcmQgb2Yge2xvIGd1bm1hfS4gSG93ZXZl ciwgCgpecmUgZmkndSBjaSBsb2kgbWxhdHUgbWkgdmlza2FeCgppcyBtZWFuaW5nZnVsIG9ubHkg d2hlbiB7bG9pIG1sYXR1fSBjb25zaXN0cyBvZiAzbiBjYXRzLCBiZWNhdXNlIGl0IGlzIG5vdCBv cmRpbmFyeSB0byBpbnRlcnByZXQgdGhhdCBhIGZyYWdtZW50IG9mIGEgY2F0IHNhdGlzZmllcyB0 aGUgcHJlZGljYXRlIHt2aXNrYX0uCgpBY2NvcmRpbmcgdG8gQlBGSydzIGRlZmluaXRpb24sIHts b2l9IGNhbm5vdCBmb3JtIGEgcGx1cmFsIGNvbnN0YW50IHRoYXQgc2F0aXNmaWVzIGEgcHJlZGlj YXRlIG5vbi1jb2xsZWN0aXZlbHkuIElmIHlvdSB3YW50IHRvIG1lYW4gImNhdHMgc2VlIG1lIG5v bi1jb2xsZWN0aXZlbHkiLCBhdm9pZCB7bG9pfSwgb3IgdXNlIHtsdSdhfSwgd2hpY2ggd2lsbCBi ZSBkaXNjdXNzZWQgaW4gKCh8I1JlbGF0aW9uX2JldHdlZW5fbHVfYV9sdV9vX2x1X2lfYW5kX2dh ZHJpfFNlY3Rpb24gMy4zKSk6CgpebHUnYSByZSBmaSd1IGNpIGxvaSBtbGF0dSBtaSB2aXNrYV4K CgoKISEhISMgQm91bmQgdmFyaWFibGVzIGFuZCBjb25zdGFudHMgaW4gYSBzdGF0ZW1lbnQKCldo ZW4gYm90aCBib3VuZCB2YXJpYWJsZXMgYW5kIGNvbnN0YW50cyBhcHBlYXIgaW4gYSBzdGF0ZW1l bnQsIHRoZSBjb25zdGFudHMgZG8gbm90IG5lY2Vzc2FyaWx5IHNwYW4gb3ZlciBhbGwgYm91bmQg dmFyaWFibGVzLiBBbHRob3VnaCB0aGV5IGFyZSBjYWxsZWQgImNvbnN0YW50cyIsIGl0IGlzIG5v dCBnZW5lcmFsbHkgZGV0ZXJtaW5lZCB3aGV0aGVyIHRoZXkgcmVmZXIgdG8gY29tbW9uIHJlZmVy ZW50cyBmb3IgYWxsIHJlZmVyZW50cyBpbiBkb21haW5zIG9mIHZhcmlhYmxlcywgb3IgdGhleSBy ZWZlciB0byBkaWZmZXJlbnQgcmVmZXJlbnRzIGRlcGVuZGVudCBvbiByZWZlcmVudHMgaW4gZG9t YWlucyBvZiB2YXJpYWJsZXMuIFRoZSByZWFzb24gZm9sbG93cyBiZWxvdyAoW2h0dHBzOi8vZ3Jv dXBzLmdvb2dsZS5jb20vZC9tc2cvbG9qYmFuL1JBdEU3WWstZHF3L0FCRGZPZnVveldFSnxEaXNj dXNzaW9uXSkuCgoKCldoZW4gc29tZSBzdW10aSBvZiB0ZXJicmkgaW4gYSBzdGF0ZW1lbnQgYXJl IG9taXR0ZWQsIGl0IGlzIGNvbnNpZGVyZWQgdGhhdCB0aGVyZSBhcmUgaW1wbGljaXQge3pvJ2V9 IGluIHRob3NlIHBsYWNlcyAoW2h0dHA6Ly9kYWcuZ2l0aHViLmlvL2NsbC83LzcvfENMTCA3Ljdd KS4KCkZvciBleGFtcGxlLAoKXnJvIG1sYXR1IGN1IGpiZW5hfnBwfgoKfi9wcH4gICcnQWxsIGNh dHMgYXJlL3dpbGwgYmUgYm9ybi4nJ14KCnNlZW1zIHRvIGJlIHRydWUgZnJvbSBhIHN0YW5kYXJk IHBvaW50IG9mIHZpZXcuIEFjY29yZGluZyB0byBkZWZpbml0aW9uIG9mIHRlcmJyaSBvZiB7amJl bmF9LCBpdCBpcyBjb25zaWRlcmVkIHRoYXQgdGhyZWUgc3VtdGkgYXJlIG9taXR0ZWQsIGFuZCB0 aGlzIHN0YXRlbWVudCBoYXMgdGhlIHNhbWUgbWVhbmluZyBhcwoKXnJvIG1sYXR1IGN1IGpiZW5h IHpvJ2Ugem8nZSB6bydlXgoKaW4gd2hpY2gge3pvJ2V9IGFyZSBleHBsaWNpdC4gCgpVbmxlc3Mg YWxsIGNhdHMgaW4gdGhpcyB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UgYXJlL3dpbGwgYmUgYm9ybiB0 byBjb21tb24gcGFyZW50cyBhdCB0aGUgc2FtZSB0aW1lIGF0IHRoZSBzYW1lIHBsYWNlLCB0aGVz ZSB7em8nZX0gY2Fubm90IGJlIGNvbnNpZGVyZWQgYXMgY29tbW9uIGNvbnN0YW50cyBmb3IgYWxs IHJlZmVyZW50cyBpbiBhIGRvbWFpbiBvZiB7cm8gbWxhdHV9LiBJbiBvcmRlciB0byBtYWtlIHN1 Y2ggYW4gZXhwcmVzc2lvbiBsaWtlIHtybyBtbGF0dSBjdSBqYmVuYX0gaGF2ZSBpbnRlbmRlZCBt ZWFuaW5nLCAiY29uc3RhbnRzIiBvZiBMb2piYW4gY2FuIGJlIGRlcGVuZGVudCBvbiByZWZlcmVu dHMgaW4gZG9tYWlucyBvZiBib3VuZCB2YXJpYWJsZXMuCgoKCiJDb25zdGFudHMiIGluIHRoaXMg bWVhbmluZyBjb3JyZXNwb25kIHRvIFNrb2xlbSBmdW5jdGlvbnMgaW4gU2tvbGVtIG5vcm1hbCBm b3JtcyBvZiBwcmVkaWNhdGUgbG9naWMuIFRoZSB0YWJsZSBiZWxvdyBzaG93cyBjb21wYXJpc29u IG9mIGludGVycHJldGF0aW9ucyBiZXR3ZWVuIHByZWRpY2F0ZSBsb2dpYywgeG9ybG8gb24gd2hp Y2ggdGhpcyBjb21tZW50YXJ5IGRlcGVuZHMgYW5kIGltcGxpY2l0IHF1YW50aWZpZXIgKFtodHRw Oi8vZGFnLmdpdGh1Yi5pby9jbGwvNi8xL3xDTEwgQ2hhcHRlciA2XSkgd2hpY2ggd2FzIGFib2xp c2hlZC4gVGhlIGV4cHJlc3Npb25zIHRoYXQgaGF2ZSB0aGUgc2FtZSB0cnV0aCB2YWx1ZSBhcmUg YWxpZ25lZCBpbiB0aGUgc2FtZSBjb2x1bW4uIFVwcGVyIGNhc2UgWSByZXByZXNlbnRzIGEgcGx1 cmFsIHZhcmlhYmxlLiBUaGUgcm93IG9mIHpvJ2UreG9ybG8gc2hvd3MgdW5vZmZpY2lhbCBzdWdn ZXN0aW9uIG9mIGludGVycHJldGF0aW9uLiBJbiB0aGUgZ3JheSBwYXJ0IGluIHRoZSByb3cgb2Yg UHJlbmV4IG5vcm1hbCwgdW5vZmZpY2lhbCBleHByZXNzaW9ucyB3aXRoIGFuIGV4cGVyaW1lbnRh bCBjbWF2byB7c3Unb2l9IGFyZSBzaG93bi4gKENsaWNrIG9uIHRoZSB0YWJsZSB0byBlbmxhcmdl LikKCntpbWcgZmlsZUlkPSIxMiIgdGh1bWI9InkiIGxpbms9ImRpc3BsYXkxMSIgcmVsPSJib3hb Z10ifQoKCgohISEjIFJlbGF0aW9uIGJldHdlZW4gbHUnYSwgbHUnbywgbHUnaSBhbmQgZ2FkcmkK CigoQlBGSyBTZWN0aW9uOiBJbmRpcmVjdCBSZWZlcmVyc3xCUEZLIGRlZmluZXMpKSB7bHUnYX0s IHtsdSdvfSwge2x1J2l9IG9mIExBaEUgYXMgZm9sbG93czoKCnx8CgpsdSdhICcnc3VtdGknJyB+ aHN+fH5oc34gbG8gbWUgJydzdW10aScnIH5oc358fmhzfiBsbyBjbWltYSBiZSAnJ3N1bXRpJycg W1tub2kgc2VsY21pXQoKbHUnbyAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvaSBtZSAnJ3N1bXRpJycK Cmx1J2kgJydzdW10aScnIH5oc358fmhzfiBsbydpIG1lICcnc3VtdGknJwoKfHwKCkhvd2V2ZXIs IGd1ZXNzaW5nIGZyb20gdGhlIEVuZ2xpc2ggZGVmaW5pdGlvbnMgb24gdGhlIHNhbWUgcGFnZSwg dGhlIGRlZmluaXRpb24gb2Yge2x1J2F9IGlzIHVuc2F0aXNmYWN0b3J5LCBhbmQgdGhhdCBvZiB7 bHUnb30gaGFzIHNvbWUgcHJvYmxlbS4KCgoKe2x1J2F9IGV4dHJhY3RzIHgyIG9mIHtzZWxjbWl9 IGZyb20gc3VtdGkgdGhhdCBpcyB7bG8gc2VsY21pfSwgYW5kIHgyIG9mIHtndW5tYX0gZnJvbSBz dW10aSB0aGF0IGlzIHtsbyBndW5tYX0uIE1vcmVvdmVyLCB7bHUnYX0gbWFrZXMgZXhwbGljaXQg dGhhdCB0aGUgc3VtdGkgc2F0aXNmaWVzIGEgcHJlZGljYXRlIGRpc3RyaWJ1dGl2ZWx5IGFuZCBu b24tY29sbGVjdGl2ZWx5LiBPbiB0aGUgb3RoZXIgaGFuZCwgYWNjb3JkaW5nIHRvIHRoZSBkZWZp bml0aW9uIG9mIHtsb30sIHtsbyBtZSAnJ3N1bXRpJyd9IGRvZXMgbm90IGltcGx5ICJkaXN0cmli dXRpdmVseSBhbmQgbm9uLWNvbGxlY3RpdmVseSIuCgoKCntsdSdvfSBtYWtlcyBleHBsaWNpdCB0 aGF0IHRoZSBzdW10aSBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUgbm9uLWRpc3RyaWJ1dGl2ZWx5IGFu ZCBjb2xsZWN0aXZlbHkuIE9uIHRoZSBvdGhlciBoYW5kLCBhY2NvcmRpbmcgdG8gdGhlIGRlZmlu aXRpb24gb2Yge2xvaX0sIHtsb2kgbWUgJydzdW10aScnfSBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUg Y29sbGVjdGl2ZWx5LCBidXQgc3RpbGwgdW5jbGVhciBpZiBpdCBkb2VzIG5vbi1kaXN0cmlidXRp dmVseS4gRm9yIGNvbnNpc3RlbmN5LCBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gYWRkICJ7bG9pIGJy b2RhfSBpbXBsaWVzIHRoYXQgcmVmZXJlbnQgb2YgeDEgb2YgYnJvZGEgY29sbGVjdGl2ZWx5IGFu ZCBub24tZGlzdHJpYnV0aXZlbHkgc2F0aXNmaWVzIGEgcHJlZGljYXRlIiB0byB0aGUgZGVmaW5p dGlvbiBvZiB7bG9pfS4KCgoKQXMgYSBjb25jbHVzaW9uIG9mIHRoaXMgc2VjdGlvbiwgSSBzdWdn ZXN0IHRvIHJlLWRlZmluZSB7bHUnYX0gYXMgZm9sbG93czoKCjsgVW5vZmZpY2lhbCBkZWZpbml0 aW9uIG9mIHtsdSdhfTp8fAoKbHUnYSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvIGNtaW1hIGJlICcn c3VtdGknJyBub2kgc2VsY21pIGt1IG9uYWkgbG8gc2UgZ3VubWEgYmUgJydzdW10aScnIG5vaSBn dW5tYSBrdSBvbmFpIGxvIG1lICcnc3VtdGknJyBrdSB+cHB+Cgp+L3BwfiB+aHN+IHZ1J28gbm9p IHN1J28gZGEgem8ndSBkYSBtZSBrZSdhIGdpJ2Ugbm8nYQoKfHwKCkluIHtub2l9IGNsYXVzZSBh ZnRlciB7dnUnb30sIGl0IGlzIG1hZGUgZXhwbGljaXQgdGhhdCB0aGUgcmVmZXJlbnQgb2Yge2x1 J2EgJydzdW10aScnfSBkaXN0cmlidXRpdmVseSBzYXRpc2ZpZXMgdGhlIHNlbnRlbmNlIHRoYXQg aW5jbHVkZXMgdGhpcyBzdW10aS4KCgoKISEhIyBSZWxhdGlvbiBiZXR3ZWVuIGpvJ3UsIGpvaSwg Y2UgYW5kIGdhZHJpCgooKEJQRksgU2VjdGlvbjogTm9uLWxvZ2ljYWwgQ29ubmVjdGl2ZXN8QWNj b3JkaW5nIHRvIEJQRksgU2VjdGlvbikpIHtqbyd1fSwge2pvaX0gYW5kIHtjZX0gb2Ygc2VsbWEn byBKT0kgYXJlIGRlZmluZWQgYXMgZm9sbG93czp8fAoKX19YX18gam8ndSBfX1lfXyB+aHN+fH5o c34gbG8gc3V6bWVpIG5vaSBfX1hfXyAuZSBfX1lfXyAuZSBubyBkcmF0YSBiZSBfX1hfXyAuZSBf X1lfXyBjdSBtZSBrZSdhCgpfX1hfXyBqb2kgX19ZX18gfmhzfnx+aHN+IGxvIGd1bm1hIGJlIF9f WF9fIC5lIF9fWV9fIC5lIG5vIGRyYXRhIGJlIF9fWF9fIC5lIF9fWV9fCgpfX1hfXyBjZSBfX1lf XyB+aHN+fH5oc34gbG8gc2UgY21pbWEgYmUgX19YX18gLmUgX19ZX18gLmUgbm8gZHJhdGEgYmUg X19YX18gLmUgX19ZX18KCnx8CgpUaGV5IGNvcnJlc3BvbmQgcmVzcGVjdGl2ZWx5IHRvIHtsb30s IHtsb2l9LCB7bG8naX0gb2YgZ2FkcmkuIFRoZXkgY29ubmVjdCB0d28gc3VtdGk6IHtqbyd1fSBm b3JtcyBhIHBsdXJhbCBjb25zdGFudCwge2pvaX0gYSBub24tZGlzdHJpYnV0aXZlIHBsdXJhbCBj b25zdGFudCwge2NlfSBhIHBsdXJhbCBjb25zdGFudCB0aGF0IHJlZmVycyB0byBzZXQocykgdGhh dCBjb25zaXN0KHMpIG9mIHRoZSBzdW10aSB0aGF0IHtjZX0gY29ubmVjdHMuIEluIHRoZSBFbmds aXNoIGRlZmluaXRpb24gb2Yge2pvaX0gb2YgQlBGSywgIm5vbi1kaXN0cmlidXRpdmUiIGlzIG1l bnRpb25lZC4gVGhpcyBmYWN0IGFsc28gc3VwcG9ydHMgdGhlIHN1Z2dlc3Rpb24gaW4gKCh8I1Jl bGF0aW9uX2JldHdlZW5fbHVfYV9sdV9vX2x1X2lfYW5kX2dhZHJpfFNlY3Rpb24gMy4zKSkgdG8g YWRkICJ7bG9pIGJyb2RhfSBpbXBsaWVzIHRoYXQgcmVmZXJlbnQgb2YgeDEgb2YgYnJvZGEgY29s bGVjdGl2ZWx5IGFuZCBub24tZGlzdHJpYnV0aXZlbHkgc2F0aXNmaWVzIGEgcHJlZGljYXRlIiB0 byB0aGUgZGVmaW5pdGlvbiBvZiB7bG9pfS4KCgoKRXZlbiBpZiBfX1hfXyBvciBfX1lfXyBhcmUg Ym91bmQgdmFyaWFibGVzLCB0aGVzZSBjb25uZWN0aXZlcyBmb3JtIGNvbnN0YW50cy4gSW4gdGhp cyBjYXNlLCBpdCBpcyBub3QgZGV0ZXJtaW5lZCB3aGV0aGVyIHRoZSBmb3JtZWQgY29uc3RhbnRz IGRlcGVuZCBvbiBfX1hfXyBhbmQgX19ZX18sIG9yIHRoZXkgYXJlIGNvbW1vbiB0byBhbGwgcmVm ZXJlbnRzIGluIHRoZSBkb21haW5zIG9mIF9fWF9fIGFuZCBfX1lfXy4gU2VlICgofCNCb3VuZF92 YXJpYWJsZXNfYW5kX2NvbnN0YW50c19pbl9hX3N0YXRlbWVudHxTZWN0aW9uIDMuMi4yKSkgZm9y IGRldGFpbC4KCgoKQmVjYXVzZSB0aGV5IGFyZSBjbWF2byBpbiBzZWxtYSdvIEpPSSwgdGhleSBj YW4gY29ubmVjdCB3aGF0IGFyZSBub3Qgc3VtdGksIGJ1dCB0aGUgbWVhbmluZ3MgaW4gdGhpcyB1 c2FnZSBhcmUgbm90IG9mZmljaWFsbHkgZGVmaW5lZC4gVGhleSBjYW4gZm9ybSBhbHNvIGZvcmV0 aG91Z2h0IGNvbm5lY3RpdmUge0pPSSBnaSBfX1hfXyBnaSBfX1lfX30uIFdoZW4gdGhlIGZvcmV0 aG91Z2h0IGNvbm5lY3RpdmVzIGFyZSB1c2VkIGZvciBzdW10aSwgdGhleSBmb3JtIHRoZSBzYW1l IGNvbnN0YW50cyBhcyB0aGUgYWZ0ZXJ0aG91Z2h0IHVzYWdlIGRlZmluZWQgYWJvdmUuCgoKCiEh IyBOb3RlcwoKVGhpcyBzZWN0aW9uIGNvbnNpc3RzIG9mIG5vdGVzIG9mIHRoZSBhdXRob3IgZ3Vz a2FudCwgYW5kIGl0IGlzIG5vdCBhdCBhbGwgaW1wb3J0YW50IGZvciB1bmRlcnN0YW5kaW5nIGdh ZHJpLgoKCgohISEjIEFib3V0IG9udG9sb2d5CgpeKChCUEZLIFNlY3Rpb246IGdhZHJpfCcnUG9z aXRpdmUgaW1wYWN0OiBTb21lIHVzYWdlcyB0aGF0IG1ha2UgbGl0dGxlIHNlbnNlIHdpdGgge2xv fT17c3Unb30gYmVjb21lIHZhbGlkYXRlZC4nJykpIGFjY29yZGluZyB0byBCUEZLLl4KCgoKe2xv fT17c3Unb30gd2FzIGFiYW5kb25lZCwgYnV0IGJlY2F1c2Ugb2YgdGhlIGZhY3QgdGhhdCB7bG8g YnJvZGF9IGlzIGEgcGx1cmFsIGNvbnN0YW50LCBhbmQgYmVjYXVzZSBvZiBhIGxvZ2ljYWwgYXhp b20gb2YgcGx1cmFsIGNvbnN0YW50IGluICgofCNBX2xvZ2ljYWxfYXhpb21fb25fcGx1cmFsX2Nv bnN0YW50fFNlY3Rpb24gMi4yLjYpKSwge2xvIGJyb2RhIGN1IGJyb2RlfSBpbXBsaWNpdGx5IGlt cGxpZXMge3N1J29pIGRhIGJyb2RlfS4KCgoKISEhIyBjbGF4dSB4MgoKXigoQlBGSyBTZWN0aW9u OiBnYWRyaXxsZSBjbWFuYSBfX2xvX18gY2lkamEgYmEgY2xheHUpKX5wcH4KCn4vcHB+ICAnJ0lu IHRoZSBtb3VudGFpbnMgdGhlcmUgaXMgbm8gZm9vZC4nJ35wcH4KCn4vcHB+KChsYXBvaSBwZWx4 dSBrdSdvIHRyYWp5bm9ibGkpKV4KCgoKRXhwYW5kaW5nIHtsbyBjaWRqYX0sIAoKXmxlIGNtYW5h IHpvJ2Ugbm9pIGtlJ2EgY2lkamEga3UnbyBiYSBjbGF4dV4KCkFjY29yZGluZyB0byAoKEJQRksg U2VjdGlvbjogU3Vib3JkaW5hdG9yc3x0aGUgZGVmaW5pdGlvbiBvZiB7bm9pfSkpLCAKCl5sZSBj bWFuYSB6bydlIHRvIHJpIHhpIHJhdSBjaWRqYSB0b2kgYmEgY2xheHVeCgpUaGUgcGFydCBiZXR3 ZWVuIHt0b30gYW5kIHt0b2l9IGlzIGEgcGFyZW50aGV0aWNhbCBleHByZXNzaW9uLiBUaGUgbWFp biBwcm9wb3NpdGlvbiBpcyB0aHVzCgpebGUgY21hbmEgem8nZSBiYSBjbGF4dV4KCndoZXJlIHt6 bydlfSBpcyBhIHBsdXJhbCBjb25zdGFudC4gQWNjb3JkaW5nIHRvIHRoZSBsb2dpY2FsIGF4aW9t IG9mIHBsdXJhbCBjb25zdGFudCBpbiAoKHwjQV9sb2dpY2FsX2F4aW9tX29uX3BsdXJhbF9jb25z dGFudHxTZWN0aW9uIDIuMi42KSksIFRoaXMgcHJvcG9zaXRpb24gaW1wbGllcyAKCl5zdSdvaSBk YSB6byd1IGxlIGNtYW5hIGRhIGJhIGNsYXh1XgoKd2hpY2ggbWVhbnMgdGhhdCB0aGVyZSBpcyBh IHJlZmVyZW50IG9mICJ3aGF0IGlzIGxhY2tlZCBieSB0aGUgbW91bnRhaW4iIGluIHRoZSB1bml2 ZXJzZSBvZiBkaXNjb3Vyc2UuCgpUaGUgc3RyYW5nZW5lc3MgY29tZXMgZnJvbSB0aGUgZmFjdCB0 aGF0IHgyIG9mIHtjbGF4dX0gX19hcHBhcmVudGx5X18gbWVhbnMgbm9uLWV4aXN0ZW5jZS4gV2Ug Y2FuIGludGVycHJldCBpdCBjb25zaXN0ZW50bHkgdGhhdCB7Y2xheHV9IG1lYW5zIG9ubHkgdGhh dCB0aGUgcmVmZXJlbnQgb2YgeDIgaXMgbm90IHBsYWNlZCBhdCB0aGUgcmVmZXJlbnQgb2YgeDEs IGFuZCBpdCBzYXlzIG5vdGhpbmcgYWJvdXQgZXhpc3RlbmNlIGluIHRoZSB1bml2ZXJzZSBvZiBk aXNjb3Vyc2UuIAoKCgohISEjIHpvJ2UgaXMgYSBwbHVyYWwgY29uc3RhbnQKCkFzc3VtaW5nIHRo YXQge3pvJ2V9IGNhbiBiZSBhbnkgb2YgZnJlZSB2YXJpYWJsZSwgYm91bmQgcGx1cmFsIHZhcmlh YmxlIG9yIHBsdXJhbCBjb25zdGFudCwgdGhlIGxhbmd1YWdlIHdvdWxkIGJlIG1vcmUgcmVhc29u YWJsZSBmcm9tIGEgbG9naWNhbCBwb2ludCBvZiB2aWV3LgoKSG93ZXZlciwgdGhpcyBpZGVhIHdh cyBjbGVhcmx5IGRlbmllZCBpbiBbaHR0cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9kL3RvcGljL2xv amJhbi9SQXRFN1lrLWRxdy9kaXNjdXNzaW9ufHRoZSBkaXNjdXNzaW9uXS4gVGhhdCBpcyB0byBz YXksIHt6bydlfSBpcyBhbHdheXMgYSBwbHVyYWwgY29uc3RhbnQgYWNjb3JkaW5nIHRvIHRoZSBv ZmZpY2lhbCBpbnRlcnByZXRhdGlvbi4KCkkgd2lsbCBleGFtaW5lIHRoZXNlIGNvbmZsaWN0aW5n IGlkZWFzLCBhbmQgdHJ5IHRvIHNvbHZlIHNvbWUgcHJvYmxlbXMgY2F1c2VkIGJ5IHRoZSBvZmZp Y2lhbCBpbnRlcnByZXRhdGlvbiB0aGF0IHt6bydlfSBpcyBhIHBsdXJhbCBjb25zdGFudC4KCgoK ISEhISMgSWYgem8nZSBjb3VsZCBiZSBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZQoKSSB3aWxsIGxp c3QgdXAgaGVyZSBtZXJpdHMgYW5kIGRlbWVyaXRzIG9mIGFzc3VtaW5nIHRoYXQge3pvJ2V9IGlu IG5vIGNvbnRleHQgaXMgYSBmcmVlIHZhcmlhYmxlLCBhbmQgdGhhdCB0aGUgY29udGV4dCBkZXRl cm1pbmVzIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIGJhc2VkIG9uIHdoaWNoIHt6bydlfSBp cyByZWdhcmRlZCBhcyBzdWJzdGl0dXRlZCBmb3IgYnkgYSBwbHVyYWwgY29uc3RhbnQsIG9yIGJv dW5kIGJ5IGEgcGx1cmFsIHF1YW50aWZpZXIuCgoKCiEhISEhIyBNZXJpdHMKClVuZGVyIHRoaXMg YXNzdW1wdGlvbiwgdGhlcmUgaXMgbm8gbmVlZCB0byBleGNsdWRlIHRoZSBjYXNlIFBBPTAgb2Yg e2xvIFBBIGJyb2RhfSwgb3IgZ2l2ZSBpdCBhbiB1bm9mZmljaWFsIGRlZmluaXRpb24gYXMgZGlz Y3Vzc2VkIGluICgofCNDYW5ub3Rfc2F5X3plcm98U2VjdGlvbiAzLjEuMi4xKSkuIEl0IGlzIGJl Y2F1c2UgaWYge2xvIFBBIGJyb2RhfSBpbiBubyBjb250ZXh0IGlzIGEgZnJlZSB2YXJpYWJsZSwg d2UgY2FuIGludGVycHJldCBpdCwgd2hlbiBhIGNvbnRleHQgaXMgZ2l2ZW4sIGFzIHN1YnN0aXR1 dGVkIGZvciBieSBhIHBsdXJhbCBjb25zdGFudCBvciBib3VuZCBieSBhIHBsdXJhbCBxdWFudGlm aWVyIGxpa2Uge3N1J29pIGRhfSBpbiB0aGUgY2FzZSBvZiBQQT4wOyB3ZSBjYW4gaW50ZXJwcmV0 IGl0IGFzIGJvdW5kIGJ5IHtuYWt1IHN1J29pIGRhfSBpbiB0aGUgY2FzZSBvZiBQQT0wIGFzIHdl bGwuCgoKClRoaXMgYXNzdW1wdGlvbiBtYWtlcyB0aGUgaW50ZXJwcmV0YXRpb24gY2xvc2VyIHRv IG5hdHVyYWwgbGFuZ3VhZ2VzIG5vdCBvbmx5IGluIHRoZSBjYXNlIFBBPTAgYnV0IGFsc28gaW4g dGhlIGNhc2UgUEE+MC4gRm9yIGV4YW1wbGUsIAoKXmxvIGNpIHhhbnRvIGN1IHppbGthbmN1IGxp IGNpIGxvIHhhbnRvXgoKVGhlIGxhc3Qge2xvIHhhbnRvfSBpcyBhIHVuaXQgb2YgY291bnRpbmcu IEl0IGlzIG5hdHVyYWwgdG8gaW50ZXJwcmV0IGl0IGFzIGEgYm91bmQgcGx1cmFsIHZhcmlhYmxl IHF1YW50aWZpZWQgYnkgIjEiIHJhdGhlciB0aGFuIGEgcGx1cmFsIGNvbnN0YW50LCB3aGljaCBz aG91bGQgcmVmZXIgdG8gc29tZXRoaW5nLiBJZiB3ZSBpbnRlcnByZXQgaXQgYXMgYSBib3VuZCBw bHVyYWwgdmFyaWFibGUsIHdlIHNob3VsZCBjb25zaWRlciB0aGUgcmVsYXRpdmUgb3JkZXIgd2l0 aCB0aGUgb3RoZXIgYm91bmQgdmFyaWFibGVzIGFuZCB7bmFrdX0uIFdlIGNhbiBoYW5kbGUgdGhl IG9yZGVyIGZyZWVseSBieSBwdXR0aW5nIHRoZSBhcmd1bWVudHMgaW4gcHJlbmV4LgoKCgpNb3Jl b3ZlciwgdGhpcyBhc3N1bXB0aW9uIGVtYm9kaWVzIHRoZSBwcm9wZXJ0eSBvZiBuYXR1cmFsIGxh bmd1YWdlcyB0aGF0IHRoZSB0cnV0aCB2YWx1ZSBvZiBhIHByb3Bvc2l0aW9uIGluIG5vIGNvbnRl eHQgaXMgZ2VuZXJhbGx5IGluZGVmaW5pdGUuIEJ5IGludGVycHJldGluZyB0aGF0IHt6bydlfSBp biBubyBjb250ZXh0IGlzIGEgZnJlZSB2YXJpYWJsZSwgd2hpY2ggd2lsbCBiZSBzdWJzdGl0dXRl ZCBmb3IgYnkgYSBwbHVyYWwgY29uc3RhbnQgb3IgYm91bmQgYnkgYSBwbHVyYWwgcXVhbnRpZmll ciB3aGVuIGEgY29udGV4dCBpcyBnaXZlbiwgbmF0dXJhbCBpbnRlcnByZXRhdGlvbiBvZiBMb2pi YW4gc2VudGVuY2UgaXMgcG9zc2libGUgd2l0aG91dCBsb3NpbmcgbG9naWNhbCBhc3BlY3RzIGFu ZCBzdHJ1Y3R1cmFsIGJlYXV0eS4KCgoKISEhISEjIERlbWVyaXRzCgpCZWNhdXNlIHt6bydlfSBj YW4gYmUgYSBmcmVlIHZhcmlhYmxlLCBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZSBvciBhIHBsdXJh bCBjb25zdGFudCBkZXBlbmRpbmcgb24gdGhlIGNvbnRleHQsIGEgc2luZ2xlIGJyaWRpIGRvZXMg bm90IGxldCBsaXN0ZW5lcnMgZGV0ZXJtaW5lIHdoaWNoIG9mIHRoZW0gaXMgdGhlIGN1cnJlbnQg e3pvJ2V9LCBvciB0aGUgdHJ1dGggdmFsdWUgb2YgdGhlIHByb3Bvc2l0aW9uLgoKSG93ZXZlciwg c3VjaCBhbiBhc3BlY3QgdGhhdCB0aGUgdHJ1dGggdmFsdWUgb2YgYSBwcm9wb3NpdGlvbiBnZW5l cmFsbHkgZGVwZW5kcyBvbiB0aGUgY29udGV4dCBpcyBhIGNvbW1vbiBwcm9wZXJ0eSB0byBhbGwg bmF0dXJhbCBsYW5ndWFnZXMuCgoKCk9uIHRoZSBvdGhlciBoYW5kLCBldmVuIGlmIHdlIHRha2Ug dGhlIG9mZmljaWFsIGludGVycHJldGF0aW9uIHRoYXQge3pvJ2V9IGlzIGFsd2F5cyBhIHBsdXJh bCBjb25zdGFudCwgbGlzdGVuZXJzIGFyZSBvbmx5IGluZm9ybWVkIGJ5IHt6bydlfSB0aGF0IGEg Y2VydGFpbiB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UgaXMgZ2l2ZW4uIFdpdGggbm8gY29udGV4dCwg dGhlcmUgaXMgbm8gd2F5IHRvIGRldGVybWluZSB3aGF0IGlzIHRoZSB1bml2ZXJzZSBvZiBkaXNj b3Vyc2UuIFRoZSB0cnV0aCB2YWx1ZSBvZiBhIHByb3Bvc2l0aW9uIGluIG5vIGNvbnRleHQgaXMg aW5kZWZpbml0ZSBldmVuIHdpdGggdGhlIG9mZmljaWFsIGludGVycHJldGF0aW9uLgoKCgohISEh IyBQcm9ibGVtcyBjYXVzZWQgYnkgdGhlIGZhY3QgdGhhdCB6bydlIGlzIGEgcGx1cmFsIGNvbnN0 YW50IGFuZCB0aGUgY291bnRlci1tZWFzdXJlcwoKVGhlIG9mZmljaWFsIGludGVycHJldGF0aW9u IHRoYXQge3pvJ2V9IGlzIGEgcGx1cmFsIGNvbnN0YW50IGNhdXNlcyB0aGUgZm9sbG93aW5nIHBy b2JsZW1zLgoKCgohISEhISMgQ2Fubm90IGV4cHJlc3MgcGx1cmFsIHF1YW50aWZpY2F0aW9uIG9m IG5vbi1leGlzdGVuY2UKClJlYXNvbmFibGUgaW50ZXJwcmV0YXRpb24gb2Yge2xvIG5vIGJyb2Rh fSBpcyBvZmZpY2lhbGx5IGV4Y2x1ZGVkIGZyb20gTG9qYmFuLiBUaGF0IGlzIHRvIHNheSwgTG9q YmFuIGNhbm5vdCBvZmZpY2lhbGx5IGRlYWwgd2l0aCB0aGUgZXhwcmVzc2lvbiAidGhlcmUgaXMg bm90IHdoYXQgaXMgc3Vic3RpdHV0ZWQgZm9yIHtkYX0iIGZvciBwbHVyYWwgdmFyaWFibGUgKHtu YWt1IHN1J29pIGRhfSksIHdoaWNoIGlzIG5hdHVyYWxseSBkZWFsdCB3aXRoIGJ5IHBsdXJhbCBx dWFudGlmaWNhdGlvbi4gSW4gb3JkZXIgdG8gZXhwcmVzcyB7bG8gbm8gYnJvZGF9IHdpdGggcmVh c29uYWJsZSBpbnRlcnByZXRhdGlvbiwgd2UgbmVlZCBhbiB1bm9mZmljaWFsIGludGVycHJldGF0 aW9uIGxpa2UgKCh8I0Nhbm5vdF9zYXlfemVyb3xTZWN0aW9uIDMuMS4yLjEpKS4KCgoKISEhISEj IENhbm5vdCBleHByZXNzIGJvdW5kIHBsdXJhbCB2YXJpYWJsZSwgd2hpY2ggZG9lcyBub3Qgc3Bl Y2lmeSBhIHJlZmVyZW50CgpCZWNhdXNlIHRoZSBvZmZpY2lhbCBpbnRlcnByZXRhdGlvbiBkb2Vz IG5vdCBhbGxvdyB7bG8gUEEgYnJvZGF9IHRvIGJlIGEgYm91bmQgcGx1cmFsIHZhcmlhYmxlIGRl cGVuZGluZyBvbiB0aGUgY29udGV4dCwgYW4gYXJndW1lbnQgdGhhdCBzaG91bGQgcmVmZXIgdG8g bm90aGluZywgYSB1bml0IG9mIGNvdW50aW5nIGZvciBleGFtcGxlLCBzaG91bGQgYmUgaW50ZXJw cmV0ZWQgYXMgYSBwbHVyYWwgY29uc3RhbnQsIHdoaWNoIHJlZmVycyB0byBzb21ldGhpbmcuIEZv ciBleGFtcGxlIAoKXmxvIGNpIHhhbnRvIGN1IHppbGthbmN1IGxpIGNpIGxvIHhhbnRvXgoKZm9y IHdoaWNoIHdlIGFyZSBjb21wZWxsZWQgdG8gaW50ZXJwcmV0IHRoYXQgdGhlcmUgaXMgdGhlICJF bGVwaGFudCBkZXMgQXJjaGl2ZXMiIGluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIGp1c3Qg bGlrZSB0aGUgIk3DqHRyZSBkZXMgQXJjaGl2ZXMiIChhbHRob3VnaCBpdCBoYXMgYWxyZWFkeSBm aW5pc2hlZCBpdHMgcm9sZSksIGluIG9yZGVyIHRvIHVzZSB7bG8geGFudG99IGFzIGEgdW5pdCBp biBhIHByb3Bvc2l0aW9uLgoKCgohISEhISMgQ2Fubm90IGV4cHJlc3MgZWxlbWVudGFyeSBwYXJ0 aWNsZXMgd2l0aCBsbwoKQXMgbG9uZyBhcyB7bG8gYnJvZGF9IGlzIGludGVycHJldGVkIGFzIGEg cGx1cmFsIGNvbnN0YW50LCB0aGUgZm9sbG93aW5nIExvamJhbiBzZW50ZW5jZSBpcyBtZWFuaW5n bGVzczoKCgoKXmxvIGd1c2thJ3UgY3UgZ2F1IGptYWppIHNlcGknbyBsbyBsZW5qbyBnaSdlIHBh Z3JlIGxvIGZlbnJhfnBwfgoKfi9wcH4nJ1Bob3RvbnMgYXJlIGNvbmRlbnNlZCBieSBsZW5zZXMs IGFuZCBwYXNzIHRocm91Z2ggc2xpdHMuJydeCgoKCkFjdHVhbGx5LCBwaG90b25zIGFyZSBpbmRp dmlkdWFscywgYW5kIHdlIGNhbiBjb3VudCB0aGVtLCBidXQgd2UgY2Fubm90IGRpc3Rpbmd1aXNo IGVhY2ggb2YgdGhlbTogd2UgY2Fubm90IHJlZmVyIHRvIGEgc3BlY2lmaWMgcGhvdG9uLiBRdWFu dGlmaWNhdGlvbiBpcyBpbmRlZWQgc3VpdGFibGUgZm9yIGFyZ3VtZW50cyB0aGF0IHJlcHJlc2Vu dCBwYXJ0aWNsZXMgbGlrZSBwaG90b25zLiBIb3dldmVyLCBMb2piYW4gb2ZmaWNpYWxseSBkb2Vz IG5vdCBoYXZlIGEgcGx1cmFsIHF1YW50aWZpZXIsIGFuZCBjYW5ub3QgZXhwcmVzcyBxdWFudGlm aWNhdGlvbiBvZiAgc3VtdGkgdGhhdCBzYXRpc2ZpZXMgc2VsYnJpIGJvdGggY29sbGVjdGl2ZWx5 IGFuZCBkaXN0cmlidXRpdmVseS4gTW9yZW92ZXIsIGJlY2F1c2Uge2xvIGJyb2RhfSBpcyBvZmZp Y2lhbGx5IGFsd2F5cyBhIHBsdXJhbCBjb25zdGFudCwgdGhlcmUgaXMgbm8gcm9vbSB0byBpbnRl cnByZXQge2xvIGd1c2thJ3V9IGFzIGEgYm91bmQgcGx1cmFsIHZhcmlhYmxlLiBJbiBvcmRlciB0 byBzb2x2ZSB0aGUgcHJvYmxlbSwgd2Ugc2hvdWxkIHVzZSBhbiB1bm9mZmljaWFsIHBsdXJhbCBx dWFudGlmaWVyIHtzdSdvaX0gc3VnZ2VzdGVkIGJ5ICgoeG9yeGVzfGxhIHhvcnhlcykpLgoKCgpe c3Unb2kgZGEgcG9pIGtlJ2EgZ3Vza2EndSBjdSBnYXUgam1hamkgc2VwaSdvIGxvIGxlbmpvIGdp J2UgcGFncmUgbG8gZmVucmFeCgoKCiEhISEhIyBIb3cgdG8gaW50ZXJwcmV0IGEgcHJldmFpbGlu ZyB2aWV3CgpUaGUgZm9sbG93aW5nIGV4YW1wbGUgaXMgZ2l2ZW4gb24gKChCUEZLIFNlY3Rpb246 IGdhZHJpfEJQRksncyBnYWRyaSBwYWdlKSk6CgoKCl5sbyBwYSBwaXhyYSBjdSBzZSB2YW1qaSBs byBraSdvIHZhbHNpfnBwfgoKfi9wcH4nJ09uZSBwaWN0dXJlIGlzIHdvcnRoIGEgdGhvdXNhbmQg d29yZHMuJycgXgoKCgpFdmVuIGluIHN1Y2ggYSBzZW50ZW5jZSB0aGF0IHNlZW1zIGEgcHJldmFp bGluZyB2aWV3LCB7bG8gcGEgcGl4cmF9IGFuZCB7bG8ga2knbyB2YWxzaX0gYXJlIGludGVycHJl dGVkIGFzIHJlZmVycmluZyB0byBzb21ldGhpbmcuIFdlIHNob3VsZCBwcmVwYXJlIHNvbWUgcmVm ZXJlbnRzIG9mIHN1bXRpIG9mIGEgcHJldmFpbGluZyB2aWV3IGluIHRoZSB1bml2ZXJzZSBvZiBk aXNjb3Vyc2UuCgoKCkludHVpdGlvbmFsbHkgc3BlYWtpbmcsIHdlIG1heSB1c2Uge2xvJ2V9IGlu c3RlYWQgb2Yge2xvfSwgYnV0IHdlIGNhbm5vdCB5ZXQgZXhwbGFpbiB7bG8nZX0gZnJvbSBhIGxv Z2ljYWwgcG9pbnQgb2YgdmlldyBiZWNhdXNlICgoQlBGSyBTZWN0aW9uOiBUeXBpY2Fsc3xhY3R1 YWxseSB0aGVyZSBpcyBubyBvZmZpY2lhbCBjb25jbHVzaW9uIGFib3V0IHJlbGF0aW9uIGJldHdl ZW4ge2xvJ2V9IGFuZCB7bG99KSkuCgoKCkFzIGEgbWV0aG9kIG9mIGF2b2lkaW5nIG1lbnRpb24g b2YgYSByZWZlcmVudCBpbiBhbiBleHByZXNzaW9uIG9mIHByZXZhaWxpbmcgdmlldywgd2UgbWF5 IHB1dCB0aGUgd2hvbGUgcHJvcG9zaXRpb24gaW4gTlUgY2xhdXNlLiBJbiBmYWN0LCB0cnV0aCB2 YWx1ZSBvZiBhIHByb3Bvc2l0aW9uIGluIE5VIGNsYXVzZSBkb2VzIG5vdCBpbmZsdWVuY2UgdHJ1 dGggdmFsdWUgb2YgdGhlIG91dGVyIHByb3Bvc2l0aW9uIChyZWZlcmVudGlhbGx5IG9wYXF1ZTsg dGhpcyB0b3BpYyBpcyByZWxhdGVkIHRvIFtodHRwOi8vZGFnLmdpdGh1Yi5pby9jbGwvOS83L3xD TEw5LjddKS4gSW4gb3RoZXIgd29yZHMsIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2Ugb2YgYSBw cm9wb3NpdGlvbiBpbiBOVSBjbGF1c2UgaXMgZGlmZmVyZW50IGZyb20gdGhlIHVuaXZlcnNlIG9m IGRpc2NvdXJzZSBvZiBhIHByb3Bvc2l0aW9uIG91dCBvZiBOVS4KCklmIHdlIGFjY2VwdCB0aGlz IG1ldGhvZCwgdGhlIGV4YW1wbGUgYWJvdmUgd2lsbCBiZSBtb2RpZmllZCwgdXNpbmcge3NpJ299 IGZvciBleGFtcGxlLCBhcyBmb2xsb3dzOgoKCgpec2knbyBsbyBwYSBwaXhyYSBjdSBzZSB2YW1q aSBsbyBraSdvIHZhbHNpIH5wcH4KCn4vcHB+JydJcyBhbiBpZGVhIHRoYXQgb25lIHBpY3R1cmUg aXMgd29ydGggYSB0aG91c2FuZCB3b3Jkcy4nJ14KCgoKd2hlcmUgeDEgb2Yge3NpJ299IGlzIGlt cGxpY2l0IHt6bydlfSwgd2hpY2ggaGFzIGEgcmVmZXJlbnQgaW4gdGhlIHVuaXZlcnNlIG9mIGRp c2NvdXJzZS4gQXMgYW4gaW50ZXJwcmV0YXRpb24gb2YgYSBwcmV2YWlsaW5nIHZpZXcsIHN1cHBv c2luZyBhIHJlZmVyZW50IG9mIHgxIG9mIHtzaSdvfSBpcyBtb3JlIG5hdHVyYWwgdGhhbiBzdXBw b3NpbmcgYSByZWZlcmVudCBvZiB7bG8gcGEgcGl4cmF9IG9yIHtsbyBraSdvIHZhbHNpfS4KCihT dWNoIGEgYnJpZGkgd2l0aCBubyB0ZXJicmkgaXMgY2FsbGVkICJvYnNlcnZhdGl2ZSIgaW4gKChU aGUgQ29tcGxldGUgTG9qYmFuIExhbmd1YWdlKSksIGJ1dCB0aGlzIGludGVycHJldGF0aW9uIGlz IG5vdCBzdWl0YWJsZSBoZXJlLCBiZWNhdXNlIHRoaXMgaXMgbm90IHRoZSB1dHRlcmFuY2UgdGhh dCBpcyBhbHdheXMgY2F1c2VkIGJ5IGEgc3BlY2lmaWMgc3RpbXVsdXMuKQoKCgohISEhISMgSG93 IHRvIGV4cHJlc3MgZnJlZSB2YXJpYWJsZXMKCkFzIGEgY3VzdG9tLCBrbydWL2ZvJ1Ygc2VyaWVz IG9mIEtPaEE0IGFyZSB1c2VkIGFzIGZyZWUgdmFyaWFibGVzIGluIGRlZmluaXRpb25zIG9mIHdv cmRzIG9yIHNvbWV0aGluZy4gSG93ZXZlciwgdGhleSBhcmUgYWN0dWFsbHkgcGx1cmFsIGNvbnN0 YW50cy4KCklmIHdlIGFiYW5kb24gdGhpcyBjdXN0b20sIHtrZSdhfSBhbmQge2NlJ3V9IGFyZSBz dWl0YWJsZSBmb3IgZXhwcmVzc2lvbiB3aXRoIGZyZWUgdmFyaWFibGVzIChvcGVuIHNlbnRlbmNl KSwgYmVjYXVzZSB0aGUgdHJ1dGggdmFsdWUgb2YgYnJpZGkgaW4gd2hpY2gge2tlJ2F9IG9yIHtj ZSd1fSBpcyB1c2VkIGlzIGluZGVmaW5pdGUuIAoKSW4gYSBicmlkaSBpbiB3aGljaCB7a2UnYX0g YXBwZWFycyB0d28gdGltZXMgb3IgbW9yZSwgdGhlc2Uge2tlJ2F9cyBhcmUgcmVnYXJkZWQgYXMg cmVwcmVzZW50aW5nIGFuIGlkZW50aWNhbCBzdW10aToKCl5kYSBwb2kga2UnYSBneSB4bHVyYSBr ZSdhIGN1IHBhbmNpIGxvIGthJ2Ugc2UgY2l0a2F+cHB+Cgp+L3Bwfn4tLX4gKChsbyBudSBiaW54 bykpXgoKT24gdGhlIG90aGVyIGhhbmQsIGluIGEgYnJpZGkgaW4gd2hpY2gge2NlJ3V9IGFwcGVh cnMgdHdvIHRpbWVzIG9yIG1vcmUsIHRoZXNlIHtjZSd1fXMgYXJlIG5vdCBuZWNlc3NhcmlseSBy ZWdhcmRlZCBhcyByZXByZXNlbnRpbmcgYW4gaWRlbnRpY2FsIHN1bXRpOgoKXmxvIG1hbXRhIGpv J3UgbG8gbWVuc2kgY3Ugc2lteHUgbG8ga2EgY2UndSBjaXNtYSBmYSdhIGNlJ3V+cHB+Cgp+L3Bw fn4tLX4gKChsbyBudSBiaW54bykpXgoKQ29uc2lkZXJpbmcgdGhlc2UgcHJvcGVydGllcywgaW4g b3JkZXIgdG8gZXhwcmVzcyBhbiBvcGVuIHNlbnRlbmNlIHdpdGggZnJlZSB2YXJpYWJsZXMgaW4g bm8gY29udGV4dCwge2NlJ3V9IGlzIG1vcmUgY29udmVuaWVudCB0aGFuIHtrZSdhfSB3aGljaCBo YXMgcmVzdHJpY3Rpb24gb2YgaWRlbnRpY2FsIHN1bXRpLgoKXmNlJ3UgY2UndSBjaXRrYX5wcH4K Cn4vcHB+JydBIGVhdHMgQi4nJyAoT3BlbiBzZW50ZW5jZSwgdHJ1dGggdmFsdWUgaW5kZWZpbml0 ZS4pXgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCldp a2luZXVyb3RpYyBtYWlsaW5nIGxpc3QKV2lraW5ldXJvdGljQGxvamJhbi5vcmcKaHR0cDovL21h aWwubG9qYmFuLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3dpa2luZXVyb3RpYwo=