Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kgAZE-0006hV-Rg for pgsql-hackers@arkaria.postgresql.org; Fri, 20 Nov 2020 17:51:30 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kgAZD-00079Q-Nv for pgsql-hackers@arkaria.postgresql.org; Fri, 20 Nov 2020 17:51:27 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kgAZC-00079I-S8 for pgsql-hackers@lists.postgresql.org; Fri, 20 Nov 2020 17:51:27 +0000 Received: from forward104j.mail.yandex.net ([2a02:6b8:0:801:2::107]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kgAZ4-0000r5-VQ for pgsql-hackers@postgresql.org; Fri, 20 Nov 2020 17:51:25 +0000 Received: from mxback27o.mail.yandex.net (mxback27o.mail.yandex.net [IPv6:2a02:6b8:0:1a2d::78]) by forward104j.mail.yandex.net (Yandex) with ESMTP id 8C6AA4A1118; Fri, 20 Nov 2020 20:51:14 +0300 (MSK) Received: from localhost (localhost [::1]) by mxback27o.mail.yandex.net (mxback/Yandex) with ESMTP id sWQSIXGr44-pCu8WFYW; Fri, 20 Nov 2020 20:51:13 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1605894673; bh=f/0lMW50wvf36xRlZde6o/SAeaafILSM52Pv6zqrgq4=; h=Message-Id:Cc:Subject:In-Reply-To:Date:References:To:From; b=FRoIVCjaYDZGxB9N4dHPcQTjmIWffS92dnelUxxtajKQ133yS4rmq4TMfCdKj/0zW Odq/wBTjZKkusGQWbp5ZG1nBKhShXnVoNtBfB+MwqPMppU3dx3ak1Z1jKz6azpqhzt wCmeCKLpvXpMJ/FFusmP+DAt3HqnMclM8uzO2Uq0= Authentication-Results: mxback27o.mail.yandex.net; dkim=pass header.i=@yandex.ru Received: by sas1-c37eebe3eab8.qloud-c.yandex.net with HTTP; Fri, 20 Nov 2020 20:51:12 +0300 From: =?utf-8?B?0KnQtdC60LjQvSDQr9GA0L7RgdC70LDQsg==?= To: Justin Pryzby , Heikki Linnakangas Cc: "pgsql-hackers@postgresql.org" , David G Johnston , Teodor Sigaev , Oleg Bartunov , Dmitry Ivanov , Alexander Korotkov , Arthur Zakirov In-Reply-To: <20201019164529.GH9241@telsasoft.com> References: <1599765595731-0.post@n3.nabble.com> <20200919175558.GD30557@telsasoft.com> <20200923145839.GP23631@telsasoft.com> <20200925143000.GM23631@telsasoft.com> <20201005191922.GE17626@telsasoft.com> <9e5da324-4566-0a68-d6d4-c693b08f8f51@iki.fi> <20201019164529.GH9241@telsasoft.com> Subject: Re: Probable documentation errors or improvements MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Fri, 20 Nov 2020 20:51:12 +0300 Message-Id: <5937341605894405@mail.yandex.ru> Content-Type: multipart/mixed; boundary="----==--bound.353431.sas1-c37eebe3eab8.qloud-c.yandex.net" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk ------==--bound.353431.sas1-c37eebe3eab8.qloud-c.yandex.net Content-Transfer-Encoding: base64 Content-Type: text/html; charset=utf-8 PGRpdj5UaGFuayB5b3UgZm9yIHByZXBhcmluZyB0aGUgcGF0Y2hlcywgYW5kIEhlaWtraSBMaW5u YWthbmdhcyBmb3IgcHVzaGluZyB0aG9zZSE8L2Rpdj48YmxvY2txdW90ZT48cD5ZYXJvc2xhdiwg Y291bGQgeW91IHByZXBhcmUgYSBwYXRjaCBmb3IgeW91ciByZW1haW5pbmcgc3VnZ2VzdGlvbnMg PzxiciAvPkkgc3VnZ2VzdCB0byBpbmNsdWRlIGp1c3QgdGhlIGhhbmRmdWwgb2YgaXRlbXMgd2hp Y2ggYXJlIG1vc3QgaW1wb3J0YW50IChtb3N0PGJyIC8+d3JvbmcvYW1iaWd1b3VzL2NvbmZ1c2lu ZykuPC9wPjwvYmxvY2txdW90ZT48ZGl2PjxkaXY+TGV0IG1lIHdyaXRlIHRoaXMgYWdhaW46IEkn bSBub3QgYSBuYXRpdmUgc3BlYWtlciwgc28gbm90IHN1cmUgdGhvc2UgYXJlIGFjdHVhbGx5IGlu Y29ycmVjdCwgYW5kIGNhbid0IG9mZmVyIG5vbi10cml2aWFsIHN1Z2dlc3Rpb25zLjwvZGl2Pjxk aXY+wqA8L2Rpdj48ZGl2PkFueXdheSwgSSd2ZSB0cmllZCB0byByZW1vdmUgdGhlIGFscmVhZHkg Zml4ZWQgdGhpbmdzIChhbHNvIGJ5IG90aGVyIHBhdGNoZXMgbWVudGlvbmVkIGluIHRoZSB0aHJl YWQpIGZyb20gbXkgaW5pdGlhbCBsaXN0LCBhbmQgYXR0YWNoIGl0LjwvZGl2PjxkaXY+wqA8L2Rp dj48ZGl2PkFsc28sIEkndmUgbG9va2VkIG92ZXIgdGhlIHB1c2hlZCBwYXRjaGVzLCBhbmQgc3Bv dHRlZCB0aGVzZTo8L2Rpdj48ZGl2PsKgPC9kaXY+PGRpdj4tLSBodHRwczovL3d3dy5wb3N0Z3Jl c3FsLm9yZy9kb2NzL2N1cnJlbnQvY2F0YWxvZy1wZy1hdXRoaWQuaHRtbDwvZGl2PjxkaXY+wqA8 L2Rpdj48ZGl2PlRhYmxlIDUxLjguIHBnX2F1dGhpZCBDb2x1bW5zPC9kaXY+PGRpdj4tLSBTb21l IHJvd3MgaW4gdGhlIGRlc2NyaXB0aW9uIGhhdmUgcG9pbnQgYXQgdGhlIGVuZCwgc29tZSBkb24n dCAoc2VlbWluZ2x5IGF0IHJhbmRvbSkuPC9kaXY+PGRpdj7CoDwvZGl2PjxkaXY+VGhlIGFwcGxp ZWQgcGF0Y2ggZml4ZWQgb25seSBvbmUgb2YgdGhvc2UgY2FzZXMuLi4gYWxzbyBzZWVtaW5nbHkg YXQgcmFuZG9tLiBXb3VsZCBiZSBuaWNlIGlmIHNvbWVvbmUgcmVhZCB0aGUgd2hvbGUgdGFibGUg YW5kIG1hZGUgYSBkZWNpc2lvbiBhYm91dCBob3cgaXQgc2hvdWxkIGJlLiBJZiAoanVzdCBndWVz c2luZyBoZXJlKSB0aGUgcnVsZSBpcyAidGhlcmUgc2hvdWxkIGJlIG5vIHBvaW50IGlmIGl0J3Mg anVzdCBvbmUgc2VudGVuY2UiLCB0aGVuICJSb2xlIGJ5cGFzc2VzIGV2ZXJ5IHJvdyBsZXZlbCBz ZWN1cml0eSBwb2xpY3ksIHNlZSBTZWN0aW9uIDUuOCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iIGlz IHN0aWxsIHdyb25nLjwvZGl2PjxkaXY+wqA8L2Rpdj48ZGl2PlRoZW4sIHdoaWxlICI7IiBhZnRl ciAiRU5EIiB3ZXJlIGFkZGVkIGluIGRvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwsIGJ1dCBpbiBk b2Mvc3JjL3NnbWwvZnVuYy5zZ21sIHRoZXkgc3RpbGwgd2VyZSBub3QuPC9kaXY+PGRpdj7CoDwv ZGl2PjxkaXY+RmluYWxseSwgd2hpbGUgdGhlIHBhdGNoZXMgZml4IGEgbG90IG9mIHdoaXRlc3Bh Y2UgaW4gZnVuY3Rpb24gYXJndW1lbnRzLCB0aGUgb3JpZ2luYWwgY29tcGxhaW50IGFib3V0IGRp digpIGFuZCBtb2QoKSBpcyBzdGlsbCBub3QgZml4ZWQuPC9kaXY+PC9kaXY+PGRpdj7CoDwvZGl2 PjxkaXY+LS3CoDwvZGl2PjxkaXY+V0JSLCBZYXJvc2xhdiBTY2hla2luLjwvZGl2Pg== ------==--bound.353431.sas1-c37eebe3eab8.qloud-c.yandex.net Content-Disposition: attachment; filename="remaining_problems.txt" Content-Transfer-Encoding: base64 Content-Type: text/plain; name="remaining_problems.txt" R2VuZXJhbCBvbmVzOgouICJib29sZWFuIiB2cyAiQm9vbGVhbiIgLS0tIHVzYWdlIHNlZW1zIHRv IGJlIGluY29uc2lzdGVudCwgZXZlbiBpbiB0aGUgc2FtZQogIGNvbnRleHQuCgouIFRyYW5zYWN0 aW9uIGlzb2xhdGlvbiBsZXZlbHMgYXJlIHNvbWV0aW1lcyBjYWxsZWQgInRyYW5zYWN0aW9uIGlz b2xhdGlvbgogIG1vZGVzIiwgaXMgdGhhdCBjb3JyZWN0PwoKLiBJbiBodHRwczovL3d3dy5wb3N0 Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQvdGFibGVhbS5odG1sLCBsaW5rcyB0byBzb3VyY2UgY29k ZQogIGFyZSBhbHNvIGh5cGVybGlua3MgaW50byBnaXQsIGxpa2UgKGZyb20gU0dNTCBzb3VyY2Up OgoKICBGb3IgZGV0YWlscywgcGxlYXNlIHJlZmVyIHRvIHRoZSA8dWxpbmsgdXJsPSJodHRwczov L2dpdC5wb3N0Z3Jlc3FsLm9yZy9naXR3ZWIvP3A9cG9zdGdyZXNxbC5naXQ7YT1ibG9iO2Y9c3Jj L2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaDtoYj1IRUFEIj4KICA8ZmlsZW5hbWU+c3JjL2luY2x1 ZGUvYWNjZXNzL3RhYmxlYW0uaDwvZmlsZW5hbWU+PC91bGluaz4gZmlsZS4KCiAgUGVyaGFwcywg b3RoZXIgc2ltaWxhciBsaW5rcyBpbiBkb2N1bWVudGF0aW9uIHNob3VsZCBhbHNvIGJlIG1hZGUg aW50bwogIGh5cGVybGlua3M/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpTcGVjaWZpYyBvbmVz OgotLSBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQvc3FsLXN5bnRheC1s ZXhpY2FsLmh0bWwjU1FMLVNZTlRBWC1DT05TVEFOVFMKCjQuMS4yLjQgRG9sbGFyLXF1b3RlZCBT dHJpbmcgQ29uc3RhbnRzCgpXaGlsZSB0aGUgc3RhbmRhcmQgc3ludGF4IGZvciBzcGVjaWZ5aW5n IHN0cmluZyBjb25zdGFudHMgaXMgdXN1YWxseQpjb252ZW5pZW50LCBpdCBjYW4gYmUgZGlmZmlj dWx0IHRvIHVuZGVyc3RhbmQgd2hlbiB0aGUgZGVzaXJlZCBzdHJpbmcgY29udGFpbnMKbWFueSBz aW5nbGUgcXVvdGVzIG9yIGJhY2tzbGFzaGVzLCBzaW5jZSBlYWNoIG9mIHRob3NlIG11c3QgYmUg ZG91YmxlZC4KICAtLSBOb3Qgc28gZm9yIGJhY2tzbGFzaGVzIChwZXJoYXBzLCB0aGlzIHNlbnRl bmNlIGlzIGZyb20KICAgICBwcmUtc3RhbmRhcmRfY29uZm9ybWluZ19zdHJpbmdzIGFnZXMpLgoK LS0tLS0gPGluIHRoZSBzYW1lIHNlY3Rpb24+IC0tLS0tLQoKTm90aWNlIHRoYXQgaW5zaWRlIHRo ZSBkb2xsYXItcXVvdGVkIHN0cmluZywgc2luZ2xlIHF1b3RlcyBjYW4gYmUgdXNlZCB3aXRob3V0 Cm5lZWRpbmcgdG8gYmUgZXNjYXBlZC4gSW5kZWVkLCBubyBjaGFyYWN0ZXJzIGluc2lkZSBhIGRv bGxhci1xdW90ZWQgc3RyaW5nIGFyZQpldmVyIGVzY2FwZWQ6IHRoZSBzdHJpbmcgY29udGVudCBp cyBhbHdheXMgd3JpdHRlbiBsaXRlcmFsbHkuIEJhY2tzbGFzaGVzIGFyZQpub3Qgc3BlY2lhbCwg YW5kIG5laXRoZXIgYXJlIGRvbGxhciBzaWducywgdW5sZXNzIHRoZXkgYXJlIHBhcnQgb2YgYSBz ZXF1ZW5jZQptYXRjaGluZyB0aGUgb3BlbmluZyB0YWcuCiAgLS0gQmFja3NsYXNoZXMsIGFnYWlu LiBUaG91Z2ggaGVyZSBpbiBtYXkgYmUganVzdGlmaWVkLCBub3Qgc3VyZS4KCi0tLS0tIDxpbiB0 aGUgc2FtZSBzZWN0aW9uPiAtLS0tLS0KCiRmdW5jdGlvbiQKQkVHSU4KICAgIFJFVFVSTiAoJDEg fiAkcSRbXHRcclxuXHZcXF0kcSQpOwpFTkQ7CiRmdW5jdGlvbiQKICAtLSBXaGlsZSBpdCdzIHVu ZGVyc3RhbmRhYmxlIHdoYXQgdGhlIGV4YW1wbGUgaXMgdHJ5aW5nIHRvIGRlbW9uc3RyYXRlLAog ICAgIHNpbmdsZS1xdW90ZWQgc3RyaW5nIHdvdWxkIHdvcmsgaGVyZSwgdG9vIChzbywgbm8gYWN0 dWFsIGFkdmFudGFnZSwgaW4KICAgICB0aGlzIGNhc2UpLgoKLS0tLS0gPGluIHRoZSBzYW1lIHNl Y3Rpb24+IC0tLS0tLQoKV2l0aCBzaW5nbGUtcXVvdGUgc3ludGF4LCBlYWNoIGJhY2tzbGFzaCBp biB0aGUgYWJvdmUgZXhhbXBsZSB3b3VsZCBoYXZlIHRvIGJlCndyaXR0ZW4gYXMgZm91ciBiYWNr c2xhc2hlcywgd2hpY2ggd291bGQgYmUgcmVkdWNlZCB0byB0d28gYmFja3NsYXNoZXMgaW4KcGFy c2luZyB0aGUgb3JpZ2luYWwgc3RyaW5nIGNvbnN0YW50LCBhbmQgdGhlbiB0byBvbmUgd2hlbiB0 aGUgaW5uZXIgc3RyaW5nCmNvbnN0YW50IGlzIHJlLXBhcnNlZCBkdXJpbmcgZnVuY3Rpb24gZXhl Y3V0aW9uLgogIC0tIE5vdGhpbmcgbmVlZHMgdG8gYmUgY2hhbmdlZCBhYm91dCBiYWNrc2xhc2hl cywgeWV0IGFnYWluLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gaHR0cHM6Ly93d3cucG9z dGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L2RkbC1iYXNpY3MuaHRtbAo1LjEuIFRhYmxlIEJhc2lj cwoKQSB0YWJsZSBpbiBhIHJlbGF0aW9uYWwgZGF0YWJhc2UgaXMgbXVjaCBsaWtlIGEgdGFibGUg b24gcGFwZXI6IEl0IGNvbnNpc3RzIG9mCnJvd3MgYW5kIGNvbHVtbnMuCiAgLS0gV2h5ICJJIiBp biBJdCBhZnRlciAiOiIgaXMgY2FwaXRhbGl6ZWQ/CgotLS0tLSA8aW4gdGhlIHNhbWUgc2VjdGlv bj4gLS0tLS0tClNvbWUgb2YgdGhlIGZyZXF1ZW50bHkgdXNlZCBkYXRhIHR5cGVzIGFyZSBpbnRl Z2VyIGZvciB3aG9sZSBudW1iZXJzLCBudW1lcmljCmZvciBwb3NzaWJseSBmcmFjdGlvbmFsIG51 bWJlcnMsIHRleHQgZm9yIGNoYXJhY3RlciBzdHJpbmdzLCBkYXRlIGZvciBkYXRlcywKdGltZSBm b3IgdGltZS1vZi1kYXkgdmFsdWVzLCBhbmQgdGltZXN0YW1wIGZvciB2YWx1ZXMgY29udGFpbmlu ZyBib3RoIGRhdGUgYW5kCnRpbWUuCiAgLS0gUGVyaGFwcywgYWRkIChvciByZXBsYWNlIHdpdGgp IHRpbWVzdGFtcHR6IGZvciBzdG9yaW5nIG1vbWVudHMgaW4gdGltZSAob3IKICAgICBzb21ldGhp bmcgbGlrZSB0aGF0KT8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBv c3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9kZGwtY29uc3RyYWludHMuaHRtbCNEREwtQ09OU1RS QUlOVFMtRVhDTFVTSU9OCgo1LjQuNi4gRXhjbHVzaW9uIENvbnN0cmFpbnRzCgpFeGNsdXNpb24g Y29uc3RyYWludHMgZW5zdXJlIHRoYXQgaWYgYW55IHR3byByb3dzIGFyZSBjb21wYXJlZCBvbiB0 aGUgc3BlY2lmaWVkCmNvbHVtbnMgb3IgZXhwcmVzc2lvbnMgdXNpbmcgdGhlIHNwZWNpZmllZCBv cGVyYXRvcnMsIGF0IGxlYXN0IG9uZSBvZiB0aGVzZQpvcGVyYXRvciBjb21wYXJpc29ucyB3aWxs IHJldHVybiBmYWxzZSBvciBudWxsLiBUaGUgc3ludGF4IGlzOgoKQ1JFQVRFIFRBQkxFIGNpcmNs ZXMgKAogICAgYyBjaXJjbGUsCiAgICBFWENMVURFIFVTSU5HIGdpc3QgKGMgV0lUSCAmJikKKTsK ICAtLSBOb3Qgb25seSB0aGUgZGVmaW5pdGlvbiBpcyBoYXJkIHRvIGdyYXNwLCBidXQgdGhlIGV4 YW1wbGUgZG9lc24ndCBjbGFyaWZ5CiAgICAgYSBsb3QsIGFzIGl0J3Mgbm90IGV4cGxhaW5lZCB3 aGF0IGl0IGFjdHVhbGx5IGFjaGlldmVzIChlc3BlY2lhbGx5IGdpdmVuCiAgICAgZ2VvbWV0cmlj IGRhdGEgdHlwZXMgYW5kIG9wZXJhdG9ycyBhcmUgZGVzY3JpYmVkIHNldmVyYWwgY2hhcHRlcnMg bGF0ZXIpLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5v cmcvZG9jcy9jdXJyZW50L2RkbC1hbHRlci5odG1sI0RETC1BTFRFUi1SRU1PVklORy1BLUNPTlNU UkFJTlQKCjUuNi40LiBSZW1vdmluZyBhIENvbnN0cmFpbnQKCihJZiB5b3UgYXJlIGRlYWxpbmcg d2l0aCBhIGdlbmVyYXRlZCBjb25zdHJhaW50IG5hbWUgbGlrZSAkMiwgZG9uJ3QgZm9yZ2V0IHRo YXQKeW91J2xsIG5lZWQgdG8gZG91YmxlLXF1b3RlIGl0IHRvIG1ha2UgaXQgYSB2YWxpZCBpZGVu dGlmaWVyLikKICAtLSBJIGRvbid0IHRoaW5rIGN1cnJlbnQgcmVsZWFzZXMgZ2VuZXJhdGUgbmFt ZXMgbGlrZSB0aGF0IGFueW1vcmU/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSBodHRwczov L3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQvZGRsLXJvd3NlY3VyaXR5Lmh0bWwKCjUu OC4gUm93IFNlY3VyaXR5IFBvbGljaWVzCiAgLS0gQSBnZW5lcmFsIG5vdGU6IGludGVyYWN0aW9u IG9mIHJvdyBzZWN1cml0eSB3aXRoIHNlYXJjaF9wYXRoIGlzIG5vdAogICAgIGRvY3VtZW50ZWQg YXQgYWxsLCBidXQgaXQgbWF5IGJlIGltcG9ydGFudCBpcyBzb21lIGNhc2VzLCBsaWtlIHVzaW5n CiAgICAgZnVuY3Rpb25zIGluIHJvdyBzZWN1cml0eSBwb2xpY2llcy4KCi0tLS0tIDxpbiB0aGUg c2FtZSBzZWN0aW9uPiAtLS0tLS0KCldlIGNhbiB0aGVuIHNlZSB0aGF0IGFuIGFkbWluaXN0cmF0 b3IgY29ubmVjdGluZyBvdmVyIGEgbmV0d29yayB3aWxsIG5vdCBzZWUKYW55IHJlY29yZHMsIGR1 ZSB0byB0aGUgcmVzdHJpY3RpdmUgcG9saWN5OgoKPT4gU0VMRUNUIGN1cnJlbnRfdXNlcjsKIGN1 cnJlbnRfdXNlcgotLS0tLS0tLS0tLS0tLQogYWRtaW4KKDEgcm93KQoKPT4gc2VsZWN0IGluZXRf Y2xpZW50X2FkZHIoKTsKIGluZXRfY2xpZW50X2FkZHIKLS0tLS0tLS0tLS0tLS0tLS0tCiAxMjcu MC4wLjEKKDEgcm93KQoKPT4gU0VMRUNUIGN1cnJlbnRfdXNlcjsKIGN1cnJlbnRfdXNlcgotLS0t LS0tLS0tLS0tLQogYWRtaW4KICAtLSAiU0VMRUNUIGN1cnJlbnRfdXNlcjsiIHR3aWNlIChJIGd1 ZXNzIGZpcnN0IG9uZSBzaG91bGQgaGF2ZSBiZWVuIHBzcWwgLWgpLgoKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLS0gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L2RtbC11 cGRhdGUuaHRtbAoKNi4yLiBVcGRhdGluZyBEYXRhCgpPbmx5IGlmIHlvdSBoYXZlIGEgcHJpbWFy eSBrZXkgaW4gdGhlIHRhYmxlIChpbmRlcGVuZGVudCBvZiB3aGV0aGVyIHlvdQpkZWNsYXJlZCBp dCBvciBub3QpIGNhbiB5b3UgcmVsaWFibHkgYWRkcmVzcyBpbmRpdmlkdWFsIHJvd3MgYnkgY2hv b3NpbmcgYQpjb25kaXRpb24gdGhhdCBtYXRjaGVzIHRoZSBwcmltYXJ5IGtleS4KICAtLSBJZiBp dCdzIGFib3V0IHJlbGF0aW9uYWwgdGhlb3J5IGhlcmUsIGl0J3MgY2FuZGlkYXRlIGtleSwgYWN0 dWFsbHkgKGFuZAogICAgIHRoZXJlIGNvdWxkIGJlIG1vcmUgdGhhdCBvbmUpLgoKR3JhcGhpY2Fs IGRhdGFiYXNlIGFjY2VzcyB0b29scyByZWx5IG9uIHRoaXMgZmFjdCB0byBhbGxvdyB5b3UgdG8g dXBkYXRlIHJvd3MKaW5kaXZpZHVhbGx5LgogIC0tIElzIGl0IGNlcnRhaW4gdGhlcmUncyBubyB0 b29sIG91dCB0aGVyZSB0aGF0IHVzZXMgIldIRVJFIENVUlJFTlQgT0YgY3Vyc29yIgogICAgIGZv ciB0aGF0LCBmb3IgaW5zdGFuY2U/IFNvLCBwZXJoYXBzLCBjaGFuZ2UgaXQgdG8gInVzdWFsbHkg cmVseSIgb3IgIk1hbnkKICAgICBncmFwaGljYWwuLi4iPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLS0gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L3F1ZXJpZXMtdGFi bGUtZXhwcmVzc2lvbnMuaHRtbAoKNy4yLiBUYWJsZSBFeHByZXNzaW9ucwoKVHJpdmlhbCB0YWJs ZSBleHByZXNzaW9ucyBzaW1wbHkgcmVmZXIgdG8gYSB0YWJsZSBvbiBkaXNrLCBhIHNvLWNhbGxl ZCBiYXNlCnRhYmxlLCBidXQgbW9yZSBjb21wbGV4IGV4cHJlc3Npb25zIGNhbiBiZSB1c2VkIHRv IG1vZGlmeSBvciBjb21iaW5lIGJhc2UKdGFibGVzIGluIHZhcmlvdXMgd2F5cy4KICAtLSBGb3Jt YWxseSwgcmVmZXJlbmNlZCAidGFibGVzIiBtYXkgYmUgW21hdGVyaWFsaXplZF0gdmlld3MsIGV0 Yy4KICAgICBBbmQgdGhlIHNhbWUsIGJlbG93OgoKQSB0YWJsZSByZWZlcmVuY2UgY2FuIGJlIGEg dGFibGUgbmFtZSAocG9zc2libHkgc2NoZW1hLXF1YWxpZmllZCksIG9yIGEgZGVyaXZlZAp0YWJs ZSBzdWNoIGFzIGEgc3VicXVlcnksIGEgSk9JTiBjb25zdHJ1Y3QsIG9yIGNvbXBsZXggY29tYmlu YXRpb25zIG9mIHRoZXNlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gaHR0cHM6Ly93d3cu cG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L3F1ZXJpZXMtdGFibGUtZXhwcmVzc2lvbnMuaHRt bCNRVUVSSUVTLUZST00KCjcuMi4xLjUuIExBVEVSQUwgU3VicXVlcmllcwogIC0tIFRoaXMgc2Vj dGlvbiBpcyB5ZXQgYW5vdGhlciBwbGFjZSB3aGVyZSBTUUwgc3R5bGUgY291bGQgdXNlIHVuaWZp Y2F0aW9uLgoKRm9yIGV4YW1wbGUsIGlmIGdldF9wcm9kdWN0X25hbWVzKCkgcmV0dXJucyB0aGUg bmFtZXMgb2YgcHJvZHVjdHMgbWFkZSBieSBhCm1hbnVmYWN0dXJlciwgYnV0IHNvbWUgbWFudWZh Y3R1cmVycyBpbiBvdXIgdGFibGUgY3VycmVudGx5IHByb2R1Y2Ugbm8KcHJvZHVjdHMsIHdlIGNv dWxkIGZpbmQgb3V0IHdoaWNoIG9uZXMgdGhvc2UgYXJlIGxpa2UgdGhpczoKClNFTEVDVCBtLm5h bWUKICBGUk9NIG1hbnVmYWN0dXJlcnMgbSBMRUZUIEpPSU4gTEFURVJBTCBnZXRfcHJvZHVjdF9u YW1lcyhtLmlkKSBwbmFtZSBPTiB0cnVlCldIRVJFIHBuYW1lIElTIE5VTEw7CiAgLS0gSXMgaXQg cmVhbGx5IGEgZ29vZCBleGFtcGxlPyBBICJncm91cHdpc2UgbWF4aW11bSIgd291bGQgYmUgbXVj aCBiZXR0ZXIKICAgICBvbmUsIElNSE8uIEJlc2lkZXMsIHRoZSBxdWVyeSBjb3VsZCBoYXZlIGJl ZW4gKG1vcmUgbmF0dXJhbGx5KSB3cml0dGVuIGFzOgoKICAgICBTRUxFQ1QgbS5uYW1lCiAgICAg ICBGUk9NIG1hbnVmYWN0dXJlcnMKICAgICAgV0hFUkUgRVhJU1RTICgKICAgICAgICAgICAgU0VM RUNUIDEKICAgICAgICAgICAgICBGUk9NIGdldF9wcm9kdWN0X25hbWVzKG0uaWQpCiAgICAgICAg ICAgICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwu b3JnL2RvY3MvY3VycmVudC9kYXRhdHlwZS1jaGFyYWN0ZXIuaHRtbAoKOC4zLiBDaGFyYWN0ZXIg VHlwZXMKClNRTCBkZWZpbmVzIHR3byBwcmltYXJ5IGNoYXJhY3RlciB0eXBlczogY2hhcmFjdGVy IHZhcnlpbmcobikgYW5kIGNoYXJhY3RlcihuKSwKd2hlcmUgbiBpcyBhIHBvc2l0aXZlIGludGVn ZXIuCiAgLS0gU1FMIHN0YW5kYXJkLCBwZXJoYXBzPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LS0gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L2Z1bmN0aW9ucy1tYXRo Lmh0bWwjRlVOQ1RJT05TLU1BVEgtRlVOQy1UQUJMRQoKVGFibGUgOS41LiBNYXRoZW1hdGljYWwg RnVuY3Rpb25zCgpJbiBkaXYoeSBudW1lcmljLCB4IG51bWVyaWMpIGV4YW1wbGU6CmRpdig5LDQp CiAgLS0gTm8gc3BhY2UgYWZ0ZXIgdGhlIGNvbW1hLgoKLS0tLS0gPGluIHRoZSBzYW1lIHNlY3Rp b24+IC0tLS0tLQoKbW9kKDksNCkKICAtLSBUaGUgc2FtZSBhcyBhYm92ZS4KCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9m dW5jdGlvbnMtYWdncmVnYXRlLmh0bWwjRlVOQ1RJT05TLUFHR1JFR0FURS1UQUJMRQoKVGFibGUg OS41NS4gR2VuZXJhbC1QdXJwb3NlIEFnZ3JlZ2F0ZSBGdW5jdGlvbnMKCmJpdF9hbmQgLS0gdGhl IGJpdHdpc2UgQU5EIG9mIGFsbCBub24tbnVsbCBpbnB1dCB2YWx1ZXMsIG9yIG51bGwgaWYgbm9u ZQpiaXRfb3IgLS0gdGhlIGJpdHdpc2UgT1Igb2YgYWxsIG5vbi1udWxsIGlucHV0IHZhbHVlcywg b3IgbnVsbCBpZiBub25lCmJvb2xfYW5kIC0tIHRydWUgaWYgYWxsIGlucHV0IHZhbHVlcyBhcmUg dHJ1ZSwgb3RoZXJ3aXNlIGZhbHNlCiAgLS0gRGVzY3JpcHRpb25zIG9mIE5VTEwgaGFuZGxpbmcg YXJlIGluY29uc2lzdGVudDogZWl0aGVyIHRoZSBvbmUgaW4gYml0XyoKICAgICBzaG91bGQgYmUg cmVtb3ZlZCwgb3IgaXQgc2hvdWxkIGJlIGFkZGVkIGV2ZXJ5d2hlcmUgZXhjZXB0IGluIG5vbi1z dHJpY3QKICAgICBmdW5jdGlvbnM/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSBodHRwczov L3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQvZnVuY3Rpb25zLWFnZ3JlZ2F0ZS5odG1s CjkuMjAuIEFnZ3JlZ2F0ZSBGdW5jdGlvbnMKClVzZXJzIGFjY3VzdG9tZWQgdG8gd29ya2luZyB3 aXRoIG90aGVyIFNRTCBkYXRhYmFzZSBtYW5hZ2VtZW50IHN5c3RlbXMgbWlnaHQgYmUKZGlzYXBw b2ludGVkIGJ5IHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgY291bnQgYWdncmVnYXRlIHdoZW4gaXQg aXMgYXBwbGllZCB0byB0aGUKZW50aXJlIHRhYmxlLgogIC0tIFdoaWNoIG1vZGVybiBEQk1TKHMp IGlzIHRoYXQgYWJvdXQ/IFBlcmhhcHMsIHRoZSBub3RlIGNvdWxkIGJlIHJlbW92ZWQ/CgotLS0t LSA8aW4gdGhlIHNhbWUgc2VjdGlvbj4gLS0tLS0tCgpUaGlzIG9yZGVyaW5nIGlzIHVuc3BlY2lm aWVkIGJ5IGRlZmF1bHQsIGJ1dCBjYW4gYmUgY29udHJvbGxlZCBieSB3cml0aW5nIGFuCk9SREVS IEJZIGNsYXVzZSB3aXRoaW4gdGhlIGFnZ3JlZ2F0ZSBjYWxsLCBhcyBzaG93biBpbiBTZWN0aW9u IDQuMi43LgpBbHRlcm5hdGl2ZWx5LCBzdXBwbHlpbmcgdGhlIGlucHV0IHZhbHVlcyBmcm9tIGEg c29ydGVkIHN1YnF1ZXJ5IHdpbGwgdXN1YWxseQp3b3JrLiBGb3IgZXhhbXBsZToKClNFTEVDVCB4 bWxhZ2coeCkgRlJPTSAoU0VMRUNUIHggRlJPTSB0ZXN0IE9SREVSIEJZIHkgREVTQykgQVMgdGFi OwoKQmV3YXJlIHRoYXQgdGhpcyBhcHByb2FjaCBjYW4gZmFpbCBpZiB0aGUgb3V0ZXIgcXVlcnkg bGV2ZWwgY29udGFpbnMgYWRkaXRpb25hbApwcm9jZXNzaW5nLCBzdWNoIGFzIGEgam9pbiwgYmVj YXVzZSB0aGF0IG1pZ2h0IGNhdXNlIHRoZSBzdWJxdWVyeSdzIG91dHB1dCB0byBiZQpyZW9yZGVy ZWQgYmVmb3JlIHRoZSBhZ2dyZWdhdGUgaXMgY29tcHV0ZWQuCiAgLS0gUGVyaGFwcywgYXMgdGhl IHJlbGlhYmxlIHdheSBleGlzdHMsIHRoZSAiZGFuZ2Vyb3VzIiBvbmUgY291bGQgYmUgcmVtb3Zl ZD8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3Jn L2RvY3MvY3VycmVudC9mdW5jdGlvbnMtc3JmLmh0bWwKCjkuMjQuIFNldCBSZXR1cm5pbmcgRnVu Y3Rpb25zCgpJbiB0aGUgZXhhbXBsZToKLS0gYmFzaWMgdXNhZ2UKU0VMRUNUIGdlbmVyYXRlX3N1 YnNjcmlwdHMoJ3tOVUxMLDEsTlVMTCwyfSc6OmludFtdLCAxKSBBUyBzOwogIC0tIFdoeSBub3Q6 CiAgICAgU0VMRUNUIG4KICAgICAgIEZST00gZ2VuZXJhdGVfc3Vic2NyaXB0cygne05VTEwsMSxO VUxMLDJ9Jzo6aW50W10sIDEpIEFTIHMobik7CgotLS0tLSA8aW4gdGhlIHNhbWUgc2VjdGlvbj4g LS0tLS0tCgpTRUxFQ1QgYSBBUyBhcnJheSwgcyBBUyBzdWJzY3JpcHQsIGFbc10gQVMgdmFsdWUK RlJPTSAoU0VMRUNUIGdlbmVyYXRlX3N1YnNjcmlwdHMoYSwgMSkgQVMgcywgYSBGUk9NIGFycmF5 cykgZm9vOwogIC0tIElNTywgYmFkIHN0eWxlOiBTUkYgY2FsbCBpbiB0aGUgc2VsZWN0IGxpc3Qg KyBpbXBsaWNpdCBjcm9zcyBqb2luICsgbm8KICAgICBBUyBiZWZvcmUgImZvbyIsIGJ1dCB1c2Vk IGluIGV2ZXJ5IGZpZWxkIGFsaWFzOyBiZXNpZGVzLCAiYXJyYXkiIGFuZAogICAgICJ2YWx1ZSIg YXJlIGtleXdvcmRzLgoKLS0tLS0gPGluIHRoZSBzYW1lIHNlY3Rpb24+IC0tLS0tLQoKQ1JFQVRF IE9SIFJFUExBQ0UgRlVOQ1RJT04gdW5uZXN0MihhbnlhcnJheSkKICAtLSBUaGUgc2FtZSBiYWQg c3R5bGUgYXMgYWJvdmUuCgotLS0tLSA8aW4gdGhlIHNhbWUgc2VjdGlvbj4gLS0tLS0tCgpTRUxF Q1QgKiBGUk9NIHBnX2xzX2RpcignLicpIFdJVEggT1JESU5BTElUWSBBUyB0KGxzLG4pOwogIC0t IE5vYm9keSBidXQgYSBzdXBlcnVzZXIgY2FuIHRyeSB0aGlzIGV4YW1wbGUgKGJlc2lkZXMsIHRo ZSBvdXRwdXQgaXMgcXVpdGUKICAgICBsb25nKS4gV2h5IG5vdCBjb21lIHVwIHdpdGggYSBiZXR0 ZXIgb25lPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gaHR0cHM6Ly93d3cucG9zdGdyZXNx bC5vcmcvZG9jcy9jdXJyZW50L2Z1bmN0aW9ucy1pbmZvLmh0bWwjRlVOQ1RJT05TLUlORk8tQUND RVNTLVRBQkxFCgpBZnRlciBUYWJsZSA5LjY0LiBBY2Nlc3MgUHJpdmlsZWdlIElucXVpcnkgRnVu Y3Rpb25zLCBpbiBoYXNfdGFibGVfcHJpdmlsZWdlCmRlc2NyaXB0aW9uOgoKKFRodXMsIHRoZXJl IGFyZSBhY3R1YWxseSBzaXggdmFyaWFudHMgb2YgaGFzX3RhYmxlX3ByaXZpbGVnZSwgd2hpY2gg Y2FuIGJlCmRpc3Rpbmd1aXNoZWQgYnkgdGhlIG51bWJlciBhbmQgdHlwZXMgb2YgdGhlaXIgYXJn dW1lbnRzLikKICAtLSBUaGlzIG5vdGUgKGRlc2NyaWJpbmcgYW4gaW1wbGVtZW50YXRpb24gZGV0 YWlsKSBpcyBwcmVzZW50IGhlcmUsIGJ1dCBub3QKICAgICBmb3IgdGhlIG90aGVyIGhhc18qIGZ1 bmN0aW9ucy4gUGVyaGFwcywgaXQgY291bGQgYmUgcmVtb3ZlZCBvciBnZW5lcmFsaXplZD8KCi0t LS0tIDxpbiB0aGUgc2FtZSBzZWN0aW9uPiAtLS0tLS0KClRoZSBkZXNpcmVkIGFjY2VzcyBwcml2 aWxlZ2UgdHlwZSBpcyBzcGVjaWZpZWQgYnkgYSB0ZXh0IHN0cmluZywgd2hpY2ggbXVzdApldmFs dWF0ZSB0byBvbmUgb2YgdGhlIHZhbHVlcyBTRUxFQ1QsIElOU0VSVCwgVVBEQVRFLCBERUxFVEUs IFRSVU5DQVRFLApSRUZFUkVOQ0VTLCBvciBUUklHR0VSLiBPcHRpb25hbGx5LCBXSVRIIEdSQU5U IE9QVElPTiBjYW4gYmUgYWRkZWQgdG8gYQpwcml2aWxlZ2UgdHlwZSB0byB0ZXN0IHdoZXRoZXIg dGhlIHByaXZpbGVnZSBpcyBoZWxkIHdpdGggZ3JhbnQgb3B0aW9uLiBBbHNvLAptdWx0aXBsZSBw cml2aWxlZ2UgdHlwZXMgY2FuIGJlIGxpc3RlZCBzZXBhcmF0ZWQgYnkgY29tbWFzLCBpbiB3aGlj aCBjYXNlIHRoZQpyZXN1bHQgd2lsbCBiZSB0cnVlIGlmIGFueSBvZiB0aGUgbGlzdGVkIHByaXZp bGVnZXMgaXMgaGVsZC4KICAtLSBUaGUgdGhpcmQgc2VudGVuY2UgY29udHJhZGljdHMgdGhlIGZp cnN0IG9uZSAoIm11c3QgZXZhbHVhdGUgdG8gb25lIiB2cyAiCiAgICAgIm11bHRpcGxlIHByaXZp bGVnZSB0eXBlcyBjYW4gYmUgbGlzdGVkIik/CgotLS0tLSA8aW4gdGhlIHNhbWUgc2VjdGlvbj4g LS0tLS0tCgpoYXNfc2VxdWVuY2VfcHJpdmlsZWdlIGNoZWNrcyB3aGV0aGVyIGEgdXNlciBjYW4g YWNjZXNzIGEgc2VxdWVuY2UgaW4gYQpwYXJ0aWN1bGFyIHdheS4gVGhlIHBvc3NpYmlsaXRpZXMg Zm9yIGl0cyBhcmd1bWVudHMgYXJlIGFuYWxvZ291cyB0bwpoYXNfdGFibGVfcHJpdmlsZWdlLiBU aGUgZGVzaXJlZCBhY2Nlc3MgcHJpdmlsZWdlIHR5cGUgbXVzdCBldmFsdWF0ZSB0byBvbmUgb2YK VVNBR0UsIFNFTEVDVCwgb3IgVVBEQVRFLgogIC0tIEl0IGFsc28gc3VwcG9ydHMgY29tYmluYXRp b25zIG9mIHByaXZpbGVnZXMuIEJlc2lkZXMsIHRoZSBzdXBwb3J0IG9mCiAgICAgb3B0aW9uYWwg V0lUSCBHUkFOVCBPUFRJT04gKGFzIHdlbGwgYXMgaW4gdGhlIG90aGVyIHNpbWlsYXIgZnVuY3Rp b25zKQogICAgIGlzIG5vdCBlbnRpcmVseSBjbGVhciBmcm9tIHRoZSBkZXNjcmlwdGlvbiwgSU1I Ty4KCi0tLS0tIDxpbiB0aGUgc2FtZSBzZWN0aW9uPiAtLS0tLS0KICAtLSBBIG5vdGUgb24gc3R5 bGUgaGVyZSAtLS0gaW4gdGhhdCBzZWN0aW9uLCB0aGVyZSBhcmUgc2V2ZXJhbCBwYXJhZ3JhcGhz IG9mCiAgICAgdGhlIGNvbW1vbiBmb3JtOgoKIlhYWCBjaGVja3Mgd2hldGhlciBhIHVzZXIgY2Fu IGFjY2VzcyBhIFlZWSBpbiBhIHBhcnRpY3VsYXIgd2F5LiBJdHMgYXJndW1lbnQKcG9zc2liaWxp dGllcyBhcmUgYW5hbG9nb3VzIHRvIGhhc190YWJsZV9wcml2aWxlZ2UuIFRoZSBkZXNpcmVkIGFj Y2VzcyBwcml2aWxlZ2UKdHlwZSBtdXN0IGV2YWx1YXRlIHRvIFpaWi4iCiAgLS0gQ291bGQgYWxs IG9mIHRoZXNlIGJlIHJld3JpdHRlbiBpbiBhIGJldHRlciB3YXk/CgotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotLSBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQvZnVuY3Rp b25zLWluZm8uaHRtbCNGVU5DVElPTlMtVFhJRC1TTkFQU0hPVC1QQVJUUwoKVGFibGUgOS43NS4g U25hcHNob3QgQ29tcG9uZW50cwoKSW4gdGhlIHhpcF9saXN0IGRlc2NyaXB0aW9uOgoKVGhlIGxp c3QgaW5jbHVkZXMgb25seSB0aG9zZSBhY3RpdmUgdHhpZHMgYmV0d2VlbiB4bWluIGFuZCB4bWF4 OwogIC0tIElzIHRoaXMgY29ycmVjdCBFbmdsaXNoPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LS0gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L2Z1bmN0aW9ucy1hZG1p bi5odG1sI0ZVTkNUSU9OUy1BRE1JTi1CQUNLVVAKCjkuMjYuMy4gQmFja3VwIENvbnRyb2wgRnVu Y3Rpb25zCgpwZ19jdXJyZW50X3dhbF9sc24gZGlzcGxheXMgdGhlIGN1cnJlbnQgd3JpdGUtYWhl YWQgbG9nIHdyaXRlIGxvY2F0aW9uIGluIHRoZQpzYW1lIGZvcm1hdCB1c2VkIGJ5IHRoZSBhYm92 ZSBmdW5jdGlvbnMuCiAgLS0gImluIHRoZSBzYW1lIGZvcm1hdCBfYXNfIHVzZWQiLCBwZXJoYXBz PwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcv ZG9jcy9jdXJyZW50L2Z1bmN0aW9ucy1ldmVudC10cmlnZ2Vycy5odG1sI1BHLUVWRU5ULVRSSUdH RVItU1FMLURST1AtRlVOQ1RJT05TCgo5LjI4LjIuIFByb2Nlc3NpbmcgT2JqZWN0cyBEcm9wcGVk IGJ5IGEgRERMIENvbW1hbmQKCkluIGV4YW1wbGUgb2YgIkNSRUFURSBGVU5DVElPTiB0ZXN0X2V2 ZW50X3RyaWdnZXJfZm9yX2Ryb3BzKCkiOgogICAgRU5EIExPT1A7CkVORAokJDsKICAtLSBTdHls ZSBuaXRwaWNrOiBubyAiOyIgYWZ0ZXIgdGhlIGxhc3QgRU5ELCB1bmxpa2UgaW4gb3RoZXIgZXhh bXBsZXMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSBodHRwczovL3d3dy5wb3N0Z3Jlc3Fs Lm9yZy9kb2NzL2N1cnJlbnQvdHlwZWNvbnYtZnVuYy5odG1sCgpFeGFtcGxlIDEwLjcuIFZhcmlh ZGljIEZ1bmN0aW9uIFJlc29sdXRpb24KCkNSRUFURSBGVU5DVElPTiBwdWJsaWMudmFyaWFkaWNf ZXhhbXBsZShWQVJJQURJQyBudW1lcmljW10pIFJFVFVSTlMgaW50CiAgTEFOR1VBR0Ugc3FsIEFT ICdTRUxFQ1QgMSc7CkNSRUFURSBGVU5DVElPTgogIC0tICJDUkVBVEUgRlVOQ1RJT04iIGlzIGJv dGggaW5wdXQgU1FMIGFuZCBwc3FsIG91dHB1dCwgaGFyZGx5IGRpc3Rpbmd1aXNoYWJsZS4KICAg ICBCZXNpZGVzLCB0aGUgZnVuY3Rpb24gYm9keSBpcyBub3QgZG9sbGFyLXF1b3RlZCAoYmFkIHN0 eWxlKS4gVGhlIHNhbWUgZ29lcwogICAgIGZvciB0aGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBpbiB0 aGUgZXhhbXBsZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBvc3Rn cmVzcWwub3JnL2RvY3MvY3VycmVudC9pbmRleGVzLWJpdG1hcC1zY2Fucy5odG1sCgoxMS41LiBD b21iaW5pbmcgTXVsdGlwbGUgSW5kZXhlcwoKRm9yIGV4YW1wbGUsIGdpdmVuIGFuIGluZGV4IG9u IChhLCBiKSBhIHF1ZXJ5IGNvbmRpdGlvbiBsaWtlIFdIRVJFIGEgPSA1IEFORCBiID0KNiBjb3Vs ZCB1c2UgdGhlIGluZGV4LCBidXQgYSBxdWVyeSBsaWtlIFdIRVJFIGEgPSA1IE9SIGIgPSA2IGNv dWxkIG5vdCBkaXJlY3RseQp1c2UgdGhlIGluZGV4LgogIC0tICJjb3VsZCBub3QgZGlyZWN0bHkg dXNlIiBpcyB2YWd1ZSwgSU1PIChpLmUuIFBvc3RncmVTUUwgYWN0dWFsbHkgY2FuIGFuZAogICAg ICBzb21ldGltZXMgd2lsbCB1c2UgYW4gaW5kZXggbGlrZSB0aGF0IGZvciB0aGUgcXVlcnkpLgoK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9j cy9jdXJyZW50L2luZGV4ZXMtcGFydGlhbC5odG1sCgoxMS44LiBQYXJ0aWFsIEluZGV4ZXMKCk1h dGNoaW5nIHRha2VzIHBsYWNlIGF0IHF1ZXJ5IHBsYW5uaW5nIHRpbWUsIG5vdCBhdCBydW4gdGlt ZS4gQXMgYSByZXN1bHQsCnBhcmFtZXRlcml6ZWQgcXVlcnkgY2xhdXNlcyBkbyBub3Qgd29yayB3 aXRoIGEgcGFydGlhbCBpbmRleC4gRm9yIGV4YW1wbGUgYQpwcmVwYXJlZCBxdWVyeSB3aXRoIGEg cGFyYW1ldGVyIG1pZ2h0IHNwZWNpZnkgInggPCA/IiB3aGljaCB3aWxsIG5ldmVyIGltcGx5CiJ4 IDwgMiIgZm9yIGFsbCBwb3NzaWJsZSB2YWx1ZXMgb2YgdGhlIHBhcmFtZXRlci4KICAtLSBGaXJz dCBvZiBhbGwsIHBhcmFtZXRlcnMgc3ludGF4IGluIHBvc3RncmVzIGlzICIkbiIsIG5vdCAiPyI7 IHRoZW4sIHBhcnRpYWwKICAgICBpbmRleGVzIHdvcmsganVzdCBmaW5lIHdpdGggcGFyYW1ldGVy aXphdGlvbiBvciBwcmVwYXJlZCBzdGF0ZW1lbnRzPyBFLmcuOgogICAgICAgICBDUkVBVEUgVEFC TEUgYShiIGludCwgYyBpbnQpOwogICAgICAgICBDUkVBVEUgSU5ERVggT04gYShiKSBXSEVSRSBj ID4gMjsKICAgICAgICAgUFJFUEFSRSBmb28oaW50KSBBUyBTRUxFQ1QgYiBGUk9NIGEgV0hFUkUg YyA+ICQxIEFORCBiID0gMTU7CiAgICAgICAgIEVYUExBSU4gRVhFQ1VURSBmb28oMyk7IC0tIENh biB1c2UgdGhlIGluZGV4CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSBodHRwczovL3d3dy5w b3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQvdGV4dHNlYXJjaC1pbnRyby5odG1sCgoxMi4xLiBJ bnRyb2R1Y3Rpb24KClRleHR1YWwgc2VhcmNoIG9wZXJhdG9ycyBoYXZlIGV4aXN0ZWQgaW4gZGF0 YWJhc2VzIGZvciB5ZWFycy4gUG9zdGdyZVNRTCBoYXMgfiwKfiosIExJS0UsIGFuZCBJTElLRSBv cGVyYXRvcnMgZm9yIHRleHR1YWwgZGF0YSB0eXBlcywgYnV0IHRoZXkgbGFjayBtYW55CmVzc2Vu dGlhbCBwcm9wZXJ0aWVzIHJlcXVpcmVkIGJ5IG1vZGVybiBpbmZvcm1hdGlvbiBzeXN0ZW1zOgog IC0tIEhvbmVzdGx5LCB0aGUgc2VudGVuY2UgcmVhZHMgbGlrZSBhbiBhZCB0byBtZS4gOykKCkl0 IGlzIHBvc3NpYmxlIHRvIHVzZSBPUiB0byBzZWFyY2ggZm9yIG11bHRpcGxlIGRlcml2ZWQgZm9y bXMsIGJ1dCB0aGlzIGlzCnRlZGlvdXMgYW5kIGVycm9yLXByb25lIChzb21lIHdvcmRzIGNhbiBo YXZlIHNldmVyYWwgdGhvdXNhbmQgZGVyaXZhdGl2ZXMpLgogIC0tIEl0J3MgYWxzbyBwb3NzaWJs ZSB0byB1c2UgInwiIGluIHJlZ2V4cHMgZm9yIHRoZSBwdXJwb3NlIChhbmQgbXVjaCBlYXNpZXIK ICAgICB0byBsaXN0IHRob3VzYW5kcyBvZiBkZXJpdmF0aXZlcyB0aGlzIHdheSkuCgpUaGV5IHRl bmQgdG8gYmUgc2xvdyBiZWNhdXNlIHRoZXJlIGlzIG5vIGluZGV4IHN1cHBvcnQsIHNvIHRoZXkg bXVzdCBwcm9jZXNzIGFsbApkb2N1bWVudHMgZm9yIGV2ZXJ5IHNlYXJjaC4KICAtLSBUaGVyZSdz IHBnX3RyZ20sIG5vdy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBv c3RncmVzcWwub3JnL2RvY3MvY3VycmVudC90ZXh0c2VhcmNoLWludHJvLmh0bWwjVEVYVFNFQVJD SC1NQVRDSElORwoKMTIuMS4yLiBCYXNpYyBUZXh0IE1hdGNoaW5nCgpUaGVyZSBhcmUgZnVuY3Rp b25zIHRvX3RzcXVlcnksIHBsYWludG9fdHNxdWVyeSwgYW5kIHBocmFzZXRvX3RzcXVlcnkgdGhh dCBhcmUKaGVscGZ1bCBpbiBjb252ZXJ0aW5nIHVzZXItd3JpdHRlbiB0ZXh0IGludG8gYSBwcm9w ZXIgdHNxdWVyeSwgcHJpbWFyaWx5IGJ5Cm5vcm1hbGl6aW5nIHdvcmRzIGFwcGVhcmluZyBpbiB0 aGUgdGV4dC4KICAtLSBUaGVyZSdzIGFsc28gd2Vic2VhcmNoX3RvX3RzcXVlcnkgbm93LCBpcyBp dCByZWxldmFudCBoZXJlPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gaHR0cHM6Ly93d3cu cG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L3RleHRzZWFyY2gtdGFibGVzLmh0bWwKCjEyLjIu MS4gU2VhcmNoaW5nIGEgVGFibGUKCkEgbW9yZSBjb21wbGV4IGV4YW1wbGUgaXMgdG8gc2VsZWN0 IHRoZSB0ZW4gbW9zdCByZWNlbnQgZG9jdW1lbnRzIHRoYXQgY29udGFpbgpjcmVhdGUgYW5kIHRh YmxlIGluIHRoZSB0aXRsZSBvciBib2R5OgoKU0VMRUNUIHRpdGxlCkZST00gcGd3ZWIKV0hFUkUg dG9fdHN2ZWN0b3IodGl0bGUgfHwgJyAnIHx8IGJvZHkpIEBAIHRvX3RzcXVlcnkoJ2NyZWF0ZSAm IHRhYmxlJykKT1JERVIgQlkgbGFzdF9tb2RfZGF0ZSBERVNDCkxJTUlUIDEwOwogIC0tIEl0J3Mg cmF0aGVyIGNyZWF0ZSBhbmQgdGFibGUgaW4gdGhlIHRpdGxlIGFuZC9vciBib2R5PwogICAgIEUu Zy4gaXQgbWF0Y2hlcyB3aXRoOgogICAgICAgV0lUSCBwZ3dlYih0aXRsZSwgYm9keSwgbGFzdF9t b2RfZGF0ZSkgQVMgKFZBTFVFUyAoJ2NyZWF0ZScsICd0YWJsZScsICcyMDIwLTAxLTAxJykpCgot LS0tLSA8aW4gdGhlIHNhbWUgc2VjdGlvbj4gLS0tLS0tCgpGb3IgY2xhcml0eSB3ZSBvbWl0dGVk IHRoZSBjb2FsZXNjZSBmdW5jdGlvbiBjYWxscyB3aGljaCB3b3VsZCBiZSBuZWVkZWQgdG8gZmlu ZApyb3dzIHRoYXQgY29udGFpbiBOVUxMIGluIG9uZSBvZiB0aGUgdHdvIGZpZWxkcy4KICAtLSAi dGl0bGUgfHwgJyAnIHx8IGJvZHkiIGFib3ZlIGNvdWxkIGJlIHJlcGxhY2VkIHdpdGgsIHNheToK ICAgICAiY29uY2F0X3dzKCcgJywgdGl0bGUsIGJvZHkpIiB0byBhdm9pZCB0aGUgcHJvYmxlbSwg YW5kIHRoaXMgcGFyYWdyYXBoCiAgICAgcmVtb3ZlZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0tIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC90ZXh0c2VhcmNoLWNv bnRyb2xzLmh0bWwjVEVYVFNFQVJDSC1QQVJTSU5HLVFVRVJJRVMKCjEyLjMuMi4gUGFyc2luZyBR dWVyaWVzCgpTRUxFQ1Qgd2Vic2VhcmNoX3RvX3RzcXVlcnkoJ2VuZ2xpc2gnLCAnVGhlIGZhdCBy YXRzJyk7CiB3ZWJzZWFyY2hfdG9fdHNxdWVyeQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAnZmF0 JyAmICdyYXQnCigxIHJvdykKLS0gQWxsIHRoZSBleGFtcGxlcyBvZiB3ZWJzZWFyY2hfdG9fdHNx dWVyeSBoYXZlICIoMSByb3cpIiBhZnRlciBlYWNoIG9uZSwgd2hpbGUKICAgdGhlIG9uZXMgZm9y IHByZXZpb3VzIGZ1bmN0aW9ucyBsYWNrIGl0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0g aHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L3RleHRzZWFyY2gtZmVhdHVy ZXMuaHRtbCNURVhUU0VBUkNILU1BTklQVUxBVEUtVFNRVUVSWQoKMTIuNC4yLiBNYW5pcHVsYXRp bmcgUXVlcmllcwoKdHNxdWVyeSAmJiB0c3F1ZXJ5CiAgICBSZXR1cm5zIHRoZSBBTkQtY29tYmlu YXRpb24gb2YgdGhlIHR3byBnaXZlbiBxdWVyaWVzLgogICAgICAtLSBJcyB0aGlzICJnaXZlbiIg YSBnb29kIEVuZ2xpc2ggKHRoZXJlIGFyZSBzZXZlcmFsIHNpbWlsYXIgc2VudGVuY2VzCiAgICAg ICAgIGJlbG93KT8KCi0tLS0tIDxpbiB0aGUgc2FtZSBzZWN0aW9uPiAtLS0tLS0KClNFTEVDVCBu dW1ub2RlKHBsYWludG9fdHNxdWVyeSgndGhlIGFueScpKTsKTk9USUNFOiAgcXVlcnkgY29udGFp bnMgb25seSBzdG9wd29yZChzKSBvciBkb2Vzbid0IGNvbnRhaW4gbGV4ZW1lKHMpLCBpZ25vcmVk CiBudW1ub2RlCi0tLS0tLS0tLQogICAgICAgMAogIC0tIFRoZSBhY3R1YWwgTk9USUNFIHNwZWxs aW5nIG5vdyBpczoKICAgICAidGV4dC1zZWFyY2ggcXVlcnkgY29udGFpbnMgb25seSBzdG9wIHdv cmRzIG9yIGRvZXNuJ3QgY29udGFpbiBsZXhlbWVzLAogICAgIGlnbm9yZWQiCgotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotLSBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQv dGV4dHNlYXJjaC1kaWN0aW9uYXJpZXMuaHRtbCNURVhUU0VBUkNILVNZTk9OWU0tRElDVElPTkFS WQoKMTIuNi4zLiBTeW5vbnltIERpY3Rpb25hcnkKCm15ZGI9IyBDUkVBVEUgVEVYVCBTRUFSQ0gg RElDVElPTkFSWSBzeW4gKHRlbXBsYXRlPXN5bm9ueW0sIHN5bm9ueW1zPSdzeW5vbnltX3NhbXBs ZScpOwogIC0tIFdoeSBpcyB0aGlzICJteWRiPSMiIHByZWZpeCBpbiBhbGwgdGhlIGV4YW1wbGVz IGhlcmUgKHByZXZpb3VzIG9uZXMgZG9uJ3QKICAgICBoYXZlIGl0KT8KCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC90ZXh0 c2VhcmNoLWRpY3Rpb25hcmllcy5odG1sI1RFWFRTRUFSQ0gtVEhFU0FVUlVTCgoxMi42LjQuMS4g VGhlc2F1cnVzIENvbmZpZ3VyYXRpb24KCkNSRUFURSBURVhUIFNFQVJDSCBESUNUSU9OQVJZIHRo ZXNhdXJ1c19zaW1wbGUgKAogICAgVEVNUExBVEUgPSB0aGVzYXVydXMsCiAgICBEaWN0RmlsZSA9 IG15dGhlc2F1cnVzLAogICAgRGljdGlvbmFyeSA9IHBnX2NhdGFsb2cuZW5nbGlzaF9zdGVtCik7 CiAgLS0gV2h5IFRFTVBMQVRFIGlzIHNwZWxsZWQgYWxsLUNBUFMgaGVyZSwgd2hpbGUgRGljdEZp bGUgaXMgY2FtZWwtY2FzZSAoc2VlbXMKICAgICBpbmNvbnNpc3RlbnQgc3R5bGUpPwoKLS0tLS0g PGluIHRoZSBzYW1lIHNlY3Rpb24+IC0tLS0tLQoKVGhlc2F1cnVzZXMgYXJlIHVzZWQgZHVyaW5n IGluZGV4aW5nIHNvIGFueSBjaGFuZ2UgaW4gdGhlIHRoZXNhdXJ1cyBkaWN0aW9uYXJ5J3MKcGFy YW1ldGVycyByZXF1aXJlcyByZWluZGV4aW5nLiBGb3IgbW9zdCBvdGhlciBkaWN0aW9uYXJ5IHR5 cGVzLCBzbWFsbCBjaGFuZ2VzCnN1Y2ggYXMgYWRkaW5nIG9yIHJlbW92aW5nIHN0b3B3b3JkcyBk b2VzIG5vdCBmb3JjZSByZWluZGV4aW5nLgogIC0tIElzIGl0ICJzdG9wIHdvcmRzIiBvciAic3Rv cHdvcmRzIiwgb3IgInN0b3Atd29yZHMiPyBTcGVsbGluZyBzZWVtcyB0byBiZQogICAgIGluY29u c2lzdGVudCBpbiB0aGUgZG9jdW1lbnRhdGlvbiAoYW5kIGVycm9yIG1lc3NhZ2VzKS4KCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3Vy cmVudC90ZXh0c2VhcmNoLWluZGV4ZXMuaHRtbAoKMTIuOS4gR0lOIGFuZCBHaVNUIEluZGV4IFR5 cGVzCgpBIEdpU1QgaW5kZXggY2FuIGJlIGNvdmVyaW5nLCBpLmUuIHVzZSB0aGUgSU5DTFVERSBj bGF1c2UuIEluY2x1ZGVkIGNvbHVtbnMgY2FuCmhhdmUgZGF0YSB0eXBlcyB3aXRob3V0IGFueSBH aVNUIG9wZXJhdG9yIGNsYXNzLiBJbmNsdWRlZCBhdHRyaWJ1dGVzIHdpbGwgYmUKc3RvcmVkIHVu Y29tcHJlc3NlZC4KICAtLSBJcyB0aGlzIHJlYWxseSByZWxldmFudCBoZXJlIChpdCdzIHRoZSBz YW1lIGZvciBhbnkgR2lTVCBpbmRleCk/CgotLS0tLSA8aW4gdGhlIHNhbWUgc2VjdGlvbj4gLS0t LS0tCgpTaW5jZSByYW5kb20gYWNjZXNzIHRvIHRhYmxlIHJlY29yZHMgaXMgc2xvdywgdGhpcyBs aW1pdHMgdGhlIHVzZWZ1bG5lc3Mgb2YgR2lTVAppbmRleGVzLgogIC0tIE9yIGl0IG1pZ2h0IG5v dCBiZSAtLS0gaWYgaXQncyBTU0QsIG9yIHRoZSBpbmRleCBwYWdlcyBhcmUgaW4gUkFNLgoKLS0t LS0gPGluIHRoZSBzYW1lIHNlY3Rpb24+IC0tLS0tLQoKTm90ZSB0aGF0IEdJTiBpbmRleCBidWls ZCB0aW1lIGNhbiBvZnRlbiBiZSBpbXByb3ZlZCBieSBpbmNyZWFzaW5nCm1haW50ZW5hbmNlX3dv cmtfbWVtLCB3aGlsZSBHaVNUIGluZGV4IGJ1aWxkIHRpbWUgaXMgbm90IHNlbnNpdGl2ZSB0byB0 aGF0CnBhcmFtZXRlci4KICAtLSBCdWZmZXJlZCBHaVNUIGJ1aWxkIGRvZXMgZGVwZW5kIG9uIG1h aW50ZW5hbmNlX3dvcmtfbWVtIHZhbHVlLgoKLS0tLS0gPGluIHRoZSBzYW1lIHNlY3Rpb24+IC0t LS0tLQoKUGFydGl0aW9uaW5nIGNhbiBiZSBkb25lIGF0IHRoZSBkYXRhYmFzZSBsZXZlbCB1c2lu ZyB0YWJsZSBpbmhlcml0YW5jZSwgb3IgYnkKZGlzdHJpYnV0aW5nIGRvY3VtZW50cyBvdmVyIHNl cnZlcnMgYW5kIGNvbGxlY3RpbmcgZXh0ZXJuYWwgc2VhcmNoIHJlc3VsdHMsIGUuZy4KdmlhIEZv cmVpZ24gRGF0YSBhY2Nlc3MuCiAgLS0gV2h5IGlzIGl0ICJ0YWJsZSBpbmhlcml0YW5jZSIgaGVy ZSwgbm90IGRlY2xhcmF0aXZlIHBhcnRpdGlvbmluZz8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0tIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC90ZXh0c2VhcmNoLXBz cWwuaHRtbAoKMTIuMTAuIHBzcWwgU3VwcG9ydAoKLS0gQWxsIG9mIHRoaXMgaXMgZG9jdW1lbnRl ZCBpbiBwc3FsIHJlZmVyZW5jZSwgYW5kIGV4YW1wbGVzIGhlcmUgYXJlIGxlbmd0aHkuCgotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotLSBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1 cnJlbnQvdHJhbnNhY3Rpb24taXNvLmh0bWwjWEFDVC1SRVBFQVRBQkxFLVJFQUQKCjEzLjIuMi4g UmVwZWF0YWJsZSBSZWFkIElzb2xhdGlvbiBMZXZlbAoKVGhlIFJlcGVhdGFibGUgUmVhZCBtb2Rl IHByb3ZpZGVzIGEgcmlnb3JvdXMgZ3VhcmFudGVlIHRoYXQgZWFjaCB0cmFuc2FjdGlvbgpzZWVz IGEgY29tcGxldGVseSBzdGFibGUgdmlldyBvZiB0aGUgZGF0YWJhc2UuIEhvd2V2ZXIsIHRoaXMg dmlldyB3aWxsIG5vdApuZWNlc3NhcmlseSBhbHdheXMgYmUgY29uc2lzdGVudCB3aXRoIHNvbWUg c2VyaWFsIChvbmUgYXQgYSB0aW1lKSBleGVjdXRpb24gb2YKY29uY3VycmVudCB0cmFuc2FjdGlv bnMgb2YgdGhlIHNhbWUgbGV2ZWwuIEZvciBleGFtcGxlLCBldmVuIGEgcmVhZCBvbmx5CnRyYW5z YWN0aW9uIGF0IHRoaXMgbGV2ZWwgbWF5IHNlZSBhIGNvbnRyb2wgcmVjb3JkIHVwZGF0ZWQgdG8g c2hvdyB0aGF0IGEgYmF0Y2gKaGFzIGJlZW4gY29tcGxldGVkIGJ1dCBub3Qgc2VlIG9uZSBvZiB0 aGUgZGV0YWlsIHJlY29yZHMgd2hpY2ggaXMgbG9naWNhbGx5IHBhcnQKb2YgdGhlIGJhdGNoIGJl Y2F1c2UgaXQgcmVhZCBhbiBlYXJsaWVyIHJldmlzaW9uIG9mIHRoZSBjb250cm9sIHJlY29yZC4K ICAtLSBUaGUgZXhhbXBsZSBpcyB2ZXJ5IHZhZ3VlIGJ5IGl0c2VsZiwgSU1PLiBJIHN1cHBvc2Ug aXQncyBhIHJlZmVyZW5jZSB0bwogICAgIGh0dHBzOi8vd2lraS5wb3N0Z3Jlc3FsLm9yZy93aWtp L1NTSSNEZXBvc2l0X1JlcG9ydCAsIGJ1dCBpcyBpdCByZWFsbHkKICAgICBleHBlY3RlZCBhIHJl YWRlciB3aWxsIHVuZGVyc3RhbmQgdGhhdCBmcm9tIHRoZSBhYm92ZSBwYXJhZ3JhcGg/IQoKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9j dXJyZW50L3RyYW5zYWN0aW9uLWlzby5odG1sI1hBQ1QtU0VSSUFMSVpBQkxFCgoxMy4yLjMuIFNl cmlhbGl6YWJsZSBJc29sYXRpb24gTGV2ZWwKClN1cHBvc2UgdGhhdCBzZXJpYWxpemFibGUgdHJh bnNhY3Rpb24gQSBjb21wdXRlczoKCjxza2lwPgoKQ29uY3VycmVudGx5LCBzZXJpYWxpemFibGUg dHJhbnNhY3Rpb24gQiBjb21wdXRlczoKCjxza2lwPgoKYnV0IHNpbmNlIHRoZXJlIGlzIG5vIHNl cmlhbCBvcmRlciBvZiBleGVjdXRpb24gY29uc2lzdGVudCB3aXRoIHRoZSByZXN1bHQsCnVzaW5n IFNlcmlhbGl6YWJsZSB0cmFuc2FjdGlvbnMgd2lsbCBhbGxvdyBvbmUgdHJhbnNhY3Rpb24gdG8g Y29tbWl0IGFuZCB3aWxsCnJvbGwgdGhlIG90aGVyIGJhY2sgd2l0aCB0aGlzIG1lc3NhZ2U6CiAg LS0gSW5jb25zaXN0ZW50IGNhcGl0YWxpemF0aW9uIG9mIFNlcmlhbGl6YWJsZT8KCi0tLS0tIDxp biB0aGUgc2FtZSBzZWN0aW9uPiAtLS0tLS0KCklmIHlvdSBleHBsaWNpdGx5IHJlcXVlc3QgYSBT RVJJQUxJWkFCTEUgUkVBRCBPTkxZIERFRkVSUkFCTEUgdHJhbnNhY3Rpb24sIGl0CndpbGwgYmxv Y2sgdW50aWwgaXQgY2FuIGVzdGFibGlzaCB0aGlzIGZhY3QuCiAgLS0gQWN0dWFsbHksIHRoZSBm aXJzdCBxdWVyeSBpbiBzdWNoIGEgdHJhbnNhY3Rpb24gd2lsbCBibG9jay4gUGVyaGFwcywgaXQK ICAgICBzaG91bGQgYmUgY2xhcmlmaWVkPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gaHR0 cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L2V4cGxpY2l0LWxvY2tpbmcuaHRt bCNBRFZJU09SWS1MT0NLUwoKMTMuMy41LiBBZHZpc29yeSBMb2NrcwoKTGlrZSBhbGwgbG9ja3Mg aW4gUG9zdGdyZVNRTCwgYSBjb21wbGV0ZSBsaXN0IG9mIGFkdmlzb3J5IGxvY2tzIGN1cnJlbnRs eSBoZWxkCmJ5IGFueSBzZXNzaW9uIGNhbiBiZSBmb3VuZCBpbiB0aGUgcGdfbG9ja3Mgc3lzdGVt IHZpZXcuCiAgIC0tIFJvdy1sZXZlbCBsb2NrcyBhcmUgbm90IHRoZXJlIC0tLSBwZXJoYXBzLCAi TGlrZSBhbGwgbG9ja3MgLi4uIiBwYXJ0IGlzCiAgICAgIGp1c3QgdW5uZWNlc3Nhcnk/CgotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotLSBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1 cnJlbnQvdXNpbmctZXhwbGFpbi5odG1sCgoxNC4xLiBVc2luZyBFWFBMQUlOCgpFeGFtcGxlcyBp biB0aGlzIHNlY3Rpb24gYXJlIGRyYXduIGZyb20gdGhlIHJlZ3Jlc3Npb24gdGVzdCBkYXRhYmFz ZSBhZnRlciBkb2luZwphIFZBQ1VVTSBBTkFMWVpFLCB1c2luZyA5LjMgZGV2ZWxvcG1lbnQgc291 cmNlcy4KICAtLSBXaGljaCBpcyBFT0wgYnkgbm93LiBJc24ndCBpdCBhIHRpbWUgdG8gdXBkYXRl PwoKLS0tLS0gPGluIHRoZSBzYW1lIHNlY3Rpb24+IC0tLS0tLQoKWW91IHNob3VsZCBiZSBhYmxl IHRvIGdldCBzaW1pbGFyIHJlc3VsdHMgaWYgeW91IHRyeSB0aGUgZXhhbXBsZXMgeW91cnNlbGYs IGJ1dAp5b3VyIGVzdGltYXRlZCBjb3N0cyBhbmQgcm93IGNvdW50cyBtaWdodCB2YXJ5IHNsaWdo dGx5IGJlY2F1c2UgQU5BTFlaRSdzCnN0YXRpc3RpY3MgYXJlIHJhbmRvbSBzYW1wbGVzIHJhdGhl ciB0aGFuIGV4YWN0LCBhbmQgYmVjYXVzZSBjb3N0cyBhcmUKaW5oZXJlbnRseSBzb21ld2hhdCBw bGF0Zm9ybS1kZXBlbmRlbnQuCiAgLS0gV2hhdCBkb2VzIGl0IG1lYW4gKHRoYXQgc29tZSBwbGFu bmVyIGNvc3QgY29uc3RhbnRzIGFyZSBwbGF0Zm9ybS1kZXBlbmRlbnQpPwoKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLS0gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L3Vz aW5nLWV4cGxhaW4uaHRtbCNVU0lORy1FWFBMQUlOLUJBU0lDUwoKMTQuMS4xLiBFWFBMQUlOIEJh c2ljcwoKKEV2ZXJ5IGNvcnJlY3QgcGxhbiB3aWxsIG91dHB1dCB0aGUgc2FtZSByb3cgc2V0LCB3 ZSB0cnVzdC4pCiAgLS0gV2hpY2ggaXMgb3V0cmlnaHQgd3Jvbmc6CiAgICAgIFNFTEVDVCAqCiAg ICAgICAgRlJPTSBhbnlfdGFibGUKICAgICAgIFdIRVJFIHJhbmRvbSgpIDwgMC4xOwoKLS0tLS0g PGluIHRoZSBzYW1lIHNlY3Rpb24+IC0tLS0tLQpSZXR1cm5pbmcgdG8gb3VyIGV4YW1wbGU6CiAg LS0gSXMgaXQgcmVhbGx5IHdvcnRoIHJlcGVhdGluZyBpdCBpbiBmdWxsIChpdCdzIG5vdCB0aGF0 IGZhciBhYm92ZSk/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSBodHRwczovL3d3dy5wb3N0 Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQvdXNpbmctZXhwbGFpbi5odG1sI1VTSU5HLUVYUExBSU4t QU5BTFlaRQoKMTQuMS4yLiBFWFBMQUlOIEFOQUxZWkUKClRoZSBudW1iZXJzIHByb3ZpZGVkIGJ5 IEJVRkZFUlMgaGVscCB0byBpZGVudGlmeSB3aGljaCBwYXJ0cyBvZiB0aGUgcXVlcnkgYXJlCnRo ZSBtb3N0IEkvTy1pbnRlbnNpdmUuCiAgLS0gTm8gbWVudGlvbiBvZiB3aGF0IHRoZXNlIG51bWJl cnMgYWN0dWFsbHkgKmFyZSogKHBhZ2VzIC8gYmxvY2tzKS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCi0tIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9wbGFubmVyLXN0 YXRzLmh0bWwjUExBTk5FUi1TVEFUUy1FWFRFTkRFRAoKMTQuMi4yLjEuIEZ1bmN0aW9uYWwgRGVw ZW5kZW5jaWVzCgpJbiBhIGZ1bGx5IG5vcm1hbGl6ZWQgZGF0YWJhc2UsIGZ1bmN0aW9uYWwgZGVw ZW5kZW5jaWVzIHNob3VsZCBleGlzdCBvbmx5IG9uCnByaW1hcnkga2V5cyBhbmQgc3VwZXJrZXlz LiBIb3dldmVyLCBpbiBwcmFjdGljZSBtYW55IGRhdGEgc2V0cyBhcmUgbm90IGZ1bGx5Cm5vcm1h bGl6ZWQgZm9yIHZhcmlvdXMgcmVhc29uczsgaW50ZW50aW9uYWwgZGVub3JtYWxpemF0aW9uIGZv ciBwZXJmb3JtYW5jZQpyZWFzb25zIGlzIGEgY29tbW9uIGV4YW1wbGUuCiAgIC0tIENvbmZ1c2lu ZyB0ZXJtaW5vbG9neTogSUlSQywgbW9kZXJuIG5vcm1hbGl6YXRpb24gdGhlb3J5IGRvZXNuJ3Qg dXNlIFBLcwogICAgICAoYnV0ICJjYW5kaWRhdGUga2V5cyIpLiBCZXNpZGVzLCAiZGVub3JtYWxp emF0aW9uIiBpcyBjb25mdXNpbmcgYnkgaXRzZWxmLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LS0gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L2luc3RhbGwtcHJvY2Vk dXJlLmh0bWwKCjE2LjQuIEluc3RhbGxhdGlvbiBQcm9jZWR1cmUKClRoZSBzdGFuZGFyZCBpbnN0 YWxsYXRpb24gcHJvdmlkZXMgYWxsIHRoZSBoZWFkZXIgZmlsZXMgbmVlZGVkIGZvciBjbGllbnQK YXBwbGljYXRpb24gZGV2ZWxvcG1lbnQgYXMgd2VsbCBhcyBmb3Igc2VydmVyLXNpZGUgcHJvZ3Jh bSBkZXZlbG9wbWVudCwgc3VjaCBhcwpjdXN0b20gZnVuY3Rpb25zIG9yIGRhdGEgdHlwZXMgd3Jp dHRlbiBpbiBDLiAoUHJpb3IgdG8gUG9zdGdyZVNRTCA4LjAsIGEKc2VwYXJhdGUgbWFrZSBpbnN0 YWxsLWFsbC1oZWFkZXJzIGNvbW1hbmQgd2FzIG5lZWRlZCBmb3IgdGhlIGxhdHRlciwgYnV0IHRo aXMKc3RlcCBoYXMgYmVlbiBmb2xkZWQgaW50byB0aGUgc3RhbmRhcmQgaW5zdGFsbC4pCiAgLS0g SSBndWVzcyB0aGUgbGFzdCBzZW50ZW5jZSBpcyBub3QgcmVsZXZhbnQgYW55bW9yZS4KCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3Vy cmVudC9pbnN0YWxsYXRpb24tcGxhdGZvcm0tbm90ZXMuaHRtbCNJTlNUQUxMQVRJT04tTk9URVMt Q1lHV0lOCgoxNi43LjIuIEN5Z3dpbgoKVGhlIGFkZHVzZXIgY29tbWFuZCBpcyBub3Qgc3VwcG9y dGVkOyB1c2UgdGhlIGFwcHJvcHJpYXRlIHVzZXIgbWFuYWdlbWVudAphcHBsaWNhdGlvbiBvbiBX aW5kb3dzIE5ULCAyMDAwLCBvciBYUC4gT3RoZXJ3aXNlLCBza2lwIHRoaXMgc3RlcC4KClRoZSBz dSBjb21tYW5kIGlzIG5vdCBzdXBwb3J0ZWQ7IHVzZSBzc2ggdG8gc2ltdWxhdGUgc3Ugb24gV2lu ZG93cyBOVCwgMjAwMCwgb3IKWFAuIE90aGVyd2lzZSwgc2tpcCB0aGlzIHN0ZXAuCiAgLS0gQUZB SUssIGFsbCB0aGVzZSBvcGVyYXRpbmcgc3lzdGVtcyBhcmUgZGVhZC4KCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9pbnN0 YWxsLXdpbmRvd3MtZnVsbC5odG1sI2lkLTEuNi40LjguOAoKMTcuMS4xLiBSZXF1aXJlbWVudHMK CkFjdGl2ZVN0YXRlIFRDTAoKICBSZXF1aXJlZCBmb3IgYnVpbGRpbmcgUEwvVGNsIChOb3RlOiB2 ZXJzaW9uIDguNCBpcyByZXF1aXJlZCwgdGhlIGZyZWUgU3RhbmRhcmQKICBEaXN0cmlidXRpb24g aXMgc3VmZmljaWVudCkuCiAgICAtLSB2ZXJzaW9uIDguNCBvciBsYXRlciwgcGVyaGFwcz8KCi0t LS0tIDxpbiB0aGUgc2FtZSBzZWN0aW9uPiAtLS0tLS0KTm90ZQogICBUaGUgb2Jzb2xldGUgd2lu ZmxleCBiaW5hcmllcyBkaXN0cmlidXRlZCBvbiB0aGUgUG9zdGdyZVNRTCBGVFAgc2l0ZSBhbmQK ICAgcmVmZXJlbmNlZCBpbiBvbGRlciBkb2N1bWVudGF0aW9uIHdpbGwgZmFpbCB3aXRoICJmbGV4 OiBmYXRhbCBpbnRlcm5hbCBlcnJvciwKICAgZXhlYyBmYWlsZWQiIG9uIDY0LWJpdCBXaW5kb3dz IGhvc3RzLiBVc2UgRmxleCBmcm9tIE1TWVMgaW5zdGVhZC4KICAgICAtLSBJcyB0aGlzIG5vdGUg c3RpbGwgcmVsZXZhbnQ/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSBodHRwczovL3d3dy5w b3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQvY3JlYXRpbmctY2x1c3Rlci5odG1sCgoxOC4yLiBD cmVhdGluZyBhIERhdGFiYXNlIENsdXN0ZXIKCkFmdGVyIGluaXRpYWxpemF0aW9uLCBhIGRhdGFi YXNlIGNsdXN0ZXIgd2lsbCBjb250YWluIGEgZGF0YWJhc2UgbmFtZWQgcG9zdGdyZXMsCndoaWNo IGlzIG1lYW50IGFzIGEgZGVmYXVsdCBkYXRhYmFzZSBmb3IgdXNlIGJ5IHV0aWxpdGllcywgdXNl cnMgYW5kIHRoaXJkIHBhcnR5CmFwcGxpY2F0aW9ucy4gVGhlIGRhdGFiYXNlIHNlcnZlciBpdHNl bGYgZG9lcyBub3QgcmVxdWlyZSB0aGUgcG9zdGdyZXMgZGF0YWJhc2UKdG8gZXhpc3QsIGJ1dCBt YW55IGV4dGVybmFsIHV0aWxpdHkgcHJvZ3JhbXMgYXNzdW1lIGl0IGV4aXN0cy4gQW5vdGhlciBk YXRhYmFzZQpjcmVhdGVkIHdpdGhpbiBlYWNoIGNsdXN0ZXIgZHVyaW5nIGluaXRpYWxpemF0aW9u IGlzIGNhbGxlZCB0ZW1wbGF0ZTEuCiAgLS0gV2h5IHRlbXBsYXRlMCBpcyBub3QgbWVudGlvbmVk IGF0IGFsbCBpbiB0aGlzIHN1YmNoYXB0ZXI/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSBo dHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQva2VybmVsLXJlc291cmNlcy5o dG1sI1NZU1ZJUEMKCjE4LjQuMS4gU2hhcmVkIE1lbW9yeSBhbmQgU2VtYXBob3JlcwoKVGhlIG1h eGltdW0gbnVtYmVyIG9mIHNlbWFwaG9yZXMgaW4gdGhlIHN5c3RlbSBpcyBzZXQgYnkgU0VNTU5T LCB3aGljaApjb25zZXF1ZW50bHkgbXVzdCBiZSBhdCBsZWFzdCBhcyBoaWdoIGFzIG1heF9jb25u ZWN0aW9ucyBwbHVzCmF1dG92YWN1dW1fbWF4X3dvcmtlcnMgcGx1cyBtYXhfd2FsX3NlbmRlcnMs IHBsdXMgbWF4X3dvcmtlcl9wcm9jZXNzZXMsIHBsdXMgb25lCmV4dHJhIGZvciBlYWNoIDE2IGFs bG93ZWQgY29ubmVjdGlvbnMgcGx1cyB3b3JrZXJzIChzZWUgdGhlIGZvcm11bGEgaW4gVGFibGUK MTguMSkuCiAgLS0gV2h5IGR1cGxpY2F0ZSBmb3JtdWxhcyAoaW4gdGhlIHRhYmxlIGFuZCBoZXJl KT8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3Jn L2RvY3MvY3VycmVudC91cGdyYWRpbmcuaHRtbCNVUEdSQURJTkctVklBLVBHRFVNUEFMTAoKMTgu Ni4xLiBVcGdyYWRpbmcgRGF0YSB2aWEgcGdfZHVtcGFsbAoKT25lIHVwZ3JhZGUgbWV0aG9kIGlz IHRvIGR1bXAgZGF0YSBmcm9tIG9uZSBtYWpvciB2ZXJzaW9uIG9mIFBvc3RncmVTUUwgYW5kCnJl bG9hZCBpdCBpbiBhbm90aGVyIC0gdG8gZG8gdGhpcywgeW91IG11c3QgdXNlIGEgbG9naWNhbCBi YWNrdXAgdG9vbCBsaWtlCnBnX2R1bXBhbGw7IGZpbGUgc3lzdGVtIGxldmVsIGJhY2t1cCBtZXRo b2RzIHdpbGwgbm90IHdvcmsuCiAgLS0gSU1PLCBpdCB3b3VsZCBiZSBuaWNlIHRvIGNhbGwgZHVt cHMgZHVtcHMsIG5vdCAibG9naWNhbCBiYWNrdXBzIi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0tIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9yb2xlLWF0dHJpYnV0 ZXMuaHRtbAoKMjEuMi4gUm9sZSBBdHRyaWJ1dGVzCgooZXhjZXB0IGZvciBzdXBlcnVzZXJzLCBz aW5jZSB0aG9zZSBieXBhc3MgYWxsIHBlcm1pc3Npb24gY2hlY2tzKQogIC0tIFJlcGVhdGVkIHNl dmVyYWwgdGltZXMgaW4gdGhpcyBzdWJjaGFwdGVyIChjb3VsZCBpdCBiZSByZXBocmFzZWQ/KS4K Ci0tLS0tIDxpbiB0aGUgc2FtZSBzZWN0aW9uPiAtLS0tLS0KClRoZSBwYXNzd29yZCBhbmQgbWQ1 IGF1dGhlbnRpY2F0aW9uIG1ldGhvZHMgbWFrZSB1c2Ugb2YgcGFzc3dvcmRzLiBEYXRhYmFzZQpw YXNzd29yZHMgYXJlIHNlcGFyYXRlIGZyb20gb3BlcmF0aW5nIHN5c3RlbSBwYXNzd29yZHMuCiAg LS0gV2hhdCBhYm91dCBTQ1JBTSAoc2NyYW0tc2hhLTI1Nik/CgotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotLSBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQvbWFuYWdlLWFn LWRyb3BkYi5odG1sCgoyMi41LiBEZXN0cm95aW5nIGEgRGF0YWJhc2UKCnRlbXBsYXRlMSB3b3Vs ZCBiZSB0aGUgb25seSBvcHRpb24gZm9yIGRyb3BwaW5nIHRoZSBsYXN0IHVzZXIgZGF0YWJhc2Ug b2YgYQpnaXZlbiBjbHVzdGVyLgogIC0tIFdoYXQgYWJvdXQgdXNpbmcgInBvc3RncmVzIiAob3Ig ZXZlbiB0ZW1wbGF0ZTAsIGlmIG9uZSBhbGxvd3MgY29ubmVjdGlvbnMKICAgICB0byBpdCkgZGF0 YWJhc2U/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSBodHRwczovL3d3dy5wb3N0Z3Jlc3Fs Lm9yZy9kb2NzL2N1cnJlbnQvbWFuYWdlLWFnLXRhYmxlc3BhY2VzLmh0bWwKCjIyLjYuIFRhYmxl c3BhY2VzCgpOb3RlIHRoYXQgaW4gUG9zdGdyZVNRTCA5LjEgYW5kIGVhcmxpZXIgeW91IHdpbGwg YWxzbyBuZWVkIHRvIHVwZGF0ZSB0aGUKcGdfdGFibGVzcGFjZSBjYXRhbG9nIHdpdGggdGhlIG5l dyBsb2NhdGlvbnMuIChJZiB5b3UgZG8gbm90LCBwZ19kdW1wIHdpbGwKY29udGludWUgdG8gb3V0 cHV0IHRoZSBvbGQgdGFibGVzcGFjZSBsb2NhdGlvbnMuKQogIC0tIE91dGRhdGVkIGNvbW1lbnQg KDkuMSBpcyBFT0wpLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gaHR0cHM6Ly93d3cucG9z dGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L21haW50ZW5hbmNlLmh0bWwKCkNoYXB0ZXIgMjQuIFJv dXRpbmUgRGF0YWJhc2UgTWFpbnRlbmFuY2UgVGFza3MKClBvc3RncmVTUUwsIGxpa2UgYW55IGRh dGFiYXNlIHNvZnR3YXJlLCByZXF1aXJlcyB0aGF0IGNlcnRhaW4gdGFza3MgYmUgcGVyZm9ybWVk CnJlZ3VsYXJseSB0byBhY2hpZXZlIG9wdGltdW0gcGVyZm9ybWFuY2UuCiAgLS0gV2h5IG5vdCBy ZW1vdmUgImxpa2UgYW55IGRhdGFiYXNlIHNvZnR3YXJlIj8gSSByZWFsbHkgZG91YnQgYW55b25l IGNoZWNrZWQKICAgICBldmVyeSAiZGF0YWJhc2Ugc29mdHdhcmUiIGluIHRoZSB3b3JsZCAoYW5k LCBzYXksIHNxbGl0ZSBjb21lcyB0byBtaW5kKS4KICAgICBCZXNpZGVzLCBob3cgaXMgdGhhdCBy ZWxldmFudCB0byB0aGUgcG9pbnQgbWFkZSBoZXJlPwoKLS0tLS0gPGluIHRoZSBzYW1lIHNlY3Rp b24+IC0tLS0tLQoKVGhlIG90aGVyIG1haW4gY2F0ZWdvcnkgb2YgbWFpbnRlbmFuY2UgdGFzayBp cyBwZXJpb2RpYyAidmFjdXVtaW5nIiBvZiB0aGUKZGF0YWJhc2UuCiAgLS0gIm9mIG1haW50ZW5h bmNlIHRhc2tzIiAocGx1cmFsKSwgcGVyaGFwcz8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0t IGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9yb3V0aW5lLXZhY3V1bWlu Zy5odG1sI1ZBQ1VVTS1GT1ItV1JBUEFST1VORAoKMjQuMS41LiBQcmV2ZW50aW5nIFRyYW5zYWN0 aW9uIElEIFdyYXBhcm91bmQgRmFpbHVyZXMKCnZhY3V1bV9mcmVlemVfbWluX2FnZSBjb250cm9s cyBob3cgb2xkIGFuIFhJRCB2YWx1ZSBoYXMgdG8gYmUgYmVmb3JlIHJvd3MKYmVhcmluZyB0aGF0 IFhJRCB3aWxsIGJlIGZyb3plbi4gSW5jcmVhc2luZyB0aGlzIHNldHRpbmcgbWF5IGF2b2lkIHVu bmVjZXNzYXJ5CndvcmsgaWYgdGhlIHJvd3MgdGhhdCB3b3VsZCBvdGhlcndpc2UgYmUgZnJvemVu IHdpbGwgc29vbiBiZSBtb2RpZmllZCBhZ2FpbiwgYnV0CmRlY3JlYXNpbmcgdGhpcyBzZXR0aW5n IGluY3JlYXNlcyB0aGUgbnVtYmVyIG9mIHRyYW5zYWN0aW9ucyB0aGF0IGNhbiBlbGFwc2UKYmVm b3JlIHRoZSB0YWJsZSBtdXN0IGJlIHZhY3V1bWVkIGFnYWluLgogIC0tIElzbid0IGl0ICJkZWNy ZWFzaW5nIHRoaXMgc2V0dGluZyBfZGVjcmVhc2VzXyB0aGUgbnVtYmVyIG9mCiAgICAgdHJhbnNh Y3Rpb25zLi4uIj8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBvc3Rn cmVzcWwub3JnL2RvY3MvY3VycmVudC9iYWNrdXAuaHRtbAoKQ2hhcHRlciAyNS4gQmFja3VwIGFu ZCBSZXN0b3JlCgpBcyB3aXRoIGV2ZXJ5dGhpbmcgdGhhdCBjb250YWlucyB2YWx1YWJsZSBkYXRh LCBQb3N0Z3JlU1FMIGRhdGFiYXNlcyBzaG91bGQgYmUKYmFja2VkIHVwIHJlZ3VsYXJseS4KICAt LSBJTU5TSE8sIHRoZSB3aG9sZSBwb2ludCBvZiB0aGUgY2hhcHRlciBpcyBiYWNrd2FyZHMuIElm IHRoZSBkYXRhIGlzCiAgICAgdmFsdWFibGUsIG9uZSB3YW50cyB0byBwcmV2ZW50IChvciByZWNv dmVyKSBmcm9tIGl0cyBsb3NzLiBCYWNrdXBzIGFyZSBqdXN0CiAgICAgYSAqbWVhbiogZm9yIHRo YXQsIHdoaWxlIGRhdGEgbG9zcyBhdm9pZGFuY2UgaXMgdGhlICpnb2FsKi4gRW50ZXJzIGRpc2Fz dGVyCiAgICAgcmVjb3ZlcnkgKGFuZCBtb3JlIGJyb2FkbHkgYnVzaW5lc3MgY29udGludWl0eSku IFR3byBtZXRyaWNzIGFyZQogICAgIGZ1bmRhbWVudGFsIHRvIHRoYXQ6IFJQTyBhbmQgUlRPLiBV c2luZyBwZ19kdW1wLCBvbmUgY2Fubm90IGV2ZW4gZ2V0CiAgICAgcHJlZGljdGFibGUgdmFsdWVz IGZvciB0aG9zZSBpbiBhbnkgbm9uLXRyaXZpYWwgY2FzZS4gVGhlcmVmb3JlLCAiMjUuMS4gU1FM CiAgICAgRHVtcCIgc2hvdWxkIG5vdCBiZSBmaXJzdCBhbmQgZm9yZW1vc3QgaW4gdGhlIGNoYXB0 ZXIgKGlmIG1lbnRpb25lZCBhdAogICAgIGFsbCk7IGFuZCB0aGUgd2hvbGUgY2hhcHRlciBiZXR0 ZXIgYmUgd3JpdHRlbiB3aXRoIHRoZSBhYm92ZSBpbiBtaW5kLiBBdAogICAgIGxlYXN0LCBpdCB3 b3VsZCBiZSBuaWNlIGlmIGR1bXBzIHdlcmUgY2FsbGVkIGR1bXBzLCBub3QgYmFja3VwcywgYXMg d2VsbCBhcwogICAgIHRoZSBwcm9jZXNzIG9mIG1ha2luZyB0aG9zZSB3YXMgY2FsbGVkIGR1bXBp bmcgaW4gIjI1LjEuIFNRTCBEdW1wIi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIGh0dHBz Oi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9jb250aW51b3VzLWFyY2hpdmluZy5o dG1sI0JBQ0tVUC1CQVNFLUJBQ0tVUAoKMjUuMy4yLiBNYWtpbmcgYSBCYXNlIEJhY2t1cAoKVG8g YWlkIHlvdSBpbiBkb2luZyB0aGlzLCB0aGUgYmFzZSBiYWNrdXAgcHJvY2VzcyBjcmVhdGVzIGEg YmFja3VwIGhpc3RvcnkgZmlsZQp0aGF0IGlzIGltbWVkaWF0ZWx5IHN0b3JlZCBpbnRvIHRoZSBX QUwgYXJjaGl2ZSBhcmVhLgogIC0tIFRoZSBzZW50ZW5jZSBpc24ndCBjbGVhciAtLS0gd2hhdCdz IG1lYW50IGJ5ICJXQUwgYXJjaGl2ZSBhcmVhIiBoZXJlPwoKLS0tLS0gPGluIHRoZSBzYW1lIHNl Y3Rpb24+IC0tLS0tLQoKSWYgeW91IHVzZWQgdGhlIGxhYmVsIHRvIGlkZW50aWZ5IHRoZSBhc3Nv Y2lhdGVkIGR1bXAgZmlsZSwgdGhlbiB0aGUgYXJjaGl2ZWQKaGlzdG9yeSBmaWxlIGlzIGVub3Vn aCB0byB0ZWxsIHlvdSB3aGljaCBkdW1wIGZpbGUgdG8gcmVzdG9yZS4KICAtLSBXaGF0IGlzIG1l YW50IGJ5ICJkdW1wIGZpbGUiIGhlcmU/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSBodHRw czovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQvY29udGludW91cy1hcmNoaXZpbmcu aHRtbCNCQUNLVVAtTE9XTEVWRUwtQkFTRS1CQUNLVVAKCjI1LjMuMy4xLiBNYWtpbmcgYSBOb24t RXhjbHVzaXZlIExvdy1MZXZlbCBCYWNrdXAKCk9uIGEgcHJpbWFyeSwgaWYgYXJjaGl2ZV9tb2Rl IGlzIGVuYWJsZWQgYW5kIHRoZSB3YWl0X2Zvcl9hcmNoaXZlIHBhcmFtZXRlciBpcwp0cnVlLCBw Z19zdG9wX2JhY2t1cCBkb2VzIG5vdCByZXR1cm4gdW50aWwgdGhlIGxhc3Qgc2VnbWVudCBoYXMg YmVlbiBhcmNoaXZlZC4KICAtLSBJdCdzIG5vdCBlbnRpcmVseSBjbGVhciB0aGF0IHdhaXRfZm9y X2FyY2hpdmUgaXMgcGdfc3RvcF9iYWNrdXAgcGFyYW1ldGVyLAogICAgIGFuZCBldmVuIGlmIHll cywgd2hpY2ggb25lIGlzIGl0IChmaXJzdCBvciBzZWNvbmQpLgoKLS0tLS0gPGluIHRoZSBzYW1l IHNlY3Rpb24+IC0tLS0tLQoKMjUuMy4zLjMuIEJhY2tpbmcgVXAgdGhlIERhdGEgRGlyZWN0b3J5 CgpUaGlzIGlzIGVhc3kgdG8gYXJyYW5nZSBpZiBwZ193YWwvIGlzIGEgc3ltYm9saWMgbGluayBw b2ludGluZyB0byBzb21lcGxhY2UKb3V0c2lkZSB0aGUgY2x1c3RlciBkaXJlY3RvcnksIHdoaWNo IGlzIGEgY29tbW9uIHNldHVwIGFueXdheSBmb3IgcGVyZm9ybWFuY2UKcmVhc29ucy4KICAtLSBQ ZXJoYXBzLCB0aGlzICJjb21tb24iIHNldHVwIHNob3VsZCBiZSBhbHNvIG1lbnRpb25lZCAvIHJl Y29tbWVuZGVkCiAgICAgZWxzZXdoZXJlLCB0aGVuPwoKLS0tLS0gPGluIHRoZSBzYW1lIHNlY3Rp b24+IC0tLS0tLQoKSW4gY2FzZSBvZiBjb25mdXNpb24gaXQgaXMgdGhlcmVmb3JlIHBvc3NpYmxl IHRvIGxvb2sgaW5zaWRlIGEgYmFja3VwIGZpbGUgYW5kCmRldGVybWluZSBleGFjdGx5IHdoaWNo IGJhY2t1cCBzZXNzaW9uIHRoZSBkdW1wIGZpbGUgY2FtZSBmcm9tLgogIC0tICJpbnNpZGUgYSBi YWNrdXAgX2xhYmVsXyBmaWxlIiwgcGVyaGFwcz8gQW5kIHdoYXQncyBtZWFudCBieSAiZHVtcCIg aGVyZT8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwu b3JnL2RvY3MvY3VycmVudC9jb250aW51b3VzLWFyY2hpdmluZy5odG1sI0JBQ0tVUC1QSVRSLVJF Q09WRVJZCgoyNS4zLjQuIFJlY292ZXJpbmcgVXNpbmcgYSBDb250aW51b3VzIEFyY2hpdmUgQmFj a3VwCgpJdCBpcyBpbXBvcnRhbnQgdGhhdCB0aGUgY29tbWFuZCByZXR1cm4gbm9uemVybyBleGl0 IHN0YXR1cyBvbiBmYWlsdXJlLgogIC0tICJyZXR1cm5zIiwgcGVyaGFwcz8KCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9j b250aW51b3VzLWFyY2hpdmluZy5odG1sI0JBQ0tVUC1USVBTCgoyNS4zLjYuMS4gU3RhbmRhbG9u ZSBIb3QgQmFja3VwcwoKV2l0aCB0aGlzIHByZXBhcmF0aW9uLCBhIGJhY2t1cCBjYW4gYmUgdGFr ZW4gdXNpbmcgYSBzY3JpcHQgbGlrZSB0aGUgZm9sbG93aW5nOgogIC0tIFRoZSBmb2xsb3dpbmcg aXMgdGhlIHJlY2lwZSBmb3IgYW4gZXhjbHVzaXZlIGJhY2t1cCwgd2hpY2ggaXMgZGVwcmVjYXRl ZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3Jn L2RvY3MvY3VycmVudC9oaWdoLWF2YWlsYWJpbGl0eS5odG1sCgpDaGFwdGVyIDI2LiBIaWdoIEF2 YWlsYWJpbGl0eSwgTG9hZCBCYWxhbmNpbmcsIGFuZCBSZXBsaWNhdGlvbgoKU29tZSBzb2x1dGlv bnMgYXJlIHN5bmNocm9ub3VzLCBtZWFuaW5nIHRoYXQgYSBkYXRhLW1vZGlmeWluZyB0cmFuc2Fj dGlvbiBpcyBub3QKY29uc2lkZXJlZCBjb21taXR0ZWQgdW50aWwgYWxsIHNlcnZlcnMgaGF2ZSBj b21taXR0ZWQgdGhlIHRyYW5zYWN0aW9uLiBUaGlzCmd1YXJhbnRlZXMgdGhhdCBhIGZhaWxvdmVy IHdpbGwgbm90IGxvc2UgYW55IGRhdGEgYW5kIHRoYXQgYWxsIGxvYWQtYmFsYW5jZWQKc2VydmVy cyB3aWxsIHJldHVybiBjb25zaXN0ZW50IHJlc3VsdHMgbm8gbWF0dGVyIHdoaWNoIHNlcnZlciBp cyBxdWVyaWVkLgogIC0tIFRoZSBsYXN0IHNlbnRlbmNlIGNvbmZ1c2VzIGRpc3RyaWJ1dGVkIGR1 cmFiaWxpdHkgKCJndWFyYW50ZWVzIHRoYXQgYQogICAgIGZhaWxvdmVyIHdpbGwgbm90IGxvc2Ug YW55IGRhdGEiKSB3aXRoIGRpc3RyaWJ1dGVkIGF0b21pYyB2aXNpYmlsaXR5ICgiYWxsCiAgICAg bG9hZC1iYWxhbmNlZCBzZXJ2ZXJzIHdpbGwgcmV0dXJuIGNvbnNpc3RlbnQgcmVzdWx0cyIpIC0t LSB0aGUgbGF0dGVyIGlzCiAgICAgaW1wb3NzaWJsZSB0byBndWFyYW50ZWUgYnkgYW55IG1ldGhv ZCBvZiByZXBsaWNhdGlvbiBwcm92aWRlZCBieQogICAgIFBvc3RncmVTUUwuCgotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotLSBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQv bG9nLXNoaXBwaW5nLWFsdGVybmF0aXZlLmh0bWwjV0FSTS1TVEFOREJZLVJFQ09SRAoKMjYuNC4y LiBSZWNvcmQtQmFzZWQgTG9nIFNoaXBwaW5nCgpTdGFydGluZyB3aXRoIFBvc3RncmVTUUwgdmVy c2lvbiA5LjAsIHlvdSBjYW4gdXNlIHN0cmVhbWluZyByZXBsaWNhdGlvbiAoc2VlClNlY3Rpb24g MjYuMi41KSB0byBhY2hpZXZlIHRoZSBzYW1lIGJlbmVmaXRzIHdpdGggbGVzcyBlZmZvcnQuCiAg LS0gVGhlIGRlc2NyaWJlZCBtZXRob2Qgc2VlbXMgdG8gYmUgcXVpdGUgbm9uLXRyaXZpYWwsIGFu ZCwgaXQgc2VlbXMsIHByb3ZpZGVzCiAgICAgbm8gYmVuZWZpdHMgb3ZlciBzdHJlYW1pbmcgcmVw bGljYXRpb24uIFBlcmhhcHMsIHRoaXMgc2VjdGlvbiBzaG91bGQgYmUKICAgICByZW1vdmVkIGFs dG9nZXRoZXI/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSBodHRwczovL3d3dy5wb3N0Z3Jl c3FsLm9yZy9kb2NzL2N1cnJlbnQvaG90LXN0YW5kYnkuaHRtbCNIT1QtU1RBTkRCWS1BRE1JTgoK MjYuNS4zLiBBZG1pbmlzdHJhdG9yJ3MgT3ZlcnZpZXcKCldBTCBmaWxlIGNvbnRyb2wgY29tbWFu ZHMgd2lsbCBub3Qgd29yayBkdXJpbmcgcmVjb3ZlcnksIGUuZy4gcGdfc3RhcnRfYmFja3VwLApw Z19zd2l0Y2hfd2FsIGV0Yy4KICAtLSBwZ19zdGFydF9iYWNrdXAgZG9lcyB3b3JrIGR1cmluZyBy ZWNvdmVyeSAoZm9yIG5vbi1leGNsdXNpdmUgYmFja3VwcykuCgotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotLSBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQvd2FsLXJlbGlh YmlsaXR5Lmh0bWwKCjI5LjEuIFJlbGlhYmlsaXR5CgpXaGlsZSBmb3JjaW5nIGRhdGEgdG8gdGhl IGRpc2sgcGxhdHRlcnMgcGVyaW9kaWNhbGx5IG1pZ2h0IHNlZW0gbGlrZSBhIHNpbXBsZQpvcGVy YXRpb24sIGl0IGlzIG5vdC4gQmVjYXVzZSBkaXNrIGRyaXZlcyBhcmUgZHJhbWF0aWNhbGx5IHNs b3dlciB0aGFuIG1haW4KbWVtb3J5IGFuZCBDUFVzLCBzZXZlcmFsIGxheWVycyBvZiBjYWNoaW5n IGV4aXN0IGJldHdlZW4gdGhlIGNvbXB1dGVyJ3MgbWFpbgptZW1vcnkgYW5kIHRoZSBkaXNrIHBs YXR0ZXJzLgogIC0tIFBlcmhhcHMsICJkaXNrIHBsYXR0ZXJzIiAodXNlZCB0d2ljZSBoZXJlKSBj b3VsZCBiZSBpbXByb3ZlZCAoU1NEcyBkb24ndAogICAgIGhhdmUgYW55KT8KCi0tLS0tIDxpbiB0 aGUgc2FtZSBzZWN0aW9uPiAtLS0tLS0KClRoZXNlIGNvbW1hbmRzIGFyZSBub3QgZGlyZWN0bHkg YWNjZXNzaWJsZSB0byBQb3N0Z3JlU1FMLCBidXQgc29tZSBmaWxlIHN5c3RlbXMKKGUuZy4sIFpG UywgZXh0NCkgY2FuIHVzZSB0aGVtIHRvIGZsdXNoIGRhdGEgdG8gdGhlIHBsYXR0ZXJzIG9uCndy aXRlLWJhY2stZW5hYmxlZCBkcml2ZXMuCiAgLS0gUGVyaGFwcywgInBsYXR0ZXJzIiBjb3VsZCBi ZSBpbXByb3ZlZCAoU1NEcyBkb24ndCBoYXZlIGFueSk/CgotLS0tLSA8aW4gdGhlIHNhbWUgc2Vj dGlvbj4gLS0tLS0tCgpBbm90aGVyIHJpc2sgb2YgZGF0YSBsb3NzIGlzIHBvc2VkIGJ5IHRoZSBk aXNrIHBsYXR0ZXIgd3JpdGUgb3BlcmF0aW9ucwp0aGVtc2VsdmVzLiBEaXNrIHBsYXR0ZXJzIGFy ZSBkaXZpZGVkIGludG8gc2VjdG9ycywgY29tbW9ubHkgNTEyIGJ5dGVzIGVhY2guCiAgLS0gUGVy aGFwcywgInBsYXR0ZXJzIiAvICJEaXNrIHBsYXR0ZXJzIiBjb3VsZCBiZSBpbXByb3ZlZCAoU1NE cyBkb24ndCBoYXZlCiAgICAgYW55KT8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIGh0dHBz Oi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9sb2dpY2FsLXJlcGxpY2F0aW9uLmh0 bWwKCkNoYXB0ZXIgMzAuIExvZ2ljYWwgUmVwbGljYXRpb24KClRoZSBzdWJzY3JpYmVyIGFwcGxp ZXMgdGhlIGRhdGEgaW4gdGhlIHNhbWUgb3JkZXIgYXMgdGhlIHB1Ymxpc2hlciBzbyB0aGF0CnRy YW5zYWN0aW9uYWwgY29uc2lzdGVuY3kgaXMgZ3VhcmFudGVlZCBmb3IgcHVibGljYXRpb25zIHdp dGhpbiBhIHNpbmdsZQpzdWJzY3JpcHRpb24uCiAgLS0gInRyYW5zYWN0aW9uYWwgY29uc2lzdGVu Y3kiIGlzIHZhZ3VlLiBQZXJoYXBzLCBhIHdhcm5pbmcgYW5hbG9nb3VzCiAgICAgdG8gdGhlIG9u ZSBpbiBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQvYXBwbGV2ZWwtY29u c2lzdGVuY3kuaHRtbCNTRVJJQUxJWkFCTEUtQ09OU0lTVEVOQ1kKICAgICBjb3VsZCBiZSBhZGRl ZCBoZXJlIGZvciBjbGFyaWZpY2F0aW9uPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gaHR0 cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L2xvZ2ljYWwtcmVwbGljYXRpb24t YXJjaGl0ZWN0dXJlLmh0bWwKCjMwLjUuMS4gSW5pdGlhbCBTbmFwc2hvdAoKTG9naWNhbCByZXBs aWNhdGlvbiBzdGFydHMgYnkgY29weWluZyBhIHNuYXBzaG90IG9mIHRoZSBkYXRhIG9uIHRoZSBw dWJsaXNoZXIKZGF0YWJhc2UuCiAgLS0gImZyb20gdGhlIHB1Ymxpc2hlciIsIHBlcmhhcHM/Cgot LS0tLSA8aW4gdGhlIHNhbWUgc2VjdGlvbj4gLS0tLS0tCgpUaGUgc3Vic2NyaWJlciBhcHBsaWVz IGRhdGEgaW4gdGhlIG9yZGVyIGluIHdoaWNoIGNvbW1pdHMgd2VyZSBtYWRlIG9uIHRoZQpwdWJs aXNoZXIgc28gdGhhdCB0cmFuc2FjdGlvbmFsIGNvbnNpc3RlbmN5IGlzIGd1YXJhbnRlZWQgZm9y IHRoZSBwdWJsaWNhdGlvbnMKd2l0aGluIGFueSBzaW5nbGUgc3Vic2NyaXB0aW9uLgogIC0tICJ0 cmFuc2FjdGlvbmFsIGNvbnNpc3RlbmN5IiBpcyB2YWd1ZSAobm90IGNsZWFyIGlmIGl0J3MgYXRv bWljLCBoZXJlKT8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBvc3Rn cmVzcWwub3JnL2RvY3MvY3VycmVudC9saWJwcS1zdGF0dXMuaHRtbAoKMzMuMi4gQ29ubmVjdGlv biBTdGF0dXMgRnVuY3Rpb25zCgooc2VydmVyX2VuY29kaW5nLCBUaW1lWm9uZSwgYW5kIGludGVn ZXJfZGF0ZXRpbWVzIHdlcmUgbm90IHJlcG9ydGVkIGJ5IHJlbGVhc2VzCmJlZm9yZSA4LjA7IHN0 YW5kYXJkX2NvbmZvcm1pbmdfc3RyaW5ncyB3YXMgbm90IHJlcG9ydGVkIGJ5IHJlbGVhc2VzIGJl Zm9yZSA4LjE7CkludGVydmFsU3R5bGUgd2FzIG5vdCByZXBvcnRlZCBieSByZWxlYXNlcyBiZWZv cmUgOC40OyBhcHBsaWNhdGlvbl9uYW1lIHdhcyBub3QKcmVwb3J0ZWQgYnkgcmVsZWFzZXMgYmVm b3JlIDkuMC4pCiAgLS0gQWxsIG9mIHRoZXNlIHJlbGVhc2VzIGFyZSB2ZXJ5IG9sZCAtLS0gcGVy aGFwcywgdGhpcyBjb3VsZCBiZSByZW1vdmVkPwoKUHJlLTMuMC1wcm90b2NvbCBzZXJ2ZXJzIGRv IG5vdCByZXBvcnQgcGFyYW1ldGVyIHNldHRpbmdzLCBidXQgbGlicHEgaW5jbHVkZXMKbG9naWMg dG8gb2J0YWluIHZhbHVlcyBmb3Igc2VydmVyX3ZlcnNpb24gYW5kIGNsaWVudF9lbmNvZGluZyBh bnl3YXkuCiAgLS0gUHJlLTMuMC1wcm90b2NvbCBzZXJ2ZXJzIGFyZSB2ZXJ5IG9sZCAtLS0gcGVy aGFwcywgdGhpcyBjb3VsZCBiZSByZW1vdmVkPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0g aHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L2xpYnBxLWFzeW5jLmh0bWwK CjMzLjQuIEFzeW5jaHJvbm91cyBDb21tYW5kIFByb2Nlc3NpbmcKCkxpa2UgUFFwcmVwYXJlLCBp dCB3aWxsIG5vdCB3b3JrIG9uIDIuMC1wcm90b2NvbCBjb25uZWN0aW9ucy4KICAtLSBUaGUgY2hh cHRlciBoYXMgc2V2ZXJhbCB3YXJuaW5ncyBsaWtlIHRoaXMuIFBlcmhhcHMgKGFzIHByb3RvY29s IDIuMCBpcwogICAgIHZlcnkgb2xkKSB0aGVzZSBjb3VsZCBiZSByZW1vdmVkPwoKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLS0gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50 L2xvLWludGVyZmFjZXMuaHRtbCNMTy1DUkVBVEUKCjM0LjMuMS4gQ3JlYXRpbmcgYSBMYXJnZSBP YmplY3QKCmxvX2NyZWF0ZSBpcyBuZXcgYXMgb2YgUG9zdGdyZVNRTCA4LjE7IGlmIHRoaXMgZnVu Y3Rpb24gaXMgcnVuIGFnYWluc3QgYW4gb2xkZXIKc2VydmVyIHZlcnNpb24sIGl0IHdpbGwgZmFp bCBhbmQgcmV0dXJuIEludmFsaWRPaWQuCiAgLS0gUG9zdGdyZVNRTCA4LjEgaXMgdmVyeSBvbGQg LS0tIHBlcmhhcHMsIHRoZSB3YXJuaW5nIGNvdWxkIGJlIHJlbW92ZWQ/CgotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQotLSBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQveGZ1 bmMtc3FsLmh0bWwKCjM3LjUuIFF1ZXJ5IExhbmd1YWdlIChTUUwpIEZ1bmN0aW9ucwoKQWx0ZXJu YXRpdmVseSwgYW4gU1FMIGZ1bmN0aW9uIGNhbiBiZSBkZWNsYXJlZCB0byByZXR1cm4gYSBzZXQg KHRoYXQgaXMsCm11bHRpcGxlIHJvd3MpIGJ5IHNwZWNpZnlpbmcgdGhlIGZ1bmN0aW9uJ3MgcmV0 dXJuIHR5cGUgYXMgU0VUT0Ygc29tZXR5cGUsIG9yCmVxdWl2YWxlbnRseSBieSBkZWNsYXJpbmcg aXQgYXMgUkVUVVJOUyBUQUJMRShjb2x1bW5zKS4KICAtLSAiYW4gU1FMIGZ1bmN0aW9uIiBoZXJl Li4uCgpBbHRlcm5hdGl2ZWx5LCBpZiB5b3Ugd2FudCB0byBkZWZpbmUgYSBTUUwgZnVuY3Rpb24g dGhhdCBwZXJmb3JtcyBhY3Rpb25zIGJ1dApoYXMgbm8gdXNlZnVsIHZhbHVlIHRvIHJldHVybiwg eW91IGNhbiBkZWZpbmUgaXQgYXMgcmV0dXJuaW5nIHZvaWQuCiAgLS0gQnV0ICJhIFNRTCBmdW5j dGlvbiIgaGVyZS4gSXMgaXQgY29ycmVjdD8KCi0tLS0tIDxpbiB0aGUgc2FtZSBzZWN0aW9uPiAt LS0tLS0KCkNSRUFURSBGVU5DVElPTiBjbGVhbl9lbXAoKSBSRVRVUk5TIHZvaWQgQVMgJwogICAg REVMRVRFIEZST00gZW1wCiAgICAgICAgV0hFUkUgc2FsYXJ5IDwgMDsKJyBMQU5HVUFHRSBTUUw7 CiAgIC0tIFdoeSBub3QgdXNlIGRvbGxhci1xdW90aW5nIGhlcmUgKGFzIHJlY29tbWVuZGVkIGlu IHRoZSB0ZXh0IGJlbG93KT8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3 LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC94ZnVuYy1zcWwuaHRtbCNYRlVOQy1TUUwtRlVO Q1RJT04tQVJHVU1FTlRTCgozNy41LjEuIEFyZ3VtZW50cyBmb3IgU1FMIEZ1bmN0aW9ucwoKVGhl IGFiaWxpdHkgdG8gdXNlIG5hbWVzIHRvIHJlZmVyZW5jZSBTUUwgZnVuY3Rpb24gYXJndW1lbnRz IHdhcyBhZGRlZCBpbgpQb3N0Z3JlU1FMIDkuMi4gRnVuY3Rpb25zIHRvIGJlIHVzZWQgaW4gb2xk ZXIgc2VydmVycyBtdXN0IHVzZSB0aGUgJG4gbm90YXRpb24uCiAgLS0gUGVyaGFwcyAoYXMgOS4y IGlzIEVPTCksIHRoaXMgbm90ZSBjb3VsZCBiZSByZW1vdmVkPwoKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLS0gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L3hmdW5jLXNx bC5odG1sI1hGVU5DLVNRTC1CQVNFLUZVTkNUSU9OUwoKMzcuNS4yLiBTUUwgRnVuY3Rpb25zIG9u IEJhc2UgVHlwZXMKCi0tIEFsdGVybmF0aXZlIHN5bnRheCBmb3Igc3RyaW5nIGxpdGVyYWw6CkNS RUFURSBGVU5DVElPTiBvbmUoKSBSRVRVUk5TIGludGVnZXIgQVMgJwogICAgU0VMRUNUIDEgQVMg cmVzdWx0OwonIExBTkdVQUdFIFNRTDsKICAtLSBXaGF0J3MgdGhlIHBvaW50IG9mIHRoZSAiYWx0 ZXJuYXRpdmUgc3ludGF4IiBleGFtcGxlIChiZXNpZGVzIHRoaWNrZW5pbmcKICAgICB0aGUgbWFu dWFsKT8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwu b3JnL2RvY3MvY3VycmVudC94ZnVuYy1jLmh0bWwjaWQtMS44LjMuMTMuMTMKCjM3LjEwLjkuIFBv bHltb3JwaGljIEFyZ3VtZW50cyBhbmQgUmV0dXJuIFR5cGVzCgpUaGVyZSBhcmUgdHdvIHJvdXRp bmVzIHByb3ZpZGVkIGluIGZtZ3IuaCB0byBhbGxvdyBhIHZlcnNpb24tMSBDIGZ1bmN0aW9uIHRv CmRpc2NvdmVyIHRoZSBhY3R1YWwgZGF0YSB0eXBlcyBvZiBpdHMgYXJndW1lbnRzIGFuZCB0aGUg dHlwZSBpdCBpcyBleHBlY3RlZCB0bwpyZXR1cm4uCiAgLS0gUmVtb3ZlICJ2ZXJzaW9uLTEiLCBw ZXJoYXBzPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gaHR0cHM6Ly93d3cucG9zdGdyZXNx bC5vcmcvZG9jcy9jdXJyZW50L2V4dGVuZC1leHRlbnNpb25zLmh0bWwjaWQtMS44LjMuMjAuMTEK CjM3LjE3LjEuIEV4dGVuc2lvbiBGaWxlcwoKVGhlIENSRUFURSBFWFRFTlNJT04gY29tbWFuZCBy ZWxpZXMgb24gYSBjb250cm9sIGZpbGUgZm9yIGVhY2ggZXh0ZW5zaW9uLCB3aGljaAptdXN0IGJl IG5hbWVkIHRoZSBzYW1lIGFzIHRoZSBleHRlbnNpb24gd2l0aCBhIHN1ZmZpeCBvZiAuY29udHJv bCwgYW5kIG11c3QgYmUKcGxhY2VkIGluIHRoZSBpbnN0YWxsYXRpb24ncyBTSEFSRURJUi9leHRl bnNpb24gZGlyZWN0b3J5LgogIC0tIEluIHRoZSBvdGhlciBwbGFjZXMgaW4gZG9jdW1lbnRhdGlv biwgaXQncyAkU0hBUkVESVIgKHdpdGggZG9sbGFyKS4KCkJ5IGRlZmF1bHQsIHRoZSBzY3JpcHQg ZmlsZShzKSBhcmUgYWxzbyBwbGFjZWQgaW4gdGhlIFNIQVJFRElSL2V4dGVuc2lvbgpkaXJlY3Rv cnk7IGJ1dCB0aGUgY29udHJvbCBmaWxlIGNhbiBzcGVjaWZ5IGEgZGlmZmVyZW50IGRpcmVjdG9y eSBmb3IgdGhlIHNjcmlwdApmaWxlKHMpLgogIC0tIEluIHRoZSBvdGhlciBwbGFjZXMgaW4gZG9j dW1lbnRhdGlvbiwgaXQncyAkU0hBUkVESVIgKHdpdGggZG9sbGFyKS4KClVubGVzcyBhbiBhYnNv bHV0ZSBwYXRoIGlzIGdpdmVuLCB0aGUgbmFtZSBpcyByZWxhdGl2ZSB0byB0aGUgaW5zdGFsbGF0 aW9uJ3MKU0hBUkVESVIgZGlyZWN0b3J5LgogIC0tIEluIHRoZSBvdGhlciBwbGFjZXMgaW4gZG9j dW1lbnRhdGlvbiwgaXQncyAkU0hBUkVESVIgKHdpdGggZG9sbGFyKS4KCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9ydWxl cy10cmlnZ2Vycy5odG1sCgo0MC43LiBSdWxlcyBWZXJzdXMgVHJpZ2dlcnMKClNvIGlmIG1hbnkg cm93cyBhcmUgYWZmZWN0ZWQgaW4gb25lIHN0YXRlbWVudCwgYSBydWxlIGlzc3Vpbmcgb25lIGV4 dHJhIGNvbW1hbmQKaXMgbGlrZWx5IHRvIGJlIGZhc3RlciB0aGFuIGEgdHJpZ2dlciB0aGF0IGlz IGNhbGxlZCBmb3IgZXZlcnkgc2luZ2xlIHJvdyBhbmQKbXVzdCByZS1kZXRlcm1pbmUgd2hhdCB0 byBkbyBtYW55IHRpbWVzLgogIC0tIFRoZXJlIGFyZSB0cmlnZ2VycyB3aXRoIHRyYW5zaXRpb24g cmVsYXRpb25zIG5vdyAtLS0gcGVyaGFwcywgdGhpcyBzaG91bGQKICAgICBiZSBjb3JyZWN0ZWQ/ CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9k b2NzL2N1cnJlbnQvcGxwZ3NxbC10cmlnZ2VyLmh0bWwjUExQR1NRTC1UUklHR0VSLUVYQU1QTEUK CkV4YW1wbGUgNDIuMy4gQSBQTC9wZ1NRTCBUcmlnZ2VyIEZ1bmN0aW9uCgpsYXN0X2RhdGUgdGlt ZXN0YW1wLAogIC0tIFdoeSBub3QgdGltZXN0YW1wdHo/CgpORVcubGFzdF9kYXRlIDo9IGN1cnJl bnRfdGltZXN0YW1wOwogIC0tIGN1cnJlbnRfdGltZXN0YW1wIHJldHVybnMgdGltZXN0YW1wdHog KHdoaWNoIHNob3VsZCBiZSB1c2VkIGhlcmUpLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0g aHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L3BscGdzcWwtdHJpZ2dlci5o dG1sI1BMUEdTUUwtVFJJR0dFUi1BVURJVC1FWEFNUExFCgpFeGFtcGxlIDQyLjQuIEEgUEwvcGdT UUwgVHJpZ2dlciBGdW5jdGlvbiBmb3IgQXVkaXRpbmcKCkNSRUFURSBUQUJMRSBlbXBfYXVkaXQo CiAgICBvcGVyYXRpb24gICAgICAgICBjaGFyKDEpICAgTk9UIE5VTEwsCiAgICBzdGFtcCAgICAg ICAgICAgICB0aW1lc3RhbXAgTk9UIE5VTEwsCiAgLS0gU2hvdWxkIGJlIHRpbWVzdGFtcHR6IChC VFcsIG5vdygpIGlzIHVzZWQgbGF0ZXIgdG8gZmlsbCBpdCkuCgotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotLSBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQvcGxwZ3NxbC10 cmlnZ2VyLmh0bWwjUExQR1NRTC1WSUVXLVRSSUdHRVItQVVESVQtRVhBTVBMRQoKRXhhbXBsZSA0 Mi41LiBBIFBML3BnU1FMIFZpZXcgVHJpZ2dlciBGdW5jdGlvbiBmb3IgQXVkaXRpbmcKCkNSRUFU RSBUQUJMRSBlbXBfYXVkaXQoCiAgICAuLi4KICAgIHN0YW1wICAgICAgICAgICAgIHRpbWVzdGFt cCBOT1QgTlVMTAogIC0tIFNob3VsZCBiZSB0aW1lc3RhbXB0egoKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLS0gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L3BscGdzcWwt dHJpZ2dlci5odG1sI1BMUEdTUUwtVFJJR0dFUi1TVU1NQVJZLUVYQU1QTEUKCkV4YW1wbGUgNDIu Ni4gQSBQTC9wZ1NRTCBUcmlnZ2VyIEZ1bmN0aW9uIGZvciBNYWludGFpbmluZyBhIFN1bW1hcnkg VGFibGUKCiAgICAgICAgPDxpbnNlcnRfdXBkYXRlPj4KICAgICAgICBMT09QCiAgICAgICAgICAg IFVQREFURSBzYWxlc19zdW1tYXJ5X2J5dGltZQogICAgICAgICAgICAgICAgU0VUIGFtb3VudF9z b2xkID0gYW1vdW50X3NvbGQgKyBkZWx0YV9hbW91bnRfc29sZCwKICAgICAgICAgICAgICAgICAg ICB1bml0c19zb2xkID0gdW5pdHNfc29sZCArIGRlbHRhX3VuaXRzX3NvbGQsCiAgICAgICAgICAg ICAgICAgICAgYW1vdW50X2Nvc3QgPSBhbW91bnRfY29zdCArIGRlbHRhX2Ftb3VudF9jb3N0CiAg ICAgICAgICAgICAgICBXSEVSRSB0aW1lX2tleSA9IGRlbHRhX3RpbWVfa2V5OwoKICAgICAgICAg ICAgRVhJVCBpbnNlcnRfdXBkYXRlIFdIRU4gZm91bmQ7CgogICAgICAgICAgICBCRUdJTgogICAg ICAgICAgICAgICAgSU5TRVJUIElOVE8gc2FsZXNfc3VtbWFyeV9ieXRpbWUgKAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGltZV9rZXksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBh bW91bnRfc29sZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXRzX3NvbGQsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhbW91bnRfY29zdCkKICAgICAgICAgICAgICAgICAgICBW QUxVRVMgKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsdGFfdGltZV9rZXksCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkZWx0YV9hbW91bnRfc29sZCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRlbHRhX3VuaXRzX3NvbGQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkZWx0YV9hbW91bnRfY29zdAogICAgICAgICAgICAgICAgICAgICAgICAgICApOwoKICAgICAg ICAgICAgICAgIEVYSVQgaW5zZXJ0X3VwZGF0ZTsKCiAgICAgICAgICAgIEVYQ0VQVElPTgogICAg ICAgICAgICAgICAgV0hFTiBVTklRVUVfVklPTEFUSU9OIFRIRU4KICAgICAgICAgICAgICAgICAg ICAtLSBkbyBub3RoaW5nCiAgICAgICAgICAgIEVORDsKICAgICAgICBFTkQgTE9PUCBpbnNlcnRf dXBkYXRlOwogIC0tIFRoZSBhYm92ZSB3b3JrcyBvbmx5IGluIFJFQUQgQ09NTUlUVEVEIC0tLSBw ZXJoYXBzLCBpdCBzaG91bGQgYmUgbWVudGlvbmVkPwogICAgIE9yIGp1c3QgcmVwbGFjZWQgd2l0 aCBJTlNFUlQgLi4uIE9OIENPTkZMSUNUIC4uLiBETyBVUERBVEU/CgotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotLSBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQvcGxwZ3Nx bC10cmlnZ2VyLmh0bWwjUExQR1NRTC1UUklHR0VSLUFVRElULVRSQU5TSVRJT04tRVhBTVBMRQoK RXhhbXBsZSA0Mi43LiBBdWRpdGluZyB3aXRoIFRyYW5zaXRpb24gVGFibGVzCgpDUkVBVEUgVEFC TEUgZW1wX2F1ZGl0KAogICAgb3BlcmF0aW9uICAgICAgICAgY2hhcigxKSAgIE5PVCBOVUxMLAog ICAgc3RhbXAgICAgICAgICAgICAgdGltZXN0YW1wIE5PVCBOVUxMLAogIC0tIFNob3VsZCBiZSB0 aW1lc3RhbXB0egoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gaHR0cHM6Ly93d3cucG9zdGdy ZXNxbC5vcmcvZG9jcy9jdXJyZW50L3BscGdzcWwtaW1wbGVtZW50YXRpb24uaHRtbCNQTFBHU1FM LVBMQU4tQ0FDSElORwoKNDIuMTEuMi4gUGxhbiBDYWNoaW5nCgpDUkVBVEUgRlVOQ1RJT04gbG9n ZnVuYzIobG9ndHh0IHRleHQpIFJFVFVSTlMgdm9pZCBBUyAkJAogICAgREVDTEFSRQogICAgICAg IGN1cnRpbWUgdGltZXN0YW1wOwogICAgQkVHSU4KICAgICAgICBjdXJ0aW1lIDo9ICdub3cnOwog ICAgICAgIElOU0VSVCBJTlRPIGxvZ3RhYmxlIFZBTFVFUyAobG9ndHh0LCBjdXJ0aW1lKTsKICAg IEVORDsKJCQgTEFOR1VBR0UgcGxwZ3NxbDsKICAtLSBXaHkgbm90IHRpbWVzdGFtcHR6IGluIHRo ZSBhYm92ZT8KCi0tLS0tIDxpbiB0aGUgc2FtZSBzZWN0aW9uPiAtLS0tLS0KCkluIHRoZSBjYXNl IG9mIGxvZ2Z1bmMxLCB0aGUgUG9zdGdyZVNRTCBtYWluIHBhcnNlciBrbm93cyB3aGVuIGFuYWx5 emluZyB0aGUKSU5TRVJUIHRoYXQgdGhlIHN0cmluZyAnbm93JyBzaG91bGQgYmUgaW50ZXJwcmV0 ZWQgYXMgdGltZXN0YW1wLCBiZWNhdXNlIHRoZQp0YXJnZXQgY29sdW1uIG9mIGxvZ3RhYmxlIGlz IG9mIHRoYXQgdHlwZS4gVGh1cywgJ25vdycgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYQp0aW1lc3Rh bXAgY29uc3RhbnQgd2hlbiB0aGUgSU5TRVJUIGlzIGFuYWx5emVkLCBhbmQgdGhlbiB1c2VkIGlu IGFsbCBpbnZvY2F0aW9ucwpvZiBsb2dmdW5jMSBkdXJpbmcgdGhlIGxpZmV0aW1lIG9mIHRoZSBz ZXNzaW9uLgogIC0tIHRpbWVzdGFtcCAtPiB0aW1lc3RhbXB0ej8KCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9wbHRjbC1m dW5jdGlvbnMuaHRtbAoKNDMuMi4gUEwvVGNsIEZ1bmN0aW9ucyBhbmQgQXJndW1lbnRzCgpJbiBh IG5vbnN0cmljdCBmdW5jdGlvbiwgaWYgdGhlIGFjdHVhbCB2YWx1ZSBvZiBhbiBhcmd1bWVudCBp cyBudWxsLCB0aGUKY29ycmVzcG9uZGluZyAkbiB2YXJpYWJsZSB3aWxsIGJlIHNldCB0byBhbiBl bXB0eSBzdHJpbmcuCiAgLS0gSXQncyAibiB2YXJpYWJsZSIgKHdpdGhvdXQgZG9sbGFyKS4KCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3Mv Y3VycmVudC9wbHRjbC1kYmFjY2Vzcy5odG1sCgo0My41LiBEYXRhYmFzZSBBY2Nlc3MgZnJvbSBQ TC9UY2wKCkZvciBleGFtcGxlOgogICBzcGlfZXhlYyAiU0VMRUNUIGNvdW50KCopIEFTIGNudCBG Uk9NIHBnX3Byb2MiCndpbGwgc2V0IHRoZSBUY2wgdmFyaWFibGUgJGNudCB0byB0aGUgbnVtYmVy IG9mIHJvd3MgaW4gdGhlIHBnX3Byb2Mgc3lzdGVtCmNhdGFsb2cuCiAgLS0gSXQncyAidmFyaWFi bGUgY250IiAod2l0aG91dCBkb2xsYXIpLgoKLS0tLS0gPGluIHRoZSBzYW1lIHNlY3Rpb24+IC0t LS0tLQoKV2UgbmVlZCBiYWNrc2xhc2hlcyBpbnNpZGUgdGhlIHF1ZXJ5IHN0cmluZyBnaXZlbiB0 byBzcGlfcHJlcGFyZSB0byBlbnN1cmUgdGhhdAp0aGUgJG4gbWFya2VycyB3aWxsIGJlIHBhc3Nl ZCB0aHJvdWdoIHRvIHNwaV9wcmVwYXJlIGFzLWlzLCBhbmQgbm90IHJlcGxhY2VkIGJ5ClRjbCB2 YXJpYWJsZSBzdWJzdGl0dXRpb24uCiAgLS0gUGVyaGFwcywgYWRkIHRoYXQ6CiAgICAge1NFTEVD VCBjb3VudCgqKSBBUyBjbnQgRlJPTSB0MSBXSEVSRSBudW0gPj0gJDEgQU5EIG51bSA8PSAkMn0K ICAgICBjb3VsZCBoYXZlIGJlZW4gdXNlZCBpbnN0ZWFkIChvciB1c2UgaXQgaW5zdGVhZCBhbmQg cmVtb3ZlIHRoZSBwYXJhZ3JhcGgpPwoKLS0tLS0gPGluIHRoZSBzYW1lIHNlY3Rpb24+IC0tLS0t LQoKcXVvdGUgc3RyaW5nCiAgIERvdWJsZXMgYWxsIG9jY3VycmVuY2VzIG9mIHNpbmdsZSBxdW90 ZSBhbmQgYmFja3NsYXNoIGNoYXJhY3RlcnMgaW4gdGhlIGdpdmVuCiAgIHN0cmluZy4KICAtLSBB bmQgaW5kZWVkIGl0IGRvZXMsIHNvOgogICAgICBzZXQgeCB7ZG9uJ3QgXGFkZCBcIH0KICAgICAg ZWxvZyBOT1RJQ0UgIiR4ID0gW3F1b3RlICR4XSIKICAgICBSZXN1bHRzIGluOgogICAgICAgIE5P VElDRTogIGRvbid0IFxhZGQgXCAgPSBkb24nJ3QgXFxhZGQgXFwKICAgV2hpY2ggaXMgbm90IGdv aW5nIHRvIHdvcmsgY29ycmVjdGx5IHdpdGggZGVmYXVsdCBzdGFuZGFyZF9jb25mb3JtaW5nX3N0 cmluZ3MKICAgc2V0dGluZywgYW5kIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSBpcyBhY3R1YWxseSB3 cm9uZzoKCiJTRUxFQ1QgJ1sgcXVvdGUgJHZhbCBdJyBBUyByZXQiCiAgLS0gU2hvdWxkIGJlICJT RUxFQ1QgRSdbIHF1b3RlICR2YWwgXScgQVMgcmV0IiAob3IsIHBlcmhhcHMsIGl0J3MgYSBidWcg aW4KICAgICAicXVvdGUiIGZ1bmN0aW9uPykKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIGh0 dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9wbHRjbC10cmlnZ2VyLmh0bWwK CjQzLjYuIFRyaWdnZXIgRnVuY3Rpb25zIGluIFBML1RjbAoKVGhlIGluZm9ybWF0aW9uIGZyb20g dGhlIHRyaWdnZXIgbWFuYWdlciBpcyBwYXNzZWQgdG8gdGhlIGZ1bmN0aW9uIGJvZHkgaW4gdGhl CmZvbGxvd2luZyB2YXJpYWJsZXM6CgokVEdfbmFtZQogIC0tIEl0J3MgIlRHX25hbWUiICh3aXRo b3V0IGRvbGxhcikuIFRoZSBzYW1lIGdvZXMgZm9yIGFsbCB0aGUgZm9sbG93aW5nCiAgICAgdmFy aWFibGVzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gaHR0cHM6Ly93d3cucG9zdGdyZXNx bC5vcmcvZG9jcy9jdXJyZW50L3BsdGNsLWV2ZW50LXRyaWdnZXIuaHRtbAoKNDMuNy4gRXZlbnQg VHJpZ2dlciBGdW5jdGlvbnMgaW4gUEwvVGNsCgokVEdfZXZlbnQKICAtLSBJdCdzICJUR19ldmVu dCIgKHdpdGhvdXQgZG9sbGFyKS4gVGhlIHNhbWUgZ29lcyBmb3IgdGhlIGZvbGxvd2luZyB2YXJp YWJsZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwu b3JnL2RvY3MvY3VycmVudC9wbHBlcmwtZnVuY3MuaHRtbAoKNDQuMS4gUEwvUGVybCBGdW5jdGlv bnMgYW5kIEFyZ3VtZW50cwoKSXQgaXMgdXN1YWxseSBtb3N0IGNvbnZlbmllbnQgdG8gdXNlIGRv bGxhciBxdW90aW5nIChzZWUgU2VjdGlvbiA0LjEuMi40KSBmb3IKdGhlIHN0cmluZyBjb25zdGFu dC4gSWYgeW91IGNob29zZSB0byB1c2UgZXNjYXBlIHN0cmluZyBzeW50YXggRScnLCB5b3UgbXVz dApkb3VibGUgYW55IHNpbmdsZSBxdW90ZSBtYXJrcyAoJykgYW5kIGJhY2tzbGFzaGVzIChcKSB1 c2VkIGluIHRoZSBib2R5IG9mIHRoZQpmdW5jdGlvbiAoc2VlIFNlY3Rpb24gNC4xLjIuMSkuCiAg LS0gUGVyaGFwcywgdGhlIGxhc3Qgc2VudGVuY2UgKG9yIGJvdGgpIGNvdWxkIGJlIHJlbW92ZWQg KGl0J3Mgc3VmZmljaWVudGx5CiAgICAgZGVzY3JpYmVkIGVsc2V3aGVyZTsgUEwvVGNsIGFuZCBQ TC9QeXRob24gY2hhcHRlcnMgaGF2ZSBubyBzaW1pbGFyIHRleHQKICAgICBhYm91dCBxdW90aW5n KT8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3Jn L2RvY3MvY3VycmVudC9zcWwtY29weS5odG1sCgpmaWxlbmFtZQoKICAgIFRoZSBwYXRoIG5hbWUg b2YgdGhlIGlucHV0IG9yIG91dHB1dCBmaWxlLiBBbiBpbnB1dCBmaWxlIG5hbWUgY2FuIGJlIGFu CiAgICBhYnNvbHV0ZSBvciByZWxhdGl2ZSBwYXRoLCBidXQgYW4gb3V0cHV0IGZpbGUgbmFtZSBt dXN0IGJlIGFuIGFic29sdXRlIHBhdGguCiAgICBXaW5kb3dzIHVzZXJzIG1pZ2h0IG5lZWQgdG8g dXNlIGFuIEUnJyBzdHJpbmcgYW5kIGRvdWJsZSBhbnkgYmFja3NsYXNoZXMKICAgIHVzZWQgaW4g dGhlIHBhdGggbmFtZS4KICAgICAgLS0gQnV0IHdoeSB0aGV5IG1pZ2h0IG5lZWQgdG8gdXNlIGFu IEUnJyBzdHJpbmcgKHRoaXMgaXMgcXVpdGUgdmFndWUpPwoKRlJFRVpFCiAgICBUaGlzIGlzIGlu dGVuZGVkIGFzIGEgcGVyZm9ybWFuY2Ugb3B0aW9uIGZvciBpbml0aWFsIGRhdGEgbG9hZGluZy4K ICAgICAtLSBCdXQgYWN0dWFsbHkgaXQncyBhbG1vc3QgdXNlbGVzcyAoYXMgdmlzaWJpbGl0eSBt YXAgaXMgbm90IHdyaXR0ZW4gYnkKICAgICAgICBDT1BZIEZSRUVaRSwgdGhlcmVmb3JlIGluZGV4 LW9ubHkgc2NhbnMgZG9uJ3Qgd29yayBhcyBpbnRlbmRlZCwgYW5kIHRoZQogICAgICAgIG5leHQg VkFDVVVNIHdpbGwgcmUtc2NhbiB0aGUgd2hvbGUgdGFibGUpLiBQZXJoYXBzLCBhZGQgYSBub3Rl IGFib3V0CiAgICAgICAgdGhhdD8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIGh0dHBzOi8v d3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9zcWwtY3JlYXRlY29udmVyc2lvbi5odG1s CgpUaGUgcHJpdmlsZWdlcyByZXF1aXJlZCB0byBjcmVhdGUgYSBjb252ZXJzaW9uIG1pZ2h0IGJl IGNoYW5nZWQgaW4gYSBmdXR1cmUKcmVsZWFzZS4KICAtLSBCdXQgYXJlIHN0aWxsIHRoZSBzYW1l IChsb29rZWQgYmFjayBhcyBmYXIgYXMgNy4zKS4gV2hhdCdzIHRoZSB1c2Ugb2YgdGhpcwogICAg IHdhcm5pbmcgKHBlcmhhcHMsIGl0IGNvdWxkIGJlIHJlbW92ZWQpPwoKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLS0gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L3NxbC1j cmVhdGVleHRlbnNpb24uaHRtbAoKUG9zdGdyZVNRTCB3aWxsIGNyZWF0ZSB0aGUgZXh0ZW5zaW9u IHVzaW5nIGRldGFpbHMgZnJvbSB0aGUgZmlsZQpTSEFSRURJUi9leHRlbnNpb24vZXh0ZW5zaW9u X25hbWUuY29udHJvbC4KICAtLSBJbiB0aGUgb3RoZXIgcGxhY2VzIGluIGRvY3VtZW50YXRpb24s IGl0J3MgJFNIQVJFRElSICh3aXRoIGRvbGxhcikuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot LSBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQvc3FsLWNyZWF0ZWZvcmVp Z250YWJsZS5odG1sCgpDUkVBVEUgRk9SRUlHTiBUQUJMRSBmaWxtcyAoCiAgICBjb2RlICAgICAg ICBjaGFyKDUpIE5PVCBOVUxMLAogICAgdGl0bGUgICAgICAgdmFyY2hhcig0MCkgTk9UIE5VTEws CiAgICBkaWQgICAgICAgICBpbnRlZ2VyIE5PVCBOVUxMLAogICAgZGF0ZV9wcm9kICAgZGF0ZSwK ICAgIGtpbmQgICAgICAgIHZhcmNoYXIoMTApLAogIC0tIFBlcmhhcHMsIHJlcGxhY2UgYWxsIHRo ZSBjaGFyIHR5cGVzIGhlcmUgd2l0aCB0ZXh0ICsgQ0hFQ0tzICh3b3VsZCBiZSBuaWNlCiAgICAg aWYgdGhlIGRvY3VtZW50YXRpb24gYWRoZXJlZCB0bwogICAgIGh0dHBzOi8vd2lraS5wb3N0Z3Jl c3FsLm9yZy93aWtpL0RvbiUyN3RfRG9fVGhpcyk/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot LSBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQvc3FsLWNyZWF0ZXRhYmxl Lmh0bWwKICAtLSBGb3IgYWxsIHRoZSAiRXhhbXBsZXMiIHNlY3Rpb246IHBlcmhhcHMsIHJlcGxh Y2UgYWxsIHRoZSBjaGFyIHR5cGVzIGhlcmUKICAgICB3aXRoIHRleHQgKyBDSEVDS3MgKHdvdWxk IGJlIG5pY2UgaWYgdGhlIGRvY3VtZW50YXRpb24gYWRoZXJlZCB0bwogICAgIGh0dHBzOi8vd2lr aS5wb3N0Z3Jlc3FsLm9yZy93aWtpL0RvbiUyN3RfRG9fVGhpcyk/CgpBbHNvOgogICAgbW9kdGlt ZSAgIHRpbWVzdGFtcCBERUZBVUxUIGN1cnJlbnRfdGltZXN0YW1wCiAgLS0gUmVwbGFjZSB3aXRo IHRpbWVzdGFtcHR6LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gaHR0cHM6Ly93d3cucG9z dGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L3NxbC1jcmVhdGV0cmFuc2Zvcm0uaHRtbAoKU3lub3Bz aXMKICAgIEZST00gU1FMIFdJVEggRlVOQ1RJT04gZnJvbV9zcWxfZnVuY3Rpb25fbmFtZSBbIChh cmd1bWVudF90eXBlIFssIC4uLl0pIF0sCiAgICBUTyBTUUwgV0lUSCBGVU5DVElPTiB0b19zcWxf ZnVuY3Rpb25fbmFtZSBbIChhcmd1bWVudF90eXBlIFssIC4uLl0pIF0KICAtLSBJdCBzZWVtcyB0 aGF0IGEgdHJhbnNmb3JtIGZ1bmN0aW9uIG1pZ2h0IGFjY2VwdCBtYW55IGFyZ3VtZW50cywgYnV0 IGl0J3MKICAgICBub3QgZG9jdW1lbnRlZCBsaWtlIHRoYXQgYmVsb3c/Cgpmcm9tX3NxbF9mdW5j dGlvbl9uYW1lWyhhcmd1bWVudF90eXBlIFssIC4uLl0pXQogICAgSXQgbXVzdCB0YWtlIG9uZSBh cmd1bWVudCBvZiB0eXBlIGludGVybmFsIGFuZCByZXR1cm4gdHlwZSBpbnRlcm5hbC4KICAgIC0t IFssIC4uLl0gY29udHJhZGljdHMgdGhlIGRlc2NyaXB0aW9uPwoKdG9fc3FsX2Z1bmN0aW9uX25h bWVbKGFyZ3VtZW50X3R5cGUgWywgLi4uXSldCiAgICBJdCBtdXN0IHRha2Ugb25lIGFyZ3VtZW50 IG9mIHR5cGUgaW50ZXJuYWwgYW5kIHJldHVybiB0aGUgdHlwZSB0aGF0IGlzIHRoZQogICAgdHlw ZSBmb3IgdGhlIHRyYW5zZm9ybS4KICAgIC0tIFssIC4uLl0gY29udHJhZGljdHMgdGhlIGRlc2Ny aXB0aW9uPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gaHR0cHM6Ly93d3cucG9zdGdyZXNx bC5vcmcvZG9jcy9jdXJyZW50L3NxbC1jcmVhdGV2aWV3Lmh0bWwKCkNSRUFURSBWSUVXIGNvbWVk aWVzIEFTCiAgICBTRUxFQ1QgZi4qLAogICAgICAgICAgIGNvdW50cnlfY29kZV90b19uYW1lKGYu Y291bnRyeV9jb2RlKSBBUyBjb3VudHJ5LAogICAgICAgICAgIChTRUxFQ1QgYXZnKHIucmF0aW5n KQogICAgICAgICAgICBGUk9NIHVzZXJfcmF0aW5ncyByCiAgICAgICAgICAgIFdIRVJFIHIuZmls bV9pZCA9IGYuaWQpIEFTIGF2Z19yYXRpbmcKICAgIEZST00gZmlsbXMgZgogICAgV0hFUkUgZi5r aW5kID0gJ0NvbWVkeSc7CiAgICAtLSBVc2luZyBBUyBmb3IgYWxpYXNlcyAodXNlcl9yYXRpbmdz IEFTIHIsIGZpbG1zIEFTIGYpIHdvdWxkIGJlIGJldHRlcgogICAgICAgc3R5bGUsIElNTy4KLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9j dXJyZW50L3NxbC1kcm9wZnVuY3Rpb24uaHRtbAoKKiBUaGUgc3RhbmRhcmQgb25seSBhbGxvd3Mg b25lIGZ1bmN0aW9uIHRvIGJlIGRyb3BwZWQgcGVyIGNvbW1hbmQuCiAgLS0gVGhlIGZvbGxvd2lu ZyBpdGVtcyBkb24ndCBoYXZlIHBvaW50cyBhdCB0aGUgZW5kLgoKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLS0gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L3NxbC1yb2xs YmFjay10by5odG1sCgpUaGUgU1FMIHN0YW5kYXJkIHNwZWNpZmllcyB0aGF0IHRoZSBrZXkgd29y ZCBTQVZFUE9JTlQgaXMgbWFuZGF0b3J5LCBidXQKUG9zdGdyZVNRTCBhbmQgT3JhY2xlIGFsbG93 IGl0IHRvIGJlIG9taXR0ZWQuCiAgLS0gV2h5IGRvIHdlIG5lZWQgdG8gZG9jdW1lbnQgT3JhY2xl IGJlaGF2aW9yIGhlcmU/CgotLS0tLSA8aW4gdGhlIHNhbWUgc2VjdGlvbj4gLS0tLS0tCgpBbHNv LCBTUUwgaGFzIGFuIG9wdGlvbmFsIGNsYXVzZSBBTkQgWyBOTyBdIENIQUlOIHdoaWNoIGlzIG5v dCBjdXJyZW50bHkKc3VwcG9ydGVkIGJ5IFBvc3RncmVTUUwuCiAgLS0gSVNPIFNRTCAoZnJvbSBh IGRyYWZ0IG9mIDIwMTEpIHN0YXRlczogIklmIEFORCBDSEFJTiBpcyBzcGVjaWZpZWQsIHRoZW4K ICAgICA8c2F2ZXBvaW50IGNsYXVzZT4gc2hhbGwgbm90IGJlIHNwZWNpZmllZC4iIFNvLCB0aGUg c2VudGVuY2UgaXMgaW5jb3JyZWN0PwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gaHR0cHM6 Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L3NxbC1zZWxlY3QuaHRtbCNTUUwtRk9S LVVQREFURS1TSEFSRQoKUHJldmlvdXMgcmVsZWFzZXMgZmFpbGVkIHRvIHByZXNlcnZlIGEgbG9j ayB3aGljaCBpcyB1cGdyYWRlZCBieSBhIGxhdGVyCnNhdmVwb2ludC4gRm9yIGV4YW1wbGUsIHRo aXMgY29kZToKCjxza2lwcGVkPgoKd291bGQgZmFpbCB0byBwcmVzZXJ2ZSB0aGUgRk9SIFVQREFU RSBsb2NrIGFmdGVyIHRoZSBST0xMQkFDSyBUTy4gVGhpcyBoYXMgYmVlbgpmaXhlZCBpbiByZWxl YXNlIDkuMy4KICAtLSA5LjMgaXMgYWxyZWFkeSB1bnN1cHBvcnRlZCAtLS0gcGVyaGFwcywgdGhl IHdhcm5pbmcgY291bGQgYmUgcmVtb3ZlZCBub3c/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot LSBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQvc3FsLXNlbGVjdC5odG1s I2lkLTEuOS4zLjE3MS45CgpFeGFtcGxlcwoKVG8gam9pbiB0aGUgdGFibGUgZmlsbXMgd2l0aCB0 aGUgdGFibGUgZGlzdHJpYnV0b3JzOgoKU0VMRUNUIGYudGl0bGUsIGYuZGlkLCBkLm5hbWUsIGYu ZGF0ZV9wcm9kLCBmLmtpbmQKICAgIEZST00gZGlzdHJpYnV0b3JzIGQsIGZpbG1zIGYKICAgIFdI RVJFIGYuZGlkID0gZC5kaWQKICAtLSBXaHkgbm90IHVzZSBleHBsaWNpdCBKT0lOIC4uLiBPTiBo ZXJlPyBBbHNvLCB0aGVyZSdzIG5vICI7IiBhdCB0aGUgZW5kLAogICAgIHVubGlrZSBpbiB0aGUg Zm9sbG93aW5nIGV4YW1wbGVzLgoKLS0tLS0gPGluIHRoZSBzYW1lIHNlY3Rpb24+IC0tLS0tLQoK U0VMRUNUIGtpbmQsIHN1bShsZW4pIEFTIHRvdGFsIEZST00gZmlsbXMgR1JPVVAgQlkga2luZDsK ICAtLSBXb3VsZCBiZSBuaWNlIGlmIGV4YW1wbGVzIHdlcmUgZm9ybWF0dGVkIGluIHRoZSBzYW1l IHN0eWxlICh0aGUgZm9sbG93aW5nCiAgICAgb25lcywgdG9vKS4KCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9zcWwtc2Vs ZWN0Lmh0bWwjaWQtMS45LjMuMTcxLjEwCgpOb3RlIHRoYXQgaWYgYSBGUk9NIGNsYXVzZSBpcyBu b3Qgc3BlY2lmaWVkLCB0aGUgcXVlcnkgY2Fubm90IHJlZmVyZW5jZSBhbnkKZGF0YWJhc2UgdGFi bGVzLiBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBxdWVyeSBpcyBpbnZhbGlkOgoKU0VMRUNU IGRpc3RyaWJ1dG9ycy4qIFdIRVJFIGRpc3RyaWJ1dG9ycy5uYW1lID0gJ1dlc3R3YXJkJzsKClBv c3RncmVTUUwgcmVsZWFzZXMgcHJpb3IgdG8gOC4xIHdvdWxkIGFjY2VwdCBxdWVyaWVzIG9mIHRo aXMgZm9ybSwgYW5kIGFkZCBhbgppbXBsaWNpdCBlbnRyeSB0byB0aGUgcXVlcnkncyBGUk9NIGNs YXVzZSBmb3IgZWFjaCB0YWJsZSByZWZlcmVuY2VkIGJ5IHRoZQpxdWVyeS4gVGhpcyBpcyBubyBs b25nZXIgYWxsb3dlZC4KICAtLSA4LjEgaXMgdW5zdXBwb3J0ZWQgZm9yIHllYXJzLiBQZXJoYXBz LCB0aGlzIHdhcm5pbmcgY291bGQgYmUgcmVtb3ZlZD8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0tIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9zcWwtc2V0Lmh0bWwK ClNFVCBUSU1FIFpPTkUKIDxza2lwPgpMT0NBTApERUZBVUxUCiAgICBTZXQgdGhlIHRpbWUgem9u ZSB0byB5b3VyIGxvY2FsIHRpbWUgem9uZSAodGhhdCBpcywgdGhlIHNlcnZlcidzIGRlZmF1bHQK ICAgIHZhbHVlIG9mIHRpbWV6b25lKS4KICAgICAgLS0gU2VlbXMgbGlrZSBpdCByZXNldHMgdG8g dGhlIGRhdGFiYXNlIC8gcm9sZSBkZWZhdWx0IChpZiBhbnkgb2YgdGhvc2UgaXMKICAgICAgICAg c2V0KSwgaW5zdGVhZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBv c3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9zcWwtc2hvdy5odG1sCgpUaGVzZSB2YXJpYWJsZXMg Y2FuIGJlIHNldCB1c2luZyB0aGUgU0VUIHN0YXRlbWVudCwgYnkgZWRpdGluZyB0aGUKcG9zdGdy ZXNxbC5jb25mIGNvbmZpZ3VyYXRpb24gZmlsZSwgdGhyb3VnaCB0aGUgUEdPUFRJT05TIGVudmly b25tZW50YWwgdmFyaWFibGUKKHdoZW4gdXNpbmcgbGlicHEgb3IgYSBsaWJwcS1iYXNlZCBhcHBs aWNhdGlvbiksIG9yIHRocm91Z2ggY29tbWFuZC1saW5lIGZsYWdzCndoZW4gc3RhcnRpbmcgdGhl IHBvc3RncmVzIHNlcnZlci4gU2VlIENoYXB0ZXIgMTkgZm9yIGRldGFpbHMuCiAgLS0gVGhlIGxp c3Qgb2YgbWV0aG9kcyBpcyBub3QgZXhoYXVzdGl2ZSAtLS0gcGVyaGFwcywgYWRkICJldGMuIiwg b3IganVzdAogICAgIHJlbW92ZSAvIHJlcGhyYXNlIHRoZXNlIHNlbnRlbmNlcz8KCi0tLS0tIDxp biB0aGUgc2FtZSBzZWN0aW9uPiAtLS0tLS0KClNob3cgYWxsIHNldHRpbmdzOgo8c2tpcD4KKDE5 NiByb3dzKQogIC0tIEl0J3MgMjk5IHJvd3MgYXMgb2YgUG9zdGdyZVNRTCAxMi40LiBQZXJoYXBz LCByZW1vdmUgdGhlICJyb3dzIiBsaW5lPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gaHR0 cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L3BnYXJjaGl2ZWNsZWFudXAuaHRt bAoKcGdfYXJjaGl2ZWNsZWFudXAgaXMgZGVzaWduZWQgdG8gd29yayB3aXRoIFBvc3RncmVTUUwg OC4wIGFuZCBsYXRlciB3aGVuIHVzZWQgYXMKYSBzdGFuZGFsb25lIHV0aWxpdHksIG9yIHdpdGgg UG9zdGdyZVNRTCA5LjAgYW5kIGxhdGVyIHdoZW4gdXNlZCBhcyBhbiBhcmNoaXZlCmNsZWFudXAg Y29tbWFuZC4KICAtLSBJc24ndCB0aGlzIGluZm9ybWF0aW9uIHVzZWxlc3MgLyBkZXByZWNhdGVk IGJ5IG5vdz8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBvc3RncmVz cWwub3JnL2RvY3MvY3VycmVudC9hcHAtcG9zdGdyZXMuaHRtbAoKVGhlIC0tIG9wdGlvbnMgd2ls bCBub3Qgd29yayBvbiBGcmVlQlNEIG9yIE9wZW5CU0QuIFVzZSAtYyBpbnN0ZWFkLiBUaGlzIGlz IGEKYnVnIGluIHRoZSBhZmZlY3RlZCBvcGVyYXRpbmcgc3lzdGVtczsgYSBmdXR1cmUgcmVsZWFz ZSBvZiBQb3N0Z3JlU1FMIHdpbGwKcHJvdmlkZSBhIHdvcmthcm91bmQgaWYgdGhpcyBpcyBub3Qg Zml4ZWQuCiAgLS0gVGhpcyB3YXJuaW5nIGFwcGVhcmVkIGhlcmUgaW4gUG9zdGdyZVNRTCA4LjIu IElzIGl0IHN0aWxsIHJlbGV2YW50PwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gaHR0cHM6 Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L3ZpZXctcGctbG9ja3MuaHRtbAoKNTEu NzQuIHBnX2xvY2tzCgpUaGUgd2FpdGluZyBwcm9jZXNzIHdpbGwgc2xlZXAgdW50aWwgdGhlIG90 aGVyIGxvY2sgaXMgcmVsZWFzZWQgKG9yIGEgZGVhZGxvY2sKc2l0dWF0aW9uIGlzIGRldGVjdGVk KS4KICAtLSBUaGVyZSdzIGFsc28gbG9jayB0aW1lb3V0IHdoaWNoIHNlZW1zIHJlbGV2YW50IGhl cmUuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9y Zy9kb2NzL2N1cnJlbnQvY2F0YWxvZy1wZy1hdXRoaWQuaHRtbAoKVGFibGUgNTEuOC4gcGdfYXV0 aGlkIENvbHVtbnMKICAtLSBTb21lIHJvd3MgaW4gdGhlIGRlc2NyaXB0aW9uIGhhdmUgcG9pbnQg YXQgdGhlIGVuZCwgc29tZSBkb24ndCAoc2VlbWluZ2x5CiAgICAgYXQgcmFuZG9tKS4KCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCmh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVu dC9wcm90b2NvbC1mbG93Lmh0bWwjUFJPVE9DT0wtQVNZTkMKCjUyLjIuNi4gQXN5bmNocm9ub3Vz IE9wZXJhdGlvbnMKCihzZXJ2ZXJfZW5jb2RpbmcsIFRpbWVab25lLCBhbmQgaW50ZWdlcl9kYXRl dGltZXMgd2VyZSBub3QgcmVwb3J0ZWQgYnkgcmVsZWFzZXMKYmVmb3JlIDguMDsgc3RhbmRhcmRf Y29uZm9ybWluZ19zdHJpbmdzIHdhcyBub3QgcmVwb3J0ZWQgYnkgcmVsZWFzZXMgYmVmb3JlIDgu MTsKSW50ZXJ2YWxTdHlsZSB3YXMgbm90IHJlcG9ydGVkIGJ5IHJlbGVhc2VzIGJlZm9yZSA4LjQ7 IGFwcGxpY2F0aW9uX25hbWUgd2FzIG5vdApyZXBvcnRlZCBieSByZWxlYXNlcyBiZWZvcmUgOS4w LikKICAtLSBBbGwgdGhlc2UgdmVyc2lvbnMgYXJlIHVuc3VwcG9ydGVkIC0tLSBwZXJoYXBzLCB0 aGUgc2VudGVuY2UgY291bGQgYmUKICAgICByZW1vdmVkPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLS0gaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L2Vycm9yLW1lc3Nh Z2UtcmVwb3J0aW5nLmh0bWwKCkFzIG9mIFBvc3RncmVTUUwgOS4zLCBjb21wbGV0ZSBjb3ZlcmFn ZSBleGlzdHMgb25seSBmb3IgZXJyb3JzIGluIFNRTFNUQVRFCmNsYXNzIDIzIChpbnRlZ3JpdHkg Y29uc3RyYWludCB2aW9sYXRpb24pLCBidXQgdGhpcyBpcyBsaWtlbHkgdG8gYmUgZXhwYW5kZWQg aW4KZnV0dXJlLgogIC0tIFBlcmhhcHMsIHRoaXMgaW5mb3JtYXRpb24gY291bGQgYmUgdXBkYXRl ZD8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3Jn L2RvY3MvY3VycmVudC9ubHMtdHJhbnNsYXRvci5odG1sI2lkLTEuMTAuNy4yLjYKCjU0LjEuNC4g RWRpdGluZyB0aGUgUE8gRmlsZXMKClRoZXJlIGlzICh1bnN1cnByaXNpbmdseSkgYSBQTyBtb2Rl IGZvciBFbWFjcywgd2hpY2ggSSBmaW5kIHF1aXRlIHVzZWZ1bC4KICAtLSBXaG8gaXMgIkkiPyBQ ZXJoYXBzLCB0aGlzIHNob3VsZCBiZSByZXBocmFzZWQ/IEFsc28sIHdoeSBvbmx5IEVtYWNzIGlz CiAgICAgbWVudGlvbmVkLCBub3QgYW55IG90aGVyIGVkaXRvcnM/IFBlcmhhcHMsIHNvbWV0aGlu ZyBsaWtlCiAgICAgaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS90cmFucy1jb29yZC9tYW51 YWwvd2ViLXRyYW5zL2h0bWxfbm9kZS9QTy1FZGl0b3JzLmh0bWwKICAgICBzaG91bGQgYmUgcmVm ZXJlbmNlZCwgaW5zdGVhZD8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3 LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9naW4taW1wbGVtZW50YXRpb24uaHRtbAoKNjYu NC4gSW1wbGVtZW50YXRpb24KCkFzIG9mIFBvc3RncmVTUUwgOS4xLCBudWxsIGtleSB2YWx1ZXMg Y2FuIGJlIGluY2x1ZGVkIGluIHRoZSBpbmRleC4KICAtLSBBcyA5LjEgaXMgYWxyZWFkeSB1bnN1 cHBvcnRlZCwgcGVyaGFwcyAiQXMgb2YgUG9zdGdyZVNRTCA5LjEiIGNvdWxkIGJlCiAgICAgcmVt b3ZlZD8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwu b3JnL2RvY3MvY3VycmVudC9naW4taW1wbGVtZW50YXRpb24uaHRtbCNHSU4tRkFTVC1VUERBVEUK CjY2LjQuMS4gR0lOIEZhc3QgVXBkYXRlIFRlY2huaXF1ZQoKQXMgb2YgUG9zdGdyZVNRTCA4LjQs IEdJTiBpcyBjYXBhYmxlIG9mIHBvc3Rwb25pbmcgbXVjaCBvZiB0aGlzIHdvcmsgYnkKaW5zZXJ0 aW5nIG5ldyB0dXBsZXMgaW50byBhIHRlbXBvcmFyeSwgdW5zb3J0ZWQgbGlzdCBvZiBwZW5kaW5n IGVudHJpZXMuCiAgLS0gQXMgOC40IGlzIGFscmVhZHkgdW5zdXBwb3J0ZWQsIHBlcmhhcHMgIkFz IG9mIFBvc3RncmVTUUwgOC40IiBjb3VsZCBiZQogICAgIHJlbW92ZWQ/CgotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQotLSBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQvZ2lu LXRpcHMuaHRtbAoKNjYuNS4gR0lOIFRpcHMgYW5kIFRyaWNrcwoKICAgIEluc2VydGlvbiBpbnRv IGEgR0lOIGluZGV4IGNhbiBiZSBzbG93IGR1ZSB0byB0aGUgbGlrZWxpaG9vZCBvZiBtYW55IGtl eXMKICAgIGJlaW5nIGluc2VydGVkIGZvciBlYWNoIGl0ZW0uIFNvLCBmb3IgYnVsayBpbnNlcnRp b25zIGludG8gYSB0YWJsZSBpdCBpcwogICAgYWR2aXNhYmxlIHRvIGRyb3AgdGhlIEdJTiBpbmRl eCBhbmQgcmVjcmVhdGUgaXQgYWZ0ZXIgZmluaXNoaW5nIGJ1bGsKICAgIGluc2VydGlvbi4KCiAg ICBBcyBvZiBQb3N0Z3JlU1FMIDguNCwgdGhpcyBhZHZpY2UgaXMgbGVzcyBuZWNlc3Nhcnkgc2lu Y2UgZGVsYXllZCBpbmRleGluZwogICAgaXMgdXNlZCAoc2VlIFNlY3Rpb24gNjYuNC4xIGZvciBk ZXRhaWxzKS4gQnV0IGZvciB2ZXJ5IGxhcmdlIHVwZGF0ZXMgaXQgbWF5CiAgICBzdGlsbCBiZSBi ZXN0IHRvIGRyb3AgYW5kIHJlY3JlYXRlIHRoZSBpbmRleC4KICAgICAgLS0gQXMgOC40IGlzIGFs cmVhZHkgdW5zdXBwb3J0ZWQsIHBlcmhhcHMgaXQncyBiZXR0ZXIgdG8gcmVwaHJhc2UgYm90aAog ICAgICAgICBwYXJhZ3JhcGhzPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gaHR0cHM6Ly93 d3cucG9zdGdyZXNxbC5vcmcvZG9jcy9jdXJyZW50L3Jvdy1lc3RpbWF0aW9uLWV4YW1wbGVzLmh0 bWwKCjcwLjEuIFJvdyBFc3RpbWF0aW9uIEV4YW1wbGVzCgpUaGUgb3V0cHV0cyBzaG93biBhcmUg dGFrZW4gZnJvbSB2ZXJzaW9uIDguMy4gVGhlIGJlaGF2aW9yIG9mIGVhcmxpZXIgKG9yIGxhdGVy KQp2ZXJzaW9ucyBtaWdodCB2YXJ5LgogIC0tIDguMyBpcyB2ZXJ5IG9sZCAtLS0gcGVyaGFwcywg aXQncyB0aW1lIHRvIHVwZGF0ZSB0aGUgY2hhcHRlcj8KCi0tLS0tIDxpbiB0aGUgc2FtZSBzZWN0 aW9uPiAtLS0tLS0KCk5vdGUgYWxzbyB0aGF0IHNpbmNlIEFOQUxZWkUgdXNlcyByYW5kb20gc2Ft cGxpbmcgd2hpbGUgcHJvZHVjaW5nIHN0YXRpc3RpY3MsCnRoZSByZXN1bHRzIHdpbGwgY2hhbmdl IHNsaWdodGx5IGFmdGVyIGFueSBuZXcgQU5BTFlaRS4KICAtLSBTdHJpY3RseSBzcGVha2luZywg aXQncyAibWlnaHQgY2hhbmdlIiwgbm90ICJ3aWxsIGNoYW5nZSIsIGFzIHNtYWxsIHRhYmxlcwog ICAgIGFyZSBzY2FubmVkIGluIGZ1bGwgYW55d2F5ICh3aGljaCBjb3VsZCBiZSByZWxldmFudCBo ZXJlKSwgbm8/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSBodHRwczovL3d3dy5wb3N0Z3Jl c3FsLm9yZy9kb2NzL2N1cnJlbnQvZXJyY29kZXMtYXBwZW5kaXguaHRtbAoKQXBwZW5kaXggQS4g UG9zdGdyZVNRTCBFcnJvciBDb2RlcwoKQXMgb2YgUG9zdGdyZVNRTCA5LjMsIGNvbXBsZXRlIGNv dmVyYWdlIGZvciB0aGlzIGZlYXR1cmUgZXhpc3RzIG9ubHkgZm9yIGVycm9ycwppbiBTUUxTVEFU RSBjbGFzcyAyMyAoaW50ZWdyaXR5IGNvbnN0cmFpbnQgdmlvbGF0aW9uKSwgYnV0IHRoaXMgaXMg bGlrZWx5IHRvIGJlCmV4cGFuZGVkIGluIGZ1dHVyZS4KICAtLSBQZXJoYXBzLCB0aGlzIGluZm9y bWF0aW9uIGNvdWxkIGJlIHVwZGF0ZWQ/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSBodHRw czovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQvcmVsZWFzZS0xMi0zLmh0bWwKCkUu Mi4gUmVsZWFzZSAxMi4zCgpUaGUgcHJldmlvdXMgY29kaW5nIGNvdWxkIGFsbG93IHRoZSBmaWxl IHRvIGJlIGNyZWF0ZWQgd2l0aCBwZXJtaXNzaW9ucyB0aGF0CndvdWxkbid0IGFsbG93IHRoZSBw b3N0bWFzdGVyIHRvIHdyaXRlIG9uIGl0LgogIC0tIElzICJ3cml0ZSBvbiIgY29ycmVjdD8KCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3Mv Y3VycmVudC9jdWJlLmh0bWwjaWQtMS4xMS43LjE4LjcKCkYuOS40LiBEZWZhdWx0cwoKSSBiZWxp ZXZlIHRoaXMgdW5pb246CiAgLS0gIkkiIGRpc2FncmVlcyB3aXRoIHRoZSBnZW5lcmFsIHN0eWxl IG9mIHRoZSBkb2N1bWVudGF0aW9uPwoKLS0tLS0gPGluIHRoZSBzYW1lIHNlY3Rpb24+IC0tLS0t LQoKSW4gYWxsIGJpbmFyeSBvcGVyYXRpb25zIG9uIGRpZmZlcmVudGx5LWRpbWVuc2lvbmVkIGN1 YmVzLCBJIGFzc3VtZSB0aGUKbG93ZXItZGltZW5zaW9uYWwgb25lIHRvIGJlIGEgQ2FydGVzaWFu IHByb2plY3Rpb24sIGkuIGUuLCBoYXZpbmcgemVyb2VzIGluCnBsYWNlIG9mIGNvb3JkaW5hdGVz IG9taXR0ZWQgaW4gdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbi4KICAtLSAiSSIgZGlzYWdyZWVz IHdpdGggdGhlIGdlbmVyYWwgc3R5bGUgb2YgdGhlIGRvY3VtZW50YXRpb24/CgotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotLSBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQv cGdjcnlwdG8uaHRtbCNQR0NSWVBUTy1IQVNILVNQRUVELVRBQkxFCgpbSW4gdGhlIGRlc2NyaXB0 aW9uIG9mIHRoZSBUYWJsZSBGLjE4LiBIYXNoIEFsZ29yaXRobSBTcGVlZHNdCgpUaGF0IHdheSBJ IGNhbiBzaG93IHRoZSBzcGVlZCB3aXRoIGRpZmZlcmVudCBudW1iZXJzIG9mIGl0ZXJhdGlvbnMu CiAgLS0gIkkiIGRpc2FncmVlcyB3aXRoIHRoZSBnZW5lcmFsIHN0eWxlIG9mIHRoZSBkb2N1bWVu dGF0aW9uPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gaHR0cHM6Ly93d3cucG9zdGdyZXNx bC5vcmcvZG9jcy9jdXJyZW50L3NlcGdzcWwuaHRtbCNTRVBHU1FMLUlOU1RBTExBVElPTgoKRi4z NS4yLiBJbnN0YWxsYXRpb24KCkJlIHN1cmUgdGhhdCB0aGUgbGlic2VsaW51eC1kZXZlbCBSUE0g aXMgaW5zdGFsbGVkIGF0IGJ1aWxkIHRpbWUuCiAgLS0gV2h5IFJQTSwgc3BlY2lmaWNhbGx5IChk ZWJpYW4oLWJhc2VkKSBkaXN0cmlidXRpb25zIHN1cHBvcnQgU0VMaW51eCwgdG9vKT8K ------==--bound.353431.sas1-c37eebe3eab8.qloud-c.yandex.net--