From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jike Song Subject: Re: [ANNOUNCE] 2016-Q3 release of KVMGT (Was Re: KVMGT - the implementation of ...) Date: Sun, 06 Nov 2016 23:23:58 +0800 Message-ID: <581F4B0E.5030203@intel.com> References: <547FC5DE.4010701@intel.com> <562F45B4.70004@intel.com> <56A86482.4090009@intel.com> <5711DC3B.9010102@intel.com> <578F039A.8080805@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 ESMTPS id 0A7156E211 for ; Sun, 6 Nov 2016 15:27:33 +0000 (UTC) In-Reply-To: <578F039A.8080805@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: kvm@vger.kernel.org, igvt-g@lists.01.org, intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: "Reddy, Raghuveer" , "Li, Weinan Z" , "Cowperthwaite, David J" , "Li, Susie" , "Dong, Eddie" , Zhiyuan Lv , "Zhang, Yipeng" , "Downs, Mike" , "Wang, Hongbo" List-Id: intel-gfx@lists.freedesktop.org SGkgYWxsLAoKV2hpbGUgc3BlbmRpbmcgZWZmb3J0cyBmb3IgdXBzdHJlYW1pbmcsIHdlIGFyZSBw bGVhc2VkIHRvIGFubm91bmNlIGFub3RoZXIgdXBkYXRlIG9mIEludGVsIEdWVC1nIGZvciBLVk0u CgpJbnRlbCBHVlQtZyBmb3IgS1ZNIChhLmsuYS4gS1ZNR1QpIGlzIGEgZnVsbCBHUFUgdmlydHVh bGl6YXRpb24gc29sdXRpb24gd2l0aCBtZWRpYXRlZCBwYXNzLXRocm91Z2gsIHN0YXJ0aW5nIGZy b20gNXRoIGdlbmVyYXRpb24gSW50ZWwgQ29yZShUTSkgcHJvY2Vzc29ycyB3aXRoIEludGVsIEdy YXBoaWNzIHByb2Nlc3NvcnMuICBBIHZpcnR1YWwgR1BVIGluc3RhbmNlIGlzIG1haW50YWluZWQg Zm9yIGVhY2ggVk0sIHdpdGggcGFydCBvZiBwZXJmb3JtYW5jZSBjcml0aWNhbCByZXNvdXJjZXMg ZGlyZWN0bHkgYXNzaWduZWQuIFRoZSBjYXBhYmlsaXR5IG9mIHJ1bm5pbmcgbmF0aXZlIGdyYXBo aWNzIGRyaXZlciBpbnNpZGUgYSBWTSwgd2l0aG91dCBoeXBlcnZpc29yIGludGVydmVudGlvbiBp biBwZXJmb3JtYW5jZSBjcml0aWNhbCBwYXRocywgYWNoaWV2ZXMgYSBnb29kIGJhbGFuY2UgYW1v bmcgcGVyZm9ybWFuY2UsIGZlYXR1cmUsIGFuZCBzaGFyaW5nIGNhcGFiaWxpdHkuCiAgICAKUmVw b3NpdG9yaWVzOgoKLSAgICBLZXJuZWw6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9pZ3Z0Zy1r ZXJuZWwgKDIwMTZxMy00LjMuMCBicmFuY2gpCi0gICAgUWVtdTogaHR0cHM6Ly9naXRodWIuY29t LzAxb3JnL2lndnRnLXFlbXUgKDIwMTZxMy0yLjMuMCBicmFuY2gpCgpUaGlzIHVwZGF0ZSBjb25z aXN0cyBvZjoKLSAgICBQcmVsaW1pbmFyeSBzdXBwb3J0IG5ldyBwbGF0Zm9ybTogS2FieUxha2Us IGZvciB3aW5kb3dzIE9TLCBpdCBvbmx5IHN1cHBvcnRzIFdpbjEwIFJlZFN0b25lIDY0IGJpdC4K LSAgICBXaW5kb3dzIDEwIFJlZFN0b25lIGd1ZXN0IFN1cHBvcnQKLSAgICBXaW5kb3dzIEd1ZXN0 IFFvUyBwcmVsaW1pbmFyeSBzdXBwb3J0OiAgQWRtaW5pc3RyYXRvcnMgbm93IGFyZSBhYmxlIHRv IGNvbnRyb2wgdGhlIG1heGltdW0gYW1vdW50IG9mIHZHUFUgcmVzb3VyY2UgdG8gYmUgY29uc3Vt ZWQgYnkgZWFjaCBWTSBmcm9tIHZhbHVlIDElIH4gOTklIgotICAgIERpc3BsYXkgdmlydHVhbGl6 YXRpb24gcHJlbGltaW5hcnkgc3VwcG9ydDogQmVzaWRlcyB0aGUgdHJhY2tpbmcgb2YgZGlzcGxh eSByZWdpc3RlciB2aXNpdCBpbiBndWVzdCBWTSwgcmVtb3ZpbmcgaXJyZWxhdGl2ZSBkaXNwbGF5 IHBpcGVsaW5lIGluZm8gYmV0d2VlbiBob3N0IGFuZCBndWVzdCBWTQotICAgIExpdmUgTWlncmF0 aW9uIGFuZCBzYXZldm0vcmVzdG9yZXZtIHByZWxpbWluYXJ5IHN1cHBvcnQgb24gQkRXIHdpdGgg MkQvM0Qgd29ya2xvYWQgcnVubmluZwoKS25vd24gaXNzdWVzOgotICAgQXQgbGVhc3QgMkdCIG1l bW9yeSBpcyBzdWdnZXN0ZWQgZm9yIEd1ZXN0IFZpcnR1YWwgTWFjaGluZSAod2luNy0zMi82NCwg d2luOC4xLTY0LCB3aW4xMC02NCkgdG8gcnVuIG1vc3QgM0Qgd29ya2xvYWRzCi0gICBXaW5kb3dz OCBhbmQgbGF0ZXIgV2luZG93cyBmYXN0IGJvb3QgaXMgbm90IHN1cHBvcnRlZCwgdGhlIHdvcmth cm91bmQgaXMgdG8gZGlzYWJsZSBwb3dlciBTMy9TNCBpbiBIVk0gZmlsZSBieSBhZGRpbmcgImFj cGlfUzM9MCwgYWNwaV9TND0wIgotICAgU29tZXRpbWVzIHdoZW4gZG9tMCBhbmQgZ3Vlc3QgaGFz IGhlYXZ5IHdvcmtsb2FkLCBpOTE1IGluIGRvbTAgd2lsbCB0cmlnZ2VyIGEgZmFsc2UtYWxhcm1l ZCBURFIuIFRoZSB3b3JrYXJvdW5kIGlzIHRvIGRpc2FibGUgZG9tMCBoYW5nY2hlY2sgaW4gZG9t MCBncnViIGZpbGUgYnkgYWRkaW5nICJpOTE1LmVuYWJsZV9oYW5nY2hlY2s9MCIKLSAgIFN0YWJp bGl0eTogV2hlbiBRb1MgZmVhdHVyZSBpcyBlbmFibGVkLCBXaW5kb3dzIGd1ZXN0IGZ1bGwgR1BV IHJlc2V0IGlzIG9mdGVuIHRyaWdnZXIgZHVyaW5nIE1UQkYgdGVzdC4gIFRoaXMgYnVnIHdpbGwg YmUgZml4ZWQgaW4gbmV4dCByZWxlYXNlCi0gICBXaW5kb3dzIGd1ZXN0IHJ1bm5pbmcgT3BlbkNM IGFsbG9jYXRpb25zIG9jY3VycyB0byBob3N0IGNyYXNoOyB0aGUgd29ya2Fyb3VuZCBpcyB0byBk aXNhYmxlIGxvZ2QgaW4gZG9tMCBncnViIGZpbGUgYnkgYWRkaW5nICJpOTE1LmxvZ2RfZW5hYmxl PTAiCgpQbGVhc2Ugc3Vic2NyaWJlIHRoZSBtYWlsaW5nIGxpc3Q6IGh0dHBzOi8vbGlzdHMuMDEu b3JnL21haWxtYW4vbGlzdGluZm8vaWd2dC1nCgpPZmZpY2lhbCBpR1ZULWcgcG9ydGFsOiBodHRw czovLzAxLm9yZy9pZ3Z0LWcKCk1vcmUgaW5mb3JtYXRpb24gYWJvdXQgYmFja2dyb3VuZCwgYXJj aGl0ZWN0dXJlIGFuZCBvdGhlcnMgYWJvdXQgSW50ZWwgR1ZULWcsIGNhbiBiZSBmb3VuZCBhdDoK CiAgICBodHRwOi8vd3d3LmxpbnV4LWt2bS5vcmcvaW1hZ2VzL2YvZjMvMDF4MDhiLUtWTUdULWEu cGRmCiAgICBodHRwczovL3d3dy51c2VuaXgub3JnL2NvbmZlcmVuY2UvYXRjMTQvdGVjaG5pY2Fs LXNlc3Npb25zL3ByZXNlbnRhdGlvbi90aWFuCgoKTm90ZToKVGhlIEtWTUdUIHByb2plY3Qgc2hv dWxkIGJlIGNvbnNpZGVyZWQgYSB3b3JrIGluIHByb2dyZXNzLiBBcyBzdWNoIGl0IGlzIG5vdCBh IGNvbXBsZXRlIHByb2R1Y3Qgbm9yIHNob3VsZCBpdCBiZSBjb25zaWRlcmVkIG9uZS4gRXh0cmEg Y2FyZSBzaG91bGQgYmUgdGFrZW4gd2hlbiB0ZXN0aW5nIGFuZCBjb25maWd1cmluZyBhIHN5c3Rl bSB0byB1c2UgdGhlIEtWTUdUIHByb2plY3QuCgotLQpUaGFua3MsCkppa2UKCk9uIDA3LzIwLzIw MTYgMTI6NTIgUE0sIEppa2UgU29uZyB3cm90ZToKPiBIaSBhbGwsCj4gCj4gV2UgYXJlIHBsZWFz ZWQgdG8gYW5ub3VuY2UgYW5vdGhlciB1cGRhdGUgb2YgSW50ZWwgR1ZULWcgZm9yIEtWTS4KPiAK PiBJbnRlbCBHVlQtZyBmb3IgS1ZNIChhLmsuYS4gS1ZNR1QpIGlzIGEgZnVsbCBHUFUgdmlydHVh bGl6YXRpb24gc29sdXRpb24gd2l0aCBtZWRpYXRlZCBwYXNzLXRocm91Z2gsIHN0YXJ0aW5nIGZy b20gNXRoIGdlbmVyYXRpb24gSW50ZWwgQ29yZeKEoiBwcm9jZXNzb3JzIHdpdGggSW50ZWwgR3Jh cGhpY3MgcHJvY2Vzc29ycy4gIEEgdmlydHVhbCBHUFUgaW5zdGFuY2UgaXMgbWFpbnRhaW5lZCBm b3IgZWFjaCBWTSwgd2l0aCBwYXJ0IG9mIHBlcmZvcm1hbmNlIGNyaXRpY2FsIHJlc291cmNlcyBk aXJlY3RseSBhc3NpZ25lZC4gVGhlIGNhcGFiaWxpdHkgb2YgcnVubmluZyBuYXRpdmUgZ3JhcGhp Y3MgZHJpdmVyIGluc2lkZSBhIFZNLCB3aXRob3V0IGh5cGVydmlzb3IgaW50ZXJ2ZW50aW9uIGlu IHBlcmZvcm1hbmNlIGNyaXRpY2FsIHBhdGhzLCBhY2hpZXZlcyBhIGdvb2QgYmFsYW5jZSBhbW9u ZyBwZXJmb3JtYW5jZSwgZmVhdHVyZSwgYW5kIHNoYXJpbmcgY2FwYWJpbGl0eS4KPiAgICAgCj4g UmVwb3NpdG9yaWVzOgo+IAo+ICAgIC0gS2VybmVsOiBodHRwczovL2dpdGh1Yi5jb20vMDFvcmcv aWd2dGcta2VybmVsICgyMDE2cTItNC4zLjAgYnJhbmNoKQo+ICAgIC0gUWVtdTogaHR0cHM6Ly9n aXRodWIuY29tLzAxb3JnL2lndnRnLXFlbXUgKDIwMTZxMi0yLjMuMCBicmFuY2gpCj4gCj4gVGhp cyB1cGRhdGUgY29uc2lzdHMgb2Y6Cj4gICAgLSBLVk1HVCBzdGFibGUgcmVsZWFzZSBmb3IgWGVv biBFMyB2NCAoQnJvYWR3ZWxsKSwgRTMgdjUoU2t5bGFrZSksIEludGVsIENvcmXihKIgcHJvY2Vz c29ycyA1dGggZ2VuZXJhdGlvbiAoQm9hZHdlbGwpICwgNnRoIGdlbmVyYXRpb24gKFNreWxha2Up Cj4gICAgLSAyRC8zRC9NZWRpYSB3b3JrbG9hZHMgY2FuIHJ1biBzaW11bHRhbmVvdXNseSBpbiBt dWx0aXBsZSBndWVzdHMKPiAKPiBLbm93biBpc3N1ZXM6Cj4gICAgLSBBdCBsZWFzdCAyR0IgbWVt b3J5IGlzIHN1Z2dlc3RlZCBmb3IgR3Vlc3QgVmlydHVhbCBNYWNoaW5lIChWTSkgdG8gcnVuIG1v c3QgM0Qgd29ya2xvYWRzLgo+ICAgIC0gVXNpbmcgV2luZG93cyBNZWRpYSBQbGF5ZXIgcGxheSB2 aWRlb3MgbWF5IGNhdXNlIGhvc3QgY3Jhc2guIFVzaW5nIFZMQyB0byBwbGF5IC5vZ2cgZmlsZSBt YXkgY2F1c2UgbW9zYWljIG9yIHNsb3cgcmVzcG9uc2UuCj4gICAgLSBTdWdnZXN0IHRvIFggd2lu ZG93IG1vZGUgbGlrZSB4aW5pdCBpbnN0ZWFkIG9mIGxpZ2h0ZG0gdG8gbGF1bmNoIGhvc3QgaWYg cnVubmluZyBoZWF2eSB3b3JrbG9hZCBpbiBib3RoIGd1ZXN0IGFuZCBob3N0IGZvciBtb3JlIHRo YW4gNiBob3Vycy4KPiAgICAtIENoYW5nZSBpOTE1LnByZWVtcHRpb25fcG9saWN5PTMgaW4gaG9z dCBrZXJuZWwgY21kbGluZSwgaWYgeW91IHNlZSBwcm9ibGVtIHdoZW4gcnVubmluZyBoZWF2eSAz RCB3b3JrbG9hZHMgaW4gbXVsdGlwbGUgR3Vlc3RzICg+PTMpIGluIHNvbWUgZXh0cmVtZSBzdHJl c3MgY29uZmlndXJhdGlvbi4KPiAKPiAKPiBQbGVhc2Ugc3Vic2NyaWJlIHRvIGpvaW4gdGhlIG1h aWxpbmcgbGlzdDoKPiAgICAtIGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlzdGluZm8v aWd2dC1nCj4gCj4gT2ZmaWNpYWwgaUdWVC1nIHBvcnRhbDoKPiAgICAtIGh0dHBzOi8vMDEub3Jn L2lndnQtZwo+IAo+IE1vcmUgaW5mb3JtYXRpb24gYWJvdXQgYmFja2dyb3VuZCwgYXJjaGl0ZWN0 dXJlIGFuZCBvdGhlcnMgYWJvdXQgSW50ZWwgR1ZULWcsIGNhbiBiZSBmb3VuZCBhdDoKPiAKPiAg ICAgaHR0cDovL3d3dy5saW51eC1rdm0ub3JnL2ltYWdlcy9mL2YzLzAxeDA4Yi1LVk1HVC1hLnBk Zgo+ICAgICBodHRwczovL3d3dy51c2VuaXgub3JnL2NvbmZlcmVuY2UvYXRjMTQvdGVjaG5pY2Fs LXNlc3Npb25zL3ByZXNlbnRhdGlvbi90aWFuCj4gCj4gCj4gTm90ZToKPiBUaGUgS1ZNR1QgcHJv amVjdCBzaG91bGQgYmUgY29uc2lkZXJlZCBhIHdvcmsgaW4gcHJvZ3Jlc3MuIEFzIHN1Y2ggaXQg aXMgbm90IGEgY29tcGxldGUgcHJvZHVjdCBub3Igc2hvdWxkIGl0IGJlIGNvbnNpZGVyZWQgb25l LiBFeHRyYSBjYXJlIHNob3VsZCBiZSB0YWtlbiB3aGVuIHRlc3RpbmcgYW5kIGNvbmZpZ3VyaW5n IGEgc3lzdGVtIHRvIHVzZSB0aGUgS1ZNR1QgcHJvamVjdC4KPiAKPiAKPiAtLQo+IFRoYW5rcywK PiBKaWtlCj4gCj4gT24gMDQvMTYvMjAxNiAwMjozMSBQTSwgSmlrZSBTb25nIHdyb3RlOgo+PiBI aSBhbGwsCj4+Cj4+IFdlIGFyZSBwbGVhc2VkIHRvIGFubm91bmNlIGFub3RoZXIgdXBkYXRlIG9m IEludGVsIEdWVC1nIGZvciBLVk0uCj4+Cj4+IEludGVsIEdWVC1nIGZvciBLVk0gKGEuay5hLiBL Vk1HVCkgaXMgYSBmdWxsIEdQVSB2aXJ0dWFsaXphdGlvbiBzb2x1dGlvbiB3aXRoIG1lZGlhdGVk IHBhc3MtdGhyb3VnaCwgc3RhcnRpbmcgZnJvbSA0dGggZ2VuZXJhdGlvbiBJbnRlbCBDb3JlKFRN KSBwcm9jZXNzb3JzIHdpdGggSW50ZWwgR3JhcGhpY3MgcHJvY2Vzc29ycy4gIEEgdmlydHVhbCBH UFUgaW5zdGFuY2UgaXMgbWFpbnRhaW5lZCBmb3IgZWFjaCBWTSwgd2l0aCBwYXJ0IG9mIHBlcmZv cm1hbmNlIGNyaXRpY2FsIHJlc291cmNlcyBkaXJlY3RseSBhc3NpZ25lZC4gVGhlIGNhcGFiaWxp dHkgb2YgcnVubmluZyBuYXRpdmUgZ3JhcGhpY3MgZHJpdmVyIGluc2lkZSBhIFZNLCB3aXRob3V0 IGh5cGVydmlzb3IgaW50ZXJ2ZW50aW9uIGluIHBlcmZvcm1hbmNlIGNyaXRpY2FsIHBhdGhzLCBh Y2hpZXZlcyBhIGdvb2QgYmFsYW5jZSBhbW9uZyBwZXJmb3JtYW5jZSwgZmVhdHVyZSwgYW5kIHNo YXJpbmcgY2FwYWJpbGl0eS4KPj4KPj4KPj4gUmVwb3NpdG9yaWVzOgo+Pgo+PiBLZXJuZWw6IGh0 dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9pZ3Z0Zy1rZXJuZWwgKDIwMTZxMS00LjMuMCBicmFuY2gp Cj4+IFFlbXU6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9pZ3Z0Zy1xZW11ICgyMDE2cTEtMi4z LjAgYnJhbmNoKQo+Pgo+Pgo+PiBUaGlzIHVwZGF0ZSBjb25zaXN0cyBvZjoKPj4KPj4gLSBLVk1H VCBub3cgaGFzIGJldHRlciBzdXBwb3J0IGZvciA1dGggZ2VuZXJhdGlvbiAoQnJvYWR3ZWxsKSBJ bnRlbCBDb3JlKFRNKSBwcm9jZXNzb3JzLCBYZW9uKFIpIEUzIHY0Cj4+IC0gQSBuZXcgZmVhdHVy ZSwgUUVNVSBjb21wb3NpdG9yIGRpc3BsYXkgaXMgYWRkZWQgdG8gc3VwcG9ydCBkaXNwbGF5IFZN IGluIFFFTVUgd2luZG93LiAodXNlIGk5MTUuZW5hYmxlX3ZndGJ1ZmZlcj0xIGluIGtlcm5lbCBj b21tYW5kIGxpbmUgdG8gZW5hYmxlIHRoaXMgZmVhdHVyZSwgZGlzYWJsZWQgYnkgZGVmYXVsdCwg ZGV0YWlscyBwbGVhc2UgcmVmZXIgdG8gdGhlIFNldHVwIEd1aWRlKQo+PiAtIDJELzNEL01lZGlh IHdvcmtsb2FkcyBjYW4gYmUgcnVuIHNpbXVsdGFuZW91c2x5IGluIG11bHRpcGxlIGd1ZXN0cy4K Pj4gLSBTdXBwb3J0IGJvdGggV2luZG93cyBHdWVzdCBhbmQgTGludXggR3Vlc3QoV2luNy0zMiwg V2luNy02NCwgV2luOC4xLTY0LCBVYnVudHUxNC4wNC02NCkKPj4gLSBIb3N0IExpbnV4IGtlcm5l bCBoYXMgYmVlbiB1cGdyYWRlZCBmcm9tIDQuMi4wIHRvIDQuMy4wIChiYXNlZCBvbiBkcm0taW50 ZWwpCj4+IC0gS1ZNR1QgaGFzIHByZWxpbWluYXJ5IHN1cHBvcnQgZm9yIDZ0aCBnZW5lcmF0aW9u IChTa3lsYWtlKSBJbnRlbCBDb3JlKFRNKSBwcm9jZXNzb3JzLgo+Pgo+Pgo+PiBLbm93biBpc3N1 ZXM6Cj4+Cj4+ICAgIC0gQXQgbGVhc3QgMkdCIG1lbW9yeSBpcyBzdWdnZXN0ZWQgZm9yIFZNIHRv IHJ1biBtb3N0IDNEIHdvcmtsb2Fkcy4KPj4gICAgLSBPbiBzb21lIHBhcnRpY3VsYXIgcGxhdGZv cm0sIGFzc2lnbmluZyA+MkcgbWVtb3J5IHRvIFZNIHdpbGwgY2F1c2UgTGludXggVk0gZmFpbGVk IHRvIGJvb3QgdXAgYW5kIFdpbmRvd3MgVk0gZmFpbGVkIHRvIGxvYWQgR0ZYIGRyaXZlci4KPj4g ICAgLSBVc2luZyBWTEMgdG8gcGxheSAub2dnIGZpbGUgbWF5IGNhdXNlIG1vc2FpYyBvciBzbG93 IHJlc3BvbnNlLgo+PiAgICAtIFJ1bm5pbmcgaGVhdnkgM0Qgd29ya2xvYWRzIGluIG11bHRpcGxl IGd1ZXN0cyBmb3IgY291cGxlIG9mIGhvdXJzIG1heSBjYXVzZSBzdGFiaWxpdHkgaXNzdWUuKHVz ZSBpOTE1LnByZWVtcHRpb25fcG9saWN5PTMgaW4gaG9zdCBrZXJuZWwgY21kIGxpbmUgY2FuIHdv cmsgYXJvdW5kIHRoaXMgc3RhYmlsaXR5IGlzc3VlKQo+Pgo+Pgo+PiBQbGVhc2Ugc3Vic2NyaWJl IHRvIGpvaW4gdGhlIG1haWxpbmcgbGlzdDogaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9s aXN0aW5mby9pZ3Z0LWcKPj4KPj4gT2ZmaWNpYWwgaUdWVC1nIHBvcnRhbDogaHR0cHM6Ly8wMS5v cmcvaWd2dC1nCj4+Cj4+IE1vcmUgaW5mb3JtYXRpb24gYWJvdXQgYmFja2dyb3VuZCwgYXJjaGl0 ZWN0dXJlIGFuZCBvdGhlcnMgYWJvdXQgSW50ZWwgR1ZULWcsIGNhbiBiZSBmb3VuZCBhdDoKPj4K Pj4KPj4gICAgIGh0dHA6Ly93d3cubGludXgta3ZtLm9yZy9pbWFnZXMvZi9mMy8wMXgwOGItS1ZN R1QtYS5wZGYKPj4gICAgIGh0dHBzOi8vd3d3LnVzZW5peC5vcmcvY29uZmVyZW5jZS9hdGMxNC90 ZWNobmljYWwtc2Vzc2lvbnMvcHJlc2VudGF0aW9uL3RpYW4KPj4KPj4KPj4gVGhlIHVwc3RyZWFt aW5nIGVmZm9ydCBvZiBpR1ZULWcgcHJvamVjdCBpcyBvbmdvaW5nIGVsc2V3aGVyZSwgbm90IGFz IGEgcGFydCBvZiB0aGlzIHJlbGVhc2UuCj4+Cj4+Cj4+IE5vdGU6Cj4+Cj4+IFRoZSBLVk1HVCBw cm9qZWN0IHNob3VsZCBiZSBjb25zaWRlcmVkIGEgd29yayBpbiBwcm9ncmVzcy4gQXMgc3VjaCBp dCBpcyBub3QgYSBjb21wbGV0ZSBwcm9kdWN0IG5vciBzaG91bGQgaXQgYmUgY29uc2lkZXJlZCBv bmUuIEV4dHJhIGNhcmUgc2hvdWxkIGJlIHRha2VuIHdoZW4gdGVzdGluZyBhbmQgY29uZmlndXJp bmcgYSBzeXN0ZW0gdG8gdXNlIHRoZSBLVk1HVCBwcm9qZWN0Lgo+Pgo+Pgo+PiAtLQo+PiBUaGFu a3MsCj4+IEppa2UKPj4KPj4gT24gMDEvMjcvMjAxNiAwMjozMiBQTSwgSmlrZSBTb25nIHdyb3Rl Ogo+Pj4gSGkgYWxsLAo+Pj4KPj4+IFdlIGFyZSBwbGVhc2VkIHRvIGFubm91bmNlIGFub3RoZXIg dXBkYXRlIG9mIEludGVsIEdWVC1nIGZvciBLVk0uCj4+Pgo+Pj4gSW50ZWwgR1ZULWcgZm9yIEtW TSAoYS5rLmEuIEtWTUdUKSBpcyBhIGZ1bGwgR1BVIHZpcnR1YWxpemF0aW9uIHNvbHV0aW9uIHdp dGggbWVkaWF0ZWQgcGFzcy10aHJvdWdoLCBzdGFydGluZyBmcm9tIDR0aCBnZW5lcmF0aW9uIElu dGVsIENvcmUoVE0pIHByb2Nlc3NvcnMgd2l0aCBJbnRlbCBHcmFwaGljcyBwcm9jZXNzb3JzLiAg QSB2aXJ0dWFsIEdQVSBpbnN0YW5jZSBpcyBtYWludGFpbmVkIGZvciBlYWNoIFZNLCB3aXRoIHBh cnQgb2YgcGVyZm9ybWFuY2UgY3JpdGljYWwgcmVzb3VyY2VzIGRpcmVjdGx5IGFzc2lnbmVkLiBU aGUgY2FwYWJpbGl0eSBvZiBydW5uaW5nIG5hdGl2ZSBncmFwaGljcyBkcml2ZXIgaW5zaWRlIGEg Vk0sIHdpdGhvdXQgaHlwZXJ2aXNvciBpbnRlcnZlbnRpb24gaW4gcGVyZm9ybWFuY2UgY3JpdGlj YWwgcGF0aHMsIGFjaGlldmVzIGEgZ29vZCBiYWxhbmNlIGFtb25nIHBlcmZvcm1hbmNlLCBmZWF0 dXJlLCBhbmQgc2hhcmluZyBjYXBhYmlsaXR5Lgo+Pj4KPj4+IFJlcG9zaXRvcmllczoKPj4+Cj4+ PiAJS2VybmVsOiBodHRwczovL2dpdGh1Yi5jb20vMDFvcmcvaWd2dGcta2VybmVsICgyMDE1cTQt NC4yLjAgYnJhbmNoKQo+Pj4gCVFlbXU6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9pZ3Z0Zy1x ZW11IChrdm1ndF9wdWJsaWMyMDE1cTQgYnJhbmNoKQo+Pj4KPj4+IFRoaXMgdXBkYXRlIGNvbnNp c3RzIG9mOgo+Pj4KPj4+IAktIEtWTUdUIG5vdyBoYXMgYmV0dGVyIHN1cHBvcnQgZm9yIDV0aCBn ZW5lcmF0aW9uIChCcm9hZHdlbGwpIEludGVsIENvcmUoVE0pIHByb2Nlc3NvcnMsIDJELzNEL01l ZGlhIHdvcmtsb2FkcyBjYW4gYmUgcnVuIHNpbXVsdGFuZW91c2x5IGluIG11bHRpcGxlIGd1ZXN0 cy4KPj4+IAktIEhvc3QgTGludXgga2VybmVsIGhhcyBiZWVuIHVwZ3JhZGVkIGZyb20gMy4xOC4w IHRvIDQuMi4wIChiYXNlZCBvbiBkcm0taW50ZWwpCj4+Pgo+Pj4gTmV4dCB1cGRhdGUgd2lsbCBi ZSBhcm91bmQgZWFybHkgQXByaWwsIDIwMTYuCj4+Pgo+Pj4gS25vd24gaXNzdWVzOgo+Pj4KPj4+ IAktIEF0IGxlYXN0IDJHQiBtZW1vcnkgaXMgc3VnZ2VzdGVkIGZvciBWTSB0byBydW4gbW9zdCAz RCB3b3JrbG9hZHMuCj4+PiAJLSBVc2luZyBWTEMgdG8gcGxheSAub2dnIGZpbGUgbWF5IGNhdXNl IG1vc2FpYyBvciBzbG93IHJlc3BvbnNlLgo+Pj4gCS0gUnVubmluZyBoZWF2eSAzRCB3b3JrbG9h ZHMgaW4gbXVsdGlwbGUgZ3Vlc3RzIGZvciBjb3VwbGUgb2YgaG91cnMgbWF5IGNhdXNlIHN0YWJp bGl0eSBpc3N1ZS4KPj4+Cj4+PiBPZmZpY2lhbCBpR1ZULWcgcG9ydGFsOiBodHRwczovLzAxLm9y Zy9pZ3Z0LWcKPj4+IFBsZWFzZSBzdWJzY3JpYmUgdGhlIG1haWxpbmcgbGlzdDogaHR0cHM6Ly9s aXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3Z0LWcKPj4+Cj4+PiBNb3JlIGluZm9ybWF0 aW9uIGFib3V0IGJhY2tncm91bmQsIGFyY2hpdGVjdHVyZSBhbmQgb3RoZXJzIGFib3V0IEludGVs IEdWVC1nLCBjYW4gYmUgZm91bmQgYXQ6Cj4+Pgo+Pj4gCWh0dHA6Ly93d3cubGludXgta3ZtLm9y Zy9pbWFnZXMvZi9mMy8wMXgwOGItS1ZNR1QtYS5wZGYKPj4+IAlodHRwczovL3d3dy51c2VuaXgu b3JnL2NvbmZlcmVuY2UvYXRjMTQvdGVjaG5pY2FsLXNlc3Npb25zL3ByZXNlbnRhdGlvbi90aWFu Cj4+Pgo+Pj4KPj4+IE5vdGU6IFRoZSBLVk1HVCBwcm9qZWN0IHNob3VsZCBiZSBjb25zaWRlcmVk IGEgd29yayBpbiBwcm9ncmVzcy4gQXMgc3VjaCBpdCBpcyBub3QgYSBjb21wbGV0ZSBwcm9kdWN0 IG5vciBzaG91bGQgaXQgYmUgY29uc2lkZXJlZCBvbmUuIEV4dHJhIGNhcmUgc2hvdWxkIGJlIHRh a2VuIHdoZW4gdGVzdGluZyBhbmQgY29uZmlndXJpbmcgYSBzeXN0ZW0gdG8gdXNlIHRoZSBLVk1H VCBwcm9qZWN0Lgo+Pj4KPj4+Cj4+PiAtLQo+Pj4gVGhhbmtzLAo+Pj4gSmlrZQo+Pj4KPj4+IE9u IDEwLzI3LzIwMTUgMDU6MzYgUE0sIEppa2UgU29uZyB3cm90ZToKPj4+PiBIaSBhbGwsCj4+Pj4K Pj4+PiBXZSBhcmUgcGxlYXNlZCB0byBhbm5vdW5jZSBhbm90aGVyIHVwZGF0ZSBvZiBJbnRlbCBH VlQtZyBmb3IgS1ZNLgo+Pj4+Cj4+Pj4gSW50ZWwgR1ZULWcgaXMgYSBmdWxsIEdQVSB2aXJ0dWFs aXphdGlvbiBzb2x1dGlvbiB3aXRoIG1lZGlhdGVkIHBhc3MtdGhyb3VnaCwgc3RhcnRpbmcgZnJv bSA0dGggZ2VuZXJhdGlvbiBJbnRlbCBDb3JlKFRNKSBwcm9jZXNzb3JzIHdpdGggSW50ZWwgR3Jh cGhpY3MgcHJvY2Vzc29ycy4gQSB2aXJ0dWFsIEdQVSBpbnN0YW5jZSBpcyBtYWludGFpbmVkIGZv ciBlYWNoIFZNLCB3aXRoIHBhcnQgb2YgcGVyZm9ybWFuY2UgY3JpdGljYWwgcmVzb3VyY2VzIGRp cmVjdGx5IGFzc2lnbmVkLiBUaGUgY2FwYWJpbGl0eSBvZiBydW5uaW5nIG5hdGl2ZSBncmFwaGlj cyBkcml2ZXIgaW5zaWRlIGEgVk0sIHdpdGhvdXQgaHlwZXJ2aXNvciBpbnRlcnZlbnRpb24gaW4g cGVyZm9ybWFuY2UgY3JpdGljYWwgcGF0aHMsIGFjaGlldmVzIGEgZ29vZCBiYWxhbmNlIGFtb25n IHBlcmZvcm1hbmNlLCBmZWF0dXJlLCBhbmQgc2hhcmluZyBjYXBhYmlsaXR5LiBLVk0gaXMgc3Vw cG9ydGVkIGJ5IEludGVsIEdWVC1nKGEuay5hLiBLVk1HVCkuCj4+Pj4KPj4+Pgo+Pj4+IFJlcG9z aXRvcmllcwo+Pj4+Cj4+Pj4gICAgICBLZXJuZWw6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9p Z3Z0Zy1rZXJuZWwgKDIwMTVxMy0zLjE4LjAgYnJhbmNoKQo+Pj4+ICAgICAgUWVtdTogaHR0cHM6 Ly9naXRodWIuY29tLzAxb3JnL2lndnRnLXFlbXUgKGt2bWd0X3B1YmxpYzIwMTVxMyBicmFuY2gp Cj4+Pj4KPj4+Pgo+Pj4+IFRoaXMgdXBkYXRlIGNvbnNpc3RzIG9mOgo+Pj4+Cj4+Pj4gICAgICAt IEtWTUdUIGlzIG5vdyBtZXJnZWQgd2l0aCBYZW5HVCBpbiB1bmlmaWVkIHJlcG9zaXRvcmllcyhr ZXJuZWwgYW5kIHFlbXUpLCBidXQgY3VycmVudGx5Cj4+Pj4gICAgICAgIGRpZmZlcmVudCBicmFu Y2hlcyBmb3IgcWVtdS4gIEtWTUdUIGFuZCBYZW5HVCBzaGFyZSBzYW1lIGlHVlQtZyBjb3JlIGxv Z2ljLgo+Pj4+ICAgICAgLSBQUEdUVCBzdXBwb3J0ZWQsIGhlbmNlIHRoZSBXaW5kb3dzIGd1ZXN0 IHN1cHBvcnQKPj4+PiAgICAgIC0gS1ZNR1Qgbm93IHN1cHBvcnRzIGJvdGggNHRoIGdlbmVyYXRp b24gKEhhc3dlbGwpIGFuZCA1dGggZ2VuZXJhdGlvbiAoQnJvYWR3ZWxsKSBJbnRlbCBDb3JlKFRN KSBwcm9jZXNzb3JzCj4+Pj4gICAgICAtIDJELzNEL01lZGlhIGRlY29kaW5nIGhhdmUgYmVlbiB2 YWxpZGF0ZWQgb24gVWJ1bnR1IDE0LjA0IGFuZCBXaW5kb3dzNy9XaW5kb3dzIDguMQo+Pj4+Cj4+ Pj4gTmV4dCB1cGRhdGUgd2lsbCBiZSBhcm91bmQgZWFybHkgSmFuLCAyMDE2Lgo+Pj4+Cj4+Pj4g S25vd24gaXNzdWVzOgo+Pj4+Cj4+Pj4gICAgICAtIEF0IGxlYXN0IDJHQiBtZW1vcnkgaXMgc3Vn Z2VzdGVkIGZvciBWTSB0byBydW4gbW9zdCAzRCB3b3JrbG9hZHMuCj4+Pj4gICAgICAtIDNEbWFy azA2IHJ1bm5pbmcgaW4gV2luZG93cyBWTSBtYXkgaGF2ZSBzb21lIHN0YWJpbGl0eSBpc3N1ZS4K Pj4+PiAgICAgIC0gVXNpbmcgVkxDIHRvIHBsYXkgLm9nZyBmaWxlIG1heSBjYXVzZSBtb3NhaWMg b3Igc2xvdyByZXNwb25zZS4KPj4+Pgo+Pj4+Cj4+Pj4gUGxlYXNlIHN1YnNjcmliZSB0aGUgbWFp bGluZyBsaXN0IHRvIHJlcG9ydCBCVUdzLCBkaXNjdXNzLCBhbmQvb3IgY29udHJpYnV0ZToKPj4+ Pgo+Pj4+ICAgICAgaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3Z0LWcK Pj4+Pgo+Pj4+IE1vcmUgaW5mb3JtYXRpb24gYWJvdXQgSW50ZWwgR1ZULWcgYmFja2dyb3VuZCwg YXJjaGl0ZWN0dXJlLCBldGMgY2FuIGJlIGZvdW5kIGF0KG1heSBub3QgYmUgdXAtdG8tZGF0ZSk6 Cj4+Pj4KPj4+PiAgICAgIGh0dHBzOi8vMDEub3JnL2lndnQtZwo+Pj4+ICAgICAgaHR0cDovL3d3 dy5saW51eC1rdm0ub3JnL2ltYWdlcy9mL2YzLzAxeDA4Yi1LVk1HVC1hLnBkZgo+Pj4+ICAgICAg aHR0cHM6Ly93d3cudXNlbml4Lm9yZy9jb25mZXJlbmNlL2F0YzE0L3RlY2huaWNhbC1zZXNzaW9u cy9wcmVzZW50YXRpb24vdGlhbgo+Pj4+Cj4+Pj4KPj4+PiBOb3RlOgo+Pj4+Cj4+Pj4gVGhlIEtW TUdUIHByb2plY3Qgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYSB3b3JrIGluIHByb2dyZXNzLiBBcyBz dWNoIGl0IGlzIG5vdCBhIGNvbXBsZXRlIHByb2R1Y3Qgbm9yIHNob3VsZCBpdCBiZSBjb25zaWRl cmVkIG9uZS4gRXh0cmEgY2FyZSBzaG91bGQgYmUgdGFrZW4gd2hlbiB0ZXN0aW5nIGFuZCBjb25m aWd1cmluZyBhIHN5c3RlbSB0byB1c2UgdGhlIEtWTUdUIHByb2plY3QuCj4+Pj4KPj4+Pgo+Pj4+ IC0tCj4+Pj4gVGhhbmtzLAo+Pj4+IEppa2UKPj4+Pgo+Pj4+IE9uIDEyLzA0LzIwMTQgMTA6MjQg QU0sIEppa2UgU29uZyB3cm90ZToKPj4+Pj4gSGkgYWxsLAo+Pj4+Pgo+Pj4+PiAgICBXZSBhcmUg cGxlYXNlZCB0byBhbm5vdW5jZSB0aGUgZmlyc3QgcmVsZWFzZSBvZiBLVk1HVCBwcm9qZWN0LiBL Vk1HVCBpcyB0aGUgaW1wbGVtZW50YXRpb24gb2YgSW50ZWwgR1ZULWcgdGVjaG5vbG9neSwgYSBm dWxsIEdQVSB2aXJ0dWFsaXphdGlvbiBzb2x1dGlvbi4gVW5kZXIgSW50ZWwgR1ZULWcsIGEgdmly dHVhbCBHUFUgaW5zdGFuY2UgaXMgbWFpbnRhaW5lZCBmb3IgZWFjaCBWTSwgd2l0aCBwYXJ0IG9m IHBlcmZvcm1hbmNlIGNyaXRpY2FsIHJlc291cmNlcyBkaXJlY3RseSBhc3NpZ25lZC4gVGhlIGNh cGFiaWxpdHkgb2YgcnVubmluZyBuYXRpdmUgZ3JhcGhpY3MgZHJpdmVyIGluc2lkZSBhIFZNLCB3 aXRob3V0IGh5cGVydmlzb3IgaW50ZXJ2ZW50aW9uIGluIHBlcmZvcm1hbmNlIGNyaXRpY2FsIHBh dGhzLCBhY2hpZXZlcyBhIGdvb2QgYmFsYW5jZSBvZiBwZXJmb3JtYW5jZSwgZmVhdHVyZSwgYW5k IHNoYXJpbmcgY2FwYWJpbGl0eS4KPj4+Pj4KPj4+Pj4KPj4+Pj4gICAgS1ZNR1QgaXMgc3RpbGwg aW4gdGhlIGVhcmx5IHN0YWdlOgo+Pj4+Pgo+Pj4+PiAgICAgLSBCYXNpYyBmdW5jdGlvbnMgb2Yg ZnVsbCBHUFUgdmlydHVhbGl6YXRpb24gd29ya3MsIGd1ZXN0IGNhbiBzZWUgYSBmdWxsLWZlYXR1 cmVkIHZHUFUuCj4+Pj4+ICAgICAgIFdlIHJhbiBzZXZlcmFsIDNEIHdvcmtsb2FkcyBzdWNoIGFz IGxpZ2h0c21hcmssIG5leHVpeiwgdXJiYW50ZXJyb3IgYW5kIHdhcnNvdy4KPj4+Pj4KPj4+Pj4g ICAgIC0gT25seSBMaW51eCBndWVzdCBzdXBwb3J0ZWQgc28gZmFyLCBhbmQgUFBHVFQgbXVzdCBi ZSBkaXNhYmxlZCBpbiBndWVzdCB0aHJvdWdoIGEKPj4+Pj4gICAgICAga2VybmVsIHBhcmFtZXRl cihzZWUgUkVBRE1FLmt2bWd0IGluIFFFTVUpLgo+Pj4+Pgo+Pj4+PiAgICAgLSBUaGlzIGRyb3Ag YWxzbyBpbmNsdWRlcyBzb21lIFhlbiBzcGVjaWZpYyBjaGFuZ2VzLCB3aGljaCB3aWxsIGJlIGNs ZWFuZWQgdXAgbGF0ZXIuCj4+Pj4+Cj4+Pj4+ICAgICAtIE91ciBlbmQgZ29hbCBpcyB0byB1cHN0 cmVhbSBib3RoIFhlbkdUIGFuZCBLVk1HVCwgd2hpY2ggc2hhcmVzIH45MCUgbG9naWMgZm9yIHZH UFUKPj4+Pj4gICAgICAgZGV2aWNlIG1vZGVsICh3aWxsIGJlIHBhcnQgb2YgaTkxNSBkcml2ZXIp LCB3aXRoIG9ubHkgZGlmZmVyZW5jZSBpbiBoeXBlcnZpc29yCj4+Pj4+ICAgICAgIHNwZWNpZmlj IHNlcnZpY2VzCj4+Pj4+Cj4+Pj4+ICAgICAtIGluc3VmZmljaWVudCB0ZXN0IGNvdmVyYWdlLCBz byBwbGVhc2UgYmVhciB3aXRoIHN0YWJpbGl0eSBpc3N1ZXMgOikKPj4+Pj4KPj4+Pj4KPj4+Pj4K Pj4+Pj4gICAgVGhlcmUgYXJlIHRoaW5ncyBuZWVkIHRvIGJlIGltcHJvdmVkLCBlc3AuIHRoZSBL Vk0gaW50ZXJmYWNpbmcgcGFydDoKPj4+Pj4KPj4+Pj4gCTEJYSBkb21pZCB3YXMgYWRkZWQgdG8g ZWFjaCBLVk1HVCBndWVzdAo+Pj4+Pgo+Pj4+PiAJCUFuIElEIGlzIG5lZWRlZCBmb3IgZm9yZWdy b3VuZCBPUyBzd2l0Y2hpbmcsIGUuZy4KPj4+Pj4KPj4+Pj4gCQkJIyBlY2hvIDxkb21pZD4JPgkv c3lzL2tlcm5lbC92Z3QvY29udHJvbC9mb3JlZ3JvdW5kX3ZtCj4+Pj4+Cj4+Pj4+IAkJZG9taWQg MCBpcyByZXNlcnZlZCBmb3IgaG9zdCBPUy4KPj4+Pj4KPj4+Pj4KPj4+Pj4gICAgCTIJU1JDVSB3 b3JrYXJvdW5kcy4KPj4+Pj4KPj4+Pj4gCQlTb21lIEtWTSBmdW5jdGlvbnMsIHN1Y2ggYXM6Cj4+ Pj4+Cj4+Pj4+IAkJCQlrdm1faW9fYnVzX3JlZ2lzdGVyX2Rldgo+Pj4+PiAJCQkJaW5zdGFsbF9u ZXdfbWVtc2xvdHMKPj4+Pj4KPj4+Pj4gCQltdXN0IGJlIGNhbGxlZCAqd2l0aG91dCogJmt2bS0+ c3JjdSByZWFkLWxvY2tlZC4gT3RoZXJ3aXNlIGl0IGhhbmdzLgo+Pj4+Pgo+Pj4+PiAJCUluIEtW TUdULCB3ZSBuZWVkIHRvIHJlZ2lzdGVyIGFuIGlvZGV2IG9ubHkgKmFmdGVyKiBCQVIgcmVnaXN0 ZXJzIGFyZQo+Pj4+PiAJCXdyaXR0ZW4gYnkgZ3Vlc3QuIFRoYXQgbWVhbnMsIHdlIGFscmVhZHkg aGF2ZSAma3ZtLT5zcmN1IGhvbGQgLQo+Pj4+PiAJCXRyYXBwaW5nL2VtdWxhdGluZyBQSU8oQkFS IHJlZ2lzdGVycykgbWFrZXMgdXMgaW4gc3VjaCBhIGNvbmRpdGlvbi4KPj4+Pj4gCQlUaGF0IHdp bGwgbWFrZSBrdm1faW9fYnVzX3JlZ2lzdGVyX2RldiBoYW5ncy4KPj4+Pj4KPj4+Pj4gCQlDdXJy ZW50bHkgd2UgaGF2ZSB0byBkaXNhYmxlIHJjdV9hc3NpZ25fcG9pbnRlcigpIGluIHN1Y2ggZnVu Y3Rpb25zLgo+Pj4+Pgo+Pj4+PiAJCVRoZXNlIHdlcmUgZGlydHkgd29ya2Fyb3VuZHMsIHlvdXIg c3VnZ2VzdGlvbnMgYXJlIGhpZ2ggd2VsY29tZSEKPj4+Pj4KPj4+Pj4KPj4+Pj4gCTMJc3lzY2Fs bHMgd2VyZSBjYWxsZWQgdG8gYWNjZXNzICIvZGV2L21lbSIgZnJvbSBrZXJuZWwKPj4+Pj4KPj4+ Pj4gCQlBbiBpbi1rZXJuZWwgbWVtc2xvdCB3YXMgYWRkZWQgZm9yIGFwZXJ0dXJlLCBidXQgdXNp bmcgc3lzY2FsbHMgbGlrZQo+Pj4+PiAJCW9wZW4gYW5kIG1tYXAgdG8gb3BlbiBhbmQgYWNjZXNz IHRoZSBjaGFyYWN0ZXIgZGV2aWNlICIvZGV2L21lbSIsCj4+Pj4+IAkJZm9yIHBhc3MtdGhyb3Vn aC4KPj4+Pj4KPj4+Pj4KPj4+Pj4KPj4+Pj4KPj4+Pj4gVGhlIHNvdXJjZSBjb2RlcyhrZXJuZWws IHFlbXUgYXMgd2VsbCBhcyBzZWFiaW9zKSBhcmUgYXZhaWxhYmxlIGF0IGdpdGh1YjoKPj4+Pj4K Pj4+Pj4gCWdpdDovL2dpdGh1Yi5jb20vMDFvcmcvS1ZNR1Qta2VybmVsCj4+Pj4+IAlnaXQ6Ly9n aXRodWIuY29tLzAxb3JnL0tWTUdULXFlbXUKPj4+Pj4gCWdpdDovL2dpdGh1Yi5jb20vMDFvcmcv S1ZNR1Qtc2VhYmlvcwo+Pj4+Pgo+Pj4+PiBJbiB0aGUgS1ZNR1QtcWVtdSByZXBvc2l0b3J5LCB0 aGVyZSBpcyBhICJSRUFETUUua3ZtZ3QiIHRvIGJlIHJlZmVycmVkLgo+Pj4+Pgo+Pj4+Pgo+Pj4+ Pgo+Pj4+PiBNb3JlIGluZm9ybWF0aW9uIGFib3V0IEludGVsIEdWVC1nIGFuZCBLVk1HVCBjYW4g YmUgZm91bmQgYXQ6Cj4+Pj4+Cj4+Pj4+IAlodHRwczovL3d3dy51c2VuaXgub3JnL2NvbmZlcmVu Y2UvYXRjMTQvdGVjaG5pY2FsLXNlc3Npb25zL3ByZXNlbnRhdGlvbi90aWFuCj4+Pj4+IAlodHRw Oi8vZXZlbnRzLmxpbnV4Zm91bmRhdGlvbi5vcmcvc2l0ZXMvZXZlbnRzL2ZpbGVzL3NsaWRlcy9L Vk1HVC1hJTIwRnVsbCUyMEdQVSUyMFZpcnR1YWxpemF0aW9uJTIwU29sdXRpb25fMS5wZGYKPj4+ Pj4KPj4+Pj4KPj4+Pj4gQXBwcmVjaWF0ZSB5b3VyIGNvbW1lbnRzLCBCVUcgcmVwb3J0cywgYW5k IGNvbnRyaWJ1dGlvbnMhCj4+Pj4+Cj4+Pj4+Cj4+Pj4+Cj4+Pj4+Cj4+Pj4+IC0tCj4+Pj4+IFRo YW5rcywKPj4+Pj4gSmlrZQo+Pj4+PgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngK