Received: from localhost ([::1]:53667 helo=stodi.digitalkingdom.org) by stodi.digitalkingdom.org with esmtp (Exim 4.80.1) (envelope-from ) id 1WmMWA-0004yf-5h; Mon, 19 May 2014 05:18:10 -0700 Received: from 173-13-139-235-sfba.hfc.comcastbusiness.net ([173.13.139.235]:55882 helo=jukni.digitalkingdom.org) by stodi.digitalkingdom.org with smtp (Exim 4.80.1) (envelope-from ) id 1WmMVy-0004yW-VX for wikichanges@lojban.org; Mon, 19 May 2014 05:18:07 -0700 Received: by jukni.digitalkingdom.org (sSMTP sendmail emulation); Mon, 19 May 2014 05:17:58 -0700 From: "Apache" Date: Mon, 19 May 2014 05:17:58 -0700 To: wikichanges@lojban.org X-PHP-Originating-Script: 48:htmlMimeMail.php MIME-Version: 1.0 Message-ID: X-Spam-Score: 2.0 (++) X-Spam_score: 2.0 X-Spam_score_int: 20 X-Spam_bar: ++ X-Spam-Report: Spam detection software, running on the system "stodi.digitalkingdom.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: The page gadri: an unofficial commentary from a logical point of view was changed by guskant at 12:17 UTC You can view the page by following this link: http://www.lojban.org/tiki/gadri%3A%20an%20unofficial%20commentary%20from%20a%20logical%20point%20of%20view [...] Content analysis details: (2.0 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 1.6 RCVD_IN_BRBL_LASTEXT RBL: RCVD_IN_BRBL_LASTEXT [173.13.139.235 listed in bb.barracudacentral.org] 0.4 RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS Subject: [Wikichanges] Wiki page gadri: an unofficial commentary from a logical point of view changed by guskant X-BeenThere: wikichanges@lojban.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: webmaster@lojban.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: wikichanges-bounces@lojban.org VGhlIHBhZ2UgZ2Fkcmk6IGFuIHVub2ZmaWNpYWwgY29tbWVudGFyeSBmcm9tIGEgbG9naWNhbCBw b2ludCBvZiB2aWV3IHdhcyBjaGFuZ2VkIGJ5IGd1c2thbnQgYXQgMTI6MTcgVVRDCgpZb3UgY2Fu IHZpZXcgdGhlIHBhZ2UgYnkgZm9sbG93aW5nIHRoaXMgbGluazoKIApodHRwOi8vd3d3LmxvamJh bi5vcmcvdGlraS9nYWRyaSUzQSUyMGFuJTIwdW5vZmZpY2lhbCUyMGNvbW1lbnRhcnklMjBmcm9t JTIwYSUyMGxvZ2ljYWwlMjBwb2ludCUyMG9mJTIwdmlldwoKWW91IGNhbiB2aWV3IGEgZGlmZiBi YWNrIHRvIHRoZSBwcmV2aW91cyB2ZXJzaW9uIGJ5IGZvbGxvd2luZyB0aGlzIGxpbms6IApodHRw Oi8vd3d3LmxvamJhbi5vcmcvdGlraS90aWtpLXBhZ2VoaXN0b3J5LnBocD9wYWdlPWdhZHJpJTNB JTIwYW4lMjB1bm9mZmljaWFsJTIwY29tbWVudGFyeSUyMGZyb20lMjBhJTIwbG9naWNhbCUyMHBv aW50JTIwb2YlMjB2aWV3JmNvbXBhcmU9MSZvbGR2ZXI9NyZuZXd2ZXI9OAoKCioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqClRoZSBjaGFu Z2VzIGluIHRoaXMgdmVyc2lvbiBmb2xsb3cgYmVsb3csIGZvbGxvd2VkIGFmdGVyIGJ5IHRoZSBj dXJyZW50IGZ1bGwgcGFnZSB0ZXh0LgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgoKCistKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCkBAIC1MaW5lczogMS00IGNoYW5nZWQgdG8g K0xpbmVzOiAxLTIgQEAKKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSsKLSBeVHJhbnNsYXRpb24gb2YgdGhpcyBwYWdlIGlzIGluY29tcGxl dGUuXgotIAooKEJQRksgU2VjdGlvbjogZ2Fkcml8QlBGSydzIGdhZHJpIHBhZ2UpKSBjb250YWlu cyBleHByZXNzaW9ucyBtaXNsZWFkaW5nIHBlb3BsZSB3aG8gaGF2ZSBhdCBsZWFzdCBhIGxpdHRs ZSBrbm93bGVkZ2Ugb2YgbG9naWMgKFtodHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2QvdG9waWMv bG9qYmFuL1JBdEU3WWstZHF3L2Rpc2N1c3Npb258ZGlzY3Vzc2lvbl0pLgpJIHdpbGwgbWFrZSBo ZXJlIGEgY29tbWVudGFyeSBvbiBCUEZLJ3MgZ2Fkcmkgc28gdGhhdCBpdCBpcyB1bmRlcnNvb2Qg YnkgdGhlbSBjb3JyZWN0bHkuCgorLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKwpAQCAtTGluZXM6IDQ1Mi00NTYgY2hhbmdlZCB0byArTGlu ZXM6IDQ1MC00NTQgQEAKKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSsKCiEhISMgQWJvdXQgb250b2xvZ3kKLSBeKChCUEZLIFNlY3Rpb246 IGdhZHJpfCZxdW90O1Bvc2l0aXZlIGltcGFjdDogU29tZSB1c2FnZXMgdGhhdCBtYWtlIGxpdHRs ZSBzZW5zZSB3aXRoIHtsb309e3N1J299IGJlY29tZSB2YWxpZGF0ZWQuJnF1b3Q7IGFjY29yZGlu ZyB0byBCUEZLLikpXgorIF4oKEJQRksgU2VjdGlvbjogZ2Fkcml8JydQb3NpdGl2ZSBpbXBhY3Q6 IFNvbWUgdXNhZ2VzIHRoYXQgbWFrZSBsaXR0bGUgc2Vuc2Ugd2l0aCB7bG99PXtzdSdvfSBiZWNv bWUgdmFsaWRhdGVkLicnKSkgYWNjb3JkaW5nIHRvIEJQRksuXgoKe2xvfT17c3Unb30gd2FzIGFi YW5kb25lZCwgYnV0IGJlY2F1c2Ugb2YgdGhlIGZhY3QgdGhhdCB7bG8gYnJvZGF9IGlzIGEgcGx1 cmFsIGNvbnN0YW50LCBhbmQgYmVjYXVzZSBvZiBhIGxvZ2ljYWwgYXhpb20gb2YgcGx1cmFsIGNv bnN0YW50IGluICgofCNBX2xvZ2ljYWxfYXhpb21fb25fcGx1cmFsX2NvbnN0YW50fFNlY3Rpb24g Mi4yLjYpKSwge2xvIGJyb2RhIGN1IGJyb2RlfSBpbXBsaWNpdGx5IGltcGxpZXMge3N1J29pIGRh IGJyb2RlfS4KCistKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rCkBAIC1MaW5lczogNDkyLTQ5NSBjaGFuZ2VkIHRvICtMaW5lczogNDkwLTQ5 NCBAQAorLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKwpCZWNhdXNlIHt6bydlfSBjYW4gYmUgYSBmcmVlIHZhcmlhYmxlLCBhIGJvdW5kIHBs dXJhbCB2YXJpYWJsZSBvciBhIHBsdXJhbCBjb25zdGFudCBkZXBlbmRpbmcgb24gdGhlIGNvbnRl eHQsIGEgc2luZ2xlIGJyaWRpIGRvZXMgbm90IGxldCBsaXN0ZW5lcnMgZGV0ZXJtaW5lIHdoaWNo IG9mIHRoZW0gaXMgdGhlIGN1cnJlbnQge3pvJ2V9LCBvciB0aGUgdHJ1dGggdmFsdWUgb2YgdGhl IHByb3Bvc2l0aW9uLgpIb3dldmVyLCBzdWNoIGFuIGFzcGVjdCB0aGF0IHRoZSB0cnV0aCB2YWx1 ZSBvZiBhIHByb3Bvc2l0aW9uIGdlbmVyYWxseSBkZXBlbmRzIG9uIHRoZSBjb250ZXh0IGlzIGEg Y29tbW9uIHByb3BlcnR5IHRvIGFsbCBuYXR1cmFsIGxhbmd1YWdlcy4KKyAKT24gdGhlIG90aGVy IGhhbmQsIGV2ZW4gaWYgd2UgdGFrZSB0aGUgb2ZmaWNpYWwgaW50ZXJwcmV0YXRpb24gdGhhdCB7 em8nZX0gaXMgYWx3YXlzIGEgcGx1cmFsIGNvbnN0YW50LCBsaXN0ZW5lcnMgYXJlIG9ubHkgaW5m b3JtZWQgYnkge3pvJ2V9IHRoYXQgYSBjZXJ0YWluIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSBpcyBn aXZlbi4gV2l0aCBubyBjb250ZXh0LCB0aGVyZSBpcyBubyB3YXkgdG8gZGV0ZXJtaW5lIHdoYXQg aXMgdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZS4gVGhlIHRydXRoIHZhbHVlIG9mIGEgcHJvcG9z aXRpb24gaW4gbm8gY29udGV4dCBpcyBpbmRlZmluaXRlIGV2ZW4gd2l0aCB0aGUgb2ZmaWNpYWwg aW50ZXJwcmV0YXRpb24uCgoKKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSsKQEAgLUxpbmVzOiA0OTgtNTUwIGNoYW5nZWQgdG8gK0xpbmVz OiA0OTctNTQ3IEBACistKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rCgohISEhISMgQ2Fubm90IGV4cHJlc3MgcGx1cmFsIHF1YW50aWZpY2F0 aW9uIG9mIG5vbi1leHNpc3RlbmNlCi0ge2xvIG5vIGJyb2RhfSAge2RhfSAge25ha3Ugc3Unb2kg ZGF9IHtsbyBubyBicm9kYX0gKCh8I0Nhbm5vdF9zYXlfemVyb3wzLjEuMi4xKSkKKyBSZWFzb25h YmxlIGludGVycHJldGF0aW9uIG9mIHtsbyBubyBicm9kYX0gaXMgb2ZmaWNpYWxseSBleGNsdWRl ZCBmcm9tIExvamJhbi4gVGhhdCBpcyB0byBzYXksIExvamJhbiBjYW5ub3Qgb2ZmaWNpYWxseSBk ZWFsIHdpdGggdGhlIGV4cHJlc3Npb24gJnF1b3Q7dGhlcmUgaXMgbm90IHdoYXQgaXMgc3Vic3Rp dHV0ZWQgZm9yIHtkYX0mcXVvdDsgZm9yIHBsdXJhbCB2YXJpYWJsZSAoe25ha3Ugc3Unb2kgZGF9 KSwgd2hpY2ggaXMgbmF0dXJhbGx5IGRlYWx0IHdpdGggYnkgcGx1cmFsIHF1YW50aWZpY2F0aW9u LiBJbiBvcmRlciB0byBleHByZXNzIHtsbyBubyBicm9kYX0gd2l0aCByZWFzb25hYmxlIGludGVy cHJldGF0aW9uLCB3ZSBuZWVkIGFuIHVub2ZmaWNpYWwgaW50ZXJwcmV0YXRpb24gbGlrZSAoKHwj Q2Fubm90X3NheV96ZXJvfFNlY3Rpb24gMy4xLjIuMSkpLgoKISEhISEjIENhbm5vdCBleHByZXNz IGJvdW5kIHBsdXJhbCB2YXJpYWJsZSwgd2hpY2ggZG9lcyBub3Qgc3BlY2lmeSBhIHJlZmVyZW50 Ci0ge2xvIFBBIGJyb2RhfSAgIAorIEJlY2F1c2UgdGhlIG9mZmljaWFsIGludGVycHJldGF0aW9u IGRvZXMgbm90IGFsbG93IHtsbyBQQSBicm9kYX0gdG8gYmUgYSBib3VuZCBwbHVyYWwgdmFyaWFi bGUgZGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0LCBhbiBhcmd1bWVudCB0aGF0IHNob3VsZCByZWZl ciB0byBub3RoaW5nLCBhIHVuaXQgb2YgY291bnRpbmcgZm9yIGV4YW1wbGUsIHNob3VsZCBiZSBp bnRlcnByZXRlZCBhcyBhIHBsdXJhbCBjb25zdGFudCwgd2hpY2ggcmVmZXJzIHRvIHNvbWV0aGlu Zy4gRm9yIGV4YW1wbGUgCl5sbyBjaSB4YW50byBjdSB6aWxrYW5jdSBsaSBjaSBsbyB4YW50b14K LSAge2xvIHhhbnRvfSAgCisgZm9yIHdoaWNoIHdlIGFyZSBjb21wZWxsZWQgdG8gaW50ZXJwcmV0 IHRoYXQgdGhlcmUgaXMgdGhlICZxdW90O0VsZXBoYW50IGRlcyBBcmNoaXZlcyZxdW90OyBpbiB0 aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLCBqdXN0IGxpa2UgdGhlICZxdW90O010cmUgZGVzIEFy Y2hpdmVzJnF1b3Q7IChhbHRob3VnaCBpdCBoYXMgYWxyZWFkeSBmaW5pc2hlZCBpdHMgcm9sZSks IGluIG9yZGVyIHRvIHVzZSB7bG8geGFudG99IGFzIGEgdW5pdCBpbiBhIHByb3Bvc2l0aW9uLgoK ISEhISEjIENhbm5vdCBleHByZXNzIGVsZW1lbnRhcnkgcGFydGljbGVzIHdpdGggbG8KLSB7bG8g YnJvZGF9IAorIEFzIGxvbmcgYXMge2xvIGJyb2RhfSBpcyBpbnRlcnByZXRlZCBhcyBhIHBsdXJh bCBjb25zdGFudCwgdGhlIGZvbGxvd2luZyBMb2piYW4gc2VudGVuY2UgaXMgbWVhbmluZ2xlc3M6 CgpebG8gZ3Vza2EndSBjdSBnYXUgam1hamkgc2VwaSdvIGxvIGxlbmpvIGdpJ2UgcGFncmUgbG8g ZmVucmF+cHB+Ci0gfi9wcH4nJycnXgorIH4vcHB+JydQaG90b25zIGFyZSBjb25kZW5zZWQgYnkg bGVuc2VzLCBhbmQgcGFzcyB0aHJvdWdoIHNsaXRzLicnXgoKLSAgIHNlbGJyaSAge2xvIGJyb2Rh fSAge2xvIGd1c2thJ3V9ICAgKCh4b3J4ZXN8bGEgeG9yeGVzKSkgIHtzdSdvaX0gCisgQWN0dWFs bHksIHBob3RvbnMgYXJlIGluZGl2aWR1YWxzLCBhbmQgd2UgY2FuIGNvdW50IHRoZW0sIGJ1dCB3 ZSBjYW5ub3QgZGlzdGluZ3Vpc2ggZWFjaCBvZiB0aGVtOiB3ZSBjYW5ub3QgcmVmZXIgdG8gYSBz cGVjaWZpYyBwaG90b24uIFF1YW50aWZpY2F0aW9uIGlzIGluZGVlZCBzdWl0YWJsZSBmb3IgYXJn dW1lbnRzIHRoYXQgcmVwcmVzZW50IHBhcnRpY2xlcyBsaWtlIHBob3RvbnMuIEhvd2V2ZXIsIExv amJhbiBvZmZpY2lhbGx5IGRvZXMgbm90IGhhdmUgYSBwbHVyYWwgcXVhbnRpZmllciwgYW5kIGNh bm5vdCBleHByZXNzIHF1YW50aWZpY2F0aW9uIG9mICBzdW10aSB0aGF0IHNhdGlzZmllcyBzZWxi cmkgYm90aCBjb2xsZWN0aXZlbHkgYW5kIGRpc3RyaWJ1dGl2ZWx5LiBNb3Jlb3ZlciwgYmVjYXVz ZSB7bG8gYnJvZGF9IGlzIG9mZmljaWFsbHkgYWx3YXlzIGEgcGx1cmFsIGNvbnN0YW50LCB0aGVy ZSBpcyBubyByb29tIHRvIGludGVycHJldCB7bG8gZ3Vza2EndX0gYXMgYSBib3VuZCBwbHVyYWwg dmFyaWFibGUuIEluIG9yZGVyIHRvIHNvbHZlIHRoZSBwcm9ibGVtLCB3ZSBzaG91bGQgdXNlIGFu IHVub2ZmaWNpYWwgcGx1cmFsIHF1YW50aWZpZXIge3N1J29pfSBzdWdnZXN0ZWQgYnkgKCh4b3J4 ZXN8bGEgeG9yeGVzKSkuCgpec3Unb2kgZGEgcG9pIGtlJ2EgZ3Vza2EndSBjdSBnYXUgam1hamkg c2VwaSdvIGxvIGxlbmpvIGdpJ2UgcGFncmUgbG8gZmVucmFeCgohISEhISMgSG93IHRvIGludGVy cHJldCBhIHByZXZhaWxpbmcgdmlldwotICgoQlBGSyBTZWN0aW9uOiBnYWRyaXxCUEZLICBnYWRy aSApKQorIFRoZSBmb2xsb3dpbmcgZXhhbXBsZSBpcyBnaXZlbiBvbiAoKEJQRksgU2VjdGlvbjog Z2Fkcml8QlBGSydzIGdhZHJpIHBhZ2UpKToKCl5sbyBwYSBwaXhyYSBjdSBzZSB2YW1qaSBsbyBr aSdvIHZhbHNpfnBwfgotIH4vcHB+JycxMTAwMCcnIF4KKyB+L3BwficnT25lIHBpY3R1cmUgaXMg d29ydGggYSB0aG91c2FuZCB3b3Jkcy4nJyBeCgotICB7bG8gcGEgcGl4cmF9ICB7bG8ga2knbyB2 YWxzaX08YnIgLz4gIHN1bXRpIAorIEV2ZW4gaW4gc3VjaCBhIHNlbnRlbnNlIHRoYXQgc2VlbXMg YSBwcmV2YWlsaW5nIHZpZXcsIHtsbyBwYSBwaXhyYX0gYW5kIHtsbyBraSdvIHZhbHNpfSBhcmUg aW50ZXJwcmV0ZWQgYXMgcmVmZXJyaW5nIHRvIHNvbWV0aGluZy4gV2Ugc2hvdWxkIHByZXBhcmUg c29tZSByZWZlcmVudHMgb2Ygc3VtdGkgb2YgYSBwcmV2YWlsaW5nIHZpZXcgaW4gdGhlIHVuaXZl cnNlIG9mIGRpc2NvdXJzZS4KCi0gIHtsb30gIHtsbydlfSAoKEJQRksgU2VjdGlvbjogVHlwaWNh bHN8IHtsbydlfSAge2xvfSApKSB7bG8nZX0gCisgSW50dWl0aW9uYWxseSBzcGVha2luZywgd2Ug bWF5IHVzZSB7bG8nZX0gaW5zdGVhZCBvZiB7bG99LCBidXQgd2UgY2Fubm90IHlldCBleHBsYWlu IHtsbydlfSBmcm9tIGEgbG9naWNhbCBwb2ludCBvZiB2aWV3IGJlY2F1c2UgKChCUEZLIFNlY3Rp b246IFR5cGljYWxzfGFjdHVhbGx5IHRoZXJlIGlzIG5vIG9mZmljaWFsIGNvbmNsdXNpb24gYWJv dXQgcmVsYXRpb24gYmV0d2VlbiB7bG8nZX0gYW5kIHtsb30pKS4KCi0gIE5VIE5VIE5VIHJlZmVy ZW50aWFsbHkgb3BhcXVlOyBbaHR0cDovL3Bvbmpib2dyaS5naXRodWIuaW8vY2xsLWphL2NoYXB0 ZXI5Lmh0bWwjOS43fENMTDkuN10gTlVOVTxiciAvPiB7c2knb30gCisgQXMgYSBtZXRob2Qgb2Yg YXZvaWRpbmcgbWVudGlvbiBvZiBhIHJlZmVyZW50IGluIGFuIGV4cHJlc3Npb24gb2YgcHJldmFp bGluZyB2aWV3LCB3ZSBtYXkgcHV0IHRoZSB3aG9sZSBwcm9wb3NpdGlvbiBpbiBOVSBjbGF1c2Uu IEluIGZhY3QsIHRydXRoIHZhbHVlIG9mIGEgcHJvcG9zaXRpb24gaW4gTlUgY2xhdXNlIGRvZXMg bm90IGluZmx1ZW5jZSB0cnV0aCB2YWx1ZSBvZiB0aGUgb3V0ZXIgcHJvcG9zaXRpb24gKHJlZmVy ZW50aWFsbHkgb3BhcXVlOyB0aGlzIHRvcGljIGlzIHJlbGF0ZWQgdG8gW2h0dHA6Ly9kYWcuZ2l0 aHViLmlvL2NsbC85LzcvfENMTDkuN10pLiBJbiBvdGhlciB3b3JkcywgdGhlIHVuaXZlcnNlIG9m IGRpc2NvdXJzZSBvZiBhIHByb3Bvc2l0aW9uIGluIE5VIGNsYXVzZSBpcyBkaWZmZXJlbnQgZnJv bSB0aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlIG9mIGEgcHJvcG9zaXRpb24gb3V0IG9mIE5VLjxi ciAvPklmIHdlIGFjY2VwdCB0aGlzIG1ldGhvZCwgdGhlIGV4YW1wbGUgYWJvdmUgd2lsbCBiZSBt b2RpZmllZCwgdXNpbmcge3NpJ299IGZvciBleGFtcGxlLCBhcyBmb2xsb3dzOgoKXnNpJ28gbG8g cGEgcGl4cmEgY3Ugc2UgdmFtamkgbG8ga2knbyB2YWxzaSB+cHB+Ci0gfi9wcH4nJzExMDAwJyde Cisgfi9wcH4nJ0lzIGFuIGlkZWEgdGhhdCBvbmUgcGljdHVyZSBpcyB3b3J0aCBhIHRob3VzYW5k IHdvcmRzLicnXgoKLSAge3NpJ299ICB4MSAge3pvJ2V9ICAge3NpJ299ICB4MSAge2xvIHBhIHBp eHJhfSAge2xvIGtpJ28gdmFsc2l9IDxiciAvPigoVGhlIENvbXBsZXRlIExvamJhbiBMYW5ndWFn ZSkpICB0ZXJicmkgIGJyaWRpICAoc3RpbXVsdXMpIAorIHdoZXJlIHgxIG9mIHtzaSdvfSBpcyBp bXBsaWNpdCB7em8nZX0sIHdoaWNoIGhhcyBhIHJlZmVyZW50IGluIHRoZSB1bml2ZXJzZSBvZiBk aXNjb3Vyc2UuIEFzIGFuIGludGVycHJldGF0aW9uIG9mIGEgcHJldmFpbGluZyB2aWV3LCBzdXBw b3NpbmcgYSByZWZlcmVudCBvZiB4MSBvZiB7c2knb30gaXMgbW9yZSBuYXR1cmFsIHRoYW4gc3Vw cG9zaW5nIGEgcmVmZXJlbnQgb2Yge2xvIHBhIHBpeHJhfSBvciB7bG8ga2knbyB2YWxzaX0uPGJy IC8+KFN1Y2ggYSBicmlkaSB3aXRoIG5vIHRlcmJyaSBpcyBjYWxsZWQgJnF1b3Q7b2JzZXJ2YXRp dmUmcXVvdDsgaW4gKChUaGUgQ29tcGxldGUgTG9qYmFuIExhbmd1YWdlKSksIGJ1dCB0aGlzIGlu dGVycHJldGF0aW9uIGlzIG5vdCBzdWl0YWJsZSBoZXJlLCBiZWNhdXNlIHRoaXMgaXMgbm90IHRo ZSB1dHRlcmFuY2UgdGhhdCBpcyBhbHdheXMgY2F1c2VkIGJ5IGEgc3BlY2lmaWMgc3RpbXVsdXMu KQoKISEhISEjIEhvdyB0byBleHByZXNzIGZyZWUgdmFyaWFibGVzCi0gS09oQTQga28nVi9mbydW ICA8YnIgLz4ge2tlJ2F9ICB7Y2UndX0gPGJyIC8+IHRlcmJyaSAgYnJpZGkgPGJyIC8+e2tlJ2F9 IDIgYnJpZGkgIHtrZSdhfSAKKyBBcyBhIGN1c3RvbSwga28nVi9mbydWIHNlcmllcyBvZiBLT2hB NCBhcmUgdXNlZCBhcyBmcmVlIHZhcmlhYmxlcyBpbiBkZWZpbml0aW9ucyBvZiB3b3JkcyBvciBz b21ldGhpbmcuIEhvd2V2ZXIsIHRoZXkgYXJlIGFjdHVhbGx5IHBsdXJhbCBjb25zdGFudHMuPGJy IC8+SWYgd2UgYWJhbmRvbiB0aGlzIGN1c3RvbSwge2tlJ2F9IGFuZCB7Y2UndX0gYXJlIHN1aXRh YmxlIGZvciBleHByZXNzaW9uIHdpdGggZnJlZSB2YXJpYWJsZXMgKG9wZW4gc2VudGVuY2UpLCBi ZWNhdXNlIHRoZSB0cnV0aCB2YWx1ZSBvZiBicmlkaSBpbiB3aGljaCB7a2UnYX0gb3Ige2NlJ3V9 IGlzIHVzZWQgaXMgaW5kZWZpbml0ZS4gPGJyIC8+SW4gYSBicmlkaSBpbiB3aGljaCB7a2UnYX0g YXBwZWFycyB0d28gdGltZXMgb3IgbW9yZSwgdGhlc2Uge2tlJ2F9cyBhcmUgcmVnYXJkZWQgYXMg cmVwcmVzZW50aW5nIGFuIGlkZW50aWNhbCBzdW10aToKXmRhIHBvaSBrZSdhIGd5IHhsdXJhIGtl J2EgY3UgcGFuY2kgbG8ga2EnZSBzZSBjaXRrYX5wcH4Kfi9wcH5+LS1+ICgobG8gbnUgYmlueG8p KV4KLSAge2NlJ3V9IDIgYnJpZGkgIHtjZSd1fSAKKyBPbiB0aGUgb3RoZXIgaGFuZCwgaW4gYSBi cmlkaSBpbiB3aGljaCB7Y2UndX0gYXBwZWFycyB0d28gdGltZXMgb3IgbW9yZSwgdGhlc2Uge2Nl J3V9cyBhcmUgbm90IG5lY2Vzc2FyaWx5IHJlZ2FyZGVkIGFzIHJlcHJlc2VudGluZyBhbiBpZGVu dGljYWwgc3VtdGk6Cl5sbyBtYW10YSBqbyd1IGxvIG1lbnNpIGN1IHNpbXh1IGxvIGthIGNlJ3Ug Y2lzbWEgZmEnYSBjZSd1fnBwfgp+L3Bwfn4tLX4gKChsbyBudSBiaW54bykpXgotICB7a2UnYX0g IHtjZSd1fSAKKyBDb25zaWRlcmluZyB0aGVzZSBwcm9wZXJ0aWVzLCBpbiBvcmRlciB0byBleHBy ZXNzIGFuIG9wZW4gc2VudGVuY2Ugd2l0aCBmcmVlIHZhcmlhYmxlcyBpbiBubyBjb250ZXh0LCB7 Y2UndX0gaXMgbW9yZSBjb252ZW5pZW50IHRoYW4ge2tlJ2F9IHdoaWNoIGhhcyByZXN0cmljdGlv biBvZiBpZGVudGljYWwgc3VtdGkuCl5jZSd1IGNlJ3UgY2l0a2F+cHB+Ci0gfi9wcH4nJ0EgIEIg JycgXgorIH4vcHB+JydBIGVhdHMgQi4nJyAoT3BlbiBzZW50ZW5jZSwgdHJ1dGggdmFsdWUgaW5k ZWZpbml0ZS4pXgoKCgoKCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqClRoZSBuZXcgcGFnZSBjb250ZW50IGZvbGxvd3MgYmVsb3cuCioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq CgooKEJQRksgU2VjdGlvbjogZ2Fkcml8QlBGSydzIGdhZHJpIHBhZ2UpKSBjb250YWlucyBleHBy ZXNzaW9ucyBtaXNsZWFkaW5nIHBlb3BsZSB3aG8gaGF2ZSBhdCBsZWFzdCBhIGxpdHRsZSBrbm93 bGVkZ2Ugb2YgbG9naWMgKFtodHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2QvdG9waWMvbG9qYmFu L1JBdEU3WWstZHF3L2Rpc2N1c3Npb258ZGlzY3Vzc2lvbl0pLgoKSSB3aWxsIG1ha2UgaGVyZSBh IGNvbW1lbnRhcnkgb24gQlBGSydzIGdhZHJpIHNvIHRoYXQgaXQgaXMgdW5kZXJzb29kIGJ5IHRo ZW0gY29ycmVjdGx5LgoKCgp7bWFrZXRvY30KCgoKISEjIEdsb3NzYXJ5CgpXZSB3aWxsIHVzZSB0 aGUgZm9sbG93aW5nIHRlcm1zIGluIHRoaXMgY29tbWVudGFyeS4KCjtfX2FyZ3VtZW50IChzdW10 aSlfXzogU3ltYm9sIHRoYXQgcmVmZXJzIHRvIGEgcmVmZXJlbnQsIG9yIHRoYXQgYW5vdGhlciBh cmd1bWVudCBjYW4gYmUgc3Vic3RpdHV0ZWQgZm9yLgoKO19fdW5pdmVyc2Ugb2YgZGlzY291cnNl X186IFNldCBvZiBhbGwgcmVmZXJlbnRzIG9mIGFyZ3VtZW50cy4gSXQgaXMgbmF0dXJhbGx5IGEg dW5pdmVyc2UgdGhhdCBpcyBkaXNjdXNzZWQuIEEgdW5pdmVyc2Ugb2YgZGlzY291cnNlIGRlcGVu ZHMgb24gdGhlIGNvbnRleHQuCgo7X19jb25zdGFudF9fOiBBcmd1bWVudCB0aGF0IHJlZmVycyB0 byBhIHJlZmVyZW50LgoKO19fdmFyaWFibGVfXzogQXJndW1lbnQgYXMgYSBwbGFjZSBob2xkZXIu IEl0IGRvZXMgbm90IHJlZmVyIHRvIGFueXRoaW5nLiBJdCBpcyB0byBiZSBzdWJzdGl0dXRlZCBm b3IuIFZhcmlhYmxlIG90aGVyIHRoYW4gYm91bmQgdmFyaWFibGUgdGhhdCB3aWxsIGJlIGRlZmlu ZWQgYmVsbG93IGlzIGNhbGxlZCBfX2ZyZWUgdmFyaWFibGVfXy4gVGhlIHRydXRoIHZhbHVlIG9m IGEgc2VudGVuY2UgdGhhdCBpbmNsdWRlcyBhIGZyZWUgdmFyaWFibGUgaXMgaW5kZWZpbml0ZS4g U3VjaCBhIHNlbnRlbmNlIGlzIGNhbGxlZCBfX29wZW4gc2VudGVuY2VfXy4KCl5JbiBMb2piYW4s IHtrZSdhfSBhbmQge2NlJ3V9IGFyZSBhbHdheXMgZnJlZSB2YXJpYWJsZXMuIEEgc2VudGVuY2Ug aW4gTk9JLWNsYXVzZSBvciBOVS1jbGF1c2Ugd2l0aCB7Y2UndX0gaXMgb3Blbi4gKEEgc2VudGVu Y2UgaW4gTlUtY2xhc2Ugd2l0aCBubyB7Y2UndX0gaGFzIGEgdHJ1dGggdmFsdWUsIGJ1dCBlYWNo IG9mIHRoZSBpbnNpZGUgYW5kIHRoZSBvdXRzaWRlIG9mIE5VLWNsYXVzZSBoYXMgYW4gaW5kZXBl bmRlbnQgdW5pdmVyc2Ugb2YgZGlzY291cnNlLCBhbmQgdGh1cyBlYWNoIG9mIHRoZW0gaGFzIGFu IGluZGVwZW5kZW50IHRydXRoIHZhbHVlIChmb3IgZXhhbXBsZSwgc2VlIFtodHRwOi8vZGFnLmdp dGh1Yi5pby9jbGwvOS83L3xDTEw5LjddKS4gSW4gZGVmaW5pdGlvbnMgb2Ygd29yZHMgaW4gTG9q YmFuLCBrbydWL2ZvJ1Ygc2VyaWVzIHtrbydhLCBrbydlLCAuLi59IG9mIHNlbG1hJ28gS09oQTQg YXJlIHVzZWQgYXMgZnJlZSB2YXJpYWJsZXMsIGJ1dCBpdCBpcyBvbmx5IGEgY3VzdG9tIGZvciBj b252ZW5pZW5jZS4gQWxsIGNtYXZvIG9mIEtPaEEyLDMsNCw1LDYgYW5kIHt6bydlfSBvZiBLT2hB NyBhcmUgZXNzZW50aWFsbHkgY29uc3RhbnRzLl4KCjtfX3F1YW50aWZ5X186IEluIHN1YnN0aXR1 dGluZyBwb3NzaWJsZSBhcmd1bWVudHMgb25lIGJ5IG9uZSBmb3IgYSB2YXJpYWJsZSBpbiBhIHNl bnRlbmNlLCBjb3VudCB0aGUgbnVtYmVyIG9mIHJlZmVyZW50cyB0aGF0IG1ha2UgdGhlIHNlbnRl bmNlIHRydWUsIGFuZCBwcmVmaXggdGhlIG51bWJlciB0byB0aGUgdmFyaWFibGUuCgo7X19xdWFu dGlmaWVyX186IE51bWJlciB1c2VkIGZvciBxdWFudGlmaWNhdGlvbi4gQmVzaWRlcyB7cGF9LCB7 cmV9LCB7dmVpIG55IHN1J2kgcGEgKHZlJ28pfSBhbmQgc28gb24sIHtyb30gImFsbCIgYW5kIHtz dSdvfSAidGhlcmUgaXMgb25lIG9yIG1vcmUiIGFyZSBhbHNvIHF1YW50aWZpZXJzLgoKO19fYm91 bmQgdmFyaWFibGVfXzogVmFyaWFibGUgcHJlZml4ZWQgYnkgYSBxdWFudGlmaWVyLiBBcyBhIHJl c3VsdCBvZiBxdWFudGlmaWNhdGlvbiwgdGhlcmUgaXMgbm8gcm9vbSBmb3Igc3Vic3RpdHV0aW5n IGFuIGFyYml0cmFyeSBhcmd1bWVudCBmb3IgdGhlIHZhcmlhYmxlLgoKXkluIExvamJhbiwge2Rh fSwge2RlfSBhbmQge2RpfSBhcmUgYm91bmQgdmFyaWFibGVzLiBGb3IgZXhhbXBsZSwge3JvIGRh IHpvJ3UgZGEgYnJvZGF9IG1lYW5zICJGb3IgYWxsIHtkYX0gaW4gdGhlIHVuaXZlcnNlIG9mIGRp c2NvdXJzZSwge2RhIGJyb2RhfSBpcyB0cnVlLiIgSW4gdGhlIGNhc2UgdGhhdCB7ZGF9LCB7ZGV9 IG9yIHtkaX0gYXJlIG5vdCBwcmVmaXhlZCBieSBhIHF1YW50aWZpZXIsIHRoZXkgYXJlIHJlZ2Fy ZGVkIGFzIGltcGxpY2l0bHkgcHJlZml4ZWQgYnkge3N1J299Ll4KCjtfX2RvbWFpbl9fOiBSYW5n ZSBvZiByZWZlcmVudHMgdG8gYmUgc3Vic3RpdHV0ZWQgZm9yIGEgdmFyaWFibGUsIG9yIHJhbmdl IHRvIGJlIGNvbnNpZGVyZWQgaW4gY291bnRpbmcgcmVmZXJlbnRzIGluIHF1YW50aWZpY2F0aW9u LgoKXkluIExvamJhbiwgYSBkb21haW4gb2YgYSBib3VuZCB2YXJpYWJsZSBjYW4gYmUgbGltaXRl ZCB3aXRoIGFuIGV4cHJlc3Npb24ge2RhIHBvaS4uLn0uIEZvciBleGFtcGxlLCB7cm8gZGEgcG9p IGtlJ2EgYnJvZGEgem8ndSBkYSBicm9kZX0gbWVhbnMgIkZvciBhbGwge2RhfSB0aGF0IGFyZSB4 MSBvZiB7YnJvZGF9IGluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIHtkYSBicm9kZX0gaXMg dHJ1ZS4iIElmIHtwb2kuLi59IGRvZXMgbm90IGZvbGxvdyB7ZGF9LCB0aGUgZG9tYWluIGlzIHRo ZSB3aG9sZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UuXgoKO19fdGF1dG9sb2d5X186IFNlbnRlbmNl IHRoYXQgaXMgYWx3YXlzIHRydWUgaW5kZXBlbmRlbnRseSBvZiBjb250ZXh0LiB7a28nYSBkdSBr bydhfSBldGMuCgo7X19sb2dpY2FsIGF4aW9tc19fOiBTZW50ZW5jZXMgc2VsZWN0ZWQgZnJvbSB0 YXV0b2xvZ2llcyBzbyB0aGF0IGFsbCB0YXV0b2xvZ2llcyBhcmUgcHJvdmVkIGZyb20gdGhlbSB3 aXRoIHJ1bGVzIG9mIGluZmVyZW5jZSB0aGF0IGFyZSBkZWZpbmVkLgoKCgohISMgUGx1cmFsIHF1 YW50aWZpY2F0aW9uCgpJbiBvcmRlciB0byB1bmRlcnN0YW5kIGFyZ3VtZW50cyBvZiBMb2piYW4g ZnJvbSBhIGxvZ2ljYWwgcG9pbnQgb2YgdmlldywgaXQgaXMgZXNzZW50aWFsIHRvIGhhdmUgYSBr bm93bGVkZ2Ugb2YgX19wbHVyYWwgcXVhbnRpZmljYXRpb25fXy4KCgoKUGx1cmFsIHF1YW50aWZp Y2F0aW9uIHdhcyBpbnZlbnRlZCBpbiBvcmRlciB0byBmYWNpbGl0YXRlIGV4cHJlc3Npb24gb2Yg cHJvcG9zaXRpb24gdGhhdCBpcyBtZWFuaW5nZnVsIG9ubHkgd2hlbiB0aGUgcmVmZXJlbnQgb2Yg YW4gYXJndW1lbnQgaXMgcGx1cmFsLiAKCl4KCjtFeGFtcGxlOiBQZW9wbGUgZ2F0aGVyZWQsIGNv b2tlZCBhbmQgYXRlLl4KCkxvZ2ljYWxseSwgdGhpcyBzZW50ZW5jZSBpcyBhIHByb3Bvc2l0aW9u IHRoYXQgY29uc2lzdHMgb2YgYSBjb25zdGFudCAicGVvcGxlIiBhbmQgdGhyZWUgcHJlZGljYXRl cyAiZ2F0aGVyZWQiICJjb29rZWQiIGFuZCAiYXRlIi4gVGhlIHByZWRpY2F0ZXMgYXJlIGRpZmZl cmVudCBmcm9tIGVhY2ggb3RoZXIgaW4gcHJvcGVydHkgb2YgdHJlYXRpbmcgdGhlIGFyZ3VtZW50 LiBXZSB3aWxsIGRpc2N1c3MgcHJlY2lzZWx5IGhvdyB0aGUgYXJndW1lbnQgaW4gdGhlIHNlbnRl bmNlIGlzIHRyZWF0ZWQuCgoKCiEhISMgQ29sbGVjdGl2aXR5IGFuZCBkaXN0cmlidXRpdml0eQoK CgpDb25zaWRlciB0aGUgZXhwcmVzc2lvbiAicGVvcGxlIGdhdGhlcmVkIjogYmFzZWQgb24gdGhl IG1lYW5pbmcgb2YgdGhlIHByZWRpY2F0ZSAiZ2F0aGVyZWQiLCB0aGUgY29uc3RhbnQgInBlb3Bs ZSIgc2hvdWxkIHJlZmVyIHRvIHBsdXJhbCBwZW9wbGUuCgpXaGVuIHJlZmVyZW50cyBvZiBhbiBh cmd1bWVudCBzYXRpc2Z5IGEgcHJlZGljYXRlIGFzIGNvbGxlY3RpdmUgcGx1cmFsIHRoaW5ncyBs aWtlIHRoaXMsIHdlIGV4cHJlc3MgaXQgYXMgImFuIGFyZ3VtZW50IHNhdGlzZmllcyBhbiBwcmVk aWNhdGUgX19jb2xsZWN0aXZlbHlfXyIsIG9yICJ0aGUgYXJndW1lbnQgaGFzIF9fY29sbGVjdGl2 aXR5X18iLgoKCgpBcyBmb3IgZWFjaCBvZiB0aGUgcGx1cmFsIHBlb3BsZSByZWZlcnJlZCB0byBi eSB0aGUgY29uc3RhbnQsICBlYWNoIHNlbnRlbmNlIHN1Y2ggdGhhdCAiQWxpY2UgZ2F0aGVyZWQi LCAiQm9iIGdhdGhlcmVkIiBhbmQgc28gb24gaXMgbm9uc2Vuc2UuCgpXaGVuIGVhY2ggcmVmZXJl bnQgcmVmZXJyZWQgdG8gYnkgYSBjb25zdGFudCBjYW5ub3Qgc2F0aXNmeSBhIHByZWRpY2F0ZSBh bG9uZSwgd2UgZXhwcmVzcyBpdCBhcyAiYW4gYXJndW1lbnQgc2F0aXNmaWVzIGFuIHByZWRpY2F0 ZSBfX25vbi1kaXN0cmlidXRpdmVseV9fIi4KCgoKT24gdGhlIG90aGVyIGhhbmQsIGluIHRoZSBl eHByZXNzaW9uICJwZW9wbGUgYXRlIiwgYWx0aG91Z2ggdGhlIGNvbnN0YW50ICJwZW9wbGUiIHJl ZmVycyB0byBwbHVyYWwgcGVvcGxlLCB0aGUgcHJlZGljYXRlICJhdGUiIGlzIHNhdGlzZmllZCBi eSBlYWNoIHBlcnNvbi4gVGhhdCBpcyB0byBzYXksIGVhY2ggc2VudGVuY2Ugc3VjaCB0aGF0ICJB bGljZSBhdGUiLCAiQm9iIGF0ZSIgYW5kIHNvIG9uIGlzIG1lYW5pbmdmdWwuCgpXaGVuIGVhY2gg cmVmZXJlbnQgcmVmZXJyZWQgdG8gYnkgYSBjb25zdGFudCBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUg YWxvbmUsIHdlIGV4cHJlc3MgaXQgYXMgImFuIGFyZ3VtZW50IHNhdGlzZmllcyBhbiBwcmVkaWNh dGUgX19kaXN0cmlidXRpdmVseV9fIiwgb3IgInRoZSBhcmd1bWVudCBoYXMgX19kaXN0cmlidXRp dml0eV9fIi4KCgoKTW9yZW92ZXIsIGlmIHRoZSBwcmVkaWNhdGUgImVhdCIgbWVhbnMgYW4gYWN0 ICJwdXQgZm9vZCBpbiBhIG1vdXRoLCBiaXRlIGl0LCBsZXQgaXQgcGFzcyB0aHJvdWdoIGFuIGVz b3BoYWd1cyBhbmQgc2VuZCBpdCB0byBhIHN0b21hY2giLCBpdCBpcyBoYXJkbHkgY29uc2lkZXJl ZCB0aGF0ICJwZW9wbGUiIHNhdGlzZmllcyAiZWF0IiBjb2xsZWN0aXZlbHkuIEV2ZW4gaWYgYSBw ZXJzb24gaGVscHMgYW5vdGhlciB0byBlYXQsIHRoZSBoZWxwZXIgaXMgbm90IGVhdGVyLCBhbmQg dGhlIGVhdGVyIGlzIG5vdCBjb2xsZWN0aXZlIHBlb3BsZSBidXQgYW4gaW5kaXZpZHVhbC4gCgpX aGVuIGVhY2ggcmVmZXJlbnQgcmVmZXJyZWQgdG8gYnkgYSBjb25zdGFudCBjYW5ub3Qgc2F0aXNm eSBhIHByZWRpY2F0ZSBhcyBjb2xsZWN0aXZlIHBsdXJhbCB0aGluZ3MsIHdlIGV4cHJlc3MgaXQg YXMgImFuIGFyZ3VtZW50IHNhdGlzZmllcyBhbiBwcmVkaWNhdGUgX19ub24tY29sbGVjdGl2ZWx5 X18iLgoKKEhvd2V2ZXIsIGl0IGlzIHBvc3NpYmxlIHRvIGludGVycHJldCB0aGUgcHJlZGljYXRl ICJlYXQiIGFzIGludm9sdmluZyBjb2xsZWN0aXZpdHkuIEZvciBleGFtcGxlLCBpZiBpdCBpcyBp bnRlcnByZXRlZCBhcyAicHV0IGZvb2QgYXdheSBmcm9tIG91dHNpZGUgdG8gaW5zaWRlIG9mIGJv ZHkiLCB3ZSBtYXkgc2F5ICJjb2xsZWN0aXZlbHkgZWF0IiB0byBleHByZXNzIGFuIGV2ZW50IHRo YXQgcGVvcGxlIGVhdCBhbmQgY29uc3VtZSBhIG1hc3Mgb2YgZm9vZCB0b2dldGhlci4pCgoKClRo ZXJlIGFyZSBhbHNvIHByZWRpY2F0ZXMgdGhhdCBhbGxvdyBib3RoIHByb3BlcnRpZXMgImNvbGxl dnRpdml0eSIgYW5kICJkaXN0cmlidXRpdml0eSIuCgoiUGVvcGxlIGNvb2tlZCIgbWF5IG1lYW4g dGhhdCBwbHVyYWwgcGVvcGxlIGtuZWFkIHBhc3RlIG9mIHBpenphIHRvZ2V0aGVyLCBhbmQgdGhh dCBlYWNoIG9mIHRoZW0gaXMgaW4gY2hhcmdlIG9mIGNha2VzIG9yIHBvdC1hdS1mZXUuIEluIHRo aXMgY2FzZSwgdGhlIGNvbnN0YW50ICJwZW9wbGUiIHJlZmVycyB0byBwbHVyYWwgcGVvcGxlLCBh bmQgdGhleSBjb29rZWQgcGl6emEgY29sbGVjdGl2ZWx5LCBjYWtlcyBhbmQgcG90LWF1LWZldSBk aXN0cmlidXRpdmVseS4gVGhlIGNvbnN0YW50ICJwZW9wbGUiIHRodXMgc2F0aXNmaWVzIHRoZSBw cmVkaWNhdGUgImNvb2tlZCIgY29sbGVjdGl2ZWx5IGFuZCBkaXN0cmlidXRpdmVseS4KCgoKTm90 ZSB0aGF0IHRoZSBjb25zdGFudCAicGVvcGxlIiByZWZlcnMgdG8gd2hhdCBpcyBjb21tb24gdG8g dGhyZWUgcHJlZGljYXRlcyAiZ2F0aGVyZWQiLCAiY29va2VkIiBhbmQgImF0ZSIuIE5vIG1hdHRl ciBpZiBhIGNvbnN0YW50IHNhdGlzZmllcyBwcmVkaWNhdGVzIGNvbGxlY3RpdmVseSBvciBkaXN0 cmlidXRpdmVseSwgdGhlIHJlZmVyZW50IGlzIHRoZSBzYW1lLgoKCgpJZiB3ZSB1c2UgYW4gYXJn dW1lbnQgImEgc2V0IG9mIHBlb3BsZSIgaW4gdGhlIGNhc2Ugb2Ygc2F0aXNmeWluZyBhIHByZWRp Y2F0ZSBjb2xsZWN0aXZlbHksIGl0IG1pZ2h0IGJlIHBvc3NpYmxlIHRvIGludGVycHJldCB0aGUg cHJlZGljYXRlICJnYXRoZXJlZCIgc28gdGhhdCB0aGUgYXJndW1lbnQgc2F0aXNmaWVzIGl0LCBi dXQgdGhlIHNhbWUgYXJndW1lbnQgY2Fubm90IHNhdGlzZnkgdGhlIHByZWRpY2F0ZSAiYXRlIiwg YmVjYXVzZSB3ZSBjYW4gaGFyZGx5IHNheSB0aGF0IGEgc2V0IG9mIHBlb3BsZSwgd2hpY2ggaXMg YW4gYWJzdHJhY3QgZW50aXR5LCBwZXJmb3JtcyAiYXRlIi4KCgoKVXNpbmcgcGx1cmFsIGNvbnN0 YW50cyBhbmQgcGx1cmFsIHZhcmlhYmxlcyB0aGF0IHdpbGwgYmUgZGlzY3Vzc2VkIGluIHRoZSBm b2xsb3dpbmcgc2VjdGlvbnMsIHdlIGNhbiBleHByZXNzIHBsdXJhbCB0aGluZ3MgaW4gdGhlIGZv cm0gb2YgcHJlZGljYXRlIGxvZ2ljIHdpdGhvdXQgdXNpbmcgc2V0cy4KCgoKISEhIyBQbHVyYWwg Y29uc3RhbnQgYW5kIHBsdXJhbCB2YXJpYWJsZQoKQW4gYXJndW1lbnQgdGhhdCByZWZlcnMgdG8g cmVmZXJlbnQgd2l0aG91dCBpbnRyb2R1Y2luZyBhIG5vdGlvbiBvZiBzZXRzLCB3aXRob3V0IGRp c3Rpbmd1aXNoaW5nIGNvbGxlY3Rpdml0eSBhbmQgZGlzdHJpYnV0aXZpdHksIHdpdGhvdXQgZGlz dGluZ3Vpc2hpbmcgcGx1cmFsaXR5IGFuZCBzaW5ndWxhcml0eSwgaXMgY2FsbGVkIF9fcGx1cmFs IGNvbnN0YW50X18uCgpBIHZhcmlhYmxlIGZvciB3aGljaCBhIHBsdXJhbCBjb25zdGFudCBjYW4g YmUgc3Vic3RpdHV0ZWQgaXMgY2FsbGVkIF9fcGx1cmFsIHZhcmlhYmxlX18uCgpRdWFudGlmeWlu ZyBhIHBsdXJhbCB2YXJpYWJsZSBpcyBjYWxsZWQgX19wbHVyYWwgcXVhbnRpZmljYXRpb25fXy4g QSBxdWFudGlmaWVyIHVzZWQgZm9yIHBsdXJhbCBxdWFudGlmaWNhdGlvbiBpcyBjYWxsZWQgX19w bHVyYWwgcXVhbnRpZmllcl9fLiBBIHBsdXJhbCB2YXJpYWJsZSBwcmVmaXhlZCB3aXRoIGEgcGx1 cmFsIHF1YW50aWZpZXIgaXMgY2FsbGVkIGEgX19ib3VuZCBwbHVyYWwgdmFyaWFibGVfXy4KCgoK ISEhISMgbWUgYW5kIGpvJ3UKCldlIGludHJvZHVjZSByZWxhdGlvbnMgYmV0d2VlbiBwbHVyYWwg Y29uc3RhbnRzIGFuZCBwbHVyYWwgdmFyaWFibGVzOiB7bWV9IGFuZCB7am8ndX0uCgoKCnx8CgpY IG1lIFkgKG1lJ3UpIH5oc358fmhzfiBYIGlzIGFtb25nIFkKCnx8CgpYIGFuZCBZIHJlcHJlc2Vu dCBoZXJlIHBsdXJhbCBjb25zdGFudHMgb3IgcGx1cmFsIHZhcmlhYmxlcy4gQSBjbHVzdGVyIHtt ZSBZIChtZSd1KX0gaXMgYSBzZWxicmkgaW4gTG9qYmFuIGdyYW1tYXIuIHttZSd1fSBpcyBhbiBl bGlkYWJsZSB0ZXJtaW5hdG9yIG9mIHN0cnVjdHVyZSBiZWdpbm5pbmcgd2l0aCB7bWV9LgoKCgp7 bWV9IGhhcyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgd2l0aCBhcmJpdHJhcnkgYXJndW1lbnRz IFgsIFkgYW5kIFo6CgojIFggbWUgWCAocmVmbGV4aXZpdHkpCgojIFggbWUgWSBpamVibyBZIG1l IFogaW5hamEgWCBtZSBaICh0cmFuc2l0aXZpdHkpCgojIFggbWUgWSBpamVibyBZIG1lIFggaWpv IFggZHUgWSAoaWRlbnRpdHkpCgpUaGUgcHJvcGVydHkgMyBtZWFucyB0aGF0IHRoZSBpZGVudGl0 eSBiZXR3ZWVuIHJlZmVyZW50cyBvZiBYIGFuZCBZIGlzIHJlcHJlc2VudGVkIHdpdGgge21lfSwg YXMgYSByZWxhdGlvbiB0aGF0IHtYIG1lIFkgaWplYm8gWSBtZSBYfS4KCgoKfHwKClggam8ndSBZ IH5oc358fmhzfiBYIGFuZCBZCgp8fAoKe2pvJ3V9IGNvbWJpbmVzIHR3byBhcmd1bWVudHMgWCBh bmQgWSBpbnRvIG9uZSBwbHVyYWwgY29uc3RhbnQgb3Igb25lIHBsdXJhbCB2YXJpYWJsZS4KCgoK e2pvJ3V9IGhhcyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgd2l0aCBhcmJpdHJhcnkgYXJndW1l bnRzIFggYW5kIFk6CgojIFggbWUgWCBqbyd1IFkKCiMgWCBqbyd1IFkgZHUgWSBqbyd1IFgKCiMg WCBqbyd1IFggZHUgWAoKVGhlIHByb3BlcnR5IDIgbWVhbnMgdGhhdCB0aGUgcmVmZXJlbnQgb2Yg dGhlIHdob2xlIGFyZ3VtZW50IGRvZXMgbm90IHZhcnkgd2hlbiB0d28gYXJndW1lbnRzIGNvbWJp bmVkIGJ5IHtqbyd1fSBhcmUgaW50ZXJjaGFuZ2VkIHdpdGggZWFjaCBvdGhlci4gVGhlIHByb3Bl cnR5IDMgbWVhbnMgdGhhdCB7am8ndX0gZG9lcyBub3QgYWRkIGFueSByZWZlcmVudCB3aGVuIGl0 IGNvbWJpbmVzIGFuIGFyZ3VtZW50IHdpdGggaXRzZWxmLgoKCgpVc2luZyB7am8ndX0sIHRoZSBm b2xsb3dpbmcgZXhwcmVzc2lvbiBpcyBwb3NzaWJsZToKCl4KCjtFeGFtcGxlOiBCIGFuZCBDIGdh dGhlcmVkLCBjb29rZWQgYW5kIGF0ZS4KCjs6IGJ5IGpvJ3UgY3kgam1hamkgZ2knZSBqdWtwYSBn aSdlIGNpdGthXgoKRWFjaCBvZiB7Ynl9IGFuZCB7Y3l9IGlzIGEgcGx1cmFsIGNvbnN0YW50LgoK CgpUaGUgcHJlZGljYXRlIHtqdWtwYX0gKGNvb2spIGNhbiBiZSBpbnRlcnByZXRlZCBjb2xsZWN0 aXZlbHkgYW5kL29yIGRpc3RyaWJ1dGl2ZWx5LCBidXQgdGhlIHBsdXJhbCBjb25zdGFudCB7Ynkg am8ndSBjeX0gc2F5cyBub3RoaW5nIGFib3V0IHdoZXRoZXIgaXQgc2F0aXNmaWVzIHtqdWtwYX0g Y29sbGVjdGl2ZWx5IGFuZC9vciBkaXN0cmlidXRpdmVseS4gSWYgd2Ugd2FudCB0byBtYWtlIGV4 cGxpY2l0IHRoYXQgdGhleSBjb29rZWQgImNvbGxlY3RpdmVseSIsIHdlIHNheSB7Ynkgam9pIGN5 fSB1c2luZyAoKEJQRksgU2VjdGlvbjogTm9uLWxvZ2ljYWwgQ29ubmVjdGl2ZXN8e2pvaX0gdGhh dCBjb21iaW5lcyB0d28gYXJndW1lbnRzIGludG8gYW4gYXJndW1lbnQgdGhhdCBzYXRpc2ZpZXMg YSBwcmVkaWNhdGUgbm9uLWRpc3RyaWJ1dGl2ZWx5KSksIG9yIHtsdSdvIGJ5IGpvJ3UgY3l9IHVz aW5nIHtsdSdvfSB0aGF0IHdpbGwgYmUgZGlzY3Vzc2VkIGluICgofCNSZWxhdGlvbl9iZXR3ZWVu X2x1X2FfbHVfb19sdV9pX2FuZF9nYWRyaXxTZWN0aW9uIDMuMykpLiBDb250cmFzdGl2ZWx5LCBp ZiB3ZSB3YW50IHRvIG1ha2UgZXhwbGljaXQgdGhhdCB0aGV5IGNvb2tlZCAiZGlzdHJpYnV0aXZl bHkiLCB3ZSBzYXkgIHtsdSdhIGJ5IGpvJ3UgY3l9IHVzaW5nIHtsdSdhfSB0aGF0IHdpbGwgYmUg ZGlzY3Vzc2VkIGluICgofCNSZWxhdGlvbl9iZXR3ZWVuX2x1X2FfbHVfb19sdV9pX2FuZF9nYWRy aXxTZWN0aW9uIDMuMykpLiBIb3dldmVyLCB0aGVzZSBhcmd1bWVudHMgdGhhdCBzYXlzIGV4cGxp Y2l0bHkgY29sbGVjdGl2aXR5IGFuZC9vciBkaXN0cmlidXRpdml0eSBhcmUgbm90IGFsd2F5cyBj b21tb25seSB1c2VkIGZvciBvdGhlciBwcmVkaWNhdGVzIGxpa2Uge2ptYWppfSBvciB7Y2l0a2F9 LgoKCgpUaGUgZGlhZ3JhbSBiZWxsb3cgc2hvd3MgcmVsYXRpb25zIGNvbnN0cnVjdGVkIHdpdGgg e21lfSBhbmQge2pvJ3V9IHJlcHJlc2VudGVkIHdpdGggYSBkaXJlY3RlZCBncmFwaCwgaW4gd2hp Y2ggdGhlIHZlcnRpY2VzIHJlcHJlc2VudCBwbHVyYWwgY29uc3RhbnRzLgoKCgp7aW1nIGZpbGVJ ZD0iNyIgdGh1bWI9InkiIHJlbD0iYm94W2ddIn0KCgoKISEhISMgSW5kaXZpZHVhbAoKUmVmZXJl bnQgb2YgYSBwbHVyYWwgY29uc3RhbnQgaXMgbm90IG5lY2Vzc2FyaWx5IHBsdXJhbDogYSBwbHVy YWwgY29uc3RhbnQgY2FuIHJlZmVyIHRvIG9uZSBpbmRpdmlkdWFsLgoKX19BbiBpbmRpdmlkdWFs X18gaXMgZGVmaW5lZCBhcyBmb2xsb3dzOgoKfHwKCl9fWCBpcyBhbiBpbmRpdmlkdWFsX18gfmhz fnx+aHN+ID1jYSdlIH5oc358fmhzfiBybydvaSBkYSBwb2kga2UnYSBtZSBYIHpvJ3UgWCBtZSBk YQoKfHwKCgoKd2hlcmUgX19ybydvaV9fIGlzIGFuIGV4cGVyaW1lbnRhbCBjbWF2byBwcm9wb3Nl ZCBieSAoKHhvcnhlc3xsYSB4b3J4ZXMpKSwgd2hpY2ggaXMgYSBwbHVyYWwgcXVhbnRpZmllciBt ZWFuaW5nICJhbGwiLiAge3JvJ29pIGRhfSBpcyBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZSBtZWFu aW5nICJmb3IgYWxsIHRoYXQgY2FuIGJlIHN1YnN0aXR1dGVkIGZvciB7ZGF9Ii4gVGhpcyBkZWZp bml0aW9uIG1lYW5zIHRoYXQgWCBpcyBjYWxsZWQgYW4gaW5kaXZpZHVhbCB3aGVuIHRoZSBjb25k aXRpb24gImZvciBhbGwge2RhfSB0aGF0IGFyZSBhbW9uZyBYLCBYIGlzIGFtb25nIHtkYX0iIGlz IHNhdGlzZmllZC4gSW4gb3RoZXIgd29yZHMsICJpbiB0aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNl LCBub3RoaW5nIG90aGVyIHRoYW4ge1h9IGNhbiBiZSBzdWJzdGl0dXRlZCBmb3Ige2RhfSBzdWNo IHRoYXQge1ggbWUgZGF9IiBpcyBleHByZXNzZWQgYnkgIlggaXMgYW4gaW5kaXZpZHVhbCIuCgoK CldoZW4gZWFjaCBvZiBYIGFuZCBZIGlzIGFuIGluZGl2aWR1YWwsIHtYIGpvJ3UgWX0gaXMgY2Fs bGVkIF9faW5kaXZpZHVhbHNfXy4gV2hlbiBlYWNoIG9mIFggYW5kIFkgaXMgYW4gaW5kaXZpZHVh bCBvciBpbmRpdmlkdWFscywge1ggam8ndSBZfSBpcyBjYWxsZWQgaW5kaXZpZHVhbHMgYXMgd2Vs bC4KCgoKISEhISMgRGlmZmVyZW5jZSBiZXR3ZWVuIHBsdXJhbCBhbmQgc2luZ3VsYXIKCkEgcGx1 cmFsIGNvbnN0YW50IHRoYXQgaXMgYW4gaW5kaXZpZHVhbCBpcyBjYWxsZWQgX19zaW5ndWxhciBj b25zdGFudF9fLgoKCgpObyBtYXR0ZXIgd2hldGhlciBlYWNoIG9mIFggYW5kIFkgaXMgcGx1cmFs IG9yIHNpbmd1bGFyLCB7WCBqbyd1IFl9IGlzIG5vdCBhIHNpbmd1bGFyIGNvbnN0YW50LiBJdCBp cyBiZWNhdXNlIAoKXlggbWUgWCBqbyd1IFkgaWplbmFpIFggam8ndSBZIG1lIFheCgpob2xkcyB0 cnVlLCBhbmQgdGhlbiB7WCBqbyd1IFl9IGRvZXMgbm90IHNhdGlzZnkgdGhlIGNvbmRpdGlvbiBv ZiBhbiBpbmRpdmlkdWFsIHtybydvaSBkYSBwb2kga2UnYSBtZSBYIGpvJ3UgWSB6byd1IFggam8n dSBZIG1lIGRhfS4KCgoKISEhISMgQm91bmQgc2luZ3VsYXIgdmFyaWFibGUKCldoZW4gdGhlIGRv bWFpbiBvZiBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZSBpcyByZXN0cmljdGVkIHRvIHdoYXQgaXMg YW4gaW5kaXZpZHVhbCwgdGhlIHZhcmlhYmxlIGlzIGNhbGxlZCBfX2JvdW5kIHNpbmd1bGFyIHZh cmlhYmxlX18uCgp7cm8gZGF9IChmb3IgYWxsIHtkYX0pIGFuZCB7c3UnbyBkYX0gKHRoZXJlIGlz IGF0IGxlYXN0IG9uZSB7ZGF9KSwgd2hpY2ggYXJlIG9mZmljaWFsbHkgZGVmaW5lZCBpbiBMb2pi YW4sIGFyZSBib3VuZCBzaW5ndWxhciB2YXJpYWJsZXMuIFRoZXkgY2FuIGJlIGRlZmluZWQgd2l0 aCBib3VuZCBwbHVyYWwgdmFyaWFibGVzIGFzIGZvbGxvd3M6Cgp8fAoKcm8gZGEgfmhzfnx+aHN+ IHJvJ29pIGRhIHBvaSBybydvaSBkZSBwb2kga2UnYSB4aSBwYSBtZSBrZSdhIHhpIHJlIHpvJ3Ug a2UnYSB4aSByZSBtZSBkZQoKc3UnbyBkYSB+aHN+fH5oc34gc3Unb2kgZGEgcG9pIHJvJ29pIGRl IHBvaSBrZSdhIHhpIHBhIG1lIGtlJ2EgeGkgcmUgem8ndSBrZSdhIHhpIHJlIG1lIGRlCgp8fAoK X19zdSdvaV9fIGlzIGFuIGV4cGVyaW1lbnRhbCBjbWF2byBwcm9wb3NlZCBieSAoKHhvcnhlc3xs YSB4b3J4ZXMpKSwgYW5kIGlzIGEgcGx1cmFsIHF1YW50aWZpZXIgbWVhbmluZyAidGhlcmUgaXMv YXJlIi4gTm90ZSB0aGF0IHtzdSdvaX0gaXMgX19ub3RfXyAiYXQgbGVhc3Qgb25lIi4ge3N1J29p IGRhfSBpcyBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZSBtZWFuaW5nICJ0aGVyZSBpcy9hcmUge2Rh fSIuCgoKCkZvciBleGFtcGxlLCBhIHBsdXJhbCBjb25zdGFudCB7QSBqbyd1IEJ9IGNhbiBiZSBp biBhIGRvbWFpbiBvZiBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZSwgYnV0IGl0IGNhbm5vdCBiZSBp biBhIGRvbWFpbiBvZiBhIGJvdW5kIHNpbmd1bGFyIHZhcmlhYmxlIGJlY2F1c2UgaXQgaXMgbm90 IGFuIGluZGl2aWR1YWwuCgoKCiEhISEjIFdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5v ciBpbmRpdmlkdWFscwoKUmVmZXJlbnQgb2YgYSBwbHVyYWwgY29uc3RhbnQgaXMgbm90IG5lY2Vz c2FyaWx5IGFuIGluZGl2aWR1YWwgb3IgaW5kaXZpZHVhbHMuIAoKSXQgaXMgcG9zc2libGUgdG8g ZGlzY3VzcyBhIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSBzdWNoIHRoYXQgcmVmZXJlbnQgb2YgYSBw bHVyYWwgY29uc3RhbnQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscy4K CgoKRm9yIGV4YW1wbGUsIGNvbnNpZGVyIHN1Y2ggYSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UgaW4g d2hpY2ggdGhlIGZvbGxvd2luZyBwcm9wb3NpdGlvbiBob2xkcyB0cnVlLgoKXnJvJ29pIGRhIHBv aSBrZSdhIG1lIGtvJ2Ega3UnbyBzdSdvaSBkZSB6byd1IGRlIG1lIGRhIGlqZW5haSBkYSBtZSBk ZSB+LS1+IENvbmRpdGlvbl8xXgoKSW4gb3RoZXIgd29yZHMsIGluIHRoaXMgdW5pdmVyc2Ugb2Yg ZGlzY291cnNlLCBmb3IgYWxsIFggc3VjaCB0aGF0IHtYIG1lIGtvJ2F9LCB0aGVyZSBpcyBhbHdh eXMgWSBzdWNoIHRoYXQge1kgbWUgWH0gYW5kIG5vdCB7WCBtZSBZfS4KCgoKO1RoZW9yZW06IElu IGEgdW5pdmVyc2Ugb2YgZGlzY291cnNlIHdoZXJlIENvbmRpdGlvbl8xIGlzIHRydWUsIHtrbydh fSBpcyBuZWl0aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzLgoKCgo7UHJvb2Y6IFN1 cHBvc2Uge2tvJ2F9IGlzIGFuIGluZGl2aWR1YWwuIEZyb20gdGhlIGRlZmluaXRpb24gb2YgImFu IGluZGl2aWR1YWwiOgoKXnJvJ29pIGRhIHBvaSBrZSdhIG1lIGtvJ2Egem8ndSBrbydhIG1lIGRh IH4tLX4gU3VwcG9zaXRpb25fMl4KClJlcGxhY2Uge3JvJ29pIGRhfSB3aXRoIHtuYWt1IHN1J29p IGRhIG5ha3V9OgoKXm5ha3Ugc3Unb2kgZGEgcG9pIGtlJ2EgbWUga28nYSBrdSdvIG5ha3Ugem8n dSBrbydhIG1lIGRhIH4tLX4gU3VwcG9zaXRpb25fMi0xXgoKTW92ZSB0aGUgaW5uZXItbW9zdCB7 bmFrdX0gaW50byB0aGUgcHJvcG9zaXRpb246CgpebmFrdSBzdSdvaSBkYSBwb2kga2UnYSBtZSBr bydhIHpvJ3UgbmFrdSBrbydhIG1lIGRhIH4tLX4gU3VwcG9zaXRpb25fMi0yXgoKUmVwbGFjZSB7 c3Unb2kgZGEgcG9pfSB3aXRoIHtpamV9IGFuZCBtb3ZlIGludG8gdGhlIHByb3Bvc2l0aW9uOgoK Xm5ha3Ugc3Unb2kgZGEgem8ndSBkYSBtZSBrbydhIGlqZSBuYWt1IGtvJ2EgbWUgZGEgfi0tfiBT dXBwb3NpdGlvbl8yLTNeCgpSZXBsYWNlIHtpamUgbmFrdX0gd2l0aCB7aWplbmFpfToKCl5uYWt1 IHN1J29pIGRhIHpvJ3UgZGEgbWUga28nYSBpamVuYWkga28nYSBtZSBkYSB+LS1+IFN1cHBvc2l0 aW9uXzItNF4KCkJ5IHRoZSB3YXksIGZyb20gYSBwcm9wZXJ0eSBvZiB7bWV9LAoKXmtvJ2EgbWUg a28nYSBeCgppcyBhbHdheXMgdHJ1ZS4ge2tvJ2F9IGlzIHRoZXJlZm9yZSBpbiB0aGUgZG9tYWlu IG9mIHtkYX0gb2YgQ29uZGl0aW9uXzEuIFJlcGxhY2Uge3JvJ29pIGRhfSBvZiBDb25kaXRpb25f MSB3aXRoIHtrbydhfSwgYW5kIGl0IHRodXMgaG9sZHMgdHJ1ZToKCl5zdSdvaSBkZSB6byd1IGRl IG1lIGtvJ2EgaWplbmFpIGtvJ2EgbWUgZGUgfi0tfiBDb25kaXRpb25fMS0xXgoKQ29uZGl0aW9u XzEtMSBhbmQgU3VwcG9zaXRpb25fMi00IGNvbnRyYWRpY3QgZWFjaCBvdGhlci4KClN1cHBvc2l0 aW9uXzIgaXMgdGh1cyByZWplY3RlZCBieSByZWR1Y3RpbyBhZCBhYnN1cmR1bS4KCkl0IG1lYW5z IHRoYXQge2tvJ2F9IGlzIG5vdCBhbiBpbmRpdmlkdWFsLgoKCgpNb3Jlb3Zlciwgd2hlbiB7a28n YX0gaXMgZXhwYW5kZWQgdG8ge0Egam8ndSBCfSwgZnJvbSBhIHByb3BlcnR5IG9mIHtqbyd1fSwg dGhlIGZvbGxvd2luZyBwcm9wb3NpdGlvbnMgaG9sZCB0cnVlOgoKXkEgbWUga28nYX5wcH4KCn4v cHB+QiBtZSBrbydhXgoKRWFjaCBvZiBBIGFuZCBCIGlzIGluIHRoZSBkb21haW4gb2Yge2RhfSBv ZiBDb25kaXRpb25fMS4gQ29uc2lkZXJpbmcgc2ltaWxhcmx5IHRvIENvbmRpdGlvbl8xLTEsIG5l aXRoZXIgQSBub3IgQiBpcyBhbiBpbmRpdmlkdWFsLiB7a28nYX0gaXMgdGh1cyBub3QgaW5kaXZp ZHVhbHMuCgpRLkUuRC4KCgoKV2hlbiB7a28nYX0gaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5v ciBpbmRpdmlkdWFscywgd2hhdCBhY3R1YWxseSBkb2VzIGl0IHJlZmVyIHRvPwoKV2UgbWF5IGlu dGVycHJldCB0aGF0IGl0IHJlZmVycyB0byB3aGF0IGlzIHJlZmVyZWQgdG8gYnkgYSBtYXRlcmlh bCBub3VuLCBmb3IgZXhhbXBsZS4KCkJ5IGEgc3BlYWtlciB3aG8gdGhpbmtzIHRoYXQgYSBjdXQt b2ZmIHBpZWNlIG9mIGJyZWFkIGlzIGFsc28gYnJlYWQsIGJyZWFkIGlzIHJlZ2FyZGVkIGFzIG5l aXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHMuCgoKCltodHRwczovL2dyb3Vwcy5n b29nbGUuY29tL2QvbXNnL2xvamJhbi9SQXRFN1lrLWRxdy9wQ0dlWUNFOWwxUUp8KFJlbGF0ZWQg ZGlzY3Vzc2lvbjogZm9yIHRoZSBjYXNlIG9mIHtrbydhfT17bG8gc2lkYm99LCBJIHdyb3RlIHRo ZSBzYW1lIHByb29mIG9ubHkgaW4gTG9qYmFuLildCgoKCiEhISEjIEEgbG9naWNhbCBheGlvbSBv biBwbHVyYWwgY29uc3RhbnQKClRoZSBmb2xsb3dpbmcgbG9naWNhbCBheGlvbSBpcyBnaXZlbiB0 byBhbiBhcmJpdHJhcnkgcGx1cmFsIGNvbnN0YW50IEM6CgpeZ2FuYWkgQyBicm9kYSBnaSBzdSdv aSBkYSB6byd1IGRhIGJyb2RhXgoKCgpJdCBtZWFucyAiaW4gYSB1bml2ZXJzZSBvZiBkaXNjb3Vy c2UsIGlmIGEgcHJvcG9zaXRpb24gaW4gd2hpY2ggYSBwbHVyYWwgY29uc3RhbnQgaXMgeDEgb2Yg e2Jyb2RhfSBob2xkcyB0cnVlLCB0aGVyZSBpcyByZWZlcmVudCB0aGF0IGlzIHgxIG9mIHticm9k YX0iLgoKCgpUaGF0IGlzIHRvIHNheSwgYW4gYXJndW1lbnQgdGhhdCBoYXMgbm8gcmVmZXJlbnQg aW4gYSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UgY2Fubm90IGJlIHJlcHJlc2VudGVkIGJ5IGEgcGx1 cmFsIGNvbnN0YW50LiBBbiBhcmd1bWVudCB0aGF0IGhhcyBubyByZWZlcmVudCBpcyBleHByZXNz ZWQgaW4gdGhlIGZvcm0ge25ha3Ugc3Unb2kgZGF9LCB3aGljaCBpcyBhIG5lZ2F0aW9uIG9mIGEg Ym91bmQgcGx1cmFsIHZhcmlhYmxlIHtzdSdvaSBkYX0gbWVhbmluZyAidGhlcmUgaXMvYXJlIi4K CgoKISEjIERlZmluaXRpb24gb2YgZ2FkcmkKCjtfX2xvX18gKExFKTogSXQgaXMgcHJlZml4ZWQg dG8gc2VsYnJpLCBhbmQgZm9ybXMgYSBwbHVyYWwgY29uc3RhbnQgdGhhdCByZWZlcnMgdG8gd2hh dCBzYXRpc2ZpZXMgeDEsIHRoZSBmaXJzdCBwbGFjZSBvZiB0aGUgc2VsYnJpLiBJZiBhIHF1YW50 aWZpZXIgZm9sbG93cyB7bG99LCB0aGUgcXVhbnRpZmllciByZXByZXNlbnRzIHRoZSBzdW0gb2Yg YWxsIHRoZSByZWZlcmVudHMgb2YgdGhlIHBsdXJhbCBjb25zdGFudC4gSW4gdGhlIGNhc2UgdGhh dCBhIHF1YW50aWZpZXIgZm9sbG93cyB7bG99LCBhIHN1bXRpIG1heSBmb2xsb3cgaXQsIGFuZCB0 aGUgcXVhbnRpZmllciByZXByZXNlbnRzIHRoZSBzdW0gb2YgYWxsIHRoZSByZWZlcmVudHMgb2Yg dGhlIHN1bXRpLgoKfHwKCmxvIFtbUEFdIGJyb2RhIChrdSkgfmhzfnx+aHN+IHpvJ2Ugbm9pIGtl J2EgYnJvZGEgW1tnaSdlIHppbGthbmN1IGxpIFBBIGxvIGJyb2RhXSAoa3Unbykgfmhzfnx+aHN+ IHdoYXQgaXMvYXJlIGJyb2RhIFtbdGhhdCBpcy9hcmUgUEEgaW4gdG90YWxdCgpsbyBQQSAnJ3N1 bXRpJycgKGt1KSB+aHN+fH5oc34gbG8gUEEgbWUgJydzdW10aScnIChtZSd1KSAoa3UpIH5oc358 fmhzfiB3aGF0IGlzL2FyZSBhbW9uZyAnJ3N1bXRpJycgdGhhdCBpcy9hcmUgUEEgaW4gdG90YWwK Cnx8Cgp7a3V9LCB7a3Unb30sIHttZSd1fSBhcmUgZWxpZGFibGUgdGVybWluYXRvcnMuCgoKClB1 dHRpbmcgYSBxdWFudGlmaWVyIGFmdGVyIGdhZHJpIGxpa2Uge2xvIFBBfSBpcyBjYWxsZWQgX19p bm5lciBxdWFudGlmaWNhdGlvbl9fLCBhbmQgdGhlIHF1YW50aWZpZXIgaXMgY2FsbGVkIF9faW5u ZXIgcXVhbnRpZmllcl9fLiBBbHRob3VnaCB0aGUgdGVybSAicXVhbnRpZnkiIGlzIGludm9sdmVk LCBpdCBpcyBkaWZmZXJlbnQgZnJvbSBxdWFudGlmaWNhdGlvbiBvZiBsb2dpYy4gSW5uZXIgcXVh bnRpZmljYXRpb24gZG9lcyBub3QgaW52b2x2ZSBjb3VudGluZyByZWZlcmVudHMgb2YgY29uc3Rh bnRzIHRoYXQgY2FuIGJlIHN1YnN0aXR1dGVkIGZvciBhIHZhcmlhYmxlLCBidXQgY291bnRpbmcg YWxsIHRoZSByZWZlcmVudHMgb2Ygb25lIHBsdXJhbCBjb25zdGFudC4gSW5uZXIgcXVhbnRpZmlj YXRpb24gd2lsbCBiZSBkaXNjdXNzZWQgbW9yZSBwcmVjaXNlbHkgaW4gKCh8I0lubmVyX3F1YW50 aWZpY2F0aW9ufFNlY3Rpb24gMy4xKSkuCgoKCk9uIHRoZSBvdGhlciBoYW5kLCBwdXR0aW5nIGEg cXVhbnRpZmllciBiZWZvcmUgZ2FkcmksIG9yIGJlZm9yZSBhIHN1bXRpIG1vcmUgZ2VuZXJhbGx5 LCBpcyBjYWxsZWQgX19vdXRlciBxdWFudGlmaWNhdGlvbl9fLCBhbmQgdGhlIHF1YW50aWZpZXIg aXMgY2FsbGVkIF9fb3V0ZXIgcXVhbnRpZmllcl9fLiBPdXRlciBxdWFudGlmaWNhdGlvbiB3aWxs IGJlIGRpc2N1c3NlZCBtb3JlIHByZWNpc2VseSBpbiAoKHwjT3V0ZXJfcXVhbnRpZmljYXRpb258 U2VjdGlvbiAzLjIpKS4KCgoKQWxsIHN1bXRpIGZvcm1lZCB3aXRoIGdhZHJpIGFyZSBkZWZpbmVk IHNvIHRoYXQgdGhleSBhcmUgZXhwYW5kZWQgaW50byBleHByZXNzaW9ucyB3aXRoIHt6bydlfS4g VGhhdCBpcyB0byBzYXksIHRoZSBtb3N0IGdlbmVyYWwgcGx1cmFsIGNvbnN0YW50IGlzIHJlcHJl c2VudGVkIGJ5IGEgc2luZ2xlIHt6bydlfS4gQSBzdW10aSBmb3JtZWQgd2l0aCBnYWRyaSBpcyB7 em8nZX0gYWNjb25wYW5pZWQgYnkgYW4gZXhwbGFuYXRpb24uCgpeCgo7RXhhbXBsZTogUGVvcGxl IGdhdGhlcmVkLCBjb29rZWQgYW5kIGF0ZS4KCjs6IGxvIHByZW51IGN1IGptYWppIGdpJ2UganVr cGEgZ2knZSBjaXRrYV4KCgoKV2hpbGUgdGhlIHByZWRpY2F0ZSB7anVrcGF9IChjb29rKSBjYW4g YmUgaW50ZXJwcmV0ZWQgY29sbGVjdGl2ZWx5IGFzIHdlbGwgYXMgZGlzdHJpYnV0aXZlbHksIHRo ZSBwbHVyYWwgY29uc3RhbnQge2xvIHByZW51fSAocGVvcGxlKSBkb2VzIG5vdCBzYXkgZXhwbGlj aXRseSBpZiBpdCBzYXRpc2ZpZXMge2p1a3BhfSBjb2xsZWN0aXZlbHkgb3IgZGlzdHJpYnV0aXZl bHkuIElmIHdlIHdhbnQgdG8gc2F5IGV4cGxpY2l0bHkgdGhhdCB0aGV5ICJjb2xsZWN0aXZlbHki IGNvb2tlZCwgd2UgdXNlIHtsb2l9LCB3aGljaCB3aWxsIGJlIGRpc2N1c3NlZCBsYXRlciwgYW5k IHNheSB7bG9pIHByZW51fS4gQ29udHJhc3RpdmVseSwgaWYgd2Ugd2FudCB0byBzYXkgZXhwbGlj aXRseSB0aGF0IHRoZXkgImRpc3RyaWJ1dGl2ZWx5IiBjb29rZWQsIHdlIHNheSB7cm8gbG8gcHJl bnV9IHdpdGggYW4gb3V0ZXIgcXVhbnRpZmljYXRpb24sIG9yIHtsdSdhIGxvIHByZW51fS4gSG93 ZXZlciwgYSBzdW10aSB0aGF0IHNheXMgZXhwbGljaXRseSBjb2xsZWN0aXZpdHkgb3IgZGlzdHJp YnV0aXZpdHkgaXMgbm90IG5lY2Vzc2FyaWx5IGFibGUgdG8gYmUgc2hhcmVkIHdpdGggb3RoZXIg cHJlZGljYXRlIGxpa2Uge2ptYWppfSBvciB7Y2l0a2F9LgoKCgo7X19sZV9fIChMRSk6IHtsZSBi cm9kYX0gcmVmZXJzIF9fc3BlY2lmaWNhbGx5X18gdG8gYSByZWZlcmVudCBvZiB7bG8gYnJvZGF9 LCBhbmQgX19leHBsaWNpdGx5IGV4cHJlc3MgdGhhdCB0aGUgc3BlYWtlciBoYXMgdGhlIHJlZmVy ZW50IGluIG1pbmRfXy4gSXRzIGxvZ2ljYWwgcHJvcGVydHkgaXMgdGhlIHNhbWUgYXMgdGhhdCBv ZiB7bG99LgoKfHwKCmxlIFtbUEFdIGJyb2RhIChrdSkgfmhzfnx+aHN+IHpvJ2Ugbm9pIG1pIGtl J2EgZG8gc2tpY3UgbG8ga2EgY2UndSBicm9kYSBbW2dpJ2Ugemlsa2FuY3UgbGkgUEEgbG8gYnJv ZGFdIChrdSdvKSAKCmxlIFBBICcnc3VtdGknJyAoa3UpIH5oc358fmhzfiBsZSBQQSBtZSAnJ3N1 bXRpJycgKG1lJ3UpIChrdSkKCnx8CgoKCjtfX2xhX18gKExBKTogSXQgaXMgcHJlZml4ZWQgdG8g c2VsYnJpIG9yIGNtZXZsYSwgYW5kIGZvcm1zIGEgcGx1cmFsIGNvbnN0YW50IHRoYXQgcmVmZXJz IHRvIHdoYXQgaXMgbmFtZWQgdGhlIHNlbGJyaSBvciBjbWV2bGEgc3RyaW5nLiBJdHMgbG9naWNh bCBwcm9wZXJ0eSBpcyB0aGUgc2FtZSBhcyB0aGF0IG9mIHtsb30uCgp8fAoKbGEgW1tQQV0gYnJv ZGEgKGt1KSB+aHN+fH5oc34gem8nZSBub2kgbHUgW1tQQV0gYnJvZGEgbGkndSBjbWVuZSBrZSdh IG1pIChrdSdvKSAKCmxhIFBBICcnc3VtdGknJyAoa3UpIH5oc358fmhzfiB6bydlIG5vaSBsdSBQ QSBzdW10aSBsaSd1IGNtZW5lIGtlJ2EgbWkgKGt1J28pIAoKfHwKCgoKO19fbG9pX18gKExFKSwg X19sZWlfXyAoTEUpLCBfX2xhaV9fIChMQSk6IHtsb2kvbGVpL2xhaSBicm9kYX0gcmVmZXJzIHRv IGEgcmVmZXJlbnQgb2Yge2xvL2xlL2xhIGJyb2RhfSwgYW5kIF9fZXhwbGljaXRseSBleHByZXNz IHRoYXQgdGhlIHJlZmVyZW50IHNhdGlzZmllcyBhIHByZWRpY2F0ZSBjb2xsZWN0aXZlbHlfXy4K Cnx8Cgpsb2kgW1tQQV0gYnJvZGEgfmhzfnx+aHN+IGxvIGd1bm1hIGJlIGxvIFtbUEFdIGJyb2Rh CgpsZWkgW1tQQV0gYnJvZGEgfmhzfnx+aHN+IGxvIGd1bm1hIGJlIGxlIFtbUEFdIGJyb2RhCgps YWkgW1tQQV0gYnJvZGEgfmhzfnx+aHN+IGxvIGd1bm1hIGJlIGxhIFtbUEFdIGJyb2RhCgpsb2kg UEEgJydzdW10aScnIH5oc358fmhzfiBsbyBndW5tYSBiZSBsbyBQQSAnJ3N1bXRpJycKCmxlaSBQ QSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvIGd1bm1hIGJlIGxlIFBBICcnc3VtdGknJwoKbGFpIFBB ICcnc3VtdGknJyB+aHN+fH5oc34gbG8gZ3VubWEgYmUgbGEgUEEgJydzdW10aScnCgp8fAoKQmFj YXVzZSB7bG9pL2xlaS9sYWl9IGlzIHRodXMgZGVmaW5lZCBieSBhbm90aGVyIHBsdXJhbCBjb25z dGFudCB7bG8gZ3VubWEgYmUgbG8vbGUvbGF9LCBpdCBkb2VzIG5vdCByZWZlciBkaXJlY3RseSB0 byByZWZlcmVudCBvZiB7bG8gYnJvZGF9IG9yIHtsbyBQQSAnJ3N1bXRpJyd9LCBidXQgcmVmZXJl bnQgb2Yge2xvIGd1bm1hfS4gVGhlcmVmb3JlLCBldmVuIGlmIHtsbyBicm9kYX0gb3Ige2xvIFBB ICcnc3VtdGknJ30gaXMgbm90IGFuIGluZGl2aWR1YWwsIHtsb2kgYnJvZGF9IG9yIHtsb2kgUEEg JydzdW10aScnfSBjYW4gYmUgYW4gaW5kaXZpZHVhbCB7bG8gZ3VubWF9IHVuZGVyIHRoZSBmb2xs b3dpbmcgY29uZGl0aW9uOgoKXnJvJ29pIGRhIHBvaSBrZSdhIG1lIGxvIGd1bm1hIGJlIGxvL2xl L2xhIFtbUEFdIGJyb2RhIHpvJ3UgbG8gZ3VubWEgYmUgbG8vbGUvbGEgW1tQQV0gYnJvZGEgY3Ug bWUgZGF+cHB+Cgp+L3BwfnJvJ29pIGRhIHBvaSBrZSdhIG1lIGxvIGd1bm1hIGJlIGxvL2xlL2xh IFBBICcnc3VtdGknJyB6byd1IGxvIGd1bm1hIGJlIGxvL2xlL2xhIFBBICcnc3VtdGknJyBjdSBt ZSBkYV4KCgoKO19fbG8naV9fIChMRSksIF9fbGUnaV9fIChMRSksIF9fbGEnaV9fIChMQSk6IHts bydpL2xlJ2kvbGEnaSBicm9kYX0gcmVmZXJzIHRvIGEgc2V0IG9yIHNldHMgb2YgaW5kaXZpZHVh bChzKSB0aGF0IGNvbnN0aXR1dGUocykgYSBwbHVyYWwgY29uc3RhbnQge2xvL2xlL2xhIGJyb2Rh fS4gQmVjYXVzZSB7bG8naS9sZSdpL2xhJ2l9IGZvcm1zIGEgc2V0IG9yIHNldHMsIGl0IGlzIGRl ZmluZWQgb25seSB3aGVuIGl0cy90aGVpciBtZW1iZXIocykge2xvL2xlL2xhIGJyb2RhfSBpcy9h cmUgYW4gaW5kaXZpZHVhbCBvciBpbmRpdmlkdWFscy4gQSBzZXQgaXRzZWxmIGlzIGFsd2F5cyBh biBpbmRpdmlkdWFsLCBhbmQgc2V0cyBhcmUgYWx3YXlzIGluZGl2aWR1YWxzOiB0aGVyZSBpcyBu byBzZXQgdGhhdCBpcyBub3QgYW4gaW5kaXZpZHVhbC4KCnx8CgpsbydpIFtbUEFdIGJyb2RhIH5o c358fmhzfiBsbyBzZWxjbWkgYmUgbG8gW1tQQV0gYnJvZGEKCmxlJ2kgW1tQQV0gYnJvZGEgfmhz fnx+aHN+IGxvIHNlbGNtaSBiZSBsZSBbW1BBXSBicm9kYQoKbGEnaSBbW1BBXSBicm9kYSB+aHN+ fH5oc34gbG8gc2VsY21pIGJlIGxhIFtbUEFdIGJyb2RhCgpsbydpIFBBICcnc3VtdGknJyB+aHN+ fH5oc34gbG8gc2VsY21pIGJlIGxvIFBBICcnc3VtdGknJwoKbGUnaSBQQSAnJ3N1bXRpJycgfmhz fnx+aHN+IGxvIHNlbGNtaSBiZSBsZSBQQSAnJ3N1bXRpJycKCmxhJ2kgUEEgJydzdW10aScnIH5o c358fmhzfiBsbyBzZWxjbWkgYmUgbGEgUEEgJydzdW10aScnCgp8fAoKQmVjYXVzZSB7bG8naS9s ZSdpL2xhJ2l9IGlzIGRlZmluZWQgYnkgYW5vdGhlciBwbHVyYWwgY29uc3RhbnQge2xvIHNlbGNt aSBiZSBsby9sZS9sYX0sIGl0IGRvZXMgbm90IHJlZmVyIGRpcmVjdGx5IHRvIHJlZmVyZW50IG9m IHtsbyBicm9kYX0gb3Ige2xvIFBBICcnc3VtdGknJ30sIGJ1dCByZWZlcmVudCBvZiB7bG8gc2Vs Y21pfS4KCgoKQW4gZW1wdHkgc2V0IGlzIHtsbyBzZWxjbWkgYmUgbm8gZGF9LCBhbmQgYW4gZXhw cmVzc2lvbiB7bG8gbm8gYnJvZGF9IGlzIG9mZmljaWFsbHkgbWVhbmluZ2xlc3MgKHNlZSAoKHwj SW5uZXJfcXVhbnRpZmljYXRpb258U2VjdGlvbiAzLjEpKS4gVGhpcyBpbXBsaWVzIHRoYXQgYW4g ZW1wdHkgc2V0IGNhbm5vdCBiZSBleHByZXNzZWQgd2l0aCB7bG8naS9sZSdpL2xhJ2l9LiAKCgoK ISEhIyBJbm5lciBxdWFudGlmaWNhdGlvbgoKKChCUEZLIFNlY3Rpb246IGdhZHJpfEJQRksgZGVm aW5lcyBpbm5lciBxdWFudGlmaWNhdGlvbikpIGFzIGZvbGxvd3M6Cgp8fAoKbG8gW1tQQV0gYnJv ZGEgfmhzfnx+aHN+IHpvJ2Ugbm9pIGtlJ2EgYnJvZGEgW1tnaSdlIHppbGthbmN1IGxpIFBBIGxv IGJyb2RhXQoKbG8gUEEgJydzdW10aScnIH5oc358fmhzfiBsbyBQQSBtZSAnJ3N1bXRpJycKCnx8 CgpUaGF0IGlzIHRvIHNheSwgaW5uZXIgcXVhbnRpZmllciBtZWFucyBudW1iZXIgb2YgcmVmZXJl bnQgY291bnRlZCBieSB1bml0IHtsbyBicm9kYX0gb3Ige2xvIG1lICcnc3VtdGknJ30gdGhhdCBp cyB4MyBvZiB7emlsa2FuY3V9LiAKCkhvd2V2ZXIsIGluc3RlYWQgb2Yge3ppbGthbmN1fSwgdGhl IG1lYW5pbmcgb2Ygd2hpY2ggaXMgdG9vIHZhZ3VlIGZvciBkZWZpbml0aW9uLCBbaHR0cHM6Ly9n cm91cHMuZ29vZ2xlLmNvbS9kL21zZy9sb2piYW4vUkF0RTdZay1kcXcveGkyaDZBMTdDdXNKfGFu IGlkZWEgb2YgcmVkZWZpbml0aW9uIHVzaW5nIHttZWl9IHdhcyBzdWdnZXN0ZWRdIGFzIGZvbGxv d3M6CgoKCjtBeGlvbSAxOiBybydvaSBkYSBzdSdvIHBhIG1laQoKO0RlZmluaXRpb246fHwKCihE MSkga28nYSBzdSdvIE4gbWVpIH5oc358fmhzfiA9Y2EnZSB+aHN+fH5oc34gc3Unb2kgZGEgcG9p IG1lIGtvJ2Ega3UnbyBzdSdvaSBkZSBwb2kgbWUga28nYSB6byd1IGdlIGRhIHN1J28gTi0xIG1l aSBnaW5haSBkZSBtZSBkYQoKKEQyKSBrbydhIE4gbWVpIH5oc358fmhzfiA9Y2EnZSB+aHN+fH5o c34ga28nYSBzdSdvIE4gbWVpIGdpJ2UgbmFpIHN1J28gTisxIG1laSAKCihEMykgbG8gUEEgYnJv ZGEgfmhzfnx+aHN+ID1jYSdlIH5oc358fmhzfiB6bydlIG5vaSBrZSdhIFBBIG1laSBnaSdlIGJy b2RhCgp8fAoKCgpVc2luZyB0aGVzZSBkZWZpbml0aW9ucyBhbmQgQXhpb20gMSwgdGhlIGZvbGxv d2luZyB0aGVvcmVtIHdpbGwgYmUgcHJvdmVkLgoKXklmIGFuZCBvbmx5IGlmIHtrbydhIHBhIG1l aX0sIHtrbydhfSBpcyBhbiBpbmRpdmlkdWFsLl4KCgoKO1Byb29mOiAoRDIpIGlzCgp8fAoKa28n YSBOIG1laQl8PXwga28nYSBzdSdvIE4gbWVpIGdpJ2UgbmFpIHN1J28gTisxIG1laSAKCgkJfD18 IGdlIGtvJ2Egc3UnbyBOIG1laSAtLS0tLShTMSkKCgkJfCB8IGdpIG5ha3Uga28nYSBzdSdvIE4r MSBtZWkgLS0tLS0oUzIpCgp8fAoKQXBwbHlpbmcgKEQxKSB0byAoUzIpLCAKCnx8CgooUzIpCQl8 PXwgbmFrdSBzdSdvaSBkYSBwb2kgbWUga28nYSBrdSdvIHN1J29pIGRlIHBvaSBtZSBrbydhIHpv J3UgCgoJCXwgfCBnZSBkYSBzdSdvIE4gbWVpIAoKCQl8IHwgZ2luYWkgZGUgbWUgZGEKCgkJfD18 IHJvJ29pIGRhIHBvaSBtZSBrbydhIGt1J28gcm8nb2kgZGUgcG9pIG1lIGtvJ2Egem8ndQoKCQl8 IHwgbmFrdSBnZSBkYSBzdSdvIE4gbWVpIAoKCQl8IHwgZ2kgbmFrdSBkZSBtZSBkYQoKCQl8PXwg cm8nb2kgZGEgcG9pIG1lIGtvJ2Ega3UnbyBybydvaSBkZSBwb2kgbWUga28nYSB6byd1CgoJCXwg fCBnYW5haSBkYSBzdSdvIE4gbWVpIAoKCQl8IHwgZ2kgZGUgbWUgZGEKCnx8CgooRDIpIGlzIHRo ZXJlZm9yZQoKfHwKCmtvJ2EgTiBtZWkJfD18IGdlIChTMSkgZ2kgKFMyKSAKCgkJfD18IGdlIGtv J2Egc3UnbyBOIG1laQoKCQl8IHwgZ2kgcm8nb2kgZGEgcG9pIG1lIGtvJ2Ega3UnbyBybydvaSBk ZSBwb2kgbWUga28nYSB6byd1CgoJCXwgfCBnYW5haSBkYSBzdSdvIE4gbWVpIAoKCQl8IHwgZ2kg ZGUgbWUgZGEKCnx8CgpXaGVuIE49MSwKCnx8CgprbydhIHBhIG1laQl8PXwgZ2Uga28nYSBzdSdv IHBhIG1laQoKCQl8IHwgZ2kgcm8nb2kgZGEgcG9pIG1lIGtvJ2Ega3UnbyBybydvaSBkZSBwb2kg bWUga28nYSB6byd1CgoJCXwgfCBnYW5haSBkYSBzdSdvIHBhIG1laSAKCgkJfCB8IGdpIGRlIG1l IGRhIAoKfHwKCkJlY2F1c2Ugb2YgQXhpb20gMSwgaXQgaW1wbGllcwoKfHwKCmtvJ2EgcGEgbWVp CXw9fCBybydvaSBkYSBwb2kgbWUga28nYSBrdSdvIHJvJ29pIGRlIHBvaSBtZSBrbydhIHpvJ3Ug ZGUgbWUgZGEKCnx8CgpUaGUgcmlnaHQgc2lkZSBpbXBsaWVzIHtybydvaSBkYSBwb2kga2UnYSBt ZSBrbydhIHpvJ3Uga28nYSBtZSBkYX0sIHdoaWNoIGlzIHRoZSBjb25kaXRpb24gZm9yICJ7a28n YX0gaXMgYW4gaW5kaXZpZHVhbCIuIEl0cyBjb252ZXJzZSBpcyBhbHNvIHRydWUuCgpRLkUuRC4K CgoKVGhlIGRpYWdyYW0gYmVsb3cgc2hvd3MgYSBwcm9jZWR1cmUgb2YgY291bnRpbmcgc29tZXRo aW5nIHVwIHRvIGZvdXIgcmVwcmVzZW50ZWQgd2l0aCBhIGRpcmVjdGVkIGdyYXBoLiBJbiB0aGlz IGRpYWdyYW0sIGxvb3BzIHN1Y2ggYXMge1ggbWUgWH0gYXJlIG9taXR0ZWQgZm9yIHNpbXBsaWNp dHksIHRob3VnaCB0aGV5IGV4aXN0LiBDb3VudGluZyB1cCBjb3JyZXNwb25kcyB0byBzZWxlY3Rp bmcgYSBzdWJncmFwaCBvZiBhIGRpcmVjdGVkIGdyYXBoIGZvcm1lZCB3aXRoIHttZX06IHRoZSBz dWJncmFwaCB0aGF0IGhhcyBhIGZvcm0gb2YgdHJlZSB0aGF0IGluY2x1ZGVzIGFsbCBsZWF2ZXMg KGNvbnN0YW50cyBlYWNoIG9mIHdoaWNoIGlzIGFuIGluZGl2aWR1YWwpIHRvIGJlIGNvdW50ZWQs IGZvciBleGFtcGxlIHRoZSBwYXJ0IG9mIG1hZ2VudGEgY29sb3IgaW4gdGhlIGRpYWdyYW0uCgoK CntpbWcgZmlsZUlkPSIxMCIgdGh1bWI9InkiIHJlbD0iYm94W2ddIn0KCgoKISEhISMgUmVwZWF0 aW5nIGlubmVyIHF1YW50aWZpY2F0aW9uCgpCZWNhdXNlIHtsbyBQQSAnJ3N1bXRpJyd9IGlzIGRl ZmluZWQsIHdlIGNhbiByZXBlYXQgaW5uZXIgcXVhbnRpZmljYXRpb24gdG8gZm9ybSBhbiBhcmd1 bWVudC4KCl4KCjtFeGFtcGxlOiBsbyBtdWxubyBrYXJkeWdyaSBjdSBndW5tYSBsbyB2byBsb2kg cGFjaSBrYXJkYSB+aHN+ICcnQSBmdWxsIGRlY2sgY29uc2lzdHMgb2YgZm91ciBncm91cHMgb2Yg dGhpcnRlZW4gY2FyZHMuJycKCjs6IHN1J28gZGEgem8ndSBsb2kgcmUgbG8naSBybyBtb2tjYSBu b2kgc2VwbGkgcHkgbm9pIG1va2NhIGt1J28gZGEgY3UgcmVsY3VrdGFpIH5oc34gJydUd28gc2V0 cyBvZiBwb2ludHMgdGhhdCBhcmUgZXF1aWRpc3RhbnQgZnJvbSBhIHBvaW50IFAgaXMgYSBkb3Vi bGUgY2lyY2xlLicnXgoKCgohISEhIyBQcm9ibGVtcyBvbiBpbm5lciBxdWFudGlmaWNhdGlvbgoK ISEhISEjIENhbm5vdCBzYXkgemVybwoKCgpCZWNhdXNlIGFuIGFyZ3VtZW50IGZvcm1lZCBieSBn YWRyaSBpcyBhIHBsdXJhbCBjb25zdGFudCwge2xvIGJyb2RhfSBpbXBsaWVzIHtzdSdvaSBkYSB6 byd1IGRhIGJyb2RhfSBhY2NvcmRpbmcgdG8gdGhlIGxvZ2ljYWwgYXhpb20gb24gcGx1cmFsIGNv bnN0YW50IHNob3duIGluICgofCNBX2xvZ2ljYWxfYXhpb21fb25fcGx1cmFsX2NvbnN0YW50fFNl Y3Rpb24gMi4yLjYpKS4gVGhhdCBpcyB0byBzYXksIHRoZSBleHByZXNzaW9uIHtsbyBubyBicm9k YX0gaW1wbGllcyAidGhlcmUgYXJlIHdoYXQgYXJlIGJyb2RhLCB3aGljaCBhcmUgY291bnRlZCAw Iiwgd2hpY2ggc2VlbXMgbWVhbmluZ2xlc3MuCgoKClRoaXMgbWVhbnMgdGhhdCBvZmZpY2lhbCBM b2piYW4gY2Fubm90IGV4cHJlc3MgbmVnYXRpb24gb2YgZXhpc3RlbmNlIG9mIHBsdXJhbCB2YXJp YWJsZSB7bmFrdSBzdSdvaSBkYX0sIHdoaWNoIGlzIG5ldmVydGhlbGVzcyBuZWNlc3NhcnksIGZv ciBleGFtcGxlIGluIHRoZSBmb2xsb3dpbmcgc2l0dWF0aW9uOgoKCgpeIGxvIHhvIHByZW51IGN1 IGptYWppIGdpJ2UganVrcGEgZ2knZSBjaXRrYSB+aHN+fi0tfiBub35wcH4KCn4vcHB+JyciSG93 IG1hbnkgcGVvcGxlIGdhdGhlcmVkLCBjb29rZWQgYW5kIGF0ZT8iICJ6ZXJvLiInJ14KCgoKVGhp cyByZXNwb25zZSBpcyBhbiBhYmJyZXZpYXRlZCBmb3JtIG9mIHtsbyBubyBwcmVudSBjdSBqbWFq aSBnaSdlIGp1a3BhIGdpJ2UgY2l0a2F9LgoKCgpUaGlzIHByb3Bvc2l0aW9uIG1lYW5zIHRoYXQg e2xvIG5vIHByZW51fSBzYXRpc2ZpZXMgc2VsYnJpIHtqbWFqaX0gY29sbGVjdGl2ZWx5IGFuZCAo amUpIG5vbi1kaXN0cmlidXRpdmVseSwge2p1a3BhfSBjb2xsZWN0aXZlbHkgb3IgKGphKSBkaXN0 cmlidXRpdmVseSwge2NpdGthfSBub24tY29sbGVjdGl2ZWx5IGFuZCAoamUpIGRpc3RyaWJ1dGl2 ZWx5LiBCZWNhdXNlIGl0IGluY2x1ZGVzIHNlbGJyaSB7am1haml9IHRvIGJlIHNhdGlzZmllZCBu b24tZGlzdHJpYnV0aXZlbHksIHRoZSBzdW10aSBjYW5ub3QgYmUgcmVwbGFjZWQgYnkgbmVnYXRp b24gb2YgZXhpc3RlbmNlIG9mIGJvdW5kIHNpbmd1bGFyIHZhcmlhYmxlIHtuYWt1IHN1J28gZGF9 PXtubyBkYX0uIE1vcmVvdmVyLCBiZWNhdXNlIGl0IGluY2x1ZGVzIHNlbGJyaSB7Y2l0a2F9IHRv IGJlIHNhdGlzZmllZCBub24tY29sbGVjdGl2ZWx5LCB7bG99IG9mIHRoZSBzdW10aSBjYW5ub3Qg YmUgcmVwbGFjZWQgYnkge2xvaX09e2xvIGd1bm1hIGJlIGxvfS4KCgoKRm9yIG1ha2luZyBzdWNo IGEgcHJvcG9zaXRpb24gbWVhbmluZ2Z1bCwgaXQgaXMgZXNzZW50aWFsIHRvIGdpdmUgYW4gZXhw cmVzc2lvbiB7bG8gbm8gYnJvZGF9IGEgbWVhbmluZyBvZiBuZWdhdGlvbiBvZiBleGlzdGVuY2Ug b2YgcGx1cmFsIHZhcmlhYmxlLgoKRm9yIHRoaXMgcHVycG9zZSwgSSBzdWdnZXN0IHRoZSBmb2xs b3dpbmcgZGVmaW5pdGlvbiB2YWxpZCBpbiB0aGUgY2FzZSB0aGF0IFBBPTAgZm9yIHtsbyBQQSBi cm9kYX0uCgo7VW5vZmZpY2lhbCBkZWZpbml0aW9uIG9mIHtsbyBubyBicm9kYX06fHwKCmxvIG5v IGJyb2RhIH5oc358fmhzfiA9Y2EnZSB+aHN+fH5oc34gbmFrdSBzdSdvaSBkYSBwb2kga2UnYSBi cm9kYQoKfHwKCgoK77yISWYgaXQgd2VyZSBkZWZpbmVkIGFzIHtuYWt1IGxvIGJyb2RhfSwgdGhl IG5lZ2F0aW9uIHdvdWxkIGhhdmUgc3Bhbm5lZCB0aGUgd2hvbGUgcHJvcG9zaXRpb24sIGFuZCBp dCB3b3VsZCBub3QgaGF2ZSBpbXBsaWVkIHF1YW50aWZpY2F0aW9uLiBJIGFiYW5kb25lZCB0aGVy ZWZvcmUgc3VjaCBhIGRlZmluaXRpb24uKQoKCgohISEhISMgQ2Fubm90IHF1YW50aWZ5IG1hdGVy aWFsIG5vdW4gb3Igc29tZXRoaW5nCgpBeGlvbSAxIG9mICgofCNJbm5lcl9xdWFudGlmaWNhdGlv bnxTZWN0aW9uIDMuMSkpIGV4Y2x1ZGVzIHN1bXRpIHRoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlk dWFsIG5vciBpbmRpdmlkdWFscyBmcm9tIGV4cHJlc3Npb25zIHsoc3UnbykgTiBtZWl9IGFuZCB7 bG8gTiBicm9kYX0uCgoKCkNhbiB3ZSB1c2Uge3BpUEF9IGZvciBzdW10aSB0aGF0IGlzIG5laXRo ZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHMsIHRoZW4/IE5vLgoKKChCUEZLIFNlY3Rp b246IGdhZHJpfEFjdHVhbGx5LCBwaVBBIGlzIGRlZmluZWQgb25seSBmb3Igb3V0ZXIgcXVhbnRp ZmljYXRpb24uKSkKCnx8CgpwaVBBICcnc3VtdGknJyB+aHN+fH5oc34gbG8gcGlQQSBzaSdlIGJl IHBhIG1lICcnc3VtdGknJwoKfHwKCkFzIHdlIGNhbiBzZWUgaW4gdGhlIGRlZmluaXRpb24sIHRo ZSBib2R5IG9mIG91dGVyIHF1YW50aWZpY2F0aW9uIGJ5IHtwaVBBfSBpcyBwbHVyYWwgY29uc3Rh bnQge2xvIHBpUEEgc2knZX0sIHdoaWNoIGlzIG5vdCBhIGJvdW5kIHNpbmd1bGFyIHZhcmlhYmxl LiBIb3dldmVyLCB4MiBvZiB7cGlQQSBzaSdlfSBpcyB7cGEgbWUgJydzdW10aScnfSwgdG8gd2hp Y2ggKChCUEZLIFNlY3Rpb246IGdhZHJpfHRoZSBkZWZpbnRpb24gb2YgUEEgYnJvZGEpKSBpcyBh cHBsaWVkOgoKfHwKClBBIGJyb2RhIH5oc358fmhzfiBQQSBkYSBwb2kgYnJvZGEgCgp8fAoKQXMg YSByZXN1bHQsIHtwaVBBICcnc3VtdGknJ30gaXMgZGVmaW5lZCBvbmx5IHdoZW4gdGhlcmUgaXMg YW4gaW5kaXZpZHVhbCB0aGF0IHNhdGlzZmllcyB4MSBvZiB7bWUgJydzdW10aScnfS4gVGhhdCBp cyB0byBzYXksIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscyBp cyBleGNsdWRlZCBhbHNvIGZyb20gYW4gZXhwcmVzc2lvbiBvZiBvdXRlciBxdWFudGlmaWNhdGlv biB3aXRoIHtwaVBBfS4KCgoKV2hhdCB3b3VsZCBiZSBpZiB7cGlQQX0gd2VyZSBkZWZpbmVkIGFs c28gZm9yIGlubmVyIHF1YW50aWZpY2F0aW9uPwoKSW4gdGhhdCBjYXNlLCB0aGUgZm9sbG93aW5n IGRlZmluaXRpb24gd291bGQgYmUgZGVzaXJhYmxlIHRvIGNvbmZvcm0gdGhlIGRlZmluaXRpb24g b2Yge3BpUEF9IG9mIG91dGVyIHF1YW50aWZpY2F0aW9uOgoKOyBVbm9mZmljaWFsIGRlZmluaXRp b24gb2Yge3BpUEF9IG9mIGlubmVyIHF1YW50aWZpY2F0aW9uOnx8CgpsbyBwaVBBIGJyb2RhIH5o c358fmhzfiA9Y2EnZSB+aHN+fH5oc34gem8nZSBub2kga2UnYSBwaVBBIHNpJ2UgYmUgbG8gcGEg YnJvZGEKCnx8CgpUaGlzIGRlZmluaXRpb24gb2Yge3BpUEF9IG9mIGlubmVyIHF1YW50aWZpY2F0 aW9uIHN0aWxsIGV4Y2x1ZGVzIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRp dmlkdWFscyB1bmxlc3Mge2xvIHBhIGJyb2RhfSBpcyBkZWZpbmVkIGluIGFub3RoZXIgd2F5IHNv IHRoYXQgaXQgY2FuIGJlIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlk dWFscy4KCgoKV2h5IGRvbid0IHdlIHVzZSB7UEEgc2knZX0gdG8gZXhwcmVzcyBxdWFudGlmaWNh dGlvbiBvZiB3aGF0IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHM/IAoK SXQgaXMgcG9zc2libGUsIGJ1dCAoKEJQRksgU2VjdGlvbjogTnVtZXJpYyBzZWxicml8QlBGSydz IGN1cnJlbnQgZGVmaW5pdGlvbiBvZiB7c2knZX0pKSBkZXBlbmRzIG9uIHtwYWdidX06Cgp8fAoK eDEgbnVtYmVyIHNpJ2UgeDIgfmhzfnx+aHN+IHgxIHBhZ2J1IHgyIGdpJ2Uga2xhbmkgbGkgbnVt YmVyIGxvIHNlIGdyYWR1IGJlIHgyCgp8fAoKSWYgd2UgaW50ZXJwcmV0IHtwYWdidX0gc28gdGhh dCB4MSBpcyBub3QgbGFyZ2VyIHRoYW4geDIgKGFuZCB0aGlzIGlzIG9yZGluYXJ5IGludGVycHJl dGF0aW9uKSwgW2h0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vZC9tc2cvbG9qYmFuL1JBdEU3WWst ZHF3L25VYlppd21CMk0wSnx7c2knZX0gaXMgdmVyeSBpbmNvbnZlbmllbnQgYmVjYXVzZSB0aGUg dW5pdCBzaG91bGQgYmUgY2hhbmdlZCBldmVyeSB0aW1lIGNvdW50aW5nIHVwLl0gSWYge3NpJ2V9 IHdlcmUgZGVmaW5lZCBzbyB0aGF0IFBBIG9mIHtQQSBzaSdlfSBjb3VsZCBiZSBsYXJnZXIgdGhh biAxLCB7c2knZX0gd291bGQgaGF2ZSBiZWVuIHByYWdtYXRpYyBmb3IgcXVhbnRpZmljYXRpb24g b2Ygd2hhdCBpcyBuZWl0aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzLgoKCgpCZXNp ZGVzIHRob3NlIGNvbnNpZGVyYXRpb25zLCBpZiB3ZSBhYmFuZG9uIEF4aW9tIDEgb2YgKCh8I0lu bmVyX3F1YW50aWZpY2F0aW9ufFNlY3Rpb24gMy4xKSksIERlZmluaXRpb25zIChEMSkgKEQyKSAo RDMpIGNhbiBiZSBhcHBsaWVkIHRvIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBp bmRpdmlkdWFscy4KCkluIHRoaXMgY2FzZSwgYSBzcGVha2VyIHNob3VsZCBzZWxlY3Qgc29tZSBw bHVyYWwgY29uc3RhbnRzIHtrbydhLCBrbydlLCAuLi59LCBhbmQgZGVjaWRlIHRoYXQge1tba28n YS9rbydlLy4uLl0gc3UnbyBwYSBtZWl9OyB0aGUgc2VsZWN0aW9uIG11c3QgYmUgZG9uZSBhdHRl bnRpdmVseSBzbyB0aGF0IHJlZmVyZW50cyBvZiBwbHVyYWwgY29uc3RhbnRzIHRoYXQgYXJlIHtw YSBtZWl9IGRvIG5vdCBvdmVybGFwIHdpdGggZWFjaCBvdGhlci4KClRob3NlIHByZXBhcmF0aW9u cyBvZiB7a28nYSwga28nZSwgLi4ufSBhbmQgKEQyKSBpbXBseSBvbmx5Cgp8fAoKZ2FuYWkgW1tr bydhL2tvJ2UvLi4uXSBwYSBtZWkgCgpnaSBybydvaSBkZSBwb2kgbWUgW1trbydhL2tvJ2UvLi4u XSB6byd1IGRlIG1lIFtba28nYS9rbydlLy4uLl0KCnx8CgpVbmRlciB0aGVzZSBjb25kaXRpb25z LCB0aGVyZSBpcyBubyBuZWVkIHRoYXQgd2hhdCBpcyB4MSBvZiB7cGEgbWVpfSBpcyBhbiBpbmRp dmlkdWFsLgoKCgpXaGVuIHdlIHVzZSBEZWZpbml0aW9ucyAoRDEpIChEMikgKEQzKSB3aXRob3V0 IHVzaW5nIEF4aW9tIDEgb2YgKCh8I0lubmVyX3F1YW50aWZpY2F0aW9ufFNlY3Rpb24gMy4xKSks IGEgY29uZGl0aW9uIHtnaSdlIHN1J28gcGEgbWVpfSBtdXN0IGJlIGFkZGVkIHRvIHtkZX0gb2Yg KEQxKe+8iFdoZW4gQXhpb20gMSBpcyB1c2VkLCByZWZlcmVudHMgaW4gdGhlIGRvbWFpbiBvZiB2 YXJpYWJsZSB7ZGV9IHNhdGlzZmllcyB0aGlzIGNvbmRpdGlvbiBhdXRvbWF0aWNhbGx5KS4gCgo7 VW5vZmZpY2lhbCBkZWZpbml0aW9ucyB1bmRlciB0aGUgY29uZGl0aW9uIHRoYXQgQXhpb20gMSBp cyBhYmFuZG9uZWQ6fHwKCihEMScpIGtvJ2Egc3UnbyBOIG1laSB+aHN+fH5oc34gPWNhJ2Ugfmhz fnx+aHN+IHN1J29pIGRhIHBvaSBtZSBrbydhIGt1J28gc3Unb2kgZGUgcG9pIG1lIGtvJ2EgZ2kn ZSBzdSdvIHBhIG1laSB6byd1IGdlIGRhIHN1J28gTi0xIG1laSBnaW5haSBkZSBtZSBkYQoKKEQy KSBrbydhIE4gbWVpIH5oc358fmhzfiA9Y2EnZSB+aHN+fH5oc34ga28nYSBzdSdvIE4gbWVpIGdp J2UgbmFpIHN1J28gTisxIG1laSAKCihEMykgbG8gUEEgYnJvZGEgfmhzfnx+aHN+ID1jYSdlIH5o c358fmhzfiB6bydlIG5vaSBrZSdhIFBBIG1laSBnaSdlIGJyb2RhCgp8fAoKVXNpbmcgdGhlc2Ug ZGVmaW5pdGlvbnMsIGlubmVyIHF1YW50aWZpY2F0aW9uIG9mIHdoYXQgaXMgbmVpdGhlciBhbiBp bmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscyBiZWNvbWVzIHBvc3NpYmxlLiBNb3Jlb3ZlciwgIlVu b2ZmaWNpYWwgZGVmaW5pdGlvbiBvZiB7cGlQQX0gb2YgaW5uZXIgcXVhbnRpZmljYXRpb24iIGRp c2N1c3NlZCBhYm92ZSBiZWNvbWVzIGFibGUgdG8gYmUgYXBwbGllZCB0byB3aGF0IGlzIG5laXRo ZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHMuCgoKClRoZSBkaWFncmFtIGJlbG93IHNo b3dzIGEgcHJvY2VkdXJlIG9mIGNvdW50aW5nIHVwIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlk dWFsIG5vciBpbmRpdmlkdWFscyByZXByZXNlbnRlZCB3aXRoIGEgZGlyZWN0ZWQgZ3JhcGguIElu IHRoaXMgZGlhZ3JhbSwgbG9vcHMgc3VjaCBhcyB7WCBtZSBYfSBhcmUgb21pdHRlZCBmb3Igc2lt cGxpY2l0eSwgdGhvdWdoIHRoZXkgZXhpc3QuIEFtb25nIGluZmluaXRlIG51bWJlciBvZiB2ZXJ0 aWNlcyAocGx1cmFsIGNvbnN0YW50cyksIHRoZSB2ZXJ0aWNlcyB0aGF0IGEgc3BlYWtlciBzZWxl Y3RlZCBhcyB7c3UnbyBwYSBtZWl9IGFyZSBjb2xvcmVkIHBpbmsuIENvdW50aW5nIHVwIGNvcnJl c3BvbmRzIHRvIHNlbGVjdGluZyBhIHRyZWUgdGhhdCBpcyBhIHN1YmdyYXBoIG9mIGEgZGlyZWN0 ZWQgZ3JhcGggZm9ybWVkIHdpdGgge21lfSwgZm9yIGV4YW1wbGUgdGhlIHBhcnQgb2YgYmx1ZSBj b2xvciBpbiB0aGUgZGlhZ3JhbS4KCgoKe2ltZyBmaWxlSWQ9IjkiIHRodW1iPSJ5IiByZWw9ImJv eFtnXSJ9CgoKCiEhISMgT3V0ZXIgcXVhbnRpZmljYXRpb24KCigoQlBGSyBTZWN0aW9uOiBnYWRy aXxCUEZLIGRlZmluZXMgb3V0ZXIgcXVhbnRpZmljYXRpb24pKSBhcyBmb2xsb3dzOgoKfHwKClBB ICcnc3VtdGknJyB+aHN+fH5oc34gUEEgZGEgcG9pIGtlJ2EgbWUgJydzdW10aScnCgpQQSBicm9k YSB+aHN+fH5oc34gUEEgZGEgcG9pIGJyb2RhIAoKcGlQQSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxv IHBpUEEgc2knZSBiZSBwYSBtZSAnJ3N1bXRpJycKCnx8CgoKCk91dGVyIHF1YW50aWZpY2F0aW9u IGV4Y2VwdCB7cGlQQX0gZm9ybXMge1BBIGRhfSwgd2hpY2ggaXMgb2ZmaWNpYWxseSBhIGJvdW5k IHNpbmd1bGFyIHZhcmlhYmxlLiBJdCBpbXBsaWVzIHRoYXQgdGhlc2UgYXJndW1lbnRzIHNhdGlz ZnkgYSBwcmVkaWNhdGUgX19kaXN0cmlidXRpdmVseV9fLiBGb3IgZXhhbXBsZSwgaXQgaXMgbWVh bmluZ2xlc3MgdG8gdXNlIHtjaSBsbyBwcmVudX0gYXMgeDEgb2Yge2ptYWppfSAoZ2F0aGVyKSwg YmVjYXVzZSBpdCBpcyBub3QgdGhlIGNhc2UgdGhhdCBlYWNoIG9mIHRocmVlIHBlb3BsZSBzYXRp c2ZpZXMgdGhlIHByZWRpY2F0ZSAiZ2F0aGVyIi4KCgoKSG93ZXZlciwgaWYgd2UgdXNlIHVub2Zm aWNpYWwgcGx1cmFsIHF1YW50aWZpZXJzIHtybydvaX0gb3Ige3N1J29pfSBmb3IgUEEsIG91dGVy IHF1YW50aWZpY2F0aW9uIGNhbiBmb3JtIGJvdW5kIHBsdXJhbCB2YXJpYWJsZS4gRm9yIGV4YW1w bGUsCgpec3Unb2kgcHJlbnUgY3Ugam1hamkgfmhzfiB0aGVyZSBhcmUgcGVvcGxlIHdobyBnYXRo ZXIuXgoKVGhpcyBwcm9wb3NpdGlvbiBpcyBpbXBsaWVkIGJ5IGEgcHJvcG9zaXRpb24gaW5jbHVk aW5nIHBsdXJhbCBjb25zdGFudAoKXmxvIHByZW51IGN1IGptYWppIH5oc34gUGVvcGxlIGdhdGhl ci5eCgp3aXRoIHRoZSBsb2dpY2FsIGF4aW9tIGluICgofCNBX2xvZ2ljYWxfYXhpb21fb25fcGx1 cmFsX2NvbnN0YW50fFNlY3Rpb24gMi4yLjYpKS4KCgoKe1BBIGxvIGJyb2RhfSBkaWZmZXJzIGZy b20ge1BBIGJyb2RhfSBpbiBkb21haW4gb2YgcmVmZXJlbnRzIG9mIGJvdW5kIHNpbmd1bGFyIHZh cmlhYmxlIHRvIGJlIGNvdW50ZWQuIFRoZSBkZWZpbml0aW9ucyBvZiBvdXRlciBxdWFudGlmaWNh dGlvbiBhcmUgYXBwbGllZCB0byB0aGVtIGFzIGZvbGxvd3M6Cgp8fAoKUEEgbG8gYnJvZGEgfmhz fnx+aHN+IFBBIGRhIHBvaSBrZSdhIG1lIGxvIGJyb2RhIH5oc358fmhzfiBUaGUgZG9tYWluIG9m IGJvdW5kIHNpbmd1bGFyIHZhaWFibGUgaXMgYSByZWZlcmVudCBvZiBwbHVyYWwgY29uc3RhbnQg e2xvIGJyb2RhfSBpbiB0aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLCBhbmQgY291bnRlZCB0byBi ZSBQQQoKUEEgYnJvZGEgfmhzfnx+aHN+IFBBIGRhIHBvaSBrZSdhIGJyb2RhIH5oc358fmhzfiBU aGUgZG9tYWluIG9mIGJvdW5kIHNpbmd1bGFyIHZhcmlhYmxlIGlzIGFsbCB0aGF0IGFyZSB7YnJv ZGF9IGluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIGFuZCBjb3VudGVkIHRvIGJlIFBBCgp8 fAoKCgpeCgo7RXhhbXBsZSAxOiBybyBqbWl2ZSBiYSBtb3JzaSB+aHN+ICcnQWxsIGxpdmluZyB0 aGluZ3Mgd2lsbCBkaWUnJwoKO0V4YW1wbGUgMjogcm8gbG8gcHJlbnUgdGkga2xhbWEgfmhzfiAn J0FsbCB0aGUgcGVvcGxlIGNvbWUgaGVyZScnXgoKRXhhbXBsZSAxIG1lbnRpb25zIGFsbCB7am1p dmV9IGluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UuIEluIHRoZSB1bml2ZXJzZSBvZiBkaXNj b3Vyc2Ugb2YgRXhhbXBsZSAyLCBpdCBpcyBwb3NzaWJsZSB0byBpbnRlcnByZXQgdGhhdCB0aGVy ZSBhcmUge3ByZW51fSBvdGhlciB0aGFuIHRoZSByZWZlcmVudCBvZiB0aGUgcGx1cmFsIGNvbnN0 YW50IHtsbyBwcmVudX0uCgoKClRoZSBvdXRlciBxdWFudGlmaWNhdGlvbiBieSB7cGlQQX0gZm9y bXMgcGx1cmFsIGNvbnN0YW50IHtsbyBwaVBBIHNpJ2V9LiBIb3dldmVyLCB4MiBvZiB7cGlQQSBz aSdlfSBpcyBib3VuZCBzaW5ndWxhciB2YXJpYWJsZSB7cGEgbWUgJydzdW10aScnfS4ge3BpfSBp biB0aGlzIGRlZmluaXRpb24gbWVhbnMgIm5vdCBsYXJnZXIgdGhhbiAxIjsgcHJhY3RpY2FsbHks IHtmaSd1fSBvciBzb21ldGhpbmcgY2FuIGJlIHVzZWQgaW5zdGVhZCBvZiB7cGl9CgoKCiEhISEj IENvbWJpbmF0aW9uIG9mIG91dGVyIGFuZCBpbm5lciBxdWFudGlmaWNhdGlvbnMKClRoZSBkZWZp bml0aW9ucyBvZiBpbm5lciBhbmQgb3V0ZXIgcXVhbnRpZmljYXRpb24gaW1wbHkgdGhlIGZvbGxv d2luZyBpbnRlcnByZXRhdGlvbnM6Cgp8fAoKTSBsbyBbW05dIGJyb2RhIH5oc358fmhzfiBNICh3 aGljaCBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUgZGlzdHJpYnV0aXZlbHkpIG9mIHtsbyBicm9kYX0g W1t0aGF0IGFyZSBOXQoKTSBsb2kgW1tOXSBicm9kYSB+aHN+fH5oc34gTSAod2hpY2ggc2F0aXNm aWVzIGEgcHJlZGljYXRlIGRpc3RyaWJ1dGl2ZWx5KSBvZiB7bG8gZ3VubWF9IHRoYXQgY29uc2lz dHMgb2Yge2xvIGJyb2RhfSBbW3RoYXQgYXJlIE5dCgpNIGxvJ2kgW1tOXSBicm9kYSB+aHN+fH5o c34gTSAod2hpY2ggc2F0aXNmaWVzIGEgcHJlZGljYXRlIGRpc3RyaWJ1dGl2ZWx5KSBvZiB7bG8g c2VsY21pfSB0aGF0IGNvbnNpc3RzIG9mIHtsbyBicm9kYX0gW1t0aGF0IGFyZSBOXQoKcGkgTSBs byBbW05dIGJyb2RhIH5oc358fmhzfiBRdWFudGl0eSB7cGkgTSBzaSdlfSBvZiBhIHBhcnQgb2Yg b25lIG9mIHtsbyBicm9kYX0gW1t0aGF0IGFyZSBOXQoKcGkgTSBsb2kgW1tOXSBicm9kYSB+aHN+ fH5oc34gUXVhbnRpdHkge3BpIE0gc2knZX0gb2YgYSBwYXJ0IG9mIG9uZSBvZiB7bG8gZ3VubWF9 IHRoYXQgY29uc2lzdHMgb2Yge2xvIGJyb2RhfSBbW3RoYXQgYXJlIE5dCgpwaSBNIGxvJ2kgW1tO XSBicm9kYSB+aHN+fH5oc34gUXVhbnRpdHkge3BpIE0gc2knZX0gb2YgYSBwYXJ0IChzdWJzZXQp IG9mIG9uZSBvZiB7bG8gc2VsY21pfSB0aGF0IGNvbnNpc3RzIG9mIHtsbyBicm9kYX0gW1t0aGF0 IGFyZSBOXQoKfHwKCgoKQW1vbmcgdGhlbSwge00gbG8gW1tOXSBicm9kYX0gYW5kIHtwaSBNIGxv aSBbW05dIGJyb2RhfSBjYW4gZXhwcmVzcyBzb21lIG9mIHBsdXJhbCBudW1iZXIgb2YgdGhpbmdz LgoKXgoKO0V4YW1wbGUgMTogcmUgbG8gW1tjaV0gbWxhdHUgbWkgdmlza2EgfmhzfiAnJ1R3byBb W29mIHRocmVlXSBjYXRzIHNlZSBtZS4nJwoKO0V4YW1wbGUgMjogcmUgZmkndSBjaSBsb2kgW1t2 ZWkgY2kgcGknaSBueSAodmUnbyldIG1sYXR1IG1pIHZpc2thIH5oc34gJydUd28gdGhpcmQgb2Yg W1szbl0gY2F0cyBzZWUgbWUuJydeCgoKCntyZSBsbyBbW2NpXSBtbGF0dX0gb2YgRXhhbXBsZSAx IHJlZmVycyB0byB0d28gY2F0cyBhbW9uZyBbW3RocmVlXSBjYXRzIHRoYXQgYXJlIHJlZmVyZW50 IG9mIHtsbyBbW2NpXSBtbGF0dX0uCgpJZiB0aGUgaW5uZXIgcXVhbnRpZmllciB7Y2l9IGlzIG5v dCBzYWlkLCBpdCBpcyB1bmNsZWFyIGhvdyBtYW55IGNhdHMgYXJlIHJlZmVycmVkIHRvIGJ5IHts byBtbGF0dX07IGluIGFueSBjYXNlIHtyZSBsbyBtbGF0dX0gcmVmZXJzIHRvIHR3byBvZiB0aGVt LgoKCgpJbiBFeGFtcGxlIDIsIHRoZSBhcmd1bWVudCBpcyBmb3JtZWQgYnkge2xvaX0sIGFuZCB0 aGUgcmVmZXJlbnQgaXMgYWN0dWFsbHkge2xvIGd1bm1hfS4gRXhwYW5kaW5nIEV4YW1wbGUgMiBh Y2NvcmRpbmcgdG8gdGhlIGRlZmluaXRpb25zIG9mIHtsb2l9IGFuZCB7cGlQQSAnJ3N1bXRpJyd9 LAoKXgoKO0V4YW1wbGUgMi0xOiBsbyByZSBmaSd1IGNpIHNpJ2UgYmUgcGEgbWUgbG8gZ3VubWEg YmUgbG8gW1t2ZWkgY2kgcGknaSBueSAodmUnbyldIG1sYXR1IG1pIHZpc2thXgoKVGhhdCBpcyB0 byBzYXksIHtyZSBmaSd1IGNpIGxvaS4uLn0gcmVmZXJzIHRvIHR3byB0aGlyZCBvZiBhbiBpbmRp dmlkdWFsIHtwYSBtZSBsbyBndW5tYS4uLn0uIFRoaXMge2xvIGd1bm1hfSBjb25zaXN0cyBvZiB7 dmVpIGNpIHBpJ2kgbnkgKHZlJ28pfSBjYXRzLiAKCklmIHRoZSBpbm5lciBxdWFudGlmaWVyIGlz IG5vdCBzYWlkLCBpdCBpcyB1bmNsZWFyIGhvdyBtYW55IGNhdHMgY29uc3RpdHV0ZSB7bG8gZ3Vu bWF9IHRoYXQgaXMge2xvaSBtbGF0dX07IGluIGFueSBjYXNlIHtyZSBmaSd1IGNpIGxvaSBtbGF0 dX0gcmVmZXJzIHRvIHR3byB0aGlyZCBvZiB7bG8gZ3VubWF9LiBIb3dldmVyLCAKCl5yZSBmaSd1 IGNpIGxvaSBtbGF0dSBtaSB2aXNrYV4KCmlzIG1lYW5pbmdmdWwgb25seSB3aGVuIHtsb2kgbWxh dHV9IGNvbnNpc3RzIG9mIDNuIGNhdHMsIGJlY2F1c2UgaXQgaXMgbm90IG9yZGluYXJ5IHRvIGlu dGVycHJldCB0aGF0IGEgZnJhZ21lbnQgb2YgYSBjYXQgc2F0aXNmaWVzIHRoZSBwcmVkaWNhdGUg e3Zpc2thfS4KCkFjY29yZGluZyB0byBCUEZLJ3MgZGVmaW5pdGlvbiwge2xvaX0gY2Fubm90IGZv cm0gYSBwbHVyYWwgY29uc3RhbnQgdGhhdCBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUgbm9uLWNvbGxl Y3RpdmVseS4gSWYgeW91IHdhbnQgdG8gbWVhbiAiY2F0cyBzZWUgbWUgbm9uLWNvbGxlY3RpdmVs eSIsIGF2b2lkIHtsb2l9LCBvciB1c2Uge2x1J2F9LCB3aGljaCB3aWxsIGJlIGRpc2N1c3NlZCBp biAoKHwjUmVsYXRpb25fYmV0d2Vlbl9sdV9hX2x1X29fbHVfaV9hbmRfZ2Fkcml8U2VjdGlvbiAz LjMpKToKCl5sdSdhIHJlIGZpJ3UgY2kgbG9pIG1sYXR1IG1pIHZpc2thXgoKCgohISEjIFJlbGF0 aW9uIGJldHdlZW4gbHUnYSwgbHUnbywgbHUnaSBhbmQgZ2FkcmkKCigoQlBGSyBTZWN0aW9uOiBJ bmRpcmVjdCBSZWZlcmVyc3xCUEZLIGRlZmluZXMpKSB7bHUnYX0sIHtsdSdvfSwge2x1J2l9IG9m IExBaEUgYXMgZm9sbG93czoKCnx8CgpsdSdhICcnc3VtdGknJyB+aHN+fH5oc34gbG8gbWUgJydz dW10aScnIH5oc358fmhzfiBsbyBjbWltYSBiZSAnJ3N1bXRpJycgW1tub2kgc2VsY21pXQoKbHUn byAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvaSBtZSAnJ3N1bXRpJycKCmx1J2kgJydzdW10aScnIH5o c358fmhzfiBsbydpIG1lICcnc3VtdGknJwoKfHwKCkhvd2V2ZXIsIGd1ZXNzaW5nIGZyb20gdGhl IEVuZ2xpc2ggZGVmaW5pdGlvbnMgb24gdGhlIHNhbWUgcGFnZSwgdGhlIGRlZmluaXRpb24gb2Yg e2x1J2F9IGlzIHVuc2F0aXNmYWN0b3J5LCBhbmQgdGhhdCBvZiB7bHUnb30gaGFzIHNvbWUgcHJv YmxlbS4KCgoKe2x1J2F9IGV4dHJhY3RzIHgyIG9mIHtzZWxjbWl9IGZyb20gc3VtdGkgdGhhdCBp cyB7bG8gc2VsY21pfSwgYW5kIHgyIG9mIHtndW5tYX0gZnJvbSBzdW10aSB0aGF0IGlzIHtsbyBn dW5tYX0uIE1vcmVvdmVyLCB7bHUnYX0gbWFrZXMgZXhwbGljaXQgdGhhdCB0aGUgc3VtdGkgc2F0 aXNmaWVzIGEgcHJlZGljYXRlIGRpc3RyaWJ1dGl2ZWx5IGFuZCBub24tY29sbGVjdGl2ZWx5LiBP biB0aGUgb3RoZXIgaGFuZCwgYWNjb3JkaW5nIHRvIHRoZSBkZWZpbml0aW9uIG9mIHtsb30sIHts byBtZSAnJ3N1bXRpJyd9IGRvZXMgbm90IGltcGx5ICJkaXN0cmlidXRpdmVseSBhbmQgbm9uLWNv bGxlY3RpdmVseSIuCgoKCntsdSdvfSBtYWtlcyBleHBsaWNpdCB0aGF0IHRoZSBzdW10aSBzYXRp c2ZpZXMgYSBwcmVkaWNhdGUgbm9uLWRpc3RyaWJ1dGl2ZWx5IGFuZCBjb2xsZWN0aXZlbHkuIE9u IHRoZSBvdGhlciBoYW5kLCBhY2NvcmRpbmcgdG8gdGhlIGRlZmluaXRpb24gb2Yge2xvaX0sIHts b2kgbWUgJydzdW10aScnfSBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUgY29sbGVjdGl2ZWx5LCBidXQg c3RpbGwgdW5jbGVhciBpZiBpdCBkb2VzIG5vbi1kaXN0cmlidXRpdmVseS4gRm9yIGNvbnNpc3Rl bmN5LCBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gYWRkICJ7bG9pIGJyb2RhfSBpbXBsaWVzIHRoYXQg cmVmZXJlbnQgb2YgeDEgb2YgYnJvZGEgY29sbGVjdGl2ZWx5IGFuZCBub24tZGlzdHJpYnV0aXZl bHkgc2F0aXNmaWVzIGEgcHJlZGljYXRlIiB0byB0aGUgZGVmaW5pdGlvbiBvZiB7bG9pfS4KCgoK QXMgYSBjb25jbHVzaW9uIG9mIHRoaXMgc2VjdGlvbiwgSSBzdWdnZXN0IHRvIHJlLWRlZmluZSB7 bHUnYX0gYXMgZm9sbG93czoKCjsgVW5vZmZpY2lhbCBkZWZpbml0aW9uIG9mIHtsdSdhfTp8fAoK bHUnYSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvIGNtaW1hIGJlICcnc3VtdGknJyBub2kgc2VsY21p IGt1IG9uYWkgbG8gc2UgZ3VubWEgYmUgJydzdW10aScnIG5vaSBndW5tYSBrdSBvbmFpIGxvIG1l ICcnc3VtdGknJyBrdSB+cHB+Cgp+L3BwfiB+aHN+IHZ1J28gbm9pIHN1J28gZGEgem8ndSBkYSBt ZSBrZSdhIGdpJ2Ugbm8nYQoKfHwKCkluIHtub2l9IGNsYXVzZSBhZnRlciB7dnUnb30sIGl0IGlz IG1hZGUgZXhwbGljaXQgdGhhdCB0aGUgcmVmZXJlbnQgb2Yge2x1J2EgJydzdW10aScnfSBkaXN0 cmlidXRpdmVseSBzYXRpc2ZpZXMgdGhlIHNlbnRlbmNlIHRoYXQgaW5jbHVkZXMgdGhpcyBzdW10 aS4KCgoKISEjIE5vdGVzCgpUaGlzIHNlY3Rpb24gY29uc2lzdHMgb2Ygbm90ZXMgb2YgdGhlIGF1 dGhvciBndXNrYW50LCBhbmQgaXQgaXMgbm90IGF0IGFsbCBpbXBvcnRhbnQgZm9yIHVuZGVyc3Rh bmRpbmcgZ2FkcmkuCgoKCiEhISMgQWJvdXQgb250b2xvZ3kKCl4oKEJQRksgU2VjdGlvbjogZ2Fk cml8JydQb3NpdGl2ZSBpbXBhY3Q6IFNvbWUgdXNhZ2VzIHRoYXQgbWFrZSBsaXR0bGUgc2Vuc2Ug d2l0aCB7bG99PXtzdSdvfSBiZWNvbWUgdmFsaWRhdGVkLicnKSkgYWNjb3JkaW5nIHRvIEJQRksu XgoKCgp7bG99PXtzdSdvfSB3YXMgYWJhbmRvbmVkLCBidXQgYmVjYXVzZSBvZiB0aGUgZmFjdCB0 aGF0IHtsbyBicm9kYX0gaXMgYSBwbHVyYWwgY29uc3RhbnQsIGFuZCBiZWNhdXNlIG9mIGEgbG9n aWNhbCBheGlvbSBvZiBwbHVyYWwgY29uc3RhbnQgaW4gKCh8I0FfbG9naWNhbF9heGlvbV9vbl9w bHVyYWxfY29uc3RhbnR8U2VjdGlvbiAyLjIuNikpLCB7bG8gYnJvZGEgY3UgYnJvZGV9IGltcGxp Y2l0bHkgaW1wbGllcyB7c3Unb2kgZGEgYnJvZGV9LgoKCgohISEjIGNsYXh1IHgyCgpeKChCUEZL IFNlY3Rpb246IGdhZHJpfGxlIGNtYW5hIF9fbG9fXyBjaWRqYSBiYSBjbGF4dSkpfnBwfgoKfi9w cH4gICcnSW4gdGhlIG1vdW50YWlucyB0aGVyZSBpcyBubyBmb29kLicnfnBwfgoKfi9wcH4oKGxh cG9pIHBlbHh1IGt1J28gdHJhanlub2JsaSkpXgoKCgpFeHBhbmRpbmcge2xvIGNpZGphfSwgCgpe bGUgY21hbmEgem8nZSBub2kga2UnYSBjaWRqYSBrdSdvIGJhIGNsYXh1XgoKQWNjb3JkaW5nIHRv ICgoQlBGSyBTZWN0aW9uOiBTdWJvcmRpbmF0b3JzfHRoZSBkZWZpbml0aW9uIG9mIHtub2l9KSks IAoKXmxlIGNtYW5hIHpvJ2UgdG8gcmkgeGkgcmF1IGNpZGphIHRvaSBiYSBjbGF4dV4KClRoZSBw YXJ0IGJldHdlZW4ge3RvfSBhbmQge3RvaX0gaXMgYSBwYXJlbnRoZXRpY2FsIGV4cHJlc3Npb24u IFRoZSBtYWluIHByb3Bvc2l0aW9uIGlzIHRodXMKCl5sZSBjbWFuYSB6bydlIGJhIGNsYXh1XgoK d2hlcmUge3pvJ2V9IGlzIGEgcGx1cmFsIGNvbnN0YW50LiBBY2NvcmRpbmcgdG8gdGhlIGxvZ2lj YWwgYXhpb20gb2YgcGx1cmFsIGNvbnN0YW50IGluICgofCNBX2xvZ2ljYWxfYXhpb21fb25fcGx1 cmFsX2NvbnN0YW50fFNlY3Rpb24gMi4yLjYpKSwgVGhpcyBwcm9wb3NpdGlvbiBpbXBsaWVzIAoK XnN1J29pIGRhIHpvJ3UgbGUgY21hbmEgZGEgYmEgY2xheHVeCgp3aGljaCBtZWFucyB0aGF0IHRo ZXJlIGlzIGEgcmVmZXJlbnQgb2YgIndoYXQgaXMgbGFja2VkIGJ5IHRoZSBtb3VudGFpbiIgaW4g dGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZS4KClRoZSBzdHJhbmdlbmVzcyBjb21lcyBmcm9tIHRo ZSBmYWN0IHRoYXQgeDIgb2Yge2NsYXh1fSBfX2FwcGFyZW50bHlfXyBtZWFucyBub24tZXhpc3Rl bmNlLiBXZSBjYW4gaW50ZXJwcmV0IGl0IGNvbnNpc3RlbnRseSB0aGF0IHtjbGF4dX0gbWVhbnMg b25seSB0aGF0IHRoZSByZWZlcmVudCBvZiB4MiBpcyBub3QgcGxhY2VkIGF0IHRoZSByZWZlcmVu dCBvZiB4MSwgYW5kIGl0IHNheXMgbm90aGluZyBhYm91dCBleGlzdGVuY3kgaW4gdGhlIHVuaXZl cnNlIG9mIGRpc2NvdXJzZS4gCgoKCiEhISMgem8nZSBpcyBhIHBsdXJhbCBjb25zdGFudAoKQXNz dW1pbmcgdGhhdCB7em8nZX0gY2FuIGJlIGFueSBvZiBmcmVlIHZhcmlhYmxlLCBib3VuZCBwbHVy YWwgdmFyaWFibGUgb3IgcGx1cmFsIGNvbnN0YW50LCB0aGUgbGFuZ3VhZ2Ugd291bGQgYmUgbW9y ZSByZWFzb25hYmxlIGZyb20gYSBsb2dpY2FsIHBvaW50IG9mIHZpZXcuCgpIb3dldmVyLCB0aGlz IGlkZWEgd2FzIGNsZWFybHkgZGVuaWVkIGluIFtodHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2Qv dG9waWMvbG9qYmFuL1JBdEU3WWstZHF3L2Rpc2N1c3Npb258dGhlIGRpc2N1c3Npb25dLiBUaGF0 IGlzIHRvIHNheSwge3pvJ2V9IGlzIGFsd2F5cyBhIHBsdXJhbCBjb25zdGFudCBhY2NvcmRpbmcg dG8gdGhlIG9mZmljaWFsIGludGVycHJldGF0aW9uLgoKSSB3aWxsIGV4YW1pbmUgdGhlc2UgY29u ZmxpY3RpbmcgaWRlYXMsIGFuZCB0cnkgdG8gc29sdmUgc29tZSBwcm9ibGVtcyBjYXVzZWQgYnkg dGhlIG9mZmljaWFsIGludGVycHJldGF0aW9uIHRoYXQge3pvJ2V9IGlzIGEgcGx1cmFsIGNvbnN0 YW50LgoKCgohISEhIyBJZiB6bydlIGNob3VsZCBiZSBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZQoK SSB3aWxsIGxpc3QgdXAgaGVyZSBtZXJpdHMgYW5kIGRlbWVyaXRzIG9mIGFzc3VtaW5nIHRoYXQg e3pvJ2V9IGluIG5vIGNvbnRleHQgaXMgYSBmcmVlIHZhcmlhYmxlLCBhbmQgdGhhdCB0aGUgY29u dGV4dCBkZXRlcm1pbmVzIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIGJhc2VkIG9uIHdoaWNo IHt6bydlfSBpcyByZWdhcmRlZCBhcyBzdWJzdGl0dXRlZCBmb3IgYnkgYSBwbHVyYWwgY29uc3Rh bnQsIG9yIGJvdW5kIGJ5IGEgcGx1cmFsIHF1YW50aWZpZXIuCgoKCiEhISEhIyBNZXJpdHMKClVu ZGVyIHRoaXMgYXNzdW1wdGlvbiwgdGhlcmUgaXMgbm8gbmVlZCB0byBleGNsdWRlIHRoZSBjYXNl IFBBPTAgb2Yge2xvIFBBIGJyb2RhfSwgb3IgZ2l2ZSBpdCBhbiB1bm9mZmljaWFsIGRlZmluaXRp b24gYXMgZGlzY3Vzc2VkIGluICgofCNDYW5ub3Rfc2F5X3plcm98U2VjdGlvbiAzLjEuMi4xKSku IEl0IGlzIGJlY2F1c2UgaWYge2xvIFBBIGJyb2RhfSBpbiBubyBjb250ZXh0IGlzIGEgZnJlZSB2 YXJpYWJsZSwgd2UgY2FuIGludGVycHJldCBpdCwgd2hlbiBhIGNvbnRleHQgaXMgZ2l2ZW4sIGFz IHN1YnN0aXR1dGVkIGZvciBieSBhIHBsdXJhbCBjb25zdGFudCBvciBib3VuZCBieSBhIHBsdXJh bCBxdWFudGlmaWVyIGxpa2Uge3N1J29pIGRhfSBpbiB0aGUgY2FzZSBvZiBQQT4wOyB3ZSBjYW4g aW50ZXJwcmV0IGl0IGFzIGJvdW5kIGJ5IHtuYWt1IHN1J29pIGRhfSBpbiB0aGUgY2FzZSBvZiBQ QT0wIGFzIHdlbGwuCgoKClRoaXMgYXNzdW1wdGlvbiBtYWtlcyB0aGUgaW50ZXJwcmV0YXRpb24g Y2xvc2VyIHRvIG5hdHVyYWwgbGFuZ3VhZ2VzIG5vdCBvbmx5IGluIHRoZSBjYXNlIFBBPTAgYnV0 IGFsc28gaW4gdGhlIGNhc2UgUEE+MC4gRm9yIGV4YW1wbGUsIAoKXmxvIGNpIHhhbnRvIGN1IHpp bGthbmN1IGxpIGNpIGxvIHhhbnRvXgoKVGhlIGxhc3Qge2xvIHhhbnRvfSBpcyBhIHVuaXQgb2Yg Y291bnRpbmcuIEl0IGlzIG5hdHVyYWwgdG8gaW50ZXJwcmV0IGl0IGFzIGEgYm91bmQgcGx1cmFs IHZhcmlhYmxlIHF1YW50aWZpZWQgYnkgIjEiIHJhdGhlciB0aGFuIGEgcGx1cmFsIGNvbnN0YW50 LCB3aGljaCBzaG91bGQgcmVmZXIgdG8gc29tZXRoaW5nLiBJZiB3ZSBpbnRlcnByZXQgaXQgYXMg YSBib3VuZCBwbHVyYWwgdmFyaWFibGUsIHdlIHNob3VsZCBjb25zaWRlciB0aGUgcmVsYXRpdmUg b3JkZXIgd2l0aCB0aGUgb3RoZXIgYm91bmQgdmFyaWFibGVzIGFuZCB7bmFrdX0uIFdlIGNhbiBo YW5kbGUgdGhlIG9yZGVyIGZyZWVseSBieSBwdXR0aW5nIHRoZSBhcmd1bWVudHMgaW4gcHJlbmV4 LgoKCgpNb3Jlb3ZlciwgdGhpcyBhc3N1bXB0aW9uIGVtYm9kaWVzIHRoZSBwcm9wZXJ0eSBvZiBu YXR1cmFsIGxhbmd1YWdlcyB0aGF0IHRoZSB0cnV0aCB2YWx1ZSBvZiBhIHByb3Bvc2l0aW9uIGlu IG5vIGNvbnRleHQgaXMgZ2VuZXJhbGx5IGluZGVmaW5pdGUuIEJ5IGludGVycHJldGluZyB0aGF0 IHt6bydlfSBpbiBubyBjb250ZXh0IGlzIGEgZnJlZSB2YXJpYWJsZSwgd2hpY2ggd2lsbCBiZSBz dWJzdGl0dXRlZCBmb3IgYnkgYSBwbHVyYWwgY29uc3RhbnQgb3IgYm91bmQgYnkgYSBwbHVyYWwg cXVhbnRpZmllciB3aGVuIGEgY29udGV4dCBpcyBnaXZlbiwgbmF0dXJhbCBpbnRlcnByZXRhdGlv biBvZiBMb2piYW4gc2VudGVuY2UgaXMgcG9zc2libGUgd2l0aG91dCBsb3NpbmcgbG9naWNhbCBh c3BlY3RzIGFuZCBzdHJ1Y3R1cmFsIGJlYXV0eS4KCgoKISEhISEjIERlbWVyaXRzCgpCZWNhdXNl IHt6bydlfSBjYW4gYmUgYSBmcmVlIHZhcmlhYmxlLCBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZSBv ciBhIHBsdXJhbCBjb25zdGFudCBkZXBlbmRpbmcgb24gdGhlIGNvbnRleHQsIGEgc2luZ2xlIGJy aWRpIGRvZXMgbm90IGxldCBsaXN0ZW5lcnMgZGV0ZXJtaW5lIHdoaWNoIG9mIHRoZW0gaXMgdGhl IGN1cnJlbnQge3pvJ2V9LCBvciB0aGUgdHJ1dGggdmFsdWUgb2YgdGhlIHByb3Bvc2l0aW9uLgoK SG93ZXZlciwgc3VjaCBhbiBhc3BlY3QgdGhhdCB0aGUgdHJ1dGggdmFsdWUgb2YgYSBwcm9wb3Np dGlvbiBnZW5lcmFsbHkgZGVwZW5kcyBvbiB0aGUgY29udGV4dCBpcyBhIGNvbW1vbiBwcm9wZXJ0 eSB0byBhbGwgbmF0dXJhbCBsYW5ndWFnZXMuCgoKCk9uIHRoZSBvdGhlciBoYW5kLCBldmVuIGlm IHdlIHRha2UgdGhlIG9mZmljaWFsIGludGVycHJldGF0aW9uIHRoYXQge3pvJ2V9IGlzIGFsd2F5 cyBhIHBsdXJhbCBjb25zdGFudCwgbGlzdGVuZXJzIGFyZSBvbmx5IGluZm9ybWVkIGJ5IHt6bydl fSB0aGF0IGEgY2VydGFpbiB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UgaXMgZ2l2ZW4uIFdpdGggbm8g Y29udGV4dCwgdGhlcmUgaXMgbm8gd2F5IHRvIGRldGVybWluZSB3aGF0IGlzIHRoZSB1bml2ZXJz ZSBvZiBkaXNjb3Vyc2UuIFRoZSB0cnV0aCB2YWx1ZSBvZiBhIHByb3Bvc2l0aW9uIGluIG5vIGNv bnRleHQgaXMgaW5kZWZpbml0ZSBldmVuIHdpdGggdGhlIG9mZmljaWFsIGludGVycHJldGF0aW9u LgoKCgohISEhIyBQcm9ibGVtcyBjYXVzZWQgYnkgdGhlIGZhY3QgdGhhdCB6bydlIGlzIGEgcGx1 cmFsIGNvbnN0YW50IGFuZCB0aGUgY291bnRlci1tZWFzdXJlcwoKVGhlIG9mZmljaWFsIGludGVy cHJldGF0aW9uIHRoYXQge3pvJ2V9IGlzIGEgcGx1cmFsIGNvbnN0YW50IGNhdXNlcyB0aGUgZm9s bG93aW5nIHByb2JsZW1zLgoKCgohISEhISMgQ2Fubm90IGV4cHJlc3MgcGx1cmFsIHF1YW50aWZp Y2F0aW9uIG9mIG5vbi1leHNpc3RlbmNlCgpSZWFzb25hYmxlIGludGVycHJldGF0aW9uIG9mIHts byBubyBicm9kYX0gaXMgb2ZmaWNpYWxseSBleGNsdWRlZCBmcm9tIExvamJhbi4gVGhhdCBpcyB0 byBzYXksIExvamJhbiBjYW5ub3Qgb2ZmaWNpYWxseSBkZWFsIHdpdGggdGhlIGV4cHJlc3Npb24g InRoZXJlIGlzIG5vdCB3aGF0IGlzIHN1YnN0aXR1dGVkIGZvciB7ZGF9IiBmb3IgcGx1cmFsIHZh cmlhYmxlICh7bmFrdSBzdSdvaSBkYX0pLCB3aGljaCBpcyBuYXR1cmFsbHkgZGVhbHQgd2l0aCBi eSBwbHVyYWwgcXVhbnRpZmljYXRpb24uIEluIG9yZGVyIHRvIGV4cHJlc3Mge2xvIG5vIGJyb2Rh fSB3aXRoIHJlYXNvbmFibGUgaW50ZXJwcmV0YXRpb24sIHdlIG5lZWQgYW4gdW5vZmZpY2lhbCBp bnRlcnByZXRhdGlvbiBsaWtlICgofCNDYW5ub3Rfc2F5X3plcm98U2VjdGlvbiAzLjEuMi4xKSku CgoKCiEhISEhIyBDYW5ub3QgZXhwcmVzcyBib3VuZCBwbHVyYWwgdmFyaWFibGUsIHdoaWNoIGRv ZXMgbm90IHNwZWNpZnkgYSByZWZlcmVudAoKQmVjYXVzZSB0aGUgb2ZmaWNpYWwgaW50ZXJwcmV0 YXRpb24gZG9lcyBub3QgYWxsb3cge2xvIFBBIGJyb2RhfSB0byBiZSBhIGJvdW5kIHBsdXJhbCB2 YXJpYWJsZSBkZXBlbmRpbmcgb24gdGhlIGNvbnRleHQsIGFuIGFyZ3VtZW50IHRoYXQgc2hvdWxk IHJlZmVyIHRvIG5vdGhpbmcsIGEgdW5pdCBvZiBjb3VudGluZyBmb3IgZXhhbXBsZSwgc2hvdWxk IGJlIGludGVycHJldGVkIGFzIGEgcGx1cmFsIGNvbnN0YW50LCB3aGljaCByZWZlcnMgdG8gc29t ZXRoaW5nLiBGb3IgZXhhbXBsZSAKCl5sbyBjaSB4YW50byBjdSB6aWxrYW5jdSBsaSBjaSBsbyB4 YW50b14KCmZvciB3aGljaCB3ZSBhcmUgY29tcGVsbGVkIHRvIGludGVycHJldCB0aGF0IHRoZXJl IGlzIHRoZSAiRWxlcGhhbnQgZGVzIEFyY2hpdmVzIiBpbiB0aGUgdW5pdmVyc2Ugb2YgZGlzY291 cnNlLCBqdXN0IGxpa2UgdGhlICJNw6h0cmUgZGVzIEFyY2hpdmVzIiAoYWx0aG91Z2ggaXQgaGFz IGFscmVhZHkgZmluaXNoZWQgaXRzIHJvbGUpLCBpbiBvcmRlciB0byB1c2Uge2xvIHhhbnRvfSBh cyBhIHVuaXQgaW4gYSBwcm9wb3NpdGlvbi4KCgoKISEhISEjIENhbm5vdCBleHByZXNzIGVsZW1l bnRhcnkgcGFydGljbGVzIHdpdGggbG8KCkFzIGxvbmcgYXMge2xvIGJyb2RhfSBpcyBpbnRlcnBy ZXRlZCBhcyBhIHBsdXJhbCBjb25zdGFudCwgdGhlIGZvbGxvd2luZyBMb2piYW4gc2VudGVuY2Ug aXMgbWVhbmluZ2xlc3M6CgoKCl5sbyBndXNrYSd1IGN1IGdhdSBqbWFqaSBzZXBpJ28gbG8gbGVu am8gZ2knZSBwYWdyZSBsbyBmZW5yYX5wcH4KCn4vcHB+JydQaG90b25zIGFyZSBjb25kZW5zZWQg YnkgbGVuc2VzLCBhbmQgcGFzcyB0aHJvdWdoIHNsaXRzLicnXgoKCgpBY3R1YWxseSwgcGhvdG9u cyBhcmUgaW5kaXZpZHVhbHMsIGFuZCB3ZSBjYW4gY291bnQgdGhlbSwgYnV0IHdlIGNhbm5vdCBk aXN0aW5ndWlzaCBlYWNoIG9mIHRoZW06IHdlIGNhbm5vdCByZWZlciB0byBhIHNwZWNpZmljIHBo b3Rvbi4gUXVhbnRpZmljYXRpb24gaXMgaW5kZWVkIHN1aXRhYmxlIGZvciBhcmd1bWVudHMgdGhh dCByZXByZXNlbnQgcGFydGljbGVzIGxpa2UgcGhvdG9ucy4gSG93ZXZlciwgTG9qYmFuIG9mZmlj aWFsbHkgZG9lcyBub3QgaGF2ZSBhIHBsdXJhbCBxdWFudGlmaWVyLCBhbmQgY2Fubm90IGV4cHJl c3MgcXVhbnRpZmljYXRpb24gb2YgIHN1bXRpIHRoYXQgc2F0aXNmaWVzIHNlbGJyaSBib3RoIGNv bGxlY3RpdmVseSBhbmQgZGlzdHJpYnV0aXZlbHkuIE1vcmVvdmVyLCBiZWNhdXNlIHtsbyBicm9k YX0gaXMgb2ZmaWNpYWxseSBhbHdheXMgYSBwbHVyYWwgY29uc3RhbnQsIHRoZXJlIGlzIG5vIHJv b20gdG8gaW50ZXJwcmV0IHtsbyBndXNrYSd1fSBhcyBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZS4g SW4gb3JkZXIgdG8gc29sdmUgdGhlIHByb2JsZW0sIHdlIHNob3VsZCB1c2UgYW4gdW5vZmZpY2lh bCBwbHVyYWwgcXVhbnRpZmllciB7c3Unb2l9IHN1Z2dlc3RlZCBieSAoKHhvcnhlc3xsYSB4b3J4 ZXMpKS4KCgoKXnN1J29pIGRhIHBvaSBrZSdhIGd1c2thJ3UgY3UgZ2F1IGptYWppIHNlcGknbyBs byBsZW5qbyBnaSdlIHBhZ3JlIGxvIGZlbnJhXgoKCgohISEhISMgSG93IHRvIGludGVycHJldCBh IHByZXZhaWxpbmcgdmlldwoKVGhlIGZvbGxvd2luZyBleGFtcGxlIGlzIGdpdmVuIG9uICgoQlBG SyBTZWN0aW9uOiBnYWRyaXxCUEZLJ3MgZ2FkcmkgcGFnZSkpOgoKCgpebG8gcGEgcGl4cmEgY3Ug c2UgdmFtamkgbG8ga2knbyB2YWxzaX5wcH4KCn4vcHB+JydPbmUgcGljdHVyZSBpcyB3b3J0aCBh IHRob3VzYW5kIHdvcmRzLicnIF4KCgoKRXZlbiBpbiBzdWNoIGEgc2VudGVuc2UgdGhhdCBzZWVt cyBhIHByZXZhaWxpbmcgdmlldywge2xvIHBhIHBpeHJhfSBhbmQge2xvIGtpJ28gdmFsc2l9IGFy ZSBpbnRlcnByZXRlZCBhcyByZWZlcnJpbmcgdG8gc29tZXRoaW5nLiBXZSBzaG91bGQgcHJlcGFy ZSBzb21lIHJlZmVyZW50cyBvZiBzdW10aSBvZiBhIHByZXZhaWxpbmcgdmlldyBpbiB0aGUgdW5p dmVyc2Ugb2YgZGlzY291cnNlLgoKCgpJbnR1aXRpb25hbGx5IHNwZWFraW5nLCB3ZSBtYXkgdXNl IHtsbydlfSBpbnN0ZWFkIG9mIHtsb30sIGJ1dCB3ZSBjYW5ub3QgeWV0IGV4cGxhaW4ge2xvJ2V9 IGZyb20gYSBsb2dpY2FsIHBvaW50IG9mIHZpZXcgYmVjYXVzZSAoKEJQRksgU2VjdGlvbjogVHlw aWNhbHN8YWN0dWFsbHkgdGhlcmUgaXMgbm8gb2ZmaWNpYWwgY29uY2x1c2lvbiBhYm91dCByZWxh dGlvbiBiZXR3ZWVuIHtsbydlfSBhbmQge2xvfSkpLgoKCgpBcyBhIG1ldGhvZCBvZiBhdm9pZGlu ZyBtZW50aW9uIG9mIGEgcmVmZXJlbnQgaW4gYW4gZXhwcmVzc2lvbiBvZiBwcmV2YWlsaW5nIHZp ZXcsIHdlIG1heSBwdXQgdGhlIHdob2xlIHByb3Bvc2l0aW9uIGluIE5VIGNsYXVzZS4gSW4gZmFj dCwgdHJ1dGggdmFsdWUgb2YgYSBwcm9wb3NpdGlvbiBpbiBOVSBjbGF1c2UgZG9lcyBub3QgaW5m bHVlbmNlIHRydXRoIHZhbHVlIG9mIHRoZSBvdXRlciBwcm9wb3NpdGlvbiAocmVmZXJlbnRpYWxs eSBvcGFxdWU7IHRoaXMgdG9waWMgaXMgcmVsYXRlZCB0byBbaHR0cDovL2RhZy5naXRodWIuaW8v Y2xsLzkvNy98Q0xMOS43XSkuIEluIG90aGVyIHdvcmRzLCB0aGUgdW5pdmVyc2Ugb2YgZGlzY291 cnNlIG9mIGEgcHJvcG9zaXRpb24gaW4gTlUgY2xhdXNlIGlzIGRpZmZlcmVudCBmcm9tIHRoZSB1 bml2ZXJzZSBvZiBkaXNjb3Vyc2Ugb2YgYSBwcm9wb3NpdGlvbiBvdXQgb2YgTlUuCgpJZiB3ZSBh Y2NlcHQgdGhpcyBtZXRob2QsIHRoZSBleGFtcGxlIGFib3ZlIHdpbGwgYmUgbW9kaWZpZWQsIHVz aW5nIHtzaSdvfSBmb3IgZXhhbXBsZSwgYXMgZm9sbG93czoKCgoKXnNpJ28gbG8gcGEgcGl4cmEg Y3Ugc2UgdmFtamkgbG8ga2knbyB2YWxzaSB+cHB+Cgp+L3BwficnSXMgYW4gaWRlYSB0aGF0IG9u ZSBwaWN0dXJlIGlzIHdvcnRoIGEgdGhvdXNhbmQgd29yZHMuJydeCgoKCndoZXJlIHgxIG9mIHtz aSdvfSBpcyBpbXBsaWNpdCB7em8nZX0sIHdoaWNoIGhhcyBhIHJlZmVyZW50IGluIHRoZSB1bml2 ZXJzZSBvZiBkaXNjb3Vyc2UuIEFzIGFuIGludGVycHJldGF0aW9uIG9mIGEgcHJldmFpbGluZyB2 aWV3LCBzdXBwb3NpbmcgYSByZWZlcmVudCBvZiB4MSBvZiB7c2knb30gaXMgbW9yZSBuYXR1cmFs IHRoYW4gc3VwcG9zaW5nIGEgcmVmZXJlbnQgb2Yge2xvIHBhIHBpeHJhfSBvciB7bG8ga2knbyB2 YWxzaX0uCgooU3VjaCBhIGJyaWRpIHdpdGggbm8gdGVyYnJpIGlzIGNhbGxlZCAib2JzZXJ2YXRp dmUiIGluICgoVGhlIENvbXBsZXRlIExvamJhbiBMYW5ndWFnZSkpLCBidXQgdGhpcyBpbnRlcnBy ZXRhdGlvbiBpcyBub3Qgc3VpdGFibGUgaGVyZSwgYmVjYXVzZSB0aGlzIGlzIG5vdCB0aGUgdXR0 ZXJhbmNlIHRoYXQgaXMgYWx3YXlzIGNhdXNlZCBieSBhIHNwZWNpZmljIHN0aW11bHVzLikKCgoK ISEhISEjIEhvdyB0byBleHByZXNzIGZyZWUgdmFyaWFibGVzCgpBcyBhIGN1c3RvbSwga28nVi9m bydWIHNlcmllcyBvZiBLT2hBNCBhcmUgdXNlZCBhcyBmcmVlIHZhcmlhYmxlcyBpbiBkZWZpbml0 aW9ucyBvZiB3b3JkcyBvciBzb21ldGhpbmcuIEhvd2V2ZXIsIHRoZXkgYXJlIGFjdHVhbGx5IHBs dXJhbCBjb25zdGFudHMuCgpJZiB3ZSBhYmFuZG9uIHRoaXMgY3VzdG9tLCB7a2UnYX0gYW5kIHtj ZSd1fSBhcmUgc3VpdGFibGUgZm9yIGV4cHJlc3Npb24gd2l0aCBmcmVlIHZhcmlhYmxlcyAob3Bl biBzZW50ZW5jZSksIGJlY2F1c2UgdGhlIHRydXRoIHZhbHVlIG9mIGJyaWRpIGluIHdoaWNoIHtr ZSdhfSBvciB7Y2UndX0gaXMgdXNlZCBpcyBpbmRlZmluaXRlLiAKCkluIGEgYnJpZGkgaW4gd2hp Y2gge2tlJ2F9IGFwcGVhcnMgdHdvIHRpbWVzIG9yIG1vcmUsIHRoZXNlIHtrZSdhfXMgYXJlIHJl Z2FyZGVkIGFzIHJlcHJlc2VudGluZyBhbiBpZGVudGljYWwgc3VtdGk6CgpeZGEgcG9pIGtlJ2Eg Z3kgeGx1cmEga2UnYSBjdSBwYW5jaSBsbyBrYSdlIHNlIGNpdGthfnBwfgoKfi9wcH5+LS1+ICgo bG8gbnUgYmlueG8pKV4KCk9uIHRoZSBvdGhlciBoYW5kLCBpbiBhIGJyaWRpIGluIHdoaWNoIHtj ZSd1fSBhcHBlYXJzIHR3byB0aW1lcyBvciBtb3JlLCB0aGVzZSB7Y2UndX1zIGFyZSBub3QgbmVj ZXNzYXJpbHkgcmVnYXJkZWQgYXMgcmVwcmVzZW50aW5nIGFuIGlkZW50aWNhbCBzdW10aToKCl5s byBtYW10YSBqbyd1IGxvIG1lbnNpIGN1IHNpbXh1IGxvIGthIGNlJ3UgY2lzbWEgZmEnYSBjZSd1 fnBwfgoKfi9wcH5+LS1+ICgobG8gbnUgYmlueG8pKV4KCkNvbnNpZGVyaW5nIHRoZXNlIHByb3Bl cnRpZXMsIGluIG9yZGVyIHRvIGV4cHJlc3MgYW4gb3BlbiBzZW50ZW5jZSB3aXRoIGZyZWUgdmFy aWFibGVzIGluIG5vIGNvbnRleHQsIHtjZSd1fSBpcyBtb3JlIGNvbnZlbmllbnQgdGhhbiB7a2Un YX0gd2hpY2ggaGFzIHJlc3RyaWN0aW9uIG9mIGlkZW50aWNhbCBzdW10aS4KCl5jZSd1IGNlJ3Ug Y2l0a2F+cHB+Cgp+L3BwficnQSBlYXRzIEIuJycgKE9wZW4gc2VudGVuY2UsIHRydXRoIHZhbHVl IGluZGVmaW5pdGUuKV4KCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCldpa2ljaGFuZ2VzIG1haWxpbmcgbGlzdApXaWtpY2hhbmdlc0Bsb2piYW4ub3Jn Cmh0dHA6Ly9tYWlsLmxvamJhbi5vcmcvbWFpbG1hbi9saXN0aW5mby93aWtpY2hhbmdlcwo=