[SFS] A gentle hands-on introduction to Puppet

sfs@thegeek.nu sfs@thegeek.nu
Mon, 02 Dec 2013 21:07:25 -0700


PHAgZGlyPSJsdHIiPkknZCBsaWtlIHRvIG1ha2UgYSBmcmllbmRseSZuYnNwOyBhbWVuZG1lbnQg
dGhhdCBhbnlvbmUgTk9UIHdlYXJpbmcgYSBzaGlydCBwYXkgYW4gZXh0cmEgJDE1MCBpbnN0ZWFk
IG9mIHJlY2VpdmluZyBhbnkgZGlzY291bnQuPC9wPgo8ZGl2IGNsYXNzPSJxdW90ZSI+T24gRGVj
IDIsIDIwMTMgODo1MiBQTSwgTGFycnkgU2F3eWVyICZsdDtsc2F3eWVyQHNjc2RlbnZlci5jb20m
Z3Q7IHdyb3RlOjxiciB0eXBlPSdhdHRyaWJ1dGlvbic+PGJsb2NrcXVvdGUgY2xhc3M9InF1b3Rl
IiBzdHlsZT0ibWFyZ2luOjAgMCAwIC44ZXg7Ym9yZGVyLWxlZnQ6MXB4ICNjY2Mgc29saWQ7cGFk
ZGluZy1sZWZ0OjFleCI+PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2
bWwiIHhtbG5zOm89InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1s
bnM6dz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0
cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj1Db250
ZW50LVR5cGUgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij48bWV0YSBuYW1lPUdl
bmVyYXRvciBjb250ZW50PSJNaWNyb3NvZnQgV29yZCAxNCAoZmlsdGVyZWQgbWVkaXVtKSI+PCEt
LVtpZiAhbXNvXT48c3R5bGU+dlw6KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kb1w6
KiB7YmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7fQ0Kd1w6KiB7YmVoYXZpb3I6dXJsKCNkZWZh
dWx0I1ZNTCk7fQ0KLnNoYXBlIHtiZWhhdmlvcjp1cmwoI2RlZmF1bHQjVk1MKTt9DQo8L3N0eWxl
PjwhW2VuZGlmXS0tPjxzdHlsZT48IS0tDQovKiBGb250IERlZmluaXRpb25zICovDQpAZm9udC1m
YWNlDQoJe2ZvbnQtZmFtaWx5OkhlbHZldGljYTsNCglwYW5vc2UtMToyIDExIDYgNCAyIDIgMiAy
IDIgNDt9DQpAZm9udC1mYWNlDQoJe2ZvbnQtZmFtaWx5OiJDYW1icmlhIE1hdGgiOw0KCXBhbm9z
ZS0xOjIgNCA1IDMgNSA0IDYgMyAyIDQ7fQ0KQGZvbnQtZmFjZQ0KCXtmb250LWZhbWlseTpDYWxp
YnJpOw0KCXBhbm9zZS0xOjIgMTUgNSAyIDIgMiA0IDMgMiA0O30NCkBmb250LWZhY2UNCgl7Zm9u
dC1mYW1pbHk6VGFob21hOw0KCXBhbm9zZS0xOjIgMTEgNiA0IDMgNSA0IDQgMiA0O30NCi8qIFN0
eWxlIERlZmluaXRpb25zICovDQpwLk1zb05vcm1hbCwgbGkuTXNvTm9ybWFsLCBkaXYuTXNvTm9y
bWFsDQoJe21hcmdpbjowaW47DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZvbnQtc2l6ZTox
Mi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiIsInNlcmlmIjt9DQpoMQ0KCXtt
c28tc3R5bGUtcHJpb3JpdHk6OTsNCgltc28tc3R5bGUtbGluazoiSGVhZGluZyAxIENoYXIiOw0K
CW1zby1tYXJnaW4tdG9wLWFsdDphdXRvOw0KCW1hcmdpbi1yaWdodDowaW47DQoJbXNvLW1hcmdp
bi1ib3R0b20tYWx0OmF1dG87DQoJbWFyZ2luLWxlZnQ6MGluOw0KCWZvbnQtc2l6ZToyNC4wcHQ7
DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiIsInNlcmlmIjsNCglmb250LXdlaWdodDpi
b2xkO30NCmE6bGluaywgc3Bhbi5Nc29IeXBlcmxpbmsNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5
Ow0KCWNvbG9yOmJsdWU7DQoJdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9DQphOnZpc2l0ZWQs
IHNwYW4uTXNvSHlwZXJsaW5rRm9sbG93ZWQNCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5Ow0KCWNv
bG9yOnB1cnBsZTsNCgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30NCnANCgl7bXNvLXN0eWxl
LXByaW9yaXR5Ojk5Ow0KCW1hcmdpbjowaW47DQoJbWFyZ2luLWJvdHRvbTouMDAwMXB0Ow0KCWZv
bnQtc2l6ZToxMi4wcHQ7DQoJZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiIsInNlcmlmIjt9
DQpzcGFuLkhlYWRpbmcxQ2hhcg0KCXttc28tc3R5bGUtbmFtZToiSGVhZGluZyAxIENoYXIiOw0K
CW1zby1zdHlsZS1wcmlvcml0eTo5Ow0KCW1zby1zdHlsZS1saW5rOiJIZWFkaW5nIDEiOw0KCWZv
bnQtZmFtaWx5OiJDYW1icmlhIiwic2VyaWYiOw0KCWNvbG9yOiMzNjVGOTE7DQoJZm9udC13ZWln
aHQ6Ym9sZDt9DQpzcGFuLkVtYWlsU3R5bGUxOQ0KCXttc28tc3R5bGUtdHlwZTpwZXJzb25hbC1y
ZXBseTsNCglmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIiwic2VyaWYiOw0KCWNvbG9yOiMx
RjQ5N0Q7fQ0KLk1zb0NocERlZmF1bHQNCgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9ubHk7DQoJ
Zm9udC1zaXplOjEwLjBwdDt9DQpAcGFnZSBXb3JkU2VjdGlvbjENCgl7c2l6ZTo4LjVpbiAxMS4w
aW47DQoJbWFyZ2luOjEuMGluIDEuMGluIDEuMGluIDEuMGluO30NCmRpdi5Xb3JkU2VjdGlvbjEN
Cgl7cGFnZTpXb3JkU2VjdGlvbjE7fQ0KLS0+PC9zdHlsZT48IS0tW2lmIGd0ZSBtc28gOV0+PHht
bD4NCjxvOnNoYXBlZGVmYXVsdHMgdjpleHQ9ImVkaXQiIHNwaWRtYXg9IjEwMjYiIC8+DQo8L3ht
bD48IVtlbmRpZl0tLT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4NCjxvOnNoYXBlbGF5b3V0IHY6
ZXh0PSJlZGl0Ij4NCjxvOmlkbWFwIHY6ZXh0PSJlZGl0IiBkYXRhPSIxIiAvPg0KPC9vOnNoYXBl
bGF5b3V0PjwveG1sPjwhW2VuZGlmXS0tPjwvaGVhZD48Ym9keSBsYW5nPUVOLVVTIGxpbms9Ymx1
ZSB2bGluaz1wdXJwbGU+PGRpdiBjbGFzcz1Xb3JkU2VjdGlvbjE+PHAgY2xhc3M9TXNvTm9ybWFs
PjxiPjx1PjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTEuMHB0O2NvbG9yOiMxRjQ5N0QnPk1vdGlv
biAxPG86cD48L286cD48L3NwYW4+PC91PjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxzcGFu
IHN0eWxlPSdmb250LXNpemU6MTEuMHB0O2NvbG9yOiMxRjQ5N0QnPkFmdGVyIGNvbnNpZGVyYWJs
ZSBhbmQgbGVuZ3RoeSBjb25zdWx0YXRpb24gd2l0aCBteXNlbGYsIEnigJl2ZSBkZWNpZGVkIGEg
ZGlzY291bnQgb2YgJDI1IHNob3VsZCBiZSBhd2FyZGVkIHRvIHRob3NlIGluIHRoZSBncm91cCB3
aG8gYXJyaXZlIHdlYXJpbmcgdGhlaXIgT2ZmaWNpYWwgU0ZTIExpbnV4IENhbXAgVGllLWR5ZWQg
VC1TaGlydHMgKFdoaWNoIDxiPm11c3Q8L2I+IHJlbWFpbiBvbiBmb3IgdGhlIGVudGlyZXR5IG9m
IHRoZSBjbGFzcyks4oCmIGFuZCBhICQ1MCBkaXNjb3VudCB0byB0aG9zZSB3aG8gY2hvb3NlIHRv
IHdlYXIgbm8gc2hpcnRzIGF0IGFsbC4uLiBPZiBjb3Vyc2UsIHRoaXMgaXMgb25seSBhIDxpPnN1
Z2dlc3RlZDwvaT4gZGlzY291bnQsIGFzc3VtaW5nIHlvdSBjaG9vc2UgdG8gZ28gd2l0aCB0aGUg
c3VnZ2VzdGVkICQxMDAgb3IgZ3JlYXRlciBkb25hdGlvbi48bzpwPjwvbzpwPjwvc3Bhbj48L3A+
PHAgY2xhc3M9TXNvTm9ybWFsPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTEuMHB0O2NvbG9yOiMx
RjQ5N0QnPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFzcz1Nc29Ob3JtYWw+PHNw
YW4gc3R5bGU9J2ZvbnQtc2l6ZToxMS4wcHQ7Y29sb3I6IzFGNDk3RCc+SSBob3BlIHRoZSBncm91
cCBhZ3JlZXMuIEhvd2V2ZXIsIHNob3VsZCA8Yj5hbnlvbmU8L2I+IDwvc3Bhbj48c3BhbiBzdHls
ZT0nZm9udC1zaXplOjguMHB0O2NvbG9yOiMxRjQ5N0QnPnN1Y2ggYXMgRGF2aWQgV2lsc29uPC9z
cGFuPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTEuMHB0O2NvbG9yOiMxRjQ5N0QnPiBjaG9vc2Ug
dG8gZGlzYWdyZWUsIEkgdm90ZSB0aGUgZ3JvdXAgdGFrZXMgYSB2b3RlLiA8YnI+PGJyPjxiPjx1
Pk1vdGlvbiAyPC91PjwvYj48YnI+U2hvdWxkIDx1Pk1vdGlvbiAxPC91PiBiZSBzdHJ1Y2sgZG93
biBieSB0aGUgbWFqb3JpdHkgaW4gYSBwcm9wZXIgZGVtb2NyYXRpYyBlbGVjdG9yYXRlLCBJIHZv
dGUgZm9yIGEgc2Vjb25kIG9wdGlvbiB3aGljaCB3b3VsZCBlbnRhaWwgZ3JlYXRlciBkaXNjb3Vu
dHMgb2YgJDEwMCBhbmQgJDE1MCBmb3IgYWxsIHRob3NlIHdobyBkb25hdGUgJDIwMCBvciBtb3Jl
IGZvciB0aGUgY2xhc3MuPG86cD48L286cD48L3NwYW4+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48
c3BhbiBzdHlsZT0nZm9udC1zaXplOjExLjBwdDtjb2xvcjojMUY0OTdEJz48bzpwPiZuYnNwOzwv
bzpwPjwvc3Bhbj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxzcGFuIHN0eWxlPSdmb250LXNpemU6
MTEuMHB0O2NvbG9yOiMxRjQ5N0QnPkFsbCB0aG9zZSB0aGF0IHNheSDigJhJ4oCZIHBsZWFzZSBt
YWtlIHlvdXJzZWx2ZXMga25vd24uIDxvOnA+PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFzcz1Nc29O
b3JtYWw+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMS4wcHQ7Y29sb3I6IzFGNDk3RCc+QWxsIG9m
IHRob3NlIHdobyBzYXkg4oCYTmF54oCZLCBwbGVhc2UgY2FsbCA8Yj4oMzAzKSA2MDctNzUyNzwv
Yj4gdG8gbG9nIHlvdXIgdm90ZS48YnI+PGJyPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD48cCBjbGFz
cz1Nc29Ob3JtYWw+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMS4wcHQ7Y29sb3I6IzFGNDk3RCc+
PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC9wPjxkaXY+PHAgY2xhc3M9TXNvTm9ybWFsPjxzcGFu
IHN0eWxlPSdmb250LXNpemU6MTEuMHB0O2NvbG9yOiMxRjQ5N0QnPkJlc3QgcmVnYXJkcyw8bzpw
PjwvbzpwPjwvc3Bhbj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxzcGFuIHN0eWxlPSdmb250LXNp
emU6MTEuMHB0O2NvbG9yOiMxRjQ5N0QnPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD48cCBj
bGFzcz1Nc29Ob3JtYWw+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMS4wcHQ7Y29sb3I6IzFGNDk3
RCc+TGFycnkgU2F3eWVyPG86cD48L286cD48L3NwYW4+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48
Yj48aT48c3BhbiBzdHlsZT0nZm9udC1zaXplOjExLjBwdDtjb2xvcjojMUY0OTdEJz5JVCBDb25z
dWx0YW50PG86cD48L286cD48L3NwYW4+PC9pPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxz
cGFuIHN0eWxlPSdmb250LXNpemU6MTEuMHB0O2NvbG9yOiMxRjQ5N0QnPlNDU0RlbnZlci5jb20g
TExDPG86cD48L286cD48L3NwYW4+PC9wPjxwIGNsYXNzPU1zb05vcm1hbD48Yj48aT48c3BhbiBz
dHlsZT0nZm9udC1zaXplOjExLjBwdDtjb2xvcjojMUY0OTdEJz5vZmZpY2U6ICgzMDMpIDc1MS04
MDAwPG86cD48L286cD48L3NwYW4+PC9pPjwvYj48L3A+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPjxp
PjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTEuMHB0O2NvbG9yOiMxRjQ5N0QnPndlYjo8L3NwYW4+
PC9pPjwvYj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjExLjBwdDtjb2xvcjojMUY0OTdEJz4gPC9z
cGFuPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTEuMHB0O2ZvbnQtZmFtaWx5OiJDYWxpYnJpIiwi
c2Fucy1zZXJpZiI7Y29sb3I6IzFGNDk3RCc+PGEgaHJlZj0iaHR0cDovL3d3dy5zY3NkZW52ZXIu
Y29tLyI+d3d3LlNDU0RlbnZlci5jb208L2E+PG86cD48L286cD48L3NwYW4+PC9wPjwvZGl2Pjxw
IGNsYXNzPU1zb05vcm1hbD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjExLjBwdDtjb2xvcjojMUY0
OTdEJz48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+PGRpdj48ZGl2IHN0eWxlPSdib3JkZXI6
bm9uZTtib3JkZXItdG9wOnNvbGlkICNCNUM0REYgMS4wcHQ7cGFkZGluZzozLjBwdCAwaW4gMGlu
IDBpbic+PHAgY2xhc3M9TXNvTm9ybWFsPjxiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0
O2ZvbnQtZmFtaWx5OiJUYWhvbWEiLCJzYW5zLXNlcmlmIic+RnJvbTo8L3NwYW4+PC9iPjxzcGFu
IHN0eWxlPSdmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiJUYWhvbWEiLCJzYW5zLXNlcmlm
Iic+IHNmcy1hZG1pbkB0aGVnZWVrLm51IFttYWlsdG86c2ZzLWFkbWluQHRoZWdlZWsubnVdIDxi
Pk9uIEJlaGFsZiBPZiA8L2I+RGF2aWQgTC4gV2lsbHNvbjxicj48Yj5TZW50OjwvYj4gTW9uZGF5
LCBEZWNlbWJlciAwMiwgMjAxMyA0OjQyIFBNPGJyPjxiPlRvOjwvYj4gc2ZzQHRoZWdlZWsubnU8
YnI+PGI+U3ViamVjdDo8L2I+IFJlOiBbU0ZTXSBBIGdlbnRsZSBoYW5kcy1vbiBpbnRyb2R1Y3Rp
b24gdG8gUHVwcGV0PG86cD48L286cD48L3NwYW4+PC9wPjwvZGl2PjwvZGl2PjxwIGNsYXNzPU1z
b05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48ZGl2PjxwIGNsYXNzPU1zb05vcm1hbCBzdHls
ZT0nbWFyZ2luLWJvdHRvbToxMi4wcHQnPjxzcGFuIHN0eWxlPSdjb2xvcjpibGFjayc+VGhlIG5l
eHQgcnVuIG9mIDxiPkFHSEkyIFB1cHBldDwvYj4gaGFzIGJlZW4gc2V0IGludG8gdGhlIHRpbWUt
c3BhY2UgY29udGludXVtLjxicj48YnI+V2hlbjo8YnI+PGI+Jm5ic3A7IFNhdHVyZGF5LCBEZWNl
bWJlciAyMXN0LCA5QU0gdG8gNVBNPC9iPjxicj5XaGVyZTo8YnI+PGI+Jm5ic3A7IFRoZSBDb25j
b2N0b3J5PC9iPjxicj5SU1ZQIGhlcmU6PGJyPiZuYnNwOyA8YSBocmVmPSJodHRwOi8vd3d3LnNv
ZnJlZS51cy8/cGFnZV9pZD0xNDYyIj5odHRwOi8vd3d3LnNvZnJlZS51cy8/cGFnZV9pZD0xNDYy
PC9hPjxicj48YnI+VGhlIGNsYXNzIGlzIDxiPlBXWVc8L2I+IChwYXkgd2hhdCB5b3Ugd2FudCkg
d2l0aCAxMDAgVVNEIG9yIDAuMSBCVEMgc3VnZ2VzdGVkLjxicj48YnI+LS08YnI+RGF2aWQgTC4g
V2lsbHNvbjxicj5UZWFjaGVyLCBFbmdpbmVlciwgRXZhbmdlbGlzdDxicj5SSENFK1NhdGVsbGl0
ZSBDQ0FIIE5ldHdvcmsrIEErIExpbnV4KyBMUElDLTEgVWJ1bnR1Q1AgTm92ZWxsQ0xBPGJyPk1v
YmlsZSA3MjAtMzMzLUxBTlMoNTI2Nyk8YnI+PGJyPlRoaXMgaXMgYSBnb29kIHRpbWUgZm9yIGEg
cjNWT0x1dGlvbi48bzpwPjwvbzpwPjwvc3Bhbj48L3A+PGRpdiBjbGFzcz1Nc29Ob3JtYWwgYWxp
Z249Y2VudGVyIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcic+PHNwYW4gc3R5bGU9J2NvbG9yOmJs
YWNrJz48aHIgc2l6ZT0yIHdpZHRoPSIxMDAlIiBhbGlnbj1jZW50ZXIgaWQ9endjaHI+PC9zcGFu
PjwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSdib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCAj
MTAxMEZGIDEuNXB0O3BhZGRpbmc6MGluIDBpbiAwaW4gNC4wcHQ7bWFyZ2luLWxlZnQ6My43NXB0
O21hcmdpbi10b3A6NS4wcHQ7bWFyZ2luLWJvdHRvbTo1LjBwdCc+PGRpdj48cCBjbGFzcz1Nc29O
b3JtYWwgc3R5bGU9J21hcmdpbi1ib3R0b206MTIuMHB0Jz48c3BhbiBzdHlsZT0nY29sb3I6Ymxh
Y2snPidqcm9tZXJvJyBhc2tlZCBhIHF1ZXN0aW9uIGluIElSQyBhbmQgdGhlbiBsZWZ0IGJlZm9y
ZSBJIGNvdWxkIGFuc3dlciBpdC4gOi0pPGJyPjxicj5TbywgaGVyZSdzIHRoZSBhbnN3ZXI6PGJy
Pjxicj5QdXBwZXQgaXMgYSBwcm9ncmFtbWluZyBsYW5ndWFnZSB0byBkZWZpbmUgYW5kIGFzc2ln
biBwb2xpY2llcyBsaWtlIHRoaXM6PGJyPiZuYnNwOyAmcXVvdDtUaGlzIHBhY2thZ2Ugc2hvdWxk
IGJlIGluc3RhbGxlZC4mcXVvdDs8YnI+Jm5ic3A7ICZxdW90O1RoaXMgdXNlciBzaG91bGQgYmUg
cHJlc2VudCBhbmQgaGF2ZSB0aGlzIFVJRC4mcXVvdDs8YnI+Jm5ic3A7ICZxdW90O1RoaXMgZmls
ZSBzaG91bGQgYmUgcHJlc2VudCwgd2l0aCB0aGlzIG93bmVyc2hpcCwgYW5kIHRoaXMgY29udGVu
dC4mcXVvdDs8YnI+Jm5ic3A7ICZxdW90O1RoaXMgc2VydmljZSBzaG91bGQgYmUgcnVubmluZyBh
bmQgZW5hYmxlZCB0byBzdGFydCBvbiBib290LiZxdW90Ozxicj48YnI+UHVwcGV0IGNvbXBhcmVz
IHRvIENoZWYsIEFuc2libGUsIFNhbHQsIGFuZCAmcXVvdDtncm91cCBwb2xpY3kgb2JqZWN0cyZx
dW90OyBvbiBXaW5kb3dzLjxicj48YnI+UHVwcGV0IGlzIGZ1biB0byB3b3JrIHdpdGgsIGJ1dCB3
aXRob3V0IHByb3BlciB0cmFpbmluZyAocmV0cmFpbmluZywgcmVzdHJhaW5pbmcpIG9mIGRldi1v
cHMgZW5naW5lZXJzLCBpdCBjYW4gcXVpY2tseSBncm93IGludG8gYW4gd2hvbGx5IHVuLW1hbmFn
ZS1hYmxlICh1bi1ob2x5KSBtZXNzLiBDb21lIHRvIG15IHdvcmtzaG9wIGFuZCBsZWFybiBob3cg
dG8gTk9UIGYqIGl0IHVwLjxicj48YnI+LS08YnI+RGF2aWQgTC4gV2lsbHNvbjxicj5UZWFjaGVy
LCBFbmdpbmVlciwgRXZhbmdlbGlzdDxicj5SSENFK1NhdGVsbGl0ZSBDQ0FIIE5ldHdvcmsrIEEr
IExpbnV4KyBMUElDLTEgVWJ1bnR1Q1AgTm92ZWxsQ0xBPGJyPk1vYmlsZSA3MjAtMzMzLUxBTlMo
NTI2Nyk8YnI+PGJyPlRoaXMgaXMgYSBnb29kIHRpbWUgZm9yIGEgcjNWT0x1dGlvbi48bzpwPjwv
bzpwPjwvc3Bhbj48L3A+PGRpdiBjbGFzcz1Nc29Ob3JtYWwgYWxpZ249Y2VudGVyIHN0eWxlPSd0
ZXh0LWFsaWduOmNlbnRlcic+PHNwYW4gc3R5bGU9J2NvbG9yOmJsYWNrJz48aHIgc2l6ZT0yIHdp
ZHRoPSIxMDAlIiBhbGlnbj1jZW50ZXIgaWQ9endjaHI+PC9zcGFuPjwvZGl2PjxibG9ja3F1b3Rl
IHN0eWxlPSdib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCAjMTAxMEZGIDEuNXB0O3BhZGRp
bmc6MGluIDBpbiAwaW4gNC4wcHQ7bWFyZ2luLWxlZnQ6My43NXB0O21hcmdpbi10b3A6NS4wcHQ7
bWFyZ2luLWJvdHRvbTo1LjBwdCc+PGRpdj48ZGl2PjxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0n
YmFja2dyb3VuZDp3aGl0ZSc+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1p
bHk6IkhlbHZldGljYSIsInNhbnMtc2VyaWYiO2NvbG9yOmJsYWNrJz5EYXZpZDxvOnA+PC9vOnA+
PC9zcGFuPjwvcD48L2Rpdj48ZGl2PjxwIGNsYXNzPU1zb05vcm1hbD48c3BhbiBzdHlsZT0nZm9u
dC1zaXplOjEwLjBwdDtmb250LWZhbWlseToiSGVsdmV0aWNhIiwic2Fucy1zZXJpZiI7Y29sb3I6
YmxhY2snPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD48L2Rpdj48ZGl2PjxwIGNsYXNzPU1z
b05vcm1hbD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseToiSGVsdmV0
aWNhIiwic2Fucy1zZXJpZiI7Y29sb3I6YmxhY2snPkkgYW0gZ29vZCB3aXRoIGJvdGggZGF5cywg
d291bGQgbGlrZSB0byBhdHRlbmQuPG86cD48L286cD48L3NwYW4+PC9wPjwvZGl2PjxkaXY+PHAg
Y2xhc3M9TXNvTm9ybWFsPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5
OiJIZWx2ZXRpY2EiLCJzYW5zLXNlcmlmIjtjb2xvcjpibGFjayc+PG86cD4mbmJzcDs8L286cD48
L3NwYW4+PC9wPjwvZGl2PjxkaXY+PHAgY2xhc3M9TXNvTm9ybWFsPjxzcGFuIHN0eWxlPSdmb250
LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiJIZWx2ZXRpY2EiLCJzYW5zLXNlcmlmIjtjb2xvcjpi
bGFjayc+VGhhbmtzPG86cD48L286cD48L3NwYW4+PC9wPjwvZGl2PjxkaXY+PHAgY2xhc3M9TXNv
Tm9ybWFsPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0O2ZvbnQtZmFtaWx5OiJIZWx2ZXRp
Y2EiLCJzYW5zLXNlcmlmIjtjb2xvcjpibGFjayc+VmlqaTxvOnA+PC9vOnA+PC9zcGFuPjwvcD48
L2Rpdj48ZGl2PjxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWJvdHRvbToxMi4wcHQ7
YmFja2dyb3VuZDp3aGl0ZSc+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQ7Zm9udC1mYW1p
bHk6IkhlbHZldGljYSIsInNhbnMtc2VyaWYiO2NvbG9yOmJsYWNrJz48bzpwPiZuYnNwOzwvbzpw
Pjwvc3Bhbj48L3A+PGRpdj48ZGl2PjxkaXY+PHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdiYWNr
Z3JvdW5kOndoaXRlJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdDtmb250LWZhbWlseToi
QXJpYWwiLCJzYW5zLXNlcmlmIjtjb2xvcjpibGFjayc+T24gU3VuZGF5LCBOb3ZlbWJlciAyNCwg
MjAxMyA4OjQ3IFBNLCBEYXZpZCBMLiBXaWxsc29uICZsdDs8YSBocmVmPSJtYWlsdG86RExXaWxs
c29uQHRoZWdlZWsubnUiPkRMV2lsbHNvbkB0aGVnZWVrLm51PC9hPiZndDsgd3JvdGU6PC9zcGFu
PjxzcGFuIHN0eWxlPSdmb250LWZhbWlseToiSGVsdmV0aWNhIiwic2Fucy1zZXJpZiI7Y29sb3I6
YmxhY2snPjxvOnA+PC9vOnA+PC9zcGFuPjwvcD48L2Rpdj48ZGl2PjxkaXYgaWQ9eWl2NTk5Njc3
ODA4Nz48ZGl2PjxkaXY+PGgxIHN0eWxlPSdiYWNrZ3JvdW5kOndoaXRlJz48c3BhbiBzdHlsZT0n
Y29sb3I6YmxhY2snPkEgZ2VudGxlLCBoYW5kcy1vbiBpbnRyb2R1Y3Rpb24gdG8gLi4uIFB1cHBl
dDxvOnA+PC9vOnA+PC9zcGFuPjwvaDE+PHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4t
Ym90dG9tOjEyLjBwdDtiYWNrZ3JvdW5kOndoaXRlJz48c3BhbiBzdHlsZT0nY29sb3I6YmxhY2sn
Pkl0IHNlZW1zIHRoZXJlJ3MgZW5vdWdoIGludGVyZXN0IHRvIG9mZmVyIHRoaXMgY2xhc3MgYWdh
aW4uPGJyPjxicj5Ib3cgYWJvdXQgRGVjZW1iZXIgMjFzdCBvciBKYW51YXJ5IDR0aCwgZ2l2ZSB3
aGF0IHlvdSBsaWtlLCB3aXRoIGEgc3VnZ2VzdGlvbiBvZiAkMTAwPzxicj48YnI+LS08YnI+RGF2
aWQgTC4gV2lsbHNvbjxicj5UZWFjaGVyLCBFbmdpbmVlciwgRXZhbmdlbGlzdDxicj5SSENFK1Nh
dGVsbGl0ZSBDQ0FIIE5ldHdvcmsrIEErIExpbnV4KyBMUElDLTEgVWJ1bnR1Q1AgTm92ZWxsQ0xB
PGJyPk1vYmlsZSA3MjAtMzMzLUxBTlMoNTI2Nyk8YnI+PGJyPlRoaXMgaXMgYSBnb29kIHRpbWUg
Zm9yIGEgcjNWT0x1dGlvbi48bzpwPjwvbzpwPjwvc3Bhbj48L3A+PC9kaXY+PC9kaXY+PC9kaXY+
PHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tYm90dG9tOjEyLjBwdDtiYWNrZ3JvdW5k
OndoaXRlJz48c3BhbiBzdHlsZT0nZm9udC1mYW1pbHk6IkhlbHZldGljYSIsInNhbnMtc2VyaWYi
O2NvbG9yOmJsYWNrJz48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+PC9kaXY+PC9kaXY+PC9k
aXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1b3RlPjxwIGNsYXNzPU1zb05vcm1hbD48c3BhbiBzdHls
ZT0nY29sb3I6YmxhY2snPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD48L2Rpdj48L2Jsb2Nr
cXVvdGU+PHAgY2xhc3M9TXNvTm9ybWFsPjxzcGFuIHN0eWxlPSdjb2xvcjpibGFjayc+PG86cD4m
bmJzcDs8L286cD48L3NwYW4+PC9wPjwvZGl2PjwvZGl2PjwvYm9keT48L2h0bWw+PC9ibG9ja3F1
b3RlPjwvZGl2Pg==