From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp-1.sys.kth.se (smtp-1.sys.kth.se [130.237.32.175]) by krisdoz.my.domain (8.14.3/8.14.3) with ESMTP id o61JXql7015466 for ; Thu, 1 Jul 2010 15:33:53 -0400 (EDT) Received: from smtp-1.sys.kth.se (localhost [127.0.0.1]) by smtp-1.sys.kth.se (Postfix) with ESMTP id 592AC1563B6 for ; Thu, 1 Jul 2010 21:33:47 +0200 (CEST) X-Virus-Scanned: by amavisd-new at kth.se Received: from smtp-1.sys.kth.se ([127.0.0.1]) by smtp-1.sys.kth.se (smtp-1.sys.kth.se [127.0.0.1]) (amavisd-new, port 10024) with LMTP id hMkHDL2GngpD for ; Thu, 1 Jul 2010 21:33:41 +0200 (CEST) X-KTH-Auth: kristaps [85.8.60.23] X-KTH-mail-from: kristaps@bsd.lv X-KTH-rcpt-to: tech@mdocml.bsd.lv Received: from lappy.bsd.lv (h85-8-60-23.dynamic.se.alltele.net [85.8.60.23]) by smtp-1.sys.kth.se (Postfix) with ESMTP id 7AABF15636A for ; Thu, 1 Jul 2010 21:33:40 +0200 (CEST) Message-ID: <4C2CED93.8010209@bsd.lv> Date: Thu, 01 Jul 2010 21:33:39 +0200 From: Kristaps Dzonsons User-Agent: Thunderbird 2.0.0.16 (X11/20080812) X-Mailinglist: mdocml-tech Reply-To: tech@mdocml.bsd.lv MIME-Version: 1.0 To: tech@mdocml.bsd.lv Subject: Re: Memory badness... References: <4C2CED10.9020708@bsd.lv> In-Reply-To: <4C2CED10.9020708@bsd.lv> Content-Type: multipart/mixed; boundary="------------010807060904050207000306" This is a multi-part message in MIME format. --------------010807060904050207000306 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit > One of the previous commits to libmdoc is making the NetBSD manuals suck > up all memory in my system. Ingo, can you look at the last few patches > and see what could be the reason? I'll try to track down the culprit as > well... Here's the culprit file. --------------010807060904050207000306 Content-Type: text/plain; name="gcc-contrib.1" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="gcc-contrib.1" LlwiICROZXRCU0Q6IGdjYy1jb250cmliLjEsdiAxLjEgMjAwOS8wNC8zMCAwMDozMDo1NiBq b2VyZyBFeHAgJAouRGQgQXByaWwgMzAsIDIwMDkKLkR0IEdDQyAxCi5PcwouU2ggTkFNRQpn Y2MgLSBHTlUgcHJvamVjdCBDIGFuZCBDKysgY29tcGlsZXIKLlNoIFNZTk9QU0lTCmdjYwou T28gRmwgYwp8Ci5GbCBTCnwKLkZsIEUgT2MKLk9wIEZsIHN0ZD0gTnMgQXIgc3RhbmRhcmQK Lk9wIEZsIGcKLk9wIEZsIHBnCi5PcCBGbCBPIE5zIEFyIGxldmVsCi5PcCBGbCBXIE5zIEFy IHdhcm4uLi4KLk9wIEZsIHBlZGFudGljCi5PcCBGbCBJIE5zIEFyIGRpci4uLgouT3AgRmwg TCBOcyBBciBkaXIuLi4KLk9wIEZsIEQgTnMgQXIgbWFjcm8gTnMgPSBOcyBBciBkZWZuLi4u Ci5PcCBGbCBVIE5zIEFyIG1hY3JvCi5PcCBGbCBmIE5zIEFyIG9wdGlvbi4uLgouT3AgRmwg bSBOcyBBciBtYWNoaW5lLW9wdGlvbi4uLgouT3AgRmwgbyBBciBvdXRmaWxlCi5FbSBpbmZp bGUgLiAuIC4KLlBwCk9ubHkgdGhlIG1vc3QgdXNlZnVsIG9wdGlvbnMgYXJlIGxpc3RlZCBo ZXJlOyBzZWUgYmVsb3cgZm9yIHRoZSByZW1haW5kZXIuCi5ObSBnKysKYWNjZXB0cyBtb3N0 bHkgdGhlIHNhbWUgb3B0aW9ucyBhcwouTm0gZ2NjIC4KLlNoIERFU0NSSVBUSU9OCldoZW4g eW91IGludm9rZSBHQ0MsIGl0IG5vcm1hbGx5IGRvZXMgcHJlcHJvY2Vzc2luZywgY29tcGls YXRpb24sIGFzc2VtYmx5IGFuZCBsaW5raW5nLgpUaGUgIm92ZXJhbGwgb3B0aW9ucyIgYWxs b3cgeW91IHRvIHN0b3AgdGhpcyBwcm9jZXNzIGF0IGFuIGludGVybWVkaWF0ZSBzdGFnZS4K Rm9yIGV4YW1wbGUsIHRoZQouRmwgYwpvcHRpb24gc2F5cyBub3QgdG8gcnVuIHRoZSBsaW5r ZXIuClRoZW4gdGhlIG91dHB1dCBjb25zaXN0cyBvZiBvYmplY3QgZmlsZXMgb3V0cHV0IGJ5 IHRoZSBhc3NlbWJsZXIuCi5QcApPdGhlciBvcHRpb25zIGFyZSBwYXNzZWQgb24gdG8gb25l IHN0YWdlIG9mIHByb2Nlc3NpbmcuClNvbWUgb3B0aW9ucyBjb250cm9sIHRoZSBwcmVwcm9j ZXNzb3IgYW5kIG90aGVycyB0aGUgY29tcGlsZXIgaXRzZWxmLgpZZXQgb3RoZXIgb3B0aW9u cyBjb250cm9sIHRoZSBhc3NlbWJsZXIgYW5kIGxpbmtlcjsgbW9zdCBvZiB0aGVzZSBhcmUg bm90IGRvY3VtZW50ZWQgaGVyZSwgc2luY2UgeW91IHJhcmVseSBuZWVkIHRvIHVzZSBhbnkg b2YgdGhlbS4KLlBwCk1vc3Qgb2YgdGhlIGNvbW1hbmQgbGluZSBvcHRpb25zIHRoYXQgeW91 IGNhbiB1c2Ugd2l0aCBHQ0MgYXJlIHVzZWZ1bCBmb3IgQyBwcm9ncmFtczsgd2hlbiBhbiBv cHRpb24gaXMgb25seSB1c2VmdWwgd2l0aCBhbm90aGVyIGxhbmd1YWdlICh1c3VhbGx5IEMr KyksIHRoZSBleHBsYW5hdGlvbiBzYXlzIHNvIGV4cGxpY2l0bHkuCklmIHRoZSBkZXNjcmlw dGlvbiBmb3IgYSBwYXJ0aWN1bGFyIG9wdGlvbiBkb2VzIG5vdCBtZW50aW9uIGEgc291cmNl IGxhbmd1YWdlLCB5b3UgY2FuIHVzZSB0aGF0IG9wdGlvbiB3aXRoIGFsbCBzdXBwb3J0ZWQg bGFuZ3VhZ2VzLgouUHAKVGhlCi5ObSBnY2MKcHJvZ3JhbSBhY2NlcHRzIG9wdGlvbnMgYW5k IGZpbGUgbmFtZXMgYXMgb3BlcmFuZHMuCk1hbnkgb3B0aW9ucyBoYXZlIG11bHRpLWxldHRl ciBuYW1lczsgdGhlcmVmb3JlIG11bHRpcGxlIHNpbmdsZS1sZXR0ZXIgb3B0aW9ucyBtYXkK LkVtIG5vdApiZSBncm91cGVkOgouRmwgZHIKaXMgdmVyeSBkaWZmZXJlbnQgZnJvbQouRmwg ZCBGbCByIC4KLlBwCllvdSBjYW4gbWl4IG9wdGlvbnMgYW5kIG90aGVyIGFyZ3VtZW50cy4K Rm9yIHRoZSBtb3N0IHBhcnQsIHRoZSBvcmRlciB5b3UgdXNlIGRvZXNuJ3QgbWF0dGVyLgpP cmRlciBkb2VzIG1hdHRlciB3aGVuIHlvdSB1c2Ugc2V2ZXJhbCBvcHRpb25zIG9mIHRoZSBz YW1lIGtpbmQ7IGZvciBleGFtcGxlLCBpZiB5b3Ugc3BlY2lmeQouRmwgTAptb3JlIHRoYW4g b25jZSwgdGhlIGRpcmVjdG9yaWVzIGFyZSBzZWFyY2hlZCBpbiB0aGUgb3JkZXIgc3BlY2lm aWVkLgouUHAKTWFueSBvcHRpb25zIGhhdmUgbG9uZyBuYW1lcyBzdGFydGluZyB3aXRoCi5G bCBmCm9yIHdpdGgKLkZsIFcKLS0tZm9yIGV4YW1wbGUsCi5GbCBmc3RyZW5ndGgtcmVkdWNl ICwKLkZsIFdmb3JtYXQKYW5kIHNvIG9uLgpNb3N0IG9mIHRoZXNlIGhhdmUgYm90aCBwb3Np dGl2ZSBhbmQgbmVnYXRpdmUgZm9ybXM7IHRoZSBuZWdhdGl2ZSBmb3JtIG9mCi5GbCBmZm9v CndvdWxkIGJlCi5GbCBmbm8tZm9vIC4KVGhpcyBtYW51YWwgZG9jdW1lbnRzIG9ubHkgb25l IG9mIHRoZXNlIHR3byBmb3Jtcywgd2hpY2hldmVyIG9uZSBpcyBub3QgdGhlIGRlZmF1bHQu Ci5TaCBPUFRJT05TCi5TcyBPcHRpb24gU3VtbWFyeQpIZXJlIGlzIGEgc3VtbWFyeSBvZiBh bGwgdGhlIG9wdGlvbnMsIGdyb3VwZWQgYnkgdHlwZS4KRXhwbGFuYXRpb25zIGFyZSBpbiB0 aGUgZm9sbG93aW5nIHNlY3Rpb25zLgouUHAKLkJsIC10YWcgLXdpZHRoIHh4Ci5JdCBTeSBP dmVyYWxsIE9wdGlvbnMKLkZsIGMgRmwgUyBGbCBFIEZsIG8gQXIgZmlsZQouRmwgY29tYmlu ZSBGbCBwaXBlIEZsIHBhc3MtZXhpdC1jb2RlcyBGbCB4IEFyIGxhbmd1YWdlCi5GbCB2IEZs ICMjIyBGbCAtaGVscCBGbCAtdGFyZ2V0LWhlbHAgRmwgLXZlcnNpb24KLlBwCi5JdCBTeSBD IExhbmd1YWdlIE9wdGlvbnMKLkZsIGFuc2kgRmwgc3RkPSBOcyBBciBzdGFuZGFyZAouRmwg ZmdudTg5LWlubGluZSBGbCBhdXgtaW5mbyBBciBmaWxlbmFtZQouRmwgZm5vLWFzbSBGbCBm bm8tYnVpbHRpbiBGbCBmbm8tYnVpbHRpbi0gTnMgQXIgZnVuY3Rpb24KLkZsIGZob3N0ZWQg RmwgZmZyZWVzdGFuZGluZyBGbCBmbXMtZXh0ZW5zaW9ucyBGbCB0cmlncmFwaHMgRmwgbm8t aW50ZWdyYXRlZC1jcHAgRmwgdHJhZGl0aW9uYWwgRmwgdHJhZGl0aW9uYWwtY3BwIEZsIGZh bGxvdy1zaW5nbGUtcHJlY2lzaW9uIEZsIGZjb25kLW1pc21hdGNoIEZsIGZzaWduZWQtYml0 ZmllbGRzIEZsIGZzaWduZWQtY2hhciBGbCBmdW5zaWduZWQtYml0ZmllbGRzIEZsIGZ1bnNp Z25lZC1jaGFyCi5QcAouSXQgU3kgQysrIExhbmd1YWdlIE9wdGlvbnMKLkZsIGZhYmktdmVy c2lvbj0gTnMgQXIgbgouRmwgZm5vLWFjY2Vzcy1jb250cm9sIEZsIGZjaGVjay1uZXcgRmwg ZmNvbnNlcnZlLXNwYWNlIEZsIGZmcmllbmQtaW5qZWN0aW9uIEZsIGZuby1jb25zdC1zdHJp bmdzIEZsIGZuby1lbGlkZS1jb25zdHJ1Y3RvcnMgRmwgZm5vLWVuZm9yY2UtZWgtc3BlY3Mg RmwgZmZvci1zY29wZSBGbCBmbm8tZm9yLXNjb3BlIEZsIGZuby1nbnUta2V5d29yZHMgRmwg Zm5vLWltcGxpY2l0LXRlbXBsYXRlcyBGbCBmbm8taW1wbGljaXQtaW5saW5lLXRlbXBsYXRl cyBGbCBmbm8taW1wbGVtZW50LWlubGluZXMgRmwgZm1zLWV4dGVuc2lvbnMgRmwgZm5vLW5v bmFuc2ktYnVpbHRpbnMgRmwgZm5vLW9wZXJhdG9yLW5hbWVzIEZsIGZuby1vcHRpb25hbC1k aWFncyBGbCBmcGVybWlzc2l2ZSBGbCBmcmVwbyBGbCBmbm8tcnR0aSBGbCBmc3RhdHMgRmwg ZnRlbXBsYXRlLWRlcHRoLSBOcyBBciBuCi5GbCBmbm8tdGhyZWFkc2FmZS1zdGF0aWNzIEZs IGZ1c2UtY3hhLWF0ZXhpdCBGbCBmbm8td2VhayBGbCBub3N0ZGluYysrIEZsIGZuby1kZWZh dWx0LWlubGluZSBGbCBmdmlzaWJpbGl0eS1pbmxpbmVzLWhpZGRlbiBGbCBXYWJpIEZsIFdj dG9yLWR0b3ItcHJpdmFjeSBGbCBXbm9uLXZpcnR1YWwtZHRvciBGbCBXcmVvcmRlciBGbCBX ZWZmYysrIEZsIFduby1kZXByZWNhdGVkIEZsIFdzdHJpY3QtbnVsbC1zZW50aW5lbCBGbCBX bm8tbm9uLXRlbXBsYXRlLWZyaWVuZCBGbCBXb2xkLXN0eWxlLWNhc3QgRmwgV292ZXJsb2Fk ZWQtdmlydHVhbCBGbCBXbm8tcG1mLWNvbnZlcnNpb25zIEZsIFdzaWduLXByb21vCi5QcAou SXQgU3kgT2JqZWN0aXZlLUMgYW5kIE9iamVjdGl2ZS1DKysgTGFuZ3VhZ2UgT3B0aW9ucwou RmwgZmNvbnN0YW50LXN0cmluZy1jbGFzcz0gTnMgQXIgY2xhc3MtbmFtZQouRmwgZmdudS1y dW50aW1lIEZsIGZuZXh0LXJ1bnRpbWUgRmwgZm5vLW5pbC1yZWNlaXZlcnMgRmwgZm9iamMt Y2FsbC1jeHgtY2R0b3JzIEZsIGZvYmpjLWRpcmVjdC1kaXNwYXRjaCBGbCBmb2JqYy1leGNl cHRpb25zIEZsIGZvYmpjLWdjIEZsIGZyZXBsYWNlLW9iamMtY2xhc3NlcyBGbCBmemVyby1s aW5rIEZsIGdlbi1kZWNscyBGbCBXYXNzaWduLWludGVyY2VwdCBGbCBXbm8tcHJvdG9jb2wg RmwgV3NlbGVjdG9yIEZsIFdzdHJpY3Qtc2VsZWN0b3ItbWF0Y2ggRmwgV3VuZGVjbGFyZWQt c2VsZWN0b3IKLlBwCi5JdCBTeSBMYW5ndWFnZSBJbmRlcGVuZGVudCBPcHRpb25zCi5GbCBm bWVzc2FnZS1sZW5ndGg9IE5zIEFyIG4KLkZsIGZkaWFnbm9zdGljcy1zaG93LWxvY2F0aW9u PSBOcyBPbyBOcyBBciBvbmNlIE5zIHwgTnMgQXIgZXZlcnktbGluZSBOcyBPYwouRmwgZmRp YWdub3N0aWNzLXNob3ctb3B0aW9ucwouUHAKLkl0IFN5IFdhcm5pbmcgT3B0aW9ucwouRmwg ZnN5bnRheC1vbmx5IEZsIHBlZGFudGljIEZsIHBlZGFudGljLWVycm9ycyBGbCB3IEZsIFdl eHRyYSBGbCBXYWxsIEZsIFdhZ2dyZWdhdGUtcmV0dXJuIEZsIFduby1hdHRyaWJ1dGVzIEZs IFdjKystY29tcGF0IEZsIFdjYXN0LWFsaWduIEZsIFdjYXN0LXF1YWwgRmwgV2NoYXItc3Vi c2NyaXB0cyBGbCBXY29tbWVudCBGbCBXY29udmVyc2lvbiBGbCBXbm8tZGVwcmVjYXRlZC1k ZWNsYXJhdGlvbnMgRmwgV2Rpc2FibGVkLW9wdGltaXphdGlvbiBGbCBXbm8tZGl2LWJ5LXpl cm8gRmwgV25vLWVuZGlmLWxhYmVscyBGbCBXZXJyb3IgRmwgV2Vycm9yLWltcGxpY2l0LWZ1 bmN0aW9uLWRlY2xhcmF0aW9uIEZsIFdmYXRhbC1lcnJvcnMgRmwgV2Zsb2F0LWVxdWFsIEZs IFdmb3JtYXQgRmwgV2Zvcm1hdD0yIEZsIFduby1mb3JtYXQtZXh0cmEtYXJncyBGbCBXZm9y bWF0LW5vbmxpdGVyYWwgRmwgV2Zvcm1hdC1zZWN1cml0eSBGbCBXZm9ybWF0LXkyayBGbCBX aW1wbGljaXQgRmwgV2ltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uIEZsIFdpbXBsaWNp dC1pbnQgRmwgV2ltcG9ydCBGbCBXbm8taW1wb3J0IEZsIFdpbml0LXNlbGYgRmwgV2lubGlu ZSBGbCBXbm8taW50LXRvLXBvaW50ZXItY2FzdCBGbCBXbm8taW52YWxpZC1vZmZzZXRvZiBG bCBXaW52YWxpZC1wY2ggRmwgV2xhcmdlci10aGFuLSBOcyBBciBsZW4KLkZsIFd1bnNhZmUt bG9vcC1vcHRpbWl6YXRpb25zIEZsIFdsb25nLWxvbmcgRmwgV21haW4gRmwgV21pc3Npbmct YnJhY2VzIEZsIFdtaXNzaW5nLWZpZWxkLWluaXRpYWxpemVycyBGbCBXbWlzc2luZy1mb3Jt YXQtYXR0cmlidXRlIEZsIFdtaXNzaW5nLWluY2x1ZGUtZGlycyBGbCBXbWlzc2luZy1ub3Jl dHVybiBGbCBXbm8tbXVsdGljaGFyIEZsIFdub25udWxsIEZsIFdwYWNrZWQgRmwgV3BhZGRl ZCBGbCBXcGFyZW50aGVzZXMgRmwgV3BvaW50ZXItYXJpdGggRmwgV25vLXBvaW50ZXItdG8t aW50LWNhc3QgRmwgV3JlZHVuZGFudC1kZWNscyBGbCBXcmV0dXJuLXR5cGUgRmwgV3NlcXVl bmNlLXBvaW50IEZsIFdzaGFkb3cgRmwgV3NpZ24tY29tcGFyZSBGbCBXc3RhY2stcHJvdGVj dG9yIEZsIFdzdHJpY3QtYWxpYXNpbmcgRmwgV3N0cmljdC1hbGlhc2luZz0yIEZsIFdzd2l0 Y2ggRmwgV3N3aXRjaC1kZWZhdWx0IEZsIFdzd2l0Y2gtZW51bSBGbCBXc3lzdGVtLWhlYWRl cnMgRmwgV3RyaWdyYXBocyBGbCBXdW5kZWYgRmwgV3VuaW5pdGlhbGl6ZWQgRmwgV3Vua25v d24tcHJhZ21hcyBGbCBXbm8tcHJhZ21hcyBGbCBXdW5yZWFjaGFibGUtY29kZSBGbCBXdW51 c2VkIEZsIFd1bnVzZWQtZnVuY3Rpb24gRmwgV3VudXNlZC1sYWJlbCBGbCBXdW51c2VkLXBh cmFtZXRlciBGbCBXdW51c2VkLXZhbHVlIEZsIFd1bnVzZWQtdmFyaWFibGUgRmwgV3Zhcmlh ZGljLW1hY3JvcyBGbCBXdm9sYXRpbGUtcmVnaXN0ZXItdmFyIEZsIFd3cml0ZS1zdHJpbmdz Ci5QcAouSXQgU3kgQy1vbmx5IFdhcm5pbmcgT3B0aW9ucwouRmwgV2JhZC1mdW5jdGlvbi1j YXN0IEZsIFdtaXNzaW5nLWRlY2xhcmF0aW9ucyBGbCBXbWlzc2luZy1wcm90b3R5cGVzIEZs IFduZXN0ZWQtZXh0ZXJucyBGbCBXb2xkLXN0eWxlLWRlZmluaXRpb24gRmwgV3N0cmljdC1w cm90b3R5cGVzIEZsIFd0cmFkaXRpb25hbCBGbCBXZGVjbGFyYXRpb24tYWZ0ZXItc3RhdGVt ZW50IEZsIFdwb2ludGVyLXNpZ24KLlBwCi5JdCBTeSBEZWJ1Z2dpbmcgT3B0aW9ucwouRmwg ZCBOcyBBciBsZXR0ZXJzCi5GbCBkdW1wc3BlY3MgRmwgZHVtcG1hY2hpbmUgRmwgZHVtcHZl cnNpb24gRmwgZmR1bXAtdW5udW1iZXJlZCBGbCBmZHVtcC10cmFuc2xhdGlvbi11bml0LSBO cyBBciBuCi5GbCBmZHVtcC1jbGFzcy1oaWVyYXJjaHktIE5zIEFyIG4KLkZsIGZkdW1wLWlw YS1hbGwgRmwgZmR1bXAtaXBhLWNncmFwaCBGbCBmZHVtcC10cmVlLWFsbCBGbCBmZHVtcC10 cmVlLW9yaWdpbmFsLSBOcyBBciBuCi5GbCBmZHVtcC10cmVlLW9wdGltaXplZC0gTnMgQXIg bgouRmwgZmR1bXAtdHJlZS1pbmxpbmVkLSBOcyBBciBuCi5GbCBmZHVtcC10cmVlLWNmZyBG bCBmZHVtcC10cmVlLXZjZyBGbCBmZHVtcC10cmVlLWFsaWFzIEZsIGZkdW1wLXRyZWUtY2gg RmwgZmR1bXAtdHJlZS1zc2EtIE5zIEFyIG4KLkZsIGZkdW1wLXRyZWUtcHJlLSBOcyBBciBu Ci5GbCBmZHVtcC10cmVlLWNjcC0gTnMgQXIgbgouRmwgZmR1bXAtdHJlZS1kY2UtIE5zIEFy IG4KLkZsIGZkdW1wLXRyZWUtZ2ltcGxlIE5zIE9vIE5zIEFyIC1yYXcgTnMgT2MKLkZsIGZk dW1wLXRyZWUtbXVkZmxhcC0gTnMgQXIgbgouRmwgZmR1bXAtdHJlZS1kb20tIE5zIEFyIG4K LkZsIGZkdW1wLXRyZWUtZHNlLSBOcyBBciBuCi5GbCBmZHVtcC10cmVlLXBoaW9wdC0gTnMg QXIgbgouRmwgZmR1bXAtdHJlZS1mb3J3cHJvcC0gTnMgQXIgbgouRmwgZmR1bXAtdHJlZS1j b3B5cmVuYW1lLSBOcyBBciBuCi5GbCBmZHVtcC10cmVlLW5ydiBGbCBmZHVtcC10cmVlLXZl Y3QgRmwgZmR1bXAtdHJlZS1zaW5rIEZsIGZkdW1wLXRyZWUtc3JhLSBOcyBBciBuCi5GbCBm ZHVtcC10cmVlLXNhbGlhcyBGbCBmZHVtcC10cmVlLWZyZS0gTnMgQXIgbgouRmwgZmR1bXAt dHJlZS12cnAtIE5zIEFyIG4KLkZsIGZ0cmVlLXZlY3Rvcml6ZXItdmVyYm9zZT0gTnMgQXIg bgouRmwgZmR1bXAtdHJlZS1zdG9yZWNjcC0gTnMgQXIgbgouRmwgZmVsaW1pbmF0ZS1kd2Fy ZjItZHVwcyBGbCBmZWxpbWluYXRlLXVudXNlZC1kZWJ1Zy10eXBlcyBGbCBmZWxpbWluYXRl LXVudXNlZC1kZWJ1Zy1zeW1ib2xzIEZsIGZtZW0tcmVwb3J0IEZsIGZwcm9maWxlLWFyY3Mg RmwgZnJhbmRvbS1zZWVkPSBOcyBBciBzdHJpbmcKLkZsIGZzY2hlZC12ZXJib3NlPSBOcyBB ciBuCi5GbCBmdGVzdC1jb3ZlcmFnZSBGbCBmdGltZS1yZXBvcnQgRmwgZnZhci10cmFja2lu ZyBGbCBnIEZsIGcgTnMgQXIgbGV2ZWwKLkZsIGdjb2ZmIEZsIGdkd2FyZi0yIEZsIGdnZGIg RmwgZ3N0YWJzIEZsIGdzdGFicysgRmwgZ3ZtcyBGbCBneGNvZmYgRmwgZ3hjb2ZmKyBGbCBw IEZsIHBnIEZsIHByaW50LWZpbGUtbmFtZT0gTnMgQXIgbGlicmFyeQouRmwgcHJpbnQtbGli Z2NjLWZpbGUtbmFtZSBGbCBwcmludC1tdWx0aS1kaXJlY3RvcnkgRmwgcHJpbnQtbXVsdGkt bGliIEZsIHByaW50LXByb2ctbmFtZT0gTnMgQXIgcHJvZ3JhbQouRmwgcHJpbnQtc2VhcmNo LWRpcnMgRmwgUSBGbCBzYXZlLXRlbXBzIEZsIHRpbWUKLlBwCi5JdCBTeSBPcHRpbWl6YXRp b24gT3B0aW9ucwouRmwgZmFsaWduLWZ1bmN0aW9ucyBOcyBPbyA9IE5zIEFyIG4gT2MKLkZs IGZhbGlnbi1qdW1wcyBOcyBPbyA9IE5zIEFyIG4gT2MKLkZsIGZhbGlnbi1sYWJlbHMgTnMg T28gPSBOcyBBciBuIE9jCi5GbCBmYWxpZ24tbG9vcHMgTnMgT28gPSBOcyBBciBuIE9jCi5G bCBmbXVkZmxhcCBGbCBmbXVkZmxhcHRoIEZsIGZtdWRmbGFwaXIgRmwgZmJyYW5jaC1wcm9i YWJpbGl0aWVzIEZsIGZwcm9maWxlLXZhbHVlcyBGbCBmdnB0IEZsIGZicmFuY2gtdGFyZ2V0 LWxvYWQtb3B0aW1pemUgRmwgZmJyYW5jaC10YXJnZXQtbG9hZC1vcHRpbWl6ZTIgRmwgZmJ0 ci1iYi1leGNsdXNpdmUgRmwgZmNhbGxlci1zYXZlcyBGbCBmY3Byb3AtcmVnaXN0ZXJzIEZs IGZjc2UtZm9sbG93LWp1bXBzIEZsIGZjc2Utc2tpcC1ibG9ja3MgRmwgZmN4LWxpbWl0ZWQt cmFuZ2UgRmwgZmRhdGEtc2VjdGlvbnMgRmwgZmRlbGF5ZWQtYnJhbmNoIEZsIGZkZWxldGUt bnVsbC1wb2ludGVyLWNoZWNrcyBGbCBmZWFybHktaW5saW5pbmcgRmwgZmV4cGVuc2l2ZS1v cHRpbWl6YXRpb25zIEZsIGZmYXN0LW1hdGggRmwgZmZsb2F0LXN0b3JlIEZsIGZmb3JjZS1h ZGRyIEZsIGZmdW5jdGlvbi1zZWN0aW9ucyBGbCBmZ2NzZSBGbCBmZ2NzZS1sbSBGbCBmZ2Nz ZS1zbSBGbCBmZ2NzZS1sYXMgRmwgZmdjc2UtYWZ0ZXItcmVsb2FkIEZsIGZsb29wLW9wdGlt aXplIEZsIGZjcm9zc2p1bXBpbmcgRmwgZmlmLWNvbnZlcnNpb24gRmwgZmlmLWNvbnZlcnNp b24yIEZsIGZpbmxpbmUtZnVuY3Rpb25zIEZsIGZpbmxpbmUtZnVuY3Rpb25zLWNhbGxlZC1v bmNlIEZsIGZpbmxpbmUtbGltaXQ9IE5zIEFyIG4KLkZsIGZrZWVwLWlubGluZS1mdW5jdGlv bnMgRmwgZmtlZXAtc3RhdGljLWNvbnN0cyBGbCBmbWVyZ2UtY29uc3RhbnRzIEZsIGZtZXJn ZS1hbGwtY29uc3RhbnRzIEZsIGZtb2R1bG8tc2NoZWQgRmwgZm5vLWJyYW5jaC1jb3VudC1y ZWcgRmwgZm5vLWRlZmF1bHQtaW5saW5lIEZsIGZuby1kZWZlci1wb3AgRmwgZmxvb3Atb3B0 aW1pemUyIEZsIGZtb3ZlLWxvb3AtaW52YXJpYW50cyBGbCBmbm8tZnVuY3Rpb24tY3NlIEZs IGZuby1ndWVzcy1icmFuY2gtcHJvYmFiaWxpdHkgRmwgZm5vLWlubGluZSBGbCBmbm8tbWF0 aC1lcnJubyBGbCBmbm8tcGVlcGhvbGUgRmwgZm5vLXBlZXBob2xlMiBGbCBmdW5zYWZlLW1h dGgtb3B0aW1pemF0aW9ucyBGbCBmdW5zYWZlLWxvb3Atb3B0aW1pemF0aW9ucyBGbCBmZmlu aXRlLW1hdGgtb25seSBGbCBmbm8tdHJhcHBpbmctbWF0aCBGbCBmbm8temVyby1pbml0aWFs aXplZC1pbi1ic3MgRmwgZm9taXQtZnJhbWUtcG9pbnRlciBGbCBmb3B0aW1pemUtcmVnaXN0 ZXItbW92ZSBGbCBmb3B0aW1pemUtc2libGluZy1jYWxscyBGbCBmcHJlZmV0Y2gtbG9vcC1h cnJheXMgRmwgZnByb2ZpbGUtZ2VuZXJhdGUgRmwgZnByb2ZpbGUtdXNlIEZsIGZyZWdtb3Zl IEZsIGZyZW5hbWUtcmVnaXN0ZXJzIEZsIGZyZW9yZGVyLWJsb2NrcyBGbCBmcmVvcmRlci1i bG9ja3MtYW5kLXBhcnRpdGlvbiBGbCBmcmVvcmRlci1mdW5jdGlvbnMgRmwgZnJlcnVuLWNz ZS1hZnRlci1sb29wIEZsIGZyZXJ1bi1sb29wLW9wdCBGbCBmcm91bmRpbmctbWF0aCBGbCBm c2NoZWR1bGUtaW5zbnMgRmwgZnNjaGVkdWxlLWluc25zMiBGbCBmbm8tc2NoZWQtaW50ZXJi bG9jayBGbCBmbm8tc2NoZWQtc3BlYyBGbCBmc2NoZWQtc3BlYy1sb2FkIEZsIGZzY2hlZC1z cGVjLWxvYWQtZGFuZ2Vyb3VzIEZsIGZzY2hlZC1zdGFsbGVkLWluc25zIE5zIE9vID0gTnMg QXIgbiBPYwouRmwgZnNjaGVkLXN0YWxsZWQtaW5zbnMtZGVwIE5zIE9vID0gTnMgQXIgbiBP YwouRmwgZnNjaGVkMi11c2Utc3VwZXJibG9ja3MgRmwgZnNjaGVkMi11c2UtdHJhY2VzIEZs IGZyZXNjaGVkdWxlLW1vZHVsby1zY2hlZHVsZWQtbG9vcHMgRmwgZnNpZ25hbGluZy1uYW5z IEZsIGZzaW5nbGUtcHJlY2lzaW9uLWNvbnN0YW50IEZsIGZzdGFjay1wcm90ZWN0b3IgRmwg ZnN0YWNrLXByb3RlY3Rvci1hbGwgRmwgZnN0cmVuZ3RoLXJlZHVjZSBGbCBmc3RyaWN0LWFs aWFzaW5nIEZsIGZ0cmFjZXIgRmwgZnRocmVhZC1qdW1wcyBGbCBmdW5yb2xsLWFsbC1sb29w cyBGbCBmdW5yb2xsLWxvb3BzIEZsIGZwZWVsLWxvb3BzIEZsIGZzcGxpdC1pdnMtaW4tdW5y b2xsZXIgRmwgZnVuc3dpdGNoLWxvb3BzIEZsIGZ2YXJpYWJsZS1leHBhbnNpb24taW4tdW5y b2xsZXIgRmwgZnRyZWUtcHJlIEZsIGZ0cmVlLWNjcCBGbCBmdHJlZS1kY2UgRmwgZnRyZWUt bG9vcC1vcHRpbWl6ZSBGbCBmdHJlZS1sb29wLWxpbmVhciBGbCBmdHJlZS1sb29wLWltIEZs IGZ0cmVlLWxvb3AtaXZjYW5vbiBGbCBmaXZvcHRzIEZsIGZ0cmVlLWRvbWluYXRvci1vcHRz IEZsIGZ0cmVlLWRzZSBGbCBmdHJlZS1jb3B5cmVuYW1lIEZsIGZ0cmVlLXNpbmsgRmwgZnRy ZWUtY2ggRmwgZnRyZWUtc3JhIEZsIGZ0cmVlLXRlciBGbCBmdHJlZS1scnMgRmwgZnRyZWUt ZnJlIEZsIGZ0cmVlLXZlY3Rvcml6ZSBGbCBmdHJlZS12ZWN0LWxvb3AtdmVyc2lvbiBGbCBm dHJlZS1zYWxpYXMgRmwgZndlYiBGbCBmdHJlZS1jb3B5LXByb3AgRmwgZnRyZWUtc3RvcmUt Y2NwIEZsIGZ0cmVlLXN0b3JlLWNvcHktcHJvcCBGbCBmdHJlZS12cnAgRmwgZnVuaXQtYXQt YS10aW1lIEZsIGZ3aG9sZS1wcm9ncmFtIEZsIC1wYXJhbSBBciBuYW1lIE5zID0gTnMgQXIg dmFsdWUKLkZsIE8gRmwgTzAgRmwgTzEgRmwgTzIgRmwgTzMgRmwgXCZPcwouUHAKLkl0IFN5 IFByZXByb2Nlc3NvciBPcHRpb25zCi5GbCBBIE5zIEFyIHF1ZXN0aW9uIE5zID0gTnMgQXIg YW5zd2VyCi5GbCBBLSBOcyBBciBxdWVzdGlvbiBOcyA9IE5zIEFyIGFuc3dlcgouRmwgQyBG bCBkRCBGbCBkSSBGbCBkTSBGbCBkTiBGbCBEIE5zIEFyIG1hY3JvIE5zID0gTnMgQXIgZGVm bgouRmwgRSBGbCBIIEZsIGlkaXJhZnRlciBBciBkaXIKLkZsIGluY2x1ZGUgQXIgZmlsZQou RmwgaW1hY3JvcyBBciBmaWxlCi5GbCBpcHJlZml4IEFyIGZpbGUKLkZsIGl3aXRocHJlZml4 IEFyIGRpcgouRmwgaXdpdGhwcmVmaXhiZWZvcmUgQXIgZGlyCi5GbCBpc3lzdGVtIEFyIGRp cgouRmwgY3h4LWlzeXN0ZW0gQXIgZGlyCi5GbCBpc3lzcm9vdCBBciBkaXIKLkZsIE0gRmwg TU0gRmwgTUYgRmwgTUcgRmwgTVAgRmwgTVEgRmwgTVQgRmwgbm9zdGRpbmMgRmwgUCBGbCBm d29ya2luZy1kaXJlY3RvcnkgRmwgcmVtYXAgRmwgdHJpZ3JhcGhzIEZsIHVuZGVmIEZsIFUg TnMgQXIgbWFjcm8KLkZsIFdwLCBOcyBBciBvcHRpb24KLkZsIFhwcmVwcm9jZXNzb3IgQXIg b3B0aW9uCi5QcAouSXQgU3kgQXNzZW1ibGVyIE9wdGlvbgouRmwgV2EsIE5zIEFyIG9wdGlv bgouRmwgWGFzc2VtYmxlciBBciBvcHRpb24KLlBwCi5JdCBTeSBMaW5rZXIgT3B0aW9ucwou RW0gb2JqZWN0LWZpbGUtbmFtZQouRmwgbCBOcyBBciBsaWJyYXJ5Ci5GbCBub3N0YXJ0Zmls ZXMgRmwgbm9kZWZhdWx0bGlicyBGbCBub3N0ZGxpYiBGbCBwaWUgRmwgcmR5bmFtaWMgRmwg cyBGbCBzdGF0aWMgRmwgc3RhdGljLWxpYmdjYyBGbCBzaGFyZWQgRmwgc2hhcmVkLWxpYmdj YyBGbCBzeW1ib2xpYyBGbCBXbCwgTnMgQXIgb3B0aW9uCi5GbCBYbGlua2VyIEFyIG9wdGlv bgouRmwgdSBBciBzeW1ib2wKLlBwCi5JdCBTeSBEaXJlY3RvcnkgT3B0aW9ucwouRmwgQiBO cyBBciBwcmVmaXgKLkZsIEkgTnMgQXIgZGlyCi5GbCBpcXVvdGUgTnMgQXIgZGlyCi5GbCBM IE5zIEFyIGRpcgouRmwgc3BlY3M9IE5zIEFyIGZpbGUKLkZsIEktIEZsIC1zeXNyb290PSBO cyBBciBkaXIKLlBwCi5JdCBTeSBUYXJnZXQgT3B0aW9ucwouRmwgViBBciB2ZXJzaW9uCi5G bCBiIEFyIG1hY2hpbmUKLlBwCi5JdCBTeSBNYWNoaW5lIERlcGVuZGVudCBPcHRpb25zCi5F bSBBUkMgT3B0aW9ucwouRmwgRUIgRmwgRUwgRmwgbW1hbmdsZS1jcHUgRmwgbWNwdT0gTnMg QXIgY3B1Ci5GbCBtdGV4dD0gTnMgQXIgdGV4dC1zZWN0aW9uCi5GbCBtZGF0YT0gTnMgQXIg ZGF0YS1zZWN0aW9uCi5GbCBtcm9kYXRhPSBOcyBBciByZWFkb25seS1kYXRhLXNlY3Rpb24K LlBwCi5FbSBBUk0gT3B0aW9ucwouRmwgbWFwY3MtZnJhbWUgRmwgbW5vLWFwY3MtZnJhbWUg RmwgbWFiaT0gTnMgQXIgbmFtZQouRmwgbWFwY3Mtc3RhY2stY2hlY2sgRmwgbW5vLWFwY3Mt c3RhY2stY2hlY2sgRmwgbWFwY3MtZmxvYXQgRmwgbW5vLWFwY3MtZmxvYXQgRmwgbWFwY3Mt cmVlbnRyYW50IEZsIG1uby1hcGNzLXJlZW50cmFudCBGbCBtc2NoZWQtcHJvbG9nIEZsIG1u by1zY2hlZC1wcm9sb2cgRmwgbWxpdHRsZS1lbmRpYW4gRmwgbWJpZy1lbmRpYW4gRmwgbXdv cmRzLWxpdHRsZS1lbmRpYW4gRmwgbWZsb2F0LWFiaT0gTnMgQXIgbmFtZQouRmwgbXNvZnQt ZmxvYXQgRmwgbWhhcmQtZmxvYXQgRmwgbWZwZSBGbCBtdGh1bWItaW50ZXJ3b3JrIEZsIG1u by10aHVtYi1pbnRlcndvcmsgRmwgbWNwdT0gTnMgQXIgbmFtZQouRmwgbWFyY2g9IE5zIEFy IG5hbWUKLkZsIG1mcHU9IE5zIEFyIG5hbWUKLkZsIG1zdHJ1Y3R1cmUtc2l6ZS1ib3VuZGFy eT0gTnMgQXIgbgouRmwgbWFib3J0LW9uLW5vcmV0dXJuIEZsIG1sb25nLWNhbGxzIEZsIG1u by1sb25nLWNhbGxzIEZsIG1zaW5nbGUtcGljLWJhc2UgRmwgbW5vLXNpbmdsZS1waWMtYmFz ZSBGbCBtcGljLXJlZ2lzdGVyPSBOcyBBciByZWcKLkZsIG1ub3AtZnVuLWRsbGltcG9ydCBG bCBtY2lycnVzLWZpeC1pbnZhbGlkLWluc25zIEZsIG1uby1jaXJydXMtZml4LWludmFsaWQt aW5zbnMgRmwgbXBva2UtZnVuY3Rpb24tbmFtZSBGbCBtdGh1bWIgRmwgbWFybSBGbCBtdHBj cy1mcmFtZSBGbCBtdHBjcy1sZWFmLWZyYW1lIEZsIG1jYWxsZXItc3VwZXItaW50ZXJ3b3Jr aW5nIEZsIG1jYWxsZWUtc3VwZXItaW50ZXJ3b3JraW5nIEZsIG10cD0gTnMgQXIgbmFtZQou UHAKLkVtIEFWUiBPcHRpb25zCi5GbCBtbWN1PSBOcyBBciBtY3UKLkZsIG1zaXplIEZsIG1p bml0LXN0YWNrPSBOcyBBciBuCi5GbCBtbm8taW50ZXJydXB0cyBGbCBtY2FsbC1wcm9sb2d1 ZXMgRmwgbW5vLXRhYmxlanVtcCBGbCBtdGlueS1zdGFjayBGbCBtaW50OAouUHAKLkVtIEJs YWNrZmluIE9wdGlvbnMKLkZsIG1vbWl0LWxlYWYtZnJhbWUtcG9pbnRlciBGbCBtbm8tb21p dC1sZWFmLWZyYW1lLXBvaW50ZXIgRmwgbXNwZWNsZC1hbm9tYWx5IEZsIG1uby1zcGVjbGQt YW5vbWFseSBGbCBtY3N5bmMtYW5vbWFseSBGbCBtbm8tY3N5bmMtYW5vbWFseSBGbCBtbG93 LTY0ayBGbCBtbm8tbG93NjRrIEZsIG1pZC1zaGFyZWQtbGlicmFyeSBGbCBtbm8taWQtc2hh cmVkLWxpYnJhcnkgRmwgbXNoYXJlZC1saWJyYXJ5LWlkPSBOcyBBciBuCi5GbCBtbG9uZy1j YWxscyBGbCBtbm8tbG9uZy1jYWxscwouUHAKLkVtIENSSVMgT3B0aW9ucwouRmwgbWNwdT0g TnMgQXIgY3B1Ci5GbCBtYXJjaD0gTnMgQXIgY3B1Ci5GbCBtdHVuZT0gTnMgQXIgY3B1Ci5G bCBtbWF4LXN0YWNrLWZyYW1lPSBOcyBBciBuCi5GbCBtZWxpbnV4LXN0YWNrc2l6ZT0gTnMg QXIgbgouRmwgbWV0cmF4NCBGbCBtZXRyYXgxMDAgRmwgbXBkZWJ1ZyBGbCBtY2MtaW5pdCBG bCBtbm8tc2lkZS1lZmZlY3RzIEZsIG1zdGFjay1hbGlnbiBGbCBtZGF0YS1hbGlnbiBGbCBt Y29uc3QtYWxpZ24gRmwgbTMyLWJpdCBGbCBtMTYtYml0IEZsIG04LWJpdCBGbCBtbm8tcHJv bG9ndWUtZXBpbG9ndWUgRmwgbW5vLWdvdHBsdCBGbCBtZWxmIEZsIG1hb3V0IEZsIG1lbGlu dXggRmwgbWxpbnV4IEZsIHNpbSBGbCBzaW0yIEZsIG1tdWwtYnVnLXdvcmthcm91bmQgRmwg bW5vLW11bC1idWctd29ya2Fyb3VuZAouUHAKLkVtIENSWCBPcHRpb25zCi5GbCBtbWFjIEZs IG1wdXNoLWFyZ3MKLlBwCi5FbSBEYXJ3aW4gT3B0aW9ucwouRmwgYWxsX2xvYWQgRmwgYWxs b3dhYmxlX2NsaWVudCBGbCBhcmNoIEZsIGFyY2hfZXJyb3JzX2ZhdGFsIEZsIGFyY2hfb25s eSBGbCBiaW5kX2F0X2xvYWQgRmwgYnVuZGxlIEZsIGJ1bmRsZV9sb2FkZXIgRmwgY2xpZW50 X25hbWUgRmwgY29tcGF0aWJpbGl0eV92ZXJzaW9uIEZsIGN1cnJlbnRfdmVyc2lvbiBGbCBk ZWFkX3N0cmlwIEZsIGRlcGVuZGVuY3ktZmlsZSBGbCBkeWxpYl9maWxlIEZsIGR5bGlua2Vy X2luc3RhbGxfbmFtZSBGbCBkeW5hbWljIEZsIGR5bmFtaWNsaWIgRmwgZXhwb3J0ZWRfc3lt Ym9sc19saXN0IEZsIGZpbGVsaXN0IEZsIGZsYXRfbmFtZXNwYWNlIEZsIGZvcmNlX2NwdXN1 YnR5cGVfQUxMIEZsIGZvcmNlX2ZsYXRfbmFtZXNwYWNlIEZsIGhlYWRlcnBhZF9tYXhfaW5z dGFsbF9uYW1lcyBGbCBpbWFnZV9iYXNlIEZsIGluaXQgRmwgaW5zdGFsbF9uYW1lIEZsIGtl ZXBfcHJpdmF0ZV9leHRlcm5zIEZsIG11bHRpX21vZHVsZSBGbCBtdWx0aXBseV9kZWZpbmVk IEZsIG11bHRpcGx5X2RlZmluZWRfdW51c2VkIEZsIG5vYWxsX2xvYWQgRmwgbm9fZGVhZF9z dHJpcF9pbml0c19hbmRfdGVybXMgRmwgbm9maXhwcmViaW5kaW5nIEZsIG5vbXVsdGlkZWZz IEZsIG5vcHJlYmluZCBGbCBub3NlZ2xpbmtlZGl0IEZsIHBhZ2V6ZXJvX3NpemUgRmwgcHJl YmluZCBGbCBwcmViaW5kX2FsbF90d29sZXZlbF9tb2R1bGVzIEZsIHByaXZhdGVfYnVuZGxl IEZsIHJlYWRfb25seV9yZWxvY3MgRmwgc2VjdGFsaWduIEZsIHNlY3RvYmplY3RzeW1ib2xz IEZsIHdoeWxvYWQgRmwgc2VnMWFkZHIgRmwgc2VjdGNyZWF0ZSBGbCBzZWN0b2JqZWN0c3lt Ym9scyBGbCBzZWN0b3JkZXIgRmwgc2VnYWRkciBGbCBzZWdzX3JlYWRfb25seV9hZGRyIEZs IHNlZ3NfcmVhZF93cml0ZV9hZGRyIEZsIHNlZ19hZGRyX3RhYmxlIEZsIHNlZ19hZGRyX3Rh YmxlX2ZpbGVuYW1lIEZsIHNlZ2xpbmtlZGl0IEZsIHNlZ3Byb3QgRmwgc2Vnc19yZWFkX29u bHlfYWRkciBGbCBzZWdzX3JlYWRfd3JpdGVfYWRkciBGbCBzaW5nbGVfbW9kdWxlIEZsIHN0 YXRpYyBGbCBzdWJfbGlicmFyeSBGbCBzdWJfdW1icmVsbGEgRmwgdHdvbGV2ZWxfbmFtZXNw YWNlIEZsIHVtYnJlbGxhIEZsIHVuZGVmaW5lZCBGbCB1bmV4cG9ydGVkX3N5bWJvbHNfbGlz dCBGbCB3ZWFrX3JlZmVyZW5jZV9taXNtYXRjaGVzIEZsIHdoYXRzbG9hZGVkIEZsIEYgRmwg Z3VzZWQgRmwgZ2Z1bGwgRmwgbW1hY29zeC12ZXJzaW9uLW1pbj0gTnMgQXIgdmVyc2lvbgou RmwgbW9uZS1ieXRlLWJvb2wKLlBwCi5FbSBERUMgQWxwaGEgT3B0aW9ucwouRmwgbW5vLWZw LXJlZ3MgRmwgbXNvZnQtZmxvYXQgRmwgbWFscGhhLWFzIEZsIG1nYXMgRmwgbWllZWUgRmwg bWllZWUtd2l0aC1pbmV4YWN0IEZsIG1pZWVlLWNvbmZvcm1hbnQgRmwgbWZwLXRyYXAtbW9k ZT0gTnMgQXIgbW9kZQouRmwgbWZwLXJvdW5kaW5nLW1vZGU9IE5zIEFyIG1vZGUKLkZsIG10 cmFwLXByZWNpc2lvbj0gTnMgQXIgbW9kZQouRmwgbWJ1aWxkLWNvbnN0YW50cyBGbCBtY3B1 PSBOcyBBciBjcHUtdHlwZQouRmwgbXR1bmU9IE5zIEFyIGNwdS10eXBlCi5GbCBtYnd4IEZs IG1tYXggRmwgbWZpeCBGbCBtY2l4IEZsIG1mbG9hdC12YXggRmwgbWZsb2F0LWllZWUgRmwg bWV4cGxpY2l0LXJlbG9jcyBGbCBtc21hbGwtZGF0YSBGbCBtbGFyZ2UtZGF0YSBGbCBtc21h bGwtdGV4dCBGbCBtbGFyZ2UtdGV4dCBGbCBtbWVtb3J5LWxhdGVuY3k9IE5zIEFyIHRpbWUK LlBwCi5FbSBERUMgQWxwaGEvVk1TIE9wdGlvbnMKLkZsIG12bXMtcmV0dXJuLWNvZGVzCi5Q cAouRW0gRlJWIE9wdGlvbnMKLkZsIG1ncHItMzIgRmwgbWdwci02NCBGbCBtZnByLTMyIEZs IG1mcHItNjQgRmwgbWhhcmQtZmxvYXQgRmwgbXNvZnQtZmxvYXQgRmwgbWFsbG9jLWNjIEZs IG1maXhlZC1jYyBGbCBtZHdvcmQgRmwgbW5vLWR3b3JkIEZsIG1kb3VibGUgRmwgbW5vLWRv dWJsZSBGbCBtbWVkaWEgRmwgbW5vLW1lZGlhIEZsIG1tdWxhZGQgRmwgbW5vLW11bGFkZCBG bCBtZmRwaWMgRmwgbWlubGluZS1wbHQgRmwgbWdwcmVsLXJvIEZsIG11bHRpbGliLWxpYnJh cnktcGljIEZsIG1saW5rZWQtZnAgRmwgbWxvbmctY2FsbHMgRmwgbWFsaWduLWxhYmVscyBG bCBtbGlicmFyeS1waWMgRmwgbWFjYy00IEZsIG1hY2MtOCBGbCBtcGFjayBGbCBtbm8tcGFj ayBGbCBtbm8tZWZsYWdzIEZsIG1jb25kLW1vdmUgRmwgbW5vLWNvbmQtbW92ZSBGbCBtb3B0 aW1pemUtbWVtYmFyIEZsIG1uby1vcHRpbWl6ZS1tZW1iYXIgRmwgbXNjYyBGbCBtbm8tc2Nj IEZsIG1jb25kLWV4ZWMgRmwgbW5vLWNvbmQtZXhlYyBGbCBtdmxpdy1icmFuY2ggRmwgbW5v LXZsaXctYnJhbmNoIEZsIG1tdWx0aS1jb25kLWV4ZWMgRmwgbW5vLW11bHRpLWNvbmQtZXhl YyBGbCBtbmVzdGVkLWNvbmQtZXhlYyBGbCBtbm8tbmVzdGVkLWNvbmQtZXhlYyBGbCBtdG9t Y2F0LXN0YXRzIEZsIG1UTFMgRmwgbXRscyBGbCBtY3B1PSBOcyBBciBjcHUKLlBwCi5FbSBI OC8zMDAgT3B0aW9ucwouRmwgbXJlbGF4IEZsIG1oIEZsIG1zIEZsIG1uIEZsIG1pbnQzMiBG bCBtYWxpZ24tMzAwCi5QcAouRW0gSFBQQSBPcHRpb25zCi5GbCBtYXJjaD0gTnMgQXIgYXJj aGl0ZWN0dXJlLXR5cGUKLkZsIG1iaWctc3dpdGNoIEZsIG1kaXNhYmxlLWZwcmVncyBGbCBt ZGlzYWJsZS1pbmRleGluZyBGbCBtZmFzdC1pbmRpcmVjdC1jYWxscyBGbCBtZ2FzIEZsIG1n bnUtbGQgRmwgbWhwLWxkIEZsIG1maXhlZC1yYW5nZT0gTnMgQXIgcmVnaXN0ZXItcmFuZ2UK LkZsIG1qdW1wLWluLWRlbGF5IEZsIG1saW5rZXItb3B0IEZsIG1sb25nLWNhbGxzIEZsIG1s b25nLWxvYWQtc3RvcmUgRmwgbW5vLWJpZy1zd2l0Y2ggRmwgbW5vLWRpc2FibGUtZnByZWdz IEZsIG1uby1kaXNhYmxlLWluZGV4aW5nIEZsIG1uby1mYXN0LWluZGlyZWN0LWNhbGxzIEZs IG1uby1nYXMgRmwgbW5vLWp1bXAtaW4tZGVsYXkgRmwgbW5vLWxvbmctbG9hZC1zdG9yZSBG bCBtbm8tcG9ydGFibGUtcnVudGltZSBGbCBtbm8tc29mdC1mbG9hdCBGbCBtbm8tc3BhY2Ut cmVncyBGbCBtc29mdC1mbG9hdCBGbCBtcGEtcmlzYy0xLTAgRmwgbXBhLXJpc2MtMS0xIEZs IG1wYS1yaXNjLTItMCBGbCBtcG9ydGFibGUtcnVudGltZSBGbCBtc2NoZWR1bGU9IE5zIEFy IGNwdS10eXBlCi5GbCBtc3BhY2UtcmVncyBGbCBtc2lvIEZsIG13c2lvIEZsIG11bml4PSBO cyBBciB1bml4LXN0ZAouRmwgbm9saWJkbGQgRmwgc3RhdGljIEZsIHRocmVhZHMKLlBwCi5F bSBpMzg2IGFuZCB4ODYtNjQgT3B0aW9ucwouRmwgbXR1bmU9IE5zIEFyIGNwdS10eXBlCi5G bCBtYXJjaD0gTnMgQXIgY3B1LXR5cGUKLkZsIG1mcG1hdGg9IE5zIEFyIHVuaXQKLkZsIG1h c209IE5zIEFyIGRpYWxlY3QKLkZsIG1uby1mYW5jeS1tYXRoLTM4NyBGbCBtbm8tZnAtcmV0 LWluLTM4NyBGbCBtc29mdC1mbG9hdCBGbCBtc3ZyMy1zaGxpYiBGbCBtbm8td2lkZS1tdWx0 aXBseSBGbCBtcnRkIEZsIG1hbGlnbi1kb3VibGUgRmwgbXByZWZlcnJlZC1zdGFjay1ib3Vu ZGFyeT0gTnMgQXIgbnVtCi5GbCBtbW14IEZsIG1zc2UgRmwgbXNzZTIgRmwgbXNzZTMgRmwg bTNkbm93IEZsIG10aHJlYWRzIEZsIG1uby1hbGlnbi1zdHJpbmdvcHMgRmwgbWlubGluZS1h bGwtc3RyaW5nb3BzIEZsIG1wdXNoLWFyZ3MgRmwgbWFjY3VtdWxhdGUtb3V0Z29pbmctYXJn cyBGbCBtMTI4Yml0LWxvbmctZG91YmxlIEZsIG05NmJpdC1sb25nLWRvdWJsZSBGbCBtcmVn cGFybT0gTnMgQXIgbnVtCi5GbCBtc3NlcmVncGFybSBGbCBtb21pdC1sZWFmLWZyYW1lLXBv aW50ZXIgRmwgbW5vLXJlZC16b25lIEZsIG1uby10bHMtZGlyZWN0LXNlZy1yZWZzIEZsIG1j bW9kZWw9IE5zIEFyIGNvZGUtbW9kZWwKLkZsIG0zMiBGbCBtNjQgRmwgbWxhcmdlLWRhdGEt dGhyZXNob2xkPSBOcyBBciBudW0KLlBwCi5FbSBJQS02NCBPcHRpb25zCi5GbCBtYmlnLWVu ZGlhbiBGbCBtbGl0dGxlLWVuZGlhbiBGbCBtZ251LWFzIEZsIG1nbnUtbGQgRmwgbW5vLXBp YyBGbCBtdm9sYXRpbGUtYXNtLXN0b3AgRmwgbXJlZ2lzdGVyLW5hbWVzIEZsIG1uby1zZGF0 YSBGbCBtY29uc3RhbnQtZ3AgRmwgbWF1dG8tcGljIEZsIG1pbmxpbmUtZmxvYXQtZGl2aWRl LW1pbi1sYXRlbmN5IEZsIG1pbmxpbmUtZmxvYXQtZGl2aWRlLW1heC10aHJvdWdocHV0IEZs IG1pbmxpbmUtaW50LWRpdmlkZS1taW4tbGF0ZW5jeSBGbCBtaW5saW5lLWludC1kaXZpZGUt bWF4LXRocm91Z2hwdXQgRmwgbWlubGluZS1zcXJ0LW1pbi1sYXRlbmN5IEZsIG1pbmxpbmUt c3FydC1tYXgtdGhyb3VnaHB1dCBGbCBtbm8tZHdhcmYyLWFzbSBGbCBtZWFybHktc3RvcC1i aXRzIEZsIG1maXhlZC1yYW5nZT0gTnMgQXIgcmVnaXN0ZXItcmFuZ2UKLkZsIG10bHMtc2l6 ZT0gTnMgQXIgdGxzLXNpemUKLkZsIG10dW5lPSBOcyBBciBjcHUtdHlwZQouRmwgbXQgRmwg cHRocmVhZCBGbCBtaWxwMzIgRmwgbWxwNjQKLlBwCi5FbSBNMzJSL0QgT3B0aW9ucwouRmwg bTMycjIgRmwgbTMycnggRmwgbTMyciBGbCBtZGVidWcgRmwgbWFsaWduLWxvb3BzIEZsIG1u by1hbGlnbi1sb29wcyBGbCBtaXNzdWUtcmF0ZT0gTnMgQXIgbnVtYmVyCi5GbCBtYnJhbmNo LWNvc3Q9IE5zIEFyIG51bWJlcgouRmwgbW1vZGVsPSBOcyBBciBjb2RlLXNpemUtbW9kZWwt dHlwZQouRmwgbXNkYXRhPSBOcyBBciBzZGF0YS10eXBlCi5GbCBtbm8tZmx1c2gtZnVuYyBG bCBtZmx1c2gtZnVuYz0gTnMgQXIgbmFtZQouRmwgbW5vLWZsdXNoLXRyYXAgRmwgbWZsdXNo LXRyYXA9IE5zIEFyIG51bWJlcgouRmwgRyBBciBudW0KLlBwCi5FbSBNMzJDIE9wdGlvbnMK LkZsIG1jcHU9IE5zIEFyIGNwdQouRmwgbXNpbSBGbCBtZW1yZWdzPSBOcyBBciBudW1iZXIK LlBwCi5FbSBNNjgweDAgT3B0aW9ucwouRmwgbTY4MDAwIEZsIG02ODAyMCBGbCBtNjgwMjAt NDAgRmwgbTY4MDIwLTYwIEZsIG02ODAzMCBGbCBtNjgwNDAgRmwgbTY4MDYwIEZsIG1jcHUz MiBGbCBtNTIwMCBGbCBtNjg4ODEgRmwgbWJpdGZpZWxkIEZsIG1jNjgwMDAgRmwgbWM2ODAy MCBGbCBtbm9iaXRmaWVsZCBGbCBtcnRkIEZsIG1zaG9ydCBGbCBtc29mdC1mbG9hdCBGbCBt cGNyZWwgRmwgbWFsaWduLWludCBGbCBtc3RyaWN0LWFsaWduIEZsIG1zZXAtZGF0YSBGbCBt bm8tc2VwLWRhdGEgRmwgbXNoYXJlZC1saWJyYXJ5LWlkPW4gRmwgbWlkLXNoYXJlZC1saWJy YXJ5IEZsIG1uby1pZC1zaGFyZWQtbGlicmFyeQouUHAKLkVtIE02OGhjMXggT3B0aW9ucwou RmwgbTY4MTEgRmwgbTY4MTIgRmwgbTY4aGMxMSBGbCBtNjhoYzEyIEZsIG02OGhjczEyIEZs IG1hdXRvLWluY2RlYyBGbCBtaW5tYXggRmwgbWxvbmctY2FsbHMgRmwgbXNob3J0IEZsIG1z b2Z0LXJlZy1jb3VudD0gTnMgQXIgY291bnQKLlBwCi5FbSBNQ29yZSBPcHRpb25zCi5GbCBt aGFyZGxpdCBGbCBtbm8taGFyZGxpdCBGbCBtZGl2IEZsIG1uby1kaXYgRmwgbXJlbGF4LWlt bWVkaWF0ZXMgRmwgbW5vLXJlbGF4LWltbWVkaWF0ZXMgRmwgbXdpZGUtYml0ZmllbGRzIEZs IG1uby13aWRlLWJpdGZpZWxkcyBGbCBtNGJ5dGUtZnVuY3Rpb25zIEZsIG1uby00Ynl0ZS1m dW5jdGlvbnMgRmwgbWNhbGxncmFwaC1kYXRhIEZsIG1uby1jYWxsZ3JhcGgtZGF0YSBGbCBt c2xvdy1ieXRlcyBGbCBtbm8tc2xvdy1ieXRlcyBGbCBtbm8tbHNpbSBGbCBtbGl0dGxlLWVu ZGlhbiBGbCBtYmlnLWVuZGlhbiBGbCBtMjEwIEZsIG0zNDAgRmwgbXN0YWNrLWluY3JlbWVu dAouUHAKLkVtIE1JUFMgT3B0aW9ucwouRmwgRUwgRmwgRUIgRmwgbWFyY2g9IE5zIEFyIGFy Y2gKLkZsIG10dW5lPSBOcyBBciBhcmNoCi5GbCBtaXBzMSBGbCBtaXBzMiBGbCBtaXBzMyBG bCBtaXBzNCBGbCBtaXBzMzIgRmwgbWlwczMycjIgRmwgbWlwczY0IEZsIG1pcHMxNiBGbCBt bm8tbWlwczE2IEZsIG1hYmk9IE5zIEFyIGFiaQouRmwgbWFiaWNhbGxzIEZsIG1uby1hYmlj YWxscyBGbCBteGdvdCBGbCBtbm8teGdvdCBGbCBtZ3AzMiBGbCBtZ3A2NCBGbCBtZnAzMiBG bCBtZnA2NCBGbCBtaGFyZC1mbG9hdCBGbCBtc29mdC1mbG9hdCBGbCBtc2luZ2xlLWZsb2F0 IEZsIG1kb3VibGUtZmxvYXQgRmwgbWRzcCBGbCBtcGFpcmVkLXNpbmdsZSBGbCBtaXBzM2Qg RmwgbWxvbmc2NCBGbCBtbG9uZzMyIEZsIG1zeW0zMiBGbCBtbm8tc3ltMzIgRmwgRyBOcyBB ciBudW0KLkZsIG1lbWJlZGRlZC1kYXRhIEZsIG1uby1lbWJlZGRlZC1kYXRhIEZsIG11bmlu aXQtY29uc3QtaW4tcm9kYXRhIEZsIG1uby11bmluaXQtY29uc3QtaW4tcm9kYXRhIEZsIG1z cGxpdC1hZGRyZXNzZXMgRmwgbW5vLXNwbGl0LWFkZHJlc3NlcyBGbCBtZXhwbGljaXQtcmVs b2NzIEZsIG1uby1leHBsaWNpdC1yZWxvY3MgRmwgbWNoZWNrLXplcm8tZGl2aXNpb24gRmwg bW5vLWNoZWNrLXplcm8tZGl2aXNpb24gRmwgbWRpdmlkZS10cmFwcyBGbCBtZGl2aWRlLWJy ZWFrcyBGbCBtbWVtY3B5IEZsIG1uby1tZW1jcHkgRmwgbWxvbmctY2FsbHMgRmwgbW5vLWxv bmctY2FsbHMgRmwgbW1hZCBGbCBtbm8tbWFkIEZsIG1mdXNlZC1tYWRkIEZsIG1uby1mdXNl ZC1tYWRkIEZsIG5vY3BwIEZsIG1maXgtcjQwMDAgRmwgbW5vLWZpeC1yNDAwMCBGbCBtZml4 LXI0NDAwIEZsIG1uby1maXgtcjQ0MDAgRmwgbWZpeC12cjQxMjAgRmwgbW5vLWZpeC12cjQx MjAgRmwgbWZpeC12cjQxMzAgRmwgbWZpeC1zYjEgRmwgbW5vLWZpeC1zYjEgRmwgbWZsdXNo LWZ1bmM9IE5zIEFyIGZ1bmMKLkZsIG1uby1mbHVzaC1mdW5jIEZsIG1icmFuY2gtbGlrZWx5 IEZsIG1uby1icmFuY2gtbGlrZWx5IEZsIG1mcC1leGNlcHRpb25zIEZsIG1uby1mcC1leGNl cHRpb25zIEZsIG12cjQxMzAtYWxpZ24gRmwgbW5vLXZyNDEzMC1hbGlnbgouUHAKLkVtIE1N SVggT3B0aW9ucwouRmwgbWxpYmZ1bmNzIEZsIG1uby1saWJmdW5jcyBGbCBtZXBzaWxvbiBG bCBtbm8tZXBzaWxvbiBGbCBtYWJpPWdudSBGbCBtYWJpPW1taXh3YXJlIEZsIG16ZXJvLWV4 dGVuZCBGbCBta251dGhkaXYgRmwgbXRvcGxldmVsLXN5bWJvbHMgRmwgbWVsZiBGbCBtYnJh bmNoLXByZWRpY3QgRmwgbW5vLWJyYW5jaC1wcmVkaWN0IEZsIG1iYXNlLWFkZHJlc3NlcyBG bCBtbm8tYmFzZS1hZGRyZXNzZXMgRmwgbXNpbmdsZS1leGl0IEZsIG1uby1zaW5nbGUtZXhp dAouUHAKLkVtIE1OMTAzMDAgT3B0aW9ucwouRmwgbW11bHQtYnVnIEZsIG1uby1tdWx0LWJ1 ZyBGbCBtYW0zMyBGbCBtbm8tYW0zMyBGbCBtYW0zMy0yIEZsIG1uby1hbTMzLTIgRmwgbXJl dHVybi1wb2ludGVyLW9uLWQwIEZsIG1uby1jcnQwIEZsIG1yZWxheAouUHAKLkVtIE1UIE9w dGlvbnMKLkZsIG1uby1jcnQwIEZsIG1iYWNjIEZsIG1zaW0gRmwgbWFyY2g9IE5zIEFyIGNw dS10eXBlClx+Ci5QcAouRW0gUERQLTExIE9wdGlvbnMKLkZsIG1mcHUgRmwgbXNvZnQtZmxv YXQgRmwgbWFjMCBGbCBtbm8tYWMwIEZsIG00MCBGbCBtNDUgRmwgbTEwIEZsIG1iY29weSBG bCBtYmNvcHktYnVpbHRpbiBGbCBtaW50MzIgRmwgbW5vLWludDE2IEZsIG1pbnQxNiBGbCBt bm8taW50MzIgRmwgbWZsb2F0MzIgRmwgbW5vLWZsb2F0NjQgRmwgbWZsb2F0NjQgRmwgbW5v LWZsb2F0MzIgRmwgbWFic2hpIEZsIG1uby1hYnNoaSBGbCBtYnJhbmNoLWV4cGVuc2l2ZSBG bCBtYnJhbmNoLWNoZWFwIEZsIG1zcGxpdCBGbCBtbm8tc3BsaXQgRmwgbXVuaXgtYXNtIEZs IG1kZWMtYXNtCi5QcAouRW0gUG93ZXJQQyBPcHRpb25zClNlZSBSUy82MDAwIGFuZCBQb3dl clBDIE9wdGlvbnMuCi5QcAouRW0gUlMvNjAwMCBhbmQgUG93ZXJQQyBPcHRpb25zCi5GbCBt Y3B1PSBOcyBBciBjcHUtdHlwZQouRmwgbXR1bmU9IE5zIEFyIGNwdS10eXBlCi5GbCBtcG93 ZXIgRmwgbW5vLXBvd2VyIEZsIG1wb3dlcjIgRmwgbW5vLXBvd2VyMiBGbCBtcG93ZXJwYyBG bCBtcG93ZXJwYzY0IEZsIG1uby1wb3dlcnBjIEZsIG1hbHRpdmVjIEZsIG1uby1hbHRpdmVj IEZsIG1wb3dlcnBjLWdwb3B0IEZsIG1uby1wb3dlcnBjLWdwb3B0IEZsIG1wb3dlcnBjLWdm eG9wdCBGbCBtbm8tcG93ZXJwYy1nZnhvcHQgRmwgbW1mY3JmIEZsIG1uby1tZmNyZiBGbCBt cG9wY250YiBGbCBtbm8tcG9wY250YiBGbCBtZnBybmQgRmwgbW5vLWZwcm5kIEZsIG1uZXct bW5lbW9uaWNzIEZsIG1vbGQtbW5lbW9uaWNzIEZsIG1mdWxsLXRvYyBGbCBtbWluaW1hbC10 b2MgRmwgbW5vLWZwLWluLXRvYyBGbCBtbm8tc3VtLWluLXRvYyBGbCBtNjQgRmwgbTMyIEZs IG14bC1jb21wYXQgRmwgbW5vLXhsLWNvbXBhdCBGbCBtcGUgRmwgbWFsaWduLXBvd2VyIEZs IG1hbGlnbi1uYXR1cmFsIEZsIG1zb2Z0LWZsb2F0IEZsIG1oYXJkLWZsb2F0IEZsIG1tdWx0 aXBsZSBGbCBtbm8tbXVsdGlwbGUgRmwgbXN0cmluZyBGbCBtbm8tc3RyaW5nIEZsIG11cGRh dGUgRmwgbW5vLXVwZGF0ZSBGbCBtZnVzZWQtbWFkZCBGbCBtbm8tZnVzZWQtbWFkZCBGbCBt Yml0LWFsaWduIEZsIG1uby1iaXQtYWxpZ24gRmwgbXN0cmljdC1hbGlnbiBGbCBtbm8tc3Ry aWN0LWFsaWduIEZsIG1yZWxvY2F0YWJsZSBGbCBtbm8tcmVsb2NhdGFibGUgRmwgbXJlbG9j YXRhYmxlLWxpYiBGbCBtbm8tcmVsb2NhdGFibGUtbGliIEZsIG10b2MgRmwgbW5vLXRvYyBG bCBtbGl0dGxlIEZsIG1saXR0bGUtZW5kaWFuIEZsIG1iaWcgRmwgbWJpZy1lbmRpYW4gRmwg bWR5bmFtaWMtbm8tcGljIEZsIG1hbHRpdmVjIEZsIG1zd2RpdiBGbCBtcHJpb3JpdGl6ZS1y ZXN0cmljdGVkLWluc25zPSBOcyBBciBwcmlvcml0eQouRmwgbXNjaGVkLWNvc3RseS1kZXA9 IE5zIEFyIGRlcGVuZGVuY2VfdHlwZQouRmwgbWluc2VydC1zY2hlZC1ub3BzPSBOcyBBciBz Y2hlbWUKLkZsIG1jYWxsLXN5c3YgRmwgbWNhbGwtbmV0YnNkIEZsIG1haXgtc3RydWN0LXJl dHVybiBGbCBtc3ZyNC1zdHJ1Y3QtcmV0dXJuIEZsIG1hYmk9IE5zIEFyIGFiaS10eXBlCi5G bCBtc2VjdXJlLXBsdCBGbCBtYnNzLXBsdCBGbCBtaXNlbCBGbCBtbm8taXNlbCBGbCBtaXNl bD15ZXMgRmwgbWlzZWw9bm8gRmwgbXNwZSBGbCBtbm8tc3BlIEZsIG1zcGU9eWVzIEZsIG1z cGU9bm8gRmwgbXZyc2F2ZSBGbCBtbm8tdnJzYXZlIEZsIG1mbG9hdC1ncHJzPXllcyBGbCBt ZmxvYXQtZ3Bycz1ubyBGbCBtZmxvYXQtZ3Bycz1zaW5nbGUgRmwgbWZsb2F0LWdwcnM9ZG91 YmxlIEZsIG1wcm90b3R5cGUgRmwgbW5vLXByb3RvdHlwZSBGbCBtc2ltIEZsIG1tdm1lIEZs IG1hZHMgRmwgbXllbGxvd2tuaWZlIEZsIG1lbWIgRmwgbXNkYXRhIEZsIG1zZGF0YT0gTnMg QXIgb3B0Ci5GbCBtdnh3b3JrcyBGbCBtd2luZGlzcyBGbCBHIEFyIG51bQouRmwgcHRocmVh ZAouUHAKLkVtIFMvMzkwIGFuZCB6U2VyaWVzIE9wdGlvbnMKLkZsIG10dW5lPSBOcyBBciBj cHUtdHlwZQouRmwgbWFyY2g9IE5zIEFyIGNwdS10eXBlCi5GbCBtaGFyZC1mbG9hdCBGbCBt c29mdC1mbG9hdCBGbCBtbG9uZy1kb3VibGUtNjQgRmwgbWxvbmctZG91YmxlLTEyOCBGbCBt YmFja2NoYWluIEZsIG1uby1iYWNrY2hhaW4gRmwgbXBhY2tlZC1zdGFjayBGbCBtbm8tcGFj a2VkLXN0YWNrIEZsIG1zbWFsbC1leGVjIEZsIG1uby1zbWFsbC1leGVjIEZsIG1tdmNsZSBG bCBtbm8tbXZjbGUgRmwgbTY0IEZsIG0zMSBGbCBtZGVidWcgRmwgbW5vLWRlYnVnIEZsIG1l c2EgRmwgbXphcmNoIEZsIG10cGYtdHJhY2UgRmwgbW5vLXRwZi10cmFjZSBGbCBtZnVzZWQt bWFkZCBGbCBtbm8tZnVzZWQtbWFkZCBGbCBtd2Fybi1mcmFtZXNpemUgRmwgbXdhcm4tZHlu YW1pY3N0YWNrIEZsIG1zdGFjay1zaXplIEZsIG1zdGFjay1ndWFyZAouUHAKLkVtIFNIIE9w dGlvbnMKLkZsIG0xIEZsIG0yIEZsIG0yZSBGbCBtMyBGbCBtM2UgRmwgbTQtbm9mcHUgRmwg bTQtc2luZ2xlLW9ubHkgRmwgbTQtc2luZ2xlIEZsIG00IEZsIG00YS1ub2ZwdSBGbCBtNGEt c2luZ2xlLW9ubHkgRmwgbTRhLXNpbmdsZSBGbCBtNGEgRmwgbTRhbCBGbCBtNS02NG1lZGlh IEZsIG01LTY0bWVkaWEtbm9mcHUgRmwgbTUtMzJtZWRpYSBGbCBtNS0zMm1lZGlhLW5vZnB1 IEZsIG01LWNvbXBhY3QgRmwgbTUtY29tcGFjdC1ub2ZwdSBGbCBtYiBGbCBtbCBGbCBtZGFs aWduIEZsIG1yZWxheCBGbCBtYmlndGFibGUgRmwgbWZtb3ZkIEZsIG1oaXRhY2hpIEZsIG1y ZW5lc2FzIEZsIG1uby1yZW5lc2FzIEZsIG1ub21hY3NhdmUgRmwgbWllZWUgRmwgbWlzaXpl IEZsIG1wYWRzdHJ1Y3QgRmwgbXNwYWNlIEZsIG1wcmVmZXJnb3QgRmwgbXVzZXJtb2RlIEZs IG11bHRjb3N0PSBOcyBBciBudW1iZXIKLkZsIG1kaXY9IE5zIEFyIHN0cmF0ZWd5Ci5GbCBt ZGl2c2kzX2xpYmZ1bmM9IE5zIEFyIG5hbWUKLkZsIG1hZGp1c3QtdW5yb2xsIEZsIG1pbmRl eGVkLWFkZHJlc3NpbmcgRmwgbWdldHRyY29zdD0gTnMgQXIgbnVtYmVyCi5GbCBtcHQtZml4 ZWQgRmwgbWludmFsaWQtc3ltYm9scwouUHAKLkVtIFNQQVJDIE9wdGlvbnMKLkZsIG1jcHU9 IE5zIEFyIGNwdS10eXBlCi5GbCBtdHVuZT0gTnMgQXIgY3B1LXR5cGUKLkZsIG1jbW9kZWw9 IE5zIEFyIGNvZGUtbW9kZWwKLkZsIG0zMiBGbCBtNjQgRmwgbWFwcC1yZWdzIEZsIG1uby1h cHAtcmVncyBGbCBtZmFzdGVyLXN0cnVjdHMgRmwgbW5vLWZhc3Rlci1zdHJ1Y3RzIEZsIG1m cHUgRmwgbW5vLWZwdSBGbCBtaGFyZC1mbG9hdCBGbCBtc29mdC1mbG9hdCBGbCBtaGFyZC1x dWFkLWZsb2F0IEZsIG1zb2Z0LXF1YWQtZmxvYXQgRmwgbWltcHVyZS10ZXh0IEZsIG1uby1p bXB1cmUtdGV4dCBGbCBtbGl0dGxlLWVuZGlhbiBGbCBtc3RhY2stYmlhcyBGbCBtbm8tc3Rh Y2stYmlhcyBGbCBtdW5hbGlnbmVkLWRvdWJsZXMgRmwgbW5vLXVuYWxpZ25lZC1kb3VibGVz IEZsIG12OHBsdXMgRmwgbW5vLXY4cGx1cyBGbCBtdmlzIEZsIG1uby12aXMgRmwgdGhyZWFk cyBGbCBwdGhyZWFkcyBGbCBwdGhyZWFkCi5QcAouRW0gU3lzdGVtIFYgT3B0aW9ucwouRmwg UXkgRmwgUW4gRmwgWVAsIE5zIEFyIHBhdGhzCi5GbCBZbSwgTnMgQXIgZGlyCi5QcAouRW0g VE1TMzIwQzN4L0M0eCBPcHRpb25zCi5GbCBtY3B1PSBOcyBBciBjcHUKLkZsIG1iaWcgRmwg bXNtYWxsIEZsIG1yZWdwYXJtIEZsIG1tZW1wYXJtIEZsIG1mYXN0LWZpeCBGbCBtbXB5aSBG bCBtYmsgRmwgbXRpIEZsIG1kcC1pc3ItcmVsb2FkIEZsIG1ycHRzPSBOcyBBciBjb3VudAou RmwgbXJwdGIgRmwgbWRiIEZsIG1sb29wLXVuc2lnbmVkIEZsIG1wYXJhbGxlbC1pbnNucyBG bCBtcGFyYWxsZWwtbXB5IEZsIG1wcmVzZXJ2ZS1mbG9hdAouUHAKLkVtIFY4NTAgT3B0aW9u cwouRmwgbWxvbmctY2FsbHMgRmwgbW5vLWxvbmctY2FsbHMgRmwgbWVwIEZsIG1uby1lcCBG bCBtcHJvbG9nLWZ1bmN0aW9uIEZsIG1uby1wcm9sb2ctZnVuY3Rpb24gRmwgbXNwYWNlIEZs IG10ZGE9IE5zIEFyIG4KLkZsIG1zZGE9IE5zIEFyIG4KLkZsIG16ZGE9IE5zIEFyIG4KLkZs IG1hcHAtcmVncyBGbCBtbm8tYXBwLXJlZ3MgRmwgbWRpc2FibGUtY2FsbHQgRmwgbW5vLWRp c2FibGUtY2FsbHQgRmwgbXY4NTBlMSBGbCBtdjg1MGUgRmwgbXY4NTAgRmwgbWJpZy1zd2l0 Y2gKLlBwCi5FbSBWQVggT3B0aW9ucwouRmwgbWcgRmwgbWdudSBGbCBtdW5peAouUHAKLkVt IHg4Ni02NCBPcHRpb25zClNlZSBpMzg2IGFuZCB4ODYtNjQgT3B0aW9ucy4KLlBwCi5FbSBY c3Rvcm15MTYgT3B0aW9ucwouRmwgbXNpbQouUHAKLkVtIFh0ZW5zYSBPcHRpb25zCi5GbCBt Y29uc3QxNiBGbCBtbm8tY29uc3QxNiBGbCBtZnVzZWQtbWFkZCBGbCBtbm8tZnVzZWQtbWFk ZCBGbCBtdGV4dC1zZWN0aW9uLWxpdGVyYWxzIEZsIG1uby10ZXh0LXNlY3Rpb24tbGl0ZXJh bHMgRmwgbXRhcmdldC1hbGlnbiBGbCBtbm8tdGFyZ2V0LWFsaWduIEZsIG1sb25nY2FsbHMg RmwgbW5vLWxvbmdjYWxscwouUHAKLkVtIHpTZXJpZXMgT3B0aW9ucwpTZWUgUy8zOTAgYW5k IHpTZXJpZXMgT3B0aW9ucy4KLlBwCi5JdCBTeSBDb2RlIEdlbmVyYXRpb24gT3B0aW9ucwou RmwgZmNhbGwtc2F2ZWQtIE5zIEFyIHJlZwouRmwgZmNhbGwtdXNlZC0gTnMgQXIgcmVnCi5G bCBmZml4ZWQtIE5zIEFyIHJlZwouRmwgZmV4Y2VwdGlvbnMgRmwgZm5vbi1jYWxsLWV4Y2Vw dGlvbnMgRmwgZnVud2luZC10YWJsZXMgRmwgZmFzeW5jaHJvbm91cy11bndpbmQtdGFibGVz IEZsIGZpbmhpYml0LXNpemUtZGlyZWN0aXZlIEZsIGZpbnN0cnVtZW50LWZ1bmN0aW9ucyBG bCBmbm8tY29tbW9uIEZsIGZuby1pZGVudCBGbCBmcGNjLXN0cnVjdC1yZXR1cm4gRmwgZnBp YyBGbCBmUElDIEZsIGZwaWUgRmwgZlBJRSBGbCBmbm8tanVtcC10YWJsZXMgRmwgZnJlZy1z dHJ1Y3QtcmV0dXJuIEZsIGZzaGFyZWQtZGF0YSBGbCBmc2hvcnQtZW51bXMgRmwgZnNob3J0 LWRvdWJsZSBGbCBmc2hvcnQtd2NoYXIgRmwgZnZlcmJvc2UtYXNtIEZsIGZwYWNrLXN0cnVj dCBOcyBPbyA9IE5zIEFyIG4gT2MKLkZsIGZzdGFjay1jaGVjayBGbCBmc3RhY2stbGltaXQt cmVnaXN0ZXI9IE5zIEFyIHJlZwouRmwgZnN0YWNrLWxpbWl0LXN5bWJvbD0gTnMgQXIgc3lt Ci5GbCBmbm8tc3RhY2stbGltaXQgRmwgZmFyZ3VtZW50LWFsaWFzIEZsIGZhcmd1bWVudC1u b2FsaWFzIEZsIGZhcmd1bWVudC1ub2FsaWFzLWdsb2JhbCBGbCBmbGVhZGluZy11bmRlcnNj b3JlIEZsIGZ0bHMtbW9kZWw9IE5zIEFyIG1vZGVsCi5GbCBmdHJhcHYgRmwgZndyYXB2IEZs IGZib3VuZHMtY2hlY2sgRmwgZnZpc2liaWxpdHkKLlBwCi5FbAouU3MgT3B0aW9ucyBDb250 cm9sbGluZyB0aGUgS2luZCBvZiBPdXRwdXQKQ29tcGlsYXRpb24gY2FuIGludm9sdmUgdXAg dG8gZm91ciBzdGFnZXM6IHByZXByb2Nlc3NpbmcsIGNvbXBpbGF0aW9uIHByb3BlciwgYXNz ZW1ibHkgYW5kIGxpbmtpbmcsIGFsd2F5cyBpbiB0aGF0IG9yZGVyLgpHQ0MgaXMgY2FwYWJs ZSBvZiBwcmVwcm9jZXNzaW5nIGFuZCBjb21waWxpbmcgc2V2ZXJhbCBmaWxlcyBlaXRoZXIg aW50byBzZXZlcmFsIGFzc2VtYmxlciBpbnB1dCBmaWxlcywgb3IgaW50byBvbmUgYXNzZW1i bGVyIGlucHV0IGZpbGU7IHRoZW4gZWFjaCBhc3NlbWJsZXIgaW5wdXQgZmlsZSBwcm9kdWNl cyBhbiBvYmplY3QgZmlsZSwgYW5kIGxpbmtpbmcgY29tYmluZXMgYWxsIHRoZSBvYmplY3Qg ZmlsZXMgKHRob3NlIG5ld2x5IGNvbXBpbGVkLCBhbmQgdGhvc2Ugc3BlY2lmaWVkIGFzIGlu cHV0KSBpbnRvIGFuIGV4ZWN1dGFibGUgZmlsZS4KLlBwCkZvciBhbnkgZ2l2ZW4gaW5wdXQg ZmlsZSwgdGhlIGZpbGUgbmFtZSBzdWZmaXggZGV0ZXJtaW5lcyB3aGF0IGtpbmQgb2YgY29t cGlsYXRpb24gaXMgZG9uZToKLlBwCi5CbCAtdGFnIC13aWR0aCB4eAouSXQgRW0gZmlsZSBO cyBTeSAuYyBOcwpDIHNvdXJjZSBjb2RlIHdoaWNoIG11c3QgYmUgcHJlcHJvY2Vzc2VkLgou UHAKLkl0IEVtIGZpbGUgTnMgU3kgLmkgTnMKQyBzb3VyY2UgY29kZSB3aGljaCBzaG91bGQg bm90IGJlIHByZXByb2Nlc3NlZC4KLlBwCi5JdCBFbSBmaWxlIE5zIFN5IC5paSBOcwpDKysg c291cmNlIGNvZGUgd2hpY2ggc2hvdWxkIG5vdCBiZSBwcmVwcm9jZXNzZWQuCi5QcAouSXQg RW0gZmlsZSBOcyBTeSAubSBOcwpPYmplY3RpdmUtQyBzb3VyY2UgY29kZS4KTm90ZSB0aGF0 IHlvdSBtdXN0IGxpbmsgd2l0aCB0aGUKLlBhIGxpYm9iamMKbGlicmFyeSB0byBtYWtlIGFu IE9iamVjdGl2ZS1DIHByb2dyYW0gd29yay4KLlBwCi5JdCBFbSBmaWxlIE5zIFN5IC5taSBO cwpPYmplY3RpdmUtQyBzb3VyY2UgY29kZSB3aGljaCBzaG91bGQgbm90IGJlIHByZXByb2Nl c3NlZC4KLlBwCi5JdCBFbSBmaWxlIE5zIFN5IC5tbSBOcwouSXQgRW0gZmlsZSBOcyBTeSAu TSBOcwpPYmplY3RpdmUtQysrIHNvdXJjZSBjb2RlLgpOb3RlIHRoYXQgeW91IG11c3QgbGlu ayB3aXRoIHRoZQouUGEgbGlib2JqYwpsaWJyYXJ5IHRvIG1ha2UgYW4gT2JqZWN0aXZlLUMr KyBwcm9ncmFtIHdvcmsuCk5vdGUgdGhhdAouU3kgLk0KcmVmZXJzIHRvIGEgbGl0ZXJhbCBj YXBpdGFsIE0uCi5QcAouSXQgRW0gZmlsZSBOcyBTeSAubWlpIE5zCk9iamVjdGl2ZS1DKysg c291cmNlIGNvZGUgd2hpY2ggc2hvdWxkIG5vdCBiZSBwcmVwcm9jZXNzZWQuCi5QcAouSXQg RW0gZmlsZSBOcyBTeSAuaCBOcwpDLCBDKyssIE9iamVjdGl2ZS1DIG9yIE9iamVjdGl2ZS1D KysgaGVhZGVyIGZpbGUgdG8gYmUgdHVybmVkIGludG8gYSBwcmVjb21waWxlZCBoZWFkZXIu Ci5QcAouSXQgRW0gZmlsZSBOcyBTeSAuY2MgTnMKLkl0IEVtIGZpbGUgTnMgU3kgLmNwIE5z Ci5JdCBFbSBmaWxlIE5zIFN5IC5jeHggTnMKLkl0IEVtIGZpbGUgTnMgU3kgLmNwcCBOcwou SXQgRW0gZmlsZSBOcyBTeSAuQ1BQIE5zCi5JdCBFbSBmaWxlIE5zIFN5IC5jKysgTnMKLkl0 IEVtIGZpbGUgTnMgU3kgLkMgTnMKQysrIHNvdXJjZSBjb2RlIHdoaWNoIG11c3QgYmUgcHJl cHJvY2Vzc2VkLgpOb3RlIHRoYXQgaW4KLlN5IC5jeHggLAp0aGUgbGFzdCB0d28gbGV0dGVy cyBtdXN0IGJvdGggYmUgbGl0ZXJhbGx5Ci5TeSB4IC4KTGlrZXdpc2UsCi5TeSAuQwpyZWZl cnMgdG8gYSBsaXRlcmFsIGNhcGl0YWwgQy4KLlBwCi5JdCBFbSBmaWxlIE5zIFN5IC5tbSBO cwouSXQgRW0gZmlsZSBOcyBTeSAuTSBOcwpPYmplY3RpdmUtQysrIHNvdXJjZSBjb2RlIHdo aWNoIG11c3QgYmUgcHJlcHJvY2Vzc2VkLgouUHAKLkl0IEVtIGZpbGUgTnMgU3kgLm1paSBO cwpPYmplY3RpdmUtQysrIHNvdXJjZSBjb2RlIHdoaWNoIHNob3VsZCBub3QgYmUgcHJlcHJv Y2Vzc2VkLgouUHAKLkl0IEVtIGZpbGUgTnMgU3kgLmhoIE5zCi5JdCBFbSBmaWxlIE5zIFN5 IC5IIE5zCkMrKyBoZWFkZXIgZmlsZSB0byBiZSB0dXJuZWQgaW50byBhIHByZWNvbXBpbGVk IGhlYWRlci4KLlBwCi5JdCBFbSBmaWxlIE5zIFN5IC5mIE5zCi5JdCBFbSBmaWxlIE5zIFN5 IC5mb3IgTnMKLkl0IEVtIGZpbGUgTnMgU3kgLkZPUiBOcwpGaXhlZCBmb3JtIEZvcnRyYW4g c291cmNlIGNvZGUgd2hpY2ggc2hvdWxkIG5vdCBiZSBwcmVwcm9jZXNzZWQuCi5QcAouSXQg RW0gZmlsZSBOcyBTeSAuRiBOcwouSXQgRW0gZmlsZSBOcyBTeSAuZnBwIE5zCi5JdCBFbSBm aWxlIE5zIFN5IC5GUFAgTnMKRml4ZWQgZm9ybSBGb3J0cmFuIHNvdXJjZSBjb2RlIHdoaWNo IG11c3QgYmUgcHJlcHJvY2Vzc2VkICh3aXRoIHRoZSB0cmFkaXRpb25hbCBwcmVwcm9jZXNz b3IpLgouUHAKLkl0IEVtIGZpbGUgTnMgU3kgLmY5MCBOcwouSXQgRW0gZmlsZSBOcyBTeSAu Zjk1IE5zCkZyZWUgZm9ybSBGb3J0cmFuIHNvdXJjZSBjb2RlIHdoaWNoIHNob3VsZCBub3Qg YmUgcHJlcHJvY2Vzc2VkLgouUHAKLkl0IEVtIGZpbGUgTnMgU3kgLkY5MCBOcwouSXQgRW0g ZmlsZSBOcyBTeSAuRjk1IE5zCkZyZWUgZm9ybSBGb3J0cmFuIHNvdXJjZSBjb2RlIHdoaWNo IG11c3QgYmUgcHJlcHJvY2Vzc2VkICh3aXRoIHRoZSB0cmFkaXRpb25hbCBwcmVwcm9jZXNz b3IpLgouUHAKLkl0IEVtIGZpbGUgTnMgU3kgLmFkcyBOcwpBZGEgc291cmNlIGNvZGUgZmls ZSB3aGljaCBjb250YWlucyBhIGxpYnJhcnkgdW5pdCBkZWNsYXJhdGlvbiAoYSBkZWNsYXJh dGlvbiBvZiBhIHBhY2thZ2UsIHN1YnByb2dyYW0sIG9yIGdlbmVyaWMsIG9yIGEgZ2VuZXJp YyBpbnN0YW50aWF0aW9uKSwgb3IgYSBsaWJyYXJ5IHVuaXQgcmVuYW1pbmcgZGVjbGFyYXRp b24gKGEgcGFja2FnZSwgZ2VuZXJpYywgb3Igc3VicHJvZ3JhbSByZW5hbWluZyBkZWNsYXJh dGlvbikuClN1Y2ggZmlsZXMgYXJlIGFsc28gY2FsbGVkCi5FbSBzcGVjcyAuCi5QcAouSXQg RW0gZmlsZSBOcyBTeSAuYWRiIE5zCkFkYSBzb3VyY2UgY29kZSBmaWxlIGNvbnRhaW5pbmcg YSBsaWJyYXJ5IHVuaXQgYm9keSAoYSBzdWJwcm9ncmFtIG9yIHBhY2thZ2UgYm9keSkuClN1 Y2ggZmlsZXMgYXJlIGFsc28gY2FsbGVkCi5FbSBib2RpZXMgLgouUHAKLkl0IEVtIGZpbGUg TnMgU3kgLnMgTnMKQXNzZW1ibGVyIGNvZGUuCi5QcAouSXQgRW0gZmlsZSBOcyBTeSAuUyBO cwpBc3NlbWJsZXIgY29kZSB3aGljaCBtdXN0IGJlIHByZXByb2Nlc3NlZC4KLlBwCi5JdCBF bSBvdGhlciBOcwpBbiBvYmplY3QgZmlsZSB0byBiZSBmZWQgc3RyYWlnaHQgaW50byBsaW5r aW5nLgpBbnkgZmlsZSBuYW1lIHdpdGggbm8gcmVjb2duaXplZCBzdWZmaXggaXMgdHJlYXRl ZCB0aGlzIHdheS4KLlBwCi5FbApZb3UgY2FuIHNwZWNpZnkgdGhlIGlucHV0IGxhbmd1YWdl IGV4cGxpY2l0bHkgd2l0aCB0aGUKLkZsIHgKb3B0aW9uOgouUHAKLkJsIC10YWcgLXdpZHRo IHh4Ci5JdCBGbCB4IEFyIGxhbmd1YWdlClNwZWNpZnkgZXhwbGljaXRseSB0aGUKLkVtIGxh bmd1YWdlCmZvciB0aGUgZm9sbG93aW5nIGlucHV0IGZpbGVzIChyYXRoZXIgdGhhbiBsZXR0 aW5nIHRoZSBjb21waWxlciBjaG9vc2UgYSBkZWZhdWx0IGJhc2VkIG9uIHRoZSBmaWxlIG5h bWUgc3VmZml4KS4KVGhpcyBvcHRpb24gYXBwbGllcyB0byBhbGwgZm9sbG93aW5nIGlucHV0 IGZpbGVzIHVudGlsIHRoZSBuZXh0Ci5GbCB4Cm9wdGlvbi4KUG9zc2libGUgdmFsdWVzIGZv cgouRW0gbGFuZ3VhZ2UKYXJlOgouUHAKLkJkIC1saXRlcmFsIC1vZmZzZXQgaW5kZW50CmMg IGMtaGVhZGVyICBjLWNwcC1vdXRwdXQKYysrICBjKystaGVhZGVyICBjKystY3BwLW91dHB1 dApvYmplY3RpdmUtYyAgb2JqZWN0aXZlLWMtaGVhZGVyICBvYmplY3RpdmUtYy1jcHAtb3V0 cHV0Cm9iamVjdGl2ZS1jKysgb2JqZWN0aXZlLWMrKy1oZWFkZXIgb2JqZWN0aXZlLWMrKy1j cHAtb3V0cHV0CmFzc2VtYmxlciAgYXNzZW1ibGVyLXdpdGgtY3BwCmFkYQpmOTUgIGY5NS1j cHAtaW5wdXQKamF2YQp0cmVlbGFuZwouRWQKLkl0IEZsIHggQXIgbm9uZQpUdXJuIG9mZiBh bnkgc3BlY2lmaWNhdGlvbiBvZiBhIGxhbmd1YWdlLCBzbyB0aGF0IHN1YnNlcXVlbnQgZmls ZXMgYXJlIGhhbmRsZWQgYWNjb3JkaW5nIHRvIHRoZWlyIGZpbGUgbmFtZSBzdWZmaXhlcyAo YXMgdGhleSBhcmUgaWYKLkZsIHgKaGFzIG5vdCBiZWVuIHVzZWQgYXQgYWxsKS4KLlBwCi5J dCBGbCBwYXNzLWV4aXQtY29kZXMKTm9ybWFsbHkgdGhlCi5ObSBnY2MKcHJvZ3JhbSB3aWxs IGV4aXQgd2l0aCB0aGUgY29kZSBvZiAxIGlmIGFueSBwaGFzZSBvZiB0aGUgY29tcGlsZXIg cmV0dXJucyBhIG5vbi1zdWNjZXNzIHJldHVybiBjb2RlLgpJZiB5b3Ugc3BlY2lmeQouRmwg cGFzcy1leGl0LWNvZGVzICwKdGhlCi5ObSBnY2MKcHJvZ3JhbSB3aWxsIGluc3RlYWQgcmV0 dXJuIHdpdGggbnVtZXJpY2FsbHkgaGlnaGVzdCBlcnJvciBwcm9kdWNlZCBieSBhbnkgcGhh c2UgdGhhdCByZXR1cm5lZCBhbiBlcnJvciBpbmRpY2F0aW9uLgouUHAKLkVsCklmIHlvdSBv bmx5IHdhbnQgc29tZSBvZiB0aGUgc3RhZ2VzIG9mIGNvbXBpbGF0aW9uLCB5b3UgY2FuIHVz ZQouRmwgeAoob3IgZmlsZW5hbWUgc3VmZml4ZXMpIHRvIHRlbGwKLk5tIGdjYwp3aGVyZSB0 byBzdGFydCwgYW5kIG9uZSBvZiB0aGUgb3B0aW9ucwouRmwgYyAsCi5GbCBTICwKb3IKLkZs IEUKdG8gc2F5IHdoZXJlCi5ObSBnY2MKaXMgdG8gc3RvcC4KTm90ZSB0aGF0IHNvbWUgY29t YmluYXRpb25zIChmb3IgZXhhbXBsZSwKLkZsIHggQXIgY3BwLW91dHB1dCBGbCBFICkKaW5z dHJ1Y3QKLk5tIGdjYwp0byBkbyBub3RoaW5nIGF0IGFsbC4KLlBwCi5CbCAtdGFnIC13aWR0 aCB4eAouSXQgRmwgYwpDb21waWxlIG9yIGFzc2VtYmxlIHRoZSBzb3VyY2UgZmlsZXMsIGJ1 dCBkbyBub3QgbGluay4KVGhlIGxpbmtpbmcgc3RhZ2Ugc2ltcGx5IGlzIG5vdCBkb25lLgpU aGUgdWx0aW1hdGUgb3V0cHV0IGlzIGluIHRoZSBmb3JtIG9mIGFuIG9iamVjdCBmaWxlIGZv ciBlYWNoIHNvdXJjZSBmaWxlLgouUHAKQnkgZGVmYXVsdCwgdGhlIG9iamVjdCBmaWxlIG5h bWUgZm9yIGEgc291cmNlIGZpbGUgaXMgbWFkZSBieSByZXBsYWNpbmcgdGhlIHN1ZmZpeAou U3kgLmMgLAouU3kgLmkgLAouU3kgLnMgLApldGMuLCB3aXRoCi5TeSAubyAuCi5QcApVbnJl Y29nbml6ZWQgaW5wdXQgZmlsZXMsIG5vdCByZXF1aXJpbmcgY29tcGlsYXRpb24gb3IgYXNz ZW1ibHksIGFyZSBpZ25vcmVkLgouUHAKLkl0IEZsIFMKU3RvcCBhZnRlciB0aGUgc3RhZ2Ug b2YgY29tcGlsYXRpb24gcHJvcGVyOyBkbyBub3QgYXNzZW1ibGUuClRoZSBvdXRwdXQgaXMg aW4gdGhlIGZvcm0gb2YgYW4gYXNzZW1ibGVyIGNvZGUgZmlsZSBmb3IgZWFjaCBub24tYXNz ZW1ibGVyIGlucHV0IGZpbGUgc3BlY2lmaWVkLgouUHAKQnkgZGVmYXVsdCwgdGhlIGFzc2Vt YmxlciBmaWxlIG5hbWUgZm9yIGEgc291cmNlIGZpbGUgaXMgbWFkZSBieSByZXBsYWNpbmcg dGhlIHN1ZmZpeAouU3kgLmMgLAouU3kgLmkgLApldGMuLCB3aXRoCi5TeSAucyAuCi5QcApJ bnB1dCBmaWxlcyB0aGF0IGRvbid0IHJlcXVpcmUgY29tcGlsYXRpb24gYXJlIGlnbm9yZWQu Ci5QcAouSXQgRmwgRQpTdG9wIGFmdGVyIHRoZSBwcmVwcm9jZXNzaW5nIHN0YWdlOyBkbyBu b3QgcnVuIHRoZSBjb21waWxlciBwcm9wZXIuClRoZSBvdXRwdXQgaXMgaW4gdGhlIGZvcm0g b2YgcHJlcHJvY2Vzc2VkIHNvdXJjZSBjb2RlLCB3aGljaCBpcyBzZW50IHRvIHRoZSBzdGFu ZGFyZCBvdXRwdXQuCi5QcApJbnB1dCBmaWxlcyB3aGljaCBkb24ndCByZXF1aXJlIHByZXBy b2Nlc3NpbmcgYXJlIGlnbm9yZWQuCi5QcAouSXQgRmwgbyBBciBmaWxlClBsYWNlIG91dHB1 dCBpbiBmaWxlCi5FbSBmaWxlIC4KVGhpcyBhcHBsaWVzIHJlZ2FyZGxlc3MgdG8gd2hhdGV2 ZXIgc29ydCBvZiBvdXRwdXQgaXMgYmVpbmcgcHJvZHVjZWQsIHdoZXRoZXIgaXQgYmUgYW4g ZXhlY3V0YWJsZSBmaWxlLCBhbiBvYmplY3QgZmlsZSwgYW4gYXNzZW1ibGVyIGZpbGUgb3Ig cHJlcHJvY2Vzc2VkIEMgY29kZS4KLlBwCklmCi5GbCBvCmlzIG5vdCBzcGVjaWZpZWQsIHRo ZSBkZWZhdWx0IGlzIHRvIHB1dCBhbiBleGVjdXRhYmxlIGZpbGUgaW4KLlBhIGEub3V0ICwK dGhlIG9iamVjdCBmaWxlIGZvcgouUGEgc291cmNlLnN1ZmZpeAppbgouUGEgc291cmNlLm8g LAppdHMgYXNzZW1ibGVyIGZpbGUgaW4KLlBhIHNvdXJjZS5zICwKYSBwcmVjb21waWxlZCBo ZWFkZXIgZmlsZSBpbgouUGEgc291cmNlLnN1ZmZpeC5nY2ggLAphbmQgYWxsIHByZXByb2Nl c3NlZCBDIHNvdXJjZSBvbiBzdGFuZGFyZCBvdXRwdXQuCi5QcAouSXQgRmwgdgpQcmludCAo b24gc3RhbmRhcmQgZXJyb3Igb3V0cHV0KSB0aGUgY29tbWFuZHMgZXhlY3V0ZWQgdG8gcnVu IHRoZSBzdGFnZXMgb2YgY29tcGlsYXRpb24uCkFsc28gcHJpbnQgdGhlIHZlcnNpb24gbnVt YmVyIG9mIHRoZSBjb21waWxlciBkcml2ZXIgcHJvZ3JhbSBhbmQgb2YgdGhlIHByZXByb2Nl c3NvciBhbmQgdGhlIGNvbXBpbGVyIHByb3Blci4KLlBwCi5JdCBGbCAjIyMKTGlrZQouRmwg dgpleGNlcHQgdGhlIGNvbW1hbmRzIGFyZSBub3QgZXhlY3V0ZWQgYW5kIGFsbCBjb21tYW5k IGFyZ3VtZW50cyBhcmUgcXVvdGVkLgpUaGlzIGlzIHVzZWZ1bCBmb3Igc2hlbGwgc2NyaXB0 cyB0byBjYXB0dXJlIHRoZSBkcml2ZXItZ2VuZXJhdGVkIGNvbW1hbmQgbGluZXMuCi5QcAou SXQgRmwgcGlwZQpVc2UgcGlwZXMgcmF0aGVyIHRoYW4gdGVtcG9yYXJ5IGZpbGVzIGZvciBj b21tdW5pY2F0aW9uIGJldHdlZW4gdGhlIHZhcmlvdXMgc3RhZ2VzIG9mIGNvbXBpbGF0aW9u LgpUaGlzIGZhaWxzIHRvIHdvcmsgb24gc29tZSBzeXN0ZW1zIHdoZXJlIHRoZSBhc3NlbWJs ZXIgaXMgdW5hYmxlIHRvIHJlYWQgZnJvbSBhIHBpcGU7IGJ1dCB0aGUgR05VIGFzc2VtYmxl ciBoYXMgbm8gdHJvdWJsZS4KLlBwCi5JdCBGbCBjb21iaW5lCklmIHlvdSBhcmUgY29tcGls aW5nIG11bHRpcGxlIHNvdXJjZSBmaWxlcywgdGhpcyBvcHRpb24gdGVsbHMgdGhlIGRyaXZl ciB0byBwYXNzIGFsbCB0aGUgc291cmNlIGZpbGVzIHRvIHRoZSBjb21waWxlciBhdCBvbmNl IChmb3IgdGhvc2UgbGFuZ3VhZ2VzIGZvciB3aGljaCB0aGUgY29tcGlsZXIgY2FuIGhhbmRs ZSB0aGlzKS4KVGhpcyB3aWxsIGFsbG93IGludGVybW9kdWxlIGFuYWx5c2lzIChJTUEpIHRv IGJlIHBlcmZvcm1lZCBieSB0aGUgY29tcGlsZXIuCkN1cnJlbnRseSB0aGUgb25seSBsYW5n dWFnZSBmb3Igd2hpY2ggdGhpcyBpcyBzdXBwb3J0ZWQgaXMgQy4KSWYgeW91IHBhc3Mgc291 cmNlIGZpbGVzIGZvciBtdWx0aXBsZSBsYW5ndWFnZXMgdG8gdGhlIGRyaXZlciwgdXNpbmcg dGhpcyBvcHRpb24sIHRoZSBkcml2ZXIgd2lsbCBpbnZva2UgdGhlIGNvbXBpbGVyKHMpIHRo YXQgc3VwcG9ydCBJTUEgb25jZSBlYWNoLCBwYXNzaW5nIGVhY2ggY29tcGlsZXIgYWxsIHRo ZSBzb3VyY2UgZmlsZXMgYXBwcm9wcmlhdGUgZm9yIGl0LgpGb3IgdGhvc2UgbGFuZ3VhZ2Vz IHRoYXQgZG8gbm90IHN1cHBvcnQgSU1BIHRoaXMgb3B0aW9uIHdpbGwgYmUgaWdub3JlZCwg YW5kIHRoZSBjb21waWxlciB3aWxsIGJlIGludm9rZWQgb25jZSBmb3IgZWFjaCBzb3VyY2Ug ZmlsZSBpbiB0aGF0IGxhbmd1YWdlLgpJZiB5b3UgdXNlIHRoaXMgb3B0aW9uIGluIGNvbmp1 bmN0aW9uIHdpdGgKLkZsIHNhdmUtdGVtcHMgLAp0aGUgY29tcGlsZXIgd2lsbCBnZW5lcmF0 ZSBtdWx0aXBsZSBwcmUtcHJvY2Vzc2VkIGZpbGVzIChvbmUgZm9yIGVhY2ggc291cmNlIGZp bGUpLCBidXQgb25seSBvbmUgKGNvbWJpbmVkKQouUGEgLm8Kb3IKLlBhIC5zCmZpbGUuCi5Q cAouSXQgRmwgLWhlbHAKUHJpbnQgKG9uIHRoZSBzdGFuZGFyZCBvdXRwdXQpIGEgZGVzY3Jp cHRpb24gb2YgdGhlIGNvbW1hbmQgbGluZSBvcHRpb25zIHVuZGVyc3Rvb2QgYnkKLk5tIGdj YyAuCklmIHRoZQouRmwgdgpvcHRpb24gaXMgYWxzbyBzcGVjaWZpZWQgdGhlbgouRmwgLWhl bHAKd2lsbCBhbHNvIGJlIHBhc3NlZCBvbiB0byB0aGUgdmFyaW91cyBwcm9jZXNzZXMgaW52 b2tlZCBieQouTm0gZ2NjICwKc28gdGhhdCB0aGV5IGNhbiBkaXNwbGF5IHRoZSBjb21tYW5k IGxpbmUgb3B0aW9ucyB0aGV5IGFjY2VwdC4KSWYgdGhlCi5GbCBXZXh0cmEKb3B0aW9uIGlz IGFsc28gc3BlY2lmaWVkIHRoZW4gY29tbWFuZCBsaW5lIG9wdGlvbnMgd2hpY2ggaGF2ZSBu byBkb2N1bWVudGF0aW9uIGFzc29jaWF0ZWQgd2l0aCB0aGVtIHdpbGwgYWxzbyBiZSBkaXNw bGF5ZWQuCi5QcAouSXQgRmwgLXRhcmdldC1oZWxwClByaW50IChvbiB0aGUgc3RhbmRhcmQg b3V0cHV0KSBhIGRlc2NyaXB0aW9uIG9mIHRhcmdldCBzcGVjaWZpYyBjb21tYW5kIGxpbmUg b3B0aW9ucyBmb3IgZWFjaCB0b29sLgouUHAKLkl0IEZsIC12ZXJzaW9uCkRpc3BsYXkgdGhl IHZlcnNpb24gbnVtYmVyIGFuZCBjb3B5cmlnaHRzIG9mIHRoZSBpbnZva2VkIEdDQy4KLlBw Ci5FbAouU3MgQ29tcGlsaW5nIEMrKyBQcm9ncmFtcwpDKysgc291cmNlIGZpbGVzIGNvbnZl bnRpb25hbGx5IHVzZSBvbmUgb2YgdGhlIHN1ZmZpeGVzCi5TeSAuQyAsCi5TeSAuY2MgLAou U3kgLmNwcCAsCi5TeSAuQ1BQICwKLlN5IC5jKysgLAouU3kgLmNwICwKb3IKLlN5IC5jeHgg OwpDKysgaGVhZGVyIGZpbGVzIG9mdGVuIHVzZQouU3kgLmhoCm9yCi5TeSAuSCA7CmFuZCBw cmVwcm9jZXNzZWQgQysrIGZpbGVzIHVzZSB0aGUgc3VmZml4Ci5TeSAuaWkgLgpHQ0MgcmVj b2duaXplcyBmaWxlcyB3aXRoIHRoZXNlIG5hbWVzIGFuZCBjb21waWxlcyB0aGVtIGFzIEMr KyBwcm9ncmFtcyBldmVuIGlmIHlvdSBjYWxsIHRoZSBjb21waWxlciB0aGUgc2FtZSB3YXkg YXMgZm9yIGNvbXBpbGluZyBDIHByb2dyYW1zICh1c3VhbGx5IHdpdGggdGhlIG5hbWUKLk5t IGdjYyApIC4KLlBwCkhvd2V2ZXIsIEMrKyBwcm9ncmFtcyBvZnRlbiByZXF1aXJlIGNsYXNz IGxpYnJhcmllcyBhcyB3ZWxsIGFzIGEgY29tcGlsZXIgdGhhdCB1bmRlcnN0YW5kcyB0aGUg QysrIGxhbmd1YWdlLS0tYW5kIHVuZGVyIHNvbWUgY2lyY3Vtc3RhbmNlcywgeW91IG1pZ2h0 IHdhbnQgdG8gY29tcGlsZSBwcm9ncmFtcyBvciBoZWFkZXIgZmlsZXMgZnJvbSBzdGFuZGFy ZCBpbnB1dCwgb3Igb3RoZXJ3aXNlIHdpdGhvdXQgYSBzdWZmaXggdGhhdCBmbGFncyB0aGVt IGFzIEMrKyBwcm9ncmFtcy4KWW91IG1pZ2h0IGFsc28gbGlrZSB0byBwcmVjb21waWxlIGEg QyBoZWFkZXIgZmlsZSB3aXRoIGEKLlN5IC5oCmV4dGVuc2lvbiB0byBiZSB1c2VkIGluIEMr KyBjb21waWxhdGlvbnMuCi5ObSBnKysKaXMgYSBwcm9ncmFtIHRoYXQgY2FsbHMgR0NDIHdp dGggdGhlIGRlZmF1bHQgbGFuZ3VhZ2Ugc2V0IHRvIEMrKywgYW5kIGF1dG9tYXRpY2FsbHkg c3BlY2lmaWVzIGxpbmtpbmcgYWdhaW5zdCB0aGUgQysrIGxpYnJhcnkuCk9uIG1hbnkgc3lz dGVtcywKLk5tIGcrKwppcyBhbHNvIGluc3RhbGxlZCB3aXRoIHRoZSBuYW1lCi5ObSBjKysg LgouUHAKV2hlbiB5b3UgY29tcGlsZSBDKysgcHJvZ3JhbXMsIHlvdSBtYXkgc3BlY2lmeSBt YW55IG9mIHRoZSBzYW1lIGNvbW1hbmQtbGluZSBvcHRpb25zIHRoYXQgeW91IHVzZSBmb3Ig Y29tcGlsaW5nIHByb2dyYW1zIGluIGFueSBsYW5ndWFnZTsgb3IgY29tbWFuZC1saW5lIG9w dGlvbnMgbWVhbmluZ2Z1bCBmb3IgQyBhbmQgcmVsYXRlZCBsYW5ndWFnZXM7IG9yIG9wdGlv bnMgdGhhdCBhcmUgbWVhbmluZ2Z1bCBvbmx5IGZvciBDKysgcHJvZ3JhbXMuCi5TcyBPcHRp b25zIENvbnRyb2xsaW5nIEMgRGlhbGVjdApUaGUgZm9sbG93aW5nIG9wdGlvbnMgY29udHJv bCB0aGUgZGlhbGVjdCBvZiBDIChvciBsYW5ndWFnZXMgZGVyaXZlZCBmcm9tIEMsIHN1Y2gg YXMgQysrLCBPYmplY3RpdmUtQyBhbmQgT2JqZWN0aXZlLUMrKykgdGhhdCB0aGUgY29tcGls ZXIgYWNjZXB0czoKLlBwCi5CbCAtdGFnIC13aWR0aCB4eAouSXQgRmwgYW5zaQpJbiBDIG1v ZGUsIHN1cHBvcnQgYWxsIElTTyBDOTAgcHJvZ3JhbXMuCkluIEMrKyBtb2RlLCByZW1vdmUg R05VIGV4dGVuc2lvbnMgdGhhdCBjb25mbGljdCB3aXRoIElTTyBDKysuCi5QcApUaGlzIHR1 cm5zIG9mZiBjZXJ0YWluIGZlYXR1cmVzIG9mIEdDQyB0aGF0IGFyZSBpbmNvbXBhdGlibGUg d2l0aCBJU08gQzkwICh3aGVuIGNvbXBpbGluZyBDIGNvZGUpLCBvciBvZiBzdGFuZGFyZCBD KysgKHdoZW4gY29tcGlsaW5nIEMrKyBjb2RlKSwgc3VjaCBhcyB0aGUKLlZhIGFzbQphbmQK LlZhIHR5cGVvZgprZXl3b3JkcywgYW5kIHByZWRlZmluZWQgbWFjcm9zIHN1Y2ggYXMKLlZh IHVuaXgKYW5kCi5WYSB2YXgKdGhhdCBpZGVudGlmeSB0aGUgdHlwZSBvZiBzeXN0ZW0geW91 IGFyZSB1c2luZy4KSXQgYWxzbyBlbmFibGVzIHRoZSB1bmRlc2lyYWJsZSBhbmQgcmFyZWx5 IHVzZWQgSVNPIHRyaWdyYXBoIGZlYXR1cmUuCkZvciB0aGUgQyBjb21waWxlciwgaXQgZGlz YWJsZXMgcmVjb2duaXRpb24gb2YgQysrIHN0eWxlCi5TeSAvLwpjb21tZW50cyBhcyB3ZWxs IGFzIHRoZQouVmEgaW5saW5lCmtleXdvcmQuCi5QcApUaGUgYWx0ZXJuYXRlIGtleXdvcmRz Ci5WYSBfX2FzbV9fICwKLlZhIF9fZXh0ZW5zaW9uX18gLAouVmEgX19pbmxpbmVfXwphbmQK LlZhIF9fdHlwZW9mX18KY29udGludWUgdG8gd29yayBkZXNwaXRlCi5GbCBhbnNpIC4KWW91 IHdvdWxkIG5vdCB3YW50IHRvIHVzZSB0aGVtIGluIGFuIElTTyBDIHByb2dyYW0sIG9mIGNv dXJzZSwgYnV0IGl0IGlzIHVzZWZ1bCB0byBwdXQgdGhlbSBpbiBoZWFkZXIgZmlsZXMgdGhh dCBtaWdodCBiZSBpbmNsdWRlZCBpbiBjb21waWxhdGlvbnMgZG9uZSB3aXRoCi5GbCBhbnNp IC4KQWx0ZXJuYXRlIHByZWRlZmluZWQgbWFjcm9zIHN1Y2ggYXMKLlZhIF9fdW5peF9fCmFu ZAouVmEgX192YXhfXwphcmUgYWxzbyBhdmFpbGFibGUsIHdpdGggb3Igd2l0aG91dAouRmwg YW5zaSAuCi5QcApUaGUKLkZsIGFuc2kKb3B0aW9uIGRvZXMgbm90IGNhdXNlIG5vbi1JU08g cHJvZ3JhbXMgdG8gYmUgcmVqZWN0ZWQgZ3JhdHVpdG91c2x5LgpGb3IgdGhhdCwKLkZsIHBl ZGFudGljCmlzIHJlcXVpcmVkIGluIGFkZGl0aW9uIHRvCi5GbCBhbnNpIC4KLlBwClRoZSBt YWNybwouVmEgX19TVFJJQ1RfQU5TSV9fCmlzIHByZWRlZmluZWQgd2hlbiB0aGUKLkZsIGFu c2kKb3B0aW9uIGlzIHVzZWQuClNvbWUgaGVhZGVyIGZpbGVzIG1heSBub3RpY2UgdGhpcyBt YWNybyBhbmQgcmVmcmFpbiBmcm9tIGRlY2xhcmluZyBjZXJ0YWluIGZ1bmN0aW9ucyBvciBk ZWZpbmluZyBjZXJ0YWluIG1hY3JvcyB0aGF0IHRoZSBJU08gc3RhbmRhcmQgZG9lc24ndCBj YWxsIGZvcjsgdGhpcyBpcyB0byBhdm9pZCBpbnRlcmZlcmluZyB3aXRoIGFueSBwcm9ncmFt cyB0aGF0IG1pZ2h0IHVzZSB0aGVzZSBuYW1lcyBmb3Igb3RoZXIgdGhpbmdzLgouUHAKRnVu Y3Rpb25zIHdoaWNoIHdvdWxkIG5vcm1hbGx5IGJlIGJ1aWx0IGluIGJ1dCBkbyBub3QgaGF2 ZSBzZW1hbnRpY3MgZGVmaW5lZCBieSBJU08gQyAoc3VjaCBhcwouVmEgYWxsb2NhCmFuZAou VmEgZmZzICkKYXJlIG5vdCBidWlsdC1pbiBmdW5jdGlvbnMgd2l0aAouRmwgYW5zaQppcyB1 c2VkLgouUHAKLkl0IEZsIHN0ZD0KRGV0ZXJtaW5lIHRoZSBsYW5ndWFnZSBzdGFuZGFyZC4K VGhpcyBvcHRpb24gaXMgY3VycmVudGx5IG9ubHkgc3VwcG9ydGVkIHdoZW4gY29tcGlsaW5n IEMgb3IgQysrLgpBIHZhbHVlIGZvciB0aGlzIG9wdGlvbiBtdXN0IGJlIHByb3ZpZGVkOyBw b3NzaWJsZSB2YWx1ZXMgYXJlCi5QcAouQmwgLXRhZyAtd2lkdGggeHgKLkl0IFN5IGM4OSBO cwouSXQgU3kgaXNvOTg5OToxOTkwIE5zCklTTyBDOTAgKHNhbWUgYXMKLkZsIGFuc2kgKSAu Ci5QcAouSXQgU3kgaXNvOTg5OToxOTk0MDkgTnMKSVNPIEM5MCBhcyBtb2RpZmllZCBpbiBh bWVuZG1lbnQgMS4KLlBwCi5JdCBTeSBjOTkgTnMKLkl0IFN5IGM5eCBOcwouSXQgU3kgaXNv OTg5OToxOTk5IE5zCi5JdCBTeSBpc285ODk5OjE5OXggTnMKSVNPIEM5OS4KTm90ZSB0aGF0 IHRoaXMgc3RhbmRhcmQgaXMgbm90IHlldCBmdWxseSBzdXBwb3J0ZWQ7IHNlZQouTGsgaHR0 cDovL2djYy5nbnUub3JnL2djYy00LjEvYzk5c3RhdHVzLmh0bWwKZm9yIG1vcmUgaW5mb3Jt YXRpb24uClRoZSBuYW1lcwouU3kgYzl4CmFuZAouU3kgaXNvOTg5OToxOTl4CmFyZSBkZXBy ZWNhdGVkLgouUHAKLkl0IFN5IGdudTg5IE5zCkRlZmF1bHQsIElTTyBDOTAgcGx1cyBHTlUg ZXh0ZW5zaW9ucyAoaW5jbHVkaW5nIHNvbWUgQzk5IGZlYXR1cmVzKS4KLlBwCi5JdCBTeSBn bnU5OSBOcwouSXQgU3kgZ251OXggTnMKSVNPIEM5OSBwbHVzIEdOVSBleHRlbnNpb25zLgpX aGVuIElTTyBDOTkgaXMgZnVsbHkgaW1wbGVtZW50ZWQgaW4gR0NDLCB0aGlzIHdpbGwgYmVj b21lIHRoZSBkZWZhdWx0LgpUaGUgbmFtZQouU3kgZ251OXgKaXMgZGVwcmVjYXRlZC4KLlBw Ci5JdCBTeSBjKys5OCBOcwpUaGUgMTk5OCBJU08gQysrIHN0YW5kYXJkIHBsdXMgYW1lbmRt ZW50cy4KLlBwCi5JdCBTeSBnbnUrKzk4IE5zClRoZSBzYW1lIGFzCi5GbCBzdGQ9YysrOTgK cGx1cyBHTlUgZXh0ZW5zaW9ucy4KVGhpcyBpcyB0aGUgZGVmYXVsdCBmb3IgQysrIGNvZGUu Ci5QcAouRWwKRXZlbiB3aGVuIHRoaXMgb3B0aW9uIGlzIG5vdCBzcGVjaWZpZWQsIHlvdSBj YW4gc3RpbGwgdXNlIHNvbWUgb2YgdGhlIGZlYXR1cmVzIG9mIG5ld2VyIHN0YW5kYXJkcyBp biBzbyBmYXIgYXMgdGhleSBkbyBub3QgY29uZmxpY3Qgd2l0aCBwcmV2aW91cyBDIHN0YW5k YXJkcy4KRm9yIGV4YW1wbGUsIHlvdSBtYXkgdXNlCi5WYSBfX3Jlc3RyaWN0X18KZXZlbiB3 aGVuCi5GbCBzdGQ9Yzk5CmlzIG5vdCBzcGVjaWZpZWQuCi5QcApUaGUKLkZsIHN0ZApvcHRp b25zIHNwZWNpZnlpbmcgc29tZSB2ZXJzaW9uIG9mIElTTyBDIGhhdmUgdGhlIHNhbWUgZWZm ZWN0cyBhcwouRmwgYW5zaSAsCmV4Y2VwdCB0aGF0IGZlYXR1cmVzIHRoYXQgd2VyZSBub3Qg aW4gSVNPIEM5MCBidXQgYXJlIGluIHRoZSBzcGVjaWZpZWQgdmVyc2lvbiAoZm9yIGV4YW1w bGUsCi5TeSAvLwpjb21tZW50cyBhbmQgdGhlCi5WYSBpbmxpbmUKa2V5d29yZCBpbiBJU08g Qzk5KSBhcmUgbm90IGRpc2FibGVkLgouUHAKLkl0IEZsIGZnbnU4OS1pbmxpbmUKVGhlIG9w dGlvbgouRmwgZmdudTg5LWlubGluZQp0ZWxscyBHQ0MgdG8gdXNlIHRoZSB0cmFkaXRpb25h bCBHTlUgc2VtYW50aWNzIGZvcgouVmEgaW5saW5lCmZ1bmN0aW9ucyB3aGVuIGluIEM5OSBt b2RlLgpVc2luZyB0aGlzIG9wdGlvbiBpcyByb3VnaGx5IGVxdWl2YWxlbnQgdG8gYWRkaW5n IHRoZQouVmEgZ251X2lubGluZQpmdW5jdGlvbiBhdHRyaWJ1dGUgdG8gYWxsIGlubGluZSBm dW5jdGlvbnMuCi5QcApUaGlzIG9wdGlvbiBpcyBhY2NlcHRlZCBieSBHQ0MgdmVyc2lvbnMg NC4xLjMgYW5kIHVwLgpJbiBHQ0MgdmVyc2lvbnMgcHJpb3IgdG8gNC4zLCBDOTkgaW5saW5l IHNlbWFudGljcyBhcmUgbm90IHN1cHBvcnRlZCwgYW5kIHRodXMgdGhpcyBvcHRpb24gaXMg ZWZmZWN0aXZlbHkgYXNzdW1lZCB0byBiZSBwcmVzZW50IHJlZ2FyZGxlc3Mgb2Ygd2hldGhl ciBvciBub3QgaXQgaXMgc3BlY2lmaWVkOyB0aGUgb25seSBlZmZlY3Qgb2Ygc3BlY2lmeWlu ZyBpdCBleHBsaWNpdGx5IGlzIHRvIGRpc2FibGUgd2FybmluZ3MgYWJvdXQgdXNpbmcgaW5s aW5lIGZ1bmN0aW9ucyBpbiBDOTkgbW9kZS4KTGlrZXdpc2UsIHRoZSBvcHRpb24KLkZsIGZu by1nbnU4OS1pbmxpbmUKaXMgbm90IHN1cHBvcnRlZCBpbiB2ZXJzaW9ucyBvZiBHQ0MgYmVm b3JlIDQuMy4KSXQgd2lsbCBiZSBzdXBwb3J0ZWQgb25seSBpbiBDOTkgb3IgZ251OTkgbW9k ZSwgbm90IGluIEM4OSBvciBnbnU4OSBtb2RlLgouUHAKVGhlIHByZXByb2Nlc29yIG1hY3Jv cwouVmEgX19HTlVDX0dOVV9JTkxJTkVfXwphbmQKLlZhIF9fR05VQ19TVERDX0lOTElORV9f Cm1heSBiZSB1c2VkIHRvIGNoZWNrIHdoaWNoIHNlbWFudGljcyBhcmUgaW4gZWZmZWN0IGZv cgouVmEgaW5saW5lCmZ1bmN0aW9ucy4KLlBwCi5JdCBGbCBhdXgtaW5mbyBBciBmaWxlbmFt ZQpPdXRwdXQgdG8gdGhlIGdpdmVuIGZpbGVuYW1lIHByb3RvdHlwZWQgZGVjbGFyYXRpb25z IGZvciBhbGwgZnVuY3Rpb25zIGRlY2xhcmVkIGFuZC9vciBkZWZpbmVkIGluIGEgdHJhbnNs YXRpb24gdW5pdCwgaW5jbHVkaW5nIHRob3NlIGluIGhlYWRlciBmaWxlcy4KVGhpcyBvcHRp b24gaXMgc2lsZW50bHkgaWdub3JlZCBpbiBhbnkgbGFuZ3VhZ2Ugb3RoZXIgdGhhbiBDLgou UHAKQmVzaWRlcyBkZWNsYXJhdGlvbnMsIHRoZSBmaWxlIGluZGljYXRlcywgaW4gY29tbWVu dHMsIHRoZSBvcmlnaW4gb2YgZWFjaCBkZWNsYXJhdGlvbiAoc291cmNlIGZpbGUgYW5kIGxp bmUpLCB3aGV0aGVyIHRoZSBkZWNsYXJhdGlvbiB3YXMgaW1wbGljaXQsIHByb3RvdHlwZWQg b3IgdW5wcm90b3R5cGVkCi5TeSAoIEkgLAouU3kgTgpmb3IgbmV3IG9yCi5TeSBPCmZvciBv bGQsIHJlc3BlY3RpdmVseSwgaW4gdGhlIGZpcnN0IGNoYXJhY3RlciBhZnRlciB0aGUgbGlu ZSBudW1iZXIgYW5kIHRoZSBjb2xvbiksIGFuZCB3aGV0aGVyIGl0IGNhbWUgZnJvbSBhIGRl Y2xhcmF0aW9uIG9yIGEgZGVmaW5pdGlvbgouU3kgKCBDCm9yCi5TeSBGICwKcmVzcGVjdGl2 ZWx5LCBpbiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcikuCkluIHRoZSBjYXNlIG9mIGZ1bmN0 aW9uIGRlZmluaXRpb25zLCBhIEsmUi1zdHlsZSBsaXN0IG9mIGFyZ3VtZW50cyBmb2xsb3dl ZCBieSB0aGVpciBkZWNsYXJhdGlvbnMgaXMgYWxzbyBwcm92aWRlZCwgaW5zaWRlIGNvbW1l bnRzLCBhZnRlciB0aGUgZGVjbGFyYXRpb24uCi5QcAouSXQgRmwgZm5vLWFzbQpEbyBub3Qg cmVjb2duaXplCi5WYSBhc20gLAouVmEgaW5saW5lCm9yCi5WYSB0eXBlb2YKYXMgYSBrZXl3 b3JkLCBzbyB0aGF0IGNvZGUgY2FuIHVzZSB0aGVzZSB3b3JkcyBhcyBpZGVudGlmaWVycy4K WW91IGNhbiB1c2UgdGhlIGtleXdvcmRzCi5WYSBfX2FzbV9fICwKLlZhIF9faW5saW5lX18K YW5kCi5WYSBfX3R5cGVvZl9fCmluc3RlYWQuCi5GbCBhbnNpCmltcGxpZXMKLkZsIGZuby1h c20gLgouUHAKSW4gQysrLCB0aGlzIHN3aXRjaCBvbmx5IGFmZmVjdHMgdGhlCi5WYSB0eXBl b2YKa2V5d29yZCwgc2luY2UKLlZhIGFzbQphbmQKLlZhIGlubGluZQphcmUgc3RhbmRhcmQg a2V5d29yZHMuCllvdSBtYXkgd2FudCB0byB1c2UgdGhlCi5GbCBmbm8tZ251LWtleXdvcmRz CmZsYWcgaW5zdGVhZCwgd2hpY2ggaGFzIHRoZSBzYW1lIGVmZmVjdC4KSW4gQzk5IG1vZGUK LkZsICggc3RkPWM5OQpvcgouRmwgc3RkPWdudTk5ICkgLAp0aGlzIHN3aXRjaCBvbmx5IGFm ZmVjdHMgdGhlCi5WYSBhc20KYW5kCi5WYSB0eXBlb2YKa2V5d29yZHMsIHNpbmNlCi5WYSBp bmxpbmUKaXMgYSBzdGFuZGFyZCBrZXl3b3JkIGluIElTTyBDOTkuCi5QcAouSXQgRmwgZm5v LWJ1aWx0aW4KLkl0IEZsIGZuby1idWlsdGluLSBOcyBBciBmdW5jdGlvbgpEb24ndCByZWNv Z25pemUgYnVpbHQtaW4gZnVuY3Rpb25zIHRoYXQgZG8gbm90IGJlZ2luIHdpdGgKLlN5IF9f YnVpbHRpbl8KYXMgcHJlZml4LgouUHAKR0NDIG5vcm1hbGx5IGdlbmVyYXRlcyBzcGVjaWFs IGNvZGUgdG8gaGFuZGxlIGNlcnRhaW4gYnVpbHQtaW4gZnVuY3Rpb25zIG1vcmUgZWZmaWNp ZW50bHk7IGZvciBpbnN0YW5jZSwgY2FsbHMgdG8KLlZhIGFsbG9jYQptYXkgYmVjb21lIHNp bmdsZSBpbnN0cnVjdGlvbnMgdGhhdCBhZGp1c3QgdGhlIHN0YWNrIGRpcmVjdGx5LCBhbmQg Y2FsbHMgdG8KLlZhIG1lbWNweQptYXkgYmVjb21lIGlubGluZSBjb3B5IGxvb3BzLgpUaGUg cmVzdWx0aW5nIGNvZGUgaXMgb2Z0ZW4gYm90aCBzbWFsbGVyIGFuZCBmYXN0ZXIsIGJ1dCBz aW5jZSB0aGUgZnVuY3Rpb24gY2FsbHMgbm8gbG9uZ2VyIGFwcGVhciBhcyBzdWNoLCB5b3Ug Y2Fubm90IHNldCBhIGJyZWFrcG9pbnQgb24gdGhvc2UgY2FsbHMsIG5vciBjYW4geW91IGNo YW5nZSB0aGUgYmVoYXZpb3Igb2YgdGhlIGZ1bmN0aW9ucyBieSBsaW5raW5nIHdpdGggYSBk aWZmZXJlbnQgbGlicmFyeS4KSW4gYWRkaXRpb24sIHdoZW4gYSBmdW5jdGlvbiBpcyByZWNv Z25pemVkIGFzIGEgYnVpbHQtaW4gZnVuY3Rpb24sIEdDQyBtYXkgdXNlIGluZm9ybWF0aW9u IGFib3V0IHRoYXQgZnVuY3Rpb24gdG8gd2FybiBhYm91dCBwcm9ibGVtcyB3aXRoIGNhbGxz IHRvIHRoYXQgZnVuY3Rpb24sIG9yIHRvIGdlbmVyYXRlIG1vcmUgZWZmaWNpZW50IGNvZGUs IGV2ZW4gaWYgdGhlIHJlc3VsdGluZyBjb2RlIHN0aWxsIGNvbnRhaW5zIGNhbGxzIHRvIHRo YXQgZnVuY3Rpb24uCkZvciBleGFtcGxlLCB3YXJuaW5ncyBhcmUgZ2l2ZW4gd2l0aAouRmwg V2Zvcm1hdApmb3IgYmFkIGNhbGxzIHRvCi5WYSBwcmludGYgLAp3aGVuCi5WYSBwcmludGYK aXMgYnVpbHQgaW4sIGFuZAouVmEgc3RybGVuCmlzIGtub3duIG5vdCB0byBtb2RpZnkgZ2xv YmFsIG1lbW9yeS4KLlBwCldpdGggdGhlCi5GbCBmbm8tYnVpbHRpbi0gTnMgQXIgZnVuY3Rp b24Kb3B0aW9uIG9ubHkgdGhlIGJ1aWx0LWluIGZ1bmN0aW9uCi5FbSBmdW5jdGlvbgppcyBk aXNhYmxlZC4KLkVtIGZ1bmN0aW9uCm11c3Qgbm90IGJlZ2luIHdpdGgKLlN5IF9fYnVpbHRp bl8gLgpJZiBhIGZ1bmN0aW9uIGlzIG5hbWVkIHRoaXMgaXMgbm90IGJ1aWx0LWluIGluIHRo aXMgdmVyc2lvbiBvZiBHQ0MsIHRoaXMgb3B0aW9uIGlzIGlnbm9yZWQuClRoZXJlIGlzIG5v IGNvcnJlc3BvbmRpbmcKLkZsIGZidWlsdGluLSBOcyBBciBmdW5jdGlvbgpvcHRpb247IGlm IHlvdSB3aXNoIHRvIGVuYWJsZSBidWlsdC1pbiBmdW5jdGlvbnMgc2VsZWN0aXZlbHkgd2hl biB1c2luZwouRmwgZm5vLWJ1aWx0aW4Kb3IKLkZsIGZmcmVlc3RhbmRpbmcgLAp5b3UgbWF5 IGRlZmluZSBtYWNyb3Mgc3VjaCBhczoKLlBwCi5CZCAtbGl0ZXJhbCAtb2Zmc2V0IGluZGVu dAojZGVmaW5lIGFicyhuKSAgICAgICAgICBfX2J1aWx0aW5fYWJzICgobikpCiNkZWZpbmUg c3RyY3B5KGQsIHMpICAgIF9fYnVpbHRpbl9zdHJjcHkgKChkKSwgKHMpKQouRWQKLkl0IEZs IGZob3N0ZWQKQXNzZXJ0IHRoYXQgY29tcGlsYXRpb24gdGFrZXMgcGxhY2UgaW4gYSBob3N0 ZWQgZW52aXJvbm1lbnQuClRoaXMgaW1wbGllcwouRmwgZmJ1aWx0aW4gLgpBIGhvc3RlZCBl bnZpcm9ubWVudCBpcyBvbmUgaW4gd2hpY2ggdGhlIGVudGlyZSBzdGFuZGFyZCBsaWJyYXJ5 IGlzIGF2YWlsYWJsZSwgYW5kIGluIHdoaWNoCi5WYSBtYWluCmhhcyBhIHJldHVybiB0eXBl IG9mCi5WYSBpbnQgLgpFeGFtcGxlcyBhcmUgbmVhcmx5IGV2ZXJ5dGhpbmcgZXhjZXB0IGEg a2VybmVsLgpUaGlzIGlzIGVxdWl2YWxlbnQgdG8KLkZsIGZuby1mcmVlc3RhbmRpbmcgLgou UHAKLkl0IEZsIGZmcmVlc3RhbmRpbmcKQXNzZXJ0IHRoYXQgY29tcGlsYXRpb24gdGFrZXMg cGxhY2UgaW4gYSBmcmVlc3RhbmRpbmcgZW52aXJvbm1lbnQuClRoaXMgaW1wbGllcwouRmwg Zm5vLWJ1aWx0aW4gLgpBIGZyZWVzdGFuZGluZyBlbnZpcm9ubWVudCBpcyBvbmUgaW4gd2hp Y2ggdGhlIHN0YW5kYXJkIGxpYnJhcnkgbWF5IG5vdCBleGlzdCwgYW5kIHByb2dyYW0gc3Rh cnR1cCBtYXkgbm90IG5lY2Vzc2FyaWx5IGJlIGF0Ci5WYSBtYWluIC4KVGhlIG1vc3Qgb2J2 aW91cyBleGFtcGxlIGlzIGFuIE9TIGtlcm5lbC4KVGhpcyBpcyBlcXVpdmFsZW50IHRvCi5G bCBmbm8taG9zdGVkIC4KLlBwCi5JdCBGbCBmbXMtZXh0ZW5zaW9ucwpBY2NlcHQgc29tZSBu b24tc3RhbmRhcmQgY29uc3RydWN0cyB1c2VkIGluIE1pY3Jvc29mdCBoZWFkZXIgZmlsZXMu Ci5QcApTb21lIGNhc2VzIG9mIHVubmFtZWQgZmllbGRzIGluIHN0cnVjdHVyZXMgYW5kIHVu aW9ucyBhcmUgb25seSBhY2NlcHRlZCB3aXRoIHRoaXMgb3B0aW9uLgouUHAKLkl0IEZsIHRy aWdyYXBocwpTdXBwb3J0IElTTyBDIHRyaWdyYXBocy4KVGhlCi5GbCBhbnNpCm9wdGlvbiAo YW5kCi5GbCBzdGQKb3B0aW9ucyBmb3Igc3RyaWN0IElTTyBDIGNvbmZvcm1hbmNlKSBpbXBs aWVzCi5GbCB0cmlncmFwaHMgLgouUHAKLkl0IEZsIG5vLWludGVncmF0ZWQtY3BwClBlcmZv cm1zIGEgY29tcGlsYXRpb24gaW4gdHdvIHBhc3NlczogcHJlcHJvY2Vzc2luZyBhbmQgY29t cGlsaW5nLgpUaGlzIG9wdGlvbiBhbGxvd3MgYSB1c2VyIHN1cHBsaWVkICJjYzEiLCAiY2Mx cGx1cyIsIG9yICJjYzFvYmoiIHZpYSB0aGUKLkZsIEIKb3B0aW9uLgpUaGUgdXNlciBzdXBw bGllZCBjb21waWxhdGlvbiBzdGVwIGNhbiB0aGVuIGFkZCBpbiBhbiBhZGRpdGlvbmFsIHBy ZXByb2Nlc3Npbmcgc3RlcCBhZnRlciBub3JtYWwgcHJlcHJvY2Vzc2luZyBidXQgYmVmb3Jl IGNvbXBpbGluZy4KVGhlIGRlZmF1bHQgaXMgdG8gdXNlIHRoZSBpbnRlZ3JhdGVkIGNwcCAo aW50ZXJuYWwgY3BwKQouUHAKVGhlIHNlbWFudGljcyBvZiB0aGlzIG9wdGlvbiB3aWxsIGNo YW5nZSBpZiAiY2MxIiwgImNjMXBsdXMiLCBhbmQgImNjMW9iaiIgYXJlIG1lcmdlZC4KLlBw Ci5JdCBGbCB0cmFkaXRpb25hbAouSXQgRmwgdHJhZGl0aW9uYWwtY3BwCkZvcm1lcmx5LCB0 aGVzZSBvcHRpb25zIGNhdXNlZCBHQ0MgdG8gYXR0ZW1wdCB0byBlbXVsYXRlIGEgcHJlLXN0 YW5kYXJkIEMgY29tcGlsZXIuClRoZXkgYXJlIG5vdyBvbmx5IHN1cHBvcnRlZCB3aXRoIHRo ZQouRmwgRQpzd2l0Y2guClRoZSBwcmVwcm9jZXNzb3IgY29udGludWVzIHRvIHN1cHBvcnQg YSBwcmUtc3RhbmRhcmQgbW9kZS4KU2VlIHRoZSBHTlUgQ1BQIG1hbnVhbCBmb3IgZGV0YWls cy4KLlBwCi5JdCBGbCBmY29uZC1taXNtYXRjaApBbGxvdyBjb25kaXRpb25hbCBleHByZXNz aW9ucyB3aXRoIG1pc21hdGNoZWQgdHlwZXMgaW4gdGhlIHNlY29uZCBhbmQgdGhpcmQgYXJn dW1lbnRzLgpUaGUgdmFsdWUgb2Ygc3VjaCBhbiBleHByZXNzaW9uIGlzIHZvaWQuClRoaXMg b3B0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIEMrKy4KLlBwCi5JdCBGbCBmdW5zaWduZWQt Y2hhcgpMZXQgdGhlIHR5cGUKLlZhIGNoYXIKYmUgdW5zaWduZWQsIGxpa2UKLlZhIHVuc2ln bmVkIGNoYXIgLgouUHAKRWFjaCBraW5kIG9mIG1hY2hpbmUgaGFzIGEgZGVmYXVsdCBmb3Ig d2hhdAouVmEgY2hhcgpzaG91bGQgYmUuCkl0IGlzIGVpdGhlciBsaWtlCi5WYSB1bnNpZ25l ZCBjaGFyCmJ5IGRlZmF1bHQgb3IgbGlrZQouVmEgc2lnbmVkIGNoYXIKYnkgZGVmYXVsdC4K LlBwCklkZWFsbHksIGEgcG9ydGFibGUgcHJvZ3JhbSBzaG91bGQgYWx3YXlzIHVzZQouVmEg c2lnbmVkIGNoYXIKb3IKLlZhIHVuc2lnbmVkIGNoYXIKd2hlbiBpdCBkZXBlbmRzIG9uIHRo ZSBzaWduZWRuZXNzIG9mIGFuIG9iamVjdC4KQnV0IG1hbnkgcHJvZ3JhbXMgaGF2ZSBiZWVu IHdyaXR0ZW4gdG8gdXNlIHBsYWluCi5WYSBjaGFyCmFuZCBleHBlY3QgaXQgdG8gYmUgc2ln bmVkLCBvciBleHBlY3QgaXQgdG8gYmUgdW5zaWduZWQsIGRlcGVuZGluZyBvbiB0aGUgbWFj aGluZXMgdGhleSB3ZXJlIHdyaXR0ZW4gZm9yLgpUaGlzIG9wdGlvbiwgYW5kIGl0cyBpbnZl cnNlLCBsZXQgeW91IG1ha2Ugc3VjaCBhIHByb2dyYW0gd29yayB3aXRoIHRoZSBvcHBvc2l0 ZSBkZWZhdWx0LgouUHAKVGhlIHR5cGUKLlZhIGNoYXIKaXMgYWx3YXlzIGEgZGlzdGluY3Qg dHlwZSBmcm9tIGVhY2ggb2YKLlZhIHNpZ25lZCBjaGFyCm9yCi5WYSB1bnNpZ25lZCBjaGFy ICwKZXZlbiB0aG91Z2ggaXRzIGJlaGF2aW9yIGlzIGFsd2F5cyBqdXN0IGxpa2Ugb25lIG9m IHRob3NlIHR3by4KLlBwCi5JdCBGbCBmc2lnbmVkLWNoYXIKTGV0IHRoZSB0eXBlCi5WYSBj aGFyCmJlIHNpZ25lZCwgbGlrZQouVmEgc2lnbmVkIGNoYXIgLgouUHAKTm90ZSB0aGF0IHRo aXMgaXMgZXF1aXZhbGVudCB0bwouRmwgZm5vLXVuc2lnbmVkLWNoYXIgLAp3aGljaCBpcyB0 aGUgbmVnYXRpdmUgZm9ybSBvZgouRmwgZnVuc2lnbmVkLWNoYXIgLgpMaWtld2lzZSwgdGhl IG9wdGlvbgouRmwgZm5vLXNpZ25lZC1jaGFyCmlzIGVxdWl2YWxlbnQgdG8KLkZsIGZ1bnNp Z25lZC1jaGFyIC4KLlBwCi5JdCBGbCBmc2lnbmVkLWJpdGZpZWxkcwouSXQgRmwgZnVuc2ln bmVkLWJpdGZpZWxkcwouSXQgRmwgZm5vLXNpZ25lZC1iaXRmaWVsZHMKLkl0IEZsIGZuby11 bnNpZ25lZC1iaXRmaWVsZHMKVGhlc2Ugb3B0aW9ucyBjb250cm9sIHdoZXRoZXIgYSBiaXQt ZmllbGQgaXMgc2lnbmVkIG9yIHVuc2lnbmVkLCB3aGVuIHRoZSBkZWNsYXJhdGlvbiBkb2Vz IG5vdCB1c2UgZWl0aGVyCi5WYSBzaWduZWQKb3IKLlZhIHVuc2lnbmVkIC4KQnkgZGVmYXVs dCwgc3VjaCBhIGJpdC1maWVsZCBpcyBzaWduZWQsIGJlY2F1c2UgdGhpcyBpcyBjb25zaXN0 ZW50OiB0aGUgYmFzaWMgaW50ZWdlciB0eXBlcyBzdWNoIGFzCi5WYSBpbnQKYXJlIHNpZ25l ZCB0eXBlcy4KLlBwCi5FbAouU3MgT3B0aW9ucyBDb250cm9sbGluZyBDKysgRGlhbGVjdApU aGlzIHNlY3Rpb24gZGVzY3JpYmVzIHRoZSBjb21tYW5kLWxpbmUgb3B0aW9ucyB0aGF0IGFy ZSBvbmx5IG1lYW5pbmdmdWwgZm9yIEMrKyBwcm9ncmFtczsgYnV0IHlvdSBjYW4gYWxzbyB1 c2UgbW9zdCBvZiB0aGUgR05VIGNvbXBpbGVyIG9wdGlvbnMgcmVnYXJkbGVzcyBvZiB3aGF0 IGxhbmd1YWdlIHlvdXIgcHJvZ3JhbSBpcyBpbi4KRm9yIGV4YW1wbGUsIHlvdSBtaWdodCBj b21waWxlIGEgZmlsZQouVmEgZmlyc3RDbGFzcy5DCmxpa2UgdGhpczoKLlBwCi5CZCAtbGl0 ZXJhbCAtb2Zmc2V0IGluZGVudApnKysgLWcgLWZyZXBvIC1PIC1jIGZpcnN0Q2xhc3MuQwou RWQKSW4gdGhpcyBleGFtcGxlLCBvbmx5Ci5GbCBmcmVwbwppcyBhbiBvcHRpb24gbWVhbnQg b25seSBmb3IgQysrIHByb2dyYW1zOyB5b3UgY2FuIHVzZSB0aGUgb3RoZXIgb3B0aW9ucyB3 aXRoIGFueSBsYW5ndWFnZSBzdXBwb3J0ZWQgYnkgR0NDLgouUHAKSGVyZSBpcyBhIGxpc3Qg b2Ygb3B0aW9ucyB0aGF0IGFyZQouRW0gb25seQpmb3IgY29tcGlsaW5nIEMrKyBwcm9ncmFt czoKLlBwCi5CbCAtdGFnIC13aWR0aCB4eAouSXQgRmwgZmFiaS12ZXJzaW9uPSBOcyBBciBu ClVzZSB2ZXJzaW9uCi5FbSBuCm9mIHRoZSBDKysgQUJJLgpWZXJzaW9uIDIgaXMgdGhlIHZl cnNpb24gb2YgdGhlIEMrKyBBQkkgdGhhdCBmaXJzdCBhcHBlYXJlZCBpbiBHKysgMy40LgpW ZXJzaW9uIDEgaXMgdGhlIHZlcnNpb24gb2YgdGhlIEMrKyBBQkkgdGhhdCBmaXJzdCBhcHBl YXJlZCBpbiBHKysgMy4yLgpWZXJzaW9uIDAgd2lsbCBhbHdheXMgYmUgdGhlIHZlcnNpb24g dGhhdCBjb25mb3JtcyBtb3N0IGNsb3NlbHkgdG8gdGhlIEMrKyBBQkkgc3BlY2lmaWNhdGlv bi4KVGhlcmVmb3JlLCB0aGUgQUJJIG9idGFpbmVkIHVzaW5nIHZlcnNpb24gMCB3aWxsIGNo YW5nZSBhcyBBQkkgYnVncyBhcmUgZml4ZWQuCi5QcApUaGUgZGVmYXVsdCBpcyB2ZXJzaW9u IDIuCi5QcAouSXQgRmwgZm5vLWFjY2Vzcy1jb250cm9sClR1cm4gb2ZmIGFsbCBhY2Nlc3Mg Y2hlY2tpbmcuClRoaXMgc3dpdGNoIGlzIG1haW5seSB1c2VmdWwgZm9yIHdvcmtpbmcgYXJv dW5kIGJ1Z3MgaW4gdGhlIGFjY2VzcyBjb250cm9sIGNvZGUuCi5QcAouSXQgRmwgZmNoZWNr LW5ldwpDaGVjayB0aGF0IHRoZSBwb2ludGVyIHJldHVybmVkIGJ5Ci5WYSBvcGVyYXRvciBu ZXcKaXMgbm9uLW51bGwgYmVmb3JlIGF0dGVtcHRpbmcgdG8gbW9kaWZ5IHRoZSBzdG9yYWdl IGFsbG9jYXRlZC4KVGhpcyBjaGVjayBpcyBub3JtYWxseSB1bm5lY2Vzc2FyeSBiZWNhdXNl IHRoZSBDKysgc3RhbmRhcmQgc3BlY2lmaWVzIHRoYXQKLlZhIG9wZXJhdG9yIG5ldwp3aWxs IG9ubHkgcmV0dXJuCi5WYSAwCmlmIGl0IGlzIGRlY2xhcmVkCi5TeSB0aHJvdygpICwKaW4g d2hpY2ggY2FzZSB0aGUgY29tcGlsZXIgd2lsbCBhbHdheXMgY2hlY2sgdGhlIHJldHVybiB2 YWx1ZSBldmVuIHdpdGhvdXQgdGhpcyBvcHRpb24uCkluIGFsbCBvdGhlciBjYXNlcywgd2hl bgouVmEgb3BlcmF0b3IgbmV3CmhhcyBhIG5vbi1lbXB0eSBleGNlcHRpb24gc3BlY2lmaWNh dGlvbiwgbWVtb3J5IGV4aGF1c3Rpb24gaXMgc2lnbmFsbGVkIGJ5IHRocm93aW5nCi5WYSBz dGQ6OmJhZF9hbGxvYyAuClNlZSBhbHNvCi5TeSBuZXcgKG5vdGhyb3cpIC4KLlBwCi5JdCBG bCBmY29uc2VydmUtc3BhY2UKUHV0IHVuaW5pdGlhbGl6ZWQgb3IgcnVudGltZS1pbml0aWFs aXplZCBnbG9iYWwgdmFyaWFibGVzIGludG8gdGhlIGNvbW1vbiBzZWdtZW50LCBhcyBDIGRv ZXMuClRoaXMgc2F2ZXMgc3BhY2UgaW4gdGhlIGV4ZWN1dGFibGUgYXQgdGhlIGNvc3Qgb2Yg bm90IGRpYWdub3NpbmcgZHVwbGljYXRlIGRlZmluaXRpb25zLgpJZiB5b3UgY29tcGlsZSB3 aXRoIHRoaXMgZmxhZyBhbmQgeW91ciBwcm9ncmFtIG15c3RlcmlvdXNseSBjcmFzaGVzIGFm dGVyCi5WYSBtYWluKCkKaGFzIGNvbXBsZXRlZCwgeW91IG1heSBoYXZlIGFuIG9iamVjdCB0 aGF0IGlzIGJlaW5nIGRlc3Ryb3llZCB0d2ljZSBiZWNhdXNlIHR3byBkZWZpbml0aW9ucyB3 ZXJlIG1lcmdlZC4KLlBwClRoaXMgb3B0aW9uIGlzIG5vIGxvbmdlciB1c2VmdWwgb24gbW9z dCB0YXJnZXRzLCBub3cgdGhhdCBzdXBwb3J0IGhhcyBiZWVuIGFkZGVkIGZvciBwdXR0aW5n IHZhcmlhYmxlcyBpbnRvIEJTUyB3aXRob3V0IG1ha2luZyB0aGVtIGNvbW1vbi4KLlBwCi5J dCBGbCBmZnJpZW5kLWluamVjdGlvbgpJbmplY3QgZnJpZW5kIGZ1bmN0aW9ucyBpbnRvIHRo ZSBlbmNsb3NpbmcgbmFtZXNwYWNlLCBzbyB0aGF0IHRoZXkgYXJlIHZpc2libGUgb3V0c2lk ZSB0aGUgc2NvcGUgb2YgdGhlIGNsYXNzIGluIHdoaWNoIHRoZXkgYXJlIGRlY2xhcmVkLgpG cmllbmQgZnVuY3Rpb25zIHdlcmUgZG9jdW1lbnRlZCB0byB3b3JrIHRoaXMgd2F5IGluIHRo ZSBvbGQgQW5ub3RhdGVkIEMrKyBSZWZlcmVuY2UgTWFudWFsLCBhbmQgdmVyc2lvbnMgb2Yg RysrIGJlZm9yZSA0LjEgYWx3YXlzIHdvcmtlZCB0aGF0IHdheS4KSG93ZXZlciwgaW4gSVNP IEMrKyBhIGZyaWVuZCBmdW5jdGlvbiB3aGljaCBpcyBub3QgZGVjbGFyZWQgaW4gYW4gZW5j bG9zaW5nIHNjb3BlIGNhbiBvbmx5IGJlIGZvdW5kIHVzaW5nIGFyZ3VtZW50IGRlcGVuZGVu dCBsb29rdXAuClRoaXMgb3B0aW9uIGNhdXNlcyBmcmllbmRzIHRvIGJlIGluamVjdGVkIGFz IHRoZXkgd2VyZSBpbiBlYXJsaWVyIHJlbGVhc2VzLgouUHAKVGhpcyBvcHRpb24gaXMgZm9y IGNvbXBhdGliaWxpdHksIGFuZCBtYXkgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNl IG9mIEcrKy4KLlBwCi5JdCBGbCBmbm8tY29uc3Qtc3RyaW5ncwpHaXZlIHN0cmluZyBjb25z dGFudHMgdHlwZQouVmEgY2hhciAqCmluc3RlYWQgb2YgdHlwZQouVmEgY29uc3QgY2hhciAq IC4KQnkgZGVmYXVsdCwgRysrIHVzZXMgdHlwZQouVmEgY29uc3QgY2hhciAqCmFzIHJlcXVp cmVkIGJ5IHRoZSBzdGFuZGFyZC4KRXZlbiBpZiB5b3UgdXNlCi5GbCBmbm8tY29uc3Qtc3Ry aW5ncyAsCnlvdSBjYW5ub3QgYWN0dWFsbHkgbW9kaWZ5IHRoZSB2YWx1ZSBvZiBhIHN0cmlu ZyBjb25zdGFudC4KLlBwClRoaXMgb3B0aW9uIG1pZ2h0IGJlIHJlbW92ZWQgaW4gYSBmdXR1 cmUgcmVsZWFzZSBvZiBHKysuCkZvciBtYXhpbXVtIHBvcnRhYmlsaXR5LCB5b3Ugc2hvdWxk IHN0cnVjdHVyZSB5b3VyIGNvZGUgc28gdGhhdCBpdCB3b3JrcyB3aXRoIHN0cmluZyBjb25z dGFudHMgdGhhdCBoYXZlIHR5cGUKLlZhIGNvbnN0IGNoYXIgKiAuCi5QcAouSXQgRmwgZm5v LWVsaWRlLWNvbnN0cnVjdG9ycwpUaGUgQysrIHN0YW5kYXJkIGFsbG93cyBhbiBpbXBsZW1l bnRhdGlvbiB0byBvbWl0IGNyZWF0aW5nIGEgdGVtcG9yYXJ5IHdoaWNoIGlzIG9ubHkgdXNl ZCB0byBpbml0aWFsaXplIGFub3RoZXIgb2JqZWN0IG9mIHRoZSBzYW1lIHR5cGUuClNwZWNp ZnlpbmcgdGhpcyBvcHRpb24gZGlzYWJsZXMgdGhhdCBvcHRpbWl6YXRpb24sIGFuZCBmb3Jj ZXMgRysrIHRvIGNhbGwgdGhlIGNvcHkgY29uc3RydWN0b3IgaW4gYWxsIGNhc2VzLgouUHAK Lkl0IEZsIGZuby1lbmZvcmNlLWVoLXNwZWNzCkRvbid0IGdlbmVyYXRlIGNvZGUgdG8gY2hl Y2sgZm9yIHZpb2xhdGlvbiBvZiBleGNlcHRpb24gc3BlY2lmaWNhdGlvbnMgYXQgcnVudGlt ZS4KVGhpcyBvcHRpb24gdmlvbGF0ZXMgdGhlIEMrKyBzdGFuZGFyZCwgYnV0IG1heSBiZSB1 c2VmdWwgZm9yIHJlZHVjaW5nIGNvZGUgc2l6ZSBpbiBwcm9kdWN0aW9uIGJ1aWxkcywgbXVj aCBsaWtlIGRlZmluaW5nCi5TeSBOREVCVUcgLgpUaGlzIGRvZXMgbm90IGdpdmUgdXNlciBj b2RlIHBlcm1pc3Npb24gdG8gdGhyb3cgZXhjZXB0aW9ucyBpbiB2aW9sYXRpb24gb2YgdGhl IGV4Y2VwdGlvbiBzcGVjaWZpY2F0aW9uczsgdGhlIGNvbXBpbGVyIHdpbGwgc3RpbGwgb3B0 aW1pemUgYmFzZWQgb24gdGhlIHNwZWNpZmljYXRpb25zLCBzbyB0aHJvd2luZyBhbiB1bmV4 cGVjdGVkIGV4Y2VwdGlvbiB3aWxsIHJlc3VsdCBpbiB1bmRlZmluZWQgYmVoYXZpb3IuCi5Q cAouSXQgRmwgZmZvci1zY29wZQouSXQgRmwgZm5vLWZvci1zY29wZQpJZgouRmwgZmZvci1z Y29wZQppcyBzcGVjaWZpZWQsIHRoZSBzY29wZSBvZiB2YXJpYWJsZXMgZGVjbGFyZWQgaW4g YQouRW0gZm9yLWluaXQtc3RhdGVtZW50CmlzIGxpbWl0ZWQgdG8gdGhlCi5TeSBmb3IKbG9v cCBpdHNlbGYsIGFzIHNwZWNpZmllZCBieSB0aGUgQysrIHN0YW5kYXJkLgpJZgouRmwgZm5v LWZvci1zY29wZQppcyBzcGVjaWZpZWQsIHRoZSBzY29wZSBvZiB2YXJpYWJsZXMgZGVjbGFy ZWQgaW4gYQouRW0gZm9yLWluaXQtc3RhdGVtZW50CmV4dGVuZHMgdG8gdGhlIGVuZCBvZiB0 aGUgZW5jbG9zaW5nIHNjb3BlLCBhcyB3YXMgdGhlIGNhc2UgaW4gb2xkIHZlcnNpb25zIG9m IEcrKywgYW5kIG90aGVyICh0cmFkaXRpb25hbCkgaW1wbGVtZW50YXRpb25zIG9mIEMrKy4K LlBwClRoZSBkZWZhdWx0IGlmIG5laXRoZXIgZmxhZyBpcyBnaXZlbiB0byBmb2xsb3cgdGhl IHN0YW5kYXJkLCBidXQgdG8gYWxsb3cgYW5kIGdpdmUgYSB3YXJuaW5nIGZvciBvbGQtc3R5 bGUgY29kZSB0aGF0IHdvdWxkIG90aGVyd2lzZSBiZSBpbnZhbGlkLCBvciBoYXZlIGRpZmZl cmVudCBiZWhhdmlvci4KLlBwCi5JdCBGbCBmbm8tZ251LWtleXdvcmRzCkRvIG5vdCByZWNv Z25pemUKLlZhIHR5cGVvZgphcyBhIGtleXdvcmQsIHNvIHRoYXQgY29kZSBjYW4gdXNlIHRo aXMgd29yZCBhcyBhbiBpZGVudGlmaWVyLgpZb3UgY2FuIHVzZSB0aGUga2V5d29yZAouVmEg X190eXBlb2ZfXwppbnN0ZWFkLgouRmwgYW5zaQppbXBsaWVzCi5GbCBmbm8tZ251LWtleXdv cmRzIC4KLlBwCi5JdCBGbCBmbm8taW1wbGljaXQtdGVtcGxhdGVzCk5ldmVyIGVtaXQgY29k ZSBmb3Igbm9uLWlubGluZSB0ZW1wbGF0ZXMgd2hpY2ggYXJlIGluc3RhbnRpYXRlZCBpbXBs aWNpdGx5IChpLmUuIGJ5IHVzZSk7IG9ubHkgZW1pdCBjb2RlIGZvciBleHBsaWNpdCBpbnN0 YW50aWF0aW9ucy4KLlBwCi5JdCBGbCBmbm8taW1wbGljaXQtaW5saW5lLXRlbXBsYXRlcwpE b24ndCBlbWl0IGNvZGUgZm9yIGltcGxpY2l0IGluc3RhbnRpYXRpb25zIG9mIGlubGluZSB0 ZW1wbGF0ZXMsIGVpdGhlci4KVGhlIGRlZmF1bHQgaXMgdG8gaGFuZGxlIGlubGluZXMgZGlm ZmVyZW50bHkgc28gdGhhdCBjb21waWxlcyB3aXRoIGFuZCB3aXRob3V0IG9wdGltaXphdGlv biB3aWxsIG5lZWQgdGhlIHNhbWUgc2V0IG9mIGV4cGxpY2l0IGluc3RhbnRpYXRpb25zLgou UHAKLkl0IEZsIGZuby1pbXBsZW1lbnQtaW5saW5lcwpUbyBzYXZlIHNwYWNlLCBkbyBub3Qg ZW1pdCBvdXQtb2YtbGluZSBjb3BpZXMgb2YgaW5saW5lIGZ1bmN0aW9ucyBjb250cm9sbGVk IGJ5Ci5TeSAjcHJhZ21hIGltcGxlbWVudGF0aW9uIC4KVGhpcyB3aWxsIGNhdXNlIGxpbmtl ciBlcnJvcnMgaWYgdGhlc2UgZnVuY3Rpb25zIGFyZSBub3QgaW5saW5lZCBldmVyeXdoZXJl IHRoZXkgYXJlIGNhbGxlZC4KLlBwCi5JdCBGbCBmbXMtZXh0ZW5zaW9ucwpEaXNhYmxlIHBl ZGFudGljIHdhcm5pbmdzIGFib3V0IGNvbnN0cnVjdHMgdXNlZCBpbiBNRkMsIHN1Y2ggYXMg aW1wbGljaXQgaW50IGFuZCBnZXR0aW5nIGEgcG9pbnRlciB0byBtZW1iZXIgZnVuY3Rpb24g dmlhIG5vbi1zdGFuZGFyZCBzeW50YXguCi5QcAouSXQgRmwgZm5vLW5vbmFuc2ktYnVpbHRp bnMKRGlzYWJsZSBidWlsdC1pbiBkZWNsYXJhdGlvbnMgb2YgZnVuY3Rpb25zIHRoYXQgYXJl IG5vdCBtYW5kYXRlZCBieSBBTlNJL0lTTyBDLgpUaGVzZSBpbmNsdWRlCi5WYSBmZnMgLAou VmEgYWxsb2NhICwKLlZhIF9leGl0ICwKLlZhIGluZGV4ICwKLlZhIGJ6ZXJvICwKLlZhIGNv bmpmICwKYW5kIG90aGVyIHJlbGF0ZWQgZnVuY3Rpb25zLgouUHAKLkl0IEZsIGZuby1vcGVy YXRvci1uYW1lcwpEbyBub3QgdHJlYXQgdGhlIG9wZXJhdG9yIG5hbWUga2V5d29yZHMKLlZh IGFuZCAsCi5WYSBiaXRhbmQgLAouVmEgYml0b3IgLAouVmEgY29tcGwgLAouVmEgbm90ICwK LlZhIG9yCmFuZAouVmEgeG9yCmFzIHN5bm9ueW1zIGFzIGtleXdvcmRzLgouUHAKLkl0IEZs IGZuby1vcHRpb25hbC1kaWFncwpEaXNhYmxlIGRpYWdub3N0aWNzIHRoYXQgdGhlIHN0YW5k YXJkIHNheXMgYSBjb21waWxlciBkb2VzIG5vdCBuZWVkIHRvIGlzc3VlLgpDdXJyZW50bHks IHRoZSBvbmx5IHN1Y2ggZGlhZ25vc3RpYyBpc3N1ZWQgYnkgRysrIGlzIHRoZSBvbmUgZm9y IGEgbmFtZSBoYXZpbmcgbXVsdGlwbGUgbWVhbmluZ3Mgd2l0aGluIGEgY2xhc3MuCi5QcAou SXQgRmwgZnBlcm1pc3NpdmUKRG93bmdyYWRlIHNvbWUgZGlhZ25vc3RpY3MgYWJvdXQgbm9u Y29uZm9ybWFudCBjb2RlIGZyb20gZXJyb3JzIHRvIHdhcm5pbmdzLgpUaHVzLCB1c2luZwou RmwgZnBlcm1pc3NpdmUKd2lsbCBhbGxvdyBzb21lIG5vbmNvbmZvcm1pbmcgY29kZSB0byBj b21waWxlLgouUHAKLkl0IEZsIGZyZXBvCkVuYWJsZSBhdXRvbWF0aWMgdGVtcGxhdGUgaW5z dGFudGlhdGlvbiBhdCBsaW5rIHRpbWUuClRoaXMgb3B0aW9uIGFsc28gaW1wbGllcwouRmwg Zm5vLWltcGxpY2l0LXRlbXBsYXRlcyAuCi5QcAouSXQgRmwgZm5vLXJ0dGkKRGlzYWJsZSBn ZW5lcmF0aW9uIG9mIGluZm9ybWF0aW9uIGFib3V0IGV2ZXJ5IGNsYXNzIHdpdGggdmlydHVh bCBmdW5jdGlvbnMgZm9yIHVzZSBieSB0aGUgQysrIHJ1bnRpbWUgdHlwZSBpZGVudGlmaWNh dGlvbiBmZWF0dXJlcwouU3kgKCBkeW5hbWljX2Nhc3QKYW5kCi5TeSB0eXBlaWQgKSAuCklm IHlvdSBkb24ndCB1c2UgdGhvc2UgcGFydHMgb2YgdGhlIGxhbmd1YWdlLCB5b3UgY2FuIHNh dmUgc29tZSBzcGFjZSBieSB1c2luZyB0aGlzIGZsYWcuCk5vdGUgdGhhdCBleGNlcHRpb24g aGFuZGxpbmcgdXNlcyB0aGUgc2FtZSBpbmZvcm1hdGlvbiwgYnV0IGl0IHdpbGwgZ2VuZXJh dGUgaXQgYXMgbmVlZGVkLgouUHAKLkl0IEZsIGZzdGF0cwpFbWl0IHN0YXRpc3RpY3MgYWJv dXQgZnJvbnQtZW5kIHByb2Nlc3NpbmcgYXQgdGhlIGVuZCBvZiB0aGUgY29tcGlsYXRpb24u ClRoaXMgaW5mb3JtYXRpb24gaXMgZ2VuZXJhbGx5IG9ubHkgdXNlZnVsIHRvIHRoZSBHKysg ZGV2ZWxvcG1lbnQgdGVhbS4KLlBwCi5JdCBGbCBmdGVtcGxhdGUtZGVwdGgtIE5zIEFyIG4K U2V0IHRoZSBtYXhpbXVtIGluc3RhbnRpYXRpb24gZGVwdGggZm9yIHRlbXBsYXRlIGNsYXNz ZXMgdG8KLkVtIG4gLgpBIGxpbWl0IG9uIHRoZSB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uIGRl cHRoIGlzIG5lZWRlZCB0byBkZXRlY3QgZW5kbGVzcyByZWN1cnNpb25zIGR1cmluZyB0ZW1w bGF0ZSBjbGFzcyBpbnN0YW50aWF0aW9uLgpBTlNJL0lTTyBDKysgY29uZm9ybWluZyBwcm9n cmFtcyBtdXN0IG5vdCByZWx5IG9uIGEgbWF4aW11bSBkZXB0aCBncmVhdGVyIHRoYW4gMTcu Ci5QcAouSXQgRmwgZm5vLXRocmVhZHNhZmUtc3RhdGljcwpEbyBub3QgZW1pdCB0aGUgZXh0 cmEgY29kZSB0byB1c2UgdGhlIHJvdXRpbmVzIHNwZWNpZmllZCBpbiB0aGUgQysrIEFCSSBm b3IgdGhyZWFkLXNhZmUgaW5pdGlhbGl6YXRpb24gb2YgbG9jYWwgc3RhdGljcy4KWW91IGNh biB1c2UgdGhpcyBvcHRpb24gdG8gcmVkdWNlIGNvZGUgc2l6ZSBzbGlnaHRseSBpbiBjb2Rl IHRoYXQgZG9lc24ndCBuZWVkIHRvIGJlIHRocmVhZC1zYWZlLgouUHAKLkl0IEZsIGZ1c2Ut Y3hhLWF0ZXhpdApSZWdpc3RlciBkZXN0cnVjdG9ycyBmb3Igb2JqZWN0cyB3aXRoIHN0YXRp YyBzdG9yYWdlIGR1cmF0aW9uIHdpdGggdGhlCi5WYSBfX2N4YV9hdGV4aXQKZnVuY3Rpb24g cmF0aGVyIHRoYW4gdGhlCi5WYSBhdGV4aXQKZnVuY3Rpb24uClRoaXMgb3B0aW9uIGlzIHJl cXVpcmVkIGZvciBmdWxseSBzdGFuZGFyZHMtY29tcGxpYW50IGhhbmRsaW5nIG9mIHN0YXRp YyBkZXN0cnVjdG9ycywgYnV0IHdpbGwgb25seSB3b3JrIGlmIHlvdXIgQyBsaWJyYXJ5IHN1 cHBvcnRzCi5WYSBfX2N4YV9hdGV4aXQgLgouUHAKLkl0IEZsIGZ2aXNpYmlsaXR5LWlubGlu ZXMtaGlkZGVuCkNhdXNlcyBhbGwgaW5saW5lZCBtZXRob2RzIHRvIGJlIG1hcmtlZCB3aXRo Ci5WYSBfX2F0dHJpYnV0ZV9fICgodmlzaWJpbGl0eSAoImhpZGRlbiIpKSkKc28gdGhhdCB0 aGV5IGRvIG5vdCBhcHBlYXIgaW4gdGhlIGV4cG9ydCB0YWJsZSBvZiBhIERTTyBhbmQgZG8g bm90IHJlcXVpcmUgYSBQTFQgaW5kaXJlY3Rpb24gd2hlbiB1c2VkIHdpdGhpbiB0aGUgRFNP LgpFbmFibGluZyB0aGlzIG9wdGlvbiBjYW4gaGF2ZSBhIGRyYW1hdGljIGVmZmVjdCBvbiBs b2FkIGFuZCBsaW5rIHRpbWVzIG9mIGEgRFNPIGFzIGl0IG1hc3NpdmVseSByZWR1Y2VzIHRo ZSBzaXplIG9mIHRoZSBkeW5hbWljIGV4cG9ydCB0YWJsZSB3aGVuIHRoZSBsaWJyYXJ5IG1h a2VzIGhlYXZ5IHVzZSBvZiB0ZW1wbGF0ZXMuCldoaWxlIGl0IGNhbiBjYXVzZSBibG9hdGlu ZyB0aHJvdWdoIGR1cGxpY2F0aW9uIG9mIGNvZGUgd2l0aGluIGVhY2ggRFNPIHdoZXJlIGl0 IGlzIHVzZWQsIG9mdGVuIHRoZSB3YXN0YWdlIGlzIGxlc3MgdGhhbiB0aGUgY29uc2lkZXJh YmxlIHNwYWNlIG9jY3VwaWVkIGJ5IGEgbG9uZyBzeW1ib2wgbmFtZSBpbiB0aGUgZXhwb3J0 IHRhYmxlIHdoaWNoIGlzIHR5cGljYWwgd2hlbiB1c2luZyB0ZW1wbGF0ZXMgYW5kIG5hbWVz cGFjZXMuCkZvciBldmVuIG1vcmUgc2F2aW5ncywgY29tYmluZSB3aXRoIHRoZQouRmwgZnZp c2liaWxpdHk9aGlkZGVuCnN3aXRjaC4KLlBwCi5JdCBGbCBmbm8td2VhawpEbyBub3QgdXNl IHdlYWsgc3ltYm9sIHN1cHBvcnQsIGV2ZW4gaWYgaXQgaXMgcHJvdmlkZWQgYnkgdGhlIGxp bmtlci4KQnkgZGVmYXVsdCwgRysrIHdpbGwgdXNlIHdlYWsgc3ltYm9scyBpZiB0aGV5IGFy ZSBhdmFpbGFibGUuClRoaXMgb3B0aW9uIGV4aXN0cyBvbmx5IGZvciB0ZXN0aW5nLCBhbmQg c2hvdWxkIG5vdCBiZSB1c2VkIGJ5IGVuZC11c2VyczsgaXQgd2lsbCByZXN1bHQgaW4gaW5m ZXJpb3IgY29kZSBhbmQgaGFzIG5vIGJlbmVmaXRzLgpUaGlzIG9wdGlvbiBtYXkgYmUgcmVt b3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlIG9mIEcrKy4KLlBwCi5JdCBGbCBub3N0ZGluYysr CkRvIG5vdCBzZWFyY2ggZm9yIGhlYWRlciBmaWxlcyBpbiB0aGUgc3RhbmRhcmQgZGlyZWN0 b3JpZXMgc3BlY2lmaWMgdG8gQysrLCBidXQgZG8gc3RpbGwgc2VhcmNoIHRoZSBvdGhlciBz dGFuZGFyZCBkaXJlY3Rvcmllcy4KKFRoaXMgb3B0aW9uIGlzIHVzZWQgd2hlbiBidWlsZGlu ZyB0aGUgQysrIGxpYnJhcnkuKQouUHAKLkVsCkluIGFkZGl0aW9uLCB0aGVzZSBvcHRpbWl6 YXRpb24sIHdhcm5pbmcsIGFuZCBjb2RlIGdlbmVyYXRpb24gb3B0aW9ucyBoYXZlIG1lYW5p bmdzIG9ubHkgZm9yIEMrKyBwcm9ncmFtczoKLlBwCi5CbCAtdGFnIC13aWR0aCB4eAouSXQg RmwgZm5vLWRlZmF1bHQtaW5saW5lCkRvIG5vdCBhc3N1bWUKLlN5IGlubGluZQpmb3IgZnVu Y3Rpb25zIGRlZmluZWQgaW5zaWRlIGEgY2xhc3Mgc2NvcGUuCk5vdGUgdGhhdCB0aGVzZSBm dW5jdGlvbnMgd2lsbCBoYXZlIGxpbmthZ2UgbGlrZSBpbmxpbmUgZnVuY3Rpb25zOyB0aGV5 IGp1c3Qgd29uJ3QgYmUgaW5saW5lZCBieSBkZWZhdWx0LgouUHAKLkl0IEZsIFdhYmkgKEMr KyBvbmx5KQpXYXJuIHdoZW4gRysrIGdlbmVyYXRlcyBjb2RlIHRoYXQgaXMgcHJvYmFibHkg bm90IGNvbXBhdGlibGUgd2l0aCB0aGUgdmVuZG9yLW5ldXRyYWwgQysrIEFCSS4KQWx0aG91 Z2ggYW4gZWZmb3J0IGhhcyBiZWVuIG1hZGUgdG8gd2FybiBhYm91dCBhbGwgc3VjaCBjYXNl cywgdGhlcmUgYXJlIHByb2JhYmx5IHNvbWUgY2FzZXMgdGhhdCBhcmUgbm90IHdhcm5lZCBh Ym91dCwgZXZlbiB0aG91Z2ggRysrIGlzIGdlbmVyYXRpbmcgaW5jb21wYXRpYmxlIGNvZGUu ClRoZXJlIG1heSBhbHNvIGJlIGNhc2VzIHdoZXJlIHdhcm5pbmdzIGFyZSBlbWl0dGVkIGV2 ZW4gdGhvdWdoIHRoZSBjb2RlIHRoYXQgaXMgZ2VuZXJhdGVkIHdpbGwgYmUgY29tcGF0aWJs ZS4KLlBwCllvdSBzaG91bGQgcmV3cml0ZSB5b3VyIGNvZGUgdG8gYXZvaWQgdGhlc2Ugd2Fy bmluZ3MgaWYgeW91IGFyZSBjb25jZXJuZWQgYWJvdXQgdGhlIGZhY3QgdGhhdCBjb2RlIGdl bmVyYXRlZCBieSBHKysgbWF5IG5vdCBiZSBiaW5hcnkgY29tcGF0aWJsZSB3aXRoIGNvZGUg Z2VuZXJhdGVkIGJ5IG90aGVyIGNvbXBpbGVycy4KLlBwClRoZSBrbm93biBpbmNvbXBhdGli aWxpdGllcyBhdCB0aGlzIHBvaW50IGluY2x1ZGU6Ci5QcAouQmwgLWJ1bGxldAouSXQKSW5j b3JyZWN0IGhhbmRsaW5nIG9mIHRhaWwtcGFkZGluZyBmb3IgYml0LWZpZWxkcy4KRysrIG1h eSBhdHRlbXB0IHRvIHBhY2sgZGF0YSBpbnRvIHRoZSBzYW1lIGJ5dGUgYXMgYSBiYXNlIGNs YXNzLgpGb3IgZXhhbXBsZToKLlBwCi5CZCAtbGl0ZXJhbCAtb2Zmc2V0IGluZGVudApzdHJ1 Y3QgQSB7IHZpcnR1YWwgdm9pZCBmKCk7IGludCBmMSA6IDE7IH07CnN0cnVjdCBCIDogcHVi bGljIEEgeyBpbnQgZjIgOiAxOyB9OwouRWQKSW4gdGhpcyBjYXNlLCBHKysgd2lsbCBwbGFj ZQouVmEgQjo6ZjIKaW50byB0aGUgc2FtZSBieXRlIGFzCi5WYSBBOjpmMSA7Cm90aGVyIGNv bXBpbGVycyB3aWxsIG5vdC4KWW91IGNhbiBhdm9pZCB0aGlzIHByb2JsZW0gYnkgZXhwbGlj aXRseSBwYWRkaW5nCi5WYSBBCnNvIHRoYXQgaXRzIHNpemUgaXMgYSBtdWx0aXBsZSBvZiB0 aGUgYnl0ZSBzaXplIG9uIHlvdXIgcGxhdGZvcm07IHRoYXQgd2lsbCBjYXVzZSBHKysgYW5k IG90aGVyIGNvbXBpbGVycyB0byBsYXlvdXQKLlZhIEIKaWRlbnRpY2FsbHkuCi5QcAouSXQK SW5jb3JyZWN0IGhhbmRsaW5nIG9mIHRhaWwtcGFkZGluZyBmb3IgdmlydHVhbCBiYXNlcy4K RysrIGRvZXMgbm90IHVzZSB0YWlsIHBhZGRpbmcgd2hlbiBsYXlpbmcgb3V0IHZpcnR1YWwg YmFzZXMuCkZvciBleGFtcGxlOgouUHAKLkJkIC1saXRlcmFsIC1vZmZzZXQgaW5kZW50CnN0 cnVjdCBBIHsgdmlydHVhbCB2b2lkIGYoKTsgY2hhciBjMTsgfTsKc3RydWN0IEIgeyBCKCk7 IGNoYXIgYzI7IH07CnN0cnVjdCBDIDogcHVibGljIEEsIHB1YmxpYyB2aXJ0dWFsIEIge307 Ci5FZApJbiB0aGlzIGNhc2UsIEcrKyB3aWxsIG5vdCBwbGFjZQouVmEgQgppbnRvIHRoZSB0 YWlsLXBhZGRpbmcgZm9yCi5WYSBBIDsKb3RoZXIgY29tcGlsZXJzIHdpbGwuCllvdSBjYW4g YXZvaWQgdGhpcyBwcm9ibGVtIGJ5IGV4cGxpY2l0bHkgcGFkZGluZwouVmEgQQpzbyB0aGF0 IGl0cyBzaXplIGlzIGEgbXVsdGlwbGUgb2YgaXRzIGFsaWdubWVudCAoaWdub3Jpbmcgdmly dHVhbCBiYXNlIGNsYXNzZXMpOyB0aGF0IHdpbGwgY2F1c2UgRysrIGFuZCBvdGhlciBjb21w aWxlcnMgdG8gbGF5b3V0Ci5WYSBDCmlkZW50aWNhbGx5LgouUHAKLkl0CkluY29ycmVjdCBo YW5kbGluZyBvZiBiaXQtZmllbGRzIHdpdGggZGVjbGFyZWQgd2lkdGhzIGdyZWF0ZXIgdGhh biB0aGF0IG9mIHRoZWlyIHVuZGVybHlpbmcgdHlwZXMsIHdoZW4gdGhlIGJpdC1maWVsZHMg YXBwZWFyIGluIGEgdW5pb24uCkZvciBleGFtcGxlOgouUHAKLkJkIC1saXRlcmFsIC1vZmZz ZXQgaW5kZW50CnVuaW9uIFUgeyBpbnQgaSA6IDQwOTY7IH07Ci5FZApBc3N1bWluZyB0aGF0 IGFuCi5WYSBpbnQKZG9lcyBub3QgaGF2ZSA0MDk2IGJpdHMsIEcrKyB3aWxsIG1ha2UgdGhl IHVuaW9uIHRvbyBzbWFsbCBieSB0aGUgbnVtYmVyIG9mIGJpdHMgaW4gYW4KLlZhIGludCAu Ci5QcAouSXQKRW1wdHkgY2xhc3NlcyBjYW4gYmUgcGxhY2VkIGF0IGluY29ycmVjdCBvZmZz ZXRzLgpGb3IgZXhhbXBsZToKLlBwCi5CZCAtbGl0ZXJhbCAtb2Zmc2V0IGluZGVudApzdHJ1 Y3QgQSB7fTsKCnN0cnVjdCBCIHsKICBBIGE7CiAgdmlydHVhbCB2b2lkIGYgKCk7Cn07Cgpz dHJ1Y3QgQyA6IHB1YmxpYyBCLCBwdWJsaWMgQSB7fTsKLkVkCkcrKyB3aWxsIHBsYWNlIHRo ZQouVmEgQQpiYXNlIGNsYXNzIG9mCi5WYSBDCmF0IGEgbm9uemVybyBvZmZzZXQ7IGl0IHNo b3VsZCBiZSBwbGFjZWQgYXQgb2Zmc2V0IHplcm8uCkcrKyBtaXN0YWtlbmx5IGJlbGlldmVz IHRoYXQgdGhlCi5WYSBBCmRhdGEgbWVtYmVyIG9mCi5WYSBCCmlzIGFscmVhZHkgYXQgb2Zm c2V0IHplcm8uCi5QcAouSXQKTmFtZXMgb2YgdGVtcGxhdGUgZnVuY3Rpb25zIHdob3NlIHR5 cGVzIGludm9sdmUKLlZhIHR5cGVuYW1lCm9yIHRlbXBsYXRlIHRlbXBsYXRlIHBhcmFtZXRl cnMgY2FuIGJlIG1hbmdsZWQgaW5jb3JyZWN0bHkuCi5QcAouQmQgLWxpdGVyYWwgLW9mZnNl dCBpbmRlbnQKdGVtcGxhdGUgXCpbTHRddHlwZW5hbWUgUVwqW0d0XQp2b2lkIGYodHlwZW5h bWUgUTo6WCkge30KCnRlbXBsYXRlIFwqW0x0XXRlbXBsYXRlIFwqW0x0XXR5cGVuYW1lXCpb R3RdIGNsYXNzIFFcKltHdF0Kdm9pZCBmKHR5cGVuYW1lIFFcKltMdF1pbnRcKltHdF06Olgp IHt9Ci5FZApJbnN0YW50aWF0aW9ucyBvZiB0aGVzZSB0ZW1wbGF0ZXMgbWF5IGJlIG1hbmds ZWQgaW5jb3JyZWN0bHkuCi5QcAouRWwKLkl0IEZsIFdjdG9yLWR0b3ItcHJpdmFjeSAoQysr IG9ubHkpCldhcm4gd2hlbiBhIGNsYXNzIHNlZW1zIHVudXNhYmxlIGJlY2F1c2UgYWxsIHRo ZSBjb25zdHJ1Y3RvcnMgb3IgZGVzdHJ1Y3RvcnMgaW4gdGhhdCBjbGFzcyBhcmUgcHJpdmF0 ZSwgYW5kIGl0IGhhcyBuZWl0aGVyIGZyaWVuZHMgbm9yIHB1YmxpYyBzdGF0aWMgbWVtYmVy IGZ1bmN0aW9ucy4KLlBwCi5JdCBGbCBXbm9uLXZpcnR1YWwtZHRvciAoQysrIG9ubHkpCldh cm4gd2hlbiBhIGNsYXNzIGFwcGVhcnMgdG8gYmUgcG9seW1vcnBoaWMsIHRoZXJlYnkgcmVx dWlyaW5nIGEgdmlydHVhbCBkZXN0cnVjdG9yLCB5ZXQgaXQgZGVjbGFyZXMgYSBub24tdmly dHVhbCBvbmUuClRoaXMgd2FybmluZyBpcyBlbmFibGVkIGJ5Ci5GbCBXYWxsIC4KLlBwCi5J dCBGbCBXcmVvcmRlciAoQysrIG9ubHkpCldhcm4gd2hlbiB0aGUgb3JkZXIgb2YgbWVtYmVy IGluaXRpYWxpemVycyBnaXZlbiBpbiB0aGUgY29kZSBkb2VzIG5vdCBtYXRjaCB0aGUgb3Jk ZXIgaW4gd2hpY2ggdGhleSBtdXN0IGJlIGV4ZWN1dGVkLgpGb3IgaW5zdGFuY2U6Ci5QcAou QmQgLWxpdGVyYWwgLW9mZnNldCBpbmRlbnQKc3RydWN0IEEgewogIGludCBpOwogIGludCBq OwogIEEoKTogaiAoMCksIGkgKDEpIHsgfQp9OwouRWQKVGhlIGNvbXBpbGVyIHdpbGwgcmVh cnJhbmdlIHRoZSBtZW1iZXIgaW5pdGlhbGl6ZXJzIGZvcgouU3kgaQphbmQKLlN5IGoKdG8g bWF0Y2ggdGhlIGRlY2xhcmF0aW9uIG9yZGVyIG9mIHRoZSBtZW1iZXJzLCBlbWl0dGluZyBh IHdhcm5pbmcgdG8gdGhhdCBlZmZlY3QuClRoaXMgd2FybmluZyBpcyBlbmFibGVkIGJ5Ci5G bCBXYWxsIC4KLlBwCi5FbApUaGUgZm9sbG93aW5nCi5GbCBXLi4uCm9wdGlvbnMgYXJlIG5v dCBhZmZlY3RlZCBieQouRmwgV2FsbCAuCi5QcAouQmwgLXRhZyAtd2lkdGggeHgKLkl0IEZs IFdlZmZjKysgKEMrKyBvbmx5KQpXYXJuIGFib3V0IHZpb2xhdGlvbnMgb2YgdGhlIGZvbGxv d2luZyBzdHlsZSBndWlkZWxpbmVzIGZyb20gU2NvdHQgTWV5ZXJzJwouRW0gRWZmZWN0aXZl IEMrKwpib29rOgouUHAKLkJsIC1idWxsZXQKLkl0Ckl0ZW0gMTE6IERlZmluZSBhIGNvcHkg Y29uc3RydWN0b3IgYW5kIGFuIGFzc2lnbm1lbnQgb3BlcmF0b3IgZm9yIGNsYXNzZXMgd2l0 aCBkeW5hbWljYWxseSBhbGxvY2F0ZWQgbWVtb3J5LgouUHAKLkl0Ckl0ZW0gMTI6IFByZWZl ciBpbml0aWFsaXphdGlvbiB0byBhc3NpZ25tZW50IGluIGNvbnN0cnVjdG9ycy4KLlBwCi5J dApJdGVtIDE0OiBNYWtlIGRlc3RydWN0b3JzIHZpcnR1YWwgaW4gYmFzZSBjbGFzc2VzLgou UHAKLkl0Ckl0ZW0gMTU6IEhhdmUKLlZhIG9wZXJhdG9yPQpyZXR1cm4gYSByZWZlcmVuY2Ug dG8KLlZhICp0aGlzIC4KLlBwCi5JdApJdGVtIDIzOiBEb24ndCB0cnkgdG8gcmV0dXJuIGEg cmVmZXJlbmNlIHdoZW4geW91IG11c3QgcmV0dXJuIGFuIG9iamVjdC4KLlBwCi5FbApBbHNv IHdhcm4gYWJvdXQgdmlvbGF0aW9ucyBvZiB0aGUgZm9sbG93aW5nIHN0eWxlIGd1aWRlbGlu ZXMgZnJvbSBTY290dCBNZXllcnMnCi5FbSBNb3JlIEVmZmVjdGl2ZSBDKysKYm9vazoKLlBw Ci5CbCAtYnVsbGV0Ci5JdApJdGVtIDY6IERpc3Rpbmd1aXNoIGJldHdlZW4gcHJlZml4IGFu ZCBwb3N0Zml4IGZvcm1zIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IG9wZXJhdG9ycy4K LlBwCi5JdApJdGVtIDc6IE5ldmVyIG92ZXJsb2FkCi5WYSAmJiAsCi5WYSB8fCAsCm9yCi5W YSAsIC4KLlBwCi5FbApXaGVuIHNlbGVjdGluZyB0aGlzIG9wdGlvbiwgYmUgYXdhcmUgdGhh dCB0aGUgc3RhbmRhcmQgbGlicmFyeSBoZWFkZXJzIGRvIG5vdCBvYmV5IGFsbCBvZiB0aGVz ZSBndWlkZWxpbmVzOyB1c2UKLlN5IGdyZXAgLXYKdG8gZmlsdGVyIG91dCB0aG9zZSB3YXJu aW5ncy4KLlBwCi5JdCBGbCBXbm8tZGVwcmVjYXRlZCAoQysrIG9ubHkpCkRvIG5vdCB3YXJu IGFib3V0IHVzYWdlIG9mIGRlcHJlY2F0ZWQgZmVhdHVyZXMuCi5QcAouSXQgRmwgV3N0cmlj dC1udWxsLXNlbnRpbmVsIChDKysgb25seSkKV2FybiBhbHNvIGFib3V0IHRoZSB1c2Ugb2Yg YW4gdW5jYXN0ZWQKLlZhIE5VTEwKYXMgc2VudGluZWwuCldoZW4gY29tcGlsaW5nIG9ubHkg d2l0aCBHQ0MgdGhpcyBpcyBhIHZhbGlkIHNlbnRpbmVsLCBhcwouVmEgTlVMTAppcyBkZWZp bmVkIHRvCi5WYSBfX251bGwgLgpBbHRob3VnaCBpdCBpcyBhIG51bGwgcG9pbnRlciBjb25z dGFudCBub3QgYSBudWxsIHBvaW50ZXIsIGl0IGlzIGd1YXJhbnRlZWQgdG8gb2YgdGhlIHNh bWUgc2l6ZSBhcyBhIHBvaW50ZXIuCkJ1dCB0aGlzIHVzZSBpcyBub3QgcG9ydGFibGUgYWNy b3NzIGRpZmZlcmVudCBjb21waWxlcnMuCi5QcAouSXQgRmwgV25vLW5vbi10ZW1wbGF0ZS1m cmllbmQgKEMrKyBvbmx5KQpEaXNhYmxlIHdhcm5pbmdzIHdoZW4gbm9uLXRlbXBsYXRpemVk IGZyaWVuZCBmdW5jdGlvbnMgYXJlIGRlY2xhcmVkIHdpdGhpbiBhIHRlbXBsYXRlLgpTaW5j ZSB0aGUgYWR2ZW50IG9mIGV4cGxpY2l0IHRlbXBsYXRlIHNwZWNpZmljYXRpb24gc3VwcG9y dCBpbiBHKyssIGlmIHRoZSBuYW1lIG9mIHRoZSBmcmllbmQgaXMgYW4gdW5xdWFsaWZpZWQt aWQgKGkuZS4sCi5TeSBmcmllbmQgZm9vKGludCkgKSAsCnRoZSBDKysgbGFuZ3VhZ2Ugc3Bl Y2lmaWNhdGlvbiBkZW1hbmRzIHRoYXQgdGhlIGZyaWVuZCBkZWNsYXJlIG9yIGRlZmluZSBh biBvcmRpbmFyeSwgbm9udGVtcGxhdGUgZnVuY3Rpb24uCihTZWN0aW9uIDE0LjUuMykuCkJl Zm9yZSBHKysgaW1wbGVtZW50ZWQgZXhwbGljaXQgc3BlY2lmaWNhdGlvbiwgdW5xdWFsaWZp ZWQtaWRzIGNvdWxkIGJlIGludGVycHJldGVkIGFzIGEgcGFydGljdWxhciBzcGVjaWFsaXph dGlvbiBvZiBhIHRlbXBsYXRpemVkIGZ1bmN0aW9uLgpCZWNhdXNlIHRoaXMgbm9uLWNvbmZv cm1pbmcgYmVoYXZpb3IgaXMgbm8gbG9uZ2VyIHRoZSBkZWZhdWx0IGJlaGF2aW9yIGZvciBH KyssCi5GbCBXbm9uLXRlbXBsYXRlLWZyaWVuZAphbGxvd3MgdGhlIGNvbXBpbGVyIHRvIGNo ZWNrIGV4aXN0aW5nIGNvZGUgZm9yIHBvdGVudGlhbCB0cm91YmxlIHNwb3RzIGFuZCBpcyBv biBieSBkZWZhdWx0LgpUaGlzIG5ldyBjb21waWxlciBiZWhhdmlvciBjYW4gYmUgdHVybmVk IG9mZiB3aXRoCi5GbCBXbm8tbm9uLXRlbXBsYXRlLWZyaWVuZAp3aGljaCBrZWVwcyB0aGUg Y29uZm9ybWFudCBjb21waWxlciBjb2RlIGJ1dCBkaXNhYmxlcyB0aGUgaGVscGZ1bCB3YXJu aW5nLgouUHAKLkl0IEZsIFdvbGQtc3R5bGUtY2FzdCAoQysrIG9ubHkpCldhcm4gaWYgYW4g b2xkLXN0eWxlIChDLXN0eWxlKSBjYXN0IHRvIGEgbm9uLXZvaWQgdHlwZSBpcyB1c2VkIHdp dGhpbiBhIEMrKyBwcm9ncmFtLgpUaGUgbmV3LXN0eWxlIGNhc3RzCi5TeSAoIGR5bmFtaWNf Y2FzdCAsCi5TeSBzdGF0aWNfY2FzdCAsCi5TeSByZWludGVycHJldF9jYXN0ICwKYW5kCi5T eSBjb25zdF9jYXN0ICkKYXJlIGxlc3MgdnVsbmVyYWJsZSB0byB1bmludGVuZGVkIGVmZmVj dHMgYW5kIG11Y2ggZWFzaWVyIHRvIHNlYXJjaCBmb3IuCi5QcAouSXQgRmwgV292ZXJsb2Fk ZWQtdmlydHVhbCAoQysrIG9ubHkpCldhcm4gd2hlbiBhIGZ1bmN0aW9uIGRlY2xhcmF0aW9u IGhpZGVzIHZpcnR1YWwgZnVuY3Rpb25zIGZyb20gYSBiYXNlIGNsYXNzLgpGb3IgZXhhbXBs ZSwgaW46Ci5QcAouQmQgLWxpdGVyYWwgLW9mZnNldCBpbmRlbnQKc3RydWN0IEEgewogIHZp cnR1YWwgdm9pZCBmKCk7Cn07CgpzdHJ1Y3QgQjogcHVibGljIEEgewogIHZvaWQgZihpbnQp Owp9OwouRWQKdGhlCi5WYSBBCmNsYXNzIHZlcnNpb24gb2YKLlZhIGYKaXMgaGlkZGVuIGlu Ci5WYSBCICwKYW5kIGNvZGUgbGlrZToKLlBwCi5CZCAtbGl0ZXJhbCAtb2Zmc2V0IGluZGVu dApCKiBiOwpiLVwqW0d0XWYoKTsKLkVkCndpbGwgZmFpbCB0byBjb21waWxlLgouUHAKLkl0 IEZsIFduby1wbWYtY29udmVyc2lvbnMgKEMrKyBvbmx5KQpEaXNhYmxlIHRoZSBkaWFnbm9z dGljIGZvciBjb252ZXJ0aW5nIGEgYm91bmQgcG9pbnRlciB0byBtZW1iZXIgZnVuY3Rpb24g dG8gYSBwbGFpbiBwb2ludGVyLgouUHAKLkl0IEZsIFdzaWduLXByb21vIChDKysgb25seSkK V2FybiB3aGVuIG92ZXJsb2FkIHJlc29sdXRpb24gY2hvb3NlcyBhIHByb21vdGlvbiBmcm9t IHVuc2lnbmVkIG9yIGVudW1lcmF0ZWQgdHlwZSB0byBhIHNpZ25lZCB0eXBlLCBvdmVyIGEg Y29udmVyc2lvbiB0byBhbiB1bnNpZ25lZCB0eXBlIG9mIHRoZSBzYW1lIHNpemUuClByZXZp b3VzIHZlcnNpb25zIG9mIEcrKyB3b3VsZCB0cnkgdG8gcHJlc2VydmUgdW5zaWduZWRuZXNz LCBidXQgdGhlIHN0YW5kYXJkIG1hbmRhdGVzIHRoZSBjdXJyZW50IGJlaGF2aW9yLgouUHAK LkJkIC1saXRlcmFsIC1vZmZzZXQgaW5kZW50CnN0cnVjdCBBIHsKICBvcGVyYXRvciBpbnQg KCk7CiAgQSYgb3BlcmF0b3IgPSAoaW50KTsKfTsKCm1haW4gKCkKewogIEEgYSxiOwogIGEg PSBiOwp9Ci5FZApJbiB0aGlzIGV4YW1wbGUsIEcrKyB3aWxsIHN5bnRoZXNpemUgYSBkZWZh dWx0Ci5TeSBBJiBvcGVyYXRvciA9IChjb25zdCBBJik7ICwKd2hpbGUgY2Zyb250IHdpbGwg dXNlIHRoZSB1c2VyLWRlZmluZWQKLlN5IG9wZXJhdG9yID0gLgouUHAKLkVsCi5TcyBPcHRp b25zIENvbnRyb2xsaW5nIE9iamVjdGl2ZS1DIGFuZCBPYmplY3RpdmUtQysrIERpYWxlY3Rz CihOT1RFOiBUaGlzIG1hbnVhbCBkb2VzIG5vdCBkZXNjcmliZSB0aGUgT2JqZWN0aXZlLUMg YW5kIE9iamVjdGl2ZS1DKysgbGFuZ3VhZ2VzIHRoZW1zZWx2ZXMuClNlZQouUHAKVGhpcyBz ZWN0aW9uIGRlc2NyaWJlcyB0aGUgY29tbWFuZC1saW5lIG9wdGlvbnMgdGhhdCBhcmUgb25s eSBtZWFuaW5nZnVsIGZvciBPYmplY3RpdmUtQyBhbmQgT2JqZWN0aXZlLUMrKyBwcm9ncmFt cywgYnV0IHlvdSBjYW4gYWxzbyB1c2UgbW9zdCBvZiB0aGUgbGFuZ3VhZ2UtaW5kZXBlbmRl bnQgR05VIGNvbXBpbGVyIG9wdGlvbnMuCkZvciBleGFtcGxlLCB5b3UgbWlnaHQgY29tcGls ZSBhIGZpbGUKLlZhIHNvbWVfY2xhc3MubQpsaWtlIHRoaXM6Ci5QcAouQmQgLWxpdGVyYWwg LW9mZnNldCBpbmRlbnQKZ2NjIC1nIC1mZ251LXJ1bnRpbWUgLU8gLWMgc29tZV9jbGFzcy5t Ci5FZApJbiB0aGlzIGV4YW1wbGUsCi5GbCBmZ251LXJ1bnRpbWUKaXMgYW4gb3B0aW9uIG1l YW50IG9ubHkgZm9yIE9iamVjdGl2ZS1DIGFuZCBPYmplY3RpdmUtQysrIHByb2dyYW1zOyB5 b3UgY2FuIHVzZSB0aGUgb3RoZXIgb3B0aW9ucyB3aXRoIGFueSBsYW5ndWFnZSBzdXBwb3J0 ZWQgYnkgR0NDLgouUHAKTm90ZSB0aGF0IHNpbmNlIE9iamVjdGl2ZS1DIGlzIGFuIGV4dGVu c2lvbiBvZiB0aGUgQyBsYW5ndWFnZSwgT2JqZWN0aXZlLUMgY29tcGlsYXRpb25zIG1heSBh bHNvIHVzZSBvcHRpb25zIHNwZWNpZmljIHRvIHRoZSBDIGZyb250LWVuZCAoZS5nLiwKLkZs IFd0cmFkaXRpb25hbCApIC4KU2ltaWxhcmx5LCBPYmplY3RpdmUtQysrIGNvbXBpbGF0aW9u cyBtYXkgdXNlIEMrKy1zcGVjaWZpYyBvcHRpb25zIChlLmcuLAouRmwgV2FiaSApIC4KLlBw CkhlcmUgaXMgYSBsaXN0IG9mIG9wdGlvbnMgdGhhdCBhcmUKLkVtIG9ubHkKZm9yIGNvbXBp bGluZyBPYmplY3RpdmUtQyBhbmQgT2JqZWN0aXZlLUMrKyBwcm9ncmFtczoKLlBwCi5CbCAt dGFnIC13aWR0aCB4eAouSXQgRmwgZmNvbnN0YW50LXN0cmluZy1jbGFzcz0gTnMgQXIgY2xh c3MtbmFtZQpVc2UKLkVtIGNsYXNzLW5hbWUKYXMgdGhlIG5hbWUgb2YgdGhlIGNsYXNzIHRv IGluc3RhbnRpYXRlIGZvciBlYWNoIGxpdGVyYWwgc3RyaW5nIHNwZWNpZmllZCB3aXRoIHRo ZSBzeW50YXgKLlZhIEAiLi4uIiAuClRoZSBkZWZhdWx0IGNsYXNzIG5hbWUgaXMKLlZhIE5Y Q29uc3RhbnRTdHJpbmcKaWYgdGhlIEdOVSBydW50aW1lIGlzIGJlaW5nIHVzZWQsIGFuZAou VmEgTlNDb25zdGFudFN0cmluZwppZiB0aGUgTmVYVCBydW50aW1lIGlzIGJlaW5nIHVzZWQg KHNlZSBiZWxvdykuClRoZQouRmwgZmNvbnN0YW50LWNmc3RyaW5ncwpvcHRpb24sIGlmIGFs c28gcHJlc2VudCwgd2lsbCBvdmVycmlkZSB0aGUKLkZsIGZjb25zdGFudC1zdHJpbmctY2xh c3MKc2V0dGluZyBhbmQgY2F1c2UKLlZhIEAiLi4uIgpsaXRlcmFscyB0byBiZSBsYWlkIG91 dCBhcyBjb25zdGFudCBDb3JlRm91bmRhdGlvbiBzdHJpbmdzLgouUHAKLkl0IEZsIGZnbnUt cnVudGltZQpHZW5lcmF0ZSBvYmplY3QgY29kZSBjb21wYXRpYmxlIHdpdGggdGhlIHN0YW5k YXJkIEdOVSBPYmplY3RpdmUtQyBydW50aW1lLgpUaGlzIGlzIHRoZSBkZWZhdWx0IGZvciBt b3N0IHR5cGVzIG9mIHN5c3RlbXMuCi5QcAouSXQgRmwgZm5leHQtcnVudGltZQpHZW5lcmF0 ZSBvdXRwdXQgY29tcGF0aWJsZSB3aXRoIHRoZSBOZVhUIHJ1bnRpbWUuClRoaXMgaXMgdGhl IGRlZmF1bHQgZm9yIE5lWFQtYmFzZWQgc3lzdGVtcywgaW5jbHVkaW5nIERhcndpbiBhbmQg TWFjIE9TIFguClRoZSBtYWNybwouVmEgX19ORVhUX1JVTlRJTUVfXwppcyBwcmVkZWZpbmVk IGlmIChhbmQgb25seSBpZikgdGhpcyBvcHRpb24gaXMgdXNlZC4KLlBwCi5JdCBGbCBmbm8t bmlsLXJlY2VpdmVycwpBc3N1bWUgdGhhdCBhbGwgT2JqZWN0aXZlLUMgbWVzc2FnZSBkaXNw YXRjaGVzIChlLmcuLAouVmEgW3JlY2VpdmVyIG1lc3NhZ2U6YXJnXSApCmluIHRoaXMgdHJh bnNsYXRpb24gdW5pdCBlbnN1cmUgdGhhdCB0aGUgcmVjZWl2ZXIgaXMgbm90Ci5WYSBuaWwg LgpUaGlzIGFsbG93cyBmb3IgbW9yZSBlZmZpY2llbnQgZW50cnkgcG9pbnRzIGluIHRoZSBy dW50aW1lIHRvIGJlIHVzZWQuCkN1cnJlbnRseSwgdGhpcyBvcHRpb24gaXMgb25seSBhdmFp bGFibGUgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgTmVYVCBydW50aW1lIG9uIE1hYyBPUyBY IDEwLjMgYW5kIGxhdGVyLgouUHAKLkl0IEZsIGZvYmpjLWNhbGwtY3h4LWNkdG9ycwpGb3Ig ZWFjaCBPYmplY3RpdmUtQyBjbGFzcywgY2hlY2sgaWYgYW55IG9mIGl0cyBpbnN0YW5jZSB2 YXJpYWJsZXMgaXMgYSBDKysgb2JqZWN0IHdpdGggYSBub24tdHJpdmlhbCBkZWZhdWx0IGNv bnN0cnVjdG9yLgpJZiBzbywgc3ludGhlc2l6ZSBhIHNwZWNpYWwKLlZhIC0gKGlkKSAuY3h4 X2NvbnN0cnVjdAppbnN0YW5jZSBtZXRob2QgdGhhdCB3aWxsIHJ1biBub24tdHJpdmlhbCBk ZWZhdWx0IGNvbnN0cnVjdG9ycyBvbiBhbnkgc3VjaCBpbnN0YW5jZSB2YXJpYWJsZXMsIGlu IG9yZGVyLCBhbmQgdGhlbiByZXR1cm4KLlZhIHNlbGYgLgpTaW1pbGFybHksIGNoZWNrIGlm IGFueSBpbnN0YW5jZSB2YXJpYWJsZSBpcyBhIEMrKyBvYmplY3Qgd2l0aCBhIG5vbi10cml2 aWFsIGRlc3RydWN0b3IsIGFuZCBpZiBzbywgc3ludGhlc2l6ZSBhIHNwZWNpYWwKLlZhIC0g KHZvaWQpIC5jeHhfZGVzdHJ1Y3QKbWV0aG9kIHRoYXQgd2lsbCBydW4gYWxsIHN1Y2ggZGVm YXVsdCBkZXN0cnVjdG9ycywgaW4gcmV2ZXJzZSBvcmRlci4KLlBwClRoZQouVmEgLSAoaWQp IC5jeHhfY29uc3RydWN0CmFuZC9vcgouVmEgLSAodm9pZCkgLmN4eF9kZXN0cnVjdAptZXRo b2RzIHRodXNseSBnZW5lcmF0ZWQgd2lsbCBvbmx5IG9wZXJhdGUgb24gaW5zdGFuY2UgdmFy aWFibGVzIGRlY2xhcmVkIGluIHRoZSBjdXJyZW50IE9iamVjdGl2ZS1DIGNsYXNzLCBhbmQg bm90IHRob3NlIGluaGVyaXRlZCBmcm9tIHN1cGVyY2xhc3Nlcy4KSXQgaXMgdGhlIHJlc3Bv bnNpYmlsaXR5IG9mIHRoZSBPYmplY3RpdmUtQyBydW50aW1lIHRvIGludm9rZSBhbGwgc3Vj aCBtZXRob2RzIGluIGFuIG9iamVjdCdzIGluaGVyaXRhbmNlIGhpZXJhcmNoeS4KVGhlCi5W YSAtIChpZCkgLmN4eF9jb25zdHJ1Y3QKbWV0aG9kcyB3aWxsIGJlIGludm9rZWQgYnkgdGhl IHJ1bnRpbWUgaW1tZWRpYXRlbHkgYWZ0ZXIgYSBuZXcgb2JqZWN0IGluc3RhbmNlIGlzIGFs bG9jYXRlZDsgdGhlCi5WYSAtICh2b2lkKSAuY3h4X2Rlc3RydWN0Cm1ldGhvZHMgd2lsbCBi ZSBpbnZva2VkIGltbWVkaWF0ZWx5IGJlZm9yZSB0aGUgcnVudGltZSBkZWFsbG9jYXRlcyBh biBvYmplY3QgaW5zdGFuY2UuCi5QcApBcyBvZiB0aGlzIHdyaXRpbmcsIG9ubHkgdGhlIE5l WFQgcnVudGltZSBvbiBNYWMgT1MgWCAxMC40IGFuZCBsYXRlciBoYXMgc3VwcG9ydCBmb3Ig aW52b2tpbmcgdGhlCi5WYSAtIChpZCkgLmN4eF9jb25zdHJ1Y3QKYW5kCi5WYSAtICh2b2lk KSAuY3h4X2Rlc3RydWN0Cm1ldGhvZHMuCi5QcAouSXQgRmwgZm9iamMtZGlyZWN0LWRpc3Bh dGNoCkFsbG93IGZhc3QganVtcHMgdG8gdGhlIG1lc3NhZ2UgZGlzcGF0Y2hlci4KT24gRGFy d2luIHRoaXMgaXMgYWNjb21wbGlzaGVkIHZpYSB0aGUgY29tbSBwYWdlLgouUHAKLkl0IEZs IGZvYmpjLWV4Y2VwdGlvbnMKRW5hYmxlIHN5bnRhY3RpYyBzdXBwb3J0IGZvciBzdHJ1Y3R1 cmVkIGV4Y2VwdGlvbiBoYW5kbGluZyBpbiBPYmplY3RpdmUtQywgc2ltaWxhciB0byB3aGF0 IGlzIG9mZmVyZWQgYnkgQysrIGFuZCBKYXZhLgpDdXJyZW50bHksIHRoaXMgb3B0aW9uIGlz IG9ubHkgYXZhaWxhYmxlIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIE5lWFQgcnVudGltZSBv biBNYWMgT1MgWCAxMC4zIGFuZCBsYXRlci4KLlBwCi5CZCAtbGl0ZXJhbCAtb2Zmc2V0IGlu ZGVudAogIEB0cnkgewogICAgLi4uCiAgICAgICBAdGhyb3cgZXhwcjsKICAgIC4uLgogIH0K ICBAY2F0Y2ggKEFuT2JqQ0NsYXNzICpleGMpIHsKICAgIC4uLgogICAgICBAdGhyb3cgZXhw cjsKICAgIC4uLgogICAgICBAdGhyb3c7CiAgICAuLi4KICB9CiAgQGNhdGNoIChBbm90aGVy Q2xhc3MgKmV4YykgewogICAgLi4uCiAgfQogIEBjYXRjaCAoaWQgYWxsT3RoZXJzKSB7CiAg ICAuLi4KICB9CiAgQGZpbmFsbHkgewogICAgLi4uCiAgICAgIEB0aHJvdyBleHByOwogICAg Li4uCiAgfQouRWQKVGhlCi5WYSBAdGhyb3cKc3RhdGVtZW50IG1heSBhcHBlYXIgYW55d2hl cmUgaW4gYW4gT2JqZWN0aXZlLUMgb3IgT2JqZWN0aXZlLUMrKyBwcm9ncmFtOyB3aGVuIHVz ZWQgaW5zaWRlIG9mIGEKLlZhIEBjYXRjaApibG9jaywgdGhlCi5WYSBAdGhyb3cKbWF5IGFw cGVhciB3aXRob3V0IGFuIGFyZ3VtZW50IChhcyBzaG93biBhYm92ZSksIGluIHdoaWNoIGNh c2UgdGhlIG9iamVjdCBjYXVnaHQgYnkgdGhlCi5WYSBAY2F0Y2gKd2lsbCBiZSByZXRocm93 bi4KLlBwCk5vdGUgdGhhdCBvbmx5IChwb2ludGVycyB0bykgT2JqZWN0aXZlLUMgb2JqZWN0 cyBtYXkgYmUgdGhyb3duIGFuZCBjYXVnaHQgdXNpbmcgdGhpcyBzY2hlbWUuCldoZW4gYW4g b2JqZWN0IGlzIHRocm93biwgaXQgd2lsbCBiZSBjYXVnaHQgYnkgdGhlIG5lYXJlc3QKLlZh IEBjYXRjaApjbGF1c2UgY2FwYWJsZSBvZiBoYW5kbGluZyBvYmplY3RzIG9mIHRoYXQgdHlw ZSwgYW5hbG9nb3VzbHkgdG8gaG93Ci5WYSBjYXRjaApibG9ja3Mgd29yayBpbiBDKysgYW5k IEphdmEuCkEKLlZhIEBjYXRjaChpZCAuLi4pCmNsYXVzZSAoYXMgc2hvd24gYWJvdmUpIG1h eSBhbHNvIGJlIHByb3ZpZGVkIHRvIGNhdGNoIGFueSBhbmQgYWxsIE9iamVjdGl2ZS1DIGV4 Y2VwdGlvbnMgbm90IGNhdWdodCBieSBwcmV2aW91cwouVmEgQGNhdGNoCmNsYXVzZXMgKGlm IGFueSkuCi5QcApUaGUKLlZhIEBmaW5hbGx5CmNsYXVzZSwgaWYgcHJlc2VudCwgd2lsbCBi ZSBleGVjdXRlZCB1cG9uIGV4aXQgZnJvbSB0aGUgaW1tZWRpYXRlbHkgcHJlY2VkaW5nCi5W YSBAdHJ5IC4uLiBAY2F0Y2gKc2VjdGlvbi4KVGhpcyB3aWxsIGhhcHBlbiByZWdhcmRsZXNz IG9mIHdoZXRoZXIgYW55IGV4Y2VwdGlvbnMgYXJlIHRocm93biwgY2F1Z2h0IG9yIHJldGhy b3duIGluc2lkZSB0aGUKLlZhIEB0cnkgLi4uIEBjYXRjaApzZWN0aW9uLCBhbmFsb2dvdXNs eSB0byB0aGUgYmVoYXZpb3Igb2YgdGhlCi5WYSBmaW5hbGx5CmNsYXVzZSBpbiBKYXZhLgou UHAKVGhlcmUgYXJlIHNldmVyYWwgY2F2ZWF0cyB0byB1c2luZyB0aGUgbmV3IGV4Y2VwdGlv biBtZWNoYW5pc206Ci5QcAouQmwgLWJ1bGxldAouSXQKQWx0aG91Z2ggY3VycmVudGx5IGRl c2lnbmVkIHRvIGJlIGJpbmFyeSBjb21wYXRpYmxlIHdpdGgKLlZhIE5TX0hBTkRMRVIKLXN0 eWxlIGlkaW9tcyBwcm92aWRlZCBieSB0aGUKLlZhIE5TRXhjZXB0aW9uCmNsYXNzLCB0aGUg bmV3IGV4Y2VwdGlvbnMgY2FuIG9ubHkgYmUgdXNlZCBvbiBNYWMgT1MgWCAxMC4zIChQYW50 aGVyKSBhbmQgbGF0ZXIgc3lzdGVtcywgZHVlIHRvIGFkZGl0aW9uYWwgZnVuY3Rpb25hbGl0 eSBuZWVkZWQgaW4gdGhlIChOZVhUKSBPYmplY3RpdmUtQyBydW50aW1lLgouUHAKLkl0CkFz IG1lbnRpb25lZCBhYm92ZSwgdGhlIG5ldyBleGNlcHRpb25zIGRvIG5vdCBzdXBwb3J0IGhh bmRsaW5nIHR5cGVzIG90aGVyIHRoYW4gT2JqZWN0aXZlLUMgb2JqZWN0cy4KRnVydGhlcm1v cmUsIHdoZW4gdXNlZCBmcm9tIE9iamVjdGl2ZS1DKyssIHRoZSBPYmplY3RpdmUtQyBleGNl cHRpb24gbW9kZWwgZG9lcyBub3QgaW50ZXJvcGVyYXRlIHdpdGggQysrIGV4Y2VwdGlvbnMg YXQgdGhpcyB0aW1lLgpUaGlzIG1lYW5zIHlvdSBjYW5ub3QKLlZhIEB0aHJvdwphbiBleGNl cHRpb24gZnJvbSBPYmplY3RpdmUtQyBhbmQKLlZhIGNhdGNoCml0IGluIEMrKywgb3Igdmlj ZSB2ZXJzYSAoaS5lLiwKLlZhIHRocm93IC4uLiBAY2F0Y2ggKSAuCi5QcAouRWwKVGhlCi5G bCBmb2JqYy1leGNlcHRpb25zCnN3aXRjaCBhbHNvIGVuYWJsZXMgdGhlIHVzZSBvZiBzeW5j aHJvbml6YXRpb24gYmxvY2tzIGZvciB0aHJlYWQtc2FmZSBleGVjdXRpb246Ci5QcAouQmQg LWxpdGVyYWwgLW9mZnNldCBpbmRlbnQKICBAc3luY2hyb25pemVkIChPYmpDQ2xhc3MgKmd1 YXJkKSB7CiAgICAuLi4KICB9Ci5FZApVcG9uIGVudGVyaW5nIHRoZQouVmEgQHN5bmNocm9u aXplZApibG9jaywgYSB0aHJlYWQgb2YgZXhlY3V0aW9uIHNoYWxsIGZpcnN0IGNoZWNrIHdo ZXRoZXIgYSBsb2NrIGhhcyBiZWVuIHBsYWNlZCBvbiB0aGUgY29ycmVzcG9uZGluZwouVmEg Z3VhcmQKb2JqZWN0IGJ5IGFub3RoZXIgdGhyZWFkLgpJZiBpdCBoYXMsIHRoZSBjdXJyZW50 IHRocmVhZCBzaGFsbCB3YWl0IHVudGlsIHRoZSBvdGhlciB0aHJlYWQgcmVsaW5xdWlzaGVz IGl0cyBsb2NrLgpPbmNlCi5WYSBndWFyZApiZWNvbWVzIGF2YWlsYWJsZSwgdGhlIGN1cnJl bnQgdGhyZWFkIHdpbGwgcGxhY2UgaXRzIG93biBsb2NrIG9uIGl0LCBleGVjdXRlIHRoZSBj b2RlIGNvbnRhaW5lZCBpbiB0aGUKLlZhIEBzeW5jaHJvbml6ZWQKYmxvY2ssIGFuZCBmaW5h bGx5IHJlbGlucXVpc2ggdGhlIGxvY2sgKHRoZXJlYnkgbWFraW5nCi5WYSBndWFyZAphdmFp bGFibGUgdG8gb3RoZXIgdGhyZWFkcykuCi5QcApVbmxpa2UgSmF2YSwgT2JqZWN0aXZlLUMg ZG9lcyBub3QgYWxsb3cgZm9yIGVudGlyZSBtZXRob2RzIHRvIGJlIG1hcmtlZAouVmEgQHN5 bmNocm9uaXplZCAuCk5vdGUgdGhhdCB0aHJvd2luZyBleGNlcHRpb25zIG91dCBvZgouVmEg QHN5bmNocm9uaXplZApibG9ja3MgaXMgYWxsb3dlZCwgYW5kIHdpbGwgY2F1c2UgdGhlIGd1 YXJkaW5nIG9iamVjdCB0byBiZSB1bmxvY2tlZCBwcm9wZXJseS4KLlBwCi5JdCBGbCBmb2Jq Yy1nYwpFbmFibGUgZ2FyYmFnZSBjb2xsZWN0aW9uIChHQykgaW4gT2JqZWN0aXZlLUMgYW5k IE9iamVjdGl2ZS1DKysgcHJvZ3JhbXMuCi5QcAouSXQgRmwgZnJlcGxhY2Utb2JqYy1jbGFz c2VzCkVtaXQgYSBzcGVjaWFsIG1hcmtlciBpbnN0cnVjdGluZwouU3kgbGQoMSkKbm90IHRv IHN0YXRpY2FsbHkgbGluayBpbiB0aGUgcmVzdWx0aW5nIG9iamVjdCBmaWxlLCBhbmQgYWxs b3cKLlN5IGR5bGQoMSkKdG8gbG9hZCBpdCBpbiBhdCBydW4gdGltZSBpbnN0ZWFkLgpUaGlz IGlzIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgRml4LWFuZC1Db250aW51ZSBkZWJ1 Z2dpbmcgbW9kZSwgd2hlcmUgdGhlIG9iamVjdCBmaWxlIGluIHF1ZXN0aW9uIG1heSBiZSBy ZWNvbXBpbGVkIGFuZCBkeW5hbWljYWxseSByZWxvYWRlZCBpbiB0aGUgY291cnNlIG9mIHBy b2dyYW0gZXhlY3V0aW9uLCB3aXRob3V0IHRoZSBuZWVkIHRvIHJlc3RhcnQgdGhlIHByb2dy YW0gaXRzZWxmLgpDdXJyZW50bHksIEZpeC1hbmQtQ29udGludWUgZnVuY3Rpb25hbGl0eSBp cyBvbmx5IGF2YWlsYWJsZSBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBOZVhUIHJ1bnRpbWUg b24gTWFjIE9TIFggMTAuMyBhbmQgbGF0ZXIuCi5QcAouSXQgRmwgZnplcm8tbGluawpXaGVu IGNvbXBpbGluZyBmb3IgdGhlIE5lWFQgcnVudGltZSwgdGhlIGNvbXBpbGVyIG9yZGluYXJp bHkgcmVwbGFjZXMgY2FsbHMgdG8KLlZhIG9iamNfZ2V0Q2xhc3MoIi4uLiIpCih3aGVuIHRo ZSBuYW1lIG9mIHRoZSBjbGFzcyBpcyBrbm93biBhdCBjb21waWxlIHRpbWUpIHdpdGggc3Rh dGljIGNsYXNzIHJlZmVyZW5jZXMgdGhhdCBnZXQgaW5pdGlhbGl6ZWQgYXQgbG9hZCB0aW1l LCB3aGljaCBpbXByb3ZlcyBydW4tdGltZSBwZXJmb3JtYW5jZS4KU3BlY2lmeWluZyB0aGUK LkZsIGZ6ZXJvLWxpbmsKZmxhZyBzdXBwcmVzc2VzIHRoaXMgYmVoYXZpb3IgYW5kIGNhdXNl cyBjYWxscyB0bwouVmEgb2JqY19nZXRDbGFzcygiLi4uIikKdG8gYmUgcmV0YWluZWQuClRo aXMgaXMgdXNlZnVsIGluIFplcm8tTGluayBkZWJ1Z2dpbmcgbW9kZSwgc2luY2UgaXQgYWxs b3dzIGZvciBpbmRpdmlkdWFsIGNsYXNzIGltcGxlbWVudGF0aW9ucyB0byBiZSBtb2RpZmll ZCBkdXJpbmcgcHJvZ3JhbSBleGVjdXRpb24uCi5QcAouSXQgRmwgZ2VuLWRlY2xzCkR1bXAg aW50ZXJmYWNlIGRlY2xhcmF0aW9ucyBmb3IgYWxsIGNsYXNzZXMgc2VlbiBpbiB0aGUgc291 cmNlIGZpbGUgdG8gYSBmaWxlIG5hbWVkCi5QYSBzb3VyY2VuYW1lLmRlY2wgLgouUHAKLkl0 IEZsIFdhc3NpZ24taW50ZXJjZXB0Cldhcm4gd2hlbmV2ZXIgYW4gT2JqZWN0aXZlLUMgYXNz aWdubWVudCBpcyBiZWluZyBpbnRlcmNlcHRlZCBieSB0aGUgZ2FyYmFnZSBjb2xsZWN0b3Iu Ci5QcAouSXQgRmwgV25vLXByb3RvY29sCklmIGEgY2xhc3MgaXMgZGVjbGFyZWQgdG8gaW1w bGVtZW50IGEgcHJvdG9jb2wsIGEgd2FybmluZyBpcyBpc3N1ZWQgZm9yIGV2ZXJ5IG1ldGhv ZCBpbiB0aGUgcHJvdG9jb2wgdGhhdCBpcyBub3QgaW1wbGVtZW50ZWQgYnkgdGhlIGNsYXNz LgpUaGUgZGVmYXVsdCBiZWhhdmlvciBpcyB0byBpc3N1ZSBhIHdhcm5pbmcgZm9yIGV2ZXJ5 IG1ldGhvZCBub3QgZXhwbGljaXRseSBpbXBsZW1lbnRlZCBpbiB0aGUgY2xhc3MsIGV2ZW4g aWYgYSBtZXRob2QgaW1wbGVtZW50YXRpb24gaXMgaW5oZXJpdGVkIGZyb20gdGhlIHN1cGVy Y2xhc3MuCklmIHlvdSB1c2UgdGhlCi5GbCBXbm8tcHJvdG9jb2wKb3B0aW9uLCB0aGVuIG1l dGhvZHMgaW5oZXJpdGVkIGZyb20gdGhlIHN1cGVyY2xhc3MgYXJlIGNvbnNpZGVyZWQgdG8g YmUgaW1wbGVtZW50ZWQsIGFuZCBubyB3YXJuaW5nIGlzIGlzc3VlZCBmb3IgdGhlbS4KLlBw Ci5JdCBGbCBXc2VsZWN0b3IKV2FybiBpZiBtdWx0aXBsZSBtZXRob2RzIG9mIGRpZmZlcmVu dCB0eXBlcyBmb3IgdGhlIHNhbWUgc2VsZWN0b3IgYXJlIGZvdW5kIGR1cmluZyBjb21waWxh dGlvbi4KVGhlIGNoZWNrIGlzIHBlcmZvcm1lZCBvbiB0aGUgbGlzdCBvZiBtZXRob2RzIGlu IHRoZSBmaW5hbCBzdGFnZSBvZiBjb21waWxhdGlvbi4KQWRkaXRpb25hbGx5LCBhIGNoZWNr IGlzIHBlcmZvcm1lZCBmb3IgZWFjaCBzZWxlY3RvciBhcHBlYXJpbmcgaW4gYQouVmEgQHNl bGVjdG9yKC4uLikKZXhwcmVzc2lvbiwgYW5kIGEgY29ycmVzcG9uZGluZyBtZXRob2QgZm9y IHRoYXQgc2VsZWN0b3IgaGFzIGJlZW4gZm91bmQgZHVyaW5nIGNvbXBpbGF0aW9uLgpCZWNh dXNlIHRoZXNlIGNoZWNrcyBzY2FuIHRoZSBtZXRob2QgdGFibGUgb25seSBhdCB0aGUgZW5k IG9mIGNvbXBpbGF0aW9uLCB0aGVzZSB3YXJuaW5ncyBhcmUgbm90IHByb2R1Y2VkIGlmIHRo ZSBmaW5hbCBzdGFnZSBvZiBjb21waWxhdGlvbiBpcyBub3QgcmVhY2hlZCwgZm9yIGV4YW1w bGUgYmVjYXVzZSBhbiBlcnJvciBpcyBmb3VuZCBkdXJpbmcgY29tcGlsYXRpb24sIG9yIGJl Y2F1c2UgdGhlCi5GbCBmc3ludGF4LW9ubHkKb3B0aW9uIGlzIGJlaW5nIHVzZWQuCi5QcAou SXQgRmwgV3N0cmljdC1zZWxlY3Rvci1tYXRjaApXYXJuIGlmIG11bHRpcGxlIG1ldGhvZHMg d2l0aCBkaWZmZXJpbmcgYXJndW1lbnQgYW5kL29yIHJldHVybiB0eXBlcyBhcmUgZm91bmQg Zm9yIGEgZ2l2ZW4gc2VsZWN0b3Igd2hlbiBhdHRlbXB0aW5nIHRvIHNlbmQgYSBtZXNzYWdl IHVzaW5nIHRoaXMgc2VsZWN0b3IgdG8gYSByZWNlaXZlciBvZiB0eXBlCi5WYSBpZApvcgou VmEgQ2xhc3MgLgpXaGVuIHRoaXMgZmxhZyBpcyBvZmYgKHdoaWNoIGlzIHRoZSBkZWZhdWx0 IGJlaGF2aW9yKSwgdGhlIGNvbXBpbGVyIHdpbGwgb21pdCBzdWNoIHdhcm5pbmdzIGlmIGFu eSBkaWZmZXJlbmNlcyBmb3VuZCBhcmUgY29uZmluZWQgdG8gdHlwZXMgd2hpY2ggc2hhcmUg dGhlIHNhbWUgc2l6ZSBhbmQgYWxpZ25tZW50LgouUHAKLkl0IEZsIFd1bmRlY2xhcmVkLXNl bGVjdG9yCldhcm4gaWYgYQouVmEgQHNlbGVjdG9yKC4uLikKZXhwcmVzc2lvbiByZWZlcnJp bmcgdG8gYW4gdW5kZWNsYXJlZCBzZWxlY3RvciBpcyBmb3VuZC4KQSBzZWxlY3RvciBpcyBj b25zaWRlcmVkIHVuZGVjbGFyZWQgaWYgbm8gbWV0aG9kIHdpdGggdGhhdCBuYW1lIGhhcyBi ZWVuIGRlY2xhcmVkIGJlZm9yZSB0aGUKLlZhIEBzZWxlY3RvciguLi4pCmV4cHJlc3Npb24s IGVpdGhlciBleHBsaWNpdGx5IGluIGFuCi5WYSBAaW50ZXJmYWNlCm9yCi5WYSBAcHJvdG9j b2wKZGVjbGFyYXRpb24sIG9yIGltcGxpY2l0bHkgaW4gYW4KLlZhIEBpbXBsZW1lbnRhdGlv bgpzZWN0aW9uLgpUaGlzIG9wdGlvbiBhbHdheXMgcGVyZm9ybXMgaXRzIGNoZWNrcyBhcyBz b29uIGFzIGEKLlZhIEBzZWxlY3RvciguLi4pCmV4cHJlc3Npb24gaXMgZm91bmQsIHdoaWxl Ci5GbCBXc2VsZWN0b3IKb25seSBwZXJmb3JtcyBpdHMgY2hlY2tzIGluIHRoZSBmaW5hbCBz dGFnZSBvZiBjb21waWxhdGlvbi4KVGhpcyBhbHNvIGVuZm9yY2VzIHRoZSBjb2Rpbmcgc3R5 bGUgY29udmVudGlvbiB0aGF0IG1ldGhvZHMgYW5kIHNlbGVjdG9ycyBtdXN0IGJlIGRlY2xh cmVkIGJlZm9yZSBiZWluZyB1c2VkLgouUHAKLkl0IEZsIHByaW50LW9iamMtcnVudGltZS1p bmZvCkdlbmVyYXRlIEMgaGVhZGVyIGRlc2NyaWJpbmcgdGhlIGxhcmdlc3Qgc3RydWN0dXJl IHRoYXQgaXMgcGFzc2VkIGJ5IHZhbHVlLCBpZiBhbnkuCi5QcAouRWwKLlNzIE9wdGlvbnMg dG8gQ29udHJvbCBEaWFnbm9zdGljIE1lc3NhZ2VzIEZvcm1hdHRpbmcKVHJhZGl0aW9uYWxs eSwgZGlhZ25vc3RpYyBtZXNzYWdlcyBoYXZlIGJlZW4gZm9ybWF0dGVkIGlycmVzcGVjdGl2 ZSBvZiB0aGUgb3V0cHV0IGRldmljZSdzIGFzcGVjdCAoZS5nLiBpdHMgd2lkdGgsIC4uLiku ClRoZSBvcHRpb25zIGRlc2NyaWJlZCBiZWxvdyBjYW4gYmUgdXNlZCB0byBjb250cm9sIHRo ZSBkaWFnbm9zdGljIG1lc3NhZ2VzIGZvcm1hdHRpbmcgYWxnb3JpdGhtLCBlLmcuIGhvdyBt YW55IGNoYXJhY3RlcnMgcGVyIGxpbmUsIGhvdyBvZnRlbiBzb3VyY2UgbG9jYXRpb24gaW5m b3JtYXRpb24gc2hvdWxkIGJlIHJlcG9ydGVkLgpSaWdodCBub3csIG9ubHkgdGhlIEMrKyBm cm9udCBlbmQgY2FuIGhvbm9yIHRoZXNlIG9wdGlvbnMuCkhvd2V2ZXIgaXQgaXMgZXhwZWN0 ZWQsIGluIHRoZSBuZWFyIGZ1dHVyZSwgdGhhdCB0aGUgcmVtYWluaW5nIGZyb250IGVuZHMg d291bGQgYmUgYWJsZSB0byBkaWdlc3QgdGhlbSBjb3JyZWN0bHkuCi5QcAouQmwgLXRhZyAt d2lkdGggeHgKLkl0IEZsIGZtZXNzYWdlLWxlbmd0aD0gTnMgQXIgbgpUcnkgdG8gZm9ybWF0 IGVycm9yIG1lc3NhZ2VzIHNvIHRoYXQgdGhleSBmaXQgb24gbGluZXMgb2YgYWJvdXQKLkVt IG4KY2hhcmFjdGVycy4KVGhlIGRlZmF1bHQgaXMgNzIgY2hhcmFjdGVycyBmb3IKLk5tIGcr KwphbmQgMCBmb3IgdGhlIHJlc3Qgb2YgdGhlIGZyb250IGVuZHMgc3VwcG9ydGVkIGJ5IEdD Qy4KSWYKLkVtIG4KaXMgemVybywgdGhlbiBubyBsaW5lLXdyYXBwaW5nIHdpbGwgYmUgZG9u ZTsgZWFjaCBlcnJvciBtZXNzYWdlIHdpbGwgYXBwZWFyIG9uIGEgc2luZ2xlIGxpbmUuCi5Q cAouSXQgRmwgZmRpYWdub3N0aWNzLXNob3ctbG9jYXRpb249b25jZQpPbmx5IG1lYW5pbmdm dWwgaW4gbGluZS13cmFwcGluZyBtb2RlLgpJbnN0cnVjdHMgdGhlIGRpYWdub3N0aWMgbWVz c2FnZXMgcmVwb3J0ZXIgdG8gZW1pdAouRW0gb25jZQpzb3VyY2UgbG9jYXRpb24gaW5mb3Jt YXRpb247IHRoYXQgaXMsIGluIGNhc2UgdGhlIG1lc3NhZ2UgaXMgdG9vIGxvbmcgdG8gZml0 IG9uIGEgc2luZ2xlIHBoeXNpY2FsIGxpbmUgYW5kIGhhcyB0byBiZSB3cmFwcGVkLCB0aGUg c291cmNlIGxvY2F0aW9uIHdvbid0IGJlIGVtaXR0ZWQgKGFzIHByZWZpeCkgYWdhaW4sIG92 ZXIgYW5kIG92ZXIsIGluIHN1YnNlcXVlbnQgY29udGludWF0aW9uIGxpbmVzLgpUaGlzIGlz IHRoZSBkZWZhdWx0IGJlaGF2aW9yLgouUHAKLkl0IEZsIGZkaWFnbm9zdGljcy1zaG93LWxv Y2F0aW9uPWV2ZXJ5LWxpbmUKT25seSBtZWFuaW5nZnVsIGluIGxpbmUtd3JhcHBpbmcgbW9k ZS4KSW5zdHJ1Y3RzIHRoZSBkaWFnbm9zdGljIG1lc3NhZ2VzIHJlcG9ydGVyIHRvIGVtaXQg dGhlIHNhbWUgc291cmNlIGxvY2F0aW9uIGluZm9ybWF0aW9uIChhcyBwcmVmaXgpIGZvciBw aHlzaWNhbCBsaW5lcyB0aGF0IHJlc3VsdCBmcm9tIHRoZSBwcm9jZXNzIG9mIGJyZWFraW5n IGEgbWVzc2FnZSB3aGljaCBpcyB0b28gbG9uZyB0byBmaXQgb24gYSBzaW5nbGUgbGluZS4K LlBwCi5JdCBGbCBmZGlhZ25vc3RpY3Mtc2hvdy1vcHRpb25zClRoaXMgb3B0aW9uIGluc3Ry dWN0cyB0aGUgZGlhZ25vc3RpYyBtYWNoaW5lcnkgdG8gYWRkIHRleHQgdG8gZWFjaCBkaWFn bm9zdGljIGVtaXR0ZWQsIHdoaWNoIGluZGljYXRlcyB3aGljaCBjb21tYW5kIGxpbmUgb3B0 aW9uIGRpcmVjdGx5IGNvbnRyb2xzIHRoYXQgZGlhZ25vc3RpYywgd2hlbiBzdWNoIGFuIG9w dGlvbiBpcyBrbm93biB0byB0aGUgZGlhZ25vc3RpYyBtYWNoaW5lcnkuCi5QcAouRWwKLlNz IE9wdGlvbnMgdG8gUmVxdWVzdCBvciBTdXBwcmVzcyBXYXJuaW5ncwpXYXJuaW5ncyBhcmUg ZGlhZ25vc3RpYyBtZXNzYWdlcyB0aGF0IHJlcG9ydCBjb25zdHJ1Y3Rpb25zIHdoaWNoIGFy ZSBub3QgaW5oZXJlbnRseSBlcnJvbmVvdXMgYnV0IHdoaWNoIGFyZSByaXNreSBvciBzdWdn ZXN0IHRoZXJlIG1heSBoYXZlIGJlZW4gYW4gZXJyb3IuCi5QcApZb3UgY2FuIHJlcXVlc3Qg bWFueSBzcGVjaWZpYyB3YXJuaW5ncyB3aXRoIG9wdGlvbnMgYmVnaW5uaW5nCi5GbCBXICwK Zm9yIGV4YW1wbGUKLkZsIFdpbXBsaWNpdAp0byByZXF1ZXN0IHdhcm5pbmdzIG9uIGltcGxp Y2l0IGRlY2xhcmF0aW9ucy4KRWFjaCBvZiB0aGVzZSBzcGVjaWZpYyB3YXJuaW5nIG9wdGlv bnMgYWxzbyBoYXMgYSBuZWdhdGl2ZSBmb3JtIGJlZ2lubmluZwouRmwgV25vLQp0byB0dXJu IG9mZiB3YXJuaW5nczsgZm9yIGV4YW1wbGUsCi5GbCBXbm8taW1wbGljaXQgLgpUaGlzIG1h bnVhbCBsaXN0cyBvbmx5IG9uZSBvZiB0aGUgdHdvIGZvcm1zLCB3aGljaGV2ZXIgaXMgbm90 IHRoZSBkZWZhdWx0LgouUHAKVGhlIGZvbGxvd2luZyBvcHRpb25zIGNvbnRyb2wgdGhlIGFt b3VudCBhbmQga2luZHMgb2Ygd2FybmluZ3MgcHJvZHVjZWQgYnkgR0NDOyBmb3IgZnVydGhl ciwgbGFuZ3VhZ2Utc3BlY2lmaWMgb3B0aW9ucyBhbHNvIHJlZmVyIHRvCi5TeSBDKysgRGlh bGVjdCBPcHRpb25zCmFuZAouU3kgT2JqZWN0aXZlLUMgYW5kIE9iamVjdGl2ZS1DKysgRGlh bGVjdCBPcHRpb25zIC4KLlBwCi5CbCAtdGFnIC13aWR0aCB4eAouSXQgRmwgZnN5bnRheC1v bmx5CkNoZWNrIHRoZSBjb2RlIGZvciBzeW50YXggZXJyb3JzLCBidXQgZG9uJ3QgZG8gYW55 dGhpbmcgYmV5b25kIHRoYXQuCi5QcAouSXQgRmwgcGVkYW50aWMKSXNzdWUgYWxsIHRoZSB3 YXJuaW5ncyBkZW1hbmRlZCBieSBzdHJpY3QgSVNPIEMgYW5kIElTTyBDKys7IHJlamVjdCBh bGwgcHJvZ3JhbXMgdGhhdCB1c2UgZm9yYmlkZGVuIGV4dGVuc2lvbnMsIGFuZCBzb21lIG90 aGVyIHByb2dyYW1zIHRoYXQgZG8gbm90IGZvbGxvdyBJU08gQyBhbmQgSVNPIEMrKy4KRm9y IElTTyBDLCBmb2xsb3dzIHRoZSB2ZXJzaW9uIG9mIHRoZSBJU08gQyBzdGFuZGFyZCBzcGVj aWZpZWQgYnkgYW55Ci5GbCBzdGQKb3B0aW9uIHVzZWQuCi5QcApWYWxpZCBJU08gQyBhbmQg SVNPIEMrKyBwcm9ncmFtcyBzaG91bGQgY29tcGlsZSBwcm9wZXJseSB3aXRoIG9yIHdpdGhv dXQgdGhpcyBvcHRpb24gKHRob3VnaCBhIHJhcmUgZmV3IHdpbGwgcmVxdWlyZQouRmwgYW5z aQpvciBhCi5GbCBzdGQKb3B0aW9uIHNwZWNpZnlpbmcgdGhlIHJlcXVpcmVkIHZlcnNpb24g b2YgSVNPIEMpLgpIb3dldmVyLCB3aXRob3V0IHRoaXMgb3B0aW9uLCBjZXJ0YWluIEdOVSBl eHRlbnNpb25zIGFuZCB0cmFkaXRpb25hbCBDIGFuZCBDKysgZmVhdHVyZXMgYXJlIHN1cHBv cnRlZCBhcyB3ZWxsLgpXaXRoIHRoaXMgb3B0aW9uLCB0aGV5IGFyZSByZWplY3RlZC4KLlBw Ci5GbCBwZWRhbnRpYwpkb2VzIG5vdCBjYXVzZSB3YXJuaW5nIG1lc3NhZ2VzIGZvciB1c2Ug b2YgdGhlIGFsdGVybmF0ZSBrZXl3b3JkcyB3aG9zZSBuYW1lcyBiZWdpbiBhbmQgZW5kIHdp dGgKLlN5IF9fIC4KUGVkYW50aWMgd2FybmluZ3MgYXJlIGFsc28gZGlzYWJsZWQgaW4gdGhl IGV4cHJlc3Npb24gdGhhdCBmb2xsb3dzCi5WYSBfX2V4dGVuc2lvbl9fIC4KSG93ZXZlciwg b25seSBzeXN0ZW0gaGVhZGVyIGZpbGVzIHNob3VsZCB1c2UgdGhlc2UgZXNjYXBlIHJvdXRl czsgYXBwbGljYXRpb24gcHJvZ3JhbXMgc2hvdWxkIGF2b2lkIHRoZW0uCi5QcApTb21lIHVz ZXJzIHRyeSB0byB1c2UKLkZsIHBlZGFudGljCnRvIGNoZWNrIHByb2dyYW1zIGZvciBzdHJp Y3QgSVNPIEMgY29uZm9ybWFuY2UuClRoZXkgc29vbiBmaW5kIHRoYXQgaXQgZG9lcyBub3Qg ZG8gcXVpdGUgd2hhdCB0aGV5IHdhbnQ6IGl0IGZpbmRzIHNvbWUgbm9uLUlTTyBwcmFjdGlj ZXMsIGJ1dCBub3QgYWxsLS0tb25seSB0aG9zZSBmb3Igd2hpY2ggSVNPIEMKLkVtIHJlcXVp cmVzCmEgZGlhZ25vc3RpYywgYW5kIHNvbWUgb3RoZXJzIGZvciB3aGljaCBkaWFnbm9zdGlj cyBoYXZlIGJlZW4gYWRkZWQuCi5QcApBIGZlYXR1cmUgdG8gcmVwb3J0IGFueSBmYWlsdXJl IHRvIGNvbmZvcm0gdG8gSVNPIEMgbWlnaHQgYmUgdXNlZnVsIGluIHNvbWUgaW5zdGFuY2Vz LCBidXQgd291bGQgcmVxdWlyZSBjb25zaWRlcmFibGUgYWRkaXRpb25hbCB3b3JrIGFuZCB3 b3VsZCBiZSBxdWl0ZSBkaWZmZXJlbnQgZnJvbQouRmwgcGVkYW50aWMgLgpXZSBkb24ndCBo YXZlIHBsYW5zIHRvIHN1cHBvcnQgc3VjaCBhIGZlYXR1cmUgaW4gdGhlIG5lYXIgZnV0dXJl LgouUHAKV2hlcmUgdGhlIHN0YW5kYXJkIHNwZWNpZmllZCB3aXRoCi5GbCBzdGQKcmVwcmVz ZW50cyBhIEdOVSBleHRlbmRlZCBkaWFsZWN0IG9mIEMsIHN1Y2ggYXMKLlN5IGdudTg5Cm9y Ci5TeSBnbnU5OSAsCnRoZXJlIGlzIGEgY29ycmVzcG9uZGluZwouRW0gYmFzZSBzdGFuZGFy ZCAsCnRoZSB2ZXJzaW9uIG9mIElTTyBDIG9uIHdoaWNoIHRoZSBHTlUgZXh0ZW5kZWQgZGlh bGVjdCBpcyBiYXNlZC4KV2FybmluZ3MgZnJvbQouRmwgcGVkYW50aWMKYXJlIGdpdmVuIHdo ZXJlIHRoZXkgYXJlIHJlcXVpcmVkIGJ5IHRoZSBiYXNlIHN0YW5kYXJkLgooSXQgd291bGQg bm90IG1ha2Ugc2Vuc2UgZm9yIHN1Y2ggd2FybmluZ3MgdG8gYmUgZ2l2ZW4gb25seSBmb3Ig ZmVhdHVyZXMgbm90IGluIHRoZSBzcGVjaWZpZWQgR05VIEMgZGlhbGVjdCwgc2luY2UgYnkg ZGVmaW5pdGlvbiB0aGUgR05VIGRpYWxlY3RzIG9mIEMgaW5jbHVkZSBhbGwgZmVhdHVyZXMg dGhlIGNvbXBpbGVyIHN1cHBvcnRzIHdpdGggdGhlIGdpdmVuIG9wdGlvbiwgYW5kIHRoZXJl IHdvdWxkIGJlIG5vdGhpbmcgdG8gd2FybiBhYm91dC4pCi5QcAouSXQgRmwgcGVkYW50aWMt ZXJyb3JzCkxpa2UKLkZsIHBlZGFudGljICwKZXhjZXB0IHRoYXQgZXJyb3JzIGFyZSBwcm9k dWNlZCByYXRoZXIgdGhhbiB3YXJuaW5ncy4KLlBwCi5JdCBGbCB3CkluaGliaXQgYWxsIHdh cm5pbmcgbWVzc2FnZXMuCi5QcAouSXQgRmwgV25vLWltcG9ydApJbmhpYml0IHdhcm5pbmcg bWVzc2FnZXMgYWJvdXQgdGhlIHVzZSBvZgouU3kgI2ltcG9ydCAuCi5QcAouSXQgRmwgV2No YXItc3Vic2NyaXB0cwpXYXJuIGlmIGFuIGFycmF5IHN1YnNjcmlwdCBoYXMgdHlwZQouVmEg Y2hhciAuClRoaXMgaXMgYSBjb21tb24gY2F1c2Ugb2YgZXJyb3IsIGFzIHByb2dyYW1tZXJz IG9mdGVuIGZvcmdldCB0aGF0IHRoaXMgdHlwZSBpcyBzaWduZWQgb24gc29tZSBtYWNoaW5l cy4KVGhpcyB3YXJuaW5nIGlzIGVuYWJsZWQgYnkKLkZsIFdhbGwgLgouUHAKLkl0IEZsIFdj b21tZW50Cldhcm4gd2hlbmV2ZXIgYSBjb21tZW50LXN0YXJ0IHNlcXVlbmNlCi5TeSAvKgph cHBlYXJzIGluIGEKLlN5IC8qCmNvbW1lbnQsIG9yIHdoZW5ldmVyIGEgQmFja3NsYXNoLU5l d2xpbmUgYXBwZWFycyBpbiBhCi5TeSAvLwpjb21tZW50LgpUaGlzIHdhcm5pbmcgaXMgZW5h YmxlZCBieQouRmwgV2FsbCAuCi5QcAouSXQgRmwgV2ZhdGFsLWVycm9ycwpUaGlzIG9wdGlv biBjYXVzZXMgdGhlIGNvbXBpbGVyIHRvIGFib3J0IGNvbXBpbGF0aW9uIG9uIHRoZSBmaXJz dCBlcnJvciBvY2N1cnJlZCByYXRoZXIgdGhhbiB0cnlpbmcgdG8ga2VlcCBnb2luZyBhbmQg cHJpbnRpbmcgZnVydGhlciBlcnJvciBtZXNzYWdlcy4KLlBwCi5JdCBGbCBXZm9ybWF0CkNo ZWNrIGNhbGxzIHRvCi5WYSBwcmludGYKYW5kCi5WYSBzY2FuZiAsCmV0Yy4sIHRvIG1ha2Ug c3VyZSB0aGF0IHRoZSBhcmd1bWVudHMgc3VwcGxpZWQgaGF2ZSB0eXBlcyBhcHByb3ByaWF0 ZSB0byB0aGUgZm9ybWF0IHN0cmluZyBzcGVjaWZpZWQsIGFuZCB0aGF0IHRoZSBjb252ZXJz aW9ucyBzcGVjaWZpZWQgaW4gdGhlIGZvcm1hdCBzdHJpbmcgbWFrZSBzZW5zZS4KVGhpcyBp bmNsdWRlcyBzdGFuZGFyZCBmdW5jdGlvbnMsIGFuZCBvdGhlcnMgc3BlY2lmaWVkIGJ5IGZv cm1hdCBhdHRyaWJ1dGVzLCBpbiB0aGUKLlZhIHByaW50ZiAsCi5WYSBzY2FuZiAsCi5WYSBz dHJmdGltZQphbmQKLlZhIHN0cmZtb24KKGFuIFgvT3BlbiBleHRlbnNpb24sIG5vdCBpbiB0 aGUgQyBzdGFuZGFyZCkgZmFtaWxpZXMgKG9yIG90aGVyIHRhcmdldC1zcGVjaWZpYyBmYW1p bGllcykuCldoaWNoIGZ1bmN0aW9ucyBhcmUgY2hlY2tlZCB3aXRob3V0IGZvcm1hdCBhdHRy aWJ1dGVzIGhhdmluZyBiZWVuIHNwZWNpZmllZCBkZXBlbmRzIG9uIHRoZSBzdGFuZGFyZCB2 ZXJzaW9uIHNlbGVjdGVkLCBhbmQgc3VjaCBjaGVja3Mgb2YgZnVuY3Rpb25zIHdpdGhvdXQg dGhlIGF0dHJpYnV0ZSBzcGVjaWZpZWQgYXJlIGRpc2FibGVkIGJ5Ci5GbCBmZnJlZXN0YW5k aW5nCm9yCi5GbCBmbm8tYnVpbHRpbiAuCi5QcApUaGUgZm9ybWF0cyBhcmUgY2hlY2tlZCBh Z2FpbnN0IHRoZSBmb3JtYXQgZmVhdHVyZXMgc3VwcG9ydGVkIGJ5IEdOVSBsaWJjIHZlcnNp b24gMi4yLgpUaGVzZSBpbmNsdWRlIGFsbCBJU08gQzkwIGFuZCBDOTkgZmVhdHVyZXMsIGFz IHdlbGwgYXMgZmVhdHVyZXMgZnJvbSB0aGUgU2luZ2xlIFVuaXggU3BlY2lmaWNhdGlvbiBh bmQgc29tZSBCU0QgYW5kIEdOVSBleHRlbnNpb25zLgpPdGhlciBsaWJyYXJ5IGltcGxlbWVu dGF0aW9ucyBtYXkgbm90IHN1cHBvcnQgYWxsIHRoZXNlIGZlYXR1cmVzOyBHQ0MgZG9lcyBu b3Qgc3VwcG9ydCB3YXJuaW5nIGFib3V0IGZlYXR1cmVzIHRoYXQgZ28gYmV5b25kIGEgcGFy dGljdWxhciBsaWJyYXJ5J3MgbGltaXRhdGlvbnMuCkhvd2V2ZXIsIGlmCi5GbCBwZWRhbnRp YwppcyB1c2VkIHdpdGgKLkZsIFdmb3JtYXQgLAp3YXJuaW5ncyB3aWxsIGJlIGdpdmVuIGFi b3V0IGZvcm1hdCBmZWF0dXJlcyBub3QgaW4gdGhlIHNlbGVjdGVkIHN0YW5kYXJkIHZlcnNp b24gKGJ1dCBub3QgZm9yCi5WYSBzdHJmbW9uCmZvcm1hdHMsIHNpbmNlIHRob3NlIGFyZSBu b3QgaW4gYW55IHZlcnNpb24gb2YgdGhlIEMgc3RhbmRhcmQpLgouUHAKU2luY2UKLkZsIFdm b3JtYXQKYWxzbyBjaGVja3MgZm9yIG51bGwgZm9ybWF0IGFyZ3VtZW50cyBmb3Igc2V2ZXJh bCBmdW5jdGlvbnMsCi5GbCBXZm9ybWF0CmFsc28gaW1wbGllcwouRmwgV25vbm51bGwgLgou UHAKLkZsIFdmb3JtYXQKaXMgaW5jbHVkZWQgaW4KLkZsIFdhbGwgLgpGb3IgbW9yZSBjb250 cm9sIG92ZXIgc29tZSBhc3BlY3RzIG9mIGZvcm1hdCBjaGVja2luZywgdGhlIG9wdGlvbnMK LkZsIFdmb3JtYXQteTJrICwKLkZsIFduby1mb3JtYXQtZXh0cmEtYXJncyAsCi5GbCBXbm8t Zm9ybWF0LXplcm8tbGVuZ3RoICwKLkZsIFdmb3JtYXQtbm9ubGl0ZXJhbCAsCi5GbCBXZm9y bWF0LXNlY3VyaXR5ICwKYW5kCi5GbCBXZm9ybWF0PTIKYXJlIGF2YWlsYWJsZSwgYnV0IGFy ZSBub3QgaW5jbHVkZWQgaW4KLkZsIFdhbGwgLgouUHAKLkl0IEZsIFdmb3JtYXQteTJrCklm Ci5GbCBXZm9ybWF0CmlzIHNwZWNpZmllZCwgYWxzbyB3YXJuIGFib3V0Ci5WYSBzdHJmdGlt ZQpmb3JtYXRzIHdoaWNoIG1heSB5aWVsZCBvbmx5IGEgdHdvLWRpZ2l0IHllYXIuCi5QcAou SXQgRmwgV25vLWZvcm1hdC1leHRyYS1hcmdzCklmCi5GbCBXZm9ybWF0CmlzIHNwZWNpZmll ZCwgZG8gbm90IHdhcm4gYWJvdXQgZXhjZXNzIGFyZ3VtZW50cyB0byBhCi5WYSBwcmludGYK b3IKLlZhIHNjYW5mCmZvcm1hdCBmdW5jdGlvbi4KVGhlIEMgc3RhbmRhcmQgc3BlY2lmaWVz IHRoYXQgc3VjaCBhcmd1bWVudHMgYXJlIGlnbm9yZWQuCi5QcApXaGVyZSB0aGUgdW51c2Vk IGFyZ3VtZW50cyBsaWUgYmV0d2VlbiB1c2VkIGFyZ3VtZW50cyB0aGF0IGFyZSBzcGVjaWZp ZWQgd2l0aAouU3kgJApvcGVyYW5kIG51bWJlciBzcGVjaWZpY2F0aW9ucywgbm9ybWFsbHkg d2FybmluZ3MgYXJlIHN0aWxsIGdpdmVuLCBzaW5jZSB0aGUgaW1wbGVtZW50YXRpb24gY291 bGQgbm90IGtub3cgd2hhdCB0eXBlIHRvIHBhc3MgdG8KLlZhIHZhX2FyZwp0byBza2lwIHRo ZSB1bnVzZWQgYXJndW1lbnRzLgpIb3dldmVyLCBpbiB0aGUgY2FzZSBvZgouVmEgc2NhbmYK Zm9ybWF0cywgdGhpcyBvcHRpb24gd2lsbCBzdXBwcmVzcyB0aGUgd2FybmluZyBpZiB0aGUg dW51c2VkIGFyZ3VtZW50cyBhcmUgYWxsIHBvaW50ZXJzLCBzaW5jZSB0aGUgU2luZ2xlIFVu aXggU3BlY2lmaWNhdGlvbiBzYXlzIHRoYXQgc3VjaCB1bnVzZWQgYXJndW1lbnRzIGFyZSBh bGxvd2VkLgouUHAKLkl0IEZsIFduby1mb3JtYXQtemVyby1sZW5ndGgKSWYKLkZsIFdmb3Jt YXQKaXMgc3BlY2lmaWVkLCBkbyBub3Qgd2FybiBhYm91dCB6ZXJvLWxlbmd0aCBmb3JtYXRz LgpUaGUgQyBzdGFuZGFyZCBzcGVjaWZpZXMgdGhhdCB6ZXJvLWxlbmd0aCBmb3JtYXRzIGFy ZSBhbGxvd2VkLgouUHAKLkl0IEZsIFdmb3JtYXQtbm9ubGl0ZXJhbApJZgouRmwgV2Zvcm1h dAppcyBzcGVjaWZpZWQsIGFsc28gd2FybiBpZiB0aGUgZm9ybWF0IHN0cmluZyBpcyBub3Qg YSBzdHJpbmcgbGl0ZXJhbCBhbmQgc28gY2Fubm90IGJlIGNoZWNrZWQsIHVubGVzcyB0aGUg Zm9ybWF0IGZ1bmN0aW9uIHRha2VzIGl0cyBmb3JtYXQgYXJndW1lbnRzIGFzIGEKLlZhIHZh X2xpc3QgLgouUHAKLkl0IEZsIFdmb3JtYXQtc2VjdXJpdHkKSWYKLkZsIFdmb3JtYXQKaXMg c3BlY2lmaWVkLCBhbHNvIHdhcm4gYWJvdXQgdXNlcyBvZiBmb3JtYXQgZnVuY3Rpb25zIHRo YXQgcmVwcmVzZW50IHBvc3NpYmxlIHNlY3VyaXR5IHByb2JsZW1zLgpBdCBwcmVzZW50LCB0 aGlzIHdhcm5zIGFib3V0IGNhbGxzIHRvCi5WYSBwcmludGYKYW5kCi5WYSBzY2FuZgpmdW5j dGlvbnMgd2hlcmUgdGhlIGZvcm1hdCBzdHJpbmcgaXMgbm90IGEgc3RyaW5nIGxpdGVyYWwg YW5kIHRoZXJlIGFyZSBubyBmb3JtYXQgYXJndW1lbnRzLCBhcyBpbgouVmEgcHJpbnRmIChm b28pOyAuClRoaXMgbWF5IGJlIGEgc2VjdXJpdHkgaG9sZSBpZiB0aGUgZm9ybWF0IHN0cmlu ZyBjYW1lIGZyb20gdW50cnVzdGVkIGlucHV0IGFuZCBjb250YWlucwouU3kgJW4gLgooVGhp cyBpcyBjdXJyZW50bHkgYSBzdWJzZXQgb2Ygd2hhdAouRmwgV2Zvcm1hdC1ub25saXRlcmFs Cndhcm5zIGFib3V0LCBidXQgaW4gZnV0dXJlIHdhcm5pbmdzIG1heSBiZSBhZGRlZCB0bwou RmwgV2Zvcm1hdC1zZWN1cml0eQp0aGF0IGFyZSBub3QgaW5jbHVkZWQgaW4KLkZsIFdmb3Jt YXQtbm9ubGl0ZXJhbCAuICkKLlBwCi5JdCBGbCBXZm9ybWF0PTIKRW5hYmxlCi5GbCBXZm9y bWF0CnBsdXMgZm9ybWF0IGNoZWNrcyBub3QgaW5jbHVkZWQgaW4KLkZsIFdmb3JtYXQgLgpD dXJyZW50bHkgZXF1aXZhbGVudCB0bwouRmwgV2Zvcm1hdCBGbCBXZm9ybWF0LW5vbmxpdGVy YWwgRmwgV2Zvcm1hdC1zZWN1cml0eSBGbCBXZm9ybWF0LXkyayAuCi5QcAouSXQgRmwgV25v bm51bGwKV2FybiBhYm91dCBwYXNzaW5nIGEgbnVsbCBwb2ludGVyIGZvciBhcmd1bWVudHMg bWFya2VkIGFzIHJlcXVpcmluZyBhIG5vbi1udWxsIHZhbHVlIGJ5IHRoZQouVmEgbm9ubnVs bApmdW5jdGlvbiBhdHRyaWJ1dGUuCi5QcAouRmwgV25vbm51bGwKaXMgaW5jbHVkZWQgaW4K LkZsIFdhbGwKYW5kCi5GbCBXZm9ybWF0IC4KSXQgY2FuIGJlIGRpc2FibGVkIHdpdGggdGhl Ci5GbCBXbm8tbm9ubnVsbApvcHRpb24uCi5QcAouSXQgRmwgV2luaXQtc2VsZiAoQywgQysr LCBPYmplY3RpdmUtQyBhbmQgT2JqZWN0aXZlLUMrKyBvbmx5KQpXYXJuIGFib3V0IHVuaW5p dGlhbGl6ZWQgdmFyaWFibGVzIHdoaWNoIGFyZSBpbml0aWFsaXplZCB3aXRoIHRoZW1zZWx2 ZXMuCk5vdGUgdGhpcyBvcHRpb24gY2FuIG9ubHkgYmUgdXNlZCB3aXRoIHRoZQouRmwgV3Vu aW5pdGlhbGl6ZWQKb3B0aW9uLCB3aGljaCBpbiB0dXJuIG9ubHkgd29ya3Mgd2l0aAouRmwg TzEKYW5kIGFib3ZlLgouUHAKRm9yIGV4YW1wbGUsIEdDQyB3aWxsIHdhcm4gYWJvdXQKLlZh IGkKYmVpbmcgdW5pbml0aWFsaXplZCBpbiB0aGUgZm9sbG93aW5nIHNuaXBwZXQgb25seSB3 aGVuCi5GbCBXaW5pdC1zZWxmCmhhcyBiZWVuIHNwZWNpZmllZDoKLlBwCi5CZCAtbGl0ZXJh bCAtb2Zmc2V0IGluZGVudAppbnQgZigpCnsKICBpbnQgaSA9IGk7CiAgcmV0dXJuIGk7Cn0K LkVkCi5JdCBGbCBXaW1wbGljaXQtaW50Cldhcm4gd2hlbiBhIGRlY2xhcmF0aW9uIGRvZXMg bm90IHNwZWNpZnkgYSB0eXBlLgpUaGlzIHdhcm5pbmcgaXMgZW5hYmxlZCBieQouRmwgV2Fs bCAuCi5QcAouSXQgRmwgV2ltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uCi5JdCBGbCBX ZXJyb3ItaW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb24KR2l2ZSBhIHdhcm5pbmcgKG9y IGVycm9yKSB3aGVuZXZlciBhIGZ1bmN0aW9uIGlzIHVzZWQgYmVmb3JlIGJlaW5nIGRlY2xh cmVkLgpUaGUgZm9ybQouRmwgV25vLWVycm9yLWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0 aW9uCmlzIG5vdCBzdXBwb3J0ZWQuClRoaXMgd2FybmluZyBpcyBlbmFibGVkIGJ5Ci5GbCBX YWxsCihhcyBhIHdhcm5pbmcsIG5vdCBhbiBlcnJvcikuCi5QcAouSXQgRmwgV2ltcGxpY2l0 ClNhbWUgYXMKLkZsIFdpbXBsaWNpdC1pbnQKYW5kCi5GbCBXaW1wbGljaXQtZnVuY3Rpb24t ZGVjbGFyYXRpb24gLgpUaGlzIHdhcm5pbmcgaXMgZW5hYmxlZCBieQouRmwgV2FsbCAuCi5Q cAouSXQgRmwgV21haW4KV2FybiBpZiB0aGUgdHlwZSBvZgouU3kgbWFpbgppcyBzdXNwaWNp b3VzLgouU3kgbWFpbgpzaG91bGQgYmUgYSBmdW5jdGlvbiB3aXRoIGV4dGVybmFsIGxpbmth Z2UsIHJldHVybmluZyBpbnQsIHRha2luZyBlaXRoZXIgemVybyBhcmd1bWVudHMsIHR3bywg b3IgdGhyZWUgYXJndW1lbnRzIG9mIGFwcHJvcHJpYXRlIHR5cGVzLgpUaGlzIHdhcm5pbmcg aXMgZW5hYmxlZCBieQouRmwgV2FsbCAuCi5QcAouSXQgRmwgV21pc3NpbmctYnJhY2VzCldh cm4gaWYgYW4gYWdncmVnYXRlIG9yIHVuaW9uIGluaXRpYWxpemVyIGlzIG5vdCBmdWxseSBi cmFja2V0ZWQuCkluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSwgdGhlIGluaXRpYWxpemVyIGZv cgouU3kgYQppcyBub3QgZnVsbHkgYnJhY2tldGVkLCBidXQgdGhhdCBmb3IKLlN5IGIKaXMg ZnVsbHkgYnJhY2tldGVkLgouUHAKLkJkIC1saXRlcmFsIC1vZmZzZXQgaW5kZW50CmludCBh WzJdWzJdID0geyAwLCAxLCAyLCAzIH07CmludCBiWzJdWzJdID0geyB7IDAsIDEgfSwgeyAy LCAzIH0gfTsKLkVkClRoaXMgd2FybmluZyBpcyBlbmFibGVkIGJ5Ci5GbCBXYWxsIC4KLlBw Ci5JdCBGbCBXbWlzc2luZy1pbmNsdWRlLWRpcnMgKEMsIEMrKywgT2JqZWN0aXZlLUMgYW5k IE9iamVjdGl2ZS1DKysgb25seSkKV2FybiBpZiBhIHVzZXItc3VwcGxpZWQgaW5jbHVkZSBk aXJlY3RvcnkgZG9lcyBub3QgZXhpc3QuCi5QcAouSXQgRmwgV3BhcmVudGhlc2VzCldhcm4g aWYgcGFyZW50aGVzZXMgYXJlIG9taXR0ZWQgaW4gY2VydGFpbiBjb250ZXh0cywgc3VjaCBh cyB3aGVuIHRoZXJlIGlzIGFuIGFzc2lnbm1lbnQgaW4gYSBjb250ZXh0IHdoZXJlIGEgdHJ1 dGggdmFsdWUgaXMgZXhwZWN0ZWQsIG9yIHdoZW4gb3BlcmF0b3JzIGFyZSBuZXN0ZWQgd2hv c2UgcHJlY2VkZW5jZSBwZW9wbGUgb2Z0ZW4gZ2V0IGNvbmZ1c2VkIGFib3V0LgpPbmx5IHRo ZSB3YXJuaW5nIGZvciBhbiBhc3NpZ25tZW50IHVzZWQgYXMgYSB0cnV0aCB2YWx1ZSBpcyBz dXBwb3J0ZWQgd2hlbiBjb21waWxpbmcgQysrOyB0aGUgb3RoZXIgd2FybmluZ3MgYXJlIG9u bHkgc3VwcG9ydGVkIHdoZW4gY29tcGlsaW5nIEMuCi5QcApBbHNvIHdhcm4gaWYgYSBjb21w YXJpc29uIGxpa2UKLlN5IHhcKltMdF09eVwqW0x0XT16CmFwcGVhcnM7IHRoaXMgaXMgZXF1 aXZhbGVudCB0bwouU3kgKHhcKltMdF09eSA/IDEgOiAwKSBcKltMdF09IHogLAp3aGljaCBp cyBhIGRpZmZlcmVudCBpbnRlcnByZXRhdGlvbiBmcm9tIHRoYXQgb2Ygb3JkaW5hcnkgbWF0 aGVtYXRpY2FsIG5vdGF0aW9uLgouUHAKQWxzbyB3YXJuIGFib3V0IGNvbnN0cnVjdGlvbnMg d2hlcmUgdGhlcmUgbWF5IGJlIGNvbmZ1c2lvbiB0byB3aGljaAouVmEgaWYKc3RhdGVtZW50 IGFuCi5WYSBlbHNlCmJyYW5jaCBiZWxvbmdzLgpIZXJlIGlzIGFuIGV4YW1wbGUgb2Ygc3Vj aCBhIGNhc2U6Ci5QcAouQmQgLWxpdGVyYWwgLW9mZnNldCBpbmRlbnQKewogIGlmIChhKQog ICAgaWYgKGIpCiAgICAgIGZvbyAoKTsKICBlbHNlCiAgICBiYXIgKCk7Cn0KLkVkCkluIEMs IGV2ZXJ5Ci5WYSBlbHNlCmJyYW5jaCBiZWxvbmdzIHRvIHRoZSBpbm5lcm1vc3QgcG9zc2li bGUKLlZhIGlmCnN0YXRlbWVudCwgd2hpY2ggaW4gdGhpcyBleGFtcGxlIGlzCi5WYSBpZiAo YikgLgpUaGlzIGlzIG9mdGVuIG5vdCB3aGF0IHRoZSBwcm9ncmFtbWVyIGV4cGVjdGVkLCBh cyBpbGx1c3RyYXRlZCBpbiB0aGUgYWJvdmUgZXhhbXBsZSBieSBpbmRlbnRhdGlvbiB0aGUg cHJvZ3JhbW1lciBjaG9zZS4KV2hlbiB0aGVyZSBpcyB0aGUgcG90ZW50aWFsIGZvciB0aGlz IGNvbmZ1c2lvbiwgR0NDIHdpbGwgaXNzdWUgYSB3YXJuaW5nIHdoZW4gdGhpcyBmbGFnIGlz IHNwZWNpZmllZC4KVG8gZWxpbWluYXRlIHRoZSB3YXJuaW5nLCBhZGQgZXhwbGljaXQgYnJh Y2VzIGFyb3VuZCB0aGUgaW5uZXJtb3N0Ci5WYSBpZgpzdGF0ZW1lbnQgc28gdGhlcmUgaXMg bm8gd2F5IHRoZQouVmEgZWxzZQpjb3VsZCBiZWxvbmcgdG8gdGhlIGVuY2xvc2luZwouVmEg aWYgLgpUaGUgcmVzdWx0aW5nIGNvZGUgd291bGQgbG9vayBsaWtlIHRoaXM6Ci5QcAouQmQg LWxpdGVyYWwgLW9mZnNldCBpbmRlbnQKewogIGlmIChhKQogICAgewogICAgICBpZiAoYikK ICAgICAgICBmb28gKCk7CiAgICAgIGVsc2UKICAgICAgICBiYXIgKCk7CiAgICB9Cn0KLkVk ClRoaXMgd2FybmluZyBpcyBlbmFibGVkIGJ5Ci5GbCBXYWxsIC4KLlBwCi5JdCBGbCBXc2Vx dWVuY2UtcG9pbnQKV2FybiBhYm91dCBjb2RlIHRoYXQgbWF5IGhhdmUgdW5kZWZpbmVkIHNl bWFudGljcyBiZWNhdXNlIG9mIHZpb2xhdGlvbnMgb2Ygc2VxdWVuY2UgcG9pbnQgcnVsZXMg aW4gdGhlIEMgc3RhbmRhcmQuCi5QcApUaGUgQyBzdGFuZGFyZCBkZWZpbmVzIHRoZSBvcmRl ciBpbiB3aGljaCBleHByZXNzaW9ucyBpbiBhIEMgcHJvZ3JhbSBhcmUgZXZhbHVhdGVkIGlu IHRlcm1zIG9mCi5FbSBzZXF1ZW5jZSBwb2ludHMgLAp3aGljaCByZXByZXNlbnQgYSBwYXJ0 aWFsIG9yZGVyaW5nIGJldHdlZW4gdGhlIGV4ZWN1dGlvbiBvZiBwYXJ0cyBvZiB0aGUgcHJv Z3JhbTogdGhvc2UgZXhlY3V0ZWQgYmVmb3JlIHRoZSBzZXF1ZW5jZSBwb2ludCwgYW5kIHRo b3NlIGV4ZWN1dGVkIGFmdGVyIGl0LgpUaGVzZSBvY2N1ciBhZnRlciB0aGUgZXZhbHVhdGlv biBvZiBhIGZ1bGwgZXhwcmVzc2lvbiAob25lIHdoaWNoIGlzIG5vdCBwYXJ0IG9mIGEgbGFy Z2VyIGV4cHJlc3Npb24pLCBhZnRlciB0aGUgZXZhbHVhdGlvbiBvZiB0aGUgZmlyc3Qgb3Bl cmFuZCBvZiBhCi5WYSAmJiAsCi5WYSB8fCAsCi5WYSA/IDoKb3IKLlZhICwKKGNvbW1hKSBv cGVyYXRvciwgYmVmb3JlIGEgZnVuY3Rpb24gaXMgY2FsbGVkIChidXQgYWZ0ZXIgdGhlIGV2 YWx1YXRpb24gb2YgaXRzIGFyZ3VtZW50cyBhbmQgdGhlIGV4cHJlc3Npb24gZGVub3Rpbmcg dGhlIGNhbGxlZCBmdW5jdGlvbiksIGFuZCBpbiBjZXJ0YWluIG90aGVyIHBsYWNlcy4KT3Ro ZXIgdGhhbiBhcyBleHByZXNzZWQgYnkgdGhlIHNlcXVlbmNlIHBvaW50IHJ1bGVzLCB0aGUg b3JkZXIgb2YgZXZhbHVhdGlvbiBvZiBzdWJleHByZXNzaW9ucyBvZiBhbiBleHByZXNzaW9u IGlzIG5vdCBzcGVjaWZpZWQuCkFsbCB0aGVzZSBydWxlcyBkZXNjcmliZSBvbmx5IGEgcGFy dGlhbCBvcmRlciByYXRoZXIgdGhhbiBhIHRvdGFsIG9yZGVyLCBzaW5jZSwgZm9yIGV4YW1w bGUsIGlmIHR3byBmdW5jdGlvbnMgYXJlIGNhbGxlZCB3aXRoaW4gb25lIGV4cHJlc3Npb24g d2l0aCBubyBzZXF1ZW5jZSBwb2ludCBiZXR3ZWVuIHRoZW0sIHRoZSBvcmRlciBpbiB3aGlj aCB0aGUgZnVuY3Rpb25zIGFyZSBjYWxsZWQgaXMgbm90IHNwZWNpZmllZC4KSG93ZXZlciwg dGhlIHN0YW5kYXJkcyBjb21taXR0ZWUgaGF2ZSBydWxlZCB0aGF0IGZ1bmN0aW9uIGNhbGxz IGRvIG5vdCBvdmVybGFwLgouUHAKSXQgaXMgbm90IHNwZWNpZmllZCB3aGVuIGJldHdlZW4g c2VxdWVuY2UgcG9pbnRzIG1vZGlmaWNhdGlvbnMgdG8gdGhlIHZhbHVlcyBvZiBvYmplY3Rz IHRha2UgZWZmZWN0LgpQcm9ncmFtcyB3aG9zZSBiZWhhdmlvciBkZXBlbmRzIG9uIHRoaXMg aGF2ZSB1bmRlZmluZWQgYmVoYXZpb3I7IHRoZSBDIHN0YW5kYXJkIHNwZWNpZmllcyB0aGF0 ICJCZXR3ZWVuIHRoZSBwcmV2aW91cyBhbmQgbmV4dCBzZXF1ZW5jZSBwb2ludCBhbiBvYmpl Y3Qgc2hhbGwgaGF2ZSBpdHMgc3RvcmVkIHZhbHVlIG1vZGlmaWVkIGF0IG1vc3Qgb25jZSBi eSB0aGUgZXZhbHVhdGlvbiBvZiBhbiBleHByZXNzaW9uLgpGdXJ0aGVybW9yZSwgdGhlIHBy aW9yIHZhbHVlIHNoYWxsIGJlIHJlYWQgb25seSB0byBkZXRlcm1pbmUgdGhlIHZhbHVlIHRv IGJlIHN0b3JlZC4iLgpJZiBhIHByb2dyYW0gYnJlYWtzIHRoZXNlIHJ1bGVzLCB0aGUgcmVz dWx0cyBvbiBhbnkgcGFydGljdWxhciBpbXBsZW1lbnRhdGlvbiBhcmUgZW50aXJlbHkgdW5w cmVkaWN0YWJsZS4KLlBwCkV4YW1wbGVzIG9mIGNvZGUgd2l0aCB1bmRlZmluZWQgYmVoYXZp b3IgYXJlCi5WYSBhID0gYSsrOyAsCi5WYSBhW25dID0gYltuKytdCmFuZAouVmEgYVtpKytd ID0gaTsgLgpTb21lIG1vcmUgY29tcGxpY2F0ZWQgY2FzZXMgYXJlIG5vdCBkaWFnbm9zZWQg YnkgdGhpcyBvcHRpb24sIGFuZCBpdCBtYXkgZ2l2ZSBhbiBvY2Nhc2lvbmFsIGZhbHNlIHBv c2l0aXZlIHJlc3VsdCwgYnV0IGluIGdlbmVyYWwgaXQgaGFzIGJlZW4gZm91bmQgZmFpcmx5 IGVmZmVjdGl2ZSBhdCBkZXRlY3RpbmcgdGhpcyBzb3J0IG9mIHByb2JsZW0gaW4gcHJvZ3Jh bXMuCi5QcApUaGUgcHJlc2VudCBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIG9wdGlvbiBvbmx5 IHdvcmtzIGZvciBDIHByb2dyYW1zLgpBIGZ1dHVyZSBpbXBsZW1lbnRhdGlvbiBtYXkgYWxz byB3b3JrIGZvciBDKysgcHJvZ3JhbXMuCi5QcApUaGUgQyBzdGFuZGFyZCBpcyB3b3JkZWQg Y29uZnVzaW5nbHksIHRoZXJlZm9yZSB0aGVyZSBpcyBzb21lIGRlYmF0ZSBvdmVyIHRoZSBw cmVjaXNlIG1lYW5pbmcgb2YgdGhlIHNlcXVlbmNlIHBvaW50IHJ1bGVzIGluIHN1YnRsZSBj YXNlcy4KTGlua3MgdG8gZGlzY3Vzc2lvbnMgb2YgdGhlIHByb2JsZW0sIGluY2x1ZGluZyBw cm9wb3NlZCBmb3JtYWwgZGVmaW5pdGlvbnMsIG1heSBiZSBmb3VuZCBvbiB0aGUgR0NDIHJl YWRpbmdzIHBhZ2UsIGF0Ci5MayBodHRwOi8vZ2NjLmdudS5vcmcvcmVhZGluZ3MuaHRtbCAu Ci5QcApUaGlzIHdhcm5pbmcgaXMgZW5hYmxlZCBieQouRmwgV2FsbCAuCi5QcAouSXQgRmwg V3JldHVybi10eXBlCldhcm4gd2hlbmV2ZXIgYSBmdW5jdGlvbiBpcyBkZWZpbmVkIHdpdGgg YSByZXR1cm4tdHlwZSB0aGF0IGRlZmF1bHRzIHRvCi5WYSBpbnQgLgpBbHNvIHdhcm4gYWJv dXQgYW55Ci5WYSByZXR1cm4Kc3RhdGVtZW50IHdpdGggbm8gcmV0dXJuLXZhbHVlIGluIGEg ZnVuY3Rpb24gd2hvc2UgcmV0dXJuLXR5cGUgaXMgbm90Ci5WYSB2b2lkIC4KLlBwCkZvciBD LCBhbHNvIHdhcm4gaWYgdGhlIHJldHVybiB0eXBlIG9mIGEgZnVuY3Rpb24gaGFzIGEgdHlw ZSBxdWFsaWZpZXIgc3VjaCBhcwouVmEgY29uc3QgLgpTdWNoIGEgdHlwZSBxdWFsaWZpZXIg aGFzIG5vIGVmZmVjdCwgc2luY2UgdGhlIHZhbHVlIHJldHVybmVkIGJ5IGEgZnVuY3Rpb24g aXMgbm90IGFuIGx2YWx1ZS4KSVNPIEMgcHJvaGliaXRzIHF1YWxpZmllZAouVmEgdm9pZApy ZXR1cm4gdHlwZXMgb24gZnVuY3Rpb24gZGVmaW5pdGlvbnMsIHNvIHN1Y2ggcmV0dXJuIHR5 cGVzIGFsd2F5cyByZWNlaXZlIGEgd2FybmluZyBldmVuIHdpdGhvdXQgdGhpcyBvcHRpb24u Ci5QcApGb3IgQysrLCBhIGZ1bmN0aW9uIHdpdGhvdXQgcmV0dXJuIHR5cGUgYWx3YXlzIHBy b2R1Y2VzIGEgZGlhZ25vc3RpYyBtZXNzYWdlLCBldmVuIHdoZW4KLkZsIFduby1yZXR1cm4t dHlwZQppcyBzcGVjaWZpZWQuClRoZSBvbmx5IGV4Y2VwdGlvbnMgYXJlCi5TeSBtYWluCmFu ZCBmdW5jdGlvbnMgZGVmaW5lZCBpbiBzeXN0ZW0gaGVhZGVycy4KLlBwClRoaXMgd2Fybmlu ZyBpcyBlbmFibGVkIGJ5Ci5GbCBXYWxsIC4KLlBwCi5JdCBGbCBXc3dpdGNoCldhcm4gd2hl bmV2ZXIgYQouVmEgc3dpdGNoCnN0YXRlbWVudCBoYXMgYW4gaW5kZXggb2YgZW51bWVyYXRl ZCB0eXBlIGFuZCBsYWNrcyBhCi5WYSBjYXNlCmZvciBvbmUgb3IgbW9yZSBvZiB0aGUgbmFt ZWQgY29kZXMgb2YgdGhhdCBlbnVtZXJhdGlvbi4KKFRoZSBwcmVzZW5jZSBvZiBhCi5WYSBk ZWZhdWx0CmxhYmVsIHByZXZlbnRzIHRoaXMgd2FybmluZy4pCi5WYSBjYXNlCmxhYmVscyBv dXRzaWRlIHRoZSBlbnVtZXJhdGlvbiByYW5nZSBhbHNvIHByb3Zva2Ugd2FybmluZ3Mgd2hl biB0aGlzIG9wdGlvbiBpcyB1c2VkLgpUaGlzIHdhcm5pbmcgaXMgZW5hYmxlZCBieQouRmwg V2FsbCAuCi5QcAouSXQgRmwgV3N3aXRjaC1kZWZhdWx0Cldhcm4gd2hlbmV2ZXIgYQouVmEg c3dpdGNoCnN0YXRlbWVudCBkb2VzIG5vdCBoYXZlIGEKLlZhIGRlZmF1bHQKY2FzZS4KLlBw Ci5JdCBGbCBXc3dpdGNoLWVudW0KV2FybiB3aGVuZXZlciBhCi5WYSBzd2l0Y2gKc3RhdGVt ZW50IGhhcyBhbiBpbmRleCBvZiBlbnVtZXJhdGVkIHR5cGUgYW5kIGxhY2tzIGEKLlZhIGNh c2UKZm9yIG9uZSBvciBtb3JlIG9mIHRoZSBuYW1lZCBjb2RlcyBvZiB0aGF0IGVudW1lcmF0 aW9uLgouVmEgY2FzZQpsYWJlbHMgb3V0c2lkZSB0aGUgZW51bWVyYXRpb24gcmFuZ2UgYWxz byBwcm92b2tlIHdhcm5pbmdzIHdoZW4gdGhpcyBvcHRpb24gaXMgdXNlZC4KLlBwCi5JdCBG bCBXdHJpZ3JhcGhzCldhcm4gaWYgYW55IHRyaWdyYXBocyBhcmUgZW5jb3VudGVyZWQgdGhh dCBtaWdodCBjaGFuZ2UgdGhlIG1lYW5pbmcgb2YgdGhlIHByb2dyYW0gKHRyaWdyYXBocyB3 aXRoaW4gY29tbWVudHMgYXJlIG5vdCB3YXJuZWQgYWJvdXQpLgpUaGlzIHdhcm5pbmcgaXMg ZW5hYmxlZCBieQouRmwgV2FsbCAuCi5QcAouSXQgRmwgV3VudXNlZC1mdW5jdGlvbgpXYXJu IHdoZW5ldmVyIGEgc3RhdGljIGZ1bmN0aW9uIGlzIGRlY2xhcmVkIGJ1dCBub3QgZGVmaW5l ZCBvciBhIG5vbi1pbmxpbmUgc3RhdGljIGZ1bmN0aW9uIGlzIHVudXNlZC4KVGhpcyB3YXJu aW5nIGlzIGVuYWJsZWQgYnkKLkZsIFdhbGwgLgouUHAKLkl0IEZsIFd1bnVzZWQtbGFiZWwK V2FybiB3aGVuZXZlciBhIGxhYmVsIGlzIGRlY2xhcmVkIGJ1dCBub3QgdXNlZC4KVGhpcyB3 YXJuaW5nIGlzIGVuYWJsZWQgYnkKLkZsIFdhbGwgLgouUHAKVG8gc3VwcHJlc3MgdGhpcyB3 YXJuaW5nIHVzZSB0aGUKLlN5IHVudXNlZAphdHRyaWJ1dGUuCi5QcAouSXQgRmwgV3VudXNl ZC1wYXJhbWV0ZXIKV2FybiB3aGVuZXZlciBhIGZ1bmN0aW9uIHBhcmFtZXRlciBpcyB1bnVz ZWQgYXNpZGUgZnJvbSBpdHMgZGVjbGFyYXRpb24uCi5QcApUbyBzdXBwcmVzcyB0aGlzIHdh cm5pbmcgdXNlIHRoZQouU3kgdW51c2VkCmF0dHJpYnV0ZS4KLlBwCi5JdCBGbCBXdW51c2Vk LXZhcmlhYmxlCldhcm4gd2hlbmV2ZXIgYSBsb2NhbCB2YXJpYWJsZSBvciBub24tY29uc3Rh bnQgc3RhdGljIHZhcmlhYmxlIGlzIHVudXNlZCBhc2lkZSBmcm9tIGl0cyBkZWNsYXJhdGlv bi4KVGhpcyB3YXJuaW5nIGlzIGVuYWJsZWQgYnkKLkZsIFdhbGwgLgouUHAKVG8gc3VwcHJl c3MgdGhpcyB3YXJuaW5nIHVzZSB0aGUKLlN5IHVudXNlZAphdHRyaWJ1dGUuCi5QcAouSXQg RmwgV3VudXNlZC12YWx1ZQpXYXJuIHdoZW5ldmVyIGEgc3RhdGVtZW50IGNvbXB1dGVzIGEg cmVzdWx0IHRoYXQgaXMgZXhwbGljaXRseSBub3QgdXNlZC4KVGhpcyB3YXJuaW5nIGlzIGVu YWJsZWQgYnkKLkZsIFdhbGwgLgouUHAKVG8gc3VwcHJlc3MgdGhpcyB3YXJuaW5nIGNhc3Qg dGhlIGV4cHJlc3Npb24gdG8KLlN5IHZvaWQgLgouUHAKLkl0IEZsIFd1bnVzZWQKQWxsIHRo ZSBhYm92ZQouRmwgV3VudXNlZApvcHRpb25zIGNvbWJpbmVkLgouUHAKSW4gb3JkZXIgdG8g Z2V0IGEgd2FybmluZyBhYm91dCBhbiB1bnVzZWQgZnVuY3Rpb24gcGFyYW1ldGVyLCB5b3Ug bXVzdCBlaXRoZXIgc3BlY2lmeQouRmwgV2V4dHJhIEZsIFd1bnVzZWQKKG5vdGUgdGhhdAou RmwgV2FsbAppbXBsaWVzCi5GbCBXdW51c2VkICkgLApvciBzZXBhcmF0ZWx5IHNwZWNpZnkK LkZsIFd1bnVzZWQtcGFyYW1ldGVyIC4KLlBwCi5JdCBGbCBXdW5pbml0aWFsaXplZApXYXJu IGlmIGFuIGF1dG9tYXRpYyB2YXJpYWJsZSBpcyB1c2VkIHdpdGhvdXQgZmlyc3QgYmVpbmcg aW5pdGlhbGl6ZWQgb3IgaWYgYSB2YXJpYWJsZSBtYXkgYmUgY2xvYmJlcmVkIGJ5IGEKLlZh IHNldGptcApjYWxsLgouUHAKVGhlc2Ugd2FybmluZ3MgYXJlIHBvc3NpYmxlIG9ubHkgaW4g b3B0aW1pemluZyBjb21waWxhdGlvbiwgYmVjYXVzZSB0aGV5IHJlcXVpcmUgZGF0YSBmbG93 IGluZm9ybWF0aW9uIHRoYXQgaXMgY29tcHV0ZWQgb25seSB3aGVuIG9wdGltaXppbmcuCklm IHlvdSBkb24ndCBzcGVjaWZ5Ci5GbCBPICwKeW91IHNpbXBseSB3b24ndCBnZXQgdGhlc2Ug d2FybmluZ3MuCi5QcApJZiB5b3Ugd2FudCB0byB3YXJuIGFib3V0IGNvZGUgd2hpY2ggdXNl cyB0aGUgdW5pbml0aWFsaXplZCB2YWx1ZSBvZiB0aGUgdmFyaWFibGUgaW4gaXRzIG93biBp bml0aWFsaXplciwgdXNlIHRoZQouRmwgV2luaXQtc2VsZgpvcHRpb24uCi5QcApUaGVzZSB3 YXJuaW5ncyBvY2N1ciBmb3IgaW5kaXZpZHVhbCB1bmluaXRpYWxpemVkIG9yIGNsb2JiZXJl ZCBlbGVtZW50cyBvZiBzdHJ1Y3R1cmUsIHVuaW9uIG9yIGFycmF5IHZhcmlhYmxlcyBhcyB3 ZWxsIGFzIGZvciB2YXJpYWJsZXMgd2hpY2ggYXJlIHVuaW5pdGlhbGl6ZWQgb3IgY2xvYmJl cmVkIGFzIGEgd2hvbGUuClRoZXkgZG8gbm90IG9jY3VyIGZvciB2YXJpYWJsZXMgb3IgZWxl bWVudHMgZGVjbGFyZWQKLlZhIHZvbGF0aWxlIC4KQmVjYXVzZSB0aGVzZSB3YXJuaW5ncyBk ZXBlbmQgb24gb3B0aW1pemF0aW9uLCB0aGUgZXhhY3QgdmFyaWFibGVzIG9yIGVsZW1lbnRz IGZvciB3aGljaCB0aGVyZSBhcmUgd2FybmluZ3Mgd2lsbCBkZXBlbmQgb24gdGhlIHByZWNp c2Ugb3B0aW1pemF0aW9uIG9wdGlvbnMgYW5kIHZlcnNpb24gb2YgR0NDIHVzZWQuCi5QcApO b3RlIHRoYXQgdGhlcmUgbWF5IGJlIG5vIHdhcm5pbmcgYWJvdXQgYSB2YXJpYWJsZSB0aGF0 IGlzIHVzZWQgb25seSB0byBjb21wdXRlIGEgdmFsdWUgdGhhdCBpdHNlbGYgaXMgbmV2ZXIg dXNlZCwgYmVjYXVzZSBzdWNoIGNvbXB1dGF0aW9ucyBtYXkgYmUgZGVsZXRlZCBieSBkYXRh IGZsb3cgYW5hbHlzaXMgYmVmb3JlIHRoZSB3YXJuaW5ncyBhcmUgcHJpbnRlZC4KLlBwClRo ZXNlIHdhcm5pbmdzIGFyZSBtYWRlIG9wdGlvbmFsIGJlY2F1c2UgR0NDIGlzIG5vdCBzbWFy dCBlbm91Z2ggdG8gc2VlIGFsbCB0aGUgcmVhc29ucyB3aHkgdGhlIGNvZGUgbWlnaHQgYmUg Y29ycmVjdCBkZXNwaXRlIGFwcGVhcmluZyB0byBoYXZlIGFuIGVycm9yLgpIZXJlIGlzIG9u ZSBleGFtcGxlIG9mIGhvdyB0aGlzIGNhbiBoYXBwZW46Ci5QcAouQmQgLWxpdGVyYWwgLW9m ZnNldCBpbmRlbnQKewogIGludCB4OwogIHN3aXRjaCAoeSkKICAgIHsKICAgIGNhc2UgMTog eCA9IDE7CiAgICAgIGJyZWFrOwogICAgY2FzZSAyOiB4ID0gNDsKICAgICAgYnJlYWs7CiAg ICBjYXNlIDM6IHggPSA1OwogICAgfQogIGZvbyAoeCk7Cn0KLkVkCklmIHRoZSB2YWx1ZSBv ZgouVmEgeQppcyBhbHdheXMgMSwgMiBvciAzLCB0aGVuCi5WYSB4CmlzIGFsd2F5cyBpbml0 aWFsaXplZCwgYnV0IEdDQyBkb2Vzbid0IGtub3cgdGhpcy4KSGVyZSBpcyBhbm90aGVyIGNv bW1vbiBjYXNlOgouUHAKLkJkIC1saXRlcmFsIC1vZmZzZXQgaW5kZW50CnsKICBpbnQgc2F2 ZV95OwogIGlmIChjaGFuZ2VfeSkgc2F2ZV95ID0geSwgeSA9IG5ld195OwogIC4uLgogIGlm IChjaGFuZ2VfeSkgeSA9IHNhdmVfeTsKfQouRWQKVGhpcyBoYXMgbm8gYnVnIGJlY2F1c2UK LlZhIHNhdmVfeQppcyB1c2VkIG9ubHkgaWYgaXQgaXMgc2V0LgouUHAKVGhpcyBvcHRpb24g YWxzbyB3YXJucyB3aGVuIGEgbm9uLXZvbGF0aWxlIGF1dG9tYXRpYyB2YXJpYWJsZSBtaWdo dCBiZSBjaGFuZ2VkIGJ5IGEgY2FsbCB0bwouVmEgbG9uZ2ptcCAuClRoZXNlIHdhcm5pbmdz IGFzIHdlbGwgYXJlIHBvc3NpYmxlIG9ubHkgaW4gb3B0aW1pemluZyBjb21waWxhdGlvbi4K LlBwClRoZSBjb21waWxlciBzZWVzIG9ubHkgdGhlIGNhbGxzIHRvCi5WYSBzZXRqbXAgLgpJ dCBjYW5ub3Qga25vdyB3aGVyZQouVmEgbG9uZ2ptcAp3aWxsIGJlIGNhbGxlZDsgaW4gZmFj dCwgYSBzaWduYWwgaGFuZGxlciBjb3VsZCBjYWxsIGl0IGF0IGFueSBwb2ludCBpbiB0aGUg Y29kZS4KQXMgYSByZXN1bHQsIHlvdSBtYXkgZ2V0IGEgd2FybmluZyBldmVuIHdoZW4gdGhl cmUgaXMgaW4gZmFjdCBubyBwcm9ibGVtIGJlY2F1c2UKLlZhIGxvbmdqbXAKY2Fubm90IGlu IGZhY3QgYmUgY2FsbGVkIGF0IHRoZSBwbGFjZSB3aGljaCB3b3VsZCBjYXVzZSBhIHByb2Js ZW0uCi5QcApTb21lIHNwdXJpb3VzIHdhcm5pbmdzIGNhbiBiZSBhdm9pZGVkIGlmIHlvdSBk ZWNsYXJlIGFsbCB0aGUgZnVuY3Rpb25zIHlvdSB1c2UgdGhhdCBuZXZlciByZXR1cm4gYXMK LlZhIG5vcmV0dXJuIC4KLlBwClRoaXMgd2FybmluZyBpcyBlbmFibGVkIGJ5Ci5GbCBXYWxs IC4KLlBwCi5JdCBGbCBXdW5rbm93bi1wcmFnbWFzCldhcm4gd2hlbiBhICNwcmFnbWEgZGly ZWN0aXZlIGlzIGVuY291bnRlcmVkIHdoaWNoIGlzIG5vdCB1bmRlcnN0b29kIGJ5IEdDQy4K SWYgdGhpcyBjb21tYW5kIGxpbmUgb3B0aW9uIGlzIHVzZWQsIHdhcm5pbmdzIHdpbGwgZXZl biBiZSBpc3N1ZWQgZm9yIHVua25vd24gcHJhZ21hcyBpbiBzeXN0ZW0gaGVhZGVyIGZpbGVz LgpUaGlzIGlzIG5vdCB0aGUgY2FzZSBpZiB0aGUgd2FybmluZ3Mgd2VyZSBvbmx5IGVuYWJs ZWQgYnkgdGhlCi5GbCBXYWxsCmNvbW1hbmQgbGluZSBvcHRpb24uCi5QcAouSXQgRmwgV25v LXByYWdtYXMKRG8gbm90IHdhcm4gYWJvdXQgbWlzdXNlcyBvZiBwcmFnbWFzLCBzdWNoIGFz IGluY29ycmVjdCBwYXJhbWV0ZXJzLCBpbnZhbGlkIHN5bnRheCwgb3IgY29uZmxpY3RzIGJl dHdlZW4gcHJhZ21hcy4KU2VlIGFsc28KLkZsIFd1bmtub3duLXByYWdtYXMgLgouUHAKLkl0 IEZsIFdzdHJpY3QtYWxpYXNpbmcKVGhpcyBvcHRpb24gaXMgb25seSBhY3RpdmUgd2hlbgou RmwgZnN0cmljdC1hbGlhc2luZwppcyBhY3RpdmUuCkl0IHdhcm5zIGFib3V0IGNvZGUgd2hp Y2ggbWlnaHQgYnJlYWsgdGhlIHN0cmljdCBhbGlhc2luZyBydWxlcyB0aGF0IHRoZSBjb21w aWxlciBpcyB1c2luZyBmb3Igb3B0aW1pemF0aW9uLgpUaGUgd2FybmluZyBkb2VzIG5vdCBj YXRjaCBhbGwgY2FzZXMsIGJ1dCBkb2VzIGF0dGVtcHQgdG8gY2F0Y2ggdGhlIG1vcmUgY29t bW9uIHBpdGZhbGxzLgpJdCBpcyBpbmNsdWRlZCBpbgouRmwgV2FsbCAuCi5QcAouSXQgRmwg V3N0cmljdC1hbGlhc2luZz0yClRoaXMgb3B0aW9uIGlzIG9ubHkgYWN0aXZlIHdoZW4KLkZs IGZzdHJpY3QtYWxpYXNpbmcKaXMgYWN0aXZlLgpJdCB3YXJucyBhYm91dCBjb2RlIHdoaWNo IG1pZ2h0IGJyZWFrIHRoZSBzdHJpY3QgYWxpYXNpbmcgcnVsZXMgdGhhdCB0aGUgY29tcGls ZXIgaXMgdXNpbmcgZm9yIG9wdGltaXphdGlvbi4KVGhpcyB3YXJuaW5nIGNhdGNoZXMgbW9y ZSBjYXNlcyB0aGFuCi5GbCBXc3RyaWN0LWFsaWFzaW5nICwKYnV0IGl0IHdpbGwgYWxzbyBn aXZlIGEgd2FybmluZyBmb3Igc29tZSBhbWJpZ3VvdXMgY2FzZXMgdGhhdCBhcmUgc2FmZS4K LlBwCi5JdCBGbCBXYWxsCkFsbCBvZiB0aGUgYWJvdmUKLkZsIFcKb3B0aW9ucyBjb21iaW5l ZC4KVGhpcyBlbmFibGVzIGFsbCB0aGUgd2FybmluZ3MgYWJvdXQgY29uc3RydWN0aW9ucyB0 aGF0IHNvbWUgdXNlcnMgY29uc2lkZXIgcXVlc3Rpb25hYmxlLCBhbmQgdGhhdCBhcmUgZWFz eSB0byBhdm9pZCAob3IgbW9kaWZ5IHRvIHByZXZlbnQgdGhlIHdhcm5pbmcpLCBldmVuIGlu IGNvbmp1bmN0aW9uIHdpdGggbWFjcm9zLgpUaGlzIGFsc28gZW5hYmxlcyBzb21lIGxhbmd1 YWdlLXNwZWNpZmljIHdhcm5pbmdzIGRlc2NyaWJlZCBpbgouU3kgQysrIERpYWxlY3QgT3B0 aW9ucwphbmQKLlN5IE9iamVjdGl2ZS1DIGFuZCBPYmplY3RpdmUtQysrIERpYWxlY3QgT3B0 aW9ucyAuCi5QcAouRWwKVGhlIGZvbGxvd2luZwouRmwgVy4uLgpvcHRpb25zIGFyZSBub3Qg aW1wbGllZCBieQouRmwgV2FsbCAuClNvbWUgb2YgdGhlbSB3YXJuIGFib3V0IGNvbnN0cnVj dGlvbnMgdGhhdCB1c2VycyBnZW5lcmFsbHkgZG8gbm90IGNvbnNpZGVyIHF1ZXN0aW9uYWJs ZSwgYnV0IHdoaWNoIG9jY2FzaW9uYWxseSB5b3UgbWlnaHQgd2lzaCB0byBjaGVjayBmb3I7 IG90aGVycyB3YXJuIGFib3V0IGNvbnN0cnVjdGlvbnMgdGhhdCBhcmUgbmVjZXNzYXJ5IG9y IGhhcmQgdG8gYXZvaWQgaW4gc29tZSBjYXNlcywgYW5kIHRoZXJlIGlzIG5vIHNpbXBsZSB3 YXkgdG8gbW9kaWZ5IHRoZSBjb2RlIHRvIHN1cHByZXNzIHRoZSB3YXJuaW5nLgouUHAKLkJs IC10YWcgLXdpZHRoIHh4Ci5JdCBGbCBXZXh0cmEKKFRoaXMgb3B0aW9uIHVzZWQgdG8gYmUg Y2FsbGVkCi5GbCBXIC4KVGhlIG9sZGVyIG5hbWUgaXMgc3RpbGwgc3VwcG9ydGVkLCBidXQg dGhlIG5ld2VyIG5hbWUgaXMgbW9yZSBkZXNjcmlwdGl2ZS4pIFByaW50IGV4dHJhIHdhcm5p bmcgbWVzc2FnZXMgZm9yIHRoZXNlIGV2ZW50czoKLlBwCi5CbCAtYnVsbGV0Ci5JdApBIGZ1 bmN0aW9uIGNhbiByZXR1cm4gZWl0aGVyIHdpdGggb3Igd2l0aG91dCBhIHZhbHVlLgooRmFs bGluZyBvZmYgdGhlIGVuZCBvZiB0aGUgZnVuY3Rpb24gYm9keSBpcyBjb25zaWRlcmVkIHJl dHVybmluZyB3aXRob3V0IGEgdmFsdWUuKSBGb3IgZXhhbXBsZSwgdGhpcyBmdW5jdGlvbiB3 b3VsZCBldm9rZSBzdWNoIGEgd2FybmluZzoKLlBwCi5CZCAtbGl0ZXJhbCAtb2Zmc2V0IGlu ZGVudApmb28gKGEpCnsKICBpZiAoYSBcKltHdF0gMCkKICAgIHJldHVybiBhOwp9Ci5FZAou SXQKQW4gZXhwcmVzc2lvbi1zdGF0ZW1lbnQgb3IgdGhlIGxlZnQtaGFuZCBzaWRlIG9mIGEg Y29tbWEgZXhwcmVzc2lvbiBjb250YWlucyBubyBzaWRlIGVmZmVjdHMuClRvIHN1cHByZXNz IHRoZSB3YXJuaW5nLCBjYXN0IHRoZSB1bnVzZWQgZXhwcmVzc2lvbiB0byB2b2lkLgpGb3Ig ZXhhbXBsZSwgYW4gZXhwcmVzc2lvbiBzdWNoIGFzCi5TeSB4W2ksal0Kd2lsbCBjYXVzZSBh IHdhcm5pbmcsIGJ1dAouU3kgeFsodm9pZClpLGpdCndpbGwgbm90LgouUHAKLkl0CkFuIHVu c2lnbmVkIHZhbHVlIGlzIGNvbXBhcmVkIGFnYWluc3QgemVybyB3aXRoCi5TeSBcKltMdF0K b3IKLlN5IFwqW0d0XT0gLgouUHAKLkl0ClN0b3JhZ2UtY2xhc3Mgc3BlY2lmaWVycyBsaWtl Ci5WYSBzdGF0aWMKYXJlIG5vdCB0aGUgZmlyc3QgdGhpbmdzIGluIGEgZGVjbGFyYXRpb24u CkFjY29yZGluZyB0byB0aGUgQyBTdGFuZGFyZCwgdGhpcyB1c2FnZSBpcyBvYnNvbGVzY2Vu dC4KLlBwCi5JdApJZgouRmwgV2FsbApvcgouRmwgV3VudXNlZAppcyBhbHNvIHNwZWNpZmll ZCwgd2FybiBhYm91dCB1bnVzZWQgYXJndW1lbnRzLgouUHAKLkl0CkEgY29tcGFyaXNvbiBi ZXR3ZWVuIHNpZ25lZCBhbmQgdW5zaWduZWQgdmFsdWVzIGNvdWxkIHByb2R1Y2UgYW4gaW5j b3JyZWN0IHJlc3VsdCB3aGVuIHRoZSBzaWduZWQgdmFsdWUgaXMgY29udmVydGVkIHRvIHVu c2lnbmVkLgooQnV0IGRvbid0IHdhcm4gaWYKLkZsIFduby1zaWduLWNvbXBhcmUKaXMgYWxz byBzcGVjaWZpZWQuKQouUHAKLkl0CkFuIGFnZ3JlZ2F0ZSBoYXMgYW4gaW5pdGlhbGl6ZXIg d2hpY2ggZG9lcyBub3QgaW5pdGlhbGl6ZSBhbGwgbWVtYmVycy4KVGhpcyB3YXJuaW5nIGNh biBiZSBpbmRlcGVuZGVudGx5IGNvbnRyb2xsZWQgYnkKLkZsIFdtaXNzaW5nLWZpZWxkLWlu aXRpYWxpemVycyAuCi5QcAouSXQKQSBmdW5jdGlvbiBwYXJhbWV0ZXIgaXMgZGVjbGFyZWQg d2l0aG91dCBhIHR5cGUgc3BlY2lmaWVyIGluIEsmUi1zdHlsZSBmdW5jdGlvbnM6Ci5QcAou QmQgLWxpdGVyYWwgLW9mZnNldCBpbmRlbnQKdm9pZCBmb28oYmFyKSB7IH0KLkVkCi5JdApB biBlbXB0eSBib2R5IG9jY3VycyBpbiBhbgouU3kgaWYKb3IKLlN5IGVsc2UKc3RhdGVtZW50 LgouUHAKLkl0CkEgcG9pbnRlciBpcyBjb21wYXJlZCBhZ2FpbnN0IGludGVnZXIgemVybyB3 aXRoCi5TeSBcKltMdF0gLAouU3kgXCpbTHRdPSAsCi5TeSBcKltHdF0gLApvcgouU3kgXCpb R3RdPSAuCi5QcAouSXQKQSB2YXJpYWJsZSBtaWdodCBiZSBjaGFuZ2VkIGJ5Ci5TeSBsb25n am1wCm9yCi5TeSB2Zm9yayAuCi5QcAouSXQKQW55IG9mIHNldmVyYWwgZmxvYXRpbmctcG9p bnQgZXZlbnRzIHRoYXQgb2Z0ZW4gaW5kaWNhdGUgZXJyb3JzLCBzdWNoIGFzIG92ZXJmbG93 LCB1bmRlcmZsb3csIGxvc3Mgb2YgcHJlY2lzaW9uLCBldGMuCi5QcAouSXQKQW4gZW51bWVy YXRvciBhbmQgYSBub24tZW51bWVyYXRvciBib3RoIGFwcGVhciBpbiBhIGNvbmRpdGlvbmFs IGV4cHJlc3Npb24uCi5QcAouSXQKQSBub24tc3RhdGljIHJlZmVyZW5jZSBvciBub24tc3Rh dGljCi5TeSBjb25zdAptZW1iZXIgYXBwZWFycyBpbiBhIGNsYXNzIHdpdGhvdXQgY29uc3Ry dWN0b3JzLgouUHAKLkl0CkFtYmlndW91cyB2aXJ0dWFsIGJhc2VzLgouUHAKLkl0ClN1YnNj cmlwdGluZyBhbiBhcnJheSB3aGljaCBoYXMgYmVlbiBkZWNsYXJlZAouU3kgcmVnaXN0ZXIg LgouUHAKLkl0ClRha2luZyB0aGUgYWRkcmVzcyBvZiBhIHZhcmlhYmxlIHdoaWNoIGhhcyBi ZWVuIGRlY2xhcmVkCi5TeSByZWdpc3RlciAuCi5QcAouSXQKQSBiYXNlIGNsYXNzIGlzIG5v dCBpbml0aWFsaXplZCBpbiBhIGRlcml2ZWQgY2xhc3MnIGNvcHkgY29uc3RydWN0b3IuCi5Q cAouRWwKLkl0IEZsIFduby1kaXYtYnktemVybwpEbyBub3Qgd2FybiBhYm91dCBjb21waWxl LXRpbWUgaW50ZWdlciBkaXZpc2lvbiBieSB6ZXJvLgpGbG9hdGluZyBwb2ludCBkaXZpc2lv biBieSB6ZXJvIGlzIG5vdCB3YXJuZWQgYWJvdXQsIGFzIGl0IGNhbiBiZSBhIGxlZ2l0aW1h dGUgd2F5IG9mIG9idGFpbmluZyBpbmZpbml0aWVzIGFuZCBOYU5zLgouUHAKLkl0IEZsIFdz eXN0ZW0taGVhZGVycwpQcmludCB3YXJuaW5nIG1lc3NhZ2VzIGZvciBjb25zdHJ1Y3RzIGZv dW5kIGluIHN5c3RlbSBoZWFkZXIgZmlsZXMuCldhcm5pbmdzIGZyb20gc3lzdGVtIGhlYWRl cnMgYXJlIG5vcm1hbGx5IHN1cHByZXNzZWQsIG9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhl eSB1c3VhbGx5IGRvIG5vdCBpbmRpY2F0ZSByZWFsIHByb2JsZW1zIGFuZCB3b3VsZCBvbmx5 IG1ha2UgdGhlIGNvbXBpbGVyIG91dHB1dCBoYXJkZXIgdG8gcmVhZC4KVXNpbmcgdGhpcyBj b21tYW5kIGxpbmUgb3B0aW9uIHRlbGxzIEdDQyB0byBlbWl0IHdhcm5pbmdzIGZyb20gc3lz dGVtIGhlYWRlcnMgYXMgaWYgdGhleSBvY2N1cnJlZCBpbiB1c2VyIGNvZGUuCkhvd2V2ZXIs IG5vdGUgdGhhdCB1c2luZwouRmwgV2FsbAppbiBjb25qdW5jdGlvbiB3aXRoIHRoaXMgb3B0 aW9uIHdpbGwKLkVtIG5vdAp3YXJuIGFib3V0IHVua25vd24gcHJhZ21hcyBpbiBzeXN0ZW0g aGVhZGVycy0tLWZvciB0aGF0LAouRmwgV3Vua25vd24tcHJhZ21hcwptdXN0IGFsc28gYmUg dXNlZC4KLlBwCi5JdCBGbCBXZmxvYXQtZXF1YWwKV2FybiBpZiBmbG9hdGluZyBwb2ludCB2 YWx1ZXMgYXJlIHVzZWQgaW4gZXF1YWxpdHkgY29tcGFyaXNvbnMuCi5QcApUaGUgaWRlYSBi ZWhpbmQgdGhpcyBpcyB0aGF0IHNvbWV0aW1lcyBpdCBpcyBjb252ZW5pZW50IChmb3IgdGhl IHByb2dyYW1tZXIpIHRvIGNvbnNpZGVyIGZsb2F0aW5nLXBvaW50IHZhbHVlcyBhcyBhcHBy b3hpbWF0aW9ucyB0byBpbmZpbml0ZWx5IHByZWNpc2UgcmVhbCBudW1iZXJzLgpJZiB5b3Ug YXJlIGRvaW5nIHRoaXMsIHRoZW4geW91IG5lZWQgdG8gY29tcHV0ZSAoYnkgYW5hbHl6aW5n IHRoZSBjb2RlLCBvciBpbiBzb21lIG90aGVyIHdheSkgdGhlIG1heGltdW0gb3IgbGlrZWx5 IG1heGltdW0gZXJyb3IgdGhhdCB0aGUgY29tcHV0YXRpb24gaW50cm9kdWNlcywgYW5kIGFs bG93IGZvciBpdCB3aGVuIHBlcmZvcm1pbmcgY29tcGFyaXNvbnMgKGFuZCB3aGVuIHByb2R1 Y2luZyBvdXRwdXQsIGJ1dCB0aGF0J3MgYSBkaWZmZXJlbnQgcHJvYmxlbSkuCkluIHBhcnRp Y3VsYXIsIGluc3RlYWQgb2YgdGVzdGluZyBmb3IgZXF1YWxpdHksIHlvdSB3b3VsZCBjaGVj ayB0byBzZWUgd2hldGhlciB0aGUgdHdvIHZhbHVlcyBoYXZlIHJhbmdlcyB0aGF0IG92ZXJs YXA7IGFuZCB0aGlzIGlzIGRvbmUgd2l0aCB0aGUgcmVsYXRpb25hbCBvcGVyYXRvcnMsIHNv IGVxdWFsaXR5IGNvbXBhcmlzb25zIGFyZSBwcm9iYWJseSBtaXN0YWtlbi4KLlBwCi5JdCBG bCBXdHJhZGl0aW9uYWwgKEMgb25seSkKV2FybiBhYm91dCBjZXJ0YWluIGNvbnN0cnVjdHMg dGhhdCBiZWhhdmUgZGlmZmVyZW50bHkgaW4gdHJhZGl0aW9uYWwgYW5kIElTTyBDLgpBbHNv IHdhcm4gYWJvdXQgSVNPIEMgY29uc3RydWN0cyB0aGF0IGhhdmUgbm8gdHJhZGl0aW9uYWwg QyBlcXVpdmFsZW50LCBhbmQvb3IgcHJvYmxlbWF0aWMgY29uc3RydWN0cyB3aGljaCBzaG91 bGQgYmUgYXZvaWRlZC4KLlBwCi5CbCAtYnVsbGV0Ci5JdApNYWNybyBwYXJhbWV0ZXJzIHRo YXQgYXBwZWFyIHdpdGhpbiBzdHJpbmcgbGl0ZXJhbHMgaW4gdGhlIG1hY3JvIGJvZHkuCklu IHRyYWRpdGlvbmFsIEMgbWFjcm8gcmVwbGFjZW1lbnQgdGFrZXMgcGxhY2Ugd2l0aGluIHN0 cmluZyBsaXRlcmFscywgYnV0IGRvZXMgbm90IGluIElTTyBDLgouUHAKLkl0CkluIHRyYWRp dGlvbmFsIEMsIHNvbWUgcHJlcHJvY2Vzc29yIGRpcmVjdGl2ZXMgZGlkIG5vdCBleGlzdC4K VHJhZGl0aW9uYWwgcHJlcHJvY2Vzc29ycyB3b3VsZCBvbmx5IGNvbnNpZGVyIGEgbGluZSB0 byBiZSBhIGRpcmVjdGl2ZSBpZiB0aGUKLlN5ICMKYXBwZWFyZWQgaW4gY29sdW1uIDEgb24g dGhlIGxpbmUuClRoZXJlZm9yZQouRmwgV3RyYWRpdGlvbmFsCndhcm5zIGFib3V0IGRpcmVj dGl2ZXMgdGhhdCB0cmFkaXRpb25hbCBDIHVuZGVyc3RhbmRzIGJ1dCB3b3VsZCBpZ25vcmUg YmVjYXVzZSB0aGUKLlN5ICMKZG9lcyBub3QgYXBwZWFyIGFzIHRoZSBmaXJzdCBjaGFyYWN0 ZXIgb24gdGhlIGxpbmUuCkl0IGFsc28gc3VnZ2VzdHMgeW91IGhpZGUgZGlyZWN0aXZlcyBs aWtlCi5TeSAjcHJhZ21hCm5vdCB1bmRlcnN0b29kIGJ5IHRyYWRpdGlvbmFsIEMgYnkgaW5k ZW50aW5nIHRoZW0uClNvbWUgdHJhZGl0aW9uYWwgaW1wbGVtZW50YXRpb25zIHdvdWxkIG5v dCByZWNvZ25pemUKLlN5ICNlbGlmICwKc28gaXQgc3VnZ2VzdHMgYXZvaWRpbmcgaXQgYWx0 b2dldGhlci4KLlBwCi5JdApBIGZ1bmN0aW9uLWxpa2UgbWFjcm8gdGhhdCBhcHBlYXJzIHdp dGhvdXQgYXJndW1lbnRzLgouUHAKLkl0ClRoZSB1bmFyeSBwbHVzIG9wZXJhdG9yLgouUHAK Lkl0ClRoZQouU3kgVQppbnRlZ2VyIGNvbnN0YW50IHN1ZmZpeCwgb3IgdGhlCi5TeSBGCm9y Ci5TeSBMCmZsb2F0aW5nIHBvaW50IGNvbnN0YW50IHN1ZmZpeGVzLgooVHJhZGl0aW9uYWwg QyBkb2VzIHN1cHBvcnQgdGhlCi5TeSBMCnN1ZmZpeCBvbiBpbnRlZ2VyIGNvbnN0YW50cy4p IE5vdGUsIHRoZXNlIHN1ZmZpeGVzIGFwcGVhciBpbiBtYWNyb3MgZGVmaW5lZCBpbiB0aGUg c3lzdGVtIGhlYWRlcnMgb2YgbW9zdCBtb2Rlcm4gc3lzdGVtcywgZS5nLiB0aGUKLlN5IF9N SU4KLwouU3kgX01BWAptYWNyb3MgaW4KLlZhIFwqW0x0XWxpbWl0cy5oXCpbR3RdIC4KVXNl IG9mIHRoZXNlIG1hY3JvcyBpbiB1c2VyIGNvZGUgbWlnaHQgbm9ybWFsbHkgbGVhZCB0byBz cHVyaW91cyB3YXJuaW5ncywgaG93ZXZlciBHQ0MncyBpbnRlZ3JhdGVkIHByZXByb2Nlc3Nv ciBoYXMgZW5vdWdoIGNvbnRleHQgdG8gYXZvaWQgd2FybmluZyBpbiB0aGVzZSBjYXNlcy4K LlBwCi5JdApBIGZ1bmN0aW9uIGRlY2xhcmVkIGV4dGVybmFsIGluIG9uZSBibG9jayBhbmQg dGhlbiB1c2VkIGFmdGVyIHRoZSBlbmQgb2YgdGhlIGJsb2NrLgouUHAKLkl0CkEKLlZhIHN3 aXRjaApzdGF0ZW1lbnQgaGFzIGFuIG9wZXJhbmQgb2YgdHlwZQouVmEgbG9uZyAuCi5QcAou SXQKQSBub24tCi5WYSBzdGF0aWMKZnVuY3Rpb24gZGVjbGFyYXRpb24gZm9sbG93cyBhCi5W YSBzdGF0aWMKb25lLgpUaGlzIGNvbnN0cnVjdCBpcyBub3QgYWNjZXB0ZWQgYnkgc29tZSB0 cmFkaXRpb25hbCBDIGNvbXBpbGVycy4KLlBwCi5JdApUaGUgSVNPIHR5cGUgb2YgYW4gaW50 ZWdlciBjb25zdGFudCBoYXMgYSBkaWZmZXJlbnQgd2lkdGggb3Igc2lnbmVkbmVzcyBmcm9t IGl0cyB0cmFkaXRpb25hbCB0eXBlLgpUaGlzIHdhcm5pbmcgaXMgb25seSBpc3N1ZWQgaWYg dGhlIGJhc2Ugb2YgdGhlIGNvbnN0YW50IGlzIHRlbi4KSS5lLiBoZXhhZGVjaW1hbCBvciBv Y3RhbCB2YWx1ZXMsIHdoaWNoIHR5cGljYWxseSByZXByZXNlbnQgYml0IHBhdHRlcm5zLCBh cmUgbm90IHdhcm5lZCBhYm91dC4KLlBwCi5JdApVc2FnZSBvZiBJU08gc3RyaW5nIGNvbmNh dGVuYXRpb24gaXMgZGV0ZWN0ZWQuCi5QcAouSXQKSW5pdGlhbGl6YXRpb24gb2YgYXV0b21h dGljIGFnZ3JlZ2F0ZXMuCi5QcAouSXQKSWRlbnRpZmllciBjb25mbGljdHMgd2l0aCBsYWJl bHMuClRyYWRpdGlvbmFsIEMgbGFja3MgYSBzZXBhcmF0ZSBuYW1lc3BhY2UgZm9yIGxhYmVs cy4KLlBwCi5JdApJbml0aWFsaXphdGlvbiBvZiB1bmlvbnMuCklmIHRoZSBpbml0aWFsaXpl ciBpcyB6ZXJvLCB0aGUgd2FybmluZyBpcyBvbWl0dGVkLgpUaGlzIGlzIGRvbmUgdW5kZXIg dGhlIGFzc3VtcHRpb24gdGhhdCB0aGUgemVybyBpbml0aWFsaXplciBpbiB1c2VyIGNvZGUg YXBwZWFycyBjb25kaXRpb25lZCBvbiBlLmcuCi5WYSBfX1NURENfXwp0byBhdm9pZCBtaXNz aW5nIGluaXRpYWxpemVyIHdhcm5pbmdzIGFuZCByZWxpZXMgb24gZGVmYXVsdCBpbml0aWFs aXphdGlvbiB0byB6ZXJvIGluIHRoZSB0cmFkaXRpb25hbCBDIGNhc2UuCi5QcAouSXQKQ29u dmVyc2lvbnMgYnkgcHJvdG90eXBlcyBiZXR3ZWVuIGZpeGVkL2Zsb2F0aW5nIHBvaW50IHZh bHVlcyBhbmQgdmljZSB2ZXJzYS4KVGhlIGFic2VuY2Ugb2YgdGhlc2UgcHJvdG90eXBlcyB3 aGVuIGNvbXBpbGluZyB3aXRoIHRyYWRpdGlvbmFsIEMgd291bGQgY2F1c2Ugc2VyaW91cyBw cm9ibGVtcy4KVGhpcyBpcyBhIHN1YnNldCBvZiB0aGUgcG9zc2libGUgY29udmVyc2lvbiB3 YXJuaW5ncywgZm9yIHRoZSBmdWxsIHNldCB1c2UKLkZsIFdjb252ZXJzaW9uIC4KLlBwCi5J dApVc2Ugb2YgSVNPIEMgc3R5bGUgZnVuY3Rpb24gZGVmaW5pdGlvbnMuClRoaXMgd2Fybmlu ZyBpbnRlbnRpb25hbGx5IGlzCi5FbSBub3QKaXNzdWVkIGZvciBwcm90b3R5cGUgZGVjbGFy YXRpb25zIG9yIHZhcmlhZGljIGZ1bmN0aW9ucyBiZWNhdXNlIHRoZXNlIElTTyBDIGZlYXR1 cmVzIHdpbGwgYXBwZWFyIGluIHlvdXIgY29kZSB3aGVuIHVzaW5nIGxpYmliZXJ0eSdzIHRy YWRpdGlvbmFsIEMgY29tcGF0aWJpbGl0eSBtYWNyb3MsCi5WYSBQQVJBTVMKYW5kCi5WYSBW UEFSQU1TIC4KVGhpcyB3YXJuaW5nIGlzIGFsc28gYnlwYXNzZWQgZm9yIG5lc3RlZCBmdW5j dGlvbnMgYmVjYXVzZSB0aGF0IGZlYXR1cmUgaXMgYWxyZWFkeSBhIEdDQyBleHRlbnNpb24g YW5kIHRodXMgbm90IHJlbGV2YW50IHRvIHRyYWRpdGlvbmFsIEMgY29tcGF0aWJpbGl0eS4K LlBwCi5FbAouSXQgRmwgV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVudCAoQyBvbmx5KQpX YXJuIHdoZW4gYSBkZWNsYXJhdGlvbiBpcyBmb3VuZCBhZnRlciBhIHN0YXRlbWVudCBpbiBh IGJsb2NrLgpUaGlzIGNvbnN0cnVjdCwga25vd24gZnJvbSBDKyssIHdhcyBpbnRyb2R1Y2Vk IHdpdGggSVNPIEM5OSBhbmQgaXMgYnkgZGVmYXVsdCBhbGxvd2VkIGluIEdDQy4KSXQgaXMg bm90IHN1cHBvcnRlZCBieSBJU08gQzkwIGFuZCB3YXMgbm90IHN1cHBvcnRlZCBieSBHQ0Mg dmVyc2lvbnMgYmVmb3JlIEdDQyAzLjAuCi5QcAouSXQgRmwgV3VuZGVmCldhcm4gaWYgYW4g dW5kZWZpbmVkIGlkZW50aWZpZXIgaXMgZXZhbHVhdGVkIGluIGFuCi5TeSAjaWYKZGlyZWN0 aXZlLgouUHAKLkl0IEZsIFduby1lbmRpZi1sYWJlbHMKRG8gbm90IHdhcm4gd2hlbmV2ZXIg YW4KLlN5ICNlbHNlCm9yIGFuCi5TeSAjZW5kaWYKYXJlIGZvbGxvd2VkIGJ5IHRleHQuCi5Q cAouSXQgRmwgV3NoYWRvdwpXYXJuIHdoZW5ldmVyIGEgbG9jYWwgdmFyaWFibGUgc2hhZG93 cyBhbm90aGVyIGxvY2FsIHZhcmlhYmxlLCBwYXJhbWV0ZXIgb3IgZ2xvYmFsIHZhcmlhYmxl IG9yIHdoZW5ldmVyIGEgYnVpbHQtaW4gZnVuY3Rpb24gaXMgc2hhZG93ZWQuCi5QcAouSXQg RmwgV2xhcmdlci10aGFuLSBOcyBBciBsZW4KV2FybiB3aGVuZXZlciBhbiBvYmplY3Qgb2Yg bGFyZ2VyIHRoYW4KLkVtIGxlbgpieXRlcyBpcyBkZWZpbmVkLgouUHAKLkl0IEZsIFd1bnNh ZmUtbG9vcC1vcHRpbWl6YXRpb25zCldhcm4gaWYgdGhlIGxvb3AgY2Fubm90IGJlIG9wdGlt aXplZCBiZWNhdXNlIHRoZSBjb21waWxlciBjb3VsZCBub3QgYXNzdW1lIGFueXRoaW5nIG9u IHRoZSBib3VuZHMgb2YgdGhlIGxvb3AgaW5kaWNlcy4KV2l0aAouRmwgZnVuc2FmZS1sb29w LW9wdGltaXphdGlvbnMKd2FybiBpZiB0aGUgY29tcGlsZXIgbWFkZSBzdWNoIGFzc3VtcHRp b25zLgouUHAKLkl0IEZsIFdwb2ludGVyLWFyaXRoCldhcm4gYWJvdXQgYW55dGhpbmcgdGhh dCBkZXBlbmRzIG9uIHRoZSAic2l6ZSBvZiIgYSBmdW5jdGlvbiB0eXBlIG9yIG9mCi5WYSB2 b2lkIC4KR05VIEMgYXNzaWducyB0aGVzZSB0eXBlcyBhIHNpemUgb2YgMSwgZm9yIGNvbnZl bmllbmNlIGluIGNhbGN1bGF0aW9ucyB3aXRoCi5WYSB2b2lkICoKcG9pbnRlcnMgYW5kIHBv aW50ZXJzIHRvIGZ1bmN0aW9ucy4KLlBwCi5JdCBGbCBXYmFkLWZ1bmN0aW9uLWNhc3QgKEMg b25seSkKV2FybiB3aGVuZXZlciBhIGZ1bmN0aW9uIGNhbGwgaXMgY2FzdCB0byBhIG5vbi1t YXRjaGluZyB0eXBlLgpGb3IgZXhhbXBsZSwgd2FybiBpZgouVmEgaW50IG1hbGxvYygpCmlz IGNhc3QgdG8KLlZhIGFueXRoaW5nICogLgouUHAKLkl0IEZsIFdjKystY29tcGF0Cldhcm4g YWJvdXQgSVNPIEMgY29uc3RydWN0cyB0aGF0IGFyZSBvdXRzaWRlIG9mIHRoZSBjb21tb24g c3Vic2V0IG9mIElTTyBDIGFuZCBJU08gQysrLCBlLmcuIHJlcXVlc3QgZm9yIGltcGxpY2l0 IGNvbnZlcnNpb24gZnJvbQouVmEgdm9pZCAqCnRvIGEgcG9pbnRlciB0byBub24tCi5WYSB2 b2lkCnR5cGUuCi5QcAouSXQgRmwgV2Nhc3QtcXVhbApXYXJuIHdoZW5ldmVyIGEgcG9pbnRl ciBpcyBjYXN0IHNvIGFzIHRvIHJlbW92ZSBhIHR5cGUgcXVhbGlmaWVyIGZyb20gdGhlIHRh cmdldCB0eXBlLgpGb3IgZXhhbXBsZSwgd2FybiBpZiBhCi5WYSBjb25zdCBjaGFyICoKaXMg Y2FzdCB0byBhbiBvcmRpbmFyeQouVmEgY2hhciAqIC4KLlBwCi5JdCBGbCBXY2FzdC1hbGln bgpXYXJuIHdoZW5ldmVyIGEgcG9pbnRlciBpcyBjYXN0IHN1Y2ggdGhhdCB0aGUgcmVxdWly ZWQgYWxpZ25tZW50IG9mIHRoZSB0YXJnZXQgaXMgaW5jcmVhc2VkLgpGb3IgZXhhbXBsZSwg d2FybiBpZiBhCi5WYSBjaGFyICoKaXMgY2FzdCB0byBhbgouVmEgaW50ICoKb24gbWFjaGlu ZXMgd2hlcmUgaW50ZWdlcnMgY2FuIG9ubHkgYmUgYWNjZXNzZWQgYXQgdHdvLSBvciBmb3Vy LWJ5dGUgYm91bmRhcmllcy4KLlBwCi5JdCBGbCBXd3JpdGUtc3RyaW5ncwpXaGVuIGNvbXBp bGluZyBDLCBnaXZlIHN0cmluZyBjb25zdGFudHMgdGhlIHR5cGUgQzxjb25zdCBjaGFyCi5P cCBFbSBsZW5ndGgKPiBzbyB0aGF0IGNvcHlpbmcgdGhlIGFkZHJlc3Mgb2Ygb25lIGludG8g YSBub24tCi5WYSBjb25zdAouVmEgY2hhciAqCnBvaW50ZXIgd2lsbCBnZXQgYSB3YXJuaW5n OyB3aGVuIGNvbXBpbGluZyBDKyssIHdhcm4gYWJvdXQgdGhlIGRlcHJlY2F0ZWQgY29udmVy c2lvbiBmcm9tIHN0cmluZyBjb25zdGFudHMgdG8KLlZhIGNoYXIgKiAuClRoZXNlIHdhcm5p bmdzIHdpbGwgaGVscCB5b3UgZmluZCBhdCBjb21waWxlIHRpbWUgY29kZSB0aGF0IGNhbiB0 cnkgdG8gd3JpdGUgaW50byBhIHN0cmluZyBjb25zdGFudCwgYnV0IG9ubHkgaWYgeW91IGhh dmUgYmVlbiB2ZXJ5IGNhcmVmdWwgYWJvdXQgdXNpbmcKLlZhIGNvbnN0CmluIGRlY2xhcmF0 aW9ucyBhbmQgcHJvdG90eXBlcy4KT3RoZXJ3aXNlLCBpdCB3aWxsIGp1c3QgYmUgYSBudWlz YW5jZTsgdGhpcyBpcyB3aHkgd2UgZGlkIG5vdCBtYWtlCi5GbCBXYWxsCnJlcXVlc3QgdGhl c2Ugd2FybmluZ3MuCi5QcAouSXQgRmwgV2NvbnZlcnNpb24KV2FybiBpZiBhIHByb3RvdHlw ZSBjYXVzZXMgYSB0eXBlIGNvbnZlcnNpb24gdGhhdCBpcyBkaWZmZXJlbnQgZnJvbSB3aGF0 IHdvdWxkIGhhcHBlbiB0byB0aGUgc2FtZSBhcmd1bWVudCBpbiB0aGUgYWJzZW5jZSBvZiBh IHByb3RvdHlwZS4KVGhpcyBpbmNsdWRlcyBjb252ZXJzaW9ucyBvZiBmaXhlZCBwb2ludCB0 byBmbG9hdGluZyBhbmQgdmljZSB2ZXJzYSwgYW5kIGNvbnZlcnNpb25zIGNoYW5naW5nIHRo ZSB3aWR0aCBvciBzaWduZWRuZXNzIG9mIGEgZml4ZWQgcG9pbnQgYXJndW1lbnQgZXhjZXB0 IHdoZW4gdGhlIHNhbWUgYXMgdGhlIGRlZmF1bHQgcHJvbW90aW9uLgouUHAKQWxzbywgd2Fy biBpZiBhIG5lZ2F0aXZlIGludGVnZXIgY29uc3RhbnQgZXhwcmVzc2lvbiBpcyBpbXBsaWNp dGx5IGNvbnZlcnRlZCB0byBhbiB1bnNpZ25lZCB0eXBlLgpGb3IgZXhhbXBsZSwgd2FybiBh Ym91dCB0aGUgYXNzaWdubWVudAouVmEgeCA9IC0xCmlmCi5WYSB4CmlzIHVuc2lnbmVkLgpC dXQgZG8gbm90IHdhcm4gYWJvdXQgZXhwbGljaXQgY2FzdHMgbGlrZQouVmEgKHVuc2lnbmVk KSAtMSAuCi5QcAouSXQgRmwgV3NpZ24tY29tcGFyZQpXYXJuIHdoZW4gYSBjb21wYXJpc29u IGJldHdlZW4gc2lnbmVkIGFuZCB1bnNpZ25lZCB2YWx1ZXMgY291bGQgcHJvZHVjZSBhbiBp bmNvcnJlY3QgcmVzdWx0IHdoZW4gdGhlIHNpZ25lZCB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8g dW5zaWduZWQuClRoaXMgd2FybmluZyBpcyBhbHNvIGVuYWJsZWQgYnkKLkZsIFdleHRyYSA7 CnRvIGdldCB0aGUgb3RoZXIgd2FybmluZ3Mgb2YKLkZsIFdleHRyYQp3aXRob3V0IHRoaXMg d2FybmluZywgdXNlCi5GbCBXZXh0cmEgRmwgV25vLXNpZ24tY29tcGFyZSAuCi5QcAouSXQg RmwgV2FnZ3JlZ2F0ZS1yZXR1cm4KV2FybiBpZiBhbnkgZnVuY3Rpb25zIHRoYXQgcmV0dXJu IHN0cnVjdHVyZXMgb3IgdW5pb25zIGFyZSBkZWZpbmVkIG9yIGNhbGxlZC4KKEluIGxhbmd1 YWdlcyB3aGVyZSB5b3UgY2FuIHJldHVybiBhbiBhcnJheSwgdGhpcyBhbHNvIGVsaWNpdHMg YSB3YXJuaW5nLikKLlBwCi5JdCBGbCBXbm8tYXR0cmlidXRlcwpEbyBub3Qgd2FybiBpZiBh biB1bmV4cGVjdGVkCi5WYSBfX2F0dHJpYnV0ZV9fCmlzIHVzZWQsIHN1Y2ggYXMgdW5yZWNv Z25pemVkIGF0dHJpYnV0ZXMsIGZ1bmN0aW9uIGF0dHJpYnV0ZXMgYXBwbGllZCB0byB2YXJp YWJsZXMsIGV0Yy4KVGhpcyB3aWxsIG5vdCBzdG9wIGVycm9ycyBmb3IgaW5jb3JyZWN0IHVz ZSBvZiBzdXBwb3J0ZWQgYXR0cmlidXRlcy4KLlBwCi5JdCBGbCBXc3RyaWN0LXByb3RvdHlw ZXMgKEMgb25seSkKV2FybiBpZiBhIGZ1bmN0aW9uIGlzIGRlY2xhcmVkIG9yIGRlZmluZWQg d2l0aG91dCBzcGVjaWZ5aW5nIHRoZSBhcmd1bWVudCB0eXBlcy4KKEFuIG9sZC1zdHlsZSBm dW5jdGlvbiBkZWZpbml0aW9uIGlzIHBlcm1pdHRlZCB3aXRob3V0IGEgd2FybmluZyBpZiBw cmVjZWRlZCBieSBhIGRlY2xhcmF0aW9uIHdoaWNoIHNwZWNpZmllcyB0aGUgYXJndW1lbnQg dHlwZXMuKQouUHAKLkl0IEZsIFdvbGQtc3R5bGUtZGVmaW5pdGlvbiAoQyBvbmx5KQpXYXJu IGlmIGFuIG9sZC1zdHlsZSBmdW5jdGlvbiBkZWZpbml0aW9uIGlzIHVzZWQuCkEgd2Fybmlu ZyBpcyBnaXZlbiBldmVuIGlmIHRoZXJlIGlzIGEgcHJldmlvdXMgcHJvdG90eXBlLgouUHAK Lkl0IEZsIFdtaXNzaW5nLXByb3RvdHlwZXMgKEMgb25seSkKV2FybiBpZiBhIGdsb2JhbCBm dW5jdGlvbiBpcyBkZWZpbmVkIHdpdGhvdXQgYSBwcmV2aW91cyBwcm90b3R5cGUgZGVjbGFy YXRpb24uClRoaXMgd2FybmluZyBpcyBpc3N1ZWQgZXZlbiBpZiB0aGUgZGVmaW5pdGlvbiBp dHNlbGYgcHJvdmlkZXMgYSBwcm90b3R5cGUuClRoZSBhaW0gaXMgdG8gZGV0ZWN0IGdsb2Jh bCBmdW5jdGlvbnMgdGhhdCBmYWlsIHRvIGJlIGRlY2xhcmVkIGluIGhlYWRlciBmaWxlcy4K LlBwCi5JdCBGbCBXbWlzc2luZy1kZWNsYXJhdGlvbnMgKEMgb25seSkKV2FybiBpZiBhIGds b2JhbCBmdW5jdGlvbiBpcyBkZWZpbmVkIHdpdGhvdXQgYSBwcmV2aW91cyBkZWNsYXJhdGlv bi4KRG8gc28gZXZlbiBpZiB0aGUgZGVmaW5pdGlvbiBpdHNlbGYgcHJvdmlkZXMgYSBwcm90 b3R5cGUuClVzZSB0aGlzIG9wdGlvbiB0byBkZXRlY3QgZ2xvYmFsIGZ1bmN0aW9ucyB0aGF0 IGFyZSBub3QgZGVjbGFyZWQgaW4gaGVhZGVyIGZpbGVzLgouUHAKLkl0IEZsIFdtaXNzaW5n LWZpZWxkLWluaXRpYWxpemVycwpXYXJuIGlmIGEgc3RydWN0dXJlJ3MgaW5pdGlhbGl6ZXIg aGFzIHNvbWUgZmllbGRzIG1pc3NpbmcuCkZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIGNv ZGUgd291bGQgY2F1c2Ugc3VjaCBhIHdhcm5pbmcsIGJlY2F1c2UKLlZhIHguaAppcyBpbXBs aWNpdGx5IHplcm86Ci5QcAouQmQgLWxpdGVyYWwgLW9mZnNldCBpbmRlbnQKc3RydWN0IHMg eyBpbnQgZiwgZywgaDsgfTsKc3RydWN0IHMgeCA9IHsgMywgNCB9OwouRWQKVGhpcyBvcHRp b24gZG9lcyBub3Qgd2FybiBhYm91dCBkZXNpZ25hdGVkIGluaXRpYWxpemVycywgc28gdGhl IGZvbGxvd2luZyBtb2RpZmljYXRpb24gd291bGQgbm90IHRyaWdnZXIgYSB3YXJuaW5nOgou UHAKLkJkIC1saXRlcmFsIC1vZmZzZXQgaW5kZW50CnN0cnVjdCBzIHsgaW50IGYsIGcsIGg7 IH07CnN0cnVjdCBzIHggPSB7IC5mID0gMywgLmcgPSA0IH07Ci5FZApUaGlzIHdhcm5pbmcg aXMgaW5jbHVkZWQgaW4KLkZsIFdleHRyYSAuClRvIGdldCBvdGhlcgouRmwgV2V4dHJhCndh cm5pbmdzIHdpdGhvdXQgdGhpcyBvbmUsIHVzZQouRmwgV2V4dHJhIEZsIFduby1taXNzaW5n LWZpZWxkLWluaXRpYWxpemVycyAuCi5QcAouSXQgRmwgV21pc3Npbmctbm9yZXR1cm4KV2Fy biBhYm91dCBmdW5jdGlvbnMgd2hpY2ggbWlnaHQgYmUgY2FuZGlkYXRlcyBmb3IgYXR0cmli dXRlCi5WYSBub3JldHVybiAuCk5vdGUgdGhlc2UgYXJlIG9ubHkgcG9zc2libGUgY2FuZGlk YXRlcywgbm90IGFic29sdXRlIG9uZXMuCkNhcmUgc2hvdWxkIGJlIHRha2VuIHRvIG1hbnVh bGx5IHZlcmlmeSBmdW5jdGlvbnMgYWN0dWFsbHkgZG8gbm90IGV2ZXIgcmV0dXJuIGJlZm9y ZSBhZGRpbmcgdGhlCi5WYSBub3JldHVybgphdHRyaWJ1dGUsIG90aGVyd2lzZSBzdWJ0bGUg Y29kZSBnZW5lcmF0aW9uIGJ1Z3MgY291bGQgYmUgaW50cm9kdWNlZC4KWW91IHdpbGwgbm90 IGdldCBhIHdhcm5pbmcgZm9yCi5WYSBtYWluCmluIGhvc3RlZCBDIGVudmlyb25tZW50cy4K LlBwCi5JdCBGbCBXbWlzc2luZy1mb3JtYXQtYXR0cmlidXRlCldhcm4gYWJvdXQgZnVuY3Rp b24gcG9pbnRlcnMgd2hpY2ggbWlnaHQgYmUgY2FuZGlkYXRlcyBmb3IKLlZhIGZvcm1hdAph dHRyaWJ1dGVzLgpOb3RlIHRoZXNlIGFyZSBvbmx5IHBvc3NpYmxlIGNhbmRpZGF0ZXMsIG5v dCBhYnNvbHV0ZSBvbmVzLgpHQ0Mgd2lsbCBndWVzcyB0aGF0IGZ1bmN0aW9uIHBvaW50ZXJz IHdpdGgKLlZhIGZvcm1hdAphdHRyaWJ1dGVzIHRoYXQgYXJlIHVzZWQgaW4gYXNzaWdubWVu dCwgaW5pdGlhbGl6YXRpb24sIHBhcmFtZXRlciBwYXNzaW5nIG9yIHJldHVybiBzdGF0ZW1l bnRzIHNob3VsZCBoYXZlIGEgY29ycmVzcG9uZGluZwouVmEgZm9ybWF0CmF0dHJpYnV0ZSBp biB0aGUgcmVzdWx0aW5nIHR5cGUuCkkuZS4gdGhlIGxlZnQtaGFuZCBzaWRlIG9mIHRoZSBh c3NpZ25tZW50IG9yIGluaXRpYWxpemF0aW9uLCB0aGUgdHlwZSBvZiB0aGUgcGFyYW1ldGVy IHZhcmlhYmxlLCBvciB0aGUgcmV0dXJuIHR5cGUgb2YgdGhlIGNvbnRhaW5pbmcgZnVuY3Rp b24gcmVzcGVjdGl2ZWx5IHNob3VsZCBhbHNvIGhhdmUgYQouVmEgZm9ybWF0CmF0dHJpYnV0 ZSB0byBhdm9pZCB0aGUgd2FybmluZy4KLlBwCkdDQyB3aWxsIGFsc28gd2FybiBhYm91dCBm dW5jdGlvbiBkZWZpbml0aW9ucyB3aGljaCBtaWdodCBiZSBjYW5kaWRhdGVzIGZvcgouVmEg Zm9ybWF0CmF0dHJpYnV0ZXMuCkFnYWluLCB0aGVzZSBhcmUgb25seSBwb3NzaWJsZSBjYW5k aWRhdGVzLgpHQ0Mgd2lsbCBndWVzcyB0aGF0Ci5WYSBmb3JtYXQKYXR0cmlidXRlcyBtaWdo dCBiZSBhcHByb3ByaWF0ZSBmb3IgYW55IGZ1bmN0aW9uIHRoYXQgY2FsbHMgYSBmdW5jdGlv biBsaWtlCi5WYSB2cHJpbnRmCm9yCi5WYSB2c2NhbmYgLApidXQgdGhpcyBtaWdodCBub3Qg YWx3YXlzIGJlIHRoZSBjYXNlLCBhbmQgc29tZSBmdW5jdGlvbnMgZm9yIHdoaWNoCi5WYSBm b3JtYXQKYXR0cmlidXRlcyBhcmUgYXBwcm9wcmlhdGUgbWF5IG5vdCBiZSBkZXRlY3RlZC4K LlBwCi5JdCBGbCBXbm8tbXVsdGljaGFyCkRvIG5vdCB3YXJuIGlmIGEgbXVsdGljaGFyYWN0 ZXIgY29uc3RhbnQKLlN5ICggJ0ZPT0YnICkKaXMgdXNlZC4KVXN1YWxseSB0aGV5IGluZGlj YXRlIGEgdHlwbyBpbiB0aGUgdXNlcidzIGNvZGUsIGFzIHRoZXkgaGF2ZSBpbXBsZW1lbnRh dGlvbi1kZWZpbmVkIHZhbHVlcywgYW5kIHNob3VsZCBub3QgYmUgdXNlZCBpbiBwb3J0YWJs ZSBjb2RlLgouUHAKLkl0IFN5IC1Xbm9ybWFsaXplZD1cKltMdF1ub25lfGlkfG5mY3xuZmtj XCpbR3RdIE5zCkluIElTTyBDIGFuZCBJU08gQysrLCB0d28gaWRlbnRpZmllcnMgYXJlIGRp ZmZlcmVudCBpZiB0aGV5IGFyZSBkaWZmZXJlbnQgc2VxdWVuY2VzIG9mIGNoYXJhY3RlcnMu Ckhvd2V2ZXIsIHNvbWV0aW1lcyB3aGVuIGNoYXJhY3RlcnMgb3V0c2lkZSB0aGUgYmFzaWMg QVNDSUkgY2hhcmFjdGVyIHNldCBhcmUgdXNlZCwgeW91IGNhbiBoYXZlIHR3byBkaWZmZXJl bnQgY2hhcmFjdGVyIHNlcXVlbmNlcyB0aGF0IGxvb2sgdGhlIHNhbWUuClRvIGF2b2lkIGNv bmZ1c2lvbiwgdGhlIElTTyAxMDY0NiBzdGFuZGFyZCBzZXRzIG91dCBzb21lCi5FbSBub3Jt YWxpemF0aW9uIHJ1bGVzCndoaWNoIHdoZW4gYXBwbGllZCBlbnN1cmUgdGhhdCB0d28gc2Vx dWVuY2VzIHRoYXQgbG9vayB0aGUgc2FtZSBhcmUgdHVybmVkIGludG8gdGhlIHNhbWUgc2Vx dWVuY2UuCkdDQyBjYW4gd2FybiB5b3UgaWYgeW91IGFyZSB1c2luZyBpZGVudGlmaWVycyB3 aGljaCBoYXZlIG5vdCBiZWVuIG5vcm1hbGl6ZWQ7IHRoaXMgb3B0aW9uIGNvbnRyb2xzIHRo YXQgd2FybmluZy4KLlBwClRoZXJlIGFyZSBmb3VyIGxldmVscyBvZiB3YXJuaW5nIHRoYXQg R0NDIHN1cHBvcnRzLgpUaGUgZGVmYXVsdCBpcwouRmwgV25vcm1hbGl6ZWQ9bmZjICwKd2hp Y2ggd2FybnMgYWJvdXQgYW55IGlkZW50aWZpZXIgd2hpY2ggaXMgbm90IGluIHRoZSBJU08g MTA2NDYgIkMiIG5vcm1hbGl6ZWQgZm9ybSwKLkVtIE5GQyAuCk5GQyBpcyB0aGUgcmVjb21t ZW5kZWQgZm9ybSBmb3IgbW9zdCB1c2VzLgouUHAKVW5mb3J0dW5hdGVseSwgdGhlcmUgYXJl IHNvbWUgY2hhcmFjdGVycyB3aGljaCBJU08gQyBhbmQgSVNPIEMrKyBhbGxvdyBpbiBpZGVu dGlmaWVycyB0aGF0IHdoZW4gdHVybmVkIGludG8gTkZDIGFyZW4ndCBhbGxvd2FibGUgYXMg aWRlbnRpZmllcnMuClRoYXQgaXMsIHRoZXJlJ3Mgbm8gd2F5IHRvIHVzZSB0aGVzZSBzeW1i b2xzIGluIHBvcnRhYmxlIElTTyBDIG9yIEMrKyBhbmQgaGF2ZSBhbGwgeW91ciBpZGVudGlm aWVycyBpbiBORkMuCi5GbCBXbm9ybWFsaXplZD1pZApzdXBwcmVzc2VzIHRoZSB3YXJuaW5n IGZvciB0aGVzZSBjaGFyYWN0ZXJzLgpJdCBpcyBob3BlZCB0aGF0IGZ1dHVyZSB2ZXJzaW9u cyBvZiB0aGUgc3RhbmRhcmRzIGludm9sdmVkIHdpbGwgY29ycmVjdCB0aGlzLCB3aGljaCBp cyB3aHkgdGhpcyBvcHRpb24gaXMgbm90IHRoZSBkZWZhdWx0LgouUHAKWW91IGNhbiBzd2l0 Y2ggdGhlIHdhcm5pbmcgb2ZmIGZvciBhbGwgY2hhcmFjdGVycyBieSB3cml0aW5nCi5GbCBX bm9ybWFsaXplZD1ub25lIC4KWW91IHdvdWxkIG9ubHkgd2FudCB0byBkbyB0aGlzIGlmIHlv dSB3ZXJlIHVzaW5nIHNvbWUgb3RoZXIgbm9ybWFsaXphdGlvbiBzY2hlbWUgKGxpa2UgIkQi KSwgYmVjYXVzZSBvdGhlcndpc2UgeW91IGNhbiBlYXNpbHkgY3JlYXRlIGJ1Z3MgdGhhdCBh cmUgbGl0ZXJhbGx5IGltcG9zc2libGUgdG8gc2VlLgouUHAKU29tZSBjaGFyYWN0ZXJzIGlu IElTTyAxMDY0NiBoYXZlIGRpc3RpbmN0IG1lYW5pbmdzIGJ1dCBsb29rIGlkZW50aWNhbCBp biBzb21lIGZvbnRzIG9yIGRpc3BsYXkgbWV0aG9kb2xvZ2llcywgZXNwZWNpYWxseSBvbmNl IGZvcm1hdHRpbmcgaGFzIGJlZW4gYXBwbGllZC4KRm9yIGluc3RhbmNlCi5WYSBcZXUyMDdG ICwKIlNVUEVSU0NSSVBUIExBVElOIFNNQUxMIExFVFRFUiBOIiwgd2lsbCBkaXNwbGF5IGp1 c3QgbGlrZSBhIHJlZ3VsYXIKLlZhIG4Kd2hpY2ggaGFzIGJlZW4gcGxhY2VkIGluIGEgc3Vw ZXJzY3JpcHQuCklTTyAxMDY0NiBkZWZpbmVzIHRoZQouRW0gTkZLQwpub3JtYWxpc2F0aW9u IHNjaGVtZSB0byBjb252ZXJ0IGFsbCB0aGVzZSBpbnRvIGEgc3RhbmRhcmQgZm9ybSBhcyB3 ZWxsLCBhbmQgR0NDIHdpbGwgd2FybiBpZiB5b3VyIGNvZGUgaXMgbm90IGluIE5GS0MgaWYg eW91IHVzZQouRmwgV25vcm1hbGl6ZWQ9bmZrYyAuClRoaXMgd2FybmluZyBpcyBjb21wYXJh YmxlIHRvIHdhcm5pbmcgYWJvdXQgZXZlcnkgaWRlbnRpZmllciB0aGF0IGNvbnRhaW5zIHRo ZSBsZXR0ZXIgTyBiZWNhdXNlIGl0IG1pZ2h0IGJlIGNvbmZ1c2VkIHdpdGggdGhlIGRpZ2l0 IDAsIGFuZCBzbyBpcyBub3QgdGhlIGRlZmF1bHQsIGJ1dCBtYXkgYmUgdXNlZnVsIGFzIGEg bG9jYWwgY29kaW5nIGNvbnZlbnRpb24gaWYgdGhlIHByb2dyYW1taW5nIGVudmlyb25tZW50 IGlzIHVuYWJsZSB0byBiZSBmaXhlZCB0byBkaXNwbGF5IHRoZXNlIGNoYXJhY3RlcnMgZGlz dGluY3RseS4KLlBwCi5JdCBGbCBXbm8tZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMKRG8gbm90 IHdhcm4gYWJvdXQgdXNlcyBvZiBmdW5jdGlvbnMsIHZhcmlhYmxlcywgYW5kIHR5cGVzIG1h cmtlZCBhcyBkZXByZWNhdGVkIGJ5IHVzaW5nIHRoZQouVmEgZGVwcmVjYXRlZAphdHRyaWJ1 dGUuCihAcHhyZWZ7RnVuY3Rpb24gQXR0cmlidXRlc30sIEBweHJlZntWYXJpYWJsZSBBdHRy aWJ1dGVzfSwgQHB4cmVme1R5cGUgQXR0cmlidXRlc30uKQouUHAKLkl0IEZsIFdwYWNrZWQK V2FybiBpZiBhIHN0cnVjdHVyZSBpcyBnaXZlbiB0aGUgcGFja2VkIGF0dHJpYnV0ZSwgYnV0 IHRoZSBwYWNrZWQgYXR0cmlidXRlIGhhcyBubyBlZmZlY3Qgb24gdGhlIGxheW91dCBvciBz aXplIG9mIHRoZSBzdHJ1Y3R1cmUuClN1Y2ggc3RydWN0dXJlcyBtYXkgYmUgbWlzLWFsaWdu ZWQgZm9yIGxpdHRsZSBiZW5lZml0LgpGb3IgaW5zdGFuY2UsIGluIHRoaXMgY29kZSwgdGhl IHZhcmlhYmxlCi5WYSBmLngKaW4KLlZhIHN0cnVjdCBiYXIKd2lsbCBiZSBtaXNhbGlnbmVk IGV2ZW4gdGhvdWdoCi5WYSBzdHJ1Y3QgYmFyCmRvZXMgbm90IGl0c2VsZiBoYXZlIHRoZSBw YWNrZWQgYXR0cmlidXRlOgouUHAKLkJkIC1saXRlcmFsIC1vZmZzZXQgaW5kZW50CnN0cnVj dCBmb28gewogIGludCB4OwogIGNoYXIgYSwgYiwgYywgZDsKfSBfX2F0dHJpYnV0ZV9fKChw YWNrZWQpKTsKc3RydWN0IGJhciB7CiAgY2hhciB6OwogIHN0cnVjdCBmb28gZjsKfTsKLkVk Ci5JdCBGbCBXcGFkZGVkCldhcm4gaWYgcGFkZGluZyBpcyBpbmNsdWRlZCBpbiBhIHN0cnVj dHVyZSwgZWl0aGVyIHRvIGFsaWduIGFuIGVsZW1lbnQgb2YgdGhlIHN0cnVjdHVyZSBvciB0 byBhbGlnbiB0aGUgd2hvbGUgc3RydWN0dXJlLgpTb21ldGltZXMgd2hlbiB0aGlzIGhhcHBl bnMgaXQgaXMgcG9zc2libGUgdG8gcmVhcnJhbmdlIHRoZSBmaWVsZHMgb2YgdGhlIHN0cnVj dHVyZSB0byByZWR1Y2UgdGhlIHBhZGRpbmcgYW5kIHNvIG1ha2UgdGhlIHN0cnVjdHVyZSBz bWFsbGVyLgouUHAKLkl0IEZsIFdyZWR1bmRhbnQtZGVjbHMKV2FybiBpZiBhbnl0aGluZyBp cyBkZWNsYXJlZCBtb3JlIHRoYW4gb25jZSBpbiB0aGUgc2FtZSBzY29wZSwgZXZlbiBpbiBj YXNlcyB3aGVyZSBtdWx0aXBsZSBkZWNsYXJhdGlvbiBpcyB2YWxpZCBhbmQgY2hhbmdlcyBu b3RoaW5nLgouUHAKLkl0IEZsIFduZXN0ZWQtZXh0ZXJucyAoQyBvbmx5KQpXYXJuIGlmIGFu Ci5WYSBleHRlcm4KZGVjbGFyYXRpb24gaXMgZW5jb3VudGVyZWQgd2l0aGluIGEgZnVuY3Rp b24uCi5QcAouSXQgRmwgV3VucmVhY2hhYmxlLWNvZGUKV2FybiBpZiB0aGUgY29tcGlsZXIg ZGV0ZWN0cyB0aGF0IGNvZGUgd2lsbCBuZXZlciBiZSBleGVjdXRlZC4KLlBwClRoaXMgb3B0 aW9uIGlzIGludGVuZGVkIHRvIHdhcm4gd2hlbiB0aGUgY29tcGlsZXIgZGV0ZWN0cyB0aGF0 IGF0IGxlYXN0IGEgd2hvbGUgbGluZSBvZiBzb3VyY2UgY29kZSB3aWxsIG5ldmVyIGJlIGV4 ZWN1dGVkLCBiZWNhdXNlIHNvbWUgY29uZGl0aW9uIGlzIG5ldmVyIHNhdGlzZmllZCBvciBi ZWNhdXNlIGl0IGlzIGFmdGVyIGEgcHJvY2VkdXJlIHRoYXQgbmV2ZXIgcmV0dXJucy4KLlBw Ckl0IGlzIHBvc3NpYmxlIGZvciB0aGlzIG9wdGlvbiB0byBwcm9kdWNlIGEgd2FybmluZyBl dmVuIHRob3VnaCB0aGVyZSBhcmUgY2lyY3Vtc3RhbmNlcyB1bmRlciB3aGljaCBwYXJ0IG9m IHRoZSBhZmZlY3RlZCBsaW5lIGNhbiBiZSBleGVjdXRlZCwgc28gY2FyZSBzaG91bGQgYmUg dGFrZW4gd2hlbiByZW1vdmluZyBhcHBhcmVudGx5LXVucmVhY2hhYmxlIGNvZGUuCi5QcApG b3IgaW5zdGFuY2UsIHdoZW4gYSBmdW5jdGlvbiBpcyBpbmxpbmVkLCBhIHdhcm5pbmcgbWF5 IG1lYW4gdGhhdCB0aGUgbGluZSBpcyB1bnJlYWNoYWJsZSBpbiBvbmx5IG9uZSBpbmxpbmVk IGNvcHkgb2YgdGhlIGZ1bmN0aW9uLgouUHAKVGhpcyBvcHRpb24gaXMgbm90IG1hZGUgcGFy dCBvZgouRmwgV2FsbApiZWNhdXNlIGluIGEgZGVidWdnaW5nIHZlcnNpb24gb2YgYSBwcm9n cmFtIHRoZXJlIGlzIG9mdGVuIHN1YnN0YW50aWFsIGNvZGUgd2hpY2ggY2hlY2tzIGNvcnJl Y3QgZnVuY3Rpb25pbmcgb2YgdGhlIHByb2dyYW0gYW5kIGlzLCBob3BlZnVsbHksIHVucmVh Y2hhYmxlIGJlY2F1c2UgdGhlIHByb2dyYW0gZG9lcyB3b3JrLgpBbm90aGVyIGNvbW1vbiB1 c2Ugb2YgdW5yZWFjaGFibGUgY29kZSBpcyB0byBwcm92aWRlIGJlaGF2aW9yIHdoaWNoIGlz IHNlbGVjdGFibGUgYXQgY29tcGlsZS10aW1lLgouUHAKLkl0IEZsIFdpbmxpbmUKV2FybiBp ZiBhIGZ1bmN0aW9uIGNhbiBub3QgYmUgaW5saW5lZCBhbmQgaXQgd2FzIGRlY2xhcmVkIGFz IGlubGluZS4KRXZlbiB3aXRoIHRoaXMgb3B0aW9uLCB0aGUgY29tcGlsZXIgd2lsbCBub3Qg d2FybiBhYm91dCBmYWlsdXJlcyB0byBpbmxpbmUgZnVuY3Rpb25zIGRlY2xhcmVkIGluIHN5 c3RlbSBoZWFkZXJzLgouUHAKVGhlIGNvbXBpbGVyIHVzZXMgYSB2YXJpZXR5IG9mIGhldXJp c3RpY3MgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRvIGlubGluZSBhIGZ1bmN0aW9u LgpGb3IgZXhhbXBsZSwgdGhlIGNvbXBpbGVyIHRha2VzIGludG8gYWNjb3VudCB0aGUgc2l6 ZSBvZiB0aGUgZnVuY3Rpb24gYmVpbmcgaW5saW5lZCBhbmQgdGhlIGFtb3VudCBvZiBpbmxp bmluZyB0aGF0IGhhcyBhbHJlYWR5IGJlZW4gZG9uZSBpbiB0aGUgY3VycmVudCBmdW5jdGlv bi4KVGhlcmVmb3JlLCBzZWVtaW5nbHkgaW5zaWduaWZpY2FudCBjaGFuZ2VzIGluIHRoZSBz b3VyY2UgcHJvZ3JhbSBjYW4gY2F1c2UgdGhlIHdhcm5pbmdzIHByb2R1Y2VkIGJ5Ci5GbCBX aW5saW5lCnRvIGFwcGVhciBvciBkaXNhcHBlYXIuCi5QcAouSXQgRmwgV25vLWludmFsaWQt b2Zmc2V0b2YgKEMrKyBvbmx5KQpTdXBwcmVzcyB3YXJuaW5ncyBmcm9tIGFwcGx5aW5nIHRo ZQouU3kgb2Zmc2V0b2YKbWFjcm8gdG8gYSBub24tUE9EIHR5cGUuCkFjY29yZGluZyB0byB0 aGUgMTk5OCBJU08gQysrIHN0YW5kYXJkLCBhcHBseWluZwouU3kgb2Zmc2V0b2YKdG8gYSBu b24tUE9EIHR5cGUgaXMgdW5kZWZpbmVkLgpJbiBleGlzdGluZyBDKysgaW1wbGVtZW50YXRp b25zLCBob3dldmVyLAouU3kgb2Zmc2V0b2YKdHlwaWNhbGx5IGdpdmVzIG1lYW5pbmdmdWwg cmVzdWx0cyBldmVuIHdoZW4gYXBwbGllZCB0byBjZXJ0YWluIGtpbmRzIG9mIG5vbi1QT0Qg dHlwZXMuIChTdWNoIGFzIGEgc2ltcGxlCi5TeSBzdHJ1Y3QKdGhhdCBmYWlscyB0byBiZSBh IFBPRCB0eXBlIG9ubHkgYnkgdmlydHVlIG9mIGhhdmluZyBhIGNvbnN0cnVjdG9yLikgVGhp cyBmbGFnIGlzIGZvciB1c2VycyB3aG8gYXJlIGF3YXJlIHRoYXQgdGhleSBhcmUgd3JpdGlu ZyBub25wb3J0YWJsZSBjb2RlIGFuZCB3aG8gaGF2ZSBkZWxpYmVyYXRlbHkgY2hvc2VuIHRv IGlnbm9yZSB0aGUgd2FybmluZyBhYm91dCBpdC4KLlBwClRoZSByZXN0cmljdGlvbnMgb24K LlN5IG9mZnNldG9mCm1heSBiZSByZWxheGVkIGluIGEgZnV0dXJlIHZlcnNpb24gb2YgdGhl IEMrKyBzdGFuZGFyZC4KLlBwCi5JdCBGbCBXbm8taW50LXRvLXBvaW50ZXItY2FzdCAoQyBv bmx5KQpTdXBwcmVzcyB3YXJuaW5ncyBmcm9tIGNhc3RzIHRvIHBvaW50ZXIgdHlwZSBvZiBh biBpbnRlZ2VyIG9mIGEgZGlmZmVyZW50IHNpemUuCi5QcAouSXQgRmwgV25vLXBvaW50ZXIt dG8taW50LWNhc3QgKEMgb25seSkKU3VwcHJlc3Mgd2FybmluZ3MgZnJvbSBjYXN0cyBmcm9t IGEgcG9pbnRlciB0byBhbiBpbnRlZ2VyIHR5cGUgb2YgYSBkaWZmZXJlbnQgc2l6ZS4KLlBw Ci5JdCBGbCBXaW52YWxpZC1wY2gKV2FybiBpZiBhIHByZWNvbXBpbGVkIGhlYWRlciBpcyBm b3VuZCBpbiB0aGUgc2VhcmNoIHBhdGggYnV0IGNhbid0IGJlIHVzZWQuCi5QcAouSXQgRmwg V2xvbmctbG9uZwpXYXJuIGlmCi5TeSBsb25nIGxvbmcKdHlwZSBpcyB1c2VkLgpUaGlzIGlz IGRlZmF1bHQuClRvIGluaGliaXQgdGhlIHdhcm5pbmcgbWVzc2FnZXMsIHVzZQouRmwgV25v LWxvbmctbG9uZyAuCkZsYWdzCi5GbCBXbG9uZy1sb25nCmFuZAouRmwgV25vLWxvbmctbG9u ZwphcmUgdGFrZW4gaW50byBhY2NvdW50IG9ubHkgd2hlbgouRmwgcGVkYW50aWMKZmxhZyBp cyB1c2VkLgouUHAKLkl0IEZsIFd2YXJpYWRpYy1tYWNyb3MKV2FybiBpZiB2YXJpYWRpYyBt YWNyb3MgYXJlIHVzZWQgaW4gcGVkYW50aWMgSVNPIEM5MCBtb2RlLCBvciB0aGUgR05VIGFs dGVybmF0ZSBzeW50YXggd2hlbiBpbiBwZWRhbnRpYyBJU08gQzk5IG1vZGUuClRoaXMgaXMg ZGVmYXVsdC4KVG8gaW5oaWJpdCB0aGUgd2FybmluZyBtZXNzYWdlcywgdXNlCi5GbCBXbm8t dmFyaWFkaWMtbWFjcm9zIC4KLlBwCi5JdCBGbCBXdm9sYXRpbGUtcmVnaXN0ZXItdmFyCldh cm4gaWYgYSByZWdpc3RlciB2YXJpYWJsZSBpcyBkZWNsYXJlZCB2b2xhdGlsZS4KVGhlIHZv bGF0aWxlIG1vZGlmaWVyIGRvZXMgbm90IGluaGliaXQgYWxsIG9wdGltaXphdGlvbnMgdGhh dCBtYXkgZWxpbWluYXRlIHJlYWRzIGFuZC9vciB3cml0ZXMgdG8gcmVnaXN0ZXIgdmFyaWFi bGVzLgouUHAKLkl0IEZsIFdkaXNhYmxlZC1vcHRpbWl6YXRpb24KV2FybiBpZiBhIHJlcXVl c3RlZCBvcHRpbWl6YXRpb24gcGFzcyBpcyBkaXNhYmxlZC4KVGhpcyB3YXJuaW5nIGRvZXMg bm90IGdlbmVyYWxseSBpbmRpY2F0ZSB0aGF0IHRoZXJlIGlzIGFueXRoaW5nIHdyb25nIHdp dGggeW91ciBjb2RlOyBpdCBtZXJlbHkgaW5kaWNhdGVzIHRoYXQgR0NDJ3Mgb3B0aW1pemVy cyB3ZXJlIHVuYWJsZSB0byBoYW5kbGUgdGhlIGNvZGUgZWZmZWN0aXZlbHkuCk9mdGVuLCB0 aGUgcHJvYmxlbSBpcyB0aGF0IHlvdXIgY29kZSBpcyB0b28gYmlnIG9yIHRvbyBjb21wbGV4 OyBHQ0Mgd2lsbCByZWZ1c2UgdG8gb3B0aW1pemUgcHJvZ3JhbXMgd2hlbiB0aGUgb3B0aW1p emF0aW9uIGl0c2VsZiBpcyBsaWtlbHkgdG8gdGFrZSBpbm9yZGluYXRlIGFtb3VudHMgb2Yg dGltZS4KLlBwCi5JdCBGbCBXcG9pbnRlci1zaWduCldhcm4gZm9yIHBvaW50ZXIgYXJndW1l bnQgcGFzc2luZyBvciBhc3NpZ25tZW50IHdpdGggZGlmZmVyZW50IHNpZ25lZG5lc3MuClRo aXMgb3B0aW9uIGlzIG9ubHkgc3VwcG9ydGVkIGZvciBDIGFuZCBPYmplY3RpdmUtQy4KSXQg aXMgaW1wbGllZCBieQouRmwgV2FsbAphbmQgYnkKLkZsIHBlZGFudGljICwKd2hpY2ggY2Fu IGJlIGRpc2FibGVkIHdpdGgKLkZsIFduby1wb2ludGVyLXNpZ24gLgouUHAKLkl0IEZsIFdl cnJvcgpNYWtlIGFsbCB3YXJuaW5ncyBpbnRvIGVycm9ycy4KLlBwCi5JdCBGbCBXc3RhY2st cHJvdGVjdG9yClRoaXMgb3B0aW9uIGlzIG9ubHkgYWN0aXZlIHdoZW4KLkZsIGZzdGFjay1w cm90ZWN0b3IKaXMgYWN0aXZlLgpJdCB3YXJucyBhYm91dCBmdW5jdGlvbnMgdGhhdCB3aWxs IG5vdCBiZSBwcm90ZWN0ZWQgYWdhaW5zdCBzdGFjayBzbWFzaGluZy4KLlBwCi5FbAouU3Mg T3B0aW9ucyBmb3IgRGVidWdnaW5nIFlvdXIgUHJvZ3JhbSBvciBHQ0MKR0NDIGhhcyB2YXJp b3VzIHNwZWNpYWwgb3B0aW9ucyB0aGF0IGFyZSB1c2VkIGZvciBkZWJ1Z2dpbmcgZWl0aGVy IHlvdXIgcHJvZ3JhbSBvciBHQ0M6Ci5QcAouQmwgLXRhZyAtd2lkdGggeHgKLkl0IEZsIGcK UHJvZHVjZSBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gaW4gdGhlIG9wZXJhdGluZyBzeXN0ZW0n cyBuYXRpdmUgZm9ybWF0IChzdGFicywgQ09GRiwgWENPRkYsIG9yIERXQVJGIDIpLgpHREIg Y2FuIHdvcmsgd2l0aCB0aGlzIGRlYnVnZ2luZyBpbmZvcm1hdGlvbi4KLlBwCk9uIG1vc3Qg c3lzdGVtcyB0aGF0IHVzZSBzdGFicyBmb3JtYXQsCi5GbCBnCmVuYWJsZXMgdXNlIG9mIGV4 dHJhIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiB0aGF0IG9ubHkgR0RCIGNhbiB1c2U7IHRoaXMg ZXh0cmEgaW5mb3JtYXRpb24gbWFrZXMgZGVidWdnaW5nIHdvcmsgYmV0dGVyIGluIEdEQiBi dXQgd2lsbCBwcm9iYWJseSBtYWtlIG90aGVyIGRlYnVnZ2VycyBjcmFzaCBvciByZWZ1c2Ug dG8gcmVhZCB0aGUgcHJvZ3JhbS4KSWYgeW91IHdhbnQgdG8gY29udHJvbCBmb3IgY2VydGFp biB3aGV0aGVyIHRvIGdlbmVyYXRlIHRoZSBleHRyYSBpbmZvcm1hdGlvbiwgdXNlCi5GbCBn c3RhYnMrICwKLkZsIGdzdGFicyAsCi5GbCBneGNvZmYrICwKLkZsIGd4Y29mZiAsCm9yCi5G bCBndm1zCihzZWUgYmVsb3cpLgouUHAKR0NDIGFsbG93cyB5b3UgdG8gdXNlCi5GbCBnCndp dGgKLkZsIE8gLgpUaGUgc2hvcnRjdXRzIHRha2VuIGJ5IG9wdGltaXplZCBjb2RlIG1heSBv Y2Nhc2lvbmFsbHkgcHJvZHVjZSBzdXJwcmlzaW5nIHJlc3VsdHM6IHNvbWUgdmFyaWFibGVz IHlvdSBkZWNsYXJlZCBtYXkgbm90IGV4aXN0IGF0IGFsbDsgZmxvdyBvZiBjb250cm9sIG1h eSBicmllZmx5IG1vdmUgd2hlcmUgeW91IGRpZCBub3QgZXhwZWN0IGl0OyBzb21lIHN0YXRl bWVudHMgbWF5IG5vdCBiZSBleGVjdXRlZCBiZWNhdXNlIHRoZXkgY29tcHV0ZSBjb25zdGFu dCByZXN1bHRzIG9yIHRoZWlyIHZhbHVlcyB3ZXJlIGFscmVhZHkgYXQgaGFuZDsgc29tZSBz dGF0ZW1lbnRzIG1heSBleGVjdXRlIGluIGRpZmZlcmVudCBwbGFjZXMgYmVjYXVzZSB0aGV5 IHdlcmUgbW92ZWQgb3V0IG9mIGxvb3BzLgouUHAKTmV2ZXJ0aGVsZXNzIGl0IHByb3ZlcyBw b3NzaWJsZSB0byBkZWJ1ZyBvcHRpbWl6ZWQgb3V0cHV0LgpUaGlzIG1ha2VzIGl0IHJlYXNv bmFibGUgdG8gdXNlIHRoZSBvcHRpbWl6ZXIgZm9yIHByb2dyYW1zIHRoYXQgbWlnaHQgaGF2 ZSBidWdzLgouUHAKVGhlIGZvbGxvd2luZyBvcHRpb25zIGFyZSB1c2VmdWwgd2hlbiBHQ0Mg aXMgZ2VuZXJhdGVkIHdpdGggdGhlIGNhcGFiaWxpdHkgZm9yIG1vcmUgdGhhbiBvbmUgZGVi dWdnaW5nIGZvcm1hdC4KLlBwCi5JdCBGbCBnZ2RiClByb2R1Y2UgZGVidWdnaW5nIGluZm9y bWF0aW9uIGZvciB1c2UgYnkgR0RCLgpUaGlzIG1lYW5zIHRvIHVzZSB0aGUgbW9zdCBleHBy ZXNzaXZlIGZvcm1hdCBhdmFpbGFibGUgKERXQVJGIDIsIHN0YWJzLCBvciB0aGUgbmF0aXZl IGZvcm1hdCBpZiBuZWl0aGVyIG9mIHRob3NlIGFyZSBzdXBwb3J0ZWQpLCBpbmNsdWRpbmcg R0RCIGV4dGVuc2lvbnMgaWYgYXQgYWxsIHBvc3NpYmxlLgouUHAKLkl0IEZsIGdzdGFicwpQ cm9kdWNlIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiBpbiBzdGFicyBmb3JtYXQgKGlmIHRoYXQg aXMgc3VwcG9ydGVkKSwgd2l0aG91dCBHREIgZXh0ZW5zaW9ucy4KVGhpcyBpcyB0aGUgZm9y bWF0IHVzZWQgYnkgREJYIG9uIG1vc3QgQlNEIHN5c3RlbXMuCk9uIE1JUFMsIEFscGhhIGFu ZCBTeXN0ZW0gViBSZWxlYXNlIDQgc3lzdGVtcyB0aGlzIG9wdGlvbiBwcm9kdWNlcyBzdGFi cyBkZWJ1Z2dpbmcgb3V0cHV0IHdoaWNoIGlzIG5vdCB1bmRlcnN0b29kIGJ5IERCWCBvciBT REIuCk9uIFN5c3RlbSBWIFJlbGVhc2UgNCBzeXN0ZW1zIHRoaXMgb3B0aW9uIHJlcXVpcmVz IHRoZSBHTlUgYXNzZW1ibGVyLgouUHAKLkl0IEZsIGZlbGltaW5hdGUtdW51c2VkLWRlYnVn LXN5bWJvbHMKUHJvZHVjZSBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gaW4gc3RhYnMgZm9ybWF0 IChpZiB0aGF0IGlzIHN1cHBvcnRlZCksIGZvciBvbmx5IHN5bWJvbHMgdGhhdCBhcmUgYWN0 dWFsbHkgdXNlZC4KLlBwCi5JdCBGbCBnc3RhYnMrClByb2R1Y2UgZGVidWdnaW5nIGluZm9y bWF0aW9uIGluIHN0YWJzIGZvcm1hdCAoaWYgdGhhdCBpcyBzdXBwb3J0ZWQpLCB1c2luZyBH TlUgZXh0ZW5zaW9ucyB1bmRlcnN0b29kIG9ubHkgYnkgdGhlIEdOVSBkZWJ1Z2dlciAoR0RC KS4KVGhlIHVzZSBvZiB0aGVzZSBleHRlbnNpb25zIGlzIGxpa2VseSB0byBtYWtlIG90aGVy IGRlYnVnZ2VycyBjcmFzaCBvciByZWZ1c2UgdG8gcmVhZCB0aGUgcHJvZ3JhbS4KLlBwCi5J dCBGbCBnY29mZgpQcm9kdWNlIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiBpbiBDT0ZGIGZvcm1h dCAoaWYgdGhhdCBpcyBzdXBwb3J0ZWQpLgpUaGlzIGlzIHRoZSBmb3JtYXQgdXNlZCBieSBT REIgb24gbW9zdCBTeXN0ZW0gViBzeXN0ZW1zIHByaW9yIHRvIFN5c3RlbSBWIFJlbGVhc2Ug NC4KLlBwCi5JdCBGbCBneGNvZmYKUHJvZHVjZSBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gaW4g WENPRkYgZm9ybWF0IChpZiB0aGF0IGlzIHN1cHBvcnRlZCkuClRoaXMgaXMgdGhlIGZvcm1h dCB1c2VkIGJ5IHRoZSBEQlggZGVidWdnZXIgb24gSUJNIFJTLzYwMDAgc3lzdGVtcy4KLlBw Ci5JdCBGbCBneGNvZmYrClByb2R1Y2UgZGVidWdnaW5nIGluZm9ybWF0aW9uIGluIFhDT0ZG IGZvcm1hdCAoaWYgdGhhdCBpcyBzdXBwb3J0ZWQpLCB1c2luZyBHTlUgZXh0ZW5zaW9ucyB1 bmRlcnN0b29kIG9ubHkgYnkgdGhlIEdOVSBkZWJ1Z2dlciAoR0RCKS4KVGhlIHVzZSBvZiB0 aGVzZSBleHRlbnNpb25zIGlzIGxpa2VseSB0byBtYWtlIG90aGVyIGRlYnVnZ2VycyBjcmFz aCBvciByZWZ1c2UgdG8gcmVhZCB0aGUgcHJvZ3JhbSwgYW5kIG1heSBjYXVzZSBhc3NlbWJs ZXJzIG90aGVyIHRoYW4gdGhlIEdOVSBhc3NlbWJsZXIgKEdBUykgdG8gZmFpbCB3aXRoIGFu IGVycm9yLgouUHAKLkl0IEZsIGdkd2FyZi0yClByb2R1Y2UgZGVidWdnaW5nIGluZm9ybWF0 aW9uIGluIERXQVJGIHZlcnNpb24gMiBmb3JtYXQgKGlmIHRoYXQgaXMgc3VwcG9ydGVkKS4K VGhpcyBpcyB0aGUgZm9ybWF0IHVzZWQgYnkgREJYIG9uIElSSVggNi4KV2l0aCB0aGlzIG9w dGlvbiwgR0NDIHVzZXMgZmVhdHVyZXMgb2YgRFdBUkYgdmVyc2lvbiAzIHdoZW4gdGhleSBh cmUgdXNlZnVsOyB2ZXJzaW9uIDMgaXMgdXB3YXJkIGNvbXBhdGlibGUgd2l0aCB2ZXJzaW9u IDIsIGJ1dCBtYXkgc3RpbGwgY2F1c2UgcHJvYmxlbXMgZm9yIG9sZGVyIGRlYnVnZ2Vycy4K LlBwCi5JdCBGbCBndm1zClByb2R1Y2UgZGVidWdnaW5nIGluZm9ybWF0aW9uIGluIFZNUyBk ZWJ1ZyBmb3JtYXQgKGlmIHRoYXQgaXMgc3VwcG9ydGVkKS4KVGhpcyBpcyB0aGUgZm9ybWF0 IHVzZWQgYnkgREVCVUcgb24gVk1TIHN5c3RlbXMuCi5QcAouSXQgRmwgZyBOcyBBciBsZXZl bAouSXQgRmwgZ2dkYiBOcyBBciBsZXZlbAouSXQgRmwgZ3N0YWJzIE5zIEFyIGxldmVsCi5J dCBGbCBnY29mZiBOcyBBciBsZXZlbAouSXQgRmwgZ3hjb2ZmIE5zIEFyIGxldmVsCi5JdCBG bCBndm1zIE5zIEFyIGxldmVsClJlcXVlc3QgZGVidWdnaW5nIGluZm9ybWF0aW9uIGFuZCBh bHNvIHVzZQouRW0gbGV2ZWwKdG8gc3BlY2lmeSBob3cgbXVjaCBpbmZvcm1hdGlvbi4KVGhl IGRlZmF1bHQgbGV2ZWwgaXMgMi4KLlBwCkxldmVsIDEgcHJvZHVjZXMgbWluaW1hbCBpbmZv cm1hdGlvbiwgZW5vdWdoIGZvciBtYWtpbmcgYmFja3RyYWNlcyBpbiBwYXJ0cyBvZiB0aGUg cHJvZ3JhbSB0aGF0IHlvdSBkb24ndCBwbGFuIHRvIGRlYnVnLgpUaGlzIGluY2x1ZGVzIGRl c2NyaXB0aW9ucyBvZiBmdW5jdGlvbnMgYW5kIGV4dGVybmFsIHZhcmlhYmxlcywgYnV0IG5v IGluZm9ybWF0aW9uIGFib3V0IGxvY2FsIHZhcmlhYmxlcyBhbmQgbm8gbGluZSBudW1iZXJz LgouUHAKTGV2ZWwgMyBpbmNsdWRlcyBleHRyYSBpbmZvcm1hdGlvbiwgc3VjaCBhcyBhbGwg dGhlIG1hY3JvIGRlZmluaXRpb25zIHByZXNlbnQgaW4gdGhlIHByb2dyYW0uClNvbWUgZGVi dWdnZXJzIHN1cHBvcnQgbWFjcm8gZXhwYW5zaW9uIHdoZW4geW91IHVzZQouRmwgZzMgLgou UHAKLkZsIGdkd2FyZi0yCmRvZXMgbm90IGFjY2VwdCBhIGNvbmNhdGVuYXRlZCBkZWJ1ZyBs ZXZlbCwgYmVjYXVzZSBHQ0MgdXNlZCB0byBzdXBwb3J0IGFuIG9wdGlvbgouRmwgZ2R3YXJm CnRoYXQgbWVhbnQgdG8gZ2VuZXJhdGUgZGVidWcgaW5mb3JtYXRpb24gaW4gdmVyc2lvbiAx IG9mIHRoZSBEV0FSRiBmb3JtYXQgKHdoaWNoIGlzIHZlcnkgZGlmZmVyZW50IGZyb20gdmVy c2lvbiAyKSwgYW5kIGl0IHdvdWxkIGhhdmUgYmVlbiB0b28gY29uZnVzaW5nLgpUaGF0IGRl YnVnIGZvcm1hdCBpcyBsb25nIG9ic29sZXRlLCBidXQgdGhlIG9wdGlvbiBjYW5ub3QgYmUg Y2hhbmdlZCBub3cuCkluc3RlYWQgdXNlIGFuIGFkZGl0aW9uYWwKLkZsIGcgTnMgQXIgbGV2 ZWwKb3B0aW9uIHRvIGNoYW5nZSB0aGUgZGVidWcgbGV2ZWwgZm9yIERXQVJGMi4KLlBwCi5J dCBGbCBmZWxpbWluYXRlLWR3YXJmMi1kdXBzCkNvbXByZXNzIERXQVJGMiBkZWJ1Z2dpbmcg aW5mb3JtYXRpb24gYnkgZWxpbWluYXRpbmcgZHVwbGljYXRlZCBpbmZvcm1hdGlvbiBhYm91 dCBlYWNoIHN5bWJvbC4KVGhpcyBvcHRpb24gb25seSBtYWtlcyBzZW5zZSB3aGVuIGdlbmVy YXRpbmcgRFdBUkYyIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiB3aXRoCi5GbCBnZHdhcmYtMiAu Ci5QcAouSXQgRmwgcApHZW5lcmF0ZSBleHRyYSBjb2RlIHRvIHdyaXRlIHByb2ZpbGUgaW5m b3JtYXRpb24gc3VpdGFibGUgZm9yIHRoZSBhbmFseXNpcyBwcm9ncmFtCi5TeSBwcm9mIC4K WW91IG11c3QgdXNlIHRoaXMgb3B0aW9uIHdoZW4gY29tcGlsaW5nIHRoZSBzb3VyY2UgZmls ZXMgeW91IHdhbnQgZGF0YSBhYm91dCwgYW5kIHlvdSBtdXN0IGFsc28gdXNlIGl0IHdoZW4g bGlua2luZy4KLlBwCi5JdCBGbCBwZwpHZW5lcmF0ZSBleHRyYSBjb2RlIHRvIHdyaXRlIHBy b2ZpbGUgaW5mb3JtYXRpb24gc3VpdGFibGUgZm9yIHRoZSBhbmFseXNpcyBwcm9ncmFtCi5T eSBncHJvZiAuCllvdSBtdXN0IHVzZSB0aGlzIG9wdGlvbiB3aGVuIGNvbXBpbGluZyB0aGUg c291cmNlIGZpbGVzIHlvdSB3YW50IGRhdGEgYWJvdXQsIGFuZCB5b3UgbXVzdCBhbHNvIHVz ZSBpdCB3aGVuIGxpbmtpbmcuCi5QcAouSXQgRmwgUQpNYWtlcyB0aGUgY29tcGlsZXIgcHJp bnQgb3V0IGVhY2ggZnVuY3Rpb24gbmFtZSBhcyBpdCBpcyBjb21waWxlZCwgYW5kIHByaW50 IHNvbWUgc3RhdGlzdGljcyBhYm91dCBlYWNoIHBhc3Mgd2hlbiBpdCBmaW5pc2hlcy4KLlBw Ci5JdCBGbCBmdGltZS1yZXBvcnQKTWFrZXMgdGhlIGNvbXBpbGVyIHByaW50IHNvbWUgc3Rh dGlzdGljcyBhYm91dCB0aGUgdGltZSBjb25zdW1lZCBieSBlYWNoIHBhc3Mgd2hlbiBpdCBm aW5pc2hlcy4KLlBwCi5JdCBGbCBmbWVtLXJlcG9ydApNYWtlcyB0aGUgY29tcGlsZXIgcHJp bnQgc29tZSBzdGF0aXN0aWNzIGFib3V0IHBlcm1hbmVudCBtZW1vcnkgYWxsb2NhdGlvbiB3 aGVuIGl0IGZpbmlzaGVzLgouUHAKLkl0IEZsIGZwcm9maWxlLWFyY3MKQWRkIGNvZGUgc28g dGhhdCBwcm9ncmFtIGZsb3cKLkVtIGFyY3MKYXJlIGluc3RydW1lbnRlZC4KRHVyaW5nIGV4 ZWN1dGlvbiB0aGUgcHJvZ3JhbSByZWNvcmRzIGhvdyBtYW55IHRpbWVzIGVhY2ggYnJhbmNo IGFuZCBjYWxsIGlzIGV4ZWN1dGVkIGFuZCBob3cgbWFueSB0aW1lcyBpdCBpcyB0YWtlbiBv ciByZXR1cm5zLgpXaGVuIHRoZSBjb21waWxlZCBwcm9ncmFtIGV4aXRzIGl0IHNhdmVzIHRo aXMgZGF0YSB0byBhIGZpbGUgY2FsbGVkCi5QYSBhdXhuYW1lLmdjZGEKZm9yIGVhY2ggc291 cmNlIGZpbGUuClRoZSBkYXRhIG1heSBiZSB1c2VkIGZvciBwcm9maWxlLWRpcmVjdGVkIG9w dGltaXphdGlvbnMKLkZsICggZmJyYW5jaC1wcm9iYWJpbGl0aWVzICkgLApvciBmb3IgdGVz dCBjb3ZlcmFnZSBhbmFseXNpcwouRmwgKCBmdGVzdC1jb3ZlcmFnZSApIC4KRWFjaCBvYmpl Y3QgZmlsZSdzCi5FbSBhdXhuYW1lCmlzIGdlbmVyYXRlZCBmcm9tIHRoZSBuYW1lIG9mIHRo ZSBvdXRwdXQgZmlsZSwgaWYgZXhwbGljaXRseSBzcGVjaWZpZWQgYW5kIGl0IGlzIG5vdCB0 aGUgZmluYWwgZXhlY3V0YWJsZSwgb3RoZXJ3aXNlIGl0IGlzIHRoZSBiYXNlbmFtZSBvZiB0 aGUgc291cmNlIGZpbGUuCkluIGJvdGggY2FzZXMgYW55IHN1ZmZpeCBpcyByZW1vdmVkIChl LmcuCi5QYSBmb28uZ2NkYQpmb3IgaW5wdXQgZmlsZQouUGEgZGlyL2Zvby5jICwKb3IKLlBh IGRpci9mb28uZ2NkYQpmb3Igb3V0cHV0IGZpbGUgc3BlY2lmaWVkIGFzCi5TeSAtbyBkaXIv Zm9vLm8gKSAuCi5QcAouSXQgRmwgLWNvdmVyYWdlClRoaXMgb3B0aW9uIGlzIHVzZWQgdG8g Y29tcGlsZSBhbmQgbGluayBjb2RlIGluc3RydW1lbnRlZCBmb3IgY292ZXJhZ2UgYW5hbHlz aXMuClRoZSBvcHRpb24gaXMgYSBzeW5vbnltIGZvcgouRmwgZnByb2ZpbGUtYXJjcwouRmwg ZnRlc3QtY292ZXJhZ2UKKHdoZW4gY29tcGlsaW5nKSBhbmQKLkZsIGxnY292Cih3aGVuIGxp bmtpbmcpLgpTZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIHRob3NlIG9wdGlvbnMgZm9yIG1v cmUgZGV0YWlscy4KLlBwCi5CbCAtdGFnIC13aWR0aCB4eAouSXQgQGJ1bGxldApDb21waWxl IHRoZSBzb3VyY2UgZmlsZXMgd2l0aAouRmwgZnByb2ZpbGUtYXJjcwpwbHVzIG9wdGltaXph dGlvbiBhbmQgY29kZSBnZW5lcmF0aW9uIG9wdGlvbnMuCkZvciB0ZXN0IGNvdmVyYWdlIGFu YWx5c2lzLCB1c2UgdGhlIGFkZGl0aW9uYWwKLkZsIGZ0ZXN0LWNvdmVyYWdlCm9wdGlvbi4K WW91IGRvIG5vdCBuZWVkIHRvIHByb2ZpbGUgZXZlcnkgc291cmNlIGZpbGUgaW4gYSBwcm9n cmFtLgouUHAKLkl0IEBjdm1tZnUKTGluayB5b3VyIG9iamVjdCBmaWxlcyB3aXRoCi5GbCBs Z2NvdgpvcgouRmwgZnByb2ZpbGUtYXJjcwoodGhlIGxhdHRlciBpbXBsaWVzIHRoZSBmb3Jt ZXIpLgouUHAKLkl0IEBkd25uZ3YKUnVuIHRoZSBwcm9ncmFtIG9uIGEgcmVwcmVzZW50YXRp dmUgd29ya2xvYWQgdG8gZ2VuZXJhdGUgdGhlIGFyYyBwcm9maWxlIGluZm9ybWF0aW9uLgpU aGlzIG1heSBiZSByZXBlYXRlZCBhbnkgbnVtYmVyIG9mIHRpbWVzLgpZb3UgY2FuIHJ1biBj b25jdXJyZW50IGluc3RhbmNlcyBvZiB5b3VyIHByb2dyYW0sIGFuZCBwcm92aWRlZCB0aGF0 IHRoZSBmaWxlIHN5c3RlbSBzdXBwb3J0cyBsb2NraW5nLCB0aGUgZGF0YSBmaWxlcyB3aWxs IGJlIGNvcnJlY3RseSB1cGRhdGVkLgpBbHNvCi5WYSBmb3JrCmNhbGxzIGFyZSBkZXRlY3Rl ZCBhbmQgY29ycmVjdGx5IGhhbmRsZWQgKGRvdWJsZSBjb3VudGluZyB3aWxsIG5vdCBoYXBw ZW4pLgouUHAKLkl0IEBleG9vaHcKRm9yIHByb2ZpbGUtZGlyZWN0ZWQgb3B0aW1pemF0aW9u cywgY29tcGlsZSB0aGUgc291cmNlIGZpbGVzIGFnYWluIHdpdGggdGhlIHNhbWUgb3B0aW1p emF0aW9uIGFuZCBjb2RlIGdlbmVyYXRpb24gb3B0aW9ucyBwbHVzCi5GbCBmYnJhbmNoLXBy b2JhYmlsaXRpZXMgLgouUHAKLkl0IEBmeXBwaXgKRm9yIHRlc3QgY292ZXJhZ2UgYW5hbHlz aXMsIHVzZQouU3kgZ2Nvdgp0byBwcm9kdWNlIGh1bWFuIHJlYWRhYmxlIGluZm9ybWF0aW9u IGZyb20gdGhlCi5QYSAuZ2NubwphbmQKLlBhIC5nY2RhCmZpbGVzLgpSZWZlciB0byB0aGUK LlN5IGdjb3YKZG9jdW1lbnRhdGlvbiBmb3IgZnVydGhlciBpbmZvcm1hdGlvbi4KLlBwCi5F bApXaXRoCi5GbCBmcHJvZmlsZS1hcmNzICwKZm9yIGVhY2ggZnVuY3Rpb24gb2YgeW91ciBw cm9ncmFtIEdDQyBjcmVhdGVzIGEgcHJvZ3JhbSBmbG93IGdyYXBoLCB0aGVuIGZpbmRzIGEg c3Bhbm5pbmcgdHJlZSBmb3IgdGhlIGdyYXBoLgpPbmx5IGFyY3MgdGhhdCBhcmUgbm90IG9u IHRoZSBzcGFubmluZyB0cmVlIGhhdmUgdG8gYmUgaW5zdHJ1bWVudGVkOiB0aGUgY29tcGls ZXIgYWRkcyBjb2RlIHRvIGNvdW50IHRoZSBudW1iZXIgb2YgdGltZXMgdGhhdCB0aGVzZSBh cmNzIGFyZSBleGVjdXRlZC4KV2hlbiBhbiBhcmMgaXMgdGhlIG9ubHkgZXhpdCBvciBvbmx5 IGVudHJhbmNlIHRvIGEgYmxvY2ssIHRoZSBpbnN0cnVtZW50YXRpb24gY29kZSBjYW4gYmUg YWRkZWQgdG8gdGhlIGJsb2NrOyBvdGhlcndpc2UsIGEgbmV3IGJhc2ljIGJsb2NrIG11c3Qg YmUgY3JlYXRlZCB0byBob2xkIHRoZSBpbnN0cnVtZW50YXRpb24gY29kZS4KLlBwCi5JdCBG bCBmdGVzdC1jb3ZlcmFnZQpQcm9kdWNlIGEgbm90ZXMgZmlsZSB0aGF0IHRoZQouU3kgZ2Nv dgpjb2RlLWNvdmVyYWdlIHV0aWxpdHkgY2FuIHVzZSB0byBzaG93IHByb2dyYW0gY292ZXJh Z2UuCkVhY2ggc291cmNlIGZpbGUncyBub3RlIGZpbGUgaXMgY2FsbGVkCi5QYSBhdXhuYW1l Lmdjbm8gLgpSZWZlciB0byB0aGUKLkZsIGZwcm9maWxlLWFyY3MKb3B0aW9uIGFib3ZlIGZv ciBhIGRlc2NyaXB0aW9uIG9mCi5FbSBhdXhuYW1lCmFuZCBpbnN0cnVjdGlvbnMgb24gaG93 IHRvIGdlbmVyYXRlIHRlc3QgY292ZXJhZ2UgZGF0YS4KQ292ZXJhZ2UgZGF0YSB3aWxsIG1h dGNoIHRoZSBzb3VyY2UgZmlsZXMgbW9yZSBjbG9zZWx5LCBpZiB5b3UgZG8gbm90IG9wdGlt aXplLgouUHAKLkl0IEZsIGQgTnMgQXIgbGV0dGVycwouSXQgRmwgZmR1bXAtcnRsLSBOcyBB ciBwYXNzClNheXMgdG8gbWFrZSBkZWJ1Z2dpbmcgZHVtcHMgZHVyaW5nIGNvbXBpbGF0aW9u IGF0IHRpbWVzIHNwZWNpZmllZCBieQouRW0gbGV0dGVycyAuClRoaXMgaXMgdXNlZCBmb3Ig ZGVidWdnaW5nIHRoZSBSVEwtYmFzZWQgcGFzc2VzIG9mIHRoZSBjb21waWxlci4KVGhlIGZp bGUgbmFtZXMgZm9yIG1vc3Qgb2YgdGhlIGR1bXBzIGFyZSBtYWRlIGJ5IGFwcGVuZGluZyBh IHBhc3MgbnVtYmVyIGFuZCBhIHdvcmQgdG8gdGhlCi5FbSBkdW1wbmFtZSAuCi5FbSBkdW1w bmFtZQppcyBnZW5lcmF0ZWQgZnJvbSB0aGUgbmFtZSBvZiB0aGUgb3V0cHV0IGZpbGUsIGlm IGV4cGxpY2l0bHkgc3BlY2lmaWVkIGFuZCBpdCBpcyBub3QgYW4gZXhlY3V0YWJsZSwgb3Ro ZXJ3aXNlIGl0IGlzIHRoZSBiYXNlbmFtZSBvZiB0aGUgc291cmNlIGZpbGUuCi5QcApNb3N0 IGRlYnVnIGR1bXBzIGNhbiBiZSBlbmFibGVkIGVpdGhlciBwYXNzaW5nIGEgbGV0dGVyIHRv IHRoZQouRmwgZApvcHRpb24sIG9yIHdpdGggYSBsb25nCi5GbCBmZHVtcC1ydGwKc3dpdGNo OyBoZXJlIGFyZSB0aGUgcG9zc2libGUgbGV0dGVycyBmb3IgdXNlIGluCi5FbSBsZXR0ZXJz CmFuZAouRW0gcGFzcyAsCmFuZCB0aGVpciBtZWFuaW5nczoKLlBwCi5CbCAtdGFnIC13aWR0 aCB4eAouSXQgRmwgZEEKQW5ub3RhdGUgdGhlIGFzc2VtYmxlciBvdXRwdXQgd2l0aCBtaXNj ZWxsYW5lb3VzIGRlYnVnZ2luZyBpbmZvcm1hdGlvbi4KLlBwCi5JdCBGbCBkYgouSXQgRmwg ZmR1bXAtcnRsLWJwCkR1bXAgYWZ0ZXIgY29tcHV0aW5nIGJyYW5jaCBwcm9iYWJpbGl0aWVz LCB0bwouUGEgZmlsZS4wOS5icCAuCi5QcAouSXQgRmwgZEIKLkl0IEZsIGZkdW1wLXJ0bC1i YnJvCkR1bXAgYWZ0ZXIgYmxvY2sgcmVvcmRlcmluZywgdG8KLlBhIGZpbGUuMzAuYmJybyAu Ci5QcAouSXQgRmwgZGMKLkl0IEZsIGZkdW1wLXJ0bC1jb21iaW5lCkR1bXAgYWZ0ZXIgaW5z dHJ1Y3Rpb24gY29tYmluYXRpb24sIHRvIHRoZSBmaWxlCi5QYSBmaWxlLjE3LmNvbWJpbmUg LgouUHAKLkl0IEZsIGRDCi5JdCBGbCBmZHVtcC1ydGwtY2UxCi5JdCBGbCBmZHVtcC1ydGwt Y2UyCi5GbCBkQwphbmQKLkZsIGZkdW1wLXJ0bC1jZTEKZW5hYmxlIGR1bXBpbmcgYWZ0ZXIg dGhlIGZpcnN0IGlmIGNvbnZlcnNpb24sIHRvIHRoZSBmaWxlCi5QYSBmaWxlLjExLmNlMSAu Ci5GbCBkQwphbmQKLkZsIGZkdW1wLXJ0bC1jZTIKZW5hYmxlIGR1bXBpbmcgYWZ0ZXIgdGhl IHNlY29uZCBpZiBjb252ZXJzaW9uLCB0byB0aGUgZmlsZQouUGEgZmlsZS4xOC5jZTIgLgou UHAKLkl0IEZsIGRkCi5JdCBGbCBmZHVtcC1ydGwtYnRsCi5JdCBGbCBmZHVtcC1ydGwtZGJy Ci5GbCBkZAphbmQKLkZsIGZkdW1wLXJ0bC1idGwKZW5hYmxlIGR1bXBpbmcgYWZ0ZXIgYnJh bmNoIHRhcmdldCBsb2FkIG9wdGltaXphdGlvbiwgdG8KLlBhIGZpbGUuMzEuYnRsIC4KLkZs IGRkCmFuZAouRmwgZmR1bXAtcnRsLWRicgplbmFibGUgZHVtcGluZyBhZnRlciBkZWxheWVk IGJyYW5jaCBzY2hlZHVsaW5nLCB0bwouUGEgZmlsZS4zNi5kYnIgLgouUHAKLkl0IEZsIGRE CkR1bXAgYWxsIG1hY3JvIGRlZmluaXRpb25zLCBhdCB0aGUgZW5kIG9mIHByZXByb2Nlc3Np bmcsIGluIGFkZGl0aW9uIHRvIG5vcm1hbCBvdXRwdXQuCi5QcAouSXQgRmwgZEUKLkl0IEZs IGZkdW1wLXJ0bC1jZTMKRHVtcCBhZnRlciB0aGUgdGhpcmQgaWYgY29udmVyc2lvbiwgdG8K LlBhIGZpbGUuMjguY2UzIC4KLlBwCi5JdCBGbCBkZgouSXQgRmwgZmR1bXAtcnRsLWNmZwou SXQgRmwgZmR1bXAtcnRsLWxpZmUKLkZsIGRmCmFuZAouRmwgZmR1bXAtcnRsLWNmZwplbmFi bGUgZHVtcGluZyBhZnRlciBjb250cm9sIGFuZCBkYXRhIGZsb3cgYW5hbHlzaXMsIHRvCi5Q YSBmaWxlLjA4LmNmZyAuCi5GbCBkZgphbmQKLkZsIGZkdW1wLXJ0bC1jZmcKZW5hYmxlIGR1 bXBpbmcgZHVtcCBhZnRlciBsaWZlIGFuYWx5c2lzLCB0bwouUGEgZmlsZS4xNi5saWZlIC4K LlBwCi5JdCBGbCBkZwouSXQgRmwgZmR1bXAtcnRsLWdyZWcKRHVtcCBhZnRlciBnbG9iYWwg cmVnaXN0ZXIgYWxsb2NhdGlvbiwgdG8KLlBhIGZpbGUuMjMuZ3JlZyAuCi5QcAouSXQgRmwg ZEcKLkl0IEZsIGZkdW1wLXJ0bC1nY3NlCi5JdCBGbCBmZHVtcC1ydGwtYnlwYXNzCi5GbCBk RwphbmQKLkZsIGZkdW1wLXJ0bC1nY3NlCmVuYWJsZSBkdW1waW5nIGFmdGVyIEdDU0UsIHRv Ci5QYSBmaWxlLjA1Lmdjc2UgLgouRmwgZEcKYW5kCi5GbCBmZHVtcC1ydGwtYnlwYXNzCmVu YWJsZSBkdW1waW5nIGFmdGVyIGp1bXAgYnlwYXNzaW5nIGFuZCBjb250cm9sIGZsb3cgb3B0 aW1pemF0aW9ucywgdG8KLlBhIGZpbGUuMDcuYnlwYXNzIC4KLlBwCi5JdCBGbCBkaAouSXQg RmwgZmR1bXAtcnRsLWVoCkR1bXAgYWZ0ZXIgZmluYWxpemF0aW9uIG9mIEVIIGhhbmRsaW5n IGNvZGUsIHRvCi5QYSBmaWxlLjAyLmVoIC4KLlBwCi5JdCBGbCBkaQouSXQgRmwgZmR1bXAt cnRsLXNpYmxpbmcKRHVtcCBhZnRlciBzaWJsaW5nIGNhbGwgb3B0aW1pemF0aW9ucywgdG8K LlBhIGZpbGUuMDEuc2libGluZyAuCi5QcAouSXQgRmwgZGoKLkl0IEZsIGZkdW1wLXJ0bC1q dW1wCkR1bXAgYWZ0ZXIgdGhlIGZpcnN0IGp1bXAgb3B0aW1pemF0aW9uLCB0bwouUGEgZmls ZS4wMy5qdW1wIC4KLlBwCi5JdCBGbCBkawouSXQgRmwgZmR1bXAtcnRsLXN0YWNrCkR1bXAg YWZ0ZXIgY29udmVyc2lvbiBmcm9tIHJlZ2lzdGVycyB0byBzdGFjaywgdG8KLlBhIGZpbGUu MzMuc3RhY2sgLgouUHAKLkl0IEZsIGRsCi5JdCBGbCBmZHVtcC1ydGwtbHJlZwpEdW1wIGFm dGVyIGxvY2FsIHJlZ2lzdGVyIGFsbG9jYXRpb24sIHRvCi5QYSBmaWxlLjIyLmxyZWcgLgou UHAKLkl0IEZsIGRMCi5JdCBGbCBmZHVtcC1ydGwtbG9vcAouSXQgRmwgZmR1bXAtcnRsLWxv b3AyCi5GbCBkTAphbmQKLkZsIGZkdW1wLXJ0bC1sb29wCmVuYWJsZSBkdW1waW5nIGFmdGVy IHRoZSBmaXJzdCBsb29wIG9wdGltaXphdGlvbiBwYXNzLCB0bwouUGEgZmlsZS4wNi5sb29w IC4KLkZsIGRMCmFuZAouRmwgZmR1bXAtcnRsLWxvb3AyCmVuYWJsZSBkdW1waW5nIGFmdGVy IHRoZSBzZWNvbmQgcGFzcywgdG8KLlBhIGZpbGUuMTMubG9vcDIgLgouUHAKLkl0IEZsIGRt Ci5JdCBGbCBmZHVtcC1ydGwtc21zCkR1bXAgYWZ0ZXIgbW9kdWxvIHNjaGVkdWxpbmcsIHRv Ci5QYSBmaWxlLjIwLnNtcyAuCi5QcAouSXQgRmwgZE0KLkl0IEZsIGZkdW1wLXJ0bC1tYWNo CkR1bXAgYWZ0ZXIgcGVyZm9ybWluZyB0aGUgbWFjaGluZSBkZXBlbmRlbnQgcmVvcmdhbml6 YXRpb24gcGFzcywgdG8KLlBhIGZpbGUuMzUubWFjaCAuCi5QcAouSXQgRmwgZG4KLkl0IEZs IGZkdW1wLXJ0bC1ybnJlZwpEdW1wIGFmdGVyIHJlZ2lzdGVyIHJlbnVtYmVyaW5nLCB0bwou UGEgZmlsZS4yOS5ybnJlZyAuCi5QcAouSXQgRmwgZE4KLkl0IEZsIGZkdW1wLXJ0bC1yZWdt b3ZlCkR1bXAgYWZ0ZXIgdGhlIHJlZ2lzdGVyIG1vdmUgcGFzcywgdG8KLlBhIGZpbGUuMTku cmVnbW92ZSAuCi5QcAouSXQgRmwgZG8KLkl0IEZsIGZkdW1wLXJ0bC1wb3N0cmVsb2FkCkR1 bXAgYWZ0ZXIgcG9zdC1yZWxvYWQgb3B0aW1pemF0aW9ucywgdG8KLlBhIGZpbGUuMjQucG9z dHJlbG9hZCAuCi5QcAouSXQgRmwgZHIKLkl0IEZsIGZkdW1wLXJ0bC1leHBhbmQKRHVtcCBh ZnRlciBSVEwgZ2VuZXJhdGlvbiwgdG8KLlBhIGZpbGUuMDAuZXhwYW5kIC4KLlBwCi5JdCBG bCBkUgouSXQgRmwgZmR1bXAtcnRsLXNjaGVkMgpEdW1wIGFmdGVyIHRoZSBzZWNvbmQgc2No ZWR1bGluZyBwYXNzLCB0bwouUGEgZmlsZS4zMi5zY2hlZDIgLgouUHAKLkl0IEZsIGRzCi5J dCBGbCBmZHVtcC1ydGwtY3NlCkR1bXAgYWZ0ZXIgQ1NFIChpbmNsdWRpbmcgdGhlIGp1bXAg b3B0aW1pemF0aW9uIHRoYXQgc29tZXRpbWVzIGZvbGxvd3MgQ1NFKSwgdG8KLlBhIGZpbGUu MDQuY3NlIC4KLlBwCi5JdCBGbCBkUwouSXQgRmwgZmR1bXAtcnRsLXNjaGVkCkR1bXAgYWZ0 ZXIgdGhlIGZpcnN0IHNjaGVkdWxpbmcgcGFzcywgdG8KLlBhIGZpbGUuMjEuc2NoZWQgLgou UHAKLkl0IEZsIGR0Ci5JdCBGbCBmZHVtcC1ydGwtY3NlMgpEdW1wIGFmdGVyIHRoZSBzZWNv bmQgQ1NFIHBhc3MgKGluY2x1ZGluZyB0aGUganVtcCBvcHRpbWl6YXRpb24gdGhhdCBzb21l dGltZXMgZm9sbG93cyBDU0UpLCB0bwouUGEgZmlsZS4xNS5jc2UyIC4KLlBwCi5JdCBGbCBk VAouSXQgRmwgZmR1bXAtcnRsLXRyYWNlcgpEdW1wIGFmdGVyIHJ1bm5pbmcgdHJhY2VyLCB0 bwouUGEgZmlsZS4xMi50cmFjZXIgLgouUHAKLkl0IEZsIGRWCi5JdCBGbCBmZHVtcC1ydGwt dnB0Ci5JdCBGbCBmZHVtcC1ydGwtdmFydHJhY2sKLkZsIGRWCmFuZAouRmwgZmR1bXAtcnRs LXZwdAplbmFibGUgZHVtcGluZyBhZnRlciB0aGUgdmFsdWUgcHJvZmlsZSB0cmFuc2Zvcm1h dGlvbnMsIHRvCi5QYSBmaWxlLjEwLnZwdCAuCi5GbCBkVgphbmQKLkZsIGZkdW1wLXJ0bC12 YXJ0cmFjawplbmFibGUgZHVtcGluZyBhZnRlciB2YXJpYWJsZSB0cmFja2luZywgdG8KLlBh IGZpbGUuMzQudmFydHJhY2sgLgouUHAKLkl0IEZsIGR3Ci5JdCBGbCBmZHVtcC1ydGwtZmxv dzIKRHVtcCBhZnRlciB0aGUgc2Vjb25kIGZsb3cgcGFzcywgdG8KLlBhIGZpbGUuMjYuZmxv dzIgLgouUHAKLkl0IEZsIGR6Ci5JdCBGbCBmZHVtcC1ydGwtcGVlcGhvbGUyCkR1bXAgYWZ0 ZXIgdGhlIHBlZXBob2xlIHBhc3MsIHRvCi5QYSBmaWxlLjI3LnBlZXBob2xlMiAuCi5QcAou SXQgRmwgZFoKLkl0IEZsIGZkdW1wLXJ0bC13ZWIKRHVtcCBhZnRlciBsaXZlIHJhbmdlIHNw bGl0dGluZywgdG8KLlBhIGZpbGUuMTQud2ViIC4KLlBwCi5JdCBGbCBkYQouSXQgRmwgZmR1 bXAtcnRsLWFsbApQcm9kdWNlIGFsbCB0aGUgZHVtcHMgbGlzdGVkIGFib3ZlLgouUHAKLkl0 IEZsIGRIClByb2R1Y2UgYSBjb3JlIGR1bXAgd2hlbmV2ZXIgYW4gZXJyb3Igb2NjdXJzLgou UHAKLkl0IEZsIGRtClByaW50IHN0YXRpc3RpY3Mgb24gbWVtb3J5IHVzYWdlLCBhdCB0aGUg ZW5kIG9mIHRoZSBydW4sIHRvIHN0YW5kYXJkIGVycm9yLgouUHAKLkl0IEZsIGRwCkFubm90 YXRlIHRoZSBhc3NlbWJsZXIgb3V0cHV0IHdpdGggYSBjb21tZW50IGluZGljYXRpbmcgd2hp Y2ggcGF0dGVybiBhbmQgYWx0ZXJuYXRpdmUgd2FzIHVzZWQuClRoZSBsZW5ndGggb2YgZWFj aCBpbnN0cnVjdGlvbiBpcyBhbHNvIHByaW50ZWQuCi5QcAouSXQgRmwgZFAKRHVtcCB0aGUg UlRMIGluIHRoZSBhc3NlbWJsZXIgb3V0cHV0IGFzIGEgY29tbWVudCBiZWZvcmUgZWFjaCBp bnN0cnVjdGlvbi4KQWxzbyB0dXJucyBvbgouRmwgZHAKYW5ub3RhdGlvbi4KLlBwCi5JdCBG bCBkdgpGb3IgZWFjaCBvZiB0aGUgb3RoZXIgaW5kaWNhdGVkIGR1bXAgZmlsZXMgKGVpdGhl ciB3aXRoCi5GbCBkCm9yCi5GbCBmZHVtcC1ydGwtIE5zIEFyIHBhc3MgKSAsCmR1bXAgYSBy ZXByZXNlbnRhdGlvbiBvZiB0aGUgY29udHJvbCBmbG93IGdyYXBoIHN1aXRhYmxlIGZvciB2 aWV3aW5nIHdpdGggVkNHIHRvCi5QYSBmaWxlLnBhc3MudmNnIC4KLlBwCi5JdCBGbCBkeApK dXN0IGdlbmVyYXRlIFJUTCBmb3IgYSBmdW5jdGlvbiBpbnN0ZWFkIG9mIGNvbXBpbGluZyBp dC4KVXN1YWxseSB1c2VkIHdpdGgKLlN5IHIKLkZsICggZmR1bXAtcnRsLWV4cGFuZCApIC4K LlBwCi5JdCBGbCBkeQpEdW1wIGRlYnVnZ2luZyBpbmZvcm1hdGlvbiBkdXJpbmcgcGFyc2lu ZywgdG8gc3RhbmRhcmQgZXJyb3IuCi5QcAouRWwKLkl0IEZsIGZkdW1wLXVubnVtYmVyZWQK V2hlbiBkb2luZyBkZWJ1Z2dpbmcgZHVtcHMgKHNlZQouRmwgZApvcHRpb24gYWJvdmUpLCBz dXBwcmVzcyBpbnN0cnVjdGlvbiBudW1iZXJzIGFuZCBsaW5lIG51bWJlciBub3RlIG91dHB1 dC4KVGhpcyBtYWtlcyBpdCBtb3JlIGZlYXNpYmxlIHRvIHVzZSBkaWZmIG9uIGRlYnVnZ2lu ZyBkdW1wcyBmb3IgY29tcGlsZXIgaW52b2NhdGlvbnMgd2l0aCBkaWZmZXJlbnQgb3B0aW9u cywgaW4gcGFydGljdWxhciB3aXRoIGFuZCB3aXRob3V0Ci5GbCBnIC4KLlBwCi5JdCBGbCBm ZHVtcC10cmFuc2xhdGlvbi11bml0IChDKysgb25seSkKLkl0IEZsIGZkdW1wLXRyYW5zbGF0 aW9uLXVuaXQtIE5zIEFyIG9wdGlvbnMgXH4oQysrIG9ubHkpCkR1bXAgYSByZXByZXNlbnRh dGlvbiBvZiB0aGUgdHJlZSBzdHJ1Y3R1cmUgZm9yIHRoZSBlbnRpcmUgdHJhbnNsYXRpb24g dW5pdCB0byBhIGZpbGUuClRoZSBmaWxlIG5hbWUgaXMgbWFkZSBieSBhcHBlbmRpbmcKLlBh IC50dQp0byB0aGUgc291cmNlIGZpbGUgbmFtZS4KSWYgdGhlCi5TeSAtCi5FbSBvcHRpb25z CmZvcm0gaXMgdXNlZCwKLkVtIG9wdGlvbnMKY29udHJvbHMgdGhlIGRldGFpbHMgb2YgdGhl IGR1bXAgYXMgZGVzY3JpYmVkIGZvciB0aGUKLkZsIGZkdW1wLXRyZWUKb3B0aW9ucy4KLlBw Ci5JdCBGbCBmZHVtcC1jbGFzcy1oaWVyYXJjaHkgKEMrKyBvbmx5KQouSXQgRmwgZmR1bXAt Y2xhc3MtaGllcmFyY2h5LSBOcyBBciBvcHRpb25zIFx+KEMrKyBvbmx5KQpEdW1wIGEgcmVw cmVzZW50YXRpb24gb2YgZWFjaCBjbGFzcydzIGhpZXJhcmNoeSBhbmQgdmlydHVhbCBmdW5j dGlvbiB0YWJsZSBsYXlvdXQgdG8gYSBmaWxlLgpUaGUgZmlsZSBuYW1lIGlzIG1hZGUgYnkg YXBwZW5kaW5nCi5QYSAuY2xhc3MKdG8gdGhlIHNvdXJjZSBmaWxlIG5hbWUuCklmIHRoZQou U3kgLQouRW0gb3B0aW9ucwpmb3JtIGlzIHVzZWQsCi5FbSBvcHRpb25zCmNvbnRyb2xzIHRo ZSBkZXRhaWxzIG9mIHRoZSBkdW1wIGFzIGRlc2NyaWJlZCBmb3IgdGhlCi5GbCBmZHVtcC10 cmVlCm9wdGlvbnMuCi5QcAouSXQgRmwgZmR1bXAtaXBhLSBOcyBBciBzd2l0Y2gKQ29udHJv bCB0aGUgZHVtcGluZyBhdCB2YXJpb3VzIHN0YWdlcyBvZiBpbnRlci1wcm9jZWR1cmFsIGFu YWx5c2lzIGxhbmd1YWdlIHRyZWUgdG8gYSBmaWxlLgpUaGUgZmlsZSBuYW1lIGlzIGdlbmVy YXRlZCBieSBhcHBlbmRpbmcgYSBzd2l0Y2ggc3BlY2lmaWMgc3VmZml4IHRvIHRoZSBzb3Vy Y2UgZmlsZSBuYW1lLgpUaGUgZm9sbG93aW5nIGR1bXBzIGFyZSBwb3NzaWJsZToKLlBwCi5C bCAtdGFnIC13aWR0aCB4eAouSXQgU3kgYWxsIE5zCkVuYWJsZXMgYWxsIGludGVyLXByb2Nl ZHVyYWwgYW5hbHlzaXMgZHVtcHM7IGN1cnJlbnRseSB0aGUgb25seSBwcm9kdWNlZCBkdW1w IGlzIHRoZQouU3kgY2dyYXBoCmR1bXAuCi5QcAouSXQgU3kgY2dyYXBoIE5zCkR1bXBzIGlu Zm9ybWF0aW9uIGFib3V0IGNhbGwtZ3JhcGggb3B0aW1pemF0aW9uLCB1bnVzZWQgZnVuY3Rp b24gcmVtb3ZhbCwgYW5kIGlubGluaW5nIGRlY2lzaW9ucy4KLlBwCi5FbAouSXQgRmwgZmR1 bXAtdHJlZS0gTnMgQXIgc3dpdGNoCi5JdCBGbCBmZHVtcC10cmVlLSBOcyBBciBzd2l0Y2gg TnMgLSBOcyBBciBvcHRpb25zCkNvbnRyb2wgdGhlIGR1bXBpbmcgYXQgdmFyaW91cyBzdGFn ZXMgb2YgcHJvY2Vzc2luZyB0aGUgaW50ZXJtZWRpYXRlIGxhbmd1YWdlIHRyZWUgdG8gYSBm aWxlLgpUaGUgZmlsZSBuYW1lIGlzIGdlbmVyYXRlZCBieSBhcHBlbmRpbmcgYSBzd2l0Y2gg c3BlY2lmaWMgc3VmZml4IHRvIHRoZSBzb3VyY2UgZmlsZSBuYW1lLgpJZiB0aGUKLlN5IC0K LkVtIG9wdGlvbnMKZm9ybSBpcyB1c2VkLAouRW0gb3B0aW9ucwppcyBhIGxpc3Qgb2YKLlN5 IC0Kc2VwYXJhdGVkIG9wdGlvbnMgdGhhdCBjb250cm9sIHRoZSBkZXRhaWxzIG9mIHRoZSBk dW1wLgpOb3QgYWxsIG9wdGlvbnMgYXJlIGFwcGxpY2FibGUgdG8gYWxsIGR1bXBzLCB0aG9z ZSB3aGljaCBhcmUgbm90IG1lYW5pbmdmdWwgd2lsbCBiZSBpZ25vcmVkLgpUaGUgZm9sbG93 aW5nIG9wdGlvbnMgYXJlIGF2YWlsYWJsZQouUHAKLkJsIC10YWcgLXdpZHRoIHh4Ci5JdCBT eSBhZGRyZXNzIE5zClByaW50IHRoZSBhZGRyZXNzIG9mIGVhY2ggbm9kZS4KVXN1YWxseSB0 aGlzIGlzIG5vdCBtZWFuaW5nZnVsIGFzIGl0IGNoYW5nZXMgYWNjb3JkaW5nIHRvIHRoZSBl bnZpcm9ubWVudCBhbmQgc291cmNlIGZpbGUuCkl0cyBwcmltYXJ5IHVzZSBpcyBmb3IgdHlp bmcgdXAgYSBkdW1wIGZpbGUgd2l0aCBhIGRlYnVnIGVudmlyb25tZW50LgouUHAKLkl0IFN5 IHNsaW0gTnMKSW5oaWJpdCBkdW1waW5nIG9mIG1lbWJlcnMgb2YgYSBzY29wZSBvciBib2R5 IG9mIGEgZnVuY3Rpb24gbWVyZWx5IGJlY2F1c2UgdGhhdCBzY29wZSBoYXMgYmVlbiByZWFj aGVkLgpPbmx5IGR1bXAgc3VjaCBpdGVtcyB3aGVuIHRoZXkgYXJlIGRpcmVjdGx5IHJlYWNo YWJsZSBieSBzb21lIG90aGVyIHBhdGguCldoZW4gZHVtcGluZyBwcmV0dHktcHJpbnRlZCB0 cmVlcywgdGhpcyBvcHRpb24gaW5oaWJpdHMgZHVtcGluZyB0aGUgYm9kaWVzIG9mIGNvbnRy b2wgc3RydWN0dXJlcy4KLlBwCi5JdCBTeSByYXcgTnMKUHJpbnQgYSByYXcgcmVwcmVzZW50 YXRpb24gb2YgdGhlIHRyZWUuCkJ5IGRlZmF1bHQsIHRyZWVzIGFyZSBwcmV0dHktcHJpbnRl ZCBpbnRvIGEgQy1saWtlIHJlcHJlc2VudGF0aW9uLgouUHAKLkl0IFN5IGRldGFpbHMgTnMK RW5hYmxlIG1vcmUgZGV0YWlsZWQgZHVtcHMgKG5vdCBob25vcmVkIGJ5IGV2ZXJ5IGR1bXAg b3B0aW9uKS4KLlBwCi5JdCBTeSBzdGF0cyBOcwpFbmFibGUgZHVtcGluZyB2YXJpb3VzIHN0 YXRpc3RpY3MgYWJvdXQgdGhlIHBhc3MgKG5vdCBob25vcmVkIGJ5IGV2ZXJ5IGR1bXAgb3B0 aW9uKS4KLlBwCi5JdCBTeSBibG9ja3MgTnMKRW5hYmxlIHNob3dpbmcgYmFzaWMgYmxvY2sg Ym91bmRhcmllcyAoZGlzYWJsZWQgaW4gcmF3IGR1bXBzKS4KLlBwCi5JdCBTeSB2b3BzIE5z CkVuYWJsZSBzaG93aW5nIHZpcnR1YWwgb3BlcmFuZHMgZm9yIGV2ZXJ5IHN0YXRlbWVudC4K LlBwCi5JdCBTeSBsaW5lbm8gTnMKRW5hYmxlIHNob3dpbmcgbGluZSBudW1iZXJzIGZvciBz dGF0ZW1lbnRzLgouUHAKLkl0IFN5IHVpZCBOcwpFbmFibGUgc2hvd2luZyB0aGUgdW5pcXVl IElECi5WYSAoIERFQ0xfVUlEICkKZm9yIGVhY2ggdmFyaWFibGUuCi5QcAouSXQgU3kgYWxs IE5zClR1cm4gb24gYWxsIG9wdGlvbnMsIGV4Y2VwdAouU3kgcmF3ICwKLlN5IHNsaW0KYW5k Ci5TeSBsaW5lbm8gLgouUHAKLkVsClRoZSBmb2xsb3dpbmcgdHJlZSBkdW1wcyBhcmUgcG9z c2libGU6Ci5QcAouQmwgLXRhZyAtd2lkdGggeHgKLkl0IFN5IG9yaWdpbmFsIE5zCkR1bXAg YmVmb3JlIGFueSB0cmVlIGJhc2VkIG9wdGltaXphdGlvbiwgdG8KLlBhIGZpbGUub3JpZ2lu YWwgLgouUHAKLkl0IFN5IG9wdGltaXplZCBOcwpEdW1wIGFmdGVyIGFsbCB0cmVlIGJhc2Vk IG9wdGltaXphdGlvbiwgdG8KLlBhIGZpbGUub3B0aW1pemVkIC4KLlBwCi5JdCBTeSBpbmxp bmVkIE5zCkR1bXAgYWZ0ZXIgZnVuY3Rpb24gaW5saW5pbmcsIHRvCi5QYSBmaWxlLmlubGlu ZWQgLgouUHAKLkl0IFN5IGdpbXBsZSBOcwpEdW1wIGVhY2ggZnVuY3Rpb24gYmVmb3JlIGFu ZCBhZnRlciB0aGUgZ2ltcGxpZmljYXRpb24gcGFzcyB0byBhIGZpbGUuClRoZSBmaWxlIG5h bWUgaXMgbWFkZSBieSBhcHBlbmRpbmcKLlBhIC5naW1wbGUKdG8gdGhlIHNvdXJjZSBmaWxl IG5hbWUuCi5QcAouSXQgU3kgY2ZnIE5zCkR1bXAgdGhlIGNvbnRyb2wgZmxvdyBncmFwaCBv ZiBlYWNoIGZ1bmN0aW9uIHRvIGEgZmlsZS4KVGhlIGZpbGUgbmFtZSBpcyBtYWRlIGJ5IGFw cGVuZGluZwouUGEgLmNmZwp0byB0aGUgc291cmNlIGZpbGUgbmFtZS4KLlBwCi5JdCBTeSB2 Y2cgTnMKRHVtcCB0aGUgY29udHJvbCBmbG93IGdyYXBoIG9mIGVhY2ggZnVuY3Rpb24gdG8g YSBmaWxlIGluIFZDRyBmb3JtYXQuClRoZSBmaWxlIG5hbWUgaXMgbWFkZSBieSBhcHBlbmRp bmcKLlBhIC52Y2cKdG8gdGhlIHNvdXJjZSBmaWxlIG5hbWUuCk5vdGUgdGhhdCBpZiB0aGUg ZmlsZSBjb250YWlucyBtb3JlIHRoYW4gb25lIGZ1bmN0aW9uLCB0aGUgZ2VuZXJhdGVkIGZp bGUgY2Fubm90IGJlIHVzZWQgZGlyZWN0bHkgYnkgVkNHLgpZb3Ugd2lsbCBuZWVkIHRvIGN1 dCBhbmQgcGFzdGUgZWFjaCBmdW5jdGlvbidzIGdyYXBoIGludG8gaXRzIG93biBzZXBhcmF0 ZSBmaWxlIGZpcnN0LgouUHAKLkl0IFN5IGNoIE5zCkR1bXAgZWFjaCBmdW5jdGlvbiBhZnRl ciBjb3B5aW5nIGxvb3AgaGVhZGVycy4KVGhlIGZpbGUgbmFtZSBpcyBtYWRlIGJ5IGFwcGVu ZGluZwouUGEgLmNoCnRvIHRoZSBzb3VyY2UgZmlsZSBuYW1lLgouUHAKLkl0IFN5IHNzYSBO cwpEdW1wIFNTQSByZWxhdGVkIGluZm9ybWF0aW9uIHRvIGEgZmlsZS4KVGhlIGZpbGUgbmFt ZSBpcyBtYWRlIGJ5IGFwcGVuZGluZwouUGEgLnNzYQp0byB0aGUgc291cmNlIGZpbGUgbmFt ZS4KLlBwCi5JdCBTeSBzYWxpYXMgTnMKRHVtcCBzdHJ1Y3R1cmUgYWxpYXNpbmcgdmFyaWFi bGUgaW5mb3JtYXRpb24gdG8gYSBmaWxlLgpUaGlzIGZpbGUgbmFtZSBpcyBtYWRlIGJ5IGFw cGVuZGluZwouUGEgLnNhbGlhcwp0byB0aGUgc291cmNlIGZpbGUgbmFtZS4KLlBwCi5JdCBT eSBhbGlhcyBOcwpEdW1wIGFsaWFzaW5nIGluZm9ybWF0aW9uIGZvciBlYWNoIGZ1bmN0aW9u LgpUaGUgZmlsZSBuYW1lIGlzIG1hZGUgYnkgYXBwZW5kaW5nCi5QYSAuYWxpYXMKdG8gdGhl IHNvdXJjZSBmaWxlIG5hbWUuCi5QcAouSXQgU3kgY2NwIE5zCkR1bXAgZWFjaCBmdW5jdGlv biBhZnRlciBDQ1AuClRoZSBmaWxlIG5hbWUgaXMgbWFkZSBieSBhcHBlbmRpbmcKLlBhIC5j Y3AKdG8gdGhlIHNvdXJjZSBmaWxlIG5hbWUuCi5QcAouSXQgU3kgc3RvcmVjY3AgTnMKRHVt cCBlYWNoIGZ1bmN0aW9uIGFmdGVyIFNUT1JFLUNDUC4KVGhlIGZpbGUgbmFtZSBpcyBtYWRl IGJ5IGFwcGVuZGluZwouUGEgLnN0b3JlY2NwCnRvIHRoZSBzb3VyY2UgZmlsZSBuYW1lLgou UHAKLkl0IFN5IHByZSBOcwpEdW1wIHRyZWVzIGFmdGVyIHBhcnRpYWwgcmVkdW5kYW5jeSBl bGltaW5hdGlvbi4KVGhlIGZpbGUgbmFtZSBpcyBtYWRlIGJ5IGFwcGVuZGluZwouUGEgLnBy ZQp0byB0aGUgc291cmNlIGZpbGUgbmFtZS4KLlBwCi5JdCBTeSBmcmUgTnMKRHVtcCB0cmVl cyBhZnRlciBmdWxsIHJlZHVuZGFuY3kgZWxpbWluYXRpb24uClRoZSBmaWxlIG5hbWUgaXMg bWFkZSBieSBhcHBlbmRpbmcKLlBhIC5mcmUKdG8gdGhlIHNvdXJjZSBmaWxlIG5hbWUuCi5Q cAouSXQgU3kgY29weXByb3AgTnMKRHVtcCB0cmVlcyBhZnRlciBjb3B5IHByb3BhZ2F0aW9u LgpUaGUgZmlsZSBuYW1lIGlzIG1hZGUgYnkgYXBwZW5kaW5nCi5QYSAuY29weXByb3AKdG8g dGhlIHNvdXJjZSBmaWxlIG5hbWUuCi5QcAouSXQgU3kgc3RvcmVfY29weXByb3AgTnMKRHVt cCB0cmVlcyBhZnRlciBzdG9yZSBjb3B5LXByb3BhZ2F0aW9uLgpUaGUgZmlsZSBuYW1lIGlz IG1hZGUgYnkgYXBwZW5kaW5nCi5QYSAuc3RvcmVfY29weXByb3AKdG8gdGhlIHNvdXJjZSBm aWxlIG5hbWUuCi5QcAouSXQgU3kgZGNlIE5zCkR1bXAgZWFjaCBmdW5jdGlvbiBhZnRlciBk ZWFkIGNvZGUgZWxpbWluYXRpb24uClRoZSBmaWxlIG5hbWUgaXMgbWFkZSBieSBhcHBlbmRp bmcKLlBhIC5kY2UKdG8gdGhlIHNvdXJjZSBmaWxlIG5hbWUuCi5QcAouSXQgU3kgbXVkZmxh cCBOcwpEdW1wIGVhY2ggZnVuY3Rpb24gYWZ0ZXIgYWRkaW5nIG11ZGZsYXAgaW5zdHJ1bWVu dGF0aW9uLgpUaGUgZmlsZSBuYW1lIGlzIG1hZGUgYnkgYXBwZW5kaW5nCi5QYSAubXVkZmxh cAp0byB0aGUgc291cmNlIGZpbGUgbmFtZS4KLlBwCi5JdCBTeSBzcmEgTnMKRHVtcCBlYWNo IGZ1bmN0aW9uIGFmdGVyIHBlcmZvcm1pbmcgc2NhbGFyIHJlcGxhY2VtZW50IG9mIGFnZ3Jl Z2F0ZXMuClRoZSBmaWxlIG5hbWUgaXMgbWFkZSBieSBhcHBlbmRpbmcKLlBhIC5zcmEKdG8g dGhlIHNvdXJjZSBmaWxlIG5hbWUuCi5QcAouSXQgU3kgc2luayBOcwpEdW1wIGVhY2ggZnVu Y3Rpb24gYWZ0ZXIgcGVyZm9ybWluZyBjb2RlIHNpbmtpbmcuClRoZSBmaWxlIG5hbWUgaXMg bWFkZSBieSBhcHBlbmRpbmcKLlBhIC5zaW5rCnRvIHRoZSBzb3VyY2UgZmlsZSBuYW1lLgou UHAKLkl0IFN5IGRvbSBOcwpEdW1wIGVhY2ggZnVuY3Rpb24gYWZ0ZXIgYXBwbHlpbmcgZG9t aW5hdG9yIHRyZWUgb3B0aW1pemF0aW9ucy4KVGhlIGZpbGUgbmFtZSBpcyBtYWRlIGJ5IGFw cGVuZGluZwouUGEgLmRvbQp0byB0aGUgc291cmNlIGZpbGUgbmFtZS4KLlBwCi5JdCBTeSBk c2UgTnMKRHVtcCBlYWNoIGZ1bmN0aW9uIGFmdGVyIGFwcGx5aW5nIGRlYWQgc3RvcmUgZWxp bWluYXRpb24uClRoZSBmaWxlIG5hbWUgaXMgbWFkZSBieSBhcHBlbmRpbmcKLlBhIC5kc2UK dG8gdGhlIHNvdXJjZSBmaWxlIG5hbWUuCi5QcAouSXQgU3kgcGhpb3B0IE5zCkR1bXAgZWFj aCBmdW5jdGlvbiBhZnRlciBvcHRpbWl6aW5nIFBISSBub2RlcyBpbnRvIHN0cmFpZ2h0bGlu ZSBjb2RlLgpUaGUgZmlsZSBuYW1lIGlzIG1hZGUgYnkgYXBwZW5kaW5nCi5QYSAucGhpb3B0 CnRvIHRoZSBzb3VyY2UgZmlsZSBuYW1lLgouUHAKLkl0IFN5IGZvcndwcm9wIE5zCkR1bXAg ZWFjaCBmdW5jdGlvbiBhZnRlciBmb3J3YXJkIHByb3BhZ2F0aW5nIHNpbmdsZSB1c2UgdmFy aWFibGVzLgpUaGUgZmlsZSBuYW1lIGlzIG1hZGUgYnkgYXBwZW5kaW5nCi5QYSAuZm9yd3By b3AKdG8gdGhlIHNvdXJjZSBmaWxlIG5hbWUuCi5QcAouSXQgU3kgY29weXJlbmFtZSBOcwpE dW1wIGVhY2ggZnVuY3Rpb24gYWZ0ZXIgYXBwbHlpbmcgdGhlIGNvcHkgcmVuYW1lIG9wdGlt aXphdGlvbi4KVGhlIGZpbGUgbmFtZSBpcyBtYWRlIGJ5IGFwcGVuZGluZwouUGEgLmNvcHly ZW5hbWUKdG8gdGhlIHNvdXJjZSBmaWxlIG5hbWUuCi5QcAouSXQgU3kgbnJ2IE5zCkR1bXAg ZWFjaCBmdW5jdGlvbiBhZnRlciBhcHBseWluZyB0aGUgbmFtZWQgcmV0dXJuIHZhbHVlIG9w dGltaXphdGlvbiBvbiBnZW5lcmljIHRyZWVzLgpUaGUgZmlsZSBuYW1lIGlzIG1hZGUgYnkg YXBwZW5kaW5nCi5QYSAubnJ2CnRvIHRoZSBzb3VyY2UgZmlsZSBuYW1lLgouUHAKLkl0IFN5 IHZlY3QgTnMKRHVtcCBlYWNoIGZ1bmN0aW9uIGFmdGVyIGFwcGx5aW5nIHZlY3Rvcml6YXRp b24gb2YgbG9vcHMuClRoZSBmaWxlIG5hbWUgaXMgbWFkZSBieSBhcHBlbmRpbmcKLlBhIC52 ZWN0CnRvIHRoZSBzb3VyY2UgZmlsZSBuYW1lLgouUHAKLkl0IFN5IHZycCBOcwpEdW1wIGVh Y2ggZnVuY3Rpb24gYWZ0ZXIgVmFsdWUgUmFuZ2UgUHJvcGFnYXRpb24gKFZSUCkuClRoZSBm aWxlIG5hbWUgaXMgbWFkZSBieSBhcHBlbmRpbmcKLlBhIC52cnAKdG8gdGhlIHNvdXJjZSBm aWxlIG5hbWUuCi5QcAouSXQgU3kgYWxsIE5zCkVuYWJsZSBhbGwgdGhlIGF2YWlsYWJsZSB0 cmVlIGR1bXBzIHdpdGggdGhlIGZsYWdzIHByb3ZpZGVkIGluIHRoaXMgb3B0aW9uLgouUHAK LkVsCi5JdCBGbCBmdHJlZS12ZWN0b3JpemVyLXZlcmJvc2U9IE5zIEFyIG4KVGhpcyBvcHRp b24gY29udHJvbHMgdGhlIGFtb3VudCBvZiBkZWJ1Z2dpbmcgb3V0cHV0IHRoZSB2ZWN0b3Jp emVyIHByaW50cy4KVGhpcyBpbmZvcm1hdGlvbiBpcyB3cml0dGVuIHRvIHN0YW5kYXJkIGVy cm9yLCB1bmxlc3MKLkZsIGZkdW1wLXRyZWUtYWxsCm9yCi5GbCBmZHVtcC10cmVlLXZlY3QK aXMgc3BlY2lmaWVkLCBpbiB3aGljaCBjYXNlIGl0IGlzIG91dHB1dCB0byB0aGUgdXN1YWwg ZHVtcCBsaXN0aW5nIGZpbGUsCi5QYSAudmVjdCAuCi5QcAouSXQgRmwgZnJhbmRvbS1zZWVk PSBOcyBBciBzdHJpbmcKVGhpcyBvcHRpb24gcHJvdmlkZXMgYSBzZWVkIHRoYXQgR0NDIHVz ZXMgd2hlbiBpdCB3b3VsZCBvdGhlcndpc2UgdXNlIHJhbmRvbSBudW1iZXJzLgpJdCBpcyB1 c2VkIHRvIGdlbmVyYXRlIGNlcnRhaW4gc3ltYm9sIG5hbWVzIHRoYXQgaGF2ZSB0byBiZSBk aWZmZXJlbnQgaW4gZXZlcnkgY29tcGlsZWQgZmlsZS4KSXQgaXMgYWxzbyB1c2VkIHRvIHBs YWNlIHVuaXF1ZSBzdGFtcHMgaW4gY292ZXJhZ2UgZGF0YSBmaWxlcyBhbmQgdGhlIG9iamVj dCBmaWxlcyB0aGF0IHByb2R1Y2UgdGhlbS4KWW91IGNhbiB1c2UgdGhlCi5GbCBmcmFuZG9t LXNlZWQKb3B0aW9uIHRvIHByb2R1Y2UgcmVwcm9kdWNpYmx5IGlkZW50aWNhbCBvYmplY3Qg ZmlsZXMuCi5QcApUaGUKLkVtIHN0cmluZwpzaG91bGQgYmUgZGlmZmVyZW50IGZvciBldmVy eSBmaWxlIHlvdSBjb21waWxlLgouUHAKLkl0IEZsIGZzY2hlZC12ZXJib3NlPSBOcyBBciBu Ck9uIHRhcmdldHMgdGhhdCB1c2UgaW5zdHJ1Y3Rpb24gc2NoZWR1bGluZywgdGhpcyBvcHRp b24gY29udHJvbHMgdGhlIGFtb3VudCBvZiBkZWJ1Z2dpbmcgb3V0cHV0IHRoZSBzY2hlZHVs ZXIgcHJpbnRzLgpUaGlzIGluZm9ybWF0aW9uIGlzIHdyaXR0ZW4gdG8gc3RhbmRhcmQgZXJy b3IsIHVubGVzcwouRmwgZFMKb3IKLkZsIGRSCmlzIHNwZWNpZmllZCwgaW4gd2hpY2ggY2Fz ZSBpdCBpcyBvdXRwdXQgdG8gdGhlIHVzdWFsIGR1bXAgbGlzdGluZyBmaWxlLAouUGEgLnNj aGVkCm9yCi5QYSAuc2NoZWQyCnJlc3BlY3RpdmVseS4KSG93ZXZlciBmb3IKLkVtIG4KZ3Jl YXRlciB0aGFuIG5pbmUsIHRoZSBvdXRwdXQgaXMgYWx3YXlzIHByaW50ZWQgdG8gc3RhbmRh cmQgZXJyb3IuCi5QcApGb3IKLkVtIG4KZ3JlYXRlciB0aGFuIHplcm8sCi5GbCBmc2NoZWQt dmVyYm9zZQpvdXRwdXRzIHRoZSBzYW1lIGluZm9ybWF0aW9uIGFzCi5GbCBkUlMgLgpGb3IK LkVtIG4KZ3JlYXRlciB0aGFuIG9uZSwgaXQgYWxzbyBvdXRwdXQgYmFzaWMgYmxvY2sgcHJv YmFiaWxpdGllcywgZGV0YWlsZWQgcmVhZHkgbGlzdCBpbmZvcm1hdGlvbiBhbmQgdW5pdC9p bnNuIGluZm8uCkZvcgouRW0gbgpncmVhdGVyIHRoYW4gdHdvLCBpdCBpbmNsdWRlcyBSVEwg YXQgYWJvcnQgcG9pbnQsIGNvbnRyb2wtZmxvdyBhbmQgcmVnaW9ucyBpbmZvLgpBbmQgZm9y Ci5FbSBuCm92ZXIgZm91ciwKLkZsIGZzY2hlZC12ZXJib3NlCmFsc28gaW5jbHVkZXMgZGVw ZW5kZW5jZSBpbmZvLgouUHAKLkl0IEZsIHNhdmUtdGVtcHMKU3RvcmUgdGhlIHVzdWFsICJ0 ZW1wb3JhcnkiIGludGVybWVkaWF0ZSBmaWxlcyBwZXJtYW5lbnRseTsgcGxhY2UgdGhlbSBp biB0aGUgY3VycmVudCBkaXJlY3RvcnkgYW5kIG5hbWUgdGhlbSBiYXNlZCBvbiB0aGUgc291 cmNlIGZpbGUuClRodXMsIGNvbXBpbGluZwouUGEgZm9vLmMKd2l0aAouRmwgYyBGbCBzYXZl LXRlbXBzCndvdWxkIHByb2R1Y2UgZmlsZXMKLlBhIGZvby5pCmFuZAouUGEgZm9vLnMgLAph cyB3ZWxsIGFzCi5QYSBmb28ubyAuClRoaXMgY3JlYXRlcyBhIHByZXByb2Nlc3NlZAouUGEg Zm9vLmkKb3V0cHV0IGZpbGUgZXZlbiB0aG91Z2ggdGhlIGNvbXBpbGVyIG5vdyBub3JtYWxs eSB1c2VzIGFuIGludGVncmF0ZWQgcHJlcHJvY2Vzc29yLgouUHAKV2hlbiB1c2VkIGluIGNv bWJpbmF0aW9uIHdpdGggdGhlCi5GbCB4CmNvbW1hbmQgbGluZSBvcHRpb24sCi5GbCBzYXZl LXRlbXBzCmlzIHNlbnNpYmxlIGVub3VnaCB0byBhdm9pZCBvdmVyIHdyaXRpbmcgYW4gaW5w dXQgc291cmNlIGZpbGUgd2l0aCB0aGUgc2FtZSBleHRlbnNpb24gYXMgYW4gaW50ZXJtZWRp YXRlIGZpbGUuClRoZSBjb3JyZXNwb25kaW5nIGludGVybWVkaWF0ZSBmaWxlIG1heSBiZSBv YnRhaW5lZCBieSByZW5hbWluZyB0aGUgc291cmNlIGZpbGUgYmVmb3JlIHVzaW5nCi5GbCBz YXZlLXRlbXBzIC4KLlBwCi5JdCBGbCB0aW1lClJlcG9ydCB0aGUgQ1BVIHRpbWUgdGFrZW4g YnkgZWFjaCBzdWJwcm9jZXNzIGluIHRoZSBjb21waWxhdGlvbiBzZXF1ZW5jZS4KRm9yIEMg c291cmNlIGZpbGVzLCB0aGlzIGlzIHRoZSBjb21waWxlciBwcm9wZXIgYW5kIGFzc2VtYmxl ciAocGx1cyB0aGUgbGlua2VyIGlmIGxpbmtpbmcgaXMgZG9uZSkuClRoZSBvdXRwdXQgbG9v a3MgbGlrZSB0aGlzOgouUHAKLkJkIC1saXRlcmFsIC1vZmZzZXQgaW5kZW50CiMgY2MxIDAu MTIgMC4wMQojIGFzIDAuMDAgMC4wMQouRWQKVGhlIGZpcnN0IG51bWJlciBvbiBlYWNoIGxp bmUgaXMgdGhlICJ1c2VyIHRpbWUiLCB0aGF0IGlzIHRpbWUgc3BlbnQgZXhlY3V0aW5nIHRo ZSBwcm9ncmFtIGl0c2VsZi4KVGhlIHNlY29uZCBudW1iZXIgaXMgInN5c3RlbSB0aW1lIiwg dGltZSBzcGVudCBleGVjdXRpbmcgb3BlcmF0aW5nIHN5c3RlbSByb3V0aW5lcyBvbiBiZWhh bGYgb2YgdGhlIHByb2dyYW0uCkJvdGggbnVtYmVycyBhcmUgaW4gc2Vjb25kcy4KLlBwCi5J dCBGbCBmdmFyLXRyYWNraW5nClJ1biB2YXJpYWJsZSB0cmFja2luZyBwYXNzLgpJdCBjb21w dXRlcyB3aGVyZSB2YXJpYWJsZXMgYXJlIHN0b3JlZCBhdCBlYWNoIHBvc2l0aW9uIGluIGNv ZGUuCkJldHRlciBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gaXMgdGhlbiBnZW5lcmF0ZWQgKGlm IHRoZSBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gZm9ybWF0IHN1cHBvcnRzIHRoaXMgaW5mb3Jt YXRpb24pLgouUHAKSXQgaXMgZW5hYmxlZCBieSBkZWZhdWx0IHdoZW4gY29tcGlsaW5nIHdp dGggb3B0aW1pemF0aW9uCi5GbCAoIFwmT3MgLAouRmwgTyAsCi5GbCBPMiAsIC4gLiAuICkg LApkZWJ1Z2dpbmcgaW5mb3JtYXRpb24KLkZsICggZyApCmFuZCB0aGUgZGVidWcgaW5mbyBm b3JtYXQgc3VwcG9ydHMgaXQuCi5QcAouSXQgRmwgcHJpbnQtZmlsZS1uYW1lPSBOcyBBciBs aWJyYXJ5ClByaW50IHRoZSBmdWxsIGFic29sdXRlIG5hbWUgb2YgdGhlIGxpYnJhcnkgZmls ZQouRW0gbGlicmFyeQp0aGF0IHdvdWxkIGJlIHVzZWQgd2hlbiBsaW5raW5nLS0tYW5kIGRv bid0IGRvIGFueXRoaW5nIGVsc2UuCldpdGggdGhpcyBvcHRpb24sIEdDQyBkb2VzIG5vdCBj b21waWxlIG9yIGxpbmsgYW55dGhpbmc7IGl0IGp1c3QgcHJpbnRzIHRoZSBmaWxlIG5hbWUu Ci5QcAouSXQgRmwgcHJpbnQtbXVsdGktZGlyZWN0b3J5ClByaW50IHRoZSBkaXJlY3Rvcnkg bmFtZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBtdWx0aWxpYiBzZWxlY3RlZCBieSBhbnkgb3Ro ZXIgc3dpdGNoZXMgcHJlc2VudCBpbiB0aGUgY29tbWFuZCBsaW5lLgpUaGlzIGRpcmVjdG9y eSBpcyBzdXBwb3NlZCB0byBleGlzdCBpbgouU3kgR0NDX0VYRUNfUFJFRklYIC4KLlBwCi5J dCBGbCBwcmludC1tdWx0aS1saWIKUHJpbnQgdGhlIG1hcHBpbmcgZnJvbSBtdWx0aWxpYiBk aXJlY3RvcnkgbmFtZXMgdG8gY29tcGlsZXIgc3dpdGNoZXMgdGhhdCBlbmFibGUgdGhlbS4K VGhlIGRpcmVjdG9yeSBuYW1lIGlzIHNlcGFyYXRlZCBmcm9tIHRoZSBzd2l0Y2hlcyBieQou U3kgOyAsCmFuZCBlYWNoIHN3aXRjaCBzdGFydHMgd2l0aCBhbgouU3kgQH0gaW5zdGVhZCBv ZiB0aGUgQHNhbXB7LSAsCndpdGhvdXQgc3BhY2VzIGJldHdlZW4gbXVsdGlwbGUgc3dpdGNo ZXMuClRoaXMgaXMgc3VwcG9zZWQgdG8gZWFzZSBzaGVsbC1wcm9jZXNzaW5nLgouUHAKLkl0 IEZsIHByaW50LXByb2ctbmFtZT0gTnMgQXIgcHJvZ3JhbQpMaWtlCi5GbCBwcmludC1maWxl LW5hbWUgLApidXQgc2VhcmNoZXMgZm9yIGEgcHJvZ3JhbSBzdWNoIGFzCi5TeSBjcHAgLgou UHAKLkl0IEZsIHByaW50LWxpYmdjYy1maWxlLW5hbWUKU2FtZSBhcwouU3kgLXByaW50LWZp bGUtbmFtZT1saWJnY2MuYSAuCi5QcApUaGlzIGlzIHVzZWZ1bCB3aGVuIHlvdSB1c2UKLkZs IG5vc3RkbGliCm9yCi5GbCBub2RlZmF1bHRsaWJzCmJ1dCB5b3UgZG8gd2FudCB0byBsaW5r IHdpdGgKLlBhIGxpYmdjYy5hIC4KWW91IGNhbiBkbwouUHAKLkJkIC1saXRlcmFsIC1vZmZz ZXQgaW5kZW50CmdjYyAtbm9zdGRsaWIgXCpbTHRdZmlsZXNcKltHdF0uLi4gYGdjYyAtcHJp bnQtbGliZ2NjLWZpbGUtbmFtZWAKLkVkCi5JdCBGbCBwcmludC1zZWFyY2gtZGlycwpQcmlu dCB0aGUgbmFtZSBvZiB0aGUgY29uZmlndXJlZCBpbnN0YWxsYXRpb24gZGlyZWN0b3J5IGFu ZCBhIGxpc3Qgb2YgcHJvZ3JhbSBhbmQgbGlicmFyeSBkaXJlY3RvcmllcwouTm0gZ2NjCndp bGwgc2VhcmNoLS0tYW5kIGRvbid0IGRvIGFueXRoaW5nIGVsc2UuCi5QcApUaGlzIGlzIHVz ZWZ1bCB3aGVuCi5ObSBnY2MKcHJpbnRzIHRoZSBlcnJvciBtZXNzYWdlCi5TeSBpbnN0YWxs YXRpb24gcHJvYmxlbSwgY2Fubm90IGV4ZWMgY3BwMDogTm8gc3VjaCBmaWxlIG9yIGRpcmVj dG9yeSAuClRvIHJlc29sdmUgdGhpcyB5b3UgZWl0aGVyIG5lZWQgdG8gcHV0Ci5QYSBjcHAw CmFuZCB0aGUgb3RoZXIgY29tcGlsZXIgY29tcG9uZW50cyB3aGVyZQouTm0gZ2NjCmV4cGVj dHMgdG8gZmluZCB0aGVtLCBvciB5b3UgY2FuIHNldCB0aGUgZW52aXJvbm1lbnQgdmFyaWFi bGUKLlN5IEdDQ19FWEVDX1BSRUZJWAp0byB0aGUgZGlyZWN0b3J5IHdoZXJlIHlvdSBpbnN0 YWxsZWQgdGhlbS4KRG9uJ3QgZm9yZ2V0IHRoZSB0cmFpbGluZwouU3kgLyAuCi5QcAouSXQg RmwgZHVtcG1hY2hpbmUKUHJpbnQgdGhlIGNvbXBpbGVyJ3MgdGFyZ2V0IG1hY2hpbmUgKGZv ciBleGFtcGxlLAouU3kgaTY4Ni1wYy1saW51eC1nbnUgKQotLS1hbmQgZG9uJ3QgZG8gYW55 dGhpbmcgZWxzZS4KLlBwCi5JdCBGbCBkdW1wdmVyc2lvbgpQcmludCB0aGUgY29tcGlsZXIg dmVyc2lvbiAoZm9yIGV4YW1wbGUsCi5TeSAzLjAgKQotLS1hbmQgZG9uJ3QgZG8gYW55dGhp bmcgZWxzZS4KLlBwCi5JdCBGbCBkdW1wc3BlY3MKUHJpbnQgdGhlIGNvbXBpbGVyJ3MgYnVp bHQtaW4gc3BlY3MtLS1hbmQgZG9uJ3QgZG8gYW55dGhpbmcgZWxzZS4KKFRoaXMgaXMgdXNl ZCB3aGVuIEdDQyBpdHNlbGYgaXMgYmVpbmcgYnVpbHQuKQouUHAKLkl0IEZsIGZlbGltaW5h dGUtdW51c2VkLWRlYnVnLXR5cGVzCk5vcm1hbGx5LCB3aGVuIHByb2R1Y2luZyBEV0FSRjIg b3V0cHV0LCBHQ0Mgd2lsbCBlbWl0IGRlYnVnZ2luZyBpbmZvcm1hdGlvbiBmb3IgYWxsIHR5 cGVzIGRlY2xhcmVkIGluIGEgY29tcGlsYXRpb24gdW5pdCwgcmVnYXJkbGVzcyBvZiB3aGV0 aGVyIG9yIG5vdCB0aGV5IGFyZSBhY3R1YWxseSB1c2VkIGluIHRoYXQgY29tcGlsYXRpb24g dW5pdC4KU29tZXRpbWVzIHRoaXMgaXMgdXNlZnVsLCBzdWNoIGFzIGlmLCBpbiB0aGUgZGVi dWdnZXIsIHlvdSB3YW50IHRvIGNhc3QgYSB2YWx1ZSB0byBhIHR5cGUgdGhhdCBpcyBub3Qg YWN0dWFsbHkgdXNlZCBpbiB5b3VyIHByb2dyYW0gKGJ1dCBpcyBkZWNsYXJlZCkuCk1vcmUg b2Z0ZW4sIGhvd2V2ZXIsIHRoaXMgcmVzdWx0cyBpbiBhIHNpZ25pZmljYW50IGFtb3VudCBv ZiB3YXN0ZWQgc3BhY2UuCldpdGggdGhpcyBvcHRpb24sIEdDQyB3aWxsIGF2b2lkIHByb2R1 Y2luZyBkZWJ1ZyBzeW1ib2wgb3V0cHV0IGZvciB0eXBlcyB0aGF0IGFyZSBub3doZXJlIHVz ZWQgaW4gdGhlIHNvdXJjZSBmaWxlIGJlaW5nIGNvbXBpbGVkLgouUHAKLkVsCi5TcyBPcHRp b25zIFRoYXQgQ29udHJvbCBPcHRpbWl6YXRpb24KVGhlc2Ugb3B0aW9ucyBjb250cm9sIHZh cmlvdXMgc29ydHMgb2Ygb3B0aW1pemF0aW9ucy4KLlBwCldpdGhvdXQgYW55IG9wdGltaXph dGlvbiBvcHRpb24sIHRoZSBjb21waWxlcidzIGdvYWwgaXMgdG8gcmVkdWNlIHRoZSBjb3N0 IG9mIGNvbXBpbGF0aW9uIGFuZCB0byBtYWtlIGRlYnVnZ2luZyBwcm9kdWNlIHRoZSBleHBl Y3RlZCByZXN1bHRzLgpTdGF0ZW1lbnRzIGFyZSBpbmRlcGVuZGVudDogaWYgeW91IHN0b3Ag dGhlIHByb2dyYW0gd2l0aCBhIGJyZWFrcG9pbnQgYmV0d2VlbiBzdGF0ZW1lbnRzLCB5b3Ug Y2FuIHRoZW4gYXNzaWduIGEgbmV3IHZhbHVlIHRvIGFueSB2YXJpYWJsZSBvciBjaGFuZ2Ug dGhlIHByb2dyYW0gY291bnRlciB0byBhbnkgb3RoZXIgc3RhdGVtZW50IGluIHRoZSBmdW5j dGlvbiBhbmQgZ2V0IGV4YWN0bHkgdGhlIHJlc3VsdHMgeW91IHdvdWxkIGV4cGVjdCBmcm9t IHRoZSBzb3VyY2UgY29kZS4KLlBwClR1cm5pbmcgb24gb3B0aW1pemF0aW9uIGZsYWdzIG1h a2VzIHRoZSBjb21waWxlciBhdHRlbXB0IHRvIGltcHJvdmUgdGhlIHBlcmZvcm1hbmNlIGFu ZC9vciBjb2RlIHNpemUgYXQgdGhlIGV4cGVuc2Ugb2YgY29tcGlsYXRpb24gdGltZSBhbmQg cG9zc2libHkgdGhlIGFiaWxpdHkgdG8gZGVidWcgdGhlIHByb2dyYW0uCi5QcApUaGUgY29t cGlsZXIgcGVyZm9ybXMgb3B0aW1pemF0aW9uIGJhc2VkIG9uIHRoZSBrbm93bGVkZ2UgaXQg aGFzIG9mIHRoZSBwcm9ncmFtLgpPcHRpbWl6YXRpb24gbGV2ZWxzCi5GbCBPCmFuZCBhYm92 ZSwgaW4gcGFydGljdWxhciwgZW5hYmxlCi5FbSB1bml0LWF0LWEtdGltZQptb2RlLCB3aGlj aCBhbGxvd3MgdGhlIGNvbXBpbGVyIHRvIGNvbnNpZGVyIGluZm9ybWF0aW9uIGdhaW5lZCBm cm9tIGxhdGVyIGZ1bmN0aW9ucyBpbiB0aGUgZmlsZSB3aGVuIGNvbXBpbGluZyBhIGZ1bmN0 aW9uLgpDb21waWxpbmcgbXVsdGlwbGUgZmlsZXMgYXQgb25jZSB0byBhIHNpbmdsZSBvdXRw dXQgZmlsZSBpbgouRW0gdW5pdC1hdC1hLXRpbWUKbW9kZSBhbGxvd3MgdGhlIGNvbXBpbGVy IHRvIHVzZSBpbmZvcm1hdGlvbiBnYWluZWQgZnJvbSBhbGwgb2YgdGhlIGZpbGVzIHdoZW4g Y29tcGlsaW5nIGVhY2ggb2YgdGhlbS4KLlBwCk5vdCBhbGwgb3B0aW1pemF0aW9ucyBhcmUg Y29udHJvbGxlZCBkaXJlY3RseSBieSBhIGZsYWcuCk9ubHkgb3B0aW1pemF0aW9ucyB0aGF0 IGhhdmUgYSBmbGFnIGFyZSBsaXN0ZWQuCi5QcAouQmwgLXRhZyAtd2lkdGggeHgKLkl0IEZs IE8KLkl0IEZsIE8xCk9wdGltaXplLgpPcHRpbWl6aW5nIGNvbXBpbGF0aW9uIHRha2VzIHNv bWV3aGF0IG1vcmUgdGltZSwgYW5kIGEgbG90IG1vcmUgbWVtb3J5IGZvciBhIGxhcmdlIGZ1 bmN0aW9uLgouUHAKV2l0aAouRmwgTyAsCnRoZSBjb21waWxlciB0cmllcyB0byByZWR1Y2Ug Y29kZSBzaXplIGFuZCBleGVjdXRpb24gdGltZSwgd2l0aG91dCBwZXJmb3JtaW5nIGFueSBv cHRpbWl6YXRpb25zIHRoYXQgdGFrZSBhIGdyZWF0IGRlYWwgb2YgY29tcGlsYXRpb24gdGlt ZS4KLlBwCi5GbCBPCnR1cm5zIG9uIHRoZSBmb2xsb3dpbmcgb3B0aW1pemF0aW9uIGZsYWdz OgouRmwgZmRlZmVyLXBvcCBGbCBmZGVsYXllZC1icmFuY2ggRmwgZmd1ZXNzLWJyYW5jaC1w cm9iYWJpbGl0eSBGbCBmY3Byb3AtcmVnaXN0ZXJzIEZsIGZsb29wLW9wdGltaXplIEZsIGZp Zi1jb252ZXJzaW9uIEZsIGZpZi1jb252ZXJzaW9uMiBGbCBmdHJlZS1jY3AgRmwgZnRyZWUt ZGNlIEZsIGZ0cmVlLWRvbWluYXRvci1vcHRzIEZsIGZ0cmVlLWRzZSBGbCBmdHJlZS10ZXIg RmwgZnRyZWUtbHJzIEZsIGZ0cmVlLXNyYSBGbCBmdHJlZS1jb3B5cmVuYW1lIEZsIGZ0cmVl LWZyZSBGbCBmdHJlZS1jaCBGbCBmdW5pdC1hdC1hLXRpbWUgRmwgZm1lcmdlLWNvbnN0YW50 cwouUHAKLkZsIE8KYWxzbyB0dXJucyBvbgouRmwgZm9taXQtZnJhbWUtcG9pbnRlcgpvbiBt YWNoaW5lcyB3aGVyZSBkb2luZyBzbyBkb2VzIG5vdCBpbnRlcmZlcmUgd2l0aCBkZWJ1Z2dp bmcuCi5QcAouRmwgTwpkb2Vzbid0IHR1cm4gb24KLkZsIGZ0cmVlLXNyYQpmb3IgdGhlIEFk YSBjb21waWxlci4KVGhpcyBvcHRpb24gbXVzdCBiZSBleHBsaWNpdGx5IHNwZWNpZmllZCBv biB0aGUgY29tbWFuZCBsaW5lIHRvIGJlIGVuYWJsZWQgZm9yIHRoZSBBZGEgY29tcGlsZXIu Ci5QcAouSXQgRmwgTzIKT3B0aW1pemUgZXZlbiBtb3JlLgpHQ0MgcGVyZm9ybXMgbmVhcmx5 IGFsbCBzdXBwb3J0ZWQgb3B0aW1pemF0aW9ucyB0aGF0IGRvIG5vdCBpbnZvbHZlIGEgc3Bh Y2Utc3BlZWQgdHJhZGVvZmYuClRoZSBjb21waWxlciBkb2VzIG5vdCBwZXJmb3JtIGxvb3Ag dW5yb2xsaW5nIG9yIGZ1bmN0aW9uIGlubGluaW5nIHdoZW4geW91IHNwZWNpZnkKLkZsIE8y IC4KQXMgY29tcGFyZWQgdG8KLkZsIE8gLAp0aGlzIG9wdGlvbiBpbmNyZWFzZXMgYm90aCBj b21waWxhdGlvbiB0aW1lIGFuZCB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlIGdlbmVyYXRlZCBj b2RlLgouUHAKLkZsIE8yCnR1cm5zIG9uIGFsbCBvcHRpbWl6YXRpb24gZmxhZ3Mgc3BlY2lm aWVkIGJ5Ci5GbCBPIC4KSXQgYWxzbyB0dXJucyBvbiB0aGUgZm9sbG93aW5nIG9wdGltaXph dGlvbiBmbGFnczoKLkZsIGZ0aHJlYWQtanVtcHMgRmwgZmNyb3NzanVtcGluZyBGbCBmb3B0 aW1pemUtc2libGluZy1jYWxscyBGbCBmY3NlLWZvbGxvdy1qdW1wcyBGbCBmY3NlLXNraXAt YmxvY2tzIEZsIGZnY3NlIEZsIGZnY3NlLWxtIEZsIGZleHBlbnNpdmUtb3B0aW1pemF0aW9u cyBGbCBmc3RyZW5ndGgtcmVkdWNlIEZsIGZyZXJ1bi1jc2UtYWZ0ZXItbG9vcCBGbCBmcmVy dW4tbG9vcC1vcHQgRmwgZmNhbGxlci1zYXZlcyBGbCBmcGVlcGhvbGUyIEZsIGZzY2hlZHVs ZS1pbnNucyBGbCBmc2NoZWR1bGUtaW5zbnMyIEZsIGZzY2hlZC1pbnRlcmJsb2NrIEZsIGZz Y2hlZC1zcGVjIEZsIGZyZWdtb3ZlIEZsIGZzdHJpY3QtYWxpYXNpbmcgRmwgZmRlbGV0ZS1u dWxsLXBvaW50ZXItY2hlY2tzIEZsIGZyZW9yZGVyLWJsb2NrcyBGbCBmcmVvcmRlci1mdW5j dGlvbnMgRmwgZmFsaWduLWZ1bmN0aW9ucyBGbCBmYWxpZ24tanVtcHMgRmwgZmFsaWduLWxv b3BzIEZsIGZhbGlnbi1sYWJlbHMgRmwgZnRyZWUtdnJwIEZsIGZ0cmVlLXByZQouUHAKUGxl YXNlIG5vdGUgdGhlIHdhcm5pbmcgdW5kZXIKLkZsIGZnY3NlCmFib3V0IGludm9raW5nCi5G bCBPMgpvbiBwcm9ncmFtcyB0aGF0IHVzZSBjb21wdXRlZCBnb3Rvcy4KLlBwCi5JdCBGbCBP MwpPcHRpbWl6ZSB5ZXQgbW9yZS4KLkZsIE8zCnR1cm5zIG9uIGFsbCBvcHRpbWl6YXRpb25z IHNwZWNpZmllZCBieQouRmwgTzIKYW5kIGFsc28gdHVybnMgb24gdGhlCi5GbCBmaW5saW5l LWZ1bmN0aW9ucyAsCi5GbCBmdW5zd2l0Y2gtbG9vcHMKYW5kCi5GbCBmZ2NzZS1hZnRlci1y ZWxvYWQKb3B0aW9ucy4KLlBwCi5JdCBGbCBPMApEbyBub3Qgb3B0aW1pemUuClRoaXMgaXMg dGhlIGRlZmF1bHQuCi5QcAouSXQgRmwgXCZPcwpPcHRpbWl6ZSBmb3Igc2l6ZS4KLkZsIFwm T3MKZW5hYmxlcyBhbGwKLkZsIE8yCm9wdGltaXphdGlvbnMgdGhhdCBkbyBub3QgdHlwaWNh bGx5IGluY3JlYXNlIGNvZGUgc2l6ZS4KSXQgYWxzbyBwZXJmb3JtcyBmdXJ0aGVyIG9wdGlt aXphdGlvbnMgZGVzaWduZWQgdG8gcmVkdWNlIGNvZGUgc2l6ZS4KLlBwCi5GbCBcJk9zCmRp c2FibGVzIHRoZSBmb2xsb3dpbmcgb3B0aW1pemF0aW9uIGZsYWdzOgouRmwgZmFsaWduLWZ1 bmN0aW9ucyBGbCBmYWxpZ24tanVtcHMgRmwgZmFsaWduLWxvb3BzIEZsIGZhbGlnbi1sYWJl bHMgRmwgZnJlb3JkZXItYmxvY2tzIEZsIGZyZW9yZGVyLWJsb2Nrcy1hbmQtcGFydGl0aW9u IEZsIGZwcmVmZXRjaC1sb29wLWFycmF5cyBGbCBmdHJlZS12ZWN0LWxvb3AtdmVyc2lvbgou UHAKSWYgeW91IHVzZSBtdWx0aXBsZQouRmwgTwpvcHRpb25zLCB3aXRoIG9yIHdpdGhvdXQg bGV2ZWwgbnVtYmVycywgdGhlIGxhc3Qgc3VjaCBvcHRpb24gaXMgdGhlIG9uZSB0aGF0IGlz IGVmZmVjdGl2ZS4KLlBwCi5FbApPcHRpb25zIG9mIHRoZSBmb3JtCi5GbCBmIE5zIEFyIGZs YWcKc3BlY2lmeSBtYWNoaW5lLWluZGVwZW5kZW50IGZsYWdzLgpNb3N0IGZsYWdzIGhhdmUg Ym90aCBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgZm9ybXM7IHRoZSBuZWdhdGl2ZSBmb3JtIG9m Ci5GbCBmZm9vCndvdWxkIGJlCi5GbCBmbm8tZm9vIC4KSW4gdGhlIHRhYmxlIGJlbG93LCBv bmx5IG9uZSBvZiB0aGUgZm9ybXMgaXMgbGlzdGVkLS0tdGhlIG9uZSB5b3UgdHlwaWNhbGx5 IHdpbGwgdXNlLgpZb3UgY2FuIGZpZ3VyZSBvdXQgdGhlIG90aGVyIGZvcm0gYnkgZWl0aGVy IHJlbW92aW5nCi5TeSBuby0Kb3IgYWRkaW5nIGl0LgouUHAKVGhlIGZvbGxvd2luZyBvcHRp b25zIGNvbnRyb2wgc3BlY2lmaWMgb3B0aW1pemF0aW9ucy4KVGhleSBhcmUgZWl0aGVyIGFj dGl2YXRlZCBieQouRmwgTwpvcHRpb25zIG9yIGFyZSByZWxhdGVkIHRvIG9uZXMgdGhhdCBh cmUuCllvdSBjYW4gdXNlIHRoZSBmb2xsb3dpbmcgZmxhZ3MgaW4gdGhlIHJhcmUgY2FzZXMg d2hlbiAiZmluZS10dW5pbmciIG9mIG9wdGltaXphdGlvbnMgdG8gYmUgcGVyZm9ybWVkIGlz IGRlc2lyZWQuCi5QcAouQmwgLXRhZyAtd2lkdGggeHgKLkl0IEZsIGZuby1kZWZhdWx0LWlu bGluZQpEbyBub3QgbWFrZSBtZW1iZXIgZnVuY3Rpb25zIGlubGluZSBieSBkZWZhdWx0IG1l cmVseSBiZWNhdXNlIHRoZXkgYXJlIGRlZmluZWQgaW5zaWRlIHRoZSBjbGFzcyBzY29wZSAo QysrIG9ubHkpLgpPdGhlcndpc2UsIHdoZW4geW91IHNwZWNpZnkKLkZsIE8gLAptZW1iZXIg ZnVuY3Rpb25zIGRlZmluZWQgaW5zaWRlIGNsYXNzIHNjb3BlIGFyZSBjb21waWxlZCBpbmxp bmUgYnkgZGVmYXVsdDsgaS5lLiwgeW91IGRvbid0IG5lZWQgdG8gYWRkCi5TeSBpbmxpbmUK aW4gZnJvbnQgb2YgdGhlIG1lbWJlciBmdW5jdGlvbiBuYW1lLgouUHAKLkl0IEZsIGZuby1k ZWZlci1wb3AKQWx3YXlzIHBvcCB0aGUgYXJndW1lbnRzIHRvIGVhY2ggZnVuY3Rpb24gY2Fs bCBhcyBzb29uIGFzIHRoYXQgZnVuY3Rpb24gcmV0dXJucy4KRm9yIG1hY2hpbmVzIHdoaWNo IG11c3QgcG9wIGFyZ3VtZW50cyBhZnRlciBhIGZ1bmN0aW9uIGNhbGwsIHRoZSBjb21waWxl ciBub3JtYWxseSBsZXRzIGFyZ3VtZW50cyBhY2N1bXVsYXRlIG9uIHRoZSBzdGFjayBmb3Ig c2V2ZXJhbCBmdW5jdGlvbiBjYWxscyBhbmQgcG9wcyB0aGVtIGFsbCBhdCBvbmNlLgouUHAK RGlzYWJsZWQgYXQgbGV2ZWxzCi5GbCBPICwKLkZsIE8yICwKLkZsIE8zICwKLkZsIFwmT3Mg LgouUHAKLkl0IEZsIGZmb3JjZS1tZW0KRm9yY2UgbWVtb3J5IG9wZXJhbmRzIHRvIGJlIGNv cGllZCBpbnRvIHJlZ2lzdGVycyBiZWZvcmUgZG9pbmcgYXJpdGhtZXRpYyBvbiB0aGVtLgpU aGlzIHByb2R1Y2VzIGJldHRlciBjb2RlIGJ5IG1ha2luZyBhbGwgbWVtb3J5IHJlZmVyZW5j ZXMgcG90ZW50aWFsIGNvbW1vbiBzdWJleHByZXNzaW9ucy4KV2hlbiB0aGV5IGFyZSBub3Qg Y29tbW9uIHN1YmV4cHJlc3Npb25zLCBpbnN0cnVjdGlvbiBjb21iaW5hdGlvbiBzaG91bGQg ZWxpbWluYXRlIHRoZSBzZXBhcmF0ZSByZWdpc3Rlci1sb2FkLgpUaGlzIG9wdGlvbiBpcyBu b3cgYSBub3AgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA0LjIuCi5QcAouSXQgRmwgZmZvcmNl LWFkZHIKRm9yY2UgbWVtb3J5IGFkZHJlc3MgY29uc3RhbnRzIHRvIGJlIGNvcGllZCBpbnRv IHJlZ2lzdGVycyBiZWZvcmUgZG9pbmcgYXJpdGhtZXRpYyBvbiB0aGVtLgouUHAKLkl0IEZs IGZvbWl0LWZyYW1lLXBvaW50ZXIKRG9uJ3Qga2VlcCB0aGUgZnJhbWUgcG9pbnRlciBpbiBh IHJlZ2lzdGVyIGZvciBmdW5jdGlvbnMgdGhhdCBkb24ndCBuZWVkIG9uZS4KVGhpcyBhdm9p ZHMgdGhlIGluc3RydWN0aW9ucyB0byBzYXZlLCBzZXQgdXAgYW5kIHJlc3RvcmUgZnJhbWUg cG9pbnRlcnM7IGl0IGFsc28gbWFrZXMgYW4gZXh0cmEgcmVnaXN0ZXIgYXZhaWxhYmxlIGlu IG1hbnkgZnVuY3Rpb25zLgouU3kgSXQgYWxzbyBtYWtlcyBkZWJ1Z2dpbmcgaW1wb3NzaWJs ZSBvbiBzb21lIG1hY2hpbmVzLgouUHAKT24gc29tZSBtYWNoaW5lcywgc3VjaCBhcyB0aGUg VkFYLCB0aGlzIGZsYWcgaGFzIG5vIGVmZmVjdCwgYmVjYXVzZSB0aGUgc3RhbmRhcmQgY2Fs bGluZyBzZXF1ZW5jZSBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdGhlIGZyYW1lIHBvaW50ZXIg YW5kIG5vdGhpbmcgaXMgc2F2ZWQgYnkgcHJldGVuZGluZyBpdCBkb2Vzbid0IGV4aXN0LgpU aGUgbWFjaGluZS1kZXNjcmlwdGlvbiBtYWNybwouVmEgRlJBTUVfUE9JTlRFUl9SRVFVSVJF RApjb250cm9scyB3aGV0aGVyIGEgdGFyZ2V0IG1hY2hpbmUgc3VwcG9ydHMgdGhpcyBmbGFn LgouUHAKRW5hYmxlZCBhdCBsZXZlbHMKLkZsIE8gLAouRmwgTzIgLAouRmwgTzMgLAouRmwg XCZPcyAuCi5QcAouSXQgRmwgZm9wdGltaXplLXNpYmxpbmctY2FsbHMKT3B0aW1pemUgc2li bGluZyBhbmQgdGFpbCByZWN1cnNpdmUgY2FsbHMuCi5QcApFbmFibGVkIGF0IGxldmVscwou RmwgTzIgLAouRmwgTzMgLAouRmwgXCZPcyAuCi5QcAouSXQgRmwgZm5vLWlubGluZQpEb24n dCBwYXkgYXR0ZW50aW9uIHRvIHRoZQouVmEgaW5saW5lCmtleXdvcmQuCk5vcm1hbGx5IHRo aXMgb3B0aW9uIGlzIHVzZWQgdG8ga2VlcCB0aGUgY29tcGlsZXIgZnJvbSBleHBhbmRpbmcg YW55IGZ1bmN0aW9ucyBpbmxpbmUuCk5vdGUgdGhhdCBpZiB5b3UgYXJlIG5vdCBvcHRpbWl6 aW5nLCBubyBmdW5jdGlvbnMgY2FuIGJlIGV4cGFuZGVkIGlubGluZS4KLlBwCi5JdCBGbCBm aW5saW5lLWZ1bmN0aW9ucwpJbnRlZ3JhdGUgYWxsIHNpbXBsZSBmdW5jdGlvbnMgaW50byB0 aGVpciBjYWxsZXJzLgpUaGUgY29tcGlsZXIgaGV1cmlzdGljYWxseSBkZWNpZGVzIHdoaWNo IGZ1bmN0aW9ucyBhcmUgc2ltcGxlIGVub3VnaCB0byBiZSB3b3J0aCBpbnRlZ3JhdGluZyBp biB0aGlzIHdheS4KLlBwCklmIGFsbCBjYWxscyB0byBhIGdpdmVuIGZ1bmN0aW9uIGFyZSBp bnRlZ3JhdGVkLCBhbmQgdGhlIGZ1bmN0aW9uIGlzIGRlY2xhcmVkCi5WYSBzdGF0aWMgLAp0 aGVuIHRoZSBmdW5jdGlvbiBpcyBub3JtYWxseSBub3Qgb3V0cHV0IGFzIGFzc2VtYmxlciBj b2RlIGluIGl0cyBvd24gcmlnaHQuCi5QcApFbmFibGVkIGF0IGxldmVsCi5GbCBPMyAuCi5Q cAouSXQgRmwgZmlubGluZS1mdW5jdGlvbnMtY2FsbGVkLW9uY2UKQ29uc2lkZXIgYWxsCi5W YSBzdGF0aWMKZnVuY3Rpb25zIGNhbGxlZCBvbmNlIGZvciBpbmxpbmluZyBpbnRvIHRoZWly IGNhbGxlciBldmVuIGlmIHRoZXkgYXJlIG5vdCBtYXJrZWQKLlZhIGlubGluZSAuCklmIGEg Y2FsbCB0byBhIGdpdmVuIGZ1bmN0aW9uIGlzIGludGVncmF0ZWQsIHRoZW4gdGhlIGZ1bmN0 aW9uIGlzIG5vdCBvdXRwdXQgYXMgYXNzZW1ibGVyIGNvZGUgaW4gaXRzIG93biByaWdodC4K LlBwCkVuYWJsZWQgaWYKLkZsIGZ1bml0LWF0LWEtdGltZQppcyBlbmFibGVkLgouUHAKLkl0 IEZsIGZlYXJseS1pbmxpbmluZwpJbmxpbmUgZnVuY3Rpb25zIG1hcmtlZCBieQouVmEgYWx3 YXlzX2lubGluZQphbmQgZnVuY3Rpb25zIHdob3NlIGJvZHkgc2VlbXMgc21hbGxlciB0aGFu IHRoZSBmdW5jdGlvbiBjYWxsIG92ZXJoZWFkIGVhcmx5IGJlZm9yZSBkb2luZwouRmwgZnBy b2ZpbGUtZ2VuZXJhdGUKaW5zdHJ1bWVudGF0aW9uIGFuZCByZWFsIGlubGluaW5nIHBhc3Mu CkRvaW5nIHNvIG1ha2VzIHByb2ZpbGluZyBzaWduaWZpY2FudGx5IGNoZWFwZXIgYW5kIHVz dWFsbHkgaW5saW5pbmcgZmFzdGVyIG9uIHByb2dyYW1zIGhhdmluZyBsYXJnZSBjaGFpbnMg b2YgbmVzdGVkIHdyYXBwZXIgZnVuY3Rpb25zLgouUHAKRW5hYmxlZCBieSBkZWZhdWx0Lgou UHAKLkl0IEZsIGZpbmxpbmUtbGltaXQ9IE5zIEFyIG4KQnkgZGVmYXVsdCwgR0NDIGxpbWl0 cyB0aGUgc2l6ZSBvZiBmdW5jdGlvbnMgdGhhdCBjYW4gYmUgaW5saW5lZC4KVGhpcyBmbGFn IGFsbG93cyB0aGUgY29udHJvbCBvZiB0aGlzIGxpbWl0IGZvciBmdW5jdGlvbnMgdGhhdCBh cmUgZXhwbGljaXRseSBtYXJrZWQgYXMgaW5saW5lIChpLmUuLCBtYXJrZWQgd2l0aCB0aGUg aW5saW5lIGtleXdvcmQgb3IgZGVmaW5lZCB3aXRoaW4gdGhlIGNsYXNzIGRlZmluaXRpb24g aW4gYysrKS4KLkVtIG4KaXMgdGhlIHNpemUgb2YgZnVuY3Rpb25zIHRoYXQgY2FuIGJlIGlu bGluZWQgaW4gbnVtYmVyIG9mIHBzZXVkbyBpbnN0cnVjdGlvbnMgKG5vdCBjb3VudGluZyBw YXJhbWV0ZXIgaGFuZGxpbmcpLgpUaGUgZGVmYXVsdCB2YWx1ZSBvZgouRW0gbgppcyA2MDAu CkluY3JlYXNpbmcgdGhpcyB2YWx1ZSBjYW4gcmVzdWx0IGluIG1vcmUgaW5saW5lZCBjb2Rl IGF0IHRoZSBjb3N0IG9mIGNvbXBpbGF0aW9uIHRpbWUgYW5kIG1lbW9yeSBjb25zdW1wdGlv bi4KRGVjcmVhc2luZyB1c3VhbGx5IG1ha2VzIHRoZSBjb21waWxhdGlvbiBmYXN0ZXIgYW5k IGxlc3MgY29kZSB3aWxsIGJlIGlubGluZWQgKHdoaWNoIHByZXN1bWFibHkgbWVhbnMgc2xv d2VyIHByb2dyYW1zKS4KVGhpcyBvcHRpb24gaXMgcGFydGljdWxhcmx5IHVzZWZ1bCBmb3Ig cHJvZ3JhbXMgdGhhdCB1c2UgaW5saW5pbmcgaGVhdmlseSBzdWNoIGFzIHRob3NlIGJhc2Vk IG9uIHJlY3Vyc2l2ZSB0ZW1wbGF0ZXMgd2l0aCBDKysuCi5QcApJbmxpbmluZyBpcyBhY3R1 YWxseSBjb250cm9sbGVkIGJ5IGEgbnVtYmVyIG9mIHBhcmFtZXRlcnMsIHdoaWNoIG1heSBi ZSBzcGVjaWZpZWQgaW5kaXZpZHVhbGx5IGJ5IHVzaW5nCi5GbCAtcGFyYW0gQXIgbmFtZSBO cyA9IE5zIEFyIHZhbHVlIC4KVGhlCi5GbCBmaW5saW5lLWxpbWl0PSBOcyBBciBuCm9wdGlv biBzZXRzIHNvbWUgb2YgdGhlc2UgcGFyYW1ldGVycyBhcyBmb2xsb3dzOgouUHAKLkJsIC10 YWcgLXdpZHRoIHh4Ci5JdCBTeSBtYXgtaW5saW5lLWluc25zLXNpbmdsZSBOcwogaXMgc2V0 IHRvCi5FbSBuCi8yLgouUHAKLkl0IFN5IG1heC1pbmxpbmUtaW5zbnMtYXV0byBOcwogaXMg c2V0IHRvCi5FbSBuCi8yLgouUHAKLkl0IFN5IG1pbi1pbmxpbmUtaW5zbnMgTnMKIGlzIHNl dCB0byAxMzAgb3IKLkVtIG4KLzQsIHdoaWNoZXZlciBpcyBzbWFsbGVyLgouUHAKLkl0IFN5 IG1heC1pbmxpbmUtaW5zbnMtcnRsIE5zCiBpcyBzZXQgdG8KLkVtIG4gLgouUHAKLkVsClNl ZSBiZWxvdyBmb3IgYSBkb2N1bWVudGF0aW9uIG9mIHRoZSBpbmRpdmlkdWFsIHBhcmFtZXRl cnMgY29udHJvbGxpbmcgaW5saW5pbmcuCi5QcAouRW0gTm90ZToKcHNldWRvIGluc3RydWN0 aW9uIHJlcHJlc2VudHMsIGluIHRoaXMgcGFydGljdWxhciBjb250ZXh0LCBhbiBhYnN0cmFj dCBtZWFzdXJlbWVudCBvZiBmdW5jdGlvbidzIHNpemUuCkluIG5vIHdheSBkb2VzIGl0IHJl cHJlc2VudCBhIGNvdW50IG9mIGFzc2VtYmx5IGluc3RydWN0aW9ucyBhbmQgYXMgc3VjaCBp dHMgZXhhY3QgbWVhbmluZyBtaWdodCBjaGFuZ2UgZnJvbSBvbmUgcmVsZWFzZSB0byBhbiBh bm90aGVyLgouUHAKLkl0IEZsIGZrZWVwLWlubGluZS1mdW5jdGlvbnMKSW4gQywgZW1pdAou VmEgc3RhdGljCmZ1bmN0aW9ucyB0aGF0IGFyZSBkZWNsYXJlZAouVmEgaW5saW5lCmludG8g dGhlIG9iamVjdCBmaWxlLCBldmVuIGlmIHRoZSBmdW5jdGlvbiBoYXMgYmVlbiBpbmxpbmVk IGludG8gYWxsIG9mIGl0cyBjYWxsZXJzLgpUaGlzIHN3aXRjaCBkb2VzIG5vdCBhZmZlY3Qg ZnVuY3Rpb25zIHVzaW5nIHRoZQouVmEgZXh0ZXJuIGlubGluZQpleHRlbnNpb24gaW4gR05V IEMuCkluIEMrKywgZW1pdCBhbnkgYW5kIGFsbCBpbmxpbmUgZnVuY3Rpb25zIGludG8gdGhl IG9iamVjdCBmaWxlLgouUHAKLkl0IEZsIGZrZWVwLXN0YXRpYy1jb25zdHMKRW1pdCB2YXJp YWJsZXMgZGVjbGFyZWQKLlZhIHN0YXRpYyBjb25zdAp3aGVuIG9wdGltaXphdGlvbiBpc24n dCB0dXJuZWQgb24sIGV2ZW4gaWYgdGhlIHZhcmlhYmxlcyBhcmVuJ3QgcmVmZXJlbmNlZC4K LlBwCkdDQyBlbmFibGVzIHRoaXMgb3B0aW9uIGJ5IGRlZmF1bHQuCklmIHlvdSB3YW50IHRv IGZvcmNlIHRoZSBjb21waWxlciB0byBjaGVjayBpZiB0aGUgdmFyaWFibGUgd2FzIHJlZmVy ZW5jZWQsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBvciBub3Qgb3B0aW1pemF0aW9uIGlzIHR1 cm5lZCBvbiwgdXNlIHRoZQouRmwgZm5vLWtlZXAtc3RhdGljLWNvbnN0cwpvcHRpb24uCi5Q cAouSXQgRmwgZm1lcmdlLWNvbnN0YW50cwpBdHRlbXB0IHRvIG1lcmdlIGlkZW50aWNhbCBj b25zdGFudHMgKHN0cmluZyBjb25zdGFudHMgYW5kIGZsb2F0aW5nIHBvaW50IGNvbnN0YW50 cykgYWNyb3NzIGNvbXBpbGF0aW9uIHVuaXRzLgouUHAKVGhpcyBvcHRpb24gaXMgdGhlIGRl ZmF1bHQgZm9yIG9wdGltaXplZCBjb21waWxhdGlvbiBpZiB0aGUgYXNzZW1ibGVyIGFuZCBs aW5rZXIgc3VwcG9ydCBpdC4KVXNlCi5GbCBmbm8tbWVyZ2UtY29uc3RhbnRzCnRvIGluaGli aXQgdGhpcyBiZWhhdmlvci4KLlBwCkVuYWJsZWQgYXQgbGV2ZWxzCi5GbCBPICwKLkZsIE8y ICwKLkZsIE8zICwKLkZsIFwmT3MgLgouUHAKLkl0IEZsIGZtZXJnZS1hbGwtY29uc3RhbnRz CkF0dGVtcHQgdG8gbWVyZ2UgaWRlbnRpY2FsIGNvbnN0YW50cyBhbmQgaWRlbnRpY2FsIHZh cmlhYmxlcy4KLlBwClRoaXMgb3B0aW9uIGltcGxpZXMKLkZsIGZtZXJnZS1jb25zdGFudHMg LgpJbiBhZGRpdGlvbiB0bwouRmwgZm1lcmdlLWNvbnN0YW50cwp0aGlzIGNvbnNpZGVycyBl LmcuIGV2ZW4gY29uc3RhbnQgaW5pdGlhbGl6ZWQgYXJyYXlzIG9yIGluaXRpYWxpemVkIGNv bnN0YW50IHZhcmlhYmxlcyB3aXRoIGludGVncmFsIG9yIGZsb2F0aW5nIHBvaW50IHR5cGVz LgpMYW5ndWFnZXMgbGlrZSBDIG9yIEMrKyByZXF1aXJlIGVhY2ggbm9uLWF1dG9tYXRpYyB2 YXJpYWJsZSB0byBoYXZlIGRpc3RpbmN0IGxvY2F0aW9uLCBzbyB1c2luZyB0aGlzIG9wdGlv biB3aWxsIHJlc3VsdCBpbiBub24tY29uZm9ybWluZyBiZWhhdmlvci4KLlBwCi5JdCBGbCBm bW9kdWxvLXNjaGVkClBlcmZvcm0gc3dpbmcgbW9kdWxvIHNjaGVkdWxpbmcgaW1tZWRpYXRl bHkgYmVmb3JlIHRoZSBmaXJzdCBzY2hlZHVsaW5nIHBhc3MuClRoaXMgcGFzcyBsb29rcyBh dCBpbm5lcm1vc3QgbG9vcHMgYW5kIHJlb3JkZXJzIHRoZWlyIGluc3RydWN0aW9ucyBieSBv dmVybGFwcGluZyBkaWZmZXJlbnQgaXRlcmF0aW9ucy4KLlBwCi5JdCBGbCBmbm8tYnJhbmNo LWNvdW50LXJlZwpEbyBub3QgdXNlICJkZWNyZW1lbnQgYW5kIGJyYW5jaCIgaW5zdHJ1Y3Rp b25zIG9uIGEgY291bnQgcmVnaXN0ZXIsIGJ1dCBpbnN0ZWFkIGdlbmVyYXRlIGEgc2VxdWVu Y2Ugb2YgaW5zdHJ1Y3Rpb25zIHRoYXQgZGVjcmVtZW50IGEgcmVnaXN0ZXIsIGNvbXBhcmUg aXQgYWdhaW5zdCB6ZXJvLCB0aGVuIGJyYW5jaCBiYXNlZCB1cG9uIHRoZSByZXN1bHQuClRo aXMgb3B0aW9uIGlzIG9ubHkgbWVhbmluZ2Z1bCBvbiBhcmNoaXRlY3R1cmVzIHRoYXQgc3Vw cG9ydCBzdWNoIGluc3RydWN0aW9ucywgd2hpY2ggaW5jbHVkZSB4ODYsIFBvd2VyUEMsIElB LTY0IGFuZCBTLzM5MC4KLlBwClRoZSBkZWZhdWx0IGlzCi5GbCBmYnJhbmNoLWNvdW50LXJl ZyAsCmVuYWJsZWQgd2hlbgouRmwgZnN0cmVuZ3RoLXJlZHVjZQppcyBlbmFibGVkLgouUHAK Lkl0IEZsIGZuby1mdW5jdGlvbi1jc2UKRG8gbm90IHB1dCBmdW5jdGlvbiBhZGRyZXNzZXMg aW4gcmVnaXN0ZXJzOyBtYWtlIGVhY2ggaW5zdHJ1Y3Rpb24gdGhhdCBjYWxscyBhIGNvbnN0 YW50IGZ1bmN0aW9uIGNvbnRhaW4gdGhlIGZ1bmN0aW9uJ3MgYWRkcmVzcyBleHBsaWNpdGx5 LgouUHAKVGhpcyBvcHRpb24gcmVzdWx0cyBpbiBsZXNzIGVmZmljaWVudCBjb2RlLCBidXQg c29tZSBzdHJhbmdlIGhhY2tzIHRoYXQgYWx0ZXIgdGhlIGFzc2VtYmxlciBvdXRwdXQgbWF5 IGJlIGNvbmZ1c2VkIGJ5IHRoZSBvcHRpbWl6YXRpb25zIHBlcmZvcm1lZCB3aGVuIHRoaXMg b3B0aW9uIGlzIG5vdCB1c2VkLgouUHAKVGhlIGRlZmF1bHQgaXMKLkZsIGZmdW5jdGlvbi1j c2UKLlBwCi5JdCBGbCBmbm8temVyby1pbml0aWFsaXplZC1pbi1ic3MKSWYgdGhlIHRhcmdl dCBzdXBwb3J0cyBhIEJTUyBzZWN0aW9uLCBHQ0MgYnkgZGVmYXVsdCBwdXRzIHZhcmlhYmxl cyB0aGF0IGFyZSBpbml0aWFsaXplZCB0byB6ZXJvIGludG8gQlNTLgpUaGlzIGNhbiBzYXZl IHNwYWNlIGluIHRoZSByZXN1bHRpbmcgY29kZS4KLlBwClRoaXMgb3B0aW9uIHR1cm5zIG9m ZiB0aGlzIGJlaGF2aW9yIGJlY2F1c2Ugc29tZSBwcm9ncmFtcyBleHBsaWNpdGx5IHJlbHkg b24gdmFyaWFibGVzIGdvaW5nIHRvIHRoZSBkYXRhIHNlY3Rpb24uCkUuZy4sIHNvIHRoYXQg dGhlIHJlc3VsdGluZyBleGVjdXRhYmxlIGNhbiBmaW5kIHRoZSBiZWdpbm5pbmcgb2YgdGhh dCBzZWN0aW9uIGFuZC9vciBtYWtlIGFzc3VtcHRpb25zIGJhc2VkIG9uIHRoYXQuCi5QcApU aGUgZGVmYXVsdCBpcwouRmwgZnplcm8taW5pdGlhbGl6ZWQtaW4tYnNzIC4KLlBwCi5JdCBG bCBmbXVkZmxhcCBGbCBmbXVkZmxhcHRoIEZsIGZtdWRmbGFwaXIKRm9yIGZyb250LWVuZHMg dGhhdCBzdXBwb3J0IGl0IChDIGFuZCBDKyspLCBpbnN0cnVtZW50IGFsbCByaXNreSBwb2lu dGVyL2FycmF5IGRlcmVmZXJlbmNpbmcgb3BlcmF0aW9ucywgc29tZSBzdGFuZGFyZCBsaWJy YXJ5IHN0cmluZy9oZWFwIGZ1bmN0aW9ucywgYW5kIHNvbWUgb3RoZXIgYXNzb2NpYXRlZCBj b25zdHJ1Y3RzIHdpdGggcmFuZ2UvdmFsaWRpdHkgdGVzdHMuCk1vZHVsZXMgc28gaW5zdHJ1 bWVudGVkIHNob3VsZCBiZSBpbW11bmUgdG8gYnVmZmVyIG92ZXJmbG93cywgaW52YWxpZCBo ZWFwIHVzZSwgYW5kIHNvbWUgb3RoZXIgY2xhc3NlcyBvZiBDL0MrKyBwcm9ncmFtbWluZyBl cnJvcnMuClRoZSBpbnN0cnVtZW50YXRpb24gcmVsaWVzIG9uIGEgc2VwYXJhdGUgcnVudGlt ZSBsaWJyYXJ5Ci5QYSAoIGxpYm11ZGZsYXAgKSAsCndoaWNoIHdpbGwgYmUgbGlua2VkIGlu dG8gYSBwcm9ncmFtIGlmCi5GbCBmbXVkZmxhcAppcyBnaXZlbiBhdCBsaW5rIHRpbWUuClJ1 bi10aW1lIGJlaGF2aW9yIG9mIHRoZSBpbnN0cnVtZW50ZWQgcHJvZ3JhbSBpcyBjb250cm9s bGVkIGJ5IHRoZQouU3kgTVVERkxBUF9PUFRJT05TCmVudmlyb25tZW50IHZhcmlhYmxlLgpT ZWUKLlZhIGVudiBNVURGTEFQX09QVElPTlM9LWhlbHAgYS5vdXQKZm9yIGl0cyBvcHRpb25z LgouUHAKVXNlCi5GbCBmbXVkZmxhcHRoCmluc3RlYWQgb2YKLkZsIGZtdWRmbGFwCnRvIGNv bXBpbGUgYW5kIHRvIGxpbmsgaWYgeW91ciBwcm9ncmFtIGlzIG11bHRpLXRocmVhZGVkLgpV c2UKLkZsIGZtdWRmbGFwaXIgLAppbiBhZGRpdGlvbiB0bwouRmwgZm11ZGZsYXAKb3IKLkZs IGZtdWRmbGFwdGggLAppZiBpbnN0cnVtZW50YXRpb24gc2hvdWxkIGlnbm9yZSBwb2ludGVy IHJlYWRzLgpUaGlzIHByb2R1Y2VzIGxlc3MgaW5zdHJ1bWVudGF0aW9uIChhbmQgdGhlcmVm b3JlIGZhc3RlciBleGVjdXRpb24pIGFuZCBzdGlsbCBwcm92aWRlcyBzb21lIHByb3RlY3Rp b24gYWdhaW5zdCBvdXRyaWdodCBtZW1vcnkgY29ycnVwdGluZyB3cml0ZXMsIGJ1dCBhbGxv d3MgZXJyb25lb3VzbHkgcmVhZCBkYXRhIHRvIHByb3BhZ2F0ZSB3aXRoaW4gYSBwcm9ncmFt LgouUHAKLkl0IEZsIGZzdHJlbmd0aC1yZWR1Y2UKUGVyZm9ybSB0aGUgb3B0aW1pemF0aW9u cyBvZiBsb29wIHN0cmVuZ3RoIHJlZHVjdGlvbiBhbmQgZWxpbWluYXRpb24gb2YgaXRlcmF0 aW9uIHZhcmlhYmxlcy4KLlBwCkVuYWJsZWQgYXQgbGV2ZWxzCi5GbCBPMiAsCi5GbCBPMyAs Ci5GbCBcJk9zIC4KLlBwCi5JdCBGbCBmdGhyZWFkLWp1bXBzClBlcmZvcm0gb3B0aW1pemF0 aW9ucyB3aGVyZSB3ZSBjaGVjayB0byBzZWUgaWYgYSBqdW1wIGJyYW5jaGVzIHRvIGEgbG9j YXRpb24gd2hlcmUgYW5vdGhlciBjb21wYXJpc29uIHN1YnN1bWVkIGJ5IHRoZSBmaXJzdCBp cyBmb3VuZC4KSWYgc28sIHRoZSBmaXJzdCBicmFuY2ggaXMgcmVkaXJlY3RlZCB0byBlaXRo ZXIgdGhlIGRlc3RpbmF0aW9uIG9mIHRoZSBzZWNvbmQgYnJhbmNoIG9yIGEgcG9pbnQgaW1t ZWRpYXRlbHkgZm9sbG93aW5nIGl0LCBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgY29uZGl0 aW9uIGlzIGtub3duIHRvIGJlIHRydWUgb3IgZmFsc2UuCi5QcApFbmFibGVkIGF0IGxldmVs cwouRmwgTzIgLAouRmwgTzMgLAouRmwgXCZPcyAuCi5QcAouSXQgRmwgZmNzZS1mb2xsb3ct anVtcHMKSW4gY29tbW9uIHN1YmV4cHJlc3Npb24gZWxpbWluYXRpb24sIHNjYW4gdGhyb3Vn aCBqdW1wIGluc3RydWN0aW9ucyB3aGVuIHRoZSB0YXJnZXQgb2YgdGhlIGp1bXAgaXMgbm90 IHJlYWNoZWQgYnkgYW55IG90aGVyIHBhdGguCkZvciBleGFtcGxlLCB3aGVuIENTRSBlbmNv dW50ZXJzIGFuCi5WYSBpZgpzdGF0ZW1lbnQgd2l0aCBhbgouVmEgZWxzZQpjbGF1c2UsIENT RSB3aWxsIGZvbGxvdyB0aGUganVtcCB3aGVuIHRoZSBjb25kaXRpb24gdGVzdGVkIGlzIGZh bHNlLgouUHAKRW5hYmxlZCBhdCBsZXZlbHMKLkZsIE8yICwKLkZsIE8zICwKLkZsIFwmT3Mg LgouUHAKLkl0IEZsIGZjc2Utc2tpcC1ibG9ja3MKVGhpcyBpcyBzaW1pbGFyIHRvCi5GbCBm Y3NlLWZvbGxvdy1qdW1wcyAsCmJ1dCBjYXVzZXMgQ1NFIHRvIGZvbGxvdyBqdW1wcyB3aGlj aCBjb25kaXRpb25hbGx5IHNraXAgb3ZlciBibG9ja3MuCldoZW4gQ1NFIGVuY291bnRlcnMg YSBzaW1wbGUKLlZhIGlmCnN0YXRlbWVudCB3aXRoIG5vIGVsc2UgY2xhdXNlLAouRmwgZmNz ZS1za2lwLWJsb2NrcwpjYXVzZXMgQ1NFIHRvIGZvbGxvdyB0aGUganVtcCBhcm91bmQgdGhl IGJvZHkgb2YgdGhlCi5WYSBpZiAuCi5QcApFbmFibGVkIGF0IGxldmVscwouRmwgTzIgLAou RmwgTzMgLAouRmwgXCZPcyAuCi5QcAouSXQgRmwgZnJlcnVuLWNzZS1hZnRlci1sb29wClJl LXJ1biBjb21tb24gc3ViZXhwcmVzc2lvbiBlbGltaW5hdGlvbiBhZnRlciBsb29wIG9wdGlt aXphdGlvbnMgaGFzIGJlZW4gcGVyZm9ybWVkLgouUHAKRW5hYmxlZCBhdCBsZXZlbHMKLkZs IE8yICwKLkZsIE8zICwKLkZsIFwmT3MgLgouUHAKLkl0IEZsIGZyZXJ1bi1sb29wLW9wdApS dW4gdGhlIGxvb3Agb3B0aW1pemVyIHR3aWNlLgouUHAKRW5hYmxlZCBhdCBsZXZlbHMKLkZs IE8yICwKLkZsIE8zICwKLkZsIFwmT3MgLgouUHAKLkl0IEZsIGZnY3NlClBlcmZvcm0gYSBn bG9iYWwgY29tbW9uIHN1YmV4cHJlc3Npb24gZWxpbWluYXRpb24gcGFzcy4KVGhpcyBwYXNz IGFsc28gcGVyZm9ybXMgZ2xvYmFsIGNvbnN0YW50IGFuZCBjb3B5IHByb3BhZ2F0aW9uLgou UHAKLkVtIE5vdGU6CldoZW4gY29tcGlsaW5nIGEgcHJvZ3JhbSB1c2luZyBjb21wdXRlZCBn b3RvcywgYSBHQ0MgZXh0ZW5zaW9uLCB5b3UgbWF5IGdldCBiZXR0ZXIgcnVudGltZSBwZXJm b3JtYW5jZSBpZiB5b3UgZGlzYWJsZSB0aGUgZ2xvYmFsIGNvbW1vbiBzdWJleHByZXNzaW9u IGVsaW1pbmF0aW9uIHBhc3MgYnkgYWRkaW5nCi5GbCBmbm8tZ2NzZQp0byB0aGUgY29tbWFu ZCBsaW5lLgouUHAKRW5hYmxlZCBhdCBsZXZlbHMKLkZsIE8yICwKLkZsIE8zICwKLkZsIFwm T3MgLgouUHAKLkl0IEZsIGZnY3NlLWxtCldoZW4KLkZsIGZnY3NlLWxtCmlzIGVuYWJsZWQs IGdsb2JhbCBjb21tb24gc3ViZXhwcmVzc2lvbiBlbGltaW5hdGlvbiB3aWxsIGF0dGVtcHQg dG8gbW92ZSBsb2FkcyB3aGljaCBhcmUgb25seSBraWxsZWQgYnkgc3RvcmVzIGludG8gdGhl bXNlbHZlcy4KVGhpcyBhbGxvd3MgYSBsb29wIGNvbnRhaW5pbmcgYSBsb2FkL3N0b3JlIHNl cXVlbmNlIHRvIGJlIGNoYW5nZWQgdG8gYSBsb2FkIG91dHNpZGUgdGhlIGxvb3AsIGFuZCBh IGNvcHkvc3RvcmUgd2l0aGluIHRoZSBsb29wLgouUHAKRW5hYmxlZCBieSBkZWZhdWx0IHdo ZW4gZ2NzZSBpcyBlbmFibGVkLgouUHAKLkl0IEZsIGZnY3NlLXNtCldoZW4KLkZsIGZnY3Nl LXNtCmlzIGVuYWJsZWQsIGEgc3RvcmUgbW90aW9uIHBhc3MgaXMgcnVuIGFmdGVyIGdsb2Jh bCBjb21tb24gc3ViZXhwcmVzc2lvbiBlbGltaW5hdGlvbi4KVGhpcyBwYXNzIHdpbGwgYXR0 ZW1wdCB0byBtb3ZlIHN0b3JlcyBvdXQgb2YgbG9vcHMuCldoZW4gdXNlZCBpbiBjb25qdW5j dGlvbiB3aXRoCi5GbCBmZ2NzZS1sbSAsCmxvb3BzIGNvbnRhaW5pbmcgYSBsb2FkL3N0b3Jl IHNlcXVlbmNlIGNhbiBiZSBjaGFuZ2VkIHRvIGEgbG9hZCBiZWZvcmUgdGhlIGxvb3AgYW5k IGEgc3RvcmUgYWZ0ZXIgdGhlIGxvb3AuCi5QcApOb3QgZW5hYmxlZCBhdCBhbnkgb3B0aW1p emF0aW9uIGxldmVsLgouUHAKLkl0IEZsIGZnY3NlLWxhcwpXaGVuCi5GbCBmZ2NzZS1sYXMK aXMgZW5hYmxlZCwgdGhlIGdsb2JhbCBjb21tb24gc3ViZXhwcmVzc2lvbiBlbGltaW5hdGlv biBwYXNzIGVsaW1pbmF0ZXMgcmVkdW5kYW50IGxvYWRzIHRoYXQgY29tZSBhZnRlciBzdG9y ZXMgdG8gdGhlIHNhbWUgbWVtb3J5IGxvY2F0aW9uIChib3RoIHBhcnRpYWwgYW5kIGZ1bGwg cmVkdW5kYW5jaWVzKS4KLlBwCk5vdCBlbmFibGVkIGF0IGFueSBvcHRpbWl6YXRpb24gbGV2 ZWwuCi5QcAouSXQgRmwgZmdjc2UtYWZ0ZXItcmVsb2FkCldoZW4KLkZsIGZnY3NlLWFmdGVy LXJlbG9hZAppcyBlbmFibGVkLCBhIHJlZHVuZGFudCBsb2FkIGVsaW1pbmF0aW9uIHBhc3Mg aXMgcGVyZm9ybWVkIGFmdGVyIHJlbG9hZC4KVGhlIHB1cnBvc2Ugb2YgdGhpcyBwYXNzIGlz IHRvIGNsZWFudXAgcmVkdW5kYW50IHNwaWxsaW5nLgouUHAKLkl0IEZsIGZsb29wLW9wdGlt aXplClBlcmZvcm0gbG9vcCBvcHRpbWl6YXRpb25zOiBtb3ZlIGNvbnN0YW50IGV4cHJlc3Np b25zIG91dCBvZiBsb29wcywgc2ltcGxpZnkgZXhpdCB0ZXN0IGNvbmRpdGlvbnMgYW5kIG9w dGlvbmFsbHkgZG8gc3RyZW5ndGgtcmVkdWN0aW9uIGFzIHdlbGwuCi5QcApFbmFibGVkIGF0 IGxldmVscwouRmwgTyAsCi5GbCBPMiAsCi5GbCBPMyAsCi5GbCBcJk9zIC4KLlBwCi5JdCBG bCBmbG9vcC1vcHRpbWl6ZTIKUGVyZm9ybSBsb29wIG9wdGltaXphdGlvbnMgdXNpbmcgdGhl IG5ldyBsb29wIG9wdGltaXplci4KVGhlIG9wdGltaXphdGlvbnMgKGxvb3AgdW5yb2xsaW5n LCBwZWVsaW5nIGFuZCB1bnN3aXRjaGluZywgbG9vcCBpbnZhcmlhbnQgbW90aW9uKSBhcmUg ZW5hYmxlZCBieSBzZXBhcmF0ZSBmbGFncy4KLlBwCi5JdCBGbCBmdW5zYWZlLWxvb3Atb3B0 aW1pemF0aW9ucwpJZiBnaXZlbiwgdGhlIGxvb3Agb3B0aW1pemVyIHdpbGwgYXNzdW1lIHRo YXQgbG9vcCBpbmRpY2VzIGRvIG5vdCBvdmVyZmxvdywgYW5kIHRoYXQgdGhlIGxvb3BzIHdp dGggbm9udHJpdmlhbCBleGl0IGNvbmRpdGlvbiBhcmUgbm90IGluZmluaXRlLgpUaGlzIGVu YWJsZXMgYSB3aWRlciByYW5nZSBvZiBsb29wIG9wdGltaXphdGlvbnMgZXZlbiBpZiB0aGUg bG9vcCBvcHRpbWl6ZXIgaXRzZWxmIGNhbm5vdCBwcm92ZSB0aGF0IHRoZXNlIGFzc3VtcHRp b25zIGFyZSB2YWxpZC4KVXNpbmcKLkZsIFd1bnNhZmUtbG9vcC1vcHRpbWl6YXRpb25zICwK dGhlIGNvbXBpbGVyIHdpbGwgd2FybiB5b3UgaWYgaXQgZmluZHMgdGhpcyBraW5kIG9mIGxv b3AuCi5QcAouSXQgRmwgZmNyb3NzanVtcGluZwpQZXJmb3JtIGNyb3NzLWp1bXBpbmcgdHJh bnNmb3JtYXRpb24uClRoaXMgdHJhbnNmb3JtYXRpb24gdW5pZmllcyBlcXVpdmFsZW50IGNv ZGUgYW5kIHNhdmUgY29kZSBzaXplLgpUaGUgcmVzdWx0aW5nIGNvZGUgbWF5IG9yIG1heSBu b3QgcGVyZm9ybSBiZXR0ZXIgdGhhbiB3aXRob3V0IGNyb3NzLWp1bXBpbmcuCi5QcApFbmFi bGVkIGF0IGxldmVscwouRmwgTzIgLAouRmwgTzMgLAouRmwgXCZPcyAuCi5QcAouSXQgRmwg ZmlmLWNvbnZlcnNpb24KQXR0ZW1wdCB0byB0cmFuc2Zvcm0gY29uZGl0aW9uYWwganVtcHMg aW50byBicmFuY2gtbGVzcyBlcXVpdmFsZW50cy4KVGhpcyBpbmNsdWRlIHVzZSBvZiBjb25k aXRpb25hbCBtb3ZlcywgbWluLCBtYXgsIHNldCBmbGFncyBhbmQgYWJzIGluc3RydWN0aW9u cywgYW5kIHNvbWUgdHJpY2tzIGRvYWJsZSBieSBzdGFuZGFyZCBhcml0aG1ldGljcy4KVGhl IHVzZSBvZiBjb25kaXRpb25hbCBleGVjdXRpb24gb24gY2hpcHMgd2hlcmUgaXQgaXMgYXZh aWxhYmxlIGlzIGNvbnRyb2xsZWQgYnkKLlZhIGlmLWNvbnZlcnNpb24yIC4KLlBwCkVuYWJs ZWQgYXQgbGV2ZWxzCi5GbCBPICwKLkZsIE8yICwKLkZsIE8zICwKLkZsIFwmT3MgLgouUHAK Lkl0IEZsIGZpZi1jb252ZXJzaW9uMgpVc2UgY29uZGl0aW9uYWwgZXhlY3V0aW9uICh3aGVy ZSBhdmFpbGFibGUpIHRvIHRyYW5zZm9ybSBjb25kaXRpb25hbCBqdW1wcyBpbnRvIGJyYW5j aC1sZXNzIGVxdWl2YWxlbnRzLgouUHAKRW5hYmxlZCBhdCBsZXZlbHMKLkZsIE8gLAouRmwg TzIgLAouRmwgTzMgLAouRmwgXCZPcyAuCi5QcAouSXQgRmwgZmRlbGV0ZS1udWxsLXBvaW50 ZXItY2hlY2tzClVzZSBnbG9iYWwgZGF0YWZsb3cgYW5hbHlzaXMgdG8gaWRlbnRpZnkgYW5k IGVsaW1pbmF0ZSB1c2VsZXNzIGNoZWNrcyBmb3IgbnVsbCBwb2ludGVycy4KVGhlIGNvbXBp bGVyIGFzc3VtZXMgdGhhdCBkZXJlZmVyZW5jaW5nIGEgbnVsbCBwb2ludGVyIHdvdWxkIGhh dmUgaGFsdGVkIHRoZSBwcm9ncmFtLgpJZiBhIHBvaW50ZXIgaXMgY2hlY2tlZCBhZnRlciBp dCBoYXMgYWxyZWFkeSBiZWVuIGRlcmVmZXJlbmNlZCwgaXQgY2Fubm90IGJlIG51bGwuCi5Q cApJbiBzb21lIGVudmlyb25tZW50cywgdGhpcyBhc3N1bXB0aW9uIGlzIG5vdCB0cnVlLCBh bmQgcHJvZ3JhbXMgY2FuIHNhZmVseSBkZXJlZmVyZW5jZSBudWxsIHBvaW50ZXJzLgpVc2UK LkZsIGZuby1kZWxldGUtbnVsbC1wb2ludGVyLWNoZWNrcwp0byBkaXNhYmxlIHRoaXMgb3B0 aW1pemF0aW9uIGZvciBwcm9ncmFtcyB3aGljaCBkZXBlbmQgb24gdGhhdCBiZWhhdmlvci4K LlBwCkVuYWJsZWQgYXQgbGV2ZWxzCi5GbCBPMiAsCi5GbCBPMyAsCi5GbCBcJk9zIC4KLlBw Ci5JdCBGbCBmZXhwZW5zaXZlLW9wdGltaXphdGlvbnMKUGVyZm9ybSBhIG51bWJlciBvZiBt aW5vciBvcHRpbWl6YXRpb25zIHRoYXQgYXJlIHJlbGF0aXZlbHkgZXhwZW5zaXZlLgouUHAK RW5hYmxlZCBhdCBsZXZlbHMKLkZsIE8yICwKLkZsIE8zICwKLkZsIFwmT3MgLgouUHAKLkl0 IEZsIGZvcHRpbWl6ZS1yZWdpc3Rlci1tb3ZlCi5JdCBGbCBmcmVnbW92ZQpBdHRlbXB0IHRv IHJlYXNzaWduIHJlZ2lzdGVyIG51bWJlcnMgaW4gbW92ZSBpbnN0cnVjdGlvbnMgYW5kIGFz IG9wZXJhbmRzIG9mIG90aGVyIHNpbXBsZSBpbnN0cnVjdGlvbnMgaW4gb3JkZXIgdG8gbWF4 aW1pemUgdGhlIGFtb3VudCBvZiByZWdpc3RlciB0eWluZy4KVGhpcyBpcyBlc3BlY2lhbGx5 IGhlbHBmdWwgb24gbWFjaGluZXMgd2l0aCB0d28tb3BlcmFuZCBpbnN0cnVjdGlvbnMuCi5Q cApOb3RlCi5GbCBmcmVnbW92ZQphbmQKLkZsIGZvcHRpbWl6ZS1yZWdpc3Rlci1tb3ZlCmFy ZSB0aGUgc2FtZSBvcHRpbWl6YXRpb24uCi5QcApFbmFibGVkIGF0IGxldmVscwouRmwgTzIg LAouRmwgTzMgLAouRmwgXCZPcyAuCi5QcAouSXQgRmwgZmRlbGF5ZWQtYnJhbmNoCklmIHN1 cHBvcnRlZCBmb3IgdGhlIHRhcmdldCBtYWNoaW5lLCBhdHRlbXB0IHRvIHJlb3JkZXIgaW5z dHJ1Y3Rpb25zIHRvIGV4cGxvaXQgaW5zdHJ1Y3Rpb24gc2xvdHMgYXZhaWxhYmxlIGFmdGVy IGRlbGF5ZWQgYnJhbmNoIGluc3RydWN0aW9ucy4KLlBwCkVuYWJsZWQgYXQgbGV2ZWxzCi5G bCBPICwKLkZsIE8yICwKLkZsIE8zICwKLkZsIFwmT3MgLgouUHAKLkl0IEZsIGZzY2hlZHVs ZS1pbnNucwpJZiBzdXBwb3J0ZWQgZm9yIHRoZSB0YXJnZXQgbWFjaGluZSwgYXR0ZW1wdCB0 byByZW9yZGVyIGluc3RydWN0aW9ucyB0byBlbGltaW5hdGUgZXhlY3V0aW9uIHN0YWxscyBk dWUgdG8gcmVxdWlyZWQgZGF0YSBiZWluZyB1bmF2YWlsYWJsZS4KVGhpcyBoZWxwcyBtYWNo aW5lcyB0aGF0IGhhdmUgc2xvdyBmbG9hdGluZyBwb2ludCBvciBtZW1vcnkgbG9hZCBpbnN0 cnVjdGlvbnMgYnkgYWxsb3dpbmcgb3RoZXIgaW5zdHJ1Y3Rpb25zIHRvIGJlIGlzc3VlZCB1 bnRpbCB0aGUgcmVzdWx0IG9mIHRoZSBsb2FkIG9yIGZsb2F0aW5nIHBvaW50IGluc3RydWN0 aW9uIGlzIHJlcXVpcmVkLgouUHAKRW5hYmxlZCBhdCBsZXZlbHMKLkZsIE8yICwKLkZsIE8z ICwKLkZsIFwmT3MgLgouUHAKLkl0IEZsIGZzY2hlZHVsZS1pbnNuczIKU2ltaWxhciB0bwou RmwgZnNjaGVkdWxlLWluc25zICwKYnV0IHJlcXVlc3RzIGFuIGFkZGl0aW9uYWwgcGFzcyBv ZiBpbnN0cnVjdGlvbiBzY2hlZHVsaW5nIGFmdGVyIHJlZ2lzdGVyIGFsbG9jYXRpb24gaGFz IGJlZW4gZG9uZS4KVGhpcyBpcyBlc3BlY2lhbGx5IHVzZWZ1bCBvbiBtYWNoaW5lcyB3aXRo IGEgcmVsYXRpdmVseSBzbWFsbCBudW1iZXIgb2YgcmVnaXN0ZXJzIGFuZCB3aGVyZSBtZW1v cnkgbG9hZCBpbnN0cnVjdGlvbnMgdGFrZSBtb3JlIHRoYW4gb25lIGN5Y2xlLgouUHAKRW5h YmxlZCBhdCBsZXZlbHMKLkZsIE8yICwKLkZsIE8zICwKLkZsIFwmT3MgLgouUHAKLkl0IEZs IGZuby1zY2hlZC1pbnRlcmJsb2NrCkRvbid0IHNjaGVkdWxlIGluc3RydWN0aW9ucyBhY3Jv c3MgYmFzaWMgYmxvY2tzLgpUaGlzIGlzIG5vcm1hbGx5IGVuYWJsZWQgYnkgZGVmYXVsdCB3 aGVuIHNjaGVkdWxpbmcgYmVmb3JlIHJlZ2lzdGVyIGFsbG9jYXRpb24sIGkuZS4Kd2l0aAou RmwgZnNjaGVkdWxlLWluc25zCm9yIGF0Ci5GbCBPMgpvciBoaWdoZXIuCi5QcAouSXQgRmwg Zm5vLXNjaGVkLXNwZWMKRG9uJ3QgYWxsb3cgc3BlY3VsYXRpdmUgbW90aW9uIG9mIG5vbi1s b2FkIGluc3RydWN0aW9ucy4KVGhpcyBpcyBub3JtYWxseSBlbmFibGVkIGJ5IGRlZmF1bHQg d2hlbiBzY2hlZHVsaW5nIGJlZm9yZSByZWdpc3RlciBhbGxvY2F0aW9uLCBpLmUuCndpdGgK LkZsIGZzY2hlZHVsZS1pbnNucwpvciBhdAouRmwgTzIKb3IgaGlnaGVyLgouUHAKLkl0IEZs IGZzY2hlZC1zcGVjLWxvYWQKQWxsb3cgc3BlY3VsYXRpdmUgbW90aW9uIG9mIHNvbWUgbG9h ZCBpbnN0cnVjdGlvbnMuClRoaXMgb25seSBtYWtlcyBzZW5zZSB3aGVuIHNjaGVkdWxpbmcg YmVmb3JlIHJlZ2lzdGVyIGFsbG9jYXRpb24sIGkuZS4gd2l0aAouRmwgZnNjaGVkdWxlLWlu c25zCm9yIGF0Ci5GbCBPMgpvciBoaWdoZXIuCi5QcAouSXQgRmwgZnNjaGVkLXNwZWMtbG9h ZC1kYW5nZXJvdXMKQWxsb3cgc3BlY3VsYXRpdmUgbW90aW9uIG9mIG1vcmUgbG9hZCBpbnN0 cnVjdGlvbnMuClRoaXMgb25seSBtYWtlcyBzZW5zZSB3aGVuIHNjaGVkdWxpbmcgYmVmb3Jl IHJlZ2lzdGVyIGFsbG9jYXRpb24sIGkuZS4gd2l0aAouRmwgZnNjaGVkdWxlLWluc25zCm9y IGF0Ci5GbCBPMgpvciBoaWdoZXIuCi5QcAouSXQgRmwgZnNjaGVkLXN0YWxsZWQtaW5zbnMK Lkl0IEZsIGZzY2hlZC1zdGFsbGVkLWluc25zPSBOcyBBciBuCkRlZmluZSBob3cgbWFueSBp bnNucyAoaWYgYW55KSBjYW4gYmUgbW92ZWQgcHJlbWF0dXJlbHkgZnJvbSB0aGUgcXVldWUg b2Ygc3RhbGxlZCBpbnNucyBpbnRvIHRoZSByZWFkeSBsaXN0LCBkdXJpbmcgdGhlIHNlY29u ZCBzY2hlZHVsaW5nIHBhc3MuCi5GbCBmbm8tZnNjaGVkLXN0YWxsZWQtaW5zbnMKYW5kCi5G bCBmc2NoZWQtc3RhbGxlZC1pbnNucz0wCmFyZSBlcXVpdmFsZW50IGFuZCBtZWFuIHRoYXQg bm8gaW5zbnMgd2lsbCBiZSBtb3ZlZCBwcmVtYXR1cmVseS4KSWYKLkVtIG4KaXMgdW5zcGVj aWZpZWQgdGhlbiB0aGVyZSBpcyBubyBsaW1pdCBvbiBob3cgbWFueSBxdWV1ZWQgaW5zbnMg Y2FuIGJlIG1vdmVkIHByZW1hdHVyZWx5LgouUHAKLkl0IEZsIGZzY2hlZC1zdGFsbGVkLWlu c25zLWRlcAouSXQgRmwgZnNjaGVkLXN0YWxsZWQtaW5zbnMtZGVwPSBOcyBBciBuCkRlZmlu ZSBob3cgbWFueSBpbnNuIGdyb3VwcyAoY3ljbGVzKSB3aWxsIGJlIGV4YW1pbmVkIGZvciBh IGRlcGVuZGVuY3kgb24gYSBzdGFsbGVkIGluc24gdGhhdCBpcyBjYW5kaWRhdGUgZm9yIHBy ZW1hdHVyZSByZW1vdmFsIGZyb20gdGhlIHF1ZXVlIG9mIHN0YWxsZWQgaW5zbnMuClRoaXMg aGFzIGFuIGVmZmVjdCBvbmx5IGR1cmluZyB0aGUgc2Vjb25kIHNjaGVkdWxpbmcgcGFzcywg YW5kIG9ubHkgaWYKLkZsIGZzY2hlZC1zdGFsbGVkLWluc25zCmlzIHVzZWQgYW5kIGl0cyB2 YWx1ZSBpcyBub3QgemVyby4KKwouRmwgZm5vLXNjaGVkLXN0YWxsZWQtaW5zbnMtZGVwCmlz IGVxdWl2YWxlbnQgdG8gKwouRmwgZnNjaGVkLXN0YWxsZWQtaW5zbnMtZGVwPTAgLgorCi5G bCBmc2NoZWQtc3RhbGxlZC1pbnNucy1kZXAKd2l0aG91dCBhIHZhbHVlIGlzIGVxdWl2YWxl bnQgdG8gKwouRmwgZnNjaGVkLXN0YWxsZWQtaW5zbnMtZGVwPTEgLgouUHAKLkl0IEZsIGZz Y2hlZDItdXNlLXN1cGVyYmxvY2tzCldoZW4gc2NoZWR1bGluZyBhZnRlciByZWdpc3RlciBh bGxvY2F0aW9uLCBkbyB1c2Ugc3VwZXJibG9jayBzY2hlZHVsaW5nIGFsZ29yaXRobS4KU3Vw ZXJibG9jayBzY2hlZHVsaW5nIGFsbG93cyBtb3Rpb24gYWNyb3NzIGJhc2ljIGJsb2NrIGJv dW5kYXJpZXMgcmVzdWx0aW5nIG9uIGZhc3RlciBzY2hlZHVsZXMuClRoaXMgb3B0aW9uIGlz IGV4cGVyaW1lbnRhbCwgYXMgbm90IGFsbCBtYWNoaW5lIGRlc2NyaXB0aW9ucyB1c2VkIGJ5 IEdDQyBtb2RlbCB0aGUgQ1BVIGNsb3NlbHkgZW5vdWdoIHRvIGF2b2lkIHVucmVsaWFibGUg cmVzdWx0cyBmcm9tIHRoZSBhbGdvcml0aG0uCi5QcApUaGlzIG9ubHkgbWFrZXMgc2Vuc2Ug d2hlbiBzY2hlZHVsaW5nIGFmdGVyIHJlZ2lzdGVyIGFsbG9jYXRpb24sIGkuZS4gd2l0aAou RmwgZnNjaGVkdWxlLWluc25zMgpvciBhdAouRmwgTzIKb3IgaGlnaGVyLgouUHAKLkl0IEZs IGZzY2hlZDItdXNlLXRyYWNlcwpVc2UKLkZsIGZzY2hlZDItdXNlLXN1cGVyYmxvY2tzCmFs Z29yaXRobSB3aGVuIHNjaGVkdWxpbmcgYWZ0ZXIgcmVnaXN0ZXIgYWxsb2NhdGlvbiBhbmQg YWRkaXRpb25hbGx5IHBlcmZvcm0gY29kZSBkdXBsaWNhdGlvbiBpbiBvcmRlciB0byBpbmNy ZWFzZSB0aGUgc2l6ZSBvZiBzdXBlcmJsb2NrcyB1c2luZyB0cmFjZXIgcGFzcy4KU2VlCi5G bCBmdHJhY2VyCmZvciBkZXRhaWxzIG9uIHRyYWNlIGZvcm1hdGlvbi4KLlBwClRoaXMgbW9k ZSBzaG91bGQgcHJvZHVjZSBmYXN0ZXIgYnV0IHNpZ25pZmljYW50bHkgbG9uZ2VyIHByb2dy YW1zLgpBbHNvIHdpdGhvdXQKLkZsIGZicmFuY2gtcHJvYmFiaWxpdGllcwp0aGUgdHJhY2Vz IGNvbnN0cnVjdGVkIG1heSBub3QgbWF0Y2ggdGhlIHJlYWxpdHkgYW5kIGh1cnQgdGhlIHBl cmZvcm1hbmNlLgpUaGlzIG9ubHkgbWFrZXMgc2Vuc2Ugd2hlbiBzY2hlZHVsaW5nIGFmdGVy IHJlZ2lzdGVyIGFsbG9jYXRpb24sIGkuZS4gd2l0aAouRmwgZnNjaGVkdWxlLWluc25zMgpv ciBhdAouRmwgTzIKb3IgaGlnaGVyLgouUHAKLkl0IEZsIGZyZXNjaGVkdWxlLW1vZHVsby1z Y2hlZHVsZWQtbG9vcHMKVGhlIG1vZHVsbyBzY2hlZHVsaW5nIGNvbWVzIGJlZm9yZSB0aGUg dHJhZGl0aW9uYWwgc2NoZWR1bGluZywgaWYgYSBsb29wIHdhcyBtb2R1bG8gc2NoZWR1bGVk IHdlIG1heSB3YW50IHRvIHByZXZlbnQgdGhlIGxhdGVyIHNjaGVkdWxpbmcgcGFzc2VzIGZy b20gY2hhbmdpbmcgaXRzIHNjaGVkdWxlLCB3ZSB1c2UgdGhpcyBvcHRpb24gdG8gY29udHJv bCB0aGF0LgouUHAKLkl0IEZsIGZjYWxsZXItc2F2ZXMKRW5hYmxlIHZhbHVlcyB0byBiZSBh bGxvY2F0ZWQgaW4gcmVnaXN0ZXJzIHRoYXQgd2lsbCBiZSBjbG9iYmVyZWQgYnkgZnVuY3Rp b24gY2FsbHMsIGJ5IGVtaXR0aW5nIGV4dHJhIGluc3RydWN0aW9ucyB0byBzYXZlIGFuZCBy ZXN0b3JlIHRoZSByZWdpc3RlcnMgYXJvdW5kIHN1Y2ggY2FsbHMuClN1Y2ggYWxsb2NhdGlv biBpcyBkb25lIG9ubHkgd2hlbiBpdCBzZWVtcyB0byByZXN1bHQgaW4gYmV0dGVyIGNvZGUg dGhhbiB3b3VsZCBvdGhlcndpc2UgYmUgcHJvZHVjZWQuCi5QcApUaGlzIG9wdGlvbiBpcyBh bHdheXMgZW5hYmxlZCBieSBkZWZhdWx0IG9uIGNlcnRhaW4gbWFjaGluZXMsIHVzdWFsbHkg dGhvc2Ugd2hpY2ggaGF2ZSBubyBjYWxsLXByZXNlcnZlZCByZWdpc3RlcnMgdG8gdXNlIGlu c3RlYWQuCi5QcApFbmFibGVkIGF0IGxldmVscwouRmwgTzIgLAouRmwgTzMgLAouRmwgXCZP cyAuCi5QcAouSXQgRmwgZnRyZWUtcHJlClBlcmZvcm0gUGFydGlhbCBSZWR1bmRhbmN5IEVs aW1pbmF0aW9uIChQUkUpIG9uIHRyZWVzLgpUaGlzIGZsYWcgaXMgZW5hYmxlZCBieSBkZWZh dWx0IGF0Ci5GbCBPMgphbmQKLkZsIE8zIC4KLlBwCi5JdCBGbCBmdHJlZS1mcmUKUGVyZm9y bSBGdWxsIFJlZHVuZGFuY3kgRWxpbWluYXRpb24gKEZSRSkgb24gdHJlZXMuClRoZSBkaWZm ZXJlbmNlIGJldHdlZW4gRlJFIGFuZCBQUkUgaXMgdGhhdCBGUkUgb25seSBjb25zaWRlcnMg ZXhwcmVzc2lvbnMgdGhhdCBhcmUgY29tcHV0ZWQgb24gYWxsIHBhdGhzIGxlYWRpbmcgdG8g dGhlIHJlZHVuZGFudCBjb21wdXRhdGlvbi4KVGhpcyBhbmFseXNpcyBmYXN0ZXIgdGhhbiBQ UkUsIHRob3VnaCBpdCBleHBvc2VzIGZld2VyIHJlZHVuZGFuY2llcy4KVGhpcyBmbGFnIGlz IGVuYWJsZWQgYnkgZGVmYXVsdCBhdAouRmwgTwphbmQgaGlnaGVyLgouUHAKLkl0IEZsIGZ0 cmVlLWNvcHktcHJvcApQZXJmb3JtIGNvcHkgcHJvcGFnYXRpb24gb24gdHJlZXMuClRoaXMg cGFzcyBlbGltaW5hdGVzIHVubmVjZXNzYXJ5IGNvcHkgb3BlcmF0aW9ucy4KVGhpcyBmbGFn IGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBhdAouRmwgTwphbmQgaGlnaGVyLgouUHAKLkl0IEZs IGZ0cmVlLXN0b3JlLWNvcHktcHJvcApQZXJmb3JtIGNvcHkgcHJvcGFnYXRpb24gb2YgbWVt b3J5IGxvYWRzIGFuZCBzdG9yZXMuClRoaXMgcGFzcyBlbGltaW5hdGVzIHVubmVjZXNzYXJ5 IGNvcHkgb3BlcmF0aW9ucyBpbiBtZW1vcnkgcmVmZXJlbmNlcyAoc3RydWN0dXJlcywgZ2xv YmFsIHZhcmlhYmxlcywgYXJyYXlzLCBldGMpLgpUaGlzIGZsYWcgaXMgZW5hYmxlZCBieSBk ZWZhdWx0IGF0Ci5GbCBPMgphbmQgaGlnaGVyLgouUHAKLkl0IEZsIGZ0cmVlLXNhbGlhcwpQ ZXJmb3JtIHN0cnVjdHVyYWwgYWxpYXMgYW5hbHlzaXMgb24gdHJlZXMuClRoaXMgZmxhZyBp cyBlbmFibGVkIGJ5IGRlZmF1bHQgYXQKLkZsIE8KYW5kIGhpZ2hlci4KLlBwCi5JdCBGbCBm dHJlZS1zaW5rClBlcmZvcm0gZm9yd2FyZCBzdG9yZSBtb3Rpb24gb24gdHJlZXMuClRoaXMg ZmxhZyBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgYXQKLkZsIE8KYW5kIGhpZ2hlci4KLlBwCi5J dCBGbCBmdHJlZS1jY3AKUGVyZm9ybSBzcGFyc2UgY29uZGl0aW9uYWwgY29uc3RhbnQgcHJv cGFnYXRpb24gKENDUCkgb24gdHJlZXMuClRoaXMgcGFzcyBvbmx5IG9wZXJhdGVzIG9uIGxv Y2FsIHNjYWxhciB2YXJpYWJsZXMgYW5kIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBhdAouRmwg TwphbmQgaGlnaGVyLgouUHAKLkl0IEZsIGZ0cmVlLXN0b3JlLWNjcApQZXJmb3JtIHNwYXJz ZSBjb25kaXRpb25hbCBjb25zdGFudCBwcm9wYWdhdGlvbiAoQ0NQKSBvbiB0cmVlcy4KVGhp cyBwYXNzIG9wZXJhdGVzIG9uIGJvdGggbG9jYWwgc2NhbGFyIHZhcmlhYmxlcyBhbmQgbWVt b3J5IHN0b3JlcyBhbmQgbG9hZHMgKGdsb2JhbCB2YXJpYWJsZXMsIHN0cnVjdHVyZXMsIGFy cmF5cywgZXRjKS4KVGhpcyBmbGFnIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBhdAouRmwgTzIK YW5kIGhpZ2hlci4KLlBwCi5JdCBGbCBmdHJlZS1kY2UKUGVyZm9ybSBkZWFkIGNvZGUgZWxp bWluYXRpb24gKERDRSkgb24gdHJlZXMuClRoaXMgZmxhZyBpcyBlbmFibGVkIGJ5IGRlZmF1 bHQgYXQKLkZsIE8KYW5kIGhpZ2hlci4KLlBwCi5JdCBGbCBmdHJlZS1kb21pbmF0b3Itb3B0 cwpQZXJmb3JtIGEgdmFyaWV0eSBvZiBzaW1wbGUgc2NhbGFyIGNsZWFudXBzIChjb25zdGFu dC9jb3B5IHByb3BhZ2F0aW9uLCByZWR1bmRhbmN5IGVsaW1pbmF0aW9uLCByYW5nZSBwcm9w YWdhdGlvbiBhbmQgZXhwcmVzc2lvbiBzaW1wbGlmaWNhdGlvbikgYmFzZWQgb24gYSBkb21p bmF0b3IgdHJlZSB0cmF2ZXJzYWwuClRoaXMgYWxzbyBwZXJmb3JtcyBqdW1wIHRocmVhZGlu ZyAodG8gcmVkdWNlIGp1bXBzIHRvIGp1bXBzKS4KVGhpcyBmbGFnIGlzIGVuYWJsZWQgYnkg ZGVmYXVsdCBhdAouRmwgTwphbmQgaGlnaGVyLgouUHAKLkl0IEZsIGZ0cmVlLWNoClBlcmZv cm0gbG9vcCBoZWFkZXIgY29weWluZyBvbiB0cmVlcy4KVGhpcyBpcyBiZW5lZmljaWFsIHNp bmNlIGl0IGluY3JlYXNlcyBlZmZlY3RpdmVuZXNzIG9mIGNvZGUgbW90aW9uIG9wdGltaXph dGlvbnMuCkl0IGFsc28gc2F2ZXMgb25lIGp1bXAuClRoaXMgZmxhZyBpcyBlbmFibGVkIGJ5 IGRlZmF1bHQgYXQKLkZsIE8KYW5kIGhpZ2hlci4KSXQgaXMgbm90IGVuYWJsZWQgZm9yCi5G bCBcJk9zICwKc2luY2UgaXQgdXN1YWxseSBpbmNyZWFzZXMgY29kZSBzaXplLgouUHAKLkl0 IEZsIGZ0cmVlLWxvb3Atb3B0aW1pemUKUGVyZm9ybSBsb29wIG9wdGltaXphdGlvbnMgb24g dHJlZXMuClRoaXMgZmxhZyBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgYXQKLkZsIE8KYW5kIGhp Z2hlci4KLlBwCi5JdCBGbCBmdHJlZS1sb29wLWxpbmVhcgpQZXJmb3JtIGxpbmVhciBsb29w IHRyYW5zZm9ybWF0aW9ucyBvbiB0cmVlLgpUaGlzIGZsYWcgY2FuIGltcHJvdmUgY2FjaGUg cGVyZm9ybWFuY2UgYW5kIGFsbG93IGZ1cnRoZXIgbG9vcCBvcHRpbWl6YXRpb25zIHRvIHRh a2UgcGxhY2UuCi5QcAouSXQgRmwgZnRyZWUtbG9vcC1pbQpQZXJmb3JtIGxvb3AgaW52YXJp YW50IG1vdGlvbiBvbiB0cmVlcy4KVGhpcyBwYXNzIG1vdmVzIG9ubHkgaW52YXJpYW50cyB0 aGF0IHdvdWxkIGJlIGhhcmQgdG8gaGFuZGxlIGF0IFJUTCBsZXZlbCAoZnVuY3Rpb24gY2Fs bHMsIG9wZXJhdGlvbnMgdGhhdCBleHBhbmQgdG8gbm9udHJpdmlhbCBzZXF1ZW5jZXMgb2Yg aW5zbnMpLgpXaXRoCi5GbCBmdW5zd2l0Y2gtbG9vcHMKaXQgYWxzbyBtb3ZlcyBvcGVyYW5k cyBvZiBjb25kaXRpb25zIHRoYXQgYXJlIGludmFyaWFudCBvdXQgb2YgdGhlIGxvb3AsIHNv IHRoYXQgd2UgY2FuIHVzZSBqdXN0IHRyaXZpYWwgaW52YXJpYW50bmVzcyBhbmFseXNpcyBp biBsb29wIHVuc3dpdGNoaW5nLgpUaGUgcGFzcyBhbHNvIGluY2x1ZGVzIHN0b3JlIG1vdGlv bi4KLlBwCi5JdCBGbCBmdHJlZS1sb29wLWl2Y2Fub24KQ3JlYXRlIGEgY2Fub25pY2FsIGNv dW50ZXIgZm9yIG51bWJlciBvZiBpdGVyYXRpb25zIGluIHRoZSBsb29wIGZvciB0aGF0IGRl dGVybWluaW5nIG51bWJlciBvZiBpdGVyYXRpb25zIHJlcXVpcmVzIGNvbXBsaWNhdGVkIGFu YWx5c2lzLgpMYXRlciBvcHRpbWl6YXRpb25zIHRoZW4gbWF5IGRldGVybWluZSB0aGUgbnVt YmVyIGVhc2lseS4KVXNlZnVsIGVzcGVjaWFsbHkgaW4gY29ubmVjdGlvbiB3aXRoIHVucm9s bGluZy4KLlBwCi5JdCBGbCBmaXZvcHRzClBlcmZvcm0gaW5kdWN0aW9uIHZhcmlhYmxlIG9w dGltaXphdGlvbnMgKHN0cmVuZ3RoIHJlZHVjdGlvbiwgaW5kdWN0aW9uIHZhcmlhYmxlIG1l cmdpbmcgYW5kIGluZHVjdGlvbiB2YXJpYWJsZSBlbGltaW5hdGlvbikgb24gdHJlZXMuCi5Q cAouSXQgRmwgZnRyZWUtc3JhClBlcmZvcm0gc2NhbGFyIHJlcGxhY2VtZW50IG9mIGFnZ3Jl Z2F0ZXMuClRoaXMgcGFzcyByZXBsYWNlcyBzdHJ1Y3R1cmUgcmVmZXJlbmNlcyB3aXRoIHNj YWxhcnMgdG8gcHJldmVudCBjb21taXR0aW5nIHN0cnVjdHVyZXMgdG8gbWVtb3J5IHRvbyBl YXJseS4KVGhpcyBmbGFnIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBhdAouRmwgTwphbmQgaGln aGVyLgouUHAKLkl0IEZsIGZ0cmVlLWNvcHlyZW5hbWUKUGVyZm9ybSBjb3B5IHJlbmFtaW5n IG9uIHRyZWVzLgpUaGlzIHBhc3MgYXR0ZW1wdHMgdG8gcmVuYW1lIGNvbXBpbGVyIHRlbXBv cmFyaWVzIHRvIG90aGVyIHZhcmlhYmxlcyBhdCBjb3B5IGxvY2F0aW9ucywgdXN1YWxseSBy ZXN1bHRpbmcgaW4gdmFyaWFibGUgbmFtZXMgd2hpY2ggbW9yZSBjbG9zZWx5IHJlc2VtYmxl IHRoZSBvcmlnaW5hbCB2YXJpYWJsZXMuClRoaXMgZmxhZyBpcyBlbmFibGVkIGJ5IGRlZmF1 bHQgYXQKLkZsIE8KYW5kIGhpZ2hlci4KLlBwCi5JdCBGbCBmdHJlZS10ZXIKUGVyZm9ybSB0 ZW1wb3JhcnkgZXhwcmVzc2lvbiByZXBsYWNlbWVudCBkdXJpbmcgdGhlIFNTQS1cKltHdF1u b3JtYWwgcGhhc2UuClNpbmdsZSB1c2Uvc2luZ2xlIGRlZiB0ZW1wb3JhcmllcyBhcmUgcmVw bGFjZWQgYXQgdGhlaXIgdXNlIGxvY2F0aW9uIHdpdGggdGhlaXIgZGVmaW5pbmcgZXhwcmVz c2lvbi4KVGhpcyByZXN1bHRzIGluIG5vbi1HSU1QTEUgY29kZSwgYnV0IGdpdmVzIHRoZSBl eHBhbmRlcnMgbXVjaCBtb3JlIGNvbXBsZXggdHJlZXMgdG8gd29yayBvbiByZXN1bHRpbmcg aW4gYmV0dGVyIFJUTCBnZW5lcmF0aW9uLgpUaGlzIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBh dAouRmwgTwphbmQgaGlnaGVyLgouUHAKLkl0IEZsIGZ0cmVlLWxycwpQZXJmb3JtIGxpdmUg cmFuZ2Ugc3BsaXR0aW5nIGR1cmluZyB0aGUgU1NBLVwqW0d0XW5vcm1hbCBwaGFzZS4KRGlz dGluY3QgbGl2ZSByYW5nZXMgb2YgYSB2YXJpYWJsZSBhcmUgc3BsaXQgaW50byB1bmlxdWUg dmFyaWFibGVzLCBhbGxvd2luZyBmb3IgYmV0dGVyIG9wdGltaXphdGlvbiBsYXRlci4KVGhp cyBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgYXQKLkZsIE8KYW5kIGhpZ2hlci4KLlBwCi5JdCBG bCBmdHJlZS12ZWN0b3JpemUKUGVyZm9ybSBsb29wIHZlY3Rvcml6YXRpb24gb24gdHJlZXMu Ci5QcAouSXQgRmwgZnRyZWUtdmVjdC1sb29wLXZlcnNpb24KUGVyZm9ybSBsb29wIHZlcnNp b25pbmcgd2hlbiBkb2luZyBsb29wIHZlY3Rvcml6YXRpb24gb24gdHJlZXMuCldoZW4gYSBs b29wIGFwcGVhcnMgdG8gYmUgdmVjdG9yaXphYmxlIGV4Y2VwdCB0aGF0IGRhdGEgYWxpZ25t ZW50IG9yIGRhdGEgZGVwZW5kZW5jZSBjYW5ub3QgYmUgZGV0ZXJtaW5lZCBhdCBjb21waWxl IHRpbWUgdGhlbiB2ZWN0b3JpemVkIGFuZCBub24tdmVjdG9yaXplZCB2ZXJzaW9ucyBvZiB0 aGUgbG9vcCBhcmUgZ2VuZXJhdGVkIGFsb25nIHdpdGggcnVudGltZSBjaGVja3MgZm9yIGFs aWdubWVudCBvciBkZXBlbmRlbmNlIHRvIGNvbnRyb2wgd2hpY2ggdmVyc2lvbiBpcyBleGVj dXRlZC4KVGhpcyBvcHRpb24gaXMgZW5hYmxlZCBieSBkZWZhdWx0IGV4Y2VwdCBhdCBsZXZl bAouRmwgXCZPcwp3aGVyZSBpdCBpcyBkaXNhYmxlZC4KLlBwCi5JdCBGbCBmdHJlZS12cnAK UGVyZm9ybSBWYWx1ZSBSYW5nZSBQcm9wYWdhdGlvbiBvbiB0cmVlcy4KVGhpcyBpcyBzaW1p bGFyIHRvIHRoZSBjb25zdGFudCBwcm9wYWdhdGlvbiBwYXNzLCBidXQgaW5zdGVhZCBvZiB2 YWx1ZXMsIHJhbmdlcyBvZiB2YWx1ZXMgYXJlIHByb3BhZ2F0ZWQuClRoaXMgYWxsb3dzIHRo ZSBvcHRpbWl6ZXJzIHRvIHJlbW92ZSB1bm5lY2Vzc2FyeSByYW5nZSBjaGVja3MgbGlrZSBh cnJheSBib3VuZCBjaGVja3MgYW5kIG51bGwgcG9pbnRlciBjaGVja3MuClRoaXMgaXMgZW5h YmxlZCBieSBkZWZhdWx0IGF0Ci5GbCBPMgphbmQgaGlnaGVyLgpOdWxsIHBvaW50ZXIgY2hl Y2sgZWxpbWluYXRpb24gaXMgb25seSBkb25lIGlmCi5GbCBmZGVsZXRlLW51bGwtcG9pbnRl ci1jaGVja3MKaXMgZW5hYmxlZC4KLlBwCi5JdCBGbCBmdHJhY2VyClBlcmZvcm0gdGFpbCBk dXBsaWNhdGlvbiB0byBlbmxhcmdlIHN1cGVyYmxvY2sgc2l6ZS4KVGhpcyB0cmFuc2Zvcm1h dGlvbiBzaW1wbGlmaWVzIHRoZSBjb250cm9sIGZsb3cgb2YgdGhlIGZ1bmN0aW9uIGFsbG93 aW5nIG90aGVyIG9wdGltaXphdGlvbnMgdG8gZG8gYmV0dGVyIGpvYi4KLlBwCi5JdCBGbCBm dW5yb2xsLWxvb3BzClVucm9sbCBsb29wcyB3aG9zZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBj YW4gYmUgZGV0ZXJtaW5lZCBhdCBjb21waWxlIHRpbWUgb3IgdXBvbiBlbnRyeSB0byB0aGUg bG9vcC4KLkZsIGZ1bnJvbGwtbG9vcHMKaW1wbGllcyBib3RoCi5GbCBmc3RyZW5ndGgtcmVk dWNlCmFuZAouRmwgZnJlcnVuLWNzZS1hZnRlci1sb29wIC4KVGhpcyBvcHRpb24gbWFrZXMg Y29kZSBsYXJnZXIsIGFuZCBtYXkgb3IgbWF5IG5vdCBtYWtlIGl0IHJ1biBmYXN0ZXIuCi5Q cAouSXQgRmwgZnVucm9sbC1hbGwtbG9vcHMKVW5yb2xsIGFsbCBsb29wcywgZXZlbiBpZiB0 aGVpciBudW1iZXIgb2YgaXRlcmF0aW9ucyBpcyB1bmNlcnRhaW4gd2hlbiB0aGUgbG9vcCBp cyBlbnRlcmVkLgpUaGlzIHVzdWFsbHkgbWFrZXMgcHJvZ3JhbXMgcnVuIG1vcmUgc2xvd2x5 LgouRmwgZnVucm9sbC1hbGwtbG9vcHMKaW1wbGllcyB0aGUgc2FtZSBvcHRpb25zIGFzCi5G bCBmdW5yb2xsLWxvb3BzICwKLlBwCi5JdCBGbCBmc3BsaXQtaXZzLWluLXVucm9sbGVyCkVu YWJsZXMgZXhwcmVzc2luZyBvZiB2YWx1ZXMgb2YgaW5kdWN0aW9uIHZhcmlhYmxlcyBpbiBs YXRlciBpdGVyYXRpb25zIG9mIHRoZSB1bnJvbGxlZCBsb29wIHVzaW5nIHRoZSB2YWx1ZSBp biB0aGUgZmlyc3QgaXRlcmF0aW9uLgpUaGlzIGJyZWFrcyBsb25nIGRlcGVuZGVuY3kgY2hh aW5zLCB0aHVzIGltcHJvdmluZyBlZmZpY2llbmN5IG9mIHRoZSBzY2hlZHVsaW5nIHBhc3Nl cy4KLlBwCkNvbWJpbmF0aW9uIG9mCi5GbCBmd2ViCmFuZCBDU0UgaXMgb2Z0ZW4gc3VmZmlj aWVudCB0byBvYnRhaW4gdGhlIHNhbWUgZWZmZWN0LgpIb3dldmVyIGluIGNhc2VzIHRoZSBs b29wIGJvZHkgaXMgbW9yZSBjb21wbGljYXRlZCB0aGFuIGEgc2luZ2xlIGJhc2ljIGJsb2Nr LCB0aGlzIGlzIG5vdCByZWxpYWJsZS4KSXQgYWxzbyBkb2VzIG5vdCB3b3JrIGF0IGFsbCBv biBzb21lIG9mIHRoZSBhcmNoaXRlY3R1cmVzIGR1ZSB0byByZXN0cmljdGlvbnMgaW4gdGhl IENTRSBwYXNzLgouUHAKVGhpcyBvcHRpbWl6YXRpb24gaXMgZW5hYmxlZCBieSBkZWZhdWx0 LgouUHAKLkl0IEZsIGZ2YXJpYWJsZS1leHBhbnNpb24taW4tdW5yb2xsZXIKV2l0aCB0aGlz IG9wdGlvbiwgdGhlIGNvbXBpbGVyIHdpbGwgY3JlYXRlIG11bHRpcGxlIGNvcGllcyBvZiBz b21lIGxvY2FsIHZhcmlhYmxlcyB3aGVuIHVucm9sbGluZyBhIGxvb3Agd2hpY2ggY2FuIHJl c3VsdCBpbiBzdXBlcmlvciBjb2RlLgouUHAKLkl0IEZsIGZwcmVmZXRjaC1sb29wLWFycmF5 cwpJZiBzdXBwb3J0ZWQgYnkgdGhlIHRhcmdldCBtYWNoaW5lLCBnZW5lcmF0ZSBpbnN0cnVj dGlvbnMgdG8gcHJlZmV0Y2ggbWVtb3J5IHRvIGltcHJvdmUgdGhlIHBlcmZvcm1hbmNlIG9m IGxvb3BzIHRoYXQgYWNjZXNzIGxhcmdlIGFycmF5cy4KLlBwClRoZXNlIG9wdGlvbnMgbWF5 IGdlbmVyYXRlIGJldHRlciBvciB3b3JzZSBjb2RlOyByZXN1bHRzIGFyZSBoaWdobHkgZGVw ZW5kZW50IG9uIHRoZSBzdHJ1Y3R1cmUgb2YgbG9vcHMgd2l0aGluIHRoZSBzb3VyY2UgY29k ZS4KLlBwCi5JdCBGbCBmbm8tcGVlcGhvbGUKLkl0IEZsIGZuby1wZWVwaG9sZTIKRGlzYWJs ZSBhbnkgbWFjaGluZS1zcGVjaWZpYyBwZWVwaG9sZSBvcHRpbWl6YXRpb25zLgpUaGUgZGlm ZmVyZW5jZSBiZXR3ZWVuCi5GbCBmbm8tcGVlcGhvbGUKYW5kCi5GbCBmbm8tcGVlcGhvbGUy CmlzIGluIGhvdyB0aGV5IGFyZSBpbXBsZW1lbnRlZCBpbiB0aGUgY29tcGlsZXI7IHNvbWUg dGFyZ2V0cyB1c2Ugb25lLCBzb21lIHVzZSB0aGUgb3RoZXIsIGEgZmV3IHVzZSBib3RoLgou UHAKLkZsIGZwZWVwaG9sZQppcyBlbmFibGVkIGJ5IGRlZmF1bHQuCi5GbCBmcGVlcGhvbGUy CmVuYWJsZWQgYXQgbGV2ZWxzCi5GbCBPMiAsCi5GbCBPMyAsCi5GbCBcJk9zIC4KLlBwCi5J dCBGbCBmbm8tZ3Vlc3MtYnJhbmNoLXByb2JhYmlsaXR5CkRvIG5vdCBndWVzcyBicmFuY2gg cHJvYmFiaWxpdGllcyB1c2luZyBoZXVyaXN0aWNzLgouUHAKR0NDIHdpbGwgdXNlIGhldXJp c3RpY3MgdG8gZ3Vlc3MgYnJhbmNoIHByb2JhYmlsaXRpZXMgaWYgdGhleSBhcmUgbm90IHBy b3ZpZGVkIGJ5IHByb2ZpbGluZyBmZWVkYmFjawouRmwgKCBmcHJvZmlsZS1hcmNzICkgLgpU aGVzZSBoZXVyaXN0aWNzIGFyZSBiYXNlZCBvbiB0aGUgY29udHJvbCBmbG93IGdyYXBoLgpJ ZiBzb21lIGJyYW5jaCBwcm9iYWJpbGl0aWVzIGFyZSBzcGVjaWZpZWQgYnkKLlN5IF9fYnVp bHRpbl9leHBlY3QgLAp0aGVuIHRoZSBoZXVyaXN0aWNzIHdpbGwgYmUgdXNlZCB0byBndWVz cyBicmFuY2ggcHJvYmFiaWxpdGllcyBmb3IgdGhlIHJlc3Qgb2YgdGhlIGNvbnRyb2wgZmxv dyBncmFwaCwgdGFraW5nIHRoZQouU3kgX19idWlsdGluX2V4cGVjdAppbmZvIGludG8gYWNj b3VudC4KVGhlIGludGVyYWN0aW9ucyBiZXR3ZWVuIHRoZSBoZXVyaXN0aWNzIGFuZAouU3kg X19idWlsdGluX2V4cGVjdApjYW4gYmUgY29tcGxleCwgYW5kIGluIHNvbWUgY2FzZXMsIGl0 IG1heSBiZSB1c2VmdWwgdG8gZGlzYWJsZSB0aGUgaGV1cmlzdGljcyBzbyB0aGF0IHRoZSBl ZmZlY3RzIG9mCi5TeSBfX2J1aWx0aW5fZXhwZWN0CmFyZSBlYXNpZXIgdG8gdW5kZXJzdGFu ZC4KLlBwClRoZSBkZWZhdWx0IGlzCi5GbCBmZ3Vlc3MtYnJhbmNoLXByb2JhYmlsaXR5CmF0 IGxldmVscwouRmwgTyAsCi5GbCBPMiAsCi5GbCBPMyAsCi5GbCBcJk9zIC4KLlBwCi5JdCBG bCBmcmVvcmRlci1ibG9ja3MKUmVvcmRlciBiYXNpYyBibG9ja3MgaW4gdGhlIGNvbXBpbGVk IGZ1bmN0aW9uIGluIG9yZGVyIHRvIHJlZHVjZSBudW1iZXIgb2YgdGFrZW4gYnJhbmNoZXMg YW5kIGltcHJvdmUgY29kZSBsb2NhbGl0eS4KLlBwCkVuYWJsZWQgYXQgbGV2ZWxzCi5GbCBP MiAsCi5GbCBPMyAuCi5QcAouSXQgRmwgZnJlb3JkZXItYmxvY2tzLWFuZC1wYXJ0aXRpb24K SW4gYWRkaXRpb24gdG8gcmVvcmRlcmluZyBiYXNpYyBibG9ja3MgaW4gdGhlIGNvbXBpbGVk IGZ1bmN0aW9uLCBpbiBvcmRlciB0byByZWR1Y2UgbnVtYmVyIG9mIHRha2VuIGJyYW5jaGVz LCBwYXJ0aXRpb25zIGhvdCBhbmQgY29sZCBiYXNpYyBibG9ja3MgaW50byBzZXBhcmF0ZSBz ZWN0aW9ucyBvZiB0aGUgYXNzZW1ibHkgYW5kIC5vIGZpbGVzLCB0byBpbXByb3ZlIHBhZ2lu ZyBhbmQgY2FjaGUgbG9jYWxpdHkgcGVyZm9ybWFuY2UuCi5QcApUaGlzIG9wdGltaXphdGlv biBpcyBhdXRvbWF0aWNhbGx5IHR1cm5lZCBvZmYgaW4gdGhlIHByZXNlbmNlIG9mIGV4Y2Vw dGlvbiBoYW5kbGluZywgZm9yIGxpbmtvbmNlIHNlY3Rpb25zLCBmb3IgZnVuY3Rpb25zIHdp dGggYSB1c2VyLWRlZmluZWQgc2VjdGlvbiBhdHRyaWJ1dGUgYW5kIG9uIGFueSBhcmNoaXRl Y3R1cmUgdGhhdCBkb2VzIG5vdCBzdXBwb3J0IG5hbWVkIHNlY3Rpb25zLgouUHAKLkl0IEZs IGZyZW9yZGVyLWZ1bmN0aW9ucwpSZW9yZGVyIGZ1bmN0aW9ucyBpbiB0aGUgb2JqZWN0IGZp bGUgaW4gb3JkZXIgdG8gaW1wcm92ZSBjb2RlIGxvY2FsaXR5LgpUaGlzIGlzIGltcGxlbWVu dGVkIGJ5IHVzaW5nIHNwZWNpYWwgc3Vic2VjdGlvbnMKLlZhIC50ZXh0LmhvdApmb3IgbW9z dCBmcmVxdWVudGx5IGV4ZWN1dGVkIGZ1bmN0aW9ucyBhbmQKLlZhIC50ZXh0LnVubGlrZWx5 CmZvciB1bmxpa2VseSBleGVjdXRlZCBmdW5jdGlvbnMuClJlb3JkZXJpbmcgaXMgZG9uZSBi eSB0aGUgbGlua2VyIHNvIG9iamVjdCBmaWxlIGZvcm1hdCBtdXN0IHN1cHBvcnQgbmFtZWQg c2VjdGlvbnMgYW5kIGxpbmtlciBtdXN0IHBsYWNlIHRoZW0gaW4gYSByZWFzb25hYmxlIHdh eS4KLlBwCkFsc28gcHJvZmlsZSBmZWVkYmFjayBtdXN0IGJlIGF2YWlsYWJsZSBpbiB0byBt YWtlIHRoaXMgb3B0aW9uIGVmZmVjdGl2ZS4KU2VlCi5GbCBmcHJvZmlsZS1hcmNzCmZvciBk ZXRhaWxzLgouUHAKRW5hYmxlZCBhdCBsZXZlbHMKLkZsIE8yICwKLkZsIE8zICwKLkZsIFwm T3MgLgouUHAKLkl0IEZsIGZzdHJpY3QtYWxpYXNpbmcKQWxsb3dzIHRoZSBjb21waWxlciB0 byBhc3N1bWUgdGhlIHN0cmljdGVzdCBhbGlhc2luZyBydWxlcyBhcHBsaWNhYmxlIHRvIHRo ZSBsYW5ndWFnZSBiZWluZyBjb21waWxlZC4KRm9yIEMgKGFuZCBDKyspLCB0aGlzIGFjdGl2 YXRlcyBvcHRpbWl6YXRpb25zIGJhc2VkIG9uIHRoZSB0eXBlIG9mIGV4cHJlc3Npb25zLgpJ biBwYXJ0aWN1bGFyLCBhbiBvYmplY3Qgb2Ygb25lIHR5cGUgaXMgYXNzdW1lZCBuZXZlciB0 byByZXNpZGUgYXQgdGhlIHNhbWUgYWRkcmVzcyBhcyBhbiBvYmplY3Qgb2YgYSBkaWZmZXJl bnQgdHlwZSwgdW5sZXNzIHRoZSB0eXBlcyBhcmUgYWxtb3N0IHRoZSBzYW1lLgpGb3IgZXhh bXBsZSwgYW4KLlZhIHVuc2lnbmVkIGludApjYW4gYWxpYXMgYW4KLlZhIGludCAsCmJ1dCBu b3QgYQouVmEgdm9pZCoKb3IgYQouVmEgZG91YmxlIC4KQSBjaGFyYWN0ZXIgdHlwZSBtYXkg YWxpYXMgYW55IG90aGVyIHR5cGUuCi5QcApQYXkgc3BlY2lhbCBhdHRlbnRpb24gdG8gY29k ZSBsaWtlIHRoaXM6Ci5QcAouQmQgLWxpdGVyYWwgLW9mZnNldCBpbmRlbnQKdW5pb24gYV91 bmlvbiB7CiAgaW50IGk7CiAgZG91YmxlIGQ7Cn07CgppbnQgZigpIHsKICBhX3VuaW9uIHQ7 CiAgdC5kID0gMy4wOwogIHJldHVybiB0Lmk7Cn0KLkVkClRoZSBwcmFjdGljZSBvZiByZWFk aW5nIGZyb20gYSBkaWZmZXJlbnQgdW5pb24gbWVtYmVyIHRoYW4gdGhlIG9uZSBtb3N0IHJl Y2VudGx5IHdyaXR0ZW4gdG8gKGNhbGxlZCAidHlwZS1wdW5uaW5nIikgaXMgY29tbW9uLgpF dmVuIHdpdGgKLkZsIGZzdHJpY3QtYWxpYXNpbmcgLAp0eXBlLXB1bm5pbmcgaXMgYWxsb3dl ZCwgcHJvdmlkZWQgdGhlIG1lbW9yeSBpcyBhY2Nlc3NlZCB0aHJvdWdoIHRoZSB1bmlvbiB0 eXBlLgpTbywgdGhlIGNvZGUgYWJvdmUgd2lsbCB3b3JrIGFzIGV4cGVjdGVkLgpIb3dldmVy LCB0aGlzIGNvZGUgbWlnaHQgbm90OgouUHAKLkJkIC1saXRlcmFsIC1vZmZzZXQgaW5kZW50 CmludCBmKCkgewogIGFfdW5pb24gdDsKICBpbnQqIGlwOwogIHQuZCA9IDMuMDsKICBpcCA9 ICZ0Lmk7CiAgcmV0dXJuICppcDsKfQouRWQKRXZlcnkgbGFuZ3VhZ2UgdGhhdCB3aXNoZXMg dG8gcGVyZm9ybSBsYW5ndWFnZS1zcGVjaWZpYyBhbGlhcyBhbmFseXNpcyBzaG91bGQgZGVm aW5lIGEgZnVuY3Rpb24gdGhhdCBjb21wdXRlcywgZ2l2ZW4gYW4KLlZhIHRyZWUKbm9kZSwg YW4gYWxpYXMgc2V0IGZvciB0aGUgbm9kZS4KTm9kZXMgaW4gZGlmZmVyZW50IGFsaWFzIHNl dHMgYXJlIG5vdCBhbGxvd2VkIHRvIGFsaWFzLgpGb3IgYW4gZXhhbXBsZSwgc2VlIHRoZSBD IGZyb250LWVuZCBmdW5jdGlvbgouVmEgY19nZXRfYWxpYXNfc2V0IC4KLlBwCkVuYWJsZWQg YXQgbGV2ZWxzCi5GbCBPMiAsCi5GbCBPMyAsCi5GbCBcJk9zIC4KLlBwCi5JdCBGbCBmYWxp Z24tZnVuY3Rpb25zCi5JdCBGbCBmYWxpZ24tZnVuY3Rpb25zPSBOcyBBciBuCkFsaWduIHRo ZSBzdGFydCBvZiBmdW5jdGlvbnMgdG8gdGhlIG5leHQgcG93ZXItb2YtdHdvIGdyZWF0ZXIg dGhhbgouRW0gbiAsCnNraXBwaW5nIHVwIHRvCi5FbSBuCmJ5dGVzLgpGb3IgaW5zdGFuY2Us Ci5GbCBmYWxpZ24tZnVuY3Rpb25zPTMyCmFsaWducyBmdW5jdGlvbnMgdG8gdGhlIG5leHQg MzItYnl0ZSBib3VuZGFyeSwgYnV0Ci5GbCBmYWxpZ24tZnVuY3Rpb25zPTI0CndvdWxkIGFs aWduIHRvIHRoZSBuZXh0IDMyLWJ5dGUgYm91bmRhcnkgb25seSBpZiB0aGlzIGNhbiBiZSBk b25lIGJ5IHNraXBwaW5nIDIzIGJ5dGVzIG9yIGxlc3MuCi5QcAouRmwgZm5vLWFsaWduLWZ1 bmN0aW9ucwphbmQKLkZsIGZhbGlnbi1mdW5jdGlvbnM9MQphcmUgZXF1aXZhbGVudCBhbmQg bWVhbiB0aGF0IGZ1bmN0aW9ucyB3aWxsIG5vdCBiZSBhbGlnbmVkLgouUHAKU29tZSBhc3Nl bWJsZXJzIG9ubHkgc3VwcG9ydCB0aGlzIGZsYWcgd2hlbgouRW0gbgppcyBhIHBvd2VyIG9m IHR3bzsgaW4gdGhhdCBjYXNlLCBpdCBpcyByb3VuZGVkIHVwLgouUHAKSWYKLkVtIG4KaXMg bm90IHNwZWNpZmllZCBvciBpcyB6ZXJvLCB1c2UgYSBtYWNoaW5lLWRlcGVuZGVudCBkZWZh dWx0LgouUHAKRW5hYmxlZCBhdCBsZXZlbHMKLkZsIE8yICwKLkZsIE8zIC4KLlBwCi5JdCBG bCBmYWxpZ24tbGFiZWxzCi5JdCBGbCBmYWxpZ24tbGFiZWxzPSBOcyBBciBuCkFsaWduIGFs bCBicmFuY2ggdGFyZ2V0cyB0byBhIHBvd2VyLW9mLXR3byBib3VuZGFyeSwgc2tpcHBpbmcg dXAgdG8KLkVtIG4KYnl0ZXMgbGlrZQouRmwgZmFsaWduLWZ1bmN0aW9ucyAuClRoaXMgb3B0 aW9uIGNhbiBlYXNpbHkgbWFrZSBjb2RlIHNsb3dlciwgYmVjYXVzZSBpdCBtdXN0IGluc2Vy dCBkdW1teSBvcGVyYXRpb25zIGZvciB3aGVuIHRoZSBicmFuY2ggdGFyZ2V0IGlzIHJlYWNo ZWQgaW4gdGhlIHVzdWFsIGZsb3cgb2YgdGhlIGNvZGUuCi5QcAouRmwgZm5vLWFsaWduLWxh YmVscwphbmQKLkZsIGZhbGlnbi1sYWJlbHM9MQphcmUgZXF1aXZhbGVudCBhbmQgbWVhbiB0 aGF0IGxhYmVscyB3aWxsIG5vdCBiZSBhbGlnbmVkLgouUHAKSWYKLkZsIGZhbGlnbi1sb29w cwpvcgouRmwgZmFsaWduLWp1bXBzCmFyZSBhcHBsaWNhYmxlIGFuZCBhcmUgZ3JlYXRlciB0 aGFuIHRoaXMgdmFsdWUsIHRoZW4gdGhlaXIgdmFsdWVzIGFyZSB1c2VkIGluc3RlYWQuCi5Q cApJZgouRW0gbgppcyBub3Qgc3BlY2lmaWVkIG9yIGlzIHplcm8sIHVzZSBhIG1hY2hpbmUt ZGVwZW5kZW50IGRlZmF1bHQgd2hpY2ggaXMgdmVyeSBsaWtlbHkgdG8gYmUKLlN5IDEgLApt ZWFuaW5nIG5vIGFsaWdubWVudC4KLlBwCkVuYWJsZWQgYXQgbGV2ZWxzCi5GbCBPMiAsCi5G bCBPMyAuCi5QcAouSXQgRmwgZmFsaWduLWxvb3BzCi5JdCBGbCBmYWxpZ24tbG9vcHM9IE5z IEFyIG4KQWxpZ24gbG9vcHMgdG8gYSBwb3dlci1vZi10d28gYm91bmRhcnksIHNraXBwaW5n IHVwIHRvCi5FbSBuCmJ5dGVzIGxpa2UKLkZsIGZhbGlnbi1mdW5jdGlvbnMgLgpUaGUgaG9w ZSBpcyB0aGF0IHRoZSBsb29wIHdpbGwgYmUgZXhlY3V0ZWQgbWFueSB0aW1lcywgd2hpY2gg d2lsbCBtYWtlIHVwIGZvciBhbnkgZXhlY3V0aW9uIG9mIHRoZSBkdW1teSBvcGVyYXRpb25z LgouUHAKLkZsIGZuby1hbGlnbi1sb29wcwphbmQKLkZsIGZhbGlnbi1sb29wcz0xCmFyZSBl cXVpdmFsZW50IGFuZCBtZWFuIHRoYXQgbG9vcHMgd2lsbCBub3QgYmUgYWxpZ25lZC4KLlBw CklmCi5FbSBuCmlzIG5vdCBzcGVjaWZpZWQgb3IgaXMgemVybywgdXNlIGEgbWFjaGluZS1k ZXBlbmRlbnQgZGVmYXVsdC4KLlBwCkVuYWJsZWQgYXQgbGV2ZWxzCi5GbCBPMiAsCi5GbCBP MyAuCi5QcAouSXQgRmwgZmFsaWduLWp1bXBzCi5JdCBGbCBmYWxpZ24tanVtcHM9IE5zIEFy IG4KQWxpZ24gYnJhbmNoIHRhcmdldHMgdG8gYSBwb3dlci1vZi10d28gYm91bmRhcnksIGZv ciBicmFuY2ggdGFyZ2V0cyB3aGVyZSB0aGUgdGFyZ2V0cyBjYW4gb25seSBiZSByZWFjaGVk IGJ5IGp1bXBpbmcsIHNraXBwaW5nIHVwIHRvCi5FbSBuCmJ5dGVzIGxpa2UKLkZsIGZhbGln bi1mdW5jdGlvbnMgLgpJbiB0aGlzIGNhc2UsIG5vIGR1bW15IG9wZXJhdGlvbnMgbmVlZCBi ZSBleGVjdXRlZC4KLlBwCi5GbCBmbm8tYWxpZ24tanVtcHMKYW5kCi5GbCBmYWxpZ24tanVt cHM9MQphcmUgZXF1aXZhbGVudCBhbmQgbWVhbiB0aGF0IGxvb3BzIHdpbGwgbm90IGJlIGFs aWduZWQuCi5QcApJZgouRW0gbgppcyBub3Qgc3BlY2lmaWVkIG9yIGlzIHplcm8sIHVzZSBh IG1hY2hpbmUtZGVwZW5kZW50IGRlZmF1bHQuCi5QcApFbmFibGVkIGF0IGxldmVscwouRmwg TzIgLAouRmwgTzMgLgouUHAKLkl0IEZsIGZ1bml0LWF0LWEtdGltZQpQYXJzZSB0aGUgd2hv bGUgY29tcGlsYXRpb24gdW5pdCBiZWZvcmUgc3RhcnRpbmcgdG8gcHJvZHVjZSBjb2RlLgpU aGlzIGFsbG93cyBzb21lIGV4dHJhIG9wdGltaXphdGlvbnMgdG8gdGFrZSBwbGFjZSBidXQg Y29uc3VtZXMgbW9yZSBtZW1vcnkgKGluIGdlbmVyYWwpLgpUaGVyZSBhcmUgc29tZSBjb21w YXRpYmlsaXR5IGlzc3VlcyB3aXRoCi5FbSB1bml0LWF0LWF0LXRpbWUKbW9kZToKLlBwCi5C bCAtYnVsbGV0Ci5JdAplbmFibGluZwouRW0gdW5pdC1hdC1hLXRpbWUKbW9kZSBtYXkgY2hh bmdlIHRoZSBvcmRlciBpbiB3aGljaCBmdW5jdGlvbnMsIHZhcmlhYmxlcywgYW5kIHRvcC1s ZXZlbAouVmEgYXNtCnN0YXRlbWVudHMgYXJlIGVtaXR0ZWQsIGFuZCB3aWxsIGxpa2VseSBi cmVhayBjb2RlIHJlbHlpbmcgb24gc29tZSBwYXJ0aWN1bGFyIG9yZGVyaW5nLgpUaGUgbWFq b3JpdHkgb2Ygc3VjaCB0b3AtbGV2ZWwKLlZhIGFzbQpzdGF0ZW1lbnRzLCB0aG91Z2gsIGNh biBiZSByZXBsYWNlZCBieQouVmEgc2VjdGlvbgphdHRyaWJ1dGVzLgouUHAKLkl0Ci5FbSB1 bml0LWF0LWEtdGltZQptb2RlIHJlbW92ZXMgdW5yZWZlcmVuY2VkIHN0YXRpYyB2YXJpYWJs ZXMgYW5kIGZ1bmN0aW9ucy4KVGhpcyBtYXkgcmVzdWx0IGluIHVuZGVmaW5lZCByZWZlcmVu Y2VzIHdoZW4gYW4KLlZhIGFzbQpzdGF0ZW1lbnQgcmVmZXJzIGRpcmVjdGx5IHRvIHZhcmlh YmxlcyBvciBmdW5jdGlvbnMgdGhhdCBhcmUgb3RoZXJ3aXNlIHVudXNlZC4KSW4gdGhhdCBj YXNlIGVpdGhlciB0aGUgdmFyaWFibGUvZnVuY3Rpb24gc2hhbGwgYmUgbGlzdGVkIGFzIGFu IG9wZXJhbmQgb2YgdGhlCi5WYSBhc20Kc3RhdGVtZW50IG9wZXJhbmQgb3IsIGluIHRoZSBj YXNlIG9mIHRvcC1sZXZlbAouVmEgYXNtCnN0YXRlbWVudHMgdGhlIGF0dHJpYnV0ZQouVmEg dXNlZApzaGFsbCBiZSB1c2VkIG9uIHRoZSBkZWNsYXJhdGlvbi4KLlBwCi5JdApTdGF0aWMg ZnVuY3Rpb25zIG5vdyBjYW4gdXNlIG5vbi1zdGFuZGFyZCBwYXNzaW5nIGNvbnZlbnRpb25z IHRoYXQgbWF5IGJyZWFrCi5WYSBhc20Kc3RhdGVtZW50cyBjYWxsaW5nIGZ1bmN0aW9ucyBk aXJlY3RseS4KQWdhaW4sIGF0dHJpYnV0ZQouVmEgdXNlZAp3aWxsIHByZXZlbnQgdGhpcyBi ZWhhdmlvci4KLlBwCi5FbApBcyBhIHRlbXBvcmFyeSB3b3JrYXJvdW5kLAouRmwgZm5vLXVu aXQtYXQtYS10aW1lCmNhbiBiZSB1c2VkLCBidXQgdGhpcyBzY2hlbWUgbWF5IG5vdCBiZSBz dXBwb3J0ZWQgYnkgZnV0dXJlIHJlbGVhc2VzIG9mIEdDQy4KLlBwCkVuYWJsZWQgYXQgbGV2 ZWxzCi5GbCBPICwKLkZsIE8yICwKLkZsIE8zICwKLkZsIFwmT3MgLgouUHAKLkl0IEZsIGZ3 ZWIKQ29uc3RydWN0cyB3ZWJzIGFzIGNvbW1vbmx5IHVzZWQgZm9yIHJlZ2lzdGVyIGFsbG9j YXRpb24gcHVycG9zZXMgYW5kIGFzc2lnbiBlYWNoIHdlYiBpbmRpdmlkdWFsIHBzZXVkbyBy ZWdpc3Rlci4KVGhpcyBhbGxvd3MgdGhlIHJlZ2lzdGVyIGFsbG9jYXRpb24gcGFzcyB0byBv cGVyYXRlIG9uIHBzZXVkb3MgZGlyZWN0bHksIGJ1dCBhbHNvIHN0cmVuZ3RoZW5zIHNldmVy YWwgb3RoZXIgb3B0aW1pemF0aW9uIHBhc3Nlcywgc3VjaCBhcyBDU0UsIGxvb3Agb3B0aW1p emVyIGFuZCB0cml2aWFsIGRlYWQgY29kZSByZW1vdmVyLgpJdCBjYW4sIGhvd2V2ZXIsIG1h a2UgZGVidWdnaW5nIGltcG9zc2libGUsIHNpbmNlIHZhcmlhYmxlcyB3aWxsIG5vIGxvbmdl ciBzdGF5IGluIGEgImhvbWUgcmVnaXN0ZXIiLgouUHAKRW5hYmxlZCBieSBkZWZhdWx0IHdp dGgKLkZsIGZ1bnJvbGwtbG9vcHMgLgouUHAKLkl0IEZsIGZ3aG9sZS1wcm9ncmFtCkFzc3Vt ZSB0aGF0IHRoZSBjdXJyZW50IGNvbXBpbGF0aW9uIHVuaXQgcmVwcmVzZW50cyB3aG9sZSBw cm9ncmFtIGJlaW5nIGNvbXBpbGVkLgpBbGwgcHVibGljIGZ1bmN0aW9ucyBhbmQgdmFyaWFi bGVzIHdpdGggdGhlIGV4Y2VwdGlvbiBvZgouVmEgbWFpbgphbmQgdGhvc2UgbWVyZ2VkIGJ5 IGF0dHJpYnV0ZQouVmEgZXh0ZXJuYWxseV92aXNpYmxlCmJlY29tZSBzdGF0aWMgZnVuY3Rp b25zIGFuZCBpbiBhIGFmZmVjdCBnZXRzIG1vcmUgYWdncmVzc2l2ZWx5IG9wdGltaXplZCBi eSBpbnRlcnByb2NlZHVyYWwgb3B0aW1pemVycy4KV2hpbGUgdGhpcyBvcHRpb24gaXMgZXF1 aXZhbGVudCB0byBwcm9wZXIgdXNlIG9mCi5WYSBzdGF0aWMKa2V5d29yZCBmb3IgcHJvZ3Jh bXMgY29uc2lzdGluZyBvZiBzaW5nbGUgZmlsZSwgaW4gY29tYmluYXRpb24gd2l0aCBvcHRp b24KLkZsIC1jb21iaW5lCnRoaXMgZmxhZyBjYW4gYmUgdXNlZCB0byBjb21waWxlIG1vc3Qg b2Ygc21hbGxlciBzY2FsZSBDIHByb2dyYW1zIHNpbmNlIHRoZSBmdW5jdGlvbnMgYW5kIHZh cmlhYmxlcyBiZWNvbWUgbG9jYWwgZm9yIHRoZSB3aG9sZSBjb21iaW5lZCBjb21waWxhdGlv biB1bml0LCBub3QgZm9yIHRoZSBzaW5nbGUgc291cmNlIGZpbGUgaXRzZWxmLgouUHAKLkl0 IEZsIGZjcHJvcC1yZWdpc3RlcnMKQWZ0ZXIgcmVnaXN0ZXIgYWxsb2NhdGlvbiBhbmQgcG9z dC1yZWdpc3RlciBhbGxvY2F0aW9uIGluc3RydWN0aW9uIHNwbGl0dGluZywgd2UgcGVyZm9y bSBhIGNvcHktcHJvcGFnYXRpb24gcGFzcyB0byB0cnkgdG8gcmVkdWNlIHNjaGVkdWxpbmcg ZGVwZW5kZW5jaWVzIGFuZCBvY2Nhc2lvbmFsbHkgZWxpbWluYXRlIHRoZSBjb3B5LgouUHAK RW5hYmxlZCBhdCBsZXZlbHMKLkZsIE8gLAouRmwgTzIgLAouRmwgTzMgLAouRmwgXCZPcyAu Ci5QcAouSXQgRmwgZnByb2ZpbGUtZ2VuZXJhdGUKRW5hYmxlIG9wdGlvbnMgdXN1YWxseSB1 c2VkIGZvciBpbnN0cnVtZW50aW5nIGFwcGxpY2F0aW9uIHRvIHByb2R1Y2UgcHJvZmlsZSB1 c2VmdWwgZm9yIGxhdGVyIHJlY29tcGlsYXRpb24gd2l0aCBwcm9maWxlIGZlZWRiYWNrIGJh c2VkIG9wdGltaXphdGlvbi4KWW91IG11c3QgdXNlCi5GbCBmcHJvZmlsZS1nZW5lcmF0ZQpi b3RoIHdoZW4gY29tcGlsaW5nIGFuZCB3aGVuIGxpbmtpbmcgeW91ciBwcm9ncmFtLgouUHAK VGhlIGZvbGxvd2luZyBvcHRpb25zIGFyZSBlbmFibGVkOgouVmEgLWZwcm9maWxlLWFyY3Mg LAouVmEgLWZwcm9maWxlLXZhbHVlcyAsCi5WYSAtZnZwdCAuCi5QcAouSXQgRmwgZnByb2Zp bGUtdXNlCkVuYWJsZSBwcm9maWxlIGZlZWRiYWNrIGRpcmVjdGVkIG9wdGltaXphdGlvbnMs IGFuZCBvcHRpbWl6YXRpb25zIGdlbmVyYWxseSBwcm9maXRhYmxlIG9ubHkgd2l0aCBwcm9m aWxlIGZlZWRiYWNrIGF2YWlsYWJsZS4KLlBwClRoZSBmb2xsb3dpbmcgb3B0aW9ucyBhcmUg ZW5hYmxlZDoKLlZhIC1mYnJhbmNoLXByb2JhYmlsaXRpZXMgLAouVmEgLWZ2cHQgLAouVmEg LWZ1bnJvbGwtbG9vcHMgLAouVmEgLWZwZWVsLWxvb3BzICwKLlZhIC1mdHJhY2VyICwKLlZh IC1mbm8tbG9vcC1vcHRpbWl6ZSAuCi5QcAouRWwKVGhlIGZvbGxvd2luZyBvcHRpb25zIGNv bnRyb2wgY29tcGlsZXIgYmVoYXZpb3IgcmVnYXJkaW5nIGZsb2F0aW5nIHBvaW50IGFyaXRo bWV0aWMuClRoZXNlIG9wdGlvbnMgdHJhZGUgb2ZmIGJldHdlZW4gc3BlZWQgYW5kIGNvcnJl Y3RuZXNzLgpBbGwgbXVzdCBiZSBzcGVjaWZpY2FsbHkgZW5hYmxlZC4KLlBwCi5CbCAtdGFn IC13aWR0aCB4eAouSXQgRmwgZmZsb2F0LXN0b3JlCkRvIG5vdCBzdG9yZSBmbG9hdGluZyBw b2ludCB2YXJpYWJsZXMgaW4gcmVnaXN0ZXJzLCBhbmQgaW5oaWJpdCBvdGhlciBvcHRpb25z IHRoYXQgbWlnaHQgY2hhbmdlIHdoZXRoZXIgYSBmbG9hdGluZyBwb2ludCB2YWx1ZSBpcyB0 YWtlbiBmcm9tIGEgcmVnaXN0ZXIgb3IgbWVtb3J5LgouUHAKVGhpcyBvcHRpb24gcHJldmVu dHMgdW5kZXNpcmFibGUgZXhjZXNzIHByZWNpc2lvbiBvbiBtYWNoaW5lcyBzdWNoIGFzIHRo ZSA2ODAwMCB3aGVyZSB0aGUgZmxvYXRpbmcgcmVnaXN0ZXJzIChvZiB0aGUgNjg4ODEpIGtl ZXAgbW9yZSBwcmVjaXNpb24gdGhhbiBhCi5WYSBkb3VibGUKaXMgc3VwcG9zZWQgdG8gaGF2 ZS4KU2ltaWxhcmx5IGZvciB0aGUgeDg2IGFyY2hpdGVjdHVyZS4KRm9yIG1vc3QgcHJvZ3Jh bXMsIHRoZSBleGNlc3MgcHJlY2lzaW9uIGRvZXMgb25seSBnb29kLCBidXQgYSBmZXcgcHJv Z3JhbXMgcmVseSBvbiB0aGUgcHJlY2lzZSBkZWZpbml0aW9uIG9mIElFRUUgZmxvYXRpbmcg cG9pbnQuClVzZQouRmwgZmZsb2F0LXN0b3JlCmZvciBzdWNoIHByb2dyYW1zLCBhZnRlciBt b2RpZnlpbmcgdGhlbSB0byBzdG9yZSBhbGwgcGVydGluZW50IGludGVybWVkaWF0ZSBjb21w dXRhdGlvbnMgaW50byB2YXJpYWJsZXMuCi5QcAouSXQgRmwgZmZhc3QtbWF0aApTZXRzCi5G bCBmbm8tbWF0aC1lcnJubyAsCi5GbCBmdW5zYWZlLW1hdGgtb3B0aW1pemF0aW9ucyAsCi5G bCBmbm8tdHJhcHBpbmctbWF0aCAsCi5GbCBmZmluaXRlLW1hdGgtb25seSAsCi5GbCBmbm8t cm91bmRpbmctbWF0aCAsCi5GbCBmbm8tc2lnbmFsaW5nLW5hbnMKYW5kCi5TeSBmY3gtbGlt aXRlZC1yYW5nZSAuCi5QcApUaGlzIG9wdGlvbiBjYXVzZXMgdGhlIHByZXByb2Nlc3NvciBt YWNybwouVmEgX19GQVNUX01BVEhfXwp0byBiZSBkZWZpbmVkLgouUHAKVGhpcyBvcHRpb24g c2hvdWxkIG5ldmVyIGJlIHR1cm5lZCBvbiBieSBhbnkKLkZsIE8Kb3B0aW9uIHNpbmNlIGl0 IGNhbiByZXN1bHQgaW4gaW5jb3JyZWN0IG91dHB1dCBmb3IgcHJvZ3JhbXMgd2hpY2ggZGVw ZW5kIG9uIGFuIGV4YWN0IGltcGxlbWVudGF0aW9uIG9mIElFRUUgb3IgSVNPIHJ1bGVzL3Nw ZWNpZmljYXRpb25zIGZvciBtYXRoIGZ1bmN0aW9ucy4KLlBwCi5JdCBGbCBmbm8tbWF0aC1l cnJubwpEbyBub3Qgc2V0IEVSUk5PIGFmdGVyIGNhbGxpbmcgbWF0aCBmdW5jdGlvbnMgdGhh dCBhcmUgZXhlY3V0ZWQgd2l0aCBhIHNpbmdsZSBpbnN0cnVjdGlvbiwgZS5nLiwgc3FydC4K QSBwcm9ncmFtIHRoYXQgcmVsaWVzIG9uIElFRUUgZXhjZXB0aW9ucyBmb3IgbWF0aCBlcnJv ciBoYW5kbGluZyBtYXkgd2FudCB0byB1c2UgdGhpcyBmbGFnIGZvciBzcGVlZCB3aGlsZSBt YWludGFpbmluZyBJRUVFIGFyaXRobWV0aWMgY29tcGF0aWJpbGl0eS4KLlBwClRoaXMgb3B0 aW9uIHNob3VsZCBuZXZlciBiZSB0dXJuZWQgb24gYnkgYW55Ci5GbCBPCm9wdGlvbiBzaW5j ZSBpdCBjYW4gcmVzdWx0IGluIGluY29ycmVjdCBvdXRwdXQgZm9yIHByb2dyYW1zIHdoaWNo IGRlcGVuZCBvbiBhbiBleGFjdCBpbXBsZW1lbnRhdGlvbiBvZiBJRUVFIG9yIElTTyBydWxl cy9zcGVjaWZpY2F0aW9ucyBmb3IgbWF0aCBmdW5jdGlvbnMuCi5QcApUaGUgZGVmYXVsdCBp cwouRmwgZm1hdGgtZXJybm8gLgouUHAKT24gRGFyd2luIHN5c3RlbXMsIHRoZSBtYXRoIGxp YnJhcnkgbmV2ZXIgc2V0cwouVmEgZXJybm8gLgpUaGVyZSBpcyB0aGVyZWZvcmUgbm8gcmVh c29uIGZvciB0aGUgY29tcGlsZXIgdG8gY29uc2lkZXIgdGhlIHBvc3NpYmlsaXR5IHRoYXQg aXQgbWlnaHQsIGFuZAouRmwgZm5vLW1hdGgtZXJybm8KaXMgdGhlIGRlZmF1bHQuCi5QcAou SXQgRmwgZnVuc2FmZS1tYXRoLW9wdGltaXphdGlvbnMKQWxsb3cgb3B0aW1pemF0aW9ucyBm b3IgZmxvYXRpbmctcG9pbnQgYXJpdGhtZXRpYyB0aGF0IChhKSBhc3N1bWUgdGhhdCBhcmd1 bWVudHMgYW5kIHJlc3VsdHMgYXJlIHZhbGlkIGFuZCAoYikgbWF5IHZpb2xhdGUgSUVFRSBv ciBBTlNJIHN0YW5kYXJkcy4KV2hlbiB1c2VkIGF0IGxpbmstdGltZSwgaXQgbWF5IGluY2x1 ZGUgbGlicmFyaWVzIG9yIHN0YXJ0dXAgZmlsZXMgdGhhdCBjaGFuZ2UgdGhlIGRlZmF1bHQg RlBVIGNvbnRyb2wgd29yZCBvciBvdGhlciBzaW1pbGFyIG9wdGltaXphdGlvbnMuCi5QcApU aGlzIG9wdGlvbiBzaG91bGQgbmV2ZXIgYmUgdHVybmVkIG9uIGJ5IGFueQouRmwgTwpvcHRp b24gc2luY2UgaXQgY2FuIHJlc3VsdCBpbiBpbmNvcnJlY3Qgb3V0cHV0IGZvciBwcm9ncmFt cyB3aGljaCBkZXBlbmQgb24gYW4gZXhhY3QgaW1wbGVtZW50YXRpb24gb2YgSUVFRSBvciBJ U08gcnVsZXMvc3BlY2lmaWNhdGlvbnMgZm9yIG1hdGggZnVuY3Rpb25zLgouUHAKVGhlIGRl ZmF1bHQgaXMKLkZsIGZuby11bnNhZmUtbWF0aC1vcHRpbWl6YXRpb25zIC4KLlBwCi5JdCBG bCBmZmluaXRlLW1hdGgtb25seQpBbGxvdyBvcHRpbWl6YXRpb25zIGZvciBmbG9hdGluZy1w b2ludCBhcml0aG1ldGljIHRoYXQgYXNzdW1lIHRoYXQgYXJndW1lbnRzIGFuZCByZXN1bHRz IGFyZSBub3QgTmFOcyBvciArLUluZnMuCi5QcApUaGlzIG9wdGlvbiBzaG91bGQgbmV2ZXIg YmUgdHVybmVkIG9uIGJ5IGFueQouRmwgTwpvcHRpb24gc2luY2UgaXQgY2FuIHJlc3VsdCBp biBpbmNvcnJlY3Qgb3V0cHV0IGZvciBwcm9ncmFtcyB3aGljaCBkZXBlbmQgb24gYW4gZXhh Y3QgaW1wbGVtZW50YXRpb24gb2YgSUVFRSBvciBJU08gcnVsZXMvc3BlY2lmaWNhdGlvbnMu Ci5QcApUaGUgZGVmYXVsdCBpcwouRmwgZm5vLWZpbml0ZS1tYXRoLW9ubHkgLgouUHAKLkl0 IEZsIGZuby10cmFwcGluZy1tYXRoCkNvbXBpbGUgY29kZSBhc3N1bWluZyB0aGF0IGZsb2F0 aW5nLXBvaW50IG9wZXJhdGlvbnMgY2Fubm90IGdlbmVyYXRlIHVzZXItdmlzaWJsZSB0cmFw cy4KVGhlc2UgdHJhcHMgaW5jbHVkZSBkaXZpc2lvbiBieSB6ZXJvLCBvdmVyZmxvdywgdW5k ZXJmbG93LCBpbmV4YWN0IHJlc3VsdCBhbmQgaW52YWxpZCBvcGVyYXRpb24uClRoaXMgb3B0 aW9uIGltcGxpZXMKLkZsIGZuby1zaWduYWxpbmctbmFucyAuClNldHRpbmcgdGhpcyBvcHRp b24gbWF5IGFsbG93IGZhc3RlciBjb2RlIGlmIG9uZSByZWxpZXMgb24gIm5vbi1zdG9wIiBJ RUVFIGFyaXRobWV0aWMsIGZvciBleGFtcGxlLgouUHAKVGhpcyBvcHRpb24gc2hvdWxkIG5l dmVyIGJlIHR1cm5lZCBvbiBieSBhbnkKLkZsIE8Kb3B0aW9uIHNpbmNlIGl0IGNhbiByZXN1 bHQgaW4gaW5jb3JyZWN0IG91dHB1dCBmb3IgcHJvZ3JhbXMgd2hpY2ggZGVwZW5kIG9uIGFu IGV4YWN0IGltcGxlbWVudGF0aW9uIG9mIElFRUUgb3IgSVNPIHJ1bGVzL3NwZWNpZmljYXRp b25zIGZvciBtYXRoIGZ1bmN0aW9ucy4KLlBwClRoZSBkZWZhdWx0IGlzCi5GbCBmdHJhcHBp bmctbWF0aCAuCi5QcAouSXQgRmwgZnJvdW5kaW5nLW1hdGgKRGlzYWJsZSB0cmFuc2Zvcm1h dGlvbnMgYW5kIG9wdGltaXphdGlvbnMgdGhhdCBhc3N1bWUgZGVmYXVsdCBmbG9hdGluZyBw b2ludCByb3VuZGluZyBiZWhhdmlvci4KVGhpcyBpcyByb3VuZC10by16ZXJvIGZvciBhbGwg ZmxvYXRpbmcgcG9pbnQgdG8gaW50ZWdlciBjb252ZXJzaW9ucywgYW5kIHJvdW5kLXRvLW5l YXJlc3QgZm9yIGFsbCBvdGhlciBhcml0aG1ldGljIHRydW5jYXRpb25zLgpUaGlzIG9wdGlv biBzaG91bGQgYmUgc3BlY2lmaWVkIGZvciBwcm9ncmFtcyB0aGF0IGNoYW5nZSB0aGUgRlAg cm91bmRpbmcgbW9kZSBkeW5hbWljYWxseSwgb3IgdGhhdCBtYXkgYmUgZXhlY3V0ZWQgd2l0 aCBhIG5vbi1kZWZhdWx0IHJvdW5kaW5nIG1vZGUuClRoaXMgb3B0aW9uIGRpc2FibGVzIGNv bnN0YW50IGZvbGRpbmcgb2YgZmxvYXRpbmcgcG9pbnQgZXhwcmVzc2lvbnMgYXQgY29tcGls ZS10aW1lICh3aGljaCBtYXkgYmUgYWZmZWN0ZWQgYnkgcm91bmRpbmcgbW9kZSkgYW5kIGFy aXRobWV0aWMgdHJhbnNmb3JtYXRpb25zIHRoYXQgYXJlIHVuc2FmZSBpbiB0aGUgcHJlc2Vu Y2Ugb2Ygc2lnbi1kZXBlbmRlbnQgcm91bmRpbmcgbW9kZXMuCi5QcApUaGUgZGVmYXVsdCBp cwouRmwgZm5vLXJvdW5kaW5nLW1hdGggLgouUHAKVGhpcyBvcHRpb24gaXMgZXhwZXJpbWVu dGFsIGFuZCBkb2VzIG5vdCBjdXJyZW50bHkgZ3VhcmFudGVlIHRvIGRpc2FibGUgYWxsIEdD QyBvcHRpbWl6YXRpb25zIHRoYXQgYXJlIGFmZmVjdGVkIGJ5IHJvdW5kaW5nIG1vZGUuCkZ1 dHVyZSB2ZXJzaW9ucyBvZiBHQ0MgbWF5IHByb3ZpZGUgZmluZXIgY29udHJvbCBvZiB0aGlz IHNldHRpbmcgdXNpbmcgQzk5J3MKLlZhIEZFTlZfQUNDRVNTCnByYWdtYS4KVGhpcyBjb21t YW5kIGxpbmUgb3B0aW9uIHdpbGwgYmUgdXNlZCB0byBzcGVjaWZ5IHRoZSBkZWZhdWx0IHN0 YXRlIGZvcgouVmEgRkVOVl9BQ0NFU1MgLgouUHAKLkl0IEZsIGZzaWduYWxpbmctbmFucwpD b21waWxlIGNvZGUgYXNzdW1pbmcgdGhhdCBJRUVFIHNpZ25hbGluZyBOYU5zIG1heSBnZW5l cmF0ZSB1c2VyLXZpc2libGUgdHJhcHMgZHVyaW5nIGZsb2F0aW5nLXBvaW50IG9wZXJhdGlv bnMuClNldHRpbmcgdGhpcyBvcHRpb24gZGlzYWJsZXMgb3B0aW1pemF0aW9ucyB0aGF0IG1h eSBjaGFuZ2UgdGhlIG51bWJlciBvZiBleGNlcHRpb25zIHZpc2libGUgd2l0aCBzaWduYWxp bmcgTmFOcy4KVGhpcyBvcHRpb24gaW1wbGllcwouRmwgZnRyYXBwaW5nLW1hdGggLgouUHAK VGhpcyBvcHRpb24gY2F1c2VzIHRoZSBwcmVwcm9jZXNzb3IgbWFjcm8KLlZhIF9fU1VQUE9S VF9TTkFOX18KdG8gYmUgZGVmaW5lZC4KLlBwClRoZSBkZWZhdWx0IGlzCi5GbCBmbm8tc2ln bmFsaW5nLW5hbnMgLgouUHAKVGhpcyBvcHRpb24gaXMgZXhwZXJpbWVudGFsIGFuZCBkb2Vz IG5vdCBjdXJyZW50bHkgZ3VhcmFudGVlIHRvIGRpc2FibGUgYWxsIEdDQyBvcHRpbWl6YXRp b25zIHRoYXQgYWZmZWN0IHNpZ25hbGluZyBOYU4gYmVoYXZpb3IuCi5QcAouSXQgRmwgZnNp bmdsZS1wcmVjaXNpb24tY29uc3RhbnQKVHJlYXQgZmxvYXRpbmcgcG9pbnQgY29uc3RhbnQg YXMgc2luZ2xlIHByZWNpc2lvbiBjb25zdGFudCBpbnN0ZWFkIG9mIGltcGxpY2l0bHkgY29u dmVydGluZyBpdCB0byBkb3VibGUgcHJlY2lzaW9uIGNvbnN0YW50LgouUHAKLkl0IEZsIGZj eC1saW1pdGVkLXJhbmdlCldoZW4gZW5hYmxlZCwgdGhpcyBvcHRpb24gc3RhdGVzIHRoYXQg YSByYW5nZSByZWR1Y3Rpb24gc3RlcCBpcyBub3QgbmVlZGVkIHdoZW4gcGVyZm9ybWluZyBj b21wbGV4IGRpdmlzaW9uLgpUaGUgZGVmYXVsdCBpcwouRmwgZm5vLWN4LWxpbWl0ZWQtcmFu Z2UgLApidXQgaXMgZW5hYmxlZCBieQouRmwgZmZhc3QtbWF0aCAuCi5QcApUaGlzIG9wdGlv biBjb250cm9scyB0aGUgZGVmYXVsdCBzZXR0aW5nIG9mIHRoZSBJU08gQzk5Ci5WYSBDWF9M SU1JVEVEX1JBTkdFCnByYWdtYS4KTmV2ZXJ0aGVsZXNzLCB0aGUgb3B0aW9uIGFwcGxpZXMg dG8gYWxsIGxhbmd1YWdlcy4KLlBwCi5FbApUaGUgZm9sbG93aW5nIG9wdGlvbnMgY29udHJv bCBvcHRpbWl6YXRpb25zIHRoYXQgbWF5IGltcHJvdmUgcGVyZm9ybWFuY2UsIGJ1dCBhcmUg bm90IGVuYWJsZWQgYnkgYW55Ci5GbCBPCm9wdGlvbnMuClRoaXMgc2VjdGlvbiBpbmNsdWRl cyBleHBlcmltZW50YWwgb3B0aW9ucyB0aGF0IG1heSBwcm9kdWNlIGJyb2tlbiBjb2RlLgou UHAKLkJsIC10YWcgLXdpZHRoIHh4Ci5JdCBGbCBmYnJhbmNoLXByb2JhYmlsaXRpZXMKQWZ0 ZXIgcnVubmluZyBhIHByb2dyYW0gY29tcGlsZWQgd2l0aAouRmwgZnByb2ZpbGUtYXJjcyAs CnlvdSBjYW4gY29tcGlsZSBpdCBhIHNlY29uZCB0aW1lIHVzaW5nCi5GbCBmYnJhbmNoLXBy b2JhYmlsaXRpZXMgLAp0byBpbXByb3ZlIG9wdGltaXphdGlvbnMgYmFzZWQgb24gdGhlIG51 bWJlciBvZiB0aW1lcyBlYWNoIGJyYW5jaCB3YXMgdGFrZW4uCldoZW4gdGhlIHByb2dyYW0g Y29tcGlsZWQgd2l0aAouRmwgZnByb2ZpbGUtYXJjcwpleGl0cyBpdCBzYXZlcyBhcmMgZXhl Y3V0aW9uIGNvdW50cyB0byBhIGZpbGUgY2FsbGVkCi5QYSBzb3VyY2VuYW1lLmdjZGEKZm9y IGVhY2ggc291cmNlIGZpbGUgVGhlIGluZm9ybWF0aW9uIGluIHRoaXMgZGF0YSBmaWxlIGlz IHZlcnkgZGVwZW5kZW50IG9uIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIGdlbmVyYXRlZCBjb2Rl LCBzbyB5b3UgbXVzdCB1c2UgdGhlIHNhbWUgc291cmNlIGNvZGUgYW5kIHRoZSBzYW1lIG9w dGltaXphdGlvbiBvcHRpb25zIGZvciBib3RoIGNvbXBpbGF0aW9ucy4KLlBwCldpdGgKLkZs IGZicmFuY2gtcHJvYmFiaWxpdGllcyAsCkdDQyBwdXRzIGEKLlN5IFJFR19CUl9QUk9CCm5v dGUgb24gZWFjaAouU3kgSlVNUF9JTlNOCmFuZAouU3kgQ0FMTF9JTlNOIC4KVGhlc2UgY2Fu IGJlIHVzZWQgdG8gaW1wcm92ZSBvcHRpbWl6YXRpb24uCkN1cnJlbnRseSwgdGhleSBhcmUg b25seSB1c2VkIGluIG9uZSBwbGFjZTogaW4KLlBhIHJlb3JnLmMgLAppbnN0ZWFkIG9mIGd1 ZXNzaW5nIHdoaWNoIHBhdGggYSBicmFuY2ggaXMgbW9zdGx5IHRvIHRha2UsIHRoZQouU3kg UkVHX0JSX1BST0IKdmFsdWVzIGFyZSB1c2VkIHRvIGV4YWN0bHkgZGV0ZXJtaW5lIHdoaWNo IHBhdGggaXMgdGFrZW4gbW9yZSBvZnRlbi4KLlBwCi5JdCBGbCBmcHJvZmlsZS12YWx1ZXMK SWYgY29tYmluZWQgd2l0aAouRmwgZnByb2ZpbGUtYXJjcyAsCml0IGFkZHMgY29kZSBzbyB0 aGF0IHNvbWUgZGF0YSBhYm91dCB2YWx1ZXMgb2YgZXhwcmVzc2lvbnMgaW4gdGhlIHByb2dy YW0gaXMgZ2F0aGVyZWQuCi5QcApXaXRoCi5GbCBmYnJhbmNoLXByb2JhYmlsaXRpZXMgLApp dCByZWFkcyBiYWNrIHRoZSBkYXRhIGdhdGhlcmVkIGZyb20gcHJvZmlsaW5nIHZhbHVlcyBv ZiBleHByZXNzaW9ucyBhbmQgYWRkcwouU3kgUkVHX1ZBTFVFX1BST0ZJTEUKbm90ZXMgdG8g aW5zdHJ1Y3Rpb25zIGZvciB0aGVpciBsYXRlciB1c2FnZSBpbiBvcHRpbWl6YXRpb25zLgou UHAKRW5hYmxlZCB3aXRoCi5GbCBmcHJvZmlsZS1nZW5lcmF0ZQphbmQKLkZsIGZwcm9maWxl LXVzZSAuCi5QcAouSXQgRmwgZnZwdApJZiBjb21iaW5lZCB3aXRoCi5GbCBmcHJvZmlsZS1h cmNzICwKaXQgaW5zdHJ1Y3RzIHRoZSBjb21waWxlciB0byBhZGQgYSBjb2RlIHRvIGdhdGhl ciBpbmZvcm1hdGlvbiBhYm91dCB2YWx1ZXMgb2YgZXhwcmVzc2lvbnMuCi5QcApXaXRoCi5G bCBmYnJhbmNoLXByb2JhYmlsaXRpZXMgLAppdCByZWFkcyBiYWNrIHRoZSBkYXRhIGdhdGhl cmVkIGFuZCBhY3R1YWxseSBwZXJmb3JtcyB0aGUgb3B0aW1pemF0aW9ucyBiYXNlZCBvbiB0 aGVtLgpDdXJyZW50bHkgdGhlIG9wdGltaXphdGlvbnMgaW5jbHVkZSBzcGVjaWFsaXphdGlv biBvZiBkaXZpc2lvbiBvcGVyYXRpb24gdXNpbmcgdGhlIGtub3dsZWRnZSBhYm91dCB0aGUg dmFsdWUgb2YgdGhlIGRlbm9taW5hdG9yLgouUHAKLkl0IEZsIGZyZW5hbWUtcmVnaXN0ZXJz CkF0dGVtcHQgdG8gYXZvaWQgZmFsc2UgZGVwZW5kZW5jaWVzIGluIHNjaGVkdWxlZCBjb2Rl IGJ5IG1ha2luZyB1c2Ugb2YgcmVnaXN0ZXJzIGxlZnQgb3ZlciBhZnRlciByZWdpc3RlciBh bGxvY2F0aW9uLgpUaGlzIG9wdGltaXphdGlvbiB3aWxsIG1vc3QgYmVuZWZpdCBwcm9jZXNz b3JzIHdpdGggbG90cyBvZiByZWdpc3RlcnMuCkRlcGVuZGluZyBvbiB0aGUgZGVidWcgaW5m b3JtYXRpb24gZm9ybWF0IGFkb3B0ZWQgYnkgdGhlIHRhcmdldCwgaG93ZXZlciwgaXQgY2Fu IG1ha2UgZGVidWdnaW5nIGltcG9zc2libGUsIHNpbmNlIHZhcmlhYmxlcyB3aWxsIG5vIGxv bmdlciBzdGF5IGluIGEgImhvbWUgcmVnaXN0ZXIiLgouUHAKRW5hYmxlZCBieSBkZWZhdWx0 IHdpdGgKLkZsIGZ1bnJvbGwtbG9vcHMgLgouUHAKLkl0IEZsIGZ0cmFjZXIKUGVyZm9ybSB0 YWlsIGR1cGxpY2F0aW9uIHRvIGVubGFyZ2Ugc3VwZXJibG9jayBzaXplLgpUaGlzIHRyYW5z Zm9ybWF0aW9uIHNpbXBsaWZpZXMgdGhlIGNvbnRyb2wgZmxvdyBvZiB0aGUgZnVuY3Rpb24g YWxsb3dpbmcgb3RoZXIgb3B0aW1pemF0aW9ucyB0byBkbyBiZXR0ZXIgam9iLgouUHAKRW5h YmxlZCB3aXRoCi5GbCBmcHJvZmlsZS11c2UgLgouUHAKLkl0IEZsIGZ1bnJvbGwtbG9vcHMK VW5yb2xsIGxvb3BzIHdob3NlIG51bWJlciBvZiBpdGVyYXRpb25zIGNhbiBiZSBkZXRlcm1p bmVkIGF0IGNvbXBpbGUgdGltZSBvciB1cG9uIGVudHJ5IHRvIHRoZSBsb29wLgouRmwgZnVu cm9sbC1sb29wcwppbXBsaWVzCi5GbCBmcmVydW4tY3NlLWFmdGVyLWxvb3AgLAouRmwgZndl YgphbmQKLkZsIGZyZW5hbWUtcmVnaXN0ZXJzIC4KSXQgYWxzbyB0dXJucyBvbiBjb21wbGV0 ZSBsb29wIHBlZWxpbmcgKGkuZS4gY29tcGxldGUgcmVtb3ZhbCBvZiBsb29wcyB3aXRoIHNt YWxsIGNvbnN0YW50IG51bWJlciBvZiBpdGVyYXRpb25zKS4KVGhpcyBvcHRpb24gbWFrZXMg Y29kZSBsYXJnZXIsIGFuZCBtYXkgb3IgbWF5IG5vdCBtYWtlIGl0IHJ1biBmYXN0ZXIuCi5Q cApFbmFibGVkIHdpdGgKLkZsIGZwcm9maWxlLXVzZSAuCi5QcAouSXQgRmwgZnVucm9sbC1h bGwtbG9vcHMKVW5yb2xsIGFsbCBsb29wcywgZXZlbiBpZiB0aGVpciBudW1iZXIgb2YgaXRl cmF0aW9ucyBpcyB1bmNlcnRhaW4gd2hlbiB0aGUgbG9vcCBpcyBlbnRlcmVkLgpUaGlzIHVz dWFsbHkgbWFrZXMgcHJvZ3JhbXMgcnVuIG1vcmUgc2xvd2x5LgouRmwgZnVucm9sbC1hbGwt bG9vcHMKaW1wbGllcyB0aGUgc2FtZSBvcHRpb25zIGFzCi5GbCBmdW5yb2xsLWxvb3BzIC4K LlBwCi5JdCBGbCBmcGVlbC1sb29wcwpQZWVscyB0aGUgbG9vcHMgZm9yIHRoYXQgdGhlcmUg aXMgZW5vdWdoIGluZm9ybWF0aW9uIHRoYXQgdGhleSBkbyBub3Qgcm9sbCBtdWNoIChmcm9t IHByb2ZpbGUgZmVlZGJhY2spLgpJdCBhbHNvIHR1cm5zIG9uIGNvbXBsZXRlIGxvb3AgcGVl bGluZyAoaS5lLiBjb21wbGV0ZSByZW1vdmFsIG9mIGxvb3BzIHdpdGggc21hbGwgY29uc3Rh bnQgbnVtYmVyIG9mIGl0ZXJhdGlvbnMpLgouUHAKRW5hYmxlZCB3aXRoCi5GbCBmcHJvZmls ZS11c2UgLgouUHAKLkl0IEZsIGZtb3ZlLWxvb3AtaW52YXJpYW50cwpFbmFibGVzIHRoZSBs b29wIGludmFyaWFudCBtb3Rpb24gcGFzcyBpbiB0aGUgbmV3IGxvb3Agb3B0aW1pemVyLgpF bmFibGVkIGF0IGxldmVsCi5GbCBPMQouUHAKLkl0IEZsIGZ1bnN3aXRjaC1sb29wcwpNb3Zl IGJyYW5jaGVzIHdpdGggbG9vcCBpbnZhcmlhbnQgY29uZGl0aW9ucyBvdXQgb2YgdGhlIGxv b3AsIHdpdGggZHVwbGljYXRlcyBvZiB0aGUgbG9vcCBvbiBib3RoIGJyYW5jaGVzIChtb2Rp ZmllZCBhY2NvcmRpbmcgdG8gcmVzdWx0IG9mIHRoZSBjb25kaXRpb24pLgouUHAKLkl0IEZs IGZwcmVmZXRjaC1sb29wLWFycmF5cwpJZiBzdXBwb3J0ZWQgYnkgdGhlIHRhcmdldCBtYWNo aW5lLCBnZW5lcmF0ZSBpbnN0cnVjdGlvbnMgdG8gcHJlZmV0Y2ggbWVtb3J5IHRvIGltcHJv dmUgdGhlIHBlcmZvcm1hbmNlIG9mIGxvb3BzIHRoYXQgYWNjZXNzIGxhcmdlIGFycmF5cy4K LlBwCkRpc2FibGVkIGF0IGxldmVsCi5GbCBcJk9zIC4KLlBwCi5JdCBGbCBmZnVuY3Rpb24t c2VjdGlvbnMKLkl0IEZsIGZkYXRhLXNlY3Rpb25zClBsYWNlIGVhY2ggZnVuY3Rpb24gb3Ig ZGF0YSBpdGVtIGludG8gaXRzIG93biBzZWN0aW9uIGluIHRoZSBvdXRwdXQgZmlsZSBpZiB0 aGUgdGFyZ2V0IHN1cHBvcnRzIGFyYml0cmFyeSBzZWN0aW9ucy4KVGhlIG5hbWUgb2YgdGhl IGZ1bmN0aW9uIG9yIHRoZSBuYW1lIG9mIHRoZSBkYXRhIGl0ZW0gZGV0ZXJtaW5lcyB0aGUg c2VjdGlvbidzIG5hbWUgaW4gdGhlIG91dHB1dCBmaWxlLgouUHAKVXNlIHRoZXNlIG9wdGlv bnMgb24gc3lzdGVtcyB3aGVyZSB0aGUgbGlua2VyIGNhbiBwZXJmb3JtIG9wdGltaXphdGlv bnMgdG8gaW1wcm92ZSBsb2NhbGl0eSBvZiByZWZlcmVuY2UgaW4gdGhlIGluc3RydWN0aW9u IHNwYWNlLgpNb3N0IHN5c3RlbXMgdXNpbmcgdGhlIEVMRiBvYmplY3QgZm9ybWF0IGFuZCBT UEFSQyBwcm9jZXNzb3JzIHJ1bm5pbmcgU29sYXJpcyAyIGhhdmUgbGlua2VycyB3aXRoIHN1 Y2ggb3B0aW1pemF0aW9ucy4KQUlYIG1heSBoYXZlIHRoZXNlIG9wdGltaXphdGlvbnMgaW4g dGhlIGZ1dHVyZS4KLlBwCk9ubHkgdXNlIHRoZXNlIG9wdGlvbnMgd2hlbiB0aGVyZSBhcmUg c2lnbmlmaWNhbnQgYmVuZWZpdHMgZnJvbSBkb2luZyBzby4KV2hlbiB5b3Ugc3BlY2lmeSB0 aGVzZSBvcHRpb25zLCB0aGUgYXNzZW1ibGVyIGFuZCBsaW5rZXIgd2lsbCBjcmVhdGUgbGFy Z2VyIG9iamVjdCBhbmQgZXhlY3V0YWJsZSBmaWxlcyBhbmQgd2lsbCBhbHNvIGJlIHNsb3dl ci4KWW91IHdpbGwgbm90IGJlIGFibGUgdG8gdXNlCi5WYSBncHJvZgpvbiBhbGwgc3lzdGVt cyBpZiB5b3Ugc3BlY2lmeSB0aGlzIG9wdGlvbiBhbmQgeW91IG1heSBoYXZlIHByb2JsZW1z IHdpdGggZGVidWdnaW5nIGlmIHlvdSBzcGVjaWZ5IGJvdGggdGhpcyBvcHRpb24gYW5kCi5G bCBnIC4KLlBwCi5JdCBGbCBmYnJhbmNoLXRhcmdldC1sb2FkLW9wdGltaXplClBlcmZvcm0g YnJhbmNoIHRhcmdldCByZWdpc3RlciBsb2FkIG9wdGltaXphdGlvbiBiZWZvcmUgcHJvbG9n dWUgLyBlcGlsb2d1ZSB0aHJlYWRpbmcuClRoZSB1c2Ugb2YgdGFyZ2V0IHJlZ2lzdGVycyBj YW4gdHlwaWNhbGx5IGJlIGV4cG9zZWQgb25seSBkdXJpbmcgcmVsb2FkLCB0aHVzIGhvaXN0 aW5nIGxvYWRzIG91dCBvZiBsb29wcyBhbmQgZG9pbmcgaW50ZXItYmxvY2sgc2NoZWR1bGlu ZyBuZWVkcyBhIHNlcGFyYXRlIG9wdGltaXphdGlvbiBwYXNzLgouUHAKLkl0IEZsIGZicmFu Y2gtdGFyZ2V0LWxvYWQtb3B0aW1pemUyClBlcmZvcm0gYnJhbmNoIHRhcmdldCByZWdpc3Rl ciBsb2FkIG9wdGltaXphdGlvbiBhZnRlciBwcm9sb2d1ZSAvIGVwaWxvZ3VlIHRocmVhZGlu Zy4KLlBwCi5JdCBGbCBmYnRyLWJiLWV4Y2x1c2l2ZQpXaGVuIHBlcmZvcm1pbmcgYnJhbmNo IHRhcmdldCByZWdpc3RlciBsb2FkIG9wdGltaXphdGlvbiwgZG9uJ3QgcmV1c2UgYnJhbmNo IHRhcmdldCByZWdpc3RlcnMgaW4gd2l0aGluIGFueSBiYXNpYyBibG9jay4KLlBwCi5JdCBG bCBmc3RhY2stcHJvdGVjdG9yCkVtaXQgZXh0cmEgY29kZSB0byBjaGVjayBmb3IgYnVmZmVy IG92ZXJmbG93cywgc3VjaCBhcyBzdGFjayBzbWFzaGluZyBhdHRhY2tzLgpUaGlzIGlzIGRv bmUgYnkgYWRkaW5nIGEgZ3VhcmQgdmFyaWFibGUgdG8gZnVuY3Rpb25zIHdpdGggdnVsbmVy YWJsZSBvYmplY3RzLgpUaGlzIGluY2x1ZGVzIGZ1bmN0aW9ucyB0aGF0IGNhbGwgYWxsb2Nh LCBhbmQgZnVuY3Rpb25zIHdpdGggYnVmZmVycyBsYXJnZXIgdGhhbiA4IGJ5dGVzLgpUaGUg Z3VhcmRzIGFyZSBpbml0aWFsaXplZCB3aGVuIGEgZnVuY3Rpb24gaXMgZW50ZXJlZCBhbmQg dGhlbiBjaGVja2VkIHdoZW4gdGhlIGZ1bmN0aW9uIGV4aXRzLgpJZiBhIGd1YXJkIGNoZWNr IGZhaWxzLCBhbiBlcnJvciBtZXNzYWdlIGlzIHByaW50ZWQgYW5kIHRoZSBwcm9ncmFtIGV4 aXRzLgouUHAKLkl0IEZsIGZzdGFjay1wcm90ZWN0b3ItYWxsCkxpa2UKLkZsIGZzdGFjay1w cm90ZWN0b3IKZXhjZXB0IHRoYXQgYWxsIGZ1bmN0aW9ucyBhcmUgcHJvdGVjdGVkLgouUHAK Lkl0IEZsIC1wYXJhbSBBciBuYW1lIE5zID0gTnMgQXIgdmFsdWUKSW4gc29tZSBwbGFjZXMs IEdDQyB1c2VzIHZhcmlvdXMgY29uc3RhbnRzIHRvIGNvbnRyb2wgdGhlIGFtb3VudCBvZiBv cHRpbWl6YXRpb24gdGhhdCBpcyBkb25lLgpGb3IgZXhhbXBsZSwgR0NDIHdpbGwgbm90IGlu bGluZSBmdW5jdGlvbnMgdGhhdCBjb250YWluIG1vcmUgdGhhdCBhIGNlcnRhaW4gbnVtYmVy IG9mIGluc3RydWN0aW9ucy4KWW91IGNhbiBjb250cm9sIHNvbWUgb2YgdGhlc2UgY29uc3Rh bnRzIG9uIHRoZSBjb21tYW5kLWxpbmUgdXNpbmcgdGhlCi5GbCAtcGFyYW0Kb3B0aW9uLgou UHAKVGhlIG5hbWVzIG9mIHNwZWNpZmljIHBhcmFtZXRlcnMsIGFuZCB0aGUgbWVhbmluZyBv ZiB0aGUgdmFsdWVzLCBhcmUgdGllZCB0byB0aGUgaW50ZXJuYWxzIG9mIHRoZSBjb21waWxl ciwgYW5kIGFyZSBzdWJqZWN0IHRvIGNoYW5nZSB3aXRob3V0IG5vdGljZSBpbiBmdXR1cmUg cmVsZWFzZXMuCi5QcApJbiBlYWNoIGNhc2UsIHRoZQouRW0gdmFsdWUKaXMgYW4gaW50ZWdl ci4KVGhlIGFsbG93YWJsZSBjaG9pY2VzIGZvcgouRW0gbmFtZQphcmUgZ2l2ZW4gaW4gdGhl IGZvbGxvd2luZyB0YWJsZToKLlBwCi5CbCAtdGFnIC13aWR0aCB4eAouSXQgU3kgc2FsaWFz LW1heC1pbXBsaWNpdC1maWVsZHMgTnMKVGhlIG1heGltdW0gbnVtYmVyIG9mIGZpZWxkcyBp biBhIHZhcmlhYmxlIHdpdGhvdXQgZGlyZWN0IHN0cnVjdHVyZSBhY2Nlc3NlcyBmb3Igd2hp Y2ggc3RydWN0dXJlIGFsaWFzaW5nIHdpbGwgY29uc2lkZXIgdHJ5aW5nIHRvIHRyYWNrIGVh Y2ggZmllbGQuClRoZSBkZWZhdWx0IGlzIDUKLlBwCi5JdCBTeSBzcmEtbWF4LXN0cnVjdHVy ZS1zaXplIE5zClRoZSBtYXhpbXVtIHN0cnVjdHVyZSBzaXplLCBpbiBieXRlcywgYXQgd2hp Y2ggdGhlIHNjYWxhciByZXBsYWNlbWVudCBvZiBhZ2dyZWdhdGVzIChTUkEpIG9wdGltaXph dGlvbiB3aWxsIHBlcmZvcm0gYmxvY2sgY29waWVzLgpUaGUgZGVmYXVsdCB2YWx1ZSwgMCwg aW1wbGllcyB0aGF0IEdDQyB3aWxsIHNlbGVjdCB0aGUgbW9zdCBhcHByb3ByaWF0ZSBzaXpl IGl0c2VsZi4KLlBwCi5JdCBTeSBzcmEtZmllbGQtc3RydWN0dXJlLXJhdGlvIE5zClRoZSB0 aHJlc2hvbGQgcmF0aW8gKGFzIGEgcGVyY2VudGFnZSkgYmV0d2VlbiBpbnN0YW50aWF0ZWQg ZmllbGRzIGFuZCB0aGUgY29tcGxldGUgc3RydWN0dXJlIHNpemUuCldlIHNheSB0aGF0IGlm IHRoZSByYXRpbyBvZiB0aGUgbnVtYmVyIG9mIGJ5dGVzIGluIGluc3RhbnRpYXRlZCBmaWVs ZHMgdG8gdGhlIG51bWJlciBvZiBieXRlcyBpbiB0aGUgY29tcGxldGUgc3RydWN0dXJlIGV4 Y2VlZHMgdGhpcyBwYXJhbWV0ZXIsIHRoZW4gYmxvY2sgY29waWVzIGFyZSBub3QgdXNlZC4K VGhlIGRlZmF1bHQgaXMgNzUuCi5QcAouSXQgU3kgbWF4LWNyb3NzanVtcC1lZGdlcyBOcwpU aGUgbWF4aW11bSBudW1iZXIgb2YgaW5jb21pbmcgZWRnZXMgdG8gY29uc2lkZXIgZm9yIGNy b3NzanVtcGluZy4KVGhlIGFsZ29yaXRobSB1c2VkIGJ5Ci5GbCBmY3Jvc3NqdW1waW5nCmlz IE8oTl4yKSBpbiB0aGUgbnVtYmVyIG9mIGVkZ2VzIGluY29taW5nIHRvIGVhY2ggYmxvY2su CkluY3JlYXNpbmcgdmFsdWVzIG1lYW4gbW9yZSBhZ2dyZXNzaXZlIG9wdGltaXphdGlvbiwg bWFraW5nIHRoZSBjb21waWxlIHRpbWUgaW5jcmVhc2Ugd2l0aCBwcm9iYWJseSBzbWFsbCBp bXByb3ZlbWVudCBpbiBleGVjdXRhYmxlIHNpemUuCi5QcAouSXQgU3kgbWluLWNyb3NzanVt cC1pbnNucyBOcwpUaGUgbWluaW11bSBudW1iZXIgb2YgaW5zdHJ1Y3Rpb25zIHdoaWNoIG11 c3QgYmUgbWF0Y2hlZCBhdCB0aGUgZW5kIG9mIHR3byBibG9ja3MgYmVmb3JlIGNyb3NzanVt cGluZyB3aWxsIGJlIHBlcmZvcm1lZCBvbiB0aGVtLgpUaGlzIHZhbHVlIGlzIGlnbm9yZWQg aW4gdGhlIGNhc2Ugd2hlcmUgYWxsIGluc3RydWN0aW9ucyBpbiB0aGUgYmxvY2sgYmVpbmcg Y3Jvc3NqdW1wZWQgZnJvbSBhcmUgbWF0Y2hlZC4KVGhlIGRlZmF1bHQgdmFsdWUgaXMgNS4K LlBwCi5JdCBTeSBtYXgtZ3Jvdy1jb3B5LWJiLWluc25zIE5zClRoZSBtYXhpbXVtIGNvZGUg c2l6ZSBleHBhbnNpb24gZmFjdG9yIHdoZW4gY29weWluZyBiYXNpYyBibG9ja3MgaW5zdGVh ZCBvZiBqdW1waW5nLgpUaGUgZXhwYW5zaW9uIGlzIHJlbGF0aXZlIHRvIGEganVtcCBpbnN0 cnVjdGlvbi4KVGhlIGRlZmF1bHQgdmFsdWUgaXMgOC4KLlBwCi5JdCBTeSBtYXgtZ290by1k dXBsaWNhdGlvbi1pbnNucyBOcwpUaGUgbWF4aW11bSBudW1iZXIgb2YgaW5zdHJ1Y3Rpb25z IHRvIGR1cGxpY2F0ZSB0byBhIGJsb2NrIHRoYXQganVtcHMgdG8gYSBjb21wdXRlZCBnb3Rv LgpUbyBhdm9pZCBPKE5eMikgYmVoYXZpb3IgaW4gYSBudW1iZXIgb2YgcGFzc2VzLCBHQ0Mg ZmFjdG9ycyBjb21wdXRlZCBnb3RvcyBlYXJseSBpbiB0aGUgY29tcGlsYXRpb24gcHJvY2Vz cywgYW5kIHVuZmFjdG9ycyB0aGVtIGFzIGxhdGUgYXMgcG9zc2libGUuCk9ubHkgY29tcHV0 ZWQganVtcHMgYXQgdGhlIGVuZCBvZiBhIGJhc2ljIGJsb2NrcyB3aXRoIG5vIG1vcmUgdGhh biBtYXgtZ290by1kdXBsaWNhdGlvbi1pbnNucyBhcmUgdW5mYWN0b3JlZC4KVGhlIGRlZmF1 bHQgdmFsdWUgaXMgOC4KLlBwCi5JdCBTeSBtYXgtZGVsYXktc2xvdC1pbnNuLXNlYXJjaCBO cwpUaGUgbWF4aW11bSBudW1iZXIgb2YgaW5zdHJ1Y3Rpb25zIHRvIGNvbnNpZGVyIHdoZW4g bG9va2luZyBmb3IgYW4gaW5zdHJ1Y3Rpb24gdG8gZmlsbCBhIGRlbGF5IHNsb3QuCklmIG1v cmUgdGhhbiB0aGlzIGFyYml0cmFyeSBudW1iZXIgb2YgaW5zdHJ1Y3Rpb25zIGlzIHNlYXJj aGVkLCB0aGUgdGltZSBzYXZpbmdzIGZyb20gZmlsbGluZyB0aGUgZGVsYXkgc2xvdCB3aWxs IGJlIG1pbmltYWwgc28gc3RvcCBzZWFyY2hpbmcuCkluY3JlYXNpbmcgdmFsdWVzIG1lYW4g bW9yZSBhZ2dyZXNzaXZlIG9wdGltaXphdGlvbiwgbWFraW5nIHRoZSBjb21waWxlIHRpbWUg aW5jcmVhc2Ugd2l0aCBwcm9iYWJseSBzbWFsbCBpbXByb3ZlbWVudCBpbiBleGVjdXRhYmxl IHJ1biB0aW1lLgouUHAKLkl0IFN5IG1heC1kZWxheS1zbG90LWxpdmUtc2VhcmNoIE5zCldo ZW4gdHJ5aW5nIHRvIGZpbGwgZGVsYXkgc2xvdHMsIHRoZSBtYXhpbXVtIG51bWJlciBvZiBp bnN0cnVjdGlvbnMgdG8gY29uc2lkZXIgd2hlbiBzZWFyY2hpbmcgZm9yIGEgYmxvY2sgd2l0 aCB2YWxpZCBsaXZlIHJlZ2lzdGVyIGluZm9ybWF0aW9uLgpJbmNyZWFzaW5nIHRoaXMgYXJi aXRyYXJpbHkgY2hvc2VuIHZhbHVlIG1lYW5zIG1vcmUgYWdncmVzc2l2ZSBvcHRpbWl6YXRp b24sIGluY3JlYXNpbmcgdGhlIGNvbXBpbGUgdGltZS4KVGhpcyBwYXJhbWV0ZXIgc2hvdWxk IGJlIHJlbW92ZWQgd2hlbiB0aGUgZGVsYXkgc2xvdCBjb2RlIGlzIHJld3JpdHRlbiB0byBt YWludGFpbiB0aGUgY29udHJvbC1mbG93IGdyYXBoLgouUHAKLkl0IFN5IG1heC1nY3NlLW1l bW9yeSBOcwpUaGUgYXBwcm94aW1hdGUgbWF4aW11bSBhbW91bnQgb2YgbWVtb3J5IHRoYXQg d2lsbCBiZSBhbGxvY2F0ZWQgaW4gb3JkZXIgdG8gcGVyZm9ybSB0aGUgZ2xvYmFsIGNvbW1v biBzdWJleHByZXNzaW9uIGVsaW1pbmF0aW9uIG9wdGltaXphdGlvbi4KSWYgbW9yZSBtZW1v cnkgdGhhbiBzcGVjaWZpZWQgaXMgcmVxdWlyZWQsIHRoZSBvcHRpbWl6YXRpb24gd2lsbCBu b3QgYmUgZG9uZS4KLlBwCi5JdCBTeSBtYXgtZ2NzZS1wYXNzZXMgTnMKVGhlIG1heGltdW0g bnVtYmVyIG9mIHBhc3NlcyBvZiBHQ1NFIHRvIHJ1bi4KVGhlIGRlZmF1bHQgaXMgMS4KLlBw Ci5JdCBTeSBtYXgtcGVuZGluZy1saXN0LWxlbmd0aCBOcwpUaGUgbWF4aW11bSBudW1iZXIg b2YgcGVuZGluZyBkZXBlbmRlbmNpZXMgc2NoZWR1bGluZyB3aWxsIGFsbG93IGJlZm9yZSBm bHVzaGluZyB0aGUgY3VycmVudCBzdGF0ZSBhbmQgc3RhcnRpbmcgb3Zlci4KTGFyZ2UgZnVu Y3Rpb25zIHdpdGggZmV3IGJyYW5jaGVzIG9yIGNhbGxzIGNhbiBjcmVhdGUgZXhjZXNzaXZl bHkgbGFyZ2UgbGlzdHMgd2hpY2ggbmVlZGxlc3NseSBjb25zdW1lIG1lbW9yeSBhbmQgcmVz b3VyY2VzLgouUHAKLkl0IFN5IG1heC1pbmxpbmUtaW5zbnMtc2luZ2xlIE5zClNldmVyYWwg cGFyYW1ldGVycyBjb250cm9sIHRoZSB0cmVlIGlubGluZXIgdXNlZCBpbiBnY2MuClRoaXMg bnVtYmVyIHNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGluc3RydWN0aW9ucyAoY291bnRl ZCBpbiBHQ0MncyBpbnRlcm5hbCByZXByZXNlbnRhdGlvbikgaW4gYSBzaW5nbGUgZnVuY3Rp b24gdGhhdCB0aGUgdHJlZSBpbmxpbmVyIHdpbGwgY29uc2lkZXIgZm9yIGlubGluaW5nLgpU aGlzIG9ubHkgYWZmZWN0cyBmdW5jdGlvbnMgZGVjbGFyZWQgaW5saW5lIGFuZCBtZXRob2Rz IGltcGxlbWVudGVkIGluIGEgY2xhc3MgZGVjbGFyYXRpb24gKEMrKykuClRoZSBkZWZhdWx0 IHZhbHVlIGlzIDQ1MC4KLlBwCi5JdCBTeSBtYXgtaW5saW5lLWluc25zLWF1dG8gTnMKV2hl biB5b3UgdXNlCi5GbCBmaW5saW5lLWZ1bmN0aW9ucwooaW5jbHVkZWQgaW4KLkZsIE8zICkg LAphIGxvdCBvZiBmdW5jdGlvbnMgdGhhdCB3b3VsZCBvdGhlcndpc2Ugbm90IGJlIGNvbnNp ZGVyZWQgZm9yIGlubGluaW5nIGJ5IHRoZSBjb21waWxlciB3aWxsIGJlIGludmVzdGlnYXRl ZC4KVG8gdGhvc2UgZnVuY3Rpb25zLCBhIGRpZmZlcmVudCAobW9yZSByZXN0cmljdGl2ZSkg bGltaXQgY29tcGFyZWQgdG8gZnVuY3Rpb25zIGRlY2xhcmVkIGlubGluZSBjYW4gYmUgYXBw bGllZC4KVGhlIGRlZmF1bHQgdmFsdWUgaXMgOTAuCi5QcAouSXQgU3kgbGFyZ2UtZnVuY3Rp b24taW5zbnMgTnMKVGhlIGxpbWl0IHNwZWNpZnlpbmcgcmVhbGx5IGxhcmdlIGZ1bmN0aW9u cy4KRm9yIGZ1bmN0aW9ucyBsYXJnZXIgdGhhbiB0aGlzIGxpbWl0IGFmdGVyIGlubGluaW5n IGlubGluaW5nIGlzIGNvbnN0cmFpbmVkIGJ5Ci5GbCAtcGFyYW0gQXIgbGFyZ2UtZnVuY3Rp b24tZ3Jvd3RoIC4KVGhpcyBwYXJhbWV0ZXIgaXMgdXNlZnVsIHByaW1hcmlseSB0byBhdm9p ZCBleHRyZW1lIGNvbXBpbGF0aW9uIHRpbWUgY2F1c2VkIGJ5IG5vbi1saW5lYXIgYWxnb3Jp dGhtcyB1c2VkIGJ5IHRoZSBiYWNrZW5kLgpUaGlzIHBhcmFtZXRlciBpcyBpZ25vcmVkIHdo ZW4KLkZsIGZ1bml0LWF0LWEtdGltZQppcyBub3QgdXNlZC4KVGhlIGRlZmF1bHQgdmFsdWUg aXMgMjcwMC4KLlBwCi5JdCBTeSBsYXJnZS1mdW5jdGlvbi1ncm93dGggTnMKU3BlY2lmaWVz IG1heGltYWwgZ3Jvd3RoIG9mIGxhcmdlIGZ1bmN0aW9uIGNhdXNlZCBieSBpbmxpbmluZyBp biBwZXJjZW50cy4KVGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCB3aGVuCi5GbCBmdW5pdC1h dC1hLXRpbWUKaXMgbm90IHVzZWQuClRoZSBkZWZhdWx0IHZhbHVlIGlzIDEwMCB3aGljaCBs aW1pdHMgbGFyZ2UgZnVuY3Rpb24gZ3Jvd3RoIHRvIDIuMCB0aW1lcyB0aGUgb3JpZ2luYWwg c2l6ZS4KLlBwCi5JdCBTeSBsYXJnZS11bml0LWluc25zIE5zClRoZSBsaW1pdCBzcGVjaWZ5 aW5nIGxhcmdlIHRyYW5zbGF0aW9uIHVuaXQuCkdyb3d0aCBjYXVzZWQgYnkgaW5saW5pbmcg b2YgdW5pdHMgbGFyZ2VyIHRoYW4gdGhpcyBsaW1pdCBpcyBsaW1pdGVkIGJ5Ci5GbCAtcGFy YW0gQXIgaW5saW5lLXVuaXQtZ3Jvd3RoIC4KRm9yIHNtYWxsIHVuaXRzIHRoaXMgbWlnaHQg YmUgdG9vIHRpZ2h0IChjb25zaWRlciB1bml0IGNvbnNpc3Rpbmcgb2YgZnVuY3Rpb24gQSB0 aGF0IGlzIGlubGluZSBhbmQgQiB0aGF0IGp1c3QgY2FsbHMgQSB0aHJlZSB0aW1lLgpJZiBC IGlzIHNtYWxsIHJlbGF0aXZlIHRvIEEsIHRoZSBncm93dGggb2YgdW5pdCBpcyAzMDBcZSUg YW5kIHlldCBzdWNoIGlubGluaW5nIGlzIHZlcnkgc2FuZS4KRm9yIHZlcnkgbGFyZ2UgdW5p dHMgY29uc2lzdGluZyBvZiBzbWFsbCBpbmxpbmluYWJsZSBmdW5jdGlvbnMgaG93ZXZlciB0 aGUgb3ZlcmFsbCB1bml0IGdyb3d0aCBsaW1pdCBpcyBuZWVkZWQgdG8gYXZvaWQgZXhwb25l bnRpYWwgZXhwbG9zaW9uIG9mIGNvZGUgc2l6ZS4KVGh1cyBmb3Igc21hbGxlciB1bml0cywg dGhlIHNpemUgaXMgaW5jcmVhc2VkIHRvCi5GbCAtcGFyYW0gQXIgbGFyZ2UtdW5pdC1pbnNu cwpiZWZvcmUgYXBseWluZwouRmwgLXBhcmFtIEFyIGlubGluZS11bml0LWdyb3d0aCAuClRo ZSBkZWZhdWx0IGlzIDEwMDAwCi5QcAouSXQgU3kgaW5saW5lLXVuaXQtZ3Jvd3RoIE5zClNw ZWNpZmllcyBtYXhpbWFsIG92ZXJhbGwgZ3Jvd3RoIG9mIHRoZSBjb21waWxhdGlvbiB1bml0 IGNhdXNlZCBieSBpbmxpbmluZy4KVGhpcyBwYXJhbWV0ZXIgaXMgaWdub3JlZCB3aGVuCi5G bCBmdW5pdC1hdC1hLXRpbWUKaXMgbm90IHVzZWQuClRoZSBkZWZhdWx0IHZhbHVlIGlzIDUw IHdoaWNoIGxpbWl0cyB1bml0IGdyb3d0aCB0byAxLjUgdGltZXMgdGhlIG9yaWdpbmFsIHNp emUuCi5QcAouSXQgU3kgbWF4LWlubGluZS1pbnNucy1yZWN1cnNpdmUgTnMKLkl0IFN5IG1h eC1pbmxpbmUtaW5zbnMtcmVjdXJzaXZlLWF1dG8gTnMKU3BlY2lmaWVzIG1heGltdW0gbnVt YmVyIG9mIGluc3RydWN0aW9ucyBvdXQtb2YtbGluZSBjb3B5IG9mIHNlbGYgcmVjdXJzaXZl IGlubGluZSBmdW5jdGlvbiBjYW4gZ3JvdyBpbnRvIGJ5IHBlcmZvcm1pbmcgcmVjdXJzaXZl IGlubGluaW5nLgouUHAKRm9yIGZ1bmN0aW9ucyBkZWNsYXJlZCBpbmxpbmUKLkZsIC1wYXJh bSBBciBtYXgtaW5saW5lLWluc25zLXJlY3Vyc2l2ZQppcyB0YWtlbiBpbnRvIGFjY291bnQu CkZvciBmdW5jdGlvbiBub3QgZGVjbGFyZWQgaW5saW5lLCByZWN1cnNpdmUgaW5saW5pbmcg aGFwcGVucyBvbmx5IHdoZW4KLkZsIGZpbmxpbmUtZnVuY3Rpb25zCihpbmNsdWRlZCBpbgou RmwgTzMgKQppcyBlbmFibGVkIGFuZAouRmwgLXBhcmFtIEFyIG1heC1pbmxpbmUtaW5zbnMt cmVjdXJzaXZlLWF1dG8KaXMgdXNlZC4KVGhlIGRlZmF1bHQgdmFsdWUgaXMgNDUwLgouUHAK Lkl0IFN5IG1heC1pbmxpbmUtcmVjdXJzaXZlLWRlcHRoIE5zCi5JdCBTeSBtYXgtaW5saW5l LXJlY3Vyc2l2ZS1kZXB0aC1hdXRvIE5zClNwZWNpZmllcyBtYXhpbXVtIHJlY3Vyc2lvbiBk ZXB0aCB1c2VkIGJ5IHRoZSByZWN1cnNpdmUgaW5saW5pbmcuCi5QcApGb3IgZnVuY3Rpb25z IGRlY2xhcmVkIGlubGluZQouRmwgLXBhcmFtIEFyIG1heC1pbmxpbmUtcmVjdXJzaXZlLWRl cHRoCmlzIHRha2VuIGludG8gYWNjb3VudC4KRm9yIGZ1bmN0aW9uIG5vdCBkZWNsYXJlZCBp bmxpbmUsIHJlY3Vyc2l2ZSBpbmxpbmluZyBoYXBwZW5zIG9ubHkgd2hlbgouRmwgZmlubGlu ZS1mdW5jdGlvbnMKKGluY2x1ZGVkIGluCi5GbCBPMyApCmlzIGVuYWJsZWQgYW5kCi5GbCAt cGFyYW0gQXIgbWF4LWlubGluZS1yZWN1cnNpdmUtZGVwdGgtYXV0bwppcyB1c2VkLgpUaGUg ZGVmYXVsdCB2YWx1ZSBpcyA0NTAuCi5QcAouSXQgU3kgbWluLWlubGluZS1yZWN1cnNpdmUt cHJvYmFiaWxpdHkgTnMKUmVjdXJzaXZlIGlubGluaW5nIGlzIHByb2ZpdGFibGUgb25seSBm b3IgZnVuY3Rpb24gaGF2aW5nIGRlZXAgcmVjdXJzaW9uIGluIGF2ZXJhZ2UgYW5kIGNhbiBo dXJ0IGZvciBmdW5jdGlvbiBoYXZpbmcgbGl0dGxlIHJlY3Vyc2lvbiBkZXB0aCBieSBpbmNy ZWFzaW5nIHRoZSBwcm9sb2d1ZSBzaXplIG9yIGNvbXBsZXhpdHkgb2YgZnVuY3Rpb24gYm9k eSB0byBvdGhlciBvcHRpbWl6ZXJzLgouUHAKV2hlbiBwcm9maWxlIGZlZWRiYWNrIGlzIGF2 YWlsYWJsZSAoc2VlCi5GbCBmcHJvZmlsZS1nZW5lcmF0ZSApCnRoZSBhY3R1YWwgcmVjdXJz aW9uIGRlcHRoIGNhbiBiZSBndWVzc2VkIGZyb20gcHJvYmFiaWxpdHkgdGhhdCBmdW5jdGlv biB3aWxsIHJlY3Vyc2UgdmlhIGdpdmVuIGNhbGwgZXhwcmVzc2lvbi4KVGhpcyBwYXJhbWV0 ZXIgbGltaXRzIGlubGluaW5nIG9ubHkgdG8gY2FsbCBleHByZXNzaW9uIHdob3NlIHByb2Jh YmlsaXR5IGV4Y2VlZHMgZ2l2ZW4gdGhyZXNob2xkIChpbiBwZXJjZW50cykuClRoZSBkZWZh dWx0IHZhbHVlIGlzIDEwLgouUHAKLkl0IFN5IGlubGluZS1jYWxsLWNvc3QgTnMKU3BlY2lm eSBjb3N0IG9mIGNhbGwgaW5zdHJ1Y3Rpb24gcmVsYXRpdmUgdG8gc2ltcGxlIGFyaXRobWV0 aWNzIG9wZXJhdGlvbnMgKGhhdmluZyBjb3N0IG9mIDEpLgpJbmNyZWFzaW5nIHRoaXMgY29z dCBkaXNxdWFsaWZpZXMgaW5saW5pbmcgb2Ygbm9uLWxlYWYgZnVuY3Rpb25zIGFuZCBhdCB0 aGUgc2FtZSB0aW1lIGluY3JlYXNlcyBzaXplIG9mIGxlYWYgZnVuY3Rpb24gdGhhdCBpcyBi ZWxpZXZlZCB0byByZWR1Y2UgZnVuY3Rpb24gc2l6ZSBieSBiZWluZyBpbmxpbmVkLgpJbiBl ZmZlY3QgaXQgaW5jcmVhc2VzIGFtb3VudCBvZiBpbmxpbmluZyBmb3IgY29kZSBoYXZpbmcg bGFyZ2UgYWJzdHJhY3Rpb24gcGVuYWx0eSAobWFueSBmdW5jdGlvbnMgdGhhdCBqdXN0IHBh c3MgdGhlIGFyZ3VtZW50cyB0byBvdGhlciBmdW5jdGlvbnMpIGFuZCBkZWNyZWFzZSBpbmxp bmluZyBmb3IgY29kZSB3aXRoIGxvdyBhYnN0cmFjdGlvbiBwZW5hbHR5LgpUaGUgZGVmYXVs dCB2YWx1ZSBpcyAxNi4KLlBwCi5JdCBTeSBtYXgtdW5yb2xsZWQtaW5zbnMgTnMKVGhlIG1h eGltdW0gbnVtYmVyIG9mIGluc3RydWN0aW9ucyB0aGF0IGEgbG9vcCBzaG91bGQgaGF2ZSBp ZiB0aGF0IGxvb3AgaXMgdW5yb2xsZWQsIGFuZCBpZiB0aGUgbG9vcCBpcyB1bnJvbGxlZCwg aXQgZGV0ZXJtaW5lcyBob3cgbWFueSB0aW1lcyB0aGUgbG9vcCBjb2RlIGlzIHVucm9sbGVk LgouUHAKLkl0IFN5IG1heC1hdmVyYWdlLXVucm9sbGVkLWluc25zIE5zClRoZSBtYXhpbXVt IG51bWJlciBvZiBpbnN0cnVjdGlvbnMgYmlhc2VkIGJ5IHByb2JhYmlsaXRpZXMgb2YgdGhl aXIgZXhlY3V0aW9uIHRoYXQgYSBsb29wIHNob3VsZCBoYXZlIGlmIHRoYXQgbG9vcCBpcyB1 bnJvbGxlZCwgYW5kIGlmIHRoZSBsb29wIGlzIHVucm9sbGVkLCBpdCBkZXRlcm1pbmVzIGhv dyBtYW55IHRpbWVzIHRoZSBsb29wIGNvZGUgaXMgdW5yb2xsZWQuCi5QcAouSXQgU3kgbWF4 LXVucm9sbC10aW1lcyBOcwpUaGUgbWF4aW11bSBudW1iZXIgb2YgdW5yb2xsaW5ncyBvZiBh IHNpbmdsZSBsb29wLgouUHAKLkl0IFN5IG1heC1wZWVsZWQtaW5zbnMgTnMKVGhlIG1heGlt dW0gbnVtYmVyIG9mIGluc3RydWN0aW9ucyB0aGF0IGEgbG9vcCBzaG91bGQgaGF2ZSBpZiB0 aGF0IGxvb3AgaXMgcGVlbGVkLCBhbmQgaWYgdGhlIGxvb3AgaXMgcGVlbGVkLCBpdCBkZXRl cm1pbmVzIGhvdyBtYW55IHRpbWVzIHRoZSBsb29wIGNvZGUgaXMgcGVlbGVkLgouUHAKLkl0 IFN5IG1heC1wZWVsLXRpbWVzIE5zClRoZSBtYXhpbXVtIG51bWJlciBvZiBwZWVsaW5ncyBv ZiBhIHNpbmdsZSBsb29wLgouUHAKLkl0IFN5IG1heC1jb21wbGV0ZWx5LXBlZWxlZC1pbnNu cyBOcwpUaGUgbWF4aW11bSBudW1iZXIgb2YgaW5zbnMgb2YgYSBjb21wbGV0ZWx5IHBlZWxl ZCBsb29wLgouUHAKLkl0IFN5IG1heC1jb21wbGV0ZWx5LXBlZWwtdGltZXMgTnMKVGhlIG1h eGltdW0gbnVtYmVyIG9mIGl0ZXJhdGlvbnMgb2YgYSBsb29wIHRvIGJlIHN1aXRhYmxlIGZv ciBjb21wbGV0ZSBwZWVsaW5nLgouUHAKLkl0IFN5IG1heC11bnN3aXRjaC1pbnNucyBOcwpU aGUgbWF4aW11bSBudW1iZXIgb2YgaW5zbnMgb2YgYW4gdW5zd2l0Y2hlZCBsb29wLgouUHAK Lkl0IFN5IG1heC11bnN3aXRjaC1sZXZlbCBOcwpUaGUgbWF4aW11bSBudW1iZXIgb2YgYnJh bmNoZXMgdW5zd2l0Y2hlZCBpbiBhIHNpbmdsZSBsb29wLgouUHAKLkl0IFN5IGxpbS1leHBl bnNpdmUgTnMKVGhlIG1pbmltdW0gY29zdCBvZiBhbiBleHBlbnNpdmUgZXhwcmVzc2lvbiBp biB0aGUgbG9vcCBpbnZhcmlhbnQgbW90aW9uLgouUHAKLkl0IFN5IGl2LWNvbnNpZGVyLWFs bC1jYW5kaWRhdGVzLWJvdW5kIE5zCkJvdW5kIG9uIG51bWJlciBvZiBjYW5kaWRhdGVzIGZv ciBpbmR1Y3Rpb24gdmFyaWFibGVzIGJlbG93IHRoYXQgYWxsIGNhbmRpZGF0ZXMgYXJlIGNv bnNpZGVyZWQgZm9yIGVhY2ggdXNlIGluIGluZHVjdGlvbiB2YXJpYWJsZSBvcHRpbWl6YXRp b25zLgpPbmx5IHRoZSBtb3N0IHJlbGV2YW50IGNhbmRpZGF0ZXMgYXJlIGNvbnNpZGVyZWQg aWYgdGhlcmUgYXJlIG1vcmUgY2FuZGlkYXRlcywgdG8gYXZvaWQgcXVhZHJhdGljIHRpbWUg Y29tcGxleGl0eS4KLlBwCi5JdCBTeSBpdi1tYXgtY29uc2lkZXJlZC11c2VzIE5zClRoZSBp bmR1Y3Rpb24gdmFyaWFibGUgb3B0aW1pemF0aW9ucyBnaXZlIHVwIG9uIGxvb3BzIHRoYXQg Y29udGFpbiBtb3JlIGluZHVjdGlvbiB2YXJpYWJsZSB1c2VzLgouUHAKLkl0IFN5IGl2LWFs d2F5cy1wcnVuZS1jYW5kLXNldC1ib3VuZCBOcwpJZiBudW1iZXIgb2YgY2FuZGlkYXRlcyBp biB0aGUgc2V0IGlzIHNtYWxsZXIgdGhhbiB0aGlzIHZhbHVlLCB3ZSBhbHdheXMgdHJ5IHRv IHJlbW92ZSB1bm5lY2Vzc2FyeSBpdnMgZnJvbSB0aGUgc2V0IGR1cmluZyBpdHMgb3B0aW1p emF0aW9uIHdoZW4gYSBuZXcgaXYgaXMgYWRkZWQgdG8gdGhlIHNldC4KLlBwCi5JdCBTeSBz Y2V2LW1heC1leHByLXNpemUgTnMKQm91bmQgb24gc2l6ZSBvZiBleHByZXNzaW9ucyB1c2Vk IGluIHRoZSBzY2FsYXIgZXZvbHV0aW9ucyBhbmFseXplci4KTGFyZ2UgZXhwcmVzc2lvbnMg c2xvdyB0aGUgYW5hbHl6ZXIuCi5QcAouSXQgU3kgdmVjdC1tYXgtdmVyc2lvbi1jaGVja3Mg TnMKVGhlIG1heGltdW0gbnVtYmVyIG9mIHJ1bnRpbWUgY2hlY2tzIHRoYXQgY2FuIGJlIHBl cmZvcm1lZCB3aGVuIGRvaW5nIGxvb3AgdmVyc2lvbmluZyBpbiB0aGUgdmVjdG9yaXplci4K U2VlIG9wdGlvbiBmdHJlZS12ZWN0LWxvb3AtdmVyc2lvbiBmb3IgbW9yZSBpbmZvcm1hdGlv bi4KLlBwCi5JdCBTeSBtYXgtaXRlcmF0aW9ucy10by10cmFjayBOcwpUaGUgbWF4aW11bSBu dW1iZXIgb2YgaXRlcmF0aW9ucyBvZiBhIGxvb3AgdGhlIGJydXRlIGZvcmNlIGFsZ29yaXRo bSBmb3IgYW5hbHlzaXMgb2YgIyBvZiBpdGVyYXRpb25zIG9mIHRoZSBsb29wIHRyaWVzIHRv IGV2YWx1YXRlLgouUHAKLkl0IFN5IGhvdC1iYi1jb3VudC1mcmFjdGlvbiBOcwpTZWxlY3Qg ZnJhY3Rpb24gb2YgdGhlIG1heGltYWwgY291bnQgb2YgcmVwZXRpdGlvbnMgb2YgYmFzaWMg YmxvY2sgaW4gcHJvZ3JhbSBnaXZlbiBiYXNpYyBibG9jayBuZWVkcyB0byBoYXZlIHRvIGJl IGNvbnNpZGVyZWQgaG90LgouUHAKLkl0IFN5IGhvdC1iYi1mcmVxdWVuY3ktZnJhY3Rpb24g TnMKU2VsZWN0IGZyYWN0aW9uIG9mIHRoZSBtYXhpbWFsIGZyZXF1ZW5jeSBvZiBleGVjdXRp b25zIG9mIGJhc2ljIGJsb2NrIGluIGZ1bmN0aW9uIGdpdmVuIGJhc2ljIGJsb2NrIG5lZWRz IHRvIGhhdmUgdG8gYmUgY29uc2lkZXJlZCBob3QKLlBwCi5JdCBTeSBtYXgtcHJlZGljdGVk LWl0ZXJhdGlvbnMgTnMKVGhlIG1heGltdW0gbnVtYmVyIG9mIGxvb3AgaXRlcmF0aW9ucyB3 ZSBwcmVkaWN0IHN0YXRpY2FsbHkuClRoaXMgaXMgdXNlZnVsIGluIGNhc2VzIHdoZXJlIGZ1 bmN0aW9uIGNvbnRhaW4gc2luZ2xlIGxvb3Agd2l0aCBrbm93biBib3VuZCBhbmQgb3RoZXIg bG9vcCB3aXRoIHVua25vd24uCldlIHByZWRpY3QgdGhlIGtub3duIG51bWJlciBvZiBpdGVy YXRpb25zIGNvcnJlY3RseSwgd2hpbGUgdGhlIHVua25vd24gbnVtYmVyIG9mIGl0ZXJhdGlv bnMgYXZlcmFnZSB0byByb3VnaGx5IDEwLgpUaGlzIG1lYW5zIHRoYXQgdGhlIGxvb3Agd2l0 aG91dCBib3VuZHMgd291bGQgYXBwZWFyIGFydGlmaWNpYWxseSBjb2xkIHJlbGF0aXZlIHRv IHRoZSBvdGhlciBvbmUuCi5QcAouSXQgU3kgdHJhY2VyLWR5bmFtaWMtY292ZXJhZ2UgTnMK Lkl0IFN5IHRyYWNlci1keW5hbWljLWNvdmVyYWdlLWZlZWRiYWNrIE5zClRoaXMgdmFsdWUg aXMgdXNlZCB0byBsaW1pdCBzdXBlcmJsb2NrIGZvcm1hdGlvbiBvbmNlIHRoZSBnaXZlbiBw ZXJjZW50YWdlIG9mIGV4ZWN1dGVkIGluc3RydWN0aW9ucyBpcyBjb3ZlcmVkLgpUaGlzIGxp bWl0cyB1bm5lY2Vzc2FyeSBjb2RlIHNpemUgZXhwYW5zaW9uLgouUHAKVGhlCi5TeSB0cmFj ZXItZHluYW1pYy1jb3ZlcmFnZS1mZWVkYmFjawppcyB1c2VkIG9ubHkgd2hlbiBwcm9maWxl IGZlZWRiYWNrIGlzIGF2YWlsYWJsZS4KVGhlIHJlYWwgcHJvZmlsZXMgKGFzIG9wcG9zZWQg dG8gc3RhdGljYWxseSBlc3RpbWF0ZWQgb25lcykgYXJlIG11Y2ggbGVzcyBiYWxhbmNlZCBh bGxvd2luZyB0aGUgdGhyZXNob2xkIHRvIGJlIGxhcmdlciB2YWx1ZS4KLlBwCi5JdCBTeSB0 cmFjZXItbWF4LWNvZGUtZ3Jvd3RoIE5zClN0b3AgdGFpbCBkdXBsaWNhdGlvbiBvbmNlIGNv ZGUgZ3Jvd3RoIGhhcyByZWFjaGVkIGdpdmVuIHBlcmNlbnRhZ2UuClRoaXMgaXMgcmF0aGVy IGhva2V5IGFyZ3VtZW50LCBhcyBtb3N0IG9mIHRoZSBkdXBsaWNhdGVzIHdpbGwgYmUgZWxp bWluYXRlZCBsYXRlciBpbiBjcm9zcyBqdW1waW5nLCBzbyBpdCBtYXkgYmUgc2V0IHRvIG11 Y2ggaGlnaGVyIHZhbHVlcyB0aGFuIGlzIHRoZSBkZXNpcmVkIGNvZGUgZ3Jvd3RoLgouUHAK Lkl0IFN5IHRyYWNlci1taW4tYnJhbmNoLXJhdGlvIE5zClN0b3AgcmV2ZXJzZSBncm93dGgg d2hlbiB0aGUgcmV2ZXJzZSBwcm9iYWJpbGl0eSBvZiBiZXN0IGVkZ2UgaXMgbGVzcyB0aGFu IHRoaXMgdGhyZXNob2xkIChpbiBwZXJjZW50KS4KLlBwCi5JdCBTeSB0cmFjZXItbWluLWJy YW5jaC1yYXRpbyBOcwouSXQgU3kgdHJhY2VyLW1pbi1icmFuY2gtcmF0aW8tZmVlZGJhY2sg TnMKU3RvcCBmb3J3YXJkIGdyb3d0aCBpZiB0aGUgYmVzdCBlZGdlIGRvIGhhdmUgcHJvYmFi aWxpdHkgbG93ZXIgdGhhbiB0aGlzIHRocmVzaG9sZC4KLlBwClNpbWlsYXJseSB0bwouU3kg dHJhY2VyLWR5bmFtaWMtY292ZXJhZ2UKdHdvIHZhbHVlcyBhcmUgcHJlc2VudCwgb25lIGZv ciBjb21waWxhdGlvbiBmb3IgcHJvZmlsZSBmZWVkYmFjayBhbmQgb25lIGZvciBjb21waWxh dGlvbiB3aXRob3V0LgpUaGUgdmFsdWUgZm9yIGNvbXBpbGF0aW9uIHdpdGggcHJvZmlsZSBm ZWVkYmFjayBuZWVkcyB0byBiZSBtb3JlIGNvbnNlcnZhdGl2ZSAoaGlnaGVyKSBpbiBvcmRl ciB0byBtYWtlIHRyYWNlciBlZmZlY3RpdmUuCi5QcAouSXQgU3kgbWF4LWNzZS1wYXRoLWxl bmd0aCBOcwpNYXhpbXVtIG51bWJlciBvZiBiYXNpYyBibG9ja3Mgb24gcGF0aCB0aGF0IGNz ZSBjb25zaWRlcnMuClRoZSBkZWZhdWx0IGlzIDEwLgouUHAKLkl0IFN5IG1heC1jc2UtaW5z bnMgTnMKVGhlIG1heGltdW0gaW5zdHJ1Y3Rpb25zIENTRSBwcm9jZXNzIGJlZm9yZSBmbHVz aGluZy4KVGhlIGRlZmF1bHQgaXMgMTAwMC4KLlBwCi5JdCBTeSBnbG9iYWwtdmFyLXRocmVz aG9sZCBOcwpDb3VudHMgdGhlIG51bWJlciBvZiBmdW5jdGlvbiBjYWxscwouRW0gKCBuICkK YW5kIHRoZSBudW1iZXIgb2YgY2FsbC1jbG9iYmVyZWQgdmFyaWFibGVzCi5FbSAoIHYgKSAu CklmCi5FbSBuCngKLkVtIHYKaXMgbGFyZ2VyIHRoYW4gdGhpcyBsaW1pdCwgYSBzaW5nbGUg YXJ0aWZpY2lhbCB2YXJpYWJsZSB3aWxsIGJlIGNyZWF0ZWQgdG8gcmVwcmVzZW50IGFsbCB0 aGUgY2FsbC1jbG9iYmVyZWQgdmFyaWFibGVzIGF0IGZ1bmN0aW9uIGNhbGwgc2l0ZXMuClRo aXMgYXJ0aWZpY2lhbCB2YXJpYWJsZSB3aWxsIHRoZW4gYmUgbWFkZSB0byBhbGlhcyBldmVy eSBjYWxsLWNsb2JiZXJlZCB2YXJpYWJsZS4KKGRvbmUgYXMKLlZhIGludCAqIHNpemVfdApv biB0aGUgaG9zdCBtYWNoaW5lOyBiZXdhcmUgb3ZlcmZsb3cpLgouUHAKLkl0IFN5IG1heC1h bGlhc2VkLXZvcHMgTnMKTWF4aW11bSBudW1iZXIgb2YgdmlydHVhbCBvcGVyYW5kcyBhbGxv d2VkIHRvIHJlcHJlc2VudCBhbGlhc2VzIGJlZm9yZSB0cmlnZ2VyaW5nIHRoZSBhbGlhcyBn cm91cGluZyBoZXVyaXN0aWMuCkFsaWFzIGdyb3VwaW5nIHJlZHVjZXMgY29tcGlsZSB0aW1l cyBhbmQgbWVtb3J5IGNvbnN1bXB0aW9uIG5lZWRlZCBmb3IgYWxpYXNpbmcgYXQgdGhlIGV4 cGVuc2Ugb2YgcHJlY2lzaW9uIGxvc3MgaW4gYWxpYXMgaW5mb3JtYXRpb24uCi5QcAouSXQg U3kgZ2djLW1pbi1leHBhbmQgTnMKR0NDIHVzZXMgYSBnYXJiYWdlIGNvbGxlY3RvciB0byBt YW5hZ2UgaXRzIG93biBtZW1vcnkgYWxsb2NhdGlvbi4KVGhpcyBwYXJhbWV0ZXIgc3BlY2lm aWVzIHRoZSBtaW5pbXVtIHBlcmNlbnRhZ2UgYnkgd2hpY2ggdGhlIGdhcmJhZ2UgY29sbGVj dG9yJ3MgaGVhcCBzaG91bGQgYmUgYWxsb3dlZCB0byBleHBhbmQgYmV0d2VlbiBjb2xsZWN0 aW9ucy4KVHVuaW5nIHRoaXMgbWF5IGltcHJvdmUgY29tcGlsYXRpb24gc3BlZWQ7IGl0IGhh cyBubyBlZmZlY3Qgb24gY29kZSBnZW5lcmF0aW9uLgouUHAKVGhlIGRlZmF1bHQgaXMgMzAl ICsgNzAlICogKFJBTS8xR0IpIHdpdGggYW4gdXBwZXIgYm91bmQgb2YgMTAwJSB3aGVuIFJB TSBcKltHdF09IDFHQi4KSWYKLlZhIGdldHJsaW1pdAppcyBhdmFpbGFibGUsIHRoZSBub3Rp b24gb2YgIlJBTSIgaXMgdGhlIHNtYWxsZXN0IG9mIGFjdHVhbCBSQU0gYW5kCi5WYSBSTElN SVRfREFUQQpvcgouVmEgUkxJTUlUX0FTIC4KSWYgR0NDIGlzIG5vdCBhYmxlIHRvIGNhbGN1 bGF0ZSBSQU0gb24gYSBwYXJ0aWN1bGFyIHBsYXRmb3JtLCB0aGUgbG93ZXIgYm91bmQgb2Yg MzAlIGlzIHVzZWQuClNldHRpbmcgdGhpcyBwYXJhbWV0ZXIgYW5kCi5TeSBnZ2MtbWluLWhl YXBzaXplCnRvIHplcm8gY2F1c2VzIGEgZnVsbCBjb2xsZWN0aW9uIHRvIG9jY3VyIGF0IGV2 ZXJ5IG9wcG9ydHVuaXR5LgpUaGlzIGlzIGV4dHJlbWVseSBzbG93LCBidXQgY2FuIGJlIHVz ZWZ1bCBmb3IgZGVidWdnaW5nLgouUHAKLkl0IFN5IGdnYy1taW4taGVhcHNpemUgTnMKTWlu aW11bSBzaXplIG9mIHRoZSBnYXJiYWdlIGNvbGxlY3RvcidzIGhlYXAgYmVmb3JlIGl0IGJl Z2lucyBib3RoZXJpbmcgdG8gY29sbGVjdCBnYXJiYWdlLgpUaGUgZmlyc3QgY29sbGVjdGlv biBvY2N1cnMgYWZ0ZXIgdGhlIGhlYXAgZXhwYW5kcyBieQouU3kgZ2djLW1pbi1leHBhbmQK JSBiZXlvbmQKLlN5IGdnYy1taW4taGVhcHNpemUgLgpBZ2FpbiwgdHVuaW5nIHRoaXMgbWF5 IGltcHJvdmUgY29tcGlsYXRpb24gc3BlZWQsIGFuZCBoYXMgbm8gZWZmZWN0IG9uIGNvZGUg Z2VuZXJhdGlvbi4KLlBwClRoZSBkZWZhdWx0IGlzIHRoZSBzbWFsbGVyIG9mIFJBTS84LCBS TElNSVRfUlNTLCBvciBhIGxpbWl0IHdoaWNoIHRyaWVzIHRvIGVuc3VyZSB0aGF0IFJMSU1J VF9EQVRBIG9yIFJMSU1JVF9BUyBhcmUgbm90IGV4Y2VlZGVkLCBidXQgd2l0aCBhIGxvd2Vy IGJvdW5kIG9mIDQwOTYgKGZvdXIgbWVnYWJ5dGVzKSBhbmQgYW4gdXBwZXIgYm91bmQgb2Yg MTMxMDcyICgxMjggbWVnYWJ5dGVzKS4KSWYgR0NDIGlzIG5vdCBhYmxlIHRvIGNhbGN1bGF0 ZSBSQU0gb24gYSBwYXJ0aWN1bGFyIHBsYXRmb3JtLCB0aGUgbG93ZXIgYm91bmQgaXMgdXNl ZC4KU2V0dGluZyB0aGlzIHBhcmFtZXRlciB2ZXJ5IGxhcmdlIGVmZmVjdGl2ZWx5IGRpc2Fi bGVzIGdhcmJhZ2UgY29sbGVjdGlvbi4KU2V0dGluZyB0aGlzIHBhcmFtZXRlciBhbmQKLlN5 IGdnYy1taW4tZXhwYW5kCnRvIHplcm8gY2F1c2VzIGEgZnVsbCBjb2xsZWN0aW9uIHRvIG9j Y3VyIGF0IGV2ZXJ5IG9wcG9ydHVuaXR5LgouUHAKLkl0IFN5IG1heC1yZWxvYWQtc2VhcmNo LWluc25zIE5zClRoZSBtYXhpbXVtIG51bWJlciBvZiBpbnN0cnVjdGlvbiByZWxvYWQgc2hv dWxkIGxvb2sgYmFja3dhcmQgZm9yIGVxdWl2YWxlbnQgcmVnaXN0ZXIuCkluY3JlYXNpbmcg dmFsdWVzIG1lYW4gbW9yZSBhZ2dyZXNzaXZlIG9wdGltaXphdGlvbiwgbWFraW5nIHRoZSBj b21waWxlIHRpbWUgaW5jcmVhc2Ugd2l0aCBwcm9iYWJseSBzbGlnaHRseSBiZXR0ZXIgcGVy Zm9ybWFuY2UuClRoZSBkZWZhdWx0IHZhbHVlIGlzIDEwMC4KLlBwCi5JdCBTeSBtYXgtY3Nl bGliLW1lbW9yeS1sb2NhdGlvbiBOcwpUaGUgbWF4aW11bSBudW1iZXIgb2YgbWVtb3J5IGxv Y2F0aW9ucyBjc2VsaWIgc2hvdWxkIHRha2UgaW50byBhY2NvdW50LgpJbmNyZWFzaW5nIHZh bHVlcyBtZWFuIG1vcmUgYWdncmVzc2l2ZSBvcHRpbWl6YXRpb24sIG1ha2luZyB0aGUgY29t cGlsZSB0aW1lIGluY3JlYXNlIHdpdGggcHJvYmFibHkgc2xpZ2h0bHkgYmV0dGVyIHBlcmZv cm1hbmNlLgpUaGUgZGVmYXVsdCB2YWx1ZSBpcyA1MDAuCi5QcAouSXQgU3kgbWF4LWZsb3ct bWVtb3J5LWxvY2F0aW9uIE5zClNpbWlsYXIgYXMKLlN5IG1heC1jc2VsaWItbWVtb3J5LWxv Y2F0aW9uCmJ1dCBmb3IgZGF0YWZsb3cgbGl2ZW5lc3MuClRoZSBkZWZhdWx0IHZhbHVlIGlz IDEwMC4KLlBwCi5JdCBTeSByZW9yZGVyLWJsb2Nrcy1kdXBsaWNhdGUgTnMKLkl0IFN5IHJl b3JkZXItYmxvY2tzLWR1cGxpY2F0ZS1mZWVkYmFjayBOcwpVc2VkIGJ5IGJhc2ljIGJsb2Nr IHJlb3JkZXJpbmcgcGFzcyB0byBkZWNpZGUgd2hldGhlciB0byB1c2UgdW5jb25kaXRpb25h bCBicmFuY2ggb3IgZHVwbGljYXRlIHRoZSBjb2RlIG9uIGl0cyBkZXN0aW5hdGlvbi4KQ29k ZSBpcyBkdXBsaWNhdGVkIHdoZW4gaXRzIGVzdGltYXRlZCBzaXplIGlzIHNtYWxsZXIgdGhh biB0aGlzIHZhbHVlIG11bHRpcGxpZWQgYnkgdGhlIGVzdGltYXRlZCBzaXplIG9mIHVuY29u ZGl0aW9uYWwganVtcCBpbiB0aGUgaG90IHNwb3RzIG9mIHRoZSBwcm9ncmFtLgouUHAKVGhl Ci5TeSByZW9yZGVyLWJsb2NrLWR1cGxpY2F0ZS1mZWVkYmFjawppcyB1c2VkIG9ubHkgd2hl biBwcm9maWxlIGZlZWRiYWNrIGlzIGF2YWlsYWJsZSBhbmQgbWF5IGJlIHNldCB0byBoaWdo ZXIgdmFsdWVzIHRoYW4KLlN5IHJlb3JkZXItYmxvY2stZHVwbGljYXRlCnNpbmNlIGluZm9y bWF0aW9uIGFib3V0IHRoZSBob3Qgc3BvdHMgaXMgbW9yZSBhY2N1cmF0ZS4KLlBwCi5JdCBT eSBtYXgtc2NoZWQtcmVhZHktaW5zbnMgTnMKVGhlIG1heGltdW0gbnVtYmVyIG9mIGluc3Ry dWN0aW9ucyByZWFkeSB0byBiZSBpc3N1ZWQgdGhlIHNjaGVkdWxlciBzaG91bGQgY29uc2lk ZXIgYXQgYW55IGdpdmVuIHRpbWUgZHVyaW5nIHRoZSBmaXJzdCBzY2hlZHVsaW5nIHBhc3Mu CkluY3JlYXNpbmcgdmFsdWVzIG1lYW4gbW9yZSB0aG9yb3VnaCBzZWFyY2hlcywgbWFraW5n IHRoZSBjb21waWxhdGlvbiB0aW1lIGluY3JlYXNlIHdpdGggcHJvYmFibHkgbGl0dGxlIGJl bmVmaXQuClRoZSBkZWZhdWx0IHZhbHVlIGlzIDEwMC4KLlBwCi5JdCBTeSBtYXgtc2NoZWQt cmVnaW9uLWJsb2NrcyBOcwpUaGUgbWF4aW11bSBudW1iZXIgb2YgYmxvY2tzIGluIGEgcmVn aW9uIHRvIGJlIGNvbnNpZGVyZWQgZm9yIGludGVyYmxvY2sgc2NoZWR1bGluZy4KVGhlIGRl ZmF1bHQgdmFsdWUgaXMgMTAuCi5QcAouSXQgU3kgbWF4LXNjaGVkLXJlZ2lvbi1pbnNucyBO cwpUaGUgbWF4aW11bSBudW1iZXIgb2YgaW5zbnMgaW4gYSByZWdpb24gdG8gYmUgY29uc2lk ZXJlZCBmb3IgaW50ZXJibG9jayBzY2hlZHVsaW5nLgpUaGUgZGVmYXVsdCB2YWx1ZSBpcyAx MDAuCi5QcAouSXQgU3kgbWluLXNjaGVkLXByb2IgTnMKVGhlIG1pbmltdW0gcHJvYmFiaWxp dHkgb2YgcmVhY2hpbmcgYSBzb3VyY2UgYmxvY2sgZm9yIGludGVyYmxvY2sgc3BlY3VsYXRp dmUgc2NoZWR1bGluZy4KVGhlIGRlZmF1bHQgdmFsdWUgaXMgNDAuCi5QcAouSXQgU3kgbWF4 LWxhc3QtdmFsdWUtcnRsIE5zClRoZSBtYXhpbXVtIHNpemUgbWVhc3VyZWQgYXMgbnVtYmVy IG9mIFJUTHMgdGhhdCBjYW4gYmUgcmVjb3JkZWQgaW4gYW4gZXhwcmVzc2lvbiBpbiBjb21i aW5lciBmb3IgYSBwc2V1ZG8gcmVnaXN0ZXIgYXMgbGFzdCBrbm93biB2YWx1ZSBvZiB0aGF0 IHJlZ2lzdGVyLgpUaGUgZGVmYXVsdCBpcyAxMDAwMC4KLlBwCi5JdCBTeSBpbnRlZ2VyLXNo YXJlLWxpbWl0IE5zClNtYWxsIGludGVnZXIgY29uc3RhbnRzIGNhbiB1c2UgYSBzaGFyZWQg ZGF0YSBzdHJ1Y3R1cmUsIHJlZHVjaW5nIHRoZSBjb21waWxlcidzIG1lbW9yeSB1c2FnZSBh bmQgaW5jcmVhc2luZyBpdHMgc3BlZWQuClRoaXMgc2V0cyB0aGUgbWF4aW11bSB2YWx1ZSBv ZiBhIHNoYXJlZCBpbnRlZ2VyIGNvbnN0YW50J3MuClRoZSBkZWZhdWx0IHZhbHVlIGlzIDI1 Ni4KLlBwCi5JdCBTeSBtaW4tdmlydHVhbC1tYXBwaW5ncyBOcwpTcGVjaWZpZXMgdGhlIG1p bmltdW0gbnVtYmVyIG9mIHZpcnR1YWwgbWFwcGluZ3MgaW4gdGhlIGluY3JlbWVudGFsIFNT QSB1cGRhdGVyIHRoYXQgc2hvdWxkIGJlIHJlZ2lzdGVyZWQgdG8gdHJpZ2dlciB0aGUgdmly dHVhbCBtYXBwaW5ncyBoZXVyaXN0aWMgZGVmaW5lZCBieSB2aXJ0dWFsLW1hcHBpbmdzLXJh dGlvLgpUaGUgZGVmYXVsdCB2YWx1ZSBpcyAxMDAuCi5QcAouSXQgU3kgdmlydHVhbC1tYXBw aW5ncy1yYXRpbyBOcwpJZiB0aGUgbnVtYmVyIG9mIHZpcnR1YWwgbWFwcGluZ3MgaXMgdmly dHVhbC1tYXBwaW5ncy1yYXRpbyBiaWdnZXIgdGhhbiB0aGUgbnVtYmVyIG9mIHZpcnR1YWwg c3ltYm9scyB0byBiZSB1cGRhdGVkLCB0aGVuIHRoZSBpbmNyZW1lbnRhbCBTU0EgdXBkYXRl ciBzd2l0Y2hlcyB0byBhIGZ1bGwgdXBkYXRlIGZvciB0aG9zZSBzeW1ib2xzLgpUaGUgZGVm YXVsdCByYXRpbyBpcyAzLgouUHAKLkl0IFN5IHNzcC1idWZmZXItc2l6ZSBOcwpUaGUgbWlu aW11bSBzaXplIG9mIGJ1ZmZlcnMgKGkuZS4gYXJyYXlzKSB0aGF0IHdpbGwgcmVjZWl2ZSBz dGFjayBzbWFzaGluZyBwcm90ZWN0aW9uIHdoZW4KLkZsIGZzdGFjay1wcm90ZWN0aW9uCmlz IHVzZWQuCi5QcAouSXQgU3kgbWF4LWp1bXAtdGhyZWFkLWR1cGxpY2F0aW9uLXN0bXRzIE5z Ck1heGltdW0gbnVtYmVyIG9mIHN0YXRlbWVudHMgYWxsb3dlZCBpbiBhIGJsb2NrIHRoYXQg bmVlZHMgdG8gYmUgZHVwbGljYXRlZCB3aGVuIHRocmVhZGluZyBqdW1wcy4KLlBwCi5JdCBT eSBtYXgtZmllbGRzLWZvci1maWVsZC1zZW5zaXRpdmUgTnMKTWF4aW11bSBudW1iZXIgb2Yg ZmllbGRzIGluIGEgc3RydWN0dXJlIHdlIHdpbGwgdHJlYXQgaW4gYSBmaWVsZCBzZW5zaXRp dmUgbWFubmVyIGR1cmluZyBwb2ludGVyIGFuYWx5c2lzLgouUHAKLkVsCi5FbAouU3MgT3B0 aW9ucyBDb250cm9sbGluZyB0aGUgUHJlcHJvY2Vzc29yClRoZXNlIG9wdGlvbnMgY29udHJv bCB0aGUgQyBwcmVwcm9jZXNzb3IsIHdoaWNoIGlzIHJ1biBvbiBlYWNoIEMgc291cmNlIGZp bGUgYmVmb3JlIGFjdHVhbCBjb21waWxhdGlvbi4KLlBwCklmIHlvdSB1c2UgdGhlCi5GbCBF Cm9wdGlvbiwgbm90aGluZyBpcyBkb25lIGV4Y2VwdCBwcmVwcm9jZXNzaW5nLgpTb21lIG9m IHRoZXNlIG9wdGlvbnMgbWFrZSBzZW5zZSBvbmx5IHRvZ2V0aGVyIHdpdGgKLkZsIEUKYmVj YXVzZSB0aGV5IGNhdXNlIHRoZSBwcmVwcm9jZXNzb3Igb3V0cHV0IHRvIGJlIHVuc3VpdGFi bGUgZm9yIGFjdHVhbCBjb21waWxhdGlvbi4KLlBwCi5CbCAtdGFnIC13aWR0aCB4eAouSXQg RmwgV3AsIE5zIEFyIG9wdGlvbgpZb3UgY2FuIHVzZQouRmwgV3AsIE5zIEFyIG9wdGlvbgp0 byBieXBhc3MgdGhlIGNvbXBpbGVyIGRyaXZlciBhbmQgcGFzcwouRW0gb3B0aW9uCmRpcmVj dGx5IHRocm91Z2ggdG8gdGhlIHByZXByb2Nlc3Nvci4KSWYKLkVtIG9wdGlvbgpjb250YWlu cyBjb21tYXMsIGl0IGlzIHNwbGl0IGludG8gbXVsdGlwbGUgb3B0aW9ucyBhdCB0aGUgY29t bWFzLgpIb3dldmVyLCBtYW55IG9wdGlvbnMgYXJlIG1vZGlmaWVkLCB0cmFuc2xhdGVkIG9y IGludGVycHJldGVkIGJ5IHRoZSBjb21waWxlciBkcml2ZXIgYmVmb3JlIGJlaW5nIHBhc3Nl ZCB0byB0aGUgcHJlcHJvY2Vzc29yLCBhbmQKLkZsIFdwCmZvcmNpYmx5IGJ5cGFzc2VzIHRo aXMgcGhhc2UuClRoZSBwcmVwcm9jZXNzb3IncyBkaXJlY3QgaW50ZXJmYWNlIGlzIHVuZG9j dW1lbnRlZCBhbmQgc3ViamVjdCB0byBjaGFuZ2UsIHNvIHdoZW5ldmVyIHBvc3NpYmxlIHlv dSBzaG91bGQgYXZvaWQgdXNpbmcKLkZsIFdwCmFuZCBsZXQgdGhlIGRyaXZlciBoYW5kbGUg dGhlIG9wdGlvbnMgaW5zdGVhZC4KLlBwCi5JdCBGbCBYcHJlcHJvY2Vzc29yIEFyIG9wdGlv bgpQYXNzCi5FbSBvcHRpb24KYXMgYW4gb3B0aW9uIHRvIHRoZSBwcmVwcm9jZXNzb3IuCllv dSBjYW4gdXNlIHRoaXMgdG8gc3VwcGx5IHN5c3RlbS1zcGVjaWZpYyBwcmVwcm9jZXNzb3Ig b3B0aW9ucyB3aGljaCBHQ0MgZG9lcyBub3Qga25vdyBob3cgdG8gcmVjb2duaXplLgouUHAK SWYgeW91IHdhbnQgdG8gcGFzcyBhbiBvcHRpb24gdGhhdCB0YWtlcyBhbiBhcmd1bWVudCwg eW91IG11c3QgdXNlCi5GbCBYcHJlcHJvY2Vzc29yCnR3aWNlLCBvbmNlIGZvciB0aGUgb3B0 aW9uIGFuZCBvbmNlIGZvciB0aGUgYXJndW1lbnQuCi5QcAouRWwKLkJsIC10YWcgLXdpZHRo IHh4Ci5JdCBGbCBEIEFyIG5hbWUKUHJlZGVmaW5lCi5FbSBuYW1lCmFzIGEgbWFjcm8sIHdp dGggZGVmaW5pdGlvbgouVmEgMSAuCi5QcAouSXQgRmwgRCBBciBuYW1lIE5zID0gTnMgQXIg ZGVmaW5pdGlvbgpUaGUgY29udGVudHMgb2YKLkVtIGRlZmluaXRpb24KYXJlIHRva2VuaXpl ZCBhbmQgcHJvY2Vzc2VkIGFzIGlmIHRoZXkgYXBwZWFyZWQgZHVyaW5nIHRyYW5zbGF0aW9u IHBoYXNlIHRocmVlIGluIGEKLlN5ICNkZWZpbmUKZGlyZWN0aXZlLgpJbiBwYXJ0aWN1bGFy LCB0aGUgZGVmaW5pdGlvbiB3aWxsIGJlIHRydW5jYXRlZCBieSBlbWJlZGRlZCBuZXdsaW5l IGNoYXJhY3RlcnMuCi5QcApJZiB5b3UgYXJlIGludm9raW5nIHRoZSBwcmVwcm9jZXNzb3Ig ZnJvbSBhIHNoZWxsIG9yIHNoZWxsLWxpa2UgcHJvZ3JhbSB5b3UgbWF5IG5lZWQgdG8gdXNl IHRoZSBzaGVsbCdzIHF1b3Rpbmcgc3ludGF4IHRvIHByb3RlY3QgY2hhcmFjdGVycyBzdWNo IGFzIHNwYWNlcyB0aGF0IGhhdmUgYSBtZWFuaW5nIGluIHRoZSBzaGVsbCBzeW50YXguCi5Q cApJZiB5b3Ugd2lzaCB0byBkZWZpbmUgYSBmdW5jdGlvbi1saWtlIG1hY3JvIG9uIHRoZSBj b21tYW5kIGxpbmUsIHdyaXRlIGl0cyBhcmd1bWVudCBsaXN0IHdpdGggc3Vycm91bmRpbmcg cGFyZW50aGVzZXMgYmVmb3JlIHRoZSBlcXVhbHMgc2lnbiAoaWYgYW55KS4KUGFyZW50aGVz ZXMgYXJlIG1lYW5pbmdmdWwgdG8gbW9zdCBzaGVsbHMsIHNvIHlvdSB3aWxsIG5lZWQgdG8g cXVvdGUgdGhlIG9wdGlvbi4KV2l0aAouU3kgc2gKYW5kCi5TeSBjc2ggLAouU3kgLUQnCi5F bSBuYW1lCi5TeSAoCi5FbSBhcmdzLi4uCi5TeSApPQouRW0gZGVmaW5pdGlvbgouU3kgJwp3 b3Jrcy4KLlBwCi5GbCBECmFuZAouRmwgVQpvcHRpb25zIGFyZSBwcm9jZXNzZWQgaW4gdGhl IG9yZGVyIHRoZXkgYXJlIGdpdmVuIG9uIHRoZSBjb21tYW5kIGxpbmUuCkFsbAouRmwgaW1h Y3JvcyBBciBmaWxlCmFuZAouRmwgaW5jbHVkZSBBciBmaWxlCm9wdGlvbnMgYXJlIHByb2Nl c3NlZCBhZnRlciBhbGwKLkZsIEQKYW5kCi5GbCBVCm9wdGlvbnMuCi5QcAouSXQgRmwgVSBB ciBuYW1lCkNhbmNlbCBhbnkgcHJldmlvdXMgZGVmaW5pdGlvbiBvZgouRW0gbmFtZSAsCmVp dGhlciBidWlsdCBpbiBvciBwcm92aWRlZCB3aXRoIGEKLkZsIEQKb3B0aW9uLgouUHAKLkl0 IEZsIHVuZGVmCkRvIG5vdCBwcmVkZWZpbmUgYW55IHN5c3RlbS1zcGVjaWZpYyBvciBHQ0Mt c3BlY2lmaWMgbWFjcm9zLgpUaGUgc3RhbmRhcmQgcHJlZGVmaW5lZCBtYWNyb3MgcmVtYWlu IGRlZmluZWQuCi5QcAouSXQgRmwgSSBBciBkaXIKQWRkIHRoZSBkaXJlY3RvcnkKLkVtIGRp cgp0byB0aGUgbGlzdCBvZiBkaXJlY3RvcmllcyB0byBiZSBzZWFyY2hlZCBmb3IgaGVhZGVy IGZpbGVzLgpEaXJlY3RvcmllcyBuYW1lZCBieQouRmwgSQphcmUgc2VhcmNoZWQgYmVmb3Jl IHRoZSBzdGFuZGFyZCBzeXN0ZW0gaW5jbHVkZSBkaXJlY3Rvcmllcy4KSWYgdGhlIGRpcmVj dG9yeQouRW0gZGlyCmlzIGEgc3RhbmRhcmQgc3lzdGVtIGluY2x1ZGUgZGlyZWN0b3J5LCB0 aGUgb3B0aW9uIGlzIGlnbm9yZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGRlZmF1bHQgc2VhcmNo IG9yZGVyIGZvciBzeXN0ZW0gZGlyZWN0b3JpZXMgYW5kIHRoZSBzcGVjaWFsIHRyZWF0bWVu dCBvZiBzeXN0ZW0gaGVhZGVycyBhcmUgbm90IGRlZmVhdGVkIC4KLlBwCi5JdCBGbCBvIEFy IGZpbGUKV3JpdGUgb3V0cHV0IHRvCi5FbSBmaWxlIC4KVGhpcyBpcyB0aGUgc2FtZSBhcyBz cGVjaWZ5aW5nCi5FbSBmaWxlCmFzIHRoZSBzZWNvbmQgbm9uLW9wdGlvbiBhcmd1bWVudCB0 bwouU3kgY3BwIC4KLk5tIGdjYwpoYXMgYSBkaWZmZXJlbnQgaW50ZXJwcmV0YXRpb24gb2Yg YSBzZWNvbmQgbm9uLW9wdGlvbiBhcmd1bWVudCwgc28geW91IG11c3QgdXNlCi5GbCBvCnRv IHNwZWNpZnkgdGhlIG91dHB1dCBmaWxlLgouUHAKLkl0IEZsIFdhbGwKVHVybnMgb24gYWxs IG9wdGlvbmFsIHdhcm5pbmdzIHdoaWNoIGFyZSBkZXNpcmFibGUgZm9yIG5vcm1hbCBjb2Rl LgpBdCBwcmVzZW50IHRoaXMgaXMKLkZsIFdjb21tZW50ICwKLkZsIFd0cmlncmFwaHMgLAou RmwgV211bHRpY2hhcgphbmQgYSB3YXJuaW5nIGFib3V0IGludGVnZXIgcHJvbW90aW9uIGNh dXNpbmcgYSBjaGFuZ2Ugb2Ygc2lnbiBpbgouVmEgI2lmCmV4cHJlc3Npb25zLgpOb3RlIHRo YXQgbWFueSBvZiB0aGUgcHJlcHJvY2Vzc29yJ3Mgd2FybmluZ3MgYXJlIG9uIGJ5IGRlZmF1 bHQgYW5kIGhhdmUgbm8gb3B0aW9ucyB0byBjb250cm9sIHRoZW0uCi5QcAouSXQgRmwgV2Nv bW1lbnQKLkl0IEZsIFdjb21tZW50cwpXYXJuIHdoZW5ldmVyIGEgY29tbWVudC1zdGFydCBz ZXF1ZW5jZQouU3kgLyoKYXBwZWFycyBpbiBhCi5TeSAvKgpjb21tZW50LCBvciB3aGVuZXZl ciBhIGJhY2tzbGFzaC1uZXdsaW5lIGFwcGVhcnMgaW4gYQouU3kgLy8KY29tbWVudC4KKEJv dGggZm9ybXMgaGF2ZSB0aGUgc2FtZSBlZmZlY3QuKQouUHAKLkl0IEZsIFd0cmlncmFwaHMK QGFuY2hvcntXdHJpZ3JhcGhzfSBNb3N0IHRyaWdyYXBocyBpbiBjb21tZW50cyBjYW5ub3Qg YWZmZWN0IHRoZSBtZWFuaW5nIG9mIHRoZSBwcm9ncmFtLgpIb3dldmVyLCBhIHRyaWdyYXBo IHRoYXQgd291bGQgZm9ybSBhbiBlc2NhcGVkIG5ld2xpbmUKLlN5ICggPz8vCmF0IHRoZSBl bmQgb2YgYSBsaW5lKSBjYW4sIGJ5IGNoYW5naW5nIHdoZXJlIHRoZSBjb21tZW50IGJlZ2lu cyBvciBlbmRzLgpUaGVyZWZvcmUsIG9ubHkgdHJpZ3JhcGhzIHRoYXQgd291bGQgZm9ybSBl c2NhcGVkIG5ld2xpbmVzIHByb2R1Y2Ugd2FybmluZ3MgaW5zaWRlIGEgY29tbWVudC4KLlBw ClRoaXMgb3B0aW9uIGlzIGltcGxpZWQgYnkKLkZsIFdhbGwgLgpJZgouRmwgV2FsbAppcyBu b3QgZ2l2ZW4sIHRoaXMgb3B0aW9uIGlzIHN0aWxsIGVuYWJsZWQgdW5sZXNzIHRyaWdyYXBo cyBhcmUgZW5hYmxlZC4KVG8gZ2V0IHRyaWdyYXBoIGNvbnZlcnNpb24gd2l0aG91dCB3YXJu aW5ncywgYnV0IGdldCB0aGUgb3RoZXIKLkZsIFdhbGwKd2FybmluZ3MsIHVzZQouRmwgdHJp Z3JhcGhzIEZsIFdhbGwgRmwgV25vLXRyaWdyYXBocyAuCi5QcAouSXQgRmwgV3RyYWRpdGlv bmFsCldhcm4gYWJvdXQgY2VydGFpbiBjb25zdHJ1Y3RzIHRoYXQgYmVoYXZlIGRpZmZlcmVu dGx5IGluIHRyYWRpdGlvbmFsIGFuZCBJU08gQy4KQWxzbyB3YXJuIGFib3V0IElTTyBDIGNv bnN0cnVjdHMgdGhhdCBoYXZlIG5vIHRyYWRpdGlvbmFsIEMgZXF1aXZhbGVudCwgYW5kIHBy b2JsZW1hdGljIGNvbnN0cnVjdHMgd2hpY2ggc2hvdWxkIGJlIGF2b2lkZWQuCi5QcAouSXQg RmwgV2ltcG9ydApXYXJuIHRoZSBmaXJzdCB0aW1lCi5TeSAjaW1wb3J0CmlzIHVzZWQuCi5Q cAouSXQgRmwgV3VuZGVmCldhcm4gd2hlbmV2ZXIgYW4gaWRlbnRpZmllciB3aGljaCBpcyBu b3QgYSBtYWNybyBpcyBlbmNvdW50ZXJlZCBpbiBhbgouU3kgI2lmCmRpcmVjdGl2ZSwgb3V0 c2lkZSBvZgouU3kgZGVmaW5lZCAuClN1Y2ggaWRlbnRpZmllcnMgYXJlIHJlcGxhY2VkIHdp dGggemVyby4KLlBwCi5JdCBGbCBXdW51c2VkLW1hY3JvcwpXYXJuIGFib3V0IG1hY3JvcyBk ZWZpbmVkIGluIHRoZSBtYWluIGZpbGUgdGhhdCBhcmUgdW51c2VkLgpBIG1hY3JvIGlzCi5F bSB1c2VkCmlmIGl0IGlzIGV4cGFuZGVkIG9yIHRlc3RlZCBmb3IgZXhpc3RlbmNlIGF0IGxl YXN0IG9uY2UuClRoZSBwcmVwcm9jZXNzb3Igd2lsbCBhbHNvIHdhcm4gaWYgdGhlIG1hY3Jv IGhhcyBub3QgYmVlbiB1c2VkIGF0IHRoZSB0aW1lIGl0IGlzIHJlZGVmaW5lZCBvciB1bmRl ZmluZWQuCi5QcApCdWlsdC1pbiBtYWNyb3MsIG1hY3JvcyBkZWZpbmVkIG9uIHRoZSBjb21t YW5kIGxpbmUsIGFuZCBtYWNyb3MgZGVmaW5lZCBpbiBpbmNsdWRlIGZpbGVzIGFyZSBub3Qg d2FybmVkIGFib3V0LgouUHAKLkVtIE5vdGU6CklmIGEgbWFjcm8gaXMgYWN0dWFsbHkgdXNl ZCwgYnV0IG9ubHkgdXNlZCBpbiBza2lwcGVkIGNvbmRpdGlvbmFsIGJsb2NrcywgdGhlbiBD UFAgd2lsbCByZXBvcnQgaXQgYXMgdW51c2VkLgpUbyBhdm9pZCB0aGUgd2FybmluZyBpbiBz dWNoIGEgY2FzZSwgeW91IG1pZ2h0IGltcHJvdmUgdGhlIHNjb3BlIG9mIHRoZSBtYWNybydz IGRlZmluaXRpb24gYnksIGZvciBleGFtcGxlLCBtb3ZpbmcgaXQgaW50byB0aGUgZmlyc3Qg c2tpcHBlZCBibG9jay4KQWx0ZXJuYXRpdmVseSwgeW91IGNvdWxkIHByb3ZpZGUgYSBkdW1t eSB1c2Ugd2l0aCBzb21ldGhpbmcgbGlrZToKLlBwCi5CZCAtbGl0ZXJhbCAtb2Zmc2V0IGlu ZGVudAojaWYgZGVmaW5lZCB0aGVfbWFjcm9fY2F1c2luZ190aGVfd2FybmluZwojZW5kaWYK LkVkCi5JdCBGbCBXZW5kaWYtbGFiZWxzCldhcm4gd2hlbmV2ZXIgYW4KLlN5ICNlbHNlCm9y IGFuCi5TeSAjZW5kaWYKYXJlIGZvbGxvd2VkIGJ5IHRleHQuClRoaXMgdXN1YWxseSBoYXBw ZW5zIGluIGNvZGUgb2YgdGhlIGZvcm0KLlBwCi5CZCAtbGl0ZXJhbCAtb2Zmc2V0IGluZGVu dAojaWYgRk9PClwmLi4uCiNlbHNlIEZPTwpcJi4uLgojZW5kaWYgRk9PCi5FZApUaGUgc2Vj b25kIGFuZCB0aGlyZAouVmEgRk9PCnNob3VsZCBiZSBpbiBjb21tZW50cywgYnV0IG9mdGVu IGFyZSBub3QgaW4gb2xkZXIgcHJvZ3JhbXMuClRoaXMgd2FybmluZyBpcyBvbiBieSBkZWZh dWx0LgouUHAKLkl0IEZsIFdlcnJvcgpNYWtlIGFsbCB3YXJuaW5ncyBpbnRvIGhhcmQgZXJy b3JzLgpTb3VyY2UgY29kZSB3aGljaCB0cmlnZ2VycyB3YXJuaW5ncyB3aWxsIGJlIHJlamVj dGVkLgouUHAKLkl0IEZsIFdzeXN0ZW0taGVhZGVycwpJc3N1ZSB3YXJuaW5ncyBmb3IgY29k ZSBpbiBzeXN0ZW0gaGVhZGVycy4KVGhlc2UgYXJlIG5vcm1hbGx5IHVuaGVscGZ1bCBpbiBm aW5kaW5nIGJ1Z3MgaW4geW91ciBvd24gY29kZSwgdGhlcmVmb3JlIHN1cHByZXNzZWQuCklm IHlvdSBhcmUgcmVzcG9uc2libGUgZm9yIHRoZSBzeXN0ZW0gbGlicmFyeSwgeW91IG1heSB3 YW50IHRvIHNlZSB0aGVtLgouUHAKLkl0IEZsIHcKU3VwcHJlc3MgYWxsIHdhcm5pbmdzLCBp bmNsdWRpbmcgdGhvc2Ugd2hpY2ggR05VIENQUCBpc3N1ZXMgYnkgZGVmYXVsdC4KLlBwCi5J dCBGbCBwZWRhbnRpYwpJc3N1ZSBhbGwgdGhlIG1hbmRhdG9yeSBkaWFnbm9zdGljcyBsaXN0 ZWQgaW4gdGhlIEMgc3RhbmRhcmQuClNvbWUgb2YgdGhlbSBhcmUgbGVmdCBvdXQgYnkgZGVm YXVsdCwgc2luY2UgdGhleSB0cmlnZ2VyIGZyZXF1ZW50bHkgb24gaGFybWxlc3MgY29kZS4K LlBwCi5JdCBGbCBwZWRhbnRpYy1lcnJvcnMKSXNzdWUgYWxsIHRoZSBtYW5kYXRvcnkgZGlh Z25vc3RpY3MsIGFuZCBtYWtlIGFsbCBtYW5kYXRvcnkgZGlhZ25vc3RpY3MgaW50byBlcnJv cnMuClRoaXMgaW5jbHVkZXMgbWFuZGF0b3J5IGRpYWdub3N0aWNzIHRoYXQgR0NDIGlzc3Vl cyB3aXRob3V0Ci5GbCBwZWRhbnRpYwpidXQgdHJlYXRzIGFzIHdhcm5pbmdzLgouUHAKLkl0 IEZsIE0KSW5zdGVhZCBvZiBvdXRwdXR0aW5nIHRoZSByZXN1bHQgb2YgcHJlcHJvY2Vzc2lu Zywgb3V0cHV0IGEgcnVsZSBzdWl0YWJsZSBmb3IKLlN5IG1ha2UKZGVzY3JpYmluZyB0aGUg ZGVwZW5kZW5jaWVzIG9mIHRoZSBtYWluIHNvdXJjZSBmaWxlLgpUaGUgcHJlcHJvY2Vzc29y IG91dHB1dHMgb25lCi5TeSBtYWtlCnJ1bGUgY29udGFpbmluZyB0aGUgb2JqZWN0IGZpbGUg bmFtZSBmb3IgdGhhdCBzb3VyY2UgZmlsZSwgYSBjb2xvbiwgYW5kIHRoZSBuYW1lcyBvZiBh bGwgdGhlIGluY2x1ZGVkIGZpbGVzLCBpbmNsdWRpbmcgdGhvc2UgY29taW5nIGZyb20KLkZs IGluY2x1ZGUKb3IKLkZsIGltYWNyb3MKY29tbWFuZCBsaW5lIG9wdGlvbnMuCi5QcApVbmxl c3Mgc3BlY2lmaWVkIGV4cGxpY2l0bHkgKHdpdGgKLkZsIE1UCm9yCi5GbCBNUSApICwKdGhl IG9iamVjdCBmaWxlIG5hbWUgY29uc2lzdHMgb2YgdGhlIGJhc2VuYW1lIG9mIHRoZSBzb3Vy Y2UgZmlsZSB3aXRoIGFueSBzdWZmaXggcmVwbGFjZWQgd2l0aCBvYmplY3QgZmlsZSBzdWZm aXguCklmIHRoZXJlIGFyZSBtYW55IGluY2x1ZGVkIGZpbGVzIHRoZW4gdGhlIHJ1bGUgaXMg c3BsaXQgaW50byBzZXZlcmFsIGxpbmVzIHVzaW5nCi5TeSBcZQotbmV3bGluZS4KVGhlIHJ1 bGUgaGFzIG5vIGNvbW1hbmRzLgouUHAKVGhpcyBvcHRpb24gZG9lcyBub3Qgc3VwcHJlc3Mg dGhlIHByZXByb2Nlc3NvcidzIGRlYnVnIG91dHB1dCwgc3VjaCBhcwouRmwgZE0gLgpUbyBh dm9pZCBtaXhpbmcgc3VjaCBkZWJ1ZyBvdXRwdXQgd2l0aCB0aGUgZGVwZW5kZW5jeSBydWxl cyB5b3Ugc2hvdWxkIGV4cGxpY2l0bHkgc3BlY2lmeSB0aGUgZGVwZW5kZW5jeSBvdXRwdXQg ZmlsZSB3aXRoCi5GbCBNRiAsCm9yIHVzZSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBsaWtl Ci5TeSBERVBFTkRFTkNJRVNfT1VUUFVUIC4KRGVidWcgb3V0cHV0IHdpbGwgc3RpbGwgYmUg c2VudCB0byB0aGUgcmVndWxhciBvdXRwdXQgc3RyZWFtIGFzIG5vcm1hbC4KLlBwClBhc3Np bmcKLkZsIE0KdG8gdGhlIGRyaXZlciBpbXBsaWVzCi5GbCBFICwKYW5kIHN1cHByZXNzZXMg d2FybmluZ3Mgd2l0aCBhbiBpbXBsaWNpdAouRmwgdyAuCi5QcAouSXQgRmwgTU0KTGlrZQou RmwgTQpidXQgZG8gbm90IG1lbnRpb24gaGVhZGVyIGZpbGVzIHRoYXQgYXJlIGZvdW5kIGlu IHN5c3RlbSBoZWFkZXIgZGlyZWN0b3JpZXMsIG5vciBoZWFkZXIgZmlsZXMgdGhhdCBhcmUg aW5jbHVkZWQsIGRpcmVjdGx5IG9yIGluZGlyZWN0bHksIGZyb20gc3VjaCBhIGhlYWRlci4K LlBwClRoaXMgaW1wbGllcyB0aGF0IHRoZSBjaG9pY2Ugb2YgYW5nbGUgYnJhY2tldHMgb3Ig ZG91YmxlIHF1b3RlcyBpbiBhbgouU3kgI2luY2x1ZGUKZGlyZWN0aXZlIGRvZXMgbm90IGlu IGl0c2VsZiBkZXRlcm1pbmUgd2hldGhlciB0aGF0IGhlYWRlciB3aWxsIGFwcGVhciBpbgou RmwgTU0KZGVwZW5kZW5jeSBvdXRwdXQuClRoaXMgaXMgYSBzbGlnaHQgY2hhbmdlIGluIHNl bWFudGljcyBmcm9tIEdDQyB2ZXJzaW9ucyAzLjAgYW5kIGVhcmxpZXIuCi5QcApAYW5jaG9y e2Rhc2hNRn0KLlBwCi5JdCBGbCBNRiBBciBmaWxlCldoZW4gdXNlZCB3aXRoCi5GbCBNCm9y Ci5GbCBNTSAsCnNwZWNpZmllcyBhIGZpbGUgdG8gd3JpdGUgdGhlIGRlcGVuZGVuY2llcyB0 by4KSWYgbm8KLkZsIE1GCnN3aXRjaCBpcyBnaXZlbiB0aGUgcHJlcHJvY2Vzc29yIHNlbmRz IHRoZSBydWxlcyB0byB0aGUgc2FtZSBwbGFjZSBpdCB3b3VsZCBoYXZlIHNlbnQgcHJlcHJv Y2Vzc2VkIG91dHB1dC4KLlBwCldoZW4gdXNlZCB3aXRoIHRoZSBkcml2ZXIgb3B0aW9ucwou RmwgTUQKb3IKLkZsIE1NRCAsCi5GbCBNRgpvdmVycmlkZXMgdGhlIGRlZmF1bHQgZGVwZW5k ZW5jeSBvdXRwdXQgZmlsZS4KLlBwCi5JdCBGbCBNRwpJbiBjb25qdW5jdGlvbiB3aXRoIGFu IG9wdGlvbiBzdWNoIGFzCi5GbCBNCnJlcXVlc3RpbmcgZGVwZW5kZW5jeSBnZW5lcmF0aW9u LAouRmwgTUcKYXNzdW1lcyBtaXNzaW5nIGhlYWRlciBmaWxlcyBhcmUgZ2VuZXJhdGVkIGZp bGVzIGFuZCBhZGRzIHRoZW0gdG8gdGhlIGRlcGVuZGVuY3kgbGlzdCB3aXRob3V0IHJhaXNp bmcgYW4gZXJyb3IuClRoZSBkZXBlbmRlbmN5IGZpbGVuYW1lIGlzIHRha2VuIGRpcmVjdGx5 IGZyb20gdGhlCi5WYSAjaW5jbHVkZQpkaXJlY3RpdmUgd2l0aG91dCBwcmVwZW5kaW5nIGFu eSBwYXRoLgouRmwgTUcKYWxzbyBzdXBwcmVzc2VzIHByZXByb2Nlc3NlZCBvdXRwdXQsIGFz IGEgbWlzc2luZyBoZWFkZXIgZmlsZSByZW5kZXJzIHRoaXMgdXNlbGVzcy4KLlBwClRoaXMg ZmVhdHVyZSBpcyB1c2VkIGluIGF1dG9tYXRpYyB1cGRhdGluZyBvZiBtYWtlZmlsZXMuCi5Q cAouSXQgRmwgTVAKVGhpcyBvcHRpb24gaW5zdHJ1Y3RzIENQUCB0byBhZGQgYSBwaG9ueSB0 YXJnZXQgZm9yIGVhY2ggZGVwZW5kZW5jeSBvdGhlciB0aGFuIHRoZSBtYWluIGZpbGUsIGNh dXNpbmcgZWFjaCB0byBkZXBlbmQgb24gbm90aGluZy4KVGhlc2UgZHVtbXkgcnVsZXMgd29y ayBhcm91bmQgZXJyb3JzCi5TeSBtYWtlCmdpdmVzIGlmIHlvdSByZW1vdmUgaGVhZGVyIGZp bGVzIHdpdGhvdXQgdXBkYXRpbmcgdGhlCi5QYSBNYWtlZmlsZQp0byBtYXRjaC4KLlBwClRo aXMgaXMgdHlwaWNhbCBvdXRwdXQ6Ci5QcAouQmQgLWxpdGVyYWwgLW9mZnNldCBpbmRlbnQK dGVzdC5vOiB0ZXN0LmMgdGVzdC5oCgp0ZXN0Lmg6Ci5FZAouSXQgRmwgTVQgQXIgdGFyZ2V0 CkNoYW5nZSB0aGUgdGFyZ2V0IG9mIHRoZSBydWxlIGVtaXR0ZWQgYnkgZGVwZW5kZW5jeSBn ZW5lcmF0aW9uLgpCeSBkZWZhdWx0IENQUCB0YWtlcyB0aGUgbmFtZSBvZiB0aGUgbWFpbiBp bnB1dCBmaWxlLCBpbmNsdWRpbmcgYW55IHBhdGgsIGRlbGV0ZXMgYW55IGZpbGUgc3VmZml4 IHN1Y2ggYXMKLlN5IC5jICwKYW5kIGFwcGVuZHMgdGhlIHBsYXRmb3JtJ3MgdXN1YWwgb2Jq ZWN0IHN1ZmZpeC4KVGhlIHJlc3VsdCBpcyB0aGUgdGFyZ2V0LgouUHAKQW4KLkZsIE1UCm9w dGlvbiB3aWxsIHNldCB0aGUgdGFyZ2V0IHRvIGJlIGV4YWN0bHkgdGhlIHN0cmluZyB5b3Ug c3BlY2lmeS4KSWYgeW91IHdhbnQgbXVsdGlwbGUgdGFyZ2V0cywgeW91IGNhbiBzcGVjaWZ5 IHRoZW0gYXMgYSBzaW5nbGUgYXJndW1lbnQgdG8KLkZsIE1UICwKb3IgdXNlIG11bHRpcGxl Ci5GbCBNVApvcHRpb25zLgouUHAKRm9yIGV4YW1wbGUsCi5TeSAtTVQgJyQob2JqcGZ4KWZv by5vJwptaWdodCBnaXZlCi5QcAouQmQgLWxpdGVyYWwgLW9mZnNldCBpbmRlbnQKJChvYmpw ZngpZm9vLm86IGZvby5jCi5FZAouSXQgRmwgTVEgQXIgdGFyZ2V0ClNhbWUgYXMKLkZsIE1U ICwKYnV0IGl0IHF1b3RlcyBhbnkgY2hhcmFjdGVycyB3aGljaCBhcmUgc3BlY2lhbCB0byBN YWtlLgouU3kgLU1RICckKG9ianBmeClmb28ubycKZ2l2ZXMKLlBwCi5CZCAtbGl0ZXJhbCAt b2Zmc2V0IGluZGVudAokJChvYmpwZngpZm9vLm86IGZvby5jCi5FZApUaGUgZGVmYXVsdCB0 YXJnZXQgaXMgYXV0b21hdGljYWxseSBxdW90ZWQsIGFzIGlmIGl0IHdlcmUgZ2l2ZW4gd2l0 aAouRmwgTVEgLgouUHAKLkl0IEZsIE1ECi5GbCBNRAppcyBlcXVpdmFsZW50IHRvCi5GbCBN IEZsIE1GIEFyIGZpbGUgLApleGNlcHQgdGhhdAouRmwgRQppcyBub3QgaW1wbGllZC4KVGhl IGRyaXZlciBkZXRlcm1pbmVzCi5FbSBmaWxlCmJhc2VkIG9uIHdoZXRoZXIgYW4KLkZsIG8K b3B0aW9uIGlzIGdpdmVuLgpJZiBpdCBpcywgdGhlIGRyaXZlciB1c2VzIGl0cyBhcmd1bWVu dCBidXQgd2l0aCBhIHN1ZmZpeCBvZgouUGEgLmQgLApvdGhlcndpc2UgaXQgdGFrZSB0aGUg YmFzZW5hbWUgb2YgdGhlIGlucHV0IGZpbGUgYW5kIGFwcGxpZXMgYQouUGEgLmQKc3VmZml4 LgouUHAKSWYKLkZsIE1ECmlzIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aAouRmwgRSAsCmFu eQouRmwgbwpzd2l0Y2ggaXMgdW5kZXJzdG9vZCB0byBzcGVjaWZ5IHRoZSBkZXBlbmRlbmN5 IG91dHB1dCBmaWxlIChidXQgQHB4cmVme2Rhc2hNRiwsLU1GfSksIGJ1dCBpZiB1c2VkIHdp dGhvdXQKLkZsIEUgLAplYWNoCi5GbCBvCmlzIHVuZGVyc3Rvb2QgdG8gc3BlY2lmeSBhIHRh cmdldCBvYmplY3QgZmlsZS4KLlBwClNpbmNlCi5GbCBFCmlzIG5vdCBpbXBsaWVkLAouRmwg TUQKY2FuIGJlIHVzZWQgdG8gZ2VuZXJhdGUgYSBkZXBlbmRlbmN5IG91dHB1dCBmaWxlIGFz IGEgc2lkZS1lZmZlY3Qgb2YgdGhlIGNvbXBpbGF0aW9uIHByb2Nlc3MuCi5QcAouSXQgRmwg TU1ECkxpa2UKLkZsIE1ECmV4Y2VwdCBtZW50aW9uIG9ubHkgdXNlciBoZWFkZXIgZmlsZXMs IG5vdCBzeXN0ZW0gaGVhZGVyIGZpbGVzLgouUHAKLkl0IEZsIGZwY2gtZGVwcwpXaGVuIHVz aW5nIHByZWNvbXBpbGVkIGhlYWRlcnMsIHRoaXMgZmxhZyB3aWxsIGNhdXNlIHRoZSBkZXBl bmRlbmN5LW91dHB1dCBmbGFncyB0byBhbHNvIGxpc3QgdGhlIGZpbGVzIGZyb20gdGhlIHBy ZWNvbXBpbGVkIGhlYWRlcidzIGRlcGVuZGVuY2llcy4KSWYgbm90IHNwZWNpZmllZCBvbmx5 IHRoZSBwcmVjb21waWxlZCBoZWFkZXIgd291bGQgYmUgbGlzdGVkIGFuZCBub3QgdGhlIGZp bGVzIHRoYXQgd2VyZSB1c2VkIHRvIGNyZWF0ZSBpdCBiZWNhdXNlIHRob3NlIGZpbGVzIGFy ZSBub3QgY29uc3VsdGVkIHdoZW4gYSBwcmVjb21waWxlZCBoZWFkZXIgaXMgdXNlZC4KLlBw Ci5JdCBGbCBmcGNoLXByZXByb2Nlc3MKVGhpcyBvcHRpb24gYWxsb3dzIHVzZSBvZiBhIHBy ZWNvbXBpbGVkIGhlYWRlciB0b2dldGhlciB3aXRoCi5GbCBFIC4KSXQgaW5zZXJ0cyBhIHNw ZWNpYWwKLlZhICNwcmFnbWEgLAouVmEgI3ByYWdtYSBHQ0MgcGNoX3ByZXByb2Nlc3MgXCYi XCpbTHRdZmlsZW5hbWVcKltHdF0iCmluIHRoZSBvdXRwdXQgdG8gbWFyayB0aGUgcGxhY2Ug d2hlcmUgdGhlIHByZWNvbXBpbGVkIGhlYWRlciB3YXMgZm91bmQsIGFuZCBpdHMgZmlsZW5h bWUuCldoZW4KLkZsIGZwcmVwcm9jZXNzZWQKaXMgaW4gdXNlLCBHQ0MgcmVjb2duaXplcyB0 aGlzCi5WYSAjcHJhZ21hCmFuZCBsb2FkcyB0aGUgUENILgouUHAKVGhpcyBvcHRpb24gaXMg b2ZmIGJ5IGRlZmF1bHQsIGJlY2F1c2UgdGhlIHJlc3VsdGluZyBwcmVwcm9jZXNzZWQgb3V0 cHV0IGlzIG9ubHkgcmVhbGx5IHN1aXRhYmxlIGFzIGlucHV0IHRvIEdDQy4KSXQgaXMgc3dp dGNoZWQgb24gYnkKLkZsIHNhdmUtdGVtcHMgLgouUHAKWW91IHNob3VsZCBub3Qgd3JpdGUg dGhpcwouVmEgI3ByYWdtYQppbiB5b3VyIG93biBjb2RlLCBidXQgaXQgaXMgc2FmZSB0byBl ZGl0IHRoZSBmaWxlbmFtZSBpZiB0aGUgUENIIGZpbGUgaXMgYXZhaWxhYmxlIGluIGEgZGlm ZmVyZW50IGxvY2F0aW9uLgpUaGUgZmlsZW5hbWUgbWF5IGJlIGFic29sdXRlIG9yIGl0IG1h eSBiZSByZWxhdGl2ZSB0byBHQ0MncyBjdXJyZW50IGRpcmVjdG9yeS4KLlBwCi5JdCBGbCB4 IEFyIGMKLkl0IEZsIHggQXIgYysrCi5JdCBGbCB4IEFyIG9iamVjdGl2ZS1jCi5JdCBGbCB4 IEFyIGFzc2VtYmxlci13aXRoLWNwcApTcGVjaWZ5IHRoZSBzb3VyY2UgbGFuZ3VhZ2U6IEMs IEMrKywgT2JqZWN0aXZlLUMsIG9yIGFzc2VtYmx5LgpUaGlzIGhhcyBub3RoaW5nIHRvIGRv IHdpdGggc3RhbmRhcmRzIGNvbmZvcm1hbmNlIG9yIGV4dGVuc2lvbnM7IGl0IG1lcmVseSBz ZWxlY3RzIHdoaWNoIGJhc2Ugc3ludGF4IHRvIGV4cGVjdC4KSWYgeW91IGdpdmUgbm9uZSBv ZiB0aGVzZSBvcHRpb25zLCBjcHAgd2lsbCBkZWR1Y2UgdGhlIGxhbmd1YWdlIGZyb20gdGhl IGV4dGVuc2lvbiBvZiB0aGUgc291cmNlIGZpbGU6Ci5TeSAuYyAsCi5TeSAuY2MgLAouU3kg Lm0gLApvcgouU3kgLlMgLgpTb21lIG90aGVyIGNvbW1vbiBleHRlbnNpb25zIGZvciBDKysg YW5kIGFzc2VtYmx5IGFyZSBhbHNvIHJlY29nbml6ZWQuCklmIGNwcCBkb2VzIG5vdCByZWNv Z25pemUgdGhlIGV4dGVuc2lvbiwgaXQgd2lsbCB0cmVhdCB0aGUgZmlsZSBhcyBDOyB0aGlz IGlzIHRoZSBtb3N0IGdlbmVyaWMgbW9kZS4KLlBwCi5FbSBOb3RlOgpQcmV2aW91cyB2ZXJz aW9ucyBvZiBjcHAgYWNjZXB0ZWQgYQouRmwgbGFuZwpvcHRpb24gd2hpY2ggc2VsZWN0ZWQg Ym90aCB0aGUgbGFuZ3VhZ2UgYW5kIHRoZSBzdGFuZGFyZHMgY29uZm9ybWFuY2UgbGV2ZWwu ClRoaXMgb3B0aW9uIGhhcyBiZWVuIHJlbW92ZWQsIGJlY2F1c2UgaXQgY29uZmxpY3RzIHdp dGggdGhlCi5GbCBsCm9wdGlvbi4KLlBwCi5JdCBGbCBzdGQ9IE5zIEFyIHN0YW5kYXJkCi5J dCBGbCBhbnNpClNwZWNpZnkgdGhlIHN0YW5kYXJkIHRvIHdoaWNoIHRoZSBjb2RlIHNob3Vs ZCBjb25mb3JtLgpDdXJyZW50bHkgQ1BQIGtub3dzIGFib3V0IEMgYW5kIEMrKyBzdGFuZGFy ZHM7IG90aGVycyBtYXkgYmUgYWRkZWQgaW4gdGhlIGZ1dHVyZS4KLlBwCi5FbSBzdGFuZGFy ZAptYXkgYmUgb25lIG9mOgouUHAKLkJsIC10YWcgLXdpZHRoIHh4Ci5JdCBTeSBpc285ODk5 OjE5OTAgTnMKLkl0IFN5IGM4OSBOcwpUaGUgSVNPIEMgc3RhbmRhcmQgZnJvbSAxOTkwLgou U3kgYzg5CmlzIHRoZSBjdXN0b21hcnkgc2hvcnRoYW5kIGZvciB0aGlzIHZlcnNpb24gb2Yg dGhlIHN0YW5kYXJkLgouUHAKVGhlCi5GbCBhbnNpCm9wdGlvbiBpcyBlcXVpdmFsZW50IHRv Ci5GbCBzdGQ9Yzg5IC4KLlBwCi5JdCBTeSBpc285ODk5OjE5OTQwOSBOcwpUaGUgMTk5MCBD IHN0YW5kYXJkLCBhcyBhbWVuZGVkIGluIDE5OTQuCi5QcAouSXQgU3kgaXNvOTg5OToxOTk5 IE5zCi5JdCBTeSBjOTkgTnMKLkl0IFN5IGlzbzk4OTk6MTk5eCBOcwouSXQgU3kgYzl4IE5z ClRoZSByZXZpc2VkIElTTyBDIHN0YW5kYXJkLCBwdWJsaXNoZWQgaW4gRGVjZW1iZXIgMTk5 OS4KQmVmb3JlIHB1YmxpY2F0aW9uLCB0aGlzIHdhcyBrbm93biBhcyBDOVguCi5QcAouSXQg U3kgZ251ODkgTnMKVGhlIDE5OTAgQyBzdGFuZGFyZCBwbHVzIEdOVSBleHRlbnNpb25zLgpU aGlzIGlzIHRoZSBkZWZhdWx0LgouUHAKLkl0IFN5IGdudTk5IE5zCi5JdCBTeSBnbnU5eCBO cwpUaGUgMTk5OSBDIHN0YW5kYXJkIHBsdXMgR05VIGV4dGVuc2lvbnMuCi5QcAouSXQgU3kg YysrOTggTnMKVGhlIDE5OTggSVNPIEMrKyBzdGFuZGFyZCBwbHVzIGFtZW5kbWVudHMuCi5Q cAouSXQgU3kgZ251Kys5OCBOcwpUaGUgc2FtZSBhcwouRmwgc3RkPWMrKzk4CnBsdXMgR05V IGV4dGVuc2lvbnMuClRoaXMgaXMgdGhlIGRlZmF1bHQgZm9yIEMrKyBjb2RlLgouUHAKLkVs Ci5JdCBGbCBJLQpTcGxpdCB0aGUgaW5jbHVkZSBwYXRoLgpBbnkgZGlyZWN0b3JpZXMgc3Bl Y2lmaWVkIHdpdGgKLkZsIEkKb3B0aW9ucyBiZWZvcmUKLkZsIEktCmFyZSBzZWFyY2hlZCBv bmx5IGZvciBoZWFkZXJzIHJlcXVlc3RlZCB3aXRoCi5WYSAuU3kgI2luY2x1ZGUgXCYiZmls ZSIgOwp0aGV5IGFyZSBub3Qgc2VhcmNoZWQgZm9yCi5WYSAuU3kgI2luY2x1ZGUgXCpbTHRd ZmlsZVwqW0d0XSAuCklmIGFkZGl0aW9uYWwgZGlyZWN0b3JpZXMgYXJlIHNwZWNpZmllZCB3 aXRoCi5GbCBJCm9wdGlvbnMgYWZ0ZXIgdGhlCi5GbCBJLSAsCnRob3NlIGRpcmVjdG9yaWVz IGFyZSBzZWFyY2hlZCBmb3IgYWxsCi5TeSAjaW5jbHVkZQpkaXJlY3RpdmVzLgouUHAKSW4g YWRkaXRpb24sCi5GbCBJLQppbmhpYml0cyB0aGUgdXNlIG9mIHRoZSBkaXJlY3Rvcnkgb2Yg dGhlIGN1cnJlbnQgZmlsZSBkaXJlY3RvcnkgYXMgdGhlIGZpcnN0IHNlYXJjaCBkaXJlY3Rv cnkgZm9yCi5WYSAuU3kgI2luY2x1ZGUgXCYiZmlsZSIgLgpUaGlzIG9wdGlvbiBoYXMgYmVl biBkZXByZWNhdGVkLgouUHAKLkl0IEZsIG5vc3RkaW5jCkRvIG5vdCBzZWFyY2ggdGhlIHN0 YW5kYXJkIHN5c3RlbSBkaXJlY3RvcmllcyBmb3IgaGVhZGVyIGZpbGVzLgpPbmx5IHRoZSBk aXJlY3RvcmllcyB5b3UgaGF2ZSBzcGVjaWZpZWQgd2l0aAouRmwgSQpvcHRpb25zIChhbmQg dGhlIGRpcmVjdG9yeSBvZiB0aGUgY3VycmVudCBmaWxlLCBpZiBhcHByb3ByaWF0ZSkgYXJl IHNlYXJjaGVkLgouUHAKLkl0IEZsIG5vc3RkaW5jKysKRG8gbm90IHNlYXJjaCBmb3IgaGVh ZGVyIGZpbGVzIGluIHRoZSBDKystc3BlY2lmaWMgc3RhbmRhcmQgZGlyZWN0b3JpZXMsIGJ1 dCBkbyBzdGlsbCBzZWFyY2ggdGhlIG90aGVyIHN0YW5kYXJkIGRpcmVjdG9yaWVzLgooVGhp cyBvcHRpb24gaXMgdXNlZCB3aGVuIGJ1aWxkaW5nIHRoZSBDKysgbGlicmFyeS4pCi5QcAou SXQgRmwgaW5jbHVkZSBBciBmaWxlClByb2Nlc3MKLkVtIGZpbGUKYXMgaWYKLlZhICNpbmNs dWRlIFwmImZpbGUiCmFwcGVhcmVkIGFzIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSBwcmltYXJ5 IHNvdXJjZSBmaWxlLgpIb3dldmVyLCB0aGUgZmlyc3QgZGlyZWN0b3J5IHNlYXJjaGVkIGZv cgouRW0gZmlsZQppcyB0aGUgcHJlcHJvY2Vzc29yJ3Mgd29ya2luZyBkaXJlY3RvcnkKLkVt IGluc3RlYWQgb2YKdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBtYWluIHNvdXJjZSBm aWxlLgpJZiBub3QgZm91bmQgdGhlcmUsIGl0IGlzIHNlYXJjaGVkIGZvciBpbiB0aGUgcmVt YWluZGVyIG9mIHRoZQouVmEgI2luY2x1ZGUgXCYiLi4uIgpzZWFyY2ggY2hhaW4gYXMgbm9y bWFsLgouUHAKSWYgbXVsdGlwbGUKLkZsIGluY2x1ZGUKb3B0aW9ucyBhcmUgZ2l2ZW4sIHRo ZSBmaWxlcyBhcmUgaW5jbHVkZWQgaW4gdGhlIG9yZGVyIHRoZXkgYXBwZWFyIG9uIHRoZSBj b21tYW5kIGxpbmUuCi5QcAouSXQgRmwgaW1hY3JvcyBBciBmaWxlCkV4YWN0bHkgbGlrZQou RmwgaW5jbHVkZSAsCmV4Y2VwdCB0aGF0IGFueSBvdXRwdXQgcHJvZHVjZWQgYnkgc2Nhbm5p bmcKLkVtIGZpbGUKaXMgdGhyb3duIGF3YXkuCk1hY3JvcyBpdCBkZWZpbmVzIHJlbWFpbiBk ZWZpbmVkLgpUaGlzIGFsbG93cyB5b3UgdG8gYWNxdWlyZSBhbGwgdGhlIG1hY3JvcyBmcm9t IGEgaGVhZGVyIHdpdGhvdXQgYWxzbyBwcm9jZXNzaW5nIGl0cyBkZWNsYXJhdGlvbnMuCi5Q cApBbGwgZmlsZXMgc3BlY2lmaWVkIGJ5Ci5GbCBpbWFjcm9zCmFyZSBwcm9jZXNzZWQgYmVm b3JlIGFsbCBmaWxlcyBzcGVjaWZpZWQgYnkKLkZsIGluY2x1ZGUgLgouUHAKLkl0IEZsIGlk aXJhZnRlciBBciBkaXIKU2VhcmNoCi5FbSBkaXIKZm9yIGhlYWRlciBmaWxlcywgYnV0IGRv IGl0Ci5FbSBhZnRlcgphbGwgZGlyZWN0b3JpZXMgc3BlY2lmaWVkIHdpdGgKLkZsIEkKYW5k IHRoZSBzdGFuZGFyZCBzeXN0ZW0gZGlyZWN0b3JpZXMgaGF2ZSBiZWVuIGV4aGF1c3RlZC4K LkVtIGRpcgppcyB0cmVhdGVkIGFzIGEgc3lzdGVtIGluY2x1ZGUgZGlyZWN0b3J5LgouUHAK Lkl0IEZsIGlwcmVmaXggQXIgcHJlZml4ClNwZWNpZnkKLkVtIHByZWZpeAphcyB0aGUgcHJl Zml4IGZvciBzdWJzZXF1ZW50Ci5GbCBpd2l0aHByZWZpeApvcHRpb25zLgpJZiB0aGUgcHJl Zml4IHJlcHJlc2VudHMgYSBkaXJlY3RvcnksIHlvdSBzaG91bGQgaW5jbHVkZSB0aGUgZmlu YWwKLlN5IC8gLgouUHAKLkl0IEZsIGl3aXRocHJlZml4IEFyIGRpcgouSXQgRmwgaXdpdGhw cmVmaXhiZWZvcmUgQXIgZGlyCkFwcGVuZAouRW0gZGlyCnRvIHRoZSBwcmVmaXggc3BlY2lm aWVkIHByZXZpb3VzbHkgd2l0aAouRmwgaXByZWZpeCAsCmFuZCBhZGQgdGhlIHJlc3VsdGlu ZyBkaXJlY3RvcnkgdG8gdGhlIGluY2x1ZGUgc2VhcmNoIHBhdGguCi5GbCBpd2l0aHByZWZp eGJlZm9yZQpwdXRzIGl0IGluIHRoZSBzYW1lIHBsYWNlCi5GbCBJCndvdWxkOwouRmwgaXdp dGhwcmVmaXgKcHV0cyBpdCB3aGVyZQouRmwgaWRpcmFmdGVyCndvdWxkLgouUHAKLkl0IEZs IGlzeXNyb290IEFyIGRpcgpUaGlzIG9wdGlvbiBpcyBsaWtlIHRoZQouRmwgLXN5c3Jvb3QK b3B0aW9uLCBidXQgYXBwbGllcyBvbmx5IHRvIGhlYWRlciBmaWxlcy4KU2VlIHRoZQouRmwg LXN5c3Jvb3QKb3B0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uLgouUHAKLkl0IEZsIGlzeXN0 ZW0gQXIgZGlyClNlYXJjaAouRW0gZGlyCmZvciBoZWFkZXIgZmlsZXMsIGFmdGVyIGFsbCBk aXJlY3RvcmllcyBzcGVjaWZpZWQgYnkKLkZsIEkKYnV0IGJlZm9yZSB0aGUgc3RhbmRhcmQg c3lzdGVtIGRpcmVjdG9yaWVzLgpNYXJrIGl0IGFzIGEgc3lzdGVtIGRpcmVjdG9yeSwgc28g dGhhdCBpdCBnZXRzIHRoZSBzYW1lIHNwZWNpYWwgdHJlYXRtZW50IGFzIGlzIGFwcGxpZWQg dG8gdGhlIHN0YW5kYXJkIHN5c3RlbSBkaXJlY3Rvcmllcy4KLlBwCi5JdCBGbCBjeHgtaXN5 c3RlbSBBciBkaXIKU2VhcmNoCi5FbSBkaXIKZm9yIEMrKyBoZWFkZXIgZmlsZXMsIGFmdGVy IGFsbCBkaXJlY3RvcmllcyBzcGVjaWZpZWQgYnkKLkZsIEkKYnV0IGJlZm9yZSB0aGUgc3Rh bmRhcmQgc3lzdGVtIGRpcmVjdG9yaWVzLgpNYXJrIGl0IGFzIGEgc3lzdGVtIGRpcmVjdG9y eSwgc28gdGhhdCBpdCBnZXRzIHRoZSBzYW1lIHNwZWNpYWwgdHJlYXRtZW50IGFzIGlzIGFw cGxpZWQgdG8gdGhlIHN0YW5kYXJkIHN5c3RlbSBkaXJlY3Rvcmllcy4KLlBwCi5JdCBGbCBp cXVvdGUgQXIgZGlyClNlYXJjaAouRW0gZGlyCm9ubHkgZm9yIGhlYWRlciBmaWxlcyByZXF1 ZXN0ZWQgd2l0aAouVmEgLlN5ICNpbmNsdWRlIFwmImZpbGUiIDsKdGhleSBhcmUgbm90IHNl YXJjaGVkIGZvcgouVmEgLlN5ICNpbmNsdWRlIFwqW0x0XWZpbGVcKltHdF0gLApiZWZvcmUg YWxsIGRpcmVjdG9yaWVzIHNwZWNpZmllZCBieQouRmwgSQphbmQgYmVmb3JlIHRoZSBzdGFu ZGFyZCBzeXN0ZW0gZGlyZWN0b3JpZXMuCi5QcAouSXQgRmwgZmRvbGxhcnMtaW4taWRlbnRp ZmllcnMKQGFuY2hvcntmZG9sbGFycy1pbi1pZGVudGlmaWVyc30gQWNjZXB0Ci5TeSAkCmlu IGlkZW50aWZpZXJzLgouUHAKLkl0IEZsIGZleHRlbmRlZC1pZGVudGlmaWVycwpBY2NlcHQg dW5pdmVyc2FsIGNoYXJhY3RlciBuYW1lcyBpbiBpZGVudGlmaWVycy4KVGhpcyBvcHRpb24g aXMgZXhwZXJpbWVudGFsOyBpbiBhIGZ1dHVyZSB2ZXJzaW9uIG9mIEdDQywgaXQgd2lsbCBi ZSBlbmFibGVkIGJ5IGRlZmF1bHQgZm9yIEM5OSBhbmQgQysrLgouUHAKLkl0IEZsIGZwcmVw cm9jZXNzZWQKSW5kaWNhdGUgdG8gdGhlIHByZXByb2Nlc3NvciB0aGF0IHRoZSBpbnB1dCBm aWxlIGhhcyBhbHJlYWR5IGJlZW4gcHJlcHJvY2Vzc2VkLgpUaGlzIHN1cHByZXNzZXMgdGhp bmdzIGxpa2UgbWFjcm8gZXhwYW5zaW9uLCB0cmlncmFwaCBjb252ZXJzaW9uLCBlc2NhcGVk IG5ld2xpbmUgc3BsaWNpbmcsIGFuZCBwcm9jZXNzaW5nIG9mIG1vc3QgZGlyZWN0aXZlcy4K VGhlIHByZXByb2Nlc3NvciBzdGlsbCByZWNvZ25pemVzIGFuZCByZW1vdmVzIGNvbW1lbnRz LCBzbyB0aGF0IHlvdSBjYW4gcGFzcyBhIGZpbGUgcHJlcHJvY2Vzc2VkIHdpdGgKLkZsIEMK dG8gdGhlIGNvbXBpbGVyIHdpdGhvdXQgcHJvYmxlbXMuCkluIHRoaXMgbW9kZSB0aGUgaW50 ZWdyYXRlZCBwcmVwcm9jZXNzb3IgaXMgbGl0dGxlIG1vcmUgdGhhbiBhIHRva2VuaXplciBm b3IgdGhlIGZyb250IGVuZHMuCi5QcAouRmwgZnByZXByb2Nlc3NlZAppcyBpbXBsaWNpdCBp ZiB0aGUgaW5wdXQgZmlsZSBoYXMgb25lIG9mIHRoZSBleHRlbnNpb25zCi5TeSAuaSAsCi5T eSAuaWkKb3IKLlN5IC5taSAuClRoZXNlIGFyZSB0aGUgZXh0ZW5zaW9ucyB0aGF0IEdDQyB1 c2VzIGZvciBwcmVwcm9jZXNzZWQgZmlsZXMgY3JlYXRlZCBieQouRmwgc2F2ZS10ZW1wcyAu Ci5QcAouSXQgRmwgZnRhYnN0b3A9IE5zIEFyIHdpZHRoClNldCB0aGUgZGlzdGFuY2UgYmV0 d2VlbiB0YWIgc3RvcHMuClRoaXMgaGVscHMgdGhlIHByZXByb2Nlc3NvciByZXBvcnQgY29y cmVjdCBjb2x1bW4gbnVtYmVycyBpbiB3YXJuaW5ncyBvciBlcnJvcnMsIGV2ZW4gaWYgdGFi cyBhcHBlYXIgb24gdGhlIGxpbmUuCklmIHRoZSB2YWx1ZSBpcyBsZXNzIHRoYW4gMSBvciBn cmVhdGVyIHRoYW4gMTAwLCB0aGUgb3B0aW9uIGlzIGlnbm9yZWQuClRoZSBkZWZhdWx0IGlz IDguCi5QcAouSXQgRmwgZmV4ZWMtY2hhcnNldD0gTnMgQXIgY2hhcnNldApTZXQgdGhlIGV4 ZWN1dGlvbiBjaGFyYWN0ZXIgc2V0LCB1c2VkIGZvciBzdHJpbmcgYW5kIGNoYXJhY3RlciBj b25zdGFudHMuClRoZSBkZWZhdWx0IGlzIFVURi04LgouRW0gY2hhcnNldApjYW4gYmUgYW55 IGVuY29kaW5nIHN1cHBvcnRlZCBieSB0aGUgc3lzdGVtJ3MKLlZhIGljb252CmxpYnJhcnkg cm91dGluZS4KLlBwCi5JdCBGbCBmd2lkZS1leGVjLWNoYXJzZXQ9IE5zIEFyIGNoYXJzZXQK U2V0IHRoZSB3aWRlIGV4ZWN1dGlvbiBjaGFyYWN0ZXIgc2V0LCB1c2VkIGZvciB3aWRlIHN0 cmluZyBhbmQgY2hhcmFjdGVyIGNvbnN0YW50cy4KVGhlIGRlZmF1bHQgaXMgVVRGLTMyIG9y IFVURi0xNiwgd2hpY2hldmVyIGNvcnJlc3BvbmRzIHRvIHRoZSB3aWR0aCBvZgouVmEgd2No YXJfdCAuCkFzIHdpdGgKLkZsIGZleGVjLWNoYXJzZXQgLAouRW0gY2hhcnNldApjYW4gYmUg YW55IGVuY29kaW5nIHN1cHBvcnRlZCBieSB0aGUgc3lzdGVtJ3MKLlZhIGljb252CmxpYnJh cnkgcm91dGluZTsgaG93ZXZlciwgeW91IHdpbGwgaGF2ZSBwcm9ibGVtcyB3aXRoIGVuY29k aW5ncyB0aGF0IGRvIG5vdCBmaXQgZXhhY3RseSBpbgouVmEgd2NoYXJfdCAuCi5QcAouSXQg RmwgZmlucHV0LWNoYXJzZXQ9IE5zIEFyIGNoYXJzZXQKU2V0IHRoZSBpbnB1dCBjaGFyYWN0 ZXIgc2V0LCB1c2VkIGZvciB0cmFuc2xhdGlvbiBmcm9tIHRoZSBjaGFyYWN0ZXIgc2V0IG9m IHRoZSBpbnB1dCBmaWxlIHRvIHRoZSBzb3VyY2UgY2hhcmFjdGVyIHNldCB1c2VkIGJ5IEdD Qy4KSWYgdGhlIGxvY2FsZSBkb2VzIG5vdCBzcGVjaWZ5LCBvciBHQ0MgY2Fubm90IGdldCB0 aGlzIGluZm9ybWF0aW9uIGZyb20gdGhlIGxvY2FsZSwgdGhlIGRlZmF1bHQgaXMgVVRGLTgu ClRoaXMgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZWl0aGVyIHRoZSBsb2NhbGUgb3IgdGhpcyBj b21tYW5kIGxpbmUgb3B0aW9uLgpDdXJyZW50bHkgdGhlIGNvbW1hbmQgbGluZSBvcHRpb24g dGFrZXMgcHJlY2VkZW5jZSBpZiB0aGVyZSdzIGEgY29uZmxpY3QuCi5FbSBjaGFyc2V0CmNh biBiZSBhbnkgZW5jb2Rpbmcgc3VwcG9ydGVkIGJ5IHRoZSBzeXN0ZW0ncwouVmEgaWNvbnYK bGlicmFyeSByb3V0aW5lLgouUHAKLkl0IEZsIGZ3b3JraW5nLWRpcmVjdG9yeQpFbmFibGUg Z2VuZXJhdGlvbiBvZiBsaW5lbWFya2VycyBpbiB0aGUgcHJlcHJvY2Vzc29yIG91dHB1dCB0 aGF0IHdpbGwgbGV0IHRoZSBjb21waWxlciBrbm93IHRoZSBjdXJyZW50IHdvcmtpbmcgZGly ZWN0b3J5IGF0IHRoZSB0aW1lIG9mIHByZXByb2Nlc3NpbmcuCldoZW4gdGhpcyBvcHRpb24g aXMgZW5hYmxlZCwgdGhlIHByZXByb2Nlc3NvciB3aWxsIGVtaXQsIGFmdGVyIHRoZSBpbml0 aWFsIGxpbmVtYXJrZXIsIGEgc2Vjb25kIGxpbmVtYXJrZXIgd2l0aCB0aGUgY3VycmVudCB3 b3JraW5nIGRpcmVjdG9yeSBmb2xsb3dlZCBieSB0d28gc2xhc2hlcy4KR0NDIHdpbGwgdXNl IHRoaXMgZGlyZWN0b3J5LCB3aGVuIGl0J3MgcHJlc2VudCBpbiB0aGUgcHJlcHJvY2Vzc2Vk IGlucHV0LCBhcyB0aGUgZGlyZWN0b3J5IGVtaXR0ZWQgYXMgdGhlIGN1cnJlbnQgd29ya2lu ZyBkaXJlY3RvcnkgaW4gc29tZSBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gZm9ybWF0cy4KVGhp cyBvcHRpb24gaXMgaW1wbGljaXRseSBlbmFibGVkIGlmIGRlYnVnZ2luZyBpbmZvcm1hdGlv biBpcyBlbmFibGVkLCBidXQgdGhpcyBjYW4gYmUgaW5oaWJpdGVkIHdpdGggdGhlIG5lZ2F0 ZWQgZm9ybQouRmwgZm5vLXdvcmtpbmctZGlyZWN0b3J5IC4KSWYgdGhlCi5GbCBQCmZsYWcg aXMgcHJlc2VudCBpbiB0aGUgY29tbWFuZCBsaW5lLCB0aGlzIG9wdGlvbiBoYXMgbm8gZWZm ZWN0LCBzaW5jZSBubwouVmEgI2xpbmUKZGlyZWN0aXZlcyBhcmUgZW1pdHRlZCB3aGF0c29l dmVyLgouUHAKLkl0IEZsIGZuby1zaG93LWNvbHVtbgpEbyBub3QgcHJpbnQgY29sdW1uIG51 bWJlcnMgaW4gZGlhZ25vc3RpY3MuClRoaXMgbWF5IGJlIG5lY2Vzc2FyeSBpZiBkaWFnbm9z dGljcyBhcmUgYmVpbmcgc2Nhbm5lZCBieSBhIHByb2dyYW0gdGhhdCBkb2VzIG5vdCB1bmRl cnN0YW5kIHRoZSBjb2x1bW4gbnVtYmVycywgc3VjaCBhcwouU3kgZGVqYWdudSAuCi5QcAou SXQgRmwgQSBBciBwcmVkaWNhdGUgTnMgPSBOcyBBciBhbnN3ZXIKTWFrZSBhbiBhc3NlcnRp b24gd2l0aCB0aGUgcHJlZGljYXRlCi5FbSBwcmVkaWNhdGUKYW5kIGFuc3dlcgouRW0gYW5z d2VyIC4KVGhpcyBmb3JtIGlzIHByZWZlcnJlZCB0byB0aGUgb2xkZXIgZm9ybQouRmwgQSBB ciBwcmVkaWNhdGUKLlN5ICgKLkVtIGFuc3dlcgouU3kgKSAsCndoaWNoIGlzIHN0aWxsIHN1 cHBvcnRlZCwgYmVjYXVzZSBpdCBkb2VzIG5vdCB1c2Ugc2hlbGwgc3BlY2lhbCBjaGFyYWN0 ZXJzLgouUHAKLkl0IEZsIEEgRmwgIE5zIEFyIHByZWRpY2F0ZSBOcyA9IE5zIEFyIGFuc3dl cgpDYW5jZWwgYW4gYXNzZXJ0aW9uIHdpdGggdGhlIHByZWRpY2F0ZQouRW0gcHJlZGljYXRl CmFuZCBhbnN3ZXIKLkVtIGFuc3dlciAuCi5QcAouSXQgRmwgZENIQVJTCi5FbSBDSEFSUwpp cyBhIHNlcXVlbmNlIG9mIG9uZSBvciBtb3JlIG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVy cywgYW5kIG11c3Qgbm90IGJlIHByZWNlZGVkIGJ5IGEgc3BhY2UuCk90aGVyIGNoYXJhY3Rl cnMgYXJlIGludGVycHJldGVkIGJ5IHRoZSBjb21waWxlciBwcm9wZXIsIG9yIHJlc2VydmVk IGZvciBmdXR1cmUgdmVyc2lvbnMgb2YgR0NDLCBhbmQgc28gYXJlIHNpbGVudGx5IGlnbm9y ZWQuCklmIHlvdSBzcGVjaWZ5IGNoYXJhY3RlcnMgd2hvc2UgYmVoYXZpb3IgY29uZmxpY3Rz LCB0aGUgcmVzdWx0IGlzIHVuZGVmaW5lZC4KLlBwCi5CbCAtdGFnIC13aWR0aCB4eAouSXQg U3kgTSBOcwpJbnN0ZWFkIG9mIHRoZSBub3JtYWwgb3V0cHV0LCBnZW5lcmF0ZSBhIGxpc3Qg b2YKLlN5ICNkZWZpbmUKZGlyZWN0aXZlcyBmb3IgYWxsIHRoZSBtYWNyb3MgZGVmaW5lZCBk dXJpbmcgdGhlIGV4ZWN1dGlvbiBvZiB0aGUgcHJlcHJvY2Vzc29yLCBpbmNsdWRpbmcgcHJl ZGVmaW5lZCBtYWNyb3MuClRoaXMgZ2l2ZXMgeW91IGEgd2F5IG9mIGZpbmRpbmcgb3V0IHdo YXQgaXMgcHJlZGVmaW5lZCBpbiB5b3VyIHZlcnNpb24gb2YgdGhlIHByZXByb2Nlc3Nvci4K QXNzdW1pbmcgeW91IGhhdmUgbm8gZmlsZQouUGEgZm9vLmggLAp0aGUgY29tbWFuZAouUHAK LkJkIC1saXRlcmFsIC1vZmZzZXQgaW5kZW50CnRvdWNoIGZvby5oOyBjcHAgLWRNIGZvby5o Ci5FZAp3aWxsIHNob3cgYWxsIHRoZSBwcmVkZWZpbmVkIG1hY3Jvcy4KLlBwCi5JdCBTeSBE IE5zCkxpa2UKLlN5IE0KZXhjZXB0IGluIHR3byByZXNwZWN0czogaXQgZG9lcwouRW0gbm90 CmluY2x1ZGUgdGhlIHByZWRlZmluZWQgbWFjcm9zLCBhbmQgaXQgb3V0cHV0cwouRW0gYm90 aAp0aGUKLlN5ICNkZWZpbmUKZGlyZWN0aXZlcyBhbmQgdGhlIHJlc3VsdCBvZiBwcmVwcm9j ZXNzaW5nLgpCb3RoIGtpbmRzIG9mIG91dHB1dCBnbyB0byB0aGUgc3RhbmRhcmQgb3V0cHV0 IGZpbGUuCi5QcAouSXQgU3kgTiBOcwpMaWtlCi5TeSBEICwKYnV0IGVtaXQgb25seSB0aGUg bWFjcm8gbmFtZXMsIG5vdCB0aGVpciBleHBhbnNpb25zLgouUHAKLkl0IFN5IEkgTnMKT3V0 cHV0Ci5TeSAjaW5jbHVkZQpkaXJlY3RpdmVzIGluIGFkZGl0aW9uIHRvIHRoZSByZXN1bHQg b2YgcHJlcHJvY2Vzc2luZy4KLlBwCi5FbAouSXQgRmwgUApJbmhpYml0IGdlbmVyYXRpb24g b2YgbGluZW1hcmtlcnMgaW4gdGhlIG91dHB1dCBmcm9tIHRoZSBwcmVwcm9jZXNzb3IuClRo aXMgbWlnaHQgYmUgdXNlZnVsIHdoZW4gcnVubmluZyB0aGUgcHJlcHJvY2Vzc29yIG9uIHNv bWV0aGluZyB0aGF0IGlzIG5vdCBDIGNvZGUsIGFuZCB3aWxsIGJlIHNlbnQgdG8gYSBwcm9n cmFtIHdoaWNoIG1pZ2h0IGJlIGNvbmZ1c2VkIGJ5IHRoZSBsaW5lbWFya2Vycy4KLlBwCi5J dCBGbCBDCkRvIG5vdCBkaXNjYXJkIGNvbW1lbnRzLgpBbGwgY29tbWVudHMgYXJlIHBhc3Nl ZCB0aHJvdWdoIHRvIHRoZSBvdXRwdXQgZmlsZSwgZXhjZXB0IGZvciBjb21tZW50cyBpbiBw cm9jZXNzZWQgZGlyZWN0aXZlcywgd2hpY2ggYXJlIGRlbGV0ZWQgYWxvbmcgd2l0aCB0aGUg ZGlyZWN0aXZlLgouUHAKWW91IHNob3VsZCBiZSBwcmVwYXJlZCBmb3Igc2lkZSBlZmZlY3Rz IHdoZW4gdXNpbmcKLkZsIEMgOwppdCBjYXVzZXMgdGhlIHByZXByb2Nlc3NvciB0byB0cmVh dCBjb21tZW50cyBhcyB0b2tlbnMgaW4gdGhlaXIgb3duIHJpZ2h0LgpGb3IgZXhhbXBsZSwg Y29tbWVudHMgYXBwZWFyaW5nIGF0IHRoZSBzdGFydCBvZiB3aGF0IHdvdWxkIGJlIGEgZGly ZWN0aXZlIGxpbmUgaGF2ZSB0aGUgZWZmZWN0IG9mIHR1cm5pbmcgdGhhdCBsaW5lIGludG8g YW4gb3JkaW5hcnkgc291cmNlIGxpbmUsIHNpbmNlIHRoZSBmaXJzdCB0b2tlbiBvbiB0aGUg bGluZSBpcyBubyBsb25nZXIgYQouU3kgIyAuCi5QcAouSXQgRmwgQ0MKRG8gbm90IGRpc2Nh cmQgY29tbWVudHMsIGluY2x1ZGluZyBkdXJpbmcgbWFjcm8gZXhwYW5zaW9uLgpUaGlzIGlz IGxpa2UKLkZsIEMgLApleGNlcHQgdGhhdCBjb21tZW50cyBjb250YWluZWQgd2l0aGluIG1h Y3JvcyBhcmUgYWxzbyBwYXNzZWQgdGhyb3VnaCB0byB0aGUgb3V0cHV0IGZpbGUgd2hlcmUg dGhlIG1hY3JvIGlzIGV4cGFuZGVkLgouUHAKSW4gYWRkaXRpb24gdG8gdGhlIHNpZGUtZWZm ZWN0cyBvZiB0aGUKLkZsIEMKb3B0aW9uLCB0aGUKLkZsIENDCm9wdGlvbiBjYXVzZXMgYWxs IEMrKy1zdHlsZSBjb21tZW50cyBpbnNpZGUgYSBtYWNybyB0byBiZSBjb252ZXJ0ZWQgdG8g Qy1zdHlsZSBjb21tZW50cy4KVGhpcyBpcyB0byBwcmV2ZW50IGxhdGVyIHVzZSBvZiB0aGF0 IG1hY3JvIGZyb20gaW5hZHZlcnRlbnRseSBjb21tZW50aW5nIG91dCB0aGUgcmVtYWluZGVy IG9mIHRoZSBzb3VyY2UgbGluZS4KLlBwClRoZQouRmwgQ0MKb3B0aW9uIGlzIGdlbmVyYWxs eSB1c2VkIHRvIHN1cHBvcnQgbGludCBjb21tZW50cy4KLlBwCi5JdCBGbCB0cmFkaXRpb25h bC1jcHAKVHJ5IHRvIGltaXRhdGUgdGhlIGJlaGF2aW9yIG9mIG9sZC1mYXNoaW9uZWQgQyBw cmVwcm9jZXNzb3JzLCBhcyBvcHBvc2VkIHRvIElTTyBDIHByZXByb2Nlc3NvcnMuCi5QcAou SXQgRmwgdHJpZ3JhcGhzClByb2Nlc3MgdHJpZ3JhcGggc2VxdWVuY2VzLgpUaGVzZSBhcmUg dGhyZWUtY2hhcmFjdGVyIHNlcXVlbmNlcywgYWxsIHN0YXJ0aW5nIHdpdGgKLlN5ID8/ICwK dGhhdCBhcmUgZGVmaW5lZCBieSBJU08gQyB0byBzdGFuZCBmb3Igc2luZ2xlIGNoYXJhY3Rl cnMuCkZvciBleGFtcGxlLAouU3kgPz8vCnN0YW5kcyBmb3IKLlN5IFxlICwKc28KLlN5ICc/ Py9uJwppcyBhIGNoYXJhY3RlciBjb25zdGFudCBmb3IgYSBuZXdsaW5lLgpCeSBkZWZhdWx0 LCBHQ0MgaWdub3JlcyB0cmlncmFwaHMsIGJ1dCBpbiBzdGFuZGFyZC1jb25mb3JtaW5nIG1v ZGVzIGl0IGNvbnZlcnRzIHRoZW0uClNlZSB0aGUKLkZsIHN0ZAphbmQKLkZsIGFuc2kKb3B0 aW9ucy4KLlBwClRoZSBuaW5lIHRyaWdyYXBocyBhbmQgdGhlaXIgcmVwbGFjZW1lbnRzIGFy ZQouUHAKLkJkIC1saXRlcmFsIC1vZmZzZXQgaW5kZW50ClRyaWdyYXBoOiAgICAgICA/Pygg ID8/KSAgPz9cKltMdF0gID8/XCpbR3RdICA/Pz0gID8/LyAgPz8nICA/PyEgID8/LQpSZXBs YWNlbWVudDogICAgICBbICAgIF0gICAgeyAgICB9ICAgICMgICAgXGUgICAgXiAgICB8ICAg IH4KLkVkCi5JdCBGbCByZW1hcApFbmFibGUgc3BlY2lhbCBjb2RlIHRvIHdvcmsgYXJvdW5k IGZpbGUgc3lzdGVtcyB3aGljaCBvbmx5IHBlcm1pdCB2ZXJ5IHNob3J0IGZpbGUgbmFtZXMs IHN1Y2ggYXMgTVMtRE9TLgouUHAKLkl0IEZsIC1oZWxwCi5JdCBGbCAtdGFyZ2V0LWhlbHAK UHJpbnQgdGV4dCBkZXNjcmliaW5nIGFsbCB0aGUgY29tbWFuZCBsaW5lIG9wdGlvbnMgaW5z dGVhZCBvZiBwcmVwcm9jZXNzaW5nIGFueXRoaW5nLgouUHAKLkl0IEZsIHYKVmVyYm9zZSBt b2RlLgpQcmludCBvdXQgR05VIENQUCdzIHZlcnNpb24gbnVtYmVyIGF0IHRoZSBiZWdpbm5p bmcgb2YgZXhlY3V0aW9uLCBhbmQgcmVwb3J0IHRoZSBmaW5hbCBmb3JtIG9mIHRoZSBpbmNs dWRlIHBhdGguCi5QcAouSXQgRmwgSApQcmludCB0aGUgbmFtZSBvZiBlYWNoIGhlYWRlciBm aWxlIHVzZWQsIGluIGFkZGl0aW9uIHRvIG90aGVyIG5vcm1hbCBhY3Rpdml0aWVzLgpFYWNo IG5hbWUgaXMgaW5kZW50ZWQgdG8gc2hvdyBob3cgZGVlcCBpbiB0aGUKLlN5ICNpbmNsdWRl CnN0YWNrIGl0IGlzLgpQcmVjb21waWxlZCBoZWFkZXIgZmlsZXMgYXJlIGFsc28gcHJpbnRl ZCwgZXZlbiBpZiB0aGV5IGFyZSBmb3VuZCB0byBiZSBpbnZhbGlkOyBhbiBpbnZhbGlkIHBy ZWNvbXBpbGVkIGhlYWRlciBmaWxlIGlzIHByaW50ZWQgd2l0aAouU3kgLi4ueAphbmQgYSB2 YWxpZCBvbmUgd2l0aAouU3kgLi4uISAuCi5QcAouSXQgRmwgdmVyc2lvbgouSXQgRmwgLXZl cnNpb24KUHJpbnQgb3V0IEdOVSBDUFAncyB2ZXJzaW9uIG51bWJlci4KV2l0aCBvbmUgZGFz aCwgcHJvY2VlZCB0byBwcmVwcm9jZXNzIGFzIG5vcm1hbC4KV2l0aCB0d28gZGFzaGVzLCBl eGl0IGltbWVkaWF0ZWx5LgouUHAKLkVsCi5TcyBQYXNzaW5nIE9wdGlvbnMgdG8gdGhlIEFz c2VtYmxlcgpZb3UgY2FuIHBhc3Mgb3B0aW9ucyB0byB0aGUgYXNzZW1ibGVyLgouUHAKLkJs IC10YWcgLXdpZHRoIHh4Ci5JdCBGbCBXYSwgTnMgQXIgb3B0aW9uClBhc3MKLkVtIG9wdGlv bgphcyBhbiBvcHRpb24gdG8gdGhlIGFzc2VtYmxlci4KSWYKLkVtIG9wdGlvbgpjb250YWlu cyBjb21tYXMsIGl0IGlzIHNwbGl0IGludG8gbXVsdGlwbGUgb3B0aW9ucyBhdCB0aGUgY29t bWFzLgouUHAKLkl0IEZsIFhhc3NlbWJsZXIgQXIgb3B0aW9uClBhc3MKLkVtIG9wdGlvbgph cyBhbiBvcHRpb24gdG8gdGhlIGFzc2VtYmxlci4KWW91IGNhbiB1c2UgdGhpcyB0byBzdXBw bHkgc3lzdGVtLXNwZWNpZmljIGFzc2VtYmxlciBvcHRpb25zIHdoaWNoIEdDQyBkb2VzIG5v dCBrbm93IGhvdyB0byByZWNvZ25pemUuCi5QcApJZiB5b3Ugd2FudCB0byBwYXNzIGFuIG9w dGlvbiB0aGF0IHRha2VzIGFuIGFyZ3VtZW50LCB5b3UgbXVzdCB1c2UKLkZsIFhhc3NlbWJs ZXIKdHdpY2UsIG9uY2UgZm9yIHRoZSBvcHRpb24gYW5kIG9uY2UgZm9yIHRoZSBhcmd1bWVu dC4KLlBwCi5FbAouU3MgT3B0aW9ucyBmb3IgTGlua2luZwpUaGVzZSBvcHRpb25zIGNvbWUg aW50byBwbGF5IHdoZW4gdGhlIGNvbXBpbGVyIGxpbmtzIG9iamVjdCBmaWxlcyBpbnRvIGFu IGV4ZWN1dGFibGUgb3V0cHV0IGZpbGUuClRoZXkgYXJlIG1lYW5pbmdsZXNzIGlmIHRoZSBj b21waWxlciBpcyBub3QgZG9pbmcgYSBsaW5rIHN0ZXAuCi5QcAouQmwgLXRhZyAtd2lkdGgg eHgKLkl0IEVtIG9iamVjdC1maWxlLW5hbWUgTnMKQSBmaWxlIG5hbWUgdGhhdCBkb2VzIG5v dCBlbmQgaW4gYSBzcGVjaWFsIHJlY29nbml6ZWQgc3VmZml4IGlzIGNvbnNpZGVyZWQgdG8g bmFtZSBhbiBvYmplY3QgZmlsZSBvciBsaWJyYXJ5LgooT2JqZWN0IGZpbGVzIGFyZSBkaXN0 aW5ndWlzaGVkIGZyb20gbGlicmFyaWVzIGJ5IHRoZSBsaW5rZXIgYWNjb3JkaW5nIHRvIHRo ZSBmaWxlIGNvbnRlbnRzLikgSWYgbGlua2luZyBpcyBkb25lLCB0aGVzZSBvYmplY3QgZmls ZXMgYXJlIHVzZWQgYXMgaW5wdXQgdG8gdGhlIGxpbmtlci4KLlBwCi5JdCBGbCBjCi5JdCBG bCBTCi5JdCBGbCBFCklmIGFueSBvZiB0aGVzZSBvcHRpb25zIGlzIHVzZWQsIHRoZW4gdGhl IGxpbmtlciBpcyBub3QgcnVuLCBhbmQgb2JqZWN0IGZpbGUgbmFtZXMgc2hvdWxkIG5vdCBi ZSB1c2VkIGFzIGFyZ3VtZW50cy4KLlBwCi5JdCBGbCBsIE5zIEFyIGxpYnJhcnkKLkl0IEZs IGwgQXIgbGlicmFyeQpTZWFyY2ggdGhlIGxpYnJhcnkgbmFtZWQKLkVtIGxpYnJhcnkKd2hl biBsaW5raW5nLgooVGhlIHNlY29uZCBhbHRlcm5hdGl2ZSB3aXRoIHRoZSBsaWJyYXJ5IGFz IGEgc2VwYXJhdGUgYXJndW1lbnQgaXMgb25seSBmb3IgUE9TSVggY29tcGxpYW5jZSBhbmQg aXMgbm90IHJlY29tbWVuZGVkLikKLlBwCkl0IG1ha2VzIGEgZGlmZmVyZW5jZSB3aGVyZSBp biB0aGUgY29tbWFuZCB5b3Ugd3JpdGUgdGhpcyBvcHRpb247IHRoZSBsaW5rZXIgc2VhcmNo ZXMgYW5kIHByb2Nlc3NlcyBsaWJyYXJpZXMgYW5kIG9iamVjdCBmaWxlcyBpbiB0aGUgb3Jk ZXIgdGhleSBhcmUgc3BlY2lmaWVkLgpUaHVzLAouU3kgZm9vLm8gLWx6IGJhci5vCnNlYXJj aGVzIGxpYnJhcnkKLlN5IHoKYWZ0ZXIgZmlsZQouUGEgZm9vLm8KYnV0IGJlZm9yZQouUGEg YmFyLm8gLgpJZgouUGEgYmFyLm8KcmVmZXJzIHRvIGZ1bmN0aW9ucyBpbgouU3kgeiAsCnRo b3NlIGZ1bmN0aW9ucyBtYXkgbm90IGJlIGxvYWRlZC4KLlBwClRoZSBsaW5rZXIgc2VhcmNo ZXMgYSBzdGFuZGFyZCBsaXN0IG9mIGRpcmVjdG9yaWVzIGZvciB0aGUgbGlicmFyeSwgd2hp Y2ggaXMgYWN0dWFsbHkgYSBmaWxlIG5hbWVkCi5QYSBsaWJsaWJyYXJ5LmEgLgpUaGUgbGlu a2VyIHRoZW4gdXNlcyB0aGlzIGZpbGUgYXMgaWYgaXQgaGFkIGJlZW4gc3BlY2lmaWVkIHBy ZWNpc2VseSBieSBuYW1lLgouUHAKVGhlIGRpcmVjdG9yaWVzIHNlYXJjaGVkIGluY2x1ZGUg c2V2ZXJhbCBzdGFuZGFyZCBzeXN0ZW0gZGlyZWN0b3JpZXMgcGx1cyBhbnkgdGhhdCB5b3Ug c3BlY2lmeSB3aXRoCi5GbCBMIC4KLlBwCk5vcm1hbGx5IHRoZSBmaWxlcyBmb3VuZCB0aGlz IHdheSBhcmUgbGlicmFyeSBmaWxlcy0tLWFyY2hpdmUgZmlsZXMgd2hvc2UgbWVtYmVycyBh cmUgb2JqZWN0IGZpbGVzLgpUaGUgbGlua2VyIGhhbmRsZXMgYW4gYXJjaGl2ZSBmaWxlIGJ5 IHNjYW5uaW5nIHRocm91Z2ggaXQgZm9yIG1lbWJlcnMgd2hpY2ggZGVmaW5lIHN5bWJvbHMg dGhhdCBoYXZlIHNvIGZhciBiZWVuIHJlZmVyZW5jZWQgYnV0IG5vdCBkZWZpbmVkLgpCdXQg aWYgdGhlIGZpbGUgdGhhdCBpcyBmb3VuZCBpcyBhbiBvcmRpbmFyeSBvYmplY3QgZmlsZSwg aXQgaXMgbGlua2VkIGluIHRoZSB1c3VhbCBmYXNoaW9uLgpUaGUgb25seSBkaWZmZXJlbmNl IGJldHdlZW4gdXNpbmcgYW4KLkZsIGwKb3B0aW9uIGFuZCBzcGVjaWZ5aW5nIGEgZmlsZSBu YW1lIGlzIHRoYXQKLkZsIGwKc3Vycm91bmRzCi5FbSBsaWJyYXJ5CndpdGgKLlN5IGxpYgph bmQKLlN5IC5hCmFuZCBzZWFyY2hlcyBzZXZlcmFsIGRpcmVjdG9yaWVzLgouUHAKLkl0IEZs IGxvYmpjCllvdSBuZWVkIHRoaXMgc3BlY2lhbCBjYXNlIG9mIHRoZQouRmwgbApvcHRpb24g aW4gb3JkZXIgdG8gbGluayBhbiBPYmplY3RpdmUtQyBvciBPYmplY3RpdmUtQysrIHByb2dy YW0uCi5QcAouSXQgRmwgbm9zdGFydGZpbGVzCkRvIG5vdCB1c2UgdGhlIHN0YW5kYXJkIHN5 c3RlbSBzdGFydHVwIGZpbGVzIHdoZW4gbGlua2luZy4KVGhlIHN0YW5kYXJkIHN5c3RlbSBs aWJyYXJpZXMgYXJlIHVzZWQgbm9ybWFsbHksIHVubGVzcwouRmwgbm9zdGRsaWIKb3IKLkZs IG5vZGVmYXVsdGxpYnMKaXMgdXNlZC4KLlBwCi5JdCBGbCBub2RlZmF1bHRsaWJzCkRvIG5v dCB1c2UgdGhlIHN0YW5kYXJkIHN5c3RlbSBsaWJyYXJpZXMgd2hlbiBsaW5raW5nLgpPbmx5 IHRoZSBsaWJyYXJpZXMgeW91IHNwZWNpZnkgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGxpbmtl ci4KVGhlIHN0YW5kYXJkIHN0YXJ0dXAgZmlsZXMgYXJlIHVzZWQgbm9ybWFsbHksIHVubGVz cwouRmwgbm9zdGFydGZpbGVzCmlzIHVzZWQuClRoZSBjb21waWxlciBtYXkgZ2VuZXJhdGUg Y2FsbHMgdG8KLlZhIG1lbWNtcCAsCi5WYSBtZW1zZXQgLAouVmEgbWVtY3B5CmFuZAouVmEg bWVtbW92ZSAuClRoZXNlIGVudHJpZXMgYXJlIHVzdWFsbHkgcmVzb2x2ZWQgYnkgZW50cmll cyBpbiBsaWJjLgpUaGVzZSBlbnRyeSBwb2ludHMgc2hvdWxkIGJlIHN1cHBsaWVkIHRocm91 Z2ggc29tZSBvdGhlciBtZWNoYW5pc20gd2hlbiB0aGlzIG9wdGlvbiBpcyBzcGVjaWZpZWQu Ci5QcAouSXQgRmwgbm9zdGRsaWIKRG8gbm90IHVzZSB0aGUgc3RhbmRhcmQgc3lzdGVtIHN0 YXJ0dXAgZmlsZXMgb3IgbGlicmFyaWVzIHdoZW4gbGlua2luZy4KTm8gc3RhcnR1cCBmaWxl cyBhbmQgb25seSB0aGUgbGlicmFyaWVzIHlvdSBzcGVjaWZ5IHdpbGwgYmUgcGFzc2VkIHRv IHRoZSBsaW5rZXIuClRoZSBjb21waWxlciBtYXkgZ2VuZXJhdGUgY2FsbHMgdG8KLlZhIG1l bWNtcCAsCi5WYSBtZW1zZXQgLAouVmEgbWVtY3B5CmFuZAouVmEgbWVtbW92ZSAuClRoZXNl IGVudHJpZXMgYXJlIHVzdWFsbHkgcmVzb2x2ZWQgYnkgZW50cmllcyBpbiBsaWJjLgpUaGVz ZSBlbnRyeSBwb2ludHMgc2hvdWxkIGJlIHN1cHBsaWVkIHRocm91Z2ggc29tZSBvdGhlciBt ZWNoYW5pc20gd2hlbiB0aGlzIG9wdGlvbiBpcyBzcGVjaWZpZWQuCi5QcApPbmUgb2YgdGhl IHN0YW5kYXJkIGxpYnJhcmllcyBieXBhc3NlZCBieQouRmwgbm9zdGRsaWIKYW5kCi5GbCBu b2RlZmF1bHRsaWJzCmlzCi5QYSBsaWJnY2MuYSAsCmEgbGlicmFyeSBvZiBpbnRlcm5hbCBz dWJyb3V0aW5lcyB0aGF0IEdDQyB1c2VzIHRvIG92ZXJjb21lIHNob3J0Y29taW5ncyBvZiBw YXJ0aWN1bGFyIG1hY2hpbmVzLCBvciBzcGVjaWFsIG5lZWRzIGZvciBzb21lIGxhbmd1YWdl cy4KLlBwCkluIG1vc3QgY2FzZXMsIHlvdSBuZWVkCi5QYSBsaWJnY2MuYQpldmVuIHdoZW4g eW91IHdhbnQgdG8gYXZvaWQgb3RoZXIgc3RhbmRhcmQgbGlicmFyaWVzLgpJbiBvdGhlciB3 b3Jkcywgd2hlbiB5b3Ugc3BlY2lmeQouRmwgbm9zdGRsaWIKb3IKLkZsIG5vZGVmYXVsdGxp YnMKeW91IHNob3VsZCB1c3VhbGx5IHNwZWNpZnkKLkZsIGxnY2MKYXMgd2VsbC4KVGhpcyBl bnN1cmVzIHRoYXQgeW91IGhhdmUgbm8gdW5yZXNvbHZlZCByZWZlcmVuY2VzIHRvIGludGVy bmFsIEdDQyBsaWJyYXJ5IHN1YnJvdXRpbmVzLgooRm9yIGV4YW1wbGUsCi5TeSBfX21haW4g LAp1c2VkIHRvIGVuc3VyZSBDKysgY29uc3RydWN0b3JzIHdpbGwgYmUgY2FsbGVkLikKLlBw Ci5JdCBGbCBwaWUKUHJvZHVjZSBhIHBvc2l0aW9uIGluZGVwZW5kZW50IGV4ZWN1dGFibGUg b24gdGFyZ2V0cyB3aGljaCBzdXBwb3J0IGl0LgpGb3IgcHJlZGljdGFibGUgcmVzdWx0cywg eW91IG11c3QgYWxzbyBzcGVjaWZ5IHRoZSBzYW1lIHNldCBvZiBvcHRpb25zIHRoYXQgd2Vy ZSB1c2VkIHRvIGdlbmVyYXRlIGNvZGUKLkZsICggZnBpZSAsCi5GbCBmUElFICwKb3IgbW9k ZWwgc3Vib3B0aW9ucykgd2hlbiB5b3Ugc3BlY2lmeSB0aGlzIG9wdGlvbi4KLlBwCi5JdCBG bCByZHluYW1pYwpQYXNzIHRoZSBmbGFnCi5GbCBleHBvcnQtZHluYW1pYwp0byB0aGUgRUxG IGxpbmtlciwgb24gdGFyZ2V0cyB0aGF0IHN1cHBvcnQgaXQuClRoaXMgaW5zdHJ1Y3RzIHRo ZSBsaW5rZXIgdG8gYWRkIGFsbCBzeW1ib2xzLCBub3Qgb25seSB1c2VkIG9uZXMsIHRvIHRo ZSBkeW5hbWljIHN5bWJvbCB0YWJsZS4KVGhpcyBvcHRpb24gaXMgbmVlZGVkIGZvciBzb21l IHVzZXMgb2YKLlZhIGRsb3BlbgpvciB0byBhbGxvdyBvYnRhaW5pbmcgYmFja3RyYWNlcyBm cm9tIHdpdGhpbiBhIHByb2dyYW0uCi5QcAouSXQgRmwgcwpSZW1vdmUgYWxsIHN5bWJvbCB0 YWJsZSBhbmQgcmVsb2NhdGlvbiBpbmZvcm1hdGlvbiBmcm9tIHRoZSBleGVjdXRhYmxlLgou UHAKLkl0IEZsIHN0YXRpYwpPbiBzeXN0ZW1zIHRoYXQgc3VwcG9ydCBkeW5hbWljIGxpbmtp bmcsIHRoaXMgcHJldmVudHMgbGlua2luZyB3aXRoIHRoZSBzaGFyZWQgbGlicmFyaWVzLgpP biBvdGhlciBzeXN0ZW1zLCB0aGlzIG9wdGlvbiBoYXMgbm8gZWZmZWN0LgouUHAKLkl0IEZs IHNoYXJlZApQcm9kdWNlIGEgc2hhcmVkIG9iamVjdCB3aGljaCBjYW4gdGhlbiBiZSBsaW5r ZWQgd2l0aCBvdGhlciBvYmplY3RzIHRvIGZvcm0gYW4gZXhlY3V0YWJsZS4KTm90IGFsbCBz eXN0ZW1zIHN1cHBvcnQgdGhpcyBvcHRpb24uCkZvciBwcmVkaWN0YWJsZSByZXN1bHRzLCB5 b3UgbXVzdCBhbHNvIHNwZWNpZnkgdGhlIHNhbWUgc2V0IG9mIG9wdGlvbnMgdGhhdCB3ZXJl IHVzZWQgdG8gZ2VuZXJhdGUgY29kZQouRmwgKCBmcGljICwKLkZsIGZQSUMgLApvciBtb2Rl bCBzdWJvcHRpb25zKSB3aGVuIHlvdSBzcGVjaWZ5IHRoaXMgb3B0aW9uLlsxXQouUHAKLkl0 IEZsIHNoYXJlZC1saWJnY2MKLkl0IEZsIHN0YXRpYy1saWJnY2MKT24gc3lzdGVtcyB0aGF0 IHByb3ZpZGUKLlBhIGxpYmdjYwphcyBhIHNoYXJlZCBsaWJyYXJ5LCB0aGVzZSBvcHRpb25z IGZvcmNlIHRoZSB1c2Ugb2YgZWl0aGVyIHRoZSBzaGFyZWQgb3Igc3RhdGljIHZlcnNpb24g cmVzcGVjdGl2ZWx5LgpJZiBubyBzaGFyZWQgdmVyc2lvbiBvZgouUGEgbGliZ2NjCndhcyBi dWlsdCB3aGVuIHRoZSBjb21waWxlciB3YXMgY29uZmlndXJlZCwgdGhlc2Ugb3B0aW9ucyBo YXZlIG5vIGVmZmVjdC4KLlBwClRoZXJlIGFyZSBzZXZlcmFsIHNpdHVhdGlvbnMgaW4gd2hp Y2ggYW4gYXBwbGljYXRpb24gc2hvdWxkIHVzZSB0aGUgc2hhcmVkCi5QYSBsaWJnY2MKaW5z dGVhZCBvZiB0aGUgc3RhdGljIHZlcnNpb24uClRoZSBtb3N0IGNvbW1vbiBvZiB0aGVzZSBp cyB3aGVuIHRoZSBhcHBsaWNhdGlvbiB3aXNoZXMgdG8gdGhyb3cgYW5kIGNhdGNoIGV4Y2Vw dGlvbnMgYWNyb3NzIGRpZmZlcmVudCBzaGFyZWQgbGlicmFyaWVzLgpJbiB0aGF0IGNhc2Us IGVhY2ggb2YgdGhlIGxpYnJhcmllcyBhcyB3ZWxsIGFzIHRoZSBhcHBsaWNhdGlvbiBpdHNl bGYgc2hvdWxkIHVzZSB0aGUgc2hhcmVkCi5QYSBsaWJnY2MgLgouUHAKVGhlcmVmb3JlLCB0 aGUgRysrIGFuZCBHQ0ogZHJpdmVycyBhdXRvbWF0aWNhbGx5IGFkZAouRmwgc2hhcmVkLWxp YmdjYwp3aGVuZXZlciB5b3UgYnVpbGQgYSBzaGFyZWQgbGlicmFyeSBvciBhIG1haW4gZXhl Y3V0YWJsZSwgYmVjYXVzZSBDKysgYW5kIEphdmEgcHJvZ3JhbXMgdHlwaWNhbGx5IHVzZSBl eGNlcHRpb25zLCBzbyB0aGlzIGlzIHRoZSByaWdodCB0aGluZyB0byBkby4KLlBwCklmLCBp bnN0ZWFkLCB5b3UgdXNlIHRoZSBHQ0MgZHJpdmVyIHRvIGNyZWF0ZSBzaGFyZWQgbGlicmFy aWVzLCB5b3UgbWF5IGZpbmQgdGhhdCB0aGV5IHdpbGwgbm90IGFsd2F5cyBiZSBsaW5rZWQg d2l0aCB0aGUgc2hhcmVkCi5QYSBsaWJnY2MgLgpJZiBHQ0MgZmluZHMsIGF0IGl0cyBjb25m aWd1cmF0aW9uIHRpbWUsIHRoYXQgeW91IGhhdmUgYSBub24tR05VIGxpbmtlciBvciBhIEdO VSBsaW5rZXIgdGhhdCBkb2VzIG5vdCBzdXBwb3J0IG9wdGlvbgouRmwgLWVoLWZyYW1lLWhk ciAsCml0IHdpbGwgbGluayB0aGUgc2hhcmVkIHZlcnNpb24gb2YKLlBhIGxpYmdjYwppbnRv IHNoYXJlZCBsaWJyYXJpZXMgYnkgZGVmYXVsdC4KT3RoZXJ3aXNlLCBpdCB3aWxsIHRha2Ug YWR2YW50YWdlIG9mIHRoZSBsaW5rZXIgYW5kIG9wdGltaXplIGF3YXkgdGhlIGxpbmtpbmcg d2l0aCB0aGUgc2hhcmVkIHZlcnNpb24gb2YKLlBhIGxpYmdjYyAsCmxpbmtpbmcgd2l0aCB0 aGUgc3RhdGljIHZlcnNpb24gb2YgbGliZ2NjIGJ5IGRlZmF1bHQuClRoaXMgYWxsb3dzIGV4 Y2VwdGlvbnMgdG8gcHJvcGFnYXRlIHRocm91Z2ggc3VjaCBzaGFyZWQgbGlicmFyaWVzLCB3 aXRob3V0IGluY3VycmluZyByZWxvY2F0aW9uIGNvc3RzIGF0IGxpYnJhcnkgbG9hZCB0aW1l LgouUHAKSG93ZXZlciwgaWYgYSBsaWJyYXJ5IG9yIG1haW4gZXhlY3V0YWJsZSBpcyBzdXBw b3NlZCB0byB0aHJvdyBvciBjYXRjaCBleGNlcHRpb25zLCB5b3UgbXVzdCBsaW5rIGl0IHVz aW5nIHRoZSBHKysgb3IgR0NKIGRyaXZlciwgYXMgYXBwcm9wcmlhdGUgZm9yIHRoZSBsYW5n dWFnZXMgdXNlZCBpbiB0aGUgcHJvZ3JhbSwgb3IgdXNpbmcgdGhlIG9wdGlvbgouRmwgc2hh cmVkLWxpYmdjYyAsCnN1Y2ggdGhhdCBpdCBpcyBsaW5rZWQgd2l0aCB0aGUgc2hhcmVkCi5Q YSBsaWJnY2MgLgouUHAKLkl0IEZsIHN5bWJvbGljCkJpbmQgcmVmZXJlbmNlcyB0byBnbG9i YWwgc3ltYm9scyB3aGVuIGJ1aWxkaW5nIGEgc2hhcmVkIG9iamVjdC4KV2FybiBhYm91dCBh bnkgdW5yZXNvbHZlZCByZWZlcmVuY2VzICh1bmxlc3Mgb3ZlcnJpZGRlbiBieSB0aGUgbGlu ayBlZGl0b3Igb3B0aW9uCi5GbCBYbGlua2VyIEZsIHogRmwgWGxpbmtlciBBciBkZWZzICkg LgpPbmx5IGEgZmV3IHN5c3RlbXMgc3VwcG9ydCB0aGlzIG9wdGlvbi4KLlBwCi5JdCBGbCBY bGlua2VyIEFyIG9wdGlvbgpQYXNzCi5FbSBvcHRpb24KYXMgYW4gb3B0aW9uIHRvIHRoZSBs aW5rZXIuCllvdSBjYW4gdXNlIHRoaXMgdG8gc3VwcGx5IHN5c3RlbS1zcGVjaWZpYyBsaW5r ZXIgb3B0aW9ucyB3aGljaCBHQ0MgZG9lcyBub3Qga25vdyBob3cgdG8gcmVjb2duaXplLgou UHAKSWYgeW91IHdhbnQgdG8gcGFzcyBhbiBvcHRpb24gdGhhdCB0YWtlcyBhbiBhcmd1bWVu dCwgeW91IG11c3QgdXNlCi5GbCBYbGlua2VyCnR3aWNlLCBvbmNlIGZvciB0aGUgb3B0aW9u IGFuZCBvbmNlIGZvciB0aGUgYXJndW1lbnQuCkZvciBleGFtcGxlLCB0byBwYXNzCi5GbCBh c3NlcnQgQXIgZGVmaW5pdGlvbnMgLAp5b3UgbXVzdCB3cml0ZQouRmwgWGxpbmtlciBGbCBh c3NlcnQgRmwgWGxpbmtlciBBciBkZWZpbml0aW9ucyAuCkl0IGRvZXMgbm90IHdvcmsgdG8g d3JpdGUKLlN5IC1YbGlua2VyIFwmIi1hc3NlcnQgZGVmaW5pdGlvbnMiICwKYmVjYXVzZSB0 aGlzIHBhc3NlcyB0aGUgZW50aXJlIHN0cmluZyBhcyBhIHNpbmdsZSBhcmd1bWVudCwgd2hp Y2ggaXMgbm90IHdoYXQgdGhlIGxpbmtlciBleHBlY3RzLgouUHAKLkl0IEZsIFdsLCBOcyBB ciBvcHRpb24KUGFzcwouRW0gb3B0aW9uCmFzIGFuIG9wdGlvbiB0byB0aGUgbGlua2VyLgpJ ZgouRW0gb3B0aW9uCmNvbnRhaW5zIGNvbW1hcywgaXQgaXMgc3BsaXQgaW50byBtdWx0aXBs ZSBvcHRpb25zIGF0IHRoZSBjb21tYXMuCi5QcAouSXQgRmwgdSBBciBzeW1ib2wKUHJldGVu ZCB0aGUgc3ltYm9sCi5FbSBzeW1ib2wKaXMgdW5kZWZpbmVkLCB0byBmb3JjZSBsaW5raW5n IG9mIGxpYnJhcnkgbW9kdWxlcyB0byBkZWZpbmUgaXQuCllvdSBjYW4gdXNlCi5GbCB1Cm11 bHRpcGxlIHRpbWVzIHdpdGggZGlmZmVyZW50IHN5bWJvbHMgdG8gZm9yY2UgbG9hZGluZyBv ZiBhZGRpdGlvbmFsIGxpYnJhcnkgbW9kdWxlcy4KLlBwCi5FbAouU3MgT3B0aW9ucyBmb3Ig RGlyZWN0b3J5IFNlYXJjaApUaGVzZSBvcHRpb25zIHNwZWNpZnkgZGlyZWN0b3JpZXMgdG8g c2VhcmNoIGZvciBoZWFkZXIgZmlsZXMsIGZvciBsaWJyYXJpZXMgYW5kIGZvciBwYXJ0cyBv ZiB0aGUgY29tcGlsZXI6Ci5QcAouQmwgLXRhZyAtd2lkdGggeHgKLkl0IEZsIEkgTnMgQXIg ZGlyCkFkZCB0aGUgZGlyZWN0b3J5Ci5FbSBkaXIKdG8gdGhlIGhlYWQgb2YgdGhlIGxpc3Qg b2YgZGlyZWN0b3JpZXMgdG8gYmUgc2VhcmNoZWQgZm9yIGhlYWRlciBmaWxlcy4KVGhpcyBj YW4gYmUgdXNlZCB0byBvdmVycmlkZSBhIHN5c3RlbSBoZWFkZXIgZmlsZSwgc3Vic3RpdHV0 aW5nIHlvdXIgb3duIHZlcnNpb24sIHNpbmNlIHRoZXNlIGRpcmVjdG9yaWVzIGFyZSBzZWFy Y2hlZCBiZWZvcmUgdGhlIHN5c3RlbSBoZWFkZXIgZmlsZSBkaXJlY3Rvcmllcy4KSG93ZXZl ciwgeW91IHNob3VsZCBub3QgdXNlIHRoaXMgb3B0aW9uIHRvIGFkZCBkaXJlY3RvcmllcyB0 aGF0IGNvbnRhaW4gdmVuZG9yLXN1cHBsaWVkIHN5c3RlbSBoZWFkZXIgZmlsZXMgKHVzZQou RmwgaXN5c3RlbQpmb3IgdGhhdCkuCklmIHlvdSB1c2UgbW9yZSB0aGFuIG9uZQouRmwgSQpv cHRpb24sIHRoZSBkaXJlY3RvcmllcyBhcmUgc2Nhbm5lZCBpbiBsZWZ0LXRvLXJpZ2h0IG9y ZGVyOyB0aGUgc3RhbmRhcmQgc3lzdGVtIGRpcmVjdG9yaWVzIGNvbWUgYWZ0ZXIuCi5QcApJ ZiBhIHN0YW5kYXJkIHN5c3RlbSBpbmNsdWRlIGRpcmVjdG9yeSwgb3IgYSBkaXJlY3Rvcnkg c3BlY2lmaWVkIHdpdGgKLkZsIGlzeXN0ZW0gLAppcyBhbHNvIHNwZWNpZmllZCB3aXRoCi5G bCBJICwKdGhlCi5GbCBJCm9wdGlvbiB3aWxsIGJlIGlnbm9yZWQuClRoZSBkaXJlY3Rvcnkg d2lsbCBzdGlsbCBiZSBzZWFyY2hlZCBidXQgYXMgYSBzeXN0ZW0gZGlyZWN0b3J5IGF0IGl0 cyBub3JtYWwgcG9zaXRpb24gaW4gdGhlIHN5c3RlbSBpbmNsdWRlIGNoYWluLgpUaGlzIGlz IHRvIGVuc3VyZSB0aGF0IEdDQydzIHByb2NlZHVyZSB0byBmaXggYnVnZ3kgc3lzdGVtIGhl YWRlcnMgYW5kIHRoZSBvcmRlcmluZyBmb3IgdGhlIGluY2x1ZGVfbmV4dCBkaXJlY3RpdmUg YXJlIG5vdCBpbmFkdmVydGVudGx5IGNoYW5nZWQuCklmIHlvdSByZWFsbHkgbmVlZCB0byBj aGFuZ2UgdGhlIHNlYXJjaCBvcmRlciBmb3Igc3lzdGVtIGRpcmVjdG9yaWVzLCB1c2UgdGhl Ci5GbCBub3N0ZGluYwphbmQvb3IKLkZsIGlzeXN0ZW0Kb3B0aW9ucy4KLlBwCi5JdCBGbCBp cXVvdGUgTnMgQXIgZGlyCkFkZCB0aGUgZGlyZWN0b3J5Ci5FbSBkaXIKdG8gdGhlIGhlYWQg b2YgdGhlIGxpc3Qgb2YgZGlyZWN0b3JpZXMgdG8gYmUgc2VhcmNoZWQgZm9yIGhlYWRlciBm aWxlcyBvbmx5IGZvciB0aGUgY2FzZSBvZgouU3kgI2luY2x1ZGUgXCYiCi5FbSBmaWxlCi5T eSBcJiIgOwp0aGV5IGFyZSBub3Qgc2VhcmNoZWQgZm9yCi5TeSAjaW5jbHVkZSBcKltMdF0K LkVtIGZpbGUKLlN5IFwqW0d0XSAsCm90aGVyd2lzZSBqdXN0IGxpa2UKLkZsIEkgLgouUHAK Lkl0IEZsIEwgTnMgQXIgZGlyCkFkZCBkaXJlY3RvcnkKLkVtIGRpcgp0byB0aGUgbGlzdCBv ZiBkaXJlY3RvcmllcyB0byBiZSBzZWFyY2hlZCBmb3IKLkZsIGwgLgouUHAKLkl0IEZsIEIg TnMgQXIgcHJlZml4ClRoaXMgb3B0aW9uIHNwZWNpZmllcyB3aGVyZSB0byBmaW5kIHRoZSBl eGVjdXRhYmxlcywgbGlicmFyaWVzLCBpbmNsdWRlIGZpbGVzLCBhbmQgZGF0YSBmaWxlcyBv ZiB0aGUgY29tcGlsZXIgaXRzZWxmLgouUHAKVGhlIGNvbXBpbGVyIGRyaXZlciBwcm9ncmFt IHJ1bnMgb25lIG9yIG1vcmUgb2YgdGhlIHN1YnByb2dyYW1zCi5QYSBjcHAgLAouUGEgY2Mx ICwKLlBhIGFzCmFuZAouUGEgbGQgLgpJdCB0cmllcwouRW0gcHJlZml4CmFzIGEgcHJlZml4 IGZvciBlYWNoIHByb2dyYW0gaXQgdHJpZXMgdG8gcnVuLCBib3RoIHdpdGggYW5kIHdpdGhv dXQKLkVtIG1hY2hpbmUKLlN5IC8KLkVtIHZlcnNpb24KLlN5IC8gLgouUHAKRm9yIGVhY2gg c3VicHJvZ3JhbSB0byBiZSBydW4sIHRoZSBjb21waWxlciBkcml2ZXIgZmlyc3QgdHJpZXMg dGhlCi5GbCBCCnByZWZpeCwgaWYgYW55LgpJZiB0aGF0IG5hbWUgaXMgbm90IGZvdW5kLCBv ciBpZgouRmwgQgp3YXMgbm90IHNwZWNpZmllZCwgdGhlIGRyaXZlciB0cmllcyB0d28gc3Rh bmRhcmQgcHJlZml4ZXMsIHdoaWNoIGFyZQouUGEgL3Vzci9saWIvZ2NjLwphbmQKLlBhIC91 c3IvbG9jYWwvbGliL2djYy8gLgpJZiBuZWl0aGVyIG9mIHRob3NlIHJlc3VsdHMgaW4gYSBm aWxlIG5hbWUgdGhhdCBpcyBmb3VuZCwgdGhlIHVubW9kaWZpZWQgcHJvZ3JhbSBuYW1lIGlz IHNlYXJjaGVkIGZvciB1c2luZyB0aGUgZGlyZWN0b3JpZXMgc3BlY2lmaWVkIGluIHlvdXIK LlN5IFBBVEgKZW52aXJvbm1lbnQgdmFyaWFibGUuCi5QcApUaGUgY29tcGlsZXIgd2lsbCBj aGVjayB0byBzZWUgaWYgdGhlIHBhdGggcHJvdmlkZWQgYnkgdGhlCi5GbCBCCnJlZmVycyB0 byBhIGRpcmVjdG9yeSwgYW5kIGlmIG5lY2Vzc2FyeSBpdCB3aWxsIGFkZCBhIGRpcmVjdG9y eSBzZXBhcmF0b3IgY2hhcmFjdGVyIGF0IHRoZSBlbmQgb2YgdGhlIHBhdGguCi5QcAouRmwg QgpwcmVmaXhlcyB0aGF0IGVmZmVjdGl2ZWx5IHNwZWNpZnkgZGlyZWN0b3J5IG5hbWVzIGFs c28gYXBwbHkgdG8gbGlicmFyaWVzIGluIHRoZSBsaW5rZXIsIGJlY2F1c2UgdGhlIGNvbXBp bGVyIHRyYW5zbGF0ZXMgdGhlc2Ugb3B0aW9ucyBpbnRvCi5GbCBMCm9wdGlvbnMgZm9yIHRo ZSBsaW5rZXIuClRoZXkgYWxzbyBhcHBseSB0byBpbmNsdWRlcyBmaWxlcyBpbiB0aGUgcHJl cHJvY2Vzc29yLCBiZWNhdXNlIHRoZSBjb21waWxlciB0cmFuc2xhdGVzIHRoZXNlIG9wdGlv bnMgaW50bwouRmwgaXN5c3RlbQpvcHRpb25zIGZvciB0aGUgcHJlcHJvY2Vzc29yLgpJbiB0 aGlzIGNhc2UsIHRoZSBjb21waWxlciBhcHBlbmRzCi5TeSBpbmNsdWRlCnRvIHRoZSBwcmVm aXguCi5QcApUaGUgcnVuLXRpbWUgc3VwcG9ydCBmaWxlCi5QYSBsaWJnY2MuYQpjYW4gYWxz byBiZSBzZWFyY2hlZCBmb3IgdXNpbmcgdGhlCi5GbCBCCnByZWZpeCwgaWYgbmVlZGVkLgpJ ZiBpdCBpcyBub3QgZm91bmQgdGhlcmUsIHRoZSB0d28gc3RhbmRhcmQgcHJlZml4ZXMgYWJv dmUgYXJlIHRyaWVkLCBhbmQgdGhhdCBpcyBhbGwuClRoZSBmaWxlIGlzIGxlZnQgb3V0IG9m IHRoZSBsaW5rIGlmIGl0IGlzIG5vdCBmb3VuZCBieSB0aG9zZSBtZWFucy4KLlBwCkFub3Ro ZXIgd2F5IHRvIHNwZWNpZnkgYSBwcmVmaXggbXVjaCBsaWtlIHRoZQouRmwgQgpwcmVmaXgg aXMgdG8gdXNlIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZQouU3kgR0NDX0VYRUNfUFJFRklY IC4KLlBwCkFzIGEgc3BlY2lhbCBrbHVkZ2UsIGlmIHRoZSBwYXRoIHByb3ZpZGVkIGJ5Ci5G bCBCCmlzCi5QYSBbZGlyL11zdGFnZU4vICwKd2hlcmUKLkVtIE4KaXMgYSBudW1iZXIgaW4g dGhlIHJhbmdlIDAgdG8gOSwgdGhlbiBpdCB3aWxsIGJlIHJlcGxhY2VkIGJ5Ci5QYSBbZGly L11pbmNsdWRlIC4KVGhpcyBpcyB0byBoZWxwIHdpdGggYm9vdC1zdHJhcHBpbmcgdGhlIGNv bXBpbGVyLgouUHAKLkl0IEZsIHNwZWNzPSBOcyBBciBmaWxlClByb2Nlc3MKLkVtIGZpbGUK YWZ0ZXIgdGhlIGNvbXBpbGVyIHJlYWRzIGluIHRoZSBzdGFuZGFyZAouUGEgc3BlY3MKZmls ZSwgaW4gb3JkZXIgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHRzIHRoYXQgdGhlCi5QYSBnY2MK ZHJpdmVyIHByb2dyYW0gdXNlcyB3aGVuIGRldGVybWluaW5nIHdoYXQgc3dpdGNoZXMgdG8g cGFzcyB0bwouUGEgY2MxICwKLlBhIGNjMXBsdXMgLAouUGEgYXMgLAouUGEgbGQgLApldGMu Ck1vcmUgdGhhbiBvbmUKLkZsIHNwZWNzPSBOcyBBciBmaWxlCmNhbiBiZSBzcGVjaWZpZWQg b24gdGhlIGNvbW1hbmQgbGluZSwgYW5kIHRoZXkgYXJlIHByb2Nlc3NlZCBpbiBvcmRlciwg ZnJvbSBsZWZ0IHRvIHJpZ2h0LgouUHAKLkl0IEZsIC1zeXNyb290PSBOcyBBciBkaXIKVXNl Ci5FbSBkaXIKYXMgdGhlIGxvZ2ljYWwgcm9vdCBkaXJlY3RvcnkgZm9yIGhlYWRlcnMgYW5k IGxpYnJhcmllcy4KRm9yIGV4YW1wbGUsIGlmIHRoZSBjb21waWxlciB3b3VsZCBub3JtYWxs eSBzZWFyY2ggZm9yIGhlYWRlcnMgaW4KLlBhIC91c3IvaW5jbHVkZQphbmQgbGlicmFyaWVz IGluCi5QYSAvdXNyL2xpYiAsCml0IHdpbGwgaW5zdGVhZCBzZWFyY2gKLlBhIGRpci91c3Iv aW5jbHVkZQphbmQKLlBhIGRpci91c3IvbGliIC4KLlBwCklmIHlvdSB1c2UgYm90aCB0aGlz IG9wdGlvbiBhbmQgdGhlCi5GbCBpc3lzcm9vdApvcHRpb24sIHRoZW4gdGhlCi5GbCAtc3lz cm9vdApvcHRpb24gd2lsbCBhcHBseSB0byBsaWJyYXJpZXMsIGJ1dCB0aGUKLkZsIGlzeXNy b290Cm9wdGlvbiB3aWxsIGFwcGx5IHRvIGhlYWRlciBmaWxlcy4KLlBwClRoZSBHTlUgbGlu a2VyIChiZWdpbm5pbmcgd2l0aCB2ZXJzaW9uIDIuMTYpIGhhcyB0aGUgbmVjZXNzYXJ5IHN1 cHBvcnQgZm9yIHRoaXMgb3B0aW9uLgpJZiB5b3VyIGxpbmtlciBkb2VzIG5vdCBzdXBwb3J0 IHRoaXMgb3B0aW9uLCB0aGUgaGVhZGVyIGZpbGUgYXNwZWN0IG9mCi5GbCAtc3lzcm9vdAp3 aWxsIHN0aWxsIHdvcmssIGJ1dCB0aGUgbGlicmFyeSBhc3BlY3Qgd2lsbCBub3QuCi5QcAou SXQgRmwgSS0KVGhpcyBvcHRpb24gaGFzIGJlZW4gZGVwcmVjYXRlZC4KUGxlYXNlIHVzZQou RmwgaXF1b3RlCmluc3RlYWQgZm9yCi5GbCBJCmRpcmVjdG9yaWVzIGJlZm9yZSB0aGUKLkZs IEktCmFuZCByZW1vdmUgdGhlCi5GbCBJLSAuCkFueSBkaXJlY3RvcmllcyB5b3Ugc3BlY2lm eSB3aXRoCi5GbCBJCm9wdGlvbnMgYmVmb3JlIHRoZQouRmwgSS0Kb3B0aW9uIGFyZSBzZWFy Y2hlZCBvbmx5IGZvciB0aGUgY2FzZSBvZgouU3kgI2luY2x1ZGUgXCYiCi5FbSBmaWxlCi5T eSBcJiIgOwp0aGV5IGFyZSBub3Qgc2VhcmNoZWQgZm9yCi5TeSAjaW5jbHVkZSBcKltMdF0K LkVtIGZpbGUKLlN5IFwqW0d0XSAuCi5QcApJZiBhZGRpdGlvbmFsIGRpcmVjdG9yaWVzIGFy ZSBzcGVjaWZpZWQgd2l0aAouRmwgSQpvcHRpb25zIGFmdGVyIHRoZQouRmwgSS0gLAp0aGVz ZSBkaXJlY3RvcmllcyBhcmUgc2VhcmNoZWQgZm9yIGFsbAouU3kgI2luY2x1ZGUKZGlyZWN0 aXZlcy4KKE9yZGluYXJpbHkKLkVtIGFsbAouRmwgSQpkaXJlY3RvcmllcyBhcmUgdXNlZCB0 aGlzIHdheS4pCi5QcApJbiBhZGRpdGlvbiwgdGhlCi5GbCBJLQpvcHRpb24gaW5oaWJpdHMg dGhlIHVzZSBvZiB0aGUgY3VycmVudCBkaXJlY3RvcnkgKHdoZXJlIHRoZSBjdXJyZW50IGlu cHV0IGZpbGUgY2FtZSBmcm9tKSBhcyB0aGUgZmlyc3Qgc2VhcmNoIGRpcmVjdG9yeSBmb3IK LlN5ICNpbmNsdWRlIFwmIgouRW0gZmlsZQouU3kgXCYiIC4KVGhlcmUgaXMgbm8gd2F5IHRv IG92ZXJyaWRlIHRoaXMgZWZmZWN0IG9mCi5GbCBJLSAuCldpdGgKLlN5IC1JLgp5b3UgY2Fu IHNwZWNpZnkgc2VhcmNoaW5nIHRoZSBkaXJlY3Rvcnkgd2hpY2ggd2FzIGN1cnJlbnQgd2hl biB0aGUgY29tcGlsZXIgd2FzIGludm9rZWQuClRoYXQgaXMgbm90IGV4YWN0bHkgdGhlIHNh bWUgYXMgd2hhdCB0aGUgcHJlcHJvY2Vzc29yIGRvZXMgYnkgZGVmYXVsdCwgYnV0IGl0IGlz IG9mdGVuIHNhdGlzZmFjdG9yeS4KLlBwCi5GbCBJLQpkb2VzIG5vdCBpbmhpYml0IHRoZSB1 c2Ugb2YgdGhlIHN0YW5kYXJkIHN5c3RlbSBkaXJlY3RvcmllcyBmb3IgaGVhZGVyIGZpbGVz LgpUaHVzLAouRmwgSS0KYW5kCi5GbCBub3N0ZGluYwphcmUgaW5kZXBlbmRlbnQuCi5QcAou RWwKLlNzIFNwZWNpZnlpbmcgVGFyZ2V0IE1hY2hpbmUgYW5kIENvbXBpbGVyIFZlcnNpb24K VGhlIHVzdWFsIHdheSB0byBydW4gR0NDIGlzIHRvIHJ1biB0aGUgZXhlY3V0YWJsZSBjYWxs ZWQKLlBhIGdjYyAsCm9yCi5QYSBcKltMdF1tYWNoaW5lXCpbR3RdLWdjYwp3aGVuIGNyb3Nz LWNvbXBpbGluZywgb3IKLlBhIFwqW0x0XW1hY2hpbmVcKltHdF0tZ2NjLVwqW0x0XXZlcnNp b25cKltHdF0KdG8gcnVuIGEgdmVyc2lvbiBvdGhlciB0aGFuIHRoZSBvbmUgdGhhdCB3YXMg aW5zdGFsbGVkIGxhc3QuClNvbWV0aW1lcyB0aGlzIGlzIGluY29udmVuaWVudCwgc28gR0ND IHByb3ZpZGVzIG9wdGlvbnMgdGhhdCB3aWxsIHN3aXRjaCB0byBhbm90aGVyIGNyb3NzLWNv bXBpbGVyIG9yIHZlcnNpb24uCi5QcAouQmwgLXRhZyAtd2lkdGggeHgKLkl0IEZsIGIgQXIg bWFjaGluZQpUaGUgYXJndW1lbnQKLkVtIG1hY2hpbmUKc3BlY2lmaWVzIHRoZSB0YXJnZXQg bWFjaGluZSBmb3IgY29tcGlsYXRpb24uCi5QcApUaGUgdmFsdWUgdG8gdXNlIGZvcgouRW0g bWFjaGluZQppcyB0aGUgc2FtZSBhcyB3YXMgc3BlY2lmaWVkIGFzIHRoZSBtYWNoaW5lIHR5 cGUgd2hlbiBjb25maWd1cmluZyBHQ0MgYXMgYSBjcm9zcy1jb21waWxlci4KRm9yIGV4YW1w bGUsIGlmIGEgY3Jvc3MtY29tcGlsZXIgd2FzIGNvbmZpZ3VyZWQgd2l0aAouU3kgY29uZmln dXJlIGFybS1lbGYgLAptZWFuaW5nIHRvIGNvbXBpbGUgZm9yIGFuIGFybSBwcm9jZXNzb3Ig d2l0aCBlbGYgYmluYXJpZXMsIHRoZW4geW91IHdvdWxkIHNwZWNpZnkKLkZsIGIgQXIgYXJt LWVsZgp0byBydW4gdGhhdCBjcm9zcyBjb21waWxlci4KQmVjYXVzZSB0aGVyZSBhcmUgb3Ro ZXIgb3B0aW9ucyBiZWdpbm5pbmcgd2l0aAouRmwgYiAsCnRoZSBjb25maWd1cmF0aW9uIG11 c3QgY29udGFpbiBhIGh5cGhlbi4KLlBwCi5JdCBGbCBWIEFyIHZlcnNpb24KVGhlIGFyZ3Vt ZW50Ci5FbSB2ZXJzaW9uCnNwZWNpZmllcyB3aGljaCB2ZXJzaW9uIG9mIEdDQyB0byBydW4u ClRoaXMgaXMgdXNlZnVsIHdoZW4gbXVsdGlwbGUgdmVyc2lvbnMgYXJlIGluc3RhbGxlZC4K Rm9yIGV4YW1wbGUsCi5FbSB2ZXJzaW9uCm1pZ2h0IGJlCi5TeSA0LjAgLAptZWFuaW5nIHRv IHJ1biBHQ0MgdmVyc2lvbiA0LjAuCi5QcAouRWwKVGhlCi5GbCBWCmFuZAouRmwgYgpvcHRp b25zIHdvcmsgYnkgcnVubmluZyB0aGUKLlBhIFwqW0x0XW1hY2hpbmVcKltHdF0tZ2NjLVwq W0x0XXZlcnNpb25cKltHdF0KZXhlY3V0YWJsZSwgc28gdGhlcmUncyBubyByZWFsIHJlYXNv biB0byB1c2UgdGhlbSBpZiB5b3UgY2FuIGp1c3QgcnVuIHRoYXQgZGlyZWN0bHkuCi5TcyBI YXJkd2FyZSBNb2RlbHMgYW5kIENvbmZpZ3VyYXRpb25zCkVhcmxpZXIgd2UgZGlzY3Vzc2Vk IHRoZSBzdGFuZGFyZCBvcHRpb24KLkZsIGIKd2hpY2ggY2hvb3NlcyBhbW9uZyBkaWZmZXJl bnQgaW5zdGFsbGVkIGNvbXBpbGVycyBmb3IgY29tcGxldGVseSBkaWZmZXJlbnQgdGFyZ2V0 IG1hY2hpbmVzLCBzdWNoIGFzIFZBWCB2cy4gNjgwMDAgdnMuIDgwMzg2LgouUHAKSW4gYWRk aXRpb24sIGVhY2ggb2YgdGhlc2UgdGFyZ2V0IG1hY2hpbmUgdHlwZXMgY2FuIGhhdmUgaXRz IG93biBzcGVjaWFsIG9wdGlvbnMsIHN0YXJ0aW5nIHdpdGgKLkZsIG0gLAp0byBjaG9vc2Ug YW1vbmcgdmFyaW91cyBoYXJkd2FyZSBtb2RlbHMgb3IgY29uZmlndXJhdGlvbnMtLS1mb3Ig ZXhhbXBsZSwgNjgwMTAgdnMgNjgwMjAsIGZsb2F0aW5nIGNvcHJvY2Vzc29yIG9yIG5vbmUu CkEgc2luZ2xlIGluc3RhbGxlZCB2ZXJzaW9uIG9mIHRoZSBjb21waWxlciBjYW4gY29tcGls ZSBmb3IgYW55IG1vZGVsIG9yIGNvbmZpZ3VyYXRpb24sIGFjY29yZGluZyB0byB0aGUgb3B0 aW9ucyBzcGVjaWZpZWQuCi5QcApTb21lIGNvbmZpZ3VyYXRpb25zIG9mIHRoZSBjb21waWxl ciBhbHNvIHN1cHBvcnQgYWRkaXRpb25hbCBzcGVjaWFsIG9wdGlvbnMsIHVzdWFsbHkgZm9y IGNvbXBhdGliaWxpdHkgd2l0aCBvdGhlciBjb21waWxlcnMgb24gdGhlIHNhbWUgcGxhdGZv cm0uCi5QcAouQmwgLXRhZyAtd2lkdGggeHgKLkl0IFN5IEFSQyBPcHRpb25zClRoZXNlIG9w dGlvbnMgYXJlIGRlZmluZWQgZm9yIEFSQyBpbXBsZW1lbnRhdGlvbnM6Ci5QcAouQmwgLXRh ZyAtd2lkdGggeHgKLkl0IEZsIEVMCkNvbXBpbGUgY29kZSBmb3IgbGl0dGxlIGVuZGlhbiBt b2RlLgpUaGlzIGlzIHRoZSBkZWZhdWx0LgouUHAKLkl0IEZsIEVCCkNvbXBpbGUgY29kZSBm b3IgYmlnIGVuZGlhbiBtb2RlLgouUHAKLkl0IEZsIG1tYW5nbGUtY3B1ClByZXBlbmQgdGhl IG5hbWUgb2YgdGhlIGNwdSB0byBhbGwgcHVibGljIHN5bWJvbCBuYW1lcy4KSW4gbXVsdGlw bGUtcHJvY2Vzc29yIHN5c3RlbXMsIHRoZXJlIGFyZSBtYW55IEFSQyB2YXJpYW50cyB3aXRo IGRpZmZlcmVudCBpbnN0cnVjdGlvbiBhbmQgcmVnaXN0ZXIgc2V0IGNoYXJhY3RlcmlzdGlj cy4KVGhpcyBmbGFnIHByZXZlbnRzIGNvZGUgY29tcGlsZWQgZm9yIG9uZSBjcHUgdG8gYmUg bGlua2VkIHdpdGggY29kZSBjb21waWxlZCBmb3IgYW5vdGhlci4KTm8gZmFjaWxpdHkgZXhp c3RzIGZvciBoYW5kbGluZyB2YXJpYW50cyB0aGF0IGFyZSAiYWxtb3N0IGlkZW50aWNhbCIu ClRoaXMgaXMgYW4gYWxsIG9yIG5vdGhpbmcgb3B0aW9uLgouUHAKLkl0IEZsIG1jcHU9IE5z IEFyIGNwdQpDb21waWxlIGNvZGUgZm9yIEFSQyB2YXJpYW50Ci5FbSBjcHUgLgpXaGljaCB2 YXJpYW50cyBhcmUgc3VwcG9ydGVkIGRlcGVuZCBvbiB0aGUgY29uZmlndXJhdGlvbi4KQWxs IHZhcmlhbnRzIHN1cHBvcnQKLkZsIG1jcHU9YmFzZSAsCnRoaXMgaXMgdGhlIGRlZmF1bHQu Ci5QcAouSXQgRmwgbXRleHQ9IE5zIEFyIHRleHQtc2VjdGlvbgouSXQgRmwgbWRhdGE9IE5z IEFyIGRhdGEtc2VjdGlvbgouSXQgRmwgbXJvZGF0YT0gTnMgQXIgcmVhZG9ubHktZGF0YS1z ZWN0aW9uClB1dCBmdW5jdGlvbnMsIGRhdGEsIGFuZCByZWFkb25seSBkYXRhIGluCi5FbSB0 ZXh0LXNlY3Rpb24gLAouRW0gZGF0YS1zZWN0aW9uICwKYW5kCi5FbSByZWFkb25seS1kYXRh LXNlY3Rpb24KcmVzcGVjdGl2ZWx5IGJ5IGRlZmF1bHQuClRoaXMgY2FuIGJlIG92ZXJyaWRk ZW4gd2l0aCB0aGUKLlZhIHNlY3Rpb24KYXR0cmlidXRlLgouUHAKLkVsCi5JdCBTeSBBUk0g T3B0aW9ucwpUaGVzZQouRmwgbQpvcHRpb25zIGFyZSBkZWZpbmVkIGZvciBBZHZhbmNlZCBS SVNDIE1hY2hpbmVzIChBUk0pIGFyY2hpdGVjdHVyZXM6Ci5QcAouQmwgLXRhZyAtd2lkdGgg eHgKLkl0IEZsIG1hYmk9IE5zIEFyIG5hbWUKR2VuZXJhdGUgY29kZSBmb3IgdGhlIHNwZWNp ZmllZCBBQkkuClBlcm1pc3NpYmxlIHZhbHVlcyBhcmU6Ci5TeSBhcGNzLWdudSAsCi5TeSBh dHBjcyAsCi5TeSBhYXBjcyAsCi5TeSBhYXBjcy1saW51eAphbmQKLlN5IGl3bW14dCAuCi5Q cAouSXQgRmwgbWFwY3MtZnJhbWUKR2VuZXJhdGUgYSBzdGFjayBmcmFtZSB0aGF0IGlzIGNv bXBsaWFudCB3aXRoIHRoZSBBUk0gUHJvY2VkdXJlIENhbGwgU3RhbmRhcmQgZm9yIGFsbCBm dW5jdGlvbnMsIGV2ZW4gaWYgdGhpcyBpcyBub3Qgc3RyaWN0bHkgbmVjZXNzYXJ5IGZvciBj b3JyZWN0IGV4ZWN1dGlvbiBvZiB0aGUgY29kZS4KU3BlY2lmeWluZwouRmwgZm9taXQtZnJh bWUtcG9pbnRlcgp3aXRoIHRoaXMgb3B0aW9uIHdpbGwgY2F1c2UgdGhlIHN0YWNrIGZyYW1l cyBub3QgdG8gYmUgZ2VuZXJhdGVkIGZvciBsZWFmIGZ1bmN0aW9ucy4KVGhlIGRlZmF1bHQg aXMKLkZsIG1uby1hcGNzLWZyYW1lIC4KLlBwCi5JdCBGbCBtYXBjcwpUaGlzIGlzIGEgc3lu b255bSBmb3IKLkZsIG1hcGNzLWZyYW1lIC4KLlBwCi5JdCBGbCBtdGh1bWItaW50ZXJ3b3Jr CkdlbmVyYXRlIGNvZGUgd2hpY2ggc3VwcG9ydHMgY2FsbGluZyBiZXR3ZWVuIHRoZSBBUk0g YW5kIFRodW1iIGluc3RydWN0aW9uIHNldHMuCldpdGhvdXQgdGhpcyBvcHRpb24gdGhlIHR3 byBpbnN0cnVjdGlvbiBzZXRzIGNhbm5vdCBiZSByZWxpYWJseSB1c2VkIGluc2lkZSBvbmUg cHJvZ3JhbS4KVGhlIGRlZmF1bHQgaXMKLkZsIG1uby10aHVtYi1pbnRlcndvcmsgLApzaW5j ZSBzbGlnaHRseSBsYXJnZXIgY29kZSBpcyBnZW5lcmF0ZWQgd2hlbgouRmwgbXRodW1iLWlu dGVyd29yawppcyBzcGVjaWZpZWQuCi5QcAouSXQgRmwgbW5vLXNjaGVkLXByb2xvZwpQcmV2 ZW50IHRoZSByZW9yZGVyaW5nIG9mIGluc3RydWN0aW9ucyBpbiB0aGUgZnVuY3Rpb24gcHJv bG9nLCBvciB0aGUgbWVyZ2luZyBvZiB0aG9zZSBpbnN0cnVjdGlvbiB3aXRoIHRoZSBpbnN0 cnVjdGlvbnMgaW4gdGhlIGZ1bmN0aW9uJ3MgYm9keS4KVGhpcyBtZWFucyB0aGF0IGFsbCBm dW5jdGlvbnMgd2lsbCBzdGFydCB3aXRoIGEgcmVjb2duaXphYmxlIHNldCBvZiBpbnN0cnVj dGlvbnMgKG9yIGluIGZhY3Qgb25lIG9mIGEgY2hvaWNlIGZyb20gYSBzbWFsbCBzZXQgb2Yg ZGlmZmVyZW50IGZ1bmN0aW9uIHByb2xvZ3VlcyksIGFuZCB0aGlzIGluZm9ybWF0aW9uIGNh biBiZSB1c2VkIHRvIGxvY2F0ZSB0aGUgc3RhcnQgaWYgZnVuY3Rpb25zIGluc2lkZSBhbiBl eGVjdXRhYmxlIHBpZWNlIG9mIGNvZGUuClRoZSBkZWZhdWx0IGlzCi5GbCBtc2NoZWQtcHJv bG9nIC4KLlBwCi5JdCBGbCBtaGFyZC1mbG9hdApHZW5lcmF0ZSBvdXRwdXQgY29udGFpbmlu ZyBmbG9hdGluZyBwb2ludCBpbnN0cnVjdGlvbnMuClRoaXMgaXMgdGhlIGRlZmF1bHQuCi5Q cAouSXQgRmwgbXNvZnQtZmxvYXQKR2VuZXJhdGUgb3V0cHV0IGNvbnRhaW5pbmcgbGlicmFy eSBjYWxscyBmb3IgZmxvYXRpbmcgcG9pbnQuCi5TeSBXYXJuaW5nOgp0aGUgcmVxdWlzaXRl IGxpYnJhcmllcyBhcmUgbm90IGF2YWlsYWJsZSBmb3IgYWxsIEFSTSB0YXJnZXRzLgpOb3Jt YWxseSB0aGUgZmFjaWxpdGllcyBvZiB0aGUgbWFjaGluZSdzIHVzdWFsIEMgY29tcGlsZXIg YXJlIHVzZWQsIGJ1dCB0aGlzIGNhbm5vdCBiZSBkb25lIGRpcmVjdGx5IGluIGNyb3NzLWNv bXBpbGF0aW9uLgpZb3UgbXVzdCBtYWtlIHlvdXIgb3duIGFycmFuZ2VtZW50cyB0byBwcm92 aWRlIHN1aXRhYmxlIGxpYnJhcnkgZnVuY3Rpb25zIGZvciBjcm9zcy1jb21waWxhdGlvbi4K LlBwCi5GbCBtc29mdC1mbG9hdApjaGFuZ2VzIHRoZSBjYWxsaW5nIGNvbnZlbnRpb24gaW4g dGhlIG91dHB1dCBmaWxlOyB0aGVyZWZvcmUsIGl0IGlzIG9ubHkgdXNlZnVsIGlmIHlvdSBj b21waWxlCi5FbSBhbGwKb2YgYSBwcm9ncmFtIHdpdGggdGhpcyBvcHRpb24uCkluIHBhcnRp Y3VsYXIsIHlvdSBuZWVkIHRvIGNvbXBpbGUKLlBhIGxpYmdjYy5hICwKdGhlIGxpYnJhcnkg dGhhdCBjb21lcyB3aXRoIEdDQywgd2l0aAouRmwgbXNvZnQtZmxvYXQKaW4gb3JkZXIgZm9y IHRoaXMgdG8gd29yay4KLlBwCi5JdCBGbCBtZmxvYXQtYWJpPSBOcyBBciBuYW1lClNwZWNp ZmllcyB3aGljaCBBQkkgdG8gdXNlIGZvciBmbG9hdGluZyBwb2ludCB2YWx1ZXMuClBlcm1p c3NpYmxlIHZhbHVlcyBhcmU6Ci5TeSBzb2Z0ICwKLlN5IHNvZnRmcAphbmQKLlN5IGhhcmQg LgouUHAKLlN5IHNvZnQKYW5kCi5TeSBoYXJkCmFyZSBlcXVpdmFsZW50IHRvCi5GbCBtc29m dC1mbG9hdAphbmQKLkZsIG1oYXJkLWZsb2F0CnJlc3BlY3RpdmVseS4KLlN5IHNvZnRmcAph bGxvd3MgdGhlIGdlbmVyYXRpb24gb2YgZmxvYXRpbmcgcG9pbnQgaW5zdHJ1Y3Rpb25zLCBi dXQgc3RpbGwgdXNlcyB0aGUgc29mdC1mbG9hdCBjYWxsaW5nIGNvbnZlbnRpb25zLgouUHAK Lkl0IEZsIG1saXR0bGUtZW5kaWFuCkdlbmVyYXRlIGNvZGUgZm9yIGEgcHJvY2Vzc29yIHJ1 bm5pbmcgaW4gbGl0dGxlLWVuZGlhbiBtb2RlLgpUaGlzIGlzIHRoZSBkZWZhdWx0IGZvciBh bGwgc3RhbmRhcmQgY29uZmlndXJhdGlvbnMuCi5QcAouSXQgRmwgbWJpZy1lbmRpYW4KR2Vu ZXJhdGUgY29kZSBmb3IgYSBwcm9jZXNzb3IgcnVubmluZyBpbiBiaWctZW5kaWFuIG1vZGU7 IHRoZSBkZWZhdWx0IGlzIHRvIGNvbXBpbGUgY29kZSBmb3IgYSBsaXR0bGUtZW5kaWFuIHBy b2Nlc3Nvci4KLlBwCi5JdCBGbCBtd29yZHMtbGl0dGxlLWVuZGlhbgpUaGlzIG9wdGlvbiBv bmx5IGFwcGxpZXMgd2hlbiBnZW5lcmF0aW5nIGNvZGUgZm9yIGJpZy1lbmRpYW4gcHJvY2Vz c29ycy4KR2VuZXJhdGUgY29kZSBmb3IgYSBsaXR0bGUtZW5kaWFuIHdvcmQgb3JkZXIgYnV0 IGEgYmlnLWVuZGlhbiBieXRlIG9yZGVyLgpUaGF0IGlzLCBhIGJ5dGUgb3JkZXIgb2YgdGhl IGZvcm0KLlN5IDMyMTA3NjU0IC4KTm90ZTogdGhpcyBvcHRpb24gc2hvdWxkIG9ubHkgYmUg dXNlZCBpZiB5b3UgcmVxdWlyZSBjb21wYXRpYmlsaXR5IHdpdGggY29kZSBmb3IgYmlnLWVu ZGlhbiBBUk0gcHJvY2Vzc29ycyBnZW5lcmF0ZWQgYnkgdmVyc2lvbnMgb2YgdGhlIGNvbXBp bGVyIHByaW9yIHRvIDIuOC4KLlBwCi5JdCBGbCBtY3B1PSBOcyBBciBuYW1lClRoaXMgc3Bl Y2lmaWVzIHRoZSBuYW1lIG9mIHRoZSB0YXJnZXQgQVJNIHByb2Nlc3Nvci4KR0NDIHVzZXMg dGhpcyBuYW1lIHRvIGRldGVybWluZSB3aGF0IGtpbmQgb2YgaW5zdHJ1Y3Rpb25zIGl0IGNh biBlbWl0IHdoZW4gZ2VuZXJhdGluZyBhc3NlbWJseSBjb2RlLgpQZXJtaXNzaWJsZSBuYW1l cyBhcmU6Ci5TeSBhcm0yICwKLlN5IGFybTI1MCAsCi5TeSBhcm0zICwKLlN5IGFybTYgLAou U3kgYXJtNjAgLAouU3kgYXJtNjAwICwKLlN5IGFybTYxMCAsCi5TeSBhcm02MjAgLAouU3kg YXJtNyAsCi5TeSBhcm03bSAsCi5TeSBhcm03ZCAsCi5TeSBhcm03ZG0gLAouU3kgYXJtN2Rp ICwKLlN5IGFybTdkbWkgLAouU3kgYXJtNzAgLAouU3kgYXJtNzAwICwKLlN5IGFybTcwMGkg LAouU3kgYXJtNzEwICwKLlN5IGFybTcxMGMgLAouU3kgYXJtNzEwMCAsCi5TeSBhcm03NTAw ICwKLlN5IGFybTc1MDBmZSAsCi5TeSBhcm03dGRtaSAsCi5TeSBhcm03dGRtaS1zICwKLlN5 IGFybTggLAouU3kgc3Ryb25nYXJtICwKLlN5IHN0cm9uZ2FybTExMCAsCi5TeSBzdHJvbmdh cm0xMTAwICwKLlN5IGFybTggLAouU3kgYXJtODEwICwKLlN5IGFybTkgLAouU3kgYXJtOWUg LAouU3kgYXJtOTIwICwKLlN5IGFybTkyMHQgLAouU3kgYXJtOTIydCAsCi5TeSBhcm05NDZl LXMgLAouU3kgYXJtOTY2ZS1zICwKLlN5IGFybTk2OGUtcyAsCi5TeSBhcm05MjZlai1zICwK LlN5IGFybTk0MHQgLAouU3kgYXJtOXRkbWkgLAouU3kgYXJtMTB0ZG1pICwKLlN5IGFybTEw MjB0ICwKLlN5IGFybTEwMjZlai1zICwKLlN5IGFybTEwZSAsCi5TeSBhcm0xMDIwZSAsCi5T eSBhcm0xMDIyZSAsCi5TeSBhcm0xMTM2ai1zICwKLlN5IGFybTExMzZqZi1zICwKLlN5IG1w Y29yZSAsCi5TeSBtcGNvcmVub3ZmcCAsCi5TeSBhcm0xMTc2anotcyAsCi5TeSBhcm0xMTc2 anpmLXMgLAouU3kgeHNjYWxlICwKLlN5IGl3bW14dCAsCi5TeSBlcDkzMTIgLgouUHAKLkl0 IEZsIG10dW5lPSBOcyBBciBuYW1lClRoaXMgb3B0aW9uIGlzIHZlcnkgc2ltaWxhciB0byB0 aGUKLkZsIG1jcHU9Cm9wdGlvbiwgZXhjZXB0IHRoYXQgaW5zdGVhZCBvZiBzcGVjaWZ5aW5n IHRoZSBhY3R1YWwgdGFyZ2V0IHByb2Nlc3NvciB0eXBlLCBhbmQgaGVuY2UgcmVzdHJpY3Rp bmcgd2hpY2ggaW5zdHJ1Y3Rpb25zIGNhbiBiZSB1c2VkLCBpdCBzcGVjaWZpZXMgdGhhdCBH Q0Mgc2hvdWxkIHR1bmUgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSBjb2RlIGFzIGlmIHRoZSB0 YXJnZXQgd2VyZSBvZiB0aGUgdHlwZSBzcGVjaWZpZWQgaW4gdGhpcyBvcHRpb24sIGJ1dCBz dGlsbCBjaG9vc2luZyB0aGUgaW5zdHJ1Y3Rpb25zIHRoYXQgaXQgd2lsbCBnZW5lcmF0ZSBi YXNlZCBvbiB0aGUgY3B1IHNwZWNpZmllZCBieSBhCi5GbCBtY3B1PQpvcHRpb24uCkZvciBz b21lIEFSTSBpbXBsZW1lbnRhdGlvbnMgYmV0dGVyIHBlcmZvcm1hbmNlIGNhbiBiZSBvYnRh aW5lZCBieSB1c2luZyB0aGlzIG9wdGlvbi4KLlBwCi5JdCBGbCBtYXJjaD0gTnMgQXIgbmFt ZQpUaGlzIHNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgdGFyZ2V0IEFSTSBhcmNoaXRlY3R1 cmUuCkdDQyB1c2VzIHRoaXMgbmFtZSB0byBkZXRlcm1pbmUgd2hhdCBraW5kIG9mIGluc3Ry dWN0aW9ucyBpdCBjYW4gZW1pdCB3aGVuIGdlbmVyYXRpbmcgYXNzZW1ibHkgY29kZS4KVGhp cyBvcHRpb24gY2FuIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBvciBpbnN0ZWFkIG9m IHRoZQouRmwgbWNwdT0Kb3B0aW9uLgpQZXJtaXNzaWJsZSBuYW1lcyBhcmU6Ci5TeSBhcm12 MiAsCi5TeSBhcm12MmEgLAouU3kgYXJtdjMgLAouU3kgYXJtdjNtICwKLlN5IGFybXY0ICwK LlN5IGFybXY0dCAsCi5TeSBhcm12NSAsCi5TeSBhcm12NXQgLAouU3kgYXJtdjV0ZSAsCi5T eSBhcm12NiAsCi5TeSBhcm12NmogLAouU3kgaXdtbXh0ICwKLlN5IGVwOTMxMiAuCi5QcAou SXQgRmwgbWZwdT0gTnMgQXIgbmFtZQouSXQgRmwgbWZwZT0gTnMgQXIgbnVtYmVyCi5JdCBG bCBtZnA9IE5zIEFyIG51bWJlcgpUaGlzIHNwZWNpZmllcyB3aGF0IGZsb2F0aW5nIHBvaW50 IGhhcmR3YXJlIChvciBoYXJkd2FyZSBlbXVsYXRpb24pIGlzIGF2YWlsYWJsZSBvbiB0aGUg dGFyZ2V0LgpQZXJtaXNzaWJsZSBuYW1lcyBhcmU6Ci5TeSBmcGEgLAouU3kgZnBlMiAsCi5T eSBmcGUzICwKLlN5IG1hdmVyaWNrICwKLlN5IHZmcCAuCi5GbCBtZnAKYW5kCi5GbCBtZnBl CmFyZSBzeW5vbnltcyBmb3IKLkZsIG1mcHUKPQouU3kgZnBlCi5FbSBudW1iZXIgLApmb3Ig Y29tcGF0aWJpbGl0eSB3aXRoIG9sZGVyIHZlcnNpb25zIG9mIEdDQy4KLlBwCklmCi5GbCBt c29mdC1mbG9hdAppcyBzcGVjaWZpZWQgdGhpcyBzcGVjaWZpZXMgdGhlIGZvcm1hdCBvZiBm bG9hdGluZyBwb2ludCB2YWx1ZXMuCi5QcAouSXQgRmwgbXN0cnVjdHVyZS1zaXplLWJvdW5k YXJ5PSBOcyBBciBuClRoZSBzaXplIG9mIGFsbCBzdHJ1Y3R1cmVzIGFuZCB1bmlvbnMgd2ls bCBiZSByb3VuZGVkIHVwIHRvIGEgbXVsdGlwbGUgb2YgdGhlIG51bWJlciBvZiBiaXRzIHNl dCBieSB0aGlzIG9wdGlvbi4KUGVybWlzc2libGUgdmFsdWVzIGFyZSA4LCAzMiBhbmQgNjQu ClRoZSBkZWZhdWx0IHZhbHVlIHZhcmllcyBmb3IgZGlmZmVyZW50IHRvb2xjaGFpbnMuCkZv ciB0aGUgQ09GRiB0YXJnZXRlZCB0b29sY2hhaW4gdGhlIGRlZmF1bHQgdmFsdWUgaXMgOC4K QSB2YWx1ZSBvZiA2NCBpcyBvbmx5IGFsbG93ZWQgaWYgdGhlIHVuZGVybHlpbmcgQUJJIHN1 cHBvcnRzIGl0LgouUHAKU3BlY2lmeWluZyB0aGUgbGFyZ2VyIG51bWJlciBjYW4gcHJvZHVj ZSBmYXN0ZXIsIG1vcmUgZWZmaWNpZW50IGNvZGUsIGJ1dCBjYW4gYWxzbyBpbmNyZWFzZSB0 aGUgc2l6ZSBvZiB0aGUgcHJvZ3JhbS4KRGlmZmVyZW50IHZhbHVlcyBhcmUgcG90ZW50aWFs bHkgaW5jb21wYXRpYmxlLgpDb2RlIGNvbXBpbGVkIHdpdGggb25lIHZhbHVlIGNhbm5vdCBu ZWNlc3NhcmlseSBleHBlY3QgdG8gd29yayB3aXRoIGNvZGUgb3IgbGlicmFyaWVzIGNvbXBp bGVkIHdpdGggYW5vdGhlciB2YWx1ZSwgaWYgdGhleSBleGNoYW5nZSBpbmZvcm1hdGlvbiB1 c2luZyBzdHJ1Y3R1cmVzIG9yIHVuaW9ucy4KLlBwCi5JdCBGbCBtYWJvcnQtb24tbm9yZXR1 cm4KR2VuZXJhdGUgYSBjYWxsIHRvIHRoZSBmdW5jdGlvbgouVmEgYWJvcnQKYXQgdGhlIGVu ZCBvZiBhCi5WYSBub3JldHVybgpmdW5jdGlvbi4KSXQgd2lsbCBiZSBleGVjdXRlZCBpZiB0 aGUgZnVuY3Rpb24gdHJpZXMgdG8gcmV0dXJuLgouUHAKLkl0IEZsIG1sb25nLWNhbGxzCi5J dCBGbCBtbm8tbG9uZy1jYWxscwpUZWxscyB0aGUgY29tcGlsZXIgdG8gcGVyZm9ybSBmdW5j dGlvbiBjYWxscyBieSBmaXJzdCBsb2FkaW5nIHRoZSBhZGRyZXNzIG9mIHRoZSBmdW5jdGlv biBpbnRvIGEgcmVnaXN0ZXIgYW5kIHRoZW4gcGVyZm9ybWluZyBhIHN1YnJvdXRpbmUgY2Fs bCBvbiB0aGlzIHJlZ2lzdGVyLgpUaGlzIHN3aXRjaCBpcyBuZWVkZWQgaWYgdGhlIHRhcmdl dCBmdW5jdGlvbiB3aWxsIGxpZSBvdXRzaWRlIG9mIHRoZSA2NCBtZWdhYnl0ZSBhZGRyZXNz aW5nIHJhbmdlIG9mIHRoZSBvZmZzZXQgYmFzZWQgdmVyc2lvbiBvZiBzdWJyb3V0aW5lIGNh bGwgaW5zdHJ1Y3Rpb24uCi5QcApFdmVuIGlmIHRoaXMgc3dpdGNoIGlzIGVuYWJsZWQsIG5v dCBhbGwgZnVuY3Rpb24gY2FsbHMgd2lsbCBiZSB0dXJuZWQgaW50byBsb25nIGNhbGxzLgpU aGUgaGV1cmlzdGljIGlzIHRoYXQgc3RhdGljIGZ1bmN0aW9ucywgZnVuY3Rpb25zIHdoaWNo IGhhdmUgdGhlCi5TeSBzaG9ydC1jYWxsCmF0dHJpYnV0ZSwgZnVuY3Rpb25zIHRoYXQgYXJl IGluc2lkZSB0aGUgc2NvcGUgb2YgYQouU3kgI3ByYWdtYSBub19sb25nX2NhbGxzCmRpcmVj dGl2ZSBhbmQgZnVuY3Rpb25zIHdob3NlIGRlZmluaXRpb25zIGhhdmUgYWxyZWFkeSBiZWVu IGNvbXBpbGVkIHdpdGhpbiB0aGUgY3VycmVudCBjb21waWxhdGlvbiB1bml0LCB3aWxsIG5v dCBiZSB0dXJuZWQgaW50byBsb25nIGNhbGxzLgpUaGUgZXhjZXB0aW9uIHRvIHRoaXMgcnVs ZSBpcyB0aGF0IHdlYWsgZnVuY3Rpb24gZGVmaW5pdGlvbnMsIGZ1bmN0aW9ucyB3aXRoIHRo ZQouU3kgbG9uZy1jYWxsCmF0dHJpYnV0ZSBvciB0aGUKLlN5IHNlY3Rpb24KYXR0cmlidXRl LCBhbmQgZnVuY3Rpb25zIHRoYXQgYXJlIHdpdGhpbiB0aGUgc2NvcGUgb2YgYQouU3kgI3By YWdtYSBsb25nX2NhbGxzCmRpcmVjdGl2ZSwgd2lsbCBhbHdheXMgYmUgdHVybmVkIGludG8g bG9uZyBjYWxscy4KLlBwClRoaXMgZmVhdHVyZSBpcyBub3QgZW5hYmxlZCBieSBkZWZhdWx0 LgpTcGVjaWZ5aW5nCi5GbCBtbm8tbG9uZy1jYWxscwp3aWxsIHJlc3RvcmUgdGhlIGRlZmF1 bHQgYmVoYXZpb3IsIGFzIHdpbGwgcGxhY2luZyB0aGUgZnVuY3Rpb24gY2FsbHMgd2l0aGlu IHRoZSBzY29wZSBvZiBhCi5TeSAjcHJhZ21hIGxvbmdfY2FsbHNfb2ZmCmRpcmVjdGl2ZS4K Tm90ZSB0aGVzZSBzd2l0Y2hlcyBoYXZlIG5vIGVmZmVjdCBvbiBob3cgdGhlIGNvbXBpbGVy IGdlbmVyYXRlcyBjb2RlIHRvIGhhbmRsZSBmdW5jdGlvbiBjYWxscyB2aWEgZnVuY3Rpb24g cG9pbnRlcnMuCi5QcAouSXQgRmwgbW5vcC1mdW4tZGxsaW1wb3J0CkRpc2FibGUgc3VwcG9y dCBmb3IgdGhlCi5WYSBkbGxpbXBvcnQKYXR0cmlidXRlLgouUHAKLkl0IEZsIG1zaW5nbGUt cGljLWJhc2UKVHJlYXQgdGhlIHJlZ2lzdGVyIHVzZWQgZm9yIFBJQyBhZGRyZXNzaW5nIGFz IHJlYWQtb25seSwgcmF0aGVyIHRoYW4gbG9hZGluZyBpdCBpbiB0aGUgcHJvbG9ndWUgZm9y IGVhY2ggZnVuY3Rpb24uClRoZSBydW4tdGltZSBzeXN0ZW0gaXMgcmVzcG9uc2libGUgZm9y IGluaXRpYWxpemluZyB0aGlzIHJlZ2lzdGVyIHdpdGggYW4gYXBwcm9wcmlhdGUgdmFsdWUg YmVmb3JlIGV4ZWN1dGlvbiBiZWdpbnMuCi5QcAouSXQgRmwgbXBpYy1yZWdpc3Rlcj0gTnMg QXIgcmVnClNwZWNpZnkgdGhlIHJlZ2lzdGVyIHRvIGJlIHVzZWQgZm9yIFBJQyBhZGRyZXNz aW5nLgpUaGUgZGVmYXVsdCBpcyBSMTAgdW5sZXNzIHN0YWNrLWNoZWNraW5nIGlzIGVuYWJs ZWQsIHdoZW4gUjkgaXMgdXNlZC4KLlBwCi5JdCBGbCBtY2lycnVzLWZpeC1pbnZhbGlkLWlu c25zCkluc2VydCBOT1BzIGludG8gdGhlIGluc3RydWN0aW9uIHN0cmVhbSB0byBpbiBvcmRl ciB0byB3b3JrIGFyb3VuZCBwcm9ibGVtcyB3aXRoIGludmFsaWQgTWF2ZXJpY2sgaW5zdHJ1 Y3Rpb24gY29tYmluYXRpb25zLgpUaGlzIG9wdGlvbiBpcyBvbmx5IHZhbGlkIGlmIHRoZQou RmwgbWNwdT1lcDkzMTIKb3B0aW9uIGhhcyBiZWVuIHVzZWQgdG8gZW5hYmxlIGdlbmVyYXRp b24gb2YgaW5zdHJ1Y3Rpb25zIGZvciB0aGUgQ2lycnVzIE1hdmVyaWNrIGZsb2F0aW5nIHBv aW50IGNvLXByb2Nlc3Nvci4KVGhpcyBvcHRpb24gaXMgbm90IGVuYWJsZWQgYnkgZGVmYXVs dCwgc2luY2UgdGhlIHByb2JsZW0gaXMgb25seSBwcmVzZW50IGluIG9sZGVyIE1hdmVyaWNr IGltcGxlbWVudGF0aW9ucy4KVGhlIGRlZmF1bHQgY2FuIGJlIHJlLWVuYWJsZWQgYnkgdXNl IG9mIHRoZQouRmwgbW5vLWNpcnJ1cy1maXgtaW52YWxpZC1pbnNucwpzd2l0Y2guCi5QcAou SXQgRmwgbXBva2UtZnVuY3Rpb24tbmFtZQpXcml0ZSB0aGUgbmFtZSBvZiBlYWNoIGZ1bmN0 aW9uIGludG8gdGhlIHRleHQgc2VjdGlvbiwgZGlyZWN0bHkgcHJlY2VkaW5nIHRoZSBmdW5j dGlvbiBwcm9sb2d1ZS4KVGhlIGdlbmVyYXRlZCBjb2RlIGlzIHNpbWlsYXIgdG8gdGhpczoK LlBwCi5CZCAtbGl0ZXJhbCAtb2Zmc2V0IGluZGVudAogICAgIHQwCiAgICAgICAgIC5hc2Np aSAiYXJtX3Bva2VfZnVuY3Rpb25fbmFtZSIsIDAKICAgICAgICAgLmFsaWduCiAgICAgdDEK ICAgICAgICAgLndvcmQgMHhmZjAwMDAwMCArICh0MSAtIHQwKQogICAgIGFybV9wb2tlX2Z1 bmN0aW9uX25hbWUKICAgICAgICAgbW92ICAgICBpcCwgc3AKICAgICAgICAgc3RtZmQgICBz cCEsIHtmcCwgaXAsIGxyLCBwY30KICAgICAgICAgc3ViICAgICBmcCwgaXAsICM0Ci5FZApX aGVuIHBlcmZvcm1pbmcgYSBzdGFjayBiYWNrdHJhY2UsIGNvZGUgY2FuIGluc3BlY3QgdGhl IHZhbHVlIG9mCi5WYSBwYwpzdG9yZWQgYXQKLlZhIGZwICsgMCAuCklmIHRoZSB0cmFjZSBm dW5jdGlvbiB0aGVuIGxvb2tzIGF0IGxvY2F0aW9uCi5WYSBwYyAtIDEyCmFuZCB0aGUgdG9w IDggYml0cyBhcmUgc2V0LCB0aGVuIHdlIGtub3cgdGhhdCB0aGVyZSBpcyBhIGZ1bmN0aW9u IG5hbWUgZW1iZWRkZWQgaW1tZWRpYXRlbHkgcHJlY2VkaW5nIHRoaXMgbG9jYXRpb24gYW5k IGhhcyBsZW5ndGgKLlZhICgocGNbLTNdKSAmIDB4ZmYwMDAwMDApIC4KLlBwCi5JdCBGbCBt dGh1bWIKR2VuZXJhdGUgY29kZSBmb3IgdGhlIDE2LWJpdCBUaHVtYiBpbnN0cnVjdGlvbiBz ZXQuClRoZSBkZWZhdWx0IGlzIHRvIHVzZSB0aGUgMzItYml0IEFSTSBpbnN0cnVjdGlvbiBz ZXQuCi5QcAouSXQgRmwgbXRwY3MtZnJhbWUKR2VuZXJhdGUgYSBzdGFjayBmcmFtZSB0aGF0 IGlzIGNvbXBsaWFudCB3aXRoIHRoZSBUaHVtYiBQcm9jZWR1cmUgQ2FsbCBTdGFuZGFyZCBm b3IgYWxsIG5vbi1sZWFmIGZ1bmN0aW9ucy4KKEEgbGVhZiBmdW5jdGlvbiBpcyBvbmUgdGhh dCBkb2VzIG5vdCBjYWxsIGFueSBvdGhlciBmdW5jdGlvbnMuKSBUaGUgZGVmYXVsdCBpcwou RmwgbW5vLXRwY3MtZnJhbWUgLgouUHAKLkl0IEZsIG10cGNzLWxlYWYtZnJhbWUKR2VuZXJh dGUgYSBzdGFjayBmcmFtZSB0aGF0IGlzIGNvbXBsaWFudCB3aXRoIHRoZSBUaHVtYiBQcm9j ZWR1cmUgQ2FsbCBTdGFuZGFyZCBmb3IgYWxsIGxlYWYgZnVuY3Rpb25zLgooQSBsZWFmIGZ1 bmN0aW9uIGlzIG9uZSB0aGF0IGRvZXMgbm90IGNhbGwgYW55IG90aGVyIGZ1bmN0aW9ucy4p IFRoZSBkZWZhdWx0IGlzCi5GbCBtbm8tYXBjcy1sZWFmLWZyYW1lIC4KLlBwCi5JdCBGbCBt Y2FsbGVlLXN1cGVyLWludGVyd29ya2luZwpHaXZlcyBhbGwgZXh0ZXJuYWxseSB2aXNpYmxl IGZ1bmN0aW9ucyBpbiB0aGUgZmlsZSBiZWluZyBjb21waWxlZCBhbiBBUk0gaW5zdHJ1Y3Rp b24gc2V0IGhlYWRlciB3aGljaCBzd2l0Y2hlcyB0byBUaHVtYiBtb2RlIGJlZm9yZSBleGVj dXRpbmcgdGhlIHJlc3Qgb2YgdGhlIGZ1bmN0aW9uLgpUaGlzIGFsbG93cyB0aGVzZSBmdW5j dGlvbnMgdG8gYmUgY2FsbGVkIGZyb20gbm9uLWludGVyd29ya2luZyBjb2RlLgouUHAKLkl0 IEZsIG1jYWxsZXItc3VwZXItaW50ZXJ3b3JraW5nCkFsbG93cyBjYWxscyB2aWEgZnVuY3Rp b24gcG9pbnRlcnMgKGluY2x1ZGluZyB2aXJ0dWFsIGZ1bmN0aW9ucykgdG8gZXhlY3V0ZSBj b3JyZWN0bHkgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSB0YXJnZXQgY29kZSBoYXMgYmVl biBjb21waWxlZCBmb3IgaW50ZXJ3b3JraW5nIG9yIG5vdC4KVGhlcmUgaXMgYSBzbWFsbCBv dmVyaGVhZCBpbiB0aGUgY29zdCBvZiBleGVjdXRpbmcgYSBmdW5jdGlvbiBwb2ludGVyIGlm IHRoaXMgb3B0aW9uIGlzIGVuYWJsZWQuCi5QcAouSXQgRmwgbXRwPSBOcyBBciBuYW1lClNw ZWNpZnkgdGhlIGFjY2VzcyBtb2RlbCBmb3IgdGhlIHRocmVhZCBsb2NhbCBzdG9yYWdlIHBv aW50ZXIuClRoZSB2YWxpZCBtb2RlbHMgYXJlCi5TeSBzb2Z0ICwKd2hpY2ggZ2VuZXJhdGVz IGNhbGxzIHRvCi5WYSBfX2FlYWJpX3JlYWRfdHAgLAouU3kgY3AxNSAsCndoaWNoIGZldGNo ZXMgdGhlIHRocmVhZCBwb2ludGVyIGZyb20KLlZhIGNwMTUKZGlyZWN0bHkgKHN1cHBvcnRl ZCBpbiB0aGUgYXJtNmsgYXJjaGl0ZWN0dXJlKSwgYW5kCi5TeSBhdXRvICwKd2hpY2ggdXNl cyB0aGUgYmVzdCBhdmFpbGFibGUgbWV0aG9kIGZvciB0aGUgc2VsZWN0ZWQgcHJvY2Vzc29y LgpUaGUgZGVmYXVsdCBzZXR0aW5nIGlzCi5TeSBhdXRvIC4KLlBwCi5FbAouSXQgU3kgQVZS IE9wdGlvbnMKVGhlc2Ugb3B0aW9ucyBhcmUgZGVmaW5lZCBmb3IgQVZSIGltcGxlbWVudGF0 aW9uczoKLlBwCi5CbCAtdGFnIC13aWR0aCB4eAouSXQgRmwgbW1jdT0gTnMgQXIgbWN1ClNw ZWNpZnkgQVRNRUwgQVZSIGluc3RydWN0aW9uIHNldCBvciBNQ1UgdHlwZS4KLlBwCkluc3Ry dWN0aW9uIHNldCBhdnIxIGlzIGZvciB0aGUgbWluaW1hbCBBVlIgY29yZSwgbm90IHN1cHBv cnRlZCBieSB0aGUgQyBjb21waWxlciwgb25seSBmb3IgYXNzZW1ibGVyIHByb2dyYW1zIChN Q1UgdHlwZXM6IGF0OTBzMTIwMCwgYXR0aW55MTAsIGF0dGlueTExLCBhdHRpbnkxMiwgYXR0 aW55MTUsIGF0dGlueTI4KS4KLlBwCkluc3RydWN0aW9uIHNldCBhdnIyIChkZWZhdWx0KSBp cyBmb3IgdGhlIGNsYXNzaWMgQVZSIGNvcmUgd2l0aCB1cCB0byA4SyBwcm9ncmFtIG1lbW9y eSBzcGFjZSAoTUNVIHR5cGVzOiBhdDkwczIzMTMsIGF0OTBzMjMyMywgYXR0aW55MjIsIGF0 OTBzMjMzMywgYXQ5MHMyMzQzLCBhdDkwczQ0MTQsIGF0OTBzNDQzMywgYXQ5MHM0NDM0LCBh dDkwczg1MTUsIGF0OTBjODUzNCwgYXQ5MHM4NTM1KS4KLlBwCkluc3RydWN0aW9uIHNldCBh dnIzIGlzIGZvciB0aGUgY2xhc3NpYyBBVlIgY29yZSB3aXRoIHVwIHRvIDEyOEsgcHJvZ3Jh bSBtZW1vcnkgc3BhY2UgKE1DVSB0eXBlczogYXRtZWdhMTAzLCBhdG1lZ2E2MDMsIGF0NDN1 c2IzMjAsIGF0NzZjNzExKS4KLlBwCkluc3RydWN0aW9uIHNldCBhdnI0IGlzIGZvciB0aGUg ZW5oYW5jZWQgQVZSIGNvcmUgd2l0aCB1cCB0byA4SyBwcm9ncmFtIG1lbW9yeSBzcGFjZSAo TUNVIHR5cGVzOiBhdG1lZ2E4LCBhdG1lZ2E4MywgYXRtZWdhODUpLgouUHAKSW5zdHJ1Y3Rp b24gc2V0IGF2cjUgaXMgZm9yIHRoZSBlbmhhbmNlZCBBVlIgY29yZSB3aXRoIHVwIHRvIDEy OEsgcHJvZ3JhbSBtZW1vcnkgc3BhY2UgKE1DVSB0eXBlczogYXRtZWdhMTYsIGF0bWVnYTE2 MSwgYXRtZWdhMTYzLCBhdG1lZ2EzMiwgYXRtZWdhMzIzLCBhdG1lZ2E2NCwgYXRtZWdhMTI4 LCBhdDQzdXNiMzU1LCBhdDk0aykuCi5QcAouSXQgRmwgbXNpemUKT3V0cHV0IGluc3RydWN0 aW9uIHNpemVzIHRvIHRoZSBhc20gZmlsZS4KLlBwCi5JdCBGbCBtaW5pdC1zdGFjaz0gTnMg QXIgTgpTcGVjaWZ5IHRoZSBpbml0aWFsIHN0YWNrIGFkZHJlc3MsIHdoaWNoIG1heSBiZSBh IHN5bWJvbCBvciBudW1lcmljIHZhbHVlLAouU3kgX19zdGFjawppcyB0aGUgZGVmYXVsdC4K LlBwCi5JdCBGbCBtbm8taW50ZXJydXB0cwpHZW5lcmF0ZWQgY29kZSBpcyBub3QgY29tcGF0 aWJsZSB3aXRoIGhhcmR3YXJlIGludGVycnVwdHMuCkNvZGUgc2l6ZSB3aWxsIGJlIHNtYWxs ZXIuCi5QcAouSXQgRmwgbWNhbGwtcHJvbG9ndWVzCkZ1bmN0aW9ucyBwcm9sb2d1ZXMvZXBp bG9ndWVzIGV4cGFuZGVkIGFzIGNhbGwgdG8gYXBwcm9wcmlhdGUgc3Vicm91dGluZXMuCkNv ZGUgc2l6ZSB3aWxsIGJlIHNtYWxsZXIuCi5QcAouSXQgRmwgbW5vLXRhYmxlanVtcApEbyBu b3QgZ2VuZXJhdGUgdGFibGVqdW1wIGluc25zIHdoaWNoIHNvbWV0aW1lcyBpbmNyZWFzZSBj b2RlIHNpemUuCi5QcAouSXQgRmwgbXRpbnktc3RhY2sKQ2hhbmdlIG9ubHkgdGhlIGxvdyA4 IGJpdHMgb2YgdGhlIHN0YWNrIHBvaW50ZXIuCi5QcAouSXQgRmwgbWludDgKQXNzdW1lIGlu dCB0byBiZSA4IGJpdCBpbnRlZ2VyLgpUaGlzIGFmZmVjdHMgdGhlIHNpemVzIG9mIGFsbCB0 eXBlczogQSBjaGFyIHdpbGwgYmUgMSBieXRlLCBhbiBpbnQgd2lsbCBiZSAxIGJ5dGUsIGFu IGxvbmcgd2lsbCBiZSAyIGJ5dGVzIGFuZCBsb25nIGxvbmcgd2lsbCBiZSA0IGJ5dGVzLgpQ bGVhc2Ugbm90ZSB0aGF0IHRoaXMgb3B0aW9uIGRvZXMgbm90IGNvbXBseSB0byB0aGUgQyBz dGFuZGFyZHMsIGJ1dCBpdCB3aWxsIHByb3ZpZGUgeW91IHdpdGggc21hbGxlciBjb2RlIHNp emUuCi5QcAouRWwKLkl0IFN5IEJsYWNrZmluIE9wdGlvbnMKLkJsIC10YWcgLXdpZHRoIHh4 Ci5JdCBGbCBtb21pdC1sZWFmLWZyYW1lLXBvaW50ZXIKRG9uJ3Qga2VlcCB0aGUgZnJhbWUg cG9pbnRlciBpbiBhIHJlZ2lzdGVyIGZvciBsZWFmIGZ1bmN0aW9ucy4KVGhpcyBhdm9pZHMg dGhlIGluc3RydWN0aW9ucyB0byBzYXZlLCBzZXQgdXAgYW5kIHJlc3RvcmUgZnJhbWUgcG9p bnRlcnMgYW5kIG1ha2VzIGFuIGV4dHJhIHJlZ2lzdGVyIGF2YWlsYWJsZSBpbiBsZWFmIGZ1 bmN0aW9ucy4KVGhlIG9wdGlvbgouRmwgZm9taXQtZnJhbWUtcG9pbnRlcgpyZW1vdmVzIHRo ZSBmcmFtZSBwb2ludGVyIGZvciBhbGwgZnVuY3Rpb25zIHdoaWNoIG1pZ2h0IG1ha2UgZGVi dWdnaW5nIGhhcmRlci4KLlBwCi5JdCBGbCBtc3BlY2xkLWFub21hbHkKV2hlbiBlbmFibGVk LCB0aGUgY29tcGlsZXIgd2lsbCBlbnN1cmUgdGhhdCB0aGUgZ2VuZXJhdGVkIGNvZGUgZG9l cyBub3QgY29udGFpbiBzcGVjdWxhdGl2ZSBsb2FkcyBhZnRlciBqdW1wIGluc3RydWN0aW9u cy4KVGhpcyBvcHRpb24gaXMgZW5hYmxlZCBieSBkZWZhdWx0LgouUHAKLkl0IEZsIG1uby1z cGVjbGQtYW5vbWFseQpEb24ndCBnZW5lcmF0ZSBleHRyYSBjb2RlIHRvIHByZXZlbnQgc3Bl Y3VsYXRpdmUgbG9hZHMgZnJvbSBvY2N1cnJpbmcuCi5QcAouSXQgRmwgbWNzeW5jLWFub21h bHkKV2hlbiBlbmFibGVkLCB0aGUgY29tcGlsZXIgd2lsbCBlbnN1cmUgdGhhdCB0aGUgZ2Vu ZXJhdGVkIGNvZGUgZG9lcyBub3QgY29udGFpbiBDU1lOQyBvciBTU1lOQyBpbnN0cnVjdGlv bnMgdG9vIHNvb24gYWZ0ZXIgY29uZGl0aW9uYWwgYnJhbmNoZXMuClRoaXMgb3B0aW9uIGlz IGVuYWJsZWQgYnkgZGVmYXVsdC4KLlBwCi5JdCBGbCBtbm8tY3N5bmMtYW5vbWFseQpEb24n dCBnZW5lcmF0ZSBleHRyYSBjb2RlIHRvIHByZXZlbnQgQ1NZTkMgb3IgU1NZTkMgaW5zdHJ1 Y3Rpb25zIGZyb20gb2NjdXJyaW5nIHRvbyBzb29uIGFmdGVyIGEgY29uZGl0aW9uYWwgYnJh bmNoLgouUHAKLkl0IEZsIG1sb3ctNjRrCldoZW4gZW5hYmxlZCwgdGhlIGNvbXBpbGVyIGlz IGZyZWUgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIGtub3dsZWRnZSB0aGF0IHRoZSBlbnRp cmUgcHJvZ3JhbSBmaXRzIGludG8gdGhlIGxvdyA2NGsgb2YgbWVtb3J5LgouUHAKLkl0IEZs IG1uby1sb3ctNjRrCkFzc3VtZSB0aGF0IHRoZSBwcm9ncmFtIGlzIGFyYml0cmFyaWx5IGxh cmdlLgpUaGlzIGlzIHRoZSBkZWZhdWx0LgouUHAKLkl0IEZsIG1pZC1zaGFyZWQtbGlicmFy eQpHZW5lcmF0ZSBjb2RlIHRoYXQgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcyB2aWEgdGhl IGxpYnJhcnkgSUQgbWV0aG9kLgpUaGlzIGFsbG93cyBmb3IgZXhlY3V0ZSBpbiBwbGFjZSBh bmQgc2hhcmVkIGxpYnJhcmllcyBpbiBhbiBlbnZpcm9ubWVudCB3aXRob3V0IHZpcnR1YWwg bWVtb3J5IG1hbmFnZW1lbnQuClRoaXMgb3B0aW9uIGltcGxpZXMKLkZsIGZQSUMgLgouUHAK Lkl0IEZsIG1uby1pZC1zaGFyZWQtbGlicmFyeQpHZW5lcmF0ZSBjb2RlIHRoYXQgZG9lc24n dCBhc3N1bWUgSUQgYmFzZWQgc2hhcmVkIGxpYnJhcmllcyBhcmUgYmVpbmcgdXNlZC4KVGhp cyBpcyB0aGUgZGVmYXVsdC4KLlBwCi5JdCBGbCBtc2hhcmVkLWxpYnJhcnktaWQ9bgpTcGVj aWZpZWQgdGhlIGlkZW50aWZpY2F0aW9uIG51bWJlciBvZiB0aGUgSUQgYmFzZWQgc2hhcmVk IGxpYnJhcnkgYmVpbmcgY29tcGlsZWQuClNwZWNpZnlpbmcgYSB2YWx1ZSBvZiAwIHdpbGwg Z2VuZXJhdGUgbW9yZSBjb21wYWN0IGNvZGUsIHNwZWNpZnlpbmcgb3RoZXIgdmFsdWVzIHdp bGwgZm9yY2UgdGhlIGFsbG9jYXRpb24gb2YgdGhhdCBudW1iZXIgdG8gdGhlIGN1cnJlbnQg bGlicmFyeSBidXQgaXMgbm8gbW9yZSBzcGFjZSBvciB0aW1lIGVmZmljaWVudCB0aGFuIG9t aXR0aW5nIHRoaXMgb3B0aW9uLgouUHAKLkl0IEZsIG1sb25nLWNhbGxzCi5JdCBGbCBtbm8t bG9uZy1jYWxscwpUZWxscyB0aGUgY29tcGlsZXIgdG8gcGVyZm9ybSBmdW5jdGlvbiBjYWxs cyBieSBmaXJzdCBsb2FkaW5nIHRoZSBhZGRyZXNzIG9mIHRoZSBmdW5jdGlvbiBpbnRvIGEg cmVnaXN0ZXIgYW5kIHRoZW4gcGVyZm9ybWluZyBhIHN1YnJvdXRpbmUgY2FsbCBvbiB0aGlz IHJlZ2lzdGVyLgpUaGlzIHN3aXRjaCBpcyBuZWVkZWQgaWYgdGhlIHRhcmdldCBmdW5jdGlv biB3aWxsIGxpZSBvdXRzaWRlIG9mIHRoZSAyNCBiaXQgYWRkcmVzc2luZyByYW5nZSBvZiB0 aGUgb2Zmc2V0IGJhc2VkIHZlcnNpb24gb2Ygc3Vicm91dGluZSBjYWxsIGluc3RydWN0aW9u LgouUHAKVGhpcyBmZWF0dXJlIGlzIG5vdCBlbmFibGVkIGJ5IGRlZmF1bHQuClNwZWNpZnlp bmcKLkZsIG1uby1sb25nLWNhbGxzCndpbGwgcmVzdG9yZSB0aGUgZGVmYXVsdCBiZWhhdmlv ci4KTm90ZSB0aGVzZSBzd2l0Y2hlcyBoYXZlIG5vIGVmZmVjdCBvbiBob3cgdGhlIGNvbXBp bGVyIGdlbmVyYXRlcyBjb2RlIHRvIGhhbmRsZSBmdW5jdGlvbiBjYWxscyB2aWEgZnVuY3Rp b24gcG9pbnRlcnMuCi5QcAouRWwKLkl0IFN5IENSSVMgT3B0aW9ucwpUaGVzZSBvcHRpb25z IGFyZSBkZWZpbmVkIHNwZWNpZmljYWxseSBmb3IgdGhlIENSSVMgcG9ydHMuCi5QcAouQmwg LXRhZyAtd2lkdGggeHgKLkl0IEZsIG1hcmNoPSBOcyBBciBhcmNoaXRlY3R1cmUtdHlwZQou SXQgRmwgbWNwdT0gTnMgQXIgYXJjaGl0ZWN0dXJlLXR5cGUKR2VuZXJhdGUgY29kZSBmb3Ig dGhlIHNwZWNpZmllZCBhcmNoaXRlY3R1cmUuClRoZSBjaG9pY2VzIGZvcgouRW0gYXJjaGl0 ZWN0dXJlLXR5cGUKYXJlCi5TeSB2MyAsCi5TeSB2OAphbmQKLlN5IHYxMApmb3IgcmVzcGVj dGl2ZWx5IEVUUkFYXH40LCBFVFJBWFx+MTAwLCBhbmQgRVRSQVhcfjEwMFx+TFguCkRlZmF1 bHQgaXMKLlN5IHYwCmV4Y2VwdCBmb3IgY3Jpcy1heGlzLWxpbnV4LWdudSwgd2hlcmUgdGhl IGRlZmF1bHQgaXMKLlN5IHYxMCAuCi5QcAouSXQgRmwgbXR1bmU9IE5zIEFyIGFyY2hpdGVj dHVyZS10eXBlClR1bmUgdG8KLkVtIGFyY2hpdGVjdHVyZS10eXBlCmV2ZXJ5dGhpbmcgYXBw bGljYWJsZSBhYm91dCB0aGUgZ2VuZXJhdGVkIGNvZGUsIGV4Y2VwdCBmb3IgdGhlIEFCSSBh bmQgdGhlIHNldCBvZiBhdmFpbGFibGUgaW5zdHJ1Y3Rpb25zLgpUaGUgY2hvaWNlcyBmb3IK LkVtIGFyY2hpdGVjdHVyZS10eXBlCmFyZSB0aGUgc2FtZSBhcyBmb3IKLkZsIG1hcmNoPSBO cyBBciBhcmNoaXRlY3R1cmUtdHlwZSAuCi5QcAouSXQgRmwgbW1heC1zdGFjay1mcmFtZT0g TnMgQXIgbgpXYXJuIHdoZW4gdGhlIHN0YWNrIGZyYW1lIG9mIGEgZnVuY3Rpb24gZXhjZWVk cwouRW0gbgpieXRlcy4KLlBwCi5JdCBGbCBtZWxpbnV4LXN0YWNrc2l6ZT0gTnMgQXIgbgpP bmx5IGF2YWlsYWJsZSB3aXRoIHRoZQouU3kgY3Jpcy1heGlzLWFvdXQKdGFyZ2V0LgpBcnJh bmdlcyBmb3IgaW5kaWNhdGlvbnMgaW4gdGhlIHByb2dyYW0gdG8gdGhlIGtlcm5lbCBsb2Fk ZXIgdGhhdCB0aGUgc3RhY2sgb2YgdGhlIHByb2dyYW0gc2hvdWxkIGJlIHNldCB0bwouRW0g bgpieXRlcy4KLlBwCi5JdCBGbCBtZXRyYXg0Ci5JdCBGbCBtZXRyYXgxMDAKVGhlIG9wdGlv bnMKLkZsIG1ldHJheDQKYW5kCi5GbCBtZXRyYXgxMDAKYXJlIHN5bm9ueW1zIGZvcgouRmwg bWFyY2g9djMKYW5kCi5GbCBtYXJjaD12OApyZXNwZWN0aXZlbHkuCi5QcAouSXQgRmwgbW11 bC1idWctd29ya2Fyb3VuZAouSXQgRmwgbW5vLW11bC1idWctd29ya2Fyb3VuZApXb3JrIGFy b3VuZCBhIGJ1ZyBpbiB0aGUKLlZhIG11bHMKYW5kCi5WYSBtdWx1Cmluc3RydWN0aW9ucyBm b3IgQ1BVIG1vZGVscyB3aGVyZSBpdCBhcHBsaWVzLgpUaGlzIG9wdGlvbiBpcyBhY3RpdmUg YnkgZGVmYXVsdC4KLlBwCi5JdCBGbCBtcGRlYnVnCkVuYWJsZSBDUklTLXNwZWNpZmljIHZl cmJvc2UgZGVidWctcmVsYXRlZCBpbmZvcm1hdGlvbiBpbiB0aGUgYXNzZW1ibHkgY29kZS4K VGhpcyBvcHRpb24gYWxzbyBoYXMgdGhlIGVmZmVjdCB0byB0dXJuIG9mZiB0aGUKLlN5ICNO T19BUFAKZm9ybWF0dGVkLWNvZGUgaW5kaWNhdG9yIHRvIHRoZSBhc3NlbWJsZXIgYXQgdGhl IGJlZ2lubmluZyBvZiB0aGUgYXNzZW1ibHkgZmlsZS4KLlBwCi5JdCBGbCBtY2MtaW5pdApE byBub3QgdXNlIGNvbmRpdGlvbi1jb2RlIHJlc3VsdHMgZnJvbSBwcmV2aW91cyBpbnN0cnVj dGlvbjsgYWx3YXlzIGVtaXQgY29tcGFyZSBhbmQgdGVzdCBpbnN0cnVjdGlvbnMgYmVmb3Jl IHVzZSBvZiBjb25kaXRpb24gY29kZXMuCi5QcAouSXQgRmwgbW5vLXNpZGUtZWZmZWN0cwpE byBub3QgZW1pdCBpbnN0cnVjdGlvbnMgd2l0aCBzaWRlLWVmZmVjdHMgaW4gYWRkcmVzc2lu ZyBtb2RlcyBvdGhlciB0aGFuIHBvc3QtaW5jcmVtZW50LgouUHAKLkl0IEZsIG1zdGFjay1h bGlnbgouSXQgRmwgbW5vLXN0YWNrLWFsaWduCi5JdCBGbCBtZGF0YS1hbGlnbgouSXQgRmwg bW5vLWRhdGEtYWxpZ24KLkl0IEZsIG1jb25zdC1hbGlnbgouSXQgRmwgbW5vLWNvbnN0LWFs aWduClRoZXNlIG9wdGlvbnMgKG5vLW9wdGlvbnMpIGFycmFuZ2VzIChlbGltaW5hdGUgYXJy YW5nZW1lbnRzKSBmb3IgdGhlIHN0YWNrLWZyYW1lLCBpbmRpdmlkdWFsIGRhdGEgYW5kIGNv bnN0YW50cyB0byBiZSBhbGlnbmVkIGZvciB0aGUgbWF4aW11bSBzaW5nbGUgZGF0YSBhY2Nl c3Mgc2l6ZSBmb3IgdGhlIGNob3NlbiBDUFUgbW9kZWwuClRoZSBkZWZhdWx0IGlzIHRvIGFy cmFuZ2UgZm9yIDMyLWJpdCBhbGlnbm1lbnQuCkFCSSBkZXRhaWxzIHN1Y2ggYXMgc3RydWN0 dXJlIGxheW91dCBhcmUgbm90IGFmZmVjdGVkIGJ5IHRoZXNlIG9wdGlvbnMuCi5QcAouSXQg RmwgbTMyLWJpdAouSXQgRmwgbTE2LWJpdAouSXQgRmwgbTgtYml0ClNpbWlsYXIgdG8gdGhl IHN0YWNrLSBkYXRhLSBhbmQgY29uc3QtYWxpZ24gb3B0aW9ucyBhYm92ZSwgdGhlc2Ugb3B0 aW9ucyBhcnJhbmdlIGZvciBzdGFjay1mcmFtZSwgd3JpdGFibGUgZGF0YSBhbmQgY29uc3Rh bnRzIHRvIGFsbCBiZSAzMi1iaXQsIDE2LWJpdCBvciA4LWJpdCBhbGlnbmVkLgpUaGUgZGVm YXVsdCBpcyAzMi1iaXQgYWxpZ25tZW50LgouUHAKLkl0IEZsIG1uby1wcm9sb2d1ZS1lcGls b2d1ZQouSXQgRmwgbXByb2xvZ3VlLWVwaWxvZ3VlCldpdGgKLkZsIG1uby1wcm9sb2d1ZS1l cGlsb2d1ZSAsCnRoZSBub3JtYWwgZnVuY3Rpb24gcHJvbG9ndWUgYW5kIGVwaWxvZ3VlIHRo YXQgc2V0cyB1cCB0aGUgc3RhY2stZnJhbWUgYXJlIG9taXR0ZWQgYW5kIG5vIHJldHVybiBp bnN0cnVjdGlvbnMgb3IgcmV0dXJuIHNlcXVlbmNlcyBhcmUgZ2VuZXJhdGVkIGluIHRoZSBj b2RlLgpVc2UgdGhpcyBvcHRpb24gb25seSB0b2dldGhlciB3aXRoIHZpc3VhbCBpbnNwZWN0 aW9uIG9mIHRoZSBjb21waWxlZCBjb2RlOiBubyB3YXJuaW5ncyBvciBlcnJvcnMgYXJlIGdl bmVyYXRlZCB3aGVuIGNhbGwtc2F2ZWQgcmVnaXN0ZXJzIG11c3QgYmUgc2F2ZWQsIG9yIHN0 b3JhZ2UgZm9yIGxvY2FsIHZhcmlhYmxlIG5lZWRzIHRvIGJlIGFsbG9jYXRlZC4KLlBwCi5J dCBGbCBtbm8tZ290cGx0Ci5JdCBGbCBtZ290cGx0CldpdGgKLkZsIGZwaWMKYW5kCi5GbCBm UElDICwKZG9uJ3QgZ2VuZXJhdGUgKGRvIGdlbmVyYXRlKSBpbnN0cnVjdGlvbiBzZXF1ZW5j ZXMgdGhhdCBsb2FkIGFkZHJlc3NlcyBmb3IgZnVuY3Rpb25zIGZyb20gdGhlIFBMVCBwYXJ0 IG9mIHRoZSBHT1QgcmF0aGVyIHRoYW4gKHRyYWRpdGlvbmFsIG9uIG90aGVyIGFyY2hpdGVj dHVyZXMpIGNhbGxzIHRvIHRoZSBQTFQuClRoZSBkZWZhdWx0IGlzCi5GbCBtZ290cGx0IC4K LlBwCi5JdCBGbCBtYW91dApMZWdhY3kgbm8tb3Agb3B0aW9uIG9ubHkgcmVjb2duaXplZCB3 aXRoIHRoZSBjcmlzLWF4aXMtYW91dCB0YXJnZXQuCi5QcAouSXQgRmwgbWVsZgpMZWdhY3kg bm8tb3Agb3B0aW9uIG9ubHkgcmVjb2duaXplZCB3aXRoIHRoZSBjcmlzLWF4aXMtZWxmIGFu ZCBjcmlzLWF4aXMtbGludXgtZ251IHRhcmdldHMuCi5QcAouSXQgRmwgbWVsaW51eApPbmx5 IHJlY29nbml6ZWQgd2l0aCB0aGUgY3Jpcy1heGlzLWFvdXQgdGFyZ2V0LCB3aGVyZSBpdCBz ZWxlY3RzIGEgR05VL2xpbnV4LWxpa2UgbXVsdGlsaWIsIGluY2x1ZGUgZmlsZXMgYW5kIGlu c3RydWN0aW9uIHNldCBmb3IKLkZsIG1hcmNoPXY4IC4KLlBwCi5JdCBGbCBtbGludXgKTGVn YWN5IG5vLW9wIG9wdGlvbiBvbmx5IHJlY29nbml6ZWQgd2l0aCB0aGUgY3Jpcy1heGlzLWxp bnV4LWdudSB0YXJnZXQuCi5QcAouSXQgRmwgc2ltClRoaXMgb3B0aW9uLCByZWNvZ25pemVk IGZvciB0aGUgY3Jpcy1heGlzLWFvdXQgYW5kIGNyaXMtYXhpcy1lbGYgYXJyYW5nZXMgdG8g bGluayB3aXRoIGlucHV0LW91dHB1dCBmdW5jdGlvbnMgZnJvbSBhIHNpbXVsYXRvciBsaWJy YXJ5LgpDb2RlLCBpbml0aWFsaXplZCBkYXRhIGFuZCB6ZXJvLWluaXRpYWxpemVkIGRhdGEg YXJlIGFsbG9jYXRlZCBjb25zZWN1dGl2ZWx5LgouUHAKLkl0IEZsIHNpbTIKTGlrZQouRmwg c2ltICwKYnV0IHBhc3MgbGlua2VyIG9wdGlvbnMgdG8gbG9jYXRlIGluaXRpYWxpemVkIGRh dGEgYXQgMHg0MDAwMDAwMCBhbmQgemVyby1pbml0aWFsaXplZCBkYXRhIGF0IDB4ODAwMDAw MDAuCi5QcAouRWwKLkl0IFN5IENSWCBPcHRpb25zClRoZXNlIG9wdGlvbnMgYXJlIGRlZmlu ZWQgc3BlY2lmaWNhbGx5IGZvciB0aGUgQ1JYIHBvcnRzLgouUHAKLkJsIC10YWcgLXdpZHRo IHh4Ci5JdCBGbCBtbWFjCkVuYWJsZSB0aGUgdXNlIG9mIG11bHRpcGx5LWFjY3VtdWxhdGUg aW5zdHJ1Y3Rpb25zLgpEaXNhYmxlZCBieSBkZWZhdWx0LgouUHAKLkl0IEZsIG1wdXNoLWFy Z3MKUHVzaCBpbnN0cnVjdGlvbnMgd2lsbCBiZSB1c2VkIHRvIHBhc3Mgb3V0Z29pbmcgYXJn dW1lbnRzIHdoZW4gZnVuY3Rpb25zIGFyZSBjYWxsZWQuCkVuYWJsZWQgYnkgZGVmYXVsdC4K LlBwCi5FbAouSXQgU3kgRGFyd2luIE9wdGlvbnMKVGhlc2Ugb3B0aW9ucyBhcmUgZGVmaW5l ZCBmb3IgYWxsIGFyY2hpdGVjdHVyZXMgcnVubmluZyB0aGUgRGFyd2luIG9wZXJhdGluZyBz eXN0ZW0uCi5QcApGU0YgR0NDIG9uIERhcndpbiBkb2VzIG5vdCBjcmVhdGUgImZhdCIgb2Jq ZWN0IGZpbGVzOyBpdCB3aWxsIGNyZWF0ZSBhbiBvYmplY3QgZmlsZSBmb3IgdGhlIHNpbmds ZSBhcmNoaXRlY3R1cmUgdGhhdCBpdCB3YXMgYnVpbHQgdG8gdGFyZ2V0LgpBcHBsZSdzIEdD QyBvbiBEYXJ3aW4gZG9lcyBjcmVhdGUgImZhdCIgZmlsZXMgaWYgbXVsdGlwbGUKLkZsIGFy Y2gKb3B0aW9ucyBhcmUgdXNlZDsgaXQgZG9lcyBzbyBieSBydW5uaW5nIHRoZSBjb21waWxl ciBvciBsaW5rZXIgbXVsdGlwbGUgdGltZXMgYW5kIGpvaW5pbmcgdGhlIHJlc3VsdHMgdG9n ZXRoZXIgd2l0aAouUGEgbGlwbyAuCi5QcApUaGUgc3VidHlwZSBvZiB0aGUgZmlsZSBjcmVh dGVkIChsaWtlCi5TeSBwcGM3NDAwCm9yCi5TeSBwcGM5NzAKb3IKLlN5IGk2ODYgKQppcyBk ZXRlcm1pbmVkIGJ5IHRoZSBmbGFncyB0aGF0IHNwZWNpZnkgdGhlIElTQSB0aGF0IEdDQyBp cyB0YXJnZXR0aW5nLCBsaWtlCi5GbCBtY3B1Cm9yCi5GbCBtYXJjaCAuClRoZQouRmwgZm9y Y2VfY3B1c3VidHlwZV9BTEwKb3B0aW9uIGNhbiBiZSB1c2VkIHRvIG92ZXJyaWRlIHRoaXMu Ci5QcApUaGUgRGFyd2luIHRvb2xzIHZhcnkgaW4gdGhlaXIgYmVoYXZpb3Igd2hlbiBwcmVz ZW50ZWQgd2l0aCBhbiBJU0EgbWlzbWF0Y2guClRoZSBhc3NlbWJsZXIsCi5QYSBhcyAsCndp bGwgb25seSBwZXJtaXQgaW5zdHJ1Y3Rpb25zIHRvIGJlIHVzZWQgdGhhdCBhcmUgdmFsaWQg Zm9yIHRoZSBzdWJ0eXBlIG9mIHRoZSBmaWxlIGl0IGlzIGdlbmVyYXRpbmcsIHNvIHlvdSBj YW5ub3QgcHV0IDY0LWJpdCBpbnN0cnVjdGlvbnMgaW4gYW4KLlN5IHBwYzc1MApvYmplY3Qg ZmlsZS4KVGhlIGxpbmtlciBmb3Igc2hhcmVkIGxpYnJhcmllcywKLlBhIC91c3IvYmluL2xp YnRvb2wgLAp3aWxsIGZhaWwgYW5kIHByaW50IGFuIGVycm9yIGlmIGFza2VkIHRvIGNyZWF0 ZSBhIHNoYXJlZCBsaWJyYXJ5IHdpdGggYSBsZXNzIHJlc3RyaWN0aXZlIHN1YnR5cGUgdGhh biBpdHMgaW5wdXQgZmlsZXMgKGZvciBpbnN0YW5jZSwgdHJ5aW5nIHRvIHB1dCBhCi5TeSBw cGM5NzAKb2JqZWN0IGZpbGUgaW4gYQouU3kgcHBjNzQwMApsaWJyYXJ5KS4KVGhlIGxpbmtl ciBmb3IgZXhlY3V0YWJsZXMsCi5QYSBsZCAsCndpbGwgcXVpZXRseSBnaXZlIHRoZSBleGVj dXRhYmxlIHRoZSBtb3N0IHJlc3RyaWN0aXZlIHN1YnR5cGUgb2YgYW55IG9mIGl0cyBpbnB1 dCBmaWxlcy4KLlBwCi5CbCAtdGFnIC13aWR0aCB4eAouSXQgRmwgRiBOcyBBciBkaXIKQWRk IHRoZSBmcmFtZXdvcmsgZGlyZWN0b3J5Ci5FbSBkaXIKdG8gdGhlIGhlYWQgb2YgdGhlIGxp c3Qgb2YgZGlyZWN0b3JpZXMgdG8gYmUgc2VhcmNoZWQgZm9yIGhlYWRlciBmaWxlcy4KVGhl c2UgZGlyZWN0b3JpZXMgYXJlIGludGVybGVhdmVkIHdpdGggdGhvc2Ugc3BlY2lmaWVkIGJ5 Ci5GbCBJCm9wdGlvbnMgYW5kIGFyZSBzY2FubmVkIGluIGEgbGVmdC10by1yaWdodCBvcmRl ci4KLlBwCkEgZnJhbWV3b3JrIGRpcmVjdG9yeSBpcyBhIGRpcmVjdG9yeSB3aXRoIGZyYW1l d29ya3MgaW4gaXQuCkEgZnJhbWV3b3JrIGlzIGEgZGlyZWN0b3J5IHdpdGggYQouU3kgXCYi SGVhZGVycyIKYW5kL29yCi5TeSBcJiJQcml2YXRlSGVhZGVycyIKZGlyZWN0b3J5IGNvbnRh aW5lZCBkaXJlY3RseSBpbiBpdCB0aGF0IGVuZHMgaW4KLlN5IFwmIi5mcmFtZXdvcmsiIC4K VGhlIG5hbWUgb2YgYSBmcmFtZXdvcmsgaXMgdGhlIG5hbWUgb2YgdGhpcyBkaXJlY3Rvcnkg ZXhjbHVkaW5nIHRoZQouU3kgXCYiLmZyYW1ld29yayIgLgpIZWFkZXJzIGFzc29jaWF0ZWQg d2l0aCB0aGUgZnJhbWV3b3JrIGFyZSBmb3VuZCBpbiBvbmUgb2YgdGhvc2UgdHdvIGRpcmVj dG9yaWVzLCB3aXRoCi5TeSBcJiJIZWFkZXJzIgpiZWluZyBzZWFyY2hlZCBmaXJzdC4KQSBz dWJmcmFtZXdvcmsgaXMgYSBmcmFtZXdvcmsgZGlyZWN0b3J5IHRoYXQgaXMgaW4gYSBmcmFt ZXdvcmsncwouU3kgXCYiRnJhbWV3b3JrcyIKZGlyZWN0b3J5LgpJbmNsdWRlcyBvZiBzdWJm cmFtZXdvcmsgaGVhZGVycyBjYW4gb25seSBhcHBlYXIgaW4gYSBoZWFkZXIgb2YgYSBmcmFt ZXdvcmsgdGhhdCBjb250YWlucyB0aGUgc3ViZnJhbWV3b3JrLCBvciBpbiBhIHNpYmxpbmcg c3ViZnJhbWV3b3JrIGhlYWRlci4KVHdvIHN1YmZyYW1ld29ya3MgYXJlIHNpYmxpbmdzIGlm IHRoZXkgb2NjdXIgaW4gdGhlIHNhbWUgZnJhbWV3b3JrLgpBIHN1YmZyYW1ld29yayBzaG91 bGQgbm90IGhhdmUgdGhlIHNhbWUgbmFtZSBhcyBhIGZyYW1ld29yaywgYSB3YXJuaW5nIHdp bGwgYmUgaXNzdWVkIGlmIHRoaXMgaXMgdmlvbGF0ZWQuCkN1cnJlbnRseSBhIHN1YmZyYW1l d29yayBjYW5ub3QgaGF2ZSBzdWJmcmFtZXdvcmtzLCBpbiB0aGUgZnV0dXJlLCB0aGUgbWVj aGFuaXNtIG1heSBiZSBleHRlbmRlZCB0byBzdXBwb3J0IHRoaXMuClRoZSBzdGFuZGFyZCBm cmFtZXdvcmtzIGNhbiBiZSBmb3VuZCBpbgouU3kgXCYiL1N5c3RlbS9MaWJyYXJ5L0ZyYW1l d29ya3MiCmFuZAouU3kgXCYiL0xpYnJhcnkvRnJhbWV3b3JrcyIgLgpBbiBleGFtcGxlIGlu Y2x1ZGUgbG9va3MgbGlrZQouVmEgI2luY2x1ZGUgXCpbTHRdRnJhbWV3b3JrL2hlYWRlci5o XCpbR3RdICwKd2hlcmUKLlN5IEZyYW1ld29yawpkZW5vdGVzIHRoZSBuYW1lIG9mIHRoZSBm cmFtZXdvcmsgYW5kIGhlYWRlci5oIGlzIGZvdW5kIGluIHRoZQouU3kgXCYiUHJpdmF0ZUhl YWRlcnMiCm9yCi5TeSBcJiJIZWFkZXJzIgpkaXJlY3RvcnkuCi5QcAouSXQgRmwgZ3VzZWQK RW1pdCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24gZm9yIHN5bWJvbHMgdGhhdCBhcmUgdXNlZC4K Rm9yIFNUQUJTIGRlYnVnZ2luZyBmb3JtYXQsIHRoaXMgZW5hYmxlcwouRmwgZmVsaW1pbmF0 ZS11bnVzZWQtZGVidWctc3ltYm9scyAuClRoaXMgaXMgYnkgZGVmYXVsdCBPTi4KLlBwCi5J dCBGbCBnZnVsbApFbWl0IGRlYnVnZ2luZyBpbmZvcm1hdGlvbiBmb3IgYWxsIHN5bWJvbHMg YW5kIHR5cGVzLgouUHAKLkl0IEZsIG1tYWNvc3gtdmVyc2lvbi1taW49IE5zIEFyIHZlcnNp b24KVGhlIGVhcmxpZXN0IHZlcnNpb24gb2YgTWFjT1MgWCB0aGF0IHRoaXMgZXhlY3V0YWJs ZSB3aWxsIHJ1biBvbiBpcwouRW0gdmVyc2lvbiAuClR5cGljYWwgdmFsdWVzIG9mCi5FbSB2 ZXJzaW9uCmluY2x1ZGUKLlZhIDEwLjEgLAouVmEgMTAuMiAsCmFuZAouVmEgMTAuMy45IC4K LlBwClRoZSBkZWZhdWx0IGZvciB0aGlzIG9wdGlvbiBpcyB0byBtYWtlIGNob2ljZXMgdGhh dCBzZWVtIHRvIGJlIG1vc3QgdXNlZnVsLgouUHAKLkl0IEZsIG1vbmUtYnl0ZS1ib29sCk92 ZXJyaWRlIHRoZSBkZWZhdWx0cyBmb3IKLlN5IGJvb2wKc28gdGhhdAouU3kgc2l6ZW9mKGJv b2wpPT0xIC4KQnkgZGVmYXVsdAouU3kgc2l6ZW9mKGJvb2wpCmlzCi5TeSA0CndoZW4gY29t cGlsaW5nIGZvciBEYXJ3aW4vUG93ZXJQQyBhbmQKLlN5IDEKd2hlbiBjb21waWxpbmcgZm9y IERhcndpbi94ODYsIHNvIHRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24geDg2LgouUHAK LlN5IFdhcm5pbmc6ClRoZQouRmwgbW9uZS1ieXRlLWJvb2wKc3dpdGNoIGNhdXNlcyBHQ0Mg dG8gZ2VuZXJhdGUgY29kZSB0aGF0IGlzIG5vdCBiaW5hcnkgY29tcGF0aWJsZSB3aXRoIGNv ZGUgZ2VuZXJhdGVkIHdpdGhvdXQgdGhhdCBzd2l0Y2guClVzaW5nIHRoaXMgc3dpdGNoIG1h eSByZXF1aXJlIHJlY29tcGlsaW5nIGFsbCBvdGhlciBtb2R1bGVzIGluIGEgcHJvZ3JhbSwg aW5jbHVkaW5nIHN5c3RlbSBsaWJyYXJpZXMuClVzZSB0aGlzIHN3aXRjaCB0byBjb25mb3Jt IHRvIGEgbm9uLWRlZmF1bHQgZGF0YSBtb2RlbC4KLlBwCi5JdCBGbCBtZml4LWFuZC1jb250 aW51ZQouSXQgRmwgZmZpeC1hbmQtY29udGludWUKLkl0IEZsIGZpbmRpcmVjdC1kYXRhCkdl bmVyYXRlIGNvZGUgc3VpdGFibGUgZm9yIGZhc3QgdHVybiBhcm91bmQgZGV2ZWxvcG1lbnQu Ck5lZWRlZCB0byBlbmFibGUgZ2RiIHRvIGR5bmFtaWNhbGx5IGxvYWQKLlZhIC5vCmZpbGVz IGludG8gYWxyZWFkeSBydW5uaW5nIHByb2dyYW1zLgouRmwgZmluZGlyZWN0LWRhdGEKYW5k Ci5GbCBmZml4LWFuZC1jb250aW51ZQphcmUgcHJvdmlkZWQgZm9yIGJhY2t3YXJkcyBjb21w YXRpYmlsaXR5LgouUHAKLkl0IEZsIGFsbF9sb2FkCkxvYWRzIGFsbCBtZW1iZXJzIG9mIHN0 YXRpYyBhcmNoaXZlIGxpYnJhcmllcy4KU2VlIG1hbiBsZCgxKSBmb3IgbW9yZSBpbmZvcm1h dGlvbi4KLlBwCi5JdCBGbCBhcmNoX2Vycm9yc19mYXRhbApDYXVzZSB0aGUgZXJyb3JzIGhh dmluZyB0byBkbyB3aXRoIGZpbGVzIHRoYXQgaGF2ZSB0aGUgd3JvbmcgYXJjaGl0ZWN0dXJl IHRvIGJlIGZhdGFsLgouUHAKLkl0IEZsIGJpbmRfYXRfbG9hZApDYXVzZXMgdGhlIG91dHB1 dCBmaWxlIHRvIGJlIG1hcmtlZCBzdWNoIHRoYXQgdGhlIGR5bmFtaWMgbGlua2VyIHdpbGwg YmluZCBhbGwgdW5kZWZpbmVkIHJlZmVyZW5jZXMgd2hlbiB0aGUgZmlsZSBpcyBsb2FkZWQg b3IgbGF1bmNoZWQuCi5QcAouSXQgRmwgYnVuZGxlClByb2R1Y2UgYSBNYWNoLW8gYnVuZGxl IGZvcm1hdCBmaWxlLgpTZWUgbWFuIGxkKDEpIGZvciBtb3JlIGluZm9ybWF0aW9uLgouUHAK Lkl0IEZsIGJ1bmRsZV9sb2FkZXIgQXIgZXhlY3V0YWJsZQpUaGlzIG9wdGlvbiBzcGVjaWZp ZXMgdGhlCi5FbSBleGVjdXRhYmxlCnRoYXQgd2lsbCBiZSBsb2FkaW5nIHRoZSBidWlsZCBv dXRwdXQgZmlsZSBiZWluZyBsaW5rZWQuClNlZSBtYW4gbGQoMSkgZm9yIG1vcmUgaW5mb3Jt YXRpb24uCi5QcAouSXQgRmwgZHluYW1pY2xpYgpXaGVuIHBhc3NlZCB0aGlzIG9wdGlvbiwg R0NDIHdpbGwgcHJvZHVjZSBhIGR5bmFtaWMgbGlicmFyeSBpbnN0ZWFkIG9mIGFuIGV4ZWN1 dGFibGUgd2hlbiBsaW5raW5nLCB1c2luZyB0aGUgRGFyd2luCi5QYSBsaWJ0b29sCmNvbW1h bmQuCi5QcAouSXQgRmwgZm9yY2VfY3B1c3VidHlwZV9BTEwKVGhpcyBjYXVzZXMgR0NDJ3Mg b3V0cHV0IGZpbGUgdG8gaGF2ZSB0aGUKLkVtIEFMTApzdWJ0eXBlLCBpbnN0ZWFkIG9mIG9u ZSBjb250cm9sbGVkIGJ5IHRoZQouRmwgbWNwdQpvcgouRmwgbWFyY2gKb3B0aW9uLgouUHAK Lkl0IEZsIGFsbG93YWJsZV9jbGllbnQgQXIgY2xpZW50X25hbWUKLkl0IEZsIGNsaWVudF9u YW1lCi5JdCBGbCBjb21wYXRpYmlsaXR5X3ZlcnNpb24KLkl0IEZsIGN1cnJlbnRfdmVyc2lv bgouSXQgRmwgZGVhZF9zdHJpcAouSXQgRmwgZGVwZW5kZW5jeS1maWxlCi5JdCBGbCBkeWxp Yl9maWxlCi5JdCBGbCBkeWxpbmtlcl9pbnN0YWxsX25hbWUKLkl0IEZsIGR5bmFtaWMKLkl0 IEZsIGV4cG9ydGVkX3N5bWJvbHNfbGlzdAouSXQgRmwgZmlsZWxpc3QKLkl0IEZsIGZsYXRf bmFtZXNwYWNlCi5JdCBGbCBmb3JjZV9mbGF0X25hbWVzcGFjZQouSXQgRmwgaGVhZGVycGFk X21heF9pbnN0YWxsX25hbWVzCi5JdCBGbCBpbWFnZV9iYXNlCi5JdCBGbCBpbml0Ci5JdCBG bCBpbnN0YWxsX25hbWUKLkl0IEZsIGtlZXBfcHJpdmF0ZV9leHRlcm5zCi5JdCBGbCBtdWx0 aV9tb2R1bGUKLkl0IEZsIG11bHRpcGx5X2RlZmluZWQKLkl0IEZsIG11bHRpcGx5X2RlZmlu ZWRfdW51c2VkCi5JdCBGbCBub2FsbF9sb2FkCi5JdCBGbCBub19kZWFkX3N0cmlwX2luaXRz X2FuZF90ZXJtcwouSXQgRmwgbm9maXhwcmViaW5kaW5nCi5JdCBGbCBub211bHRpZGVmcwou SXQgRmwgbm9wcmViaW5kCi5JdCBGbCBub3NlZ2xpbmtlZGl0Ci5JdCBGbCBwYWdlemVyb19z aXplCi5JdCBGbCBwcmViaW5kCi5JdCBGbCBwcmViaW5kX2FsbF90d29sZXZlbF9tb2R1bGVz Ci5JdCBGbCBwcml2YXRlX2J1bmRsZQouSXQgRmwgcmVhZF9vbmx5X3JlbG9jcwouSXQgRmwg c2VjdGFsaWduCi5JdCBGbCBzZWN0b2JqZWN0c3ltYm9scwouSXQgRmwgd2h5bG9hZAouSXQg Rmwgc2VnMWFkZHIKLkl0IEZsIHNlY3RjcmVhdGUKLkl0IEZsIHNlY3RvYmplY3RzeW1ib2xz Ci5JdCBGbCBzZWN0b3JkZXIKLkl0IEZsIHNlZ2FkZHIKLkl0IEZsIHNlZ3NfcmVhZF9vbmx5 X2FkZHIKLkl0IEZsIHNlZ3NfcmVhZF93cml0ZV9hZGRyCi5JdCBGbCBzZWdfYWRkcl90YWJs ZQouSXQgRmwgc2VnX2FkZHJfdGFibGVfZmlsZW5hbWUKLkl0IEZsIHNlZ2xpbmtlZGl0Ci5J dCBGbCBzZWdwcm90Ci5JdCBGbCBzZWdzX3JlYWRfb25seV9hZGRyCi5JdCBGbCBzZWdzX3Jl YWRfd3JpdGVfYWRkcgouSXQgRmwgc2luZ2xlX21vZHVsZQouSXQgRmwgc3RhdGljCi5JdCBG bCBzdWJfbGlicmFyeQouSXQgRmwgc3ViX3VtYnJlbGxhCi5JdCBGbCB0d29sZXZlbF9uYW1l c3BhY2UKLkl0IEZsIHVtYnJlbGxhCi5JdCBGbCB1bmRlZmluZWQKLkl0IEZsIHVuZXhwb3J0 ZWRfc3ltYm9sc19saXN0Ci5JdCBGbCB3ZWFrX3JlZmVyZW5jZV9taXNtYXRjaGVzCi5JdCBG bCB3aGF0c2xvYWRlZApUaGVzZSBvcHRpb25zIGFyZSBwYXNzZWQgdG8gdGhlIERhcndpbiBs aW5rZXIuClRoZSBEYXJ3aW4gbGlua2VyIG1hbiBwYWdlIGRlc2NyaWJlcyB0aGVtIGluIGRl dGFpbC4KLlBwCi5FbAouSXQgU3kgREVDIEFscGhhIE9wdGlvbnMKVGhlc2UKLkZsIG0Kb3B0 aW9ucyBhcmUgZGVmaW5lZCBmb3IgdGhlIERFQyBBbHBoYSBpbXBsZW1lbnRhdGlvbnM6Ci5Q cAouQmwgLXRhZyAtd2lkdGggeHgKLkl0IEZsIG1uby1zb2Z0LWZsb2F0Ci5JdCBGbCBtc29m dC1mbG9hdApVc2UgKGRvIG5vdCB1c2UpIHRoZSBoYXJkd2FyZSBmbG9hdGluZy1wb2ludCBp bnN0cnVjdGlvbnMgZm9yIGZsb2F0aW5nLXBvaW50IG9wZXJhdGlvbnMuCldoZW4KLkZsIG1z b2Z0LWZsb2F0CmlzIHNwZWNpZmllZCwgZnVuY3Rpb25zIGluCi5QYSBsaWJnY2MuYQp3aWxs IGJlIHVzZWQgdG8gcGVyZm9ybSBmbG9hdGluZy1wb2ludCBvcGVyYXRpb25zLgpVbmxlc3Mg dGhleSBhcmUgcmVwbGFjZWQgYnkgcm91dGluZXMgdGhhdCBlbXVsYXRlIHRoZSBmbG9hdGlu Zy1wb2ludCBvcGVyYXRpb25zLCBvciBjb21waWxlZCBpbiBzdWNoIGEgd2F5IGFzIHRvIGNh bGwgc3VjaCBlbXVsYXRpb25zIHJvdXRpbmVzLCB0aGVzZSByb3V0aW5lcyB3aWxsIGlzc3Vl IGZsb2F0aW5nLXBvaW50IG9wZXJhdGlvbnMuCklmIHlvdSBhcmUgY29tcGlsaW5nIGZvciBh biBBbHBoYSB3aXRob3V0IGZsb2F0aW5nLXBvaW50IG9wZXJhdGlvbnMsIHlvdSBtdXN0IGVu c3VyZSB0aGF0IHRoZSBsaWJyYXJ5IGlzIGJ1aWx0IHNvIGFzIG5vdCB0byBjYWxsIHRoZW0u Ci5QcApOb3RlIHRoYXQgQWxwaGEgaW1wbGVtZW50YXRpb25zIHdpdGhvdXQgZmxvYXRpbmct cG9pbnQgb3BlcmF0aW9ucyBhcmUgcmVxdWlyZWQgdG8gaGF2ZSBmbG9hdGluZy1wb2ludCBy ZWdpc3RlcnMuCi5QcAouSXQgRmwgbWZwLXJlZwouSXQgRmwgbW5vLWZwLXJlZ3MKR2VuZXJh dGUgY29kZSB0aGF0IHVzZXMgKGRvZXMgbm90IHVzZSkgdGhlIGZsb2F0aW5nLXBvaW50IHJl Z2lzdGVyIHNldC4KLkZsIG1uby1mcC1yZWdzCmltcGxpZXMKLkZsIG1zb2Z0LWZsb2F0IC4K SWYgdGhlIGZsb2F0aW5nLXBvaW50IHJlZ2lzdGVyIHNldCBpcyBub3QgdXNlZCwgZmxvYXRp bmcgcG9pbnQgb3BlcmFuZHMgYXJlIHBhc3NlZCBpbiBpbnRlZ2VyIHJlZ2lzdGVycyBhcyBp ZiB0aGV5IHdlcmUgaW50ZWdlcnMgYW5kIGZsb2F0aW5nLXBvaW50IHJlc3VsdHMgYXJlIHBh c3NlZCBpbgouVmEgJDAKaW5zdGVhZCBvZgouVmEgJGYwIC4KVGhpcyBpcyBhIG5vbi1zdGFu ZGFyZCBjYWxsaW5nIHNlcXVlbmNlLCBzbyBhbnkgZnVuY3Rpb24gd2l0aCBhIGZsb2F0aW5n LXBvaW50IGFyZ3VtZW50IG9yIHJldHVybiB2YWx1ZSBjYWxsZWQgYnkgY29kZSBjb21waWxl ZCB3aXRoCi5GbCBtbm8tZnAtcmVncwptdXN0IGFsc28gYmUgY29tcGlsZWQgd2l0aCB0aGF0 IG9wdGlvbi4KLlBwCkEgdHlwaWNhbCB1c2Ugb2YgdGhpcyBvcHRpb24gaXMgYnVpbGRpbmcg YSBrZXJuZWwgdGhhdCBkb2VzIG5vdCB1c2UsIGFuZCBoZW5jZSBuZWVkIG5vdCBzYXZlIGFu ZCByZXN0b3JlLCBhbnkgZmxvYXRpbmctcG9pbnQgcmVnaXN0ZXJzLgouUHAKLkl0IEZsIG1p ZWVlClRoZSBBbHBoYSBhcmNoaXRlY3R1cmUgaW1wbGVtZW50cyBmbG9hdGluZy1wb2ludCBo YXJkd2FyZSBvcHRpbWl6ZWQgZm9yIG1heGltdW0gcGVyZm9ybWFuY2UuCkl0IGlzIG1vc3Rs eSBjb21wbGlhbnQgd2l0aCB0aGUgSUVFRSBmbG9hdGluZyBwb2ludCBzdGFuZGFyZC4KSG93 ZXZlciwgZm9yIGZ1bGwgY29tcGxpYW5jZSwgc29mdHdhcmUgYXNzaXN0YW5jZSBpcyByZXF1 aXJlZC4KVGhpcyBvcHRpb24gZ2VuZXJhdGVzIGNvZGUgZnVsbHkgSUVFRSBjb21wbGlhbnQg Y29kZQouRW0gZXhjZXB0CnRoYXQgdGhlCi5FbSBpbmV4YWN0LWZsYWcKaXMgbm90IG1haW50 YWluZWQgKHNlZSBiZWxvdykuCklmIHRoaXMgb3B0aW9uIGlzIHR1cm5lZCBvbiwgdGhlIHBy ZXByb2Nlc3NvciBtYWNybwouVmEgX0lFRUVfRlAKaXMgZGVmaW5lZCBkdXJpbmcgY29tcGls YXRpb24uClRoZSByZXN1bHRpbmcgY29kZSBpcyBsZXNzIGVmZmljaWVudCBidXQgaXMgYWJs ZSB0byBjb3JyZWN0bHkgc3VwcG9ydCBkZW5vcm1hbGl6ZWQgbnVtYmVycyBhbmQgZXhjZXB0 aW9uYWwgSUVFRSB2YWx1ZXMgc3VjaCBhcyBub3QtYS1udW1iZXIgYW5kIHBsdXMvbWludXMg aW5maW5pdHkuCk90aGVyIEFscGhhIGNvbXBpbGVycyBjYWxsIHRoaXMgb3B0aW9uCi5GbCBp ZWVlX3dpdGhfbm9faW5leGFjdCAuCi5QcAouSXQgRmwgbWllZWUtd2l0aC1pbmV4YWN0ClRo aXMgaXMgbGlrZQouRmwgbWllZWUKZXhjZXB0IHRoZSBnZW5lcmF0ZWQgY29kZSBhbHNvIG1h aW50YWlucyB0aGUgSUVFRQouRW0gaW5leGFjdC1mbGFnIC4KVHVybmluZyBvbiB0aGlzIG9w dGlvbiBjYXVzZXMgdGhlIGdlbmVyYXRlZCBjb2RlIHRvIGltcGxlbWVudCBmdWxseS1jb21w bGlhbnQgSUVFRSBtYXRoLgpJbiBhZGRpdGlvbiB0bwouVmEgX0lFRUVfRlAgLAouVmEgX0lF RUVfRlBfRVhBQ1QKaXMgZGVmaW5lZCBhcyBhIHByZXByb2Nlc3NvciBtYWNyby4KT24gc29t ZSBBbHBoYSBpbXBsZW1lbnRhdGlvbnMgdGhlIHJlc3VsdGluZyBjb2RlIG1heSBleGVjdXRl IHNpZ25pZmljYW50bHkgc2xvd2VyIHRoYW4gdGhlIGNvZGUgZ2VuZXJhdGVkIGJ5IGRlZmF1 bHQuClNpbmNlIHRoZXJlIGlzIHZlcnkgbGl0dGxlIGNvZGUgdGhhdCBkZXBlbmRzIG9uIHRo ZQouRW0gaW5leGFjdC1mbGFnICwKeW91IHNob3VsZCBub3JtYWxseSBub3Qgc3BlY2lmeSB0 aGlzIG9wdGlvbi4KT3RoZXIgQWxwaGEgY29tcGlsZXJzIGNhbGwgdGhpcyBvcHRpb24KLkZs IGllZWVfd2l0aF9pbmV4YWN0IC4KLlBwCi5JdCBGbCBtZnAtdHJhcC1tb2RlPSBOcyBBciB0 cmFwLW1vZGUKVGhpcyBvcHRpb24gY29udHJvbHMgd2hhdCBmbG9hdGluZy1wb2ludCByZWxh dGVkIHRyYXBzIGFyZSBlbmFibGVkLgpPdGhlciBBbHBoYSBjb21waWxlcnMgY2FsbCB0aGlz IG9wdGlvbgouRmwgZnB0bSBBciB0cmFwLW1vZGUgLgpUaGUgdHJhcCBtb2RlIGNhbiBiZSBz ZXQgdG8gb25lIG9mIGZvdXIgdmFsdWVzOgouUHAKLkJsIC10YWcgLXdpZHRoIHh4Ci5JdCBT eSBuIE5zClRoaXMgaXMgdGhlIGRlZmF1bHQgKG5vcm1hbCkgc2V0dGluZy4KVGhlIG9ubHkg dHJhcHMgdGhhdCBhcmUgZW5hYmxlZCBhcmUgdGhlIG9uZXMgdGhhdCBjYW5ub3QgYmUgZGlz YWJsZWQgaW4gc29mdHdhcmUgKGUuZy4sIGRpdmlzaW9uIGJ5IHplcm8gdHJhcCkuCi5QcAou SXQgU3kgdSBOcwpJbiBhZGRpdGlvbiB0byB0aGUgdHJhcHMgZW5hYmxlZCBieQouU3kgbiAs CnVuZGVyZmxvdyB0cmFwcyBhcmUgZW5hYmxlZCBhcyB3ZWxsLgouUHAKLkl0IFN5IHN1IE5z Ckxpa2UKLlN5IHN1ICwKYnV0IHRoZSBpbnN0cnVjdGlvbnMgYXJlIG1hcmtlZCB0byBiZSBz YWZlIGZvciBzb2Z0d2FyZSBjb21wbGV0aW9uIChzZWUgQWxwaGEgYXJjaGl0ZWN0dXJlIG1h bnVhbCBmb3IgZGV0YWlscykuCi5QcAouSXQgU3kgc3VpIE5zCkxpa2UKLlN5IHN1ICwKYnV0 IGluZXhhY3QgdHJhcHMgYXJlIGVuYWJsZWQgYXMgd2VsbC4KLlBwCi5FbAouSXQgRmwgbWZw LXJvdW5kaW5nLW1vZGU9IE5zIEFyIHJvdW5kaW5nLW1vZGUKU2VsZWN0cyB0aGUgSUVFRSBy b3VuZGluZyBtb2RlLgpPdGhlciBBbHBoYSBjb21waWxlcnMgY2FsbCB0aGlzIG9wdGlvbgou RmwgZnBybSBBciByb3VuZGluZy1tb2RlIC4KVGhlCi5FbSByb3VuZGluZy1tb2RlCmNhbiBi ZSBvbmUgb2Y6Ci5QcAouQmwgLXRhZyAtd2lkdGggeHgKLkl0IFN5IG4gTnMKTm9ybWFsIElF RUUgcm91bmRpbmcgbW9kZS4KRmxvYXRpbmcgcG9pbnQgbnVtYmVycyBhcmUgcm91bmRlZCB0 b3dhcmRzIHRoZSBuZWFyZXN0IG1hY2hpbmUgbnVtYmVyIG9yIHRvd2FyZHMgdGhlIGV2ZW4g bWFjaGluZSBudW1iZXIgaW4gY2FzZSBvZiBhIHRpZS4KLlBwCi5JdCBTeSBtIE5zClJvdW5k IHRvd2FyZHMgbWludXMgaW5maW5pdHkuCi5QcAouSXQgU3kgYyBOcwpDaG9wcGVkIHJvdW5k aW5nIG1vZGUuCkZsb2F0aW5nIHBvaW50IG51bWJlcnMgYXJlIHJvdW5kZWQgdG93YXJkcyB6 ZXJvLgouUHAKLkl0IFN5IGQgTnMKRHluYW1pYyByb3VuZGluZyBtb2RlLgpBIGZpZWxkIGlu IHRoZSBmbG9hdGluZyBwb2ludCBjb250cm9sIHJlZ2lzdGVyCi5FbSAoIGZwY3IgLApzZWUg QWxwaGEgYXJjaGl0ZWN0dXJlIHJlZmVyZW5jZSBtYW51YWwpIGNvbnRyb2xzIHRoZSByb3Vu ZGluZyBtb2RlIGluIGVmZmVjdC4KVGhlIEMgbGlicmFyeSBpbml0aWFsaXplcyB0aGlzIHJl Z2lzdGVyIGZvciByb3VuZGluZyB0b3dhcmRzIHBsdXMgaW5maW5pdHkuClRodXMsIHVubGVz cyB5b3VyIHByb2dyYW0gbW9kaWZpZXMgdGhlCi5FbSBmcGNyICwKLlN5IGQKY29ycmVzcG9u ZHMgdG8gcm91bmQgdG93YXJkcyBwbHVzIGluZmluaXR5LgouUHAKLkVsCi5JdCBGbCBtdHJh cC1wcmVjaXNpb249IE5zIEFyIHRyYXAtcHJlY2lzaW9uCkluIHRoZSBBbHBoYSBhcmNoaXRl Y3R1cmUsIGZsb2F0aW5nIHBvaW50IHRyYXBzIGFyZSBpbXByZWNpc2UuClRoaXMgbWVhbnMg d2l0aG91dCBzb2Z0d2FyZSBhc3Npc3RhbmNlIGl0IGlzIGltcG9zc2libGUgdG8gcmVjb3Zl ciBmcm9tIGEgZmxvYXRpbmcgdHJhcCBhbmQgcHJvZ3JhbSBleGVjdXRpb24gbm9ybWFsbHkg bmVlZHMgdG8gYmUgdGVybWluYXRlZC4KR0NDIGNhbiBnZW5lcmF0ZSBjb2RlIHRoYXQgY2Fu IGFzc2lzdCBvcGVyYXRpbmcgc3lzdGVtIHRyYXAgaGFuZGxlcnMgaW4gZGV0ZXJtaW5pbmcg dGhlIGV4YWN0IGxvY2F0aW9uIHRoYXQgY2F1c2VkIGEgZmxvYXRpbmcgcG9pbnQgdHJhcC4K RGVwZW5kaW5nIG9uIHRoZSByZXF1aXJlbWVudHMgb2YgYW4gYXBwbGljYXRpb24sIGRpZmZl cmVudCBsZXZlbHMgb2YgcHJlY2lzaW9ucyBjYW4gYmUgc2VsZWN0ZWQ6Ci5QcAouQmwgLXRh ZyAtd2lkdGggeHgKLkl0IFN5IHAgTnMKUHJvZ3JhbSBwcmVjaXNpb24uClRoaXMgb3B0aW9u IGlzIHRoZSBkZWZhdWx0IGFuZCBtZWFucyBhIHRyYXAgaGFuZGxlciBjYW4gb25seSBpZGVu dGlmeSB3aGljaCBwcm9ncmFtIGNhdXNlZCBhIGZsb2F0aW5nIHBvaW50IGV4Y2VwdGlvbi4K LlBwCi5JdCBTeSBmIE5zCkZ1bmN0aW9uIHByZWNpc2lvbi4KVGhlIHRyYXAgaGFuZGxlciBj YW4gZGV0ZXJtaW5lIHRoZSBmdW5jdGlvbiB0aGF0IGNhdXNlZCBhIGZsb2F0aW5nIHBvaW50 IGV4Y2VwdGlvbi4KLlBwCi5JdCBTeSBpIE5zCkluc3RydWN0aW9uIHByZWNpc2lvbi4KVGhl IHRyYXAgaGFuZGxlciBjYW4gZGV0ZXJtaW5lIHRoZSBleGFjdCBpbnN0cnVjdGlvbiB0aGF0 IGNhdXNlZCBhIGZsb2F0aW5nIHBvaW50IGV4Y2VwdGlvbi4KLlBwCi5FbApPdGhlciBBbHBo YSBjb21waWxlcnMgcHJvdmlkZSB0aGUgZXF1aXZhbGVudCBvcHRpb25zIGNhbGxlZAouRmwg c2NvcGVfc2FmZQphbmQKLkZsIHJlc3VtcHRpb25fc2FmZSAuCi5QcAouSXQgRmwgbWllZWUt Y29uZm9ybWFudApUaGlzIG9wdGlvbiBtYXJrcyB0aGUgZ2VuZXJhdGVkIGNvZGUgYXMgSUVF RSBjb25mb3JtYW50LgpZb3UgbXVzdCBub3QgdXNlIHRoaXMgb3B0aW9uIHVubGVzcyB5b3Ug YWxzbyBzcGVjaWZ5Ci5GbCBtdHJhcC1wcmVjaXNpb249aQphbmQgZWl0aGVyCi5GbCBtZnAt dHJhcC1tb2RlPXN1Cm9yCi5GbCBtZnAtdHJhcC1tb2RlPXN1aSAuCkl0cyBvbmx5IGVmZmVj dCBpcyB0byBlbWl0IHRoZSBsaW5lCi5TeSAuZWZsYWcgNDgKaW4gdGhlIGZ1bmN0aW9uIHBy b2xvZ3VlIG9mIHRoZSBnZW5lcmF0ZWQgYXNzZW1ibHkgZmlsZS4KVW5kZXIgREVDIFVuaXgs IHRoaXMgaGFzIHRoZSBlZmZlY3QgdGhhdCBJRUVFLWNvbmZvcm1hbnQgbWF0aCBsaWJyYXJ5 IHJvdXRpbmVzIHdpbGwgYmUgbGlua2VkIGluLgouUHAKLkl0IEZsIG1idWlsZC1jb25zdGFu dHMKTm9ybWFsbHkgR0NDIGV4YW1pbmVzIGEgMzItIG9yIDY0LWJpdCBpbnRlZ2VyIGNvbnN0 YW50IHRvIHNlZSBpZiBpdCBjYW4gY29uc3RydWN0IGl0IGZyb20gc21hbGxlciBjb25zdGFu dHMgaW4gdHdvIG9yIHRocmVlIGluc3RydWN0aW9ucy4KSWYgaXQgY2Fubm90LCBpdCB3aWxs IG91dHB1dCB0aGUgY29uc3RhbnQgYXMgYSBsaXRlcmFsIGFuZCBnZW5lcmF0ZSBjb2RlIHRv IGxvYWQgaXQgZnJvbSB0aGUgZGF0YSBzZWdtZW50IGF0IHJ1bnRpbWUuCi5QcApVc2UgdGhp cyBvcHRpb24gdG8gcmVxdWlyZSBHQ0MgdG8gY29uc3RydWN0Ci5FbSBhbGwKaW50ZWdlciBj b25zdGFudHMgdXNpbmcgY29kZSwgZXZlbiBpZiBpdCB0YWtlcyBtb3JlIGluc3RydWN0aW9u cyAodGhlIG1heGltdW0gaXMgc2l4KS4KLlBwCllvdSB3b3VsZCB0eXBpY2FsbHkgdXNlIHRo aXMgb3B0aW9uIHRvIGJ1aWxkIGEgc2hhcmVkIGxpYnJhcnkgZHluYW1pYyBsb2FkZXIuCkl0 c2VsZiBhIHNoYXJlZCBsaWJyYXJ5LCBpdCBtdXN0IHJlbG9jYXRlIGl0c2VsZiBpbiBtZW1v cnkgYmVmb3JlIGl0IGNhbiBmaW5kIHRoZSB2YXJpYWJsZXMgYW5kIGNvbnN0YW50cyBpbiBp dHMgb3duIGRhdGEgc2VnbWVudC4KLlBwCi5JdCBGbCBtYWxwaGEtYXMKLkl0IEZsIG1nYXMK U2VsZWN0IHdoZXRoZXIgdG8gZ2VuZXJhdGUgY29kZSB0byBiZSBhc3NlbWJsZWQgYnkgdGhl IHZlbmRvci1zdXBwbGllZCBhc3NlbWJsZXIKLkZsICggbWFscGhhLWFzICkKb3IgYnkgdGhl IEdOVSBhc3NlbWJsZXIKLkZsIG1nYXMgLgouUHAKLkl0IEZsIG1id3gKLkl0IEZsIG1uby1i d3gKLkl0IEZsIG1jaXgKLkl0IEZsIG1uby1jaXgKLkl0IEZsIG1maXgKLkl0IEZsIG1uby1m aXgKLkl0IEZsIG1tYXgKLkl0IEZsIG1uby1tYXgKSW5kaWNhdGUgd2hldGhlciBHQ0Mgc2hv dWxkIGdlbmVyYXRlIGNvZGUgdG8gdXNlIHRoZSBvcHRpb25hbCBCV1gsIENJWCwgRklYIGFu ZCBNQVggaW5zdHJ1Y3Rpb24gc2V0cy4KVGhlIGRlZmF1bHQgaXMgdG8gdXNlIHRoZSBpbnN0 cnVjdGlvbiBzZXRzIHN1cHBvcnRlZCBieSB0aGUgQ1BVIHR5cGUgc3BlY2lmaWVkIHZpYQou RmwgbWNwdT0Kb3B0aW9uIG9yIHRoYXQgb2YgdGhlIENQVSBvbiB3aGljaCBHQ0Mgd2FzIGJ1 aWx0IGlmIG5vbmUgd2FzIHNwZWNpZmllZC4KLlBwCi5JdCBGbCBtZmxvYXQtdmF4Ci5JdCBG bCBtZmxvYXQtaWVlZQpHZW5lcmF0ZSBjb2RlIHRoYXQgdXNlcyAoZG9lcyBub3QgdXNlKSBW QVggRiBhbmQgRyBmbG9hdGluZyBwb2ludCBhcml0aG1ldGljIGluc3RlYWQgb2YgSUVFRSBz aW5nbGUgYW5kIGRvdWJsZSBwcmVjaXNpb24uCi5QcAouSXQgRmwgbWV4cGxpY2l0LXJlbG9j cwouSXQgRmwgbW5vLWV4cGxpY2l0LXJlbG9jcwpPbGRlciBBbHBoYSBhc3NlbWJsZXJzIHBy b3ZpZGVkIG5vIHdheSB0byBnZW5lcmF0ZSBzeW1ib2wgcmVsb2NhdGlvbnMgZXhjZXB0IHZp YSBhc3NlbWJsZXIgbWFjcm9zLgpVc2Ugb2YgdGhlc2UgbWFjcm9zIGRvZXMgbm90IGFsbG93 IG9wdGltYWwgaW5zdHJ1Y3Rpb24gc2NoZWR1bGluZy4KR05VIGJpbnV0aWxzIGFzIG9mIHZl cnNpb24gMi4xMiBzdXBwb3J0cyBhIG5ldyBzeW50YXggdGhhdCBhbGxvd3MgdGhlIGNvbXBp bGVyIHRvIGV4cGxpY2l0bHkgbWFyayB3aGljaCByZWxvY2F0aW9ucyBzaG91bGQgYXBwbHkg dG8gd2hpY2ggaW5zdHJ1Y3Rpb25zLgpUaGlzIG9wdGlvbiBpcyBtb3N0bHkgdXNlZnVsIGZv ciBkZWJ1Z2dpbmcsIGFzIEdDQyBkZXRlY3RzIHRoZSBjYXBhYmlsaXRpZXMgb2YgdGhlIGFz c2VtYmxlciB3aGVuIGl0IGlzIGJ1aWx0IGFuZCBzZXRzIHRoZSBkZWZhdWx0IGFjY29yZGlu Z2x5LgouUHAKLkl0IEZsIG1zbWFsbC1kYXRhCi5JdCBGbCBtbGFyZ2UtZGF0YQpXaGVuCi5G bCBtZXhwbGljaXQtcmVsb2NzCmlzIGluIGVmZmVjdCwgc3RhdGljIGRhdGEgaXMgYWNjZXNz ZWQgdmlhCi5FbSBncC1yZWxhdGl2ZQpyZWxvY2F0aW9ucy4KV2hlbgouRmwgbXNtYWxsLWRh dGEKaXMgdXNlZCwgb2JqZWN0cyA4IGJ5dGVzIGxvbmcgb3Igc21hbGxlciBhcmUgcGxhY2Vk IGluIGEKLkVtIHNtYWxsIGRhdGEgYXJlYQoodGhlCi5WYSAuc2RhdGEKYW5kCi5WYSAuc2Jz cwpzZWN0aW9ucykgYW5kIGFyZSBhY2Nlc3NlZCB2aWEgMTYtYml0IHJlbG9jYXRpb25zIG9m ZiBvZiB0aGUKLlZhICRncApyZWdpc3Rlci4KVGhpcyBsaW1pdHMgdGhlIHNpemUgb2YgdGhl IHNtYWxsIGRhdGEgYXJlYSB0byA2NEtCLCBidXQgYWxsb3dzIHRoZSB2YXJpYWJsZXMgdG8g YmUgZGlyZWN0bHkgYWNjZXNzZWQgdmlhIGEgc2luZ2xlIGluc3RydWN0aW9uLgouUHAKVGhl IGRlZmF1bHQgaXMKLkZsIG1sYXJnZS1kYXRhIC4KV2l0aCB0aGlzIG9wdGlvbiB0aGUgZGF0 YSBhcmVhIGlzIGxpbWl0ZWQgdG8ganVzdCBiZWxvdyAyR0IuClByb2dyYW1zIHRoYXQgcmVx dWlyZSBtb3JlIHRoYW4gMkdCIG9mIGRhdGEgbXVzdCB1c2UKLlZhIG1hbGxvYwpvcgouVmEg bW1hcAp0byBhbGxvY2F0ZSB0aGUgZGF0YSBpbiB0aGUgaGVhcCBpbnN0ZWFkIG9mIGluIHRo ZSBwcm9ncmFtJ3MgZGF0YSBzZWdtZW50LgouUHAKV2hlbiBnZW5lcmF0aW5nIGNvZGUgZm9y IHNoYXJlZCBsaWJyYXJpZXMsCi5GbCBmcGljCmltcGxpZXMKLkZsIG1zbWFsbC1kYXRhCmFu ZAouRmwgZlBJQwppbXBsaWVzCi5GbCBtbGFyZ2UtZGF0YSAuCi5QcAouSXQgRmwgbXNtYWxs LXRleHQKLkl0IEZsIG1sYXJnZS10ZXh0CldoZW4KLkZsIG1zbWFsbC10ZXh0CmlzIHVzZWQs IHRoZSBjb21waWxlciBhc3N1bWVzIHRoYXQgdGhlIGNvZGUgb2YgdGhlIGVudGlyZSBwcm9n cmFtIChvciBzaGFyZWQgbGlicmFyeSkgZml0cyBpbiA0TUIsIGFuZCBpcyB0aHVzIHJlYWNo YWJsZSB3aXRoIGEgYnJhbmNoIGluc3RydWN0aW9uLgpXaGVuCi5GbCBtc21hbGwtZGF0YQpp cyB1c2VkLCB0aGUgY29tcGlsZXIgY2FuIGFzc3VtZSB0aGF0IGFsbCBsb2NhbCBzeW1ib2xz IHNoYXJlIHRoZSBzYW1lCi5WYSAkZ3AKdmFsdWUsIGFuZCB0aHVzIHJlZHVjZSB0aGUgbnVt YmVyIG9mIGluc3RydWN0aW9ucyByZXF1aXJlZCBmb3IgYSBmdW5jdGlvbiBjYWxsIGZyb20g NCB0byAxLgouUHAKVGhlIGRlZmF1bHQgaXMKLkZsIG1sYXJnZS10ZXh0IC4KLlBwCi5JdCBG bCBtY3B1PSBOcyBBciBjcHVfdHlwZQpTZXQgdGhlIGluc3RydWN0aW9uIHNldCBhbmQgaW5z dHJ1Y3Rpb24gc2NoZWR1bGluZyBwYXJhbWV0ZXJzIGZvciBtYWNoaW5lIHR5cGUKLkVtIGNw dV90eXBlIC4KWW91IGNhbiBzcGVjaWZ5IGVpdGhlciB0aGUKLlN5IEVWCnN0eWxlIG5hbWUg b3IgdGhlIGNvcnJlc3BvbmRpbmcgY2hpcCBudW1iZXIuCkdDQyBzdXBwb3J0cyBzY2hlZHVs aW5nIHBhcmFtZXRlcnMgZm9yIHRoZSBFVjQsIEVWNSBhbmQgRVY2IGZhbWlseSBvZiBwcm9j ZXNzb3JzIGFuZCB3aWxsIGNob29zZSB0aGUgZGVmYXVsdCB2YWx1ZXMgZm9yIHRoZSBpbnN0 cnVjdGlvbiBzZXQgZnJvbSB0aGUgcHJvY2Vzc29yIHlvdSBzcGVjaWZ5LgpJZiB5b3UgZG8g bm90IHNwZWNpZnkgYSBwcm9jZXNzb3IgdHlwZSwgR0NDIHdpbGwgZGVmYXVsdCB0byB0aGUg cHJvY2Vzc29yIG9uIHdoaWNoIHRoZSBjb21waWxlciB3YXMgYnVpbHQuCi5QcApTdXBwb3J0 ZWQgdmFsdWVzIGZvcgouRW0gY3B1X3R5cGUKYXJlCi5QcAouQmwgLXRhZyAtd2lkdGggeHgK Lkl0IFN5IGV2NCBOcwouSXQgU3kgZXY0NSBOcwouSXQgU3kgMjEwNjQgTnMKU2NoZWR1bGVz IGFzIGFuIEVWNCBhbmQgaGFzIG5vIGluc3RydWN0aW9uIHNldCBleHRlbnNpb25zLgouUHAK Lkl0IFN5IGV2NSBOcwouSXQgU3kgMjExNjQgTnMKU2NoZWR1bGVzIGFzIGFuIEVWNSBhbmQg aGFzIG5vIGluc3RydWN0aW9uIHNldCBleHRlbnNpb25zLgouUHAKLkl0IFN5IGV2NTYgTnMK Lkl0IFN5IDIxMTY0YSBOcwpTY2hlZHVsZXMgYXMgYW4gRVY1IGFuZCBzdXBwb3J0cyB0aGUg QldYIGV4dGVuc2lvbi4KLlBwCi5JdCBTeSBwY2E1NiBOcwouSXQgU3kgMjExNjRwYyBOcwou SXQgU3kgMjExNjRQQyBOcwpTY2hlZHVsZXMgYXMgYW4gRVY1IGFuZCBzdXBwb3J0cyB0aGUg QldYIGFuZCBNQVggZXh0ZW5zaW9ucy4KLlBwCi5JdCBTeSBldjYgTnMKLkl0IFN5IDIxMjY0 IE5zClNjaGVkdWxlcyBhcyBhbiBFVjYgYW5kIHN1cHBvcnRzIHRoZSBCV1gsIEZJWCwgYW5k IE1BWCBleHRlbnNpb25zLgouUHAKLkl0IFN5IGV2NjcgTnMKLkl0IFN5IDIxMjY0YSBOcwpT Y2hlZHVsZXMgYXMgYW4gRVY2IGFuZCBzdXBwb3J0cyB0aGUgQldYLCBDSVgsIEZJWCwgYW5k IE1BWCBleHRlbnNpb25zLgouUHAKLkVsCi5JdCBGbCBtdHVuZT0gTnMgQXIgY3B1X3R5cGUK U2V0IG9ubHkgdGhlIGluc3RydWN0aW9uIHNjaGVkdWxpbmcgcGFyYW1ldGVycyBmb3IgbWFj aGluZSB0eXBlCi5FbSBjcHVfdHlwZSAuClRoZSBpbnN0cnVjdGlvbiBzZXQgaXMgbm90IGNo YW5nZWQuCi5QcAouSXQgRmwgbW1lbW9yeS1sYXRlbmN5PSBOcyBBciB0aW1lClNldHMgdGhl IGxhdGVuY3kgdGhlIHNjaGVkdWxlciBzaG91bGQgYXNzdW1lIGZvciB0eXBpY2FsIG1lbW9y eSByZWZlcmVuY2VzIGFzIHNlZW4gYnkgdGhlIGFwcGxpY2F0aW9uLgpUaGlzIG51bWJlciBp cyBoaWdobHkgZGVwZW5kZW50IG9uIHRoZSBtZW1vcnkgYWNjZXNzIHBhdHRlcm5zIHVzZWQg YnkgdGhlIGFwcGxpY2F0aW9uIGFuZCB0aGUgc2l6ZSBvZiB0aGUgZXh0ZXJuYWwgY2FjaGUg b24gdGhlIG1hY2hpbmUuCi5QcApWYWxpZCBvcHRpb25zIGZvcgouRW0gdGltZQphcmUKLlBw Ci5CbCAtdGFnIC13aWR0aCB4eAouSXQgRW0gbnVtYmVyIE5zCkEgZGVjaW1hbCBudW1iZXIg cmVwcmVzZW50aW5nIGNsb2NrIGN5Y2xlcy4KLlBwCi5JdCBTeSBMMSBOcwouSXQgU3kgTDIg TnMKLkl0IFN5IEwzIE5zCi5JdCBTeSBtYWluIE5zClRoZSBjb21waWxlciBjb250YWlucyBl c3RpbWF0ZXMgb2YgdGhlIG51bWJlciBvZiBjbG9jayBjeWNsZXMgZm9yICJ0eXBpY2FsIiBF VjQgJiBFVjUgaGFyZHdhcmUgZm9yIHRoZSBMZXZlbCAxLCAyICYgMyBjYWNoZXMgKGFsc28g Y2FsbGVkIERjYWNoZSwgU2NhY2hlLCBhbmQgQmNhY2hlKSwgYXMgd2VsbCBhcyB0byBtYWlu IG1lbW9yeS4KTm90ZSB0aGF0IEwzIGlzIG9ubHkgdmFsaWQgZm9yIEVWNS4KLlBwCi5FbAou RWwKLkl0IFN5IERFQyBBbHBoYS9WTVMgT3B0aW9ucwpUaGVzZQouRmwgbQpvcHRpb25zIGFy ZSBkZWZpbmVkIGZvciB0aGUgREVDIEFscGhhL1ZNUyBpbXBsZW1lbnRhdGlvbnM6Ci5QcAou QmwgLXRhZyAtd2lkdGggeHgKLkl0IEZsIG12bXMtcmV0dXJuLWNvZGVzClJldHVybiBWTVMg Y29uZGl0aW9uIGNvZGVzIGZyb20gbWFpbi4KVGhlIGRlZmF1bHQgaXMgdG8gcmV0dXJuIFBP U0lYIHN0eWxlIGNvbmRpdGlvbiAoZS5nLiBlcnJvcikgY29kZXMuCi5QcAouRWwKLkl0IFN5 IEZSViBPcHRpb25zCi5CbCAtdGFnIC13aWR0aCB4eAouSXQgRmwgbWdwci0zMgpPbmx5IHVz ZSB0aGUgZmlyc3QgMzIgZ2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVycy4KLlBwCi5JdCBGbCBt Z3ByLTY0ClVzZSBhbGwgNjQgZ2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVycy4KLlBwCi5JdCBG bCBtZnByLTMyClVzZSBvbmx5IHRoZSBmaXJzdCAzMiBmbG9hdGluZyBwb2ludCByZWdpc3Rl cnMuCi5QcAouSXQgRmwgbWZwci02NApVc2UgYWxsIDY0IGZsb2F0aW5nIHBvaW50IHJlZ2lz dGVycwouUHAKLkl0IEZsIG1oYXJkLWZsb2F0ClVzZSBoYXJkd2FyZSBpbnN0cnVjdGlvbnMg Zm9yIGZsb2F0aW5nIHBvaW50IG9wZXJhdGlvbnMuCi5QcAouSXQgRmwgbXNvZnQtZmxvYXQK VXNlIGxpYnJhcnkgcm91dGluZXMgZm9yIGZsb2F0aW5nIHBvaW50IG9wZXJhdGlvbnMuCi5Q cAouSXQgRmwgbWFsbG9jLWNjCkR5bmFtaWNhbGx5IGFsbG9jYXRlIGNvbmRpdGlvbiBjb2Rl IHJlZ2lzdGVycy4KLlBwCi5JdCBGbCBtZml4ZWQtY2MKRG8gbm90IHRyeSB0byBkeW5hbWlj YWxseSBhbGxvY2F0ZSBjb25kaXRpb24gY29kZSByZWdpc3RlcnMsIG9ubHkgdXNlCi5WYSBp Y2MwCmFuZAouVmEgZmNjMCAuCi5QcAouSXQgRmwgbWR3b3JkCkNoYW5nZSBBQkkgdG8gdXNl IGRvdWJsZSB3b3JkIGluc25zLgouUHAKLkl0IEZsIG1uby1kd29yZApEbyBub3QgdXNlIGRv dWJsZSB3b3JkIGluc3RydWN0aW9ucy4KLlBwCi5JdCBGbCBtZG91YmxlClVzZSBmbG9hdGlu ZyBwb2ludCBkb3VibGUgaW5zdHJ1Y3Rpb25zLgouUHAKLkl0IEZsIG1uby1kb3VibGUKRG8g bm90IHVzZSBmbG9hdGluZyBwb2ludCBkb3VibGUgaW5zdHJ1Y3Rpb25zLgouUHAKLkl0IEZs IG1tZWRpYQpVc2UgbWVkaWEgaW5zdHJ1Y3Rpb25zLgouUHAKLkl0IEZsIG1uby1tZWRpYQpE byBub3QgdXNlIG1lZGlhIGluc3RydWN0aW9ucy4KLlBwCi5JdCBGbCBtbXVsYWRkClVzZSBt dWx0aXBseSBhbmQgYWRkL3N1YnRyYWN0IGluc3RydWN0aW9ucy4KLlBwCi5JdCBGbCBtbm8t bXVsYWRkCkRvIG5vdCB1c2UgbXVsdGlwbHkgYW5kIGFkZC9zdWJ0cmFjdCBpbnN0cnVjdGlv bnMuCi5QcAouSXQgRmwgbWZkcGljClNlbGVjdCB0aGUgRkRQSUMgQUJJLCB0aGF0IHVzZXMg ZnVuY3Rpb24gZGVzY3JpcHRvcnMgdG8gcmVwcmVzZW50IHBvaW50ZXJzIHRvIGZ1bmN0aW9u cy4KV2l0aG91dCBhbnkgUElDL1BJRS1yZWxhdGVkIG9wdGlvbnMsIGl0IGltcGxpZXMKLkZs IGZQSUUgLgpXaXRoCi5GbCBmcGljCm9yCi5GbCBmcGllICwKaXQgYXNzdW1lcyBHT1QgZW50 cmllcyBhbmQgc21hbGwgZGF0YSBhcmUgd2l0aGluIGEgMTItYml0IHJhbmdlIGZyb20gdGhl IEdPVCBiYXNlIGFkZHJlc3M7IHdpdGgKLkZsIGZQSUMKb3IKLkZsIGZQSUUgLApHT1Qgb2Zm c2V0cyBhcmUgY29tcHV0ZWQgd2l0aCAzMiBiaXRzLgouUHAKLkl0IEZsIG1pbmxpbmUtcGx0 CkVuYWJsZSBpbmxpbmluZyBvZiBQTFQgZW50cmllcyBpbiBmdW5jdGlvbiBjYWxscyB0byBm dW5jdGlvbnMgdGhhdCBhcmUgbm90IGtub3duIHRvIGJpbmQgbG9jYWxseS4KSXQgaGFzIG5v IGVmZmVjdCB3aXRob3V0Ci5GbCBtZmRwaWMgLgpJdCdzIGVuYWJsZWQgYnkgZGVmYXVsdCBp ZiBvcHRpbWl6aW5nIGZvciBzcGVlZCBhbmQgY29tcGlsaW5nIGZvciBzaGFyZWQgbGlicmFy aWVzIChpLmUuLAouRmwgZlBJQwpvcgouRmwgZnBpYyApICwKb3Igd2hlbiBhbiBvcHRpbWl6 YXRpb24gb3B0aW9uIHN1Y2ggYXMKLkZsIE8zCm9yIGFib3ZlIGlzIHByZXNlbnQgaW4gdGhl IGNvbW1hbmQgbGluZS4KLlBwCi5JdCBGbCBtVExTCkFzc3VtZSBhIGxhcmdlIFRMUyBzZWdt ZW50IHdoZW4gZ2VuZXJhdGluZyB0aHJlYWQtbG9jYWwgY29kZS4KLlBwCi5JdCBGbCBtdGxz CkRvIG5vdCBhc3N1bWUgYSBsYXJnZSBUTFMgc2VnbWVudCB3aGVuIGdlbmVyYXRpbmcgdGhy ZWFkLWxvY2FsIGNvZGUuCi5QcAouSXQgRmwgbWdwcmVsLXJvCkVuYWJsZSB0aGUgdXNlIG9m Ci5WYSBHUFJFTApyZWxvY2F0aW9ucyBpbiB0aGUgRkRQSUMgQUJJIGZvciBkYXRhIHRoYXQg aXMga25vd24gdG8gYmUgaW4gcmVhZC1vbmx5IHNlY3Rpb25zLgpJdCdzIGVuYWJsZWQgYnkg ZGVmYXVsdCwgZXhjZXB0IGZvcgouRmwgZnBpYwpvcgouRmwgZnBpZSA6CmV2ZW4gdGhvdWdo IGl0IG1heSBoZWxwIG1ha2UgdGhlIGdsb2JhbCBvZmZzZXQgdGFibGUgc21hbGxlciwgaXQg dHJhZGVzIDEgaW5zdHJ1Y3Rpb24gZm9yIDQuCldpdGgKLkZsIGZQSUMKb3IKLkZsIGZQSUUg LAppdCB0cmFkZXMgMyBpbnN0cnVjdGlvbnMgZm9yIDQsIG9uZSBvZiB3aGljaCBtYXkgYmUg c2hhcmVkIGJ5IG11bHRpcGxlIHN5bWJvbHMsIGFuZCBpdCBhdm9pZHMgdGhlIG5lZWQgZm9y IGEgR09UIGVudHJ5IGZvciB0aGUgcmVmZXJlbmNlZCBzeW1ib2wsIHNvIGl0J3MgbW9yZSBs aWtlbHkgdG8gYmUgYSB3aW4uCklmIGl0IGlzIG5vdCwKLkZsIG1uby1ncHJlbC1ybwpjYW4g YmUgdXNlZCB0byBkaXNhYmxlIGl0LgouUHAKLkl0IEZsIG11bHRpbGliLWxpYnJhcnktcGlj Ckxpbmsgd2l0aCB0aGUgKGxpYnJhcnksIG5vdCBGRCkgcGljIGxpYnJhcmllcy4KSXQncyBp bXBsaWVkIGJ5Ci5GbCBtbGlicmFyeS1waWMgLAphcyB3ZWxsIGFzIGJ5Ci5GbCBmUElDCmFu ZAouRmwgZnBpYwp3aXRob3V0Ci5GbCBtZmRwaWMgLgpZb3Ugc2hvdWxkIG5ldmVyIGhhdmUg dG8gdXNlIGl0IGV4cGxpY2l0bHkuCi5QcAouSXQgRmwgbWxpbmtlZC1mcApGb2xsb3cgdGhl IEVBQkkgcmVxdWlyZW1lbnQgb2YgYWx3YXlzIGNyZWF0aW5nIGEgZnJhbWUgcG9pbnRlciB3 aGVuZXZlciBhIHN0YWNrIGZyYW1lIGlzIGFsbG9jYXRlZC4KVGhpcyBvcHRpb24gaXMgZW5h YmxlZCBieSBkZWZhdWx0IGFuZCBjYW4gYmUgZGlzYWJsZWQgd2l0aAouRmwgbW5vLWxpbmtl ZC1mcCAuCi5QcAouSXQgRmwgbWxvbmctY2FsbHMKVXNlIGluZGlyZWN0IGFkZHJlc3Npbmcg dG8gY2FsbCBmdW5jdGlvbnMgb3V0c2lkZSB0aGUgY3VycmVudCBjb21waWxhdGlvbiB1bml0 LgpUaGlzIGFsbG93cyB0aGUgZnVuY3Rpb25zIHRvIGJlIHBsYWNlZCBhbnl3aGVyZSB3aXRo aW4gdGhlIDMyLWJpdCBhZGRyZXNzIHNwYWNlLgouUHAKLkl0IEZsIG1hbGlnbi1sYWJlbHMK VHJ5IHRvIGFsaWduIGxhYmVscyB0byBhbiA4LWJ5dGUgYm91bmRhcnkgYnkgaW5zZXJ0aW5n IG5vcHMgaW50byB0aGUgcHJldmlvdXMgcGFja2V0LgpUaGlzIG9wdGlvbiBvbmx5IGhhcyBh biBlZmZlY3Qgd2hlbiBWTElXIHBhY2tpbmcgaXMgZW5hYmxlZC4KSXQgZG9lc24ndCBjcmVh dGUgbmV3IHBhY2tldHM7IGl0IG1lcmVseSBhZGRzIG5vcHMgdG8gZXhpc3Rpbmcgb25lcy4K LlBwCi5JdCBGbCBtbGlicmFyeS1waWMKR2VuZXJhdGUgcG9zaXRpb24taW5kZXBlbmRlbnQg RUFCSSBjb2RlLgouUHAKLkl0IEZsIG1hY2MtNApVc2Ugb25seSB0aGUgZmlyc3QgZm91ciBt ZWRpYSBhY2N1bXVsYXRvciByZWdpc3RlcnMuCi5QcAouSXQgRmwgbWFjYy04ClVzZSBhbGwg ZWlnaHQgbWVkaWEgYWNjdW11bGF0b3IgcmVnaXN0ZXJzLgouUHAKLkl0IEZsIG1wYWNrClBh Y2sgVkxJVyBpbnN0cnVjdGlvbnMuCi5QcAouSXQgRmwgbW5vLXBhY2sKRG8gbm90IHBhY2sg VkxJVyBpbnN0cnVjdGlvbnMuCi5QcAouSXQgRmwgbW5vLWVmbGFncwpEbyBub3QgbWFyayBB Qkkgc3dpdGNoZXMgaW4gZV9mbGFncy4KLlBwCi5JdCBGbCBtY29uZC1tb3ZlCkVuYWJsZSB0 aGUgdXNlIG9mIGNvbmRpdGlvbmFsLW1vdmUgaW5zdHJ1Y3Rpb25zIChkZWZhdWx0KS4KLlBw ClRoaXMgc3dpdGNoIGlzIG1haW5seSBmb3IgZGVidWdnaW5nIHRoZSBjb21waWxlciBhbmQg d2lsbCBsaWtlbHkgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uLgouUHAKLkl0IEZs IG1uby1jb25kLW1vdmUKRGlzYWJsZSB0aGUgdXNlIG9mIGNvbmRpdGlvbmFsLW1vdmUgaW5z dHJ1Y3Rpb25zLgouUHAKVGhpcyBzd2l0Y2ggaXMgbWFpbmx5IGZvciBkZWJ1Z2dpbmcgdGhl IGNvbXBpbGVyIGFuZCB3aWxsIGxpa2VseSBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNp b24uCi5QcAouSXQgRmwgbXNjYwpFbmFibGUgdGhlIHVzZSBvZiBjb25kaXRpb25hbCBzZXQg aW5zdHJ1Y3Rpb25zIChkZWZhdWx0KS4KLlBwClRoaXMgc3dpdGNoIGlzIG1haW5seSBmb3Ig ZGVidWdnaW5nIHRoZSBjb21waWxlciBhbmQgd2lsbCBsaWtlbHkgYmUgcmVtb3ZlZCBpbiBh IGZ1dHVyZSB2ZXJzaW9uLgouUHAKLkl0IEZsIG1uby1zY2MKRGlzYWJsZSB0aGUgdXNlIG9m IGNvbmRpdGlvbmFsIHNldCBpbnN0cnVjdGlvbnMuCi5QcApUaGlzIHN3aXRjaCBpcyBtYWlu bHkgZm9yIGRlYnVnZ2luZyB0aGUgY29tcGlsZXIgYW5kIHdpbGwgbGlrZWx5IGJlIHJlbW92 ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi4KLlBwCi5JdCBGbCBtY29uZC1leGVjCkVuYWJsZSB0 aGUgdXNlIG9mIGNvbmRpdGlvbmFsIGV4ZWN1dGlvbiAoZGVmYXVsdCkuCi5QcApUaGlzIHN3 aXRjaCBpcyBtYWlubHkgZm9yIGRlYnVnZ2luZyB0aGUgY29tcGlsZXIgYW5kIHdpbGwgbGlr ZWx5IGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi4KLlBwCi5JdCBGbCBtbm8tY29u ZC1leGVjCkRpc2FibGUgdGhlIHVzZSBvZiBjb25kaXRpb25hbCBleGVjdXRpb24uCi5QcApU aGlzIHN3aXRjaCBpcyBtYWlubHkgZm9yIGRlYnVnZ2luZyB0aGUgY29tcGlsZXIgYW5kIHdp bGwgbGlrZWx5IGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi4KLlBwCi5JdCBGbCBt dmxpdy1icmFuY2gKUnVuIGEgcGFzcyB0byBwYWNrIGJyYW5jaGVzIGludG8gVkxJVyBpbnN0 cnVjdGlvbnMgKGRlZmF1bHQpLgouUHAKVGhpcyBzd2l0Y2ggaXMgbWFpbmx5IGZvciBkZWJ1 Z2dpbmcgdGhlIGNvbXBpbGVyIGFuZCB3aWxsIGxpa2VseSBiZSByZW1vdmVkIGluIGEgZnV0 dXJlIHZlcnNpb24uCi5QcAouSXQgRmwgbW5vLXZsaXctYnJhbmNoCkRvIG5vdCBydW4gYSBw YXNzIHRvIHBhY2sgYnJhbmNoZXMgaW50byBWTElXIGluc3RydWN0aW9ucy4KLlBwClRoaXMg c3dpdGNoIGlzIG1haW5seSBmb3IgZGVidWdnaW5nIHRoZSBjb21waWxlciBhbmQgd2lsbCBs aWtlbHkgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uLgouUHAKLkl0IEZsIG1tdWx0 aS1jb25kLWV4ZWMKRW5hYmxlIG9wdGltaXphdGlvbiBvZgouVmEgJiYKYW5kCi5WYSB8fApp biBjb25kaXRpb25hbCBleGVjdXRpb24gKGRlZmF1bHQpLgouUHAKVGhpcyBzd2l0Y2ggaXMg bWFpbmx5IGZvciBkZWJ1Z2dpbmcgdGhlIGNvbXBpbGVyIGFuZCB3aWxsIGxpa2VseSBiZSBy ZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24uCi5QcAouSXQgRmwgbW5vLW11bHRpLWNvbmQt ZXhlYwpEaXNhYmxlIG9wdGltaXphdGlvbiBvZgouVmEgJiYKYW5kCi5WYSB8fAppbiBjb25k aXRpb25hbCBleGVjdXRpb24uCi5QcApUaGlzIHN3aXRjaCBpcyBtYWlubHkgZm9yIGRlYnVn Z2luZyB0aGUgY29tcGlsZXIgYW5kIHdpbGwgbGlrZWx5IGJlIHJlbW92ZWQgaW4gYSBmdXR1 cmUgdmVyc2lvbi4KLlBwCi5JdCBGbCBtbmVzdGVkLWNvbmQtZXhlYwpFbmFibGUgbmVzdGVk IGNvbmRpdGlvbmFsIGV4ZWN1dGlvbiBvcHRpbWl6YXRpb25zIChkZWZhdWx0KS4KLlBwClRo aXMgc3dpdGNoIGlzIG1haW5seSBmb3IgZGVidWdnaW5nIHRoZSBjb21waWxlciBhbmQgd2ls bCBsaWtlbHkgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSB2ZXJzaW9uLgouUHAKLkl0IEZsIG1u by1uZXN0ZWQtY29uZC1leGVjCkRpc2FibGUgbmVzdGVkIGNvbmRpdGlvbmFsIGV4ZWN1dGlv biBvcHRpbWl6YXRpb25zLgouUHAKVGhpcyBzd2l0Y2ggaXMgbWFpbmx5IGZvciBkZWJ1Z2dp bmcgdGhlIGNvbXBpbGVyIGFuZCB3aWxsIGxpa2VseSBiZSByZW1vdmVkIGluIGEgZnV0dXJl IHZlcnNpb24uCi5QcAouSXQgRmwgbW9wdGltaXplLW1lbWJhcgpUaGlzIHN3aXRjaCByZW1v dmVzIHJlZHVuZGFudAouVmEgbWVtYmFyCmluc3RydWN0aW9ucyBmcm9tIHRoZSBjb21waWxl ciBnZW5lcmF0ZWQgY29kZS4KSXQgaXMgZW5hYmxlZCBieSBkZWZhdWx0LgouUHAKLkl0IEZs IG1uby1vcHRpbWl6ZS1tZW1iYXIKVGhpcyBzd2l0Y2ggZGlzYWJsZXMgdGhlIGF1dG9tYXRp YyByZW1vdmFsIG9mIHJlZHVuZGFudAouVmEgbWVtYmFyCmluc3RydWN0aW9ucyBmcm9tIHRo ZSBnZW5lcmF0ZWQgY29kZS4KLlBwCi5JdCBGbCBtdG9tY2F0LXN0YXRzCkNhdXNlIGdhcyB0 byBwcmludCBvdXQgdG9tY2F0IHN0YXRpc3RpY3MuCi5QcAouSXQgRmwgbWNwdT0gTnMgQXIg Y3B1ClNlbGVjdCB0aGUgcHJvY2Vzc29yIHR5cGUgZm9yIHdoaWNoIHRvIGdlbmVyYXRlIGNv ZGUuClBvc3NpYmxlIHZhbHVlcyBhcmUKLlN5IGZydiAsCi5TeSBmcjU1MCAsCi5TeSB0b21j YXQgLAouU3kgZnI1MDAgLAouU3kgZnI0NTAgLAouU3kgZnI0MDUgLAouU3kgZnI0MDAgLAou U3kgZnIzMDAKYW5kCi5TeSBzaW1wbGUgLgouUHAKLkVsCi5JdCBTeSBIOC8zMDAgT3B0aW9u cwpUaGVzZQouRmwgbQpvcHRpb25zIGFyZSBkZWZpbmVkIGZvciB0aGUgSDgvMzAwIGltcGxl bWVudGF0aW9uczoKLlBwCi5CbCAtdGFnIC13aWR0aCB4eAouSXQgRmwgbXJlbGF4ClNob3J0 ZW4gc29tZSBhZGRyZXNzIHJlZmVyZW5jZXMgYXQgbGluayB0aW1lLCB3aGVuIHBvc3NpYmxl OyB1c2VzIHRoZSBsaW5rZXIgb3B0aW9uCi5GbCByZWxheCAuCi5QcAouSXQgRmwgbWgKR2Vu ZXJhdGUgY29kZSBmb3IgdGhlIEg4LzMwMEguCi5QcAouSXQgRmwgbXMKR2VuZXJhdGUgY29k ZSBmb3IgdGhlIEg4Uy4KLlBwCi5JdCBGbCBtbgpHZW5lcmF0ZSBjb2RlIGZvciB0aGUgSDhT IGFuZCBIOC8zMDBIIGluIHRoZSBub3JtYWwgbW9kZS4KVGhpcyBzd2l0Y2ggbXVzdCBiZSB1 c2VkIGVpdGhlciB3aXRoCi5GbCBtaApvcgouRmwgbXMgLgouUHAKLkl0IEZsIG1zMjYwMApH ZW5lcmF0ZSBjb2RlIGZvciB0aGUgSDhTLzI2MDAuClRoaXMgc3dpdGNoIG11c3QgYmUgdXNl ZCB3aXRoCi5GbCBtcyAuCi5QcAouSXQgRmwgbWludDMyCk1ha2UKLlZhIGludApkYXRhIDMy IGJpdHMgYnkgZGVmYXVsdC4KLlBwCi5JdCBGbCBtYWxpZ24tMzAwCk9uIHRoZSBIOC8zMDBI IGFuZCBIOFMsIHVzZSB0aGUgc2FtZSBhbGlnbm1lbnQgcnVsZXMgYXMgZm9yIHRoZSBIOC8z MDAuClRoZSBkZWZhdWx0IGZvciB0aGUgSDgvMzAwSCBhbmQgSDhTIGlzIHRvIGFsaWduIGxv bmdzIGFuZCBmbG9hdHMgb24gNCBieXRlIGJvdW5kYXJpZXMuCi5GbCBtYWxpZ24tMzAwCmNh dXNlcyB0aGVtIHRvIGJlIGFsaWduZWQgb24gMiBieXRlIGJvdW5kYXJpZXMuClRoaXMgb3B0 aW9uIGhhcyBubyBlZmZlY3Qgb24gdGhlIEg4LzMwMC4KLlBwCi5FbAouSXQgU3kgSFBQQSBP cHRpb25zClRoZXNlCi5GbCBtCm9wdGlvbnMgYXJlIGRlZmluZWQgZm9yIHRoZSBIUFBBIGZh bWlseSBvZiBjb21wdXRlcnM6Ci5QcAouQmwgLXRhZyAtd2lkdGggeHgKLkl0IEZsIG1hcmNo PSBOcyBBciBhcmNoaXRlY3R1cmUtdHlwZQpHZW5lcmF0ZSBjb2RlIGZvciB0aGUgc3BlY2lm aWVkIGFyY2hpdGVjdHVyZS4KVGhlIGNob2ljZXMgZm9yCi5FbSBhcmNoaXRlY3R1cmUtdHlw ZQphcmUKLlN5IDEuMApmb3IgUEEgMS4wLAouU3kgMS4xCmZvciBQQSAxLjEsIGFuZAouU3kg Mi4wCmZvciBQQSAyLjAgcHJvY2Vzc29ycy4KUmVmZXIgdG8KLlBhIC91c3IvbGliL3NjaGVk Lm1vZGVscwpvbiBhbiBIUC1VWCBzeXN0ZW0gdG8gZGV0ZXJtaW5lIHRoZSBwcm9wZXIgYXJj aGl0ZWN0dXJlIG9wdGlvbiBmb3IgeW91ciBtYWNoaW5lLgpDb2RlIGNvbXBpbGVkIGZvciBs b3dlciBudW1iZXJlZCBhcmNoaXRlY3R1cmVzIHdpbGwgcnVuIG9uIGhpZ2hlciBudW1iZXJl ZCBhcmNoaXRlY3R1cmVzLCBidXQgbm90IHRoZSBvdGhlciB3YXkgYXJvdW5kLgouUHAKLkl0 IEZsIG1wYS1yaXNjLTEtMAouSXQgRmwgbXBhLXJpc2MtMS0xCi5JdCBGbCBtcGEtcmlzYy0y LTAKU3lub255bXMgZm9yCi5TeSAtbWFyY2g9MS4wICwKLlN5IC1tYXJjaD0xLjEgLAphbmQK LlN5IC1tYXJjaD0yLjAKcmVzcGVjdGl2ZWx5LgouUHAKLkl0IEZsIG1iaWctc3dpdGNoCkdl bmVyYXRlIGNvZGUgc3VpdGFibGUgZm9yIGJpZyBzd2l0Y2ggdGFibGVzLgpVc2UgdGhpcyBv cHRpb24gb25seSBpZiB0aGUgYXNzZW1ibGVyL2xpbmtlciBjb21wbGFpbiBhYm91dCBvdXQg b2YgcmFuZ2UgYnJhbmNoZXMgd2l0aGluIGEgc3dpdGNoIHRhYmxlLgouUHAKLkl0IEZsIG1q dW1wLWluLWRlbGF5CkZpbGwgZGVsYXkgc2xvdHMgb2YgZnVuY3Rpb24gY2FsbHMgd2l0aCB1 bmNvbmRpdGlvbmFsIGp1bXAgaW5zdHJ1Y3Rpb25zIGJ5IG1vZGlmeWluZyB0aGUgcmV0dXJu IHBvaW50ZXIgZm9yIHRoZSBmdW5jdGlvbiBjYWxsIHRvIGJlIHRoZSB0YXJnZXQgb2YgdGhl IGNvbmRpdGlvbmFsIGp1bXAuCi5QcAouSXQgRmwgbWRpc2FibGUtZnByZWdzClByZXZlbnQg ZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzIGZyb20gYmVpbmcgdXNlZCBpbiBhbnkgbWFubmVy LgpUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgY29tcGlsaW5nIGtlcm5lbHMgd2hpY2ggcGVyZm9y bSBsYXp5IGNvbnRleHQgc3dpdGNoaW5nIG9mIGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycy4K SWYgeW91IHVzZSB0aGlzIG9wdGlvbiBhbmQgYXR0ZW1wdCB0byBwZXJmb3JtIGZsb2F0aW5n IHBvaW50IG9wZXJhdGlvbnMsIHRoZSBjb21waWxlciB3aWxsIGFib3J0LgouUHAKLkl0IEZs IG1kaXNhYmxlLWluZGV4aW5nClByZXZlbnQgdGhlIGNvbXBpbGVyIGZyb20gdXNpbmcgaW5k ZXhpbmcgYWRkcmVzcyBtb2Rlcy4KVGhpcyBhdm9pZHMgc29tZSByYXRoZXIgb2JzY3VyZSBw cm9ibGVtcyB3aGVuIGNvbXBpbGluZyBNSUcgZ2VuZXJhdGVkIGNvZGUgdW5kZXIgTUFDSC4K LlBwCi5JdCBGbCBtbm8tc3BhY2UtcmVncwpHZW5lcmF0ZSBjb2RlIHRoYXQgYXNzdW1lcyB0 aGUgdGFyZ2V0IGhhcyBubyBzcGFjZSByZWdpc3RlcnMuClRoaXMgYWxsb3dzIEdDQyB0byBn ZW5lcmF0ZSBmYXN0ZXIgaW5kaXJlY3QgY2FsbHMgYW5kIHVzZSB1bnNjYWxlZCBpbmRleCBh ZGRyZXNzIG1vZGVzLgouUHAKU3VjaCBjb2RlIGlzIHN1aXRhYmxlIGZvciBsZXZlbCAwIFBB IHN5c3RlbXMgYW5kIGtlcm5lbHMuCi5QcAouSXQgRmwgbWZhc3QtaW5kaXJlY3QtY2FsbHMK R2VuZXJhdGUgY29kZSB0aGF0IGFzc3VtZXMgY2FsbHMgbmV2ZXIgY3Jvc3Mgc3BhY2UgYm91 bmRhcmllcy4KVGhpcyBhbGxvd3MgR0NDIHRvIGVtaXQgY29kZSB3aGljaCBwZXJmb3JtcyBm YXN0ZXIgaW5kaXJlY3QgY2FsbHMuCi5QcApUaGlzIG9wdGlvbiB3aWxsIG5vdCB3b3JrIGlu IHRoZSBwcmVzZW5jZSBvZiBzaGFyZWQgbGlicmFyaWVzIG9yIG5lc3RlZCBmdW5jdGlvbnMu Ci5QcAouSXQgRmwgbWZpeGVkLXJhbmdlPSBOcyBBciByZWdpc3Rlci1yYW5nZQpHZW5lcmF0 ZSBjb2RlIHRyZWF0aW5nIHRoZSBnaXZlbiByZWdpc3RlciByYW5nZSBhcyBmaXhlZCByZWdp c3RlcnMuCkEgZml4ZWQgcmVnaXN0ZXIgaXMgb25lIHRoYXQgdGhlIHJlZ2lzdGVyIGFsbG9j YXRvciBjYW4gbm90IHVzZS4KVGhpcyBpcyB1c2VmdWwgd2hlbiBjb21waWxpbmcga2VybmVs IGNvZGUuCkEgcmVnaXN0ZXIgcmFuZ2UgaXMgc3BlY2lmaWVkIGFzIHR3byByZWdpc3RlcnMg c2VwYXJhdGVkIGJ5IGEgZGFzaC4KTXVsdGlwbGUgcmVnaXN0ZXIgcmFuZ2VzIGNhbiBiZSBz cGVjaWZpZWQgc2VwYXJhdGVkIGJ5IGEgY29tbWEuCi5QcAouSXQgRmwgbWxvbmctbG9hZC1z dG9yZQpHZW5lcmF0ZSAzLWluc3RydWN0aW9uIGxvYWQgYW5kIHN0b3JlIHNlcXVlbmNlcyBh cyBzb21ldGltZXMgcmVxdWlyZWQgYnkgdGhlIEhQLVVYIDEwIGxpbmtlci4KVGhpcyBpcyBl cXVpdmFsZW50IHRvIHRoZQouU3kgK2sKb3B0aW9uIHRvIHRoZSBIUCBjb21waWxlcnMuCi5Q cAouSXQgRmwgbXBvcnRhYmxlLXJ1bnRpbWUKVXNlIHRoZSBwb3J0YWJsZSBjYWxsaW5nIGNv bnZlbnRpb25zIHByb3Bvc2VkIGJ5IEhQIGZvciBFTEYgc3lzdGVtcy4KLlBwCi5JdCBGbCBt Z2FzCkVuYWJsZSB0aGUgdXNlIG9mIGFzc2VtYmxlciBkaXJlY3RpdmVzIG9ubHkgR0FTIHVu ZGVyc3RhbmRzLgouUHAKLkl0IEZsIG1zY2hlZHVsZT0gTnMgQXIgY3B1LXR5cGUKU2NoZWR1 bGUgY29kZSBhY2NvcmRpbmcgdG8gdGhlIGNvbnN0cmFpbnRzIGZvciB0aGUgbWFjaGluZSB0 eXBlCi5FbSBjcHUtdHlwZSAuClRoZSBjaG9pY2VzIGZvcgouRW0gY3B1LXR5cGUKYXJlCi5T eSA3MDAKLlN5IDcxMDAgLAouU3kgNzEwMExDICwKLlN5IDcyMDAgLAouU3kgNzMwMAphbmQK LlN5IDgwMDAgLgpSZWZlciB0bwouUGEgL3Vzci9saWIvc2NoZWQubW9kZWxzCm9uIGFuIEhQ LVVYIHN5c3RlbSB0byBkZXRlcm1pbmUgdGhlIHByb3BlciBzY2hlZHVsaW5nIG9wdGlvbiBm b3IgeW91ciBtYWNoaW5lLgpUaGUgZGVmYXVsdCBzY2hlZHVsaW5nIGlzCi5TeSA4MDAwIC4K LlBwCi5JdCBGbCBtbGlua2VyLW9wdApFbmFibGUgdGhlIG9wdGltaXphdGlvbiBwYXNzIGlu IHRoZSBIUC1VWCBsaW5rZXIuCk5vdGUgdGhpcyBtYWtlcyBzeW1ib2xpYyBkZWJ1Z2dpbmcg aW1wb3NzaWJsZS4KSXQgYWxzbyB0cmlnZ2VycyBhIGJ1ZyBpbiB0aGUgSFAtVVggOCBhbmQg SFAtVVggOSBsaW5rZXJzIGluIHdoaWNoIHRoZXkgZ2l2ZSBib2d1cyBlcnJvciBtZXNzYWdl cyB3aGVuIGxpbmtpbmcgc29tZSBwcm9ncmFtcy4KLlBwCi5JdCBGbCBtc29mdC1mbG9hdApH ZW5lcmF0ZSBvdXRwdXQgY29udGFpbmluZyBsaWJyYXJ5IGNhbGxzIGZvciBmbG9hdGluZyBw b2ludC4KLlN5IFdhcm5pbmc6CnRoZSByZXF1aXNpdGUgbGlicmFyaWVzIGFyZSBub3QgYXZh aWxhYmxlIGZvciBhbGwgSFBQQSB0YXJnZXRzLgpOb3JtYWxseSB0aGUgZmFjaWxpdGllcyBv ZiB0aGUgbWFjaGluZSdzIHVzdWFsIEMgY29tcGlsZXIgYXJlIHVzZWQsIGJ1dCB0aGlzIGNh bm5vdCBiZSBkb25lIGRpcmVjdGx5IGluIGNyb3NzLWNvbXBpbGF0aW9uLgpZb3UgbXVzdCBt YWtlIHlvdXIgb3duIGFycmFuZ2VtZW50cyB0byBwcm92aWRlIHN1aXRhYmxlIGxpYnJhcnkg ZnVuY3Rpb25zIGZvciBjcm9zcy1jb21waWxhdGlvbi4KVGhlIGVtYmVkZGVkIHRhcmdldAou U3kgaHBwYTEuMS0qLXBybwpkb2VzIHByb3ZpZGUgc29mdHdhcmUgZmxvYXRpbmcgcG9pbnQg c3VwcG9ydC4KLlBwCi5GbCBtc29mdC1mbG9hdApjaGFuZ2VzIHRoZSBjYWxsaW5nIGNvbnZl bnRpb24gaW4gdGhlIG91dHB1dCBmaWxlOyB0aGVyZWZvcmUsIGl0IGlzIG9ubHkgdXNlZnVs IGlmIHlvdSBjb21waWxlCi5FbSBhbGwKb2YgYSBwcm9ncmFtIHdpdGggdGhpcyBvcHRpb24u CkluIHBhcnRpY3VsYXIsIHlvdSBuZWVkIHRvIGNvbXBpbGUKLlBhIGxpYmdjYy5hICwKdGhl IGxpYnJhcnkgdGhhdCBjb21lcyB3aXRoIEdDQywgd2l0aAouRmwgbXNvZnQtZmxvYXQKaW4g b3JkZXIgZm9yIHRoaXMgdG8gd29yay4KLlBwCi5JdCBGbCBtc2lvCkdlbmVyYXRlIHRoZSBw cmVkZWZpbmUsCi5WYSBfU0lPICwKZm9yIHNlcnZlciBJTy4KVGhlIGRlZmF1bHQgaXMKLkZs IG13c2lvIC4KVGhpcyBnZW5lcmF0ZXMgdGhlIHByZWRlZmluZXMsCi5WYSBfX2hwOTAwMHM3 MDAgLAouVmEgX19ocDkwMDBzNzAwX18KYW5kCi5WYSBfV1NJTyAsCmZvciB3b3Jrc3RhdGlv biBJTy4KVGhlc2Ugb3B0aW9ucyBhcmUgYXZhaWxhYmxlIHVuZGVyIEhQLVVYIGFuZCBISS1V WC4KLlBwCi5JdCBGbCBtZ251LWxkClVzZSBHTlUgbGQgc3BlY2lmaWMgb3B0aW9ucy4KVGhp cyBwYXNzZXMKLkZsIHNoYXJlZAp0byBsZCB3aGVuIGJ1aWxkaW5nIGEgc2hhcmVkIGxpYnJh cnkuCkl0IGlzIHRoZSBkZWZhdWx0IHdoZW4gR0NDIGlzIGNvbmZpZ3VyZWQsIGV4cGxpY2l0 bHkgb3IgaW1wbGljaXRseSwgd2l0aCB0aGUgR05VIGxpbmtlci4KVGhpcyBvcHRpb24gZG9l cyBub3QgaGF2ZSBhbnkgYWZmZWN0IG9uIHdoaWNoIGxkIGlzIGNhbGxlZCwgaXQgb25seSBj aGFuZ2VzIHdoYXQgcGFyYW1ldGVycyBhcmUgcGFzc2VkIHRvIHRoYXQgbGQuClRoZSBsZCB0 aGF0IGlzIGNhbGxlZCBpcyBkZXRlcm1pbmVkIGJ5IHRoZQouRmwgLXdpdGgtbGQKY29uZmln dXJlIG9wdGlvbiwgR0NDJ3MgcHJvZ3JhbSBzZWFyY2ggcGF0aCwgYW5kIGZpbmFsbHkgYnkg dGhlIHVzZXIncwouU3kgUEFUSCAuClRoZSBsaW5rZXIgdXNlZCBieSBHQ0MgY2FuIGJlIHBy aW50ZWQgdXNpbmcKLlN5IHdoaWNoIGBnY2MgLXByaW50LXByb2ctbmFtZT1sZGAgLgpUaGlz IG9wdGlvbiBpcyBvbmx5IGF2YWlsYWJsZSBvbiB0aGUgNjQgYml0IEhQLVVYIEdDQywgaS5l LiBjb25maWd1cmVkIHdpdGgKLlN5IGhwcGEqNjQqLSotaHB1eCogLgouUHAKLkl0IEZsIG1o cC1sZApVc2UgSFAgbGQgc3BlY2lmaWMgb3B0aW9ucy4KVGhpcyBwYXNzZXMKLkZsIGIKdG8g bGQgd2hlbiBidWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5IGFuZCBwYXNzZXMKLlN5ICtBY2Nl cHQgVHlwZU1pc21hdGNoCnRvIGxkIG9uIGFsbCBsaW5rcy4KSXQgaXMgdGhlIGRlZmF1bHQg d2hlbiBHQ0MgaXMgY29uZmlndXJlZCwgZXhwbGljaXRseSBvciBpbXBsaWNpdGx5LCB3aXRo IHRoZSBIUCBsaW5rZXIuClRoaXMgb3B0aW9uIGRvZXMgbm90IGhhdmUgYW55IGFmZmVjdCBv biB3aGljaCBsZCBpcyBjYWxsZWQsIGl0IG9ubHkgY2hhbmdlcyB3aGF0IHBhcmFtZXRlcnMg YXJlIHBhc3NlZCB0byB0aGF0IGxkLgpUaGUgbGQgdGhhdCBpcyBjYWxsZWQgaXMgZGV0ZXJt aW5lZCBieSB0aGUKLkZsIC13aXRoLWxkCmNvbmZpZ3VyZSBvcHRpb24sIEdDQydzIHByb2dy YW0gc2VhcmNoIHBhdGgsIGFuZCBmaW5hbGx5IGJ5IHRoZSB1c2VyJ3MKLlN5IFBBVEggLgpU aGUgbGlua2VyIHVzZWQgYnkgR0NDIGNhbiBiZSBwcmludGVkIHVzaW5nCi5TeSB3aGljaCBg Z2NjIC1wcmludC1wcm9nLW5hbWU9bGRgIC4KVGhpcyBvcHRpb24gaXMgb25seSBhdmFpbGFi bGUgb24gdGhlIDY0IGJpdCBIUC1VWCBHQ0MsIGkuZS4gY29uZmlndXJlZCB3aXRoCi5TeSBo cHBhKjY0Ki0qLWhwdXgqIC4KLlBwCi5JdCBGbCBtbG9uZy1jYWxscwpHZW5lcmF0ZSBjb2Rl IHRoYXQgdXNlcyBsb25nIGNhbGwgc2VxdWVuY2VzLgpUaGlzIGVuc3VyZXMgdGhhdCBhIGNh bGwgaXMgYWx3YXlzIGFibGUgdG8gcmVhY2ggbGlua2VyIGdlbmVyYXRlZCBzdHVicy4KVGhl IGRlZmF1bHQgaXMgdG8gZ2VuZXJhdGUgbG9uZyBjYWxscyBvbmx5IHdoZW4gdGhlIGRpc3Rh bmNlIGZyb20gdGhlIGNhbGwgc2l0ZSB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmdW5jdGlv biBvciB0cmFuc2xhdGlvbiB1bml0LCBhcyB0aGUgY2FzZSBtYXkgYmUsIGV4Y2VlZHMgYSBw cmVkZWZpbmVkIGxpbWl0IHNldCBieSB0aGUgYnJhbmNoIHR5cGUgYmVpbmcgdXNlZC4KVGhl IGxpbWl0cyBmb3Igbm9ybWFsIGNhbGxzIGFyZSA3LDYwMCwwMDAgYW5kIDI0MCwwMDAgYnl0 ZXMsIHJlc3BlY3RpdmVseSBmb3IgdGhlIFBBIDIuMCBhbmQgUEEgMS5YIGFyY2hpdGVjdHVy ZXMuClNpYmNhbGxzIGFyZSBhbHdheXMgbGltaXRlZCBhdCAyNDAsMDAwIGJ5dGVzLgouUHAK RGlzdGFuY2VzIGFyZSBtZWFzdXJlZCBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgZnVuY3Rpb25z IHdoZW4gdXNpbmcgdGhlCi5GbCBmZnVuY3Rpb24tc2VjdGlvbnMKb3B0aW9uLCBvciB3aGVu IHVzaW5nIHRoZQouRmwgbWdhcwphbmQKLkZsIG1uby1wb3J0YWJsZS1ydW50aW1lCm9wdGlv bnMgdG9nZXRoZXIgdW5kZXIgSFAtVVggd2l0aCB0aGUgU09NIGxpbmtlci4KLlBwCkl0IGlz IG5vcm1hbGx5IG5vdCBkZXNpcmFibGUgdG8gdXNlIHRoaXMgb3B0aW9uIGFzIGl0IHdpbGwg ZGVncmFkZSBwZXJmb3JtYW5jZS4KSG93ZXZlciwgaXQgbWF5IGJlIHVzZWZ1bCBpbiBsYXJn ZSBhcHBsaWNhdGlvbnMsIHBhcnRpY3VsYXJseSB3aGVuIHBhcnRpYWwgbGlua2luZyBpcyB1 c2VkIHRvIGJ1aWxkIHRoZSBhcHBsaWNhdGlvbi4KLlBwClRoZSB0eXBlcyBvZiBsb25nIGNh bGxzIHVzZWQgZGVwZW5kcyBvbiB0aGUgY2FwYWJpbGl0aWVzIG9mIHRoZSBhc3NlbWJsZXIg YW5kIGxpbmtlciwgYW5kIHRoZSB0eXBlIG9mIGNvZGUgYmVpbmcgZ2VuZXJhdGVkLgpUaGUg aW1wYWN0IG9uIHN5c3RlbXMgdGhhdCBzdXBwb3J0IGxvbmcgYWJzb2x1dGUgY2FsbHMsIGFu ZCBsb25nIHBpYyBzeW1ib2wtZGlmZmVyZW5jZSBvciBwYy1yZWxhdGl2ZSBjYWxscyBzaG91 bGQgYmUgcmVsYXRpdmVseSBzbWFsbC4KSG93ZXZlciwgYW4gaW5kaXJlY3QgY2FsbCBpcyB1 c2VkIG9uIDMyLWJpdCBFTEYgc3lzdGVtcyBpbiBwaWMgY29kZSBhbmQgaXQgaXMgcXVpdGUg bG9uZy4KLlBwCi5JdCBGbCBtdW5peD0gTnMgQXIgdW5peC1zdGQKR2VuZXJhdGUgY29tcGls ZXIgcHJlZGVmaW5lcyBhbmQgc2VsZWN0IGEgc3RhcnRmaWxlIGZvciB0aGUgc3BlY2lmaWVk IFVOSVggc3RhbmRhcmQuClRoZSBjaG9pY2VzIGZvcgouRW0gdW5peC1zdGQKYXJlCi5TeSA5 MyAsCi5TeSA5NQphbmQKLlN5IDk4IC4KLlN5IDkzCmlzIHN1cHBvcnRlZCBvbiBhbGwgSFAt VVggdmVyc2lvbnMuCi5TeSA5NQppcyBhdmFpbGFibGUgb24gSFAtVVggMTAuMTAgYW5kIGxh dGVyLgouU3kgOTgKaXMgYXZhaWxhYmxlIG9uIEhQLVVYIDExLjExIGFuZCBsYXRlci4KVGhl IGRlZmF1bHQgdmFsdWVzIGFyZQouU3kgOTMKZm9yIEhQLVVYIDEwLjAwLAouU3kgOTUKZm9y IEhQLVVYIDEwLjEwIHRob3VnaCB0byAxMS4wMCwgYW5kCi5TeSA5OApmb3IgSFAtVVggMTEu MTEgYW5kIGxhdGVyLgouUHAKLkZsIG11bml4PTkzCnByb3ZpZGVzIHRoZSBzYW1lIHByZWRl ZmluZXMgYXMgR0NDIDMuMyBhbmQgMy40LgouRmwgbXVuaXg9OTUKcHJvdmlkZXMgYWRkaXRp b25hbCBwcmVkZWZpbmVzIGZvcgouVmEgWE9QRU5fVU5JWAphbmQKLlZhIF9YT1BFTl9TT1VS Q0VfRVhURU5ERUQgLAphbmQgdGhlIHN0YXJ0ZmlsZQouUGEgdW5peDk1Lm8gLgouRmwgbXVu aXg9OTgKcHJvdmlkZXMgYWRkaXRpb25hbCBwcmVkZWZpbmVzIGZvcgouVmEgX1hPUEVOX1VO SVggLAouVmEgX1hPUEVOX1NPVVJDRV9FWFRFTkRFRCAsCi5WYSBfSU5DTFVERV9fU1REQ19B MV9TT1VSQ0UKYW5kCi5WYSBfSU5DTFVERV9YT1BFTl9TT1VSQ0VfNTAwICwKYW5kIHRoZSBz dGFydGZpbGUKLlBhIHVuaXg5OC5vIC4KLlBwCkl0IGlzCi5FbSBpbXBvcnRhbnQKdG8gbm90 ZSB0aGF0IHRoaXMgb3B0aW9uIGNoYW5nZXMgdGhlIGludGVyZmFjZXMgZm9yIHZhcmlvdXMg bGlicmFyeSByb3V0aW5lcy4KSXQgYWxzbyBhZmZlY3RzIHRoZSBvcGVyYXRpb25hbCBiZWhh dmlvciBvZiB0aGUgQyBsaWJyYXJ5LgpUaHVzLAouRW0gZXh0cmVtZQpjYXJlIGlzIG5lZWRl ZCBpbiB1c2luZyB0aGlzIG9wdGlvbi4KLlBwCkxpYnJhcnkgY29kZSB0aGF0IGlzIGludGVu ZGVkIHRvIG9wZXJhdGUgd2l0aCBtb3JlIHRoYW4gb25lIFVOSVggc3RhbmRhcmQgbXVzdCB0 ZXN0LCBzZXQgYW5kIHJlc3RvcmUgdGhlIHZhcmlhYmxlCi5FbSBfX3hwZzRfZXh0ZW5kZWRf bWFzawphcyBhcHByb3ByaWF0ZS4KTW9zdCBHTlUgc29mdHdhcmUgZG9lc24ndCBwcm92aWRl IHRoaXMgY2FwYWJpbGl0eS4KLlBwCi5JdCBGbCBub2xpYmRsZApTdXBwcmVzcyB0aGUgZ2Vu ZXJhdGlvbiBvZiBsaW5rIG9wdGlvbnMgdG8gc2VhcmNoIGxpYmRsZC5zbCB3aGVuIHRoZQou Rmwgc3RhdGljCm9wdGlvbiBpcyBzcGVjaWZpZWQgb24gSFAtVVggMTAgYW5kIGxhdGVyLgou UHAKLkl0IEZsIHN0YXRpYwpUaGUgSFAtVVggaW1wbGVtZW50YXRpb24gb2Ygc2V0bG9jYWxl IGluIGxpYmMgaGFzIGEgZGVwZW5kZW5jeSBvbiBsaWJkbGQuc2wuClRoZXJlIGlzbid0IGFu IGFyY2hpdmUgdmVyc2lvbiBvZiBsaWJkbGQuc2wuClRodXMsIHdoZW4gdGhlCi5GbCBzdGF0 aWMKb3B0aW9uIGlzIHNwZWNpZmllZCwgc3BlY2lhbCBsaW5rIG9wdGlvbnMgYXJlIG5lZWRl ZCB0byByZXNvbHZlIHRoaXMgZGVwZW5kZW5jeS4KLlBwCk9uIEhQLVVYIDEwIGFuZCBsYXRl ciwgdGhlIEdDQyBkcml2ZXIgYWRkcyB0aGUgbmVjZXNzYXJ5IG9wdGlvbnMgdG8gbGluayB3 aXRoIGxpYmRsZC5zbCB3aGVuIHRoZQouRmwgc3RhdGljCm9wdGlvbiBpcyBzcGVjaWZpZWQu ClRoaXMgY2F1c2VzIHRoZSByZXN1bHRpbmcgYmluYXJ5IHRvIGJlIGR5bmFtaWMuCk9uIHRo ZSA2NC1iaXQgcG9ydCwgdGhlIGxpbmtlcnMgZ2VuZXJhdGUgZHluYW1pYyBiaW5hcmllcyBi eSBkZWZhdWx0IGluIGFueSBjYXNlLgpUaGUKLkZsIG5vbGliZGxkCm9wdGlvbiBjYW4gYmUg dXNlZCB0byBwcmV2ZW50IHRoZSBHQ0MgZHJpdmVyIGZyb20gYWRkaW5nIHRoZXNlIGxpbmsg b3B0aW9ucy4KLlBwCi5JdCBGbCB0aHJlYWRzCkFkZCBzdXBwb3J0IGZvciBtdWx0aXRocmVh ZGluZyB3aXRoIHRoZQouRW0gZGNlIHRocmVhZApsaWJyYXJ5IHVuZGVyIEhQLVVYLgpUaGlz IG9wdGlvbiBzZXRzIGZsYWdzIGZvciBib3RoIHRoZSBwcmVwcm9jZXNzb3IgYW5kIGxpbmtl ci4KLlBwCi5FbAouSXQgU3kgSW50ZWwgMzg2IGFuZCBBTUQgeDg2LTY0IE9wdGlvbnMKVGhl c2UKLkZsIG0Kb3B0aW9ucyBhcmUgZGVmaW5lZCBmb3IgdGhlIGkzODYgYW5kIHg4Ni02NCBm YW1pbHkgb2YgY29tcHV0ZXJzOgouUHAKLkJsIC10YWcgLXdpZHRoIHh4Ci5JdCBGbCBtdHVu ZT0gTnMgQXIgY3B1LXR5cGUKVHVuZSB0bwouRW0gY3B1LXR5cGUKZXZlcnl0aGluZyBhcHBs aWNhYmxlIGFib3V0IHRoZSBnZW5lcmF0ZWQgY29kZSwgZXhjZXB0IGZvciB0aGUgQUJJIGFu ZCB0aGUgc2V0IG9mIGF2YWlsYWJsZSBpbnN0cnVjdGlvbnMuClRoZSBjaG9pY2VzIGZvcgou RW0gY3B1LXR5cGUKYXJlOgouUHAKLkJsIC10YWcgLXdpZHRoIHh4Ci5JdCBTeSBpMzg2Ck9y aWdpbmFsIEludGVsJ3MgaTM4NiBDUFUuCi5QcAouSXQgU3kgaTQ4NgpJbnRlbCdzIGk0ODYg Q1BVLgooTm8gc2NoZWR1bGluZyBpcyBpbXBsZW1lbnRlZCBmb3IgdGhpcyBjaGlwLikKLlBw Ci5JdCBTeSBpNTg2LCBwZW50aXVtCkludGVsIFBlbnRpdW0gQ1BVIHdpdGggbm8gTU1YIHN1 cHBvcnQuCi5QcAouSXQgU3kgcGVudGl1bS1tbXgKSW50ZWwgUGVudGl1bU1NWCBDUFUgYmFz ZWQgb24gUGVudGl1bSBjb3JlIHdpdGggTU1YIGluc3RydWN0aW9uIHNldCBzdXBwb3J0Lgou UHAKLkl0IFN5IGk2ODYsIHBlbnRpdW1wcm8KSW50ZWwgUGVudGl1bVBybyBDUFUuCi5QcAou SXQgU3kgcGVudGl1bTIKSW50ZWwgUGVudGl1bTIgQ1BVIGJhc2VkIG9uIFBlbnRpdW1Qcm8g Y29yZSB3aXRoIE1NWCBpbnN0cnVjdGlvbiBzZXQgc3VwcG9ydC4KLlBwCi5JdCBTeSBwZW50 aXVtMywgcGVudGl1bTNtCkludGVsIFBlbnRpdW0zIENQVSBiYXNlZCBvbiBQZW50aXVtUHJv IGNvcmUgd2l0aCBNTVggYW5kIFNTRSBpbnN0cnVjdGlvbiBzZXQgc3VwcG9ydC4KLlBwCi5J dCBTeSBwZW50aXVtLW0KTG93IHBvd2VyIHZlcnNpb24gb2YgSW50ZWwgUGVudGl1bTMgQ1BV IHdpdGggTU1YLCBTU0UgYW5kIFNTRTIgaW5zdHJ1Y3Rpb24gc2V0IHN1cHBvcnQuClVzZWQg YnkgQ2VudHJpbm8gbm90ZWJvb2tzLgouUHAKLkl0IFN5IHBlbnRpdW00LCBwZW50aXVtNG0K SW50ZWwgUGVudGl1bTQgQ1BVIHdpdGggTU1YLCBTU0UgYW5kIFNTRTIgaW5zdHJ1Y3Rpb24g c2V0IHN1cHBvcnQuCi5QcAouSXQgU3kgcHJlc2NvdHQKSW1wcm92ZWQgdmVyc2lvbiBvZiBJ bnRlbCBQZW50aXVtNCBDUFUgd2l0aCBNTVgsIFNTRSwgU1NFMiBhbmQgU1NFMyBpbnN0cnVj dGlvbiBzZXQgc3VwcG9ydC4KLlBwCi5JdCBTeSBub2NvbmEKSW1wcm92ZWQgdmVyc2lvbiBv ZiBJbnRlbCBQZW50aXVtNCBDUFUgd2l0aCA2NC1iaXQgZXh0ZW5zaW9ucywgTU1YLCBTU0Us IFNTRTIgYW5kIFNTRTMgaW5zdHJ1Y3Rpb24gc2V0IHN1cHBvcnQuCi5QcAouSXQgU3kgazYK QU1EIEs2IENQVSB3aXRoIE1NWCBpbnN0cnVjdGlvbiBzZXQgc3VwcG9ydC4KLlBwCi5JdCBT eSBrNi0yLCBrNi0zCkltcHJvdmVkIHZlcnNpb25zIG9mIEFNRCBLNiBDUFUgd2l0aCBNTVgg YW5kIDNkTk9XISBpbnN0cnVjdGlvbiBzZXQgc3VwcG9ydC4KLlBwCi5JdCBTeSBhdGhsb24s IGF0aGxvbi10YmlyZApBTUQgQXRobG9uIENQVSB3aXRoIE1NWCwgM2ROT1chLCBlbmhhbmNl ZCAzZE5PVyEgYW5kIFNTRSBwcmVmZXRjaCBpbnN0cnVjdGlvbnMgc3VwcG9ydC4KLlBwCi5J dCBTeSBhdGhsb24tNCwgYXRobG9uLXhwLCBhdGhsb24tbXAKSW1wcm92ZWQgQU1EIEF0aGxv biBDUFUgd2l0aCBNTVgsIDNkTk9XISwgZW5oYW5jZWQgM2ROT1chIGFuZCBmdWxsIFNTRSBp bnN0cnVjdGlvbiBzZXQgc3VwcG9ydC4KLlBwCi5JdCBTeSBrOCwgb3B0ZXJvbiwgYXRobG9u NjQsIGF0aGxvbi1meApBTUQgSzggY29yZSBiYXNlZCBDUFVzIHdpdGggeDg2LTY0IGluc3Ry dWN0aW9uIHNldCBzdXBwb3J0LgooVGhpcyBzdXBlcnNldHMgTU1YLCBTU0UsIFNTRTIsIDNk Tk9XISwgZW5oYW5jZWQgM2ROT1chIGFuZCA2NC1iaXQgaW5zdHJ1Y3Rpb24gc2V0IGV4dGVu c2lvbnMuKQouUHAKLkl0IFN5IHdpbmNoaXAtYzYKSURUIFdpbmNoaXAgQzYgQ1BVLCBkZWFs dCBpbiBzYW1lIHdheSBhcyBpNDg2IHdpdGggYWRkaXRpb25hbCBNTVggaW5zdHJ1Y3Rpb24g c2V0IHN1cHBvcnQuCi5QcAouSXQgU3kgd2luY2hpcDIKSURUIFdpbmNoaXAyIENQVSwgZGVh bHQgaW4gc2FtZSB3YXkgYXMgaTQ4NiB3aXRoIGFkZGl0aW9uYWwgTU1YIGFuZCAzZE5PVyEg aW5zdHJ1Y3Rpb24gc2V0IHN1cHBvcnQuCi5QcAouSXQgU3kgYzMKVmlhIEMzIENQVSB3aXRo IE1NWCBhbmQgM2ROT1chIGluc3RydWN0aW9uIHNldCBzdXBwb3J0LgooTm8gc2NoZWR1bGlu ZyBpcyBpbXBsZW1lbnRlZCBmb3IgdGhpcyBjaGlwLikKLlBwCi5JdCBTeSBjMy0yClZpYSBD My0yIENQVSB3aXRoIE1NWCBhbmQgU1NFIGluc3RydWN0aW9uIHNldCBzdXBwb3J0LgooTm8g c2NoZWR1bGluZyBpcyBpbXBsZW1lbnRlZCBmb3IgdGhpcyBjaGlwLikKLlBwCi5FbApXaGls ZSBwaWNraW5nIGEgc3BlY2lmaWMKLkVtIGNwdS10eXBlCndpbGwgc2NoZWR1bGUgdGhpbmdz IGFwcHJvcHJpYXRlbHkgZm9yIHRoYXQgcGFydGljdWxhciBjaGlwLCB0aGUgY29tcGlsZXIg d2lsbCBub3QgZ2VuZXJhdGUgYW55IGNvZGUgdGhhdCBkb2VzIG5vdCBydW4gb24gdGhlIGkz ODYgd2l0aG91dCB0aGUKLkZsIG1hcmNoPSBOcyBBciBjcHUtdHlwZQpvcHRpb24gYmVpbmcg dXNlZC4KLlBwCi5JdCBGbCBtYXJjaD0gTnMgQXIgY3B1LXR5cGUKR2VuZXJhdGUgaW5zdHJ1 Y3Rpb25zIGZvciB0aGUgbWFjaGluZSB0eXBlCi5FbSBjcHUtdHlwZSAuClRoZSBjaG9pY2Vz IGZvcgouRW0gY3B1LXR5cGUKYXJlIHRoZSBzYW1lIGFzIGZvcgouRmwgbXR1bmUgLgpNb3Jl b3Zlciwgc3BlY2lmeWluZwouRmwgbWFyY2g9IE5zIEFyIGNwdS10eXBlCmltcGxpZXMKLkZs IG10dW5lPSBOcyBBciBjcHUtdHlwZSAuCi5QcAouSXQgRmwgbWNwdT0gTnMgQXIgY3B1LXR5 cGUKQSBkZXByZWNhdGVkIHN5bm9ueW0gZm9yCi5GbCBtdHVuZSAuCi5QcAouSXQgRmwgbTM4 NgouSXQgRmwgbTQ4NgouSXQgRmwgbXBlbnRpdW0KLkl0IEZsIG1wZW50aXVtcHJvClRoZXNl IG9wdGlvbnMgYXJlIHN5bm9ueW1zIGZvcgouRmwgbXR1bmU9aTM4NiAsCi5GbCBtdHVuZT1p NDg2ICwKLkZsIG10dW5lPXBlbnRpdW0gLAphbmQKLkZsIG10dW5lPXBlbnRpdW1wcm8KcmVz cGVjdGl2ZWx5LgpUaGVzZSBzeW5vbnltcyBhcmUgZGVwcmVjYXRlZC4KLlBwCi5JdCBGbCBt ZnBtYXRoPSBOcyBBciB1bml0CkdlbmVyYXRlIGZsb2F0aW5nIHBvaW50IGFyaXRobWV0aWNz IGZvciBzZWxlY3RlZCB1bml0Ci5FbSB1bml0IC4KVGhlIGNob2ljZXMgZm9yCi5FbSB1bml0 CmFyZToKLlBwCi5CbCAtdGFnIC13aWR0aCB4eAouSXQgU3kgMzg3IE5zClVzZSB0aGUgc3Rh bmRhcmQgMzg3IGZsb2F0aW5nIHBvaW50IGNvcHJvY2Vzc29yIHByZXNlbnQgbWFqb3JpdHkg b2YgY2hpcHMgYW5kIGVtdWxhdGVkIG90aGVyd2lzZS4KQ29kZSBjb21waWxlZCB3aXRoIHRo aXMgb3B0aW9uIHdpbGwgcnVuIGFsbW9zdCBldmVyeXdoZXJlLgpUaGUgdGVtcG9yYXJ5IHJl c3VsdHMgYXJlIGNvbXB1dGVkIGluIDgwYml0IHByZWNpc2lvbiBpbnN0ZWFkIG9mIHByZWNp c2lvbiBzcGVjaWZpZWQgYnkgdGhlIHR5cGUgcmVzdWx0aW5nIGluIHNsaWdodGx5IGRpZmZl cmVudCByZXN1bHRzIGNvbXBhcmVkIHRvIG1vc3Qgb2Ygb3RoZXIgY2hpcHMuClNlZQouRmwg ZmZsb2F0LXN0b3JlCmZvciBtb3JlIGRldGFpbGVkIGRlc2NyaXB0aW9uLgouUHAKVGhpcyBp cyB0aGUgZGVmYXVsdCBjaG9pY2UgZm9yIGkzODYgY29tcGlsZXIuCi5QcAouSXQgU3kgc3Nl IE5zClVzZSBzY2FsYXIgZmxvYXRpbmcgcG9pbnQgaW5zdHJ1Y3Rpb25zIHByZXNlbnQgaW4g dGhlIFNTRSBpbnN0cnVjdGlvbiBzZXQuClRoaXMgaW5zdHJ1Y3Rpb24gc2V0IGlzIHN1cHBv cnRlZCBieSBQZW50aXVtMyBhbmQgbmV3ZXIgY2hpcHMsIGluIHRoZSBBTUQgbGluZSBieSBB dGhsb24tNCwgQXRobG9uLXhwIGFuZCBBdGhsb24tbXAgY2hpcHMuClRoZSBlYXJsaWVyIHZl cnNpb24gb2YgU1NFIGluc3RydWN0aW9uIHNldCBzdXBwb3J0cyBvbmx5IHNpbmdsZSBwcmVj aXNpb24gYXJpdGhtZXRpY3MsIHRodXMgdGhlIGRvdWJsZSBhbmQgZXh0ZW5kZWQgcHJlY2lz aW9uIGFyaXRobWV0aWNzIGlzIHN0aWxsIGRvbmUgdXNpbmcgMzg3LgpMYXRlciB2ZXJzaW9u LCBwcmVzZW50IG9ubHkgaW4gUGVudGl1bTQgYW5kIHRoZSBmdXR1cmUgQU1EIHg4Ni02NCBj aGlwcyBzdXBwb3J0cyBkb3VibGUgcHJlY2lzaW9uIGFyaXRobWV0aWNzIHRvby4KLlBwCkZv ciB0aGUgaTM4NiBjb21waWxlciwgeW91IG5lZWQgdG8gdXNlCi5GbCBtYXJjaD0gTnMgQXIg Y3B1LXR5cGUgLAouRmwgbXNzZQpvcgouRmwgbXNzZTIKc3dpdGNoZXMgdG8gZW5hYmxlIFNT RSBleHRlbnNpb25zIGFuZCBtYWtlIHRoaXMgb3B0aW9uIGVmZmVjdGl2ZS4KRm9yIHRoZSB4 ODYtNjQgY29tcGlsZXIsIHRoZXNlIGV4dGVuc2lvbnMgYXJlIGVuYWJsZWQgYnkgZGVmYXVs dC4KLlBwClRoZSByZXN1bHRpbmcgY29kZSBzaG91bGQgYmUgY29uc2lkZXJhYmx5IGZhc3Rl ciBpbiB0aGUgbWFqb3JpdHkgb2YgY2FzZXMgYW5kIGF2b2lkIHRoZSBudW1lcmljYWwgaW5z dGFiaWxpdHkgcHJvYmxlbXMgb2YgMzg3IGNvZGUsIGJ1dCBtYXkgYnJlYWsgc29tZSBleGlz dGluZyBjb2RlIHRoYXQgZXhwZWN0cyB0ZW1wb3JhcmllcyB0byBiZSA4MGJpdC4KLlBwClRo aXMgaXMgdGhlIGRlZmF1bHQgY2hvaWNlIGZvciB0aGUgeDg2LTY0IGNvbXBpbGVyLgouUHAK Lkl0IFN5IHNzZSwzODcgTnMKQXR0ZW1wdCB0byB1dGlsaXplIGJvdGggaW5zdHJ1Y3Rpb24g c2V0cyBhdCBvbmNlLgpUaGlzIGVmZmVjdGl2ZWx5IGRvdWJsZSB0aGUgYW1vdW50IG9mIGF2 YWlsYWJsZSByZWdpc3RlcnMgYW5kIG9uIGNoaXBzIHdpdGggc2VwYXJhdGUgZXhlY3V0aW9u IHVuaXRzIGZvciAzODcgYW5kIFNTRSB0aGUgZXhlY3V0aW9uIHJlc291cmNlcyB0b28uClVz ZSB0aGlzIG9wdGlvbiB3aXRoIGNhcmUsIGFzIGl0IGlzIHN0aWxsIGV4cGVyaW1lbnRhbCwg YmVjYXVzZSB0aGUgR0NDIHJlZ2lzdGVyIGFsbG9jYXRvciBkb2VzIG5vdCBtb2RlbCBzZXBh cmF0ZSBmdW5jdGlvbmFsIHVuaXRzIHdlbGwgcmVzdWx0aW5nIGluIGluc3RhYmxlIHBlcmZv cm1hbmNlLgouUHAKLkVsCi5JdCBGbCBtYXNtPSBOcyBBciBkaWFsZWN0Ck91dHB1dCBhc20g aW5zdHJ1Y3Rpb25zIHVzaW5nIHNlbGVjdGVkCi5FbSBkaWFsZWN0IC4KU3VwcG9ydGVkIGNo b2ljZXMgYXJlCi5TeSBpbnRlbApvcgouU3kgYXR0Cih0aGUgZGVmYXVsdCBvbmUpLgpEYXJ3 aW4gZG9lcyBub3Qgc3VwcG9ydAouU3kgaW50ZWwgLgouUHAKLkl0IEZsIG1pZWVlLWZwCi5J dCBGbCBtbm8taWVlZS1mcApDb250cm9sIHdoZXRoZXIgb3Igbm90IHRoZSBjb21waWxlciB1 c2VzIElFRUUgZmxvYXRpbmcgcG9pbnQgY29tcGFyaXNvbnMuClRoZXNlIGhhbmRsZSBjb3Jy ZWN0bHkgdGhlIGNhc2Ugd2hlcmUgdGhlIHJlc3VsdCBvZiBhIGNvbXBhcmlzb24gaXMgdW5v cmRlcmVkLgouUHAKLkl0IEZsIG1zb2Z0LWZsb2F0CkdlbmVyYXRlIG91dHB1dCBjb250YWlu aW5nIGxpYnJhcnkgY2FsbHMgZm9yIGZsb2F0aW5nIHBvaW50LgouU3kgV2FybmluZzoKdGhl IHJlcXVpc2l0ZSBsaWJyYXJpZXMgYXJlIG5vdCBwYXJ0IG9mIEdDQy4KTm9ybWFsbHkgdGhl IGZhY2lsaXRpZXMgb2YgdGhlIG1hY2hpbmUncyB1c3VhbCBDIGNvbXBpbGVyIGFyZSB1c2Vk LCBidXQgdGhpcyBjYW4ndCBiZSBkb25lIGRpcmVjdGx5IGluIGNyb3NzLWNvbXBpbGF0aW9u LgpZb3UgbXVzdCBtYWtlIHlvdXIgb3duIGFycmFuZ2VtZW50cyB0byBwcm92aWRlIHN1aXRh YmxlIGxpYnJhcnkgZnVuY3Rpb25zIGZvciBjcm9zcy1jb21waWxhdGlvbi4KLlBwCk9uIG1h Y2hpbmVzIHdoZXJlIGEgZnVuY3Rpb24gcmV0dXJucyBmbG9hdGluZyBwb2ludCByZXN1bHRz IGluIHRoZSA4MDM4NyByZWdpc3RlciBzdGFjaywgc29tZSBmbG9hdGluZyBwb2ludCBvcGNv ZGVzIG1heSBiZSBlbWl0dGVkIGV2ZW4gaWYKLkZsIG1zb2Z0LWZsb2F0CmlzIHVzZWQuCi5Q cAouSXQgRmwgbW5vLWZwLXJldC1pbi0zODcKRG8gbm90IHVzZSB0aGUgRlBVIHJlZ2lzdGVy cyBmb3IgcmV0dXJuIHZhbHVlcyBvZiBmdW5jdGlvbnMuCi5QcApUaGUgdXN1YWwgY2FsbGlu ZyBjb252ZW50aW9uIGhhcyBmdW5jdGlvbnMgcmV0dXJuIHZhbHVlcyBvZiB0eXBlcwouVmEg ZmxvYXQKYW5kCi5WYSBkb3VibGUKaW4gYW4gRlBVIHJlZ2lzdGVyLCBldmVuIGlmIHRoZXJl IGlzIG5vIEZQVS4KVGhlIGlkZWEgaXMgdGhhdCB0aGUgb3BlcmF0aW5nIHN5c3RlbSBzaG91 bGQgZW11bGF0ZSBhbiBGUFUuCi5QcApUaGUgb3B0aW9uCi5GbCBtbm8tZnAtcmV0LWluLTM4 NwpjYXVzZXMgc3VjaCB2YWx1ZXMgdG8gYmUgcmV0dXJuZWQgaW4gb3JkaW5hcnkgQ1BVIHJl Z2lzdGVycyBpbnN0ZWFkLgouUHAKLkl0IEZsIG1uby1mYW5jeS1tYXRoLTM4NwpTb21lIDM4 NyBlbXVsYXRvcnMgZG8gbm90IHN1cHBvcnQgdGhlCi5WYSBzaW4gLAouVmEgY29zCmFuZAou VmEgc3FydAppbnN0cnVjdGlvbnMgZm9yIHRoZSAzODcuClNwZWNpZnkgdGhpcyBvcHRpb24g dG8gYXZvaWQgZ2VuZXJhdGluZyB0aG9zZSBpbnN0cnVjdGlvbnMuClRoaXMgb3B0aW9uIGlz IHRoZSBkZWZhdWx0IG9uIEZyZWVCU0QsIE9wZW5CU0QgYW5kIE5ldEJTRC4KVGhpcyBvcHRp b24gaXMgb3ZlcnJpZGRlbiB3aGVuCi5GbCBtYXJjaAppbmRpY2F0ZXMgdGhhdCB0aGUgdGFy Z2V0IGNwdSB3aWxsIGFsd2F5cyBoYXZlIGFuIEZQVSBhbmQgc28gdGhlIGluc3RydWN0aW9u IHdpbGwgbm90IG5lZWQgZW11bGF0aW9uLgpBcyBvZiByZXZpc2lvbiAyLjYuMSwgdGhlc2Ug aW5zdHJ1Y3Rpb25zIGFyZSBub3QgZ2VuZXJhdGVkIHVubGVzcyB5b3UgYWxzbyB1c2UgdGhl Ci5GbCBmdW5zYWZlLW1hdGgtb3B0aW1pemF0aW9ucwpzd2l0Y2guCi5QcAouSXQgRmwgbWFs aWduLWRvdWJsZQouSXQgRmwgbW5vLWFsaWduLWRvdWJsZQpDb250cm9sIHdoZXRoZXIgR0ND IGFsaWducwouVmEgZG91YmxlICwKLlZhIGxvbmcgZG91YmxlICwKYW5kCi5WYSBsb25nIGxv bmcKdmFyaWFibGVzIG9uIGEgdHdvIHdvcmQgYm91bmRhcnkgb3IgYSBvbmUgd29yZCBib3Vu ZGFyeS4KQWxpZ25pbmcKLlZhIGRvdWJsZQp2YXJpYWJsZXMgb24gYSB0d28gd29yZCBib3Vu ZGFyeSB3aWxsIHByb2R1Y2UgY29kZSB0aGF0IHJ1bnMgc29tZXdoYXQgZmFzdGVyIG9uIGEK LlN5IFBlbnRpdW0KYXQgdGhlIGV4cGVuc2Ugb2YgbW9yZSBtZW1vcnkuCi5QcApPbiB4ODYt NjQsCi5GbCBtYWxpZ24tZG91YmxlCmlzIGVuYWJsZWQgYnkgZGVmYXVsdC4KLlBwCi5TeSBX YXJuaW5nOgppZiB5b3UgdXNlIHRoZQouRmwgbWFsaWduLWRvdWJsZQpzd2l0Y2gsIHN0cnVj dHVyZXMgY29udGFpbmluZyB0aGUgYWJvdmUgdHlwZXMgd2lsbCBiZSBhbGlnbmVkIGRpZmZl cmVudGx5IHRoYW4gdGhlIHB1Ymxpc2hlZCBhcHBsaWNhdGlvbiBiaW5hcnkgaW50ZXJmYWNl IHNwZWNpZmljYXRpb25zIGZvciB0aGUgMzg2IGFuZCB3aWxsIG5vdCBiZSBiaW5hcnkgY29t cGF0aWJsZSB3aXRoIHN0cnVjdHVyZXMgaW4gY29kZSBjb21waWxlZCB3aXRob3V0IHRoYXQg c3dpdGNoLgouUHAKLkl0IEZsIG05NmJpdC1sb25nLWRvdWJsZQouSXQgRmwgbTEyOGJpdC1s b25nLWRvdWJsZQpUaGVzZSBzd2l0Y2hlcyBjb250cm9sIHRoZSBzaXplIG9mCi5WYSBsb25n IGRvdWJsZQp0eXBlLgpUaGUgaTM4NiBhcHBsaWNhdGlvbiBiaW5hcnkgaW50ZXJmYWNlIHNw ZWNpZmllcyB0aGUgc2l6ZSB0byBiZSA5NiBiaXRzLCBzbwouRmwgbTk2Yml0LWxvbmctZG91 YmxlCmlzIHRoZSBkZWZhdWx0IGluIDMyIGJpdCBtb2RlLgouUHAKTW9kZXJuIGFyY2hpdGVj dHVyZXMgKFBlbnRpdW0gYW5kIG5ld2VyKSB3b3VsZCBwcmVmZXIKLlZhIGxvbmcgZG91Ymxl CnRvIGJlIGFsaWduZWQgdG8gYW4gOCBvciAxNiBieXRlIGJvdW5kYXJ5LgpJbiBhcnJheXMg b3Igc3RydWN0dXJlcyBjb25mb3JtaW5nIHRvIHRoZSBBQkksIHRoaXMgd291bGQgbm90IGJl IHBvc3NpYmxlLgpTbyBzcGVjaWZ5aW5nIGEKLkZsIG0xMjhiaXQtbG9uZy1kb3VibGUKd2ls bCBhbGlnbgouVmEgbG9uZyBkb3VibGUKdG8gYSAxNiBieXRlIGJvdW5kYXJ5IGJ5IHBhZGRp bmcgdGhlCi5WYSBsb25nIGRvdWJsZQp3aXRoIGFuIGFkZGl0aW9uYWwgMzIgYml0IHplcm8u Ci5QcApJbiB0aGUgeDg2LTY0IGNvbXBpbGVyLAouRmwgbTEyOGJpdC1sb25nLWRvdWJsZQpp cyB0aGUgZGVmYXVsdCBjaG9pY2UgYXMgaXRzIEFCSSBzcGVjaWZpZXMgdGhhdAouVmEgbG9u ZyBkb3VibGUKaXMgdG8gYmUgYWxpZ25lZCBvbiAxNiBieXRlIGJvdW5kYXJ5LgouUHAKTm90 aWNlIHRoYXQgbmVpdGhlciBvZiB0aGVzZSBvcHRpb25zIGVuYWJsZSBhbnkgZXh0cmEgcHJl Y2lzaW9uIG92ZXIgdGhlIHg4NyBzdGFuZGFyZCBvZiA4MCBiaXRzIGZvciBhCi5WYSBsb25n IGRvdWJsZSAuCi5QcAouU3kgV2FybmluZzoKaWYgeW91IG92ZXJyaWRlIHRoZSBkZWZhdWx0 IHZhbHVlIGZvciB5b3VyIHRhcmdldCBBQkksIHRoZSBzdHJ1Y3R1cmVzIGFuZCBhcnJheXMg Y29udGFpbmluZwouVmEgbG9uZyBkb3VibGUKdmFyaWFibGVzIHdpbGwgY2hhbmdlIHRoZWly IHNpemUgYXMgd2VsbCBhcyBmdW5jdGlvbiBjYWxsaW5nIGNvbnZlbnRpb24gZm9yIGZ1bmN0 aW9uIHRha2luZwouVmEgbG9uZyBkb3VibGUKd2lsbCBiZSBtb2RpZmllZC4KSGVuY2UgdGhl eSB3aWxsIG5vdCBiZSBiaW5hcnkgY29tcGF0aWJsZSB3aXRoIGFycmF5cyBvciBzdHJ1Y3R1 cmVzIGluIGNvZGUgY29tcGlsZWQgd2l0aG91dCB0aGF0IHN3aXRjaC4KLlBwCi5JdCBGbCBt bWxhcmdlLWRhdGEtdGhyZXNob2xkPSBOcyBBciBudW1iZXIKV2hlbgouRmwgbWNtb2RlbD1t ZWRpdW0KaXMgc3BlY2lmaWVkLCB0aGUgZGF0YSBncmVhdGVyIHRoYW4KLkVtIHRocmVzaG9s ZAphcmUgcGxhY2VkIGluIGxhcmdlIGRhdGEgc2VjdGlvbi4KVGhpcyB2YWx1ZSBtdXN0IGJl IHRoZSBzYW1lIGFjcm9zcyBhbGwgb2JqZWN0IGxpbmtlZCBpbnRvIHRoZSBiaW5hcnkgYW5k IGRlZmF1bHRzIHRvIDY1NTM1LgouUHAKLkl0IEZsIG1zdnIzLXNobGliCi5JdCBGbCBtbm8t c3ZyMy1zaGxpYgpDb250cm9sIHdoZXRoZXIgR0NDIHBsYWNlcyB1bmluaXRpYWxpemVkIGxv Y2FsIHZhcmlhYmxlcyBpbnRvIHRoZQouVmEgYnNzCm9yCi5WYSBkYXRhCnNlZ21lbnRzLgou RmwgbXN2cjMtc2hsaWIKcGxhY2VzIHRoZW0gaW50bwouVmEgYnNzIC4KVGhlc2Ugb3B0aW9u cyBhcmUgbWVhbmluZ2Z1bCBvbmx5IG9uIFN5c3RlbSBWIFJlbGVhc2UgMy4KLlBwCi5JdCBG bCBtcnRkClVzZSBhIGRpZmZlcmVudCBmdW5jdGlvbi1jYWxsaW5nIGNvbnZlbnRpb24sIGlu IHdoaWNoIGZ1bmN0aW9ucyB0aGF0IHRha2UgYSBmaXhlZCBudW1iZXIgb2YgYXJndW1lbnRz IHJldHVybiB3aXRoIHRoZQouVmEgcmV0Ci5FbSBudW0KaW5zdHJ1Y3Rpb24sIHdoaWNoIHBv cHMgdGhlaXIgYXJndW1lbnRzIHdoaWxlIHJldHVybmluZy4KVGhpcyBzYXZlcyBvbmUgaW5z dHJ1Y3Rpb24gaW4gdGhlIGNhbGxlciBzaW5jZSB0aGVyZSBpcyBubyBuZWVkIHRvIHBvcCB0 aGUgYXJndW1lbnRzIHRoZXJlLgouUHAKWW91IGNhbiBzcGVjaWZ5IHRoYXQgYW4gaW5kaXZp ZHVhbCBmdW5jdGlvbiBpcyBjYWxsZWQgd2l0aCB0aGlzIGNhbGxpbmcgc2VxdWVuY2Ugd2l0 aCB0aGUgZnVuY3Rpb24gYXR0cmlidXRlCi5TeSBzdGRjYWxsIC4KWW91IGNhbiBhbHNvIG92 ZXJyaWRlIHRoZQouRmwgbXJ0ZApvcHRpb24gYnkgdXNpbmcgdGhlIGZ1bmN0aW9uIGF0dHJp YnV0ZQouU3kgY2RlY2wgLgouUHAKLlN5IFdhcm5pbmc6CnRoaXMgY2FsbGluZyBjb252ZW50 aW9uIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBvbmUgbm9ybWFsbHkgdXNlZCBvbiBVbml4 LCBzbyB5b3UgY2Fubm90IHVzZSBpdCBpZiB5b3UgbmVlZCB0byBjYWxsIGxpYnJhcmllcyBj b21waWxlZCB3aXRoIHRoZSBVbml4IGNvbXBpbGVyLgouUHAKQWxzbywgeW91IG11c3QgcHJv dmlkZSBmdW5jdGlvbiBwcm90b3R5cGVzIGZvciBhbGwgZnVuY3Rpb25zIHRoYXQgdGFrZSB2 YXJpYWJsZSBudW1iZXJzIG9mIGFyZ3VtZW50cyAoaW5jbHVkaW5nCi5WYSBwcmludGYgKSA7 Cm90aGVyd2lzZSBpbmNvcnJlY3QgY29kZSB3aWxsIGJlIGdlbmVyYXRlZCBmb3IgY2FsbHMg dG8gdGhvc2UgZnVuY3Rpb25zLgouUHAKSW4gYWRkaXRpb24sIHNlcmlvdXNseSBpbmNvcnJl Y3QgY29kZSB3aWxsIHJlc3VsdCBpZiB5b3UgY2FsbCBhIGZ1bmN0aW9uIHdpdGggdG9vIG1h bnkgYXJndW1lbnRzLgooTm9ybWFsbHksIGV4dHJhIGFyZ3VtZW50cyBhcmUgaGFybWxlc3Ns eSBpZ25vcmVkLikKLlBwCi5JdCBGbCBtcmVncGFybT0gTnMgQXIgbnVtCkNvbnRyb2wgaG93 IG1hbnkgcmVnaXN0ZXJzIGFyZSB1c2VkIHRvIHBhc3MgaW50ZWdlciBhcmd1bWVudHMuCkJ5 IGRlZmF1bHQsIG5vIHJlZ2lzdGVycyBhcmUgdXNlZCB0byBwYXNzIGFyZ3VtZW50cywgYW5k IGF0IG1vc3QgMyByZWdpc3RlcnMgY2FuIGJlIHVzZWQuCllvdSBjYW4gY29udHJvbCB0aGlz IGJlaGF2aW9yIGZvciBhIHNwZWNpZmljIGZ1bmN0aW9uIGJ5IHVzaW5nIHRoZSBmdW5jdGlv biBhdHRyaWJ1dGUKLlN5IHJlZ3Bhcm0gLgouUHAKLlN5IFdhcm5pbmc6CmlmIHlvdSB1c2Ug dGhpcyBzd2l0Y2gsIGFuZAouRW0gbnVtCmlzIG5vbnplcm8sIHRoZW4geW91IG11c3QgYnVp bGQgYWxsIG1vZHVsZXMgd2l0aCB0aGUgc2FtZSB2YWx1ZSwgaW5jbHVkaW5nIGFueSBsaWJy YXJpZXMuClRoaXMgaW5jbHVkZXMgdGhlIHN5c3RlbSBsaWJyYXJpZXMgYW5kIHN0YXJ0dXAg bW9kdWxlcy4KLlBwCi5JdCBGbCBtc3NlcmVncGFybQpVc2UgU1NFIHJlZ2lzdGVyIHBhc3Np bmcgY29udmVudGlvbnMgZm9yIGZsb2F0IGFuZCBkb3VibGUgYXJndW1lbnRzIGFuZCByZXR1 cm4gdmFsdWVzLgpZb3UgY2FuIGNvbnRyb2wgdGhpcyBiZWhhdmlvciBmb3IgYSBzcGVjaWZp YyBmdW5jdGlvbiBieSB1c2luZyB0aGUgZnVuY3Rpb24gYXR0cmlidXRlCi5TeSBzc2VyZWdw YXJtIC4KLlBwCi5TeSBXYXJuaW5nOgppZiB5b3UgdXNlIHRoaXMgc3dpdGNoIHRoZW4geW91 IG11c3QgYnVpbGQgYWxsIG1vZHVsZXMgd2l0aCB0aGUgc2FtZSB2YWx1ZSwgaW5jbHVkaW5n IGFueSBsaWJyYXJpZXMuClRoaXMgaW5jbHVkZXMgdGhlIHN5c3RlbSBsaWJyYXJpZXMgYW5k IHN0YXJ0dXAgbW9kdWxlcy4KLlBwCi5JdCBGbCBtcHJlZmVycmVkLXN0YWNrLWJvdW5kYXJ5 PSBOcyBBciBudW0KQXR0ZW1wdCB0byBrZWVwIHRoZSBzdGFjayBib3VuZGFyeSBhbGlnbmVk IHRvIGEgMiByYWlzZWQgdG8KLkVtIG51bQpieXRlIGJvdW5kYXJ5LgpJZgouRmwgbXByZWZl cnJlZC1zdGFjay1ib3VuZGFyeQppcyBub3Qgc3BlY2lmaWVkLCB0aGUgZGVmYXVsdCBpcyA0 ICgxNiBieXRlcyBvciAxMjggYml0cykuCi5QcApPbiBQZW50aXVtIGFuZCBQZW50aXVtUHJv LAouVmEgZG91YmxlCmFuZAouVmEgbG9uZyBkb3VibGUKdmFsdWVzIHNob3VsZCBiZSBhbGln bmVkIHRvIGFuIDggYnl0ZSBib3VuZGFyeSAoc2VlCi5GbCBtYWxpZ24tZG91YmxlICkKb3Ig c3VmZmVyIHNpZ25pZmljYW50IHJ1biB0aW1lIHBlcmZvcm1hbmNlIHBlbmFsdGllcy4KT24g UGVudGl1bSBJSUksIHRoZSBTdHJlYW1pbmcgU0lNRCBFeHRlbnNpb24gKFNTRSkgZGF0YSB0 eXBlCi5WYSBfX20xMjgKbWF5IG5vdCB3b3JrIHByb3Blcmx5IGlmIGl0IGlzIG5vdCAxNiBi eXRlIGFsaWduZWQuCi5QcApUbyBlbnN1cmUgcHJvcGVyIGFsaWdubWVudCBvZiB0aGlzIHZh bHVlcyBvbiB0aGUgc3RhY2ssIHRoZSBzdGFjayBib3VuZGFyeSBtdXN0IGJlIGFzIGFsaWdu ZWQgYXMgdGhhdCByZXF1aXJlZCBieSBhbnkgdmFsdWUgc3RvcmVkIG9uIHRoZSBzdGFjay4K RnVydGhlciwgZXZlcnkgZnVuY3Rpb24gbXVzdCBiZSBnZW5lcmF0ZWQgc3VjaCB0aGF0IGl0 IGtlZXBzIHRoZSBzdGFjayBhbGlnbmVkLgpUaHVzIGNhbGxpbmcgYSBmdW5jdGlvbiBjb21w aWxlZCB3aXRoIGEgaGlnaGVyIHByZWZlcnJlZCBzdGFjayBib3VuZGFyeSBmcm9tIGEgZnVu Y3Rpb24gY29tcGlsZWQgd2l0aCBhIGxvd2VyIHByZWZlcnJlZCBzdGFjayBib3VuZGFyeSB3 aWxsIG1vc3QgbGlrZWx5IG1pc2FsaWduIHRoZSBzdGFjay4KSXQgaXMgcmVjb21tZW5kZWQg dGhhdCBsaWJyYXJpZXMgdGhhdCB1c2UgY2FsbGJhY2tzIGFsd2F5cyB1c2UgdGhlIGRlZmF1 bHQgc2V0dGluZy4KLlBwClRoaXMgZXh0cmEgYWxpZ25tZW50IGRvZXMgY29uc3VtZSBleHRy YSBzdGFjayBzcGFjZSwgYW5kIGdlbmVyYWxseSBpbmNyZWFzZXMgY29kZSBzaXplLgpDb2Rl IHRoYXQgaXMgc2Vuc2l0aXZlIHRvIHN0YWNrIHNwYWNlIHVzYWdlLCBzdWNoIGFzIGVtYmVk ZGVkIHN5c3RlbXMgYW5kIG9wZXJhdGluZyBzeXN0ZW0ga2VybmVscywgbWF5IHdhbnQgdG8g cmVkdWNlIHRoZSBwcmVmZXJyZWQgYWxpZ25tZW50IHRvCi5GbCBtcHJlZmVycmVkLXN0YWNr LWJvdW5kYXJ5PTIgLgouUHAKLkl0IEZsIG1tbXgKLkl0IEZsIG1uby1tbXgKLkl0IEZsIG1z c2UKLkl0IEZsIG1uby1zc2UKLkl0IEZsIG1zc2UyCi5JdCBGbCBtbm8tc3NlMgouSXQgRmwg bXNzZTMKLkl0IEZsIG1uby1zc2UzCi5JdCBGbCBtM2Rub3cKLkl0IEZsIG1uby0zZG5vdwpU aGVzZSBzd2l0Y2hlcyBlbmFibGUgb3IgZGlzYWJsZSB0aGUgdXNlIG9mIGluc3RydWN0aW9u cyBpbiB0aGUgTU1YLCBTU0UsIFNTRTIgb3IgM0ROb3chIGV4dGVuZGVkIGluc3RydWN0aW9u IHNldHMuClRoZXNlIGV4dGVuc2lvbnMgYXJlIGFsc28gYXZhaWxhYmxlIGFzIGJ1aWx0LWlu IGZ1bmN0aW9uczogc2VlCi5TeSBYODYgQnVpbHQtaW4gRnVuY3Rpb25zICwKZm9yIGRldGFp bHMgb2YgdGhlIGZ1bmN0aW9ucyBlbmFibGVkIGFuZCBkaXNhYmxlZCBieSB0aGVzZSBzd2l0 Y2hlcy4KLlBwClRvIGhhdmUgU1NFL1NTRTIgaW5zdHJ1Y3Rpb25zIGdlbmVyYXRlZCBhdXRv bWF0aWNhbGx5IGZyb20gZmxvYXRpbmctcG9pbnQgY29kZSAoYXMgb3Bwb3NlZCB0byAzODcg aW5zdHJ1Y3Rpb25zKSwgc2VlCi5GbCBtZnBtYXRoPXNzZSAuCi5QcApUaGVzZSBvcHRpb25z IHdpbGwgZW5hYmxlIEdDQyB0byB1c2UgdGhlc2UgZXh0ZW5kZWQgaW5zdHJ1Y3Rpb25zIGlu IGdlbmVyYXRlZCBjb2RlLCBldmVuIHdpdGhvdXQKLkZsIG1mcG1hdGg9c3NlIC4KQXBwbGlj YXRpb25zIHdoaWNoIHBlcmZvcm0gcnVudGltZSBDUFUgZGV0ZWN0aW9uIG11c3QgY29tcGls ZSBzZXBhcmF0ZSBmaWxlcyBmb3IgZWFjaCBzdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlLCB1c2lu ZyB0aGUgYXBwcm9wcmlhdGUgZmxhZ3MuCkluIHBhcnRpY3VsYXIsIHRoZSBmaWxlIGNvbnRh aW5pbmcgdGhlIENQVSBkZXRlY3Rpb24gY29kZSBzaG91bGQgYmUgY29tcGlsZWQgd2l0aG91 dCB0aGVzZSBvcHRpb25zLgouUHAKLkl0IEZsIG1wdXNoLWFyZ3MKLkl0IEZsIG1uby1wdXNo LWFyZ3MKVXNlIFBVU0ggb3BlcmF0aW9ucyB0byBzdG9yZSBvdXRnb2luZyBwYXJhbWV0ZXJz LgpUaGlzIG1ldGhvZCBpcyBzaG9ydGVyIGFuZCB1c3VhbGx5IGVxdWFsbHkgZmFzdCBhcyBt ZXRob2QgdXNpbmcgU1VCL01PViBvcGVyYXRpb25zIGFuZCBpcyBlbmFibGVkIGJ5IGRlZmF1 bHQuCkluIHNvbWUgY2FzZXMgZGlzYWJsaW5nIGl0IG1heSBpbXByb3ZlIHBlcmZvcm1hbmNl IGJlY2F1c2Ugb2YgaW1wcm92ZWQgc2NoZWR1bGluZyBhbmQgcmVkdWNlZCBkZXBlbmRlbmNp ZXMuCi5QcAouSXQgRmwgbWFjY3VtdWxhdGUtb3V0Z29pbmctYXJncwpJZiBlbmFibGVkLCB0 aGUgbWF4aW11bSBhbW91bnQgb2Ygc3BhY2UgcmVxdWlyZWQgZm9yIG91dGdvaW5nIGFyZ3Vt ZW50cyB3aWxsIGJlIGNvbXB1dGVkIGluIHRoZSBmdW5jdGlvbiBwcm9sb2d1ZS4KVGhpcyBp cyBmYXN0ZXIgb24gbW9zdCBtb2Rlcm4gQ1BVcyBiZWNhdXNlIG9mIHJlZHVjZWQgZGVwZW5k ZW5jaWVzLCBpbXByb3ZlZCBzY2hlZHVsaW5nIGFuZCByZWR1Y2VkIHN0YWNrIHVzYWdlIHdo ZW4gcHJlZmVycmVkIHN0YWNrIGJvdW5kYXJ5IGlzIG5vdCBlcXVhbCB0byAyLgpUaGUgZHJh d2JhY2sgaXMgYSBub3RhYmxlIGluY3JlYXNlIGluIGNvZGUgc2l6ZS4KVGhpcyBzd2l0Y2gg aW1wbGllcwouRmwgbW5vLXB1c2gtYXJncyAuCi5QcAouSXQgRmwgbXRocmVhZHMKU3VwcG9y dCB0aHJlYWQtc2FmZSBleGNlcHRpb24gaGFuZGxpbmcgb24KLlN5IE1pbmd3MzIgLgpDb2Rl IHRoYXQgcmVsaWVzIG9uIHRocmVhZC1zYWZlIGV4Y2VwdGlvbiBoYW5kbGluZyBtdXN0IGNv bXBpbGUgYW5kIGxpbmsgYWxsIGNvZGUgd2l0aCB0aGUKLkZsIG10aHJlYWRzCm9wdGlvbi4K V2hlbiBjb21waWxpbmcsCi5GbCBtdGhyZWFkcwpkZWZpbmVzCi5GbCBEX01UIDsKd2hlbiBs aW5raW5nLCBpdCBsaW5rcyBpbiBhIHNwZWNpYWwgdGhyZWFkIGhlbHBlciBsaWJyYXJ5Ci5G bCBsbWluZ3d0aHJkCndoaWNoIGNsZWFucyB1cCBwZXIgdGhyZWFkIGV4Y2VwdGlvbiBoYW5k bGluZyBkYXRhLgouUHAKLkl0IEZsIG1uby1hbGlnbi1zdHJpbmdvcHMKRG8gbm90IGFsaWdu IGRlc3RpbmF0aW9uIG9mIGlubGluZWQgc3RyaW5nIG9wZXJhdGlvbnMuClRoaXMgc3dpdGNo IHJlZHVjZXMgY29kZSBzaXplIGFuZCBpbXByb3ZlcyBwZXJmb3JtYW5jZSBpbiBjYXNlIHRo ZSBkZXN0aW5hdGlvbiBpcyBhbHJlYWR5IGFsaWduZWQsIGJ1dCBHQ0MgZG9lc24ndCBrbm93 IGFib3V0IGl0LgouUHAKLkl0IEZsIG1pbmxpbmUtYWxsLXN0cmluZ29wcwpCeSBkZWZhdWx0 IEdDQyBpbmxpbmVzIHN0cmluZyBvcGVyYXRpb25zIG9ubHkgd2hlbiBkZXN0aW5hdGlvbiBp cyBrbm93biB0byBiZSBhbGlnbmVkIGF0IGxlYXN0IHRvIDQgYnl0ZSBib3VuZGFyeS4KVGhp cyBlbmFibGVzIG1vcmUgaW5saW5pbmcsIGluY3JlYXNlIGNvZGUgc2l6ZSwgYnV0IG1heSBp bXByb3ZlIHBlcmZvcm1hbmNlIG9mIGNvZGUgdGhhdCBkZXBlbmRzIG9uIGZhc3QgbWVtY3B5 LCBzdHJsZW4gYW5kIG1lbXNldCBmb3Igc2hvcnQgbGVuZ3Rocy4KLlBwCi5JdCBGbCBtb21p dC1sZWFmLWZyYW1lLXBvaW50ZXIKRG9uJ3Qga2VlcCB0aGUgZnJhbWUgcG9pbnRlciBpbiBh IHJlZ2lzdGVyIGZvciBsZWFmIGZ1bmN0aW9ucy4KVGhpcyBhdm9pZHMgdGhlIGluc3RydWN0 aW9ucyB0byBzYXZlLCBzZXQgdXAgYW5kIHJlc3RvcmUgZnJhbWUgcG9pbnRlcnMgYW5kIG1h a2VzIGFuIGV4dHJhIHJlZ2lzdGVyIGF2YWlsYWJsZSBpbiBsZWFmIGZ1bmN0aW9ucy4KVGhl IG9wdGlvbgouRmwgZm9taXQtZnJhbWUtcG9pbnRlcgpyZW1vdmVzIHRoZSBmcmFtZSBwb2lu dGVyIGZvciBhbGwgZnVuY3Rpb25zIHdoaWNoIG1pZ2h0IG1ha2UgZGVidWdnaW5nIGhhcmRl ci4KLlBwCi5JdCBGbCBtdGxzLWRpcmVjdC1zZWctcmVmcwouSXQgRmwgbW5vLXRscy1kaXJl Y3Qtc2VnLXJlZnMKQ29udHJvbHMgd2hldGhlciBUTFMgdmFyaWFibGVzIG1heSBiZSBhY2Nl c3NlZCB3aXRoIG9mZnNldHMgZnJvbSB0aGUgVExTIHNlZ21lbnQgcmVnaXN0ZXIKLlZhICgg JWdzCmZvciAzMi1iaXQsCi5WYSAlZnMKZm9yIDY0LWJpdCksIG9yIHdoZXRoZXIgdGhlIHRo cmVhZCBiYXNlIHBvaW50ZXIgbXVzdCBiZSBhZGRlZC4KV2hldGhlciBvciBub3QgdGhpcyBp cyBsZWdhbCBkZXBlbmRzIG9uIHRoZSBvcGVyYXRpbmcgc3lzdGVtLCBhbmQgd2hldGhlciBp dCBtYXBzIHRoZSBzZWdtZW50IHRvIGNvdmVyIHRoZSBlbnRpcmUgVExTIGFyZWEuCi5QcApG b3Igc3lzdGVtcyB0aGF0IHVzZSBHTlUgbGliYywgdGhlIGRlZmF1bHQgaXMgb24uCi5QcAou RWwKVGhlc2UKLkZsIG0Kc3dpdGNoZXMgYXJlIHN1cHBvcnRlZCBpbiBhZGRpdGlvbiB0byB0 aGUgYWJvdmUgb24gQU1EIHg4Ni02NCBwcm9jZXNzb3JzIGluIDY0LWJpdCBlbnZpcm9ubWVu dHMuCi5QcAouQmwgLXRhZyAtd2lkdGggeHgKLkl0IEZsIG0zMgouSXQgRmwgbTY0CkdlbmVy YXRlIGNvZGUgZm9yIGEgMzItYml0IG9yIDY0LWJpdCBlbnZpcm9ubWVudC4KVGhlIDMyLWJp dCBlbnZpcm9ubWVudCBzZXRzIGludCwgbG9uZyBhbmQgcG9pbnRlciB0byAzMiBiaXRzIGFu ZCBnZW5lcmF0ZXMgY29kZSB0aGF0IHJ1bnMgb24gYW55IGkzODYgc3lzdGVtLgpUaGUgNjQt Yml0IGVudmlyb25tZW50IHNldHMgaW50IHRvIDMyIGJpdHMgYW5kIGxvbmcgYW5kIHBvaW50 ZXIgdG8gNjQgYml0cyBhbmQgZ2VuZXJhdGVzIGNvZGUgZm9yIEFNRCdzIHg4Ni02NCBhcmNo aXRlY3R1cmUuCi5QcAouSXQgRmwgbW5vLXJlZC16b25lCkRvIG5vdCB1c2UgYSBzbyBjYWxs ZWQgcmVkIHpvbmUgZm9yIHg4Ni02NCBjb2RlLgpUaGUgcmVkIHpvbmUgaXMgbWFuZGF0ZWQg YnkgdGhlIHg4Ni02NCBBQkksIGl0IGlzIGEgMTI4LWJ5dGUgYXJlYSBiZXlvbmQgdGhlIGxv Y2F0aW9uIG9mIHRoZSBzdGFjayBwb2ludGVyIHRoYXQgd2lsbCBub3QgYmUgbW9kaWZpZWQg Ynkgc2lnbmFsIG9yIGludGVycnVwdCBoYW5kbGVycyBhbmQgdGhlcmVmb3JlIGNhbiBiZSB1 c2VkIGZvciB0ZW1wb3JhcnkgZGF0YSB3aXRob3V0IGFkanVzdGluZyB0aGUgc3RhY2sgcG9p bnRlci4KVGhlIGZsYWcKLkZsIG1uby1yZWQtem9uZQpkaXNhYmxlcyB0aGlzIHJlZCB6b25l LgouUHAKLkl0IEZsIG1jbW9kZWw9c21hbGwKR2VuZXJhdGUgY29kZSBmb3IgdGhlIHNtYWxs IGNvZGUgbW9kZWw6IHRoZSBwcm9ncmFtIGFuZCBpdHMgc3ltYm9scyBtdXN0IGJlIGxpbmtl ZCBpbiB0aGUgbG93ZXIgMiBHQiBvZiB0aGUgYWRkcmVzcyBzcGFjZS4KUG9pbnRlcnMgYXJl IDY0IGJpdHMuClByb2dyYW1zIGNhbiBiZSBzdGF0aWNhbGx5IG9yIGR5bmFtaWNhbGx5IGxp bmtlZC4KVGhpcyBpcyB0aGUgZGVmYXVsdCBjb2RlIG1vZGVsLgouUHAKLkl0IEZsIG1jbW9k ZWw9a2VybmVsCkdlbmVyYXRlIGNvZGUgZm9yIHRoZSBrZXJuZWwgY29kZSBtb2RlbC4KVGhl IGtlcm5lbCBydW5zIGluIHRoZSBuZWdhdGl2ZSAyIEdCIG9mIHRoZSBhZGRyZXNzIHNwYWNl LgpUaGlzIG1vZGVsIGhhcyB0byBiZSB1c2VkIGZvciBMaW51eCBrZXJuZWwgY29kZS4KLlBw Ci5JdCBGbCBtY21vZGVsPW1lZGl1bQpHZW5lcmF0ZSBjb2RlIGZvciB0aGUgbWVkaXVtIG1v ZGVsOiBUaGUgcHJvZ3JhbSBpcyBsaW5rZWQgaW4gdGhlIGxvd2VyIDIgR0Igb2YgdGhlIGFk ZHJlc3Mgc3BhY2UgYnV0IHN5bWJvbHMgY2FuIGJlIGxvY2F0ZWQgYW55d2hlcmUgaW4gdGhl IGFkZHJlc3Mgc3BhY2UuClByb2dyYW1zIGNhbiBiZSBzdGF0aWNhbGx5IG9yIGR5bmFtaWNh bGx5IGxpbmtlZCwgYnV0IGJ1aWxkaW5nIG9mIHNoYXJlZCBsaWJyYXJpZXMgYXJlIG5vdCBz dXBwb3J0ZWQgd2l0aCB0aGUgbWVkaXVtIG1vZGVsLgouUHAKLkl0IEZsIG1jbW9kZWw9bGFy Z2UKR2VuZXJhdGUgY29kZSBmb3IgdGhlIGxhcmdlIG1vZGVsOiBUaGlzIG1vZGVsIG1ha2Vz IG5vIGFzc3VtcHRpb25zIGFib3V0IGFkZHJlc3NlcyBhbmQgc2l6ZXMgb2Ygc2VjdGlvbnMu CkN1cnJlbnRseSBHQ0MgZG9lcyBub3QgaW1wbGVtZW50IHRoaXMgbW9kZWwuCi5QcAouRWwK Lkl0IFN5IElBLTY0IE9wdGlvbnMKVGhlc2UgYXJlIHRoZQouRmwgbQpvcHRpb25zIGRlZmlu ZWQgZm9yIHRoZSBJbnRlbCBJQS02NCBhcmNoaXRlY3R1cmUuCi5QcAouQmwgLXRhZyAtd2lk dGggeHgKLkl0IEZsIG1iaWctZW5kaWFuCkdlbmVyYXRlIGNvZGUgZm9yIGEgYmlnIGVuZGlh biB0YXJnZXQuClRoaXMgaXMgdGhlIGRlZmF1bHQgZm9yIEhQLVVYLgouUHAKLkl0IEZsIG1s aXR0bGUtZW5kaWFuCkdlbmVyYXRlIGNvZGUgZm9yIGEgbGl0dGxlIGVuZGlhbiB0YXJnZXQu ClRoaXMgaXMgdGhlIGRlZmF1bHQgZm9yIEFJWDUgYW5kIEdOVS9MaW51eC4KLlBwCi5JdCBG bCBtZ251LWFzCi5JdCBGbCBtbm8tZ251LWFzCkdlbmVyYXRlIChvciBkb24ndCkgY29kZSBm b3IgdGhlIEdOVSBhc3NlbWJsZXIuClRoaXMgaXMgdGhlIGRlZmF1bHQuCi5QcAouSXQgRmwg bWdudS1sZAouSXQgRmwgbW5vLWdudS1sZApHZW5lcmF0ZSAob3IgZG9uJ3QpIGNvZGUgZm9y IHRoZSBHTlUgbGlua2VyLgpUaGlzIGlzIHRoZSBkZWZhdWx0LgouUHAKLkl0IEZsIG1uby1w aWMKR2VuZXJhdGUgY29kZSB0aGF0IGRvZXMgbm90IHVzZSBhIGdsb2JhbCBwb2ludGVyIHJl Z2lzdGVyLgpUaGUgcmVzdWx0IGlzIG5vdCBwb3NpdGlvbiBpbmRlcGVuZGVudCBjb2RlLCBh bmQgdmlvbGF0ZXMgdGhlIElBLTY0IEFCSS4KLlBwCi5JdCBGbCBtdm9sYXRpbGUtYXNtLXN0 b3AKLkl0IEZsIG1uby12b2xhdGlsZS1hc20tc3RvcApHZW5lcmF0ZSAob3IgZG9uJ3QpIGEg c3RvcCBiaXQgaW1tZWRpYXRlbHkgYmVmb3JlIGFuZCBhZnRlciB2b2xhdGlsZSBhc20gc3Rh dGVtZW50cy4KLlBwCi5JdCBGbCBtcmVnaXN0ZXItbmFtZXMKLkl0IEZsIG1uby1yZWdpc3Rl ci1uYW1lcwpHZW5lcmF0ZSAob3IgZG9uJ3QpCi5TeSBpbiAsCi5TeSBsb2MgLAphbmQKLlN5 IG91dApyZWdpc3RlciBuYW1lcyBmb3IgdGhlIHN0YWNrZWQgcmVnaXN0ZXJzLgpUaGlzIG1h eSBtYWtlIGFzc2VtYmxlciBvdXRwdXQgbW9yZSByZWFkYWJsZS4KLlBwCi5JdCBGbCBtbm8t c2RhdGEKLkl0IEZsIG1zZGF0YQpEaXNhYmxlIChvciBlbmFibGUpIG9wdGltaXphdGlvbnMg dGhhdCB1c2UgdGhlIHNtYWxsIGRhdGEgc2VjdGlvbi4KVGhpcyBtYXkgYmUgdXNlZnVsIGZv ciB3b3JraW5nIGFyb3VuZCBvcHRpbWl6ZXIgYnVncy4KLlBwCi5JdCBGbCBtY29uc3RhbnQt Z3AKR2VuZXJhdGUgY29kZSB0aGF0IHVzZXMgYSBzaW5nbGUgY29uc3RhbnQgZ2xvYmFsIHBv aW50ZXIgdmFsdWUuClRoaXMgaXMgdXNlZnVsIHdoZW4gY29tcGlsaW5nIGtlcm5lbCBjb2Rl LgouUHAKLkl0IEZsIG1hdXRvLXBpYwpHZW5lcmF0ZSBjb2RlIHRoYXQgaXMgc2VsZi1yZWxv Y2F0YWJsZS4KVGhpcyBpbXBsaWVzCi5GbCBtY29uc3RhbnQtZ3AgLgpUaGlzIGlzIHVzZWZ1 bCB3aGVuIGNvbXBpbGluZyBmaXJtd2FyZSBjb2RlLgouUHAKLkl0IEZsIG1pbmxpbmUtZmxv YXQtZGl2aWRlLW1pbi1sYXRlbmN5CkdlbmVyYXRlIGNvZGUgZm9yIGlubGluZSBkaXZpZGVz IG9mIGZsb2F0aW5nIHBvaW50IHZhbHVlcyB1c2luZyB0aGUgbWluaW11bSBsYXRlbmN5IGFs Z29yaXRobS4KLlBwCi5JdCBGbCBtaW5saW5lLWZsb2F0LWRpdmlkZS1tYXgtdGhyb3VnaHB1 dApHZW5lcmF0ZSBjb2RlIGZvciBpbmxpbmUgZGl2aWRlcyBvZiBmbG9hdGluZyBwb2ludCB2 YWx1ZXMgdXNpbmcgdGhlIG1heGltdW0gdGhyb3VnaHB1dCBhbGdvcml0aG0uCi5QcAouSXQg RmwgbWlubGluZS1pbnQtZGl2aWRlLW1pbi1sYXRlbmN5CkdlbmVyYXRlIGNvZGUgZm9yIGlu bGluZSBkaXZpZGVzIG9mIGludGVnZXIgdmFsdWVzIHVzaW5nIHRoZSBtaW5pbXVtIGxhdGVu Y3kgYWxnb3JpdGhtLgouUHAKLkl0IEZsIG1pbmxpbmUtaW50LWRpdmlkZS1tYXgtdGhyb3Vn aHB1dApHZW5lcmF0ZSBjb2RlIGZvciBpbmxpbmUgZGl2aWRlcyBvZiBpbnRlZ2VyIHZhbHVl cyB1c2luZyB0aGUgbWF4aW11bSB0aHJvdWdocHV0IGFsZ29yaXRobS4KLlBwCi5JdCBGbCBt aW5saW5lLXNxcnQtbWluLWxhdGVuY3kKR2VuZXJhdGUgY29kZSBmb3IgaW5saW5lIHNxdWFy ZSByb290cyB1c2luZyB0aGUgbWluaW11bSBsYXRlbmN5IGFsZ29yaXRobS4KLlBwCi5JdCBG bCBtaW5saW5lLXNxcnQtbWF4LXRocm91Z2hwdXQKR2VuZXJhdGUgY29kZSBmb3IgaW5saW5l IHNxdWFyZSByb290cyB1c2luZyB0aGUgbWF4aW11bSB0aHJvdWdocHV0IGFsZ29yaXRobS4K LlBwCi5JdCBGbCBtbm8tZHdhcmYyLWFzbQouSXQgRmwgbWR3YXJmMi1hc20KRG9uJ3QgKG9y IGRvKSBnZW5lcmF0ZSBhc3NlbWJsZXIgY29kZSBmb3IgdGhlIERXQVJGMiBsaW5lIG51bWJl ciBkZWJ1Z2dpbmcgaW5mby4KVGhpcyBtYXkgYmUgdXNlZnVsIHdoZW4gbm90IHVzaW5nIHRo ZSBHTlUgYXNzZW1ibGVyLgouUHAKLkl0IEZsIG1lYXJseS1zdG9wLWJpdHMKLkl0IEZsIG1u by1lYXJseS1zdG9wLWJpdHMKQWxsb3cgc3RvcCBiaXRzIHRvIGJlIHBsYWNlZCBlYXJsaWVy IHRoYW4gaW1tZWRpYXRlbHkgcHJlY2VkaW5nIHRoZSBpbnN0cnVjdGlvbiB0aGF0IHRyaWdn ZXJlZCB0aGUgc3RvcCBiaXQuClRoaXMgY2FuIGltcHJvdmUgaW5zdHJ1Y3Rpb24gc2NoZWR1 bGluZywgYnV0IGRvZXMgbm90IGFsd2F5cyBkbyBzby4KLlBwCi5JdCBGbCBtZml4ZWQtcmFu Z2U9IE5zIEFyIHJlZ2lzdGVyLXJhbmdlCkdlbmVyYXRlIGNvZGUgdHJlYXRpbmcgdGhlIGdp dmVuIHJlZ2lzdGVyIHJhbmdlIGFzIGZpeGVkIHJlZ2lzdGVycy4KQSBmaXhlZCByZWdpc3Rl ciBpcyBvbmUgdGhhdCB0aGUgcmVnaXN0ZXIgYWxsb2NhdG9yIGNhbiBub3QgdXNlLgpUaGlz IGlzIHVzZWZ1bCB3aGVuIGNvbXBpbGluZyBrZXJuZWwgY29kZS4KQSByZWdpc3RlciByYW5n ZSBpcyBzcGVjaWZpZWQgYXMgdHdvIHJlZ2lzdGVycyBzZXBhcmF0ZWQgYnkgYSBkYXNoLgpN dWx0aXBsZSByZWdpc3RlciByYW5nZXMgY2FuIGJlIHNwZWNpZmllZCBzZXBhcmF0ZWQgYnkg YSBjb21tYS4KLlBwCi5JdCBGbCBtdGxzLXNpemU9IE5zIEFyIHRscy1zaXplClNwZWNpZnkg Yml0IHNpemUgb2YgaW1tZWRpYXRlIFRMUyBvZmZzZXRzLgpWYWxpZCB2YWx1ZXMgYXJlIDE0 LCAyMiwgYW5kIDY0LgouUHAKLkl0IEZsIG10dW5lPSBOcyBBciBjcHUtdHlwZQpUdW5lIHRo ZSBpbnN0cnVjdGlvbiBzY2hlZHVsaW5nIGZvciBhIHBhcnRpY3VsYXIgQ1BVLCBWYWxpZCB2 YWx1ZXMgYXJlIGl0YW5pdW0sIGl0YW5pdW0xLCBtZXJjZWQsIGl0YW5pdW0yLCBhbmQgbWNr aW5sZXkuCi5QcAouSXQgRmwgbXQKLkl0IEZsIHB0aHJlYWQKQWRkIHN1cHBvcnQgZm9yIG11 bHRpdGhyZWFkaW5nIHVzaW5nIHRoZSBQT1NJWCB0aHJlYWRzIGxpYnJhcnkuClRoaXMgb3B0 aW9uIHNldHMgZmxhZ3MgZm9yIGJvdGggdGhlIHByZXByb2Nlc3NvciBhbmQgbGlua2VyLgpJ dCBkb2VzIG5vdCBhZmZlY3QgdGhlIHRocmVhZCBzYWZldHkgb2Ygb2JqZWN0IGNvZGUgcHJv ZHVjZWQgYnkgdGhlIGNvbXBpbGVyIG9yIHRoYXQgb2YgbGlicmFyaWVzIHN1cHBsaWVkIHdp dGggaXQuClRoZXNlIGFyZSBIUC1VWCBzcGVjaWZpYyBmbGFncy4KLlBwCi5JdCBGbCBtaWxw MzIKLkl0IEZsIG1scDY0CkdlbmVyYXRlIGNvZGUgZm9yIGEgMzItYml0IG9yIDY0LWJpdCBl bnZpcm9ubWVudC4KVGhlIDMyLWJpdCBlbnZpcm9ubWVudCBzZXRzIGludCwgbG9uZyBhbmQg cG9pbnRlciB0byAzMiBiaXRzLgpUaGUgNjQtYml0IGVudmlyb25tZW50IHNldHMgaW50IHRv IDMyIGJpdHMgYW5kIGxvbmcgYW5kIHBvaW50ZXIgdG8gNjQgYml0cy4KVGhlc2UgYXJlIEhQ LVVYIHNwZWNpZmljIGZsYWdzLgouUHAKLkVsCi5JdCBTeSBNMzJDIE9wdGlvbnMKLkJsIC10 YWcgLXdpZHRoIHh4Ci5JdCBGbCBtY3B1PSBOcyBBciBuYW1lClNlbGVjdCB0aGUgQ1BVIGZv ciB3aGljaCBjb2RlIGlzIGdlbmVyYXRlZC4KLkVtIG5hbWUKbWF5IGJlIG9uZSBvZgouU3kg cjhjCmZvciB0aGUgUjhDL1Rpbnkgc2VyaWVzLAouU3kgbTE2Ywpmb3IgdGhlIE0xNkMgKHVw IHRvIC82MCkgc2VyaWVzLAouU3kgbTMyY20KZm9yIHRoZSBNMTZDLzgwIHNlcmllcywgb3IK LlN5IG0zMmMKZm9yIHRoZSBNMzJDLzgwIHNlcmllcy4KLlBwCi5JdCBGbCBtc2ltClNwZWNp ZmllcyB0aGF0IHRoZSBwcm9ncmFtIHdpbGwgYmUgcnVuIG9uIHRoZSBzaW11bGF0b3IuClRo aXMgY2F1c2VzIGFuIGFsdGVybmF0ZSBydW50aW1lIGxpYnJhcnkgdG8gYmUgbGlua2VkIGlu IHdoaWNoIHN1cHBvcnRzLCBmb3IgZXhhbXBsZSwgZmlsZSBJL08uCllvdSBtdXN0IG5vdCB1 c2UgdGhpcyBvcHRpb24gd2hlbiBnZW5lcmF0aW5nIHByb2dyYW1zIHRoYXQgd2lsbCBydW4g b24gcmVhbCBoYXJkd2FyZTsgeW91IG11c3QgcHJvdmlkZSB5b3VyIG93biBydW50aW1lIGxp YnJhcnkgZm9yIHdoYXRldmVyIEkvTyBmdW5jdGlvbnMgYXJlIG5lZWRlZC4KLlBwCi5JdCBG bCBtZW1yZWdzPSBOcyBBciBudW1iZXIKU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgbWVtb3J5 LWJhc2VkIHBzZXVkby1yZWdpc3RlcnMgR0NDIHdpbGwgdXNlIGR1cmluZyBjb2RlIGdlbmVy YXRpb24uClRoZXNlIHBzZXVkby1yZWdpc3RlcnMgd2lsbCBiZSB1c2VkIGxpa2UgcmVhbCBy ZWdpc3RlcnMsIHNvIHRoZXJlIGlzIGEgdHJhZGVvZmYgYmV0d2VlbiBHQ0MncyBhYmlsaXR5 IHRvIGZpdCB0aGUgY29kZSBpbnRvIGF2YWlsYWJsZSByZWdpc3RlcnMsIGFuZCB0aGUgcGVy Zm9ybWFuY2UgcGVuYWx0eSBvZiB1c2luZyBtZW1vcnkgaW5zdGVhZCBvZiByZWdpc3RlcnMu Ck5vdGUgdGhhdCBhbGwgbW9kdWxlcyBpbiBhIHByb2dyYW0gbXVzdCBiZSBjb21waWxlZCB3 aXRoIHRoZSBzYW1lIHZhbHVlIGZvciB0aGlzIG9wdGlvbi4KQmVjYXVzZSBvZiB0aGF0LCB5 b3UgbXVzdCBub3QgdXNlIHRoaXMgb3B0aW9uIHdpdGggdGhlIGRlZmF1bHQgcnVudGltZSBs aWJyYXJpZXMgZ2NjIGJ1aWxkcy4KLlBwCi5FbAouSXQgU3kgTTMyUi9EIE9wdGlvbnMKVGhl c2UKLkZsIG0Kb3B0aW9ucyBhcmUgZGVmaW5lZCBmb3IgUmVuZXNhcyBNMzJSL0QgYXJjaGl0 ZWN0dXJlczoKLlBwCi5CbCAtdGFnIC13aWR0aCB4eAouSXQgRmwgbTMycjIKR2VuZXJhdGUg Y29kZSBmb3IgdGhlIE0zMlIvMi4KLlBwCi5JdCBGbCBtMzJyeApHZW5lcmF0ZSBjb2RlIGZv ciB0aGUgTTMyUi9YLgouUHAKLkl0IEZsIG0zMnIKR2VuZXJhdGUgY29kZSBmb3IgdGhlIE0z MlIuClRoaXMgaXMgdGhlIGRlZmF1bHQuCi5QcAouSXQgRmwgbW1vZGVsPXNtYWxsCkFzc3Vt ZSBhbGwgb2JqZWN0cyBsaXZlIGluIHRoZSBsb3dlciAxNk1CIG9mIG1lbW9yeSAoc28gdGhh dCB0aGVpciBhZGRyZXNzZXMgY2FuIGJlIGxvYWRlZCB3aXRoIHRoZQouVmEgbGQyNAppbnN0 cnVjdGlvbiksIGFuZCBhc3N1bWUgYWxsIHN1YnJvdXRpbmVzIGFyZSByZWFjaGFibGUgd2l0 aCB0aGUKLlZhIGJsCmluc3RydWN0aW9uLgpUaGlzIGlzIHRoZSBkZWZhdWx0LgouUHAKVGhl IGFkZHJlc3NhYmlsaXR5IG9mIGEgcGFydGljdWxhciBvYmplY3QgY2FuIGJlIHNldCB3aXRo IHRoZQouVmEgbW9kZWwKYXR0cmlidXRlLgouUHAKLkl0IEZsIG1tb2RlbD1tZWRpdW0KQXNz dW1lIG9iamVjdHMgbWF5IGJlIGFueXdoZXJlIGluIHRoZSAzMi1iaXQgYWRkcmVzcyBzcGFj ZSAodGhlIGNvbXBpbGVyIHdpbGwgZ2VuZXJhdGUKLlZhIHNldGgvYWRkMwppbnN0cnVjdGlv bnMgdG8gbG9hZCB0aGVpciBhZGRyZXNzZXMpLCBhbmQgYXNzdW1lIGFsbCBzdWJyb3V0aW5l cyBhcmUgcmVhY2hhYmxlIHdpdGggdGhlCi5WYSBibAppbnN0cnVjdGlvbi4KLlBwCi5JdCBG bCBtbW9kZWw9bGFyZ2UKQXNzdW1lIG9iamVjdHMgbWF5IGJlIGFueXdoZXJlIGluIHRoZSAz Mi1iaXQgYWRkcmVzcyBzcGFjZSAodGhlIGNvbXBpbGVyIHdpbGwgZ2VuZXJhdGUKLlZhIHNl dGgvYWRkMwppbnN0cnVjdGlvbnMgdG8gbG9hZCB0aGVpciBhZGRyZXNzZXMpLCBhbmQgYXNz dW1lIHN1YnJvdXRpbmVzIG1heSBub3QgYmUgcmVhY2hhYmxlIHdpdGggdGhlCi5WYSBibApp bnN0cnVjdGlvbiAodGhlIGNvbXBpbGVyIHdpbGwgZ2VuZXJhdGUgdGhlIG11Y2ggc2xvd2Vy Ci5WYSBzZXRoL2FkZDMvamwKaW5zdHJ1Y3Rpb24gc2VxdWVuY2UpLgouUHAKLkl0IEZsIG1z ZGF0YT1ub25lCkRpc2FibGUgdXNlIG9mIHRoZSBzbWFsbCBkYXRhIGFyZWEuClZhcmlhYmxl cyB3aWxsIGJlIHB1dCBpbnRvIG9uZSBvZgouU3kgLmRhdGEgLAouU3kgYnNzICwKb3IKLlN5 IC5yb2RhdGEKKHVubGVzcyB0aGUKLlZhIHNlY3Rpb24KYXR0cmlidXRlIGhhcyBiZWVuIHNw ZWNpZmllZCkuClRoaXMgaXMgdGhlIGRlZmF1bHQuCi5QcApUaGUgc21hbGwgZGF0YSBhcmVh IGNvbnNpc3RzIG9mIHNlY3Rpb25zCi5TeSAuc2RhdGEKYW5kCi5TeSAuc2JzcyAuCk9iamVj dHMgbWF5IGJlIGV4cGxpY2l0bHkgcHV0IGluIHRoZSBzbWFsbCBkYXRhIGFyZWEgd2l0aCB0 aGUKLlZhIHNlY3Rpb24KYXR0cmlidXRlIHVzaW5nIG9uZSBvZiB0aGVzZSBzZWN0aW9ucy4K LlBwCi5JdCBGbCBtc2RhdGE9c2RhdGEKUHV0IHNtYWxsIGdsb2JhbCBhbmQgc3RhdGljIGRh dGEgaW4gdGhlIHNtYWxsIGRhdGEgYXJlYSwgYnV0IGRvIG5vdCBnZW5lcmF0ZSBzcGVjaWFs IGNvZGUgdG8gcmVmZXJlbmNlIHRoZW0uCi5QcAouSXQgRmwgbXNkYXRhPXVzZQpQdXQgc21h bGwgZ2xvYmFsIGFuZCBzdGF0aWMgZGF0YSBpbiB0aGUgc21hbGwgZGF0YSBhcmVhLCBhbmQg Z2VuZXJhdGUgc3BlY2lhbCBpbnN0cnVjdGlvbnMgdG8gcmVmZXJlbmNlIHRoZW0uCi5QcAou SXQgRmwgRyBBciBudW0KUHV0IGdsb2JhbCBhbmQgc3RhdGljIG9iamVjdHMgbGVzcyB0aGFu IG9yIGVxdWFsIHRvCi5FbSBudW0KYnl0ZXMgaW50byB0aGUgc21hbGwgZGF0YSBvciBic3Mg c2VjdGlvbnMgaW5zdGVhZCBvZiB0aGUgbm9ybWFsIGRhdGEgb3IgYnNzIHNlY3Rpb25zLgpU aGUgZGVmYXVsdCB2YWx1ZSBvZgouRW0gbnVtCmlzIDguClRoZQouRmwgbXNkYXRhCm9wdGlv biBtdXN0IGJlIHNldCB0byBvbmUgb2YKLlN5IHNkYXRhCm9yCi5TeSB1c2UKZm9yIHRoaXMg b3B0aW9uIHRvIGhhdmUgYW55IGVmZmVjdC4KLlBwCkFsbCBtb2R1bGVzIHNob3VsZCBiZSBj b21waWxlZCB3aXRoIHRoZSBzYW1lCi5GbCBHIEFyIG51bQp2YWx1ZS4KQ29tcGlsaW5nIHdp dGggZGlmZmVyZW50IHZhbHVlcyBvZgouRW0gbnVtCm1heSBvciBtYXkgbm90IHdvcms7IGlm IGl0IGRvZXNuJ3QgdGhlIGxpbmtlciB3aWxsIGdpdmUgYW4gZXJyb3IgbWVzc2FnZS0tLWlu Y29ycmVjdCBjb2RlIHdpbGwgbm90IGJlIGdlbmVyYXRlZC4KLlBwCi5JdCBGbCBtZGVidWcK TWFrZXMgdGhlIE0zMlIgc3BlY2lmaWMgY29kZSBpbiB0aGUgY29tcGlsZXIgZGlzcGxheSBz b21lIHN0YXRpc3RpY3MgdGhhdCBtaWdodCBoZWxwIGluIGRlYnVnZ2luZyBwcm9ncmFtcy4K LlBwCi5JdCBGbCBtYWxpZ24tbG9vcHMKQWxpZ24gYWxsIGxvb3BzIHRvIGEgMzItYnl0ZSBi b3VuZGFyeS4KLlBwCi5JdCBGbCBtbm8tYWxpZ24tbG9vcHMKRG8gbm90IGVuZm9yY2UgYSAz Mi1ieXRlIGFsaWdubWVudCBmb3IgbG9vcHMuClRoaXMgaXMgdGhlIGRlZmF1bHQuCi5QcAou SXQgRmwgbWlzc3VlLXJhdGU9IE5zIEFyIG51bWJlcgpJc3N1ZQouRW0gbnVtYmVyCmluc3Ry dWN0aW9ucyBwZXIgY3ljbGUuCi5FbSBudW1iZXIKY2FuIG9ubHkgYmUgMSBvciAyLgouUHAK Lkl0IEZsIG1icmFuY2gtY29zdD0gTnMgQXIgbnVtYmVyCi5FbSBudW1iZXIKY2FuIG9ubHkg YmUgMSBvciAyLgpJZiBpdCBpcyAxIHRoZW4gYnJhbmNoZXMgd2lsbCBiZSBwcmVmZXJyZWQg b3ZlciBjb25kaXRpb25hbCBjb2RlLCBpZiBpdCBpcyAyLCB0aGVuIHRoZSBvcHBvc2l0ZSB3 aWxsIGFwcGx5LgouUHAKLkl0IEZsIG1mbHVzaC10cmFwPSBOcyBBciBudW1iZXIKU3BlY2lm aWVzIHRoZSB0cmFwIG51bWJlciB0byB1c2UgdG8gZmx1c2ggdGhlIGNhY2hlLgpUaGUgZGVm YXVsdCBpcyAxMi4KVmFsaWQgbnVtYmVycyBhcmUgYmV0d2VlbiAwIGFuZCAxNSBpbmNsdXNp dmUuCi5QcAouSXQgRmwgbW5vLWZsdXNoLXRyYXAKU3BlY2lmaWVzIHRoYXQgdGhlIGNhY2hl IGNhbm5vdCBiZSBmbHVzaGVkIGJ5IHVzaW5nIGEgdHJhcC4KLlBwCi5JdCBGbCBtZmx1c2gt ZnVuYz0gTnMgQXIgbmFtZQpTcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIG9wZXJhdGluZyBz eXN0ZW0gZnVuY3Rpb24gdG8gY2FsbCB0byBmbHVzaCB0aGUgY2FjaGUuClRoZSBkZWZhdWx0 IGlzCi5FbSBfZmx1c2hfY2FjaGUgLApidXQgYSBmdW5jdGlvbiBjYWxsIHdpbGwgb25seSBi ZSB1c2VkIGlmIGEgdHJhcCBpcyBub3QgYXZhaWxhYmxlLgouUHAKLkl0IEZsIG1uby1mbHVz aC1mdW5jCkluZGljYXRlcyB0aGF0IHRoZXJlIGlzIG5vIE9TIGZ1bmN0aW9uIGZvciBmbHVz aGluZyB0aGUgY2FjaGUuCi5QcAouRWwKLkl0IFN5IE02ODB4MCBPcHRpb25zClRoZXNlIGFy ZSB0aGUKLkZsIG0Kb3B0aW9ucyBkZWZpbmVkIGZvciB0aGUgNjgwMDAgc2VyaWVzLgpUaGUg ZGVmYXVsdCB2YWx1ZXMgZm9yIHRoZXNlIG9wdGlvbnMgZGVwZW5kcyBvbiB3aGljaCBzdHls ZSBvZiA2ODAwMCB3YXMgc2VsZWN0ZWQgd2hlbiB0aGUgY29tcGlsZXIgd2FzIGNvbmZpZ3Vy ZWQ7IHRoZSBkZWZhdWx0cyBmb3IgdGhlIG1vc3QgY29tbW9uIGNob2ljZXMgYXJlIGdpdmVu IGJlbG93LgouUHAKLkJsIC10YWcgLXdpZHRoIHh4Ci5JdCBGbCBtNjgwMDAKLkl0IEZsIG1j NjgwMDAKR2VuZXJhdGUgb3V0cHV0IGZvciBhIDY4MDAwLgpUaGlzIGlzIHRoZSBkZWZhdWx0 IHdoZW4gdGhlIGNvbXBpbGVyIGlzIGNvbmZpZ3VyZWQgZm9yIDY4MDAwLWJhc2VkIHN5c3Rl bXMuCi5QcApVc2UgdGhpcyBvcHRpb24gZm9yIG1pY3JvY29udHJvbGxlcnMgd2l0aCBhIDY4 MDAwIG9yIEVDMDAwIGNvcmUsIGluY2x1ZGluZyB0aGUgNjgwMDgsIDY4MzAyLCA2ODMwNiwg NjgzMDcsIDY4MzIyLCA2ODMyOCBhbmQgNjgzNTYuCi5QcAouSXQgRmwgbTY4MDIwCi5JdCBG bCBtYzY4MDIwCkdlbmVyYXRlIG91dHB1dCBmb3IgYSA2ODAyMC4KVGhpcyBpcyB0aGUgZGVm YXVsdCB3aGVuIHRoZSBjb21waWxlciBpcyBjb25maWd1cmVkIGZvciA2ODAyMC1iYXNlZCBz eXN0ZW1zLgouUHAKLkl0IEZsIG02ODg4MQpHZW5lcmF0ZSBvdXRwdXQgY29udGFpbmluZyA2 ODg4MSBpbnN0cnVjdGlvbnMgZm9yIGZsb2F0aW5nIHBvaW50LgpUaGlzIGlzIHRoZSBkZWZh dWx0IGZvciBtb3N0IDY4MDIwIHN5c3RlbXMgdW5sZXNzCi5GbCAtbmZwCndhcyBzcGVjaWZp ZWQgd2hlbiB0aGUgY29tcGlsZXIgd2FzIGNvbmZpZ3VyZWQuCi5QcAouSXQgRmwgbTY4MDMw CkdlbmVyYXRlIG91dHB1dCBmb3IgYSA2ODAzMC4KVGhpcyBpcyB0aGUgZGVmYXVsdCB3aGVu IHRoZSBjb21waWxlciBpcyBjb25maWd1cmVkIGZvciA2ODAzMC1iYXNlZCBzeXN0ZW1zLgou UHAKLkl0IEZsIG02ODA0MApHZW5lcmF0ZSBvdXRwdXQgZm9yIGEgNjgwNDAuClRoaXMgaXMg dGhlIGRlZmF1bHQgd2hlbiB0aGUgY29tcGlsZXIgaXMgY29uZmlndXJlZCBmb3IgNjgwNDAt YmFzZWQgc3lzdGVtcy4KLlBwClRoaXMgb3B0aW9uIGluaGliaXRzIHRoZSB1c2Ugb2YgNjg4 ODEvNjg4ODIgaW5zdHJ1Y3Rpb25zIHRoYXQgaGF2ZSB0byBiZSBlbXVsYXRlZCBieSBzb2Z0 d2FyZSBvbiB0aGUgNjgwNDAuClVzZSB0aGlzIG9wdGlvbiBpZiB5b3VyIDY4MDQwIGRvZXMg bm90IGhhdmUgY29kZSB0byBlbXVsYXRlIHRob3NlIGluc3RydWN0aW9ucy4KLlBwCi5JdCBG bCBtNjgwNjAKR2VuZXJhdGUgb3V0cHV0IGZvciBhIDY4MDYwLgpUaGlzIGlzIHRoZSBkZWZh dWx0IHdoZW4gdGhlIGNvbXBpbGVyIGlzIGNvbmZpZ3VyZWQgZm9yIDY4MDYwLWJhc2VkIHN5 c3RlbXMuCi5QcApUaGlzIG9wdGlvbiBpbmhpYml0cyB0aGUgdXNlIG9mIDY4MDIwIGFuZCA2 ODg4MS82ODg4MiBpbnN0cnVjdGlvbnMgdGhhdCBoYXZlIHRvIGJlIGVtdWxhdGVkIGJ5IHNv ZnR3YXJlIG9uIHRoZSA2ODA2MC4KVXNlIHRoaXMgb3B0aW9uIGlmIHlvdXIgNjgwNjAgZG9l cyBub3QgaGF2ZSBjb2RlIHRvIGVtdWxhdGUgdGhvc2UgaW5zdHJ1Y3Rpb25zLgouUHAKLkl0 IEZsIG1jcHUzMgpHZW5lcmF0ZSBvdXRwdXQgZm9yIGEgQ1BVMzIuClRoaXMgaXMgdGhlIGRl ZmF1bHQgd2hlbiB0aGUgY29tcGlsZXIgaXMgY29uZmlndXJlZCBmb3IgQ1BVMzItYmFzZWQg c3lzdGVtcy4KLlBwClVzZSB0aGlzIG9wdGlvbiBmb3IgbWljcm9jb250cm9sbGVycyB3aXRo IGEgQ1BVMzIgb3IgQ1BVMzIrIGNvcmUsIGluY2x1ZGluZyB0aGUgNjgzMzAsIDY4MzMxLCA2 ODMzMiwgNjgzMzMsIDY4MzM0LCA2ODMzNiwgNjgzNDAsIDY4MzQxLCA2ODM0OSBhbmQgNjgz NjAuCi5QcAouSXQgRmwgbTUyMDAKR2VuZXJhdGUgb3V0cHV0IGZvciBhIDUyMFggImNvbGRm aXJlIiBmYW1pbHkgY3B1LgpUaGlzIGlzIHRoZSBkZWZhdWx0IHdoZW4gdGhlIGNvbXBpbGVy IGlzIGNvbmZpZ3VyZWQgZm9yIDUyMFgtYmFzZWQgc3lzdGVtcy4KLlBwClVzZSB0aGlzIG9w dGlvbiBmb3IgbWljcm9jb250cm9sbGVyIHdpdGggYSA1MjAwIGNvcmUsIGluY2x1ZGluZyB0 aGUgTUNGNTIwMiwgTUNGNTIwMywgTUNGNTIwNCBhbmQgTUNGNTIwMi4KLlBwCi5JdCBGbCBt NjgwMjAtNDAKR2VuZXJhdGUgb3V0cHV0IGZvciBhIDY4MDQwLCB3aXRob3V0IHVzaW5nIGFu eSBvZiB0aGUgbmV3IGluc3RydWN0aW9ucy4KVGhpcyByZXN1bHRzIGluIGNvZGUgd2hpY2gg Y2FuIHJ1biByZWxhdGl2ZWx5IGVmZmljaWVudGx5IG9uIGVpdGhlciBhIDY4MDIwLzY4ODgx IG9yIGEgNjgwMzAgb3IgYSA2ODA0MC4KVGhlIGdlbmVyYXRlZCBjb2RlIGRvZXMgdXNlIHRo ZSA2ODg4MSBpbnN0cnVjdGlvbnMgdGhhdCBhcmUgZW11bGF0ZWQgb24gdGhlIDY4MDQwLgou UHAKLkl0IEZsIG02ODAyMC02MApHZW5lcmF0ZSBvdXRwdXQgZm9yIGEgNjgwNjAsIHdpdGhv dXQgdXNpbmcgYW55IG9mIHRoZSBuZXcgaW5zdHJ1Y3Rpb25zLgpUaGlzIHJlc3VsdHMgaW4g Y29kZSB3aGljaCBjYW4gcnVuIHJlbGF0aXZlbHkgZWZmaWNpZW50bHkgb24gZWl0aGVyIGEg NjgwMjAvNjg4ODEgb3IgYSA2ODAzMCBvciBhIDY4MDQwLgpUaGUgZ2VuZXJhdGVkIGNvZGUg ZG9lcyB1c2UgdGhlIDY4ODgxIGluc3RydWN0aW9ucyB0aGF0IGFyZSBlbXVsYXRlZCBvbiB0 aGUgNjgwNjAuCi5QcAouSXQgRmwgbXNvZnQtZmxvYXQKR2VuZXJhdGUgb3V0cHV0IGNvbnRh aW5pbmcgbGlicmFyeSBjYWxscyBmb3IgZmxvYXRpbmcgcG9pbnQuCi5TeSBXYXJuaW5nOgp0 aGUgcmVxdWlzaXRlIGxpYnJhcmllcyBhcmUgbm90IGF2YWlsYWJsZSBmb3IgYWxsIG02OGsg dGFyZ2V0cy4KTm9ybWFsbHkgdGhlIGZhY2lsaXRpZXMgb2YgdGhlIG1hY2hpbmUncyB1c3Vh bCBDIGNvbXBpbGVyIGFyZSB1c2VkLCBidXQgdGhpcyBjYW4ndCBiZSBkb25lIGRpcmVjdGx5 IGluIGNyb3NzLWNvbXBpbGF0aW9uLgpZb3UgbXVzdCBtYWtlIHlvdXIgb3duIGFycmFuZ2Vt ZW50cyB0byBwcm92aWRlIHN1aXRhYmxlIGxpYnJhcnkgZnVuY3Rpb25zIGZvciBjcm9zcy1j b21waWxhdGlvbi4KVGhlIGVtYmVkZGVkIHRhcmdldHMKLlN5IG02OGstKi1hb3V0CmFuZAou U3kgbTY4ay0qLWNvZmYKZG8gcHJvdmlkZSBzb2Z0d2FyZSBmbG9hdGluZyBwb2ludCBzdXBw b3J0LgouUHAKLkl0IEZsIG1zaG9ydApDb25zaWRlciB0eXBlCi5WYSBpbnQKdG8gYmUgMTYg Yml0cyB3aWRlLCBsaWtlCi5WYSBzaG9ydCBpbnQgLgpBZGRpdGlvbmFsbHksIHBhcmFtZXRl cnMgcGFzc2VkIG9uIHRoZSBzdGFjayBhcmUgYWxzbyBhbGlnbmVkIHRvIGEgMTYtYml0IGJv dW5kYXJ5IGV2ZW4gb24gdGFyZ2V0cyB3aG9zZSBBUEkgbWFuZGF0ZXMgcHJvbW90aW9uIHRv IDMyLWJpdC4KLlBwCi5JdCBGbCBtbm9iaXRmaWVsZApEbyBub3QgdXNlIHRoZSBiaXQtZmll bGQgaW5zdHJ1Y3Rpb25zLgpUaGUKLkZsIG02ODAwMCAsCi5GbCBtY3B1MzIKYW5kCi5GbCBt NTIwMApvcHRpb25zIGltcGx5Ci5GbCBtbm9iaXRmaWVsZCAuCi5QcAouSXQgRmwgbWJpdGZp ZWxkCkRvIHVzZSB0aGUgYml0LWZpZWxkIGluc3RydWN0aW9ucy4KVGhlCi5GbCBtNjgwMjAK b3B0aW9uIGltcGxpZXMKLkZsIG1iaXRmaWVsZCAuClRoaXMgaXMgdGhlIGRlZmF1bHQgaWYg eW91IHVzZSBhIGNvbmZpZ3VyYXRpb24gZGVzaWduZWQgZm9yIGEgNjgwMjAuCi5QcAouSXQg RmwgbXJ0ZApVc2UgYSBkaWZmZXJlbnQgZnVuY3Rpb24tY2FsbGluZyBjb252ZW50aW9uLCBp biB3aGljaCBmdW5jdGlvbnMgdGhhdCB0YWtlIGEgZml4ZWQgbnVtYmVyIG9mIGFyZ3VtZW50 cyByZXR1cm4gd2l0aCB0aGUKLlZhIHJ0ZAppbnN0cnVjdGlvbiwgd2hpY2ggcG9wcyB0aGVp ciBhcmd1bWVudHMgd2hpbGUgcmV0dXJuaW5nLgpUaGlzIHNhdmVzIG9uZSBpbnN0cnVjdGlv biBpbiB0aGUgY2FsbGVyIHNpbmNlIHRoZXJlIGlzIG5vIG5lZWQgdG8gcG9wIHRoZSBhcmd1 bWVudHMgdGhlcmUuCi5QcApUaGlzIGNhbGxpbmcgY29udmVudGlvbiBpcyBpbmNvbXBhdGli bGUgd2l0aCB0aGUgb25lIG5vcm1hbGx5IHVzZWQgb24gVW5peCwgc28geW91IGNhbm5vdCB1 c2UgaXQgaWYgeW91IG5lZWQgdG8gY2FsbCBsaWJyYXJpZXMgY29tcGlsZWQgd2l0aCB0aGUg VW5peCBjb21waWxlci4KLlBwCkFsc28sIHlvdSBtdXN0IHByb3ZpZGUgZnVuY3Rpb24gcHJv dG90eXBlcyBmb3IgYWxsIGZ1bmN0aW9ucyB0aGF0IHRha2UgdmFyaWFibGUgbnVtYmVycyBv ZiBhcmd1bWVudHMgKGluY2x1ZGluZwouVmEgcHJpbnRmICkgOwpvdGhlcndpc2UgaW5jb3Jy ZWN0IGNvZGUgd2lsbCBiZSBnZW5lcmF0ZWQgZm9yIGNhbGxzIHRvIHRob3NlIGZ1bmN0aW9u cy4KLlBwCkluIGFkZGl0aW9uLCBzZXJpb3VzbHkgaW5jb3JyZWN0IGNvZGUgd2lsbCByZXN1 bHQgaWYgeW91IGNhbGwgYSBmdW5jdGlvbiB3aXRoIHRvbyBtYW55IGFyZ3VtZW50cy4KKE5v cm1hbGx5LCBleHRyYSBhcmd1bWVudHMgYXJlIGhhcm1sZXNzbHkgaWdub3JlZC4pCi5QcApU aGUKLlZhIHJ0ZAppbnN0cnVjdGlvbiBpcyBzdXBwb3J0ZWQgYnkgdGhlIDY4MDEwLCA2ODAy MCwgNjgwMzAsIDY4MDQwLCA2ODA2MCBhbmQgQ1BVMzIgcHJvY2Vzc29ycywgYnV0IG5vdCBi eSB0aGUgNjgwMDAgb3IgNTIwMC4KLlBwCi5JdCBGbCBtYWxpZ24taW50Ci5JdCBGbCBtbm8t YWxpZ24taW50CkNvbnRyb2wgd2hldGhlciBHQ0MgYWxpZ25zCi5WYSBpbnQgLAouVmEgbG9u ZyAsCi5WYSBsb25nIGxvbmcgLAouVmEgZmxvYXQgLAouVmEgZG91YmxlICwKYW5kCi5WYSBs b25nIGRvdWJsZQp2YXJpYWJsZXMgb24gYSAzMi1iaXQgYm91bmRhcnkKLkZsICggbWFsaWdu LWludCApCm9yIGEgMTYtYml0IGJvdW5kYXJ5Ci5GbCAoIG1uby1hbGlnbi1pbnQgKSAuCkFs aWduaW5nIHZhcmlhYmxlcyBvbiAzMi1iaXQgYm91bmRhcmllcyBwcm9kdWNlcyBjb2RlIHRo YXQgcnVucyBzb21ld2hhdCBmYXN0ZXIgb24gcHJvY2Vzc29ycyB3aXRoIDMyLWJpdCBidXNz ZXMgYXQgdGhlIGV4cGVuc2Ugb2YgbW9yZSBtZW1vcnkuCi5QcAouU3kgV2FybmluZzoKaWYg eW91IHVzZSB0aGUKLkZsIG1hbGlnbi1pbnQKc3dpdGNoLCBHQ0Mgd2lsbCBhbGlnbiBzdHJ1 Y3R1cmVzIGNvbnRhaW5pbmcgdGhlIGFib3ZlIHR5cGVzIGRpZmZlcmVudGx5IHRoYW4gbW9z dCBwdWJsaXNoZWQgYXBwbGljYXRpb24gYmluYXJ5IGludGVyZmFjZSBzcGVjaWZpY2F0aW9u cyBmb3IgdGhlIG02OGsuCi5QcAouSXQgRmwgbXBjcmVsClVzZSB0aGUgcGMtcmVsYXRpdmUg YWRkcmVzc2luZyBtb2RlIG9mIHRoZSA2ODAwMCBkaXJlY3RseSwgaW5zdGVhZCBvZiB1c2lu ZyBhIGdsb2JhbCBvZmZzZXQgdGFibGUuCkF0IHByZXNlbnQsIHRoaXMgb3B0aW9uIGltcGxp ZXMKLkZsIGZwaWMgLAphbGxvd2luZyBhdCBtb3N0IGEgMTYtYml0IG9mZnNldCBmb3IgcGMt cmVsYXRpdmUgYWRkcmVzc2luZy4KLkZsIGZQSUMKaXMgbm90IHByZXNlbnRseSBzdXBwb3J0 ZWQgd2l0aAouRmwgbXBjcmVsICwKdGhvdWdoIHRoaXMgY291bGQgYmUgc3VwcG9ydGVkIGZv ciA2ODAyMCBhbmQgaGlnaGVyIHByb2Nlc3NvcnMuCi5QcAouSXQgRmwgbW5vLXN0cmljdC1h bGlnbgouSXQgRmwgbXN0cmljdC1hbGlnbgpEbyBub3QgKGRvKSBhc3N1bWUgdGhhdCB1bmFs aWduZWQgbWVtb3J5IHJlZmVyZW5jZXMgd2lsbCBiZSBoYW5kbGVkIGJ5IHRoZSBzeXN0ZW0u Ci5QcAouSXQgRmwgbXNlcC1kYXRhCkdlbmVyYXRlIGNvZGUgdGhhdCBhbGxvd3MgdGhlIGRh dGEgc2VnbWVudCB0byBiZSBsb2NhdGVkIGluIGEgZGlmZmVyZW50IGFyZWEgb2YgbWVtb3J5 IGZyb20gdGhlIHRleHQgc2VnbWVudC4KVGhpcyBhbGxvd3MgZm9yIGV4ZWN1dGUgaW4gcGxh Y2UgaW4gYW4gZW52aXJvbm1lbnQgd2l0aG91dCB2aXJ0dWFsIG1lbW9yeSBtYW5hZ2VtZW50 LgpUaGlzIG9wdGlvbiBpbXBsaWVzCi5GbCBmUElDIC4KLlBwCi5JdCBGbCBtbm8tc2VwLWRh dGEKR2VuZXJhdGUgY29kZSB0aGF0IGFzc3VtZXMgdGhhdCB0aGUgZGF0YSBzZWdtZW50IGZv bGxvd3MgdGhlIHRleHQgc2VnbWVudC4KVGhpcyBpcyB0aGUgZGVmYXVsdC4KLlBwCi5JdCBG bCBtaWQtc2hhcmVkLWxpYnJhcnkKR2VuZXJhdGUgY29kZSB0aGF0IHN1cHBvcnRzIHNoYXJl ZCBsaWJyYXJpZXMgdmlhIHRoZSBsaWJyYXJ5IElEIG1ldGhvZC4KVGhpcyBhbGxvd3MgZm9y IGV4ZWN1dGUgaW4gcGxhY2UgYW5kIHNoYXJlZCBsaWJyYXJpZXMgaW4gYW4gZW52aXJvbm1l bnQgd2l0aG91dCB2aXJ0dWFsIG1lbW9yeSBtYW5hZ2VtZW50LgpUaGlzIG9wdGlvbiBpbXBs aWVzCi5GbCBmUElDIC4KLlBwCi5JdCBGbCBtbm8taWQtc2hhcmVkLWxpYnJhcnkKR2VuZXJh dGUgY29kZSB0aGF0IGRvZXNuJ3QgYXNzdW1lIElEIGJhc2VkIHNoYXJlZCBsaWJyYXJpZXMg YXJlIGJlaW5nIHVzZWQuClRoaXMgaXMgdGhlIGRlZmF1bHQuCi5QcAouSXQgRmwgbXNoYXJl ZC1saWJyYXJ5LWlkPW4KU3BlY2lmaWVkIHRoZSBpZGVudGlmaWNhdGlvbiBudW1iZXIgb2Yg dGhlIElEIGJhc2VkIHNoYXJlZCBsaWJyYXJ5IGJlaW5nIGNvbXBpbGVkLgpTcGVjaWZ5aW5n IGEgdmFsdWUgb2YgMCB3aWxsIGdlbmVyYXRlIG1vcmUgY29tcGFjdCBjb2RlLCBzcGVjaWZ5 aW5nIG90aGVyIHZhbHVlcyB3aWxsIGZvcmNlIHRoZSBhbGxvY2F0aW9uIG9mIHRoYXQgbnVt YmVyIHRvIHRoZSBjdXJyZW50IGxpYnJhcnkgYnV0IGlzIG5vIG1vcmUgc3BhY2Ugb3IgdGlt ZSBlZmZpY2llbnQgdGhhbiBvbWl0dGluZyB0aGlzIG9wdGlvbi4KLlBwCi5FbAouSXQgU3kg TTY4aGMxeCBPcHRpb25zClRoZXNlIGFyZSB0aGUKLkZsIG0Kb3B0aW9ucyBkZWZpbmVkIGZv ciB0aGUgNjhoYzExIGFuZCA2OGhjMTIgbWljcm9jb250cm9sbGVycy4KVGhlIGRlZmF1bHQg dmFsdWVzIGZvciB0aGVzZSBvcHRpb25zIGRlcGVuZHMgb24gd2hpY2ggc3R5bGUgb2YgbWlj cm9jb250cm9sbGVyIHdhcyBzZWxlY3RlZCB3aGVuIHRoZSBjb21waWxlciB3YXMgY29uZmln dXJlZDsgdGhlIGRlZmF1bHRzIGZvciB0aGUgbW9zdCBjb21tb24gY2hvaWNlcyBhcmUgZ2l2 ZW4gYmVsb3cuCi5QcAouQmwgLXRhZyAtd2lkdGggeHgKLkl0IEZsIG02ODExCi5JdCBGbCBt NjhoYzExCkdlbmVyYXRlIG91dHB1dCBmb3IgYSA2OEhDMTEuClRoaXMgaXMgdGhlIGRlZmF1 bHQgd2hlbiB0aGUgY29tcGlsZXIgaXMgY29uZmlndXJlZCBmb3IgNjhIQzExLWJhc2VkIHN5 c3RlbXMuCi5QcAouSXQgRmwgbTY4MTIKLkl0IEZsIG02OGhjMTIKR2VuZXJhdGUgb3V0cHV0 IGZvciBhIDY4SEMxMi4KVGhpcyBpcyB0aGUgZGVmYXVsdCB3aGVuIHRoZSBjb21waWxlciBp cyBjb25maWd1cmVkIGZvciA2OEhDMTItYmFzZWQgc3lzdGVtcy4KLlBwCi5JdCBGbCBtNjhT MTIKLkl0IEZsIG02OGhjczEyCkdlbmVyYXRlIG91dHB1dCBmb3IgYSA2OEhDUzEyLgouUHAK Lkl0IEZsIG1hdXRvLWluY2RlYwpFbmFibGUgdGhlIHVzZSBvZiA2OEhDMTIgcHJlIGFuZCBw b3N0IGF1dG8taW5jcmVtZW50IGFuZCBhdXRvLWRlY3JlbWVudCBhZGRyZXNzaW5nIG1vZGVz LgouUHAKLkl0IEZsIG1pbm1heAouSXQgRmwgbm9taW5tYXgKRW5hYmxlIHRoZSB1c2Ugb2Yg NjhIQzEyIG1pbiBhbmQgbWF4IGluc3RydWN0aW9ucy4KLlBwCi5JdCBGbCBtbG9uZy1jYWxs cwouSXQgRmwgbW5vLWxvbmctY2FsbHMKVHJlYXQgYWxsIGNhbGxzIGFzIGJlaW5nIGZhciBh d2F5IChuZWFyKS4KSWYgY2FsbHMgYXJlIGFzc3VtZWQgdG8gYmUgZmFyIGF3YXksIHRoZSBj b21waWxlciB3aWxsIHVzZSB0aGUKLlZhIGNhbGwKaW5zdHJ1Y3Rpb24gdG8gY2FsbCBhIGZ1 bmN0aW9uIGFuZCB0aGUKLlZhIHJ0YwppbnN0cnVjdGlvbiBmb3IgcmV0dXJuaW5nLgouUHAK Lkl0IEZsIG1zaG9ydApDb25zaWRlciB0eXBlCi5WYSBpbnQKdG8gYmUgMTYgYml0cyB3aWRl LCBsaWtlCi5WYSBzaG9ydCBpbnQgLgouUHAKLkl0IEZsIG1zb2Z0LXJlZy1jb3VudD0gTnMg QXIgY291bnQKU3BlY2lmeSB0aGUgbnVtYmVyIG9mIHBzZXVkby1zb2Z0IHJlZ2lzdGVycyB3 aGljaCBhcmUgdXNlZCBmb3IgdGhlIGNvZGUgZ2VuZXJhdGlvbi4KVGhlIG1heGltdW0gbnVt YmVyIGlzIDMyLgpVc2luZyBtb3JlIHBzZXVkby1zb2Z0IHJlZ2lzdGVyIG1heSBvciBtYXkg bm90IHJlc3VsdCBpbiBiZXR0ZXIgY29kZSBkZXBlbmRpbmcgb24gdGhlIHByb2dyYW0uClRo ZSBkZWZhdWx0IGlzIDQgZm9yIDY4SEMxMSBhbmQgMiBmb3IgNjhIQzEyLgouUHAKLkVsCi5J dCBTeSBNQ29yZSBPcHRpb25zClRoZXNlIGFyZSB0aGUKLkZsIG0Kb3B0aW9ucyBkZWZpbmVk IGZvciB0aGUgTW90b3JvbGEgTSpDb3JlIHByb2Nlc3NvcnMuCi5QcAouQmwgLXRhZyAtd2lk dGggeHgKLkl0IEZsIG1oYXJkbGl0Ci5JdCBGbCBtbm8taGFyZGxpdApJbmxpbmUgY29uc3Rh bnRzIGludG8gdGhlIGNvZGUgc3RyZWFtIGlmIGl0IGNhbiBiZSBkb25lIGluIHR3byBpbnN0 cnVjdGlvbnMgb3IgbGVzcy4KLlBwCi5JdCBGbCBtZGl2Ci5JdCBGbCBtbm8tZGl2ClVzZSB0 aGUgZGl2aWRlIGluc3RydWN0aW9uLgooRW5hYmxlZCBieSBkZWZhdWx0KS4KLlBwCi5JdCBG bCBtcmVsYXgtaW1tZWRpYXRlCi5JdCBGbCBtbm8tcmVsYXgtaW1tZWRpYXRlCkFsbG93IGFy Yml0cmFyeSBzaXplZCBpbW1lZGlhdGVzIGluIGJpdCBvcGVyYXRpb25zLgouUHAKLkl0IEZs IG13aWRlLWJpdGZpZWxkcwouSXQgRmwgbW5vLXdpZGUtYml0ZmllbGRzCkFsd2F5cyB0cmVh dCBiaXQtZmllbGRzIGFzIGludC1zaXplZC4KLlBwCi5JdCBGbCBtNGJ5dGUtZnVuY3Rpb25z Ci5JdCBGbCBtbm8tNGJ5dGUtZnVuY3Rpb25zCkZvcmNlIGFsbCBmdW5jdGlvbnMgdG8gYmUg YWxpZ25lZCB0byBhIGZvdXIgYnl0ZSBib3VuZGFyeS4KLlBwCi5JdCBGbCBtY2FsbGdyYXBo LWRhdGEKLkl0IEZsIG1uby1jYWxsZ3JhcGgtZGF0YQpFbWl0IGNhbGxncmFwaCBpbmZvcm1h dGlvbi4KLlBwCi5JdCBGbCBtc2xvdy1ieXRlcwouSXQgRmwgbW5vLXNsb3ctYnl0ZXMKUHJl ZmVyIHdvcmQgYWNjZXNzIHdoZW4gcmVhZGluZyBieXRlIHF1YW50aXRpZXMuCi5QcAouSXQg RmwgbWxpdHRsZS1lbmRpYW4KLkl0IEZsIG1iaWctZW5kaWFuCkdlbmVyYXRlIGNvZGUgZm9y IGEgbGl0dGxlIGVuZGlhbiB0YXJnZXQuCi5QcAouSXQgRmwgbTIxMAouSXQgRmwgbTM0MApH ZW5lcmF0ZSBjb2RlIGZvciB0aGUgMjEwIHByb2Nlc3Nvci4KLlBwCi5FbAouSXQgU3kgTUlQ UyBPcHRpb25zCi5CbCAtdGFnIC13aWR0aCB4eAouSXQgRmwgRUIKR2VuZXJhdGUgYmlnLWVu ZGlhbiBjb2RlLgouUHAKLkl0IEZsIEVMCkdlbmVyYXRlIGxpdHRsZS1lbmRpYW4gY29kZS4K VGhpcyBpcyB0aGUgZGVmYXVsdCBmb3IKLlN5IG1pcHMqZWwtKi0qCmNvbmZpZ3VyYXRpb25z LgouUHAKLkl0IEZsIG1hcmNoPSBOcyBBciBhcmNoCkdlbmVyYXRlIGNvZGUgdGhhdCB3aWxs IHJ1biBvbgouRW0gYXJjaCAsCndoaWNoIGNhbiBiZSB0aGUgbmFtZSBvZiBhIGdlbmVyaWMg TUlQUyBJU0EsIG9yIHRoZSBuYW1lIG9mIGEgcGFydGljdWxhciBwcm9jZXNzb3IuClRoZSBJ U0EgbmFtZXMgYXJlOgouU3kgbWlwczEgLAouU3kgbWlwczIgLAouU3kgbWlwczMgLAouU3kg bWlwczQgLAouU3kgbWlwczMyICwKLlN5IG1pcHMzMnIyICwKYW5kCi5TeSBtaXBzNjQgLgpU aGUgcHJvY2Vzc29yIG5hbWVzIGFyZToKLlN5IDRrYyAsCi5TeSA0a20gLAouU3kgNGtwICwK LlN5IDVrYyAsCi5TeSA1a2YgLAouU3kgMjBrYyAsCi5TeSAyNGsgLAouU3kgMjRrYyAsCi5T eSAyNGtmICwKLlN5IDI0a3ggLAouU3kgbTRrICwKLlN5IG9yaW9uICwKLlN5IHIyMDAwICwK LlN5IHIzMDAwICwKLlN5IHIzOTAwICwKLlN5IHI0MDAwICwKLlN5IHI0NDAwICwKLlN5IHI0 NjAwICwKLlN5IHI0NjUwICwKLlN5IHI2MDAwICwKLlN5IHI4MDAwICwKLlN5IHJtNzAwMCAs Ci5TeSBybTkwMDAgLAouU3kgc2IxICwKLlN5IHNyNzEwMDAgLAouU3kgdnI0MTAwICwKLlN5 IHZyNDExMSAsCi5TeSB2cjQxMjAgLAouU3kgdnI0MTMwICwKLlN5IHZyNDMwMCAsCi5TeSB2 cjUwMDAgLAouU3kgdnI1NDAwCmFuZAouU3kgdnI1NTAwIC4KVGhlIHNwZWNpYWwgdmFsdWUK LlN5IGZyb20tYWJpCnNlbGVjdHMgdGhlIG1vc3QgY29tcGF0aWJsZSBhcmNoaXRlY3R1cmUg Zm9yIHRoZSBzZWxlY3RlZCBBQkkgKHRoYXQgaXMsCi5TeSBtaXBzMQpmb3IgMzItYml0IEFC SXMgYW5kCi5TeSBtaXBzMwpmb3IgNjQtYml0IEFCSXMpLgouUHAKSW4gcHJvY2Vzc29yIG5h bWVzLCBhIGZpbmFsCi5TeSAwMDAKY2FuIGJlIGFiYnJldmlhdGVkIGFzCi5TeSBrCihmb3Ig ZXhhbXBsZSwKLkZsIG1hcmNoPXIyayApIC4KUHJlZml4ZXMgYXJlIG9wdGlvbmFsLCBhbmQK LlN5IHZyCm1heSBiZSB3cml0dGVuCi5TeSByIC4KLlBwCkdDQyBkZWZpbmVzIHR3byBtYWNy b3MgYmFzZWQgb24gdGhlIHZhbHVlIG9mIHRoaXMgb3B0aW9uLgpUaGUgZmlyc3QgaXMKLlN5 IF9NSVBTX0FSQ0ggLAp3aGljaCBnaXZlcyB0aGUgbmFtZSBvZiB0YXJnZXQgYXJjaGl0ZWN0 dXJlLCBhcyBhIHN0cmluZy4KVGhlIHNlY29uZCBoYXMgdGhlIGZvcm0KLlN5IF9NSVBTX0FS Q0hfCi5FbSBmb28gLAp3aGVyZQouRW0gZm9vCmlzIHRoZSBjYXBpdGFsaXplZCB2YWx1ZSBv ZgouU3kgX01JUFNfQVJDSCAuCkZvciBleGFtcGxlLAouRmwgbWFyY2g9cjIwMDAKd2lsbCBz ZXQKLlN5IF9NSVBTX0FSQ0gKdG8KLlN5IFwmInIyMDAwIgphbmQgZGVmaW5lIHRoZSBtYWNy bwouU3kgX01JUFNfQVJDSF9SMjAwMCAuCi5QcApOb3RlIHRoYXQgdGhlCi5TeSBfTUlQU19B UkNICm1hY3JvIHVzZXMgdGhlIHByb2Nlc3NvciBuYW1lcyBnaXZlbiBhYm92ZS4KSW4gb3Ro ZXIgd29yZHMsIGl0IHdpbGwgaGF2ZSB0aGUgZnVsbCBwcmVmaXggYW5kIHdpbGwgbm90IGFi YnJldmlhdGUKLlN5IDAwMAphcwouU3kgayAuCkluIHRoZSBjYXNlIG9mCi5TeSBmcm9tLWFi aSAsCnRoZSBtYWNybyBuYW1lcyB0aGUgcmVzb2x2ZWQgYXJjaGl0ZWN0dXJlIChlaXRoZXIK LlN5IFwmIm1pcHMxIgpvcgouU3kgXCYibWlwczMiICkgLgpJdCBuYW1lcyB0aGUgZGVmYXVs dCBhcmNoaXRlY3R1cmUgd2hlbiBubwouRmwgbWFyY2gKb3B0aW9uIGlzIGdpdmVuLgouUHAK Lkl0IEZsIG10dW5lPSBOcyBBciBhcmNoCk9wdGltaXplIGZvcgouRW0gYXJjaCAuCkFtb25n IG90aGVyIHRoaW5ncywgdGhpcyBvcHRpb24gY29udHJvbHMgdGhlIHdheSBpbnN0cnVjdGlv bnMgYXJlIHNjaGVkdWxlZCwgYW5kIHRoZSBwZXJjZWl2ZWQgY29zdCBvZiBhcml0aG1ldGlj IG9wZXJhdGlvbnMuClRoZSBsaXN0IG9mCi5FbSBhcmNoCnZhbHVlcyBpcyB0aGUgc2FtZSBh cyBmb3IKLkZsIG1hcmNoIC4KLlBwCldoZW4gdGhpcyBvcHRpb24gaXMgbm90IHVzZWQsIEdD QyB3aWxsIG9wdGltaXplIGZvciB0aGUgcHJvY2Vzc29yIHNwZWNpZmllZCBieQouRmwgbWFy Y2ggLgpCeSB1c2luZwouRmwgbWFyY2gKYW5kCi5GbCBtdHVuZQp0b2dldGhlciwgaXQgaXMg cG9zc2libGUgdG8gZ2VuZXJhdGUgY29kZSB0aGF0IHdpbGwgcnVuIG9uIGEgZmFtaWx5IG9m IHByb2Nlc3NvcnMsIGJ1dCBvcHRpbWl6ZSB0aGUgY29kZSBmb3Igb25lIHBhcnRpY3VsYXIg bWVtYmVyIG9mIHRoYXQgZmFtaWx5LgouUHAKLkZsIG10dW5lCmRlZmluZXMgdGhlIG1hY3Jv cwouU3kgX01JUFNfVFVORQphbmQKLlN5IF9NSVBTX1RVTkVfCi5FbSBmb28gLAp3aGljaCB3 b3JrIGluIHRoZSBzYW1lIHdheSBhcyB0aGUKLkZsIG1hcmNoCm9uZXMgZGVzY3JpYmVkIGFi b3ZlLgouUHAKLkl0IEZsIG1pcHMxCkVxdWl2YWxlbnQgdG8KLkZsIG1hcmNoPW1pcHMxIC4K LlBwCi5JdCBGbCBtaXBzMgpFcXVpdmFsZW50IHRvCi5GbCBtYXJjaD1taXBzMiAuCi5QcAou SXQgRmwgbWlwczMKRXF1aXZhbGVudCB0bwouRmwgbWFyY2g9bWlwczMgLgouUHAKLkl0IEZs IG1pcHM0CkVxdWl2YWxlbnQgdG8KLkZsIG1hcmNoPW1pcHM0IC4KLlBwCi5JdCBGbCBtaXBz MzIKRXF1aXZhbGVudCB0bwouRmwgbWFyY2g9bWlwczMyIC4KLlBwCi5JdCBGbCBtaXBzMzJy MgpFcXVpdmFsZW50IHRvCi5GbCBtYXJjaD1taXBzMzJyMiAuCi5QcAouSXQgRmwgbWlwczY0 CkVxdWl2YWxlbnQgdG8KLkZsIG1hcmNoPW1pcHM2NCAuCi5QcAouSXQgRmwgbWlwczE2Ci5J dCBGbCBtbm8tbWlwczE2CkdlbmVyYXRlIChkbyBub3QgZ2VuZXJhdGUpIE1JUFMxNiBjb2Rl LgpJZiBHQ0MgaXMgdGFyZ2V0dGluZyBhIE1JUFMzMiBvciBNSVBTNjQgYXJjaGl0ZWN0dXJl LCBpdCB3aWxsIG1ha2UgdXNlIG9mIHRoZSBNSVBTMTZlIEFTRS4KLlBwCi5JdCBGbCBtYWJp PTMyCi5JdCBGbCBtYWJpPW82NAouSXQgRmwgbWFiaT1uMzIKLkl0IEZsIG1hYmk9NjQKLkl0 IEZsIG1hYmk9ZWFiaQpHZW5lcmF0ZSBjb2RlIGZvciB0aGUgZ2l2ZW4gQUJJLgouUHAKTm90 ZSB0aGF0IHRoZSBFQUJJIGhhcyBhIDMyLWJpdCBhbmQgYSA2NC1iaXQgdmFyaWFudC4KR0ND IG5vcm1hbGx5IGdlbmVyYXRlcyA2NC1iaXQgY29kZSB3aGVuIHlvdSBzZWxlY3QgYSA2NC1i aXQgYXJjaGl0ZWN0dXJlLCBidXQgeW91IGNhbiB1c2UKLkZsIG1ncDMyCnRvIGdldCAzMi1i aXQgY29kZSBpbnN0ZWFkLgouUHAKRm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSBPNjQgQUJJ LCBzZWUKLkxrIGh0dHA6Ly9nY2MuZ251Lm9yZy9wcm9qZWN0cy9taXBzbzY0LWFiaS5odG1s IC4KLlBwCi5JdCBGbCBtYWJpY2FsbHMKLkl0IEZsIG1uby1hYmljYWxscwpHZW5lcmF0ZSAo ZG8gbm90IGdlbmVyYXRlKSBTVlI0LXN0eWxlIHBvc2l0aW9uLWluZGVwZW5kZW50IGNvZGUu Ci5GbCBtYWJpY2FsbHMKaXMgdGhlIGRlZmF1bHQgZm9yIFNWUjQtYmFzZWQgc3lzdGVtcy4K LlBwCi5JdCBGbCBteGdvdAouSXQgRmwgbW5vLXhnb3QKTGlmdCAoZG8gbm90IGxpZnQpIHRo ZSB1c3VhbCByZXN0cmljdGlvbnMgb24gdGhlIHNpemUgb2YgdGhlIGdsb2JhbCBvZmZzZXQg dGFibGUuCi5QcApHQ0Mgbm9ybWFsbHkgdXNlcyBhIHNpbmdsZSBpbnN0cnVjdGlvbiB0byBs b2FkIHZhbHVlcyBmcm9tIHRoZSBHT1QuCldoaWxlIHRoaXMgaXMgcmVsYXRpdmVseSBlZmZp Y2llbnQsIGl0IHdpbGwgb25seSB3b3JrIGlmIHRoZSBHT1QgaXMgc21hbGxlciB0aGFuIGFi b3V0IDY0ay4KQW55dGhpbmcgbGFyZ2VyIHdpbGwgY2F1c2UgdGhlIGxpbmtlciB0byByZXBv cnQgYW4gZXJyb3Igc3VjaCBhczoKLlBwCi5CZCAtbGl0ZXJhbCAtb2Zmc2V0IGluZGVudApy ZWxvY2F0aW9uIHRydW5jYXRlZCB0byBmaXQ6IFJfTUlQU19HT1QxNiBmb29iYXIKLkVkCklm IHRoaXMgaGFwcGVucywgeW91IHNob3VsZCByZWNvbXBpbGUgeW91ciBjb2RlIHdpdGgKLkZs IG14Z290IC4KSXQgc2hvdWxkIHRoZW4gd29yayB3aXRoIHZlcnkgbGFyZ2UgR09UcywgYWx0 aG91Z2ggaXQgd2lsbCBhbHNvIGJlIGxlc3MgZWZmaWNpZW50LCBzaW5jZSBpdCB3aWxsIHRh a2UgdGhyZWUgaW5zdHJ1Y3Rpb25zIHRvIGZldGNoIHRoZSB2YWx1ZSBvZiBhIGdsb2JhbCBz eW1ib2wuCi5QcApOb3RlIHRoYXQgc29tZSBsaW5rZXJzIGNhbiBjcmVhdGUgbXVsdGlwbGUg R09Ucy4KSWYgeW91IGhhdmUgc3VjaCBhIGxpbmtlciwgeW91IHNob3VsZCBvbmx5IG5lZWQg dG8gdXNlCi5GbCBteGdvdAp3aGVuIGEgc2luZ2xlIG9iamVjdCBmaWxlIGFjY2Vzc2VzIG1v cmUgdGhhbiA2NGsncyB3b3J0aCBvZiBHT1QgZW50cmllcy4KVmVyeSBmZXcgZG8uCi5QcApU aGVzZSBvcHRpb25zIGhhdmUgbm8gZWZmZWN0IHVubGVzcyBHQ0MgaXMgZ2VuZXJhdGluZyBw b3NpdGlvbiBpbmRlcGVuZGVudCBjb2RlLgouUHAKLkl0IEZsIG1ncDMyCkFzc3VtZSB0aGF0 IGdlbmVyYWwtcHVycG9zZSByZWdpc3RlcnMgYXJlIDMyIGJpdHMgd2lkZS4KLlBwCi5JdCBG bCBtZ3A2NApBc3N1bWUgdGhhdCBnZW5lcmFsLXB1cnBvc2UgcmVnaXN0ZXJzIGFyZSA2NCBi aXRzIHdpZGUuCi5QcAouSXQgRmwgbWZwMzIKQXNzdW1lIHRoYXQgZmxvYXRpbmctcG9pbnQg cmVnaXN0ZXJzIGFyZSAzMiBiaXRzIHdpZGUuCi5QcAouSXQgRmwgbWZwNjQKQXNzdW1lIHRo YXQgZmxvYXRpbmctcG9pbnQgcmVnaXN0ZXJzIGFyZSA2NCBiaXRzIHdpZGUuCi5QcAouSXQg RmwgbWhhcmQtZmxvYXQKVXNlIGZsb2F0aW5nLXBvaW50IGNvcHJvY2Vzc29yIGluc3RydWN0 aW9ucy4KLlBwCi5JdCBGbCBtc29mdC1mbG9hdApEbyBub3QgdXNlIGZsb2F0aW5nLXBvaW50 IGNvcHJvY2Vzc29yIGluc3RydWN0aW9ucy4KSW1wbGVtZW50IGZsb2F0aW5nLXBvaW50IGNh bGN1bGF0aW9ucyB1c2luZyBsaWJyYXJ5IGNhbGxzIGluc3RlYWQuCi5QcAouSXQgRmwgbXNp bmdsZS1mbG9hdApBc3N1bWUgdGhhdCB0aGUgZmxvYXRpbmctcG9pbnQgY29wcm9jZXNzb3Ig b25seSBzdXBwb3J0cyBzaW5nbGUtcHJlY2lzaW9uIG9wZXJhdGlvbnMuCi5QcAouSXQgRmwg bWRvdWJsZS1mbG9hdApBc3N1bWUgdGhhdCB0aGUgZmxvYXRpbmctcG9pbnQgY29wcm9jZXNz b3Igc3VwcG9ydHMgZG91YmxlLXByZWNpc2lvbiBvcGVyYXRpb25zLgpUaGlzIGlzIHRoZSBk ZWZhdWx0LgouUHAKLkl0IEZsIG1kc3AKLkl0IEZsIG1uby1kc3AKVXNlIChkbyBub3QgdXNl KSB0aGUgTUlQUyBEU1AgQVNFLgouUHAKLkl0IEZsIG1wYWlyZWQtc2luZ2xlCi5JdCBGbCBt bm8tcGFpcmVkLXNpbmdsZQpVc2UgKGRvIG5vdCB1c2UpIHBhaXJlZC1zaW5nbGUgZmxvYXRp bmctcG9pbnQgaW5zdHJ1Y3Rpb25zLgpUaGlzIG9wdGlvbiBjYW4gb25seSBiZSB1c2VkIHdo ZW4gZ2VuZXJhdGluZyA2NC1iaXQgY29kZSBhbmQgcmVxdWlyZXMgaGFyZHdhcmUgZmxvYXRp bmctcG9pbnQgc3VwcG9ydCB0byBiZSBlbmFibGVkLgouUHAKLkl0IEZsIG1pcHMzZAouSXQg RmwgbW5vLW1pcHMzZApVc2UgKGRvIG5vdCB1c2UpIHRoZSBNSVBTLTNEIEFTRS4KVGhlIG9w dGlvbgouRmwgbWlwczNkCmltcGxpZXMKLkZsIG1wYWlyZWQtc2luZ2xlIC4KLlBwCi5JdCBG bCBtbG9uZzY0CkZvcmNlCi5WYSBsb25nCnR5cGVzIHRvIGJlIDY0IGJpdHMgd2lkZS4KU2Vl Ci5GbCBtbG9uZzMyCmZvciBhbiBleHBsYW5hdGlvbiBvZiB0aGUgZGVmYXVsdCBhbmQgdGhl IHdheSB0aGF0IHRoZSBwb2ludGVyIHNpemUgaXMgZGV0ZXJtaW5lZC4KLlBwCi5JdCBGbCBt bG9uZzMyCkZvcmNlCi5WYSBsb25nICwKLlZhIGludCAsCmFuZCBwb2ludGVyIHR5cGVzIHRv IGJlIDMyIGJpdHMgd2lkZS4KLlBwClRoZSBkZWZhdWx0IHNpemUgb2YKLlZhIGludApzLAou VmEgbG9uZwpzIGFuZCBwb2ludGVycyBkZXBlbmRzIG9uIHRoZSBBQkkuCkFsbCB0aGUgc3Vw cG9ydGVkIEFCSXMgdXNlIDMyLWJpdAouVmEgaW50CnMuClRoZSBuNjQgQUJJIHVzZXMgNjQt Yml0Ci5WYSBsb25nCnMsIGFzIGRvZXMgdGhlIDY0LWJpdCBFQUJJOyB0aGUgb3RoZXJzIHVz ZSAzMi1iaXQKLlZhIGxvbmcKcy4KUG9pbnRlcnMgYXJlIHRoZSBzYW1lIHNpemUgYXMKLlZh IGxvbmcKcywgb3IgdGhlIHNhbWUgc2l6ZSBhcyBpbnRlZ2VyIHJlZ2lzdGVycywgd2hpY2hl dmVyIGlzIHNtYWxsZXIuCi5QcAouSXQgRmwgbXN5bTMyCi5JdCBGbCBtbm8tc3ltMzIKQXNz dW1lIChkbyBub3QgYXNzdW1lKSB0aGF0IGFsbCBzeW1ib2xzIGhhdmUgMzItYml0IHZhbHVl cywgcmVnYXJkbGVzcyBvZiB0aGUgc2VsZWN0ZWQgQUJJLgpUaGlzIG9wdGlvbiBpcyB1c2Vm dWwgaW4gY29tYmluYXRpb24gd2l0aAouRmwgbWFiaT02NAphbmQKLkZsIG1uby1hYmljYWxs cwpiZWNhdXNlIGl0IGFsbG93cyBHQ0MgdG8gZ2VuZXJhdGUgc2hvcnRlciBhbmQgZmFzdGVy IHJlZmVyZW5jZXMgdG8gc3ltYm9saWMgYWRkcmVzc2VzLgouUHAKLkl0IEZsIEcgQXIgbnVt ClB1dCBnbG9iYWwgYW5kIHN0YXRpYyBpdGVtcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8KLkVt IG51bQpieXRlcyBpbnRvIHRoZSBzbWFsbCBkYXRhIG9yIGJzcyBzZWN0aW9uIGluc3RlYWQg b2YgdGhlIG5vcm1hbCBkYXRhIG9yIGJzcyBzZWN0aW9uLgpUaGlzIGFsbG93cyB0aGUgZGF0 YSB0byBiZSBhY2Nlc3NlZCB1c2luZyBhIHNpbmdsZSBpbnN0cnVjdGlvbi4KLlBwCkFsbCBt b2R1bGVzIHNob3VsZCBiZSBjb21waWxlZCB3aXRoIHRoZSBzYW1lCi5GbCBHIEFyIG51bQp2 YWx1ZS4KLlBwCi5JdCBGbCBtZW1iZWRkZWQtZGF0YQouSXQgRmwgbW5vLWVtYmVkZGVkLWRh dGEKQWxsb2NhdGUgdmFyaWFibGVzIHRvIHRoZSByZWFkLW9ubHkgZGF0YSBzZWN0aW9uIGZp cnN0IGlmIHBvc3NpYmxlLCB0aGVuIG5leHQgaW4gdGhlIHNtYWxsIGRhdGEgc2VjdGlvbiBp ZiBwb3NzaWJsZSwgb3RoZXJ3aXNlIGluIGRhdGEuClRoaXMgZ2l2ZXMgc2xpZ2h0bHkgc2xv d2VyIGNvZGUgdGhhbiB0aGUgZGVmYXVsdCwgYnV0IHJlZHVjZXMgdGhlIGFtb3VudCBvZiBS QU0gcmVxdWlyZWQgd2hlbiBleGVjdXRpbmcsIGFuZCB0aHVzIG1heSBiZSBwcmVmZXJyZWQg Zm9yIHNvbWUgZW1iZWRkZWQgc3lzdGVtcy4KLlBwCi5JdCBGbCBtdW5pbml0LWNvbnN0LWlu LXJvZGF0YQouSXQgRmwgbW5vLXVuaW5pdC1jb25zdC1pbi1yb2RhdGEKUHV0IHVuaW5pdGlh bGl6ZWQKLlZhIGNvbnN0CnZhcmlhYmxlcyBpbiB0aGUgcmVhZC1vbmx5IGRhdGEgc2VjdGlv bi4KVGhpcyBvcHRpb24gaXMgb25seSBtZWFuaW5nZnVsIGluIGNvbmp1bmN0aW9uIHdpdGgK LkZsIG1lbWJlZGRlZC1kYXRhIC4KLlBwCi5JdCBGbCBtc3BsaXQtYWRkcmVzc2VzCi5JdCBG bCBtbm8tc3BsaXQtYWRkcmVzc2VzCkVuYWJsZSAoZGlzYWJsZSkgdXNlIG9mIHRoZQouVmEg JWhpKCkKYW5kCi5WYSAlbG8oKQphc3NlbWJsZXIgcmVsb2NhdGlvbiBvcGVyYXRvcnMuClRo aXMgb3B0aW9uIGhhcyBiZWVuIHN1cGVyc2VkZWQgYnkKLkZsIG1leHBsaWNpdC1yZWxvY3MK YnV0IGlzIHJldGFpbmVkIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4KLlBwCi5JdCBG bCBtZXhwbGljaXQtcmVsb2NzCi5JdCBGbCBtbm8tZXhwbGljaXQtcmVsb2NzClVzZSAoZG8g bm90IHVzZSkgYXNzZW1ibGVyIHJlbG9jYXRpb24gb3BlcmF0b3JzIHdoZW4gZGVhbGluZyB3 aXRoIHN5bWJvbGljIGFkZHJlc3Nlcy4KVGhlIGFsdGVybmF0aXZlLCBzZWxlY3RlZCBieQou RmwgbW5vLWV4cGxpY2l0LXJlbG9jcyAsCmlzIHRvIHVzZSBhc3NlbWJsZXIgbWFjcm9zIGlu c3RlYWQuCi5QcAouRmwgbWV4cGxpY2l0LXJlbG9jcwppcyB0aGUgZGVmYXVsdCBpZiBHQ0Mg d2FzIGNvbmZpZ3VyZWQgdG8gdXNlIGFuIGFzc2VtYmxlciB0aGF0IHN1cHBvcnRzIHJlbG9j YXRpb24gb3BlcmF0b3JzLgouUHAKLkl0IEZsIG1jaGVjay16ZXJvLWRpdmlzaW9uCi5JdCBG bCBtbm8tY2hlY2stemVyby1kaXZpc2lvbgpUcmFwIChkbyBub3QgdHJhcCkgb24gaW50ZWdl ciBkaXZpc2lvbiBieSB6ZXJvLgpUaGUgZGVmYXVsdCBpcwouRmwgbWNoZWNrLXplcm8tZGl2 aXNpb24gLgouUHAKLkl0IEZsIG1kaXZpZGUtdHJhcHMKLkl0IEZsIG1kaXZpZGUtYnJlYWtz Ck1JUFMgc3lzdGVtcyBjaGVjayBmb3IgZGl2aXNpb24gYnkgemVybyBieSBnZW5lcmF0aW5n IGVpdGhlciBhIGNvbmRpdGlvbmFsIHRyYXAgb3IgYSBicmVhayBpbnN0cnVjdGlvbi4KVXNp bmcgdHJhcHMgcmVzdWx0cyBpbiBzbWFsbGVyIGNvZGUsIGJ1dCBpcyBvbmx5IHN1cHBvcnRl ZCBvbiBNSVBTIElJIGFuZCBsYXRlci4KQWxzbywgc29tZSB2ZXJzaW9ucyBvZiB0aGUgTGlu dXgga2VybmVsIGhhdmUgYSBidWcgdGhhdCBwcmV2ZW50cyB0cmFwIGZyb20gZ2VuZXJhdGlu ZyB0aGUgcHJvcGVyIHNpZ25hbAouVmEgKCBTSUdGUEUgKSAuClVzZQouRmwgbWRpdmlkZS10 cmFwcwp0byBhbGxvdyBjb25kaXRpb25hbCB0cmFwcyBvbiBhcmNoaXRlY3R1cmVzIHRoYXQg c3VwcG9ydCB0aGVtIGFuZAouRmwgbWRpdmlkZS1icmVha3MKdG8gZm9yY2UgdGhlIHVzZSBv ZiBicmVha3MuCi5QcApUaGUgZGVmYXVsdCBpcyB1c3VhbGx5Ci5GbCBtZGl2aWRlLXRyYXBz ICwKYnV0IHRoaXMgY2FuIGJlIG92ZXJyaWRkZW4gYXQgY29uZmlndXJlIHRpbWUgdXNpbmcK LkZsIC13aXRoLWRpdmlkZT1icmVha3MgLgpEaXZpZGUtYnktemVybyBjaGVja3MgY2FuIGJl IGNvbXBsZXRlbHkgZGlzYWJsZWQgdXNpbmcKLkZsIG1uby1jaGVjay16ZXJvLWRpdmlzaW9u IC4KLlBwCi5JdCBGbCBtbWVtY3B5Ci5JdCBGbCBtbm8tbWVtY3B5CkZvcmNlIChkbyBub3Qg Zm9yY2UpIHRoZSB1c2Ugb2YKLlZhIG1lbWNweSgpCmZvciBub24tdHJpdmlhbCBibG9jayBt b3Zlcy4KVGhlIGRlZmF1bHQgaXMKLkZsIG1uby1tZW1jcHkgLAp3aGljaCBhbGxvd3MgR0ND IHRvIGlubGluZSBtb3N0IGNvbnN0YW50LXNpemVkIGNvcGllcy4KLlBwCi5JdCBGbCBtbG9u Zy1jYWxscwouSXQgRmwgbW5vLWxvbmctY2FsbHMKRGlzYWJsZSAoZG8gbm90IGRpc2FibGUp IHVzZSBvZiB0aGUKLlZhIGphbAppbnN0cnVjdGlvbi4KQ2FsbGluZyBmdW5jdGlvbnMgdXNp bmcKLlZhIGphbAppcyBtb3JlIGVmZmljaWVudCBidXQgcmVxdWlyZXMgdGhlIGNhbGxlciBh bmQgY2FsbGVlIHRvIGJlIGluIHRoZSBzYW1lIDI1NiBtZWdhYnl0ZSBzZWdtZW50LgouUHAK VGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdCBvbiBhYmljYWxscyBjb2RlLgpUaGUgZGVmYXVs dCBpcwouRmwgbW5vLWxvbmctY2FsbHMgLgouUHAKLkl0IEZsIG1tYWQKLkl0IEZsIG1uby1t YWQKRW5hYmxlIChkaXNhYmxlKSB1c2Ugb2YgdGhlCi5WYSBtYWQgLAouVmEgbWFkdQphbmQK LlZhIG11bAppbnN0cnVjdGlvbnMsIGFzIHByb3ZpZGVkIGJ5IHRoZSBSNDY1MCBJU0EuCi5Q cAouSXQgRmwgbWZ1c2VkLW1hZGQKLkl0IEZsIG1uby1mdXNlZC1tYWRkCkVuYWJsZSAoZGlz YWJsZSkgdXNlIG9mIHRoZSBmbG9hdGluZyBwb2ludCBtdWx0aXBseS1hY2N1bXVsYXRlIGlu c3RydWN0aW9ucywgd2hlbiB0aGV5IGFyZSBhdmFpbGFibGUuClRoZSBkZWZhdWx0IGlzCi5G bCBtZnVzZWQtbWFkZCAuCi5QcApXaGVuIG11bHRpcGx5LWFjY3VtdWxhdGUgaW5zdHJ1Y3Rp b25zIGFyZSB1c2VkLCB0aGUgaW50ZXJtZWRpYXRlIHByb2R1Y3QgaXMgY2FsY3VsYXRlZCB0 byBpbmZpbml0ZSBwcmVjaXNpb24gYW5kIGlzIG5vdCBzdWJqZWN0IHRvIHRoZSBGQ1NSIEZs dXNoIHRvIFplcm8gYml0LgpUaGlzIG1heSBiZSB1bmRlc2lyYWJsZSBpbiBzb21lIGNpcmN1 bXN0YW5jZXMuCi5QcAouSXQgRmwgbm9jcHAKVGVsbCB0aGUgTUlQUyBhc3NlbWJsZXIgdG8g bm90IHJ1biBpdHMgcHJlcHJvY2Vzc29yIG92ZXIgdXNlciBhc3NlbWJsZXIgZmlsZXMgKHdp dGggYQouU3kgLnMKc3VmZml4KSB3aGVuIGFzc2VtYmxpbmcgdGhlbS4KLlBwCi5JdCBGbCBt Zml4LXI0MDAwCi5JdCBGbCBtbm8tZml4LXI0MDAwCldvcmsgYXJvdW5kIGNlcnRhaW4gUjQw MDAgQ1BVIGVycmF0YToKLlBwCi5CbCAtZGFzaAouSXQKQSBkb3VibGUtd29yZCBvciBhIHZh cmlhYmxlIHNoaWZ0IG1heSBnaXZlIGFuIGluY29ycmVjdCByZXN1bHQgaWYgZXhlY3V0ZWQg aW1tZWRpYXRlbHkgYWZ0ZXIgc3RhcnRpbmcgYW4gaW50ZWdlciBkaXZpc2lvbi4KLlBwCi5J dApBIGRvdWJsZS13b3JkIG9yIGEgdmFyaWFibGUgc2hpZnQgbWF5IGdpdmUgYW4gaW5jb3Jy ZWN0IHJlc3VsdCBpZiBleGVjdXRlZCB3aGlsZSBhbiBpbnRlZ2VyIG11bHRpcGxpY2F0aW9u IGlzIGluIHByb2dyZXNzLgouUHAKLkl0CkFuIGludGVnZXIgZGl2aXNpb24gbWF5IGdpdmUg YW4gaW5jb3JyZWN0IHJlc3VsdCBpZiBzdGFydGVkIGluIGEgZGVsYXkgc2xvdCBvZiBhIHRh a2VuIGJyYW5jaCBvciBhIGp1bXAuCi5QcAouRWwKLkl0IEZsIG1maXgtcjQ0MDAKLkl0IEZs IG1uby1maXgtcjQ0MDAKV29yayBhcm91bmQgY2VydGFpbiBSNDQwMCBDUFUgZXJyYXRhOgou UHAKLkJsIC1kYXNoCi5JdApBIGRvdWJsZS13b3JkIG9yIGEgdmFyaWFibGUgc2hpZnQgbWF5 IGdpdmUgYW4gaW5jb3JyZWN0IHJlc3VsdCBpZiBleGVjdXRlZCBpbW1lZGlhdGVseSBhZnRl ciBzdGFydGluZyBhbiBpbnRlZ2VyIGRpdmlzaW9uLgouUHAKLkVsCi5JdCBGbCBtZml4LXZy NDEyMAouSXQgRmwgbW5vLWZpeC12cjQxMjAKV29yayBhcm91bmQgY2VydGFpbiBWUjQxMjAg ZXJyYXRhOgouUHAKLkJsIC1kYXNoCi5JdAouVmEgZG11bHR1CmRvZXMgbm90IGFsd2F5cyBw cm9kdWNlIHRoZSBjb3JyZWN0IHJlc3VsdC4KLlBwCi5JdAouVmEgZGl2CmFuZAouVmEgZGRp dgpkbyBub3QgYWx3YXlzIHByb2R1Y2UgdGhlIGNvcnJlY3QgcmVzdWx0IGlmIG9uZSBvZiB0 aGUgb3BlcmFuZHMgaXMgbmVnYXRpdmUuCi5QcAouRWwKVGhlIHdvcmthcm91bmRzIGZvciB0 aGUgZGl2aXNpb24gZXJyYXRhIHJlbHkgb24gc3BlY2lhbCBmdW5jdGlvbnMgaW4KLlBhIGxp YmdjYy5hIC4KQXQgcHJlc2VudCwgdGhlc2UgZnVuY3Rpb25zIGFyZSBvbmx5IHByb3ZpZGVk IGJ5IHRoZQouVmEgbWlwczY0dnIqLWVsZgpjb25maWd1cmF0aW9ucy4KLlBwCk90aGVyIFZS NDEyMCBlcnJhdGEgcmVxdWlyZSBhIG5vcCB0byBiZSBpbnNlcnRlZCBiZXR3ZWVuIGNlcnRh aW4gcGFpcnMgb2YgaW5zdHJ1Y3Rpb25zLgpUaGVzZSBlcnJhdGEgYXJlIGhhbmRsZWQgYnkg dGhlIGFzc2VtYmxlciwgbm90IGJ5IEdDQyBpdHNlbGYuCi5QcAouSXQgRmwgbWZpeC12cjQx MzAKV29yayBhcm91bmQgdGhlIFZSNDEzMAouVmEgbWZsbwovCi5WYSBtZmhpCmVycmF0YS4K VGhlIHdvcmthcm91bmRzIGFyZSBpbXBsZW1lbnRlZCBieSB0aGUgYXNzZW1ibGVyIHJhdGhl ciB0aGFuIGJ5IEdDQywgYWx0aG91Z2ggR0NDIHdpbGwgYXZvaWQgdXNpbmcKLlZhIG1mbG8K YW5kCi5WYSBtZmhpCmlmIHRoZSBWUjQxMzAKLlZhIG1hY2MgLAouVmEgbWFjY2hpICwKLlZh IGRtYWNjCmFuZAouVmEgZG1hY2NoaQppbnN0cnVjdGlvbnMgYXJlIGF2YWlsYWJsZSBpbnN0 ZWFkLgouUHAKLkl0IEZsIG1maXgtc2IxCi5JdCBGbCBtbm8tZml4LXNiMQpXb3JrIGFyb3Vu ZCBjZXJ0YWluIFNCLTEgQ1BVIGNvcmUgZXJyYXRhLgooVGhpcyBmbGFnIGN1cnJlbnRseSB3 b3JrcyBhcm91bmQgdGhlIFNCLTEgcmV2aXNpb24gMiAiRjEiIGFuZCAiRjIiIGZsb2F0aW5n IHBvaW50IGVycmF0YS4pCi5QcAouSXQgRmwgbWZsdXNoLWZ1bmM9IE5zIEFyIGZ1bmMKLkl0 IEZsIG1uby1mbHVzaC1mdW5jClNwZWNpZmllcyB0aGUgZnVuY3Rpb24gdG8gY2FsbCB0byBm bHVzaCB0aGUgSSBhbmQgRCBjYWNoZXMsIG9yIHRvIG5vdCBjYWxsIGFueSBzdWNoIGZ1bmN0 aW9uLgpJZiBjYWxsZWQsIHRoZSBmdW5jdGlvbiBtdXN0IHRha2UgdGhlIHNhbWUgYXJndW1l bnRzIGFzIHRoZSBjb21tb24KLlZhIF9mbHVzaF9mdW5jKCkgLAp0aGF0IGlzLCB0aGUgYWRk cmVzcyBvZiB0aGUgbWVtb3J5IHJhbmdlIGZvciB3aGljaCB0aGUgY2FjaGUgaXMgYmVpbmcg Zmx1c2hlZCwgdGhlIHNpemUgb2YgdGhlIG1lbW9yeSByYW5nZSwgYW5kIHRoZSBudW1iZXIg MyAodG8gZmx1c2ggYm90aCBjYWNoZXMpLgpUaGUgZGVmYXVsdCBkZXBlbmRzIG9uIHRoZSB0 YXJnZXQgR0NDIHdhcyBjb25maWd1cmVkIGZvciwgYnV0IGNvbW1vbmx5IGlzIGVpdGhlcgou U3kgX2ZsdXNoX2Z1bmMKb3IKLlN5IF9fY3B1X2ZsdXNoIC4KLlBwCi5JdCBGbCBtYnJhbmNo LWxpa2VseQouSXQgRmwgbW5vLWJyYW5jaC1saWtlbHkKRW5hYmxlIG9yIGRpc2FibGUgdXNl IG9mIEJyYW5jaCBMaWtlbHkgaW5zdHJ1Y3Rpb25zLCByZWdhcmRsZXNzIG9mIHRoZSBkZWZh dWx0IGZvciB0aGUgc2VsZWN0ZWQgYXJjaGl0ZWN0dXJlLgpCeSBkZWZhdWx0LCBCcmFuY2gg TGlrZWx5IGluc3RydWN0aW9ucyBtYXkgYmUgZ2VuZXJhdGVkIGlmIHRoZXkgYXJlIHN1cHBv cnRlZCBieSB0aGUgc2VsZWN0ZWQgYXJjaGl0ZWN0dXJlLgpBbiBleGNlcHRpb24gaXMgZm9y IHRoZSBNSVBTMzIgYW5kIE1JUFM2NCBhcmNoaXRlY3R1cmVzIGFuZCBwcm9jZXNzb3JzIHdo aWNoIGltcGxlbWVudCB0aG9zZSBhcmNoaXRlY3R1cmVzOyBmb3IgdGhvc2UsIEJyYW5jaCBM aWtlbHkgaW5zdHJ1Y3Rpb25zIHdpbGwgbm90IGJlIGdlbmVyYXRlZCBieSBkZWZhdWx0IGJl Y2F1c2UgdGhlIE1JUFMzMiBhbmQgTUlQUzY0IGFyY2hpdGVjdHVyZXMgc3BlY2lmaWNhbGx5 IGRlcHJlY2F0ZSB0aGVpciB1c2UuCi5QcAouSXQgRmwgbWZwLWV4Y2VwdGlvbnMKLkl0IEZs IG1uby1mcC1leGNlcHRpb25zClNwZWNpZmllcyB3aGV0aGVyIEZQIGV4Y2VwdGlvbnMgYXJl IGVuYWJsZWQuClRoaXMgYWZmZWN0cyBob3cgd2Ugc2NoZWR1bGUgRlAgaW5zdHJ1Y3Rpb25z IGZvciBzb21lIHByb2Nlc3NvcnMuClRoZSBkZWZhdWx0IGlzIHRoYXQgRlAgZXhjZXB0aW9u cyBhcmUgZW5hYmxlZC4KLlBwCkZvciBpbnN0YW5jZSwgb24gdGhlIFNCLTEsIGlmIEZQIGV4 Y2VwdGlvbnMgYXJlIGRpc2FibGVkLCBhbmQgd2UgYXJlIGVtaXR0aW5nIDY0LWJpdCBjb2Rl LCB0aGVuIHdlIGNhbiB1c2UgYm90aCBGUCBwaXBlcy4KT3RoZXJ3aXNlLCB3ZSBjYW4gb25s eSB1c2Ugb25lIEZQIHBpcGUuCi5QcAouSXQgRmwgbXZyNDEzMC1hbGlnbgouSXQgRmwgbW5v LXZyNDEzMC1hbGlnbgpUaGUgVlI0MTMwIHBpcGVsaW5lIGlzIHR3by13YXkgc3VwZXJzY2Fs YXIsIGJ1dCBjYW4gb25seSBpc3N1ZSB0d28gaW5zdHJ1Y3Rpb25zIHRvZ2V0aGVyIGlmIHRo ZSBmaXJzdCBvbmUgaXMgOC1ieXRlIGFsaWduZWQuCldoZW4gdGhpcyBvcHRpb24gaXMgZW5h YmxlZCwgR0NDIHdpbGwgYWxpZ24gcGFpcnMgb2YgaW5zdHJ1Y3Rpb25zIHRoYXQgaXQgdGhp bmtzIHNob3VsZCBleGVjdXRlIGluIHBhcmFsbGVsLgouUHAKVGhpcyBvcHRpb24gb25seSBo YXMgYW4gZWZmZWN0IHdoZW4gb3B0aW1pemluZyBmb3IgdGhlIFZSNDEzMC4KSXQgbm9ybWFs bHkgbWFrZXMgY29kZSBmYXN0ZXIsIGJ1dCBhdCB0aGUgZXhwZW5zZSBvZiBtYWtpbmcgaXQg YmlnZ2VyLgpJdCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgYXQgb3B0aW1pemF0aW9uIGxldmVs Ci5GbCBPMyAuCi5QcAouRWwKLkl0IFN5IE1NSVggT3B0aW9ucwpUaGVzZSBvcHRpb25zIGFy ZSBkZWZpbmVkIGZvciB0aGUgTU1JWDoKLlBwCi5CbCAtdGFnIC13aWR0aCB4eAouSXQgRmwg bWxpYmZ1bmNzCi5JdCBGbCBtbm8tbGliZnVuY3MKU3BlY2lmeSB0aGF0IGludHJpbnNpYyBs aWJyYXJ5IGZ1bmN0aW9ucyBhcmUgYmVpbmcgY29tcGlsZWQsIHBhc3NpbmcgYWxsIHZhbHVl cyBpbiByZWdpc3RlcnMsIG5vIG1hdHRlciB0aGUgc2l6ZS4KLlBwCi5JdCBGbCBtZXBzaWxv bgouSXQgRmwgbW5vLWVwc2lsb24KR2VuZXJhdGUgZmxvYXRpbmctcG9pbnQgY29tcGFyaXNv biBpbnN0cnVjdGlvbnMgdGhhdCBjb21wYXJlIHdpdGggcmVzcGVjdCB0byB0aGUKLlZhIHJF CmVwc2lsb24gcmVnaXN0ZXIuCi5QcAouSXQgRmwgbWFiaT1tbWl4d2FyZQouSXQgRmwgbWFi aT1nbnUKR2VuZXJhdGUgY29kZSB0aGF0IHBhc3NlcyBmdW5jdGlvbiBwYXJhbWV0ZXJzIGFu ZCByZXR1cm4gdmFsdWVzIHRoYXQgKGluIHRoZSBjYWxsZWQgZnVuY3Rpb24pIGFyZSBzZWVu IGFzIHJlZ2lzdGVycwouVmEgJDAKYW5kIHVwLCBhcyBvcHBvc2VkIHRvIHRoZSBHTlUgQUJJ IHdoaWNoIHVzZXMgZ2xvYmFsIHJlZ2lzdGVycwouVmEgJDIzMQphbmQgdXAuCi5QcAouSXQg RmwgbXplcm8tZXh0ZW5kCi5JdCBGbCBtbm8temVyby1leHRlbmQKV2hlbiByZWFkaW5nIGRh dGEgZnJvbSBtZW1vcnkgaW4gc2l6ZXMgc2hvcnRlciB0aGFuIDY0IGJpdHMsIHVzZSAoZG8g bm90IHVzZSkgemVyby1leHRlbmRpbmcgbG9hZCBpbnN0cnVjdGlvbnMgYnkgZGVmYXVsdCwg cmF0aGVyIHRoYW4gc2lnbi1leHRlbmRpbmcgb25lcy4KLlBwCi5JdCBGbCBta251dGhkaXYK Lkl0IEZsIG1uby1rbnV0aGRpdgpNYWtlIHRoZSByZXN1bHQgb2YgYSBkaXZpc2lvbiB5aWVs ZGluZyBhIHJlbWFpbmRlciBoYXZlIHRoZSBzYW1lIHNpZ24gYXMgdGhlIGRpdmlzb3IuCldp dGggdGhlIGRlZmF1bHQsCi5GbCBtbm8ta251dGhkaXYgLAp0aGUgc2lnbiBvZiB0aGUgcmVt YWluZGVyIGZvbGxvd3MgdGhlIHNpZ24gb2YgdGhlIGRpdmlkZW5kLgpCb3RoIG1ldGhvZHMg YXJlIGFyaXRobWV0aWNhbGx5IHZhbGlkLCB0aGUgbGF0dGVyIGJlaW5nIGFsbW9zdCBleGNs dXNpdmVseSB1c2VkLgouUHAKLkl0IEZsIG10b3BsZXZlbC1zeW1ib2xzCi5JdCBGbCBtbm8t dG9wbGV2ZWwtc3ltYm9scwpQcmVwZW5kIChkbyBub3QgcHJlcGVuZCkgYQouU3kgOgp0byBh bGwgZ2xvYmFsIHN5bWJvbHMsIHNvIHRoZSBhc3NlbWJseSBjb2RlIGNhbiBiZSB1c2VkIHdp dGggdGhlCi5WYSBQUkVGSVgKYXNzZW1ibHkgZGlyZWN0aXZlLgouUHAKLkl0IEZsIG1lbGYK R2VuZXJhdGUgYW4gZXhlY3V0YWJsZSBpbiB0aGUgRUxGIGZvcm1hdCwgcmF0aGVyIHRoYW4g dGhlIGRlZmF1bHQKLlN5IG1tbwpmb3JtYXQgdXNlZCBieSB0aGUKLlN5IG1taXgKc2ltdWxh dG9yLgouUHAKLkl0IEZsIG1icmFuY2gtcHJlZGljdAouSXQgRmwgbW5vLWJyYW5jaC1wcmVk aWN0ClVzZSAoZG8gbm90IHVzZSkgdGhlIHByb2JhYmxlLWJyYW5jaCBpbnN0cnVjdGlvbnMs IHdoZW4gc3RhdGljIGJyYW5jaCBwcmVkaWN0aW9uIGluZGljYXRlcyBhIHByb2JhYmxlIGJy YW5jaC4KLlBwCi5JdCBGbCBtYmFzZS1hZGRyZXNzZXMKLkl0IEZsIG1uby1iYXNlLWFkZHJl c3NlcwpHZW5lcmF0ZSAoZG8gbm90IGdlbmVyYXRlKSBjb2RlIHRoYXQgdXNlcwouRW0gYmFz ZSBhZGRyZXNzZXMgLgpVc2luZyBhIGJhc2UgYWRkcmVzcyBhdXRvbWF0aWNhbGx5IGdlbmVy YXRlcyBhIHJlcXVlc3QgKGhhbmRsZWQgYnkgdGhlIGFzc2VtYmxlciBhbmQgdGhlIGxpbmtl cikgZm9yIGEgY29uc3RhbnQgdG8gYmUgc2V0IHVwIGluIGEgZ2xvYmFsIHJlZ2lzdGVyLgpU aGUgcmVnaXN0ZXIgaXMgdXNlZCBmb3Igb25lIG9yIG1vcmUgYmFzZSBhZGRyZXNzIHJlcXVl c3RzIHdpdGhpbiB0aGUgcmFuZ2UgMCB0byAyNTUgZnJvbSB0aGUgdmFsdWUgaGVsZCBpbiB0 aGUgcmVnaXN0ZXIuClRoZSBnZW5lcmFsbHkgbGVhZHMgdG8gc2hvcnQgYW5kIGZhc3QgY29k ZSwgYnV0IHRoZSBudW1iZXIgb2YgZGlmZmVyZW50IGRhdGEgaXRlbXMgdGhhdCBjYW4gYmUg YWRkcmVzc2VkIGlzIGxpbWl0ZWQuClRoaXMgbWVhbnMgdGhhdCBhIHByb2dyYW0gdGhhdCB1 c2VzIGxvdHMgb2Ygc3RhdGljIGRhdGEgbWF5IHJlcXVpcmUKLkZsIG1uby1iYXNlLWFkZHJl c3NlcyAuCi5QcAouSXQgRmwgbXNpbmdsZS1leGl0Ci5JdCBGbCBtbm8tc2luZ2xlLWV4aXQK Rm9yY2UgKGRvIG5vdCBmb3JjZSkgZ2VuZXJhdGVkIGNvZGUgdG8gaGF2ZSBhIHNpbmdsZSBl eGl0IHBvaW50IGluIGVhY2ggZnVuY3Rpb24uCi5QcAouRWwKLkl0IFN5IE1OMTAzMDAgT3B0 aW9ucwpUaGVzZQouRmwgbQpvcHRpb25zIGFyZSBkZWZpbmVkIGZvciBNYXRzdXNoaXRhIE1O MTAzMDAgYXJjaGl0ZWN0dXJlczoKLlBwCi5CbCAtdGFnIC13aWR0aCB4eAouSXQgRmwgbW11 bHQtYnVnCkdlbmVyYXRlIGNvZGUgdG8gYXZvaWQgYnVncyBpbiB0aGUgbXVsdGlwbHkgaW5z dHJ1Y3Rpb25zIGZvciB0aGUgTU4xMDMwMCBwcm9jZXNzb3JzLgpUaGlzIGlzIHRoZSBkZWZh dWx0LgouUHAKLkl0IEZsIG1uby1tdWx0LWJ1ZwpEbyBub3QgZ2VuZXJhdGUgY29kZSB0byBh dm9pZCBidWdzIGluIHRoZSBtdWx0aXBseSBpbnN0cnVjdGlvbnMgZm9yIHRoZSBNTjEwMzAw IHByb2Nlc3NvcnMuCi5QcAouSXQgRmwgbWFtMzMKR2VuZXJhdGUgY29kZSB3aGljaCB1c2Vz IGZlYXR1cmVzIHNwZWNpZmljIHRvIHRoZSBBTTMzIHByb2Nlc3Nvci4KLlBwCi5JdCBGbCBt bm8tYW0zMwpEbyBub3QgZ2VuZXJhdGUgY29kZSB3aGljaCB1c2VzIGZlYXR1cmVzIHNwZWNp ZmljIHRvIHRoZSBBTTMzIHByb2Nlc3Nvci4KVGhpcyBpcyB0aGUgZGVmYXVsdC4KLlBwCi5J dCBGbCBtcmV0dXJuLXBvaW50ZXItb24tZDAKV2hlbiBnZW5lcmF0aW5nIGEgZnVuY3Rpb24g d2hpY2ggcmV0dXJucyBhIHBvaW50ZXIsIHJldHVybiB0aGUgcG9pbnRlciBpbiBib3RoCi5W YSBhMAphbmQKLlZhIGQwIC4KT3RoZXJ3aXNlLCB0aGUgcG9pbnRlciBpcyByZXR1cm5lZCBv bmx5IGluIGEwLCBhbmQgYXR0ZW1wdHMgdG8gY2FsbCBzdWNoIGZ1bmN0aW9ucyB3aXRob3V0 IGEgcHJvdG90eXBlIHdvdWxkIHJlc3VsdCBpbiBlcnJvcnMuCk5vdGUgdGhhdCB0aGlzIG9w dGlvbiBpcyBvbiBieSBkZWZhdWx0OyB1c2UKLkZsIG1uby1yZXR1cm4tcG9pbnRlci1vbi1k MAp0byBkaXNhYmxlIGl0LgouUHAKLkl0IEZsIG1uby1jcnQwCkRvIG5vdCBsaW5rIGluIHRo ZSBDIHJ1bi10aW1lIGluaXRpYWxpemF0aW9uIG9iamVjdCBmaWxlLgouUHAKLkl0IEZsIG1y ZWxheApJbmRpY2F0ZSB0byB0aGUgbGlua2VyIHRoYXQgaXQgc2hvdWxkIHBlcmZvcm0gYSBy ZWxheGF0aW9uIG9wdGltaXphdGlvbiBwYXNzIHRvIHNob3J0ZW4gYnJhbmNoZXMsIGNhbGxz IGFuZCBhYnNvbHV0ZSBtZW1vcnkgYWRkcmVzc2VzLgpUaGlzIG9wdGlvbiBvbmx5IGhhcyBh biBlZmZlY3Qgd2hlbiB1c2VkIG9uIHRoZSBjb21tYW5kIGxpbmUgZm9yIHRoZSBmaW5hbCBs aW5rIHN0ZXAuCi5QcApUaGlzIG9wdGlvbiBtYWtlcyBzeW1ib2xpYyBkZWJ1Z2dpbmcgaW1w b3NzaWJsZS4KLlBwCi5FbAouSXQgU3kgTVQgT3B0aW9ucwpUaGVzZQouRmwgbQpvcHRpb25z IGFyZSBkZWZpbmVkIGZvciBNb3JwaG8gTVQgYXJjaGl0ZWN0dXJlczoKLlBwCi5CbCAtdGFn IC13aWR0aCB4eAouSXQgRmwgbWFyY2g9IE5zIEFyIGNwdS10eXBlCkdlbmVyYXRlIGNvZGUg dGhhdCB3aWxsIHJ1biBvbgouRW0gY3B1LXR5cGUgLAp3aGljaCBpcyB0aGUgbmFtZSBvZiBh IHN5c3RlbSByZXByZXNlbnRpbmcgYSBjZXJ0YWluIHByb2Nlc3NvciB0eXBlLgpQb3NzaWJs ZSB2YWx1ZXMgZm9yCi5FbSBjcHUtdHlwZQphcmUKLlN5IG1zMS02NC0wMDEgLAouU3kgbXMx LTE2LTAwMiAsCi5TeSBtczEtMTYtMDAzCmFuZAouU3kgbXMyIC4KLlBwCldoZW4gdGhpcyBv cHRpb24gaXMgbm90IHVzZWQsIHRoZSBkZWZhdWx0IGlzCi5GbCBtYXJjaD1tczEtMTYtMDAy IC4KLlBwCi5JdCBGbCBtYmFjYwpVc2UgYnl0ZSBsb2FkcyBhbmQgc3RvcmVzIHdoZW4gZ2Vu ZXJhdGluZyBjb2RlLgouUHAKLkl0IEZsIG1uby1iYWNjCkRvIG5vdCB1c2UgYnl0ZSBsb2Fk cyBhbmQgc3RvcmVzIHdoZW4gZ2VuZXJhdGluZyBjb2RlLgouUHAKLkl0IEZsIG1zaW0KVXNl IHNpbXVsYXRvciBydW50aW1lCi5QcAouSXQgRmwgbW5vLWNydDAKRG8gbm90IGxpbmsgaW4g dGhlIEMgcnVuLXRpbWUgaW5pdGlhbGl6YXRpb24gb2JqZWN0IGZpbGUKLlBhIGNydGkubyAu Ck90aGVyIHJ1bi10aW1lIGluaXRpYWxpemF0aW9uIGFuZCB0ZXJtaW5hdGlvbiBmaWxlcyBz dWNoIGFzCi5QYSBzdGFydHVwLm8KYW5kCi5QYSBleGl0Lm8KYXJlIHN0aWxsIGluY2x1ZGVk IG9uIHRoZSBsaW5rZXIgY29tbWFuZCBsaW5lLgouUHAKLkVsCi5JdCBTeSBQRFAtMTEgT3B0 aW9ucwpUaGVzZSBvcHRpb25zIGFyZSBkZWZpbmVkIGZvciB0aGUgUERQLTExOgouUHAKLkJs IC10YWcgLXdpZHRoIHh4Ci5JdCBGbCBtZnB1ClVzZSBoYXJkd2FyZSBGUFAgZmxvYXRpbmcg cG9pbnQuClRoaXMgaXMgdGhlIGRlZmF1bHQuCihGSVMgZmxvYXRpbmcgcG9pbnQgb24gdGhl IFBEUC0xMS80MCBpcyBub3Qgc3VwcG9ydGVkLikKLlBwCi5JdCBGbCBtc29mdC1mbG9hdApE byBub3QgdXNlIGhhcmR3YXJlIGZsb2F0aW5nIHBvaW50LgouUHAKLkl0IEZsIG1hYzAKUmV0 dXJuIGZsb2F0aW5nLXBvaW50IHJlc3VsdHMgaW4gYWMwIChmcjAgaW4gVW5peCBhc3NlbWJs ZXIgc3ludGF4KS4KLlBwCi5JdCBGbCBtbm8tYWMwClJldHVybiBmbG9hdGluZy1wb2ludCBy ZXN1bHRzIGluIG1lbW9yeS4KVGhpcyBpcyB0aGUgZGVmYXVsdC4KLlBwCi5JdCBGbCBtNDAK R2VuZXJhdGUgY29kZSBmb3IgYSBQRFAtMTEvNDAuCi5QcAouSXQgRmwgbTQ1CkdlbmVyYXRl IGNvZGUgZm9yIGEgUERQLTExLzQ1LgpUaGlzIGlzIHRoZSBkZWZhdWx0LgouUHAKLkl0IEZs IG0xMApHZW5lcmF0ZSBjb2RlIGZvciBhIFBEUC0xMS8xMC4KLlBwCi5JdCBGbCBtYmNvcHkt YnVpbHRpbgpVc2UgaW5saW5lCi5WYSBtb3ZtZW1oaQpwYXR0ZXJucyBmb3IgY29weWluZyBt ZW1vcnkuClRoaXMgaXMgdGhlIGRlZmF1bHQuCi5QcAouSXQgRmwgbWJjb3B5CkRvIG5vdCB1 c2UgaW5saW5lCi5WYSBtb3ZtZW1oaQpwYXR0ZXJucyBmb3IgY29weWluZyBtZW1vcnkuCi5Q cAouSXQgRmwgbWludDE2Ci5JdCBGbCBtbm8taW50MzIKVXNlIDE2LWJpdAouVmEgaW50IC4K VGhpcyBpcyB0aGUgZGVmYXVsdC4KLlBwCi5JdCBGbCBtaW50MzIKLkl0IEZsIG1uby1pbnQx NgpVc2UgMzItYml0Ci5WYSBpbnQgLgouUHAKLkl0IEZsIG1mbG9hdDY0Ci5JdCBGbCBtbm8t ZmxvYXQzMgpVc2UgNjQtYml0Ci5WYSBmbG9hdCAuClRoaXMgaXMgdGhlIGRlZmF1bHQuCi5Q cAouSXQgRmwgbWZsb2F0MzIKLkl0IEZsIG1uby1mbG9hdDY0ClVzZSAzMi1iaXQKLlZhIGZs b2F0IC4KLlBwCi5JdCBGbCBtYWJzaGkKVXNlCi5WYSBhYnNoaTIKcGF0dGVybi4KVGhpcyBp cyB0aGUgZGVmYXVsdC4KLlBwCi5JdCBGbCBtbm8tYWJzaGkKRG8gbm90IHVzZQouVmEgYWJz aGkyCnBhdHRlcm4uCi5QcAouSXQgRmwgbWJyYW5jaC1leHBlbnNpdmUKUHJldGVuZCB0aGF0 IGJyYW5jaGVzIGFyZSBleHBlbnNpdmUuClRoaXMgaXMgZm9yIGV4cGVyaW1lbnRpbmcgd2l0 aCBjb2RlIGdlbmVyYXRpb24gb25seS4KLlBwCi5JdCBGbCBtYnJhbmNoLWNoZWFwCkRvIG5v dCBwcmV0ZW5kIHRoYXQgYnJhbmNoZXMgYXJlIGV4cGVuc2l2ZS4KVGhpcyBpcyB0aGUgZGVm YXVsdC4KLlBwCi5JdCBGbCBtc3BsaXQKR2VuZXJhdGUgY29kZSBmb3IgYSBzeXN0ZW0gd2l0 aCBzcGxpdCBJJkQuCi5QcAouSXQgRmwgbW5vLXNwbGl0CkdlbmVyYXRlIGNvZGUgZm9yIGEg c3lzdGVtIHdpdGhvdXQgc3BsaXQgSSZELgpUaGlzIGlzIHRoZSBkZWZhdWx0LgouUHAKLkl0 IEZsIG11bml4LWFzbQpVc2UgVW5peCBhc3NlbWJsZXIgc3ludGF4LgpUaGlzIGlzIHRoZSBk ZWZhdWx0IHdoZW4gY29uZmlndXJlZCBmb3IKLlN5IHBkcDExLSotYnNkIC4KLlBwCi5JdCBG bCBtZGVjLWFzbQpVc2UgREVDIGFzc2VtYmxlciBzeW50YXguClRoaXMgaXMgdGhlIGRlZmF1 bHQgd2hlbiBjb25maWd1cmVkIGZvciBhbnkgUERQLTExIHRhcmdldCBvdGhlciB0aGFuCi5T eSBwZHAxMS0qLWJzZCAuCi5QcAouRWwKLkl0IFN5IFBvd2VyUEMgT3B0aW9ucwpUaGVzZSBh cmUgbGlzdGVkIHVuZGVyCi5JdCBTeSBJQk0gUlMvNjAwMCBhbmQgUG93ZXJQQyBPcHRpb25z ClRoZXNlCi5GbCBtCm9wdGlvbnMgYXJlIGRlZmluZWQgZm9yIHRoZSBJQk0gUlMvNjAwMCBh bmQgUG93ZXJQQzoKLlBwCi5CbCAtdGFnIC13aWR0aCB4eAouSXQgRmwgbXBvd2VyCi5JdCBG bCBtbm8tcG93ZXIKLkl0IEZsIG1wb3dlcjIKLkl0IEZsIG1uby1wb3dlcjIKLkl0IEZsIG1w b3dlcnBjCi5JdCBGbCBtbm8tcG93ZXJwYwouSXQgRmwgbXBvd2VycGMtZ3BvcHQKLkl0IEZs IG1uby1wb3dlcnBjLWdwb3B0Ci5JdCBGbCBtcG93ZXJwYy1nZnhvcHQKLkl0IEZsIG1uby1w b3dlcnBjLWdmeG9wdAouSXQgRmwgbXBvd2VycGM2NAouSXQgRmwgbW5vLXBvd2VycGM2NAou SXQgRmwgbW1mY3JmCi5JdCBGbCBtbm8tbWZjcmYKLkl0IEZsIG1wb3BjbnRiCi5JdCBGbCBt bm8tcG9wY250YgouSXQgRmwgbWZwcm5kCi5JdCBGbCBtbm8tZnBybmQKR0NDIHN1cHBvcnRz IHR3byByZWxhdGVkIGluc3RydWN0aW9uIHNldCBhcmNoaXRlY3R1cmVzIGZvciB0aGUgUlMv NjAwMCBhbmQgUG93ZXJQQy4KVGhlCi5FbSBQT1dFUgppbnN0cnVjdGlvbiBzZXQgYXJlIHRo b3NlIGluc3RydWN0aW9ucyBzdXBwb3J0ZWQgYnkgdGhlCi5TeSByaW9zCmNoaXAgc2V0IHVz ZWQgaW4gdGhlIG9yaWdpbmFsIFJTLzYwMDAgc3lzdGVtcyBhbmQgdGhlCi5FbSBQb3dlclBD Cmluc3RydWN0aW9uIHNldCBpcyB0aGUgYXJjaGl0ZWN0dXJlIG9mIHRoZSBGcmVlc2NhbGUg TVBDNXh4LCBNUEM2eHgsIE1QQzh4eCBtaWNyb3Byb2Nlc3NvcnMsIGFuZCB0aGUgSUJNIDR4 eCwgNnh4LCBhbmQgZm9sbG93LW9uIG1pY3JvcHJvY2Vzc29ycy4KLlBwCk5laXRoZXIgYXJj aGl0ZWN0dXJlIGlzIGEgc3Vic2V0IG9mIHRoZSBvdGhlci4KSG93ZXZlciB0aGVyZSBpcyBh IGxhcmdlIGNvbW1vbiBzdWJzZXQgb2YgaW5zdHJ1Y3Rpb25zIHN1cHBvcnRlZCBieSBib3Ro LgpBbiBNUSByZWdpc3RlciBpcyBpbmNsdWRlZCBpbiBwcm9jZXNzb3JzIHN1cHBvcnRpbmcg dGhlIFBPV0VSIGFyY2hpdGVjdHVyZS4KLlBwCllvdSB1c2UgdGhlc2Ugb3B0aW9ucyB0byBz cGVjaWZ5IHdoaWNoIGluc3RydWN0aW9ucyBhcmUgYXZhaWxhYmxlIG9uIHRoZSBwcm9jZXNz b3IgeW91IGFyZSB1c2luZy4KVGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlc2Ugb3B0aW9ucyBp cyBkZXRlcm1pbmVkIHdoZW4gY29uZmlndXJpbmcgR0NDLgpTcGVjaWZ5aW5nIHRoZQouRmwg bWNwdT0gTnMgQXIgY3B1X3R5cGUKb3ZlcnJpZGVzIHRoZSBzcGVjaWZpY2F0aW9uIG9mIHRo ZXNlIG9wdGlvbnMuCldlIHJlY29tbWVuZCB5b3UgdXNlIHRoZQouRmwgbWNwdT0gTnMgQXIg Y3B1X3R5cGUKb3B0aW9uIHJhdGhlciB0aGFuIHRoZSBvcHRpb25zIGxpc3RlZCBhYm92ZS4K LlBwClRoZQouRmwgbXBvd2VyCm9wdGlvbiBhbGxvd3MgR0NDIHRvIGdlbmVyYXRlIGluc3Ry dWN0aW9ucyB0aGF0IGFyZSBmb3VuZCBvbmx5IGluIHRoZSBQT1dFUiBhcmNoaXRlY3R1cmUg YW5kIHRvIHVzZSB0aGUgTVEgcmVnaXN0ZXIuClNwZWNpZnlpbmcKLkZsIG1wb3dlcjIKaW1w bGllcwouRmwgcG93ZXIKYW5kIGFsc28gYWxsb3dzIEdDQyB0byBnZW5lcmF0ZSBpbnN0cnVj dGlvbnMgdGhhdCBhcmUgcHJlc2VudCBpbiB0aGUgUE9XRVIyIGFyY2hpdGVjdHVyZSBidXQg bm90IHRoZSBvcmlnaW5hbCBQT1dFUiBhcmNoaXRlY3R1cmUuCi5QcApUaGUKLkZsIG1wb3dl cnBjCm9wdGlvbiBhbGxvd3MgR0NDIHRvIGdlbmVyYXRlIGluc3RydWN0aW9ucyB0aGF0IGFy ZSBmb3VuZCBvbmx5IGluIHRoZSAzMi1iaXQgc3Vic2V0IG9mIHRoZSBQb3dlclBDIGFyY2hp dGVjdHVyZS4KU3BlY2lmeWluZwouRmwgbXBvd2VycGMtZ3BvcHQKaW1wbGllcwouRmwgbXBv d2VycGMKYW5kIGFsc28gYWxsb3dzIEdDQyB0byB1c2UgdGhlIG9wdGlvbmFsIFBvd2VyUEMg YXJjaGl0ZWN0dXJlIGluc3RydWN0aW9ucyBpbiB0aGUgR2VuZXJhbCBQdXJwb3NlIGdyb3Vw LCBpbmNsdWRpbmcgZmxvYXRpbmctcG9pbnQgc3F1YXJlIHJvb3QuClNwZWNpZnlpbmcKLkZs IG1wb3dlcnBjLWdmeG9wdAppbXBsaWVzCi5GbCBtcG93ZXJwYwphbmQgYWxzbyBhbGxvd3Mg R0NDIHRvIHVzZSB0aGUgb3B0aW9uYWwgUG93ZXJQQyBhcmNoaXRlY3R1cmUgaW5zdHJ1Y3Rp b25zIGluIHRoZSBHcmFwaGljcyBncm91cCwgaW5jbHVkaW5nIGZsb2F0aW5nLXBvaW50IHNl bGVjdC4KLlBwClRoZQouRmwgbW1mY3JmCm9wdGlvbiBhbGxvd3MgR0NDIHRvIGdlbmVyYXRl IHRoZSBtb3ZlIGZyb20gY29uZGl0aW9uIHJlZ2lzdGVyIGZpZWxkIGluc3RydWN0aW9uIGlt cGxlbWVudGVkIG9uIHRoZSBQT1dFUjQgcHJvY2Vzc29yIGFuZCBvdGhlciBwcm9jZXNzb3Jz IHRoYXQgc3VwcG9ydCB0aGUgUG93ZXJQQyBWMi4wMSBhcmNoaXRlY3R1cmUuClRoZQouRmwg bXBvcGNudGIKb3B0aW9uIGFsbG93cyBHQ0MgdG8gZ2VuZXJhdGUgdGhlIHBvcGNvdW50IGFu ZCBkb3VibGUgcHJlY2lzaW9uIEZQIHJlY2lwcm9jYWwgZXN0aW1hdGUgaW5zdHJ1Y3Rpb24g aW1wbGVtZW50ZWQgb24gdGhlIFBPV0VSNSBwcm9jZXNzb3IgYW5kIG90aGVyIHByb2Nlc3Nv cnMgdGhhdCBzdXBwb3J0IHRoZSBQb3dlclBDIFYyLjAyIGFyY2hpdGVjdHVyZS4KVGhlCi5G bCBtZnBybmQKb3B0aW9uIGFsbG93cyBHQ0MgdG8gZ2VuZXJhdGUgdGhlIEZQIHJvdW5kIHRv IGludGVnZXIgaW5zdHJ1Y3Rpb25zIGltcGxlbWVudGVkIG9uIHRoZSBQT1dFUjUrIHByb2Nl c3NvciBhbmQgb3RoZXIgcHJvY2Vzc29ycyB0aGF0IHN1cHBvcnQgdGhlIFBvd2VyUEMgVjIu MDMgYXJjaGl0ZWN0dXJlLgouUHAKVGhlCi5GbCBtcG93ZXJwYzY0Cm9wdGlvbiBhbGxvd3Mg R0NDIHRvIGdlbmVyYXRlIHRoZSBhZGRpdGlvbmFsIDY0LWJpdCBpbnN0cnVjdGlvbnMgdGhh dCBhcmUgZm91bmQgaW4gdGhlIGZ1bGwgUG93ZXJQQzY0IGFyY2hpdGVjdHVyZSBhbmQgdG8g dHJlYXQgR1BScyBhcyA2NC1iaXQsIGRvdWJsZXdvcmQgcXVhbnRpdGllcy4KR0NDIGRlZmF1 bHRzIHRvCi5GbCBtbm8tcG93ZXJwYzY0IC4KLlBwCklmIHlvdSBzcGVjaWZ5IGJvdGgKLkZs IG1uby1wb3dlcgphbmQKLkZsIG1uby1wb3dlcnBjICwKR0NDIHdpbGwgdXNlIG9ubHkgdGhl IGluc3RydWN0aW9ucyBpbiB0aGUgY29tbW9uIHN1YnNldCBvZiBib3RoIGFyY2hpdGVjdHVy ZXMgcGx1cyBzb21lIHNwZWNpYWwgQUlYIGNvbW1vbi1tb2RlIGNhbGxzLCBhbmQgd2lsbCBu b3QgdXNlIHRoZSBNUSByZWdpc3Rlci4KU3BlY2lmeWluZyBib3RoCi5GbCBtcG93ZXIKYW5k Ci5GbCBtcG93ZXJwYwpwZXJtaXRzIEdDQyB0byB1c2UgYW55IGluc3RydWN0aW9uIGZyb20g ZWl0aGVyIGFyY2hpdGVjdHVyZSBhbmQgdG8gYWxsb3cgdXNlIG9mIHRoZSBNUSByZWdpc3Rl cjsgc3BlY2lmeSB0aGlzIGZvciB0aGUgTW90b3JvbGEgTVBDNjAxLgouUHAKLkl0IEZsIG1u ZXctbW5lbW9uaWNzCi5JdCBGbCBtb2xkLW1uZW1vbmljcwpTZWxlY3Qgd2hpY2ggbW5lbW9u aWNzIHRvIHVzZSBpbiB0aGUgZ2VuZXJhdGVkIGFzc2VtYmxlciBjb2RlLgpXaXRoCi5GbCBt bmV3LW1uZW1vbmljcyAsCkdDQyB1c2VzIHRoZSBhc3NlbWJsZXIgbW5lbW9uaWNzIGRlZmlu ZWQgZm9yIHRoZSBQb3dlclBDIGFyY2hpdGVjdHVyZS4KV2l0aAouRmwgbW9sZC1tbmVtb25p Y3MKaXQgdXNlcyB0aGUgYXNzZW1ibGVyIG1uZW1vbmljcyBkZWZpbmVkIGZvciB0aGUgUE9X RVIgYXJjaGl0ZWN0dXJlLgpJbnN0cnVjdGlvbnMgZGVmaW5lZCBpbiBvbmx5IG9uZSBhcmNo aXRlY3R1cmUgaGF2ZSBvbmx5IG9uZSBtbmVtb25pYzsgR0NDIHVzZXMgdGhhdCBtbmVtb25p YyBpcnJlc3BlY3RpdmUgb2Ygd2hpY2ggb2YgdGhlc2Ugb3B0aW9ucyBpcyBzcGVjaWZpZWQu Ci5QcApHQ0MgZGVmYXVsdHMgdG8gdGhlIG1uZW1vbmljcyBhcHByb3ByaWF0ZSBmb3IgdGhl IGFyY2hpdGVjdHVyZSBpbiB1c2UuClNwZWNpZnlpbmcKLkZsIG1jcHU9IE5zIEFyIGNwdV90 eXBlCnNvbWV0aW1lcyBvdmVycmlkZXMgdGhlIHZhbHVlIG9mIHRoZXNlIG9wdGlvbi4KVW5s ZXNzIHlvdSBhcmUgYnVpbGRpbmcgYSBjcm9zcy1jb21waWxlciwgeW91IHNob3VsZCBub3Jt YWxseSBub3Qgc3BlY2lmeSBlaXRoZXIKLkZsIG1uZXctbW5lbW9uaWNzCm9yCi5GbCBtb2xk LW1uZW1vbmljcyAsCmJ1dCBzaG91bGQgaW5zdGVhZCBhY2NlcHQgdGhlIGRlZmF1bHQuCi5Q cAouSXQgRmwgbWNwdT0gTnMgQXIgY3B1X3R5cGUKU2V0IGFyY2hpdGVjdHVyZSB0eXBlLCBy ZWdpc3RlciB1c2FnZSwgY2hvaWNlIG9mIG1uZW1vbmljcywgYW5kIGluc3RydWN0aW9uIHNj aGVkdWxpbmcgcGFyYW1ldGVycyBmb3IgbWFjaGluZSB0eXBlCi5FbSBjcHVfdHlwZSAuClN1 cHBvcnRlZCB2YWx1ZXMgZm9yCi5FbSBjcHVfdHlwZQphcmUKLlN5IDQwMSAsCi5TeSA0MDMg LAouU3kgNDA1ICwKLlN5IDQwNWZwICwKLlN5IDQ0MCAsCi5TeSA0NDBmcCAsCi5TeSA1MDUg LAouU3kgNjAxICwKLlN5IDYwMiAsCi5TeSA2MDMgLAouU3kgNjAzZSAsCi5TeSA2MDQgLAou U3kgNjA0ZSAsCi5TeSA2MjAgLAouU3kgNjMwICwKLlN5IDc0MCAsCi5TeSA3NDAwICwKLlN5 IDc0NTAgLAouU3kgNzUwICwKLlN5IDgwMSAsCi5TeSA4MjEgLAouU3kgODIzICwKLlN5IDg2 MCAsCi5TeSA5NzAgLAouU3kgODU0MCAsCi5TeSBlYzYwM2UgLAouU3kgRzMgLAouU3kgRzQg LAouU3kgRzUgLAouU3kgcG93ZXIgLAouU3kgcG93ZXIyICwKLlN5IHBvd2VyMyAsCi5TeSBw b3dlcjQgLAouU3kgcG93ZXI1ICwKLlN5IHBvd2VyNSsgLAouU3kgcG93ZXI2ICwKLlN5IGNv bW1vbiAsCi5TeSBwb3dlcnBjICwKLlN5IHBvd2VycGM2NCAsCi5TeSByaW9zICwKLlN5IHJp b3MxICwKLlN5IHJpb3MyICwKLlN5IHJzYyAsCmFuZAouU3kgcnM2NCAuCi5QcAouRmwgbWNw dT1jb21tb24Kc2VsZWN0cyBhIGNvbXBsZXRlbHkgZ2VuZXJpYyBwcm9jZXNzb3IuCkNvZGUg Z2VuZXJhdGVkIHVuZGVyIHRoaXMgb3B0aW9uIHdpbGwgcnVuIG9uIGFueSBQT1dFUiBvciBQ b3dlclBDIHByb2Nlc3Nvci4KR0NDIHdpbGwgdXNlIG9ubHkgdGhlIGluc3RydWN0aW9ucyBp biB0aGUgY29tbW9uIHN1YnNldCBvZiBib3RoIGFyY2hpdGVjdHVyZXMsIGFuZCB3aWxsIG5v dCB1c2UgdGhlIE1RIHJlZ2lzdGVyLgpHQ0MgYXNzdW1lcyBhIGdlbmVyaWMgcHJvY2Vzc29y IG1vZGVsIGZvciBzY2hlZHVsaW5nIHB1cnBvc2VzLgouUHAKLkZsIG1jcHU9cG93ZXIgLAou RmwgbWNwdT1wb3dlcjIgLAouRmwgbWNwdT1wb3dlcnBjICwKYW5kCi5GbCBtY3B1PXBvd2Vy cGM2NApzcGVjaWZ5IGdlbmVyaWMgUE9XRVIsIFBPV0VSMiwgcHVyZSAzMi1iaXQgUG93ZXJQ QyAoaS5lLiwgbm90IE1QQzYwMSksIGFuZCA2NC1iaXQgUG93ZXJQQyBhcmNoaXRlY3R1cmUg bWFjaGluZSB0eXBlcywgd2l0aCBhbiBhcHByb3ByaWF0ZSwgZ2VuZXJpYyBwcm9jZXNzb3Ig bW9kZWwgYXNzdW1lZCBmb3Igc2NoZWR1bGluZyBwdXJwb3Nlcy4KLlBwClRoZSBvdGhlciBv cHRpb25zIHNwZWNpZnkgYSBzcGVjaWZpYyBwcm9jZXNzb3IuCkNvZGUgZ2VuZXJhdGVkIHVu ZGVyIHRob3NlIG9wdGlvbnMgd2lsbCBydW4gYmVzdCBvbiB0aGF0IHByb2Nlc3NvciwgYW5k IG1heSBub3QgcnVuIGF0IGFsbCBvbiBvdGhlcnMuCi5QcApUaGUKLkZsIG1jcHUKb3B0aW9u cyBhdXRvbWF0aWNhbGx5IGVuYWJsZSBvciBkaXNhYmxlIHRoZSBmb2xsb3dpbmcgb3B0aW9u czoKLkZsIG1hbHRpdmVjICwKLkZsIG1mcHJuZCAsCi5GbCBtaGFyZC1mbG9hdCAsCi5GbCBt bWZjcmYgLAouRmwgbW11bHRpcGxlICwKLkZsIG1uZXctbW5lbW9uaWNzICwKLkZsIG1wb3Bj bnRiICwKLkZsIG1wb3dlciAsCi5GbCBtcG93ZXIyICwKLkZsIG1wb3dlcnBjNjQgLAouRmwg bXBvd2VycGMtZ3BvcHQgLAouRmwgbXBvd2VycGMtZ2Z4b3B0ICwKLkZsIG1zdHJpbmcgLgpU aGUgcGFydGljdWxhciBvcHRpb25zIHNldCBmb3IgYW55IHBhcnRpY3VsYXIgQ1BVIHdpbGwg dmFyeSBiZXR3ZWVuIGNvbXBpbGVyIHZlcnNpb25zLCBkZXBlbmRpbmcgb24gd2hhdCBzZXR0 aW5nIHNlZW1zIHRvIHByb2R1Y2Ugb3B0aW1hbCBjb2RlIGZvciB0aGF0IENQVTsgaXQgZG9l c24ndCBuZWNlc3NhcmlseSByZWZsZWN0IHRoZSBhY3R1YWwgaGFyZHdhcmUncyBjYXBhYmls aXRpZXMuCklmIHlvdSB3aXNoIHRvIHNldCBhbiBpbmRpdmlkdWFsIG9wdGlvbiB0byBhIHBh cnRpY3VsYXIgdmFsdWUsIHlvdSBtYXkgc3BlY2lmeSBpdCBhZnRlciB0aGUKLkZsIG1jcHUK b3B0aW9uLCBsaWtlCi5GbCBtY3B1PTk3MCBGbCBtbm8tYWx0aXZlYyAuCi5QcApPbiBBSVgs IHRoZQouRmwgbWFsdGl2ZWMKYW5kCi5GbCBtcG93ZXJwYzY0Cm9wdGlvbnMgYXJlIG5vdCBl bmFibGVkIG9yIGRpc2FibGVkIGJ5IHRoZQouRmwgbWNwdQpvcHRpb24gYXQgcHJlc2VudCBi ZWNhdXNlIEFJWCBkb2VzIG5vdCBoYXZlIGZ1bGwgc3VwcG9ydCBmb3IgdGhlc2Ugb3B0aW9u cy4KWW91IG1heSBzdGlsbCBlbmFibGUgb3IgZGlzYWJsZSB0aGVtIGluZGl2aWR1YWxseSBp ZiB5b3UncmUgc3VyZSBpdCdsbCB3b3JrIGluIHlvdXIgZW52aXJvbm1lbnQuCi5QcAouSXQg RmwgbXR1bmU9IE5zIEFyIGNwdV90eXBlClNldCB0aGUgaW5zdHJ1Y3Rpb24gc2NoZWR1bGlu ZyBwYXJhbWV0ZXJzIGZvciBtYWNoaW5lIHR5cGUKLkVtIGNwdV90eXBlICwKYnV0IGRvIG5v dCBzZXQgdGhlIGFyY2hpdGVjdHVyZSB0eXBlLCByZWdpc3RlciB1c2FnZSwgb3IgY2hvaWNl IG9mIG1uZW1vbmljcywgYXMKLkZsIG1jcHU9IE5zIEFyIGNwdV90eXBlCndvdWxkLgpUaGUg c2FtZSB2YWx1ZXMgZm9yCi5FbSBjcHVfdHlwZQphcmUgdXNlZCBmb3IKLkZsIG10dW5lCmFz IGZvcgouRmwgbWNwdSAuCklmIGJvdGggYXJlIHNwZWNpZmllZCwgdGhlIGNvZGUgZ2VuZXJh dGVkIHdpbGwgdXNlIHRoZSBhcmNoaXRlY3R1cmUsIHJlZ2lzdGVycywgYW5kIG1uZW1vbmlj cyBzZXQgYnkKLkZsIG1jcHUgLApidXQgdGhlIHNjaGVkdWxpbmcgcGFyYW1ldGVycyBzZXQg YnkKLkZsIG10dW5lIC4KLlBwCi5JdCBGbCBtc3dkaXYKLkl0IEZsIG1uby1zd2RpdgpHZW5l cmF0ZSBjb2RlIHRvIGNvbXB1dGUgZGl2aXNpb24gYXMgcmVjaXByb2NhbCBlc3RpbWF0ZSBh bmQgaXRlcmF0aXZlIHJlZmluZW1lbnQsIGNyZWF0aW5nIG9wcG9ydHVuaXRpZXMgZm9yIGlu Y3JlYXNlZCB0aHJvdWdocHV0LgpUaGlzIGZlYXR1cmUgcmVxdWlyZXM6IG9wdGlvbmFsIFBv d2VyUEMgR3JhcGhpY3MgaW5zdHJ1Y3Rpb24gc2V0IGZvciBzaW5nbGUgcHJlY2lzaW9uIGFu ZCBGUkUgaW5zdHJ1Y3Rpb24gZm9yIGRvdWJsZSBwcmVjaXNpb24sIGFzc3VtaW5nIGRpdmlk ZXMgY2Fubm90IGdlbmVyYXRlIHVzZXItdmlzaWJsZSB0cmFwcywgYW5kIHRoZSBkb21haW4g dmFsdWVzIG5vdCBpbmNsdWRlIEluZmluaXRpZXMsIGRlbm9ybWFscyBvciB6ZXJvIGRlbm9t aW5hdG9yLgouUHAKLkl0IEZsIG1hbHRpdmVjCi5JdCBGbCBtbm8tYWx0aXZlYwpHZW5lcmF0 ZSBjb2RlIHRoYXQgdXNlcyAoZG9lcyBub3QgdXNlKSBBbHRpVmVjIGluc3RydWN0aW9ucywg YW5kIGFsc28gZW5hYmxlIHRoZSB1c2Ugb2YgYnVpbHQtaW4gZnVuY3Rpb25zIHRoYXQgYWxs b3cgbW9yZSBkaXJlY3QgYWNjZXNzIHRvIHRoZSBBbHRpVmVjIGluc3RydWN0aW9uIHNldC4K WW91IG1heSBhbHNvIG5lZWQgdG8gc2V0Ci5GbCBtYWJpPWFsdGl2ZWMKdG8gYWRqdXN0IHRo ZSBjdXJyZW50IEFCSSB3aXRoIEFsdGlWZWMgQUJJIGVuaGFuY2VtZW50cy4KLlBwCi5JdCBG bCBtdnJzYXZlCi5JdCBGbCBtbm8tdnJzYXZlCkdlbmVyYXRlIFZSU0FWRSBpbnN0cnVjdGlv bnMgd2hlbiBnZW5lcmF0aW5nIEFsdGlWZWMgY29kZS4KLlBwCi5JdCBGbCBtc2VjdXJlLXBs dApHZW5lcmF0ZSBjb2RlIHRoYXQgYWxsb3dzIGxkIGFuZCBsZC5zbyB0byBidWlsZCBleGVj dXRhYmxlcyBhbmQgc2hhcmVkIGxpYnJhcmllcyB3aXRoIG5vbi1leGVjIC5wbHQgYW5kIC5n b3Qgc2VjdGlvbnMuClRoaXMgaXMgYSBQb3dlclBDIDMyLWJpdCBTWVNWIEFCSSBvcHRpb24u Ci5QcAouSXQgRmwgbWJzcy1wbHQKR2VuZXJhdGUgY29kZSB0aGF0IHVzZXMgYSBCU1MgLnBs dCBzZWN0aW9uIHRoYXQgbGQuc28gZmlsbHMgaW4sIGFuZCByZXF1aXJlcyAucGx0IGFuZCAu Z290IHNlY3Rpb25zIHRoYXQgYXJlIGJvdGggd3JpdGFibGUgYW5kIGV4ZWN1dGFibGUuClRo aXMgaXMgYSBQb3dlclBDIDMyLWJpdCBTWVNWIEFCSSBvcHRpb24uCi5QcAouSXQgRmwgbWlz ZWwKLkl0IEZsIG1uby1pc2VsClRoaXMgc3dpdGNoIGVuYWJsZXMgb3IgZGlzYWJsZXMgdGhl IGdlbmVyYXRpb24gb2YgSVNFTCBpbnN0cnVjdGlvbnMuCi5QcAouSXQgRmwgbWlzZWw9IE5z IEFyIHllcy9ubwpUaGlzIHN3aXRjaCBoYXMgYmVlbiBkZXByZWNhdGVkLgpVc2UKLkZsIG1p c2VsCmFuZAouRmwgbW5vLWlzZWwKaW5zdGVhZC4KLlBwCi5JdCBGbCBtc3BlCi5JdCBGbCBt bm8taXNlbApUaGlzIHN3aXRjaCBlbmFibGVzIG9yIGRpc2FibGVzIHRoZSBnZW5lcmF0aW9u IG9mIFNQRSBzaW1kIGluc3RydWN0aW9ucy4KLlBwCi5JdCBGbCBtc3BlPSBOcyBBciB5ZXMv bm8KVGhpcyBvcHRpb24gaGFzIGJlZW4gZGVwcmVjYXRlZC4KVXNlCi5GbCBtc3BlCmFuZAou RmwgbW5vLXNwZQppbnN0ZWFkLgouUHAKLkl0IEZsIG1mbG9hdC1ncHJzPSBOcyBBciB5ZXMv c2luZ2xlL2RvdWJsZS9ubwouSXQgRmwgbWZsb2F0LWdwcnMKVGhpcyBzd2l0Y2ggZW5hYmxl cyBvciBkaXNhYmxlcyB0aGUgZ2VuZXJhdGlvbiBvZiBmbG9hdGluZyBwb2ludCBvcGVyYXRp b25zIG9uIHRoZSBnZW5lcmFsIHB1cnBvc2UgcmVnaXN0ZXJzIGZvciBhcmNoaXRlY3R1cmVz IHRoYXQgc3VwcG9ydCBpdC4KLlBwClRoZSBhcmd1bWVudAouRW0geWVzCm9yCi5FbSBzaW5n bGUKZW5hYmxlcyB0aGUgdXNlIG9mIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQg b3BlcmF0aW9ucy4KLlBwClRoZSBhcmd1bWVudAouRW0gZG91YmxlCmVuYWJsZXMgdGhlIHVz ZSBvZiBzaW5nbGUgYW5kIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQgb3BlcmF0 aW9ucy4KLlBwClRoZSBhcmd1bWVudAouRW0gbm8KZGlzYWJsZXMgZmxvYXRpbmcgcG9pbnQg b3BlcmF0aW9ucyBvbiB0aGUgZ2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVycy4KLlBwClRoaXMg b3B0aW9uIGlzIGN1cnJlbnRseSBvbmx5IGF2YWlsYWJsZSBvbiB0aGUgTVBDODU0eC4KLlBw Ci5JdCBGbCBtMzIKLkl0IEZsIG02NApHZW5lcmF0ZSBjb2RlIGZvciAzMi1iaXQgb3IgNjQt Yml0IGVudmlyb25tZW50cyBvZiBEYXJ3aW4gYW5kIFNWUjQgdGFyZ2V0cyAoaW5jbHVkaW5n IEdOVS9MaW51eCkuClRoZSAzMi1iaXQgZW52aXJvbm1lbnQgc2V0cyBpbnQsIGxvbmcgYW5k IHBvaW50ZXIgdG8gMzIgYml0cyBhbmQgZ2VuZXJhdGVzIGNvZGUgdGhhdCBydW5zIG9uIGFu eSBQb3dlclBDIHZhcmlhbnQuClRoZSA2NC1iaXQgZW52aXJvbm1lbnQgc2V0cyBpbnQgdG8g MzIgYml0cyBhbmQgbG9uZyBhbmQgcG9pbnRlciB0byA2NCBiaXRzLCBhbmQgZ2VuZXJhdGVz IGNvZGUgZm9yIFBvd2VyUEM2NCwgYXMgZm9yCi5GbCBtcG93ZXJwYzY0IC4KLlBwCi5JdCBG bCBtZnVsbC10b2MKLkl0IEZsIG1uby1mcC1pbi10b2MKLkl0IEZsIG1uby1zdW0taW4tdG9j Ci5JdCBGbCBtbWluaW1hbC10b2MKTW9kaWZ5IGdlbmVyYXRpb24gb2YgdGhlIFRPQyAoVGFi bGUgT2YgQ29udGVudHMpLCB3aGljaCBpcyBjcmVhdGVkIGZvciBldmVyeSBleGVjdXRhYmxl IGZpbGUuClRoZQouRmwgbWZ1bGwtdG9jCm9wdGlvbiBpcyBzZWxlY3RlZCBieSBkZWZhdWx0 LgpJbiB0aGF0IGNhc2UsIEdDQyB3aWxsIGFsbG9jYXRlIGF0IGxlYXN0IG9uZSBUT0MgZW50 cnkgZm9yIGVhY2ggdW5pcXVlIG5vbi1hdXRvbWF0aWMgdmFyaWFibGUgcmVmZXJlbmNlIGlu IHlvdXIgcHJvZ3JhbS4KR0NDIHdpbGwgYWxzbyBwbGFjZSBmbG9hdGluZy1wb2ludCBjb25z dGFudHMgaW4gdGhlIFRPQy4KSG93ZXZlciwgb25seSAxNiwzODQgZW50cmllcyBhcmUgYXZh aWxhYmxlIGluIHRoZSBUT0MuCi5QcApJZiB5b3UgcmVjZWl2ZSBhIGxpbmtlciBlcnJvciBt ZXNzYWdlIHRoYXQgc2F5aW5nIHlvdSBoYXZlIG92ZXJmbG93ZWQgdGhlIGF2YWlsYWJsZSBU T0Mgc3BhY2UsIHlvdSBjYW4gcmVkdWNlIHRoZSBhbW91bnQgb2YgVE9DIHNwYWNlIHVzZWQg d2l0aCB0aGUKLkZsIG1uby1mcC1pbi10b2MKYW5kCi5GbCBtbm8tc3VtLWluLXRvYwpvcHRp b25zLgouRmwgbW5vLWZwLWluLXRvYwpwcmV2ZW50cyBHQ0MgZnJvbSBwdXR0aW5nIGZsb2F0 aW5nLXBvaW50IGNvbnN0YW50cyBpbiB0aGUgVE9DIGFuZAouRmwgbW5vLXN1bS1pbi10b2MK Zm9yY2VzIEdDQyB0byBnZW5lcmF0ZSBjb2RlIHRvIGNhbGN1bGF0ZSB0aGUgc3VtIG9mIGFu IGFkZHJlc3MgYW5kIGEgY29uc3RhbnQgYXQgcnVuLXRpbWUgaW5zdGVhZCBvZiBwdXR0aW5n IHRoYXQgc3VtIGludG8gdGhlIFRPQy4KWW91IG1heSBzcGVjaWZ5IG9uZSBvciBib3RoIG9m IHRoZXNlIG9wdGlvbnMuCkVhY2ggY2F1c2VzIEdDQyB0byBwcm9kdWNlIHZlcnkgc2xpZ2h0 bHkgc2xvd2VyIGFuZCBsYXJnZXIgY29kZSBhdCB0aGUgZXhwZW5zZSBvZiBjb25zZXJ2aW5n IFRPQyBzcGFjZS4KLlBwCklmIHlvdSBzdGlsbCBydW4gb3V0IG9mIHNwYWNlIGluIHRoZSBU T0MgZXZlbiB3aGVuIHlvdSBzcGVjaWZ5IGJvdGggb2YgdGhlc2Ugb3B0aW9ucywgc3BlY2lm eQouRmwgbW1pbmltYWwtdG9jCmluc3RlYWQuClRoaXMgb3B0aW9uIGNhdXNlcyBHQ0MgdG8g bWFrZSBvbmx5IG9uZSBUT0MgZW50cnkgZm9yIGV2ZXJ5IGZpbGUuCldoZW4geW91IHNwZWNp ZnkgdGhpcyBvcHRpb24sIEdDQyB3aWxsIHByb2R1Y2UgY29kZSB0aGF0IGlzIHNsb3dlciBh bmQgbGFyZ2VyIGJ1dCB3aGljaCB1c2VzIGV4dHJlbWVseSBsaXR0bGUgVE9DIHNwYWNlLgpZ b3UgbWF5IHdpc2ggdG8gdXNlIHRoaXMgb3B0aW9uIG9ubHkgb24gZmlsZXMgdGhhdCBjb250 YWluIGxlc3MgZnJlcXVlbnRseSBleGVjdXRlZCBjb2RlLgouUHAKLkl0IEZsIG1haXg2NAou SXQgRmwgbWFpeDMyCkVuYWJsZSA2NC1iaXQgQUlYIEFCSSBhbmQgY2FsbGluZyBjb252ZW50 aW9uOiA2NC1iaXQgcG9pbnRlcnMsIDY0LWJpdAouVmEgbG9uZwp0eXBlLCBhbmQgdGhlIGlu ZnJhc3RydWN0dXJlIG5lZWRlZCB0byBzdXBwb3J0IHRoZW0uClNwZWNpZnlpbmcKLkZsIG1h aXg2NAppbXBsaWVzCi5GbCBtcG93ZXJwYzY0CmFuZAouRmwgbXBvd2VycGMgLAp3aGlsZQou RmwgbWFpeDMyCmRpc2FibGVzIHRoZSA2NC1iaXQgQUJJIGFuZCBpbXBsaWVzCi5GbCBtbm8t cG93ZXJwYzY0IC4KR0NDIGRlZmF1bHRzIHRvCi5GbCBtYWl4MzIgLgouUHAKLkl0IEZsIG14 bC1jb21wYXQKLkl0IEZsIG1uby14bC1jb21wYXQKUHJvZHVjZSBjb2RlIHRoYXQgY29uZm9y bXMgbW9yZSBjbG9zZWx5IHRvIElCTSBYTCBjb21waWxlciBzZW1hbnRpY3Mgd2hlbiB1c2lu ZyBBSVgtY29tcGF0aWJsZSBBQkkuClBhc3MgZmxvYXRpbmctcG9pbnQgYXJndW1lbnRzIHRv IHByb3RvdHlwZWQgZnVuY3Rpb25zIGJleW9uZCB0aGUgcmVnaXN0ZXIgc2F2ZSBhcmVhIChS U0EpIG9uIHRoZSBzdGFjayBpbiBhZGRpdGlvbiB0byBhcmd1bWVudCBGUFJzLgpEbyBub3Qg YXNzdW1lIHRoYXQgbW9zdCBzaWduaWZpY2FudCBkb3VibGUgaW4gMTI4LWJpdCBsb25nIGRv dWJsZSB2YWx1ZSBpcyBwcm9wZXJseSByb3VuZGVkIHdoZW4gY29tcGFyaW5nIHZhbHVlcyBh bmQgY29udmVydGluZyB0byBkb3VibGUuClVzZSBYTCBzeW1ib2wgbmFtZXMgZm9yIGxvbmcg ZG91YmxlIHN1cHBvcnQgcm91dGluZXMuCi5QcApUaGUgQUlYIGNhbGxpbmcgY29udmVudGlv biB3YXMgZXh0ZW5kZWQgYnV0IG5vdCBpbml0aWFsbHkgZG9jdW1lbnRlZCB0byBoYW5kbGUg YW4gb2JzY3VyZSBLJlIgQyBjYXNlIG9mIGNhbGxpbmcgYSBmdW5jdGlvbiB0aGF0IHRha2Vz IHRoZSBhZGRyZXNzIG9mIGl0cyBhcmd1bWVudHMgd2l0aCBmZXdlciBhcmd1bWVudHMgdGhh biBkZWNsYXJlZC4KSUJNIFhMIGNvbXBpbGVycyBhY2Nlc3MgZmxvYXRpbmcgcG9pbnQgYXJn dW1lbnRzIHdoaWNoIGRvIG5vdCBmaXQgaW4gdGhlIFJTQSBmcm9tIHRoZSBzdGFjayB3aGVu IGEgc3Vicm91dGluZSBpcyBjb21waWxlZCB3aXRob3V0IG9wdGltaXphdGlvbi4KQmVjYXVz ZSBhbHdheXMgc3RvcmluZyBmbG9hdGluZy1wb2ludCBhcmd1bWVudHMgb24gdGhlIHN0YWNr IGlzIGluZWZmaWNpZW50IGFuZCByYXJlbHkgbmVlZGVkLCB0aGlzIG9wdGlvbiBpcyBub3Qg ZW5hYmxlZCBieSBkZWZhdWx0IGFuZCBvbmx5IGlzIG5lY2Vzc2FyeSB3aGVuIGNhbGxpbmcg c3Vicm91dGluZXMgY29tcGlsZWQgYnkgSUJNIFhMIGNvbXBpbGVycyB3aXRob3V0IG9wdGlt aXphdGlvbi4KLlBwCi5JdCBGbCBtcGUKU3VwcG9ydAouRW0gSUJNIFJTLzYwMDAgU1AKLkVt IFBhcmFsbGVsIEVudmlyb25tZW50CihQRSkuCkxpbmsgYW4gYXBwbGljYXRpb24gd3JpdHRl biB0byB1c2UgbWVzc2FnZSBwYXNzaW5nIHdpdGggc3BlY2lhbCBzdGFydHVwIGNvZGUgdG8g ZW5hYmxlIHRoZSBhcHBsaWNhdGlvbiB0byBydW4uClRoZSBzeXN0ZW0gbXVzdCBoYXZlIFBF IGluc3RhbGxlZCBpbiB0aGUgc3RhbmRhcmQgbG9jYXRpb24KLlBhICggL3Vzci9scHAvcHBl LnBvZS8gKSAsCm9yIHRoZQouUGEgc3BlY3MKZmlsZSBtdXN0IGJlIG92ZXJyaWRkZW4gd2l0 aCB0aGUKLkZsIHNwZWNzPQpvcHRpb24gdG8gc3BlY2lmeSB0aGUgYXBwcm9wcmlhdGUgZGly ZWN0b3J5IGxvY2F0aW9uLgpUaGUgUGFyYWxsZWwgRW52aXJvbm1lbnQgZG9lcyBub3Qgc3Vw cG9ydCB0aHJlYWRzLCBzbyB0aGUKLkZsIG1wZQpvcHRpb24gYW5kIHRoZQouRmwgcHRocmVh ZApvcHRpb24gYXJlIGluY29tcGF0aWJsZS4KLlBwCi5JdCBGbCBtYWxpZ24tbmF0dXJhbAou SXQgRmwgbWFsaWduLXBvd2VyCk9uIEFJWCwgMzItYml0IERhcndpbiwgYW5kIDY0LWJpdCBQ b3dlclBDIEdOVS9MaW51eCwgdGhlIG9wdGlvbgouRmwgbWFsaWduLW5hdHVyYWwKb3ZlcnJp ZGVzIHRoZSBBQkktZGVmaW5lZCBhbGlnbm1lbnQgb2YgbGFyZ2VyIHR5cGVzLCBzdWNoIGFz IGZsb2F0aW5nLXBvaW50IGRvdWJsZXMsIG9uIHRoZWlyIG5hdHVyYWwgc2l6ZS1iYXNlZCBi b3VuZGFyeS4KVGhlIG9wdGlvbgouRmwgbWFsaWduLXBvd2VyCmluc3RydWN0cyBHQ0MgdG8g Zm9sbG93IHRoZSBBQkktc3BlY2lmaWVkIGFsaWdubWVudCBydWxlcy4KR0NDIGRlZmF1bHRz IHRvIHRoZSBzdGFuZGFyZCBhbGlnbm1lbnQgZGVmaW5lZCBpbiB0aGUgQUJJLgouUHAKT24g NjQtYml0IERhcndpbiwgbmF0dXJhbCBhbGlnbm1lbnQgaXMgdGhlIGRlZmF1bHQsIGFuZAou RmwgbWFsaWduLXBvd2VyCmlzIG5vdCBzdXBwb3J0ZWQuCi5QcAouSXQgRmwgbXNvZnQtZmxv YXQKLkl0IEZsIG1oYXJkLWZsb2F0CkdlbmVyYXRlIGNvZGUgdGhhdCBkb2VzIG5vdCB1c2Ug KHVzZXMpIHRoZSBmbG9hdGluZy1wb2ludCByZWdpc3RlciBzZXQuClNvZnR3YXJlIGZsb2F0 aW5nIHBvaW50IGVtdWxhdGlvbiBpcyBwcm92aWRlZCBpZiB5b3UgdXNlIHRoZQouRmwgbXNv ZnQtZmxvYXQKb3B0aW9uLCBhbmQgcGFzcyB0aGUgb3B0aW9uIHRvIEdDQyB3aGVuIGxpbmtp bmcuCi5QcAouSXQgRmwgbW11bHRpcGxlCi5JdCBGbCBtbm8tbXVsdGlwbGUKR2VuZXJhdGUg Y29kZSB0aGF0IHVzZXMgKGRvZXMgbm90IHVzZSkgdGhlIGxvYWQgbXVsdGlwbGUgd29yZCBp bnN0cnVjdGlvbnMgYW5kIHRoZSBzdG9yZSBtdWx0aXBsZSB3b3JkIGluc3RydWN0aW9ucy4K VGhlc2UgaW5zdHJ1Y3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgZGVmYXVsdCBvbiBQT1dFUiBz eXN0ZW1zLCBhbmQgbm90IGdlbmVyYXRlZCBvbiBQb3dlclBDIHN5c3RlbXMuCkRvIG5vdCB1 c2UKLkZsIG1tdWx0aXBsZQpvbiBsaXR0bGUgZW5kaWFuIFBvd2VyUEMgc3lzdGVtcywgc2lu Y2UgdGhvc2UgaW5zdHJ1Y3Rpb25zIGRvIG5vdCB3b3JrIHdoZW4gdGhlIHByb2Nlc3NvciBp cyBpbiBsaXR0bGUgZW5kaWFuIG1vZGUuClRoZSBleGNlcHRpb25zIGFyZSBQUEM3NDAgYW5k IFBQQzc1MCB3aGljaCBwZXJtaXQgdGhlIGluc3RydWN0aW9ucyB1c2FnZSBpbiBsaXR0bGUg ZW5kaWFuIG1vZGUuCi5QcAouSXQgRmwgbXN0cmluZwouSXQgRmwgbW5vLXN0cmluZwpHZW5l cmF0ZSBjb2RlIHRoYXQgdXNlcyAoZG9lcyBub3QgdXNlKSB0aGUgbG9hZCBzdHJpbmcgaW5z dHJ1Y3Rpb25zIGFuZCB0aGUgc3RvcmUgc3RyaW5nIHdvcmQgaW5zdHJ1Y3Rpb25zIHRvIHNh dmUgbXVsdGlwbGUgcmVnaXN0ZXJzIGFuZCBkbyBzbWFsbCBibG9jayBtb3Zlcy4KVGhlc2Ug aW5zdHJ1Y3Rpb25zIGFyZSBnZW5lcmF0ZWQgYnkgZGVmYXVsdCBvbiBQT1dFUiBzeXN0ZW1z LCBhbmQgbm90IGdlbmVyYXRlZCBvbiBQb3dlclBDIHN5c3RlbXMuCkRvIG5vdCB1c2UKLkZs IG1zdHJpbmcKb24gbGl0dGxlIGVuZGlhbiBQb3dlclBDIHN5c3RlbXMsIHNpbmNlIHRob3Nl IGluc3RydWN0aW9ucyBkbyBub3Qgd29yayB3aGVuIHRoZSBwcm9jZXNzb3IgaXMgaW4gbGl0 dGxlIGVuZGlhbiBtb2RlLgpUaGUgZXhjZXB0aW9ucyBhcmUgUFBDNzQwIGFuZCBQUEM3NTAg d2hpY2ggcGVybWl0IHRoZSBpbnN0cnVjdGlvbnMgdXNhZ2UgaW4gbGl0dGxlIGVuZGlhbiBt b2RlLgouUHAKLkl0IEZsIG11cGRhdGUKLkl0IEZsIG1uby11cGRhdGUKR2VuZXJhdGUgY29k ZSB0aGF0IHVzZXMgKGRvZXMgbm90IHVzZSkgdGhlIGxvYWQgb3Igc3RvcmUgaW5zdHJ1Y3Rp b25zIHRoYXQgdXBkYXRlIHRoZSBiYXNlIHJlZ2lzdGVyIHRvIHRoZSBhZGRyZXNzIG9mIHRo ZSBjYWxjdWxhdGVkIG1lbW9yeSBsb2NhdGlvbi4KVGhlc2UgaW5zdHJ1Y3Rpb25zIGFyZSBn ZW5lcmF0ZWQgYnkgZGVmYXVsdC4KSWYgeW91IHVzZQouRmwgbW5vLXVwZGF0ZSAsCnRoZXJl IGlzIGEgc21hbGwgd2luZG93IGJldHdlZW4gdGhlIHRpbWUgdGhhdCB0aGUgc3RhY2sgcG9p bnRlciBpcyB1cGRhdGVkIGFuZCB0aGUgYWRkcmVzcyBvZiB0aGUgcHJldmlvdXMgZnJhbWUg aXMgc3RvcmVkLCB3aGljaCBtZWFucyBjb2RlIHRoYXQgd2Fsa3MgdGhlIHN0YWNrIGZyYW1l IGFjcm9zcyBpbnRlcnJ1cHRzIG9yIHNpZ25hbHMgbWF5IGdldCBjb3JydXB0ZWQgZGF0YS4K LlBwCi5JdCBGbCBtZnVzZWQtbWFkZAouSXQgRmwgbW5vLWZ1c2VkLW1hZGQKR2VuZXJhdGUg Y29kZSB0aGF0IHVzZXMgKGRvZXMgbm90IHVzZSkgdGhlIGZsb2F0aW5nIHBvaW50IG11bHRp cGx5IGFuZCBhY2N1bXVsYXRlIGluc3RydWN0aW9ucy4KVGhlc2UgaW5zdHJ1Y3Rpb25zIGFy ZSBnZW5lcmF0ZWQgYnkgZGVmYXVsdCBpZiBoYXJkd2FyZSBmbG9hdGluZyBpcyB1c2VkLgou UHAKLkl0IEZsIG1uby1iaXQtYWxpZ24KLkl0IEZsIG1iaXQtYWxpZ24KT24gU3lzdGVtIFYu NCBhbmQgZW1iZWRkZWQgUG93ZXJQQyBzeXN0ZW1zIGRvIG5vdCAoZG8pIGZvcmNlIHN0cnVj dHVyZXMgYW5kIHVuaW9ucyB0aGF0IGNvbnRhaW4gYml0LWZpZWxkcyB0byBiZSBhbGlnbmVk IHRvIHRoZSBiYXNlIHR5cGUgb2YgdGhlIGJpdC1maWVsZC4KLlBwCkZvciBleGFtcGxlLCBi eSBkZWZhdWx0IGEgc3RydWN0dXJlIGNvbnRhaW5pbmcgbm90aGluZyBidXQgOAouVmEgdW5z aWduZWQKYml0LWZpZWxkcyBvZiBsZW5ndGggMSB3b3VsZCBiZSBhbGlnbmVkIHRvIGEgNCBi eXRlIGJvdW5kYXJ5IGFuZCBoYXZlIGEgc2l6ZSBvZiA0IGJ5dGVzLgpCeSB1c2luZwouRmwg bW5vLWJpdC1hbGlnbiAsCnRoZSBzdHJ1Y3R1cmUgd291bGQgYmUgYWxpZ25lZCB0byBhIDEg Ynl0ZSBib3VuZGFyeSBhbmQgYmUgb25lIGJ5dGUgaW4gc2l6ZS4KLlBwCi5JdCBGbCBtbm8t c3RyaWN0LWFsaWduCi5JdCBGbCBtc3RyaWN0LWFsaWduCk9uIFN5c3RlbSBWLjQgYW5kIGVt YmVkZGVkIFBvd2VyUEMgc3lzdGVtcyBkbyBub3QgKGRvKSBhc3N1bWUgdGhhdCB1bmFsaWdu ZWQgbWVtb3J5IHJlZmVyZW5jZXMgd2lsbCBiZSBoYW5kbGVkIGJ5IHRoZSBzeXN0ZW0uCi5Q cAouSXQgRmwgbXJlbG9jYXRhYmxlCi5JdCBGbCBtbm8tcmVsb2NhdGFibGUKT24gZW1iZWRk ZWQgUG93ZXJQQyBzeXN0ZW1zIGdlbmVyYXRlIGNvZGUgdGhhdCBhbGxvd3MgKGRvZXMgbm90 IGFsbG93KSB0aGUgcHJvZ3JhbSB0byBiZSByZWxvY2F0ZWQgdG8gYSBkaWZmZXJlbnQgYWRk cmVzcyBhdCBydW50aW1lLgpJZiB5b3UgdXNlCi5GbCBtcmVsb2NhdGFibGUKb24gYW55IG1v ZHVsZSwgYWxsIG9iamVjdHMgbGlua2VkIHRvZ2V0aGVyIG11c3QgYmUgY29tcGlsZWQgd2l0 aAouRmwgbXJlbG9jYXRhYmxlCm9yCi5GbCBtcmVsb2NhdGFibGUtbGliIC4KLlBwCi5JdCBG bCBtcmVsb2NhdGFibGUtbGliCi5JdCBGbCBtbm8tcmVsb2NhdGFibGUtbGliCk9uIGVtYmVk ZGVkIFBvd2VyUEMgc3lzdGVtcyBnZW5lcmF0ZSBjb2RlIHRoYXQgYWxsb3dzIChkb2VzIG5v dCBhbGxvdykgdGhlIHByb2dyYW0gdG8gYmUgcmVsb2NhdGVkIHRvIGEgZGlmZmVyZW50IGFk ZHJlc3MgYXQgcnVudGltZS4KTW9kdWxlcyBjb21waWxlZCB3aXRoCi5GbCBtcmVsb2NhdGFi bGUtbGliCmNhbiBiZSBsaW5rZWQgd2l0aCBlaXRoZXIgbW9kdWxlcyBjb21waWxlZCB3aXRo b3V0Ci5GbCBtcmVsb2NhdGFibGUKYW5kCi5GbCBtcmVsb2NhdGFibGUtbGliCm9yIHdpdGgg bW9kdWxlcyBjb21waWxlZCB3aXRoIHRoZQouRmwgbXJlbG9jYXRhYmxlCm9wdGlvbnMuCi5Q cAouSXQgRmwgbW5vLXRvYwouSXQgRmwgbXRvYwpPbiBTeXN0ZW0gVi40IGFuZCBlbWJlZGRl ZCBQb3dlclBDIHN5c3RlbXMgZG8gbm90IChkbykgYXNzdW1lIHRoYXQgcmVnaXN0ZXIgMiBj b250YWlucyBhIHBvaW50ZXIgdG8gYSBnbG9iYWwgYXJlYSBwb2ludGluZyB0byB0aGUgYWRk cmVzc2VzIHVzZWQgaW4gdGhlIHByb2dyYW0uCi5QcAouSXQgRmwgbWxpdHRsZQouSXQgRmwg bWxpdHRsZS1lbmRpYW4KT24gU3lzdGVtIFYuNCBhbmQgZW1iZWRkZWQgUG93ZXJQQyBzeXN0 ZW1zIGNvbXBpbGUgY29kZSBmb3IgdGhlIHByb2Nlc3NvciBpbiBsaXR0bGUgZW5kaWFuIG1v ZGUuClRoZQouRmwgbWxpdHRsZS1lbmRpYW4Kb3B0aW9uIGlzIHRoZSBzYW1lIGFzCi5GbCBt bGl0dGxlIC4KLlBwCi5JdCBGbCBtYmlnCi5JdCBGbCBtYmlnLWVuZGlhbgpPbiBTeXN0ZW0g Vi40IGFuZCBlbWJlZGRlZCBQb3dlclBDIHN5c3RlbXMgY29tcGlsZSBjb2RlIGZvciB0aGUg cHJvY2Vzc29yIGluIGJpZyBlbmRpYW4gbW9kZS4KVGhlCi5GbCBtYmlnLWVuZGlhbgpvcHRp b24gaXMgdGhlIHNhbWUgYXMKLkZsIG1iaWcgLgouUHAKLkl0IEZsIG1keW5hbWljLW5vLXBp YwpPbiBEYXJ3aW4gYW5kIE1hYyBPUyBYIHN5c3RlbXMsIGNvbXBpbGUgY29kZSBzbyB0aGF0 IGl0IGlzIG5vdCByZWxvY2F0YWJsZSwgYnV0IHRoYXQgaXRzIGV4dGVybmFsIHJlZmVyZW5j ZXMgYXJlIHJlbG9jYXRhYmxlLgpUaGUgcmVzdWx0aW5nIGNvZGUgaXMgc3VpdGFibGUgZm9y IGFwcGxpY2F0aW9ucywgYnV0IG5vdCBzaGFyZWQgbGlicmFyaWVzLgouUHAKLkl0IEZsIG1w cmlvcml0aXplLXJlc3RyaWN0ZWQtaW5zbnM9IE5zIEFyIHByaW9yaXR5ClRoaXMgb3B0aW9u IGNvbnRyb2xzIHRoZSBwcmlvcml0eSB0aGF0IGlzIGFzc2lnbmVkIHRvIGRpc3BhdGNoLXNs b3QgcmVzdHJpY3RlZCBpbnN0cnVjdGlvbnMgZHVyaW5nIHRoZSBzZWNvbmQgc2NoZWR1bGlu ZyBwYXNzLgpUaGUgYXJndW1lbnQKLkVtIHByaW9yaXR5CnRha2VzIHRoZSB2YWx1ZQouRW0g MC8xLzIKdG8gYXNzaWduCi5FbSBuby9oaWdoZXN0L3NlY29uZC1oaWdoZXN0CnByaW9yaXR5 IHRvIGRpc3BhdGNoIHNsb3QgcmVzdHJpY3RlZCBpbnN0cnVjdGlvbnMuCi5QcAouSXQgRmwg bXNjaGVkLWNvc3RseS1kZXA9IE5zIEFyIGRlcGVuZGVuY2VfdHlwZQpUaGlzIG9wdGlvbiBj b250cm9scyB3aGljaCBkZXBlbmRlbmNlcyBhcmUgY29uc2lkZXJlZCBjb3N0bHkgYnkgdGhl IHRhcmdldCBkdXJpbmcgaW5zdHJ1Y3Rpb24gc2NoZWR1bGluZy4KVGhlIGFyZ3VtZW50Ci5F bSBkZXBlbmRlbmNlX3R5cGUKdGFrZXMgb25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzOgou RW0gbm8gOgpubyBkZXBlbmRlbmNlIGlzIGNvc3RseSwKLkVtIGFsbCA6CmFsbCBkZXBlbmRl bmNlcyBhcmUgY29zdGx5LAouRW0gdHJ1ZV9zdG9yZV90b19sb2FkIDoKYSB0cnVlIGRlcGVu ZGVuY2UgZnJvbSBzdG9yZSB0byBsb2FkIGlzIGNvc3RseSwKLkVtIHN0b3JlX3RvX2xvYWQg OgphbnkgZGVwZW5kZW5jZSBmcm9tIHN0b3JlIHRvIGxvYWQgaXMgY29zdGx5LAouRW0gbnVt YmVyIDoKYW55IGRlcGVuZGVuY2Ugd2hpY2ggbGF0ZW5jeSBcKltHdF09Ci5FbSBudW1iZXIK aXMgY29zdGx5LgouUHAKLkl0IEZsIG1pbnNlcnQtc2NoZWQtbm9wcz0gTnMgQXIgc2NoZW1l ClRoaXMgb3B0aW9uIGNvbnRyb2xzIHdoaWNoIG5vcCBpbnNlcnRpb24gc2NoZW1lIHdpbGwg YmUgdXNlZCBkdXJpbmcgdGhlIHNlY29uZCBzY2hlZHVsaW5nIHBhc3MuClRoZSBhcmd1bWVu dAouRW0gc2NoZW1lCnRha2VzIG9uZSBvZiB0aGUgZm9sbG93aW5nIHZhbHVlczoKLkVtIG5v IDoKRG9uJ3QgaW5zZXJ0IG5vcHMuCi5FbSBwYWQgOgpQYWQgd2l0aCBub3BzIGFueSBkaXNw YXRjaCBncm91cCB3aGljaCBoYXMgdmFjYW50IGlzc3VlIHNsb3RzLCBhY2NvcmRpbmcgdG8g dGhlIHNjaGVkdWxlcidzIGdyb3VwaW5nLgouRW0gcmVncm91cF9leGFjdCA6Ckluc2VydCBu b3BzIHRvIGZvcmNlIGNvc3RseSBkZXBlbmRlbnQgaW5zbnMgaW50byBzZXBhcmF0ZSBncm91 cHMuCkluc2VydCBleGFjdGx5IGFzIG1hbnkgbm9wcyBhcyBuZWVkZWQgdG8gZm9yY2UgYW4g aW5zbiB0byBhIG5ldyBncm91cCwgYWNjb3JkaW5nIHRvIHRoZSBlc3RpbWF0ZWQgcHJvY2Vz c29yIGdyb3VwaW5nLgouRW0gbnVtYmVyIDoKSW5zZXJ0IG5vcHMgdG8gZm9yY2UgY29zdGx5 IGRlcGVuZGVudCBpbnNucyBpbnRvIHNlcGFyYXRlIGdyb3Vwcy4KSW5zZXJ0Ci5FbSBudW1i ZXIKbm9wcyB0byBmb3JjZSBhbiBpbnNuIHRvIGEgbmV3IGdyb3VwLgouUHAKLkl0IEZsIG1j YWxsLXN5c3YKT24gU3lzdGVtIFYuNCBhbmQgZW1iZWRkZWQgUG93ZXJQQyBzeXN0ZW1zIGNv bXBpbGUgY29kZSB1c2luZyBjYWxsaW5nIGNvbnZlbnRpb25zIHRoYXQgYWRoZXJlcyB0byB0 aGUgTWFyY2ggMTk5NSBkcmFmdCBvZiB0aGUgU3lzdGVtIFYgQXBwbGljYXRpb24gQmluYXJ5 IEludGVyZmFjZSwgUG93ZXJQQyBwcm9jZXNzb3Igc3VwcGxlbWVudC4KVGhpcyBpcyB0aGUg ZGVmYXVsdCB1bmxlc3MgeW91IGNvbmZpZ3VyZWQgR0NDIHVzaW5nCi5TeSBwb3dlcnBjLSot ZWFiaWFpeCAuCi5QcAouSXQgRmwgbWNhbGwtc3lzdi1lYWJpClNwZWNpZnkgYm90aAouRmwg bWNhbGwtc3lzdgphbmQKLkZsIG1lYWJpCm9wdGlvbnMuCi5QcAouSXQgRmwgbWNhbGwtc3lz di1ub2VhYmkKU3BlY2lmeSBib3RoCi5GbCBtY2FsbC1zeXN2CmFuZAouRmwgbW5vLWVhYmkK b3B0aW9ucy4KLlBwCi5JdCBGbCBtY2FsbC1zb2xhcmlzCk9uIFN5c3RlbSBWLjQgYW5kIGVt YmVkZGVkIFBvd2VyUEMgc3lzdGVtcyBjb21waWxlIGNvZGUgZm9yIHRoZSBTb2xhcmlzIG9w ZXJhdGluZyBzeXN0ZW0uCi5QcAouSXQgRmwgbWNhbGwtbGludXgKT24gU3lzdGVtIFYuNCBh bmQgZW1iZWRkZWQgUG93ZXJQQyBzeXN0ZW1zIGNvbXBpbGUgY29kZSBmb3IgdGhlIExpbnV4 LWJhc2VkIEdOVSBzeXN0ZW0uCi5QcAouSXQgRmwgbWNhbGwtZ251Ck9uIFN5c3RlbSBWLjQg YW5kIGVtYmVkZGVkIFBvd2VyUEMgc3lzdGVtcyBjb21waWxlIGNvZGUgZm9yIHRoZSBIdXJk LWJhc2VkIEdOVSBzeXN0ZW0uCi5QcAouSXQgRmwgbWNhbGwtbmV0YnNkCk9uIFN5c3RlbSBW LjQgYW5kIGVtYmVkZGVkIFBvd2VyUEMgc3lzdGVtcyBjb21waWxlIGNvZGUgZm9yIHRoZSBO ZXRCU0Qgb3BlcmF0aW5nIHN5c3RlbS4KLlBwCi5JdCBGbCBtYWl4LXN0cnVjdC1yZXR1cm4K UmV0dXJuIGFsbCBzdHJ1Y3R1cmVzIGluIG1lbW9yeSAoYXMgc3BlY2lmaWVkIGJ5IHRoZSBB SVggQUJJKS4KLlBwCi5JdCBGbCBtc3ZyNC1zdHJ1Y3QtcmV0dXJuClJldHVybiBzdHJ1Y3R1 cmVzIHNtYWxsZXIgdGhhbiA4IGJ5dGVzIGluIHJlZ2lzdGVycyAoYXMgc3BlY2lmaWVkIGJ5 IHRoZSBTVlI0IEFCSSkuCi5QcAouSXQgRmwgbWFiaT0gTnMgQXIgYWJpLXR5cGUKRXh0ZW5k IHRoZSBjdXJyZW50IEFCSSB3aXRoIGEgcGFydGljdWxhciBleHRlbnNpb24sIG9yIHJlbW92 ZSBzdWNoIGV4dGVuc2lvbi4KVmFsaWQgdmFsdWVzIGFyZQouRW0gYWx0aXZlYyAsCi5FbSBu by1hbHRpdmVjICwKLkVtIHNwZSAsCi5FbSBuby1zcGUgLAouRW0gaWJtbG9uZ2RvdWJsZSAs Ci5FbSBpZWVlbG9uZ2RvdWJsZSAuCi5QcAouSXQgRmwgbWFiaT1zcGUKRXh0ZW5kIHRoZSBj dXJyZW50IEFCSSB3aXRoIFNQRSBBQkkgZXh0ZW5zaW9ucy4KVGhpcyBkb2VzIG5vdCBjaGFu Z2UgdGhlIGRlZmF1bHQgQUJJLCBpbnN0ZWFkIGl0IGFkZHMgdGhlIFNQRSBBQkkgZXh0ZW5z aW9ucyB0byB0aGUgY3VycmVudCBBQkkuCi5QcAouSXQgRmwgbWFiaT1uby1zcGUKRGlzYWJs ZSBCb29rZSBTUEUgQUJJIGV4dGVuc2lvbnMgZm9yIHRoZSBjdXJyZW50IEFCSS4KLlBwCi5J dCBGbCBtYWJpPWlibWxvbmdkb3VibGUKQ2hhbmdlIHRoZSBjdXJyZW50IEFCSSB0byB1c2Ug SUJNIGV4dGVuZGVkIHByZWNpc2lvbiBsb25nIGRvdWJsZS4KVGhpcyBpcyBhIFBvd2VyUEMg MzItYml0IFNZU1YgQUJJIG9wdGlvbi4KLlBwCi5JdCBGbCBtYWJpPWllZWVsb25nZG91Ymxl CkNoYW5nZSB0aGUgY3VycmVudCBBQkkgdG8gdXNlIElFRUUgZXh0ZW5kZWQgcHJlY2lzaW9u IGxvbmcgZG91YmxlLgpUaGlzIGlzIGEgUG93ZXJQQyAzMi1iaXQgTGludXggQUJJIG9wdGlv bi4KLlBwCi5JdCBGbCBtcHJvdG90eXBlCi5JdCBGbCBtbm8tcHJvdG90eXBlCk9uIFN5c3Rl bSBWLjQgYW5kIGVtYmVkZGVkIFBvd2VyUEMgc3lzdGVtcyBhc3N1bWUgdGhhdCBhbGwgY2Fs bHMgdG8gdmFyaWFibGUgYXJndW1lbnQgZnVuY3Rpb25zIGFyZSBwcm9wZXJseSBwcm90b3R5 cGVkLgpPdGhlcndpc2UsIHRoZSBjb21waWxlciBtdXN0IGluc2VydCBhbiBpbnN0cnVjdGlv biBiZWZvcmUgZXZlcnkgbm9uIHByb3RvdHlwZWQgY2FsbCB0byBzZXQgb3IgY2xlYXIgYml0 IDYgb2YgdGhlIGNvbmRpdGlvbiBjb2RlIHJlZ2lzdGVyCi5FbSAoIENSICkKdG8gaW5kaWNh dGUgd2hldGhlciBmbG9hdGluZyBwb2ludCB2YWx1ZXMgd2VyZSBwYXNzZWQgaW4gdGhlIGZs b2F0aW5nIHBvaW50IHJlZ2lzdGVycyBpbiBjYXNlIHRoZSBmdW5jdGlvbiB0YWtlcyBhIHZh cmlhYmxlIGFyZ3VtZW50cy4KV2l0aAouRmwgbXByb3RvdHlwZSAsCm9ubHkgY2FsbHMgdG8g cHJvdG90eXBlZCB2YXJpYWJsZSBhcmd1bWVudCBmdW5jdGlvbnMgd2lsbCBzZXQgb3IgY2xl YXIgdGhlIGJpdC4KLlBwCi5JdCBGbCBtc2ltCk9uIGVtYmVkZGVkIFBvd2VyUEMgc3lzdGVt cywgYXNzdW1lIHRoYXQgdGhlIHN0YXJ0dXAgbW9kdWxlIGlzIGNhbGxlZAouUGEgc2ltLWNy dDAubwphbmQgdGhhdCB0aGUgc3RhbmRhcmQgQyBsaWJyYXJpZXMgYXJlCi5QYSBsaWJzaW0u YQphbmQKLlBhIGxpYmMuYSAuClRoaXMgaXMgdGhlIGRlZmF1bHQgZm9yCi5TeSBwb3dlcnBj LSotZWFiaXNpbSAuCmNvbmZpZ3VyYXRpb25zLgouUHAKLkl0IEZsIG1tdm1lCk9uIGVtYmVk ZGVkIFBvd2VyUEMgc3lzdGVtcywgYXNzdW1lIHRoYXQgdGhlIHN0YXJ0dXAgbW9kdWxlIGlz IGNhbGxlZAouUGEgY3J0MC5vCmFuZCB0aGUgc3RhbmRhcmQgQyBsaWJyYXJpZXMgYXJlCi5Q YSBsaWJtdm1lLmEKYW5kCi5QYSBsaWJjLmEgLgouUHAKLkl0IEZsIG1hZHMKT24gZW1iZWRk ZWQgUG93ZXJQQyBzeXN0ZW1zLCBhc3N1bWUgdGhhdCB0aGUgc3RhcnR1cCBtb2R1bGUgaXMg Y2FsbGVkCi5QYSBjcnQwLm8KYW5kIHRoZSBzdGFuZGFyZCBDIGxpYnJhcmllcyBhcmUKLlBh IGxpYmFkcy5hCmFuZAouUGEgbGliYy5hIC4KLlBwCi5JdCBGbCBteWVsbG93a25pZmUKT24g ZW1iZWRkZWQgUG93ZXJQQyBzeXN0ZW1zLCBhc3N1bWUgdGhhdCB0aGUgc3RhcnR1cCBtb2R1 bGUgaXMgY2FsbGVkCi5QYSBjcnQwLm8KYW5kIHRoZSBzdGFuZGFyZCBDIGxpYnJhcmllcyBh cmUKLlBhIGxpYnlrLmEKYW5kCi5QYSBsaWJjLmEgLgouUHAKLkl0IEZsIG12eHdvcmtzCk9u IFN5c3RlbSBWLjQgYW5kIGVtYmVkZGVkIFBvd2VyUEMgc3lzdGVtcywgc3BlY2lmeSB0aGF0 IHlvdSBhcmUgY29tcGlsaW5nIGZvciBhIFZ4V29ya3Mgc3lzdGVtLgouUHAKLkl0IEZsIG13 aW5kaXNzClNwZWNpZnkgdGhhdCB5b3UgYXJlIGNvbXBpbGluZyBmb3IgdGhlIFdpbmRJU1Mg c2ltdWxhdGlvbiBlbnZpcm9ubWVudC4KLlBwCi5JdCBGbCBtZW1iCk9uIGVtYmVkZGVkIFBv d2VyUEMgc3lzdGVtcywgc2V0IHRoZQouRW0gUFBDX0VNQgpiaXQgaW4gdGhlIEVMRiBmbGFn cyBoZWFkZXIgdG8gaW5kaWNhdGUgdGhhdAouU3kgZWFiaQpleHRlbmRlZCByZWxvY2F0aW9u cyBhcmUgdXNlZC4KLlBwCi5JdCBGbCBtZWFiaQouSXQgRmwgbW5vLWVhYmkKT24gU3lzdGVt IFYuNCBhbmQgZW1iZWRkZWQgUG93ZXJQQyBzeXN0ZW1zIGRvIChkbyBub3QpIGFkaGVyZSB0 byB0aGUgRW1iZWRkZWQgQXBwbGljYXRpb25zIEJpbmFyeSBJbnRlcmZhY2UgKGVhYmkpIHdo aWNoIGlzIGEgc2V0IG9mIG1vZGlmaWNhdGlvbnMgdG8gdGhlIFN5c3RlbSBWLjQgc3BlY2lm aWNhdGlvbnMuClNlbGVjdGluZwouRmwgbWVhYmkKbWVhbnMgdGhhdCB0aGUgc3RhY2sgaXMg YWxpZ25lZCB0byBhbiA4IGJ5dGUgYm91bmRhcnksIGEgZnVuY3Rpb24KLlZhIF9fZWFiaQpp cyBjYWxsZWQgdG8gZnJvbQouVmEgbWFpbgp0byBzZXQgdXAgdGhlIGVhYmkgZW52aXJvbm1l bnQsIGFuZCB0aGUKLkZsIG1zZGF0YQpvcHRpb24gY2FuIHVzZSBib3RoCi5WYSByMgphbmQK LlZhIHIxMwp0byBwb2ludCB0byB0d28gc2VwYXJhdGUgc21hbGwgZGF0YSBhcmVhcy4KU2Vs ZWN0aW5nCi5GbCBtbm8tZWFiaQptZWFucyB0aGF0IHRoZSBzdGFjayBpcyBhbGlnbmVkIHRv IGEgMTYgYnl0ZSBib3VuZGFyeSwgZG8gbm90IGNhbGwgYW4gaW5pdGlhbGl6YXRpb24gZnVu Y3Rpb24gZnJvbQouVmEgbWFpbiAsCmFuZCB0aGUKLkZsIG1zZGF0YQpvcHRpb24gd2lsbCBv bmx5IHVzZQouVmEgcjEzCnRvIHBvaW50IHRvIGEgc2luZ2xlIHNtYWxsIGRhdGEgYXJlYS4K VGhlCi5GbCBtZWFiaQpvcHRpb24gaXMgb24gYnkgZGVmYXVsdCBpZiB5b3UgY29uZmlndXJl ZCBHQ0MgdXNpbmcgb25lIG9mIHRoZQouU3kgcG93ZXJwYyotKi1lYWJpKgpvcHRpb25zLgou UHAKLkl0IEZsIG1zZGF0YT1lYWJpCk9uIFN5c3RlbSBWLjQgYW5kIGVtYmVkZGVkIFBvd2Vy UEMgc3lzdGVtcywgcHV0IHNtYWxsIGluaXRpYWxpemVkCi5WYSBjb25zdApnbG9iYWwgYW5k IHN0YXRpYyBkYXRhIGluIHRoZQouU3kgLnNkYXRhMgpzZWN0aW9uLCB3aGljaCBpcyBwb2lu dGVkIHRvIGJ5IHJlZ2lzdGVyCi5WYSByMiAuClB1dCBzbWFsbCBpbml0aWFsaXplZCBub24t Ci5WYSBjb25zdApnbG9iYWwgYW5kIHN0YXRpYyBkYXRhIGluIHRoZQouU3kgLnNkYXRhCnNl Y3Rpb24sIHdoaWNoIGlzIHBvaW50ZWQgdG8gYnkgcmVnaXN0ZXIKLlZhIHIxMyAuClB1dCBz bWFsbCB1bmluaXRpYWxpemVkIGdsb2JhbCBhbmQgc3RhdGljIGRhdGEgaW4gdGhlCi5TeSAu c2JzcwpzZWN0aW9uLCB3aGljaCBpcyBhZGphY2VudCB0byB0aGUKLlN5IC5zZGF0YQpzZWN0 aW9uLgpUaGUKLkZsIG1zZGF0YT1lYWJpCm9wdGlvbiBpcyBpbmNvbXBhdGlibGUgd2l0aCB0 aGUKLkZsIG1yZWxvY2F0YWJsZQpvcHRpb24uClRoZQouRmwgbXNkYXRhPWVhYmkKb3B0aW9u IGFsc28gc2V0cyB0aGUKLkZsIG1lbWIKb3B0aW9uLgouUHAKLkl0IEZsIG1zZGF0YT1zeXN2 Ck9uIFN5c3RlbSBWLjQgYW5kIGVtYmVkZGVkIFBvd2VyUEMgc3lzdGVtcywgcHV0IHNtYWxs IGdsb2JhbCBhbmQgc3RhdGljIGRhdGEgaW4gdGhlCi5TeSAuc2RhdGEKc2VjdGlvbiwgd2hp Y2ggaXMgcG9pbnRlZCB0byBieSByZWdpc3RlcgouVmEgcjEzIC4KUHV0IHNtYWxsIHVuaW5p dGlhbGl6ZWQgZ2xvYmFsIGFuZCBzdGF0aWMgZGF0YSBpbiB0aGUKLlN5IC5zYnNzCnNlY3Rp b24sIHdoaWNoIGlzIGFkamFjZW50IHRvIHRoZQouU3kgLnNkYXRhCnNlY3Rpb24uClRoZQou RmwgbXNkYXRhPXN5c3YKb3B0aW9uIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZQouRmwgbXJl bG9jYXRhYmxlCm9wdGlvbi4KLlBwCi5JdCBGbCBtc2RhdGE9ZGVmYXVsdAouSXQgRmwgbXNk YXRhCk9uIFN5c3RlbSBWLjQgYW5kIGVtYmVkZGVkIFBvd2VyUEMgc3lzdGVtcywgaWYKLkZs IG1lYWJpCmlzIHVzZWQsIGNvbXBpbGUgY29kZSB0aGUgc2FtZSBhcwouRmwgbXNkYXRhPWVh YmkgLApvdGhlcndpc2UgY29tcGlsZSBjb2RlIHRoZSBzYW1lIGFzCi5GbCBtc2RhdGE9c3lz diAuCi5QcAouSXQgRmwgbXNkYXRhLWRhdGEKT24gU3lzdGVtIFYuNCBhbmQgZW1iZWRkZWQg UG93ZXJQQyBzeXN0ZW1zLCBwdXQgc21hbGwgZ2xvYmFsIGFuZCBzdGF0aWMgZGF0YSBpbiB0 aGUKLlN5IC5zZGF0YQpzZWN0aW9uLgpQdXQgc21hbGwgdW5pbml0aWFsaXplZCBnbG9iYWwg YW5kIHN0YXRpYyBkYXRhIGluIHRoZQouU3kgLnNic3MKc2VjdGlvbi4KRG8gbm90IHVzZSBy ZWdpc3RlcgouVmEgcjEzCnRvIGFkZHJlc3Mgc21hbGwgZGF0YSBob3dldmVyLgpUaGlzIGlz IHRoZSBkZWZhdWx0IGJlaGF2aW9yIHVubGVzcyBvdGhlcgouRmwgbXNkYXRhCm9wdGlvbnMg YXJlIHVzZWQuCi5QcAouSXQgRmwgbXNkYXRhPW5vbmUKLkl0IEZsIG1uby1zZGF0YQpPbiBl bWJlZGRlZCBQb3dlclBDIHN5c3RlbXMsIHB1dCBhbGwgaW5pdGlhbGl6ZWQgZ2xvYmFsIGFu ZCBzdGF0aWMgZGF0YSBpbiB0aGUKLlN5IC5kYXRhCnNlY3Rpb24sIGFuZCBhbGwgdW5pbml0 aWFsaXplZCBkYXRhIGluIHRoZQouU3kgLmJzcwpzZWN0aW9uLgouUHAKLkl0IEZsIEcgQXIg bnVtCk9uIGVtYmVkZGVkIFBvd2VyUEMgc3lzdGVtcywgcHV0IGdsb2JhbCBhbmQgc3RhdGlj IGl0ZW1zIGxlc3MgdGhhbiBvciBlcXVhbCB0bwouRW0gbnVtCmJ5dGVzIGludG8gdGhlIHNt YWxsIGRhdGEgb3IgYnNzIHNlY3Rpb25zIGluc3RlYWQgb2YgdGhlIG5vcm1hbCBkYXRhIG9y IGJzcyBzZWN0aW9uLgpCeSBkZWZhdWx0LAouRW0gbnVtCmlzIDguClRoZQouRmwgRyBBciBu dW0Kc3dpdGNoIGlzIGFsc28gcGFzc2VkIHRvIHRoZSBsaW5rZXIuCkFsbCBtb2R1bGVzIHNo b3VsZCBiZSBjb21waWxlZCB3aXRoIHRoZSBzYW1lCi5GbCBHIEFyIG51bQp2YWx1ZS4KLlBw Ci5JdCBGbCBtcmVnbmFtZXMKLkl0IEZsIG1uby1yZWduYW1lcwpPbiBTeXN0ZW0gVi40IGFu ZCBlbWJlZGRlZCBQb3dlclBDIHN5c3RlbXMgZG8gKGRvIG5vdCkgZW1pdCByZWdpc3RlciBu YW1lcyBpbiB0aGUgYXNzZW1ibHkgbGFuZ3VhZ2Ugb3V0cHV0IHVzaW5nIHN5bWJvbGljIGZv cm1zLgouUHAKLkl0IEZsIG1sb25nY2FsbAouSXQgRmwgbW5vLWxvbmdjYWxsCkRlZmF1bHQg dG8gbWFraW5nIGFsbCBmdW5jdGlvbiBjYWxscyBpbmRpcmVjdGx5LCB1c2luZyBhIHJlZ2lz dGVyLCBzbyB0aGF0IGZ1bmN0aW9ucyB3aGljaCByZXNpZGUgZnVydGhlciB0aGFuIDMyIG1l Z2FieXRlcyAoMzMsNTU0LDQzMiBieXRlcykgZnJvbSB0aGUgY3VycmVudCBsb2NhdGlvbiBj YW4gYmUgY2FsbGVkLgpUaGlzIHNldHRpbmcgY2FuIGJlIG92ZXJyaWRkZW4gYnkgdGhlCi5W YSBzaG9ydGNhbGwKZnVuY3Rpb24gYXR0cmlidXRlLCBvciBieQouVmEgI3ByYWdtYSBsb25n Y2FsbCgwKSAuCi5QcApTb21lIGxpbmtlcnMgYXJlIGNhcGFibGUgb2YgZGV0ZWN0aW5nIG91 dC1vZi1yYW5nZSBjYWxscyBhbmQgZ2VuZXJhdGluZyBnbHVlIGNvZGUgb24gdGhlIGZseS4K T24gdGhlc2Ugc3lzdGVtcywgbG9uZyBjYWxscyBhcmUgdW5uZWNlc3NhcnkgYW5kIGdlbmVy YXRlIHNsb3dlciBjb2RlLgpBcyBvZiB0aGlzIHdyaXRpbmcsIHRoZSBBSVggbGlua2VyIGNh biBkbyB0aGlzLCBhcyBjYW4gdGhlIEdOVSBsaW5rZXIgZm9yIFBvd2VyUEMvNjQuCkl0IGlz IHBsYW5uZWQgdG8gYWRkIHRoaXMgZmVhdHVyZSB0byB0aGUgR05VIGxpbmtlciBmb3IgMzIt Yml0IFBvd2VyUEMgc3lzdGVtcyBhcyB3ZWxsLgouUHAKT24gRGFyd2luL1BQQyBzeXN0ZW1z LAouVmEgI3ByYWdtYSBsb25nY2FsbAp3aWxsIGdlbmVyYXRlICJqYnNyIGNhbGxlZSwgTDQy IiwgcGx1cyBhICJicmFuY2ggaXNsYW5kIiAoZ2x1ZSBjb2RlKS4KVGhlIHR3byB0YXJnZXQg YWRkcmVzc2VzIHJlcHJlc2VudCB0aGUgY2FsbGVlIGFuZCB0aGUgImJyYW5jaCBpc2xhbmQi LgpUaGUgRGFyd2luL1BQQyBsaW5rZXIgd2lsbCBwcmVmZXIgdGhlIGZpcnN0IGFkZHJlc3Mg YW5kIGdlbmVyYXRlIGEgImJsIGNhbGxlZSIgaWYgdGhlIFBQQyAiYmwiIGluc3RydWN0aW9u IHdpbGwgcmVhY2ggdGhlIGNhbGxlZSBkaXJlY3RseTsgb3RoZXJ3aXNlLCB0aGUgbGlua2Vy IHdpbGwgZ2VuZXJhdGUgImJsIEw0MiIgdG8gY2FsbCB0aGUgImJyYW5jaCBpc2xhbmQiLgpU aGUgImJyYW5jaCBpc2xhbmQiIGlzIGFwcGVuZGVkIHRvIHRoZSBib2R5IG9mIHRoZSBjYWxs aW5nIGZ1bmN0aW9uOyBpdCBjb21wdXRlcyB0aGUgZnVsbCAzMi1iaXQgYWRkcmVzcyBvZiB0 aGUgY2FsbGVlIGFuZCBqdW1wcyB0byBpdC4KLlBwCk9uIE1hY2gtTyAoRGFyd2luKSBzeXN0 ZW1zLCB0aGlzIG9wdGlvbiBkaXJlY3RzIHRoZSBjb21waWxlciBlbWl0IHRvIHRoZSBnbHVl IGZvciBldmVyeSBkaXJlY3QgY2FsbCwgYW5kIHRoZSBEYXJ3aW4gbGlua2VyIGRlY2lkZXMg d2hldGhlciB0byB1c2Ugb3IgZGlzY2FyZCBpdC4KLlBwCkluIHRoZSBmdXR1cmUsIHdlIG1h eSBjYXVzZSBHQ0MgdG8gaWdub3JlIGFsbCBsb25nY2FsbCBzcGVjaWZpY2F0aW9ucyB3aGVu IHRoZSBsaW5rZXIgaXMga25vd24gdG8gZ2VuZXJhdGUgZ2x1ZS4KLlBwCi5JdCBGbCBwdGhy ZWFkCkFkZHMgc3VwcG9ydCBmb3IgbXVsdGl0aHJlYWRpbmcgd2l0aCB0aGUKLkVtIHB0aHJl YWRzCmxpYnJhcnkuClRoaXMgb3B0aW9uIHNldHMgZmxhZ3MgZm9yIGJvdGggdGhlIHByZXBy b2Nlc3NvciBhbmQgbGlua2VyLgouUHAKLkVsCi5JdCBTeSBTLzM5MCBhbmQgelNlcmllcyBP cHRpb25zClRoZXNlIGFyZSB0aGUKLkZsIG0Kb3B0aW9ucyBkZWZpbmVkIGZvciB0aGUgUy8z OTAgYW5kIHpTZXJpZXMgYXJjaGl0ZWN0dXJlLgouUHAKLkJsIC10YWcgLXdpZHRoIHh4Ci5J dCBGbCBtaGFyZC1mbG9hdAouSXQgRmwgbXNvZnQtZmxvYXQKVXNlIChkbyBub3QgdXNlKSB0 aGUgaGFyZHdhcmUgZmxvYXRpbmctcG9pbnQgaW5zdHJ1Y3Rpb25zIGFuZCByZWdpc3RlcnMg Zm9yIGZsb2F0aW5nLXBvaW50IG9wZXJhdGlvbnMuCldoZW4KLkZsIG1zb2Z0LWZsb2F0Cmlz IHNwZWNpZmllZCwgZnVuY3Rpb25zIGluCi5QYSBsaWJnY2MuYQp3aWxsIGJlIHVzZWQgdG8g cGVyZm9ybSBmbG9hdGluZy1wb2ludCBvcGVyYXRpb25zLgpXaGVuCi5GbCBtaGFyZC1mbG9h dAppcyBzcGVjaWZpZWQsIHRoZSBjb21waWxlciBnZW5lcmF0ZXMgSUVFRSBmbG9hdGluZy1w b2ludCBpbnN0cnVjdGlvbnMuClRoaXMgaXMgdGhlIGRlZmF1bHQuCi5QcAouSXQgRmwgbWxv bmctZG91YmxlLTY0Ci5JdCBGbCBtbG9uZy1kb3VibGUtMTI4ClRoZXNlIHN3aXRjaGVzIGNv bnRyb2wgdGhlIHNpemUgb2YKLlZhIGxvbmcgZG91YmxlCnR5cGUuCkEgc2l6ZSBvZiA2NGJp dCBtYWtlcyB0aGUKLlZhIGxvbmcgZG91YmxlCnR5cGUgZXF1aXZhbGVudCB0byB0aGUKLlZh IGRvdWJsZQp0eXBlLgpUaGlzIGlzIHRoZSBkZWZhdWx0LgouUHAKLkl0IEZsIG1iYWNrY2hh aW4KLkl0IEZsIG1uby1iYWNrY2hhaW4KU3RvcmUgKGRvIG5vdCBzdG9yZSkgdGhlIGFkZHJl c3Mgb2YgdGhlIGNhbGxlcidzIGZyYW1lIGFzIGJhY2tjaGFpbiBwb2ludGVyIGludG8gdGhl IGNhbGxlZSdzIHN0YWNrIGZyYW1lLgpBIGJhY2tjaGFpbiBtYXkgYmUgbmVlZGVkIHRvIGFs bG93IGRlYnVnZ2luZyB1c2luZyB0b29scyB0aGF0IGRvIG5vdCB1bmRlcnN0YW5kIERXQVJG LTIgY2FsbCBmcmFtZSBpbmZvcm1hdGlvbi4KV2hlbgouRmwgbW5vLXBhY2tlZC1zdGFjawpp cyBpbiBlZmZlY3QsIHRoZSBiYWNrY2hhaW4gcG9pbnRlciBpcyBzdG9yZWQgYXQgdGhlIGJv dHRvbSBvZiB0aGUgc3RhY2sgZnJhbWU7IHdoZW4KLkZsIG1wYWNrZWQtc3RhY2sKaXMgaW4g ZWZmZWN0LCB0aGUgYmFja2NoYWluIGlzIHBsYWNlZCBpbnRvIHRoZSB0b3Btb3N0IHdvcmQg b2YgdGhlIDk2LzE2MCBieXRlIHJlZ2lzdGVyIHNhdmUgYXJlYS4KLlBwCkluIGdlbmVyYWws IGNvZGUgY29tcGlsZWQgd2l0aAouRmwgbWJhY2tjaGFpbgppcyBjYWxsLWNvbXBhdGlibGUg d2l0aCBjb2RlIGNvbXBpbGVkIHdpdGgKLkZsIG1tby1iYWNrY2hhaW4gOwpob3dldmVyLCB1 c2Ugb2YgdGhlIGJhY2tjaGFpbiBmb3IgZGVidWdnaW5nIHB1cnBvc2VzIHVzdWFsbHkgcmVx dWlyZXMgdGhhdCB0aGUgd2hvbGUgYmluYXJ5IGlzIGJ1aWx0IHdpdGgKLkZsIG1iYWNrY2hh aW4gLgpOb3RlIHRoYXQgdGhlIGNvbWJpbmF0aW9uIG9mCi5GbCBtYmFja2NoYWluICwKLkZs IG1wYWNrZWQtc3RhY2sKYW5kCi5GbCBtaGFyZC1mbG9hdAppcyBub3Qgc3VwcG9ydGVkLgpJ biBvcmRlciB0byBidWlsZCBhIGxpbnV4IGtlcm5lbCB1c2UKLkZsIG1zb2Z0LWZsb2F0IC4K LlBwClRoZSBkZWZhdWx0IGlzIHRvIG5vdCBtYWludGFpbiB0aGUgYmFja2NoYWluLgouUHAK Lkl0IEZsIG1wYWNrZWQtc3RhY2sKLkl0IEZsIG1uby1wYWNrZWQtc3RhY2sKVXNlIChkbyBu b3QgdXNlKSB0aGUgcGFja2VkIHN0YWNrIGxheW91dC4KV2hlbgouRmwgbW5vLXBhY2tlZC1z dGFjawppcyBzcGVjaWZpZWQsIHRoZSBjb21waWxlciB1c2VzIHRoZSBhbGwgZmllbGRzIG9m IHRoZSA5Ni8xNjAgYnl0ZSByZWdpc3RlciBzYXZlIGFyZWEgb25seSBmb3IgdGhlaXIgZGVm YXVsdCBwdXJwb3NlOyB1bnVzZWQgZmllbGRzIHN0aWxsIHRha2UgdXAgc3RhY2sgc3BhY2Uu CldoZW4KLkZsIG1wYWNrZWQtc3RhY2sKaXMgc3BlY2lmaWVkLCByZWdpc3RlciBzYXZlIHNs b3RzIGFyZSBkZW5zZWx5IHBhY2tlZCBhdCB0aGUgdG9wIG9mIHRoZSByZWdpc3RlciBzYXZl IGFyZWE7IHVudXNlZCBzcGFjZSBpcyByZXVzZWQgZm9yIG90aGVyIHB1cnBvc2VzLCBhbGxv d2luZyBmb3IgbW9yZSBlZmZpY2llbnQgdXNlIG9mIHRoZSBhdmFpbGFibGUgc3RhY2sgc3Bh Y2UuCkhvd2V2ZXIsIHdoZW4KLkZsIG1iYWNrY2hhaW4KaXMgYWxzbyBpbiBlZmZlY3QsIHRo ZSB0b3Btb3N0IHdvcmQgb2YgdGhlIHNhdmUgYXJlYSBpcyBhbHdheXMgdXNlZCB0byBzdG9y ZSB0aGUgYmFja2NoYWluLCBhbmQgdGhlIHJldHVybiBhZGRyZXNzIHJlZ2lzdGVyIGlzIGFs d2F5cyBzYXZlZCB0d28gd29yZHMgYmVsb3cgdGhlIGJhY2tjaGFpbi4KLlBwCkFzIGxvbmcg YXMgdGhlIHN0YWNrIGZyYW1lIGJhY2tjaGFpbiBpcyBub3QgdXNlZCwgY29kZSBnZW5lcmF0 ZWQgd2l0aAouRmwgbXBhY2tlZC1zdGFjawppcyBjYWxsLWNvbXBhdGlibGUgd2l0aCBjb2Rl IGdlbmVyYXRlZCB3aXRoCi5GbCBtbm8tcGFja2VkLXN0YWNrIC4KTm90ZSB0aGF0IHNvbWUg bm9uLUZTRiByZWxlYXNlcyBvZiBHQ0MgMi45NSBmb3IgUy8zOTAgb3IgelNlcmllcyBnZW5l cmF0ZWQgY29kZSB0aGF0IHVzZXMgdGhlIHN0YWNrIGZyYW1lIGJhY2tjaGFpbiBhdCBydW4g dGltZSwgbm90IGp1c3QgZm9yIGRlYnVnZ2luZyBwdXJwb3Nlcy4KU3VjaCBjb2RlIGlzIG5v dCBjYWxsLWNvbXBhdGlibGUgd2l0aCBjb2RlIGNvbXBpbGVkIHdpdGgKLkZsIG1wYWNrZWQt c3RhY2sgLgpBbHNvLCBub3RlIHRoYXQgdGhlIGNvbWJpbmF0aW9uIG9mCi5GbCBtYmFja2No YWluICwKLkZsIG1wYWNrZWQtc3RhY2sKYW5kCi5GbCBtaGFyZC1mbG9hdAppcyBub3Qgc3Vw cG9ydGVkLgpJbiBvcmRlciB0byBidWlsZCBhIGxpbnV4IGtlcm5lbCB1c2UKLkZsIG1zb2Z0 LWZsb2F0IC4KLlBwClRoZSBkZWZhdWx0IGlzIHRvIG5vdCB1c2UgdGhlIHBhY2tlZCBzdGFj ayBsYXlvdXQuCi5QcAouSXQgRmwgbXNtYWxsLWV4ZWMKLkl0IEZsIG1uby1zbWFsbC1leGVj CkdlbmVyYXRlIChvciBkbyBub3QgZ2VuZXJhdGUpIGNvZGUgdXNpbmcgdGhlCi5WYSBicmFz Cmluc3RydWN0aW9uIHRvIGRvIHN1YnJvdXRpbmUgY2FsbHMuClRoaXMgb25seSB3b3JrcyBy ZWxpYWJseSBpZiB0aGUgdG90YWwgZXhlY3V0YWJsZSBzaXplIGRvZXMgbm90IGV4Y2VlZCA2 NGsuClRoZSBkZWZhdWx0IGlzIHRvIHVzZSB0aGUKLlZhIGJhc3IKaW5zdHJ1Y3Rpb24gaW5z dGVhZCwgd2hpY2ggZG9lcyBub3QgaGF2ZSB0aGlzIGxpbWl0YXRpb24uCi5QcAouSXQgRmwg bTY0Ci5JdCBGbCBtMzEKV2hlbgouRmwgbTMxCmlzIHNwZWNpZmllZCwgZ2VuZXJhdGUgY29k ZSBjb21wbGlhbnQgdG8gdGhlIEdOVS9MaW51eCBmb3IgUy8zOTAgQUJJLgpXaGVuCi5GbCBt NjQKaXMgc3BlY2lmaWVkLCBnZW5lcmF0ZSBjb2RlIGNvbXBsaWFudCB0byB0aGUgR05VL0xp bnV4IGZvciB6U2VyaWVzIEFCSS4KVGhpcyBhbGxvd3MgR0NDIGluIHBhcnRpY3VsYXIgdG8g Z2VuZXJhdGUgNjQtYml0IGluc3RydWN0aW9ucy4KRm9yIHRoZQouU3kgczM5MAp0YXJnZXRz LCB0aGUgZGVmYXVsdCBpcwouRmwgbTMxICwKd2hpbGUgdGhlCi5TeSBzMzkweAp0YXJnZXRz IGRlZmF1bHQgdG8KLkZsIG02NCAuCi5QcAouSXQgRmwgbXphcmNoCi5JdCBGbCBtZXNhCldo ZW4KLkZsIG16YXJjaAppcyBzcGVjaWZpZWQsIGdlbmVyYXRlIGNvZGUgdXNpbmcgdGhlIGlu c3RydWN0aW9ucyBhdmFpbGFibGUgb24gei9BcmNoaXRlY3R1cmUuCldoZW4KLkZsIG1lc2EK aXMgc3BlY2lmaWVkLCBnZW5lcmF0ZSBjb2RlIHVzaW5nIHRoZSBpbnN0cnVjdGlvbnMgYXZh aWxhYmxlIG9uIEVTQS8zOTAuCk5vdGUgdGhhdAouRmwgbWVzYQppcyBub3QgcG9zc2libGUg d2l0aAouRmwgbTY0IC4KV2hlbiBnZW5lcmF0aW5nIGNvZGUgY29tcGxpYW50IHRvIHRoZSBH TlUvTGludXggZm9yIFMvMzkwIEFCSSwgdGhlIGRlZmF1bHQgaXMKLkZsIG1lc2EgLgpXaGVu IGdlbmVyYXRpbmcgY29kZSBjb21wbGlhbnQgdG8gdGhlIEdOVS9MaW51eCBmb3IgelNlcmll cyBBQkksIHRoZSBkZWZhdWx0IGlzCi5GbCBtemFyY2ggLgouUHAKLkl0IEZsIG1tdmNsZQou SXQgRmwgbW5vLW12Y2xlCkdlbmVyYXRlIChvciBkbyBub3QgZ2VuZXJhdGUpIGNvZGUgdXNp bmcgdGhlCi5WYSBtdmNsZQppbnN0cnVjdGlvbiB0byBwZXJmb3JtIGJsb2NrIG1vdmVzLgpX aGVuCi5GbCBtbm8tbXZjbGUKaXMgc3BlY2lmaWVkLCB1c2UgYQouVmEgbXZjCmxvb3AgaW5z dGVhZC4KVGhpcyBpcyB0aGUgZGVmYXVsdCB1bmxlc3Mgb3B0aW1pemluZyBmb3Igc2l6ZS4K LlBwCi5JdCBGbCBtZGVidWcKLkl0IEZsIG1uby1kZWJ1ZwpQcmludCAob3IgZG8gbm90IHBy aW50KSBhZGRpdGlvbmFsIGRlYnVnIGluZm9ybWF0aW9uIHdoZW4gY29tcGlsaW5nLgpUaGUg ZGVmYXVsdCBpcyB0byBub3QgcHJpbnQgZGVidWcgaW5mb3JtYXRpb24uCi5QcAouSXQgRmwg bWFyY2g9IE5zIEFyIGNwdS10eXBlCkdlbmVyYXRlIGNvZGUgdGhhdCB3aWxsIHJ1biBvbgou RW0gY3B1LXR5cGUgLAp3aGljaCBpcyB0aGUgbmFtZSBvZiBhIHN5c3RlbSByZXByZXNlbnRp bmcgYSBjZXJ0YWluIHByb2Nlc3NvciB0eXBlLgpQb3NzaWJsZSB2YWx1ZXMgZm9yCi5FbSBj cHUtdHlwZQphcmUKLlN5IGc1ICwKLlN5IGc2ICwKLlN5IHo5MDAgLAphbmQKLlN5IHo5OTAg LgpXaGVuIGdlbmVyYXRpbmcgY29kZSB1c2luZyB0aGUgaW5zdHJ1Y3Rpb25zIGF2YWlsYWJs ZSBvbiB6L0FyY2hpdGVjdHVyZSwgdGhlIGRlZmF1bHQgaXMKLkZsIG1hcmNoPXo5MDAgLgpP dGhlcndpc2UsIHRoZSBkZWZhdWx0IGlzCi5GbCBtYXJjaD1nNSAuCi5QcAouSXQgRmwgbXR1 bmU9IE5zIEFyIGNwdS10eXBlClR1bmUgdG8KLkVtIGNwdS10eXBlCmV2ZXJ5dGhpbmcgYXBw bGljYWJsZSBhYm91dCB0aGUgZ2VuZXJhdGVkIGNvZGUsIGV4Y2VwdCBmb3IgdGhlIEFCSSBh bmQgdGhlIHNldCBvZiBhdmFpbGFibGUgaW5zdHJ1Y3Rpb25zLgpUaGUgbGlzdCBvZgouRW0g Y3B1LXR5cGUKdmFsdWVzIGlzIHRoZSBzYW1lIGFzIGZvcgouRmwgbWFyY2ggLgpUaGUgZGVm YXVsdCBpcyB0aGUgdmFsdWUgdXNlZCBmb3IKLkZsIG1hcmNoIC4KLlBwCi5JdCBGbCBtdHBm LXRyYWNlCi5JdCBGbCBtbm8tdHBmLXRyYWNlCkdlbmVyYXRlIGNvZGUgdGhhdCBhZGRzIChk b2VzIG5vdCBhZGQpIGluIFRQRiBPUyBzcGVjaWZpYyBicmFuY2hlcyB0byB0cmFjZSByb3V0 aW5lcyBpbiB0aGUgb3BlcmF0aW5nIHN5c3RlbS4KVGhpcyBvcHRpb24gaXMgb2ZmIGJ5IGRl ZmF1bHQsIGV2ZW4gd2hlbiBjb21waWxpbmcgZm9yIHRoZSBUUEYgT1MuCi5QcAouSXQgRmwg bWZ1c2VkLW1hZGQKLkl0IEZsIG1uby1mdXNlZC1tYWRkCkdlbmVyYXRlIGNvZGUgdGhhdCB1 c2VzIChkb2VzIG5vdCB1c2UpIHRoZSBmbG9hdGluZyBwb2ludCBtdWx0aXBseSBhbmQgYWNj dW11bGF0ZSBpbnN0cnVjdGlvbnMuClRoZXNlIGluc3RydWN0aW9ucyBhcmUgZ2VuZXJhdGVk IGJ5IGRlZmF1bHQgaWYgaGFyZHdhcmUgZmxvYXRpbmcgcG9pbnQgaXMgdXNlZC4KLlBwCi5J dCBGbCBtd2Fybi1mcmFtZXNpemU9IE5zIEFyIGZyYW1lc2l6ZQpFbWl0IGEgd2FybmluZyBp ZiB0aGUgY3VycmVudCBmdW5jdGlvbiBleGNlZWRzIHRoZSBnaXZlbiBmcmFtZSBzaXplLgpC ZWNhdXNlIHRoaXMgaXMgYSBjb21waWxlIHRpbWUgY2hlY2sgaXQgZG9lc24ndCBuZWVkIHRv IGJlIGEgcmVhbCBwcm9ibGVtIHdoZW4gdGhlIHByb2dyYW0gcnVucy4KSXQgaXMgaW50ZW5k ZWQgdG8gaWRlbnRpZnkgZnVuY3Rpb25zIHdoaWNoIG1vc3QgcHJvYmFibHkgY2F1c2UgYSBz dGFjayBvdmVyZmxvdy4KSXQgaXMgdXNlZnVsIHRvIGJlIHVzZWQgaW4gYW4gZW52aXJvbm1l bnQgd2l0aCBsaW1pdGVkIHN0YWNrIHNpemUgZS5nLiB0aGUgbGludXgga2VybmVsLgouUHAK Lkl0IEZsIG13YXJuLWR5bmFtaWNzdGFjawpFbWl0IGEgd2FybmluZyBpZiB0aGUgZnVuY3Rp b24gY2FsbHMgYWxsb2NhIG9yIHVzZXMgZHluYW1pY2FsbHkgc2l6ZWQgYXJyYXlzLgpUaGlz IGlzIGdlbmVyYWxseSBhIGJhZCBpZGVhIHdpdGggYSBsaW1pdGVkIHN0YWNrIHNpemUuCi5Q cAouSXQgRmwgbXN0YWNrLWd1YXJkPSBOcyBBciBzdGFjay1ndWFyZAouSXQgRmwgbXN0YWNr LXNpemU9IE5zIEFyIHN0YWNrLXNpemUKVGhlc2UgYXJndW1lbnRzIGFsd2F5cyBoYXZlIHRv IGJlIHVzZWQgaW4gY29uanVuY3Rpb24uCklmIHRoZXkgYXJlIHByZXNlbnQgdGhlIHMzOTAg YmFjayBlbmQgZW1pdHMgYWRkaXRpb25hbCBpbnN0cnVjdGlvbnMgaW4gdGhlIGZ1bmN0aW9u IHByb2xvZ3VlIHdoaWNoIHRyaWdnZXIgYSB0cmFwIGlmIHRoZSBzdGFjayBzaXplIGlzCi5F bSBzdGFjay1ndWFyZApieXRlcyBhYm92ZSB0aGUKLkVtIHN0YWNrLXNpemUKKHJlbWVtYmVy IHRoYXQgdGhlIHN0YWNrIG9uIHMzOTAgZ3Jvd3MgZG93bndhcmQpLgpUaGVzZSBvcHRpb25z IGFyZSBpbnRlbmRlZCB0byBiZSB1c2VkIHRvIGhlbHAgZGVidWdnaW5nIHN0YWNrIG92ZXJm bG93IHByb2JsZW1zLgpUaGUgYWRkaXRpb25hbGx5IGVtaXR0ZWQgY29kZSBjYXVzZXMgb25s eSBsaXR0bGUgb3ZlcmhlYWQgYW5kIGhlbmNlIGNhbiBhbHNvIGJlIHVzZWQgaW4gcHJvZHVj dGlvbiBsaWtlIHN5c3RlbXMgd2l0aG91dCBncmVhdGVyIHBlcmZvcm1hbmNlIGRlZ3JhZGF0 aW9uLgpUaGUgZ2l2ZW4gdmFsdWVzIGhhdmUgdG8gYmUgZXhhY3QgcG93ZXJzIG9mIDIgYW5k Ci5FbSBzdGFjay1zaXplCmhhcyB0byBiZSBncmVhdGVyIHRoYW4KLkVtIHN0YWNrLWd1YXJk CndpdGhvdXQgZXhjZWVkaW5nIDY0ay4KSW4gb3JkZXIgdG8gYmUgZWZmaWNpZW50IHRoZSBl eHRyYSBjb2RlIG1ha2VzIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhlIHN0YWNrIHN0YXJ0cyBh dCBhbiBhZGRyZXNzIGFsaWduZWQgdG8gdGhlIHZhbHVlIGdpdmVuIGJ5Ci5FbSBzdGFjay1z aXplIC4KLlBwCi5FbAouSXQgU3kgU0ggT3B0aW9ucwpUaGVzZQouRmwgbQpvcHRpb25zIGFy ZSBkZWZpbmVkIGZvciB0aGUgU0ggaW1wbGVtZW50YXRpb25zOgouUHAKLkJsIC10YWcgLXdp ZHRoIHh4Ci5JdCBGbCBtMQpHZW5lcmF0ZSBjb2RlIGZvciB0aGUgU0gxLgouUHAKLkl0IEZs IG0yCkdlbmVyYXRlIGNvZGUgZm9yIHRoZSBTSDIuCi5QcAouSXQgRmwgbTJlCkdlbmVyYXRl IGNvZGUgZm9yIHRoZSBTSDJlLgouUHAKLkl0IEZsIG0zCkdlbmVyYXRlIGNvZGUgZm9yIHRo ZSBTSDMuCi5QcAouSXQgRmwgbTNlCkdlbmVyYXRlIGNvZGUgZm9yIHRoZSBTSDNlLgouUHAK Lkl0IEZsIG00LW5vZnB1CkdlbmVyYXRlIGNvZGUgZm9yIHRoZSBTSDQgd2l0aG91dCBhIGZs b2F0aW5nLXBvaW50IHVuaXQuCi5QcAouSXQgRmwgbTQtc2luZ2xlLW9ubHkKR2VuZXJhdGUg Y29kZSBmb3IgdGhlIFNINCB3aXRoIGEgZmxvYXRpbmctcG9pbnQgdW5pdCB0aGF0IG9ubHkg c3VwcG9ydHMgc2luZ2xlLXByZWNpc2lvbiBhcml0aG1ldGljLgouUHAKLkl0IEZsIG00LXNp bmdsZQpHZW5lcmF0ZSBjb2RlIGZvciB0aGUgU0g0IGFzc3VtaW5nIHRoZSBmbG9hdGluZy1w b2ludCB1bml0IGlzIGluIHNpbmdsZS1wcmVjaXNpb24gbW9kZSBieSBkZWZhdWx0LgouUHAK Lkl0IEZsIG00CkdlbmVyYXRlIGNvZGUgZm9yIHRoZSBTSDQuCi5QcAouSXQgRmwgbTRhLW5v ZnB1CkdlbmVyYXRlIGNvZGUgZm9yIHRoZSBTSDRhbC1kc3AsIG9yIGZvciBhIFNINGEgaW4g c3VjaCBhIHdheSB0aGF0IHRoZSBmbG9hdGluZy1wb2ludCB1bml0IGlzIG5vdCB1c2VkLgou UHAKLkl0IEZsIG00YS1zaW5nbGUtb25seQpHZW5lcmF0ZSBjb2RlIGZvciB0aGUgU0g0YSwg aW4gc3VjaCBhIHdheSB0aGF0IG5vIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQg b3BlcmF0aW9ucyBhcmUgdXNlZC4KLlBwCi5JdCBGbCBtNGEtc2luZ2xlCkdlbmVyYXRlIGNv ZGUgZm9yIHRoZSBTSDRhIGFzc3VtaW5nIHRoZSBmbG9hdGluZy1wb2ludCB1bml0IGlzIGlu IHNpbmdsZS1wcmVjaXNpb24gbW9kZSBieSBkZWZhdWx0LgouUHAKLkl0IEZsIG00YQpHZW5l cmF0ZSBjb2RlIGZvciB0aGUgU0g0YS4KLlBwCi5JdCBGbCBtNGFsClNhbWUgYXMKLkZsIG00 YS1ub2ZwdSAsCmV4Y2VwdCB0aGF0IGl0IGltcGxpY2l0bHkgcGFzc2VzCi5GbCBkc3AKdG8g dGhlIGFzc2VtYmxlci4KR0NDIGRvZXNuJ3QgZ2VuZXJhdGUgYW55IERTUCBpbnN0cnVjdGlv bnMgYXQgdGhlIG1vbWVudC4KLlBwCi5JdCBGbCBtYgpDb21waWxlIGNvZGUgZm9yIHRoZSBw cm9jZXNzb3IgaW4gYmlnIGVuZGlhbiBtb2RlLgouUHAKLkl0IEZsIG1sCkNvbXBpbGUgY29k ZSBmb3IgdGhlIHByb2Nlc3NvciBpbiBsaXR0bGUgZW5kaWFuIG1vZGUuCi5QcAouSXQgRmwg bWRhbGlnbgpBbGlnbiBkb3VibGVzIGF0IDY0LWJpdCBib3VuZGFyaWVzLgpOb3RlIHRoYXQg dGhpcyBjaGFuZ2VzIHRoZSBjYWxsaW5nIGNvbnZlbnRpb25zLCBhbmQgdGh1cyBzb21lIGZ1 bmN0aW9ucyBmcm9tIHRoZSBzdGFuZGFyZCBDIGxpYnJhcnkgd2lsbCBub3Qgd29yayB1bmxl c3MgeW91IHJlY29tcGlsZSBpdCBmaXJzdCB3aXRoCi5GbCBtZGFsaWduIC4KLlBwCi5JdCBG bCBtcmVsYXgKU2hvcnRlbiBzb21lIGFkZHJlc3MgcmVmZXJlbmNlcyBhdCBsaW5rIHRpbWUs IHdoZW4gcG9zc2libGU7IHVzZXMgdGhlIGxpbmtlciBvcHRpb24KLkZsIHJlbGF4IC4KLlBw Ci5JdCBGbCBtYmlndGFibGUKVXNlIDMyLWJpdCBvZmZzZXRzIGluCi5WYSBzd2l0Y2gKdGFi bGVzLgpUaGUgZGVmYXVsdCBpcyB0byB1c2UgMTYtYml0IG9mZnNldHMuCi5QcAouSXQgRmwg bWZtb3ZkCkVuYWJsZSB0aGUgdXNlIG9mIHRoZSBpbnN0cnVjdGlvbgouVmEgZm1vdmQgLgou UHAKLkl0IEZsIG1oaXRhY2hpCkNvbXBseSB3aXRoIHRoZSBjYWxsaW5nIGNvbnZlbnRpb25z IGRlZmluZWQgYnkgUmVuZXNhcy4KLlBwCi5JdCBGbCBtcmVuZXNhcwpDb21wbHkgd2l0aCB0 aGUgY2FsbGluZyBjb252ZW50aW9ucyBkZWZpbmVkIGJ5IFJlbmVzYXMuCi5QcAouSXQgRmwg bW5vLXJlbmVzYXMKQ29tcGx5IHdpdGggdGhlIGNhbGxpbmcgY29udmVudGlvbnMgZGVmaW5l ZCBmb3IgR0NDIGJlZm9yZSB0aGUgUmVuZXNhcyBjb252ZW50aW9ucyB3ZXJlIGF2YWlsYWJs ZS4KVGhpcyBvcHRpb24gaXMgdGhlIGRlZmF1bHQgZm9yIGFsbCB0YXJnZXRzIG9mIHRoZSBT SCB0b29sY2hhaW4gZXhjZXB0IGZvcgouU3kgc2gtc3ltYmlhbmVsZiAuCi5QcAouSXQgRmwg bW5vbWFjc2F2ZQpNYXJrIHRoZQouVmEgTUFDCnJlZ2lzdGVyIGFzIGNhbGwtY2xvYmJlcmVk LCBldmVuIGlmCi5GbCBtaGl0YWNoaQppcyBnaXZlbi4KLlBwCi5JdCBGbCBtaWVlZQpJbmNy ZWFzZSBJRUVFLWNvbXBsaWFuY2Ugb2YgZmxvYXRpbmctcG9pbnQgY29kZS4KQXQgdGhlIG1v bWVudCwgdGhpcyBpcyBlcXVpdmFsZW50IHRvCi5GbCBmbm8tZmluaXRlLW1hdGgtb25seSAu CldoZW4gZ2VuZXJhdGluZyAxNiBiaXQgU0ggb3Bjb2RlcywgZ2V0dGluZyBJRUVFLWNvbmZv cm1pbmcgcmVzdWx0cyBmb3IgY29tcGFyaXNvbnMgb2YgTkFOcyAvIGluZmluaXRpZXMgaW5j dXJzIGV4dHJhIG92ZXJoZWFkIGluIGV2ZXJ5IGZsb2F0aW5nIHBvaW50IGNvbXBhcmlzb24s IHRoZXJlZm9yZSB0aGUgZGVmYXVsdCBpcyBzZXQgdG8KLkZsIGZmaW5pdGUtbWF0aC1vbmx5 IC4KLlBwCi5JdCBGbCBtaXNpemUKRHVtcCBpbnN0cnVjdGlvbiBzaXplIGFuZCBsb2NhdGlv biBpbiB0aGUgYXNzZW1ibHkgY29kZS4KLlBwCi5JdCBGbCBtcGFkc3RydWN0ClRoaXMgb3B0 aW9uIGlzIGRlcHJlY2F0ZWQuCkl0IHBhZHMgc3RydWN0dXJlcyB0byBtdWx0aXBsZSBvZiA0 IGJ5dGVzLCB3aGljaCBpcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgU0ggQUJJLgouUHAKLkl0 IEZsIG1zcGFjZQpPcHRpbWl6ZSBmb3Igc3BhY2UgaW5zdGVhZCBvZiBzcGVlZC4KSW1wbGll ZCBieQouRmwgXCZPcyAuCi5QcAouSXQgRmwgbXByZWZlcmdvdApXaGVuIGdlbmVyYXRpbmcg cG9zaXRpb24taW5kZXBlbmRlbnQgY29kZSwgZW1pdCBmdW5jdGlvbiBjYWxscyB1c2luZyB0 aGUgR2xvYmFsIE9mZnNldCBUYWJsZSBpbnN0ZWFkIG9mIHRoZSBQcm9jZWR1cmUgTGlua2Fn ZSBUYWJsZS4KLlBwCi5JdCBGbCBtdXNlcm1vZGUKR2VuZXJhdGUgYSBsaWJyYXJ5IGZ1bmN0 aW9uIGNhbGwgdG8gaW52YWxpZGF0ZSBpbnN0cnVjdGlvbiBjYWNoZSBlbnRyaWVzLCBhZnRl ciBmaXhpbmcgdXAgYSB0cmFtcG9saW5lLgpUaGlzIGxpYnJhcnkgZnVuY3Rpb24gY2FsbCBk b2Vzbid0IGFzc3VtZSBpdCBjYW4gd3JpdGUgdG8gdGhlIHdob2xlIG1lbW9yeSBhZGRyZXNz IHNwYWNlLgpUaGlzIGlzIHRoZSBkZWZhdWx0IHdoZW4gdGhlIHRhcmdldCBpcwouVmEgc2gt Ki1saW51eCogLgouUHAKLkl0IEZsIG11bHRjb3N0PSBOcyBBciBudW1iZXIKU2V0IHRoZSBj b3N0IHRvIGFzc3VtZSBmb3IgYSBtdWx0aXBseSBpbnNuLgouUHAKLkl0IEZsIG1kaXY9IE5z IEFyIHN0cmF0ZWd5ClNldCB0aGUgZGl2aXNpb24gc3RyYXRlZ3kgdG8gdXNlIGZvciBTSG1l ZGlhIGNvZGUuCi5FbSBzdHJhdGVneQptdXN0IGJlIG9uZSBvZjogY2FsbCwgY2FsbDIsIGZw LCBpbnYsIGludjptaW5sYXQsIGludjIwdSwgaW52MjBsLCBpbnY6Y2FsbCwgaW52OmNhbGwy LCBpbnY6ZnAuCiJmcCIgcGVyZm9ybXMgdGhlIG9wZXJhdGlvbiBpbiBmbG9hdGluZyBwb2lu dC4KVGhpcyBoYXMgYSB2ZXJ5IGhpZ2ggbGF0ZW5jeSwgYnV0IG5lZWRzIG9ubHkgYSBmZXcg aW5zdHJ1Y3Rpb25zLCBzbyBpdCBtaWdodCBiZSBhIGdvb2QgY2hvaWNlIGlmIHlvdXIgY29k ZSBoYXMgZW5vdWdoIGVhc2lseSBleHBsb2l0YWJsZSBJTFAgdG8gYWxsb3cgdGhlIGNvbXBp bGVyIHRvIHNjaGVkdWxlIHRoZSBmbG9hdGluZyBwb2ludCBpbnN0cnVjdGlvbnMgdG9nZXRo ZXIgd2l0aCBvdGhlciBpbnN0cnVjdGlvbnMuCkRpdmlzaW9uIGJ5IHplcm8gY2F1c2VzIGEg ZmxvYXRpbmcgcG9pbnQgZXhjZXB0aW9uLgoiaW52IiB1c2VzIGludGVnZXIgb3BlcmF0aW9u cyB0byBjYWxjdWxhdGUgdGhlIGludmVyc2Ugb2YgdGhlIGRpdmlzb3IsIGFuZCB0aGVuIG11 bHRpcGxpZXMgdGhlIGRpdmlkZW5kIHdpdGggdGhlIGludmVyc2UuClRoaXMgc3RyYXRlZ3kg YWxsb3dzIGNzZSBhbmQgaG9pc3Rpbmcgb2YgdGhlIGludmVyc2UgY2FsY3VsYXRpb24uCkRp dmlzaW9uIGJ5IHplcm8gY2FsY3VsYXRlcyBhbiB1bnNwZWNpZmllZCByZXN1bHQsIGJ1dCBk b2VzIG5vdCB0cmFwLgoiaW52Om1pbmxhdCIgaXMgYSB2YXJpYW50IG9mICJpbnYiIHdoZXJl IGlmIG5vIGNzZSAvIGhvaXN0aW5nIG9wcG9ydHVuaXRpZXMgaGF2ZSBiZWVuIGZvdW5kLCBv ciBpZiB0aGUgZW50aXJlIG9wZXJhdGlvbiBoYXMgYmVlbiBob2lzdGVkIHRvIHRoZSBzYW1l IHBsYWNlLCB0aGUgbGFzdCBzdGFnZXMgb2YgdGhlIGludmVyc2UgY2FsY3VsYXRpb24gYXJl IGludGVydHdpbmVkIHdpdGggdGhlIGZpbmFsIG11bHRpcGx5IHRvIHJlZHVjZSB0aGUgb3Zl cmFsbCBsYXRlbmN5LCBhdCB0aGUgZXhwZW5zZSBvZiB1c2luZyBhIGZldyBtb3JlIGluc3Ry dWN0aW9ucywgYW5kIHRodXMgb2ZmZXJpbmcgZmV3ZXIgc2NoZWR1bGluZyBvcHBvcnR1bml0 aWVzIHdpdGggb3RoZXIgY29kZS4KImNhbGwiIGNhbGxzIGEgbGlicmFyeSBmdW5jdGlvbiB0 aGF0IHVzdWFsbHkgaW1wbGVtZW50cyB0aGUgaW52Om1pbmxhdCBzdHJhdGVneS4KVGhpcyBn aXZlcyBoaWdoIGNvZGUgZGVuc2l0eSBmb3IgbTUtKm1lZGlhLW5vZnB1IGNvbXBpbGF0aW9u cy4KImNhbGwyIiB1c2VzIGEgZGlmZmVyZW50IGVudHJ5IHBvaW50IG9mIHRoZSBzYW1lIGxp YnJhcnkgZnVuY3Rpb24sIHdoZXJlIGl0IGFzc3VtZXMgdGhhdCBhIHBvaW50ZXIgdG8gYSBs b29rdXAgdGFibGUgaGFzIGFscmVhZHkgYmVlbiBzZXQgdXAsIHdoaWNoIGV4cG9zZXMgdGhl IHBvaW50ZXIgbG9hZCB0byBjc2UgLyBjb2RlIGhvaXN0aW5nIG9wdGltaXphdGlvbnMuCiJp bnY6Y2FsbCIsICJpbnY6Y2FsbDIiIGFuZCAiaW52OmZwIiBhbGwgdXNlIHRoZSAiaW52IiBh bGdvcml0aG0gZm9yIGluaXRpYWwgY29kZSBnZW5lcmF0aW9uLCBidXQgaWYgdGhlIGNvZGUg c3RheXMgdW5vcHRpbWl6ZWQsIHJldmVydCB0byB0aGUgImNhbGwiLCAiY2FsbDIiLCBvciAi ZnAiIHN0cmF0ZWdpZXMsIHJlc3BlY3RpdmVseS4KTm90ZSB0aGF0IHRoZSBwb3RlbnRpYWxs eS10cmFwcGluZyBzaWRlIGVmZmVjdCBvZiBkaXZpc2lvbiBieSB6ZXJvIGlzIGNhcnJpZWQg YnkgYSBzZXBhcmF0ZSBpbnN0cnVjdGlvbiwgc28gaXQgaXMgcG9zc2libGUgdGhhdCBhbGwg dGhlIGludGVnZXIgaW5zdHJ1Y3Rpb25zIGFyZSBob2lzdGVkIG91dCwgYnV0IHRoZSBtYXJr ZXIgZm9yIHRoZSBzaWRlIGVmZmVjdCBzdGF5cyB3aGVyZSBpdCBpcy4KQSByZWNvbWJpbmF0 aW9uIHRvIGZwIG9wZXJhdGlvbnMgb3IgYSBjYWxsIGlzIG5vdCBwb3NzaWJsZSBpbiB0aGF0 IGNhc2UuCiJpbnYyMHUiIGFuZCAiaW52MjBsIiBhcmUgdmFyaWFudHMgb2YgdGhlICJpbnY6 bWlubGF0IiBzdHJhdGVneS4KSW4gdGhlIGNhc2UgdGhhdCB0aGUgaW52ZXJzZSBjYWxjdWxh dGlvbiB3YXMgbm9yIHNlcGFyYXRlZCBmcm9tIHRoZSBtdWx0aXBseSwgdGhleSBzcGVlZCB1 cCBkaXZpc2lvbiB3aGVyZSB0aGUgZGl2aWRlbmQgZml0cyBpbnRvIDIwIGJpdHMgKHBsdXMg c2lnbiB3aGVyZSBhcHBsaWNhYmxlKSwgYnkgaW5zZXJ0aW5nIGEgdGVzdCB0byBza2lwIGEg bnVtYmVyIG9mIG9wZXJhdGlvbnMgaW4gdGhpcyBjYXNlOyB0aGlzIHRlc3Qgc2xvd3MgZG93 biB0aGUgY2FzZSBvZiBsYXJnZXIgZGl2aWRlbmRzLgppbnYyMHUgYXNzdW1lcyB0aGUgY2Fz ZSBvZiBhIHN1Y2ggYSBzbWFsbCBkaXZpZGVuZCB0byBiZSB1bmxpa2VseSwgYW5kIGludjIw bCBhc3N1bWVzIGl0IHRvIGJlIGxpa2VseS4KLlBwCi5JdCBGbCBtZGl2c2kzX2xpYmZ1bmM9 IE5zIEFyIG5hbWUKU2V0IHRoZSBuYW1lIG9mIHRoZSBsaWJyYXJ5IGZ1bmN0aW9uIHVzZWQg Zm9yIDMyIGJpdCBzaWduZWQgZGl2aXNpb24gdG8KLkVtIG5hbWUgLgpUaGlzIG9ubHkgYWZm ZWN0IHRoZSBuYW1lIHVzZWQgaW4gdGhlIGNhbGwgYW5kIGludjpjYWxsIGRpdmlzaW9uIHN0 cmF0ZWdpZXMsIGFuZCB0aGUgY29tcGlsZXIgd2lsbCBzdGlsbCBleHBlY3QgdGhlIHNhbWUg c2V0cyBvZiBpbnB1dC9vdXRwdXQvY2xvYmJlcmVkIHJlZ2lzdGVycyBhcyBpZiB0aGlzIG9w dGlvbiB3YXMgbm90IHByZXNlbnQuCi5QcAouSXQgRmwgbWFkanVzdC11bnJvbGwKVGhyb3R0 bGUgdW5yb2xsaW5nIHRvIGF2b2lkIHRocmFzaGluZyB0YXJnZXQgcmVnaXN0ZXJzLgpUaGlz IG9wdGlvbiBvbmx5IGhhcyBhbiBlZmZlY3QgaWYgdGhlIGdjYyBjb2RlIGJhc2Ugc3VwcG9y dHMgdGhlIFRBUkdFVF9BREpVU1RfVU5ST0xMX01BWCB0YXJnZXQgaG9vay4KLlBwCi5JdCBG bCBtaW5kZXhlZC1hZGRyZXNzaW5nCkVuYWJsZSB0aGUgdXNlIG9mIHRoZSBpbmRleGVkIGFk ZHJlc3NpbmcgbW9kZSBmb3IgU0htZWRpYTMyL1NIY29tcGFjdC4KVGhpcyBpcyBvbmx5IHNh ZmUgaWYgdGhlIGhhcmR3YXJlIGFuZC9vciBPUyBpbXBsZW1lbnQgMzIgYml0IHdyYXAtYXJv dW5kIHNlbWFudGljcyBmb3IgdGhlIGluZGV4ZWQgYWRkcmVzc2luZyBtb2RlLgpUaGUgYXJj aGl0ZWN0dXJlIGFsbG93cyB0aGUgaW1wbGVtZW50YXRpb24gb2YgcHJvY2Vzc29ycyB3aXRo IDY0IGJpdCBNTVUsIHdoaWNoIHRoZSBPUyBjb3VsZCB1c2UgdG8gZ2V0IDMyIGJpdCBhZGRy ZXNzaW5nLCBidXQgc2luY2Ugbm8gY3VycmVudCBoYXJkd2FyZSBpbXBsZW1lbnRhdGlvbiBz dXBwb3J0cyB0aGlzIG9yIGFueSBvdGhlciB3YXkgdG8gbWFrZSB0aGUgaW5kZXhlZCBhZGRy ZXNzaW5nIG1vZGUgc2FmZSB0byB1c2UgaW4gdGhlIDMyIGJpdCBBQkksIHRoZSBkZWZhdWx0 IGlzIC1tbm8taW5kZXhlZC1hZGRyZXNzaW5nLgouUHAKLkl0IEZsIG1nZXR0cmNvc3Q9IE5z IEFyIG51bWJlcgpTZXQgdGhlIGNvc3QgYXNzdW1lZCBmb3IgdGhlIGdldHRyIGluc3RydWN0 aW9uIHRvCi5FbSBudW1iZXIgLgpUaGUgZGVmYXVsdCBpcyAyIGlmCi5GbCBtcHQtZml4ZWQK aXMgaW4gZWZmZWN0LCAxMDAgb3RoZXJ3aXNlLgouUHAKLkl0IEZsIG1wdC1maXhlZApBc3N1 bWUgcHQqIGluc3RydWN0aW9ucyB3b24ndCB0cmFwLgpUaGlzIHdpbGwgZ2VuZXJhbGx5IGdl bmVyYXRlIGJldHRlciBzY2hlZHVsZWQgY29kZSwgYnV0IGlzIHVuc2FmZSBvbiBjdXJyZW50 IGhhcmR3YXJlLgpUaGUgY3VycmVudCBhcmNoaXRlY3R1cmUgZGVmaW5pdGlvbiBzYXlzIHRo YXQgcHRhYnMgYW5kIHB0cmVsIHRyYXAgd2hlbiB0aGUgdGFyZ2V0IGFuZGVkIHdpdGggMyBp cyAzLgpUaGlzIGhhcyB0aGUgdW5pbnRlbnRpb25hbCBlZmZlY3Qgb2YgbWFraW5nIGl0IHVu c2FmZSB0byBzY2hlZHVsZSBwdGFicyAvIHB0cmVsIGJlZm9yZSBhIGJyYW5jaCwgb3IgaG9p c3QgaXQgb3V0IG9mIGEgbG9vcC4KRm9yIGV4YW1wbGUsIF9fZG9fZ2xvYmFsX2N0b3JzLCBh IHBhcnQgb2YgbGliZ2NjIHRoYXQgcnVucyBjb25zdHJ1Y3RvcnMgYXQgcHJvZ3JhbSBzdGFy dHVwLCBjYWxscyBmdW5jdGlvbnMgaW4gYSBsaXN0IHdoaWNoIGlzIGRlbGltaXRlZCBieSAt MS4KV2l0aCB0aGUgLW1wdC1maXhlZCBvcHRpb24sIHRoZSBwdGFicyB3aWxsIGJlIGRvbmUg YmVmb3JlIHRlc3RpbmcgYWdhaW5zdCAtMS4KVGhhdCBtZWFucyB0aGF0IGFsbCB0aGUgY29u c3RydWN0b3JzIHdpbGwgYmUgcnVuIGEgYml0IHF1aWNrZXIsIGJ1dCB3aGVuIHRoZSBsb29w IGNvbWVzIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QsIHRoZSBwcm9ncmFtIGNyYXNoZXMgYmVj YXVzZSBwdGFicyBsb2FkcyAtMSBpbnRvIGEgdGFyZ2V0IHJlZ2lzdGVyLgpTaW5jZSB0aGlz IG9wdGlvbiBpcyB1bnNhZmUgZm9yIGFueSBoYXJkd2FyZSBpbXBsZW1lbnRpbmcgdGhlIGN1 cnJlbnQgYXJjaGl0ZWN0dXJlIHNwZWNpZmljYXRpb24sIHRoZSBkZWZhdWx0IGlzIC1tbm8t cHQtZml4ZWQuClVubGVzcyB0aGUgdXNlciBzcGVjaWZpZXMgYSBzcGVjaWZpYyBjb3N0IHdp dGgKLkZsIG1nZXR0cmNvc3QgLAotbW5vLXB0LWZpeGVkIGFsc28gaW1wbGllcwouRmwgbWdl dHRyY29zdD0xMDAgOwp0aGlzIGRldGVycyByZWdpc3RlciBhbGxvY2F0aW9uIHVzaW5nIHRh cmdldCByZWdpc3RlcnMgZm9yIHN0b3Jpbmcgb3JkaW5hcnkgaW50ZWdlcnMuCi5QcAouSXQg RmwgbWludmFsaWQtc3ltYm9scwpBc3N1bWUgc3ltYm9scyBtaWdodCBiZSBpbnZhbGlkLgpP cmRpbmFyeSBmdW5jdGlvbiBzeW1ib2xzIGdlbmVyYXRlZCBieSB0aGUgY29tcGlsZXIgd2ls bCBhbHdheXMgYmUgdmFsaWQgdG8gbG9hZCB3aXRoIG1vdmkvc2hvcmkvcHRhYnMgb3IgbW92 aS9zaG9yaS9wdHJlbCwgYnV0IHdpdGggYXNzZW1ibGVyIGFuZC9vciBsaW5rZXIgdHJpY2tz IGl0IGlzIHBvc3NpYmxlIHRvIGdlbmVyYXRlIHN5bWJvbHMgdGhhdCB3aWxsIGNhdXNlIHB0 YWJzIC8gcHRyZWwgdG8gdHJhcC4KVGhpcyBvcHRpb24gaXMgb25seSBtZWFuaW5nZnVsIHdo ZW4KLkZsIG1uby1wdC1maXhlZAppcyBpbiBlZmZlY3QuCkl0IHdpbGwgdGhlbiBwcmV2ZW50 IGNyb3NzLWJhc2ljLWJsb2NrIGNzZSwgaG9pc3RpbmcgYW5kIG1vc3Qgc2NoZWR1bGluZyBv ZiBzeW1ib2wgbG9hZHMuClRoZSBkZWZhdWx0IGlzCi5GbCBtbm8taW52YWxpZC1zeW1ib2xz IC4KLlBwCi5FbAouSXQgU3kgU1BBUkMgT3B0aW9ucwpUaGVzZQouRmwgbQpvcHRpb25zIGFy ZSBzdXBwb3J0ZWQgb24gdGhlIFNQQVJDOgouUHAKLkJsIC10YWcgLXdpZHRoIHh4Ci5JdCBG bCBtbm8tYXBwLXJlZ3MKLkl0IEZsIG1hcHAtcmVncwpTcGVjaWZ5Ci5GbCBtYXBwLXJlZ3MK dG8gZ2VuZXJhdGUgb3V0cHV0IHVzaW5nIHRoZSBnbG9iYWwgcmVnaXN0ZXJzIDIgdGhyb3Vn aCA0LCB3aGljaCB0aGUgU1BBUkMgU1ZSNCBBQkkgcmVzZXJ2ZXMgZm9yIGFwcGxpY2F0aW9u cy4KVGhpcyBpcyB0aGUgZGVmYXVsdC4KLlBwClRvIGJlIGZ1bGx5IFNWUjQgQUJJIGNvbXBs aWFudCBhdCB0aGUgY29zdCBvZiBzb21lIHBlcmZvcm1hbmNlIGxvc3MsIHNwZWNpZnkKLkZs IG1uby1hcHAtcmVncyAuCllvdSBzaG91bGQgY29tcGlsZSBsaWJyYXJpZXMgYW5kIHN5c3Rl bSBzb2Z0d2FyZSB3aXRoIHRoaXMgb3B0aW9uLgouUHAKLkl0IEZsIG1mcHUKLkl0IEZsIG1o YXJkLWZsb2F0CkdlbmVyYXRlIG91dHB1dCBjb250YWluaW5nIGZsb2F0aW5nIHBvaW50IGlu c3RydWN0aW9ucy4KVGhpcyBpcyB0aGUgZGVmYXVsdC4KLlBwCi5JdCBGbCBtbm8tZnB1Ci5J dCBGbCBtc29mdC1mbG9hdApHZW5lcmF0ZSBvdXRwdXQgY29udGFpbmluZyBsaWJyYXJ5IGNh bGxzIGZvciBmbG9hdGluZyBwb2ludC4KLlN5IFdhcm5pbmc6CnRoZSByZXF1aXNpdGUgbGli cmFyaWVzIGFyZSBub3QgYXZhaWxhYmxlIGZvciBhbGwgU1BBUkMgdGFyZ2V0cy4KTm9ybWFs bHkgdGhlIGZhY2lsaXRpZXMgb2YgdGhlIG1hY2hpbmUncyB1c3VhbCBDIGNvbXBpbGVyIGFy ZSB1c2VkLCBidXQgdGhpcyBjYW5ub3QgYmUgZG9uZSBkaXJlY3RseSBpbiBjcm9zcy1jb21w aWxhdGlvbi4KWW91IG11c3QgbWFrZSB5b3VyIG93biBhcnJhbmdlbWVudHMgdG8gcHJvdmlk ZSBzdWl0YWJsZSBsaWJyYXJ5IGZ1bmN0aW9ucyBmb3IgY3Jvc3MtY29tcGlsYXRpb24uClRo ZSBlbWJlZGRlZCB0YXJnZXRzCi5TeSBzcGFyYy0qLWFvdXQKYW5kCi5TeSBzcGFyY2xpdGUt Ki0qCmRvIHByb3ZpZGUgc29mdHdhcmUgZmxvYXRpbmcgcG9pbnQgc3VwcG9ydC4KLlBwCi5G bCBtc29mdC1mbG9hdApjaGFuZ2VzIHRoZSBjYWxsaW5nIGNvbnZlbnRpb24gaW4gdGhlIG91 dHB1dCBmaWxlOyB0aGVyZWZvcmUsIGl0IGlzIG9ubHkgdXNlZnVsIGlmIHlvdSBjb21waWxl Ci5FbSBhbGwKb2YgYSBwcm9ncmFtIHdpdGggdGhpcyBvcHRpb24uCkluIHBhcnRpY3VsYXIs IHlvdSBuZWVkIHRvIGNvbXBpbGUKLlBhIGxpYmdjYy5hICwKdGhlIGxpYnJhcnkgdGhhdCBj b21lcyB3aXRoIEdDQywgd2l0aAouRmwgbXNvZnQtZmxvYXQKaW4gb3JkZXIgZm9yIHRoaXMg dG8gd29yay4KLlBwCi5JdCBGbCBtaGFyZC1xdWFkLWZsb2F0CkdlbmVyYXRlIG91dHB1dCBj b250YWluaW5nIHF1YWQtd29yZCAobG9uZyBkb3VibGUpIGZsb2F0aW5nIHBvaW50IGluc3Ry dWN0aW9ucy4KLlBwCi5JdCBGbCBtc29mdC1xdWFkLWZsb2F0CkdlbmVyYXRlIG91dHB1dCBj b250YWluaW5nIGxpYnJhcnkgY2FsbHMgZm9yIHF1YWQtd29yZCAobG9uZyBkb3VibGUpIGZs b2F0aW5nIHBvaW50IGluc3RydWN0aW9ucy4KVGhlIGZ1bmN0aW9ucyBjYWxsZWQgYXJlIHRo b3NlIHNwZWNpZmllZCBpbiB0aGUgU1BBUkMgQUJJLgpUaGlzIGlzIHRoZSBkZWZhdWx0Lgou UHAKQXMgb2YgdGhpcyB3cml0aW5nLCB0aGVyZSBhcmUgbm8gU1BBUkMgaW1wbGVtZW50YXRp b25zIHRoYXQgaGF2ZSBoYXJkd2FyZSBzdXBwb3J0IGZvciB0aGUgcXVhZC13b3JkIGZsb2F0 aW5nIHBvaW50IGluc3RydWN0aW9ucy4KVGhleSBhbGwgaW52b2tlIGEgdHJhcCBoYW5kbGVy IGZvciBvbmUgb2YgdGhlc2UgaW5zdHJ1Y3Rpb25zLCBhbmQgdGhlbiB0aGUgdHJhcCBoYW5k bGVyIGVtdWxhdGVzIHRoZSBlZmZlY3Qgb2YgdGhlIGluc3RydWN0aW9uLgpCZWNhdXNlIG9m IHRoZSB0cmFwIGhhbmRsZXIgb3ZlcmhlYWQsIHRoaXMgaXMgbXVjaCBzbG93ZXIgdGhhbiBj YWxsaW5nIHRoZSBBQkkgbGlicmFyeSByb3V0aW5lcy4KVGh1cyB0aGUKLkZsIG1zb2Z0LXF1 YWQtZmxvYXQKb3B0aW9uIGlzIHRoZSBkZWZhdWx0LgouUHAKLkl0IEZsIG1uby11bmFsaWdu ZWQtZG91YmxlcwouSXQgRmwgbXVuYWxpZ25lZC1kb3VibGVzCkFzc3VtZSB0aGF0IGRvdWJs ZXMgaGF2ZSA4IGJ5dGUgYWxpZ25tZW50LgpUaGlzIGlzIHRoZSBkZWZhdWx0LgouUHAKV2l0 aAouRmwgbXVuYWxpZ25lZC1kb3VibGVzICwKR0NDIGFzc3VtZXMgdGhhdCBkb3VibGVzIGhh dmUgOCBieXRlIGFsaWdubWVudCBvbmx5IGlmIHRoZXkgYXJlIGNvbnRhaW5lZCBpbiBhbm90 aGVyIHR5cGUsIG9yIGlmIHRoZXkgaGF2ZSBhbiBhYnNvbHV0ZSBhZGRyZXNzLgpPdGhlcndp c2UsIGl0IGFzc3VtZXMgdGhleSBoYXZlIDQgYnl0ZSBhbGlnbm1lbnQuClNwZWNpZnlpbmcg dGhpcyBvcHRpb24gYXZvaWRzIHNvbWUgcmFyZSBjb21wYXRpYmlsaXR5IHByb2JsZW1zIHdp dGggY29kZSBnZW5lcmF0ZWQgYnkgb3RoZXIgY29tcGlsZXJzLgpJdCBpcyBub3QgdGhlIGRl ZmF1bHQgYmVjYXVzZSBpdCByZXN1bHRzIGluIGEgcGVyZm9ybWFuY2UgbG9zcywgZXNwZWNp YWxseSBmb3IgZmxvYXRpbmcgcG9pbnQgY29kZS4KLlBwCi5JdCBGbCBtbm8tZmFzdGVyLXN0 cnVjdHMKLkl0IEZsIG1mYXN0ZXItc3RydWN0cwpXaXRoCi5GbCBtZmFzdGVyLXN0cnVjdHMg LAp0aGUgY29tcGlsZXIgYXNzdW1lcyB0aGF0IHN0cnVjdHVyZXMgc2hvdWxkIGhhdmUgOCBi eXRlIGFsaWdubWVudC4KVGhpcyBlbmFibGVzIHRoZSB1c2Ugb2YgcGFpcnMgb2YKLlZhIGxk ZAphbmQKLlZhIHN0ZAppbnN0cnVjdGlvbnMgZm9yIGNvcGllcyBpbiBzdHJ1Y3R1cmUgYXNz aWdubWVudCwgaW4gcGxhY2Ugb2YgdHdpY2UgYXMgbWFueQouVmEgbGQKYW5kCi5WYSBzdApw YWlycy4KSG93ZXZlciwgdGhlIHVzZSBvZiB0aGlzIGNoYW5nZWQgYWxpZ25tZW50IGRpcmVj dGx5IHZpb2xhdGVzIHRoZSBTUEFSQyBBQkkuClRodXMsIGl0J3MgaW50ZW5kZWQgb25seSBm b3IgdXNlIG9uIHRhcmdldHMgd2hlcmUgdGhlIGRldmVsb3BlciBhY2tub3dsZWRnZXMgdGhh dCB0aGVpciByZXN1bHRpbmcgY29kZSB3aWxsIG5vdCBiZSBkaXJlY3RseSBpbiBsaW5lIHdp dGggdGhlIHJ1bGVzIG9mIHRoZSBBQkkuCi5QcAouSXQgRmwgbWltcHVyZS10ZXh0Ci5GbCBt aW1wdXJlLXRleHQgLAp1c2VkIGluIGFkZGl0aW9uIHRvCi5GbCBzaGFyZWQgLAp0ZWxscyB0 aGUgY29tcGlsZXIgdG8gbm90IHBhc3MKLkZsIHogQXIgdGV4dAp0byB0aGUgbGlua2VyIHdo ZW4gbGlua2luZyBhIHNoYXJlZCBvYmplY3QuClVzaW5nIHRoaXMgb3B0aW9uLCB5b3UgY2Fu IGxpbmsgcG9zaXRpb24tZGVwZW5kZW50IGNvZGUgaW50byBhIHNoYXJlZCBvYmplY3QuCi5Q cAouRmwgbWltcHVyZS10ZXh0CnN1cHByZXNzZXMgdGhlICJyZWxvY2F0aW9ucyByZW1haW4g YWdhaW5zdCBhbGxvY2F0YWJsZSBidXQgbm9uLXdyaXRhYmxlIHNlY3Rpb25zIiBsaW5rZXIg ZXJyb3IgbWVzc2FnZS4KSG93ZXZlciwgdGhlIG5lY2Vzc2FyeSByZWxvY2F0aW9ucyB3aWxs IHRyaWdnZXIgY29weS1vbi13cml0ZSwgYW5kIHRoZSBzaGFyZWQgb2JqZWN0IGlzIG5vdCBh Y3R1YWxseSBzaGFyZWQgYWNyb3NzIHByb2Nlc3Nlcy4KSW5zdGVhZCBvZiB1c2luZwouRmwg bWltcHVyZS10ZXh0ICwKeW91IHNob3VsZCBjb21waWxlIGFsbCBzb3VyY2UgY29kZSB3aXRo Ci5GbCBmcGljCm9yCi5GbCBmUElDIC4KLlBwClRoaXMgb3B0aW9uIGlzIG9ubHkgYXZhaWxh YmxlIG9uIFN1bk9TIGFuZCBTb2xhcmlzLgouUHAKLkl0IEZsIG1jcHU9IE5zIEFyIGNwdV90 eXBlClNldCB0aGUgaW5zdHJ1Y3Rpb24gc2V0LCByZWdpc3RlciBzZXQsIGFuZCBpbnN0cnVj dGlvbiBzY2hlZHVsaW5nIHBhcmFtZXRlcnMgZm9yIG1hY2hpbmUgdHlwZQouRW0gY3B1X3R5 cGUgLgpTdXBwb3J0ZWQgdmFsdWVzIGZvcgouRW0gY3B1X3R5cGUKYXJlCi5TeSB2NyAsCi5T eSBjeXByZXNzICwKLlN5IHY4ICwKLlN5IHN1cGVyc3BhcmMgLAouU3kgc3BhcmNsaXRlICwK LlN5IGY5MzAgLAouU3kgZjkzNCAsCi5TeSBoeXBlcnNwYXJjICwKLlN5IHNwYXJjbGl0ZTg2 eCAsCi5TeSBzcGFyY2xldCAsCi5TeSB0c2M3MDEgLAouU3kgdjkgLAouU3kgdWx0cmFzcGFy YyAsCmFuZAouU3kgdWx0cmFzcGFyYzMgLgouUHAKRGVmYXVsdCBpbnN0cnVjdGlvbiBzY2hl ZHVsaW5nIHBhcmFtZXRlcnMgYXJlIHVzZWQgZm9yIHZhbHVlcyB0aGF0IHNlbGVjdCBhbiBh cmNoaXRlY3R1cmUgYW5kIG5vdCBhbiBpbXBsZW1lbnRhdGlvbi4KVGhlc2UgYXJlCi5TeSB2 NyAsCi5TeSB2OCAsCi5TeSBzcGFyY2xpdGUgLAouU3kgc3BhcmNsZXQgLAouU3kgdjkgLgou UHAKSGVyZSBpcyBhIGxpc3Qgb2YgZWFjaCBzdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlIGFuZCB0 aGVpciBzdXBwb3J0ZWQgaW1wbGVtZW50YXRpb25zLgouUHAKLkJkIC1saXRlcmFsIC1vZmZz ZXQgaW5kZW50CiAgICB2NzogICAgICAgICAgICAgY3lwcmVzcwogICAgdjg6ICAgICAgICAg ICAgIHN1cGVyc3BhcmMsIGh5cGVyc3BhcmMKICAgIHNwYXJjbGl0ZTogICAgICBmOTMwLCBm OTM0LCBzcGFyY2xpdGU4NngKICAgIHNwYXJjbGV0OiAgICAgICB0c2M3MDEKICAgIHY5OiAg ICAgICAgICAgICB1bHRyYXNwYXJjLCB1bHRyYXNwYXJjMwouRWQKQnkgZGVmYXVsdCAodW5s ZXNzIGNvbmZpZ3VyZWQgb3RoZXJ3aXNlKSwgR0NDIGdlbmVyYXRlcyBjb2RlIGZvciB0aGUg VjcgdmFyaWFudCBvZiB0aGUgU1BBUkMgYXJjaGl0ZWN0dXJlLgpXaXRoCi5GbCBtY3B1PWN5 cHJlc3MgLAp0aGUgY29tcGlsZXIgYWRkaXRpb25hbGx5IG9wdGltaXplcyBpdCBmb3IgdGhl IEN5cHJlc3MgQ1k3QzYwMiBjaGlwLCBhcyB1c2VkIGluIHRoZSBTUEFSQ1N0YXRpb24vU1BB UkNTZXJ2ZXIgM3h4IHNlcmllcy4KVGhpcyBpcyBhbHNvIGFwcHJvcHJpYXRlIGZvciB0aGUg b2xkZXIgU1BBUkNTdGF0aW9uIDEsIDIsIElQWCBldGMuCi5QcApXaXRoCi5GbCBtY3B1PXY4 ICwKR0NDIGdlbmVyYXRlcyBjb2RlIGZvciB0aGUgVjggdmFyaWFudCBvZiB0aGUgU1BBUkMg YXJjaGl0ZWN0dXJlLgpUaGUgb25seSBkaWZmZXJlbmNlIGZyb20gVjcgY29kZSBpcyB0aGF0 IHRoZSBjb21waWxlciBlbWl0cyB0aGUgaW50ZWdlciBtdWx0aXBseSBhbmQgaW50ZWdlciBk aXZpZGUgaW5zdHJ1Y3Rpb25zIHdoaWNoIGV4aXN0IGluIFNQQVJDLVY4IGJ1dCBub3QgaW4g U1BBUkMtVjcuCldpdGgKLkZsIG1jcHU9c3VwZXJzcGFyYyAsCnRoZSBjb21waWxlciBhZGRp dGlvbmFsbHkgb3B0aW1pemVzIGl0IGZvciB0aGUgU3VwZXJTUEFSQyBjaGlwLCBhcyB1c2Vk IGluIHRoZSBTUEFSQ1N0YXRpb24gMTAsIDEwMDAgYW5kIDIwMDAgc2VyaWVzLgouUHAKV2l0 aAouRmwgbWNwdT1zcGFyY2xpdGUgLApHQ0MgZ2VuZXJhdGVzIGNvZGUgZm9yIHRoZSBTUEFS Q2xpdGUgdmFyaWFudCBvZiB0aGUgU1BBUkMgYXJjaGl0ZWN0dXJlLgpUaGlzIGFkZHMgdGhl IGludGVnZXIgbXVsdGlwbHksIGludGVnZXIgZGl2aWRlIHN0ZXAgYW5kIHNjYW4KLlZhICgg ZmZzICkKaW5zdHJ1Y3Rpb25zIHdoaWNoIGV4aXN0IGluIFNQQVJDbGl0ZSBidXQgbm90IGlu IFNQQVJDLVY3LgpXaXRoCi5GbCBtY3B1PWY5MzAgLAp0aGUgY29tcGlsZXIgYWRkaXRpb25h bGx5IG9wdGltaXplcyBpdCBmb3IgdGhlIEZ1aml0c3UgTUI4NjkzMCBjaGlwLCB3aGljaCBp cyB0aGUgb3JpZ2luYWwgU1BBUkNsaXRlLCB3aXRoIG5vIEZQVS4KV2l0aAouRmwgbWNwdT1m OTM0ICwKdGhlIGNvbXBpbGVyIGFkZGl0aW9uYWxseSBvcHRpbWl6ZXMgaXQgZm9yIHRoZSBG dWppdHN1IE1CODY5MzQgY2hpcCwgd2hpY2ggaXMgdGhlIG1vcmUgcmVjZW50IFNQQVJDbGl0 ZSB3aXRoIEZQVS4KLlBwCldpdGgKLkZsIG1jcHU9c3BhcmNsZXQgLApHQ0MgZ2VuZXJhdGVz IGNvZGUgZm9yIHRoZSBTUEFSQ2xldCB2YXJpYW50IG9mIHRoZSBTUEFSQyBhcmNoaXRlY3R1 cmUuClRoaXMgYWRkcyB0aGUgaW50ZWdlciBtdWx0aXBseSwgbXVsdGlwbHkvYWNjdW11bGF0 ZSwgaW50ZWdlciBkaXZpZGUgc3RlcCBhbmQgc2NhbgouVmEgKCBmZnMgKQppbnN0cnVjdGlv bnMgd2hpY2ggZXhpc3QgaW4gU1BBUkNsZXQgYnV0IG5vdCBpbiBTUEFSQy1WNy4KV2l0aAou RmwgbWNwdT10c2M3MDEgLAp0aGUgY29tcGlsZXIgYWRkaXRpb25hbGx5IG9wdGltaXplcyBp dCBmb3IgdGhlIFRFTUlDIFNQQVJDbGV0IGNoaXAuCi5QcApXaXRoCi5GbCBtY3B1PXY5ICwK R0NDIGdlbmVyYXRlcyBjb2RlIGZvciB0aGUgVjkgdmFyaWFudCBvZiB0aGUgU1BBUkMgYXJj aGl0ZWN0dXJlLgpUaGlzIGFkZHMgNjQtYml0IGludGVnZXIgYW5kIGZsb2F0aW5nLXBvaW50 IG1vdmUgaW5zdHJ1Y3Rpb25zLCAzIGFkZGl0aW9uYWwgZmxvYXRpbmctcG9pbnQgY29uZGl0 aW9uIGNvZGUgcmVnaXN0ZXJzIGFuZCBjb25kaXRpb25hbCBtb3ZlIGluc3RydWN0aW9ucy4K V2l0aAouRmwgbWNwdT11bHRyYXNwYXJjICwKdGhlIGNvbXBpbGVyIGFkZGl0aW9uYWxseSBv cHRpbWl6ZXMgaXQgZm9yIHRoZSBTdW4gVWx0cmFTUEFSQyBJL0lJIGNoaXBzLgpXaXRoCi5G bCBtY3B1PXVsdHJhc3BhcmMzICwKdGhlIGNvbXBpbGVyIGFkZGl0aW9uYWxseSBvcHRpbWl6 ZXMgaXQgZm9yIHRoZSBTdW4gVWx0cmFTUEFSQyBJSUkgY2hpcC4KLlBwCi5JdCBGbCBtdHVu ZT0gTnMgQXIgY3B1X3R5cGUKU2V0IHRoZSBpbnN0cnVjdGlvbiBzY2hlZHVsaW5nIHBhcmFt ZXRlcnMgZm9yIG1hY2hpbmUgdHlwZQouRW0gY3B1X3R5cGUgLApidXQgZG8gbm90IHNldCB0 aGUgaW5zdHJ1Y3Rpb24gc2V0IG9yIHJlZ2lzdGVyIHNldCB0aGF0IHRoZSBvcHRpb24KLkZs IG1jcHU9IE5zIEFyIGNwdV90eXBlCndvdWxkLgouUHAKVGhlIHNhbWUgdmFsdWVzIGZvcgou RmwgbWNwdT0gTnMgQXIgY3B1X3R5cGUKY2FuIGJlIHVzZWQgZm9yCi5GbCBtdHVuZT0gTnMg QXIgY3B1X3R5cGUgLApidXQgdGhlIG9ubHkgdXNlZnVsIHZhbHVlcyBhcmUgdGhvc2UgdGhh dCBzZWxlY3QgYSBwYXJ0aWN1bGFyIGNwdSBpbXBsZW1lbnRhdGlvbi4KVGhvc2UgYXJlCi5T eSBjeXByZXNzICwKLlN5IHN1cGVyc3BhcmMgLAouU3kgaHlwZXJzcGFyYyAsCi5TeSBmOTMw ICwKLlN5IGY5MzQgLAouU3kgc3BhcmNsaXRlODZ4ICwKLlN5IHRzYzcwMSAsCi5TeSB1bHRy YXNwYXJjICwKYW5kCi5TeSB1bHRyYXNwYXJjMyAuCi5QcAouSXQgRmwgbXY4cGx1cwouSXQg RmwgbW5vLXY4cGx1cwpXaXRoCi5GbCBtdjhwbHVzICwKR0NDIGdlbmVyYXRlcyBjb2RlIGZv ciB0aGUgU1BBUkMtVjgrIEFCSS4KVGhlIGRpZmZlcmVuY2UgZnJvbSB0aGUgVjggQUJJIGlz IHRoYXQgdGhlIGdsb2JhbCBhbmQgb3V0IHJlZ2lzdGVycyBhcmUgY29uc2lkZXJlZCA2NC1i aXQgd2lkZS4KVGhpcyBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgb24gU29sYXJpcyBpbiAzMi1i aXQgbW9kZSBmb3IgYWxsIFNQQVJDLVY5IHByb2Nlc3NvcnMuCi5QcAouSXQgRmwgbXZpcwou SXQgRmwgbW5vLXZpcwpXaXRoCi5GbCBtdmlzICwKR0NDIGdlbmVyYXRlcyBjb2RlIHRoYXQg dGFrZXMgYWR2YW50YWdlIG9mIHRoZSBVbHRyYVNQQVJDIFZpc3VhbCBJbnN0cnVjdGlvbiBT ZXQgZXh0ZW5zaW9ucy4KVGhlIGRlZmF1bHQgaXMKLkZsIG1uby12aXMgLgouUHAKLkVsClRo ZXNlCi5GbCBtCm9wdGlvbnMgYXJlIHN1cHBvcnRlZCBpbiBhZGRpdGlvbiB0byB0aGUgYWJv dmUgb24gU1BBUkMtVjkgcHJvY2Vzc29ycyBpbiA2NC1iaXQgZW52aXJvbm1lbnRzOgouUHAK LkJsIC10YWcgLXdpZHRoIHh4Ci5JdCBGbCBtbGl0dGxlLWVuZGlhbgpHZW5lcmF0ZSBjb2Rl IGZvciBhIHByb2Nlc3NvciBydW5uaW5nIGluIGxpdHRsZS1lbmRpYW4gbW9kZS4KSXQgaXMg b25seSBhdmFpbGFibGUgZm9yIGEgZmV3IGNvbmZpZ3VyYXRpb25zIGFuZCBtb3N0IG5vdGFi bHkgbm90IG9uIFNvbGFyaXMgYW5kIExpbnV4LgouUHAKLkl0IEZsIG0zMgouSXQgRmwgbTY0 CkdlbmVyYXRlIGNvZGUgZm9yIGEgMzItYml0IG9yIDY0LWJpdCBlbnZpcm9ubWVudC4KVGhl IDMyLWJpdCBlbnZpcm9ubWVudCBzZXRzIGludCwgbG9uZyBhbmQgcG9pbnRlciB0byAzMiBi aXRzLgpUaGUgNjQtYml0IGVudmlyb25tZW50IHNldHMgaW50IHRvIDMyIGJpdHMgYW5kIGxv bmcgYW5kIHBvaW50ZXIgdG8gNjQgYml0cy4KLlBwCi5JdCBGbCBtY21vZGVsPW1lZGxvdwpH ZW5lcmF0ZSBjb2RlIGZvciB0aGUgTWVkaXVtL0xvdyBjb2RlIG1vZGVsOiA2NC1iaXQgYWRk cmVzc2VzLCBwcm9ncmFtcyBtdXN0IGJlIGxpbmtlZCBpbiB0aGUgbG93IDMyIGJpdHMgb2Yg bWVtb3J5LgpQcm9ncmFtcyBjYW4gYmUgc3RhdGljYWxseSBvciBkeW5hbWljYWxseSBsaW5r ZWQuCi5QcAouSXQgRmwgbWNtb2RlbD1tZWRtaWQKR2VuZXJhdGUgY29kZSBmb3IgdGhlIE1l ZGl1bS9NaWRkbGUgY29kZSBtb2RlbDogNjQtYml0IGFkZHJlc3NlcywgcHJvZ3JhbXMgbXVz dCBiZSBsaW5rZWQgaW4gdGhlIGxvdyA0NCBiaXRzIG9mIG1lbW9yeSwgdGhlIHRleHQgYW5k IGRhdGEgc2VnbWVudHMgbXVzdCBiZSBsZXNzIHRoYW4gMkdCIGluIHNpemUgYW5kIHRoZSBk YXRhIHNlZ21lbnQgbXVzdCBiZSBsb2NhdGVkIHdpdGhpbiAyR0Igb2YgdGhlIHRleHQgc2Vn bWVudC4KLlBwCi5JdCBGbCBtY21vZGVsPW1lZGFueQpHZW5lcmF0ZSBjb2RlIGZvciB0aGUg TWVkaXVtL0FueXdoZXJlIGNvZGUgbW9kZWw6IDY0LWJpdCBhZGRyZXNzZXMsIHByb2dyYW1z IG1heSBiZSBsaW5rZWQgYW55d2hlcmUgaW4gbWVtb3J5LCB0aGUgdGV4dCBhbmQgZGF0YSBz ZWdtZW50cyBtdXN0IGJlIGxlc3MgdGhhbiAyR0IgaW4gc2l6ZSBhbmQgdGhlIGRhdGEgc2Vn bWVudCBtdXN0IGJlIGxvY2F0ZWQgd2l0aGluIDJHQiBvZiB0aGUgdGV4dCBzZWdtZW50Lgou UHAKLkl0IEZsIG1jbW9kZWw9ZW1ibWVkYW55CkdlbmVyYXRlIGNvZGUgZm9yIHRoZSBNZWRp dW0vQW55d2hlcmUgY29kZSBtb2RlbCBmb3IgZW1iZWRkZWQgc3lzdGVtczogNjQtYml0IGFk ZHJlc3NlcywgdGhlIHRleHQgYW5kIGRhdGEgc2VnbWVudHMgbXVzdCBiZSBsZXNzIHRoYW4g MkdCIGluIHNpemUsIGJvdGggc3RhcnRpbmcgYW55d2hlcmUgaW4gbWVtb3J5IChkZXRlcm1p bmVkIGF0IGxpbmsgdGltZSkuClRoZSBnbG9iYWwgcmVnaXN0ZXIgJWc0IHBvaW50cyB0byB0 aGUgYmFzZSBvZiB0aGUgZGF0YSBzZWdtZW50LgpQcm9ncmFtcyBhcmUgc3RhdGljYWxseSBs aW5rZWQgYW5kIFBJQyBpcyBub3Qgc3VwcG9ydGVkLgouUHAKLkl0IEZsIG1zdGFjay1iaWFz Ci5JdCBGbCBtbm8tc3RhY2stYmlhcwpXaXRoCi5GbCBtc3RhY2stYmlhcyAsCkdDQyBhc3N1 bWVzIHRoYXQgdGhlIHN0YWNrIHBvaW50ZXIsIGFuZCBmcmFtZSBwb2ludGVyIGlmIHByZXNl bnQsIGFyZSBvZmZzZXQgYnkgLTIwNDcgd2hpY2ggbXVzdCBiZSBhZGRlZCBiYWNrIHdoZW4g bWFraW5nIHN0YWNrIGZyYW1lIHJlZmVyZW5jZXMuClRoaXMgaXMgdGhlIGRlZmF1bHQgaW4g NjQtYml0IG1vZGUuCk90aGVyd2lzZSwgYXNzdW1lIG5vIHN1Y2ggb2Zmc2V0IGlzIHByZXNl bnQuCi5QcAouRWwKVGhlc2Ugc3dpdGNoZXMgYXJlIHN1cHBvcnRlZCBpbiBhZGRpdGlvbiB0 byB0aGUgYWJvdmUgb24gU29sYXJpczoKLlBwCi5CbCAtdGFnIC13aWR0aCB4eAouSXQgRmwg dGhyZWFkcwpBZGQgc3VwcG9ydCBmb3IgbXVsdGl0aHJlYWRpbmcgdXNpbmcgdGhlIFNvbGFy aXMgdGhyZWFkcyBsaWJyYXJ5LgpUaGlzIG9wdGlvbiBzZXRzIGZsYWdzIGZvciBib3RoIHRo ZSBwcmVwcm9jZXNzb3IgYW5kIGxpbmtlci4KVGhpcyBvcHRpb24gZG9lcyBub3QgYWZmZWN0 IHRoZSB0aHJlYWQgc2FmZXR5IG9mIG9iamVjdCBjb2RlIHByb2R1Y2VkIGJ5IHRoZSBjb21w aWxlciBvciB0aGF0IG9mIGxpYnJhcmllcyBzdXBwbGllZCB3aXRoIGl0LgouUHAKLkl0IEZs IHB0aHJlYWRzCkFkZCBzdXBwb3J0IGZvciBtdWx0aXRocmVhZGluZyB1c2luZyB0aGUgUE9T SVggdGhyZWFkcyBsaWJyYXJ5LgpUaGlzIG9wdGlvbiBzZXRzIGZsYWdzIGZvciBib3RoIHRo ZSBwcmVwcm9jZXNzb3IgYW5kIGxpbmtlci4KVGhpcyBvcHRpb24gZG9lcyBub3QgYWZmZWN0 IHRoZSB0aHJlYWQgc2FmZXR5IG9mIG9iamVjdCBjb2RlIHByb2R1Y2VkIGJ5IHRoZSBjb21w aWxlciBvciB0aGF0IG9mIGxpYnJhcmllcyBzdXBwbGllZCB3aXRoIGl0LgouUHAKLkl0IEZs IHB0aHJlYWQKVGhpcyBpcyBhIHN5bm9ueW0gZm9yCi5GbCBwdGhyZWFkcyAuCi5QcAouRWwK Lkl0IFN5IE9wdGlvbnMgZm9yIFN5c3RlbSBWClRoZXNlIGFkZGl0aW9uYWwgb3B0aW9ucyBh cmUgYXZhaWxhYmxlIG9uIFN5c3RlbSBWIFJlbGVhc2UgNCBmb3IgY29tcGF0aWJpbGl0eSB3 aXRoIG90aGVyIGNvbXBpbGVycyBvbiB0aG9zZSBzeXN0ZW1zOgouUHAKLkJsIC10YWcgLXdp ZHRoIHh4Ci5JdCBGbCBHCkNyZWF0ZSBhIHNoYXJlZCBvYmplY3QuCkl0IGlzIHJlY29tbWVu ZGVkIHRoYXQKLkZsIHN5bWJvbGljCm9yCi5GbCBzaGFyZWQKYmUgdXNlZCBpbnN0ZWFkLgou UHAKLkl0IEZsIFF5CklkZW50aWZ5IHRoZSB2ZXJzaW9ucyBvZiBlYWNoIHRvb2wgdXNlZCBi eSB0aGUgY29tcGlsZXIsIGluIGEKLlZhIC5pZGVudAphc3NlbWJsZXIgZGlyZWN0aXZlIGlu IHRoZSBvdXRwdXQuCi5QcAouSXQgRmwgUW4KUmVmcmFpbiBmcm9tIGFkZGluZwouVmEgLmlk ZW50CmRpcmVjdGl2ZXMgdG8gdGhlIG91dHB1dCBmaWxlICh0aGlzIGlzIHRoZSBkZWZhdWx0 KS4KLlBwCi5JdCBGbCBZUCwgTnMgQXIgZGlycwpTZWFyY2ggdGhlIGRpcmVjdG9yaWVzCi5F bSBkaXJzICwKYW5kIG5vIG90aGVycywgZm9yIGxpYnJhcmllcyBzcGVjaWZpZWQgd2l0aAou RmwgbCAuCi5QcAouSXQgRmwgWW0sIE5zIEFyIGRpcgpMb29rIGluIHRoZSBkaXJlY3RvcnkK LkVtIGRpcgp0byBmaW5kIHRoZSBNNCBwcmVwcm9jZXNzb3IuClRoZSBhc3NlbWJsZXIgdXNl cyB0aGlzIG9wdGlvbi4KLlBwCi5FbAouSXQgU3kgVE1TMzIwQzN4L0M0eCBPcHRpb25zClRo ZXNlCi5GbCBtCm9wdGlvbnMgYXJlIGRlZmluZWQgZm9yIFRNUzMyMEMzeC9DNHggaW1wbGVt ZW50YXRpb25zOgouUHAKLkJsIC10YWcgLXdpZHRoIHh4Ci5JdCBGbCBtY3B1PSBOcyBBciBj cHVfdHlwZQpTZXQgdGhlIGluc3RydWN0aW9uIHNldCwgcmVnaXN0ZXIgc2V0LCBhbmQgaW5z dHJ1Y3Rpb24gc2NoZWR1bGluZyBwYXJhbWV0ZXJzIGZvciBtYWNoaW5lIHR5cGUKLkVtIGNw dV90eXBlIC4KU3VwcG9ydGVkIHZhbHVlcyBmb3IKLkVtIGNwdV90eXBlCmFyZQouU3kgYzMw ICwKLlN5IGMzMSAsCi5TeSBjMzIgLAouU3kgYzQwICwKYW5kCi5TeSBjNDQgLgpUaGUgZGVm YXVsdCBpcwouU3kgYzQwCnRvIGdlbmVyYXRlIGNvZGUgZm9yIHRoZSBUTVMzMjBDNDAuCi5Q cAouSXQgRmwgbWJpZy1tZW1vcnkKLkl0IEZsIG1iaWcKLkl0IEZsIG1zbWFsbC1tZW1vcnkK Lkl0IEZsIG1zbWFsbApHZW5lcmF0ZXMgY29kZSBmb3IgdGhlIGJpZyBvciBzbWFsbCBtZW1v cnkgbW9kZWwuClRoZSBzbWFsbCBtZW1vcnkgbW9kZWwgYXNzdW1lZCB0aGF0IGFsbCBkYXRh IGZpdHMgaW50byBvbmUgNjRLIHdvcmQgcGFnZS4KQXQgcnVuLXRpbWUgdGhlIGRhdGEgcGFn ZSAoRFApIHJlZ2lzdGVyIG11c3QgYmUgc2V0IHRvIHBvaW50IHRvIHRoZSA2NEsgcGFnZSBj b250YWluaW5nIHRoZSAuYnNzIGFuZCAuZGF0YSBwcm9ncmFtIHNlY3Rpb25zLgpUaGUgYmln IG1lbW9yeSBtb2RlbCBpcyB0aGUgZGVmYXVsdCBhbmQgcmVxdWlyZXMgcmVsb2FkaW5nIG9m IHRoZSBEUCByZWdpc3RlciBmb3IgZXZlcnkgZGlyZWN0IG1lbW9yeSBhY2Nlc3MuCi5QcAou SXQgRmwgbWJrCi5JdCBGbCBtbm8tYmsKQWxsb3cgKGRpc2FsbG93KSBhbGxvY2F0aW9uIG9m IGdlbmVyYWwgaW50ZWdlciBvcGVyYW5kcyBpbnRvIHRoZSBibG9jayBjb3VudCByZWdpc3Rl ciBCSy4KLlBwCi5JdCBGbCBtZGIKLkl0IEZsIG1uby1kYgpFbmFibGUgKGRpc2FibGUpIGdl bmVyYXRpb24gb2YgY29kZSB1c2luZyBkZWNyZW1lbnQgYW5kIGJyYW5jaCwgREJjb25kKEQp LCBpbnN0cnVjdGlvbnMuClRoaXMgaXMgZW5hYmxlZCBieSBkZWZhdWx0IGZvciB0aGUgQzR4 LgpUbyBiZSBvbiB0aGUgc2FmZSBzaWRlLCB0aGlzIGlzIGRpc2FibGVkIGZvciB0aGUgQzN4 LCBzaW5jZSB0aGUgbWF4aW11bSBpdGVyYXRpb24gY291bnQgb24gdGhlIEMzeCBpcyAyXnsy MyArIDF9IChidXQgd2hvIGl0ZXJhdGVzIGxvb3BzIG1vcmUgdGhhbiAyXnsyM30gdGltZXMg b24gdGhlIEMzeD8pLgpOb3RlIHRoYXQgR0NDIHdpbGwgdHJ5IHRvIHJldmVyc2UgYSBsb29w IHNvIHRoYXQgaXQgY2FuIHV0aWxpemUgdGhlIGRlY3JlbWVudCBhbmQgYnJhbmNoIGluc3Ry dWN0aW9uLCBidXQgd2lsbCBnaXZlIHVwIGlmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgbWVt b3J5IHJlZmVyZW5jZSBpbiB0aGUgbG9vcC4KVGh1cyBhIGxvb3Agd2hlcmUgdGhlIGxvb3Ag Y291bnRlciBpcyBkZWNyZW1lbnRlZCBjYW4gZ2VuZXJhdGUgc2xpZ2h0bHkgbW9yZSBlZmZp Y2llbnQgY29kZSwgaW4gY2FzZXMgd2hlcmUgdGhlIFJQVEIgaW5zdHJ1Y3Rpb24gY2Fubm90 IGJlIHV0aWxpemVkLgouUHAKLkl0IEZsIG1kcC1pc3ItcmVsb2FkCi5JdCBGbCBtcGFyYW5v aWQKRm9yY2UgdGhlIERQIHJlZ2lzdGVyIHRvIGJlIHNhdmVkIG9uIGVudHJ5IHRvIGFuIGlu dGVycnVwdCBzZXJ2aWNlIHJvdXRpbmUgKElTUiksIHJlbG9hZGVkIHRvIHBvaW50IHRvIHRo ZSBkYXRhIHNlY3Rpb24sIGFuZCByZXN0b3JlZCBvbiBleGl0IGZyb20gdGhlIElTUi4KVGhp cyBzaG91bGQgbm90IGJlIHJlcXVpcmVkIHVubGVzcyBzb21lb25lIGhhcyB2aW9sYXRlZCB0 aGUgc21hbGwgbWVtb3J5IG1vZGVsIGJ5IG1vZGlmeWluZyB0aGUgRFAgcmVnaXN0ZXIsIHNh eSB3aXRoaW4gYW4gb2JqZWN0IGxpYnJhcnkuCi5QcAouSXQgRmwgbW1weWkKLkl0IEZsIG1u by1tcHlpCkZvciB0aGUgQzN4IHVzZSB0aGUgMjQtYml0IE1QWUkgaW5zdHJ1Y3Rpb24gZm9y IGludGVnZXIgbXVsdGlwbGllcyBpbnN0ZWFkIG9mIGEgbGlicmFyeSBjYWxsIHRvIGd1YXJh bnRlZSAzMi1iaXQgcmVzdWx0cy4KTm90ZSB0aGF0IGlmIG9uZSBvZiB0aGUgb3BlcmFuZHMg aXMgYSBjb25zdGFudCwgdGhlbiB0aGUgbXVsdGlwbGljYXRpb24gd2lsbCBiZSBwZXJmb3Jt ZWQgdXNpbmcgc2hpZnRzIGFuZCBhZGRzLgpJZiB0aGUKLkZsIG1tcHlpCm9wdGlvbiBpcyBu b3Qgc3BlY2lmaWVkIGZvciB0aGUgQzN4LCB0aGVuIHNxdWFyaW5nIG9wZXJhdGlvbnMgYXJl IHBlcmZvcm1lZCBpbmxpbmUgaW5zdGVhZCBvZiBhIGxpYnJhcnkgY2FsbC4KLlBwCi5JdCBG bCBtZmFzdC1maXgKLkl0IEZsIG1uby1mYXN0LWZpeApUaGUgQzN4L0M0eCBGSVggaW5zdHJ1 Y3Rpb24gdG8gY29udmVydCBhIGZsb2F0aW5nIHBvaW50IHZhbHVlIHRvIGFuIGludGVnZXIg dmFsdWUgY2hvb3NlcyB0aGUgbmVhcmVzdCBpbnRlZ2VyIGxlc3MgdGhhbiBvciBlcXVhbCB0 byB0aGUgZmxvYXRpbmcgcG9pbnQgdmFsdWUgcmF0aGVyIHRoYW4gdG8gdGhlIG5lYXJlc3Qg aW50ZWdlci4KVGh1cyBpZiB0aGUgZmxvYXRpbmcgcG9pbnQgbnVtYmVyIGlzIG5lZ2F0aXZl LCB0aGUgcmVzdWx0IHdpbGwgYmUgaW5jb3JyZWN0bHkgdHJ1bmNhdGVkIGFuIGFkZGl0aW9u YWwgY29kZSBpcyBuZWNlc3NhcnkgdG8gZGV0ZWN0IGFuZCBjb3JyZWN0IHRoaXMgY2FzZS4K VGhpcyBvcHRpb24gY2FuIGJlIHVzZWQgdG8gZGlzYWJsZSBnZW5lcmF0aW9uIG9mIHRoZSBh ZGRpdGlvbmFsIGNvZGUgcmVxdWlyZWQgdG8gY29ycmVjdCB0aGUgcmVzdWx0LgouUHAKLkl0 IEZsIG1ycHRiCi5JdCBGbCBtbm8tcnB0YgpFbmFibGUgKGRpc2FibGUpIGdlbmVyYXRpb24g b2YgcmVwZWF0IGJsb2NrIHNlcXVlbmNlcyB1c2luZyB0aGUgUlBUQiBpbnN0cnVjdGlvbiBm b3IgemVybyBvdmVyaGVhZCBsb29waW5nLgpUaGUgUlBUQiBjb25zdHJ1Y3QgaXMgb25seSB1 c2VkIGZvciBpbm5lcm1vc3QgbG9vcHMgdGhhdCBkbyBub3QgY2FsbCBmdW5jdGlvbnMgb3Ig anVtcCBhY3Jvc3MgdGhlIGxvb3AgYm91bmRhcmllcy4KVGhlcmUgaXMgbm8gYWR2YW50YWdl IGhhdmluZyBuZXN0ZWQgUlBUQiBsb29wcyBkdWUgdG8gdGhlIG92ZXJoZWFkIHJlcXVpcmVk IHRvIHNhdmUgYW5kIHJlc3RvcmUgdGhlIFJDLCBSUywgYW5kIFJFIHJlZ2lzdGVycy4KVGhp cyBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgd2l0aAouRmwgTzIgLgouUHAKLkl0IEZsIG1ycHRz PSBOcyBBciBjb3VudAouSXQgRmwgbW5vLXJwdHMKRW5hYmxlIChkaXNhYmxlKSB0aGUgdXNl IG9mIHRoZSBzaW5nbGUgaW5zdHJ1Y3Rpb24gcmVwZWF0IGluc3RydWN0aW9uIFJQVFMuCklm IGEgcmVwZWF0IGJsb2NrIGNvbnRhaW5zIGEgc2luZ2xlIGluc3RydWN0aW9uLCBhbmQgdGhl IGxvb3AgY291bnQgY2FuIGJlIGd1YXJhbnRlZWQgdG8gYmUgbGVzcyB0aGFuIHRoZSB2YWx1 ZQouRW0gY291bnQgLApHQ0Mgd2lsbCBlbWl0IGEgUlBUUyBpbnN0cnVjdGlvbiBpbnN0ZWFk IG9mIGEgUlBUQi4KSWYgbm8gdmFsdWUgaXMgc3BlY2lmaWVkLCB0aGVuIGEgUlBUUyB3aWxs IGJlIGVtaXR0ZWQgZXZlbiBpZiB0aGUgbG9vcCBjb3VudCBjYW5ub3QgYmUgZGV0ZXJtaW5l ZCBhdCBjb21waWxlIHRpbWUuCk5vdGUgdGhhdCB0aGUgcmVwZWF0ZWQgaW5zdHJ1Y3Rpb24g Zm9sbG93aW5nIFJQVFMgZG9lcyBub3QgaGF2ZSB0byBiZSByZWxvYWRlZCBmcm9tIG1lbW9y eSBlYWNoIGl0ZXJhdGlvbiwgdGh1cyBmcmVlaW5nIHVwIHRoZSBDUFUgYnVzZXMgZm9yIG9w ZXJhbmRzLgpIb3dldmVyLCBzaW5jZSBpbnRlcnJ1cHRzIGFyZSBibG9ja2VkIGJ5IHRoaXMg aW5zdHJ1Y3Rpb24sIGl0IGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQuCi5QcAouSXQgRmwgbWxv b3AtdW5zaWduZWQKLkl0IEZsIG1uby1sb29wLXVuc2lnbmVkClRoZSBtYXhpbXVtIGl0ZXJh dGlvbiBjb3VudCB3aGVuIHVzaW5nIFJQVFMgYW5kIFJQVEIgKGFuZCBEQiBvbiB0aGUgQzQw KSBpcyAyXnszMSArIDF9IHNpbmNlIHRoZXNlIGluc3RydWN0aW9ucyB0ZXN0IGlmIHRoZSBp dGVyYXRpb24gY291bnQgaXMgbmVnYXRpdmUgdG8gdGVybWluYXRlIHRoZSBsb29wLgpJZiB0 aGUgaXRlcmF0aW9uIGNvdW50IGlzIHVuc2lnbmVkIHRoZXJlIGlzIGEgcG9zc2liaWxpdHkg dGhhbiB0aGUgMl57MzEgKyAxfSBtYXhpbXVtIGl0ZXJhdGlvbiBjb3VudCBtYXkgYmUgZXhj ZWVkZWQuClRoaXMgc3dpdGNoIGFsbG93cyBhbiB1bnNpZ25lZCBpdGVyYXRpb24gY291bnQu Ci5QcAouSXQgRmwgbXRpClRyeSB0byBlbWl0IGFuIGFzc2VtYmxlciBzeW50YXggdGhhdCB0 aGUgVEkgYXNzZW1ibGVyIChhc20zMCkgaXMgaGFwcHkgd2l0aC4KVGhpcyBhbHNvIGVuZm9y Y2VzIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgQVBJIGVtcGxveWVkIGJ5IHRoZSBUSSBDM3gg QyBjb21waWxlci4KRm9yIGV4YW1wbGUsIGxvbmcgZG91YmxlcyBhcmUgcGFzc2VkIGFzIHN0 cnVjdHVyZXMgcmF0aGVyIHRoYW4gaW4gZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzLgouUHAK Lkl0IEZsIG1yZWdwYXJtCi5JdCBGbCBtbWVtcGFybQpHZW5lcmF0ZSBjb2RlIHRoYXQgdXNl cyByZWdpc3RlcnMgKHN0YWNrKSBmb3IgcGFzc2luZyBhcmd1bWVudHMgdG8gZnVuY3Rpb25z LgpCeSBkZWZhdWx0LCBhcmd1bWVudHMgYXJlIHBhc3NlZCBpbiByZWdpc3RlcnMgd2hlcmUg cG9zc2libGUgcmF0aGVyIHRoYW4gYnkgcHVzaGluZyBhcmd1bWVudHMgb24gdG8gdGhlIHN0 YWNrLgouUHAKLkl0IEZsIG1wYXJhbGxlbC1pbnNucwouSXQgRmwgbW5vLXBhcmFsbGVsLWlu c25zCkFsbG93IHRoZSBnZW5lcmF0aW9uIG9mIHBhcmFsbGVsIGluc3RydWN0aW9ucy4KVGhp cyBpcyBlbmFibGVkIGJ5IGRlZmF1bHQgd2l0aAouRmwgTzIgLgouUHAKLkl0IEZsIG1wYXJh bGxlbC1tcHkKLkl0IEZsIG1uby1wYXJhbGxlbC1tcHkKQWxsb3cgdGhlIGdlbmVyYXRpb24g b2YgTVBZfHxBREQgYW5kIE1QWXx8U1VCIHBhcmFsbGVsIGluc3RydWN0aW9ucywgcHJvdmlk ZWQKLkZsIG1wYXJhbGxlbC1pbnNucwppcyBhbHNvIHNwZWNpZmllZC4KVGhlc2UgaW5zdHJ1 Y3Rpb25zIGhhdmUgdGlnaHQgcmVnaXN0ZXIgY29uc3RyYWludHMgd2hpY2ggY2FuIHBlc3Np bWl6ZSB0aGUgY29kZSBnZW5lcmF0aW9uIG9mIGxhcmdlIGZ1bmN0aW9ucy4KLlBwCi5FbAou SXQgU3kgVjg1MCBPcHRpb25zClRoZXNlCi5GbCBtCm9wdGlvbnMgYXJlIGRlZmluZWQgZm9y IFY4NTAgaW1wbGVtZW50YXRpb25zOgouUHAKLkJsIC10YWcgLXdpZHRoIHh4Ci5JdCBGbCBt bG9uZy1jYWxscwouSXQgRmwgbW5vLWxvbmctY2FsbHMKVHJlYXQgYWxsIGNhbGxzIGFzIGJl aW5nIGZhciBhd2F5IChuZWFyKS4KSWYgY2FsbHMgYXJlIGFzc3VtZWQgdG8gYmUgZmFyIGF3 YXksIHRoZSBjb21waWxlciB3aWxsIGFsd2F5cyBsb2FkIHRoZSBmdW5jdGlvbnMgYWRkcmVz cyB1cCBpbnRvIGEgcmVnaXN0ZXIsIGFuZCBjYWxsIGluZGlyZWN0IHRocm91Z2ggdGhlIHBv aW50ZXIuCi5QcAouSXQgRmwgbW5vLWVwCi5JdCBGbCBtZXAKRG8gbm90IG9wdGltaXplIChk byBvcHRpbWl6ZSkgYmFzaWMgYmxvY2tzIHRoYXQgdXNlIHRoZSBzYW1lIGluZGV4IHBvaW50 ZXIgNCBvciBtb3JlIHRpbWVzIHRvIGNvcHkgcG9pbnRlciBpbnRvIHRoZQouVmEgZXAKcmVn aXN0ZXIsIGFuZCB1c2UgdGhlIHNob3J0ZXIKLlZhIHNsZAphbmQKLlZhIHNzdAppbnN0cnVj dGlvbnMuClRoZQouRmwgbWVwCm9wdGlvbiBpcyBvbiBieSBkZWZhdWx0IGlmIHlvdSBvcHRp bWl6ZS4KLlBwCi5JdCBGbCBtbm8tcHJvbG9nLWZ1bmN0aW9uCi5JdCBGbCBtcHJvbG9nLWZ1 bmN0aW9uCkRvIG5vdCB1c2UgKGRvIHVzZSkgZXh0ZXJuYWwgZnVuY3Rpb25zIHRvIHNhdmUg YW5kIHJlc3RvcmUgcmVnaXN0ZXJzIGF0IHRoZSBwcm9sb2d1ZSBhbmQgZXBpbG9ndWUgb2Yg YSBmdW5jdGlvbi4KVGhlIGV4dGVybmFsIGZ1bmN0aW9ucyBhcmUgc2xvd2VyLCBidXQgdXNl IGxlc3MgY29kZSBzcGFjZSBpZiBtb3JlIHRoYW4gb25lIGZ1bmN0aW9uIHNhdmVzIHRoZSBz YW1lIG51bWJlciBvZiByZWdpc3RlcnMuClRoZQouRmwgbXByb2xvZy1mdW5jdGlvbgpvcHRp b24gaXMgb24gYnkgZGVmYXVsdCBpZiB5b3Ugb3B0aW1pemUuCi5QcAouSXQgRmwgbXNwYWNl ClRyeSB0byBtYWtlIHRoZSBjb2RlIGFzIHNtYWxsIGFzIHBvc3NpYmxlLgpBdCBwcmVzZW50 LCB0aGlzIGp1c3QgdHVybnMgb24gdGhlCi5GbCBtZXAKYW5kCi5GbCBtcHJvbG9nLWZ1bmN0 aW9uCm9wdGlvbnMuCi5QcAouSXQgRmwgbXRkYT0gTnMgQXIgbgpQdXQgc3RhdGljIG9yIGds b2JhbCB2YXJpYWJsZXMgd2hvc2Ugc2l6ZSBpcwouRW0gbgpieXRlcyBvciBsZXNzIGludG8g dGhlIHRpbnkgZGF0YSBhcmVhIHRoYXQgcmVnaXN0ZXIKLlZhIGVwCnBvaW50cyB0by4KVGhl IHRpbnkgZGF0YSBhcmVhIGNhbiBob2xkIHVwIHRvIDI1NiBieXRlcyBpbiB0b3RhbCAoMTI4 IGJ5dGVzIGZvciBieXRlIHJlZmVyZW5jZXMpLgouUHAKLkl0IEZsIG1zZGE9IE5zIEFyIG4K UHV0IHN0YXRpYyBvciBnbG9iYWwgdmFyaWFibGVzIHdob3NlIHNpemUgaXMKLkVtIG4KYnl0 ZXMgb3IgbGVzcyBpbnRvIHRoZSBzbWFsbCBkYXRhIGFyZWEgdGhhdCByZWdpc3RlcgouVmEg Z3AKcG9pbnRzIHRvLgpUaGUgc21hbGwgZGF0YSBhcmVhIGNhbiBob2xkIHVwIHRvIDY0IGtp bG9ieXRlcy4KLlBwCi5JdCBGbCBtemRhPSBOcyBBciBuClB1dCBzdGF0aWMgb3IgZ2xvYmFs IHZhcmlhYmxlcyB3aG9zZSBzaXplIGlzCi5FbSBuCmJ5dGVzIG9yIGxlc3MgaW50byB0aGUg Zmlyc3QgMzIga2lsb2J5dGVzIG9mIG1lbW9yeS4KLlBwCi5JdCBGbCBtdjg1MApTcGVjaWZ5 IHRoYXQgdGhlIHRhcmdldCBwcm9jZXNzb3IgaXMgdGhlIFY4NTAuCi5QcAouSXQgRmwgbWJp Zy1zd2l0Y2gKR2VuZXJhdGUgY29kZSBzdWl0YWJsZSBmb3IgYmlnIHN3aXRjaCB0YWJsZXMu ClVzZSB0aGlzIG9wdGlvbiBvbmx5IGlmIHRoZSBhc3NlbWJsZXIvbGlua2VyIGNvbXBsYWlu IGFib3V0IG91dCBvZiByYW5nZSBicmFuY2hlcyB3aXRoaW4gYSBzd2l0Y2ggdGFibGUuCi5Q cAouSXQgRmwgbWFwcC1yZWdzClRoaXMgb3B0aW9uIHdpbGwgY2F1c2UgcjIgYW5kIHI1IHRv IGJlIHVzZWQgaW4gdGhlIGNvZGUgZ2VuZXJhdGVkIGJ5IHRoZSBjb21waWxlci4KVGhpcyBz ZXR0aW5nIGlzIHRoZSBkZWZhdWx0LgouUHAKLkl0IEZsIG1uby1hcHAtcmVncwpUaGlzIG9w dGlvbiB3aWxsIGNhdXNlIHIyIGFuZCByNSB0byBiZSB0cmVhdGVkIGFzIGZpeGVkIHJlZ2lz dGVycy4KLlBwCi5JdCBGbCBtdjg1MGUxClNwZWNpZnkgdGhhdCB0aGUgdGFyZ2V0IHByb2Nl c3NvciBpcyB0aGUgVjg1MEUxLgpUaGUgcHJlcHJvY2Vzc29yIGNvbnN0YW50cwouU3kgX192 ODUwZTFfXwphbmQKLlN5IF9fdjg1MGVfXwp3aWxsIGJlIGRlZmluZWQgaWYgdGhpcyBvcHRp b24gaXMgdXNlZC4KLlBwCi5JdCBGbCBtdjg1MGUKU3BlY2lmeSB0aGF0IHRoZSB0YXJnZXQg cHJvY2Vzc29yIGlzIHRoZSBWODUwRS4KVGhlIHByZXByb2Nlc3NvciBjb25zdGFudAouU3kg X192ODUwZV9fCndpbGwgYmUgZGVmaW5lZCBpZiB0aGlzIG9wdGlvbiBpcyB1c2VkLgouUHAK SWYgbmVpdGhlcgouRmwgbXY4NTAKbm9yCi5GbCBtdjg1MGUKbm9yCi5GbCBtdjg1MGUxCmFy ZSBkZWZpbmVkIHRoZW4gYSBkZWZhdWx0IHRhcmdldCBwcm9jZXNzb3Igd2lsbCBiZSBjaG9z ZW4gYW5kIHRoZSByZWxldmFudAouU3kgX192ODUwKl9fCnByZXByb2Nlc3NvciBjb25zdGFu dCB3aWxsIGJlIGRlZmluZWQuCi5QcApUaGUgcHJlcHJvY2Vzc29yIGNvbnN0YW50cwouU3kg X192ODUwCmFuZAouU3kgX192ODUxX18KYXJlIGFsd2F5cyBkZWZpbmVkLCByZWdhcmRsZXNz IG9mIHdoaWNoIHByb2Nlc3NvciB2YXJpYW50IGlzIHRoZSB0YXJnZXQuCi5QcAouSXQgRmwg bWRpc2FibGUtY2FsbHQKVGhpcyBvcHRpb24gd2lsbCBzdXBwcmVzcyBnZW5lcmF0aW9uIG9m IHRoZSBDQUxMVCBpbnN0cnVjdGlvbiBmb3IgdGhlIHY4NTBlIGFuZCB2ODUwZTEgZmxhdm9y cyBvZiB0aGUgdjg1MCBhcmNoaXRlY3R1cmUuClRoZSBkZWZhdWx0IGlzCi5GbCBtbm8tZGlz YWJsZS1jYWxsdAp3aGljaCBhbGxvd3MgdGhlIENBTExUIGluc3RydWN0aW9uIHRvIGJlIHVz ZWQuCi5QcAouRWwKLkl0IFN5IFZBWCBPcHRpb25zClRoZXNlCi5GbCBtCm9wdGlvbnMgYXJl IGRlZmluZWQgZm9yIHRoZSBWQVg6Ci5QcAouQmwgLXRhZyAtd2lkdGggeHgKLkl0IEZsIG11 bml4CkRvIG5vdCBvdXRwdXQgY2VydGFpbiBqdW1wIGluc3RydWN0aW9ucwouVmEgKCBhb2Js ZXEKYW5kIHNvIG9uKSB0aGF0IHRoZSBVbml4IGFzc2VtYmxlciBmb3IgdGhlIFZBWCBjYW5u b3QgaGFuZGxlIGFjcm9zcyBsb25nIHJhbmdlcy4KLlBwCi5JdCBGbCBtZ251CkRvIG91dHB1 dCB0aG9zZSBqdW1wIGluc3RydWN0aW9ucywgb24gdGhlIGFzc3VtcHRpb24gdGhhdCB5b3Ug d2lsbCBhc3NlbWJsZSB3aXRoIHRoZSBHTlUgYXNzZW1ibGVyLgouUHAKLkl0IEZsIG1nCk91 dHB1dCBjb2RlIGZvciBnLWZvcm1hdCBmbG9hdGluZyBwb2ludCBudW1iZXJzIGluc3RlYWQg b2YgZC1mb3JtYXQuCi5QcAouRWwKLkl0IFN5IHg4Ni02NCBPcHRpb25zClRoZXNlIGFyZSBs aXN0ZWQgdW5kZXIKLkl0IFN5IFhzdG9ybXkxNiBPcHRpb25zClRoZXNlIG9wdGlvbnMgYXJl IGRlZmluZWQgZm9yIFhzdG9ybXkxNjoKLlBwCi5CbCAtdGFnIC13aWR0aCB4eAouSXQgRmwg bXNpbQpDaG9vc2Ugc3RhcnR1cCBmaWxlcyBhbmQgbGlua2VyIHNjcmlwdCBzdWl0YWJsZSBm b3IgdGhlIHNpbXVsYXRvci4KLlBwCi5FbAouSXQgU3kgWHRlbnNhIE9wdGlvbnMKVGhlc2Ug b3B0aW9ucyBhcmUgc3VwcG9ydGVkIGZvciBYdGVuc2EgdGFyZ2V0czoKLlBwCi5CbCAtdGFn IC13aWR0aCB4eAouSXQgRmwgbWNvbnN0MTYKLkl0IEZsIG1uby1jb25zdDE2CkVuYWJsZSBv ciBkaXNhYmxlIHVzZSBvZgouVmEgQ09OU1QxNgppbnN0cnVjdGlvbnMgZm9yIGxvYWRpbmcg Y29uc3RhbnQgdmFsdWVzLgpUaGUKLlZhIENPTlNUMTYKaW5zdHJ1Y3Rpb24gaXMgY3VycmVu dGx5IG5vdCBhIHN0YW5kYXJkIG9wdGlvbiBmcm9tIFRlbnNpbGljYS4KV2hlbiBlbmFibGVk LAouVmEgQ09OU1QxNgppbnN0cnVjdGlvbnMgYXJlIGFsd2F5cyB1c2VkIGluIHBsYWNlIG9m IHRoZSBzdGFuZGFyZAouVmEgTDMyUgppbnN0cnVjdGlvbnMuClRoZSB1c2Ugb2YKLlZhIENP TlNUMTYKaXMgZW5hYmxlZCBieSBkZWZhdWx0IG9ubHkgaWYgdGhlCi5WYSBMMzJSCmluc3Ry dWN0aW9uIGlzIG5vdCBhdmFpbGFibGUuCi5QcAouSXQgRmwgbWZ1c2VkLW1hZGQKLkl0IEZs IG1uby1mdXNlZC1tYWRkCkVuYWJsZSBvciBkaXNhYmxlIHVzZSBvZiBmdXNlZCBtdWx0aXBs eS9hZGQgYW5kIG11bHRpcGx5L3N1YnRyYWN0IGluc3RydWN0aW9ucyBpbiB0aGUgZmxvYXRp bmctcG9pbnQgb3B0aW9uLgpUaGlzIGhhcyBubyBlZmZlY3QgaWYgdGhlIGZsb2F0aW5nLXBv aW50IG9wdGlvbiBpcyBub3QgYWxzbyBlbmFibGVkLgpEaXNhYmxpbmcgZnVzZWQgbXVsdGlw bHkvYWRkIGFuZCBtdWx0aXBseS9zdWJ0cmFjdCBpbnN0cnVjdGlvbnMgZm9yY2VzIHRoZSBj b21waWxlciB0byB1c2Ugc2VwYXJhdGUgaW5zdHJ1Y3Rpb25zIGZvciB0aGUgbXVsdGlwbHkg YW5kIGFkZC9zdWJ0cmFjdCBvcGVyYXRpb25zLgpUaGlzIG1heSBiZSBkZXNpcmFibGUgaW4g c29tZSBjYXNlcyB3aGVyZSBzdHJpY3QgSUVFRSA3NTQtY29tcGxpYW50IHJlc3VsdHMgYXJl IHJlcXVpcmVkOiB0aGUgZnVzZWQgbXVsdGlwbHkgYWRkL3N1YnRyYWN0IGluc3RydWN0aW9u cyBkbyBub3Qgcm91bmQgdGhlIGludGVybWVkaWF0ZSByZXN1bHQsIHRoZXJlYnkgcHJvZHVj aW5nIHJlc3VsdHMgd2l0aAouRW0gbW9yZQpiaXRzIG9mIHByZWNpc2lvbiB0aGFuIHNwZWNp ZmllZCBieSB0aGUgSUVFRSBzdGFuZGFyZC4KRGlzYWJsaW5nIGZ1c2VkIG11bHRpcGx5IGFk ZC9zdWJ0cmFjdCBpbnN0cnVjdGlvbnMgYWxzbyBlbnN1cmVzIHRoYXQgdGhlIHByb2dyYW0g b3V0cHV0IGlzIG5vdCBzZW5zaXRpdmUgdG8gdGhlIGNvbXBpbGVyJ3MgYWJpbGl0eSB0byBj b21iaW5lIG11bHRpcGx5IGFuZCBhZGQvc3VidHJhY3Qgb3BlcmF0aW9ucy4KLlBwCi5JdCBG bCBtdGV4dC1zZWN0aW9uLWxpdGVyYWxzCi5JdCBGbCBtbm8tdGV4dC1zZWN0aW9uLWxpdGVy YWxzCkNvbnRyb2wgdGhlIHRyZWF0bWVudCBvZiBsaXRlcmFsIHBvb2xzLgpUaGUgZGVmYXVs dCBpcwouRmwgbW5vLXRleHQtc2VjdGlvbi1saXRlcmFscyAsCndoaWNoIHBsYWNlcyBsaXRl cmFscyBpbiBhIHNlcGFyYXRlIHNlY3Rpb24gaW4gdGhlIG91dHB1dCBmaWxlLgpUaGlzIGFs bG93cyB0aGUgbGl0ZXJhbCBwb29sIHRvIGJlIHBsYWNlZCBpbiBhIGRhdGEgUkFNL1JPTSwg YW5kIGl0IGFsc28gYWxsb3dzIHRoZSBsaW5rZXIgdG8gY29tYmluZSBsaXRlcmFsIHBvb2xz IGZyb20gc2VwYXJhdGUgb2JqZWN0IGZpbGVzIHRvIHJlbW92ZSByZWR1bmRhbnQgbGl0ZXJh bHMgYW5kIGltcHJvdmUgY29kZSBzaXplLgpXaXRoCi5GbCBtdGV4dC1zZWN0aW9uLWxpdGVy YWxzICwKdGhlIGxpdGVyYWxzIGFyZSBpbnRlcnNwZXJzZWQgaW4gdGhlIHRleHQgc2VjdGlv biBpbiBvcmRlciB0byBrZWVwIHRoZW0gYXMgY2xvc2UgYXMgcG9zc2libGUgdG8gdGhlaXIg cmVmZXJlbmNlcy4KVGhpcyBtYXkgYmUgbmVjZXNzYXJ5IGZvciBsYXJnZSBhc3NlbWJseSBm aWxlcy4KLlBwCi5JdCBGbCBtdGFyZ2V0LWFsaWduCi5JdCBGbCBtbm8tdGFyZ2V0LWFsaWdu CldoZW4gdGhpcyBvcHRpb24gaXMgZW5hYmxlZCwgR0NDIGluc3RydWN0cyB0aGUgYXNzZW1i bGVyIHRvIGF1dG9tYXRpY2FsbHkgYWxpZ24gaW5zdHJ1Y3Rpb25zIHRvIHJlZHVjZSBicmFu Y2ggcGVuYWx0aWVzIGF0IHRoZSBleHBlbnNlIG9mIHNvbWUgY29kZSBkZW5zaXR5LgpUaGUg YXNzZW1ibGVyIGF0dGVtcHRzIHRvIHdpZGVuIGRlbnNpdHkgaW5zdHJ1Y3Rpb25zIHRvIGFs aWduIGJyYW5jaCB0YXJnZXRzIGFuZCB0aGUgaW5zdHJ1Y3Rpb25zIGZvbGxvd2luZyBjYWxs IGluc3RydWN0aW9ucy4KSWYgdGhlcmUgYXJlIG5vdCBlbm91Z2ggcHJlY2VkaW5nIHNhZmUg ZGVuc2l0eSBpbnN0cnVjdGlvbnMgdG8gYWxpZ24gYSB0YXJnZXQsIG5vIHdpZGVuaW5nIHdp bGwgYmUgcGVyZm9ybWVkLgpUaGUgZGVmYXVsdCBpcwouRmwgbXRhcmdldC1hbGlnbiAuClRo ZXNlIG9wdGlvbnMgZG8gbm90IGFmZmVjdCB0aGUgdHJlYXRtZW50IG9mIGF1dG8tYWxpZ25l ZCBpbnN0cnVjdGlvbnMgbGlrZQouVmEgTE9PUCAsCndoaWNoIHRoZSBhc3NlbWJsZXIgd2ls bCBhbHdheXMgYWxpZ24sIGVpdGhlciBieSB3aWRlbmluZyBkZW5zaXR5IGluc3RydWN0aW9u cyBvciBieSBpbnNlcnRpbmcgbm8tb3AgaW5zdHJ1Y3Rpb25zLgouUHAKLkl0IEZsIG1sb25n Y2FsbHMKLkl0IEZsIG1uby1sb25nY2FsbHMKV2hlbiB0aGlzIG9wdGlvbiBpcyBlbmFibGVk LCBHQ0MgaW5zdHJ1Y3RzIHRoZSBhc3NlbWJsZXIgdG8gdHJhbnNsYXRlIGRpcmVjdCBjYWxs cyB0byBpbmRpcmVjdCBjYWxscyB1bmxlc3MgaXQgY2FuIGRldGVybWluZSB0aGF0IHRoZSB0 YXJnZXQgb2YgYSBkaXJlY3QgY2FsbCBpcyBpbiB0aGUgcmFuZ2UgYWxsb3dlZCBieSB0aGUg Y2FsbCBpbnN0cnVjdGlvbi4KVGhpcyB0cmFuc2xhdGlvbiB0eXBpY2FsbHkgb2NjdXJzIGZv ciBjYWxscyB0byBmdW5jdGlvbnMgaW4gb3RoZXIgc291cmNlIGZpbGVzLgpTcGVjaWZpY2Fs bHksIHRoZSBhc3NlbWJsZXIgdHJhbnNsYXRlcyBhIGRpcmVjdAouVmEgQ0FMTAppbnN0cnVj dGlvbiBpbnRvIGFuCi5WYSBMMzJSCmZvbGxvd2VkIGJ5IGEKLlZhIENBTExYCmluc3RydWN0 aW9uLgpUaGUgZGVmYXVsdCBpcwouRmwgbW5vLWxvbmdjYWxscyAuClRoaXMgb3B0aW9uIHNo b3VsZCBiZSB1c2VkIGluIHByb2dyYW1zIHdoZXJlIHRoZSBjYWxsIHRhcmdldCBjYW4gcG90 ZW50aWFsbHkgYmUgb3V0IG9mIHJhbmdlLgpUaGlzIG9wdGlvbiBpcyBpbXBsZW1lbnRlZCBp biB0aGUgYXNzZW1ibGVyLCBub3QgdGhlIGNvbXBpbGVyLCBzbyB0aGUgYXNzZW1ibHkgY29k ZSBnZW5lcmF0ZWQgYnkgR0NDIHdpbGwgc3RpbGwgc2hvdyBkaXJlY3QgY2FsbCBpbnN0cnVj dGlvbnMtLS1sb29rIGF0IHRoZSBkaXNhc3NlbWJsZWQgb2JqZWN0IGNvZGUgdG8gc2VlIHRo ZSBhY3R1YWwgaW5zdHJ1Y3Rpb25zLgpOb3RlIHRoYXQgdGhlIGFzc2VtYmxlciB3aWxsIHVz ZSBhbiBpbmRpcmVjdCBjYWxsIGZvciBldmVyeSBjcm9zcy1maWxlIGNhbGwsIG5vdCBqdXN0 IHRob3NlIHRoYXQgcmVhbGx5IHdpbGwgYmUgb3V0IG9mIHJhbmdlLgouUHAKLkVsCi5JdCBT eSB6U2VyaWVzIE9wdGlvbnMKVGhlc2UgYXJlIGxpc3RlZCB1bmRlcgouRWwKLlNzIE9wdGlv bnMgZm9yIENvZGUgR2VuZXJhdGlvbiBDb252ZW50aW9ucwpUaGVzZSBtYWNoaW5lLWluZGVw ZW5kZW50IG9wdGlvbnMgY29udHJvbCB0aGUgaW50ZXJmYWNlIGNvbnZlbnRpb25zIHVzZWQg aW4gY29kZSBnZW5lcmF0aW9uLgouUHAKTW9zdCBvZiB0aGVtIGhhdmUgYm90aCBwb3NpdGl2 ZSBhbmQgbmVnYXRpdmUgZm9ybXM7IHRoZSBuZWdhdGl2ZSBmb3JtIG9mCi5GbCBmZm9vCndv dWxkIGJlCi5GbCBmbm8tZm9vIC4KSW4gdGhlIHRhYmxlIGJlbG93LCBvbmx5IG9uZSBvZiB0 aGUgZm9ybXMgaXMgbGlzdGVkLS0tdGhlIG9uZSB3aGljaCBpcyBub3QgdGhlIGRlZmF1bHQu CllvdSBjYW4gZmlndXJlIG91dCB0aGUgb3RoZXIgZm9ybSBieSBlaXRoZXIgcmVtb3ZpbmcK LlN5IG5vLQpvciBhZGRpbmcgaXQuCi5QcAouQmwgLXRhZyAtd2lkdGggeHgKLkl0IEZsIGZi b3VuZHMtY2hlY2sKRm9yIGZyb250LWVuZHMgdGhhdCBzdXBwb3J0IGl0LCBnZW5lcmF0ZSBh ZGRpdGlvbmFsIGNvZGUgdG8gY2hlY2sgdGhhdCBpbmRpY2VzIHVzZWQgdG8gYWNjZXNzIGFy cmF5cyBhcmUgd2l0aGluIHRoZSBkZWNsYXJlZCByYW5nZS4KVGhpcyBpcyBjdXJyZW50bHkg b25seSBzdXBwb3J0ZWQgYnkgdGhlIEphdmEgYW5kIEZvcnRyYW4gZnJvbnQtZW5kcywgd2hl cmUgdGhpcyBvcHRpb24gZGVmYXVsdHMgdG8gdHJ1ZSBhbmQgZmFsc2UgcmVzcGVjdGl2ZWx5 LgouUHAKLkl0IEZsIGZ0cmFwdgpUaGlzIG9wdGlvbiBnZW5lcmF0ZXMgdHJhcHMgZm9yIHNp Z25lZCBvdmVyZmxvdyBvbiBhZGRpdGlvbiwgc3VidHJhY3Rpb24sIG11bHRpcGxpY2F0aW9u IG9wZXJhdGlvbnMuCi5QcAouSXQgRmwgZndyYXB2ClRoaXMgb3B0aW9uIGluc3RydWN0cyB0 aGUgY29tcGlsZXIgdG8gYXNzdW1lIHRoYXQgc2lnbmVkIGFyaXRobWV0aWMgb3ZlcmZsb3cg b2YgYWRkaXRpb24sIHN1YnRyYWN0aW9uIGFuZCBtdWx0aXBsaWNhdGlvbiB3cmFwcyBhcm91 bmQgdXNpbmcgdHdvcy1jb21wbGVtZW50IHJlcHJlc2VudGF0aW9uLgpUaGlzIGZsYWcgZW5h YmxlcyBzb21lIG9wdGltaXphdGlvbnMgYW5kIGRpc2FibGVzIG90aGVycy4KVGhpcyBvcHRp b24gaXMgZW5hYmxlZCBieSBkZWZhdWx0IGZvciB0aGUgSmF2YSBmcm9udC1lbmQsIGFzIHJl cXVpcmVkIGJ5IHRoZSBKYXZhIGxhbmd1YWdlIHNwZWNpZmljYXRpb24uCi5QcAouSXQgRmwg ZmV4Y2VwdGlvbnMKRW5hYmxlIGV4Y2VwdGlvbiBoYW5kbGluZy4KR2VuZXJhdGVzIGV4dHJh IGNvZGUgbmVlZGVkIHRvIHByb3BhZ2F0ZSBleGNlcHRpb25zLgpGb3Igc29tZSB0YXJnZXRz LCB0aGlzIGltcGxpZXMgR0NDIHdpbGwgZ2VuZXJhdGUgZnJhbWUgdW53aW5kIGluZm9ybWF0 aW9uIGZvciBhbGwgZnVuY3Rpb25zLCB3aGljaCBjYW4gcHJvZHVjZSBzaWduaWZpY2FudCBk YXRhIHNpemUgb3ZlcmhlYWQsIGFsdGhvdWdoIGl0IGRvZXMgbm90IGFmZmVjdCBleGVjdXRp b24uCklmIHlvdSBkbyBub3Qgc3BlY2lmeSB0aGlzIG9wdGlvbiwgR0NDIHdpbGwgZW5hYmxl IGl0IGJ5IGRlZmF1bHQgZm9yIGxhbmd1YWdlcyBsaWtlIEMrKyB3aGljaCBub3JtYWxseSBy ZXF1aXJlIGV4Y2VwdGlvbiBoYW5kbGluZywgYW5kIGRpc2FibGUgaXQgZm9yIGxhbmd1YWdl cyBsaWtlIEMgdGhhdCBkbyBub3Qgbm9ybWFsbHkgcmVxdWlyZSBpdC4KSG93ZXZlciwgeW91 IG1heSBuZWVkIHRvIGVuYWJsZSB0aGlzIG9wdGlvbiB3aGVuIGNvbXBpbGluZyBDIGNvZGUg dGhhdCBuZWVkcyB0byBpbnRlcm9wZXJhdGUgcHJvcGVybHkgd2l0aCBleGNlcHRpb24gaGFu ZGxlcnMgd3JpdHRlbiBpbiBDKysuCllvdSBtYXkgYWxzbyB3aXNoIHRvIGRpc2FibGUgdGhp cyBvcHRpb24gaWYgeW91IGFyZSBjb21waWxpbmcgb2xkZXIgQysrIHByb2dyYW1zIHRoYXQg ZG9uJ3QgdXNlIGV4Y2VwdGlvbiBoYW5kbGluZy4KLlBwCi5JdCBGbCBmbm9uLWNhbGwtZXhj ZXB0aW9ucwpHZW5lcmF0ZSBjb2RlIHRoYXQgYWxsb3dzIHRyYXBwaW5nIGluc3RydWN0aW9u cyB0byB0aHJvdyBleGNlcHRpb25zLgpOb3RlIHRoYXQgdGhpcyByZXF1aXJlcyBwbGF0Zm9y bS1zcGVjaWZpYyBydW50aW1lIHN1cHBvcnQgdGhhdCBkb2VzIG5vdCBleGlzdCBldmVyeXdo ZXJlLgpNb3Jlb3ZlciwgaXQgb25seSBhbGxvd3MKLkVtIHRyYXBwaW5nCmluc3RydWN0aW9u cyB0byB0aHJvdyBleGNlcHRpb25zLCBpLmUuIG1lbW9yeSByZWZlcmVuY2VzIG9yIGZsb2F0 aW5nIHBvaW50IGluc3RydWN0aW9ucy4KSXQgZG9lcyBub3QgYWxsb3cgZXhjZXB0aW9ucyB0 byBiZSB0aHJvd24gZnJvbSBhcmJpdHJhcnkgc2lnbmFsIGhhbmRsZXJzIHN1Y2ggYXMKLlZh IFNJR0FMUk0gLgouUHAKLkl0IEZsIGZ1bndpbmQtdGFibGVzClNpbWlsYXIgdG8KLkZsIGZl eGNlcHRpb25zICwKZXhjZXB0IHRoYXQgaXQgd2lsbCBqdXN0IGdlbmVyYXRlIGFueSBuZWVk ZWQgc3RhdGljIGRhdGEsIGJ1dCB3aWxsIG5vdCBhZmZlY3QgdGhlIGdlbmVyYXRlZCBjb2Rl IGluIGFueSBvdGhlciB3YXkuCllvdSB3aWxsIG5vcm1hbGx5IG5vdCBlbmFibGUgdGhpcyBv cHRpb247IGluc3RlYWQsIGEgbGFuZ3VhZ2UgcHJvY2Vzc29yIHRoYXQgbmVlZHMgdGhpcyBo YW5kbGluZyB3b3VsZCBlbmFibGUgaXQgb24geW91ciBiZWhhbGYuCi5QcAouSXQgRmwgZmFz eW5jaHJvbm91cy11bndpbmQtdGFibGVzCkdlbmVyYXRlIHVud2luZCB0YWJsZSBpbiBkd2Fy ZjIgZm9ybWF0LCBpZiBzdXBwb3J0ZWQgYnkgdGFyZ2V0IG1hY2hpbmUuClRoZSB0YWJsZSBp cyBleGFjdCBhdCBlYWNoIGluc3RydWN0aW9uIGJvdW5kYXJ5LCBzbyBpdCBjYW4gYmUgdXNl ZCBmb3Igc3RhY2sgdW53aW5kaW5nIGZyb20gYXN5bmNocm9ub3VzIGV2ZW50cyAoc3VjaCBh cyBkZWJ1Z2dlciBvciBnYXJiYWdlIGNvbGxlY3RvcikuCi5QcAouSXQgRmwgZnBjYy1zdHJ1 Y3QtcmV0dXJuClJldHVybiAic2hvcnQiCi5WYSBzdHJ1Y3QKYW5kCi5WYSB1bmlvbgp2YWx1 ZXMgaW4gbWVtb3J5IGxpa2UgbG9uZ2VyIG9uZXMsIHJhdGhlciB0aGFuIGluIHJlZ2lzdGVy cy4KVGhpcyBjb252ZW50aW9uIGlzIGxlc3MgZWZmaWNpZW50LCBidXQgaXQgaGFzIHRoZSBh ZHZhbnRhZ2Ugb2YgYWxsb3dpbmcgaW50ZXJjYWxsYWJpbGl0eSBiZXR3ZWVuIEdDQy1jb21w aWxlZCBmaWxlcyBhbmQgZmlsZXMgY29tcGlsZWQgd2l0aCBvdGhlciBjb21waWxlcnMsIHBh cnRpY3VsYXJseSB0aGUgUG9ydGFibGUgQyBDb21waWxlciAocGNjKS4KLlBwClRoZSBwcmVj aXNlIGNvbnZlbnRpb24gZm9yIHJldHVybmluZyBzdHJ1Y3R1cmVzIGluIG1lbW9yeSBkZXBl bmRzIG9uIHRoZSB0YXJnZXQgY29uZmlndXJhdGlvbiBtYWNyb3MuCi5QcApTaG9ydCBzdHJ1 Y3R1cmVzIGFuZCB1bmlvbnMgYXJlIHRob3NlIHdob3NlIHNpemUgYW5kIGFsaWdubWVudCBt YXRjaCB0aGF0IG9mIHNvbWUgaW50ZWdlciB0eXBlLgouUHAKLlN5IFdhcm5pbmc6CmNvZGUg Y29tcGlsZWQgd2l0aCB0aGUKLkZsIGZwY2Mtc3RydWN0LXJldHVybgpzd2l0Y2ggaXMgbm90 IGJpbmFyeSBjb21wYXRpYmxlIHdpdGggY29kZSBjb21waWxlZCB3aXRoIHRoZQouRmwgZnJl Zy1zdHJ1Y3QtcmV0dXJuCnN3aXRjaC4KVXNlIGl0IHRvIGNvbmZvcm0gdG8gYSBub24tZGVm YXVsdCBhcHBsaWNhdGlvbiBiaW5hcnkgaW50ZXJmYWNlLgouUHAKLkl0IEZsIGZyZWctc3Ry dWN0LXJldHVybgpSZXR1cm4KLlZhIHN0cnVjdAphbmQKLlZhIHVuaW9uCnZhbHVlcyBpbiBy ZWdpc3RlcnMgd2hlbiBwb3NzaWJsZS4KVGhpcyBpcyBtb3JlIGVmZmljaWVudCBmb3Igc21h bGwgc3RydWN0dXJlcyB0aGFuCi5GbCBmcGNjLXN0cnVjdC1yZXR1cm4gLgouUHAKSWYgeW91 IHNwZWNpZnkgbmVpdGhlcgouRmwgZnBjYy1zdHJ1Y3QtcmV0dXJuCm5vcgouRmwgZnJlZy1z dHJ1Y3QtcmV0dXJuICwKR0NDIGRlZmF1bHRzIHRvIHdoaWNoZXZlciBjb252ZW50aW9uIGlz IHN0YW5kYXJkIGZvciB0aGUgdGFyZ2V0LgpJZiB0aGVyZSBpcyBubyBzdGFuZGFyZCBjb252 ZW50aW9uLCBHQ0MgZGVmYXVsdHMgdG8KLkZsIGZwY2Mtc3RydWN0LXJldHVybiAsCmV4Y2Vw dCBvbiB0YXJnZXRzIHdoZXJlIEdDQyBpcyB0aGUgcHJpbmNpcGFsIGNvbXBpbGVyLgpJbiB0 aG9zZSBjYXNlcywgd2UgY2FuIGNob29zZSB0aGUgc3RhbmRhcmQsIGFuZCB3ZSBjaG9zZSB0 aGUgbW9yZSBlZmZpY2llbnQgcmVnaXN0ZXIgcmV0dXJuIGFsdGVybmF0aXZlLgouUHAKLlN5 IFdhcm5pbmc6CmNvZGUgY29tcGlsZWQgd2l0aCB0aGUKLkZsIGZyZWctc3RydWN0LXJldHVy bgpzd2l0Y2ggaXMgbm90IGJpbmFyeSBjb21wYXRpYmxlIHdpdGggY29kZSBjb21waWxlZCB3 aXRoIHRoZQouRmwgZnBjYy1zdHJ1Y3QtcmV0dXJuCnN3aXRjaC4KVXNlIGl0IHRvIGNvbmZv cm0gdG8gYSBub24tZGVmYXVsdCBhcHBsaWNhdGlvbiBiaW5hcnkgaW50ZXJmYWNlLgouUHAK Lkl0IEZsIGZzaG9ydC1lbnVtcwpBbGxvY2F0ZSB0byBhbgouVmEgZW51bQp0eXBlIG9ubHkg YXMgbWFueSBieXRlcyBhcyBpdCBuZWVkcyBmb3IgdGhlIGRlY2xhcmVkIHJhbmdlIG9mIHBv c3NpYmxlIHZhbHVlcy4KU3BlY2lmaWNhbGx5LCB0aGUKLlZhIGVudW0KdHlwZSB3aWxsIGJl IGVxdWl2YWxlbnQgdG8gdGhlIHNtYWxsZXN0IGludGVnZXIgdHlwZSB3aGljaCBoYXMgZW5v dWdoIHJvb20uCi5QcAouU3kgV2FybmluZzoKdGhlCi5GbCBmc2hvcnQtZW51bXMKc3dpdGNo IGNhdXNlcyBHQ0MgdG8gZ2VuZXJhdGUgY29kZSB0aGF0IGlzIG5vdCBiaW5hcnkgY29tcGF0 aWJsZSB3aXRoIGNvZGUgZ2VuZXJhdGVkIHdpdGhvdXQgdGhhdCBzd2l0Y2guClVzZSBpdCB0 byBjb25mb3JtIHRvIGEgbm9uLWRlZmF1bHQgYXBwbGljYXRpb24gYmluYXJ5IGludGVyZmFj ZS4KLlBwCi5JdCBGbCBmc2hvcnQtZG91YmxlClVzZSB0aGUgc2FtZSBzaXplIGZvcgouVmEg ZG91YmxlCmFzIGZvcgouVmEgZmxvYXQgLgouUHAKLlN5IFdhcm5pbmc6CnRoZQouRmwgZnNo b3J0LWRvdWJsZQpzd2l0Y2ggY2F1c2VzIEdDQyB0byBnZW5lcmF0ZSBjb2RlIHRoYXQgaXMg bm90IGJpbmFyeSBjb21wYXRpYmxlIHdpdGggY29kZSBnZW5lcmF0ZWQgd2l0aG91dCB0aGF0 IHN3aXRjaC4KVXNlIGl0IHRvIGNvbmZvcm0gdG8gYSBub24tZGVmYXVsdCBhcHBsaWNhdGlv biBiaW5hcnkgaW50ZXJmYWNlLgouUHAKLkl0IEZsIGZzaG9ydC13Y2hhcgpPdmVycmlkZSB0 aGUgdW5kZXJseWluZyB0eXBlIGZvcgouU3kgd2NoYXJfdAp0byBiZQouU3kgc2hvcnQgdW5z aWduZWQgaW50Cmluc3RlYWQgb2YgdGhlIGRlZmF1bHQgZm9yIHRoZSB0YXJnZXQuClRoaXMg b3B0aW9uIGlzIHVzZWZ1bCBmb3IgYnVpbGRpbmcgcHJvZ3JhbXMgdG8gcnVuIHVuZGVyIFdJ TkUuCi5QcAouU3kgV2FybmluZzoKdGhlCi5GbCBmc2hvcnQtd2NoYXIKc3dpdGNoIGNhdXNl cyBHQ0MgdG8gZ2VuZXJhdGUgY29kZSB0aGF0IGlzIG5vdCBiaW5hcnkgY29tcGF0aWJsZSB3 aXRoIGNvZGUgZ2VuZXJhdGVkIHdpdGhvdXQgdGhhdCBzd2l0Y2guClVzZSBpdCB0byBjb25m b3JtIHRvIGEgbm9uLWRlZmF1bHQgYXBwbGljYXRpb24gYmluYXJ5IGludGVyZmFjZS4KLlBw Ci5JdCBGbCBmc2hhcmVkLWRhdGEKUmVxdWVzdHMgdGhhdCB0aGUgZGF0YSBhbmQgbm9uLQou VmEgY29uc3QKdmFyaWFibGVzIG9mIHRoaXMgY29tcGlsYXRpb24gYmUgc2hhcmVkIGRhdGEg cmF0aGVyIHRoYW4gcHJpdmF0ZSBkYXRhLgpUaGUgZGlzdGluY3Rpb24gbWFrZXMgc2Vuc2Ug b25seSBvbiBjZXJ0YWluIG9wZXJhdGluZyBzeXN0ZW1zLCB3aGVyZSBzaGFyZWQgZGF0YSBp cyBzaGFyZWQgYmV0d2VlbiBwcm9jZXNzZXMgcnVubmluZyB0aGUgc2FtZSBwcm9ncmFtLCB3 aGlsZSBwcml2YXRlIGRhdGEgZXhpc3RzIGluIG9uZSBjb3B5IHBlciBwcm9jZXNzLgouUHAK Lkl0IEZsIGZuby1jb21tb24KSW4gQywgYWxsb2NhdGUgZXZlbiB1bmluaXRpYWxpemVkIGds b2JhbCB2YXJpYWJsZXMgaW4gdGhlIGRhdGEgc2VjdGlvbiBvZiB0aGUgb2JqZWN0IGZpbGUs IHJhdGhlciB0aGFuIGdlbmVyYXRpbmcgdGhlbSBhcyBjb21tb24gYmxvY2tzLgpUaGlzIGhh cyB0aGUgZWZmZWN0IHRoYXQgaWYgdGhlIHNhbWUgdmFyaWFibGUgaXMgZGVjbGFyZWQgKHdp dGhvdXQKLlZhIGV4dGVybiApCmluIHR3byBkaWZmZXJlbnQgY29tcGlsYXRpb25zLCB5b3Ug d2lsbCBnZXQgYW4gZXJyb3Igd2hlbiB5b3UgbGluayB0aGVtLgpUaGUgb25seSByZWFzb24g dGhpcyBtaWdodCBiZSB1c2VmdWwgaXMgaWYgeW91IHdpc2ggdG8gdmVyaWZ5IHRoYXQgdGhl IHByb2dyYW0gd2lsbCB3b3JrIG9uIG90aGVyIHN5c3RlbXMgd2hpY2ggYWx3YXlzIHdvcmsg dGhpcyB3YXkuCi5QcAouSXQgRmwgZm5vLWlkZW50Cklnbm9yZSB0aGUKLlN5ICNpZGVudApk aXJlY3RpdmUuCi5QcAouSXQgRmwgZmluaGliaXQtc2l6ZS1kaXJlY3RpdmUKRG9uJ3Qgb3V0 cHV0IGEKLlZhIC5zaXplCmFzc2VtYmxlciBkaXJlY3RpdmUsIG9yIGFueXRoaW5nIGVsc2Ug dGhhdCB3b3VsZCBjYXVzZSB0cm91YmxlIGlmIHRoZSBmdW5jdGlvbiBpcyBzcGxpdCBpbiB0 aGUgbWlkZGxlLCBhbmQgdGhlIHR3byBoYWx2ZXMgYXJlIHBsYWNlZCBhdCBsb2NhdGlvbnMg ZmFyIGFwYXJ0IGluIG1lbW9yeS4KVGhpcyBvcHRpb24gaXMgdXNlZCB3aGVuIGNvbXBpbGlu ZwouUGEgY3J0c3R1ZmYuYyA7CnlvdSBzaG91bGQgbm90IG5lZWQgdG8gdXNlIGl0IGZvciBh bnl0aGluZyBlbHNlLgouUHAKLkl0IEZsIGZ2ZXJib3NlLWFzbQpQdXQgZXh0cmEgY29tbWVu dGFyeSBpbmZvcm1hdGlvbiBpbiB0aGUgZ2VuZXJhdGVkIGFzc2VtYmx5IGNvZGUgdG8gbWFr ZSBpdCBtb3JlIHJlYWRhYmxlLgpUaGlzIG9wdGlvbiBpcyBnZW5lcmFsbHkgb25seSBvZiB1 c2UgdG8gdGhvc2Ugd2hvIGFjdHVhbGx5IG5lZWQgdG8gcmVhZCB0aGUgZ2VuZXJhdGVkIGFz c2VtYmx5IGNvZGUgKHBlcmhhcHMgd2hpbGUgZGVidWdnaW5nIHRoZSBjb21waWxlciBpdHNl bGYpLgouUHAKLkZsIGZuby12ZXJib3NlLWFzbSAsCnRoZSBkZWZhdWx0LCBjYXVzZXMgdGhl IGV4dHJhIGluZm9ybWF0aW9uIHRvIGJlIG9taXR0ZWQgYW5kIGlzIHVzZWZ1bCB3aGVuIGNv bXBhcmluZyB0d28gYXNzZW1ibGVyIGZpbGVzLgouUHAKLkl0IEZsIGZwaWMKR2VuZXJhdGUg cG9zaXRpb24taW5kZXBlbmRlbnQgY29kZSAoUElDKSBzdWl0YWJsZSBmb3IgdXNlIGluIGEg c2hhcmVkIGxpYnJhcnksIGlmIHN1cHBvcnRlZCBmb3IgdGhlIHRhcmdldCBtYWNoaW5lLgpT dWNoIGNvZGUgYWNjZXNzZXMgYWxsIGNvbnN0YW50IGFkZHJlc3NlcyB0aHJvdWdoIGEgZ2xv YmFsIG9mZnNldCB0YWJsZSAoR09UKS4KVGhlIGR5bmFtaWMgbG9hZGVyIHJlc29sdmVzIHRo ZSBHT1QgZW50cmllcyB3aGVuIHRoZSBwcm9ncmFtIHN0YXJ0cyAodGhlIGR5bmFtaWMgbG9h ZGVyIGlzIG5vdCBwYXJ0IG9mIEdDQzsgaXQgaXMgcGFydCBvZiB0aGUgb3BlcmF0aW5nIHN5 c3RlbSkuCklmIHRoZSBHT1Qgc2l6ZSBmb3IgdGhlIGxpbmtlZCBleGVjdXRhYmxlIGV4Y2Vl ZHMgYSBtYWNoaW5lLXNwZWNpZmljIG1heGltdW0gc2l6ZSwgeW91IGdldCBhbiBlcnJvciBt ZXNzYWdlIGZyb20gdGhlIGxpbmtlciBpbmRpY2F0aW5nIHRoYXQKLkZsIGZwaWMKZG9lcyBu b3Qgd29yazsgaW4gdGhhdCBjYXNlLCByZWNvbXBpbGUgd2l0aAouRmwgZlBJQwppbnN0ZWFk LgooVGhlc2UgbWF4aW11bXMgYXJlIDhrIG9uIHRoZSBTUEFSQyBhbmQgMzJrIG9uIHRoZSBt NjhrIGFuZCBSUy82MDAwLgpUaGUgMzg2IGhhcyBubyBzdWNoIGxpbWl0LikKLlBwClBvc2l0 aW9uLWluZGVwZW5kZW50IGNvZGUgcmVxdWlyZXMgc3BlY2lhbCBzdXBwb3J0LCBhbmQgdGhl cmVmb3JlIHdvcmtzIG9ubHkgb24gY2VydGFpbiBtYWNoaW5lcy4KRm9yIHRoZSAzODYsIEdD QyBzdXBwb3J0cyBQSUMgZm9yIFN5c3RlbSBWIGJ1dCBub3QgZm9yIHRoZSBTdW4gMzg2aS4K Q29kZSBnZW5lcmF0ZWQgZm9yIHRoZSBJQk0gUlMvNjAwMCBpcyBhbHdheXMgcG9zaXRpb24t aW5kZXBlbmRlbnQuCi5QcAouSXQgRmwgZlBJQwpJZiBzdXBwb3J0ZWQgZm9yIHRoZSB0YXJn ZXQgbWFjaGluZSwgZW1pdCBwb3NpdGlvbi1pbmRlcGVuZGVudCBjb2RlLCBzdWl0YWJsZSBm b3IgZHluYW1pYyBsaW5raW5nIGFuZCBhdm9pZGluZyBhbnkgbGltaXQgb24gdGhlIHNpemUg b2YgdGhlIGdsb2JhbCBvZmZzZXQgdGFibGUuClRoaXMgb3B0aW9uIG1ha2VzIGEgZGlmZmVy ZW5jZSBvbiB0aGUgbTY4aywgUG93ZXJQQyBhbmQgU1BBUkMuCi5QcApQb3NpdGlvbi1pbmRl cGVuZGVudCBjb2RlIHJlcXVpcmVzIHNwZWNpYWwgc3VwcG9ydCwgYW5kIHRoZXJlZm9yZSB3 b3JrcyBvbmx5IG9uIGNlcnRhaW4gbWFjaGluZXMuCi5QcAouSXQgRmwgZnBpZQouSXQgRmwg ZlBJRQpUaGVzZSBvcHRpb25zIGFyZSBzaW1pbGFyIHRvCi5GbCBmcGljCmFuZAouRmwgZlBJ QyAsCmJ1dCBnZW5lcmF0ZWQgcG9zaXRpb24gaW5kZXBlbmRlbnQgY29kZSBjYW4gYmUgb25s eSBsaW5rZWQgaW50byBleGVjdXRhYmxlcy4KVXN1YWxseSB0aGVzZSBvcHRpb25zIGFyZSB1 c2VkIHdoZW4KLkZsIHBpZQpHQ0Mgb3B0aW9uIHdpbGwgYmUgdXNlZCBkdXJpbmcgbGlua2lu Zy4KLlBwCi5JdCBGbCBmbm8tanVtcC10YWJsZXMKRG8gbm90IHVzZSBqdW1wIHRhYmxlcyBm b3Igc3dpdGNoIHN0YXRlbWVudHMgZXZlbiB3aGVyZSBpdCB3b3VsZCBiZSBtb3JlIGVmZmlj aWVudCB0aGFuIG90aGVyIGNvZGUgZ2VuZXJhdGlvbiBzdHJhdGVnaWVzLgpUaGlzIG9wdGlv biBpcyBvZiB1c2UgaW4gY29uanVuY3Rpb24gd2l0aAouRmwgZnBpYwpvcgouRmwgZlBJQwpm b3IgYnVpbGRpbmcgY29kZSB3aGljaCBmb3JtcyBwYXJ0IG9mIGEgZHluYW1pYyBsaW5rZXIg YW5kIGNhbm5vdCByZWZlcmVuY2UgdGhlIGFkZHJlc3Mgb2YgYSBqdW1wIHRhYmxlLgpPbiBz b21lIHRhcmdldHMsIGp1bXAgdGFibGVzIGRvIG5vdCByZXF1aXJlIGEgR09UIGFuZCB0aGlz IG9wdGlvbiBpcyBub3QgbmVlZGVkLgouUHAKLkl0IEZsIGZmaXhlZC0gTnMgQXIgcmVnClRy ZWF0IHRoZSByZWdpc3RlciBuYW1lZAouRW0gcmVnCmFzIGEgZml4ZWQgcmVnaXN0ZXI7IGdl bmVyYXRlZCBjb2RlIHNob3VsZCBuZXZlciByZWZlciB0byBpdCAoZXhjZXB0IHBlcmhhcHMg YXMgYSBzdGFjayBwb2ludGVyLCBmcmFtZSBwb2ludGVyIG9yIGluIHNvbWUgb3RoZXIgZml4 ZWQgcm9sZSkuCi5QcAouRW0gcmVnCm11c3QgYmUgdGhlIG5hbWUgb2YgYSByZWdpc3Rlci4K VGhlIHJlZ2lzdGVyIG5hbWVzIGFjY2VwdGVkIGFyZSBtYWNoaW5lLXNwZWNpZmljIGFuZCBh cmUgZGVmaW5lZCBpbiB0aGUKLlZhIFJFR0lTVEVSX05BTUVTCm1hY3JvIGluIHRoZSBtYWNo aW5lIGRlc2NyaXB0aW9uIG1hY3JvIGZpbGUuCi5QcApUaGlzIGZsYWcgZG9lcyBub3QgaGF2 ZSBhIG5lZ2F0aXZlIGZvcm0sIGJlY2F1c2UgaXQgc3BlY2lmaWVzIGEgdGhyZWUtd2F5IGNo b2ljZS4KLlBwCi5JdCBGbCBmY2FsbC11c2VkLSBOcyBBciByZWcKVHJlYXQgdGhlIHJlZ2lz dGVyIG5hbWVkCi5FbSByZWcKYXMgYW4gYWxsb2NhYmxlIHJlZ2lzdGVyIHRoYXQgaXMgY2xv YmJlcmVkIGJ5IGZ1bmN0aW9uIGNhbGxzLgpJdCBtYXkgYmUgYWxsb2NhdGVkIGZvciB0ZW1w b3JhcmllcyBvciB2YXJpYWJsZXMgdGhhdCBkbyBub3QgbGl2ZSBhY3Jvc3MgYSBjYWxsLgpG dW5jdGlvbnMgY29tcGlsZWQgdGhpcyB3YXkgd2lsbCBub3Qgc2F2ZSBhbmQgcmVzdG9yZSB0 aGUgcmVnaXN0ZXIKLkVtIHJlZyAuCi5QcApJdCBpcyBhbiBlcnJvciB0byB1c2VkIHRoaXMg ZmxhZyB3aXRoIHRoZSBmcmFtZSBwb2ludGVyIG9yIHN0YWNrIHBvaW50ZXIuClVzZSBvZiB0 aGlzIGZsYWcgZm9yIG90aGVyIHJlZ2lzdGVycyB0aGF0IGhhdmUgZml4ZWQgcGVydmFzaXZl IHJvbGVzIGluIHRoZSBtYWNoaW5lJ3MgZXhlY3V0aW9uIG1vZGVsIHdpbGwgcHJvZHVjZSBk aXNhc3Ryb3VzIHJlc3VsdHMuCi5QcApUaGlzIGZsYWcgZG9lcyBub3QgaGF2ZSBhIG5lZ2F0 aXZlIGZvcm0sIGJlY2F1c2UgaXQgc3BlY2lmaWVzIGEgdGhyZWUtd2F5IGNob2ljZS4KLlBw Ci5JdCBGbCBmY2FsbC1zYXZlZC0gTnMgQXIgcmVnClRyZWF0IHRoZSByZWdpc3RlciBuYW1l ZAouRW0gcmVnCmFzIGFuIGFsbG9jYWJsZSByZWdpc3RlciBzYXZlZCBieSBmdW5jdGlvbnMu Ckl0IG1heSBiZSBhbGxvY2F0ZWQgZXZlbiBmb3IgdGVtcG9yYXJpZXMgb3IgdmFyaWFibGVz IHRoYXQgbGl2ZSBhY3Jvc3MgYSBjYWxsLgpGdW5jdGlvbnMgY29tcGlsZWQgdGhpcyB3YXkg d2lsbCBzYXZlIGFuZCByZXN0b3JlIHRoZSByZWdpc3RlcgouRW0gcmVnCmlmIHRoZXkgdXNl IGl0LgouUHAKSXQgaXMgYW4gZXJyb3IgdG8gdXNlZCB0aGlzIGZsYWcgd2l0aCB0aGUgZnJh bWUgcG9pbnRlciBvciBzdGFjayBwb2ludGVyLgpVc2Ugb2YgdGhpcyBmbGFnIGZvciBvdGhl ciByZWdpc3RlcnMgdGhhdCBoYXZlIGZpeGVkIHBlcnZhc2l2ZSByb2xlcyBpbiB0aGUgbWFj aGluZSdzIGV4ZWN1dGlvbiBtb2RlbCB3aWxsIHByb2R1Y2UgZGlzYXN0cm91cyByZXN1bHRz LgouUHAKQSBkaWZmZXJlbnQgc29ydCBvZiBkaXNhc3RlciB3aWxsIHJlc3VsdCBmcm9tIHRo ZSB1c2Ugb2YgdGhpcyBmbGFnIGZvciBhIHJlZ2lzdGVyIGluIHdoaWNoIGZ1bmN0aW9uIHZh bHVlcyBtYXkgYmUgcmV0dXJuZWQuCi5QcApUaGlzIGZsYWcgZG9lcyBub3QgaGF2ZSBhIG5l Z2F0aXZlIGZvcm0sIGJlY2F1c2UgaXQgc3BlY2lmaWVzIGEgdGhyZWUtd2F5IGNob2ljZS4K LlBwCi5JdCBTeSAtZnBhY2stc3RydWN0Wz0gTnMgRW0gbiBOcyBTeSBdIE5zCldpdGhvdXQg YSB2YWx1ZSBzcGVjaWZpZWQsIHBhY2sgYWxsIHN0cnVjdHVyZSBtZW1iZXJzIHRvZ2V0aGVy IHdpdGhvdXQgaG9sZXMuCldoZW4gYSB2YWx1ZSBpcyBzcGVjaWZpZWQgKHdoaWNoIG11c3Qg YmUgYSBzbWFsbCBwb3dlciBvZiB0d28pLCBwYWNrIHN0cnVjdHVyZSBtZW1iZXJzIGFjY29y ZGluZyB0byB0aGlzIHZhbHVlLCByZXByZXNlbnRpbmcgdGhlIG1heGltdW0gYWxpZ25tZW50 ICh0aGF0IGlzLCBvYmplY3RzIHdpdGggZGVmYXVsdCBhbGlnbm1lbnQgcmVxdWlyZW1lbnRz IGxhcmdlciB0aGFuIHRoaXMgd2lsbCBiZSBvdXRwdXQgcG90ZW50aWFsbHkgdW5hbGlnbmVk IGF0IHRoZSBuZXh0IGZpdHRpbmcgbG9jYXRpb24uCi5QcAouU3kgV2FybmluZzoKdGhlCi5G bCBmcGFjay1zdHJ1Y3QKc3dpdGNoIGNhdXNlcyBHQ0MgdG8gZ2VuZXJhdGUgY29kZSB0aGF0 IGlzIG5vdCBiaW5hcnkgY29tcGF0aWJsZSB3aXRoIGNvZGUgZ2VuZXJhdGVkIHdpdGhvdXQg dGhhdCBzd2l0Y2guCkFkZGl0aW9uYWxseSwgaXQgbWFrZXMgdGhlIGNvZGUgc3Vib3B0aW1h bC4KVXNlIGl0IHRvIGNvbmZvcm0gdG8gYSBub24tZGVmYXVsdCBhcHBsaWNhdGlvbiBiaW5h cnkgaW50ZXJmYWNlLgouUHAKLkl0IEZsIGZpbnN0cnVtZW50LWZ1bmN0aW9ucwpHZW5lcmF0 ZSBpbnN0cnVtZW50YXRpb24gY2FsbHMgZm9yIGVudHJ5IGFuZCBleGl0IHRvIGZ1bmN0aW9u cy4KSnVzdCBhZnRlciBmdW5jdGlvbiBlbnRyeSBhbmQganVzdCBiZWZvcmUgZnVuY3Rpb24g ZXhpdCwgdGhlIGZvbGxvd2luZyBwcm9maWxpbmcgZnVuY3Rpb25zIHdpbGwgYmUgY2FsbGVk IHdpdGggdGhlIGFkZHJlc3Mgb2YgdGhlIGN1cnJlbnQgZnVuY3Rpb24gYW5kIGl0cyBjYWxs IHNpdGUuCihPbiBzb21lIHBsYXRmb3JtcywKLlZhIF9fYnVpbHRpbl9yZXR1cm5fYWRkcmVz cwpkb2VzIG5vdCB3b3JrIGJleW9uZCB0aGUgY3VycmVudCBmdW5jdGlvbiwgc28gdGhlIGNh bGwgc2l0ZSBpbmZvcm1hdGlvbiBtYXkgbm90IGJlIGF2YWlsYWJsZSB0byB0aGUgcHJvZmls aW5nIGZ1bmN0aW9ucyBvdGhlcndpc2UuKQouUHAKLkJkIC1saXRlcmFsIC1vZmZzZXQgaW5k ZW50CnZvaWQgX19jeWdfcHJvZmlsZV9mdW5jX2VudGVyICh2b2lkICp0aGlzX2ZuLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqY2FsbF9zaXRlKTsKdm9pZCBfX2N5 Z19wcm9maWxlX2Z1bmNfZXhpdCAgKHZvaWQgKnRoaXNfZm4sCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB2b2lkICpjYWxsX3NpdGUpOwouRWQKVGhlIGZpcnN0IGFyZ3VtZW50 IGlzIHRoZSBhZGRyZXNzIG9mIHRoZSBzdGFydCBvZiB0aGUgY3VycmVudCBmdW5jdGlvbiwg d2hpY2ggbWF5IGJlIGxvb2tlZCB1cCBleGFjdGx5IGluIHRoZSBzeW1ib2wgdGFibGUuCi5Q cApUaGlzIGluc3RydW1lbnRhdGlvbiBpcyBhbHNvIGRvbmUgZm9yIGZ1bmN0aW9ucyBleHBh bmRlZCBpbmxpbmUgaW4gb3RoZXIgZnVuY3Rpb25zLgpUaGUgcHJvZmlsaW5nIGNhbGxzIHdp bGwgaW5kaWNhdGUgd2hlcmUsIGNvbmNlcHR1YWxseSwgdGhlIGlubGluZSBmdW5jdGlvbiBp cyBlbnRlcmVkIGFuZCBleGl0ZWQuClRoaXMgbWVhbnMgdGhhdCBhZGRyZXNzYWJsZSB2ZXJz aW9ucyBvZiBzdWNoIGZ1bmN0aW9ucyBtdXN0IGJlIGF2YWlsYWJsZS4KSWYgYWxsIHlvdXIg dXNlcyBvZiBhIGZ1bmN0aW9uIGFyZSBleHBhbmRlZCBpbmxpbmUsIHRoaXMgbWF5IG1lYW4g YW4gYWRkaXRpb25hbCBleHBhbnNpb24gb2YgY29kZSBzaXplLgpJZiB5b3UgdXNlCi5TeSBl eHRlcm4gaW5saW5lCmluIHlvdXIgQyBjb2RlLCBhbiBhZGRyZXNzYWJsZSB2ZXJzaW9uIG9m IHN1Y2ggZnVuY3Rpb25zIG11c3QgYmUgcHJvdmlkZWQuCihUaGlzIGlzIG5vcm1hbGx5IHRo ZSBjYXNlIGFueXdheXMsIGJ1dCBpZiB5b3UgZ2V0IGx1Y2t5IGFuZCB0aGUgb3B0aW1pemVy IGFsd2F5cyBleHBhbmRzIHRoZSBmdW5jdGlvbnMgaW5saW5lLCB5b3UgbWlnaHQgaGF2ZSBn b3R0ZW4gYXdheSB3aXRob3V0IHByb3ZpZGluZyBzdGF0aWMgY29waWVzLikKLlBwCkEgZnVu Y3Rpb24gbWF5IGJlIGdpdmVuIHRoZSBhdHRyaWJ1dGUKLlZhIG5vX2luc3RydW1lbnRfZnVu Y3Rpb24gLAppbiB3aGljaCBjYXNlIHRoaXMgaW5zdHJ1bWVudGF0aW9uIHdpbGwgbm90IGJl IGRvbmUuClRoaXMgY2FuIGJlIHVzZWQsIGZvciBleGFtcGxlLCBmb3IgdGhlIHByb2ZpbGlu ZyBmdW5jdGlvbnMgbGlzdGVkIGFib3ZlLCBoaWdoLXByaW9yaXR5IGludGVycnVwdCByb3V0 aW5lcywgYW5kIGFueSBmdW5jdGlvbnMgZnJvbSB3aGljaCB0aGUgcHJvZmlsaW5nIGZ1bmN0 aW9ucyBjYW5ub3Qgc2FmZWx5IGJlIGNhbGxlZCAocGVyaGFwcyBzaWduYWwgaGFuZGxlcnMs IGlmIHRoZSBwcm9maWxpbmcgcm91dGluZXMgZ2VuZXJhdGUgb3V0cHV0IG9yIGFsbG9jYXRl IG1lbW9yeSkuCi5QcAouSXQgRmwgZnN0YWNrLWNoZWNrCkdlbmVyYXRlIGNvZGUgdG8gdmVy aWZ5IHRoYXQgeW91IGRvIG5vdCBnbyBiZXlvbmQgdGhlIGJvdW5kYXJ5IG9mIHRoZSBzdGFj ay4KWW91IHNob3VsZCBzcGVjaWZ5IHRoaXMgZmxhZyBpZiB5b3UgYXJlIHJ1bm5pbmcgaW4g YW4gZW52aXJvbm1lbnQgd2l0aCBtdWx0aXBsZSB0aHJlYWRzLCBidXQgb25seSByYXJlbHkg bmVlZCB0byBzcGVjaWZ5IGl0IGluIGEgc2luZ2xlLXRocmVhZGVkIGVudmlyb25tZW50IHNp bmNlIHN0YWNrIG92ZXJmbG93IGlzIGF1dG9tYXRpY2FsbHkgZGV0ZWN0ZWQgb24gbmVhcmx5 IGFsbCBzeXN0ZW1zIGlmIHRoZXJlIGlzIG9ubHkgb25lIHN0YWNrLgouUHAKTm90ZSB0aGF0 IHRoaXMgc3dpdGNoIGRvZXMgbm90IGFjdHVhbGx5IGNhdXNlIGNoZWNraW5nIHRvIGJlIGRv bmU7IHRoZSBvcGVyYXRpbmcgc3lzdGVtIG11c3QgZG8gdGhhdC4KVGhlIHN3aXRjaCBjYXVz ZXMgZ2VuZXJhdGlvbiBvZiBjb2RlIHRvIGVuc3VyZSB0aGF0IHRoZSBvcGVyYXRpbmcgc3lz dGVtIHNlZXMgdGhlIHN0YWNrIGJlaW5nIGV4dGVuZGVkLgouUHAKLkl0IEZsIGZzdGFjay1s aW1pdC1yZWdpc3Rlcj0gTnMgQXIgcmVnCi5JdCBGbCBmc3RhY2stbGltaXQtc3ltYm9sPSBO cyBBciBzeW0KLkl0IEZsIGZuby1zdGFjay1saW1pdApHZW5lcmF0ZSBjb2RlIHRvIGVuc3Vy ZSB0aGF0IHRoZSBzdGFjayBkb2VzIG5vdCBncm93IGJleW9uZCBhIGNlcnRhaW4gdmFsdWUs IGVpdGhlciB0aGUgdmFsdWUgb2YgYSByZWdpc3RlciBvciB0aGUgYWRkcmVzcyBvZiBhIHN5 bWJvbC4KSWYgdGhlIHN0YWNrIHdvdWxkIGdyb3cgYmV5b25kIHRoZSB2YWx1ZSwgYSBzaWdu YWwgaXMgcmFpc2VkLgpGb3IgbW9zdCB0YXJnZXRzLCB0aGUgc2lnbmFsIGlzIHJhaXNlZCBi ZWZvcmUgdGhlIHN0YWNrIG92ZXJydW5zIHRoZSBib3VuZGFyeSwgc28gaXQgaXMgcG9zc2li bGUgdG8gY2F0Y2ggdGhlIHNpZ25hbCB3aXRob3V0IHRha2luZyBzcGVjaWFsIHByZWNhdXRp b25zLgouUHAKRm9yIGluc3RhbmNlLCBpZiB0aGUgc3RhY2sgc3RhcnRzIGF0IGFic29sdXRl IGFkZHJlc3MKLlN5IDB4ODAwMDAwMDAKYW5kIGdyb3dzIGRvd253YXJkcywgeW91IGNhbiB1 c2UgdGhlIGZsYWdzCi5GbCBmc3RhY2stbGltaXQtc3ltYm9sPV9fc3RhY2tfbGltaXQKYW5k Ci5GbCBXbCwtLWRlZnN5bSxfX3N0YWNrX2xpbWl0PTB4N2ZmZTAwMDAKdG8gZW5mb3JjZSBh IHN0YWNrIGxpbWl0IG9mIDEyOEtCLgpOb3RlIHRoYXQgdGhpcyBtYXkgb25seSB3b3JrIHdp dGggdGhlIEdOVSBsaW5rZXIuCi5QcAouSXQgRmwgZmFyZ3VtZW50LWFsaWFzCi5JdCBGbCBm YXJndW1lbnQtbm9hbGlhcwouSXQgRmwgZmFyZ3VtZW50LW5vYWxpYXMtZ2xvYmFsClNwZWNp ZnkgdGhlIHBvc3NpYmxlIHJlbGF0aW9uc2hpcHMgYW1vbmcgcGFyYW1ldGVycyBhbmQgYmV0 d2VlbiBwYXJhbWV0ZXJzIGFuZCBnbG9iYWwgZGF0YS4KLlBwCi5GbCBmYXJndW1lbnQtYWxp YXMKc3BlY2lmaWVzIHRoYXQgYXJndW1lbnRzIChwYXJhbWV0ZXJzKSBtYXkgYWxpYXMgZWFj aCBvdGhlciBhbmQgbWF5IGFsaWFzIGdsb2JhbCBzdG9yYWdlLgouRmwgZmFyZ3VtZW50LW5v YWxpYXMKc3BlY2lmaWVzIHRoYXQgYXJndW1lbnRzIGRvIG5vdCBhbGlhcyBlYWNoIG90aGVy LCBidXQgbWF5IGFsaWFzIGdsb2JhbCBzdG9yYWdlLgouRmwgZmFyZ3VtZW50LW5vYWxpYXMt Z2xvYmFsCnNwZWNpZmllcyB0aGF0IGFyZ3VtZW50cyBkbyBub3QgYWxpYXMgZWFjaCBvdGhl ciBhbmQgZG8gbm90IGFsaWFzIGdsb2JhbCBzdG9yYWdlLgouUHAKRWFjaCBsYW5ndWFnZSB3 aWxsIGF1dG9tYXRpY2FsbHkgdXNlIHdoYXRldmVyIG9wdGlvbiBpcyByZXF1aXJlZCBieSB0 aGUgbGFuZ3VhZ2Ugc3RhbmRhcmQuCllvdSBzaG91bGQgbm90IG5lZWQgdG8gdXNlIHRoZXNl IG9wdGlvbnMgeW91cnNlbGYuCi5QcAouSXQgRmwgZmxlYWRpbmctdW5kZXJzY29yZQpUaGlz IG9wdGlvbiBhbmQgaXRzIGNvdW50ZXJwYXJ0LAouRmwgZm5vLWxlYWRpbmctdW5kZXJzY29y ZSAsCmZvcmNpYmx5IGNoYW5nZSB0aGUgd2F5IEMgc3ltYm9scyBhcmUgcmVwcmVzZW50ZWQg aW4gdGhlIG9iamVjdCBmaWxlLgpPbmUgdXNlIGlzIHRvIGhlbHAgbGluayB3aXRoIGxlZ2Fj eSBhc3NlbWJseSBjb2RlLgouUHAKLlN5IFdhcm5pbmc6CnRoZQouRmwgZmxlYWRpbmctdW5k ZXJzY29yZQpzd2l0Y2ggY2F1c2VzIEdDQyB0byBnZW5lcmF0ZSBjb2RlIHRoYXQgaXMgbm90 IGJpbmFyeSBjb21wYXRpYmxlIHdpdGggY29kZSBnZW5lcmF0ZWQgd2l0aG91dCB0aGF0IHN3 aXRjaC4KVXNlIGl0IHRvIGNvbmZvcm0gdG8gYSBub24tZGVmYXVsdCBhcHBsaWNhdGlvbiBi aW5hcnkgaW50ZXJmYWNlLgpOb3QgYWxsIHRhcmdldHMgcHJvdmlkZSBjb21wbGV0ZSBzdXBw b3J0IGZvciB0aGlzIHN3aXRjaC4KLlBwCi5JdCBGbCBmdGxzLW1vZGVsPSBOcyBBciBtb2Rl bApBbHRlciB0aGUgdGhyZWFkLWxvY2FsIHN0b3JhZ2UgbW9kZWwgdG8gYmUgdXNlZC4KVGhl Ci5FbSBtb2RlbAphcmd1bWVudCBzaG91bGQgYmUgb25lIG9mCi5WYSBnbG9iYWwtZHluYW1p YyAsCi5WYSBsb2NhbC1keW5hbWljICwKLlZhIGluaXRpYWwtZXhlYwpvcgouVmEgbG9jYWwt ZXhlYyAuCi5QcApUaGUgZGVmYXVsdCB3aXRob3V0Ci5GbCBmcGljCmlzCi5WYSBpbml0aWFs LWV4ZWMgOwp3aXRoCi5GbCBmcGljCnRoZSBkZWZhdWx0IGlzCi5WYSBnbG9iYWwtZHluYW1p YyAuCi5QcAouSXQgRmwgZnZpc2liaWxpdHk9IE5zIEFyIGRlZmF1bHR8aW50ZXJuYWx8aGlk ZGVufHByb3RlY3RlZApTZXQgdGhlIGRlZmF1bHQgRUxGIGltYWdlIHN5bWJvbCB2aXNpYmls aXR5IHRvIHRoZSBzcGVjaWZpZWQgb3B0aW9uLS0tYWxsIHN5bWJvbHMgd2lsbCBiZSBtYXJr ZWQgd2l0aCB0aGlzIHVubGVzcyBvdmVycmlkZGVuIHdpdGhpbiB0aGUgY29kZS4KVXNpbmcg dGhpcyBmZWF0dXJlIGNhbiB2ZXJ5IHN1YnN0YW50aWFsbHkgaW1wcm92ZSBsaW5raW5nIGFu ZCBsb2FkIHRpbWVzIG9mIHNoYXJlZCBvYmplY3QgbGlicmFyaWVzLCBwcm9kdWNlIG1vcmUg b3B0aW1pemVkIGNvZGUsIHByb3ZpZGUgbmVhci1wZXJmZWN0IEFQSSBleHBvcnQgYW5kIHBy ZXZlbnQgc3ltYm9sIGNsYXNoZXMuCkl0IGlzCi5TeSBzdHJvbmdseQpyZWNvbW1lbmRlZCB0 aGF0IHlvdSB1c2UgdGhpcyBpbiBhbnkgc2hhcmVkIG9iamVjdHMgeW91IGRpc3RyaWJ1dGUu Ci5QcApEZXNwaXRlIHRoZSBub21lbmNsYXR1cmUsCi5WYSBkZWZhdWx0CmFsd2F5cyBtZWFu cyBwdWJsaWMgaWU7IGF2YWlsYWJsZSB0byBiZSBsaW5rZWQgYWdhaW5zdCBmcm9tIG91dHNp ZGUgdGhlIHNoYXJlZCBvYmplY3QuCi5WYSBwcm90ZWN0ZWQKYW5kCi5WYSBpbnRlcm5hbAph cmUgcHJldHR5IHVzZWxlc3MgaW4gcmVhbC13b3JsZCB1c2FnZSBzbyB0aGUgb25seSBvdGhl ciBjb21tb25seSB1c2VkIG9wdGlvbiB3aWxsIGJlCi5WYSBoaWRkZW4gLgpUaGUgZGVmYXVs dCBpZgouRmwgZnZpc2liaWxpdHkKaXNuJ3Qgc3BlY2lmaWVkIGlzCi5WYSBkZWZhdWx0ICwK aS5lLiwgbWFrZSBldmVyeSBzeW1ib2wgcHVibGljLS0tdGhpcyBjYXVzZXMgdGhlIHNhbWUg YmVoYXZpb3IgYXMgcHJldmlvdXMgdmVyc2lvbnMgb2YgR0NDLgouUHAKQSBnb29kIGV4cGxh bmF0aW9uIG9mIHRoZSBiZW5lZml0cyBvZmZlcmVkIGJ5IGVuc3VyaW5nIEVMRiBzeW1ib2xz IGhhdmUgdGhlIGNvcnJlY3QgdmlzaWJpbGl0eSBpcyBnaXZlbiBieSAiSG93IFRvIFdyaXRl IFNoYXJlZCBMaWJyYXJpZXMiIGJ5IFVscmljaCBEcmVwcGVyICh3aGljaCBjYW4gYmUgZm91 bmQgYXQKLkxrIGh0dHA6Ly9wZW9wbGUucmVkaGF0LmNvbS9+ZHJlcHBlci8gKQotLS1ob3dl dmVyIGEgc3VwZXJpb3Igc29sdXRpb24gbWFkZSBwb3NzaWJsZSBieSB0aGlzIG9wdGlvbiB0 byBtYXJraW5nIHRoaW5ncyBoaWRkZW4gd2hlbiB0aGUgZGVmYXVsdCBpcyBwdWJsaWMgaXMg dG8gbWFrZSB0aGUgZGVmYXVsdCBoaWRkZW4gYW5kIG1hcmsgdGhpbmdzIHB1YmxpYy4KVGhp cyBpcyB0aGUgbm9ybSB3aXRoIERMTCdzIG9uIFdpbmRvd3MgYW5kIHdpdGgKLkZsIGZ2aXNp YmlsaXR5PWhpZGRlbgphbmQKLlZhIF9fYXR0cmlidXRlX18gKCh2aXNpYmlsaXR5KCJkZWZh dWx0IikpKQppbnN0ZWFkIG9mCi5WYSBfX2RlY2xzcGVjKGRsbGV4cG9ydCkKeW91IGdldCBh bG1vc3QgaWRlbnRpY2FsIHNlbWFudGljcyB3aXRoIGlkZW50aWNhbCBzeW50YXguClRoaXMg aXMgYSBncmVhdCBib29uIHRvIHRob3NlIHdvcmtpbmcgd2l0aCBjcm9zcy1wbGF0Zm9ybSBw cm9qZWN0cy4KLlBwCkZvciB0aG9zZSBhZGRpbmcgdmlzaWJpbGl0eSBzdXBwb3J0IHRvIGV4 aXN0aW5nIGNvZGUsIHlvdSBtYXkgZmluZAouU3kgI3ByYWdtYSBHQ0MgdmlzaWJpbGl0eQpv ZiB1c2UuClRoaXMgd29ya3MgYnkgeW91IGVuY2xvc2luZyB0aGUgZGVjbGFyYXRpb25zIHlv dSB3aXNoIHRvIHNldCB2aXNpYmlsaXR5IGZvciB3aXRoIChmb3IgZXhhbXBsZSkKLlN5ICNw cmFnbWEgR0NDIHZpc2liaWxpdHkgcHVzaChoaWRkZW4pCmFuZAouU3kgI3ByYWdtYSBHQ0Mg dmlzaWJpbGl0eSBwb3AgLgpCZWFyIGluIG1pbmQgdGhhdCBzeW1ib2wgdmlzaWJpbGl0eSBz aG91bGQgYmUgdmlld2VkCi5TeSBhcyBwYXJ0IG9mIHRoZSBBUEkgaW50ZXJmYWNlIGNvbnRy YWN0CmFuZCB0aHVzIGFsbCBuZXcgY29kZSBzaG91bGQgYWx3YXlzIHNwZWNpZnkgdmlzaWJp bGl0eSB3aGVuIGl0IGlzIG5vdCB0aGUgZGVmYXVsdCBpZTsgZGVjbGFyYXRpb25zIG9ubHkg Zm9yIHVzZSB3aXRoaW4gdGhlIGxvY2FsIERTTyBzaG91bGQKLlN5IGFsd2F5cwpiZSBtYXJr ZWQgZXhwbGljaXRseSBhcyBoaWRkZW4gYXMgc28gdG8gYXZvaWQgUExUIGluZGlyZWN0aW9u IG92ZXJoZWFkcy0tLW1ha2luZyB0aGlzIGFidW5kYW50bHkgY2xlYXIgYWxzbyBhaWRzIHJl YWRhYmlsaXR5IGFuZCBzZWxmLWRvY3VtZW50YXRpb24gb2YgdGhlIGNvZGUuCk5vdGUgdGhh dCBkdWUgdG8gSVNPIEMrKyBzcGVjaWZpY2F0aW9uIHJlcXVpcmVtZW50cywgb3BlcmF0b3Ig bmV3IGFuZCBvcGVyYXRvciBkZWxldGUgbXVzdCBhbHdheXMgYmUgb2YgZGVmYXVsdCB2aXNp YmlsaXR5LgouUHAKQW4gb3ZlcnZpZXcgb2YgdGhlc2UgdGVjaG5pcXVlcywgdGhlaXIgYmVu ZWZpdHMgYW5kIGhvdyB0byB1c2UgdGhlbSBpcyBhdAouTGsgaHR0cDovL2djYy5nbnUub3Jn L3dpa2kvVmlzaWJpbGl0eSAuCi5QcAouRWwKLlNoIEVOVklST05NRU5UClRoaXMgc2VjdGlv biBkZXNjcmliZXMgc2V2ZXJhbCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdGhhdCBhZmZlY3Qg aG93IEdDQyBvcGVyYXRlcy4KU29tZSBvZiB0aGVtIHdvcmsgYnkgc3BlY2lmeWluZyBkaXJl Y3RvcmllcyBvciBwcmVmaXhlcyB0byB1c2Ugd2hlbiBzZWFyY2hpbmcgZm9yIHZhcmlvdXMg a2luZHMgb2YgZmlsZXMuClNvbWUgYXJlIHVzZWQgdG8gc3BlY2lmeSBvdGhlciBhc3BlY3Rz IG9mIHRoZSBjb21waWxhdGlvbiBlbnZpcm9ubWVudC4KLlBwCk5vdGUgdGhhdCB5b3UgY2Fu IGFsc28gc3BlY2lmeSBwbGFjZXMgdG8gc2VhcmNoIHVzaW5nIG9wdGlvbnMgc3VjaCBhcwou RmwgQiAsCi5GbCBJCmFuZAouRmwgTCAuClRoZXNlIHRha2UgcHJlY2VkZW5jZSBvdmVyIHBs YWNlcyBzcGVjaWZpZWQgdXNpbmcgZW52aXJvbm1lbnQgdmFyaWFibGVzLCB3aGljaCBpbiB0 dXJuIHRha2UgcHJlY2VkZW5jZSBvdmVyIHRob3NlIHNwZWNpZmllZCBieSB0aGUgY29uZmln dXJhdGlvbiBvZiBHQ0MuCi5QcAouQmwgLXRhZyAtd2lkdGggeHgKLkl0IFN5IExBTkcgTnMK Lkl0IFN5IExDX0NUWVBFIE5zCi5JdCBTeSBMQ19NRVNTQUdFUyBOcwouSXQgU3kgTENfQUxM IE5zClRoZXNlIGVudmlyb25tZW50IHZhcmlhYmxlcyBjb250cm9sIHRoZSB3YXkgdGhhdCBH Q0MgdXNlcyBsb2NhbGl6YXRpb24gaW5mb3JtYXRpb24gdGhhdCBhbGxvdyBHQ0MgdG8gd29y ayB3aXRoIGRpZmZlcmVudCBuYXRpb25hbCBjb252ZW50aW9ucy4KR0NDIGluc3BlY3RzIHRo ZSBsb2NhbGUgY2F0ZWdvcmllcwouU3kgTENfQ1RZUEUKYW5kCi5TeSBMQ19NRVNTQUdFUwpp ZiBpdCBoYXMgYmVlbiBjb25maWd1cmVkIHRvIGRvIHNvLgpUaGVzZSBsb2NhbGUgY2F0ZWdv cmllcyBjYW4gYmUgc2V0IHRvIGFueSB2YWx1ZSBzdXBwb3J0ZWQgYnkgeW91ciBpbnN0YWxs YXRpb24uCkEgdHlwaWNhbCB2YWx1ZSBpcwouU3kgZW5fR0IuVVRGLTgKZm9yIEVuZ2xpc2gg aW4gdGhlIFVuaXRlZCBLaW5nZG9tIGVuY29kZWQgaW4gVVRGLTguCi5QcApUaGUKLlN5IExD X0NUWVBFCmVudmlyb25tZW50IHZhcmlhYmxlIHNwZWNpZmllcyBjaGFyYWN0ZXIgY2xhc3Np ZmljYXRpb24uCkdDQyB1c2VzIGl0IHRvIGRldGVybWluZSB0aGUgY2hhcmFjdGVyIGJvdW5k YXJpZXMgaW4gYSBzdHJpbmc7IHRoaXMgaXMgbmVlZGVkIGZvciBzb21lIG11bHRpYnl0ZSBl bmNvZGluZ3MgdGhhdCBjb250YWluIHF1b3RlIGFuZCBlc2NhcGUgY2hhcmFjdGVycyB0aGF0 IHdvdWxkIG90aGVyd2lzZSBiZSBpbnRlcnByZXRlZCBhcyBhIHN0cmluZyBlbmQgb3IgZXNj YXBlLgouUHAKVGhlCi5TeSBMQ19NRVNTQUdFUwplbnZpcm9ubWVudCB2YXJpYWJsZSBzcGVj aWZpZXMgdGhlIGxhbmd1YWdlIHRvIHVzZSBpbiBkaWFnbm9zdGljIG1lc3NhZ2VzLgouUHAK SWYgdGhlCi5TeSBMQ19BTEwKZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgc2V0LCBpdCBvdmVy cmlkZXMgdGhlIHZhbHVlIG9mCi5TeSBMQ19DVFlQRQphbmQKLlN5IExDX01FU1NBR0VTIDsK b3RoZXJ3aXNlLAouU3kgTENfQ1RZUEUKYW5kCi5TeSBMQ19NRVNTQUdFUwpkZWZhdWx0IHRv IHRoZSB2YWx1ZSBvZiB0aGUKLlN5IExBTkcKZW52aXJvbm1lbnQgdmFyaWFibGUuCklmIG5v bmUgb2YgdGhlc2UgdmFyaWFibGVzIGFyZSBzZXQsIEdDQyBkZWZhdWx0cyB0byB0cmFkaXRp b25hbCBDIEVuZ2xpc2ggYmVoYXZpb3IuCi5QcAouSXQgU3kgVE1QRElSIE5zCklmCi5TeSBU TVBESVIKaXMgc2V0LCBpdCBzcGVjaWZpZXMgdGhlIGRpcmVjdG9yeSB0byB1c2UgZm9yIHRl bXBvcmFyeSBmaWxlcy4KR0NDIHVzZXMgdGVtcG9yYXJ5IGZpbGVzIHRvIGhvbGQgdGhlIG91 dHB1dCBvZiBvbmUgc3RhZ2Ugb2YgY29tcGlsYXRpb24gd2hpY2ggaXMgdG8gYmUgdXNlZCBh cyBpbnB1dCB0byB0aGUgbmV4dCBzdGFnZTogZm9yIGV4YW1wbGUsIHRoZSBvdXRwdXQgb2Yg dGhlIHByZXByb2Nlc3Nvciwgd2hpY2ggaXMgdGhlIGlucHV0IHRvIHRoZSBjb21waWxlciBw cm9wZXIuCi5QcAouSXQgU3kgR0NDX0VYRUNfUFJFRklYIE5zCklmCi5TeSBHQ0NfRVhFQ19Q UkVGSVgKaXMgc2V0LCBpdCBzcGVjaWZpZXMgYSBwcmVmaXggdG8gdXNlIGluIHRoZSBuYW1l cyBvZiB0aGUgc3VicHJvZ3JhbXMgZXhlY3V0ZWQgYnkgdGhlIGNvbXBpbGVyLgpObyBzbGFz aCBpcyBhZGRlZCB3aGVuIHRoaXMgcHJlZml4IGlzIGNvbWJpbmVkIHdpdGggdGhlIG5hbWUg b2YgYSBzdWJwcm9ncmFtLCBidXQgeW91IGNhbiBzcGVjaWZ5IGEgcHJlZml4IHRoYXQgZW5k cyB3aXRoIGEgc2xhc2ggaWYgeW91IHdpc2guCi5QcApJZgouU3kgR0NDX0VYRUNfUFJFRklY CmlzIG5vdCBzZXQsIEdDQyB3aWxsIGF0dGVtcHQgdG8gZmlndXJlIG91dCBhbiBhcHByb3By aWF0ZSBwcmVmaXggdG8gdXNlIGJhc2VkIG9uIHRoZSBwYXRobmFtZSBpdCB3YXMgaW52b2tl ZCB3aXRoLgouUHAKSWYgR0NDIGNhbm5vdCBmaW5kIHRoZSBzdWJwcm9ncmFtIHVzaW5nIHRo ZSBzcGVjaWZpZWQgcHJlZml4LCBpdCB0cmllcyBsb29raW5nIGluIHRoZSB1c3VhbCBwbGFj ZXMgZm9yIHRoZSBzdWJwcm9ncmFtLgouUHAKVGhlIGRlZmF1bHQgdmFsdWUgb2YKLlN5IEdD Q19FWEVDX1BSRUZJWAppcwouUGEgcHJlZml4L2xpYi9nY2MvCndoZXJlCi5FbSBwcmVmaXgK aXMgdGhlIHZhbHVlIG9mCi5WYSBwcmVmaXgKd2hlbiB5b3UgcmFuIHRoZQouUGEgY29uZmln dXJlCnNjcmlwdC4KLlBwCk90aGVyIHByZWZpeGVzIHNwZWNpZmllZCB3aXRoCi5GbCBCCnRh a2UgcHJlY2VkZW5jZSBvdmVyIHRoaXMgcHJlZml4LgouUHAKVGhpcyBwcmVmaXggaXMgYWxz byB1c2VkIGZvciBmaW5kaW5nIGZpbGVzIHN1Y2ggYXMKLlBhIGNydDAubwp0aGF0IGFyZSB1 c2VkIGZvciBsaW5raW5nLgouUHAKSW4gYWRkaXRpb24sIHRoZSBwcmVmaXggaXMgdXNlZCBp biBhbiB1bnVzdWFsIHdheSBpbiBmaW5kaW5nIHRoZSBkaXJlY3RvcmllcyB0byBzZWFyY2gg Zm9yIGhlYWRlciBmaWxlcy4KRm9yIGVhY2ggb2YgdGhlIHN0YW5kYXJkIGRpcmVjdG9yaWVz IHdob3NlIG5hbWUgbm9ybWFsbHkgYmVnaW5zIHdpdGgKLlN5IC91c3IvbG9jYWwvbGliL2dj YwoobW9yZSBwcmVjaXNlbHksIHdpdGggdGhlIHZhbHVlIG9mCi5TeSBHQ0NfSU5DTFVERV9E SVIgKSAsCkdDQyB0cmllcyByZXBsYWNpbmcgdGhhdCBiZWdpbm5pbmcgd2l0aCB0aGUgc3Bl Y2lmaWVkIHByZWZpeCB0byBwcm9kdWNlIGFuIGFsdGVybmF0ZSBkaXJlY3RvcnkgbmFtZS4K VGh1cywgd2l0aAouU3kgLUJmb28vICwKR0NDIHdpbGwgc2VhcmNoCi5QYSBmb28vYmFyCndo ZXJlIGl0IHdvdWxkIG5vcm1hbGx5IHNlYXJjaAouUGEgL3Vzci9sb2NhbC9saWIvYmFyIC4K VGhlc2UgYWx0ZXJuYXRlIGRpcmVjdG9yaWVzIGFyZSBzZWFyY2hlZCBmaXJzdDsgdGhlIHN0 YW5kYXJkIGRpcmVjdG9yaWVzIGNvbWUgbmV4dC4KLlBwCi5JdCBTeSBDT01QSUxFUl9QQVRI IE5zClRoZSB2YWx1ZSBvZgouU3kgQ09NUElMRVJfUEFUSAppcyBhIGNvbG9uLXNlcGFyYXRl ZCBsaXN0IG9mIGRpcmVjdG9yaWVzLCBtdWNoIGxpa2UKLlN5IFBBVEggLgpHQ0MgdHJpZXMg dGhlIGRpcmVjdG9yaWVzIHRodXMgc3BlY2lmaWVkIHdoZW4gc2VhcmNoaW5nIGZvciBzdWJw cm9ncmFtcywgaWYgaXQgY2FuJ3QgZmluZCB0aGUgc3VicHJvZ3JhbXMgdXNpbmcKLlN5IEdD Q19FWEVDX1BSRUZJWCAuCi5QcAouSXQgU3kgTElCUkFSWV9QQVRIIE5zClRoZSB2YWx1ZSBv ZgouU3kgTElCUkFSWV9QQVRICmlzIGEgY29sb24tc2VwYXJhdGVkIGxpc3Qgb2YgZGlyZWN0 b3JpZXMsIG11Y2ggbGlrZQouU3kgUEFUSCAuCldoZW4gY29uZmlndXJlZCBhcyBhIG5hdGl2 ZSBjb21waWxlciwgR0NDIHRyaWVzIHRoZSBkaXJlY3RvcmllcyB0aHVzIHNwZWNpZmllZCB3 aGVuIHNlYXJjaGluZyBmb3Igc3BlY2lhbCBsaW5rZXIgZmlsZXMsIGlmIGl0IGNhbid0IGZp bmQgdGhlbSB1c2luZwouU3kgR0NDX0VYRUNfUFJFRklYIC4KTGlua2luZyB1c2luZyBHQ0Mg YWxzbyB1c2VzIHRoZXNlIGRpcmVjdG9yaWVzIHdoZW4gc2VhcmNoaW5nIGZvciBvcmRpbmFy eSBsaWJyYXJpZXMgZm9yIHRoZQouRmwgbApvcHRpb24gKGJ1dCBkaXJlY3RvcmllcyBzcGVj aWZpZWQgd2l0aAouRmwgTApjb21lIGZpcnN0KS4KLlBwCi5JdCBTeSBMQU5HIE5zClRoaXMg dmFyaWFibGUgaXMgdXNlZCB0byBwYXNzIGxvY2FsZSBpbmZvcm1hdGlvbiB0byB0aGUgY29t cGlsZXIuCk9uZSB3YXkgaW4gd2hpY2ggdGhpcyBpbmZvcm1hdGlvbiBpcyB1c2VkIGlzIHRv IGRldGVybWluZSB0aGUgY2hhcmFjdGVyIHNldCB0byBiZSB1c2VkIHdoZW4gY2hhcmFjdGVy IGxpdGVyYWxzLCBzdHJpbmcgbGl0ZXJhbHMgYW5kIGNvbW1lbnRzIGFyZSBwYXJzZWQgaW4g QyBhbmQgQysrLgpXaGVuIHRoZSBjb21waWxlciBpcyBjb25maWd1cmVkIHRvIGFsbG93IG11 bHRpYnl0ZSBjaGFyYWN0ZXJzLCB0aGUgZm9sbG93aW5nIHZhbHVlcyBmb3IKLlN5IExBTkcK YXJlIHJlY29nbml6ZWQ6Ci5QcAouQmwgLXRhZyAtd2lkdGggeHgKLkl0IFN5IEMtSklTIE5z ClJlY29nbml6ZSBKSVMgY2hhcmFjdGVycy4KLlBwCi5JdCBTeSBDLVNKSVMgTnMKUmVjb2du aXplIFNKSVMgY2hhcmFjdGVycy4KLlBwCi5JdCBTeSBDLUVVQ0pQIE5zClJlY29nbml6ZSBF VUNKUCBjaGFyYWN0ZXJzLgouUHAKLkVsCklmCi5TeSBMQU5HCmlzIG5vdCBkZWZpbmVkLCBv ciBpZiBpdCBoYXMgc29tZSBvdGhlciB2YWx1ZSwgdGhlbiB0aGUgY29tcGlsZXIgd2lsbCB1 c2UgbWJsZW4gYW5kIG1idG93YyBhcyBkZWZpbmVkIGJ5IHRoZSBkZWZhdWx0IGxvY2FsZSB0 byByZWNvZ25pemUgYW5kIHRyYW5zbGF0ZSBtdWx0aWJ5dGUgY2hhcmFjdGVycy4KLlBwCi5F bApTb21lIGFkZGl0aW9uYWwgZW52aXJvbm1lbnRzIHZhcmlhYmxlcyBhZmZlY3QgdGhlIGJl aGF2aW9yIG9mIHRoZSBwcmVwcm9jZXNzb3IuCi5QcAouQmwgLXRhZyAtd2lkdGggeHgKLkl0 IFN5IENQQVRIIE5zCi5JdCBTeSBDX0lOQ0xVREVfUEFUSCBOcwouSXQgU3kgQ1BMVVNfSU5D TFVERV9QQVRIIE5zCi5JdCBTeSBPQkpDX0lOQ0xVREVfUEFUSCBOcwpFYWNoIHZhcmlhYmxl J3MgdmFsdWUgaXMgYSBsaXN0IG9mIGRpcmVjdG9yaWVzIHNlcGFyYXRlZCBieSBhIHNwZWNp YWwgY2hhcmFjdGVyLCBtdWNoIGxpa2UKLlN5IFBBVEggLAppbiB3aGljaCB0byBsb29rIGZv ciBoZWFkZXIgZmlsZXMuClRoZSBzcGVjaWFsIGNoYXJhY3RlciwKLlZhIFBBVEhfU0VQQVJB VE9SICwKaXMgdGFyZ2V0LWRlcGVuZGVudCBhbmQgZGV0ZXJtaW5lZCBhdCBHQ0MgYnVpbGQg dGltZS4KRm9yIE1pY3Jvc29mdCBXaW5kb3dzLWJhc2VkIHRhcmdldHMgaXQgaXMgYSBzZW1p Y29sb24sIGFuZCBmb3IgYWxtb3N0IGFsbCBvdGhlciB0YXJnZXRzIGl0IGlzIGEgY29sb24u Ci5QcAouU3kgQ1BBVEgKc3BlY2lmaWVzIGEgbGlzdCBvZiBkaXJlY3RvcmllcyB0byBiZSBz ZWFyY2hlZCBhcyBpZiBzcGVjaWZpZWQgd2l0aAouRmwgSSAsCmJ1dCBhZnRlciBhbnkgcGF0 aHMgZ2l2ZW4gd2l0aAouRmwgSQpvcHRpb25zIG9uIHRoZSBjb21tYW5kIGxpbmUuClRoaXMg ZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgdXNlZCByZWdhcmRsZXNzIG9mIHdoaWNoIGxhbmd1 YWdlIGlzIGJlaW5nIHByZXByb2Nlc3NlZC4KLlBwClRoZSByZW1haW5pbmcgZW52aXJvbm1l bnQgdmFyaWFibGVzIGFwcGx5IG9ubHkgd2hlbiBwcmVwcm9jZXNzaW5nIHRoZSBwYXJ0aWN1 bGFyIGxhbmd1YWdlIGluZGljYXRlZC4KRWFjaCBzcGVjaWZpZXMgYSBsaXN0IG9mIGRpcmVj dG9yaWVzIHRvIGJlIHNlYXJjaGVkIGFzIGlmIHNwZWNpZmllZCB3aXRoCi5GbCBpc3lzdGVt ICwKYnV0IGFmdGVyIGFueSBwYXRocyBnaXZlbiB3aXRoCi5GbCBpc3lzdGVtCm9wdGlvbnMg b24gdGhlIGNvbW1hbmQgbGluZS4KLlBwCkluIGFsbCB0aGVzZSB2YXJpYWJsZXMsIGFuIGVt cHR5IGVsZW1lbnQgaW5zdHJ1Y3RzIHRoZSBjb21waWxlciB0byBzZWFyY2ggaXRzIGN1cnJl bnQgd29ya2luZyBkaXJlY3RvcnkuCkVtcHR5IGVsZW1lbnRzIGNhbiBhcHBlYXIgYXQgdGhl IGJlZ2lubmluZyBvciBlbmQgb2YgYSBwYXRoLgpGb3IgaW5zdGFuY2UsIGlmIHRoZSB2YWx1 ZSBvZgouU3kgQ1BBVEgKaXMKLlZhIDovc3BlY2lhbC9pbmNsdWRlICwKdGhhdCBoYXMgdGhl IHNhbWUgZWZmZWN0IGFzCi5TeSAtSS4gLUkvc3BlY2lhbC9pbmNsdWRlIC4KLlBwCi5JdCBT eSBERVBFTkRFTkNJRVNfT1VUUFVUIE5zCklmIHRoaXMgdmFyaWFibGUgaXMgc2V0LCBpdHMg dmFsdWUgc3BlY2lmaWVzIGhvdyB0byBvdXRwdXQgZGVwZW5kZW5jaWVzIGZvciBNYWtlIGJh c2VkIG9uIHRoZSBub24tc3lzdGVtIGhlYWRlciBmaWxlcyBwcm9jZXNzZWQgYnkgdGhlIGNv bXBpbGVyLgpTeXN0ZW0gaGVhZGVyIGZpbGVzIGFyZSBpZ25vcmVkIGluIHRoZSBkZXBlbmRl bmN5IG91dHB1dC4KLlBwClRoZSB2YWx1ZSBvZgouU3kgREVQRU5ERU5DSUVTX09VVFBVVApj YW4gYmUganVzdCBhIGZpbGUgbmFtZSwgaW4gd2hpY2ggY2FzZSB0aGUgTWFrZSBydWxlcyBh cmUgd3JpdHRlbiB0byB0aGF0IGZpbGUsIGd1ZXNzaW5nIHRoZSB0YXJnZXQgbmFtZSBmcm9t IHRoZSBzb3VyY2UgZmlsZSBuYW1lLgpPciB0aGUgdmFsdWUgY2FuIGhhdmUgdGhlIGZvcm0K LkVtIGZpbGUKXH4KLkVtIHRhcmdldCAsCmluIHdoaWNoIGNhc2UgdGhlIHJ1bGVzIGFyZSB3 cml0dGVuIHRvIGZpbGUKLkVtIGZpbGUKdXNpbmcKLkVtIHRhcmdldAphcyB0aGUgdGFyZ2V0 IG5hbWUuCi5QcApJbiBvdGhlciB3b3JkcywgdGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBp cyBlcXVpdmFsZW50IHRvIGNvbWJpbmluZyB0aGUgb3B0aW9ucwouRmwgTU0KYW5kCi5GbCBN RiAsCndpdGggYW4gb3B0aW9uYWwKLkZsIE1UCnN3aXRjaCB0b28uCi5QcAouSXQgU3kgU1VO UFJPX0RFUEVOREVOQ0lFUyBOcwpUaGlzIHZhcmlhYmxlIGlzIHRoZSBzYW1lIGFzCi5TeSBE RVBFTkRFTkNJRVNfT1VUUFVUCihzZWUgYWJvdmUpLCBleGNlcHQgdGhhdCBzeXN0ZW0gaGVh ZGVyIGZpbGVzIGFyZSBub3QgaWdub3JlZCwgc28gaXQgaW1wbGllcwouRmwgTQpyYXRoZXIg dGhhbgouRmwgTU0gLgpIb3dldmVyLCB0aGUgZGVwZW5kZW5jZSBvbiB0aGUgbWFpbiBpbnB1 dCBmaWxlIGlzIG9taXR0ZWQuCi5QcAouSXQgU3kgQ1BQX1JFU1RSSUNURUQgTnMKSWYgdGhp cyB2YXJpYWJsZSBpcyBkZWZpbmVkLCBjcHAgd2lsbCBza2lwIGFueSBpbmNsdWRlIGZpbGUg d2hpY2ggaXMgbm90IGEgcmVndWxhciBmaWxlLCBhbmQgd2lsbCBjb250aW51ZSBzZWFyY2hp bmcgZm9yIHRoZSByZXF1ZXN0ZWQgbmFtZSAodGhpcyBpcyBhbHdheXMgZG9uZSBpZiB0aGUg Zm91bmQgZmlsZSBpcyBhIGRpcmVjdG9yeSkuCi5QcAouRWwKLlNoIEJVR1MKRm9yIGluc3Ry dWN0aW9ucyBvbiByZXBvcnRpbmcgYnVncywgc2VlCi5MayBodHRwOi8vZ2NjLmdudS5vcmcv YnVncy5odG1sIC4KLlNoIEZPT1ROT1RFUwouQmwgLXRhZyAtd2lkdGggeHgKLkl0IDEuCk9u IHNvbWUgc3lzdGVtcywKLlN5IGdjYyAtc2hhcmVkCm5lZWRzIHRvIGJ1aWxkIHN1cHBsZW1l bnRhcnkgc3R1YiBjb2RlIGZvciBjb25zdHJ1Y3RvcnMgdG8gd29yay4KT24gbXVsdGktbGli YmVkIHN5c3RlbXMsCi5TeSBnY2MgLXNoYXJlZAptdXN0IHNlbGVjdCB0aGUgY29ycmVjdCBz dXBwb3J0IGxpYnJhcmllcyB0byBsaW5rIGFnYWluc3QuCkZhaWxpbmcgdG8gc3VwcGx5IHRo ZSBjb3JyZWN0IGZsYWdzIG1heSBsZWFkIHRvIHN1YnRsZSBkZWZlY3RzLgpTdXBwbHlpbmcg dGhlbSBpbiBjYXNlcyB3aGVyZSB0aGV5IGFyZSBub3QgbmVjZXNzYXJ5IGlzIGlubm9jdW91 cy4KLlBwCi5FbAouU2ggU0VFIEFMU08KZ3BsKDcpLCBnZmRsKDcpLCBmc2YtZnVuZGluZyg3 KSwgY3BwKDEpLCBnY292KDEpLCBhcygxKSwgbGQoMSksIGdkYigxKSwgYWRiKDEpLCBkYngo MSksIHNkYigxKSBhbmQgdGhlIEluZm8gZW50cmllcyBmb3IKLlBhIGdjYyAsCi5QYSBjcHAg LAouUGEgYXMgLAouUGEgbGQgLAouUGEgYmludXRpbHMKYW5kCi5QYSBnZGIgLgouU2ggQVVU SE9SClNlZSB0aGUgSW5mbyBlbnRyeSBmb3IKLk5tIGdjYyAsCm9yCi5MayBodHRwOi8vZ2Nj LmdudS5vcmcvb25saW5lZG9jcy9nY2MvQ29udHJpYnV0b3JzLmh0bWwgLApmb3IgY29udHJp YnV0b3JzIHRvIEdDQy4KLlNoIENPUFlSSUdIVApDb3B5cmlnaHQgKGMpIDE5ODgsIDE5ODks IDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAs IDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCi5QcApQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gY29weSwgZGlzdHJpYnV0ZSBh bmQvb3IgbW9kaWZ5IHRoaXMgZG9jdW1lbnQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg RnJlZSBEb2N1bWVudGF0aW9uIExpY2Vuc2UsIFZlcnNpb24gMS4yIG9yIGFueSBsYXRlciB2 ZXJzaW9uIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB3aXRo IHRoZSBJbnZhcmlhbnQgU2VjdGlvbnMgYmVpbmcgIkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIiBhbmQgIkZ1bmRpbmcgRnJlZSBTb2Z0d2FyZSIsIHRoZSBGcm9udC1Db3ZlciB0ZXh0 cyBiZWluZyAoYSkgKHNlZSBiZWxvdyksIGFuZCB3aXRoIHRoZSBCYWNrLUNvdmVyIFRleHRz IGJlaW5nIChiKSAoc2VlIGJlbG93KS4KQSBjb3B5IG9mIHRoZSBsaWNlbnNlIGlzIGluY2x1 ZGVkIGluIHRoZSBnZmRsKDcpIG1hbiBwYWdlLgouUHAKKGEpIFRoZSBGU0YncyBGcm9udC1D b3ZlciBUZXh0IGlzOgouUHAKIEEgR05VIE1hbnVhbAouUHAKKGIpIFRoZSBGU0YncyBCYWNr LUNvdmVyIFRleHQgaXM6Ci5QcApZb3UgaGF2ZSBmcmVlZG9tIHRvIGNvcHkgYW5kIG1vZGlm eSB0aGlzIEdOVSBNYW51YWwsIGxpa2UgR05VIHNvZnR3YXJlLgpDb3BpZXMgcHVibGlzaGVk IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gcmFpc2UgZnVuZHMgZm9yIEdOVSBk ZXZlbG9wbWVudC4K --------------010807060904050207000306-- -- To unsubscribe send an email to tech+unsubscribe@mdocml.bsd.lv