From mboxrd@z Thu Jan 1 00:00:00 1970 From: YT Shen Subject: Re: [PATCH v9 09/10] drm/mediatek: update DSI sub driver flow for sending commands to panel Date: Mon, 21 Nov 2016 21:59:12 +0800 Message-ID: <1479736752.15207.31.camel@mtksdaap41> References: <1478865346-19043-1-git-send-email-yt.shen@mediatek.com> <1478865346-19043-10-git-send-email-yt.shen@mediatek.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Kurtz Cc: Daniel Vetter , dri-devel , Jie Qiu , Mao Huang , Yingjoe Chen =?UTF-8?Q?=28=E9=99=B3=E8=8B=B1=E6=B4=B2=29?= , Dan Carpenter , Jitao Shi , Sascha Hauer , "moderated list:ARM/Mediatek SoC support" , Matthias Brugger , shaoming chen , "linux-arm-kernel@lists.infradead.org" , srv_heupstream , Emil Velikov , "linux-kernel@vger.kernel.org" , Maxime Ripard List-Id: linux-mediatek@lists.infradead.org SGkgRGFuaWVsLAoKVGhhbmtzIGZvciB0aGUgcmV2aWV3LgoKT24gRnJpLCAyMDE2LTExLTE4IGF0 IDExOjIxICswODAwLCBEYW5pZWwgS3VydHogd3JvdGU6Cj4gSGkgWVQsCj4gCj4gU29ycnkgZm9y IHRoZSB2ZXJ5IGxhdGUgcmV2aWV3Lgo+IAo+IE15IGJpZ2dlc3QgcHJvYmxlbSB3aXRoIHRoaXMg cGF0Y2ggaXMgaXQgZGVzY3JpYmVzIGl0c2VsZiBhcyBhZGRpbmcKPiBzdXBwb3J0IGZvciBhIG5l dyB1c2UgY2FzZSAiRFNJIC0+IHBhbmVsIiwgYnV0IG1ha2VzIG1hbnkgY2hhbmdlcyB0bwo+IHRo ZSBleGlzdGluZyB3b3JraW5nIGZsb3cgIkRTSSAtPiBicmlkZ2UgLT4gcGFuZWwiLgo+IElmIHRo ZXNlIGNoYW5nZXMgYXJlIHJlYWxseSBuZWVkZWQsIG9yIGltcHJvdmUgdGhlIGV4aXN0aW5nIGZs b3csIEknZAo+IGV4cGVjdCB0byBzZWUgdGhvc2UgY2hhbmdlcyBhZGRlZCBmaXJzdCBpbiBhIHBy ZXBhcmF0b3J5IHBhdGNoLAo+IGZvbGxvd2VkIGJ5IGEgc2Vjb25kIHNtYWxsZXIsIHNpbXBsZXIK PiBwYXRjaCB0aGF0IGFkZHMgYW55IGFkZGl0aW9uYWwgZnVuY3Rpb25hbGl0eSByZXF1aXJlZCB0 byBlbmFibGUgdGhlIG5ldyBmbG93LgpXZSB3aWxsIHNwbGl0IHRoaXMgcGF0Y2ggaW50byBzZXZl cmFsIHNtYWxsZXIgcHJlcGFyYXRvcnkgcGF0Y2hlcwpuZWNlc3NhcnkgaW4gdGhlIG5leHQgdmVy c2lvbi4KCj4gCj4gU2VlIGRldGFpbGVkIGNvbW1lbnRzIGlubGluZS4KPiAKPiAKPiBPbiBGcmks IE5vdiAxMSwgMjAxNiBhdCA3OjU1IFBNLCBZVCBTaGVuIDx5dC5zaGVuQG1lZGlhdGVrLmNvbT4g d3JvdGU6Cj4gPgo+ID4gVGhpcyBwYXRjaCB1cGRhdGUgZW5hYmxlL2Rpc2FibGUgZmxvdyBvZiBE U0kgbW9kdWxlIGFuZCBNSVBJIFRYIG1vZHVsZS4KPiA+IE9yaWdpbmFsIGZsb3cgd29ya3Mgb24g dGhlcmUgaXMgYSBicmlkZ2UgY2hpcDogRFNJIC0+IGJyaWRnZSAtPiBwYW5lbC4KPiA+IEluIHRo aXMgY2FzZTogRFNJIC0+IHBhbmVsLCB0aGUgRFNJIHN1YiBkcml2ZXIgZmxvdyBzaG91bGQgYmUg dXBkYXRlZC4KPiA+IFdlIG5lZWQgdG8gaW5pdGlhbGl6ZSBEU0kgZmlyc3Qgc28gdGhhdCB3ZSBj YW4gc2VuZCBjb21tYW5kcyB0byBwYW5lbC4KPiA+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBzaGFvbWlu ZyBjaGVuIDxzaGFvbWluZy5jaGVuQG1lZGlhdGVrLmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IFlU IFNoZW4gPHl0LnNoZW5AbWVkaWF0ZWsuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJt L21lZGlhdGVrL210a19kc2kuYyAgICAgfCAxMTAgKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19taXBpX3R4LmMgfCAgMzIg KysrKystLS0tLQo+ID4gIDIgZmlsZXMgY2hhbmdlZCwgMTAzIGluc2VydGlvbnMoKyksIDM5IGRl bGV0aW9ucygtKQo+ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsv bXRrX2RzaS5jIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kc2kuYwo+ID4gaW5kZXgg ODYwYjg0Zi4uMTJhMTIwNiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRl ay9tdGtfZHNpLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHNpLmMK PiA+IEBAIC05NCw2ICs5NCw4IEBACj4gPiAgI2RlZmluZSBEU0lfUkFDSyAgICAgICAgICAgICAg IDB4ODQKPiA+ICAjZGVmaW5lIFJBQ0sgICAgICAgICAgICAgICAgICAgICAgICAgICBCSVQoMCkK PiA+Cj4gPiArI2RlZmluZSBEU0lfTUVNX0NPTlRJICAgICAgICAgIDB4OTAKPiA+ICsKPiA+ICAj ZGVmaW5lIERTSV9QSFlfTENDT04gICAgICAgICAgMHgxMDQKPiA+ICAjZGVmaW5lIExDX0hTX1RY X0VOICAgICAgICAgICAgICAgICAgICBCSVQoMCkKPiA+ICAjZGVmaW5lIExDX1VMUE1fRU4gICAg ICAgICAgICAgICAgICAgICBCSVQoMSkKPiA+IEBAIC0xMjYsNiArMTI4LDEwIEBACj4gPiAgI2Rl ZmluZSBDTEtfSFNfUE9TVCAgICAgICAgICAgICAgICAgICAgKDB4ZmYgPDwgOCkKPiA+ICAjZGVm aW5lIENMS19IU19FWElUICAgICAgICAgICAgICAgICAgICAoMHhmZiA8PCAxNikKPiA+Cj4gPiAr I2RlZmluZSBEU0lfVk1fQ01EX0NPTiAgICAgICAgIDB4MTMwCj4gPiArI2RlZmluZSBWTV9DTURf RU4gICAgICAgICAgICAgICAgICAgICAgQklUKDApCj4gPiArI2RlZmluZSBUU19WRlBfRU4gICAg ICAgICAgICAgICAgICAgICAgQklUKDUpCj4gPiArCj4gPiAgI2RlZmluZSBEU0lfQ01EUTAgICAg ICAgICAgICAgIDB4MTgwCj4gPiAgI2RlZmluZSBDT05GSUcgICAgICAgICAgICAgICAgICAgICAg ICAgKDB4ZmYgPDwgMCkKPiA+ICAjZGVmaW5lIFNIT1JUX1BBQ0tFVCAgICAgICAgICAgICAgICAg ICAwCj4gPiBAQCAtMjE5LDEyICsyMjUsMTIgQEAgc3RhdGljIHZvaWQgbXRrX2RzaV9waHlfdGlt Y29uZmlnKHN0cnVjdCBtdGtfZHNpICpkc2kpCj4gPiAgICAgICAgIHdyaXRlbCh0aW1jb24zLCBk c2ktPnJlZ3MgKyBEU0lfUEhZX1RJTUVDT04zKTsKPiA+ICB9Cj4gPgo+ID4gLXN0YXRpYyB2b2lk IG10a19kc2lfZW5hYmxlKHN0cnVjdCBtdGtfZHNpICpkc2kpCj4gPiArc3RhdGljIHZvaWQgbXRr X2RzaV9lbmdpbmVfZW5hYmxlKHN0cnVjdCBtdGtfZHNpICpkc2kpCj4gCj4gSSBkb24ndCB0aGlu ayB3ZSBuZWVkIHRvIGNoYW5nZSB0aGVzZSBuYW1lcy4KT0suCgo+IAo+ID4gIHsKPiA+ICAgICAg ICAgbXRrX2RzaV9tYXNrKGRzaSwgRFNJX0NPTl9DVFJMLCBEU0lfRU4sIERTSV9FTik7Cj4gPiAg fQo+ID4KPiA+IC1zdGF0aWMgdm9pZCBtdGtfZHNpX2Rpc2FibGUoc3RydWN0IG10a19kc2kgKmRz aSkKPiA+ICtzdGF0aWMgdm9pZCBtdGtfZHNpX2VuZ2luZV9kaXNhYmxlKHN0cnVjdCBtdGtfZHNp ICpkc2kpCj4gPiAgewo+ID4gICAgICAgICBtdGtfZHNpX21hc2soZHNpLCBEU0lfQ09OX0NUUkws IERTSV9FTiwgMCk7Cj4gPiAgfQo+ID4gQEAgLTI0OSw3ICsyNTUsOSBAQCBzdGF0aWMgaW50IG10 a19kc2lfcG93ZXJvbihzdHJ1Y3QgbXRrX2RzaSAqZHNpKQo+ID4gICAgICAgICAgKiBtaXBpX3Jh dGlvIGlzIG1pcGkgY2xrIGNvZWZmaWNpZW50IGZvciBiYWxhbmNlIHRoZSBwaXhlbCBjbGsgaW4g bWlwaS4KPiA+ICAgICAgICAgICogd2Ugc2V0IG1pcGlfcmF0aW8gaXMgMS4wNS4KPiA+ICAgICAg ICAgICovCj4gPiAtICAgICAgIGRzaS0+ZGF0YV9yYXRlID0gZHNpLT52bS5waXhlbGNsb2NrICog MyAqIDIxIC8gKDEgKiAxMDAwICogMTApOwo+ID4gKyAgICAgICBkc2ktPmRhdGFfcmF0ZSA9IGRz aS0+dm0ucGl4ZWxjbG9jayAqIDEyICogMjE7Cj4gPiArICAgICAgIGRzaS0+ZGF0YV9yYXRlIC89 IChkc2ktPmxhbmVzICogMTAwMCAqIDEwKTsKPiA+ICsgICAgICAgZGV2X2luZm8oZGV2LCAic2V0 IG1pcGl0eCdzIGRhdGEgcmF0ZTogJWRNSHpcbiIsIGRzaS0+ZGF0YV9yYXRlKTsKPiAKPiBJIGRv bid0IHRoaW5rIHdlIHdhbnQgdG8gc3BhbSB0aGUgbG9nIGxpa2UgdGhpcy4gIFVzZSBkZXZfZGJn Li4uLiBvcgo+IHVzZSB0aGUgRFJNXygpIG1lc3NhZ2luZyBsaWtlIGVsc2V3aGVyZSBpbiB0aGlz IGRyaXZlcj8KT0ssIHdlIHdpbGwgcmVtb3ZlIGxvZ3MgbGlrZSB0aGlzIGluIHRoZSBwYXRjaCBz ZXJpZXMuCgo+IAo+ID4KPiA+ICAgICAgICAgcmV0ID0gY2xrX3NldF9yYXRlKGRzaS0+aHNfY2xr LCBkc2ktPmRhdGFfcmF0ZSAqIDEwMDAwMDApOwo+ID4gICAgICAgICBpZiAocmV0IDwgMCkgewo+ ID4gQEAgLTI3MSw3ICsyNzksNyBAQCBzdGF0aWMgaW50IG10a19kc2lfcG93ZXJvbihzdHJ1Y3Qg bXRrX2RzaSAqZHNpKQo+ID4gICAgICAgICAgICAgICAgIGdvdG8gZXJyX2Rpc2FibGVfZW5naW5l X2NsazsKPiA+ICAgICAgICAgfQo+ID4KPiA+IC0gICAgICAgbXRrX2RzaV9lbmFibGUoZHNpKTsK PiA+ICsgICAgICAgbXRrX2RzaV9lbmdpbmVfZW5hYmxlKGRzaSk7Cj4gPiAgICAgICAgIG10a19k c2lfcmVzZXRfZW5naW5lKGRzaSk7Cj4gPiAgICAgICAgIG10a19kc2lfcGh5X3RpbWNvbmZpZyhk c2kpOwo+ID4KPiA+IEBAIC0yODksNyArMjk3LDcgQEAgc3RhdGljIGludCBtdGtfZHNpX3Bvd2Vy b24oc3RydWN0IG10a19kc2kgKmRzaSkKPiA+ICBzdGF0aWMgdm9pZCBtdGtfZHNpX2Nsa191bHBf bW9kZV9lbnRlcihzdHJ1Y3QgbXRrX2RzaSAqZHNpKQo+ID4gIHsKPiA+ICAgICAgICAgbXRrX2Rz aV9tYXNrKGRzaSwgRFNJX1BIWV9MQ0NPTiwgTENfSFNfVFhfRU4sIDApOwo+ID4gLSAgICAgICBt dGtfZHNpX21hc2soZHNpLCBEU0lfUEhZX0xDQ09OLCBMQ19VTFBNX0VOLCAwKTsKPiA+ICsgICAg ICAgbXRrX2RzaV9tYXNrKGRzaSwgRFNJX1BIWV9MQ0NPTiwgTENfVUxQTV9FTiwgTENfVUxQTV9F Tik7Cj4gCj4gV2hhdCBkb2VzIHRoaXMgY2hhbmdlIGRvPwo+IEl0IGxvb2tzIGxpa2UgYSBwdXJl IGJ1ZyBmaXggKGllLCBwcmV2aW91bHN5IHdlIHdlcmUnbnQgYWN0dWFsbHkKPiBlbmFibGluZyBV TFAgTU9ERSBiZWZvcmUpLgo+IElmIHNvLCBjYW4geW91IHBsZWFzZSBtb3ZlIGl0IHRvIGEgc2Vw YXJhdGUgcHJlbGltaW5hcnkgcGF0Y2guCk9LLgoKPiAKPiA+ICB9Cj4gPgo+ID4gIHN0YXRpYyB2 b2lkIG10a19kc2lfY2xrX3VscF9tb2RlX2xlYXZlKHN0cnVjdCBtdGtfZHNpICpkc2kpCj4gPiBA QCAtMzAyLDcgKzMxMCw3IEBAIHN0YXRpYyB2b2lkIG10a19kc2lfY2xrX3VscF9tb2RlX2xlYXZl KHN0cnVjdCBtdGtfZHNpICpkc2kpCj4gPiAgc3RhdGljIHZvaWQgbXRrX2RzaV9sYW5lMF91bHBf bW9kZV9lbnRlcihzdHJ1Y3QgbXRrX2RzaSAqZHNpKQo+ID4gIHsKPiA+ICAgICAgICAgbXRrX2Rz aV9tYXNrKGRzaSwgRFNJX1BIWV9MRDBDT04sIExEMF9IU19UWF9FTiwgMCk7Cj4gPiAtICAgICAg IG10a19kc2lfbWFzayhkc2ksIERTSV9QSFlfTEQwQ09OLCBMRDBfVUxQTV9FTiwgMCk7Cj4gPiAr ICAgICAgIG10a19kc2lfbWFzayhkc2ksIERTSV9QSFlfTEQwQ09OLCBMRDBfVUxQTV9FTiwgTEQw X1VMUE1fRU4pOwo+IAo+IFNhbWUgaGVyZS4KPiAKPiA+ICB9Cj4gPgo+ID4gIHN0YXRpYyB2b2lk IG10a19kc2lfbGFuZTBfdWxwX21vZGVfbGVhdmUoc3RydWN0IG10a19kc2kgKmRzaSkKPiA+IEBA IC0zMzgsMTEgKzM0NiwyMSBAQCBzdGF0aWMgdm9pZCBtdGtfZHNpX3NldF9tb2RlKHN0cnVjdCBt dGtfZHNpICpkc2kpCj4gPiAgICAgICAgICAgICAgICAgaWYgKChkc2ktPm1vZGVfZmxhZ3MgJiBN SVBJX0RTSV9NT0RFX1ZJREVPX0JVUlNUKSAmJgo+ID4gICAgICAgICAgICAgICAgICAgICAhKGRz aS0+bW9kZV9mbGFncyAmIE1JUElfRFNJX01PREVfVklERU9fU1lOQ19QVUxTRSkpCj4gPiAgICAg ICAgICAgICAgICAgICAgICAgICB2aWRfbW9kZSA9IEJVUlNUX01PREU7Cj4gPiArICAgICAgICAg ICAgICAgZWxzZQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgdmlkX21vZGUgPSBTWU5DX0VW RU5UX01PREU7Cj4gCj4gU28sIHdoZW4gZG8gd2UgdXNlIFNZTkNfUFVMU0VfTU9ERSAoc2V0IGp1 c3QgYmVmb3JlIHRoZSAnaWYnKT8KV2Ugd2lsbCB1cGRhdGUgdGhpcyBwYXJ0LgoKPiAKPiA+ICAg ICAgICAgfQo+ID4KPiA+ICAgICAgICAgd3JpdGVsKHZpZF9tb2RlLCBkc2ktPnJlZ3MgKyBEU0lf TU9ERV9DVFJMKTsKPiA+ICB9Cj4gPgo+ID4gK3N0YXRpYyB2b2lkIG10a19kc2lfc2V0X3ZtX2Nt ZChzdHJ1Y3QgbXRrX2RzaSAqZHNpKQo+ID4gK3sKPiA+ICsgICAgICAgd3JpdGVsKDB4M2MsIGRz aS0+cmVncyArIERTSV9NRU1fQ09OVEkpOwo+IAo+IFBsZWFzZSB1c2UgI2RlZmluZWQgY29uc3Rh bnRzLCBlc3BlY2lhbGx5IGlmIHRoaXMgcmVnaXN0ZXIgaXMgYSBiaXQgZmllbGQuCj4gQWxzbywg dGhpcyBsb29rcyBsaWtlIG5ldyBiZWhhdmlvciB3aGljaCBkb2Vzbid0IHNlZW0gcmVsYXRlZCB0 bwo+IGNoYW5naW5nIHRoZSBlbmFibGUgb3JkZXIuCj4gSWYgdGhpcyBpcyBhIGdlbmVyYWwgZml4 LCBwbGVhc2UgdXNlIGEgc2VwYXJhdGUgcGF0Y2guCldlIHdpbGwgcmVtb3ZlIHRoaXMgcGFydC4g IFRoaXMgY2hhbmdlIGlzIG5vdCBuZWNlc3NhcnkuCgo+IAo+ID4gKwo+ID4gKyAgICAgICBtdGtf ZHNpX21hc2soZHNpLCBEU0lfVk1fQ01EX0NPTiwgVk1fQ01EX0VOLCBWTV9DTURfRU4pOwo+ID4g KyAgICAgICBtdGtfZHNpX21hc2soZHNpLCBEU0lfVk1fQ01EX0NPTiwgVFNfVkZQX0VOLCBUU19W RlBfRU4pOwo+ID4gK30KPiA+ICsKPiA+ICBzdGF0aWMgdm9pZCBtdGtfZHNpX3BzX2NvbnRyb2xf dmFjdChzdHJ1Y3QgbXRrX2RzaSAqZHNpKQo+ID4gIHsKPiA+ICAgICAgICAgc3RydWN0IHZpZGVv bW9kZSAqdm0gPSAmZHNpLT52bTsKPiA+IEBAIC0zOTksNiArNDE3LDkgQEAgc3RhdGljIHZvaWQg bXRrX2RzaV9yeHR4X2NvbnRyb2woc3RydWN0IG10a19kc2kgKmRzaSkKPiA+ICAgICAgICAgICAg ICAgICBicmVhazsKPiA+ICAgICAgICAgfQo+ID4KPiA+ICsgICAgICAgdG1wX3JlZyB8PSAoZHNp LT5tb2RlX2ZsYWdzICYgTUlQSV9EU0lfQ0xPQ0tfTk9OX0NPTlRJTlVPVVMpIDw8IDY7Cj4gPiAr ICAgICAgIHRtcF9yZWcgfD0gKGRzaS0+bW9kZV9mbGFncyAmIE1JUElfRFNJX01PREVfRU9UX1BB Q0tFVCkgPj4gMzsKPiA+ICsKPiAKPiBkaXR0bwo+IAo+ID4gICAgICAgICB3cml0ZWwodG1wX3Jl ZywgZHNpLT5yZWdzICsgRFNJX1RYUlhfQ1RSTCk7Cj4gPiAgfQo+ID4KPiA+IEBAIC00NzcsNiAr NDk4LDE2IEBAIHN0YXRpYyB2b2lkIG10a19kc2lfc3RhcnQoc3RydWN0IG10a19kc2kgKmRzaSkK PiA+ICAgICAgICAgd3JpdGVsKDEsIGRzaS0+cmVncyArIERTSV9TVEFSVCk7Cj4gPiAgfQo+ID4K PiA+ICtzdGF0aWMgdm9pZCBtdGtfZHNpX3N0b3Aoc3RydWN0IG10a19kc2kgKmRzaSkKPiA+ICt7 Cj4gPiArICAgICAgIHdyaXRlbCgwLCBkc2ktPnJlZ3MgKyBEU0lfU1RBUlQpOwo+ID4gK30KPiA+ ICsKPiA+ICtzdGF0aWMgdm9pZCBtdGtfZHNpX3NldF9jbWRfbW9kZShzdHJ1Y3QgbXRrX2RzaSAq ZHNpKQo+ID4gK3sKPiA+ICsgICAgICAgd3JpdGVsKENNRF9NT0RFLCBkc2ktPnJlZ3MgKyBEU0lf TU9ERV9DVFJMKTsKPiA+ICt9Cj4gPiArCj4gPiAgc3RhdGljIHZvaWQgbXRrX2RzaV9zZXRfaW50 ZXJydXB0X2VuYWJsZShzdHJ1Y3QgbXRrX2RzaSAqZHNpKQo+ID4gIHsKPiA+ICAgICAgICAgdTMy IGludGVuID0gTFBSWF9SRF9SRFlfSU5UX0ZMQUcgfCBDTURfRE9ORV9JTlRfRkxBRyB8IFZNX0RP TkVfSU5UX0ZMQUc7Cj4gPiBAQCAtNTA2LDcgKzUzNyw3IEBAIHN0YXRpYyBzMzIgbXRrX2RzaV93 YWl0X2Zvcl9pcnFfZG9uZShzdHJ1Y3QgbXRrX2RzaSAqZHNpLCB1MzIgaXJxX2ZsYWcsCj4gPiAg ICAgICAgIGlmIChyZXQgPT0gMCkgewo+ID4gICAgICAgICAgICAgICAgIGRldl9pbmZvKGRzaS0+ ZGV2LCAiV2FpdCBEU0kgSVJRKDB4JTA4eCkgVGltZW91dFxuIiwgaXJxX2ZsYWcpOwo+ID4KPiA+ IC0gICAgICAgICAgICAgICBtdGtfZHNpX2VuYWJsZShkc2kpOwo+ID4gKyAgICAgICAgICAgICAg IG10a19kc2lfZW5naW5lX2VuYWJsZShkc2kpOwo+ID4gICAgICAgICAgICAgICAgIG10a19kc2lf cmVzZXRfZW5naW5lKGRzaSk7Cj4gPiAgICAgICAgIH0KPiA+Cj4gPiBAQCAtNTM1LDYgKzU2Niwx NyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgbXRrX2RzaV9pcnEoaW50IGlycSwgdm9pZCAqZGV2X2lk KQo+ID4gICAgICAgICByZXR1cm4gSVJRX0hBTkRMRUQ7Cj4gPiAgfQo+ID4KPiA+ICtzdGF0aWMg czMyIG10a19kc2lfc3dpdGNoX3RvX2NtZF9tb2RlKHN0cnVjdCBtdGtfZHNpICpkc2ksIHU4IGly cV9mbGFnLCB1MzIgdCkKPiA+ICt7Cj4gPiArICAgICAgIG10a19kc2lfaXJxX2RhdGFfY2xlYXIo ZHNpLCBpcnFfZmxhZyk7Cj4gPiArICAgICAgIG10a19kc2lfc2V0X2NtZF9tb2RlKGRzaSk7Cj4g PiArCj4gPiArICAgICAgIGlmICghbXRrX2RzaV93YWl0X2Zvcl9pcnFfZG9uZShkc2ksIGlycV9m bGFnLCB0KSkKPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gLTE7Cj4gCj4gTm8sIHVzZSBhIHJl YWwgbGludXggZXJybm8sIGFuZCByZXR1cm4gYW4gaW50LCBhbmQgcHJpbnQgYW4gZXJyb3IKPiBt ZXNzYWdlIGlmIHRoaXMgaXMgdW5leHBlY3RlZC4KV2lsbCB1c2UgYSByZWFsIGVycm5vOiBFVElN RS4KCj4gCj4gPiArICAgICAgIGVsc2UKPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gMDsKPiA+ ICt9Cj4gPiArCj4gPiAgc3RhdGljIHZvaWQgbXRrX2RzaV9wb3dlcm9mZihzdHJ1Y3QgbXRrX2Rz aSAqZHNpKQo+ID4gIHsKPiA+ICAgICAgICAgaWYgKFdBUk5fT04oZHNpLT5yZWZjb3VudCA9PSAw KSkKPiA+IEBAIC01NDMsMTEgKzU4NSw2IEBAIHN0YXRpYyB2b2lkIG10a19kc2lfcG93ZXJvZmYo c3RydWN0IG10a19kc2kgKmRzaSkKPiA+ICAgICAgICAgaWYgKC0tZHNpLT5yZWZjb3VudCAhPSAw KQo+ID4gICAgICAgICAgICAgICAgIHJldHVybjsKPiA+Cj4gPiAtICAgICAgIG10a19kc2lfbGFu ZTBfdWxwX21vZGVfZW50ZXIoZHNpKTsKPiA+IC0gICAgICAgbXRrX2RzaV9jbGtfdWxwX21vZGVf ZW50ZXIoZHNpKTsKPiA+IC0KPiA+IC0gICAgICAgbXRrX2RzaV9kaXNhYmxlKGRzaSk7Cj4gPiAt Cj4gPiAgICAgICAgIGNsa19kaXNhYmxlX3VucHJlcGFyZShkc2ktPmVuZ2luZV9jbGspOwo+ID4g ICAgICAgICBjbGtfZGlzYWJsZV91bnByZXBhcmUoZHNpLT5kaWdpdGFsX2Nsayk7Cj4gPgo+ID4g QEAgLTU2MSwzNSArNTk4LDQ1IEBAIHN0YXRpYyB2b2lkIG10a19vdXRwdXRfZHNpX2VuYWJsZShz dHJ1Y3QgbXRrX2RzaSAqZHNpKQo+ID4gICAgICAgICBpZiAoZHNpLT5lbmFibGVkKQo+ID4gICAg ICAgICAgICAgICAgIHJldHVybjsKPiA+Cj4gPiAtICAgICAgIGlmIChkc2ktPnBhbmVsKSB7Cj4g PiAtICAgICAgICAgICAgICAgaWYgKGRybV9wYW5lbF9wcmVwYXJlKGRzaS0+cGFuZWwpKSB7Cj4g PiAtICAgICAgICAgICAgICAgICAgICAgICBEUk1fRVJST1IoImZhaWxlZCB0byBzZXR1cCB0aGUg cGFuZWxcbiIpOwo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwo+ID4gLSAgICAg ICAgICAgICAgIH0KPiA+IC0gICAgICAgfQo+ID4gLQo+ID4gICAgICAgICByZXQgPSBtdGtfZHNp X3Bvd2Vyb24oZHNpKTsKPiA+ICAgICAgICAgaWYgKHJldCA8IDApIHsKPiA+ICAgICAgICAgICAg ICAgICBEUk1fRVJST1IoImZhaWxlZCB0byBwb3dlciBvbiBkc2lcbiIpOwo+ID4gICAgICAgICAg ICAgICAgIHJldHVybjsKPiA+ICAgICAgICAgfQo+ID4KPiA+ICsgICAgICAgdXNsZWVwX3Jhbmdl KDIwMDAwLCAyMTAwMCk7Cj4gPiArCj4gCj4gV2h5IGFyZSB5b3UgYWRkaW5nIGEgMjAgbXMgZGVs YXkgd2hlcmUgdGhlcmUgd2FzIG5vbmUgYmVmb3JlPwpBZnRlciBjaGVja2luZywgd2Ugd2lsbCBy ZW1vdmUgcmVkdW5kYW50IGNvZGVzIGFuZCB0aGUgZGVsYXkuCgo+IAo+ID4gICAgICAgICBtdGtf ZHNpX3J4dHhfY29udHJvbChkc2kpOwo+ID4gKyAgICAgICBtdGtfZHNpX3BoeV90aW1jb25maWco ZHNpKTsKPiA+ICsgICAgICAgbXRrX2RzaV9wc19jb250cm9sX3ZhY3QoZHNpKTsKPiA+ICsgICAg ICAgbXRrX2RzaV9zZXRfdm1fY21kKGRzaSk7Cj4gPiArICAgICAgIG10a19kc2lfY29uZmlnX3Zk b190aW1pbmcoZHNpKTsKPiA+ICsgICAgICAgbXRrX2RzaV9zZXRfaW50ZXJydXB0X2VuYWJsZShk c2kpOwo+ID4KPiA+ICsgICAgICAgbXRrX2RzaV9lbmdpbmVfZW5hYmxlKGRzaSk7Cj4gPiAgICAg ICAgIG10a19kc2lfY2xrX3VscF9tb2RlX2xlYXZlKGRzaSk7Cj4gPiAgICAgICAgIG10a19kc2lf bGFuZTBfdWxwX21vZGVfbGVhdmUoZHNpKTsKPiA+ICAgICAgICAgbXRrX2RzaV9jbGtfaHNfbW9k ZShkc2ksIDApOwo+ID4gLSAgICAgICBtdGtfZHNpX3NldF9tb2RlKGRzaSk7Cj4gPgo+ID4gLSAg ICAgICBtdGtfZHNpX3BzX2NvbnRyb2xfdmFjdChkc2kpOwo+ID4gLSAgICAgICBtdGtfZHNpX2Nv bmZpZ192ZG9fdGltaW5nKGRzaSk7Cj4gPiAtICAgICAgIG10a19kc2lfc2V0X2ludGVycnVwdF9l bmFibGUoZHNpKTsKPiA+ICsgICAgICAgaWYgKGRzaS0+cGFuZWwpIHsKPiA+ICsgICAgICAgICAg ICAgICBpZiAoZHJtX3BhbmVsX3ByZXBhcmUoZHNpLT5wYW5lbCkpIHsKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgIERSTV9FUlJPUigiZmFpbGVkIHRvIHByZXBhcmUgdGhlIHBhbmVsXG4iKTsK PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKPiA+ICsgICAgICAgICAgICAgICB9 Cj4gPiArICAgICAgIH0KPiA+Cj4gPiAgICAgICAgIG10a19kc2lfc2V0X21vZGUoZHNpKTsKPiA+ ICAgICAgICAgbXRrX2RzaV9jbGtfaHNfbW9kZShkc2ksIDEpOwo+ID4KPiA+ICAgICAgICAgbXRr X2RzaV9zdGFydChkc2kpOwo+ID4KPiA+ICsgICAgICAgaWYgKGRzaS0+cGFuZWwpIHsKPiA+ICsg ICAgICAgICAgICAgICBpZiAoZHJtX3BhbmVsX2VuYWJsZShkc2ktPnBhbmVsKSkgewo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgRFJNX0VSUk9SKCJmYWlsZWQgdG8gZW5hYmxlIHRoZSBwYW5l bFxuIik7Cj4gCj4gSW4gY2FzZSBvZiBlcnJvciwgeW91IG11c3QgdW5kbyBldmVyeXRoaW5nIGRv bmUgdG8gdGhpcyBwb2ludC4gIEF0IGxlYXN0Ogo+ICAoMSkgdW5wcmVwYXJlIHRoZSBwYW5lbAo+ ICAoMikgc3RvcCBkc2kKPiAgKDMpIHBvd2Vyb2ZmIGRzaQpPSy4KCj4gCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm47Cj4gPiArICAgICAgICAgICAgICAgfQo+ID4gKyAgICAgICB9 Cj4gPiArCj4gPiAgICAgICAgIGRzaS0+ZW5hYmxlZCA9IHRydWU7Cj4gPiAgfQo+ID4KPiA+IEBA IC02MDUsNiArNjUyLDIxIEBAIHN0YXRpYyB2b2lkIG10a19vdXRwdXRfZHNpX2Rpc2FibGUoc3Ry dWN0IG10a19kc2kgKmRzaSkKPiA+ICAgICAgICAgICAgICAgICB9Cj4gPiAgICAgICAgIH0KPiA+ Cj4gPiArICAgICAgIG10a19kc2lfc3RvcChkc2kpOwo+ID4gKyAgICAgICBtdGtfZHNpX3N3aXRj aF90b19jbWRfbW9kZShkc2ksIFZNX0RPTkVfSU5UX0ZMQUcsIDUwMCk7Cj4gCj4gVGhpcyBmdW5j dGlvbiBjYW4gcmV0dXJuIGFuIGVycm9yLCBzbyBwbGVhc2UgY2hlY2sgaXQuICBBbHRob3VnaCwK PiB0aGVyZSBwcm9iYWJseSBpc24ndCBtdWNoIHlvdSBjYW4gZG8gaGVyZSBhYm91dCBpdC4KT0su Cgo+IAo+ID4gKwo+ID4gKyAgICAgICBpZiAoZHNpLT5wYW5lbCkgewo+ID4gKyAgICAgICAgICAg ICAgIGlmIChkcm1fcGFuZWxfdW5wcmVwYXJlKGRzaS0+cGFuZWwpKSB7Cj4gPiArICAgICAgICAg ICAgICAgICAgICAgICBEUk1fRVJST1IoImZhaWxlZCB0byB1bnByZXBhcmUgdGhlIHBhbmVsXG4i KTsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKPiAKPiBJIHRoaW5rIHlvdSBz aG91bGQgcHJvYmFibHkganVzdCBpZ25vcmUgdGhpcyBlcnJvciBhbmQgY29udGludWUKPiBkaXNh YmxpbmcgZHNpLCBzaW5jZSBpdCBpc24ndCByZWFsbHkgcmVjb3ZlcmFibGUgYW5kIHlvdSBjYW4n dCByb2xsCj4gYmFjayBhbmQgcmUtZW5hYmxlIGRzaS4KT0suCgo+IAo+IAo+ID4gKyAgICAgICAg ICAgICAgIH0KPiA+ICsgICAgICAgfQo+ID4gKwo+ID4gKyAgICAgICBtdGtfZHNpX3Jlc2V0X2Vu Z2luZShkc2kpOwo+ID4gKyAgICAgICBtdGtfZHNpX2xhbmUwX3VscF9tb2RlX2VudGVyKGRzaSk7 Cj4gPiArICAgICAgIG10a19kc2lfY2xrX3VscF9tb2RlX2VudGVyKGRzaSk7Cj4gPiArICAgICAg IG10a19kc2lfZW5naW5lX2Rpc2FibGUoZHNpKTsKPiA+ICsKPiA+ICAgICAgICAgbXRrX2RzaV9w b3dlcm9mZihkc2kpOwo+ID4KPiA+ICAgICAgICAgZHNpLT5lbmFibGVkID0gZmFsc2U7Cj4gPiBA QCAtODQ1LDcgKzkwNyw3IEBAIHN0YXRpYyB2b2lkIG10a19kc2lfd2FpdF9mb3JfaWRsZShzdHJ1 Y3QgbXRrX2RzaSAqZHNpKQo+ID4gICAgICAgICBpZiAodGltZW91dF9tcyA9PSAwKSB7Cj4gPiAg ICAgICAgICAgICAgICAgZGV2X2luZm8oZHNpLT5kZXYsICJwb2xsaW5nIGRzaSB3YWl0IG5vdCBi dXN5IHRpbWVvdXQhXG4iKTsKPiA+Cj4gPiAtICAgICAgICAgICAgICAgbXRrX2RzaV9lbmFibGUo ZHNpKTsKPiA+ICsgICAgICAgICAgICAgICBtdGtfZHNpX2VuZ2luZV9lbmFibGUoZHNpKTsKPiA+ ICAgICAgICAgICAgICAgICBtdGtfZHNpX3Jlc2V0X2VuZ2luZShkc2kpOwo+ID4gICAgICAgICB9 Cj4gPiAgfQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfbWlw aV90eC5jIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19taXBpX3R4LmMKPiA+IGluZGV4 IDEwOGQzMWEuLjM0ZTk1YzYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0 ZWsvbXRrX21pcGlfdHguYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19t aXBpX3R4LmMKPiA+IEBAIC0xNzcsNyArMTc3LDkgQEAgc3RhdGljIGludCBtdGtfbWlwaV90eF9w bGxfcHJlcGFyZShzdHJ1Y3QgY2xrX2h3ICpodykKPiA+Cj4gPiAgICAgICAgIGRldl9kYmcobWlw aV90eC0+ZGV2LCAicHJlcGFyZTogJXUgSHpcbiIsIG1pcGlfdHgtPmRhdGFfcmF0ZSk7Cj4gPgo+ ID4gLSAgICAgICBpZiAobWlwaV90eC0+ZGF0YV9yYXRlID49IDUwMDAwMDAwMCkgewo+ID4gKyAg ICAgICBpZiAobWlwaV90eC0+ZGF0YV9yYXRlID4gMTI1MDAwMDAwMCkgewo+ID4gKyAgICAgICAg ICAgICAgIHJldHVybiAtRUlOVkFMOwo+ID4gKyAgICAgICB9IGVsc2UgaWYgKG1pcGlfdHgtPmRh dGFfcmF0ZSA+PSA1MDAwMDAwMDApIHsKPiAKPiBDYXBwaW5nIHRoZSBtYXggZGF0YSByYXRlIGxv b2tzIGxpa2UgYW4gdW5yZWxhdGVkIGZpeC4KV2lsbCBwcmVwYXJlIGFkZGl0aW9uYWwgcGF0Y2gg Zm9yIG1heCBkYXRhIHJhdGUuCgo+IAo+ID4gICAgICAgICAgICAgICAgIHR4ZGl2ID0gMTsKPiA+ ICAgICAgICAgICAgICAgICB0eGRpdjAgPSAwOwo+ID4gICAgICAgICAgICAgICAgIHR4ZGl2MSA9 IDA7Cj4gPiBAQCAtMjAxLDYgKzIwMywxMCBAQCBzdGF0aWMgaW50IG10a19taXBpX3R4X3BsbF9w cmVwYXJlKHN0cnVjdCBjbGtfaHcgKmh3KQo+ID4gICAgICAgICAgICAgICAgIHJldHVybiAtRUlO VkFMOwo+ID4gICAgICAgICB9Cj4gPgo+ID4gKyAgICAgICBtdGtfbWlwaV90eF91cGRhdGVfYml0 cyhtaXBpX3R4LCBNSVBJVFhfRFNJX1RPUF9DT04sCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJHX0RTSV9MTlRfSU1QX0NBTF9DT0RFIHwgUkdfRFNJX0xOVF9IU19CSUFTX0VO LAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoOCA8PCA0KSB8IFJHX0RTSV9M TlRfSFNfQklBU19FTik7Cj4gPiArCj4gPiAgICAgICAgIG10a19taXBpX3R4X3VwZGF0ZV9iaXRz KG1pcGlfdHgsIE1JUElUWF9EU0lfQkdfQ09OLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSR19EU0lfVk9VVF9NU0sgfAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSR19EU0lfQkdfQ0tFTiB8IFJHX0RTSV9CR19DT1JFX0VOLAo+ID4gQEAgLTIxMCwyNCAr MjE2LDE4IEBAIHN0YXRpYyBpbnQgbXRrX21pcGlfdHhfcGxsX3ByZXBhcmUoc3RydWN0IGNsa19o dyAqaHcpCj4gPgo+ID4gICAgICAgICB1c2xlZXBfcmFuZ2UoMzAsIDEwMCk7Cj4gPgo+ID4gLSAg ICAgICBtdGtfbWlwaV90eF91cGRhdGVfYml0cyhtaXBpX3R4LCBNSVBJVFhfRFNJX1RPUF9DT04s Cj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJHX0RTSV9MTlRfSU1QX0NBTF9D T0RFIHwgUkdfRFNJX0xOVF9IU19CSUFTX0VOLAo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoOCA8PCA0KSB8IFJHX0RTSV9MTlRfSFNfQklBU19FTik7Cj4gPiAtCj4gPiAtICAg ICAgIG10a19taXBpX3R4X3NldF9iaXRzKG1pcGlfdHgsIE1JUElUWF9EU0lfQ09OLAo+ID4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSR19EU0lfQ0tHX0xET09VVF9FTiB8IFJHX0RTSV9M RE9DT1JFX0VOKTsKPiA+ICsgICAgICAgbXRrX21pcGlfdHhfdXBkYXRlX2JpdHMobWlwaV90eCwg TUlQSVRYX0RTSV9DT04sCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJHX0RT SV9DS0dfTERPT1VUX0VOIHwgUkdfRFNJX0xET0NPUkVfRU4sCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJHX0RTSV9DS0dfTERPT1VUX0VOIHwgUkdfRFNJX0xET0NPUkVfRU4p Owo+IAo+IENoYW5naW5nIGZyb20gc2V0X2JpdHMgdG8gdXBkYXRlX2JpdHMgZG9lcyBub3QgZG8g YW55dGhpbmcuICBQbGVhc2UKPiBsZWF2ZSB0aGlzIGFsb25lLgpPSy4KCj4gCj4gPgo+ID4gICAg ICAgICBtdGtfbWlwaV90eF91cGRhdGVfYml0cyhtaXBpX3R4LCBNSVBJVFhfRFNJX1BMTF9QV1Is Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJHX0RTSV9NUFBMTF9TRE1fUFdS X09OIHwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkdfRFNJX01QUExMX1NE TV9JU09fRU4sCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJHX0RTSV9NUFBM TF9TRE1fUFdSX09OKTsKPiA+Cj4gPiAtICAgICAgIG10a19taXBpX3R4X2NsZWFyX2JpdHMobWlw aV90eCwgTUlQSVRYX0RTSV9QTExfQ09OMCwKPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSR19EU0lfTVBQTExfUExMX0VOKTsKPiA+IC0KPiAKPiBXaHkgZG9uJ3QgeW91IG5lZWQg dG8gZGlzYWJsZSB0aGUgUExMIGZpcnN0IG5vdz8KWWVzLCB3ZSBuZWVkLiAgV2lsbCBmaXggdGhp cy4KCj4gCj4gPiAgICAgICAgIG10a19taXBpX3R4X3VwZGF0ZV9iaXRzKG1pcGlfdHgsIE1JUElU WF9EU0lfUExMX0NPTjAsCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJHX0RT SV9NUFBMTF9UWERJVjAgfCBSR19EU0lfTVBQTExfVFhESVYxIHwKPiA+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUkdfRFNJX01QUExMX1BSRURJViwKPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUkdfRFNJX01QUExMX1BSRURJViB8IFJHX0RTSV9NUFBMTF9UWERJ VjAgfAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSR19EU0lfTVBQTExfVFhE SVYxIHwgUkdfRFNJX01QUExMX1BPU0RJViwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHR4ZGl2MCA8PCAzKSB8ICh0eGRpdjEgPDwgNSkpOwo+IAo+IElmIEkgcmVhZCB0aGlz IHJpZ2h0LCB0aGUgb25seSB0aGluZyB5b3UgYXJlIGNoYW5naW5nIGlzIGNsZWFyaW5nCj4gIlJH X0RTSV9NUFBMTF9QT1NESVYiLgo+IFRoaXMgd291bGQgYmUgbW9yZSBjbGVhciBpZiB5b3Uga2Vw dCB0aGUgZmllbGQgb3JkZXI6IFRYRElWMCwgVFhESVYxLCBQUkVESVYuCj4gCj4gQW5kIHdoeSBh cmUgeW91IG1ha2luZyB0aGlzIGNoYW5nZSBpbiB0aGlzIHBhdGNoPwpIbW0sIHdlIHdpbGwgcHJv dmlkZSBhbm90aGVyIHBhdGNoIGZvciB0aGlzIHBhcnQgaWYgbmVjZXNzYXJ5LgpTb21ldGltZXMg c2V0dGluZ3MgYXJlIGNoYW5nZWQgbm90IGluIGtlcm5lbCBzdGFnZSAobWF5YmUgZGlzcGxheSBm cm9tCmJvb3Rsb2FkZXIpICBUaGlzIGNoYW5nZSBqdXN0IG1ha2Ugc3VyZSBrZXJuZWwgaGF2ZSB0 aGUgcmlnaHQKY29uZmlndXJhdGlvbi4KCj4gCj4gCj4gPgo+ID4gICAgICAgICAvKgo+ID4gQEAg LTI0MiwxMCArMjQyLDEyIEBAIHN0YXRpYyBpbnQgbXRrX21pcGlfdHhfcGxsX3ByZXBhcmUoc3Ry dWN0IGNsa19odyAqaHcpCj4gPiAgICAgICAgICAgICAgICAgICAgICAgMjYwMDAwMDApOwo+ID4g ICAgICAgICB3cml0ZWwocGN3LCBtaXBpX3R4LT5yZWdzICsgTUlQSVRYX0RTSV9QTExfQ09OMik7 Cj4gPgo+ID4gLSAgICAgICBtdGtfbWlwaV90eF9zZXRfYml0cyhtaXBpX3R4LCBNSVBJVFhfRFNJ X1BMTF9DT04xLAo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBSR19EU0lfTVBQTExf U0RNX0ZSQV9FTik7Cj4gPiArICAgICAgIG10a19taXBpX3R4X3VwZGF0ZV9iaXRzKG1pcGlfdHgs IE1JUElUWF9EU0lfUExMX0NPTjEsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJHX0RTSV9NUFBMTF9TRE1fRlJBX0VOLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSR19EU0lfTVBQTExfU0RNX0ZSQV9FTik7Cj4gCj4gQUZBSUNULCB0aGlzIGNoYW5nZSBk b2VzIG5vdCBkbyBhbnl0aGluZyBidXQgbWFrZSB0aGUgY29kZSBtb3JlIGNvbmZ1c2luZy4KT0su Cgo+IAo+ID4KPiA+IC0gICAgICAgbXRrX21pcGlfdHhfc2V0X2JpdHMobWlwaV90eCwgTUlQSVRY X0RTSV9QTExfQ09OMCwgUkdfRFNJX01QUExMX1BMTF9FTik7Cj4gPiArICAgICAgIG10a19taXBp X3R4X3VwZGF0ZV9iaXRzKG1pcGlfdHgsIE1JUElUWF9EU0lfUExMX0NPTjAsCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJHX0RTSV9NUFBMTF9QTExfRU4sIFJHX0RTSV9NUFBM TF9QTExfRU4pOwo+IAo+IEFGQUlDVCwgdGhpcyBjaGFuZ2UgZG9lcyBub3QgZG8gYW55dGhpbmcg YnV0IG1ha2UgdGhlIGNvZGUgbW9yZSBjb25mdXNpbmcuCk9LLgoKPiAKPiA+Cj4gPiAgICAgICAg IHVzbGVlcF9yYW5nZSgyMCwgMTAwKTsKPiA+Cj4gPiAtLQo+ID4gMS45LjEKPiA+CgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxp bmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==