From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v3 03/10] drm/imx: atomic phase 1: Use transitional atomic CRTC and plane helpers Date: Sun, 14 Aug 2016 12:46:27 +0200 Message-ID: References: <1467618039-7457-1-git-send-email-gnuiyl@gmail.com> <1467618039-7457-4-git-send-email-gnuiyl@gmail.com> <20160813101154.GA3864@n2100.armlinux.org.uk> <20160813104531.GA4844@n2100.armlinux.org.uk> <20160813112947.GA6718@n2100.armlinux.org.uk> <20160814094413.GX6232@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-it0-x244.google.com (mail-it0-x244.google.com [IPv6:2607:f8b0:4001:c0b::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6E41D6E06D for ; Sun, 14 Aug 2016 10:46:29 +0000 (UTC) Received: by mail-it0-x244.google.com with SMTP id j124so1803660ith.3 for ; Sun, 14 Aug 2016 03:46:29 -0700 (PDT) In-Reply-To: <20160814094413.GX6232@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Russell King - ARM Linux , Peter Senna Tschudin Cc: dri-devel , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org T24gU3VuLCBBdWcgMTQsIDIwMTYgYXQgMTE6NDQ6MTRBTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBTYXQsIEF1ZyAxMywgMjAxNiBhdCAxMjoyOTo0N1BNICswMTAwLCBSdXNzZWxs IEtpbmcgLSBBUk0gTGludXggd3JvdGU6Cj4gPiBPbiBTYXQsIEF1ZyAxMywgMjAxNiBhdCAxMTo0 NTozMUFNICswMTAwLCBSdXNzZWxsIEtpbmcgLSBBUk0gTGludXggd3JvdGU6Cj4gPiA+IE9uIFNh dCwgQXVnIDEzLCAyMDE2IGF0IDExOjExOjU0QU0gKzAxMDAsIFJ1c3NlbGwgS2luZyAtIEFSTSBM aW51eCB3cm90ZToKPiA+ID4gPiBPbiBNb24sIEp1bCAwNCwgMjAxNiBhdCAwMzo0MDozMlBNICsw ODAwLCBMaXUgWWluZyB3cm90ZToKPiA+ID4gPiA+IFVzZSB0aGUgZHJtX3BsYW5lX2hlbHBlcl91 cGRhdGUvZGlzYWJsZSgpIGFuZCBkcm1faGVscGVyX2NydGNfbW9kZV9zZXQoKQo+ID4gPiA+ID4g dHJhbnNpdGlvbmFsIGF0b21pYyBoZWxwZXJzLiAgVGhlIGNydGMtPm1vZGVfc2V0X25vZmIgY2Fs bGJhY2sgaXMgYWRkZWQKPiA+ID4gPiA+IHNvIHRoYXQgdGhlIHByaW1hcnkgcGxhbmUgaXMgbm8g bG9uZ2VyIHRpZWQgdG8gdGhlIENSVEMuICBDaGVjay91cGRhdGUKPiA+ID4gPiA+IGxvZ2ljcyBh cmUgc2VwYXJhdGVkIHRvIG1ha2Ugc3VyZSBjcnRjLT5tb2RlX3NldF9ub2ZiIGFuZCBwbGFuZS0+ YXRvbWljX3VwZGF0ZQo+ID4gPiA+ID4gYXJlIGFsd2F5cyBzdWNjZXNzZnVsLiAgQWxzbywgc29t ZSBuZWNlc3NhcnkgbG9naWNzIGFyZSB0d2Vha2VkIGZvciBhIHNtb290aAo+ID4gPiA+ID4gdHJh bnNpdGlvbi4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBMaXUgWWluZyA8Z251 aXlsQGdtYWlsLmNvbT4KPiA+ID4gPgo+ID4gPiA+IFRoaXMgcGF0Y2ggY2F1c2VzIGEgcmVncmVz c2lvbiB3aXRoIG15IHhvcmcgZGR4IGRyaXZlcjoKPiA+ID4gPgo+ID4gPiA+IFsgICAgMjkuODUw XSAoRUUpIGFybWFkYSgwKTogW2RybV0gZmFpbGVkIHRvIHNldCBtb2RlIG9uIGNydGMgMjQ6IElu dmFsaWQgYXJndW1lbnQKPiA+ID4gPgo+ID4gPiA+IEknbSBub3Qgc3VyZSB3aHkgKHlldCkuCj4g PiA+Cj4gPiA+IEhpLAo+ID4gPgo+ID4gPiBFbmFibGluZyBEUk0gZGVidWdnaW5nIGRvZXNuJ3Qg c2VlbSB0byBwcm92aWRlIG11Y2ggaW4gdGhlIHdheSBvZiBjbHVlczoKPiA+ID4KPiA+ID4gW2Ry bTpkcm1faW9jdGxdIHBpZD0xMDE1LCBkZXY9MHhlMjAwLCBhdXRoPTEsIERSTV9JT0NUTF9NT0RF X1NFVENSVEMKPiA+ID4gW2RybTpkcm1fbW9kZV9zZXRjcnRjXSBbQ1JUQzoyNDpjcnRjLTBdCj4g PiA+IFtkcm06ZHJtX21vZGVfc2V0Y3J0Y10gW0NPTk5FQ1RPUjozNDpIRE1JLUEtMV0KPiA+ID4g W2RybTpkcm1fY3J0Y19oZWxwZXJfc2V0X2NvbmZpZ10KPiA+ID4gW2RybTpkcm1fY3J0Y19oZWxw ZXJfc2V0X2NvbmZpZ10gW0NSVEM6MjQ6Y3J0Yy0wXSBbRkI6NDhdICNjb25uZWN0b3JzPTEgKHgg eSkgKDAgMCkKPiA+ID4gW2RybTpkcm1fY3J0Y19oZWxwZXJfc2V0X2NvbmZpZ10gW0NPTk5FQ1RP UjozNDpIRE1JLUEtMV0gdG8gW0NSVEM6MjQ6Y3J0Yy0wXQo+ID4gPiBbZHJtOmRybV9jcnRjX2hl bHBlcl9zZXRfY29uZmlnXSBhdHRlbXB0aW5nIHRvIHNldCBtb2RlIGZyb20gdXNlcnNwYWNlCj4g PiA+IFtkcm06ZHJtX21vZGVfZGVidWdfcHJpbnRtb2RlbGluZV0gTW9kZWxpbmUgNDk6IjE5MjB4 MTA4MCIgMCAxNDg1MDAgMTkyMCAyNDQ4IDI0OTIgMjY0MCAxMDgwIDEwODQgMTA4OSAxMTI1IDB4 MCAweDUKPiA+ID4gW2RybTpkcm1fY3J0Y19oZWxwZXJfc2V0X21vZGVdIFtDUlRDOjI0OmNydGMt MF0KPiA+ID4gW2RybTpkcm1fdmJsYW5rX29mZl0gY3J0YyAwLCB2YmxhbmsgZW5hYmxlZCAwLCBp bm1vZGVzZXQgMAo+ID4gPiBbZHJtOmRybV91cGRhdGVfdmJsYW5rX2NvdW50XSB1cGRhdGluZyB2 YmxhbmsgY291bnQgb24gY3J0YyAwOiBjdXJyZW50PTIsIGRpZmY9MCwgaHc9MCBod19sYXN0PTAK PiA+ID4gW2RybTpkcm1fbW9kZV9vYmplY3RfcmVmZXJlbmNlXSBPQkogSUQ6IDUxICgxKQo+ID4g PiBbZHJtOmRybV9tb2RlX29iamVjdF91bnJlZmVyZW5jZV0gT0JKIElEOiA1MSAoMikKPiA+ID4g W2RybTpkcm1fYXRvbWljX3NldF9tb2RlX2Zvcl9jcnRjXSBTZXQgW01PREU6MTkyMHgxMDgwXSBm b3IgQ1JUQyBzdGF0ZSBlZDgxZWUwMAo+ID4gPiBbZHJtOmRybV9tb2RlX29iamVjdF9yZWZlcmVu Y2VdIE9CSiBJRDogNDcgKDMpCj4gPiA+IFtkcm06ZHJtX21vZGVfb2JqZWN0X3VucmVmZXJlbmNl XSBPQkogSUQ6IDQ3ICg0KQo+ID4gPiBbZHJtOmRybV9tb2RlX29iamVjdF9yZWZlcmVuY2VdIE9C SiBJRDogNDggKDIpCj4gPiA+IFtkcm06ZHJtX2F0b21pY19zZXRfZmJfZm9yX3BsYW5lXSBTZXQg W0ZCOjQ4XSBmb3IgcGxhbmUgc3RhdGUgZWQ2MzJkMDAKPiA+ID4gW2RybTpkcm1fbW9kZV9vYmpl Y3RfdW5yZWZlcmVuY2VdIE9CSiBJRDogNDggKDMpCj4gPiA+IFtkcm06ZHJtX21vZGVfb2JqZWN0 X3VucmVmZXJlbmNlXSBPQkogSUQ6IDUxICgxKQo+ID4gPiBbZHJtOmRybV9jcnRjX2hlbHBlcl9z ZXRfY29uZmlnXSAqRVJST1IqIGZhaWxlZCB0byBzZXQgbW9kZSBvbiBbQ1JUQzoyNDpjcnRjLTBd Cj4gPiA+IFtkcm06ZHJtX2NydGNfaGVscGVyX3NldF9tb2RlXSBbQ1JUQzoyNDpjcnRjLTBdCj4g PiA+IFtkcm06ZHJtX21vZGVfb2JqZWN0X3JlZmVyZW5jZV0gT0JKIElEOiA1MiAoMSkKPiA+ID4g W2RybTpkcm1fbW9kZV9vYmplY3RfdW5yZWZlcmVuY2VdIE9CSiBJRDogNTIgKDIpCj4gPiA+IFtk cm06ZHJtX2F0b21pY19zZXRfbW9kZV9mb3JfY3J0Y10gU2V0IFtNT0RFOjE5MjB4MTA4MF0gZm9y IENSVEMgc3RhdGUgZWQ4MWY2MDAKPiA+ID4gW2RybTpkcm1fbW9kZV9vYmplY3RfcmVmZXJlbmNl XSBPQkogSUQ6IDQ3ICgzKQo+ID4gPiBbZHJtOmRybV9tb2RlX29iamVjdF91bnJlZmVyZW5jZV0g T0JKIElEOiA0NyAoNCkKPiA+ID4gW2RybTpkcm1fbW9kZV9vYmplY3RfcmVmZXJlbmNlXSBPQkog SUQ6IDQ3ICgzKQo+ID4gPiBbZHJtOmRybV9hdG9taWNfc2V0X2ZiX2Zvcl9wbGFuZV0gU2V0IFtG Qjo0N10gZm9yIHBsYW5lIHN0YXRlIGVkNjMyZDAwCj4gPiA+IFtkcm06ZHJtX21vZGVfb2JqZWN0 X3VucmVmZXJlbmNlXSBPQkogSUQ6IDQ3ICg0KQo+ID4gPiBbZHJtOmRybV9tb2RlX29iamVjdF91 bnJlZmVyZW5jZV0gT0JKIElEOiA1MiAoMSkKPiA+ID4gW2RybTpkcm1fY3J0Y19oZWxwZXJfc2V0 X21vZGVdIFtFTkNPREVSOjMzOlRNRFMtMzNdIHNldCBbTU9ERTo0NjoxOTIweDEwODBdCj4gPiA+ IFtkcm06ZHJtX3ZibGFua19vbl0gY3J0YyAwLCB2YmxhbmsgZW5hYmxlZCAwLCBpbm1vZGVzZXQg MQo+ID4gPiBbZHJtOmRybV9jYWxjX3RpbWVzdGFtcGluZ19jb25zdGFudHNdIGNydGMgMjQ6IGh3 bW9kZTogaHRvdGFsIDI2NDAsIHZ0b3RhbCAxMTI1LCB2ZGlzcGxheSAxMDgwCj4gPiA+IFtkcm06 ZHJtX2NhbGNfdGltZXN0YW1waW5nX2NvbnN0YW50c10gY3J0YyAyNDogY2xvY2sgMTQ4NTAwIGtI eiBmcmFtZWR1ciAyMDAwMDAwMCBsaW5lZHVyIDE3Nzc3Cj4gPiA+IFtkcm06ZHJtX21vZGVfb2Jq ZWN0X3JlZmVyZW5jZV0gT0JKIElEOiA0NyAoMykKPiA+ID4gW2RybTpkcm1fbW9kZV9vYmplY3Rf dW5yZWZlcmVuY2VdIE9CSiBJRDogNDcgKDQpCj4gPiA+IFtkcm06ZHJtX21vZGVfb2JqZWN0X3Vu cmVmZXJlbmNlXSBPQkogSUQ6IDQ4ICgyKQo+ID4gPiBbZHJtOmRybV9tb2RlX29iamVjdF91bnJl ZmVyZW5jZV0gT0JKIElEOiAzNCAoNCkKPiA+ID4gW2RybTpkcm1faW9jdGxdIHJldCA9IC0yMgo+ ID4gPgo+ID4gPiBXaXRoIGEgYml0IG1vcmUgZGVidWdnaW5nLCB0aGlzIGlzIHdoYXQncyBmYWls aW5nOgo+ID4gPgo+ID4gPiBpcHVfcGxhbmVfYXRvbWljX2NoZWNrOjQ0MjogZmFpbAo+ID4gPiBb ZHJtOmRybV9jcnRjX2hlbHBlcl9zZXRfY29uZmlnXSAqRVJST1IqIGZhaWxlZCB0byBzZXQgbW9k ZSBvbiBbQ1JUQzoyNDpjcnRjLTBdCj4gPiA+Cj4gPiA+ICAgICAgICAgaWYgKG9sZF9mYiAmJiAo c3RhdGUtPnNyY193ICE9IG9sZF9zdGF0ZS0+c3JjX3cgfHwKPiA+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RhdGUtPnNyY19oICE9IG9sZF9zdGF0ZS0+c3JjX2ggfHwKPiA+ID4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmItPnBpeGVsX2Zvcm1hdCAhPSBvbGRfZmIt PnBpeGVsX2Zvcm1hdCkpIHsKPiA+ID4gICAgICAgICAgICAgICAgIHByaW50aygiJXM6JWQ6IGZh aWxcbiIsIF9fZnVuY19fLCBfX0xJTkVfXyk7Cj4gPiA+ICAgICAgICAgICAgICAgICByZXR1cm4g LUVJTlZBTDsKPiA+ID4gICAgICAgICB9Cj4gPiA+Cj4gPiA+IFRoaXMgdGVzdCBpcyBzdHVwaWQg YXMgaXQgc3RhbmRzIC0gaXQgbWVhbnMgd2UgY2FuIF9uZXZlcl8gY2hhbmdlIHRoZQo+ID4gPiBm b3JtYXQgb3Igc2l6ZSBvZiBfYW55XyBwbGFuZSwgc29tZXRoaW5nIHRoYXQgdGhlIG9sZCBjb2Rl IGFsbG93ZWQ6Cj4gPiA+Cj4gPiA+IC0gICAgICAgaWYgKGlwdV9wbGFuZS0+ZW5hYmxlZCkgewo+ ID4gPiAtICAgICAgICAgICAgICAgaWYgKHNyY193ICE9IGlwdV9wbGFuZS0+dyB8fCBzcmNfaCAh PSBpcHVfcGxhbmUtPmggfHwKPiA+ID4gLSAgICAgICAgICAgICAgICAgICBmYi0+cGl4ZWxfZm9y bWF0ICE9IGlwdV9wbGFuZS0+YmFzZS5mYi0+cGl4ZWxfZm9ybWF0KQo+ID4gPiAtICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiA+ID4KPiA+ID4gVGhpcyB1c2VkIHRvIHdv cmsgYmVjYXVzZSB3ZSdkIGNhbGwgaXB1X2NydGNfcHJlcGFyZSgpLT5pcHVfZmJfZGlzYWJsZSgp Cj4gPiA+IGJlZm9yZSB0aGUgbW9kZSBzZXQsIHdoaWNoIHdvdWxkIGNsZWFyIGlwdV9wbGFuZS0+ ZW5hYmxlZCwgY2F1c2luZyB0aGlzCj4gPiA+IHRlc3QgdG8gYmUgc2tpcHBlZC4gIEhvd2V2ZXIs IGluIHRoZSBuZXcgY29kZSwgd2UgbWVyZWx5IHRlc3QgZm9yIHRoZQo+ID4gPiBwcmVzZW5jZSBv ZiB0aGUgcHJldmlvdXMgZnJhbWVidWZmZXIsIHdoaWNoIGlzIHJlYWxseSBub3QgdGhlIHNhbWUg dGhpbmcKPiA+ID4gYXQgYWxsLgo+ID4gPgo+ID4gPiBUaGUgb2xkIGZ1bmN0aW9uYWxpdHkgbmVl ZHMgdG8gYmUgcmVzdG9yZWQgYmVjYXVzZSBzaWduaWZpY2FudGx5Cj4gPiA+IGNoYW5naW5nIHRo ZSBkaXNwbGF5ZWQgbW9kZSBpcyBzb21ldGhpbmcgd2hpY2ggbXVzdCBiZSBzdXBwb3J0ZWQgd2l0 aAo+ID4gPiBIRE1JLgo+ID4KPiA+IEJ5cGFzc2luZyB0aGUgYWJvdmUgY2hlY2sgYWxzbyBzaG93 cyB0aGF0Ogo+ID4KPiA+ICAgICAgICAgaWYgKG9sZF9mYiAmJiBmYi0+cGl0Y2hlc1swXSAhPSBv bGRfZmItPnBpdGNoZXNbMF0pIHsKPiA+ICAgICAgICAgICAgICAgICBwcmludGsoIiVzOiVkOiBm YWlsXG4iLCBfX2Z1bmNfXywgX19MSU5FX18pOwo+ID4gICAgICAgICAgICAgICAgIHJldHVybiAt RUlOVkFMOwo+ID4gICAgICAgICB9Cj4gPgo+ID4gYWxzbyBmYWlscy4gIERpc2FibGluZyB0aGlz IGFzIHdlbGwgcmVzdWx0cyBpbiBsb3NzIG9mIHN5bmMgb24gdGhlCj4gPiBIRE1JIGRpc3BsYXks IGFsdGhvdWdoIHRoZSBtb2RlIHNldCBub3cgc3VjY2VlZHMuCj4gPgo+ID4gVGhlIG1vcmUgSSB0 aGluayBhYm91dCB0aGlzLCB0aGUgbW9yZSBJIGNvbWUgdG8gb25lIG9mIHR3byBwb3NzaWJsZQo+ ID4gY29uY2x1c2lvbnM6Cj4gPgo+ID4gMS4gVGhlc2UgY2hlY2tzIHdlcmUgbm90IGFwcHJvcHJp YXRlIHdpdGggdGhlIG9sZCBjb2RlIGFzIHdlIHdlcmUKPiA+ICAgIGFsd2F5cyBkaXNhYmxpbmcg dGhlIGRpc3BsYXkgY2hhbm5lbCBwcmlvciB0byBtYWtpbmcgY2hhbmdlcy4KPiA+Cj4gPiAgICBX ZSBuZWVkIGF0b21pYyBtb2RlIHNldCB0byB3b3JrIGluIGV4YWN0bHkgdGhlIHNhbWUgd2F5IGFz IHRoZQo+ID4gICAgcHJldmlvdXMgY29kZTogYXMgYSBzZXJpZXMgb2YgZGlzYWJsZS1tb2RpZnkt ZW5hYmxlIHNldCBvZiBzdGVwcywKPiA+ICAgIHNvIHRoYXQgd2UgZG9uJ3QgbmVlZCB0aGVzZSBy ZXN0cmljdGl2ZSBhbmQgcmVncmVzc2lvbiBjYXVzaW5nCj4gPiAgICBjaGVja3MuCj4gPgo+ID4g b3IKPiA+Cj4gPiAyLiBpbXgtZHJtIGhhcyB0aGVzZSBwYXJ0aWN1bGFyIHJlc3RyaWN0aW9ucyB3 aGljaCBtYWtlIGl0IGluYXBwcm9wcmlhdGUKPiA+ICAgIHRvIGJlIGNvbnZlcnRlZCB0byBhdG9t aWMgbW9kZSBzZXQsIGFzIHdlIGFsd2F5cyBuZWVkIHRvIGdvIHRocm91Z2gKPiA+ICAgIGEgZGlz YWJsZS1tb2RpZnktZW5hYmxlIHNlcmllcyBvZiBzdGVwcyAtIHdoaWNoIG1lYW5zIHRoZSBhdG9t aWMKPiA+ICAgIG1vZGUgc2V0IGNoYW5nZXMgZm9yIGlteC1kcm0gbmVlZCB0byBiZSByZXZlcnRl ZCBiYWNrIHRvIHRoaXMgcGF0Y2guCj4gPgo+ID4gSSdtIHByZXR0eSBzdXJlICgyKSBkb2Vzbid0 IHJlYWxseSBhcHBseSwgYmVjYXVzZSBJIHNlZSBubyByZWFzb24gd2h5Cj4gPiB3ZSBjYW4ndCBk aXNhYmxlIHRoZSBkaXNwbGF5IGNoYW5uZWwgd2hpbGUgd2UgcmVjb25maWd1cmUgaXQuICBUaGF0 LAo+ID4gdG8gbWUsIHNlZW1zIHRvIGJlIGFuIGVudGlyZWx5IHJlYXNvbmFibGUgdGhpbmcgdG8g ZG8uCj4KPiBBbHJlYWR5IGRkaXNjdXNzZWQgdGhpcyBhdCBsZW5naHQgb24gaXJjIHdpdGggUGV0 ZXIgU2VubmEuIElmIHlvdSBoYXZlCj4gcGxhbmUgdXBkYXRlIHJlc3RyaWN0aW9ucyB3aGVyZSB5 b3UgbmVlZCB0byBjeWNsZSB0aGUgY3J0YyBjb21wbGV0ZWx5LAo+IHRoZSByaWdodCB0aGluZyB0 byBkbyBpcyB0byBzZXQgY3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkIGluc3RlYWQgb2YgcmV0dXJu Cj4gLUVJTlZBTC4gVGhlIGhlbHBlci9jb3JlIHdpbGwgdGhlbiBjb252ZXJ0IHRoYXQgaW50byBh biBFSU5WQUwgaWYKPiB1c2Vyc3BhY2UgZG9lc24ndCBzZXQgQUxMT1dfTU9ERVNFVC4gQW5kIHNp bmNlIHRoZSBoZWxwZXIgZnVuY3Rpb24gdG8gbWFwCj4gc2V0X2NvbmZpZyB0byBhdG9taWMgZG9l cyB0aGlzLCBpdCBzaG91bGQgYWxsIGp1c3Qgd29yay4KPgo+IE5vdGU6IFRoZXJlJ3MgYWJvdXQg MyBzdWNoIGNvbmRpdGlvbnMgaW4gaW14JyBhdG9taWNfY2hlY2sgZnVuY3Rpb24gd2hpY2gKPiBu ZWVkcyB0aGlzIGNoYW5nZS4KCllvdSBhbHNvIG5lZWQgdG8gdXBkYXRlIHRoZSBvdmVyYWxsIGF0 b21pY19jaGVjayB0byByZS1ydW4gdGhlIG1vZGVzZXQKY2hlY2tzIGFmdGVyIHRoZSBwbGFuZSBj aGVja3MgYWdhaW4gKHNpbmNlIHBsYW5lIGNoZWNrcyBjYW4gdXBkYXRlCm1vZGVfY2hhbmdlZCku IFBldGVyIFNlbm5hIGhhcyB0aGUgZnVsbCBkaWZmLCBidXQgYXBwYXJlbnRseSBpdCBkb2Vzbid0 CndvcmsgZWl0aGVyLiBTbyB0aGVyZSdzIHByb2JhYmx5IG1vcmUgYnVncyBzb21ld2hlcmUuCi1E YW5pZWwKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0 aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbAo=