Received: from localhost ([::1]:43183 helo=stodi.digitalkingdom.org) by stodi.digitalkingdom.org with esmtp (Exim 4.80.1) (envelope-from ) id 1WrcVF-0000IH-AV; Mon, 02 Jun 2014 17:22:57 -0700 Received: from 173-13-139-235-sfba.hfc.comcastbusiness.net ([173.13.139.235]:38061 helo=jukni.digitalkingdom.org) by stodi.digitalkingdom.org with smtp (Exim 4.80.1) (envelope-from ) id 1WrcV4-0000I7-M8 for wikineurotic@lojban.org; Mon, 02 Jun 2014 17:22:55 -0700 Received: by jukni.digitalkingdom.org (sSMTP sendmail emulation); Mon, 02 Jun 2014 17:22:46 -0700 From: "Apache" Date: Mon, 02 Jun 2014 17:22:46 -0700 To: wikineurotic@lojban.org X-PHP-Originating-Script: 48:htmlMimeMail.php MIME-Version: 1.0 Message-ID: X-Spam-Score: 0.5 (/) X-Spam_score: 0.5 X-Spam_score_int: 5 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 gadri: an unofficial commentary from a logical point of view was changed by guskant at 00:22 UTC Comment: fix orthography You can view the page by following this link: http://www.lojban.org/tiki/gadri%3A%20an%20unofficial%20commentary%20from%20a%20logical%20point%20of%20view [...] Content analysis details: (0.5 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 1.4 RCVD_IN_BRBL_LASTEXT RBL: RCVD_IN_BRBL_LASTEXT [173.13.139.235 listed in bb.barracudacentral.org] -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] 1.0 RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS 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 VGhlIHBhZ2UgZ2Fkcmk6IGFuIHVub2ZmaWNpYWwgY29tbWVudGFyeSBmcm9tIGEgbG9naWNhbCBw b2ludCBvZiB2aWV3IHdhcyBjaGFuZ2VkIGJ5IGd1c2thbnQgYXQgMDA6MjIgVVRDCkNvbW1lbnQ6 IGZpeCBvcnRob2dyYXBoeQoKWW91IGNhbiB2aWV3IHRoZSBwYWdlIGJ5IGZvbGxvd2luZyB0aGlz IGxpbms6CiAKaHR0cDovL3d3dy5sb2piYW4ub3JnL3Rpa2kvZ2FkcmklM0ElMjBhbiUyMHVub2Zm aWNpYWwlMjBjb21tZW50YXJ5JTIwZnJvbSUyMGElMjBsb2dpY2FsJTIwcG9pbnQlMjBvZiUyMHZp ZXcKCllvdSBjYW4gdmlldyBhIGRpZmYgYmFjayB0byB0aGUgcHJldmlvdXMgdmVyc2lvbiBieSBm b2xsb3dpbmcgdGhpcyBsaW5rOiAKaHR0cDovL3d3dy5sb2piYW4ub3JnL3Rpa2kvdGlraS1wYWdl aGlzdG9yeS5waHA/cGFnZT1nYWRyaSUzQSUyMGFuJTIwdW5vZmZpY2lhbCUyMGNvbW1lbnRhcnkl MjBmcm9tJTIwYSUyMGxvZ2ljYWwlMjBwb2ludCUyMG9mJTIwdmlldyZjb21wYXJlPTEmb2xkdmVy PTE4Jm5ld3Zlcj0xOQoKCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqClRoZSBjaGFuZ2VzIGluIHRoaXMgdmVyc2lvbiBmb2xsb3cgYmVs b3csIGZvbGxvd2VkIGFmdGVyIGJ5IHRoZSBjdXJyZW50IGZ1bGwgcGFnZSB0ZXh0LgoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKCist Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r CkBAIC1MaW5lczogOTEtOTUgY2hhbmdlZCB0byArTGluZXM6IDkxLTk1IEBACistKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rClRoZSBwcmVk aWNhdGUge2p1a3BhfSAoY29vaykgY2FuIGJlIGludGVycHJldGVkIGNvbGxlY3RpdmVseSBhbmQv b3IgZGlzdHJpYnV0aXZlbHksIGJ1dCB0aGUgcGx1cmFsIGNvbnN0YW50IHtieSBqbyd1IGN5fSBz YXlzIG5vdGhpbmcgYWJvdXQgd2hldGhlciBpdCBzYXRpc2ZpZXMge2p1a3BhfSBjb2xsZWN0aXZl bHkgYW5kL29yIGRpc3RyaWJ1dGl2ZWx5LiBJZiB3ZSB3YW50IHRvIG1ha2UgZXhwbGljaXQgdGhh dCB0aGV5IGNvb2tlZCAiY29sbGVjdGl2ZWx5Iiwgd2Ugc2F5IHtieSBqb2kgY3l9IHVzaW5nIHtq b2l9IHRoYXQgd2lsbCBiZSBkaXNjdXNzZWQgaW4gKCh8I1JlbGF0aW9uX2JldHdlZW5fam9fdV9q b2lfY2VfYW5kX2dhZHJpfFNlY3Rpb24gMy40KSksIG9yIHtsdSdvIGJ5IGpvJ3UgY3l9IHVzaW5n IHtsdSdvfSB0aGF0IHdpbGwgYmUgZGlzY3Vzc2VkIGluICgofCNSZWxhdGlvbl9iZXR3ZWVuX2x1 X2FfbHVfb19sdV9pX2FuZF9nYWRyaXxTZWN0aW9uIDMuMykpLiBDb250cmFzdGl2ZWx5LCBpZiB3 ZSB3YW50IHRvIG1ha2UgZXhwbGljaXQgdGhhdCB0aGV5IGNvb2tlZCAiZGlzdHJpYnV0aXZlbHki LCB3ZSBzYXkgIHtsdSdhIGJ5IGpvJ3UgY3l9IHVzaW5nIHtsdSdhfSB0aGF0IHdpbGwgYmUgZGlz Y3Vzc2VkIGluICgofCNSZWxhdGlvbl9iZXR3ZWVuX2x1X2FfbHVfb19sdV9pX2FuZF9nYWRyaXxT ZWN0aW9uIDMuMykpLiBIb3dldmVyLCB0aGVzZSBhcmd1bWVudHMgdGhhdCBzYXlzIGV4cGxpY2l0 bHkgY29sbGVjdGl2aXR5IGFuZC9vciBkaXN0cmlidXRpdml0eSBhcmUgbm90IGFsd2F5cyBjb21t b25seSB1c2VkIGZvciBvdGhlciBwcmVkaWNhdGVzIGxpa2Uge2ptYWppfSBvciB7Y2l0a2F9LgoK LSBUaGUgZGlhZ3JhbSBiZWxsb3cgc2hvd3MgcmVsYXRpb25zIGNvbnN0cnVjdGVkIHdpdGgge21l fSBhbmQge2pvJ3V9IHJlcHJlc2VudGVkIHdpdGggYSBkaXJlY3RlZCBncmFwaCwgaW4gd2hpY2gg dGhlIHZlcnRpY2VzIHJlcHJlc2VudCBwbHVyYWwgY29uc3RhbnRzLgorIFRoZSBkaWFncmFtIGJl bG93IHNob3dzIHJlbGF0aW9ucyBjb25zdHJ1Y3RlZCB3aXRoIHttZX0gYW5kIHtqbyd1fSByZXBy ZXNlbnRlZCB3aXRoIGEgZGlyZWN0ZWQgZ3JhcGgsIGluIHdoaWNoIHRoZSB2ZXJ0aWNlcyByZXBy ZXNlbnQgcGx1cmFsIGNvbnN0YW50cy4KCntpbWcgZmlsZUlkPSI3IiB0aHVtYj0ieSIgcmVsPSJi b3hbZ10ifQoKCgoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq 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 IF9fcGx1cmFsIHF1YW50aWZpY2F0aW9uX18uCgoKClBsdXJhbCBxdWFudGlmaWNhdGlvbiB3YXMg aW52ZW50ZWQgaW4gb3JkZXIgdG8gZmFjaWxpdGF0ZSBleHByZXNzaW9uIG9mIHByb3Bvc2l0aW9u IHRoYXQgaXMgbWVhbmluZ2Z1bCBvbmx5IHdoZW4gdGhlIHJlZmVyZW50IG9mIGFuIGFyZ3VtZW50 IGlzIHBsdXJhbC4gCgpeCgo7RXhhbXBsZTogUGVvcGxlIGdhdGhlcmVkLCBjb29rZWQgYW5kIGF0 ZS5eCgpMb2dpY2FsbHksIHRoaXMgc2VudGVuY2UgaXMgYSBwcm9wb3NpdGlvbiB0aGF0IGNvbnNp c3RzIG9mIGEgY29uc3RhbnQgInBlb3BsZSIgYW5kIHRocmVlIHByZWRpY2F0ZXMgImdhdGhlcmVk IiAiY29va2VkIiBhbmQgImF0ZSIuIFRoZSBwcmVkaWNhdGVzIGFyZSBkaWZmZXJlbnQgZnJvbSBl YWNoIG90aGVyIGluIHByb3BlcnR5IG9mIHRyZWF0aW5nIHRoZSBhcmd1bWVudC4gV2Ugd2lsbCBk aXNjdXNzIHByZWNpc2VseSBob3cgdGhlIGFyZ3VtZW50IGluIHRoZSBzZW50ZW5jZSBpcyB0cmVh dGVkLgoKCgohISEjIENvbGxlY3Rpdml0eSBhbmQgZGlzdHJpYnV0aXZpdHkKCgoKQ29uc2lkZXIg dGhlIGV4cHJlc3Npb24gInBlb3BsZSBnYXRoZXJlZCI6IGJhc2VkIG9uIHRoZSBtZWFuaW5nIG9m IHRoZSBwcmVkaWNhdGUgImdhdGhlcmVkIiwgdGhlIGNvbnN0YW50ICJwZW9wbGUiIHNob3VsZCBy ZWZlciB0byBwbHVyYWwgcGVvcGxlLgoKV2hlbiByZWZlcmVudHMgb2YgYW4gYXJndW1lbnQgc2F0 aXNmeSBhIHByZWRpY2F0ZSBhcyBjb2xsZWN0aXZlIHBsdXJhbCB0aGluZ3MgbGlrZSB0aGlzLCB3 ZSBleHByZXNzIGl0IGFzICJhbiBhcmd1bWVudCBzYXRpc2ZpZXMgYW4gcHJlZGljYXRlIF9fY29s bGVjdGl2ZWx5X18iLCBvciAidGhlIGFyZ3VtZW50IGhhcyBfX2NvbGxlY3Rpdml0eV9fIi4KCgoK QXMgZm9yIGVhY2ggb2YgdGhlIHBsdXJhbCBwZW9wbGUgcmVmZXJyZWQgdG8gYnkgdGhlIGNvbnN0 YW50LCAgZWFjaCBzZW50ZW5jZSBzdWNoIHRoYXQgIkFsaWNlIGdhdGhlcmVkIiwgIkJvYiBnYXRo ZXJlZCIgYW5kIHNvIG9uIGlzIG5vbnNlbnNlLgoKV2hlbiBlYWNoIHJlZmVyZW50IHJlZmVycmVk IHRvIGJ5IGEgY29uc3RhbnQgY2Fubm90IHNhdGlzZnkgYSBwcmVkaWNhdGUgYWxvbmUsIHdlIGV4 cHJlc3MgaXQgYXMgImFuIGFyZ3VtZW50IHNhdGlzZmllcyBhbiBwcmVkaWNhdGUgX19ub24tZGlz dHJpYnV0aXZlbHlfXyIuCgoKCk9uIHRoZSBvdGhlciBoYW5kLCBpbiB0aGUgZXhwcmVzc2lvbiAi cGVvcGxlIGF0ZSIsIGFsdGhvdWdoIHRoZSBjb25zdGFudCAicGVvcGxlIiByZWZlcnMgdG8gcGx1 cmFsIHBlb3BsZSwgdGhlIHByZWRpY2F0ZSAiYXRlIiBpcyBzYXRpc2ZpZWQgYnkgZWFjaCBwZXJz b24uIFRoYXQgaXMgdG8gc2F5LCBlYWNoIHNlbnRlbmNlIHN1Y2ggdGhhdCAiQWxpY2UgYXRlIiwg IkJvYiBhdGUiIGFuZCBzbyBvbiBpcyBtZWFuaW5nZnVsLgoKV2hlbiBlYWNoIHJlZmVyZW50IHJl ZmVycmVkIHRvIGJ5IGEgY29uc3RhbnQgc2F0aXNmaWVzIGEgcHJlZGljYXRlIGFsb25lLCB3ZSBl eHByZXNzIGl0IGFzICJhbiBhcmd1bWVudCBzYXRpc2ZpZXMgYW4gcHJlZGljYXRlIF9fZGlzdHJp YnV0aXZlbHlfXyIsIG9yICJ0aGUgYXJndW1lbnQgaGFzIF9fZGlzdHJpYnV0aXZpdHlfXyIuCgoK Ck1vcmVvdmVyLCBpZiB0aGUgcHJlZGljYXRlICJlYXQiIG1lYW5zIGFuIGFjdCAicHV0IGZvb2Qg aW4gYSBtb3V0aCwgYml0ZSBpdCwgbGV0IGl0IHBhc3MgdGhyb3VnaCBhbiBlc29waGFndXMgYW5k IHNlbmQgaXQgdG8gYSBzdG9tYWNoIiwgaXQgaXMgaGFyZGx5IGNvbnNpZGVyZWQgdGhhdCAicGVv cGxlIiBzYXRpc2ZpZXMgImVhdCIgY29sbGVjdGl2ZWx5LiBFdmVuIGlmIGEgcGVyc29uIGhlbHBz IGFub3RoZXIgdG8gZWF0LCB0aGUgaGVscGVyIGlzIG5vdCBlYXRlciwgYW5kIHRoZSBlYXRlciBp cyBub3QgY29sbGVjdGl2ZSBwZW9wbGUgYnV0IGFuIGluZGl2aWR1YWwuIAoKV2hlbiBlYWNoIHJl ZmVyZW50IHJlZmVycmVkIHRvIGJ5IGEgY29uc3RhbnQgY2Fubm90IHNhdGlzZnkgYSBwcmVkaWNh dGUgYXMgY29sbGVjdGl2ZSBwbHVyYWwgdGhpbmdzLCB3ZSBleHByZXNzIGl0IGFzICJhbiBhcmd1 bWVudCBzYXRpc2ZpZXMgYW4gcHJlZGljYXRlIF9fbm9uLWNvbGxlY3RpdmVseV9fIi4KCihIb3dl dmVyLCBpdCBpcyBwb3NzaWJsZSB0byBpbnRlcnByZXQgdGhlIHByZWRpY2F0ZSAiZWF0IiBhcyBp bnZvbHZpbmcgY29sbGVjdGl2aXR5LiBGb3IgZXhhbXBsZSwgaWYgaXQgaXMgaW50ZXJwcmV0ZWQg YXMgInB1dCBmb29kIGF3YXkgZnJvbSBvdXRzaWRlIHRvIGluc2lkZSBvZiBib2R5Iiwgd2UgbWF5 IHNheSAiY29sbGVjdGl2ZWx5IGVhdCIgdG8gZXhwcmVzcyBhbiBldmVudCB0aGF0IHBlb3BsZSBl YXQgYW5kIGNvbnN1bWUgYSBtYXNzIG9mIGZvb2QgdG9nZXRoZXIuKQoKCgpUaGVyZSBhcmUgYWxz byBwcmVkaWNhdGVzIHRoYXQgYWxsb3cgYm90aCBwcm9wZXJ0aWVzICJjb2xsZWN0aXZpdHkiIGFu ZCAiZGlzdHJpYnV0aXZpdHkiLgoKIlBlb3BsZSBjb29rZWQiIG1heSBtZWFuIHRoYXQgcGx1cmFs IHBlb3BsZSBrbmVhZCBwYXN0ZSBvZiBwaXp6YSB0b2dldGhlciwgYW5kIHRoYXQgZWFjaCBvZiB0 aGVtIGlzIGluIGNoYXJnZSBvZiBjYWtlcyBvciBwb3QtYXUtZmV1LiBJbiB0aGlzIGNhc2UsIHRo ZSBjb25zdGFudCAicGVvcGxlIiByZWZlcnMgdG8gcGx1cmFsIHBlb3BsZSwgYW5kIHRoZXkgY29v a2VkIHBpenphIGNvbGxlY3RpdmVseSwgY2FrZXMgYW5kIHBvdC1hdS1mZXUgZGlzdHJpYnV0aXZl bHkuIFRoZSBjb25zdGFudCAicGVvcGxlIiB0aHVzIHNhdGlzZmllcyB0aGUgcHJlZGljYXRlICJj b29rZWQiIGNvbGxlY3RpdmVseSBhbmQgZGlzdHJpYnV0aXZlbHkuCgoKCk5vdGUgdGhhdCB0aGUg Y29uc3RhbnQgInBlb3BsZSIgcmVmZXJzIHRvIHdoYXQgaXMgY29tbW9uIHRvIHRocmVlIHByZWRp Y2F0ZXMgImdhdGhlcmVkIiwgImNvb2tlZCIgYW5kICJhdGUiLiBObyBtYXR0ZXIgaWYgYSBjb25z dGFudCBzYXRpc2ZpZXMgcHJlZGljYXRlcyBjb2xsZWN0aXZlbHkgb3IgZGlzdHJpYnV0aXZlbHks IHRoZSByZWZlcmVudCBpcyB0aGUgc2FtZS4KCgoKSWYgd2UgdXNlIGFuIGFyZ3VtZW50ICJhIHNl dCBvZiBwZW9wbGUiIGluIHRoZSBjYXNlIG9mIHNhdGlzZnlpbmcgYSBwcmVkaWNhdGUgY29sbGVj dGl2ZWx5LCBpdCBtaWdodCBiZSBwb3NzaWJsZSB0byBpbnRlcnByZXQgdGhlIHByZWRpY2F0ZSAi Z2F0aGVyZWQiIHNvIHRoYXQgdGhlIGFyZ3VtZW50IHNhdGlzZmllcyBpdCwgYnV0IHRoZSBzYW1l IGFyZ3VtZW50IGNhbm5vdCBzYXRpc2Z5IHRoZSBwcmVkaWNhdGUgImF0ZSIsIGJlY2F1c2Ugd2Ug Y2FuIGhhcmRseSBzYXkgdGhhdCBhIHNldCBvZiBwZW9wbGUsIHdoaWNoIGlzIGFuIGFic3RyYWN0 IGVudGl0eSwgcGVyZm9ybXMgImF0ZSIuCgoKClVzaW5nIHBsdXJhbCBjb25zdGFudHMgYW5kIHBs dXJhbCB2YXJpYWJsZXMgdGhhdCB3aWxsIGJlIGRpc2N1c3NlZCBpbiB0aGUgZm9sbG93aW5nIHNl Y3Rpb25zLCB3ZSBjYW4gZXhwcmVzcyBwbHVyYWwgdGhpbmdzIGluIHRoZSBmb3JtIG9mIHByZWRp Y2F0ZSBsb2dpYyB3aXRob3V0IHVzaW5nIHNldHMuCgoKCiEhISMgUGx1cmFsIGNvbnN0YW50IGFu ZCBwbHVyYWwgdmFyaWFibGUKCkFuIGFyZ3VtZW50IHRoYXQgcmVmZXJzIHRvIHJlZmVyZW50IHdp dGhvdXQgaW50cm9kdWNpbmcgYSBub3Rpb24gb2Ygc2V0cywgd2l0aG91dCBkaXN0aW5ndWlzaGlu ZyBjb2xsZWN0aXZpdHkgYW5kIGRpc3RyaWJ1dGl2aXR5LCB3aXRob3V0IGRpc3Rpbmd1aXNoaW5n IHBsdXJhbGl0eSBhbmQgc2luZ3VsYXJpdHksIGlzIGNhbGxlZCBfX3BsdXJhbCBjb25zdGFudF9f LgoKQSB2YXJpYWJsZSBmb3Igd2hpY2ggYSBwbHVyYWwgY29uc3RhbnQgY2FuIGJlIHN1YnN0aXR1 dGVkIGlzIGNhbGxlZCBfX3BsdXJhbCB2YXJpYWJsZV9fLgoKUXVhbnRpZnlpbmcgYSBwbHVyYWwg dmFyaWFibGUgaXMgY2FsbGVkIF9fcGx1cmFsIHF1YW50aWZpY2F0aW9uX18uIEEgcXVhbnRpZmll ciB1c2VkIGZvciBwbHVyYWwgcXVhbnRpZmljYXRpb24gaXMgY2FsbGVkIF9fcGx1cmFsIHF1YW50 aWZpZXJfXy4gQSBwbHVyYWwgdmFyaWFibGUgcHJlZml4ZWQgd2l0aCBhIHBsdXJhbCBxdWFudGlm aWVyIGlzIGNhbGxlZCBhIF9fYm91bmQgcGx1cmFsIHZhcmlhYmxlX18uCgoKCiEhISEjIG1lIGFu ZCBqbyd1CgpXZSBpbnRyb2R1Y2UgcmVsYXRpb25zIGJldHdlZW4gcGx1cmFsIGNvbnN0YW50cyBh bmQgcGx1cmFsIHZhcmlhYmxlczoge21lfSBhbmQge2pvJ3V9LgoKCgp8fAoKWCBtZSBZIChtZSd1 KSB+aHN+fH5oc34gWCBpcyBhbW9uZyBZCgp8fAoKWCBhbmQgWSByZXByZXNlbnQgaGVyZSBwbHVy YWwgY29uc3RhbnRzIG9yIHBsdXJhbCB2YXJpYWJsZXMuIEEgY2x1c3RlciB7bWUgWSAobWUndSl9 IGlzIGEgc2VsYnJpIGluIExvamJhbiBncmFtbWFyLiB7bWUndX0gaXMgYW4gZWxpZGFibGUgdGVy bWluYXRvciBvZiBzdHJ1Y3R1cmUgYmVnaW5uaW5nIHdpdGgge21lfS4KCgoKe21lfSBoYXMgdGhl IGZvbGxvd2luZyBwcm9wZXJ0aWVzIHdpdGggYXJiaXRyYXJ5IGFyZ3VtZW50cyBYLCBZIGFuZCBa OgoKIyBYIG1lIFggKHJlZmxleGl2aXR5KQoKIyBYIG1lIFkgaWplYm8gWSBtZSBaIGluYWphIFgg bWUgWiAodHJhbnNpdGl2aXR5KQoKIyBYIG1lIFkgaWplYm8gWSBtZSBYIGlqbyBYIGR1IFkgKGlk ZW50aXR5KQoKVGhlIHByb3BlcnR5IDMgbWVhbnMgdGhhdCB0aGUgaWRlbnRpdHkgYmV0d2VlbiBy ZWZlcmVudHMgb2YgWCBhbmQgWSBpcyByZXByZXNlbnRlZCB3aXRoIHttZX0sIGFzIGEgcmVsYXRp b24gdGhhdCB7WCBtZSBZIGlqZWJvIFkgbWUgWH0uCgoKCnx8CgpYIGpvJ3UgWSB+aHN+fH5oc34g WCBhbmQgWQoKfHwKCntqbyd1fSBjb21iaW5lcyB0d28gYXJndW1lbnRzIFggYW5kIFkgaW50byBv bmUgcGx1cmFsIGNvbnN0YW50IG9yIG9uZSBwbHVyYWwgdmFyaWFibGUuCgoKCntqbyd1fSBoYXMg dGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIHdpdGggYXJiaXRyYXJ5IGFyZ3VtZW50cyBYIGFuZCBZ OgoKIyBYIG1lIFggam8ndSBZCgojIFggam8ndSBZIGR1IFkgam8ndSBYCgojIFggam8ndSBYIGR1 IFgKClRoZSBwcm9wZXJ0eSAyIG1lYW5zIHRoYXQgdGhlIHJlZmVyZW50IG9mIHRoZSB3aG9sZSBh cmd1bWVudCBkb2VzIG5vdCB2YXJ5IHdoZW4gdHdvIGFyZ3VtZW50cyBjb21iaW5lZCBieSB7am8n dX0gYXJlIGludGVyY2hhbmdlZCB3aXRoIGVhY2ggb3RoZXIuIFRoZSBwcm9wZXJ0eSAzIG1lYW5z IHRoYXQge2pvJ3V9IGRvZXMgbm90IGFkZCBhbnkgcmVmZXJlbnQgd2hlbiBpdCBjb21iaW5lcyBh biBhcmd1bWVudCB3aXRoIGl0c2VsZi4KCgoKVXNpbmcge2pvJ3V9LCB0aGUgZm9sbG93aW5nIGV4 cHJlc3Npb24gaXMgcG9zc2libGU6CgpeCgo7RXhhbXBsZTogQiBhbmQgQyBnYXRoZXJlZCwgY29v a2VkIGFuZCBhdGUuCgo7OiBieSBqbyd1IGN5IGptYWppIGdpJ2UganVrcGEgZ2knZSBjaXRrYV4K CkVhY2ggb2Yge2J5fSBhbmQge2N5fSBpcyBhIHBsdXJhbCBjb25zdGFudC4KCgoKVGhlIHByZWRp Y2F0ZSB7anVrcGF9IChjb29rKSBjYW4gYmUgaW50ZXJwcmV0ZWQgY29sbGVjdGl2ZWx5IGFuZC9v ciBkaXN0cmlidXRpdmVseSwgYnV0IHRoZSBwbHVyYWwgY29uc3RhbnQge2J5IGpvJ3UgY3l9IHNh eXMgbm90aGluZyBhYm91dCB3aGV0aGVyIGl0IHNhdGlzZmllcyB7anVrcGF9IGNvbGxlY3RpdmVs eSBhbmQvb3IgZGlzdHJpYnV0aXZlbHkuIElmIHdlIHdhbnQgdG8gbWFrZSBleHBsaWNpdCB0aGF0 IHRoZXkgY29va2VkICJjb2xsZWN0aXZlbHkiLCB3ZSBzYXkge2J5IGpvaSBjeX0gdXNpbmcge2pv aX0gdGhhdCB3aWxsIGJlIGRpc2N1c3NlZCBpbiAoKHwjUmVsYXRpb25fYmV0d2Vlbl9qb191X2pv aV9jZV9hbmRfZ2Fkcml8U2VjdGlvbiAzLjQpKSwgb3Ige2x1J28gYnkgam8ndSBjeX0gdXNpbmcg e2x1J299IHRoYXQgd2lsbCBiZSBkaXNjdXNzZWQgaW4gKCh8I1JlbGF0aW9uX2JldHdlZW5fbHVf YV9sdV9vX2x1X2lfYW5kX2dhZHJpfFNlY3Rpb24gMy4zKSkuIENvbnRyYXN0aXZlbHksIGlmIHdl IHdhbnQgdG8gbWFrZSBleHBsaWNpdCB0aGF0IHRoZXkgY29va2VkICJkaXN0cmlidXRpdmVseSIs IHdlIHNheSAge2x1J2EgYnkgam8ndSBjeX0gdXNpbmcge2x1J2F9IHRoYXQgd2lsbCBiZSBkaXNj dXNzZWQgaW4gKCh8I1JlbGF0aW9uX2JldHdlZW5fbHVfYV9sdV9vX2x1X2lfYW5kX2dhZHJpfFNl Y3Rpb24gMy4zKSkuIEhvd2V2ZXIsIHRoZXNlIGFyZ3VtZW50cyB0aGF0IHNheXMgZXhwbGljaXRs eSBjb2xsZWN0aXZpdHkgYW5kL29yIGRpc3RyaWJ1dGl2aXR5IGFyZSBub3QgYWx3YXlzIGNvbW1v bmx5IHVzZWQgZm9yIG90aGVyIHByZWRpY2F0ZXMgbGlrZSB7am1haml9IG9yIHtjaXRrYX0uCgoK ClRoZSBkaWFncmFtIGJlbG93IHNob3dzIHJlbGF0aW9ucyBjb25zdHJ1Y3RlZCB3aXRoIHttZX0g YW5kIHtqbyd1fSByZXByZXNlbnRlZCB3aXRoIGEgZGlyZWN0ZWQgZ3JhcGgsIGluIHdoaWNoIHRo ZSB2ZXJ0aWNlcyByZXByZXNlbnQgcGx1cmFsIGNvbnN0YW50cy4KCgoKe2ltZyBmaWxlSWQ9Ijci IHRodW1iPSJ5IiByZWw9ImJveFtnXSJ9CgoKCiEhISEjIEluZGl2aWR1YWwKClJlZmVyZW50IG9m IGEgcGx1cmFsIGNvbnN0YW50IGlzIG5vdCBuZWNlc3NhcmlseSBwbHVyYWw6IGEgcGx1cmFsIGNv bnN0YW50IGNhbiByZWZlciB0byBvbmUgaW5kaXZpZHVhbC4KCl9fQW4gaW5kaXZpZHVhbF9fIGlz IGRlZmluZWQgYXMgZm9sbG93czoKCnx8CgpfX1ggaXMgYW4gaW5kaXZpZHVhbF9fIH5oc358fmhz fiA9Y2EnZSB+aHN+fH5oc34gcm8nb2kgZGEgcG9pIGtlJ2EgbWUgWCB6byd1IFggbWUgZGEKCnx8 CgoKCndoZXJlIF9fcm8nb2lfXyBpcyBhbiBleHBlcmltZW50YWwgY21hdm8gcHJvcG9zZWQgYnkg KCh4b3J4ZXN8bGEgeG9yeGVzKSksIHdoaWNoIGlzIGEgcGx1cmFsIHF1YW50aWZpZXIgbWVhbmlu ZyAiYWxsIi4gIHtybydvaSBkYX0gaXMgYSBib3VuZCBwbHVyYWwgdmFyaWFibGUgbWVhbmluZyAi Zm9yIGFsbCB0aGF0IGNhbiBiZSBzdWJzdGl0dXRlZCBmb3Ige2RhfSIuIFRoaXMgZGVmaW5pdGlv biBtZWFucyB0aGF0IFggaXMgY2FsbGVkIGFuIGluZGl2aWR1YWwgd2hlbiB0aGUgY29uZGl0aW9u ICJmb3IgYWxsIHtkYX0gdGhhdCBhcmUgYW1vbmcgWCwgWCBpcyBhbW9uZyB7ZGF9IiBpcyBzYXRp c2ZpZWQuIEluIG90aGVyIHdvcmRzLCAiaW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSwgbm90 aGluZyBvdGhlciB0aGFuIHtYfSBjYW4gYmUgc3Vic3RpdHV0ZWQgZm9yIHtkYX0gc3VjaCB0aGF0 IHtYIG1lIGRhfSIgaXMgZXhwcmVzc2VkIGJ5ICJYIGlzIGFuIGluZGl2aWR1YWwiLgoKCgpXaGVu IGVhY2ggb2YgWCBhbmQgWSBpcyBhbiBpbmRpdmlkdWFsIGFuZCBYIGlzIG5vdCBlcXVhbCB0byBZ LCB7WCBqbyd1IFl9IGlzIGNhbGxlZCBfX2luZGl2aWR1YWxzX18uIFdoZW4gZWFjaCBvZiBYIGFu ZCBZIGlzIGFuIGluZGl2aWR1YWwgb3IgaW5kaXZpZHVhbHMsIHtYIGpvJ3UgWX0gaXMgY2FsbGVk IGluZGl2aWR1YWxzIGFzIHdlbGwuCgoKCiEhISEjIERpZmZlcmVuY2UgYmV0d2VlbiBwbHVyYWwg YW5kIHNpbmd1bGFyCgpBIHBsdXJhbCBjb25zdGFudCB0aGF0IHJlZmVycyB0byBhIHNpbmdsZSBp bmRpdmlkdWFsIGlzIGNhbGxlZCBhIF9fc2luZ3VsYXIgY29uc3RhbnRfXy4KCgoKVW5sZXNzIFg9 WSBhbmQgWCBpcyBhbiBpbmRpdmlkdWFsLCBubyBtYXR0ZXIgd2hldGhlciBlYWNoIG9mIFggYW5k IFkgaXMgcGx1cmFsIG9yIHNpbmd1bGFyLCB7WCBqbyd1IFl9IGlzIG5vdCBhIHNpbmd1bGFyIGNv bnN0YW50LiBJdCBpcyBiZWNhdXNlIAoKXlggbWUgWCBqbyd1IFkgaWplbmFpIFggam8ndSBZIG1l IFheCgpob2xkcyB0cnVlLCBhbmQgdGhlbiB7WCBqbyd1IFl9IGRvZXMgbm90IHNhdGlzZnkgdGhl IGNvbmRpdGlvbiBvZiBhbiBpbmRpdmlkdWFsIHtybydvaSBkYSBwb2kga2UnYSBtZSBYIGpvJ3Ug WSB6byd1IFggam8ndSBZIG1lIGRhfS4KCgoKISEhISMgQm91bmQgc2luZ3VsYXIgdmFyaWFibGUK CldoZW4gdGhlIGRvbWFpbiBvZiBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZSBpcyByZXN0cmljdGVk IHRvIHdoYXQgaXMgYW4gaW5kaXZpZHVhbCwgdGhlIHZhcmlhYmxlIGlzIGNhbGxlZCBfX2JvdW5k IHNpbmd1bGFyIHZhcmlhYmxlX18uIEEgYm91bmQgc2luZ3VsYXIgdmFyaWFibGUgY2Fubm90IHRh a2UgbW9yZSB0aGFuIG9uZSBpbmRpdmlkdWFsIHZhbHVlIGF0IGEgdGltZS4KCntybyBkYX0gKGZv ciBhbGwge2RhfSkgYW5kIHtzdSdvIGRhfSAodGhlcmUgaXMgYXQgbGVhc3Qgb25lIHtkYX0pLCB3 aGljaCBhcmUgb2ZmaWNpYWxseSBkZWZpbmVkIGluIExvamJhbiwgYXJlIGJvdW5kIHNpbmd1bGFy IHZhcmlhYmxlcy4gVGhleSBjYW4gYmUgZGVmaW5lZCB3aXRoIGJvdW5kIHBsdXJhbCB2YXJpYWJs ZXMgYXMgZm9sbG93czoKCnx8CgpybyBkYSB+aHN+fH5oc34gcm8nb2kgZGEgcG9pIHJvJ29pIGRl IHBvaSBkZSBtZSBkYSB6byd1IGRhIG1lIGRlCgpzdSdvIGRhIH5oc358fmhzfiBzdSdvaSBkYSBw b2kgcm8nb2kgZGUgcG9pIGRlIG1lIGRhIHpvJ3UgZGEgbWUgZGUKCnx8CgpfX3N1J29pX18gaXMg YW4gZXhwZXJpbWVudGFsIGNtYXZvIHByb3Bvc2VkIGJ5ICgoeG9yeGVzfGxhIHhvcnhlcykpLCBh bmQgaXMgYSBwbHVyYWwgcXVhbnRpZmllciBtZWFuaW5nICJ0aGVyZSBpcy9hcmUiLiBOb3RlIHRo YXQge3N1J29pfSBpcyBfX25vdF9fICJhdCBsZWFzdCBvbmUiLiB7c3Unb2kgZGF9IGlzIGEgYm91 bmQgcGx1cmFsIHZhcmlhYmxlIG1lYW5pbmcgInRoZXJlIGlzL2FyZSB7ZGF9Ii4KCgoKISEhISMg V2hhdCBpcyBuZWl0aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzCgpSZWZlcmVudCBv ZiBhIHBsdXJhbCBjb25zdGFudCBpcyBub3QgbmVjZXNzYXJpbHkgYW4gaW5kaXZpZHVhbCBvciBp bmRpdmlkdWFscy4gCgpJdCBpcyBwb3NzaWJsZSB0byBkaXNjdXNzIGEgdW5pdmVyc2Ugb2YgZGlz Y291cnNlIHN1Y2ggdGhhdCByZWZlcmVudCBvZiBhIHBsdXJhbCBjb25zdGFudCBpcyBuZWl0aGVy IGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzLgoKCgpGb3IgZXhhbXBsZSwgY29uc2lkZXIg c3VjaCBhIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSBpbiB3aGljaCB0aGUgZm9sbG93aW5nIHByb3Bv c2l0aW9uIGhvbGRzIHRydWUuCgpecm8nb2kgZGEgcG9pIGtlJ2EgbWUga28nYSBrdSdvIHN1J29p IGRlIHpvJ3UgZGUgbWUgZGEgaWplbmFpIGRhIG1lIGRlIH4tLX4gQ29uZGl0aW9uXzFeCgpJbiBv dGhlciB3b3JkcywgaW4gdGhpcyB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIGZvciBhbGwgWCBzdWNo IHRoYXQge1ggbWUga28nYX0sIHRoZXJlIGlzIGFsd2F5cyBZIHN1Y2ggdGhhdCB7WSBtZSBYfSBh bmQgbm90IHtYIG1lIFl9LgoKCgo7VGhlb3JlbTogSW4gYSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2Ug d2hlcmUgQ29uZGl0aW9uXzEgaXMgdHJ1ZSwge2tvJ2F9IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVh bCBub3IgaW5kaXZpZHVhbHMuCgoKCjtQcm9vZjogU3VwcG9zZSB7a28nYX0gaXMgYW4gaW5kaXZp ZHVhbC4gRnJvbSB0aGUgZGVmaW5pdGlvbiBvZiAiYW4gaW5kaXZpZHVhbCI6Cgpecm8nb2kgZGEg cG9pIGtlJ2EgbWUga28nYSB6byd1IGtvJ2EgbWUgZGEgfi0tfiBTdXBwb3NpdGlvbl8yXgoKUmVw bGFjZSB7cm8nb2kgZGF9IHdpdGgge25ha3Ugc3Unb2kgZGEgbmFrdX06CgpebmFrdSBzdSdvaSBk YSBwb2kga2UnYSBtZSBrbydhIGt1J28gbmFrdSB6byd1IGtvJ2EgbWUgZGEgfi0tfiBTdXBwb3Np dGlvbl8yLTFeCgpNb3ZlIHRoZSBpbm5lci1tb3N0IHtuYWt1fSBpbnRvIHRoZSBwcm9wb3NpdGlv bjoKCl5uYWt1IHN1J29pIGRhIHBvaSBrZSdhIG1lIGtvJ2Egem8ndSBuYWt1IGtvJ2EgbWUgZGEg fi0tfiBTdXBwb3NpdGlvbl8yLTJeCgpSZXBsYWNlIHtzdSdvaSBkYSBwb2l9IHdpdGgge2lqZX0g YW5kIG1vdmUgaW50byB0aGUgcHJvcG9zaXRpb246CgpebmFrdSBzdSdvaSBkYSB6byd1IGRhIG1l IGtvJ2EgaWplIG5ha3Uga28nYSBtZSBkYSB+LS1+IFN1cHBvc2l0aW9uXzItM14KClJlcGxhY2Ug e2lqZSBuYWt1fSB3aXRoIHtpamVuYWl9OgoKXm5ha3Ugc3Unb2kgZGEgem8ndSBkYSBtZSBrbydh IGlqZW5haSBrbydhIG1lIGRhIH4tLX4gU3VwcG9zaXRpb25fMi00XgoKQnkgdGhlIHdheSwgZnJv bSBhIHByb3BlcnR5IG9mIHttZX0sCgpea28nYSBtZSBrbydhIF4KCmlzIGFsd2F5cyB0cnVlLiB7 a28nYX0gaXMgdGhlcmVmb3JlIGluIHRoZSBkb21haW4gb2Yge2RhfSBvZiBDb25kaXRpb25fMS4g UmVwbGFjZSB7cm8nb2kgZGF9IG9mIENvbmRpdGlvbl8xIHdpdGgge2tvJ2F9LCBhbmQgaXQgdGh1 cyBob2xkcyB0cnVlOgoKXnN1J29pIGRlIHpvJ3UgZGUgbWUga28nYSBpamVuYWkga28nYSBtZSBk ZSB+LS1+IENvbmRpdGlvbl8xLTFeCgpDb25kaXRpb25fMS0xIGFuZCBTdXBwb3NpdGlvbl8yLTQg Y29udHJhZGljdCBlYWNoIG90aGVyLgoKU3VwcG9zaXRpb25fMiBpcyB0aHVzIHJlamVjdGVkIGJ5 IHJlZHVjdGlvIGFkIGFic3VyZHVtLgoKSXQgbWVhbnMgdGhhdCB7a28nYX0gaXMgbm90IGFuIGlu ZGl2aWR1YWwuCgoKCk1vcmVvdmVyLCB3aGVuIHtrbydhfSBpcyBleHBhbmRlZCB0byB7QSBqbyd1 IEJ9LCBmcm9tIGEgcHJvcGVydHkgb2Yge2pvJ3V9LCB0aGUgZm9sbG93aW5nIHByb3Bvc2l0aW9u cyBob2xkIHRydWU6CgpeQSBtZSBrbydhfnBwfgoKfi9wcH5CIG1lIGtvJ2FeCgpFYWNoIG9mIEEg YW5kIEIgaXMgaW4gdGhlIGRvbWFpbiBvZiB7ZGF9IG9mIENvbmRpdGlvbl8xLiBDb25zaWRlcmlu ZyBzaW1pbGFybHkgdG8gQ29uZGl0aW9uXzEtMSwgbmVpdGhlciBBIG5vciBCIGlzIGFuIGluZGl2 aWR1YWwuIHtrbydhfSBpcyB0aHVzIG5vdCBpbmRpdmlkdWFscy4KClEuRS5ELgoKCgpXaGVuIHtr bydhfSBpcyBuZWl0aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzLCB3aGF0IGFjdHVh bGx5IGRvZXMgaXQgcmVmZXIgdG8/CgpXZSBtYXkgaW50ZXJwcmV0IHRoYXQgaXQgcmVmZXJzIHRv IHdoYXQgaXMgcmVmZXJyZWQgdG8gYnkgYSBtYXRlcmlhbCBub3VuLCBmb3IgZXhhbXBsZS4KCkJ5 IGEgc3BlYWtlciB3aG8gdGhpbmtzIHRoYXQgYSBjdXQtb2ZmIHBpZWNlIG9mIGJyZWFkIGlzIGFs c28gYnJlYWQsIGJyZWFkIGlzIHJlZ2FyZGVkIGFzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3Ig aW5kaXZpZHVhbHMuCgoKCltodHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2QvbXNnL2xvamJhbi9S QXRFN1lrLWRxdy9wQ0dlWUNFOWwxUUp8KFJlbGF0ZWQgZGlzY3Vzc2lvbjogZm9yIHRoZSBjYXNl IG9mIHtrbydhfT17bG8gc2lkYm99LCBJIHdyb3RlIHRoZSBzYW1lIHByb29mIG9ubHkgaW4gTG9q YmFuLildCgoKCiEhISEjIEEgbG9naWNhbCBheGlvbSBvbiBwbHVyYWwgY29uc3RhbnQKClRoZSBm b2xsb3dpbmcgbG9naWNhbCBheGlvbSBpcyBnaXZlbiB0byBhbiBhcmJpdHJhcnkgcGx1cmFsIGNv bnN0YW50IEM6CgpeZ2FuYWkgQyBicm9kYSBnaSBzdSdvaSBkYSB6byd1IGRhIGJyb2RhXgoKCgpJ dCBtZWFucyAiaW4gYSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIGlmIGEgcHJvcG9zaXRpb24gaW4g d2hpY2ggYSBwbHVyYWwgY29uc3RhbnQgaXMgeDEgb2Yge2Jyb2RhfSBob2xkcyB0cnVlLCB0aGVy ZSBpcyByZWZlcmVudCB0aGF0IGlzIHgxIG9mIHticm9kYX0iLgoKCgpUaGF0IGlzIHRvIHNheSwg YW4gYXJndW1lbnQgdGhhdCBoYXMgbm8gcmVmZXJlbnQgaW4gYSB1bml2ZXJzZSBvZiBkaXNjb3Vy c2UgY2Fubm90IGJlIHJlcHJlc2VudGVkIGJ5IGEgcGx1cmFsIGNvbnN0YW50LiBBbiBhcmd1bWVu dCB0aGF0IGhhcyBubyByZWZlcmVudCBpcyBleHByZXNzZWQgaW4gdGhlIGZvcm0ge25ha3Ugc3Un b2kgZGF9LCB3aGljaCBpcyBhIG5lZ2F0aW9uIG9mIGEgYm91bmQgcGx1cmFsIHZhcmlhYmxlIHtz dSdvaSBkYX0gbWVhbmluZyAidGhlcmUgaXMvYXJlIi4KCgoKISEjIERlZmluaXRpb24gb2YgZ2Fk cmkKCjtfX2xvX18gKExFKTogSXQgaXMgcHJlZml4ZWQgdG8gc2VsYnJpLCBhbmQgZm9ybXMgYSBw bHVyYWwgY29uc3RhbnQgdGhhdCByZWZlcnMgdG8gd2hhdCBzYXRpc2ZpZXMgeDEsIHRoZSBmaXJz dCBwbGFjZSBvZiB0aGUgc2VsYnJpLiBJZiBhIHF1YW50aWZpZXIgZm9sbG93cyB7bG99LCB0aGUg cXVhbnRpZmllciByZXByZXNlbnRzIHRoZSBjb3VudCBvZiBhbGwgdGhlIHJlZmVyZW50cyBvZiB0 aGUgcGx1cmFsIGNvbnN0YW50LiBJbiB0aGUgY2FzZSB0aGF0IGEgcXVhbnRpZmllciBmb2xsb3dz IHtsb30sIGEgc3VtdGkgbWF5IGZvbGxvdyBpdC4gSW4gdGhpcyBjYXNlLCBpdCBmb3JtcyBhIHBs dXJhbCBjb25zdGFudCB0aGF0IHJlZmVycyB0byB3aGF0IGlzL2FyZSBhbW9uZyAnJ3N1bXRpJycu Cgp8fAoKbG8gW1tQQV0gYnJvZGEgKGt1KSB+aHN+fH5oc34gem8nZSBub2kga2UnYSBicm9kYSBb W2dpJ2Ugemlsa2FuY3UgbGkgUEEgbG8gYnJvZGFdIChrdSdvKSB+aHN+fH5oc34gd2hhdCBpcy9h cmUgYnJvZGEgW1t0aGF0IGlzL2FyZSBQQSBpbiB0b3RhbF0KCmxvIFBBICcnc3VtdGknJyAoa3Up IH5oc358fmhzfiBsbyBQQSBtZSAnJ3N1bXRpJycgKG1lJ3UpIChrdSkgfmhzfnx+aHN+IHdoYXQg aXMvYXJlIGFtb25nICcnc3VtdGknJywgYW5kIFBBIGluIHRvdGFsCgp8fAoKe2t1fSwge2t1J299 LCB7bWUndX0gYXJlIGVsaWRhYmxlIHRlcm1pbmF0b3JzLgoKCgpQdXR0aW5nIGEgcXVhbnRpZmll ciBhZnRlciBnYWRyaSBsaWtlIHtsbyBQQX0gaXMgY2FsbGVkIF9faW5uZXIgcXVhbnRpZmljYXRp b25fXywgYW5kIHRoZSBxdWFudGlmaWVyIGlzIGNhbGxlZCBfX2lubmVyIHF1YW50aWZpZXJfXy4g QWx0aG91Z2ggdGhlIHRlcm0gInF1YW50aWZ5IiBpcyBpbnZvbHZlZCwgaXQgaXMgZGlmZmVyZW50 IGZyb20gcXVhbnRpZmljYXRpb24gb2YgbG9naWMuIElubmVyIHF1YW50aWZpY2F0aW9uIGRvZXMg bm90IGludm9sdmUgY291bnRpbmcgcmVmZXJlbnRzIG9mIGNvbnN0YW50cyB0aGF0IGNhbiBiZSBz dWJzdGl0dXRlZCBmb3IgYSB2YXJpYWJsZSwgYnV0IGNvdW50aW5nIGFsbCB0aGUgcmVmZXJlbnRz IG9mIG9uZSBwbHVyYWwgY29uc3RhbnQuIElubmVyIHF1YW50aWZpY2F0aW9uIHdpbGwgYmUgZGlz Y3Vzc2VkIG1vcmUgcHJlY2lzZWx5IGluICgofCNJbm5lcl9xdWFudGlmaWNhdGlvbnxTZWN0aW9u IDMuMSkpLgoKCgpPbiB0aGUgb3RoZXIgaGFuZCwgcHV0dGluZyBhIHF1YW50aWZpZXIgYmVmb3Jl IGdhZHJpLCBvciBiZWZvcmUgYSBzdW10aSBtb3JlIGdlbmVyYWxseSwgaXMgY2FsbGVkIF9fb3V0 ZXIgcXVhbnRpZmljYXRpb25fXywgYW5kIHRoZSBxdWFudGlmaWVyIGlzIGNhbGxlZCBfX291dGVy IHF1YW50aWZpZXJfXy4gT3V0ZXIgcXVhbnRpZmljYXRpb24gd2lsbCBiZSBkaXNjdXNzZWQgbW9y ZSBwcmVjaXNlbHkgaW4gKCh8I091dGVyX3F1YW50aWZpY2F0aW9ufFNlY3Rpb24gMy4yKSkuCgoK CkFsbCBzdW10aSBmb3JtZWQgd2l0aCBnYWRyaSBhcmUgZGVmaW5lZCBzbyB0aGF0IHRoZXkgYXJl IGV4cGFuZGVkIGludG8gZXhwcmVzc2lvbnMgd2l0aCB7em8nZX0uIFRoYXQgaXMgdG8gc2F5LCB0 aGUgbW9zdCBnZW5lcmFsIHBsdXJhbCBjb25zdGFudCBpcyByZXByZXNlbnRlZCBieSBhIHNpbmds ZSB7em8nZX0uIEEgc3VtdGkgZm9ybWVkIHdpdGggZ2FkcmkgaXMge3pvJ2V9IGFjY29tcGFuaWVk IGJ5IGFuIGV4cGxhbmF0aW9uLgoKXgoKO0V4YW1wbGU6IFBlb3BsZSBnYXRoZXJlZCwgY29va2Vk IGFuZCBhdGUuCgo7OiBsbyBwcmVudSBjdSBqbWFqaSBnaSdlIGp1a3BhIGdpJ2UgY2l0a2FeCgoK CldoaWxlIHRoZSBwcmVkaWNhdGUge2p1a3BhfSAoY29vaykgY2FuIGJlIGludGVycHJldGVkIGNv bGxlY3RpdmVseSBhcyB3ZWxsIGFzIGRpc3RyaWJ1dGl2ZWx5LCB0aGUgcGx1cmFsIGNvbnN0YW50 IHtsbyBwcmVudX0gKHBlb3BsZSkgZG9lcyBub3Qgc2F5IGV4cGxpY2l0bHkgaWYgaXQgc2F0aXNm aWVzIHtqdWtwYX0gY29sbGVjdGl2ZWx5IG9yIGRpc3RyaWJ1dGl2ZWx5LiBJZiB3ZSB3YW50IHRv IHNheSBleHBsaWNpdGx5IHRoYXQgdGhleSAiY29sbGVjdGl2ZWx5IiBjb29rZWQsIHdlIHVzZSB7 bG9pfSwgd2hpY2ggd2lsbCBiZSBkaXNjdXNzZWQgbGF0ZXIsIGFuZCBzYXkge2xvaSBwcmVudX0u IENvbnRyYXN0aXZlbHksIGlmIHdlIHdhbnQgdG8gc2F5IGV4cGxpY2l0bHkgdGhhdCB0aGV5ICJk aXN0cmlidXRpdmVseSIgY29va2VkLCB3ZSBzYXkge3JvIGxvIHByZW51fSB3aXRoIGFuIG91dGVy IHF1YW50aWZpY2F0aW9uLCBvciB7bHUnYSBsbyBwcmVudX0uIEhvd2V2ZXIsIGEgc3VtdGkgdGhh dCBzYXlzIGV4cGxpY2l0bHkgY29sbGVjdGl2aXR5IG9yIGRpc3RyaWJ1dGl2aXR5IGlzIG5vdCBu ZWNlc3NhcmlseSBhYmxlIHRvIGJlIHNoYXJlZCB3aXRoIG90aGVyIHByZWRpY2F0ZSBsaWtlIHtq bWFqaX0gb3Ige2NpdGthfS4KCgoKO19fbGVfXyAoTEUpOiB7bGUgYnJvZGF9IHJlZmVycyBfX3Nw ZWNpZmljYWxseV9fIHRvIGEgcmVmZXJlbnQgb2Yge2xvIGJyb2RhfSwgYW5kIF9fZXhwbGljaXRs eSBleHByZXNzIHRoYXQgdGhlIHNwZWFrZXIgaGFzIHRoZSByZWZlcmVudCBpbiBtaW5kX18uIEl0 cyBsb2dpY2FsIHByb3BlcnR5IGlzIHRoZSBzYW1lIGFzIHRoYXQgb2Yge2xvfS4KCnx8CgpsZSBb W1BBXSBicm9kYSAoa3UpIH5oc358fmhzfiB6bydlIG5vaSBtaSBrZSdhIGRvIHNraWN1IGxvIGth IGNlJ3UgYnJvZGEgW1tnaSdlIHppbGthbmN1IGxpIFBBIGxvIGJyb2RhXSAoa3UnbykgCgpsZSBQ QSAnJ3N1bXRpJycgKGt1KSB+aHN+fH5oc34gbGUgUEEgbWUgJydzdW10aScnIChtZSd1KSAoa3Up Cgp8fAoKCgo7X19sYV9fIChMQSk6IEl0IGlzIHByZWZpeGVkIHRvIHNlbGJyaSBvciBjbWV2bGEs IGFuZCBmb3JtcyBhIHBsdXJhbCBjb25zdGFudCB0aGF0IHJlZmVycyB0byB3aGF0IGlzIG5hbWVk IHRoZSBzZWxicmkgb3IgY21ldmxhIHN0cmluZy4gSXRzIGxvZ2ljYWwgcHJvcGVydHkgaXMgdGhl IHNhbWUgYXMgdGhhdCBvZiB7bG99LgoKfHwKCmxhIFtbUEFdIGJyb2RhIChrdSkgfmhzfnx+aHN+ IHpvJ2Ugbm9pIGx1IFtbUEFdIGJyb2RhIGxpJ3UgY21lbmUga2UnYSBtaSAoa3UnbykgCgpsYSBQ QSAnJ3N1bXRpJycgKGt1KSB+aHN+fH5oc34gem8nZSBub2kgbHUgUEEgc3VtdGkgbGkndSBjbWVu ZSBrZSdhIG1pIChrdSdvKSAKCnx8CgoKCjtfX2xvaV9fIChMRSksIF9fbGVpX18gKExFKSwgX19s YWlfXyAoTEEpOiB7bG9pL2xlaS9sYWkgYnJvZGF9IHJlZmVycyB0byBhIHJlZmVyZW50IG9mIHts by9sZS9sYSBicm9kYX0sIGFuZCBfX2V4cGxpY2l0bHkgZXhwcmVzcyB0aGF0IHRoZSByZWZlcmVu dCBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUgY29sbGVjdGl2ZWx5X18uCgp8fAoKbG9pIFtbUEFdIGJy b2RhIH5oc358fmhzfiBsbyBndW5tYSBiZSBsbyBbW1BBXSBicm9kYQoKbGVpIFtbUEFdIGJyb2Rh IH5oc358fmhzfiBsbyBndW5tYSBiZSBsZSBbW1BBXSBicm9kYQoKbGFpIFtbUEFdIGJyb2RhIH5o c358fmhzfiBsbyBndW5tYSBiZSBsYSBbW1BBXSBicm9kYQoKbG9pIFBBICcnc3VtdGknJyB+aHN+ fH5oc34gbG8gZ3VubWEgYmUgbG8gUEEgJydzdW10aScnCgpsZWkgUEEgJydzdW10aScnIH5oc358 fmhzfiBsbyBndW5tYSBiZSBsZSBQQSAnJ3N1bXRpJycKCmxhaSBQQSAnJ3N1bXRpJycgfmhzfnx+ aHN+IGxvIGd1bm1hIGJlIGxhIFBBICcnc3VtdGknJwoKfHwKCkJlY2F1c2Uge2xvaS9sZWkvbGFp fSBpcyB0aHVzIGRlZmluZWQgYnkgYW5vdGhlciBwbHVyYWwgY29uc3RhbnQge2xvIGd1bm1hIGJl IGxvL2xlL2xhfSwgaXQgZG9lcyBub3QgcmVmZXIgZGlyZWN0bHkgdG8gcmVmZXJlbnQgb2Yge2xv IGJyb2RhfSBvciB7bG8gUEEgJydzdW10aScnfSwgYnV0IHJlZmVyZW50IG9mIHtsbyBndW5tYX0u IFRoZXJlZm9yZSwgZXZlbiBpZiB7bG8gYnJvZGF9IG9yIHtsbyBQQSAnJ3N1bXRpJyd9IGlzIG5v dCBhbiBpbmRpdmlkdWFsLCB7bG9pIGJyb2RhfSBvciB7bG9pIFBBICcnc3VtdGknJ30gY2FuIGJl IGFuIGluZGl2aWR1YWwge2xvIGd1bm1hfSB1bmRlciB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbjoK Cl5ybydvaSBkYSBwb2kga2UnYSBtZSBsbyBndW5tYSBiZSBsby9sZS9sYSBbW1BBXSBicm9kYSB6 byd1IGxvIGd1bm1hIGJlIGxvL2xlL2xhIFtbUEFdIGJyb2RhIGN1IG1lIGRhfnBwfgoKfi9wcH5y bydvaSBkYSBwb2kga2UnYSBtZSBsbyBndW5tYSBiZSBsby9sZS9sYSBQQSAnJ3N1bXRpJycgem8n dSBsbyBndW5tYSBiZSBsby9sZS9sYSBQQSAnJ3N1bXRpJycgY3UgbWUgZGFeCgoKCjtfX2xvJ2lf XyAoTEUpLCBfX2xlJ2lfXyAoTEUpLCBfX2xhJ2lfXyAoTEEpOiB7bG8naS9sZSdpL2xhJ2kgYnJv ZGF9IHJlZmVycyB0byBhIHNldCBvciBzZXRzIG9mIGluZGl2aWR1YWwocykgdGhhdCBjb25zdGl0 dXRlKHMpIGEgcGx1cmFsIGNvbnN0YW50IHtsby9sZS9sYSBicm9kYX0uIEJlY2F1c2Uge2xvJ2kv bGUnaS9sYSdpfSBmb3JtcyBhIHNldCBvciBzZXRzLCBpdCBpcyBkZWZpbmVkIG9ubHkgd2hlbiBp dHMvdGhlaXIgbWVtYmVyKHMpIHtsby9sZS9sYSBicm9kYX0gaXMvYXJlIGFuIGluZGl2aWR1YWwg b3IgaW5kaXZpZHVhbHMuIEEgc2V0IGl0c2VsZiBpcyBhbHdheXMgYW4gaW5kaXZpZHVhbCwgYW5k IHNldHMgYXJlIGFsd2F5cyBpbmRpdmlkdWFsczogdGhlcmUgaXMgbm8gc2V0IHRoYXQgaXMgbm90 IGFuIGluZGl2aWR1YWwuCgp8fAoKbG8naSBbW1BBXSBicm9kYSB+aHN+fH5oc34gbG8gc2VsY21p IGJlIGxvIFtbUEFdIGJyb2RhCgpsZSdpIFtbUEFdIGJyb2RhIH5oc358fmhzfiBsbyBzZWxjbWkg YmUgbGUgW1tQQV0gYnJvZGEKCmxhJ2kgW1tQQV0gYnJvZGEgfmhzfnx+aHN+IGxvIHNlbGNtaSBi ZSBsYSBbW1BBXSBicm9kYQoKbG8naSBQQSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvIHNlbGNtaSBi ZSBsbyBQQSAnJ3N1bXRpJycKCmxlJ2kgUEEgJydzdW10aScnIH5oc358fmhzfiBsbyBzZWxjbWkg YmUgbGUgUEEgJydzdW10aScnCgpsYSdpIFBBICcnc3VtdGknJyB+aHN+fH5oc34gbG8gc2VsY21p IGJlIGxhIFBBICcnc3VtdGknJwoKfHwKCkJlY2F1c2Uge2xvJ2kvbGUnaS9sYSdpfSBpcyBkZWZp bmVkIGJ5IGFub3RoZXIgcGx1cmFsIGNvbnN0YW50IHtsbyBzZWxjbWkgYmUgbG8vbGUvbGF9LCBp dCBkb2VzIG5vdCByZWZlciBkaXJlY3RseSB0byByZWZlcmVudCBvZiB7bG8gYnJvZGF9IG9yIHts byBQQSAnJ3N1bXRpJyd9LCBidXQgcmVmZXJlbnQgb2Yge2xvIHNlbGNtaX0uCgoKCkluIHNldCB0 aGVvcnksIGFuIGVtcHR5IHNldCBpcyBkZWZpbmVkIGFzIHtsbyBzZWxjbWkgYmUgbm8gZGF9LCBh bmQgYW4gZXhwcmVzc2lvbiB7bG8gbm8gYnJvZGF9IGlzIG9mZmljaWFsbHkgbWVhbmluZ2xlc3Mg KHNlZSAoKHwjSW5uZXJfcXVhbnRpZmljYXRpb258U2VjdGlvbiAzLjEpKS4gVGhpcyBpbXBsaWVz IHRoYXQgYW4gZW1wdHkgc2V0IGNhbm5vdCBiZSBleHByZXNzZWQgd2l0aCB7bG8naS9sZSdpL2xh J2l9LiAKCgoKQWNjb3JkaW5nIHRvIFtodHRwOi8vamJvdmxhc3RlLmxvamJhbi5vcmcvZGljdC9z ZWxjbWl8amJvdmxhc3RlXSwge3NlbGNtaX0gaXMgZGVmaW5lZCBhcyBmb2xsb3dzOnx8Cgp4MSBz ZWxjbWkgeDIgfmhzfnx+aHN+ID1jYSdlIH5oc358fmhzfiB4MSBzZSBjbWltYSBybyBsbyBtZSB4 MiBtZSd1IGUgbm8gbG8gbmEgbWUgeDIgfHwKCklmIHdlIGFjY2VwdCB0aGlzIGRlZmluaXRpb24s IGEgc2V0IHJlZmVycmVkIHRvIGJ5IHtsbydpL2xlJ2kvbGEnaX0tc3VtdGkgY29uc2lzdHMgb2Yg b25seSB0aGUgcmVmZXJlbnQgb2Yge2xvL2xlL2xhIFtbUEFdIGJyb2RhfSBvciB7bG8vbGUvbGEg UEEgJydzdW10aScnfS4gQ29udHJhc3RpdmVseSwgaWYgd2UgZGVmaW5lIGl0IGFzIHtzZWxjbWl9 PXtzZSBjbWltYX0sIHRoZSBzZXQgbWF5IGluY2x1ZGUgd2hhdCBpcy9hcmUgb3RoZXIgdGhhbiB0 aGUgcmVmZXJlbnQgb2Yge2xvL2xlL2xhIFtbUEFdIGJyb2RhfSBvciB7bG8vbGUvbGEgUEEgJydz dW10aScnfS4gSXQgaXMgbm90IHlldCBvZmZpY2lhbGx5IGRldGVybWluZWQgd2hpY2ggaW50ZXJw cmV0YXRpb24gaXMgdG8gYmUgYWNjZXB0ZWQuCgoKCiEhISMgSW5uZXIgcXVhbnRpZmljYXRpb24K CigoQlBGSyBTZWN0aW9uOiBnYWRyaXxCUEZLIGRlZmluZXMgaW5uZXIgcXVhbnRpZmljYXRpb24p KSBhcyBmb2xsb3dzOgoKfHwKCmxvIFtbUEFdIGJyb2RhIH5oc358fmhzfiB6bydlIG5vaSBrZSdh IGJyb2RhIFtbZ2knZSB6aWxrYW5jdSBsaSBQQSBsbyBicm9kYV0KCmxvIFBBICcnc3VtdGknJyB+ aHN+fH5oc34gbG8gUEEgbWUgJydzdW10aScnCgp8fAoKVGhhdCBpcyB0byBzYXksIGlubmVyIHF1 YW50aWZpZXIgbWVhbnMgbnVtYmVyIG9mIHJlZmVyZW50IGNvdW50ZWQgYnkgdW5pdCB7bG8gYnJv ZGF9IG9yIHtsbyBtZSAnJ3N1bXRpJyd9IHRoYXQgaXMgeDMgb2Yge3ppbGthbmN1fS4gCgpIb3dl dmVyLCBpbnN0ZWFkIG9mIHt6aWxrYW5jdX0sIHRoZSBtZWFuaW5nIG9mIHdoaWNoIGlzIHRvbyB2 YWd1ZSBmb3IgZGVmaW5pdGlvbiwgW2h0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vZC9tc2cvbG9q YmFuL1JBdEU3WWstZHF3L3hpMmg2QTE3Q3VzSnxhbiBpZGVhIG9mIHJlZGVmaW5pdGlvbiB1c2lu ZyB7bWVpfSB3YXMgc3VnZ2VzdGVkXSBhcyBmb2xsb3dzOgoKCgo7QXhpb20gMTogcm8nb2kgZGEg c3UnbyBwYSBtZWkKCjtEZWZpbml0aW9uOnx8CgooRDEpIGtvJ2Egc3UnbyBOIG1laSB+aHN+fH5o c34gPWNhJ2Ugfmhzfnx+aHN+IHN1J29pIGRhIHBvaSBtZSBrbydhIGt1J28gc3Unb2kgZGUgcG9p IG1lIGtvJ2Egem8ndSBnZSBkYSBzdSdvIE4tMSBtZWkgZ2luYWkgZGUgbWUgZGEKCihEMikga28n YSBOIG1laSB+aHN+fH5oc34gPWNhJ2Ugfmhzfnx+aHN+IGtvJ2Egc3UnbyBOIG1laSBnaSdlIG5h aSBzdSdvIE4rMSBtZWkgCgooRDMpIGxvIFBBIGJyb2RhIH5oc358fmhzfiA9Y2EnZSB+aHN+fH5o c34gem8nZSBub2kga2UnYSBQQSBtZWkgZ2knZSBicm9kYQoKfHwKCgoKVXNpbmcgdGhlc2UgZGVm aW5pdGlvbnMgYW5kIEF4aW9tIDEsIHRoZSBmb2xsb3dpbmcgdGhlb3JlbSB3aWxsIGJlIHByb3Zl ZC4KCl5JZiBhbmQgb25seSBpZiB7a28nYSBwYSBtZWl9LCB7a28nYX0gaXMgYW4gaW5kaXZpZHVh bC5eCgoKCjtQcm9vZjogKEQyKSBpcwoKfHwKCmtvJ2EgTiBtZWkJfD18IGtvJ2Egc3UnbyBOIG1l aSBnaSdlIG5haSBzdSdvIE4rMSBtZWkgCgoJCXw9fCBnZSBrbydhIHN1J28gTiBtZWkgLS0tLS0o UzEpCgoJCXwgfCBnaSBuYWt1IGtvJ2Egc3UnbyBOKzEgbWVpIC0tLS0tKFMyKQoKfHwKCkFwcGx5 aW5nIChEMSkgdG8gKFMyKSwgCgp8fAoKKFMyKQkJfD18IG5ha3Ugc3Unb2kgZGEgcG9pIG1lIGtv J2Ega3UnbyBzdSdvaSBkZSBwb2kgbWUga28nYSB6byd1IAoKCQl8IHwgZ2UgZGEgc3UnbyBOIG1l aSAKCgkJfCB8IGdpbmFpIGRlIG1lIGRhCgoJCXw9fCBybydvaSBkYSBwb2kgbWUga28nYSBrdSdv IHJvJ29pIGRlIHBvaSBtZSBrbydhIHpvJ3UKCgkJfCB8IG5ha3UgZ2UgZGEgc3UnbyBOIG1laSAK CgkJfCB8IGdpIG5ha3UgZGUgbWUgZGEKCgkJfD18IHJvJ29pIGRhIHBvaSBtZSBrbydhIGt1J28g cm8nb2kgZGUgcG9pIG1lIGtvJ2Egem8ndQoKCQl8IHwgZ2FuYWkgZGEgc3UnbyBOIG1laSAKCgkJ fCB8IGdpIGRlIG1lIGRhCgp8fAoKKEQyKSBpcyB0aGVyZWZvcmUKCnx8CgprbydhIE4gbWVpCXw9 fCBnZSAoUzEpIGdpIChTMikgCgoJCXw9fCBnZSBrbydhIHN1J28gTiBtZWkKCgkJfCB8IGdpIHJv J29pIGRhIHBvaSBtZSBrbydhIGt1J28gcm8nb2kgZGUgcG9pIG1lIGtvJ2Egem8ndQoKCQl8IHwg Z2FuYWkgZGEgc3UnbyBOIG1laSAKCgkJfCB8IGdpIGRlIG1lIGRhCgp8fAoKV2hlbiBOPTEsCgp8 fAoKa28nYSBwYSBtZWkJfD18IGdlIGtvJ2Egc3UnbyBwYSBtZWkKCgkJfCB8IGdpIHJvJ29pIGRh IHBvaSBtZSBrbydhIGt1J28gcm8nb2kgZGUgcG9pIG1lIGtvJ2Egem8ndQoKCQl8IHwgZ2FuYWkg ZGEgc3UnbyBwYSBtZWkgCgoJCXwgfCBnaSBkZSBtZSBkYSAKCnx8CgpCZWNhdXNlIG9mIEF4aW9t IDEsIGl0IGltcGxpZXMKCnx8CgprbydhIHBhIG1laQl8PXwgcm8nb2kgZGEgcG9pIG1lIGtvJ2Eg a3UnbyBybydvaSBkZSBwb2kgbWUga28nYSB6byd1IGRlIG1lIGRhCgp8fAoKVGhlIHJpZ2h0IHNp ZGUgaW1wbGllcyB7cm8nb2kgZGEgcG9pIGtlJ2EgbWUga28nYSB6byd1IGtvJ2EgbWUgZGF9LCB3 aGljaCBpcyB0aGUgY29uZGl0aW9uIGZvciAie2tvJ2F9IGlzIGFuIGluZGl2aWR1YWwiLiBJdHMg Y29udmVyc2UgaXMgYWxzbyB0cnVlLgoKUS5FLkQuCgoKClRoZSBkaWFncmFtIGJlbG93IHNob3dz IGEgcHJvY2VkdXJlIG9mIGNvdW50aW5nIHNvbWV0aGluZyB1cCB0byBmb3VyIHJlcHJlc2VudGVk IHdpdGggYSBkaXJlY3RlZCBncmFwaC4gSW4gdGhpcyBkaWFncmFtLCBsb29wcyBzdWNoIGFzIHtY IG1lIFh9IGFyZSBvbWl0dGVkIGZvciBzaW1wbGljaXR5LCB0aG91Z2ggdGhleSBleGlzdC4gQ291 bnRpbmcgdXAgY29ycmVzcG9uZHMgdG8gc2VsZWN0aW5nIGEgc3ViZ3JhcGggb2YgYSBkaXJlY3Rl ZCBncmFwaCBmb3JtZWQgd2l0aCB7bWV9OiB0aGUgc3ViZ3JhcGggdGhhdCBoYXMgYSBmb3JtIG9m IHRyZWUgdGhhdCBpbmNsdWRlcyBhbGwgbGVhdmVzIChjb25zdGFudHMgZWFjaCBvZiB3aGljaCBp cyBhbiBpbmRpdmlkdWFsKSB0byBiZSBjb3VudGVkLCBmb3IgZXhhbXBsZSB0aGUgcGFydCBvZiBt YWdlbnRhIGNvbG9yIGluIHRoZSBkaWFncmFtLgoKCgp7aW1nIGZpbGVJZD0iMTAiIHRodW1iPSJ5 IiByZWw9ImJveFtnXSJ9CgoKCiEhISEjIFJlcGVhdGluZyBpbm5lciBxdWFudGlmaWNhdGlvbgoK QmVjYXVzZSB7bG8gUEEgJydzdW10aScnfSBpcyBkZWZpbmVkLCB3ZSBjYW4gcmVwZWF0IGlubmVy IHF1YW50aWZpY2F0aW9uIHRvIGZvcm0gYW4gYXJndW1lbnQuCgpeCgo7RXhhbXBsZTogbG8gbXVs bm8ga2FyZHlncmkgY3UgZ3VubWEgbG8gdm8gbG9pIHBhY2kga2FyZGEgfmhzfiAnJ0EgZnVsbCBk ZWNrIGNvbnNpc3RzIG9mIGZvdXIgZ3JvdXBzIG9mIHRoaXJ0ZWVuIGNhcmRzLicnCgo7OiBzdSdv IGRhIHpvJ3UgbG9pIHJlIGxvJ2kgcm8gbW9rY2Egbm9pIHNlcGxpIHB5IG5vaSBtb2tjYSBrdSdv IGRhIGN1IHJlbGN1a3RhaSB+aHN+ICcnVHdvIHNldHMgb2YgcG9pbnRzIHRoYXQgYXJlIGVxdWlk aXN0YW50IGZyb20gYSBwb2ludCBQIGlzIGEgZG91YmxlIGNpcmNsZS4nJ14KCgoKISEhISMgUHJv YmxlbXMgb24gaW5uZXIgcXVhbnRpZmljYXRpb24KCiEhISEhIyBDYW5ub3Qgc2F5IHplcm8KCgoK QmVjYXVzZSBhbiBhcmd1bWVudCBmb3JtZWQgYnkgZ2FkcmkgaXMgYSBwbHVyYWwgY29uc3RhbnQs IHtsbyBicm9kYX0gaW1wbGllcyB7c3Unb2kgZGEgem8ndSBkYSBicm9kYX0gYWNjb3JkaW5nIHRv IHRoZSBsb2dpY2FsIGF4aW9tIG9uIHBsdXJhbCBjb25zdGFudCBzaG93biBpbiAoKHwjQV9sb2dp Y2FsX2F4aW9tX29uX3BsdXJhbF9jb25zdGFudHxTZWN0aW9uIDIuMi42KSkuIFRoYXQgaXMgdG8g c2F5LCB0aGUgZXhwcmVzc2lvbiB7bG8gbm8gYnJvZGF9IGltcGxpZXMgInRoZXJlIGFyZSB3aGF0 IGFyZSBicm9kYSwgd2hpY2ggYXJlIGNvdW50ZWQgMCIsIHdoaWNoIHNlZW1zIG1lYW5pbmdsZXNz LgoKCgpUaGlzIG1lYW5zIHRoYXQgb2ZmaWNpYWwgTG9qYmFuIGNhbm5vdCBleHByZXNzIG5lZ2F0 aW9uIG9mIGV4aXN0ZW5jZSBvZiBwbHVyYWwgdmFyaWFibGUge25ha3Ugc3Unb2kgZGF9LCB3aGlj aCBpcyBuZXZlcnRoZWxlc3MgbmVjZXNzYXJ5LCBmb3IgZXhhbXBsZSBpbiB0aGUgZm9sbG93aW5n IHNpdHVhdGlvbjoKCgoKXiBsbyB4byBwcmVudSBjdSBqbWFqaSBnaSdlIGp1a3BhIGdpJ2UgY2l0 a2Egfmhzfn4tLX4gbm9+cHB+Cgp+L3BwficnIkhvdyBtYW55IHBlb3BsZSBnYXRoZXJlZCwgY29v a2VkIGFuZCBhdGU/IiAiemVyby4iJydeCgoKClRoaXMgcmVzcG9uc2UgaXMgYW4gYWJicmV2aWF0 ZWQgZm9ybSBvZiB7bG8gbm8gcHJlbnUgY3Ugam1hamkgZ2knZSBqdWtwYSBnaSdlIGNpdGthfS4K CgoKVGhpcyBwcm9wb3NpdGlvbiBtZWFucyB0aGF0IHtsbyBubyBwcmVudX0gc2F0aXNmaWVzIHNl bGJyaSB7am1haml9IGNvbGxlY3RpdmVseSBhbmQgKGplKSBub24tZGlzdHJpYnV0aXZlbHksIHtq dWtwYX0gY29sbGVjdGl2ZWx5IG9yIChqYSkgZGlzdHJpYnV0aXZlbHksIHtjaXRrYX0gbm9uLWNv bGxlY3RpdmVseSBhbmQgKGplKSBkaXN0cmlidXRpdmVseS4gQmVjYXVzZSBpdCBpbmNsdWRlcyBz ZWxicmkge2ptYWppfSB0byBiZSBzYXRpc2ZpZWQgbm9uLWRpc3RyaWJ1dGl2ZWx5LCB0aGUgc3Vt dGkgY2Fubm90IGJlIHJlcGxhY2VkIGJ5IG5lZ2F0aW9uIG9mIGV4aXN0ZW5jZSBvZiBib3VuZCBz aW5ndWxhciB2YXJpYWJsZSB7bmFrdSBzdSdvIGRhfT17bm8gZGF9LiBNb3Jlb3ZlciwgYmVjYXVz ZSBpdCBpbmNsdWRlcyBzZWxicmkge2NpdGthfSB0byBiZSBzYXRpc2ZpZWQgbm9uLWNvbGxlY3Rp dmVseSwge2xvfSBvZiB0aGUgc3VtdGkgY2Fubm90IGJlIHJlcGxhY2VkIGJ5IHtsb2l9PXtsbyBn dW5tYSBiZSBsb30uCgoKCkZvciBtYWtpbmcgc3VjaCBhIHByb3Bvc2l0aW9uIG1lYW5pbmdmdWws IGl0IGlzIGVzc2VudGlhbCB0byBnaXZlIGFuIGV4cHJlc3Npb24ge2xvIG5vIGJyb2RhfSBhIG1l YW5pbmcgb2YgbmVnYXRpb24gb2YgZXhpc3RlbmNlIG9mIHBsdXJhbCB2YXJpYWJsZS4KCkZvciB0 aGlzIHB1cnBvc2UsIEkgc3VnZ2VzdCB0aGUgZm9sbG93aW5nIGRlZmluaXRpb24gdmFsaWQgaW4g dGhlIGNhc2UgdGhhdCBQQT0wIGZvciB7bG8gUEEgYnJvZGF9LgoKO1Vub2ZmaWNpYWwgZGVmaW5p dGlvbiBvZiB7bG8gbm8gYnJvZGF9Onx8CgpsbyBubyBicm9kYSB+aHN+fH5oc34gPWNhJ2Ugfmhz fnx+aHN+IG5ha3Ugc3Unb2kgZGEgcG9pIGtlJ2EgYnJvZGEKCnx8CgoKCu+8iElmIGl0IHdlcmUg ZGVmaW5lZCBhcyB7bmFrdSBsbyBicm9kYX0sIHRoZSBuZWdhdGlvbiB3b3VsZCBoYXZlIHNwYW5u ZWQgdGhlIHdob2xlIHByb3Bvc2l0aW9uLCBhbmQgaXQgd291bGQgbm90IGhhdmUgaW1wbGllZCBx dWFudGlmaWNhdGlvbi4gSSBhYmFuZG9uZWQgdGhlcmVmb3JlIHN1Y2ggYSBkZWZpbml0aW9uLikK CgoKISEhISEjIENhbm5vdCBxdWFudGlmeSBtYXRlcmlhbCBub3VuIG9yIHNvbWV0aGluZwoKQXhp b20gMSBvZiAoKHwjSW5uZXJfcXVhbnRpZmljYXRpb258U2VjdGlvbiAzLjEpKSBleGNsdWRlcyBz dW10aSB0aGF0IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHMgZnJvbSBl eHByZXNzaW9ucyB7KHN1J28pIE4gbWVpfSBhbmQge2xvIE4gYnJvZGF9LgoKCgpDYW4gd2UgdXNl IHtwaVBBfSBmb3Igc3VtdGkgdGhhdCBpcyBuZWl0aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2 aWR1YWxzLCB0aGVuPyBOby4KCigoQlBGSyBTZWN0aW9uOiBnYWRyaXxBY3R1YWxseSwgcGlQQSBp cyBkZWZpbmVkIG9ubHkgZm9yIG91dGVyIHF1YW50aWZpY2F0aW9uLikpCgp8fAoKcGlQQSAnJ3N1 bXRpJycgfmhzfnx+aHN+IGxvIHBpUEEgc2knZSBiZSBwYSBtZSAnJ3N1bXRpJycKCnx8CgpBcyB3 ZSBjYW4gc2VlIGluIHRoZSBkZWZpbml0aW9uLCB0aGUgYm9keSBvZiBvdXRlciBxdWFudGlmaWNh dGlvbiBieSB7cGlQQX0gaXMgcGx1cmFsIGNvbnN0YW50IHtsbyBwaVBBIHNpJ2V9LCB3aGljaCBp cyBub3QgYSBib3VuZCBzaW5ndWxhciB2YXJpYWJsZS4gSG93ZXZlciwgeDIgb2Yge3BpUEEgc2kn ZX0gaXMge3BhIG1lICcnc3VtdGknJ30sIHRvIHdoaWNoICgoQlBGSyBTZWN0aW9uOiBnYWRyaXx0 aGUgZGVmaW5pdGlvbiBvZiBQQSBicm9kYSkpIGlzIGFwcGxpZWQ6Cgp8fAoKUEEgYnJvZGEgfmhz fnx+aHN+IFBBIGRhIHBvaSBicm9kYSAKCnx8CgpBcyBhIHJlc3VsdCwge3BpUEEgJydzdW10aScn fSBpcyBkZWZpbmVkIG9ubHkgd2hlbiB0aGVyZSBpcyBhbiBpbmRpdmlkdWFsIHRoYXQgc2F0aXNm aWVzIHgxIG9mIHttZSAnJ3N1bXRpJyd9LiBUaGF0IGlzIHRvIHNheSwgd2hhdCBpcyBuZWl0aGVy IGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzIGlzIGV4Y2x1ZGVkIGFsc28gZnJvbSBhbiBl eHByZXNzaW9uIG9mIG91dGVyIHF1YW50aWZpY2F0aW9uIHdpdGgge3BpUEF9LgoKCgpXaGF0IHdv dWxkIGJlIGlmIHtwaVBBfSB3ZXJlIGRlZmluZWQgYWxzbyBmb3IgaW5uZXIgcXVhbnRpZmljYXRp b24/CgpJbiB0aGF0IGNhc2UsIHRoZSBmb2xsb3dpbmcgZGVmaW5pdGlvbiB3b3VsZCBiZSBkZXNp cmFibGUgdG8gY29uZm9ybSB0aGUgZGVmaW5pdGlvbiBvZiB7cGlQQX0gb2Ygb3V0ZXIgcXVhbnRp ZmljYXRpb246Cgo7IFVub2ZmaWNpYWwgZGVmaW5pdGlvbiBvZiB7cGlQQX0gb2YgaW5uZXIgcXVh bnRpZmljYXRpb246fHwKCmxvIHBpUEEgYnJvZGEgfmhzfnx+aHN+ID1jYSdlIH5oc358fmhzfiB6 bydlIG5vaSBrZSdhIHBpUEEgc2knZSBiZSBsbyBwYSBicm9kYQoKfHwKClRoaXMgZGVmaW5pdGlv biBvZiB7cGlQQX0gb2YgaW5uZXIgcXVhbnRpZmljYXRpb24gc3RpbGwgZXhjbHVkZXMgd2hhdCBp cyBuZWl0aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzIHVubGVzcyB7bG8gcGEgYnJv ZGF9IGlzIGRlZmluZWQgaW4gYW5vdGhlciB3YXkgc28gdGhhdCBpdCBjYW4gYmUgd2hhdCBpcyBu ZWl0aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzLgoKCgpXaHkgZG9uJ3Qgd2UgdXNl IHtQQSBzaSdlfSB0byBleHByZXNzIHF1YW50aWZpY2F0aW9uIG9mIHdoYXQgaXMgbmVpdGhlciBh biBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscz8gCgpJdCBpcyBwb3NzaWJsZSwgYnV0ICgoQlBG SyBTZWN0aW9uOiBOdW1lcmljIHNlbGJyaXxCUEZLJ3MgY3VycmVudCBkZWZpbml0aW9uIG9mIHtz aSdlfSkpIGRlcGVuZHMgb24ge3BhZ2J1fToKCnx8Cgp4MSBudW1iZXIgc2knZSB4MiB+aHN+fH5o c34geDEgcGFnYnUgeDIgZ2knZSBrbGFuaSBsaSBudW1iZXIgbG8gc2UgZ3JhZHUgYmUgeDIKCnx8 CgpJZiB3ZSBpbnRlcnByZXQge3BhZ2J1fSBzbyB0aGF0IHgxIGlzIG5vdCBsYXJnZXIgdGhhbiB4 MiAoYW5kIHRoaXMgaXMgb3JkaW5hcnkgaW50ZXJwcmV0YXRpb24pLCBbaHR0cHM6Ly9ncm91cHMu Z29vZ2xlLmNvbS9kL21zZy9sb2piYW4vUkF0RTdZay1kcXcvblViWml3bUIyTTBKfHtzaSdlfSBp cyB2ZXJ5IGluY29udmVuaWVudCBiZWNhdXNlIHRoZSB1bml0IHNob3VsZCBiZSBjaGFuZ2VkIGV2 ZXJ5IHRpbWUgY291bnRpbmcgdXAuXSBJZiB7c2knZX0gd2VyZSBkZWZpbmVkIHNvIHRoYXQgUEEg b2Yge1BBIHNpJ2V9IGNvdWxkIGJlIGxhcmdlciB0aGFuIDEsIHtzaSdlfSB3b3VsZCBoYXZlIGJl ZW4gcHJhZ21hdGljIGZvciBxdWFudGlmaWNhdGlvbiBvZiB3aGF0IGlzIG5laXRoZXIgYW4gaW5k aXZpZHVhbCBub3IgaW5kaXZpZHVhbHMuCgoKCkJlc2lkZXMgdGhvc2UgY29uc2lkZXJhdGlvbnMs IGlmIHdlIGFiYW5kb24gQXhpb20gMSBvZiAoKHwjSW5uZXJfcXVhbnRpZmljYXRpb258U2VjdGlv biAzLjEpKSwgRGVmaW5pdGlvbnMgKEQxKSAoRDIpIChEMykgY2FuIGJlIGFwcGxpZWQgdG8gd2hh dCBpcyBuZWl0aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzLgoKSW4gdGhpcyBjYXNl LCBhIHNwZWFrZXIgc2hvdWxkIHNlbGVjdCBzb21lIHBsdXJhbCBjb25zdGFudHMge2tvJ2EsIGtv J2UsIC4uLn0sIGFuZCBkZWNpZGUgdGhhdCB7W1trbydhL2tvJ2UvLi4uXSBzdSdvIHBhIG1laX07 IHRoZSBzZWxlY3Rpb24gbXVzdCBiZSBkb25lIGF0dGVudGl2ZWx5IHNvIHRoYXQgcmVmZXJlbnRz IG9mIHBsdXJhbCBjb25zdGFudHMgdGhhdCBhcmUge3BhIG1laX0gZG8gbm90IG92ZXJsYXAgd2l0 aCBlYWNoIG90aGVyLgoKVGhvc2UgcHJlcGFyYXRpb25zIG9mIHtrbydhLCBrbydlLCAuLi59IGFu ZCAoRDIpIGltcGx5IG9ubHkKCnx8CgpnYW5haSBbW2tvJ2Eva28nZS8uLi5dIHBhIG1laSAKCmdp IHJvJ29pIGRlIHBvaSBtZSBbW2tvJ2Eva28nZS8uLi5dIHpvJ3UgZGUgbWUgW1trbydhL2tvJ2Uv Li4uXQoKfHwKClVuZGVyIHRoZXNlIGNvbmRpdGlvbnMsIHRoZXJlIGlzIG5vIG5lZWQgdGhhdCB3 aGF0IGlzIHgxIG9mIHtwYSBtZWl9IGlzIGFuIGluZGl2aWR1YWwuCgoKCldoZW4gd2UgdXNlIERl ZmluaXRpb25zIChEMSkgKEQyKSAoRDMpIHdpdGhvdXQgdXNpbmcgQXhpb20gMSBvZiAoKHwjSW5u ZXJfcXVhbnRpZmljYXRpb258U2VjdGlvbiAzLjEpKSwgYSBjb25kaXRpb24ge2dpJ2Ugc3UnbyBw YSBtZWl9IG11c3QgYmUgYWRkZWQgdG8ge2RlfSBvZiAoRDEp77yIV2hlbiBBeGlvbSAxIGlzIHVz ZWQsIHJlZmVyZW50cyBpbiB0aGUgZG9tYWluIG9mIHZhcmlhYmxlIHtkZX0gc2F0aXNmaWVzIHRo aXMgY29uZGl0aW9uIGF1dG9tYXRpY2FsbHkpLiAKCjtVbm9mZmljaWFsIGRlZmluaXRpb25zIHVu ZGVyIHRoZSBjb25kaXRpb24gdGhhdCBBeGlvbSAxIGlzIGFiYW5kb25lZDp8fAoKKEQxJykga28n YSBzdSdvIE4gbWVpIH5oc358fmhzfiA9Y2EnZSB+aHN+fH5oc34gc3Unb2kgZGEgcG9pIG1lIGtv J2Ega3UnbyBzdSdvaSBkZSBwb2kgbWUga28nYSBnaSdlIHN1J28gcGEgbWVpIHpvJ3UgZ2UgZGEg c3UnbyBOLTEgbWVpIGdpbmFpIGRlIG1lIGRhCgooRDIpIGtvJ2EgTiBtZWkgfmhzfnx+aHN+ID1j YSdlIH5oc358fmhzfiBrbydhIHN1J28gTiBtZWkgZ2knZSBuYWkgc3UnbyBOKzEgbWVpIAoKKEQz KSBsbyBQQSBicm9kYSB+aHN+fH5oc34gPWNhJ2Ugfmhzfnx+aHN+IHpvJ2Ugbm9pIGtlJ2EgUEEg bWVpIGdpJ2UgYnJvZGEKCnx8CgpVc2luZyB0aGVzZSBkZWZpbml0aW9ucywgaW5uZXIgcXVhbnRp ZmljYXRpb24gb2Ygd2hhdCBpcyBuZWl0aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxz IGJlY29tZXMgcG9zc2libGUuIE1vcmVvdmVyLCAiVW5vZmZpY2lhbCBkZWZpbml0aW9uIG9mIHtw aVBBfSBvZiBpbm5lciBxdWFudGlmaWNhdGlvbiIgZGlzY3Vzc2VkIGFib3ZlIGJlY29tZXMgYWJs ZSB0byBiZSBhcHBsaWVkIHRvIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRp dmlkdWFscy4KCgoKVGhlIGRpYWdyYW0gYmVsb3cgc2hvd3MgYSBwcm9jZWR1cmUgb2YgY291bnRp bmcgdXAgd2hhdCBpcyBuZWl0aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzIHJlcHJl c2VudGVkIHdpdGggYSBkaXJlY3RlZCBncmFwaC4gSW4gdGhpcyBkaWFncmFtLCBsb29wcyBzdWNo IGFzIHtYIG1lIFh9IGFyZSBvbWl0dGVkIGZvciBzaW1wbGljaXR5LCB0aG91Z2ggdGhleSBleGlz dC4gQW1vbmcgaW5maW5pdGUgbnVtYmVyIG9mIHZlcnRpY2VzIChwbHVyYWwgY29uc3RhbnRzKSwg dGhlIHZlcnRpY2VzIHRoYXQgYSBzcGVha2VyIHNlbGVjdGVkIGFzIHtzdSdvIHBhIG1laX0gYXJl IGNvbG9yZWQgcGluay4gQ291bnRpbmcgdXAgY29ycmVzcG9uZHMgdG8gc2VsZWN0aW5nIGEgdHJl ZSB0aGF0IGlzIGEgc3ViZ3JhcGggb2YgYSBkaXJlY3RlZCBncmFwaCBmb3JtZWQgd2l0aCB7bWV9 LCBmb3IgZXhhbXBsZSB0aGUgcGFydCBvZiBibHVlIGNvbG9yIGluIHRoZSBkaWFncmFtLgoKCgp7 aW1nIGZpbGVJZD0iOSIgdGh1bWI9InkiIHJlbD0iYm94W2ddIn0KCgoKISEhIyBPdXRlciBxdWFu dGlmaWNhdGlvbgoKKChCUEZLIFNlY3Rpb246IGdhZHJpfEJQRksgZGVmaW5lcyBvdXRlciBxdWFu dGlmaWNhdGlvbikpIGFzIGZvbGxvd3M6Cgp8fAoKUEEgJydzdW10aScnIH5oc358fmhzfiBQQSBk YSBwb2kga2UnYSBtZSAnJ3N1bXRpJycKClBBIGJyb2RhIH5oc358fmhzfiBQQSBkYSBwb2kgYnJv ZGEgCgpwaVBBICcnc3VtdGknJyB+aHN+fH5oc34gbG8gcGlQQSBzaSdlIGJlIHBhIG1lICcnc3Vt dGknJwoKfHwKCgoKT3V0ZXIgcXVhbnRpZmljYXRpb24gZXhjZXB0IHtwaVBBfSBmb3JtcyB7UEEg ZGF9LCB3aGljaCBpcyBvZmZpY2lhbGx5IGEgYm91bmQgc2luZ3VsYXIgdmFyaWFibGUuIEl0IGlt cGxpZXMgdGhhdCB0aGVzZSBhcmd1bWVudHMgc2F0aXNmeSBhIHByZWRpY2F0ZSBfX2Rpc3RyaWJ1 dGl2ZWx5X18uIEZvciBleGFtcGxlLCBpdCBpcyBtZWFuaW5nbGVzcyB0byB1c2Uge2NpIGxvIHBy ZW51fSBhcyB4MSBvZiB7am1haml9IChnYXRoZXIpLCBiZWNhdXNlIGl0IGlzIG5vdCB0aGUgY2Fz ZSB0aGF0IGVhY2ggb2YgdGhyZWUgcGVvcGxlIHNhdGlzZmllcyB0aGUgcHJlZGljYXRlICJnYXRo ZXIiLgoKCgpIb3dldmVyLCBpZiB3ZSB1c2UgdW5vZmZpY2lhbCBwbHVyYWwgcXVhbnRpZmllcnMg e3JvJ29pfSBvciB7c3Unb2l9IGZvciBQQSwgb3V0ZXIgcXVhbnRpZmljYXRpb24gY2FuIGZvcm0g Ym91bmQgcGx1cmFsIHZhcmlhYmxlLiBGb3IgZXhhbXBsZSwKCl5zdSdvaSBwcmVudSBjdSBqbWFq aSB+aHN+IHRoZXJlIGFyZSBwZW9wbGUgd2hvIGdhdGhlci5eCgpUaGlzIHByb3Bvc2l0aW9uIGlz IGltcGxpZWQgYnkgYSBwcm9wb3NpdGlvbiBpbmNsdWRpbmcgcGx1cmFsIGNvbnN0YW50CgpebG8g cHJlbnUgY3Ugam1hamkgfmhzfiBQZW9wbGUgZ2F0aGVyLl4KCndpdGggdGhlIGxvZ2ljYWwgYXhp b20gaW4gKCh8I0FfbG9naWNhbF9heGlvbV9vbl9wbHVyYWxfY29uc3RhbnR8U2VjdGlvbiAyLjIu NikpLgoKCgp7UEEgbG8gYnJvZGF9IGRpZmZlcnMgZnJvbSB7UEEgYnJvZGF9IGluIGRvbWFpbiBv ZiByZWZlcmVudHMgb2YgYm91bmQgc2luZ3VsYXIgdmFyaWFibGUgdG8gYmUgY291bnRlZC4gVGhl IGRlZmluaXRpb25zIG9mIG91dGVyIHF1YW50aWZpY2F0aW9uIGFyZSBhcHBsaWVkIHRvIHRoZW0g YXMgZm9sbG93czoKCnx8CgpQQSBsbyBicm9kYSB+aHN+fH5oc34gUEEgZGEgcG9pIGtlJ2EgbWUg bG8gYnJvZGEgfmhzfnx+aHN+IFRoZSBkb21haW4gb2YgYm91bmQgc2luZ3VsYXIgdmFyaWFibGUg aXMgYSByZWZlcmVudCBvZiBwbHVyYWwgY29uc3RhbnQge2xvIGJyb2RhfSBpbiB0aGUgdW5pdmVy c2Ugb2YgZGlzY291cnNlLCBhbmQgY291bnRlZCB0byBiZSBQQQoKUEEgYnJvZGEgfmhzfnx+aHN+ IFBBIGRhIHBvaSBrZSdhIGJyb2RhIH5oc358fmhzfiBUaGUgZG9tYWluIG9mIGJvdW5kIHNpbmd1 bGFyIHZhcmlhYmxlIGlzIGFsbCB0aGF0IGFyZSB7YnJvZGF9IGluIHRoZSB1bml2ZXJzZSBvZiBk aXNjb3Vyc2UsIGFuZCBjb3VudGVkIHRvIGJlIFBBCgp8fAoKCgpeCgo7RXhhbXBsZSAxOiBybyBq bWl2ZSBiYSBtb3JzaSB+aHN+ICcnQWxsIGxpdmluZyB0aGluZ3Mgd2lsbCBkaWUuJycKCjtFeGFt cGxlIDI6IHJvIGxvIHByZW51IHRpIGtsYW1hIH5oc34gJydBbGwgdGhlIHBlb3BsZSBjb21lIGhl cmUuJydeCgpFeGFtcGxlIDEgbWVudGlvbnMgYWxsIHtqbWl2ZX0gaW4gdGhlIHVuaXZlcnNlIG9m IGRpc2NvdXJzZS4gSW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSBvZiBFeGFtcGxlIDIsIGl0 IGlzIHBvc3NpYmxlIHRvIGludGVycHJldCB0aGF0IHRoZXJlIGFyZSB7cHJlbnV9IG90aGVyIHRo YW4gdGhlIHJlZmVyZW50IG9mIHRoZSBwbHVyYWwgY29uc3RhbnQge2xvIHByZW51fS4KCgoKVGhl IG91dGVyIHF1YW50aWZpY2F0aW9uIGJ5IHtwaVBBfSBmb3JtcyBwbHVyYWwgY29uc3RhbnQge2xv IHBpUEEgc2knZX0uIEhvd2V2ZXIsIHgyIG9mIHtwaVBBIHNpJ2V9IGlzIGJvdW5kIHNpbmd1bGFy IHZhcmlhYmxlIHtwYSBtZSAnJ3N1bXRpJyd9LiB7cGl9IGluIHRoaXMgZGVmaW5pdGlvbiBtZWFu cyAibm90IGxhcmdlciB0aGFuIDEiOyBwcmFjdGljYWxseSwge2ZpJ3V9IG9yIHNvbWV0aGluZyBj YW4gYmUgdXNlZCBpbnN0ZWFkIG9mIHtwaX0KCgoKISEhISMgQ29tYmluYXRpb24gb2Ygb3V0ZXIg YW5kIGlubmVyIHF1YW50aWZpY2F0aW9ucwoKVGhlIGRlZmluaXRpb25zIG9mIGlubmVyIGFuZCBv dXRlciBxdWFudGlmaWNhdGlvbiBpbXBseSB0aGUgZm9sbG93aW5nIGludGVycHJldGF0aW9uczoK Cnx8CgpNIGxvIFtbTl0gYnJvZGEgfmhzfnx+aHN+IE0gKHdoaWNoIHNhdGlzZmllcyBhIHByZWRp Y2F0ZSBkaXN0cmlidXRpdmVseSkgb2Yge2xvIGJyb2RhfSBbW3RoYXQgYXJlIE5dCgpNIGxvaSBb W05dIGJyb2RhIH5oc358fmhzfiBNICh3aGljaCBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUgZGlzdHJp YnV0aXZlbHkpIG9mIHtsbyBndW5tYX0gdGhhdCBjb25zaXN0cyBvZiB7bG8gYnJvZGF9IFtbdGhh dCBhcmUgTl0KCk0gbG8naSBbW05dIGJyb2RhIH5oc358fmhzfiBNICh3aGljaCBzYXRpc2ZpZXMg YSBwcmVkaWNhdGUgZGlzdHJpYnV0aXZlbHkpIG9mIHtsbyBzZWxjbWl9IHRoYXQgY29uc2lzdHMg b2Yge2xvIGJyb2RhfSBbW3RoYXQgYXJlIE5dCgpwaSBNIGxvIFtbTl0gYnJvZGEgfmhzfnx+aHN+ IFF1YW50aXR5IHtwaSBNIHNpJ2V9IG9mIGEgcGFydCBvZiBvbmUgb2Yge2xvIGJyb2RhfSBbW3Ro YXQgYXJlIE5dCgpwaSBNIGxvaSBbW05dIGJyb2RhIH5oc358fmhzfiBRdWFudGl0eSB7cGkgTSBz aSdlfSBvZiBhIHBhcnQgb2Ygb25lIG9mIHtsbyBndW5tYX0gdGhhdCBjb25zaXN0cyBvZiB7bG8g YnJvZGF9IFtbdGhhdCBhcmUgTl0KCnBpIE0gbG8naSBbW05dIGJyb2RhIH5oc358fmhzfiBRdWFu dGl0eSB7cGkgTSBzaSdlfSBvZiBhIHBhcnQgKHN1YnNldCkgb2Ygb25lIG9mIHtsbyBzZWxjbWl9 IHRoYXQgY29uc2lzdHMgb2Yge2xvIGJyb2RhfSBbW3RoYXQgYXJlIE5dCgp8fAoKCgpBbW9uZyB0 aGVtLCB7TSBsbyBbW05dIGJyb2RhfSBhbmQge3BpIE0gbG9pIFtbTl0gYnJvZGF9IGNhbiBleHBy ZXNzIHNvbWUgb2YgcGx1cmFsIG51bWJlciBvZiB0aGluZ3MuCgpeCgo7RXhhbXBsZSAxOiByZSBs byBbW2NpXSBtbGF0dSBtaSB2aXNrYSB+aHN+ICcnVHdvIFtbb2YgdGhyZWVdIGNhdHMgc2VlIG1l LicnCgo7RXhhbXBsZSAyOiByZSBmaSd1IGNpIGxvaSBbW3ZlaSBjaSBwaSdpIG55ICh2ZSdvKV0g bWxhdHUgbWkgdmlza2EgfmhzfiAnJ1R3byB0aGlyZCBvZiBbWzNuXSBjYXRzIHNlZSBtZS4nJ14K CgoKe3JlIGxvIFtbY2ldIG1sYXR1fSBvZiBFeGFtcGxlIDEgcmVmZXJzIHRvIHR3byBjYXRzIGFt b25nIFtbdGhyZWVdIGNhdHMgdGhhdCBhcmUgcmVmZXJlbnQgb2Yge2xvIFtbY2ldIG1sYXR1fS4K CklmIHRoZSBpbm5lciBxdWFudGlmaWVyIHtjaX0gaXMgbm90IHNhaWQsIGl0IGlzIHVuY2xlYXIg aG93IG1hbnkgY2F0cyBhcmUgcmVmZXJyZWQgdG8gYnkge2xvIG1sYXR1fTsgaW4gYW55IGNhc2Ug e3JlIGxvIG1sYXR1fSByZWZlcnMgdG8gdHdvIG9mIHRoZW0uCgoKCkluIEV4YW1wbGUgMiwgdGhl IGFyZ3VtZW50IGlzIGZvcm1lZCBieSB7bG9pfSwgYW5kIHRoZSByZWZlcmVudCBpcyBhY3R1YWxs eSB7bG8gZ3VubWF9LiBFeHBhbmRpbmcgRXhhbXBsZSAyIGFjY29yZGluZyB0byB0aGUgZGVmaW5p dGlvbnMgb2Yge2xvaX0gYW5kIHtwaVBBICcnc3VtdGknJ30sCgpeCgo7RXhhbXBsZSAyLTE6IGxv IHJlIGZpJ3UgY2kgc2knZSBiZSBwYSBtZSBsbyBndW5tYSBiZSBsbyBbW3ZlaSBjaSBwaSdpIG55 ICh2ZSdvKV0gbWxhdHUgbWkgdmlza2FeCgpUaGF0IGlzIHRvIHNheSwge3JlIGZpJ3UgY2kgbG9p Li4ufSByZWZlcnMgdG8gdHdvIHRoaXJkIG9mIGFuIGluZGl2aWR1YWwge3BhIG1lIGxvIGd1bm1h Li4ufS4gVGhpcyB7bG8gZ3VubWF9IGNvbnNpc3RzIG9mIHt2ZWkgY2kgcGknaSBueSAodmUnbyl9 IGNhdHMuIAoKSWYgdGhlIGlubmVyIHF1YW50aWZpZXIgaXMgbm90IHNhaWQsIGl0IGlzIHVuY2xl YXIgaG93IG1hbnkgY2F0cyBjb25zdGl0dXRlIHtsbyBndW5tYX0gdGhhdCBpcyB7bG9pIG1sYXR1 fTsgaW4gYW55IGNhc2Uge3JlIGZpJ3UgY2kgbG9pIG1sYXR1fSByZWZlcnMgdG8gdHdvIHRoaXJk IG9mIHtsbyBndW5tYX0uIEhvd2V2ZXIsIAoKXnJlIGZpJ3UgY2kgbG9pIG1sYXR1IG1pIHZpc2th XgoKaXMgbWVhbmluZ2Z1bCBvbmx5IHdoZW4ge2xvaSBtbGF0dX0gY29uc2lzdHMgb2YgM24gY2F0 cywgYmVjYXVzZSBpdCBpcyBub3Qgb3JkaW5hcnkgdG8gaW50ZXJwcmV0IHRoYXQgYSBmcmFnbWVu dCBvZiBhIGNhdCBzYXRpc2ZpZXMgdGhlIHByZWRpY2F0ZSB7dmlza2F9LgoKQWNjb3JkaW5nIHRv IEJQRksncyBkZWZpbml0aW9uLCB7bG9pfSBjYW5ub3QgZm9ybSBhIHBsdXJhbCBjb25zdGFudCB0 aGF0IHNhdGlzZmllcyBhIHByZWRpY2F0ZSBub24tY29sbGVjdGl2ZWx5LiBJZiB5b3Ugd2FudCB0 byBtZWFuICJjYXRzIHNlZSBtZSBub24tY29sbGVjdGl2ZWx5IiwgYXZvaWQge2xvaX0sIG9yIHVz ZSB7bHUnYX0sIHdoaWNoIHdpbGwgYmUgZGlzY3Vzc2VkIGluICgofCNSZWxhdGlvbl9iZXR3ZWVu X2x1X2FfbHVfb19sdV9pX2FuZF9nYWRyaXxTZWN0aW9uIDMuMykpOgoKXmx1J2EgcmUgZmkndSBj aSBsb2kgbWxhdHUgbWkgdmlza2FeCgoKCiEhISEjIEJvdW5kIHZhcmlhYmxlcyBhbmQgY29uc3Rh bnRzIGluIGEgc3RhdGVtZW50CgpXaGVuIGJvdGggYm91bmQgdmFyaWFibGVzIGFuZCBjb25zdGFu dHMgYXBwZWFyIGluIGEgc3RhdGVtZW50LCB0aGUgY29uc3RhbnRzIGRvIG5vdCBuZWNlc3Nhcmls eSBzcGFuIG92ZXIgYWxsIGJvdW5kIHZhcmlhYmxlcy4gQWx0aG91Z2ggdGhleSBhcmUgY2FsbGVk ICJjb25zdGFudHMiLCBpdCBpcyBub3QgZ2VuZXJhbGx5IGRldGVybWluZWQgd2hldGhlciB0aGV5 IHJlZmVyIHRvIGNvbW1vbiByZWZlcmVudHMgZm9yIGFsbCByZWZlcmVudHMgaW4gZG9tYWlucyBv ZiB2YXJpYWJsZXMsIG9yIHRoZXkgcmVmZXIgdG8gZGlmZmVyZW50IHJlZmVyZW50cyBkZXBlbmRl bnQgb24gcmVmZXJlbnRzIGluIGRvbWFpbnMgb2YgdmFyaWFibGVzLiBUaGUgcmVhc29uIGZvbGxv d3MgYmVsb3cgKFtodHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2QvbXNnL2xvamJhbi9SQXRFN1lr LWRxdy9BQkRmT2Z1b3pXRUp8RGlzY3Vzc2lvbl0pLgoKCgpXaGVuIHNvbWUgc3VtdGkgb2YgdGVy YnJpIGluIGEgc3RhdGVtZW50IGFyZSBvbWl0dGVkLCBpdCBpcyBjb25zaWRlcmVkIHRoYXQgdGhl cmUgYXJlIGltcGxpY2l0IHt6bydlfSBpbiB0aG9zZSBwbGFjZXMgKFtodHRwOi8vZGFnLmdpdGh1 Yi5pby9jbGwvNy83L3xDTEwgNy43XSkuCgpGb3IgZXhhbXBsZSwKCl5ybyBtbGF0dSBjdSBqYmVu YX5wcH4KCn4vcHB+ICAnJ0FsbCBjYXRzIGFyZS93aWxsIGJlIGJvcm4uJydeCgpzZWVtcyB0byBi ZSB0cnVlIGZyb20gYSBzdGFuZGFyZCBwb2ludCBvZiB2aWV3LiBBY2NvcmRpbmcgdG8gZGVmaW5p dGlvbiBvZiB0ZXJicmkgb2Yge2piZW5hfSwgaXQgaXMgY29uc2lkZXJlZCB0aGF0IHRocmVlIHN1 bXRpIGFyZSBvbWl0dGVkLCBhbmQgdGhpcyBzdGF0ZW1lbnQgaGFzIHRoZSBzYW1lIG1lYW5pbmcg YXMKCl5ybyBtbGF0dSBjdSBqYmVuYSB6bydlIHpvJ2Ugem8nZV4KCmluIHdoaWNoIHt6bydlfSBh cmUgZXhwbGljaXQuIAoKVW5sZXNzIGFsbCBjYXRzIGluIHRoaXMgdW5pdmVyc2Ugb2YgZGlzY291 cnNlIGFyZS93aWxsIGJlIGJvcm4gdG8gY29tbW9uIHBhcmVudHMgYXQgdGhlIHNhbWUgdGltZSBh dCB0aGUgc2FtZSBwbGFjZSwgdGhlc2Uge3pvJ2V9IGNhbm5vdCBiZSBjb25zaWRlcmVkIGFzIGNv bW1vbiBjb25zdGFudHMgZm9yIGFsbCByZWZlcmVudHMgaW4gYSBkb21haW4gb2Yge3JvIG1sYXR1 fS4gSW4gb3JkZXIgdG8gbWFrZSBzdWNoIGFuIGV4cHJlc3Npb24gbGlrZSB7cm8gbWxhdHUgY3Ug amJlbmF9IGhhdmUgaW50ZW5kZWQgbWVhbmluZywgImNvbnN0YW50cyIgb2YgTG9qYmFuIGNhbiBi ZSBkZXBlbmRlbnQgb24gcmVmZXJlbnRzIGluIGRvbWFpbnMgb2YgYm91bmQgdmFyaWFibGVzLgoK CgoiQ29uc3RhbnRzIiBpbiB0aGlzIG1lYW5pbmcgY29ycmVzcG9uZCB0byBTa29sZW0gZnVuY3Rp b25zIGluIFNrb2xlbSBub3JtYWwgZm9ybXMgb2YgcHJlZGljYXRlIGxvZ2ljLiBUaGUgdGFibGUg YmVsb3cgc2hvd3MgY29tcGFyaXNvbiBvZiBpbnRlcnByZXRhdGlvbnMgYmV0d2VlbiBwcmVkaWNh dGUgbG9naWMsIHhvcmxvIG9uIHdoaWNoIHRoaXMgY29tbWVudGFyeSBkZXBlbmRzIGFuZCBpbXBs aWNpdCBxdWFudGlmaWVyIChbaHR0cDovL2RhZy5naXRodWIuaW8vY2xsLzYvMS98Q0xMIHZlci4x LjAgQ2hhcHRlciA2XSkgd2hpY2ggd2FzIGFib2xpc2hlZC4gVGhlIGV4cHJlc3Npb25zIHRoYXQg aGF2ZSB0aGUgc2FtZSB0cnV0aCB2YWx1ZSBhcmUgYWxpZ25lZCBpbiB0aGUgc2FtZSBjb2x1bW4u IFVwcGVyIGNhc2UgWSByZXByZXNlbnRzIGEgcGx1cmFsIHZhcmlhYmxlLiBUaGUgcm93IG9mIHpv J2UreG9ybG8gc2hvd3MgdW5vZmZpY2lhbCBzdWdnZXN0aW9uIG9mIGludGVycHJldGF0aW9uLiBJ biB0aGUgZ3JheSBwYXJ0IGluIHRoZSByb3cgb2YgUHJlbmV4IG5vcm1hbCwgdW5vZmZpY2lhbCBl eHByZXNzaW9ucyB3aXRoIGFuIGV4cGVyaW1lbnRhbCBjbWF2byB7c3Unb2l9IGFyZSBzaG93bi4g KENsaWNrIG9uIHRoZSB0YWJsZSB0byBlbmxhcmdlLikKCntpbWcgZmlsZUlkPSIxMiIgdGh1bWI9 InkiIGxpbms9ImRpc3BsYXkxMSIgcmVsPSJib3hbZ10ifQoKCgohISEjIFJlbGF0aW9uIGJldHdl ZW4gbHUnYSwgbHUnbywgbHUnaSBhbmQgZ2FkcmkKCigoQlBGSyBTZWN0aW9uOiBJbmRpcmVjdCBS ZWZlcmVyc3xCUEZLIGRlZmluZXMpKSB7bHUnYX0sIHtsdSdvfSwge2x1J2l9IG9mIExBaEUgYXMg Zm9sbG93czoKCnx8CgpsdSdhICcnc3VtdGknJyB+aHN+fH5oc34gbG8gbWUgJydzdW10aScnIH5o c358fmhzfiBsbyBjbWltYSBiZSAnJ3N1bXRpJycgW1tub2kgc2VsY21pXQoKbHUnbyAnJ3N1bXRp Jycgfmhzfnx+aHN+IGxvaSBtZSAnJ3N1bXRpJycKCmx1J2kgJydzdW10aScnIH5oc358fmhzfiBs bydpIG1lICcnc3VtdGknJwoKfHwKCkhvd2V2ZXIsIGd1ZXNzaW5nIGZyb20gdGhlIEVuZ2xpc2gg ZGVmaW5pdGlvbnMgb24gdGhlIHNhbWUgcGFnZSwgdGhlIGRlZmluaXRpb24gb2Yge2x1J2F9IGlz IHVuc2F0aXNmYWN0b3J5LCBhbmQgdGhhdCBvZiB7bHUnb30gaGFzIHNvbWUgcHJvYmxlbS4KCgoK e2x1J2F9IGV4dHJhY3RzIHgyIG9mIHtzZWxjbWl9IGZyb20gc3VtdGkgdGhhdCBpcyB7bG8gc2Vs Y21pfSwgYW5kIHgyIG9mIHtndW5tYX0gZnJvbSBzdW10aSB0aGF0IGlzIHtsbyBndW5tYX0uIE1v cmVvdmVyLCB7bHUnYX0gbWFrZXMgZXhwbGljaXQgdGhhdCB0aGUgc3VtdGkgc2F0aXNmaWVzIGEg cHJlZGljYXRlIGRpc3RyaWJ1dGl2ZWx5IGFuZCBub24tY29sbGVjdGl2ZWx5LiBPbiB0aGUgb3Ro ZXIgaGFuZCwgYWNjb3JkaW5nIHRvIHRoZSBkZWZpbml0aW9uIG9mIHtsb30sIHtsbyBtZSAnJ3N1 bXRpJyd9IGRvZXMgbm90IGltcGx5ICJkaXN0cmlidXRpdmVseSBhbmQgbm9uLWNvbGxlY3RpdmVs eSIuCgoKCntsdSdvfSBtYWtlcyBleHBsaWNpdCB0aGF0IHRoZSBzdW10aSBzYXRpc2ZpZXMgYSBw cmVkaWNhdGUgbm9uLWRpc3RyaWJ1dGl2ZWx5IGFuZCBjb2xsZWN0aXZlbHkuIE9uIHRoZSBvdGhl ciBoYW5kLCBhY2NvcmRpbmcgdG8gdGhlIGRlZmluaXRpb24gb2Yge2xvaX0sIHtsb2kgbWUgJydz dW10aScnfSBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUgY29sbGVjdGl2ZWx5LCBidXQgc3RpbGwgdW5j bGVhciBpZiBpdCBkb2VzIG5vbi1kaXN0cmlidXRpdmVseS4gRm9yIGNvbnNpc3RlbmN5LCBpdCB3 b3VsZCBiZSBiZXR0ZXIgdG8gYWRkICJ7bG9pIGJyb2RhfSBpbXBsaWVzIHRoYXQgcmVmZXJlbnQg b2YgeDEgb2YgYnJvZGEgY29sbGVjdGl2ZWx5IGFuZCBub24tZGlzdHJpYnV0aXZlbHkgc2F0aXNm aWVzIGEgcHJlZGljYXRlIiB0byB0aGUgZGVmaW5pdGlvbiBvZiB7bG9pfS4KCgoKQXMgYSBjb25j bHVzaW9uIG9mIHRoaXMgc2VjdGlvbiwgSSBzdWdnZXN0IHRvIHJlLWRlZmluZSB7bHUnYX0gYXMg Zm9sbG93czoKCjsgVW5vZmZpY2lhbCBkZWZpbml0aW9uIG9mIHtsdSdhfTp8fAoKbHUnYSAnJ3N1 bXRpJycgfmhzfnx+aHN+IGxvIGNtaW1hIGJlICcnc3VtdGknJyBub2kgc2VsY21pIGt1IG9uYWkg bG8gc2UgZ3VubWEgYmUgJydzdW10aScnIG5vaSBndW5tYSBrdSBvbmFpIGxvIG1lICcnc3VtdGkn JyBrdSB+cHB+Cgp+L3BwfiB+aHN+IHZ1J28gbm9pIHN1J28gZGEgem8ndSBkYSBtZSBrZSdhIGdp J2Ugbm8nYQoKfHwKCkluIHtub2l9IGNsYXVzZSBhZnRlciB7dnUnb30sIGl0IGlzIG1hZGUgZXhw bGljaXQgdGhhdCB0aGUgcmVmZXJlbnQgb2Yge2x1J2EgJydzdW10aScnfSBkaXN0cmlidXRpdmVs eSBzYXRpc2ZpZXMgdGhlIHNlbnRlbmNlIHRoYXQgaW5jbHVkZXMgdGhpcyBzdW10aS4KCgoKISEh IyBSZWxhdGlvbiBiZXR3ZWVuIGpvJ3UsIGpvaSwgY2UgYW5kIGdhZHJpCgooKEJQRksgU2VjdGlv bjogTm9uLWxvZ2ljYWwgQ29ubmVjdGl2ZXN8QWNjb3JkaW5nIHRvIEJQRksgU2VjdGlvbikpIHtq byd1fSwge2pvaX0gYW5kIHtjZX0gb2Ygc2VsbWEnbyBKT0kgYXJlIGRlZmluZWQgYXMgZm9sbG93 czp8fAoKX19YX18gam8ndSBfX1lfXyB+aHN+fH5oc34gbG8gc3V6bWVpIG5vaSBfX1hfXyAuZSBf X1lfXyAuZSBubyBkcmF0YSBiZSBfX1hfXyAuZSBfX1lfXyBjdSBtZSBrZSdhCgpfX1hfXyBqb2kg X19ZX18gfmhzfnx+aHN+IGxvIGd1bm1hIGJlIF9fWF9fIC5lIF9fWV9fIC5lIG5vIGRyYXRhIGJl IF9fWF9fIC5lIF9fWV9fCgpfX1hfXyBjZSBfX1lfXyB+aHN+fH5oc34gbG8gc2UgY21pbWEgYmUg X19YX18gLmUgX19ZX18gLmUgbm8gZHJhdGEgYmUgX19YX18gLmUgX19ZX18KCnx8CgpUaGV5IGNv cnJlc3BvbmQgcmVzcGVjdGl2ZWx5IHRvIHtsb30sIHtsb2l9LCB7bG8naX0gb2YgZ2FkcmkuIFRo ZXkgY29ubmVjdCB0d28gc3VtdGk6IHtqbyd1fSBmb3JtcyBhIHBsdXJhbCBjb25zdGFudCwge2pv aX0gYSBub24tZGlzdHJpYnV0aXZlIHBsdXJhbCBjb25zdGFudCwge2NlfSBhIHBsdXJhbCBjb25z dGFudCB0aGF0IHJlZmVycyB0byBzZXQocykgdGhhdCBjb25zaXN0KHMpIG9mIHRoZSBzdW10aSB0 aGF0IHtjZX0gY29ubmVjdHMuIEluIHRoZSBFbmdsaXNoIGRlZmluaXRpb24gb2Yge2pvaX0gb2Yg QlBGSywgIm5vbi1kaXN0cmlidXRpdmUiIGlzIG1lbnRpb25lZC4gVGhpcyBmYWN0IGFsc28gc3Vw cG9ydHMgdGhlIHN1Z2dlc3Rpb24gaW4gKCh8I1JlbGF0aW9uX2JldHdlZW5fbHVfYV9sdV9vX2x1 X2lfYW5kX2dhZHJpfFNlY3Rpb24gMy4zKSkgdG8gYWRkICJ7bG9pIGJyb2RhfSBpbXBsaWVzIHRo YXQgcmVmZXJlbnQgb2YgeDEgb2YgYnJvZGEgY29sbGVjdGl2ZWx5IGFuZCBub24tZGlzdHJpYnV0 aXZlbHkgc2F0aXNmaWVzIGEgcHJlZGljYXRlIiB0byB0aGUgZGVmaW5pdGlvbiBvZiB7bG9pfS4K CgoKRXZlbiBpZiBfX1hfXyBvciBfX1lfXyBhcmUgYm91bmQgdmFyaWFibGVzLCB0aGVzZSBjb25u ZWN0aXZlcyBmb3JtIGNvbnN0YW50cy4gSW4gdGhpcyBjYXNlLCBpdCBpcyBub3QgZGV0ZXJtaW5l ZCB3aGV0aGVyIHRoZSBmb3JtZWQgY29uc3RhbnRzIGRlcGVuZCBvbiBfX1hfXyBhbmQgX19ZX18s IG9yIHRoZXkgYXJlIGNvbW1vbiB0byBhbGwgX19YX18gYW5kIF9fWV9fIGluIHRoZWlyIGRvbWFp bnMuIFNlZSAoKHwjQm91bmRfdmFyaWFibGVzX2FuZF9jb25zdGFudHNfaW5fYV9zdGF0ZW1lbnR8 U2VjdGlvbiAzLjIuMikpIGZvciBkZXRhaWwuCgoKCkJlY2F1c2UgdGhleSBhcmUgY21hdm8gaW4g c2VsbWEnbyBKT0ksIHRoZXkgY2FuIGNvbm5lY3Qgd2hhdCBhcmUgbm90IHN1bXRpLCBidXQgdGhl IG1lYW5pbmdzIGluIHRoaXMgdXNhZ2UgYXJlIG5vdCBvZmZpY2lhbGx5IGRlZmluZWQuIFRoZXkg Y2FuIGZvcm0gYWxzbyBmb3JldGhvdWdodCBjb25uZWN0aXZlIHtKT0kgZ2kgX19YX18gZ2kgX19Z X199LiBXaGVuIHRoZSBmb3JldGhvdWdodCBjb25uZWN0aXZlcyBhcmUgdXNlZCBmb3Igc3VtdGks IHRoZXkgZm9ybSB0aGUgc2FtZSBjb25zdGFudHMgYXMgdGhlIGFmdGVydGhvdWdodCB1c2FnZSBk ZWZpbmVkIGFib3ZlLgoKCgohISMgTm90ZXMKClRoaXMgc2VjdGlvbiBjb25zaXN0cyBvZiBub3Rl cyBvZiB0aGUgYXV0aG9yIGd1c2thbnQsIGFuZCBpdCBpcyBub3QgYXQgYWxsIGltcG9ydGFudCBm b3IgdW5kZXJzdGFuZGluZyBnYWRyaS4KCgoKISEhIyBBYm91dCBvbnRvbG9neQoKXigoQlBGSyBT ZWN0aW9uOiBnYWRyaXwnJ1Bvc2l0aXZlIGltcGFjdDogU29tZSB1c2FnZXMgdGhhdCBtYWtlIGxp dHRsZSBzZW5zZSB3aXRoIHtsb309e3N1J299IGJlY29tZSB2YWxpZGF0ZWQuJycpKSBhY2NvcmRp bmcgdG8gQlBGSy5eCgoKCntsb309e3N1J299IHdhcyBhYmFuZG9uZWQsIGJ1dCBiZWNhdXNlIG9m IHRoZSBmYWN0IHRoYXQge2xvIGJyb2RhfSBpcyBhIHBsdXJhbCBjb25zdGFudCwgYW5kIGJlY2F1 c2Ugb2YgYSBsb2dpY2FsIGF4aW9tIG9mIHBsdXJhbCBjb25zdGFudCBpbiAoKHwjQV9sb2dpY2Fs X2F4aW9tX29uX3BsdXJhbF9jb25zdGFudHxTZWN0aW9uIDIuMi42KSksIHtsbyBicm9kYSBjdSBi cm9kZX0gaW1wbGljaXRseSBpbXBsaWVzIHtzdSdvaSBkYSBicm9kZX0uCgoKCiEhISMgY2xheHUg eDIKCl4oKEJQRksgU2VjdGlvbjogZ2Fkcml8bGUgY21hbmEgX19sb19fIGNpZGphIGJhIGNsYXh1 KSl+cHB+Cgp+L3BwfiAgJydJbiB0aGUgbW91bnRhaW5zIHRoZXJlIGlzIG5vIGZvb2QuJyd+cHB+ Cgp+L3BwfigobGFwb2kgcGVseHUga3UnbyB0cmFqeW5vYmxpKSleCgoKCkV4cGFuZGluZyB7bG8g Y2lkamF9LCAKCl5sZSBjbWFuYSB6bydlIG5vaSBrZSdhIGNpZGphIGt1J28gYmEgY2xheHVeCgpB Y2NvcmRpbmcgdG8gKChCUEZLIFNlY3Rpb246IFN1Ym9yZGluYXRvcnN8dGhlIGRlZmluaXRpb24g b2Yge25vaX0pKSwgCgpebGUgY21hbmEgem8nZSB0byByaSB4aSByYXUgY2lkamEgdG9pIGJhIGNs YXh1XgoKVGhlIHBhcnQgYmV0d2VlbiB7dG99IGFuZCB7dG9pfSBpcyBhIHBhcmVudGhldGljYWwg ZXhwcmVzc2lvbi4gVGhlIG1haW4gcHJvcG9zaXRpb24gaXMgdGh1cwoKXmxlIGNtYW5hIHpvJ2Ug YmEgY2xheHVeCgp3aGVyZSB7em8nZX0gaXMgYSBwbHVyYWwgY29uc3RhbnQuIEFjY29yZGluZyB0 byB0aGUgbG9naWNhbCBheGlvbSBvZiBwbHVyYWwgY29uc3RhbnQgaW4gKCh8I0FfbG9naWNhbF9h eGlvbV9vbl9wbHVyYWxfY29uc3RhbnR8U2VjdGlvbiAyLjIuNikpLCBUaGlzIHByb3Bvc2l0aW9u IGltcGxpZXMgCgpec3Unb2kgZGEgem8ndSBsZSBjbWFuYSBkYSBiYSBjbGF4dV4KCndoaWNoIG1l YW5zIHRoYXQgdGhlcmUgaXMgYSByZWZlcmVudCBvZiAid2hhdCBpcyBsYWNrZWQgYnkgdGhlIG1v dW50YWluIiBpbiB0aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLgoKVGhlIHN0cmFuZ2VuZXNzIGNv bWVzIGZyb20gdGhlIGZhY3QgdGhhdCB4MiBvZiB7Y2xheHV9IF9fYXBwYXJlbnRseV9fIG1lYW5z IG5vbi1leGlzdGVuY2UuIFdlIGNhbiBpbnRlcnByZXQgaXQgY29uc2lzdGVudGx5IHRoYXQge2Ns YXh1fSBtZWFucyBvbmx5IHRoYXQgdGhlIHJlZmVyZW50IG9mIHgyIGlzIG5vdCBwbGFjZWQgYXQg dGhlIHJlZmVyZW50IG9mIHgxLCBhbmQgaXQgc2F5cyBub3RoaW5nIGFib3V0IGV4aXN0ZW5jZSBp biB0aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLiAKCgoKISEhIyB6bydlIGlzIGEgcGx1cmFsIGNv bnN0YW50CgpBc3N1bWluZyB0aGF0IHt6bydlfSBjYW4gYmUgYW55IG9mIGZyZWUgdmFyaWFibGUs IGJvdW5kIHBsdXJhbCB2YXJpYWJsZSBvciBwbHVyYWwgY29uc3RhbnQsIHRoZSBsYW5ndWFnZSB3 b3VsZCBiZSBtb3JlIHJlYXNvbmFibGUgZnJvbSBhIGxvZ2ljYWwgcG9pbnQgb2Ygdmlldy4KCkhv d2V2ZXIsIHRoaXMgaWRlYSB3YXMgY2xlYXJseSBkZW5pZWQgaW4gW2h0dHBzOi8vZ3JvdXBzLmdv b2dsZS5jb20vZC90b3BpYy9sb2piYW4vUkF0RTdZay1kcXcvZGlzY3Vzc2lvbnx0aGUgZGlzY3Vz c2lvbl0uIFRoYXQgaXMgdG8gc2F5LCB7em8nZX0gaXMgYWx3YXlzIGEgcGx1cmFsIGNvbnN0YW50 IGFjY29yZGluZyB0byB0aGUgb2ZmaWNpYWwgaW50ZXJwcmV0YXRpb24uCgpJIHdpbGwgZXhhbWlu ZSB0aGVzZSBjb25mbGljdGluZyBpZGVhcywgYW5kIHRyeSB0byBzb2x2ZSBzb21lIHByb2JsZW1z IGNhdXNlZCBieSB0aGUgb2ZmaWNpYWwgaW50ZXJwcmV0YXRpb24gdGhhdCB7em8nZX0gaXMgYSBw bHVyYWwgY29uc3RhbnQuCgoKCiEhISEjIElmIHpvJ2UgY291bGQgYmUgYSBib3VuZCBwbHVyYWwg dmFyaWFibGUKCkkgd2lsbCBsaXN0IHVwIGhlcmUgbWVyaXRzIGFuZCBkZW1lcml0cyBvZiBhc3N1 bWluZyB0aGF0IHt6bydlfSBpbiBubyBjb250ZXh0IGlzIGEgZnJlZSB2YXJpYWJsZSwgYW5kIHRo YXQgdGhlIGNvbnRleHQgZGV0ZXJtaW5lcyB0aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLCBiYXNl ZCBvbiB3aGljaCB7em8nZX0gaXMgcmVnYXJkZWQgYXMgc3Vic3RpdHV0ZWQgZm9yIGJ5IGEgcGx1 cmFsIGNvbnN0YW50LCBvciBib3VuZCBieSBhIHBsdXJhbCBxdWFudGlmaWVyLgoKCgohISEhISMg TWVyaXRzCgpVbmRlciB0aGlzIGFzc3VtcHRpb24sIHRoZXJlIGlzIG5vIG5lZWQgdG8gZXhjbHVk ZSB0aGUgY2FzZSBQQT0wIG9mIHtsbyBQQSBicm9kYX0sIG9yIGdpdmUgaXQgYW4gdW5vZmZpY2lh bCBkZWZpbml0aW9uIGFzIGRpc2N1c3NlZCBpbiAoKHwjQ2Fubm90X3NheV96ZXJvfFNlY3Rpb24g My4xLjIuMSkpLiBJdCBpcyBiZWNhdXNlIGlmIHtsbyBQQSBicm9kYX0gaW4gbm8gY29udGV4dCBp cyBhIGZyZWUgdmFyaWFibGUsIHdlIGNhbiBpbnRlcnByZXQgaXQsIHdoZW4gYSBjb250ZXh0IGlz IGdpdmVuLCBhcyBzdWJzdGl0dXRlZCBmb3IgYnkgYSBwbHVyYWwgY29uc3RhbnQgb3IgYm91bmQg YnkgYSBwbHVyYWwgcXVhbnRpZmllciBsaWtlIHtzdSdvaSBkYX0gaW4gdGhlIGNhc2Ugb2YgUEE+ MDsgd2UgY2FuIGludGVycHJldCBpdCBhcyBib3VuZCBieSB7bmFrdSBzdSdvaSBkYX0gaW4gdGhl IGNhc2Ugb2YgUEE9MCBhcyB3ZWxsLgoKCgpUaGlzIGFzc3VtcHRpb24gbWFrZXMgdGhlIGludGVy cHJldGF0aW9uIGNsb3NlciB0byBuYXR1cmFsIGxhbmd1YWdlcyBub3Qgb25seSBpbiB0aGUgY2Fz ZSBQQT0wIGJ1dCBhbHNvIGluIHRoZSBjYXNlIFBBPjAuIEZvciBleGFtcGxlLCAKCl5sbyBjaSB4 YW50byBjdSB6aWxrYW5jdSBsaSBjaSBsbyB4YW50b14KClRoZSBsYXN0IHtsbyB4YW50b30gaXMg YSB1bml0IG9mIGNvdW50aW5nLiBJdCBpcyBuYXR1cmFsIHRvIGludGVycHJldCBpdCBhcyBhIGJv dW5kIHBsdXJhbCB2YXJpYWJsZSBxdWFudGlmaWVkIGJ5ICIxIiByYXRoZXIgdGhhbiBhIHBsdXJh bCBjb25zdGFudCwgd2hpY2ggc2hvdWxkIHJlZmVyIHRvIHNvbWV0aGluZy4gSWYgd2UgaW50ZXJw cmV0IGl0IGFzIGEgYm91bmQgcGx1cmFsIHZhcmlhYmxlLCB3ZSBzaG91bGQgY29uc2lkZXIgdGhl IHJlbGF0aXZlIG9yZGVyIHdpdGggdGhlIG90aGVyIGJvdW5kIHZhcmlhYmxlcyBhbmQge25ha3V9 LiBXZSBjYW4gaGFuZGxlIHRoZSBvcmRlciBmcmVlbHkgYnkgcHV0dGluZyB0aGUgYXJndW1lbnRz IGluIHByZW5leC4KCgoKTW9yZW92ZXIsIHRoaXMgYXNzdW1wdGlvbiBlbWJvZGllcyB0aGUgcHJv cGVydHkgb2YgbmF0dXJhbCBsYW5ndWFnZXMgdGhhdCB0aGUgdHJ1dGggdmFsdWUgb2YgYSBwcm9w b3NpdGlvbiBpbiBubyBjb250ZXh0IGlzIGdlbmVyYWxseSBpbmRlZmluaXRlLiBCeSBpbnRlcnBy ZXRpbmcgdGhhdCB7em8nZX0gaW4gbm8gY29udGV4dCBpcyBhIGZyZWUgdmFyaWFibGUsIHdoaWNo IHdpbGwgYmUgc3Vic3RpdHV0ZWQgZm9yIGJ5IGEgcGx1cmFsIGNvbnN0YW50IG9yIGJvdW5kIGJ5 IGEgcGx1cmFsIHF1YW50aWZpZXIgd2hlbiBhIGNvbnRleHQgaXMgZ2l2ZW4sIG5hdHVyYWwgaW50 ZXJwcmV0YXRpb24gb2YgTG9qYmFuIHNlbnRlbmNlIGlzIHBvc3NpYmxlIHdpdGhvdXQgbG9zaW5n IGxvZ2ljYWwgYXNwZWN0cyBhbmQgc3RydWN0dXJhbCBiZWF1dHkuCgoKCiEhISEhIyBEZW1lcml0 cwoKQmVjYXVzZSB7em8nZX0gY2FuIGJlIGEgZnJlZSB2YXJpYWJsZSwgYSBib3VuZCBwbHVyYWwg dmFyaWFibGUgb3IgYSBwbHVyYWwgY29uc3RhbnQgZGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0LCBh IHNpbmdsZSBicmlkaSBkb2VzIG5vdCBsZXQgbGlzdGVuZXJzIGRldGVybWluZSB3aGljaCBvZiB0 aGVtIGlzIHRoZSBjdXJyZW50IHt6bydlfSwgb3IgdGhlIHRydXRoIHZhbHVlIG9mIHRoZSBwcm9w b3NpdGlvbi4KCkhvd2V2ZXIsIHN1Y2ggYW4gYXNwZWN0IHRoYXQgdGhlIHRydXRoIHZhbHVlIG9m IGEgcHJvcG9zaXRpb24gZ2VuZXJhbGx5IGRlcGVuZHMgb24gdGhlIGNvbnRleHQgaXMgYSBjb21t b24gcHJvcGVydHkgdG8gYWxsIG5hdHVyYWwgbGFuZ3VhZ2VzLgoKCgpPbiB0aGUgb3RoZXIgaGFu ZCwgZXZlbiBpZiB3ZSB0YWtlIHRoZSBvZmZpY2lhbCBpbnRlcnByZXRhdGlvbiB0aGF0IHt6bydl fSBpcyBhbHdheXMgYSBwbHVyYWwgY29uc3RhbnQsIGxpc3RlbmVycyBhcmUgb25seSBpbmZvcm1l ZCBieSB7em8nZX0gdGhhdCBhIGNlcnRhaW4gdW5pdmVyc2Ugb2YgZGlzY291cnNlIGlzIGdpdmVu LiBXaXRoIG5vIGNvbnRleHQsIHRoZXJlIGlzIG5vIHdheSB0byBkZXRlcm1pbmUgd2hhdCBpcyB0 aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLiBUaGUgdHJ1dGggdmFsdWUgb2YgYSBwcm9wb3NpdGlv biBpbiBubyBjb250ZXh0IGlzIGluZGVmaW5pdGUgZXZlbiB3aXRoIHRoZSBvZmZpY2lhbCBpbnRl cnByZXRhdGlvbi4KCgoKISEhISMgUHJvYmxlbXMgY2F1c2VkIGJ5IHRoZSBmYWN0IHRoYXQgem8n ZSBpcyBhIHBsdXJhbCBjb25zdGFudCBhbmQgdGhlIGNvdW50ZXItbWVhc3VyZXMKClRoZSBvZmZp Y2lhbCBpbnRlcnByZXRhdGlvbiB0aGF0IHt6bydlfSBpcyBhIHBsdXJhbCBjb25zdGFudCBjYXVz ZXMgdGhlIGZvbGxvd2luZyBwcm9ibGVtcy4KCgoKISEhISEjIENhbm5vdCBleHByZXNzIHBsdXJh bCBxdWFudGlmaWNhdGlvbiBvZiBub24tZXhpc3RlbmNlCgpSZWFzb25hYmxlIGludGVycHJldGF0 aW9uIG9mIHtsbyBubyBicm9kYX0gaXMgb2ZmaWNpYWxseSBleGNsdWRlZCBmcm9tIExvamJhbi4g VGhhdCBpcyB0byBzYXksIExvamJhbiBjYW5ub3Qgb2ZmaWNpYWxseSBkZWFsIHdpdGggdGhlIGV4 cHJlc3Npb24gInRoZXJlIGlzIG5vdCB3aGF0IGlzIHN1YnN0aXR1dGVkIGZvciB7ZGF9IiBmb3Ig cGx1cmFsIHZhcmlhYmxlICh7bmFrdSBzdSdvaSBkYX0pLCB3aGljaCBpcyBuYXR1cmFsbHkgZGVh bHQgd2l0aCBieSBwbHVyYWwgcXVhbnRpZmljYXRpb24uIEluIG9yZGVyIHRvIGV4cHJlc3Mge2xv IG5vIGJyb2RhfSB3aXRoIHJlYXNvbmFibGUgaW50ZXJwcmV0YXRpb24sIHdlIG5lZWQgYW4gdW5v ZmZpY2lhbCBpbnRlcnByZXRhdGlvbiBsaWtlICgofCNDYW5ub3Rfc2F5X3plcm98U2VjdGlvbiAz LjEuMi4xKSkuCgoKCiEhISEhIyBDYW5ub3QgZXhwcmVzcyBib3VuZCBwbHVyYWwgdmFyaWFibGUs IHdoaWNoIGRvZXMgbm90IHNwZWNpZnkgYSByZWZlcmVudAoKQmVjYXVzZSB0aGUgb2ZmaWNpYWwg aW50ZXJwcmV0YXRpb24gZG9lcyBub3QgYWxsb3cge2xvIFBBIGJyb2RhfSB0byBiZSBhIGJvdW5k IHBsdXJhbCB2YXJpYWJsZSBkZXBlbmRpbmcgb24gdGhlIGNvbnRleHQsIGFuIGFyZ3VtZW50IHRo YXQgc2hvdWxkIHJlZmVyIHRvIG5vdGhpbmcsIGEgdW5pdCBvZiBjb3VudGluZyBmb3IgZXhhbXBs ZSwgc2hvdWxkIGJlIGludGVycHJldGVkIGFzIGEgcGx1cmFsIGNvbnN0YW50LCB3aGljaCByZWZl cnMgdG8gc29tZXRoaW5nLiBGb3IgZXhhbXBsZSAKCl5sbyBjaSB4YW50byBjdSB6aWxrYW5jdSBs aSBjaSBsbyB4YW50b14KCmZvciB3aGljaCB3ZSBhcmUgY29tcGVsbGVkIHRvIGludGVycHJldCB0 aGF0IHRoZXJlIGlzIHRoZSAiRWxlcGhhbnQgZGVzIEFyY2hpdmVzIiBpbiB0aGUgdW5pdmVyc2Ug b2YgZGlzY291cnNlLCBqdXN0IGxpa2UgdGhlICJNw6h0cmUgZGVzIEFyY2hpdmVzIiAoYWx0aG91 Z2ggaXQgaGFzIGFscmVhZHkgZmluaXNoZWQgaXRzIHJvbGUpLCBpbiBvcmRlciB0byB1c2Uge2xv IHhhbnRvfSBhcyBhIHVuaXQgaW4gYSBwcm9wb3NpdGlvbi4KCgoKISEhISEjIENhbm5vdCBleHBy ZXNzIGVsZW1lbnRhcnkgcGFydGljbGVzIHdpdGggbG8KCkFzIGxvbmcgYXMge2xvIGJyb2RhfSBp cyBpbnRlcnByZXRlZCBhcyBhIHBsdXJhbCBjb25zdGFudCwgdGhlIGZvbGxvd2luZyBMb2piYW4g c2VudGVuY2UgaXMgbWVhbmluZ2xlc3M6CgoKCl5sbyBndXNrYSd1IGN1IGdhdSBqbWFqaSBzZXBp J28gbG8gbGVuam8gZ2knZSBwYWdyZSBsbyBmZW5yYX5wcH4KCn4vcHB+JydQaG90b25zIGFyZSBj b25kZW5zZWQgYnkgbGVuc2VzLCBhbmQgcGFzcyB0aHJvdWdoIHNsaXRzLicnXgoKCgpBY3R1YWxs eSwgcGhvdG9ucyBhcmUgaW5kaXZpZHVhbHMsIGFuZCB3ZSBjYW4gY291bnQgdGhlbSwgYnV0IHdl IGNhbm5vdCBkaXN0aW5ndWlzaCBlYWNoIG9mIHRoZW06IHdlIGNhbm5vdCByZWZlciB0byBhIHNw ZWNpZmljIHBob3Rvbi4gUXVhbnRpZmljYXRpb24gaXMgaW5kZWVkIHN1aXRhYmxlIGZvciBhcmd1 bWVudHMgdGhhdCByZXByZXNlbnQgcGFydGljbGVzIGxpa2UgcGhvdG9ucy4gSG93ZXZlciwgTG9q YmFuIG9mZmljaWFsbHkgZG9lcyBub3QgaGF2ZSBhIHBsdXJhbCBxdWFudGlmaWVyLCBhbmQgY2Fu bm90IGV4cHJlc3MgcXVhbnRpZmljYXRpb24gb2YgIHN1bXRpIHRoYXQgc2F0aXNmaWVzIHNlbGJy aSBib3RoIGNvbGxlY3RpdmVseSBhbmQgZGlzdHJpYnV0aXZlbHkuIE1vcmVvdmVyLCBiZWNhdXNl IHtsbyBicm9kYX0gaXMgb2ZmaWNpYWxseSBhbHdheXMgYSBwbHVyYWwgY29uc3RhbnQsIHRoZXJl IGlzIG5vIHJvb20gdG8gaW50ZXJwcmV0IHtsbyBndXNrYSd1fSBhcyBhIGJvdW5kIHBsdXJhbCB2 YXJpYWJsZS4gSW4gb3JkZXIgdG8gc29sdmUgdGhlIHByb2JsZW0sIHdlIHNob3VsZCB1c2UgYW4g dW5vZmZpY2lhbCBwbHVyYWwgcXVhbnRpZmllciB7c3Unb2l9IHN1Z2dlc3RlZCBieSAoKHhvcnhl c3xsYSB4b3J4ZXMpKS4KCgoKXnN1J29pIGRhIHBvaSBrZSdhIGd1c2thJ3UgY3UgZ2F1IGptYWpp IHNlcGknbyBsbyBsZW5qbyBnaSdlIHBhZ3JlIGxvIGZlbnJhXgoKCgohISEhISMgSG93IHRvIGlu dGVycHJldCBhIHByZXZhaWxpbmcgdmlldwoKVGhlIGZvbGxvd2luZyBleGFtcGxlIGlzIGdpdmVu IG9uICgoQlBGSyBTZWN0aW9uOiBnYWRyaXxCUEZLJ3MgZ2FkcmkgcGFnZSkpOgoKCgpebG8gcGEg cGl4cmEgY3Ugc2UgdmFtamkgbG8ga2knbyB2YWxzaX5wcH4KCn4vcHB+JydPbmUgcGljdHVyZSBp cyB3b3J0aCBhIHRob3VzYW5kIHdvcmRzLicnIF4KCgoKRXZlbiBpbiBzdWNoIGEgc2VudGVuY2Ug dGhhdCBzZWVtcyBhIHByZXZhaWxpbmcgdmlldywge2xvIHBhIHBpeHJhfSBhbmQge2xvIGtpJ28g dmFsc2l9IGFyZSBpbnRlcnByZXRlZCBhcyByZWZlcnJpbmcgdG8gc29tZXRoaW5nLiBXZSBzaG91 bGQgcHJlcGFyZSBzb21lIHJlZmVyZW50cyBvZiBzdW10aSBvZiBhIHByZXZhaWxpbmcgdmlldyBp biB0aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLgoKCgpJbnR1aXRpb25hbGx5IHNwZWFraW5nLCB3 ZSBtYXkgdXNlIHtsbydlfSBpbnN0ZWFkIG9mIHtsb30sIGJ1dCB3ZSBjYW5ub3QgeWV0IGV4cGxh aW4ge2xvJ2V9IGZyb20gYSBsb2dpY2FsIHBvaW50IG9mIHZpZXcgYmVjYXVzZSAoKEJQRksgU2Vj dGlvbjogVHlwaWNhbHN8YWN0dWFsbHkgdGhlcmUgaXMgbm8gb2ZmaWNpYWwgY29uY2x1c2lvbiBh Ym91dCByZWxhdGlvbiBiZXR3ZWVuIHtsbydlfSBhbmQge2xvfSkpLgoKCgpBcyBhIG1ldGhvZCBv ZiBhdm9pZGluZyBtZW50aW9uIG9mIGEgcmVmZXJlbnQgaW4gYW4gZXhwcmVzc2lvbiBvZiBwcmV2 YWlsaW5nIHZpZXcsIHdlIG1heSBwdXQgdGhlIHdob2xlIHByb3Bvc2l0aW9uIGluIE5VIGNsYXVz ZS4gSW4gZmFjdCwgdHJ1dGggdmFsdWUgb2YgYSBwcm9wb3NpdGlvbiBpbiBOVSBjbGF1c2UgZG9l cyBub3QgaW5mbHVlbmNlIHRydXRoIHZhbHVlIG9mIHRoZSBvdXRlciBwcm9wb3NpdGlvbiAocmVm ZXJlbnRpYWxseSBvcGFxdWU7IHRoaXMgdG9waWMgaXMgcmVsYXRlZCB0byBbaHR0cDovL2RhZy5n aXRodWIuaW8vY2xsLzkvNy98Q0xMOS43XSkuIEluIG90aGVyIHdvcmRzLCB0aGUgdW5pdmVyc2Ug b2YgZGlzY291cnNlIG9mIGEgcHJvcG9zaXRpb24gaW4gTlUgY2xhdXNlIGlzIGRpZmZlcmVudCBm cm9tIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2Ugb2YgYSBwcm9wb3NpdGlvbiBvdXQgb2YgTlUu CgpJZiB3ZSBhY2NlcHQgdGhpcyBtZXRob2QsIHRoZSBleGFtcGxlIGFib3ZlIHdpbGwgYmUgbW9k aWZpZWQsIHVzaW5nIHtzaSdvfSBmb3IgZXhhbXBsZSwgYXMgZm9sbG93czoKCgoKXnNpJ28gbG8g cGEgcGl4cmEgY3Ugc2UgdmFtamkgbG8ga2knbyB2YWxzaSB+cHB+Cgp+L3BwficnSXMgYW4gaWRl YSB0aGF0IG9uZSBwaWN0dXJlIGlzIHdvcnRoIGEgdGhvdXNhbmQgd29yZHMuJydeCgoKCndoZXJl IHgxIG9mIHtzaSdvfSBpcyBpbXBsaWNpdCB7em8nZX0sIHdoaWNoIGhhcyBhIHJlZmVyZW50IGlu IHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UuIEFzIGFuIGludGVycHJldGF0aW9uIG9mIGEgcHJl dmFpbGluZyB2aWV3LCBzdXBwb3NpbmcgYSByZWZlcmVudCBvZiB4MSBvZiB7c2knb30gaXMgbW9y ZSBuYXR1cmFsIHRoYW4gc3VwcG9zaW5nIGEgcmVmZXJlbnQgb2Yge2xvIHBhIHBpeHJhfSBvciB7 bG8ga2knbyB2YWxzaX0uCgooU3VjaCBhIGJyaWRpIHdpdGggbm8gdGVyYnJpIGlzIGNhbGxlZCAi b2JzZXJ2YXRpdmUiIGluICgoVGhlIENvbXBsZXRlIExvamJhbiBMYW5ndWFnZSkpLCBidXQgdGhp cyBpbnRlcnByZXRhdGlvbiBpcyBub3Qgc3VpdGFibGUgaGVyZSwgYmVjYXVzZSB0aGlzIGlzIG5v dCB0aGUgdXR0ZXJhbmNlIHRoYXQgaXMgYWx3YXlzIGNhdXNlZCBieSBhIHNwZWNpZmljIHN0aW11 bHVzLikKCgoKISEhISEjIEhvdyB0byBleHByZXNzIGZyZWUgdmFyaWFibGVzCgpBcyBhIGN1c3Rv bSwga28nVi9mbydWIHNlcmllcyBvZiBLT2hBNCBhcmUgdXNlZCBhcyBmcmVlIHZhcmlhYmxlcyBp biBkZWZpbml0aW9ucyBvZiB3b3JkcyBvciBzb21ldGhpbmcuIEhvd2V2ZXIsIHRoZXkgYXJlIGFj dHVhbGx5IHBsdXJhbCBjb25zdGFudHMuCgpJZiB3ZSBhYmFuZG9uIHRoaXMgY3VzdG9tLCB7a2Un YX0gYW5kIHtjZSd1fSBhcmUgc3VpdGFibGUgZm9yIGV4cHJlc3Npb24gd2l0aCBmcmVlIHZhcmlh YmxlcyAob3BlbiBzZW50ZW5jZSksIGJlY2F1c2UgdGhlIHRydXRoIHZhbHVlIG9mIGJyaWRpIGlu IHdoaWNoIHtrZSdhfSBvciB7Y2UndX0gaXMgdXNlZCBpcyBpbmRlZmluaXRlLiAKCkluIGEgYnJp ZGkgaW4gd2hpY2gge2tlJ2F9IGFwcGVhcnMgdHdvIHRpbWVzIG9yIG1vcmUsIHRoZXNlIHtrZSdh fXMgYXJlIHJlZ2FyZGVkIGFzIHJlcHJlc2VudGluZyBhbiBpZGVudGljYWwgc3VtdGk6CgpeZGEg cG9pIGtlJ2EgZ3kgeGx1cmEga2UnYSBjdSBwYW5jaSBsbyBrYSdlIHNlIGNpdGthfnBwfgoKfi9w cH5+LS1+ICgobG8gbnUgYmlueG8pKV4KCk9uIHRoZSBvdGhlciBoYW5kLCBpbiBhIGJyaWRpIGlu IHdoaWNoIHtjZSd1fSBhcHBlYXJzIHR3byB0aW1lcyBvciBtb3JlLCB0aGVzZSB7Y2UndX1zIGFy ZSBub3QgbmVjZXNzYXJpbHkgcmVnYXJkZWQgYXMgcmVwcmVzZW50aW5nIGFuIGlkZW50aWNhbCBz dW10aToKCl5sbyBtYW10YSBqbyd1IGxvIG1lbnNpIGN1IHNpbXh1IGxvIGthIGNlJ3UgY2lzbWEg ZmEnYSBjZSd1fnBwfgoKfi9wcH5+LS1+ICgobG8gbnUgYmlueG8pKV4KCkNvbnNpZGVyaW5nIHRo ZXNlIHByb3BlcnRpZXMsIGluIG9yZGVyIHRvIGV4cHJlc3MgYW4gb3BlbiBzZW50ZW5jZSB3aXRo IGZyZWUgdmFyaWFibGVzIGluIG5vIGNvbnRleHQsIHtjZSd1fSBpcyBtb3JlIGNvbnZlbmllbnQg dGhhbiB7a2UnYX0gd2hpY2ggaGFzIHJlc3RyaWN0aW9uIG9mIGlkZW50aWNhbCBzdW10aS4KCl5j ZSd1IGNlJ3UgY2l0a2F+cHB+Cgp+L3BwficnQSBlYXRzIEIuJycgKE9wZW4gc2VudGVuY2UsIHRy dXRoIHZhbHVlIGluZGVmaW5pdGUuKV4KCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCldpa2luZXVyb3RpYyBtYWlsaW5nIGxpc3QKV2lraW5ldXJvdGlj QGxvamJhbi5vcmcKaHR0cDovL21haWwubG9qYmFuLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3dpa2lu ZXVyb3RpYwo=