From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: Fwd: [PATCH] drm/i915: Avoid vblank counter for gen9+ Date: Mon, 22 Feb 2016 16:33:20 +0200 Message-ID: <1456151600.9487.20.camel@intel.com> References: <1455210047-1574-1-git-send-email-rodrigo.vivi@intel.com> <20160216155013.GO32705@phenom.ffwll.local> 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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 869B56E01A for ; Mon, 22 Feb 2016 14:33:24 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Rodrigo Vivi , patrik.jakobsson@intel.com, intel-gfx List-Id: intel-gfx@lists.freedesktop.org T24gdG8sIDIwMTYtMDItMTggYXQgMDg6NTYgLTA4MDAsIFJvZHJpZ28gVml2aSB3cm90ZToKPiBJ bXJlLCBQYXRyaWssIGRvIHlvdSBrbm93IGlmIEknbSBtaXNzaW5nIHNvbWV0aGluZyBvciB3aGF0 IEknbSBkb2luZwo+IHdyb25nIHdpdGggdGhpcyBwb3dlciBkb21haW4gaGFuZGxlciBmb3IgdmJs YW5rcyB0byBhdm9pZCBEQyBzdGF0ZXMKPiB3aGVuIHdlIG5lZWQgYSByZWxpYWJsZSBmcmFtZSBj b3VudGVyIGluIHBsYWNlLgo+IAo+IERvIHlvdSBoYXZlIGJldHRlciBpZGVhcz8KCldvdWxkIGl0 IGJlIHBvc3NpYmxlIHRvIGNoZWNrIHRoZSBEQzUvNiBlbnRyeSBjb3VudGVycyB3aGVuZXZlciB5 b3UgdHJ5CnRvIGFjY2VzcyB0byB2YmxhbmsgY291bnRlciBhbmQgY29uc2lkZXIgdGhlbSBjb3Jy dXB0ZWQgaWYgdGhleQppbmNyZWFzZWQgc2luY2UgdGhlIGxhc3QgYWNjZXNzPyBJbiB0aGlzIGNh c2UgeW91IGNvdWxkIGFkanVzdCB0aGUKY291bnRlciBiYXNlZCBvbiBzb21lIHRpbWVzdGFtcCBk aWZmZXJlbmNlLgoKLS1JbXJlCgo+IFRoYW5rcywKPiBSb2RyaWdvLgo+IAo+IC0tLS0tLS0tLS0g Rm9yd2FyZGVkIG1lc3NhZ2UgLS0tLS0tLS0tLQo+IEZyb206IFJvZHJpZ28gVml2aSA8cm9kcmln by52aXZpQGdtYWlsLmNvbT4KPiBEYXRlOiBXZWQsIEZlYiAxNywgMjAxNiBhdCAzOjE0IFBNCj4g U3ViamVjdDogUmU6IFtJbnRlbC1nZnhdIFtQQVRDSF0gZHJtL2k5MTU6IEF2b2lkIHZibGFuayBj b3VudGVyIGZvcgo+IGdlbjkrCj4gVG86IERhbmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4s IFBhdHJpayBKYWtvYnNzb24KPiA8cGF0cmlrLmpha29ic3NvbkBsaW51eC5pbnRlbC5jb20+Cj4g Q2M6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4sIGludGVsLWdmeAo+IDxp bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPgo+IAo+IAo+IE9uIFR1ZSwgRmViIDE2LCAy MDE2IGF0IDc6NTAgQU0sIERhbmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4KPiB3cm90ZToK PiA+IE9uIFRodSwgRmViIDExLCAyMDE2IGF0IDA5OjAwOjQ3QU0gLTA4MDAsIFJvZHJpZ28gVml2 aSB3cm90ZToKPiA+ID4gRnJhbWVjb3VudGVyIHJlZ2lzdGVyIGlzIHJlYWQtb25seSBzbyBETUMg Y2Fubm90IHJlc3RvcmUgaXQKPiA+ID4gYWZ0ZXIgZXhpdGluZyBEQzUgYW5kIERDNi4KPiA+ID4g Cj4gPiA+IEVhc2llc3Qgd2F5IHRvIGdvIGlzIHRvIGF2b2lkIHRoZSBjb3VudGVyIGFuZCB1c2Ug dmJsYW5rCj4gPiA+IGludGVycnVwdGlvbnMgZm9yIHRoaXMgcGxhdGZvcm0gYW5kIGZvciBhbGwg dGhlIGZvbGxvd2luZwo+ID4gPiBvbmVzIHNpbmNlIERNQyBjYW1lIHRvIHN0YXkuIEF0IGxlYXN0 IHdoaWxlIHdlIGNhbid0IGNoYW5nZQo+ID4gPiB0aGlzIHJlZ2lzdGVyIHRvIHJlYWQtd3JpdGUu Cj4gPiA+IAo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBp bnRlbC5jb20+Cj4gPiAKPiA+IE5vdyBteSBjb21tZW50cyBhbHNvIGluIHB1YmxpYzoKPiA+IC0g RG8gd2Ugc3RpbGwgZ2V0IHJlYXNvbmFibGUgZGM1IHJlc2lkZW5jeSB3aXRoIHRoaXMgLSBpdCBt ZWFucwo+ID4gd2UnbGwga2VlcAo+ID4gwqAgdmJsYW5rIGlycSBydW5uaW5nIGZvcmV2ZXIuCj4g PiAKPiA+IC0gSSdtIGEgYml0IHVuY2xlYXIgb24gd2hhdCBleGFjdGx5IHRoaXMgZml4ZXMgLSBo YXZlIHlvdSB0ZXN0ZWQKPiA+IHRoYXQKPiA+IMKgIGxvbmctbGFzdGluZyB2Ymxhbmsgd2FpdHMg YXJlIHN0aWxsIGFjY3VyYXRlPyBKdXN0IHdhbnQgdG8gbWFrZQo+ID4gc3VyZSB3ZQo+ID4gwqAg ZG9uJ3QganVzdCBwYXBlciBvdmVyIHRoZSBpc3N1ZSBhbmQgZGVza3RvcHMgY2FuIHN0aWxsIGdl dCBzdHVjawo+ID4gd2FpdGluZwo+ID4gwqAgZm9yIGEgdmJsYW5rLgo+IAo+IGFwcGFyZW50bHkg bm8uLi4gc28gcGxlYXNlIGp1c3QgaWdub3JlIHRoaXMgcGF0Y2ggZm9yIG5vdy4uLiBhZnRlciBh Cj4gd2hpbGUgd2l0aCB0aGF0IHBhdGNoIEkgd2FzIHNlZWluZyB0aGUgaXNzdWUgYWdhaW4uLi4K PiAKPiA+IAo+ID4gSnVzdCBhIGJpdCBzdXByaXNlZCB0aGF0IHRoZSBvbmx5IHByb2JsZW0gaXMg dGhlIGZyYW1lY291bnRlciwgYW5kCj4gPiBub3QKPiA+IHRoYXQgdmJsYW5rcyBzdG9wIGhhcHBl bmluZyB0b28uCj4gPiAKPiA+IFdlIG5lZWQgdG8gYWxzbyBrbm93IHRoZXNlIGRldGFpbHMgZm9y IHRoZSBwcm9wZXIgZml4LCB3aGljaCB3aWxsCj4gPiBpbnZvbHZlCj4gPiBncmFiYmluZyBwb3dl ciB3ZWxsIHJlZmVyZW5jZXMgKG1pZ2h0IG5lZWQgYSBuZXcgb25lIGZvciB2YmxhbmsKPiA+IGlu dGVycnVwdHMpIHRvIG1ha2Ugc3VyZS4KPiAKPiBZZWFwLCBJIGxpa2VkIHRoaXMgaWRlYS4uLiBz byBjb21iaW5pbmcgYSBwb3dlciBkb21haW4gcmVmZXJlbmNlIHdpdGgKPiBhIHZibGFuayBjb3Vu dCByZXN0b3JlIG9uY2Ugd2Uga25vdyB0aGUgZGMgb2ZmIGlzIGJsb2NrZWQgd2UgY291bGQKPiB3 b3JrYXJvdW5kIHRoaXMgY2FzZS4uLiBzb21ldGhpbmcgbGlrZToKPiAKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9pcnEuYwo+IGluZGV4IDI1YTg5MzcuLjJiMTg3NzggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfaXJxLmMKPiBAQCAtMjc0Myw3ICsyNzQzLDEwIEBAIHN0YXRpYyBpbnQgZ2VuOF9lbmFibGVf dmJsYW5rKHN0cnVjdAo+IGRybV9kZXZpY2UKPiAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKPiDC oMKgwqDCoMKgwqDCoMKgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKPiDCoMKgwqDCoMKgwqDCoMKgdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKPiAK PiArwqDCoMKgwqDCoMKgwqBpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChkZXZfcHJpdiwgUE9XRVJf RE9NQUlOX1ZCTEFOSyk7Cj4gKwo+IMKgwqDCoMKgwqDCoMKgwqBzcGluX2xvY2tfaXJxc2F2ZSgm ZGV2X3ByaXYtPmlycV9sb2NrLCBpcnFmbGFncyk7Cj4gK8KgwqDCoMKgwqDCoMKgZGV2LT52Ymxh bmtbcGlwZV0ubGFzdCA9IGc0eF9nZXRfdmJsYW5rX2NvdW50ZXIoZGV2LCBwaXBlKTsKPiDCoMKg wqDCoMKgwqDCoMKgYmR3X2VuYWJsZV9waXBlX2lycShkZXZfcHJpdiwgcGlwZSwgR0VOOF9QSVBF X1ZCTEFOSyk7Cj4gwqDCoMKgwqDCoMKgwqDCoHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9w cml2LT5pcnFfbG9jaywgaXJxZmxhZ3MpOwo+IAo+IEBAIC0yNzk2LDYgKzI3OTksOCBAQCBzdGF0 aWMgdm9pZCBnZW44X2Rpc2FibGVfdmJsYW5rKHN0cnVjdAo+IGRybV9kZXZpY2UgKmRldiwgdW5z aWduZWQgaW50IHBpcGUpCj4gwqDCoMKgwqDCoMKgwqDCoHNwaW5fbG9ja19pcnFzYXZlKCZkZXZf cHJpdi0+aXJxX2xvY2ssIGlycWZsYWdzKTsKPiDCoMKgwqDCoMKgwqDCoMKgYmR3X2Rpc2FibGVf cGlwZV9pcnEoZGV2X3ByaXYsIHBpcGUsIEdFTjhfUElQRV9WQkxBTkspOwo+IMKgwqDCoMKgwqDC oMKgwqBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+aXJxX2xvY2ssIGlycWZsYWdz KTsKPiArCj4gK8KgwqDCoMKgwqDCoMKgaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYs IFBPV0VSX0RPTUFJTl9WQkxBTkspOwo+IMKgfQo+IAo+IHdoZXJlIFBPV0VSX0RPTUFJTl9WQkxB TksgaXMgcGFydCBvZjoKPiAjZGVmaW5lIFNLTF9ESVNQTEFZX0RDX09GRl9QT1dFUl9ET01BSU5T ICjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgXAo+IMKgwqDCoMKgwqDCoMKgwqBCSVQoUE9X RVJfRE9NQUlOX1ZCTEFOSykgfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgXAo+IAo+IAo+IEhvd2V2ZXIgSSBoYXZlIG15IGRtZXNnIGZsb29kZWQgYnk6Cj4gCj4g Cj4gW8KgwqDCoDY5LjAyNTU2Ml0gQlVHOiBzbGVlcGluZyBmdW5jdGlvbiBjYWxsZWQgZnJvbSBp bnZhbGlkIGNvbnRleHQgYXQKPiBkcml2ZXJzL2Jhc2UvcG93ZXIvcnVudGltZS5jOjk1NQo+IFvC oMKgwqA2OS4wMjU1NzZdIGluX2F0b21pYygpOiAxLCBpcnFzX2Rpc2FibGVkKCk6IDEsIHBpZDog OTk1LCBuYW1lOgo+IFhvcmcKPiBbwqDCoMKgNjkuMDI1NTgyXSBQcmVlbXB0aW9uIGRpc2FibGVk IGF0Ols8ZmZmZmZmZmY4MTVhMWZlZT5dCj4gZHJtX3ZibGFua19nZXQrMHg0ZS8weGQwCj4gCj4g W8KgwqDCoDY5LjAyNTYxOV0gQ1BVOiAzIFBJRDogOTk1IENvbW06IFhvcmcgVGFpbnRlZDogR8Kg wqDCoMKgwqBVwqDCoFcKPiA0LjUuMC1yYzQrICMxMQo+IFvCoMKgwqA2OS4wMjU2MjhdIEhhcmR3 YXJlIG5hbWU6IEludGVsIENvcnBvcmF0aW9uIEthYnlsYWtlIENsaWVudAo+IHBsYXRmb3JtL1Nr eWxha2UgVSBERFIzTCBSVlA3LCBCSU9TIEtCTFNFMlIxLlIwMC5YMDE5LkIwMS4xNTEyMjMwNzQz Cj4gMTIvMjMvMjAxNQo+IFvCoMKgwqA2OS4wMjU2MzddwqDCoDAwMDAwMDAwMDAwMDAwMDAgZmZm Zjg4MDAzZjBiZmJiMCBmZmZmZmZmZjgxNDhlOTgzCj4gMDAwMDAwMDAwMDAwMDAwMAo+IFvCoMKg wqA2OS4wMjU2NTNdwqDCoGZmZmY4ODAwODViMDQyMDAgZmZmZjg4MDAzZjBiZmJkMCBmZmZmZmZm ZjgxMTMzZWNlCj4gZmZmZmZmZmY4MWQ3N2YyMwo+IFvCoMKgwqA2OS4wMjU2NjddwqDCoDAwMDAw MDAwMDAwMDAzYmIgZmZmZjg4MDAzZjBiZmJmOCBmZmZmZmZmZjgxMTMzZjg5Cj4gZmZmZjg4MDE2 OTEzYTA5OAo+IFvCoMKgwqA2OS4wMjU2ODBdIENhbGwgVHJhY2U6Cj4gW8KgwqDCoDY5LjAyNTY5 N13CoMKgWzxmZmZmZmZmZjgxNDhlOTgzPl0gZHVtcF9zdGFjaysweDY1LzB4OTIKPiBbwqDCoMKg NjkuMDI1NzExXcKgwqBbPGZmZmZmZmZmODExMzNlY2U+XSBfX19taWdodF9zbGVlcCsweDEwZS8w eDE4MAo+IFvCoMKgwqA2OS4wMjU3MjJdwqDCoFs8ZmZmZmZmZmY4MTEzM2Y4OT5dIF9fbWlnaHRf c2xlZXArMHg0OS8weDgwCj4gW8KgwqDCoDY5LjAyNTczOV3CoMKgWzxmZmZmZmZmZjgxNWQyMWQ5 Pl0gX19wbV9ydW50aW1lX3Jlc3VtZSsweDc5LzB4ODAKPiBbwqDCoMKgNjkuMDI1ODQxXcKgwqBb PGZmZmZmZmZmYTAwNWViYzg+XSBpbnRlbF9ydW50aW1lX3BtX2dldCsweDI4LzB4OTAKPiBbaTkx NV0KPiBbwqDCoMKgNjkuMDI1OTI0XcKgwqBbPGZmZmZmZmZmYTAwNWVjNDk+XQo+IGludGVsX2Rp c3BsYXlfcG93ZXJfZ2V0KzB4MTkvMHg1MCBbaTkxNV0KPiBbwqDCoMKgNjkuMDI1OTk1XcKgwqBb PGZmZmZmZmZmYTAwNGFlYTQ+XSBnZW44X2VuYWJsZV92YmxhbmsrMHgzNC8weGMwCj4gW2k5MTVd Cj4gW8KgwqDCoDY5LjAyNjAxNl3CoMKgWzxmZmZmZmZmZjgxNWExZjQ2Pl0gZHJtX3ZibGFua19l bmFibGUrMHg3Ni8weGQwCj4gCj4gCj4gCj4gCj4gQW5vdGhlciB0aGluZyB0aGF0IEkgc2VhcmNo IGluIHRoZSBzcGVjIHdhcyBmb3IgYW4gSW50ZXJydXB0IHRvIGtub3cKPiB3aGVuIHdlIGNhbWUg YmFjayBmcm9tIERDNSBvciBEQzYgb3IgZ290IHBvd2VyIHdlbGwgcmUtZW5hYmxlZCwgc28gd2UK PiB3b3VsZCBiZSBhYmxlIHRvIHJlc3RvcmUgdGhlIGRybSBsYXN0IGNvdW50ZXIuLi4gYnV0IEkg Y291bGRuJ3QgZmluZAo+IGFueS4uLgo+IAo+IAo+IEFueSBvdGhlciBpZGVhPwo+IAo+IAo+ID4g Cj4gPiBDaGVlcnMsIERhbmllbAo+ID4gCj4gPiA+IC0tLQo+ID4gPiDCoGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfaXJxLmMgfCA3ICsrKysrLS0KPiA+ID4gwqAxIGZpbGUgY2hhbmdlZCwgNSBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+ID4gPiAKPiA+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2lycS5jCj4gPiA+IGluZGV4IDI1YTg5MzcuLmMyOTRhNGIgMTAwNjQ0Cj4gPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiA+ID4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+ID4gPiBAQCAtNDU1Niw3ICs0NTU2LDEwIEBAIHZvaWQg aW50ZWxfaXJxX2luaXQoc3RydWN0Cj4gPiA+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ ID4gPiAKPiA+ID4gwqDCoMKgwqDCoMKgcG1fcW9zX2FkZF9yZXF1ZXN0KCZkZXZfcHJpdi0+cG1f cW9zLAo+ID4gPiBQTV9RT1NfQ1BVX0RNQV9MQVRFTkNZLCBQTV9RT1NfREVGQVVMVF9WQUxVRSk7 Cj4gPiA+IAo+ID4gPiAtwqDCoMKgwqDCoGlmIChJU19HRU4yKGRldl9wcml2KSkgewo+ID4gPiAr wqDCoMKgwqDCoGlmIChJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuID49IDkpIHsKPiA+ID4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGV2LT5tYXhfdmJsYW5rX2NvdW50ID0gMDsKPiA+ID4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZGV2LT5kcml2ZXItPmdldF92YmxhbmtfY291bnRl ciA9Cj4gPiA+IGc0eF9nZXRfdmJsYW5rX2NvdW50ZXI7Cj4gPiA+ICvCoMKgwqDCoMKgfSBlbHNl IGlmIChJU19HRU4yKGRldl9wcml2KSkgewo+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgZGV2LT5tYXhfdmJsYW5rX2NvdW50ID0gMDsKPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoGRldi0+ZHJpdmVyLT5nZXRfdmJsYW5rX2NvdW50ZXIgPQo+ID4gPiBpOHh4X2dldF92 YmxhbmtfY291bnRlcjsKPiA+ID4gwqDCoMKgwqDCoMKgfSBlbHNlIGlmIChJU19HNFgoZGV2X3By aXYpIHx8IElOVEVMX0lORk8oZGV2X3ByaXYpLT5nZW4gPj0KPiA+ID4gNSkgewo+ID4gPiBAQCAt NDU3Miw3ICs0NTc1LDcgQEAgdm9pZCBpbnRlbF9pcnFfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZQo+ID4gPiAqZGV2X3ByaXYpCj4gPiA+IMKgwqDCoMKgwqDCoMKgKiBHZW4yIGRvZXNuJ3Qg aGF2ZSBhIGhhcmR3YXJlIGZyYW1lIGNvdW50ZXIgYW5kIHNvCj4gPiA+IGRlcGVuZHMgb24KPiA+ ID4gwqDCoMKgwqDCoMKgwqAqIHZibGFuayBpbnRlcnJ1cHRzIHRvIHByb2R1Y2Ugc2FuZSB2Ymxh bmsgc2V1cXVlbmNlCj4gPiA+IG51bWJlcnMuCj4gPiA+IMKgwqDCoMKgwqDCoMKgKi8KPiA+ID4g LcKgwqDCoMKgwqBpZiAoIUlTX0dFTjIoZGV2X3ByaXYpKQo+ID4gPiArwqDCoMKgwqDCoGlmICgh SVNfR0VOMihkZXZfcHJpdikgJiYgIUlOVEVMX0lORk8oZGV2X3ByaXYpLT5nZW4gPj0gOSkKPiA+ ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRldi0+dmJsYW5rX2Rpc2FibGVfaW1tZWRp YXRlID0gdHJ1ZTsKPiA+ID4gCj4gPiA+IMKgwqDCoMKgwqDCoGRldi0+ZHJpdmVyLT5nZXRfdmJs YW5rX3RpbWVzdGFtcCA9Cj4gPiA+IGk5MTVfZ2V0X3ZibGFua190aW1lc3RhbXA7Cj4gPiA+IC0t Cj4gPiA+IDIuNC4zCj4gPiA+IAo+ID4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwo+ID4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gPiA+IEludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKPiA+IAo+ID4gLS0KPiA+IERhbmllbCBW ZXR0ZXIKPiA+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4gaHR0cDov L2Jsb2cuZmZ3bGwuY2gKPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCj4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gPiBJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCj4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo+IAo+IAo+IAo+IC0tCj4gUm9kcmlnbyBWaXZpCj4gQmxvZzog aHR0cDovL2Jsb2cudml2aS5lbmcuYnIKPiAKPiAKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==