From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 4/4] drm: remove all control node code Date: Thu, 3 May 2018 11:28:17 +0200 Message-ID: <20180503092817.GI12521@phenom.ffwll.local> References: <20180420065159.4531-1-daniel.vetter@ffwll.ch> <20180420065159.4531-4-daniel.vetter@ffwll.ch> <20180502201045.GV73214@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180502201045.GV73214@art_vandelay> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Sean Paul Cc: David Airlie , Intel Graphics Development , DRI Development , Daniel Vetter , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBNYXkgMDIsIDIwMTggYXQgMDQ6MTA6NDVQTSAtMDQwMCwgU2VhbiBQYXVsIHdyb3Rl Ogo+IE9uIEZyaSwgQXByIDIwLCAyMDE4IGF0IDA4OjUxOjU5QU0gKzAyMDAsIERhbmllbCBWZXR0 ZXIgd3JvdGU6Cj4gPiBXaXRoIHRoZSBpb2N0bCBhbmQgZHJpdmVyIHByZXAgZG9uZSwgd2UgY2Fu IHJlbW92ZSBldmVyeXRoaW5nIGVsc2UuCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IERhbmllbCBW ZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgo+ID4gQ2M6IEd1c3Rhdm8gUGFkb3ZhbiA8 Z3VzdGF2b0BwYWRvdmFuLm9yZz4KPiA+IENjOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5s YW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+ID4gQ2M6IFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hy b21pdW0ub3JnPgo+ID4gQ2M6IERhdmlkIEFpcmxpZSA8YWlybGllZEBsaW51eC5pZT4KPiAKPiBT b3JyeSwgSSBtaXNzZWQgdGhpcyBvbiBteSBmaXJzdCBwYXNzLgo+IAo+IFJldmlld2VkLWJ5OiBT ZWFuIFBhdWwgPHNlYW5wYXVsQGNocm9taXVtLm9yZz4KClRoYW5rcyBmb3IgdGhlIHJldmlldywg cHVsbGVkIGFsbCA1IHBhdGNoZXMgaW50byBkcm0tbWlzYy1uZXh0LgotRGFuaWVsCgo+IAo+ID4g LS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2RybV9kcnYuYyAgICAgICAgIHwgMTAgLS0tLS0tLS0t LQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYyB8ICAzICstLQo+ID4gIGRy aXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYyAgICAgICB8ICA4ICstLS0tLS0tCj4gPiAgZHJpdmVy cy9ncHUvZHJtL2RybV9zeXNmcy5jICAgICAgIHwgIDQgKy0tLQo+ID4gIGluY2x1ZGUvZHJtL2Ry bV9kZXZpY2UuaCAgICAgICAgICB8ICAxIC0KPiA+ICBpbmNsdWRlL2RybS9kcm1fZmlsZS5oICAg ICAgICAgICAgfCAxMyAtLS0tLS0tLS0tLS0tCj4gPiAgaW5jbHVkZS9kcm0vZHJtX2lvY3RsLmgg ICAgICAgICAgIHwgIDcgLS0tLS0tLQo+ID4gIDcgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25z KCspLCA0MyBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Rydi5jCj4gPiBpbmRleCAzMmE4M2I0 MWFiNjEuLmY2OTEwZWJlNGQwZSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f ZHJ2LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHJ2LmMKPiA+IEBAIC05OSw4ICs5 OSw2IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX21pbm9yICoqZHJtX21pbm9yX2dldF9zbG90KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCj4gPiAgCQlyZXR1cm4gJmRldi0+cHJpbWFyeTsKPiA+ICAJY2Fz ZSBEUk1fTUlOT1JfUkVOREVSOgo+ID4gIAkJcmV0dXJuICZkZXYtPnJlbmRlcjsKPiA+IC0JY2Fz ZSBEUk1fTUlOT1JfQ09OVFJPTDoKPiA+IC0JCXJldHVybiAmZGV2LT5jb250cm9sOwo+ID4gIAlk ZWZhdWx0Ogo+ID4gIAkJQlVHKCk7Cj4gPiAgCX0KPiA+IEBAIC01NjcsNyArNTY1LDYgQEAgaW50 IGRybV9kZXZfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gIGVycl9taW5vcnM6Cj4g PiAgCWRybV9taW5vcl9mcmVlKGRldiwgRFJNX01JTk9SX1BSSU1BUlkpOwo+ID4gIAlkcm1fbWlu b3JfZnJlZShkZXYsIERSTV9NSU5PUl9SRU5ERVIpOwo+ID4gLQlkcm1fbWlub3JfZnJlZShkZXYs IERSTV9NSU5PUl9DT05UUk9MKTsKPiA+ICAJZHJtX2ZzX2lub2RlX2ZyZWUoZGV2LT5hbm9uX2lu b2RlKTsKPiA+ICBlcnJfZnJlZToKPiA+ICAJbXV0ZXhfZGVzdHJveSgmZGV2LT5tYXN0ZXJfbXV0 ZXgpOwo+ID4gQEAgLTYwMyw3ICs2MDAsNiBAQCB2b2lkIGRybV9kZXZfZmluaShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQo+ID4gIAo+ID4gIAlkcm1fbWlub3JfZnJlZShkZXYsIERSTV9NSU5PUl9Q UklNQVJZKTsKPiA+ICAJZHJtX21pbm9yX2ZyZWUoZGV2LCBEUk1fTUlOT1JfUkVOREVSKTsKPiA+ IC0JZHJtX21pbm9yX2ZyZWUoZGV2LCBEUk1fTUlOT1JfQ09OVFJPTCk7Cj4gPiAgCj4gPiAgCW11 dGV4X2Rlc3Ryb3koJmRldi0+bWFzdGVyX211dGV4KTsKPiA+ICAJbXV0ZXhfZGVzdHJveSgmZGV2 LT5jdHhsaXN0X211dGV4KTsKPiA+IEBAIC03OTYsMTAgKzc5Miw2IEBAIGludCBkcm1fZGV2X3Jl Z2lzdGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCj4gPiAg Cj4gPiAgCW11dGV4X2xvY2soJmRybV9nbG9iYWxfbXV0ZXgpOwo+ID4gIAo+ID4gLQlyZXQgPSBk cm1fbWlub3JfcmVnaXN0ZXIoZGV2LCBEUk1fTUlOT1JfQ09OVFJPTCk7Cj4gPiAtCWlmIChyZXQp Cj4gPiAtCQlnb3RvIGVycl9taW5vcnM7Cj4gPiAtCj4gPiAgCXJldCA9IGRybV9taW5vcl9yZWdp c3RlcihkZXYsIERSTV9NSU5PUl9SRU5ERVIpOwo+ID4gIAlpZiAocmV0KQo+ID4gIAkJZ290byBl cnJfbWlub3JzOwo+ID4gQEAgLTgzNyw3ICs4MjksNiBAQCBpbnQgZHJtX2Rldl9yZWdpc3Rlcihz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBsb25nIGZsYWdzKQo+ID4gIAlyZW1vdmVf Y29tcGF0X2NvbnRyb2xfbGluayhkZXYpOwo+ID4gIAlkcm1fbWlub3JfdW5yZWdpc3RlcihkZXYs IERSTV9NSU5PUl9QUklNQVJZKTsKPiA+ICAJZHJtX21pbm9yX3VucmVnaXN0ZXIoZGV2LCBEUk1f TUlOT1JfUkVOREVSKTsKPiA+IC0JZHJtX21pbm9yX3VucmVnaXN0ZXIoZGV2LCBEUk1fTUlOT1Jf Q09OVFJPTCk7Cj4gPiAgb3V0X3VubG9jazoKPiA+ICAJbXV0ZXhfdW5sb2NrKCZkcm1fZ2xvYmFs X211dGV4KTsKPiA+ICAJcmV0dXJuIHJldDsKPiA+IEBAIC04ODIsNyArODczLDYgQEAgdm9pZCBk cm1fZGV2X3VucmVnaXN0ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ICAJcmVtb3ZlX2Nv bXBhdF9jb250cm9sX2xpbmsoZGV2KTsKPiA+ICAJZHJtX21pbm9yX3VucmVnaXN0ZXIoZGV2LCBE Uk1fTUlOT1JfUFJJTUFSWSk7Cj4gPiAgCWRybV9taW5vcl91bnJlZ2lzdGVyKGRldiwgRFJNX01J Tk9SX1JFTkRFUik7Cj4gPiAtCWRybV9taW5vcl91bnJlZ2lzdGVyKGRldiwgRFJNX01JTk9SX0NP TlRST0wpOwo+ID4gIH0KPiA+ICBFWFBPUlRfU1lNQk9MKGRybV9kZXZfdW5yZWdpc3Rlcik7Cj4g PiAgCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9mcmFtZWJ1ZmZlci5jIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9mcmFtZWJ1ZmZlci5jCj4gPiBpbmRleCA4YzRkMzJhZGNjMTcu LmJmZWRjZWZmODdiYiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVi dWZmZXIuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mcmFtZWJ1ZmZlci5jCj4gPiBA QCAtNDg0LDggKzQ4NCw3IEBAIGludCBkcm1fbW9kZV9nZXRmYihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAo+ID4gIAkgKiBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eSByZWFzb25zLCB3ZSBjYW5ub3Qg bWFrZSBHRVRfRkIoKSBwcml2aWxlZ2VkLAo+ID4gIAkgKiBzbyBqdXN0IHJldHVybiBhbiBpbnZh bGlkIGhhbmRsZSBmb3Igbm9uLW1hc3RlcnMuCj4gPiAgCSAqLwo+ID4gLQlpZiAoIWRybV9pc19j dXJyZW50X21hc3RlcihmaWxlX3ByaXYpICYmICFjYXBhYmxlKENBUF9TWVNfQURNSU4pICYmCj4g PiAtCSAgICAhZHJtX2lzX2NvbnRyb2xfY2xpZW50KGZpbGVfcHJpdikpIHsKPiA+ICsJaWYgKCFk cm1faXNfY3VycmVudF9tYXN0ZXIoZmlsZV9wcml2KSAmJiAhY2FwYWJsZShDQVBfU1lTX0FETUlO KSkgewo+ID4gIAkJci0+aGFuZGxlID0gMDsKPiA+ICAJCXJldCA9IDA7Cj4gPiAgCQlnb3RvIG91 dDsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2lvY3RsLmMKPiA+IGluZGV4IDkyMDI3OTY2NmNhZS4uMDFiNjFjMTJkNjM1 IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jCj4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMKPiA+IEBAIC01MTAsMTMgKzUxMCw3IEBAIGludCBk cm1faW9jdGxfcGVybWl0KHUzMiBmbGFncywgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCj4g PiAgCj4gPiAgCS8qIE1BU1RFUiBpcyBvbmx5IGZvciBtYXN0ZXIgb3IgY29udHJvbCBjbGllbnRz ICovCj4gPiAgCWlmICh1bmxpa2VseSgoZmxhZ3MgJiBEUk1fTUFTVEVSKSAmJgo+ID4gLQkJICAg ICAhZHJtX2lzX2N1cnJlbnRfbWFzdGVyKGZpbGVfcHJpdikgJiYKPiA+IC0JCSAgICAgIWRybV9p c19jb250cm9sX2NsaWVudChmaWxlX3ByaXYpKSkKPiA+IC0JCXJldHVybiAtRUFDQ0VTOwo+ID4g LQo+ID4gLQkvKiBDb250cm9sIGNsaWVudHMgbXVzdCBiZSBleHBsaWNpdGx5IGFsbG93ZWQgKi8K PiA+IC0JaWYgKHVubGlrZWx5KCEoZmxhZ3MgJiBEUk1fQ09OVFJPTF9BTExPVykgJiYKPiA+IC0J CSAgICAgZHJtX2lzX2NvbnRyb2xfY2xpZW50KGZpbGVfcHJpdikpKQo+ID4gKwkJICAgICAhZHJt X2lzX2N1cnJlbnRfbWFzdGVyKGZpbGVfcHJpdikpKQo+ID4gIAkJcmV0dXJuIC1FQUNDRVM7Cj4g PiAgCj4gPiAgCS8qIFJlbmRlciBjbGllbnRzIG11c3QgYmUgZXhwbGljaXRseSBhbGxvd2VkICov Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9zeXNmcy5jIGIvZHJpdmVycy9n cHUvZHJtL2RybV9zeXNmcy5jCj4gPiBpbmRleCAxYzViNWNlMWZkN2YuLmIzYzFkYWFkMTE2OSAx MDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3lzZnMuYwo+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2RybV9zeXNmcy5jCj4gPiBAQCAtMzMxLDkgKzMzMSw3IEBAIHN0cnVjdCBk ZXZpY2UgKmRybV9zeXNmc19taW5vcl9hbGxvYyhzdHJ1Y3QgZHJtX21pbm9yICptaW5vcikKPiA+ ICAJc3RydWN0IGRldmljZSAqa2RldjsKPiA+ICAJaW50IHI7Cj4gPiAgCj4gPiAtCWlmIChtaW5v ci0+dHlwZSA9PSBEUk1fTUlOT1JfQ09OVFJPTCkKPiA+IC0JCW1pbm9yX3N0ciA9ICJjb250cm9s RCVkIjsKPiA+IC0JZWxzZSBpZiAobWlub3ItPnR5cGUgPT0gRFJNX01JTk9SX1JFTkRFUikKPiA+ ICsJaWYgKG1pbm9yLT50eXBlID09IERSTV9NSU5PUl9SRU5ERVIpCj4gPiAgCQltaW5vcl9zdHIg PSAicmVuZGVyRCVkIjsKPiA+ICAJZWxzZQo+ID4gIAkJbWlub3Jfc3RyID0gImNhcmQlZCI7Cj4g PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2RldmljZS5oIGIvaW5jbHVkZS9kcm0vZHJt X2RldmljZS5oCj4gPiBpbmRleCAzYTBlYWMyODg1YjcuLjg1OGJhMTlhM2UyOSAxMDA2NDQKPiA+ IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9kZXZpY2UuaAo+ID4gKysrIGIvaW5jbHVkZS9kcm0vZHJt X2RldmljZS5oCj4gPiBAQCAtMzgsNyArMzgsNiBAQCBzdHJ1Y3QgZHJtX2RldmljZSB7Cj4gPiAg CXN0cnVjdCBkZXZpY2UgKmRldjsJCS8qKjwgRGV2aWNlIHN0cnVjdHVyZSBvZiBidXMtZGV2aWNl ICovCj4gPiAgCXN0cnVjdCBkcm1fZHJpdmVyICpkcml2ZXI7CS8qKjwgRFJNIGRyaXZlciBtYW5h Z2luZyB0aGUgZGV2aWNlICovCj4gPiAgCXZvaWQgKmRldl9wcml2YXRlOwkJLyoqPCBEUk0gZHJp dmVyIHByaXZhdGUgZGF0YSAqLwo+ID4gLQlzdHJ1Y3QgZHJtX21pbm9yICpjb250cm9sOwkJLyoq PCBDb250cm9sIG5vZGUgKi8KPiA+ICAJc3RydWN0IGRybV9taW5vciAqcHJpbWFyeTsJCS8qKjwg UHJpbWFyeSBub2RlICovCj4gPiAgCXN0cnVjdCBkcm1fbWlub3IgKnJlbmRlcjsJCS8qKjwgUmVu ZGVyIG5vZGUgKi8KPiA+ICAJYm9vbCByZWdpc3RlcmVkOwo+ID4gZGlmZiAtLWdpdCBhL2luY2x1 ZGUvZHJtL2RybV9maWxlLmggYi9pbmNsdWRlL2RybS9kcm1fZmlsZS5oCj4gPiBpbmRleCA1MTc2 YzM3OTc2ODAuLjk5YWI1MGNiYWIwMCAxMDA2NDQKPiA+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9m aWxlLmgKPiA+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9maWxlLmgKPiA+IEBAIC00OSw3ICs0OSw2 IEBAIHN0cnVjdCBkZXZpY2U7Cj4gPiAgCj4gPiAgZW51bSBkcm1fbWlub3JfdHlwZSB7Cj4gPiAg CURSTV9NSU5PUl9QUklNQVJZLAo+ID4gLQlEUk1fTUlOT1JfQ09OVFJPTCwKPiA+ICAJRFJNX01J Tk9SX1JFTkRFUiwKPiA+ICB9Owo+ID4gIAo+ID4gQEAgLTM0OCwxOCArMzQ3LDYgQEAgc3RhdGlj IGlubGluZSBib29sIGRybV9pc19yZW5kZXJfY2xpZW50KGNvbnN0IHN0cnVjdCBkcm1fZmlsZSAq ZmlsZV9wcml2KQo+ID4gIAlyZXR1cm4gZmlsZV9wcml2LT5taW5vci0+dHlwZSA9PSBEUk1fTUlO T1JfUkVOREVSOwo+ID4gIH0KPiA+ICAKPiA+IC0vKioKPiA+IC0gKiBkcm1faXNfY29udHJvbF9j bGllbnQgLSBpcyB0aGlzIGFuIG9wZW4gZmlsZSBvZiB0aGUgY29udHJvbCBub2RlCj4gPiAtICog QGZpbGVfcHJpdjogRFJNIGZpbGUKPiA+IC0gKgo+ID4gLSAqIENvbnRyb2wgbm9kZXMgYXJlIGRl cHJlY2F0ZWQgYW5kIGluIHRoZSBwcm9jZXNzIG9mIGdldHRpbmcgcmVtb3ZlZCBmcm9tIHRoZQo+ ID4gLSAqIERSTSB1c2Vyc3BhY2UgQVBJLiBEbyBub3QgZXZlciB1c2UhCj4gPiAtICovCj4gPiAt c3RhdGljIGlubGluZSBib29sIGRybV9pc19jb250cm9sX2NsaWVudChjb25zdCBzdHJ1Y3QgZHJt X2ZpbGUgKmZpbGVfcHJpdikKPiA+IC17Cj4gPiAtCXJldHVybiBmaWxlX3ByaXYtPm1pbm9yLT50 eXBlID09IERSTV9NSU5PUl9DT05UUk9MOwo+ID4gLX0KPiA+IC0KPiA+ICBpbnQgZHJtX29wZW4o c3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApOwo+ID4gIHNzaXplX3QgZHJt X3JlYWQoc3RydWN0IGZpbGUgKmZpbHAsIGNoYXIgX191c2VyICpidWZmZXIsCj4gPiAgCQkgc2l6 ZV90IGNvdW50LCBsb2ZmX3QgKm9mZnNldCk7Cj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0v ZHJtX2lvY3RsLmggYi9pbmNsdWRlL2RybS9kcm1faW9jdGwuaAo+ID4gaW5kZXggYWRkNDI4MDk2 NDJhLi5mYWZiNmY1OTJjNGIgMTAwNjQ0Cj4gPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1faW9jdGwu aAo+ID4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2lvY3RsLmgKPiA+IEBAIC0xMDgsMTMgKzEwOCw2 IEBAIGVudW0gZHJtX2lvY3RsX2ZsYWdzIHsKPiA+ICAJICogVGhpcyBpcyBlcXVpdmFsZW50IHRv IGNhbGxlcnMgd2l0aCB0aGUgU1lTQURNSU4gY2FwYWJpbGl0eS4KPiA+ICAJICovCj4gPiAgCURS TV9ST09UX09OTFkJCT0gQklUKDIpLAo+ID4gLQkvKioKPiA+IC0JICogQERSTV9DT05UUk9MX0FM TE9XOgo+ID4gLQkgKgo+ID4gLQkgKiBEZXByZWNhdGVkLCBkbyBub3QgdXNlLiBDb250cm9sIG5v ZGVzIGFyZSBpbiB0aGUgcHJvY2VzcyBvZiBnZXR0aW5nCj4gPiAtCSAqIHJlbW92ZWQuCj4gPiAt CSAqLwo+ID4gLQlEUk1fQ09OVFJPTF9BTExPVwk9IEJJVCgzKSwKPiA+ICAJLyoqCj4gPiAgCSAq IEBEUk1fVU5MT0NLRUQ6Cj4gPiAgCSAqCj4gPiAtLSAKPiA+IDIuMTYuMgo+ID4gCj4gCj4gLS0g Cj4gU2VhbiBQYXVsLCBTb2Z0d2FyZSBFbmdpbmVlciwgR29vZ2xlIC8gQ2hyb21pdW0gT1MKCi0t IApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRw Oi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK