From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lucas De Marchi Subject: Re: [PATCH 1/5] drm/i915/icl: use tc_port in MG_PLL macros Date: Thu, 24 Jan 2019 10:52:45 -0800 Message-ID: <20190124185245.dwvmybcir7splbgs@ldmartin-desk.jf.intel.com> References: <20190117202113.5190-1-lucas.demarchi@intel.com> <20190117202113.5190-2-lucas.demarchi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5532B6E36B for ; Thu, 24 Jan 2019 18:52:46 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Paulo Zanoni Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBKYW4gMjMsIDIwMTkgYXQgMDU6MTU6MjZQTSAtMDgwMCwgUGF1bG8gWmFub25pIHdy b3RlOgo+RW0gcXVpLCAyMDE5LTAxLTE3IMOgcyAxMjoyMSAtMDgwMCwgTHVjYXMgRGUgTWFyY2hp IGVzY3JldmV1Ogo+PiBGaXggdGhlIFRPRE8gbGVmdG92ZXIgaW4gdGhlIGNvZGUgYnkgY2hhbmdp bmcgdGhlIGFyZ3VtZW50IGluIE1HX1BMTAo+PiBtYWNyb3MuIFRoZSBNR19QTEwgaWRzIHVzZWQg dG8gYWNjZXNzIHRoZSByZWdpc3RlciB2YWx1ZXMgY2FuIGJlCj4+IGNvbnZlcnRlZCBmcm9tIHRj X3BvcnQgcmF0aGVyIHRoYW4gcG9ydC4KPj4KPgo+QW4gZXhwbGFuYXRpb24gb24gd2h5IHRoZSBu ZXcgbW9kZWwgaXMgYmV0dGVyIHdvdWxkIGJlIGFtYXppbmcuIEl0IG1heQo+YmUgb2J2aW91cyB0 byB5b3UsIGJ1dCBpdCdzIG5vdCB0byBvdGhlciBwZW9wbGUuCgpXaGF0IGFib3V0OgoKQWxsIHRo ZXNlIHJlZ2lzdGVycyBjYW4gdXNlIHRoZSBUQyBwb3J0IHRvIGNhbGN1bGF0ZSB0aGUgcmlnaHQg b2Zmc2V0cwpiZWNhdXNlIHRoZXkgYXJlIG9ubHkgYXZhaWxhYmxlIGZvciBUQyBwb3J0cy4gVGhl IHJhbmdlIChQT1JUX0Mgb253YXJkcykKbWF5IG5vdCBiZSBzdGFibGUgYW5kIGNoYW5nZSBmcm9t IHBsYXRmb3JtIHRvIHBsYXRmb3JtLiBTbyBieSB1c2luZyB0aGUKVEMgaWQgZGlyZWN0bHkgd2Ug YXZvaWQgaGF2aW5nIHRvIGNoZWNrIGZvciB0aGUgcGxhdGZvcm0gaW4gdGhlICJsZWFmCmZ1bmN0 aW9ucyIgYW5kIHRodXMgcGFzc2luZyBkZXZfcHJpdiBhcm91bmQuCgoKPgo+Cj4+IFRoZSBoZWxw ZXIgZnVuY3Rpb25zIHdlcmUgYWxzbyByZW5hbWVkIHRvIHVzZSAidGMiIGFzIHByZWZpeCB0byBt YWtlCj4+IHRoZW0gbW9yZSBnZW5lcmljLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBMdWNhcyBEZSBN YXJjaGkgPGx1Y2FzLmRlbWFyY2hpQGludGVsLmNvbT4KPj4gLS0tCj4+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3JlZy5oICAgICAgIHwgNTIgKysrKysrKysrLS0tLS0tLS0tCj4+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAgICAgIHwgIDcgKystCj4+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgIHwgIDMgKy0KPj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwbGxfbWdyLmMgfCA3OSArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KPj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmggfCAgMiArLQo+PiAgNSBmaWxl cyBjaGFuZ2VkLCA3MiBpbnNlcnRpb25zKCspLCA3MSBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3JlZy5oCj4+IGluZGV4IDlhMTM0MGNmZGE2Yy4uZGUyMDllMGZkYzAxIDEwMDY0 NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPj4gQEAgLTk1NDUsNyArOTU0NSw3IEBAIGVudW0g c2tsX3Bvd2VyX2dhdGUgewo+PiAgI2RlZmluZSBfTUdfUExMM19FTkFCTEUJCTB4NDYwMzgKPj4g ICNkZWZpbmUgX01HX1BMTDRfRU5BQkxFCQkweDQ2MDNDCj4+ICAvKiBCaXRzIGFyZSB0aGUgc2Ft ZSBhcyBEUExMMF9FTkFCTEUgKi8KPj4gLSNkZWZpbmUgTUdfUExMX0VOQUJMRShwb3J0KQlfTU1J T19QT1JUKChwb3J0KSAtIFBPUlRfQywgX01HX1BMTDFfRU5BQkxFLCBcCj4+ICsjZGVmaW5lIE1H X1BMTF9FTkFCTEUodGNfcG9ydCkJX01NSU9fUE9SVCgodGNfcG9ydCksIF9NR19QTEwxX0VOQUJM RSwgXAo+PiAgCQkJCQkgICBfTUdfUExMMl9FTkFCTEUpCj4+Cj4+ICAjZGVmaW5lIF9NR19SRUZD TEtJTl9DVExfUE9SVDEJCQkJMHgxNjg5MkMKPj4gQEAgLTk1NTQsOSArOTU1NCw5IEBAIGVudW0g c2tsX3Bvd2VyX2dhdGUgewo+PiAgI2RlZmluZSBfTUdfUkVGQ0xLSU5fQ1RMX1BPUlQ0CQkJCTB4 MTZCOTJDCj4+ICAjZGVmaW5lICAgTUdfUkVGQ0xLSU5fQ1RMX09EXzJfTVVYKHgpCQkJKCh4KSA8 PCA4KQo+PiAgI2RlZmluZSAgIE1HX1JFRkNMS0lOX0NUTF9PRF8yX01VWF9NQVNLCQkJKDB4NyA8 PCA4KQo+PiAtI2RlZmluZSBNR19SRUZDTEtJTl9DVEwocG9ydCkgX01NSU9fUE9SVCgocG9ydCkg LSBQT1JUX0MsIFwKPj4gLQkJCQkJIF9NR19SRUZDTEtJTl9DVExfUE9SVDEsIFwKPj4gLQkJCQkJ IF9NR19SRUZDTEtJTl9DVExfUE9SVDIpCj4+ICsjZGVmaW5lIE1HX1JFRkNMS0lOX0NUTCh0Y19w b3J0KSBfTU1JT19QT1JUKCh0Y19wb3J0KSwgXAo+PiArCQkJCQkgICAgX01HX1JFRkNMS0lOX0NU TF9QT1JUMSwgXAo+PiArCQkJCQkgICAgX01HX1JFRkNMS0lOX0NUTF9QT1JUMikKPj4KPj4gICNk ZWZpbmUgX01HX0NMS1RPUDJfQ09SRUNMS0NUTDFfUE9SVDEJCQkweDE2ODhEOAo+PiAgI2RlZmlu ZSBfTUdfQ0xLVE9QMl9DT1JFQ0xLQ1RMMV9QT1JUMgkJCTB4MTY5OEQ4Cj4+IEBAIC05NTY2LDkg Kzk1NjYsOSBAQCBlbnVtIHNrbF9wb3dlcl9nYXRlIHsKPj4gICNkZWZpbmUgICBNR19DTEtUT1Ay X0NPUkVDTEtDVEwxX0JfRElWUkFUSU9fTUFTSwkoMHhmZiA8PCAxNikKPj4gICNkZWZpbmUgICBN R19DTEtUT1AyX0NPUkVDTEtDVEwxX0FfRElWUkFUSU8oeCkJCSgoeCkgPDwgOCkKPj4gICNkZWZp bmUgICBNR19DTEtUT1AyX0NPUkVDTEtDVEwxX0FfRElWUkFUSU9fTUFTSwkoMHhmZiA8PCA4KQo+ PiAtI2RlZmluZSBNR19DTEtUT1AyX0NPUkVDTEtDVEwxKHBvcnQpIF9NTUlPX1BPUlQoKHBvcnQp IC0gUE9SVF9DLCBcCj4+IC0JCQkJCQlfTUdfQ0xLVE9QMl9DT1JFQ0xLQ1RMMV9QT1JUMSwgXAo+ PiAtCQkJCQkJX01HX0NMS1RPUDJfQ09SRUNMS0NUTDFfUE9SVDIpCj4+ICsjZGVmaW5lIE1HX0NM S1RPUDJfQ09SRUNMS0NUTDEodGNfcG9ydCkgX01NSU9fUE9SVCgodGNfcG9ydCksIFwKPj4gKwkJ CQkJCSAgIF9NR19DTEtUT1AyX0NPUkVDTEtDVEwxX1BPUlQxLCBcCj4+ICsJCQkJCQkgICBfTUdf Q0xLVE9QMl9DT1JFQ0xLQ1RMMV9QT1JUMikKPj4KPj4gICNkZWZpbmUgX01HX0NMS1RPUDJfSFND TEtDVExfUE9SVDEJCQkweDE2ODhENAo+PiAgI2RlZmluZSBfTUdfQ0xLVE9QMl9IU0NMS0NUTF9Q T1JUMgkJCTB4MTY5OEQ0Cj4+IEBAIC05NTg2LDkgKzk1ODYsOSBAQCBlbnVtIHNrbF9wb3dlcl9n YXRlIHsKPj4gICNkZWZpbmUgICBNR19DTEtUT1AyX0hTQ0xLQ1RMX0RTRElWX1JBVElPKHgpCQko KHgpIDw8IDgpCj4+ICAjZGVmaW5lICAgTUdfQ0xLVE9QMl9IU0NMS0NUTF9EU0RJVl9SQVRJT19T SElGVAkJOAo+PiAgI2RlZmluZSAgIE1HX0NMS1RPUDJfSFNDTEtDVExfRFNESVZfUkFUSU9fTUFT SwkJKDB4ZiA8PCA4KQo+PiAtI2RlZmluZSBNR19DTEtUT1AyX0hTQ0xLQ1RMKHBvcnQpIF9NTUlP X1BPUlQoKHBvcnQpIC0gUE9SVF9DLCBcCj4+IC0JCQkJCSAgICAgX01HX0NMS1RPUDJfSFNDTEtD VExfUE9SVDEsIFwKPj4gLQkJCQkJICAgICBfTUdfQ0xLVE9QMl9IU0NMS0NUTF9QT1JUMikKPj4g KyNkZWZpbmUgTUdfQ0xLVE9QMl9IU0NMS0NUTCh0Y19wb3J0KSBfTU1JT19QT1JUKCh0Y19wb3J0 KSwgXAo+PiArCQkJCQkJX01HX0NMS1RPUDJfSFNDTEtDVExfUE9SVDEsIFwKPj4gKwkJCQkJCV9N R19DTEtUT1AyX0hTQ0xLQ1RMX1BPUlQyKQo+Pgo+PiAgI2RlZmluZSBfTUdfUExMX0RJVjBfUE9S VDEJCQkJMHgxNjhBMDAKPj4gICNkZWZpbmUgX01HX1BMTF9ESVYwX1BPUlQyCQkJCTB4MTY5QTAw Cj4+IEBAIC05NjAwLDggKzk2MDAsOCBAQCBlbnVtIHNrbF9wb3dlcl9nYXRlIHsKPj4gICNkZWZp bmUgICBNR19QTExfRElWMF9GQkRJVl9GUkFDKHgpCQkJKCh4KSA8PCA4KQo+PiAgI2RlZmluZSAg IE1HX1BMTF9ESVYwX0ZCRElWX0lOVF9NQVNLCQkJKDB4ZmYgPDwgMCkKPj4gICNkZWZpbmUgICBN R19QTExfRElWMF9GQkRJVl9JTlQoeCkJCQkoKHgpIDw8IDApCj4+IC0jZGVmaW5lIE1HX1BMTF9E SVYwKHBvcnQpIF9NTUlPX1BPUlQoKHBvcnQpIC0gUE9SVF9DLCBfTUdfUExMX0RJVjBfUE9SVDEs IFwKPj4gLQkJCQkgICAgIF9NR19QTExfRElWMF9QT1JUMikKPj4gKyNkZWZpbmUgTUdfUExMX0RJ VjAodGNfcG9ydCkgX01NSU9fUE9SVCgodGNfcG9ydCksIF9NR19QTExfRElWMF9QT1JUMSwgXAo+ PiArCQkJCQlfTUdfUExMX0RJVjBfUE9SVDIpCj4+Cj4+ICAjZGVmaW5lIF9NR19QTExfRElWMV9Q T1JUMQkJCQkweDE2OEEwNAo+PiAgI2RlZmluZSBfTUdfUExMX0RJVjFfUE9SVDIJCQkJMHgxNjlB MDQKPj4gQEAgLTk2MTUsOCArOTYxNSw4IEBAIGVudW0gc2tsX3Bvd2VyX2dhdGUgewo+PiAgI2Rl ZmluZSAgIE1HX1BMTF9ESVYxX05ESVZSQVRJTyh4KQkJCSgoeCkgPDwgNCkKPj4gICNkZWZpbmUg ICBNR19QTExfRElWMV9GQlBSRURJVl9NQVNLCQkJKDB4ZiA8PCAwKQo+PiAgI2RlZmluZSAgIE1H X1BMTF9ESVYxX0ZCUFJFRElWKHgpCQkJKCh4KSA8PCAwKQo+PiAtI2RlZmluZSBNR19QTExfRElW MShwb3J0KSBfTU1JT19QT1JUKChwb3J0KSAtIFBPUlRfQywgX01HX1BMTF9ESVYxX1BPUlQxLCBc Cj4+IC0JCQkJICAgICBfTUdfUExMX0RJVjFfUE9SVDIpCj4+ICsjZGVmaW5lIE1HX1BMTF9ESVYx KHRjX3BvcnQpIF9NTUlPX1BPUlQoKHRjX3BvcnQpLCBfTUdfUExMX0RJVjFfUE9SVDEsIFwKPj4g KwkJCQkJX01HX1BMTF9ESVYxX1BPUlQyKQo+Pgo+PiAgI2RlZmluZSBfTUdfUExMX0xGX1BPUlQx CQkJCTB4MTY4QTA4Cj4+ICAjZGVmaW5lIF9NR19QTExfTEZfUE9SVDIJCQkJMHgxNjlBMDgKPj4g QEAgLTk2MjgsOCArOTYyOCw4IEBAIGVudW0gc2tsX3Bvd2VyX2dhdGUgewo+PiAgI2RlZmluZSAg IE1HX1BMTF9MRl9HQUlOQ1RSTCh4KQkJCQkoKHgpIDw8IDE2KQo+PiAgI2RlZmluZSAgIE1HX1BM TF9MRl9JTlRfQ09FRkYoeCkJCQkoKHgpIDw8IDgpCj4+ICAjZGVmaW5lICAgTUdfUExMX0xGX1BS T1BfQ09FRkYoeCkJCQkoKHgpIDw8IDApCj4+IC0jZGVmaW5lIE1HX1BMTF9MRihwb3J0KSBfTU1J T19QT1JUKChwb3J0KSAtIFBPUlRfQywgX01HX1BMTF9MRl9QT1JUMSwgXAo+PiAtCQkJCSAgIF9N R19QTExfTEZfUE9SVDIpCj4+ICsjZGVmaW5lIE1HX1BMTF9MRih0Y19wb3J0KSBfTU1JT19QT1JU KCh0Y19wb3J0KSwgX01HX1BMTF9MRl9QT1JUMSwgXAo+PiArCQkJCSAgICAgIF9NR19QTExfTEZf UE9SVDIpCj4+Cj4+ICAjZGVmaW5lIF9NR19QTExfRlJBQ19MT0NLX1BPUlQxCQkJCTB4MTY4QTBD Cj4+ICAjZGVmaW5lIF9NR19QTExfRlJBQ19MT0NLX1BPUlQyCQkJCTB4MTY5QTBDCj4+IEBAIC05 NjQxLDkgKzk2NDEsOSBAQCBlbnVtIHNrbF9wb3dlcl9nYXRlIHsKPj4gICNkZWZpbmUgICBNR19Q TExfRlJBQ19MT0NLX0RDT0RJVEhFUkVOCQkJKDEgPDwgMTApCj4+ICAjZGVmaW5lICAgTUdfUExM X0ZSQUNfTE9DS19GRUVERldSRENBTF9FTgkJKDEgPDwgOCkKPj4gICNkZWZpbmUgICBNR19QTExf RlJBQ19MT0NLX0ZFRURGV1JER0FJTih4KQkJKCh4KSA8PCAwKQo+PiAtI2RlZmluZSBNR19QTExf RlJBQ19MT0NLKHBvcnQpIF9NTUlPX1BPUlQoKHBvcnQpIC0gUE9SVF9DLCBcCj4+IC0JCQkJCSAg X01HX1BMTF9GUkFDX0xPQ0tfUE9SVDEsIFwKPj4gLQkJCQkJICBfTUdfUExMX0ZSQUNfTE9DS19Q T1JUMikKPj4gKyNkZWZpbmUgTUdfUExMX0ZSQUNfTE9DSyh0Y19wb3J0KSBfTU1JT19QT1JUKCh0 Y19wb3J0KSwgXAo+PiArCQkJCQkgICAgIF9NR19QTExfRlJBQ19MT0NLX1BPUlQxLCBcCj4+ICsJ CQkJCSAgICAgX01HX1BMTF9GUkFDX0xPQ0tfUE9SVDIpCj4+Cj4+ICAjZGVmaW5lIF9NR19QTExf U1NDX1BPUlQxCQkJCTB4MTY4QTEwCj4+ICAjZGVmaW5lIF9NR19QTExfU1NDX1BPUlQyCQkJCTB4 MTY5QTEwCj4+IEBAIC05NjU1LDggKzk2NTUsOCBAQCBlbnVtIHNrbF9wb3dlcl9nYXRlIHsKPj4g ICNkZWZpbmUgICBNR19QTExfU1NDX1NURVBOVU0oeCkJCQkJKCh4KSA8PCAxMCkKPj4gICNkZWZp bmUgICBNR19QTExfU1NDX0ZMTEVOCQkJCSgxIDw8IDkpCj4+ICAjZGVmaW5lICAgTUdfUExMX1NT Q19TVEVQU0laRSh4KQkJCSgoeCkgPDwgMCkKPj4gLSNkZWZpbmUgTUdfUExMX1NTQyhwb3J0KSBf TU1JT19QT1JUKChwb3J0KSAtIFBPUlRfQywgX01HX1BMTF9TU0NfUE9SVDEsIFwKPj4gLQkJCQkg ICAgX01HX1BMTF9TU0NfUE9SVDIpCj4+ICsjZGVmaW5lIE1HX1BMTF9TU0ModGNfcG9ydCkgX01N SU9fUE9SVCgodGNfcG9ydCksIF9NR19QTExfU1NDX1BPUlQxLCBcCj4+ICsJCQkJICAgICAgIF9N R19QTExfU1NDX1BPUlQyKQo+Pgo+PiAgI2RlZmluZSBfTUdfUExMX0JJQVNfUE9SVDEJCQkJMHgx NjhBMTQKPj4gICNkZWZpbmUgX01HX1BMTF9CSUFTX1BPUlQyCQkJCTB4MTY5QTE0Cj4+IEBAIC05 Njc1LDggKzk2NzUsOCBAQCBlbnVtIHNrbF9wb3dlcl9nYXRlIHsKPj4gICNkZWZpbmUgICBNR19Q TExfQklBU19WUkVGX1JEQUNfTUFTSwkJCSgweDcgPDwgNSkKPj4gICNkZWZpbmUgICBNR19QTExf QklBU19JUkVGVFJJTSh4KQkJCSgoeCkgPDwgMCkKPj4gICNkZWZpbmUgICBNR19QTExfQklBU19J UkVGVFJJTV9NQVNLCQkJKDB4MWYgPDwgMCkKPj4gLSNkZWZpbmUgTUdfUExMX0JJQVMocG9ydCkg X01NSU9fUE9SVCgocG9ydCkgLSBQT1JUX0MsIF9NR19QTExfQklBU19QT1JUMSwgXAo+PiAtCQkJ CSAgICAgX01HX1BMTF9CSUFTX1BPUlQyKQo+PiArI2RlZmluZSBNR19QTExfQklBUyh0Y19wb3J0 KSBfTU1JT19QT1JUKCh0Y19wb3J0KSwgX01HX1BMTF9CSUFTX1BPUlQxLCBcCj4+ICsJCQkJCV9N R19QTExfQklBU19QT1JUMikKPj4KPj4gICNkZWZpbmUgX01HX1BMTF9URENfQ09MRFNUX0JJQVNf UE9SVDEJCQkweDE2OEExOAo+PiAgI2RlZmluZSBfTUdfUExMX1REQ19DT0xEU1RfQklBU19QT1JU MgkJCTB4MTY5QTE4Cj4+IEBAIC05Njg3LDkgKzk2ODcsOSBAQCBlbnVtIHNrbF9wb3dlcl9nYXRl IHsKPj4gICNkZWZpbmUgICBNR19QTExfVERDX0NPTERTVF9DT0xEU1RBUlQJCQkoMSA8PCAxNikK Pj4gICNkZWZpbmUgICBNR19QTExfVERDX1REQ09WQ0NPUlJfRU4JCQkoMSA8PCAyKQo+PiAgI2Rl ZmluZSAgIE1HX1BMTF9URENfVERDU0VMKHgpCQkJCSgoeCkgPDwgMCkKPj4gLSNkZWZpbmUgTUdf UExMX1REQ19DT0xEU1RfQklBUyhwb3J0KSBfTU1JT19QT1JUKChwb3J0KSAtIFBPUlRfQywgXAo+ PiAtCQkJCQkJX01HX1BMTF9URENfQ09MRFNUX0JJQVNfUE9SVDEsIFwKPj4gLQkJCQkJCV9NR19Q TExfVERDX0NPTERTVF9CSUFTX1BPUlQyKQo+PiArI2RlZmluZSBNR19QTExfVERDX0NPTERTVF9C SUFTKHRjX3BvcnQpIF9NTUlPX1BPUlQoKHRjX3BvcnQpLCBcCj4+ICsJCQkJCQkgICBfTUdfUExM X1REQ19DT0xEU1RfQklBU19QT1JUMSwgXAo+PiArCQkJCQkJICAgX01HX1BMTF9URENfQ09MRFNU X0JJQVNfUE9SVDIpCj4+Cj4+ICAjZGVmaW5lIF9DTkxfRFBMTDBfQ0ZHQ1IwCQkweDZDMDAwCj4+ ICAjZGVmaW5lIF9DTkxfRFBMTDFfQ0ZHQ1IwCQkweDZDMDgwCj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RkaS5jCj4+IGluZGV4IGNlNDQ3NDRhNWY5ZC4uOGRiZjZjOWUyMmZiIDEwMDY0NAo+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kZGkuYwo+PiBAQCAtMTM5MSwxNiArMTM5MSwxNyBAQCBzdGF0aWMgaW50 IGljbF9jYWxjX3RidF9wbGxfbGluayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Cj4+ICBzdGF0aWMgaW50IGljbF9jYWxjX21nX3BsbF9saW5rKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKPj4gIAkJCQllbnVtIHBvcnQgcG9ydCkKPj4gIHsKPj4gKwllbnVtIHRj X3BvcnQgdGNfcG9ydCA9IGludGVsX3BvcnRfdG9fdGMoZGV2X3ByaXYsIHBvcnQpOwo+PiAgCXUz MiBtZ19wbGxfZGl2MCwgbWdfY2xrdG9wX2hzY2xrY3RsOwo+PiAgCXUzMiBtMSwgbTJfaW50LCBt Ml9mcmFjLCBkaXYxLCBkaXYyLCByZWZjbGs7Cj4+ICAJdTY0IHRtcDsKPj4KPj4gIAlyZWZjbGsg PSBkZXZfcHJpdi0+Y2RjbGsuaHcucmVmOwo+Pgo+PiAtCW1nX3BsbF9kaXYwID0gSTkxNV9SRUFE KE1HX1BMTF9ESVYwKHBvcnQpKTsKPj4gLQltZ19jbGt0b3BfaHNjbGtjdGwgPSBJOTE1X1JFQUQo TUdfQ0xLVE9QMl9IU0NMS0NUTChwb3J0KSk7Cj4+ICsJbWdfcGxsX2RpdjAgPSBJOTE1X1JFQUQo TUdfUExMX0RJVjAodGNfcG9ydCkpOwo+PiArCW1nX2Nsa3RvcF9oc2Nsa2N0bCA9IEk5MTVfUkVB RChNR19DTEtUT1AyX0hTQ0xLQ1RMKHRjX3BvcnQpKTsKPj4KPj4gLQltMSA9IEk5MTVfUkVBRChN R19QTExfRElWMShwb3J0KSkgJiBNR19QTExfRElWMV9GQlBSRURJVl9NQVNLOwo+PiArCW0xID0g STkxNV9SRUFEKE1HX1BMTF9ESVYxKHRjX3BvcnQpKSAmIE1HX1BMTF9ESVYxX0ZCUFJFRElWX01B U0s7Cj4+ICAJbTJfaW50ID0gbWdfcGxsX2RpdjAgJiBNR19QTExfRElWMF9GQkRJVl9JTlRfTUFT SzsKPj4gIAltMl9mcmFjID0gKG1nX3BsbF9kaXYwICYgTUdfUExMX0RJVjBfRlJBQ05FTl9IKSA/ Cj4+ICAJCSAgKG1nX3BsbF9kaXYwICYgTUdfUExMX0RJVjBfRkJESVZfRlJBQ19NQVNLKSA+Pgo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+IGluZGV4IDYyZDYxZmNhZDg5Yy4u YTVkZTcwZTZiZjU5IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+ IEBAIC05NDE1LDcgKzk0MTUsOCBAQCBzdGF0aWMgdm9pZCBpY2VsYWtlX2dldF9kZGlfcGxsKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4gIAkJaWYgKFdBUk5fT04oIWludGVs X2RwbGxfaXNfY29tYm9waHkoaWQpKSkKPj4gIAkJCXJldHVybjsKPj4gIAl9IGVsc2UgaWYgKGlu dGVsX3BvcnRfaXNfdGMoZGV2X3ByaXYsIHBvcnQpKSB7Cj4+IC0JCWlkID0gaWNsX3BvcnRfdG9f bWdfcGxsX2lkKHBvcnQpOwo+PiArCQllbnVtIHRjX3BvcnQgdGNfcG9ydCA9IGludGVsX3BvcnRf dG9fdGMoZGV2X3ByaXYsIHBvcnQpOwo+PiArCQlpZCA9IGljbF90Y19wb3J0X3RvX3BsbF9pZCh0 Y19wb3J0KTsKPgo+Q2hlY2twYXRjaCdzIGNvbXBsYWludCBtYWtlcyBzZW5zZSBoZXJlLiBZb3Ug Y291bGQgYWxzbyBvcHQgdG8gc2ltcGx5Cj50bzoKPgo+aWQgPSBpY2xfdGNfcG9ydF90b19wbGxf aWQoaW50ZWxfcG9ydF90b190YyhkZXZfcHJpdiwgcG9ydCkpOwoKeWVhaCwgSSB3aWxsIHJlc2Vu ZCwgYnV0IGp1c3QgYWRkaW5nIGEgYmxhbmsgbGluZS4KCj4KPj4gIAl9IGVsc2Ugewo+PiAgCQlX QVJOKDEsICJJbnZhbGlkIHBvcnQgJXhcbiIsIHBvcnQpOwo+PiAgCQlyZXR1cm47Cj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYwo+PiBpbmRleCA2MDZmNTRkZGUwODYuLjIxMWIz ZmZhNWJlZCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9t Z3IuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jCj4+IEBA IC0yNjM5LDE0ICsyNjM5LDE0IEBAIGludCBpY2xfY2FsY19kcF9jb21ib19wbGxfbGluayhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ICAJcmV0dXJuIGxpbmtfY2xvY2s7Cj4+ ICB9Cj4+Cj4+IC1zdGF0aWMgZW51bSBwb3J0IGljbF9tZ19wbGxfaWRfdG9fcG9ydChlbnVtIGlu dGVsX2RwbGxfaWQgaWQpCj4+ICtzdGF0aWMgZW51bSB0Y19wb3J0IGljbF9wbGxfaWRfdG9fdGNf cG9ydChlbnVtIGludGVsX2RwbGxfaWQgaWQpCj4+ICB7Cj4+IC0JcmV0dXJuIGlkIC0gRFBMTF9J RF9JQ0xfTUdQTEwxICsgUE9SVF9DOwo+PiArCXJldHVybiBpZCAtIERQTExfSURfSUNMX01HUExM MTsKPj4gIH0KPj4KPj4gLWVudW0gaW50ZWxfZHBsbF9pZCBpY2xfcG9ydF90b19tZ19wbGxfaWQo ZW51bSBwb3J0IHBvcnQpCj4+ICtlbnVtIGludGVsX2RwbGxfaWQgaWNsX3RjX3BvcnRfdG9fcGxs X2lkKGVudW0gdGNfcG9ydCB0Y19wb3J0KQo+PiAgewo+PiAtCXJldHVybiBwb3J0IC0gUE9SVF9D ICsgRFBMTF9JRF9JQ0xfTUdQTEwxOwo+PiArCXJldHVybiB0Y19wb3J0ICsgRFBMTF9JRF9JQ0xf TUdQTEwxOwo+PiAgfQo+Cj5UaGUgIl9tZ18iIGluIHRoZSBuYW1lIHdhcyBzdXBwb3NlZCB0byBo ZWxwIGNhbGxlcnMgZWFzaWx5IHJlYWxpemUgdGhhdAo+dGhlc2UgZnVuY3Rpb25zIGRvbid0IG1h a2Ugc2Vuc2Ugd2l0aG91dCBtZyBwbGxzLiBJIGtpbmRhIGxpa2VkIHRoZW0sCj5lc3BlY2lhbGx5 IGluIHRoZSBmaXJzdCBjYXNlIHdoZXJlIHlvdSBjYW4gcGFzcyBhbnkgaWQsIHdoaWNoIHdvdWxk Cj5yZXN1bHQgaW4gd3JvbmcgY29kZS4KCndlbGwsIHllYWgsIGJ1dCBiZWNhdXNlIHRoZSBhcmd1 bWVudCB3YXMgKnBvcnQqLiBOb3cgSSByZW1vdmVkIHRoZSAibWciCmZyb20gdGhlIG5hbWUgYW5k IGFkZGVkICJ0YyIsIGNoYW5naW5nIHRoZSBhcmd1bWVudCBhY2NvcmRpbmdseTogaXQncwppbXBs aWNpdCB0aGF0IG1nIHBsbHMgb25seSBtYWtlIHNlbnNlIGZvciBUQyBwb3J0cy4KCj5Tbywgb25l IG9mIG15IGZlYXJzIGlzIHRoYXQgdGhlcmUgbWF5IGJlIG90aGVyIHBhdGNoZXMgaW4tZmxpZ2h0 IHdoaWNoCj50b3VjaCB0aGVzZSByZWdpc3RlcnMgYW5kIHdpbGwgc2lsZW50bHkgbWFrZSBvdXIg Y29kZSB1c2UgcG9ydCBhZ2Fpbi4KPlRoZSBjaGVycnkgb24gdG9wIG9mIHRoaXMgcGF0Y2ggd291 bGQgYmUgdG8gcHV0IHRob3NlIGVudW1zIGluc2lkZQo+c2luZ2xlLWVsZW1lbnQgc3RydWN0cyBp biBhIHdheSB0aGF0IHdvdWxkIG1ha2UgZ2NjIGNvbXBsYWluIHdoZW4geW91Cj5hY2Nlc3NlZCBv bmUgaW5zdGVhZCBvZiB0aGUgb3RoZXIgKGluY2x1ZGluZyBpbnNpZGUgbWFjcm9zKS4gRmVlbCBm cmVlCj50byBpbXBsZW1lbnQgdGhpcyBpZiB5b3UgbGlrZSB0aGUgaWRlYS4KCnllYWgsIHRoYXQg d291bGQgYmUgYSBuaWNlIHdheSB0byBwcmV2ZW50IGNhbGxlcnMgcGFzc2luZyBpbiB0aGUgd3Jv bmcKYXJndW1lbnQuIEtpbmQgb2Ygd2hhdCAiZW51bSBjbGFzcyIgZG9lcyBmb3IgQysrLiBCdXQg YXMgeW91IG5vdGVkLCBpdCdzCmEgY2hlcnJ5IG9uICp0b3AqIDopCgoKPgo+V2l0aCB0aGUgY2hl Y2twYXRjaCBlcnJvciBhZGRyZXNzZWQgYW5kIHRoZSBpbXByb3ZlZCBjb21taXQgbWVzc2FnZToK PlJldmlld2VkLWJ5OiBQYXVsbyBaYW5vbmkgPHBhdWxvLnIuemFub25pQGludGVsLmNvbT4KCnRo YW5rcwpMdWNhcyBEZSBNYXJjaGkKCj4KPj4KPj4gIGJvb2wgaW50ZWxfZHBsbF9pc19jb21ib3Bo eShlbnVtIGludGVsX2RwbGxfaWQgaWQpCj4+IEBAIC0yOTI1LDcgKzI5MjUsMTAgQEAgaWNsX2dl dF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwKPj4gIAkJCXJldCA9IGljbF9jYWxjX2RwbGxfc3RhdGUoY3J0Y19zdGF0ZSwg ZW5jb2RlciwgY2xvY2ssCj4+ICAJCQkJCQkgICZwbGxfc3RhdGUpOwo+PiAgCQl9IGVsc2Ugewo+ PiAtCQkJbWluID0gaWNsX3BvcnRfdG9fbWdfcGxsX2lkKHBvcnQpOwo+PiArCQkJZW51bSB0Y19w b3J0IHRjX3BvcnQ7Cj4+ICsKPj4gKwkJCXRjX3BvcnQgPSBpbnRlbF9wb3J0X3RvX3RjKGRldl9w cml2LCBwb3J0KTsKPj4gKwkJCW1pbiA9IGljbF90Y19wb3J0X3RvX3BsbF9pZCh0Y19wb3J0KTsK Pj4gIAkJCW1heCA9IG1pbjsKPj4gIAkJCXJldCA9IGljbF9jYWxjX21nX3BsbF9zdGF0ZShjcnRj X3N0YXRlLCBlbmNvZGVyLCBjbG9jaywKPj4gIAkJCQkJCSAgICAmcGxsX3N0YXRlKTsKPj4gQEAg LTI5NTksMTIgKzI5NjIsOCBAQCBzdGF0aWMgaTkxNV9yZWdfdCBpY2xfcGxsX2lkX3RvX2VuYWJs ZV9yZWcoZW51bSBpbnRlbF9kcGxsX2lkIGlkKQo+PiAgCQlyZXR1cm4gQ05MX0RQTExfRU5BQkxF KGlkKTsKPj4gIAllbHNlIGlmIChpZCA9PSBEUExMX0lEX0lDTF9UQlRQTEwpCj4+ICAJCXJldHVy biBUQlRfUExMX0VOQUJMRTsKPj4gLQllbHNlCj4+IC0JCS8qCj4+IC0JCSAqIFRPRE86IE1ha2Ug TUdfUExMIG1hY3JvcyB1c2UKPj4gLQkJICogdGMgcG9ydCBpZCBpbnN0ZWFkIG9mIHBvcnQgaWQK Pj4gLQkJICovCj4+IC0JCXJldHVybiBNR19QTExfRU5BQkxFKGljbF9tZ19wbGxfaWRfdG9fcG9y dChpZCkpOwo+PiArCj4+ICsJcmV0dXJuIE1HX1BMTF9FTkFCTEUoaWNsX3BsbF9pZF90b190Y19w b3J0KGlkKSk7Cj4+ICB9Cj4+Cj4+ICBzdGF0aWMgYm9vbCBpY2xfcGxsX2dldF9od19zdGF0ZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+IEBAIC0yOTc0LDcgKzI5NzMsNiBA QCBzdGF0aWMgYm9vbCBpY2xfcGxsX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCj4+ICAJY29uc3QgZW51bSBpbnRlbF9kcGxsX2lkIGlkID0gcGxsLT5pbmZv LT5pZDsKPj4gIAlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKPj4gIAlib29sIHJldCA9IGZhbHNl Owo+PiAtCWVudW0gcG9ydCBwb3J0Owo+PiAgCXUzMiB2YWw7Cj4+Cj4+ICAJd2FrZXJlZiA9IGlu dGVsX2Rpc3BsYXlfcG93ZXJfZ2V0X2lmX2VuYWJsZWQoZGV2X3ByaXYsCj4+IEBAIC0yOTkxLDMy ICsyOTg5LDMzIEBAIHN0YXRpYyBib29sIGljbF9wbGxfZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4gIAkJaHdfc3RhdGUtPmNmZ2NyMCA9IEk5MTVfUkVB RChJQ0xfRFBMTF9DRkdDUjAoaWQpKTsKPj4gIAkJaHdfc3RhdGUtPmNmZ2NyMSA9IEk5MTVfUkVB RChJQ0xfRFBMTF9DRkdDUjEoaWQpKTsKPj4gIAl9IGVsc2Ugewo+PiAtCQlwb3J0ID0gaWNsX21n X3BsbF9pZF90b19wb3J0KGlkKTsKPj4gLQkJaHdfc3RhdGUtPm1nX3JlZmNsa2luX2N0bCA9IEk5 MTVfUkVBRChNR19SRUZDTEtJTl9DVEwocG9ydCkpOwo+PiArCQllbnVtIHRjX3BvcnQgdGNfcG9y dCA9IGljbF9wbGxfaWRfdG9fdGNfcG9ydChpZCk7Cj4+ICsKPj4gKwkJaHdfc3RhdGUtPm1nX3Jl ZmNsa2luX2N0bCA9IEk5MTVfUkVBRChNR19SRUZDTEtJTl9DVEwodGNfcG9ydCkpOwo+PiAgCQlo d19zdGF0ZS0+bWdfcmVmY2xraW5fY3RsICY9IE1HX1JFRkNMS0lOX0NUTF9PRF8yX01VWF9NQVNL Owo+Pgo+PiAgCQlod19zdGF0ZS0+bWdfY2xrdG9wMl9jb3JlY2xrY3RsMSA9Cj4+IC0JCQlJOTE1 X1JFQUQoTUdfQ0xLVE9QMl9DT1JFQ0xLQ1RMMShwb3J0KSk7Cj4+ICsJCQlJOTE1X1JFQUQoTUdf Q0xLVE9QMl9DT1JFQ0xLQ1RMMSh0Y19wb3J0KSk7Cj4+ICAJCWh3X3N0YXRlLT5tZ19jbGt0b3Ay X2NvcmVjbGtjdGwxICY9Cj4+ICAJCQlNR19DTEtUT1AyX0NPUkVDTEtDVEwxX0FfRElWUkFUSU9f TUFTSzsKPj4KPj4gIAkJaHdfc3RhdGUtPm1nX2Nsa3RvcDJfaHNjbGtjdGwgPQo+PiAtCQkJSTkx NV9SRUFEKE1HX0NMS1RPUDJfSFNDTEtDVEwocG9ydCkpOwo+PiArCQkJSTkxNV9SRUFEKE1HX0NM S1RPUDJfSFNDTEtDVEwodGNfcG9ydCkpOwo+PiAgCQlod19zdGF0ZS0+bWdfY2xrdG9wMl9oc2Ns a2N0bCAmPQo+PiAgCQkJTUdfQ0xLVE9QMl9IU0NMS0NUTF9UTElORURSVl9DTEtTRUxfTUFTSyB8 Cj4+ICAJCQlNR19DTEtUT1AyX0hTQ0xLQ1RMX0NPUkVfSU5QVVRTRUxfTUFTSyB8Cj4+ICAJCQlN R19DTEtUT1AyX0hTQ0xLQ1RMX0hTRElWX1JBVElPX01BU0sgfAo+PiAgCQkJTUdfQ0xLVE9QMl9I U0NMS0NUTF9EU0RJVl9SQVRJT19NQVNLOwo+Pgo+PiAtCQlod19zdGF0ZS0+bWdfcGxsX2RpdjAg PSBJOTE1X1JFQUQoTUdfUExMX0RJVjAocG9ydCkpOwo+PiAtCQlod19zdGF0ZS0+bWdfcGxsX2Rp djEgPSBJOTE1X1JFQUQoTUdfUExMX0RJVjEocG9ydCkpOwo+PiAtCQlod19zdGF0ZS0+bWdfcGxs X2xmID0gSTkxNV9SRUFEKE1HX1BMTF9MRihwb3J0KSk7Cj4+IC0JCWh3X3N0YXRlLT5tZ19wbGxf ZnJhY19sb2NrID0gSTkxNV9SRUFEKE1HX1BMTF9GUkFDX0xPQ0socG9ydCkpOwo+PiAtCQlod19z dGF0ZS0+bWdfcGxsX3NzYyA9IEk5MTVfUkVBRChNR19QTExfU1NDKHBvcnQpKTsKPj4gKwkJaHdf c3RhdGUtPm1nX3BsbF9kaXYwID0gSTkxNV9SRUFEKE1HX1BMTF9ESVYwKHRjX3BvcnQpKTsKPj4g KwkJaHdfc3RhdGUtPm1nX3BsbF9kaXYxID0gSTkxNV9SRUFEKE1HX1BMTF9ESVYxKHRjX3BvcnQp KTsKPj4gKwkJaHdfc3RhdGUtPm1nX3BsbF9sZiA9IEk5MTVfUkVBRChNR19QTExfTEYodGNfcG9y dCkpOwo+PiArCQlod19zdGF0ZS0+bWdfcGxsX2ZyYWNfbG9jayA9IEk5MTVfUkVBRChNR19QTExf RlJBQ19MT0NLKHRjX3BvcnQpKTsKPj4gKwkJaHdfc3RhdGUtPm1nX3BsbF9zc2MgPSBJOTE1X1JF QUQoTUdfUExMX1NTQyh0Y19wb3J0KSk7Cj4+Cj4+IC0JCWh3X3N0YXRlLT5tZ19wbGxfYmlhcyA9 IEk5MTVfUkVBRChNR19QTExfQklBUyhwb3J0KSk7Cj4+ICsJCWh3X3N0YXRlLT5tZ19wbGxfYmlh cyA9IEk5MTVfUkVBRChNR19QTExfQklBUyh0Y19wb3J0KSk7Cj4+ICAJCWh3X3N0YXRlLT5tZ19w bGxfdGRjX2NvbGRzdF9iaWFzID0KPj4gLQkJCUk5MTVfUkVBRChNR19QTExfVERDX0NPTERTVF9C SUFTKHBvcnQpKTsKPj4gKwkJCUk5MTVfUkVBRChNR19QTExfVERDX0NPTERTVF9CSUFTKHRjX3Bv cnQpKTsKPj4KPj4gIAkJaWYgKGRldl9wcml2LT5jZGNsay5ody5yZWYgPT0gMzg0MDApIHsKPj4g IAkJCWh3X3N0YXRlLT5tZ19wbGxfdGRjX2NvbGRzdF9iaWFzX21hc2sgPSBNR19QTExfVERDX0NP TERTVF9DT0xEU1RBUlQ7Cj4+IEBAIC0zMDUxLDcgKzMwNTAsNyBAQCBzdGF0aWMgdm9pZCBpY2xf bWdfcGxsX3dyaXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4gIAkJCSAg ICAgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwpCj4+ICB7Cj4+ICAJc3RydWN0IGludGVs X2RwbGxfaHdfc3RhdGUgKmh3X3N0YXRlID0gJnBsbC0+c3RhdGUuaHdfc3RhdGU7Cj4+IC0JZW51 bSBwb3J0IHBvcnQgPSBpY2xfbWdfcGxsX2lkX3RvX3BvcnQocGxsLT5pbmZvLT5pZCk7Cj4+ICsJ ZW51bSB0Y19wb3J0IHRjX3BvcnQgPSBpY2xfcGxsX2lkX3RvX3RjX3BvcnQocGxsLT5pbmZvLT5p ZCk7Cj4+ICAJdTMyIHZhbDsKPj4KPj4gIAkvKgo+PiBAQCAtMzA2MCw0MSArMzA1OSw0MSBAQCBz dGF0aWMgdm9pZCBpY2xfbWdfcGxsX3dyaXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPj4gIAkgKiBkdXJpbmcgdGhlIGNhbGMvcmVhZG91dCBwaGFzZSBpZiB0aGUgbWFzayBk ZXBlbmRzIG9uIHNvbWUgb3RoZXIgSFcKPj4gIAkgKiBzdGF0ZSBsaWtlIHJlZmNsaywgc2VlIGlj bF9jYWxjX21nX3BsbF9zdGF0ZSgpLgo+PiAgCSAqLwo+PiAtCXZhbCA9IEk5MTVfUkVBRChNR19S RUZDTEtJTl9DVEwocG9ydCkpOwo+PiArCXZhbCA9IEk5MTVfUkVBRChNR19SRUZDTEtJTl9DVEwo dGNfcG9ydCkpOwo+PiAgCXZhbCAmPSB+TUdfUkVGQ0xLSU5fQ1RMX09EXzJfTVVYX01BU0s7Cj4+ ICAJdmFsIHw9IGh3X3N0YXRlLT5tZ19yZWZjbGtpbl9jdGw7Cj4+IC0JSTkxNV9XUklURShNR19S RUZDTEtJTl9DVEwocG9ydCksIHZhbCk7Cj4+ICsJSTkxNV9XUklURShNR19SRUZDTEtJTl9DVEwo dGNfcG9ydCksIHZhbCk7Cj4+Cj4+IC0JdmFsID0gSTkxNV9SRUFEKE1HX0NMS1RPUDJfQ09SRUNM S0NUTDEocG9ydCkpOwo+PiArCXZhbCA9IEk5MTVfUkVBRChNR19DTEtUT1AyX0NPUkVDTEtDVEwx KHRjX3BvcnQpKTsKPj4gIAl2YWwgJj0gfk1HX0NMS1RPUDJfQ09SRUNMS0NUTDFfQV9ESVZSQVRJ T19NQVNLOwo+PiAgCXZhbCB8PSBod19zdGF0ZS0+bWdfY2xrdG9wMl9jb3JlY2xrY3RsMTsKPj4g LQlJOTE1X1dSSVRFKE1HX0NMS1RPUDJfQ09SRUNMS0NUTDEocG9ydCksIHZhbCk7Cj4+ICsJSTkx NV9XUklURShNR19DTEtUT1AyX0NPUkVDTEtDVEwxKHRjX3BvcnQpLCB2YWwpOwo+Pgo+PiAtCXZh bCA9IEk5MTVfUkVBRChNR19DTEtUT1AyX0hTQ0xLQ1RMKHBvcnQpKTsKPj4gKwl2YWwgPSBJOTE1 X1JFQUQoTUdfQ0xLVE9QMl9IU0NMS0NUTCh0Y19wb3J0KSk7Cj4+ICAJdmFsICY9IH4oTUdfQ0xL VE9QMl9IU0NMS0NUTF9UTElORURSVl9DTEtTRUxfTUFTSyB8Cj4+ICAJCSBNR19DTEtUT1AyX0hT Q0xLQ1RMX0NPUkVfSU5QVVRTRUxfTUFTSyB8Cj4+ICAJCSBNR19DTEtUT1AyX0hTQ0xLQ1RMX0hT RElWX1JBVElPX01BU0sgfAo+PiAgCQkgTUdfQ0xLVE9QMl9IU0NMS0NUTF9EU0RJVl9SQVRJT19N QVNLKTsKPj4gIAl2YWwgfD0gaHdfc3RhdGUtPm1nX2Nsa3RvcDJfaHNjbGtjdGw7Cj4+IC0JSTkx NV9XUklURShNR19DTEtUT1AyX0hTQ0xLQ1RMKHBvcnQpLCB2YWwpOwo+PiArCUk5MTVfV1JJVEUo TUdfQ0xLVE9QMl9IU0NMS0NUTCh0Y19wb3J0KSwgdmFsKTsKPj4KPj4gLQlJOTE1X1dSSVRFKE1H X1BMTF9ESVYwKHBvcnQpLCBod19zdGF0ZS0+bWdfcGxsX2RpdjApOwo+PiAtCUk5MTVfV1JJVEUo TUdfUExMX0RJVjEocG9ydCksIGh3X3N0YXRlLT5tZ19wbGxfZGl2MSk7Cj4+IC0JSTkxNV9XUklU RShNR19QTExfTEYocG9ydCksIGh3X3N0YXRlLT5tZ19wbGxfbGYpOwo+PiAtCUk5MTVfV1JJVEUo TUdfUExMX0ZSQUNfTE9DSyhwb3J0KSwgaHdfc3RhdGUtPm1nX3BsbF9mcmFjX2xvY2spOwo+PiAt CUk5MTVfV1JJVEUoTUdfUExMX1NTQyhwb3J0KSwgaHdfc3RhdGUtPm1nX3BsbF9zc2MpOwo+PiAr CUk5MTVfV1JJVEUoTUdfUExMX0RJVjAodGNfcG9ydCksIGh3X3N0YXRlLT5tZ19wbGxfZGl2MCk7 Cj4+ICsJSTkxNV9XUklURShNR19QTExfRElWMSh0Y19wb3J0KSwgaHdfc3RhdGUtPm1nX3BsbF9k aXYxKTsKPj4gKwlJOTE1X1dSSVRFKE1HX1BMTF9MRih0Y19wb3J0KSwgaHdfc3RhdGUtPm1nX3Bs bF9sZik7Cj4+ICsJSTkxNV9XUklURShNR19QTExfRlJBQ19MT0NLKHRjX3BvcnQpLCBod19zdGF0 ZS0+bWdfcGxsX2ZyYWNfbG9jayk7Cj4+ICsJSTkxNV9XUklURShNR19QTExfU1NDKHRjX3BvcnQp LCBod19zdGF0ZS0+bWdfcGxsX3NzYyk7Cj4+Cj4+IC0JdmFsID0gSTkxNV9SRUFEKE1HX1BMTF9C SUFTKHBvcnQpKTsKPj4gKwl2YWwgPSBJOTE1X1JFQUQoTUdfUExMX0JJQVModGNfcG9ydCkpOwo+ PiAgCXZhbCAmPSB+aHdfc3RhdGUtPm1nX3BsbF9iaWFzX21hc2s7Cj4+ICAJdmFsIHw9IGh3X3N0 YXRlLT5tZ19wbGxfYmlhczsKPj4gLQlJOTE1X1dSSVRFKE1HX1BMTF9CSUFTKHBvcnQpLCB2YWwp Owo+PiArCUk5MTVfV1JJVEUoTUdfUExMX0JJQVModGNfcG9ydCksIHZhbCk7Cj4+Cj4+IC0JdmFs ID0gSTkxNV9SRUFEKE1HX1BMTF9URENfQ09MRFNUX0JJQVMocG9ydCkpOwo+PiArCXZhbCA9IEk5 MTVfUkVBRChNR19QTExfVERDX0NPTERTVF9CSUFTKHRjX3BvcnQpKTsKPj4gIAl2YWwgJj0gfmh3 X3N0YXRlLT5tZ19wbGxfdGRjX2NvbGRzdF9iaWFzX21hc2s7Cj4+ICAJdmFsIHw9IGh3X3N0YXRl LT5tZ19wbGxfdGRjX2NvbGRzdF9iaWFzOwo+PiAtCUk5MTVfV1JJVEUoTUdfUExMX1REQ19DT0xE U1RfQklBUyhwb3J0KSwgdmFsKTsKPj4gKwlJOTE1X1dSSVRFKE1HX1BMTF9URENfQ09MRFNUX0JJ QVModGNfcG9ydCksIHZhbCk7Cj4+Cj4+IC0JUE9TVElOR19SRUFEKE1HX1BMTF9URENfQ09MRFNU X0JJQVMocG9ydCkpOwo+PiArCVBPU1RJTkdfUkVBRChNR19QTExfVERDX0NPTERTVF9CSUFTKHRj X3BvcnQpKTsKPj4gIH0KPj4KPj4gIHN0YXRpYyB2b2lkIGljbF9wbGxfZW5hYmxlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwbGxfbWdyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxs X21nci5oCj4+IGluZGV4IGU5NmU3OTQxM2I1NC4uNDBlODM5MWE5MmYyIDEwMDY0NAo+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5oCj4+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmgKPj4gQEAgLTM0NCw3ICszNDQsNyBAQCB2b2lk IGludGVsX2RwbGxfZHVtcF9od19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4+ICBpbnQgaWNsX2NhbGNfZHBfY29tYm9fcGxsX2xpbmsoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAo+PiAgCQkJICAgICAgIHUzMiBwbGxfaWQpOwo+PiAgaW50IGNubF9o ZG1pX3BsbF9yZWZfY2xvY2soc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPj4g LWVudW0gaW50ZWxfZHBsbF9pZCBpY2xfcG9ydF90b19tZ19wbGxfaWQoZW51bSBwb3J0IHBvcnQp Owo+PiArZW51bSBpbnRlbF9kcGxsX2lkIGljbF90Y19wb3J0X3RvX3BsbF9pZChlbnVtIHRjX3Bv cnQgdGNfcG9ydCk7Cj4+ICBib29sIGludGVsX2RwbGxfaXNfY29tYm9waHkoZW51bSBpbnRlbF9k cGxsX2lkIGlkKTsKPj4KPj4gICNlbmRpZiAvKiBfSU5URUxfRFBMTF9NR1JfSF8gKi8KPgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK