Received: from localhost ([::1]:38528 helo=stodi.digitalkingdom.org) by stodi.digitalkingdom.org with esmtp (Exim 4.80.1) (envelope-from ) id 1WrSxJ-0002X0-04; Mon, 02 Jun 2014 07:11:17 -0700 Received: from 173-13-139-235-sfba.hfc.comcastbusiness.net ([173.13.139.235]:37344 helo=jukni.digitalkingdom.org) by stodi.digitalkingdom.org with smtp (Exim 4.80.1) (envelope-from ) id 1WrSx7-0002WN-R4 for wikineurotic@lojban.org; Mon, 02 Jun 2014 07:11:14 -0700 Received: by jukni.digitalkingdom.org (sSMTP sendmail emulation); Mon, 02 Jun 2014 07:11:05 -0700 From: "Apache" Date: Mon, 02 Jun 2014 07:11:05 -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 14:10 UTC Comment: 3.2.2. Bound variables and constants in a statement; 3.4. Relation between jo'u, joi, ce and gadri; corrections [...] 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 b2ludCBvZiB2aWV3IHdhcyBjaGFuZ2VkIGJ5IGd1c2thbnQgYXQgMTQ6MTAgVVRDCkNvbW1lbnQ6 IDMuMi4yLiBCb3VuZCB2YXJpYWJsZXMgYW5kIGNvbnN0YW50cyBpbiBhIHN0YXRlbWVudDsgMy40 LiBSZWxhdGlvbiBiZXR3ZWVuIGpvJ3UsIGpvaSwgY2UgYW5kIGdhZHJpOyBjb3JyZWN0aW9ucwoK WW91IGNhbiB2aWV3IHRoZSBwYWdlIGJ5IGZvbGxvd2luZyB0aGlzIGxpbms6CiAKaHR0cDovL3d3 dy5sb2piYW4ub3JnL3Rpa2kvZ2FkcmklM0ElMjBhbiUyMHVub2ZmaWNpYWwlMjBjb21tZW50YXJ5 JTIwZnJvbSUyMGElMjBsb2dpY2FsJTIwcG9pbnQlMjBvZiUyMHZpZXcKCllvdSBjYW4gdmlldyBh IGRpZmYgYmFjayB0byB0aGUgcHJldmlvdXMgdmVyc2lvbiBieSBmb2xsb3dpbmcgdGhpcyBsaW5r OiAKaHR0cDovL3d3dy5sb2piYW4ub3JnL3Rpa2kvdGlraS1wYWdlaGlzdG9yeS5waHA/cGFnZT1n YWRyaSUzQSUyMGFuJTIwdW5vZmZpY2lhbCUyMGNvbW1lbnRhcnklMjBmcm9tJTIwYSUyMGxvZ2lj YWwlMjBwb2ludCUyMG9mJTIwdmlldyZjb21wYXJlPTEmb2xkdmVyPTEzJm5ld3Zlcj0xNAoKCioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq ClRoZSBjaGFuZ2VzIGluIHRoaXMgdmVyc2lvbiBmb2xsb3cgYmVsb3csIGZvbGxvd2VkIGFmdGVy IGJ5IHRoZSBjdXJyZW50IGZ1bGwgcGFnZSB0ZXh0LgoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKCistKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCkBAIC1MaW5lczogNy0xNCBj aGFuZ2VkIHRvICtMaW5lczogNy0xNSBAQAorLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKwpXZSB3aWxsIHVzZSB0aGUgZm9sbG93aW5nIHRl cm1zIGluIHRoaXMgY29tbWVudGFyeS4KO19fYXJndW1lbnQgKHN1bXRpKV9fOiBTeW1ib2wgdGhh dCByZWZlcnMgdG8gYSByZWZlcmVudCwgb3IgdGhhdCBhbm90aGVyIGFyZ3VtZW50IGNhbiBiZSBz dWJzdGl0dXRlZCBmb3IuCisgXkdyYW1tYXRpY2FsbHksIGFsbCB0aGVzZSBhcmUgc3VtdGk6IGFy Z3VtZW50cywge3ppJ299IHdoaWNoIHJlbW92ZXMgYSBwbGFjZSBmb3IgYW4gYXJndW1lbnQsIHtr b30gd2hpY2ggcmVmZXJzIHRvIGxpc3RlbmVyKHMpIGFuZCBmb3JtcyBpbXBlcmF0aXZlLCB7bWF9 IHdoaWNoIGZvcm1zIGludGVycm9nYXRpdmUgdG8gYXNrIHdoaWNoIHN1bXRpIG1ha2VzIHRoZSBz dGF0ZW1lbnQgdHJ1ZSwgc3VtdGkgYW5kIHJlbGF0aXZlIGNsYXVzZXMgKHt6bydlIG5vaSBicm9k YX0uLi4pLCBxdWFudGlmaWVyIGFuZCBzdW10aS9zZWxicmkgKHtub2RhfSwge2NpIGxvIGJyb2Rh fSwge3JvIGJyb2RhfS4uLikgLCBzdW10aSBjb25uZWN0ZWQgYnkgY29ubmVjdGl2ZXMgKHtrbydh IC5lIGtvJ2V9Li4uKS4gSG93ZXZlciwgaW4gdGhpcyBhcnRpY2xlLCAic3VtdGkiIHJlZmVycyB0 byBhbiBhcmd1bWVudCBvZiBsb2dpYyByZXByZXNlbnRlZCBpbiBMb2piYW4uXgo7X191bml2ZXJz ZSBvZiBkaXNjb3Vyc2VfXzogU2V0IG9mIGFsbCByZWZlcmVudHMgb2YgYXJndW1lbnRzLiBJdCBp cyBuYXR1cmFsbHkgYSB1bml2ZXJzZSB0aGF0IGlzIGRpc2N1c3NlZC4gQSB1bml2ZXJzZSBvZiBk aXNjb3Vyc2UgZGVwZW5kcyBvbiB0aGUgY29udGV4dC4KO19fY29uc3RhbnRfXzogQXJndW1lbnQg dGhhdCByZWZlcnMgdG8gYSByZWZlcmVudC4KO19fdmFyaWFibGVfXzogQXJndW1lbnQgYXMgYSBw bGFjZSBob2xkZXIuIEl0IGRvZXMgbm90IHJlZmVyIHRvIGFueXRoaW5nLiBJdCBpcyB0byBiZSBz dWJzdGl0dXRlZCBmb3IuIFZhcmlhYmxlIG90aGVyIHRoYW4gYm91bmQgdmFyaWFibGUgdGhhdCB3 aWxsIGJlIGRlZmluZWQgYmVsbG93IGlzIGNhbGxlZCBfX2ZyZWUgdmFyaWFibGVfXy4gVGhlIHRy dXRoIHZhbHVlIG9mIGEgc2VudGVuY2UgdGhhdCBpbmNsdWRlcyBhIGZyZWUgdmFyaWFibGUgaXMg aW5kZWZpbml0ZS4gU3VjaCBhIHNlbnRlbmNlIGlzIGNhbGxlZCBfX29wZW4gc2VudGVuY2VfXy4K LSBeSW4gTG9qYmFuLCB7a2UnYX0gYW5kIHtjZSd1fSBhcmUgYWx3YXlzIGZyZWUgdmFyaWFibGVz LiBBIHNlbnRlbmNlIGluIE5PSS1jbGF1c2Ugb3IgTlUtY2xhdXNlIHdpdGgge2NlJ3V9IGlzIG9w ZW4uIChBIHNlbnRlbmNlIGluIE5VLWNsYXNlIHdpdGggbm8ge2NlJ3V9IGhhcyBhIHRydXRoIHZh bHVlLCBidXQgZWFjaCBvZiB0aGUgaW5zaWRlIGFuZCB0aGUgb3V0c2lkZSBvZiBOVS1jbGF1c2Ug aGFzIGFuIGluZGVwZW5kZW50IHVuaXZlcnNlIG9mIGRpc2NvdXJzZSwgYW5kIHRodXMgZWFjaCBv ZiB0aGVtIGhhcyBhbiBpbmRlcGVuZGVudCB0cnV0aCB2YWx1ZSAoZm9yIGV4YW1wbGUsIHNlZSBb aHR0cDovL2RhZy5naXRodWIuaW8vY2xsLzkvNy98Q0xMOS43XSkuIEluIGRlZmluaXRpb25zIG9m IHdvcmRzIGluIExvamJhbiwga28nVi9mbydWIHNlcmllcyB7a28nYSwga28nZSwgLi4ufSBvZiBz ZWxtYSdvIEtPaEE0IGFyZSB1c2VkIGFzIGZyZWUgdmFyaWFibGVzLCBidXQgaXQgaXMgb25seSBh IGN1c3RvbSBmb3IgY29udmVuaWVuY2UuIEFsbCBjbWF2byBvZiBLT2hBMiwzLDQsNSw2IGFuZCB7 em8nZX0gb2YgS09oQTcgYXJlIGVzc2VudGlhbGx5IGNvbnN0YW50cy5eCisgXkluIExvamJhbiwg e2tlJ2F9IGFuZCB7Y2UndX0gYXJlIGFsd2F5cyBmcmVlIHZhcmlhYmxlcy4gQSBzZW50ZW5jZSBp biBOT0ktY2xhdXNlIG9yIE5VLWNsYXVzZSB3aXRoIHtjZSd1fSBpcyBvcGVuLiAoQSBzZW50ZW5j ZSBpbiBOVS1jbGFzZSB3aXRoIG5vIHtjZSd1fSBoYXMgYSB0cnV0aCB2YWx1ZSwgYnV0IGVhY2gg b2YgdGhlIGluc2lkZSBhbmQgdGhlIG91dHNpZGUgb2YgTlUtY2xhdXNlIGhhcyBhbiBpbmRlcGVu ZGVudCB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIGFuZCB0aHVzIGVhY2ggb2YgdGhlbSBoYXMgYW4g aW5kZXBlbmRlbnQgdHJ1dGggdmFsdWUgKGZvciBleGFtcGxlLCBzZWUgW2h0dHA6Ly9kYWcuZ2l0 aHViLmlvL2NsbC85LzcvfENMTDkuN10pLiBJbiBkZWZpbml0aW9ucyBvZiB3b3JkcyBpbiBMb2pi YW4sIGtvJ1YvZm8nViBzZXJpZXMge2tvJ2EsIGtvJ2UsIC4uLn0gb2Ygc2VsbWEnbyBLT2hBNCBh cmUgdXNlZCBhcyBmcmVlIHZhcmlhYmxlcywgYnV0IGl0IGlzIG9ubHkgYSBjdXN0b20gZm9yIGNv bnZlbmllbmNlLiBBbGwgY21hdm8gb2YgS09oQTIsMyw0LDUsNiBhbmQge3pvJ2V9IG9mIEtPaEE3 IGFyZSBlc3NlbnRpYWxseSBjb25zdGFudHMuIENvbnNpZGVyaW5nIHRoZSBjYXNlIHRoYXQgYm90 aCBjb25zdGFudHMgYW5kIGJvdW5kIHZhcmlhYmxlcyAodG8gYmUgZGVmaW5lZCBiZWxsb3cpIGFw cGVhciBpbiBhIHN0YXRlbWVudCwgJnF1b3Q7Y29uc3RhbnRzJnF1b3Q7IGFyZSBnZW5lcmFsbHkg Y29uc2lkZXJlZCB0byBiZSBTa29sZW0gZnVuY3Rpb25zLiBTZWUgKCh8I0JvdW5kX3ZhcmlhYmxl c19hbmRfY29uc3RhbnRzX2luX2Ffc3RhdGVtZW50fFNlY3Rpb24gMy4yLjIpKSBmb3IgZGV0YWls Ll4KO19fcXVhbnRpZnlfXzogSW4gc3Vic3RpdHV0aW5nIHBvc3NpYmxlIGFyZ3VtZW50cyBvbmUg Ynkgb25lIGZvciBhIHZhcmlhYmxlIGluIGEgc2VudGVuY2UsIGNvdW50IHRoZSBudW1iZXIgb2Yg cmVmZXJlbnRzIHRoYXQgbWFrZSB0aGUgc2VudGVuY2UgdHJ1ZSwgYW5kIHByZWZpeCB0aGUgbnVt YmVyIHRvIHRoZSB2YXJpYWJsZS4KO19fcXVhbnRpZmllcl9fOiBOdW1iZXIgdXNlZCBmb3IgcXVh bnRpZmljYXRpb24uIEJlc2lkZXMge3BhfSwge3JlfSwge3ZlaSBueSBzdSdpIHBhICh2ZSdvKX0g YW5kIHNvIG9uLCB7cm99ICJhbGwiIGFuZCB7c3Unb30gInRoZXJlIGlzIG9uZSBvciBtb3JlIiBh cmUgYWxzbyBxdWFudGlmaWVycy4KCistKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rCkBAIC1MaW5lczogODgtOTIgY2hhbmdlZCB0byArTGlu ZXM6IDg5LTkzIEBACistKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rCkVhY2ggb2Yge2J5fSBhbmQge2N5fSBpcyBhIHBsdXJhbCBjb25zdGFu dC4KCi0gVGhlIHByZWRpY2F0ZSB7anVrcGF9IChjb29rKSBjYW4gYmUgaW50ZXJwcmV0ZWQgY29s bGVjdGl2ZWx5IGFuZC9vciBkaXN0cmlidXRpdmVseSwgYnV0IHRoZSBwbHVyYWwgY29uc3RhbnQg e2J5IGpvJ3UgY3l9IHNheXMgbm90aGluZyBhYm91dCB3aGV0aGVyIGl0IHNhdGlzZmllcyB7anVr cGF9IGNvbGxlY3RpdmVseSBhbmQvb3IgZGlzdHJpYnV0aXZlbHkuIElmIHdlIHdhbnQgdG8gbWFr ZSBleHBsaWNpdCB0aGF0IHRoZXkgY29va2VkICZxdW90O2NvbGxlY3RpdmVseSZxdW90Oywgd2Ug c2F5IHtieSBqb2kgY3l9IHVzaW5nICgoQlBGSyBTZWN0aW9uOiBOb24tbG9naWNhbCBDb25uZWN0 aXZlc3x7am9pfSB0aGF0IGNvbWJpbmVzIHR3byBhcmd1bWVudHMgaW50byBhbiBhcmd1bWVudCB0 aGF0IHNhdGlzZmllcyBhIHByZWRpY2F0ZSBub24tZGlzdHJpYnV0aXZlbHkpKSwgb3Ige2x1J28g Ynkgam8ndSBjeX0gdXNpbmcge2x1J299IHRoYXQgd2lsbCBiZSBkaXNjdXNzZWQgaW4gKCh8I1Jl bGF0aW9uX2JldHdlZW5fbHVfYV9sdV9vX2x1X2lfYW5kX2dhZHJpfFNlY3Rpb24gMy4zKSkuIENv bnRyYXN0aXZlbHksIGlmIHdlIHdhbnQgdG8gbWFrZSBleHBsaWNpdCB0aGF0IHRoZXkgY29va2Vk ICZxdW90O2Rpc3RyaWJ1dGl2ZWx5JnF1b3Q7LCB3ZSBzYXkgIHtsdSdhIGJ5IGpvJ3UgY3l9IHVz aW5nIHtsdSdhfSB0aGF0IHdpbGwgYmUgZGlzY3Vzc2VkIGluICgofCNSZWxhdGlvbl9iZXR3ZWVu X2x1X2FfbHVfb19sdV9pX2FuZF9nYWRyaXxTZWN0aW9uIDMuMykpLiBIb3dldmVyLCB0aGVzZSBh cmd1bWVudHMgdGhhdCBzYXlzIGV4cGxpY2l0bHkgY29sbGVjdGl2aXR5IGFuZC9vciBkaXN0cmli dXRpdml0eSBhcmUgbm90IGFsd2F5cyBjb21tb25seSB1c2VkIGZvciBvdGhlciBwcmVkaWNhdGVz IGxpa2Uge2ptYWppfSBvciB7Y2l0a2F9LgorIFRoZSBwcmVkaWNhdGUge2p1a3BhfSAoY29vaykg Y2FuIGJlIGludGVycHJldGVkIGNvbGxlY3RpdmVseSBhbmQvb3IgZGlzdHJpYnV0aXZlbHksIGJ1 dCB0aGUgcGx1cmFsIGNvbnN0YW50IHtieSBqbyd1IGN5fSBzYXlzIG5vdGhpbmcgYWJvdXQgd2hl dGhlciBpdCBzYXRpc2ZpZXMge2p1a3BhfSBjb2xsZWN0aXZlbHkgYW5kL29yIGRpc3RyaWJ1dGl2 ZWx5LiBJZiB3ZSB3YW50IHRvIG1ha2UgZXhwbGljaXQgdGhhdCB0aGV5IGNvb2tlZCAmcXVvdDtj b2xsZWN0aXZlbHkmcXVvdDssIHdlIHNheSB7Ynkgam9pIGN5fSB1c2luZyB7am9pfSB0aGF0IHdp bGwgYmUgZGlzY3Vzc2VkIGluICgofCNSZWxhdGlvbl9iZXR3ZWVuX2pvX3Vfam9pX2NlX2FuZF9n YWRyaXxTZWN0aW9uIDMuNCkpLCBvciB7bHUnbyBieSBqbyd1IGN5fSB1c2luZyB7bHUnb30gdGhh dCB3aWxsIGJlIGRpc2N1c3NlZCBpbiAoKHwjUmVsYXRpb25fYmV0d2Vlbl9sdV9hX2x1X29fbHVf aV9hbmRfZ2Fkcml8U2VjdGlvbiAzLjMpKS4gQ29udHJhc3RpdmVseSwgaWYgd2Ugd2FudCB0byBt YWtlIGV4cGxpY2l0IHRoYXQgdGhleSBjb29rZWQgJnF1b3Q7ZGlzdHJpYnV0aXZlbHkmcXVvdDss IHdlIHNheSAge2x1J2EgYnkgam8ndSBjeX0gdXNpbmcge2x1J2F9IHRoYXQgd2lsbCBiZSBkaXNj dXNzZWQgaW4gKCh8I1JlbGF0aW9uX2JldHdlZW5fbHVfYV9sdV9vX2x1X2lfYW5kX2dhZHJpfFNl Y3Rpb24gMy4zKSkuIEhvd2V2ZXIsIHRoZXNlIGFyZ3VtZW50cyB0aGF0IHNheXMgZXhwbGljaXRs eSBjb2xsZWN0aXZpdHkgYW5kL29yIGRpc3RyaWJ1dGl2aXR5IGFyZSBub3QgYWx3YXlzIGNvbW1v bmx5IHVzZWQgZm9yIG90aGVyIHByZWRpY2F0ZXMgbGlrZSB7am1haml9IG9yIHtjaXRrYX0uCgpU aGUgZGlhZ3JhbSBiZWxsb3cgc2hvd3MgcmVsYXRpb25zIGNvbnN0cnVjdGVkIHdpdGgge21lfSBh bmQge2pvJ3V9IHJlcHJlc2VudGVkIHdpdGggYSBkaXJlY3RlZCBncmFwaCwgaW4gd2hpY2ggdGhl IHZlcnRpY2VzIHJlcHJlc2VudCBwbHVyYWwgY29uc3RhbnRzLgoKKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKQEAgLUxpbmVzOiAxMDMt MTI1IGNoYW5nZWQgdG8gK0xpbmVzOiAxMDQtMTI0IEBACistKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCndoZXJlIF9fcm8nb2lfXyBpcyBh biBleHBlcmltZW50YWwgY21hdm8gcHJvcG9zZWQgYnkgKCh4b3J4ZXN8bGEgeG9yeGVzKSksIHdo aWNoIGlzIGEgcGx1cmFsIHF1YW50aWZpZXIgbWVhbmluZyAiYWxsIi4gIHtybydvaSBkYX0gaXMg YSBib3VuZCBwbHVyYWwgdmFyaWFibGUgbWVhbmluZyAiZm9yIGFsbCB0aGF0IGNhbiBiZSBzdWJz dGl0dXRlZCBmb3Ige2RhfSIuIFRoaXMgZGVmaW5pdGlvbiBtZWFucyB0aGF0IFggaXMgY2FsbGVk IGFuIGluZGl2aWR1YWwgd2hlbiB0aGUgY29uZGl0aW9uICJmb3IgYWxsIHtkYX0gdGhhdCBhcmUg YW1vbmcgWCwgWCBpcyBhbW9uZyB7ZGF9IiBpcyBzYXRpc2ZpZWQuIEluIG90aGVyIHdvcmRzLCAi aW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSwgbm90aGluZyBvdGhlciB0aGFuIHtYfSBjYW4g YmUgc3Vic3RpdHV0ZWQgZm9yIHtkYX0gc3VjaCB0aGF0IHtYIG1lIGRhfSIgaXMgZXhwcmVzc2Vk IGJ5ICJYIGlzIGFuIGluZGl2aWR1YWwiLgoKLSBXaGVuIGVhY2ggb2YgWCBhbmQgWSBpcyBhbiBp bmRpdmlkdWFsLCB7WCBqbyd1IFl9IGlzIGNhbGxlZCBfX2luZGl2aWR1YWxzX18uIFdoZW4gZWFj aCBvZiBYIGFuZCBZIGlzIGFuIGluZGl2aWR1YWwgb3IgaW5kaXZpZHVhbHMsIHtYIGpvJ3UgWX0g aXMgY2FsbGVkIGluZGl2aWR1YWxzIGFzIHdlbGwuCisgV2hlbiBlYWNoIG9mIFggYW5kIFkgaXMg YW4gaW5kaXZpZHVhbCBhbmQgWCBpcyBub3QgZXF1YWwgdG8gWSwge1ggam8ndSBZfSBpcyBjYWxs ZWQgX19pbmRpdmlkdWFsc19fLiBXaGVuIGVhY2ggb2YgWCBhbmQgWSBpcyBhbiBpbmRpdmlkdWFs IG9yIGluZGl2aWR1YWxzLCB7WCBqbyd1IFl9IGlzIGNhbGxlZCBpbmRpdmlkdWFscyBhcyB3ZWxs LgoKISEhISMgRGlmZmVyZW5jZSBiZXR3ZWVuIHBsdXJhbCBhbmQgc2luZ3VsYXIKLSBBIHBsdXJh bCBjb25zdGFudCB0aGF0IGlzIGFuIGluZGl2aWR1YWwgaXMgY2FsbGVkIF9fc2luZ3VsYXIgY29u c3RhbnRfXy4KKyBBIHBsdXJhbCBjb25zdGFudCB0aGF0IHJlZmVycyB0byBhIHNpbmdsZSBpbmRp dmlkdWFsIGlzIGNhbGxlZCBhIF9fc2luZ3VsYXIgY29uc3RhbnRfXy4KCi0gTm8gbWF0dGVyIHdo ZXRoZXIgZWFjaCBvZiBYIGFuZCBZIGlzIHBsdXJhbCBvciBzaW5ndWxhciwge1ggam8ndSBZfSBp cyBub3QgYSBzaW5ndWxhciBjb25zdGFudC4gSXQgaXMgYmVjYXVzZSAKKyBVbmxlc3MgWD1ZIGFu ZCBYIGlzIGFuIGluZGl2aWR1YWwsIG5vIG1hdHRlciB3aGV0aGVyIGVhY2ggb2YgWCBhbmQgWSBp cyBwbHVyYWwgb3Igc2luZ3VsYXIsIHtYIGpvJ3UgWX0gaXMgbm90IGEgc2luZ3VsYXIgY29uc3Rh bnQuIEl0IGlzIGJlY2F1c2UgCl5YIG1lIFggam8ndSBZIGlqZW5haSBYIGpvJ3UgWSBtZSBYXgpo b2xkcyB0cnVlLCBhbmQgdGhlbiB7WCBqbyd1IFl9IGRvZXMgbm90IHNhdGlzZnkgdGhlIGNvbmRp dGlvbiBvZiBhbiBpbmRpdmlkdWFsIHtybydvaSBkYSBwb2kga2UnYSBtZSBYIGpvJ3UgWSB6byd1 IFggam8ndSBZIG1lIGRhfS4KCiEhISEjIEJvdW5kIHNpbmd1bGFyIHZhcmlhYmxlCi0gV2hlbiB0 aGUgZG9tYWluIG9mIGEgYm91bmQgcGx1cmFsIHZhcmlhYmxlIGlzIHJlc3RyaWN0ZWQgdG8gd2hh dCBpcyBhbiBpbmRpdmlkdWFsLCB0aGUgdmFyaWFibGUgaXMgY2FsbGVkIF9fYm91bmQgc2luZ3Vs YXIgdmFyaWFibGVfXy4KKyBXaGVuIHRoZSBkb21haW4gb2YgYSBib3VuZCBwbHVyYWwgdmFyaWFi bGUgaXMgcmVzdHJpY3RlZCB0byB3aGF0IGlzIGFuIGluZGl2aWR1YWwsIHRoZSB2YXJpYWJsZSBp cyBjYWxsZWQgX19ib3VuZCBzaW5ndWxhciB2YXJpYWJsZV9fLiBBIGJvdW5kIHNpbmd1bGFyIHZh cmlhYmxlIGNhbm5vdCB0YWtlIG1vcmUgdGhhbiBvbmUgaW5kaXZpZHVhbCB2YWx1ZSBhdCBhIHRp bWUuCntybyBkYX0gKGZvciBhbGwge2RhfSkgYW5kIHtzdSdvIGRhfSAodGhlcmUgaXMgYXQgbGVh c3Qgb25lIHtkYX0pLCB3aGljaCBhcmUgb2ZmaWNpYWxseSBkZWZpbmVkIGluIExvamJhbiwgYXJl IGJvdW5kIHNpbmd1bGFyIHZhcmlhYmxlcy4gVGhleSBjYW4gYmUgZGVmaW5lZCB3aXRoIGJvdW5k IHBsdXJhbCB2YXJpYWJsZXMgYXMgZm9sbG93czoKfHwKLSBybyBkYSB+aHN+fH5oc34gcm8nb2kg ZGEgcG9pIHJvJ29pIGRlIHBvaSBrZSdhIHhpIHBhIG1lIGtlJ2EgeGkgcmUgem8ndSBrZSdhIHhp IHJlIG1lIGRlPGJyIC8+c3UnbyBkYSB+aHN+fH5oc34gc3Unb2kgZGEgcG9pIHJvJ29pIGRlIHBv aSBrZSdhIHhpIHBhIG1lIGtlJ2EgeGkgcmUgem8ndSBrZSdhIHhpIHJlIG1lIGRlCisgcm8gZGEg fmhzfnx+aHN+IHJvJ29pIGRhIHBvaSBybydvaSBkZSBwb2kgZGUgbWUgZGEgem8ndSBkYSBtZSBk ZTxiciAvPnN1J28gZGEgfmhzfnx+aHN+IHN1J29pIGRhIHBvaSBybydvaSBkZSBwb2kgZGUgbWUg ZGEgem8ndSBkYSBtZSBkZQp8fApfX3N1J29pX18gaXMgYW4gZXhwZXJpbWVudGFsIGNtYXZvIHBy b3Bvc2VkIGJ5ICgoeG9yeGVzfGxhIHhvcnhlcykpLCBhbmQgaXMgYSBwbHVyYWwgcXVhbnRpZmll ciBtZWFuaW5nICJ0aGVyZSBpcy9hcmUiLiBOb3RlIHRoYXQge3N1J29pfSBpcyBfX25vdF9fICJh dCBsZWFzdCBvbmUiLiB7c3Unb2kgZGF9IGlzIGEgYm91bmQgcGx1cmFsIHZhcmlhYmxlIG1lYW5p bmcgInRoZXJlIGlzL2FyZSB7ZGF9Ii4KLSAKLSBGb3IgZXhhbXBsZSwgYSBwbHVyYWwgY29uc3Rh bnQge0Egam8ndSBCfSBjYW4gYmUgaW4gYSBkb21haW4gb2YgYSBib3VuZCBwbHVyYWwgdmFyaWFi bGUsIGJ1dCBpdCBjYW5ub3QgYmUgaW4gYSBkb21haW4gb2YgYSBib3VuZCBzaW5ndWxhciB2YXJp YWJsZSBiZWNhdXNlIGl0IGlzIG5vdCBhbiBpbmRpdmlkdWFsLgoKISEhISMgV2hhdCBpcyBuZWl0 aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzCgorLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKwpAQCAtTGluZXM6IDE3Mi0xNzkg Y2hhbmdlZCB0byArTGluZXM6IDE3MS0xNzggQEAKKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKCiEhIyBEZWZpbml0aW9uIG9mIGdhZHJp Ci0gO19fbG9fXyAoTEUpOiBJdCBpcyBwcmVmaXhlZCB0byBzZWxicmksIGFuZCBmb3JtcyBhIHBs dXJhbCBjb25zdGFudCB0aGF0IHJlZmVycyB0byB3aGF0IHNhdGlzZmllcyB4MSwgdGhlIGZpcnN0 IHBsYWNlIG9mIHRoZSBzZWxicmkuIElmIGEgcXVhbnRpZmllciBmb2xsb3dzIHtsb30sIHRoZSBx dWFudGlmaWVyIHJlcHJlc2VudHMgdGhlIHN1bSBvZiBhbGwgdGhlIHJlZmVyZW50cyBvZiB0aGUg cGx1cmFsIGNvbnN0YW50LiBJbiB0aGUgY2FzZSB0aGF0IGEgcXVhbnRpZmllciBmb2xsb3dzIHts b30sIGEgc3VtdGkgbWF5IGZvbGxvdyBpdCwgYW5kIHRoZSBxdWFudGlmaWVyIHJlcHJlc2VudHMg dGhlIHN1bSBvZiBhbGwgdGhlIHJlZmVyZW50cyBvZiB0aGUgc3VtdGkuCisgO19fbG9fXyAoTEUp OiBJdCBpcyBwcmVmaXhlZCB0byBzZWxicmksIGFuZCBmb3JtcyBhIHBsdXJhbCBjb25zdGFudCB0 aGF0IHJlZmVycyB0byB3aGF0IHNhdGlzZmllcyB4MSwgdGhlIGZpcnN0IHBsYWNlIG9mIHRoZSBz ZWxicmkuIElmIGEgcXVhbnRpZmllciBmb2xsb3dzIHtsb30sIHRoZSBxdWFudGlmaWVyIHJlcHJl c2VudHMgdGhlIGNvdW50IG9mIGFsbCB0aGUgcmVmZXJlbnRzIG9mIHRoZSBwbHVyYWwgY29uc3Rh bnQuIEluIHRoZSBjYXNlIHRoYXQgYSBxdWFudGlmaWVyIGZvbGxvd3Mge2xvfSwgYSBzdW10aSBt YXkgZm9sbG93IGl0LiBJbiB0aGlzIGNhc2UsIGl0IGZvcm1zIGEgcGx1cmFsIGNvbnN0YW50IHRo YXQgcmVmZXJzIHRvIHdoYXQgaXMvYXJlIGFtb25nICcnc3VtdGknJy4KfHwKbG8gW1tQQV0gYnJv ZGEgKGt1KSB+aHN+fH5oc34gem8nZSBub2kga2UnYSBicm9kYSBbW2dpJ2Ugemlsa2FuY3UgbGkg UEEgbG8gYnJvZGFdIChrdSdvKSB+aHN+fH5oc34gd2hhdCBpcy9hcmUgYnJvZGEgW1t0aGF0IGlz L2FyZSBQQSBpbiB0b3RhbF0KLSBsbyBQQSAnJ3N1bXRpJycgKGt1KSB+aHN+fH5oc34gbG8gUEEg bWUgJydzdW10aScnIChtZSd1KSAoa3UpIH5oc358fmhzfiB3aGF0IGlzL2FyZSBhbW9uZyAnJ3N1 bXRpJycgdGhhdCBpcy9hcmUgUEEgaW4gdG90YWwKKyBsbyBQQSAnJ3N1bXRpJycgKGt1KSB+aHN+ fH5oc34gbG8gUEEgbWUgJydzdW10aScnIChtZSd1KSAoa3UpIH5oc358fmhzfiB3aGF0IGlzL2Fy ZSBhbW9uZyAnJ3N1bXRpJycsIGFuZCBQQSBpbiB0b3RhbAp8fAp7a3V9LCB7a3Unb30sIHttZSd1 fSBhcmUgZWxpZGFibGUgdGVybWluYXRvcnMuCgorLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKwpAQCAtTGluZXM6IDIyNi0yMzAgY2hhbmdl ZCB0byArTGluZXM6IDIyNS0yMzMgQEAKKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKQmVjYXVzZSB7bG8naS9sZSdpL2xhJ2l9IGlzIGRl ZmluZWQgYnkgYW5vdGhlciBwbHVyYWwgY29uc3RhbnQge2xvIHNlbGNtaSBiZSBsby9sZS9sYX0s IGl0IGRvZXMgbm90IHJlZmVyIGRpcmVjdGx5IHRvIHJlZmVyZW50IG9mIHtsbyBicm9kYX0gb3Ig e2xvIFBBICcnc3VtdGknJ30sIGJ1dCByZWZlcmVudCBvZiB7bG8gc2VsY21pfS4KCi0gQW4gZW1w dHkgc2V0IGlzIHtsbyBzZWxjbWkgYmUgbm8gZGF9LCBhbmQgYW4gZXhwcmVzc2lvbiB7bG8gbm8g YnJvZGF9IGlzIG9mZmljaWFsbHkgbWVhbmluZ2xlc3MgKHNlZSAoKHwjSW5uZXJfcXVhbnRpZmlj YXRpb258U2VjdGlvbiAzLjEpKS4gVGhpcyBpbXBsaWVzIHRoYXQgYW4gZW1wdHkgc2V0IGNhbm5v dCBiZSBleHByZXNzZWQgd2l0aCB7bG8naS9sZSdpL2xhJ2l9LiAKKyBJbiBzZXQgdGhlb3J5LCBh biBlbXB0eSBzZXQgaXMgZGVmaW5lZCBhcyB7bG8gc2VsY21pIGJlIG5vIGRhfSwgYW5kIGFuIGV4 cHJlc3Npb24ge2xvIG5vIGJyb2RhfSBpcyBvZmZpY2lhbGx5IG1lYW5pbmdsZXNzIChzZWUgKCh8 I0lubmVyX3F1YW50aWZpY2F0aW9ufFNlY3Rpb24gMy4xKSkuIFRoaXMgaW1wbGllcyB0aGF0IGFu IGVtcHR5IHNldCBjYW5ub3QgYmUgZXhwcmVzc2VkIHdpdGgge2xvJ2kvbGUnaS9sYSdpfS4gPGJy IC8+PGJyIC8+QWNjb3JkaW5nIHRvIFtodHRwOi8vamJvdmxhc3RlLmxvamJhbi5vcmcvZGljdC9z ZWxjbWl8amJvdmxhc3RlXSwge3NlbGNtaX0gaXMgZGVmaW5lZCBhcyBmb2xsb3dzOnx8PGJyIC8+ eDEgc2VsY21pIHgyIH5oc358fmhzfiA9Y2EnZSB+aHN+fH5oc34geDEgc2UgY21pbWEgcm8gbG8g bWUgeDIgbWUndSBlIG5vIGxvIG5hIG1lIHgyIHx8PGJyIC8+SWYgd2UgYWNjZXB0IHRoaXMgZGVm aW5pdGlvbiwgYSBzZXQgcmVmZXJyZWQgdG8gYnkge2xvJ2kvbGUnaS9sYSdpfS1zdW10aSBjb25z aXN0cyBvZiBvbmx5IHRoZSByZWZlcmVudCBvZiB7bG8vbGUvbGEgW1tQQV0gYnJvZGF9IG9yIHts by9sZS9sYSBQQSAnJ3N1bXRpJyd9LiBDb250cmFzdGl2ZWx5LCBpZiB3ZSBkZWZpbmUgaXQgYXMg e3NlbGNtaX09e3NlIGNtaW1hfSwgdGhlIHNldCBtYXkgaW5jbHVkZSB3aGF0IGlzL2FyZSBvdGhl ciB0aGFuIHRoZSByZWZlcmVudCBvZiB7bG8vbGUvbGEgW1tQQV0gYnJvZGF9IG9yIHtsby9sZS9s YSBQQSAnJ3N1bXRpJyd9LiBJdCBpcyBub3QgeWV0IG9mZmljaWFsbHkgZGV0ZXJtaW5lZCB3aGlj aCBpbnRlcnByZXRhdGlvbiBpcyB0byBiZSBhY2NlcHRlZC4KCiEhISMgSW5uZXIgcXVhbnRpZmlj YXRpb24KCistKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rCkBAIC1MaW5lczogNDI1LTQyOCBjaGFuZ2VkIHRvICtMaW5lczogNDI4LTQ0NiBA QAorLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKwpBY2NvcmRpbmcgdG8gQlBGSydzIGRlZmluaXRpb24sIHtsb2l9IGNhbm5vdCBmb3JtIGEg cGx1cmFsIGNvbnN0YW50IHRoYXQgc2F0aXNmaWVzIGEgcHJlZGljYXRlIG5vbi1jb2xsZWN0aXZl bHkuIElmIHlvdSB3YW50IHRvIG1lYW4gImNhdHMgc2VlIG1lIG5vbi1jb2xsZWN0aXZlbHkiLCBh dm9pZCB7bG9pfSwgb3IgdXNlIHtsdSdhfSwgd2hpY2ggd2lsbCBiZSBkaXNjdXNzZWQgaW4gKCh8 I1JlbGF0aW9uX2JldHdlZW5fbHVfYV9sdV9vX2x1X2lfYW5kX2dhZHJpfFNlY3Rpb24gMy4zKSk6 Cl5sdSdhIHJlIGZpJ3UgY2kgbG9pIG1sYXR1IG1pIHZpc2thXgorIAorICEhISEjIEJvdW5kIHZh cmlhYmxlcyBhbmQgY29uc3RhbnRzIGluIGEgc3RhdGVtZW50CisgV2hlbiBib3RoZSBib3VuZCB2 YXJpYWJsZXMgYW5kIGNvbnN0YW50cyBhcHBlYXIgaW4gYSBzdGF0ZW1lbnQsIHRoZSBjb25zdGFu dHMgZG8gbm90IG5lY2Vzc2FyaWx5IHNwYW4gb3ZlciBhbGwgYm91bmQgdmFyaWFibGVzLiBBbHRo b3VnaCB0aGV5IGFyZSBjYWxsZWQgImNvbnN0YW50cyIsIGl0IGlzIG5vdCBnZW5lcmFsbHkgZGV0 ZXJtaW5lZCB3aGV0aGVyIHRoZXkgcmVmZXIgdG8gY29tbW9uIHJlZmVyZW50cyBmb3IgYWxsIHJl ZmVyZW50cyBpbiBkb21haW5zIG9mIHZhcmlhYmxlcywgb3IgdGhleSByZWZlciB0byBkaWZmZXJl bnQgcmVmZXJlbnRzIGRlcGVuZGVudCBvbiByZWZlcmVudHMgaW4gZG9tYWlucyBvZiB2YXJpYWJs ZXMuIFRoZSByZWFzb24gZm9sbG93cyBiZWxvdyAoW2h0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20v ZC9tc2cvbG9qYmFuL1JBdEU3WWstZHF3L0FCRGZPZnVveldFSnxEaXNjdXNzaW9uXSkuCisgCisg V2hlbiBzb21lIHN1bXRpIG9mIHRlcmJyaSBpbiBhIHN0YXRlbWVudCBhcmUgb21taXR0ZWQsIGl0 IGlzIGNvbnNpZGVyZWQgdGhhdCB0aGVyZSBhcmUgaW1wbGljaXQge3pvJ2V9IGluIHRob3NlIHBs YWNlcyAoW2h0dHA6Ly9kYWcuZ2l0aHViLmlvL2NsbC83LzcvfENMTCA3LjddKS4KKyBGb3IgZXhh bXBsZSwKKyBecm8gbWxhdHUgY3UgamJlbmF+cHB+Cisgfi9wcH4gICcnQWxsIGNhdHMgYXJlL3dp bGwgYmUgYm9ybi4nJ14KKyBzZWVtcyB0byBiZSB0cnVlIGZyb20gYSBzdGFuZGFyZCBwb2ludCBv ZiB2aWV3LiBBY2NvcmRpbmcgdG8gZGVmaW5pdGlvbiBvZiB0ZXJicmkgb2Yge2piZW5hfSwgaXQg aXMgY29uc2lkZXJlZCB0aGF0IHRocmVlIHN1bXRpIGFyZSBvbW1pdHRlZCwgYW5kIHRoaXMgc3Rh dGVtZW50IGhhcyB0aGUgc2FtZSBtZWFuaW5nIGFzCisgXnJvIG1sYXR1IGN1IGpiZW5hIHpvJ2Ug em8nZSB6bydlXgorIGluIHdoaWNoIHt6bydlfSBhcmUgZXhwbGljaXQuIAorIFVubGVzcyBhbGwg Y2F0cyBpbiB0aGlzIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSBhcmUvd2lsbCBiZSBib3JuIHRvIGNv bW1vbiBwYXJlbnRzIGF0IHRoZSBzYW1lIHRpbWUgYXQgdGhlIHNhbWUgcGxhY2UsIHRoZXNlIHt6 bydlfSBjYW5ub3QgYmUgY29uc2lkZXJlZCBhcyBjb21tb24gY29uc3RhbnRzIGZvciBhbGwgcmVm ZXJlbnRzIGluIGEgZG9tYWluIG9mIHtybyBtbGF0dX0uIEluIG9yZGVyIHRvIG1ha2Ugc3VjaCBh biBleHByZXNzaW9uIGxpa2Uge3JvIG1sYXR1IGN1IGpiZW5hfSBoYXZlIGludGVuZGVkIG1lYW5p bmcsICJjb25zdGFudHMiIG9mIExvamJhbiBjYW4gYmUgZGVwZW5kZW50IG9uIHJlZmVyZW50cyBp biBkb21haW5zIG9mIGJvdW5kIHZhcmlhYmxlcy4KKyAKKyAiQ29uc3RhbnRzIiBpbiB0aGlzIG1l YW5pbmcgY29ycmVzcG9uZCB0byBTa29sZW0gZnVuY3Rpb25zIGluIFNrb2xlbSBub3JtYWwgZm9y bXMgb2YgcHJlZGljYXRlIGxvZ2ljLiBUaGUgdGFibGUgYmVsb3cgc2hvd3MgY29tcGFyaXNvbiBv ZiBpbnRlcnByZXRhdGlvbnMgYmV0d2VlbiBwcmVkaWNhdGUgbG9naWMsIHhvcmxvIG9uIHdoaWNo IHRoaXMgY29tbWVudGFyeSBkZXBlbmRzIGFuZCBpbXBsaWNpdCBxdWFudGlmaWVyIChbaHR0cDov L2RhZy5naXRodWIuaW8vY2xsLzYvMS98Q0xMIHZlci4xLjAgQ2hhcHRlciA2XSkgd2hpY2ggd2Fz IGFib2xpc2hlZC4gVGhlIGV4cHJlc3Npb25zIHRoYXQgaGF2ZSB0aGUgc2FtZSB0cnV0aCB2YWx1 ZSBhcmUgYWxpZ25lZCBpbiB0aGUgc2FtZSBjb2x1bW4uIFVwcGVyIGNhc2UgWSByZXByZXNlbnRz IGEgcGx1cmFsIHZhcmlhYmxlLiBUaGUgcm93IG9mIHpvJ2UreG9ybG8gc2hvd3MgdW5vZmZpY2lh bCBzdWdnZXN0aW9uIG9mIGludGVycHJldGF0aW9uLiBJbiB0aGUgZ3JheSBwYXJ0IGluIHRoZSBy b3cgb2YgUHJlbmV4IG5vcm1hbCwgdW5vZmZpY2lhbCBleHByZXNzaW9ucyB3aXRoIGFuIGV4cGVy aW1lbnRhbCBjbWF2byB7c3Unb2l9IGFyZSBzaG93bi4gKENsaWNrIG9uIHRoZSB0YWJsZSB0byBl bmxhcmdlLikKKyB7aW1nIGZpbGVJZD0iMTIiIHRodW1iPSJ5IiBsaW5rPSJkaXNwbGF5MTEiIHJl bD0iYm94W2ddIn0KCiEhISMgUmVsYXRpb24gYmV0d2VlbiBsdSdhLCBsdSdvLCBsdSdpIGFuZCBn YWRyaQoKKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSsKQEAgLUxpbmVzOiA0NDUtNDQ4IGNoYW5nZWQgdG8gK0xpbmVzOiA0NjMtNDc4IEBA CistKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rCnx8CkluIHtub2l9IGNsYXVzZSBhZnRlciB7dnUnb30sIGl0IGlzIG1hZGUgZXhwbGljaXQg dGhhdCB0aGUgcmVmZXJlbnQgb2Yge2x1J2EgJydzdW10aScnfSBkaXN0cmlidXRpdmVseSBzYXRp c2ZpZXMgdGhlIHNlbnRlbmNlIHRoYXQgaW5jbHVkZXMgdGhpcyBzdW10aS4KKyAKKyAhISEjIFJl bGF0aW9uIGJldHdlZW4gam8ndSwgam9pLCBjZSBhbmQgZ2FkcmkKKyAoKEJQRksgU2VjdGlvbjog Tm9uLWxvZ2ljYWwgQ29ubmVjdGl2ZXN8QWNjb3JkaW5nIHRvIEJQRksgU2VjdGlvbikpIHtqbyd1 fSwge2pvaX0gYW5kIHtjZX0gb2Ygc2VsbWEnbyBKT0kgYXJlIGRlZmluZWQgYXMgZm9sbG93czp8 fAorIF9fWF9fIGpvJ3UgX19ZX18gfmhzfnx+aHN+IGxvIHN1em1laSBub2kgX19YX18gLmUgX19Z X18gLmUgbm8gZHJhdGEgYmUgX19YX18gLmUgX19ZX18gY3UgbWUga2UnYQorIF9fWF9fIGpvaSBf X1lfXyB+aHN+fH5oc34gbG8gZ3VubWEgYmUgX19YX18gLmUgX19ZX18gLmUgbm8gZHJhdGEgYmUg X19YX18gLmUgX19ZX18KKyBfX1hfXyBjZSBfX1lfXyB+aHN+fH5oc34gbG8gc2UgY21pbWEgYmUg X19YX18gLmUgX19ZX18gLmUgbm8gZHJhdGEgYmUgX19YX18gLmUgX19ZX18KKyB8fAorIFRoZXkg Y29ycmVzcG9uZCByZXNwZWN0aXZlbHkgdG8ge2xvfSwge2xvaX0sIHtsbydpfSBvZiBnYWRyaS4g VGhleSBjb25uZWN0IHR3byBzdW10aToge2pvJ3V9IGZvcm1zIGEgcGx1cmFsIGNvbnN0YW50LCB7 am9pfSBhIG5vbi1kaXN0cmlidXRpdmUgcGx1cmFsIGNvbnN0YW50LCB7Y2V9IGEgcGx1cmFsIGNv bnN0YW50IHRoYXQgcmVmZXJzIHRvIHNldChzKSB0aGF0IGNvbnNpc3Qocykgb2YgdGhlIHN1bXRp IHRoYXQge2NlfSBjb25uZWN0cy4gSW4gdGhlIEVuZ2xpc2ggZGVmaW5pdGlvbiBvZiB7am9pfSBv ZiBCUEZLLCAibm9uLWRpc3RyaWJ1dGl2ZSIgaXMgbWVudGlvbmVkLiBUaGlzIGZhY3QgYWxzbyBz dXBwb3J0cyB0aGUgc3VnZ2VzdGlvbiBpbiAoKHwjUmVsYXRpb25fYmV0d2Vlbl9sdV9hX2x1X29f bHVfaV9hbmRfZ2Fkcml8U2VjdGlvbiAzLjMpKSB0byBhZGQgIntsb2kgYnJvZGF9IGltcGxpZXMg dGhhdCByZWZlcmVudCBvZiB4MSBvZiBicm9kYSBjb2xsZWN0aXZlbHkgYW5kIG5vbi1kaXN0cmli dXRpdmVseSBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUiIHRvIHRoZSBkZWZpbml0aW9uIG9mIHtsb2l9 LgorIAorIEV2ZW4gaWYgX19YX18gb3IgX19ZX18gYXJlIGJvdW5kIHZhcmlhYmxlcywgdGhlc2Ug Y29ubmVjdGl2ZXMgZm9ybSBjb25zdGFudHMuIEluIHRoaXMgY2FzZSwgaXQgaXMgbm90IGRldGVy bWluZWQgd2hldGhlciB0aGUgZm9ybWVkIGNvbnN0YW50cyBkZXBlbmQgb24gX19YX18gYW5kIF9f WV9fLCBvciB0aGV5IGFyZSBjb21tb24gdG8gYWxsIF9fWF9fIGFuZCBfX1lfXyBpbiB0aGVpciBk b21haW5zLiBTZWUgKCh8I0JvdW5kX3ZhcmlhYmxlc19hbmRfY29uc3RhbnRzX2luX2Ffc3RhdGVt ZW50fFNlY3Rpb24gMy4yLjIpKSBmb3IgZGV0YWlsLgorIAorIEJlY2F1c2UgdGhleSBhcmUgY21h dm8gaW4gc2VsbWEnbyBKT0ksIHRoZXkgY2FuIGNvbm5lY3Qgd2hhdCBhcmUgbm90IHN1bXRpLCBi dXQgdGhlIG1lYW5pbmdzIGluIHRoaXMgdXNhZ2UgYXJlIG5vdCBvZmZpY2lhbGx5IGRlZmluZWQu IFRoZXkgY2FuIGZvcm0gYWxzbyBmb3JldGhvdWdodCBjb25uZWN0aXZlIHtKT0kgZ2kgX19YX18g Z2kgX19ZX199LiBXaGVuIHRoZSBmb3JldGhvdWdodCBjb25uZWN0aXZlcyBhcmUgdXNlZCBmb3Ig c3VtdGksIHRoZXkgZm9ybSB0aGUgc2FtZSBjb25zdGFudHMgYXMgdGhlIGFmdGVydGhvdWdodCB1 c2FnZSBkZWZpbmVkIGFib3ZlLgoKISEjIE5vdGVzCgoKCgoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpUaGUgbmV3IHBhZ2UgY29udGVu dCBmb2xsb3dzIGJlbG93LgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgoKKChCUEZLIFNlY3Rpb246IGdhZHJpfEJQRksncyBnYWRyaSBw YWdlKSkgY29udGFpbnMgZXhwcmVzc2lvbnMgbWlzbGVhZGluZyBwZW9wbGUgd2hvIGhhdmUgYXQg bGVhc3QgYSBsaXR0bGUga25vd2xlZGdlIG9mIGxvZ2ljIChbaHR0cHM6Ly9ncm91cHMuZ29vZ2xl LmNvbS9kL3RvcGljL2xvamJhbi9SQXRFN1lrLWRxdy9kaXNjdXNzaW9ufGRpc2N1c3Npb25dKS4K Ckkgd2lsbCBtYWtlIGhlcmUgYSBjb21tZW50YXJ5IG9uIEJQRksncyBnYWRyaSBzbyB0aGF0IGl0 IGlzIHVuZGVyc29vZCBieSB0aGVtIGNvcnJlY3RseS4KCgoKe21ha2V0b2N9CgoKCiEhIyBHbG9z c2FyeQoKV2Ugd2lsbCB1c2UgdGhlIGZvbGxvd2luZyB0ZXJtcyBpbiB0aGlzIGNvbW1lbnRhcnku Cgo7X19hcmd1bWVudCAoc3VtdGkpX186IFN5bWJvbCB0aGF0IHJlZmVycyB0byBhIHJlZmVyZW50 LCBvciB0aGF0IGFub3RoZXIgYXJndW1lbnQgY2FuIGJlIHN1YnN0aXR1dGVkIGZvci4KCl5HcmFt bWF0aWNhbGx5LCBhbGwgdGhlc2UgYXJlIHN1bXRpOiBhcmd1bWVudHMsIHt6aSdvfSB3aGljaCBy ZW1vdmVzIGEgcGxhY2UgZm9yIGFuIGFyZ3VtZW50LCB7a299IHdoaWNoIHJlZmVycyB0byBsaXN0 ZW5lcihzKSBhbmQgZm9ybXMgaW1wZXJhdGl2ZSwge21hfSB3aGljaCBmb3JtcyBpbnRlcnJvZ2F0 aXZlIHRvIGFzayB3aGljaCBzdW10aSBtYWtlcyB0aGUgc3RhdGVtZW50IHRydWUsIHN1bXRpIGFu ZCByZWxhdGl2ZSBjbGF1c2VzICh7em8nZSBub2kgYnJvZGF9Li4uKSwgcXVhbnRpZmllciBhbmQg c3VtdGkvc2VsYnJpICh7bm9kYX0sIHtjaSBsbyBicm9kYX0sIHtybyBicm9kYX0uLi4pICwgc3Vt dGkgY29ubmVjdGVkIGJ5IGNvbm5lY3RpdmVzICh7a28nYSAuZSBrbydlfS4uLikuIEhvd2V2ZXIs IGluIHRoaXMgYXJ0aWNsZSwgInN1bXRpIiByZWZlcnMgdG8gYW4gYXJndW1lbnQgb2YgbG9naWMg cmVwcmVzZW50ZWQgaW4gTG9qYmFuLl4KCjtfX3VuaXZlcnNlIG9mIGRpc2NvdXJzZV9fOiBTZXQg b2YgYWxsIHJlZmVyZW50cyBvZiBhcmd1bWVudHMuIEl0IGlzIG5hdHVyYWxseSBhIHVuaXZlcnNl IHRoYXQgaXMgZGlzY3Vzc2VkLiBBIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSBkZXBlbmRzIG9uIHRo ZSBjb250ZXh0LgoKO19fY29uc3RhbnRfXzogQXJndW1lbnQgdGhhdCByZWZlcnMgdG8gYSByZWZl cmVudC4KCjtfX3ZhcmlhYmxlX186IEFyZ3VtZW50IGFzIGEgcGxhY2UgaG9sZGVyLiBJdCBkb2Vz IG5vdCByZWZlciB0byBhbnl0aGluZy4gSXQgaXMgdG8gYmUgc3Vic3RpdHV0ZWQgZm9yLiBWYXJp YWJsZSBvdGhlciB0aGFuIGJvdW5kIHZhcmlhYmxlIHRoYXQgd2lsbCBiZSBkZWZpbmVkIGJlbGxv dyBpcyBjYWxsZWQgX19mcmVlIHZhcmlhYmxlX18uIFRoZSB0cnV0aCB2YWx1ZSBvZiBhIHNlbnRl bmNlIHRoYXQgaW5jbHVkZXMgYSBmcmVlIHZhcmlhYmxlIGlzIGluZGVmaW5pdGUuIFN1Y2ggYSBz ZW50ZW5jZSBpcyBjYWxsZWQgX19vcGVuIHNlbnRlbmNlX18uCgpeSW4gTG9qYmFuLCB7a2UnYX0g YW5kIHtjZSd1fSBhcmUgYWx3YXlzIGZyZWUgdmFyaWFibGVzLiBBIHNlbnRlbmNlIGluIE5PSS1j bGF1c2Ugb3IgTlUtY2xhdXNlIHdpdGgge2NlJ3V9IGlzIG9wZW4uIChBIHNlbnRlbmNlIGluIE5V LWNsYXNlIHdpdGggbm8ge2NlJ3V9IGhhcyBhIHRydXRoIHZhbHVlLCBidXQgZWFjaCBvZiB0aGUg aW5zaWRlIGFuZCB0aGUgb3V0c2lkZSBvZiBOVS1jbGF1c2UgaGFzIGFuIGluZGVwZW5kZW50IHVu aXZlcnNlIG9mIGRpc2NvdXJzZSwgYW5kIHRodXMgZWFjaCBvZiB0aGVtIGhhcyBhbiBpbmRlcGVu ZGVudCB0cnV0aCB2YWx1ZSAoZm9yIGV4YW1wbGUsIHNlZSBbaHR0cDovL2RhZy5naXRodWIuaW8v Y2xsLzkvNy98Q0xMOS43XSkuIEluIGRlZmluaXRpb25zIG9mIHdvcmRzIGluIExvamJhbiwga28n Vi9mbydWIHNlcmllcyB7a28nYSwga28nZSwgLi4ufSBvZiBzZWxtYSdvIEtPaEE0IGFyZSB1c2Vk IGFzIGZyZWUgdmFyaWFibGVzLCBidXQgaXQgaXMgb25seSBhIGN1c3RvbSBmb3IgY29udmVuaWVu Y2UuIEFsbCBjbWF2byBvZiBLT2hBMiwzLDQsNSw2IGFuZCB7em8nZX0gb2YgS09oQTcgYXJlIGVz c2VudGlhbGx5IGNvbnN0YW50cy4gQ29uc2lkZXJpbmcgdGhlIGNhc2UgdGhhdCBib3RoIGNvbnN0 YW50cyBhbmQgYm91bmQgdmFyaWFibGVzICh0byBiZSBkZWZpbmVkIGJlbGxvdykgYXBwZWFyIGlu IGEgc3RhdGVtZW50LCAiY29uc3RhbnRzIiBhcmUgZ2VuZXJhbGx5IGNvbnNpZGVyZWQgdG8gYmUg U2tvbGVtIGZ1bmN0aW9ucy4gU2VlICgofCNCb3VuZF92YXJpYWJsZXNfYW5kX2NvbnN0YW50c19p bl9hX3N0YXRlbWVudHxTZWN0aW9uIDMuMi4yKSkgZm9yIGRldGFpbC5eCgo7X19xdWFudGlmeV9f OiBJbiBzdWJzdGl0dXRpbmcgcG9zc2libGUgYXJndW1lbnRzIG9uZSBieSBvbmUgZm9yIGEgdmFy aWFibGUgaW4gYSBzZW50ZW5jZSwgY291bnQgdGhlIG51bWJlciBvZiByZWZlcmVudHMgdGhhdCBt YWtlIHRoZSBzZW50ZW5jZSB0cnVlLCBhbmQgcHJlZml4IHRoZSBudW1iZXIgdG8gdGhlIHZhcmlh YmxlLgoKO19fcXVhbnRpZmllcl9fOiBOdW1iZXIgdXNlZCBmb3IgcXVhbnRpZmljYXRpb24uIEJl c2lkZXMge3BhfSwge3JlfSwge3ZlaSBueSBzdSdpIHBhICh2ZSdvKX0gYW5kIHNvIG9uLCB7cm99 ICJhbGwiIGFuZCB7c3Unb30gInRoZXJlIGlzIG9uZSBvciBtb3JlIiBhcmUgYWxzbyBxdWFudGlm aWVycy4KCjtfX2JvdW5kIHZhcmlhYmxlX186IFZhcmlhYmxlIHByZWZpeGVkIGJ5IGEgcXVhbnRp Zmllci4gQXMgYSByZXN1bHQgb2YgcXVhbnRpZmljYXRpb24sIHRoZXJlIGlzIG5vIHJvb20gZm9y IHN1YnN0aXR1dGluZyBhbiBhcmJpdHJhcnkgYXJndW1lbnQgZm9yIHRoZSB2YXJpYWJsZS4KCl5J biBMb2piYW4sIHtkYX0sIHtkZX0gYW5kIHtkaX0gYXJlIGJvdW5kIHZhcmlhYmxlcy4gRm9yIGV4 YW1wbGUsIHtybyBkYSB6byd1IGRhIGJyb2RhfSBtZWFucyAiRm9yIGFsbCB7ZGF9IGluIHRoZSB1 bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIHtkYSBicm9kYX0gaXMgdHJ1ZS4iIEluIHRoZSBjYXNlIHRo YXQge2RhfSwge2RlfSBvciB7ZGl9IGFyZSBub3QgcHJlZml4ZWQgYnkgYSBxdWFudGlmaWVyLCB0 aGV5IGFyZSByZWdhcmRlZCBhcyBpbXBsaWNpdGx5IHByZWZpeGVkIGJ5IHtzdSdvfS5eCgo7X19k b21haW5fXzogUmFuZ2Ugb2YgcmVmZXJlbnRzIHRvIGJlIHN1YnN0aXR1dGVkIGZvciBhIHZhcmlh YmxlLCBvciByYW5nZSB0byBiZSBjb25zaWRlcmVkIGluIGNvdW50aW5nIHJlZmVyZW50cyBpbiBx dWFudGlmaWNhdGlvbi4KCl5JbiBMb2piYW4sIGEgZG9tYWluIG9mIGEgYm91bmQgdmFyaWFibGUg Y2FuIGJlIGxpbWl0ZWQgd2l0aCBhbiBleHByZXNzaW9uIHtkYSBwb2kuLi59LiBGb3IgZXhhbXBs ZSwge3JvIGRhIHBvaSBrZSdhIGJyb2RhIHpvJ3UgZGEgYnJvZGV9IG1lYW5zICJGb3IgYWxsIHtk YX0gdGhhdCBhcmUgeDEgb2Yge2Jyb2RhfSBpbiB0aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLCB7 ZGEgYnJvZGV9IGlzIHRydWUuIiBJZiB7cG9pLi4ufSBkb2VzIG5vdCBmb2xsb3cge2RhfSwgdGhl IGRvbWFpbiBpcyB0aGUgd2hvbGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLl4KCjtfX3RhdXRvbG9n eV9fOiBTZW50ZW5jZSB0aGF0IGlzIGFsd2F5cyB0cnVlIGluZGVwZW5kZW50bHkgb2YgY29udGV4 dC4ge2tvJ2EgZHUga28nYX0gZXRjLgoKO19fbG9naWNhbCBheGlvbXNfXzogU2VudGVuY2VzIHNl bGVjdGVkIGZyb20gdGF1dG9sb2dpZXMgc28gdGhhdCBhbGwgdGF1dG9sb2dpZXMgYXJlIHByb3Zl ZCBmcm9tIHRoZW0gd2l0aCBydWxlcyBvZiBpbmZlcmVuY2UgdGhhdCBhcmUgZGVmaW5lZC4KCgoK ISEjIFBsdXJhbCBxdWFudGlmaWNhdGlvbgoKSW4gb3JkZXIgdG8gdW5kZXJzdGFuZCBhcmd1bWVu dHMgb2YgTG9qYmFuIGZyb20gYSBsb2dpY2FsIHBvaW50IG9mIHZpZXcsIGl0IGlzIGVzc2VudGlh bCB0byBoYXZlIGEga25vd2xlZGdlIG9mIF9fcGx1cmFsIHF1YW50aWZpY2F0aW9uX18uCgoKClBs dXJhbCBxdWFudGlmaWNhdGlvbiB3YXMgaW52ZW50ZWQgaW4gb3JkZXIgdG8gZmFjaWxpdGF0ZSBl eHByZXNzaW9uIG9mIHByb3Bvc2l0aW9uIHRoYXQgaXMgbWVhbmluZ2Z1bCBvbmx5IHdoZW4gdGhl IHJlZmVyZW50IG9mIGFuIGFyZ3VtZW50IGlzIHBsdXJhbC4gCgpeCgo7RXhhbXBsZTogUGVvcGxl IGdhdGhlcmVkLCBjb29rZWQgYW5kIGF0ZS5eCgpMb2dpY2FsbHksIHRoaXMgc2VudGVuY2UgaXMg YSBwcm9wb3NpdGlvbiB0aGF0IGNvbnNpc3RzIG9mIGEgY29uc3RhbnQgInBlb3BsZSIgYW5kIHRo cmVlIHByZWRpY2F0ZXMgImdhdGhlcmVkIiAiY29va2VkIiBhbmQgImF0ZSIuIFRoZSBwcmVkaWNh dGVzIGFyZSBkaWZmZXJlbnQgZnJvbSBlYWNoIG90aGVyIGluIHByb3BlcnR5IG9mIHRyZWF0aW5n IHRoZSBhcmd1bWVudC4gV2Ugd2lsbCBkaXNjdXNzIHByZWNpc2VseSBob3cgdGhlIGFyZ3VtZW50 IGluIHRoZSBzZW50ZW5jZSBpcyB0cmVhdGVkLgoKCgohISEjIENvbGxlY3Rpdml0eSBhbmQgZGlz dHJpYnV0aXZpdHkKCgoKQ29uc2lkZXIgdGhlIGV4cHJlc3Npb24gInBlb3BsZSBnYXRoZXJlZCI6 IGJhc2VkIG9uIHRoZSBtZWFuaW5nIG9mIHRoZSBwcmVkaWNhdGUgImdhdGhlcmVkIiwgdGhlIGNv bnN0YW50ICJwZW9wbGUiIHNob3VsZCByZWZlciB0byBwbHVyYWwgcGVvcGxlLgoKV2hlbiByZWZl cmVudHMgb2YgYW4gYXJndW1lbnQgc2F0aXNmeSBhIHByZWRpY2F0ZSBhcyBjb2xsZWN0aXZlIHBs dXJhbCB0aGluZ3MgbGlrZSB0aGlzLCB3ZSBleHByZXNzIGl0IGFzICJhbiBhcmd1bWVudCBzYXRp c2ZpZXMgYW4gcHJlZGljYXRlIF9fY29sbGVjdGl2ZWx5X18iLCBvciAidGhlIGFyZ3VtZW50IGhh cyBfX2NvbGxlY3Rpdml0eV9fIi4KCgoKQXMgZm9yIGVhY2ggb2YgdGhlIHBsdXJhbCBwZW9wbGUg cmVmZXJyZWQgdG8gYnkgdGhlIGNvbnN0YW50LCAgZWFjaCBzZW50ZW5jZSBzdWNoIHRoYXQgIkFs aWNlIGdhdGhlcmVkIiwgIkJvYiBnYXRoZXJlZCIgYW5kIHNvIG9uIGlzIG5vbnNlbnNlLgoKV2hl biBlYWNoIHJlZmVyZW50IHJlZmVycmVkIHRvIGJ5IGEgY29uc3RhbnQgY2Fubm90IHNhdGlzZnkg YSBwcmVkaWNhdGUgYWxvbmUsIHdlIGV4cHJlc3MgaXQgYXMgImFuIGFyZ3VtZW50IHNhdGlzZmll cyBhbiBwcmVkaWNhdGUgX19ub24tZGlzdHJpYnV0aXZlbHlfXyIuCgoKCk9uIHRoZSBvdGhlciBo YW5kLCBpbiB0aGUgZXhwcmVzc2lvbiAicGVvcGxlIGF0ZSIsIGFsdGhvdWdoIHRoZSBjb25zdGFu dCAicGVvcGxlIiByZWZlcnMgdG8gcGx1cmFsIHBlb3BsZSwgdGhlIHByZWRpY2F0ZSAiYXRlIiBp cyBzYXRpc2ZpZWQgYnkgZWFjaCBwZXJzb24uIFRoYXQgaXMgdG8gc2F5LCBlYWNoIHNlbnRlbmNl IHN1Y2ggdGhhdCAiQWxpY2UgYXRlIiwgIkJvYiBhdGUiIGFuZCBzbyBvbiBpcyBtZWFuaW5nZnVs LgoKV2hlbiBlYWNoIHJlZmVyZW50IHJlZmVycmVkIHRvIGJ5IGEgY29uc3RhbnQgc2F0aXNmaWVz IGEgcHJlZGljYXRlIGFsb25lLCB3ZSBleHByZXNzIGl0IGFzICJhbiBhcmd1bWVudCBzYXRpc2Zp ZXMgYW4gcHJlZGljYXRlIF9fZGlzdHJpYnV0aXZlbHlfXyIsIG9yICJ0aGUgYXJndW1lbnQgaGFz IF9fZGlzdHJpYnV0aXZpdHlfXyIuCgoKCk1vcmVvdmVyLCBpZiB0aGUgcHJlZGljYXRlICJlYXQi IG1lYW5zIGFuIGFjdCAicHV0IGZvb2QgaW4gYSBtb3V0aCwgYml0ZSBpdCwgbGV0IGl0IHBhc3Mg dGhyb3VnaCBhbiBlc29waGFndXMgYW5kIHNlbmQgaXQgdG8gYSBzdG9tYWNoIiwgaXQgaXMgaGFy ZGx5IGNvbnNpZGVyZWQgdGhhdCAicGVvcGxlIiBzYXRpc2ZpZXMgImVhdCIgY29sbGVjdGl2ZWx5 LiBFdmVuIGlmIGEgcGVyc29uIGhlbHBzIGFub3RoZXIgdG8gZWF0LCB0aGUgaGVscGVyIGlzIG5v dCBlYXRlciwgYW5kIHRoZSBlYXRlciBpcyBub3QgY29sbGVjdGl2ZSBwZW9wbGUgYnV0IGFuIGlu ZGl2aWR1YWwuIAoKV2hlbiBlYWNoIHJlZmVyZW50IHJlZmVycmVkIHRvIGJ5IGEgY29uc3RhbnQg Y2Fubm90IHNhdGlzZnkgYSBwcmVkaWNhdGUgYXMgY29sbGVjdGl2ZSBwbHVyYWwgdGhpbmdzLCB3 ZSBleHByZXNzIGl0IGFzICJhbiBhcmd1bWVudCBzYXRpc2ZpZXMgYW4gcHJlZGljYXRlIF9fbm9u LWNvbGxlY3RpdmVseV9fIi4KCihIb3dldmVyLCBpdCBpcyBwb3NzaWJsZSB0byBpbnRlcnByZXQg dGhlIHByZWRpY2F0ZSAiZWF0IiBhcyBpbnZvbHZpbmcgY29sbGVjdGl2aXR5LiBGb3IgZXhhbXBs ZSwgaWYgaXQgaXMgaW50ZXJwcmV0ZWQgYXMgInB1dCBmb29kIGF3YXkgZnJvbSBvdXRzaWRlIHRv IGluc2lkZSBvZiBib2R5Iiwgd2UgbWF5IHNheSAiY29sbGVjdGl2ZWx5IGVhdCIgdG8gZXhwcmVz cyBhbiBldmVudCB0aGF0IHBlb3BsZSBlYXQgYW5kIGNvbnN1bWUgYSBtYXNzIG9mIGZvb2QgdG9n ZXRoZXIuKQoKCgpUaGVyZSBhcmUgYWxzbyBwcmVkaWNhdGVzIHRoYXQgYWxsb3cgYm90aCBwcm9w ZXJ0aWVzICJjb2xsZWN0aXZpdHkiIGFuZCAiZGlzdHJpYnV0aXZpdHkiLgoKIlBlb3BsZSBjb29r ZWQiIG1heSBtZWFuIHRoYXQgcGx1cmFsIHBlb3BsZSBrbmVhZCBwYXN0ZSBvZiBwaXp6YSB0b2dl dGhlciwgYW5kIHRoYXQgZWFjaCBvZiB0aGVtIGlzIGluIGNoYXJnZSBvZiBjYWtlcyBvciBwb3Qt YXUtZmV1LiBJbiB0aGlzIGNhc2UsIHRoZSBjb25zdGFudCAicGVvcGxlIiByZWZlcnMgdG8gcGx1 cmFsIHBlb3BsZSwgYW5kIHRoZXkgY29va2VkIHBpenphIGNvbGxlY3RpdmVseSwgY2FrZXMgYW5k IHBvdC1hdS1mZXUgZGlzdHJpYnV0aXZlbHkuIFRoZSBjb25zdGFudCAicGVvcGxlIiB0aHVzIHNh dGlzZmllcyB0aGUgcHJlZGljYXRlICJjb29rZWQiIGNvbGxlY3RpdmVseSBhbmQgZGlzdHJpYnV0 aXZlbHkuCgoKCk5vdGUgdGhhdCB0aGUgY29uc3RhbnQgInBlb3BsZSIgcmVmZXJzIHRvIHdoYXQg aXMgY29tbW9uIHRvIHRocmVlIHByZWRpY2F0ZXMgImdhdGhlcmVkIiwgImNvb2tlZCIgYW5kICJh dGUiLiBObyBtYXR0ZXIgaWYgYSBjb25zdGFudCBzYXRpc2ZpZXMgcHJlZGljYXRlcyBjb2xsZWN0 aXZlbHkgb3IgZGlzdHJpYnV0aXZlbHksIHRoZSByZWZlcmVudCBpcyB0aGUgc2FtZS4KCgoKSWYg d2UgdXNlIGFuIGFyZ3VtZW50ICJhIHNldCBvZiBwZW9wbGUiIGluIHRoZSBjYXNlIG9mIHNhdGlz ZnlpbmcgYSBwcmVkaWNhdGUgY29sbGVjdGl2ZWx5LCBpdCBtaWdodCBiZSBwb3NzaWJsZSB0byBp bnRlcnByZXQgdGhlIHByZWRpY2F0ZSAiZ2F0aGVyZWQiIHNvIHRoYXQgdGhlIGFyZ3VtZW50IHNh dGlzZmllcyBpdCwgYnV0IHRoZSBzYW1lIGFyZ3VtZW50IGNhbm5vdCBzYXRpc2Z5IHRoZSBwcmVk aWNhdGUgImF0ZSIsIGJlY2F1c2Ugd2UgY2FuIGhhcmRseSBzYXkgdGhhdCBhIHNldCBvZiBwZW9w bGUsIHdoaWNoIGlzIGFuIGFic3RyYWN0IGVudGl0eSwgcGVyZm9ybXMgImF0ZSIuCgoKClVzaW5n IHBsdXJhbCBjb25zdGFudHMgYW5kIHBsdXJhbCB2YXJpYWJsZXMgdGhhdCB3aWxsIGJlIGRpc2N1 c3NlZCBpbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zLCB3ZSBjYW4gZXhwcmVzcyBwbHVyYWwgdGhp bmdzIGluIHRoZSBmb3JtIG9mIHByZWRpY2F0ZSBsb2dpYyB3aXRob3V0IHVzaW5nIHNldHMuCgoK CiEhISMgUGx1cmFsIGNvbnN0YW50IGFuZCBwbHVyYWwgdmFyaWFibGUKCkFuIGFyZ3VtZW50IHRo YXQgcmVmZXJzIHRvIHJlZmVyZW50IHdpdGhvdXQgaW50cm9kdWNpbmcgYSBub3Rpb24gb2Ygc2V0 cywgd2l0aG91dCBkaXN0aW5ndWlzaGluZyBjb2xsZWN0aXZpdHkgYW5kIGRpc3RyaWJ1dGl2aXR5 LCB3aXRob3V0IGRpc3Rpbmd1aXNoaW5nIHBsdXJhbGl0eSBhbmQgc2luZ3VsYXJpdHksIGlzIGNh bGxlZCBfX3BsdXJhbCBjb25zdGFudF9fLgoKQSB2YXJpYWJsZSBmb3Igd2hpY2ggYSBwbHVyYWwg Y29uc3RhbnQgY2FuIGJlIHN1YnN0aXR1dGVkIGlzIGNhbGxlZCBfX3BsdXJhbCB2YXJpYWJsZV9f LgoKUXVhbnRpZnlpbmcgYSBwbHVyYWwgdmFyaWFibGUgaXMgY2FsbGVkIF9fcGx1cmFsIHF1YW50 aWZpY2F0aW9uX18uIEEgcXVhbnRpZmllciB1c2VkIGZvciBwbHVyYWwgcXVhbnRpZmljYXRpb24g aXMgY2FsbGVkIF9fcGx1cmFsIHF1YW50aWZpZXJfXy4gQSBwbHVyYWwgdmFyaWFibGUgcHJlZml4 ZWQgd2l0aCBhIHBsdXJhbCBxdWFudGlmaWVyIGlzIGNhbGxlZCBhIF9fYm91bmQgcGx1cmFsIHZh cmlhYmxlX18uCgoKCiEhISEjIG1lIGFuZCBqbyd1CgpXZSBpbnRyb2R1Y2UgcmVsYXRpb25zIGJl dHdlZW4gcGx1cmFsIGNvbnN0YW50cyBhbmQgcGx1cmFsIHZhcmlhYmxlczoge21lfSBhbmQge2pv J3V9LgoKCgp8fAoKWCBtZSBZIChtZSd1KSB+aHN+fH5oc34gWCBpcyBhbW9uZyBZCgp8fAoKWCBh bmQgWSByZXByZXNlbnQgaGVyZSBwbHVyYWwgY29uc3RhbnRzIG9yIHBsdXJhbCB2YXJpYWJsZXMu IEEgY2x1c3RlciB7bWUgWSAobWUndSl9IGlzIGEgc2VsYnJpIGluIExvamJhbiBncmFtbWFyLiB7 bWUndX0gaXMgYW4gZWxpZGFibGUgdGVybWluYXRvciBvZiBzdHJ1Y3R1cmUgYmVnaW5uaW5nIHdp dGgge21lfS4KCgoKe21lfSBoYXMgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIHdpdGggYXJiaXRy YXJ5IGFyZ3VtZW50cyBYLCBZIGFuZCBaOgoKIyBYIG1lIFggKHJlZmxleGl2aXR5KQoKIyBYIG1l IFkgaWplYm8gWSBtZSBaIGluYWphIFggbWUgWiAodHJhbnNpdGl2aXR5KQoKIyBYIG1lIFkgaWpl Ym8gWSBtZSBYIGlqbyBYIGR1IFkgKGlkZW50aXR5KQoKVGhlIHByb3BlcnR5IDMgbWVhbnMgdGhh dCB0aGUgaWRlbnRpdHkgYmV0d2VlbiByZWZlcmVudHMgb2YgWCBhbmQgWSBpcyByZXByZXNlbnRl ZCB3aXRoIHttZX0sIGFzIGEgcmVsYXRpb24gdGhhdCB7WCBtZSBZIGlqZWJvIFkgbWUgWH0uCgoK Cnx8CgpYIGpvJ3UgWSB+aHN+fH5oc34gWCBhbmQgWQoKfHwKCntqbyd1fSBjb21iaW5lcyB0d28g YXJndW1lbnRzIFggYW5kIFkgaW50byBvbmUgcGx1cmFsIGNvbnN0YW50IG9yIG9uZSBwbHVyYWwg dmFyaWFibGUuCgoKCntqbyd1fSBoYXMgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIHdpdGggYXJi aXRyYXJ5IGFyZ3VtZW50cyBYIGFuZCBZOgoKIyBYIG1lIFggam8ndSBZCgojIFggam8ndSBZIGR1 IFkgam8ndSBYCgojIFggam8ndSBYIGR1IFgKClRoZSBwcm9wZXJ0eSAyIG1lYW5zIHRoYXQgdGhl IHJlZmVyZW50IG9mIHRoZSB3aG9sZSBhcmd1bWVudCBkb2VzIG5vdCB2YXJ5IHdoZW4gdHdvIGFy Z3VtZW50cyBjb21iaW5lZCBieSB7am8ndX0gYXJlIGludGVyY2hhbmdlZCB3aXRoIGVhY2ggb3Ro ZXIuIFRoZSBwcm9wZXJ0eSAzIG1lYW5zIHRoYXQge2pvJ3V9IGRvZXMgbm90IGFkZCBhbnkgcmVm ZXJlbnQgd2hlbiBpdCBjb21iaW5lcyBhbiBhcmd1bWVudCB3aXRoIGl0c2VsZi4KCgoKVXNpbmcg e2pvJ3V9LCB0aGUgZm9sbG93aW5nIGV4cHJlc3Npb24gaXMgcG9zc2libGU6CgpeCgo7RXhhbXBs ZTogQiBhbmQgQyBnYXRoZXJlZCwgY29va2VkIGFuZCBhdGUuCgo7OiBieSBqbyd1IGN5IGptYWpp IGdpJ2UganVrcGEgZ2knZSBjaXRrYV4KCkVhY2ggb2Yge2J5fSBhbmQge2N5fSBpcyBhIHBsdXJh bCBjb25zdGFudC4KCgoKVGhlIHByZWRpY2F0ZSB7anVrcGF9IChjb29rKSBjYW4gYmUgaW50ZXJw cmV0ZWQgY29sbGVjdGl2ZWx5IGFuZC9vciBkaXN0cmlidXRpdmVseSwgYnV0IHRoZSBwbHVyYWwg Y29uc3RhbnQge2J5IGpvJ3UgY3l9IHNheXMgbm90aGluZyBhYm91dCB3aGV0aGVyIGl0IHNhdGlz ZmllcyB7anVrcGF9IGNvbGxlY3RpdmVseSBhbmQvb3IgZGlzdHJpYnV0aXZlbHkuIElmIHdlIHdh bnQgdG8gbWFrZSBleHBsaWNpdCB0aGF0IHRoZXkgY29va2VkICJjb2xsZWN0aXZlbHkiLCB3ZSBz YXkge2J5IGpvaSBjeX0gdXNpbmcge2pvaX0gdGhhdCB3aWxsIGJlIGRpc2N1c3NlZCBpbiAoKHwj UmVsYXRpb25fYmV0d2Vlbl9qb191X2pvaV9jZV9hbmRfZ2Fkcml8U2VjdGlvbiAzLjQpKSwgb3Ig e2x1J28gYnkgam8ndSBjeX0gdXNpbmcge2x1J299IHRoYXQgd2lsbCBiZSBkaXNjdXNzZWQgaW4g KCh8I1JlbGF0aW9uX2JldHdlZW5fbHVfYV9sdV9vX2x1X2lfYW5kX2dhZHJpfFNlY3Rpb24gMy4z KSkuIENvbnRyYXN0aXZlbHksIGlmIHdlIHdhbnQgdG8gbWFrZSBleHBsaWNpdCB0aGF0IHRoZXkg Y29va2VkICJkaXN0cmlidXRpdmVseSIsIHdlIHNheSAge2x1J2EgYnkgam8ndSBjeX0gdXNpbmcg e2x1J2F9IHRoYXQgd2lsbCBiZSBkaXNjdXNzZWQgaW4gKCh8I1JlbGF0aW9uX2JldHdlZW5fbHVf YV9sdV9vX2x1X2lfYW5kX2dhZHJpfFNlY3Rpb24gMy4zKSkuIEhvd2V2ZXIsIHRoZXNlIGFyZ3Vt ZW50cyB0aGF0IHNheXMgZXhwbGljaXRseSBjb2xsZWN0aXZpdHkgYW5kL29yIGRpc3RyaWJ1dGl2 aXR5IGFyZSBub3QgYWx3YXlzIGNvbW1vbmx5IHVzZWQgZm9yIG90aGVyIHByZWRpY2F0ZXMgbGlr ZSB7am1haml9IG9yIHtjaXRrYX0uCgoKClRoZSBkaWFncmFtIGJlbGxvdyBzaG93cyByZWxhdGlv bnMgY29uc3RydWN0ZWQgd2l0aCB7bWV9IGFuZCB7am8ndX0gcmVwcmVzZW50ZWQgd2l0aCBhIGRp cmVjdGVkIGdyYXBoLCBpbiB3aGljaCB0aGUgdmVydGljZXMgcmVwcmVzZW50IHBsdXJhbCBjb25z dGFudHMuCgoKCntpbWcgZmlsZUlkPSI3IiB0aHVtYj0ieSIgcmVsPSJib3hbZ10ifQoKCgohISEh IyBJbmRpdmlkdWFsCgpSZWZlcmVudCBvZiBhIHBsdXJhbCBjb25zdGFudCBpcyBub3QgbmVjZXNz YXJpbHkgcGx1cmFsOiBhIHBsdXJhbCBjb25zdGFudCBjYW4gcmVmZXIgdG8gb25lIGluZGl2aWR1 YWwuCgpfX0FuIGluZGl2aWR1YWxfXyBpcyBkZWZpbmVkIGFzIGZvbGxvd3M6Cgp8fAoKX19YIGlz IGFuIGluZGl2aWR1YWxfXyB+aHN+fH5oc34gPWNhJ2Ugfmhzfnx+aHN+IHJvJ29pIGRhIHBvaSBr ZSdhIG1lIFggem8ndSBYIG1lIGRhCgp8fAoKCgp3aGVyZSBfX3JvJ29pX18gaXMgYW4gZXhwZXJp bWVudGFsIGNtYXZvIHByb3Bvc2VkIGJ5ICgoeG9yeGVzfGxhIHhvcnhlcykpLCB3aGljaCBpcyBh IHBsdXJhbCBxdWFudGlmaWVyIG1lYW5pbmcgImFsbCIuICB7cm8nb2kgZGF9IGlzIGEgYm91bmQg cGx1cmFsIHZhcmlhYmxlIG1lYW5pbmcgImZvciBhbGwgdGhhdCBjYW4gYmUgc3Vic3RpdHV0ZWQg Zm9yIHtkYX0iLiBUaGlzIGRlZmluaXRpb24gbWVhbnMgdGhhdCBYIGlzIGNhbGxlZCBhbiBpbmRp dmlkdWFsIHdoZW4gdGhlIGNvbmRpdGlvbiAiZm9yIGFsbCB7ZGF9IHRoYXQgYXJlIGFtb25nIFgs IFggaXMgYW1vbmcge2RhfSIgaXMgc2F0aXNmaWVkLiBJbiBvdGhlciB3b3JkcywgImluIHRoZSB1 bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIG5vdGhpbmcgb3RoZXIgdGhhbiB7WH0gY2FuIGJlIHN1YnN0 aXR1dGVkIGZvciB7ZGF9IHN1Y2ggdGhhdCB7WCBtZSBkYX0iIGlzIGV4cHJlc3NlZCBieSAiWCBp cyBhbiBpbmRpdmlkdWFsIi4KCgoKV2hlbiBlYWNoIG9mIFggYW5kIFkgaXMgYW4gaW5kaXZpZHVh bCBhbmQgWCBpcyBub3QgZXF1YWwgdG8gWSwge1ggam8ndSBZfSBpcyBjYWxsZWQgX19pbmRpdmlk dWFsc19fLiBXaGVuIGVhY2ggb2YgWCBhbmQgWSBpcyBhbiBpbmRpdmlkdWFsIG9yIGluZGl2aWR1 YWxzLCB7WCBqbyd1IFl9IGlzIGNhbGxlZCBpbmRpdmlkdWFscyBhcyB3ZWxsLgoKCgohISEhIyBE aWZmZXJlbmNlIGJldHdlZW4gcGx1cmFsIGFuZCBzaW5ndWxhcgoKQSBwbHVyYWwgY29uc3RhbnQg dGhhdCByZWZlcnMgdG8gYSBzaW5nbGUgaW5kaXZpZHVhbCBpcyBjYWxsZWQgYSBfX3Npbmd1bGFy IGNvbnN0YW50X18uCgoKClVubGVzcyBYPVkgYW5kIFggaXMgYW4gaW5kaXZpZHVhbCwgbm8gbWF0 dGVyIHdoZXRoZXIgZWFjaCBvZiBYIGFuZCBZIGlzIHBsdXJhbCBvciBzaW5ndWxhciwge1ggam8n dSBZfSBpcyBub3QgYSBzaW5ndWxhciBjb25zdGFudC4gSXQgaXMgYmVjYXVzZSAKCl5YIG1lIFgg am8ndSBZIGlqZW5haSBYIGpvJ3UgWSBtZSBYXgoKaG9sZHMgdHJ1ZSwgYW5kIHRoZW4ge1ggam8n dSBZfSBkb2VzIG5vdCBzYXRpc2Z5IHRoZSBjb25kaXRpb24gb2YgYW4gaW5kaXZpZHVhbCB7cm8n b2kgZGEgcG9pIGtlJ2EgbWUgWCBqbyd1IFkgem8ndSBYIGpvJ3UgWSBtZSBkYX0uCgoKCiEhISEj IEJvdW5kIHNpbmd1bGFyIHZhcmlhYmxlCgpXaGVuIHRoZSBkb21haW4gb2YgYSBib3VuZCBwbHVy YWwgdmFyaWFibGUgaXMgcmVzdHJpY3RlZCB0byB3aGF0IGlzIGFuIGluZGl2aWR1YWwsIHRoZSB2 YXJpYWJsZSBpcyBjYWxsZWQgX19ib3VuZCBzaW5ndWxhciB2YXJpYWJsZV9fLiBBIGJvdW5kIHNp bmd1bGFyIHZhcmlhYmxlIGNhbm5vdCB0YWtlIG1vcmUgdGhhbiBvbmUgaW5kaXZpZHVhbCB2YWx1 ZSBhdCBhIHRpbWUuCgp7cm8gZGF9IChmb3IgYWxsIHtkYX0pIGFuZCB7c3UnbyBkYX0gKHRoZXJl IGlzIGF0IGxlYXN0IG9uZSB7ZGF9KSwgd2hpY2ggYXJlIG9mZmljaWFsbHkgZGVmaW5lZCBpbiBM b2piYW4sIGFyZSBib3VuZCBzaW5ndWxhciB2YXJpYWJsZXMuIFRoZXkgY2FuIGJlIGRlZmluZWQg d2l0aCBib3VuZCBwbHVyYWwgdmFyaWFibGVzIGFzIGZvbGxvd3M6Cgp8fAoKcm8gZGEgfmhzfnx+ aHN+IHJvJ29pIGRhIHBvaSBybydvaSBkZSBwb2kgZGUgbWUgZGEgem8ndSBkYSBtZSBkZQoKc3Un byBkYSB+aHN+fH5oc34gc3Unb2kgZGEgcG9pIHJvJ29pIGRlIHBvaSBkZSBtZSBkYSB6byd1IGRh IG1lIGRlCgp8fAoKX19zdSdvaV9fIGlzIGFuIGV4cGVyaW1lbnRhbCBjbWF2byBwcm9wb3NlZCBi eSAoKHhvcnhlc3xsYSB4b3J4ZXMpKSwgYW5kIGlzIGEgcGx1cmFsIHF1YW50aWZpZXIgbWVhbmlu ZyAidGhlcmUgaXMvYXJlIi4gTm90ZSB0aGF0IHtzdSdvaX0gaXMgX19ub3RfXyAiYXQgbGVhc3Qg b25lIi4ge3N1J29pIGRhfSBpcyBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZSBtZWFuaW5nICJ0aGVy ZSBpcy9hcmUge2RhfSIuCgoKCiEhISEjIFdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5v ciBpbmRpdmlkdWFscwoKUmVmZXJlbnQgb2YgYSBwbHVyYWwgY29uc3RhbnQgaXMgbm90IG5lY2Vz c2FyaWx5IGFuIGluZGl2aWR1YWwgb3IgaW5kaXZpZHVhbHMuIAoKSXQgaXMgcG9zc2libGUgdG8g ZGlzY3VzcyBhIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSBzdWNoIHRoYXQgcmVmZXJlbnQgb2YgYSBw bHVyYWwgY29uc3RhbnQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscy4K CgoKRm9yIGV4YW1wbGUsIGNvbnNpZGVyIHN1Y2ggYSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UgaW4g d2hpY2ggdGhlIGZvbGxvd2luZyBwcm9wb3NpdGlvbiBob2xkcyB0cnVlLgoKXnJvJ29pIGRhIHBv aSBrZSdhIG1lIGtvJ2Ega3UnbyBzdSdvaSBkZSB6byd1IGRlIG1lIGRhIGlqZW5haSBkYSBtZSBk ZSB+LS1+IENvbmRpdGlvbl8xXgoKSW4gb3RoZXIgd29yZHMsIGluIHRoaXMgdW5pdmVyc2Ugb2Yg ZGlzY291cnNlLCBmb3IgYWxsIFggc3VjaCB0aGF0IHtYIG1lIGtvJ2F9LCB0aGVyZSBpcyBhbHdh eXMgWSBzdWNoIHRoYXQge1kgbWUgWH0gYW5kIG5vdCB7WCBtZSBZfS4KCgoKO1RoZW9yZW06IElu IGEgdW5pdmVyc2Ugb2YgZGlzY291cnNlIHdoZXJlIENvbmRpdGlvbl8xIGlzIHRydWUsIHtrbydh fSBpcyBuZWl0aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzLgoKCgo7UHJvb2Y6IFN1 cHBvc2Uge2tvJ2F9IGlzIGFuIGluZGl2aWR1YWwuIEZyb20gdGhlIGRlZmluaXRpb24gb2YgImFu IGluZGl2aWR1YWwiOgoKXnJvJ29pIGRhIHBvaSBrZSdhIG1lIGtvJ2Egem8ndSBrbydhIG1lIGRh IH4tLX4gU3VwcG9zaXRpb25fMl4KClJlcGxhY2Uge3JvJ29pIGRhfSB3aXRoIHtuYWt1IHN1J29p IGRhIG5ha3V9OgoKXm5ha3Ugc3Unb2kgZGEgcG9pIGtlJ2EgbWUga28nYSBrdSdvIG5ha3Ugem8n dSBrbydhIG1lIGRhIH4tLX4gU3VwcG9zaXRpb25fMi0xXgoKTW92ZSB0aGUgaW5uZXItbW9zdCB7 bmFrdX0gaW50byB0aGUgcHJvcG9zaXRpb246CgpebmFrdSBzdSdvaSBkYSBwb2kga2UnYSBtZSBr bydhIHpvJ3UgbmFrdSBrbydhIG1lIGRhIH4tLX4gU3VwcG9zaXRpb25fMi0yXgoKUmVwbGFjZSB7 c3Unb2kgZGEgcG9pfSB3aXRoIHtpamV9IGFuZCBtb3ZlIGludG8gdGhlIHByb3Bvc2l0aW9uOgoK Xm5ha3Ugc3Unb2kgZGEgem8ndSBkYSBtZSBrbydhIGlqZSBuYWt1IGtvJ2EgbWUgZGEgfi0tfiBT dXBwb3NpdGlvbl8yLTNeCgpSZXBsYWNlIHtpamUgbmFrdX0gd2l0aCB7aWplbmFpfToKCl5uYWt1 IHN1J29pIGRhIHpvJ3UgZGEgbWUga28nYSBpamVuYWkga28nYSBtZSBkYSB+LS1+IFN1cHBvc2l0 aW9uXzItNF4KCkJ5IHRoZSB3YXksIGZyb20gYSBwcm9wZXJ0eSBvZiB7bWV9LAoKXmtvJ2EgbWUg a28nYSBeCgppcyBhbHdheXMgdHJ1ZS4ge2tvJ2F9IGlzIHRoZXJlZm9yZSBpbiB0aGUgZG9tYWlu IG9mIHtkYX0gb2YgQ29uZGl0aW9uXzEuIFJlcGxhY2Uge3JvJ29pIGRhfSBvZiBDb25kaXRpb25f MSB3aXRoIHtrbydhfSwgYW5kIGl0IHRodXMgaG9sZHMgdHJ1ZToKCl5zdSdvaSBkZSB6byd1IGRl IG1lIGtvJ2EgaWplbmFpIGtvJ2EgbWUgZGUgfi0tfiBDb25kaXRpb25fMS0xXgoKQ29uZGl0aW9u XzEtMSBhbmQgU3VwcG9zaXRpb25fMi00IGNvbnRyYWRpY3QgZWFjaCBvdGhlci4KClN1cHBvc2l0 aW9uXzIgaXMgdGh1cyByZWplY3RlZCBieSByZWR1Y3RpbyBhZCBhYnN1cmR1bS4KCkl0IG1lYW5z IHRoYXQge2tvJ2F9IGlzIG5vdCBhbiBpbmRpdmlkdWFsLgoKCgpNb3Jlb3Zlciwgd2hlbiB7a28n YX0gaXMgZXhwYW5kZWQgdG8ge0Egam8ndSBCfSwgZnJvbSBhIHByb3BlcnR5IG9mIHtqbyd1fSwg dGhlIGZvbGxvd2luZyBwcm9wb3NpdGlvbnMgaG9sZCB0cnVlOgoKXkEgbWUga28nYX5wcH4KCn4v cHB+QiBtZSBrbydhXgoKRWFjaCBvZiBBIGFuZCBCIGlzIGluIHRoZSBkb21haW4gb2Yge2RhfSBv ZiBDb25kaXRpb25fMS4gQ29uc2lkZXJpbmcgc2ltaWxhcmx5IHRvIENvbmRpdGlvbl8xLTEsIG5l aXRoZXIgQSBub3IgQiBpcyBhbiBpbmRpdmlkdWFsLiB7a28nYX0gaXMgdGh1cyBub3QgaW5kaXZp ZHVhbHMuCgpRLkUuRC4KCgoKV2hlbiB7a28nYX0gaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5v ciBpbmRpdmlkdWFscywgd2hhdCBhY3R1YWxseSBkb2VzIGl0IHJlZmVyIHRvPwoKV2UgbWF5IGlu dGVycHJldCB0aGF0IGl0IHJlZmVycyB0byB3aGF0IGlzIHJlZmVycmVkIHRvIGJ5IGEgbWF0ZXJp YWwgbm91biwgZm9yIGV4YW1wbGUuCgpCeSBhIHNwZWFrZXIgd2hvIHRoaW5rcyB0aGF0IGEgY3V0 LW9mZiBwaWVjZSBvZiBicmVhZCBpcyBhbHNvIGJyZWFkLCBicmVhZCBpcyByZWdhcmRlZCBhcyBu ZWl0aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzLgoKCgpbaHR0cHM6Ly9ncm91cHMu Z29vZ2xlLmNvbS9kL21zZy9sb2piYW4vUkF0RTdZay1kcXcvcENHZVlDRTlsMVFKfChSZWxhdGVk IGRpc2N1c3Npb246IGZvciB0aGUgY2FzZSBvZiB7a28nYX09e2xvIHNpZGJvfSwgSSB3cm90ZSB0 aGUgc2FtZSBwcm9vZiBvbmx5IGluIExvamJhbi4pXQoKCgohISEhIyBBIGxvZ2ljYWwgYXhpb20g b24gcGx1cmFsIGNvbnN0YW50CgpUaGUgZm9sbG93aW5nIGxvZ2ljYWwgYXhpb20gaXMgZ2l2ZW4g dG8gYW4gYXJiaXRyYXJ5IHBsdXJhbCBjb25zdGFudCBDOgoKXmdhbmFpIEMgYnJvZGEgZ2kgc3Un b2kgZGEgem8ndSBkYSBicm9kYV4KCgoKSXQgbWVhbnMgImluIGEgdW5pdmVyc2Ugb2YgZGlzY291 cnNlLCBpZiBhIHByb3Bvc2l0aW9uIGluIHdoaWNoIGEgcGx1cmFsIGNvbnN0YW50IGlzIHgxIG9m IHticm9kYX0gaG9sZHMgdHJ1ZSwgdGhlcmUgaXMgcmVmZXJlbnQgdGhhdCBpcyB4MSBvZiB7YnJv ZGF9Ii4KCgoKVGhhdCBpcyB0byBzYXksIGFuIGFyZ3VtZW50IHRoYXQgaGFzIG5vIHJlZmVyZW50 IGluIGEgdW5pdmVyc2Ugb2YgZGlzY291cnNlIGNhbm5vdCBiZSByZXByZXNlbnRlZCBieSBhIHBs dXJhbCBjb25zdGFudC4gQW4gYXJndW1lbnQgdGhhdCBoYXMgbm8gcmVmZXJlbnQgaXMgZXhwcmVz c2VkIGluIHRoZSBmb3JtIHtuYWt1IHN1J29pIGRhfSwgd2hpY2ggaXMgYSBuZWdhdGlvbiBvZiBh IGJvdW5kIHBsdXJhbCB2YXJpYWJsZSB7c3Unb2kgZGF9IG1lYW5pbmcgInRoZXJlIGlzL2FyZSIu CgoKCiEhIyBEZWZpbml0aW9uIG9mIGdhZHJpCgo7X19sb19fIChMRSk6IEl0IGlzIHByZWZpeGVk IHRvIHNlbGJyaSwgYW5kIGZvcm1zIGEgcGx1cmFsIGNvbnN0YW50IHRoYXQgcmVmZXJzIHRvIHdo YXQgc2F0aXNmaWVzIHgxLCB0aGUgZmlyc3QgcGxhY2Ugb2YgdGhlIHNlbGJyaS4gSWYgYSBxdWFu dGlmaWVyIGZvbGxvd3Mge2xvfSwgdGhlIHF1YW50aWZpZXIgcmVwcmVzZW50cyB0aGUgY291bnQg b2YgYWxsIHRoZSByZWZlcmVudHMgb2YgdGhlIHBsdXJhbCBjb25zdGFudC4gSW4gdGhlIGNhc2Ug dGhhdCBhIHF1YW50aWZpZXIgZm9sbG93cyB7bG99LCBhIHN1bXRpIG1heSBmb2xsb3cgaXQuIElu IHRoaXMgY2FzZSwgaXQgZm9ybXMgYSBwbHVyYWwgY29uc3RhbnQgdGhhdCByZWZlcnMgdG8gd2hh dCBpcy9hcmUgYW1vbmcgJydzdW10aScnLgoKfHwKCmxvIFtbUEFdIGJyb2RhIChrdSkgfmhzfnx+ aHN+IHpvJ2Ugbm9pIGtlJ2EgYnJvZGEgW1tnaSdlIHppbGthbmN1IGxpIFBBIGxvIGJyb2RhXSAo a3Unbykgfmhzfnx+aHN+IHdoYXQgaXMvYXJlIGJyb2RhIFtbdGhhdCBpcy9hcmUgUEEgaW4gdG90 YWxdCgpsbyBQQSAnJ3N1bXRpJycgKGt1KSB+aHN+fH5oc34gbG8gUEEgbWUgJydzdW10aScnICht ZSd1KSAoa3UpIH5oc358fmhzfiB3aGF0IGlzL2FyZSBhbW9uZyAnJ3N1bXRpJycsIGFuZCBQQSBp biB0b3RhbAoKfHwKCntrdX0sIHtrdSdvfSwge21lJ3V9IGFyZSBlbGlkYWJsZSB0ZXJtaW5hdG9y cy4KCgoKUHV0dGluZyBhIHF1YW50aWZpZXIgYWZ0ZXIgZ2FkcmkgbGlrZSB7bG8gUEF9IGlzIGNh bGxlZCBfX2lubmVyIHF1YW50aWZpY2F0aW9uX18sIGFuZCB0aGUgcXVhbnRpZmllciBpcyBjYWxs ZWQgX19pbm5lciBxdWFudGlmaWVyX18uIEFsdGhvdWdoIHRoZSB0ZXJtICJxdWFudGlmeSIgaXMg aW52b2x2ZWQsIGl0IGlzIGRpZmZlcmVudCBmcm9tIHF1YW50aWZpY2F0aW9uIG9mIGxvZ2ljLiBJ bm5lciBxdWFudGlmaWNhdGlvbiBkb2VzIG5vdCBpbnZvbHZlIGNvdW50aW5nIHJlZmVyZW50cyBv ZiBjb25zdGFudHMgdGhhdCBjYW4gYmUgc3Vic3RpdHV0ZWQgZm9yIGEgdmFyaWFibGUsIGJ1dCBj b3VudGluZyBhbGwgdGhlIHJlZmVyZW50cyBvZiBvbmUgcGx1cmFsIGNvbnN0YW50LiBJbm5lciBx dWFudGlmaWNhdGlvbiB3aWxsIGJlIGRpc2N1c3NlZCBtb3JlIHByZWNpc2VseSBpbiAoKHwjSW5u ZXJfcXVhbnRpZmljYXRpb258U2VjdGlvbiAzLjEpKS4KCgoKT24gdGhlIG90aGVyIGhhbmQsIHB1 dHRpbmcgYSBxdWFudGlmaWVyIGJlZm9yZSBnYWRyaSwgb3IgYmVmb3JlIGEgc3VtdGkgbW9yZSBn ZW5lcmFsbHksIGlzIGNhbGxlZCBfX291dGVyIHF1YW50aWZpY2F0aW9uX18sIGFuZCB0aGUgcXVh bnRpZmllciBpcyBjYWxsZWQgX19vdXRlciBxdWFudGlmaWVyX18uIE91dGVyIHF1YW50aWZpY2F0 aW9uIHdpbGwgYmUgZGlzY3Vzc2VkIG1vcmUgcHJlY2lzZWx5IGluICgofCNPdXRlcl9xdWFudGlm aWNhdGlvbnxTZWN0aW9uIDMuMikpLgoKCgpBbGwgc3VtdGkgZm9ybWVkIHdpdGggZ2FkcmkgYXJl IGRlZmluZWQgc28gdGhhdCB0aGV5IGFyZSBleHBhbmRlZCBpbnRvIGV4cHJlc3Npb25zIHdpdGgg e3pvJ2V9LiBUaGF0IGlzIHRvIHNheSwgdGhlIG1vc3QgZ2VuZXJhbCBwbHVyYWwgY29uc3RhbnQg aXMgcmVwcmVzZW50ZWQgYnkgYSBzaW5nbGUge3pvJ2V9LiBBIHN1bXRpIGZvcm1lZCB3aXRoIGdh ZHJpIGlzIHt6bydlfSBhY2NvbXBhbmllZCBieSBhbiBleHBsYW5hdGlvbi4KCl4KCjtFeGFtcGxl OiBQZW9wbGUgZ2F0aGVyZWQsIGNvb2tlZCBhbmQgYXRlLgoKOzogbG8gcHJlbnUgY3Ugam1hamkg Z2knZSBqdWtwYSBnaSdlIGNpdGthXgoKCgpXaGlsZSB0aGUgcHJlZGljYXRlIHtqdWtwYX0gKGNv b2spIGNhbiBiZSBpbnRlcnByZXRlZCBjb2xsZWN0aXZlbHkgYXMgd2VsbCBhcyBkaXN0cmlidXRp dmVseSwgdGhlIHBsdXJhbCBjb25zdGFudCB7bG8gcHJlbnV9IChwZW9wbGUpIGRvZXMgbm90IHNh eSBleHBsaWNpdGx5IGlmIGl0IHNhdGlzZmllcyB7anVrcGF9IGNvbGxlY3RpdmVseSBvciBkaXN0 cmlidXRpdmVseS4gSWYgd2Ugd2FudCB0byBzYXkgZXhwbGljaXRseSB0aGF0IHRoZXkgImNvbGxl Y3RpdmVseSIgY29va2VkLCB3ZSB1c2Uge2xvaX0sIHdoaWNoIHdpbGwgYmUgZGlzY3Vzc2VkIGxh dGVyLCBhbmQgc2F5IHtsb2kgcHJlbnV9LiBDb250cmFzdGl2ZWx5LCBpZiB3ZSB3YW50IHRvIHNh eSBleHBsaWNpdGx5IHRoYXQgdGhleSAiZGlzdHJpYnV0aXZlbHkiIGNvb2tlZCwgd2Ugc2F5IHty byBsbyBwcmVudX0gd2l0aCBhbiBvdXRlciBxdWFudGlmaWNhdGlvbiwgb3Ige2x1J2EgbG8gcHJl bnV9LiBIb3dldmVyLCBhIHN1bXRpIHRoYXQgc2F5cyBleHBsaWNpdGx5IGNvbGxlY3Rpdml0eSBv ciBkaXN0cmlidXRpdml0eSBpcyBub3QgbmVjZXNzYXJpbHkgYWJsZSB0byBiZSBzaGFyZWQgd2l0 aCBvdGhlciBwcmVkaWNhdGUgbGlrZSB7am1haml9IG9yIHtjaXRrYX0uCgoKCjtfX2xlX18gKExF KToge2xlIGJyb2RhfSByZWZlcnMgX19zcGVjaWZpY2FsbHlfXyB0byBhIHJlZmVyZW50IG9mIHts byBicm9kYX0sIGFuZCBfX2V4cGxpY2l0bHkgZXhwcmVzcyB0aGF0IHRoZSBzcGVha2VyIGhhcyB0 aGUgcmVmZXJlbnQgaW4gbWluZF9fLiBJdHMgbG9naWNhbCBwcm9wZXJ0eSBpcyB0aGUgc2FtZSBh cyB0aGF0IG9mIHtsb30uCgp8fAoKbGUgW1tQQV0gYnJvZGEgKGt1KSB+aHN+fH5oc34gem8nZSBu b2kgbWkga2UnYSBkbyBza2ljdSBsbyBrYSBjZSd1IGJyb2RhIFtbZ2knZSB6aWxrYW5jdSBsaSBQ QSBsbyBicm9kYV0gKGt1J28pIAoKbGUgUEEgJydzdW10aScnIChrdSkgfmhzfnx+aHN+IGxlIFBB IG1lICcnc3VtdGknJyAobWUndSkgKGt1KQoKfHwKCgoKO19fbGFfXyAoTEEpOiBJdCBpcyBwcmVm aXhlZCB0byBzZWxicmkgb3IgY21ldmxhLCBhbmQgZm9ybXMgYSBwbHVyYWwgY29uc3RhbnQgdGhh dCByZWZlcnMgdG8gd2hhdCBpcyBuYW1lZCB0aGUgc2VsYnJpIG9yIGNtZXZsYSBzdHJpbmcuIEl0 cyBsb2dpY2FsIHByb3BlcnR5IGlzIHRoZSBzYW1lIGFzIHRoYXQgb2Yge2xvfS4KCnx8CgpsYSBb W1BBXSBicm9kYSAoa3UpIH5oc358fmhzfiB6bydlIG5vaSBsdSBbW1BBXSBicm9kYSBsaSd1IGNt ZW5lIGtlJ2EgbWkgKGt1J28pIAoKbGEgUEEgJydzdW10aScnIChrdSkgfmhzfnx+aHN+IHpvJ2Ug bm9pIGx1IFBBIHN1bXRpIGxpJ3UgY21lbmUga2UnYSBtaSAoa3UnbykgCgp8fAoKCgo7X19sb2lf XyAoTEUpLCBfX2xlaV9fIChMRSksIF9fbGFpX18gKExBKToge2xvaS9sZWkvbGFpIGJyb2RhfSBy ZWZlcnMgdG8gYSByZWZlcmVudCBvZiB7bG8vbGUvbGEgYnJvZGF9LCBhbmQgX19leHBsaWNpdGx5 IGV4cHJlc3MgdGhhdCB0aGUgcmVmZXJlbnQgc2F0aXNmaWVzIGEgcHJlZGljYXRlIGNvbGxlY3Rp dmVseV9fLgoKfHwKCmxvaSBbW1BBXSBicm9kYSB+aHN+fH5oc34gbG8gZ3VubWEgYmUgbG8gW1tQ QV0gYnJvZGEKCmxlaSBbW1BBXSBicm9kYSB+aHN+fH5oc34gbG8gZ3VubWEgYmUgbGUgW1tQQV0g YnJvZGEKCmxhaSBbW1BBXSBicm9kYSB+aHN+fH5oc34gbG8gZ3VubWEgYmUgbGEgW1tQQV0gYnJv ZGEKCmxvaSBQQSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvIGd1bm1hIGJlIGxvIFBBICcnc3VtdGkn JwoKbGVpIFBBICcnc3VtdGknJyB+aHN+fH5oc34gbG8gZ3VubWEgYmUgbGUgUEEgJydzdW10aScn CgpsYWkgUEEgJydzdW10aScnIH5oc358fmhzfiBsbyBndW5tYSBiZSBsYSBQQSAnJ3N1bXRpJycK Cnx8CgpCZWNhdXNlIHtsb2kvbGVpL2xhaX0gaXMgdGh1cyBkZWZpbmVkIGJ5IGFub3RoZXIgcGx1 cmFsIGNvbnN0YW50IHtsbyBndW5tYSBiZSBsby9sZS9sYX0sIGl0IGRvZXMgbm90IHJlZmVyIGRp cmVjdGx5IHRvIHJlZmVyZW50IG9mIHtsbyBicm9kYX0gb3Ige2xvIFBBICcnc3VtdGknJ30sIGJ1 dCByZWZlcmVudCBvZiB7bG8gZ3VubWF9LiBUaGVyZWZvcmUsIGV2ZW4gaWYge2xvIGJyb2RhfSBv ciB7bG8gUEEgJydzdW10aScnfSBpcyBub3QgYW4gaW5kaXZpZHVhbCwge2xvaSBicm9kYX0gb3Ig e2xvaSBQQSAnJ3N1bXRpJyd9IGNhbiBiZSBhbiBpbmRpdmlkdWFsIHtsbyBndW5tYX0gdW5kZXIg dGhlIGZvbGxvd2luZyBjb25kaXRpb246Cgpecm8nb2kgZGEgcG9pIGtlJ2EgbWUgbG8gZ3VubWEg YmUgbG8vbGUvbGEgW1tQQV0gYnJvZGEgem8ndSBsbyBndW5tYSBiZSBsby9sZS9sYSBbW1BBXSBi cm9kYSBjdSBtZSBkYX5wcH4KCn4vcHB+cm8nb2kgZGEgcG9pIGtlJ2EgbWUgbG8gZ3VubWEgYmUg bG8vbGUvbGEgUEEgJydzdW10aScnIHpvJ3UgbG8gZ3VubWEgYmUgbG8vbGUvbGEgUEEgJydzdW10 aScnIGN1IG1lIGRhXgoKCgo7X19sbydpX18gKExFKSwgX19sZSdpX18gKExFKSwgX19sYSdpX18g KExBKToge2xvJ2kvbGUnaS9sYSdpIGJyb2RhfSByZWZlcnMgdG8gYSBzZXQgb3Igc2V0cyBvZiBp bmRpdmlkdWFsKHMpIHRoYXQgY29uc3RpdHV0ZShzKSBhIHBsdXJhbCBjb25zdGFudCB7bG8vbGUv bGEgYnJvZGF9LiBCZWNhdXNlIHtsbydpL2xlJ2kvbGEnaX0gZm9ybXMgYSBzZXQgb3Igc2V0cywg aXQgaXMgZGVmaW5lZCBvbmx5IHdoZW4gaXRzL3RoZWlyIG1lbWJlcihzKSB7bG8vbGUvbGEgYnJv ZGF9IGlzL2FyZSBhbiBpbmRpdmlkdWFsIG9yIGluZGl2aWR1YWxzLiBBIHNldCBpdHNlbGYgaXMg YWx3YXlzIGFuIGluZGl2aWR1YWwsIGFuZCBzZXRzIGFyZSBhbHdheXMgaW5kaXZpZHVhbHM6IHRo ZXJlIGlzIG5vIHNldCB0aGF0IGlzIG5vdCBhbiBpbmRpdmlkdWFsLgoKfHwKCmxvJ2kgW1tQQV0g YnJvZGEgfmhzfnx+aHN+IGxvIHNlbGNtaSBiZSBsbyBbW1BBXSBicm9kYQoKbGUnaSBbW1BBXSBi cm9kYSB+aHN+fH5oc34gbG8gc2VsY21pIGJlIGxlIFtbUEFdIGJyb2RhCgpsYSdpIFtbUEFdIGJy b2RhIH5oc358fmhzfiBsbyBzZWxjbWkgYmUgbGEgW1tQQV0gYnJvZGEKCmxvJ2kgUEEgJydzdW10 aScnIH5oc358fmhzfiBsbyBzZWxjbWkgYmUgbG8gUEEgJydzdW10aScnCgpsZSdpIFBBICcnc3Vt dGknJyB+aHN+fH5oc34gbG8gc2VsY21pIGJlIGxlIFBBICcnc3VtdGknJwoKbGEnaSBQQSAnJ3N1 bXRpJycgfmhzfnx+aHN+IGxvIHNlbGNtaSBiZSBsYSBQQSAnJ3N1bXRpJycKCnx8CgpCZWNhdXNl IHtsbydpL2xlJ2kvbGEnaX0gaXMgZGVmaW5lZCBieSBhbm90aGVyIHBsdXJhbCBjb25zdGFudCB7 bG8gc2VsY21pIGJlIGxvL2xlL2xhfSwgaXQgZG9lcyBub3QgcmVmZXIgZGlyZWN0bHkgdG8gcmVm ZXJlbnQgb2Yge2xvIGJyb2RhfSBvciB7bG8gUEEgJydzdW10aScnfSwgYnV0IHJlZmVyZW50IG9m IHtsbyBzZWxjbWl9LgoKCgpJbiBzZXQgdGhlb3J5LCBhbiBlbXB0eSBzZXQgaXMgZGVmaW5lZCBh cyB7bG8gc2VsY21pIGJlIG5vIGRhfSwgYW5kIGFuIGV4cHJlc3Npb24ge2xvIG5vIGJyb2RhfSBp cyBvZmZpY2lhbGx5IG1lYW5pbmdsZXNzIChzZWUgKCh8I0lubmVyX3F1YW50aWZpY2F0aW9ufFNl Y3Rpb24gMy4xKSkuIFRoaXMgaW1wbGllcyB0aGF0IGFuIGVtcHR5IHNldCBjYW5ub3QgYmUgZXhw cmVzc2VkIHdpdGgge2xvJ2kvbGUnaS9sYSdpfS4gCgoKCkFjY29yZGluZyB0byBbaHR0cDovL2pi b3ZsYXN0ZS5sb2piYW4ub3JnL2RpY3Qvc2VsY21pfGpib3ZsYXN0ZV0sIHtzZWxjbWl9IGlzIGRl ZmluZWQgYXMgZm9sbG93czp8fAoKeDEgc2VsY21pIHgyIH5oc358fmhzfiA9Y2EnZSB+aHN+fH5o c34geDEgc2UgY21pbWEgcm8gbG8gbWUgeDIgbWUndSBlIG5vIGxvIG5hIG1lIHgyIHx8CgpJZiB3 ZSBhY2NlcHQgdGhpcyBkZWZpbml0aW9uLCBhIHNldCByZWZlcnJlZCB0byBieSB7bG8naS9sZSdp L2xhJ2l9LXN1bXRpIGNvbnNpc3RzIG9mIG9ubHkgdGhlIHJlZmVyZW50IG9mIHtsby9sZS9sYSBb W1BBXSBicm9kYX0gb3Ige2xvL2xlL2xhIFBBICcnc3VtdGknJ30uIENvbnRyYXN0aXZlbHksIGlm IHdlIGRlZmluZSBpdCBhcyB7c2VsY21pfT17c2UgY21pbWF9LCB0aGUgc2V0IG1heSBpbmNsdWRl IHdoYXQgaXMvYXJlIG90aGVyIHRoYW4gdGhlIHJlZmVyZW50IG9mIHtsby9sZS9sYSBbW1BBXSBi cm9kYX0gb3Ige2xvL2xlL2xhIFBBICcnc3VtdGknJ30uIEl0IGlzIG5vdCB5ZXQgb2ZmaWNpYWxs eSBkZXRlcm1pbmVkIHdoaWNoIGludGVycHJldGF0aW9uIGlzIHRvIGJlIGFjY2VwdGVkLgoKCgoh ISEjIElubmVyIHF1YW50aWZpY2F0aW9uCgooKEJQRksgU2VjdGlvbjogZ2Fkcml8QlBGSyBkZWZp bmVzIGlubmVyIHF1YW50aWZpY2F0aW9uKSkgYXMgZm9sbG93czoKCnx8CgpsbyBbW1BBXSBicm9k YSB+aHN+fH5oc34gem8nZSBub2kga2UnYSBicm9kYSBbW2dpJ2Ugemlsa2FuY3UgbGkgUEEgbG8g YnJvZGFdCgpsbyBQQSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvIFBBIG1lICcnc3VtdGknJwoKfHwK ClRoYXQgaXMgdG8gc2F5LCBpbm5lciBxdWFudGlmaWVyIG1lYW5zIG51bWJlciBvZiByZWZlcmVu dCBjb3VudGVkIGJ5IHVuaXQge2xvIGJyb2RhfSBvciB7bG8gbWUgJydzdW10aScnfSB0aGF0IGlz IHgzIG9mIHt6aWxrYW5jdX0uIAoKSG93ZXZlciwgaW5zdGVhZCBvZiB7emlsa2FuY3V9LCB0aGUg bWVhbmluZyBvZiB3aGljaCBpcyB0b28gdmFndWUgZm9yIGRlZmluaXRpb24sIFtodHRwczovL2dy b3Vwcy5nb29nbGUuY29tL2QvbXNnL2xvamJhbi9SQXRFN1lrLWRxdy94aTJoNkExN0N1c0p8YW4g aWRlYSBvZiByZWRlZmluaXRpb24gdXNpbmcge21laX0gd2FzIHN1Z2dlc3RlZF0gYXMgZm9sbG93 czoKCgoKO0F4aW9tIDE6IHJvJ29pIGRhIHN1J28gcGEgbWVpCgo7RGVmaW5pdGlvbjp8fAoKKEQx KSBrbydhIHN1J28gTiBtZWkgfmhzfnx+aHN+ID1jYSdlIH5oc358fmhzfiBzdSdvaSBkYSBwb2kg bWUga28nYSBrdSdvIHN1J29pIGRlIHBvaSBtZSBrbydhIHpvJ3UgZ2UgZGEgc3UnbyBOLTEgbWVp IGdpbmFpIGRlIG1lIGRhCgooRDIpIGtvJ2EgTiBtZWkgfmhzfnx+aHN+ID1jYSdlIH5oc358fmhz fiBrbydhIHN1J28gTiBtZWkgZ2knZSBuYWkgc3UnbyBOKzEgbWVpIAoKKEQzKSBsbyBQQSBicm9k YSB+aHN+fH5oc34gPWNhJ2Ugfmhzfnx+aHN+IHpvJ2Ugbm9pIGtlJ2EgUEEgbWVpIGdpJ2UgYnJv ZGEKCnx8CgoKClVzaW5nIHRoZXNlIGRlZmluaXRpb25zIGFuZCBBeGlvbSAxLCB0aGUgZm9sbG93 aW5nIHRoZW9yZW0gd2lsbCBiZSBwcm92ZWQuCgpeSWYgYW5kIG9ubHkgaWYge2tvJ2EgcGEgbWVp fSwge2tvJ2F9IGlzIGFuIGluZGl2aWR1YWwuXgoKCgo7UHJvb2Y6IChEMikgaXMKCnx8Cgprbydh IE4gbWVpCXw9fCBrbydhIHN1J28gTiBtZWkgZ2knZSBuYWkgc3UnbyBOKzEgbWVpIAoKCQl8PXwg Z2Uga28nYSBzdSdvIE4gbWVpIC0tLS0tKFMxKQoKCQl8IHwgZ2kgbmFrdSBrbydhIHN1J28gTisx IG1laSAtLS0tLShTMikKCnx8CgpBcHBseWluZyAoRDEpIHRvIChTMiksIAoKfHwKCihTMikJCXw9 fCBuYWt1IHN1J29pIGRhIHBvaSBtZSBrbydhIGt1J28gc3Unb2kgZGUgcG9pIG1lIGtvJ2Egem8n dSAKCgkJfCB8IGdlIGRhIHN1J28gTiBtZWkgCgoJCXwgfCBnaW5haSBkZSBtZSBkYQoKCQl8PXwg cm8nb2kgZGEgcG9pIG1lIGtvJ2Ega3UnbyBybydvaSBkZSBwb2kgbWUga28nYSB6byd1CgoJCXwg fCBuYWt1IGdlIGRhIHN1J28gTiBtZWkgCgoJCXwgfCBnaSBuYWt1IGRlIG1lIGRhCgoJCXw9fCBy bydvaSBkYSBwb2kgbWUga28nYSBrdSdvIHJvJ29pIGRlIHBvaSBtZSBrbydhIHpvJ3UKCgkJfCB8 IGdhbmFpIGRhIHN1J28gTiBtZWkgCgoJCXwgfCBnaSBkZSBtZSBkYQoKfHwKCihEMikgaXMgdGhl cmVmb3JlCgp8fAoKa28nYSBOIG1laQl8PXwgZ2UgKFMxKSBnaSAoUzIpIAoKCQl8PXwgZ2Uga28n YSBzdSdvIE4gbWVpCgoJCXwgfCBnaSBybydvaSBkYSBwb2kgbWUga28nYSBrdSdvIHJvJ29pIGRl IHBvaSBtZSBrbydhIHpvJ3UKCgkJfCB8IGdhbmFpIGRhIHN1J28gTiBtZWkgCgoJCXwgfCBnaSBk ZSBtZSBkYQoKfHwKCldoZW4gTj0xLAoKfHwKCmtvJ2EgcGEgbWVpCXw9fCBnZSBrbydhIHN1J28g cGEgbWVpCgoJCXwgfCBnaSBybydvaSBkYSBwb2kgbWUga28nYSBrdSdvIHJvJ29pIGRlIHBvaSBt ZSBrbydhIHpvJ3UKCgkJfCB8IGdhbmFpIGRhIHN1J28gcGEgbWVpIAoKCQl8IHwgZ2kgZGUgbWUg ZGEgCgp8fAoKQmVjYXVzZSBvZiBBeGlvbSAxLCBpdCBpbXBsaWVzCgp8fAoKa28nYSBwYSBtZWkJ fD18IHJvJ29pIGRhIHBvaSBtZSBrbydhIGt1J28gcm8nb2kgZGUgcG9pIG1lIGtvJ2Egem8ndSBk ZSBtZSBkYQoKfHwKClRoZSByaWdodCBzaWRlIGltcGxpZXMge3JvJ29pIGRhIHBvaSBrZSdhIG1l IGtvJ2Egem8ndSBrbydhIG1lIGRhfSwgd2hpY2ggaXMgdGhlIGNvbmRpdGlvbiBmb3IgIntrbydh fSBpcyBhbiBpbmRpdmlkdWFsIi4gSXRzIGNvbnZlcnNlIGlzIGFsc28gdHJ1ZS4KClEuRS5ELgoK CgpUaGUgZGlhZ3JhbSBiZWxvdyBzaG93cyBhIHByb2NlZHVyZSBvZiBjb3VudGluZyBzb21ldGhp bmcgdXAgdG8gZm91ciByZXByZXNlbnRlZCB3aXRoIGEgZGlyZWN0ZWQgZ3JhcGguIEluIHRoaXMg ZGlhZ3JhbSwgbG9vcHMgc3VjaCBhcyB7WCBtZSBYfSBhcmUgb21pdHRlZCBmb3Igc2ltcGxpY2l0 eSwgdGhvdWdoIHRoZXkgZXhpc3QuIENvdW50aW5nIHVwIGNvcnJlc3BvbmRzIHRvIHNlbGVjdGlu ZyBhIHN1YmdyYXBoIG9mIGEgZGlyZWN0ZWQgZ3JhcGggZm9ybWVkIHdpdGgge21lfTogdGhlIHN1 YmdyYXBoIHRoYXQgaGFzIGEgZm9ybSBvZiB0cmVlIHRoYXQgaW5jbHVkZXMgYWxsIGxlYXZlcyAo Y29uc3RhbnRzIGVhY2ggb2Ygd2hpY2ggaXMgYW4gaW5kaXZpZHVhbCkgdG8gYmUgY291bnRlZCwg Zm9yIGV4YW1wbGUgdGhlIHBhcnQgb2YgbWFnZW50YSBjb2xvciBpbiB0aGUgZGlhZ3JhbS4KCgoK e2ltZyBmaWxlSWQ9IjEwIiB0aHVtYj0ieSIgcmVsPSJib3hbZ10ifQoKCgohISEhIyBSZXBlYXRp bmcgaW5uZXIgcXVhbnRpZmljYXRpb24KCkJlY2F1c2Uge2xvIFBBICcnc3VtdGknJ30gaXMgZGVm aW5lZCwgd2UgY2FuIHJlcGVhdCBpbm5lciBxdWFudGlmaWNhdGlvbiB0byBmb3JtIGFuIGFyZ3Vt ZW50LgoKXgoKO0V4YW1wbGU6IGxvIG11bG5vIGthcmR5Z3JpIGN1IGd1bm1hIGxvIHZvIGxvaSBw YWNpIGthcmRhIH5oc34gJydBIGZ1bGwgZGVjayBjb25zaXN0cyBvZiBmb3VyIGdyb3VwcyBvZiB0 aGlydGVlbiBjYXJkcy4nJwoKOzogc3UnbyBkYSB6byd1IGxvaSByZSBsbydpIHJvIG1va2NhIG5v aSBzZXBsaSBweSBub2kgbW9rY2Ega3UnbyBkYSBjdSByZWxjdWt0YWkgfmhzfiAnJ1R3byBzZXRz IG9mIHBvaW50cyB0aGF0IGFyZSBlcXVpZGlzdGFudCBmcm9tIGEgcG9pbnQgUCBpcyBhIGRvdWJs ZSBjaXJjbGUuJydeCgoKCiEhISEjIFByb2JsZW1zIG9uIGlubmVyIHF1YW50aWZpY2F0aW9uCgoh ISEhISMgQ2Fubm90IHNheSB6ZXJvCgoKCkJlY2F1c2UgYW4gYXJndW1lbnQgZm9ybWVkIGJ5IGdh ZHJpIGlzIGEgcGx1cmFsIGNvbnN0YW50LCB7bG8gYnJvZGF9IGltcGxpZXMge3N1J29pIGRhIHpv J3UgZGEgYnJvZGF9IGFjY29yZGluZyB0byB0aGUgbG9naWNhbCBheGlvbSBvbiBwbHVyYWwgY29u c3RhbnQgc2hvd24gaW4gKCh8I0FfbG9naWNhbF9heGlvbV9vbl9wbHVyYWxfY29uc3RhbnR8U2Vj dGlvbiAyLjIuNikpLiBUaGF0IGlzIHRvIHNheSwgdGhlIGV4cHJlc3Npb24ge2xvIG5vIGJyb2Rh fSBpbXBsaWVzICJ0aGVyZSBhcmUgd2hhdCBhcmUgYnJvZGEsIHdoaWNoIGFyZSBjb3VudGVkIDAi LCB3aGljaCBzZWVtcyBtZWFuaW5nbGVzcy4KCgoKVGhpcyBtZWFucyB0aGF0IG9mZmljaWFsIExv amJhbiBjYW5ub3QgZXhwcmVzcyBuZWdhdGlvbiBvZiBleGlzdGVuY2Ugb2YgcGx1cmFsIHZhcmlh YmxlIHtuYWt1IHN1J29pIGRhfSwgd2hpY2ggaXMgbmV2ZXJ0aGVsZXNzIG5lY2Vzc2FyeSwgZm9y IGV4YW1wbGUgaW4gdGhlIGZvbGxvd2luZyBzaXR1YXRpb246CgoKCl4gbG8geG8gcHJlbnUgY3Ug am1hamkgZ2knZSBqdWtwYSBnaSdlIGNpdGthIH5oc35+LS1+IG5vfnBwfgoKfi9wcH4nJyJIb3cg bWFueSBwZW9wbGUgZ2F0aGVyZWQsIGNvb2tlZCBhbmQgYXRlPyIgInplcm8uIicnXgoKCgpUaGlz IHJlc3BvbnNlIGlzIGFuIGFiYnJldmlhdGVkIGZvcm0gb2Yge2xvIG5vIHByZW51IGN1IGptYWpp IGdpJ2UganVrcGEgZ2knZSBjaXRrYX0uCgoKClRoaXMgcHJvcG9zaXRpb24gbWVhbnMgdGhhdCB7 bG8gbm8gcHJlbnV9IHNhdGlzZmllcyBzZWxicmkge2ptYWppfSBjb2xsZWN0aXZlbHkgYW5kIChq ZSkgbm9uLWRpc3RyaWJ1dGl2ZWx5LCB7anVrcGF9IGNvbGxlY3RpdmVseSBvciAoamEpIGRpc3Ry aWJ1dGl2ZWx5LCB7Y2l0a2F9IG5vbi1jb2xsZWN0aXZlbHkgYW5kIChqZSkgZGlzdHJpYnV0aXZl bHkuIEJlY2F1c2UgaXQgaW5jbHVkZXMgc2VsYnJpIHtqbWFqaX0gdG8gYmUgc2F0aXNmaWVkIG5v bi1kaXN0cmlidXRpdmVseSwgdGhlIHN1bXRpIGNhbm5vdCBiZSByZXBsYWNlZCBieSBuZWdhdGlv biBvZiBleGlzdGVuY2Ugb2YgYm91bmQgc2luZ3VsYXIgdmFyaWFibGUge25ha3Ugc3UnbyBkYX09 e25vIGRhfS4gTW9yZW92ZXIsIGJlY2F1c2UgaXQgaW5jbHVkZXMgc2VsYnJpIHtjaXRrYX0gdG8g YmUgc2F0aXNmaWVkIG5vbi1jb2xsZWN0aXZlbHksIHtsb30gb2YgdGhlIHN1bXRpIGNhbm5vdCBi ZSByZXBsYWNlZCBieSB7bG9pfT17bG8gZ3VubWEgYmUgbG99LgoKCgpGb3IgbWFraW5nIHN1Y2gg YSBwcm9wb3NpdGlvbiBtZWFuaW5nZnVsLCBpdCBpcyBlc3NlbnRpYWwgdG8gZ2l2ZSBhbiBleHBy ZXNzaW9uIHtsbyBubyBicm9kYX0gYSBtZWFuaW5nIG9mIG5lZ2F0aW9uIG9mIGV4aXN0ZW5jZSBv ZiBwbHVyYWwgdmFyaWFibGUuCgpGb3IgdGhpcyBwdXJwb3NlLCBJIHN1Z2dlc3QgdGhlIGZvbGxv d2luZyBkZWZpbml0aW9uIHZhbGlkIGluIHRoZSBjYXNlIHRoYXQgUEE9MCBmb3Ige2xvIFBBIGJy b2RhfS4KCjtVbm9mZmljaWFsIGRlZmluaXRpb24gb2Yge2xvIG5vIGJyb2RhfTp8fAoKbG8gbm8g YnJvZGEgfmhzfnx+aHN+ID1jYSdlIH5oc358fmhzfiBuYWt1IHN1J29pIGRhIHBvaSBrZSdhIGJy b2RhCgp8fAoKCgrvvIhJZiBpdCB3ZXJlIGRlZmluZWQgYXMge25ha3UgbG8gYnJvZGF9LCB0aGUg bmVnYXRpb24gd291bGQgaGF2ZSBzcGFubmVkIHRoZSB3aG9sZSBwcm9wb3NpdGlvbiwgYW5kIGl0 IHdvdWxkIG5vdCBoYXZlIGltcGxpZWQgcXVhbnRpZmljYXRpb24uIEkgYWJhbmRvbmVkIHRoZXJl Zm9yZSBzdWNoIGEgZGVmaW5pdGlvbi4pCgoKCiEhISEhIyBDYW5ub3QgcXVhbnRpZnkgbWF0ZXJp YWwgbm91biBvciBzb21ldGhpbmcKCkF4aW9tIDEgb2YgKCh8I0lubmVyX3F1YW50aWZpY2F0aW9u fFNlY3Rpb24gMy4xKSkgZXhjbHVkZXMgc3VtdGkgdGhhdCBpcyBuZWl0aGVyIGFuIGluZGl2aWR1 YWwgbm9yIGluZGl2aWR1YWxzIGZyb20gZXhwcmVzc2lvbnMgeyhzdSdvKSBOIG1laX0gYW5kIHts byBOIGJyb2RhfS4KCgoKQ2FuIHdlIHVzZSB7cGlQQX0gZm9yIHN1bXRpIHRoYXQgaXMgbmVpdGhl ciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscywgdGhlbj8gTm8uCgooKEJQRksgU2VjdGlv bjogZ2Fkcml8QWN0dWFsbHksIHBpUEEgaXMgZGVmaW5lZCBvbmx5IGZvciBvdXRlciBxdWFudGlm aWNhdGlvbi4pKQoKfHwKCnBpUEEgJydzdW10aScnIH5oc358fmhzfiBsbyBwaVBBIHNpJ2UgYmUg cGEgbWUgJydzdW10aScnCgp8fAoKQXMgd2UgY2FuIHNlZSBpbiB0aGUgZGVmaW5pdGlvbiwgdGhl IGJvZHkgb2Ygb3V0ZXIgcXVhbnRpZmljYXRpb24gYnkge3BpUEF9IGlzIHBsdXJhbCBjb25zdGFu dCB7bG8gcGlQQSBzaSdlfSwgd2hpY2ggaXMgbm90IGEgYm91bmQgc2luZ3VsYXIgdmFyaWFibGUu IEhvd2V2ZXIsIHgyIG9mIHtwaVBBIHNpJ2V9IGlzIHtwYSBtZSAnJ3N1bXRpJyd9LCB0byB3aGlj aCAoKEJQRksgU2VjdGlvbjogZ2Fkcml8dGhlIGRlZmluaXRpb24gb2YgUEEgYnJvZGEpKSBpcyBh cHBsaWVkOgoKfHwKClBBIGJyb2RhIH5oc358fmhzfiBQQSBkYSBwb2kgYnJvZGEgCgp8fAoKQXMg YSByZXN1bHQsIHtwaVBBICcnc3VtdGknJ30gaXMgZGVmaW5lZCBvbmx5IHdoZW4gdGhlcmUgaXMg YW4gaW5kaXZpZHVhbCB0aGF0IHNhdGlzZmllcyB4MSBvZiB7bWUgJydzdW10aScnfS4gVGhhdCBp cyB0byBzYXksIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscyBp cyBleGNsdWRlZCBhbHNvIGZyb20gYW4gZXhwcmVzc2lvbiBvZiBvdXRlciBxdWFudGlmaWNhdGlv biB3aXRoIHtwaVBBfS4KCgoKV2hhdCB3b3VsZCBiZSBpZiB7cGlQQX0gd2VyZSBkZWZpbmVkIGFs c28gZm9yIGlubmVyIHF1YW50aWZpY2F0aW9uPwoKSW4gdGhhdCBjYXNlLCB0aGUgZm9sbG93aW5n IGRlZmluaXRpb24gd291bGQgYmUgZGVzaXJhYmxlIHRvIGNvbmZvcm0gdGhlIGRlZmluaXRpb24g b2Yge3BpUEF9IG9mIG91dGVyIHF1YW50aWZpY2F0aW9uOgoKOyBVbm9mZmljaWFsIGRlZmluaXRp b24gb2Yge3BpUEF9IG9mIGlubmVyIHF1YW50aWZpY2F0aW9uOnx8CgpsbyBwaVBBIGJyb2RhIH5o c358fmhzfiA9Y2EnZSB+aHN+fH5oc34gem8nZSBub2kga2UnYSBwaVBBIHNpJ2UgYmUgbG8gcGEg YnJvZGEKCnx8CgpUaGlzIGRlZmluaXRpb24gb2Yge3BpUEF9IG9mIGlubmVyIHF1YW50aWZpY2F0 aW9uIHN0aWxsIGV4Y2x1ZGVzIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRp dmlkdWFscyB1bmxlc3Mge2xvIHBhIGJyb2RhfSBpcyBkZWZpbmVkIGluIGFub3RoZXIgd2F5IHNv IHRoYXQgaXQgY2FuIGJlIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlk dWFscy4KCgoKV2h5IGRvbid0IHdlIHVzZSB7UEEgc2knZX0gdG8gZXhwcmVzcyBxdWFudGlmaWNh dGlvbiBvZiB3aGF0IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHM/IAoK SXQgaXMgcG9zc2libGUsIGJ1dCAoKEJQRksgU2VjdGlvbjogTnVtZXJpYyBzZWxicml8QlBGSydz IGN1cnJlbnQgZGVmaW5pdGlvbiBvZiB7c2knZX0pKSBkZXBlbmRzIG9uIHtwYWdidX06Cgp8fAoK eDEgbnVtYmVyIHNpJ2UgeDIgfmhzfnx+aHN+IHgxIHBhZ2J1IHgyIGdpJ2Uga2xhbmkgbGkgbnVt YmVyIGxvIHNlIGdyYWR1IGJlIHgyCgp8fAoKSWYgd2UgaW50ZXJwcmV0IHtwYWdidX0gc28gdGhh dCB4MSBpcyBub3QgbGFyZ2VyIHRoYW4geDIgKGFuZCB0aGlzIGlzIG9yZGluYXJ5IGludGVycHJl dGF0aW9uKSwgW2h0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vZC9tc2cvbG9qYmFuL1JBdEU3WWst ZHF3L25VYlppd21CMk0wSnx7c2knZX0gaXMgdmVyeSBpbmNvbnZlbmllbnQgYmVjYXVzZSB0aGUg dW5pdCBzaG91bGQgYmUgY2hhbmdlZCBldmVyeSB0aW1lIGNvdW50aW5nIHVwLl0gSWYge3NpJ2V9 IHdlcmUgZGVmaW5lZCBzbyB0aGF0IFBBIG9mIHtQQSBzaSdlfSBjb3VsZCBiZSBsYXJnZXIgdGhh biAxLCB7c2knZX0gd291bGQgaGF2ZSBiZWVuIHByYWdtYXRpYyBmb3IgcXVhbnRpZmljYXRpb24g b2Ygd2hhdCBpcyBuZWl0aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzLgoKCgpCZXNp ZGVzIHRob3NlIGNvbnNpZGVyYXRpb25zLCBpZiB3ZSBhYmFuZG9uIEF4aW9tIDEgb2YgKCh8I0lu bmVyX3F1YW50aWZpY2F0aW9ufFNlY3Rpb24gMy4xKSksIERlZmluaXRpb25zIChEMSkgKEQyKSAo RDMpIGNhbiBiZSBhcHBsaWVkIHRvIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBp bmRpdmlkdWFscy4KCkluIHRoaXMgY2FzZSwgYSBzcGVha2VyIHNob3VsZCBzZWxlY3Qgc29tZSBw bHVyYWwgY29uc3RhbnRzIHtrbydhLCBrbydlLCAuLi59LCBhbmQgZGVjaWRlIHRoYXQge1tba28n YS9rbydlLy4uLl0gc3UnbyBwYSBtZWl9OyB0aGUgc2VsZWN0aW9uIG11c3QgYmUgZG9uZSBhdHRl bnRpdmVseSBzbyB0aGF0IHJlZmVyZW50cyBvZiBwbHVyYWwgY29uc3RhbnRzIHRoYXQgYXJlIHtw YSBtZWl9IGRvIG5vdCBvdmVybGFwIHdpdGggZWFjaCBvdGhlci4KClRob3NlIHByZXBhcmF0aW9u cyBvZiB7a28nYSwga28nZSwgLi4ufSBhbmQgKEQyKSBpbXBseSBvbmx5Cgp8fAoKZ2FuYWkgW1tr bydhL2tvJ2UvLi4uXSBwYSBtZWkgCgpnaSBybydvaSBkZSBwb2kgbWUgW1trbydhL2tvJ2UvLi4u XSB6byd1IGRlIG1lIFtba28nYS9rbydlLy4uLl0KCnx8CgpVbmRlciB0aGVzZSBjb25kaXRpb25z LCB0aGVyZSBpcyBubyBuZWVkIHRoYXQgd2hhdCBpcyB4MSBvZiB7cGEgbWVpfSBpcyBhbiBpbmRp dmlkdWFsLgoKCgpXaGVuIHdlIHVzZSBEZWZpbml0aW9ucyAoRDEpIChEMikgKEQzKSB3aXRob3V0 IHVzaW5nIEF4aW9tIDEgb2YgKCh8I0lubmVyX3F1YW50aWZpY2F0aW9ufFNlY3Rpb24gMy4xKSks IGEgY29uZGl0aW9uIHtnaSdlIHN1J28gcGEgbWVpfSBtdXN0IGJlIGFkZGVkIHRvIHtkZX0gb2Yg KEQxKe+8iFdoZW4gQXhpb20gMSBpcyB1c2VkLCByZWZlcmVudHMgaW4gdGhlIGRvbWFpbiBvZiB2 YXJpYWJsZSB7ZGV9IHNhdGlzZmllcyB0aGlzIGNvbmRpdGlvbiBhdXRvbWF0aWNhbGx5KS4gCgo7 VW5vZmZpY2lhbCBkZWZpbml0aW9ucyB1bmRlciB0aGUgY29uZGl0aW9uIHRoYXQgQXhpb20gMSBp cyBhYmFuZG9uZWQ6fHwKCihEMScpIGtvJ2Egc3UnbyBOIG1laSB+aHN+fH5oc34gPWNhJ2Ugfmhz fnx+aHN+IHN1J29pIGRhIHBvaSBtZSBrbydhIGt1J28gc3Unb2kgZGUgcG9pIG1lIGtvJ2EgZ2kn ZSBzdSdvIHBhIG1laSB6byd1IGdlIGRhIHN1J28gTi0xIG1laSBnaW5haSBkZSBtZSBkYQoKKEQy KSBrbydhIE4gbWVpIH5oc358fmhzfiA9Y2EnZSB+aHN+fH5oc34ga28nYSBzdSdvIE4gbWVpIGdp J2UgbmFpIHN1J28gTisxIG1laSAKCihEMykgbG8gUEEgYnJvZGEgfmhzfnx+aHN+ID1jYSdlIH5o c358fmhzfiB6bydlIG5vaSBrZSdhIFBBIG1laSBnaSdlIGJyb2RhCgp8fAoKVXNpbmcgdGhlc2Ug ZGVmaW5pdGlvbnMsIGlubmVyIHF1YW50aWZpY2F0aW9uIG9mIHdoYXQgaXMgbmVpdGhlciBhbiBp bmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscyBiZWNvbWVzIHBvc3NpYmxlLiBNb3Jlb3ZlciwgIlVu b2ZmaWNpYWwgZGVmaW5pdGlvbiBvZiB7cGlQQX0gb2YgaW5uZXIgcXVhbnRpZmljYXRpb24iIGRp c2N1c3NlZCBhYm92ZSBiZWNvbWVzIGFibGUgdG8gYmUgYXBwbGllZCB0byB3aGF0IGlzIG5laXRo ZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHMuCgoKClRoZSBkaWFncmFtIGJlbG93IHNo b3dzIGEgcHJvY2VkdXJlIG9mIGNvdW50aW5nIHVwIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlk dWFsIG5vciBpbmRpdmlkdWFscyByZXByZXNlbnRlZCB3aXRoIGEgZGlyZWN0ZWQgZ3JhcGguIElu IHRoaXMgZGlhZ3JhbSwgbG9vcHMgc3VjaCBhcyB7WCBtZSBYfSBhcmUgb21pdHRlZCBmb3Igc2lt cGxpY2l0eSwgdGhvdWdoIHRoZXkgZXhpc3QuIEFtb25nIGluZmluaXRlIG51bWJlciBvZiB2ZXJ0 aWNlcyAocGx1cmFsIGNvbnN0YW50cyksIHRoZSB2ZXJ0aWNlcyB0aGF0IGEgc3BlYWtlciBzZWxl Y3RlZCBhcyB7c3UnbyBwYSBtZWl9IGFyZSBjb2xvcmVkIHBpbmsuIENvdW50aW5nIHVwIGNvcnJl c3BvbmRzIHRvIHNlbGVjdGluZyBhIHRyZWUgdGhhdCBpcyBhIHN1YmdyYXBoIG9mIGEgZGlyZWN0 ZWQgZ3JhcGggZm9ybWVkIHdpdGgge21lfSwgZm9yIGV4YW1wbGUgdGhlIHBhcnQgb2YgYmx1ZSBj b2xvciBpbiB0aGUgZGlhZ3JhbS4KCgoKe2ltZyBmaWxlSWQ9IjkiIHRodW1iPSJ5IiByZWw9ImJv eFtnXSJ9CgoKCiEhISMgT3V0ZXIgcXVhbnRpZmljYXRpb24KCigoQlBGSyBTZWN0aW9uOiBnYWRy aXxCUEZLIGRlZmluZXMgb3V0ZXIgcXVhbnRpZmljYXRpb24pKSBhcyBmb2xsb3dzOgoKfHwKClBB ICcnc3VtdGknJyB+aHN+fH5oc34gUEEgZGEgcG9pIGtlJ2EgbWUgJydzdW10aScnCgpQQSBicm9k YSB+aHN+fH5oc34gUEEgZGEgcG9pIGJyb2RhIAoKcGlQQSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxv IHBpUEEgc2knZSBiZSBwYSBtZSAnJ3N1bXRpJycKCnx8CgoKCk91dGVyIHF1YW50aWZpY2F0aW9u IGV4Y2VwdCB7cGlQQX0gZm9ybXMge1BBIGRhfSwgd2hpY2ggaXMgb2ZmaWNpYWxseSBhIGJvdW5k IHNpbmd1bGFyIHZhcmlhYmxlLiBJdCBpbXBsaWVzIHRoYXQgdGhlc2UgYXJndW1lbnRzIHNhdGlz ZnkgYSBwcmVkaWNhdGUgX19kaXN0cmlidXRpdmVseV9fLiBGb3IgZXhhbXBsZSwgaXQgaXMgbWVh bmluZ2xlc3MgdG8gdXNlIHtjaSBsbyBwcmVudX0gYXMgeDEgb2Yge2ptYWppfSAoZ2F0aGVyKSwg YmVjYXVzZSBpdCBpcyBub3QgdGhlIGNhc2UgdGhhdCBlYWNoIG9mIHRocmVlIHBlb3BsZSBzYXRp c2ZpZXMgdGhlIHByZWRpY2F0ZSAiZ2F0aGVyIi4KCgoKSG93ZXZlciwgaWYgd2UgdXNlIHVub2Zm aWNpYWwgcGx1cmFsIHF1YW50aWZpZXJzIHtybydvaX0gb3Ige3N1J29pfSBmb3IgUEEsIG91dGVy IHF1YW50aWZpY2F0aW9uIGNhbiBmb3JtIGJvdW5kIHBsdXJhbCB2YXJpYWJsZS4gRm9yIGV4YW1w bGUsCgpec3Unb2kgcHJlbnUgY3Ugam1hamkgfmhzfiB0aGVyZSBhcmUgcGVvcGxlIHdobyBnYXRo ZXIuXgoKVGhpcyBwcm9wb3NpdGlvbiBpcyBpbXBsaWVkIGJ5IGEgcHJvcG9zaXRpb24gaW5jbHVk aW5nIHBsdXJhbCBjb25zdGFudAoKXmxvIHByZW51IGN1IGptYWppIH5oc34gUGVvcGxlIGdhdGhl ci5eCgp3aXRoIHRoZSBsb2dpY2FsIGF4aW9tIGluICgofCNBX2xvZ2ljYWxfYXhpb21fb25fcGx1 cmFsX2NvbnN0YW50fFNlY3Rpb24gMi4yLjYpKS4KCgoKe1BBIGxvIGJyb2RhfSBkaWZmZXJzIGZy b20ge1BBIGJyb2RhfSBpbiBkb21haW4gb2YgcmVmZXJlbnRzIG9mIGJvdW5kIHNpbmd1bGFyIHZh cmlhYmxlIHRvIGJlIGNvdW50ZWQuIFRoZSBkZWZpbml0aW9ucyBvZiBvdXRlciBxdWFudGlmaWNh dGlvbiBhcmUgYXBwbGllZCB0byB0aGVtIGFzIGZvbGxvd3M6Cgp8fAoKUEEgbG8gYnJvZGEgfmhz fnx+aHN+IFBBIGRhIHBvaSBrZSdhIG1lIGxvIGJyb2RhIH5oc358fmhzfiBUaGUgZG9tYWluIG9m IGJvdW5kIHNpbmd1bGFyIHZhcmlhYmxlIGlzIGEgcmVmZXJlbnQgb2YgcGx1cmFsIGNvbnN0YW50 IHtsbyBicm9kYX0gaW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSwgYW5kIGNvdW50ZWQgdG8g YmUgUEEKClBBIGJyb2RhIH5oc358fmhzfiBQQSBkYSBwb2kga2UnYSBicm9kYSB+aHN+fH5oc34g VGhlIGRvbWFpbiBvZiBib3VuZCBzaW5ndWxhciB2YXJpYWJsZSBpcyBhbGwgdGhhdCBhcmUge2Jy b2RhfSBpbiB0aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLCBhbmQgY291bnRlZCB0byBiZSBQQQoK fHwKCgoKXgoKO0V4YW1wbGUgMTogcm8gam1pdmUgYmEgbW9yc2kgfmhzfiAnJ0FsbCBsaXZpbmcg dGhpbmdzIHdpbGwgZGllLicnCgo7RXhhbXBsZSAyOiBybyBsbyBwcmVudSB0aSBrbGFtYSB+aHN+ ICcnQWxsIHRoZSBwZW9wbGUgY29tZSBoZXJlLicnXgoKRXhhbXBsZSAxIG1lbnRpb25zIGFsbCB7 am1pdmV9IGluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UuIEluIHRoZSB1bml2ZXJzZSBvZiBk aXNjb3Vyc2Ugb2YgRXhhbXBsZSAyLCBpdCBpcyBwb3NzaWJsZSB0byBpbnRlcnByZXQgdGhhdCB0 aGVyZSBhcmUge3ByZW51fSBvdGhlciB0aGFuIHRoZSByZWZlcmVudCBvZiB0aGUgcGx1cmFsIGNv bnN0YW50IHtsbyBwcmVudX0uCgoKClRoZSBvdXRlciBxdWFudGlmaWNhdGlvbiBieSB7cGlQQX0g Zm9ybXMgcGx1cmFsIGNvbnN0YW50IHtsbyBwaVBBIHNpJ2V9LiBIb3dldmVyLCB4MiBvZiB7cGlQ QSBzaSdlfSBpcyBib3VuZCBzaW5ndWxhciB2YXJpYWJsZSB7cGEgbWUgJydzdW10aScnfS4ge3Bp fSBpbiB0aGlzIGRlZmluaXRpb24gbWVhbnMgIm5vdCBsYXJnZXIgdGhhbiAxIjsgcHJhY3RpY2Fs bHksIHtmaSd1fSBvciBzb21ldGhpbmcgY2FuIGJlIHVzZWQgaW5zdGVhZCBvZiB7cGl9CgoKCiEh ISEjIENvbWJpbmF0aW9uIG9mIG91dGVyIGFuZCBpbm5lciBxdWFudGlmaWNhdGlvbnMKClRoZSBk ZWZpbml0aW9ucyBvZiBpbm5lciBhbmQgb3V0ZXIgcXVhbnRpZmljYXRpb24gaW1wbHkgdGhlIGZv bGxvd2luZyBpbnRlcnByZXRhdGlvbnM6Cgp8fAoKTSBsbyBbW05dIGJyb2RhIH5oc358fmhzfiBN ICh3aGljaCBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUgZGlzdHJpYnV0aXZlbHkpIG9mIHtsbyBicm9k YX0gW1t0aGF0IGFyZSBOXQoKTSBsb2kgW1tOXSBicm9kYSB+aHN+fH5oc34gTSAod2hpY2ggc2F0 aXNmaWVzIGEgcHJlZGljYXRlIGRpc3RyaWJ1dGl2ZWx5KSBvZiB7bG8gZ3VubWF9IHRoYXQgY29u c2lzdHMgb2Yge2xvIGJyb2RhfSBbW3RoYXQgYXJlIE5dCgpNIGxvJ2kgW1tOXSBicm9kYSB+aHN+ fH5oc34gTSAod2hpY2ggc2F0aXNmaWVzIGEgcHJlZGljYXRlIGRpc3RyaWJ1dGl2ZWx5KSBvZiB7 bG8gc2VsY21pfSB0aGF0IGNvbnNpc3RzIG9mIHtsbyBicm9kYX0gW1t0aGF0IGFyZSBOXQoKcGkg TSBsbyBbW05dIGJyb2RhIH5oc358fmhzfiBRdWFudGl0eSB7cGkgTSBzaSdlfSBvZiBhIHBhcnQg b2Ygb25lIG9mIHtsbyBicm9kYX0gW1t0aGF0IGFyZSBOXQoKcGkgTSBsb2kgW1tOXSBicm9kYSB+ aHN+fH5oc34gUXVhbnRpdHkge3BpIE0gc2knZX0gb2YgYSBwYXJ0IG9mIG9uZSBvZiB7bG8gZ3Vu bWF9IHRoYXQgY29uc2lzdHMgb2Yge2xvIGJyb2RhfSBbW3RoYXQgYXJlIE5dCgpwaSBNIGxvJ2kg W1tOXSBicm9kYSB+aHN+fH5oc34gUXVhbnRpdHkge3BpIE0gc2knZX0gb2YgYSBwYXJ0IChzdWJz ZXQpIG9mIG9uZSBvZiB7bG8gc2VsY21pfSB0aGF0IGNvbnNpc3RzIG9mIHtsbyBicm9kYX0gW1t0 aGF0IGFyZSBOXQoKfHwKCgoKQW1vbmcgdGhlbSwge00gbG8gW1tOXSBicm9kYX0gYW5kIHtwaSBN IGxvaSBbW05dIGJyb2RhfSBjYW4gZXhwcmVzcyBzb21lIG9mIHBsdXJhbCBudW1iZXIgb2YgdGhp bmdzLgoKXgoKO0V4YW1wbGUgMTogcmUgbG8gW1tjaV0gbWxhdHUgbWkgdmlza2EgfmhzfiAnJ1R3 byBbW29mIHRocmVlXSBjYXRzIHNlZSBtZS4nJwoKO0V4YW1wbGUgMjogcmUgZmkndSBjaSBsb2kg W1t2ZWkgY2kgcGknaSBueSAodmUnbyldIG1sYXR1IG1pIHZpc2thIH5oc34gJydUd28gdGhpcmQg b2YgW1szbl0gY2F0cyBzZWUgbWUuJydeCgoKCntyZSBsbyBbW2NpXSBtbGF0dX0gb2YgRXhhbXBs ZSAxIHJlZmVycyB0byB0d28gY2F0cyBhbW9uZyBbW3RocmVlXSBjYXRzIHRoYXQgYXJlIHJlZmVy ZW50IG9mIHtsbyBbW2NpXSBtbGF0dX0uCgpJZiB0aGUgaW5uZXIgcXVhbnRpZmllciB7Y2l9IGlz IG5vdCBzYWlkLCBpdCBpcyB1bmNsZWFyIGhvdyBtYW55IGNhdHMgYXJlIHJlZmVycmVkIHRvIGJ5 IHtsbyBtbGF0dX07IGluIGFueSBjYXNlIHtyZSBsbyBtbGF0dX0gcmVmZXJzIHRvIHR3byBvZiB0 aGVtLgoKCgpJbiBFeGFtcGxlIDIsIHRoZSBhcmd1bWVudCBpcyBmb3JtZWQgYnkge2xvaX0sIGFu ZCB0aGUgcmVmZXJlbnQgaXMgYWN0dWFsbHkge2xvIGd1bm1hfS4gRXhwYW5kaW5nIEV4YW1wbGUg MiBhY2NvcmRpbmcgdG8gdGhlIGRlZmluaXRpb25zIG9mIHtsb2l9IGFuZCB7cGlQQSAnJ3N1bXRp Jyd9LAoKXgoKO0V4YW1wbGUgMi0xOiBsbyByZSBmaSd1IGNpIHNpJ2UgYmUgcGEgbWUgbG8gZ3Vu bWEgYmUgbG8gW1t2ZWkgY2kgcGknaSBueSAodmUnbyldIG1sYXR1IG1pIHZpc2thXgoKVGhhdCBp cyB0byBzYXksIHtyZSBmaSd1IGNpIGxvaS4uLn0gcmVmZXJzIHRvIHR3byB0aGlyZCBvZiBhbiBp bmRpdmlkdWFsIHtwYSBtZSBsbyBndW5tYS4uLn0uIFRoaXMge2xvIGd1bm1hfSBjb25zaXN0cyBv ZiB7dmVpIGNpIHBpJ2kgbnkgKHZlJ28pfSBjYXRzLiAKCklmIHRoZSBpbm5lciBxdWFudGlmaWVy IGlzIG5vdCBzYWlkLCBpdCBpcyB1bmNsZWFyIGhvdyBtYW55IGNhdHMgY29uc3RpdHV0ZSB7bG8g Z3VubWF9IHRoYXQgaXMge2xvaSBtbGF0dX07IGluIGFueSBjYXNlIHtyZSBmaSd1IGNpIGxvaSBt bGF0dX0gcmVmZXJzIHRvIHR3byB0aGlyZCBvZiB7bG8gZ3VubWF9LiBIb3dldmVyLCAKCl5yZSBm aSd1IGNpIGxvaSBtbGF0dSBtaSB2aXNrYV4KCmlzIG1lYW5pbmdmdWwgb25seSB3aGVuIHtsb2kg bWxhdHV9IGNvbnNpc3RzIG9mIDNuIGNhdHMsIGJlY2F1c2UgaXQgaXMgbm90IG9yZGluYXJ5IHRv IGludGVycHJldCB0aGF0IGEgZnJhZ21lbnQgb2YgYSBjYXQgc2F0aXNmaWVzIHRoZSBwcmVkaWNh dGUge3Zpc2thfS4KCkFjY29yZGluZyB0byBCUEZLJ3MgZGVmaW5pdGlvbiwge2xvaX0gY2Fubm90 IGZvcm0gYSBwbHVyYWwgY29uc3RhbnQgdGhhdCBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUgbm9uLWNv bGxlY3RpdmVseS4gSWYgeW91IHdhbnQgdG8gbWVhbiAiY2F0cyBzZWUgbWUgbm9uLWNvbGxlY3Rp dmVseSIsIGF2b2lkIHtsb2l9LCBvciB1c2Uge2x1J2F9LCB3aGljaCB3aWxsIGJlIGRpc2N1c3Nl ZCBpbiAoKHwjUmVsYXRpb25fYmV0d2Vlbl9sdV9hX2x1X29fbHVfaV9hbmRfZ2Fkcml8U2VjdGlv biAzLjMpKToKCl5sdSdhIHJlIGZpJ3UgY2kgbG9pIG1sYXR1IG1pIHZpc2thXgoKCgohISEhIyBC b3VuZCB2YXJpYWJsZXMgYW5kIGNvbnN0YW50cyBpbiBhIHN0YXRlbWVudAoKV2hlbiBib3RoZSBi b3VuZCB2YXJpYWJsZXMgYW5kIGNvbnN0YW50cyBhcHBlYXIgaW4gYSBzdGF0ZW1lbnQsIHRoZSBj b25zdGFudHMgZG8gbm90IG5lY2Vzc2FyaWx5IHNwYW4gb3ZlciBhbGwgYm91bmQgdmFyaWFibGVz LiBBbHRob3VnaCB0aGV5IGFyZSBjYWxsZWQgImNvbnN0YW50cyIsIGl0IGlzIG5vdCBnZW5lcmFs bHkgZGV0ZXJtaW5lZCB3aGV0aGVyIHRoZXkgcmVmZXIgdG8gY29tbW9uIHJlZmVyZW50cyBmb3Ig YWxsIHJlZmVyZW50cyBpbiBkb21haW5zIG9mIHZhcmlhYmxlcywgb3IgdGhleSByZWZlciB0byBk aWZmZXJlbnQgcmVmZXJlbnRzIGRlcGVuZGVudCBvbiByZWZlcmVudHMgaW4gZG9tYWlucyBvZiB2 YXJpYWJsZXMuIFRoZSByZWFzb24gZm9sbG93cyBiZWxvdyAoW2h0dHBzOi8vZ3JvdXBzLmdvb2ds ZS5jb20vZC9tc2cvbG9qYmFuL1JBdEU3WWstZHF3L0FCRGZPZnVveldFSnxEaXNjdXNzaW9uXSku CgoKCldoZW4gc29tZSBzdW10aSBvZiB0ZXJicmkgaW4gYSBzdGF0ZW1lbnQgYXJlIG9tbWl0dGVk LCBpdCBpcyBjb25zaWRlcmVkIHRoYXQgdGhlcmUgYXJlIGltcGxpY2l0IHt6bydlfSBpbiB0aG9z ZSBwbGFjZXMgKFtodHRwOi8vZGFnLmdpdGh1Yi5pby9jbGwvNy83L3xDTEwgNy43XSkuCgpGb3Ig ZXhhbXBsZSwKCl5ybyBtbGF0dSBjdSBqYmVuYX5wcH4KCn4vcHB+ICAnJ0FsbCBjYXRzIGFyZS93 aWxsIGJlIGJvcm4uJydeCgpzZWVtcyB0byBiZSB0cnVlIGZyb20gYSBzdGFuZGFyZCBwb2ludCBv ZiB2aWV3LiBBY2NvcmRpbmcgdG8gZGVmaW5pdGlvbiBvZiB0ZXJicmkgb2Yge2piZW5hfSwgaXQg aXMgY29uc2lkZXJlZCB0aGF0IHRocmVlIHN1bXRpIGFyZSBvbW1pdHRlZCwgYW5kIHRoaXMgc3Rh dGVtZW50IGhhcyB0aGUgc2FtZSBtZWFuaW5nIGFzCgpecm8gbWxhdHUgY3UgamJlbmEgem8nZSB6 bydlIHpvJ2VeCgppbiB3aGljaCB7em8nZX0gYXJlIGV4cGxpY2l0LiAKClVubGVzcyBhbGwgY2F0 cyBpbiB0aGlzIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSBhcmUvd2lsbCBiZSBib3JuIHRvIGNvbW1v biBwYXJlbnRzIGF0IHRoZSBzYW1lIHRpbWUgYXQgdGhlIHNhbWUgcGxhY2UsIHRoZXNlIHt6bydl fSBjYW5ub3QgYmUgY29uc2lkZXJlZCBhcyBjb21tb24gY29uc3RhbnRzIGZvciBhbGwgcmVmZXJl bnRzIGluIGEgZG9tYWluIG9mIHtybyBtbGF0dX0uIEluIG9yZGVyIHRvIG1ha2Ugc3VjaCBhbiBl eHByZXNzaW9uIGxpa2Uge3JvIG1sYXR1IGN1IGpiZW5hfSBoYXZlIGludGVuZGVkIG1lYW5pbmcs ICJjb25zdGFudHMiIG9mIExvamJhbiBjYW4gYmUgZGVwZW5kZW50IG9uIHJlZmVyZW50cyBpbiBk b21haW5zIG9mIGJvdW5kIHZhcmlhYmxlcy4KCgoKIkNvbnN0YW50cyIgaW4gdGhpcyBtZWFuaW5n IGNvcnJlc3BvbmQgdG8gU2tvbGVtIGZ1bmN0aW9ucyBpbiBTa29sZW0gbm9ybWFsIGZvcm1zIG9m IHByZWRpY2F0ZSBsb2dpYy4gVGhlIHRhYmxlIGJlbG93IHNob3dzIGNvbXBhcmlzb24gb2YgaW50 ZXJwcmV0YXRpb25zIGJldHdlZW4gcHJlZGljYXRlIGxvZ2ljLCB4b3JsbyBvbiB3aGljaCB0aGlz IGNvbW1lbnRhcnkgZGVwZW5kcyBhbmQgaW1wbGljaXQgcXVhbnRpZmllciAoW2h0dHA6Ly9kYWcu Z2l0aHViLmlvL2NsbC82LzEvfENMTCB2ZXIuMS4wIENoYXB0ZXIgNl0pIHdoaWNoIHdhcyBhYm9s aXNoZWQuIFRoZSBleHByZXNzaW9ucyB0aGF0IGhhdmUgdGhlIHNhbWUgdHJ1dGggdmFsdWUgYXJl IGFsaWduZWQgaW4gdGhlIHNhbWUgY29sdW1uLiBVcHBlciBjYXNlIFkgcmVwcmVzZW50cyBhIHBs dXJhbCB2YXJpYWJsZS4gVGhlIHJvdyBvZiB6bydlK3hvcmxvIHNob3dzIHVub2ZmaWNpYWwgc3Vn Z2VzdGlvbiBvZiBpbnRlcnByZXRhdGlvbi4gSW4gdGhlIGdyYXkgcGFydCBpbiB0aGUgcm93IG9m IFByZW5leCBub3JtYWwsIHVub2ZmaWNpYWwgZXhwcmVzc2lvbnMgd2l0aCBhbiBleHBlcmltZW50 YWwgY21hdm8ge3N1J29pfSBhcmUgc2hvd24uIChDbGljayBvbiB0aGUgdGFibGUgdG8gZW5sYXJn ZS4pCgp7aW1nIGZpbGVJZD0iMTIiIHRodW1iPSJ5IiBsaW5rPSJkaXNwbGF5MTEiIHJlbD0iYm94 W2ddIn0KCgoKISEhIyBSZWxhdGlvbiBiZXR3ZWVuIGx1J2EsIGx1J28sIGx1J2kgYW5kIGdhZHJp CgooKEJQRksgU2VjdGlvbjogSW5kaXJlY3QgUmVmZXJlcnN8QlBGSyBkZWZpbmVzKSkge2x1J2F9 LCB7bHUnb30sIHtsdSdpfSBvZiBMQWhFIGFzIGZvbGxvd3M6Cgp8fAoKbHUnYSAnJ3N1bXRpJycg fmhzfnx+aHN+IGxvIG1lICcnc3VtdGknJyB+aHN+fH5oc34gbG8gY21pbWEgYmUgJydzdW10aScn IFtbbm9pIHNlbGNtaV0KCmx1J28gJydzdW10aScnIH5oc358fmhzfiBsb2kgbWUgJydzdW10aScn CgpsdSdpICcnc3VtdGknJyB+aHN+fH5oc34gbG8naSBtZSAnJ3N1bXRpJycKCnx8CgpIb3dldmVy LCBndWVzc2luZyBmcm9tIHRoZSBFbmdsaXNoIGRlZmluaXRpb25zIG9uIHRoZSBzYW1lIHBhZ2Us IHRoZSBkZWZpbml0aW9uIG9mIHtsdSdhfSBpcyB1bnNhdGlzZmFjdG9yeSwgYW5kIHRoYXQgb2Yg e2x1J299IGhhcyBzb21lIHByb2JsZW0uCgoKCntsdSdhfSBleHRyYWN0cyB4MiBvZiB7c2VsY21p fSBmcm9tIHN1bXRpIHRoYXQgaXMge2xvIHNlbGNtaX0sIGFuZCB4MiBvZiB7Z3VubWF9IGZyb20g c3VtdGkgdGhhdCBpcyB7bG8gZ3VubWF9LiBNb3Jlb3Zlciwge2x1J2F9IG1ha2VzIGV4cGxpY2l0 IHRoYXQgdGhlIHN1bXRpIHNhdGlzZmllcyBhIHByZWRpY2F0ZSBkaXN0cmlidXRpdmVseSBhbmQg bm9uLWNvbGxlY3RpdmVseS4gT24gdGhlIG90aGVyIGhhbmQsIGFjY29yZGluZyB0byB0aGUgZGVm aW5pdGlvbiBvZiB7bG99LCB7bG8gbWUgJydzdW10aScnfSBkb2VzIG5vdCBpbXBseSAiZGlzdHJp YnV0aXZlbHkgYW5kIG5vbi1jb2xsZWN0aXZlbHkiLgoKCgp7bHUnb30gbWFrZXMgZXhwbGljaXQg dGhhdCB0aGUgc3VtdGkgc2F0aXNmaWVzIGEgcHJlZGljYXRlIG5vbi1kaXN0cmlidXRpdmVseSBh bmQgY29sbGVjdGl2ZWx5LiBPbiB0aGUgb3RoZXIgaGFuZCwgYWNjb3JkaW5nIHRvIHRoZSBkZWZp bml0aW9uIG9mIHtsb2l9LCB7bG9pIG1lICcnc3VtdGknJ30gc2F0aXNmaWVzIGEgcHJlZGljYXRl IGNvbGxlY3RpdmVseSwgYnV0IHN0aWxsIHVuY2xlYXIgaWYgaXQgZG9lcyBub24tZGlzdHJpYnV0 aXZlbHkuIEZvciBjb25zaXN0ZW5jeSwgaXQgd291bGQgYmUgYmV0dGVyIHRvIGFkZCAie2xvaSBi cm9kYX0gaW1wbGllcyB0aGF0IHJlZmVyZW50IG9mIHgxIG9mIGJyb2RhIGNvbGxlY3RpdmVseSBh bmQgbm9uLWRpc3RyaWJ1dGl2ZWx5IHNhdGlzZmllcyBhIHByZWRpY2F0ZSIgdG8gdGhlIGRlZmlu aXRpb24gb2Yge2xvaX0uCgoKCkFzIGEgY29uY2x1c2lvbiBvZiB0aGlzIHNlY3Rpb24sIEkgc3Vn Z2VzdCB0byByZS1kZWZpbmUge2x1J2F9IGFzIGZvbGxvd3M6Cgo7IFVub2ZmaWNpYWwgZGVmaW5p dGlvbiBvZiB7bHUnYX06fHwKCmx1J2EgJydzdW10aScnIH5oc358fmhzfiBsbyBjbWltYSBiZSAn J3N1bXRpJycgbm9pIHNlbGNtaSBrdSBvbmFpIGxvIHNlIGd1bm1hIGJlICcnc3VtdGknJyBub2kg Z3VubWEga3Ugb25haSBsbyBtZSAnJ3N1bXRpJycga3UgfnBwfgoKfi9wcH4gfmhzfiB2dSdvIG5v aSBzdSdvIGRhIHpvJ3UgZGEgbWUga2UnYSBnaSdlIG5vJ2EKCnx8CgpJbiB7bm9pfSBjbGF1c2Ug YWZ0ZXIge3Z1J299LCBpdCBpcyBtYWRlIGV4cGxpY2l0IHRoYXQgdGhlIHJlZmVyZW50IG9mIHts dSdhICcnc3VtdGknJ30gZGlzdHJpYnV0aXZlbHkgc2F0aXNmaWVzIHRoZSBzZW50ZW5jZSB0aGF0 IGluY2x1ZGVzIHRoaXMgc3VtdGkuCgoKCiEhISMgUmVsYXRpb24gYmV0d2VlbiBqbyd1LCBqb2ks IGNlIGFuZCBnYWRyaQoKKChCUEZLIFNlY3Rpb246IE5vbi1sb2dpY2FsIENvbm5lY3RpdmVzfEFj Y29yZGluZyB0byBCUEZLIFNlY3Rpb24pKSB7am8ndX0sIHtqb2l9IGFuZCB7Y2V9IG9mIHNlbG1h J28gSk9JIGFyZSBkZWZpbmVkIGFzIGZvbGxvd3M6fHwKCl9fWF9fIGpvJ3UgX19ZX18gfmhzfnx+ aHN+IGxvIHN1em1laSBub2kgX19YX18gLmUgX19ZX18gLmUgbm8gZHJhdGEgYmUgX19YX18gLmUg X19ZX18gY3UgbWUga2UnYQoKX19YX18gam9pIF9fWV9fIH5oc358fmhzfiBsbyBndW5tYSBiZSBf X1hfXyAuZSBfX1lfXyAuZSBubyBkcmF0YSBiZSBfX1hfXyAuZSBfX1lfXwoKX19YX18gY2UgX19Z X18gfmhzfnx+aHN+IGxvIHNlIGNtaW1hIGJlIF9fWF9fIC5lIF9fWV9fIC5lIG5vIGRyYXRhIGJl IF9fWF9fIC5lIF9fWV9fCgp8fAoKVGhleSBjb3JyZXNwb25kIHJlc3BlY3RpdmVseSB0byB7bG99 LCB7bG9pfSwge2xvJ2l9IG9mIGdhZHJpLiBUaGV5IGNvbm5lY3QgdHdvIHN1bXRpOiB7am8ndX0g Zm9ybXMgYSBwbHVyYWwgY29uc3RhbnQsIHtqb2l9IGEgbm9uLWRpc3RyaWJ1dGl2ZSBwbHVyYWwg Y29uc3RhbnQsIHtjZX0gYSBwbHVyYWwgY29uc3RhbnQgdGhhdCByZWZlcnMgdG8gc2V0KHMpIHRo YXQgY29uc2lzdChzKSBvZiB0aGUgc3VtdGkgdGhhdCB7Y2V9IGNvbm5lY3RzLiBJbiB0aGUgRW5n bGlzaCBkZWZpbml0aW9uIG9mIHtqb2l9IG9mIEJQRkssICJub24tZGlzdHJpYnV0aXZlIiBpcyBt ZW50aW9uZWQuIFRoaXMgZmFjdCBhbHNvIHN1cHBvcnRzIHRoZSBzdWdnZXN0aW9uIGluICgofCNS ZWxhdGlvbl9iZXR3ZWVuX2x1X2FfbHVfb19sdV9pX2FuZF9nYWRyaXxTZWN0aW9uIDMuMykpIHRv IGFkZCAie2xvaSBicm9kYX0gaW1wbGllcyB0aGF0IHJlZmVyZW50IG9mIHgxIG9mIGJyb2RhIGNv bGxlY3RpdmVseSBhbmQgbm9uLWRpc3RyaWJ1dGl2ZWx5IHNhdGlzZmllcyBhIHByZWRpY2F0ZSIg dG8gdGhlIGRlZmluaXRpb24gb2Yge2xvaX0uCgoKCkV2ZW4gaWYgX19YX18gb3IgX19ZX18gYXJl IGJvdW5kIHZhcmlhYmxlcywgdGhlc2UgY29ubmVjdGl2ZXMgZm9ybSBjb25zdGFudHMuIEluIHRo aXMgY2FzZSwgaXQgaXMgbm90IGRldGVybWluZWQgd2hldGhlciB0aGUgZm9ybWVkIGNvbnN0YW50 cyBkZXBlbmQgb24gX19YX18gYW5kIF9fWV9fLCBvciB0aGV5IGFyZSBjb21tb24gdG8gYWxsIF9f WF9fIGFuZCBfX1lfXyBpbiB0aGVpciBkb21haW5zLiBTZWUgKCh8I0JvdW5kX3ZhcmlhYmxlc19h bmRfY29uc3RhbnRzX2luX2Ffc3RhdGVtZW50fFNlY3Rpb24gMy4yLjIpKSBmb3IgZGV0YWlsLgoK CgpCZWNhdXNlIHRoZXkgYXJlIGNtYXZvIGluIHNlbG1hJ28gSk9JLCB0aGV5IGNhbiBjb25uZWN0 IHdoYXQgYXJlIG5vdCBzdW10aSwgYnV0IHRoZSBtZWFuaW5ncyBpbiB0aGlzIHVzYWdlIGFyZSBu b3Qgb2ZmaWNpYWxseSBkZWZpbmVkLiBUaGV5IGNhbiBmb3JtIGFsc28gZm9yZXRob3VnaHQgY29u bmVjdGl2ZSB7Sk9JIGdpIF9fWF9fIGdpIF9fWV9ffS4gV2hlbiB0aGUgZm9yZXRob3VnaHQgY29u bmVjdGl2ZXMgYXJlIHVzZWQgZm9yIHN1bXRpLCB0aGV5IGZvcm0gdGhlIHNhbWUgY29uc3RhbnRz IGFzIHRoZSBhZnRlcnRob3VnaHQgdXNhZ2UgZGVmaW5lZCBhYm92ZS4KCgoKISEjIE5vdGVzCgpU aGlzIHNlY3Rpb24gY29uc2lzdHMgb2Ygbm90ZXMgb2YgdGhlIGF1dGhvciBndXNrYW50LCBhbmQg aXQgaXMgbm90IGF0IGFsbCBpbXBvcnRhbnQgZm9yIHVuZGVyc3RhbmRpbmcgZ2FkcmkuCgoKCiEh ISMgQWJvdXQgb250b2xvZ3kKCl4oKEJQRksgU2VjdGlvbjogZ2Fkcml8JydQb3NpdGl2ZSBpbXBh Y3Q6IFNvbWUgdXNhZ2VzIHRoYXQgbWFrZSBsaXR0bGUgc2Vuc2Ugd2l0aCB7bG99PXtzdSdvfSBi ZWNvbWUgdmFsaWRhdGVkLicnKSkgYWNjb3JkaW5nIHRvIEJQRksuXgoKCgp7bG99PXtzdSdvfSB3 YXMgYWJhbmRvbmVkLCBidXQgYmVjYXVzZSBvZiB0aGUgZmFjdCB0aGF0IHtsbyBicm9kYX0gaXMg YSBwbHVyYWwgY29uc3RhbnQsIGFuZCBiZWNhdXNlIG9mIGEgbG9naWNhbCBheGlvbSBvZiBwbHVy YWwgY29uc3RhbnQgaW4gKCh8I0FfbG9naWNhbF9heGlvbV9vbl9wbHVyYWxfY29uc3RhbnR8U2Vj dGlvbiAyLjIuNikpLCB7bG8gYnJvZGEgY3UgYnJvZGV9IGltcGxpY2l0bHkgaW1wbGllcyB7c3Un b2kgZGEgYnJvZGV9LgoKCgohISEjIGNsYXh1IHgyCgpeKChCUEZLIFNlY3Rpb246IGdhZHJpfGxl IGNtYW5hIF9fbG9fXyBjaWRqYSBiYSBjbGF4dSkpfnBwfgoKfi9wcH4gICcnSW4gdGhlIG1vdW50 YWlucyB0aGVyZSBpcyBubyBmb29kLicnfnBwfgoKfi9wcH4oKGxhcG9pIHBlbHh1IGt1J28gdHJh anlub2JsaSkpXgoKCgpFeHBhbmRpbmcge2xvIGNpZGphfSwgCgpebGUgY21hbmEgem8nZSBub2kg a2UnYSBjaWRqYSBrdSdvIGJhIGNsYXh1XgoKQWNjb3JkaW5nIHRvICgoQlBGSyBTZWN0aW9uOiBT dWJvcmRpbmF0b3JzfHRoZSBkZWZpbml0aW9uIG9mIHtub2l9KSksIAoKXmxlIGNtYW5hIHpvJ2Ug dG8gcmkgeGkgcmF1IGNpZGphIHRvaSBiYSBjbGF4dV4KClRoZSBwYXJ0IGJldHdlZW4ge3RvfSBh bmQge3RvaX0gaXMgYSBwYXJlbnRoZXRpY2FsIGV4cHJlc3Npb24uIFRoZSBtYWluIHByb3Bvc2l0 aW9uIGlzIHRodXMKCl5sZSBjbWFuYSB6bydlIGJhIGNsYXh1XgoKd2hlcmUge3pvJ2V9IGlzIGEg cGx1cmFsIGNvbnN0YW50LiBBY2NvcmRpbmcgdG8gdGhlIGxvZ2ljYWwgYXhpb20gb2YgcGx1cmFs IGNvbnN0YW50IGluICgofCNBX2xvZ2ljYWxfYXhpb21fb25fcGx1cmFsX2NvbnN0YW50fFNlY3Rp b24gMi4yLjYpKSwgVGhpcyBwcm9wb3NpdGlvbiBpbXBsaWVzIAoKXnN1J29pIGRhIHpvJ3UgbGUg Y21hbmEgZGEgYmEgY2xheHVeCgp3aGljaCBtZWFucyB0aGF0IHRoZXJlIGlzIGEgcmVmZXJlbnQg b2YgIndoYXQgaXMgbGFja2VkIGJ5IHRoZSBtb3VudGFpbiIgaW4gdGhlIHVuaXZlcnNlIG9mIGRp c2NvdXJzZS4KClRoZSBzdHJhbmdlbmVzcyBjb21lcyBmcm9tIHRoZSBmYWN0IHRoYXQgeDIgb2Yg e2NsYXh1fSBfX2FwcGFyZW50bHlfXyBtZWFucyBub24tZXhpc3RlbmNlLiBXZSBjYW4gaW50ZXJw cmV0IGl0IGNvbnNpc3RlbnRseSB0aGF0IHtjbGF4dX0gbWVhbnMgb25seSB0aGF0IHRoZSByZWZl cmVudCBvZiB4MiBpcyBub3QgcGxhY2VkIGF0IHRoZSByZWZlcmVudCBvZiB4MSwgYW5kIGl0IHNh eXMgbm90aGluZyBhYm91dCBleGlzdGVuY2UgaW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZS4g CgoKCiEhISMgem8nZSBpcyBhIHBsdXJhbCBjb25zdGFudAoKQXNzdW1pbmcgdGhhdCB7em8nZX0g Y2FuIGJlIGFueSBvZiBmcmVlIHZhcmlhYmxlLCBib3VuZCBwbHVyYWwgdmFyaWFibGUgb3IgcGx1 cmFsIGNvbnN0YW50LCB0aGUgbGFuZ3VhZ2Ugd291bGQgYmUgbW9yZSByZWFzb25hYmxlIGZyb20g YSBsb2dpY2FsIHBvaW50IG9mIHZpZXcuCgpIb3dldmVyLCB0aGlzIGlkZWEgd2FzIGNsZWFybHkg ZGVuaWVkIGluIFtodHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2QvdG9waWMvbG9qYmFuL1JBdEU3 WWstZHF3L2Rpc2N1c3Npb258dGhlIGRpc2N1c3Npb25dLiBUaGF0IGlzIHRvIHNheSwge3pvJ2V9 IGlzIGFsd2F5cyBhIHBsdXJhbCBjb25zdGFudCBhY2NvcmRpbmcgdG8gdGhlIG9mZmljaWFsIGlu dGVycHJldGF0aW9uLgoKSSB3aWxsIGV4YW1pbmUgdGhlc2UgY29uZmxpY3RpbmcgaWRlYXMsIGFu ZCB0cnkgdG8gc29sdmUgc29tZSBwcm9ibGVtcyBjYXVzZWQgYnkgdGhlIG9mZmljaWFsIGludGVy cHJldGF0aW9uIHRoYXQge3pvJ2V9IGlzIGEgcGx1cmFsIGNvbnN0YW50LgoKCgohISEhIyBJZiB6 bydlIGNvdWxkIGJlIGEgYm91bmQgcGx1cmFsIHZhcmlhYmxlCgpJIHdpbGwgbGlzdCB1cCBoZXJl IG1lcml0cyBhbmQgZGVtZXJpdHMgb2YgYXNzdW1pbmcgdGhhdCB7em8nZX0gaW4gbm8gY29udGV4 dCBpcyBhIGZyZWUgdmFyaWFibGUsIGFuZCB0aGF0IHRoZSBjb250ZXh0IGRldGVybWluZXMgdGhl IHVuaXZlcnNlIG9mIGRpc2NvdXJzZSwgYmFzZWQgb24gd2hpY2gge3pvJ2V9IGlzIHJlZ2FyZGVk IGFzIHN1YnN0aXR1dGVkIGZvciBieSBhIHBsdXJhbCBjb25zdGFudCwgb3IgYm91bmQgYnkgYSBw bHVyYWwgcXVhbnRpZmllci4KCgoKISEhISEjIE1lcml0cwoKVW5kZXIgdGhpcyBhc3N1bXB0aW9u LCB0aGVyZSBpcyBubyBuZWVkIHRvIGV4Y2x1ZGUgdGhlIGNhc2UgUEE9MCBvZiB7bG8gUEEgYnJv ZGF9LCBvciBnaXZlIGl0IGFuIHVub2ZmaWNpYWwgZGVmaW5pdGlvbiBhcyBkaXNjdXNzZWQgaW4g KCh8I0Nhbm5vdF9zYXlfemVyb3xTZWN0aW9uIDMuMS4yLjEpKS4gSXQgaXMgYmVjYXVzZSBpZiB7 bG8gUEEgYnJvZGF9IGluIG5vIGNvbnRleHQgaXMgYSBmcmVlIHZhcmlhYmxlLCB3ZSBjYW4gaW50 ZXJwcmV0IGl0LCB3aGVuIGEgY29udGV4dCBpcyBnaXZlbiwgYXMgc3Vic3RpdHV0ZWQgZm9yIGJ5 IGEgcGx1cmFsIGNvbnN0YW50IG9yIGJvdW5kIGJ5IGEgcGx1cmFsIHF1YW50aWZpZXIgbGlrZSB7 c3Unb2kgZGF9IGluIHRoZSBjYXNlIG9mIFBBPjA7IHdlIGNhbiBpbnRlcnByZXQgaXQgYXMgYm91 bmQgYnkge25ha3Ugc3Unb2kgZGF9IGluIHRoZSBjYXNlIG9mIFBBPTAgYXMgd2VsbC4KCgoKVGhp cyBhc3N1bXB0aW9uIG1ha2VzIHRoZSBpbnRlcnByZXRhdGlvbiBjbG9zZXIgdG8gbmF0dXJhbCBs YW5ndWFnZXMgbm90IG9ubHkgaW4gdGhlIGNhc2UgUEE9MCBidXQgYWxzbyBpbiB0aGUgY2FzZSBQ QT4wLiBGb3IgZXhhbXBsZSwgCgpebG8gY2kgeGFudG8gY3Ugemlsa2FuY3UgbGkgY2kgbG8geGFu dG9eCgpUaGUgbGFzdCB7bG8geGFudG99IGlzIGEgdW5pdCBvZiBjb3VudGluZy4gSXQgaXMgbmF0 dXJhbCB0byBpbnRlcnByZXQgaXQgYXMgYSBib3VuZCBwbHVyYWwgdmFyaWFibGUgcXVhbnRpZmll ZCBieSAiMSIgcmF0aGVyIHRoYW4gYSBwbHVyYWwgY29uc3RhbnQsIHdoaWNoIHNob3VsZCByZWZl ciB0byBzb21ldGhpbmcuIElmIHdlIGludGVycHJldCBpdCBhcyBhIGJvdW5kIHBsdXJhbCB2YXJp YWJsZSwgd2Ugc2hvdWxkIGNvbnNpZGVyIHRoZSByZWxhdGl2ZSBvcmRlciB3aXRoIHRoZSBvdGhl ciBib3VuZCB2YXJpYWJsZXMgYW5kIHtuYWt1fS4gV2UgY2FuIGhhbmRsZSB0aGUgb3JkZXIgZnJl ZWx5IGJ5IHB1dHRpbmcgdGhlIGFyZ3VtZW50cyBpbiBwcmVuZXguCgoKCk1vcmVvdmVyLCB0aGlz IGFzc3VtcHRpb24gZW1ib2RpZXMgdGhlIHByb3BlcnR5IG9mIG5hdHVyYWwgbGFuZ3VhZ2VzIHRo YXQgdGhlIHRydXRoIHZhbHVlIG9mIGEgcHJvcG9zaXRpb24gaW4gbm8gY29udGV4dCBpcyBnZW5l cmFsbHkgaW5kZWZpbml0ZS4gQnkgaW50ZXJwcmV0aW5nIHRoYXQge3pvJ2V9IGluIG5vIGNvbnRl eHQgaXMgYSBmcmVlIHZhcmlhYmxlLCB3aGljaCB3aWxsIGJlIHN1YnN0aXR1dGVkIGZvciBieSBh IHBsdXJhbCBjb25zdGFudCBvciBib3VuZCBieSBhIHBsdXJhbCBxdWFudGlmaWVyIHdoZW4gYSBj b250ZXh0IGlzIGdpdmVuLCBuYXR1cmFsIGludGVycHJldGF0aW9uIG9mIExvamJhbiBzZW50ZW5j ZSBpcyBwb3NzaWJsZSB3aXRob3V0IGxvc2luZyBsb2dpY2FsIGFzcGVjdHMgYW5kIHN0cnVjdHVy YWwgYmVhdXR5LgoKCgohISEhISMgRGVtZXJpdHMKCkJlY2F1c2Uge3pvJ2V9IGNhbiBiZSBhIGZy ZWUgdmFyaWFibGUsIGEgYm91bmQgcGx1cmFsIHZhcmlhYmxlIG9yIGEgcGx1cmFsIGNvbnN0YW50 IGRlcGVuZGluZyBvbiB0aGUgY29udGV4dCwgYSBzaW5nbGUgYnJpZGkgZG9lcyBub3QgbGV0IGxp c3RlbmVycyBkZXRlcm1pbmUgd2hpY2ggb2YgdGhlbSBpcyB0aGUgY3VycmVudCB7em8nZX0sIG9y IHRoZSB0cnV0aCB2YWx1ZSBvZiB0aGUgcHJvcG9zaXRpb24uCgpIb3dldmVyLCBzdWNoIGFuIGFz cGVjdCB0aGF0IHRoZSB0cnV0aCB2YWx1ZSBvZiBhIHByb3Bvc2l0aW9uIGdlbmVyYWxseSBkZXBl bmRzIG9uIHRoZSBjb250ZXh0IGlzIGEgY29tbW9uIHByb3BlcnR5IHRvIGFsbCBuYXR1cmFsIGxh bmd1YWdlcy4KCgoKT24gdGhlIG90aGVyIGhhbmQsIGV2ZW4gaWYgd2UgdGFrZSB0aGUgb2ZmaWNp YWwgaW50ZXJwcmV0YXRpb24gdGhhdCB7em8nZX0gaXMgYWx3YXlzIGEgcGx1cmFsIGNvbnN0YW50 LCBsaXN0ZW5lcnMgYXJlIG9ubHkgaW5mb3JtZWQgYnkge3pvJ2V9IHRoYXQgYSBjZXJ0YWluIHVu aXZlcnNlIG9mIGRpc2NvdXJzZSBpcyBnaXZlbi4gV2l0aCBubyBjb250ZXh0LCB0aGVyZSBpcyBu byB3YXkgdG8gZGV0ZXJtaW5lIHdoYXQgaXMgdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZS4gVGhl IHRydXRoIHZhbHVlIG9mIGEgcHJvcG9zaXRpb24gaW4gbm8gY29udGV4dCBpcyBpbmRlZmluaXRl IGV2ZW4gd2l0aCB0aGUgb2ZmaWNpYWwgaW50ZXJwcmV0YXRpb24uCgoKCiEhISEjIFByb2JsZW1z IGNhdXNlZCBieSB0aGUgZmFjdCB0aGF0IHpvJ2UgaXMgYSBwbHVyYWwgY29uc3RhbnQgYW5kIHRo ZSBjb3VudGVyLW1lYXN1cmVzCgpUaGUgb2ZmaWNpYWwgaW50ZXJwcmV0YXRpb24gdGhhdCB7em8n ZX0gaXMgYSBwbHVyYWwgY29uc3RhbnQgY2F1c2VzIHRoZSBmb2xsb3dpbmcgcHJvYmxlbXMuCgoK CiEhISEhIyBDYW5ub3QgZXhwcmVzcyBwbHVyYWwgcXVhbnRpZmljYXRpb24gb2Ygbm9uLWV4aXN0 ZW5jZQoKUmVhc29uYWJsZSBpbnRlcnByZXRhdGlvbiBvZiB7bG8gbm8gYnJvZGF9IGlzIG9mZmlj aWFsbHkgZXhjbHVkZWQgZnJvbSBMb2piYW4uIFRoYXQgaXMgdG8gc2F5LCBMb2piYW4gY2Fubm90 IG9mZmljaWFsbHkgZGVhbCB3aXRoIHRoZSBleHByZXNzaW9uICJ0aGVyZSBpcyBub3Qgd2hhdCBp cyBzdWJzdGl0dXRlZCBmb3Ige2RhfSIgZm9yIHBsdXJhbCB2YXJpYWJsZSAoe25ha3Ugc3Unb2kg ZGF9KSwgd2hpY2ggaXMgbmF0dXJhbGx5IGRlYWx0IHdpdGggYnkgcGx1cmFsIHF1YW50aWZpY2F0 aW9uLiBJbiBvcmRlciB0byBleHByZXNzIHtsbyBubyBicm9kYX0gd2l0aCByZWFzb25hYmxlIGlu dGVycHJldGF0aW9uLCB3ZSBuZWVkIGFuIHVub2ZmaWNpYWwgaW50ZXJwcmV0YXRpb24gbGlrZSAo KHwjQ2Fubm90X3NheV96ZXJvfFNlY3Rpb24gMy4xLjIuMSkpLgoKCgohISEhISMgQ2Fubm90IGV4 cHJlc3MgYm91bmQgcGx1cmFsIHZhcmlhYmxlLCB3aGljaCBkb2VzIG5vdCBzcGVjaWZ5IGEgcmVm ZXJlbnQKCkJlY2F1c2UgdGhlIG9mZmljaWFsIGludGVycHJldGF0aW9uIGRvZXMgbm90IGFsbG93 IHtsbyBQQSBicm9kYX0gdG8gYmUgYSBib3VuZCBwbHVyYWwgdmFyaWFibGUgZGVwZW5kaW5nIG9u IHRoZSBjb250ZXh0LCBhbiBhcmd1bWVudCB0aGF0IHNob3VsZCByZWZlciB0byBub3RoaW5nLCBh IHVuaXQgb2YgY291bnRpbmcgZm9yIGV4YW1wbGUsIHNob3VsZCBiZSBpbnRlcnByZXRlZCBhcyBh IHBsdXJhbCBjb25zdGFudCwgd2hpY2ggcmVmZXJzIHRvIHNvbWV0aGluZy4gRm9yIGV4YW1wbGUg CgpebG8gY2kgeGFudG8gY3Ugemlsa2FuY3UgbGkgY2kgbG8geGFudG9eCgpmb3Igd2hpY2ggd2Ug YXJlIGNvbXBlbGxlZCB0byBpbnRlcnByZXQgdGhhdCB0aGVyZSBpcyB0aGUgIkVsZXBoYW50IGRl cyBBcmNoaXZlcyIgaW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSwganVzdCBsaWtlIHRoZSAi TcOodHJlIGRlcyBBcmNoaXZlcyIgKGFsdGhvdWdoIGl0IGhhcyBhbHJlYWR5IGZpbmlzaGVkIGl0 cyByb2xlKSwgaW4gb3JkZXIgdG8gdXNlIHtsbyB4YW50b30gYXMgYSB1bml0IGluIGEgcHJvcG9z aXRpb24uCgoKCiEhISEhIyBDYW5ub3QgZXhwcmVzcyBlbGVtZW50YXJ5IHBhcnRpY2xlcyB3aXRo IGxvCgpBcyBsb25nIGFzIHtsbyBicm9kYX0gaXMgaW50ZXJwcmV0ZWQgYXMgYSBwbHVyYWwgY29u c3RhbnQsIHRoZSBmb2xsb3dpbmcgTG9qYmFuIHNlbnRlbmNlIGlzIG1lYW5pbmdsZXNzOgoKCgpe bG8gZ3Vza2EndSBjdSBnYXUgam1hamkgc2VwaSdvIGxvIGxlbmpvIGdpJ2UgcGFncmUgbG8gZmVu cmF+cHB+Cgp+L3BwficnUGhvdG9ucyBhcmUgY29uZGVuc2VkIGJ5IGxlbnNlcywgYW5kIHBhc3Mg dGhyb3VnaCBzbGl0cy4nJ14KCgoKQWN0dWFsbHksIHBob3RvbnMgYXJlIGluZGl2aWR1YWxzLCBh bmQgd2UgY2FuIGNvdW50IHRoZW0sIGJ1dCB3ZSBjYW5ub3QgZGlzdGluZ3Vpc2ggZWFjaCBvZiB0 aGVtOiB3ZSBjYW5ub3QgcmVmZXIgdG8gYSBzcGVjaWZpYyBwaG90b24uIFF1YW50aWZpY2F0aW9u IGlzIGluZGVlZCBzdWl0YWJsZSBmb3IgYXJndW1lbnRzIHRoYXQgcmVwcmVzZW50IHBhcnRpY2xl cyBsaWtlIHBob3RvbnMuIEhvd2V2ZXIsIExvamJhbiBvZmZpY2lhbGx5IGRvZXMgbm90IGhhdmUg YSBwbHVyYWwgcXVhbnRpZmllciwgYW5kIGNhbm5vdCBleHByZXNzIHF1YW50aWZpY2F0aW9uIG9m ICBzdW10aSB0aGF0IHNhdGlzZmllcyBzZWxicmkgYm90aCBjb2xsZWN0aXZlbHkgYW5kIGRpc3Ry aWJ1dGl2ZWx5LiBNb3Jlb3ZlciwgYmVjYXVzZSB7bG8gYnJvZGF9IGlzIG9mZmljaWFsbHkgYWx3 YXlzIGEgcGx1cmFsIGNvbnN0YW50LCB0aGVyZSBpcyBubyByb29tIHRvIGludGVycHJldCB7bG8g Z3Vza2EndX0gYXMgYSBib3VuZCBwbHVyYWwgdmFyaWFibGUuIEluIG9yZGVyIHRvIHNvbHZlIHRo ZSBwcm9ibGVtLCB3ZSBzaG91bGQgdXNlIGFuIHVub2ZmaWNpYWwgcGx1cmFsIHF1YW50aWZpZXIg e3N1J29pfSBzdWdnZXN0ZWQgYnkgKCh4b3J4ZXN8bGEgeG9yeGVzKSkuCgoKCl5zdSdvaSBkYSBw b2kga2UnYSBndXNrYSd1IGN1IGdhdSBqbWFqaSBzZXBpJ28gbG8gbGVuam8gZ2knZSBwYWdyZSBs byBmZW5yYV4KCgoKISEhISEjIEhvdyB0byBpbnRlcnByZXQgYSBwcmV2YWlsaW5nIHZpZXcKClRo ZSBmb2xsb3dpbmcgZXhhbXBsZSBpcyBnaXZlbiBvbiAoKEJQRksgU2VjdGlvbjogZ2Fkcml8QlBG SydzIGdhZHJpIHBhZ2UpKToKCgoKXmxvIHBhIHBpeHJhIGN1IHNlIHZhbWppIGxvIGtpJ28gdmFs c2l+cHB+Cgp+L3BwficnT25lIHBpY3R1cmUgaXMgd29ydGggYSB0aG91c2FuZCB3b3Jkcy4nJyBe CgoKCkV2ZW4gaW4gc3VjaCBhIHNlbnRlbmNlIHRoYXQgc2VlbXMgYSBwcmV2YWlsaW5nIHZpZXcs IHtsbyBwYSBwaXhyYX0gYW5kIHtsbyBraSdvIHZhbHNpfSBhcmUgaW50ZXJwcmV0ZWQgYXMgcmVm ZXJyaW5nIHRvIHNvbWV0aGluZy4gV2Ugc2hvdWxkIHByZXBhcmUgc29tZSByZWZlcmVudHMgb2Yg c3VtdGkgb2YgYSBwcmV2YWlsaW5nIHZpZXcgaW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZS4K CgoKSW50dWl0aW9uYWxseSBzcGVha2luZywgd2UgbWF5IHVzZSB7bG8nZX0gaW5zdGVhZCBvZiB7 bG99LCBidXQgd2UgY2Fubm90IHlldCBleHBsYWluIHtsbydlfSBmcm9tIGEgbG9naWNhbCBwb2lu dCBvZiB2aWV3IGJlY2F1c2UgKChCUEZLIFNlY3Rpb246IFR5cGljYWxzfGFjdHVhbGx5IHRoZXJl IGlzIG5vIG9mZmljaWFsIGNvbmNsdXNpb24gYWJvdXQgcmVsYXRpb24gYmV0d2VlbiB7bG8nZX0g YW5kIHtsb30pKS4KCgoKQXMgYSBtZXRob2Qgb2YgYXZvaWRpbmcgbWVudGlvbiBvZiBhIHJlZmVy ZW50IGluIGFuIGV4cHJlc3Npb24gb2YgcHJldmFpbGluZyB2aWV3LCB3ZSBtYXkgcHV0IHRoZSB3 aG9sZSBwcm9wb3NpdGlvbiBpbiBOVSBjbGF1c2UuIEluIGZhY3QsIHRydXRoIHZhbHVlIG9mIGEg cHJvcG9zaXRpb24gaW4gTlUgY2xhdXNlIGRvZXMgbm90IGluZmx1ZW5jZSB0cnV0aCB2YWx1ZSBv ZiB0aGUgb3V0ZXIgcHJvcG9zaXRpb24gKHJlZmVyZW50aWFsbHkgb3BhcXVlOyB0aGlzIHRvcGlj IGlzIHJlbGF0ZWQgdG8gW2h0dHA6Ly9kYWcuZ2l0aHViLmlvL2NsbC85LzcvfENMTDkuN10pLiBJ biBvdGhlciB3b3JkcywgdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSBvZiBhIHByb3Bvc2l0aW9u IGluIE5VIGNsYXVzZSBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNl IG9mIGEgcHJvcG9zaXRpb24gb3V0IG9mIE5VLgoKSWYgd2UgYWNjZXB0IHRoaXMgbWV0aG9kLCB0 aGUgZXhhbXBsZSBhYm92ZSB3aWxsIGJlIG1vZGlmaWVkLCB1c2luZyB7c2knb30gZm9yIGV4YW1w bGUsIGFzIGZvbGxvd3M6CgoKCl5zaSdvIGxvIHBhIHBpeHJhIGN1IHNlIHZhbWppIGxvIGtpJ28g dmFsc2kgfnBwfgoKfi9wcH4nJ0lzIGFuIGlkZWEgdGhhdCBvbmUgcGljdHVyZSBpcyB3b3J0aCBh IHRob3VzYW5kIHdvcmRzLicnXgoKCgp3aGVyZSB4MSBvZiB7c2knb30gaXMgaW1wbGljaXQge3pv J2V9LCB3aGljaCBoYXMgYSByZWZlcmVudCBpbiB0aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLiBB cyBhbiBpbnRlcnByZXRhdGlvbiBvZiBhIHByZXZhaWxpbmcgdmlldywgc3VwcG9zaW5nIGEgcmVm ZXJlbnQgb2YgeDEgb2Yge3NpJ299IGlzIG1vcmUgbmF0dXJhbCB0aGFuIHN1cHBvc2luZyBhIHJl ZmVyZW50IG9mIHtsbyBwYSBwaXhyYX0gb3Ige2xvIGtpJ28gdmFsc2l9LgoKKFN1Y2ggYSBicmlk aSB3aXRoIG5vIHRlcmJyaSBpcyBjYWxsZWQgIm9ic2VydmF0aXZlIiBpbiAoKFRoZSBDb21wbGV0 ZSBMb2piYW4gTGFuZ3VhZ2UpKSwgYnV0IHRoaXMgaW50ZXJwcmV0YXRpb24gaXMgbm90IHN1aXRh YmxlIGhlcmUsIGJlY2F1c2UgdGhpcyBpcyBub3QgdGhlIHV0dGVyYW5jZSB0aGF0IGlzIGFsd2F5 cyBjYXVzZWQgYnkgYSBzcGVjaWZpYyBzdGltdWx1cy4pCgoKCiEhISEhIyBIb3cgdG8gZXhwcmVz cyBmcmVlIHZhcmlhYmxlcwoKQXMgYSBjdXN0b20sIGtvJ1YvZm8nViBzZXJpZXMgb2YgS09oQTQg YXJlIHVzZWQgYXMgZnJlZSB2YXJpYWJsZXMgaW4gZGVmaW5pdGlvbnMgb2Ygd29yZHMgb3Igc29t ZXRoaW5nLiBIb3dldmVyLCB0aGV5IGFyZSBhY3R1YWxseSBwbHVyYWwgY29uc3RhbnRzLgoKSWYg d2UgYWJhbmRvbiB0aGlzIGN1c3RvbSwge2tlJ2F9IGFuZCB7Y2UndX0gYXJlIHN1aXRhYmxlIGZv ciBleHByZXNzaW9uIHdpdGggZnJlZSB2YXJpYWJsZXMgKG9wZW4gc2VudGVuY2UpLCBiZWNhdXNl IHRoZSB0cnV0aCB2YWx1ZSBvZiBicmlkaSBpbiB3aGljaCB7a2UnYX0gb3Ige2NlJ3V9IGlzIHVz ZWQgaXMgaW5kZWZpbml0ZS4gCgpJbiBhIGJyaWRpIGluIHdoaWNoIHtrZSdhfSBhcHBlYXJzIHR3 byB0aW1lcyBvciBtb3JlLCB0aGVzZSB7a2UnYX1zIGFyZSByZWdhcmRlZCBhcyByZXByZXNlbnRp bmcgYW4gaWRlbnRpY2FsIHN1bXRpOgoKXmRhIHBvaSBrZSdhIGd5IHhsdXJhIGtlJ2EgY3UgcGFu Y2kgbG8ga2EnZSBzZSBjaXRrYX5wcH4KCn4vcHB+fi0tfiAoKGxvIG51IGJpbnhvKSleCgpPbiB0 aGUgb3RoZXIgaGFuZCwgaW4gYSBicmlkaSBpbiB3aGljaCB7Y2UndX0gYXBwZWFycyB0d28gdGlt ZXMgb3IgbW9yZSwgdGhlc2Uge2NlJ3V9cyBhcmUgbm90IG5lY2Vzc2FyaWx5IHJlZ2FyZGVkIGFz IHJlcHJlc2VudGluZyBhbiBpZGVudGljYWwgc3VtdGk6CgpebG8gbWFtdGEgam8ndSBsbyBtZW5z aSBjdSBzaW14dSBsbyBrYSBjZSd1IGNpc21hIGZhJ2EgY2UndX5wcH4KCn4vcHB+fi0tfiAoKGxv IG51IGJpbnhvKSleCgpDb25zaWRlcmluZyB0aGVzZSBwcm9wZXJ0aWVzLCBpbiBvcmRlciB0byBl eHByZXNzIGFuIG9wZW4gc2VudGVuY2Ugd2l0aCBmcmVlIHZhcmlhYmxlcyBpbiBubyBjb250ZXh0 LCB7Y2UndX0gaXMgbW9yZSBjb252ZW5pZW50IHRoYW4ge2tlJ2F9IHdoaWNoIGhhcyByZXN0cmlj dGlvbiBvZiBpZGVudGljYWwgc3VtdGkuCgpeY2UndSBjZSd1IGNpdGthfnBwfgoKfi9wcH4nJ0Eg ZWF0cyBCLicnIChPcGVuIHNlbnRlbmNlLCB0cnV0aCB2YWx1ZSBpbmRlZmluaXRlLileCgoKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpXaWtpbmV1cm90 aWMgbWFpbGluZyBsaXN0Cldpa2luZXVyb3RpY0Bsb2piYW4ub3JnCmh0dHA6Ly9tYWlsLmxvamJh bi5vcmcvbWFpbG1hbi9saXN0aW5mby93aWtpbmV1cm90aWMK