From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomas Elf Subject: Re: [PATCH 37/53] drm/i915: Update ring->flush() to take a requests structure Date: Mon, 09 Mar 2015 20:40:22 +0000 Message-ID: <54FE0536.6080904@intel.com> References: <1423828140-10653-1-git-send-email-John.C.Harrison@Intel.com> <1424366285-29232-1-git-send-email-John.C.Harrison@Intel.com> <1424366285-29232-38-git-send-email-John.C.Harrison@Intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id C7C216E5DB for ; Mon, 9 Mar 2015 13:40:25 -0700 (PDT) In-Reply-To: <1424366285-29232-38-git-send-email-John.C.Harrison@Intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: John.C.Harrison@Intel.com, Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org T24gMTkvMDIvMjAxNSAxNzoxNywgSm9obi5DLkhhcnJpc29uQEludGVsLmNvbSB3cm90ZToKPiBG cm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+Cj4gVWRwYXRl ZCB0aGUgdmFyaW91cyByaW5nLT5mbHVzaCgpIGZ1bmN0aW9ucyB0byB0YWtlIGEgcmVxdWVzdCBp bnN0ZWFkIG9mIGEgcmluZy4KPgo+IEZvcjogVklaLTUxMTUKPiBTaWduZWQtb2ZmLWJ5OiBKb2hu IEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+IC0tLQo+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jIHwgICAgMiArLQo+ICAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgICAgIHwgICAgNiArKystLS0KPiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyB8ICAgMzAgKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggfCAg ICAyICstCj4gICA0IGZpbGVzIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9u cygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRl eHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+IGluZGV4IDgx NmE0NDIuLjM4NGY0ODEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fY29udGV4dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4 dC5jCj4gQEAgLTQ4OSw3ICs0ODksNyBAQCBtaV9zZXRfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcSwgdTMyIGh3X2ZsYWdzKQo+ICAgCSAqIGl0bGJfYmVmb3JlX2N0eF9z d2l0Y2guCj4gICAJICovCj4gICAJaWYgKElTX0dFTjYocmluZy0+ZGV2KSkgewo+IC0JCXJldCA9 IHJpbmctPmZsdXNoKHJpbmcsIEk5MTVfR0VNX0dQVV9ET01BSU5TLCAwKTsKPiArCQlyZXQgPSBy aW5nLT5mbHVzaChyZXEsIEk5MTVfR0VNX0dQVV9ET01BSU5TLCAwKTsKPiAgIAkJaWYgKHJldCkK PiAgIAkJCXJldHVybiByZXQ7Cj4gICAJfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5j Cj4gaW5kZXggYzM0MDhmMi4uYTFhZjY0NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9ndHQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2d0dC5jCj4gQEAgLTc4NCw3ICs3ODQsNyBAQCBzdGF0aWMgaW50IGhzd19tbV9zd2l0Y2goc3Ry dWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0LAo+ICAgCWludCByZXQ7Cj4KPiAgIAkvKiBOQjogVExC cyBtdXN0IGJlIGZsdXNoZWQgYW5kIGludmFsaWRhdGVkIGJlZm9yZSBhIHN3aXRjaCAqLwo+IC0J cmV0ID0gcmluZy0+Zmx1c2gocmluZywgSTkxNV9HRU1fR1BVX0RPTUFJTlMsIEk5MTVfR0VNX0dQ VV9ET01BSU5TKTsKPiArCXJldCA9IHJpbmctPmZsdXNoKHJlcSwgSTkxNV9HRU1fR1BVX0RPTUFJ TlMsIEk5MTVfR0VNX0dQVV9ET01BSU5TKTsKPiAgIAlpZiAocmV0KQo+ICAgCQlyZXR1cm4gcmV0 Owo+Cj4gQEAgLTgyMSw3ICs4MjEsNyBAQCBzdGF0aWMgaW50IGdlbjdfbW1fc3dpdGNoKHN0cnVj dCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCwKPiAgIAlpbnQgcmV0Owo+Cj4gICAJLyogTkI6IFRMQnMg bXVzdCBiZSBmbHVzaGVkIGFuZCBpbnZhbGlkYXRlZCBiZWZvcmUgYSBzd2l0Y2ggKi8KPiAtCXJl dCA9IHJpbmctPmZsdXNoKHJpbmcsIEk5MTVfR0VNX0dQVV9ET01BSU5TLCBJOTE1X0dFTV9HUFVf RE9NQUlOUyk7Cj4gKwlyZXQgPSByaW5nLT5mbHVzaChyZXEsIEk5MTVfR0VNX0dQVV9ET01BSU5T LCBJOTE1X0dFTV9HUFVfRE9NQUlOUyk7Cj4gICAJaWYgKHJldCkKPiAgIAkJcmV0dXJuIHJldDsK Pgo+IEBAIC04MzksNyArODM5LDcgQEAgc3RhdGljIGludCBnZW43X21tX3N3aXRjaChzdHJ1Y3Qg aTkxNV9od19wcGd0dCAqcHBndHQsCj4KPiAgIAkvKiBYWFg6IFJDUyBpcyB0aGUgb25seSBvbmUg dG8gYXV0byBpbnZhbGlkYXRlIHRoZSBUTEJzPyAqLwo+ICAgCWlmIChyaW5nLT5pZCAhPSBSQ1Mp IHsKPiAtCQlyZXQgPSByaW5nLT5mbHVzaChyaW5nLCBJOTE1X0dFTV9HUFVfRE9NQUlOUywgSTkx NV9HRU1fR1BVX0RPTUFJTlMpOwo+ICsJCXJldCA9IHJpbmctPmZsdXNoKHJlcSwgSTkxNV9HRU1f R1BVX0RPTUFJTlMsIEk5MTVfR0VNX0dQVV9ET01BSU5TKTsKPiAgIAkJaWYgKHJldCkKPiAgIAkJ CXJldHVybiByZXQ7Cj4gICAJfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVy LmMKPiBpbmRleCA5MWE5MTMxLi5jYThmMDM5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3JpbmdidWZmZXIuYwo+IEBAIC05MSwxMCArOTEsMTEgQEAgc3RhdGljIHZvaWQgX19pbnRl bF9yaW5nX2FkdmFuY2Uoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiAgIH0KPgo+ICAg c3RhdGljIGludAo+IC1nZW4yX3JlbmRlcl9yaW5nX2ZsdXNoKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcsCj4gK2dlbjJfcmVuZGVyX3JpbmdfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpyZXEsCj4gICAJCSAgICAgICB1MzIJaW52YWxpZGF0ZV9kb21haW5zLAo+ICAgCQkg ICAgICAgdTMyCWZsdXNoX2RvbWFpbnMpCj4gICB7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICpyaW5nID0gcmVxLT5yaW5nOwo+ICAgCXUzMiBjbWQ7Cj4gICAJaW50IHJldDsKPgo+IEBAIC0x MTcsMTAgKzExOCwxMSBAQCBnZW4yX3JlbmRlcl9yaW5nX2ZsdXNoKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKnJpbmcsCj4gICB9Cj4KPiAgIHN0YXRpYyBpbnQKPiAtZ2VuNF9yZW5kZXJfcmluZ19m bHVzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICtnZW40X3JlbmRlcl9yaW5nX2Zs dXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAgCQkgICAgICAgdTMyCWlu dmFsaWRhdGVfZG9tYWlucywKPiAgIAkJICAgICAgIHUzMglmbHVzaF9kb21haW5zKQo+ICAgewo+ ICsJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKPiAgIAlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gcmluZy0+ZGV2Owo+ICAgCXUzMiBjbWQ7Cj4gICAJaW50IHJldDsK PiBAQCAtMjQ3LDkgKzI0OSwxMCBAQCBpbnRlbF9lbWl0X3Bvc3Rfc3luY19ub256ZXJvX2ZsdXNo KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCj4gICB9Cj4KPiAgIHN0YXRpYyBpbnQKPiAt Z2VuNl9yZW5kZXJfcmluZ19mbHVzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+IC0g ICAgICAgICAgICAgICAgICAgICAgICAgdTMyIGludmFsaWRhdGVfZG9tYWlucywgdTMyIGZsdXNo X2RvbWFpbnMpCj4gK2dlbjZfcmVuZGVyX3JpbmdfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpyZXEsCj4gKwkJICAgICAgIHUzMiBpbnZhbGlkYXRlX2RvbWFpbnMsIHUzMiBmbHVz aF9kb21haW5zKQo+ICAgewo+ICsJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+ cmluZzsKPiAgIAl1MzIgZmxhZ3MgPSAwOwo+ICAgCXUzMiBzY3JhdGNoX2FkZHIgPSByaW5nLT5z Y3JhdGNoLmd0dF9vZmZzZXQgKyAyICogQ0FDSEVMSU5FX0JZVEVTOwo+ICAgCWludCByZXQ7Cj4g QEAgLTM0MSw5ICszNDQsMTAgQEAgc3RhdGljIGludCBnZW43X3JpbmdfZmJjX2ZsdXNoKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIHUzMiB2YWx1ZSkKPiAgIH0KPgo+ICAgc3RhdGljIGlu dAo+IC1nZW43X3JlbmRlcl9yaW5nX2ZsdXNoKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcs Cj4gK2dlbjdfcmVuZGVyX3JpbmdfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXEsCj4gICAJCSAgICAgICB1MzIgaW52YWxpZGF0ZV9kb21haW5zLCB1MzIgZmx1c2hfZG9tYWlu cykKPiAgIHsKPiArCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSByZXEtPnJpbmc7Cj4g ICAJdTMyIGZsYWdzID0gMDsKPiAgIAl1MzIgc2NyYXRjaF9hZGRyID0gcmluZy0+c2NyYXRjaC5n dHRfb2Zmc2V0ICsgMiAqIENBQ0hFTElORV9CWVRFUzsKPiAgIAlpbnQgcmV0Owo+IEBAIC00MjYs OSArNDMwLDEwIEBAIGdlbjhfZW1pdF9waXBlX2NvbnRyb2woc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZywKPiAgIH0KPgo+ICAgc3RhdGljIGludAo+IC1nZW44X3JlbmRlcl9yaW5nX2ZsdXNo KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gK2dlbjhfcmVuZGVyX3JpbmdfZmx1c2go c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJCSAgICAgICB1MzIgaW52YWxp ZGF0ZV9kb21haW5zLCB1MzIgZmx1c2hfZG9tYWlucykKPiAgIHsKPiArCXN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKnJpbmcgPSByZXEtPnJpbmc7Cj4gICAJdTMyIGZsYWdzID0gMDsKPiAgIAl1MzIg c2NyYXRjaF9hZGRyID0gcmluZy0+c2NyYXRjaC5ndHRfb2Zmc2V0ICsgMiAqIENBQ0hFTElORV9C WVRFUzsKPiAgIAlpbnQgcmV0Owo+IEBAIC0xNTI3LDEwICsxNTMyLDExIEBAIGk4eHhfcmluZ19w dXRfaXJxKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCj4gICB9Cj4KPiAgIHN0YXRpYyBp bnQKPiAtYnNkX3JpbmdfZmx1c2goc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiArYnNk X3JpbmdfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCj4gICAJICAgICAg IHUzMiAgICAgaW52YWxpZGF0ZV9kb21haW5zLAo+ICAgCSAgICAgICB1MzIgICAgIGZsdXNoX2Rv bWFpbnMpCj4gICB7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gcmVxLT5yaW5n Owo+ICAgCWludCByZXQ7Cj4KPiAgIAlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJpbmcsIDIpOwo+ IEBAIC0yMzE4LDkgKzIzMjQsMTAgQEAgc3RhdGljIHZvaWQgZ2VuNl9ic2RfcmluZ193cml0ZV90 YWlsKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gICAJCSAgIF9NQVNLRURfQklUX0RJ U0FCTEUoR0VONl9CU0RfU0xFRVBfTVNHX0RJU0FCTEUpKTsKPiAgIH0KPgo+IC1zdGF0aWMgaW50 IGdlbjZfYnNkX3JpbmdfZmx1c2goc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiArc3Rh dGljIGludCBnZW42X2JzZF9yaW5nX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxLAo+ICAgCQkJICAgICAgIHUzMiBpbnZhbGlkYXRlLCB1MzIgZmx1c2gpCj4gICB7Cj4gKwlz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gcmVxLT5yaW5nOwo+ICAgCXVpbnQzMl90IGNt ZDsKPiAgIAlpbnQgcmV0Owo+Cj4gQEAgLTI0MzAsOSArMjQzNywxMCBAQCBnZW42X3JpbmdfZGlz cGF0Y2hfZXhlY2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+Cj4gICAvKiBC bGl0dGVyIHN1cHBvcnQgKFNhbmR5QnJpZGdlKykgKi8KPgo+IC1zdGF0aWMgaW50IGdlbjZfcmlu Z19mbHVzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICtzdGF0aWMgaW50IGdlbjZf cmluZ19mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgIAkJCSAgIHUz MiBpbnZhbGlkYXRlLCB1MzIgZmx1c2gpCj4gICB7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICpyaW5nID0gcmVxLT5yaW5nOwo+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSByaW5nLT5k ZXY7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJp dmF0ZTsKPiAgIAl1aW50MzJfdCBjbWQ7Cj4gQEAgLTI4NTQsNyArMjg2Miw3IEBAIGludGVsX3Jp bmdfZmx1c2hfYWxsX2NhY2hlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAg IAlpZiAoIXJpbmctPmdwdV9jYWNoZXNfZGlydHkpCj4gICAJCXJldHVybiAwOwo+Cj4gLQlyZXQg PSByaW5nLT5mbHVzaChyaW5nLCAwLCBJOTE1X0dFTV9HUFVfRE9NQUlOUyk7Cj4gKwlyZXQgPSBy aW5nLT5mbHVzaChyZXEsIDAsIEk5MTVfR0VNX0dQVV9ET01BSU5TKTsKPiAgIAlpZiAocmV0KQo+ ICAgCQlyZXR1cm4gcmV0Owo+Cj4gQEAgLTI4NzUsNyArMjg4Myw3IEBAIGludGVsX3JpbmdfaW52 YWxpZGF0ZV9hbGxfY2FjaGVzKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ICAg CWlmIChyaW5nLT5ncHVfY2FjaGVzX2RpcnR5KQo+ICAgCQlmbHVzaF9kb21haW5zID0gSTkxNV9H RU1fR1BVX0RPTUFJTlM7Cj4KPiAtCXJldCA9IHJpbmctPmZsdXNoKHJpbmcsIEk5MTVfR0VNX0dQ VV9ET01BSU5TLCBmbHVzaF9kb21haW5zKTsKPiArCXJldCA9IHJpbmctPmZsdXNoKHJlcSwgSTkx NV9HRU1fR1BVX0RPTUFJTlMsIGZsdXNoX2RvbWFpbnMpOwo+ICAgCWlmIChyZXQpCj4gICAJCXJl dHVybiByZXQ7Cj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gaW5k ZXggMGVmMjlmYi4uYzA4ZTJkYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5n YnVmZmVyLmgKPiBAQCAtMTQ3LDcgKzE0Nyw3IEBAIHN0cnVjdCAgaW50ZWxfZW5naW5lX2NzIHsK Pgo+ICAgCXZvaWQJCSgqd3JpdGVfdGFpbCkoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywK PiAgIAkJCQkgICAgICB1MzIgdmFsdWUpOwo+IC0JaW50IF9fbXVzdF9jaGVjayAoKmZsdXNoKShz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICsJaW50IF9fbXVzdF9jaGVjayAoKmZsdXNo KShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiAgIAkJCQkgIHUzMglpbnZhbGlk YXRlX2RvbWFpbnMsCj4gICAJCQkJICB1MzIJZmx1c2hfZG9tYWlucyk7Cj4gICAJaW50CQkoKmFk ZF9yZXF1ZXN0KShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKPgoKdHJhY2VfaTkxNV9n ZW1fcmluZ19mbHVzaCBzdGlsbCB0YWtlcyBhIHJpbmcgYXMgaW5wdXQgYXJndW1lbnQuIERvIHlv dSAKZmVlbCBsaWtlIHVwZGF0aW5nIGl0IHRvIHJlZmxlY3QgeW91ciBjaGFuZ2VzPwoKVGhhbmtz LApUb21hcwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=