From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 1/4 v3] drm: Add support of ARC PGU display controller Date: Tue, 15 Mar 2016 16:59:40 +0100 Message-ID: <20160315155940.GL14170@phenom.ffwll.local> References: <1457710959-9562-1-git-send-email-abrodkin@synopsys.com> <1457710959-9562-2-git-send-email-abrodkin@synopsys.com> <20160314070009.GN14170@phenom.ffwll.local> <1457954159.3306.24.camel@synopsys.com> <20160315081056.GS14170@phenom.ffwll.local> <1458055486.4174.16.camel@synopsys.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x236.google.com (mail-wm0-x236.google.com [IPv6:2a00:1450:400c:c09::236]) by gabe.freedesktop.org (Postfix) with ESMTPS id 672706E764 for ; Tue, 15 Mar 2016 15:58:55 +0000 (UTC) Received: by mail-wm0-x236.google.com with SMTP id l124so16677868wmf.1 for ; Tue, 15 Mar 2016 08:58:55 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1458055486.4174.16.camel@synopsys.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Alexey Brodkin Cc: "Jose.Abreu@synopsys.com" , "linux-snps-arc@lists.infradead.org" , "dri-devel@lists.freedesktop.org" , "linux-kernel@vger.kernel.org" List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBNYXIgMTUsIDIwMTYgYXQgMDM6MjQ6NDZQTSArMDAwMCwgQWxleGV5IEJyb2RraW4g d3JvdGU6Cj4gSGkgRGFuaWVsLAo+IAo+IE9uIFR1ZSwgMjAxNi0wMy0xNSBhdCAwOToxMCArMDEw MCwgRGFuaWVsIFZldHRlciB3cm90ZToKPiA+IE9uIE1vbiwgTWFyIDE0LCAyMDE2IGF0IDExOjE1 OjU5QU0gKzAwMDAsIEFsZXhleSBCcm9ka2luIHdyb3RlOgo+ID4gPiAKPiA+ID4gT24gTW9uLCAy MDE2LTAzLTE0IGF0IDA4OjAwICswMTAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ID4gPiA+IAo+ ID4gPiA+IE9uIEZyaSwgTWFyIDExLCAyMDE2IGF0IDA2OjQyOjM2UE0gKzAzMDAsIEFsZXhleSBC cm9ka2luIHdyb3RlOgo+ID4gPiA+ID4gCj4gPiA+ID4gPiArc3RhdGljIGludCBhcmNwZ3VfYXRv bWljX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gPiA+ID4gKwkJCQnCoMKgwqDC oHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwgYm9vbCBhc3luYykKPiA+ID4gPiA+ICt7 Cj4gPiA+ID4gPiArCXJldHVybiBkcm1fYXRvbWljX2hlbHBlcl9jb21taXQoZGV2LCBzdGF0ZSwg ZmFsc2UpOwo+ID4gPiA+IE5vdGUgdGhhdCB0aGlzIGlzbid0IHJlYWxseSBhc3luYyBpZiB5b3Ug ZXZlciBnZXQgYXJvdW5kIHRvIGltcGxlbWVudAo+ID4gPiA+IGZlbmNlIHN1cHBvcnQgb3IgdmJs YW5rIHN1cHBvcnQuIEp1c3QgZnlpLgo+ID4gPiBPayBidXQgZm9yIG5vdyBzaG91bGQgSSBsZWF2 ZSBpdCBhcyBpdCBpcz8KPiA+IFllYWggb2sgYXMtaXMsIGhlbmNlIGp1c3QgZnlpLgo+IAo+IFRo YW5rcy4gSnVzdCB3YW50ZWQgdG8gbWFrZSBzdXJlIHdlJ3JlIG9uIHRoZSBzYW1lIHBhZ2UgOikK PiAKPiA+ID4gCj4gPiA+ID4gCj4gPiA+ID4gPiAKPiA+ID4gPiA+ICtzdGF0aWMgc3RydWN0IGRy bV9kcml2ZXIgYXJjcGd1X2RybV9kcml2ZXIgPSB7Cj4gPiA+ID4gPiArCS5kcml2ZXJfZmVhdHVy ZXMgPSBEUklWRVJfTU9ERVNFVCB8IERSSVZFUl9HRU0gfCBEUklWRVJfUFJJTUUgfAo+ID4gPiA+ ID4gKwkJCcKgwqDCoERSSVZFUl9BVE9NSUMsCj4gPiA+ID4gPiArCS5wcmVjbG9zZSA9IGFyY3Bn dV9wcmVjbG9zZSwKPiA+ID4gPiA+ICsJLmxhc3RjbG9zZSA9IGFyY3BndV9sYXN0Y2xvc2UsCj4g PiA+ID4gPiArCS5uYW1lID0gImRybS1hcmNwZ3UiLAo+ID4gPiA+ID4gKwkuZGVzYyA9ICJBUkMg UEdVIENvbnRyb2xsZXIiLAo+ID4gPiA+ID4gKwkuZGF0ZSA9ICIyMDE2MDIxOSIsCj4gPiA+ID4g PiArCS5tYWpvciA9IDEsCj4gPiA+ID4gPiArCS5taW5vciA9IDAsCj4gPiA+ID4gPiArCS5wYXRj aGxldmVsID0gMCwKPiA+ID4gPiA+ICsJLmZvcHMgPSAmYXJjcGd1X2RybV9vcHMsCj4gPiA+ID4g PiArCS5sb2FkID0gYXJjcGd1X2xvYWQsCj4gPiA+ID4gPiArCS51bmxvYWQgPSBhcmNwZ3VfdW5s b2FkLAo+ID4gPiA+IExvYWQgYW5kIHVubG9hZCBob29rcyBhcmUgZGVwcmVjYXRlZCAoaXQncyBh IGNsYXNzaWMgbWlkbGF5ZXIgbWlzdGFrZSkuCj4gPiA+ID4gUGxlYXNlIHVzZSBkcm1fZGV2X2Fs bG9jL3JlZ2lzdGVyIHBhaXJzIGRpcmVjdGx5IGluc3RlYWQsIGFuZCBwdXQgeW91cgo+ID4gPiA+ IGRldmljZSBzZXR1cCBjb2RlIGluLWJldHdlZW4uIFNpbWlsYXIgZm9yIHVubG9hZGluZy4gVGhl cmUncyBhIGJ1bmNoIG9mCj4gPiA+ID4gZXhhbXBsZSBkcml2ZXJzIGNvbnZlcnRlZCBhbHJlYWR5 Lgo+ID4gPiBPayBJIHRvb2sgImF0bWVsLWhsY2RjIiBhcyBleGFtcGxlLgo+ID4gPiBBbmQgdGhh dCdzIGludGVyZXN0aW5nLgo+ID4gPiAKPiA+ID4gSWYgSSBwdXQgbXnCoGFyY3BndV9sb2FkKCkg aW4gYmV0d2VlbsKgZHJtX2Rldl9hbGxvYygpIGFuZAo+ID4gPiBkcm1fZGV2X3JlZ2lzdGVyKCkg dGhlbiBJJ20gZ2V0dGluZyB0aGlzIG9uIHRoZSBkcml2ZXIgcHJvYmU6Cj4gPiA+IC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+OC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KPiA+ID4gW2RybV0gSW5pdGlhbGl6ZWQgZHJtIDEuMS4wIDIwMDYwODEwCj4gPiA+IGFyY3Bn dSBlMDAxNzAwMC5wZ3U6IGFyY19wZ3UgSUQ6IDB4YWJiYWJhYWIKPiA+ID4gLS0tLS0tLS0tLS0t WyBjdXQgaGVyZSBdLS0tLS0tLS0tLS0tCj4gPiA+IFdBUk5JTkc6IENQVTogMCBQSUQ6IDEgYXQg bGliL2tvYmplY3QuYzoyNDQga29iamVjdF9hZGRfaW50ZXJuYWwrMHgxN2MvMHg0OTgoKQo+ID4g PiBrb2JqZWN0X2FkZF9pbnRlcm5hbCBmYWlsZWQgZm9yIGNhcmQwLUhETUktQS0xIChlcnJvcjog LTIgcGFyZW50OiBjYXJkMCkKPiA+ID4gTW9kdWxlcyBsaW5rZWQgaW46Cj4gPiA+IENQVTogMCBQ SUQ6IDEgQ29tbTogc3dhcHBlciBOb3QgdGFpbnRlZCA0LjUuMC1yYzMtMDEwNjItZ2E0NDc4MjIt ZGlydHkgIzE3Cj4gPiA+IAo+ID4gPiBTdGFjayBUcmFjZToKPiA+ID4gwqAgYXJjX3Vud2luZF9j b3JlLmNvbnN0cHJvcC4xKzB4YTQvMHgxMTAKPiA+ID4gwqAgd2Fybl9zbG93cGF0aF9mbXQrMHg2 ZS8weGZjCj4gPiA+IMKgIGtvYmplY3RfYWRkX2ludGVybmFsKzB4MTdjLzB4NDk4Cj4gPiA+IMKg IGtvYmplY3RfYWRkKzB4OTgvMHhlNAo+ID4gPiDCoCBkZXZpY2VfYWRkKzB4YzYvMHg3MzQKPiA+ ID4gwqAgZGV2aWNlX2NyZWF0ZV93aXRoX2dyb3VwcysweDEyYS8weDE0NAo+ID4gPiDCoCBkcm1f c3lzZnNfY29ubmVjdG9yX2FkZCsweDU0LzB4ZTgKPiA+ID4gwqAgYXJjcGd1X2RybV9oZG1pX2lu aXQrMHhkNC8weDE3Ywo+ID4gPiDCoCBhcmNwZ3VfcHJvYmUrMHgxMzgvMHgyNGMKPiA+ID4gwqAg cGxhdGZvcm1fZHJ2X3Byb2JlKzB4MmUvMHg2Ywo+ID4gPiDCoCByZWFsbHlfcHJvYmUrMHgyMTIv MHgzNWMKPiA+ID4gwqAgX19kcml2ZXJfYXR0YWNoKzB4OTAvMHg5NAo+ID4gPiDCoCBidXNfZm9y X2VhY2hfZGV2KzB4NDYvMHg4MAo+ID4gPiDCoCBidXNfYWRkX2RyaXZlcisweDE0ZS8weDFiNAo+ ID4gPiDCoCBkcml2ZXJfcmVnaXN0ZXIrMHg2NC8weDEwOAo+ID4gPiDCoCBkb19vbmVfaW5pdGNh bGwrMHg4Ni8weDE5NAo+ID4gPiDCoCBrZXJuZWxfaW5pdF9mcmVlYWJsZSsweGYwLzB4MTg4Cj4g PiA+IC0tLVsgZW5kIHRyYWNlIGM2NzE2NmFkNDNkZGNjZTIgXS0tLQo+ID4gPiBbZHJtOmRybV9z eXNmc19jb25uZWN0b3JfYWRkXSBhZGRpbmcgIkhETUktQS0xIiB0byBzeXNmcwo+ID4gPiBbZHJt OmRybV9zeXNmc19jb25uZWN0b3JfYWRkXSAqRVJST1IqIGZhaWxlZCB0byByZWdpc3RlciBjb25u ZWN0b3IgZGV2aWNlOiAtMgo+ID4gPiBhcmNwZ3UgZTAwMTcwMDAucGd1OiBmYWlsZWQgdG8gcmVn aXRlciBEUk0gY29ubmVjdG9yIGFuZCBoZWxwZXIgZnVuY3MKPiA+ID4gYXJjcGd1OiBwcm9iZSBv ZiBlMDAxNzAwMC5wZ3UgZmFpbGVkIHdpdGggZXJyb3IgLTIKPiA+ID4gLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLT44LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4g PiAKPiA+ID4gQnV0IGlmIEkgbW92ZSBhcmNwZ3VfbG9hZCgpIGFmdGVyIGRybV9kZXZfcmVnaXN0 ZXIoKSB0aGVuIGV2ZXJ5dGhpbmcKPiA+ID4gc3RhcnRzIHByb3Blcmx5IGFuZCBJIG1heSBzZWUg SERNSSBzY3JlZW4gd29ya3MgcGVyZmVjdGx5IGZpbmUuCj4gPiA+IAo+ID4gPiBBbnkgdGhvdWdo dHM/Cj4gPiBPb3BzLCB5ZWFoIG1pc3NlZCB0aGF0IGRldGFpbC4gSWYgeW91IGxvb2sgYXQgYXRt ZWwgaXQgaGFzIGEgbG9vcCB0bwo+ID4gcmVnaXN0ZXIgYWxsIHRoZSBkcm0gY29ubmVjdG9ycyBf YWZ0ZXJfIGNhbGxpbmcgZHJtX2Rldl9yZWdpc3RlcigpLgo+ID4gVG90YWxseSBmb3Jnb3QgYWJv dXQgdGhhdC4gQ2FuIHlvdSBwbHMKPiA+IC0gRXh0cmFjdCBhIG5ldyBkcm1fY29ubmVjdG9yX3Jl Z2lzdGVyX2FsbCgpIGZ1bmN0aW9uCj4gPiDCoCAoYXRtZWxfaGxjZGNfZGNfY29ubmVjdG9yX3Bs dWdfYWxsIHNlZW1zIHRvIGJlIHRoZSBiZXN0IHRlbXBsYXRlKSwKPiA+IMKgIGluY2x1ZGluZyBr ZXJuZWxkb2MuCj4gPiAtIEFkanVzdCBrZXJuZWxkb2Mgb2YgZHJtX2Rldl9yZWdpc3RlcigpIHRv IG1lbnRpb24KPiA+IMKgIGRybV9jb25uZWN0b3JfcmVnaXN0ZXJfYWxsKCkgYW5kIHRoYXQgb3Jk ZXJpbmcgY29uc3RyYWludC4KPiA+IC0gUm9sbCB0aGF0IGhlbHBlciBvdXQgdG8gYWxsIHRoZSBk cml2ZXJzIHRoYXQgY3VycmVudGx5IGhhbmQtcm9sbCBpdCAob25lCj4gPiDCoCBwYXRjaCBwZXIg ZHJpdmVyKS4KPiA+IAo+ID4gSSBrbm93IGEgYml0IG9mIHdvcmsgYnV0IGltbyBub3QgdG9vIG11 Y2gsIGFuZCBieSBkb2luZyBzb21lIHNtYWxsCj4gPiByZWZhY3RvcmluZyBldmVyeSB0aW1lIHNv bWVvbmUgc3R1bWJsZXMgb3ZlciBhIGRybSBwaXRmYWxsIHdlIGtlZXAgdGhlCj4gPiBzdWJzeXN0 ZW0gY2xlYW4mZWFzeSB0byB1bmRlcnN0YW5kLiBZb3UncmUgdXAgZm9yIHRoaXM/IFdvdWxkIGJl IGEgcHJlcAo+ID4gc2VyaWVzLCBJJ2xsIGhhcHBpbHkgcmV2aWV3IGl0IHRvIGdldCBpdCBtZXJn ZWQgZmFzdC4gSnVzdCBhIGZldyB3ZWVrcyBhZ28KPiA+IEkgbWVyZ2VkIDIwKyBwYXRjaGVzIHRv IG1ha2UgLT5tb2RlX2ZpeHVwIGhvb2tzIG9wdGlvbmFsIGFuZCByZW1vdmUgZHVtbXkKPiA+IG9u ZXMgYWxsIG92ZXIgdGhlIHN1YnN5c3RlbSwgaW4gb3RoZXIgd29yZHM6IFlvdSdsbCBoYXZlIG15 IGZ1bGwgYXR0ZW50aW9uCj4gPiA7LSkKPiAKPiBTdXJlLCBJJ20gcmVhZHkgdG8gcGF5IHRoYXQg cHJpY2UgOikKPiBTdGF5IHR1bmVkIGFuZCBwYXRjaGVzIHdpbGwgZm9sbG93LgoKQXdlc29tZSwg bG9va2luZyBmb3J3YXJkIHRvIHlvdXIgcGF0Y2hlcy4KCj4gPiA+IAo+ID4gPiA+IAo+ID4gPiA+ ID4gCj4gPiA+ID4gPiArCS5kdW1iX2NyZWF0ZSA9IGRybV9nZW1fY21hX2R1bWJfY3JlYXRlLAo+ ID4gPiA+ID4gKwkuZHVtYl9tYXBfb2Zmc2V0ID0gZHJtX2dlbV9jbWFfZHVtYl9tYXBfb2Zmc2V0 LAo+ID4gPiA+ID4gKwkuZHVtYl9kZXN0cm95ID0gZHJtX2dlbV9kdW1iX2Rlc3Ryb3ksCj4gPiA+ ID4gPiArCS5nZXRfdmJsYW5rX2NvdW50ZXIgPSBkcm1fdmJsYW5rX25vX2h3X2NvdW50ZXIsCj4g PiA+ID4gPiArCS5wcmltZV9oYW5kbGVfdG9fZmQgPSBkcm1fZ2VtX3ByaW1lX2hhbmRsZV90b19m ZCwKPiA+ID4gPiA+ICsJLnByaW1lX2ZkX3RvX2hhbmRsZSA9IGRybV9nZW1fcHJpbWVfZmRfdG9f aGFuZGxlLAo+ID4gPiA+ID4gKwkuZ2VtX2ZyZWVfb2JqZWN0ID0gZHJtX2dlbV9jbWFfZnJlZV9v YmplY3QsCj4gPiA+ID4gPiArCS5nZW1fdm1fb3BzID0gJmRybV9nZW1fY21hX3ZtX29wcywKPiA+ ID4gPiA+ICsJLmdlbV9wcmltZV9leHBvcnQgPSBkcm1fZ2VtX3ByaW1lX2V4cG9ydCwKPiA+ID4g PiA+ICsJLmdlbV9wcmltZV9pbXBvcnQgPSBkcm1fZ2VtX3ByaW1lX2ltcG9ydCwKPiA+ID4gPiA+ ICsJLmdlbV9wcmltZV9nZXRfc2dfdGFibGUgPSBkcm1fZ2VtX2NtYV9wcmltZV9nZXRfc2dfdGFi bGUsCj4gPiA+ID4gPiArCS5nZW1fcHJpbWVfaW1wb3J0X3NnX3RhYmxlID0gZHJtX2dlbV9jbWFf cHJpbWVfaW1wb3J0X3NnX3RhYmxlLAo+ID4gPiA+ID4gKwkuZ2VtX3ByaW1lX3ZtYXAgPSBkcm1f Z2VtX2NtYV9wcmltZV92bWFwLAo+ID4gPiA+ID4gKwkuZ2VtX3ByaW1lX3Z1bm1hcCA9IGRybV9n ZW1fY21hX3ByaW1lX3Z1bm1hcCwKPiA+ID4gPiA+ICsJLmdlbV9wcmltZV9tbWFwID0gZHJtX2dl bV9jbWFfcHJpbWVfbW1hcCwKPiA+ID4gPiA+ICt9Owo+ID4gPiA+ID4gKwo+ID4gPiA+ID4gK3N0 YXRpYyBpbnQgYXJjcGd1X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPiA+ ID4gPiArewo+ID4gPiA+ID4gKwlyZXR1cm4gZHJtX3BsYXRmb3JtX2luaXQoJmFyY3BndV9kcm1f ZHJpdmVyLCBwZGV2KTsKPiA+ID4gPiAuLi4gb3IgcmVhZCB0aGUga2VybmVsZG9jIG9mIHRoaXMg ZnVuY3Rpb24sIHdoaWNoIGFsc28gZXhwbGFpbnMgd2hhdCB5b3UKPiA+ID4gPiBzaG91bGQgZG8g Oy0pCj4gPiA+IENvdWxkIHlvdSBwbGVhc2UgcG9pbnQgbWUgdG8gdGhlIHJlbGV2YW50IGRvY3Vt ZW50Pwo+ID4gPiBJIHdhc24ndCBhYmxlIHRvIGZpbmQgYW55dGhpbmcgcmVsYXRlZCBmcm9tIHRo ZSBmaXJzdCBnbGFuY2UgOigKPiA+IFRoZSBrZXJuZWxkb2MgY29tbWVudCBmb3IgZHJtX3BsYXRm b3JtX2luaXQgc2F5cyBpdCdzIGRlcHJlY2F0ZWQsIHBsZWFzZQo+ID4gdXNlIGRybV9kZXZfYWxs b2MvcmVnaXN0ZXIgaW5zdGVhZC4KPiAKPiBZZWFoIEkgc2F3IHRoaXMuIEkgd2FzIGEgYml0IGNv bmZ1c2VkIHdpdGggd29yZCAia2VybmVsZG9jIiB0aGlua2luZyBhYm91dAo+IC50eHQgZmlsZXMg aW4gRG9jdW1lbnRhdGlvbiBmb2xkZXIuCgprZXJuZWxkb2MgaXMgdGhlIGtlcm5lbC1zcGVjaWZp YyB0b29sIHRvIHBhcnNlIHRoZSBzcGVjaWFsbHkgZm9ybWF0dGVkCmluLXNvdXJjZSBjb21tZW50 cyBzdGFydGluZyB3aXRoIC8qKi4gUnVuCgokIG1ha2UgaHRtbGRvY3MKCmFuZCB5b3Ugc2hvdWxk IGhhdmUgdGhlIGdlbmVyYXRlZCBncHUgZG9jcyBpbiBEb2N1bWVudGF0aW9uL0RvY0Jvb2svZ3B1 Lwp3aGljaCBwdWxscyBhbGwgdGhvc2UgdG9nZXRoZXIgaW50byBzb21ldGhpbmcgc29tZXdoYXQg Y29oZXJlbnQuCgo+IAo+ID4gPiAKPiA+ID4gPiAKPiA+ID4gPiA+IAo+ID4gPiA+ID4gKwo+ID4g PiA+ID4gKy8qCj4gPiA+ID4gPiArICogVGhpcyBmdW5jdGlvbiBpcyB0aGUgb25seSByZWFzb24g dG8gaGF2ZSBhIGNvcHkgb2YgZHJtX2ZiZGV2X2NtYV9pbml0KCkKPiA+ID4gPiA+ICsgKiBoZXJl IGluIHRoaXMgZHJpdmVyLgo+ID4gPiA+ID4gKyAqCj4gPiA+ID4gPiArICogSW4gaXRzIHR1cm4g dGhpcyBtbWFwKCkgaXMgcmVxdWlyZWQgdG8gbWFyayB1c2VyLXNwYWNlIHBhZ2UgYXMgbm9uLWNh Y2hlZAo+ID4gPiA+ID4gKyAqIGJlY2F1c2UgaXQgaXMganVzdCBhIG1pcnJvciBvciByZWFsIGhh cmR3YXJlIGZyYW1lLWJ1ZmZlci4KPiA+ID4gPiA+ICsgKi8KPiA+ID4gPiA+ICtzdGF0aWMgaW50 IGFyY3BndV9tbWFwKHN0cnVjdCBmYl9pbmZvICppbmZvLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3Qg KnZtYSkKPiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiArCXZtYS0+dm1fcGFnZV9wcm90ID0gcGdwcm90 X25vbmNhY2hlZCh2bWEtPnZtX3BhZ2VfcHJvdCk7Cj4gPiA+ID4gPiArCXJldHVybiB2bV9pb21h cF9tZW1vcnkodm1hLCBpbmZvLT5maXguc21lbV9zdGFydCwgaW5mby0+Zml4LnNtZW1fbGVuKTsK PiA+ID4gPiA+ICt9Cj4gPiA+ID4gVGhpcyBsb29rcyB2ZXJ5IGZpc2h5LCBubyBvdGhlciBkcm0g ZHJpdmVyIGV2ZW4gYm90aGVycyB3aXRoIHByb3ZpZGluZyBhbgo+ID4gPiA+IGZiX21tYXAgaG9v ay4gV2hhdCBleGFjdGx5IGRvIHlvdSBuZWVkIHRoaXMgZm9yPyBBc3N1bWluZyB5b3UndmUgbW1h cHBlZAo+ID4gPiA+IHlvdXIgZmJjb24gZHJtX2ZyYW1lYnVmZmVyIGNvcnJlY3RseSBmb3Iga2Vy bmVsIGFjY2VzcyB0aGluZ3Mgc2hvdWxkIGp1c3QKPiA+ID4gPiB3b3JrIC4uLgo+ID4gPiBJbmRl ZWQgZm9yIGtlcm5lbCB0aGVyZSdzIG5vbiBuZWVkIHRvIHRoYXQgaGFjay4gS2VybmVsIGRlYWxz IGRpcmVjdGx5IHdpdGggSFcKPiA+ID4gZnJhbWUtYnVmZmVyIGFyZWEgKHRoYXQgYWRkcmVzcyB3 ZSBnZXQgZnJvbSBnZW0tPnBhZGRyKS4gQW5kIHNvIGV2ZXJ5IGJ5dGUgd3JpdHRlbiBnZXRzCj4g PiA+IHBpY2tlZCB1cCBieSBQR1UgYW5kIGlzIHRoZW4gcmVuZGVyZWQgb24gdGhlIGRpc3BsYXku Cj4gPiA+IAo+ID4gPiBCdXQgd2hlbiB1c2VyLXNwYWNlIG9wZW5zIC9kZXYvZmIwIGFuZCBtbWFw cygpIGl0IGRlYWxzIHdpdGggbWVtb3J5IHBhZ2VzIHdoaWNoCj4gPiA+IGFyZSBieSBkZWZhdWx0 IChhdCBsZWFzdCBvbiBBUkMpIG1hcmtlZCBhcyAiY2FjaGVkIi4gSS5lLiB1c2VyLXNwYWNlIGFw cGxpY2F0aW9uCj4gPiA+IChJIHVzZSB0aGF0IG5pY2UgZGVtbyBhcHDCoGh0dHBzOi8vZ2l0aHVi LmNvbS9xdHByb2plY3QvcXQvYmxvYi80LjgvZXhhbXBsZXMvcXdzL2ZyYW1lYnVmZmVyL21haW4u YykKPiA+ID4gZGVhbHMgd2l0aCBmcmFtZS1idWZmZXIgdmlhIGRhdGEgY2FjaGUuIEFuZCB0aGF0 IGhhcyAyIHByb2JsZW1zOgo+ID4gPiDCoFsxXSBTaW5jZSBubyBleHBsaWNpdCBjYWNoZSBmbHVz aCBnZXRzIGV4ZWN1dGVkIHNvbWUgZGF0YSBpcyBsZWZ0IGluIGRhdGEgY2FjaGUsCj4gPiA+IMKg IMKgIMKgaS5lLiBzb21lIHBhcnRzIG9mIHRoZSBwaWN0dXJlIG5ldmVyIHJlYWNoZXMgcmVhbCBQ R1UuCj4gPiA+IMKgIMKgIMKgU2VlIHdoYXQgaGFwcGVucyBvbiBkaXNwbGF5IC3CoGh0dHA6Ly9p bWd1ci5jb20vaUFibm54Mwo+ID4gPiDCoCDCoCDCoFRob3NlIG1pc3NpbmcgbGluZXMgYXJlIGV4 YWN0bHkgdGhvc2UgMzItYnl0ZSBtaXNzaW5nIGNhY2hlIGxpbmVzLgo+ID4gPiDCoFsyXSBFdmVu IGlmIHdlIG1hbmFnZSB0byBmbHVzaCBkYXRhIHNvbWVob3cgbWFzc2l2ZSBhbW91bnQgb2YgZGF0 YSB0aGF0IGdvZXMKPiA+ID4gwqAgwqAgwqB0aHJvdWdoIGRhdGEgY2FjaGUgKGxldCdzIHNhdCAx MDgwcEAzMEh6KSB3aWxsIHRocmFzaCBpdCBhbmQgYXMgYSByZXN1bHQKPiA+ID4gwqAgwqAgwqB0 aGVyZSB3aWxsIGJlIG5vIGJlbmVmaXQgZm9yIG90aGVyIGNhY2hlIHVzZXJzIHRvIHVzZSBjYWNo ZS4KPiA+ID4gCj4gPiA+IFNvIHdlIGZpeCBpdCBzaW1wbHkgbWFya2luZyBwYWdlcyBtYXBwZWQg dG8gdXNlci1zcGFjZSBhcHBzIGFzIHVuY2FjaGVkCj4gPiA+IHRoYXQgZWZmZWN0aXZlbHkgcm91 dGVzIGFsbCBGQiBkYXRhIGRpcmVjdGx5IHRvIG1lbXJ5IGluc3RlYWQgb2YgcG9sbHV0aW5nIGNh Y2hlLgo+ID4gPiAKPiA+ID4gSG9wZWZ1bGx5IHRoYXQgZXhwbGFuYXRpb24gbWFrZXMgc2Vuc2Uu Cj4gPiBTdGlsbCBzdHJhbmdlIHRoYXQgeW91J3JlIHRoZSBvbmx5IG9uZSB3aG8gbmVlZHMgdGhp cy4gSSB0aGluayBiZXN0IGNhc2UKPiA+IHdvdWxkIGJlIHRvIHByb3ZpZGUgc29tZSBtbWFwIGhl bHBlcnMgZm9yIGZiZGV2IHdoaWNoIHJlbWFwIHRvIGR1bWIgYnVmZmVyCj4gPiBoZWxwZXJzIG9y IHNvbWV0aGluZyBzaW1pbGFyLiBUaGF0IHdheSBvdGhlciBkcml2ZXJzIGRvbid0IG5lZWQgdG8u Cj4gCj4gT2sgSSB0b29rIGFub3RoZXIgbG9vayBhbmQgbm93IHNlZSB3aGF0J3MgbWlzc2luZy4K PiBBbGwgb3RoZXIgYXJjaGVzIGltcGxlbWVudCB0aGVpciBvd27CoGZiX3BncHJvdGVjdCgpIGlu IGFyY2gvWC9pbmNsdWRlL2FzbS9mYi5oCj4gd2hpY2ggZG9lcyBleGFjdGx5IHdoYXQgSSBuZWVk LiBTbyBlbnRpcmUgYXJjcGd1X2ZiZGV2LmMgd2lsbCBiZSBkdW1wZWQgaW4gdjQgOikKCkFoLCBl eGNlbGxlbnQuCi1EYW5pZWwKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIElu dGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRl dmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=