PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT5Db25maWd1cmF0aW9uIFNlY3Rpb25zIC0gQXBhY2hlIEhUVFAgU2VydmVyIFZlcnNpb24gMi41PC90aXRsZT4KPGxpbmsgaHJlZj0iLi9zdHlsZS9jc3MvbWFudWFsLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik1haW4gc3R5bGVzaGVldCIgLz4KPGxpbmsgaHJlZj0iLi9zdHlsZS9jc3MvbWFudWFsLWxvb3NlLTEwMHBjLmNzcyIgcmVsPSJhbHRlcm5hdGUgc3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJObyBTaWRlYmFyIC0gRGVmYXVsdCBmb250IHNpemUiIC8+CjxsaW5rIGhyZWY9Ii4vc3R5bGUvY3NzL21hbnVhbC1wcmludC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9InByaW50IiB0eXBlPSJ0ZXh0L2NzcyIgLz48bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuL3N0eWxlL2Nzcy9wcmV0dGlmeS5jc3MiIC8+CjxzY3JpcHQgc3JjPSIuL3N0eWxlL3NjcmlwdHMvcHJldHRpZnkubWluLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgo8L3NjcmlwdD4KCjxsaW5rIGhyZWY9Ii4vaW1hZ2VzL2Zhdmljb24uaWNvIiByZWw9InNob3J0Y3V0IGljb24iIC8+PC9oZWFkPgo8Ym9keSBpZD0ibWFudWFsLXBhZ2UiPjxkaXYgaWQ9InBhZ2UtaGVhZGVyIj4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4vbW9kLyI+TW9kdWxlczwvYT4gfCA8YSBocmVmPSIuL21vZC9xdWlja3JlZmVyZW5jZS5odG1sIj5EaXJlY3RpdmVzPC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaHR0cGQvRkFRIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi9nbG9zc2FyeS5odG1sIj5HbG9zc2FyeTwvYT4gfCA8YSBocmVmPSIuL3NpdGVtYXAuaHRtbCI+U2l0ZW1hcDwvYT48L3A+CjxwIGNsYXNzPSJhcGFjaGUiPkFwYWNoZSBIVFRQIFNlcnZlciBWZXJzaW9uIDIuNTwvcD4KPGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9mZWF0aGVyLnBuZyIgLz48L2Rpdj4KPGRpdiBjbGFzcz0idXAiPjxhIGhyZWY9Ii4vIj48aW1nIHRpdGxlPSImbHQ7LSIgYWx0PSImbHQ7LSIgc3JjPSIuL2ltYWdlcy9sZWZ0LmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgaWQ9InBhdGgiPgo8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvIj5BcGFjaGU8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvIj5IVFRQIFNlcnZlcjwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLyI+RG9jdW1lbnRhdGlvbjwvYT4gJmd0OyA8YSBocmVmPSIuLyI+VmVyc2lvbiAyLjU8L2E+PC9kaXY+PGRpdiBpZD0icGFnZS1jb250ZW50Ij48ZGl2IGlkPSJwcmVhbWJsZSI+PGgxPkNvbmZpZ3VyYXRpb24gU2VjdGlvbnM8L2gxPgo8ZGl2IGNsYXNzPSJ0b3BsYW5nIj4KPHA+PHNwYW4+QXZhaWxhYmxlIExhbmd1YWdlczogPC9zcGFuPjxhIGhyZWY9Ii4vZW4vc2VjdGlvbnMuaHRtbCIgdGl0bGU9IkVuZ2xpc2giPiZuYnNwO2VuJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vZnIvc2VjdGlvbnMuaHRtbCIgaHJlZmxhbmc9ImZyIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkZyYW7nYWlzIj4mbmJzcDtmciZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2phL3NlY3Rpb25zLmh0bWwiIGhyZWZsYW5nPSJqYSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJKYXBhbmVzZSI+Jm5ic3A7amEmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9rby9zZWN0aW9ucy5odG1sIiBocmVmbGFuZz0ia28iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iS29yZWFuIj4mbmJzcDtrbyZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL3RyL3NlY3Rpb25zLmh0bWwiIGhyZWZsYW5nPSJ0ciIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJU/HJr52UiPiZuYnNwO3RyJm5ic3A7PC9hPjwvcD4KPC9kaXY+CiA8cD5EaXJlY3RpdmVzIGluIHRoZSA8YSBocmVmPSJjb25maWd1cmluZy5odG1sIj5jb25maWd1cmF0aW9uIGZpbGVzPC9hPiBtYXkgYXBwbHkgdG8gdGhlCmVudGlyZSBzZXJ2ZXIsIG9yIHRoZXkgbWF5IGJlIHJlc3RyaWN0ZWQgdG8gYXBwbHkgb25seSB0byBwYXJ0aWN1bGFyCmRpcmVjdG9yaWVzLCBmaWxlcywgaG9zdHMsIG9yIFVSTHMuICBUaGlzIGRvY3VtZW50IGRlc2NyaWJlcyBob3cgdG8KdXNlIGNvbmZpZ3VyYXRpb24gc2VjdGlvbiBjb250YWluZXJzIG9yIDxjb2RlPi5odGFjY2VzczwvY29kZT4gZmlsZXMKdG8gY2hhbmdlIHRoZSBzY29wZSBvZiBvdGhlciBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZXMuPC9wPgo8L2Rpdj4KPGRpdiBpZD0icXVpY2t2aWV3Ij48dWwgaWQ9InRvYyI+PGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiN0eXBlcyI+VHlwZXMgb2YgQ29uZmlndXJhdGlvbiBTZWN0aW9uIENvbnRhaW5lcnM8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNmaWxlLWFuZC13ZWIiPkZpbGVzeXN0ZW0sIFdlYnNwYWNlLCBhbmQgQm9vbGVhbiBFeHByZXNzaW9uczwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3ZpcnR1YWxob3N0Ij5WaXJ0dWFsIEhvc3RzPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjcHJveHkiPlByb3h5PC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjd2hhdHdoZXJlIj5XaGF0IERpcmVjdGl2ZXMgYXJlIEFsbG93ZWQ/PC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjbWVyZ2luZyI+SG93IHRoZSBzZWN0aW9ucyBhcmUgbWVyZ2VkPC9hPjwvbGk+CjwvdWw+PGgzPlNlZSBhbHNvPC9oMz48dWwgY2xhc3M9InNlZWFsc28iPjxsaT48YSBocmVmPSIjY29tbWVudHNfc2VjdGlvbiI+Q29tbWVudHM8L2E+PC9saT48L3VsPjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9InR5cGVzIiBpZD0idHlwZXMiPlR5cGVzIG9mIENvbmZpZ3VyYXRpb24gU2VjdGlvbiBDb250YWluZXJzPC9hPiA8YSB0aXRsZT0iUGVybWFuZW50IGxpbmsiIGhyZWY9IiN0eXBlcyIgY2xhc3M9InBlcm1hbGluayI+JnBhcmE7PC9hPjwvaDI+Cgo8dGFibGUgY2xhc3M9InJlbGF0ZWQiPjx0cj48dGg+UmVsYXRlZCBNb2R1bGVzPC90aD48dGg+UmVsYXRlZCBEaXJlY3RpdmVzPC90aD48L3RyPjx0cj48dGQ+PHVsPjxsaT48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwiPmNvcmU8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF92ZXJzaW9uLmh0bWwiPm1vZF92ZXJzaW9uPC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfcHJveHkuaHRtbCI+bW9kX3Byb3h5PC9hPjwvY29kZT48L2xpPjwvdWw+PC90ZD48dGQ+PHVsPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZGlyZWN0b3J5Ij4mbHQ7RGlyZWN0b3J5Jmd0OzwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2RpcmVjdG9yeW1hdGNoIj4mbHQ7RGlyZWN0b3J5TWF0Y2gmZ3Q7PC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZmlsZXMiPiZsdDtGaWxlcyZndDs8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNmaWxlc21hdGNoIj4mbHQ7RmlsZXNNYXRjaCZndDs8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNpZiI+Jmx0O0lmJmd0OzwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2lmZGVmaW5lIj4mbHQ7SWZEZWZpbmUmZ3Q7PC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjaWZtb2R1bGUiPiZsdDtJZk1vZHVsZSZndDs8L2E+PC9jb2RlPjwvbGk+PGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF92ZXJzaW9uLmh0bWwjaWZ2ZXJzaW9uIj4mbHQ7SWZWZXJzaW9uJmd0OzwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2xvY2F0aW9uIj4mbHQ7TG9jYXRpb24mZ3Q7PC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjbG9jYXRpb25tYXRjaCI+Jmx0O0xvY2F0aW9uTWF0Y2gmZ3Q7PC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2RfbWQuaHRtbCNtZG9tYWluc2V0c2VjdGlvbiI+Jmx0O01Eb21haW5TZXQmZ3Q7PC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2RfcHJveHkuaHRtbCNwcm94eSI+Jmx0O1Byb3h5Jmd0OzwvYT48L2NvZGU+PC9saT48bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbW9kX3Byb3h5Lmh0bWwjcHJveHltYXRjaCI+Jmx0O1Byb3h5TWF0Y2gmZ3Q7PC9hPjwvY29kZT48L2xpPjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjdmlydHVhbGhvc3QiPiZsdDtWaXJ0dWFsSG9zdCZndDs8L2E+PC9jb2RlPjwvbGk+PC91bD48L3RkPjwvdHI+PC90YWJsZT4KCjxwPlRoZXJlIGFyZSB0d28gYmFzaWMgdHlwZXMgb2YgY29udGFpbmVycy4gIE1vc3QgY29udGFpbmVycyBhcmUKZXZhbHVhdGVkIGZvciBlYWNoIHJlcXVlc3QuICBUaGUgZW5jbG9zZWQgZGlyZWN0aXZlcyBhcmUgYXBwbGllZCBvbmx5CmZvciB0aG9zZSByZXF1ZXN0cyB0aGF0IG1hdGNoIHRoZSBjb250YWluZXJzLiAgVGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNpZmRlZmluZSI+Jmx0O0lmRGVmaW5lJmd0OzwvYT48L2NvZGU+LCA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjaWZtb2R1bGUiPiZsdDtJZk1vZHVsZSZndDs8L2E+PC9jb2RlPiwgYW5kCjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF92ZXJzaW9uLmh0bWwjaWZ2ZXJzaW9uIj4mbHQ7SWZWZXJzaW9uJmd0OzwvYT48L2NvZGU+CmNvbnRhaW5lcnMsIG9uIHRoZSBvdGhlciBoYW5kLCBhcmUgZXZhbHVhdGVkIG9ubHkgYXQgc2VydmVyIHN0YXJ0dXAKYW5kIHJlc3RhcnQuICBJZiB0aGVpciBjb25kaXRpb25zIGFyZSB0cnVlIGF0IHN0YXJ0dXAsIHRoZW4gdGhlCmVuY2xvc2VkIGRpcmVjdGl2ZXMgd2lsbCBhcHBseSB0byBhbGwgcmVxdWVzdHMuICBJZiB0aGUgY29uZGl0aW9ucyBhcmUKbm90IHRydWUsIHRoZSBlbmNsb3NlZCBkaXJlY3RpdmVzIHdpbGwgYmUgaWdub3JlZC48L3A+Cgo8cD5UaGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2lmZGVmaW5lIj4mbHQ7SWZEZWZpbmUmZ3Q7PC9hPjwvY29kZT4gZGlyZWN0aXZlCmVuY2xvc2VzIGRpcmVjdGl2ZXMgdGhhdCB3aWxsIG9ubHkgYmUgYXBwbGllZCBpZiBhbiBhcHByb3ByaWF0ZQpwYXJhbWV0ZXIgaXMgZGVmaW5lZCBvbiB0aGUgPGNvZGUgY2xhc3M9InByb2dyYW0iPjxhIGhyZWY9Ii4vcHJvZ3JhbXMvaHR0cGQuaHRtbCI+aHR0cGQ8L2E+PC9jb2RlPiBjb21tYW5kIGxpbmUuICBGb3IgZXhhbXBsZSwKd2l0aCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24sIGFsbCByZXF1ZXN0cyB3aWxsIGJlIHJlZGlyZWN0ZWQKdG8gYW5vdGhlciBzaXRlIG9ubHkgaWYgdGhlIHNlcnZlciBpcyBzdGFydGVkIHVzaW5nCjxjb2RlPmh0dHBkIC1EQ2xvc2VkRm9yTm93PC9jb2RlPjo8L3A+Cgo8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+Jmx0O0lmRGVmaW5lIENsb3NlZEZvck5vdyZndDsKICAgIFJlZGlyZWN0ICIvIiAiaHR0cDovL290aGVyc2VydmVyLmV4YW1wbGUuY29tLyIKJmx0Oy9JZkRlZmluZSZndDs8L3ByZT4KCgo8cD5UaGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2lmbW9kdWxlIj4mbHQ7SWZNb2R1bGUmZ3Q7PC9hPjwvY29kZT4KZGlyZWN0aXZlIGlzIHZlcnkgc2ltaWxhciwgZXhjZXB0IGl0IGVuY2xvc2VzIGRpcmVjdGl2ZXMgdGhhdCB3aWxsCm9ubHkgYmUgYXBwbGllZCBpZiBhIHBhcnRpY3VsYXIgbW9kdWxlIGlzIGF2YWlsYWJsZSBpbiB0aGUgc2VydmVyLgpUaGUgbW9kdWxlIG11c3QgZWl0aGVyIGJlIHN0YXRpY2FsbHkgY29tcGlsZWQgaW4gdGhlIHNlcnZlciwgb3IgaXQKbXVzdCBiZSBkeW5hbWljYWxseSBjb21waWxlZCBhbmQgaXRzIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF9zby5odG1sI2xvYWRtb2R1bGUiPkxvYWRNb2R1bGU8L2E+PC9jb2RlPiBsaW5lIG11c3QgYmUgZWFybGllciBpbiB0aGUKY29uZmlndXJhdGlvbiBmaWxlLiAgVGhpcyBkaXJlY3RpdmUgc2hvdWxkIG9ubHkgYmUgdXNlZCBpZiB5b3UgbmVlZAp5b3VyIGNvbmZpZ3VyYXRpb24gZmlsZSB0byB3b3JrIHdoZXRoZXIgb3Igbm90IGNlcnRhaW4gbW9kdWxlcyBhcmUKaW5zdGFsbGVkLiAgSXQgc2hvdWxkIG5vdCBiZSB1c2VkIHRvIGVuY2xvc2UgZGlyZWN0aXZlcyB0aGF0IHlvdSB3YW50CnRvIHdvcmsgYWxsIHRoZSB0aW1lLCBiZWNhdXNlIGl0IGNhbiBzdXBwcmVzcyB1c2VmdWwgZXJyb3IgbWVzc2FnZXMKYWJvdXQgbWlzc2luZyBtb2R1bGVzLjwvcD4KCjxwPkluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSwgdGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF9taW1lX21hZ2ljLmh0bWwjbWltZW1hZ2ljZmlsZSI+TWltZU1hZ2ljRmlsZTwvYT48L2NvZGU+IGRpcmVjdGl2ZSB3aWxsIGJlCmFwcGxpZWQgb25seSBpZiA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuL21vZC9tb2RfbWltZV9tYWdpYy5odG1sIj5tb2RfbWltZV9tYWdpYzwvYT48L2NvZGU+IGlzIGF2YWlsYWJsZS48L3A+Cgo8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+Jmx0O0lmTW9kdWxlIG1vZF9taW1lX21hZ2ljLmMmZ3Q7CiAgICBNaW1lTWFnaWNGaWxlICJjb25mL21hZ2ljIgombHQ7L0lmTW9kdWxlJmd0OzwvcHJlPgoKCjxwPlRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2RfdmVyc2lvbi5odG1sI2lmdmVyc2lvbiI+Jmx0O0lmVmVyc2lvbiZndDs8L2E+PC9jb2RlPgpkaXJlY3RpdmUgaXMgdmVyeSBzaW1pbGFyIHRvIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNpZmRlZmluZSI+Jmx0O0lmRGVmaW5lJmd0OzwvYT48L2NvZGU+IGFuZCA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjaWZtb2R1bGUiPiZsdDtJZk1vZHVsZSZndDs8L2E+PC9jb2RlPiwgZXhjZXB0IGl0IGVuY2xvc2VzIGRpcmVjdGl2ZXMgdGhhdCB3aWxsCm9ubHkgYmUgYXBwbGllZCBpZiBhIHBhcnRpY3VsYXIgdmVyc2lvbiBvZiB0aGUgc2VydmVyIGlzIGV4ZWN1dGluZy4gIFRoaXMKbW9kdWxlIGlzIGRlc2lnbmVkIGZvciB0aGUgdXNlIGluIHRlc3Qgc3VpdGVzIGFuZCBsYXJnZSBuZXR3b3JrcyB3aGljaCBoYXZlIHRvCmRlYWwgd2l0aCBkaWZmZXJlbnQgaHR0cGQgdmVyc2lvbnMgYW5kIGRpZmZlcmVudCBjb25maWd1cmF0aW9ucy48L3A+Cgo8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+Jmx0O0lmVmVyc2lvbiAmZ3Q7PSAyLjQmZ3Q7CiAgICAjIHRoaXMgaGFwcGVucyBvbmx5IGluIHZlcnNpb25zIGdyZWF0ZXIgb3IKICAgICMgZXF1YWwgMi40LjAuCiZsdDsvSWZWZXJzaW9uJmd0OzwvcHJlPgoKCjxwPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNpZmRlZmluZSI+Jmx0O0lmRGVmaW5lJmd0OzwvYT48L2NvZGU+LAo8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjaWZtb2R1bGUiPiZsdDtJZk1vZHVsZSZndDs8L2E+PC9jb2RlPiwgYW5kIHRoZQo8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2RfdmVyc2lvbi5odG1sI2lmdmVyc2lvbiI+Jmx0O0lmVmVyc2lvbiZndDs8L2E+PC9jb2RlPgpjYW4gYXBwbHkgbmVnYXRpdmUgY29uZGl0aW9ucyBieSBwcmVjZWRpbmcgdGhlaXIgdGVzdCB3aXRoICIhIi4KQWxzbywgdGhlc2Ugc2VjdGlvbnMgY2FuIGJlIG5lc3RlZCB0byBhY2hpZXZlIG1vcmUgY29tcGxleApyZXN0cmljdGlvbnMuPC9wPgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9ImZpbGUtYW5kLXdlYiIgaWQ9ImZpbGUtYW5kLXdlYiI+RmlsZXN5c3RlbSwgV2Vic3BhY2UsIGFuZCBCb29sZWFuIEV4cHJlc3Npb25zPC9hPiA8YSB0aXRsZT0iUGVybWFuZW50IGxpbmsiIGhyZWY9IiNmaWxlLWFuZC13ZWIiIGNsYXNzPSJwZXJtYWxpbmsiPiZwYXJhOzwvYT48L2gyPgoKPHA+VGhlIG1vc3QgY29tbW9ubHkgdXNlZCBjb25maWd1cmF0aW9uIHNlY3Rpb24gY29udGFpbmVycyBhcmUgdGhlCm9uZXMgdGhhdCBjaGFuZ2UgdGhlIGNvbmZpZ3VyYXRpb24gb2YgcGFydGljdWxhciBwbGFjZXMgaW4gdGhlCmZpbGVzeXN0ZW0gb3Igd2Vic3BhY2UuICBGaXJzdCwgaXQgaXMgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgdGhlCmRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdHdvLiAgVGhlIGZpbGVzeXN0ZW0gaXMgdGhlIHZpZXcgb2YgeW91ciBkaXNrcwphcyBzZWVuIGJ5IHlvdXIgb3BlcmF0aW5nIHN5c3RlbS4gIEZvciBleGFtcGxlLCBpbiBhIGRlZmF1bHQgaW5zdGFsbCwKQXBhY2hlIGh0dHBkIHJlc2lkZXMgYXQgPGNvZGU+L3Vzci9sb2NhbC9hcGFjaGUyPC9jb2RlPiBpbiB0aGUgVW5peApmaWxlc3lzdGVtIG9yIDxjb2RlPiJjOi9Qcm9ncmFtIEZpbGVzL0FwYWNoZSBHcm91cC9BcGFjaGUyIjwvY29kZT4gaW4KdGhlIFdpbmRvd3MgZmlsZXN5c3RlbS4gIChOb3RlIHRoYXQgZm9yd2FyZCBzbGFzaGVzIHNob3VsZCBhbHdheXMgYmUKdXNlZCBhcyB0aGUgcGF0aCBzZXBhcmF0b3IgaW4gQXBhY2hlIGh0dHBkIGNvbmZpZ3VyYXRpb24gZmlsZXMsIGV2ZW4gZm9yIFdpbmRvd3MuKSAgSW4gY29udHJhc3QsCnRoZSB3ZWJzcGFjZSBpcyB0aGUgdmlldyBvZiB5b3VyIHNpdGUgYXMgZGVsaXZlcmVkIGJ5IHRoZSB3ZWIgc2VydmVyCmFuZCBzZWVuIGJ5IHRoZSBjbGllbnQuICBTbyB0aGUgcGF0aCA8Y29kZT4vZGlyLzwvY29kZT4gaW4gdGhlCndlYnNwYWNlIGNvcnJlc3BvbmRzIHRvIHRoZSBwYXRoCjxjb2RlPi91c3IvbG9jYWwvYXBhY2hlMi9odGRvY3MvZGlyLzwvY29kZT4gaW4gdGhlIGZpbGVzeXN0ZW0gb2YgYQpkZWZhdWx0IEFwYWNoZSBodHRwZCBpbnN0YWxsIG9uIFVuaXguICBUaGUgd2Vic3BhY2UgbmVlZCBub3QgbWFwIGRpcmVjdGx5IHRvCnRoZSBmaWxlc3lzdGVtLCBzaW5jZSB3ZWJwYWdlcyBtYXkgYmUgZ2VuZXJhdGVkIGR5bmFtaWNhbGx5CmZyb20gZGF0YWJhc2VzIG9yIG90aGVyIGxvY2F0aW9ucy48L3A+Cgo8aDM+PGEgbmFtZT0iZmlsZXN5c3RlbSIgaWQ9ImZpbGVzeXN0ZW0iPkZpbGVzeXN0ZW0gQ29udGFpbmVyczwvYT48L2gzPgoKPHA+VGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNkaXJlY3RvcnkiPiZsdDtEaXJlY3RvcnkmZ3Q7PC9hPjwvY29kZT4KYW5kIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNmaWxlcyI+Jmx0O0ZpbGVzJmd0OzwvYT48L2NvZGU+CmRpcmVjdGl2ZXMsIGFsb25nIHdpdGggdGhlaXIgPGEgY2xhc3M9Imdsb3NzYXJ5bGluayIgaHJlZj0iLi9nbG9zc2FyeS5odG1sI3JlZ2V4IiB0aXRsZT0ic2VlIGdsb3NzYXJ5Ij5yZWdleDwvYT4KY291bnRlcnBhcnRzLCBhcHBseSBkaXJlY3RpdmVzIHRvCnBhcnRzIG9mIHRoZSBmaWxlc3lzdGVtLiAgRGlyZWN0aXZlcyBlbmNsb3NlZCBpbiBhIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNkaXJlY3RvcnkiPiZsdDtEaXJlY3RvcnkmZ3Q7PC9hPjwvY29kZT4gc2VjdGlvbiBhcHBseSB0bwp0aGUgbmFtZWQgZmlsZXN5c3RlbSBkaXJlY3RvcnkgYW5kIGFsbCBzdWJkaXJlY3RvcmllcyBvZiB0aGF0CmRpcmVjdG9yeSAoYXMgd2VsbCBhcyB0aGUgZmlsZXMgaW4gdGhvc2UgZGlyZWN0b3JpZXMpLgpUaGUgc2FtZSBlZmZlY3QgY2FuIGJlIG9idGFpbmVkIHVzaW5nIDxhIGhyZWY9Imhvd3RvL2h0YWNjZXNzLmh0bWwiPi5odGFjY2VzcyBmaWxlczwvYT4uICBGb3IgZXhhbXBsZSwgaW4gdGhlCmZvbGxvd2luZyBjb25maWd1cmF0aW9uLCBkaXJlY3RvcnkgaW5kZXhlcyB3aWxsIGJlIGVuYWJsZWQgZm9yIHRoZQo8Y29kZT4vdmFyL3dlYi9kaXIxPC9jb2RlPiBkaXJlY3RvcnkgYW5kIGFsbCBzdWJkaXJlY3Rvcmllcy48L3A+Cgo8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+Jmx0O0RpcmVjdG9yeSAiL3Zhci93ZWIvZGlyMSImZ3Q7CiAgICBPcHRpb25zICtJbmRleGVzCiZsdDsvRGlyZWN0b3J5Jmd0OzwvcHJlPgoKCjxwPkRpcmVjdGl2ZXMgZW5jbG9zZWQgaW4gYSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZmlsZXMiPiZsdDtGaWxlcyZndDs8L2E+PC9jb2RlPiBzZWN0aW9uIGFwcGx5IHRvIGFueSBmaWxlIHdpdGgKdGhlIHNwZWNpZmllZCBuYW1lLCByZWdhcmRsZXNzIG9mIHdoYXQgZGlyZWN0b3J5IGl0IGxpZXMgaW4uClNvIGZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcyB3aWxsLAp3aGVuIHBsYWNlZCBpbiB0aGUgbWFpbiBzZWN0aW9uIG9mIHRoZSBjb25maWd1cmF0aW9uIGZpbGUsCmRlbnkgYWNjZXNzIHRvIGFueSBmaWxlIG5hbWVkIDxjb2RlPnByaXZhdGUuaHRtbDwvY29kZT4gcmVnYXJkbGVzcwpvZiB3aGVyZSBpdCBpcyBmb3VuZC48L3A+Cgo8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+Jmx0O0ZpbGVzICJwcml2YXRlLmh0bWwiJmd0OwogICAgUmVxdWlyZSBhbGwgZGVuaWVkCiZsdDsvRmlsZXMmZ3Q7PC9wcmU+CgoKPHA+VG8gYWRkcmVzcyBmaWxlcyBmb3VuZCBpbiBhIHBhcnRpY3VsYXIgcGFydCBvZiB0aGUgZmlsZXN5c3RlbSwgdGhlCjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNmaWxlcyI+Jmx0O0ZpbGVzJmd0OzwvYT48L2NvZGU+IGFuZAo8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZGlyZWN0b3J5Ij4mbHQ7RGlyZWN0b3J5Jmd0OzwvYT48L2NvZGU+IHNlY3Rpb25zCmNhbiBiZSBjb21iaW5lZC4gIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24gd2lsbCBkZW55CmFjY2VzcyB0byA8Y29kZT4vdmFyL3dlYi9kaXIxL3ByaXZhdGUuaHRtbDwvY29kZT4sCjxjb2RlPi92YXIvd2ViL2RpcjEvc3ViZGlyMi9wcml2YXRlLmh0bWw8L2NvZGU+LAo8Y29kZT4vdmFyL3dlYi9kaXIxL3N1YmRpcjMvcHJpdmF0ZS5odG1sPC9jb2RlPiwgYW5kIGFueSBvdGhlciBpbnN0YW5jZQpvZiA8Y29kZT5wcml2YXRlLmh0bWw8L2NvZGU+IGZvdW5kIHVuZGVyIHRoZSA8Y29kZT4vdmFyL3dlYi9kaXIxLzwvY29kZT4KZGlyZWN0b3J5LjwvcD4KCjxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctY29uZmlnIj4mbHQ7RGlyZWN0b3J5ICIvdmFyL3dlYi9kaXIxIiZndDsKICAgICZsdDtGaWxlcyAicHJpdmF0ZS5odG1sIiZndDsKICAgICAgICBSZXF1aXJlIGFsbCBkZW5pZWQKICAgICZsdDsvRmlsZXMmZ3Q7CiZsdDsvRGlyZWN0b3J5Jmd0OzwvcHJlPgoKCgo8aDM+PGEgbmFtZT0id2Vic3BhY2UiIGlkPSJ3ZWJzcGFjZSI+V2Vic3BhY2UgQ29udGFpbmVyczwvYT48L2gzPgoKPHA+VGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNsb2NhdGlvbiI+Jmx0O0xvY2F0aW9uJmd0OzwvYT48L2NvZGU+CmRpcmVjdGl2ZSBhbmQgaXRzIDxhIGNsYXNzPSJnbG9zc2FyeWxpbmsiIGhyZWY9Ii4vZ2xvc3NhcnkuaHRtbCNyZWdleCIgdGl0bGU9InNlZSBnbG9zc2FyeSI+cmVnZXg8L2E+IGNvdW50ZXJwYXJ0LCBvbgp0aGUgb3RoZXIgaGFuZCwgY2hhbmdlIHRoZQpjb25maWd1cmF0aW9uIGZvciBjb250ZW50IGluIHRoZSB3ZWJzcGFjZS4gIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nCmNvbmZpZ3VyYXRpb24gcHJldmVudHMgYWNjZXNzIHRvIGFueSBVUkwtcGF0aCB0aGF0IGJlZ2lucyBpbiAvcHJpdmF0ZS4KSW4gcGFydGljdWxhciwgaXQgd2lsbCBhcHBseSB0byByZXF1ZXN0cyBmb3IKPGNvZGU+aHR0cDovL3lvdXJzaXRlLmV4YW1wbGUuY29tL3ByaXZhdGU8L2NvZGU+LAo8Y29kZT5odHRwOi8veW91cnNpdGUuZXhhbXBsZS5jb20vcHJpdmF0ZTEyMzwvY29kZT4sIGFuZAo8Y29kZT5odHRwOi8veW91cnNpdGUuZXhhbXBsZS5jb20vcHJpdmF0ZS9kaXIvZmlsZS5odG1sPC9jb2RlPiBhcyB3ZWxsCmFzIGFueSBvdGhlciByZXF1ZXN0cyBzdGFydGluZyB3aXRoIHRoZSA8Y29kZT4vcHJpdmF0ZTwvY29kZT4gc3RyaW5nLjwvcD4KCjxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctY29uZmlnIj4mbHQ7TG9jYXRpb25NYXRjaCAiXi9wcml2YXRlIiZndDsKICAgIFJlcXVpcmUgYWxsIGRlbmllZAombHQ7L0xvY2F0aW9uTWF0Y2gmZ3Q7PC9wcmU+CgoKPHA+VGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNsb2NhdGlvbiI+Jmx0O0xvY2F0aW9uJmd0OzwvYT48L2NvZGU+CmRpcmVjdGl2ZSBuZWVkIG5vdCBoYXZlIGFueXRoaW5nIHRvIGRvIHdpdGggdGhlIGZpbGVzeXN0ZW0uCkZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIGV4YW1wbGUgc2hvd3MgaG93IHRvIG1hcCBhIHBhcnRpY3VsYXIKVVJMIHRvIGFuIGludGVybmFsIEFwYWNoZSBIVFRQIFNlcnZlciBoYW5kbGVyIHByb3ZpZGVkIGJ5IDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9zdGF0dXMuaHRtbCI+bW9kX3N0YXR1czwvYT48L2NvZGU+LgpObyBmaWxlIGNhbGxlZCA8Y29kZT5zZXJ2ZXItc3RhdHVzPC9jb2RlPiBuZWVkcyB0byBleGlzdCBpbiB0aGUKZmlsZXN5c3RlbS48L3A+Cgo8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+Jmx0O0xvY2F0aW9uICIvc2VydmVyLXN0YXR1cyImZ3Q7CiAgICBTZXRIYW5kbGVyIHNlcnZlci1zdGF0dXMKJmx0Oy9Mb2NhdGlvbiZndDs8L3ByZT4KCgoKPGgzPjxhIG5hbWU9Im92ZXJsYXBwaW5nLXdlYnNwYWNlIiBpZD0ib3ZlcmxhcHBpbmctd2Vic3BhY2UiPk92ZXJsYXBwaW5nIFdlYnNwYWNlPC9hPjwvaDM+CjxwPkluIG9yZGVyIHRvIGhhdmUgdHdvIG92ZXJsYXBwaW5nIFVSTHMgb25lIGhhcyB0byBjb25zaWRlciB0aGUgb3JkZXIgaW4gd2hpY2gKY2VydGFpbiBzZWN0aW9ucyBvciBkaXJlY3RpdmVzIGFyZSBldmFsdWF0ZWQuIEZvcgo8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjbG9jYXRpb24iPiZsdDtMb2NhdGlvbiZndDs8L2E+PC9jb2RlPiB0aGlzIHdvdWxkIGJlOjwvcD4KPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPiZsdDtMb2NhdGlvbiAiL2ZvbyImZ3Q7CiZsdDsvTG9jYXRpb24mZ3Q7CiZsdDtMb2NhdGlvbiAiL2Zvby9iYXIiJmd0OwombHQ7L0xvY2F0aW9uJmd0OzwvcHJlPgoKPHA+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbW9kX2FsaWFzLmh0bWwjYWxpYXMiPiZsdDtBbGlhcyZndDs8L2E+PC9jb2RlPmVzIG9uIHRoZSBvdGhlciBoYW5kLAphcmUgbWFwcGVkIHZpY2UtdmVyc2E6PC9wPgo8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+QWxpYXMgIi9mb28vYmFyIiAiL3Nydi93d3cvdW5jb21tb24vYmFyIgpBbGlhcyAiL2ZvbyIgICAgICIvc3J2L3d3dy9jb21tb24vZm9vIjwvcHJlPgoKPHA+VGhlIHNhbWUgaXMgdHJ1ZSBmb3IgdGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF9wcm94eS5odG1sI3Byb3h5cGFzcyI+UHJveHlQYXNzPC9hPjwvY29kZT4KZGlyZWN0aXZlczo8L3A+CjxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctY29uZmlnIj5Qcm94eVBhc3MgIi9zcGVjaWFsLWFyZWEiICJodHRwOi8vc3BlY2lhbC5leGFtcGxlLmNvbSIgc21heD01IG1heD0xMApQcm94eVBhc3MgIi8iICJiYWxhbmNlcjovL215Y2x1c3Rlci8iIHN0aWNreXNlc3Npb249SlNFU1NJT05JRHxqc2Vzc2lvbmlkIG5vZmFpbG92ZXI9T248L3ByZT4KCgoKPGgzPjxhIG5hbWU9IndpbGRjYXJkcyIgaWQ9IndpbGRjYXJkcyI+V2lsZGNhcmRzIGFuZCBSZWd1bGFyIEV4cHJlc3Npb25zPC9hPjwvaDM+Cgo8cD5UaGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2RpcmVjdG9yeSI+Jmx0O0RpcmVjdG9yeSZndDs8L2E+PC9jb2RlPiwKPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2ZpbGVzIj4mbHQ7RmlsZXMmZ3Q7PC9hPjwvY29kZT4sIGFuZAo8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjbG9jYXRpb24iPiZsdDtMb2NhdGlvbiZndDs8L2E+PC9jb2RlPgpkaXJlY3RpdmVzIGNhbiBlYWNoIHVzZSBzaGVsbC1zdHlsZSB3aWxkY2FyZCBjaGFyYWN0ZXJzIGFzIGluCjxjb2RlPmZubWF0Y2g8L2NvZGU+IGZyb20gdGhlIEMgc3RhbmRhcmQgbGlicmFyeS4gIFRoZSBjaGFyYWN0ZXIgIioiCm1hdGNoZXMgYW55IHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMsICI/IiBtYXRjaGVzIGFueSBzaW5nbGUgY2hhcmFjdGVyLAphbmQgIls8ZW0+c2VxPC9lbT5dIiBtYXRjaGVzIGFueSBjaGFyYWN0ZXIgaW4gPGVtPnNlcTwvZW0+LiAgVGhlICIvIgpjaGFyYWN0ZXIgd2lsbCBub3QgYmUgbWF0Y2hlZCBieSBhbnkgd2lsZGNhcmQ7IGl0IG11c3QgYmUgc3BlY2lmaWVkCmV4cGxpY2l0bHkuPC9wPgoKPHA+SWYgZXZlbiBtb3JlIGZsZXhpYmxlIG1hdGNoaW5nIGlzIHJlcXVpcmVkLCBlYWNoCmNvbnRhaW5lciBoYXMgYSByZWd1bGFyIGV4cHJlc3Npb24gKHJlZ2V4KSBjb3VudGVycGFydCA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZGlyZWN0b3J5bWF0Y2giPiZsdDtEaXJlY3RvcnlNYXRjaCZndDs8L2E+PC9jb2RlPiwgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2ZpbGVzbWF0Y2giPiZsdDtGaWxlc01hdGNoJmd0OzwvYT48L2NvZGU+LCBhbmQgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2xvY2F0aW9ubWF0Y2giPiZsdDtMb2NhdGlvbk1hdGNoJmd0OzwvYT48L2NvZGU+IHRoYXQgYWxsb3cKcGVybC1jb21wYXRpYmxlCjxhIGNsYXNzPSJnbG9zc2FyeWxpbmsiIGhyZWY9Ii4vZ2xvc3NhcnkuaHRtbCNyZWdleCIgdGl0bGU9InNlZSBnbG9zc2FyeSI+cmVndWxhciBleHByZXNzaW9uczwvYT4KdG8gYmUgdXNlZCBpbiBjaG9vc2luZyB0aGUgbWF0Y2hlcy4gIEJ1dCBzZWUgdGhlIHNlY3Rpb24gYmVsb3cgb24KY29uZmlndXJhdGlvbiBtZXJnaW5nIHRvIGZpbmQgb3V0IGhvdyB1c2luZyByZWdleCBzZWN0aW9ucyB3aWxsIGNoYW5nZQpob3cgZGlyZWN0aXZlcyBhcmUgYXBwbGllZC48L3A+Cgo8cD5BIG5vbi1yZWdleCB3aWxkY2FyZCBzZWN0aW9uIHRoYXQgY2hhbmdlcyB0aGUgY29uZmlndXJhdGlvbiBvZgphbGwgdXNlciBkaXJlY3RvcmllcyBjb3VsZCBsb29rIGFzIGZvbGxvd3M6PC9wPgoKPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPiZsdDtEaXJlY3RvcnkgIi9ob21lLyovcHVibGljX2h0bWwiJmd0OwogICAgT3B0aW9ucyBJbmRleGVzCiZsdDsvRGlyZWN0b3J5Jmd0OzwvcHJlPgoKCjxwPlVzaW5nIHJlZ2V4IHNlY3Rpb25zLCB3ZSBjYW4gZGVueSBhY2Nlc3MgdG8gbWFueSB0eXBlcyBvZiBpbWFnZSBmaWxlcwphdCBvbmNlOjwvcD4KPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPiZsdDtGaWxlc01hdGNoICJcLig/aTpnaWZ8anBlP2d8cG5nKSQiJmd0OwogICAgUmVxdWlyZSBhbGwgZGVuaWVkCiZsdDsvRmlsZXNNYXRjaCZndDs8L3ByZT4KCgo8cD5SZWd1bGFyIGV4cHJlc3Npb25zIGNvbnRhaW5pbmcgPHN0cm9uZz5uYW1lZCBncm91cHMgYW5kCmJhY2tyZWZlcmVuY2VzPC9zdHJvbmc+IGFyZSBhZGRlZCB0byB0aGUgZW52aXJvbm1lbnQgd2l0aCB0aGUKY29ycmVzcG9uZGluZyBuYW1lIGluIHVwcGVyY2FzZS4gVGhpcyBhbGxvd3MgZWxlbWVudHMgb2YgZmlsZW5hbWUgcGF0aHMKYW5kIFVSTHMgdG8gYmUgcmVmZXJlbmNlZCBmcm9tIHdpdGhpbiA8YSBocmVmPSJleHByLmh0bWwiPmV4cHJlc3Npb25zPC9hPgphbmQgbW9kdWxlcyBsaWtlIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9yZXdyaXRlLmh0bWwiPm1vZF9yZXdyaXRlPC9hPjwvY29kZT4uPC9wPgoKPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPiZsdDtEaXJlY3RvcnlNYXRjaCAiXi92YXIvd3d3L2NvbWJpbmVkLyg/Jmx0O1NJVEVOQU1FJmd0O1teL10rKSImZ3Q7CiAgICByZXF1aXJlIGxkYXAtZ3JvdXAgImNuPSV7ZW52Ok1BVENIX1NJVEVOQU1FfSxvdT1jb21iaW5lZCxvPUV4YW1wbGUiCiZsdDsvRGlyZWN0b3J5TWF0Y2gmZ3Q7PC9wcmU+CgoKCgo8aDM+PGEgbmFtZT0iZXhwcmVzc2lvbnMiIGlkPSJleHByZXNzaW9ucyI+Qm9vbGVhbiBleHByZXNzaW9uczwvYT48L2gzPgo8cD5UaGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2lmIj4mbHQ7SWYmZ3Q7PC9hPjwvY29kZT4KZGlyZWN0aXZlIGNoYW5nZSB0aGUgY29uZmlndXJhdGlvbiBkZXBlbmRpbmcgb24gYSBjb25kaXRpb24gd2hpY2ggY2FuIGJlCmV4cHJlc3NlZCBieSBhIGJvb2xlYW4gZXhwcmVzc2lvbi4gRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgY29uZmlndXJhdGlvbgpkZW5pZXMgYWNjZXNzIGlmIHRoZSBIVFRQIFJlZmVyZXIgaGVhZGVyIGRvZXMgbm90IHN0YXJ0IHdpdGgKImh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIi48L3A+CjxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctY29uZmlnIj4mbHQ7SWYgIiEoJXtIVFRQX1JFRkVSRVJ9IC1zdHJtYXRjaCAnaHR0cDovL3d3dy5leGFtcGxlLmNvbS8qJykiJmd0OwogICAgUmVxdWlyZSBhbGwgZGVuaWVkCiZsdDsvSWYmZ3Q7PC9wcmU+CgoKCgo8aDM+PGEgbmFtZT0id2hpY2h3aGVuIiBpZD0id2hpY2h3aGVuIj5XaGF0IHRvIHVzZSBXaGVuPC9hPjwvaDM+Cgo8cD5DaG9vc2luZyBiZXR3ZWVuIGZpbGVzeXN0ZW0gY29udGFpbmVycyBhbmQgd2Vic3BhY2UgY29udGFpbmVycyBpcwphY3R1YWxseSBxdWl0ZSBlYXN5LiAgV2hlbiBhcHBseWluZyBkaXJlY3RpdmVzIHRvIG9iamVjdHMgdGhhdCByZXNpZGUKaW4gdGhlIGZpbGVzeXN0ZW0gYWx3YXlzIHVzZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZGlyZWN0b3J5Ij4mbHQ7RGlyZWN0b3J5Jmd0OzwvYT48L2NvZGU+IG9yIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNmaWxlcyI+Jmx0O0ZpbGVzJmd0OzwvYT48L2NvZGU+LiAgV2hlbiBhcHBseWluZyBkaXJlY3RpdmVzIHRvIG9iamVjdHMKdGhhdCBkbyBub3QgcmVzaWRlIGluIHRoZSBmaWxlc3lzdGVtIChzdWNoIGFzIGEgd2VicGFnZSBnZW5lcmF0ZWQgZnJvbQphIGRhdGFiYXNlKSwgdXNlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNsb2NhdGlvbiI+Jmx0O0xvY2F0aW9uJmd0OzwvYT48L2NvZGU+LjwvcD4KCjxwPkl0IGlzIGltcG9ydGFudCB0byBuZXZlciB1c2UgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2xvY2F0aW9uIj4mbHQ7TG9jYXRpb24mZ3Q7PC9hPjwvY29kZT4gd2hlbiB0cnlpbmcgdG8gcmVzdHJpY3QKYWNjZXNzIHRvIG9iamVjdHMgaW4gdGhlIGZpbGVzeXN0ZW0uICBUaGlzIGlzIGJlY2F1c2UgbWFueQpkaWZmZXJlbnQgd2Vic3BhY2UgbG9jYXRpb25zIChVUkxzKSBjb3VsZCBtYXAgdG8gdGhlIHNhbWUgZmlsZXN5c3RlbQpsb2NhdGlvbiwgYWxsb3dpbmcgeW91ciByZXN0cmljdGlvbnMgdG8gYmUgY2lyY3VtdmVudGVkLgpGb3IgZXhhbXBsZSwgY29uc2lkZXIgdGhlIGZvbGxvd2luZyBjb25maWd1cmF0aW9uOjwvcD4KCjxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctY29uZmlnIj4mbHQ7TG9jYXRpb24gIi9kaXIvIiZndDsKICAgIFJlcXVpcmUgYWxsIGRlbmllZAombHQ7L0xvY2F0aW9uJmd0OzwvcHJlPgoKCjxwPlRoaXMgd29ya3MgZmluZSBpZiB0aGUgcmVxdWVzdCBpcyBmb3IKPGNvZGU+aHR0cDovL3lvdXJzaXRlLmV4YW1wbGUuY29tL2Rpci88L2NvZGU+LiAgQnV0IHdoYXQgaWYgeW91IGFyZSBvbgphIGNhc2UtaW5zZW5zaXRpdmUgZmlsZXN5c3RlbT8gIFRoZW4geW91ciByZXN0cmljdGlvbiBjb3VsZCBiZSBlYXNpbHkKY2lyY3VtdmVudGVkIGJ5IHJlcXVlc3RpbmcKPGNvZGU+aHR0cDovL3lvdXJzaXRlLmV4YW1wbGUuY29tL0RJUi88L2NvZGU+LiAgVGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNkaXJlY3RvcnkiPiZsdDtEaXJlY3RvcnkmZ3Q7PC9hPjwvY29kZT4gZGlyZWN0aXZlLCBpbgpjb250cmFzdCwgd2lsbCBhcHBseSB0byBhbnkgY29udGVudCBzZXJ2ZWQgZnJvbSB0aGF0IGxvY2F0aW9uLApyZWdhcmRsZXNzIG9mIGhvdyBpdCBpcyBjYWxsZWQuICAoQW4gZXhjZXB0aW9uIGlzIGZpbGVzeXN0ZW0gbGlua3MuClRoZSBzYW1lIGRpcmVjdG9yeSBjYW4gYmUgcGxhY2VkIGluIG1vcmUgdGhhbiBvbmUgcGFydCBvZiB0aGUKZmlsZXN5c3RlbSB1c2luZyBzeW1ib2xpYyBsaW5rcy4gIFRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZGlyZWN0b3J5Ij4mbHQ7RGlyZWN0b3J5Jmd0OzwvYT48L2NvZGU+IGRpcmVjdGl2ZSB3aWxsIGZvbGxvdyB0aGUgc3ltYm9saWMKbGluayB3aXRob3V0IHJlc2V0dGluZyB0aGUgcGF0aG5hbWUuICBUaGVyZWZvcmUsIGZvciB0aGUgaGlnaGVzdCBsZXZlbApvZiBzZWN1cml0eSwgc3ltYm9saWMgbGlua3Mgc2hvdWxkIGJlIGRpc2FibGVkIHdpdGggdGhlIGFwcHJvcHJpYXRlCjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNvcHRpb25zIj5PcHRpb25zPC9hPjwvY29kZT4gZGlyZWN0aXZlLik8L3A+Cgo8cD5JZiB5b3UgYXJlLCBwZXJoYXBzLCB0aGlua2luZyB0aGF0IG5vbmUgb2YgdGhpcyBhcHBsaWVzIHRvIHlvdQpiZWNhdXNlIHlvdSB1c2UgYSBjYXNlLXNlbnNpdGl2ZSBmaWxlc3lzdGVtLCByZW1lbWJlciB0aGF0IHRoZXJlIGFyZQptYW55IG90aGVyIHdheXMgdG8gbWFwIG11bHRpcGxlIHdlYnNwYWNlIGxvY2F0aW9ucyB0byB0aGUgc2FtZQpmaWxlc3lzdGVtIGxvY2F0aW9uLiAgVGhlcmVmb3JlIHlvdSBzaG91bGQgYWx3YXlzIHVzZSB0aGUgZmlsZXN5c3RlbQpjb250YWluZXJzIHdoZW4geW91IGNhbi4gIFRoZXJlIGlzLCBob3dldmVyLCBvbmUgZXhjZXB0aW9uIHRvIHRoaXMKcnVsZS4gIFB1dHRpbmcgY29uZmlndXJhdGlvbiByZXN0cmljdGlvbnMgaW4gYSA8Y29kZT4mbHQ7TG9jYXRpb24KIi8iJmd0OzwvY29kZT4gc2VjdGlvbiBpcyBwZXJmZWN0bHkgc2FmZSBiZWNhdXNlIHRoaXMgc2VjdGlvbiB3aWxsIGFwcGx5CnRvIGFsbCByZXF1ZXN0cyByZWdhcmRsZXNzIG9mIHRoZSBzcGVjaWZpYyBVUkwuPC9wPgoKCjxoMz48YSBuYW1lPSJuZXN0aW5nIiBpZD0ibmVzdGluZyI+TmVzdGluZyBvZiBzZWN0aW9uczwvYT48L2gzPgoKPHA+U29tZSBzZWN0aW9uIHR5cGVzIGNhbiBiZSBuZXN0ZWQgaW5zaWRlIG90aGVyIHNlY3Rpb24gdHlwZXMuIE9uIHRoZSBvbmUKaGFuZCwgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2ZpbGVzIj4mbHQ7RmlsZXMmZ3Q7PC9hPjwvY29kZT4gY2FuIGJlIHVzZWQKaW5zaWRlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNkaXJlY3RvcnkiPiZsdDtEaXJlY3RvcnkmZ3Q7PC9hPjwvY29kZT4uICBPbgp0aGUgb3RoZXIgaGFuZCwgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2lmIj4mbHQ7SWYmZ3Q7PC9hPjwvY29kZT4gY2FuCmJlIHVzZWQgaW5zaWRlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNkaXJlY3RvcnkiPiZsdDtEaXJlY3RvcnkmZ3Q7PC9hPjwvY29kZT4sCjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNsb2NhdGlvbiI+Jmx0O0xvY2F0aW9uJmd0OzwvYT48L2NvZGU+LCBhbmQgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2ZpbGVzIj4mbHQ7RmlsZXMmZ3Q7PC9hPjwvY29kZT4gc2VjdGlvbnMgKGJ1dCBub3QgaW5zaWRlIGFub3RoZXIKPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2lmIj4mbHQ7SWYmZ3Q7PC9hPjwvY29kZT4pLiBUaGUgcmVnZXgKY291bnRlcnBhcnRzIG9mIHRoZSBuYW1lZCBzZWN0aW9uIGJlaGF2ZSBpZGVudGljYWxseS48L3A+Cgo8cD5OZXN0ZWQgc2VjdGlvbnMgYXJlIG1lcmdlZCBhZnRlciBub24tbmVzdGVkIHNlY3Rpb25zIG9mIHRoZSBzYW1lIHR5cGUuPC9wPgoKCgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9InZpcnR1YWxob3N0IiBpZD0idmlydHVhbGhvc3QiPlZpcnR1YWwgSG9zdHM8L2E+IDxhIHRpdGxlPSJQZXJtYW5lbnQgbGluayIgaHJlZj0iI3ZpcnR1YWxob3N0IiBjbGFzcz0icGVybWFsaW5rIj4mcGFyYTs8L2E+PC9oMj4KCjxwPlRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjdmlydHVhbGhvc3QiPiZsdDtWaXJ0dWFsSG9zdCZndDs8L2E+PC9jb2RlPgpjb250YWluZXIgZW5jbG9zZXMgZGlyZWN0aXZlcyB0aGF0IGFwcGx5IHRvIHNwZWNpZmljIGhvc3RzLgpUaGlzIGlzIHVzZWZ1bCB3aGVuIHNlcnZpbmcgbXVsdGlwbGUgaG9zdHMgZnJvbSB0aGUgc2FtZSBtYWNoaW5lCndpdGggYSBkaWZmZXJlbnQgY29uZmlndXJhdGlvbiBmb3IgZWFjaC4gIEZvciBtb3JlIGluZm9ybWF0aW9uLApzZWUgdGhlIDxhIGhyZWY9InZob3N0cy8iPlZpcnR1YWwgSG9zdCBEb2N1bWVudGF0aW9uPC9hPi48L3A+CjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0icHJveHkiIGlkPSJwcm94eSI+UHJveHk8L2E+IDxhIHRpdGxlPSJQZXJtYW5lbnQgbGluayIgaHJlZj0iI3Byb3h5IiBjbGFzcz0icGVybWFsaW5rIj4mcGFyYTs8L2E+PC9oMj4KCjxwPlRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2RfcHJveHkuaHRtbCNwcm94eSI+Jmx0O1Byb3h5Jmd0OzwvYT48L2NvZGU+CmFuZCA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2RfcHJveHkuaHRtbCNwcm94eW1hdGNoIj4mbHQ7UHJveHlNYXRjaCZndDs8L2E+PC9jb2RlPgpjb250YWluZXJzIGFwcGx5IGVuY2xvc2VkIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcyBvbmx5CnRvIHNpdGVzIGFjY2Vzc2VkIHRocm91Z2ggPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvbW9kX3Byb3h5Lmh0bWwiPm1vZF9wcm94eTwvYT48L2NvZGU+J3MgcHJveHkgc2VydmVyCnRoYXQgbWF0Y2ggdGhlIHNwZWNpZmllZCBVUkwuIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIGNvbmZpZ3VyYXRpb24Kd2lsbCBhbGxvdyBvbmx5IGEgc3Vic2V0IG9mIGNsaWVudHMgdG8gYWNjZXNzIHRoZQo8Y29kZT53d3cuZXhhbXBsZS5jb208L2NvZGU+IHdlYnNpdGUgdXNpbmcgdGhlIHByb3h5IHNlcnZlcjo8L3A+Cgo8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+Jmx0O1Byb3h5ICJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyoiJmd0OwogICAgUmVxdWlyZSBob3N0IHlvdXJuZXR3b3JrLmV4YW1wbGUuY29tCiZsdDsvUHJveHkmZ3Q7PC9wcmU+Cgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9IndoYXR3aGVyZSIgaWQ9IndoYXR3aGVyZSI+V2hhdCBEaXJlY3RpdmVzIGFyZSBBbGxvd2VkPzwvYT4gPGEgdGl0bGU9IlBlcm1hbmVudCBsaW5rIiBocmVmPSIjd2hhdHdoZXJlIiBjbGFzcz0icGVybWFsaW5rIj4mcGFyYTs8L2E+PC9oMj4KCjxwPlRvIGZpbmQgb3V0IHdoYXQgZGlyZWN0aXZlcyBhcmUgYWxsb3dlZCBpbiB3aGF0IHR5cGVzIG9mCmNvbmZpZ3VyYXRpb24gc2VjdGlvbnMsIGNoZWNrIHRoZSA8YSBocmVmPSJtb2QvZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0PC9hPiBvZiB0aGUgZGlyZWN0aXZlLgpFdmVyeXRoaW5nIHRoYXQgaXMgYWxsb3dlZCBpbgo8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZGlyZWN0b3J5Ij4mbHQ7RGlyZWN0b3J5Jmd0OzwvYT48L2NvZGU+CnNlY3Rpb25zIGlzIGFsc28gc3ludGFjdGljYWxseSBhbGxvd2VkIGluCjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNkaXJlY3RvcnltYXRjaCI+Jmx0O0RpcmVjdG9yeU1hdGNoJmd0OzwvYT48L2NvZGU+LAo8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZmlsZXMiPiZsdDtGaWxlcyZndDs8L2E+PC9jb2RlPiwKPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2ZpbGVzbWF0Y2giPiZsdDtGaWxlc01hdGNoJmd0OzwvYT48L2NvZGU+LAo8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjbG9jYXRpb24iPiZsdDtMb2NhdGlvbiZndDs8L2E+PC9jb2RlPiwKPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2xvY2F0aW9ubWF0Y2giPiZsdDtMb2NhdGlvbk1hdGNoJmd0OzwvYT48L2NvZGU+LAo8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2RfcHJveHkuaHRtbCNwcm94eSI+Jmx0O1Byb3h5Jmd0OzwvYT48L2NvZGU+LAphbmQgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbW9kX3Byb3h5Lmh0bWwjcHJveHltYXRjaCI+Jmx0O1Byb3h5TWF0Y2gmZ3Q7PC9hPjwvY29kZT4Kc2VjdGlvbnMuICBUaGVyZSBhcmUgc29tZSBleGNlcHRpb25zLCBob3dldmVyOjwvcD4KCjx1bD4KPGxpPlRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjYWxsb3dvdmVycmlkZSI+QWxsb3dPdmVycmlkZTwvYT48L2NvZGU+IGRpcmVjdGl2ZQp3b3JrcyBvbmx5IGluIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNkaXJlY3RvcnkiPiZsdDtEaXJlY3RvcnkmZ3Q7PC9hPjwvY29kZT4Kc2VjdGlvbnMuPC9saT4KCjxsaT5UaGUgPGNvZGU+Rm9sbG93U3ltTGlua3M8L2NvZGU+IGFuZAo8Y29kZT5TeW1MaW5rc0lmT3duZXJNYXRjaDwvY29kZT4gPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI29wdGlvbnMiPk9wdGlvbnM8L2E+PC9jb2RlPiB3b3JrIG9ubHkgaW4gPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2RpcmVjdG9yeSI+Jmx0O0RpcmVjdG9yeSZndDs8L2E+PC9jb2RlPiBzZWN0aW9ucyBvcgo8Y29kZT4uaHRhY2Nlc3M8L2NvZGU+IGZpbGVzLjwvbGk+Cgo8bGk+VGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNvcHRpb25zIj5PcHRpb25zPC9hPjwvY29kZT4gZGlyZWN0aXZlIGNhbm5vdApiZSB1c2VkIGluIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNmaWxlcyI+Jmx0O0ZpbGVzJmd0OzwvYT48L2NvZGU+CmFuZCA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZmlsZXNtYXRjaCI+Jmx0O0ZpbGVzTWF0Y2gmZ3Q7PC9hPjwvY29kZT4Kc2VjdGlvbnMuPC9saT4KPC91bD4KPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJtZXJnaW5nIiBpZD0ibWVyZ2luZyI+SG93IHRoZSBzZWN0aW9ucyBhcmUgbWVyZ2VkPC9hPiA8YSB0aXRsZT0iUGVybWFuZW50IGxpbmsiIGhyZWY9IiNtZXJnaW5nIiBjbGFzcz0icGVybWFsaW5rIj4mcGFyYTs8L2E+PC9oMj4KCjxwPlRoZSBjb25maWd1cmF0aW9uIHNlY3Rpb25zIGFyZSBhcHBsaWVkIGluIGEgdmVyeSBwYXJ0aWN1bGFyIG9yZGVyLgpTaW5jZSB0aGlzIGNhbiBoYXZlIGltcG9ydGFudCBlZmZlY3RzIG9uIGhvdyBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZXMKYXJlIGludGVycHJldGVkLCBpdCBpcyBpbXBvcnRhbnQgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyB3b3Jrcy48L3A+CgogICAgPHA+VGhlIG9yZGVyIG9mIG1lcmdpbmcgaXM6PC9wPgoKICAgIDxvbD4KICAgICAgPGxpPiA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZGlyZWN0b3J5Ij4mbHQ7RGlyZWN0b3J5Jmd0OzwvYT48L2NvZGU+IChleGNlcHQgcmVndWxhciBleHByZXNzaW9ucykKICAgICAgYW5kIDxjb2RlPi5odGFjY2VzczwvY29kZT4gZG9uZSBzaW11bHRhbmVvdXNseSAod2l0aAogICAgICA8Y29kZT4uaHRhY2Nlc3M8L2NvZGU+LCBpZiBhbGxvd2VkLCBvdmVycmlkaW5nCiAgICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNkaXJlY3RvcnkiPiZsdDtEaXJlY3RvcnkmZ3Q7PC9hPjwvY29kZT4pPC9saT4KCiAgICAgIDxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZGlyZWN0b3J5bWF0Y2giPiZsdDtEaXJlY3RvcnlNYXRjaCZndDs8L2E+PC9jb2RlPgogICAgICAoYW5kIDxjb2RlPiZsdDtEaXJlY3RvcnkgIn4iJmd0OzwvY29kZT4pPC9saT4KCiAgICAgIDxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZmlsZXMiPiZsdDtGaWxlcyZndDs8L2E+PC9jb2RlPiBhbmQgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2ZpbGVzbWF0Y2giPiZsdDtGaWxlc01hdGNoJmd0OzwvYT48L2NvZGU+IGRvbmUKICAgICAgc2ltdWx0YW5lb3VzbHk8L2xpPgoKICAgICAgPGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNsb2NhdGlvbiI+Jmx0O0xvY2F0aW9uJmd0OzwvYT48L2NvZGU+CiAgICAgIGFuZCA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjbG9jYXRpb25tYXRjaCI+Jmx0O0xvY2F0aW9uTWF0Y2gmZ3Q7PC9hPjwvY29kZT4gZG9uZSBzaW11bHRhbmVvdXNseTwvbGk+CgogICAgICA8bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2lmIj4mbHQ7SWYmZ3Q7PC9hPjwvY29kZT4KICAgICAgPC9saT4KCiAgICA8L29sPgoKICAgIDxwPlNvbWUgaW1wb3J0YW50IHJlbWFya3M6PC9wPgogICAgPHVsPgogICAgICAgIDxsaT5BcGFydCBmcm9tIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNkaXJlY3RvcnkiPiZsdDtEaXJlY3RvcnkmZ3Q7PC9hPjwvY29kZT4sIHdpdGhpbiBlYWNoIGdyb3VwIHRoZSBzZWN0aW9ucyBhcmUKICAgICAgICBwcm9jZXNzZWQgaW4gdGhlIG9yZGVyIHRoZXkgYXBwZWFyIGluIHRoZSBjb25maWd1cmF0aW9uIGZpbGVzLgogICAgICAgIEZvciBleGFtcGxlLCBhIHJlcXVlc3QgZm9yIDxlbT4vZm9vL2JhcjwvZW0+IHdpbGwgbWF0Y2gKICAgICAgICA8Y29kZT4mbHQ7TG9jYXRpb24gIi9mb28vYmFyIiZndDs8L2NvZGU+IGFuZCAKICAgICAgICA8Y29kZT4mbHQ7TG9jYXRpb24gIi9mb28iJmd0OzwvY29kZT4gKGdyb3VwIDQgaW4gdGhpcyBjYXNlKToKICAgICAgICBib3RoIHNlY3Rpb25zIHdpbGwgYmUgZXZhbHVhdGVkCiAgICAgICAgYnV0IGluIHRoZSBvcmRlciB0aGV5IGFwcGVhciBpbiB0aGUgY29uZmlndXJhdGlvbiBmaWxlcy48L2xpPgogICAgICAgIDxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjZGlyZWN0b3J5Ij4mbHQ7RGlyZWN0b3J5Jmd0OzwvYT48L2NvZGU+CiAgICAgICAgKGdyb3VwIDEgYWJvdmUpIGlzIHByb2Nlc3NlZCBpbiB0aGUgb3JkZXIgc2hvcnRlc3QgZGlyZWN0b3J5CiAgICAgICAgY29tcG9uZW50IHRvIGxvbmdlc3QuIEZvciBleGFtcGxlLAogICAgICAgIDxjb2RlPiZsdDtEaXJlY3RvcnkgIi92YXIvd2ViL2RpciImZ3Q7PC9jb2RlPiB3aWxsIGJlIHByb2Nlc3NlZCBiZWZvcmUKICAgICAgICA8Y29kZT4mbHQ7RGlyZWN0b3J5ICIvdmFyL3dlYi9kaXIvc3ViZGlyIiZndDs8L2NvZGU+LjwvbGk+CiAgICAgICAgPGxpPklmIG11bHRpcGxlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNkaXJlY3RvcnkiPiZsdDtEaXJlY3RvcnkmZ3Q7PC9hPjwvY29kZT4gc2VjdGlvbnMgYXBwbHkKICAgICAgICB0byB0aGUgc2FtZSBkaXJlY3RvcnkgdGhleSBhcmUgcHJvY2Vzc2VkIGluIHRoZSBjb25maWd1cmF0aW9uIGZpbGUKICAgICAgICBvcmRlci48L2xpPgogICAgICAgIDxsaT5Db25maWd1cmF0aW9ucyBpbmNsdWRlZCB2aWEgdGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNpbmNsdWRlIj5JbmNsdWRlPC9hPjwvY29kZT4gZGlyZWN0aXZlIHdpbGwgYmUgdHJlYXRlZCBhcyBpZgogICAgICAgIHRoZXkgd2VyZSBpbnNpZGUgdGhlIGluY2x1ZGluZyBmaWxlIGF0IHRoZSBsb2NhdGlvbiBvZiB0aGUKICAgICAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9jb3JlLmh0bWwjaW5jbHVkZSI+SW5jbHVkZTwvYT48L2NvZGU+IGRpcmVjdGl2ZS48L2xpPgogICAgICAgIDxsaT5TZWN0aW9ucyBpbnNpZGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI3ZpcnR1YWxob3N0Ij4mbHQ7VmlydHVhbEhvc3QmZ3Q7PC9hPjwvY29kZT4gc2VjdGlvbnMKICAgICAgICBhcmUgYXBwbGllZCA8ZW0+YWZ0ZXI8L2VtPiB0aGUgY29ycmVzcG9uZGluZyBzZWN0aW9ucyBvdXRzaWRlCiAgICAgICAgdGhlIHZpcnR1YWwgaG9zdCBkZWZpbml0aW9uLiBUaGlzIGFsbG93cyB2aXJ0dWFsIGhvc3RzIHRvCiAgICAgICAgb3ZlcnJpZGUgdGhlIG1haW4gc2VydmVyIGNvbmZpZ3VyYXRpb24uPC9saT4KICAgICAgICA8bGk+V2hlbiB0aGUgcmVxdWVzdCBpcyBzZXJ2ZWQgYnkgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvbW9kX3Byb3h5Lmh0bWwiPm1vZF9wcm94eTwvYT48L2NvZGU+LCB0aGUKICAgICAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2RfcHJveHkuaHRtbCNwcm94eSI+Jmx0O1Byb3h5Jmd0OzwvYT48L2NvZGU+CiAgICAgICAgY29udGFpbmVyIHRha2VzIHRoZSBwbGFjZSBvZiB0aGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2RpcmVjdG9yeSI+Jmx0O0RpcmVjdG9yeSZndDs8L2E+PC9jb2RlPiBjb250YWluZXIgaW4gdGhlIHByb2Nlc3NpbmcKICAgICAgICBvcmRlci48L2xpPgogICAgPC91bD4KCiAgICA8ZGl2IGNsYXNzPSJub3RlIj48aDM+VGVjaG5pY2FsIE5vdGU8L2gzPgogICAgICBUaGVyZSBpcyBhY3R1YWxseSBhCiAgICAgIDxjb2RlPiZsdDtMb2NhdGlvbiZndDs8L2NvZGU+Lzxjb2RlPiZsdDtMb2NhdGlvbk1hdGNoJmd0OzwvY29kZT4KICAgICAgc2VxdWVuY2UgcGVyZm9ybWVkIGp1c3QgYmVmb3JlIHRoZSBuYW1lIHRyYW5zbGF0aW9uIHBoYXNlCiAgICAgICh3aGVyZSA8Y29kZT5BbGlhc2VzPC9jb2RlPiBhbmQgPGNvZGU+RG9jdW1lbnRSb290czwvY29kZT4KICAgICAgYXJlIHVzZWQgdG8gbWFwIFVSTHMgdG8gZmlsZW5hbWVzKS4gVGhlIHJlc3VsdHMgb2YgdGhpcwogICAgICBzZXF1ZW5jZSBhcmUgY29tcGxldGVseSB0aHJvd24gYXdheSBhZnRlciB0aGUgdHJhbnNsYXRpb24gaGFzCiAgICAgIGNvbXBsZXRlZC4KICAgIDwvZGl2PgoKPGgzPjxhIG5hbWU9InJlbGF0aW9uc2hpcC1tb2R1bGUtY29uZmlndXJhdGlvbiIgaWQ9InJlbGF0aW9uc2hpcC1tb2R1bGUtY29uZmlndXJhdGlvbiI+UmVsYXRpb25zaGlwIGJldHdlZW4gbW9kdWxlcyBhbmQgY29uZmlndXJhdGlvbiBzZWN0aW9uczwvYT48L2gzPgogICAgPHA+T25lIHF1ZXN0aW9uIHRoYXQgb2Z0ZW4gYXJpc2VzIGFmdGVyIHJlYWRpbmcgaG93IGNvbmZpZ3VyYXRpb24gc2VjdGlvbnMgYXJlCiAgICBtZXJnZWQgaXMgcmVsYXRlZCB0byBob3cgYW5kIHdoZW4gZGlyZWN0aXZlcyBvZiBzcGVjaWZpYyBtb2R1bGVzIGxpa2UgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi9tb2QvbW9kX3Jld3JpdGUuaHRtbCI+bW9kX3Jld3JpdGU8L2E+PC9jb2RlPgogICAgYXJlIHByb2Nlc3NlZC4gVGhlIGFuc3dlciBpcyBub3QgdHJpdmlhbCBhbmQgbmVlZHMgYSBiaXQgb2YgYmFja2dyb3VuZC4gCiAgICBFYWNoIGh0dHBkIG1vZHVsZSBtYW5hZ2VzIGl0cyBvd24gY29uZmlndXJhdGlvbiwgYW5kIGVhY2ggb2YgaXRzIGRpcmVjdGl2ZXMgaW4gaHR0cGQuY29uZiBzcGVjaWZ5IG9uZSBwaWVjZSAKICAgIG9mIGNvbmZpZ3VyYXRpb24gaW4gYSBwYXJ0aWN1bGFyIGNvbnRleHQuIGh0dHBkIGRvZXMgbm90IGV4ZWN1dGUgYSBjb21tYW5kIGFzIGl0IGlzIHJlYWQuPC9wPgogICAgPHA+QXQgcnVudGltZSwgdGhlIGNvcmUgb2YgaHR0cGQgaXRlcmF0ZXMgb3ZlciB0aGUgZGVmaW5lZCBjb25maWd1cmF0aW9uIHNlY3Rpb25zIGluIHRoZSBvcmRlcgogICAgZGVzY3JpYmVkIGFib3ZlIHRvIGRldGVybWluZSB3aGljaCBvbmVzIGFwcGx5IHRvIHRoZSBjdXJyZW50IHJlcXVlc3QuIFdoZW4gdGhlIGZpcnN0IHNlY3Rpb24gbWF0Y2hlcywgCiAgICBpdCBpcyBjb25zaWRlcmVkIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgcmVxdWVzdC4gSWYgYSBzdWJzZXF1ZW50IHNlY3Rpb24gbWF0Y2hlcyB0b28sIAogICAgdGhlbiBlYWNoIG1vZHVsZSB3aXRoIGEgZGlyZWN0aXZlIGluIGVpdGhlciBvZiB0aGUgc2VjdGlvbnMgaXMgZ2l2ZW4gYSBjaGFuY2UgdG8gbWVyZ2UgaXRzIGNvbmZpZ3VyYXRpb24gYmV0d2VlbiB0aGUgdHdvIHNlY3Rpb25zLiBUaGUgcmVzdWx0IGlzIGEgdGhpcmQgY29uZmlndXJhdGlvbiwgYW5kIHRoZSBwcm9jZXNzIGdvZXMgb24gdW50aWwgYWxsIHRoZSBjb25maWd1cmF0aW9uIHNlY3Rpb25zCiAgICBhcmUgZXZhbHVhdGVkLjwvcD4KICAgIDxwPkFmdGVyIHRoZSBhYm92ZSBzdGVwLCB0aGUgInJlYWwiIHByb2Nlc3Npbmcgb2YgdGhlIEhUVFAgcmVxdWVzdCBiZWdpbnM6IGVhY2ggbW9kdWxlIGhhcyBhIGNoYW5jZSB0byBydW4gCiAgICBhbmQgcGVyZm9ybSB3aGF0ZXZlciB0YXNrcyB0aGV5IGxpa2UuIFRoZXkgY2FuIHJldHJpZXZlIHRoZWlyIG93biBmaW5hbCBtZXJnZWQgY29uZmlndXJhdGlvbiBmcm9tIHRoZSBjb3JlCiAgICBvZiB0aGUgaHR0cGQgdG8gZGV0ZXJtaW5lIGhvdyB0aGV5IHNob3VsZCBhY3QuPC9wPgogICAgPHA+QW4gZXhhbXBsZSBjYW4gaGVscCB0byB2aXN1YWxpemUgdGhlIHdob2xlIHByb2Nlc3MuIFRoZSBmb2xsb3dpbmcgY29uZmlndXJhdGlvbiB1c2VzIHRoZSAKICAgICAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuL21vZC9tb2RfaGVhZGVycy5odG1sI2hlYWRlciI+SGVhZGVyPC9hPjwvY29kZT4gZGlyZWN0aXZlIG9mIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9oZWFkZXJzLmh0bWwiPm1vZF9oZWFkZXJzPC9hPjwvY29kZT4gdG8gc2V0CiAgICAgICAgYSBzcGVjaWZpYyBIVFRQIGhlYWRlci4gV2hhdCB2YWx1ZSB3aWxsIGh0dHBkIHNldCBpbiB0aGUgPGNvZGU+Q3VzdG9tSGVhZGVyTmFtZTwvY29kZT4gaGVhZGVyIGZvciBhIHJlcXVlc3QgdG8KICAgICAgICA8Y29kZT4vZXhhbXBsZS9pbmRleC5odG1sPC9jb2RlPiA/CiAgICA8L3A+CiAgICA8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+Jmx0O0RpcmVjdG9yeSAiLyImZ3Q7CiAgICBIZWFkZXIgc2V0IEN1c3RvbUhlYWRlck5hbWUgb25lCiAgICAmbHQ7RmlsZXNNYXRjaCAiLioiJmd0OwogICAgICAgIEhlYWRlciBzZXQgQ3VzdG9tSGVhZGVyTmFtZSB0aHJlZQogICAgJmx0Oy9GaWxlc01hdGNoJmd0OwombHQ7L0RpcmVjdG9yeSZndDsKCiZsdDtEaXJlY3RvcnkgIi9leGFtcGxlIiZndDsKICAgIEhlYWRlciBzZXQgQ3VzdG9tSGVhZGVyTmFtZSB0d28KJmx0Oy9EaXJlY3RvcnkmZ3Q7PC9wcmU+CiAgICAKICAgIDx1bD4KICAgICAgICA8bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+RGlyZWN0b3J5PC9jb2RlPiAiLyIgbWF0Y2hlcyBhbmQgYW4gaW5pdGlhbCBjb25maWd1cmF0aW9uIHRvIHNldCB0aGUgPGNvZGU+Q3VzdG9tSGVhZGVyTmFtZTwvY29kZT4gaGVhZGVyIHdpdGggdGhlIHZhbHVlIDxjb2RlPm9uZTwvY29kZT4gaXMgY3JlYXRlZC48L2xpPgogICAgICAgIDxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5EaXJlY3Rvcnk8L2NvZGU+ICIvZXhhbXBsZSIgbWF0Y2hlcywgYW5kIHNpbmNlIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9oZWFkZXJzLmh0bWwiPm1vZF9oZWFkZXJzPC9hPjwvY29kZT4gc3BlY2lmaWVzIGluIGl0cyBjb2RlIHRvIG92ZXJyaWRlIGluIGNhc2Ugb2YgYSBtZXJnZSwgYSBuZXcgY29uZmlndXJhdGlvbiBpcyBjcmVhdGVkIHRvIHNldCB0aGUgPGNvZGU+Q3VzdG9tSGVhZGVyTmFtZTwvY29kZT4gaGVhZGVyIHdpdGggdGhlIHZhbHVlIDxjb2RlPnR3bzwvY29kZT4uPC9saT4KICAgICAgICA8bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+RmlsZXNNYXRjaDwvY29kZT4gIi4qIiBtYXRjaGVzIGFuZCBhbm90aGVyIG1lcmdlIG9wcG9ydHVuaXR5IGFyaXNlcywgY2F1c2luZyB0aGUgPGNvZGU+Q3VzdG9tSGVhZGVyTmFtZTwvY29kZT4gaGVhZGVyIHRvIGJlIHNldCB3aXRoIHRoZSB2YWx1ZSA8Y29kZT50aHJlZTwvY29kZT4uPC9saT4KICAgICAgICA8bGk+RXZlbnR1YWxseSBkdXJpbmcgdGhlIG5leHQgc3RlcHMgb2YgdGhlIEhUVFAgcmVxdWVzdCBwcm9jZXNzaW5nIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9oZWFkZXJzLmh0bWwiPm1vZF9oZWFkZXJzPC9hPjwvY29kZT4gd2lsbCBiZSBjYWxsZWQgYW5kIGl0IHdpbGwgcmVjZWl2ZSB0aGUgY29uZmlndXJhdGlvbiB0byBzZXQgdGhlIDxjb2RlPkN1c3RvbUhlYWRlck5hbWU8L2NvZGU+IGhlYWRlciB3aXRoIHRoZSB2YWx1ZSA8Y29kZT50aHJlZTwvY29kZT4uIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4vbW9kL21vZF9oZWFkZXJzLmh0bWwiPm1vZF9oZWFkZXJzPC9hPjwvY29kZT4gbm9ybWFsbHkgdXNlcyB0aGlzIGNvbmZpZ3VyYXRpb24gdG8gcGVyZm9tIGl0cyBqb2IsIG5hbWVseSBzZXR0aW5nIHRoZSBmb28gaGVhZGVyLiBUaGlzIGRvZXMgbm90IG1lYW4gdGhhdCBhIG1vZHVsZSBjYW4ndCBwZXJmb3JtIGEgbW9yZSBjb21wbGV4IGFjdGlvbiBsaWtlIGRpc2NhcmRpbmcgZGlyZWN0aXZlcyBiZWNhdXNlIG5vdCBuZWVkZWQgb3IgZGVwcmVjYXRlZCwgZXRjLi48L2xpPgogICAgPC91bD4KCiAgICA8cD5UaGlzIGlzIHRydWUgZm9yIC5odGFjY2VzcyB0b28gc2luY2UgdGhleSBoYXZlIHRoZSBzYW1lIHByaW9yaXR5IGFzIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPkRpcmVjdG9yeTwvY29kZT4gaW4gdGhlIG1lcmdlIG9yZGVyLiBUaGUgaW1wb3J0YW50IGNvbmNlcHQgdG8gdW5kZXJzdGFuZCBpcyB0aGF0IGNvbmZpZ3VyYXRpb24gc2VjdGlvbnMgbGlrZSAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+RGlyZWN0b3J5PC9jb2RlPiBhbmQgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+RmlsZXNNYXRjaDwvY29kZT4gYXJlIG5vdCBjb21wYXJhYmxlIHRvIG1vZHVsZSBzcGVjaWZpYyBkaXJlY3RpdmVzIGxpa2UgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvbW9kX2hlYWRlcnMuaHRtbCNoZWFkZXIiPkhlYWRlcjwvYT48L2NvZGU+IG9yIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL21vZF9yZXdyaXRlLmh0bWwjcmV3cml0ZXJ1bGUiPlJld3JpdGVSdWxlPC9hPjwvY29kZT4gYmVjYXVzZSB0aGV5IG9wZXJhdGUgb24gZGlmZmVyZW50IGxldmVscy4KICAgIDwvcD4KCgo8aDM+PGEgbmFtZT0ibWVyZ2UtZXhhbXBsZXMiIGlkPSJtZXJnZS1leGFtcGxlcyI+U29tZSB1c2VmdWwgZXhhbXBsZXM8L2E+PC9oMz4KCjxwPkJlbG93IGlzIGFuIGFydGlmaWNpYWwgZXhhbXBsZSB0byBzaG93IHRoZSBvcmRlciBvZgptZXJnaW5nLiBBc3N1bWluZyB0aGV5IGFsbCBhcHBseSB0byB0aGUgcmVxdWVzdCwgdGhlIGRpcmVjdGl2ZXMgaW4KdGhpcyBleGFtcGxlIHdpbGwgYmUgYXBwbGllZCBpbiB0aGUgb3JkZXIgQSAmZ3Q7IEIgJmd0OyBDICZndDsgRCAmZ3Q7CkUuPC9wPgoKPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPiZsdDtMb2NhdGlvbiAiLyImZ3Q7CiAgICBFCiZsdDsvTG9jYXRpb24mZ3Q7CgombHQ7RmlsZXMgImYuaHRtbCImZ3Q7CiAgICBECiZsdDsvRmlsZXMmZ3Q7CgombHQ7VmlydHVhbEhvc3QgKiZndDsKICAgICZsdDtEaXJlY3RvcnkgIi9hLyImZ3Q7CiAgICAgICAgQgogICAgJmx0Oy9EaXJlY3RvcnkmZ3Q7CiZsdDsvVmlydHVhbEhvc3QmZ3Q7CgombHQ7RGlyZWN0b3J5TWF0Y2ggIl4uKmIkIiZndDsKICAgIEMKJmx0Oy9EaXJlY3RvcnlNYXRjaCZndDsKCiZsdDtEaXJlY3RvcnkgIi9hL2IiJmd0OwogICAgQQombHQ7L0RpcmVjdG9yeSZndDs8L3ByZT4KCgoKPHA+Rm9yIGEgbW9yZSBjb25jcmV0ZSBleGFtcGxlLCBjb25zaWRlciB0aGUgZm9sbG93aW5nLiAgUmVnYXJkbGVzcyBvZgphbnkgYWNjZXNzIHJlc3RyaWN0aW9ucyBwbGFjZWQgaW4gPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi9tb2QvY29yZS5odG1sI2RpcmVjdG9yeSI+Jmx0O0RpcmVjdG9yeSZndDs8L2E+PC9jb2RlPiBzZWN0aW9ucywgdGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4vbW9kL2NvcmUuaHRtbCNsb2NhdGlvbiI+Jmx0O0xvY2F0aW9uJmd0OzwvYT48L2NvZGU+IHNlY3Rpb24gd2lsbCBiZQpldmFsdWF0ZWQgbGFzdCBhbmQgd2lsbCBhbGxvdyB1bnJlc3RyaWN0ZWQgYWNjZXNzIHRvIHRoZSBzZXJ2ZXIuICBJbgpvdGhlciB3b3Jkcywgb3JkZXIgb2YgbWVyZ2luZyBpcyBpbXBvcnRhbnQsIHNvIGJlIGNhcmVmdWwhPC9wPgoKPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPiZsdDtMb2NhdGlvbiAiLyImZ3Q7CiAgICBSZXF1aXJlIGFsbCBncmFudGVkCiZsdDsvTG9jYXRpb24mZ3Q7CgojIFdob29wcyEgIFRoaXMgJmx0O0RpcmVjdG9yeSZndDsgc2VjdGlvbiB3aWxsIGhhdmUgbm8gZWZmZWN0CiZsdDtEaXJlY3RvcnkgIi8iJmd0OwogICAgJmx0O1JlcXVpcmVBbGwmZ3Q7CiAgICAgICAgUmVxdWlyZSBhbGwgZ3JhbnRlZAogICAgICAgIFJlcXVpcmUgbm90IGhvc3QgYmFkZ3V5LmV4YW1wbGUuY29tCiAgICAmbHQ7L1JlcXVpcmVBbGwmZ3Q7CiZsdDsvRGlyZWN0b3J5Jmd0OzwvcHJlPgoKCgoKPC9kaXY+PC9kaXY+CjxkaXYgY2xhc3M9ImJvdHRvbWxhbmciPgo8cD48c3Bhbj5BdmFpbGFibGUgTGFuZ3VhZ2VzOiA8L3NwYW4+PGEgaHJlZj0iLi9lbi9zZWN0aW9ucy5odG1sIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi9mci9zZWN0aW9ucy5odG1sIiBocmVmbGFuZz0iZnIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRnJhbudhaXMiPiZuYnNwO2ZyJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vamEvc2VjdGlvbnMuaHRtbCIgaHJlZmxhbmc9ImphIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkphcGFuZXNlIj4mbmJzcDtqYSZuYnNwOzwvYT4gfAo8YSBocmVmPSIuL2tvL3NlY3Rpb25zLmh0bWwiIGhyZWZsYW5nPSJrbyIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJLb3JlYW4iPiZuYnNwO2tvJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4vdHIvc2VjdGlvbnMuaHRtbCIgaHJlZmxhbmc9InRyIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IlT8cmvnZSI+Jm5ic3A7dHImbmJzcDs8L2E+PC9wPgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBzcmM9Ii4vaW1hZ2VzL3VwLmdpZiIgYWx0PSJ0b3AiIC8+PC9hPjwvZGl2PjxkaXYgY2xhc3M9InNlY3Rpb24iPjxoMj48YSBpZD0iY29tbWVudHNfc2VjdGlvbiIgbmFtZT0iY29tbWVudHNfc2VjdGlvbiI+Q29tbWVudHM8L2E+PC9oMj48ZGl2IGNsYXNzPSJ3YXJuaW5nIj48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz48YnIgLz5UaGlzIGlzIG5vdCBhIFEmYW1wO0Egc2VjdGlvbi4gQ29tbWVudHMgcGxhY2VkIGhlcmUgc2hvdWxkIGJlIHBvaW50ZWQgdG93YXJkcyBzdWdnZXN0aW9ucyBvbiBpbXByb3ZpbmcgdGhlIGRvY3VtZW50YXRpb24gb3Igc2VydmVyLCBhbmQgbWF5IGJlIHJlbW92ZWQgYWdhaW4gYnkgb3VyIG1vZGVyYXRvcnMgaWYgdGhleSBhcmUgZWl0aGVyIGltcGxlbWVudGVkIG9yIGNvbnNpZGVyZWQgaW52YWxpZC9vZmYtdG9waWMuIFF1ZXN0aW9ucyBvbiBob3cgdG8gbWFuYWdlIHRoZSBBcGFjaGUgSFRUUCBTZXJ2ZXIgc2hvdWxkIGJlIGRpcmVjdGVkIGF0IGVpdGhlciBvdXIgSVJDIGNoYW5uZWwsICNodHRwZCwgb24gRnJlZW5vZGUsIG9yIHNlbnQgdG8gb3VyIDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2xpc3RzLmh0bWwiPm1haWxpbmcgbGlzdHM8L2E+LjwvZGl2Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCEtLS8vLS0+PCFbQ0RBVEFbLy8+PCEtLQp2YXIgY29tbWVudHNfc2hvcnRuYW1lID0gJ2h0dHBkJzsKdmFyIGNvbW1lbnRzX2lkZW50aWZpZXIgPSAnaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy90cnVuay9zZWN0aW9ucy5odG1sJzsKKGZ1bmN0aW9uKHcsIGQpIHsKICAgIGlmICh3LmxvY2F0aW9uLmhvc3RuYW1lLnRvTG93ZXJDYXNlKCkgPT0gImh0dHBkLmFwYWNoZS5vcmciKSB7CiAgICAgICAgZC53cml0ZSgnPGRpdiBpZD0iY29tbWVudHNfdGhyZWFkIj48XC9kaXY+Jyk7CiAgICAgICAgdmFyIHMgPSBkLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIHMudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOwogICAgICAgIHMuYXN5bmMgPSB0cnVlOwogICAgICAgIHMuc3JjID0gJ2h0dHBzOi8vY29tbWVudHMuYXBhY2hlLm9yZy9zaG93X2NvbW1lbnRzLmx1YT9zaXRlPScgKyBjb21tZW50c19zaG9ydG5hbWUgKyAnJnBhZ2U9JyArIGNvbW1lbnRzX2lkZW50aWZpZXI7CiAgICAgICAgKGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXSB8fCBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF0pLmFwcGVuZENoaWxkKHMpOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgZC53cml0ZSgnPGRpdiBpZD0iY29tbWVudHNfdGhyZWFkIj5Db21tZW50cyBhcmUgZGlzYWJsZWQgZm9yIHRoaXMgcGFnZSBhdCB0aGUgbW9tZW50LjxcL2Rpdj4nKTsKICAgIH0KfSkod2luZG93LCBkb2N1bWVudCk7Ci8vLS0+PCFdXT48L3NjcmlwdD48L2Rpdj48ZGl2IGlkPSJmb290ZXIiPgo8cCBjbGFzcz0iYXBhY2hlIj5Db3B5cmlnaHQgMjAxOSBUaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24uPGJyIC8+TGljZW5zZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCI+QXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wPC9hPi48L3A+CjxwIGNsYXNzPSJtZW51Ij48YSBocmVmPSIuL21vZC8iPk1vZHVsZXM8L2E+IHwgPGEgaHJlZj0iLi9tb2QvcXVpY2tyZWZlcmVuY2UuaHRtbCI+RGlyZWN0aXZlczwvYT4gfCA8YSBocmVmPSJodHRwOi8vd2lraS5hcGFjaGUub3JnL2h0dHBkL0ZBUSI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4vZ2xvc3NhcnkuaHRtbCI+R2xvc3Nhcnk8L2E+IHwgPGEgaHJlZj0iLi9zaXRlbWFwLmh0bWwiPlNpdGVtYXA8L2E+PC9wPjwvZGl2PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IS0tLy8tLT48IVtDREFUQVsvLz48IS0tCmlmICh0eXBlb2YocHJldHR5UHJpbnQpICE9PSAndW5kZWZpbmVkJykgewogICAgcHJldHR5UHJpbnQoKTsKfQovLy0tPjwhXV0+PC9zY3JpcHQ+CjwvYm9keT48L2h0bWw+