From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Izquierdo Subject: Re: Prototype Code Review Dashboards (input required) Date: Wed, 9 Mar 2016 17:58:13 +0100 Message-ID: <56E05625.6070608@bitergia.com> References: <2CB97806-A1B7-42BB-9AE8-3745A937B18C@gmail.com> <8FC20B34-BFC3-4AAA-9E1B-271C40982942@gmail.com> <56D76D17.3030209@bitergia.com> <1E28995B-2DE4-480E-A44E-D802966058E7@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xen.org with esmtp (Exim 4.84) (envelope-from ) id 1adhRA-0007JJ-Br for xen-devel@lists.xenproject.org; Wed, 09 Mar 2016 16:58:16 +0000 In-Reply-To: <1E28995B-2DE4-480E-A44E-D802966058E7@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Lars Kurth , Jan Beulich Cc: xen-devel , "Jesus M. Gonzalez-Barahona" List-Id: xen-devel@lists.xenproject.org T24gMDMvMDMvMTYgMTk6NTUsIExhcnMgS3VydGggd3JvdGU6Cj4gRGFuaWVsLCAoYWRkZWQgSmFu IC0gc2VhcmNoIGZvciBASmFuKQo+Cj4gdGhhbmtzIGZvciB0aGUgZmVlZGJhY2sKPgo+PiBPbiAy IE1hciAyMDE2LCBhdCAyMjo0NSwgRGFuaWVsIEl6cXVpZXJkbyA8ZGl6cXVpZXJkb0BiaXRlcmdp YS5jb20+IHdyb3RlOgo+Pgo+PiBPbiAwMS8wMy8xNiAxODowNCwgTGFycyBLdXJ0aCB3cm90ZToK Pj4+IERhbmllbCwgSmVzdXMsCj4+Pgo+Pj4gSSBhbSBnb2luZyB0byBicmVhayBteSBjb21tZW50 cyBkb3duIGludG8gZGlmZmVyZW50IHNlY3Rpb25zIHRvIG1ha2UgdGhpcyBtb3JlIGNvbnN1bWFi bGUuIExldCdzIGZvY3VzIG9uIHRoZSBBMS1BMyB1c2UtY2FzZXMgaW4gdGhpcyBtYWlsLgo+Pj4K Pj4+IEZpcnN0IEkgd2FudGVkIHRvIHN0YXJ0IG9mIHdpdGggc29tZSBxdWVzdGlvbnMgYWJvdXQg ZGVmaW5pdGlvbnMsIGFzIEkgYW0gc2VlaW5nIHNvbWUgZGlzY3JlcGFuY2llcyBpbiBzb21lIG9m IHRoZSBkYXRhIHNob3duIGFuZCBhbSB0cnlpbmcgdG8gdW5kZXJzdGFuZCBleGFjdGx5IHdoYXQg dGhlIGRhdGEgbWVhbnMsIGFuZCB0aGVuIGhhdmUgYSBsb29rIGF0IHRoZSBpbmRpdmlkdWFsIHNl Y3Rpb25zLgo+Pj4KPj4+IEdlbmVyYWwsIHRvIHRoZSBYZW4tQTEuQTIuQTMgZGFzaCBib2FyZAo+ Pj4gLSBJIHBsYXllZCB3aXRoIHNvbWUgZmlsdGVycyBhbmQgbm90aWNlZCBzb21lIG9kZGl0aWVz LCBlLmcuIGlmIEkgZmlsdGVyIG9uICJtZXJnZWQ6IDAiIGFsbCB2aWV3cyBjaGFuZ2UgYXMgZXhw ZWN0ZWQKPj4+IC0gSWYgSSBmaWx0ZXIgb24gIm1lcmdlZDogMSIsIGEgbG90IG9mIHdpZGdldHMg c2hvdyBubyBkYXRhLiBJcyB0aGlzIHNob3dpbmcgdGhhdCB0aGVyZSBpcyBhbiBpc3N1ZSB3aXRo IHRoZSBkYXRhIHNvbWV3aGVyZT8KPj4+IC0gSSBzZWUgc2ltaWxhciBpc3N1ZXMgd2l0aCBvdGhl ciBmaWx0ZXJzLCBlLmcuICdlbWFpbHR5cGU6ICJwYXRjaCInCj4+IEluIG9yZGVyIHRvIGJyaW5n IHNvbWUgY29udGV4dCB0byB0aGUgZGF0YXNldCwgRWxhc3RpY1NlYXJjaCB3YXMgaW5pdGlhbGx5 IHVzZWQgZm9yIHBhcnNpbmcgQXBhY2hlIGxvZ3MuIFRoYXQgbWVhbnMgdGhhdCBkYXRhIHNob3Vs ZCBiZSBmb3JtYXR0ZWQgYXMgJ2Egcm93ID0gYW4gZXZlbnQnLgo+Pgo+PiBJbiB0aGlzIGRhdGFz ZXQgdGhlcmUgYXJlIHNldmVyYWwgZXZlbnRzIHRoYXQgYXJlIGRlZmluZWQgYnkgdGhlIGZpZWxk ICdFbWFpbFR5cGUnLiAncGF0Y2hzZXJpZScsICdwYXRjaCcsICdjb21tZW50JywgJ2ZsYWcnLiBB bmQgdGhlbiwgZGVwZW5kaW5nIG9uIHRoYXQgJ0VtYWlsVHlwZScsIGVhY2ggb2YgdGhlIGNvbHVt bnMgbWF5IGhhdmUgc29tZSBtZWFuaW5nIG9yIHNvbWUgb3RoZXIuCj4gVGhhdCBtYWtlcyBzZW5z ZSBhbmQgaXMgcXVpdGUgaW1wb3J0YW50IGJhY2tncm91bmQgaW5mb3JtYXRpb24gYW5kIGRpZmZl cmVudCBmcm9tIHRoZSBvcmlnaW5hbC4gSSB0aGluayBmb3IgcGVvcGxlIHRvIGJlIGFibGUgdG8g YnVpbGQgc29waGlzdGljYXRlZCBzZWFyY2ggcXVlcmllcyAtIG9uY2Ugd2UgaGF2ZSBmaW5hbGlz ZWQgYWxsIHRoZSBmaWVsZHMgLSB3ZSBzaG91bGQgcHJvYmFibHkgZG9jdW1lbnQgdGhpcyBhbmQg dGhlIGV4YWN0IG1lYW5pbmcgb2YgZmllbGRzIChhbHNvIHNlZSBiZWxvdykuIEkgd2FzIHRoaW5r aW5nIC0gYW5kIEkgdm9sdW50ZWVyIC0gdG8gcHV0IHRvZ2V0aGVyIGFuIGV4dHJhIHZpZXcgdGhh dCBhY3RzIGxpa2UgYSBsZWdlbmQuIFdpdGggdGhlIGVkaXRhYmxlIHZlcnNpb24gb2YgdGhlIGRh c2hib2FyZCwgdGhhdCBzaG91bGQgYmUgZWFzeSB0byBkby4KPgo+IEkgdGhpbmsgd2UgZWl0aGVy Cj4gLSBuZWVkIHRvIGxvb2sgYXQgdGhlIHBhbmVscyBhbmQgY29tZSB1cCB3aXRoIHNvbWUgY2xl YW5lciBhbmQgY2xlYXJlciB0ZXJtaW5vbG9neQo+IC0gb3IsIHNwbGl0IHRoZSBwYW5lbHMgYW5k IG1ha2Ugc3VyZSB0aGF0IG9ubHkgdmlld3Mgd2hpY2ggcmVmZXIKPiBsZXQgbWUgdGhpbmsgYWJv dXQgaXQgYW5kIG1ha2UgYSBwcm9wb3NhbC4KPgo+PiBUaGlzIHN0cnVjdHVyZSB1c2VzIHRoZSAn RW1haWxUeXBlJyBhcyB0aGUgY2VudHJhbCBrZXkgd2hlcmUgdGhlIHJlc3Qgb2YgdGhlIGNvbHVt bnMgcHJvdmlkZSBleHRyYSBzeW50YXguIEZvciBpbnN0YW5jZSwgcG9zdF9hY2tfY29tbWVudCBm aWVsZCBvbmx5IG1ha2VzIHNlbnNlIGZvciB0aGUgRW1haWxUeXBlOmNvbW1lbnQuCj4gTm93IEkg dW5kZXJzdGFuZC4KPgo+PiBDb21pbmcgYmFjayB0byB0aGUgY29tbWVudHM6Cj4+Cj4+IFRoZXJl IGFyZSBmaWVsZHMgdGhhdCBhcHBseSBvbmx5IHRvIHNwZWNpZmljIHR5cGUgb2YgZXZlbnRzLiBJ biB0aGUgY2FzZSBvZiAnbWVyZ2UnIHRoaXMgYXBwbGllcyBvbmx5IGluIHRoZSBjYXNlIG9mIHBh dGNoZXMuIG1lcmdlOjEgd291bGQgZmlsdGVyIHBhdGNoZXMgdGhhdCBhcmUgbWVyZ2VkIChzbyB0 aGUgcmVzdCBvZiB0aGUgaW5mb3JtYXRpb24gaXMgbGl0ZXJhbGx5IHJlbW92ZWQgYXMgdGhleSBh cmUgbm90IG1lcmdlZCkuIElmIHdlIGZpbHRlciBieSBtZXJnZTowLCB0aGVzZSBhcmUgdGhlIHJl c3Qgb2YgdGhlIGluZm9ybWF0aW9uIChldmVuIGluY2x1ZGluZyBmbGFncykuCj4gT0suIEkgdGhp bmsgdGhpcyBpcyB2ZXJ5IGNvbmZ1c2luZyBiZWNhdXNlIHdoZW4geW91IGxvb2sgYXQgdGhlIHRh YmxlcyBhdCB0aGUgMyB0YWJsZXMgYXQgdGhlIGJvdHRvbSwgYWxsIG9mIHRoZW0gc2hvdyB0aGUg c2FtZSBmaWVsZHMuIEFuZCB0aGUgZGVmYXVsdCBmb3IgYW4gdW5kZWZpbmVkIGZpZWxkIHNlZW1z IHRvIGJlIDAuIElzIHRoZXJlIGFueSB3YXkgdG8gbWFrZSBzdXJlIHRoYXQgdW5kZWZpbmVkIGZp ZWxkcyBhcmUgc2V0IHRvIG5hIG9yIC0xIG9yIHNpbWlsYXIuIFRoYXQgd291bGQgbWFrZSB0aGlu Z3MgY2xlYXJlci4KClRob3NlIHdlcmUgbm93IHVwZGF0ZWQgYW5kIG9ubHkgY29udGFpbnMgKGhv cGVmdWxseSkgdXNlZnVsIGluZm8gaW4gZWFjaCAKb2YgdGhlIGNhc2VzLgoKPgo+PiBUaHVzLCB1 c2luZyB0aGUgZmlsdGVyIG1lcmdlOjEgbGVhZHMgdG8gaGF2aW5nIGluZm8gb25seSByZWxhdGVk IHRvICdwYXRjaGVzJyBpbiB0aGlzIGNhc2UuCj4+Cj4+IEFzIHRoaXMgcGFuZWwgc2hvd3MgaW5m b3JtYXRpb24gYWJvdXQgb3RoZXIgdHlwZXMgdGhhbiAncGF0Y2gnLCBpZiB5b3UgZmlsdGVyIGJ5 IHNvbWUgJ2VtYWlsdHlwZScgc3VjaCBhcyAncGF0Y2gnIHRoZW4geW91J3JlIGZvY3VzaW5nIG9u bHkgb24gcGF0Y2hlcyBkYXRhIGFuZCB0aGlzIHdpbGwgZGlzcGxheSB0aGUgbWVyZ2VkIGFuZCBu b3QgbWVyZ2VkIG9uZXMuCj4+Cj4+IEluIG9yZGVyIHRvIGltcHJvdmUgdGhpcywgd2UgY2FuIGVp dGhlciBjcmVhdGUgYSBwYW5lbCBmb3IgdHlwZSBvZiBhbmFseXNpcyAob25lIHBhbmVsIGZvciBw YXRjaGVzLCBvbmUgZm9yIGNvbW1lbnRzLCBldGMpLiBPciB3ZSBjYW4gcGxheSB3aXRoIGFkZGlu ZyB0aGUgJ21lcmdlJyBmaWVsZCB0byBhbnkgZmxhZywgcGF0Y2hzZXJpZSwgcGF0Y2ggYW5kIGNv bW1lbnQgd2hvc2UgcGF0Y2ggd2FzIG1lcmdlZCBhdCBzb21lIHBvaW50LiBUaGUgbGF0dGVyIG1h eSBzb3VuZCBhIGJpdCB3ZWlyZCBhcyBhICdtZXJnZWQnIHN0YXR1cyBkb2VzIG5vdCBhcHBseSB0 byBhIGZsYWcgKFJldmlld2VkLWJ5KSBmb3IgaW5zdGFuY2UuCj4gR2l2ZW4gdGhhdCB3ZSBoYXZl IGEgbG90IG9mIHN0dWZmIG9uIHRoZSBwYW5lbHMsIHdlIHNob3VsZCBwcm9iYWJseSBnbyBmb3Ig dGhlIDFzdCBvcHRpb24uIEJ1dCB0aGVyZSBtYXkgYmUgY29ybmVyIGNhc2VzLCB3aGVuIHdlIG1h eSB3YW50IHRvIGdvIGZvciB0aGUgc2Vjb25kLgoKPiAgIFdoZW4gSSBnbyB0byB0aGUgZWRpdGFi bGUgZGFzaGJvYXJkIHZlcnNpb24sIGhvdyBjYW4gSSB0ZWxsIHdoaWNoIEVtYWlsVHlwZSBpcyB1 c2VkLiBJIGNvdWxkbid0IGZpZ3VyZSB0aGF0IG91dC4KCllvdSBuZWVkIHRvICdlZGl0JyB0aGUg dmlzdWFsaXphdGlvbi4gQW5kIGluIHRoZSB2aXN1YWxpemF0aW9uIHBhbmVsLCAKdGhpcyB0ZWxs cyB5b3UgaWYgdGhpcyBpcyBiYXNlZCBvbiBhIHNwZWNpZmljIHNlYXJjaCAoc28gYSBzcGVjaWZp YyAKRW1haWxUeXBlIGlzIHVzZWQpLgoKSSBndWVzcyB0aGlzIGlzIHNpbXBsZXIgaWYgd2UgcHJl cGFyZSBzb21lIGRvY3VtZW50YXRpb24gb24gaG93IHRvIApwcm9jZWVkIGFuZCBlZGl0IHRoZSBw YW5lbHMgb25jZSB3ZSBhZ3JlZSBpbiB0aGUgZmluYWwgc3RhdHVzLgoKPj4+PiBPbiAxIE1hciAy MDE2LCBhdCAxMzo1MywgTGFycyBLdXJ0aCA8bGFycy5rdXJ0aC54ZW5AZ21haWwuY29tPiB3cm90 ZToKPj4+Pgo+Pj4+IENhc2Ugb2YgU3R1ZHkgQS4xOiBJZGVudGlmeSB0b3AgcmV2aWV3ZXJzIChm b3IgYm90aCBpbmRpdmlkdWFscyBhbmQgY29tcGFuaWVzKQo+Pj4+IC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQo+Pj4+Cj4+Pj4gR29hbDogSGlnaGxpZ2h0IHJldmlldyBjb250cmlidXRpb25zIC0gYWJp bGl0eSB0byB1c2UgdGhlIGRhdGEgdG8gInJld2FyZCIgcmV2aWV3IGNvbnRyaWJ1dGlvbnMgYW5k IGVuY291cmFnZSBtb3JlICJyZXZpZXciIGNvbnRyaWJ1dGlvbnMKPj4+IFRoZSB3aWRnZXRzIGlu IHF1ZXN0aW9uIGFyZToKPj4+IC0gRXZvbHV0aW9uICdSZXZpZXdlZCBieS1mbGFnJyAobm8gcGF0 Y2hzZXJpZXMsIG5vIHBhdGNoZXMpCj4+PiAtIFdoYXQgaXMgdGhlIGRpZmZlcmVuY2UgdG8gRXZv bHV0aW9uIG9mIHBhdGNoZXMKPj4+IC0gVG9wIFBlb3BsZS9Eb21haW5zIFJldmlld2luZyBwYXRj aGVzCj4+Pgo+Pj4gUTE6IEFyZSB0aGlzIHRoZSByZXZpZXdlZC1ieSBmbGFncz8KPj4gVGhleSBh cmUgb25seSB0aGUgUmV2aWV3ZWQtYnkgZmxhZ3MuCj4+Cj4+PiBRMjogV2hhdCBpcyB0aGUgc2Nv cGU/IERvIHRoZSBudW1iZXIgY291bnQKPj4+IC0gdGhlICMgZmlsZXMgc29tZW9uZSByZXZpZXdl ZAo+Pj4gLSB0aGUgIyBwYXRjaGVzIHNvbWVvbmUgcmV2aWV3ZWQKPj4+IC0gdGhlICMgc2VyaWVz IHNvbWVvbmUgcmV2aWV3ZWQKPj4gVGhlIG51bWJlciBjb3VudHMgdGhlIG51bWJlciBvZiByZXZp ZXdzIGFjY29tcGxpc2hlZCBieSBhIGRldmVsb3BlciBvciBieSBhIGRvbWFpbi4gQSByZXZpZXcg aXMgYWNjb21wbGlzaGVkIHdoZW4gdGhlIGZsYWcgJ3Jldmlld2VkLWJ5JyBpcyBkZXRlY3RlZCBp biBhIGVtYWlsIHJlcGx5aW5nIGEgcGF0Y2guCj4+Cj4+IElmIGEgZGV2ZWxvcGVyIHJldmlld3Mg c2V2ZXJhbCBwYXRjaGVzIG9yIHNldmVyYWwgdmVyc2lvbnMgb2YgdGhlIHNhbWUgcGF0Y2gsIGVh Y2ggb2YgdGhvc2UgaXMgY291bnRlZCBhcyBhIGRpZmZlcmVudCByZXZpZXcuCj4gU28gdGhpcyBp cyBiYXNpY2FsbHkgdGhlIG51bWJlciBvZiByZXZpZXdlZCBieSBmbGFncyBhZ2dyZWdhdGVkIHBl ciBkZXZlbG9wZXIuCgpFeGFjdGx5LgoKPj4+IElmIGEgcmV2aWV3ZXIgaXMgc29sZWx5IGRlZmlu ZWQgYnkgdGhlIHJldmlld2VkLWJ5IHRhZ3MsIHRoZSBkYXRhIGRvZXMgbm90IHByb3ZpZGUgYSBj b3JyZWN0IHBpY3R1cmUuCj4+IFRoaXMgaXMgaG93IHRoaXMgd29ya3Mgc28gZmFyLgo+Pgo+Pj4g SXQgbWF5IGJlIGJldHRlciB0byB1c2UgdGhlIGZvbGxvd2luZyBkZWZpbml0aW9uIChhbHRob3Vn aCwgb3RoZXJzIG1heSBkaXNhZ3JlZSkKPj4+IEEgcmV2aWV3ZXIgaXMgc29tZW9uZSB3aG8gZGlk IG9uZSBvZiB0aGUgZm9sbG93aW5nIGZvciBhIHBhdGNoIG9yIHNlcmllczoKPj4+IC0gQWRkZWQg YSByZXZpZXdlZC1ieSBmbGFnCj4+PiAtIEFkZGVkIGFuIGFja2VkLWJ5IGZsYWcgKG1haW50YWlu ZXJzIHRlbmQgdG8gdXNlIGFja2VkLWJ5KQo+Pj4gLSBNYWRlIGEgY29tbWVudCwgYnV0IGlzIE5P VCB0aGUgYXV0aG9yCj4+IFdlIGNhbiB1cGRhdGUgdGhhdCBkZWZpbml0aW9uLiBEbyB3ZSB3YW50 IHRvIGhhdmUgZXh0cmEgZGlzY3Vzc2lvbiB3aXRoIHRoaXMgcmVzcGVjdD8KPiBJIHRoaW5rIHRo YXQgd291bGQgYmUgbW9yZSBjb3JyZWN0LiBJbiBwYXJ0aWN1bGFyLCBhcyB3ZSBzdGlsbCB3aWxs IGJlIGFibGUKPiBASmFuLCB3aGF0IGlzIHlvdXIgdmlldz8gVGhpcyB1c2UtY2FzZSB3YXMgcHJp bWFyaWx5IGNyZWF0ZWQgYmVjYXVzZSBvZgo+Cj4+PiBSZWxhdGVkIHRvIHRoYXQgdXNlLWNhc2Ug YXJlIGFsc28gdGhlIGZvbGxvd2luZyB3aWRnZXRzCj4+PiAtIEV2b2x1dGlvbiBvZiBDb21tZW50 cyBBY3Rpdml0eQo+Pj4gLSBUb3AgUGVvcGxlL0RvbWFpbnMgQ29tbWVudGluZyAod2hpY2ggYWxz byBjb250YWluIHBvc3QtQUNLIGNvbW1lbnRzIGFuZCBhcmUgdGh1cyBhbHNvIHJlbGF0ZWQgdG8g QS4zKQo+Pj4gLSBFdm9sdXRpb24gb2YgRW1haWwgYWN0aXZpdHkKPj4+Cj4+PiBRMzogQWdhaW4s IHRoZSBzY29wZSBpc24ndCBxdWl0ZSBjbGVhcgo+PiBUaGlzIGlzIHRoZSBudW1iZXIgb2YgY29t bWVudHMgcmVwbHlpbmcgdG8gYSBwYXRjaC4gQSBjb21tZW50IGlzIGRlZmluZWQgYXMgYW4gZW1h aWwgcmVwbHkgdG8gYSBwYXRjaC4KPj4KPj4+IFE0OiBUaGUgZmlndXJlcyBhcmUgaGlnaGVyIHRo YW4gdGhvc2UgaW4gIlBlb3BsZS9Eb21haW5zIFJldmlld2luZyBwYXRjaGVzIi4gQXJlIGNvbW1l bnRzIG9uIHBlb3BsZSdzIG93biBwYXRjaGVzIGluY2x1ZGVkICh0aGVzZSB3b3VsZCBiZSByZXBs aWVzIHRvIHRoZSBjb21tZW50cyBvZiBvdGhlcnMpCj4+IEkgc2hvdWxkIGNoZWNrIHRoZSAgbGFz dCBxdWVzdGlvbi4gSSdkIHNheSB0aGF0IHdlJ3JlIGluY2x1ZGluZyB0aGVtLCBhcyB0aGV5IGFy ZSAnY29tbWVudHMnIHRvIGEgcGF0Y2guIFlvdSBjYW4gaW5kZWVkIGNvbW1lbnQgeW91ciBvd24g cGF0Y2hlcyA6KS4gQnV0IHdlIGNhbiBkZWFsIHdpdGggdGhpcyBpZiB0aGlzIGRvZXMgbm90IG1h a2Ugc2Vuc2UuCj4gR2l2ZW4gdGhlIHVzZS1jYXNlIG9mIGhpZ2hsaWdodGluZyBwZW9wbGUgY29t bWVudGluZyBvbiB0aGUgcGF0Y2hlcyBvZiBvdGhlcnMsIHdlIHNob3VsZCBwcm9iYWJseSBub3Qg Y291bnQgY29tbWVudHMgdG8geW91ciBvd24gcGF0Y2hlcy4KCkkgc2hvdWxkIHRoZW4gZmlsdGVy IGEgYml0IG1vcmUgdGhpcyAoVE9ETykuCgo+Cj4KPj4+PiBQb3NzaWJsZSBwbGFjZXMgd2hlcmUg dGhpcyBjb3VsZCBiZSBhZGRlZCA6IGEgc2VwYXJhdGUgdGFibGUgd2hpY2ggaXMgbm90IHRpbWUg YmFzZWQsIGJ1dCBjYW4gYmUgZmlsdGVyZWQgYnkgdGltZQo+Pj4+IFBvc3NpYmxlIG1ldHJpY3M6 IG51bWJlciBvZiByZXZpZXcgY29tbWVudHMgYnkgcGVyc29uLCBudW1iZXIgb2YgcGF0Y2hlcy9w YXRjaCBzZXJpZXMgYSBwZXJzb24gaXMgYWN0aXZlbHkgY29tbWVudGluZyBvbiwgbnVtYmVyIG9m IEFDS1MgYW5kIHJldmlld2VkIGJ5IHRhZ3Mgc3VibWl0dGVkIGJ5IHBlcnNvbgo+Pj4+Cj4+Pj4g QWN0aW9uczogd2UgY291bGQgdHJ5IHRvIGhhdmUgYSBwYW5lbCBvbmx5IGZvY3VzZWQgb24gcmV3 YXJkaW5nIHBlb3BsZSBhbmQgb25seSBiYXNlZCBvbiBpbmZvcm1hdGlvbiBwZXIgZG9tYWluIGFu ZCBpbmRpdmlkdWFsIHdpdGggc29tZSBsYXJnZSB0YWJsZSBhdCB0aGUgZW5kIHdpdGggYWxsIG9m IHRoZSByZXZpZXdzLgo+Pj4gSSBkb24ndCBoYXZlIGEgc3Ryb25nIHZpZXcsIGJ1dCBJIHRoaW5r IHRoYXQgdGhlcmUgYXJlIHRvbyBtYW55IHRhYmxlcyBhbmQgZ3JhcGhzIGFuZCB0aGF0IHRoZXkg Y291bGQgcG9zc2libHkgYmUgY29uc29saWRhdGVkLiBGb3IgZXhhbXBsZQo+Pj4KPj4+IC0gVGhl ICJUb3AgUGVvcGxlL0RvbWFpbnMgUmV2aWV3aW5nIFBhdGNoZXMiIHZpZXdzIGFyZSBhIHN1YnNl dCBvZiB0aGUgaW1iYWxhbmNlIHRhYmxlcy4gSW4gcGFydGljdWxhciBleHBvcnRpbmcgdGhlIGRh dGEgd291bGQgYmUgdXNlZnVsIGZvciBtZS4KPj4+ICAgIC0gUGVyc29uYWxseSwgSSBkb24ndCBt aW5kIGp1c3QgaGF2aW5nIHRoZSBzdXBlcnNldC4KPj4+ICAgIC0gSW4gcGFydGljdWxhciwgYXMg dGhlIHRhYmxlcyBhcmUgc29ydGFibGUKPj4+ICAgIC0gQW5kIHRoZSBvbmx5IGZpbHRlcnMgdGhh dCBjYW4gYmUgYWRkZWQgYXJlIHNlbmRlciBhbmQgc2VuZGVyX2RvbWFpbgo+PiBFYWNoIHNldCBv ZiBldm9sdXRpb25hcnkgY2hhcnQgYW5kIHRoZSB0d28gdGFibGVzIGFyZSBiYXNlZCBvbiBhIGRp ZmZlcmVudCAnc2VhcmNoJyBpbiBFbGFzdGljU2VhcmNoIHRoYXQgaXMgaW4gdGhlIGVuZCBsaWtl IGEgJ3ZpZXcnIGluIHNxbC4KPj4gU28gdGhlIGNvbnNvbGlkYXRpb24gbWF5IHJlcXVpcmUgZXh0 cmEgd29yayBoZXJlIG5vdCB0aGF0IGVhc3kgdG8gY2hhbmdlLCBhbHRob3VnaCB3ZSBjYW4gZGlz Y3VzcyBhYm91dCB0aGlzLiBUaGlzIGlzIGRpdmlkZWQgYnkgdXNlIGNhc2VzLCBzbyBjb25zb2xp ZGF0aW5nIHRoaXMgbWF5IG1lYW4gY29uc29saWRhdGUgdGhlIHVzZSBjYXNlcyBpbiBmaXJzdCBw bGFjZS4KPiBBaCBPSy4gVGhpcyBpcyBub3Qgc3VjaCBhIGJpZyBkZWFsLiBJIHRoaW5rIHdlIG1h eSBuZWVkIHRvIGNvbnNvbGlkYXRlIGEgbGl0dGxlIGJpdCB0aG91Z2gsIGxvb2tpbmcgYXQgdGhl IGRhdGEuIFRoZXJlIHNlZW1zIHRvIGJlIGEgbG90IG9mIGR1cGxpY2F0ZSBpbmZvcm1hdGlvbi4K Pgo+Pj4gLSBEZXBlbmRpbmcgb24gdGhlIGFuc3dlciBvZiBRMiwgdGhlICJFdm9sdXRpb24gJ1Jl dmlld2VkIGJ5LWZsYWcnLi4uIiBhbmQgIkV2b2x1dGlvbiBvZiBwYXRjaGVzLi4uIiBjb3VsZCBw cm9iYWJseSBiZSBzaG93biBhcyBhIGNvbWJpbmVkIGJhciBncmFwaAo+Pj4gICAgLSBJZiB0aGV5 IGhhdmUgdGhlIHNhbWUgc2NvcGUsIHRoZW4gYSBiYXIgY2hhcnQgbWF5IGJlIGJldHRlcgo+Pj4g ICAgLSBJIHdpbGwgcHJvYmFibHkgaGF2ZSBzb21lIGZ1cnRoZXIgdGhvdWdodHMgYWJvdXQgdGhp cywgYmFzZWQgb24gdGhlIGFuc3dlci4KPj4gSW4gdGhlIGNhc2Ugb2YgcGF0Y2hlcywgdGhpcyBp cyB0aGUgbnVtYmVyIG9mIHBhdGNoZXMuIFRoZSBzZXZlcmFsIHZlcnNpb25zIG9mIGEgcGF0Y2gg YXJlIGNvdW50ZWQgYXMgYSBuZXcgcGF0Y2ggaW4gdGhpcyBjYXNlLgo+IE9LOiBqdXN0IGJyaW5n cyBtZSBiYWNrIHRvIHRoYXQgd2UgbmVlZCBhIGxlZ2VuZCB3aXRoIGNsZWFyIGRlZmluaXRpb25z IGFuZCBjb25zaXN0ZW50bHkgYXBwbHkgdGVybWlub2xvZ3kuIElzIHRoaXMgYWxzbyB0cnVlIGZv ciB0aGUgdGFibGVzPwoKVGhpcyBhbHNvIGFwcGx5IHRvIHRoZSB0YWJsZXMuCgoKPgo+PiBXZSBh c3N1bWVkIHRoYXQgcGF0Y2hlcyByZS1zZW50IHdlcmUgdGhvc2UgdGhhdCByZXF1aXJlZCBleHRy YSB3b3JrLCBzbyB0aGV5IGNvdWxkIGJlIGNvdW50ZWQgYXMgYSBuZXcgcGF0Y2guIFJlZ2FyZGlu ZyB0byB0aGUgcmV2aWV3cywgdGhpcyBpcyBhIHNpbWlsYXIgYXBwcm9hY2gsIHRhYmxlcyBhbmQg dGhlIGV2b2x1dGlvbmFyeSBjaGFydCBzaG93cyB0aGUgbnVtYmVyIG9mIHRvdGFsIHJldmlld3Mg dGhhdCB3ZXJlIGRldGFpbGVkIGluIHRoZSBzcGVjaWZpYyBlbWFpbC4KPiBPSzogSSB0aGluayB0 aGlzIGlzIGZpbmUKPgo+Cj4+Pj4gQ2FzZSBvZiBTdHVkeSBBLjI6IElkZW50aWZ5IGltYmFsYW5j ZXMgYmV0d2VlbiByZXZpZXdpbmcgYW5kIGNvbnRyaWJ1dGlvbgo+Pj4+IC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQo+Pj4+Cj4+Pj4gQ29udGV4dDogV2Ugc3VzcGVjdCB0aGF0IHdlIGhhdmUgc29tZSBpbWJhbGFu Y2VzIGluIHRoZSBjb21tdW5pdHksIGFrYQo+Pj4+IC0gc29tZSBjb21wYW5pZXMvaW5kaXZpZHVh bHMgd2hpY2ggcHJpbWFyaWx5IGNvbW1pdCBwYXRjaGVzLCBidXQgbm90IHJldmlldyBjb2RlCj4+ Pj4gLSBzb21lIGNvbXBhbmllcy9pbmRpdmlkdWFscyB3aGljaCBwcmltYXJpbHkgY29tbWVudCBv biBwYXRjaGVzLCBidXQgZG8gbm90IHdyaXRlIGNvZGUKPj4+PiAtIHNvbWUgd2hpY2ggZG8gYm90 aAo+Pj4gSSB0aGluayB0aGlzIHdvcmtzIHF1aXRlIGZpbmUsIGFuZCB0aGUgZGF0YSBpcyBjb25z aXN0ZW50IHdpdGggQS4xCj4+PiBUaGUgb25seSBjb21tZW50IEkgd291bGQgaGF2ZSBpcyB0aGF0 IHdlIHNob3VsZCBjYWxjdWxhdGUgdGhlIEJhbGFuY2UgYnkgUmV2aWV3cyAtIFBhdGNoZXMgcG9z dGVkCj4+IFdlIGNhbiBjaGFuZ2VkIHRoYXQuCj4+Cj4+Pj4gR29hbDogSGlnaGxpZ2h0IGltYmFs YW5jZXMKPj4+Pgo+Pj4+IFBvc3NpYmxlIHBsYWNlcyB3aGVyZSB0aGlzIGNvdWxkIGJlIGFkZGVk IDogYSBzZXBhcmF0ZSB0YWJsZSB3aGljaCBpcyBub3QgdGltZSBiYXNlZCwgYnV0IGNhbiBiZSBm aWx0ZXJlZCBieSB0aW1lIG9yIHNvbWUgaGlzdG9ncmFtCj4+Pj4gUG9zc2libGUgbWV0cmljczog bnVtYmVyIG9mIHBhdGNoZXMvcGF0Y2ggc2VyaWVzIGEgcGVyc29uL2NvbXBhbnkgaXMgYWN0aXZl bHkgY29tbWVudGluZyBvbiBkaXZpZGVkIGJ5IG51bWJlciBvZiBwYXRjaGVzL3BhdGNoIHNlcmll cyBhIHBlcnNvbi9jb21wYW55IGlzIGFjdGl2ZWx5IHN1Ym1pdHRpbmcKPj4+Pgo+Pj4+IEFjdGlv bnM6IGJ1aWxkIHRoaXMgZGFzaGJvYXJkIHdpdGggcHJlLXByb2Nlc3NlZCBpbmZvcm1hdGlvbiBh Ym91dCB0aGUgYmFsYW5jZXMuCj4+PiBUaGlzIHNlZW1zIHRvIGJlIHF1aXRlIGdvb2Q6IHRoZSBv bmx5IG9ic2VydmF0aW9uIGlzIHRoYXQgYXV0aG9ycyAoYW5kIGRvbWFpbnMpIGFyZSBjYXNlIHNl bnNpdGl2ZSBhbmQgcHJvYmFibHkgc2hvdWxkIGJlIG5vcm1hbGlzZWQKPj4+IFRoZXJlIGFsc28g c2VlbSB0byBiZSBlbnRyaWVzIHN1Y2ggYXMgIkphbiBCZXVsaWNoIFttYWlsdG86SkJldWxpY2hA c3VzZS5jb21dIgo+Pj4KPj4+IEkgYWxzbyBmb3VuZCBsb3RzIG9mIGVudHJpZXMsIHdpdGggbXVs dGlwbGUgZS1tYWlsIGFkZHJlc3NlcyBzdWNoIGFzCj4+PiAtICJhbmRyZXcuY29vcGVyM0BjaXRy aXguY29tOyBJYW4uQ2FtcGJlbGxAY2l0cml4LmNvbTsgd2VpLmxpdTJAY2l0cml4LmNvbTsgaWFu LmphY2tzb25AZXUuY2l0cml4LmNvbTsgc3RlZmFuby5zdGFiZWxsaW5pQGV1LmNpdHJpeC5jb207 IERvbmcsIEVkZGllOyBOYWthamltYSwgSnVuOyBUaWFuLCBLZXZpbjsgeGVuLWRldmVsQGxpc3Rz Lnhlbi5vcmc7IGtlaXJAeGVuLm9yZyIKPj4+IC0gTW9zdCBvZiB0aGVzZSBoYXZlICgwLDAsMCkg YW5kIGNhbiBwcm9iYWJseSBiZSByZW1vdmVkLCBpZiB0aGF0J3MgcG9zc2libGUKPj4gVGhpcyBu ZWVkcyBzb21lIGNsZWFuaW5nIGFjdGlvbnMsIHRoYW5rcyBmb3IgdGhlIHBvaW50ZXIsIEknbGwg aGF2ZSBhIGxvb2sgYXQgdGhpcyEKPiBCZWZvcmUgeW91IHN0YXJ0LCBJIHdhbnRlZCB0byBzZWVk IHRoZSBmb2xsb3dpbmcgaWRlYS4gSSBub3RpY2VkIHRoYXQgYSBsb3Qgb2Ygb3RoZXIgQ0MncyBh cmUgaW4gdGhvc2UgbGlzdHMgYWxzby4gUmVtZW1iZXIsIHdlIHdlcmUgdGFsa2luZyBhYm91dCBp bmNyZWFzaW5nIHRoZSBtYXRjaGluZyByYXRlIG9mIHhlbi1kZXZlbEAgZS1tYWlsIHRyYWZmaWMg YW5kIGdpdCByZXBvcyBiZXR0ZXIuIE9uZSBvZiB0aGUga2V5IG91dHN0YW5kaW5nIGlzc3VlcyB3 YXMgdGhhdCBhIHNpZ25pZmljYW50IHBvcnRpb24gb2YgcGF0Y2ggcmV2aWV3cyBwb3N0ZWQgeGVu LWRldmVsIGFyZSBpbiBmYWN0IGZvciBRRU1VLCBMaW51eCwgRnJlZUJTRCwgTmV0QlNELCBldGMu IEFsbCBvZiB0aGVtIGZvbGxvdyBhIHNpbWlsYXIgcmV2aWV3IHByb2Nlc3MgYXMgWGVuLCBidXQg dG8gaWRlbnRpZnkgdGhlIGFjdHVhbCBiYWNrLWxvZyBpbiBYZW4gLSBhbmQgdG8gbm90IGhhdmUg dG8gZGVhbCB3aXRoIGEgbG90IG9mIGV4dHJhIGNvbXBsZXhpdHkgLSB3ZSBvcmlnaW5hbGx5IGRl Y2lkZWQgdG8gZmlsdGVyIHRoZXNlIG91dC4KPgo+IEJ1dCB0aGF0IHdhcyBiZWZvcmUgSSB1bmRl cnN0b29kIGhvdyBwb3dlcmZ1bCBLaWJhbmEgd2FzOiBhbiBhbHRlcm5hdGl2ZSBtYXkgYmUgdG8g YWRkIGFuIGV4dHJhIGZpZWxkIHRvIGNvbW1lbnRzLCBwYXRjaGVzLCAuLi4gKEkgdGhpbmsgdGhh dCBmaWVsZCB3b3VsZCBhcHBseSB0byBFbWFpbFR5cGU9KikgdGhhdCBkZWFscyB3aXRoIENDJ2Vk IG1haWxpbmcgbGlzdHMsIHN1Y2ggYXMKPiAtIHFlbXUtZGV2ZWxAbm9uZ251Lm9yZwo+IC0gbGlu dXgtYXBpQHZnZXIua2VybmVsLm9yZwo+IC0gbGludXgtYXJjaEB2Z2VyLmtlcm5lbC5vcmcKPiAg ICAuLi4KPiAtIGxpbnV4cHBjLWRldkBsaXN0cy5vemxhYnMub3JnCj4gLSBwb3J0LXhlbkBuZXRi c2Qub3JnCj4gLSAodGhpcyBtYXkgbm90IGJlIGEgY29tcGxldGUgbGlzdCkKPgo+IGFuZCBwdXQg cGF0Y2hzZXJpZXMsIHBhdGNoZXMsIGNvbW1lbnRzLCBmbGFncyBpbnRvIGRpZmZlcmVudCBidWNr ZXRzIHZpYSBhbiBleHRyYSBmbGFnIChlLmcuIHByb2plY3Q6IHhlbi1vbmx5LCBsaW51eCwgbmV0 YnNkLCBmcmVlYnNkLCAuLi4pIGFuZCBhbGxvdyB0byBmaWx0ZXIgKGUuZy4gdmlhIGEgcGllIGNo YXJ0KS4gVGhpcyB3b3VsZCBtZWFuIHRoYXQgd2UgY291bGQgdXNlIGEgZmlsdGVyLCBpbnN0ZWFk IG9mIGNvbXBsZXggbWF0Y2hpbmcsIHRvIGN1dCB0aGUgZGF0YS4gVGhlIGRlZmF1bHQgY291bGQg YmUgJ3Byb2plY3Q6ICJ4ZW4tb25seSInLgoKSSB3YXMgY2hlY2tpbmcgdGhpcyBmaWx0ZXIsIGJ1 dCBJIHJlYWxpemVkIHRoYXQgb25jZSBhIGZpcnN0IHBhdGNoc2VyaWUgCmlzIHNlbnQsIGFueSBv ZiB0aGUgcmVwbGllcyBhZGQgaW4gQ0MgdGhlIG1haWxpbmcgbGlzdC4gSSBhbHNvIGZvdW5kIApz b21lIGNhc2VzIHdoZXJlIG90aGVyIG1haWxpbmcgbGlzdHMgYXJlIGNjLWVkLgoKSW4gYW55IGNh c2UsIEknZCBzYXkgdGhhdCB0aGlzIGNhbiBiZSBkb25lLgoKPj4+PiBDYXNlIG9mIFN0dWR5IEEu MzogaWRlbnRpZnkgcG9zdCBBQ0stY29tbWVudGluZyBvbiBwYXRjaGVzCj4+Pj4gLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+Cj4+ Pj4gQmFja2dyb3VuZDogV2Ugc3VzcGVjdCB0aGF0IHBvc3QtQUNLIGNvbW1lbnRpbmcgb24gcGF0 Y2hlcyBtYXkgYmUgYSBrZXkgaXNzdWUgaW4gb3VyIGNvbW11bml0eS4gUG9zdC1BQ0sgY29tbWVu dHMgd291bGQgYmUgYW4gaW5kaWNhdG9yIGZvciBzb21ldGhpbmcgaGF2aW5nIGdvbmUgd3Jvbmcg aW4gdGhlIHJldmlldyBwcm9jZXNzLgo+Pj4+IEdvYWw6Cj4+Pj4gLSBJZGVudGlmeSBwZW9wbGUg YW5kIGNvbXBhbmllcyB3aGljaCBwZXJzaXN0ZW50bHkgY29tbWVudCBwb3N0IEFDSwo+Pj4+IC0g UG90ZW50aWFsbHkgdGhpcyBjb3VsZCBiZSB2ZXJ5IHBvd2VyZnVsLCBpZiB3ZSBoYWQgYSB3aWRn ZXQgc3VjaCBhcyBhIHBpZSBjaGFydCB3aGljaCBzaG93cyB0aGUgcHJvcG9ydGlvbiBvZiBwYXRj aGVzL3BhdGNoIHNlcmllcyB3aXRoIG5vIHBvc3QtQUNLIGNvbW1lbnRzIHZzLiB3aXRoIHBvc3Qt QUNLIGNvbW1lbnRzCj4+PiBJIHRoaW5rIHRoYXQKPj4+IC0gRXZvbHV0aW9uIG9mIENvbW1lbnRz IEFjdGl2aXR5Cj4+PiAtIFRvcCBQZW9wbGUvRG9tYWlucyBDb21tZW50aW5nICh3aGljaCBhbHNv IGNvbnRhaW4gcG9zdC1BQ0sgY29tbWVudHMgYW5kIGFyZSB0aHVzIGFsc28gcmVsYXRlZCB0byBB LjMpCj4+PiAtIEV2b2x1dGlvbiBvZiBFbWFpbCBhY3Rpdml0eQo+Pj4gLSBfZW1haWx0eXBlIHZp ZXdzIDogbm90IHF1aXRlIHN1cmUgd2hhdCB0aGUgZGlmZmVyZW5jZSBpcwo+Pj4KPj4+IHNlcnZl cyB0d28gcHVycG9zZXM6IGl0IGNvbnRyaWJ1dGVzIHRvIEEuMSwgYnV0IGFsc28gdG8gQS4zCj4+ Pgo+Pj4gUmVsYXRlZCB0byB0aGlzIHNlZW0gdG8gYmUKPj4+IC0gRXZvbHV0aW9uIG9mIEZsYWdz Cj4+PiAtIFRvcCBQZW9wbGUvRG9tYWluIGFuYWx5c2lzCj4+PiAtIEV2b2x1dGlvbiBvZiBQYXRj aCBzZXJpZXMKPj4+Cj4+PiBRNTogV2hhdCBhcmUgQWxsIEZsYWdzPyBUaGlzIHNlZW1zIGF3ZnVs bHkgaGlnaDogbWF5YmUgc2lnbmVkIG9mZj8KPj4+IFNvbWV0aGluZyBkb2Vzbid0IHF1aXRlIHNl ZW0gdG8gYWRkIHVwLCBlLmcuIGlmIEkgbG9vayBhdCBNYXJjaCAxNnRoLCBJIGdldAo+Pj4gLSBQ YXRjaCBlLW1haWxzID0gMTg1MQo+Pj4gLSBBbGwgZmxhZ3MgPSAxNTMzCj4+PiAtIFJldmlld2Vk IGJ5ID0gMTE3Cj4+PiAtIEFja2VkIGJ5ID0gMTUwCj4+PiAtIENvbW1lbnRzID0gNDgwCj4+PiAg IEFsbCBmbGFncyBzZWVtcyB0byBiZSB0cmFja2luZyBQYXRjaCBlLW1haWxzCj4+IEZsYWdzIGFy ZSBmb3VuZCBpbiBzb21lIHJlcGxpZXMgdG8gc29tZSBwYXRjaGVzLiBXaGVuIGEgZmxhZyBpcyBm b3VuZCBpbiBhbiBlbWFpbCwgdGhlcmUncyBhIG5ldyBlbnRyeSBpbiB0aGUgbGlzdCBvZiBmbGFn cy4gSWYgdGhlcmUgd2VyZSB0aHJlZSBmbGFncyAoZWcgc2lnbmVkLW9mZiwgY2MgYW5kIHJlcG9y dGVkLWJ5KSB0aG9zZSBhcmUgdGhyZWUgbmV3IGVudHJpZXMgaW4gdGhlIHRhYmxlLgo+PiBJbiB0 aGlzIGNhc2UsICdhbGwgZmxhZ3MnIGlzIHRoZSBhZ2dyZWdhdGlvbiBvZiBhbGwgb2YgdGhlIGZs YWdzIGZvdW5kLiBFYWNoIG9mIHRob3NlIHNwZWNpYWwgZmxhZ3MgY291bnRzLgo+Pgo+PiBTYWlk IHRoaXMsIHdlIGNhbiByZWR1Y2UgdGhlIGZsYWdzIGluIHRoZSBkYXRhc2V0IGRvd24gdG8gdGhl IG51bWJlciBvZiBmbGFncyBvZiBpbnRlcmVzdCBmb3IgdGhlIGFuYWx5c2lzOiByZXZpZXdlZC1i eSBhbmQgYWNrZWQtYnkuIFRoaXMgZmxhZ3MgaW5mbyBjb250YWlucyByaWNoZXIgaW5mb3JtYXRp b24uCj4gSXMgdGhlcmUgYW4gZWFzeSB3YXkgdG8gaWRlbnRpZnkgdGhlIGZsYWdzIHdoaWNoIGFy ZSBhdmFpbGFibGU/IEkgY2FuIHRoZW4gZGVjaWRlIHdoaWNoIG9uZXMgd2UgY2FyZSBhYm91dC4K CllvdSBzaG91bGQgZ28gdG8gdGhlICdkaXNjb3Zlcicgc2VjdGlvbi4gT3Igd2UgY2FuIGFkZCBh IG5ldyB0YWJsZSB3aXRoIAphbGwgb2YgdGhlIGF2YWlsYWJsZSBmbGFncyBpbiBhbnkgb2YgdGhl IHBhbmVscyAoYWx0aG91Z2ggdGhpcyBtYXkgbWVhbiAKZXh0cmEgbm9pc2UgaW4gdGhvc2UgcGFu ZWxzKS4KCkFub3RoZXIgb3B0aW9uIGlzIGFnYWluIHRvIHByZXBhcmUgc29tZSBkb2N1bWVudGF0 aW9uLgoKPgo+Pj4gUTY6IFNhbWUgcXVlc3Rpb24gYWJvdXQgdGhlIHNjb3BlLiBUaGUgYmFja2dy b3VuZCBpcyB3aGV0aGVyIHdlIGNhbiBjb25zb2xpZGF0ZSBzb21lIG9mIHRoZXNlLCBhbmQgd2hh dCB3ZSBkb24ndCBuZWVkLgo+Pj4KPj4+PiBOT1RFOiBOZWVkIHRvIGNoZWNrIHRoZSBkYXRhLiBJ dCBzZWVtcyB0aGVyZSBhcmUgbWFueSBwb3N0LUFDSyBjb21tZW50cyBpbiBhIDUgeWVhciB2aWV3 LCBidXQgbm9uZSBpbiB0aGUgbGFzdCB5ZWFyLiBUaGF0IHNlZW1zIHdyb25nLgo+Pj4gSG93ZXZl ciBpdCBzZWVtcyB0aGF0IHRoZSBkYXRhIGZvciBwb3N0LUFDSyBjb21tZW50cyBtYXkgYmUgd3Jv bmc6IGluIHRoZSBsYXN0IHllYXIsIHRoZXJlIHdlcmUgMCBwb3N0LUFDSyBjb21tZW50cy4gVGhh dCBpcyBjbGVhcmx5IHdyb25nLgo+PiBUaGlzIHNvdW5kcyBsaWtlIGEgYnVnLiBJJ2xsIHJldmll dyB0aGlzLiBUaGFua3MgYWdhaW4gZm9yIHRoaXMgcG9pbnRlci4KPiBUaGFua3MuCj4KPj4+PiAt IEFORCBpZiB0aGF0IGNvdWxkIGJlIHVzZWQgdG8gc2VlIGhvdyBhbGwgdGhlIG90aGVyIGRhdGEg d2FzIGRpZmZlcmVudCBpZiBvbmUgb3IgdGhlIG90aGVyIHdlcmUgc2VsZWN0ZWQKPj4+PiAtIElu IGFkZGl0aW9uIGJlaW5nIGFibGUgdG8gZ2V0IGEgdGFibGUgb2YgcGVvcGxlL2NvbXBhbmllcyB3 aGljaCBzaG93cyBkYXRhIGJ5IHBlcnNvbi9jb21wYW55IHN1Y2ggYXM6ICNvZiBjb21tZW50cyBw b3N0LUFDSywgI29mIHBhdGNoZXMvc2VyaWVzIGltcGFjdGVkIGJ5IHBvc3QtQUNLIGNvbW1lbnRz IGFuZCB0aGVuIGJlaW5nIGFibGUgdG8gZ2V0IHRvIHRob3NlIHNlcmllcyB3b3VsZCBiZSBpbmNy ZWRpYmxlCj4+PiBUaGlzIHNlZW1zIHRvIG5vdCBiZSB0aGVyZSB5ZXQuIElmIHRoZXJlIHdhcyBh IGZpbHRlciAobWFudWFsIG9yIHRocm91Z2ggc29tZSB3aWRnZXQpIHRoYXQgd291bGQgYmUgZ29v ZC4gQnV0IEkgZ3Vlc3Mgd2UgbmVlZCB0byBsb29rIGF0IHRoZSBkYXRhIGZpcnN0Lgo+PiBXaXRo IHRoZSBjdXJyZW50IGRhdGEgYW5kIGZvciB0aGlzIHNwZWNpZmljIGNhc2UsIGEgd29yayBhcm91 bmQgd291bGQgYmUgdG8gd3JpdGUgaW4gdGhlIHNlYXJjaCBib3g6ICJzZW5kZXJfZG9tYWluOmNp dHJpeC5jb20gQU5EIHBvc3RfYWNrX2NvbW1lbnQ6MSIuIFRoaXMgcHJvdmlkZXMgYSBsaXN0IG9m IGNvbW1lbnRzIGluIG9uZSBvZiB0aGUgYm90dG9tIHRhYmxlcyAoIHNvIGZhciB3cm9uZyBkYXRh IGFzIHlvdSBtZW50aW9uZWQgcmVnYXJkaW5nIHRvIG5vIGV4aXN0aW5nIHBvc3QtYWNrIGNvbW1l bnRzIGluIDIwMTUpLiBUaGVyZSB5b3UgY2FuIHNlZSB0aGF0IHRoZXJlJ3MgYSBwYXRjaHNlcmll X2lkIHRoYXQgY2FuIGJlIGxhdGVyIHVzZWQgZm9yIHRyYWNraW5nIHRob3NlIHBhdGNoc2VyaWVz IGFmZmVjdGVkIGJ5IHBvc3RfYWNrX2NvbW1lbnRzLgo+IExldCBtZSB0cnkgaXQsIG9uY2UgeW91 IGZpeGVkIHRoZSBidWcuCj4KPiBSZWdhcmRzCj4gTGFycwo+IFAuUy46IFRoZSBtb3JlIEkgcGxh eSB3aXRoIHRoaXMsIHRoZSBtb3JlIEkgbGlrZSBpdC4KCkdyZWF0IDopLgoKVGhhbmtzIGZvciB5 b3VyIGNvbW1lbnRzLgoKSSdsbCByZXBseSBub3cgdG8gbXkgcHJldmlvdXMgZW1haWwgcG9pbnRp bmcgdG8gc29tZSBzcGVjaWZpYyBhY3Rpb25zIAphbmQgcmVwbHlpbmcgdG8gdGhlIHByZXZpb3Vz IGFjdGlvbnMuCgpSZWdhcmRzLApEYW5pZWwuCgoKCi0tIApEYW5pZWwgSXpxdWllcmRvIENvcnRh emFyLCBQaEQKQ2hpZWYgRGF0YSBPZmZpY2VyCi0tLS0tLS0tLQoiU29mdHdhcmUgQW5hbHl0aWNz IGZvciB5b3VyIHBlYWNlIG9mIG1pbmQiCnd3dy5iaXRlcmdpYS5jb20KQGJpdGVyZ2lhCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94 ZW4tZGV2ZWwK