From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH] drm/i915/bxt: Port PLL programming BUN Date: Tue, 05 May 2015 18:44:03 +0300 Message-ID: <1430840643.21211.55.camel@intel.com> References: <1430752821-12428-1-git-send-email-vandana.kannan@intel.com> Reply-To: imre.deak@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id AB9C38809A for ; Tue, 5 May 2015 08:44:09 -0700 (PDT) In-Reply-To: <1430752821-12428-1-git-send-email-vandana.kannan@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Vandana Kannan Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gbWEsIDIwMTUtMDUtMDQgYXQgMjA6NTAgKzA1MzAsIFZhbmRhbmEgS2FubmFuIHdyb3RlOgo+ IEJVTiAxOiBwcm9wX2NvZWZmLCBpbnRfY29lZmYsIHRkY3RhcmdldGNudCBwcm9ncmFtbWluZyB1 cGRhdGVkIGFuZCB0aWVkIHRvCj4gVkNPIGZyZXF1ZW5jaWVzLiBQcm9ncmFtIGlfbG9ja3RocmVz aCBpbiBQT1JUX1BMTF85Lgo+IAo+IFZDTyBjYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBmb3JtdWxh Ogo+IERlc2lyZWQgT3V0cHV0ID0gUG9ydCBiaXQgcmF0ZSBpbiBNSHogKERpc3BsYXlQb3J0IEhC UjIgaXMgNTQwMCBNSHopCj4gRmFzdCBDbG9jayA9IERlc2lyZWQgT3V0cHV0IC8gMgo+IFZDTyA9 IEZhc3QgQ2xvY2sgKiBQMSAqIFAyCj4gCj4gUHJvcF9jb2VmZiwgaW50X2NvZWZmLCBhbmQgdGRj dGFyZ2V0Y250IG1vZGlmaWVkIGFjY29yZGluZyB0byBhYm92ZQo+IGNhbGN1bGF0aW9uLgo+IAo+ IEJVTiAyOiBQb3J0IFBMTHMgcmVxdWlyZSBhZGRpdGlvbmFsIHByb2dyYW1taW5nIGF0IGNlcnRh aW4gZnJlcXVlbmNpZXMgLQo+IERDTyBhbXBsaXR1ZGUgaW4gUE9SVF9QTExfMTAKPiAKPiBSZXZp ZXcgY29tbWVudHMgZnJvbSBTaXZhIHdoaWNoIHdlcmUgYWRkcmVzc2VkIGluIHRoZSBpbml0aWFs IHZlcnNpb24gb2YgdGhlCj4gcGF0Y2guCj4gCS0gQ2hhbmdlIFBPUlRfUExMX0xPQ0tfVEhSRVNI T0xEIHRvIFBPUlRfUExMX0xPQ0tfVEhSRVNIT0xEX01BU0sKPiAJLSBDYWxjdWxhdGUgZm9yIEhE TUkKPiAJLSBDb3JyZWN0IHZhbHVlcyBmb3IgdmNvID0gNS40Cj4gCS0gcmV0dXJuIGluIGNhc2Ug b2YgaW52YWxpZCB2Y28gcmFuZ2UKPiAKPiBTaWduZWQtb2ZmLWJ5OiBWYW5kYW5hIEthbm5hbiA8 dmFuZGFuYS5rYW5uYW5AaW50ZWwuY29tPgo+IENjOiBTaXZha3VtYXIgVGh1bGFzaW1hbmkgPHNp dmFrdW1hci50aHVsYXNpbWFuaUBpbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmggIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aCAgfCAgNiArKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIHwgNzIgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQo+ICAzIGZpbGVzIGNoYW5nZWQs IDYzIGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAo+IGluZGV4IGYzYzc3Y2EuLmNlYTU0ZWUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPiBAQCAtMzA5LDcgKzMwOSw3IEBAIHN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlIHsKPiAg CXVpbnQzMl90IGNmZ2NyMSwgY2ZnY3IyOwo+ICAKPiAgCS8qIGJ4dCAqLwo+IC0JdWludDMyX3Qg ZWJiMCwgcGxsMCwgcGxsMSwgcGxsMiwgcGxsMywgcGxsNiwgcGxsOCwgcGNzZHcxMjsKPiArCXVp bnQzMl90IGViYjAsIHBsbDAsIHBsbDEsIHBsbDIsIHBsbDMsIHBsbDYsIHBsbDgsIHBsbDEwLCBw Y3NkdzEyOwo+ICB9Owo+ICAKPiAgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsX2NvbmZpZyB7Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gaW5kZXggMzY4MDViNi4uODZmZGMzZSAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZWcuaAo+IEBAIC0xMTg1LDYgKzExODUsMTIgQEAgZW51bSBza2xfZGlz cF9wb3dlcl93ZWxscyB7Cj4gICNkZWZpbmUgICBQT1JUX1BMTF9HQUlOX0NUTCh4KQkJKCh4KSAg PDwgMTYpCj4gIC8qIFBPUlRfUExMXzhfQSAqLwo+ICAjZGVmaW5lICAgUE9SVF9QTExfVEFSR0VU X0NOVF9NQVNLCTB4M0ZGCj4gKy8qIFBPUlRfUExMXzlfQSAqLwo+ICsjZGVmaW5lICBQT1JUX1BM TF9MT0NLX1RIUkVTSE9MRF9NQVNLCTB4ZQo+ICsvKiBQT1JUX1BMTF8xMF9BICovCj4gKyNkZWZp bmUgIFBPUlRfUExMX0RDT19BTVBfT1ZSX0VOCSgxPDwyNykKClRoaXMgaXMgYWN0dWFsbHkgT1ZS X0VOX0gsIHNvIEknZCByZW5hbWUgaXQgYWNjb3JkaW5nbHksIG9yIHNpbXBseSB1c2UKT1ZSX0RJ Uy4KCj4gKyNkZWZpbmUgIFBPUlRfUExMX0RDT19BTVBfTUFTSwkJMHgzYzAwCj4gKyNkZWZpbmUg IFBPUlRfUExMX0RDT19BTVAoeCkJCSh4PDwxMCkKPiAgI2RlZmluZSBfUE9SVF9QTExfQkFTRShw b3J0KQkJX1BPUlQzKHBvcnQsIF9QT1JUX1BMTF8wX0EsCVwKPiAgCQkJCQkJX1BPUlRfUExMXzBf QiwJCVwKPiAgCQkJCQkJX1BPUlRfUExMXzBfQykKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ IGluZGV4IDQ1NWQ0NGIuLjMwMTRjMzcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGRpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ IEBAIC0xMzE5LDE4ICsxMzE5LDIwIEBAIHN0cnVjdCBieHRfY2xrX2RpdiB7Cj4gIAl1aW50MzJf dCBpbnRfY29lZjsKPiAgCXVpbnQzMl90IGdhaW5fY3RsOwo+ICAJdWludDMyX3QgdGFyZ19jbnQ7 Cj4gKwl1aW50MzJfdCBkY29hbXBvdnJfZW47CgpBcyBhYm92ZSBfZW5faCwgb3IgX2Rpcy4KCj4g Kwl1aW50MzJfdCBkY29fYW1wOwo+ICAJdWludDMyX3QgbGFuZXN0YWdnZXI7Cj4gIH07Cj4gIAo+ ICAvKiBwcmUtY2FsY3VsYXRlZCB2YWx1ZXMgZm9yIERQIGxpbmtyYXRlcyAqLwo+ICBzdGF0aWMg c3RydWN0IGJ4dF9jbGtfZGl2IGJ4dF9kcF9jbGtfdmFsWzddID0gewo+IC0JLyogMTYyICovIHs0 LCAyLCAzMiwgMTY3NzcyMiwgMSwgMSwgNSwgMTEsIDIsIDksIDB4ZH0sCj4gLQkvKiAyNzAgKi8g ezQsIDEsIDI3LCAgICAgICAwLCAwLCAxLCAzLCAgOCwgMSwgOSwgMHhkfSwKPiAtCS8qIDU0MCAq LyB7MiwgMSwgMjcsICAgICAgIDAsIDAsIDEsIDMsICA4LCAxLCA5LCAweDE4fSwKPiAtCS8qIDIx NiAqLyB7MywgMiwgMzIsIDE2Nzc3MjIsIDEsIDEsIDUsIDExLCAyLCA5LCAweGR9LAo+IC0JLyog MjQzICovIHs0LCAxLCAyNCwgMTI1ODI5MSwgMSwgMSwgNSwgMTEsIDIsIDksIDB4ZH0sCj4gLQkv KiAzMjQgKi8gezQsIDEsIDMyLCAxNjc3NzIyLCAxLCAxLCA1LCAxMSwgMiwgOSwgMHhkfSwKPiAt CS8qIDQzMiAqLyB7MywgMSwgMzIsIDE2Nzc3MjIsIDEsIDEsIDUsIDExLCAyLCA5LCAweDE4fQo+ ICsJLyogMTYyICovIHs0LCAyLCAzMiwgMTY3NzcyMiwgMSwgMSwgNCwgOSwgMywgOCwgMCwgMTUs IDB4ZH0sCj4gKwkvKiAyNzAgKi8gezQsIDEsIDI3LCAgICAgICAwLCAwLCAxLCAzLCAgOCwgMSwg OSwgMCwgMTUsIDB4ZH0sCj4gKwkvKiA1NDAgKi8gezIsIDEsIDI3LCAgICAgICAwLCAwLCAxLCAz LCAgOCwgMSwgOSwgMCwgMTUsIDB4MTh9LAo+ICsJLyogMjE2ICovIHszLCAyLCAzMiwgMTY3Nzcy MiwgMSwgMSwgNCwgOSwgMywgOCwgMCwgMTUsIDB4ZH0sCj4gKwkvKiAyNDMgKi8gezQsIDEsIDI0 LCAxMjU4MjkxLCAxLCAxLCA1LCAxMSwgMywgOSwgMSwgMTUsIDB4ZH0sCj4gKwkvKiAzMjQgKi8g ezQsIDEsIDMyLCAxNjc3NzIyLCAxLCAxLCA0LCA5LCAzLCA4LCAwLCAxNSwgMHhkfSwKPiArCS8q IDQzMiAqLyB7MywgMSwgMzIsIDE2Nzc3MjIsIDEsIDEsIDQsIDksIDMsIDgsIDAsIDE1LCAweDE4 fQo+ICB9Owo+ICAKPiAgc3RhdGljIGJvb2wKPiBAQCAtMTM2NCwxMSArMTM2NiwzNCBAQCBieHRf ZGRpX3BsbF9zZWxlY3Qoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCj4gIAkJY2xrX2Rp di5tMl9mcmFjID0gYmVzdF9jbG9jay5tMiAmICgoMSA8PCAyMikgLSAxKTsKPiAgCQljbGtfZGl2 Lm0yX2ZyYWNfZW4gPSBjbGtfZGl2Lm0yX2ZyYWMgIT0gMDsKPiAgCj4gLQkJLyogRklYTUU6IHNl dCBjb2VmLCBnYWluLCB0YXJnY250IGJhc2VkIG9uIGZyZXEgYmFuZCAqLwo+IC0JCWNsa19kaXYu cHJvcF9jb2VmID0gNTsKPiAtCQljbGtfZGl2LmludF9jb2VmID0gMTE7Cj4gLQkJY2xrX2Rpdi5n YWluX2N0bCA9IDI7Cj4gLQkJY2xrX2Rpdi50YXJnX2NudCA9IDk7Cj4gKwkJY2xrX2Rpdi5kY29f YW1wID0gMTU7Cj4gKwkJY2xrX2Rpdi5kY29hbXBvdnJfZW4gPSAwOwo+ICsJCWlmIChiZXN0X2Ns b2NrLnZjbyA+PSA2MjAwMDAwICYmIGJlc3RfY2xvY2sudmNvIDw9IDY0ODAwMDApIHsKPiArCQkJ Y2xrX2Rpdi5wcm9wX2NvZWYgPSA0Owo+ICsJCQljbGtfZGl2LmludF9jb2VmID0gOTsKPiArCQkJ Y2xrX2Rpdi5nYWluX2N0bCA9IDM7Cj4gKwkJCWNsa19kaXYudGFyZ19jbnQgPSA4Owo+ICsJCX0g ZWxzZSBpZiAoKGJlc3RfY2xvY2sudmNvID4gNTQwMDAwMCAmJgo+ICsJCQkJYmVzdF9jbG9jay52 Y28gPCA2MjAwMDAwKSB8fAo+ICsJCQkJKGJlc3RfY2xvY2sudmNvID49IDQ4MDAwMDAgJiYKPiAr CQkJCWJlc3RfY2xvY2sudmNvIDwgNTQwMDAwMCkpIHsKPiArCQkJY2xrX2Rpdi5wcm9wX2NvZWYg PSA1Owo+ICsJCQljbGtfZGl2LmludF9jb2VmID0gMTE7Cj4gKwkJCWNsa19kaXYuZ2Fpbl9jdGwg PSAzOwo+ICsJCQljbGtfZGl2LnRhcmdfY250ID0gOTsKPiArCQkJaWYgKGJlc3RfY2xvY2sudmNv ID49IDQ4MDAwMDAgJiYKPiArCQkJCWJlc3RfY2xvY2sudmNvIDwgNTQwMDAwMCkKPiArCQkJCWNs a19kaXYuZGNvYW1wb3ZyX2VuID0gMTsKPiArCQl9IGVsc2UgaWYgKGJlc3RfY2xvY2sudmNvID09 IDU0MDAwMDApIHsKPiArCQkJY2xrX2Rpdi5wcm9wX2NvZWYgPSAzOwo+ICsJCQljbGtfZGl2Lmlu dF9jb2VmID0gODsKPiArCQkJY2xrX2Rpdi5nYWluX2N0bCA9IDE7Cj4gKwkJCWNsa19kaXYudGFy Z19jbnQgPSA5Owo+ICsJCX0gZWxzZSB7Cj4gKwkJCURSTV9FUlJPUigiSW52YWxpZCBWQ09cbiIp Owo+ICsJCQlyZXR1cm4gZmFsc2U7Cj4gKwkJfQo+ICsKClRoaXMgZ2V0cyBtZXNzeSBhcyB3ZSBk dXBsaWNhdGUgdGhlIGNvZGUgdG8gY2FsY3VsYXRlIHRoZSBQSFkgcGFyYW1zIGZvcgpEUCBhbmQg SERNSSBhbmQgd2UgZG8gdGhlbSBpbiBkaWZmZXJlbnQgd2F5cy4gVGhlIGxhbmVzdGFnZ2VyIHZh bHVlIGZvcgozMjRNSHogc3ltYm9sIHJhdGUgaW4gYnh0X2RwX2Nsa192YWwgbG9va3MgYWxzbyBp bmNvcnJlY3QsIHNob3VsZCBiZQoweDE4IGluc3RlYWQgb2YgMHhkLgoKVGhpbmdzIHdvdWxkIGJl Y29tZSBtdWNoIGNsZWFyZXIgaWYgeW91J2QgdXNlIHRoZSBhYm92ZSBsb2dpYyBmb3IgYm90aApI RE1JIGFuZCBEUDoKCmludCB2Y287CmlmIChpbnRlbF9lbmNvZGVyLT50eXBlID09IElOVEVMX09V VFBVVF9IRE1JKSB7CgkuLi4KCXZjbyA9IGJlc3RfY2xvY2sudmNvOwp9IGVsc2UgewoJLi4uCgl2 Y28gPSBjbG9jayAqIDEwIC8gMiAqIGNsa19kaXYucDEgKiBjbGtfZGl2LnAyOwp9CgpBZnRlcndh cmRzIHlvdSBjYW4gdXNlIHRoZSBsb2dpYyB5b3UgYWRkZWQgaW4gdGhpcyBwYXRjaCBmb3IgYm90 aCBIRE1JCmFuZCBEUC4KClNpbWlsYXJseSwgbGFuZXN0YWdnZXIgc2hvdWxkIGJlIGNhbGN1bGF0 ZWQgaW4gdGhlIHNhbWUgd2F5IGZvciBib3RoCkhETUkgYW5kIERQIChjaGFuZ2luZyBpdCBpbiBh IHNlcGFyYXRlIHBhdGNoKS4KCj4gIAkJaWYgKGNsb2NrID4gMjcwMDAwKQo+ICAJCQljbGtfZGl2 LmxhbmVzdGFnZ2VyID0gMHgxODsKPiAgCQllbHNlIGlmIChjbG9jayA+IDEzNTAwMCkKPiBAQCAt MTQxNyw2ICsxNDQyLDExIEBAIGJ4dF9kZGlfcGxsX3NlbGVjdChzdHJ1Y3QgaW50ZWxfY3J0YyAq aW50ZWxfY3J0YywKPiAgCj4gIAljcnRjX3N0YXRlLT5kcGxsX2h3X3N0YXRlLnBsbDggPSBjbGtf ZGl2LnRhcmdfY250Owo+ICAKPiArCWlmIChjbGtfZGl2LmRjb2FtcG92cl9lbikKPiArCQljcnRj X3N0YXRlLT5kcGxsX2h3X3N0YXRlLnBsbDEwID0gUE9SVF9QTExfRENPX0FNUF9PVlJfRU47Cj4g Kwo+ICsJY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZS5wbGwxMCB8PSBQT1JUX1BMTF9EQ09fQU1Q KGNsa19kaXYuZGNvX2FtcCk7Cj4gKwo+ICAJY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZS5wY3Nk dzEyID0KPiAgCQlMQU5FU1RBR0dFUl9TVFJBUF9PVlJEIHwgY2xrX2Rpdi5sYW5lc3RhZ2dlcjsK PiAgCj4gQEAgLTIzNDgsMTAgKzIzNzgsMTkgQEAgc3RhdGljIHZvaWQgYnh0X2RkaV9wbGxfZW5h YmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCXRlbXAgfD0gcGxsLT5j b25maWcuaHdfc3RhdGUucGxsODsKPiAgCUk5MTVfV1JJVEUoQlhUX1BPUlRfUExMKHBvcnQsIDgp LCB0ZW1wKTsKPiAgCj4gLQkvKgo+IC0JICogRklYTUU6IHByb2dyYW0gUE9SVF9QTExfOS9pX2xv Y2t0aHJlc2ggYWNjb3JkaW5nIHRvIHRoZSBsYXRlc3QKPiAtCSAqIHNwZWNpZmljYXRpb24gdXBk YXRlLgo+IC0JICovCj4gKwkvKiBTcGVjIHVwZGF0ZTogV3JpdGUgNSB0byBsb2NrIHRocmVzaG9s ZCAqLwoKVGhpcyBjb21tZW50IGp1c3Qgc2F5cyB3aGF0IHRoZSBjb2RlIGRvZXMsIHNvIG5vIG5l ZWQgdG8gc3BlbGwgaXQgb3V0CnNlcGFyYXRlbHkuCgo+ICsJdGVtcCA9IEk5MTVfUkVBRChCWFRf UE9SVF9QTEwocG9ydCwgOSkpOwo+ICsJdGVtcCAmPSB+UE9SVF9QTExfTE9DS19USFJFU0hPTERf TUFTSzsKPiArCXRlbXAgfD0gKDUgPDwgMSk7Cj4gKwlJOTE1X1dSSVRFKEJYVF9QT1JUX1BMTChw b3J0LCA5KSwgdGVtcCk7Cj4gKwo+ICsJLyogU3BlYyB1cGRhdGU6IFdyaXRlIERDTyBhbXBsaXR1 ZGUgb3ZlcnJpZGUgdmFsdWUgdG8gaV9kY29hbXAgKi8KPiArCS8qIFNwZWMgdXBkYXRlOiBXcml0 ZSBEQ08gYW1wbGl0dWRlIG92ZXJyaWRlIGVuYWJsZSB0byBpX2Rjb2FtcG92cmRlbl9oICovCgpO byBuZWVkIGZvciB0aGUgYWJvdmUgY29tbWVudHMuCgo+ICsJdGVtcCA9IEk5MTVfUkVBRChCWFRf UE9SVF9QTEwocG9ydCwgMTApKTsKPiArCXRlbXAgJj0gflBPUlRfUExMX0RDT19BTVBfT1ZSX0VO Owo+ICsJdGVtcCAmPSB+UE9SVF9QTExfRENPX0FNUF9NQVNLOwo+ICsJdGVtcCB8PSBwbGwtPmNv bmZpZy5od19zdGF0ZS5wbGwxMDsKPiArCUk5MTVfV1JJVEUoQlhUX1BPUlRfUExMKHBvcnQsIDEw KSwgdGVtcCk7Cj4gIAo+ICAJLyogUmVjYWxpYnJhdGUgd2l0aCBuZXcgc2V0dGluZ3MgKi8KPiAg CXRlbXAgPSBJOTE1X1JFQUQoQlhUX1BPUlRfUExMX0VCQl80KHBvcnQpKTsKPiBAQCAtMjQxNSw2 ICsyNDU0LDcgQEAgc3RhdGljIGJvb2wgYnh0X2RkaV9wbGxfZ2V0X2h3X3N0YXRlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCWh3X3N0YXRlLT5wbGwzID0gSTkxNV9SRUFE KEJYVF9QT1JUX1BMTChwb3J0LCAzKSk7Cj4gIAlod19zdGF0ZS0+cGxsNiA9IEk5MTVfUkVBRChC WFRfUE9SVF9QTEwocG9ydCwgNikpOwo+ICAJaHdfc3RhdGUtPnBsbDggPSBJOTE1X1JFQUQoQlhU X1BPUlRfUExMKHBvcnQsIDgpKTsKPiArCWh3X3N0YXRlLT5wbGwxMCA9IEk5MTVfUkVBRChCWFRf UE9SVF9QTEwocG9ydCwgMTApKTsKPiAgCS8qCj4gIAkgKiBXaGlsZSB3ZSB3cml0ZSB0byB0aGUg Z3JvdXAgcmVnaXN0ZXIgdG8gcHJvZ3JhbSBhbGwgbGFuZXMgYXQgb25jZSB3ZQo+ICAJICogY2Fu IHJlYWQgb25seSBsYW5lIHJlZ2lzdGVycy4gV2UgY29uZmlndXJlIGFsbCBsYW5lcyB0aGUgc2Ft ZSB3YXksIHNvCgpXZSBzaG91bGQgYWxzbyByZWFkIG91dCBwbGwxMCBpbiBieHRfZGRpX3BsbF9n ZXRfaHdfc3RhdGUoKSBmb3IKY29uc2lzdGVuY3kuCgotLUltcmUKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==