From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jike Song Subject: Re: [Announcement] 2016-Q3 release of XenGT - a Mediated Graphics Passthrough Solution from Intel Date: Sun, 06 Nov 2016 22:59:52 +0800 Message-ID: <581F4568.8070706@intel.com> References: <53D215D3.50608@intel.com> <547FCAAD.2060406@intel.com> <54AF967B.3060503@intel.com> <5527CEC4.9080700@intel.com> <559B3E38.1080707@intel.com> <562F4311.9@intel.com> <56A861D3.5090007@intel.com> <57219F9F.9070602@intel.com> <5791B25C.8080109@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8A8E56E21D for ; Sun, 6 Nov 2016 15:03:27 +0000 (UTC) In-Reply-To: <5791B25C.8080109@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: igvt-g@lists.01.org, xen-devel@lists.xen.org, intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: "Reddy, Raghuveer" , "Dong, Eddie" , "Li, Susie" , "Cowperthwaite, David J" , Zhiyuan Lv , "Zhu, Libo" , "Wang, Hongbo" List-Id: intel-gfx@lists.freedesktop.org SGkgYWxsLAoKV2UgYXJlIHBsZWFzZWQgdG8gYW5ub3VuY2UgYW5vdGhlciB1cGRhdGUgb2YgSW50 ZWwgR1ZULWcgZm9yIFhlbi4KCkludGVsIEdWVC1nIGlzIGEgZnVsbCBHUFUgdmlydHVhbGl6YXRp b24gc29sdXRpb24gd2l0aCBtZWRpYXRlZCBwYXNzLXRocm91Z2gsIHN0YXJ0aW5nIGZyb20gNHRo IGdlbmVyYXRpb24gSW50ZWwgQ29yZShUTSkgcHJvY2Vzc29ycyB3aXRoIEludGVsIEdyYXBoaWNz IHByb2Nlc3NvcnMuIEEgdmlydHVhbCBHUFUgaW5zdGFuY2UgaXMgbWFpbnRhaW5lZCBmb3IgZWFj aCBWTSwgd2l0aCBwYXJ0IG9mIHBlcmZvcm1hbmNlIGNyaXRpY2FsIHJlc291cmNlcyBkaXJlY3Rs eSBhc3NpZ25lZC4gVGhlIGNhcGFiaWxpdHkgb2YgcnVubmluZyBuYXRpdmUgZ3JhcGhpY3MgZHJp dmVyIGluc2lkZSBhIFZNLCB3aXRob3V0IGh5cGVydmlzb3IgaW50ZXJ2ZW50aW9uIGluIHBlcmZv cm1hbmNlIGNyaXRpY2FsIHBhdGhzLCBhY2hpZXZlcyBhIGdvb2QgYmFsYW5jZSBhbW9uZyBwZXJm b3JtYW5jZSwgZmVhdHVyZSwgYW5kIHNoYXJpbmcgY2FwYWJpbGl0eS4gWGVuIGlzIGN1cnJlbnRs eSBzdXBwb3J0ZWQgb24gSW50ZWwgUHJvY2Vzc29yIEdyYXBoaWNzIChhLmsuYS4gWGVuR1QpLgoK ClJlcG9zaXRvcmllcwoKLSAgICBYZW46IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9pZ3Z0Zy14 ZW4gKDIwMTZxMy00LjYgYnJhbmNoKQotICAgIEtlcm5lbDogaHR0cHM6Ly9naXRodWIuY29tLzAx b3JnL2lndnRnLWtlcm5lbCAoMjAxNnEzLTQuMy4wIGJyYW5jaCkKLSAgICBRZW11OiBodHRwczov L2dpdGh1Yi5jb20vMDFvcmcvaWd2dGctcWVtdSAoMjAxNnEzLTIuMy4wIGJyYW5jaCkKCgpUaGlz IHVwZGF0ZSBjb25zaXN0cyBvZjoKCi0gICAgUHJlbGltaW5hcnkgc3VwcG9ydCBuZXcgcGxhdGZv cm06IDd0aCBnZW5lcmF0aW9uIEludGVswq4gQ29yZeKEoiBwcm9jZXNzb3JzLiBGb3Igd2luZG93 cyBPUywgaXQgb25seSBzdXBwb3J0cyBXaW4xMCBSZWRTdG9uZSA2NCBiaXQuCgotICAgIFdpbmRv d3MgMTAgUmVkU3RvbmUgZ3Vlc3QgU3VwcG9ydAoKLSAgICBXaW5kb3dzIEd1ZXN0IFFvUyBwcmVs aW1pbmFyeSBzdXBwb3J0OiAgQWRtaW5pc3RyYXRvcnMgbm93IGFyZSBhYmxlIHRvIGNvbnRyb2wg dGhlIG1heGltdW0gYW1vdW50IG9mIHZHUFUgcmVzb3VyY2UgdG8gYmUgY29uc3VtZWQgYnkgZWFj aCBWTSBmcm9tIHZhbHVlIDElIH4gOTkl4oCdCgotICAgIERpc3BsYXkgdmlydHVhbGl6YXRpb24g cHJlbGltaW5hcnkgc3VwcG9ydDogQmVzaWRlcyB0aGUgdHJhY2tpbmcgb2YgZGlzcGxheSByZWdp c3RlciB2aXNpdCBpbiBndWVzdCBWTSwgcmVtb3ZpbmcgaXJyZWxhdGl2ZSBkaXNwbGF5IHBpcGVs aW5lIGluZm8gYmV0d2VlbiBob3N0IGFuZCBndWVzdCBWTQoKLSAgICBMaXZlIE1pZ3JhdGlvbiBh bmQgc2F2ZXZtL3Jlc3RvcmV2bSBwcmVsaW1pbmFyeSBzdXBwb3J0IG9uIEJEVyB3aXRoIDJELzNE IHdvcmtsb2FkIHJ1bm5pbmcKCgoKS25vd24gaXNzdWVzOgoKLSAgIEF0IGxlYXN0IDJHQiBtZW1v cnkgaXMgc3VnZ2VzdGVkIGZvciBHdWVzdCBWaXJ0dWFsIE1hY2hpbmUgKHdpbjctMzIvNjQsIHdp bjguMS02NCwgd2luMTAtNjQpIHRvIHJ1biBtb3N0IDNEIHdvcmtsb2FkcwoKLSAgIFdpbmRvd3M4 IGFuZCBsYXRlciBXaW5kb3dzIGZhc3QgYm9vdCBpcyBub3Qgc3VwcG9ydGVkLCB0aGUgd29ya2Fy b3VuZCBpcyB0byBkaXNhYmxlIHBvd2VyIFMzL1M0IGluIEhWTSBmaWxlIGJ5IGFkZGluZyDigJxh Y3BpX1MzPTAsIGFjcGlfUzQ9MOKAnQoKLSAgIFNvbWV0aW1lcyB3aGVuIGRvbTAgYW5kIGd1ZXN0 IGhhcyBoZWF2eSB3b3JrbG9hZCwgaTkxNSBpbiBkb20wIHdpbGwgdHJpZ2dlciBhIGZhbHNlLWFs YXJtZWQgVERSLiBUaGUgd29ya2Fyb3VuZCBpcyB0byBkaXNhYmxlIGRvbTAgaGFuZ2NoZWNrIGlu IGRvbTAgZ3J1YiBmaWxlIGJ5IGFkZGluZyDigJxpOTE1LmVuYWJsZV9oYW5nY2hlY2s9MOKAnQoK LSAgIFN0YWJpbGl0eTogV2hlbiBRb1MgZmVhdHVyZSBpcyBlbmFibGVkLCBXaW5kb3dzIGd1ZXN0 IGZ1bGwgR1BVIHJlc2V0IGlzIG9mdGVuIHRyaWdnZXIgZHVyaW5nIE1UQkYgdGVzdC4gIFRoaXMg YnVnIHdpbGwgYmUgZml4ZWQgaW4gbmV4dCByZWxlYXNlCgotICAgV2luZG93cyBndWVzdCBydW5u aW5nIE9wZW5DTCBhbGxvY2F0aW9ucyBvY2N1cnMgdG8gaG9zdCBjcmFzaDsgdGhlIHdvcmthcm91 bmQgaXMgdG8gZGlzYWJsZSBsb2dkIGluIGRvbTAgZ3J1YiBmaWxlIGJ5IGFkZGluZyDigJxpOTE1 LiBsb2dkX2VuYWJsZSA9MOKAnQoKCk5leHQgdXBkYXRlIHdpbGwgYmUgYXJvdW5kIGVhcmx5IEph biwgMjAxNy4KCgpHVlQtZyBwcm9qZWN0IHBvcnRhbDogaHR0cHM6Ly8wMS5vcmcvaWd2dC1nClBs ZWFzZSBzdWJzY3JpYmUgbWFpbGluZyBsaXN0OiBodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2lndnQtZwoKCk1vcmUgaW5mb3JtYXRpb24gYWJvdXQgYmFja2dyb3VuZCwgYXJj aGl0ZWN0dXJlIGFuZCBvdGhlcnMgYWJvdXQgSW50ZWwgR1ZULWcsIGNhbiBiZSBmb3VuZCBhdDoK CiAgICBodHRwczovLzAxLm9yZy9pZ3Z0LWcKICAgIGh0dHBzOi8vd3d3LnVzZW5peC5vcmcvY29u ZmVyZW5jZS9hdGMxNC90ZWNobmljYWwtc2Vzc2lvbnMvcHJlc2VudGF0aW9uL3RpYW4KICAgIGh0 dHA6Ly9ldmVudHMubGludXhmb3VuZGF0aW9uLm9yZy9zaXRlcy9ldmVudHMvZmlsZXMvc2xpZGVz L1hlbkdULVhlbiUyMFN1bW1pdC12N18wLnBkZgogICAgaHR0cDovL2V2ZW50cy5saW51eGZvdW5k YXRpb24ub3JnL3NpdGVzL2V2ZW50cy9maWxlcy9zbGlkZXMvWGVuR1QtWGVuJTIwU3VtbWl0LVJF V1JJVEUlMjAzUkQlMjB2NC5wZGYKICAgIGh0dHBzOi8vMDEub3JnL3hlbi9ibG9ncy9zcmNsYXJr eC8yMDEzL2dyYXBoaWNzLXZpcnR1YWxpemF0aW9uLXhlbmd0CgoKTm90ZTogVGhlIFhlbkdUIHBy b2plY3Qgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYSB3b3JrIGluIHByb2dyZXNzLiBBcyBzdWNoIGl0 IGlzIG5vdCBhIGNvbXBsZXRlIHByb2R1Y3Qgbm9yIHNob3VsZCBpdCBiZSBjb25zaWRlcmVkIG9u ZS4gRXh0cmEgY2FyZSBzaG91bGQgYmUgdGFrZW4gd2hlbiB0ZXN0aW5nIGFuZCBjb25maWd1cmlu ZyBhIHN5c3RlbSB0byB1c2UgdGhlIFhlbkdUIHByb2plY3QuCgotLQpUaGFua3MsCkppa2UKCk9u IDA3LzIyLzIwMTYgMDE6NDIgUE0sIEppa2UgU29uZyB3cm90ZToKPiBIaSBhbGwsCj4gCj4gV2Ug YXJlIHBsZWFzZWQgdG8gYW5ub3VuY2UgYW5vdGhlciB1cGRhdGUgb2YgSW50ZWwgR1ZULWcgZm9y IFhlbi4KPiAKPiBJbnRlbCBHVlQtZyBpcyBhIGZ1bGwgR1BVIHZpcnR1YWxpemF0aW9uIHNvbHV0 aW9uIHdpdGggbWVkaWF0ZWQgcGFzcy10aHJvdWdoLCBzdGFydGluZyBmcm9tIDR0aCBnZW5lcmF0 aW9uIEludGVsIENvcmUoVE0pIHByb2Nlc3NvcnMgd2l0aCBJbnRlbCBHcmFwaGljcyBwcm9jZXNz b3JzLiBBIHZpcnR1YWwgR1BVIGluc3RhbmNlIGlzIG1haW50YWluZWQgZm9yIGVhY2ggVk0sIHdp dGggcGFydCBvZiBwZXJmb3JtYW5jZSBjcml0aWNhbCByZXNvdXJjZXMgZGlyZWN0bHkgYXNzaWdu ZWQuIFRoZSBjYXBhYmlsaXR5IG9mIHJ1bm5pbmcgbmF0aXZlIGdyYXBoaWNzIGRyaXZlciBpbnNp ZGUgYSBWTSwgd2l0aG91dCBoeXBlcnZpc29yIGludGVydmVudGlvbiBpbiBwZXJmb3JtYW5jZSBj cml0aWNhbCBwYXRocywgYWNoaWV2ZXMgYSBnb29kIGJhbGFuY2UgYW1vbmcgcGVyZm9ybWFuY2Us IGZlYXR1cmUsIGFuZCBzaGFyaW5nIGNhcGFiaWxpdHkuIFhlbiBpcyBjdXJyZW50bHkgc3VwcG9y dGVkIG9uIEludGVsIFByb2Nlc3NvciBHcmFwaGljcyAoYS5rLmEuIFhlbkdUKS4KPiAKPiBSZXBv c2l0b3JpZXMKPiAtICAgIFhlbjogaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL2lndnRnLXhlbiAo MjAxNnEyLTQuNiBicmFuY2gpCj4gLSAgICBLZXJuZWw6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9y Zy9pZ3Z0Zy1rZXJuZWwgKDIwMTZxMi00LjMuMCBicmFuY2gpCj4gLSAgICBRZW11OiBodHRwczov L2dpdGh1Yi5jb20vMDFvcmcvaWd2dGctcWVtdSAoMjAxNnEyLTIuMy4wIGJyYW5jaCkKPiAKPiBU aGlzIHVwZGF0ZSBjb25zaXN0cyBvZjoKPiAtICAgIFN1cHBvcnQgV2luZG93cyAxMCBndWVzdAo+ IC0gICAgU3VwcG9ydCBXaW5kb3dzIEdyYXBoaWNzIGRyaXZlciBpbnN0YWxsYXRpb24gb24gYm90 aCBXaW5kb3dzIE5vcm1hbCBtb2RlIGFuZCBTYWZlIG1vZGUKPiAKPiBLbm93biBpc3N1ZXM6Cj4g LSAgIEF0IGxlYXN0IDJHQiBtZW1vcnkgaXMgc3VnZ2VzdGVkIGZvciBHdWVzdCBWaXJ0dWFsIE1h Y2hpbmUgKFZNKSB0byBydW4gbW9zdCAzRCB3b3JrbG9hZHMKPiAtICAgRG9tMCBTMyByZWxhdGVk IGZlYXR1cmUgaXMgbm90IHN1cHBvcnRlZAo+IC0gICBXaW5kb3dzIDggYW5kIGxhdGVyIHZlcnNp b25zOiBmYXN0IGJvb3QgaXMgbm90IHN1cHBvcnRlZCwgdGhlIHdvcmthcm91bmQgaXMgdG8gZGlz YWJsZSBwb3dlciBTMy9TNCBpbiBIVk0gZmlsZSBieSBhZGRpbmcgImFjcGlfUzM9MCwgYWNwaV9T ND0wIgo+IC0gICBVc2luZyBXaW5kb3dzIE1lZGlhIFBsYXllciBwbGF5IHZpZGVvcyBtYXkgY2F1 c2UgaG9zdCBjcmFzaC4gVXNpbmcgVkxDIHRvIHBsYXkgLm9nZyBmaWxlIG1heSBjYXVzZSBtb3Nh aWMgb3Igc2xvdyByZXNwb25zZS4KPiAtICAgU29tZXRpbWVzIHdoZW4gYm90aCBkb20wIGFuZCBn dWVzdCBoYXZlIGhlYXZ5IHdvcmtsb2FkcywgaTkxNSBpbiBkb20wIHdpbGwgdHJpZ2dlciBhIGZh bHNlIGdyYXBoaWNzIHJlc2V0LAo+ICAgICB0aGUgd29ya2Fyb3VuZCBpcyB0byBkaXNhYmxlIGRv bTAgaGFuZ2NoZWNrIGluIGdydWIgZmlsZSBieSBhZGRpbmcgImk5MTUuZW5hYmxlX2hhbmdjaGVj az0wIi4KPiAKPiBOZXh0IHVwZGF0ZSB3aWxsIGJlIGFyb3VuZCBlYXJseSBPY3QsIDIwMTYuCj4g Cj4gR1ZULWcgcHJvamVjdCBwb3J0YWw6IGh0dHBzOi8vMDEub3JnL2lndnQtZwo+IFBsZWFzZSBz dWJzY3JpYmUgbWFpbGluZyBsaXN0OiBodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2lndnQtZwo+IAo+IE1vcmUgaW5mb3JtYXRpb24gYWJvdXQgYmFja2dyb3VuZCwgYXJjaGl0 ZWN0dXJlIGFuZCBvdGhlcnMgYWJvdXQgSW50ZWwgR1ZULWcsIGNhbiBiZSBmb3VuZCBhdDoKPiAg ICAgaHR0cHM6Ly8wMS5vcmcvaWd2dC1nCj4gICAgIGh0dHBzOi8vd3d3LnVzZW5peC5vcmcvY29u ZmVyZW5jZS9hdGMxNC90ZWNobmljYWwtc2Vzc2lvbnMvcHJlc2VudGF0aW9uL3RpYW4KPiAgICAg aHR0cDovL2V2ZW50cy5saW51eGZvdW5kYXRpb24ub3JnL3NpdGVzL2V2ZW50cy9maWxlcy9zbGlk ZXMvWGVuR1QtWGVuJTIwU3VtbWl0LXY3XzAucGRmCj4gICAgIGh0dHA6Ly9ldmVudHMubGludXhm b3VuZGF0aW9uLm9yZy9zaXRlcy9ldmVudHMvZmlsZXMvc2xpZGVzL1hlbkdULVhlbiUyMFN1bW1p dC1SRVdSSVRFJTIwM1JEJTIwdjQucGRmCj4gICAgIGh0dHBzOi8vMDEub3JnL3hlbi9ibG9ncy9z cmNsYXJreC8yMDEzL2dyYXBoaWNzLXZpcnR1YWxpemF0aW9uLXhlbmd0Cj4gCj4gCj4gTm90ZTog VGhlIFhlbkdUIHByb2plY3Qgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYSB3b3JrIGluIHByb2dyZXNz LiBBcyBzdWNoIGl0IGlzIG5vdCBhIGNvbXBsZXRlIHByb2R1Y3Qgbm9yIHNob3VsZCBpdCBiZSBj b25zaWRlcmVkIG9uZS4gRXh0cmEgY2FyZSBzaG91bGQgYmUgdGFrZW4gd2hlbiB0ZXN0aW5nIGFu ZCBjb25maWd1cmluZyBhIHN5c3RlbSB0byB1c2UgdGhlIFhlbkdUIHByb2plY3QuCj4gCj4gLS0K PiBUaGFua3MsCj4gSmlrZQo+IAo+IE9uIDA0LzI4LzIwMTYgMDE6MjkgUE0sIEppa2UgU29uZyB3 cm90ZToKPj4gSGkgYWxsLAo+Pgo+PiBXZSBhcmUgcGxlYXNlZCB0byBhbm5vdW5jZSBhbm90aGVy IHVwZGF0ZSBvZiBJbnRlbCBHVlQtZyBmb3IgWGVuLgo+Pgo+PiBJbnRlbCBHVlQtZyBpcyBhIGZ1 bGwgR1BVIHZpcnR1YWxpemF0aW9uIHNvbHV0aW9uIHdpdGggbWVkaWF0ZWQgcGFzcy10aHJvdWdo LCBzdGFydGluZyBmcm9tIDR0aCBnZW5lcmF0aW9uIEludGVsIENvcmUoVE0pIHByb2Nlc3NvcnMg d2l0aCBJbnRlbCBHcmFwaGljcyBwcm9jZXNzb3JzLiBBIHZpcnR1YWwgR1BVIGluc3RhbmNlIGlz IG1haW50YWluZWQgZm9yIGVhY2ggVk0sIHdpdGggcGFydCBvZiBwZXJmb3JtYW5jZSBjcml0aWNh bCByZXNvdXJjZXMgZGlyZWN0bHkgYXNzaWduZWQuIFRoZSBjYXBhYmlsaXR5IG9mIHJ1bm5pbmcg bmF0aXZlIGdyYXBoaWNzIGRyaXZlciBpbnNpZGUgYSBWTSwgd2l0aG91dCBoeXBlcnZpc29yIGlu dGVydmVudGlvbiBpbiBwZXJmb3JtYW5jZSBjcml0aWNhbCBwYXRocywgYWNoaWV2ZXMgYSBnb29k IGJhbGFuY2UgYW1vbmcgcGVyZm9ybWFuY2UsIGZlYXR1cmUsIGFuZCBzaGFyaW5nIGNhcGFiaWxp dHkuIFhlbiBpcyBjdXJyZW50bHkgc3VwcG9ydGVkIG9uIEludGVsIFByb2Nlc3NvciBHcmFwaGlj cyAoYS5rLmEuIFhlbkdUKS4KPj4KPj4KPj4gUmVwb3NpdG9yaWVzCj4+IC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KPj4KPj4gS2VybmVsOiBodHRwczovL2dpdGh1Yi5jb20vMDFvcmcvaWd2dGct a2VybmVsICgyMDE2cTEtNC4zLjAgYnJhbmNoKQo+PiBYZW46IGh0dHBzOi8vZ2l0aHViLmNvbS8w MW9yZy9pZ3Z0Zy14ZW4gKDIwMTZxMS00LjYgYnJhbmNoKQo+PiBRZW11OiBodHRwczovL2dpdGh1 Yi5jb20vMDFvcmcvaWd2dGctcWVtdSAoMjAxNnExLTIuMy4wIGJyYW5jaCkKPj4KPj4gVGhpcyB1 cGRhdGUgY29uc2lzdHMgb2Y6Cj4+IC0gICAgV2luZG93cyAxMCBndWVzdCBpcyBwcmVsaW1pbmFy aWx5IHN1cHBvcnRlZCBpbiB0aGlzIHJlbGVhc2UuIAo+PiAtICAgIEltcGxlbWVudGVkIHZndGJ1 ZmZlcihJbmRpcmVjdCBkaXNwbGF5KSBmZWF0dXJlIG9uIFNLTCBwbGF0Zm9ybS4KPj4gLSAgICBC YWNrd2FyZCBjb21wYXRpYmlsaXR5IHN1cHBvcnQgNXRoIGdlbmVyYXRpb24gKEJyb2Fkd2VsbCkK Pj4gLSAgICBJbmNyZWFzZWQgVkdUIHN0YWJpbGl0eSBvbiBTS0wgcGxhdGZvcm0KPj4gLSAgICBL ZXJuZWwgdXBkYXRlZCBmcm9tIGRybS1pbnRlbCA0LjIuMCB0byBkcm0taW50ZWwgNC4zLjAKPj4g LSAgICBYZW4gdXBkYXRlZCBmcm9tIFhlbiA0LjUuMCB0byBYZW4gNC42LjAKPj4gLSAgICBRZW11 IHVwZGF0ZWQgZnJvbSAxLjYgdG8gMi4zCj4+Cj4+IEtub3duIGlzc3VlczoKPj4gLSAgICBBdCBs ZWFzdCAyR0IgbWVtb3J5IGlzIHN1Z2dlc3RlZCBmb3IgVk0od2luNy0zMi82NCwgd2luOC4xIDY0 KSB0byBydW4gbW9zdCAzRCB3b3JrbG9hZHMuCj4+IC0gICAgV2luZG93cyA3IEdGWCBkcml2ZXIg dXBncmFkaW5nIG9ubHkgd29ya3Mgb24gU2FmZSBtb2RlLgo+PiAtICAgIFNvbWUgbWVkaWEgZGVj b2RlIGNhbid0IHdvcmsgd2VsbCAod2lsbCBiZSByZXNvbHZlZCBpbiB0aGUgbmV4dCB2ZXJzaW9u IFdpbmRvd3MgR0ZYIGRyaXZlcikuIAo+PiAtICAgIFdpbmRvd3M4IGFuZCBsYXRlciBXaW5kb3dz IGZhc3QgYm9vdCBpcyBub3Qgc3VwcG9ydGVkLCB3aG9zZSB3b3JrYXJvdW5kIGlzIHRvIGRpc2Fi bGUgcG93ZXIgUzMvUzQgaW4gSFZNIGZpbGUgYnkgYWRkaW5nICJhY3BpX3MzPTAsIGFjcGlfczQ9 MCIKPj4gLSAgICBTb21ldGltZXMgd2hlbiBkb20wIGFuZCBndWVzdCBoYXZlIGhlYXZ5IHdvcmts b2FkLCBpOTE1IGluIGRvbTAgd2lsbCB0cmlnZ2VyIGEgZmFsc2UgZ3JhcGhpY3MgcmVzZXQuIFRo ZSB3b3JrYXJvdW5kIGlzIHRvIGRpc2FibGUgZG9tMCBoYW5nY2hlY2sgaW4gZG9tMCBncnViIGZp bGUgYnkgYWRkaW5nICJpOTE1LmVuYWJsZV9oYW5nY2hlY2s9MCIKPj4KPj4gTmV4dCB1cGRhdGUg d2lsbCBiZSBhcm91bmQgZWFybHkgSnVseSwgMjAxNi4KPj4KPj4gR1ZULWcgcHJvamVjdCBwb3J0 YWw6Cj4+IAlodHRwczovLzAxLm9yZy9pZ3Z0LWcKPj4KPj4gUGxlYXNlIHN1YnNjcmliZSB0aGUg bWFpbGluZyBsaXN0Ogo+PiAJaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9p Z3Z0LWcKPj4KPj4KPj4gTW9yZSBpbmZvcm1hdGlvbiBhYm91dCBiYWNrZ3JvdW5kLCBhcmNoaXRl Y3R1cmUgYW5kIG90aGVycyBhYm91dCBJbnRlbCBHVlQtZywgY2FuIGJlIGZvdW5kIGF0Ogo+Pgo+ PiAgICAgaHR0cHM6Ly8wMS5vcmcvaWd2dC1nCj4+ICAgICBodHRwczovL3d3dy51c2VuaXgub3Jn L2NvbmZlcmVuY2UvYXRjMTQvdGVjaG5pY2FsLXNlc3Npb25zL3ByZXNlbnRhdGlvbi90aWFuCj4+ ICAgICBodHRwOi8vZXZlbnRzLmxpbnV4Zm91bmRhdGlvbi5vcmcvc2l0ZXMvZXZlbnRzL2ZpbGVz L3NsaWRlcy9YZW5HVC1YZW4lMjBTdW1taXQtdjdfMC5wZGYKPj4gICAgIGh0dHA6Ly9ldmVudHMu bGludXhmb3VuZGF0aW9uLm9yZy9zaXRlcy9ldmVudHMvZmlsZXMvc2xpZGVzL1hlbkdULVhlbiUy MFN1bW1pdC1SRVdSSVRFJTIwM1JEJTIwdjQucGRmCj4+ICAgICBodHRwczovLzAxLm9yZy94ZW4v YmxvZ3Mvc3JjbGFya3gvMjAxMy9ncmFwaGljcy12aXJ0dWFsaXphdGlvbi14ZW5ndAo+Pgo+Pgo+ PiBOb3RlOiBUaGUgWGVuR1QgcHJvamVjdCBzaG91bGQgYmUgY29uc2lkZXJlZCBhIHdvcmsgaW4g cHJvZ3Jlc3MuIEFzIHN1Y2ggaXQgaXMgbm90IGEgY29tcGxldGUgcHJvZHVjdCBub3Igc2hvdWxk IGl0IGJlIGNvbnNpZGVyZWQgb25lLiBFeHRyYSBjYXJlIHNob3VsZCBiZSB0YWtlbiB3aGVuIHRl c3RpbmcgYW5kIGNvbmZpZ3VyaW5nIGEgc3lzdGVtIHRvIHVzZSB0aGUgWGVuR1QgcHJvamVjdC4K Pj4KPj4KPj4gLS0KPj4gVGhhbmtzLAo+PiBKaWtlCj4+Cj4+IE9uIDAxLzI3LzIwMTYgMDI6MjEg UE0sIEppa2UgU29uZyB3cm90ZToKPj4+IEhpIGFsbCwKPj4+Cj4+PiBXZSBhcmUgcGxlYXNlZCB0 byBhbm5vdW5jZSBhbm90aGVyIHVwZGF0ZSBvZiBJbnRlbCBHVlQtZyBmb3IgWGVuLgo+Pj4KPj4+ IEludGVsIEdWVC1nIGlzIGEgZnVsbCBHUFUgdmlydHVhbGl6YXRpb24gc29sdXRpb24gd2l0aCBt ZWRpYXRlZCBwYXNzLXRocm91Z2gsIHN0YXJ0aW5nIGZyb20gNHRoIGdlbmVyYXRpb24gSW50ZWwg Q29yZShUTSkgcHJvY2Vzc29ycyB3aXRoIEludGVsIEdyYXBoaWNzIHByb2Nlc3NvcnMuIEEgdmly dHVhbCBHUFUgaW5zdGFuY2UgaXMgbWFpbnRhaW5lZCBmb3IgZWFjaCBWTSwgd2l0aCBwYXJ0IG9m IHBlcmZvcm1hbmNlIGNyaXRpY2FsIHJlc291cmNlcyBkaXJlY3RseSBhc3NpZ25lZC4gVGhlIGNh cGFiaWxpdHkgb2YgcnVubmluZyBuYXRpdmUgZ3JhcGhpY3MgZHJpdmVyIGluc2lkZSBhIFZNLCB3 aXRob3V0IGh5cGVydmlzb3IgaW50ZXJ2ZW50aW9uIGluIHBlcmZvcm1hbmNlIGNyaXRpY2FsIHBh dGhzLCBhY2hpZXZlcyBhIGdvb2QgYmFsYW5jZSBhbW9uZyBwZXJmb3JtYW5jZSwgZmVhdHVyZSwg YW5kIHNoYXJpbmcgY2FwYWJpbGl0eS4gWGVuIGlzIGN1cnJlbnRseSBzdXBwb3J0ZWQgb24gSW50 ZWwgUHJvY2Vzc29yIEdyYXBoaWNzIChhLmsuYS4gWGVuR1QpLgo+Pj4KPj4+IFJlcG9zaXRvcmll cwo+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4KPj4+IEtlcm5lbDogaHR0cHM6Ly9n aXRodWIuY29tLzAxb3JnL2lndnRnLWtlcm5lbCAoMjAxNXE0LTQuMi4wIGJyYW5jaCkKPj4+IFhl bjogaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL2lndnRnLXhlbiAoMjAxNXE0LTQuNSBicmFuY2gp Cj4+PiBRZW11OiBodHRwczovL2dpdGh1Yi5jb20vMDFvcmcvaWd2dGctcWVtdSAoeGVuZ3RfcHVi bGljMjAxNXE0IGJyYW5jaCkKPj4+Cj4+PiBUaGlzIHVwZGF0ZSBjb25zaXN0cyBvZjoKPj4+Cj4+ PiAJLSA2dGggZ2VuZXJhdGlvbiBJbnRlbCBDb3JlIFByb2Nlc3NvciAoY29kZSBuYW1lOiBTa3ls YWtlKSBpcyBwcmVsaW1pbmFyaWx5IHN1cHBvcnRlZCBpbiB0aGlzIHJlbGVhc2UuIFVzZXJzIGNv dWxkIHN0YXJ0IHJ1biBtdWx0aXBsZSBXaW5kb3dzIC8gTGludXggdmlydHVhbCBtYWNoaW5lcyBz aW11bHRhbmVvdXNseSwgYW5kIHN3aXRjaCBkaXNwbGF5IGFtb25nIHRoZW0uCj4+PiAJLSBCYWNr d2FyZCBjb21wYXRpYmlsaXR5IHN1cHBvcnQgNHRoIGdlbmVyYXRpb24gSW50ZWwgQ29yZSBQcm9j ZXNzb3IgKGNvZGUgbmFtZTogSGFzd2VsbCkgYW5kIDV0aCBnZW5lcmF0aW9uIEludGVsIENvcmUg UHJvY2Vzc29yIChjb2RlIG5hbWU6IEJyb2Fkd2VsbCkuCj4+PiAJLSBLZXJuZWwgdXBkYXRlIGZy b20gZHJtLWludGVsIDMuMTguMCB0byBkcm0taW50ZWwgNC4yLjAuCj4+Pgo+Pj4gS25vd24gaXNz dWVzOgo+Pj4gICAgLSBBdCBsZWFzdCAyR0IgbWVtb3J5IGlzIHN1Z2dlc3RlZCBmb3IgYSBWTSB0 byBydW4gbW9zdCAzRCB3b3JrbG9hZHMuCj4+PiAgICAtIEtleW1hcCBtaWdodCBiZSBpbmNvcnJl Y3QgaW4gZ3Vlc3QuIENvbmZpZyBmaWxlIG1heSBuZWVkIHRvIGV4cGxpY2l0bHkgc3BlY2lmeSAi a2V5bWFwPSdlbi11cyciLiBBbHRob3VnaCBpdCBsb29rcyBsaWtlIHRoZSBkZWZhdWx0IHZhbHVl LCBlYXJsaWVyIHdlIHNhdyB0aGUgcHJvYmxlbSBvZiB3cm9uZyBrZXltYXAgY29kZSBpZiBpdCBp cyBub3QgZXhwbGljaXRseSBzZXQuCj4+PiAgICAtIENhbm5vdCBtb3ZlIG1vdXNlIHBvaW50ZXIg c21vb3RobHkgaW4gZ3Vlc3QgYnkgZGVmYXVsdCBsYXVuY2hlZCBieSBWTkMgbW9kZS4gQ29uZmln dXJhdGlvbiBmaWxlIG5lZWQgdG8gZXhwbGljaXRseSBzcGVjaWZ5ICJ1c2I9MSIgdG8gZW5hYmxl IGEgVVNCIGJ1cywgYW5kICJ1c2JkZXZpY2U9J3RhYmxldCciIHRvIGFkZCBwb2ludGVyIGRldmlj ZSB1c2luZyBhYnNvbHV0ZSBjb29yZGluYXRlcy4KPj4+ICAgIC0gUnVubmluZyBoZWF2eSAzRCB3 b3JrbG9hZHMgaW4gbXVsdGlwbGUgZ3Vlc3RzIGZvciBjb3VwbGUgb2YgaG91cnMgbWF5IGNhdXNl IHN0YWJpbGl0eSBpc3N1ZS4KPj4+ICAgIC0gVGhlcmUgYXJlIHN0aWxsIHN0YWJpbGl0eSBpc3N1 ZXMgb24gU2t5bGFrZQo+Pj4KPj4+Cj4+PiBOZXh0IHVwZGF0ZSB3aWxsIGJlIGFyb3VuZCBlYXJs eSBBcHJpbCwgMjAxNi4KPj4+Cj4+PiBHVlQtZyBwcm9qZWN0IHBvcnRhbDogaHR0cHM6Ly8wMS5v cmcvaWd2dC1nCj4+PiBQbGVhc2Ugc3Vic2NyaWJlIG1haWxpbmcgbGlzdDogaHR0cHM6Ly9saXN0 cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3Z0LWcKPj4+Cj4+Pgo+Pj4gTW9yZSBpbmZvcm1h dGlvbiBhYm91dCBiYWNrZ3JvdW5kLCBhcmNoaXRlY3R1cmUgYW5kIG90aGVycyBhYm91dCBJbnRl bCBHVlQtZywgY2FuIGJlIGZvdW5kIGF0Ogo+Pj4KPj4+ICAgICBodHRwczovLzAxLm9yZy9pZ3Z0 LWcKPj4+ICAgICBodHRwczovL3d3dy51c2VuaXgub3JnL2NvbmZlcmVuY2UvYXRjMTQvdGVjaG5p Y2FsLXNlc3Npb25zL3ByZXNlbnRhdGlvbi90aWFuCj4+PiAgICAgaHR0cDovL2V2ZW50cy5saW51 eGZvdW5kYXRpb24ub3JnL3NpdGVzL2V2ZW50cy9maWxlcy9zbGlkZXMvWGVuR1QtWGVuJTIwU3Vt bWl0LXY3XzAucGRmCj4+PiAgICAgaHR0cDovL2V2ZW50cy5saW51eGZvdW5kYXRpb24ub3JnL3Np dGVzL2V2ZW50cy9maWxlcy9zbGlkZXMvWGVuR1QtWGVuJTIwU3VtbWl0LVJFV1JJVEUlMjAzUkQl MjB2NC5wZGYKPj4+ICAgICBodHRwczovLzAxLm9yZy94ZW4vYmxvZ3Mvc3JjbGFya3gvMjAxMy9n cmFwaGljcy12aXJ0dWFsaXphdGlvbi14ZW5ndAo+Pj4KPj4+Cj4+PiBOb3RlOiBUaGUgWGVuR1Qg cHJvamVjdCBzaG91bGQgYmUgY29uc2lkZXJlZCBhIHdvcmsgaW4gcHJvZ3Jlc3MuIEFzIHN1Y2gg aXQgaXMgbm90IGEgY29tcGxldGUgcHJvZHVjdCBub3Igc2hvdWxkIGl0IGJlIGNvbnNpZGVyZWQg b25lLiBFeHRyYSBjYXJlIHNob3VsZCBiZSB0YWtlbiB3aGVuIHRlc3RpbmcgYW5kIGNvbmZpZ3Vy aW5nIGEgc3lzdGVtIHRvIHVzZSB0aGUgWGVuR1QgcHJvamVjdC4KPj4+Cj4+Pgo+Pj4gLS0KPj4+ IFRoYW5rcywKPj4+IEppa2UKPj4+Cj4+PiBPbiAxMC8yNy8yMDE1IDA1OjI1IFBNLCBKaWtlIFNv bmcgd3JvdGU6Cj4+Pj4gSGkgYWxsLAo+Pj4+Cj4+Pj4gV2UgYXJlIHBsZWFzZWQgdG8gYW5ub3Vu Y2UgYW5vdGhlciB1cGRhdGUgb2YgSW50ZWwgR1ZULWcgZm9yIFhlbi4KPj4+Pgo+Pj4+IEludGVs IEdWVC1nIGlzIGEgZnVsbCBHUFUgdmlydHVhbGl6YXRpb24gc29sdXRpb24gd2l0aCBtZWRpYXRl ZCBwYXNzLXRocm91Z2gsIHN0YXJ0aW5nIGZyb20gNHRoIGdlbmVyYXRpb24gSW50ZWwgQ29yZShU TSkgcHJvY2Vzc29ycyB3aXRoIEludGVsIEdyYXBoaWNzIHByb2Nlc3NvcnMuIEEgdmlydHVhbCBH UFUgaW5zdGFuY2UgaXMgbWFpbnRhaW5lZCBmb3IgZWFjaCBWTSwgd2l0aCBwYXJ0IG9mIHBlcmZv cm1hbmNlIGNyaXRpY2FsIHJlc291cmNlcyBkaXJlY3RseSBhc3NpZ25lZC4gVGhlIGNhcGFiaWxp dHkgb2YgcnVubmluZyBuYXRpdmUgZ3JhcGhpY3MgZHJpdmVyIGluc2lkZSBhIFZNLCB3aXRob3V0 IGh5cGVydmlzb3IgaW50ZXJ2ZW50aW9uIGluIHBlcmZvcm1hbmNlIGNyaXRpY2FsIHBhdGhzLCBh Y2hpZXZlcyBhIGdvb2QgYmFsYW5jZSBhbW9uZyBwZXJmb3JtYW5jZSwgZmVhdHVyZSwgYW5kIHNo YXJpbmcgY2FwYWJpbGl0eS4gWGVuIGlzIGN1cnJlbnRseSBzdXBwb3J0ZWQgb24gSW50ZWwgUHJv Y2Vzc29yIEdyYXBoaWNzIChhLmsuYS4gWGVuR1QpOyBhbmQgdGhlIGNvcmUgbG9naWMgY2FuIGJl IGVhc2lseSBwb3J0ZWQgdG8gb3RoZXIgaHlwZXJ2aXNvcnMuCj4+Pj4KPj4+Pgo+Pj4+IFJlcG9z aXRvcmllcwo+Pj4+Cj4+Pj4gICAgICBLZXJuZWw6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9p Z3Z0Zy1rZXJuZWwgKDIwMTVxMy0zLjE4LjAgYnJhbmNoKQo+Pj4+ICAgICAgWGVuOiBodHRwczov L2dpdGh1Yi5jb20vMDFvcmcvaWd2dGcteGVuICgyMDE1cTMtNC41IGJyYW5jaCkKPj4+PiAgICAg IFFlbXU6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9pZ3Z0Zy1xZW11ICh4ZW5ndF9wdWJsaWMy MDE1cTMgYnJhbmNoKQo+Pj4+Cj4+Pj4KPj4+PiBUaGlzIHVwZGF0ZSBjb25zaXN0cyBvZjoKPj4+ Pgo+Pj4+ICAgICAgLSBYZW5HVCBpcyBub3cgbWVyZ2VkIHdpdGggS1ZNR1QgaW4gdW5pZmllZCBy ZXBvc2l0b3JpZXMoa2VybmVsIGFuZCBxZW11KSwgYnV0IGN1cnJlbnRseQo+Pj4+ICAgICAgICBk aWZmZXJlbnQgYnJhbmNoZXMgZm9yIHFlbXUuICBYZW5HVCBhbmQgS1ZNR1Qgc2hhcmUgc2FtZSBp R1ZULWcgY29yZSBsb2dpYy4KPj4+PiAgICAgIC0gZml4IHN5c2ZzL2RlYnVnZnMgYWNjZXNzIHNl bGRvbSBjcmFzaCBpc3N1ZQo+Pj4+ICAgICAgLSBmaXggYSBCVUcgaW4gWGVuR1QgSS9PIGVtdWxh dGlvbiBsb2dpYwo+Pj4+ICAgICAgLSBpbXByb3ZlIDNkIHdvcmtsb2FkIHN0YWJpbGl0eQo+Pj4+ Cj4+Pj4gTmV4dCB1cGRhdGUgd2lsbCBiZSBhcm91bmQgZWFybHkgSmFuLCAyMDE2Lgo+Pj4+Cj4+ Pj4KPj4+PiBLbm93biBpc3N1ZXM6Cj4+Pj4KPj4+PiAgICAgIC0gQXQgbGVhc3QgMkdCIG1lbW9y eSBpcyBzdWdnZXN0ZWQgZm9yIFZNIHRvIHJ1biBtb3N0IDNEIHdvcmtsb2Fkcy4KPj4+PiAgICAg IC0gS2V5bWFwIG1pZ2h0IGJlIGluY29ycmVjdCBpbiBndWVzdC4gQ29uZmlnIGZpbGUgbWF5IG5l ZWQgdG8gZXhwbGljaXRseSBzcGVjaWZ5ICJrZXltYXA9J2VuLXVzJyIuIEFsdGhvdWdoIGl0IGxv b2tzIGxpa2UgdGhlIGRlZmF1bHQgdmFsdWUsIGVhcmxpZXIgd2Ugc2F3IHRoZSBwcm9ibGVtIG9m IHdyb25nIGtleW1hcCBjb2RlIGlmIGl0IGlzIG5vdCBleHBsaWNpdGx5IHNldC4KPj4+PiAgICAg IC0gV2hlbiB1c2luZyB0aHJlZSBtb25pdG9ycywgZG9pbmcgaG90cGx1ZyBiZXR3ZWVuIEd1ZXN0 IHBhdXNlL3VucGF1c2UgbWF5IG5vdCBiZSBhYmxlIHRvIGxpZ2h0dXAgYWxsIG1vbml0b3JzIGF1 dG9tYXRpY2FsbHkuIFNvbWUgc3BlY2lmaWMgbW9uaXRvciBpc3N1ZXMuCj4+Pj4gICAgICAtIENh bm5vdCBtb3ZlIG1vdXNlIHBvaW50ZXIgc21vb3RobHkgaW4gZ3Vlc3QgYnkgZGVmYXVsdCBsYXVu Y2hlZCBieSBWTkMgbW9kZS4gQ29uZmlndXJhdGlvbiBmaWxlIG5lZWQgdG8gZXhwbGljaXRseSBz cGVjaWZ5ICJ1c2I9MSIgdG8gZW5hYmxlIGEgVVNCIGJ1cywgYW5kICJ1c2JkZXZpY2U9J3RhYmxl dCciIHRvIGFkZCBwb2ludGVyIGRldmljZSB1c2luZyBhYnNvbHV0ZSBjb29yZGluYXRlcy4KPj4+ PiAgICAgIC0gUmVzdW1lIGRvbTAgZnJvbSBTMyBtYXkgY2F1c2Ugc29tZSBlcnJvciBtZXNzYWdl Lgo+Pj4+ICAgICAgLSBpOTE1IHVubG9hZC9yZWxvYWQgY2Fubm90IHdvcmtzIHdlbGwgd2l0aCBs ZXNzIHRoYW4gMyB2Y3B1IHdoZW4gdXBvd2VyZCBzZXJ2aWNlIHdhcyBydW5uaW5nCj4+Pj4gICAg ICAtIFVuaWdlbiBUcm9waWNzIHJ1bm5pbmcgaW4gbXVsdGlwbGUgZ3Vlc3RzIHdpbGwgY2F1c2Ug ZG9tMCBhbmQgZ3Vlc3RzIHRkci4KPj4+Pgo+Pj4+Cj4+Pj4gUGxlYXNlIHN1YnNjcmliZSB0aGUg bWFpbGluZyBsaXN0IHRvIHJlcG9ydCBCVUdzLCBkaXNjdXNzLCBhbmQvb3IgY29udHJpYnV0ZToK Pj4+Pgo+Pj4+ICAgICAgaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3Z0 LWcKPj4+Pgo+Pj4+Cj4+Pj4gTW9yZSBpbmZvcm1hdGlvbiBhYm91dCBJbnRlbCBHVlQtZyBiYWNr Z3JvdW5kLCBhcmNoaXRlY3R1cmUsIGV0YyBjYW4gYmUgZm91bmQgYXQobWF5IG5vdCBiZSB1cC10 by1kYXRlKToKPj4+Pgo+Pj4+ICAgICAgaHR0cHM6Ly8wMS5vcmcvaWd2dC1nCj4+Pj4gICAgICBo dHRwczovL3d3dy51c2VuaXgub3JnL2NvbmZlcmVuY2UvYXRjMTQvdGVjaG5pY2FsLXNlc3Npb25z L3ByZXNlbnRhdGlvbi90aWFuCj4+Pj4gICAgICBodHRwOi8vZXZlbnRzLmxpbnV4Zm91bmRhdGlv bi5vcmcvc2l0ZXMvZXZlbnRzL2ZpbGVzL3NsaWRlcy9YZW5HVC1YZW4lMjBTdW1taXQtdjdfMC5w ZGYKPj4+PiAgICAgIGh0dHA6Ly9ldmVudHMubGludXhmb3VuZGF0aW9uLm9yZy9zaXRlcy9ldmVu dHMvZmlsZXMvc2xpZGVzL1hlbkdULVhlbiUyMFN1bW1pdC1SRVdSSVRFJTIwM1JEJTIwdjQucGRm Cj4+Pj4gICAgICBodHRwczovLzAxLm9yZy94ZW4vYmxvZ3Mvc3JjbGFya3gvMjAxMy9ncmFwaGlj cy12aXJ0dWFsaXphdGlvbi14ZW5ndAo+Pj4+Cj4+Pj4KPj4+PiBOb3RlOgo+Pj4+Cj4+Pj4gICAg IFRoZSBYZW5HVCBwcm9qZWN0IHNob3VsZCBiZSBjb25zaWRlcmVkIGEgd29yayBpbiBwcm9ncmVz cy4gQXMgc3VjaCBpdCBpcyBub3QgYSBjb21wbGV0ZSBwcm9kdWN0IG5vciBzaG91bGQgaXQgYmUg Y29uc2lkZXJlZCBvbmUuIEV4dHJhIGNhcmUgc2hvdWxkIGJlIHRha2VuIHdoZW4gdGVzdGluZyBh bmQgY29uZmlndXJpbmcgYSBzeXN0ZW0gdG8gdXNlIHRoZSBYZW5HVCBwcm9qZWN0Lgo+Pj4+Cj4+ Pj4KPj4+PiAtLQo+Pj4+IFRoYW5rcywKPj4+PiBKaWtlCj4+Pj4KPj4+PiBPbiAwNy8wNy8yMDE1 IDEwOjQ5IEFNLCBKaWtlIFNvbmcgd3JvdGU6Cj4+Pj4+IEhpIGFsbCwKPj4+Pj4KPj4+Pj4gV2Un cmUgcGxlYXNlZCB0byBhbm5vdW5jZSBhIHB1YmxpYyB1cGRhdGUgdG8gSW50ZWwgR3JhcGhpY3Mg VmlydHVhbGl6YXRpb24gVGVjaG5vbG9neShJbnRlbCBHVlQtZywgZm9ybWVybHkga25vd24gYXMg WGVuR1QpLgo+Pj4+Pgo+Pj4+PiBJbnRlbCBHVlQtZyBpcyBhIGZ1bGwgR1BVIHZpcnR1YWxpemF0 aW9uIHNvbHV0aW9uIHdpdGggbWVkaWF0ZWQgcGFzcy10aHJvdWdoLCBzdGFydGluZyBmcm9tIDR0 aCBnZW5lcmF0aW9uIEludGVsIENvcmUoVE0pIHByb2Nlc3NvcnMgd2l0aCBJbnRlbCBHcmFwaGlj cyBwcm9jZXNzb3JzLiBBIHZpcnR1YWwgR1BVIGluc3RhbmNlIGlzIG1haW50YWluZWQgZm9yIGVh Y2ggVk0sIHdpdGggcGFydCBvZiBwZXJmb3JtYW5jZSBjcml0aWNhbCByZXNvdXJjZXMgZGlyZWN0 bHkgYXNzaWduZWQuIFRoZSBjYXBhYmlsaXR5IG9mIHJ1bm5pbmcgbmF0aXZlIGdyYXBoaWNzIGRy aXZlciBpbnNpZGUgYSBWTSwgd2l0aG91dCBoeXBlcnZpc29yIGludGVydmVudGlvbiBpbiBwZXJm b3JtYW5jZSBjcml0aWNhbCBwYXRocywgYWNoaWV2ZXMgYSBnb29kIGJhbGFuY2UgYW1vbmcgcGVy Zm9ybWFuY2UsIGZlYXR1cmUsIGFuZCBzaGFyaW5nIGNhcGFiaWxpdHkuIFhlbiBpcyBjdXJyZW50 bHkgc3VwcG9ydGVkIG9uIEludGVsIFByb2Nlc3NvciBHcmFwaGljcyAoYS5rLmEuIFhlbkdUKTsg YW5kIHRoZSBjb3JlIGxvZ2ljIGNhbiBiZSBlYXNpbHkgcG9ydGVkIHRvIG90aGVyIGh5cGVydmlz b3JzLCBmb3IgZXhhbXBsZSwgdGhlIGV4cGVyaW1lbnRhbCBjb2RlIGhhcyBiZWVuIHJlbGVhc2Vk IHRvIHN1cHBvcnQgR1ZULWcgcnVubmluZyBvbiBhIEtWTSBoeXBlcnZpc29yIChhLmsuYSBLVk1H VCkuCj4+Pj4+Cj4+Pj4+IFRpcCBvZiByZXBvc2l0b3JpZXMKPj4+Pj4gLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQo+Pj4+Pgo+Pj4+PiAgICAgICBLZXJuZWw6IDViNzM2NTNkNWNhLCBCcmFuY2g6 IG1hc3Rlci0yMDE1UTItMy4xOC4wCj4+Pj4+ICAgICAgIFFlbXU6IDJhNzViYmZmNjJjMSwgQnJh bmNoOiBtYXN0ZXIKPj4+Pj4gICAgICAgWGVuOiAzOGMzNmYwZjUxMWIxLCBCcmFuY2g6IG1hc3Rl ci0yMDE1UTItNC41Cj4+Pj4+Cj4+Pj4+IFRoaXMgdXBkYXRlIGNvbnNpc3RzIG9mOgo+Pj4+PiAg ICAgICAtIENoYW5nZSB0aW1lIGJhc2VkIHNjaGVkdWxlciB0aW1lciB0byBiZSBjb25maWd1cmFi bGUgdG8gZW5oYW5jZSBzdGFiaWxpdHkKPj4+Pj4gICAgICAgLSBGaXggc3RhYmlsaXR5IGlzc3Vl cyB0aGF0IFZNL0RvbTAgZ290IHRkciB3aGVuIGhhbmcgdXAgYXQgc29tZSBzcGVjaWZpYyBpbnN0 cnVjdGlvbiBvbiBCRFcKPj4+Pj4gICAgICAgLSBPcHRpbWl6ZSB0aGUgZW11bGF0aW9uIG9mIGVs X3N0YXR1cyByZWdpc3RlciB0byBlbmhhbmNlIHN0YWJpbGl0eQo+Pj4+PiAgICAgICAtIDJELzNE IHBlcmZvcm1hbmNlIGluIGxpbnV4IFZNcyBoYXMgYmVlbiBpbXByb3ZlZCBhYm91dCA1MCUgb24g QkRXCj4+Pj4+ICAgICAgIC0gRml4IGFibm9ybWFsIGlkbGUgcG93ZXIgY29uc3VtcHRpb24gaXNz dWUgZHVlIHRvIHdyb25nIGZvcmNld2FrZSBwb2xpY3kKPj4+Pj4gICAgICAgLSBGaXggdGRyIGlz c3VlIHdoZW4gcnVubmluZyAyRC8zRC9NZWRpYSB3b3JrbG9hZHMgaW4gV2luZG93cyBWTXMgc2lt dWx0YW5lb3VzbHkKPj4+Pj4gICAgICAgLSBLVk0gc3VwcG9ydCBpcyBzdGlsbCBpbiBhIHNlcGFy YXRlIGJyYW5jaCBhcyBwcm90b3R5cGUgd29yay4gV2UgcGxhbiB0byBpbnRlZ3JhdGUgS1ZNL1hl biBzdXBwb3J0IHRvZ2V0aGVyIGluIHRoZSBmdXR1cmUgcmVsZWFzZXMKPj4+Pj4gICAgICAgLSBO ZXh0IHVwZGF0ZSB3aWxsIGJlIGFyb3VuZCBlYXJseSBPY3QsIDIwMTUKPj4+Pj4KPj4+Pj4gTm90 aWNlIHRoYXQgdGhpcyByZWxlYXNlIGNhbiBzdXBwb3J0IGJvdGggSW50ZWwgNHRoIGdlbmVyYXRp b24gQ29yZSBDUFUoY29kZSBuYW1lOiBIYXN3ZWxsKSBhbmQgSW50ZWwgNXRoIGdlbmVyYXRpb24g Q29yZSBDUFUgKGNvZGUgbmFtZTogQnJvYWR3ZWxsKSwgd2hpbGUgdGhlIGxpbWl0YXRpb24gb2Yg dGhlIGxhdHRlciBpbmNsdWRlOgo+Pj4+PiAgICAgICAqIDNEIGNvbmZvcm1hbmNlIG1heSBoYXZl IHNvbWUgZmFpbHVyZQo+Pj4+PiAgICAgICAqIFVuZGVyIGhpZ2ggZGVtYW5kIDNEIHdvcmtsb2Fk cywgc3RhYmlsaXR5IGlzc3VlcyBhcmUgZGV0ZWN0ZWQKPj4+Pj4gICAgICAgKiBNdWx0aS1tb25p dG9yIHNjZW5hcmlvIGlzIG5vdCBmdWxseSB0ZXN0ZWQsIHdoaWxlIHNpbmdsZSBtb25pdG9yIG9m IFZHQS9IRE1JL0RQL2VEUCBzaG91bGQganVzdCB3b3JrCj4+Pj4+ICAgICAgICogSG90cGx1ZyBE UCBtYXkgY2F1c2UgYmxhY2sgc2NyZWVuIGV2ZW4gb24gbmF0aXZlIGVudmlyb25tZW50Cj4+Pj4+ Cj4+Pj4+IFdoZXJlIHRvIGdldAo+Pj4+Pgo+Pj4+PiBrZXJuZWw6IGh0dHBzOi8vZ2l0aHViLmNv bS8wMW9yZy9YZW5HVC1QcmV2aWV3LWtlcm5lbC5naXQKPj4+Pj4geGVuOiBodHRwczovL2dpdGh1 Yi5jb20vMDFvcmcvWGVuR1QtUHJldmlldy14ZW4uZ2l0Cj4+Pj4+IHFlbXU6IGh0dHBzOi8vZ2l0 aHViLmNvbS8wMW9yZy9YZW5HVC1QcmV2aWV3LXFlbXUuZ2l0Cj4+Pj4+Cj4+Pj4+Cj4+Pj4+IFdl IGhhdmUgYSBtYWlsaW5nIGxpc3QgZm9yIEdWVC1nIGRldmVsb3BtZW50LCBidWcgcmVwb3J0IGFu ZCB0ZWNobmljYWwgZGlzY3Vzc2lvbjoKPj4+Pj4KPj4+Pj4gICAgICAgaHR0cHM6Ly9saXN0cy4w MS5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3Z0LWcKPj4+Pj4KPj4+Pj4gTW9yZSBpbmZvcm1hdGlv biBhYm91dCBJbnRlbCBHVlQtZyBiYWNrZ3JvdW5kLCBhcmNoaXRlY3R1cmUsIGV0YyBjYW4gYmUg Zm91bmQgYXQ6Cj4+Pj4+Cj4+Pj4+ICAgICAgIGh0dHBzOi8vd3d3LnVzZW5peC5vcmcvY29uZmVy ZW5jZS9hdGMxNC90ZWNobmljYWwtc2Vzc2lvbnMvcHJlc2VudGF0aW9uL3RpYW4KPj4+Pj4gICAg ICAgaHR0cDovL2V2ZW50cy5saW51eGZvdW5kYXRpb24ub3JnL3NpdGVzL2V2ZW50cy9maWxlcy9z bGlkZXMvWGVuR1QtWGVuJTIwU3VtbWl0LXY3XzAucGRmCj4+Pj4+ICAgICAgIGh0dHBzOi8vMDEu b3JnL3hlbi9ibG9ncy9zcmNsYXJreC8yMDEzL2dyYXBoaWNzLXZpcnR1YWxpemF0aW9uLXhlbmd0 Cj4+Pj4+Cj4+Pj4+Cj4+Pj4+IE5vdGU6IFRoZSBYZW5HVCBwcm9qZWN0IHNob3VsZCBiZSBjb25z aWRlcmVkIGEgd29yayBpbiBwcm9ncmVzcy4gQXMgc3VjaCBpdCBpcyBub3QgYSBjb21wbGV0ZSBw cm9kdWN0IG5vciBzaG91bGQgaXQgYmUgY29uc2lkZXJlZCBvbmUuIEV4dHJhIGNhcmUgc2hvdWxk IGJlIHRha2VuIHdoZW4gdGVzdGluZyBhbmQgY29uZmlndXJpbmcgYSBzeXN0ZW0gdG8gdXNlIHRo ZSBYZW5HVCBwcm9qZWN0Lgo+Pj4+Pgo+Pj4+Pgo+Pj4+PiAtLQo+Pj4+PiBUaGFua3MsCj4+Pj4+ IEppa2UKPj4+Pj4KPj4+Pj4gT24gMDQvMTAvMjAxNSAwOToyMyBQTSwgSmlrZSBTb25nIHdyb3Rl Ogo+Pj4+Pj4gSGkgYWxsLAo+Pj4+Pj4KPj4+Pj4+IFdlJ3JlIHBsZWFzZWQgdG8gYW5ub3VuY2Ug YSBwdWJsaWMgdXBkYXRlIHRvIEludGVsIEdyYXBoaWNzIFZpcnR1YWxpemF0aW9uIFRlY2hub2xv Z3kgKEludGVsIEdWVC1nLCBmb3JtZXJseSBrbm93biBhcyBYZW5HVCkuIEludGVsIEdWVC1nIGlz IGEgY29tcGxldGUgdkdQVSBzb2x1dGlvbiB3aXRoIG1lZGlhdGVkIHBhc3MtdGhyb3VnaCwgc3Vw cG9ydGVkIHRvZGF5IG9uIDR0aCBnZW5lcmF0aW9uIEludGVsIENvcmUoVE0pIHByb2Nlc3NvcnMg d2l0aCBJbnRlbCBHcmFwaGljcyBwcm9jZXNzb3JzLiBBIHZpcnR1YWwgR1BVIGluc3RhbmNlIGlz IG1haW50YWluZWQgZm9yIGVhY2ggVk0sIHdpdGggcGFydCBvZiBwZXJmb3JtYW5jZSBjcml0aWNh bCByZXNvdXJjZXMgZGlyZWN0bHkgYXNzaWduZWQuIFRoZSBjYXBhYmlsaXR5IG9mIHJ1bm5pbmcg bmF0aXZlIGdyYXBoaWNzIGRyaXZlciBpbnNpZGUgYSBWTSwgd2l0aG91dCBoeXBlcnZpc29yIGlu dGVydmVudGlvbiBpbiBwZXJmb3JtYW5jZSBjcml0aWNhbCBwYXRocywgYWNoaWV2ZXMgYSBnb29k IGJhbGFuY2UgYW1vbmcgcGVyZm9ybWFuY2UsIGZlYXR1cmUsIGFuZCBzaGFyaW5nIGNhcGFiaWxp dHkuIFRob3VnaCB3ZSBvbmx5IHN1cHBvcnQgWGVuIG9uIEludGVsIFByb2Nlc3NvciBHcmFwaGlj cyBzbyBmYXIsIHRoZSBjb3JlIGxvZ2ljIGNhbiBiZSBlYXNpbHkgcG9ydGVkIHRvIG90aGVyIGh5 cGVydmlzb3JzLgo+Pj4+Pj4KPj4+Pj4+IFRpcCBvZiByZXBvc2l0b3JpZXMKPj4+Pj4+IC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+Pj4+Cj4+Pj4+PiAgICAgICAgICAgICBLZXJuZWw6IGEw MTFjOWY5NTNlLCBCcmFuY2g6IG1hc3Rlci0yMDE1UTEtMy4xOC4wCj4+Pj4+PiAgICAgICAgICAg ICBRZW11OiAyYTc1YmJmZjYyYzEsIEJyYW5jaDogbWFzdGVyCj4+Pj4+PiAgICAgICAgICAgICBY ZW46IDM4YzM2ZjBmNTExYjEsIEJyYW5jaDogbWFzdGVyLTIwMTVRMS00LjUKPj4+Pj4+Cj4+Pj4+ PiBTdW1tYXJ5IHRoaXMgdXBkYXRlCj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ Pj4+PiAJLSBQcmVsaW1pbmFyeSBCcm9hZHdlbGwgc3VwcG9ydC4KPj4+Pj4+IAktIGtlcm5lbCB1 cGRhdGUgZnJvbSBkcm0taW50ZWwgMy4xNy4wIHRvIGRybS1pbnRlbCAzLjE4LjAodGFnOiBkcm0t aW50ZWwtbmV4dC1maXhlcy0yMDE0LTEyLTE3LCBub3RpY2UgdGhhdCBpOTE1IGRyaXZlciBjb2Rl IGlzIG11Y2ggbmV3ZXIgdGhhbiBrZXJuZWwgc3RhYmxlIHZlcnNpb24pLgo+Pj4+Pj4gCS0gTmV4 dCB1cGRhdGUgd2lsbCBiZSBhcm91bmQgZWFybHkgSnVseSwgMjAxNS4KPj4+Pj4+IAktIEtWTSBz dXBwb3J0IGlzIHN0aWxsIGluIGEgc2VwYXJhdGUgYnJhbmNoIGFzIHByb3RvdHlwZSB3b3JrLiBX ZSBwbGFuIHRvIGludGVncmF0ZSBLVk0vWGVuIHN1cHBvcnQgdG9nZXRoZXIgaW4gZnV0dXJlIHJl bGVhc2VzLgo+Pj4+Pj4KPj4+Pj4+IFRoaXMgdXBkYXRlIGNvbnNpc3RzIG9mOgo+Pj4+Pj4gCS0g Z3Z0LWcgY29yZSBsb2dpYyBjb2RlIHdhcyBtb3ZlZCBpbnRvIGk5MTUgZHJpdmVyIGRpcmVjdG9y eS4KPj4+Pj4+IAktIEhvc3QgbWVkaWF0aW9uIGlzIHVzZWQgZm9yIGRvbTAgaTkxNSBkcml2ZXIg YWNjZXNzLCBpbnN0ZWFkIG9mIGRlLXByaXZpbGVnZWQgZG9tMC4KPj4+Pj4+IAktIFRoZSBYZW4t c3BlY2lmaWMgY29kZSB3YXMgc2VwYXJhdGVkIGZyb20gdmd0IGNvcmUgbG9naWMgaW50byBhIG5l dyBmaWxlICJkcml2ZXIveGVuL3hlbmd0LmMiLgo+Pj4+Pj4gCS0gQnJvYWR3ZWxsIGlzIHByZWxp bWluYXJpbHkgc3VwcG9ydGVkIGluIHRoaXMgcmVsZWFzZS4gVXNlcnMgY291bGQgc3RhcnQgbXVs dGlwbGUgbGludXgvd2luZG93cyA2NC1iaXQgdmlydHVhbCBtYWNoaW5lcyBzaW11bHRhbmVvdXNs eSwgYW5kIHBlcmZvcm0gZGlzcGxheSBzd2l0Y2ggYW1vbmcgdGhlbS4KPj4+Pj4+Cj4+Pj4+PiBO b3RpY2UgdGhhdCBpdCBpcyBzdGlsbCBwcmVsaW1pbmFyeSByZWxlYXNlIGZvciBCRFcsIHdoaWNo IGlzIG5vdCB5ZXQgaW4gdGhlIHNhbWUgbGV2ZWwgb2YgSFNXIHJlbGVhc2UuIERpZmZlcmVuY2Vz IGluY2x1ZGU6Cj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgKiBQb3dlci9wZXJmb3JtYW5jZSB0 dW5pbmcgb24gQkRXIGlzIG5vdCB5ZXQgZG9uZS4KPj4+Pj4+IAkgKiBTdGFiaWxpdHkgbmVlZHMg dG8gYmUgaW1wcm92ZWQuCj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgKiBObyAzMi1iaXQgZ3Vl c3QgT1Mgc3VwcG9ydC4KPj4+Pj4+ICAgICAgICAgICAgICAgICAgICAqIE11bHRpLW1vbml0b3Ig c2NlbmFyaW8gaXMgbm90IGZ1bGx5IHRlc3RlZCwgd2hpbGUgc2luZ2xlIG1vbml0b3Igb2YgVkdB L0hETUkvRFAvZURQIHNob3VsZCBqdXN0IHdvcmsuCj4+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+IFdoZXJl IHRvIGdldDoKPj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tCj4+Pj4+PiAgICAgICAgICAgICAgICAg ICAga2VyZW5sOiBodHRwczovL2dpdGh1Yi5jb20vMDFvcmcvWGVuR1QtUHJldmlldy1rZXJuZWwu Z2l0Cj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgWGVuOiBodHRwczovL2dpdGh1Yi5jb20vMDFv cmcvWGVuR1QtUHJldmlldy14ZW4uZ2l0Cj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgUWVtdTog aHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL1hlbkdULVByZXZpZXctcWVtdS5naXQKPj4+Pj4+Cj4+ Pj4+PiBQbGVhc2UgcmVmZXIgdG8gdGhlIG5ldyBzZXR1cCBndWlkZSwgd2hpY2ggcHJvdmlkZXMg c3RlcC10by1zdGVwIGRldGFpbHMgYWJvdXQgYnVpbGRpbmcvY29uZmlndXJpbmcvcnVubmluZyBJ bnRlbCBHVlQtZzoKPj4+Pj4+IAkgaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL1hlbkdULVByZXZp ZXcta2VybmVsL2Jsb2IvbWFzdGVyLTIwMTVRMS0zLjE4LjAvWGVuR1RfU2V0dXBfR3VpZGVfMjAx NVExLnBkZgo+Pj4+Pj4KPj4+Pj4+IE1vcmUgaW5mb3JtYXRpb24gYWJvdXQgSW50ZWwgR1ZULWcg YmFja2dyb3VuZCwgYXJjaGl0ZWN0dXJlLCBldGMgY2FuIGJlIGZvdW5kIGF0Ogo+Pj4+Pj4gICAg ICAgICAgICAgICAgICAgIGh0dHBzOi8vd3d3LnVzZW5peC5vcmcvY29uZmVyZW5jZS9hdGMxNC90 ZWNobmljYWwtc2Vzc2lvbnMvcHJlc2VudGF0aW9uL3RpYW4KPj4+Pj4+ICAgICAgICAgICAgICAg ICAgICBodHRwOi8vZXZlbnRzLmxpbnV4Zm91bmRhdGlvbi5vcmcvc2l0ZXMvZXZlbnRzL2ZpbGVz L3NsaWRlcy9YZW5HVC1YZW4lMjBTdW1taXQtdjdfMC5wZGYKPj4+Pj4+ICAgICAgICAgICAgICAg ICAgICBodHRwczovLzAxLm9yZy94ZW4vYmxvZ3Mvc3JjbGFya3gvMjAxMy9ncmFwaGljcy12aXJ0 dWFsaXphdGlvbi14ZW5ndAo+Pj4+Pj4KPj4+Pj4+IFRoZSBwcmV2aW91cyB1cGRhdGUgY2FuIGJl IGZvdW5kIGhlcmU6Cj4+Pj4+PiAgICAgICAgICAgICAgICAgICBodHRwOi8vbGlzdHMueGVuLm9y Zy9hcmNoaXZlcy9odG1sL3hlbi1kZXZlbC8yMDE0LTEyL21zZzAwNDc0Lmh0bWwKPj4+Pj4+Cj4+ Pj4+Pgo+Pj4+Pj4gTm90ZQo+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tCj4+Pj4+PiAJVGhlIFhlbkdU IHByb2plY3Qgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYSB3b3JrIGluIHByb2dyZXNzLCBBcyBzdWNo IGl0IGlzIG5vdCBhIGNvbXBsZXRlIHByb2R1Y3Qgbm9yIHNob3VsZCBpdCBiZSBjb25zaWRlcmVk IG9uZS4sIEV4dHJhIGNhcmUgc2hvdWxkIGJlIHRha2VuIHdoZW4gdGVzdGluZyBhbmQgY29uZmln dXJpbmcgYSBzeXN0ZW0gdG8gdXNlIHRoZSBYZW5HVCBwcm9qZWN0Lgo+Pj4+Pj4KPj4+Pj4+Cj4+ Pj4+PiAtLQo+Pj4+Pj4gVGhhbmtzLAo+Pj4+Pj4gSmlrZQo+Pj4+Pj4KPj4+Pj4+IE9uIDAxLzA5 LzIwMTUgMDQ6NTEgUE0sIEppa2UgU29uZyB3cm90ZToKPj4+Pj4+PiBIaSBhbGwsCj4+Pj4+Pj4K Pj4+Pj4+PiAgICAgICBXZSdyZSBwbGVhc2VkIHRvIGFubm91bmNlIGEgcHVibGljIHVwZGF0ZSB0 byBJbnRlbCBHcmFwaGljcyBWaXJ0dWFsaXphdGlvbiBUZWNobm9sb2d5IChJbnRlbCBHVlQtZywg Zm9ybWVybHkga25vd24gYXMgWGVuR1QpLiBJbnRlbCBHVlQtZyBpcyBhIGNvbXBsZXRlIHZHUFUg c29sdXRpb24gd2l0aCBtZWRpYXRlZCBwYXNzLXRocm91Z2gsIHN1cHBvcnRlZCB0b2RheSBvbiA0 dGggZ2VuZXJhdGlvbiBJbnRlbCBDb3JlKFRNKSBwcm9jZXNzb3JzIHdpdGggSW50ZWwgR3JhcGhp Y3MgcHJvY2Vzc29ycy4gQSB2aXJ0dWFsIEdQVSBpbnN0YW5jZSBpcyBtYWludGFpbmVkIGZvciBl YWNoIFZNLCB3aXRoIHBhcnQgb2YgcGVyZm9ybWFuY2UgY3JpdGljYWwgcmVzb3VyY2VzIGRpcmVj dGx5IGFzc2lnbmVkLiBUaGUgY2FwYWJpbGl0eSBvZiBydW5uaW5nIG5hdGl2ZSBncmFwaGljcyBk cml2ZXIgaW5zaWRlIGEgVk0sIHdpdGhvdXQgaHlwZXJ2aXNvciBpbnRlcnZlbnRpb24gaW4gcGVy Zm9ybWFuY2UgY3JpdGljYWwgcGF0aHMsIGFjaGlldmVzIGEgZ29vZCBiYWxhbmNlIGFtb25nIHBl cmZvcm1hbmNlLCBmZWF0dXJlLCBhbmQgc2hhcmluZyBjYXBhYmlsaXR5LiBUaG91Z2ggd2Ugb25s eSBzdXBwb3J0IFhlbiBvbiBJbnRlbCBQcm9jZXNzb3IgR3JhcGhpY3Mgc28gZmFyLCB0aGUgY29y ZSBsb2dpYyBjYW4gYmUgZWFzaWx5IHBvcnRlZCB0byBvdGhlciBoeXBlcnZpc29ycy4gICBUaGUg WGVuR1QgcHJvamVjdCBzaG91bGQgYmUgY29uc2lkZXJlZCBhIHdvcmsgaW4gcHJvZ3Jlc3MsIEFz IHN1Y2ggaXQgaXMgbm90IGEgY29tcGxldGUgcHJvZHVjdCBub3Igc2hvdWxkIGl0IGJlIGNvbnNp ZGVyZWQgb25lLiwgRXh0cmEgY2FyZSBzaG91bGQgYmUgdGFrZW4gd2hlbiB0ZXN0aW5nIGFuZCBj b25maWd1cmluZyBhIHN5c3RlbSB0byB1c2UgdGhlIFhlbkdUIHByb2plY3QuCj4+Pj4+Pj4KPj4+ Pj4+PiBUaGUgbmV3cyBvZiB0aGlzIHVwZGF0ZToKPj4+Pj4+Pgo+Pj4+Pj4+IAktIGtlcm5lbCB1 cGRhdGUgZnJvbSAzLjE0LjEgdG8gZHJtLWludGVsIDMuMTcuMC4KPj4+Pj4+PiAJLSBXZSBwbGFu IHRvIGludGVncmF0ZSBJbnRlbCBHVlQtZyBhcyBhIGZlYXR1cmUgaW4gaTkxNSBkcml2ZXIuIFRo YXQgZWZmb3J0IGlzIHN0aWxsIHVuZGVyIHJldmlldywgbm90IGluY2x1ZGVkIGluIHRoaXMgdXBk YXRlIHlldC4KPj4+Pj4+PiAJLSBOZXh0IHVwZGF0ZSB3aWxsIGJlIGFyb3VuZCBlYXJseSBBcHIs IDIwMTUuCj4+Pj4+Pj4KPj4+Pj4+PiBUaGlzIHVwZGF0ZSBjb25zaXN0cyBvZjoKPj4+Pj4+Pgo+ Pj4+Pj4+IAktIEluY2x1ZGluZyBzb21lIGJ1ZyBmaXhlcyBhbmQgc3RhYmlsaXR5IGVuaGFuY2Vt ZW50Lgo+Pj4+Pj4+IAktIE1ha2luZyBYZW5HVCBkZXZpY2UgbW9kZWwgdG8gYmUgYXdhcmUgb2Yg QnJvYWR3ZWxsLiBJbiB0aGlzIHZlcnNpb24gQkRXIGlzIG5vdCB5ZXQgZnVuY3Rpb25pbmcuCj4+ Pj4+Pj4gCS0gQXZhaWxhYmxlIEZlbmNlIHJlZ2lzdGVycyBudW1iZXIgaXMgY2hhbmdlZCB0byAz MiBmcm9tIDE2IHRvIGFsaWduIHdpdGggSFNXIGhhcmR3YXJlLgo+Pj4+Pj4+IAktIE5ldyBjYXNj YWRlIGludGVycnVwdCBmcmFtZXdvcmsgZm9yIHN1cHBvcnRpbmcgaW50ZXJydXB0IHZpcnR1YWxp emF0aW9uIG9uIGJvdGggSGFzd2VsbCBhbmQgQnJvYWR3ZWxsLgo+Pj4+Pj4+IAktIEFkZCBiYWNr IHRoZSBnZW1fdmd0YnVmZmVyLiBUaGUgcHJldmlvdXMgcmVsZWFzZSBkaWQgbm90IGJ1aWxkIHRo YXQgbW9kdWxlIGZvciAzLjE0IGtlcm5lbC4gSW4gdGhpcyByZWxlYXNlLCB0aGUgbW9kdWxlIGlz IGJhY2sgYW5kIHJlYmFzZWQgdG8gMy4xNy4KPj4+Pj4+PiAJLSBFbmFibGUgdGhlIGlycSBiYXNl ZCBjb250ZXh0IHN3aXRjaCBpbiB2Z3QgZHJpdmVyLCB3aGljaCB3aWxsIGhlbHAgcmVkdWNlIHRo ZSBjcHUgdXRpbGl6YXRpb24gd2hpbGUgZG9pbmcgY29udGV4dCBzd2l0Y2gsIGl0IGlzIGVuYWJs ZWQgYnkgZGVmYXVsdCwgYW5kIGNhbiBiZSB0dXJuIG9mZiBieSBrZXJuZWwgZmxhZyBpcnFfYmFz ZWRfY3R4X3N3aXRjaC4KPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4gUGxlYXNlIHJlZmVyIHRvIHRo ZSBuZXcgc2V0dXAgZ3VpZGUsIHdoaWNoIHByb3ZpZGVzIHN0ZXAtdG8tc3RlcCBkZXRhaWxzIGFi b3V0IGJ1aWxkaW5nL2NvbmZpZ3VyaW5nL3J1bm5pbmcgSW50ZWwgR1ZULWc6Cj4+Pj4+Pj4KPj4+ Pj4+PiAJaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL1hlbkdULVByZXZpZXcta2VybmVsL2Jsb2Iv bWFzdGVyL1hlbkdUX1NldHVwX0d1aWRlLnBkZgo+Pj4+Pj4+Cj4+Pj4+Pj4gVGhlIG5ldyBzb3Vy Y2UgY29kZXMgYXJlIGF2YWlsYWJsZSBhdCB0aGUgdXBkYXRlZCBnaXRodWIgcmVwb3M6Cj4+Pj4+ Pj4KPj4+Pj4+PiAJTGludXg6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9YZW5HVC1QcmV2aWV3 LWtlcm5lbC5naXQKPj4+Pj4+PiAJWGVuOiBodHRwczovL2dpdGh1Yi5jb20vMDFvcmcvWGVuR1Qt UHJldmlldy14ZW4uZ2l0Cj4+Pj4+Pj4gCVFlbXU6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9Y ZW5HVC1QcmV2aWV3LXFlbXUuZ2l0Cj4+Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+IE1vcmUgaW5mb3Jt YXRpb24gYWJvdXQgSW50ZWwgR1ZULWcgYmFja2dyb3VuZCwgYXJjaGl0ZWN0dXJlLCBldGMgY2Fu IGJlIGZvdW5kIGF0Ogo+Pj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+PiAJaHR0cHM6Ly93d3cudXNlbml4 Lm9yZy9jb25mZXJlbmNlL2F0YzE0L3RlY2huaWNhbC1zZXNzaW9ucy9wcmVzZW50YXRpb24vdGlh bgo+Pj4+Pj4+IAlodHRwOi8vZXZlbnRzLmxpbnV4Zm91bmRhdGlvbi5vcmcvc2l0ZXMvZXZlbnRz L2ZpbGVzL3NsaWRlcy9YZW5HVC1YZW4lMjBTdW1taXQtdjdfMC5wZGYKPj4+Pj4+PiAJaHR0cHM6 Ly8wMS5vcmcveGVuL2Jsb2dzL3NyY2xhcmt4LzIwMTMvZ3JhcGhpY3MtdmlydHVhbGl6YXRpb24t eGVuZ3QKPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+PiBUaGUgcHJldmlvdXMgdXBkYXRl IGNhbiBiZSBmb3VuZCBoZXJlOgo+Pj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+PiAJaHR0cDovL2xpc3Rz Lnhlbi5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwvMjAxNC0xMi9tc2cwMDQ3NC5odG1sCj4+ Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4gQXBwcmVjaWF0ZSB5b3VyIGNvbW1lbnRzIQo+ Pj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+IC0tCj4+Pj4+Pj4gVGhhbmtzLAo+Pj4+Pj4+ IEppa2UKPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4gT24gMTIvMDQvMjAxNCAxMDo0NSBBTSwgSmlr ZSBTb25nIHdyb3RlOgo+Pj4+Pj4+PiBIaSBhbGwsCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IFdlJ3JlIHBs ZWFzZWQgdG8gYW5ub3VuY2UgYSBwdWJsaWMgcmVsZWFzZSB0byBJbnRlbCBHcmFwaGljcyBWaXJ0 dWFsaXphdGlvbiBUZWNobm9sb2d5IChJbnRlbCBHVlQtZywgZm9ybWVybHkga25vd24gYXMgWGVu R1QpLiBJbnRlbCBHVlQtZyBpcyBhIGNvbXBsZXRlIHZHUFUgc29sdXRpb24gd2l0aCBtZWRpYXRl ZCBwYXNzLXRocm91Z2gsIHN1cHBvcnRlZCB0b2RheSBvbiA0dGggZ2VuZXJhdGlvbiBJbnRlbCBD b3JlKFRNKSBwcm9jZXNzb3JzIHdpdGggSW50ZWwgR3JhcGhpY3MgcHJvY2Vzc29ycy4gQSB2aXJ0 dWFsIEdQVSBpbnN0YW5jZSBpcyBtYWludGFpbmVkIGZvciBlYWNoIFZNLCB3aXRoIHBhcnQgb2Yg cGVyZm9ybWFuY2UgY3JpdGljYWwgcmVzb3VyY2VzIGRpcmVjdGx5IGFzc2lnbmVkLiBUaGUgY2Fw YWJpbGl0eSBvZiBydW5uaW5nIG5hdGl2ZSBncmFwaGljcyBkcml2ZXIgaW5zaWRlIGEgVk0sIHdp dGhvdXQgaHlwZXJ2aXNvciBpbnRlcnZlbnRpb24gaW4gcGVyZm9ybWFuY2UgY3JpdGljYWwgcGF0 aHMsIGFjaGlldmVzIGEgZ29vZCBiYWxhbmNlIGFtb25nIHBlcmZvcm1hbmNlLCBmZWF0dXJlLCBh bmQgc2hhcmluZyBjYXBhYmlsaXR5LiBUaG91Z2ggd2Ugb25seSBzdXBwb3J0IFhlbiBvbiBJbnRl bCBQcm9jZXNzb3IgR3JhcGhpY3Mgc28gZmFyLCB0aGUgY29yZSBsb2dpYyBjYW4gYmUgZWFzaWx5 IHBvcnRlZCB0byBvdGhlciBoeXBlcnZpc29ycy4KPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4g VGhlIG5ld3Mgb2YgdGhpcyB1cGRhdGU6Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IAktIGtl cm5lbCB1cGRhdGUgZnJvbSAzLjExLjYgdG8gMy4xNC4xCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IAktIFdl IHBsYW4gdG8gaW50ZWdyYXRlIEludGVsIEdWVC1nIGFzIGEgZmVhdHVyZSBpbiBpOTE1IGRyaXZl ci4gVGhhdCBlZmZvcnQgaXMgc3RpbGwgdW5kZXIgcmV2aWV3LCBub3QgaW5jbHVkZWQgaW4gdGhp cyB1cGRhdGUgeWV0Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IAktIE5leHQgdXBkYXRlIHdpbGwgYmUgYXJv dW5kIGVhcmx5IEphbiwgMjAxNQo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBUaGlzIHVwZGF0 ZSBjb25zaXN0cyBvZjoKPj4+Pj4+Pj4KPj4+Pj4+Pj4gCS0gV2luZG93cyBIVk0gc3VwcG9ydCB3 aXRoIGRyaXZlciB2ZXJzaW9uIDE1LjMzLjM5MTAKPj4+Pj4+Pj4KPj4+Pj4+Pj4gCS0gU3RhYmls aXR5IGZpeGVzLCBlLmcuIHN0YWJpbGl6ZSBHUFUsIHRoZSBHUFUgaGFuZyBvY2N1cnJlbmNlIHJh dGUgYmVjb21lcyByYXJlIG5vdwo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAJLSBIYXJkd2FyZSBNZWRpYSBB Y2NlbGVyYXRpb24gZm9yIERlY29kaW5nL0VuY29kaW5nL1RyYW5zY29kaW5nLCBWQzEsIEgyNjQg ZXRjLiBmb3JtYXQgc3VwcG9ydGluZwo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAJLSBEaXNwbGF5IGVuaGFu Y2VtZW50cywgZS5nLiBEUCB0eXBlIGlzIHN1cHBvcnRlZCBmb3IgdmlydHVhbCBQT1JUCj4+Pj4+ Pj4+Cj4+Pj4+Pj4+IAktIERpc3BsYXkgcG9ydCBjYXBhYmlsaXR5IHZpcnR1YWxpemF0aW9uOiB3 aXRoIHRoaXMgZmVhdHVyZSwgZG9tMCBtYW5hZ2VyIGNvdWxkIGZyZWVseSBhc3NpZ24gdmlydHVh bCBEREkgcG9ydHMgdG8gVk0sIG5vdCBuZWNlc3NhcnkgdG8gY2hlY2sgd2hldGhlciB0aGUgY29y cmVzcG9uZGluZyBwaHlzaWNhbCBEREkgcG9ydHMgYXJlIGF2YWlsYWJsZQo+Pj4+Pj4+Pgo+Pj4+ Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBQbGVhc2UgcmVmZXIgdG8gdGhlIG5ldyBzZXR1cCBndWlk ZSwgd2hpY2ggcHJvdmlkZXMgc3RlcC10by1zdGVwIGRldGFpbHMgYWJvdXQgYnVpbGRpbmcvY29u ZmlndXJpbmcvcnVubmluZyBJbnRlbCBHVlQtZzoKPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4g CWh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9YZW5HVC1QcmV2aWV3LWtlcm5lbC9ibG9iL21hc3Rl ci9YZW5HVF9TZXR1cF9HdWlkZS5wZGYKPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+ Pj4gVGhlIG5ldyBzb3VyY2UgY29kZXMgYXJlIGF2YWlsYWJsZSBhdCB0aGUgdXBkYXRlZCBnaXRo dWIgcmVwb3M6Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IAlMaW51eDogaHR0cHM6Ly9naXRo dWIuY29tLzAxb3JnL1hlbkdULVByZXZpZXcta2VybmVsLmdpdAo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAJ WGVuOiBodHRwczovL2dpdGh1Yi5jb20vMDFvcmcvWGVuR1QtUHJldmlldy14ZW4uZ2l0Cj4+Pj4+ Pj4+Cj4+Pj4+Pj4+IAlRZW11OiBodHRwczovL2dpdGh1Yi5jb20vMDFvcmcvWGVuR1QtUHJldmll dy1xZW11LmdpdAo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBNb3JlIGluZm9ybWF0aW9uIGFi b3V0IEludGVsIEdWVC1nIGJhY2tncm91bmQsIGFyY2hpdGVjdHVyZSwgZXRjIGNhbiBiZSBmb3Vu ZCBhdDoKPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gCWh0dHBzOi8vd3d3LnVzZW5peC5vcmcv Y29uZmVyZW5jZS9hdGMxNC90ZWNobmljYWwtc2Vzc2lvbnMvcHJlc2VudGF0aW9uL3RpYW4KPj4+ Pj4+Pj4KPj4+Pj4+Pj4gCWh0dHA6Ly9ldmVudHMubGludXhmb3VuZGF0aW9uLm9yZy9zaXRlcy9l dmVudHMvZmlsZXMvc2xpZGVzL1hlbkdULVhlbiUyMFN1bW1pdC12N18wLnBkZgo+Pj4+Pj4+Pgo+ Pj4+Pj4+PiAJaHR0cHM6Ly8wMS5vcmcveGVuL2Jsb2dzL3NyY2xhcmt4LzIwMTMvZ3JhcGhpY3Mt dmlydHVhbGl6YXRpb24teGVuZ3QKPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gVGhlIHByZXZp b3VzIHVwZGF0ZSBjYW4gYmUgZm91bmQgaGVyZToKPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4g CWh0dHA6Ly9saXN0cy54ZW4ub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMTQtMDcvbXNn MDMyNDguaHRtbAo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBBcHByZWNpYXRlIHlvdXIgY29t bWVudHMhCj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IC0tCj4+Pj4+Pj4+IFRoYW5rcywKPj4+ Pj4+Pj4gSmlrZQo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBPbiAwNy8yNS8yMDE0IDA0OjMxIFBNLCBKaWtl IFNvbmcgd3JvdGU6Cj4+Pj4+Pj4+PiBIaSBhbGwsCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gV2UncmUg cGxlYXNlZCB0byBhbm5vdW5jZSBhbiB1cGRhdGUgdG8gSW50ZWwgR3JhcGhpY3MgVmlydHVhbGl6 YXRpb24gVGVjaG5vbG9neSAoSW50ZWwgR1ZULWcsIGZvcm1lcmx5IGtub3duIGFzIFhlbkdUKS4g SW50ZWwgR1ZULWcgaXMgYSBjb21wbGV0ZSB2R1BVIHNvbHV0aW9uIHdpdGggbWVkaWF0ZWQgcGFz cy10aHJvdWdoLCBzdXBwb3J0ZWQgdG9kYXkgb24gNHRoIGdlbmVyYXRpb24gSW50ZWwgQ29yZShU TSkgcHJvY2Vzc29ycyB3aXRoIEludGVsIEdyYXBoaWNzIHByb2Nlc3NvcnMuIEEgdmlydHVhbCBH UFUgaW5zdGFuY2UgaXMgbWFpbnRhaW5lZCBmb3IgZWFjaCBWTSwgd2l0aCBwYXJ0IG9mIHBlcmZv cm1hbmNlIGNyaXRpY2FsIHJlc291cmNlcyBkaXJlY3RseSBhc3NpZ25lZC4gVGhlIGNhcGFiaWxp dHkgb2YgcnVubmluZyBuYXRpdmUgZ3JhcGhpY3MgZHJpdmVyIGluc2lkZSBhIFZNLCB3aXRob3V0 IGh5cGVydmlzb3IgaW50ZXJ2ZW50aW9uIGluIHBlcmZvcm1hbmNlIGNyaXRpY2FsIHBhdGhzLCBh Y2hpZXZlcyBhIGdvb2QgYmFsYW5jZSBhbW9uZyBwZXJmb3JtYW5jZSwgZmVhdHVyZSwgYW5kIHNo YXJpbmcgY2FwYWJpbGl0eS4gVGhvdWdoIHdlIG9ubHkgc3VwcG9ydCBYZW4gb24gSW50ZWwgUHJv Y2Vzc29yIEdyYXBoaWNzIHNvIGZhciwgdGhlIGNvcmUgbG9naWMgY2FuIGJlIGVhc2lseSBwb3J0 ZWQgdG8gb3RoZXIgaHlwZXJ2aXNvcnMuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gVGhlIG5ld3Mgb2Yg dGhpcyB1cGRhdGU6Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gCS0gUHJvamVjdCBjb2RlIG5hbWUgaXMg IlhlbkdUIiwgbm93IG9mZmljaWFsIG5hbWUgaXMgSW50ZWwgR3JhcGhpY3MgVmlydHVhbGl6YXRp b24gVGVjaG5vbG9neSAoSW50ZWwgR1ZULWcpCj4+Pj4+Pj4+PiAJLSBDdXJyZW50bHkgSW50ZWwg R1ZULWcgc3VwcG9ydHMgSW50ZWwgUHJvY2Vzc29yIEdyYXBoaWNzIGJ1aWx0IGludG8gNHRoIGdl bmVyYXRpb24gSW50ZWwgQ29yZSBwcm9jZXNzb3JzIC0gSGFzd2VsbCBwbGF0Zm9ybQo+Pj4+Pj4+ Pj4gCS0gTW92aW5nIGZvcndhcmQsIFhlbkdUIHdpbGwgY2hhbmdlIHRvIHF1YXJ0ZXJseSByZWxl YXNlIGNhZGVuY2UuIE5leHQgdXBkYXRlIHdpbGwgYmUgYXJvdW5kIGVhcmx5IE9jdG9iZXIsIDIw MTQuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gVGhpcyB1cGRhdGUgY29uc2lzdHMgb2Y6Cj4+Pj4+Pj4+ Pgo+Pj4+Pj4+Pj4gCS0gU3RhYmlsaXR5IGZpeGVzLCBlLmcuIHN0YWJsZSBEUCBzdXBwb3J0Cj4+ Pj4+Pj4+PiAJLSBEaXNwbGF5IGVuaGFuY2VtZW50cywgZS5nLiB2aXJ0dWFsIG1vbml0b3Igc3Vw cG9ydC4gVXNlcnMgY2FuIGRlZmluZSBhIHZpcnR1YWwgbW9uaXRvciB0eXBlIHdpdGggY3VzdG9t aXplZCBFRElEIGZvciB2aXJ0dWFsIG1hY2hpbmVzLCBub3QgbmVjZXNzYXJpbHkgdGhlIHNhbWUg YXMgcGh5c2ljYWwgbW9uaXRvcnMuCj4+Pj4+Pj4+PiAJLSBJbXByb3ZlZCBzdXBwb3J0IGZvciBH UFUgcmVjb3ZlcnkKPj4+Pj4+Pj4+IAktIEV4cGVyaW1lbnRhbCBXaW5kb3dzIEhWTSBzdXBwb3J0 LiBUbyBkb3dubG9hZCB0aGUgZXhwZXJpbWVudGFsIHZlcnNpb24sIHNlZSBzZXR1cCBndWlkZSBm b3IgZGV0YWlscwo+Pj4+Pj4+Pj4gCS0gRXhwZXJpbWVudGFsIEhhcmR3YXJlIE1lZGlhIEFjY2Vs ZXJhdGlvbiBmb3IgZGVjb2RpbmcuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFBsZWFz ZSByZWZlciB0byB0aGUgbmV3IHNldHVwIGd1aWRlLCB3aGljaCBwcm92aWRlcyBzdGVwLXRvLXN0 ZXAgZGV0YWlscyBhYm91dCBidWlsZGluZy9jb25maWd1cmluZy9ydW5uaW5nIEludGVsIEdWVC1n Ogo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IAlodHRwczovL2dpdGh1Yi5jb20vMDFvcmcvWGVuR1QtUHJl dmlldy1rZXJuZWwvYmxvYi9tYXN0ZXIvWGVuR1RfU2V0dXBfR3VpZGUucGRmCj4+Pj4+Pj4+Pgo+ Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFRoZSBuZXcgc291cmNlIGNvZGVzIGFyZSBhdmFpbGFibGUgYXQg dGhlIHVwZGF0ZWQgZ2l0aHViIHJlcG9zOgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IAlMaW51eDogaHR0 cHM6Ly9naXRodWIuY29tLzAxb3JnL1hlbkdULVByZXZpZXcta2VybmVsLmdpdAo+Pj4+Pj4+Pj4g CVhlbjogaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL1hlbkdULVByZXZpZXcteGVuLmdpdAo+Pj4+ Pj4+Pj4gCVFlbXU6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9YZW5HVC1QcmV2aWV3LXFlbXUu Z2l0Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IE1vcmUgaW5mb3JtYXRpb24gYWJvdXQg SW50ZWwgR1ZULWcgYmFja2dyb3VuZCwgYXJjaGl0ZWN0dXJlLCBldGMgY2FuIGJlIGZvdW5kIGF0 Ogo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IAlodHRwczovL3d3dy51c2VuaXgub3JnL2NvbmZlcmVuY2Uv YXRjMTQvdGVjaG5pY2FsLXNlc3Npb25zL3ByZXNlbnRhdGlvbi90aWFuCj4+Pj4+Pj4+PiAJaHR0 cDovL2V2ZW50cy5saW51eGZvdW5kYXRpb24ub3JnL3NpdGVzL2V2ZW50cy9maWxlcy9zbGlkZXMv WGVuR1QtWGVuJTIwU3VtbWl0LXY3XzAucGRmCj4+Pj4+Pj4+PiAJaHR0cHM6Ly8wMS5vcmcveGVu L2Jsb2dzL3NyY2xhcmt4LzIwMTMvZ3JhcGhpY3MtdmlydHVhbGl6YXRpb24teGVuZ3QKPj4+Pj4+ Pj4+Cj4+Pj4+Pj4+PiBUaGUgcHJldmlvdXMgdXBkYXRlIGNhbiBiZSBmb3VuZCBoZXJlOgo+Pj4+ Pj4+Pj4KPj4+Pj4+Pj4+IAlodHRwOi8vbGlzdHMueGVuLm9yZy9hcmNoaXZlcy9odG1sL3hlbi1k ZXZlbC8yMDE0LTAyL21zZzAxODQ4Lmh0bWwKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBBcHByZWNpYXRl IHlvdXIgY29tbWVudHMhCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+ Pj4+Pj4+Pj4gLS0KPj4+Pj4+Pj4+IFRoYW5rcywKPj4+Pj4+Pj4+IEppa2UKPj4+Pj4+Pj4+Cl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=