From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jike Song Subject: Re: [Announcement] 2016-Q1 release of XenGT - a Mediated Graphics Passthrough Solution from Intel Date: Thu, 28 Apr 2016 13:29:03 +0800 Message-ID: <57219F9F.9070602@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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 1EDDC6EC1C for ; Thu, 28 Apr 2016 05:29:22 +0000 (UTC) In-Reply-To: <56A861D3.5090007@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 ClJlcG9zaXRvcmllcwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpLZXJuZWw6IGh0dHBzOi8v Z2l0aHViLmNvbS8wMW9yZy9pZ3Z0Zy1rZXJuZWwgKDIwMTZxMS00LjMuMCBicmFuY2gpClhlbjog aHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL2lndnRnLXhlbiAoMjAxNnExLTQuNiBicmFuY2gpClFl bXU6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9pZ3Z0Zy1xZW11ICgyMDE2cTEtMi4zLjAgYnJh bmNoKQoKVGhpcyB1cGRhdGUgY29uc2lzdHMgb2Y6Ci0gICAgV2luZG93cyAxMCBndWVzdCBpcyBw cmVsaW1pbmFyaWx5IHN1cHBvcnRlZCBpbiB0aGlzIHJlbGVhc2UuIAotICAgIEltcGxlbWVudGVk IHZndGJ1ZmZlcihJbmRpcmVjdCBkaXNwbGF5KSBmZWF0dXJlIG9uIFNLTCBwbGF0Zm9ybS4KLSAg ICBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IHN1cHBvcnQgNXRoIGdlbmVyYXRpb24gKEJyb2Fkd2Vs bCkKLSAgICBJbmNyZWFzZWQgVkdUIHN0YWJpbGl0eSBvbiBTS0wgcGxhdGZvcm0KLSAgICBLZXJu ZWwgdXBkYXRlZCBmcm9tIGRybS1pbnRlbCA0LjIuMCB0byBkcm0taW50ZWwgNC4zLjAKLSAgICBY ZW4gdXBkYXRlZCBmcm9tIFhlbiA0LjUuMCB0byBYZW4gNC42LjAKLSAgICBRZW11IHVwZGF0ZWQg ZnJvbSAxLjYgdG8gMi4zCgpLbm93biBpc3N1ZXM6Ci0gICAgQXQgbGVhc3QgMkdCIG1lbW9yeSBp cyBzdWdnZXN0ZWQgZm9yIFZNKHdpbjctMzIvNjQsIHdpbjguMSA2NCkgdG8gcnVuIG1vc3QgM0Qg d29ya2xvYWRzLgotICAgIFdpbmRvd3MgNyBHRlggZHJpdmVyIHVwZ3JhZGluZyBvbmx5IHdvcmtz IG9uIFNhZmUgbW9kZS4KLSAgICBTb21lIG1lZGlhIGRlY29kZSBjYW4ndCB3b3JrIHdlbGwgKHdp bGwgYmUgcmVzb2x2ZWQgaW4gdGhlIG5leHQgdmVyc2lvbiBXaW5kb3dzIEdGWCBkcml2ZXIpLiAK LSAgICBXaW5kb3dzOCBhbmQgbGF0ZXIgV2luZG93cyBmYXN0IGJvb3QgaXMgbm90IHN1cHBvcnRl ZCwgd2hvc2Ugd29ya2Fyb3VuZCBpcyB0byBkaXNhYmxlIHBvd2VyIFMzL1M0IGluIEhWTSBmaWxl IGJ5IGFkZGluZyAiYWNwaV9zMz0wLCBhY3BpX3M0PTAiCi0gICAgU29tZXRpbWVzIHdoZW4gZG9t MCBhbmQgZ3Vlc3QgaGF2ZSBoZWF2eSB3b3JrbG9hZCwgaTkxNSBpbiBkb20wIHdpbGwgdHJpZ2dl ciBhIGZhbHNlIGdyYXBoaWNzIHJlc2V0LiBUaGUgd29ya2Fyb3VuZCBpcyB0byBkaXNhYmxlIGRv bTAgaGFuZ2NoZWNrIGluIGRvbTAgZ3J1YiBmaWxlIGJ5IGFkZGluZyAiaTkxNS5lbmFibGVfaGFu Z2NoZWNrPTAiCgpOZXh0IHVwZGF0ZSB3aWxsIGJlIGFyb3VuZCBlYXJseSBKdWx5LCAyMDE2LgoK R1ZULWcgcHJvamVjdCBwb3J0YWw6CglodHRwczovLzAxLm9yZy9pZ3Z0LWcKClBsZWFzZSBzdWJz Y3JpYmUgdGhlIG1haWxpbmcgbGlzdDoKCWh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlz dGluZm8vaWd2dC1nCgoKTW9yZSBpbmZvcm1hdGlvbiBhYm91dCBiYWNrZ3JvdW5kLCBhcmNoaXRl Y3R1cmUgYW5kIG90aGVycyBhYm91dCBJbnRlbCBHVlQtZywgY2FuIGJlIGZvdW5kIGF0OgoKICAg IGh0dHBzOi8vMDEub3JnL2lndnQtZwogICAgaHR0cHM6Ly93d3cudXNlbml4Lm9yZy9jb25mZXJl bmNlL2F0YzE0L3RlY2huaWNhbC1zZXNzaW9ucy9wcmVzZW50YXRpb24vdGlhbgogICAgaHR0cDov L2V2ZW50cy5saW51eGZvdW5kYXRpb24ub3JnL3NpdGVzL2V2ZW50cy9maWxlcy9zbGlkZXMvWGVu R1QtWGVuJTIwU3VtbWl0LXY3XzAucGRmCiAgICBodHRwOi8vZXZlbnRzLmxpbnV4Zm91bmRhdGlv bi5vcmcvc2l0ZXMvZXZlbnRzL2ZpbGVzL3NsaWRlcy9YZW5HVC1YZW4lMjBTdW1taXQtUkVXUklU RSUyMDNSRCUyMHY0LnBkZgogICAgaHR0cHM6Ly8wMS5vcmcveGVuL2Jsb2dzL3NyY2xhcmt4LzIw MTMvZ3JhcGhpY3MtdmlydHVhbGl6YXRpb24teGVuZ3QKCgpOb3RlOiBUaGUgWGVuR1QgcHJvamVj dCBzaG91bGQgYmUgY29uc2lkZXJlZCBhIHdvcmsgaW4gcHJvZ3Jlc3MuIEFzIHN1Y2ggaXQgaXMg bm90IGEgY29tcGxldGUgcHJvZHVjdCBub3Igc2hvdWxkIGl0IGJlIGNvbnNpZGVyZWQgb25lLiBF eHRyYSBjYXJlIHNob3VsZCBiZSB0YWtlbiB3aGVuIHRlc3RpbmcgYW5kIGNvbmZpZ3VyaW5nIGEg c3lzdGVtIHRvIHVzZSB0aGUgWGVuR1QgcHJvamVjdC4KCgotLQpUaGFua3MsCkppa2UKCk9uIDAx LzI3LzIwMTYgMDI6MjEgUE0sIEppa2UgU29uZyB3cm90ZToKPiBIaSBhbGwsCj4gCj4gV2UgYXJl IHBsZWFzZWQgdG8gYW5ub3VuY2UgYW5vdGhlciB1cGRhdGUgb2YgSW50ZWwgR1ZULWcgZm9yIFhl bi4KPiAKPiBJbnRlbCBHVlQtZyBpcyBhIGZ1bGwgR1BVIHZpcnR1YWxpemF0aW9uIHNvbHV0aW9u IHdpdGggbWVkaWF0ZWQgcGFzcy10aHJvdWdoLCBzdGFydGluZyBmcm9tIDR0aCBnZW5lcmF0aW9u IEludGVsIENvcmUoVE0pIHByb2Nlc3NvcnMgd2l0aCBJbnRlbCBHcmFwaGljcyBwcm9jZXNzb3Jz LiBBIHZpcnR1YWwgR1BVIGluc3RhbmNlIGlzIG1haW50YWluZWQgZm9yIGVhY2ggVk0sIHdpdGgg cGFydCBvZiBwZXJmb3JtYW5jZSBjcml0aWNhbCByZXNvdXJjZXMgZGlyZWN0bHkgYXNzaWduZWQu IFRoZSBjYXBhYmlsaXR5IG9mIHJ1bm5pbmcgbmF0aXZlIGdyYXBoaWNzIGRyaXZlciBpbnNpZGUg YSBWTSwgd2l0aG91dCBoeXBlcnZpc29yIGludGVydmVudGlvbiBpbiBwZXJmb3JtYW5jZSBjcml0 aWNhbCBwYXRocywgYWNoaWV2ZXMgYSBnb29kIGJhbGFuY2UgYW1vbmcgcGVyZm9ybWFuY2UsIGZl YXR1cmUsIGFuZCBzaGFyaW5nIGNhcGFiaWxpdHkuIFhlbiBpcyBjdXJyZW50bHkgc3VwcG9ydGVk IG9uIEludGVsIFByb2Nlc3NvciBHcmFwaGljcyAoYS5rLmEuIFhlbkdUKS4KPiAKPiBSZXBvc2l0 b3JpZXMKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gCj4gS2VybmVsOiBodHRwczovL2dp dGh1Yi5jb20vMDFvcmcvaWd2dGcta2VybmVsICgyMDE1cTQtNC4yLjAgYnJhbmNoKQo+IFhlbjog aHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL2lndnRnLXhlbiAoMjAxNXE0LTQuNSBicmFuY2gpCj4g UWVtdTogaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL2lndnRnLXFlbXUgKHhlbmd0X3B1YmxpYzIw MTVxNCBicmFuY2gpCj4gCj4gVGhpcyB1cGRhdGUgY29uc2lzdHMgb2Y6Cj4gCj4gCS0gNnRoIGdl bmVyYXRpb24gSW50ZWwgQ29yZSBQcm9jZXNzb3IgKGNvZGUgbmFtZTogU2t5bGFrZSkgaXMgcHJl bGltaW5hcmlseSBzdXBwb3J0ZWQgaW4gdGhpcyByZWxlYXNlLiBVc2VycyBjb3VsZCBzdGFydCBy dW4gbXVsdGlwbGUgV2luZG93cyAvIExpbnV4IHZpcnR1YWwgbWFjaGluZXMgc2ltdWx0YW5lb3Vz bHksIGFuZCBzd2l0Y2ggZGlzcGxheSBhbW9uZyB0aGVtLgo+IAktIEJhY2t3YXJkIGNvbXBhdGli aWxpdHkgc3VwcG9ydCA0dGggZ2VuZXJhdGlvbiBJbnRlbCBDb3JlIFByb2Nlc3NvciAoY29kZSBu YW1lOiBIYXN3ZWxsKSBhbmQgNXRoIGdlbmVyYXRpb24gSW50ZWwgQ29yZSBQcm9jZXNzb3IgKGNv ZGUgbmFtZTogQnJvYWR3ZWxsKS4KPiAJLSBLZXJuZWwgdXBkYXRlIGZyb20gZHJtLWludGVsIDMu MTguMCB0byBkcm0taW50ZWwgNC4yLjAuCj4gCj4gS25vd24gaXNzdWVzOgo+ICAgIC0gQXQgbGVh c3QgMkdCIG1lbW9yeSBpcyBzdWdnZXN0ZWQgZm9yIGEgVk0gdG8gcnVuIG1vc3QgM0Qgd29ya2xv YWRzLgo+ICAgIC0gS2V5bWFwIG1pZ2h0IGJlIGluY29ycmVjdCBpbiBndWVzdC4gQ29uZmlnIGZp bGUgbWF5IG5lZWQgdG8gZXhwbGljaXRseSBzcGVjaWZ5ICJrZXltYXA9J2VuLXVzJyIuIEFsdGhv dWdoIGl0IGxvb2tzIGxpa2UgdGhlIGRlZmF1bHQgdmFsdWUsIGVhcmxpZXIgd2Ugc2F3IHRoZSBw cm9ibGVtIG9mIHdyb25nIGtleW1hcCBjb2RlIGlmIGl0IGlzIG5vdCBleHBsaWNpdGx5IHNldC4K PiAgICAtIENhbm5vdCBtb3ZlIG1vdXNlIHBvaW50ZXIgc21vb3RobHkgaW4gZ3Vlc3QgYnkgZGVm YXVsdCBsYXVuY2hlZCBieSBWTkMgbW9kZS4gQ29uZmlndXJhdGlvbiBmaWxlIG5lZWQgdG8gZXhw bGljaXRseSBzcGVjaWZ5ICJ1c2I9MSIgdG8gZW5hYmxlIGEgVVNCIGJ1cywgYW5kICJ1c2JkZXZp Y2U9J3RhYmxldCciIHRvIGFkZCBwb2ludGVyIGRldmljZSB1c2luZyBhYnNvbHV0ZSBjb29yZGlu YXRlcy4KPiAgICAtIFJ1bm5pbmcgaGVhdnkgM0Qgd29ya2xvYWRzIGluIG11bHRpcGxlIGd1ZXN0 cyBmb3IgY291cGxlIG9mIGhvdXJzIG1heSBjYXVzZSBzdGFiaWxpdHkgaXNzdWUuCj4gICAgLSBU aGVyZSBhcmUgc3RpbGwgc3RhYmlsaXR5IGlzc3VlcyBvbiBTa3lsYWtlCj4gCj4gCj4gTmV4dCB1 cGRhdGUgd2lsbCBiZSBhcm91bmQgZWFybHkgQXByaWwsIDIwMTYuCj4gCj4gR1ZULWcgcHJvamVj dCBwb3J0YWw6IGh0dHBzOi8vMDEub3JnL2lndnQtZwo+IFBsZWFzZSBzdWJzY3JpYmUgbWFpbGlu ZyBsaXN0OiBodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndnQtZwo+IAo+ IAo+IE1vcmUgaW5mb3JtYXRpb24gYWJvdXQgYmFja2dyb3VuZCwgYXJjaGl0ZWN0dXJlIGFuZCBv dGhlcnMgYWJvdXQgSW50ZWwgR1ZULWcsIGNhbiBiZSBmb3VuZCBhdDoKPiAKPiAgICAgaHR0cHM6 Ly8wMS5vcmcvaWd2dC1nCj4gICAgIGh0dHBzOi8vd3d3LnVzZW5peC5vcmcvY29uZmVyZW5jZS9h dGMxNC90ZWNobmljYWwtc2Vzc2lvbnMvcHJlc2VudGF0aW9uL3RpYW4KPiAgICAgaHR0cDovL2V2 ZW50cy5saW51eGZvdW5kYXRpb24ub3JnL3NpdGVzL2V2ZW50cy9maWxlcy9zbGlkZXMvWGVuR1Qt WGVuJTIwU3VtbWl0LXY3XzAucGRmCj4gICAgIGh0dHA6Ly9ldmVudHMubGludXhmb3VuZGF0aW9u Lm9yZy9zaXRlcy9ldmVudHMvZmlsZXMvc2xpZGVzL1hlbkdULVhlbiUyMFN1bW1pdC1SRVdSSVRF JTIwM1JEJTIwdjQucGRmCj4gICAgIGh0dHBzOi8vMDEub3JnL3hlbi9ibG9ncy9zcmNsYXJreC8y MDEzL2dyYXBoaWNzLXZpcnR1YWxpemF0aW9uLXhlbmd0Cj4gCj4gCj4gTm90ZTogVGhlIFhlbkdU IHByb2plY3Qgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYSB3b3JrIGluIHByb2dyZXNzLiBBcyBzdWNo IGl0IGlzIG5vdCBhIGNvbXBsZXRlIHByb2R1Y3Qgbm9yIHNob3VsZCBpdCBiZSBjb25zaWRlcmVk IG9uZS4gRXh0cmEgY2FyZSBzaG91bGQgYmUgdGFrZW4gd2hlbiB0ZXN0aW5nIGFuZCBjb25maWd1 cmluZyBhIHN5c3RlbSB0byB1c2UgdGhlIFhlbkdUIHByb2plY3QuCj4gCj4gCj4gLS0KPiBUaGFu a3MsCj4gSmlrZQo+IAo+IE9uIDEwLzI3LzIwMTUgMDU6MjUgUE0sIEppa2UgU29uZyB3cm90ZToK Pj4gSGkgYWxsLAo+Pgo+PiBXZSBhcmUgcGxlYXNlZCB0byBhbm5vdW5jZSBhbm90aGVyIHVwZGF0 ZSBvZiBJbnRlbCBHVlQtZyBmb3IgWGVuLgo+Pgo+PiBJbnRlbCBHVlQtZyBpcyBhIGZ1bGwgR1BV IHZpcnR1YWxpemF0aW9uIHNvbHV0aW9uIHdpdGggbWVkaWF0ZWQgcGFzcy10aHJvdWdoLCBzdGFy dGluZyBmcm9tIDR0aCBnZW5lcmF0aW9uIEludGVsIENvcmUoVE0pIHByb2Nlc3NvcnMgd2l0aCBJ bnRlbCBHcmFwaGljcyBwcm9jZXNzb3JzLiBBIHZpcnR1YWwgR1BVIGluc3RhbmNlIGlzIG1haW50 YWluZWQgZm9yIGVhY2ggVk0sIHdpdGggcGFydCBvZiBwZXJmb3JtYW5jZSBjcml0aWNhbCByZXNv dXJjZXMgZGlyZWN0bHkgYXNzaWduZWQuIFRoZSBjYXBhYmlsaXR5IG9mIHJ1bm5pbmcgbmF0aXZl IGdyYXBoaWNzIGRyaXZlciBpbnNpZGUgYSBWTSwgd2l0aG91dCBoeXBlcnZpc29yIGludGVydmVu dGlvbiBpbiBwZXJmb3JtYW5jZSBjcml0aWNhbCBwYXRocywgYWNoaWV2ZXMgYSBnb29kIGJhbGFu Y2UgYW1vbmcgcGVyZm9ybWFuY2UsIGZlYXR1cmUsIGFuZCBzaGFyaW5nIGNhcGFiaWxpdHkuIFhl biBpcyBjdXJyZW50bHkgc3VwcG9ydGVkIG9uIEludGVsIFByb2Nlc3NvciBHcmFwaGljcyAoYS5r LmEuIFhlbkdUKTsgYW5kIHRoZSBjb3JlIGxvZ2ljIGNhbiBiZSBlYXNpbHkgcG9ydGVkIHRvIG90 aGVyIGh5cGVydmlzb3JzLgo+Pgo+Pgo+PiBSZXBvc2l0b3JpZXMKPj4KPj4gICAgICBLZXJuZWw6 IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9pZ3Z0Zy1rZXJuZWwgKDIwMTVxMy0zLjE4LjAgYnJh bmNoKQo+PiAgICAgIFhlbjogaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL2lndnRnLXhlbiAoMjAx NXEzLTQuNSBicmFuY2gpCj4+ICAgICAgUWVtdTogaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL2ln dnRnLXFlbXUgKHhlbmd0X3B1YmxpYzIwMTVxMyBicmFuY2gpCj4+Cj4+Cj4+IFRoaXMgdXBkYXRl IGNvbnNpc3RzIG9mOgo+Pgo+PiAgICAgIC0gWGVuR1QgaXMgbm93IG1lcmdlZCB3aXRoIEtWTUdU IGluIHVuaWZpZWQgcmVwb3NpdG9yaWVzKGtlcm5lbCBhbmQgcWVtdSksIGJ1dCBjdXJyZW50bHkK Pj4gICAgICAgIGRpZmZlcmVudCBicmFuY2hlcyBmb3IgcWVtdS4gIFhlbkdUIGFuZCBLVk1HVCBz aGFyZSBzYW1lIGlHVlQtZyBjb3JlIGxvZ2ljLgo+PiAgICAgIC0gZml4IHN5c2ZzL2RlYnVnZnMg YWNjZXNzIHNlbGRvbSBjcmFzaCBpc3N1ZQo+PiAgICAgIC0gZml4IGEgQlVHIGluIFhlbkdUIEkv TyBlbXVsYXRpb24gbG9naWMKPj4gICAgICAtIGltcHJvdmUgM2Qgd29ya2xvYWQgc3RhYmlsaXR5 Cj4+Cj4+IE5leHQgdXBkYXRlIHdpbGwgYmUgYXJvdW5kIGVhcmx5IEphbiwgMjAxNi4KPj4KPj4K Pj4gS25vd24gaXNzdWVzOgo+Pgo+PiAgICAgIC0gQXQgbGVhc3QgMkdCIG1lbW9yeSBpcyBzdWdn ZXN0ZWQgZm9yIFZNIHRvIHJ1biBtb3N0IDNEIHdvcmtsb2Fkcy4KPj4gICAgICAtIEtleW1hcCBt aWdodCBiZSBpbmNvcnJlY3QgaW4gZ3Vlc3QuIENvbmZpZyBmaWxlIG1heSBuZWVkIHRvIGV4cGxp Y2l0bHkgc3BlY2lmeSAia2V5bWFwPSdlbi11cyciLiBBbHRob3VnaCBpdCBsb29rcyBsaWtlIHRo ZSBkZWZhdWx0IHZhbHVlLCBlYXJsaWVyIHdlIHNhdyB0aGUgcHJvYmxlbSBvZiB3cm9uZyBrZXlt YXAgY29kZSBpZiBpdCBpcyBub3QgZXhwbGljaXRseSBzZXQuCj4+ICAgICAgLSBXaGVuIHVzaW5n IHRocmVlIG1vbml0b3JzLCBkb2luZyBob3RwbHVnIGJldHdlZW4gR3Vlc3QgcGF1c2UvdW5wYXVz ZSBtYXkgbm90IGJlIGFibGUgdG8gbGlnaHR1cCBhbGwgbW9uaXRvcnMgYXV0b21hdGljYWxseS4g U29tZSBzcGVjaWZpYyBtb25pdG9yIGlzc3Vlcy4KPj4gICAgICAtIENhbm5vdCBtb3ZlIG1vdXNl IHBvaW50ZXIgc21vb3RobHkgaW4gZ3Vlc3QgYnkgZGVmYXVsdCBsYXVuY2hlZCBieSBWTkMgbW9k ZS4gQ29uZmlndXJhdGlvbiBmaWxlIG5lZWQgdG8gZXhwbGljaXRseSBzcGVjaWZ5ICJ1c2I9MSIg dG8gZW5hYmxlIGEgVVNCIGJ1cywgYW5kICJ1c2JkZXZpY2U9J3RhYmxldCciIHRvIGFkZCBwb2lu dGVyIGRldmljZSB1c2luZyBhYnNvbHV0ZSBjb29yZGluYXRlcy4KPj4gICAgICAtIFJlc3VtZSBk b20wIGZyb20gUzMgbWF5IGNhdXNlIHNvbWUgZXJyb3IgbWVzc2FnZS4KPj4gICAgICAtIGk5MTUg dW5sb2FkL3JlbG9hZCBjYW5ub3Qgd29ya3Mgd2VsbCB3aXRoIGxlc3MgdGhhbiAzIHZjcHUgd2hl biB1cG93ZXJkIHNlcnZpY2Ugd2FzIHJ1bm5pbmcKPj4gICAgICAtIFVuaWdlbiBUcm9waWNzIHJ1 bm5pbmcgaW4gbXVsdGlwbGUgZ3Vlc3RzIHdpbGwgY2F1c2UgZG9tMCBhbmQgZ3Vlc3RzIHRkci4K Pj4KPj4KPj4gUGxlYXNlIHN1YnNjcmliZSB0aGUgbWFpbGluZyBsaXN0IHRvIHJlcG9ydCBCVUdz LCBkaXNjdXNzLCBhbmQvb3IgY29udHJpYnV0ZToKPj4KPj4gICAgICBodHRwczovL2xpc3RzLjAx Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndnQtZwo+Pgo+Pgo+PiBNb3JlIGluZm9ybWF0aW9uIGFi b3V0IEludGVsIEdWVC1nIGJhY2tncm91bmQsIGFyY2hpdGVjdHVyZSwgZXRjIGNhbiBiZSBmb3Vu ZCBhdChtYXkgbm90IGJlIHVwLXRvLWRhdGUpOgo+Pgo+PiAgICAgIGh0dHBzOi8vMDEub3JnL2ln dnQtZwo+PiAgICAgIGh0dHBzOi8vd3d3LnVzZW5peC5vcmcvY29uZmVyZW5jZS9hdGMxNC90ZWNo bmljYWwtc2Vzc2lvbnMvcHJlc2VudGF0aW9uL3RpYW4KPj4gICAgICBodHRwOi8vZXZlbnRzLmxp bnV4Zm91bmRhdGlvbi5vcmcvc2l0ZXMvZXZlbnRzL2ZpbGVzL3NsaWRlcy9YZW5HVC1YZW4lMjBT dW1taXQtdjdfMC5wZGYKPj4gICAgICBodHRwOi8vZXZlbnRzLmxpbnV4Zm91bmRhdGlvbi5vcmcv c2l0ZXMvZXZlbnRzL2ZpbGVzL3NsaWRlcy9YZW5HVC1YZW4lMjBTdW1taXQtUkVXUklURSUyMDNS RCUyMHY0LnBkZgo+PiAgICAgIGh0dHBzOi8vMDEub3JnL3hlbi9ibG9ncy9zcmNsYXJreC8yMDEz L2dyYXBoaWNzLXZpcnR1YWxpemF0aW9uLXhlbmd0Cj4+Cj4+Cj4+IE5vdGU6Cj4+Cj4+ICAgICBU aGUgWGVuR1QgcHJvamVjdCBzaG91bGQgYmUgY29uc2lkZXJlZCBhIHdvcmsgaW4gcHJvZ3Jlc3Mu IEFzIHN1Y2ggaXQgaXMgbm90IGEgY29tcGxldGUgcHJvZHVjdCBub3Igc2hvdWxkIGl0IGJlIGNv bnNpZGVyZWQgb25lLiBFeHRyYSBjYXJlIHNob3VsZCBiZSB0YWtlbiB3aGVuIHRlc3RpbmcgYW5k IGNvbmZpZ3VyaW5nIGEgc3lzdGVtIHRvIHVzZSB0aGUgWGVuR1QgcHJvamVjdC4KPj4KPj4KPj4g LS0KPj4gVGhhbmtzLAo+PiBKaWtlCj4+Cj4+IE9uIDA3LzA3LzIwMTUgMTA6NDkgQU0sIEppa2Ug U29uZyB3cm90ZToKPj4+IEhpIGFsbCwKPj4+Cj4+PiBXZSdyZSBwbGVhc2VkIHRvIGFubm91bmNl IGEgcHVibGljIHVwZGF0ZSB0byBJbnRlbCBHcmFwaGljcyBWaXJ0dWFsaXphdGlvbiBUZWNobm9s b2d5KEludGVsIEdWVC1nLCBmb3JtZXJseSBrbm93biBhcyBYZW5HVCkuCj4+Pgo+Pj4gSW50ZWwg R1ZULWcgaXMgYSBmdWxsIEdQVSB2aXJ0dWFsaXphdGlvbiBzb2x1dGlvbiB3aXRoIG1lZGlhdGVk IHBhc3MtdGhyb3VnaCwgc3RhcnRpbmcgZnJvbSA0dGggZ2VuZXJhdGlvbiBJbnRlbCBDb3JlKFRN KSBwcm9jZXNzb3JzIHdpdGggSW50ZWwgR3JhcGhpY3MgcHJvY2Vzc29ycy4gQSB2aXJ0dWFsIEdQ VSBpbnN0YW5jZSBpcyBtYWludGFpbmVkIGZvciBlYWNoIFZNLCB3aXRoIHBhcnQgb2YgcGVyZm9y bWFuY2UgY3JpdGljYWwgcmVzb3VyY2VzIGRpcmVjdGx5IGFzc2lnbmVkLiBUaGUgY2FwYWJpbGl0 eSBvZiBydW5uaW5nIG5hdGl2ZSBncmFwaGljcyBkcml2ZXIgaW5zaWRlIGEgVk0sIHdpdGhvdXQg aHlwZXJ2aXNvciBpbnRlcnZlbnRpb24gaW4gcGVyZm9ybWFuY2UgY3JpdGljYWwgcGF0aHMsIGFj aGlldmVzIGEgZ29vZCBiYWxhbmNlIGFtb25nIHBlcmZvcm1hbmNlLCBmZWF0dXJlLCBhbmQgc2hh cmluZyBjYXBhYmlsaXR5LiBYZW4gaXMgY3VycmVudGx5IHN1cHBvcnRlZCBvbiBJbnRlbCBQcm9j ZXNzb3IgR3JhcGhpY3MgKGEuay5hLiBYZW5HVCk7IGFuZCB0aGUgY29yZSBsb2dpYyBjYW4gYmUg ZWFzaWx5IHBvcnRlZCB0byBvdGhlciBoeXBlcnZpc29ycywgZm9yIGV4YW1wbGUsIHRoZSBleHBl cmltZW50YWwgY29kZSBoYXMgYmVlbiByZWxlYXNlZCB0byBzdXBwb3J0IEdWVC1nIHJ1bm5pbmcg b24gYSBLVk0gaHlwZXJ2aXNvciAoYS5rLmEgS1ZNR1QpLgo+Pj4KPj4+IFRpcCBvZiByZXBvc2l0 b3JpZXMKPj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+Cj4+PiAgICAgICBLZXJuZWw6 IDViNzM2NTNkNWNhLCBCcmFuY2g6IG1hc3Rlci0yMDE1UTItMy4xOC4wCj4+PiAgICAgICBRZW11 OiAyYTc1YmJmZjYyYzEsIEJyYW5jaDogbWFzdGVyCj4+PiAgICAgICBYZW46IDM4YzM2ZjBmNTEx YjEsIEJyYW5jaDogbWFzdGVyLTIwMTVRMi00LjUKPj4+Cj4+PiBUaGlzIHVwZGF0ZSBjb25zaXN0 cyBvZjoKPj4+ICAgICAgIC0gQ2hhbmdlIHRpbWUgYmFzZWQgc2NoZWR1bGVyIHRpbWVyIHRvIGJl IGNvbmZpZ3VyYWJsZSB0byBlbmhhbmNlIHN0YWJpbGl0eQo+Pj4gICAgICAgLSBGaXggc3RhYmls aXR5IGlzc3VlcyB0aGF0IFZNL0RvbTAgZ290IHRkciB3aGVuIGhhbmcgdXAgYXQgc29tZSBzcGVj aWZpYyBpbnN0cnVjdGlvbiBvbiBCRFcKPj4+ICAgICAgIC0gT3B0aW1pemUgdGhlIGVtdWxhdGlv biBvZiBlbF9zdGF0dXMgcmVnaXN0ZXIgdG8gZW5oYW5jZSBzdGFiaWxpdHkKPj4+ICAgICAgIC0g MkQvM0QgcGVyZm9ybWFuY2UgaW4gbGludXggVk1zIGhhcyBiZWVuIGltcHJvdmVkIGFib3V0IDUw JSBvbiBCRFcKPj4+ICAgICAgIC0gRml4IGFibm9ybWFsIGlkbGUgcG93ZXIgY29uc3VtcHRpb24g aXNzdWUgZHVlIHRvIHdyb25nIGZvcmNld2FrZSBwb2xpY3kKPj4+ICAgICAgIC0gRml4IHRkciBp c3N1ZSB3aGVuIHJ1bm5pbmcgMkQvM0QvTWVkaWEgd29ya2xvYWRzIGluIFdpbmRvd3MgVk1zIHNp bXVsdGFuZW91c2x5Cj4+PiAgICAgICAtIEtWTSBzdXBwb3J0IGlzIHN0aWxsIGluIGEgc2VwYXJh dGUgYnJhbmNoIGFzIHByb3RvdHlwZSB3b3JrLiBXZSBwbGFuIHRvIGludGVncmF0ZSBLVk0vWGVu IHN1cHBvcnQgdG9nZXRoZXIgaW4gdGhlIGZ1dHVyZSByZWxlYXNlcwo+Pj4gICAgICAgLSBOZXh0 IHVwZGF0ZSB3aWxsIGJlIGFyb3VuZCBlYXJseSBPY3QsIDIwMTUKPj4+Cj4+PiBOb3RpY2UgdGhh dCB0aGlzIHJlbGVhc2UgY2FuIHN1cHBvcnQgYm90aCBJbnRlbCA0dGggZ2VuZXJhdGlvbiBDb3Jl IENQVShjb2RlIG5hbWU6IEhhc3dlbGwpIGFuZCBJbnRlbCA1dGggZ2VuZXJhdGlvbiBDb3JlIENQ VSAoY29kZSBuYW1lOiBCcm9hZHdlbGwpLCB3aGlsZSB0aGUgbGltaXRhdGlvbiBvZiB0aGUgbGF0 dGVyIGluY2x1ZGU6Cj4+PiAgICAgICAqIDNEIGNvbmZvcm1hbmNlIG1heSBoYXZlIHNvbWUgZmFp bHVyZQo+Pj4gICAgICAgKiBVbmRlciBoaWdoIGRlbWFuZCAzRCB3b3JrbG9hZHMsIHN0YWJpbGl0 eSBpc3N1ZXMgYXJlIGRldGVjdGVkCj4+PiAgICAgICAqIE11bHRpLW1vbml0b3Igc2NlbmFyaW8g aXMgbm90IGZ1bGx5IHRlc3RlZCwgd2hpbGUgc2luZ2xlIG1vbml0b3Igb2YgVkdBL0hETUkvRFAv ZURQIHNob3VsZCBqdXN0IHdvcmsKPj4+ICAgICAgICogSG90cGx1ZyBEUCBtYXkgY2F1c2UgYmxh Y2sgc2NyZWVuIGV2ZW4gb24gbmF0aXZlIGVudmlyb25tZW50Cj4+Pgo+Pj4gV2hlcmUgdG8gZ2V0 Cj4+Pgo+Pj4ga2VybmVsOiBodHRwczovL2dpdGh1Yi5jb20vMDFvcmcvWGVuR1QtUHJldmlldy1r ZXJuZWwuZ2l0Cj4+PiB4ZW46IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9YZW5HVC1QcmV2aWV3 LXhlbi5naXQKPj4+IHFlbXU6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9YZW5HVC1QcmV2aWV3 LXFlbXUuZ2l0Cj4+Pgo+Pj4KPj4+IFdlIGhhdmUgYSBtYWlsaW5nIGxpc3QgZm9yIEdWVC1nIGRl dmVsb3BtZW50LCBidWcgcmVwb3J0IGFuZCB0ZWNobmljYWwgZGlzY3Vzc2lvbjoKPj4+Cj4+PiAg ICAgICBodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndnQtZwo+Pj4KPj4+ IE1vcmUgaW5mb3JtYXRpb24gYWJvdXQgSW50ZWwgR1ZULWcgYmFja2dyb3VuZCwgYXJjaGl0ZWN0 dXJlLCBldGMgY2FuIGJlIGZvdW5kIGF0Ogo+Pj4KPj4+ICAgICAgIGh0dHBzOi8vd3d3LnVzZW5p eC5vcmcvY29uZmVyZW5jZS9hdGMxNC90ZWNobmljYWwtc2Vzc2lvbnMvcHJlc2VudGF0aW9uL3Rp YW4KPj4+ICAgICAgIGh0dHA6Ly9ldmVudHMubGludXhmb3VuZGF0aW9uLm9yZy9zaXRlcy9ldmVu dHMvZmlsZXMvc2xpZGVzL1hlbkdULVhlbiUyMFN1bW1pdC12N18wLnBkZgo+Pj4gICAgICAgaHR0 cHM6Ly8wMS5vcmcveGVuL2Jsb2dzL3NyY2xhcmt4LzIwMTMvZ3JhcGhpY3MtdmlydHVhbGl6YXRp b24teGVuZ3QKPj4+Cj4+Pgo+Pj4gTm90ZTogVGhlIFhlbkdUIHByb2plY3Qgc2hvdWxkIGJlIGNv bnNpZGVyZWQgYSB3b3JrIGluIHByb2dyZXNzLiBBcyBzdWNoIGl0IGlzIG5vdCBhIGNvbXBsZXRl IHByb2R1Y3Qgbm9yIHNob3VsZCBpdCBiZSBjb25zaWRlcmVkIG9uZS4gRXh0cmEgY2FyZSBzaG91 bGQgYmUgdGFrZW4gd2hlbiB0ZXN0aW5nIGFuZCBjb25maWd1cmluZyBhIHN5c3RlbSB0byB1c2Ug dGhlIFhlbkdUIHByb2plY3QuCj4+Pgo+Pj4KPj4+IC0tCj4+PiBUaGFua3MsCj4+PiBKaWtlCj4+ Pgo+Pj4gT24gMDQvMTAvMjAxNSAwOToyMyBQTSwgSmlrZSBTb25nIHdyb3RlOgo+Pj4+IEhpIGFs bCwKPj4+Pgo+Pj4+IFdlJ3JlIHBsZWFzZWQgdG8gYW5ub3VuY2UgYSBwdWJsaWMgdXBkYXRlIHRv IEludGVsIEdyYXBoaWNzIFZpcnR1YWxpemF0aW9uIFRlY2hub2xvZ3kgKEludGVsIEdWVC1nLCBm b3JtZXJseSBrbm93biBhcyBYZW5HVCkuIEludGVsIEdWVC1nIGlzIGEgY29tcGxldGUgdkdQVSBz b2x1dGlvbiB3aXRoIG1lZGlhdGVkIHBhc3MtdGhyb3VnaCwgc3VwcG9ydGVkIHRvZGF5IG9uIDR0 aCBnZW5lcmF0aW9uIEludGVsIENvcmUoVE0pIHByb2Nlc3NvcnMgd2l0aCBJbnRlbCBHcmFwaGlj cyBwcm9jZXNzb3JzLiBBIHZpcnR1YWwgR1BVIGluc3RhbmNlIGlzIG1haW50YWluZWQgZm9yIGVh Y2ggVk0sIHdpdGggcGFydCBvZiBwZXJmb3JtYW5jZSBjcml0aWNhbCByZXNvdXJjZXMgZGlyZWN0 bHkgYXNzaWduZWQuIFRoZSBjYXBhYmlsaXR5IG9mIHJ1bm5pbmcgbmF0aXZlIGdyYXBoaWNzIGRy aXZlciBpbnNpZGUgYSBWTSwgd2l0aG91dCBoeXBlcnZpc29yIGludGVydmVudGlvbiBpbiBwZXJm b3JtYW5jZSBjcml0aWNhbCBwYXRocywgYWNoaWV2ZXMgYSBnb29kIGJhbGFuY2UgYW1vbmcgcGVy Zm9ybWFuY2UsIGZlYXR1cmUsIGFuZCBzaGFyaW5nIGNhcGFiaWxpdHkuIFRob3VnaCB3ZSBvbmx5 IHN1cHBvcnQgWGVuIG9uIEludGVsIFByb2Nlc3NvciBHcmFwaGljcyBzbyBmYXIsIHRoZSBjb3Jl IGxvZ2ljIGNhbiBiZSBlYXNpbHkgcG9ydGVkIHRvIG90aGVyIGh5cGVydmlzb3JzLgo+Pj4+Cj4+ Pj4gVGlwIG9mIHJlcG9zaXRvcmllcwo+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+ Pgo+Pj4+ICAgICAgICAgICAgIEtlcm5lbDogYTAxMWM5Zjk1M2UsIEJyYW5jaDogbWFzdGVyLTIw MTVRMS0zLjE4LjAKPj4+PiAgICAgICAgICAgICBRZW11OiAyYTc1YmJmZjYyYzEsIEJyYW5jaDog bWFzdGVyCj4+Pj4gICAgICAgICAgICAgWGVuOiAzOGMzNmYwZjUxMWIxLCBCcmFuY2g6IG1hc3Rl ci0yMDE1UTEtNC41Cj4+Pj4KPj4+PiBTdW1tYXJ5IHRoaXMgdXBkYXRlCj4+Pj4gLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQo+Pj4+IAktIFByZWxpbWluYXJ5IEJyb2Fkd2VsbCBzdXBwb3J0Lgo+ Pj4+IAktIGtlcm5lbCB1cGRhdGUgZnJvbSBkcm0taW50ZWwgMy4xNy4wIHRvIGRybS1pbnRlbCAz LjE4LjAodGFnOiBkcm0taW50ZWwtbmV4dC1maXhlcy0yMDE0LTEyLTE3LCBub3RpY2UgdGhhdCBp OTE1IGRyaXZlciBjb2RlIGlzIG11Y2ggbmV3ZXIgdGhhbiBrZXJuZWwgc3RhYmxlIHZlcnNpb24p Lgo+Pj4+IAktIE5leHQgdXBkYXRlIHdpbGwgYmUgYXJvdW5kIGVhcmx5IEp1bHksIDIwMTUuCj4+ Pj4gCS0gS1ZNIHN1cHBvcnQgaXMgc3RpbGwgaW4gYSBzZXBhcmF0ZSBicmFuY2ggYXMgcHJvdG90 eXBlIHdvcmsuIFdlIHBsYW4gdG8gaW50ZWdyYXRlIEtWTS9YZW4gc3VwcG9ydCB0b2dldGhlciBp biBmdXR1cmUgcmVsZWFzZXMuCj4+Pj4KPj4+PiBUaGlzIHVwZGF0ZSBjb25zaXN0cyBvZjoKPj4+ PiAJLSBndnQtZyBjb3JlIGxvZ2ljIGNvZGUgd2FzIG1vdmVkIGludG8gaTkxNSBkcml2ZXIgZGly ZWN0b3J5Lgo+Pj4+IAktIEhvc3QgbWVkaWF0aW9uIGlzIHVzZWQgZm9yIGRvbTAgaTkxNSBkcml2 ZXIgYWNjZXNzLCBpbnN0ZWFkIG9mIGRlLXByaXZpbGVnZWQgZG9tMC4KPj4+PiAJLSBUaGUgWGVu LXNwZWNpZmljIGNvZGUgd2FzIHNlcGFyYXRlZCBmcm9tIHZndCBjb3JlIGxvZ2ljIGludG8gYSBu ZXcgZmlsZSAiZHJpdmVyL3hlbi94ZW5ndC5jIi4KPj4+PiAJLSBCcm9hZHdlbGwgaXMgcHJlbGlt aW5hcmlseSBzdXBwb3J0ZWQgaW4gdGhpcyByZWxlYXNlLiBVc2VycyBjb3VsZCBzdGFydCBtdWx0 aXBsZSBsaW51eC93aW5kb3dzIDY0LWJpdCB2aXJ0dWFsIG1hY2hpbmVzIHNpbXVsdGFuZW91c2x5 LCBhbmQgcGVyZm9ybSBkaXNwbGF5IHN3aXRjaCBhbW9uZyB0aGVtLgo+Pj4+Cj4+Pj4gTm90aWNl IHRoYXQgaXQgaXMgc3RpbGwgcHJlbGltaW5hcnkgcmVsZWFzZSBmb3IgQkRXLCB3aGljaCBpcyBu b3QgeWV0IGluIHRoZSBzYW1lIGxldmVsIG9mIEhTVyByZWxlYXNlLiBEaWZmZXJlbmNlcyBpbmNs dWRlOgo+Pj4+ICAgICAgICAgICAgICAgICAgICAqIFBvd2VyL3BlcmZvcm1hbmNlIHR1bmluZyBv biBCRFcgaXMgbm90IHlldCBkb25lLgo+Pj4+IAkgKiBTdGFiaWxpdHkgbmVlZHMgdG8gYmUgaW1w cm92ZWQuCj4+Pj4gICAgICAgICAgICAgICAgICAgICogTm8gMzItYml0IGd1ZXN0IE9TIHN1cHBv cnQuCj4+Pj4gICAgICAgICAgICAgICAgICAgICogTXVsdGktbW9uaXRvciBzY2VuYXJpbyBpcyBu b3QgZnVsbHkgdGVzdGVkLCB3aGlsZSBzaW5nbGUgbW9uaXRvciBvZiBWR0EvSERNSS9EUC9lRFAg c2hvdWxkIGp1c3Qgd29yay4KPj4+Pgo+Pj4+Cj4+Pj4gV2hlcmUgdG8gZ2V0Ogo+Pj4+IC0tLS0t LS0tLS0tLS0tLS0tCj4+Pj4gICAgICAgICAgICAgICAgICAgIGtlcmVubDogaHR0cHM6Ly9naXRo dWIuY29tLzAxb3JnL1hlbkdULVByZXZpZXcta2VybmVsLmdpdAo+Pj4+ICAgICAgICAgICAgICAg ICAgICBYZW46IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9YZW5HVC1QcmV2aWV3LXhlbi5naXQK Pj4+PiAgICAgICAgICAgICAgICAgICAgUWVtdTogaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL1hl bkdULVByZXZpZXctcWVtdS5naXQKPj4+Pgo+Pj4+IFBsZWFzZSByZWZlciB0byB0aGUgbmV3IHNl dHVwIGd1aWRlLCB3aGljaCBwcm92aWRlcyBzdGVwLXRvLXN0ZXAgZGV0YWlscyBhYm91dCBidWls ZGluZy9jb25maWd1cmluZy9ydW5uaW5nIEludGVsIEdWVC1nOgo+Pj4+IAkgaHR0cHM6Ly9naXRo dWIuY29tLzAxb3JnL1hlbkdULVByZXZpZXcta2VybmVsL2Jsb2IvbWFzdGVyLTIwMTVRMS0zLjE4 LjAvWGVuR1RfU2V0dXBfR3VpZGVfMjAxNVExLnBkZgo+Pj4+Cj4+Pj4gTW9yZSBpbmZvcm1hdGlv biBhYm91dCBJbnRlbCBHVlQtZyBiYWNrZ3JvdW5kLCBhcmNoaXRlY3R1cmUsIGV0YyBjYW4gYmUg Zm91bmQgYXQ6Cj4+Pj4gICAgICAgICAgICAgICAgICAgIGh0dHBzOi8vd3d3LnVzZW5peC5vcmcv Y29uZmVyZW5jZS9hdGMxNC90ZWNobmljYWwtc2Vzc2lvbnMvcHJlc2VudGF0aW9uL3RpYW4KPj4+ PiAgICAgICAgICAgICAgICAgICAgaHR0cDovL2V2ZW50cy5saW51eGZvdW5kYXRpb24ub3JnL3Np dGVzL2V2ZW50cy9maWxlcy9zbGlkZXMvWGVuR1QtWGVuJTIwU3VtbWl0LXY3XzAucGRmCj4+Pj4g ICAgICAgICAgICAgICAgICAgIGh0dHBzOi8vMDEub3JnL3hlbi9ibG9ncy9zcmNsYXJreC8yMDEz L2dyYXBoaWNzLXZpcnR1YWxpemF0aW9uLXhlbmd0Cj4+Pj4KPj4+PiBUaGUgcHJldmlvdXMgdXBk YXRlIGNhbiBiZSBmb3VuZCBoZXJlOgo+Pj4+ICAgICAgICAgICAgICAgICAgIGh0dHA6Ly9saXN0 cy54ZW4ub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMTQtMTIvbXNnMDA0NzQuaHRtbAo+ Pj4+Cj4+Pj4KPj4+PiBOb3RlCj4+Pj4gLS0tLS0tLS0tLS0tLS0tCj4+Pj4gCVRoZSBYZW5HVCBw cm9qZWN0IHNob3VsZCBiZSBjb25zaWRlcmVkIGEgd29yayBpbiBwcm9ncmVzcywgQXMgc3VjaCBp dCBpcyBub3QgYSBjb21wbGV0ZSBwcm9kdWN0IG5vciBzaG91bGQgaXQgYmUgY29uc2lkZXJlZCBv bmUuLCBFeHRyYSBjYXJlIHNob3VsZCBiZSB0YWtlbiB3aGVuIHRlc3RpbmcgYW5kIGNvbmZpZ3Vy aW5nIGEgc3lzdGVtIHRvIHVzZSB0aGUgWGVuR1QgcHJvamVjdC4KPj4+Pgo+Pj4+Cj4+Pj4gLS0K Pj4+PiBUaGFua3MsCj4+Pj4gSmlrZQo+Pj4+Cj4+Pj4gT24gMDEvMDkvMjAxNSAwNDo1MSBQTSwg SmlrZSBTb25nIHdyb3RlOgo+Pj4+PiBIaSBhbGwsCj4+Pj4+Cj4+Pj4+ICAgICAgIFdlJ3JlIHBs ZWFzZWQgdG8gYW5ub3VuY2UgYSBwdWJsaWMgdXBkYXRlIHRvIEludGVsIEdyYXBoaWNzIFZpcnR1 YWxpemF0aW9uIFRlY2hub2xvZ3kgKEludGVsIEdWVC1nLCBmb3JtZXJseSBrbm93biBhcyBYZW5H VCkuIEludGVsIEdWVC1nIGlzIGEgY29tcGxldGUgdkdQVSBzb2x1dGlvbiB3aXRoIG1lZGlhdGVk IHBhc3MtdGhyb3VnaCwgc3VwcG9ydGVkIHRvZGF5IG9uIDR0aCBnZW5lcmF0aW9uIEludGVsIENv cmUoVE0pIHByb2Nlc3NvcnMgd2l0aCBJbnRlbCBHcmFwaGljcyBwcm9jZXNzb3JzLiBBIHZpcnR1 YWwgR1BVIGluc3RhbmNlIGlzIG1haW50YWluZWQgZm9yIGVhY2ggVk0sIHdpdGggcGFydCBvZiBw ZXJmb3JtYW5jZSBjcml0aWNhbCByZXNvdXJjZXMgZGlyZWN0bHkgYXNzaWduZWQuIFRoZSBjYXBh YmlsaXR5IG9mIHJ1bm5pbmcgbmF0aXZlIGdyYXBoaWNzIGRyaXZlciBpbnNpZGUgYSBWTSwgd2l0 aG91dCBoeXBlcnZpc29yIGludGVydmVudGlvbiBpbiBwZXJmb3JtYW5jZSBjcml0aWNhbCBwYXRo cywgYWNoaWV2ZXMgYSBnb29kIGJhbGFuY2UgYW1vbmcgcGVyZm9ybWFuY2UsIGZlYXR1cmUsIGFu ZCBzaGFyaW5nIGNhcGFiaWxpdHkuIFRob3VnaCB3ZSBvbmx5IHN1cHBvcnQgWGVuIG9uIEludGVs IFByb2Nlc3NvciBHcmFwaGljcyBzbyBmYXIsIHRoZSBjb3JlIGxvZ2ljIGNhbiBiZSBlYXNpbHkg cG9ydGVkIHRvIG90aGVyIGh5cGVydmlzb3JzLiAgIFRoZSBYZW5HVCBwcm9qZWN0IHNob3VsZCBi ZSBjb25zaWRlcmVkIGEgd29yayBpbiBwcm9ncmVzcywgQXMgc3VjaCBpdCBpcyBub3QgYSBjb21w bGV0ZSBwcm9kdWN0IG5vciBzaG91bGQgaXQgYmUgY29uc2lkZXJlZCBvbmUuLCBFeHRyYSBjYXJl IHNob3VsZCBiZSB0YWtlbiB3aGVuIHRlc3RpbmcgYW5kIGNvbmZpZ3VyaW5nIGEgc3lzdGVtIHRv IHVzZSB0aGUgWGVuR1QgcHJvamVjdC4KPj4+Pj4KPj4+Pj4gVGhlIG5ld3Mgb2YgdGhpcyB1cGRh dGU6Cj4+Pj4+Cj4+Pj4+IAktIGtlcm5lbCB1cGRhdGUgZnJvbSAzLjE0LjEgdG8gZHJtLWludGVs IDMuMTcuMC4KPj4+Pj4gCS0gV2UgcGxhbiB0byBpbnRlZ3JhdGUgSW50ZWwgR1ZULWcgYXMgYSBm ZWF0dXJlIGluIGk5MTUgZHJpdmVyLiBUaGF0IGVmZm9ydCBpcyBzdGlsbCB1bmRlciByZXZpZXcs IG5vdCBpbmNsdWRlZCBpbiB0aGlzIHVwZGF0ZSB5ZXQuCj4+Pj4+IAktIE5leHQgdXBkYXRlIHdp bGwgYmUgYXJvdW5kIGVhcmx5IEFwciwgMjAxNS4KPj4+Pj4KPj4+Pj4gVGhpcyB1cGRhdGUgY29u c2lzdHMgb2Y6Cj4+Pj4+Cj4+Pj4+IAktIEluY2x1ZGluZyBzb21lIGJ1ZyBmaXhlcyBhbmQgc3Rh YmlsaXR5IGVuaGFuY2VtZW50Lgo+Pj4+PiAJLSBNYWtpbmcgWGVuR1QgZGV2aWNlIG1vZGVsIHRv IGJlIGF3YXJlIG9mIEJyb2Fkd2VsbC4gSW4gdGhpcyB2ZXJzaW9uIEJEVyBpcyBub3QgeWV0IGZ1 bmN0aW9uaW5nLgo+Pj4+PiAJLSBBdmFpbGFibGUgRmVuY2UgcmVnaXN0ZXJzIG51bWJlciBpcyBj aGFuZ2VkIHRvIDMyIGZyb20gMTYgdG8gYWxpZ24gd2l0aCBIU1cgaGFyZHdhcmUuCj4+Pj4+IAkt IE5ldyBjYXNjYWRlIGludGVycnVwdCBmcmFtZXdvcmsgZm9yIHN1cHBvcnRpbmcgaW50ZXJydXB0 IHZpcnR1YWxpemF0aW9uIG9uIGJvdGggSGFzd2VsbCBhbmQgQnJvYWR3ZWxsLgo+Pj4+PiAJLSBB ZGQgYmFjayB0aGUgZ2VtX3ZndGJ1ZmZlci4gVGhlIHByZXZpb3VzIHJlbGVhc2UgZGlkIG5vdCBi dWlsZCB0aGF0IG1vZHVsZSBmb3IgMy4xNCBrZXJuZWwuIEluIHRoaXMgcmVsZWFzZSwgdGhlIG1v ZHVsZSBpcyBiYWNrIGFuZCByZWJhc2VkIHRvIDMuMTcuCj4+Pj4+IAktIEVuYWJsZSB0aGUgaXJx IGJhc2VkIGNvbnRleHQgc3dpdGNoIGluIHZndCBkcml2ZXIsIHdoaWNoIHdpbGwgaGVscCByZWR1 Y2UgdGhlIGNwdSB1dGlsaXphdGlvbiB3aGlsZSBkb2luZyBjb250ZXh0IHN3aXRjaCwgaXQgaXMg ZW5hYmxlZCBieSBkZWZhdWx0LCBhbmQgY2FuIGJlIHR1cm4gb2ZmIGJ5IGtlcm5lbCBmbGFnIGly cV9iYXNlZF9jdHhfc3dpdGNoLgo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBQbGVhc2UgcmVmZXIgdG8gdGhl IG5ldyBzZXR1cCBndWlkZSwgd2hpY2ggcHJvdmlkZXMgc3RlcC10by1zdGVwIGRldGFpbHMgYWJv dXQgYnVpbGRpbmcvY29uZmlndXJpbmcvcnVubmluZyBJbnRlbCBHVlQtZzoKPj4+Pj4KPj4+Pj4g CWh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9YZW5HVC1QcmV2aWV3LWtlcm5lbC9ibG9iL21hc3Rl ci9YZW5HVF9TZXR1cF9HdWlkZS5wZGYKPj4+Pj4KPj4+Pj4gVGhlIG5ldyBzb3VyY2UgY29kZXMg YXJlIGF2YWlsYWJsZSBhdCB0aGUgdXBkYXRlZCBnaXRodWIgcmVwb3M6Cj4+Pj4+Cj4+Pj4+IAlM aW51eDogaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL1hlbkdULVByZXZpZXcta2VybmVsLmdpdAo+ Pj4+PiAJWGVuOiBodHRwczovL2dpdGh1Yi5jb20vMDFvcmcvWGVuR1QtUHJldmlldy14ZW4uZ2l0 Cj4+Pj4+IAlRZW11OiBodHRwczovL2dpdGh1Yi5jb20vMDFvcmcvWGVuR1QtUHJldmlldy1xZW11 LmdpdAo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBNb3JlIGluZm9ybWF0aW9uIGFib3V0IEludGVsIEdWVC1n IGJhY2tncm91bmQsIGFyY2hpdGVjdHVyZSwgZXRjIGNhbiBiZSBmb3VuZCBhdDoKPj4+Pj4KPj4+ Pj4KPj4+Pj4gCWh0dHBzOi8vd3d3LnVzZW5peC5vcmcvY29uZmVyZW5jZS9hdGMxNC90ZWNobmlj YWwtc2Vzc2lvbnMvcHJlc2VudGF0aW9uL3RpYW4KPj4+Pj4gCWh0dHA6Ly9ldmVudHMubGludXhm b3VuZGF0aW9uLm9yZy9zaXRlcy9ldmVudHMvZmlsZXMvc2xpZGVzL1hlbkdULVhlbiUyMFN1bW1p dC12N18wLnBkZgo+Pj4+PiAJaHR0cHM6Ly8wMS5vcmcveGVuL2Jsb2dzL3NyY2xhcmt4LzIwMTMv Z3JhcGhpY3MtdmlydHVhbGl6YXRpb24teGVuZ3QKPj4+Pj4KPj4+Pj4KPj4+Pj4KPj4+Pj4gVGhl IHByZXZpb3VzIHVwZGF0ZSBjYW4gYmUgZm91bmQgaGVyZToKPj4+Pj4KPj4+Pj4KPj4+Pj4gCWh0 dHA6Ly9saXN0cy54ZW4ub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMTQtMTIvbXNnMDA0 NzQuaHRtbAo+Pj4+Pgo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBBcHByZWNpYXRlIHlvdXIgY29tbWVudHMh Cj4+Pj4+Cj4+Pj4+Cj4+Pj4+Cj4+Pj4+IC0tCj4+Pj4+IFRoYW5rcywKPj4+Pj4gSmlrZQo+Pj4+ Pgo+Pj4+Pgo+Pj4+PiBPbiAxMi8wNC8yMDE0IDEwOjQ1IEFNLCBKaWtlIFNvbmcgd3JvdGU6Cj4+ Pj4+PiBIaSBhbGwsCj4+Pj4+Pgo+Pj4+Pj4gV2UncmUgcGxlYXNlZCB0byBhbm5vdW5jZSBhIHB1 YmxpYyByZWxlYXNlIHRvIEludGVsIEdyYXBoaWNzIFZpcnR1YWxpemF0aW9uIFRlY2hub2xvZ3kg KEludGVsIEdWVC1nLCBmb3JtZXJseSBrbm93biBhcyBYZW5HVCkuIEludGVsIEdWVC1nIGlzIGEg Y29tcGxldGUgdkdQVSBzb2x1dGlvbiB3aXRoIG1lZGlhdGVkIHBhc3MtdGhyb3VnaCwgc3VwcG9y dGVkIHRvZGF5IG9uIDR0aCBnZW5lcmF0aW9uIEludGVsIENvcmUoVE0pIHByb2Nlc3NvcnMgd2l0 aCBJbnRlbCBHcmFwaGljcyBwcm9jZXNzb3JzLiBBIHZpcnR1YWwgR1BVIGluc3RhbmNlIGlzIG1h aW50YWluZWQgZm9yIGVhY2ggVk0sIHdpdGggcGFydCBvZiBwZXJmb3JtYW5jZSBjcml0aWNhbCBy ZXNvdXJjZXMgZGlyZWN0bHkgYXNzaWduZWQuIFRoZSBjYXBhYmlsaXR5IG9mIHJ1bm5pbmcgbmF0 aXZlIGdyYXBoaWNzIGRyaXZlciBpbnNpZGUgYSBWTSwgd2l0aG91dCBoeXBlcnZpc29yIGludGVy dmVudGlvbiBpbiBwZXJmb3JtYW5jZSBjcml0aWNhbCBwYXRocywgYWNoaWV2ZXMgYSBnb29kIGJh bGFuY2UgYW1vbmcgcGVyZm9ybWFuY2UsIGZlYXR1cmUsIGFuZCBzaGFyaW5nIGNhcGFiaWxpdHku IFRob3VnaCB3ZSBvbmx5IHN1cHBvcnQgWGVuIG9uIEludGVsIFByb2Nlc3NvciBHcmFwaGljcyBz byBmYXIsIHRoZSBjb3JlIGxvZ2ljIGNhbiBiZSBlYXNpbHkgcG9ydGVkIHRvIG90aGVyIGh5cGVy dmlzb3JzLgo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+PiBUaGUgbmV3cyBvZiB0aGlzIHVwZGF0ZToKPj4+ Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gCS0ga2VybmVsIHVwZGF0ZSBmcm9tIDMuMTEuNiB0byAzLjE0LjEK Pj4+Pj4+Cj4+Pj4+PiAJLSBXZSBwbGFuIHRvIGludGVncmF0ZSBJbnRlbCBHVlQtZyBhcyBhIGZl YXR1cmUgaW4gaTkxNSBkcml2ZXIuIFRoYXQgZWZmb3J0IGlzIHN0aWxsIHVuZGVyIHJldmlldywg bm90IGluY2x1ZGVkIGluIHRoaXMgdXBkYXRlIHlldAo+Pj4+Pj4KPj4+Pj4+IAktIE5leHQgdXBk YXRlIHdpbGwgYmUgYXJvdW5kIGVhcmx5IEphbiwgMjAxNQo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+PiBU aGlzIHVwZGF0ZSBjb25zaXN0cyBvZjoKPj4+Pj4+Cj4+Pj4+PiAJLSBXaW5kb3dzIEhWTSBzdXBw b3J0IHdpdGggZHJpdmVyIHZlcnNpb24gMTUuMzMuMzkxMAo+Pj4+Pj4KPj4+Pj4+IAktIFN0YWJp bGl0eSBmaXhlcywgZS5nLiBzdGFiaWxpemUgR1BVLCB0aGUgR1BVIGhhbmcgb2NjdXJyZW5jZSBy YXRlIGJlY29tZXMgcmFyZSBub3cKPj4+Pj4+Cj4+Pj4+PiAJLSBIYXJkd2FyZSBNZWRpYSBBY2Nl bGVyYXRpb24gZm9yIERlY29kaW5nL0VuY29kaW5nL1RyYW5zY29kaW5nLCBWQzEsIEgyNjQgZXRj LiBmb3JtYXQgc3VwcG9ydGluZwo+Pj4+Pj4KPj4+Pj4+IAktIERpc3BsYXkgZW5oYW5jZW1lbnRz LCBlLmcuIERQIHR5cGUgaXMgc3VwcG9ydGVkIGZvciB2aXJ0dWFsIFBPUlQKPj4+Pj4+Cj4+Pj4+ PiAJLSBEaXNwbGF5IHBvcnQgY2FwYWJpbGl0eSB2aXJ0dWFsaXphdGlvbjogd2l0aCB0aGlzIGZl YXR1cmUsIGRvbTAgbWFuYWdlciBjb3VsZCBmcmVlbHkgYXNzaWduIHZpcnR1YWwgRERJIHBvcnRz IHRvIFZNLCBub3QgbmVjZXNzYXJ5IHRvIGNoZWNrIHdoZXRoZXIgdGhlIGNvcnJlc3BvbmRpbmcg cGh5c2ljYWwgRERJIHBvcnRzIGFyZSBhdmFpbGFibGUKPj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4KPj4+ Pj4+IFBsZWFzZSByZWZlciB0byB0aGUgbmV3IHNldHVwIGd1aWRlLCB3aGljaCBwcm92aWRlcyBz dGVwLXRvLXN0ZXAgZGV0YWlscyBhYm91dCBidWlsZGluZy9jb25maWd1cmluZy9ydW5uaW5nIElu dGVsIEdWVC1nOgo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+PiAJaHR0cHM6Ly9naXRodWIuY29tLzAxb3Jn L1hlbkdULVByZXZpZXcta2VybmVsL2Jsb2IvbWFzdGVyL1hlbkdUX1NldHVwX0d1aWRlLnBkZgo+ Pj4+Pj4KPj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gVGhlIG5ldyBzb3VyY2UgY29kZXMgYXJlIGF2YWls YWJsZSBhdCB0aGUgdXBkYXRlZCBnaXRodWIgcmVwb3M6Cj4+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+IAlM aW51eDogaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL1hlbkdULVByZXZpZXcta2VybmVsLmdpdAo+ Pj4+Pj4KPj4+Pj4+IAlYZW46IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9YZW5HVC1QcmV2aWV3 LXhlbi5naXQKPj4+Pj4+Cj4+Pj4+PiAJUWVtdTogaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL1hl bkdULVByZXZpZXctcWVtdS5naXQKPj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gTW9yZSBpbmZvcm1hdGlv biBhYm91dCBJbnRlbCBHVlQtZyBiYWNrZ3JvdW5kLCBhcmNoaXRlY3R1cmUsIGV0YyBjYW4gYmUg Zm91bmQgYXQ6Cj4+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+IAlodHRwczovL3d3dy51c2VuaXgub3JnL2Nv bmZlcmVuY2UvYXRjMTQvdGVjaG5pY2FsLXNlc3Npb25zL3ByZXNlbnRhdGlvbi90aWFuCj4+Pj4+ Pgo+Pj4+Pj4gCWh0dHA6Ly9ldmVudHMubGludXhmb3VuZGF0aW9uLm9yZy9zaXRlcy9ldmVudHMv ZmlsZXMvc2xpZGVzL1hlbkdULVhlbiUyMFN1bW1pdC12N18wLnBkZgo+Pj4+Pj4KPj4+Pj4+IAlo dHRwczovLzAxLm9yZy94ZW4vYmxvZ3Mvc3JjbGFya3gvMjAxMy9ncmFwaGljcy12aXJ0dWFsaXph dGlvbi14ZW5ndAo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+PiBUaGUgcHJldmlvdXMgdXBkYXRlIGNhbiBi ZSBmb3VuZCBoZXJlOgo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+PiAJaHR0cDovL2xpc3RzLnhlbi5vcmcv YXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwvMjAxNC0wNy9tc2cwMzI0OC5odG1sCj4+Pj4+Pgo+Pj4+ Pj4KPj4+Pj4+IEFwcHJlY2lhdGUgeW91ciBjb21tZW50cyEKPj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4g LS0KPj4+Pj4+IFRoYW5rcywKPj4+Pj4+IEppa2UKPj4+Pj4+Cj4+Pj4+PiBPbiAwNy8yNS8yMDE0 IDA0OjMxIFBNLCBKaWtlIFNvbmcgd3JvdGU6Cj4+Pj4+Pj4gSGkgYWxsLAo+Pj4+Pj4+Cj4+Pj4+ Pj4gV2UncmUgcGxlYXNlZCB0byBhbm5vdW5jZSBhbiB1cGRhdGUgdG8gSW50ZWwgR3JhcGhpY3Mg VmlydHVhbGl6YXRpb24gVGVjaG5vbG9neSAoSW50ZWwgR1ZULWcsIGZvcm1lcmx5IGtub3duIGFz IFhlbkdUKS4gSW50ZWwgR1ZULWcgaXMgYSBjb21wbGV0ZSB2R1BVIHNvbHV0aW9uIHdpdGggbWVk aWF0ZWQgcGFzcy10aHJvdWdoLCBzdXBwb3J0ZWQgdG9kYXkgb24gNHRoIGdlbmVyYXRpb24gSW50 ZWwgQ29yZShUTSkgcHJvY2Vzc29ycyB3aXRoIEludGVsIEdyYXBoaWNzIHByb2Nlc3NvcnMuIEEg dmlydHVhbCBHUFUgaW5zdGFuY2UgaXMgbWFpbnRhaW5lZCBmb3IgZWFjaCBWTSwgd2l0aCBwYXJ0 IG9mIHBlcmZvcm1hbmNlIGNyaXRpY2FsIHJlc291cmNlcyBkaXJlY3RseSBhc3NpZ25lZC4gVGhl IGNhcGFiaWxpdHkgb2YgcnVubmluZyBuYXRpdmUgZ3JhcGhpY3MgZHJpdmVyIGluc2lkZSBhIFZN LCB3aXRob3V0IGh5cGVydmlzb3IgaW50ZXJ2ZW50aW9uIGluIHBlcmZvcm1hbmNlIGNyaXRpY2Fs IHBhdGhzLCBhY2hpZXZlcyBhIGdvb2QgYmFsYW5jZSBhbW9uZyBwZXJmb3JtYW5jZSwgZmVhdHVy ZSwgYW5kIHNoYXJpbmcgY2FwYWJpbGl0eS4gVGhvdWdoIHdlIG9ubHkgc3VwcG9ydCBYZW4gb24g SW50ZWwgUHJvY2Vzc29yIEdyYXBoaWNzIHNvIGZhciwgdGhlIGNvcmUgbG9naWMgY2FuIGJlIGVh c2lseSBwb3J0ZWQgdG8gb3RoZXIgaHlwZXJ2aXNvcnMuCj4+Pj4+Pj4KPj4+Pj4+PiBUaGUgbmV3 cyBvZiB0aGlzIHVwZGF0ZToKPj4+Pj4+Pgo+Pj4+Pj4+IAktIFByb2plY3QgY29kZSBuYW1lIGlz ICJYZW5HVCIsIG5vdyBvZmZpY2lhbCBuYW1lIGlzIEludGVsIEdyYXBoaWNzIFZpcnR1YWxpemF0 aW9uIFRlY2hub2xvZ3kgKEludGVsIEdWVC1nKQo+Pj4+Pj4+IAktIEN1cnJlbnRseSBJbnRlbCBH VlQtZyBzdXBwb3J0cyBJbnRlbCBQcm9jZXNzb3IgR3JhcGhpY3MgYnVpbHQgaW50byA0dGggZ2Vu ZXJhdGlvbiBJbnRlbCBDb3JlIHByb2Nlc3NvcnMgLSBIYXN3ZWxsIHBsYXRmb3JtCj4+Pj4+Pj4g CS0gTW92aW5nIGZvcndhcmQsIFhlbkdUIHdpbGwgY2hhbmdlIHRvIHF1YXJ0ZXJseSByZWxlYXNl IGNhZGVuY2UuIE5leHQgdXBkYXRlIHdpbGwgYmUgYXJvdW5kIGVhcmx5IE9jdG9iZXIsIDIwMTQu Cj4+Pj4+Pj4KPj4+Pj4+PiBUaGlzIHVwZGF0ZSBjb25zaXN0cyBvZjoKPj4+Pj4+Pgo+Pj4+Pj4+ IAktIFN0YWJpbGl0eSBmaXhlcywgZS5nLiBzdGFibGUgRFAgc3VwcG9ydAo+Pj4+Pj4+IAktIERp c3BsYXkgZW5oYW5jZW1lbnRzLCBlLmcuIHZpcnR1YWwgbW9uaXRvciBzdXBwb3J0LiBVc2VycyBj YW4gZGVmaW5lIGEgdmlydHVhbCBtb25pdG9yIHR5cGUgd2l0aCBjdXN0b21pemVkIEVESUQgZm9y IHZpcnR1YWwgbWFjaGluZXMsIG5vdCBuZWNlc3NhcmlseSB0aGUgc2FtZSBhcyBwaHlzaWNhbCBt b25pdG9ycy4KPj4+Pj4+PiAJLSBJbXByb3ZlZCBzdXBwb3J0IGZvciBHUFUgcmVjb3ZlcnkKPj4+ Pj4+PiAJLSBFeHBlcmltZW50YWwgV2luZG93cyBIVk0gc3VwcG9ydC4gVG8gZG93bmxvYWQgdGhl IGV4cGVyaW1lbnRhbCB2ZXJzaW9uLCBzZWUgc2V0dXAgZ3VpZGUgZm9yIGRldGFpbHMKPj4+Pj4+ PiAJLSBFeHBlcmltZW50YWwgSGFyZHdhcmUgTWVkaWEgQWNjZWxlcmF0aW9uIGZvciBkZWNvZGlu Zy4KPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4gUGxlYXNlIHJlZmVyIHRvIHRoZSBuZXcgc2V0dXAg Z3VpZGUsIHdoaWNoIHByb3ZpZGVzIHN0ZXAtdG8tc3RlcCBkZXRhaWxzIGFib3V0IGJ1aWxkaW5n L2NvbmZpZ3VyaW5nL3J1bm5pbmcgSW50ZWwgR1ZULWc6Cj4+Pj4+Pj4KPj4+Pj4+PiAJaHR0cHM6 Ly9naXRodWIuY29tLzAxb3JnL1hlbkdULVByZXZpZXcta2VybmVsL2Jsb2IvbWFzdGVyL1hlbkdU X1NldHVwX0d1aWRlLnBkZgo+Pj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+PiBUaGUgbmV3IHNvdXJjZSBj b2RlcyBhcmUgYXZhaWxhYmxlIGF0IHRoZSB1cGRhdGVkIGdpdGh1YiByZXBvczoKPj4+Pj4+Pgo+ Pj4+Pj4+IAlMaW51eDogaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL1hlbkdULVByZXZpZXcta2Vy bmVsLmdpdAo+Pj4+Pj4+IAlYZW46IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9YZW5HVC1QcmV2 aWV3LXhlbi5naXQKPj4+Pj4+PiAJUWVtdTogaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL1hlbkdU LVByZXZpZXctcWVtdS5naXQKPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4gTW9yZSBpbmZvcm1hdGlv biBhYm91dCBJbnRlbCBHVlQtZyBiYWNrZ3JvdW5kLCBhcmNoaXRlY3R1cmUsIGV0YyBjYW4gYmUg Zm91bmQgYXQ6Cj4+Pj4+Pj4KPj4+Pj4+PiAJaHR0cHM6Ly93d3cudXNlbml4Lm9yZy9jb25mZXJl bmNlL2F0YzE0L3RlY2huaWNhbC1zZXNzaW9ucy9wcmVzZW50YXRpb24vdGlhbgo+Pj4+Pj4+IAlo dHRwOi8vZXZlbnRzLmxpbnV4Zm91bmRhdGlvbi5vcmcvc2l0ZXMvZXZlbnRzL2ZpbGVzL3NsaWRl cy9YZW5HVC1YZW4lMjBTdW1taXQtdjdfMC5wZGYKPj4+Pj4+PiAJaHR0cHM6Ly8wMS5vcmcveGVu L2Jsb2dzL3NyY2xhcmt4LzIwMTMvZ3JhcGhpY3MtdmlydHVhbGl6YXRpb24teGVuZ3QKPj4+Pj4+ Pgo+Pj4+Pj4+IFRoZSBwcmV2aW91cyB1cGRhdGUgY2FuIGJlIGZvdW5kIGhlcmU6Cj4+Pj4+Pj4K Pj4+Pj4+PiAJaHR0cDovL2xpc3RzLnhlbi5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwvMjAx NC0wMi9tc2cwMTg0OC5odG1sCj4+Pj4+Pj4KPj4+Pj4+PiBBcHByZWNpYXRlIHlvdXIgY29tbWVu dHMhCj4+Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+PiAtLQo+Pj4+Pj4+IFRo YW5rcywKPj4+Pj4+PiBKaWtlCj4+Pj4+Pj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==