From Sven.Achtelik at eps.aero Mon Apr 24 12:06:11 2017 Content-Type: multipart/mixed; boundary="===============1948047754435108445==" MIME-Version: 1.0 From: Sven Achtelik To: users at ovirt.org Subject: Re: [ovirt-users] Hyperconverged Setup and Gluster healing Date: Mon, 24 Apr 2017 07:06:06 -0500 Message-ID: In-Reply-To: 9af80a9b-753d-ef32-b72c-8bfc4b528821@redhat.com --===============1948047754435108445== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable --_000_BFAB40933B3367488CE6299BAF8592D1014E52CC4356SOCRATESasl_ Content-Type: text/plain; charset=3D"us-ascii" Content-Transfer-Encoding: quoted-printable Hi Kasturi, I'll try that. Will this be persistent over a reboot of a host or even stop= =3D ping of the complete cluster ? Thank you Von: knarra [mailto:knarra(a)redhat.com] Gesendet: Montag, 24. April 2017 13:44 An: Sven Achtelik ; users(a)ovirt.org Betreff: Re: [ovirt-users] Hyperconverged Setup and Gluster healing On 04/24/2017 05:03 PM, Sven Achtelik wrote: Hi All, my oVirt-Setup is 3 Hosts with gluster and reaplica 3. I always try to stay= =3D on the current version and I'm applying updates/upgrade if there are any. = =3D For this I put a host in maintenance and also use the "Stop Gluster Service= =3D " checkbox. After it's done updating I'll set it back to active and wait u= =3D ntil the engine sees all bricks again and then I'll go for the next host. This worked fine for me the last month and now that I have more and more VM= =3D s running the changes that are written to the gluster volume while a host i= =3D s in maintenance become a lot more and it takes pretty long for the healing= =3D to complete. What I don't understand is that I don't really see a lot of n= =3D etwork usage in the GUI during that time and it feels quiet slow. The Netwo= =3D rk for the gluster is a 10G and I'm quiet happy with the performance of it,= =3D it's just the healing that takes long. I noticed that because I couldn't u= =3D pdate the third host because of unsynced gluster volumes. Is there any limiting variable that slows down traffic during healing that = =3D needs to be configured ? Or should I maybe change my updating process someh= =3D ow to avoid having so many changes in queue? Thank you, Sven _______________________________________________ Users mailing list Users(a)ovirt.org http://lists.ovirt.org/mailman/listinfo/users Hi Sven, Do you have granular entry heal enabled on the volume? If no, there is = =3D a feature called granular entry self-heal which should be enabled with shar= =3D ded volumes to get the benefits. So when a brick goes down and say only 1 i= =3D n those million entries is created/deleted. Self-heal would be done for onl= =3D y that file it won't crawl the entire directory. You can run gluster volume set VOLNAME cluster.granular-entry-heal enab= =3D le / disable command only if the volume is in Created state. If the volume = =3D is in any other state other than Created , for example, Started , Stopped, = =3D and so on, execute gluster volume heal VOLNAME granular-entry-heal enable /= =3D disable command to enable or disable granular-entry-heal option. Thanks kasturi --_000_BFAB40933B3367488CE6299BAF8592D1014E52CC4356SOCRATESasl_ Content-Type: text/html; charset=3D"us-ascii" Content-Transfer-Encoding: quoted-printable

Hi Kasturi,

 

I’= ll try=3D that. Will this be persistent over a reboot of a host or even stopping of = =3D the complete cluster ?

<= o:p>&n=3D bsp;

 

Thank you

<=3D p class=3D3DMsoNormal>Von: knarra [mailto:knarra(a)redhat.com]
Gesendet: Montag, 24. Apr= il=3D 2017 13:44
An: Sven Achtelik <Sven.Achtelik(a)eps.aero>; u= se=3D rs(a)ovirt.org
Betreff: Re: [ovirt-users] Hyperconverged Setup an= d =3D Gluster healing

=3D  

On 04/24/2017 05:03 PM, Sven Ac= ht=3D elik wrote:=

Hi All,

&= nbsp=3D ;

my oVirt-Setup = is 3=3D Hosts with gluster and reaplica 3. I always try to stay on the current ver= =3D sion and I’m applying updates/upgrade if there are any. For this I pu= =3D t a host in maintenance and also use the “Stop Gluster Service”= =3D  checkbox. After it’s done updating I’ll set it back to a= =3D ctive and wait until the engine sees all bricks again and then I’ll g= =3D o for the next host.

 

This worked fine for me the last month and now that I have more and more = =3D VMs running the changes that are written to the gluster volume while a host= =3D is in maintenance become a lot more and it takes pretty long for the heali= =3D ng to complete. What I don’t understand is that I don’t really = =3D see a lot of network usage in the GUI during that time and it feels quiet s= =3D low. The Network for the gluster is a 10G and I’m quiet happy with th= =3D e performance of it, it’s just the healing that takes long. I noticed= =3D that because I couldn’t update the third host because of unsynced gl= =3D uster volumes.

 

Is= the=3D re any limiting variable that slows down traffic during healing that needs = =3D to be configured ? Or should I maybe change my updating process somehow to = =3D avoid having so many changes in queue?

 

=3D Thank you,

 

Sven

 <=3D /p>


__________________________________________=
=3D
_____
Users mailing list
Users(a)ovirt.org
=
http://lists.ovirt.or=
g/=3D
mailman/listinfo/users

Hi Sven,

    Do you have granular entry heal enabled on the= =3D volume? If no, there is a feature called granular entry self-heal which sh= =3D ould be enabled with sharded volumes to get the benefits. So when a brick g= =3D oes down and say only 1 in those million entries is created/deleted. Self-h= =3D eal would be done for only that file it won't crawl the entire directory.

    You can run <=3D code>glus= te=3D r volume set VOLNAME cluster.granular-e= nt=3D ry-heal enable / disable<=3D span style=3D3D'font-size:11.0pt;font-family:"Courier New";color:#333333;ba= ck=3D ground:white'> command only if the volume is in&=3D nbsp;Created state. If the volume is in any other state other than Created , for example,&n= bs=3D p;Started =3D , Stopped<=3D span style=3D3D'color:#333333;background:white'>, and so on, execute gluster volume heal VOLNAME granu= =3D lar-entry-heal enable / disable command to enable or disable granular-entry-= =3D heal option.

Thanks

kasturi

=3D --_000_BFAB40933B3367488CE6299BAF8592D1014E52CC4356SOCRATESasl_-- --===============1948047754435108445== Content-Type: multipart/alternative MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.bin" LS1fMDAwX0JGQUI0MDkzM0IzMzY3NDg4Q0U2Mjk5QkFGODU5MkQxMDE0RTUyQ0M0MzU2U09DUkFU RVNhc2xfCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0idXMtYXNjaWkiCkNvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCkhpIEthc3R1cmksCgpJJ2xs IHRyeSB0aGF0LiBXaWxsIHRoaXMgYmUgcGVyc2lzdGVudCBvdmVyIGEgcmVib290IG9mIGEgaG9z dCBvciBldmVuIHN0b3A9CnBpbmcgb2YgdGhlIGNvbXBsZXRlIGNsdXN0ZXIgPwoKClRoYW5rIHlv dQpWb246IGtuYXJyYSBbbWFpbHRvOmtuYXJyYUByZWRoYXQuY29tXQpHZXNlbmRldDogTW9udGFn LCAyNC4gQXByaWwgMjAxNyAxMzo0NApBbjogU3ZlbiBBY2h0ZWxpayA8U3Zlbi5BY2h0ZWxpa0Bl cHMuYWVybz47IHVzZXJzQG92aXJ0Lm9yZwpCZXRyZWZmOiBSZTogW292aXJ0LXVzZXJzXSBIeXBl cmNvbnZlcmdlZCBTZXR1cCBhbmQgR2x1c3RlciBoZWFsaW5nCgpPbiAwNC8yNC8yMDE3IDA1OjAz IFBNLCBTdmVuIEFjaHRlbGlrIHdyb3RlOgpIaSBBbGwsCgpteSBvVmlydC1TZXR1cCBpcyAzIEhv c3RzIHdpdGggZ2x1c3RlciBhbmQgcmVhcGxpY2EgMy4gSSBhbHdheXMgdHJ5IHRvIHN0YXk9CiBv biB0aGUgY3VycmVudCB2ZXJzaW9uIGFuZCBJJ20gYXBwbHlpbmcgdXBkYXRlcy91cGdyYWRlIGlm IHRoZXJlIGFyZSBhbnkuID0KRm9yIHRoaXMgSSBwdXQgYSBob3N0IGluIG1haW50ZW5hbmNlIGFu ZCBhbHNvIHVzZSB0aGUgIlN0b3AgR2x1c3RlciBTZXJ2aWNlPQoiICBjaGVja2JveC4gQWZ0ZXIg aXQncyBkb25lIHVwZGF0aW5nIEknbGwgc2V0IGl0IGJhY2sgdG8gYWN0aXZlIGFuZCB3YWl0IHU9 Cm50aWwgdGhlIGVuZ2luZSBzZWVzIGFsbCBicmlja3MgYWdhaW4gYW5kIHRoZW4gSSdsbCBnbyBm b3IgdGhlIG5leHQgaG9zdC4KClRoaXMgd29ya2VkIGZpbmUgZm9yIG1lIHRoZSBsYXN0IG1vbnRo IGFuZCBub3cgdGhhdCBJIGhhdmUgbW9yZSBhbmQgbW9yZSBWTT0KcyBydW5uaW5nIHRoZSBjaGFu Z2VzIHRoYXQgYXJlIHdyaXR0ZW4gdG8gdGhlIGdsdXN0ZXIgdm9sdW1lIHdoaWxlIGEgaG9zdCBp PQpzIGluIG1haW50ZW5hbmNlIGJlY29tZSBhIGxvdCBtb3JlIGFuZCBpdCB0YWtlcyBwcmV0dHkg bG9uZyBmb3IgdGhlIGhlYWxpbmc9CiB0byBjb21wbGV0ZS4gV2hhdCBJIGRvbid0IHVuZGVyc3Rh bmQgaXMgdGhhdCBJIGRvbid0IHJlYWxseSBzZWUgYSBsb3Qgb2Ygbj0KZXR3b3JrIHVzYWdlIGlu IHRoZSBHVUkgZHVyaW5nIHRoYXQgdGltZSBhbmQgaXQgZmVlbHMgcXVpZXQgc2xvdy4gVGhlIE5l dHdvPQpyayBmb3IgdGhlIGdsdXN0ZXIgaXMgYSAxMEcgYW5kIEknbSBxdWlldCBoYXBweSB3aXRo IHRoZSBwZXJmb3JtYW5jZSBvZiBpdCw9CiBpdCdzIGp1c3QgdGhlIGhlYWxpbmcgdGhhdCB0YWtl cyBsb25nLiBJIG5vdGljZWQgdGhhdCBiZWNhdXNlIEkgY291bGRuJ3QgdT0KcGRhdGUgdGhlIHRo aXJkIGhvc3QgYmVjYXVzZSBvZiB1bnN5bmNlZCBnbHVzdGVyIHZvbHVtZXMuCgpJcyB0aGVyZSBh bnkgbGltaXRpbmcgdmFyaWFibGUgdGhhdCBzbG93cyBkb3duIHRyYWZmaWMgZHVyaW5nIGhlYWxp bmcgdGhhdCA9Cm5lZWRzIHRvIGJlIGNvbmZpZ3VyZWQgPyBPciBzaG91bGQgSSBtYXliZSBjaGFu Z2UgbXkgdXBkYXRpbmcgcHJvY2VzcyBzb21laD0Kb3cgdG8gYXZvaWQgaGF2aW5nIHNvIG1hbnkg Y2hhbmdlcyBpbiBxdWV1ZT8KClRoYW5rIHlvdSwKClN2ZW4KCgoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCgpVc2VycyBtYWlsaW5nIGxpc3QKClVzZXJz QG92aXJ0Lm9yZzxtYWlsdG86VXNlcnNAb3ZpcnQub3JnPgoKaHR0cDovL2xpc3RzLm92aXJ0Lm9y Zy9tYWlsbWFuL2xpc3RpbmZvL3VzZXJzCgpIaSBTdmVuLAoKICAgIERvIHlvdSBoYXZlIGdyYW51 bGFyIGVudHJ5IGhlYWwgZW5hYmxlZCBvbiB0aGUgdm9sdW1lPyBJZiBubywgdGhlcmUgaXMgPQph IGZlYXR1cmUgY2FsbGVkIGdyYW51bGFyIGVudHJ5IHNlbGYtaGVhbCB3aGljaCBzaG91bGQgYmUg ZW5hYmxlZCB3aXRoIHNoYXI9CmRlZCB2b2x1bWVzIHRvIGdldCB0aGUgYmVuZWZpdHMuIFNvIHdo ZW4gYSBicmljayBnb2VzIGRvd24gYW5kIHNheSBvbmx5IDEgaT0KbiB0aG9zZSBtaWxsaW9uIGVu dHJpZXMgaXMgY3JlYXRlZC9kZWxldGVkLiBTZWxmLWhlYWwgd291bGQgYmUgZG9uZSBmb3Igb25s PQp5IHRoYXQgZmlsZSBpdCB3b24ndCBjcmF3bCB0aGUgZW50aXJlIGRpcmVjdG9yeS4KCiAgICBZ b3UgY2FuIHJ1biBnbHVzdGVyIHZvbHVtZSBzZXQgVk9MTkFNRSBjbHVzdGVyLmdyYW51bGFyLWVu dHJ5LWhlYWwgZW5hYj0KbGUgLyBkaXNhYmxlIGNvbW1hbmQgb25seSBpZiB0aGUgdm9sdW1lIGlz IGluIENyZWF0ZWQgc3RhdGUuIElmIHRoZSB2b2x1bWUgPQppcyBpbiBhbnkgb3RoZXIgc3RhdGUg b3RoZXIgdGhhbiBDcmVhdGVkICwgZm9yIGV4YW1wbGUsIFN0YXJ0ZWQgLCBTdG9wcGVkLCA9CmFu ZCBzbyBvbiwgZXhlY3V0ZSBnbHVzdGVyIHZvbHVtZSBoZWFsIFZPTE5BTUUgZ3JhbnVsYXItZW50 cnktaGVhbCBlbmFibGUgLz0KIGRpc2FibGUgY29tbWFuZCB0byBlbmFibGUgb3IgZGlzYWJsZSBn cmFudWxhci1lbnRyeS1oZWFsIG9wdGlvbi4KClRoYW5rcwoKa2FzdHVyaQoKLS1fMDAwX0JGQUI0 MDkzM0IzMzY3NDg4Q0U2Mjk5QkFGODU5MkQxMDE0RTUyQ0M0MzU2U09DUkFURVNhc2xfCkNvbnRl bnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PSJ1cy1hc2NpaSIKQ29udGVudC1UcmFuc2Zlci1F bmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKPGh0bWwgeG1sbnM6dj0zRCJ1cm46c2NoZW1hcy1t aWNyb3NvZnQtY29tOnZtbCIgeG1sbnM6bz0zRCJ1cm46c2NoZW1hcy1taWNyPQpvc29mdC1jb206 b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0zRCJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmlj ZTp3b3JkIiA9CnhtbG5zOm09M0QiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uv MjAwNC8xMi9vbW1sIiB4bWxucz0zRCJodHRwOj0KLy93d3cudzMub3JnL1RSL1JFQy1odG1sNDAi PjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9M0RDb250ZW50LVR5cGUgY29udGVudD0KPTNEInRleHQv aHRtbDsgY2hhcnNldD0zRHVzLWFzY2lpIj48bWV0YSBuYW1lPTNER2VuZXJhdG9yIGNvbnRlbnQ9 M0QiTWljcm9zPQpvZnQgV29yZCAxNSAoZmlsdGVyZWQgbWVkaXVtKSI+PHN0eWxlPjwhLS0KLyog Rm9udCBEZWZpbml0aW9ucyAqLwpAZm9udC1mYWNlCgl7Zm9udC1mYW1pbHk6IkNhbWJyaWEgTWF0 aCI7CglwYW5vc2UtMToyIDQgNSAzIDUgNCA2IDMgMiA0O30KQGZvbnQtZmFjZQoJe2ZvbnQtZmFt aWx5OkNhbGlicmk7CglwYW5vc2UtMToyIDE1IDUgMiAyIDIgNCAzIDIgNDt9CkBmb250LWZhY2UK CXtmb250LWZhbWlseTpDb25zb2xhczsKCXBhbm9zZS0xOjIgMTEgNiA5IDIgMiA0IDMgMiA0O30K LyogU3R5bGUgRGVmaW5pdGlvbnMgKi8KcC5Nc29Ob3JtYWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1z b05vcm1hbAoJe21hcmdpbjowY207CgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7Cglmb250LXNpemU6 MTEuMHB0OwoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7Cgljb2xvcjpibGFjazsK CW1zby1mYXJlYXN0LWxhbmd1YWdlOkVOLVVTO30KYTpsaW5rLCBzcGFuLk1zb0h5cGVybGluawoJ e21zby1zdHlsZS1wcmlvcml0eTo5OTsKCWNvbG9yOiMwNTYzQzE7Cgl0ZXh0LWRlY29yYXRpb246 dW5kZXJsaW5lO30KYTp2aXNpdGVkLCBzcGFuLk1zb0h5cGVybGlua0ZvbGxvd2VkCgl7bXNvLXN0 eWxlLXByaW9yaXR5Ojk5OwoJY29sb3I6Izk1NEY3MjsKCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxp bmU7fQpwCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5OwoJbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87 CgltYXJnaW4tcmlnaHQ6MGNtOwoJbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87CgltYXJnaW4t bGVmdDowY207Cglmb250LXNpemU6MTIuMHB0OwoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21h biIsc2VyaWY7Cgljb2xvcjpibGFjazt9CmNvZGUKCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7Cglm b250LWZhbWlseToiQ291cmllciBOZXciO30KcHJlCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5OwoJ bXNvLXN0eWxlLWxpbms6IkhUTUwgVm9yZm9ybWF0aWVydCBaY2huIjsKCW1hcmdpbjowY207Cglt YXJnaW4tYm90dG9tOi4wMDAxcHQ7Cglmb250LXNpemU6MTAuMHB0OwoJZm9udC1mYW1pbHk6IkNv dXJpZXIgTmV3IjsKCWNvbG9yOmJsYWNrO30Kc3Bhbi5IVE1MVm9yZm9ybWF0aWVydFpjaG4KCXtt c28tc3R5bGUtbmFtZToiSFRNTCBWb3Jmb3JtYXRpZXJ0IFpjaG4iOwoJbXNvLXN0eWxlLXByaW9y aXR5Ojk5OwoJbXNvLXN0eWxlLWxpbms6IkhUTUwgVm9yZm9ybWF0aWVydCI7Cglmb250LWZhbWls eTpDb25zb2xhczsKCWNvbG9yOmJsYWNrOwoJbXNvLWZhcmVhc3QtbGFuZ3VhZ2U6RU4tVVM7fQpz cGFuLkUtTWFpbEZvcm1hdHZvcmxhZ2UyMQoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFsOwoJZm9u dC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7Cgljb2xvcjp3aW5kb3d0ZXh0O30Kc3Bhbi5h cHBsZS1jb252ZXJ0ZWQtc3BhY2UKCXttc28tc3R5bGUtbmFtZTphcHBsZS1jb252ZXJ0ZWQtc3Bh Y2U7fQpzcGFuLkUtTWFpbEZvcm1hdHZvcmxhZ2UyMwoJe21zby1zdHlsZS10eXBlOnBlcnNvbmFs LXJlcGx5OwoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMtc2VyaWY7Cgljb2xvcjojMUY0OTdE O30KLk1zb0NocERlZmF1bHQKCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seTsKCWZvbnQtc2l6 ZToxMC4wcHQ7fQpAcGFnZSBXb3JkU2VjdGlvbjEKCXtzaXplOjYxMi4wcHQgNzkyLjBwdDsKCW1h cmdpbjo3MC44NXB0IDcwLjg1cHQgMi4wY20gNzAuODVwdDt9CmRpdi5Xb3JkU2VjdGlvbjEKCXtw YWdlOldvcmRTZWN0aW9uMTt9Ci0tPjwvc3R5bGU+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+Cjxv OnNoYXBlZGVmYXVsdHMgdjpleHQ9M0QiZWRpdCIgc3BpZG1heD0zRCIxMDI2IiAvPgo8L3htbD48 IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4KPG86c2hhcGVsYXlvdXQgdjpleHQ9 M0QiZWRpdCI+CjxvOmlkbWFwIHY6ZXh0PTNEImVkaXQiIGRhdGE9M0QiMSIgLz4KPC9vOnNoYXBl bGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPjwvaGVhZD48Ym9keSBiZ2NvbG9yPTNEd2hpdGUgbGFu Zz0zRERFIGxpPQpuaz0zRCIjMDU2M0MxIiB2bGluaz0zRCIjOTU0RjcyIj48ZGl2IGNsYXNzPTNE V29yZFNlY3Rpb24xPjxwIGNsYXNzPTNETXNvTm89CnJtYWw+PHNwYW4gc3R5bGU9M0QnY29sb3I6 IzFGNDk3RCc+SGkgS2FzdHVyaSw8bzpwPjwvbzpwPjwvc3Bhbj48L3A+PHAgY2xhcz0Kcz0zRE1z b05vcm1hbD48c3BhbiBzdHlsZT0zRCdjb2xvcjojMUY0OTdEJz48bzpwPiZuYnNwOzwvbzpwPjwv c3Bhbj48L3A+PHAgPQpjbGFzcz0zRE1zb05vcm1hbD48c3BhbiBsYW5nPTNERU4tVVMgc3R5bGU9 M0QnY29sb3I6IzFGNDk3RCc+SSYjODIxNztsbCB0cnk9CiB0aGF0LiBXaWxsIHRoaXMgYmUgcGVy c2lzdGVudCBvdmVyIGEgcmVib290IG9mIGEgaG9zdCBvciBldmVuIHN0b3BwaW5nIG9mID0KdGhl IGNvbXBsZXRlIGNsdXN0ZXIgPyA8bzpwPjwvbzpwPjwvc3Bhbj48L3A+PHAgY2xhc3M9M0RNc29O b3JtYWw+PGEgbmFtZT0KPTNEIl9NYWlsRW5kQ29tcG9zZSI+PC9hPjxzcGFuIGxhbmc9M0RFTi1V UyBzdHlsZT0zRCdjb2xvcjojMUY0OTdEJz48bzpwPiZuPQpic3A7PC9vOnA+PC9zcGFuPjwvcD48 cCBjbGFzcz0zRE1zb05vcm1hbD48c3BhbiBsYW5nPTNERU4tVVMgc3R5bGU9M0QnY29sb3I9Cjoj MUY0OTdEJz48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+PHAgY2xhc3M9M0RNc29Ob3JtYWw+ PHNwYW4gbGFuZz0zREVOLT0KVVMgc3R5bGU9M0QnY29sb3I6IzFGNDk3RCc+VGhhbmsgeW91PG86 cD48L286cD48L3NwYW4+PC9wPjxkaXY+PGRpdiBzdHlsZT0KPTNEJ2JvcmRlcjpub25lO2JvcmRl ci10b3A6c29saWQgI0UxRTFFMSAxLjBwdDtwYWRkaW5nOjMuMHB0IDBjbSAwY20gMGNtJz48PQpw IGNsYXNzPTNETXNvTm9ybWFsPjxiPjxzcGFuIHN0eWxlPTNEJ2NvbG9yOndpbmRvd3RleHQ7bXNv LWZhcmVhc3QtbGFuZ3VhZ2U9CjpERSc+Vm9uOjwvc3Bhbj48L2I+PHNwYW4gc3R5bGU9M0QnY29s b3I6d2luZG93dGV4dDttc28tZmFyZWFzdC1sYW5ndWFnZTpERT0KJz4ga25hcnJhIFttYWlsdG86 a25hcnJhQHJlZGhhdC5jb21dIDxicj48Yj5HZXNlbmRldDo8L2I+IE1vbnRhZywgMjQuIEFwcmls PQogMjAxNyAxMzo0NDxicj48Yj5Bbjo8L2I+IFN2ZW4gQWNodGVsaWsgJmx0O1N2ZW4uQWNodGVs aWtAZXBzLmFlcm8mZ3Q7OyB1c2U9CnJzQG92aXJ0Lm9yZzxicj48Yj5CZXRyZWZmOjwvYj4gUmU6 IFtvdmlydC11c2Vyc10gSHlwZXJjb252ZXJnZWQgU2V0dXAgYW5kID0KR2x1c3RlciBoZWFsaW5n PG86cD48L286cD48L3NwYW4+PC9wPjwvZGl2PjwvZGl2PjxwIGNsYXNzPTNETXNvTm9ybWFsPjxv OnA+PQombmJzcDs8L286cD48L3A+PGRpdj48cCBjbGFzcz0zRE1zb05vcm1hbD5PbiAwNC8yNC8y MDE3IDA1OjAzIFBNLCBTdmVuIEFjaHQ9CmVsaWsgd3JvdGU6PHNwYW4gc3R5bGU9M0QnZm9udC1z aXplOjEyLjBwdDttc28tZmFyZWFzdC1sYW5ndWFnZTpERSc+PG86cD48Lz0KbzpwPjwvc3Bhbj48 L3A+PC9kaXY+PGJsb2NrcXVvdGUgc3R5bGU9M0QnbWFyZ2luLXRvcDo1LjBwdDttYXJnaW4tYm90 dG9tOjUuPQowcHQnPjxwIGNsYXNzPTNETXNvTm9ybWFsPkhpIEFsbCwgPG86cD48L286cD48L3A+ PHAgY2xhc3M9M0RNc29Ob3JtYWw+Jm5ic3A9Cjs8bzpwPjwvbzpwPjwvcD48cCBjbGFzcz0zRE1z b05vcm1hbD48c3BhbiBsYW5nPTNERU4tVVM+bXkgb1ZpcnQtU2V0dXAgaXMgMz0KIEhvc3RzIHdp dGggZ2x1c3RlciBhbmQgcmVhcGxpY2EgMy4gSSBhbHdheXMgdHJ5IHRvIHN0YXkgb24gdGhlIGN1 cnJlbnQgdmVyPQpzaW9uIGFuZCBJJiM4MjE3O20gYXBwbHlpbmcgdXBkYXRlcy91cGdyYWRlIGlm IHRoZXJlIGFyZSBhbnkuIEZvciB0aGlzIEkgcHU9CnQgYSBob3N0IGluIG1haW50ZW5hbmNlIGFu ZCBhbHNvIHVzZSB0aGUgJiM4MjIwO1N0b3AgR2x1c3RlciBTZXJ2aWNlJiM4MjIxOz0KICZuYnNw O2NoZWNrYm94LiBBZnRlciBpdCYjODIxNztzIGRvbmUgdXBkYXRpbmcgSSYjODIxNztsbCBzZXQg aXQgYmFjayB0byBhPQpjdGl2ZSBhbmQgd2FpdCB1bnRpbCB0aGUgZW5naW5lIHNlZXMgYWxsIGJy aWNrcyBhZ2FpbiBhbmQgdGhlbiBJJiM4MjE3O2xsIGc9Cm8gZm9yIHRoZSBuZXh0IGhvc3QuIDwv c3Bhbj48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz0zRE1zb05vcm1hbD48c3BhbiBsYW5nPQo9M0RF Ti1VUz4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+PHAgY2xhc3M9M0RNc29Ob3JtYWw+PHNw YW4gbGFuZz0zREVOLVU9ClM+VGhpcyB3b3JrZWQgZmluZSBmb3IgbWUgdGhlIGxhc3QgbW9udGgg YW5kIG5vdyB0aGF0IEkgaGF2ZSBtb3JlIGFuZCBtb3JlID0KVk1zIHJ1bm5pbmcgdGhlIGNoYW5n ZXMgdGhhdCBhcmUgd3JpdHRlbiB0byB0aGUgZ2x1c3RlciB2b2x1bWUgd2hpbGUgYSBob3N0PQog aXMgaW4gbWFpbnRlbmFuY2UgYmVjb21lIGEgbG90IG1vcmUgYW5kIGl0IHRha2VzIHByZXR0eSBs b25nIGZvciB0aGUgaGVhbGk9Cm5nIHRvIGNvbXBsZXRlLiBXaGF0IEkgZG9uJiM4MjE3O3QgdW5k ZXJzdGFuZCBpcyB0aGF0IEkgZG9uJiM4MjE3O3QgcmVhbGx5ID0Kc2VlIGEgbG90IG9mIG5ldHdv cmsgdXNhZ2UgaW4gdGhlIEdVSSBkdXJpbmcgdGhhdCB0aW1lIGFuZCBpdCBmZWVscyBxdWlldCBz PQpsb3cuIFRoZSBOZXR3b3JrIGZvciB0aGUgZ2x1c3RlciBpcyBhIDEwRyBhbmQgSSYjODIxNztt IHF1aWV0IGhhcHB5IHdpdGggdGg9CmUgcGVyZm9ybWFuY2Ugb2YgaXQsIGl0JiM4MjE3O3MganVz dCB0aGUgaGVhbGluZyB0aGF0IHRha2VzIGxvbmcuIEkgbm90aWNlZD0KIHRoYXQgYmVjYXVzZSBJ IGNvdWxkbiYjODIxNzt0IHVwZGF0ZSB0aGUgdGhpcmQgaG9zdCBiZWNhdXNlIG9mIHVuc3luY2Vk IGdsPQp1c3RlciB2b2x1bWVzLjwvc3Bhbj48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz0zRE1zb05v cm1hbD48c3BhbiBsYW5nPTNERU4tVVM9Cj4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+PHAg Y2xhc3M9M0RNc29Ob3JtYWw+PHNwYW4gbGFuZz0zREVOLVVTPklzIHRoZT0KcmUgYW55IGxpbWl0 aW5nIHZhcmlhYmxlIHRoYXQgc2xvd3MgZG93biB0cmFmZmljIGR1cmluZyBoZWFsaW5nIHRoYXQg bmVlZHMgPQp0byBiZSBjb25maWd1cmVkID8gT3Igc2hvdWxkIEkgbWF5YmUgY2hhbmdlIG15IHVw ZGF0aW5nIHByb2Nlc3Mgc29tZWhvdyB0byA9CmF2b2lkIGhhdmluZyBzbyBtYW55IGNoYW5nZXMg aW4gcXVldWU/IDwvc3Bhbj48bzpwPjwvbzpwPjwvcD48cCBjbGFzcz0zRE1zbz0KTm9ybWFsPjxz cGFuIGxhbmc9M0RFTi1VUz4mbmJzcDs8L3NwYW4+PG86cD48L286cD48L3A+PHAgY2xhc3M9M0RN c29Ob3JtYWw+PQo8c3BhbiBsYW5nPTNERU4tVVM+VGhhbmsgeW91LCA8L3NwYW4+PG86cD48L286 cD48L3A+PHAgY2xhc3M9M0RNc29Ob3JtYWw+PHM9CnBhbiBsYW5nPTNERU4tVVM+Jm5ic3A7PC9z cGFuPjxvOnA+PC9vOnA+PC9wPjxwIGNsYXNzPTNETXNvTm9ybWFsPjxzcGFuIGxhbj0KZz0zREVO LVVTPlN2ZW48L3NwYW4+PG86cD48L286cD48L3A+PHAgY2xhc3M9M0RNc29Ob3JtYWw+Jm5ic3A7 PG86cD48L286cD48PQovcD48cCBjbGFzcz0zRE1zb05vcm1hbCBzdHlsZT0zRCdtYXJnaW4tYm90 dG9tOjEyLjBwdCc+PHNwYW4gc3R5bGU9M0QnZm9udC09CnNpemU6MTIuMHB0O2ZvbnQtZmFtaWx5 OiJUaW1lcyBOZXcgUm9tYW4iLHNlcmlmO21zby1mYXJlYXN0LWxhbmd1YWdlOkRFJz48Yj0Kcj48 YnI+PG86cD48L286cD48L3NwYW4+PC9wPjxwcmU+X19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fPQpfX19fXzxvOnA+PC9vOnA+PC9wcmU+PHByZT5Vc2VycyBtYWlsaW5n IGxpc3Q8bzpwPjwvbzpwPjwvcHJlPjxwcmU+PGEgaHJlZj0KPTNEIm1haWx0bzpVc2Vyc0Bvdmly dC5vcmciPlVzZXJzQG92aXJ0Lm9yZzwvYT48bzpwPjwvbzpwPjwvcHJlPjxwcmU+PGEgaHJlPQpm PTNEImh0dHA6Ly9saXN0cy5vdmlydC5vcmcvbWFpbG1hbi9saXN0aW5mby91c2VycyI+aHR0cDov L2xpc3RzLm92aXJ0Lm9yZy89Cm1haWxtYW4vbGlzdGluZm8vdXNlcnM8L2E+PG86cD48L286cD48 L3ByZT48L2Jsb2NrcXVvdGU+PHA+SGkgU3Zlbiw8bzpwPjwvbz0KOnA+PC9wPjxwPiZuYnNwOyZu YnNwOyZuYnNwOyBEbyB5b3UgaGF2ZSBncmFudWxhciBlbnRyeSBoZWFsIGVuYWJsZWQgb24gdGhl PQogdm9sdW1lPyBJZiBubywgdGhlcmUgaXMgYSBmZWF0dXJlIGNhbGxlZCBncmFudWxhciBlbnRy eSBzZWxmLWhlYWwgd2hpY2ggc2g9Cm91bGQgYmUgZW5hYmxlZCB3aXRoIHNoYXJkZWQgdm9sdW1l cyB0byBnZXQgdGhlIGJlbmVmaXRzLiBTbyB3aGVuIGEgYnJpY2sgZz0Kb2VzIGRvd24gYW5kIHNh eSBvbmx5IDEgaW4gdGhvc2UgbWlsbGlvbiBlbnRyaWVzIGlzIGNyZWF0ZWQvZGVsZXRlZC4gU2Vs Zi1oPQplYWwgd291bGQgYmUgZG9uZSBmb3Igb25seSB0aGF0IGZpbGUgaXQgd29uJ3QgY3Jhd2wg dGhlIGVudGlyZSBkaXJlY3RvcnkuPG89CjpwPjwvbzpwPjwvcD48cD4mbmJzcDsmbmJzcDsmbmJz cDsgPHNwYW4gc3R5bGU9M0QnY29sb3I6IzMzMzMzMztiYWNrZ3JvdW5kOj0Kd2hpdGUnPllvdSBj YW4gcnVuPHNwYW4gY2xhc3M9M0RhcHBsZS1jb252ZXJ0ZWQtc3BhY2U+Jm5ic3A7PC9zcGFuPjwv c3Bhbj48PQpjb2RlPjxzcGFuIHN0eWxlPTNEJ2ZvbnQtc2l6ZToxMS4wcHQ7Y29sb3I6IzMzMzMz MztiYWNrZ3JvdW5kOndoaXRlJz5nbHVzdGU9CnIgdm9sdW1lIHNldDwvc3Bhbj48L2NvZGU+PHNw YW4gY2xhc3M9M0RhcHBsZS1jb252ZXJ0ZWQtc3BhY2U+PHNwYW4gc3R5bGU9Cj0zRCdmb250LXNp emU6MTEuMHB0O2ZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyI7Y29sb3I6IzMzMzMzMztiYWNrZ3Jv dW5kOndoaT0KdGUnPiZuYnNwOzwvc3Bhbj48L3NwYW4+PGVtPjxzcGFuIHN0eWxlPTNEJ2ZvbnQt c2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6IkNvPQp1cmllciBOZXciO2NvbG9yOiMzMzMzMzM7YmFj a2dyb3VuZDp3aGl0ZSc+Vk9MTkFNRTwvc3Bhbj48L2VtPjxzcGFuIGNsYXNzPQo9M0RhcHBsZS1j b252ZXJ0ZWQtc3BhY2U+PHNwYW4gc3R5bGU9M0QnZm9udC1zaXplOjExLjBwdDtmb250LWZhbWls eToiQ291cmk9CmVyIE5ldyI7Y29sb3I6IzMzMzMzMztiYWNrZ3JvdW5kOndoaXRlJz4mbmJzcDs8 L3NwYW4+PC9zcGFuPjxjb2RlPjxzcGFuIHN0eT0KbGU9M0QnZm9udC1zaXplOjExLjBwdDtjb2xv cjojMzMzMzMzO2JhY2tncm91bmQ6d2hpdGUnPmNsdXN0ZXIuZ3JhbnVsYXItZW50PQpyeS1oZWFs IGVuYWJsZSAvIGRpc2FibGU8L3NwYW4+PC9jb2RlPjxzcGFuIGNsYXNzPTNEYXBwbGUtY29udmVy dGVkLXNwYWNlPjw9CnNwYW4gc3R5bGU9M0QnZm9udC1zaXplOjExLjBwdDtmb250LWZhbWlseToi Q291cmllciBOZXciO2NvbG9yOiMzMzMzMzM7YmFjaz0KZ3JvdW5kOndoaXRlJz4mbmJzcDs8L3Nw YW4+PC9zcGFuPjxzcGFuIHN0eWxlPTNEJ2NvbG9yOiMzMzMzMzM7YmFja2dyb3VuZDp3PQpoaXRl Jz5jb21tYW5kIG9ubHkgaWYgdGhlIHZvbHVtZSBpcyBpbjxzcGFuIGNsYXNzPTNEYXBwbGUtY29u dmVydGVkLXNwYWNlPiY9Cm5ic3A7PC9zcGFuPjwvc3Bhbj48Y29kZT48c3BhbiBzdHlsZT0zRCdm b250LXNpemU6MTEuMHB0O2NvbG9yOiMzMzMzMzM7YmFjaz0KZ3JvdW5kOndoaXRlJz5DcmVhdGVk PC9zcGFuPjwvY29kZT48c3BhbiBjbGFzcz0zRGFwcGxlLWNvbnZlcnRlZC1zcGFjZT48c3BhPQpu IHN0eWxlPTNEJ2ZvbnQtc2l6ZToxMS4wcHQ7Zm9udC1mYW1pbHk6IkNvdXJpZXIgTmV3Ijtjb2xv cjojMzMzMzMzO2JhY2tncm89CnVuZDp3aGl0ZSc+Jm5ic3A7PC9zcGFuPjwvc3Bhbj48c3BhbiBz dHlsZT0zRCdjb2xvcjojMzMzMzMzO2JhY2tncm91bmQ6d2hpdD0KZSc+c3RhdGUuIElmIHRoZSB2 b2x1bWUgaXMgaW4gYW55IG90aGVyIHN0YXRlIG90aGVyIHRoYW48c3BhbiBjbGFzcz0zRGFwcGxl PQotY29udmVydGVkLXNwYWNlPiZuYnNwOzwvc3Bhbj48L3NwYW4+PGNvZGU+PHNwYW4gc3R5bGU9 M0QnZm9udC1zaXplOjExLjBwdDs9CmNvbG9yOiMzMzMzMzM7YmFja2dyb3VuZDp3aGl0ZSc+Q3Jl YXRlZDwvc3Bhbj48L2NvZGU+PHNwYW4gY2xhc3M9M0RhcHBsZS1jbz0KbnZlcnRlZC1zcGFjZT48 c3BhbiBzdHlsZT0zRCdmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiJDb3VyaWVyIE5ldyI7 Y29sPQpvcjojMzMzMzMzO2JhY2tncm91bmQ6d2hpdGUnPiZuYnNwOzwvc3Bhbj48L3NwYW4+PHNw YW4gc3R5bGU9M0QnY29sb3I6IzMzMzM9CjMzO2JhY2tncm91bmQ6d2hpdGUnPiwgZm9yIGV4YW1w bGUsPHNwYW4gY2xhc3M9M0RhcHBsZS1jb252ZXJ0ZWQtc3BhY2U+Jm5icz0KcDs8L3NwYW4+PC9z cGFuPjxjb2RlPjxzcGFuIHN0eWxlPTNEJ2ZvbnQtc2l6ZToxMS4wcHQ7Y29sb3I6IzMzMzMzMzti YWNrZ3JvPQp1bmQ6d2hpdGUnPlN0YXJ0ZWQ8L3NwYW4+PC9jb2RlPjxzcGFuIGNsYXNzPTNEYXBw bGUtY29udmVydGVkLXNwYWNlPjxzcGFuIHM9CnR5bGU9M0QnZm9udC1zaXplOjExLjBwdDtmb250 LWZhbWlseToiQ291cmllciBOZXciO2NvbG9yOiMzMzMzMzM7YmFja2dyb3VuZD0KOndoaXRlJz4m bmJzcDs8L3NwYW4+PC9zcGFuPjxzcGFuIHN0eWxlPTNEJ2NvbG9yOiMzMzMzMzM7YmFja2dyb3Vu ZDp3aGl0ZSc+PQosPHNwYW4gY2xhc3M9M0RhcHBsZS1jb252ZXJ0ZWQtc3BhY2U+Jm5ic3A7PC9z cGFuPjwvc3Bhbj48Y29kZT48c3BhbiBzdHlsZT0KPTNEJ2ZvbnQtc2l6ZToxMS4wcHQ7Y29sb3I6 IzMzMzMzMztiYWNrZ3JvdW5kOndoaXRlJz5TdG9wcGVkPC9zcGFuPjwvY29kZT48PQpzcGFuIHN0 eWxlPTNEJ2NvbG9yOiMzMzMzMzM7YmFja2dyb3VuZDp3aGl0ZSc+LCBhbmQgc28gb24sIGV4ZWN1 dGU8c3BhbiBjbGE9CnNzPTNEYXBwbGUtY29udmVydGVkLXNwYWNlPiZuYnNwOzwvc3Bhbj48L3Nw YW4+PGNvZGU+PHNwYW4gc3R5bGU9M0QnZm9udC1zaT0KemU6MTEuMHB0O2NvbG9yOiMzMzMzMzM7 YmFja2dyb3VuZDp3aGl0ZSc+Z2x1c3RlciB2b2x1bWUgaGVhbCBWT0xOQU1FIGdyYW51PQpsYXIt ZW50cnktaGVhbDwvc3Bhbj48L2NvZGU+PHNwYW4gY2xhc3M9M0RhcHBsZS1jb252ZXJ0ZWQtc3Bh Y2U+PHNwYW4gc3R5bGU9Cj0zRCdmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiJDb3VyaWVy IE5ldyI7Y29sb3I6IzMzMzMzMztiYWNrZ3JvdW5kOndoaT0KdGUnPiZuYnNwOzwvc3Bhbj48L3Nw YW4+PGNvZGU+PHNwYW4gc3R5bGU9M0QnZm9udC1zaXplOjkuNXB0O2NvbG9yOiMzMzMzMzMnPQo+ ZW5hYmxlIC8gZGlzYWJsZTwvc3Bhbj48L2NvZGU+PHNwYW4gY2xhc3M9M0RhcHBsZS1jb252ZXJ0 ZWQtc3BhY2U+PHNwYW4gc3Q9CnlsZT0zRCdjb2xvcjojMzMzMzMzO2JhY2tncm91bmQ6d2hpdGUn PiZuYnNwOzwvc3Bhbj48L3NwYW4+PHNwYW4gc3R5bGU9M0QnYz0Kb2xvcjojMzMzMzMzO2JhY2tn cm91bmQ6d2hpdGUnPmNvbW1hbmQgdG8gZW5hYmxlIG9yIGRpc2FibGUgZ3JhbnVsYXItZW50cnkt PQpoZWFsIG9wdGlvbi48L3NwYW4+PG86cD48L286cD48L3A+PHA+VGhhbmtzPG86cD48L286cD48 L3A+PHA+a2FzdHVyaTxvOnA+PC89Cm86cD48L3A+PC9kaXY+PC9ib2R5PjwvaHRtbD49CgotLV8w MDBfQkZBQjQwOTMzQjMzNjc0ODhDRTYyOTlCQUY4NTkyRDEwMTRFNTJDQzQzNTZTT0NSQVRFU2Fz bF8tLQo= --===============1948047754435108445==--