From gshereme at redhat.com Sat Mar 15 10:16:01 2014 Content-Type: multipart/mixed; boundary="===============5818378582498463090==" MIME-Version: 1.0 From: Greg Sheremeta To: users at ovirt.org Subject: Re: [Users] adding scripts Date: Sat, 15 Mar 2014 10:15:59 -0400 Message-ID: <965347974.29441.1394892959318.JavaMail.zimbra@redhat.com> In-Reply-To: 532447ee.a70e440a.3ce3.ffffd5f5@mx.google.com --===============5818378582498463090== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable ------=3D_Part_29440_1042558721.1394892959317 Content-Type: text/plain; charset=3Dutf-8 Content-Transfer-Encoding: quoted-printable There's not one html file like that, since we use GWT [1]. However, if you = =3D search for *.ui.xml files, you'll find all the GWT UIBinder files. That's t= =3D he place to start for simple UI tweaks. The application is partitioned into= =3D small components, so you'll have to do some digging. For example, each dia= =3D log has its own ui.xml file -- so if you want to tweak a specific dialog, y= =3D ou'll need to find the right file. Feel free to post questions about those = =3D to engine-devel and we can help you out.=3D20 Greg=3D20 [1] http://www.gwtproject.org/=3D20 ----- Original Message ----- > From: "Aditya Mamidwar" > To: "Einav Cohen" , "Vojtech Szocs" > Cc: engine-devel(a)ovirt.org, users(a)ovirt.org > Sent: Saturday, March 15, 2014 8:30:21 AM > Subject: Re: [Users] adding scripts > Hey thanks on the previous issue. > Also is there a way i can access WebAdmin.Html to add custom buttons and = =3D make > few tweaks for personal use? > I just cant find that file after using git. > Aditya Mamidwar > From: Einav Cohen > Sent: =3DE2=3D80=3D8E14-=3DE2=3D80=3D8E03-=3DE2=3D80=3D8E2014 01:21 > To: aditya mamidwar ; Vojtech Szocs > Cc: users(a)ovirt.org ; engine-devel(a)ovirt.org > Subject: Re: [Users] adding scripts > if you are trying to hook into UI-specific events, it sounds > like you will need to write an oVirt UI Plugin [1] in order to > do that. However, I believe that the oVirt UI Plugins > infrastructure doesn't support hooking to events such as "tab > x was selected" and/or "button b was clicked". > It does allow you to add new (custom) tabs/sub-tabs/buttons of > your own, and there is a chance that it allows you to hook > into events such as 'row x was selected in the grid'. > @Vojtech will know better. Vojtech? > if you are trying to hook into engine events (e.g. you want to > run a script every time a VM is started in oVirt, no matter if > the user started it by clicking the 'run' button in the oVirt- > engine webadmin, or invoked a REST API request, or an SDK > command), then it will require some sort of an "engine-plugin" > infrastructure that we don't have at the moment AFAIK. > there is a chance that for some of the events you will be able > to utilize the VDSM hooks (at the Host level) [2]. > ---- > Thanks, > Einav > [1] http://www.ovirt.org/Features/UIPlugins > [2] http://www.ovirt.org/VDSM-Hooks > ----- Original Message ----- > > From: "aditya mamidwar" > > To: users(a)ovirt.org, engine-devel(a)ovirt.org > > Sent: Thursday, March 13, 2014 11:23:35 AM > > Subject: [Users] adding scripts > > > > > > I want to commit changes to the engine by adding some bash scripts. > > the scripts should be invoked once a button or tab is selected in the > > webadmin portal by the user. > > > > can someone guide on achieving this. > > > > -- > > -Aditya Mamidwar > > > > _______________________________________________ > > Users mailing list > > Users(a)ovirt.org > > http://lists.ovirt.org/mailman/listinfo/users > > > _______________________________________________ > Users mailing list > Users(a)ovirt.org > http://lists.ovirt.org/mailman/listinfo/users ------=3D_Part_29440_1042558721.1394892959317 Content-Type: text/html; charset=3Dutf-8 Content-Transfer-Encoding: quoted-printable
There's not one html file like t= =3D hat, since we use GWT [1]. However, if you search for *.ui.xml files, you'l= =3D l find all the GWT UIBinder files. That's the place to start for simple UI = =3D tweaks. The application is partitioned into small components, so you'll hav= =3D e to do some digging. For example, each dialog has its own ui.xml file -- s= =3D o if you want to tweak a specific dialog, you'll need to find the right fil= =3D e. Feel free to post questions about those to engine-devel and we can help = =3D you out.

Greg

[1] http://www.gwtproject.org/


=3D
From: "Ad= =3D itya Mamidwar" <aditya.mamidwar(a)gmail.com>
To: "Einav Coh= en=3D " <ecohen(a)redhat.com>, "Vojtech Szocs" <vszocs(a)redhat.com><= br><=3D b>Cc: engine-devel(a)ovirt.org, users(a)ovirt.org
Sent: Satur= day,=3D March 15, 2014 8:30:21 AM
Subject: Re: [Users] adding scripts

Hey thanks on the previous issue.
Also is there a way i can access W= =3D ebAdmin.Html to add custom buttons and make few tweaks for personal use?I just cant find that file after using git.

Aditya Mamid= =3D war

From: Einav Cohen
Sent: =3DE2=3D80=3D8E14-=3DE2=3D8= 0=3D8E03-=3DE2=3D =3D80=3D8E2014 01:21
To: aditya mamidwar; Vojtech Szocs
Cc: users(a)ovirt.org; engine-devel(a)ovirt.org
Subject: Re: [Users] adding scripts

if you are tr= =3D ying to hook into UI-specific events, it sounds
like you will need to w= =3D rite an oVirt UI Plugin [1] in order to
do that. However, I believe tha= =3D t the oVirt UI Plugins
infrastructure doesn't support hooking to events= =3D such as "tab
x was selected" and/or "button b was clicked".
It doe= =3D s allow you to add new (custom) tabs/sub-tabs/buttons of
your own, and = =3D there is a chance that it allows you to hook
into events such as 'row x= =3D was selected in the grid'.

@Vojtech will know better. V= =3D ojtech?

if you are trying to hook into engine events (e.g= =3D . you want to
run a script every time a VM is started in oVirt, no matt= =3D er if
the user started it by clicking the 'run' button in the oVirt-engine webadmin, or invoked a REST API request, or an SDK
command), th= =3D en it will require some sort of an "engine-plugin"
infrastructure that = =3D we don't have at the moment AFAIK.
there is a chance that for some of t= =3D he events you will be able
to utilize the VDSM hooks (at the Host level= =3D ) [2].

----
Thanks,
Einav

[1] htt= =3D p://www.ovirt.org/Features/UIPlugins

[2] http://www.ovirt= =3D .org/VDSM-Hooks


----- Original Message -----
> = =3D From: "aditya mamidwar" <aditya.mamidwar(a)gmail.com>
> To: use= rs=3D @ovirt.org, engine-devel(a)ovirt.org
> Sent: Thursday, March 13, 2014= 1=3D 1:23:35 AM
> Subject: [Users] adding scripts
>
>
>= =3D ; I want to commit changes to the engine by adding some bash scripts.
&g= =3D t; the scripts should be invoked once a button or tab is selected in the> webadmin portal by the user.
>
> can someone guide on ac= =3D hieving this.
>
> --
> -Aditya Mamidwar
>
>= =3D _______________________________________________
> Users mailing list= =3D
> Users(a)ovirt.org
> http://lists.ovirt.org/mailman/listinfo/= us=3D ers
>

_______________________________________________
User= =3D s mailing list
Users(a)ovirt.org
http://lists.ovirt.org/mailman/listi= nf=3D o/users

------=3D_Part_29440_1042558721.1394892959317-- --===============5818378582498463090== Content-Type: multipart/alternative MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.bin" LS0tLS0tPV9QYXJ0XzI5NDQwXzEwNDI1NTg3MjEuMTM5NDg5Mjk1OTMxNwpDb250ZW50LVR5cGU6 IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVv dGVkLXByaW50YWJsZQoKVGhlcmUncyBub3Qgb25lIGh0bWwgZmlsZSBsaWtlIHRoYXQsIHNpbmNl IHdlIHVzZSBHV1QgWzFdLiBIb3dldmVyLCBpZiB5b3UgPQpzZWFyY2ggZm9yICoudWkueG1sIGZp bGVzLCB5b3UnbGwgZmluZCBhbGwgdGhlIEdXVCBVSUJpbmRlciBmaWxlcy4gVGhhdCdzIHQ9Cmhl IHBsYWNlIHRvIHN0YXJ0IGZvciBzaW1wbGUgVUkgdHdlYWtzLiBUaGUgYXBwbGljYXRpb24gaXMg cGFydGl0aW9uZWQgaW50bz0KIHNtYWxsIGNvbXBvbmVudHMsIHNvIHlvdSdsbCBoYXZlIHRvIGRv IHNvbWUgZGlnZ2luZy4gRm9yIGV4YW1wbGUsIGVhY2ggZGlhPQpsb2cgaGFzIGl0cyBvd24gdWku eG1sIGZpbGUgLS0gc28gaWYgeW91IHdhbnQgdG8gdHdlYWsgYSBzcGVjaWZpYyBkaWFsb2csIHk9 Cm91J2xsIG5lZWQgdG8gZmluZCB0aGUgcmlnaHQgZmlsZS4gRmVlbCBmcmVlIHRvIHBvc3QgcXVl c3Rpb25zIGFib3V0IHRob3NlID0KdG8gZW5naW5lLWRldmVsIGFuZCB3ZSBjYW4gaGVscCB5b3Ug b3V0Lj0yMAoKR3JlZz0yMAoKWzFdIGh0dHA6Ly93d3cuZ3d0cHJvamVjdC5vcmcvPTIwCgotLS0t LSBPcmlnaW5hbCBNZXNzYWdlIC0tLS0tCgo+IEZyb206ICJBZGl0eWEgTWFtaWR3YXIiIDxhZGl0 eWEubWFtaWR3YXJAZ21haWwuY29tPgo+IFRvOiAiRWluYXYgQ29oZW4iIDxlY29oZW5AcmVkaGF0 LmNvbT4sICJWb2p0ZWNoIFN6b2NzIiA8dnN6b2NzQHJlZGhhdC5jb209Cj4KPiBDYzogZW5naW5l LWRldmVsQG92aXJ0Lm9yZywgdXNlcnNAb3ZpcnQub3JnCj4gU2VudDogU2F0dXJkYXksIE1hcmNo IDE1LCAyMDE0IDg6MzA6MjEgQU0KPiBTdWJqZWN0OiBSZTogW1VzZXJzXSBhZGRpbmcgc2NyaXB0 cwoKPiBIZXkgdGhhbmtzIG9uIHRoZSBwcmV2aW91cyBpc3N1ZS4KPiBBbHNvIGlzIHRoZXJlIGEg d2F5IGkgY2FuIGFjY2VzcyBXZWJBZG1pbi5IdG1sIHRvIGFkZCBjdXN0b20gYnV0dG9ucyBhbmQg PQptYWtlCj4gZmV3IHR3ZWFrcyBmb3IgcGVyc29uYWwgdXNlPwo+IEkganVzdCBjYW50IGZpbmQg dGhhdCBmaWxlIGFmdGVyIHVzaW5nIGdpdC4KCj4gQWRpdHlhIE1hbWlkd2FyCgo+IEZyb206IEVp bmF2IENvaGVuCj4gU2VudDogPUUyPTgwPThFMTQtPUUyPTgwPThFMDMtPUUyPTgwPThFMjAxNCAw MToyMQo+IFRvOiBhZGl0eWEgbWFtaWR3YXIgOyBWb2p0ZWNoIFN6b2NzCj4gQ2M6IHVzZXJzQG92 aXJ0Lm9yZyA7IGVuZ2luZS1kZXZlbEBvdmlydC5vcmcKPiBTdWJqZWN0OiBSZTogW1VzZXJzXSBh ZGRpbmcgc2NyaXB0cwoKPiBpZiB5b3UgYXJlIHRyeWluZyB0byBob29rIGludG8gVUktc3BlY2lm aWMgZXZlbnRzLCBpdCBzb3VuZHMKPiBsaWtlIHlvdSB3aWxsIG5lZWQgdG8gd3JpdGUgYW4gb1Zp cnQgVUkgUGx1Z2luIFsxXSBpbiBvcmRlciB0bwo+IGRvIHRoYXQuIEhvd2V2ZXIsIEkgYmVsaWV2 ZSB0aGF0IHRoZSBvVmlydCBVSSBQbHVnaW5zCj4gaW5mcmFzdHJ1Y3R1cmUgZG9lc24ndCBzdXBw b3J0IGhvb2tpbmcgdG8gZXZlbnRzIHN1Y2ggYXMgInRhYgo+IHggd2FzIHNlbGVjdGVkIiBhbmQv b3IgImJ1dHRvbiBiIHdhcyBjbGlja2VkIi4KPiBJdCBkb2VzIGFsbG93IHlvdSB0byBhZGQgbmV3 IChjdXN0b20pIHRhYnMvc3ViLXRhYnMvYnV0dG9ucyBvZgo+IHlvdXIgb3duLCBhbmQgdGhlcmUg aXMgYSBjaGFuY2UgdGhhdCBpdCBhbGxvd3MgeW91IHRvIGhvb2sKPiBpbnRvIGV2ZW50cyBzdWNo IGFzICdyb3cgeCB3YXMgc2VsZWN0ZWQgaW4gdGhlIGdyaWQnLgoKPiBAVm9qdGVjaCB3aWxsIGtu b3cgYmV0dGVyLiBWb2p0ZWNoPwoKPiBpZiB5b3UgYXJlIHRyeWluZyB0byBob29rIGludG8gZW5n aW5lIGV2ZW50cyAoZS5nLiB5b3Ugd2FudCB0bwo+IHJ1biBhIHNjcmlwdCBldmVyeSB0aW1lIGEg Vk0gaXMgc3RhcnRlZCBpbiBvVmlydCwgbm8gbWF0dGVyIGlmCj4gdGhlIHVzZXIgc3RhcnRlZCBp dCBieSBjbGlja2luZyB0aGUgJ3J1bicgYnV0dG9uIGluIHRoZSBvVmlydC0KPiBlbmdpbmUgd2Vi YWRtaW4sIG9yIGludm9rZWQgYSBSRVNUIEFQSSByZXF1ZXN0LCBvciBhbiBTREsKPiBjb21tYW5k KSwgdGhlbiBpdCB3aWxsIHJlcXVpcmUgc29tZSBzb3J0IG9mIGFuICJlbmdpbmUtcGx1Z2luIgo+ IGluZnJhc3RydWN0dXJlIHRoYXQgd2UgZG9uJ3QgaGF2ZSBhdCB0aGUgbW9tZW50IEFGQUlLLgo+ IHRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgZm9yIHNvbWUgb2YgdGhlIGV2ZW50cyB5b3Ugd2lsbCBi ZSBhYmxlCj4gdG8gdXRpbGl6ZSB0aGUgVkRTTSBob29rcyAoYXQgdGhlIEhvc3QgbGV2ZWwpIFsy XS4KCj4gLS0tLQo+IFRoYW5rcywKPiBFaW5hdgoKPiBbMV0gaHR0cDovL3d3dy5vdmlydC5vcmcv RmVhdHVyZXMvVUlQbHVnaW5zCgo+IFsyXSBodHRwOi8vd3d3Lm92aXJ0Lm9yZy9WRFNNLUhvb2tz Cgo+IC0tLS0tIE9yaWdpbmFsIE1lc3NhZ2UgLS0tLS0KPiA+IEZyb206ICJhZGl0eWEgbWFtaWR3 YXIiIDxhZGl0eWEubWFtaWR3YXJAZ21haWwuY29tPgo+ID4gVG86IHVzZXJzQG92aXJ0Lm9yZywg ZW5naW5lLWRldmVsQG92aXJ0Lm9yZwo+ID4gU2VudDogVGh1cnNkYXksIE1hcmNoIDEzLCAyMDE0 IDExOjIzOjM1IEFNCj4gPiBTdWJqZWN0OiBbVXNlcnNdIGFkZGluZyBzY3JpcHRzCj4gPgo+ID4K PiA+IEkgd2FudCB0byBjb21taXQgY2hhbmdlcyB0byB0aGUgZW5naW5lIGJ5IGFkZGluZyBzb21l IGJhc2ggc2NyaXB0cy4KPiA+IHRoZSBzY3JpcHRzIHNob3VsZCBiZSBpbnZva2VkIG9uY2UgYSBi dXR0b24gb3IgdGFiIGlzIHNlbGVjdGVkIGluIHRoZQo+ID4gd2ViYWRtaW4gcG9ydGFsIGJ5IHRo ZSB1c2VyLgo+ID4KPiA+IGNhbiBzb21lb25lIGd1aWRlIG9uIGFjaGlldmluZyB0aGlzLgo+ID4K PiA+IC0tCj4gPiAtQWRpdHlhIE1hbWlkd2FyCj4gPgo+ID4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+IFVzZXJzIG1haWxpbmcgbGlzdAo+ID4gVXNl cnNAb3ZpcnQub3JnCj4gPiBodHRwOi8vbGlzdHMub3ZpcnQub3JnL21haWxtYW4vbGlzdGluZm8v dXNlcnMKPiA+Cgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCj4gVXNlcnMgbWFpbGluZyBsaXN0Cj4gVXNlcnNAb3ZpcnQub3JnCj4gaHR0cDovL2xpc3Rz Lm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3VzZXJzCgotLS0tLS09X1BhcnRfMjk0NDBfMTA0 MjU1ODcyMS4xMzk0ODkyOTU5MzE3CkNvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PXV0 Zi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCjxodG1sPjxi b2R5PjxkaXYgc3R5bGU9M0QiZm9udC1mYW1pbHk6IHRpbWVzIG5ldyByb21hbiwgbmV3IHlvcmss IHRpbWVzLCBzZT0KcmlmOyBmb250LXNpemU6IDEycHQ7IGNvbG9yOiAjMDAwMDAwIj48ZGl2PlRo ZXJlJ3Mgbm90IG9uZSBodG1sIGZpbGUgbGlrZSB0PQpoYXQsIHNpbmNlIHdlIHVzZSBHV1QgWzFd LiBIb3dldmVyLCBpZiB5b3Ugc2VhcmNoIGZvciAqLnVpLnhtbCBmaWxlcywgeW91J2w9CmwgZmlu ZCBhbGwgdGhlIEdXVCBVSUJpbmRlciBmaWxlcy4gVGhhdCdzIHRoZSBwbGFjZSB0byBzdGFydCBm b3Igc2ltcGxlIFVJID0KdHdlYWtzLiBUaGUgYXBwbGljYXRpb24gaXMgcGFydGl0aW9uZWQgaW50 byBzbWFsbCBjb21wb25lbnRzLCBzbyB5b3UnbGwgaGF2PQplIHRvIGRvIHNvbWUgZGlnZ2luZy4g Rm9yIGV4YW1wbGUsIGVhY2ggZGlhbG9nIGhhcyBpdHMgb3duIHVpLnhtbCBmaWxlIC0tIHM9Cm8g aWYgeW91IHdhbnQgdG8gdHdlYWsgYSBzcGVjaWZpYyBkaWFsb2csIHlvdSdsbCBuZWVkIHRvIGZp bmQgdGhlIHJpZ2h0IGZpbD0KZS4gRmVlbCBmcmVlIHRvIHBvc3QgcXVlc3Rpb25zIGFib3V0IHRo b3NlIHRvIGVuZ2luZS1kZXZlbCBhbmQgd2UgY2FuIGhlbHAgPQp5b3Ugb3V0LjwvZGl2PjxkaXY+ PGJyPjwvZGl2PjxkaXY+R3JlZzwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+WzFdJm5ic3A7PGE9 CiBocmVmPTNEImh0dHA6Ly93d3cuZ3d0cHJvamVjdC5vcmcvIiBkYXRhLW1jZS1ocmVmPTNEImh0 dHA6Ly93d3cuZ3d0cHJvamVjdD0KLm9yZy8iPmh0dHA6Ly93d3cuZ3d0cHJvamVjdC5vcmcvPC9h PjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxociBpZD0zRCJ6d2NociI+PQo8YmxvY2txdW90ZSBzdHls ZT0zRCJib3JkZXItbGVmdDoycHggc29saWQgIzEwMTBGRjttYXJnaW4tbGVmdDo1cHg7cGFkZGlu Zy09CmxlZnQ6NXB4O2NvbG9yOiMwMDA7Zm9udC13ZWlnaHQ6bm9ybWFsO2ZvbnQtc3R5bGU6bm9y bWFsO3RleHQtZGVjb3JhdGlvbjpubz0KbmU7Zm9udC1mYW1pbHk6SGVsdmV0aWNhLEFyaWFsLHNh bnMtc2VyaWY7Zm9udC1zaXplOjEycHQ7IiBkYXRhLW1jZS1zdHlsZT0KPTNEImJvcmRlci1sZWZ0 OiAycHggc29saWQgIzEwMTBGRjsgbWFyZ2luLWxlZnQ6IDVweDsgcGFkZGluZy1sZWZ0OiA1cHg7 IGNvPQpsb3I6ICMwMDA7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGZvbnQtc3R5bGU6IG5vcm1hbDsg dGV4dC1kZWNvcmF0aW9uOiBub25lOyA9CmZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsQXJpYWwsc2Fu cy1zZXJpZjsgZm9udC1zaXplOiAxMnB0OyI+PGI+RnJvbTogPC9iPiJBZD0KaXR5YSBNYW1pZHdh ciIgJmx0O2FkaXR5YS5tYW1pZHdhckBnbWFpbC5jb20mZ3Q7PGJyPjxiPlRvOiA8L2I+IkVpbmF2 IENvaGVuPQoiICZsdDtlY29oZW5AcmVkaGF0LmNvbSZndDssICJWb2p0ZWNoIFN6b2NzIiAmbHQ7 dnN6b2NzQHJlZGhhdC5jb20mZ3Q7PGJyPjw9CmI+Q2M6IDwvYj5lbmdpbmUtZGV2ZWxAb3ZpcnQu b3JnLCB1c2Vyc0BvdmlydC5vcmc8YnI+PGI+U2VudDogPC9iPlNhdHVyZGF5LD0KIE1hcmNoIDE1 LCAyMDE0IDg6MzA6MjEgQU08YnI+PGI+U3ViamVjdDogPC9iPlJlOiBbVXNlcnNdIGFkZGluZyBz Y3JpcHRzPGJyPQo+PGRpdj48YnI+PC9kaXY+PGRpdj48ZGl2IHN0eWxlPTNEIkZPTlQtU0laRTog MTFwdDsgRk9OVC1GQU1JTFk6IENhbGlicmksc2E9Cm5zLXNlcmlmIiBkYXRhLW1jZS1zdHlsZT0z RCJmb250LXNpemU6IDExcHQ7IGZvbnQtZmFtaWx5OiBDYWxpYnJpLHNhbnMtc2VyaT0KZjsiPkhl eSB0aGFua3Mgb24gdGhlIHByZXZpb3VzIGlzc3VlLjxicj5BbHNvIGlzIHRoZXJlIGEgd2F5IGkg Y2FuIGFjY2VzcyBXPQplYkFkbWluLkh0bWwgdG8gYWRkIGN1c3RvbSBidXR0b25zIGFuZCBtYWtl IGZldyB0d2Vha3MgZm9yIHBlcnNvbmFsIHVzZT88YnI9Cj5JIGp1c3QgY2FudCBmaW5kIHRoYXQg ZmlsZSBhZnRlciB1c2luZyBnaXQuPGJyPjxkaXY+PGJyPjwvZGl2PkFkaXR5YSBNYW1pZD0Kd2Fy PC9kaXY+PC9kaXY+PGRpdiBkaXI9M0QibHRyIj48aHI+PHNwYW4gc3R5bGU9M0QiRk9OVC1TSVpF OiAxMXB0OyBGT05ULUZBPQpNSUxZOiBDYWxpYnJpLHNhbnMtc2VyaWY7IEZPTlQtV0VJR0hUOiBi b2xkIiBkYXRhLW1jZS1zdHlsZT0zRCJmb250LXNpemU6IDE9CjFwdDsgZm9udC1mYW1pbHk6IENh bGlicmksc2Fucy1zZXJpZjsgZm9udC13ZWlnaHQ6IGJvbGQ7Ij5Gcm9tOiA8L3NwYW4+PHNwYT0K biBzdHlsZT0zRCJGT05ULVNJWkU6IDExcHQ7IEZPTlQtRkFNSUxZOiBDYWxpYnJpLHNhbnMtc2Vy aWYiIGRhdGEtbWNlLXN0eWxlPQo9M0QiZm9udC1zaXplOiAxMXB0OyBmb250LWZhbWlseTogQ2Fs aWJyaSxzYW5zLXNlcmlmOyI+PGEgaHJlZj0zRCJtYWlsdG86ZWM9Cm9oZW5AcmVkaGF0LmNvbSIg dGFyZ2V0PTNEIl9ibGFuayIgZGF0YS1tY2UtaHJlZj0zRCJtYWlsdG86ZWNvaGVuQHJlZGhhdC5j bz0KbSI+RWluYXYgQ29oZW48L2E+PC9zcGFuPjxicj48c3BhbiBzdHlsZT0zRCJGT05ULVNJWkU6 IDExcHQ7IEZPTlQtRkFNSUxZOiBDPQphbGlicmksc2Fucy1zZXJpZjsgRk9OVC1XRUlHSFQ6IGJv bGQiIGRhdGEtbWNlLXN0eWxlPTNEImZvbnQtc2l6ZTogMTFwdDsgZm89Cm50LWZhbWlseTogQ2Fs aWJyaSxzYW5zLXNlcmlmOyBmb250LXdlaWdodDogYm9sZDsiPlNlbnQ6IDwvc3Bhbj48c3BhbiBz dHlsZT0KPTNEIkZPTlQtU0laRTogMTFwdDsgRk9OVC1GQU1JTFk6IENhbGlicmksc2Fucy1zZXJp ZiIgZGF0YS1tY2Utc3R5bGU9M0QiZm9uPQp0LXNpemU6IDExcHQ7IGZvbnQtZmFtaWx5OiBDYWxp YnJpLHNhbnMtc2VyaWY7Ij49RTI9ODA9OEUxNC09RTI9ODA9OEUwMy09RTI9Cj04MD04RTIwMTQg MDE6MjE8L3NwYW4+PGJyPjxzcGFuIHN0eWxlPTNEIkZPTlQtU0laRTogMTFwdDsgRk9OVC1GQU1J TFk6IENhbD0KaWJyaSxzYW5zLXNlcmlmOyBGT05ULVdFSUdIVDogYm9sZCIgZGF0YS1tY2Utc3R5 bGU9M0QiZm9udC1zaXplOiAxMXB0OyBmb250PQotZmFtaWx5OiBDYWxpYnJpLHNhbnMtc2VyaWY7 IGZvbnQtd2VpZ2h0OiBib2xkOyI+VG86IDwvc3Bhbj48c3BhbiBzdHlsZT0zRCI9CkZPTlQtU0la RTogMTFwdDsgRk9OVC1GQU1JTFk6IENhbGlicmksc2Fucy1zZXJpZiIgZGF0YS1tY2Utc3R5bGU9 M0QiZm9udC1zaT0KemU6IDExcHQ7IGZvbnQtZmFtaWx5OiBDYWxpYnJpLHNhbnMtc2VyaWY7Ij48 YSBocmVmPTNEIm1haWx0bzphZGl0eWEubWFtaWR3PQphckBnbWFpbC5jb20iIHRhcmdldD0zRCJf YmxhbmsiIGRhdGEtbWNlLWhyZWY9M0QibWFpbHRvOmFkaXR5YS5tYW1pZHdhckBnbWE9CmlsLmNv bSI+YWRpdHlhIG1hbWlkd2FyPC9hPjsgPGEgaHJlZj0zRCJtYWlsdG86dnN6b2NzQHJlZGhhdC5j b20iIHRhcmdldD0zRD0KIl9ibGFuayIgZGF0YS1tY2UtaHJlZj0zRCJtYWlsdG86dnN6b2NzQHJl ZGhhdC5jb20iPlZvanRlY2ggU3pvY3M8L2E+PC9zcGFuPQo+PGJyPjxzcGFuIHN0eWxlPTNEIkZP TlQtU0laRTogMTFwdDsgRk9OVC1GQU1JTFk6IENhbGlicmksc2Fucy1zZXJpZjsgRk9OVC09CldF SUdIVDogYm9sZCIgZGF0YS1tY2Utc3R5bGU9M0QiZm9udC1zaXplOiAxMXB0OyBmb250LWZhbWls eTogQ2FsaWJyaSxzYW5zLT0Kc2VyaWY7IGZvbnQtd2VpZ2h0OiBib2xkOyI+Q2M6IDwvc3Bhbj48 c3BhbiBzdHlsZT0zRCJGT05ULVNJWkU6IDExcHQ7IEZPTlQtPQpGQU1JTFk6IENhbGlicmksc2Fu cy1zZXJpZiIgZGF0YS1tY2Utc3R5bGU9M0QiZm9udC1zaXplOiAxMXB0OyBmb250LWZhbWlseTo9 CiBDYWxpYnJpLHNhbnMtc2VyaWY7Ij48YSBocmVmPTNEIm1haWx0bzp1c2Vyc0BvdmlydC5vcmci IHRhcmdldD0zRCJfYmxhbmsiID0KZGF0YS1tY2UtaHJlZj0zRCJtYWlsdG86dXNlcnNAb3ZpcnQu b3JnIj51c2Vyc0BvdmlydC5vcmc8L2E+OyA8YSBocmVmPTNEIm1hPQppbHRvOmVuZ2luZS1kZXZl bEBvdmlydC5vcmciIHRhcmdldD0zRCJfYmxhbmsiIGRhdGEtbWNlLWhyZWY9M0QibWFpbHRvOmVu Z2k9Cm5lLWRldmVsQG92aXJ0Lm9yZyI+ZW5naW5lLWRldmVsQG92aXJ0Lm9yZzwvYT48L3NwYW4+ PGJyPjxzcGFuIHN0eWxlPTNEIkZPTj0KVC1TSVpFOiAxMXB0OyBGT05ULUZBTUlMWTogQ2FsaWJy aSxzYW5zLXNlcmlmOyBGT05ULVdFSUdIVDogYm9sZCIgZGF0YS1tY2UtPQpzdHlsZT0zRCJmb250 LXNpemU6IDExcHQ7IGZvbnQtZmFtaWx5OiBDYWxpYnJpLHNhbnMtc2VyaWY7IGZvbnQtd2VpZ2h0 OiBib2w9CmQ7Ij5TdWJqZWN0OiA8L3NwYW4+PHNwYW4gc3R5bGU9M0QiRk9OVC1TSVpFOiAxMXB0 OyBGT05ULUZBTUlMWTogQ2FsaWJyaSxzYT0KbnMtc2VyaWYiIGRhdGEtbWNlLXN0eWxlPTNEImZv bnQtc2l6ZTogMTFwdDsgZm9udC1mYW1pbHk6IENhbGlicmksc2Fucy1zZXJpPQpmOyI+UmU6IFtV c2Vyc10gYWRkaW5nIHNjcmlwdHM8L3NwYW4+PGJyPjxkaXY+PGJyPjwvZGl2PjwvZGl2PmlmIHlv dSBhcmUgdHI9CnlpbmcgdG8gaG9vayBpbnRvIFVJLXNwZWNpZmljIGV2ZW50cywgaXQgc291bmRz IDxicj5saWtlIHlvdSB3aWxsIG5lZWQgdG8gdz0Kcml0ZSBhbiBvVmlydCBVSSBQbHVnaW4gWzFd IGluIG9yZGVyIHRvIDxicj5kbyB0aGF0LiBIb3dldmVyLCBJIGJlbGlldmUgdGhhPQp0IHRoZSBv VmlydCBVSSBQbHVnaW5zIDxicj5pbmZyYXN0cnVjdHVyZSBkb2Vzbid0IHN1cHBvcnQgaG9va2lu ZyB0byBldmVudHM9CiBzdWNoIGFzICJ0YWIgPGJyPnggd2FzIHNlbGVjdGVkIiBhbmQvb3IgImJ1 dHRvbiBiIHdhcyBjbGlja2VkIi4gPGJyPkl0IGRvZT0KcyBhbGxvdyB5b3UgdG8gYWRkIG5ldyAo Y3VzdG9tKSB0YWJzL3N1Yi10YWJzL2J1dHRvbnMgb2YgPGJyPnlvdXIgb3duLCBhbmQgPQp0aGVy ZSBpcyBhIGNoYW5jZSB0aGF0IGl0IGFsbG93cyB5b3UgdG8gaG9vayA8YnI+aW50byBldmVudHMg c3VjaCBhcyAncm93IHg9CiB3YXMgc2VsZWN0ZWQgaW4gdGhlIGdyaWQnLiA8YnI+PGRpdj48YnI+ PC9kaXY+QFZvanRlY2ggd2lsbCBrbm93IGJldHRlci4gVj0Kb2p0ZWNoPzxicj48ZGl2Pjxicj48 L2Rpdj5pZiB5b3UgYXJlIHRyeWluZyB0byBob29rIGludG8gZW5naW5lIGV2ZW50cyAoZS5nPQou IHlvdSB3YW50IHRvIDxicj5ydW4gYSBzY3JpcHQgZXZlcnkgdGltZSBhIFZNIGlzIHN0YXJ0ZWQg aW4gb1ZpcnQsIG5vIG1hdHQ9CmVyIGlmIDxicj50aGUgdXNlciBzdGFydGVkIGl0IGJ5IGNsaWNr aW5nIHRoZSAncnVuJyBidXR0b24gaW4gdGhlIG9WaXJ0LTxicj0KPmVuZ2luZSB3ZWJhZG1pbiwg b3IgaW52b2tlZCBhIFJFU1QgQVBJIHJlcXVlc3QsIG9yIGFuIFNESyA8YnI+Y29tbWFuZCksIHRo PQplbiBpdCB3aWxsIHJlcXVpcmUgc29tZSBzb3J0IG9mIGFuICJlbmdpbmUtcGx1Z2luIiA8YnI+ aW5mcmFzdHJ1Y3R1cmUgdGhhdCA9CndlIGRvbid0IGhhdmUgYXQgdGhlIG1vbWVudCBBRkFJSy4g PGJyPnRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgZm9yIHNvbWUgb2YgdD0KaGUgZXZlbnRzIHlvdSB3 aWxsIGJlIGFibGUgPGJyPnRvIHV0aWxpemUgdGhlIFZEU00gaG9va3MgKGF0IHRoZSBIb3N0IGxl dmVsPQopIFsyXS48YnI+PGRpdj48YnI+PC9kaXY+LS0tLTxicj5UaGFua3MsPGJyPkVpbmF2PGJy PjxkaXY+PGJyPjwvZGl2PlsxXSBodHQ9CnA6Ly93d3cub3ZpcnQub3JnL0ZlYXR1cmVzL1VJUGx1 Z2luczxicj48ZGl2Pjxicj48L2Rpdj5bMl0gaHR0cDovL3d3dy5vdmlydD0KLm9yZy9WRFNNLUhv b2tzPGJyPjxkaXY+PGJyPjwvZGl2Pjxicj4tLS0tLSBPcmlnaW5hbCBNZXNzYWdlIC0tLS0tPGJy PiZndDsgPQpGcm9tOiAiYWRpdHlhIG1hbWlkd2FyIiAmbHQ7YWRpdHlhLm1hbWlkd2FyQGdtYWls LmNvbSZndDs8YnI+Jmd0OyBUbzogdXNlcnM9CkBvdmlydC5vcmcsIGVuZ2luZS1kZXZlbEBvdmly dC5vcmc8YnI+Jmd0OyBTZW50OiBUaHVyc2RheSwgTWFyY2ggMTMsIDIwMTQgMT0KMToyMzozNSBB TTxicj4mZ3Q7IFN1YmplY3Q6IFtVc2Vyc10gYWRkaW5nIHNjcmlwdHM8YnI+Jmd0OyA8YnI+Jmd0 OyA8YnI+Jmd0PQo7IEkgd2FudCB0byBjb21taXQgY2hhbmdlcyB0byB0aGUgZW5naW5lIGJ5IGFk ZGluZyBzb21lIGJhc2ggc2NyaXB0cy48YnI+Jmc9CnQ7IHRoZSBzY3JpcHRzIHNob3VsZCBiZSBp bnZva2VkIG9uY2UgYSBidXR0b24gb3IgdGFiIGlzIHNlbGVjdGVkIGluIHRoZTxicj0KPiZndDsg d2ViYWRtaW4gcG9ydGFsIGJ5IHRoZSB1c2VyLjxicj4mZ3Q7IDxicj4mZ3Q7IGNhbiBzb21lb25l IGd1aWRlIG9uIGFjPQpoaWV2aW5nIHRoaXMuPGJyPiZndDsgPGJyPiZndDsgLS08YnI+Jmd0OyAt QWRpdHlhIE1hbWlkd2FyPGJyPiZndDsgPGJyPiZndDs9CiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXzxicj4mZ3Q7IFVzZXJzIG1haWxpbmcgbGlzdD0KPGJy PiZndDsgVXNlcnNAb3ZpcnQub3JnPGJyPiZndDsgaHR0cDovL2xpc3RzLm92aXJ0Lm9yZy9tYWls bWFuL2xpc3RpbmZvL3VzPQplcnM8YnI+Jmd0OyA8YnI+PGJyPl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fPGJyPlVzZXI9CnMgbWFpbGluZyBsaXN0PGJyPlVz ZXJzQG92aXJ0Lm9yZzxicj5odHRwOi8vbGlzdHMub3ZpcnQub3JnL21haWxtYW4vbGlzdGluZj0K by91c2Vyczxicj48L2Jsb2NrcXVvdGU+PGRpdj48YnI+PC9kaXY+PC9kaXY+PC9ib2R5PjwvaHRt bD4KLS0tLS0tPV9QYXJ0XzI5NDQwXzEwNDI1NTg3MjEuMTM5NDg5Mjk1OTMxNy0tCg== --===============5818378582498463090==--