PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJlbiIgeG1sOmxhbmc9ImVuIj48aGVhZD48IS0tCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgICAgICAgICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20geG1sIHNvdXJjZTogRE8gTk9UIEVESVQKICAgICAgICBYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWAogICAgICAtLT4KPHRpdGxlPm1vZF9hdXRobnpfbGRhcCAtIEFwYWNoZSBIVFRQIFNlcnZlcjwvdGl0bGU+CjxsaW5rIGhyZWY9Ii4uL3N0eWxlL2Nzcy9tYW51YWwuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJhbGwiIHR5cGU9InRleHQvY3NzIiB0aXRsZT0iTWFpbiBzdHlsZXNoZWV0IiAvPgo8bGluayBocmVmPSIuLi9zdHlsZS9jc3MvbWFudWFsLWxvb3NlLTEwMHBjLmNzcyIgcmVsPSJhbHRlcm5hdGUgc3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJObyBTaWRlYmFyIC0gRGVmYXVsdCBmb250IHNpemUiIC8+CjxsaW5rIGhyZWY9Ii4uL3N0eWxlL2Nzcy9tYW51YWwtcHJpbnQuY3NzIiByZWw9InN0eWxlc2hlZXQiIG1lZGlhPSJwcmludCIgdHlwZT0idGV4dC9jc3MiIC8+CjxsaW5rIGhyZWY9Ii4uL2ltYWdlcy9mYXZpY29uLmljbyIgcmVsPSJzaG9ydGN1dCBpY29uIiAvPjwvaGVhZD4KPGJvZHk+CjxkaXYgaWQ9InBhZ2UtaGVhZGVyIj4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4uL21vZC8iPk1vZHVsZXM8L2E+IHwgPGEgaHJlZj0iLi4vbW9kL2RpcmVjdGl2ZXMuaHRtbCI+RGlyZWN0aXZlczwvYT4gfCA8YSBocmVmPSIuLi9mYXEvIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi4vZ2xvc3NhcnkuaHRtbCI+R2xvc3Nhcnk8L2E+IHwgPGEgaHJlZj0iLi4vc2l0ZW1hcC5odG1sIj5TaXRlbWFwPC9hPjwvcD4KPHAgY2xhc3M9ImFwYWNoZSI+QXBhY2hlIEhUVFAgU2VydmVyIFZlcnNpb24gMi4zPC9wPgo8aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9mZWF0aGVyLmdpZiIgLz48L2Rpdj4KPGRpdiBjbGFzcz0idXAiPjxhIGhyZWY9Ii4vIj48aW1nIHRpdGxlPSImbHQ7LSIgYWx0PSImbHQ7LSIgc3JjPSIuLi9pbWFnZXMvbGVmdC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGlkPSJwYXRoIj4KPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnLyI+QXBhY2hlPC9hPiAmZ3Q7IDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnLyI+SFRUUCBTZXJ2ZXI8L2E+ICZndDsgPGEgaHJlZj0iaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8iPkRvY3VtZW50YXRpb248L2E+ICZndDsgPGEgaHJlZj0iLi4vIj5WZXJzaW9uIDIuMzwvYT4gJmd0OyA8YSBocmVmPSIuLyI+TW9kdWxlczwvYT48L2Rpdj4KPGRpdiBpZD0icGFnZS1jb250ZW50Ij4KPGRpdiBpZD0icHJlYW1ibGUiPjxoMT5BcGFjaGUgTW9kdWxlIG1vZF9hdXRobnpfbGRhcDwvaDE+CjxkaXYgY2xhc3M9InRvcGxhbmciPgo8cD48c3Bhbj5BdmFpbGFibGUgTGFuZ3VhZ2VzOiA8L3NwYW4+PGEgaHJlZj0iLi4vZW4vbW9kL21vZF9hdXRobnpfbGRhcC5odG1sIiB0aXRsZT0iRW5nbGlzaCI+Jm5ic3A7ZW4mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4vZnIvbW9kL21vZF9hdXRobnpfbGRhcC5odG1sIiBocmVmbGFuZz0iZnIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iRnJhbudhaXMiPiZuYnNwO2ZyJm5ic3A7PC9hPjwvcD4KPC9kaXY+Cjx0YWJsZSBjbGFzcz0ibW9kdWxlIj48dHI+PHRoPjxhIGhyZWY9Im1vZHVsZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5BbGxvd3MgYW4gTERBUCBkaXJlY3RvcnkgdG8gYmUgdXNlZCB0byBzdG9yZSB0aGUgZGF0YWJhc2UKZm9yIEhUVFAgQmFzaWMgYXV0aGVudGljYXRpb24uPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9Im1vZHVsZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVuc2lvbjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJtb2R1bGUtZGljdC5odG1sI01vZHVsZUlkZW50aWZpZXIiPk1vZHVsZaBJZGVudGlmaWVyOjwvYT48L3RoPjx0ZD5hdXRobnpfbGRhcF9tb2R1bGU8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNTb3VyY2VGaWxlIj5Tb3VyY2WgRmlsZTo8L2E+PC90aD48dGQ+bW9kX2F1dGhuel9sZGFwLmM8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNDb21wYXRpYmlsaXR5Ij5Db21wYXRpYmlsaXR5OjwvYT48L3RoPjx0ZD5BdmFpbGFibGUgaW4gdmVyc2lvbiAyLjEgYW5kIGxhdGVyPC90ZD48L3RyPjwvdGFibGU+CjxoMz5TdW1tYXJ5PC9oMz4KCiAgICA8cD5UaGlzIG1vZHVsZSBwcm92aWRlcyBhdXRoZW50aWNhdGlvbiBmcm9udC1lbmRzIHN1Y2ggYXMKICAgIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfYXV0aF9iYXNpYy5odG1sIj5tb2RfYXV0aF9iYXNpYzwvYT48L2NvZGU+IHRvIGF1dGhlbnRpY2F0ZSB1c2VycyB0aHJvdWdoIAogICAgYW4gbGRhcCBkaXJlY3RvcnkuPC9wPgogICAgCiAgICA8cD48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2F1dGhuel9sZGFwLmh0bWwiPm1vZF9hdXRobnpfbGRhcDwvYT48L2NvZGU+IHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgZmVhdHVyZXM6PC9wPgoKICAgIDx1bD4KICAgICAgPGxpPktub3duIHRvIHN1cHBvcnQgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cub3BlbmxkYXAub3JnLyI+T3BlbkxEQVAgU0RLPC9hPiAoYm90aCAxLngKICAgICAgYW5kIDIueCksIDxhIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIubm92ZWxsLmNvbS9uZGsvY2xkYXAuaHRtIj4KICAgICAgTm92ZWxsIExEQVAgU0RLPC9hPiBhbmQgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuaXBsYW5ldC5jb20vZG93bmxvYWRzL2RldmVsb3Blci8iPmlQbGFuZXQKICAgICAgKE5ldHNjYXBlKTwvYT4gU0RLLjwvbGk+CgogICAgICA8bGk+Q29tcGxleCBhdXRob3JpemF0aW9uIHBvbGljaWVzIGNhbiBiZSBpbXBsZW1lbnRlZCBieQogICAgICByZXByZXNlbnRpbmcgdGhlIHBvbGljeSB3aXRoIExEQVAgZmlsdGVycy48L2xpPgoKICAgICAgPGxpPlVzZXMgZXh0ZW5zaXZlIGNhY2hpbmcgb2YgTERBUCBvcGVyYXRpb25zIHZpYSA8YSBocmVmPSJtb2RfbGRhcC5odG1sIj5tb2RfbGRhcDwvYT4uPC9saT4KCiAgICAgIDxsaT5TdXBwb3J0IGZvciBMREFQIG92ZXIgU1NMIChyZXF1aXJlcyB0aGUgTmV0c2NhcGUgU0RLKSBvcgogICAgICBUTFMgKHJlcXVpcmVzIHRoZSBPcGVuTERBUCAyLnggU0RLIG9yIE5vdmVsbCBMREFQIFNESykuPC9saT4KICAgIDwvdWw+CgogICAgPHA+V2hlbiB1c2luZyA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2F1dGhfYmFzaWMuaHRtbCI+bW9kX2F1dGhfYmFzaWM8L2E+PC9jb2RlPiwgdGhpcyBtb2R1bGUgaXMgaW52b2tlZAogICAgdmlhIHRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvbW9kX2F1dGhfYmFzaWMuaHRtbCNhdXRoYmFzaWNwcm92aWRlciI+QXV0aEJhc2ljUHJvdmlkZXI8L2E+PC9jb2RlPgogICAgZGlyZWN0aXZlIHdpdGggdGhlIDxjb2RlPmxkYXA8L2NvZGU+IHZhbHVlLjwvcD4KPC9kaXY+CjxkaXYgaWQ9InF1aWNrdmlldyI+PGgzIGNsYXNzPSJkaXJlY3RpdmVzIj5EaXJlY3RpdmVzPC9oMz4KPHVsIGlkPSJ0b2MiPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNhdXRobGRhcGF1dGhvcml6ZXByZWZpeCI+QXV0aExEQVBBdXRob3JpemVQcmVmaXg8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjYXV0aGxkYXBiaW5kYXV0aG9yaXRhdGl2ZSI+QXV0aExEQVBCaW5kQXV0aG9yaXRhdGl2ZTwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNhdXRobGRhcGJpbmRkbiI+QXV0aExEQVBCaW5kRE48L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjYXV0aGxkYXBiaW5kcGFzc3dvcmQiPkF1dGhMREFQQmluZFBhc3N3b3JkPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2F1dGhsZGFwY2hhcnNldGNvbmZpZyI+QXV0aExEQVBDaGFyc2V0Q29uZmlnPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2F1dGhsZGFwY29tcGFyZWFzdXNlciI+QXV0aExEQVBDb21wYXJlQXNVc2VyPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2F1dGhsZGFwY29tcGFyZWRub25zZXJ2ZXIiPkF1dGhMREFQQ29tcGFyZUROT25TZXJ2ZXI8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjYXV0aGxkYXBkZXJlZmVyZW5jZWFsaWFzZXMiPkF1dGhMREFQRGVyZWZlcmVuY2VBbGlhc2VzPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2F1dGhsZGFwZ3JvdXBhdHRyaWJ1dGUiPkF1dGhMREFQR3JvdXBBdHRyaWJ1dGU8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjYXV0aGxkYXBncm91cGF0dHJpYnV0ZWlzZG4iPkF1dGhMREFQR3JvdXBBdHRyaWJ1dGVJc0ROPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2F1dGhsZGFwaW5pdGlhbGJpbmRhc3VzZXIiPkF1dGhMREFQSW5pdGlhbEJpbmRBc1VzZXI8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjYXV0aGxkYXBpbml0aWFsYmluZHBhdHRlcm4iPkF1dGhMREFQSW5pdGlhbEJpbmRQYXR0ZXJuPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2F1dGhsZGFwbWF4c3ViZ3JvdXBkZXB0aCI+QXV0aExEQVBNYXhTdWJHcm91cERlcHRoPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2F1dGhsZGFwcmVtb3RldXNlcmF0dHJpYnV0ZSI+QXV0aExEQVBSZW1vdGVVc2VyQXR0cmlidXRlPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2F1dGhsZGFwcmVtb3RldXNlcmlzZG4iPkF1dGhMREFQUmVtb3RlVXNlcklzRE48L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjYXV0aGxkYXBzZWFyY2hhc3VzZXIiPkF1dGhMREFQU2VhcmNoQXNVc2VyPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2F1dGhsZGFwc3ViZ3JvdXBhdHRyaWJ1dGUiPkF1dGhMREFQU3ViR3JvdXBBdHRyaWJ1dGU8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjYXV0aGxkYXBzdWJncm91cGNsYXNzIj5BdXRoTERBUFN1Ykdyb3VwQ2xhc3M8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjYXV0aGxkYXB1cmwiPkF1dGhMREFQVXJsPC9hPjwvbGk+CjwvdWw+CjxoMz5Ub3BpY3M8L2gzPgo8dWwgaWQ9InRvcGljcyI+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2NvbnRlbnRzIj5Db250ZW50czwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNvcGVyYXRpb24iPk9wZXJhdGlvbjwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNyZXF1aXJlZGlyZWN0aXZlcyI+VGhlIFJlcXVpcmUgRGlyZWN0aXZlczwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNleGFtcGxlcyI+RXhhbXBsZXM8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjdXNpbmd0bHMiPlVzaW5nIFRMUzwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiN1c2luZ3NzbCI+VXNpbmcgU1NMPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2V4cG9zZWQiPkV4cG9zaW5nIExvZ2luIEluZm9ybWF0aW9uPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI2FjdGl2ZWRpcmVjdG9yeSI+VXNpbmcgQWN0aXZlIERpcmVjdG9yeTwvYT48L2xpPgo8bGk+PGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZG93bi5naWYiIC8+IDxhIGhyZWY9IiNmcm9udHBhZ2UiPlVzaW5nIE1pY3Jvc29mdAogICAgRnJvbnRQYWdlIHdpdGggbW9kX2F1dGhuel9sZGFwPC9hPjwvbGk+CjwvdWw+PGgzPlNlZSBhbHNvPC9oMz4KPHVsIGNsYXNzPSJzZWVhbHNvIj4KPGxpPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfbGRhcC5odG1sIj5tb2RfbGRhcDwvYT48L2NvZGU+PC9saT4KPGxpPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfYXV0aF9iYXNpYy5odG1sIj5tb2RfYXV0aF9iYXNpYzwvYT48L2NvZGU+PC9saT4KPGxpPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfYXV0aHpfdXNlci5odG1sIj5tb2RfYXV0aHpfdXNlcjwvYT48L2NvZGU+PC9saT4KPGxpPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfYXV0aHpfZ3JvdXBmaWxlLmh0bWwiPm1vZF9hdXRoel9ncm91cGZpbGU8L2E+PC9jb2RlPjwvbGk+CjwvdWw+PC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9ImNvbnRlbnRzIiBpZD0iY29udGVudHMiPkNvbnRlbnRzPC9hPjwvaDI+CgogICAgPHVsPgogICAgICA8bGk+CiAgICAgICAgPGEgaHJlZj0iI29wZXJhdGlvbiI+T3BlcmF0aW9uPC9hPiAKCiAgICAgICAgPHVsPgogICAgICAgICAgPGxpPjxhIGhyZWY9IiNhdXRoZW5waGFzZSI+VGhlIEF1dGhlbnRpY2F0aW9uCiAgICAgICAgICBQaGFzZTwvYT48L2xpPgoKICAgICAgICAgIDxsaT48YSBocmVmPSIjYXV0aG9ycGhhc2UiPlRoZSBBdXRob3JpemF0aW9uCiAgICAgICAgICBQaGFzZTwvYT48L2xpPgogICAgICAgIDwvdWw+CiAgICAgIDwvbGk+CgogICAgICA8bGk+CiAgICAgICAgPGEgaHJlZj0iI3JlcXVpcmVkaXJlY3RpdmVzIj5UaGUgUmVxdWlyZSBEaXJlY3RpdmVzPC9hPiAKCiAgICAgICAgPHVsPgogICAgICAgICAgPGxpPjxhIGhyZWY9IiNyZXF1c2VyIj5SZXF1aXJlIGxkYXAtdXNlcjwvYT48L2xpPgogICAgICAgICAgPGxpPjxhIGhyZWY9IiNyZXFncm91cCI+UmVxdWlyZSBsZGFwLWdyb3VwPC9hPjwvbGk+CiAgICAgICAgICA8bGk+PGEgaHJlZj0iI3JlcWRuIj5SZXF1aXJlIGxkYXAtZG48L2E+PC9saT4KICAgICAgICAgIDxsaT48YSBocmVmPSIjcmVxYXR0cmlidXRlIj5SZXF1aXJlIGxkYXAtYXR0cmlidXRlPC9hPjwvbGk+CiAgICAgICAgICA8bGk+PGEgaHJlZj0iI3JlcWZpbHRlciI+UmVxdWlyZSBsZGFwLWZpbHRlcjwvYT48L2xpPgogICAgICAgIDwvdWw+CiAgICAgIDwvbGk+CgogICAgICA8bGk+PGEgaHJlZj0iI2V4YW1wbGVzIj5FeGFtcGxlczwvYT48L2xpPgogICAgICA8bGk+PGEgaHJlZj0iI3VzaW5ndGxzIj5Vc2luZyBUTFM8L2E+PC9saT4KICAgICAgPGxpPjxhIGhyZWY9IiN1c2luZ3NzbCI+VXNpbmcgU1NMPC9hPjwvbGk+CiAgICAgIDxsaT48YSBocmVmPSIjZXhwb3NlZCI+RXhwb3NpbmcgTG9naW4gSW5mb3JtYXRpb248L2E+PC9saT4KICAgICAgPGxpPjxhIGhyZWY9IiNhY3RpdmVkaXJlY3RvcnkiPlVzaW5nIEFjdGl2ZSBEaXJlY3Rvcnk8L2E+PC9saT4KICAgICAgPGxpPgogICAgICAgIDxhIGhyZWY9IiNmcm9udHBhZ2UiPlVzaW5nIE1pY3Jvc29mdCBGcm9udFBhZ2Ugd2l0aAogICAgICAgIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfYXV0aG56X2xkYXAuaHRtbCI+bW9kX2F1dGhuel9sZGFwPC9hPjwvY29kZT48L2E+IAoKICAgICAgICA8dWw+CiAgICAgICAgICA8bGk+PGEgaHJlZj0iI2hvd2l0d29ya3MiPkhvdyBJdCBXb3JrczwvYT48L2xpPgogICAgICAgICAgPGxpPjxhIGhyZWY9IiNmcGNhdmVhdHMiPkNhdmVhdHM8L2E+PC9saT4KICAgICAgICA8L3VsPgogICAgICA8L2xpPgogICAgPC91bD4KPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0ib3BlcmF0aW9uIiBpZD0ib3BlcmF0aW9uIj5PcGVyYXRpb248L2E+PC9oMj4KCiAgICA8cD5UaGVyZSBhcmUgdHdvIHBoYXNlcyBpbiBncmFudGluZyBhY2Nlc3MgdG8gYSB1c2VyLiBUaGUgZmlyc3QKICAgIHBoYXNlIGlzIGF1dGhlbnRpY2F0aW9uLCBpbiB3aGljaCB0aGUgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9hdXRobnpfbGRhcC5odG1sIj5tb2RfYXV0aG56X2xkYXA8L2E+PC9jb2RlPgogICAgYXV0aGVudGljYXRpb24gcHJvdmlkZXIgdmVyaWZpZXMgdGhhdCB0aGUgdXNlcidzIGNyZWRlbnRpYWxzIGFyZSB2YWxpZC4gCiAgICBUaGlzIGlzIGFsc28gY2FsbGVkIHRoZSA8ZW0+c2VhcmNoL2JpbmQ8L2VtPiBwaGFzZS4gVGhlIHNlY29uZCBwaGFzZSBpcwogICAgYXV0aG9yaXphdGlvbiwgaW4gd2hpY2ggPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9hdXRobnpfbGRhcC5odG1sIj5tb2RfYXV0aG56X2xkYXA8L2E+PC9jb2RlPiBkZXRlcm1pbmVzCiAgICBpZiB0aGUgYXV0aGVudGljYXRlZCB1c2VyIGlzIGFsbG93ZWQgYWNjZXNzIHRvIHRoZSByZXNvdXJjZSBpbgogICAgcXVlc3Rpb24uIFRoaXMgaXMgYWxzbyBrbm93biBhcyB0aGUgPGVtPmNvbXBhcmU8L2VtPgogICAgcGhhc2UuPC9wPgoKICAgIDxwPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfYXV0aG56X2xkYXAuaHRtbCI+bW9kX2F1dGhuel9sZGFwPC9hPjwvY29kZT4gcmVnaXN0ZXJzIGJvdGggYW4gYXV0aG5fbGRhcCBhdXRoZW50aWNhdGlvbgogICAgcHJvdmlkZXIgYW5kIGFuIGF1dGh6X2xkYXAgYXV0aG9yaXphdGlvbiBoYW5kbGVyLiAgVGhlIGF1dGhuX2xkYXAKICAgIGF1dGhlbnRpY2F0aW9uIHByb3ZpZGVyIGNhbiBiZSBlbmFibGVkIHRocm91Z2ggdGhlIAogICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9hdXRoX2Jhc2ljLmh0bWwjYXV0aGJhc2ljcHJvdmlkZXIiPkF1dGhCYXNpY1Byb3ZpZGVyPC9hPjwvY29kZT4gZGlyZWN0aXZlIAogICAgdXNpbmcgdGhlIDxjb2RlPmxkYXA8L2NvZGU+IHZhbHVlLiBUaGUgYXV0aHpfbGRhcCBoYW5kbGVyIGV4dGVuZHMgdGhlIAogICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9hdXRoel9jb3JlLmh0bWwjcmVxdWlyZSI+UmVxdWlyZTwvYT48L2NvZGU+IGRpcmVjdGl2ZSdzIGF1dGhvcml6YXRpb24gdHlwZXMKICAgIGJ5IGFkZGluZyA8Y29kZT5sZGFwLXVzZXI8L2NvZGU+LCA8Y29kZT5sZGFwLWRuPC9jb2RlPiBhbmQgPGNvZGU+bGRhcC1ncm91cDwvY29kZT4gCiAgICB2YWx1ZXMuPC9wPgoKPGgzPjxhIG5hbWU9ImF1dGhlbnBoYXNlIiBpZD0iYXV0aGVucGhhc2UiPlRoZSBBdXRoZW50aWNhdGlvbgogICAgUGhhc2U8L2E+PC9oMz4KCiAgICA8cD5EdXJpbmcgdGhlIGF1dGhlbnRpY2F0aW9uIHBoYXNlLCA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2F1dGhuel9sZGFwLmh0bWwiPm1vZF9hdXRobnpfbGRhcDwvYT48L2NvZGU+CiAgICBzZWFyY2hlcyBmb3IgYW4gZW50cnkgaW4gdGhlIGRpcmVjdG9yeSB0aGF0IG1hdGNoZXMgdGhlIHVzZXJuYW1lCiAgICB0aGF0IHRoZSBIVFRQIGNsaWVudCBwYXNzZXMuIElmIGEgc2luZ2xlIHVuaXF1ZSBtYXRjaCBpcyBmb3VuZCwKICAgIHRoZW4gPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9hdXRobnpfbGRhcC5odG1sIj5tb2RfYXV0aG56X2xkYXA8L2E+PC9jb2RlPiBhdHRlbXB0cyB0byBiaW5kIHRvIHRoZQogICAgZGlyZWN0b3J5IHNlcnZlciB1c2luZyB0aGUgRE4gb2YgdGhlIGVudHJ5IHBsdXMgdGhlIHBhc3N3b3JkCiAgICBwcm92aWRlZCBieSB0aGUgSFRUUCBjbGllbnQuIEJlY2F1c2UgaXQgZG9lcyBhIHNlYXJjaCwgdGhlbiBhCiAgICBiaW5kLCBpdCBpcyBvZnRlbiByZWZlcnJlZCB0byBhcyB0aGUgc2VhcmNoL2JpbmQgcGhhc2UuIEhlcmUgYXJlCiAgICB0aGUgc3RlcHMgdGFrZW4gZHVyaW5nIHRoZSBzZWFyY2gvYmluZCBwaGFzZS48L3A+CgogICAgPG9sPgogICAgICA8bGk+R2VuZXJhdGUgYSBzZWFyY2ggZmlsdGVyIGJ5IGNvbWJpbmluZyB0aGUgYXR0cmlidXRlIGFuZAogICAgICBmaWx0ZXIgcHJvdmlkZWQgaW4gdGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNhdXRobGRhcHVybCI+QXV0aExEQVBVUkw8L2E+PC9jb2RlPiBkaXJlY3RpdmUgd2l0aAogICAgICB0aGUgdXNlcm5hbWUgcGFzc2VkIGJ5IHRoZSBIVFRQIGNsaWVudC48L2xpPgoKICAgICAgPGxpPlNlYXJjaCB0aGUgZGlyZWN0b3J5IHVzaW5nIHRoZSBnZW5lcmF0ZWQgZmlsdGVyLiBJZiB0aGUKICAgICAgc2VhcmNoIGRvZXMgbm90IHJldHVybiBleGFjdGx5IG9uZSBlbnRyeSwgZGVueSBvciBkZWNsaW5lCiAgICAgIGFjY2Vzcy48L2xpPgoKICAgICAgPGxpPkZldGNoIHRoZSBkaXN0aW5ndWlzaGVkIG5hbWUgb2YgdGhlIGVudHJ5IHJldHJpZXZlZCBmcm9tCiAgICAgIHRoZSBzZWFyY2ggYW5kIGF0dGVtcHQgdG8gYmluZCB0byB0aGUgTERBUCBzZXJ2ZXIgdXNpbmcgdGhhdAogICAgICBETiBhbmQgdGhlIHBhc3N3b3JkIHBhc3NlZCBieSB0aGUgSFRUUCBjbGllbnQuIElmIHRoZSBiaW5kIGlzCiAgICAgIHVuc3VjY2Vzc2Z1bCwgZGVueSBvciBkZWNsaW5lIGFjY2Vzcy48L2xpPgogICAgPC9vbD4KCiAgICA8cD5UaGUgZm9sbG93aW5nIGRpcmVjdGl2ZXMgYXJlIHVzZWQgZHVyaW5nIHRoZSBzZWFyY2gvYmluZAogICAgcGhhc2U8L3A+CgogICAgPHRhYmxlPgogICAgICAKICAgICAgPHRyPgogICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjYXV0aGxkYXB1cmwiPkF1dGhMREFQVVJMPC9hPjwvY29kZT48L3RkPgoKICAgICAgICA8dGQ+U3BlY2lmaWVzIHRoZSBMREFQIHNlcnZlciwgdGhlCiAgICAgICAgYmFzZSBETiwgdGhlIGF0dHJpYnV0ZSB0byB1c2UgaW4gdGhlIHNlYXJjaCwgYXMgd2VsbCBhcyB0aGUKICAgICAgICBleHRyYSBzZWFyY2ggZmlsdGVyIHRvIHVzZS48L3RkPgogICAgICA8L3RyPgoKICAgICAgPHRyPgogICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjYXV0aGxkYXBiaW5kZG4iPkF1dGhMREFQQmluZEROPC9hPjwvY29kZT48L3RkPgoKICAgICAgICA8dGQ+QW4gb3B0aW9uYWwgRE4gdG8gYmluZCB3aXRoCiAgICAgICAgZHVyaW5nIHRoZSBzZWFyY2ggcGhhc2UuPC90ZD4KICAgICAgPC90cj4KCiAgICAgIDx0cj4KICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2F1dGhsZGFwYmluZHBhc3N3b3JkIj5BdXRoTERBUEJpbmRQYXNzd29yZDwvYT48L2NvZGU+PC90ZD4KCiAgICAgICAgPHRkPkFuIG9wdGlvbmFsIHBhc3N3b3JkIHRvIGJpbmQKICAgICAgICB3aXRoIGR1cmluZyB0aGUgc2VhcmNoIHBoYXNlLjwvdGQ+CiAgICAgIDwvdHI+CiAgICA8L3RhYmxlPgoKCjxoMz48YSBuYW1lPSJhdXRob3JwaGFzZSIgaWQ9ImF1dGhvcnBoYXNlIj5UaGUgQXV0aG9yaXphdGlvbiBQaGFzZTwvYT48L2gzPgoKICAgIDxwPkR1cmluZyB0aGUgYXV0aG9yaXphdGlvbiBwaGFzZSwgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9hdXRobnpfbGRhcC5odG1sIj5tb2RfYXV0aG56X2xkYXA8L2E+PC9jb2RlPgogICAgYXR0ZW1wdHMgdG8gZGV0ZXJtaW5lIGlmIHRoZSB1c2VyIGlzIGF1dGhvcml6ZWQgdG8gYWNjZXNzIHRoZQogICAgcmVzb3VyY2UuICBNYW55IG9mIHRoZXNlIGNoZWNrcyByZXF1aXJlCiAgICA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2F1dGhuel9sZGFwLmh0bWwiPm1vZF9hdXRobnpfbGRhcDwvYT48L2NvZGU+IHRvIGRvIGEgY29tcGFyZSBvcGVyYXRpb24gb24gdGhlCiAgICBMREFQIHNlcnZlci4gVGhpcyBpcyB3aHkgdGhpcyBwaGFzZSBpcyBvZnRlbiByZWZlcnJlZCB0byBhcyB0aGUKICAgIGNvbXBhcmUgcGhhc2UuIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfYXV0aG56X2xkYXAuaHRtbCI+bW9kX2F1dGhuel9sZGFwPC9hPjwvY29kZT4gYWNjZXB0cyB0aGUKICAgIGZvbGxvd2luZyA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvbW9kX2F1dGh6X2NvcmUuaHRtbCNyZXF1aXJlIj5SZXF1aXJlPC9hPjwvY29kZT4KICAgIGRpcmVjdGl2ZXMgdG8gZGV0ZXJtaW5lIGlmIHRoZSBjcmVkZW50aWFscyBhcmUgYWNjZXB0YWJsZTo8L3A+CgogICAgPHVsPgogICAgICA8bGk+R3JhbnQgYWNjZXNzIGlmIHRoZXJlIGlzIGEgPGEgaHJlZj0iI3JlcWdyb3VwIj48Y29kZT5SZXF1aXJlIGxkYXAtdXNlcjwvY29kZT48L2E+IGRpcmVjdGl2ZSwgYW5kIHRoZQogICAgICB1c2VybmFtZSBpbiB0aGUgZGlyZWN0aXZlIG1hdGNoZXMgdGhlIHVzZXJuYW1lIHBhc3NlZCBieSB0aGUKICAgICAgY2xpZW50LjwvbGk+CgogICAgICA8bGk+R3JhbnQgYWNjZXNzIGlmIHRoZXJlIGlzIGEgPGEgaHJlZj0iI3JlcWRuIj48Y29kZT5SZXF1aXJlCiAgICAgIGxkYXAtZG48L2NvZGU+PC9hPiBkaXJlY3RpdmUsIGFuZCB0aGUgRE4gaW4gdGhlIGRpcmVjdGl2ZSBtYXRjaGVzCiAgICAgIHRoZSBETiBmZXRjaGVkIGZyb20gdGhlIExEQVAgZGlyZWN0b3J5LjwvbGk+CgogICAgICA8bGk+R3JhbnQgYWNjZXNzIGlmIHRoZXJlIGlzIGEgPGEgaHJlZj0iI3JlcWdyb3VwIj48Y29kZT5SZXF1aXJlIGxkYXAtZ3JvdXA8L2NvZGU+PC9hPiBkaXJlY3RpdmUsIGFuZAogICAgICB0aGUgRE4gZmV0Y2hlZCBmcm9tIHRoZSBMREFQIGRpcmVjdG9yeSAob3IgdGhlIHVzZXJuYW1lCiAgICAgIHBhc3NlZCBieSB0aGUgY2xpZW50KSBvY2N1cnMgaW4gdGhlIExEQVAgZ3JvdXAgb3IsIHBvdGVudGlhbGx5LCBpbgogICAgICBvbmUgb2YgaXRzIHN1Yi1ncm91cHMuPC9saT4KCiAgICAgIDxsaT5HcmFudCBhY2Nlc3MgaWYgdGhlcmUgaXMgYSA8YSBocmVmPSIjcmVxYXR0cmlidXRlIj4KICAgICAgPGNvZGU+UmVxdWlyZSBsZGFwLWF0dHJpYnV0ZTwvY29kZT48L2E+IAogICAgICBkaXJlY3RpdmUsIGFuZCB0aGUgYXR0cmlidXRlIGZldGNoZWQgZnJvbSB0aGUgTERBUCBkaXJlY3RvcnkKICAgICAgbWF0Y2hlcyB0aGUgZ2l2ZW4gdmFsdWUuPC9saT4gCgogICAgICA8bGk+R3JhbnQgYWNjZXNzIGlmIHRoZXJlIGlzIGEgPGEgaHJlZj0iI3JlcWZpbHRlciI+CiAgICAgIDxjb2RlPlJlcXVpcmUgbGRhcC1maWx0ZXI8L2NvZGU+PC9hPiAKICAgICAgZGlyZWN0aXZlLCBhbmQgdGhlIHNlYXJjaCBmaWx0ZXIgc3VjY2Vzc2Z1bGx5IGZpbmRzIGEgc2luZ2xlIHVzZXIKICAgICAgb2JqZWN0IHRoYXQgbWF0Y2hlcyB0aGUgZG4gb2YgdGhlIGF1dGhlbnRpY2F0ZWQgdXNlci48L2xpPiAKCiAgICAgIDxsaT5vdGhlcndpc2UsIGRlbnkgb3IgZGVjbGluZSBhY2Nlc3M8L2xpPgogICAgPC91bD4KCiAgICA8cD5PdGhlciA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvbW9kX2F1dGh6X2NvcmUuaHRtbCNyZXF1aXJlIj5SZXF1aXJlPC9hPjwvY29kZT4gdmFsdWVzIG1heSBhbHNvCiAgICBiZSB1c2VkIHdoaWNoIG1heSByZXF1aXJlIGxvYWRpbmcgYWRkaXRpb25hbCBhdXRob3JpemF0aW9uIG1vZHVsZXMuPC9wPgoKICAgIDx1bD4KICAgICAgICA8bGk+R3JhbnQgYWNjZXNzIHRvIGFsbCBzdWNjZXNzZnVsbHkgYXV0aGVudGljYXRlZCB1c2VycyBpZiAKICAgICAgICB0aGVyZSBpcyBhIDxhIGhyZWY9IiNyZXF1c2VyIj48Y29kZT5SZXF1aXJlIHZhbGlkLXVzZXI8L2NvZGU+PC9hPiAKICAgICAgICBkaXJlY3RpdmUuIChyZXF1aXJlcyA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2F1dGh6X3VzZXIuaHRtbCI+bW9kX2F1dGh6X3VzZXI8L2E+PC9jb2RlPik8L2xpPgoKICAgICAgICA8bGk+R3JhbnQgYWNjZXNzIGlmIHRoZXJlIGlzIGEgPGEgaHJlZj0iI3JlcWdyb3VwIj48Y29kZT5SZXF1aXJlIGdyb3VwPC9jb2RlPjwvYT4gZGlyZWN0aXZlLCBhbmQKICAgICAgICA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2F1dGh6X2dyb3VwZmlsZS5odG1sIj5tb2RfYXV0aHpfZ3JvdXBmaWxlPC9hPjwvY29kZT4gaGFzIGJlZW4gbG9hZGVkIHdpdGggdGhlIAogICAgICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfYXV0aHpfZ3JvdXBmaWxlLmh0bWwjYXV0aGdyb3VwZmlsZSI+QXV0aEdyb3VwRmlsZTwvYT48L2NvZGU+IAogICAgICAgIGRpcmVjdGl2ZSBzZXQuPC9saT4KICAgIAogICAgICAgIDxsaT5vdGhlcnMuLi48L2xpPgogICAgIDwvdWw+CgoKICAgIDxwPjxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfYXV0aG56X2xkYXAuaHRtbCI+bW9kX2F1dGhuel9sZGFwPC9hPjwvY29kZT4gdXNlcyB0aGUgZm9sbG93aW5nIGRpcmVjdGl2ZXMgZHVyaW5nIHRoZQogICAgY29tcGFyZSBwaGFzZTo8L3A+CgogICAgPHRhYmxlPgogICAgICAKICAgICAgPHRyPgogICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjYXV0aGxkYXB1cmwiPkF1dGhMREFQVVJMPC9hPjwvY29kZT4gPC90ZD4KCiAgICAgICAgPHRkPlRoZSBhdHRyaWJ1dGUgc3BlY2lmaWVkIGluIHRoZQogICAgICAgIFVSTCBpcyB1c2VkIGluIGNvbXBhcmUgb3BlcmF0aW9ucyBmb3IgdGhlIDxjb2RlPlJlcXVpcmUKICAgICAgICBsZGFwLXVzZXI8L2NvZGU+IG9wZXJhdGlvbi48L3RkPgogICAgICA8L3RyPgoKICAgICAgPHRyPgogICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjYXV0aGxkYXBjb21wYXJlZG5vbnNlcnZlciI+QXV0aExEQVBDb21wYXJlRE5PblNlcnZlcjwvYT48L2NvZGU+PC90ZD4KCiAgICAgICAgPHRkPkRldGVybWluZXMgdGhlIGJlaGF2aW9yIG9mIHRoZQogICAgICAgIDxjb2RlPlJlcXVpcmUgbGRhcC1kbjwvY29kZT4gZGlyZWN0aXZlLjwvdGQ+CiAgICAgIDwvdHI+CgogICAgICA8dHI+CiAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNhdXRobGRhcGdyb3VwYXR0cmlidXRlIj5BdXRoTERBUEdyb3VwQXR0cmlidXRlPC9hPjwvY29kZT48L3RkPgoKICAgICAgICA8dGQ+RGV0ZXJtaW5lcyB0aGUgYXR0cmlidXRlIHRvCiAgICAgICAgdXNlIGZvciBjb21wYXJpc29ucyBpbiB0aGUgPGNvZGU+UmVxdWlyZSBsZGFwLWdyb3VwPC9jb2RlPgogICAgICAgIGRpcmVjdGl2ZS48L3RkPgogICAgICA8L3RyPgoKICAgICAgPHRyPgogICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjYXV0aGxkYXBncm91cGF0dHJpYnV0ZWlzZG4iPkF1dGhMREFQR3JvdXBBdHRyaWJ1dGVJc0ROPC9hPjwvY29kZT48L3RkPgoKICAgICAgICA8dGQ+U3BlY2lmaWVzIHdoZXRoZXIgdG8gdXNlIHRoZQogICAgICAgIHVzZXIgRE4gb3IgdGhlIHVzZXJuYW1lIHdoZW4gZG9pbmcgY29tcGFyaXNvbnMgZm9yIHRoZQogICAgICAgIDxjb2RlPlJlcXVpcmUgbGRhcC1ncm91cDwvY29kZT4gZGlyZWN0aXZlLjwvdGQ+CiAgICAgIDwvdHI+CgogICAgICA8dHI+CiAgICAgICAgPHRkPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNhdXRobGRhcG1heHN1Ymdyb3VwZGVwdGgiPkF1dGhMREFQTWF4U3ViR3JvdXBEZXB0aDwvYT48L2NvZGU+PC90ZD4KCiAgICAgICAgPHRkPkRldGVybWluZXMgdGhlIG1heGltdW0gZGVwdGggb2Ygc3ViLWdyb3VwcyB0aGF0IHdpbGwgYmUgZXZhbHVhdGVkCiAgICAgICAgZHVyaW5nIGNvbXBhcmlzb25zIGluIHRoZSA8Y29kZT5SZXF1aXJlIGxkYXAtZ3JvdXA8L2NvZGU+IGRpcmVjdGl2ZS48L3RkPgogICAgICA8L3RyPgoKICAgICAgPHRyPgogICAgICAgIDx0ZD48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjYXV0aGxkYXBzdWJncm91cGF0dHJpYnV0ZSI+QXV0aExEQVBTdWJHcm91cEF0dHJpYnV0ZTwvYT48L2NvZGU+PC90ZD4KCiAgICAgICAgPHRkPkRldGVybWluZXMgdGhlIGF0dHJpYnV0ZSB0byB1c2Ugd2hlbiBvYnRhaW5pbmcgc3ViLWdyb3VwIG1lbWJlcnMKICAgICAgICBvZiB0aGUgY3VycmVudCBncm91cCBkdXJpbmcgY29tcGFyaXNvbnMgaW4gdGhlIDxjb2RlPlJlcXVpcmUgbGRhcC1ncm91cDwvY29kZT4KICAgICAgICBkaXJlY3RpdmUuPC90ZD4KICAgICAgPC90cj4KCiAgICAgIDx0cj4KICAgICAgICA8dGQ+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2F1dGhsZGFwc3ViZ3JvdXBjbGFzcyI+QXV0aExEQVBTdWJHcm91cENsYXNzPC9hPjwvY29kZT48L3RkPgoKICAgICAgICA8dGQ+U3BlY2lmaWVzIHRoZSBMREFQIG9iamVjdENsYXNzIHZhbHVlcyB1c2VkIHRvIGlkZW50aWZ5IGlmIHF1ZXJpZWQgZGlyZWN0b3J5CiAgICAgICAgb2JqZWN0cyByZWFsbHkgYXJlIGdyb3VwIG9iamVjdHMgKGFzIG9wcG9zZWQgdG8gdXNlciBvYmplY3RzKSBkdXJpbmcgdGhlCiAgICAgICAgPGNvZGU+UmVxdWlyZSBsZGFwLWdyb3VwPC9jb2RlPiBkaXJlY3RpdmUncyBzdWItZ3JvdXAgcHJvY2Vzc2luZy48L3RkPgogICAgICA8L3RyPgogICAgPC90YWJsZT4KCjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9InJlcXVpcmVkaXJlY3RpdmVzIiBpZD0icmVxdWlyZWRpcmVjdGl2ZXMiPlRoZSBSZXF1aXJlIERpcmVjdGl2ZXM8L2E+PC9oMj4KCiAgICA8cD5BcGFjaGUncyA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvbW9kX2F1dGh6X2NvcmUuaHRtbCNyZXF1aXJlIj5SZXF1aXJlPC9hPjwvY29kZT4KICAgIGRpcmVjdGl2ZXMgYXJlIHVzZWQgZHVyaW5nIHRoZSBhdXRob3JpemF0aW9uIHBoYXNlIHRvIGVuc3VyZSB0aGF0CiAgICBhIHVzZXIgaXMgYWxsb3dlZCB0byBhY2Nlc3MgYSByZXNvdXJjZS4gIG1vZF9hdXRobnpfbGRhcCBleHRlbmRzIHRoZSAKICAgIGF1dGhvcml6YXRpb24gdHlwZXMgd2l0aCA8Y29kZT5sZGFwLXVzZXI8L2NvZGU+LCA8Y29kZT5sZGFwLWRuPC9jb2RlPiwgCiAgICA8Y29kZT5sZGFwLWdyb3VwPC9jb2RlPiwgPGNvZGU+bGRhcC1hdHRyaWJ1dGU8L2NvZGU+IGFuZCAKICAgIDxjb2RlPmxkYXAtZmlsdGVyPC9jb2RlPi4gIE90aGVyIGF1dGhvcml6YXRpb24gdHlwZXMgbWF5IGFsc28gYmUgCiAgICB1c2VkIGJ1dCBtYXkgcmVxdWlyZSB0aGF0IGFkZGl0aW9uYWwgYXV0aG9yaXphdGlvbiBtb2R1bGVzIGJlIGxvYWRlZC48L3A+Cgo8aDM+PGEgbmFtZT0icmVxdXNlciIgaWQ9InJlcXVzZXIiPlJlcXVpcmUgbGRhcC11c2VyPC9hPjwvaDM+CgogICAgPHA+VGhlIDxjb2RlPlJlcXVpcmUgbGRhcC11c2VyPC9jb2RlPiBkaXJlY3RpdmUgc3BlY2lmaWVzIHdoYXQKICAgIHVzZXJuYW1lcyBjYW4gYWNjZXNzIHRoZSByZXNvdXJjZS4gT25jZQogICAgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9hdXRobnpfbGRhcC5odG1sIj5tb2RfYXV0aG56X2xkYXA8L2E+PC9jb2RlPiBoYXMgcmV0cmlldmVkIGEgdW5pcXVlIEROIGZyb20gdGhlCiAgICBkaXJlY3RvcnksIGl0IGRvZXMgYW4gTERBUCBjb21wYXJlIG9wZXJhdGlvbiB1c2luZyB0aGUgdXNlcm5hbWUKICAgIHNwZWNpZmllZCBpbiB0aGUgPGNvZGU+UmVxdWlyZSBsZGFwLXVzZXI8L2NvZGU+IHRvIHNlZSBpZiB0aGF0IHVzZXJuYW1lCiAgICBpcyBwYXJ0IG9mIHRoZSBqdXN0LWZldGNoZWQgTERBUCBlbnRyeS4gIE11bHRpcGxlIHVzZXJzIGNhbiBiZQogICAgZ3JhbnRlZCBhY2Nlc3MgYnkgcHV0dGluZyBtdWx0aXBsZSB1c2VybmFtZXMgb24gdGhlIGxpbmUsCiAgICBzZXBhcmF0ZWQgd2l0aCBzcGFjZXMuIElmIGEgdXNlcm5hbWUgaGFzIGEgc3BhY2UgaW4gaXQsIHRoZW4gaXQKICAgIG11c3QgYmUgc3Vycm91bmRlZCB3aXRoIGRvdWJsZSBxdW90ZXMuIE11bHRpcGxlIHVzZXJzIGNhbiBhbHNvIGJlCiAgICBncmFudGVkIGFjY2VzcyBieSB1c2luZyBtdWx0aXBsZSA8Y29kZT5SZXF1aXJlIGxkYXAtdXNlcjwvY29kZT4KICAgIGRpcmVjdGl2ZXMsIHdpdGggb25lIHVzZXIgcGVyIGxpbmUuIEZvciBleGFtcGxlLCB3aXRoIGEgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2F1dGhsZGFwdXJsIj5BdXRoTERBUFVSTDwvYT48L2NvZGU+IG9mCiAgICA8Y29kZT5sZGFwOi8vbGRhcC9vPUV4YW1wbGU/Y248L2NvZGU+IChpLmUuLCA8Y29kZT5jbjwvY29kZT4gaXMKICAgIHVzZWQgZm9yIHNlYXJjaGVzKSwgdGhlIGZvbGxvd2luZyBSZXF1aXJlIGRpcmVjdGl2ZXMgY291bGQgYmUgdXNlZAogICAgdG8gcmVzdHJpY3QgYWNjZXNzOjwvcD4KPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+ClJlcXVpcmUgbGRhcC11c2VyICJCYXJiYXJhIEplbnNvbiI8YnIgLz4KUmVxdWlyZSBsZGFwLXVzZXIgIkZyZWQgVXNlciI8YnIgLz4KUmVxdWlyZSBsZGFwLXVzZXIgIkpvZSBNYW5hZ2VyIjxiciAvPgo8L2NvZGU+PC9wPjwvZGl2PgoKICAgIDxwPkJlY2F1c2Ugb2YgdGhlIHdheSB0aGF0IDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfYXV0aG56X2xkYXAuaHRtbCI+bW9kX2F1dGhuel9sZGFwPC9hPjwvY29kZT4gaGFuZGxlcyB0aGlzCiAgICBkaXJlY3RpdmUsIEJhcmJhcmEgSmVuc29uIGNvdWxkIHNpZ24gb24gYXMgPGVtPkJhcmJhcmEKICAgIEplbnNvbjwvZW0+LCA8ZW0+QmFicyBKZW5zb248L2VtPiBvciBhbnkgb3RoZXIgPGNvZGU+Y248L2NvZGU+IHRoYXQKICAgIHNoZSBoYXMgaW4gaGVyIExEQVAgZW50cnkuIE9ubHkgdGhlIHNpbmdsZSA8Y29kZT5SZXF1aXJlCiAgICBsZGFwLXVzZXI8L2NvZGU+IGxpbmUgaXMgbmVlZGVkIHRvIHN1cHBvcnQgYWxsIHZhbHVlcyBvZiB0aGUgYXR0cmlidXRlCiAgICBpbiB0aGUgdXNlcidzIGVudHJ5LjwvcD4KCiAgICA8cD5JZiB0aGUgPGNvZGU+dWlkPC9jb2RlPiBhdHRyaWJ1dGUgd2FzIHVzZWQgaW5zdGVhZCBvZiB0aGUKICAgIDxjb2RlPmNuPC9jb2RlPiBhdHRyaWJ1dGUgaW4gdGhlIFVSTCBhYm92ZSwgdGhlIGFib3ZlIHRocmVlIGxpbmVzCiAgICBjb3VsZCBiZSBjb25kZW5zZWQgdG88L3A+CjxkaXYgY2xhc3M9ImV4YW1wbGUiPjxwPjxjb2RlPlJlcXVpcmUgbGRhcC11c2VyIGJqZW5zb24gZnVzZXIgam1hbmFnZXI8L2NvZGU+PC9wPjwvZGl2PgoKCjxoMz48YSBuYW1lPSJyZXFncm91cCIgaWQ9InJlcWdyb3VwIj5SZXF1aXJlIGxkYXAtZ3JvdXA8L2E+PC9oMz4KCiAgICA8cD5UaGlzIGRpcmVjdGl2ZSBzcGVjaWZpZXMgYW4gTERBUCBncm91cCB3aG9zZSBtZW1iZXJzIGFyZQogICAgYWxsb3dlZCBhY2Nlc3MuIEl0IHRha2VzIHRoZSBkaXN0aW5ndWlzaGVkIG5hbWUgb2YgdGhlIExEQVAKICAgIGdyb3VwLiBOb3RlOiBEbyBub3Qgc3Vycm91bmQgdGhlIGdyb3VwIG5hbWUgd2l0aCBxdW90ZXMuCiAgICBGb3IgZXhhbXBsZSwgYXNzdW1lIHRoYXQgdGhlIGZvbGxvd2luZyBlbnRyeSBleGlzdGVkIGluCiAgICB0aGUgTERBUCBkaXJlY3Rvcnk6PC9wPgo8ZGl2IGNsYXNzPSJleGFtcGxlIj48cD48Y29kZT4KZG46IGNuPUFkbWluaXN0cmF0b3JzLCBvPUV4YW1wbGU8YnIgLz4Kb2JqZWN0Q2xhc3M6IGdyb3VwT2ZVbmlxdWVOYW1lczxiciAvPgp1bmlxdWVNZW1iZXI6IGNuPUJhcmJhcmEgSmVuc29uLCBvPUV4YW1wbGU8YnIgLz4KdW5pcXVlTWVtYmVyOiBjbj1GcmVkIFVzZXIsIG89RXhhbXBsZTxiciAvPgo8L2NvZGU+PC9wPjwvZGl2PgoKICAgIDxwPlRoZSBmb2xsb3dpbmcgZGlyZWN0aXZlIHdvdWxkIGdyYW50IGFjY2VzcyB0byBib3RoIEZyZWQgYW5kCiAgICBCYXJiYXJhOjwvcD4KPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+UmVxdWlyZSBsZGFwLWdyb3VwIGNuPUFkbWluaXN0cmF0b3JzLCBvPUV4YW1wbGU8L2NvZGU+PC9wPjwvZGl2PgoKICAgIDxwPk1lbWJlcnMgY2FuIGFsc28gYmUgZm91bmQgd2l0aGluIHN1Yi1ncm91cHMgb2YgYSBzcGVjaWZpZWQgTERBUCBncm91cAogICAgaWYgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2F1dGhsZGFwbWF4c3ViZ3JvdXBkZXB0aCI+QXV0aExEQVBNYXhTdWJHcm91cERlcHRoPC9hPjwvY29kZT4KICAgIGlzIHNldCB0byBhIHZhbHVlIGdyZWF0ZXIgdGhhbiAwLiBGb3IgZXhhbXBsZSwgYXNzdW1lIHRoZSBmb2xsb3dpbmcgZW50cmllcwogICAgZXhpc3QgaW4gdGhlIExEQVAgZGlyZWN0b3J5OjwvcD4KPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CmRuOiBjbj1FbXBsb3llZXMsIG89RXhhbXBsZTxiciAvPgpvYmplY3RDbGFzczogZ3JvdXBPZlVuaXF1ZU5hbWVzPGJyIC8+CnVuaXF1ZU1lbWJlcjogY249TWFuYWdlcnMsIG89RXhhbXBsZTxiciAvPgp1bmlxdWVNZW1iZXI6IGNuPUFkbWluaXN0cmF0b3JzLCBvPUV4YW1wbGU8YnIgLz4KdW5pcXVlTWVtYmVyOiBjbj1Vc2Vycywgbz1FeGFtcGxlPGJyIC8+CjxiciAvPgpkbjogY249TWFuYWdlcnMsIG89RXhhbXBsZTxiciAvPgpvYmplY3RDbGFzczogZ3JvdXBPZlVuaXF1ZU5hbWVzPGJyIC8+CnVuaXF1ZU1lbWJlcjogY249Qm9iIEVsbGlzLCBvPUV4YW1wbGU8YnIgLz4KdW5pcXVlTWVtYmVyOiBjbj1Ub20gSmFja3Nvbiwgbz1FeGFtcGxlPGJyIC8+CjxiciAvPgpkbjogY249QWRtaW5pc3RyYXRvcnMsIG89RXhhbXBsZTxiciAvPgpvYmplY3RDbGFzczogZ3JvdXBPZlVuaXF1ZU5hbWVzPGJyIC8+CnVuaXF1ZU1lbWJlcjogY249QmFyYmFyYSBKZW5zb24sIG89RXhhbXBsZTxiciAvPgp1bmlxdWVNZW1iZXI6IGNuPUZyZWQgVXNlciwgbz1FeGFtcGxlPGJyIC8+CjxiciAvPgpkbjogY249VXNlcnMsIG89RXhhbXBsZTxiciAvPgpvYmplY3RDbGFzczogZ3JvdXBPZlVuaXF1ZU5hbWVzPGJyIC8+CnVuaXF1ZU1lbWJlcjogY249QWxsYW4gSmVmZmVyc29uLCBvPUV4YW1wbGU8YnIgLz4KdW5pcXVlTWVtYmVyOiBjbj1QYXVsIFRpbGxleSwgbz1FeGFtcGxlPGJyIC8+CnVuaXF1ZU1lbWJlcjogY249VGVtcG9yYXJ5IEVtcGxveWVlcywgbz1FeGFtcGxlPGJyIC8+CjxiciAvPgpkbjogY249VGVtcG9yYXJ5IEVtcGxveWVlcywgbz1FeGFtcGxlPGJyIC8+Cm9iamVjdENsYXNzOiBncm91cE9mVW5pcXVlTmFtZXM8YnIgLz4KdW5pcXVlTWVtYmVyOiBjbj1KaW0gU3dlbnNvbiwgbz1FeGFtcGxlPGJyIC8+CnVuaXF1ZU1lbWJlcjogY249RWxsaW90IFJob2Rlcywgbz1FeGFtcGxlPGJyIC8+CjwvY29kZT48L3A+PC9kaXY+CgogICAgPHA+VGhlIGZvbGxvd2luZyBkaXJlY3RpdmVzIHdvdWxkIGFsbG93IGFjY2VzcyBmb3IgQm9iIEVsbGlzLCBUb20gSmFja3NvbiwKICAgIEJhcmJhcmEgSmVuc2VuLCBGcmVkIFVzZXIsIEFsbGFuIEplZmZlcnNvbiwgYW5kIFBhdWwgVGlsbGV5IGJ1dCB3b3VsZCBub3QKICAgIGFsbG93IGFjY2VzcyBmb3IgSmltIFN3ZW5zb24sIG9yIEVsbGlvdCBSaG9kZXMgKHNpbmNlIHRoZXkgYXJlIGF0IGEgCiAgICBzdWItZ3JvdXAgZGVwdGggb2YgMik6PC9wPgo8ZGl2IGNsYXNzPSJleGFtcGxlIj48cD48Y29kZT4KUmVxdWlyZSBsZGFwLWdyb3VwIGNuPUVtcGxveWVlcywgby1FeGFtcGxlPGJyIC8+CkF1dGhMREFQU3ViR3JvdXBEZXB0aCAxPGJyIC8+CjwvY29kZT48L3A+PC9kaXY+CgogICAgPHA+QmVoYXZpb3Igb2YgdGhpcyBkaXJlY3RpdmUgaXMgbW9kaWZpZWQgYnkgdGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNhdXRobGRhcGdyb3VwYXR0cmlidXRlIj5BdXRoTERBUEdyb3VwQXR0cmlidXRlPC9hPjwvY29kZT4sIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNhdXRobGRhcGdyb3VwYXR0cmlidXRlaXNkbiI+QXV0aExEQVBHcm91cEF0dHJpYnV0ZUlzRE48L2E+PC9jb2RlPiwgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2F1dGhsZGFwbWF4c3ViZ3JvdXBkZXB0aCI+QXV0aExEQVBNYXhTdWJHcm91cERlcHRoPC9hPjwvY29kZT4sIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNhdXRobGRhcHN1Ymdyb3VwYXR0cmlidXRlIj5BdXRoTERBUFN1Ykdyb3VwQXR0cmlidXRlPC9hPjwvY29kZT4sIGFuZCA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjYXV0aGxkYXBzdWJncm91cGNsYXNzIj5BdXRoTERBUFN1Ykdyb3VwQ2xhc3M8L2E+PC9jb2RlPgogICAgZGlyZWN0aXZlcy48L3A+CgoKPGgzPjxhIG5hbWU9InJlcWRuIiBpZD0icmVxZG4iPlJlcXVpcmUgbGRhcC1kbjwvYT48L2gzPgoKICAgIDxwPlRoZSA8Y29kZT5SZXF1aXJlIGxkYXAtZG48L2NvZGU+IGRpcmVjdGl2ZSBhbGxvd3MgdGhlIGFkbWluaXN0cmF0b3IKICAgIHRvIGdyYW50IGFjY2VzcyBiYXNlZCBvbiBkaXN0aW5ndWlzaGVkIG5hbWVzLiBJdCBzcGVjaWZpZXMgYSBETgogICAgdGhhdCBtdXN0IG1hdGNoIGZvciBhY2Nlc3MgdG8gYmUgZ3JhbnRlZC4gSWYgdGhlIGRpc3Rpbmd1aXNoZWQKICAgIG5hbWUgdGhhdCB3YXMgcmV0cmlldmVkIGZyb20gdGhlIGRpcmVjdG9yeSBzZXJ2ZXIgbWF0Y2hlcyB0aGUKICAgIGRpc3Rpbmd1aXNoZWQgbmFtZSBpbiB0aGUgPGNvZGU+UmVxdWlyZSBsZGFwLWRuPC9jb2RlPiwgdGhlbgogICAgYXV0aG9yaXphdGlvbiBpcyBncmFudGVkLiBOb3RlOiBkbyBub3Qgc3Vycm91bmQgdGhlIGRpc3Rpbmd1aXNoZWQKICAgIG5hbWUgd2l0aCBxdW90ZXMuPC9wPgoKICAgIDxwPlRoZSBmb2xsb3dpbmcgZGlyZWN0aXZlIHdvdWxkIGdyYW50IGFjY2VzcyB0byBhIHNwZWNpZmljCiAgICBETjo8L3A+CjxkaXYgY2xhc3M9ImV4YW1wbGUiPjxwPjxjb2RlPlJlcXVpcmUgbGRhcC1kbiBjbj1CYXJiYXJhIEplbnNvbiwgbz1FeGFtcGxlPC9jb2RlPjwvcD48L2Rpdj4KCiAgICA8cD5CZWhhdmlvciBvZiB0aGlzIGRpcmVjdGl2ZSBpcyBtb2RpZmllZCBieSB0aGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2F1dGhsZGFwY29tcGFyZWRub25zZXJ2ZXIiPkF1dGhMREFQQ29tcGFyZUROT25TZXJ2ZXI8L2E+PC9jb2RlPgogICAgZGlyZWN0aXZlLjwvcD4KCgo8aDM+PGEgbmFtZT0icmVxYXR0cmlidXRlIiBpZD0icmVxYXR0cmlidXRlIj5SZXF1aXJlIGxkYXAtYXR0cmlidXRlPC9hPjwvaDM+CgogICAgPHA+VGhlIDxjb2RlPlJlcXVpcmUgbGRhcC1hdHRyaWJ1dGU8L2NvZGU+IGRpcmVjdGl2ZSBhbGxvd3MgdGhlCiAgICBhZG1pbmlzdHJhdG9yIHRvIGdyYW50IGFjY2VzcyBiYXNlZCBvbiBhdHRyaWJ1dGVzIG9mIHRoZSBhdXRoZW50aWNhdGVkCiAgICB1c2VyIGluIHRoZSBMREFQIGRpcmVjdG9yeS4gIElmIHRoZSBhdHRyaWJ1dGUgaW4gdGhlIGRpcmVjdG9yeQogICAgbWF0Y2hlcyB0aGUgdmFsdWUgZ2l2ZW4gaW4gdGhlIGNvbmZpZ3VyYXRpb24sIGFjY2VzcyBpcyBncmFudGVkLjwvcD4KICAgIAogICAgPHA+VGhlIGZvbGxvd2luZyBkaXJlY3RpdmUgd291bGQgZ3JhbnQgYWNjZXNzIHRvIGFueW9uZSB3aXRoCiAgICB0aGUgYXR0cmlidXRlIGVtcGxveWVlVHlwZSA9IGFjdGl2ZTwvcD4KCiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48cD48Y29kZT5SZXF1aXJlIGxkYXAtYXR0cmlidXRlIGVtcGxveWVlVHlwZT1hY3RpdmU8L2NvZGU+PC9wPjwvZGl2PgoKICAgIDxwPk11bHRpcGxlIGF0dHJpYnV0ZS92YWx1ZSBwYWlycyBjYW4gYmUgc3BlY2lmaWVkIG9uIHRoZSBzYW1lIGxpbmUKICAgIHNlcGFyYXRlZCBieSBzcGFjZXMgb3IgdGhleSBjYW4gYmUgc3BlY2lmaWVkIGluIG11bHRpcGxlIAogICAgPGNvZGU+UmVxdWlyZSBsZGFwLWF0dHJpYnV0ZTwvY29kZT4gZGlyZWN0aXZlcy4gVGhlIGVmZmVjdCBvZiBsaXN0aW5nIAogICAgbXVsdGlwbGUgYXR0cmlidXRlL3ZhbHVlcyBwYWlycyBpcyBhbiBPUiBvcGVyYXRpb24uIEFjY2VzcyB3aWxsIGJlIAogICAgZ3JhbnRlZCBpZiBhbnkgb2YgdGhlIGxpc3RlZCBhdHRyaWJ1dGUgdmFsdWVzIG1hdGNoIHRoZSB2YWx1ZSBvZiB0aGUgCiAgICBjb3JyZXNwb25kaW5nIGF0dHJpYnV0ZSBpbiB0aGUgdXNlciBvYmplY3QuIElmIHRoZSB2YWx1ZSBvZiB0aGUgCiAgICBhdHRyaWJ1dGUgY29udGFpbnMgYSBzcGFjZSwgb25seSB0aGUgdmFsdWUgbXVzdCBiZSB3aXRoaW4gZG91YmxlIHF1b3Rlcy48L3A+CgogICAgPHA+VGhlIGZvbGxvd2luZyBkaXJlY3RpdmUgd291bGQgZ3JhbnQgYWNjZXNzIHRvIGFueW9uZSB3aXRoCiAgICB0aGUgY2l0eSBhdHRyaWJ1dGUgZXF1YWwgdG8gIlNhbiBKb3NlIiBvciBzdGF0dXMgZXF1YWwgdG8gIkFjdGl2ZSI8L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+UmVxdWlyZSBsZGFwLWF0dHJpYnV0ZSBjaXR5PSJTYW4gSm9zZSIgc3RhdHVzPWFjdGl2ZTwvY29kZT48L3A+PC9kaXY+CgoKCjxoMz48YSBuYW1lPSJyZXFmaWx0ZXIiIGlkPSJyZXFmaWx0ZXIiPlJlcXVpcmUgbGRhcC1maWx0ZXI8L2E+PC9oMz4KCiAgICA8cD5UaGUgPGNvZGU+UmVxdWlyZSBsZGFwLWZpbHRlcjwvY29kZT4gZGlyZWN0aXZlIGFsbG93cyB0aGUKICAgIGFkbWluaXN0cmF0b3IgdG8gZ3JhbnQgYWNjZXNzIGJhc2VkIG9uIGEgY29tcGxleCBMREFQIHNlYXJjaCBmaWx0ZXIuCiAgICBJZiB0aGUgZG4gcmV0dXJuZWQgYnkgdGhlIGZpbHRlciBzZWFyY2ggbWF0Y2hlcyB0aGUgYXV0aGVudGljYXRlZCB1c2VyCiAgICBkbiwgYWNjZXNzIGlzIGdyYW50ZWQuPC9wPgogICAgCiAgICA8cD5UaGUgZm9sbG93aW5nIGRpcmVjdGl2ZSB3b3VsZCBncmFudCBhY2Nlc3MgdG8gYW55b25lIGhhdmluZyBhIGNlbGwgcGhvbmUKICAgIGFuZCBpcyBpbiB0aGUgbWFya2V0aW5nIGRlcGFydG1lbnQ8L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+UmVxdWlyZSBsZGFwLWZpbHRlciAmYW1wOyhjZWxsPSopKGRlcGFydG1lbnQ9bWFya2V0aW5nKTwvY29kZT48L3A+PC9kaXY+CgogICAgPHA+VGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgPGNvZGU+UmVxdWlyZSBsZGFwLWZpbHRlcjwvY29kZT4gZGlyZWN0aXZlIGFuZCB0aGUgCiAgICA8Y29kZT5SZXF1aXJlIGxkYXAtYXR0cmlidXRlPC9jb2RlPiBkaXJlY3RpdmUgaXMgdGhhdCA8Y29kZT5sZGFwLWZpbHRlcjwvY29kZT4gCiAgICBwZXJmb3JtcyBhIHNlYXJjaCBvcGVyYXRpb24gb24gdGhlIExEQVAgZGlyZWN0b3J5IHVzaW5nIHRoZSBzcGVjaWZpZWQgc2VhcmNoIAogICAgZmlsdGVyIHJhdGhlciB0aGFuIGEgc2ltcGxlIGF0dHJpYnV0ZSBjb21wYXJpc29uLiBJZiBhIHNpbXBsZSBhdHRyaWJ1dGUgCiAgICBjb21wYXJpc29uIGlzIGFsbCB0aGF0IGlzIHJlcXVpcmVkLCB0aGUgY29tcGFyaXNvbiBvcGVyYXRpb24gcGVyZm9ybWVkIGJ5IAogICAgPGNvZGU+bGRhcC1hdHRyaWJ1dGU8L2NvZGU+IHdpbGwgYmUgZmFzdGVyIHRoYW4gdGhlIHNlYXJjaCBvcGVyYXRpb24gCiAgICB1c2VkIGJ5IDxjb2RlPmxkYXAtZmlsdGVyPC9jb2RlPiBlc3BlY2lhbGx5IHdpdGhpbiBhIGxhcmdlIGRpcmVjdG9yeS48L3A+CgoKCjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9ImV4YW1wbGVzIiBpZD0iZXhhbXBsZXMiPkV4YW1wbGVzPC9hPjwvaDI+CgogICAgPHVsPgogICAgICA8bGk+CiAgICAgICAgR3JhbnQgYWNjZXNzIHRvIGFueW9uZSB3aG8gZXhpc3RzIGluIHRoZSBMREFQIGRpcmVjdG9yeSwKICAgICAgICB1c2luZyB0aGVpciBVSUQgZm9yIHNlYXJjaGVzLiAKPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CkF1dGhMREFQVVJMICJsZGFwOi8vbGRhcDEuZXhhbXBsZS5jb206Mzg5L291PVBlb3BsZSwgbz1FeGFtcGxlP3VpZD9zdWI/KG9iamVjdENsYXNzPSopIjxiciAvPgpSZXF1aXJlIHZhbGlkLXVzZXIKPC9jb2RlPjwvcD48L2Rpdj4KICAgICAgPC9saT4KCiAgICAgIDxsaT4KICAgICAgICBUaGUgbmV4dCBleGFtcGxlIGlzIHRoZSBzYW1lIGFzIGFib3ZlOyBidXQgd2l0aCB0aGUgZmllbGRzCiAgICAgICAgdGhhdCBoYXZlIHVzZWZ1bCBkZWZhdWx0cyBvbWl0dGVkLiBBbHNvLCBub3RlIHRoZSB1c2Ugb2YgYQogICAgICAgIHJlZHVuZGFudCBMREFQIHNlcnZlci4gCjxkaXYgY2xhc3M9ImV4YW1wbGUiPjxwPjxjb2RlPkF1dGhMREFQVVJMICJsZGFwOi8vbGRhcDEuZXhhbXBsZS5jb20gbGRhcDIuZXhhbXBsZS5jb20vb3U9UGVvcGxlLCBvPUV4YW1wbGUiPGJyIC8+ClJlcXVpcmUgdmFsaWQtdXNlcgo8L2NvZGU+PC9wPjwvZGl2PgogICAgICA8L2xpPgoKICAgICAgPGxpPgogICAgICAgIFRoZSBuZXh0IGV4YW1wbGUgaXMgc2ltaWxhciB0byB0aGUgcHJldmlvdXMgb25lLCBidXQgaXQKICAgICAgICB1c2VzIHRoZSBjb21tb24gbmFtZSBpbnN0ZWFkIG9mIHRoZSBVSUQuIE5vdGUgdGhhdCB0aGlzCiAgICAgICAgY291bGQgYmUgcHJvYmxlbWF0aWNhbCBpZiBtdWx0aXBsZSBwZW9wbGUgaW4gdGhlIGRpcmVjdG9yeQogICAgICAgIHNoYXJlIHRoZSBzYW1lIDxjb2RlPmNuPC9jb2RlPiwgYmVjYXVzZSBhIHNlYXJjaCBvbiA8Y29kZT5jbjwvY29kZT4KICAgICAgICA8c3Ryb25nPm11c3Q8L3N0cm9uZz4gcmV0dXJuIGV4YWN0bHkgb25lIGVudHJ5LiBUaGF0J3Mgd2h5CiAgICAgICAgdGhpcyBhcHByb2FjaCBpcyBub3QgcmVjb21tZW5kZWQ6IGl0J3MgYSBiZXR0ZXIgaWRlYSB0bwogICAgICAgIGNob29zZSBhbiBhdHRyaWJ1dGUgdGhhdCBpcyBndWFyYW50ZWVkIHVuaXF1ZSBpbiB5b3VyCiAgICAgICAgZGlyZWN0b3J5LCBzdWNoIGFzIDxjb2RlPnVpZDwvY29kZT4uIAo8ZGl2IGNsYXNzPSJleGFtcGxlIj48cD48Y29kZT4KQXV0aExEQVBVUkwgImxkYXA6Ly9sZGFwLmV4YW1wbGUuY29tL291PVBlb3BsZSwgbz1FeGFtcGxlP2NuIjxiciAvPgpSZXF1aXJlIHZhbGlkLXVzZXIKPC9jb2RlPjwvcD48L2Rpdj4KICAgICAgPC9saT4KCiAgICAgIDxsaT4KICAgICAgICBHcmFudCBhY2Nlc3MgdG8gYW55Ym9keSBpbiB0aGUgQWRtaW5pc3RyYXRvcnMgZ3JvdXAuIFRoZQogICAgICAgIHVzZXJzIG11c3QgYXV0aGVudGljYXRlIHVzaW5nIHRoZWlyIFVJRC4gCjxkaXYgY2xhc3M9ImV4YW1wbGUiPjxwPjxjb2RlPgpBdXRoTERBUFVSTCBsZGFwOi8vbGRhcC5leGFtcGxlLmNvbS9vPUV4YW1wbGU/dWlkPGJyIC8+ClJlcXVpcmUgbGRhcC1ncm91cCBjbj1BZG1pbmlzdHJhdG9ycywgbz1FeGFtcGxlCjwvY29kZT48L3A+PC9kaXY+CiAgICAgIDwvbGk+CgogICAgICA8bGk+CiAgICAgICAgVGhlIG5leHQgZXhhbXBsZSBhc3N1bWVzIHRoYXQgZXZlcnlvbmUgYXQgRXhhbXBsZSB3aG8KICAgICAgICBjYXJyaWVzIGFuIGFscGhhbnVtZXJpYyBwYWdlciB3aWxsIGhhdmUgYW4gTERBUCBhdHRyaWJ1dGUKICAgICAgICBvZiA8Y29kZT5xcGFnZVBhZ2VySUQ8L2NvZGU+LiBUaGUgZXhhbXBsZSB3aWxsIGdyYW50IGFjY2VzcwogICAgICAgIG9ubHkgdG8gcGVvcGxlIChhdXRoZW50aWNhdGVkIHZpYSB0aGVpciBVSUQpIHdobyBoYXZlCiAgICAgICAgYWxwaGFudW1lcmljIHBhZ2VyczogCjxkaXYgY2xhc3M9ImV4YW1wbGUiPjxwPjxjb2RlPgpBdXRoTERBUFVSTCBsZGFwOi8vbGRhcC5leGFtcGxlLmNvbS9vPUV4YW1wbGU/dWlkPz8ocXBhZ2VQYWdlcklEPSopPGJyIC8+ClJlcXVpcmUgdmFsaWQtdXNlcgo8L2NvZGU+PC9wPjwvZGl2PgogICAgICA8L2xpPgoKICAgICAgPGxpPgogICAgICAgIDxwPlRoZSBuZXh0IGV4YW1wbGUgZGVtb25zdHJhdGVzIHRoZSBwb3dlciBvZiB1c2luZyBmaWx0ZXJzCiAgICAgICAgdG8gYWNjb21wbGlzaCBjb21wbGljYXRlZCBhZG1pbmlzdHJhdGl2ZSByZXF1aXJlbWVudHMuCiAgICAgICAgV2l0aG91dCBmaWx0ZXJzLCBpdCB3b3VsZCBoYXZlIGJlZW4gbmVjZXNzYXJ5IHRvIGNyZWF0ZSBhCiAgICAgICAgbmV3IExEQVAgZ3JvdXAgYW5kIGVuc3VyZSB0aGF0IHRoZSBncm91cCdzIG1lbWJlcnMgcmVtYWluCiAgICAgICAgc3luY2hyb25pemVkIHdpdGggdGhlIHBhZ2VyIHVzZXJzLiBUaGlzIGJlY29tZXMgdHJpdmlhbAogICAgICAgIHdpdGggZmlsdGVycy4gVGhlIGdvYWwgaXMgdG8gZ3JhbnQgYWNjZXNzIHRvIGFueW9uZSB3aG8gaGFzCiAgICAgICAgYSBwYWdlciwgcGx1cyBncmFudCBhY2Nlc3MgdG8gSm9lIE1hbmFnZXIsIHdobyBkb2Vzbid0CiAgICAgICAgaGF2ZSBhIHBhZ2VyLCBidXQgZG9lcyBuZWVkIHRvIGFjY2VzcyB0aGUgc2FtZQogICAgICAgIHJlc291cmNlOjwvcD4KPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CkF1dGhMREFQVVJMIGxkYXA6Ly9sZGFwLmV4YW1wbGUuY29tL289RXhhbXBsZT91aWQ/Pyh8KHFwYWdlUGFnZXJJRD0qKSh1aWQ9am1hbmFnZXIpKTxiciAvPgpSZXF1aXJlIHZhbGlkLXVzZXIKPC9jb2RlPjwvcD48L2Rpdj4KCiAgICAgICAgPHA+VGhpcyBsYXN0IG1heSBsb29rIGNvbmZ1c2luZyBhdCBmaXJzdCwgc28gaXQgaGVscHMgdG8KICAgICAgICBldmFsdWF0ZSB3aGF0IHRoZSBzZWFyY2ggZmlsdGVyIHdpbGwgbG9vayBsaWtlIGJhc2VkIG9uIHdobwogICAgICAgIGNvbm5lY3RzLCBhcyBzaG93biBiZWxvdy4gIElmCiAgICAgICAgRnJlZCBVc2VyIGNvbm5lY3RzIGFzIDxjb2RlPmZ1c2VyPC9jb2RlPiwgdGhlIGZpbHRlciB3b3VsZCBsb29rCiAgICAgICAgbGlrZTwvcD4KCiAgICAgICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+KCZhbXA7KHwocXBhZ2VQYWdlcklEPSopKHVpZD1qbWFuYWdlcikpKHVpZD1mdXNlcikpPC9jb2RlPjwvcD48L2Rpdj4KCiAgICAgICAgPHA+VGhlIGFib3ZlIHNlYXJjaCB3aWxsIG9ubHkgc3VjY2VlZCBpZiA8ZW0+ZnVzZXI8L2VtPiBoYXMgYQogICAgICAgIHBhZ2VyLiBXaGVuIEpvZSBNYW5hZ2VyIGNvbm5lY3RzIGFzIDxlbT5qbWFuYWdlcjwvZW0+LCB0aGUKICAgICAgICBmaWx0ZXIgbG9va3MgbGlrZTwvcD4KCiAgICAgICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+KCZhbXA7KHwocXBhZ2VQYWdlcklEPSopKHVpZD1qbWFuYWdlcikpKHVpZD1qbWFuYWdlcikpPC9jb2RlPjwvcD48L2Rpdj4KCiAgICAgICAgPHA+VGhlIGFib3ZlIHNlYXJjaCB3aWxsIHN1Y2NlZWQgd2hldGhlciA8ZW0+am1hbmFnZXI8L2VtPgogICAgICAgIGhhcyBhIHBhZ2VyIG9yIG5vdC48L3A+CiAgICAgIDwvbGk+CiAgICA8L3VsPgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJ1c2luZ3RscyIgaWQ9InVzaW5ndGxzIj5Vc2luZyBUTFM8L2E+PC9oMj4KCiAgICA8cD5UbyB1c2UgVExTLCBzZWUgdGhlIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfbGRhcC5odG1sIj5tb2RfbGRhcDwvYT48L2NvZGU+IGRpcmVjdGl2ZXMgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9sZGFwLmh0bWwjbGRhcHRydXN0ZWRjbGllbnRjZXJ0Ij5MREFQVHJ1c3RlZENsaWVudENlcnQ8L2E+PC9jb2RlPiwgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9sZGFwLmh0bWwjbGRhcHRydXN0ZWRnbG9iYWxjZXJ0Ij5MREFQVHJ1c3RlZEdsb2JhbENlcnQ8L2E+PC9jb2RlPiBhbmQgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9sZGFwLmh0bWwjbGRhcHRydXN0ZWRtb2RlIj5MREFQVHJ1c3RlZE1vZGU8L2E+PC9jb2RlPi48L3A+CgogICAgPHA+QW4gb3B0aW9uYWwgc2Vjb25kIHBhcmFtZXRlciBjYW4gYmUgYWRkZWQgdG8gdGhlIAogICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2F1dGhsZGFwdXJsIj5BdXRoTERBUFVSTDwvYT48L2NvZGU+IHRvIG92ZXJyaWRlCiAgICB0aGUgZGVmYXVsdCBjb25uZWN0aW9uIHR5cGUgc2V0IGJ5IDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfbGRhcC5odG1sI2xkYXB0cnVzdGVkbW9kZSI+TERBUFRydXN0ZWRNb2RlPC9hPjwvY29kZT4uCiAgICBUaGlzIHdpbGwgYWxsb3cgdGhlIGNvbm5lY3Rpb24gZXN0YWJsaXNoZWQgYnkgYW4gPGVtPmxkYXA6Ly88L2VtPiBVcmwgCiAgICB0byBiZSB1cGdyYWRlZCB0byBhIHNlY3VyZSBjb25uZWN0aW9uIG9uIHRoZSBzYW1lIHBvcnQuPC9wPgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJ1c2luZ3NzbCIgaWQ9InVzaW5nc3NsIj5Vc2luZyBTU0w8L2E+PC9oMj4KCiAgICA8cD5UbyB1c2UgU1NMLCBzZWUgdGhlIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfbGRhcC5odG1sIj5tb2RfbGRhcDwvYT48L2NvZGU+IGRpcmVjdGl2ZXMgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9sZGFwLmh0bWwjbGRhcHRydXN0ZWRjbGllbnRjZXJ0Ij5MREFQVHJ1c3RlZENsaWVudENlcnQ8L2E+PC9jb2RlPiwgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9sZGFwLmh0bWwjbGRhcHRydXN0ZWRnbG9iYWxjZXJ0Ij5MREFQVHJ1c3RlZEdsb2JhbENlcnQ8L2E+PC9jb2RlPiBhbmQgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9sZGFwLmh0bWwjbGRhcHRydXN0ZWRtb2RlIj5MREFQVHJ1c3RlZE1vZGU8L2E+PC9jb2RlPi48L3A+CgogICAgPHA+VG8gc3BlY2lmeSBhIHNlY3VyZSBMREFQIHNlcnZlciwgdXNlIDxlbT5sZGFwczovLzwvZW0+IGluIHRoZQogICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2F1dGhsZGFwdXJsIj5BdXRoTERBUFVSTDwvYT48L2NvZGU+CiAgICBkaXJlY3RpdmUsIGluc3RlYWQgb2YgPGVtPmxkYXA6Ly88L2VtPi48L3A+CjwvZGl2PjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJzZWN0aW9uIj4KPGgyPjxhIG5hbWU9ImV4cG9zZWQiIGlkPSJleHBvc2VkIj5FeHBvc2luZyBMb2dpbiBJbmZvcm1hdGlvbjwvYT48L2gyPgoKICAgIDxwPndoZW4gdGhpcyBtb2R1bGUgcGVyZm9ybXMgPGVtPmF1dGhlbnRpY2F0aW9uPC9lbT4sIGxkYXAgYXR0cmlidXRlcyBzcGVjaWZpZWQKICAgIGluIHRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjYXV0aGxkYXB1cmwiPmF1dGhsZGFwdXJsPC9hPjwvY29kZT4gCiAgICBkaXJlY3RpdmUgYXJlIHBsYWNlZCBpbiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgd2l0aCB0aGUgcHJlZml4ICJBVVRIRU5USUNBVEVfIi48L3A+CgogICAgPHA+d2hlbiB0aGlzIG1vZHVsZSBwZXJmb3JtcyA8ZW0+YXV0aG9yaXphdGlvbjwvZW0+LCBsZGFwIGF0dHJpYnV0ZXMgc3BlY2lmaWVkCiAgICBpbiB0aGUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2F1dGhsZGFwdXJsIj5hdXRobGRhcHVybDwvYT48L2NvZGU+IAogICAgZGlyZWN0aXZlIGFyZSBwbGFjZWQgaW4gZW52aXJvbm1lbnQgdmFyaWFibGVzIHdpdGggdGhlIHByZWZpeCAiQVVUSE9SSVpFXyIuPC9wPgoKICAgIDxwPklmIHRoZSBhdHRyaWJ1dGUgZmllbGQgY29udGFpbnMgdGhlIHVzZXJuYW1lLCBjb21tb24gbmFtZQogICAgYW5kIHRlbGVwaG9uZSBudW1iZXIgb2YgYSB1c2VyLCBhIENHSSBwcm9ncmFtIHdpbGwgaGF2ZSBhY2Nlc3MgdG8KICAgIHRoaXMgaW5mb3JtYXRpb24gd2l0aG91dCB0aGUgbmVlZCB0byBtYWtlIGEgc2Vjb25kIGluZGVwZW5kZW50IExEQVAKICAgIHF1ZXJ5IHRvIGdhdGhlciB0aGlzIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24uPC9wPgoKICAgIDxwPlRoaXMgaGFzIHRoZSBwb3RlbnRpYWwgdG8gZHJhbWF0aWNhbGx5IHNpbXBsaWZ5IHRoZSBjb2RpbmcgYW5kCiAgICBjb25maWd1cmF0aW9uIHJlcXVpcmVkIGluIHNvbWUgd2ViIGFwcGxpY2F0aW9ucy48L3A+Cgo8L2Rpdj48ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0ic2VjdGlvbiI+CjxoMj48YSBuYW1lPSJhY3RpdmVkaXJlY3RvcnkiIGlkPSJhY3RpdmVkaXJlY3RvcnkiPlVzaW5nIEFjdGl2ZSBEaXJlY3Rvcnk8L2E+PC9oMj4KCiAgICA8cD5BbiBBY3RpdmUgRGlyZWN0b3J5IGluc3RhbGxhdGlvbiBtYXkgc3VwcG9ydCBtdWx0aXBsZSBkb21haW5zIGF0IHRoZQogICAgc2FtZSB0aW1lLiBUbyBkaXN0aW5ndWlzaCB1c2VycyBiZXR3ZWVuIGRvbWFpbnMsIGFuIGlkZW50aWZpZXIgY2FsbGVkCiAgICBhIFVzZXIgUHJpbmNpcGxlIE5hbWUgKFVQTikgY2FuIGJlIGFkZGVkIHRvIGEgdXNlcidzIGVudHJ5IGluIHRoZQogICAgZGlyZWN0b3J5LiBUaGlzIFVQTiB1c3VhbGx5IHRha2VzIHRoZSBmb3JtIG9mIHRoZSB1c2VyJ3MgYWNjb3VudAogICAgbmFtZSwgZm9sbG93ZWQgYnkgdGhlIGRvbWFpbiBjb21wb25lbnRzIG9mIHRoZSBwYXJ0aWN1bGFyIGRvbWFpbiwKICAgIGZvciBleGFtcGxlIDxlbT5zb21lYm9keUBuei5leGFtcGxlLmNvbTwvZW0+LjwvcD4KCiAgICA8cD5Zb3UgbWF5IHdpc2ggdG8gY29uZmlndXJlIHRoZSA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2F1dGhuel9sZGFwLmh0bWwiPm1vZF9hdXRobnpfbGRhcDwvYT48L2NvZGU+CiAgICBtb2R1bGUgdG8gYXV0aGVudGljYXRlIHVzZXJzIHByZXNlbnQgaW4gYW55IG9mIHRoZSBkb21haW5zIG1ha2luZyB1cAogICAgdGhlIEFjdGl2ZSBEaXJlY3RvcnkgZm9yZXN0LiBJbiB0aGlzIHdheSBib3RoCiAgICA8ZW0+c29tZWJvZHlAbnouZXhhbXBsZS5jb208L2VtPiBhbmQgPGVtPnNvbWVvbmVAYXUuZXhhbXBsZS5jb208L2VtPgogICAgY2FuIGJlIGF1dGhlbnRpY2F0ZWQgdXNpbmcgdGhlIHNhbWUgcXVlcnkgYXQgdGhlIHNhbWUgdGltZS48L3A+CgogICAgPHA+VG8gbWFrZSB0aGlzIHByYWN0aWNhbCwgQWN0aXZlIERpcmVjdG9yeSBzdXBwb3J0cyB0aGUgY29uY2VwdCBvZgogICAgYSBHbG9iYWwgQ2F0YWxvZy4gVGhpcyBHbG9iYWwgQ2F0YWxvZyBpcyBhIHJlYWQgb25seSBjb3B5IG9mIHNlbGVjdGVkCiAgICBhdHRyaWJ1dGVzIG9mIGFsbCB0aGUgQWN0aXZlIERpcmVjdG9yeSBzZXJ2ZXJzIHdpdGhpbiB0aGUgQWN0aXZlCiAgICBEaXJlY3RvcnkgZm9yZXN0LiBRdWVyeWluZyB0aGUgR2xvYmFsIENhdGFsb2cgYWxsb3dzIGFsbCB0aGUgZG9tYWlucwogICAgdG8gYmUgcXVlcmllZCBpbiBhIHNpbmdsZSBxdWVyeSwgd2l0aG91dCB0aGUgcXVlcnkgc3Bhbm5pbmcgc2VydmVycwogICAgb3ZlciBwb3RlbnRpYWxseSBzbG93IGxpbmtzLjwvcD4KCiAgICA8cD5JZiBlbmFibGVkLCB0aGUgR2xvYmFsIENhdGFsb2cgaXMgYW4gaW5kZXBlbmRlbnQgZGlyZWN0b3J5IHNlcnZlcgogICAgdGhhdCBydW5zIG9uIHBvcnQgMzI2OCAoMzI2OSBmb3IgU1NMKS4gVG8gc2VhcmNoIGZvciBhIHVzZXIsIGRvIGEKICAgIHN1YnRyZWUgc2VhcmNoIGZvciB0aGUgYXR0cmlidXRlIDxlbT51c2VyUHJpbmNpcGFsTmFtZTwvZW0+LCB3aXRoCiAgICBhbiBlbXB0eSBzZWFyY2ggcm9vdCwgbGlrZSBzbzo8L3A+Cgo8ZGl2IGNsYXNzPSJleGFtcGxlIj48cD48Y29kZT4KQXV0aExEQVBCaW5kRE4gYXBhY2hlQGV4YW1wbGUuY29tPGJyIC8+CkF1dGhMREFQQmluZFBhc3N3b3JkIHBhc3N3b3JkPGJyIC8+CkF1dGhMREFQVVJMIGxkYXA6Ly8xMC4wLjAuMTozMjY4Lz91c2VyUHJpbmNpcGFsTmFtZT9zdWIKPC9jb2RlPjwvcD48L2Rpdj4KCiAgICA8cD5Vc2VycyB3aWxsIG5lZWQgdG8gZW50ZXIgdGhlaXIgVXNlciBQcmluY2lwYWwgTmFtZSBhcyBhIGxvZ2luLCBpbgogICAgdGhlIGZvcm0gPGVtPnNvbWVib2R5QG56LmV4YW1wbGUuY29tPC9lbT4uPC9wPgoKPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9InNlY3Rpb24iPgo8aDI+PGEgbmFtZT0iZnJvbnRwYWdlIiBpZD0iZnJvbnRwYWdlIj5Vc2luZyBNaWNyb3NvZnQKICAgIEZyb250UGFnZSB3aXRoIG1vZF9hdXRobnpfbGRhcDwvYT48L2gyPgoKICAgIDxwPk5vcm1hbGx5LCBGcm9udFBhZ2UgdXNlcyBGcm9udFBhZ2Utd2ViLXNwZWNpZmljIHVzZXIvZ3JvdXAKICAgIGZpbGVzIChpLmUuLCB0aGUgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9hdXRobl9maWxlLmh0bWwiPm1vZF9hdXRobl9maWxlPC9hPjwvY29kZT4gYW5kCiAgICA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2F1dGh6X2dyb3VwZmlsZS5odG1sIj5tb2RfYXV0aHpfZ3JvdXBmaWxlPC9hPjwvY29kZT4gbW9kdWxlcykgdG8gaGFuZGxlIGFsbAogICAgYXV0aGVudGljYXRpb24uIFVuZm9ydHVuYXRlbHksIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBqdXN0CiAgICBjaGFuZ2UgdG8gTERBUCBhdXRoZW50aWNhdGlvbiBieSBhZGRpbmcgdGhlIHByb3BlciBkaXJlY3RpdmVzLAogICAgYmVjYXVzZSBpdCB3aWxsIGJyZWFrIHRoZSA8ZW0+UGVybWlzc2lvbnM8L2VtPiBmb3JtcyBpbgogICAgdGhlIEZyb250UGFnZSBjbGllbnQsIHdoaWNoIGF0dGVtcHQgdG8gbW9kaWZ5IHRoZSBzdGFuZGFyZAogICAgdGV4dC1iYXNlZCBhdXRob3JpemF0aW9uIGZpbGVzLjwvcD4KCiAgICA8cD5PbmNlIGEgRnJvbnRQYWdlIHdlYiBoYXMgYmVlbiBjcmVhdGVkLCBhZGRpbmcgTERBUAogICAgYXV0aGVudGljYXRpb24gdG8gaXQgaXMgYSBtYXR0ZXIgb2YgYWRkaW5nIHRoZSBmb2xsb3dpbmcKICAgIGRpcmVjdGl2ZXMgdG8gPGVtPmV2ZXJ5PC9lbT4gPGNvZGU+Lmh0YWNjZXNzPC9jb2RlPiBmaWxlCiAgICB0aGF0IGdldHMgY3JlYXRlZCBpbiB0aGUgd2ViPC9wPgo8ZGl2IGNsYXNzPSJleGFtcGxlIj48cHJlPgpBdXRoTERBUFVSTCAgICAgICAgICAgICJ0aGUgdXJsIgpBdXRoR3JvdXBGaWxlIDxlbT5teWdyb3VwZmlsZTwvZW0+ClJlcXVpcmUgZ3JvdXAgPGVtPm15Z3JvdXBmaWxlPC9lbT4KPC9wcmU+PC9kaXY+Cgo8aDM+PGEgbmFtZT0iaG93aXR3b3JrcyIgaWQ9Imhvd2l0d29ya3MiPkhvdyBJdCBXb3JrczwvYT48L2gzPgoKICAgIDxwPkZyb250UGFnZSByZXN0cmljdHMgYWNjZXNzIHRvIGEgd2ViIGJ5IGFkZGluZyB0aGUgPGNvZGU+UmVxdWlyZQogICAgdmFsaWQtdXNlcjwvY29kZT4gZGlyZWN0aXZlIHRvIHRoZSA8Y29kZT4uaHRhY2Nlc3M8L2NvZGU+CiAgICBmaWxlcy4gVGhlIDxjb2RlPlJlcXVpcmUgdmFsaWQtdXNlcjwvY29kZT4gZGlyZWN0aXZlIHdpbGwgc3VjY2VlZCBmb3IKICAgIGFueSB1c2VyIHdobyBpcyB2YWxpZCA8ZW0+YXMgZmFyIGFzIExEQVAgaXMKICAgIGNvbmNlcm5lZDwvZW0+LiBUaGlzIG1lYW5zIHRoYXQgYW55Ym9keSB3aG8gaGFzIGFuIGVudHJ5IGluCiAgICB0aGUgTERBUCBkaXJlY3RvcnkgaXMgY29uc2lkZXJlZCBhIHZhbGlkIHVzZXIsIHdoZXJlYXMgRnJvbnRQYWdlCiAgICBjb25zaWRlcnMgb25seSB0aG9zZSBwZW9wbGUgaW4gdGhlIGxvY2FsIHVzZXIgZmlsZSB0byBiZQogICAgdmFsaWQuIEJ5IHN1YnN0aXR1dGluZyB0aGUgbGRhcC1ncm91cCB3aXRoIGdyb3VwIGZpbGUgYXV0aG9yaXphdGlvbiwKICAgIEFwYWNoZSBpcyBhbGxvd2VkIHRvIGNvbnN1bHQgdGhlIGxvY2FsIHVzZXIgZmlsZSAod2hpY2ggaXMgbWFuYWdlZCBieSAKICAgIEZyb250UGFnZSkgLSBpbnN0ZWFkIG9mIExEQVAgLSB3aGVuIGhhbmRsaW5nIGF1dGhvcml6aW5nIHRoZSB1c2VyLjwvcD4KCiAgICA8cD5PbmNlIGRpcmVjdGl2ZXMgaGF2ZSBiZWVuIGFkZGVkIGFzIHNwZWNpZmllZCBhYm92ZSwKICAgIEZyb250UGFnZSB1c2VycyB3aWxsIGJlIGFibGUgdG8gcGVyZm9ybSBhbGwgbWFuYWdlbWVudAogICAgb3BlcmF0aW9ucyBmcm9tIHRoZSBGcm9udFBhZ2UgY2xpZW50LjwvcD4KCgo8aDM+PGEgbmFtZT0iZnBjYXZlYXRzIiBpZD0iZnBjYXZlYXRzIj5DYXZlYXRzPC9hPjwvaDM+CgogICAgPHVsPgogICAgICA8bGk+V2hlbiBjaG9vc2luZyB0aGUgTERBUCBVUkwsIHRoZSBhdHRyaWJ1dGUgdG8gdXNlIGZvcgogICAgICBhdXRoZW50aWNhdGlvbiBzaG91bGQgYmUgc29tZXRoaW5nIHRoYXQgd2lsbCBhbHNvIGJlIHZhbGlkCiAgICAgIGZvciBwdXR0aW5nIGludG8gYSA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2F1dGhuX2ZpbGUuaHRtbCI+bW9kX2F1dGhuX2ZpbGU8L2E+PC9jb2RlPiB1c2VyIGZpbGUuCiAgICAgIFRoZSB1c2VyIElEIGlzIGlkZWFsIGZvciB0aGlzLjwvbGk+CgogICAgICA8bGk+V2hlbiBhZGRpbmcgdXNlcnMgdmlhIEZyb250UGFnZSwgRnJvbnRQYWdlIGFkbWluaXN0cmF0b3JzCiAgICAgIHNob3VsZCBjaG9vc2UgdXNlcm5hbWVzIHRoYXQgYWxyZWFkeSBleGlzdCBpbiB0aGUgTERBUAogICAgICBkaXJlY3RvcnkgKGZvciBvYnZpb3VzIHJlYXNvbnMpLiBBbHNvLCB0aGUgcGFzc3dvcmQgdGhhdCB0aGUKICAgICAgYWRtaW5pc3RyYXRvciBlbnRlcnMgaW50byB0aGUgZm9ybSBpcyBpZ25vcmVkLCBzaW5jZSBBcGFjaGUKICAgICAgd2lsbCBhY3R1YWxseSBiZSBhdXRoZW50aWNhdGluZyBhZ2FpbnN0IHRoZSBwYXNzd29yZCBpbiB0aGUKICAgICAgTERBUCBkYXRhYmFzZSwgYW5kIG5vdCBhZ2FpbnN0IHRoZSBwYXNzd29yZCBpbiB0aGUgbG9jYWwgdXNlcgogICAgICBmaWxlLiBUaGlzIGNvdWxkIGNhdXNlIGNvbmZ1c2lvbiBmb3Igd2ViIGFkbWluaXN0cmF0b3JzLjwvbGk+CgogICAgICAKICAgICAgPGxpPkFwYWNoZSBtdXN0IGJlIGNvbXBpbGVkIHdpdGggPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9hdXRoX2Jhc2ljLmh0bWwiPm1vZF9hdXRoX2Jhc2ljPC9hPjwvY29kZT4sCiAgICAgIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfYXV0aG5fZmlsZS5odG1sIj5tb2RfYXV0aG5fZmlsZTwvYT48L2NvZGU+IGFuZAogICAgICA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2F1dGh6X2dyb3VwZmlsZS5odG1sIj5tb2RfYXV0aHpfZ3JvdXBmaWxlPC9hPjwvY29kZT4gaW4gb3JkZXIgdG8KICAgICAgdXNlIEZyb250UGFnZSBzdXBwb3J0LiBUaGlzIGlzIGJlY2F1c2UgQXBhY2hlIHdpbGwgc3RpbGwgdXNlCiAgICAgIHRoZSA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2F1dGh6X2dyb3VwZmlsZS5odG1sIj5tb2RfYXV0aHpfZ3JvdXBmaWxlPC9hPjwvY29kZT4gZ3JvdXAgZmlsZSBmb3IgZGV0ZXJtaW5lIAogICAgICB0aGUgZXh0ZW50IG9mIGEgdXNlcidzIGFjY2VzcyB0byB0aGUgRnJvbnRQYWdlIHdlYi48L2xpPgoKICAgICAgPGxpPlRoZSBkaXJlY3RpdmVzIG11c3QgYmUgcHV0IGluIHRoZSA8Y29kZT4uaHRhY2Nlc3M8L2NvZGU+CiAgICAgIGZpbGVzLiBBdHRlbXB0aW5nIHRvIHB1dCB0aGVtIGluc2lkZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvY29yZS5odG1sI2xvY2F0aW9uIj4mbHQ7TG9jYXRpb24mZ3Q7PC9hPjwvY29kZT4gb3IgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL2NvcmUuaHRtbCNkaXJlY3RvcnkiPiZsdDtEaXJlY3RvcnkmZ3Q7PC9hPjwvY29kZT4gZGlyZWN0aXZlcyB3b24ndCB3b3JrLiBUaGlzCiAgICAgIGlzIGJlY2F1c2UgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9hdXRobnpfbGRhcC5odG1sIj5tb2RfYXV0aG56X2xkYXA8L2E+PC9jb2RlPiBoYXMgdG8gYmUgYWJsZSB0byBncmFiCiAgICAgIHRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvbW9kX2F1dGhuX2ZpbGUuaHRtbCNhdXRoZ3JvdXBmaWxlIj5BdXRoR3JvdXBGaWxlPC9hPjwvY29kZT4KICAgICAgZGlyZWN0aXZlIHRoYXQgaXMgZm91bmQgaW4gRnJvbnRQYWdlIDxjb2RlPi5odGFjY2VzczwvY29kZT4KICAgICAgZmlsZXMgc28gdGhhdCBpdCBrbm93cyB3aGVyZSB0byBsb29rIGZvciB0aGUgdmFsaWQgdXNlciBsaXN0LiBJZgogICAgICB0aGUgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9hdXRobnpfbGRhcC5odG1sIj5tb2RfYXV0aG56X2xkYXA8L2E+PC9jb2RlPiBkaXJlY3RpdmVzIGFyZW4ndCBpbiB0aGUgc2FtZQogICAgICA8Y29kZT4uaHRhY2Nlc3M8L2NvZGU+IGZpbGUgYXMgdGhlIEZyb250UGFnZSBkaXJlY3RpdmVzLCB0aGVuCiAgICAgIHRoZSBoYWNrIHdvbid0IHdvcmssIGJlY2F1c2UgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9hdXRobnpfbGRhcC5odG1sIj5tb2RfYXV0aG56X2xkYXA8L2E+PC9jb2RlPiB3aWxsCiAgICAgIG5ldmVyIGdldCBhIGNoYW5jZSB0byBwcm9jZXNzIHRoZSA8Y29kZT4uaHRhY2Nlc3M8L2NvZGU+IGZpbGUsCiAgICAgIGFuZCB3b24ndCBiZSBhYmxlIHRvIGZpbmQgdGhlIEZyb250UGFnZS1tYW5hZ2VkIHVzZXIgZmlsZS48L2xpPgogICAgPC91bD4KCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJBdXRoTERBUEF1dGhvcml6ZVByZWZpeCIgaWQ9IkF1dGhMREFQQXV0aG9yaXplUHJlZml4Ij5BdXRoTERBUEF1dGhvcml6ZVByZWZpeDwvYT4gPGEgbmFtZT0iYXV0aGxkYXBhdXRob3JpemVwcmVmaXgiIGlkPSJhdXRobGRhcGF1dGhvcml6ZXByZWZpeCI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+U3BlY2lmaWVzIHRoZSBwcmVmaXggZm9yIGVudmlyb25tZW50IHZhcmlhYmxlcyBzZXQgZHVyaW5nCmF1dGhvcml6YXRpb248L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+QXV0aExEQVBBdXRob3JpemVQcmVmaXggPGVtPnByZWZpeDwvZW0+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPkF1dGhMREFQQXV0aG9yaXplUHJlZml4IEFVVEhPUklaRV88L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+ZGlyZWN0b3J5LCAuaHRhY2Nlc3M8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNPdmVycmlkZSI+T3ZlcnJpZGU6PC9hPjwvdGg+PHRkPkF1dGhDb25maWc8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZW5zaW9uPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9hdXRobnpfbGRhcDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbXBhdGliaWxpdHkiPkNvbXBhdGliaWxpdHk6PC9hPjwvdGg+PHRkPkF2YWlsYWJsZSBpbiB2ZXJzaW9uIDIuMy42IGFuZCBsYXRlcjwvdGQ+PC90cj4KPC90YWJsZT4KICAgIDxwPlRoaXMgZGlyZWN0aXZlIGFsbG93cyB5b3UgdG8gb3ZlcnJpZGUgdGhlIHByZWZpeCB1c2VkIGZvciBlbnZpcm9ubWVudAogICAgdmFyaWFibGVzIHNldCBkdXJpbmcgTERBUCBhdXRob3JpemF0aW9uLiAgSWYgPGVtPkFVVEhFTlRJQ0FURV88L2VtPiBpcwogICAgc3BlY2lmaWVkLCBjb25zdW1lcnMgb2YgdGhlc2UgZW52aXJvbm1lbnQgdmFyaWFibGVzIHNlZSB0aGUgc2FtZSBpbmZvcm1hdGlvbgogICAgd2hldGhlciBMREFQIGhhcyBwZXJmb3JtZWQgYXV0aGVudGljYXRpb24sIGF1dGhvcml6YXRpb24sIG9yIGJvdGguPC9wPgoKICAgIDxkaXYgY2xhc3M9Im5vdGUiPjxoMz5Ob3RlPC9oMz4KICAgIE5vIGF1dGhvcml6YXRpb24gdmFyaWFibGVzIGFyZSBzZXQgd2hlbiBhIHVzZXIgaXMgYXV0aG9yaXplZCBvbiB0aGUgYmFzaXMgb2YgCiAgICA8Y29kZT5SZXF1aXJlIHZhbGlkLXVzZXI8L2NvZGU+LgogICAgPC9kaXY+Cgo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iQXV0aExEQVBCaW5kQXV0aG9yaXRhdGl2ZSIgaWQ9IkF1dGhMREFQQmluZEF1dGhvcml0YXRpdmUiPkF1dGhMREFQQmluZEF1dGhvcml0YXRpdmU8L2E+IDxhIG5hbWU9ImF1dGhsZGFwYmluZGF1dGhvcml0YXRpdmUiIGlkPSJhdXRobGRhcGJpbmRhdXRob3JpdGF0aXZlIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5EZXRlcm1pbmVzIGlmIG90aGVyIGF1dGhlbnRpY2F0aW9uIHByb3ZpZGVycyBhcmUgdXNlZCB3aGVuIGEgdXNlciBjYW4gYmUgbWFwcGVkIHRvIGEgRE4gYnV0IHRoZSBzZXJ2ZXIgY2Fubm90IHN1Y2Nlc3NmdWxseSBiaW5kIHdpdGggdGhlIHVzZXIncyBjcmVkZW50aWFscy48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+QXV0aExEQVBCaW5kQXV0aG9yaXRhdGl2ZTxlbT5vZmZ8b248L2VtPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT5BdXRoTERBUEJpbmRBdXRob3JpdGF0aXZlIG9uPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPmRpcmVjdG9yeSwgLmh0YWNjZXNzPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjT3ZlcnJpZGUiPk92ZXJyaWRlOjwvYT48L3RoPjx0ZD5BdXRoQ29uZmlnPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVuc2lvbjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfYXV0aG56X2xkYXA8L3RkPjwvdHI+CjwvdGFibGU+CiAgICA8cD5CeSBkZWZhdWx0LCBzdWJzZXF1ZW50IGF1dGhlbnRpY2F0aW9uIHByb3ZpZGVycyBhcmUgb25seSBxdWVyaWVkIGlmIGEgCiAgICB1c2VyIGNhbm5vdCBiZSBtYXBwZWQgdG8gYSBETiwgYnV0IG5vdCBpZiB0aGUgdXNlciBjYW4gYmUgbWFwcGVkIHRvIGEgRE4gYW5kIHRoZWlyCiAgICBwYXNzd29yZCBjYW5ub3QgYmUgdmVyaWZpZWQgd2l0aCBhbiBMREFQIGJpbmQuICAKICAgIElmIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNhdXRobGRhcGJpbmRhdXRob3JpdGF0aXZlIj5BdXRoTERBUEJpbmRBdXRob3JpdGF0aXZlPC9hPjwvY29kZT4gCiAgICBpcyBzZXQgdG8gPGVtPm9mZjwvZW0+LCBvdGhlciBjb25maWd1cmVkIGF1dGhlbnRpY2F0aW9uIG1vZHVsZXMgd2lsbCBoYXZlIAogICAgYSBjaGFuY2UgdG8gdmFsaWRhdGUgdGhlIHVzZXIgaWYgdGhlIExEQVAgYmluZCAod2l0aCB0aGUgY3VycmVudCB1c2VyJ3MgY3JlZGVudGlhbHMpIAogICAgZmFpbHMgZm9yIGFueSByZWFzb24uPC9wPgogICAgPHA+IFRoaXMgYWxsb3dzIHVzZXJzIHByZXNlbnQgaW4gYm90aCBMREFQIGFuZCAKICAgIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfYXV0aG5fZmlsZS5odG1sI2F1dGh1c2VyZmlsZSI+QXV0aFVzZXJGaWxlPC9hPjwvY29kZT4gdG8gYXV0aGVudGljYXRlCiAgICB3aGVuIHRoZSBMREFQIHNlcnZlciBpcyBhdmFpbGFibGUgYnV0IHRoZSB1c2VyJ3MgYWNjb3VudCBpcyBsb2NrZWQgb3IgcGFzc3dvcmQKICAgIGlzIG90aGVyd2lzZSB1bnVzYWJsZS48L3A+Cgo8aDM+U2VlIGFsc288L2gzPgo8dWw+CjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvbW9kX2F1dGhuX2ZpbGUuaHRtbCNhdXRodXNlcmZpbGUiPkF1dGhVc2VyRmlsZTwvYT48L2NvZGU+PC9saT4KPGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfYXV0aF9iYXNpYy5odG1sI2F1dGhiYXNpY3Byb3ZpZGVyIj5BdXRoQmFzaWNQcm92aWRlcjwvYT48L2NvZGU+PC9saT4KPC91bD4KPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkF1dGhMREFQQmluZEROIiBpZD0iQXV0aExEQVBCaW5kRE4iPkF1dGhMREFQQmluZEROPC9hPiA8YSBuYW1lPSJhdXRobGRhcGJpbmRkbiIgaWQ9ImF1dGhsZGFwYmluZGRuIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5PcHRpb25hbCBETiB0byB1c2UgaW4gYmluZGluZyB0byB0aGUgTERBUCBzZXJ2ZXI8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+QXV0aExEQVBCaW5kRE4gPGVtPmRpc3Rpbmd1aXNoZWQtbmFtZTwvZW0+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPmRpcmVjdG9yeSwgLmh0YWNjZXNzPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjT3ZlcnJpZGUiPk92ZXJyaWRlOjwvYT48L3RoPjx0ZD5BdXRoQ29uZmlnPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVuc2lvbjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfYXV0aG56X2xkYXA8L3RkPjwvdHI+CjwvdGFibGU+CiAgICA8cD5BbiBvcHRpb25hbCBETiB1c2VkIHRvIGJpbmQgdG8gdGhlIHNlcnZlciB3aGVuIHNlYXJjaGluZyBmb3IKICAgIGVudHJpZXMuIElmIG5vdCBwcm92aWRlZCwgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9hdXRobnpfbGRhcC5odG1sIj5tb2RfYXV0aG56X2xkYXA8L2E+PC9jb2RlPiB3aWxsIHVzZQogICAgYW4gYW5vbnltb3VzIGJpbmQuPC9wPgoKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkF1dGhMREFQQmluZFBhc3N3b3JkIiBpZD0iQXV0aExEQVBCaW5kUGFzc3dvcmQiPkF1dGhMREFQQmluZFBhc3N3b3JkPC9hPiA8YSBuYW1lPSJhdXRobGRhcGJpbmRwYXNzd29yZCIgaWQ9ImF1dGhsZGFwYmluZHBhc3N3b3JkIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5QYXNzd29yZCB1c2VkIGluIGNvbmp1Y3Rpb24gd2l0aCB0aGUgYmluZCBETjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5BdXRoTERBUEJpbmRQYXNzd29yZCA8ZW0+cGFzc3dvcmQ8L2VtPjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5kaXJlY3RvcnksIC5odGFjY2VzczwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI092ZXJyaWRlIj5PdmVycmlkZTo8L2E+PC90aD48dGQ+QXV0aENvbmZpZzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlbnNpb248L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2F1dGhuel9sZGFwPC90ZD48L3RyPgo8L3RhYmxlPgogICAgPHA+QSBiaW5kIHBhc3N3b3JkIHRvIHVzZSBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBiaW5kIEROLiBOb3RlCiAgICB0aGF0IHRoZSBiaW5kIHBhc3N3b3JkIGlzIHByb2JhYmx5IHNlbnNpdGl2ZSBkYXRhLCBhbmQgc2hvdWxkIGJlCiAgICBwcm9wZXJseSBwcm90ZWN0ZWQuIFlvdSBzaG91bGQgb25seSB1c2UgdGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNhdXRobGRhcGJpbmRkbiI+QXV0aExEQVBCaW5kRE48L2E+PC9jb2RlPiBhbmQgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2F1dGhsZGFwYmluZHBhc3N3b3JkIj5BdXRoTERBUEJpbmRQYXNzd29yZDwvYT48L2NvZGU+IGlmIHlvdQogICAgYWJzb2x1dGVseSBuZWVkIHRoZW0gdG8gc2VhcmNoIHRoZSBkaXJlY3RvcnkuPC9wPiAKCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJBdXRoTERBUENoYXJzZXRDb25maWciIGlkPSJBdXRoTERBUENoYXJzZXRDb25maWciPkF1dGhMREFQQ2hhcnNldENvbmZpZzwvYT4gPGEgbmFtZT0iYXV0aGxkYXBjaGFyc2V0Y29uZmlnIiBpZD0iYXV0aGxkYXBjaGFyc2V0Y29uZmlnIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5MYW5ndWFnZSB0byBjaGFyc2V0IGNvbnZlcnNpb24gY29uZmlndXJhdGlvbiBmaWxlPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXg6PC9hPjwvdGg+PHRkPjxjb2RlPkF1dGhMREFQQ2hhcnNldENvbmZpZyA8ZW0+ZmlsZS1wYXRoPC9lbT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+c2VydmVyIGNvbmZpZzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlbnNpb248L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2F1dGhuel9sZGFwPC90ZD48L3RyPgo8L3RhYmxlPgogICAgPHA+VGhlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPkF1dGhMREFQQ2hhcnNldENvbmZpZzwvY29kZT4gZGlyZWN0aXZlIHNldHMgdGhlIGxvY2F0aW9uCiAgICBvZiB0aGUgbGFuZ3VhZ2UgdG8gY2hhcnNldCBjb252ZXJzaW9uIGNvbmZpZ3VyYXRpb24gZmlsZS4gPHZhcj5GaWxlLXBhdGg8L3Zhcj4gaXMgcmVsYXRpdmUKICAgIHRvIHRoZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvY29yZS5odG1sI3NlcnZlcnJvb3QiPlNlcnZlclJvb3Q8L2E+PC9jb2RlPi4gVGhpcyBmaWxlIHNwZWNpZmllcwogICAgdGhlIGxpc3Qgb2YgbGFuZ3VhZ2UgZXh0ZW5zaW9ucyB0byBjaGFyYWN0ZXIgc2V0cy4KICAgIE1vc3QgYWRtaW5pc3RyYXRvcnMgdXNlIHRoZSBwcm92aWRlZCA8Y29kZT5jaGFyc2V0LmNvbnY8L2NvZGU+CiAgICBmaWxlLCB3aGljaCBhc3NvY2lhdGVzIGNvbW1vbiBsYW5ndWFnZSBleHRlbnNpb25zIHRvIGNoYXJhY3RlciBzZXRzLjwvcD4KCiAgICA8cD5UaGUgZmlsZSBjb250YWlucyBsaW5lcyBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDo8L3A+CgogICAgPGRpdiBjbGFzcz0iZXhhbXBsZSI+PHA+PGNvZGU+CiAgICAgIDx2YXI+TGFuZ3VhZ2UtRXh0ZW5zaW9uPC92YXI+IDx2YXI+Y2hhcnNldDwvdmFyPiBbPHZhcj5MYW5ndWFnZS1TdHJpbmc8L3Zhcj5dIC4uLgogICAgPC9jb2RlPjwvcD48L2Rpdj4KCiAgICA8cD5UaGUgY2FzZSBvZiB0aGUgZXh0ZW5zaW9uIGRvZXMgbm90IG1hdHRlci4gQmxhbmsgbGluZXMsIGFuZCBsaW5lcwogICAgYmVnaW5uaW5nIHdpdGggYSBoYXNoIGNoYXJhY3RlciAoPGNvZGU+IzwvY29kZT4pIGFyZSBpZ25vcmVkLjwvcD4KCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJBdXRoTERBUENvbXBhcmVBc1VzZXIiIGlkPSJBdXRoTERBUENvbXBhcmVBc1VzZXIiPkF1dGhMREFQQ29tcGFyZUFzVXNlcjwvYT4gPGEgbmFtZT0iYXV0aGxkYXBjb21wYXJlYXN1c2VyIiBpZD0iYXV0aGxkYXBjb21wYXJlYXN1c2VyIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5Vc2UgdGhlIGF1dGhlbnRpY2F0ZWQgdXNlcidzIGNyZWRlbnRpYWxzIHRvIHBlcmZvcm0gYXV0aG9yaXphdGlvbiBjb21wYXJpc29uczwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5BdXRoTERBUENvbXBhcmVBc1VzZXIgb258b2ZmPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPkF1dGhMREFQQ29tcGFyZUFzVXNlciBvZmY8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+ZGlyZWN0b3J5LCAuaHRhY2Nlc3M8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNPdmVycmlkZSI+T3ZlcnJpZGU6PC9hPjwvdGg+PHRkPkF1dGhDb25maWc8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZW5zaW9uPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9hdXRobnpfbGRhcDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbXBhdGliaWxpdHkiPkNvbXBhdGliaWxpdHk6PC9hPjwvdGg+PHRkPkF2YWlsYWJsZSBpbiB2ZXJzaW9uIDIuMy42IGFuZCBsYXRlcjwvdGQ+PC90cj4KPC90YWJsZT4KICAgIDxwPldoZW4gc2V0LCBhbmQgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9hdXRobnpfbGRhcC5odG1sIj5tb2RfYXV0aG56X2xkYXA8L2E+PC9jb2RlPiBoYXMgYXV0aGVudGljYXRlZCB0aGUKICAgIHVzZXIsIExEQVAgY29tcGFyaXNvbnMgZm9yIGF1dGhvcml6YXRpb24gdXNlIHRoZSBxdWVyaWVkIGRpc3Rpbmd1aXNoZWQgbmFtZSAoRE4pCiAgICBhbmQgSFRUUCBiYXNpYyBhdXRoZW50aWNhdGlvbiBwYXNzd29yZCBvZiB0aGUgYXV0aGVudGljYXRlZCB1c2VyIGluc3RlYWQgb2YgCiAgICB0aGUgc2VydmVycyBjb25maWd1cmVkIGNyZWRlbnRpYWxzLjwvcD4KCiAgICA8cD4gVGhlIDxlbT5sZGFwLWF0dHJpYnV0ZTwvZW0+LCA8ZW0+bGRhcC11c2VyPC9lbT4sIGFuZCA8ZW0+bGRhcC1ncm91cDwvZW0+IChzaW5nbGUtbGV2ZWwgb25seSkgCiAgICBhdXRob3JpemF0aW9uIGNoZWNrcyB1c2UgY29tcGFyaXNvbnMuPC9wPgoKICAgIDxwPlRoaXMgZGlyZWN0aXZlIG9ubHkgaGFzIGVmZmVjdCBvbiB0aGUgY29tcGFyaXNvbnMgcGVyZm9ybWVkIGR1cmluZwogICAgbmVzdGVkIGdyb3VwIHByb2Nlc3Npbmcgd2hlbiA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjJiMxMDsgICAgYXV0aGxkYXBzZWFyY2hhc3VzZXIiPgogICAgQXV0aExEQVBTZWFyY2hBc1VzZXI8L2E+PC9jb2RlPiBpcyBhbHNvIGVuYWJsZWQuPC9wPgogICAgCiAgICA8cD4gVGhpcyBkaXJlY3RpdmUgc2hvdWxkIG9ubHkgYmUgdXNlZCB3aGVuIHlvdXIgTERBUCBzZXJ2ZXIgZG9lc24ndAogICAgICAgIGFjY2VwdCBhbm9ueW1vdXMgY29tcGFyaXNvbnMgYW5kIHlvdSBjYW5ub3QgdXNlIGEgZGVkaWNhdGVkCiAgICAgICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2F1dGhsZGFwYmluZGRuIj5BdXRoTERBUEJpbmRETjwvYT48L2NvZGU+LgogICAgPC9wPgoKPGgzPlNlZSBhbHNvPC9oMz4KPHVsPgo8bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2F1dGhsZGFwaW5pdGlhbGJpbmRhc3VzZXIiPkF1dGhMREFQSW5pdGlhbEJpbmRBc1VzZXI8L2E+PC9jb2RlPjwvbGk+CjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjYXV0aGxkYXBzZWFyY2hhc3VzZXIiPkF1dGhMREFQU2VhcmNoQXNVc2VyPC9hPjwvY29kZT48L2xpPgo8L3VsPgo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iQXV0aExEQVBDb21wYXJlRE5PblNlcnZlciIgaWQ9IkF1dGhMREFQQ29tcGFyZUROT25TZXJ2ZXIiPkF1dGhMREFQQ29tcGFyZUROT25TZXJ2ZXI8L2E+IDxhIG5hbWU9ImF1dGhsZGFwY29tcGFyZWRub25zZXJ2ZXIiIGlkPSJhdXRobGRhcGNvbXBhcmVkbm9uc2VydmVyIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5Vc2UgdGhlIExEQVAgc2VydmVyIHRvIGNvbXBhcmUgdGhlIEROczwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5BdXRoTERBUENvbXBhcmVETk9uU2VydmVyIG9ufG9mZjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT5BdXRoTERBUENvbXBhcmVETk9uU2VydmVyIG9uPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPmRpcmVjdG9yeSwgLmh0YWNjZXNzPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjT3ZlcnJpZGUiPk92ZXJyaWRlOjwvYT48L3RoPjx0ZD5BdXRoQ29uZmlnPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVuc2lvbjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfYXV0aG56X2xkYXA8L3RkPjwvdHI+CjwvdGFibGU+CiAgICA8cD5XaGVuIHNldCwgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9hdXRobnpfbGRhcC5odG1sIj5tb2RfYXV0aG56X2xkYXA8L2E+PC9jb2RlPiB3aWxsIHVzZSB0aGUgTERBUAogICAgc2VydmVyIHRvIGNvbXBhcmUgdGhlIEROcy4gVGhpcyBpcyB0aGUgb25seSBmb29scHJvb2Ygd2F5IHRvCiAgICBjb21wYXJlIEROcy4gIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfYXV0aG56X2xkYXAuaHRtbCI+bW9kX2F1dGhuel9sZGFwPC9hPjwvY29kZT4gd2lsbCBzZWFyY2ggdGhlCiAgICBkaXJlY3RvcnkgZm9yIHRoZSBETiBzcGVjaWZpZWQgd2l0aCB0aGUgPGEgaHJlZj0iI3JlcWRuIj48Y29kZT5SZXF1aXJlIGRuPC9jb2RlPjwvYT4gZGlyZWN0aXZlLCB0aGVuLAogICAgcmV0cmlldmUgdGhlIEROIGFuZCBjb21wYXJlIGl0IHdpdGggdGhlIEROIHJldHJpZXZlZCBmcm9tIHRoZSB1c2VyCiAgICBlbnRyeS4gSWYgdGhpcyBkaXJlY3RpdmUgaXMgbm90IHNldCwKICAgIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfYXV0aG56X2xkYXAuaHRtbCI+bW9kX2F1dGhuel9sZGFwPC9hPjwvY29kZT4gc2ltcGx5IGRvZXMgYSBzdHJpbmcgY29tcGFyaXNvbi4gSXQKICAgIGlzIHBvc3NpYmxlIHRvIGdldCBmYWxzZSBuZWdhdGl2ZXMgd2l0aCB0aGlzIGFwcHJvYWNoLCBidXQgaXQgaXMKICAgIG11Y2ggZmFzdGVyLiBOb3RlIHRoZSA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2xkYXAuaHRtbCI+bW9kX2xkYXA8L2E+PC9jb2RlPiBjYWNoZSBjYW4gc3BlZWQgdXAKICAgIEROIGNvbXBhcmlzb24gaW4gbW9zdCBzaXR1YXRpb25zLjwvcD4KCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJBdXRoTERBUERlcmVmZXJlbmNlQWxpYXNlcyIgaWQ9IkF1dGhMREFQRGVyZWZlcmVuY2VBbGlhc2VzIj5BdXRoTERBUERlcmVmZXJlbmNlQWxpYXNlczwvYT4gPGEgbmFtZT0iYXV0aGxkYXBkZXJlZmVyZW5jZWFsaWFzZXMiIGlkPSJhdXRobGRhcGRlcmVmZXJlbmNlYWxpYXNlcyI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+V2hlbiB3aWxsIHRoZSBtb2R1bGUgZGUtcmVmZXJlbmNlIGFsaWFzZXM8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+QXV0aExEQVBEZXJlZmVyZW5jZUFsaWFzZXMgbmV2ZXJ8c2VhcmNoaW5nfGZpbmRpbmd8YWx3YXlzPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPkF1dGhMREFQRGVyZWZlcmVuY2VBbGlhc2VzIGFsd2F5czwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5kaXJlY3RvcnksIC5odGFjY2VzczwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI092ZXJyaWRlIj5PdmVycmlkZTo8L2E+PC90aD48dGQ+QXV0aENvbmZpZzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlbnNpb248L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2F1dGhuel9sZGFwPC90ZD48L3RyPgo8L3RhYmxlPgogICAgPHA+VGhpcyBkaXJlY3RpdmUgc3BlY2lmaWVzIHdoZW4gPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9hdXRobnpfbGRhcC5odG1sIj5tb2RfYXV0aG56X2xkYXA8L2E+PC9jb2RlPiB3aWxsCiAgICBkZS1yZWZlcmVuY2UgYWxpYXNlcyBkdXJpbmcgTERBUCBvcGVyYXRpb25zLiBUaGUgZGVmYXVsdCBpcwogICAgPGNvZGU+YWx3YXlzPC9jb2RlPi48L3A+Cgo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iQXV0aExEQVBHcm91cEF0dHJpYnV0ZSIgaWQ9IkF1dGhMREFQR3JvdXBBdHRyaWJ1dGUiPkF1dGhMREFQR3JvdXBBdHRyaWJ1dGU8L2E+IDxhIG5hbWU9ImF1dGhsZGFwZ3JvdXBhdHRyaWJ1dGUiIGlkPSJhdXRobGRhcGdyb3VwYXR0cmlidXRlIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5MREFQIGF0dHJpYnV0ZXMgdXNlZCB0byBpZGVudGlmeSB0aGUgdXNlciBtZW1iZXJzIG9mCmdyb3Vwcy48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+QXV0aExEQVBHcm91cEF0dHJpYnV0ZSA8ZW0+YXR0cmlidXRlPC9lbT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+QXV0aExEQVBHcm91cEF0dHJpYnV0ZSBtZW1iZXIgdW5pcXVlbWVtYmVyPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPmRpcmVjdG9yeSwgLmh0YWNjZXNzPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjT3ZlcnJpZGUiPk92ZXJyaWRlOjwvYT48L3RoPjx0ZD5BdXRoQ29uZmlnPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVuc2lvbjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfYXV0aG56X2xkYXA8L3RkPjwvdHI+CjwvdGFibGU+CiAgICA8cD5UaGlzIGRpcmVjdGl2ZSBzcGVjaWZpZXMgd2hpY2ggTERBUCBhdHRyaWJ1dGVzIGFyZSB1c2VkIHRvCiAgICBjaGVjayBmb3IgdXNlciBtZW1iZXJzIHdpdGhpbiBncm91cHMuIE11bHRpcGxlIGF0dHJpYnV0ZXMgY2FuIGJlIHVzZWQKICAgIGJ5IHNwZWNpZnlpbmcgdGhpcyBkaXJlY3RpdmUgbXVsdGlwbGUgdGltZXMuIElmIG5vdCBzcGVjaWZpZWQsCiAgICB0aGVuIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfYXV0aG56X2xkYXAuaHRtbCI+bW9kX2F1dGhuel9sZGFwPC9hPjwvY29kZT4gdXNlcyB0aGUgPGNvZGU+bWVtYmVyPC9jb2RlPiBhbmQKICAgIDxjb2RlPnVuaXF1ZW1lbWJlcjwvY29kZT4gYXR0cmlidXRlcy48L3A+Cgo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iQXV0aExEQVBHcm91cEF0dHJpYnV0ZUlzRE4iIGlkPSJBdXRoTERBUEdyb3VwQXR0cmlidXRlSXNETiI+QXV0aExEQVBHcm91cEF0dHJpYnV0ZUlzRE48L2E+IDxhIG5hbWU9ImF1dGhsZGFwZ3JvdXBhdHRyaWJ1dGVpc2RuIiBpZD0iYXV0aGxkYXBncm91cGF0dHJpYnV0ZWlzZG4iPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPlVzZSB0aGUgRE4gb2YgdGhlIGNsaWVudCB1c2VybmFtZSB3aGVuIGNoZWNraW5nIGZvcgpncm91cCBtZW1iZXJzaGlwPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXg6PC9hPjwvdGg+PHRkPjxjb2RlPkF1dGhMREFQR3JvdXBBdHRyaWJ1dGVJc0ROIG9ufG9mZjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT5BdXRoTERBUEdyb3VwQXR0cmlidXRlSXNETiBvbjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5kaXJlY3RvcnksIC5odGFjY2VzczwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI092ZXJyaWRlIj5PdmVycmlkZTo8L2E+PC90aD48dGQ+QXV0aENvbmZpZzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlbnNpb248L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2F1dGhuel9sZGFwPC90ZD48L3RyPgo8L3RhYmxlPgogICAgPHA+V2hlbiBzZXQgPGNvZGU+b248L2NvZGU+LCB0aGlzIGRpcmVjdGl2ZSBzYXlzIHRvIHVzZSB0aGUKICAgIGRpc3Rpbmd1aXNoZWQgbmFtZSBvZiB0aGUgY2xpZW50IHVzZXJuYW1lIHdoZW4gY2hlY2tpbmcgZm9yIGdyb3VwCiAgICBtZW1iZXJzaGlwLiAgT3RoZXJ3aXNlLCB0aGUgdXNlcm5hbWUgd2lsbCBiZSB1c2VkLiBGb3IgZXhhbXBsZSwKICAgIGFzc3VtZSB0aGF0IHRoZSBjbGllbnQgc2VudCB0aGUgdXNlcm5hbWUgPGNvZGU+YmplbnNvbjwvY29kZT4sCiAgICB3aGljaCBjb3JyZXNwb25kcyB0byB0aGUgTERBUCBETiA8Y29kZT5jbj1CYWJzIEplbnNvbiwKICAgIG89RXhhbXBsZTwvY29kZT4uIElmIHRoaXMgZGlyZWN0aXZlIGlzIHNldCwKICAgIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfYXV0aG56X2xkYXAuaHRtbCI+bW9kX2F1dGhuel9sZGFwPC9hPjwvY29kZT4gd2lsbCBjaGVjayBpZiB0aGUgZ3JvdXAgaGFzCiAgICA8Y29kZT5jbj1CYWJzIEplbnNvbiwgbz1FeGFtcGxlPC9jb2RlPiBhcyBhIG1lbWJlci4gSWYgdGhpcwogICAgZGlyZWN0aXZlIGlzIG5vdCBzZXQsIHRoZW4gPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9hdXRobnpfbGRhcC5odG1sIj5tb2RfYXV0aG56X2xkYXA8L2E+PC9jb2RlPiB3aWxsCiAgICBjaGVjayBpZiB0aGUgZ3JvdXAgaGFzIDxjb2RlPmJqZW5zb248L2NvZGU+IGFzIGEgbWVtYmVyLjwvcD4KCjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJBdXRoTERBUEluaXRpYWxCaW5kQXNVc2VyIiBpZD0iQXV0aExEQVBJbml0aWFsQmluZEFzVXNlciI+QXV0aExEQVBJbml0aWFsQmluZEFzVXNlcjwvYT4gPGEgbmFtZT0iYXV0aGxkYXBpbml0aWFsYmluZGFzdXNlciIgaWQ9ImF1dGhsZGFwaW5pdGlhbGJpbmRhc3VzZXIiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPkRldGVybWluZXMgaWYgdGhlIHNlcnZlciBkb2VzIHRoZSBpbml0aWFsIEROIGxvb2t1cCB1c2luZyB0aGUgYmFzaWMgYXV0aGVudGljYXRpb24gdXNlcnMnCm93biB1c2VybmFtZSwgaW5zdGVhZCBvZiBhbm9ueW1vdXNseSBvciB3aXRoIGhhcmQtY29kZWQgY3JlZGVudGlhbHMgZm9yIHRoZSBzZXJ2ZXI8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+QXV0aExEQVBJbml0aWFsQmluZEFzVXNlciA8ZW0+b2ZmfG9uPC9lbT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+QXV0aExEQVBJbml0aWFsQmluZEFzVXNlciBvZmY8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+ZGlyZWN0b3J5LCAuaHRhY2Nlc3M8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNPdmVycmlkZSI+T3ZlcnJpZGU6PC9hPjwvdGg+PHRkPkF1dGhDb25maWc8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZW5zaW9uPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9hdXRobnpfbGRhcDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbXBhdGliaWxpdHkiPkNvbXBhdGliaWxpdHk6PC9hPjwvdGg+PHRkPkF2YWlsYWJsZSBpbiB2ZXJzaW9uIDIuMy42IGFuZCBsYXRlcjwvdGQ+PC90cj4KPC90YWJsZT4KICAgIDxwPkJ5IGRlZmF1bHQsIHRoZSBzZXJ2ZXIgZWl0aGVyIGFub255bW91c2x5LCBvciB3aXRoIGEgZGVkaWNhdGVkIHVzZXIgYW5kCiAgICAgcGFzc3dvcmQsIGNvbnZlcnRzIHRoZSBiYXNpYyBhdXRoZW50aWNhdGlvbiB1c2VybmFtZSBpbnRvIGFuIExEQVAKICAgICBkaXN0aW5ndWlzaGVkIG5hbWUgKEROKS4gIFRoaXMgZGlyZWN0aXZlIGZvcmNlcyB0aGUgc2VydmVyIHRvIHVzZSB0aGUgdmVyYmF0aW0gdXNlcm5hbWUKICAgICBhbmQgcGFzc3dvcmQgcHJvdmlkZWQgYnkgdGhlIGluY29taW5nIHVzZXIgdG8gcGVyZm9ybSB0aGUgaW5pdGlhbCBETgogICAgIHNlYXJjaC48L3A+CiAKICAgICA8cD4gSWYgdGhlIHZlcmJhdGltIHVzZXJuYW1lIGNhbid0IGRpcmVjdGx5IGJpbmQsIGJ1dCBuZWVkcyBzb21lCiAgICAgY29zbWV0aWMgdHJhbnNmb3JtYXRpb24sIHNlZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjJiMxMDsgICAgIGF1dGhsZGFwaW5pdGlhbGJpbmRwYXR0ZXJuIj4KICAgICBBdXRoTERBUEluaXRpYWxCaW5kUGF0dGVybjwvYT48L2NvZGU+LjwvcD4KICAgCiAgICAgPHA+IFRoaXMgZGlyZWN0aXZlIHNob3VsZCBvbmx5IGJlIHVzZWQgd2hlbiB5b3VyIExEQVAgc2VydmVyIGRvZXNuJ3QgCiAgICAgICAgIGFjY2VwdCBhbm9ueW1vdXMgc2VhcmNoZXMgYW5kIHlvdSBjYW5ub3QgdXNlIGEgZGVkaWNhdGVkIAogICAgICAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjYXV0aGxkYXBiaW5kZG4iPkF1dGhMREFQQmluZEROPC9hPjwvY29kZT4uCiAgICAgPC9wPgoKICAgICA8ZGl2IGNsYXNzPSJub3RlIj48aDM+Tm90IGF2YWlsYWJsZSB3aXRoIGF1dGhvcml6YXRpb24tb25seTwvaDM+CiAgICAgICAgIFRoaXMgZGlyZWN0aXZlIGNhbiBvbmx5IGJlIHVzZWQgaWYgdGhpcyBtb2R1bGUgYXV0aGVudGljYXRlcyB0aGUgdXNlciwgYW5kCiAgICAgICAgIGhhcyBubyBlZmZlY3Qgd2hlbiB0aGlzIG1vZHVsZSBpcyB1c2VkIGV4Y2x1c2l2ZWx5IGZvciBhdXRob3JpemF0aW9uLgogICAgIDwvZGl2PgoKPGgzPlNlZSBhbHNvPC9oMz4KPHVsPgo8bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9hdXRobm56X2xkYXAuaHRtbCNhdXRobGRhcGluaXRpYWxiaW5kcGF0dGVybiI+QXV0aExEQVBJbml0aWFsQmluZFBhdHRlcm48L2E+PC9jb2RlPjwvbGk+CjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvbW9kX2F1dGhubnpfbGRhcC5odG1sI2F1dGhsZGFwYmluZGRuIj5BdXRoTERBUEJpbmRETjwvYT48L2NvZGU+PC9saT4KPGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNhdXRobGRhcGNvbXBhcmVhc3VzZXIiPkF1dGhMREFQQ29tcGFyZUFzVXNlcjwvYT48L2NvZGU+PC9saT4KPGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNhdXRobGRhcHNlYXJjaGFzdXNlciI+QXV0aExEQVBTZWFyY2hBc1VzZXI8L2E+PC9jb2RlPjwvbGk+CjwvdWw+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJBdXRoTERBUEluaXRpYWxCaW5kUGF0dGVybiIgaWQ9IkF1dGhMREFQSW5pdGlhbEJpbmRQYXR0ZXJuIj5BdXRoTERBUEluaXRpYWxCaW5kUGF0dGVybjwvYT4gPGEgbmFtZT0iYXV0aGxkYXBpbml0aWFsYmluZHBhdHRlcm4iIGlkPSJhdXRobGRhcGluaXRpYWxiaW5kcGF0dGVybiI+RGlyZWN0aXZlPC9hPjwvaDI+Cjx0YWJsZSBjbGFzcz0iZGlyZWN0aXZlIj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+U3BlY2lmaWVzIHRoZSB0cmFuc2Zvcm1hdGlvbiBvZiB0aGUgYmFzaWMgYXV0aGVudGljYXRpb24gdXNlcm5hbWUgdG8gYmUgdXNlZCB3aGVuIGJpbmRpbmcgdG8gdGhlIExEQVAgc2VydmVyCnRvIHBlcmZvcm0gYSBETiBsb29rdXA8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+QXV0aExEQVBJbml0aWFsQmluZFBhdHRlcm48ZW0+PHZhcj5yZWdleDwvdmFyPiA8dmFyPnN1YnN0aXR1dGlvbjwvdmFyPjwvZW0+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPkF1dGhMREFQSW5pdGlhbEJpbmRQYXR0ZXJuICguKikgJDEgKHJlbW90ZSB1c2VybmFtZSB1c2VkIHZlcmJhdGltKTwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5kaXJlY3RvcnksIC5odGFjY2VzczwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI092ZXJyaWRlIj5PdmVycmlkZTo8L2E+PC90aD48dGQ+QXV0aENvbmZpZzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlbnNpb248L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2F1dGhuel9sZGFwPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29tcGF0aWJpbGl0eSI+Q29tcGF0aWJpbGl0eTo8L2E+PC90aD48dGQ+QXZhaWxhYmxlIGluIHZlcnNpb24gMi4zLjYgYW5kIGxhdGVyPC90ZD48L3RyPgo8L3RhYmxlPgogICAgPHA+SWYgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2F1dGhsZGFwaW5pdGlhbGJpbmRhc3VzZXIiPkF1dGhMREFQSW5pdGlhbEJpbmRBc1VzZXI8L2E+PC9jb2RlPiBpcyBzZXQgdG8KICAgICAgIDxlbT5PTjwvZW0+LCB0aGUgYmFzaWMgYXV0aGVudGljYXRpb24gdXNlcm5hbWUgd2lsbCBiZSB0cmFuc2Zvcm1lZCBhY2NvcmRpbmcgdG8gdGhlCiAgICAgICByZWd1bGFyIGV4cHJlc3Npb24gYW5kIHN1YnN0aXR1aW9uIGFyZ3VtZW50cy48L3A+CgogICAgPHA+IFRoZSByZWd1bGFyIGV4cHJlc3Npb24gYXJndW1lbnQgaXMgY29tcGFyZWQgYWdhaW5zdCB0aGUgY3VycmVudCBiYXNpYyBhdXRoZW50aWNhdGlvbiB1c2VybmFtZS4KICAgICAgICBUaGUgc3Vic3RpdHV0aW9uIGFyZ3VtZW50IG1heSBjb250YWluIGJhY2tyZWZlcmVuY2VzLCBidXQgaGFzIG5vIG90aGVyIHZhcmlhYmxlIGludGVycG9sYXRpb24uPC9wPgogICAgIAogICAgPHA+IFRoaXMgZGlyZWN0aXZlIHNob3VsZCBvbmx5IGJlIHVzZWQgd2hlbiB5b3VyIExEQVAgc2VydmVyIGRvZXNuJ3QgCiAgICAgICAgYWNjZXB0IGFub255bW91cyBzZWFyY2hlcyBhbmQgeW91IGNhbm5vdCB1c2UgYSBkZWRpY2F0ZWQgCiAgICAgICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2F1dGhsZGFwYmluZGRuIj5BdXRoTERBUEJpbmRETjwvYT48L2NvZGU+LgogICAgPC9wPgoKICAgIDxkaXYgY2xhc3M9ImV4YW1wbGUiPjxwPjxjb2RlPiBBdXRoTERBUEluaXRpYWxCaW5kUGF0dGVybiAoLispICQxQGV4YW1wbGUuY29tIDwvY29kZT48L3A+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJleGFtcGxlIj48cD48Y29kZT4gQXV0aExEQVBJbml0aWFsQmluZFBhdHRlcm4gKC4rKSBjbj0kMSxkYz1leGFtcGxlLGRjPWNvbTwvY29kZT48L3A+PC9kaXY+CgogICAgPGRpdiBjbGFzcz0ibm90ZSI+PGgzPk5vdCBhdmFpbGFibGUgd2l0aCBhdXRob3JpemF0aW9uLW9ubHk8L2gzPgogICAgICAgIFRoaXMgZGlyZWN0aXZlIGNhbiBvbmx5IGJlIHVzZWQgaWYgdGhpcyBtb2R1bGUgYXV0aGVudGljYXRlcyB0aGUgdXNlciwgYW5kCiAgICAgICAgaGFzIG5vIGVmZmVjdCB3aGVuIHRoaXMgbW9kdWxlIGlzIHVzZWQgZXhjbHVzaXZlbHkgZm9yIGF1dGhvcml6YXRpb24uCiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9Im5vdGUiPjxoMz5kZWJ1Z2dpbmc8L2gzPgogICAgICAgIFRoZSBzdWJzdGl0dXRlZCBETiBpcyByZWNvcmRlZCBpbiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgCiAgICAgICAgPGVtPkxEQVBfQklOREFTVVNFUjwvZW0+LiAgSWYgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBkb2VzIG5vdCBtYXRjaCB0aGUgaW5wdXQsIAogICAgICAgIHRoZSB2ZXJiYXRpbSB1c2VybmFtZSBpcyB1c2VkLgogICAgPC9kaXY+Cgo8aDM+U2VlIGFsc288L2gzPgo8dWw+CjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjYXV0aGxkYXBpbml0aWFsYmluZGFzdXNlciI+QXV0aExEQVBJbml0aWFsQmluZEFzVXNlcjwvYT48L2NvZGU+PC9saT4KPGxpPjxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNhdXRobGRhcGJpbmRkbiI+QXV0aExEQVBCaW5kRE48L2E+PC9jb2RlPjwvbGk+CjwvdWw+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJBdXRoTERBUE1heFN1Ykdyb3VwRGVwdGgiIGlkPSJBdXRoTERBUE1heFN1Ykdyb3VwRGVwdGgiPkF1dGhMREFQTWF4U3ViR3JvdXBEZXB0aDwvYT4gPGEgbmFtZT0iYXV0aGxkYXBtYXhzdWJncm91cGRlcHRoIiBpZD0iYXV0aGxkYXBtYXhzdWJncm91cGRlcHRoIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5TcGVjaWZpZXMgdGhlIG1heGltdW0gc3ViLWdyb3VwIG5lc3RpbmcgZGVwdGggdGhhdCB3aWxsIGJlCmV2YWx1YXRlZCBiZWZvcmUgdGhlIHVzZXIgc2VhcmNoIGlzIGRpc2NvbnRpbnVlZC48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTeW50YXgiPlN5bnRheDo8L2E+PC90aD48dGQ+PGNvZGU+QXV0aExEQVBNYXhTdWJHcm91cERlcHRoIDx2YXI+TnVtYmVyPC92YXI+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPkF1dGhMREFQTWF4U3ViR3JvdXBEZXB0aCAxMDwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5kaXJlY3RvcnksIC5odGFjY2VzczwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI092ZXJyaWRlIj5PdmVycmlkZTo8L2E+PC90aD48dGQ+QXV0aENvbmZpZzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlbnNpb248L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2F1dGhuel9sZGFwPC90ZD48L3RyPgo8L3RhYmxlPgogICA8cD5XaGVuIHRoaXMgZGlyZWN0aXZlIGlzIHNldCB0byBhIG5vbi16ZXJvIHZhbHVlIDxjb2RlPlg8L2NvZGU+CiAgIGNvbWJpbmVkIHdpdGggdXNlIG9mIHRoZSA8Y29kZT5SZXF1aXJlIGxkYXAtZ3JvdXAgc29tZUdyb3VwRE48L2NvZGU+CiAgIGRpcmVjdGl2ZSwgdGhlIHByb3ZpZGVkIHVzZXIgY3JlZGVudGlhbHMgd2lsbCBiZSBzZWFyY2hlZCBmb3IKICAgYXMgYSBtZW1iZXIgb2YgdGhlIDxjb2RlPnNvbWVHcm91cEROPC9jb2RlPiBkaXJlY3Rvcnkgb2JqZWN0IG9yIG9mCiAgIGFueSBncm91cCBtZW1iZXIgb2YgdGhlIGN1cnJlbnQgZ3JvdXAgdXAgdG8gdGhlIG1heGltdW0gbmVzdGluZwogICBsZXZlbCA8Y29kZT5YPC9jb2RlPiBzcGVjaWZpZWQgYnkgdGhpcyBkaXJlY3RpdmUuPC9wPgogICA8cD5TZWUgdGhlIDxhIGhyZWY9IiNyZXFncm91cCI+PGNvZGU+UmVxdWlyZSBsZGFwLWdyb3VwPC9jb2RlPjwvYT4KICAgc2VjdGlvbiBmb3IgYSBtb3JlIGRldGFpbGVkIGV4YW1wbGUuPC9wPgoKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkF1dGhMREFQUmVtb3RlVXNlckF0dHJpYnV0ZSIgaWQ9IkF1dGhMREFQUmVtb3RlVXNlckF0dHJpYnV0ZSI+QXV0aExEQVBSZW1vdGVVc2VyQXR0cmlidXRlPC9hPiA8YSBuYW1lPSJhdXRobGRhcHJlbW90ZXVzZXJhdHRyaWJ1dGUiIGlkPSJhdXRobGRhcHJlbW90ZXVzZXJhdHRyaWJ1dGUiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPlVzZSB0aGUgdmFsdWUgb2YgdGhlIGF0dHJpYnV0ZSByZXR1cm5lZCBkdXJpbmcgdGhlIHVzZXIKcXVlcnkgdG8gc2V0IHRoZSBSRU1PVEVfVVNFUiBlbnZpcm9ubWVudCB2YXJpYWJsZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5BdXRoTERBUFJlbW90ZVVzZXJBdHRyaWJ1dGUgdWlkPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPm5vbmU8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+ZGlyZWN0b3J5LCAuaHRhY2Nlc3M8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNPdmVycmlkZSI+T3ZlcnJpZGU6PC9hPjwvdGg+PHRkPkF1dGhDb25maWc8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZW5zaW9uPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9hdXRobnpfbGRhcDwvdGQ+PC90cj4KPC90YWJsZT4KICAgIDxwPklmIHRoaXMgZGlyZWN0aXZlIGlzIHNldCwgdGhlIHZhbHVlIG9mIHRoZSAKICAgIDxjb2RlPlJFTU9URV9VU0VSPC9jb2RlPiBlbnZpcm9ubWVudCB2YXJpYWJsZSB3aWxsIGJlIHNldCB0byB0aGUKICAgIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUgc3BlY2lmaWVkLiBNYWtlIHN1cmUgdGhhdCB0aGlzIGF0dHJpYnV0ZSBpcwogICAgaW5jbHVkZWQgaW4gdGhlIGxpc3Qgb2YgYXR0cmlidXRlcyBpbiB0aGUgQXV0aExEQVBVcmwgZGVmaW5pdGlvbiwKICAgIG90aGVyd2lzZSB0aGlzIGRpcmVjdGl2ZSB3aWxsIGhhdmUgbm8gZWZmZWN0LiBUaGlzIGRpcmVjdGl2ZSwgaWYKICAgIHByZXNlbnQsIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBBdXRoTERBUFJlbW90ZVVzZXJJc0ROLiBUaGlzCiAgICBkaXJlY3RpdmUgaXMgdXNlZnVsIHNob3VsZCB5b3Ugd2FudCBwZW9wbGUgdG8gbG9nIGludG8gYSB3ZWJzaXRlCiAgICB1c2luZyBhbiBlbWFpbCBhZGRyZXNzLCBidXQgYSBiYWNrZW5kIGFwcGxpY2F0aW9uIGV4cGVjdHMgdGhlCiAgICB1c2VybmFtZSBhcyBhIHVzZXJpZC48L3A+Cgo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0iQXV0aExEQVBSZW1vdGVVc2VySXNETiIgaWQ9IkF1dGhMREFQUmVtb3RlVXNlcklzRE4iPkF1dGhMREFQUmVtb3RlVXNlcklzRE48L2E+IDxhIG5hbWU9ImF1dGhsZGFwcmVtb3RldXNlcmlzZG4iIGlkPSJhdXRobGRhcHJlbW90ZXVzZXJpc2RuIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5Vc2UgdGhlIEROIG9mIHRoZSBjbGllbnQgdXNlcm5hbWUgdG8gc2V0IHRoZSBSRU1PVEVfVVNFUgplbnZpcm9ubWVudCB2YXJpYWJsZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5BdXRoTERBUFJlbW90ZVVzZXJJc0ROIG9ufG9mZjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZWZhdWx0Ij5EZWZhdWx0OjwvYT48L3RoPjx0ZD48Y29kZT5BdXRoTERBUFJlbW90ZVVzZXJJc0ROIG9mZjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5kaXJlY3RvcnksIC5odGFjY2VzczwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI092ZXJyaWRlIj5PdmVycmlkZTo8L2E+PC90aD48dGQ+QXV0aENvbmZpZzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlbnNpb248L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2F1dGhuel9sZGFwPC90ZD48L3RyPgo8L3RhYmxlPgogICAgPHA+SWYgdGhpcyBkaXJlY3RpdmUgaXMgc2V0IHRvIG9uLCB0aGUgdmFsdWUgb2YgdGhlCiAgICA8Y29kZT5SRU1PVEVfVVNFUjwvY29kZT4gZW52aXJvbm1lbnQgdmFyaWFibGUgd2lsbCBiZSBzZXQgdG8gdGhlIGZ1bGwKICAgIGRpc3Rpbmd1aXNoZWQgbmFtZSBvZiB0aGUgYXV0aGVudGljYXRlZCB1c2VyLCByYXRoZXIgdGhhbiBqdXN0CiAgICB0aGUgdXNlcm5hbWUgdGhhdCB3YXMgcGFzc2VkIGJ5IHRoZSBjbGllbnQuIEl0IGlzIHR1cm5lZCBvZmYgYnkKICAgIGRlZmF1bHQuPC9wPgoKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkF1dGhMREFQU2VhcmNoQXNVc2VyIiBpZD0iQXV0aExEQVBTZWFyY2hBc1VzZXIiPkF1dGhMREFQU2VhcmNoQXNVc2VyPC9hPiA8YSBuYW1lPSJhdXRobGRhcHNlYXJjaGFzdXNlciIgaWQ9ImF1dGhsZGFwc2VhcmNoYXN1c2VyIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5Vc2UgdGhlIGF1dGhlbnRpY2F0ZWQgdXNlcidzIGNyZWRlbnRpYWxzIHRvIHBlcmZvcm0gYXV0aG9yaXphdGlvbiBzZWFyY2hlczwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5BdXRoTERBUFNlYXJjaEFzVXNlciBvbnxvZmY8L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVmYXVsdCI+RGVmYXVsdDo8L2E+PC90aD48dGQ+PGNvZGU+QXV0aExEQVBTZWFyY2hBc1VzZXIgb2ZmPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPmRpcmVjdG9yeSwgLmh0YWNjZXNzPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjT3ZlcnJpZGUiPk92ZXJyaWRlOjwvYT48L3RoPjx0ZD5BdXRoQ29uZmlnPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVuc2lvbjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfYXV0aG56X2xkYXA8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb21wYXRpYmlsaXR5Ij5Db21wYXRpYmlsaXR5OjwvYT48L3RoPjx0ZD5BdmFpbGFibGUgaW4gdmVyc2lvbiAyLjMuNiBhbmQgbGF0ZXI8L3RkPjwvdHI+CjwvdGFibGU+CiAgICA8cD5XaGVuIHNldCwgYW5kIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfYXV0aG56X2xkYXAuaHRtbCI+bW9kX2F1dGhuel9sZGFwPC9hPjwvY29kZT4gaGFzIGF1dGhlbnRpY2F0ZWQgdGhlCiAgICB1c2VyLCBMREFQIHNlYXJjaGVzIGZvciBhdXRob3JpemF0aW9uIHVzZSB0aGUgcXVlcmllZCBkaXN0aW5ndWlzaGVkIG5hbWUgKEROKQogICAgYW5kIEhUVFAgYmFzaWMgYXV0aGVudGljYXRpb24gcGFzc3dvcmQgb2YgdGhlIGF1dGhlbnRpY2F0ZWQgdXNlciBpbnN0ZWFkIG9mIAogICAgdGhlIHNlcnZlcnMgY29uZmlndXJlZCBjcmVkZW50aWFscy48L3A+CgogICAgPHA+IFRoZSA8ZW0+bGRhcC1maWx0ZXI8L2VtPiBhbmQgPGVtPmxkYXAtZG48L2VtPiBhdXRob3JpemF0aW9uIAogICAgY2hlY2tzIHVzZSBzZWFyY2hlcy48L3A+CgogICAgPHA+VGhpcyBkaXJlY3RpdmUgb25seSBoYXMgZWZmZWN0IG9uIHRoZSBjb21wYXJpc29ucyBwZXJmb3JtZWQgZHVyaW5nCiAgICBuZXN0ZWQgZ3JvdXAgcHJvY2Vzc2luZyB3aGVuIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiMmIzEwOyAgICBhdXRobGRhcGNvbXBhcmVhc3VzZXIiPgogICAgQXV0aExEQVBDb21wYXJlQXNVc2VyPC9hPjwvY29kZT4gaXMgYWxzbyBlbmFibGVkLjwvcD4KCiAgICA8cD4gVGhpcyBkaXJlY3RpdmUgc2hvdWxkIG9ubHkgYmUgdXNlZCB3aGVuIHlvdXIgTERBUCBzZXJ2ZXIgZG9lc24ndAogICAgICAgIGFjY2VwdCBhbm9ueW1vdXMgc2VhcmNoZXMgYW5kIHlvdSBjYW5ub3QgdXNlIGEgZGVkaWNhdGVkCiAgICAgICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2F1dGhsZGFwYmluZGRuIj5BdXRoTERBUEJpbmRETjwvYT48L2NvZGU+LgogICAgPC9wPgoKPGgzPlNlZSBhbHNvPC9oMz4KPHVsPgo8bGk+PGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2F1dGhsZGFwaW5pdGlhbGJpbmRhc3VzZXIiPkF1dGhMREFQSW5pdGlhbEJpbmRBc1VzZXI8L2E+PC9jb2RlPjwvbGk+CjxsaT48Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjYXV0aGxkYXBjb21wYXJlYXN1c2VyIj5BdXRoTERBUENvbXBhcmVBc1VzZXI8L2E+PC9jb2RlPjwvbGk+CjwvdWw+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJBdXRoTERBUFN1Ykdyb3VwQXR0cmlidXRlIiBpZD0iQXV0aExEQVBTdWJHcm91cEF0dHJpYnV0ZSI+QXV0aExEQVBTdWJHcm91cEF0dHJpYnV0ZTwvYT4gPGEgbmFtZT0iYXV0aGxkYXBzdWJncm91cGF0dHJpYnV0ZSIgaWQ9ImF1dGhsZGFwc3ViZ3JvdXBhdHRyaWJ1dGUiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPlNwZWNpZmllcyB0aGUgYXR0cmlidXRlIGxhYmVscywgb25lIHZhbHVlIHBlcgpkaXJlY3RpdmUgbGluZSwgdXNlZCB0byBkaXN0aW5ndWlzaCB0aGUgbWVtYmVycyBvZiB0aGUgY3VycmVudCBncm91cCB0aGF0CmFyZSBncm91cHMuPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXg6PC9hPjwvdGg+PHRkPjxjb2RlPkF1dGhMREFQU3ViR3JvdXBBdHRyaWJ1dGUgPGVtPmF0dHJpYnV0ZTwvZW0+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPkF1dGhMREFQU3ViZ3JvdXBBdHRyaWJ1dGUgbWVtYmVyIHVuaXF1ZW1lbWJlcjwvY29kZT48L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNDb250ZXh0Ij5Db250ZXh0OjwvYT48L3RoPjx0ZD5kaXJlY3RvcnksIC5odGFjY2VzczwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI092ZXJyaWRlIj5PdmVycmlkZTo8L2E+PC90aD48dGQ+QXV0aENvbmZpZzwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N0YXR1cyI+U3RhdHVzOjwvYT48L3RoPjx0ZD5FeHRlbnNpb248L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX2F1dGhuel9sZGFwPC90ZD48L3RyPgo8L3RhYmxlPgogICAgPHA+QW4gTERBUCBncm91cCBvYmplY3QgbWF5IGNvbnRhaW4gbWVtYmVycyB0aGF0IGFyZSB1c2VycyBhbmQKICAgIG1lbWJlcnMgdGhhdCBhcmUgZ3JvdXBzIChjYWxsZWQgbmVzdGVkIG9yIHN1YiBncm91cHMpLiBUaGUKICAgIDxjb2RlPkF1dGhMREFQU3ViR3JvdXBBdHRyaWJ1dGU8L2NvZGU+IGRpcmVjdGl2ZSBpZGVudGlmaWVzIHRoZQogICAgbGFiZWxzIG9mIGdyb3VwIG1lbWJlcnMgYW5kIHRoZSA8Y29kZT5BdXRoTERBUEdyb3VwQXR0cmlidXRlPC9jb2RlPgogICAgZGlyZWN0aXZlIGlkZW50aWZpZXMgdGhlIGxhYmVscyBvZiB0aGUgdXNlciBtZW1iZXJzLiBNdWx0aXBsZQogICAgYXR0cmlidXRlcyBjYW4gYmUgdXNlZCBieSBzcGVjaWZ5aW5nIHRoaXMgZGlyZWN0aXZlIG11bHRpcGxlIHRpbWVzLgogICAgSWYgbm90IHNwZWNpZmllZCwgdGhlbiA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2F1dGhuel9sZGFwLmh0bWwiPm1vZF9hdXRobnpfbGRhcDwvYT48L2NvZGU+IHVzZXMgdGhlCiAgICA8Y29kZT5tZW1iZXI8L2NvZGU+IGFuZCA8Y29kZT51bmlxdWVNZW1iZXI8L2NvZGU+IGF0dHJpYnV0ZXMuPC9wPgoKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkF1dGhMREFQU3ViR3JvdXBDbGFzcyIgaWQ9IkF1dGhMREFQU3ViR3JvdXBDbGFzcyI+QXV0aExEQVBTdWJHcm91cENsYXNzPC9hPiA8YSBuYW1lPSJhdXRobGRhcHN1Ymdyb3VwY2xhc3MiIGlkPSJhdXRobGRhcHN1Ymdyb3VwY2xhc3MiPkRpcmVjdGl2ZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPlNwZWNpZmllcyB3aGljaCBMREFQIG9iamVjdENsYXNzIHZhbHVlcyBpZGVudGlmeSBkaXJlY3RvcnkKb2JqZWN0cyB0aGF0IGFyZSBncm91cHMgZHVyaW5nIHN1Yi1ncm91cCBwcm9jZXNzaW5nLjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5BdXRoTERBUFN1Ykdyb3VwQ2xhc3MgPGVtPkxkYXBPYmplY3RDbGFzczwvZW0+PC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0RlZmF1bHQiPkRlZmF1bHQ6PC9hPjwvdGg+PHRkPjxjb2RlPkF1dGhMREFQU3ViR3JvdXBDbGFzcyBncm91cE9mTmFtZXMgZ3JvdXBPZlVuaXF1ZU5hbWVzPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHQ6PC9hPjwvdGg+PHRkPmRpcmVjdG9yeSwgLmh0YWNjZXNzPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjT3ZlcnJpZGUiPk92ZXJyaWRlOjwvYT48L3RoPjx0ZD5BdXRoQ29uZmlnPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXM6PC9hPjwvdGg+PHRkPkV4dGVuc2lvbjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2RfYXV0aG56X2xkYXA8L3RkPjwvdHI+CjwvdGFibGU+CiAgICA8cD5BbiBMREFQIGdyb3VwIG9iamVjdCBtYXkgY29udGFpbiBtZW1iZXJzIHRoYXQgYXJlIHVzZXJzIGFuZAogICAgbWVtYmVycyB0aGF0IGFyZSBncm91cHMgKGNhbGxlZCBuZXN0ZWQgb3Igc3ViIGdyb3VwcykuIFRoZQogICAgPGNvZGU+QXV0aExEQVBTdWJHcm91cEF0dHJpYnV0ZTwvY29kZT4gZGlyZWN0aXZlIGlkZW50aWZpZXMgdGhlCiAgICBsYWJlbHMgb2YgbWVtYmVycyB0aGF0IG1heSBiZSBzdWItZ3JvdXBzIG9mIHRoZSBjdXJyZW50IGdyb3VwCiAgICAoYXMgb3Bwb3NlZCB0byB1c2VyIG1lbWJlcnMpLiBUaGUgPGNvZGU+QXV0aExEQVBTdWJHcm91cENsYXNzPC9jb2RlPgogICAgZGlyZWN0aXZlIHNwZWNpZmllcyB0aGUgTERBUCBvYmplY3RDbGFzcyB2YWx1ZXMgdXNlZCBpbiB2ZXJpZnlpbmcgdGhhdAogICAgdGhlc2UgcG90ZW50aWFsIHN1Yi1ncm91cHMgYXJlIGluIGZhY3QgZ3JvdXAgb2JqZWN0cy4gVmVyaWZpZWQgc3ViLWdyb3VwcwogICAgY2FuIHRoZW4gYmUgc2VhcmNoZWQgZm9yIG1vcmUgdXNlciBvciBzdWItZ3JvdXAgbWVtYmVycy4gTXVsdGlwbGUKICAgIGF0dHJpYnV0ZXMgY2FuIGJlIHVzZWQgYnkgc3BlY2lmeWluZyB0aGlzIGRpcmVjdGl2ZSBtdWx0aXBsZSB0aW1lcy4KICAgIElmIG5vdCBzcGVjaWZpZWQsIHRoZW4gPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9hdXRobnpfbGRhcC5odG1sIj5tb2RfYXV0aG56X2xkYXA8L2E+PC9jb2RlPiB1c2VzIHRoZQogICAgPGNvZGU+Z3JvdXBPZk5hbWVzPC9jb2RlPiBhbmQgPGNvZGU+Z3JvdXBPZlVuaXF1ZU5hbWVzPC9jb2RlPiB2YWx1ZXMuPC9wPgoKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9IkF1dGhMREFQVXJsIiBpZD0iQXV0aExEQVBVcmwiPkF1dGhMREFQVXJsPC9hPiA8YSBuYW1lPSJhdXRobGRhcHVybCIgaWQ9ImF1dGhsZGFwdXJsIj5EaXJlY3RpdmU8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5VUkwgc3BlY2lmeWluZyB0aGUgTERBUCBzZWFyY2ggcGFyYW1ldGVyczwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4OjwvYT48L3RoPjx0ZD48Y29kZT5BdXRoTERBUFVybCA8ZW0+dXJsIFtOT05FfFNTTHxUTFN8U1RBUlRUTFNdPC9lbT48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dDo8L2E+PC90aD48dGQ+ZGlyZWN0b3J5LCAuaHRhY2Nlc3M8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNPdmVycmlkZSI+T3ZlcnJpZGU6PC9hPjwvdGg+PHRkPkF1dGhDb25maWc8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1czo8L2E+PC90aD48dGQ+RXh0ZW5zaW9uPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjTW9kdWxlIj5Nb2R1bGU6PC9hPjwvdGg+PHRkPm1vZF9hdXRobnpfbGRhcDwvdGQ+PC90cj4KPC90YWJsZT4KICAgIDxwPkFuIFJGQyAyMjU1IFVSTCB3aGljaCBzcGVjaWZpZXMgdGhlIExEQVAgc2VhcmNoIHBhcmFtZXRlcnMKICAgIHRvIHVzZS4gVGhlIHN5bnRheCBvZiB0aGUgVVJMIGlzPC9wPgo8ZGl2IGNsYXNzPSJleGFtcGxlIj48cD48Y29kZT5sZGFwOi8vaG9zdDpwb3J0L2Jhc2Vkbj9hdHRyaWJ1dGU/c2NvcGU/ZmlsdGVyPC9jb2RlPjwvcD48L2Rpdj4KICAgIDxwPklmIHlvdSB3YW50IHRvIHNwZWNpZnkgbW9yZSB0aGFuIG9uZSBMREFQIFVSTCB0aGF0IEFwYWNoZSBzaG91bGQgdHJ5IGluIHR1cm4sIHRoZSBzeW50YXggaXM6PC9wPgo8ZGl2IGNsYXNzPSJleGFtcGxlIj48cD48Y29kZT5BdXRoTERBUFVybCAibGRhcDovL2xkYXAxLmV4YW1wbGUuY29tIGxkYXAyLmV4YW1wbGUuY29tL2RjPS4uLiI8L2NvZGU+PC9wPjwvZGl2Pgo8cD48ZW0+PHN0cm9uZz5DYXZlYXQ6IDwvc3Ryb25nPklmIHlvdSBzcGVjaWZ5IG11bHRpcGxlIHNlcnZlcnMsIHlvdSBuZWVkIHRvIGVuY2xvc2UgdGhlIGVudGlyZSBVUkwgc3RyaW5nIGluIHF1b3RlczsgCm90aGVyd2lzZSB5b3Ugd2lsbCBnZXQgYW4gZXJyb3I6ICJBdXRoTERBUFVSTCB0YWtlcyBvbmUgYXJndW1lbnQsIFVSTCB0byBkZWZpbmUgTERBUCBjb25uZWN0aW9uLi4iIDwvZW0+IApZb3UgY2FuIG9mIGNvdXJzZSB1c2Ugc2VhcmNoIHBhcmFtZXRlcnMgb24gZWFjaCBvZiB0aGVzZS48L3A+Cgo8ZGw+CjxkdD5sZGFwPC9kdD4KCiAgICAgICAgPGRkPkZvciByZWd1bGFyIGxkYXAsIHVzZSB0aGUKICAgICAgICBzdHJpbmcgPGNvZGU+bGRhcDwvY29kZT4uIEZvciBzZWN1cmUgTERBUCwgdXNlIDxjb2RlPmxkYXBzPC9jb2RlPgogICAgICAgIGluc3RlYWQuIFNlY3VyZSBMREFQIGlzIG9ubHkgYXZhaWxhYmxlIGlmIEFwYWNoZSB3YXMgbGlua2VkCiAgICAgICAgdG8gYW4gTERBUCBsaWJyYXJ5IHdpdGggU1NMIHN1cHBvcnQuPC9kZD4KCjxkdD5ob3N0OnBvcnQ8L2R0PgoKICAgICAgICA8ZGQ+CiAgICAgICAgICA8cD5UaGUgbmFtZS9wb3J0IG9mIHRoZSBsZGFwIHNlcnZlciAoZGVmYXVsdHMgdG8KICAgICAgICAgIDxjb2RlPmxvY2FsaG9zdDozODk8L2NvZGU+IGZvciA8Y29kZT5sZGFwPC9jb2RlPiwgYW5kCiAgICAgICAgICA8Y29kZT5sb2NhbGhvc3Q6NjM2PC9jb2RlPiBmb3IgPGNvZGU+bGRhcHM8L2NvZGU+KS4gVG8KICAgICAgICAgIHNwZWNpZnkgbXVsdGlwbGUsIHJlZHVuZGFudCBMREFQIHNlcnZlcnMsIGp1c3QgbGlzdCBhbGwKICAgICAgICAgIHNlcnZlcnMsIHNlcGFyYXRlZCBieSBzcGFjZXMuIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfYXV0aG56X2xkYXAuaHRtbCI+bW9kX2F1dGhuel9sZGFwPC9hPjwvY29kZT4KICAgICAgICAgIHdpbGwgdHJ5IGNvbm5lY3RpbmcgdG8gZWFjaCBzZXJ2ZXIgaW4gdHVybiwgdW50aWwgaXQgbWFrZXMgYQogICAgICAgICAgc3VjY2Vzc2Z1bCBjb25uZWN0aW9uLiBJZiBtdWx0aXBsZSBsZGFwIHNlcnZlcnMgYXJlIHNwZWNpZmllZCwgCiAgICAgICAgICB0aGVuIGVudGlyZSBMREFQIFVSTCBtdXN0IGJlIGVuY2Fwc3VsYXRlZCBpbiBkb3VibGUgcXVvdGVzLjwvcD4KCiAgICAgICAgICA8cD5PbmNlIGEgY29ubmVjdGlvbiBoYXMgYmVlbiBtYWRlIHRvIGEgc2VydmVyLCB0aGF0CiAgICAgICAgICBjb25uZWN0aW9uIHJlbWFpbnMgYWN0aXZlIGZvciB0aGUgbGlmZSBvZiB0aGUKICAgICAgICAgIDxjb2RlIGNsYXNzPSJwcm9ncmFtIj48YSBocmVmPSIuLi9wcm9ncmFtcy9odHRwZC5odG1sIj5odHRwZDwvYT48L2NvZGU+IHByb2Nlc3MsIG9yIHVudGlsIHRoZSBMREFQIHNlcnZlciBnb2VzCiAgICAgICAgICBkb3duLjwvcD4KCiAgICAgICAgICA8cD5JZiB0aGUgTERBUCBzZXJ2ZXIgZ29lcyBkb3duIGFuZCBicmVha3MgYW4gZXhpc3RpbmcKICAgICAgICAgIGNvbm5lY3Rpb24sIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfYXV0aG56X2xkYXAuaHRtbCI+bW9kX2F1dGhuel9sZGFwPC9hPjwvY29kZT4gd2lsbCBhdHRlbXB0IHRvCiAgICAgICAgICByZS1jb25uZWN0LCBzdGFydGluZyB3aXRoIHRoZSBwcmltYXJ5IHNlcnZlciwgYW5kIHRyeWluZwogICAgICAgICAgZWFjaCByZWR1bmRhbnQgc2VydmVyIGluIHR1cm4uIE5vdGUgdGhhdCB0aGlzIGlzIGRpZmZlcmVudAogICAgICAgICAgdGhhbiBhIHRydWUgcm91bmQtcm9iaW4gc2VhcmNoLjwvcD4KICAgICAgICA8L2RkPgoKPGR0PmJhc2VkbjwvZHQ+CgogICAgICAgIDxkZD5UaGUgRE4gb2YgdGhlIGJyYW5jaCBvZiB0aGUKICAgICAgICBkaXJlY3Rvcnkgd2hlcmUgYWxsIHNlYXJjaGVzIHNob3VsZCBzdGFydCBmcm9tLiBBdCB0aGUgdmVyeQogICAgICAgIGxlYXN0LCB0aGlzIG11c3QgYmUgdGhlIHRvcCBvZiB5b3VyIGRpcmVjdG9yeSB0cmVlLCBidXQKICAgICAgICBjb3VsZCBhbHNvIHNwZWNpZnkgYSBzdWJ0cmVlIGluIHRoZSBkaXJlY3RvcnkuPC9kZD4KCjxkdD5hdHRyaWJ1dGU8L2R0PgoKICAgICAgICA8ZGQ+VGhlIGF0dHJpYnV0ZSB0byBzZWFyY2ggZm9yLgogICAgICAgIEFsdGhvdWdoIFJGQyAyMjU1IGFsbG93cyBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mCiAgICAgICAgYXR0cmlidXRlcywgb25seSB0aGUgZmlyc3QgYXR0cmlidXRlIHdpbGwgYmUgdXNlZCwgbm8KICAgICAgICBtYXR0ZXIgaG93IG1hbnkgYXJlIHByb3ZpZGVkLiBJZiBubyBhdHRyaWJ1dGVzIGFyZQogICAgICAgIHByb3ZpZGVkLCB0aGUgZGVmYXVsdCBpcyB0byB1c2UgPGNvZGU+dWlkPC9jb2RlPi4gSXQncyBhIGdvb2QKICAgICAgICBpZGVhIHRvIGNob29zZSBhbiBhdHRyaWJ1dGUgdGhhdCB3aWxsIGJlIHVuaXF1ZSBhY3Jvc3MgYWxsCiAgICAgICAgZW50cmllcyBpbiB0aGUgc3VidHJlZSB5b3Ugd2lsbCBiZSB1c2luZy4gIEFsbCBhdHRyaWJ1dGVzCiAgICAgICAgbGlzdGVkIHdpbGwgYmUgcHV0IGludG8gdGhlIGVudmlyb25tZW50IHdpdGggYW4gQVVUSEVOVElDQVRFXyBwcmVmaXgKICAgICAgICBmb3IgdXNlIGJ5IG90aGVyIG1vZHVsZXMuPC9kZD4KCjxkdD5zY29wZTwvZHQ+CgogICAgICAgIDxkZD5UaGUgc2NvcGUgb2YgdGhlIHNlYXJjaC4gQ2FuIGJlIGVpdGhlciA8Y29kZT5vbmU8L2NvZGU+IG9yCiAgICAgICAgPGNvZGU+c3ViPC9jb2RlPi4gTm90ZSB0aGF0IGEgc2NvcGUgb2YgPGNvZGU+YmFzZTwvY29kZT4gaXMKICAgICAgICBhbHNvIHN1cHBvcnRlZCBieSBSRkMgMjI1NSwgYnV0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcwogICAgICAgIG1vZHVsZS4gSWYgdGhlIHNjb3BlIGlzIG5vdCBwcm92aWRlZCwgb3IgaWYgPGNvZGU+YmFzZTwvY29kZT4gc2NvcGUKICAgICAgICBpcyBzcGVjaWZpZWQsIHRoZSBkZWZhdWx0IGlzIHRvIHVzZSBhIHNjb3BlIG9mCiAgICAgICAgPGNvZGU+c3ViPC9jb2RlPi48L2RkPgoKPGR0PmZpbHRlcjwvZHQ+CgogICAgICAgIDxkZD5BIHZhbGlkIExEQVAgc2VhcmNoIGZpbHRlci4gSWYKICAgICAgICBub3QgcHJvdmlkZWQsIGRlZmF1bHRzIHRvIDxjb2RlPihvYmplY3RDbGFzcz0qKTwvY29kZT4sIHdoaWNoCiAgICAgICAgd2lsbCBzZWFyY2ggZm9yIGFsbCBvYmplY3RzIGluIHRoZSB0cmVlLiBGaWx0ZXJzIGFyZQogICAgICAgIGxpbWl0ZWQgdG8gYXBwcm94aW1hdGVseSA4MDAwIGNoYXJhY3RlcnMgKHRoZSBkZWZpbml0aW9uIG9mCiAgICAgICAgPGNvZGU+TUFYX1NUUklOR19MRU48L2NvZGU+IGluIHRoZSBBcGFjaGUgc291cmNlIGNvZGUpLiBUaGlzCiAgICAgICAgc2hvdWxkIGJlIG1vcmUgdGhhbiBzdWZmaWNpZW50IGZvciBhbnkgYXBwbGljYXRpb24uPC9kZD4KPC9kbD4KCiAgICA8cD5XaGVuIGRvaW5nIHNlYXJjaGVzLCB0aGUgYXR0cmlidXRlLCBmaWx0ZXIgYW5kIHVzZXJuYW1lIHBhc3NlZAogICAgYnkgdGhlIEhUVFAgY2xpZW50IGFyZSBjb21iaW5lZCB0byBjcmVhdGUgYSBzZWFyY2ggZmlsdGVyIHRoYXQKICAgIGxvb2tzIGxpa2UKICAgIDxjb2RlPigmYW1wOyg8ZW0+ZmlsdGVyPC9lbT4pKDxlbT5hdHRyaWJ1dGU8L2VtPj08ZW0+dXNlcm5hbWU8L2VtPikpPC9jb2RlPi48L3A+CgogICAgPHA+Rm9yIGV4YW1wbGUsIGNvbnNpZGVyIGFuIFVSTCBvZgogICAgPGNvZGU+bGRhcDovL2xkYXAuZXhhbXBsZS5jb20vbz1FeGFtcGxlP2NuP3N1Yj8ocG9zaXhpZD0qKTwvY29kZT4uIFdoZW4KICAgIGEgY2xpZW50IGF0dGVtcHRzIHRvIGNvbm5lY3QgdXNpbmcgYSB1c2VybmFtZSBvZiA8Y29kZT5CYWJzCiAgICBKZW5zb248L2NvZGU+LCB0aGUgcmVzdWx0aW5nIHNlYXJjaCBmaWx0ZXIgd2lsbCBiZQogICAgPGNvZGU+KCZhbXA7KHBvc2l4aWQ9KikoY249QmFicyBKZW5zb24pKTwvY29kZT4uPC9wPgoKICAgIDxwPkFuIG9wdGlvbmFsIHBhcmFtZXRlciBjYW4gYmUgYWRkZWQgdG8gYWxsb3cgdGhlIExEQVAgVXJsIHRvIG92ZXJyaWRlIAogICAgdGhlIGNvbm5lY3Rpb24gdHlwZS4gIFRoaXMgcGFyYW1ldGVyIGNhbiBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZzo8L3A+Cgo8ZGw+CiAgICA8ZHQ+Tk9ORTwvZHQ+CiAgICAgICAgPGRkPkVzdGFibGlzaCBhbiB1bnNlY3VyZSBjb25uZWN0aW9uIG9uIHRoZSBkZWZhdWx0IExEQVAgcG9ydC4gVGhpcwogICAgICAgIGlzIHRoZSBzYW1lIGFzIDxjb2RlPmxkYXA6Ly88L2NvZGU+IG9uIHBvcnQgMzg5LjwvZGQ+CiAgICA8ZHQ+U1NMPC9kdD4KICAgICAgICA8ZGQ+RXN0YWJsaXNoIGEgc2VjdXJlIGNvbm5lY3Rpb24gb24gdGhlIGRlZmF1bHQgc2VjdXJlIExEQVAgcG9ydC4KICAgICAgICBUaGlzIGlzIHRoZSBzYW1lIGFzIDxjb2RlPmxkYXBzOi8vPC9jb2RlPjwvZGQ+CiAgICA8ZHQ+VExTIHwgU1RBUlRUTFM8L2R0PgogICAgICAgIDxkZD5Fc3RhYmxpc2ggYW4gdXBncmFkZWQgc2VjdXJlIGNvbm5lY3Rpb24gb24gdGhlIGRlZmF1bHQgTERBUCBwb3J0LgogICAgICAgIFRoaXMgY29ubmVjdGlvbiB3aWxsIGJlIGluaXRpYXRlZCBvbiBwb3J0IDM4OSBieSBkZWZhdWx0IGFuZCB0aGVuIAogICAgICAgIHVwZ3JhZGVkIHRvIGEgc2VjdXJlIGNvbm5lY3Rpb24gb24gdGhlIHNhbWUgcG9ydC48L2RkPgo8L2RsPgoKICAgIDxwPlNlZSBhYm92ZSBmb3IgZXhhbXBsZXMgb2YgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2F1dGhsZGFwdXJsIj5BdXRoTERBUFVSTDwvYT48L2NvZGU+IFVSTHMuPC9wPgoKPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJib3R0b21sYW5nIj4KPHA+PHNwYW4+QXZhaWxhYmxlIExhbmd1YWdlczogPC9zcGFuPjxhIGhyZWY9Ii4uL2VuL21vZC9tb2RfYXV0aG56X2xkYXAuaHRtbCIgdGl0bGU9IkVuZ2xpc2giPiZuYnNwO2VuJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4uL2ZyL21vZC9tb2RfYXV0aG56X2xkYXAuaHRtbCIgaHJlZmxhbmc9ImZyIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkZyYW7nYWlzIj4mbmJzcDtmciZuYnNwOzwvYT48L3A+CjwvZGl2PjxkaXYgaWQ9ImZvb3RlciI+CjxwIGNsYXNzPSJhcGFjaGUiPkNvcHlyaWdodCAyMDExIFRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi48YnIgLz5MaWNlbnNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIj5BcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjA8L2E+LjwvcD4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4uL21vZC8iPk1vZHVsZXM8L2E+IHwgPGEgaHJlZj0iLi4vbW9kL2RpcmVjdGl2ZXMuaHRtbCI+RGlyZWN0aXZlczwvYT4gfCA8YSBocmVmPSIuLi9mYXEvIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi4vZ2xvc3NhcnkuaHRtbCI+R2xvc3Nhcnk8L2E+IHwgPGEgaHJlZj0iLi4vc2l0ZW1hcC5odG1sIj5TaXRlbWFwPC9hPjwvcD48L2Rpdj4KPC9ib2R5PjwvaHRtbD4=