From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v2 15/23] drm/i915/dsc: Define & Compute VESA DSC params Date: Wed, 5 Sep 2018 13:33:35 -0700 Message-ID: <20180905203335.GE4186@intel.com> References: <1533071239-28815-1-git-send-email-manasi.d.navare@intel.com> <1533071239-28815-16-git-send-email-manasi.d.navare@intel.com> <20180905200445.GD4186@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id D7E3A6E04F for ; Wed, 5 Sep 2018 20:30:46 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180905200445.GD4186@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T25lIG1vcmUgZml4IGJlbG93IHdoaWNoIHdhcyB0aGUgY2F1c2Ugb2YgYWxsIHRoZSBhcnRpZmFj dHMKCk9uIFdlZCwgU2VwIDA1LCAyMDE4IGF0IDAxOjA0OjQ4UE0gLTA3MDAsIE1hbmFzaSBOYXZh cmUgd3JvdGU6Cj4gR2F1cmF2LAo+IAo+IFBsZWFzZSBmaW5kIG15IHJldmlldyBjb21tZW50cyBi ZWxvdy4gQ2F1Z2h0IHRoZW0gd2hlbiBJIHRlc3RlZAo+IHlvdXIgcGF0Y2ggb24gRFNDIHNpbmsu Cj4gCj4gT24gVHVlLCBKdWwgMzEsIDIwMTggYXQgMDI6MDc6MTFQTSAtMDcwMCwgTWFuYXNpIE5h dmFyZSB3cm90ZToKPiA+IEZyb206IEdhdXJhdiBLIFNpbmdoIDxnYXVyYXYuay5zaW5naEBpbnRl bC5jb20+Cj4gPiAKPiA+IFRoaXMgcGF0Y2hlcyBkb2VzIHRoZSBmb2xsb3dpbmc6Cj4gPiAKPiA+ IDEuIFRoaXMgcGF0Y2ggZGVmaW5lcyBhbGwgdGhlIERTQyBwYXJhbWV0ZXJzIGFzIHBlciB0aGUg VkVTQQo+ID4gRFNDIHNwZWNpZmljYXRpb24uIFRoZXNlIGFyZSBzdG9yZWQgaW4gdGhlIGVuY29k ZXIgYW5kIHVzZWQKPiA+IHRvIGNvbXB1dGUgdGhlIFBQUyBwYXJhbWV0ZXJzIHRvIGJlIHNlbnQg dG8gdGhlIFNpbmsuCj4gPiAyLiBDb21wdXRlIGFsbCB0aGUgRFNDIHBhcmFtZXRlcnMgd2hpY2gg YXJlIGRlcml2ZWQgZnJvbSBEU0MKPiA+IHN0YXRlIG9mIGludGVsX2NydGNfc3RhdGUuCj4gPiAz LiBDb21wdXRlIGFsbCBwYXJhbWV0ZXJzIHRoYXQgYXJlIFZFU0EgRFNDIHNwZWNpZmljCj4gPiAK PiA+IFRoaXMgY29tcHV0YXRpb24gaGFwcGVucyBpbiB0aGUgYXRvbWljIGNoZWNrIHBoYXNlIGR1 cmluZwo+ID4gY29tcHV0ZV9jb25maWcoKSB0byB2YWxpZGF0ZSBpZiBkaXNwbGF5IHN0cmVhbSBj b21wcmVzc2lvbgo+ID4gY2FuIGJlIGVuYWJsZWQgZm9yIHRoZSByZXF1ZXN0ZWQgbW9kZS4KPiA+ IAo+ID4gdjUgKEZyb20gTWFuYXNpKToKPiA+ICogQWRkIGxvZ2ljIHRvIGxpbWl0IHRoZSBtYXgg bGluZSBidWYgZGVwdGggZm9yIERTQyAxLjEgdG8gMTMKPiA+IGFzIHBlciBEU0MgMS4xIHNwZWMK PiA+ICogRml4IGRpbSBjaGVja3BhdGNoIHdhcm5pbmdzL2NoZWNrcwo+ID4gCj4gPiB2NCAoRnJv bSBHYXVyYXYpOgo+ID4gKiBSZWJhc2Ugb24gbGF0ZXN0IGRybSB0aXAKPiA+ICogcmVuYW1lIHZh cmlhYmxlIG5hbWUoTWFuYXNpKQo+ID4gKiBQb3B1bGF0ZSBsaW5lYnVmX2RlcHRoIHZhcmlhYmxl KE1hbmFzaSkKPiA+IAo+ID4gdjMgKEZyb20gR2F1cmF2KToKPiA+ICogUmViYXNlIG15IHByZXZp b3VzIHBhdGNoZXMgb24gdG9wIG9mIE1hbmFzaSdzIGxhdGVzdCBwYXRjaAo+ID4gc2VyaWVzCj4g PiAqIFVzaW5nID4+biByYXRoZXIgdGhhbiAvMl5uIChNYW5hc2kpCj4gPiAqIENoYW5nZSB0aGUg Y29tbWl0IG1lc3NhZ2UgdG8gZXhwbGFpbiB3aGF0IHRoZSBwYXRjaCBpcyBkb2luZyhHYXVyYXYp Cj4gPiAKPiA+IEZpeGVkIHJldmlldyBjb21tZW50cyBmcm9tIFZpbGxlOgo+ID4gKiBEb24ndCB1 c2UgbWFjcm8gVFdPU19DT01QTEVNRU5UCj4gPiAqIE1lbnRpb24gaW4gY29tbWVudCBhYm91dCB0 aGUgc291cmNlIG9mIFJDIHBhcmFtcwo+ID4gKiBSZXR1cm4gZGlyZWN0bHkgZnJvbSBjYXNlIHN0 YXRlbWVudHMKPiA+ICogVXNpbmcgc2luZ2xlIGFzc3NpZ25tZW50IGZvciBhc3NpZ25pbmcgcmNf cmFuZ2VfcGFyYW1zCj4gPiAqIFVzaW5nIDw8biByYXRoZXIgdGhhbiAqMl5uIGFuZCByZW1vdmlu ZyB0aGUgY29tbWVudHMKPiA+IGFib3V0IHRoZSBmaXhlZCBwb2ludCBudW1iZXJzCj4gPiAKPiA+ IHYyIChGcm9tIE1hbmFzaSk6Cj4gPiAqIFVwZGF0ZSBsb2dpYyBmb3IgbWlub3IgdmVyc2lvbiB0 byBjb25zaWRlciB0aGUgZHBjZCB2YWx1ZQo+ID4gYW5kIHdoYXQgc3VwcG9ydGVkIGJ5IHRoZSBI VyBwbGF0Zm9ybQo+ID4gKiBVc2UgRFJNIERTQyBjb25maWcgc3RydWN0IGluc3RlYWQgb2YgaW50 ZWxfZHAgc3RydWN0Cj4gPiAqIE1vdmUgdGhlIERTQyBjb25zdGFudHMgdG8gRFJNIERTQyBoZWFk ZXIgZmlsZQo+ID4gKiBVc2UgdTE2LCB1OCB3aGVyZSBiaWdnZXIgZGF0YSB0eXBlcyBub3QgbmVl ZGVkCj4gPiAqICogQ29tcHV0ZSB0aGUgRFNDIHBhcmFtZXRlcnMgYXMgcGFydCBvZiBEU0MgY29t cHV0ZSBjb25maWcKPiA+IHNpbmNlIHRoZSBjb21wdXRhdGlvbiBjYW4gZmFpbCAoTWFuYXNpKQo+ ID4gCj4gPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ IENjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IENj OiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+Cj4gPiBDYzogR2F1 cmF2IEsgU2luZ2ggPGdhdXJhdi5rLnNpbmdoQGludGVsLmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6 IEdhdXJhdiBLIFNpbmdoIDxnYXVyYXYuay5zaW5naEBpbnRlbC5jb20+Cj4gPiBTaWduZWQtb2Zm LWJ5OiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgo+ID4gLS0tCj4g PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgICAgIHwgICAzICstCj4gPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgIHwgICA3ICsKPiA+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaCAgfCAgIDQgKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3Zkc2MuYyB8IDQ1NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4g IGluY2x1ZGUvZHJtL2RybV9kcF9oZWxwZXIuaCAgICAgICB8ICAgMyArCj4gPiAgaW5jbHVkZS9k cm0vZHJtX2RzYy5oICAgICAgICAgICAgIHwgICAyICstCj4gPiAgNiBmaWxlcyBjaGFuZ2VkLCA0 NzIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdmRzYy5jCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2Vm aWxlCj4gPiBpbmRleCA1Nzk0ZjEwLi5kZWFmMmQ0IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvTWFrZWZpbGUKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2Vm aWxlCj4gPiBAQCAtMTUzLDcgKzE1Myw4IEBAIGk5MTUteSArPSBkdm9fY2g3MDE3Lm8gXAo+ID4g IAkgIGludGVsX3Nkdm8ubyBcCj4gPiAgCSAgaW50ZWxfdHYubyBcCj4gPiAgCSAgdmx2X2RzaS5v IFwKPiA+IC0JICB2bHZfZHNpX3BsbC5vCj4gPiArCSAgdmx2X2RzaV9wbGwubyBcCj4gPiArCSAg aW50ZWxfdmRzYy5vCj4gPiAgCj4gPiAgIyBQb3N0LW1vcnRlbSBkZWJ1ZyBhbmQgR1BVIGhhbmcg c3RhdGUgY2FwdHVyZQo+ID4gIGk5MTUtJChDT05GSUdfRFJNX0k5MTVfQ0FQVFVSRV9FUlJPUikg Kz0gaTkxNV9ncHVfZXJyb3Iubwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBpbmRleCA3 MTMyZjUyLi5kYzBhM2MyIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHAuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gQEAg LTIwNDIsNiArMjA0MiwxMyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9kcF9kc2NfY29tcHV0ZV9jb25m aWcoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ICAJCQlyZXR1cm4gZmFsc2U7Cj4gPiAg CQl9Cj4gPiAgCX0KPiA+ICsJaWYgKGludGVsX2RwX2NvbXB1dGVfZHNjX3BhcmFtcyhpbnRlbF9k cCwgcGlwZV9jb25maWcpIDwgMCkgewo+ID4gKwkJRFJNX0VSUk9SKCJDYW5ub3QgY29tcHV0ZSB2 YWxpZCBEU0MgcGFyYW1ldGVycyBmb3IgSW5wdXQgQnBwID0gJWQiCj4gPiArCQkJICAiQ29tcHJl c3NlZCBCUFAgPSAlZFxuIiwKPiA+ICsJCQkgIHBpcGVfY29uZmlnLT5waXBlX2JwcCwKPiA+ICsJ CQkgIHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBwKTsKPiA+ICsJCXJldHVy biBmYWxzZTsKPiA+ICsJfQo+ID4gIAlwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5jb21wcmVzc2lv bl9lbmFibGUgPSB0cnVlOwo+ID4gIAlEUk1fREVCVUdfS01TKCJEUCBEU0MgY29tcHV0ZWQgd2l0 aCBJbnB1dCBCcHAgPSAlZCAiCj4gPiAgCQkgICAgICAiQ29tcHJlc3NlZCBCcHAgPSAlZCBTbGlj ZSBDb3VudCA9ICVkXG4iLAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IGluZGV4IGI3 YzI2NTIuLjMzY2M3NzcgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IEBA IC0xNzQ5LDYgKzE3NDksMTAgQEAgdWludDE2X3QgaW50ZWxfZHBfZHNjX2dldF9vdXRwdXRfYnBw KGludCBsaW5rX2Nsb2NrLCB1aW50OF90IGxhbmVfY291bnQsCj4gPiAgdWludDhfdCBpbnRlbF9k cF9kc2NfZ2V0X3NsaWNlX2NvdW50KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludCBtb2Rl X2Nsb2NrLAo+ID4gIAkJCQkgICAgIGludCBtb2RlX2hkaXNwbGF5KTsKPiA+ICAKPiA+ICsvKiBp bnRlbF92ZHNjLmMgKi8KPiA+ICtpbnQgaW50ZWxfZHBfY29tcHV0ZV9kc2NfcGFyYW1zKHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiArCQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpw aXBlX2NvbmZpZyk7Cj4gPiArCj4gPiAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgaW50ZWxf ZHBfdW51c2VkX2xhbmVfbWFzayhpbnQgbGFuZV9jb3VudCkKPiA+ICB7Cj4gPiAgCXJldHVybiB+ KCgxIDw8IGxhbmVfY291bnQpIC0gMSkgJiAweGY7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfdmRzYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdmRz Yy5jCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4gaW5kZXggMDAwMDAwMC4uZWNkMjcwYwo+ ID4gLS0tIC9kZXYvbnVsbAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdmRz Yy5jCj4gPiBAQCAtMCwwICsxLDQ1NSBAQAo+ID4gKy8qCj4gPiArICogQ29weXJpZ2h0IMKpIDIw MTggSW50ZWwgQ29ycG9yYXRpb24KPiA+ICsgKgo+ID4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5 IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCj4gPiAr ICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls ZXMgKHRoZSAiU29mdHdhcmUiKSwKPiA+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRo b3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCj4gPiArICogdGhl IHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUs IHN1YmxpY2Vuc2UsCj4gPiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwg YW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCj4gPiArICogU29mdHdhcmUgaXMgZnVy bmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiA+ ICsgKgo+ID4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np b24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKPiA+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJl IGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCj4g PiArICogU29mdHdhcmUuCj4gPiArICoKPiA+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQg IkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ID4gKyAq IElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Yg TUVSQ0hBTlRBQklMSVRZLAo+ID4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF IEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAo+ID4gKyAqIFRIRSBBVVRI T1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VT IE9SIE9USEVSCj4gPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05U UkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPiA+ICsgKiBGUk9NLCBPVVQgT0YgT1Ig SU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCj4gPiAr ICogREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+ID4gKyAqCj4gPiArICogQXV0aG9yOiBHYXVy YXYgSyBTaW5naCA8Z2F1cmF2Lmsuc2luZ2hAaW50ZWwuY29tPgo+ID4gKyAqICAgICAgICAgTWFu YXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiA+ICsgKi8KPiA+ICsKPiA+ ICsjaW5jbHVkZSA8ZHJtL2RybVAuaD4KPiA+ICsjaW5jbHVkZSA8ZHJtL2k5MTVfZHJtLmg+Cj4g PiArI2luY2x1ZGUgImk5MTVfZHJ2LmgiCj4gPiArI2luY2x1ZGUgImludGVsX2Rydi5oIgo+ID4g Kwo+ID4gK2VudW0gUk9XX0lOREVYX0JQUCB7Cj4gPiArCVJPV19JTkRFWF82QlBQID0gMCwKPiA+ ICsJUk9XX0lOREVYXzhCUFAsCj4gPiArCVJPV19JTkRFWF8xMEJQUCwKPiA+ICsJUk9XX0lOREVY XzEyQlBQLAo+ID4gKwlST1dfSU5ERVhfMTVCUFAsCj4gPiArCU1BWF9ST1dfSU5ERVgKPiA+ICt9 Owo+ID4gKwo+ID4gK2VudW0gQ09MVU1OX0lOREVYX0JQQyB7Cj4gPiArCUNPTFVNTl9JTkRFWF84 QlBDID0gMCwKPiA+ICsJQ09MVU1OX0lOREVYXzEwQlBDLAo+ID4gKwlDT0xVTU5fSU5ERVhfMTJC UEMsCj4gPiArCUNPTFVNTl9JTkRFWF8xNEJQQywKPiA+ICsJQ09MVU1OX0lOREVYXzE2QlBDLAo+ ID4gKwlNQVhfQ09MVU1OX0lOREVYCj4gPiArfTsKPiA+ICsKPiA+ICsjZGVmaW5lIERTQ19TVVBQ T1JURURfVkVSU0lPTl9NSU4JCTEKPiA+ICsKPiA+ICsvKiBGcm9tIERTQ192MS4xMSBzcGVjLCBy Y19wYXJhbWV0ZXJfU2V0IHN5bnRheCBlbGVtZW50IHR5cGljYWxseSBjb25zdGFudCAqLwo+ID4g K3N0YXRpYyB1MTYgcmNfYnVmX3RocmVzaFtdID0gewo+ID4gKwk4OTYsIDE3OTIsIDI2ODgsIDM1 ODQsIDQ0ODAsIDUzNzYsIDYyNzIsIDY3MjAsIDcxNjgsIDc2MTYsCj4gPiArCTc3NDQsIDc4NzIs IDgwMDAsIDgwNjQKPiA+ICt9Owo+ID4gKwo+ID4gK3N0cnVjdCByY19wYXJhbWV0ZXJzIHsKPiA+ ICsJdTE2IGluaXRpYWxfeG1pdF9kZWxheTsKPiA+ICsJdTggZmlyc3RfbGluZV9icGdfb2Zmc2V0 Owo+ID4gKwl1MTYgaW5pdGlhbF9vZmZzZXQ7Cj4gPiArCXU4IGZsYXRuZXNzX21pbl9xcDsKPiA+ ICsJdTggZmxhdG5lc3NfbWF4X3FwOwo+ID4gKwl1OCByY19xdWFudF9pbmNyX2xpbWl0MDsKPiA+ ICsJdTggcmNfcXVhbnRfaW5jcl9saW1pdDE7Cj4gPiArCXN0cnVjdCBkc2NfcmNfcmFuZ2VfcGFy YW1ldGVycyByY19yYW5nZV9wYXJhbXNbRFNDX05VTV9CVUZfUkFOR0VTXTsKPiA+ICt9Owo+ID4g Kwo+ID4gKy8qCj4gPiArICogU2VsZWN0ZWQgUmF0ZSBDb250cm9sIFJlbGF0ZWQgUGFyYW1ldGVy IFJlY29tbWVuZGVkIFZhbHVlcwo+ID4gKyAqIGZyb20gRFNDX3YxLjExIHNwZWMgJiBDIE1vZGVs IHJlbGVhc2U6IERTQ19tb2RlbF8yMDE2MTIxMgo+ID4gKyAqLwo+ID4gK3N0YXRpYyBzdHJ1Y3Qg cmNfcGFyYW1ldGVycyByY19wYXJhbXNbXVtNQVhfQ09MVU1OX0lOREVYXSA9IHsKPiA+ICt7Cj4g PiArCS8qIDZCUFAvOEJQQyAqLwo+ID4gKwl7IDc2OCwgMTUsIDYxNDQsIDMsIDEzLCAxMSwgMTEs IHsKPiA+ICsJCXsgMCwgNCwgMCB9LCB7IDEsIDYsIC0yIH0sIHsgMywgOCwgLTIgfSwgeyA0LCA4 LCAtNCB9LAo+ID4gKwkJeyA1LCA5LCAtNiB9LCB7IDUsIDksIC02IH0sIHsgNiwgOSwgLTYgfSwg eyA2LCAxMCwgLTggfSwKPiA+ICsJCXsgNywgMTEsIC04IH0sIHsgOCwgMTIsIC0xMCB9LCB7IDks IDEyLCAtMTAgfSwgeyAxMCwgMTIsIC0xMiB9LAo+ID4gKwkJeyAxMCwgMTIsIC0xMiB9LCB7IDEx LCAxMiwgLTEyIH0sIHsgMTMsIDE0LCAtMTIgfQo+ID4gKwkJfQo+ID4gKwl9LAo+ID4gKwkvKiA2 QlBQLzEwQlBDICovCj4gPiArCXsgNzY4LCAxNSwgNjE0NCwgNywgMTcsIDE1LCAxNSwgewo+ID4g KwkJeyAwLCA4LCAwIH0sIHsgMywgMTAsIC0yIH0sIHsgNywgMTIsIC0yIH0sIHsgOCwgMTIsIC00 IH0sCj4gPiArCQl7IDksIDEzLCAtNiB9LCB7IDksIDEzLCAtNiB9LCB7IDEwLCAxMywgLTYgfSwg eyAxMCwgMTQsIC04IH0sCj4gPiArCQl7IDExLCAxNSwgLTggfSwgeyAxMiwgMTYsIC0xMCB9LCB7 IDEzLCAxNiwgLTEwIH0sCj4gPiArCQl7IDE0LCAxNiwgLTEyIH0sIHsgMTQsIDE2LCAtMTIgfSwg eyAxNSwgMTYsIC0xMiB9LAo+ID4gKwkJeyAxNywgMTgsIC0xMiB9Cj4gPiArCQl9Cj4gPiArCX0s Cj4gPiArCS8qIDZCUFAvMTJCUEMgKi8KPiA+ICsJeyA3NjgsIDE1LCA2MTQ0LCAxMSwgMjEsIDE5 LCAxOSwgewo+ID4gKwkJeyAwLCAxMiwgMCB9LCB7IDUsIDE0LCAtMiB9LCB7IDExLCAxNiwgLTIg fSwgeyAxMiwgMTYsIC00IH0sCj4gPiArCQl7IDEzLCAxNywgLTYgfSwgeyAxMywgMTcsIC02IH0s IHsgMTQsIDE3LCAtNiB9LCB7IDE0LCAxOCwgLTggfSwKPiA+ICsJCXsgMTUsIDE5LCAtOCB9LCB7 IDE2LCAyMCwgLTEwIH0sIHsgMTcsIDIwLCAtMTAgfSwKPiA+ICsJCXsgMTgsIDIwLCAtMTIgfSwg eyAxOCwgMjAsIC0xMiB9LCB7IDE5LCAyMCwgLTEyIH0sCj4gPiArCQl7IDIxLCAyMiwgLTEyIH0K PiA+ICsJCX0KPiA+ICsJfSwKPiA+ICsJLyogNkJQUC8xNEJQQyAqLwo+ID4gKwl7IDc2OCwgMTUs IDYxNDQsIDE1LCAyNSwgMjMsIDI3LCB7Cj4gPiArCQl7IDAsIDE2LCAwIH0sIHsgNywgMTgsIC0y IH0sIHsgMTUsIDIwLCAtMiB9LCB7IDE2LCAyMCwgLTQgfSwKPiA+ICsJCXsgMTcsIDIxLCAtNiB9 LCB7IDE3LCAyMSwgLTYgfSwgeyAxOCwgMjEsIC02IH0sIHsgMTgsIDIyLCAtOCB9LAo+ID4gKwkJ eyAxOSwgMjMsIC04IH0sIHsgMjAsIDI0LCAtMTAgfSwgeyAyMSwgMjQsIC0xMCB9LAo+ID4gKwkJ eyAyMiwgMjQsIC0xMiB9LCB7IDIyLCAyNCwgLTEyIH0sIHsgMjMsIDI0LCAtMTIgfSwKPiA+ICsJ CXsgMjUsIDI2LCAtMTIgfQo+ID4gKwkJfQo+ID4gKwl9LAo+ID4gKwkvKiA2QlBQLzE2QlBDICov Cj4gPiArCXsgNzY4LCAxNSwgNjE0NCwgMTksIDI5LCAyNywgMjcsIHsKPiA+ICsJCXsgMCwgMjAs IDAgfSwgeyA5LCAyMiwgLTIgfSwgeyAxOSwgMjQsIC0yIH0sIHsgMjAsIDI0LCAtNCB9LAo+ID4g KwkJeyAyMSwgMjUsIC02IH0sIHsgMjEsIDI1LCAtNiB9LCB7IDIyLCAyNSwgLTYgfSwgeyAyMiwg MjYsIC04IH0sCj4gPiArCQl7IDIzLCAyNywgLTggfSwgeyAyNCwgMjgsIC0xMCB9LCB7IDI1LCAy OCwgLTEwIH0sCj4gPiArCQl7IDI2LCAyOCwgLTEyIH0sIHsgMjYsIDI4LCAtMTIgfSwgeyAyNywg MjgsIC0xMiB9LAo+ID4gKwkJeyAyOSwgMzAsIC0xMiB9Cj4gPiArCQl9Cj4gPiArCX0sCj4gPiAr fSwKPiA+ICt7Cj4gPiArCS8qIDhCUFAvOEJQQyAqLwo+ID4gKwl7IDUxMiwgMTIsIDYxNDQsIDMs IDEyLCAxMSwgMTEsIHsKPiA+ICsJCXsgMCwgNCwgMiB9LCB7IDAsIDQsIDAgfSwgeyAxLCA1LCAw IH0sIHsgMSwgNiwgLTIgfSwKPiA+ICsJCXsgMywgNywgLTQgfSwgeyAzLCA3LCAtNiB9LCB7IDMs IDcsIC04IH0sIHsgMywgOCwgLTggfSwKPiA+ICsJCXsgMywgOSwgLTggfSwgeyAzLCAxMCwgLTEw IH0sIHsgNSwgMTEsIC0xMCB9LCB7IDUsIDEyLCAtMTIgfSwKPiA+ICsJCXsgNSwgMTMsIC0xMiB9 LCB7IDcsIDEzLCAtMTIgfSwgeyAxMywgMTUsIC0xMiB9Cj4gPiArCQl9Cj4gPiArCX0sCj4gPiAr CS8qIDhCUFAvMTBCUEMgKi8KPiA+ICsJeyA1MTIsIDEyLCA2MTQ0LCA3LCAxNiwgMTUsIDE1LCB7 Cj4gPiArCQl7IDAsIDQsIDIgfSwgeyA0LCA4LCAwIH0sIHsgNSwgOSwgMCB9LCB7IDUsIDEwLCAt MiB9LAo+ID4gKwkJeyA3LCAxMSwgLTQgfSwgeyA3LCAxMSwgLTYgfSwgeyA3LCAxMSwgLTggfSwg eyA3LCAxMiwgLTggfSwKPiA+ICsJCXsgNywgMTMsIC04IH0sIHsgNywgMTQsIC0xMCB9LCB7IDks IDE1LCAtMTAgfSwgeyA5LCAxNiwgLTEyIH0sCj4gPiArCQl7IDksIDE3LCAtMTIgfSwgeyAxMSwg MTcsIC0xMiB9LCB7IDE3LCAxOSwgLTEyIH0KPiA+ICsJCX0KPiA+ICsJfSwKPiA+ICsJLyogOEJQ UC8xMkJQQyAqLwo+ID4gKwl7IDUxMiwgMTIsIDYxNDQsIDExLCAyMCwgMTksIDE5LCB7Cj4gPiAr CQl7IDAsIDEyLCAyIH0sIHsgNCwgMTIsIDAgfSwgeyA5LCAxMywgMCB9LCB7IDksIDE0LCAtMiB9 LAo+ID4gKwkJeyAxMSwgMTUsIC00IH0sIHsgMTEsIDE1LCAtNiB9LCB7IDExLCAxNSwgLTggfSwg eyAxMSwgMTYsIC04IH0sCj4gPiArCQl7IDExLCAxNywgLTggfSwgeyAxMSwgMTgsIC0xMCB9LCB7 IDEzLCAxOSwgLTEwIH0sCj4gPiArCQl7IDEzLCAyMCwgLTEyIH0sIHsgMTMsIDIxLCAtMTIgfSwg eyAxNSwgMjEsIC0xMiB9LAo+ID4gKwkJeyAyMSwgMjMsIC0xMiB9Cj4gPiArCQl9Cj4gPiArCX0s Cj4gPiArCS8qIDhCUFAvMTRCUEMgKi8KPiA+ICsJeyA1MTIsIDEyLCA2MTQ0LCAxNSwgMjQsIDIz LCAyMywgewo+ID4gKwkJeyAwLCAxMiwgMCB9LCB7IDUsIDEzLCAwIH0sIHsgMTEsIDE1LCAwIH0s IHsgMTIsIDE3LCAtMiB9LAo+ID4gKwkJeyAxNSwgMTksIC00IH0sIHsgMTUsIDE5LCAtNiB9LCB7 IDE1LCAxOSwgLTggfSwgeyAxNSwgMjAsIC04IH0sCj4gPiArCQl7IDE1LCAyMSwgLTggfSwgeyAx NSwgMjIsIC0xMCB9LCB7IDE3LCAyMiwgLTEwIH0sCj4gPiArCQl7IDE3LCAyMywgLTEyIH0sIHsg MTcsIDIzLCAtMTIgfSwgeyAyMSwgMjQsIC0xMiB9LAo+ID4gKwkJeyAyNCwgMjUsIC0xMiB9Cj4g PiArCQl9Cj4gPiArCX0sCj4gPiArCS8qIDhCUFAvMTZCUEMgKi8KPiA+ICsJeyA1MTIsIDEyLCA2 MTQ0LCAxOSwgMjgsIDI3LCAyNywgewo+ID4gKwkJeyAwLCAxMiwgMiB9LCB7IDYsIDE0LCAwIH0s IHsgMTMsIDE3LCAwIH0sIHsgMTUsIDIwLCAtMiB9LAo+ID4gKwkJeyAxOSwgMjMsIC00IH0sIHsg MTksIDIzLCAtNiB9LCB7IDE5LCAyMywgLTggfSwgeyAxOSwgMjQsIC04IH0sCj4gPiArCQl7IDE5 LCAyNSwgLTggfSwgeyAxOSwgMjYsIC0xMCB9LCB7IDIxLCAyNiwgLTEwIH0sCj4gPiArCQl7IDIx LCAyNywgLTEyIH0sIHsgMjEsIDI3LCAtMTIgfSwgeyAyNSwgMjgsIC0xMiB9LAo+ID4gKwkJeyAy OCwgMjksIC0xMiB9Cj4gPiArCQl9Cj4gPiArCX0sCj4gPiArfSwKPiA+ICt7Cj4gPiArCS8qIDEw QlBQLzhCUEMgKi8KPiA+ICsJeyA0MTAsIDE1LCA1NjMyLCAzLCAxMiwgMTEsIDExLCB7Cj4gPiAr CQl7IDAsIDMsIDIgfSwgeyAwLCA0LCAwIH0sIHsgMSwgNSwgMCB9LCB7IDIsIDYsIC0yIH0sCj4g PiArCQl7IDMsIDcsIC00IH0sIHsgMywgNywgLTYgfSwgeyAzLCA3LCAtOCB9LCB7IDMsIDgsIC04 IH0sCj4gPiArCQl7IDMsIDksIC04IH0sIHsgMywgOSwgLTEwIH0sIHsgNSwgMTAsIC0xMCB9LCB7 IDUsIDEwLCAtMTAgfSwKPiA+ICsJCXsgNSwgMTEsIC0xMiB9LCB7IDcsIDExLCAtMTIgfSwgeyAx MSwgMTIsIC0xMiB9Cj4gPiArCQl9Cj4gPiArCX0sCj4gPiArCS8qIDEwQlBQLzEwQlBDICovCj4g PiArCXsgNDEwLCAxNSwgNTYzMiwgNywgMTYsIDE1LCAxNSwgewo+ID4gKwkJeyAwLCA3LCAyIH0s IHsgNCwgOCwgMCB9LCB7IDUsIDksIDAgfSwgeyA2LCAxMCwgLTIgfSwKPiA+ICsJCXsgNywgMTEs IC00IH0sIHsgNywgMTEsIC02IH0sIHsgNywgMTEsIC04IH0sIHsgNywgMTIsIC04IH0sCj4gPiAr CQl7IDcsIDEzLCAtOCB9LCB7IDcsIDEzLCAtMTAgfSwgeyA5LCAxNCwgLTEwIH0sIHsgOSwgMTQs IC0xMCB9LAo+ID4gKwkJeyA5LCAxNSwgLTEyIH0sIHsgMTEsIDE1LCAtMTIgfSwgeyAxNSwgMTYs IC0xMiB9Cj4gPiArCQl9Cj4gPiArCX0sCj4gPiArCS8qIDEwQlBQLzEyQlBDICovCj4gPiArCXsg NDEwLCAxNSwgNTYzMiwgMTEsIDIwLCAxOSwgMTksIHsKPiA+ICsJCXsgMCwgMTEsIDIgfSwgeyA0 LCAxMiwgMCB9LCB7IDksIDEzLCAwIH0sIHsgMTAsIDE0LCAtMiB9LAo+ID4gKwkJeyAxMSwgMTUs IC00IH0sIHsgMTEsIDE1LCAtNiB9LCB7IDExLCAxNSwgLTggfSwgeyAxMSwgMTYsIC04IH0sCj4g PiArCQl7IDExLCAxNywgLTggfSwgeyAxMSwgMTcsIC0xMCB9LCB7IDEzLCAxOCwgLTEwIH0sCj4g PiArCQl7IDEzLCAxOCwgLTEwIH0sIHsgMTMsIDE5LCAtMTIgfSwgeyAxNSwgMTksIC0xMiB9LAo+ ID4gKwkJeyAxOSwgMjAsIC0xMiB9Cj4gPiArCQl9Cj4gPiArCX0sCj4gPiArCS8qIDEwQlBQLzE0 QlBDICovCj4gPiArCXsgNDEwLCAxNSwgNTYzMiwgMTUsIDI0LCAyMywgMjMsIHsKPiA+ICsJCXsg MCwgMTEsIDIgfSwgeyA1LCAxMywgMCB9LCB7IDExLCAxNSwgMCB9LCB7IDEzLCAxOCwgLTIgfSwK PiA+ICsJCXsgMTUsIDE5LCAtNCB9LCB7IDE1LCAxOSwgLTYgfSwgeyAxNSwgMTksIC04IH0sIHsg MTUsIDIwLCAtOCB9LAo+ID4gKwkJeyAxNSwgMjEsIC04IH0sIHsgMTUsIDIxLCAtMTAgfSwgeyAx NywgMjIsIC0xMCB9LAo+ID4gKwkJeyAxNywgMjIsIC0xMCB9LCB7IDE3LCAyMywgLTEyIH0sIHsg MTksIDIzLCAtMTIgfSwKPiA+ICsJCXsgMjMsIDI0LCAtMTIgfQo+ID4gKwkJfQo+ID4gKwl9LAo+ ID4gKwkvKiAxMEJQUC8xNkJQQyAqLwo+ID4gKwl7IDQxMCwgMTUsIDU2MzIsIDE5LCAyOCwgMjcs IDI3LCB7Cj4gPiArCQl7IDAsIDExLCAyIH0sIHsgNiwgMTQsIDAgfSwgeyAxMywgMTcsIDAgfSwg eyAxNiwgMjAsIC0yIH0sCj4gPiArCQl7IDE5LCAyMywgLTQgfSwgeyAxOSwgMjMsIC02IH0sIHsg MTksIDIzLCAtOCB9LCB7IDE5LCAyNCwgLTggfSwKPiA+ICsJCXsgMTksIDI1LCAtOCB9LCB7IDE5 LCAyNSwgLTEwIH0sIHsgMjEsIDI2LCAtMTAgfSwKPiA+ICsJCXsgMjEsIDI2LCAtMTAgfSwgeyAy MSwgMjcsIC0xMiB9LCB7IDIzLCAyNywgLTEyIH0sCj4gPiArCQl7IDI3LCAyOCwgLTEyIH0KPiA+ ICsJCX0KPiA+ICsJfSwKPiA+ICt9LAo+ID4gK3sKPiA+ICsJLyogMTJCUFAvOEJQQyAqLwo+ID4g Kwl7IDM0MSwgMTUsIDIwNDgsIDMsIDEyLCAxMSwgMTEsIHsKPiA+ICsJCXsgMCwgMiwgMiB9LCB7 IDAsIDQsIDAgfSwgeyAxLCA1LCAwIH0sIHsgMSwgNiwgLTIgfSwKPiA+ICsJCXsgMywgNywgLTQg fSwgeyAzLCA3LCAtNiB9LCB7IDMsIDcsIC04IH0sIHsgMywgOCwgLTggfSwKPiA+ICsJCXsgMywg OSwgLTggfSwgeyAzLCAxMCwgLTEwIH0sIHsgNSwgMTEsIC0xMCB9LAo+ID4gKwkJeyA1LCAxMiwg LTEyIH0sIHsgNSwgMTMsIC0xMiB9LCB7IDcsIDEzLCAtMTIgfSwgeyAxMywgMTUsIC0xMiB9Cj4g PiArCQl9Cj4gPiArCX0sCj4gPiArCS8qIDEyQlBQLzEwQlBDICovCj4gPiArCXsgMzQxLCAxNSwg MjA0OCwgNywgMTYsIDE1LCAxNSwgewo+ID4gKwkJeyAwLCAyLCAyIH0sIHsgMiwgNSwgMCB9LCB7 IDMsIDcsIDAgfSwgeyA0LCA4LCAtMiB9LAo+ID4gKwkJeyA2LCA5LCAtNCB9LCB7IDcsIDEwLCAt NiB9LCB7IDcsIDExLCAtOCB9LCB7IDcsIDEyLCAtOCB9LAo+ID4gKwkJeyA3LCAxMywgLTggfSwg eyA3LCAxNCwgLTEwIH0sIHsgOSwgMTUsIC0xMCB9LCB7IDksIDE2LCAtMTIgfSwKPiA+ICsJCXsg OSwgMTcsIC0xMiB9LCB7IDExLCAxNywgLTEyIH0sIHsgMTcsIDE5LCAtMTIgfQo+ID4gKwkJfQo+ ID4gKwl9LAo+ID4gKwkvKiAxMkJQUC8xMkJQQyAqLwo+ID4gKwl7IDM0MSwgMTUsIDIwNDgsIDEx LCAyMCwgMTksIDE5LCB7Cj4gPiArCQl7IDAsIDYsIDIgfSwgeyA0LCA5LCAwIH0sIHsgNywgMTEs IDAgfSwgeyA4LCAxMiwgLTIgfSwKPiA+ICsJCXsgMTAsIDEzLCAtNCB9LCB7IDExLCAxNCwgLTYg fSwgeyAxMSwgMTUsIC04IH0sIHsgMTEsIDE2LCAtOCB9LAo+ID4gKwkJeyAxMSwgMTcsIC04IH0s IHsgMTEsIDE4LCAtMTAgfSwgeyAxMywgMTksIC0xMCB9LAo+ID4gKwkJeyAxMywgMjAsIC0xMiB9 LCB7IDEzLCAyMSwgLTEyIH0sIHsgMTUsIDIxLCAtMTIgfSwKPiA+ICsJCXsgMjEsIDIzLCAtMTIg fQo+ID4gKwkJfQo+ID4gKwl9LAo+ID4gKwkvKiAxMkJQUC8xNEJQQyAqLwo+ID4gKwl7IDM0MSwg MTUsIDIwNDgsIDE1LCAyNCwgMjMsIDIzLCB7Cj4gPiArCQl7IDAsIDYsIDIgfSwgeyA3LCAxMCwg MCB9LCB7IDksIDEzLCAwIH0sIHsgMTEsIDE2LCAtMiB9LAo+ID4gKwkJeyAxNCwgMTcsIC00IH0s IHsgMTUsIDE4LCAtNiB9LCB7IDE1LCAxOSwgLTggfSwgeyAxNSwgMjAsIC04IH0sCj4gPiArCQl7 IDE1LCAyMCwgLTggfSwgeyAxNSwgMjEsIC0xMCB9LCB7IDE3LCAyMSwgLTEwIH0sCj4gPiArCQl7 IDE3LCAyMSwgLTEyIH0sIHsgMTcsIDIxLCAtMTIgfSwgeyAxOSwgMjIsIC0xMiB9LAo+ID4gKwkJ eyAyMiwgMjMsIC0xMiB9Cj4gPiArCQl9Cj4gPiArCX0sCj4gPiArCS8qIDEyQlBQLzE2QlBDICov Cj4gPiArCXsgMzQxLCAxNSwgMjA0OCwgMTksIDI4LCAyNywgMjcsIHsKPiA+ICsJCXsgMCwgNiwg MiB9LCB7IDYsIDExLCAwIH0sIHsgMTEsIDE1LCAwIH0sIHsgMTQsIDE4LCAtMiB9LAo+ID4gKwkJ eyAxOCwgMjEsIC00IH0sIHsgMTksIDIyLCAtNiB9LCB7IDE5LCAyMywgLTggfSwgeyAxOSwgMjQs IC04IH0sCj4gPiArCQl7IDE5LCAyNCwgLTggfSwgeyAxOSwgMjUsIC0xMCB9LCB7IDIxLCAyNSwg LTEwIH0sCj4gPiArCQl7IDIxLCAyNSwgLTEyIH0sIHsgMjEsIDI1LCAtMTIgfSwgeyAyMywgMjYs IC0xMiB9LAo+ID4gKwkJeyAyNiwgMjcsIC0xMiB9Cj4gPiArCQl9Cj4gPiArCX0sCj4gPiArfSwK PiA+ICt7Cj4gPiArCS8qIDE1QlBQLzhCUEMgKi8KPiA+ICsJeyAyNzMsIDE1LCAyMDQ4LCAzLCAx MiwgMTEsIDExLCB7Cj4gPiArCQl7IDAsIDAsIDEwIH0sIHsgMCwgMSwgOCB9LCB7IDAsIDEsIDYg fSwgeyAwLCAyLCA0IH0sCj4gPiArCQl7IDEsIDIsIDIgfSwgeyAxLCAzLCAwIH0sIHsgMSwgMywg LTIgfSwgeyAyLCA0LCAtNCB9LAo+ID4gKwkJeyAyLCA1LCAtNiB9LCB7IDMsIDUsIC04IH0sIHsg NCwgNiwgLTEwIH0sIHsgNCwgNywgLTEwIH0sCj4gPiArCQl7IDUsIDcsIC0xMiB9LCB7IDcsIDgs IC0xMiB9LCB7IDgsIDksIC0xMiB9Cj4gPiArCQl9Cj4gPiArCX0sCj4gPiArCS8qIDE1QlBQLzEw QlBDICovCj4gPiArCXsgMjczLCAxNSwgMjA0OCwgNywgMTYsIDE1LCAxNSwgewo+ID4gKwkJeyAw LCAyLCAxMCB9LCB7IDIsIDUsIDggfSwgeyAzLCA1LCA2IH0sIHsgNCwgNiwgNCB9LAo+ID4gKwkJ eyA1LCA2LCAyIH0sIHsgNSwgNywgMCB9LCB7IDUsIDcsIC0yIH0sIHsgNiwgOCwgLTQgfSwKPiA+ ICsJCXsgNiwgOSwgLTYgfSwgeyA3LCA5LCAtOCB9LCB7IDgsIDEwLCAtMTAgfSwgeyA4LCAxMSwg LTEwIH0sCj4gPiArCQl7IDksIDExLCAtMTIgfSwgeyAxMSwgMTIsIC0xMiB9LCB7IDEyLCAxMywg LTEyIH0KPiA+ICsJCX0KPiA+ICsJfSwKPiA+ICsJLyogMTVCUFAvMTJCUEMgKi8KPiA+ICsJeyAy NzMsIDE1LCAyMDQ4LCAxMSwgMjAsIDE5LCAxOSwgewo+ID4gKwkJeyAwLCA0LCAxMCB9LCB7IDIs IDcsIDggfSwgeyA0LCA5LCA2IH0sIHsgNiwgMTEsIDQgfSwKPiA+ICsJCXsgOSwgMTEsIDIgfSwg eyA5LCAxMSwgMCB9LCB7IDksIDEyLCAtMiB9LCB7IDEwLCAxMiwgLTQgfSwKPiA+ICsJCXsgMTEs IDEzLCAtNiB9LCB7IDExLCAxMywgLTggfSwgeyAxMiwgMTQsIC0xMCB9LAo+ID4gKwkJeyAxMywg MTUsIC0xMCB9LCB7IDEzLCAxNSwgLTEyIH0sIHsgMTUsIDE2LCAtMTIgfSwKPiA+ICsJCXsgMTYs IDE3LCAtMTIgfQo+ID4gKwkJfQo+ID4gKwl9LAo+ID4gKwkvKiAxNUJQUC8xNEJQQyAqLwo+ID4g Kwl7IDI3MywgMTUsIDIwNDgsIDE1LCAyNCwgMjMsIDIzLCB7Cj4gPiArCQl7IDAsIDQsIDEwIH0s IHsgMywgOCwgOCB9LCB7IDYsIDExLCA2IH0sIHsgOSwgMTQsIDQgfSwKPiA+ICsJCXsgMTMsIDE1 LCAyIH0sIHsgMTMsIDE1LCAwIH0sIHsgMTMsIDE2LCAtMiB9LCB7IDE0LCAxNiwgLTQgfSwKPiA+ ICsJCXsgMTUsIDE3LCAtNiB9LCB7IDE1LCAxNywgLTggfSwgeyAxNiwgMTgsIC0xMCB9LAo+ID4g KwkJeyAxNywgMTksIC0xMCB9LCB7IDE3LCAxOSwgLTEyIH0sIHsgMTksIDIwLCAtMTIgfSwKPiA+ ICsJCXsgMjAsIDIxLCAtMTIgfQo+ID4gKwkJfQo+ID4gKwl9LAo+ID4gKwkvKiAxNUJQUC8xNkJQ QyAqLwo+ID4gKwl7IDI3MywgMTUsIDIwNDgsIDE5LCAyOCwgMjcsIDI3LCB7Cj4gPiArCQl7IDAs IDQsIDEwIH0sIHsgNCwgOSwgOCB9LCB7IDgsIDEzLCA2IH0sIHsgMTIsIDE3LCA0IH0sCj4gPiAr CQl7IDE3LCAxOSwgMiB9LCB7IDE3LCAyMCwgMCB9LCB7IDE3LCAyMCwgLTIgfSwgeyAxOCwgMjAs IC00IH0sCj4gPiArCQl7IDE5LCAyMSwgLTYgfSwgeyAxOSwgMjEsIC04IH0sIHsgMjAsIDIyLCAt MTAgfSwKPiA+ICsJCXsgMjEsIDIzLCAtMTAgfSwgeyAyMSwgMjMsIC0xMiB9LCB7IDIzLCAyNCwg LTEyIH0sCj4gPiArCQl7IDI0LCAyNSwgLTEyIH0KPiA+ICsJCX0KPiA+ICsJfQo+ID4gK30KPiA+ ICt9Owo+ID4gKwo+ID4gK3N0YXRpYyBpbnQgZ2V0X3Jvd19pbmRleF9mb3JfcmNfcGFyYW1zKHUx NiBjb21wcmVzc2VkX2JwcCkKPiA+ICt7Cj4gPiArCXN3aXRjaCAoY29tcHJlc3NlZF9icHApIHsK PiA+ICsJY2FzZSA2Ogo+ID4gKwkJcmV0dXJuIFJPV19JTkRFWF82QlBQOwo+ID4gKwljYXNlIDg6 Cj4gPiArCQlyZXR1cm4gUk9XX0lOREVYXzhCUFA7Cj4gPiArCWNhc2UgMTA6Cj4gPiArCQlyZXR1 cm4gUk9XX0lOREVYXzEwQlBQOwo+ID4gKwljYXNlIDEyOgo+ID4gKwkJcmV0dXJuIFJPV19JTkRF WF8xMkJQUDsKPiA+ICsJY2FzZSAxNToKPiA+ICsJCXJldHVybiBST1dfSU5ERVhfMTVCUFA7Cj4g PiArCWRlZmF1bHQ6Cj4gPiArCQlyZXR1cm4gLUVJTlZBTDsKPiA+ICsJfQo+ID4gK30KPiA+ICsK PiA+ICtzdGF0aWMgaW50IGdldF9jb2x1bW5faW5kZXhfZm9yX3JjX3BhcmFtcyh1OCBiaXRzX3Bl cl9jb21wb25lbnQpCj4gPiArewo+ID4gKwlzd2l0Y2ggKGJpdHNfcGVyX2NvbXBvbmVudCkgewo+ ID4gKwljYXNlIDg6Cj4gPiArCQlyZXR1cm4gQ09MVU1OX0lOREVYXzhCUEM7Cj4gPiArCWNhc2Ug MTA6Cj4gPiArCQlyZXR1cm4gQ09MVU1OX0lOREVYXzEwQlBDOwo+ID4gKwljYXNlIDEyOgo+ID4g KwkJcmV0dXJuIENPTFVNTl9JTkRFWF8xMkJQQzsKPiA+ICsJY2FzZSAxNDoKPiA+ICsJCXJldHVy biBDT0xVTU5fSU5ERVhfMTRCUEM7Cj4gPiArCWNhc2UgMTY6Cj4gPiArCQlyZXR1cm4gQ09MVU1O X0lOREVYXzE2QlBDOwo+ID4gKwlkZWZhdWx0Ogo+ID4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gPiAr CX0KPiA+ICt9Cj4gPiArCj4gPiAraW50IGludGVsX2RwX2NvbXB1dGVfZHNjX3BhcmFtcyhzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gKwkJCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUg KnBpcGVfY29uZmlnKQo+ID4gK3sKPiA+ICsJc3RydWN0IGRybV9kc2NfY29uZmlnICp2ZHNjX2Nm ZyA9ICZwaXBlX2NvbmZpZy0+ZHBfZHNjX2NmZzsKPiA+ICsJdTE2IGNvbXByZXNzZWRfYnBwID0g cGlwZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJlc3NlZF9icHA7Cj4gPiArCXU4IGkgPSAwOwo+ ID4gKwl1OCByb3dfaW5kZXggPSAwOwo+ID4gKwl1OCBjb2x1bW5faW5kZXggPSAwOwo+ID4gKwl1 OCBsaW5lX2J1Zl9kZXB0aCA9IDA7Cj4gPiArCj4gPiArCXZkc2NfY2ZnLT5waWNfd2lkdGggPSBw aXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaGRpc3BsYXk7Cj4gPiArCXZkc2Nf Y2ZnLT5waWNfaGVpZ2h0ID0gcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX3Zk aXNwbGF5Owo+ID4gKwl2ZHNjX2NmZy0+c2xpY2Vfd2lkdGggPSBESVZfUk9VTkRfVVAodmRzY19j ZmctPnBpY193aWR0aCwKPiA+ICsJCQkJCSAgICAgcGlwZV9jb25maWctPmRzY19wYXJhbXMuc2xp Y2VfY291bnQpOwo+ID4gKwkvKgo+ID4gKwkgKiBTbGljZSBIZWlnaHQgb2YgOCB3b3JrcyBmb3Ig YWxsIGN1cnJlbnRseSBhdmFpbGFibGUgcGFuZWxzLiBTbyBzdGFydAo+ID4gKwkgKiB3aXRoIHRo YXQgaWYgcGljX2hlaWdodCBpcyBhbiBpbnRlZ3JhbCBtdWx0aXBsZSBvZiA4Lgo+ID4gKwkgKiBF dmVudHVhbGx5IGFkZCBsb2dpYyB0byB0cnkgbXVsdGlwbGUgc2xpY2UgaGVpZ2h0cy4KPiA+ICsJ ICovCj4gPiArCWlmICh2ZHNjX2NmZy0+cGljX2hlaWdodCAlIDggPT0gMCkKPiA+ICsJCXZkc2Nf Y2ZnLT5zbGljZV9oZWlnaHQgPSA4Owo+ID4gKwllbHNlIGlmICh2ZHNjX2NmZy0+cGljX2hlaWdo dCAlIDQgPT0gMCkKPiA+ICsJCXZkc2NfY2ZnLT5zbGljZV9oZWlnaHQgPSA0Owo+ID4gKwllbHNl Cj4gPiArCQl2ZHNjX2NmZy0+c2xpY2VfaGVpZ2h0ID0gMjsKPiA+ICsKPiA+ICsJLyogVmFsdWVz IGZpbGxlZCBmcm9tIERTQyBTaW5rIERQQ0QgKi8KPiA+ICsJdmRzY19jZmctPmRzY192ZXJzaW9u X21ham9yID0gKGludGVsX2RwLT5kc2NfZHBjZFtEUF9EU0NfUkVWIC0gRFBfRFNDX1NVUFBPUlRd ICYKPiA+ICsJCQkJICAgICAgIERQX0RTQ19NQUpPUl9NQVNLKSA+PiBEUF9EU0NfTUFKT1JfU0hJ RlQ7Cj4gPiArCXZkc2NfY2ZnLT5kc2NfdmVyc2lvbl9taW5vciA9IG1pbihEU0NfU1VQUE9SVEVE X1ZFUlNJT05fTUlOLAo+ID4gKwkJCQkJICAoaW50ZWxfZHAtPmRzY19kcGNkW0RQX0RTQ19SRVYg LSBEUF9EU0NfU1VQUE9SVF0gJgo+ID4gKwkJCQkJICAgRFBfRFNDX01JTk9SX01BU0spID4+IERQ X0RTQ19NSU5PUl9TSElGVCk7Cj4gPiArCj4gPiArCXZkc2NfY2ZnLT5jb252ZXJ0X3JnYiA9IGlu dGVsX2RwLT5kc2NfZHBjZFtEUF9EU0NfREVDX0NPTE9SX0ZPUk1BVF9DQVAgLSBEUF9EU0NfU1VQ UE9SVF0gJgo+ID4gKwkJRFBfRFNDX1JHQjsKPiA+ICsKPiA+ICsJbGluZV9idWZfZGVwdGggPSBk cm1fZHBfZHNjX3NpbmtfbGluZV9idWZfZGVwdGgoaW50ZWxfZHAtPmRzY19kcGNkKTsKPiAKPiBB ZGQgYSBjaGVjayBmb3IgcmV0dXJuIHZhbHVlIG9mIDAKPiAKPiA+ICsJaWYgKHZkc2NfY2ZnLT5k c2NfdmVyc2lvbl9taW5vciA9PSAyKQo+ID4gKwkJdmRzY19jZmctPmxpbmVfYnVmX2RlcHRoID0g KGxpbmVfYnVmX2RlcHRoID09IERTQ18xXzJfTUFYX0xJTkVCVUZfREVQVEhfQklUUykgPwo+ID4g KwkJCURTQ18xXzJfTUFYX0xJTkVCVUZfREVQVEhfVkFMIDogbGluZV9idWZfZGVwdGg7Cj4gPiAr CWVsc2UKPiA+ICsJCXZkc2NfY2ZnLT5saW5lX2J1Zl9kZXB0aCA9IChsaW5lX2J1Zl9kZXB0aCA+ IERTQ18xXzFfTUFYX0xJTkVCVUZfREVQVEhfQklUUykgPwo+ID4gKwkJCURTQ18xXzFfTUFYX0xJ TkVCVUZfREVQVEhfQklUUyA6IGxpbmVfYnVmX2RlcHRoOwo+ID4gKwo+ID4gKwkvKiBHZW4gMTEg ZG9lcyBub3Qgc3VwcG9ydCBZQ2JDciAqLwo+ID4gKwl2ZHNjX2NmZy0+ZW5hYmxlNDIyID0gZmFs c2U7Cj4gPiArCS8qIEdlbiAxMSBkb2VzIG5vdCBzdXBwb3J0IFZCUiAqLwo+ID4gKwl2ZHNjX2Nm Zy0+dmJyX2VuYWJsZSA9IGZhbHNlOwo+ID4gKwl2ZHNjX2NmZy0+YmxvY2tfcHJlZF9lbmFibGUg PQo+ID4gKwkJCWludGVsX2RwLT5kc2NfZHBjZFtEUF9EU0NfQkxLX1BSRURJQ1RJT05fU1VQUE9S VCAtIERQX0RTQ19TVVBQT1JUXSAmCj4gPiArCQlEUF9EU0NfQkxLX1BSRURJQ1RJT05fSVNfU1VQ UE9SVEVEOwo+ID4gKwo+ID4gKwkvKiBHZW4gMTEgb25seSBzdXBwb3J0cyBpbnRlZ3JhbCB2YWx1 ZXMgb2YgYnBwICovCj4gPiArCXZkc2NfY2ZnLT5iaXRzX3Blcl9waXhlbCA9IGNvbXByZXNzZWRf YnBwIDw8IDQ7Cj4gPiArCXZkc2NfY2ZnLT5iaXRzX3Blcl9jb21wb25lbnQgPSBwaXBlX2NvbmZp Zy0+cGlwZV9icHAgLyAzOwo+ID4gKwo+ID4gKwlmb3IgKGkgPSAwOyBpIDwgRFNDX05VTV9CVUZf UkFOR0VTIC0gMTsgaSsrKSB7Cj4gPiArCQkvKgo+ID4gKwkJICogc2l4IDBzIGFyZSBhcHBlbmRl ZCB0byB0aGUgbHNiIG9mIGVhY2ggdGhyZXNob2xkIHZhbHVlCj4gPiArCQkgKiBpbnRlcm5hbGx5 IGluIGgvdy4KPiA+ICsJCSAqIE9ubHkgOCBiaXRzIGFyZSBhbGxvd2VkIGZvciBwcm9ncmFtbWlu ZyBSY0J1ZlRocmVzaG9sZAo+ID4gKwkJICovCj4gPiArCQl2ZHNjX2NmZy0+cmNfYnVmX3RocmVz aFtpXSA9IHJjX2J1Zl90aHJlc2hbaV0gPj4gNjsKPiA+ICsJfQo+ID4gKwo+ID4gKwkvKgo+ID4g KwkgKiBGb3IgNmJwcCwgUkMgQnVmZmVyIHRocmVzaG9sZCAxMiBhbmQgMTMgbmVlZCBhIGRpZmZl cmVudCB2YWx1ZQo+ID4gKwkgKiBhcyBwZXIgQyBNb2RlbAo+ID4gKwkgKi8KPiA+ICsJaWYgKGNv bXByZXNzZWRfYnBwID09IDYpIHsKPiA+ICsJCXZkc2NfY2ZnLT5yY19idWZfdGhyZXNoWzEyXSA9 IDB4N0M7Cj4gPiArCQl2ZHNjX2NmZy0+cmNfYnVmX3RocmVzaFsxM10gPSAweDdEOwo+ID4gKwl9 Cj4gPiArCj4gPiArCXJvd19pbmRleCA9IGdldF9yb3dfaW5kZXhfZm9yX3JjX3BhcmFtcyhjb21w cmVzc2VkX2JwcCk7Cj4gPiArCWNvbHVtbl9pbmRleCA9Cj4gPiArCQlnZXRfY29sdW1uX2luZGV4 X2Zvcl9yY19wYXJhbXModmRzY19jZmctPmJpdHNfcGVyX2NvbXBvbmVudCk7Cj4gPiArCj4gPiAr CWlmIChyb3dfaW5kZXggPCAwIHx8IGNvbHVtbl9pbmRleCA8IDApCj4gPiArCQlyZXR1cm4gLUVJ TlZBTDsKPiA+ICsKPiA+ICsJdmRzY19jZmctPmZpcnN0X2xpbmVfYnBnX29mZnNldCA9Cj4gPiAr CQlyY19wYXJhbXNbcm93X2luZGV4XVtjb2x1bW5faW5kZXhdLmZpcnN0X2xpbmVfYnBnX29mZnNl dDsKPiA+ICsJdmRzY19jZmctPmluaXRpYWxfeG1pdF9kZWxheSA9Cj4gPiArCQlyY19wYXJhbXNb cm93X2luZGV4XVtjb2x1bW5faW5kZXhdLmluaXRpYWxfeG1pdF9kZWxheTsKPiA+ICsJdmRzY19j ZmctPmluaXRpYWxfb2Zmc2V0ID0KPiA+ICsJCXJjX3BhcmFtc1tyb3dfaW5kZXhdW2NvbHVtbl9p bmRleF0uaW5pdGlhbF9vZmZzZXQ7Cj4gPiArCXZkc2NfY2ZnLT5mbGF0bmVzc19taW5fcXAgPQo+ ID4gKwkJcmNfcGFyYW1zW3Jvd19pbmRleF1bY29sdW1uX2luZGV4XS5mbGF0bmVzc19taW5fcXA7 Cj4gPiArCXZkc2NfY2ZnLT5mbGF0bmVzc19tYXhfcXAgPQo+ID4gKwkJcmNfcGFyYW1zW3Jvd19p bmRleF1bY29sdW1uX2luZGV4XS5mbGF0bmVzc19tYXhfcXA7Cj4gPiArCXZkc2NfY2ZnLT5yY19x dWFudF9pbmNyX2xpbWl0MCA9Cj4gPiArCQlyY19wYXJhbXNbcm93X2luZGV4XVtjb2x1bW5faW5k ZXhdLnJjX3F1YW50X2luY3JfbGltaXQwOwo+ID4gKwl2ZHNjX2NmZy0+cmNfcXVhbnRfaW5jcl9s aW1pdDEgPQo+ID4gKwkJcmNfcGFyYW1zW3Jvd19pbmRleF1bY29sdW1uX2luZGV4XS5yY19xdWFu dF9pbmNyX2xpbWl0MTsKPiA+ICsKPiA+ICsJZm9yIChpID0gMDsgaSA8IERTQ19OVU1fQlVGX1JB TkdFUzsgaSsrKQo+ID4gKwkJdmRzY19jZmctPnJjX3JhbmdlX3BhcmFtc1tpXSA9Cj4gPiArCQkJ cmNfcGFyYW1zW3Jvd19pbmRleF1bY29sdW1uX2luZGV4XS5yY19yYW5nZV9wYXJhbXNbaV07Cj4g PiArCj4gPiArCS8qCj4gPiArCSAqIEJpdHNQZXJDb21wb25lbnQgdmFsdWUgZGV0ZXJtaW5lcyBt dXhfd29yZF9zaXplOgo+ID4gKwkgKiBXaGVuIEJpdHNQZXJDb21wb25lbnQgaXMgMTJicGMsIG11 eFdvcmRTaXplIHdpbGwgYmUgZXF1YWwgdG8gNjQgYml0cwo+ID4gKwkgKiBXaGVuIEJpdHNQZXJD b21wb25lbnQgaXMgOCBvciAxMGJwYywgbXV4V29yZFNpemUgd2lsbCBiZSBlcXVhbCB0bwo+ID4g KwkgKiA0OCBiaXRzCj4gPiArCSAqLwo+ID4gKwlpZiAodmRzY19jZmctPmJpdHNfcGVyX2NvbXBv bmVudCA9PSA4IHx8Cj4gPiArCSAgICB2ZHNjX2NmZy0+Yml0c19wZXJfY29tcG9uZW50ID09IDEw KQo+ID4gKwkJdmRzY19jZmctPm11eF93b3JkX3NpemUgPSBEU0NfTVVYX1dPUkRfU0laRV84XzEw X0JQQzsKPiA+ICsJZWxzZSBpZiAodmRzY19jZmctPmJpdHNfcGVyX2NvbXBvbmVudCA9PSAxMikK PiA+ICsJCXZkc2NfY2ZnLT5tdXhfd29yZF9zaXplID0gRFNDX01VWF9XT1JEX1NJWkVfMTJfQlBD Owo+ID4gKwo+ID4gKwkvKiBJbml0aWFsU2NhbGVWYWx1ZSBpcyBhIDYgYml0IHZhbHVlIHdpdGgg MyBmcmFjdGlvbmFsIGJpdHMgKFUzLjMpICovCj4gPiArCXZkc2NfY2ZnLT5pbml0aWFsX3NjYWxl X3ZhbHVlID0gKHZkc2NfY2ZnLT5yY19tb2RlbF9zaXplIDw8IDMpIC8KPiA+ICsJCSh2ZHNjX2Nm Zy0+cmNfbW9kZWxfc2l6ZSAtIHZkc2NfY2ZnLT5pbml0aWFsX29mZnNldCk7Cj4gCj4gICAgICAg ICAgICAgICAgICAgICAgICAgXl5eXl52ZHNjX2NmZy0+cmNfbW9kZWxfc2l6ZSBpcyBvbmx5IGRl ZmluZWQgYnV0IG5vdCBnZXR0aW5nIHNldCBhbnl3aGVyZS4KPiBJdCBzaG91bGQgYmUgc2V0IHRv IERTQ19SQ19NT0RFTF9TSVpFX0NPTlNUIGRlZmluZWQgaW4gZHJtX2RzYy5oIGVsc2UgaXQgcmVz dWx0cyBpbnRvIGFuIGluY29ycmVjdCBkZWZhdWx0IHZhbHVlLgo+IAo+ID4gKwo+ID4gKwlyZXR1 cm4gMDsKPiA+ICt9Cj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBlci5o IGIvaW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBlci5oCj4gPiBpbmRleCAwY2YyNDA3Li5mMTc4OTMz IDEwMDY0NAo+ID4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBlci5oCj4gPiArKysgYi9p bmNsdWRlL2RybS9kcm1fZHBfaGVscGVyLmgKPiA+IEBAIC0xODYsNiArMTg2LDkgQEAKPiA+ICAK PiA+ICAjZGVmaW5lIERQX0dVSUQJCQkJICAgIDB4MDMwICAgLyogMS4yICovCj4gPiAgCj4gPiAr I2RlZmluZSBEUF9EU0NfUkNfUElYRUxTX1BFUl9HUk9VUAkJMwo+ID4gKyNkZWZpbmUgRFBfRFND X1NDQUxFX0RFQ1JFTUVOVF9JTlRFUlZBTF9NQVgJNDA5NQo+IAo+IFRoaXMgcGF0Y2ggaW4gZHJt IHNob3VsZCBiZSBzZW50IGFzIGEgc2VwYXJhdGUgcGF0Y2ggb3IgY29tYmluZWQgd2l0aCB0aGUg cGF0Y2gKPiB3aGVyZSB5b3UgYXJlIGRlZmluaW5nIERSTSBEU0MgcGFyYW1ldGVycyBhbmQgY29u c3RhbnRzLgo+IAo+IE1hbmFzaQo+IAo+ID4gKwo+ID4gICNkZWZpbmUgRFBfRFNDX1NVUFBPUlQg ICAgICAgICAgICAgICAgICAgICAgMHgwNjAgICAvKiBEUCAxLjQgKi8KPiA+ICAjIGRlZmluZSBE UF9EU0NfREVDT01QUkVTU0lPTl9JU19TVVBQT1JURUQgICgxIDw8IDApCj4gPiAgCj4gPiBkaWZm IC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2RzYy5oIGIvaW5jbHVkZS9kcm0vZHJtX2RzYy5oCj4g PiBpbmRleCA0Y2ZjZDAzLi43OTZjNzk4IDEwMDY0NAo+ID4gLS0tIGEvaW5jbHVkZS9kcm0vZHJt X2RzYy5oCj4gPiArKysgYi9pbmNsdWRlL2RybS9kcm1fZHNjLmgKPiA+IEBAIC02Nyw3ICs2Nyw3 IEBAIHN0cnVjdCBkc2NfcmNfcmFuZ2VfcGFyYW1ldGVycyB7Cj4gPiAgCS8qIE1heCBRdWFudGl6 YXRpb24gUGFyYW1ldGVycyBhbGxvd2VkIGZvciB0aGlzIHJhbmdlICovCj4gPiAgCXU4IHJhbmdl X21heF9xcDsKPiA+ICAJLyogQml0cy9ncm91cCBvZmZzZXQgdG8gYXBwbHkgdG8gdGFyZ2V0IGZv ciB0aGlzIGdyb3VwICovCj4gPiAtCXU4IHJhbmdlX2JwZ19vZmZzZXQ7Cj4gPiArCXM4IHJhbmdl X2JwZ19vZmZzZXQ7CgpUaGlzIGNhbm5vdCBiZSBzaWduZWQgaW50IHNpbmNlIHRoZSBQUFMgdmFs dWUgZXhwZWN0cyBpdCB0byBiZSAycyBjb21wbGVtZW50CmFuZCBzdG9yZWQgYXMgYW4gdW5zaWdu ZWQgdmFsdWUuIEl0IG5lZWRzIHRvIHN0YXkgYXMgdTgKCk1hbmFzaQoKPiA+ICB9Owo+ID4gIAo+ ID4gIHN0cnVjdCBkcm1fZHNjX2NvbmZpZyB7Cj4gPiAtLSAKPiA+IDIuNy40Cj4gPiAKPiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBt YWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==