From fabrice.bacchella at orange.fr Thu Apr 6 13:49:52 2017 Content-Type: multipart/mixed; boundary="===============1367572551388108549==" MIME-Version: 1.0 From: Fabrice Bacchella To: users at ovirt.org Subject: Re: [ovirt-users] SKD4 Date: Thu, 06 Apr 2017 15:49:50 +0200 Message-ID: <66073980-D901-4888-A590-F52C38AE62DC@orange.fr> In-Reply-To: CAJgorsYiBrcUFADJ9MTTk=1vS9-Mbp6hksRzJ2dfCFcmEckyOw@mail.gmail.com --===============1367572551388108549== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable --Apple-Mail=3D_E9D80E67-7974-4602-8A67-05FD8FEC3A98 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=3Dutf-8 > Le 6 avr. 2017 =3DC3=3DA0 15:32, Yaniv Kaul a =3DC3= =3DA9crit =3D : >=3D20 >=3D20 >=3D20 > On Thu, Apr 6, 2017 at 3:58 PM, Fabrice Bacchella =3D > =3D wrote: > Yes I'm starting to understand that thinking about migrating code is =3D pointless. >=3D20 > The old skd3 code is just good to be thrown away. There is no hope =3D thinking about "migrating code". And as it's just a thin layer around =3D REST calls, it's up to us to try to make something usable around that. =3D So I expect a lot of sweat and tears to adapt my existing code. >=3D20 > Well, yes and no. Yes, it's not smooth, but once you 'get' the idea =3D behind the v4 API philosophy, it's quite easy to write to (at least in =3D Python). An example of code that I'm unhappy to write and that a good sdk should =3D have provided: searchfilter =3D3D "%s=3D3D%s" % (type, value) vm =3D3D vms_service.list(search=3D3D searchfilter)[0] instead of : vms_service.list(search=3D3D {type: value})[0] or even better: vms_service.get(**{type: value}) --Apple-Mail=3D_E9D80E67-7974-4602-8A67-05FD8FEC3A98 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=3Dutf-8
Le 6 avr. 2017 =3DC3=3DA0 15:32, Yaniv Kaul <ykaul(a)redhat.com>= ; a =3D =3DC3=3DA9crit :



On Th= u, =3D Apr 6, 2017 at 3:58 PM, Fabrice Bacchella <fabrice.bacchella(a)orange.fr> =3D wrote:
Yes I'm starting to understand that thinking about migrating = =3D code is pointless.

The=3D old skd3 code is just good to be thrown away. There is no hope thinking = =3D about "migrating code". And as it's just a thin layer around REST calls, = =3D it's up to us to try to make something usable around that. So I expect a = =3D lot of sweat and tears to adapt my existing =3D code.

Well, yes and no. Yes, it's not smooth, but once you 'get' =3D the idea behind the v4 API philosophy, it's quite easy to write to (at =3D least in Python).

An example of code that I'm unhappy to write and = =3D that a good sdk should have provided:

searchfilter =3D3D "%s=3D3D%s" % (type, =3D value)
vm = =3D =3D3D =3D vms_service.list(search=3D3D searchfilter)[0]

instead of :
vms_service.list(search=3D3D {type: value})[0]

or even better:
vms_service.get(**{type= :=3D value})



=3D --Apple-Mail=3D_E9D80E67-7974-4602-8A67-05FD8FEC3A98-- --===============1367572551388108549== Content-Type: multipart/alternative MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.bin" Ci0tQXBwbGUtTWFpbD1fRTlEODBFNjctNzk3NC00NjAyLThBNjctMDVGRDhGRUMzQTk4CkNvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0 L3BsYWluOwoJY2hhcnNldD11dGYtOAoKCj4gTGUgNiBhdnIuIDIwMTcgPUMzPUEwIDE1OjMyLCBZ YW5pdiBLYXVsIDx5a2F1bEByZWRoYXQuY29tPiBhID1DMz1BOWNyaXQgPQo6Cj49MjAKPj0yMAo+ PTIwCj4gT24gVGh1LCBBcHIgNiwgMjAxNyBhdCAzOjU4IFBNLCBGYWJyaWNlIEJhY2NoZWxsYSA9 CjxmYWJyaWNlLmJhY2NoZWxsYUBvcmFuZ2UuZnIgPG1haWx0bzpmYWJyaWNlLmJhY2NoZWxsYUBv cmFuZ2UuZnI+PiA9Cndyb3RlOgo+IFllcyBJJ20gc3RhcnRpbmcgdG8gdW5kZXJzdGFuZCB0aGF0 IHRoaW5raW5nIGFib3V0IG1pZ3JhdGluZyBjb2RlIGlzID0KcG9pbnRsZXNzLgo+PTIwCj4gVGhl IG9sZCBza2QzIGNvZGUgaXMganVzdCBnb29kIHRvIGJlIHRocm93biBhd2F5LiBUaGVyZSBpcyBu byBob3BlID0KdGhpbmtpbmcgYWJvdXQgIm1pZ3JhdGluZyBjb2RlIi4gQW5kIGFzIGl0J3MganVz dCBhIHRoaW4gbGF5ZXIgYXJvdW5kID0KUkVTVCBjYWxscywgaXQncyB1cCB0byB1cyB0byB0cnkg dG8gbWFrZSBzb21ldGhpbmcgdXNhYmxlIGFyb3VuZCB0aGF0LiA9ClNvIEkgZXhwZWN0IGEgbG90 IG9mIHN3ZWF0IGFuZCB0ZWFycyB0byBhZGFwdCBteSBleGlzdGluZyBjb2RlLgo+PTIwCj4gV2Vs bCwgeWVzIGFuZCBuby4gWWVzLCBpdCdzIG5vdCBzbW9vdGgsIGJ1dCBvbmNlIHlvdSAnZ2V0JyB0 aGUgaWRlYSA9CmJlaGluZCB0aGUgdjQgQVBJIHBoaWxvc29waHksIGl0J3MgcXVpdGUgZWFzeSB0 byB3cml0ZSB0byAoYXQgbGVhc3QgaW4gPQpQeXRob24pLgoKQW4gZXhhbXBsZSBvZiBjb2RlIHRo YXQgSSdtIHVuaGFwcHkgdG8gd3JpdGUgYW5kIHRoYXQgYSBnb29kIHNkayBzaG91bGQgPQpoYXZl IHByb3ZpZGVkOgoKc2VhcmNoZmlsdGVyID0zRCAiJXM9M0QlcyIgJSAodHlwZSwgdmFsdWUpCnZt ID0zRCB2bXNfc2VydmljZS5saXN0KHNlYXJjaD0zRCBzZWFyY2hmaWx0ZXIpWzBdCgppbnN0ZWFk IG9mIDoKdm1zX3NlcnZpY2UubGlzdChzZWFyY2g9M0Qge3R5cGU6IHZhbHVlfSlbMF0KCm9yIGV2 ZW4gYmV0dGVyOgp2bXNfc2VydmljZS5nZXQoKip7dHlwZTogdmFsdWV9KQoKCgoKLS1BcHBsZS1N YWlsPV9FOUQ4MEU2Ny03OTc0LTQ2MDItOEE2Ny0wNUZEOEZFQzNBOTgKQ29udGVudC1UcmFuc2Zl ci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsKCWNo YXJzZXQ9dXRmLTgKCjxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9M0QiQ29udGVudC1UeXBl IiBjb250ZW50PTNEInRleHQvaHRtbCA9CmNoYXJzZXQ9M0R1dGYtOCI+PC9oZWFkPjxib2R5IHN0 eWxlPTNEIndvcmQtd3JhcDogYnJlYWstd29yZDsgPQotd2Via2l0LW5ic3AtbW9kZTogc3BhY2U7 IC13ZWJraXQtbGluZS1icmVhazogYWZ0ZXItd2hpdGUtc3BhY2U7IiA9CmNsYXNzPTNEIiI+PGJy IGNsYXNzPTNEIiI+PGRpdj48YmxvY2txdW90ZSB0eXBlPTNEImNpdGUiIGNsYXNzPTNEIiI+PGRp diA9CmNsYXNzPTNEIiI+TGUgNiBhdnIuIDIwMTcgPUMzPUEwIDE1OjMyLCBZYW5pdiBLYXVsICZs dDs8YSA9CmhyZWY9M0QibWFpbHRvOnlrYXVsQHJlZGhhdC5jb20iIGNsYXNzPTNEIiI+eWthdWxA cmVkaGF0LmNvbTwvYT4mZ3Q7IGEgPQo9QzM9QTljcml0IDo8L2Rpdj48YnIgY2xhc3M9M0QiQXBw bGUtaW50ZXJjaGFuZ2UtbmV3bGluZSI+PGRpdiA9CmNsYXNzPTNEIiI+PGRpdiBkaXI9M0QibHRy IiBjbGFzcz0zRCIiPjxiciBjbGFzcz0zRCIiPjxkaXYgPQpjbGFzcz0zRCJnbWFpbF9leHRyYSI+ PGJyIGNsYXNzPTNEIiI+PGRpdiBjbGFzcz0zRCJnbWFpbF9xdW90ZSI+T24gVGh1LCA9CkFwciA2 LCAyMDE3IGF0IDM6NTggUE0sIEZhYnJpY2UgQmFjY2hlbGxhIDxzcGFuIGRpcj0zRCJsdHIiID0K Y2xhc3M9M0QiIj4mbHQ7PGEgaHJlZj0zRCJtYWlsdG86ZmFicmljZS5iYWNjaGVsbGFAb3Jhbmdl LmZyIiA9CnRhcmdldD0zRCJfYmxhbmsiIGNsYXNzPTNEIiI+ZmFicmljZS5iYWNjaGVsbGFAb3Jh bmdlLmZyPC9hPiZndDs8L3NwYW4+ID0Kd3JvdGU6PGJyIGNsYXNzPTNEIiI+PGJsb2NrcXVvdGUg Y2xhc3M9M0QiZ21haWxfcXVvdGUiIHN0eWxlPTNEIm1hcmdpbjowcHg9CiAwcHggMHB4IDAuOGV4 O2JvcmRlci1sZWZ0OjFweCBzb2xpZCA9CnJnYigyMDQsMjA0LDIwNCk7cGFkZGluZy1sZWZ0OjFl eCI+PGRpdiBzdHlsZT0zRCJ3b3JkLXdyYXA6YnJlYWstd29yZCIgPQpjbGFzcz0zRCIiPlllcyBJ J20gc3RhcnRpbmcgdG8gdW5kZXJzdGFuZCB0aGF0IHRoaW5raW5nIGFib3V0IG1pZ3JhdGluZyA9 CmNvZGUgaXMgcG9pbnRsZXNzLjxkaXYgY2xhc3M9M0QiIj48YnIgY2xhc3M9M0QiIj48L2Rpdj48 ZGl2IGNsYXNzPTNEIiI+VGhlPQogb2xkIHNrZDMgY29kZSBpcyBqdXN0IGdvb2QgdG8gYmUgdGhy b3duIGF3YXkuIFRoZXJlIGlzIG5vIGhvcGUgdGhpbmtpbmcgPQphYm91dCAibWlncmF0aW5nIGNv ZGUiLiBBbmQgYXMgaXQncyBqdXN0IGEgdGhpbiBsYXllciBhcm91bmQgUkVTVCBjYWxscywgPQpp dCdzIHVwIHRvIHVzIHRvIHRyeSB0byBtYWtlIHNvbWV0aGluZyB1c2FibGUgYXJvdW5kIHRoYXQu IFNvIEkgZXhwZWN0IGEgPQpsb3Qgb2Ygc3dlYXQgYW5kIHRlYXJzIHRvIGFkYXB0IG15IGV4aXN0 aW5nID0KY29kZS48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PGRpdiBjbGFzcz0zRCIiPjxiciBj bGFzcz0zRCIiPjwvZGl2PjxkaXYgPQpjbGFzcz0zRCIiPldlbGwsIHllcyBhbmQgbm8uIFllcywg aXQncyBub3Qgc21vb3RoLCBidXQgb25jZSB5b3UgJ2dldCcgPQp0aGUgaWRlYSBiZWhpbmQgdGhl IHY0IEFQSSBwaGlsb3NvcGh5LCBpdCdzIHF1aXRlIGVhc3kgdG8gd3JpdGUgdG8gKGF0ID0KbGVh c3QgaW4gUHl0aG9uKS48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+ PGJyID0KY2xhc3M9M0QiIj48L2Rpdj48ZGl2PkFuIGV4YW1wbGUgb2YgY29kZSB0aGF0IEknbSB1 bmhhcHB5IHRvIHdyaXRlIGFuZCA9CnRoYXQgYSBnb29kIHNkayBzaG91bGQgaGF2ZSBwcm92aWRl ZDo8L2Rpdj48ZGl2PjxiciA9CmNsYXNzPTNEIiI+PC9kaXY+PGRpdj5zZWFyY2hmaWx0ZXIgPTNE ICIlcz0zRCVzIiAlICh0eXBlLCA9CnZhbHVlKTwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9M0QiY29s b3I6IHJnYigzNiwgNDEsIDQ2KTsgZm9udC1mYW1pbHk6ID0KU0ZNb25vLVJlZ3VsYXIsIENvbnNv bGFzLCAnTGliZXJhdGlvbiBNb25vJywgTWVubG8sIENvdXJpZXIsIG1vbm9zcGFjZTsgPQp3aGl0 ZS1zcGFjZTogcHJlOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IiBjbGFz cz0zRCIiPnZtID0KPC9zcGFuPjxzcGFuIGNsYXNzPTNEInBsLWsiIHN0eWxlPTNEImJveC1zaXpp bmc6IGJvcmRlci1ib3g7IGNvbG9yOiA9CnJnYigxNjcsIDI5LCA5Myk7IGZvbnQtZmFtaWx5OiBT Rk1vbm8tUmVndWxhciwgQ29uc29sYXMsICdMaWJlcmF0aW9uID0KTW9ubycsIE1lbmxvLCBDb3Vy aWVyLCBtb25vc3BhY2U7IHdoaXRlLXNwYWNlOiBwcmU7Ij49M0Q8L3NwYW4+PHNwYW4gPQpzdHls ZT0zRCJjb2xvcjogcmdiKDM2LCA0MSwgNDYpOyBmb250LWZhbWlseTogU0ZNb25vLVJlZ3VsYXIs IENvbnNvbGFzLCA9CidMaWJlcmF0aW9uIE1vbm8nLCBNZW5sbywgQ291cmllciwgbW9ub3NwYWNl OyB3aGl0ZS1zcGFjZTogcHJlOyA9CmJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgMjU1 KTsiIGNsYXNzPTNEIiI+ID0Kdm1zX3NlcnZpY2UubGlzdCg8L3NwYW4+PHNwYW4gY2xhc3M9M0Qi cGwtdiIgc3R5bGU9M0QiYm94LXNpemluZzogPQpib3JkZXItYm94OyBjb2xvcjogcmdiKDIzNywg MTA2LCA2Nyk7IGZvbnQtZmFtaWx5OiBTRk1vbm8tUmVndWxhciwgPQpDb25zb2xhcywgJ0xpYmVy YXRpb24gTW9ubycsIE1lbmxvLCBDb3VyaWVyLCBtb25vc3BhY2U7IHdoaXRlLXNwYWNlOiA9CnBy ZTsiPnNlYXJjaDwvc3Bhbj48c3BhbiBjbGFzcz0zRCJwbC1rIiBzdHlsZT0zRCJib3gtc2l6aW5n OiBib3JkZXItYm94OyA9CmNvbG9yOiByZ2IoMTY3LCAyOSwgOTMpOyBmb250LWZhbWlseTogU0ZN b25vLVJlZ3VsYXIsIENvbnNvbGFzLCA9CidMaWJlcmF0aW9uIE1vbm8nLCBNZW5sbywgQ291cmll ciwgbW9ub3NwYWNlOyB3aGl0ZS1zcGFjZTogPQpwcmU7Ij49M0Q8L3NwYW4+Jm5ic3A7c2VhcmNo ZmlsdGVyPHNwYW4gc3R5bGU9M0QiY29sb3I6IHJnYigzNiwgNDEsIDQ2KTsgPQpmb250LWZhbWls eTogU0ZNb25vLVJlZ3VsYXIsIENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgTWVubG8sID0K Q291cmllciwgbW9ub3NwYWNlOyB3aGl0ZS1zcGFjZTogcHJlOyBiYWNrZ3JvdW5kLWNvbG9yOiBy Z2IoMjU1LCAyNTUsID0KMjU1KTsiIGNsYXNzPTNEIiI+KVs8L3NwYW4+PHNwYW4gY2xhc3M9M0Qi cGwtYzEiIHN0eWxlPTNEImJveC1zaXppbmc6ID0KYm9yZGVyLWJveDsgY29sb3I6IHJnYigwLCAx MzQsIDE3OSk7IGZvbnQtZmFtaWx5OiBTRk1vbm8tUmVndWxhciwgPQpDb25zb2xhcywgJ0xpYmVy YXRpb24gTW9ubycsIE1lbmxvLCBDb3VyaWVyLCBtb25vc3BhY2U7IHdoaXRlLXNwYWNlOiA9CnBy ZTsiPjA8L3NwYW4+PHNwYW4gc3R5bGU9M0QiY29sb3I6IHJnYigzNiwgNDEsIDQ2KTsgZm9udC1m YW1pbHk6ID0KU0ZNb25vLVJlZ3VsYXIsIENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgTWVu bG8sIENvdXJpZXIsIG1vbm9zcGFjZTsgPQp3aGl0ZS1zcGFjZTogcHJlOyBiYWNrZ3JvdW5kLWNv bG9yOiByZ2IoMjU1LCAyNTUsIDI1NSk7IiA9CmNsYXNzPTNEIiI+XTwvc3Bhbj48L2Rpdj48ZGl2 PjxzcGFuIHN0eWxlPTNEImNvbG9yOiByZ2IoMzYsIDQxLCA0Nik7ID0KZm9udC1mYW1pbHk6IFNG TW9uby1SZWd1bGFyLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIE1lbmxvLCA9CkNvdXJp ZXIsIG1vbm9zcGFjZTsgd2hpdGUtc3BhY2U6IHByZTsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1 NSwgMjU1LCA9CjI1NSk7IiBjbGFzcz0zRCIiPjxiciBjbGFzcz0zRCIiPjwvc3Bhbj48L2Rpdj48 ZGl2PjxzcGFuIHN0eWxlPTNEImNvbG9yOiA9CnJnYigzNiwgNDEsIDQ2KTsgZm9udC1mYW1pbHk6 IFNGTW9uby1SZWd1bGFyLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gPQpNb25vJywgTWVubG8sIENv dXJpZXIsIG1vbm9zcGFjZTsgd2hpdGUtc3BhY2U6IHByZTsgYmFja2dyb3VuZC1jb2xvcjogPQpy Z2IoMjU1LCAyNTUsIDI1NSk7IiBjbGFzcz0zRCIiPmluc3RlYWQgb2YgOjwvc3Bhbj48L2Rpdj48 ZGl2PjxzcGFuID0Kc3R5bGU9M0QiY29sb3I6IHJnYigzNiwgNDEsIDQ2KTsgZm9udC1mYW1pbHk6 IFNGTW9uby1SZWd1bGFyLCBDb25zb2xhcywgPQonTGliZXJhdGlvbiBNb25vJywgTWVubG8sIENv dXJpZXIsIG1vbm9zcGFjZTsgd2hpdGUtc3BhY2U6IHByZTsgPQpiYWNrZ3JvdW5kLWNvbG9yOiBy Z2IoMjU1LCAyNTUsIDI1NSk7IiA9CmNsYXNzPTNEIiI+dm1zX3NlcnZpY2UubGlzdCg8L3NwYW4+ PHNwYW4gY2xhc3M9M0QicGwtdiIgPQpzdHlsZT0zRCJib3gtc2l6aW5nOiBib3JkZXItYm94OyBj b2xvcjogcmdiKDIzNywgMTA2LCA2Nyk7IGZvbnQtZmFtaWx5OiA9ClNGTW9uby1SZWd1bGFyLCBD b25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIE1lbmxvLCBDb3VyaWVyLCBtb25vc3BhY2U7ID0K d2hpdGUtc3BhY2U6IHByZTsiPnNlYXJjaDwvc3Bhbj48c3BhbiBjbGFzcz0zRCJwbC1rIiBzdHls ZT0zRCJib3gtc2l6aW5nOiA9CmJvcmRlci1ib3g7IGNvbG9yOiByZ2IoMTY3LCAyOSwgOTMpOyBm b250LWZhbWlseTogU0ZNb25vLVJlZ3VsYXIsID0KQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8n LCBNZW5sbywgQ291cmllciwgbW9ub3NwYWNlOyB3aGl0ZS1zcGFjZTogPQpwcmU7Ij49M0Q8L3Nw YW4+Jm5ic3A7e3R5cGU6IHZhbHVlfTxzcGFuIHN0eWxlPTNEImNvbG9yOiByZ2IoMzYsIDQxLCA9 CjQ2KTsgZm9udC1mYW1pbHk6IFNGTW9uby1SZWd1bGFyLCBDb25zb2xhcywgJ0xpYmVyYXRpb24g TW9ubycsIE1lbmxvLCA9CkNvdXJpZXIsIG1vbm9zcGFjZTsgd2hpdGUtc3BhY2U6IHByZTsgYmFj a2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCA9CjI1NSk7IiBjbGFzcz0zRCIiPilbPC9zcGFu PjxzcGFuIGNsYXNzPTNEInBsLWMxIiBzdHlsZT0zRCJib3gtc2l6aW5nOiA9CmJvcmRlci1ib3g7 IGNvbG9yOiByZ2IoMCwgMTM0LCAxNzkpOyBmb250LWZhbWlseTogU0ZNb25vLVJlZ3VsYXIsID0K Q29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8nLCBNZW5sbywgQ291cmllciwgbW9ub3NwYWNlOyB3 aGl0ZS1zcGFjZTogPQpwcmU7Ij4wPC9zcGFuPjxzcGFuIHN0eWxlPTNEImNvbG9yOiByZ2IoMzYs IDQxLCA0Nik7IGZvbnQtZmFtaWx5OiA9ClNGTW9uby1SZWd1bGFyLCBDb25zb2xhcywgJ0xpYmVy YXRpb24gTW9ubycsIE1lbmxvLCBDb3VyaWVyLCBtb25vc3BhY2U7ID0Kd2hpdGUtc3BhY2U6IHBy ZTsgYmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyIgPQpjbGFzcz0zRCIiPl08 L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0zRCJjb2xvcjogcmdiKDM2LCA0MSwgNDYpOyA9 CmZvbnQtZmFtaWx5OiBTRk1vbm8tUmVndWxhciwgQ29uc29sYXMsICdMaWJlcmF0aW9uIE1vbm8n LCBNZW5sbywgPQpDb3VyaWVyLCBtb25vc3BhY2U7IHdoaXRlLXNwYWNlOiBwcmU7IGJhY2tncm91 bmQtY29sb3I6IHJnYigyNTUsIDI1NSwgPQoyNTUpOyIgY2xhc3M9M0QiIj48YnIgY2xhc3M9M0Qi Ij48L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0zRCJjb2xvcjogPQpyZ2IoMzYsIDQxLCA0 Nik7IGZvbnQtZmFtaWx5OiBTRk1vbm8tUmVndWxhciwgQ29uc29sYXMsICdMaWJlcmF0aW9uID0K TW9ubycsIE1lbmxvLCBDb3VyaWVyLCBtb25vc3BhY2U7IHdoaXRlLXNwYWNlOiBwcmU7IGJhY2tn cm91bmQtY29sb3I6ID0KcmdiKDI1NSwgMjU1LCAyNTUpOyIgY2xhc3M9M0QiIj5vciBldmVuIGJl dHRlcjo8L3NwYW4+PC9kaXY+PGRpdj48c3BhbiA9CnN0eWxlPTNEImNvbG9yOiByZ2IoMzYsIDQx LCA0Nik7IGZvbnQtZmFtaWx5OiBTRk1vbm8tUmVndWxhciwgQ29uc29sYXMsID0KJ0xpYmVyYXRp b24gTW9ubycsIE1lbmxvLCBDb3VyaWVyLCBtb25vc3BhY2U7IHdoaXRlLXNwYWNlOiBwcmU7ID0K YmFja2dyb3VuZC1jb2xvcjogcmdiKDI1NSwgMjU1LCAyNTUpOyIgY2xhc3M9M0QiIj52bXNfc2Vy dmljZS5nZXQoKip7dHlwZTo9CiB2YWx1ZX0pPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9 M0QiY29sb3I6IHJnYigzNiwgNDEsIDQ2KTsgPQpmb250LWZhbWlseTogU0ZNb25vLVJlZ3VsYXIs IENvbnNvbGFzLCAnTGliZXJhdGlvbiBNb25vJywgTWVubG8sID0KQ291cmllciwgbW9ub3NwYWNl OyB3aGl0ZS1zcGFjZTogcHJlOyBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjU1LCAyNTUsID0KMjU1 KTsiIGNsYXNzPTNEIiI+PGJyIGNsYXNzPTNEIiI+PC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5 bGU9M0QiY29sb3I6ID0KcmdiKDM2LCA0MSwgNDYpOyBmb250LWZhbWlseTogU0ZNb25vLVJlZ3Vs YXIsIENvbnNvbGFzLCAnTGliZXJhdGlvbiA9Ck1vbm8nLCBNZW5sbywgQ291cmllciwgbW9ub3Nw YWNlOyB3aGl0ZS1zcGFjZTogcHJlOyBiYWNrZ3JvdW5kLWNvbG9yOiA9CnJnYigyNTUsIDI1NSwg MjU1KTsiIGNsYXNzPTNEIiI+PGJyIGNsYXNzPTNEIiI+PC9zcGFuPjwvZGl2PjxiciA9CmNsYXNz PTNEIiI+PC9ib2R5PjwvaHRtbD49CgotLUFwcGxlLU1haWw9X0U5RDgwRTY3LTc5NzQtNDYwMi04 QTY3LTA1RkQ4RkVDM0E5OC0tCg== --===============1367572551388108549==--