From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v4] drm/i915: Determine the stolen memory base address on gen2 Date: Fri, 9 Oct 2015 10:14:51 +0200 Message-ID: <20151009081451.GE26718@phenom.ffwll.local> References: <1444295300-4479-1-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f179.google.com (mail-wi0-f179.google.com [209.85.212.179]) by gabe.freedesktop.org (Postfix) with ESMTPS id 51D636EDF9 for ; Fri, 9 Oct 2015 01:11:58 -0700 (PDT) Received: by wiclk2 with SMTP id lk2so59576304wic.0 for ; Fri, 09 Oct 2015 01:11:57 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1444295300-4479-1-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: ville.syrjala@linux.intel.com Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBPY3QgMDgsIDIwMTUgYXQgMTI6MDg6MjBQTSArMDMwMCwgdmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20gd3JvdGU6Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KPiAKPiBUaGVyZSBpc24ndCBhbiBleHBsaWNpdCBzdG9sZW4g bWVtb3J5IGJhc2UgcmVnaXN0ZXIgb24gZ2VuMi4KPiBTb21lIG9sZCBjb21tZW50IGluIHRoZSBp OTE1IGNvZGUgc3VnZ2VzdHMgd2Ugc2hvdWxkIGdldCBpdCB2aWEKPiBtYXhfbG93X3Bmbl9tYXBw ZWQsIGJ1dCB0aGF0J3MgY2xlYXJseSBhIGJhZCBpZGVhIG9uIG15IE1HTS4KPiAKPiBUaGUgZTgy MCBtYXAgaW4gc2FpZCBtYWNoaW5lIGxvb2tzIGxpa2UgdGhpczoKPiBbICAgIDAuMDAwMDAwXSBC SU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMDAwMDAwMDAwLTB4MDAwMDAwMDAwMDA5ZjdmZl0gdXNh YmxlCj4gWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDAwMDA5ZjgwMC0w eDAwMDAwMDAwMDAwOWZmZmZdIHJlc2VydmVkCj4gWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBb bWVtIDB4MDAwMDAwMDAwMDBjZTAwMC0weDAwMDAwMDAwMDAwY2ZmZmZdIHJlc2VydmVkCj4gWyAg ICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAwMDAwMDAwMDBkYzAwMC0weDAwMDAwMDAw MDAwZmZmZmZdIHJlc2VydmVkCj4gWyAgICAwLjAwMDAwMF0gQklPUy1lODIwOiBbbWVtIDB4MDAw MDAwMDAwMDEwMDAwMC0weDAwMDAwMDAwMWY2ZWZmZmZdIHVzYWJsZQo+IFsgICAgMC4wMDAwMDBd IEJJT1MtZTgyMDogW21lbSAweDAwMDAwMDAwMWY2ZjAwMDAtMHgwMDAwMDAwMDFmNmY3ZmZmXSBB Q1BJIGRhdGEKPiBbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMDFmNmY4 MDAwLTB4MDAwMDAwMDAxZjZmZmZmZl0gQUNQSSBOVlMKPiBbICAgIDAuMDAwMDAwXSBCSU9TLWU4 MjA6IFttZW0gMHgwMDAwMDAwMDFmNzAwMDAwLTB4MDAwMDAwMDAxZmZmZmZmZl0gcmVzZXJ2ZWQK PiBbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMGZlYzEwMDAwLTB4MDAw MDAwMDBmZWMxZmZmZl0gcmVzZXJ2ZWQKPiBbICAgIDAuMDAwMDAwXSBCSU9TLWU4MjA6IFttZW0g MHgwMDAwMDAwMGZmYjAwMDAwLTB4MDAwMDAwMDBmZmJmZmZmZl0gcmVzZXJ2ZWQKPiBbICAgIDAu MDAwMDAwXSBCSU9TLWU4MjA6IFttZW0gMHgwMDAwMDAwMGZmZjAwMDAwLTB4MDAwMDAwMDBmZmZm ZmZmZl0gcmVzZXJ2ZWQKPiAKPiBUaGF0IG1ha2VzIG1heF9sb3dfcGZuX21hcHBlZCA9IDFmNmYw MDAwLCBzbyBhc3N1bWluZyBvdXIgc3RvbGVuIG1lbW9yeQo+IHdvdWxkIHN0YXJ0IHRoZXJlIHdv dWxkIHBsYWNlIGl0IG9uIHRvcCBvZiBzb21lIEFDUEkgbWVtb3J5IHJlZ2lvbnMuCj4gU28gbm90 IGEgZ29vZCBpZGVhIGFzIGFscmVhZHkgc3RhdGVkLgo+IAo+IFRoZSA5TUIgcmVnaW9uIGFmdGVy IHRoZSBBQ1BJIHJlZ2lvbnMgYXQgMHgxZjcwMDAwMCBob3dldmVyIGxvb2tzCj4gcHJvbWlzaW5n IGdpdmVuIHRoYXQgdGhlIG1hY2luZSByZXBvcnRzIHRoZSBzdG9sZW4gbWVtb3J5IHNpemUgdG8g YmUKPiA4TUIuIExvb2tpbmcgYXQgdGhlIFBHVEJMX0NUTCByZWdpc3RlciwgdGhlIEdUVCBlbnRy aWVzIGFyZSBhdCBvZmZzZXQKPiAweDFmZWUwMDAwMCwgYW5kIGdpdmVuIHRoYXQgdGhlIEdUVCBl bnRyaWVzIG9jY3VweSAxMjhLQiwgaXQgbG9va3MgbGlrZQo+IHRoZSBzdG9sZW4gbWVtb3J5IGNv dWxkIHN0YXJ0IGF0IDB4MWY3MDAwMDAgYW5kIHRoZSBHVFQgZW50cmllcyB3b3VsZAo+IG9jY3Vw eSB0aGUgbGFzdCAxMjhLQiBvZiB0aGUgc3RvbGVuIG1lbW9yeS4KPiAKPiBBZnRlciBzb21lIG1v cmUgZGlnZ2luZyB0aHJvdWdoIGNoaXBzZXQgZG9jdW1lbnRhdGlvbiwgSSd2ZSBkZXRlcm1pbmVk Cj4gdGhlIEJJT1MgZmlyc3QgYWxsb2NhdGVzIHNwYWNlIGZvciBzb21ldGhpbmcgY2FsbGVkIFRT RUcgKHNvbWV0aGluZyB0bwo+IGRvIHdpdGggU01NKSBmcm9tIHRoZSB0b3Agb2YgbWVtb3J5LCBh bmQgdGhlbiBpdCBhbGxvY2F0ZXMgdGhlIGdyYXBoaWNzCj4gc3RvbGVuIG1lbW9yeSBiZWxvdyB0 aGF0LiBBY2NvcmRpbmQgdG8gdGhlIGNoaXBzZXQgZG9jdW1lbnRhdGlvbiBUU0VHCj4gaGFzIGEg Zml4ZWQgc2l6ZSBvZiAxTUIgb24gODU1LiBTbyB0aGF0IGV4cGxhaW5zIHRoZSB0b3AgMU1CIGlu IHRoZQo+IGU4MjAgcmVnaW9uLiBBbmQgaXQgYWxzbyBjb25maXJtcyB0aGF0IHRoZSBHVFQgZW50 cmllcyBhcmUgaW4gZmFjdCBhdAo+IHRoZSBlbmQgb2YgdGhlIHRoZSBzdG9sZW4gbWVtb3J5IHJl Z2lvbi4KPiAKPiBEZXJpdmUgdGhlIHN0b2xlbiBtZW1vcnkgYmFzZSBhZGRyZXNzIG9uIGdlbjIg dGhlIHNhbWUgYXMgdGhlIEJJT1MgZG9lcwo+IChUT00tVFNFR19TSVpFLXN0b2xlbl9zaXplKS4g VGhlcmUgYXJlIGEgZmV3IGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlCj4gcmVnaXN0ZXJzIG9uIHZh cmlvdXMgZ2VuMiBjaGlwc2V0cywgc28gYSBmZXcgZGlmZmVyZW50IGNvZGVwYXRocyBhcmUKPiBy ZXF1aXJlZC4KPiAKPiA4NjVHIGlzIGFnYWluIGJpdCBtb3JlIHNwZWNpYWwgc2luY2UgaXQgc2Vl bXMgdG8gc3VwcG9ydCBlbm91Z2ggbWVtb3J5Cj4gdG8gaGl0IDRHQiBhZGRyZXNzIHNwYWNlIGlz c3Vlcy4gVGhpcyBtZWFucyB0aGUgUENJIGFsbG9jYXRpb25zIHdpbGwKPiBhbHNvIGFmZmVjdCB0 aGUgbG9jYXRpb24gb2YgdGhlIHN0b2xlbiBtZW1vcnkuIEZvcnR1bmF0ZWx5IHRoZXJlCj4gYXBw ZWFycyB0byBiZSB0aGUgVE9VRCByZWdpc3RlciB3aGljaCBtYXkgZ2l2ZSB1cyB0aGUgY29ycmVj dCBhbnN3ZXIKPiBkaXJlY3RseS4gQnV0IHRoZSBjaGlwc2V0IGRvY3MgYXJlIGEgYml0IHVuY2xl YXIsIHNvIEknbSBub3QgMTAwJQo+IHN1cmUgdGhhdCB0aGUgZ3JhcGhpY3Mgc3RvbGVuIG1lbW9y eSBpcyBhbHdheXMgdGhlIGxhc3QgdGhpbmcgdGhlCj4gQklPUyBzdGVhbHMuIFNvbWVvbmUgd291 bGQgbmVlZCB0byB2ZXJpZnkgaXQgb24gYSByZWFsIHN5c3RlbS4KPiAKPiBJIHRlc3RlZCB0aGlz IG9uIHRoZSBteSA4MzAgYW5kIDg1NSBtYWNoaW5lcywgYW5kIHNvIGZhciBldmVyeXRoaW5nCj4g bG9va3MgcGVhY2h5Lgo+IAo+IHYyOiBSZXdyaXRlIHRvIHVzZSB0aGUgVE9NLVRTRUdfU0laRS1z dG9sZW5fc2l6ZSBhbmQgVE9VRCBtZXRob2RzCj4gdjM6IEZpeCBUU0VHIHNpemUgZm9yIDgzMAo+ IHY0OiBBZGQgbWlzc2luZyAnZWxzZScgKENocmlzKQo+IAo+IFRlc3RlZC1ieTogQ2hyaXMgV2ls c29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3ly asOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KClF1ZXVlZCBmb3IgLW5leHQs IHRoYW5rcyBmb3IgdGhlIHBhdGNoLgotRGFuaWVsCgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9zdG9sZW4uYyB8IDkyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDgxIGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygt KQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4u YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCj4gaW5kZXggNjllZWJj Ni4uY2RhY2YzZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9z dG9sZW4uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCj4g QEAgLTMwLDYgKzMwLDkgQEAKPiAgI2luY2x1ZGUgPGRybS9pOTE1X2RybS5oPgo+ICAjaW5jbHVk ZSAiaTkxNV9kcnYuaCIKPiAgCj4gKyNkZWZpbmUgS0IoeCkgKCh4KSAqIDEwMjQpCj4gKyNkZWZp bmUgTUIoeCkgKEtCKHgpICogMTAyNCkKPiArCj4gIC8qCj4gICAqIFRoZSBCSU9TIHR5cGljYWxs eSByZXNlcnZlcyBzb21lIG9mIHRoZSBzeXN0ZW0ncyBtZW1vcnkgZm9yIHRoZSBleGNsdXNpdmUK PiAgICogdXNlIG9mIHRoZSBpbnRlZ3JhdGVkIGdyYXBoaWNzLiBUaGlzIG1lbW9yeSBpcyBubyBs b25nZXIgYXZhaWxhYmxlIGZvcgo+IEBAIC05MSwyNCArOTQsOTEgQEAgc3RhdGljIHVuc2lnbmVk IGxvbmcgaTkxNV9zdG9sZW5fdG9fcGh5c2ljYWwoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAg CS8qIEFsbW9zdCB1bml2ZXJzYWxseSB3ZSBjYW4gZmluZCB0aGUgR3JhcGhpY3MgQmFzZSBvZiBT dG9sZW4gTWVtb3J5Cj4gIAkgKiBhdCBvZmZzZXQgMHg1YyBpbiB0aGUgaWdmeCBjb25maWd1cmF0 aW9uIHNwYWNlLiBPbiBhIGZldyAoZGVza3RvcCkKPiAgCSAqIG1hY2hpbmVzIHRoaXMgaXMgYWxz byBtaXJyb3JlZCBpbiB0aGUgYnJpZGdlIGRldmljZSBhdCBkaWZmZXJlbnQKPiAtCSAqIGxvY2F0 aW9ucywgb3IgaW4gdGhlIE1DSEJBUi4gT24gZ2VuMiwgdGhlIGxheW91dCBpcyBhZ2FpbiBzbGln aHRseQo+IC0JICogZGlmZmVyZW50IHdpdGggdGhlIEdyYXBoaWNzIFNlZ21lbnQgaW1tZWRpYXRl bHkgZm9sbG93aW5nIFRvcCBvZgo+IC0JICogTWVtb3J5IChvciBUb3Agb2YgVXNhYmxlIERSQU0p LiBOb3RlIGl0IGFwcGVhcnMgdGhhdCBUT1VEIGlzIG9ubHkKPiAtCSAqIHJlcG9ydGVkIGJ5IDg2 NWcsIHNvIHdlIGp1c3QgdXNlIHRoZSB0b3Agb2YgbWVtb3J5IGFzIGRldGVybWluZWQKPiAtCSAq IGJ5IHRoZSBlODIwIHByb2JlLgo+ICsJICogbG9jYXRpb25zLCBvciBpbiB0aGUgTUNIQkFSLgo+ ICsJICoKPiArCSAqIE9uIDg2NSB3ZSBqdXN0IGNoZWNrIHRoZSBUT1VEIHJlZ2lzdGVyLgo+ICsJ ICoKPiArCSAqIE9uIDgzMC84NDUvODV4IHRoZSBzdG9sZW4gbWVtb3J5IGJhc2UgaXNuJ3QgYXZh aWxhYmxlIGluIGFueQo+ICsJICogcmVnaXN0ZXIuIFdlIG5lZWQgdG8gY2FsY3VsYXRlIGl0IGFz IFRPTS1UU0VHX1NJWkUtc3RvbGVuX3NpemUuCj4gIAkgKgo+IC0JICogWFhYIEhvd2V2ZXIgZ2Vu MiByZXF1aXJlcyBhbiB1bmF2YWlsYWJsZSBzeW1ib2wuCj4gIAkgKi8KPiAgCWJhc2UgPSAwOwo+ ICAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDMpIHsKPiAgCQkvKiBSZWFkIEdyYXBoaWNz IEJhc2Ugb2YgU3RvbGVuIE1lbW9yeSBkaXJlY3RseSAqLwo+ICAJCXBjaV9yZWFkX2NvbmZpZ19k d29yZChkZXYtPnBkZXYsIDB4NWMsICZiYXNlKTsKPiAgCQliYXNlICY9IH4oKDE8PDIwKSAtIDEp Owo+IC0JfSBlbHNlIHsgLyogR0VOMiAqLwo+IC0jaWYgMAo+IC0JCS8qIFN0b2xlbiBpcyBpbW1l ZGlhdGVseSBhYm92ZSBUb3Agb2YgTWVtb3J5ICovCj4gLQkJYmFzZSA9IG1heF9sb3dfcGZuX21h cHBlZCA8PCBQQUdFX1NISUZUOwo+IC0jZW5kaWYKPiArCX0gZWxzZSBpZiAoSVNfSTg2NUcoZGV2 KSkgewo+ICsJCXUxNiB0b3VkID0gMDsKPiArCj4gKwkJLyoKPiArCQkgKiBGSVhNRSBpcyB0aGUg Z3JhcGhpY3Mgc3RvbGVuIG1lbW9yeSByZWdpb24KPiArCQkgKiBhbHdheXMgYXQgVE9VRD8gSWUu IGlzIGl0IGFsd2F5cyB0aGUgbGFzdAo+ICsJCSAqIG9uZSB0byBiZSBhbGxvY2F0ZWQgYnkgdGhl IEJJT1M/Cj4gKwkJICovCj4gKwkJcGNpX2J1c19yZWFkX2NvbmZpZ193b3JkKGRldi0+cGRldi0+ YnVzLCBQQ0lfREVWRk4oMCwgMCksCj4gKwkJCQkJIEk4NjVfVE9VRCwgJnRvdWQpOwo+ICsKPiAr CQliYXNlID0gdG91ZCA8PCAxNjsKPiArCX0gZWxzZSBpZiAoSVNfSTg1WChkZXYpKSB7Cj4gKwkJ dTMyIHRzZWdfc2l6ZSA9IDA7Cj4gKwkJdTMyIHRvbTsKPiArCQl1OCB0bXA7Cj4gKwo+ICsJCXBj aV9idXNfcmVhZF9jb25maWdfYnl0ZShkZXYtPnBkZXYtPmJ1cywgUENJX0RFVkZOKDAsIDApLAo+ ICsJCQkJCSBJODVYX0VTTVJBTUMsICZ0bXApOwo+ICsKPiArCQlpZiAodG1wICYgVFNFR19FTkFC TEUpCj4gKwkJCXRzZWdfc2l6ZSA9IE1CKDEpOwo+ICsKPiArCQlwY2lfYnVzX3JlYWRfY29uZmln X2J5dGUoZGV2LT5wZGV2LT5idXMsIFBDSV9ERVZGTigwLCAxKSwKPiArCQkJCQkgSTg1WF9EUkIz LCAmdG1wKTsKPiArCQl0b20gPSB0bXAgKiBNQigzMik7Cj4gKwo+ICsJCWJhc2UgPSB0b20gLSB0 c2VnX3NpemUgLSBkZXZfcHJpdi0+Z3R0LnN0b2xlbl9zaXplOwo+ICsJfSBlbHNlIGlmIChJU184 NDVHKGRldikpIHsKPiArCQl1MzIgdHNlZ19zaXplID0gMDsKPiArCQl1MzIgdG9tOwo+ICsJCXU4 IHRtcDsKPiArCj4gKwkJcGNpX2J1c19yZWFkX2NvbmZpZ19ieXRlKGRldi0+cGRldi0+YnVzLCBQ Q0lfREVWRk4oMCwgMCksCj4gKwkJCQkJIEk4NDVfRVNNUkFNQywgJnRtcCk7Cj4gKwo+ICsJCWlm ICh0bXAgJiBUU0VHX0VOQUJMRSkgewo+ICsJCQlzd2l0Y2ggKHRtcCAmIEk4NDVfVFNFR19TSVpF X01BU0spIHsKPiArCQkJY2FzZSBJODQ1X1RTRUdfU0laRV81MTJLOgo+ICsJCQkJdHNlZ19zaXpl ID0gS0IoNTEyKTsKPiArCQkJCWJyZWFrOwo+ICsJCQljYXNlIEk4NDVfVFNFR19TSVpFXzFNOgo+ ICsJCQkJdHNlZ19zaXplID0gTUIoMSk7Cj4gKwkJCQlicmVhazsKPiArCQkJfQo+ICsJCX0KPiAr Cj4gKwkJcGNpX2J1c19yZWFkX2NvbmZpZ19ieXRlKGRldi0+cGRldi0+YnVzLCBQQ0lfREVWRk4o MCwgMCksCj4gKwkJCQkJIEk4MzBfRFJCMywgJnRtcCk7Cj4gKwkJdG9tID0gdG1wICogTUIoMzIp Owo+ICsKPiArCQliYXNlID0gdG9tIC0gdHNlZ19zaXplIC0gZGV2X3ByaXYtPmd0dC5zdG9sZW5f c2l6ZTsKPiArCX0gZWxzZSBpZiAoSVNfSTgzMChkZXYpKSB7Cj4gKwkJdTMyIHRzZWdfc2l6ZSA9 IDA7Cj4gKwkJdTMyIHRvbTsKPiArCQl1OCB0bXA7Cj4gKwo+ICsJCXBjaV9idXNfcmVhZF9jb25m aWdfYnl0ZShkZXYtPnBkZXYtPmJ1cywgUENJX0RFVkZOKDAsIDApLAo+ICsJCQkJCSBJODMwX0VT TVJBTUMsICZ0bXApOwo+ICsKPiArCQlpZiAodG1wICYgVFNFR19FTkFCTEUpIHsKPiArCQkJaWYg KHRtcCAmIEk4MzBfVFNFR19TSVpFXzFNKQo+ICsJCQkJdHNlZ19zaXplID0gTUIoMSk7Cj4gKwkJ CWVsc2UKPiArCQkJCXRzZWdfc2l6ZSA9IEtCKDUxMik7Cj4gKwkJfQo+ICsKPiArCQlwY2lfYnVz X3JlYWRfY29uZmlnX2J5dGUoZGV2LT5wZGV2LT5idXMsIFBDSV9ERVZGTigwLCAwKSwKPiArCQkJ CQkgSTgzMF9EUkIzLCAmdG1wKTsKPiArCQl0b20gPSB0bXAgKiBNQigzMik7Cj4gKwo+ICsJCWJh c2UgPSB0b20gLSB0c2VnX3NpemUgLSBkZXZfcHJpdi0+Z3R0LnN0b2xlbl9zaXplOwo+ICAJfQo+ ICAKPiAgCWlmIChiYXNlID09IDApCj4gLS0gCj4gMi40LjkKPiAKPiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QK PiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gCkRhbmllbCBWZXR0ZXIKU29m dHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==