From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH 1/5] drm/i915/bxt: Decode memory bandwidth and parameters Date: Tue, 21 Aug 2018 08:12:58 -0700 Message-ID: <20180821151257.GB2159@intel.com> References: <20180726141410.2185-1-mahesh1.kumar@intel.com> <20180726141410.2185-2-mahesh1.kumar@intel.com> <20180817174337.GA8880@intel.com> <64b7e0f5-7095-b098-24fd-52503a3116f8@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 27AEF6E1F4 for ; Tue, 21 Aug 2018 15:12:59 +0000 (UTC) Content-Disposition: inline In-Reply-To: <64b7e0f5-7095-b098-24fd-52503a3116f8@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Kumar, Mahesh" Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBBdWcgMjEsIDIwMTggYXQgMDM6MjM6MDZQTSArMDUzMCwgS3VtYXIsIE1haGVzaCB3 cm90ZToKPiBIaSwKPiAKPiAKPiBPbiA4LzE3LzIwMTggMTE6MTMgUE0sIFJvZHJpZ28gVml2aSB3 cm90ZToKPiA+IE9uIFRodSwgSnVsIDI2LCAyMDE4IGF0IDA3OjQ0OjA2UE0gKzA1MzAsIE1haGVz aCBLdW1hciB3cm90ZToKPiA+ID4gVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgdG8gZGVjb2RlIHN5 c3RlbSBtZW1vcnkgYmFuZHdpZHRoIGFuZCBvdGhlcgo+ID4gPiBwYXJhbWV0ZXJzIGZvciBicm94 dG9uIHBsYXRmb3JtLCB3aGljaCB3aWxsIGJlIHVzZWQgZm9yIGFyYml0cmF0ZWQKPiA+ID4gZGlz cGxheSBtZW1vcnkgYmFuZHdpZHRoIGNhbGN1bGF0aW9uIGluIEdFTjkgYmFzZWQgcGxhdGZvcm1z IGFuZAo+ID4gPiBXTSBsYXRlbmN5IGxldmVsLTAgV29yay1hcm91bmQgY2FsY3VsYXRpb24gb24g R0VOOSsgcGxhdGZvcm1zLgo+ID4gPiAKPiA+ID4gQ2hhbmdlcyBzaW5jZSBWMToKPiA+ID4gICAt IHMvbWVtZGV2X2luZm8vZHJhbV9pbmZvCj4gPiA+IAo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBNYWhl c2ggS3VtYXIgPG1haGVzaDEua3VtYXJAaW50ZWwuY29tPgo+ID4gPiAtLS0KPiA+ID4gICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIHwgMTE2ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKPiA+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o IHwgIDExICsrKysKPiA+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIHwgIDMw ICsrKysrKysrKysrCj4gPiA+ICAgMyBmaWxlcyBjaGFuZ2VkLCAxNTcgaW5zZXJ0aW9ucygrKQo+ ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gPiA+IGluZGV4IDE4YTQ1ZTdhM2Q3 Yy4uMTY2Mjk2MDFjOWY0IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiA+ ID4gQEAgLTEwNzAsNiArMTA3MCwxMTYgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2FuaXRpemVfb3B0 aW9ucyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiA+ICAgCWludGVsX2d2 dF9zYW5pdGl6ZV9vcHRpb25zKGRldl9wcml2KTsKPiA+ID4gICB9Cj4gPiA+IAo+ID4gPiArc3Rh dGljIGludAo+ID4gPiArYnh0X2dldF9kcmFtX2luZm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+ID4gPiArewo+ID4gPiArCXN0cnVjdCBkcmFtX2luZm8gKmRyYW1faW5mbyA9 ICZkZXZfcHJpdi0+ZHJhbV9pbmZvOwo+ID4gPiArCXUzMiBkcmFtX2NoYW5uZWxzOwo+ID4gPiAr CXUzMiBtZW1fZnJlcV9raHosIHZhbDsKPiA+ID4gKwl1OCBudW1fYWN0aXZlX2NoYW5uZWxzOwo+ ID4gPiArCWludCBpOwo+ID4gPiArCj4gPiA+ICsJdmFsID0gSTkxNV9SRUFEKEJYVF9QX0NSX01D X0JJT1NfUkVRXzBfMF8wKTsKPiA+ID4gKwltZW1fZnJlcV9raHogPSBESVZfUk9VTkRfVVAoKHZh bCAmIEJYVF9SRVFfREFUQV9NQVNLKSAqCj4gPiA+ICsJCQkJICAgIEJYVF9NRU1PUllfRlJFUV9N VUxUSVBMSUVSX0haLCAxMDAwKTsKPiA+ID4gKwo+ID4gPiArCWRyYW1fY2hhbm5lbHMgPSAodmFs ID4+IEJYVF9EUkFNX0NIQU5ORUxfQUNUSVZFX1NISUZUKSAmCj4gPiA+ICsJCQkJCUJYVF9EUkFN X0NIQU5ORUxfQUNUSVZFX01BU0s7Cj4gPiA+ICsJbnVtX2FjdGl2ZV9jaGFubmVscyA9IGh3ZWln aHQzMihkcmFtX2NoYW5uZWxzKTsKPiA+ID4gKwo+ID4gPiArCS8qIEVhY2ggYWN0aXZlIGJpdCBy ZXByZXNlbnRzIDQtYnl0ZSBjaGFubmVsICovCj4gPiA+ICsJZHJhbV9pbmZvLT5iYW5kd2lkdGhf a2JwcyA9IChtZW1fZnJlcV9raHogKiBudW1fYWN0aXZlX2NoYW5uZWxzICogNCk7Cj4gPiA+ICsK PiA+ID4gKwlpZiAoZHJhbV9pbmZvLT5iYW5kd2lkdGhfa2JwcyA9PSAwKSB7Cj4gPiA+ICsJCURS TV9JTkZPKCJDb3VsZG4ndCBnZXQgc3lzdGVtIG1lbW9yeSBiYW5kd2lkdGhcbiIpOwo+ID4gPiAr CQlyZXR1cm4gLUVJTlZBTDsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gKwkvKgo+ID4gPiArCSAq IE5vdyByZWFkIGVhY2ggRFVOSVQ4LzkvMTAvMTEgdG8gY2hlY2sgdGhlIHJhbmsgb2YgZWFjaCBk aW1tcy4KPiA+ID4gKwkgKi8KPiA+ID4gKwlmb3IgKGkgPSBCWFRfRF9DUl9EUlAwX0RVTklUX1NU QVJUOyBpIDw9IEJYVF9EX0NSX0RSUDBfRFVOSVRfRU5EOyBpKyspIHsKPiA+ID4gKwkJdTggcmFu aywgc2l6ZSwgd2lkdGg7Cj4gPiA+ICsJCWVudW0gZHJhbV9yYW5rIGNoX3Jhbms7Cj4gPiA+ICsK PiA+ID4gKwkJdmFsID0gSTkxNV9SRUFEKEJYVF9EX0NSX0RSUDBfRFVOSVQoaSkpOwo+ID4gPiAr CQlpZiAodmFsID09IDB4RkZGRkZGRkYpCj4gPiA+ICsJCQljb250aW51ZTsKPiA+ID4gKwo+ID4g PiArCQlkcmFtX2luZm8tPm51bV9jaGFubmVscysrOwo+ID4gPiArCQlyYW5rID0gdmFsICYgQlhU X0RSQU1fUkFOS19NQVNLOwo+ID4gPiArCQl3aWR0aCA9ICh2YWwgPj4gQlhUX0RSQU1fV0lEVEhf U0hJRlQpICYgQlhUX0RSQU1fV0lEVEhfTUFTSzsKPiA+ID4gKwkJc2l6ZSA9ICh2YWwgPj4gQlhU X0RSQU1fU0laRV9TSElGVCkgJiBCWFRfRFJBTV9TSVpFX01BU0s7Cj4gPiA+ICsJCWlmIChyYW5r ID09IEJYVF9EUkFNX1JBTktfU0lOR0xFKQo+ID4gPiArCQkJY2hfcmFuayA9IEk5MTVfRFJBTV9S QU5LX1NJTkdMRTsKPiA+ID4gKwkJZWxzZSBpZiAocmFuayA9PSBCWFRfRFJBTV9SQU5LX0RVQUwp Cj4gPiA+ICsJCQljaF9yYW5rID0gSTkxNV9EUkFNX1JBTktfRFVBTDsKPiA+ID4gKwkJZWxzZQo+ ID4gPiArCQkJY2hfcmFuayA9IEk5MTVfRFJBTV9SQU5LX0lOVkFMSUQ7Cj4gPiA+ICsKPiA+ID4g KwkJaWYgKHNpemUgPT0gQlhUX0RSQU1fU0laRV80R0IpCj4gPiA+ICsJCQlzaXplID0gNDsKPiA+ ID4gKwkJZWxzZSBpZiAoc2l6ZSA9PSBCWFRfRFJBTV9TSVpFXzZHQikKPiA+ID4gKwkJCXNpemUg PSA2Owo+ID4gPiArCQllbHNlIGlmIChzaXplID09IEJYVF9EUkFNX1NJWkVfOEdCKQo+ID4gPiAr CQkJc2l6ZSA9IDg7Cj4gPiA+ICsJCWVsc2UgaWYgKHNpemUgPT0gQlhUX0RSQU1fU0laRV8xMkdC KQo+ID4gPiArCQkJc2l6ZSA9IDEyOwo+ID4gPiArCQllbHNlIGlmIChzaXplID09IEJYVF9EUkFN X1NJWkVfMTZHQikKPiA+ID4gKwkJCXNpemUgPSAxNjsKPiA+ID4gKwkJZWxzZQo+ID4gPiArCQkJ c2l6ZSA9IDA7Cj4gPiA+ICsKPiA+ID4gKwkJd2lkdGggPSAoMSA8PCB3aWR0aCkgKiA4Owo+ID4g PiArCQlEUk1fREVCVUdfS01TKCJkcmFtIHNpemU6JWRHQiB3aWR0aDpYJWQgcmFuazolc1xuIiwg c2l6ZSwKPiA+ID4gKwkJCSAgICAgIHdpZHRoLCByYW5rID09IEJYVF9EUkFNX1JBTktfU0lOR0xF ID8gInNpbmdsZSIgOgo+ID4gPiArCQkJICAgICAgcmFuayA9PSBCWFRfRFJBTV9SQU5LX0RVQUwg PyAiZHVhbCIgOiAidW5rbm93biIpOwo+ID4gPiArCj4gPiA+ICsJCS8qCj4gPiA+ICsJCSAqIElm IGFueSBvZiB0aGUgY2hhbm5lbCBpcyBzaW5nbGUgcmFuayBjaGFubmVsLAo+ID4gPiArCQkgKiB3 b3JzdCBjYXNlIG91dHB1dCB3aWxsIGJlIHNhbWUgYXMgaWYgc2luZ2xlIHJhbmsKPiA+ID4gKwkJ ICogbWVtb3J5LCBzbyBjb25zaWRlciBzaW5nbGUgcmFuayBtZW1vcnkuCj4gPiA+ICsJCSAqLwo+ ID4gPiArCQlpZiAoZHJhbV9pbmZvLT5yYW5rID09IEk5MTVfRFJBTV9SQU5LX0lOVkFMSUQpCj4g PiA+ICsJCQlkcmFtX2luZm8tPnJhbmsgPSBjaF9yYW5rOwo+ID4gPiArCQllbHNlIGlmIChjaF9y YW5rID09IEk5MTVfRFJBTV9SQU5LX1NJTkdMRSkKPiA+ID4gKwkJCWRyYW1faW5mby0+cmFuayA9 IEk5MTVfRFJBTV9SQU5LX1NJTkdMRTsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gKwlpZiAoZHJh bV9pbmZvLT5yYW5rID09IEk5MTVfRFJBTV9SQU5LX0lOVkFMSUQpIHsKPiA+ID4gKwkJRFJNX0lO Rk8oImNvdWxkbid0IGdldCBtZW1vcnkgcmFuayBpbmZvcm1hdGlvblxuIik7Cj4gPiA+ICsJCXJl dHVybiAtRUlOVkFMOwo+ID4gPiArCX0KPiA+ID4gKwo+ID4gPiArCWRyYW1faW5mby0+dmFsaWQg PSB0cnVlOwo+ID4gPiArCXJldHVybiAwOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMg dm9pZAo+ID4gPiAraW50ZWxfZ2V0X2RyYW1faW5mbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4gPiA+ICt7Cj4gPiA+ICsJc3RydWN0IGRyYW1faW5mbyAqZHJhbV9pbmZvID0g JmRldl9wcml2LT5kcmFtX2luZm87Cj4gPiA+ICsJaW50IHJldDsKPiA+ID4gKwo+ID4gPiArCWRy YW1faW5mby0+dmFsaWQgPSBmYWxzZTsKPiA+ID4gKwlkcmFtX2luZm8tPnJhbmsgPSBJOTE1X0RS QU1fUkFOS19JTlZBTElEOwo+ID4gPiArCWRyYW1faW5mby0+YmFuZHdpZHRoX2ticHMgPSAwOwo+ ID4gPiArCWRyYW1faW5mby0+bnVtX2NoYW5uZWxzID0gMDsKPiA+ID4gKwo+ID4gPiArCWlmICgh SVNfQlJPWFRPTihkZXZfcHJpdikpCj4gPiA+ICsJCXJldHVybjsKPiA+ID4gKwo+ID4gPiArCXJl dCA9IGJ4dF9nZXRfZHJhbV9pbmZvKGRldl9wcml2KTsKPiA+ID4gKwlpZiAocmV0KQo+ID4gPiAr CQlyZXR1cm47Cj4gPiA+ICsKPiA+ID4gKwlEUk1fREVCVUdfS01TKCJEUkFNIGJhbmR3aWR0aDol ZCBLQnBzLCB0b3RhbC1jaGFubmVsczogJXVcbiIsCj4gPiA+ICsJCSAgICAgIGRyYW1faW5mby0+ YmFuZHdpZHRoX2ticHMsIGRyYW1faW5mby0+bnVtX2NoYW5uZWxzKTsKPiA+ID4gKwlEUk1fREVC VUdfS01TKCJEUkFNIHJhbms6ICVzIHJhbmtcbiIsCj4gPiA+ICsJCSAgICAgIChkcmFtX2luZm8t PnJhbmsgPT0gSTkxNV9EUkFNX1JBTktfRFVBTCkgPwo+ID4gPiArCQkgICAgICAiZHVhbCIgOiAi c2luZ2xlIik7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gICAvKioKPiA+ID4gICAgKiBpOTE1X2Ry aXZlcl9pbml0X2h3IC0gc2V0dXAgc3RhdGUgcmVxdWlyaW5nIGRldmljZSBhY2Nlc3MKPiA+ID4g ICAgKiBAZGV2X3ByaXY6IGRldmljZSBwcml2YXRlCj4gPiA+IEBAIC0xMTg3LDYgKzEyOTcsMTIg QEAgc3RhdGljIGludCBpOTE1X2RyaXZlcl9pbml0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKPiA+ID4gICAJCWdvdG8gZXJyX21zaTsKPiA+ID4gCj4gPiA+ICAgCWludGVs X29wcmVnaW9uX3NldHVwKGRldl9wcml2KTsKPiA+ID4gKwkvKgo+ID4gPiArCSAqIEZpbGwgdGhl IGRyYW0gc3RydWN0dXJlIHRvIGdldCB0aGUgc3lzdGVtIHJhdyBiYW5kd2lkdGggYW5kCj4gPiA+ ICsJICogZHJhbSBpbmZvLiBUaGlzIHdpbGwgYmUgdXNlZCBmb3IgbWVtb3J5IGxhdGVuY3kgY2Fs Y3VsYXRpb24uCj4gPiA+ICsJICovCj4gPiA+ICsJaW50ZWxfZ2V0X2RyYW1faW5mbyhkZXZfcHJp dik7Cj4gPiA+ICsKPiA+ID4gCj4gPiA+ICAgCXJldHVybiAwOwo+ID4gPiAKPiA+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCj4gPiA+IGluZGV4IDBmNDlmOTk4OGRmYS4uNDZmOTQyZmE3ZDYwIDEw MDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ID4gQEAgLTE5MDQsNiArMTkw NCwxNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7Cj4gPiA+ICAgCQlib29sIGRpc3RydXN0 X2Jpb3Nfd207Cj4gPiA+ICAgCX0gd207Cj4gPiA+IAo+ID4gPiArCXN0cnVjdCBkcmFtX2luZm8g ewo+ID4gPiArCQlib29sIHZhbGlkOwo+ID4gPiArCQl1OCBudW1fY2hhbm5lbHM7Cj4gPiA+ICsJ CWVudW0gZHJhbV9yYW5rIHsKPiA+ID4gKwkJCUk5MTVfRFJBTV9SQU5LX0lOVkFMSUQgPSAwLAo+ ID4gPiArCQkJSTkxNV9EUkFNX1JBTktfU0lOR0xFLAo+ID4gPiArCQkJSTkxNV9EUkFNX1JBTktf RFVBTAo+ID4gPiArCQl9IHJhbms7Cj4gPiA+ICsJCXUzMiBiYW5kd2lkdGhfa2JwczsKPiA+ID4g Kwl9IGRyYW1faW5mbzsKPiA+ID4gKwo+ID4gPiAgIAlzdHJ1Y3QgaTkxNV9ydW50aW1lX3BtIHJ1 bnRpbWVfcG07Cj4gPiA+IAo+ID4gPiAgIAlzdHJ1Y3Qgewo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVnLmgKPiA+ID4gaW5kZXggNTUzMGM0NzBmMzBkLi42NjkwMGQwMjc1NzAgMTAwNjQ0Cj4gPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ID4gPiBAQCAtOTYzNCw2ICs5NjM0LDM2IEBAIGVu dW0gc2tsX3Bvd2VyX2dhdGUgewo+ID4gPiAgICNkZWZpbmUgIERDX1NUQVRFX0RFQlVHX01BU0tf Q09SRVMJKDEgPDwgMCkKPiA+ID4gICAjZGVmaW5lICBEQ19TVEFURV9ERUJVR19NQVNLX01FTU9S WV9VUAkoMSA8PCAxKQo+ID4gPiAKPiA+ID4gKyNkZWZpbmUgQlhUX1BfQ1JfTUNfQklPU19SRVFf MF8wXzAJX01NSU8oTUNIQkFSX01JUlJPUl9CQVNFX1NOQiArIDB4NzExNCkKPiA+ID4gKyNkZWZp bmUgIEJYVF9SRVFfREFUQV9NQVNLCQkJMHgzRgo+ID4gPiArI2RlZmluZSAgQlhUX0RSQU1fQ0hB Tk5FTF9BQ1RJVkVfU0hJRlQJCTEyCj4gPiA+ICsjZGVmaW5lICBCWFRfRFJBTV9DSEFOTkVMX0FD VElWRV9NQVNLCQkweEYKPiA+IFRoYW5rcyBhIGxvdCBmb3IgdGhlIHNwZWMgcG9pbnRlcnMuIEJ1 dCBub3cgdGhhdCBJIG9wZW5lZCBpdCBhbmQKPiA+IHN0YXJ0ZWQgdG8gcmVhZGluZyBoZXJlIGl0 IHdhcyBoYXJkIHRvIHJldmlldyBhbmQgSSBub3RpY2VkIHRoaXMKPiA+IGlzIGJlY2F1c2UgdGhl IHdheSB0aGF0IGl0IGlzIGRlZmluZWQgaGVyZSBkb2Vzbid0IHJlc3BlY3Qgb3VyCj4gPiBzdGFu ZGFyZHMgYXMgZG9jdW1lbnRlZDoKPiA+IAo+ID4gIgo+ID4gKiBGb3IgYml0IGZpZWxkcywgZGVm aW5lIGEgYGBfTUFTS2BgIGFuZCBhIGBgX1NISUZUYGAgbWFjcm8uIERlZmluZSBiaXQgZmllbGQK PiA+ICAgKiBjb250ZW50cyBzbyB0aGF0IHRoZXkgYXJlIGFscmVhZHkgc2hpZnRlZCBpbiBwbGFj ZSwgYW5kIGNhbiBiZSBkaXJlY3RseQo+ID4gICAqIE9SJ2QuCj4gPiAiCj4gU28gSSdsbCBtb2Rp ZnkgYWxsICJfTUFTSyIgZGVmaW5lcyB0byBtYWtlIHRoZW0gc2hpZnRlZCBpbiBwbGFjZSwgU2hv dWxkIEkKPiByZWRlZmluZSBhbGwgdGhlIGJpdCBkZWZpbml0aW9ucyBhbHNvIHRvIGJlIHNoaWZ0 ZWQ/Cj4gQlRXIHRoZXNlIGJpdC1maWVsZHMgYXJlIHJlYWRvbmx5IGZvciBkcml2ZXIsCgpZZXMs IHBsZWFzZSBkZWZpbmUgZXZlcnl0aGluZyB3aXRoIHJpZ2h0IHNoaWZ0IGluIHBsYWNlIHNvIGl0 IGdldHMgZWFzaWVyIHRvCnJlYWQuCgpUaGFua3MsClJvZHJpZ28uCgo+IAo+IC1NYWhlc2gKPiA+ IAo+ID4gU28gcGxlYXNlIHByb3ZpZGUgYSBuZXcgdmVyc2lvbiB0aGF0IGZvbGxvd3MgdGhlIHJ1 bGVzIGFuZAo+ID4gdGhhdCBpdCBpcyBlYXNpZXIgdG8gcmV2aWV3LiBBbmQgc29ycnkgZm9yIG5v dCBub3RpY2luZyB0aGlzCj4gPiBvbiB5ZXN0ZXJkYXkncyByZXZpZXcuCj4gPiAKPiA+ID4gKyNk ZWZpbmUgIEJYVF9NRU1PUllfRlJFUV9NVUxUSVBMSUVSX0haCQkxMzMzMzMzMzMKPiA+ID4gKwo+ ID4gPiArI2RlZmluZSBCWFRfRF9DUl9EUlAwX0RVTklUOAkJCTB4MTAwMAo+ID4gPiArI2RlZmlu ZSBCWFRfRF9DUl9EUlAwX0RVTklUOQkJCTB4MTIwMAo+ID4gPiArI2RlZmluZSAgQlhUX0RfQ1Jf RFJQMF9EVU5JVF9TVEFSVAkJOAo+ID4gPiArI2RlZmluZSAgQlhUX0RfQ1JfRFJQMF9EVU5JVF9F TkQJCTExCj4gPiA+ICsjZGVmaW5lIEJYVF9EX0NSX0RSUDBfRFVOSVQoeCkJX01NSU8oTUNIQkFS X01JUlJPUl9CQVNFX1NOQiArIFwKPiA+ID4gKwkJCQkgICAgICBfUElDS19FVkVOKCh4KSAtIDgs IEJYVF9EX0NSX0RSUDBfRFVOSVQ4LFwKPiA+ID4gKwkJCQkJCSBCWFRfRF9DUl9EUlAwX0RVTklU OSkpCj4gPiA+ICsjZGVmaW5lICBCWFRfRFJBTV9SQU5LX01BU0sJCQkweDMKPiA+ID4gKyNkZWZp bmUgIEJYVF9EUkFNX1JBTktfU0lOR0xFCQkJMHgxCj4gPiA+ICsjZGVmaW5lICBCWFRfRFJBTV9S QU5LX0RVQUwJCQkweDMKPiA+ID4gKyNkZWZpbmUgIEJYVF9EUkFNX1dJRFRIX01BU0sJCQkweDMK PiA+ID4gKyNkZWZpbmUgIEJYVF9EUkFNX1dJRFRIX1NISUZUCQkJNAo+ID4gPiArI2RlZmluZSAg QlhUX0RSQU1fV0lEVEhfWDgJCQkweDAKPiA+ID4gKyNkZWZpbmUgIEJYVF9EUkFNX1dJRFRIX1gx NgkJCTB4MQo+ID4gPiArI2RlZmluZSAgQlhUX0RSQU1fV0lEVEhfWDMyCQkJMHgyCj4gPiA+ICsj ZGVmaW5lICBCWFRfRFJBTV9XSURUSF9YNjQJCQkweDMKPiA+ID4gKyNkZWZpbmUgIEJYVF9EUkFN X1NJWkVfTUFTSwkJCTB4Nwo+ID4gPiArI2RlZmluZSAgQlhUX0RSQU1fU0laRV9TSElGVAkJCTYK PiA+ID4gKyNkZWZpbmUgIEJYVF9EUkFNX1NJWkVfNEdCCQkJMHgwCj4gPiA+ICsjZGVmaW5lICBC WFRfRFJBTV9TSVpFXzZHQgkJCTB4MQo+ID4gPiArI2RlZmluZSAgQlhUX0RSQU1fU0laRV84R0IJ CQkweDIKPiA+ID4gKyNkZWZpbmUgIEJYVF9EUkFNX1NJWkVfMTJHQgkJCTB4Mwo+ID4gPiArI2Rl ZmluZSAgQlhUX0RSQU1fU0laRV8xNkdCCQkJMHg0Cj4gPiA+ICsKPiA+ID4gICAvKiBQbGVhc2Ug c2VlIGhzd19yZWFkX2Rjb21wKCkgYW5kIGhzd193cml0ZV9kY29tcCgpIGJlZm9yZSB1c2luZyB0 aGlzIHJlZ2lzdGVyLAo+ID4gPiAgICAqIHNpbmNlIG9uIEhTVyB3ZSBjYW4ndCB3cml0ZSB0byBp dCB1c2luZyBJOTE1X1dSSVRFLiAqLwo+ID4gPiAgICNkZWZpbmUgRF9DT01QX0hTVwkJCV9NTUlP KE1DSEJBUl9NSVJST1JfQkFTRV9TTkIgKyAweDVGMEMpCj4gPiA+IC0tCj4gPiA+IDIuMTYuMgo+ ID4gPiAKPiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KPiA+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4gPiBJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCj4gPiA+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cj4gCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=