From mboxrd@z Thu Jan 1 00:00:00 1970 From: abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org Subject: Re: [DPU PATCH v2 2/2] drm/msm/dsi: implement auto PHY timing calculator for 10nm PHY Date: Fri, 13 Apr 2018 13:52:17 -0700 Message-ID: <41fb3b8501b466e40a542066b76004c0@codeaurora.org> References: <1523087405-18877-1-git-send-email-abhinavk@codeaurora.org> <1523411647-16840-2-git-send-email-abhinavk@codeaurora.org> <20180413202919.GK73214@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180413202919.GK73214@art_vandelay> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Sean Paul Cc: jeykumar-jfJNa2p1gH1BDgjK7y7TUQ@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, hoegsberg-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, chandanu-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gMjAxOC0wNC0xMyAxMzoyOSwgU2VhbiBQYXVsIHdyb3RlOgo+IE9uIFR1ZSwgQXByIDEwLCAy MDE4IGF0IDA2OjU0OjA3UE0gLTA3MDAsIEFiaGluYXYgS3VtYXIgd3JvdGU6Cj4+IEN1cnJlbnRs eSB0aGUgRFNJIFBIWSB0aW1pbmdzIGFyZSBoYXJkLWNvZGVkIGZvciBhIHNwZWNpZmljIHBhbmVs Cj4+IGZvciB0aGUgMTBubSBQSFkuCj4+IAo+PiBSZXBsYWNlIHRoaXMgd2l0aCB0aGUgYXV0byBQ SFkgdGltaW5nIGNhbGN1bGF0b3Igd2hpY2ggY2FuIGNhbGN1bGF0ZQo+PiB0aGUgUEhZIHRpbWlu Z3MgZm9yIGFueSBwYW5lbC4KPiAKPiBBbnkgY2hhbmNlIHlvdSBjb3VsZCBkb2N1bWVudCB3aGF0 IHlvdSdyZSBkb2luZyBzbyBhbnlvbmUgd2l0aG91dCAKPiBkb2N1bWVudGF0aW9uCj4gaGFzIGEg Y2x1ZSB3aGF0J3MgZ29pbmcgb24/Cj4gCj4gU2Vhbgo+IApJIGFtIGFmcmFpZCBpdCB3aWxsIGhh cmQgdG8gZG9jdW1lbnQgbW9yZSBhYm91dCB0aGlzIGZ1bmN0aW9uIG90aGVyIHRoYW4gCndoYXRz IG1lbnRpb25lZCBoZXJlLgpCYXNpY2FsbHksIHdlIGhhdmUgYW4gZXhjZWwgc2hlZXQgd2hpY2gg ZG9lcyB0aGlzIG1hdGggdG8gY2FsY3VsYXRlIHRoZSAKRFNJIHRpbWluZ3MuClRoaXMgcGF0Y2gg aW1wbGVtZW50cyB0aGF0IGV4Y2VsIHNoZWV0IGZvciBTRE04NDUgd2hpY2ggdXNlcyAxMG5tIFBI WS4KV2Ugd2lsbCBub3QgYmUgYWJsZSB0byBleHBsYWluIHRoZSBtYXRoIGluIG1vcmUgZGV0YWls Lgo+PiAKPj4gQ2hhbmdlcyBpbiB2MjoKPj4gLSBOb25lCj4+IAo+PiBSZXZpZXdlZC1ieTogQXJj aGl0IFRhbmVqYSA8YXJjaGl0dEBjb2RlYXVyb3JhLm9yZz4KPj4gU2lnbmVkLW9mZi1ieTogQWJo aW5hdiBLdW1hciA8YWJoaW5hdmtAY29kZWF1cm9yYS5vcmc+Cj4+IC0tLQo+PiAgZHJpdmVycy9n cHUvZHJtL21zbS9kc2kvcGh5L2RzaV9waHkuYyAgICAgIHwgMTExIAo+PiArKysrKysrKysrKysr KysrKysrKysrKysrKysrKwo+PiAgZHJpdmVycy9ncHUvZHJtL21zbS9kc2kvcGh5L2RzaV9waHku aCAgICAgIHwgICAyICsKPj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZHNpL3BoeS9kc2lfcGh5XzEw bm0uYyB8ICAyOCAtLS0tLS0tLQo+PiAgMyBmaWxlcyBjaGFuZ2VkLCAxMTMgaW5zZXJ0aW9ucygr KSwgMjggZGVsZXRpb25zKC0pCj4+IAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21z bS9kc2kvcGh5L2RzaV9waHkuYyAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9waHkvZHNp X3BoeS5jCj4+IGluZGV4IDhlOWQ1YzIuLjViNDI4ODUgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9tc20vZHNpL3BoeS9kc2lfcGh5LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21z bS9kc2kvcGh5L2RzaV9waHkuYwo+PiBAQCAtMjY1LDYgKzI2NSwxMTcgQEAgaW50IG1zbV9kc2lf ZHBoeV90aW1pbmdfY2FsY192MihzdHJ1Y3QgCj4+IG1zbV9kc2lfZHBoeV90aW1pbmcgKnRpbWlu ZywKPj4gIAlyZXR1cm4gMDsKPj4gIH0KPj4gCj4+ICtpbnQgbXNtX2RzaV9kcGh5X3RpbWluZ19j YWxjX3YzKHN0cnVjdCBtc21fZHNpX2RwaHlfdGltaW5nICp0aW1pbmcsCj4+ICsJCQkJICAgICAg IHN0cnVjdCBtc21fZHNpX3BoeV9jbGtfcmVxdWVzdCAqY2xrX3JlcSkKPj4gK3sKPj4gKwljb25z dCB1bnNpZ25lZCBsb25nIGJpdF9yYXRlID0gY2xrX3JlcS0+Yml0Y2xrX3JhdGU7Cj4+ICsJY29u c3QgdW5zaWduZWQgbG9uZyBlc2NfcmF0ZSA9IGNsa19yZXEtPmVzY2Nsa19yYXRlOwo+PiArCXMz MiB1aSwgdWlfeDgsIGxweDsKPj4gKwlzMzIgdG1heCwgdG1pbjsKPj4gKwlzMzIgcGNudDAgPSA1 MDsKPj4gKwlzMzIgcGNudDEgPSA1MDsKPj4gKwlzMzIgcGNudDIgPSAxMDsKPj4gKwlzMzIgcGNu dDMgPSAzMDsKPj4gKwlzMzIgcGNudDQgPSAxMDsKPj4gKwlzMzIgcGNudDUgPSAyOwo+PiArCXMz MiBjb2VmZiA9IDEwMDA7IC8qIFByZWNpc2lvbiwgc2hvdWxkIGF2b2lkIG92ZXJmbG93ICovCj4+ ICsJczMyIGhiX2VuLCBoYl9lbl9ja2xuOwo+PiArCXMzMiB0ZW1wOwo+PiArCj4+ICsJaWYgKCFi aXRfcmF0ZSB8fCAhZXNjX3JhdGUpCj4+ICsJCXJldHVybiAtRUlOVkFMOwo+PiArCj4+ICsJdGlt aW5nLT5oc19oYWxmYnl0ZV9lbiA9IDA7Cj4+ICsJaGJfZW4gPSAwOwo+PiArCXRpbWluZy0+aHNf aGFsZmJ5dGVfZW5fY2tsbiA9IDA7Cj4+ICsJaGJfZW5fY2tsbiA9IDA7Cj4+ICsKPj4gKwl1aSA9 IG11bHRfZnJhYyhOU0VDX1BFUl9NU0VDLCBjb2VmZiwgYml0X3JhdGUgLyAxMDAwKTsKPj4gKwl1 aV94OCA9IHVpIDw8IDM7Cj4+ICsJbHB4ID0gbXVsdF9mcmFjKE5TRUNfUEVSX01TRUMsIGNvZWZm LCBlc2NfcmF0ZSAvIDEwMDApOwo+PiArCj4+ICsJdGVtcCA9IFNfRElWX1JPVU5EX1VQKDM4ICog Y29lZmYsIHVpX3g4KTsKPj4gKwl0bWluID0gbWF4X3QoczMyLCB0ZW1wLCAwKTsKPj4gKwl0ZW1w ID0gKDk1ICogY29lZmYpIC8gdWlfeDg7Cj4+ICsJdG1heCA9IG1heF90KHMzMiwgdGVtcCwgMCk7 Cj4+ICsJdGltaW5nLT5jbGtfcHJlcGFyZSA9IGxpbmVhcl9pbnRlcih0bWF4LCB0bWluLCBwY250 MCwgMCwgZmFsc2UpOwo+PiArCj4+ICsKPj4gKwl0ZW1wID0gMzAwICogY29lZmYgLSAodGltaW5n LT5jbGtfcHJlcGFyZSA8PCAzKSAqIHVpOwo+PiArCXRtaW4gPSBTX0RJVl9ST1VORF9VUCh0ZW1w LCB1aV94OCkgLSAxOwo+PiArCXRtYXggPSAodG1pbiA+IDI1NSkgPyA1MTEgOiAyNTU7Cj4+ICsJ dGltaW5nLT5jbGtfemVybyA9IGxpbmVhcl9pbnRlcih0bWF4LCB0bWluLCBwY250NSwgMCwgZmFs c2UpOwo+PiArCj4+ICsJdG1pbiA9IERJVl9ST1VORF9VUCg2MCAqIGNvZWZmICsgMyAqIHVpLCB1 aV94OCk7Cj4+ICsJdGVtcCA9IDEwNSAqIGNvZWZmICsgMTIgKiB1aSAtIDIwICogY29lZmY7Cj4+ ICsJdG1heCA9ICh0ZW1wICsgMyAqIHVpKSAvIHVpX3g4Owo+PiArCXRpbWluZy0+Y2xrX3RyYWls ID0gbGluZWFyX2ludGVyKHRtYXgsIHRtaW4sIHBjbnQzLCAwLCBmYWxzZSk7Cj4+ICsKPj4gKwl0 ZW1wID0gU19ESVZfUk9VTkRfVVAoNDAgKiBjb2VmZiArIDQgKiB1aSwgdWlfeDgpOwo+PiArCXRt aW4gPSBtYXhfdChzMzIsIHRlbXAsIDApOwo+PiArCXRlbXAgPSAoODUgKiBjb2VmZiArIDYgKiB1 aSkgLyB1aV94ODsKPj4gKwl0bWF4ID0gbWF4X3QoczMyLCB0ZW1wLCAwKTsKPj4gKwl0aW1pbmct PmhzX3ByZXBhcmUgPSBsaW5lYXJfaW50ZXIodG1heCwgdG1pbiwgcGNudDEsIDAsIGZhbHNlKTsK Pj4gKwo+PiArCXRlbXAgPSAxNDUgKiBjb2VmZiArIDEwICogdWkgLSAodGltaW5nLT5oc19wcmVw YXJlIDw8IDMpICogdWk7Cj4+ICsJdG1pbiA9IFNfRElWX1JPVU5EX1VQKHRlbXAsIHVpX3g4KSAt IDE7Cj4+ICsJdG1heCA9IDI1NTsKPj4gKwl0aW1pbmctPmhzX3plcm8gPSBsaW5lYXJfaW50ZXIo dG1heCwgdG1pbiwgcGNudDQsIDAsIGZhbHNlKTsKPj4gKwo+PiArCXRtaW4gPSBESVZfUk9VTkRf VVAoNjAgKiBjb2VmZiArIDQgKiB1aSwgdWlfeDgpIC0gMTsKPj4gKwl0ZW1wID0gMTA1ICogY29l ZmYgKyAxMiAqIHVpIC0gMjAgKiBjb2VmZjsKPj4gKwl0bWF4ID0gKHRlbXAgLyB1aV94OCkgLSAx Owo+PiArCXRpbWluZy0+aHNfdHJhaWwgPSBsaW5lYXJfaW50ZXIodG1heCwgdG1pbiwgcGNudDMs IDAsIGZhbHNlKTsKPj4gKwo+PiArCXRlbXAgPSA1MCAqIGNvZWZmICsgKChoYl9lbiA8PCAyKSAt IDgpICogdWk7Cj4+ICsJdGltaW5nLT5oc19ycXN0ID0gU19ESVZfUk9VTkRfVVAodGVtcCwgdWlf eDgpOwo+PiArCj4+ICsJdG1pbiA9IERJVl9ST1VORF9VUCgxMDAgKiBjb2VmZiwgdWlfeDgpIC0g MTsKPj4gKwl0bWF4ID0gMjU1Owo+PiArCXRpbWluZy0+aHNfZXhpdCA9IGxpbmVhcl9pbnRlcih0 bWF4LCB0bWluLCBwY250MiwgMCwgZmFsc2UpOwo+PiArCj4+ICsJdGVtcCA9IDUwICogY29lZmYg KyAoKGhiX2VuX2NrbG4gPDwgMikgLSA4KSAqIHVpOwo+PiArCXRpbWluZy0+aHNfcnFzdF9ja2xu ID0gU19ESVZfUk9VTkRfVVAodGVtcCwgdWlfeDgpOwo+PiArCj4+ICsJdGVtcCA9IDYwICogY29l ZmYgKyA1MiAqIHVpIC0gNDMgKiB1aTsKPj4gKwl0bWluID0gRElWX1JPVU5EX1VQKHRlbXAsIHVp X3g4KSAtIDE7Cj4+ICsJdG1heCA9IDYzOwo+PiArCXRpbWluZy0+c2hhcmVkX3RpbWluZ3MuY2xr X3Bvc3QgPQo+PiArCQkJCWxpbmVhcl9pbnRlcih0bWF4LCB0bWluLCBwY250MiwgMCwgZmFsc2Up Owo+PiArCj4+ICsJdGVtcCA9IDggKiB1aSArICh0aW1pbmctPmNsa19wcmVwYXJlIDw8IDMpICog dWk7Cj4+ICsJdGVtcCArPSAoKCh0aW1pbmctPmNsa196ZXJvICsgMykgPDwgMykgKyAxMSkgKiB1 aTsKPj4gKwl0ZW1wICs9IGhiX2VuX2NrbG4gPyAoKCh0aW1pbmctPmhzX3Jxc3RfY2tsbiA8PCAz KSArIDQpICogdWkpIDoKPj4gKwkJCQkoKCh0aW1pbmctPmhzX3Jxc3RfY2tsbiA8PCAzKSArIDgp ICogdWkpOwo+PiArCXRtaW4gPSBTX0RJVl9ST1VORF9VUCh0ZW1wLCB1aV94OCkgLSAxOwo+PiAr CXRtYXggPSA2MzsKPj4gKwlpZiAodG1pbiA+IHRtYXgpIHsKPj4gKwkJdGVtcCA9IGxpbmVhcl9p bnRlcih0bWF4IDw8IDEsIHRtaW4sIHBjbnQyLCAwLCBmYWxzZSk7Cj4+ICsJCXRpbWluZy0+c2hh cmVkX3RpbWluZ3MuY2xrX3ByZSA9IHRlbXAgPj4gMTsKPj4gKwkJdGltaW5nLT5zaGFyZWRfdGlt aW5ncy5jbGtfcHJlX2luY19ieV8yID0gMTsKPj4gKwl9IGVsc2Ugewo+PiArCQl0aW1pbmctPnNo YXJlZF90aW1pbmdzLmNsa19wcmUgPQo+PiArCQkJCWxpbmVhcl9pbnRlcih0bWF4LCB0bWluLCBw Y250MiwgMCwgZmFsc2UpOwo+PiArCQl0aW1pbmctPnNoYXJlZF90aW1pbmdzLmNsa19wcmVfaW5j X2J5XzIgPSAwOwo+PiArCX0KPj4gKwo+PiArCXRpbWluZy0+dGFfZ28gPSAzOwo+PiArCXRpbWlu Zy0+dGFfc3VyZSA9IDA7Cj4+ICsJdGltaW5nLT50YV9nZXQgPSA0Owo+PiArCj4+ICsJREJHKCIl ZCwgJWQsICVkLCAlZCwgJWQsICVkLCAlZCwgJWQsICVkLCAlZCwgJWQsICVkLCAlZCwgJWQsICVk LCAKPj4gJWQiLAo+PiArCSAgICB0aW1pbmctPnNoYXJlZF90aW1pbmdzLmNsa19wcmUsIHRpbWlu Zy0+c2hhcmVkX3RpbWluZ3MuY2xrX3Bvc3QsCj4+ICsJICAgIHRpbWluZy0+c2hhcmVkX3RpbWlu Z3MuY2xrX3ByZV9pbmNfYnlfMiwgdGltaW5nLT5jbGtfemVybywKPj4gKwkgICAgdGltaW5nLT5j bGtfdHJhaWwsIHRpbWluZy0+Y2xrX3ByZXBhcmUsIHRpbWluZy0+aHNfZXhpdCwKPj4gKwkgICAg dGltaW5nLT5oc196ZXJvLCB0aW1pbmctPmhzX3ByZXBhcmUsIHRpbWluZy0+aHNfdHJhaWwsCj4+ ICsJICAgIHRpbWluZy0+aHNfcnFzdCwgdGltaW5nLT5oc19ycXN0X2NrbG4sIHRpbWluZy0+aHNf aGFsZmJ5dGVfZW4sCj4+ICsJICAgIHRpbWluZy0+aHNfaGFsZmJ5dGVfZW5fY2tsbiwgdGltaW5n LT5oc19wcmVwX2RseSwKPj4gKwkgICAgdGltaW5nLT5oc19wcmVwX2RseV9ja2xuKTsKPj4gKwo+ PiArCj4+ICsJcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gIHZvaWQgbXNtX2RzaV9waHlfc2V0X3Ny Y19wbGwoc3RydWN0IG1zbV9kc2lfcGh5ICpwaHksIGludCBwbGxfaWQsIHUzMiAKPj4gcmVnLAo+ PiAgCQkJCXUzMiBiaXRfbWFzaykKPj4gIHsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZHNpL3BoeS9kc2lfcGh5LmggCj4+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kc2kvcGh5 L2RzaV9waHkuaAo+PiBpbmRleCBjNTYyNjhjLi5hMjRhYjgwIDEwMDY0NAo+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL2RzaS9waHkvZHNpX3BoeS5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZHNpL3BoeS9kc2lfcGh5LmgKPj4gQEAgLTEwMSw2ICsxMDEsOCBAQCBpbnQgbXNtX2Rz aV9kcGh5X3RpbWluZ19jYWxjKHN0cnVjdCAKPj4gbXNtX2RzaV9kcGh5X3RpbWluZyAqdGltaW5n LAo+PiAgCQkJICAgICBzdHJ1Y3QgbXNtX2RzaV9waHlfY2xrX3JlcXVlc3QgKmNsa19yZXEpOwo+ PiAgaW50IG1zbV9kc2lfZHBoeV90aW1pbmdfY2FsY192MihzdHJ1Y3QgbXNtX2RzaV9kcGh5X3Rp bWluZyAqdGltaW5nLAo+PiAgCQkJCXN0cnVjdCBtc21fZHNpX3BoeV9jbGtfcmVxdWVzdCAqY2xr X3JlcSk7Cj4+ICtpbnQgbXNtX2RzaV9kcGh5X3RpbWluZ19jYWxjX3YzKHN0cnVjdCBtc21fZHNp X2RwaHlfdGltaW5nICp0aW1pbmcsCj4+ICsJCQkJc3RydWN0IG1zbV9kc2lfcGh5X2Nsa19yZXF1 ZXN0ICpjbGtfcmVxKTsKPj4gIHZvaWQgbXNtX2RzaV9waHlfc2V0X3NyY19wbGwoc3RydWN0IG1z bV9kc2lfcGh5ICpwaHksIGludCBwbGxfaWQsIHUzMiAKPj4gcmVnLAo+PiAgCQkJCXUzMiBiaXRf bWFzayk7Cj4+ICBpbnQgbXNtX2RzaV9waHlfaW5pdF9jb21tb24oc3RydWN0IG1zbV9kc2lfcGh5 ICpwaHkpOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kc2kvcGh5L2RzaV9w aHlfMTBubS5jIAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL3BoeS9kc2lfcGh5XzEwbm0u Ywo+PiBpbmRleCAwYWY5NTFhLi5iM2ZmZmM4IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vbXNtL2RzaS9waHkvZHNpX3BoeV8xMG5tLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21z bS9kc2kvcGh5L2RzaV9waHlfMTBubS5jCj4+IEBAIC03OSwzNCArNzksNiBAQCBzdGF0aWMgdm9p ZCBkc2lfcGh5X2h3X3YzXzBfbGFuZV9zZXR0aW5ncyhzdHJ1Y3QgCj4+IG1zbV9kc2lfcGh5ICpw aHkpCj4+ICAJZHNpX3BoeV93cml0ZShsYW5lX2Jhc2UgKyBSRUdfRFNJXzEwbm1fUEhZX0xOX1RY X0RDVFJMKDMpLCAweDA0KTsKPj4gIH0KPj4gCj4+IC1zdGF0aWMgaW50IG1zbV9kc2lfZHBoeV90 aW1pbmdfY2FsY192MyhzdHJ1Y3QgbXNtX2RzaV9kcGh5X3RpbWluZyAKPj4gKnRpbWluZywKPj4g LQkJCQkgICAgICAgc3RydWN0IG1zbV9kc2lfcGh5X2Nsa19yZXF1ZXN0ICpjbGtfcmVxKQo+PiAt ewo+PiAtCS8qCj4+IC0JICogVE9ETzogVGhlc2UgcGFyYW1zIG5lZWQgdG8gYmUgY29tcHV0ZWQs IHRoZXkncmUgY3VycmVudGx5IAo+PiBoYXJkY29kZWQKPj4gLQkgKiBmb3IgYSAxNDQweDI1NjBA NjBIeiBwYW5lbCB3aXRoIGEgYnl0ZWNsayBvZiAxMDAuNjE4IE1oeiwgYW5kIGEKPj4gLQkgKiBk ZWZhdWx0IGVzY2FwZSBjbG9jayBvZiAxOS4yIE1oei4KPj4gLQkgKi8KPj4gLQo+PiAtCXRpbWlu Zy0+aHNfaGFsZmJ5dGVfZW4gPSAwOwo+PiAtCXRpbWluZy0+Y2xrX3plcm8gPSAweDFjOwo+PiAt CXRpbWluZy0+Y2xrX3ByZXBhcmUgPSAweDA3Owo+PiAtCXRpbWluZy0+Y2xrX3RyYWlsID0gMHgw NzsKPj4gLQl0aW1pbmctPmhzX2V4aXQgPSAweDIzOwo+PiAtCXRpbWluZy0+aHNfemVybyA9IDB4 MjE7Cj4+IC0JdGltaW5nLT5oc19wcmVwYXJlID0gMHgwNzsKPj4gLQl0aW1pbmctPmhzX3RyYWls ID0gMHgwNzsKPj4gLQl0aW1pbmctPmhzX3Jxc3QgPSAweDA1Owo+PiAtCXRpbWluZy0+dGFfc3Vy ZSA9IDB4MDA7Cj4+IC0JdGltaW5nLT50YV9nbyA9IDB4MDM7Cj4+IC0JdGltaW5nLT50YV9nZXQg PSAweDA0Owo+PiAtCj4+IC0JdGltaW5nLT5zaGFyZWRfdGltaW5ncy5jbGtfcHJlID0gMHgyZDsK Pj4gLQl0aW1pbmctPnNoYXJlZF90aW1pbmdzLmNsa19wb3N0ID0gMHgwZDsKPj4gLQo+PiAtCXJl dHVybiAwOwo+PiAtfQo+PiAtCj4+ICBzdGF0aWMgaW50IGRzaV8xMG5tX3BoeV9lbmFibGUoc3Ry dWN0IG1zbV9kc2lfcGh5ICpwaHksIGludCAKPj4gc3JjX3BsbF9pZCwKPj4gIAkJCSAgICAgICBz dHJ1Y3QgbXNtX2RzaV9waHlfY2xrX3JlcXVlc3QgKmNsa19yZXEpCj4+ICB7Cj4+IC0tCj4+IFRo ZSBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBpcyBhIG1lbWJlciBvZiB0aGUgQ29k ZSBBdXJvcmEgCj4+IEZvcnVtLAo+PiBhIExpbnV4IEZvdW5kYXRpb24gQ29sbGFib3JhdGl2ZSBQ cm9qZWN0Cj4+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpGcmVlZHJlbm8gbWFpbGluZyBsaXN0CkZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlZHJlbm8K