From vlaero at yahoo.com.au Fri Sep 6 01:03:05 2013 Content-Type: multipart/mixed; boundary="===============2385778130447575807==" MIME-Version: 1.0 From: Paul Jansen To: users at ovirt.org Subject: [Users] Support for VAAI SCSI primitives in ovirt? Date: Thu, 05 Sep 2013 22:03:03 -0700 Message-ID: <1378443783.30278.YahooMailNeo@web120601.mail.ne1.yahoo.com> --===============2385778130447575807== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable ---1504104896-31436369-1378443783=3D:30278 Content-Type: text/plain; charset=3Diso-8859-1 Content-Transfer-Encoding: quoted-printable Hello.=3D0AI've been following the progress of VAAI support being added to = th=3D e 'target-core' framework in the Linux kernel.=3D0ASupport for all 4 featur= es=3D did not make it into the recent 3.11 kernel release but is planned for 3.1= =3D 2.=3D0A=3D0AThere is some detail on VAAI (Vsphere APIs for Array Integratio= n) h=3D ere.=3D0AVAAI is obviously a VMware term, but the SCSI primitives it refers= t=3D o are open.=3D0AFrom the above linked page: "VAAI significantly enhances th= e =3D integration of storage and servers by =3D0Aenabling seamless offload of loc= ki=3D ng and block operations onto the =3D0Astorage array."=3D0A=3D0AIt seems rea= sonabl=3D e to assume that Fedora 20 (and probably Fedora 19 with a kernel update at = =3D some stage) will be using the 3.12 kernel and could be used to export iSCSI= =3D /FC targets to Ovirt.=3D0A=3D0AVMware also provides VAAI integration for NA= S da=3D tastores (via the installation of a vendor specific plugin into Vmware Vcen= =3D ter) that also significantly improves performance for some operations.=3D0A= =3D =3D0AFrom what I can make out from the VMware documentation the ability to = us=3D e the VAAI offloads only applies to the upper tier licensed version of vcen= =3D ter.=3DA0 I think there is an opportunity for Ovirt to add support for this= f=3D eature and make it stand out even against the freely licensed ESXi (which w= =3D ill be missing this feature).=3DA0 With more people looking to Ovirt rather= t=3D han getting started and potentially staying with VMware this is a good oppo= =3D rtunity to gather market share.=3D0A=3D0AWhat is the current status of supp= ort =3D for these VAAI scsi primitives in Ovirt?=3DA0 Is there anything planned at = th=3D e moment?=3D0ARegarding the VAAI NAS plugin feature that VMware now has - a= re=3D there plans to help offload certain operations happening on NFS datastores= =3D ?=3D0AFor instance some sort of agent that can be installed on a Linux NFS = se=3D rver could allow oVirt to instruct the NFS server machine to perform an off= =3D loaded copy/clone operation rather than that process needing to be done ove= =3D r the wire.=3D0A=3D0AThanks,=3D0APaul=3D0A ---1504104896-31436369-1378443783=3D:30278 Content-Type: text/html; charset=3Diso-8859-1 Content-Transfer-Encoding: quoted-printable
Hello.
I've b= =3D een following the progress of VAAI support being added to the 'target-core'= =3D framework in the Linux kernel.
Support for all 4 features did = =3D not make it into the recent 3.11 kernel release but is planned for 3.12.

There is= =3D some detail on VAAI (Vsphere APIs for Array Integration) h=3D ere.
VAAI is obviou= =3D sly a VMware term, but the SCSI primitives it refers to are open.
From the above linked page: "VAAI significantly enhances the integration of storage and servers by = =3D =3D0Aenabling seamless offload of locking and block operations onto the =3D= 0Ast=3D orage array."

It seems reasonable to assume that Fedora 20 (and p= =3D robably Fedora 19 with a kernel update at some stage) will be using the 3.1= =3D 2 kernel and could be used to export iSCSI/FC targets to Ovirt.

VMw= =3D are also provides VAAI integration for NAS datastores (via the installation of a ve= =3D ndor specific plugin into Vmware Vcenter) that also significantly improves = =3D performance for some operations.
From what I can make out from the = =3D VMware documentation the ability to use the VAAI offloads only applies to t= =3D he upper tier licensed version of vcenter.  I think there is an opport= =3D unity for Ovirt to add support for this feature and make it stand out even = =3D against the freely licensed ESXi (which will be missing this feature). = =3D ; With more people looking to Ovirt rather than getting started and potentially staying with VMware this is a good opportunity to gather marke= =3D t share.

What is the current status of support for these VAAI scsi = =3D primitives in Ovirt?  Is there anything planned at the moment?
Regarding the VAAI NAS plugin feature that = =3D VMware now has - are there plans to help offload certain operations happeni= =3D ng on NFS datastores?
For instan= =3D ce some sort of agent that can be installed on a Linux NFS server could all= =3D ow oVirt to instruct the NFS server machine to perform an offloaded copy/cl= =3D one operation rather than that process needing to be done over the wire.

Thanks,
Paul

---1504104896-31436369-1378443783=3D:30278-- --===============2385778130447575807== Content-Type: multipart/alternative MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.bin" LS0tMTUwNDEwNDg5Ni0zMTQzNjM2OS0xMzc4NDQzNzgzPTozMDI3OApDb250ZW50LVR5cGU6IHRl eHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBx dW90ZWQtcHJpbnRhYmxlCgpIZWxsby49MEFJJ3ZlIGJlZW4gZm9sbG93aW5nIHRoZSBwcm9ncmVz cyBvZiBWQUFJIHN1cHBvcnQgYmVpbmcgYWRkZWQgdG8gdGg9CmUgJ3RhcmdldC1jb3JlJyBmcmFt ZXdvcmsgaW4gdGhlIExpbnV4IGtlcm5lbC49MEFTdXBwb3J0IGZvciBhbGwgNCBmZWF0dXJlcz0K IGRpZCBub3QgbWFrZSBpdCBpbnRvIHRoZSByZWNlbnQgMy4xMSBrZXJuZWwgcmVsZWFzZSBidXQg aXMgcGxhbm5lZCBmb3IgMy4xPQoyLj0wQT0wQVRoZXJlIGlzIHNvbWUgZGV0YWlsIG9uIFZBQUkg KFZzcGhlcmUgQVBJcyBmb3IgQXJyYXkgSW50ZWdyYXRpb24pIGg9CmVyZS49MEFWQUFJIGlzIG9i dmlvdXNseSBhIFZNd2FyZSB0ZXJtLCBidXQgdGhlIFNDU0kgcHJpbWl0aXZlcyBpdCByZWZlcnMg dD0KbyBhcmUgb3Blbi49MEFGcm9tIHRoZSBhYm92ZSBsaW5rZWQgcGFnZTogIlZBQUkgc2lnbmlm aWNhbnRseSBlbmhhbmNlcyB0aGUgPQppbnRlZ3JhdGlvbiBvZiBzdG9yYWdlIGFuZCBzZXJ2ZXJz IGJ5ID0wQWVuYWJsaW5nIHNlYW1sZXNzIG9mZmxvYWQgb2YgbG9ja2k9Cm5nIGFuZCBibG9jayBv cGVyYXRpb25zIG9udG8gdGhlID0wQXN0b3JhZ2UgYXJyYXkuIj0wQT0wQUl0IHNlZW1zIHJlYXNv bmFibD0KZSB0byBhc3N1bWUgdGhhdCBGZWRvcmEgMjAgKGFuZCBwcm9iYWJseSBGZWRvcmEgMTkg d2l0aCBhIGtlcm5lbCB1cGRhdGUgYXQgPQpzb21lIHN0YWdlKSB3aWxsIGJlIHVzaW5nIHRoZSAz LjEyIGtlcm5lbCBhbmQgY291bGQgYmUgdXNlZCB0byBleHBvcnQgaVNDU0k9Ci9GQyB0YXJnZXRz IHRvIE92aXJ0Lj0wQT0wQVZNd2FyZSBhbHNvIHByb3ZpZGVzIFZBQUkgaW50ZWdyYXRpb24gZm9y IE5BUyBkYT0KdGFzdG9yZXMgKHZpYSB0aGUgaW5zdGFsbGF0aW9uIG9mIGEgdmVuZG9yIHNwZWNp ZmljIHBsdWdpbiBpbnRvIFZtd2FyZSBWY2VuPQp0ZXIpIHRoYXQgYWxzbyBzaWduaWZpY2FudGx5 IGltcHJvdmVzIHBlcmZvcm1hbmNlIGZvciBzb21lIG9wZXJhdGlvbnMuPTBBPQo9MEFGcm9tIHdo YXQgSSBjYW4gbWFrZSBvdXQgZnJvbSB0aGUgVk13YXJlIGRvY3VtZW50YXRpb24gdGhlIGFiaWxp dHkgdG8gdXM9CmUgdGhlIFZBQUkgb2ZmbG9hZHMgb25seSBhcHBsaWVzIHRvIHRoZSB1cHBlciB0 aWVyIGxpY2Vuc2VkIHZlcnNpb24gb2YgdmNlbj0KdGVyLj1BMCBJIHRoaW5rIHRoZXJlIGlzIGFu IG9wcG9ydHVuaXR5IGZvciBPdmlydCB0byBhZGQgc3VwcG9ydCBmb3IgdGhpcyBmPQplYXR1cmUg YW5kIG1ha2UgaXQgc3RhbmQgb3V0IGV2ZW4gYWdhaW5zdCB0aGUgZnJlZWx5IGxpY2Vuc2VkIEVT WGkgKHdoaWNoIHc9CmlsbCBiZSBtaXNzaW5nIHRoaXMgZmVhdHVyZSkuPUEwIFdpdGggbW9yZSBw ZW9wbGUgbG9va2luZyB0byBPdmlydCByYXRoZXIgdD0KaGFuIGdldHRpbmcgc3RhcnRlZCBhbmQg cG90ZW50aWFsbHkgc3RheWluZyB3aXRoIFZNd2FyZSB0aGlzIGlzIGEgZ29vZCBvcHBvPQpydHVu aXR5IHRvIGdhdGhlciBtYXJrZXQgc2hhcmUuPTBBPTBBV2hhdCBpcyB0aGUgY3VycmVudCBzdGF0 dXMgb2Ygc3VwcG9ydCA9CmZvciB0aGVzZSBWQUFJIHNjc2kgcHJpbWl0aXZlcyBpbiBPdmlydD89 QTAgSXMgdGhlcmUgYW55dGhpbmcgcGxhbm5lZCBhdCB0aD0KZSBtb21lbnQ/PTBBUmVnYXJkaW5n IHRoZSBWQUFJIE5BUyBwbHVnaW4gZmVhdHVyZSB0aGF0IFZNd2FyZSBub3cgaGFzIC0gYXJlPQog dGhlcmUgcGxhbnMgdG8gaGVscCBvZmZsb2FkIGNlcnRhaW4gb3BlcmF0aW9ucyBoYXBwZW5pbmcg b24gTkZTIGRhdGFzdG9yZXM9Cj89MEFGb3IgaW5zdGFuY2Ugc29tZSBzb3J0IG9mIGFnZW50IHRo YXQgY2FuIGJlIGluc3RhbGxlZCBvbiBhIExpbnV4IE5GUyBzZT0KcnZlciBjb3VsZCBhbGxvdyBv VmlydCB0byBpbnN0cnVjdCB0aGUgTkZTIHNlcnZlciBtYWNoaW5lIHRvIHBlcmZvcm0gYW4gb2Zm PQpsb2FkZWQgY29weS9jbG9uZSBvcGVyYXRpb24gcmF0aGVyIHRoYW4gdGhhdCBwcm9jZXNzIG5l ZWRpbmcgdG8gYmUgZG9uZSBvdmU9CnIgdGhlIHdpcmUuPTBBPTBBVGhhbmtzLD0wQVBhdWw9MEEK LS0tMTUwNDEwNDg5Ni0zMTQzNjM2OS0xMzc4NDQzNzgzPTozMDI3OApDb250ZW50LVR5cGU6IHRl eHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1 b3RlZC1wcmludGFibGUKCjxodG1sPjxib2R5PjxkaXYgc3R5bGU9M0QiY29sb3I6IzAwMDsgYmFj a2dyb3VuZC1jb2xvcjojZmZmOyBmb250LWZhbWlseTpsdT0KY2lkYSBjb25zb2xlLCBzYW5zLXNl cmlmO2ZvbnQtc2l6ZToxMnB0Ij48ZGl2PkhlbGxvLjwvZGl2PjxkaXY+PHNwYW4+SSd2ZSBiPQpl ZW4gZm9sbG93aW5nIHRoZSBwcm9ncmVzcyBvZiBWQUFJIHN1cHBvcnQgYmVpbmcgYWRkZWQgdG8g dGhlICd0YXJnZXQtY29yZSc9CiBmcmFtZXdvcmsgaW4gdGhlIExpbnV4IGtlcm5lbC48L3NwYW4+ PC9kaXY+PGRpdiBzdHlsZT0zRCJjb2xvcjogcmdiKDAsIDAsID0KMCk7IGZvbnQtc2l6ZTogMTZw eDsgZm9udC1mYW1pbHk6IGx1Y2lkYSBjb25zb2xlLHNhbnMtc2VyaWY7IGJhY2tncm91bmQtY29s PQpvcjogdHJhbnNwYXJlbnQ7IGZvbnQtc3R5bGU6IG5vcm1hbDsiPjxzcGFuPlN1cHBvcnQgZm9y IGFsbCA0IGZlYXR1cmVzIGRpZCA9Cm5vdCBtYWtlIGl0IGludG8gdGhlIHJlY2VudCAzLjExIGtl cm5lbCByZWxlYXNlIGJ1dCBpcyBwbGFubmVkIGZvciAzLjEyLjwvcz0KcGFuPjwvZGl2PjxkaXYg c3R5bGU9M0QiY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1zaXplOiAxNnB4OyBmb250LWZhbWls eTogPQpsdWNpZGEgY29uc29sZSxzYW5zLXNlcmlmOyBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3Bh cmVudDsgZm9udC1zdHlsZTogbm9ybWE9Cmw7Ij48YnI+PHNwYW4+PC9zcGFuPjwvZGl2PjxkaXYg Y2xhc3M9M0QieXVpXzNfN18yXzUyXzEzNzg0MzExODAyMDFfNjciIHN0eT0KbGU9M0QiY29sb3I6 IHJnYigwLCAwLCAwKTsgZm9udC1zaXplOiAxNnB4OyBmb250LWZhbWlseTogbHVjaWRhIGNvbnNv bGUsc2FuPQpzLXNlcmlmOyBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgZm9udC1zdHls ZTogbm9ybWFsOyI+PHNwYW4+VGhlcmUgaXM9CiBzb21lIGRldGFpbCBvbiBWQUFJIChWc3BoZXJl IEFQSXMgZm9yIEFycmF5IEludGVncmF0aW9uKSA8YQogaHJlZj0zRCJodHRwOi8vbGludXgtaXNj c2kub3JnL3dpa2kvVlN0b3JhZ2VfQVBJc19mb3JfQXJyYXlfSW50ZWdyYXRpb24iPmg9CmVyZTwv YT4uPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9M0QieXVpXzNfN18yXzUyXzEzNzg0MzExODAyMDFf NjciIHN0eWxlPTNEIj0KY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1zaXplOiAxNnB4OyBmb250 LWZhbWlseTogbHVjaWRhIGNvbnNvbGUsc2Fucy1zZXJpPQpmOyBiYWNrZ3JvdW5kLWNvbG9yOiB0 cmFuc3BhcmVudDsgZm9udC1zdHlsZTogbm9ybWFsOyI+PHNwYW4+VkFBSSBpcyBvYnZpb3U9CnNs eSBhIFZNd2FyZSB0ZXJtLCBidXQgdGhlIFNDU0kgcHJpbWl0aXZlcyBpdCByZWZlcnMgdG8gYXJl IG9wZW4uPC9zcGFuPjwvZD0KaXY+PGRpdiBjbGFzcz0zRCJ5dWlfM183XzJfNTJfMTM3ODQzMTE4 MDIwMV82NyIgc3R5bGU9M0QiY29sb3I6IHJnYigwLCAwLCAwPQopOyBmb250LXNpemU6IDE2cHg7 IGZvbnQtZmFtaWx5OiBsdWNpZGEgY29uc29sZSxzYW5zLXNlcmlmOyBiYWNrZ3JvdW5kLWNvbG89 CnI6IHRyYW5zcGFyZW50OyBmb250LXN0eWxlOiBub3JtYWw7Ij48c3Bhbj5Gcm9tIHRoZSBhYm92 ZSBsaW5rZWQgcGFnZTogIjwvcz0KcGFuPlZBQUkgc2lnbmlmaWNhbnRseSBlbmhhbmNlcyB0aGUg aW50ZWdyYXRpb24gb2Ygc3RvcmFnZSBhbmQgc2VydmVycyBieSA9Cj0wQWVuYWJsaW5nIHNlYW1s ZXNzIG9mZmxvYWQgb2YgbG9ja2luZyBhbmQgYmxvY2sgb3BlcmF0aW9ucyBvbnRvIHRoZSA9MEFz dD0Kb3JhZ2UgYXJyYXkuIjwvZGl2PjxkaXYgY2xhc3M9M0QieXVpXzNfN18yXzUyXzEzNzg0MzEx ODAyMDFfNjciIHN0eWxlPTNEImNvPQpsb3I6IHJnYigwLCAwLCAwKTsgZm9udC1zaXplOiAxNnB4 OyBmb250LWZhbWlseTogbHVjaWRhIGNvbnNvbGUsc2Fucy1zZXJpZjs9CiBiYWNrZ3JvdW5kLWNv bG9yOiB0cmFuc3BhcmVudDsgZm9udC1zdHlsZTogbm9ybWFsOyI+PGJyPjwvZGl2PjxkaXYgY2xh c3M9Cj0zRCJ5dWlfM183XzJfNTJfMTM3ODQzMTE4MDIwMV82NyIgc3R5bGU9M0QiY29sb3I6IHJn YigwLCAwLCAwKTsgZm9udC1zaXplOj0KIDE2cHg7IGZvbnQtZmFtaWx5OiBsdWNpZGEgY29uc29s ZSxzYW5zLXNlcmlmOyBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVuPQp0OyBmb250LXN0eWxl OiBub3JtYWw7Ij5JdCBzZWVtcyByZWFzb25hYmxlIHRvIGFzc3VtZSB0aGF0IEZlZG9yYSAyMCAo YW5kIHA9CnJvYmFibHkgRmVkb3JhIDE5IHdpdGggYSBrZXJuZWwgdXBkYXRlIGF0IHNvbWUgc3Rh Z2UpIHdpbGwgYmUgdXNpbmcgdGhlIDMuMT0KMiBrZXJuZWwgYW5kIGNvdWxkIGJlIHVzZWQgdG8g ZXhwb3J0IGlTQ1NJL0ZDIHRhcmdldHMgdG8gT3ZpcnQuPC9kaXY+PGRpdiBjPQpsYXNzPTNEInl1 aV8zXzdfMl81Ml8xMzc4NDMxMTgwMjAxXzY3IiBzdHlsZT0zRCJjb2xvcjogcmdiKDAsIDAsIDAp OyBmb250LXM9Cml6ZTogMTZweDsgZm9udC1mYW1pbHk6IGx1Y2lkYSBjb25zb2xlLHNhbnMtc2Vy aWY7IGJhY2tncm91bmQtY29sb3I6IHRyYW5zcD0KYXJlbnQ7IGZvbnQtc3R5bGU6IG5vcm1hbDsi Pjxicj48L2Rpdj48ZGl2IGNsYXNzPTNEInl1aV8zXzdfMl81Ml8xMzc4NDMxMTgwPQoyMDFfNjci IHN0eWxlPTNEImNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtc2l6ZTogMTZweDsgZm9udC1mYW1p bHk6IGx1Y2lkYSA9CmNvbnNvbGUsc2Fucy1zZXJpZjsgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNw YXJlbnQ7IGZvbnQtc3R5bGU6IG5vcm1hbDsiPlZNdz0KYXJlIGFsc28KIHByb3ZpZGVzIFZBQUkg aW50ZWdyYXRpb24gZm9yIE5BUyBkYXRhc3RvcmVzICh2aWEgdGhlIGluc3RhbGxhdGlvbiBvZiBh IHZlPQpuZG9yIHNwZWNpZmljIHBsdWdpbiBpbnRvIFZtd2FyZSBWY2VudGVyKSB0aGF0IGFsc28g c2lnbmlmaWNhbnRseSBpbXByb3ZlcyA9CnBlcmZvcm1hbmNlIGZvciBzb21lIG9wZXJhdGlvbnMu PC9kaXY+PGRpdiBjbGFzcz0zRCJ5dWlfM183XzJfNTJfMTM3ODQzMTE4MD0KMjAxXzY3IiBzdHls ZT0zRCJjb2xvcjogcmdiKDAsIDAsIDApOyBmb250LXNpemU6IDE2cHg7IGZvbnQtZmFtaWx5OiBs dWNpZGEgPQpjb25zb2xlLHNhbnMtc2VyaWY7IGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50 OyBmb250LXN0eWxlOiBub3JtYWw7Ij48YnI9Cj48L2Rpdj48ZGl2IGNsYXNzPTNEInl1aV8zXzdf Ml81Ml8xMzc4NDMxMTgwMjAxXzY3IiBzdHlsZT0zRCJjb2xvcjogcmdiKDAsID0KMCwgMCk7IGZv bnQtc2l6ZTogMTZweDsgZm9udC1mYW1pbHk6IGx1Y2lkYSBjb25zb2xlLHNhbnMtc2VyaWY7IGJh Y2tncm91bmQtPQpjb2xvcjogdHJhbnNwYXJlbnQ7IGZvbnQtc3R5bGU6IG5vcm1hbDsiPkZyb20g d2hhdCBJIGNhbiBtYWtlIG91dCBmcm9tIHRoZSA9ClZNd2FyZSBkb2N1bWVudGF0aW9uIHRoZSBh YmlsaXR5IHRvIHVzZSB0aGUgVkFBSSBvZmZsb2FkcyBvbmx5IGFwcGxpZXMgdG8gdD0KaGUgdXBw ZXIgdGllciBsaWNlbnNlZCB2ZXJzaW9uIG9mIHZjZW50ZXIuJm5ic3A7IEkgdGhpbmsgdGhlcmUg aXMgYW4gb3Bwb3J0PQp1bml0eSBmb3IgT3ZpcnQgdG8gYWRkIHN1cHBvcnQgZm9yIHRoaXMgZmVh dHVyZSBhbmQgbWFrZSBpdCBzdGFuZCBvdXQgZXZlbiA9CmFnYWluc3QgdGhlIGZyZWVseSBsaWNl bnNlZCBFU1hpICh3aGljaCB3aWxsIGJlIG1pc3NpbmcgdGhpcyBmZWF0dXJlKS4mbmJzcD0KOyBX aXRoIG1vcmUgcGVvcGxlIGxvb2tpbmcgdG8gT3ZpcnQgcmF0aGVyIHRoYW4gZ2V0dGluZyBzdGFy dGVkIGFuZAogcG90ZW50aWFsbHkgc3RheWluZyB3aXRoIFZNd2FyZSB0aGlzIGlzIGEgZ29vZCBv cHBvcnR1bml0eSB0byBnYXRoZXIgbWFya2U9CnQgc2hhcmUuPC9kaXY+PGRpdiBjbGFzcz0zRCJ5 dWlfM183XzJfNTJfMTM3ODQzMTE4MDIwMV82NyIgc3R5bGU9M0QiY29sb3I6ID0KcmdiKDAsIDAs IDApOyBmb250LXNpemU6IDE2cHg7IGZvbnQtZmFtaWx5OiBsdWNpZGEgY29uc29sZSxzYW5zLXNl cmlmOyBiYWNrPQpncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyBmb250LXN0eWxlOiBub3JtYWw7 Ij48YnI+PC9kaXY+PGRpdiBjbGFzcz0zRCJ5dWk9Cl8zXzdfMl81Ml8xMzc4NDMxMTgwMjAxXzY3 IiBzdHlsZT0zRCJjb2xvcjogcmdiKDAsIDAsIDApOyBmb250LXNpemU6IDE2cHg7ID0KZm9udC1m YW1pbHk6IGx1Y2lkYSBjb25zb2xlLHNhbnMtc2VyaWY7IGJhY2tncm91bmQtY29sb3I6IHRyYW5z cGFyZW50OyBmb250PQotc3R5bGU6IG5vcm1hbDsiPldoYXQgaXMgdGhlIGN1cnJlbnQgc3RhdHVz IG9mIHN1cHBvcnQgZm9yIHRoZXNlIFZBQUkgc2NzaSA9CnByaW1pdGl2ZXMgaW4gT3ZpcnQ/Jm5i c3A7IElzIHRoZXJlIGFueXRoaW5nIHBsYW5uZWQgYXQgdGhlIG1vbWVudD88L2Rpdj48ZD0KaXYg Y2xhc3M9M0QieXVpXzNfN18yXzUyXzEzNzg0MzExODAyMDFfNjciIHN0eWxlPTNEImNvbG9yOiBy Z2IoMCwgMCwgMCk7IGZvPQpudC1zaXplOiAxNnB4OyBmb250LWZhbWlseTogbHVjaWRhIGNvbnNv bGUsc2Fucy1zZXJpZjsgYmFja2dyb3VuZC1jb2xvcjogdHI9CmFuc3BhcmVudDsgZm9udC1zdHls ZTogbm9ybWFsOyI+UmVnYXJkaW5nIHRoZSBWQUFJIE5BUyBwbHVnaW4gZmVhdHVyZSB0aGF0ID0K Vk13YXJlIG5vdyBoYXMgLSBhcmUgdGhlcmUgcGxhbnMgdG8gaGVscCBvZmZsb2FkIGNlcnRhaW4g b3BlcmF0aW9ucyBoYXBwZW5pPQpuZyBvbiBORlMgZGF0YXN0b3Jlcz88L2Rpdj48ZGl2IGNsYXNz PTNEInl1aV8zXzdfMl81Ml8xMzc4NDMxMTgwMjAxXzY3Igogc3R5bGU9M0QiY29sb3I6IHJnYigw LCAwLCAwKTsgZm9udC1zaXplOiAxNnB4OyBmb250LWZhbWlseTogbHVjaWRhIGNvbnNvbGU9Cixz YW5zLXNlcmlmOyBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgZm9udC1zdHlsZTogbm9y bWFsOyI+Rm9yIGluc3Rhbj0KY2Ugc29tZSBzb3J0IG9mIGFnZW50IHRoYXQgY2FuIGJlIGluc3Rh bGxlZCBvbiBhIExpbnV4IE5GUyBzZXJ2ZXIgY291bGQgYWxsPQpvdyBvVmlydCB0byBpbnN0cnVj dCB0aGUgTkZTIHNlcnZlciBtYWNoaW5lIHRvIHBlcmZvcm0gYW4gb2ZmbG9hZGVkIGNvcHkvY2w9 Cm9uZSBvcGVyYXRpb24gcmF0aGVyIHRoYW4gdGhhdCBwcm9jZXNzIG5lZWRpbmcgdG8gYmUgZG9u ZSBvdmVyIHRoZSB3aXJlLjwvZD0KaXY+PGRpdiBjbGFzcz0zRCJ5dWlfM183XzJfNTJfMTM3ODQz MTE4MDIwMV82NyIgc3R5bGU9M0QiY29sb3I6IHJnYigwLCAwLCAwPQopOyBmb250LXNpemU6IDE2 cHg7IGZvbnQtZmFtaWx5OiBsdWNpZGEgY29uc29sZSxzYW5zLXNlcmlmOyBiYWNrZ3JvdW5kLWNv bG89CnI6IHRyYW5zcGFyZW50OyBmb250LXN0eWxlOiBub3JtYWw7Ij48YnI+PC9kaXY+PGRpdiBj bGFzcz0zRCJ5dWlfM183XzJfNTJfMT0KMzc4NDMxMTgwMjAxXzY3IiBzdHlsZT0zRCJjb2xvcjog cmdiKDAsIDAsIDApOyBmb250LXNpemU6IDE2cHg7IGZvbnQtZmFtaWx5PQo6IGx1Y2lkYSBjb25z b2xlLHNhbnMtc2VyaWY7IGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyBmb250LXN0eWxl OiBub3I9Cm1hbDsiPlRoYW5rcyw8L2Rpdj48ZGl2IGNsYXNzPTNEInl1aV8zXzdfMl81Ml8xMzc4 NDMxMTgwMjAxXzY3IiBzdHlsZT0zRCJjbz0KbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtc2l6ZTog MTZweDsgZm9udC1mYW1pbHk6IGx1Y2lkYSBjb25zb2xlLHNhbnMtc2VyaWY7PQogYmFja2dyb3Vu ZC1jb2xvcjogdHJhbnNwYXJlbnQ7IGZvbnQtc3R5bGU6IG5vcm1hbDsiPlBhdWw8L2Rpdj48ZGl2 IHN0eWxlPQo9M0QiY29sb3I6CiByZ2IoMCwgMCwgMCk7IGZvbnQtc2l6ZTogMTZweDsgZm9udC1m YW1pbHk6IGx1Y2lkYSBjb25zb2xlLHNhbnMtc2VyaWY7IGJhYz0Ka2dyb3VuZC1jb2xvcjogdHJh bnNwYXJlbnQ7IGZvbnQtc3R5bGU6IG5vcm1hbDsiPjxicj48L2Rpdj48L2Rpdj48L2JvZHk+PC9o PQp0bWw+Ci0tLTE1MDQxMDQ4OTYtMzE0MzYzNjktMTM3ODQ0Mzc4Mz06MzAyNzgtLQo= --===============2385778130447575807==--