From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [Intel-gfx] [RFC 6/7] drm: make vblank_event_list handle drm_vblank_wait_item types Date: Thu, 4 Dec 2014 18:27:52 -0800 Message-ID: <20141205022752.GC962@intel.com> References: <1416426435-2237-1-git-send-email-przanoni@gmail.com> <1416426435-2237-8-git-send-email-przanoni@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1416426435-2237-8-git-send-email-przanoni@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Paulo Zanoni Cc: intel-gfx@lists.freedesktop.org, Paulo Zanoni , dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBOb3YgMTksIDIwMTQgYXQgMDU6NDc6MTRQTSAtMDIwMCwgUGF1bG8gWmFub25pIHdy b3RlOgo+IEZyb206IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPgo+IAo+ IFdoaWNoIG1lYW5zIHRoZSBsaXN0IGRvZXNuJ3QgcmVhbGx5IG5lZWQgdG8ga25vdyBpZiB0aGUg ZXZlbnQgaXMgZnJvbQo+IHVzZXIgc3BhY2Ugb3Iga2VybmVsIHNwYWNlLgo+IAo+IFRoZSBvbmx5 IHBsYWNlIGhlcmUgd2hlcmUgd2UgaGF2ZSB0byBicmVhayB0aGUgYWJzdHJhY3Rpb24gaXMgYXQK PiBkcm1fZm9wcywgd2hlbiB3ZSdyZSByZWxlYXNpbmcgYWxsIHRoZSBldmVudHMgYXNzb2NpYXRl ZCB3aXRoIGEKPiBmaWxlX3ByaXYuIEhlcmUgd2UgaW50cm9kdWNlZCBpdGVtLmZyb21fdXNlcl9z cGFjZSwgdGhhdCBuZWVkcyB0byBiZQo+IGNoZWNrZWQgYmVmb3JlIHdlIHRyYW5zZm9ybSB0aGUg aXRlbSBwb2ludGVyIGludG8gdGhlIGFwcHJvcHJpYXRlCj4gZHJtX3BlbmRpbmdfdmJsYW5rX2V2 ZW50IHBvaW50ZXIuIE90aGVyIHN0cmF0ZWdpZXMgdG8gc29sdmUgdGhpcwo+IHByb2JsZW0gLSBp bnN0ZWFkIG9mIGFkZGluZyBpdGVtLT5mcm9tX3VzZXJfc3BhY2UgLSB3b3VsZCBiZSB0bzogKGkp Cj4gc3RvcmUgYSBjb3B5IG9mIHRoZSBmaWxlX3ByaXYgcG9pbnRlciBpbiB0aGUgZHJtX3ZibGFu a193YWl0X2l0ZW0KPiBzdHJ1Y3R1cmUsIGJ1dCB0aGVuIHdlJ2QgYWxzbyBuZWVkIGEgY3VzdG9t IGRlc3Ryb3koKSBmdW5jdGlvbjsgb3IKPiAoaWkpIGFkZCBmaWxlX3ByaXYtPnBlbmRpbmdfZXZl bnRfbGlzdCwgYnV0IHRoZW4gd2UnZCBoYXZlIHRvIGtlZXAgYWxsCj4gdGhlIHVzZXIgc3BhY2Ug aXRlbXMgaW4gc3luYyB3aXRoIGRldi0+dmJsYW5rX2V2ZW50X2xpc3QsIHdoaWNoIGNvdWxkCj4g bGVhZCB0byBjb21wbGljYXRlZCBjb2RlLgoKSW50dWl0aXZlbHksIChpaSkgc2VlbXMgbGlrZSB0 aGUgbmF0dXJhbCBjaG9pY2UgdG8gbWUuICBUaGUgcGVuZGluZwp1c2Vyc3BhY2UgZXZlbnRzIHJl YWxseSBhcmUgZmQtc3BlY2lmaWMsIHNvIGl0IHNlZW1zIG5hdHVyYWwgdG8gc3RpY2sKdGhlbSBp biBhIGRybV9maWxlIGxpc3QgcmF0aGVyIHRoYW4gYSBnbG9iYWwgb25lLiAgWW91J2QgaGF2ZSB0 byByZW1vdmUKYm90aCB0aGUgYmFzZSBjbGFzcyBhbmQgdGhlIHN1YmNsYXNzIGZyb20gdGhlaXIg cmVzcGVjdGl2ZSBsaXN0cyB3aGVuCnlvdSdyZSBkb25lIHdpdGggYW4gZXZlbnQsIGJ1dCBzaW5j ZSBhbGwgb2YgdGhpcyBpcyBkb25lIHVuZGVyIHRoZQpldmVudF9sb2NrIHNwaW5sb2NrLCBpdCBk b2Vzbid0IHNlZW0gbGlrZSBpdCB3b3VsZCBiZSB0b28gY29tcGxpY2F0ZWQuCkFtIEkgb3Zlcmxv b2tpbmcgc29tZXRoaW5nIHRoYXQgbWFrZXMgaXQgbW9yZSBjaGFsbGVuZ2luZz8KCgpNYXR0Cgo+ IAo+IFNpZ25lZC1vZmYtYnk6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29t Pgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYyB8IDE1ICsrKysrKysrKysrLS0t LQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jICB8IDMzICsrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLQo+ICBpbmNsdWRlL2RybS9kcm1QLmggICAgICAgICB8ICA0ICsrKy0KPiAg MyBmaWxlcyBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKPiAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9mb3BzLmMgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2ZvcHMuYwo+IGluZGV4IDQ3YzVlNTguLmZiZGJkZTIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2RybV9mb3BzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZvcHMuYwo+ IEBAIC0yODAsMTggKzI4MCwyNSBAQCBzdGF0aWMgdm9pZCBkcm1fZXZlbnRzX3JlbGVhc2Uoc3Ry dWN0IGRybV9maWxlICpmaWxlX3ByaXYpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBmaWxlX3ByaXYtPm1pbm9yLT5kZXY7Cj4gIAlzdHJ1Y3QgZHJtX3BlbmRpbmdfZXZlbnQgKmUs ICpldDsKPiAtCXN0cnVjdCBkcm1fcGVuZGluZ192YmxhbmtfZXZlbnQgKnYsICp2dDsKPiArCXN0 cnVjdCBkcm1fdmJsYW5rX3dhaXRfaXRlbSAqaSwgKml0Owo+ICAJdW5zaWduZWQgbG9uZyBmbGFn czsKPiAgCj4gIAlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2LT5ldmVudF9sb2NrLCBmbGFncyk7Cj4g IAo+ICAJLyogUmVtb3ZlIHBlbmRpbmcgZmxpcHMgKi8KPiAtCWxpc3RfZm9yX2VhY2hfZW50cnlf c2FmZSh2LCB2dCwgJmRldi0+dmJsYW5rX2V2ZW50X2xpc3QsIGJhc2UubGluaykKPiArCWxpc3Rf Zm9yX2VhY2hfZW50cnlfc2FmZShpLCBpdCwgJmRldi0+dmJsYW5rX2V2ZW50X2xpc3QsIGxpbmsp IHsKPiArCQlzdHJ1Y3QgZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICp2Owo+ICsKPiArCQlpZiAo IWktPmZyb21fdXNlcl9zcGFjZSkKPiArCQkJY29udGludWU7Cj4gKwo+ICsJCXYgPSBjb250YWlu ZXJfb2YoaSwgc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCwgaXRlbSk7Cj4gIAkJaWYg KHYtPmJhc2UuZmlsZV9wcml2ID09IGZpbGVfcHJpdikgewo+IC0JCQlsaXN0X2RlbCgmdi0+YmFz ZS5saW5rKTsKPiAtCQkJZHJtX3ZibGFua19wdXQoZGV2LCB2LT5pdGVtLnBpcGUpOwo+ICsJCQls aXN0X2RlbCgmaS0+bGluayk7Cj4gKwkJCWRybV92YmxhbmtfcHV0KGRldiwgaS0+cGlwZSk7Cj4g IAkJCXYtPmJhc2UuZGVzdHJveSgmdi0+YmFzZSk7Cj4gIAkJfQo+ICsJfQo+ICAKPiAgCS8qIFJl bW92ZSB1bmNvbnN1bWVkIGV2ZW50cyAqLwo+ICAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGUs IGV0LCAmZmlsZV9wcml2LT5ldmVudF9saXN0LCBsaW5rKSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9kcm1faXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5jCj4gaW5kZXgg NGMwMzI0MC4uZGQwOTFjMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lycS5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pcnEuYwo+IEBAIC0xMTQ0LDcgKzExNDQsNyBA QCBzdGF0aWMgdm9pZCBkcm1fd2FpdF92YmxhbmtfY2FsbGJhY2soc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKPiAgdm9pZCBkcm1fdmJsYW5rX29mZihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQg Y3J0YykKPiAgewo+ICAJc3RydWN0IGRybV92YmxhbmtfY3J0YyAqdmJsYW5rID0gJmRldi0+dmJs YW5rW2NydGNdOwo+IC0Jc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqZSwgKnQ7Cj4g KwlzdHJ1Y3QgZHJtX3ZibGFua193YWl0X2l0ZW0gKmksICp0Owo+ICAJc3RydWN0IHRpbWV2YWwg bm93Owo+ICAJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKPiAgCXVuc2lnbmVkIGludCBzZXE7Cj4g QEAgLTExNzEsMTUgKzExNzEsMTUgQEAgdm9pZCBkcm1fdmJsYW5rX29mZihzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCBpbnQgY3J0YykKPiAgCS8qIFNlbmQgYW55IHF1ZXVlZCB2YmxhbmsgZXZlbnRz LCBsZXN0IHRoZSBuYXRpdmVzIGdyb3cgZGlzcXVpZXQgKi8KPiAgCXNlcSA9IGRybV92Ymxhbmtf Y291bnRfYW5kX3RpbWUoZGV2LCBjcnRjLCAmbm93KTsKPiAgCj4gLQlsaXN0X2Zvcl9lYWNoX2Vu dHJ5X3NhZmUoZSwgdCwgJmRldi0+dmJsYW5rX2V2ZW50X2xpc3QsIGJhc2UubGluaykgewo+IC0J CWlmIChlLT5pdGVtLnBpcGUgIT0gY3J0YykKPiArCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShp LCB0LCAmZGV2LT52YmxhbmtfZXZlbnRfbGlzdCwgbGluaykgewo+ICsJCWlmIChpLT5waXBlICE9 IGNydGMpCj4gIAkJCWNvbnRpbnVlOwo+ICAJCURSTV9ERUJVRygiU2VuZGluZyBwcmVtYXR1cmUg dmJsYW5rIGV2ZW50IG9uIGRpc2FibGU6IFwKPiAgCQkJICB3YW50ZWQgJWQsIGN1cnJlbnQgJWRc biIsCj4gLQkJCSAgZS0+aXRlbS53YW50ZWRfc2VxLCBzZXEpOwo+IC0JCWxpc3RfZGVsKCZlLT5i YXNlLmxpbmspOwo+IC0JCWRybV92YmxhbmtfcHV0KGRldiwgZS0+aXRlbS5waXBlKTsKPiAtCQlk cm1fd2FpdF92YmxhbmtfY2FsbGJhY2soZGV2LCAmZS0+aXRlbSwgc2VxLCAmbm93LCB0cnVlKTsK PiArCQkJIGktPndhbnRlZF9zZXEsIHNlcSk7Cj4gKwkJbGlzdF9kZWwoJmktPmxpbmspOwo+ICsJ CWRybV92YmxhbmtfcHV0KGRldiwgaS0+cGlwZSk7Cj4gKwkJZHJtX3dhaXRfdmJsYW5rX2NhbGxi YWNrKGRldiwgaSwgc2VxLCAmbm93LCB0cnVlKTsKPiAgCX0KPiAgCXNwaW5fdW5sb2NrX2lycXJl c3RvcmUoJmRldi0+ZXZlbnRfbG9jaywgaXJxZmxhZ3MpOwo+ICB9Cj4gQEAgLTE0MjcsNiArMTQy Nyw3IEBAIHN0YXRpYyBpbnQgZHJtX3F1ZXVlX3ZibGFua19ldmVudChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCBpbnQgcGlwZSwKPiAgCWUtPmJhc2UuZXZlbnQgPSAmZS0+ZXZlbnQuYmFzZTsKPiAg CWUtPmJhc2UuZmlsZV9wcml2ID0gZmlsZV9wcml2Owo+ICAJZS0+YmFzZS5kZXN0cm95ID0gKHZv aWQgKCopIChzdHJ1Y3QgZHJtX3BlbmRpbmdfZXZlbnQgKikpIGtmcmVlOwo+ICsJZS0+aXRlbS5m cm9tX3VzZXJfc3BhY2UgPSB0cnVlOwo+ICAJZS0+aXRlbS5jYWxsYmFjayA9IGNhbGxiYWNrOwo+ ICAJZS0+aXRlbS5jYWxsYmFja19mcm9tX3dvcmsgPSBjYWxsYmFja19mcm9tX3dvcms7Cj4gIAlp ZiAoY2FsbGJhY2tfZnJvbV93b3JrKQo+IEBAIC0xNDc2LDcgKzE0NzcsNyBAQCBzdGF0aWMgaW50 IGRybV9xdWV1ZV92YmxhbmtfZXZlbnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHBpcGUs Cj4gIAkJdmJsd2FpdC0+cmVwbHkuc2VxdWVuY2UgPSBzZXE7Cj4gIAl9IGVsc2Ugewo+ICAJCS8q IGRybV9oYW5kbGVfdmJsYW5rX2V2ZW50cyB3aWxsIGNhbGwgZHJtX3ZibGFua19wdXQgKi8KPiAt CQlsaXN0X2FkZF90YWlsKCZlLT5iYXNlLmxpbmssICZkZXYtPnZibGFua19ldmVudF9saXN0KTsK PiArCQlsaXN0X2FkZF90YWlsKCZlLT5pdGVtLmxpbmssICZkZXYtPnZibGFua19ldmVudF9saXN0 KTsKPiAgCQl2Ymx3YWl0LT5yZXBseS5zZXF1ZW5jZSA9IHZibHdhaXQtPnJlcXVlc3Quc2VxdWVu Y2U7Cj4gIAl9Cj4gIAo+IEBAIC0xNjM1LDcgKzE2MzYsNyBAQCBFWFBPUlRfU1lNQk9MKGRybV93 YWl0X3ZibGFua19rZXJuZWwpOwo+ICAKPiAgc3RhdGljIHZvaWQgZHJtX2hhbmRsZV92Ymxhbmtf ZXZlbnRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjcnRjKQo+ICB7Cj4gLQlzdHJ1Y3Qg ZHJtX3BlbmRpbmdfdmJsYW5rX2V2ZW50ICplLCAqdDsKPiArCXN0cnVjdCBkcm1fdmJsYW5rX3dh aXRfaXRlbSAqaSwgKnQ7Cj4gIAlzdHJ1Y3QgdGltZXZhbCBub3c7Cj4gIAl1bnNpZ25lZCBpbnQg c2VxOwo+ICAKPiBAQCAtMTY0MywxOCArMTY0NCwxOCBAQCBzdGF0aWMgdm9pZCBkcm1faGFuZGxl X3ZibGFua19ldmVudHMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNydGMpCj4gIAo+ICAJ c2VxID0gZHJtX3ZibGFua19jb3VudF9hbmRfdGltZShkZXYsIGNydGMsICZub3cpOwo+ICAKPiAt CWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShlLCB0LCAmZGV2LT52YmxhbmtfZXZlbnRfbGlzdCwg YmFzZS5saW5rKSB7Cj4gLQkJaWYgKGUtPml0ZW0ucGlwZSAhPSBjcnRjKQo+ICsJbGlzdF9mb3Jf ZWFjaF9lbnRyeV9zYWZlKGksIHQsICZkZXYtPnZibGFua19ldmVudF9saXN0LCBsaW5rKSB7Cj4g KwkJaWYgKGktPnBpcGUgIT0gY3J0YykKPiAgCQkJY29udGludWU7Cj4gLQkJaWYgKChzZXEgLSBl LT5pdGVtLndhbnRlZF9zZXEpID4gKDE8PDIzKSkKPiArCQlpZiAoKHNlcSAtIGktPndhbnRlZF9z ZXEpID4gKDE8PDIzKSkKPiAgCQkJY29udGludWU7Cj4gIAo+ICAJCURSTV9ERUJVRygidmJsYW5r IGV2ZW50IG9uICVkLCBjdXJyZW50ICVkXG4iLAo+IC0JCQkgIGUtPml0ZW0ud2FudGVkX3NlcSwg c2VxKTsKPiArCQkJICBpLT53YW50ZWRfc2VxLCBzZXEpOwo+ICAKPiAtCQlsaXN0X2RlbCgmZS0+ YmFzZS5saW5rKTsKPiAtCQlkcm1fdmJsYW5rX3B1dChkZXYsIGUtPml0ZW0ucGlwZSk7Cj4gLQkJ ZHJtX3dhaXRfdmJsYW5rX2NhbGxiYWNrKGRldiwgJmUtPml0ZW0sIHNlcSwgJm5vdywgZmFsc2Up Owo+ICsJCWxpc3RfZGVsKCZpLT5saW5rKTsKPiArCQlkcm1fdmJsYW5rX3B1dChkZXYsIGktPnBp cGUpOwo+ICsJCWRybV93YWl0X3ZibGFua19jYWxsYmFjayhkZXYsIGksIHNlcSwgJm5vdywgZmFs c2UpOwo+ICAJfQo+ICAKPiAgCXRyYWNlX2RybV92YmxhbmtfZXZlbnQoY3J0Yywgc2VxKTsKPiBk aWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtUC5oIGIvaW5jbHVkZS9kcm0vZHJtUC5oCj4gaW5k ZXggNDc0Yzg5Mi4uNDY3MjRkOSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1QLmgKPiAr KysgYi9pbmNsdWRlL2RybS9kcm1QLmgKPiBAQCAtMjU4LDcgKzI1OCw3IEBAIHN0cnVjdCBkcm1f aW9jdGxfZGVzYyB7Cj4gIC8qIEV2ZW50IHF1ZXVlZCB1cCBmb3IgdXNlcnNwYWNlIHRvIHJlYWQg Ki8KPiAgc3RydWN0IGRybV9wZW5kaW5nX2V2ZW50IHsKPiAgCXN0cnVjdCBkcm1fZXZlbnQgKmV2 ZW50Owo+IC0Jc3RydWN0IGxpc3RfaGVhZCBsaW5rOwo+ICsJc3RydWN0IGxpc3RfaGVhZCBsaW5r OyAvKiBmaWxlX3ByaXYtPmV2ZW50X2xpc3QgKi8KPiAgCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9w cml2Owo+ICAJcGlkX3QgcGlkOyAvKiBwaWQgb2YgcmVxdWVzdGVyLCBubyBndWFyYW50ZWUgaXQn cyB2YWxpZCBieSB0aGUgdGltZQo+ICAJCSAgICAgIHdlIGRlbGl2ZXIgdGhlIGV2ZW50LCBmb3Ig dHJhY2luZyBvbmx5ICovCj4gQEAgLTY2OCw4ICs2NjgsMTAgQEAgdHlwZWRlZiB2b2lkICgqZHJt X3ZibGFua19jYWxsYmFja190KShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQkJICAgICAg Ym9vbCBwcmVtYXR1cmUpOwo+ICAKPiAgc3RydWN0IGRybV92Ymxhbmtfd2FpdF9pdGVtIHsKPiAr CXN0cnVjdCBsaXN0X2hlYWQgbGluazsgLyogZGV2LT52YmxhbmtfZXZlbnRfbGlzdCAqLwo+ICAJ aW50IHBpcGU7Cj4gIAl1bnNpZ25lZCBpbnQgd2FudGVkX3NlcTsKPiArCWJvb2wgZnJvbV91c2Vy X3NwYWNlOwo+ICAKPiAgCWRybV92YmxhbmtfY2FsbGJhY2tfdCBjYWxsYmFjazsKPiAgCWJvb2wg Y2FsbGJhY2tfZnJvbV93b3JrOwo+IC0tIAo+IDIuMS4xCj4gCj4gX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4g SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApNYXR0IFJvcGVyCkdyYXBoaWNz IFNvZnR3YXJlIEVuZ2luZWVyCklvVEcgUGxhdGZvcm0gRW5hYmxpbmcgJiBEZXZlbG9wbWVudApJ bnRlbCBDb3Jwb3JhdGlvbgooOTE2KSAzNTYtMjc5NQpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2RyaS1kZXZlbAo=