From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexey.Brodkin@synopsys.com (Alexey Brodkin) Date: Fri, 24 Nov 2017 16:49:02 +0000 Subject: glxgears on Etnaviv: couldn't get an RGB, Double-buffered visual In-Reply-To: <1511541502.16502.36.camel@pengutronix.de> References: <1511539365.3497.67.camel@synopsys.com> <1511539893.16502.34.camel@pengutronix.de> <1511540718.3497.73.camel@synopsys.com> <1511541502.16502.36.camel@pengutronix.de> List-ID: Message-ID: <1511542141.3497.93.camel@synopsys.com> To: linux-snps-arc@lists.infradead.org Hi Lucas, On Fri, 2017-11-24@17:38 +0100, Lucas Stach wrote: > Am Freitag, den 24.11.2017, 16:25 +0000 schrieb Alexey Brodkin: > > > > Hi Lucas, > > > > On Fri, 2017-11-24@17:11 +0100, Lucas Stach wrote: > > > > > > Hi Alexey, > > > > > > Am Freitag, den 24.11.2017, 16:02 +0000 schrieb Alexey Brodkin: > > > > > > > > > > > > Hello, > > > > > > > > Being in the middle of bring-up of the new board with Vivante GPU (HSDK namely, > > > > see?https://urldefense.proofpoint.com/v2/url?u=https-3A__git.kernel.org_pub_scm_linux_kernel_git_torvalds_linux.git_tree_arch_arc_plat-2Dhsdk& > > > > d=Dw > > > > IDaQ&c=DPL6_X_6JkXFx7AXWqB0tg&r=lqdeeSSEes0GFDDl656eViXO7breS55ytWkhpk5R81I&m=ZXa-564Jm43PXsqGXCf2US2DY7C0qIlCw6c56pL- > > > > bLY&s=ZJSI1u6GgsRHNIcONVFfIKvn1AWaB38GmtCN1dGB3w0&e=) > > > > I was looking at simple 3D test apps to see how Etnaviv works on the hardware. > > > > > > > > So far I was able to get kmscube working perfectly fine and the next item I took > > > > was glxgears (for some reason I was under impression that's de facto "Hello world" app > > > > in the GPU world). But apparently even with Xserver up and running glxgears doesn't work. > > > > > > > > Moreover I tried the same thing on Wandboard Quad but to no avail as well. > > > > That's what I saw: > > > > ------------------------->8--------------------- > > > > # glxgears > > > > Error: couldn't get an RGB, Double-buffered visual > > > > > > > > # glxinfo > > > > name of display: :0 > > > > Error: couldn't find RGB GLX visual or fbconfig? > > > > ------------------------->8--------------------- > > > > > > > > Googling didn't help here unfortunately so maybe some pointers could be > > > > suggested here... like what do I do wrong and if glxgears is supposed to > > > > work on top of DRM GPU at all? > > > > > > > > Thanks a lot in advance! > > > > > > For 3D acceleration to work under X you need the etnaviv specific DDX > > > driver, which can be found here: > > > > > > https://urldefense.proofpoint.com/v2/url?u=http-3A__git.arm.linux.org.uk_cgit_xf86-2Dvideo-2Darmada.git_log_-3Fh-3Dunstable-2Ddevel&d=DwIDaQ&c=D > > > PL6_ > > > X_6JkXFx7AXWqB0tg&r=lqdeeSSEes0GFDDl656eViXO7breS55ytWkhpk5R81I&m=ZXa-564Jm43PXsqGXCf2US2DY7C0qIlCw6c56pL- > > > bLY&s=ZzK2fxA6_XlN6pGnf2Tpo6qKzzQh76ocWZ6IDR-WPtc&e= > > > > Thanks for the pointer, still a couple of questions below... > > > > > > > > Don't let you get confused by the name, the armada driver implements > > > support for both armada drm and imx-drm and the etnaviv DDX. This > > > provides 2D acceleration on the Vivante 2D cores, as well a the DRI2/3 > > > bit necessary to get a 3D context on X. > > > > From Wandboard's .dts I see that 2D core is a separate node with separate > > set of registers mapped at a different location in memory, right? > > > > Do you know if that's possible if the same one memory-mapped register set > > controls both 3D and 2D engine? > > Yes, a "core" in Vivante speak is a GPU with one DMA frontend. A single > frontend can feed both 3D and 2D acceleration engines behind it. On > i.MX6 the 2D and 3D engine are on separate cores, but Marvell Dove has > a combined 2D/3D core. Hm, that sounds encouraging. The next question would be if Marvel Dove is supported in Etnaviv DDX? I guess it's called Armada so the answer if yes, right? > > If we happen to not have 2D core if that's a no go for us for anything? > > I don't know if the DDX works properly without 2D acceleration. Weston > on the other hand only relies on the 3D accel core for doing > compositing, so even if you don't have a 2D engine you will be able to > launch a modern Linux graphics stack. That's really cool! I'm much more interested in Weston ATM, which is actually another separate question :) I tried to find some details on how to run Weston on Wandboard but seems like I was looking at wrong Google again... do you know any good manuals for doing that? > > The etnaviv DDX could also emulate 2D accel over the 3D core by using > the X.Org glamor module, but no one has bothered to implement this yet. Ok we'll see if above case (combined cores) is applicable to us and then we'll see what to do. > > In the meantime I'll try to figure out if we have 2D core or not. > > You can find out what your GPU provides by looking at the feature bits. > chipFeatures_PIPE_2D, chipFeatures_PIPE_3D and chipFeatures_PIPE_VG is > what you are looking out for. Does that info helps to decipher these bits? -------------------------->8------------------------------ # dmesg | grep etnaviv etnaviv soc:gpu-subsystem: bound f0090000.gpu (ops 0x9075271c) etnaviv-gpu f0090000.gpu: model: GC880, revision: 5124 [drm] Initialized etnaviv 1.1.0 20151214 for soc:gpu-subsystem on minor 0 # cat /sys/kernel/debug/dri/0/gpu? f0090000.gpu Status: ????????features ?????????minor_features0: 0x41f99efb ?????????minor_features1: 0xfefbf2d9 ?????????minor_features2: 0x4a180285 ?????????minor_features3: 0x00000001 ?????????minor_features4: 0x00000000 ?????????minor_features5: 0x00020000 ????????specs ?????????stream_count:??8 ?????????register_max: 64 ?????????thread_count: 256 ?????????vertex_cache_size: 8 ?????????shader_core_count: 1 ?????????pixel_pipes: 1 ?????????vertex_output_buffer_size: 512 ?????????buffer_size: 0 ?????????instruction_count: 512 ?????????num_constants: 576 ?????????varyings_count: 12 ????????axi: 0x00000050 ????????idle: 0x7ffffffe ?????????FE is not idle ????????DMA address is constant ?????????address 0: 0x00000000 ?????????address 1: 0x00000000 ?????????state 0: 0x00000000 ?????????state 1: 0x00000800 ?????????last fetch 64 bit word: 0x40000002 0x00000000 -------------------------->8------------------------------ -Alexey From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexey Brodkin Subject: Re: glxgears on Etnaviv: couldn't get an RGB, Double-buffered visual Date: Fri, 24 Nov 2017 16:49:02 +0000 Message-ID: <1511542141.3497.93.camel@synopsys.com> References: <1511539365.3497.67.camel@synopsys.com> <1511539893.16502.34.camel@pengutronix.de> <1511540718.3497.73.camel@synopsys.com> <1511541502.16502.36.camel@pengutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1511541502.16502.36.camel@pengutronix.de> Content-Language: en-US Content-ID: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-snps-arc" Errors-To: linux-snps-arc-bounces+gla-linux-snps-arc=m.gmane.org@lists.infradead.org To: "l.stach@pengutronix.de" Cc: "linux-snps-arc@lists.infradead.org" , "dri-devel@lists.freedesktop.org" List-Id: dri-devel@lists.freedesktop.org SGkgTHVjYXMsDQoNCk9uIEZyaSwgMjAxNy0xMS0yNCBhdCAxNzozOCArMDEwMCwgTHVjYXMgU3Rh Y2ggd3JvdGU6DQo+IEFtIEZyZWl0YWcsIGRlbiAyNC4xMS4yMDE3LCAxNjoyNSArMDAwMCBzY2hy aWViIEFsZXhleSBCcm9ka2luOg0KPiA+IA0KPiA+IEhpIEx1Y2FzLA0KPiA+IA0KPiA+IE9uIEZy aSwgMjAxNy0xMS0yNCBhdCAxNzoxMSArMDEwMCwgTHVjYXMgU3RhY2ggd3JvdGU6DQo+ID4gPiAN Cj4gPiA+IEhpIEFsZXhleSwNCj4gPiA+IA0KPiA+ID4gQW0gRnJlaXRhZywgZGVuIDI0LjExLjIw MTcsIDE2OjAyICswMDAwIHNjaHJpZWIgQWxleGV5IEJyb2RraW46DQo+ID4gPiA+IA0KPiA+ID4g PiANCj4gPiA+ID4gSGVsbG8sDQo+ID4gPiA+IA0KPiA+ID4gPiBCZWluZyBpbiB0aGUgbWlkZGxl IG9mIGJyaW5nLXVwIG9mIHRoZSBuZXcgYm9hcmQgd2l0aCBWaXZhbnRlIEdQVSAoSFNESyBuYW1l bHksDQo+ID4gPiA+IHNlZcKgaHR0cHM6Ly91cmxkZWZlbnNlLnByb29mcG9pbnQuY29tL3YyL3Vy bD91PWh0dHBzLTNBX19naXQua2VybmVsLm9yZ19wdWJfc2NtX2xpbnV4X2tlcm5lbF9naXRfdG9y dmFsZHNfbGludXguZ2l0X3RyZWVfYXJjaF9hcmNfcGxhdC0yRGhzZGsmDQo+ID4gPiA+IGQ9RHcN Cj4gPiA+ID4gSURhUSZjPURQTDZfWF82SmtYRng3QVhXcUIwdGcmcj1scWRlZVNTRWVzMEdGRERs NjU2ZVZpWE83YnJlUzU1eXRXa2hwazVSODFJJm09WlhhLTU2NEptNDNQWHNxR1hDZjJVUzJEWTdD MHFJbEN3NmM1NnBMLQ0KPiA+ID4gPiBiTFkmcz1aSlNJMXU2R2dzUkhOSWNPTlZGZklLdm4xQVdh QjM4R210Q04xZEdCM3cwJmU9KQ0KPiA+ID4gPiBJIHdhcyBsb29raW5nIGF0IHNpbXBsZSAzRCB0 ZXN0IGFwcHMgdG8gc2VlIGhvdyBFdG5hdml2IHdvcmtzIG9uIHRoZSBoYXJkd2FyZS4NCj4gPiA+ ID4gDQo+ID4gPiA+IFNvIGZhciBJIHdhcyBhYmxlIHRvIGdldCBrbXNjdWJlIHdvcmtpbmcgcGVy ZmVjdGx5IGZpbmUgYW5kIHRoZSBuZXh0IGl0ZW0gSSB0b29rDQo+ID4gPiA+IHdhcyBnbHhnZWFy cyAoZm9yIHNvbWUgcmVhc29uIEkgd2FzIHVuZGVyIGltcHJlc3Npb24gdGhhdCdzIGRlIGZhY3Rv ICJIZWxsbyB3b3JsZCIgYXBwDQo+ID4gPiA+IGluIHRoZSBHUFUgd29ybGQpLiBCdXQgYXBwYXJl bnRseSBldmVuIHdpdGggWHNlcnZlciB1cCBhbmQgcnVubmluZyBnbHhnZWFycyBkb2Vzbid0IHdv cmsuDQo+ID4gPiA+IA0KPiA+ID4gPiBNb3Jlb3ZlciBJIHRyaWVkIHRoZSBzYW1lIHRoaW5nIG9u IFdhbmRib2FyZCBRdWFkIGJ1dCB0byBubyBhdmFpbCBhcyB3ZWxsLg0KPiA+ID4gPiBUaGF0J3Mg d2hhdCBJIHNhdzoNCj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT44LS0tLS0tLS0t LS0tLS0tLS0tLS0tDQo+ID4gPiA+ICMgZ2x4Z2VhcnMNCj4gPiA+ID4gRXJyb3I6IGNvdWxkbid0 IGdldCBhbiBSR0IsIERvdWJsZS1idWZmZXJlZCB2aXN1YWwNCj4gPiA+ID4gDQo+ID4gPiA+ICMg Z2x4aW5mbw0KPiA+ID4gPiBuYW1lIG9mIGRpc3BsYXk6IDowDQo+ID4gPiA+IEVycm9yOiBjb3Vs ZG4ndCBmaW5kIFJHQiBHTFggdmlzdWFsIG9yIGZiY29uZmlnwqANCj4gPiA+ID4gLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLT44LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gPiA+IA0KPiA+ID4g PiBHb29nbGluZyBkaWRuJ3QgaGVscCBoZXJlIHVuZm9ydHVuYXRlbHkgc28gbWF5YmUgc29tZSBw b2ludGVycyBjb3VsZCBiZQ0KPiA+ID4gPiBzdWdnZXN0ZWQgaGVyZS4uLiBsaWtlIHdoYXQgZG8g SSBkbyB3cm9uZyBhbmQgaWYgZ2x4Z2VhcnMgaXMgc3VwcG9zZWQgdG8NCj4gPiA+ID4gd29yayBv biB0b3Agb2YgRFJNIEdQVSBhdCBhbGw/DQo+ID4gPiA+IA0KPiA+ID4gPiBUaGFua3MgYSBsb3Qg aW4gYWR2YW5jZSENCj4gPiA+IA0KPiA+ID4gRm9yIDNEIGFjY2VsZXJhdGlvbiB0byB3b3JrIHVu ZGVyIFggeW91IG5lZWQgdGhlIGV0bmF2aXYgc3BlY2lmaWMgRERYDQo+ID4gPiBkcml2ZXIsIHdo aWNoIGNhbiBiZSBmb3VuZCBoZXJlOg0KPiA+ID4gDQo+ID4gPiBodHRwczovL3VybGRlZmVuc2Uu cHJvb2Zwb2ludC5jb20vdjIvdXJsP3U9aHR0cC0zQV9fZ2l0LmFybS5saW51eC5vcmcudWtfY2dp dF94Zjg2LTJEdmlkZW8tMkRhcm1hZGEuZ2l0X2xvZ18tM0ZoLTNEdW5zdGFibGUtMkRkZXZlbCZk PUR3SURhUSZjPUQNCj4gPiA+IFBMNl8NCj4gPiA+IFhfNkprWEZ4N0FYV3FCMHRnJnI9bHFkZWVT U0VlczBHRkREbDY1NmVWaVhPN2JyZVM1NXl0V2tocGs1UjgxSSZtPVpYYS01NjRKbTQzUFhzcUdY Q2YyVVMyRFk3QzBxSWxDdzZjNTZwTC0NCj4gPiA+IGJMWSZzPVp6SzJmeEE2X1hsTjZwR25mMlRw bzZxS3p6UWg3Nm9jV1o2SURSLVdQdGMmZT0NCj4gPiANCj4gPiBUaGFua3MgZm9yIHRoZSBwb2lu dGVyLCBzdGlsbCBhIGNvdXBsZSBvZiBxdWVzdGlvbnMgYmVsb3cuLi4NCj4gPiANCj4gPiA+IA0K PiA+ID4gRG9uJ3QgbGV0IHlvdSBnZXQgY29uZnVzZWQgYnkgdGhlIG5hbWUsIHRoZSBhcm1hZGEg ZHJpdmVyIGltcGxlbWVudHMNCj4gPiA+IHN1cHBvcnQgZm9yIGJvdGggYXJtYWRhIGRybSBhbmQg aW14LWRybSBhbmQgdGhlIGV0bmF2aXYgRERYLiBUaGlzDQo+ID4gPiBwcm92aWRlcyAyRCBhY2Nl bGVyYXRpb24gb24gdGhlIFZpdmFudGUgMkQgY29yZXMsIGFzIHdlbGwgYSB0aGUgRFJJMi8zDQo+ ID4gPiBiaXQgbmVjZXNzYXJ5IHRvIGdldCBhIDNEIGNvbnRleHQgb24gWC4NCj4gPiANCj4gPiBG cm9tIFdhbmRib2FyZCdzIC5kdHMgSSBzZWUgdGhhdCAyRCBjb3JlIGlzIGEgc2VwYXJhdGUgbm9k ZSB3aXRoIHNlcGFyYXRlDQo+ID4gc2V0IG9mIHJlZ2lzdGVycyBtYXBwZWQgYXQgYSBkaWZmZXJl bnQgbG9jYXRpb24gaW4gbWVtb3J5LCByaWdodD8NCj4gPiANCj4gPiBEbyB5b3Uga25vdyBpZiB0 aGF0J3MgcG9zc2libGUgaWYgdGhlIHNhbWUgb25lIG1lbW9yeS1tYXBwZWQgcmVnaXN0ZXIgc2V0 DQo+ID4gY29udHJvbHMgYm90aCAzRCBhbmQgMkQgZW5naW5lPw0KPiANCj4gWWVzLCBhICJjb3Jl IiBpbiBWaXZhbnRlIHNwZWFrIGlzIGEgR1BVIHdpdGggb25lIERNQSBmcm9udGVuZC4gQSBzaW5n bGUNCj4gZnJvbnRlbmQgY2FuIGZlZWQgYm90aCAzRCBhbmQgMkQgYWNjZWxlcmF0aW9uIGVuZ2lu ZXMgYmVoaW5kIGl0LiBPbg0KPiBpLk1YNiB0aGUgMkQgYW5kIDNEIGVuZ2luZSBhcmUgb24gc2Vw YXJhdGUgY29yZXMsIGJ1dCBNYXJ2ZWxsIERvdmUgaGFzDQo+IGEgY29tYmluZWQgMkQvM0QgY29y ZS4NCg0KSG0sIHRoYXQgc291bmRzIGVuY291cmFnaW5nLiBUaGUgbmV4dCBxdWVzdGlvbiB3b3Vs ZCBiZSBpZiBNYXJ2ZWwgRG92ZSBpcw0Kc3VwcG9ydGVkIGluIEV0bmF2aXYgRERYPyBJIGd1ZXNz IGl0J3MgY2FsbGVkIEFybWFkYSBzbyB0aGUgYW5zd2VyIGlmIHllcywgcmlnaHQ/DQoNCj4gPiBJ ZiB3ZSBoYXBwZW4gdG8gbm90IGhhdmUgMkQgY29yZSBpZiB0aGF0J3MgYSBubyBnbyBmb3IgdXMg Zm9yIGFueXRoaW5nPw0KPiANCj4gSSBkb24ndCBrbm93IGlmIHRoZSBERFggd29ya3MgcHJvcGVy bHkgd2l0aG91dCAyRCBhY2NlbGVyYXRpb24uIFdlc3Rvbg0KPiBvbiB0aGUgb3RoZXIgaGFuZCBv bmx5IHJlbGllcyBvbiB0aGUgM0QgYWNjZWwgY29yZSBmb3IgZG9pbmcNCj4gY29tcG9zaXRpbmcs IHNvIGV2ZW4gaWYgeW91IGRvbid0IGhhdmUgYSAyRCBlbmdpbmUgeW91IHdpbGwgYmUgYWJsZSB0 bw0KPiBsYXVuY2ggYSBtb2Rlcm4gTGludXggZ3JhcGhpY3Mgc3RhY2suDQoNClRoYXQncyByZWFs bHkgY29vbCEgSSdtIG11Y2ggbW9yZSBpbnRlcmVzdGVkIGluIFdlc3RvbiBBVE0sIHdoaWNoIGlz DQphY3R1YWxseSBhbm90aGVyIHNlcGFyYXRlIHF1ZXN0aW9uIDopDQpJIHRyaWVkIHRvIGZpbmQg c29tZSBkZXRhaWxzIG9uIGhvdyB0byBydW4gV2VzdG9uIG9uIFdhbmRib2FyZA0KYnV0IHNlZW1z IGxpa2UgSSB3YXMgbG9va2luZyBhdCB3cm9uZyBHb29nbGUgYWdhaW4uLi4gZG8geW91DQprbm93 IGFueSBnb29kIG1hbnVhbHMgZm9yIGRvaW5nIHRoYXQ/DQoNCj4gDQo+IFRoZSBldG5hdml2IERE WCBjb3VsZCBhbHNvIGVtdWxhdGUgMkQgYWNjZWwgb3ZlciB0aGUgM0QgY29yZSBieSB1c2luZw0K PiB0aGUgWC5PcmcgZ2xhbW9yIG1vZHVsZSwgYnV0IG5vIG9uZSBoYXMgYm90aGVyZWQgdG8gaW1w bGVtZW50IHRoaXMgeWV0Lg0KDQpPayB3ZSdsbCBzZWUgaWYgYWJvdmUgY2FzZSAoY29tYmluZWQg Y29yZXMpIGlzIGFwcGxpY2FibGUgdG8gdXMgYW5kIHRoZW4NCndlJ2xsIHNlZSB3aGF0IHRvIGRv Lg0KDQo+ID4gSW4gdGhlIG1lYW50aW1lIEknbGwgdHJ5IHRvIGZpZ3VyZSBvdXQgaWYgd2UgaGF2 ZSAyRCBjb3JlIG9yIG5vdC4NCj4gDQo+IFlvdSBjYW4gZmluZCBvdXQgd2hhdCB5b3VyIEdQVSBw cm92aWRlcyBieSBsb29raW5nIGF0IHRoZSBmZWF0dXJlIGJpdHMuDQo+IGNoaXBGZWF0dXJlc19Q SVBFXzJELCBjaGlwRmVhdHVyZXNfUElQRV8zRCBhbmQgY2hpcEZlYXR1cmVzX1BJUEVfVkcgaXMN Cj4gd2hhdCB5b3UgYXJlIGxvb2tpbmcgb3V0IGZvci4NCg0KRG9lcyB0aGF0IGluZm8gaGVscHMg dG8gZGVjaXBoZXIgdGhlc2UgYml0cz8NCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPjgtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgZG1lc2cgfCBncmVwIGV0bmF2aXYNCmV0bmF2 aXYgc29jOmdwdS1zdWJzeXN0ZW06IGJvdW5kIGYwMDkwMDAwLmdwdSAob3BzIDB4OTA3NTI3MWMp DQpldG5hdml2LWdwdSBmMDA5MDAwMC5ncHU6IG1vZGVsOiBHQzg4MCwgcmV2aXNpb246IDUxMjQN Cltkcm1dIEluaXRpYWxpemVkIGV0bmF2aXYgMS4xLjAgMjAxNTEyMTQgZm9yIHNvYzpncHUtc3Vi c3lzdGVtIG9uIG1pbm9yIDANCg0KIyBjYXQgL3N5cy9rZXJuZWwvZGVidWcvZHJpLzAvZ3B1wqAN CmYwMDkwMDAwLmdwdSBTdGF0dXM6DQrCoMKgwqDCoMKgwqDCoMKgZmVhdHVyZXMNCsKgwqDCoMKg wqDCoMKgwqDCoG1pbm9yX2ZlYXR1cmVzMDogMHg0MWY5OWVmYg0KwqDCoMKgwqDCoMKgwqDCoMKg bWlub3JfZmVhdHVyZXMxOiAweGZlZmJmMmQ5DQrCoMKgwqDCoMKgwqDCoMKgwqBtaW5vcl9mZWF0 dXJlczI6IDB4NGExODAyODUNCsKgwqDCoMKgwqDCoMKgwqDCoG1pbm9yX2ZlYXR1cmVzMzogMHgw MDAwMDAwMQ0KwqDCoMKgwqDCoMKgwqDCoMKgbWlub3JfZmVhdHVyZXM0OiAweDAwMDAwMDAwDQrC oMKgwqDCoMKgwqDCoMKgwqBtaW5vcl9mZWF0dXJlczU6IDB4MDAwMjAwMDANCsKgwqDCoMKgwqDC oMKgwqBzcGVjcw0KwqDCoMKgwqDCoMKgwqDCoMKgc3RyZWFtX2NvdW50OsKgwqA4DQrCoMKgwqDC oMKgwqDCoMKgwqByZWdpc3Rlcl9tYXg6IDY0DQrCoMKgwqDCoMKgwqDCoMKgwqB0aHJlYWRfY291 bnQ6IDI1Ng0KwqDCoMKgwqDCoMKgwqDCoMKgdmVydGV4X2NhY2hlX3NpemU6IDgNCsKgwqDCoMKg wqDCoMKgwqDCoHNoYWRlcl9jb3JlX2NvdW50OiAxDQrCoMKgwqDCoMKgwqDCoMKgwqBwaXhlbF9w aXBlczogMQ0KwqDCoMKgwqDCoMKgwqDCoMKgdmVydGV4X291dHB1dF9idWZmZXJfc2l6ZTogNTEy DQrCoMKgwqDCoMKgwqDCoMKgwqBidWZmZXJfc2l6ZTogMA0KwqDCoMKgwqDCoMKgwqDCoMKgaW5z dHJ1Y3Rpb25fY291bnQ6IDUxMg0KwqDCoMKgwqDCoMKgwqDCoMKgbnVtX2NvbnN0YW50czogNTc2 DQrCoMKgwqDCoMKgwqDCoMKgwqB2YXJ5aW5nc19jb3VudDogMTINCsKgwqDCoMKgwqDCoMKgwqBh eGk6IDB4MDAwMDAwNTANCsKgwqDCoMKgwqDCoMKgwqBpZGxlOiAweDdmZmZmZmZlDQrCoMKgwqDC oMKgwqDCoMKgwqBGRSBpcyBub3QgaWRsZQ0KwqDCoMKgwqDCoMKgwqDCoERNQSBhZGRyZXNzIGlz IGNvbnN0YW50DQrCoMKgwqDCoMKgwqDCoMKgwqBhZGRyZXNzIDA6IDB4MDAwMDAwMDANCsKgwqDC oMKgwqDCoMKgwqDCoGFkZHJlc3MgMTogMHgwMDAwMDAwMA0KwqDCoMKgwqDCoMKgwqDCoMKgc3Rh dGUgMDogMHgwMDAwMDAwMA0KwqDCoMKgwqDCoMKgwqDCoMKgc3RhdGUgMTogMHgwMDAwMDgwMA0K wqDCoMKgwqDCoMKgwqDCoMKgbGFzdCBmZXRjaCA2NCBiaXQgd29yZDogMHg0MDAwMDAwMiAweDAw MDAwMDAwDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT44LS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQoNCi1BbGV4ZXkKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KbGludXgtc25wcy1hcmMgbWFpbGluZyBsaXN0CmxpbnV4LXNucHMtYXJjQGxp c3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0 aW5mby9saW51eC1zbnBzLWFyYw==