From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: Re: [RFC PATCH 00/31] CPUFreq on ARM Date: Mon, 13 Nov 2017 15:21:09 +0000 Message-ID: References: <1510247421-24094-1-git-send-email-olekstysh@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eEGY4-0006Mf-DW for xen-devel@lists.xenproject.org; Mon, 13 Nov 2017 15:21:20 +0000 Received: by mail-wm0-f51.google.com with SMTP id 9so10440464wme.4 for ; Mon, 13 Nov 2017 07:21:18 -0800 (PST) In-Reply-To: <1510247421-24094-1-git-send-email-olekstysh@gmail.com> Content-Language: en-GB List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Oleksandr Tyshchenko , xen-devel@lists.xenproject.org Cc: "Edgar E . Iglesias" , Stefano Stabellini , Jassi Brar , Andrew Cooper , Julien Grall , Oleksandr Tyshchenko , Jan Beulich , Sudeep Holla List-Id: xen-devel@lists.xenproject.org SGksCgp0aGFua3MgdmVyeSBtdWNoIGZvciB5b3VyIHdvcmsgb24gdGhpcyEKCk9uIDA5LzExLzE3 IDE3OjA5LCBPbGVrc2FuZHIgVHlzaGNoZW5rbyB3cm90ZToKPiBGcm9tOiBPbGVrc2FuZHIgVHlz aGNoZW5rbyA8b2xla3NhbmRyX3R5c2hjaGVua29AZXBhbS5jb20+Cj4gCj4gSGksIGFsbC4KPiAK PiBUaGUgcHVycG9zZSBvZiB0aGlzIFJGQyBwYXRjaCBzZXJpZXMgaXMgdG8gYWRkIENQVUZyZXEg c3VwcG9ydCB0byBYZW4gb24gQVJNLgo+IE1vdGl2YXRpb24gb2YgaHlwZXJ2aXNvciBiYXNlZCBD UFVGcmVxIGlzIHRvIGVuYWJsZSBvbmUgb2YgdGhlIG1haW4gUE0gdXNlLWNhc2VzIGluIHZpcnR1 YWxpemVkIHN5c3RlbSBwb3dlcmVkIGJ5IFhlbiBoeXBlcnZpc29yLiBSYXRpb25hbGUgYmVoaW5k IHRoaXMgYWN0aXZpdHkgaXMgdGhhdCBDUFUgdmlydHVhbGl6YXRpb24gaXMgZG9uZSBieSBoeXBl cnZpc29yIGFuZCB0aGUgZ3Vlc3QgT1MgZG9lc24ndCBhY3R1YWxseSBrbm93IGFueXRoaW5nIGFi b3V0IHBoeXNpY2FsIENQVXMgYmVjYXVzZSBpdCBpcyBydW5uaW5nIG9uIHZpcnR1YWwgQ1BVcy4g SXQgaXMgcXVpdGUgY2xlYXIgdGhhdCBhIGRlY2lzaW9uIGFib3V0IGZyZXF1ZW5jeSBjaGFuZ2Ug c2hvdWxkIGJlIHRha2VuIGJ5IGh5cGVydmlzb3IgYXMgb25seSBpdCBoYXMgaW5mb3JtYXRpb24g YWJvdXQgYWN0dWFsIENQVSBsb2FkLgoKQ2FuIHlvdSBwbGVhc2Ugc2tldGNoIHlvdXIgdXNhZ2Ug c2NlbmFyaW8gb3Igd29ya2xvYWRzIGhlcmU/IEkgY2FuIHRoaW5rCm9mIHF1aXRlIGRpZmZlcmVu dCBzY2VuYXJpb3MgKG92ZXJzdWJzY3JpYmVkIHNlcnZlciB2cy4gcGFydGl0aW9uaW5nClJUT1Mg Z3Vlc3RzLCBmb3IgaW5zdGFuY2UpLiBUaGUgdXNlZnVsbmVzcyBvZiBDUFVGcmVxIGFuZCB0aGUg dHJhZGUtb2ZmcwppbiB0aGUgZGVzaWduIGFyZSBxdWl0ZSBkaWZmZXJlbnQgYmV0d2VlbiB0aG9z ZS4KCkluIGdlbmVyYWwgSSBkb3VidCB0aGF0IGEgaHlwZXJ2aXNvciBzY2hlZHVsaW5nIHZDUFVz IGlzIGluIGEgZ29vZApwb3NpdGlvbiB0byBtYWtlIGEgZGVjaXNpb24gb24gdGhlIHByb3BlciBm cmVxdWVuY3kgcGh5c2ljYWwgQ1BVcyBzaG91bGQKcnVuIHdpdGguIEZyb20gYWxsIEkga25vdyBp dCdzIGFscmVhZHkgaGFyZCBmb3IgYW4gT1Mga2VybmVsIHRvIG1ha2UKdGhhdCBjYWxsLiBTbyBJ IHdvdWxkIGFjdHVhbGx5IGV4cGVjdCB0aGF0IGd1ZXN0cyBwcm92aWRlIHNvbWUgaW5wdXQsCmZv ciBpbnN0YW5jZSBieSBzaWduYWxsaW5nIE9QUCBjaGFuZ2UgcmVxdWVzdCB1cCB0byB0aGUgaHlw ZXJ2aXNvci4gVGhpcwpjb3VsZCB0aGVuIGRlY2lkZSB0byBhY3Qgb24gaXQgLSBvciBub3QuCgo+ IEFsdGhvdWdoIHRoZXNlIHJlcXVpcmVkIGNvbXBvbmVudHMgKENQVUZyZXEgY29yZSwgZ292ZXJu b3JzLCBldGMpIGFscmVhZHkgZXhpc3QgaW4gWGVuLCBpdCBpcyB3b3J0aCB0byBtZW50aW9uIHRo YXQgdGhleSBhcmUgQUNQSSBzcGVjaWZpYy4gU28sIGEgcGFydCBvZiB0aGUgY3VycmVudCBwYXRj aCBzZXJpZXMgbWFrZXMgdGhlbSBtb3JlIGdlbmVyaWMgaW4gb3JkZXIgdG8gbWFrZSBwb3NzaWJs ZSBhIENQVUZyZXEgdXNhZ2Ugb24gYXJjaGl0ZWN0dXJlcyB3aXRob3V0IEFDUEkgc3VwcG9ydCBp bi4KCkhhdmUgeW91IGxvb2tlZCBhdCBob3cgdGhpcyBpcyB1c2VkIG9uIHg4NiB0aGVzZSBkYXlz PyBDYW4geW91IGJyaWVmbHkKZGVzY3JpYmUgaG93IHRoaXMgd29ya3MgYW5kIGl0J3MgdXNlZCB0 aGVyZT8KCj4gQnV0LCB0aGUgbWFpbiBxdWVzdGlvbiB3ZSBoYXZlIHRvIGFuc3dlciBpcyBhYm91 dCBmcmVxdWVuY3kgY2hhbmdpbmcgaW50ZXJmYWNlIGluIHZpcnR1YWxpemVkIHN5c3RlbS4gVGhl IGZyZXF1ZW5jeSBjaGFuZ2luZyBpbnRlcmZhY2UgYW5kIGFsbCBkZXBlbmRlbnQgY29tcG9uZW50 cyB3aGljaCBuZWVkZWQgQ1BVRnJlcSB0byBiZSBmdW5jdGlvbmFsIG9uIEFSTSBhcmUgbm90IHBy ZXNlbnQgaW4gWGVuIHRoZXNlIGRheXMuIFRoZSBsaXN0IG9mIHJlcXVpcmVkIGNvbXBvbmVudHMg aXMgcXVpdGUgYmlnIGFuZCBtYXkgY2hhbmdlIGFjcm9zcyBkaWZmZXJlbnQgQVJNIFNvQyB2ZW5k b3JzLiBBcyBhbiBleGFtcGxlLCB0aGUgZm9sbG93aW5nIGNvbXBvbmVudHMgYXJlIGludm9sdmVk IGluIERWRlMgb24gUmVuZXNhcyBTYWx2YXRvci1YIGJvYXJkIHdoaWNoIGhhcyBSLUNhciBHZW4z IFNvQyBpbnN0YWxsZWQ6IGdlbmVyaWMgY2xvY2ssIHJlZ3VsYXRvciBhbmQgdGhlcm1hbCBmcmFt ZXdvcmtzLCBWZW5kb3LigJlzIENQRywgUE1JQywgQVZTLCBUSFMgZHJpdmVycywgaTJjIHN1cHBv cnQsIGV0Yy4KPiAKPiBXZSB3ZXJlIGNvbnNpZGVyaW5nIGEgZmV3IHBvc3NpYmxlIGFwcHJvYWNo ZXMgb2YgaHlwZXJ2aXNvciBiYXNlZCBDUFVGcmVxcyBvbiBBUk0gYW5kIGNhbWUgdG8gY29uY2x1 c2lvbiB0byBiYXNlIHRoaXMgc29sdXRpb24gb24gcG9wdWxhciBhdCB0aGUgbW9tZW50LCBhbHJl YWR5IHVwc3RyZWFtZWQgdG8gTGludXgsIEFSTSBTeXN0ZW0gQ29udHJvbCBhbmQgUG93ZXIgSW50 ZXJmYWNlKFNDUEkpIHByb3RvY29sIFsxXS4gV2UgY2hvc2UgU0NQSSBwcm90b2NvbCBpbnN0ZWFk IG9mIG5ld2VyIEFSTSBTeXN0ZW0gQ29udHJvbCBhbmQgTWFuYWdlbWVudCBJbnRlcmZhY2UgKFND TUkpIHByb3RvY29sIFsyXSBzaW5jZSBpdCBpcyB3aWRlbHkgc3ByZWFkIGluIExpbnV4LCB0aGVy ZSBhcmUgZ29vZCBleGFtcGxlcyBob3cgdG8gdXNlIGl0LCB0aGUgcmFuZ2Ugb2YgY2FwYWJpbGl0 aWVzIGl0IGhhcyBpcyBlbm91Z2ggZm9yIGltcGxlbWVudGluZyBoeXBlcnZpc29yIGJhc2VkIENQ VUZyZXEgYW5kLCB3aGF0IGlzIG1vcmUsIHVwc3RyZWFtIExpbnV4IHN1cHBvcnQgZm9yIFNDTUkg aXMgbWlzc2VkIHNvIGZhciwgYnV0IFNDTUkgY291bGQgYmUgdXNlZCBhcyB3ZWxsLgo+IAo+IEJy aWVmbHkgc3BlYWtpbmcsIHRoZSBTQ1BJIHByb3RvY29sIGlzIHVzZWQgYmV0d2VlbiB0aGUgU3lz dGVtIENvbnRyb2wgUHJvY2Vzc29yKFNDUCkgYW5kIHRoZSBBcHBsaWNhdGlvbiBQcm9jZXNzb3Jz KEFQKS4gVGhlIG1haWxib3ggZmVhdHVyZSBwcm92aWRlcyBhIG1lY2hhbmlzbSBmb3IgaW50ZXIt cHJvY2Vzc29yIGNvbW11bmljYXRpb24gYmV0d2VlbiBTQ1AgYW5kIEFQLiBUaGUgbWFpbiBwdXJw b3NlIG9mIFNDUCBpcyB0byBvZmZsb2FkIGRpZmZlcmVudCBQTSByZWxhdGVkIHRhc2tzIGZyb20g QVAgYW5kIG9uZSBvZiB0aGUgc2VydmljZXMgdGhhdCBTQ1AgcHJvdmlkZXMgaXMgRHluYW1pYyB2 b2x0YWdlIGFuZCBmcmVxdWVuY3kgc2NhbGluZyAoRFZGUyksIGl0IGlzIHdoYXQgd2UgYWN0dWFs bHkgbmVlZCBmb3IgQ1BVRnJlcS4gSSB3aWxsIGRlc2NyaWJlIHRoaXMgYXBwcm9hY2ggaW4gZGV0 YWlscyBkb3duIHRoZSB0ZXh0Lgo+IAo+IExldCBtZSBleHBsYWluIGEgYml0IG1vcmUgd2hhdCB0 aGVzZSBwb3NzaWJsZSBhcHByb2FjaGVzIGFyZToKPiAKPiAxLiDigJxYZW4raHdkb23igJ0gc29s dXRpb24uCj4gR2xvYmFsTG9naWMgdGVhbSBwcm9wb3NlZCBzcGxpdCBtb2RlbCBbM10sIHdoZXJl IOKAnGh3ZG9tLWNwdWZyZXHigJ0gZnJvbnRlbmQgZHJpdmVyIGluIFhlbiBpbnRlcmFjdHMgd2l0 aCB0aGUg4oCceGVuLWNwdWZyZXHigJ0gYmFja2VuZCBkcml2ZXIgaW4gTGludXggaHdkb20gKHBv c3NpYmx5IGRvbTApIGluIG9yZGVyIHRvIHNjYWxlIHBoeXNpY2FsIENQVXMuIFRoaXMgc29sdXRp b24gaGFzbuKAmXQgYmVlbiBhY2NlcHRlZCBieSBYZW4gY29tbXVuaXR5IHlldCBhbmQgc2VlbXMg aXQgaXMgbm90IGdvaW5nIHRvIGJlIGFjY2VwdGVkIHdpdGhvdXQgdGFraW5nIGludG8gdGhlIGFj Y291bnQgc3RpbGwgdW5hbnN3ZXJlZCBtYWpvciBxdWVzdGlvbnMgYW5kIHByb3ZpbmcgdGhhdCDi gJxhbGwtaW4tWGVu4oCdIHNvbHV0aW9uLCB3aGljaCBYZW4gY29tbXVuaXR5IGNvbnNpZGVyZWQg YXMgbW9yZSBhcmNoaXRlY3R1cmFsbHkgY2xlYW5lciBvcHRpb24sIHdvdWxkIGJlIHVud29ya2Fi bGUgaW4gcHJhY3RpY2UuCj4gVGhlIG90aGVyIHJlYXNvbnMgd2h5IHdlIGRlY2lkZWQgbm90IHRv IHN0aWNrIHRvIHRoaXMgYXBwcm9hY2ggYXJlIGNvbXBsZXggY29tbXVuaWNhdGlvbiBpbnRlcmZh Y2UgYmV0d2VlbiBYZW4gYW5kIGh3ZG9tOiBldmVudCBjaGFubmVsLCBoeXBlcmNhbGxzLCBzeXNj YWxscywgcGFzc2luZyBDUFUgaW5mbyB2aWEgRFQsIGV0YyBhbmQgcG9zc2libGUgc3luY2hyb25p emF0aW9uIGlzc3VlcyB3aXRoIGEgcHJvcG9zZWQgc29sdXRpb24uCj4gQWx0aG91Z2ggaXQgaXMg d29ydGggdG8gbWVudGlvbiB0aGF0IHRoZSBiZWF1dHkgb2YgdGhpcyBhcHByb2FjaCB3YXMgdGhh dCB0aGVyZSB3b3VsZG7igJl0IGJlIGEgbmVlZCB0byBwb3J0IGEgbG90IG9mIHRoaW5ncyB0byBY ZW4uIEFsbCBmcmVxdWVuY3kgY2hhbmdpbmcgaW50ZXJmYWNlIGFuZCBhbGwgZGVwZW5kZW50IGNv bXBvbmVudHMgd2hpY2ggbmVlZGVkIENQVUZyZXEgdG8gYmUgZnVuY3Rpb25hbCB3ZXJlIGFscmVh ZHkgaW4gcGxhY2UuCgpTdGVmYW5vLCBKdWxpZW4gYW5kIEkgd2VyZSB0aGlua2luZyBhYm91dCB0 aGlzOiBXb3VsZG4ndCBpdCBiZSBwb3NzaWJsZQp0byBjb21lIHVwIHdpdGggc29tZSBoYXJkd2Fy ZSBkb21haW4sIHNvbGVseSBkZWFsaW5nIHdpdGggQ1BVRnJlcQpjaGFuZ2VzPyBUaGlzIGNvdWxk IHJ1biBhIExpbnV4IGtlcm5lbCwgYnV0IG5vIG9yIHZlcnkgbGl0dGxlIHVzZXJsYW5kLgpBbGwg aXRzIHZDUFVzIHdvdWxkIGJlIHBpbm5lZCB0byBwQ1BVcyBhbmQgd291bGQgbm9ybWFsbHkgbm90 IGJlCnNjaGVkdWxlZCBieSBYZW4uIElmIFhlbiB3YW50cyB0byBjaGFuZ2UgdGhlIGZyZXF1ZW5j eSwgaXQgc2NoZWR1bGVzIHRoZQpyZXNwZWN0aXZlIHZDUFUgdG8gdGhlIHJpZ2h0IHBDUFUgYW5k IHBhc3NlcyBkb3duIHRoZSBmcmVxdWVuY3kgY2hhbmdlCnJlcXVlc3QuIFNvdW5kcyBhIGJpdCBp bnZvbHZlZCwgdGhvdWdoLCBhbmQgcHJvYmFibHkgZG9lc24ndCBzb2x2ZSB0aGUKcHJvYmxlbSB3 aGVyZSB0aGlzIGRvbWFpbiBuZWVkcyB0byBzaGFyZSBhY2Nlc3MgdG8gaGFyZHdhcmUgd2l0aCBE b20wCihjbG9ja3MgY29tZSB0byBtaW5kKS4KCj4gQWx0aG91Z2ggdGhpcyBhcHByb2FjaCBpcyBu b3QgdXNlZCwgc3RpbGwgSSBwaWNrZWQgYSBmZXcgYWxyZWFkeSBhY2tlZCBwYXRjaGVzIHdoaWNo IG1hZGUgQUNQSSBzcGVjaWZpYyBDUFVGcmVxIHN0dWZmIG1vcmUgZ2VuZXJpYy4KPiAKPiAyLiDi gJxhbGwtaW4tWGVu4oCdIHNvbHV0aW9uLgo+IFRoaXMgaW1wbGllcyB0aGF0IGFsbCBDUFVGcmVx IHJlbGF0ZWQgc3R1ZmYgc2hvdWxkIGJlIGxvY2F0ZWQgaW4gWGVuLgo+IENvbW11bml0eSBjb25z aWRlcmVkIHRoaXMgc29sdXRpb24gYXMgbW9yZSBhcmNoaXRlY3R1cmFsbHkgY2xlYW5lciBvcHRp b24gdGhhbiDigJxYZW4raHdkb23igJ0gb25lLiBObyBsYXllcmluZyB2aW9sYXRpb24gY29tcGFy aW5nIHdpdGggdGhlIHByZXZpb3VzIGFwcHJvYWNoIChsZXR0aW5nIGd1ZXN0IE9TIG1hbmFnZSBv bmUgb3IgbW9yZSBwaHlzaWNhbCBDUFVzIGlzIG1vcmUgb2YgYSBsYXllcmluZyB2aW9sYXRpb24p Lgo+IFRoaXMgc29sdXRpb24gbG9va3MgYmV0dGVyLCBidXQgdG8gYmUgaG9uZXN0LCB3ZSBhcmUg bm90IGluIGZhdm9yIG9mIHRoaXMgc29sdXRpb24gYXMgd2VsbC4gV2UgZXhwZWN0IGVub3Jtb3Vz IGRldmVsb3BpbmcgZWZmb3J0IHRvIGdldCB0aGlzIHN1cHBvcnQgaW4gKHRoZSBzY29wZSBvZiBy ZXF1aXJlZCBjb21wb25lbnRzIGxvb2tzIHVucmVhbCkgYW5kIG1haW50YWluIGl0LiBTbywgd2Ug ZGVjaWRlZCBub3QgdG8gc3RpY2sgdG8gdGhpcyBhcHByb2FjaCBhcyB3ZWxsLgoKWWVzLCBJIGV2 ZW4gdGhpbmsgaXQncyBub3QgZmVhc2libGUgdG8gaW1wbGVtZW50IHRoaXMuIFdpdGggYSBtb2Rl cm4KY2xvY2sgaW1wbGVtZW50YXRpb24gdGhlcmUgaXMgb25lIGRyaXZlciB0byBjb250cm9sICph bGwqIGNsb2NrcyBvZiBhbgpTb0MsIHNvIHlvdSBjYW4ndCBzaW5nbGUgb3V0IHRoZSBDUFUgY2xv Y2sgZWFzaWx5LCBmb3IgaW5zdGFuY2UuIE9uZQp3b3VsZCBwcm9iYWJseSBydW4gaW50byBzeW5j aHJvbmlzYXRpb24gaXNzdWVzLCBhdCBiZXN0LgoKPiAzLiDigJxYZW4rU0NQKEFSTSBURinigJ0g c29sdXRpb24uCj4gSXQgaXMgeWV0IGFub3RoZXIgc29sdXRpb24gYmFzZWQgb24gQVJNIFNDUEkg cHJvdG9jb2wuIFRoZSBnZW5lcmljIGlkZWEgaGVyZSBpcyB0aGF0IHRoZXJlIGlzIGEgZmlybXdh cmUsIHdoaWNoIGJlaW5nIGEgc2VydmVyIHJ1bnMgb24gc29tZSBkZWRpY2F0ZWQgSVAgY29yZSAo c2VydmVyKSwgcHJvdmlkZXMgZGlmZmVyZW50IFBNIHNlcnZpY2VzIChEVkZTLCBzZW5zb3JzLCBl dGMpLiBPbiB0aGUgb3RoZXIgc2lkZSB0aGVyZSBpcyBhIENQVUZyZXEgZHJpdmVyIGluIFhlbiwg d2hpY2ggaXMgcnVubmluZyBvbiB0aGUgQVAgKGNsaWVudCksIGNvbnN1bWVzIHRoZXNlIHNlcnZp Y2VzLiBDUFVGcmVxIGRyaXZlciBuZWl0aGVyIGNoYW5nZXMgdGhlIENQVSBmcmVxdWVuY3kvdm9s dGFnZSBieSBpdHNlbGYgbm9yIGNvb3BlcmF0ZXMgd2l0aCBMaW51eCBpbiBvcmRlciB0byBkbyBz dWNoIGpvYi4gSXQganVzdCBjb21tdW5pY2F0ZXMgd2l0aCBTQ1AgZGlyZWN0bHkgdXNpbmcgU0NQ SSBwcm90b2NvbC4gQXMgSSBzYWlkIGJlZm9yZSwgc29tZSBpbnRlZ3JhdGVkIGludG8gYSBTb0Mg bWFpbGJveCBJUCBuZWVkIHRvIGJlIHVzZWQgZm9yIElQQyAoZG9vcmJlbGwgZm9yIHRyaWdnZXJp bmcgYWN0aW9uIGFuZCBzaGFyZWQgbWVtb3J5IHJlZ2lvbiBmb3IgY29tbWFuZHMpLiBDUFVGcmVx IGRyaXZlciBkb2VzbuKAmXQgZXZlbiBuZWVkIHRvIGtub3cgd2hhdCBzaG91bGQgYmUgcGh5c2lj YWxseSBjaGFuZ2VkIGZvciB0aGUgbmV3IGZyZXF1ZW5jeSB0byB0YWtlIGVmZmVjdC4gSXQgaXMg YSBjZXJ0YWlubHkgU0NQ4oCZcyByZXNwb25zaWJpbGl0eS4gVGhpcyBhbGwgYXZvaWQgQ1BVRnJl cSBpbmZyYXN0cnVjdHVyZSBpbiBYZW4gb24gQVJNIGZyb20gZGl2aW5nIGludG8gZWFjaCBzdXBw b3J0ZWQgU29DIGludGVybmFscyBhbmQgYXMgdGhlIHJlc3VsdCBoYXZpbmcgYSBsb3Qgb2YgY29k ZS4KPiAKPiBUaGUgcG9zc2libGUgaXNzdWUgaGVyZSBjb3VsZCBiZSBpbiBTQ1AsIHRoZSBwcm9i bGVtIGlzIHRoYXQgc29tZSBkZWRpY2F0ZWQgSVAgY29yZSBtYXkgYmUgYWJzZW50IGF0IGFsbCBv ciBwZXJmb3JtcyBvdGhlciB0aGFuIFBNIHRhc2tzLiBGb3J0dW5hdGVseSwgdGhlcmUgaXMgYSBi cmlsbGlhbnQgc29sdXRpb24gdG8gdGVhY2ggZmlybXdhcmUgcnVubmluZyBpbiB0aGUgRUwzIGV4 Y2VwdGlvbiBsZXZlbCAoQVJNIFRGKSB0byBwZXJmb3JtIFNDUCBmdW5jdGlvbnMgYW5kIHVzZSBT TUMgY2FsbHMgZm9yIGNvbW11bmljYXRpb25zIFs0XS4gRXhhY3RseSB0aGlzIHRyYW5zcG9ydCBp bXBsZW1lbnRhdGlvbiBJIHdhbnQgdG8gYnJpbmcgdG8gWGVuIHRoZSBmaXJzdC4gU3VjaCBzb2x1 dGlvbiBpcyBnb2luZyB0byBiZSBnZW5lcmljIGFjcm9zcyBhbGwgQVJNIHBsYXRmb3JtcyB0aGF0 IGRvIGhhdmUgZmlybXdhcmUgcnVubmluZyBpbiB0aGUgRUwzIGV4Y2VwdGlvbiBsZXZlbCBhbmQg ZG9u4oCZdCBoYXZlIGNhbmRpZGF0ZSBmb3IgYmVpbmcgU0NQLgoKV2hpbGUgSSBmZWVsIGZsYXR0 ZXJlZCB0aGF0IHlvdSBsaWtlIHRoYXQgaWRlYSBhcyB3ZWxsIDstKSwgeW91IHNob3VsZAptZW50 aW9uIHRoYXQgdGhpcyByZXF1aXJlcyBhY3R1YWwgZmlybXdhcmUgcHJvdmlkaW5nIHRob3NlIHNl cnZpY2VzLiBJCmFtIG5vdCBzdXJlIHRoZXJlIGlzIGFjdHVhbGx5ICphbnkqIGltcGxlbWVudGF0 aW9uIG9mIHRoaXMgYXQgdGhlCm1vbWVudCwgYXBhcnQgZnJvbSBteSBQb0MgY29kZSBmb3IgQWxs d2lubmVyLgpBbmQgZnJvbSBhIFhlbiBwb2ludCBvZiB2aWV3IEkgYW0gbm90IHN1cmUgd2UgYXJl IGluIHRoZSBwb3NpdGlvbiB0bwpmb3JjZSB1c2VycyB0byB1c2UgdGhpcyBmaXJtd2FyZS4gVGhp cyBtYXkgYmUgZmVhc2libGUgaW4gYSBjbGFzc2ljCmVtYmVkZGVkIHNjZW5hcmlvLCB3aGVyZSBi b3RoIGZpcm13YXJlIGFuZCBzb2Z0d2FyZSBhcmUgcHJvdmlkZWQgYnkgdGhlCnNhbWUgZW50aXR5 LCBidXQgdGhhdCBzaG91bGQgYmUgY2xlYXJseSBub3RlZCBhcyBhIHJlc3RyaWN0aW9uLgoKPiBI ZXJlIHdlIGhhdmUgY29tcGxldGVseSBzeW5jaHJvbm91cyBjYXNlIGJlY2F1c2Ugb2YgU01DIGNh bGxzIG5hdHVyZS4gU01DIHRyaWdnZXJlZCBtYWlsYm94IGRyaXZlciBlbXVsYXRlcyBhIG1haWxi b3ggd2hpY2ggc2lnbmFscyB0cmFuc21pdHRlZCBkYXRhIHZpYSBTZWN1cmUgTW9uaXRvciBDYWxs IChTTUMpIGluc3RydWN0aW9uIFs1XS4gVGhlIG1haWxib3ggcmVjZWl2ZXIgaXMgaW1wbGVtZW50 ZWQgaW4gZmlybXdhcmUgYW5kIHN5bmNocm9ub3VzbHkgcmV0dXJucyBkYXRhIHdoZW4gaXQgcmV0 dXJucyBleGVjdXRpb24gdG8gdGhlIG5vbi1zZWN1cmUgd29ybGQgYWdhaW4uIFRoaXMgd291bGQg YWxsb3cgdXMgYm90aCB0byB0cmlnZ2VyIGEgcmVxdWVzdCBhbmQgdHJhbnNmZXIgZXhlY3V0aW9u IHRvIHRoZSBmaXJtd2FyZSBjb2RlIGluIGEgc2FmZSBhbmQgYXJjaGl0ZWN0ZWQgd2F5LiBMaWtl IFBTQ0kgcmVxdWVzdHMuCj4gQXMgeW91IGNhbiBzZWUgdGhpcyBtZXRob2QgaXMgZnJlZSBmcm9t IHN5bmNocm9uaXphdGlvbiBpc3N1ZXMuIFdoYXQgaXMgbW9yZSwgdGhpcyBzb2x1dGlvbiBpcyBt b3JlIGFyY2hpdGVjdHVyYWxseSBjbGVhbmVyIHNvbHV0aW9uIHRoYW4gc3BsaXQgbW9kZWwg4oCc WGVuK2h3ZG9t4oCdIG9uZS4gRnJvbSB0aGUgc2VjdXJpdHkgcG9pbnQgb2YgdmlldywgSSBob3Bl LCBldmVyeXRoaW5nIHdpbGwgYmUgbXVjaCBtb3JlIGNvcnJlY3Qgc2luY2UgdGhlIEFSTSBURiwg d2hpY2ggd2Ugd2FudCB0byBzZWUgaW4gY2hhcmdlIG9mIGNvbnRyb2xsaW5nIENQVSBmcmVxdWVu Y3kvdm9sdGFnZSwgaXMgYSB0cnVzdGVkIFNXIGxheWVyLiBNb3Jlb3ZlciwgQVJNIFRGIGlzIHJl c3BvbnNpYmxlIGZvciBlbmFibGluZy9kaXNhYmxpbmcgQ1BVIChQU0NJKSBhbmQgbm9ib2R5IGNv bXBsYWlucyBhYm91dCBpdCwgc28gbGV0IGl0IGRvIERWRlMgdG9vLgoKSXQgc2hvdWxkIGJlIG5v dGVkIHRoYXQgdGhpcyBzeW5jaHJvbm91cyBuYXR1cmUgb2YgdGhlIGNvbW11bmljYXRpb24gY2Fu CmFjdHVhbGx5IGJlIGEgcHJvYmxlbTogYSBEVkZTIHJlcXVlc3QgdXN1YWxseSBpbnZvbHZlcyBy ZWd1bGF0b3IgYW5kIFBMTApjaGFuZ2VzLCB3aGljaCBjb3VsZCB0YWtlIHNvbWUgdGltZSB0byBz ZXR0bGUgaW4uIEJsb2NraW5nIGFsbCBvZiB0aGlzCnRpbWUgKG1pbGxpc2Vjb25kcz8pIGluIEVM MyAocHJvYmFibHkgYnVzeS13YWl0aW5nKSBtaWdodCBub3QgYmUgZGVzaXJhYmxlLgoKPiBJIGhh dmUgdG8gYWRtaXQgdGhhdCBJIGhhdmUgY2hlY2tlZCB0aGlzIHNvbHV0aW9uIG9ubHkgZHVlIHRv IGEgbGFjayBvZiBjYW5kaWRhdGUgZm9yIGJlaW5nIFNDUC4gQnV0LCBJIGhvcGUsIHRoYXQgb3Ro ZXIgQVJNIFNvQ3Mgd2hlcmUgZGVkaWNhdGVkIFNDUCBpcyBwcmVzZW50IChhc3luY2hyb25vdXMg Y2FzZSkgd2lsbCB3b3JrIHRvbywgYnV0IHdpdGggc29tZSBsaW1pdGF0aW9ucy4gVGhlIG1haWxi b3ggSVBzIGZvciB0aGVzZSBBUk0gU29DcyBtdXN0IGhhdmUgVFgvUlgtZG9uZSBpcnFzLiBJIGhh dmUgZGVzY3JpYmVkIGluIHRoZSBjb3JyZXNwb25kaW5nIHBhdGNoZXMgd2h5IHRoaXMgbGltaXRh dGlvbiBpcyBwcmVzZW50Lgo+IAo+IFRvIGJlIGhvbmVzdCBJIGhhdmUgUmVuZXNhcyBSLUNhciBH ZW4zIFNvQ3MgaW4gbWluZCBhcyBvdXIgbmVhcmVzdCB0YXJnZXQsIGJ1dCBJIHdvdWxkIGxpa2Ug dG8gbWFrZSB0aGlzIHNvbHV0aW9uIGFzIGdlbmVyaWMgYXMgcG9zc2libGUuIEkgZG9u4oCZdCB0 cmVhdCBwcm9wb3NlZCBzb2x1dGlvbiBhcyB3b3JsZC13aWRlIGdlbmVyaWMsIGJ1dCBJIGhvcGUs IHRoaXMgc29sdXRpb24gbWF5IGJlIHN1aXRhYmxlIGZvciBvdGhlciBBUk0gU29DcyB3aGljaCBt ZWV0IHN1Y2ggcmVxdWlyZW1lbnRzLiBBbnl3YXksIGhhdmluZyBzb21ldGhpbmcgd2hpY2ggd29y a3MsIGJ1dCBkb2VzbuKAmXQgY292ZXIgYWxsIGNhc2VzIGlzIGJldHRlciB0aGFuIGhhdmluZyBu b3RoaW5nLgo+IAo+IEkgd291bGQgbGlrZSB0byBub3RpY2UgdGhhdCB0aGUgcGF0Y2hlcyBhcmUg UE9DIHN0YXRlIGFuZCBJIHBvc3QgdGhlbSBqdXN0IHRvIGlsbHVzdHJhdGUgaW4gbW9yZSBkZXRh aWwgb2Ygd2hhdCBJIGFtIHRhbGtpbmcgYWJvdXQuIFBhdGNoIHNlcmllcyBjb25zaXN0IG9mIHRo ZSBmb2xsb3dpbmcgcGFydHM6Cj4gMS4gR0zigJlzIHBhdGNoZXMgd2hpY2ggbWFrZSBBQ1BJIHNw ZWNpZmljIENQVUZyZXEgc3R1ZmYgbW9yZSBnZW5lcmljLiBBbHRob3VnaCB0aGVzZSBwYXRjaGVz IGhhcyBiZWVuIGFscmVhZHkgYWNrZWQgYnkgWGVuIGNvbW11bml0eSBhbmQgdGhlIENQVUZyZXEg Y29kZSBiYXNlIGhhc27igJl0IGNoYW5nZWQgaW4gYSBsYXN0IGZldyB5ZWFycyBJIGRyb3AgYWxs IEEtYi4KPiAyLiBBIGJ1bmNoIG9mIGRldmljZS10cmVlIGhlbHBlcnMgYW5kIG1hY3Jvcy4KPiAz LiBEaXJlY3QgcG9ydGVkIFNDUEkgcHJvdG9jb2wsIG1haWxib3ggaW5mcmFzdHJ1Y3R1cmUgYW5k IHRoZSBBUk0gU01DIHRyaWdnZXJlZCBtYWlsYm94IGRyaXZlci4gQWxsIGNvbXBvbmVudHMgZXhj ZXB0IG1haWxib3ggZHJpdmVyIGFyZSBpbiBtYWlubGluZSBMaW51eC4KCldoeSBkbyB5b3UgYWN0 dWFsbHkgbmVlZCB0aGlzIG1haWxib3ggZnJhbWV3b3JrPyBBY3R1YWxseSBJIGp1c3QKcHJvcG9z ZWQgdGhlIFNNQyBkcml2ZXIgdGhlIG1ha2UgaXQgZml0IGludG8gdGhlIExpbnV4IGZyYW1ld29y ay4gQWxsIHdlCmFjdHVhbGx5IG5lZWQgZm9yIFNDUEkgaXMgdG8gd3JpdGUgYSBzaW1wbGUgY29t bWFuZCBpbnRvIHNvbWUgbWVtb3J5IGFuZAoicHJlc3MgYSBidXR0b24iLiBJIGRvbid0IHNlZSBh IG5lZWQgdG8gaW1wb3J0IHRoZSB3aG9sZSBMaW51eApmcmFtZXdvcmssIGVzcGVjaWFsbHkgYXMg b3VyIG1haWxib3ggdXNhZ2UgaXMgYWN0dWFsbHkganVzdCBhIGNvcm5lcgpjYXNlIG9mIHRoZSBt YWlsYm94J3MgY2FwYWJpbGl0eSAobmFtZWx5IGEgInNpbmdsZS1iaXQiIGRvb3JiZWxsKS4KVGhl IFNNQyB1c2UgY2FzZSBpcyB0cml2aWFsIHRvIGltcGxlbWVudCwgYW5kIEkgYmVsaWV2ZSB1c2lu ZyB0aGUgSnVubwptYWlsYm94IGlzIHNpbWlsYXJseSBzaW1wbGUsIGZvciBpbnN0YW5jZS4KCgpT byB0byBzdW1tYXJpemUgSSB0aGluayB3ZSBuZWVkIHRvIGFncmVlIG9uIHRob3NlIGdlbmVyYWwg cXVlc3Rpb25zOgoxKSBTaGFsbCB0aGUgWGVuIGh5cGVydmlzb3IgYWN0dWFsbHkgYmUgaW52b2x2 ZWQgaW4gQ1BVRnJlcSBhdCBhbGw/IENhbgp0aGlzIGJlIGxlZnQgdG8gY29ybmVyLWNhc2VzIGxp a2UgcGlubmVkIENQVXMvZ3Vlc3RzLCB3aGVyZSBndWVzdHMKcmVxdWVzdHMgYXJlIHBhc3NlZCBv biB0byB0aGUgaGFyZHdhcmU/CjIpIElzIEVMMy9BVEYgcHJvdmlkaW5nIFNDUEkgc2VydmljZXMg c29tZXRoaW5nIHdlIGNhbiBidWlsZCBvbj8KTm9ybWFsbHkgSSB3b3VsZCBleHBlY3Qgd2Ugd3Jp dGUgZHJpdmVycyB0byBtYXRjaCBleGlzdGluZyBmaXJtd2FyZS4KMykgV2hlbiB3ZSBnbyB0aGlz IHdheSwgZG8gd2UgcmVhbGx5IG5lZWQgdG8gcG9ydCBhbGwgb2YgdGhlIExpbnV4CmRyaXZlcnMg YW5kIGl0cyBmcmFtZXdvcmsgdG8gWGVuPyBDYW4ndCB3ZSBnZXQgYXdheSB3aXRoIG11Y2ggc2lt cGxlcgpzb2x1dGlvbnM/IEluIHRoZSBlbmQgYWxsIHRoZSBTTUMgbWFpbGJveCBkcml2ZXIgZG9l cyBpdCB0byB0cmlnZ2VyIGFuCnNpbmdsZSBTTUMgY2FsbCwgZW1iZWRkZWQgaW4gYSBsb3Qgb2Yg Z2xvcmlvdXMgTGludXggYm9pbGVyIHBsYXRlIGNvZGUuCgpXaGF0IEkgd2FzICphY3R1YWxseSog dGhpbmtpbmcgb2Ygd2hlbiB1c2luZyB0aGUgU01DIG1haWxib3ggYXBwcm9hY2ggaXMKdGhlIGFi aWxpdHkgdG8gcHJvdmlkZSAqdmlydHVhbCogU0NQSSBzZXJ2aWNlcyB0byBndWVzdCwgaW4gYSBn ZW5lcmljLApub3QtU29DLXNwZWNpZmljIHdheS4gVGhlIHByb3Bvc2VkIFNNQyBtYWlsYm94IGJp bmRpbmcgYWxsb3dzIHVzaW5nCipodmMqIGNhbGxzIHRvIHRyaWdnZXIgc2VydmljZXMsIHNvIFhl biBjb3VsZCBwaWNrIHVwIERWRlMgcmVxdWVzdHMgZnJvbQpndWVzdHMgaW4gYSBnZW5lcmljIHdh eSBhbmQgYWN0IHVwb24gdGhlbS4KCkNoZWVycywKQW5kcmUuCgo+IDQuIFhlbiBjaGFuZ2VzIHRv IGRpcmVjdCBwb3J0ZWQgY29kZSBmb3IgbWFraW5nIGl0IGNvbXBpbGFibGUuIFRoZXNlIGNoYW5n ZXMgZG9u4oCZdCBjaGFuZ2UgZnVuY3Rpb25hbGl0eS4KPiA1LiBTb21lIG1vZGlmaWNhdGlvbiB0 byBkaXJlY3QgcG9ydGVkIGNvZGUgd2hpY2ggc2xpZ2h0bHkgY2hhbmdlIGZ1bmN0aW9uYWxpdHks IEkgd291bGQgc2F5IHRvIHJlc3RyaWN0IGl0Lgo+IDYuIFNDUEkgYmFzZWQgQ1BVRnJlcSBkcml2 ZXIgYW5kIENQVUZyZXEgaW50ZXJmYWNlIGNvbXBvbmVudC4KPiA3LiBNaXNjIHBhdGNoZXMgbW9z dGx5IHRvIEFSTSBzdWJzeXN0ZW0uCj4gOC4gUGF0Y2ggZnJvbSBWb2xvZHlteXIgQmFiY2h1ayB3 aGljaCBhZGRzIFNNQyB3cmFwcGVyLgo+IAo+IE1vc3QgaW1wb3J0YW50IFRPRE9zIHJlZ2FyZGlu ZyB0aGUgd2hvbGUgcGF0Y2ggc2VyaWVzOgo+IDEuIEhhbmRsZSBkZXZtIGluIHRoZSBkaXJlY3Qg cG9ydGVkIGNvZGUuIEN1cnJlbnRseSwgaW4gY2FzZSBvZiBhbnkgZXJyb3JzIHByZXZpb3VzbHkg YWxsb2NhdGVkIHJlc291cmNlcyBhcmUgbGVmdCB1bmZyZWVkLgo+IDIuIFRoZXJtYWwgbWFuYWdl bWVudCBpbnRlZ3JhdGlvbi4KPiAzLiBEb24ndCBwYXNzIENQVUZyZXEgcmVsYXRlZCBub2RlcyB0 byBkb20wLiBYZW4gb3ducyBTQ1BJIGNvbXBsZXRlbHkuCj4gNC4gSGFuZGxlIENQVV9UVVJCTyBm cmVxdWVuY2llcyBpZiB0aGV5IGFyZSBzdXBwb3J0ZWQgYnkgSFcuCj4gCj4gWW91IGNhbiBmaW5k IHRoZSB3aG9sZSBwYXRjaCBzZXJpZXMgaGVyZToKPiByZXBvOiBodHRwczovL2dpdGh1Yi5jb20v b3R5c2hjaGVua28xL3hlbi5naXQgYnJhbmNoOiBjcHVmcmVxLWRldmVsMQo+IAo+IFAuUy4gVGhl cmUgaXMgbm8gbmVlZCB0byBtb2RpZnkgeGVucG0gdG9vbC4gSXQgd29ya3Mgb3V0IG9mIHRoZSBi b3ggb24gQVJNLgo+IAo+IFsxXQo+IExpbnV4IGNvZGU6Cj4gaHR0cDovL2VsaXhpci5mcmVlLWVs ZWN0cm9ucy5jb20vbGludXgvdjQuMTQtcmM2L3NvdXJjZS9kcml2ZXJzL2Zpcm13YXJlL2FybV9z Y3BpLmMKPiBodHRwOi8vZWxpeGlyLmZyZWUtZWxlY3Ryb25zLmNvbS9saW51eC92NC4xNC1yYzYv c291cmNlL2luY2x1ZGUvbGludXgvc2NwaV9wcm90b2NvbC5oCj4gaHR0cDovL2VsaXhpci5mcmVl LWVsZWN0cm9ucy5jb20vbGludXgvdjQuMTQtcmM2L3NvdXJjZS9Eb2N1bWVudGF0aW9uL2Rldmlj ZXRyZWUvYmluZGluZ3MvYXJtL2FybSxzY3BpLnR4dAo+IAo+IFJlY2VudCBwcm90b2NvbCB2ZXJz aW9uOgo+IGh0dHA6Ly9pbmZvY2VudGVyLmFybS5jb20vaGVscC90b3BpYy9jb20uYXJtLmRvYy5k dWkwOTIyZy9zY3BfbWVzc2FnZV9pbnRlcmZhY2VfdjFfMl9EVUkwOTIyR19lbi5wZGYKPiAKPiBb Ml0KPiBYZW4gcGFydDoKPiBodHRwczovL2xpc3RzLnhlbi5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4t ZGV2ZWwvMjAxNC0xMS9tc2cwMDk0MC5odG1sCj4gTGludXggcGFydDoKPiBodHRwczovL2xpc3Rz Lnhlbi5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwvMjAxNC0xMS9tc2cwMDk0NC5odG1sCj4g Cj4gWzNdCj4gaHR0cDovL2luZm9jZW50ZXIuYXJtLmNvbS9oZWxwL3RvcGljL2NvbS5hcm0uZG9j LmRlbjAwNTZhL0RFTjAwNTZBX1N5c3RlbV9Db250cm9sX2FuZF9NYW5hZ2VtZW50X0ludGVyZmFj ZS5wZGYKPiAKPiBbNF0KPiBodHRwOi8vbGludXgtc3VueGkubmFya2l2ZS5jb20vcVlXSnFqWFUv cGF0Y2gtdjItMC0zLW1haWxib3gtYXJtLWludHJvZHVjZS1zbWMtdHJpZ2dlcmVkLW1haWxib3gK PiAKPiBbNV0KPiBodHRwOi8vaW5mb2NlbnRlci5hcm0uY29tL2hlbHAvdG9waWMvY29tLmFybS5k b2MuZGVuMDAyOGIvQVJNX0RFTjAwMjhCX1NNQ19DYWxsaW5nX0NvbnZlbnRpb24ucGRmCj4gCj4g T2xla3NhbmRyIERteXRyeXNoeW4gKDYpOgo+ICAgY3B1ZnJlcTogbW92ZSBjcHVmcmVxLmggZmls ZSB0byB0aGUgeGVuL2luY2x1ZGUveGVuIGxvY2F0aW9uCj4gICBwbTogbW92ZSBwcm9jZXNzb3Jf cGVyZi5oIGZpbGUgdG8gdGhlIHhlbi9pbmNsdWRlL3hlbiBsb2NhdGlvbgo+ICAgcG1zdGF0OiBt b3ZlIHBtc3RhdC5jIGZpbGUgdG8gdGhlIHhlbi9kcml2ZXJzL3BtL3N0YXQuYyBsb2NhdGlvbgo+ ICAgY3B1ZnJlcTogbWFrZSB0dXJibyBzZXR0aW5ncyB0byBiZSBjb25maWd1cmFibGUKPiAgIHBt c3RhdDogbWFrZSBwbXN0YXQgZnVuY3Rpb25zIG1vcmUgZ2VuZXJhbGl6YWJsZQo+ICAgY3B1ZnJl cTogbWFrZSBjcHVmcmVxIGRyaXZlciBtb3JlIGdlbmVyYWxpemFibGUKPiAKPiBPbGVrc2FuZHIg VHlzaGNoZW5rbyAoMjQpOgo+ICAgeGVucG06IENsYXJpZnkgeGVucG0gdXNhZ2UKPiAgIHhlbi9k ZXZpY2UtdHJlZTogQWRkIGR0X2NvdW50X3BoYW5kbGVfd2l0aF9hcmdzIGhlbHBlcgo+ICAgeGVu L2RldmljZS10cmVlOiBBZGQgZHRfcHJvcGVydHlfZm9yX2VhY2hfc3RyaW5nIG1hY3Jvcwo+ICAg eGVuL2RldmljZS10cmVlOiBBZGQgZHRfcHJvcGVydHlfcmVhZF91MzJfaW5kZXggaGVscGVyCj4g ICB4ZW4vZGV2aWNlLXRyZWU6IEFkZCBkdF9wcm9wZXJ0eV9jb3VudF9lbGVtc19vZl9zaXplIGhl bHBlcgo+ICAgeGVuL2RldmljZS10cmVlOiBBZGQgZHRfcHJvcGVydHlfcmVhZF9zdHJpbmdfaGVs cGVyIGFuZCBmcmllbmRzCj4gICB4ZW4vYXJtOiBBZGQgZHJpdmVyX2RhdGEgZmllbGQgdG8gc3Ry dWN0IGRldmljZQo+ICAgeGVuL2FybTogQWRkIERFVklDRV9NQUlMQk9YIGRldmljZSBjbGFzcwo+ ICAgeGVuL2FybTogU3RvcmUgZGV2aWNlLXRyZWUgbm9kZSBwZXIgY3B1Cj4gICB4ZW4vYXJtOiBB ZGQgQVJNIFN5c3RlbSBDb250cm9sIGFuZCBQb3dlciBJbnRlcmZhY2UgKFNDUEkpIHByb3RvY29s Cj4gICB4ZW4vYXJtOiBBZGQgbWFpbGJveCBpbmZyYXN0cnVjdHVyZQo+ICAgeGVuL2FybTogSW50 cm9kdWNlIEFSTSBTTUMgYmFzZWQgbWFpbGJveAo+ICAgeGVuL2FybTogQWRkIGNvbW1vbiBoZWFk ZXIgZmlsZSB3cmFwcGVycy5oCj4gICB4ZW4vYXJtOiBBZGQgcnhkb25lX2F1dG8gZmxhZyB0byBt Ym94X2NvbnRyb2xsZXIgc3RydWN0dXJlCj4gICB4ZW4vYXJtOiBBZGQgWGVuIGNoYW5nZXMgdG8g U0NQSSBwcm90b2NvbAo+ICAgeGVuL2FybTogQWRkIFhlbiBjaGFuZ2VzIHRvIG1haWxib3ggaW5m cmFzdHJ1Y3R1cmUKPiAgIHhlbi9hcm06IEFkZCBYZW4gY2hhbmdlcyB0byBBUk0gU01DIGJhc2Vk IG1haWxib3gKPiAgIHhlbi9hcm06IFVzZSBub24tYmxvY2tpbmcgbW9kZSBmb3IgU0NQSSBwcm90 b2NvbAo+ICAgeGVuL2FybTogRG9uJ3Qgc2V0IHR4ZG9uZV9wb2xsIGZsYWcgZm9yIEFSTSBTTUMg bWFpbGJveAo+ICAgY3B1ZnJlcTogaGFjazogcGVyZi0+c3RhdGVzIGlzbid0IGEgcmVhbCBndWVz dCBoYW5kbGUgb24gQVJNCj4gICB4ZW4vYXJtOiBJbnRyb2R1Y2UgU0NQSSBiYXNlZCBDUFVGcmVx IGRyaXZlcgo+ICAgeGVuL2FybTogSW50cm9kdWNlIENQVUZyZXEgSW50ZXJmYWNlIGNvbXBvbmVu dAo+ICAgeGVuL2FybTogQnVpbGQgQ1BVRnJlcSBjb21wb25lbnRzCj4gICB4ZW4vYXJtOiBFbmFi bGUgQ1BVRnJlcSBvbiBBUk0KPiAKPiBWb2xvZHlteXIgQmFiY2h1ayAoMSk6Cj4gICBhcm06IGFk ZCBTTUMgd3JhcHBlciB0aGF0IGlzIGNvbXBhdGlibGUgd2l0aCBTTUNDQwo+IAo+ICBNQUlOVEFJ TkVSUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKy0KPiAgdG9vbHMv bWlzYy94ZW5wbS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA2ICstCj4gIHhlbi9h cmNoL2FybS9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCj4gIHhlbi9h cmNoL2FybS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCj4gIHhlbi9h cmNoL2FybS9hcm0zMi9NYWtlZmlsZSAgICAgICAgICAgICAgICAgIHwgICAgMSArCj4gIHhlbi9h cmNoL2FybS9hcm0zMi9zbWMuUyAgICAgICAgICAgICAgICAgICAgIHwgICAzMiArCj4gIHhlbi9h cmNoL2FybS9hcm02NC9NYWtlZmlsZSAgICAgICAgICAgICAgICAgIHwgICAgMSArCj4gIHhlbi9h cmNoL2FybS9hcm02NC9zbWMuUyAgICAgICAgICAgICAgICAgICAgIHwgICAyOSArCj4gIHhlbi9h cmNoL2FybS9jcHVmcmVxL01ha2VmaWxlICAgICAgICAgICAgICAgIHwgICAgNSArCj4gIHhlbi9h cmNoL2FybS9jcHVmcmVxL2FybS1zbWMtbWFpbGJveC5jICAgICAgIHwgIDI0OCArKysrKysKPiAg eGVuL2FyY2gvYXJtL2NwdWZyZXEvYXJtX3NjcGkuYyAgICAgICAgICAgICAgfCAxMTkxICsrKysr KysrKysrKysrKysrKysrKysrKysrCj4gIHhlbi9hcmNoL2FybS9jcHVmcmVxL2NwdWZyZXFfaWYu YyAgICAgICAgICAgIHwgIDUyMiArKysrKysrKysrKwo+ICB4ZW4vYXJjaC9hcm0vY3B1ZnJlcS9t YWlsYm94LmMgICAgICAgICAgICAgICB8ICA1NjIgKysrKysrKysrKysrCj4gIHhlbi9hcmNoL2Fy bS9jcHVmcmVxL21haWxib3guaCAgICAgICAgICAgICAgIHwgICAyOCArCj4gIHhlbi9hcmNoL2Fy bS9jcHVmcmVxL21haWxib3hfY2xpZW50LmggICAgICAgIHwgICA2OSArKwo+ICB4ZW4vYXJjaC9h cm0vY3B1ZnJlcS9tYWlsYm94X2NvbnRyb2xsZXIuaCAgICB8ICAxNjEgKysrKwo+ICB4ZW4vYXJj aC9hcm0vY3B1ZnJlcS9zY3BpX2NwdWZyZXEuYyAgICAgICAgICB8ICAzMjggKysrKysrKwo+ICB4 ZW4vYXJjaC9hcm0vY3B1ZnJlcS9zY3BpX3Byb3RvY29sLmggICAgICAgICB8ICAxMTYgKysrCj4g IHhlbi9hcmNoL2FybS9jcHVmcmVxL3dyYXBwZXJzLmggICAgICAgICAgICAgIHwgIDIzOSArKysr KysKPiAgeGVuL2FyY2gvYXJtL3NtcGJvb3QuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgICA1 ICsKPiAgeGVuL2FyY2gveDg2L0tjb25maWcgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAy ICsKPiAgeGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyAgICAgICAgICAgICAgICAgfCAgICAy ICstCj4gIHhlbi9hcmNoL3g4Ni9hY3BpL2NwdWZyZXEvY3B1ZnJlcS5jICAgICAgICAgIHwgICAg MiArLQo+ICB4ZW4vYXJjaC94ODYvYWNwaS9jcHVmcmVxL3Bvd2Vybm93LmMgICAgICAgICB8ICAg IDIgKy0KPiAgeGVuL2FyY2gveDg2L2FjcGkvcG93ZXIuYyAgICAgICAgICAgICAgICAgICAgfCAg ICAyICstCj4gIHhlbi9hcmNoL3g4Ni9jcHUvbXdhaXQtaWRsZS5jICAgICAgICAgICAgICAgIHwg ICAgMiArLQo+ICB4ZW4vYXJjaC94ODYvcGxhdGZvcm1faHlwZXJjYWxsLmMgICAgICAgICAgICB8 ICAgIDIgKy0KPiAgeGVuL2NvbW1vbi9kZXZpY2VfdHJlZS5jICAgICAgICAgICAgICAgICAgICAg fCAgMTI0ICsrKwo+ICB4ZW4vY29tbW9uL3N5c2N0bC5jICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgIDIgKy0KPiAgeGVuL2RyaXZlcnMvS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAyICsKPiAgeGVuL2RyaXZlcnMvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAxICsKPiAgeGVuL2RyaXZlcnMvYWNwaS9NYWtlZmlsZSAgICAgICAgICAgICAgICAg ICAgfCAgICAxIC0KPiAgeGVuL2RyaXZlcnMvYWNwaS9wbXN0YXQuYyAgICAgICAgICAgICAgICAg ICAgfCAgNTI2IC0tLS0tLS0tLS0tLQo+ICB4ZW4vZHJpdmVycy9jcHVmcmVxL0tjb25maWcgICAg ICAgICAgICAgICAgICB8ICAgIDMgKwo+ICB4ZW4vZHJpdmVycy9jcHVmcmVxL2NwdWZyZXEuYyAg ICAgICAgICAgICAgICB8ICAxMDIgKystCj4gIHhlbi9kcml2ZXJzL2NwdWZyZXEvY3B1ZnJlcV9t aXNjX2dvdmVybm9ycy5jIHwgICAgMiArLQo+ICB4ZW4vZHJpdmVycy9jcHVmcmVxL2NwdWZyZXFf b25kZW1hbmQuYyAgICAgICB8ICAgIDQgKy0KPiAgeGVuL2RyaXZlcnMvY3B1ZnJlcS91dGlsaXR5 LmMgICAgICAgICAgICAgICAgfCAgIDEzICstCj4gIHhlbi9kcml2ZXJzL3BtL0tjb25maWcgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgMyArCj4gIHhlbi9kcml2ZXJzL3BtL01ha2VmaWxlICAg ICAgICAgICAgICAgICAgICAgIHwgICAgMSArCj4gIHhlbi9kcml2ZXJzL3BtL3N0YXQuYyAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDUzOCArKysrKysrKysrKysKPiAgeGVuL2luY2x1ZGUvYWNw aS9jcHVmcmVxL2NwdWZyZXEuaCAgICAgICAgICAgfCAgMjQ1IC0tLS0tLQo+ICB4ZW4vaW5jbHVk ZS9hY3BpL2NwdWZyZXEvcHJvY2Vzc29yX3BlcmYuaCAgICB8ICAgNjMgLS0KPiAgeGVuL2luY2x1 ZGUvYXNtLWFybS9kZXZpY2UuaCAgICAgICAgICAgICAgICAgfCAgICAyICsKPiAgeGVuL2luY2x1 ZGUvYXNtLWFybS9wcm9jZXNzb3IuaCAgICAgICAgICAgICAgfCAgICA0ICsKPiAgeGVuL2luY2x1 ZGUvcHVibGljL3BsYXRmb3JtLmggICAgICAgICAgICAgICAgfCAgICAxICsKPiAgeGVuL2luY2x1 ZGUveGVuL2NwdWZyZXEuaCAgICAgICAgICAgICAgICAgICAgfCAgMjU0ICsrKysrKwo+ICB4ZW4v aW5jbHVkZS94ZW4vZGV2aWNlX3RyZWUuaCAgICAgICAgICAgICAgICB8ICAxNTggKysrKwo+ICB4 ZW4vaW5jbHVkZS94ZW4vcG1zdGF0LmggICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwo+ICB4 ZW4vaW5jbHVkZS94ZW4vcHJvY2Vzc29yX3BlcmYuaCAgICAgICAgICAgICB8ICAgNjkgKysKPiAg NTAgZmlsZXMgY2hhbmdlZCwgNDgyMiBpbnNlcnRpb25zKCspLCA4NjIgZGVsZXRpb25zKC0pCj4g IGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC9hcm0vYXJtMzIvc21jLlMKPiAgY3JlYXRlIG1v ZGUgMTAwNjQ0IHhlbi9hcmNoL2FybS9hcm02NC9zbWMuUwo+ICBjcmVhdGUgbW9kZSAxMDA2NDQg eGVuL2FyY2gvYXJtL2NwdWZyZXEvTWFrZWZpbGUKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9h cmNoL2FybS9jcHVmcmVxL2FybS1zbWMtbWFpbGJveC5jCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB4 ZW4vYXJjaC9hcm0vY3B1ZnJlcS9hcm1fc2NwaS5jCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4v YXJjaC9hcm0vY3B1ZnJlcS9jcHVmcmVxX2lmLmMKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9h cmNoL2FybS9jcHVmcmVxL21haWxib3guYwo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2FyY2gv YXJtL2NwdWZyZXEvbWFpbGJveC5oCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC9hcm0v Y3B1ZnJlcS9tYWlsYm94X2NsaWVudC5oCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB4ZW4vYXJjaC9h cm0vY3B1ZnJlcS9tYWlsYm94X2NvbnRyb2xsZXIuaAo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgeGVu L2FyY2gvYXJtL2NwdWZyZXEvc2NwaV9jcHVmcmVxLmMKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHhl bi9hcmNoL2FybS9jcHVmcmVxL3NjcGlfcHJvdG9jb2wuaAo+ICBjcmVhdGUgbW9kZSAxMDA2NDQg eGVuL2FyY2gvYXJtL2NwdWZyZXEvd3JhcHBlcnMuaAo+ICBkZWxldGUgbW9kZSAxMDA2NDQgeGVu L2RyaXZlcnMvYWNwaS9wbXN0YXQuYwo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2RyaXZlcnMv cG0vS2NvbmZpZwo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgeGVuL2RyaXZlcnMvcG0vTWFrZWZpbGUK PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHhlbi9kcml2ZXJzL3BtL3N0YXQuYwo+ICBkZWxldGUgbW9k ZSAxMDA2NDQgeGVuL2luY2x1ZGUvYWNwaS9jcHVmcmVxL2NwdWZyZXEuaAo+ICBkZWxldGUgbW9k ZSAxMDA2NDQgeGVuL2luY2x1ZGUvYWNwaS9jcHVmcmVxL3Byb2Nlc3Nvcl9wZXJmLmgKPiAgY3Jl YXRlIG1vZGUgMTAwNjQ0IHhlbi9pbmNsdWRlL3hlbi9jcHVmcmVxLmgKPiAgY3JlYXRlIG1vZGUg MTAwNjQ0IHhlbi9pbmNsdWRlL3hlbi9wcm9jZXNzb3JfcGVyZi5oCj4gCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK