From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Andrushchenko Subject: Re: [PATCH 1/1] cameraif: add ABI for para-virtual camera Date: Mon, 10 Sep 2018 10:16:06 +0300 Message-ID: References: <20180731093142.3828-1-andr2000@gmail.com> <20180731093142.3828-2-andr2000@gmail.com> <73b69e31-d36d-d89f-20d6-d59dbefe395e@xs4all.nl> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fzGQg-0003Ni-7a for xen-devel@lists.xenproject.org; Mon, 10 Sep 2018 07:16:14 +0000 Received: by mail-lf1-x12d.google.com with SMTP id v77-v6so16552985lfa.6 for ; Mon, 10 Sep 2018 00:16:09 -0700 (PDT) In-Reply-To: <73b69e31-d36d-d89f-20d6-d59dbefe395e@xs4all.nl> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Hans Verkuil , xen-devel@lists.xenproject.org, konrad.wilk@oracle.com, jgross@suse.com, boris.ostrovsky@oracle.com, mchehab@kernel.org, linux-media@vger.kernel.org, sakari.ailus@linux.intel.com, koji.matsuoka.xm@renesas.com Cc: Oleksandr Andrushchenko List-Id: xen-devel@lists.xenproject.org SGksIEhhbnMhCgpPbiAwOS8wOS8yMDE4IDAxOjMxIFBNLCBIYW5zIFZlcmt1aWwgd3JvdGU6Cj4g SGkgT2xla3NhbmRyLAo+Cj4gU29ycnkgZm9yIHRoZSBkZWxheSBpbiByZXZpZXdpbmcsIEkgbWlz c2VkIHRoaXMgcGF0Y2ggdW50aWwgeW91IHBpbmdlZCBtZSwgYW5kCj4gSSB3YXMgdmVyeSBidXN5 IGFmdGVyIHRoYXQgYXMgd2VsbC4KSSBkbyBhcHByZWNpYXRlIHlvdSBzcGVuZGluZyB0aW1lIG9u IHRoaXMhCj4KPiBPbiAwNy8zMS8yMDE4IDExOjMxIEFNLCBPbGVrc2FuZHIgQW5kcnVzaGNoZW5r byB3cm90ZToKPj4gRnJvbTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRy dXNoY2hlbmtvQGVwYW0uY29tPgo+Pgo+PiBUaGlzIGlzIHRoZSBBQkkgZm9yIHRoZSB0d28gaGFs dmVzIG9mIGEgcGFyYS12aXJ0dWFsaXplZAo+PiBjYW1lcmEgZHJpdmVyIHdoaWNoIGV4dGVuZHMg WGVuJ3MgcmVhY2ggbXVsdGltZWRpYSBjYXBhYmlsaXRpZXMgZXZlbgo+PiBmYXJ0aGVyIGVuYWJs aW5nIGl0IGZvciB2aWRlbyBjb25mZXJlbmNpbmcsIEluLVZlaGljbGUgSW5mb3RhaW5tZW50LAo+ PiBoaWdoIGRlZmluaXRpb24gbWFwcyBldGMuCj4+Cj4+IFRoZSBpbml0aWFsIGdvYWwgaXMgdG8g c3VwcG9ydCBtb3N0IG5lZWRlZCBmdW5jdGlvbmFsaXR5IHdpdGggdGhlCj4+IGZpbmFsIGlkZWEg dG8gbWFrZSBpdCBwb3NzaWJsZSB0byBleHRlbmQgdGhlIHByb3RvY29sIGlmIG5lZWQgYmU6Cj4+ Cj4+IDEuIFByb3ZpZGUgbWVhbnMgZm9yIGJhc2UgdmlydHVhbCBkZXZpY2UgY29uZmlndXJhdGlv bjoKPj4gICAtIHBpeGVsIGZvcm1hdHMKPj4gICAtIHJlc29sdXRpb25zCj4+ICAgLSBmcmFtZSBy YXRlcwo+PiAyLiBTdXBwb3J0IGJhc2ljIGNhbWVyYSBjb250cm9sczoKPj4gICAtIGNvbnRyYXN0 Cj4+ICAgLSBicmlnaHRuZXNzCj4+ICAgLSBodWUKPj4gICAtIHNhdHVyYXRpb24KPj4gMy4gU3Vw cG9ydCBzdHJlYW1pbmcgY29udHJvbAo+PiA0LiBTdXBwb3J0IHplcm8tY29weWluZyB1c2UtY2Fz ZXMKPj4KPj4gU2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5k cl9hbmRydXNoY2hlbmtvQGVwYW0uY29tPgo+PiAtLS0KPj4gICB4ZW4vaW5jbHVkZS9wdWJsaWMv aW8vY2FtZXJhaWYuaCB8IDk4MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+ICAg MSBmaWxlIGNoYW5nZWQsIDk4MSBpbnNlcnRpb25zKCspCj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0 IHhlbi9pbmNsdWRlL3B1YmxpYy9pby9jYW1lcmFpZi5oCj4+Cj4+IGRpZmYgLS1naXQgYS94ZW4v aW5jbHVkZS9wdWJsaWMvaW8vY2FtZXJhaWYuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9pby9jYW1l cmFpZi5oCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+IGluZGV4IDAwMDAwMDAwMDAwMC4uYmRj NmExMjYyZmNmCj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2lv L2NhbWVyYWlmLmgKPj4gQEAgLTAsMCArMSw5ODEgQEAKPj4gKy8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKPj4gKyAqIGNhbWVyYWlmLmgKPj4gKyAqCj4+ICsgKiBVbmlmaWVkIGNhbWVyYSBkZXZpY2Ug SS9PIGludGVyZmFjZSBmb3IgWGVuIGd1ZXN0IE9TZXMuCj4+ICsgKgo+PiArICogUGVybWlzc2lv biBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWlu aW5nIGEgY29weQo+PiArICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVu dGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvCj4+ICsgKiBkZWFsIGluIHRoZSBTb2Z0 d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRo ZQo+PiArICogcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlz dHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yCj4+ICsgKiBzZWxsIGNvcGllcyBvZiB0aGUgU29m dHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwo+PiAr ICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u czoKPj4gKyAqCj4+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJt aXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgo+PiArICogYWxsIGNvcGllcyBvciBz dWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCj4+ICsgKgo+PiArICogVEhFIFNP RlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQs IEVYUFJFU1MgT1IKPj4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8g VEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+PiArICogRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwg VEhFCj4+ICsgKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5Z IENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4g QUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwo+PiArICogRlJP TSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBP UiBPVEhFUgo+PiArICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+PiArICoKPj4gKyAqIENv cHlyaWdodCAoQykgMjAxOCBFUEFNIFN5c3RlbXMgSW5jLgo+PiArICoKPj4gKyAqIEF1dGhvcjog T2xla3NhbmRyIEFuZHJ1c2hjaGVua28gPG9sZWtzYW5kcl9hbmRydXNoY2hlbmtvQGVwYW0uY29t Pgo+PiArICovCj4gVXNlIFNQRFggdGFnIGluc3RlYWQgb2YgY29weWluZyB0aGUgbGljZW5zZSB0 ZXh0LgpUaGlzIGlzIHlldCBhIFhlbiBoZWFkZXIgd2hpY2ggYmVsb25ncyB0byBYZW4gcHJvamVj dCBhbmQKYWxsIHRoZSByZXN0IG9mIHRoZSBwcm90b2NvbHMgaGF2ZSB0aGUgc2FtZSBsaWNlbnNl IGhlYWRlci4KSWYgWGVuIGNvbW11bml0eSBkZWNpZGVzIHRvIHVzZSBTUERYIHRoZW4gSSdsbCBk ZWZpbml0ZWx5IGZvbGxvdy4KCktvbnJhZCwgZG8geW91IHRoaW5rIHRoaXMgaXMgdGhlIHJpZ2h0 IHRpbWUgZm9yIHN1Y2ggYSBtb3ZlPwo+Cj4+ICsKPj4gKyNpZm5kZWYgX19YRU5fUFVCTElDX0lP X0NBTUVSQUlGX0hfXwo+PiArI2RlZmluZSBfX1hFTl9QVUJMSUNfSU9fQ0FNRVJBSUZfSF9fCj4+ ICsKPj4gKyNpbmNsdWRlICJyaW5nLmgiCj4+ICsjaW5jbHVkZSAiLi4vZ3JhbnRfdGFibGUuaCIK Pj4gKwo+PiArLyoKPj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPj4gKyAqICAgICAgICAgICAg ICAgICAgICAgICAgICAgUHJvdG9jb2wgdmVyc2lvbgo+PiArICoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Kgo+PiArICovCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9QUk9UT0NPTF9WRVJTSU9OICAgICAiMSIK Pj4gKwo+PiArLyoKPj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPj4gKyAqICAgICAgICAgICAg ICAgICAgRmVhdHVyZSBhbmQgUGFyYW1ldGVyIE5lZ290aWF0aW9uCj4+ICsgKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCj4+ICsgKgo+PiArICogRnJvbnQtPmJhY2sgbm90aWZpY2F0aW9uczogd2hlbiBl bnF1ZXVpbmcgYSBuZXcgcmVxdWVzdCwgc2VuZGluZyBhCj4+ICsgKiBub3RpZmljYXRpb24gY2Fu IGJlIG1hZGUgY29uZGl0aW9uYWwgb24geGVuY2FtZXJhX3JlcSAoaS5lLiwgdGhlIGdlbmVyaWMK Pj4gKyAqIGhvbGQtb2ZmIG1lY2hhbmlzbSBwcm92aWRlZCBieSB0aGUgcmluZyBtYWNyb3MpLiBC YWNrZW5kcyBtdXN0IHNldAo+PiArICogeGVuY2FtZXJhX3JlcSBhcHByb3ByaWF0ZWx5IChlLmcu LCB1c2luZyBSSU5HX0ZJTkFMX0NIRUNLX0ZPUl9SRVFVRVNUUygpKS4KPj4gKyAqCj4+ICsgKiBC YWNrLT5mcm9udCBub3RpZmljYXRpb25zOiB3aGVuIGVucXVldWluZyBhIG5ldyByZXNwb25zZSwg c2VuZGluZyBhCj4+ICsgKiBub3RpZmljYXRpb24gY2FuIGJlIG1hZGUgY29uZGl0aW9uYWwgb24g eGVuY2FtZXJhX3Jlc3AgKGkuZS4sIHRoZSBnZW5lcmljCj4+ICsgKiBob2xkLW9mZiBtZWNoYW5p c20gcHJvdmlkZWQgYnkgdGhlIHJpbmcgbWFjcm9zKS4gRnJvbnRlbmRzIG11c3Qgc2V0Cj4+ICsg KiB4ZW5jYW1lcmFfcmVzcCBhcHByb3ByaWF0ZWx5IChlLmcuLCB1c2luZyBSSU5HX0ZJTkFMX0NI RUNLX0ZPUl9SRVNQT05TRVMoKSkuCj4+ICsgKgo+PiArICogVGhlIHR3byBoYWx2ZXMgb2YgYSBw YXJhLXZpcnR1YWwgY2FtZXJhIGRyaXZlciB1dGlsaXplIG5vZGVzIHdpdGhpbgo+PiArICogWGVu U3RvcmUgdG8gY29tbXVuaWNhdGUgY2FwYWJpbGl0aWVzIGFuZCB0byBuZWdvdGlhdGUgb3BlcmF0 aW5nIHBhcmFtZXRlcnMuCj4+ICsgKiBUaGlzIHNlY3Rpb24gZW51bWVyYXRlcyB0aGVzZSBub2Rl cyB3aGljaCByZXNpZGUgaW4gdGhlIHJlc3BlY3RpdmUgZnJvbnQgYW5kCj4+ICsgKiBiYWNrZW5k IHBvcnRpb25zIG9mIFhlblN0b3JlLCBmb2xsb3dpbmcgdGhlIFhlbkJ1cyBjb252ZW50aW9uLgo+ PiArICoKPj4gKyAqIEFsbCBkYXRhIGluIFhlblN0b3JlIGlzIHN0b3JlZCBhcyBzdHJpbmdzLiBO b2RlcyBzcGVjaWZ5aW5nIG51bWVyaWMKPj4gKyAqIHZhbHVlcyBhcmUgZW5jb2RlZCBpbiBkZWNp bWFsLiBJbnRlZ2VyIHZhbHVlIHJhbmdlcyBsaXN0ZWQgYmVsb3cgYXJlCj4+ICsgKiBleHByZXNz ZWQgYXMgZml4ZWQgc2l6ZWQgaW50ZWdlciB0eXBlcyBjYXBhYmxlIG9mIHN0b3JpbmcgdGhlIGNv bnZlcnNpb24KPj4gKyAqIG9mIGEgcHJvcGVybHkgZm9ybWF0dGVkIG5vZGUgc3RyaW5nLCB3aXRo b3V0IGxvc3Mgb2YgaW5mb3JtYXRpb24uCj4+ICsgKgo+PiArICoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Kgo+PiArICogICAgICAgICAgICAgICAgICAgICAgICBFeGFtcGxlIGNvbmZpZ3VyYXRpb24KPj4g KyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKPj4gKyAqCj4+ICsgKiBUaGlzIGlzIGFuIGV4YW1wbGUg b2YgYmFja2VuZCBhbmQgZnJvbnRlbmQgY29uZmlndXJhdGlvbjoKPj4gKyAqCj4+ICsgKi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBCYWNrZW5kIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCj4+ICsgKgo+PiArICogL2xvY2FsL2RvbWFpbi8wL2JhY2tlbmQvdmNh bWVyYS8xLzAvZnJvbnRlbmQtaWQgPSAiMSIKPj4gKyAqIC9sb2NhbC9kb21haW4vMC9iYWNrZW5k L3ZjYW1lcmEvMS8wL2Zyb250ZW5kID0gIi9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmNhbWVyYS8w Igo+PiArICogL2xvY2FsL2RvbWFpbi8wL2JhY2tlbmQvdmNhbWVyYS8xLzAvc3RhdGUgPSAiNCIK Pj4gKyAqIC9sb2NhbC9kb21haW4vMC9iYWNrZW5kL3ZjYW1lcmEvMS8wL3ZlcnNpb25zID0gIjEs MiIKPiBXaHkgdmNhbWVyYSBpbnN0ZWFkIG9mIGp1c3QgY2FtZXJhPyBJZiAndicgc3RhbmRzIGZv ciAndmlkZW8nLCB0aGVuIHRoYXQgc2VlbXMKPiBzdXBlcmZsdW91cyB0byBtZS4KJ3YnIHN0YW5k cyBmb3IgJ3ZpcnR1YWwnLiBJIGFtIGZvbGxvd2luZyBYZW4gY29udmVudGlvbiB1c2VkCmZvciBh bGwgb3RoZXIgdmlydHVhbCBkZXZpY2UgcHJvdG9jb2xzIGhlcmUuCj4+ICsgKgo+PiArICotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRnJvbnRlbmQgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQo+PiArICoKPj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmNh bWVyYS8wL2JhY2tlbmQtaWQgPSAiMCIKPj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmNh bWVyYS8wL2JhY2tlbmQgPSAiL2xvY2FsL2RvbWFpbi8wL2JhY2tlbmQvdmNhbWVyYS8xIgo+PiAr ICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92Y2FtZXJhLzAvc3RhdGUgPSAiNCIKPj4gKyAqIC9s b2NhbC9kb21haW4vMS9kZXZpY2UvdmNhbWVyYS8wL3ZlcnNpb24gPSAiMSIKPj4gKyAqIC9sb2Nh bC9kb21haW4vMS9kZXZpY2UvdmNhbWVyYS8wL2JlLWFsbG9jID0gIjEiCj4+ICsgKgo+PiArICot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIERldmljZSAwIGNvbmZpZ3VyYXRpb24gLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQo+PiArICoKPj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2Uv dmNhbWVyYS8wL2NvbnRyb2xzID0gImNvbnRyYXN0LGh1ZSIKPj4gKyAqIC9sb2NhbC9kb21haW4v MS9kZXZpY2UvdmNhbWVyYS8wL2Zvcm1hdHMvWVVZVi82NDB4NDgwID0gIjMwLzEsMTUvMSwxNS8y Igo+PiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92Y2FtZXJhLzAvZm9ybWF0cy9ZVVlWLzE5 MjB4MTA4MCA9ICIxNS8yIgo+PiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92Y2FtZXJhLzAv Zm9ybWF0cy9CR1JBLzY0MHg0ODAgPSAiMTUvMSwxNS8yIgo+PiArICogL2xvY2FsL2RvbWFpbi8x L2RldmljZS92Y2FtZXJhLzAvZm9ybWF0cy9CR1JBLzEyMDB4NzIwID0gIjE1LzIiCj4+ICsgKiAv bG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZjYW1lcmEvMC91bmlxdWUtaWQgPSAiMCIKPj4gKyAqIC9s b2NhbC9kb21haW4vMS9kZXZpY2UvdmNhbWVyYS8wL3JlcS1yaW5nLXJlZiA9ICIyODMyIgo+PiAr ICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92Y2FtZXJhLzAvcmVxLWV2ZW50LWNoYW5uZWwgPSAi MTUiCj4+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZjYW1lcmEvMC9ldnQtcmluZy1yZWYg PSAiMzg3Igo+PiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92Y2FtZXJhLzAvZXZ0LWV2ZW50 LWNoYW5uZWwgPSAiMTYiCj4+ICsgKgo+PiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t IERldmljZSAxIGNvbmZpZ3VyYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiArICoK Pj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmNhbWVyYS8xL2NvbnRyb2xzID0gImJyaWdo dG5lc3Msc2F0dXJhdGlvbixodWUiCj4+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZjYW1l cmEvMS9mb3JtYXRzL1lVWVYvNjQweDQ4MCA9ICIzMC8xLDE1LzEsMTUvMiIKPj4gKyAqIC9sb2Nh bC9kb21haW4vMS9kZXZpY2UvdmNhbWVyYS8xL2Zvcm1hdHMvWVVZVi8xOTIweDEwODAgPSAiMTUv MiIKPj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmNhbWVyYS8xL3VuaXF1ZS1pZCA9ICIx Igo+PiArICogL2xvY2FsL2RvbWFpbi8xL2RldmljZS92Y2FtZXJhLzEvcmVxLXJpbmctcmVmID0g IjI4MzMiCj4+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZjYW1lcmEvMS9yZXEtZXZlbnQt Y2hhbm5lbCA9ICIxNyIKPj4gKyAqIC9sb2NhbC9kb21haW4vMS9kZXZpY2UvdmNhbWVyYS8xL2V2 dC1yaW5nLXJlZiA9ICIzODgiCj4+ICsgKiAvbG9jYWwvZG9tYWluLzEvZGV2aWNlL3ZjYW1lcmEv MS9ldnQtZXZlbnQtY2hhbm5lbCA9ICIxOCIKPj4gKyAqCj4+ICsgKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYWNrZW5kIFhlbkJ1cyBOb2Rl cwo+PiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+PiArICoKPj4gKyAqLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0gUHJvdG9jb2wgdmVyc2lvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KPj4gKyAqCj4+ICsgKiB2ZXJzaW9ucwo+PiArICogICAgICBWYWx1ZXM6ICAgICAgICAg PHN0cmluZz4KPj4gKyAqCj4+ICsgKiAgICAgIExpc3Qgb2YgWEVOQ0FNRVJBX0xJU1RfU0VQQVJB VE9SIHNlcGFyYXRlZCBwcm90b2NvbCB2ZXJzaW9ucyBzdXBwb3J0ZWQKPj4gKyAqICAgICAgYnkg dGhlIGJhY2tlbmQuIEZvciBleGFtcGxlICIxLDIsMyIuCj4+ICsgKgo+PiArICoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgo+PiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJvbnRlbmQgWGVu QnVzIE5vZGVzCj4+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4+ICsgKgo+PiArICotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBBZGRyZXNzaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQo+PiArICoKPj4gKyAqIGRvbS1pZAo+PiArICogICAgICBWYWx1ZXM6ICAg ICAgICAgPHVpbnQxNl90Pgo+PiArICoKPj4gKyAqICAgICAgRG9tYWluIGlkZW50aWZpZXIuCj4+ ICsgKgo+PiArICogZGV2LWlkCj4+ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludDE2X3Q+ Cj4+ICsgKgo+PiArICogICAgICBEZXZpY2UgaWRlbnRpZmllci4KPj4gKyAqCj4+ICsgKiAgICAg IC9sb2NhbC9kb21haW4vPGRvbS1pZD4vZGV2aWNlL3ZjYW1lcmEvPGRldi1pZD4vLi4uCj4+ICsg Kgo+PiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBQcm90b2NvbCB2ZXJzaW9uIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiArICoKPj4gKyAqIHZlcnNpb24KPj4gKyAq ICAgICAgVmFsdWVzOiAgICAgICAgIDxzdHJpbmc+Cj4+ICsgKgo+PiArICogICAgICBQcm90b2Nv bCB2ZXJzaW9uLCBjaG9zZW4gYW1vbmcgdGhlIG9uZXMgc3VwcG9ydGVkIGJ5IHRoZSBiYWNrZW5k Lgo+PiArICoKPj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBCYWNrZW5kIGJ1ZmZlciBh bGxvY2F0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gKyAqCj4+ICsgKiBiZS1hbGxv Ywo+IEkgdGhvdWdodCB0aGF0ICdiZScgcmVmZXJyZWQgdG8gJ2JpZy1lbmRpYW4nLCBidXQgYXBw YXJlbnRseSBub3QuIFBlcmhhcHMgaXQKPiBpcyBiZXR0ZXIgdG8ganVzdCB3cml0ZSAnYmFja2Vu ZC1hbGxvYycuCldlbGwsICdiZScgYW5kICdmZScgYXJlIGNvbW1vbmx5IHVzZWQgaW4gWGVuIGZv ciBiYWNrZW5kCmFuZCBmcm9udGVuZCwgc28gSSdsbCBwcm9iYWJseSBzdGljayB0byB0aGF0IGNv bnZlbnRpb24gZm9yIG5vdy4KPgo+PiArICogICAgICBWYWx1ZXM6ICAgICAgICAgIjAiLCAiMSIK Pj4gKyAqCj4+ICsgKiAgICAgIElmIHZhbHVlIGlzIHNldCB0byAiMSIsIHRoZW4gYmFja2VuZCB3 aWxsIGJlIHRoZSBidWZmZXIKPj4gKyAqICAgICAgcHJvdmlkZXIvYWxsb2NhdG9yIGZvciB0aGlz IGRvbWFpbiBkdXJpbmcgWEVOQ0FNRVJBX09QX0JVRl9DUkVBVEUKPj4gKyAqICAgICAgb3BlcmF0 aW9uLgo+PiArICogICAgICBJZiB2YWx1ZSBpcyBub3QgIjEiIG9yIG9taXR0ZWQgZnJvbnRlbmQg bXVzdCBhbGxvY2F0ZSBidWZmZXJzIGl0c2VsZi4KPj4gKyAqCj4+ICsgKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0gQ2FtZXJhIHNldHRpbmdzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCj4+ICsgKgo+PiArICogdW5pcXVlLWlkCj4+ICsgKiAgICAgIFZhbHVlczogICAgICAg ICA8c3RyaW5nPgo+PiArICoKPj4gKyAqICAgICAgQWZ0ZXIgZGV2aWNlIGluc3RhbmNlIGluaXRp YWxpemF0aW9uIGVhY2ggY2FtZXJhIGlzIGFzc2lnbmVkIGEKPj4gKyAqICAgICAgdW5pcXVlIElE LCBzbyBpdCBjYW4gYmUgaWRlbnRpZmllZCBieSB0aGUgYmFja2VuZCBieSB0aGlzIElELgo+PiAr ICogICAgICBUaGlzIGNhbiBiZSBVVUlEIG9yIHN1Y2guCj4+ICsgKgo+PiArICogY29udHJvbHMK Pj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDxsaXN0IG9mIHN0cmluZz4KPj4gKyAqCj4+ICsg KiAgICAgIExpc3Qgb2Ygc3VwcG9ydGVkIGNhbWVyYSBjb250cm9scyBzZXBhcmF0ZWQgYnkgWEVO Q0FNRVJBX0xJU1RfU0VQQVJBVE9SLgo+PiArICogICAgICBDYW1lcmEgY29udHJvbHMgYXJlIGV4 cHJlc3NlZCBhcyBhIGxpc3Qgb2Ygc3RyaW5nIHZhbHVlcyB3L28gYW55Cj4+ICsgKiAgICAgIG9y ZGVyaW5nIHJlcXVpcmVtZW50Lgo+PiArICoKPj4gKyAqIGZvcm1hdHMKPj4gKyAqICAgICAgVmFs dWVzOiAgICAgICAgIDxmb3JtYXQsIGNoYXJbNF0+Cj4+ICsgKgo+PiArICogICAgICBGb3JtYXRz IGFyZSBvcmdhbml6ZWQgYXMgYSBzZXQgb2YgZGlyZWN0b3JpZXMgb25lIHBlciBlYWNoCj4+ICsg KiAgICAgIHN1cHBvcnRlZCBwaXhlbCBmb3JtYXQuIFRoZSBuYW1lIG9mIHRoZSBkaXJlY3Rvcnkg aXMgYW4gdXBwZXIgY2FzZQo+PiArICogICAgICBzdHJpbmcgb2YgdGhlIGNvcnJlc3BvbmRpbmcg Rk9VUkNDIHN0cmluZyBsYWJlbC4gVGhlIG5leHQgbGV2ZWwgb2YKPj4gKyAqICAgICAgdGhlIGRp cmVjdG9yeSB1bmRlciA8Zm9ybWF0cz4gcmVwcmVzZW50cyBzdXBwb3J0ZWQgcmVzb2x1dGlvbnMu Cj4gTG93ZXItY2FzZSBjaGFyYWN0ZXJzIGFyZSBhbHNvIHVzZSBpbiBwaXhlbGZvcm1hdHMsIHNv IEknZCBqdXN0IGtlZXAgdGhpcyBhcy1pcy4KT2ssIG5vIHByb2JsZW0gLSB3aWxsIHJlbW92ZSB0 aGUgJ3VwcGVyIGNhc2UnIGZyb20gdGhlIGRlZmluaXRpb24KPgo+IEluIGFkZGl0aW9uIGl0IGlz IGNvbW1vbiB0byBzZXQgYml0IDMxIG9mIHRoZSBmb3VyY2MgdG8gMSBpZiB0aGUgZm9ybWF0IGlz Cj4gYmlnLWVuZGlhbiAoc2VlIHY0bDJfZm91cmNjX2JlIG1hY3JvKS4gV2hlbiB2NGwgdXRpbGl0 aWVzIHByaW50IHRoaXMgZm9ybWF0IHdlCj4gYWRkIGEgLUJFIHN1ZmZpeCwgc28gVjRMMl9QSVhf Rk1UX0FSR0I1NTVYIGJlY29tZXMgIkFSMTUtQkUiLiBZb3UgbWlnaHQgd2FudCB0bwo+IGtlZXAg dGhhdCBjb252ZW50aW9uLgpJJ2xsIHRoaW5rIGFib3V0IGl0LCB0aGFuayB5b3UKPgo+PiArICoK Pj4gKyAqIHJlc29sdXRpb24KPj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx3aWR0aCwgdWlu dDMyX3Q+eDxoZWlnaHQsIHVpbnQzMl90Pgo+PiArICoKPj4gKyAqICAgICAgUmVzb2x1dGlvbnMg YXJlIG9yZ2FuaXplZCBhcyBhIHNldCBvZiBkaXJlY3RvcmllcyBvbmUgcGVyIGVhY2gKPj4gKyAq ICAgICAgc3VwcG9ydGVkIHJlc29sdXRpb24gdW5kZXIgY29ycmVzcG9uZGluZyA8Zm9ybWF0cz4g ZGlyZWN0b3J5Lgo+PiArICogICAgICBUaGUgbmFtZSBvZiB0aGUgZGlyZWN0b3J5IGlzIHRoZSBz dXBwb3J0ZWQgd2lkdGggYW5kIGhlaWdodAo+PiArICogICAgICBvZiB0aGUgY2FtZXJhIHJlc29s dXRpb24gaW4gcGl4ZWxzLgo+IFdoYXQgaWYgeW91IGFyZSBkZWFsaW5nIHdpdGggYW4gSERNSSBp bnB1dD8gTm90IHVucmVhc29uYWJsZSBmb3IgbWVkaWEKPiBzeXN0ZW1zLiBUaGVyZSBjYW4gYmUg YSBsb3Qgb2YgcmVzb2x1dGlvbnMvZnJhbWVyYXRlcywgYW5kIHRoZSByZXNvbHV0aW9uCj4gY2Fu IGNoYW5nZSBvbiB0aGUgZmx5LCBvciBvZiBjb3Vyc2UgZGlzYXBwZWFyLgpXZWxsLCB0aGlzIGlz IGEgcGFydCBvZiB0aGUgc3lzdGVtIGNvbmZpZ3VyYXRpb24gZG9uZQpiZWZvcmUgd2UgYWN0dWFs bHkgcnVuIHRoZSBWTXMsIGUuZy4gYXQgc3lzdGVtIGRlc2lnbgphbmQgY29uZmlndXJhdGlvbiB0 aW1lLiBNb3N0IG9mIHRoZSB0aW1lIHlvdSBkbyBrbm93IHdoaWNoCnJlc29sdXRpb25zLCBmcmFt ZSByYXRlcyBldGMuIHlvdSB3YW50IHRvIGFzc2lnbiBhbmQgdGhlc2UKc2V0dGluZ3MgcmVtYWlu IHN0YXRpYyBmb3IgdGhlIHdob2xlIGxpZmV0aW1lIG9mIHRoYXQgVk0uCklmIHlvdSBhcmUgZGVz aWduaW5nIGEgc3lzdGVtIHdoaWNoIG5lZWRzIHRoZXNlIHJlc29sdXRpb25zCnRvIGNoYW5nZSBh dCBydW4tdGltZSB0aGVuIHRoaXMgY2FuIGJlIGRvbmU6CjEuIEJhY2tlbmQgY2hhbmdlcyB0aGUg c3RhdGUgb2YgdGhlIGZyb250ZW5kIHRvIFhlbmJ1c1N0YXRlQ2xvc2VkIHN0YXRlCjIuIFhlbiAo eGwvbGlieGwpIG9yIGJhY2tlbmQgY2hhbmdlIHRoZSBjb25maWd1cmF0aW9uIGluIFhlblN0b3Jl CjMuIEJhY2tlbmQgcmUtaW5pdGlhbGl6ZXMgdGhlIGZyb250ZW5kIHdoaWNoIHJlYWRzIG5ldyBj b25maWd1cmF0aW9uCj4KPiBXaGF0IGlzIGFsc28gbWlzc2luZyBoZXJlIGlzIGEgd2F5IHRvIHJl cG9ydCBwaXhlbCBhc3BlY3QgcmF0aW86IFBBTCBhbmQKPiBOVFNDLWJhc2VkIHZpZGVvIG1hdGVy aWFsIGRvZXNuJ3QgaGF2ZSBzcXVhcmUgcGl4ZWxzLgpIbSwgaW5kZWVkLCB0aGFuayB5b3UuIEkn bGwgcHV0IHRoaXMgYXMgYSBmcmFjdGlvbiB1bmRlcgp0aGUgY29ycmVzcG9uZGluZyAncmVzb2x1 dGlvbic6CgpOb3c6Ci9sb2NhbC9kb21haW4vMi9kZXZpY2UvdmNhbWVyYS8wL2Zvcm1hdHMvWVVZ Vi82NDB4NDgwID0gIjMwLzEsMTUvMSwxNS8yIgovbG9jYWwvZG9tYWluLzIvZGV2aWNlL3ZjYW1l cmEvMC9mb3JtYXRzL1lVWVYvMTI4MHgxMDI0ID0gIjAxNS8yIgoKV2lsbCBjaGFuZ2UgdG86Ci9s b2NhbC9kb21haW4vMi9kZXZpY2UvdmNhbWVyYS8wL2Zvcm1hdHMvWVVZVi82NDB4NDgwL2ZyYW1l cmF0ZXMvID0gCiIzMC8xLDE1LzEsMTUvMiIKL2xvY2FsL2RvbWFpbi8yL2RldmljZS92Y2FtZXJh LzAvZm9ybWF0cy9ZVVlWLzY0MHg0ODAvYXNwZWN0cmF0aW8gPSAiMS8xIgoKL2xvY2FsL2RvbWFp bi8yL2RldmljZS92Y2FtZXJhLzAvZm9ybWF0cy9ZVVlWLzEyODB4MTAyNC9mcmFtZXJhdGVzID0g IjAxNS8yIgovbG9jYWwvZG9tYWluLzIvZGV2aWNlL3ZjYW1lcmEvMC9mb3JtYXRzL1lVWVYvMTI4 MHgxMDI0L2FzcGVjdHJhdGlvID0gCiI1OS81OCIKCj4KPiBJdCdzIGltcG9ydGFudCB0byBkZWNp ZGUgd2hldGhlciBvciBub3QgeW91IHdhbnQgdG8gc3VwcG9ydCB2aWRlbyBzb3VyY2VzCj4gbGlr ZSB0aGF0IChIRE1JLCBDb21wb3NpdGUvUy1WaWRlbyBpbnB1dHMsIFVTQiBwb3J0cyB3aGVyZSB1 c2VycyBjYW4gY29ubmVjdAo+IG9yIGRpc2Nvbm5lY3Qgd2ViY2Ftcykgb3IgaWYgeW91IHN0aWNr IHRvIGZpeGVkIGNhbWVyYSBwaXBlbGluZXMuCkkgYmVsaWV2ZSB0aGF0IHRoaXMgaXMgYWxsIGhp ZGRlbiBmcm9tIHRoZSBmcm9udGVuZCBieSB0aGUKYmFja2VuZCwgc28gSSBzZSBub3RoaW5nIHdl IGhhdmUgdG8gcHV0IGluIHRoZSBwcm90b2NvbAp3aXRoIHRoaXMgcmVzcGVjdC4KPgo+IFRoZSBi aWcgZGlmZmVyZW5jZSBpcyB0aGF0IHlvdSBkb24ndCBjb250cm9sIHdoYXQgc29tZW9uZSBjYW4g Y29ubmVjdCBhcwo+IGV4dGVybmFsIHNvdXJjZXMsIHNvIHlvdSB3aWxsIGhhdmUgdG8gYmUgYSBs b3QgbW9yZSBjYXJlZnVsIGFuZCByb2J1c3QuCj4KPiBJIHN1c3BlY3QgdGhhdCB5b3UgbGlrZWx5 IHdpbGwgd2FudCB0byBzdXBwb3J0IHN1Y2ggc291cmNlcyBldmVudHVhbGx5LCBzbwo+IGl0IHBh eXMgdG8gZGVzaWduIHRoaXMgd2l0aCB0aGF0IGluIG1pbmQuCkFnYWluLCBJIHRoaW5rIHRoYXQg dGhpcyBpcyB0aGUgYmFja2VuZCB0byBoaWRlIHRoZXNlCnVzZS1jYXNlcyBmcm9tIHRoZSBmcm9u dGVuZC4KPgo+PiArICoKPj4gKyAqIGZyYW1lLXJhdGVzCj4+ICsgKiAgICAgIFZhbHVlczogICAg ICAgICA8bnVtZXJhdG9yLCB1aW50MzJfdD4vPGRlbm9taW5hdG9yLCB1aW50MzJfdD4KPj4gKyAq Cj4+ICsgKiAgICAgIExpc3Qgb2YgWEVOQ0FNRVJBX0ZSQU1FX1JBVEVfU0VQQVJBVE9SIHNlcGFy YXRlZCBzdXBwb3J0ZWQgZnJhbWUgcmF0ZXMKPj4gKyAqICAgICAgb2YgdGhlIGNhbWVyYSBleHBy ZXNzZWQgYXMgbnVtZXJhdG9yIGFuZCBkZW5vbWluYXRvciBvZiB0aGUKPj4gKyAqICAgICAgY29y cmVzcG9uZGluZyBmcmFtZSByYXRlLgo+PiArICoKPj4gKyAqIFRoZSBmb3JtYXQgb2YgdGhlIDxm b3JtYXRzPiBkaXJlY3RvcnkgdHJlZSB3aXRoIHJlc29sdXRpb25zIGFuZCBmcmFtZSByYXRlcwo+ PiArICogbXVzdCBiZSBzdHJ1Y3R1cmVkIGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0Ogo+PiArICoK Pj4gKyAqIC4uLi92Y2FtZXJhLzxkZXYtaWQ+Lzxmb3JtYXRbaV0+LzxyZXNvbHV0aW9uW2pdPi88 ZnJhbWUtcmF0ZXNba10+Cj4+ICsgKgo+PiArICogd2hlcmUKPj4gKyAqICBpIC0gaS10aCBzdXBw b3J0ZWQgcGl4ZWwgZm9ybWF0Cj4+ICsgKiAgaiAtIGotdGggc3VwcG9ydGVkIHJlc29sdXRpb24g Zm9yIGktdGggcGl4ZWwgZm9ybWF0Cj4+ICsgKiAgayAtIGstdGggc3VwcG9ydGVkIGZyYW1lIHJh dGUgZm9yIGktdGggcGl4ZWwgZm9ybWF0IGFuZCBqLXRoCj4+ICsgKiAgICAgIHJlc29sdXRpb24+ ICsgKgo+PiArICotLS0tLS0tLS0tLS0tLS0tLS0tIENhbWVyYSBSZXF1ZXN0IFRyYW5zcG9ydCBQ YXJhbWV0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiArICoKPj4gKyAqIFRoaXMgY29tbXVu aWNhdGlvbiBwYXRoIGlzIHVzZWQgdG8gZGVsaXZlciByZXF1ZXN0cyBmcm9tIGZyb250ZW5kIHRv IGJhY2tlbmQKPj4gKyAqIGFuZCBnZXQgdGhlIGNvcnJlc3BvbmRpbmcgcmVzcG9uc2VzIGZyb20g YmFja2VuZCB0byBmcm9udGVuZCwKPj4gKyAqIHNldCB1cCBwZXIgdmlydHVhbCBjYW1lcmEgZGV2 aWNlLgo+PiArICoKPj4gKyAqIHJlcS1ldmVudC1jaGFubmVsCj4+ICsgKiAgICAgIFZhbHVlczog ICAgICAgICA8dWludDMyX3Q+Cj4+ICsgKgo+PiArICogICAgICBUaGUgaWRlbnRpZmllciBvZiB0 aGUgWGVuIGNhbWVyYSdzIGNvbnRyb2wgZXZlbnQgY2hhbm5lbAo+PiArICogICAgICB1c2VkIHRv IHNpZ25hbCBhY3Rpdml0eSBpbiB0aGUgcmluZyBidWZmZXIuCj4+ICsgKgo+PiArICogcmVxLXJp bmctcmVmCj4+ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludDMyX3Q+Cj4+ICsgKgo+PiAr ICogICAgICBUaGUgWGVuIGdyYW50IHJlZmVyZW5jZSBncmFudGluZyBwZXJtaXNzaW9uIGZvciB0 aGUgYmFja2VuZCB0byBtYXAKPj4gKyAqICAgICAgYSBzb2xlIHBhZ2Ugb2YgY2FtZXJhJ3MgY29u dHJvbCByaW5nIGJ1ZmZlci4KPj4gKyAqCj4+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tIENhbWVy YSBFdmVudCBUcmFuc3BvcnQgUGFyYW1ldGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ICsg Kgo+PiArICogVGhpcyBjb21tdW5pY2F0aW9uIHBhdGggaXMgdXNlZCB0byBkZWxpdmVyIGFzeW5j aHJvbm91cyBldmVudHMgZnJvbSBiYWNrZW5kCj4+ICsgKiB0byBmcm9udGVuZCwgc2V0IHVwIHBl ciB2aXJ0dWFsIGNhbWVyYSBkZXZpY2UuCj4+ICsgKgo+PiArICogZXZ0LWV2ZW50LWNoYW5uZWwK Pj4gKyAqICAgICAgVmFsdWVzOiAgICAgICAgIDx1aW50MzJfdD4KPj4gKyAqCj4+ICsgKiAgICAg IFRoZSBpZGVudGlmaWVyIG9mIHRoZSBYZW4gY2FtZXJhJ3MgZXZlbnQgY2hhbm5lbAo+PiArICog ICAgICB1c2VkIHRvIHNpZ25hbCBhY3Rpdml0eSBpbiB0aGUgcmluZyBidWZmZXIuCj4+ICsgKgo+ PiArICogZXZ0LXJpbmctcmVmCj4+ICsgKiAgICAgIFZhbHVlczogICAgICAgICA8dWludDMyX3Q+ Cj4+ICsgKgo+PiArICogICAgICBUaGUgWGVuIGdyYW50IHJlZmVyZW5jZSBncmFudGluZyBwZXJt aXNzaW9uIGZvciB0aGUgYmFja2VuZCB0byBtYXAKPj4gKyAqICAgICAgYSBzb2xlIHBhZ2Ugb2Yg Y2FtZXJhJ3MgZXZlbnQgcmluZyBidWZmZXIuCj4+ICsgKi8KPj4gKwo+PiArLyoKPj4gKyAqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNU QVRFIERJQUdSQU1TCj4+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4+ICsgKgo+PiArICogVG9v bCBzdGFjayBjcmVhdGVzIGZyb250IGFuZCBiYWNrIHN0YXRlIG5vZGVzIHdpdGggaW5pdGlhbCBz dGF0ZQo+PiArICogWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcuCj4+ICsgKiBUb29sIHN0YWNrIGNy ZWF0ZXMgYW5kIHNldHMgdXAgZnJvbnRlbmQgY2FtZXJhIGNvbmZpZ3VyYXRpb24KPj4gKyAqIG5v ZGVzIHBlciBkb21haW4uCj4+ICsgKgo+PiArICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSBOb3JtYWwgZmxvdyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiArICoK Pj4gKyAqIEZyb250ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYWNrCj4+ICsgKiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gICAgPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQo+PiArICogWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcgICAgICAgICAg ICAgIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nCj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG8gUXVlcnkgYmFja2VuZCBkZXZpY2UgaWRlbnRpZmljYXRpb24KPj4g KyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLgo+PiArICog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvIE9wZW4gYW5kIHZhbGlkYXRl IGJhY2tlbmQgZGV2aWNlLgo+PiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8Cj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwKPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVgo+PiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFhlbmJ1c1N0YXRlSW5pdFdhaXQKPj4gKyAqCj4+ICsgKiBvIFF1ZXJ5IGZyb250ZW5kIGNvbmZp Z3VyYXRpb24KPj4gKyAqIG8gQWxsb2NhdGUgYW5kIGluaXRpYWxpemUKPj4gKyAqICAgZXZlbnQg Y2hhbm5lbHMgcGVyIGNvbmZpZ3VyZWQKPj4gKyAqICAgY2FtZXJhLgo+PiArICogbyBQdWJsaXNo IHRyYW5zcG9ydCBwYXJhbWV0ZXJzCj4+ICsgKiAgIHRoYXQgd2lsbCBiZSBpbiBlZmZlY3QgZHVy aW5nCj4+ICsgKiAgIHRoaXMgY29ubmVjdGlvbi4KPj4gKyAqICAgICAgICAgICAgICB8Cj4+ICsg KiAgICAgICAgICAgICAgfAo+PiArICogICAgICAgICAgICAgIFYKPj4gKyAqIFhlbmJ1c1N0YXRl SW5pdGlhbGlzZWQKPj4gKyAqCj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG8gUXVlcnkgZnJvbnRlbmQgdHJhbnNwb3J0IHBhcmFtZXRlcnMuCj4+ICsgKiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG8gQ29ubmVjdCB0byB0aGUgZXZlbnQg Y2hhbm5lbHMuCj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwKPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfAo+PiArICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBWCj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWGVuYnVz U3RhdGVDb25uZWN0ZWQKPj4gKyAqCj4+ICsgKiAgbyBDcmVhdGUgYW5kIGluaXRpYWxpemUgT1MK Pj4gKyAqICAgIHZpcnR1YWwgY2FtZXJhIGFzIHBlcgo+PiArICogICAgY29uZmlndXJhdGlvbi4K Pj4gKyAqICAgICAgICAgICAgICB8Cj4+ICsgKiAgICAgICAgICAgICAgfAo+PiArICogICAgICAg ICAgICAgIFYKPj4gKyAqIFhlbmJ1c1N0YXRlQ29ubmVjdGVkCj4+ICsgKgo+PiArICogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlVW5rbm93bgo+PiArICog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhlbmJ1c1N0YXRlQ2xvc2VkCj4+ ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWGVuYnVzU3RhdGVDbG9z aW5nCj4+ICsgKiBvIFJlbW92ZSB2aXJ0dWFsIGNhbWVyYSBkZXZpY2UKPj4gKyAqIG8gUmVtb3Zl IGV2ZW50IGNoYW5uZWxzCj4+ICsgKiAgICAgICAgICAgICAgfAo+PiArICogICAgICAgICAgICAg IHwKPj4gKyAqICAgICAgICAgICAgICBWCj4+ICsgKiBYZW5idXNTdGF0ZUNsb3NlZAo+PiArICoK Pj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBSZWNvdmVyeSBmbG93IC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gKyAqCj4+ICsgKiBJbiBjYXNlIG9mIGZyb250 ZW5kIHVucmVjb3ZlcmFibGUgZXJyb3JzIGJhY2tlbmQgaGFuZGxlcyB0aGF0IGFzCj4+ICsgKiBp ZiBmcm9udGVuZCBnb2VzIGludG8gdGhlIFhlbmJ1c1N0YXRlQ2xvc2VkIHN0YXRlLgo+PiArICoK Pj4gKyAqIEluIGNhc2Ugb2YgYmFja2VuZCB1bnJlY292ZXJhYmxlIGVycm9ycyBmcm9udGVuZCB0 cmllcyByZW1vdmluZwo+PiArICogdGhlIHZpcnR1YWxpemVkIGRldmljZS4gSWYgdGhpcyBpcyBw b3NzaWJsZSBhdCB0aGUgbW9tZW50IG9mIGVycm9yLAo+PiArICogdGhlbiBmcm9udGVuZCBnb2Vz IGludG8gdGhlIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nIHN0YXRlIGFuZCBpcyByZWFkeSBmb3IK Pj4gKyAqIG5ldyBjb25uZWN0aW9uIHdpdGggYmFja2VuZC4gSWYgdGhlIHZpcnR1YWxpemVkIGRl dmljZSBpcyBzdGlsbCBpbiB1c2UgYW5kCj4+ICsgKiBjYW5ub3QgYmUgcmVtb3ZlZCwgdGhlbiBm cm9udGVuZCBnb2VzIGludG8gdGhlIFhlbmJ1c1N0YXRlUmVjb25maWd1cmluZyBzdGF0ZQo+PiAr ICogdW50aWwgZWl0aGVyIHRoZSB2aXJ0dWFsaXplZCBkZXZpY2UgaXMgcmVtb3ZlZCBvciBiYWNr ZW5kIGluaXRpYXRlcyBhIG5ldwo+PiArICogY29ubmVjdGlvbi4gT24gdGhlIHZpcnR1YWxpemVk IGRldmljZSByZW1vdmFsIGZyb250ZW5kIGdvZXMgaW50byB0aGUKPj4gKyAqIFhlbmJ1c1N0YXRl SW5pdGlhbGlzaW5nIHN0YXRlLgo+PiArICoKPj4gKyAqIE5vdGUgb24gWGVuYnVzU3RhdGVSZWNv bmZpZ3VyaW5nIHN0YXRlIG9mIHRoZSBmcm9udGVuZDogaWYgYmFja2VuZCBoYXMKPj4gKyAqIHVu cmVjb3ZlcmFibGUgZXJyb3JzIHRoZW4gZnJvbnRlbmQgY2Fubm90IHNlbmQgcmVxdWVzdHMgdG8g dGhlIGJhY2tlbmQKPj4gKyAqIGFuZCB0aHVzIGNhbm5vdCBwcm92aWRlIGZ1bmN0aW9uYWxpdHkg b2YgdGhlIHZpcnR1YWxpemVkIGRldmljZSBhbnltb3JlLgo+PiArICogQWZ0ZXIgYmFja2VuZCBp cyBiYWNrIHRvIG5vcm1hbCB0aGUgdmlydHVhbGl6ZWQgZGV2aWNlIG1heSBzdGlsbCBob2xkIHNv bWUKPj4gKyAqIHN0YXRlOiBjb25maWd1cmF0aW9uIGluIHVzZSwgYWxsb2NhdGVkIGJ1ZmZlcnMs IGNsaWVudCBhcHBsaWNhdGlvbiBzdGF0ZSBldGMuCj4+ICsgKiBJbiBtb3N0IGNhc2VzLCB0aGlz IHdpbGwgcmVxdWlyZSBmcm9udGVuZCB0byBpbXBsZW1lbnQgY29tcGxleCByZWNvdmVyeQo+PiAr ICogcmVjb25uZWN0IGxvZ2ljLiBJbnN0ZWFkLCBieSBnb2luZyBpbnRvIFhlbmJ1c1N0YXRlUmVj b25maWd1cmluZyBzdGF0ZSwKPj4gKyAqIGZyb250ZW5kIHdpbGwgbWFrZSBzdXJlIG5vIG5ldyBj bGllbnRzIG9mIHRoZSB2aXJ0dWFsaXplZCBkZXZpY2UgYXJlCj4+ICsgKiBhY2NlcHRlZCwgYWxs b3cgZXhpc3RpbmcgY2xpZW50KHMpIHRvIGV4aXQgZ3JhY2VmdWxseSBieSBzaWduYWxpbmcgZXJy b3IKPj4gKyAqIHN0YXRlIGV0Yy4KPj4gKyAqIE9uY2UgYWxsIHRoZSBjbGllbnRzIGFyZSBnb25l IGZyb250ZW5kIGNhbiByZWluaXRpYWxpemUgdGhlIHZpcnR1YWxpemVkCj4+ICsgKiBkZXZpY2Ug YW5kIGdldCBpbnRvIFhlbmJ1c1N0YXRlSW5pdGlhbGlzaW5nIHN0YXRlIGFnYWluIHNpZ25hbGlu ZyB0aGUKPj4gKyAqIGJhY2tlbmQgdGhhdCBhIG5ldyBjb25uZWN0aW9uIGNhbiBiZSBtYWRlLgo+ PiArICoKPj4gKyAqIFRoZXJlIGFyZSBtdWx0aXBsZSBjb25kaXRpb25zIHBvc3NpYmxlIHVuZGVy IHdoaWNoIGZyb250ZW5kIHdpbGwgZ28gZnJvbQo+PiArICogWGVuYnVzU3RhdGVSZWNvbmZpZ3Vy aW5nIGludG8gWGVuYnVzU3RhdGVJbml0aWFsaXNpbmcsIHNvbWUgb2YgdGhlbSBhcmUgT1MKPj4g KyAqIHNwZWNpZmljLiBGb3IgZXhhbXBsZToKPj4gKyAqIDEuIFRoZSB1bmRlcmx5aW5nIE9TIGZy YW1ld29yayBtYXkgcHJvdmlkZSBjYWxsYmFja3MgdG8gc2lnbmFsIHRoYXQgdGhlIGxhc3QKPj4g KyAqICAgIGNsaWVudCBvZiB0aGUgdmlydHVhbGl6ZWQgZGV2aWNlIGhhcyBnb25lIGFuZCB0aGUg ZGV2aWNlIGNhbiBiZSByZW1vdmVkCj4+ICsgKiAyLiBGcm9udGVuZCBjYW4gc2NoZWR1bGUgYSBk ZWZlcnJlZCB3b3JrICh0aW1lci90YXNrbGV0L3dvcmtxdWV1ZSkKPj4gKyAqICAgIHRvIHBlcmlv ZGljYWxseSBjaGVjayBpZiB0aGlzIGlzIHRoZSByaWdodCB0aW1lIHRvIHJlLXRyeSByZW1vdmFs IG9mCj4+ICsgKiAgICB0aGUgdmlydHVhbGl6ZWQgZGV2aWNlLgo+PiArICogMy4gQnkgYW55IG90 aGVyIG1lYW5zLgo+PiArICoKPj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPj4gKyAqICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSRVFVRVNUIENPREVTCj4+ICsgKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCj4+ICsgKi8KPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX09QX1NFVF9DT05GSUcgICAgICAg IDB4MDAKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX09QX0dFVF9CVUZfREVUQUlMUyAgIDB4MDEKPj4g KyNkZWZpbmUgWEVOQ0FNRVJBX09QX0JVRl9DUkVBVEUgICAgICAgIDB4MDIKPj4gKyNkZWZpbmUg WEVOQ0FNRVJBX09QX0JVRl9ERVNUUk9ZICAgICAgIDB4MDMKPj4gKyNkZWZpbmUgWEVOQ0FNRVJB X09QX1NUUkVBTV9TVEFSVCAgICAgIDB4MDQKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX09QX1NUUkVB TV9TVE9QICAgICAgIDB4MDUKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX09QX0dFVF9DVFJMX0RFVEFJ TFMgIDB4MDYKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX09QX1NFVF9DVFJMICAgICAgICAgIDB4MDcK SSBhbSB0aGlua2luZyBhYm91dCBleHRlbmRpbmcgdGhlIGNvbW1hbmQgc2V0IGEgYml0IGFzIGl0 IGFscmVhZHkKaGFzIHNvbWUgZmxhd3MsIGUuZy4gdGhlcmUgaXMgbm8gd2F5IGZvciBhIFZNIHRv IHRlbGwgdGhlIGJhY2tlbmQKdGhhdCB0aGUgYnVmZmVyIGlzIG5vdCBpbiB1c2UgYW55bW9yZSBh bmQgY2FuIGJlIGdpdmVuIGJhY2sKdG8gdGhlIHJlYWwgSFcgZHJpdmVyLCBlLmcuIHF1ZXVlL2Rl cXVldWUgaW4gVjRMMiB0ZXJtczoKCiNkZWZpbmUgWEVOQ0FNRVJBX09QX1NFVF9GT1JNQVTCoMKg wqDCoMKgwqDCoCAweDAwCi0gd2lsbCBiZSB1c2VkIHRvIHNldCBmb3JtYXQ6IHBpeGVsIGZvcm1h dCwgcmVzb2x1dGlvbgoKI2RlZmluZSBYRU5DQU1FUkFfT1BfU0VUX0ZSQU1FX1JBVEXCoMKgwqAg MHgwMQotIHVzZWQgdG8gc2V0IHRoZSBmcmFtZSByYXRlCgojZGVmaW5lIFhFTkNBTUVSQV9PUF9C VUZfUkVRVUVTVMKgwqDCoMKgwqDCoCAweDAyCi0gYXNrcyBiYWNrZW5kIHRvIGFsbG9jYXRlIHRo ZSBnaXZlbiBudW1iZXIgb2YgYnVmZmVycywKYmFja2VuZCByZXBsaWVzIHdpdGggcmVhbCBudW1i ZXIgb2YgdGhvc2UgdG8gYmUgdXNlZAoKI2RlZmluZSBYRU5DQU1FUkFfT1BfQlVGX0NSRUFURcKg wqDCoMKgwqDCoMKgIDB4MDMKLSBjcmVhdGUgYSBzaGFyZWQgYnVmZmVyCgojZGVmaW5lIFhFTkNB TUVSQV9PUF9CVUZfREVTVFJPWcKgwqDCoMKgwqDCoCAweDA0Ci0gZGVzdHJveSBhIHNoYXJlZCBi dWZmZXIKCiNkZWZpbmUgWEVOQ0FNRVJBX09QX0JVRl9RVUVVRcKgwqDCoMKgwqDCoMKgwqAgMHgw NQotIFZNIHRlbGxzIHRoZSBiYWNrZW5kIHRoYXQgaXQgaGFzIGFjY2VzcyB0byB0aGUgc2hhcmVk IGJ1ZmZlcgphbmQgdGhlIGJ1ZmZlciBjYW5ub3QgYmUgc2VudCBiYWNrIHRvIHJlYWwgSFcgZHJp dmVyCgojZGVmaW5lIFhFTkNBTUVSQV9PUF9CVUZfREVRVUVVRcKgwqDCoMKgwqDCoCAweDA2Ci0g Vk0gdGVsbHMgdGhlIGJhY2tlbmQgdGhhdCB0aGUgc2hhcmVkIGJ1ZmZlciBpcyBub3QgaW4gdXNl IGFuZApjYW4gYmUgc2VudCB0byByZWFsIEhXIGRyaXZlcgoKI2RlZmluZSBYRU5DQU1FUkFfT1Bf Q1RSTF9FTlVNwqDCoMKgwqDCoMKgwqDCoCAweDA3Ci0gZ2V0IGktdGggY29udHJvbCByYW5nZXMg YW5kIHNldHRpbmdzCgojZGVmaW5lIFhFTkNBTUVSQV9PUF9DVFJMX0dFVMKgwqDCoMKgwqDCoMKg wqDCoCAweDA4Ci0gZ2V0IGNvbnRyb2wgdmFsdWUKCiNkZWZpbmUgWEVOQ0FNRVJBX09QX0NUUkxf U0VUwqDCoMKgwqDCoMKgwqDCoMKgIDB4MDkKLSBzZXQgY29udHJvbCB2YWx1ZQoKI2RlZmluZSBY RU5DQU1FUkFfT1BfU1RSRUFNX1NUQVJUwqDCoMKgwqDCoCAweDBhCi0gc3RhcnQgc3RyZWFtaW5n CgojZGVmaW5lIFhFTkNBTUVSQV9PUF9TVFJFQU1fU1RPUMKgwqDCoMKgwqDCoCAweDBiCi0gc3Rv cCBjdHJlYW1pbmcKCgo+PiArCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9DVFJMX0JSSUdIVE5FU1Mg ICAgICAweDAwCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9DVFJMX0NPTlRSQVNUICAgICAgICAweDAx Cj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9DVFJMX1NBVFVSQVRJT04gICAgICAweDAyCj4+ICsjZGVm aW5lIFhFTkNBTUVSQV9DVFJMX0hVRSAgICAgICAgICAgICAweDAzCj4+ICsKPj4gKy8qCj4+ICsg KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEVWRU5UIENPREVTCj4+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4+ICsgKi8KPj4gKyNk ZWZpbmUgWEVOQ0FNRVJBX0VWVF9GUkFNRV9BVkFJTCAgICAgIDB4MDAKPj4gKwo+PiArLyoKPj4g KyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKPj4gKyAqICAgICAgICAgICAgICAgWEVOU1RPUkUgRklF TEQgQU5EIFBBVEggTkFNRSBTVFJJTkdTLCBIRUxQRVJTCj4+ICsgKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCj4+ICsgKi8KPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX0RSSVZFUl9OQU1FICAgICAgICAgICJ2 Y2FtZXJhIgo+IEFoLCB0aGF0J3Mgd2hlcmUgdmNhbWVyYSBjb21lcyBmcm9tLiBIb3cgYWJvdXQg Y2FsbGluZyB0aGlzIHhlbi1jYW1lcmEgb3IKPiB2aXJ0LWNhbWVyYT8gV2l0aCBhIHByZWZlcmVu Y2UgZm9yIHhlbi1jYW1lcmEsIHNpbmNlIHRoYXQncyB3aGF0IHlvdSB1c2UgZm9yIHRoZQo+IGRl ZmluZXMgYXMgd2VsbC4KPgo+IE9yIHBlcmhhcHMgcHYtY2FtZXJhPwo+Cj4gSXMgdGhpcyBkcml2 ZXIgZ29pbmcgdG8gYmUgeGVuLXNwZWNpZmljLCBvciBtb3JlIGEgZ2VuZXJhbCBhcHByb2FjaCB0 aGF0IGV2ZXJ5b25lCj4gY2FuIHVzZT8gT2J2aW91c2x5LCB0aGUgbGF0dGVyIHdvdWxkIGJlIHBy ZWZlcmFibGUuCkFzIEkgaGF2ZSBhbHJlYWR5IHJlcGxpZWQgdG8gdGhlIGNvdmVyIGxldHRlciB3 aXRoIGV4cGxhbmF0aW9uczoKJ3YnIHN0YW5kcyBmb3IgJ3ZpcnR1YWwnIGFuZCB0aGVyZSBpcyBh IGNvbnZlbnRpb24gdG8gbmFtZSB0aGUKWGVuIHZpcnR1YWwgZGV2aWNlcyBzdGFydGluZyB3aXRo ICd2JzogdmlmLCB2a2JkIGV0Yy4KPgo+IEJUVywgSSBhbSBub3Qgc3VyZSBpZiB5b3UgYXJlIGF3 YXJlIG9mIHRoaXMsIGJ1dCB0aGUgVjRMMiBBUEkgYWxzbyBoYXMgc3VwcG9ydCBmb3IKPiByYWRp byBhbmQgUkRTIGhhcmR3YXJlLiBDb250YWN0IG1lIGlmIHRoaXMgaXMgb2YgaW50ZXJlc3QgdG8g WGVuIHRvIHN1cHBvcnQgdGhpcyBhcwo+IHdlbGwgZ2l2ZW4gdGhlIGF1dG9tb3RpdmUgdXNlLWNh c2UuClllcywgdGhhbmsgeW91LCBidXQgYXQgdGhpcyBzdGFnZSB3ZSBhcmUgdGFyZ2V0aW5nIGNh bWVyYSBvbmx5LgpSYWRpbyBjYW4gYmUgYW5vdGhlciB0b3BpYyBpZiB0aW1lIGFsbG93cyA7KSBB bmQgbW9zdCBwcm9iYWJseQppdCB3aWxsIGJlIGEgZGVkaWNhdGVkICd2cmFkaW8nIHByb3RvY29s IHRoZW4uLi4KPgo+PiArCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9MSVNUX1NFUEFSQVRPUiAgICAg ICAiLCIKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX1JFU09MVVRJT05fU0VQQVJBVE9SICJ4Igo+PiAr I2RlZmluZSBYRU5DQU1FUkFfRlJBTUVfUkFURV9TRVBBUkFUT1IgIi8iCj4+ICsKPj4gKyNkZWZp bmUgWEVOQ0FNRVJBX0ZJRUxEX0JFX1ZFUlNJT05TICAgICJ2ZXJzaW9ucyIKPj4gKyNkZWZpbmUg WEVOQ0FNRVJBX0ZJRUxEX0ZFX1ZFUlNJT04gICAgICJ2ZXJzaW9uIgo+PiArI2RlZmluZSBYRU5D QU1FUkFfRklFTERfUkVRX1JJTkdfUkVGICAgInJlcS1yaW5nLXJlZiIKPj4gKyNkZWZpbmUgWEVO Q0FNRVJBX0ZJRUxEX1JFUV9DSEFOTkVMICAgICJyZXEtZXZlbnQtY2hhbm5lbCIKPj4gKyNkZWZp bmUgWEVOQ0FNRVJBX0ZJRUxEX0VWVF9SSU5HX1JFRiAgICJldnQtcmluZy1yZWYiCj4+ICsjZGVm aW5lIFhFTkNBTUVSQV9GSUVMRF9FVlRfQ0hBTk5FTCAgICAiZXZ0LWV2ZW50LWNoYW5uZWwiCj4+ ICsjZGVmaW5lIFhFTkNBTUVSQV9GSUVMRF9DT05UUk9MUyAgICAgICAiY29udHJvbHMiCj4+ICsj ZGVmaW5lIFhFTkNBTUVSQV9GSUVMRF9GT1JNQVRTICAgICAgICAiZm9ybWF0cyIKPj4gKyNkZWZp bmUgWEVOQ0FNRVJBX0ZJRUxEX0JFX0FMTE9DICAgICAgICJiZS1hbGxvYyIKPj4gKyNkZWZpbmUg WEVOQ0FNRVJBX0ZJRUxEX1VOSVFVRV9JRCAgICAgICJ1bmlxdWUtaWQiCj4+ICsKPj4gKyNkZWZp bmUgWEVOQ0FNRVJBX0NUUkxfQlJJR0hUTkVTU19TVFIgICJicmlnaHRuZXNzIgo+PiArI2RlZmlu ZSBYRU5DQU1FUkFfQ1RSTF9DT05UUkFTVF9TVFIgICAgImNvbnRyYXN0Igo+PiArI2RlZmluZSBY RU5DQU1FUkFfQ1RSTF9TQVRVUkFUSU9OX1NUUiAgInNhdHVyYXRpb24iCj4+ICsjZGVmaW5lIFhF TkNBTUVSQV9DVFJMX0hVRV9TVFIgICAgICAgICAiaHVlIgo+PiArCj4+ICsvKiBNYXhpbXVtIG51 bWJlciBvZiBidWZmZXIgcGxhbmVzIHN1cHBvcnRlZC4gKi8KPj4gKyNkZWZpbmUgWEVOQ0FNRVJB X01BWF9QTEFORSAgICAgICAgICAgIDQKPj4gKwo+PiArLyoKPj4gKyAqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKPj4gKyAqICAgICAgICAgICAgICAgICAgICAgICAgICBTVEFUVVMgUkVUVVJOIENPREVT Cj4+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCj4+ICsgKgo+PiArICogU3RhdHVzIHJldHVybiBj b2RlIGlzIHplcm8gb24gc3VjY2VzcyBhbmQgLVhFTl9FWFggb24gZmFpbHVyZS4KPj4gKyAqCj4+ ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCj4+ICsgKiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFzc3VtcHRpb25zCj4+ICsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCj4+ICsgKgo+PiArICog LSB1c2FnZSBvZiBncmFudCByZWZlcmVuY2UgMCBhcyBpbnZhbGlkIGdyYW50IHJlZmVyZW5jZToK Pj4gKyAqICAgZ3JhbnQgcmVmZXJlbmNlIDAgaXMgdmFsaWQsIGJ1dCBuZXZlciBleHBvc2VkIHRv IGEgUFYgZHJpdmVyLAo+PiArICogICBiZWNhdXNlIG9mIHRoZSBmYWN0IGl0IGlzIGFscmVhZHkg aW4gdXNlL3Jlc2VydmVkIGJ5IHRoZSBQViBjb25zb2xlLgo+PiArICogLSBhbGwgcmVmZXJlbmNl cyBpbiB0aGlzIGRvY3VtZW50IHRvIHBhZ2Ugc2l6ZXMgbXVzdCBiZSB0cmVhdGVkCj4+ICsgKiAg IGFzIHBhZ2VzIG9mIHNpemUgWEVOX1BBR0VfU0laRSB1bmxlc3Mgb3RoZXJ3aXNlIG5vdGVkLgo+ PiArICoKPj4gKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKPj4gKyAqICAgICAgIERlc2NyaXB0aW9u IG9mIHRoZSBwcm90b2NvbCBiZXR3ZWVuIGZyb250ZW5kIGFuZCBiYWNrZW5kIGRyaXZlcgo+PiAr ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgo+PiArICoKPj4gKyAqIFRoZSB0d28gaGFsdmVzIG9mIGEg UGFyYS12aXJ0dWFsIGNhbWVyYSBkcml2ZXIgY29tbXVuaWNhdGUgd2l0aAo+PiArICogZWFjaCBv dGhlciB1c2luZyBzaGFyZWQgcGFnZXMgYW5kIGV2ZW50IGNoYW5uZWxzLgo+PiArICogU2hhcmVk IHBhZ2UgY29udGFpbnMgYSByaW5nIHdpdGggcmVxdWVzdC9yZXNwb25zZSBwYWNrZXRzLgo+PiAr ICoKPj4gKyAqIEFsbCByZXNlcnZlZCBmaWVsZHMgaW4gdGhlIHN0cnVjdHVyZXMgYmVsb3cgbXVz dCBiZSAwLgo+PiArICoKPj4gKyAqIEZvciBhbGwgcmVxdWVzdC9yZXNwb25zZS9ldmVudCBwYWNr ZXRzOgo+PiArICogICAtIGZyYW1lIHJhdGUgcGFyYW1ldGVyIGlzIHJlcHJlc2VudGVkIGFzIGEg cGFpciBvZiA0IG9jdGV0IGxvbmcKPj4gKyAqICAgICBudW1lcmF0b3IgYW5kIGRlbm9taW5hdG9y Ogo+PiArICogICAgICAgLSBmcmFtZV9yYXRlX251bWVyIC0gdWludDMyX3QsIG51bWVyYXRvciBv ZiB0aGUgZnJhbWUgcmF0ZQo+PiArICogICAgICAgLSBmcmFtZV9yYXRlX2Rlbm9tIC0gdWludDMy X3QsIGRlbm9taW5hdG9yIG9mIHRoZSBmcmFtZSByYXRlCj4+ICsgKiAgICAgVGhlIGNvcnJlc3Bv bmRpbmcgZnJhbWUgcmF0ZSAoSHopIGlzIGNhbGN1bGF0ZWQgYXM6Cj4+ICsgKiAgICAgICBmcmFt ZV9yYXRlID0gZnJhbWVfcmF0ZV9udW1lciAvIGZyYW1lX3JhdGVfZGVub20KPj4gKyAqICAgLSBi dWZmZXIgaW5kZXggaXMgYSB6ZXJvIGJhc2VkIGluZGV4IG9mIHRoZSBidWZmZXIuIE11c3QgYmUg bGVzcyB0aGFuCj4+ICsgKiAgICAgdGhlIHZhbHVlIG9mIFhFTkNBTUVSQV9PUF9TRVRfQ09ORklH Lm51bV9idWZzIHJlc3BvbnNlOgo+PiArICogICAgICAgLSBpbmRleCAtIHVpbnQ4X3QsIGluZGV4 IG9mIHRoZSBidWZmZXIuCj4+ICsgKgo+PiArICoKPj4gKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSBSZXF1ZXN0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K Pj4gKyAqCj4+ICsgKiBBbGwgcmVxdWVzdCBwYWNrZXRzIGhhdmUgdGhlIHNhbWUgbGVuZ3RoICg2 NCBvY3RldHMpLgo+PiArICogQWxsIHJlcXVlc3QgcGFja2V0cyBoYXZlIGNvbW1vbiBoZWFkZXI6 Cj4+ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAg ICAgICAgICAgIDMgICAgICAgIG9jdGV0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAg ICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8ICAgIG9wZXJhdGlvbiAgIHwgICByZXNlcnZl ZCAgICAgfCA0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4+ICsg KiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSsKPj4gKyAqICAgaWQgLSB1aW50MTZfdCwgcHJpdmF0ZSBndWVzdCB2YWx1 ZSwgZWNob2VkIGluIHJlc3BvbnNlLgo+PiArICogICBvcGVyYXRpb24gLSB1aW50OF90LCBvcGVy YXRpb24gY29kZSwgWEVOQ0FNRVJBX09QX1hYWC4KPj4gKyAqCj4+ICsgKgo+PiArICogUmVxdWVz dCBjb25maWd1cmF0aW9uIHNldC9yZXNldCAtIHJlcXVlc3QgdG8gc2V0IG9yIHJlc2V0Lgo+PiAr ICogdGhlIGNvbmZpZ3VyYXRpb24vbW9kZSBvZiB0aGUgY2FtZXJhOgo+PiArICogICAgICAgICAw ICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAgICAgICAzICAgICAg ICBvY3RldAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgaWQgICAg ICAgICAgICAgICAgfCBfT1BfU0VUX0NPTkZJRyB8ICAgcmVzZXJ2ZWQgICAgIHwgNAo+PiArICog Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZl ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAo+PiArICogKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpeGVsIGZvcm1hdCAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgMTIKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDE2Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaGVpZ2h0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMAo+PiArICog Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZV9yYXRl X251bWVyICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjQKPj4gKyAqICstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWVfcmF0ZV9kZW5vbSAgICAgICAg ICAgICAgICAgICAgICAgICB8IDI4Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgbnVt X2J1ZnMgICAgfCAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAg ICAgfCAzMgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzYKPj4gKyAq ICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKwo+PiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4g KyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCA2NAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKgo+PiArICogUGFz cyBhbGwgemVyb3MgdG8gcmVzZXQsIG90aGVyd2lzZSBjb21tYW5kIGlzIHRyZWF0ZWQgYXMgY29u ZmlndXJhdGlvbiBzZXQuCj4+ICsgKgo+PiArICogcGl4ZWxfZm9ybWF0IC0gdWludDMyX3QsIHBp eGVsIGZvcm1hdCB0byBiZSB1c2VkLCBGT1VSQ0MgY29kZS4KPj4gKyAqIHdpZHRoIC0gdWludDMy X3QsIHdpZHRoIGluIHBpeGVscy4KPj4gKyAqIGhlaWdodCAtIHVpbnQzMl90LCBoZWlnaHQgaW4g cGl4ZWxzLgo+PiArICogZnJhbWVfcmF0ZV9udW1lciAtIHVpbnQzMl90LCBudW1lcmF0b3Igb2Yg dGhlIGZyYW1lIHJhdGUuCj4+ICsgKiBmcmFtZV9yYXRlX2Rlbm9tIC0gdWludDMyX3QsIGRlbm9t aW5hdG9yIG9mIHRoZSBmcmFtZSByYXRlLgo+IElmIHlvdSBoYXZlIHRvIHN1cHBvcnQgSERNSS9T RFRWIGlucHV0cyBhcyB3ZWxsLCB0aGVuIHlvdSBhbHNvIG5lZWQgdG8ga25vdwo+IHRoZSBpbnRl cmxhY2VkIGZvcm1hdCwgdW5sZXNzIHlvdSBoYXZlIG5vIHBsYW5zIHRvIHN1cHBvcnQgdGhhdC4K Pgo+PiArICogbnVtX2J1ZnMgLSB1aW50OF90LCBkZXNpcmVkIG51bWJlciBvZiBidWZmZXJzIHRv IGJlIHVzZWQuCj4gSHVoPyBXaGF0IGhhcyB0aGF0IHRvIGRvIHdpdGggdGhlIGZvcm1hdD8gV2h5 IHdvdWxkIHlvdSBuZWVkIHRoaXMgaGVyZT8KV2VsbCwgdGhlIG9wZXJhdGlvbiBuYW1lIGlzICdz ZXRfY29uZmlnJywgbm90ICdzZXRfZm9ybWF0JywKc28gSSB0aG91Z2h0IHdlIGNhbiBoYXZlIHN1 Y2ggYSBjdW11bGF0aXZlIGNvbW1hbmQgYXNzZW1ibGluZwphbGwgdGhlIHBhcmFtZXRlcnMgb2Yg dGhlIGNvbmZpZ3VyYXRpb24uIEJ1dCBub3cgSSBhbSBsb29raW5nIGF0CnR1cm5pbmcgdGhpcyBz aW5nbGUgJ3NldF9jb25maWcnIGNvbW1hbmQgdG8gMyBkaWZmZXJlbnQgY29tbWFuZHMsCndoaWNo IGlzIG1vcmUgcHJhY3RpY2FsIGFuZCBhbGlnbmVkIHdpdGggVjRMMiBpbiBwYXJ0aWN1bGFyIChw bGVhc2UKc2VlIGFib3ZlIGluIHRoZSBjb21tYW5kIHNldCk6CjEuIHNldCBmb3JtYXQgY29tbWFu ZDoKIMKgKiBwaXhlbF9mb3JtYXQgLSB1aW50MzJfdCwgcGl4ZWwgZm9ybWF0IHRvIGJlIHVzZWQs IEZPVVJDQyBjb2RlLgogwqAqIHdpZHRoIC0gdWludDMyX3QsIHdpZHRoIGluIHBpeGVscy4KIMKg KiBoZWlnaHQgLSB1aW50MzJfdCwgaGVpZ2h0IGluIHBpeGVscy4KCjIuIFNldCBmcmFtZSByYXRl IGNvbW1hbmQ6CiDCoCsgKiBmcmFtZV9yYXRlX251bWVyIC0gdWludDMyX3QsIG51bWVyYXRvciBv ZiB0aGUgZnJhbWUgcmF0ZS4KIMKgKyAqIGZyYW1lX3JhdGVfZGVub20gLSB1aW50MzJfdCwgZGVu b21pbmF0b3Igb2YgdGhlIGZyYW1lIHJhdGUuCgozLiBTZXQvcmVxdWVzdCBudW0gYnVmczoKIMKg KiBudW1fYnVmcyAtIHVpbnQ4X3QsIGRlc2lyZWQgbnVtYmVyIG9mIGJ1ZmZlcnMgdG8gYmUgdXNl ZC4KPgo+PiArICoKPj4gKyAqIFNlZSByZXNwb25zZSBmb3JtYXQgZm9yIHRoaXMgcmVxdWVzdC4K Pj4gKyAqCj4+ICsgKiBOb3RlczoKPj4gKyAqICAtIGZyb250ZW5kIG11c3QgY2hlY2sgdGhlIGNv cnJlc3BvbmRpbmcgcmVzcG9uc2UgaW4gb3JkZXIgdG8gc2VlCj4+ICsgKiAgICBpZiB0aGUgdmFs dWVzIHJlcG9ydGVkIGJhY2sgYnkgdGhlIGJhY2tlbmQgZG8gbWF0Y2ggdGhlIGRlc2lyZWQgb25l cwo+PiArICogICAgYW5kIGNhbiBiZSBhY2NlcHRlZC4KPj4gKyAqICAtIGZyb250ZW5kIG1heSBz ZW5kIG11bHRpcGxlIFhFTkNBTUVSQV9PUF9TRVRfQ09ORklHIHJlcXVlc3RzIGJlZm9yZQo+PiAr ICogICAgc2VuZGluZyBYRU5DQU1FUkFfT1BfU1RSRUFNX1NUQVJUIHJlcXVlc3QgdG8gdXBkYXRl IG9yIHR1bmUgdGhlCj4+ICsgKiAgICBjb25maWd1cmF0aW9uLgo+PiArICovCj4+ICtzdHJ1Y3Qg eGVuY2FtZXJhX2NvbmZpZyB7Cj4+ICsgICAgdWludDMyX3QgcGl4ZWxfZm9ybWF0Owo+PiArICAg IHVpbnQzMl90IHdpZHRoOwo+PiArICAgIHVpbnQzMl90IGhlaWdodDsKPj4gKyAgICB1aW50MzJf dCBmcmFtZV9yYXRlX25vbTsKPj4gKyAgICB1aW50MzJfdCBmcmFtZV9yYXRlX2Rlbm9tOwo+PiAr ICAgIHVpbnQ4X3QgbnVtX2J1ZnM7Cj4+ICt9Owo+PiArCj4+ICsvKgo+PiArICogUmVxdWVzdCBi dWZmZXIgZGV0YWlscyAtIHJlcXVlc3QgY2FtZXJhIGJ1ZmZlcidzIG1lbW9yeSBsYXlvdXQuCj4+ ICsgKiBkZXRhaWxlZCBkZXNjcmlwdGlvbjoKPj4gKyAqICAgICAgICAgMCAgICAgICAgICAgICAg ICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKPj4gKyAq ICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHxf R0VUX0JVRl9ERVRBSUxTfCAgIHJlc2VydmVkICAgICB8IDQKPj4gKyAqICstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IDgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC98Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA2NAo+PiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4+ICsgKgo+PiArICogU2VlIHJlc3BvbnNlIGZvcm1hdCBmb3IgdGhpcyByZXF1 ZXN0Lgo+PiArICoKPj4gKyAqCj4+ICsgKiBSZXF1ZXN0IGNhbWVyYSBidWZmZXIgY3JlYXRpb246 Cj4+ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAg ICAgICAgICAgIDMgICAgICAgIG9jdGV0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAg ICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8IF9PUF9CVUZfQ1JFQVRFIHwgICByZXNlcnZl ZCAgICAgfCA0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4+ICsg KiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICBpbmRleCAgICAgfCAgICAgICAgICAgICAgICAg ICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgfCAxMgo+PiArICogKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r Cj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZl9kaXJlY3RvcnkgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgMTYKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IDIwCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+PiArICog Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZl ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjQKPj4gKyAqICstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ PiArICoKPj4gKyAqIEFuIGF0dGVtcHQgdG8gY3JlYXRlIG11bHRpcGxlIGJ1ZmZlcnMgd2l0aCB0 aGUgc2FtZSBpbmRleCBpcyBhbiBlcnJvci4KPj4gKyAqIGluZGV4IGNhbiBiZSByZS11c2VkIGFm dGVyIGRlc3Ryb3lpbmcgdGhlIGNvcnJlc3BvbmRpbmcgY2FtZXJhIGJ1ZmZlci4KPj4gKyAqCj4+ ICsgKiBpbmRleCAtIHVpbnQ4X3QsIGluZGV4IG9mIHRoZSBidWZmZXIgdG8gYmUgY3JlYXRlZC4K Pj4gKyAqIGdyZWZfZGlyZWN0b3J5IC0gZ3JhbnRfcmVmX3QsIGEgcmVmZXJlbmNlIHRvIHRoZSBm aXJzdCBzaGFyZWQgcGFnZQo+PiArICogICBkZXNjcmliaW5nIHNoYXJlZCBidWZmZXIgcmVmZXJl bmNlcy4gVGhlIHNpemUgb2YgdGhlIGJ1ZmZlciBpcyBlcXVhbCB0bwo+PiArICogICBYRU5DQU1F UkFfT1BfR0VUX0JVRl9ERVRBSUxTLnNpemUgcmVzcG9uc2UuIEF0IGxlYXN0IG9uZSBwYWdlIGV4 aXN0cy4gSWYKPj4gKyAqICAgc2hhcmVkIGJ1ZmZlciBzaXplIGV4Y2VlZHMgd2hhdCBjYW4gYmUg YWRkcmVzc2VkIGJ5IHRoaXMgc2luZ2xlIHBhZ2UsCj4+ICsgKiAgIHRoZW4gcmVmZXJlbmNlIHRv IHRoZSBuZXh0IHNoYXJlZCBwYWdlIG11c3QgYmUgc3VwcGxpZWQgKHNlZQo+PiArICogICBncmVm X2Rpcl9uZXh0X3BhZ2UgYmVsb3cpLgo+IEl0IG1pZ2h0IGJlIGJldHRlciB0byBhbGxvY2F0ZSBh bGwgYnVmZmVycyBpbiBvbmUgZ28sIGkuZS4gd2hhdCBWSURJT0NfUkVRQlVGUwo+IGRvZXMuCldl bGwsIEkgc3RpbGwgdGhpbmsgaXQgaXMgYmV0dGVyIHRvIGhhdmUgYSBwZXIgYnVmZmVyIGludGVy ZmFjZQppbiB0aGUgcHJvdG9jb2wgYXMgaXQgaXMgZG9uZSBmb3Igb3RoZXIgWGVuIHZpcnR1YWwg ZGV2aWNlcy4KU28sIEknbGwga2VlcCB0aGlzIGFzIGlzIGZvciBub3c6IFZJRElPQ19SRVFCVUZT IGNhbiBzdGlsbCBkbwp3aGF0IGl0IGRvZXMgaW50ZXJuYWxseSBpbiB0aGUgZnJvbnRlbmQgZHJp dmVyCj4KPj4gKyAqCj4+ICsgKiBJZiBYRU5DQU1FUkFfRklFTERfQkVfQUxMT0MgY29uZmlndXJh dGlvbiBlbnRyeSBpcyBzZXQsIHRoZW4gYmFja2VuZCB3aWxsCj4+ICsgKiBhbGxvY2F0ZSB0aGUg YnVmZmVyIHdpdGggdGhlIHBhcmFtZXRlcnMgcHJvdmlkZWQgaW4gdGhpcyByZXF1ZXN0IGFuZCBw YWdlCj4+ICsgKiBkaXJlY3RvcnkgaXMgaGFuZGxlZCBhcyBmb2xsb3dzOgo+PiArICogICBGcm9u dGVuZCBvbiByZXF1ZXN0Ogo+PiArICogICAgIC0gYWxsb2NhdGVzIHBhZ2VzIGZvciB0aGUgZGly ZWN0b3J5IChncmVmX2RpcmVjdG9yeSwKPj4gKyAqICAgICAgIGdyZWZfZGlyX25leHRfcGFnZShz KQo+PiArICogICAgIC0gZ3JhbnRzIHBlcm1pc3Npb25zIGZvciB0aGUgcGFnZXMgb2YgdGhlIGRp cmVjdG9yeSB0byB0aGUgYmFja2VuZAo+PiArICogICAgIC0gc2V0cyBncmVmX2Rpcl9uZXh0X3Bh Z2UgZmllbGRzCj4+ICsgKiAgIEJhY2tlbmQgb24gcmVzcG9uc2U6Cj4+ICsgKiAgICAgLSBncmFu dHMgcGVybWlzc2lvbnMgZm9yIHRoZSBwYWdlcyBvZiB0aGUgYnVmZmVyIGFsbG9jYXRlZCB0bwo+ PiArICogICAgICAgdGhlIGZyb250ZW5kCj4+ICsgKiAgICAgLSBmaWxscyBpbiBwYWdlIGRpcmVj dG9yeSB3aXRoIGdyYW50IHJlZmVyZW5jZXMKPj4gKyAqICAgICAgIChncmVmW10gaW4gc3RydWN0 IHhlbmNhbWVyYV9wYWdlX2RpcmVjdG9yeSkKPj4gKyAqLwo+PiArc3RydWN0IHhlbmNhbWVyYV9i dWZfY3JlYXRlX3JlcSB7Cj4+ICsgICAgdWludDhfdCBpbmRleDsKPj4gKyAgICB1aW50OF90IHJl c2VydmVkWzNdOwo+PiArICAgIGdyYW50X3JlZl90IGdyZWZfZGlyZWN0b3J5Owo+PiArfTsKPj4g Kwo+PiArLyoKPj4gKyAqIFNoYXJlZCBwYWdlIGZvciBYRU5DQU1FUkFfT1BfQlVGX0NSRUFURSBi dWZmZXIgZGVzY3JpcHRvciAoZ3JlZl9kaXJlY3RvcnkgaW4KPj4gKyAqIHRoZSByZXF1ZXN0KSBl bXBsb3lzIGEgbGlzdCBvZiBwYWdlcywgZGVzY3JpYmluZyBhbGwgcGFnZXMgb2YgdGhlIHNoYXJl ZAo+PiArICogZGF0YSBidWZmZXI6Cj4+ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAg ICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cj4+ICsgKiArLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICBncmVmX2Rpcl9uZXh0X3Bh Z2UgICAgICAgICAgICAgICAgICAgICAgICAgfCA0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAq IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmVmWzBdICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCA4Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+ PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z3JlZltpXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgaSo0KzgKPj4gKyAqICstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKwo+PiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyZWZbTiAtIDFdICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCBOKjQrOAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKgo+PiArICogZ3JlZl9k aXJfbmV4dF9wYWdlIC0gZ3JhbnRfcmVmX3QsIHJlZmVyZW5jZSB0byB0aGUgbmV4dCBwYWdlIGRl c2NyaWJpbmcKPj4gKyAqICAgcGFnZSBkaXJlY3RvcnkuIE11c3QgYmUgMCBpZiB0aGVyZSBhcmUg bm8gbW9yZSBwYWdlcyBpbiB0aGUgbGlzdC4KPj4gKyAqIGdyZWZbaV0gLSBncmFudF9yZWZfdCwg cmVmZXJlbmNlIHRvIGEgc2hhcmVkIHBhZ2Ugb2YgdGhlIGJ1ZmZlcgo+PiArICogICBhbGxvY2F0 ZWQgYXQgWEVOQ0FNRVJBX09QX0JVRl9DUkVBVEUuCj4+ICsgKgo+PiArICogTnVtYmVyIG9mIGdy YW50X3JlZl90IGVudHJpZXMgaW4gdGhlIHdob2xlIHBhZ2UgZGlyZWN0b3J5IGlzIG5vdAo+PiAr ICogcGFzc2VkLCBidXQgaW5zdGVhZCBjYW4gYmUgY2FsY3VsYXRlZCBhczoKPj4gKyAqICAgbnVt X2dyZWZzX3RvdGFsID0gKFhFTkNBTUVSQV9PUF9HRVRfQlVGX0RFVEFJTFMuc2l6ZSArIFhFTl9Q QUdFX1NJWkUgLSAxKSAvCj4+ICsgKiAgICAgICBYRU5fUEFHRV9TSVpFCj4+ICsgKi8KPj4gK3N0 cnVjdCB4ZW5jYW1lcmFfcGFnZV9kaXJlY3Rvcnkgewo+PiArICAgIGdyYW50X3JlZl90IGdyZWZf ZGlyX25leHRfcGFnZTsKPj4gKyAgICBncmFudF9yZWZfdCBncmVmWzFdOyAvKiBWYXJpYWJsZSBs ZW5ndGggKi8KPj4gK307Cj4+ICsKPj4gKy8qCj4+ICsgKiBSZXF1ZXN0IGJ1ZmZlciBkZXN0cnVj dGlvbiAtIGRlc3Ryb3kgYSBwcmV2aW91c2x5IGFsbG9jYXRlZCBjYW1lcmEgYnVmZmVyOgo+PiAr ICogICAgICAgICAwICAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAgIDIgICAgICAgICAg ICAgICAzICAgICAgICBvY3RldAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAg ICAgICAgaWQgICAgICAgICAgICAgICAgfCBfT1BfQlVGX0RFU1RST1l8ICAgcmVzZXJ2ZWQgICAg IHwgNAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgOAo+PiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgaW5kZXggICAgIHwgICAgICAgICAgICAgICAgICAgICBy ZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgIHwgMTIKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiAr ICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IDE2Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv fAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjQKPj4gKyAqICstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKwo+PiArICoKPj4gKyAqIGluZGV4IC0gdWludDhfdCwgaW5kZXggb2YgdGhlIGJ1ZmZl ciB0byBiZSBkZXN0cm95ZWQuCj4+ICsgKi8KPiBUaGVyZSBpcyBubyBWNEwyIGlvY3RsIHRvIGRl c3Ryb3kgc3BlY2lmaWMgYnVmZmVycy4gWW91IGNhbiBvbmx5IGRlc3Ryb3kgYWxsCj4gb2YgdGhl bS4KVGhpcyBpcyBub3Qgc3BlY2lmaWNhbGx5IHJlbGF0ZWQgdG8gVjRMMiwgYnV0IGNhbiBiZSBp c3N1ZWQKaW4gcmVzcG9uc2UgdG8gYmFja2VuZCdzIHN0YXRlIGNoYW5nZSBldGMuClNvLCB3ZSBo YXZlIGEgcGFpciBvZiBjb21tYW5kcyB0byBjcmVhdGUgYW5kIGRlc3Ryb3kgYnVmZmVycy4KRXZl biBtb3JlLCBmcm9udGVuZCBjYW4gYmUgYSBzb21lLW9zLWJhc2VkLWRyaXZlciwgbm90IFY0TDIK YmFzZWQuIE9yIGV2ZW4gYSB1c2VyLXNwYWNlIGFwcGxpY2F0aW9uIGlmIHlvdXIgd2lsbC4KPgo+ PiArCj4+ICtzdHJ1Y3QgeGVuY2FtZXJhX2J1Zl9kZXN0cm95X3JlcSB7Cj4+ICsgICAgdWludDhf dCBpbmRleDsKPj4gK307Cj4+ICsKPj4gKy8qCj4+ICsgKiBSZXF1ZXN0IGNhbWVyYSBjYXB0dXJl IHN0cmVhbSBzdGFydDoKPj4gKyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAg ICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKPj4gKyAqICstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Kwo+PiArICogfCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAgIHxfT1BfU1RSRUFNX1NU QVJUfCAgIHJlc2VydmVkICAgICB8IDQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IDgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98Cj4+ICsgKiAr LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVk ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA2NAo+PiArICogKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ ICsgKgo+PiArICoKPj4gKyAqIFJlcXVlc3QgY2FtZXJhIGNhcHR1cmUgc3RyZWFtIHN0b3A6Cj4+ ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAg ICAgICAgIDMgICAgICAgIG9jdGV0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAg ICAgICAgICBpZCAgICAgICAgICAgICAgICB8X09QX1NUUkVBTV9TVE9QIHwgICByZXNlcnZlZCAg ICAgfCA0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4+ICsgKiAr LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSsKPj4gKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsg KiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgNjQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICoKPj4gKyAqCj4+ICsg KiBSZXF1ZXN0IGNhbWVyYSBjb250cm9sIGRldGFpbHM6Cj4+ICsgKiAgICAgICAgIDAgICAgICAg ICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0 Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAg ICAgICB8R0VUX0NUUkxfREVUQUlMU3wgICByZXNlcnZlZCAgICAgfCA0Cj4+ICsgKiArLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSsKPj4gKyAqIHwgICAgICBpbmRleCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHJlc2Vy dmVkICAgICAgICAgICAgICAgICAgICAgfCAxMgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgMTYKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC98Cj4+ ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl c2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA2NAo+PiArICogKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rCj4+ICsgKgo+PiArICogU2VlIHJlc3BvbnNlIGZvcm1hdCBmb3IgdGhpcyByZXF1ZXN0Lgo+ PiArICoKPj4gKyAqIGluZGV4IC0gdWludDhfdCwgaW5kZXggb2YgdGhlIGNvbnRyb2wgdG8gYmUg cXVlcmllZC4KPj4gKyAqLwo+PiArc3RydWN0IHhlbmNhbWVyYV9nZXRfY3RybF9kZXRhaWxzX3Jl cSB7Cj4+ICsgICAgdWludDhfdCBpbmRleDsKPj4gK307Cj4+ICsKPj4gKy8qCj4+ICsgKgo+PiAr ICogUmVxdWVzdCBjYW1lcmEgY29udHJvbCBjaGFuZ2U6Cj4+ICsgKiAgICAgICAgIDAgICAgICAg ICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0 Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAg ICAgICB8ICBfT1BfU0VUX0NUUkwgIHwgICByZXNlcnZlZCAgICAgfCA0Cj4+ICsgKiArLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSsKPj4gKyAqIHwgICAgICBpbmRleCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHJlc2Vy dmVkICAgICAgICAgICAgICAgICAgICAgfCAxMgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgMTYKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIw Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+PiArICogKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgNjQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICoKPj4g KyAqIFNlZSByZXNwb25zZSBmb3JtYXQgZm9yIHRoaXMgcmVxdWVzdC4KPj4gKyAqCj4+ICsgKiBp bmRleCAtIHVpbnQ4X3QsIGluZGV4IG9mIHRoZSBjb250cm9sLgo+PiArICogdmFsdWUgLSBpbnQz Ml90LCBuZXcgdmFsdWUgb2YgdGhlIGNvbnRyb2wuCj4gSSB3b3VsZCByZWNvbW1lbmQgdXNpbmcg YSBpbnQ2NF90IGFzIHRoZSBjb250cm9sIHZhbHVlLgpHb29kIHBvaW50LCB0aGFuayB5b3UKPgo+ IE5vdGUgdGhhdCB0aGVyZSBhcmUgYWxzbyBjb250cm9scyB3aXRoIGEgcGF5bG9hZCAoZS5nLiBz dHJpbmcgY29udHJvbHMpLgpDb3VsZCB5b3UgcGxlYXNlIGdpdmUgbWUgYW4gZXhhbXBsZSBvZiBz dWNoIGEgY29udHJvbD8KRG8geW91IHRoaW5rIHN1Y2ggY29udHJvbHMgY2FuIGJlIG9mIHVzZSBp biBhIFZNPwpDYW4gd2UgYXZvaWQgc3VjaCBjb250cm9scyBpZiB3ZSB0YXJnZXQgYSBzaW1wbGUg dmlydHVhbApjYW1lcmEgZGV2aWNlPyBJZiB0aGlzIGlzIGZvciByYWRpbyB1c2UtY2FzZSwgdGhl biB3ZSdsbApoYXZlIHN1Y2ggc3VwcG9ydCBpbiAndnJhZGlvJyBwcm90b2NvbCBpZiBuZWVkIGJl Cj4KPiBJZiB0aGVyZSBpcyBldmVyIGludGVyZXN0IGluIGFkZGluZyByYWRpby9SRFMgc3VwcG9y dCwgdGhlbiB0aGF0IHdpbGwgYmVjb21lCj4gYW4gaXNzdWUuCllvdSBtZWFuIHNvbWV0aGluZyBs aWtlIHN0YXRpb24gbmFtZXMsIGFkcyBldGM/Cj4KPj4gKyAqLwo+PiArc3RydWN0IHhlbmNhbWVy YV9zZXRfY3RybF9yZXEgewo+PiArICAgIHVpbnQ4X3QgaW5kZXg7Cj4+ICsgICAgdWludDhfdCBy ZXNlcnZlZFszXTsKPj4gKyAgICBpbnQzMl90IHZhbHVlOwo+PiArfTsKPj4gKwo+PiArLyoKPj4g KyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBSZXNwb25zZXMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gKyAqCj4+ICsgKiBBbGwgcmVzcG9uc2UgcGFja2V0 cyBoYXZlIHRoZSBzYW1lIGxlbmd0aCAoNjQgb2N0ZXRzKS4KPj4gKyAqCj4+ICsgKiBBbGwgcmVz cG9uc2UgcGFja2V0cyBoYXZlIGNvbW1vbiBoZWFkZXI6Cj4+ICsgKiAgICAgICAgIDAgICAgICAg ICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0 Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAg ICAgICB8ICAgIG9wZXJhdGlvbiAgIHwgICAgcmVzZXJ2ZWQgICAgfCA0Cj4+ICsgKiArLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqCj4+ ICsgKiBpZCAtIHVpbnQxNl90LCBjb3BpZWQgZnJvbSB0aGUgcmVxdWVzdC4KPj4gKyAqIG9wZXJh dGlvbiAtIHVpbnQ4X3QsIFhFTkNBTUVSQV9PUF8qIC0gY29waWVkIGZyb20gcmVxdWVzdC4KPj4g KyAqIHN0YXR1cyAtIGludDMyX3QsIHJlc3BvbnNlIHN0YXR1cywgemVybyBvbiBzdWNjZXNzIGFu ZCAtWEVOX0VYWCBvbiBmYWlsdXJlLgo+PiArICoKPj4gKyAqCj4+ICsgKiBTZXQgY29uZmlndXJh dGlvbiByZXNwb25zZSAtIHJlc3BvbnNlIGZvciBYRU5DQU1FUkFfT1BfU0VUX0NPTkZJRzoKPj4g KyAqICAgICAgICAgMCAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAg ICAgICAgMyAgICAgICAgb2N0ZXQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAg ICAgICAgIGlkICAgICAgICAgICAgICAgIHwgX09QX1NFVF9DT05GSUcgfCAgICByZXNlcnZlZCAg ICB8IDQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdGF0dXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDgKPj4gKyAqICst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXhlbCBmb3Jt YXQgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEyCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4g KyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGggICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAxNgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgMjAKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAg ICAgZnJhbWVfcmF0ZV9udW1lciAgICAgICAgICAgICAgICAgICAgICAgICB8IDI0Cj4+ICsgKiAr LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lX3JhdGVf ZGVub20gICAgICAgICAgICAgICAgICAgICAgICAgfCAyOAo+PiArICogKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ ICsgKiB8ICAgIG51bV9idWZzICAgIHwgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAg ICAgICAgICAgICAgICAgIHwgMzIKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDM2Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvfAo+PiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiAr ICoKPj4gKyAqIE1lYW5pbmcgb2YgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWVzIGluIHRoaXMgcmVz cG9uc2UgaXMgdGhlIHNhbWUgYXMgZm9yCj4+ICsgKiBYRU5DQU1FUkFfT1BfU0VUX0NPTkZJRyBy ZXF1ZXN0Lgo+PiArICoKPj4gKyAqCj4+ICsgKiBSZXF1ZXN0IGJ1ZmZlciBkZXRhaWxzIHJlc3Bv bnNlIC0gcmVzcG9uc2UgZm9yIFhFTkNBTUVSQV9PUF9HRVRfQlVGX0RFVEFJTFMKPj4gKyAqIHJl cXVlc3Q6Cj4+ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAg MiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAq IHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8X0dFVF9CVUZfREVUQUlMU3wgICAg cmVzZXJ2ZWQgICAgfCA0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RhdHVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4 Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNpemUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMgo+PiArICogKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rCj4+ICsgKiB8ICAgbnVtX3BsYW5lcyAgIHwgICAgICAgICAgICAgICAgICAgICByZXNl cnZlZCAgICAgICAgICAgICAgICAgICAgIHwgMTYKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICog fCAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhbmVfb2Zmc2V0WzBdICAgICAgICAgICAgICAg ICAgICAgICAgICB8IDIwCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAg ICAgICAgICAgICAgIHBsYW5lX29mZnNldFsxXSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAy NAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICBw bGFuZV9vZmZzZXRbMl0gICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjgKPj4gKyAqICstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhbmVfb2Zmc2V0WzNd ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMyCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAq IHwgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFuZV9zaXplWzBdICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAzNgo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGxhbmVfc2l6ZVsxXSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg NDAKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAg IHBsYW5lX3NpemVbMl0gICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQ0Cj4+ICsgKiArLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFuZV9zaXplWzNd ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA0OAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsg KiB8ICAgICAgICAgcGxhbmVfc3RyaWRlWzBdICAgICAgICAgfCAgICAgICAgIHBsYW5lX3N0cmlk ZVsxXSAgICAgICAgIHwgNTIKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgIHBs YW5lX3N0cmlkZVsyXSAgICAgICAgIHwgICAgICAgICBwbGFuZV9zdHJpZGVbM10gICAgICAgICB8 IDU2Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA2MAo+PiArICogKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjQKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiAr ICoKPj4gKyAqIHNpemUgLSB1aW50MzJfdCwgb3ZlcmFsbCBzaXplIG9mIHRoZSBidWZmZXIgaW5j bHVkaW5nIHNpemVzIG9mIHRoZQo+PiArICogICBpbmRpdmlkdWFsIHBsYW5lcyBhbmQgcGFkZGlu ZyBpZiBhcHBsaWNhYmxlLgo+PiArICogbnVtX3BsYW5lcyAtIHVpbnQ4X3QsIG51bWJlciBvZiBw bGFuZXMgZm9yIHRoaXMgYnVmZmVyLgo+PiArICogcGxhbmVfb2Zmc2V0IC0gYXJyYXkgb2YgdWlu dDMyX3QsIG9mZnNldCBvZiB0aGUgY29ycmVzcG9uZGluZyBwbGFuZQo+PiArICogICBpbiBvY3Rl dHMgZnJvbSB0aGUgYnVmZmVyIHN0YXJ0Lgo+PiArICogcGxhbmVfc2l6ZSAtIGFycmF5IG9mIHVp bnQzMl90LCBzaXplIGluIG9jdGV0cyBvZiB0aGUgY29ycmVzcG9uZGluZyBwbGFuZQo+PiArICog ICBpbmNsdWRpbmcgcGFkZGluZy4KPj4gKyAqIHBsYW5lX3N0cmlkZSAtIGFycmF5IG9mIHVpbnQz Ml90LCBzaXplIGluIG9jdGV0cyBvY2N1cGllZCBieSB0aGUKPj4gKyAqICAgY29ycmVzcG9uZGlu ZyBzaW5nbGUgaW1hZ2UgbGluZSBpbmNsdWRpbmcgcGFkZGluZyBpZiBhcHBsaWNhYmxlLgo+IE5p Y2UhClRoYW5rIHlvdQo+PiArICovCj4+ICtzdHJ1Y3QgeGVuY2FtZXJhX2J1Zl9kZXRhaWxzX3Jl c3Agewo+PiArICAgIHVpbnQzMl90IHNpemU7Cj4+ICsgICAgdWludDhfdCBudW1fcGxhbmVzOwo+ PiArICAgIHVpbnQ4X3QgcmVzZXJ2ZWRbM107Cj4+ICsgICAgdWludDMyX3QgcGxhbmVfb2Zmc2V0 W1hFTkNBTUVSQV9NQVhfUExBTkVdOwo+PiArICAgIHVpbnQzMl90IHBsYW5lX3NpemVbWEVOQ0FN RVJBX01BWF9QTEFORV07Cj4+ICsgICAgdWludDE2X3QgcGxhbmVfc3RyaWRlW1hFTkNBTUVSQV9N QVhfUExBTkVdOwo+PiArfTsKPj4gKwo+PiArLyoKPj4gKyAqIEdldCBjb250cm9sIGRldGFpbHMg cmVzcG9uc2UgLSByZXNwb25zZSBmb3IgWEVOQ0FNRVJBX09QX0dFVF9DVFJMX0RFVEFJTFM6Cj4+ ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAgICAgMiAgICAgICAg ICAgICAgIDMgICAgICAgIG9jdGV0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAg ICAgICAgICBpZCAgICAgICAgICAgICAgICB8R0VUX0NUUkxfREVUQUlMU3wgICAgcmVzZXJ2ZWQg ICAgfCA0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RhdHVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA4Cj4+ICsgKiAr LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgIGluZGV4ICAgICAgfCAgICAgIHR5cGUgICAgICB8ICAg ICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgfCAxMgo+PiArICogKy0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgMTYKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbWF4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDIwCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0ZXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyNAo+PiArICog Ky0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmX3Zh bCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjgKPj4gKyAqICstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+ PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IDM2Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9c L1wvfAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjQKPj4gKyAqICst LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKwo+PiArICoKPj4gKyAqIGluZGV4IC0gdWludDhfdCwgaW5kZXggb2YgdGhlIGNh bWVyYSBjb250cm9sIGluIHJlc3BvbnNlLgo+PiArICogdHlwZSAtIHVpbnQ4X3QsIHR5cGUgb2Yg dGhlIGNvbnRyb2wsIG9uZSBvZiB0aGUgWEVOQ0FNRVJBX0NUUkxfWFhYLgo+PiArICogbWluIC0g aW50MzJfdCwgbWluaW11bSB2YWx1ZSBvZiB0aGUgY29udHJvbC4KPj4gKyAqIG1heCAtIGludDMy X3QsIG1heGltdW0gdmFsdWUgb2YgdGhlIGNvbnRyb2wuCj4+ICsgKiBzdGVwIC0gaW50MzJfdCwg bWluaW11bSBzaXplIGluIHdoaWNoIGNvbnRyb2wgdmFsdWUgY2FuIGJlIGNoYW5nZWQuCj4+ICsg KiBkZWZfdmFsIC0gaW50MzJfdCwgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgY29udHJvbC4KPiBJJ2Qg Z28gd2l0aCA2NCBiaXQgdmFsdWVzIGZvciBtaW4vbWF4L3N0ZXAvZGVmX3ZhbC4KU3VyZSwgZ29v ZCBpZGVhLCB0aGFuayB5b3UKPgo+IEkgd291bGQgYWxzbyBhZGQgYSBmbGFncyBmaWVsZC4gU29t ZSBjb250cm9scyBhcmUgcmVhZC1vbmx5LCB3cml0ZS1vbmx5Cj4gb3Igdm9sYXRpbGUsIHRoaW5n cyB1c2Vyc3BhY2UgbmVlZHMgdG8ga25vdy4KVGhlbiBJJ2xsIGFsc28gYWRkIG51bWVyaWNhbCBj b25zdGFudHMgZm9yIHN1Y2gKPgo+IElmIHlvdSB3YW50IHRvIHN1cHBvcnQgbWVudSBjb250cm9s cywgdGhlbiB5b3UgbmVlZCBhIHdheSB0byBnZXQgdGhlIG1lbnUKPiBuYW1lcyBhcyB3ZWxsIChW SURJT0NfUVVFUllNRU5VKS4KPgo+IE5vbmUgb2YgdGhpcyBpcyBuZWVkZWQgZm9yIHRoaXMgaW5p dGlhbCB1c2UtY2FzZSwgYnV0IHlvdSBuZWVkIHRvIHRoaW5rCj4gYWJvdXQgdGhpcyB1cC1mcm9u dC4KWWVzLCB0aGFuayB5b3UKPj4gKyAqLwo+PiArc3RydWN0IHhlbmNhbWVyYV9nZXRfY3RybF9k ZXRhaWxzX3Jlc3Agewo+PiArICAgIHVpbnQ4X3QgaW5kZXg7Cj4+ICsgICAgdWludDhfdCB0eXBl Owo+PiArICAgIHVpbnQ4X3QgcmVzZXJ2ZWRbMl07Cj4+ICsgICAgaW50MzJfdCBtaW47Cj4+ICsg ICAgaW50MzJfdCBtYXg7Cj4+ICsgICAgaW50MzJfdCBzdGVwOwo+PiArICAgIGludDMyX3QgZGVm X3ZhbDsKPj4gK307Cj4+ICsKPj4gKy8qCj4+ICsgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tIEV2ZW50cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ICsg Kgo+PiArICogRXZlbnRzIGFyZSBzZW50IHZpYSBhIHNoYXJlZCBwYWdlIGFsbG9jYXRlZCBieSB0 aGUgZnJvbnQgYW5kIHByb3BhZ2F0ZWQgYnkKPj4gKyAqICAgZXZ0LWV2ZW50LWNoYW5uZWwvZXZ0 LXJpbmctcmVmIFhlblN0b3JlIGVudHJpZXMuCj4+ICsgKgo+PiArICogQWxsIGV2ZW50IHBhY2tl dHMgaGF2ZSB0aGUgc2FtZSBsZW5ndGggKDY0IG9jdGV0cykuCj4+ICsgKiBBbGwgZXZlbnQgcGFj a2V0cyBoYXZlIGNvbW1vbiBoZWFkZXI6Cj4+ICsgKiAgICAgICAgIDAgICAgICAgICAgICAgICAg MSAgICAgICAgICAgICAgICAgMiAgICAgICAgICAgICAgIDMgICAgICAgIG9jdGV0Cj4+ICsgKiAr LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICBpZCAgICAgICAgICAgICAgICB8ICAg ICAgdHlwZSAgICAgIHwgICByZXNlcnZlZCAgICAgfCA0Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4g KyAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCA4Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqCj4+ICsgKiBpZCAt IHVpbnQxNl90LCBldmVudCBpZCwgbWF5IGJlIHVzZWQgYnkgZnJvbnQuCj4+ICsgKiB0eXBlIC0g dWludDhfdCwgdHlwZSBvZiB0aGUgZXZlbnQuCj4+ICsgKgo+PiArICoKPj4gKyAqIEZyYW1lIGNh cHR1cmVkIGV2ZW50IC0gZXZlbnQgZnJvbSBiYWNrIHRvIGZyb250IHdoZW4gYSBuZXcgY2FwdHVy ZWQKPj4gKyAqIGZyYW1lIGlzIGF2YWlsYWJsZToKPj4gKyAqICAgICAgICAgMCAgICAgICAgICAg ICAgICAxICAgICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgMyAgICAgICAgb2N0ZXQKPj4g KyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAgICAgICAgICAgIGlkICAgICAgICAgICAgICAg IHxfRVZUX0ZSQU1FX0FWQUlMfCAgIHJlc2VydmVkICAgICB8IDQKPj4gKyAqICstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Kwo+PiArICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IDgKPj4gKyAqICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKwo+PiArICogfCAgICAg IGluZGV4ICAgICB8ICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAg ICAgICB8IDEyCj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1c2VkX3N6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNgo+PiAr ICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rCj4+ICsgKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz ZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjAKPj4gKyAqICstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Kwo+PiArICogfC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wvXC9cL1wv XC9cL1wvXC9cL1wvXC9cL1wvXC98Cj4+ICsgKiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKPj4gKyAqIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCA2NAo+PiArICogKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCj4+ICsgKgo+PiArICogaW5kZXggLSB1aW50OF90 LCBpbmRleCBvZiB0aGUgYnVmZmVyIHRoYXQgY29udGFpbnMgbmV3IGNhcHR1cmVkIGZyYW1lLgo+ PiArICogdXNlZF9zeiAtIHVpbnQzMl90LCBudW1iZXIgb2Ygb2N0ZXRzIHRoaXMgZnJhbWUgaGFz LiBUaGlzIGNhbiBiZSBsZXNzCj4+ICsgKiB0aGFuIHRoZSBYRU5DQU1FUkFfT1BfR0VUX0JVRl9E RVRBSUxTLnNpemUgZm9yIGNvbXByZXNzZWQgZm9ybWF0cy4KPj4gKyAqLwo+PiArc3RydWN0IHhl bmNhbWVyYV9mcmFtZV9hdmFpbF9ldnQgewo+PiArICAgIHVpbnQ4X3QgaW5kZXg7Cj4+ICsgICAg dWludDhfdCByZXNlcnZlZFszXTsKPj4gKyAgICB1aW50MzJfdCB1c2VkX3N6Owo+PiArfTsKPj4g Kwo+PiArc3RydWN0IHhlbmNhbWVyYV9yZXEgewo+PiArICAgIHVpbnQxNl90IGlkOwo+PiArICAg IHVpbnQ4X3Qgb3BlcmF0aW9uOwo+PiArICAgIHVpbnQ4X3QgcmVzZXJ2ZWRbNV07Cj4+ICsgICAg dW5pb24gewo+PiArICAgICAgICBzdHJ1Y3QgeGVuY2FtZXJhX2NvbmZpZyBjb25maWc7Cj4+ICsg ICAgICAgIHN0cnVjdCB4ZW5jYW1lcmFfYnVmX2NyZWF0ZV9yZXEgYnVmX2NyZWF0ZTsKPj4gKwlz dHJ1Y3QgeGVuY2FtZXJhX2J1Zl9kZXN0cm95X3JlcSBidWZfZGVzdHJveTsKPj4gKwlzdHJ1Y3Qg eGVuY2FtZXJhX3NldF9jdHJsX3JlcSBzZXRfY3RybDsKPj4gKyAgICAgICAgdWludDhfdCByZXNl cnZlZFs1Nl07Cj4+ICsgICAgfSByZXE7Cj4+ICt9Owo+PiArCj4+ICtzdHJ1Y3QgeGVuY2FtZXJh X3Jlc3Agewo+PiArICAgIHVpbnQxNl90IGlkOwo+PiArICAgIHVpbnQ4X3Qgb3BlcmF0aW9uOwo+ PiArICAgIHVpbnQ4X3QgcmVzZXJ2ZWQ7Cj4+ICsgICAgaW50MzJfdCBzdGF0dXM7Cj4+ICsgICAg dW5pb24gewo+PiArICAgICAgICBzdHJ1Y3QgeGVuY2FtZXJhX2NvbmZpZyBjb25maWc7Cj4+ICsg ICAgICAgIHN0cnVjdCB4ZW5jYW1lcmFfYnVmX2RldGFpbHNfcmVzcCBidWZfZGV0YWlsczsKPj4g KwlzdHJ1Y3QgeGVuY2FtZXJhX2dldF9jdHJsX2RldGFpbHNfcmVzcCBjdHJsX2RldGFpbHM7Cj4+ ICsgICAgICAgIHVpbnQ4X3QgcmVzZXJ2ZWQxWzU2XTsKPj4gKyAgICB9IHJlc3A7Cj4+ICt9Owo+ PiArCj4+ICtzdHJ1Y3QgeGVuY2FtZXJhX2V2dCB7Cj4+ICsgICAgdWludDE2X3QgaWQ7Cj4+ICsg ICAgdWludDhfdCB0eXBlOwo+PiArICAgIHVpbnQ4X3QgcmVzZXJ2ZWRbNV07Cj4+ICsgICAgdW5p b24gewo+PiArICAgICAgICBzdHJ1Y3QgeGVuY2FtZXJhX2ZyYW1lX2F2YWlsX2V2dCBmcmFtZV9h dmFpbDsKPj4gKyAgICAgICAgdWludDhfdCByZXNlcnZlZFs1Nl07Cj4+ICsgICAgfSBldnQ7Cj4+ ICt9Owo+PiArCj4+ICtERUZJTkVfUklOR19UWVBFUyh4ZW5fY2FtZXJhaWYsIHN0cnVjdCB4ZW5j YW1lcmFfcmVxLCBzdHJ1Y3QgeGVuY2FtZXJhX3Jlc3ApOwo+PiArCj4+ICsvKgo+PiArICoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgo+PiArICogICAgICAgICAgICAgICAgICAgICAgICBCYWNrIHRvIGZy b250IGV2ZW50cyBkZWxpdmVyeQo+PiArICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo+PiArICogSW4g b3JkZXIgdG8gZGVsaXZlciBhc3luY2hyb25vdXMgZXZlbnRzIGZyb20gYmFjayB0byBmcm9udCBh IHNoYXJlZCBwYWdlIGlzCj4+ICsgKiBhbGxvY2F0ZWQgYnkgZnJvbnQgYW5kIGl0cyBncmFudGVk IHJlZmVyZW5jZSBwcm9wYWdhdGVkIHRvIGJhY2sgdmlhCj4+ICsgKiBYZW5TdG9yZSBlbnRyaWVz IChldnQtcmluZy1yZWYvZXZ0LWV2ZW50LWNoYW5uZWwpLgo+PiArICogVGhpcyBwYWdlIGhhcyBh IGNvbW1vbiBoZWFkZXIgdXNlZCBieSBib3RoIGZyb250IGFuZCBiYWNrIHRvIHN5bmNocm9uaXpl Cj4+ICsgKiBhY2Nlc3MgYW5kIGNvbnRyb2wgZXZlbnQncyByaW5nIGJ1ZmZlciwgd2hpbGUgYmFj ayBiZWluZyBhIHByb2R1Y2VyIG9mIHRoZQo+PiArICogZXZlbnRzIGFuZCBmcm9udCBiZWluZyBh IGNvbnN1bWVyLiBUaGUgcmVzdCBvZiB0aGUgcGFnZSBhZnRlciB0aGUgaGVhZGVyCj4+ICsgKiBp cyB1c2VkIGZvciBldmVudCBwYWNrZXRzLgo+PiArICoKPj4gKyAqIFVwb24gcmVjZXB0aW9uIG9m IGFuIGV2ZW50KHMpIGZyb250IG1heSBjb25maXJtIGl0cyByZWNlcHRpb24KPj4gKyAqIGZvciBl aXRoZXIgZWFjaCBldmVudCwgZ3JvdXAgb2YgZXZlbnRzIG9yIG5vbmUuCj4+ICsgKi8KPj4gKwo+ PiArc3RydWN0IHhlbmNhbWVyYV9ldmVudF9wYWdlIHsKPj4gKyAgICB1aW50MzJfdCBpbl9jb25z Owo+PiArICAgIHVpbnQzMl90IGluX3Byb2Q7Cj4+ICsgICAgdWludDhfdCByZXNlcnZlZFs1Nl07 Cj4+ICt9Owo+PiArCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9FVkVOVF9QQUdFX1NJWkUgNDA5Ngo+ PiArI2RlZmluZSBYRU5DQU1FUkFfSU5fUklOR19PRkZTIChzaXplb2Yoc3RydWN0IHhlbmNhbWVy YV9ldmVudF9wYWdlKSkKPj4gKyNkZWZpbmUgWEVOQ0FNRVJBX0lOX1JJTkdfU0laRSAoWEVOQ0FN RVJBX0VWRU5UX1BBR0VfU0laRSAtIFhFTkNBTUVSQV9JTl9SSU5HX09GRlMpCj4+ICsjZGVmaW5l IFhFTkNBTUVSQV9JTl9SSU5HX0xFTiAoWEVOQ0FNRVJBX0lOX1JJTkdfU0laRSAvIHNpemVvZihz dHJ1Y3QgeGVuY2FtZXJhX2V2dCkpCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9JTl9SSU5HKHBhZ2Up IFwKPj4gKwkoKHN0cnVjdCB4ZW5jYW1lcmFfZXZ0ICopKChjaGFyICopKHBhZ2UpICsgWEVOQ0FN RVJBX0lOX1JJTkdfT0ZGUykpCj4+ICsjZGVmaW5lIFhFTkNBTUVSQV9JTl9SSU5HX1JFRihwYWdl LCBpZHgpIFwKPj4gKwkoWEVOQ0FNRVJBX0lOX1JJTkcoKHBhZ2UpKVsoaWR4KSAlIFhFTkNBTUVS QV9JTl9SSU5HX0xFTl0pCj4+ICsKPj4gKyNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfSU9fQ0FNRVJB SUZfSF9fICovCj4+ICsKPj4gKy8qCj4+ICsgKiBMb2NhbCB2YXJpYWJsZXM6Cj4+ICsgKiBtb2Rl OiBDCj4+ICsgKiBjLWZpbGUtc3R5bGU6ICJCU0QiCj4+ICsgKiBjLWJhc2ljLW9mZnNldDogNAo+ PiArICogdGFiLXdpZHRoOiA0Cj4+ICsgKiBpbmRlbnQtdGFicy1tb2RlOiBuaWwKPj4gKyAqIEVu ZDoKPj4gKyAqLwo+Pgo+IEkgdGhpbmsgdGhlIG1vc3QgaW1wb3J0YW50IGRlY2lzaW9uIHRvIG1h a2UgaGVyZSBpcyB3aGV0aGVyIG9yIG5vdCB5b3Ugd2FudCB0byBzdXBwb3J0Cj4gaG90cGx1Z2dh YmxlIHNvdXJjZXMgbGlrZSBIRE1JLiBBbmQgYW4gYWRkaXRpb25hbCBjb21wbGljYXRpb24gd2l0 aCB0aGF0IGlzIEhEQ1AuCj4gV2hpbGUgVjRMMiBkb2Vzbid0IGhhdmUgYW4gQVBJIGZvciBIRENQ IGF0IHRoZSBtb21lbnQsIENpc2NvIGlzIHdvcmtpbmcgb24gdGhpcyBhbmQKPiBhIHBhdGNoIHNl cmllcyBhZGRpbmcgdGhpcyBpcyBleHBlY3RlZCBsYXRlciB0aGlzIHllYXIvZWFybHkgbmV4dCB5 ZWFyLiBJdCBtaWdodCBub3QKPiBiZSBhbiBpc3N1ZSBpbiBwcmFjdGljZSBpZiB0aGVzZSBhcmUg YWxsIGNsb3NlZCBzeXN0ZW1zLCBidXQgbmV2ZXJ0aGVsZXNzLCBpdCBpcwo+IHNvbWV0aGluZyB0 byB0aGluayBhYm91dC4KWWVzLCB0aGFuayB5b3UgZm9yIHJhaXNpbmcgdGhlc2UgcXVlc3Rpb25z LCBpdCBpcyB3b3J0aCB0aGlua2luZwphYm91dCBzdWNoIHVzZS1jYXNlcy4KPgo+IFJlZ2FyZHMs Cj4KPiAJSGFucwpUaGFuayB5b3Ugc28gbXVjaCBmb3IgdGhlIGNvbW1lbnRzLApPbGVrc2FuZHIK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlz dHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=