PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBsYW5nPSJmciIgeG1sOmxhbmc9ImZyIj48aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgLz4KPCEtLQogICAgICAgIFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYCiAgICAgICAgICAgICAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIHhtbCBzb3VyY2U6IERPIE5PVCBFRElUCiAgICAgICAgWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFgKICAgICAgLS0+Cjx0aXRsZT5tb2Rfc2V0ZW52aWYgLSBTZXJ2ZXVyIEFwYWNoZSBIVFRQIFZlcnNpb24gMi40PC90aXRsZT4KPGxpbmsgaHJlZj0iLi4vc3R5bGUvY3NzL21hbnVhbC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9ImFsbCIgdHlwZT0idGV4dC9jc3MiIHRpdGxlPSJNYWluIHN0eWxlc2hlZXQiIC8+CjxsaW5rIGhyZWY9Ii4uL3N0eWxlL2Nzcy9tYW51YWwtbG9vc2UtMTAwcGMuY3NzIiByZWw9ImFsdGVybmF0ZSBzdHlsZXNoZWV0IiBtZWRpYT0iYWxsIiB0eXBlPSJ0ZXh0L2NzcyIgdGl0bGU9Ik5vIFNpZGViYXIgLSBEZWZhdWx0IGZvbnQgc2l6ZSIgLz4KPGxpbmsgaHJlZj0iLi4vc3R5bGUvY3NzL21hbnVhbC1wcmludC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgbWVkaWE9InByaW50IiB0eXBlPSJ0ZXh0L2NzcyIgLz48bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIuLi9zdHlsZS9jc3MvcHJldHRpZnkuY3NzIiAvPgo8c2NyaXB0IHNyYz0iLi4vc3R5bGUvc2NyaXB0cy9wcmV0dGlmeS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cjwvc2NyaXB0PgoKPGxpbmsgaHJlZj0iLi4vaW1hZ2VzL2Zhdmljb24uaWNvIiByZWw9InNob3J0Y3V0IGljb24iIC8+PC9oZWFkPgo8Ym9keT4KPGRpdiBpZD0icGFnZS1oZWFkZXIiPgo8cCBjbGFzcz0ibWVudSI+PGEgaHJlZj0iLi4vbW9kLyI+TW9kdWxlczwvYT4gfCA8YSBocmVmPSIuLi9tb2QvZGlyZWN0aXZlcy5odG1sIj5EaXJlY3RpdmVzPC9hPiB8IDxhIGhyZWY9Imh0dHA6Ly93aWtpLmFwYWNoZS5vcmcvaHR0cGQvRkFRIj5GQVE8L2E+IHwgPGEgaHJlZj0iLi4vZ2xvc3NhcnkuaHRtbCI+R2xvc3NhaXJlPC9hPiB8IDxhIGhyZWY9Ii4uL3NpdGVtYXAuaHRtbCI+UGxhbiBkdSBzaXRlPC9hPjwvcD4KPHAgY2xhc3M9ImFwYWNoZSI+U2VydmV1ciBBcGFjaGUgSFRUUCBWZXJzaW9uIDIuNDwvcD4KPGltZyBhbHQ9IiIgc3JjPSIuLi9pbWFnZXMvZmVhdGhlci5wbmciIC8+PC9kaXY+CjxkaXYgY2xhc3M9InVwIj48YSBocmVmPSIuLyI+PGltZyB0aXRsZT0iJmx0Oy0iIGFsdD0iJmx0Oy0iIHNyYz0iLi4vaW1hZ2VzL2xlZnQuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBpZD0icGF0aCI+CjxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy8iPkFwYWNoZTwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy8iPlNlcnZldXIgSFRUUDwvYT4gJmd0OyA8YSBocmVmPSJodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2NzLyI+RG9jdW1lbnRhdGlvbjwvYT4gJmd0OyA8YSBocmVmPSIuLi8iPlZlcnNpb24gMi40PC9hPiAmZ3Q7IDxhIGhyZWY9Ii4vIj5Nb2R1bGVzPC9hPjwvZGl2Pgo8ZGl2IGlkPSJwYWdlLWNvbnRlbnQiPgo8ZGl2IGlkPSJwcmVhbWJsZSI+PGgxPk1vZHVsZSBBcGFjaGUgbW9kX3NldGVudmlmPC9oMT4KPGRpdiBjbGFzcz0idG9wbGFuZyI+CjxwPjxzcGFuPkxhbmd1ZXMgRGlzcG9uaWJsZXM6IDwvc3Bhbj48YSBocmVmPSIuLi9lbi9tb2QvbW9kX3NldGVudmlmLmh0bWwiIGhyZWZsYW5nPSJlbiIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJFbmdsaXNoIj4mbmJzcDtlbiZuYnNwOzwvYT4gfAo8YSBocmVmPSIuLi9mci9tb2QvbW9kX3NldGVudmlmLmh0bWwiIHRpdGxlPSJGcmFu52FpcyI+Jm5ic3A7ZnImbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4vamEvbW9kL21vZF9zZXRlbnZpZi5odG1sIiBocmVmbGFuZz0iamEiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iSmFwYW5lc2UiPiZuYnNwO2phJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4uL2tvL21vZC9tb2Rfc2V0ZW52aWYuaHRtbCIgaHJlZmxhbmc9ImtvIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IktvcmVhbiI+Jm5ic3A7a28mbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4vdHIvbW9kL21vZF9zZXRlbnZpZi5odG1sIiBocmVmbGFuZz0idHIiIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iVPxya+dlIj4mbmJzcDt0ciZuYnNwOzwvYT48L3A+CjwvZGl2Pgo8dGFibGUgY2xhc3M9Im1vZHVsZSI+PHRyPjx0aD48YSBocmVmPSJtb2R1bGUtZGljdC5odG1sI0Rlc2NyaXB0aW9uIj5EZXNjcmlwdGlvbjo8L2E+PC90aD48dGQ+UGVybWV0IGRlIGTpZmluaXIgZGVzIHZhcmlhYmxlcyBkJ2Vudmlyb25uZW1lbnQgZW4gZm9uY3Rpb24KZGUgY2VydGFpbmVzY2FyYWN06XJpc3RpcXVlcyBkZSBsYSByZXF16nRlPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9Im1vZHVsZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXQ6PC9hPjwvdGg+PHRkPkJhc2U8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0ibW9kdWxlLWRpY3QuaHRtbCNNb2R1bGVJZGVudGlmaWVyIj5JZGVudGlmaWNhdGV1cqBkZaBNb2R1bGU6PC9hPjwvdGg+PHRkPnNldGVudmlmX21vZHVsZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJtb2R1bGUtZGljdC5odG1sI1NvdXJjZUZpbGUiPkZpY2hpZXKgU291cmNlOjwvYT48L3RoPjx0ZD5tb2Rfc2V0ZW52aWYuYzwvdGQ+PC90cj48L3RhYmxlPgo8aDM+U29tbWFpcmU8L2gzPgoKCiAgICA8cD5MZSBtb2R1bGUgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9zZXRlbnZpZi5odG1sIj5tb2Rfc2V0ZW52aWY8L2E+PC9jb2RlPiB2b3VzIHBlcm1ldCBkZSBk6WZpbmlyCiAgICBkZXMgdmFyaWFibGVzIGQnZW52aXJvbm5lbWVudCBpbnRlcm5lcyBkZSBtYW5p6HJlIGNvbmRpdGlvbm5lbGxlIGVuIGZvbmN0aW9uCiAgICBkZSBjcml06HJlcyBxdWUgdm91cyBwb3V2ZXogc3DpY2lmaWVyLiBDZXMgdmFyaWFibGVzIGQnZW52aXJvbm5lbWVudAogICAgcGV1dmVudCDqdHJlIHV0aWxpc+llcyBwYXIgZCdhdXRyZXMgcGFydGllcyBkdSBzZXJ2ZXVyIHBvdXIgcHJlbmRyZQogICAgZGVzIGTpY2lzaW9ucyBxdWFudCBhdXggYWN0aW9ucyDgIGVudHJlcHJlbmRyZSwgZXQgcG91ciBk6XRlcm1pbmVyCiAgICBzaSBsZXMgc2NyaXB0cyBDR0kgZXQgbGVzIHBhZ2VzIFNTSSBkb2l2ZW50IHBvdXZvaXIgeSBhY2PpZGVyLjwvcD4KCiAgICA8cD5MZXMgZGlyZWN0aXZlcyBzb250IGludGVycHLpdOllcyBzZWxvbiBsJ29yZHJlIGRhbnMgbGVxdWVsIGVsbGVzCiAgICBhcHBhcmHuc3NlbnQgZGFucyBsZXMgZmljaGllcnMgZGUgY29uZmlndXJhdGlvbi4gQWluc2ksIGRlcwogICAgc+lxdWVuY2VzIHBsdXMgY29tcGxleGVzIHBldXZlbnQg6nRyZSB1dGlsaXPpZXMsIGNvbW1lIGRhbnMgY2V0CiAgICBleGVtcGxlIHF1aSBk6WZpbml0IG5ldHNjYXBlIHNpIGxlIG5hdmlnYXRldXIgZXN0IE1vemlsbGEgZXQgbm9uCiAgICBNU0lFLjwvcD4KCjxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctY29uZmlnIj5Ccm93c2VyTWF0Y2ggXk1vemlsbGEgbmV0c2NhcGUKQnJvd3Nlck1hdGNoIE1TSUUgIW5ldHNjYXBlPC9wcmU+CgoKICAgPHA+TG9yc3F1ZSBsZSBzZXJ2ZXVyIGNoZXJjaGUgdW4gY2hlbWluIHZpYSB1bmUgPGEgY2xhc3M9Imdsb3NzYXJ5bGluayIgaHJlZj0iLi4vZ2xvc3NhcnkuaHRtbCNzdWJyZXF1ZXN0IiB0aXRsZT0idm9pciBnbG9zc2FpcmUiPnNvdXMtcmVxdep0ZTwvYT4gaW50ZXJuZSAocGFyIGV4ZW1wbGUgbGEKICAgcmVjaGVyY2hlIGQndW4gPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9kaXIuaHRtbCNkaXJlY3RvcnlpbmRleCI+RGlyZWN0b3J5SW5kZXg8L2E+PC9jb2RlPiksIG91IGxvcnNxdSdpbCBn6W7ocmUgdW4KICAgbGlzdGluZyBkdSBjb250ZW51IGQndW4gculwZXJ0b2lyZSB2aWEgbGUgbW9kdWxlCiAgIDxjb2RlIGNsYXNzPSJtb2R1bGUiPjxhIGhyZWY9Ii4uL21vZC9tb2RfYXV0b2luZGV4Lmh0bWwiPm1vZF9hdXRvaW5kZXg8L2E+PC9jb2RlPiwgbGEgc291cy1yZXF16nRlIG4naOlyaXRlIHBhcyBkZXMKICAgdmFyaWFibGVzIGQnZW52aXJvbm5lbWVudCBzcOljaWZpcXVlcyDgIGxhIHJlcXXqdGUuIEVuIG91dHJlLCDgIGNhdXNlCiAgIGRlcyBwaGFzZXMgZGUgbCdBUEkgYXV4cXVlbGxlcyA8Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX3NldGVudmlmLmh0bWwiPm1vZF9zZXRlbnZpZjwvYT48L2NvZGU+IHByZW5kCiAgIHBhcnQsIGxlcyBkaXJlY3RpdmVzIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNzZXRlbnZpZiI+U2V0RW52SWY8L2E+PC9jb2RlPiBuZSBzb250IHBhcyDpdmFsdellcwogICBz6XBhcultZW50IGRhbnMgbGEgc291cy1yZXF16nRlLjwvcD4KCjwvZGl2Pgo8ZGl2IGlkPSJxdWlja3ZpZXciPjxoMyBjbGFzcz0iZGlyZWN0aXZlcyI+RGlyZWN0aXZlczwvaDM+Cjx1bCBpZD0idG9jIj4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjYnJvd3Nlcm1hdGNoIj5Ccm93c2VyTWF0Y2g8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjYnJvd3Nlcm1hdGNobm9jYXNlIj5Ccm93c2VyTWF0Y2hOb0Nhc2U8L2E+PC9saT4KPGxpPjxpbWcgYWx0PSIiIHNyYz0iLi4vaW1hZ2VzL2Rvd24uZ2lmIiAvPiA8YSBocmVmPSIjc2V0ZW52aWYiPlNldEVudklmPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3NldGVudmlmZXhwciI+U2V0RW52SWZFeHByPC9hPjwvbGk+CjxsaT48aW1nIGFsdD0iIiBzcmM9Ii4uL2ltYWdlcy9kb3duLmdpZiIgLz4gPGEgaHJlZj0iI3NldGVudmlmbm9jYXNlIj5TZXRFbnZJZk5vQ2FzZTwvYT48L2xpPgo8L3VsPgo8aDM+VHJhaXRlbWVudCBkZXMgYnVnczwvaDM+PHVsIGNsYXNzPSJzZWVhbHNvIj48bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9kaXN0L2h0dHBkL0NIQU5HRVNfMi40Ij5Kb3VybmFsIGRlcyBtb2RpZmljYXRpb25zIGRlIGh0dHBkPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vYnouYXBhY2hlLm9yZy9idWd6aWxsYS9idWdsaXN0LmNnaT9idWdfc3RhdHVzPV9fb3Blbl9fJmFtcDtsaXN0X2lkPTE0NDUzMiZhbXA7cHJvZHVjdD1BcGFjaGUlMjBodHRwZC0yJmFtcDtxdWVyeV9mb3JtYXQ9c3BlY2lmaWMmYW1wO29yZGVyPWNoYW5nZWRkYXRlJTIwREVTQyUyQ3ByaW9yaXR5JTJDYnVnX3NldmVyaXR5JmFtcDtjb21wb25lbnQ9bW9kX3NldGVudmlmIj5Qcm9ibOhtZXMgY29ubnVzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHBzOi8vYnouYXBhY2hlLm9yZy9idWd6aWxsYS9lbnRlcl9idWcuY2dpP3Byb2R1Y3Q9QXBhY2hlJTIwaHR0cGQtMiZhbXA7Y29tcG9uZW50PW1vZF9zZXRlbnZpZiI+U2lnbmFsZXIgdW4gYnVnPC9hPjwvbGk+PC91bD48aDM+Vm9pciBhdXNzaTwvaDM+Cjx1bCBjbGFzcz0ic2VlYWxzbyI+CjxsaT48YSBocmVmPSIuLi9lbnYuaHRtbCI+TGVzIHZhcmlhYmxlcyBkJ2Vudmlyb25uZW1lbnQgZXQgbGUKc2VydmV1ciBIVFRQIEFwYWNoZTwvYT48L2xpPgo8bGk+PGEgaHJlZj0iI2NvbW1lbnRzX3NlY3Rpb24iPkNvbW1lbnRhaXJlczwvYT48L2xpPjwvdWw+PC9kaXY+Cgo8ZGl2IGNsYXNzPSJ0b3AiPjxhIGhyZWY9IiNwYWdlLWhlYWRlciI+PGltZyBhbHQ9InRvcCIgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiAvPjwvYT48L2Rpdj4KPGRpdiBjbGFzcz0iZGlyZWN0aXZlLXNlY3Rpb24iPjxoMj48YSBuYW1lPSJicm93c2VybWF0Y2giIGlkPSJicm93c2VybWF0Y2giPkRpcmVjdGl2ZTwvYT4gPGEgbmFtZT0iQnJvd3Nlck1hdGNoIiBpZD0iQnJvd3Nlck1hdGNoIj5Ccm93c2VyTWF0Y2g8L2E+PC9oMj4KPHRhYmxlIGNsYXNzPSJkaXJlY3RpdmUiPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjRGVzY3JpcHRpb24iPkRlc2NyaXB0aW9uOjwvYT48L3RoPjx0ZD5E6WZpbml0IGRlcyB2YXJpYWJsZXMgZCdlbnZpcm9ubmVtZW50IGVuIGZvbmN0aW9uIGR1CmNvbnRlbnUgZGUgbCdlbi106nRlIEhUVFAgVXNlci1BZ2VudDwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI1N5bnRheCI+U3ludGF4ZTo8L2E+PC90aD48dGQ+PGNvZGU+QnJvd3Nlck1hdGNoIDxlbT5yZWdleCBbIV1lbnYtdmFyaWFibGU8L2VtPls9PGVtPnZhbGV1cjwvZW0+XQpbWyFdPGVtPmVudi12YXJpYWJsZTwvZW0+Wz08ZW0+dmFsZXVyPC9lbT5dXSAuLi48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dGU6PC9hPjwvdGg+PHRkPmNvbmZpZ3VyYXRpb24gZHUgc2VydmV1ciwgc2VydmV1ciB2aXJ0dWVsLCBy6XBlcnRvaXJlLCAuaHRhY2Nlc3M8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNPdmVycmlkZSI+QWxsb3dPdmVycmlkZTo8L2E+PC90aD48dGQ+RmlsZUluZm88L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1dDo8L2E+PC90aD48dGQ+QmFzZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2Rfc2V0ZW52aWY8L3RkPjwvdHI+CjwvdGFibGU+CiAgPHA+TGEgZGlyZWN0aXZlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPkJyb3dzZXJNYXRjaDwvY29kZT4gZXN0IHVuIGNhcwogIHBhcnRpY3VsaWVyIGRlIGxhIGRpcmVjdGl2ZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjc2V0ZW52aWYiPlNldEVudklmPC9hPjwvY29kZT4sIHF1aSBk6WZpbml0IGRlcyB2YXJpYWJsZXMKICBkJ2Vudmlyb25uZW1lbnQgZW4gZm9uY3Rpb24gZHUgY29udGVudSBkZSBsJ2VuLXTqdGUgZGUgcmVxdep0ZSBIVFRQCiAgPGNvZGU+VXNlci1BZ2VudDwvY29kZT4uIExlcyBkZXV4IGxpZ25lcyBzdWl2YW50ZXMgcHJvZHVpc2VudCBsZSBt6m1lCiAgZWZmZXQgOjwvcD4KPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPkJyb3dzZXJNYXRjaCBSb2JvdCBpc19hX3JvYm90ClNldEVudklmIFVzZXItQWdlbnQgUm9ib3QgaXNfYV9yb2JvdDwvcHJlPgoKCiAgICA8cD5RdWVscXVlcyBleGVtcGxlcyBzdXBwbOltZW50YWlyZXMgOjwvcD4KPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPkJyb3dzZXJNYXRjaCBeTW96aWxsYSBmb3JtcyBqcGVnPXllcyBicm93c2VyPW5ldHNjYXBlCkJyb3dzZXJNYXRjaCAiXk1vemlsbGEvWzItM10iIHRhYmxlcyBhZ2lmIGZyYW1lcyBqYXZhc2NyaXB0CkJyb3dzZXJNYXRjaCBNU0lFICFqYXZhc2NyaXB0PC9wcmU+CgoKPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9ImJyb3dzZXJtYXRjaG5vY2FzZSIgaWQ9ImJyb3dzZXJtYXRjaG5vY2FzZSI+RGlyZWN0aXZlPC9hPiA8YSBuYW1lPSJCcm93c2VyTWF0Y2hOb0Nhc2UiIGlkPSJCcm93c2VyTWF0Y2hOb0Nhc2UiPkJyb3dzZXJNYXRjaE5vQ2FzZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPkTpZmluaXQgZGVzIHZhcmlhYmxlcyBkJ2Vudmlyb25uZW1lbnQgZW4gZm9uY3Rpb24gZHUKY29udGVudSBkZSBsJ2VuLXTqdGUgSFRUUCBVc2VyLUFnZW50IHNhbnMgdGVuaXIgY29tcHRlIGRlIGxhCmNhc3NlPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXhlOjwvYT48L3RoPjx0ZD48Y29kZT5Ccm93c2VyTWF0Y2hOb0Nhc2UgIDxlbT5yZWdleCBbIV1lbnYtdmFyaWFibGU8L2VtPls9PGVtPnZhbGV1cjwvZW0+XQogICAgW1shXTxlbT5lbnYtdmFyaWFibGU8L2VtPls9PGVtPnZhbGV1cjwvZW0+XV0gLi4uPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHRlOjwvYT48L3RoPjx0ZD5jb25maWd1cmF0aW9uIGR1IHNlcnZldXIsIHNlcnZldXIgdmlydHVlbCwgculwZXJ0b2lyZSwgLmh0YWNjZXNzPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjT3ZlcnJpZGUiPkFsbG93T3ZlcnJpZGU6PC9hPjwvdGg+PHRkPkZpbGVJbmZvPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXQ6PC9hPjwvdGg+PHRkPkJhc2U8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX3NldGVudmlmPC90ZD48L3RyPgo8L3RhYmxlPgoKICAgIDxwPkxhIGRpcmVjdGl2ZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5Ccm93c2VyTWF0Y2hOb0Nhc2U8L2NvZGU+IGVzdAogICAgaWRlbnRpcXVlIHN1ciBsZSBwbGFuIHPpbWFudGlxdWUg4CBsYSBkaXJlY3RpdmUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI2Jyb3dzZXJtYXRjaCI+QnJvd3Nlck1hdGNoPC9hPjwvY29kZT4uIEVsbGUgcGVybWV0CiAgICBjZXBlbmRhbnQgdW5lIGNvbXBhcmFpc29uIGluc2Vuc2libGUg4CBsYSBjYXNzZS4gUGFyIGV4ZW1wbGUgOjwvcD4KPHByZSBjbGFzcz0icHJldHR5cHJpbnQgbGFuZy1jb25maWciPkJyb3dzZXJNYXRjaE5vQ2FzZSBtYWMgcGxhdGZvcm09bWFjaW50b3NoCkJyb3dzZXJNYXRjaE5vQ2FzZSB3aW4gcGxhdGZvcm09d2luZG93czwvcHJlPgoKCiAgICA8cD5MZXMgZGlyZWN0aXZlcyA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5Ccm93c2VyTWF0Y2g8L2NvZGU+IGV0CiAgICA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5Ccm93c2VyTWF0Y2hOb0Nhc2U8L2NvZGU+IHNvbnQgZGVzIGNhcyBwYXJ0aWN1bGllcnMKICAgIGRlcyBkaXJlY3RpdmVzIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPjxhIGhyZWY9IiNzZXRlbnZpZiI+U2V0RW52SWY8L2E+PC9jb2RlPgogICAgZXQgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iI3NldGVudmlmbm9jYXNlIj5TZXRFbnZJZk5vQ2FzZTwvYT48L2NvZGU+LgogICAgQWluc2ksIGxlcyBkZXV4IGxpZ25lcyBzdWl2YW50ZXMgcHJvZHVpc2VudCBsZSBt6m1lIGVmZmV0IDo8L3A+CjxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctY29uZmlnIj5Ccm93c2VyTWF0Y2hOb0Nhc2UgUm9ib3QgaXNfYV9yb2JvdApTZXRFbnZJZk5vQ2FzZSBVc2VyLUFnZW50IFJvYm90IGlzX2Ffcm9ib3Q8L3ByZT4KCgo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0ic2V0ZW52aWYiIGlkPSJzZXRlbnZpZiI+RGlyZWN0aXZlPC9hPiA8YSBuYW1lPSJTZXRFbnZJZiIgaWQ9IlNldEVudklmIj5TZXRFbnZJZjwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPkTpZmluaXQgZGVzIHZhcmlhYmxlcyBkJ2Vudmlyb25uZW1lbnQgZW4gZm9uY3Rpb24gZGVzCmF0dHJpYnV0cyBkZSBsYSByZXF16nRlPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXhlOjwvYT48L3RoPjx0ZD48Y29kZT5TZXRFbnZJZiA8ZW0+YXR0cmlidXQKICAgIHJlZ2V4IFshXWVudi12YXJpYWJsZTwvZW0+Wz08ZW0+dmFsZXVyPC9lbT5dCiAgICBbWyFdPGVtPmVudi12YXJpYWJsZTwvZW0+Wz08ZW0+dmFsZXVyPC9lbT5dXSAuLi48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dGU6PC9hPjwvdGg+PHRkPmNvbmZpZ3VyYXRpb24gZHUgc2VydmV1ciwgc2VydmV1ciB2aXJ0dWVsLCBy6XBlcnRvaXJlLCAuaHRhY2Nlc3M8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNPdmVycmlkZSI+QWxsb3dPdmVycmlkZTo8L2E+PC90aD48dGQ+RmlsZUluZm88L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1dDo8L2E+PC90aD48dGQ+QmFzZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2Rfc2V0ZW52aWY8L3RkPjwvdHI+CjwvdGFibGU+CiAgICA8cD5MYSBkaXJlY3RpdmUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+U2V0RW52SWY8L2NvZGU+IHBlcm1ldCBkZSBk6WZpbmlyCiAgICBkZXMgdmFyaWFibGVzIGQnZW52aXJvbm5lbWVudCBlbiBmb25jdGlvbiBkZXMgYXR0cmlidXRzIGRlIGxhCiAgICByZXF16nRlLiBMJzxlbT5hdHRyaWJ1dDwvZW0+IHNw6WNpZmnpIGNvbW1lIHByZW1pZXIgYXJndW1lbnQgcGV1dAogICAgc2UgcHLpc2VudGVyIHNvdXMgbCd1bmUgZGVzIHRyb2lzIGZvcm1lcyBzdWl2YW50ZXMgOjwvcD4KCjxvbD4KPGxpPlVuIGNoYW1wIGQnZW4tdOp0ZSBkZSByZXF16nRlIEhUVFAgKHZvaXIgbGEgPGEgaHJlZj0iaHR0cDovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjMjYxNi50eHQiPlJGQzI2MTY8L2E+IHBvdXIKICAgIHBsdXMgZCdpbmZvcm1hdGlvbiDgIGxldXIgcHJvcG9zKSA7IHBhciBleGVtcGxlIDogPGNvZGU+SG9zdDwvY29kZT4sCiAgICA8Y29kZT5Vc2VyLUFnZW50PC9jb2RlPiwgPGNvZGU+UmVmZXJlcjwvY29kZT4sIG91CiAgICA8Y29kZT5BY2NlcHQtTGFuZ3VhZ2U8L2NvZGU+LiBJbCBlc3QgcG9zc2libGUgZCd1dGlsaXNlciB1bmUKICAgIGV4cHJlc3Npb24gcmF0aW9ubmVsbGUgcG91ciBzcOljaWZpZXIgdW4gamV1IGQnZW4tdOp0ZXMgZGUKICAgIHJlcXXqdGUuPC9saT4KCjxsaT5VbmUgZGVzIGNhcmFjdOlyaXN0aXF1ZXMgZGUgbGEgcmVxdep0ZSBzdWl2YW50ZXMgOgogICAgPHVsPgogICAgICA8bGk+PGNvZGU+UmVtb3RlX0hvc3Q8L2NvZGU+IC0gbGUgbm9tIGQnaPR0ZSAocydpbCBlc3QgZGlzcG9uaWJsZSkKICAgICAgZHUgY2xpZW50IHF1aSBlZmZlY3R1ZSBsYSByZXF16nRlPC9saT4KCiAgICAgIDxsaT48Y29kZT5SZW1vdGVfQWRkcjwvY29kZT4gLSBsJ2FkcmVzc2UgSVAgZHUgY2xpZW50IHF1aSBlZmZlY3R1ZQogICAgICBsYSByZXF16nRlPC9saT4KCiAgICAgIDxsaT48Y29kZT5TZXJ2ZXJfQWRkcjwvY29kZT4gLSBsJ2FkcmVzc2UgSVAgZHUgc2VydmV1ciBxdWkgYSByZed1CiAgICAgIGxhIHJlcXXqdGUgKHVuaXF1ZW1lbnQg4CBwYXJ0aXIgZGVzIHZlcnNpb25zIHN1cOlyaWV1cmVzIOAKICAgICAgMi4wLjQzKTwvbGk+CgogICAgICA8bGk+PGNvZGU+UmVxdWVzdF9NZXRob2Q8L2NvZGU+IC0gTGUgbm9tIGRlIGxhIG3pdGhvZGUgSFRUUAogICAgICB1dGlsaXPpZSAoPGNvZGU+R0VUPC9jb2RlPiwgPGNvZGU+UE9TVDwvY29kZT4sIDxlbT5ldAogICAgICBjZXRlcmEuLi48L2VtPik8L2xpPgoKICAgICAgPGxpPjxjb2RlPlJlcXVlc3RfUHJvdG9jb2w8L2NvZGU+IC0gbGUgbm9tIGV0IGxhIHZlcnNpb24gZHUKICAgICAgcHJvdG9jb2xlIHV0aWxpc+kgcG91ciBsYSByZXF16nRlIChwYXIgZXhlbXBsZSAiSFRUUC8wLjkiLAogICAgICAiSFRUUC8xLjEiLCA8ZW0+ZXRjLi4uPC9lbT4pPC9saT4KCiAgICAgIDxsaT48Y29kZT5SZXF1ZXN0X1VSSTwvY29kZT4gLSBsYSByZXNzb3VyY2UgZGVtYW5k6WUgZGFucyBsYSBsaWduZQogICAgICBkZSByZXF16nRlIEhUVFAgLS0gZW4gZ+lu6XJhbCBsYSBwYXJ0aWUgZGUgbCdVUkwgc3VpdmFudCBsZQogICAgICBwcm90b2NvbGUgZXQgbGUgbm9tIGR1IHNlcnZldXIsIHNhbnMgbGEgY2hh7m5lIGQnYXJndW1lbnRzLiBWb2lyCiAgICAgIGxhIGRpcmVjdGl2ZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIuLi9tb2QvbW9kX3Jld3JpdGUuaHRtbCNyZXdyaXRlY29uZCI+UmV3cml0ZUNvbmQ8L2E+PC9jb2RlPiBkdSBtb2R1bGUKICAgICAgPGNvZGUgY2xhc3M9Im1vZHVsZSI+PGEgaHJlZj0iLi4vbW9kL21vZF9yZXdyaXRlLmh0bWwiPm1vZF9yZXdyaXRlPC9hPjwvY29kZT4gcG91ciBwbHVzIGQnaW5mb3JtYXRpb25zIHN1ciBsYQogICAgICBtYW5p6HJlIGRlIG1ldHRyZSBlbiBjb3JyZXNwb25kYW5jZSB2b3RyZSBjaGHubmUgZCdhcmd1bWVudHMuPC9saT4KICAgIDwvdWw+CjwvbGk+Cgo8bGk+TGUgbm9tIGQndW5lIHZhcmlhYmxlIGQnZW52aXJvbm5lbWVudCBwYXJtaSBsYSBsaXN0ZSBkZSBjZWxsZXMgcXVpCnNvbnQgYXNzb2Np6WVzIOAgbGEgcmVxdep0ZS4gQ2VjaSBwZXJtZXQg4CBsYSBkaXJlY3RpdmUKPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+U2V0RW52SWY8L2NvZGU+IGQnZWZmZWN0dWVyIGRlcyB0ZXN0cyBlbiBmb25jdGlvbiBkdQpy6XN1bHRhdCBkZSBjb21wYXJhaXNvbnMgcHLpY+lkZW50ZXMuIFNldWxlcyBsZXMgdmFyaWFibGVzCmQnZW52aXJvbm5lbWVudCBk6WZpbmllcyBwYXIgZGVzIGRpcmVjdGl2ZXMKPGNvZGU+U2V0RW52SWZbTm9DYXNlXTwvY29kZT4gcHLpY+lkZW50ZXMgc29udCBkaXNwb25pYmxlcyBwb3VyCmVmZmVjdHVlciBkZXMgdGVzdHMgZGUgY2V0dGUgbWFuaehyZS4gJ1By6WPpZGVudGVzJyBzaWduaWZpZSBxdSdlbGxlcyBzZQp0cm91dmVudCDgIHVuIG5pdmVhdSBwbHVzIGdsb2JhbCBkZSBsYSBjb25maWd1cmF0aW9uIChwYXIgZXhlbXBsZSBhdQpuaXZlYXUgZHUgc2VydmV1ciBwcmluY2lwYWwpLCBvdSBwbHVzIGhhdXQgY2hyb25vbG9naXF1ZW1lbnQgZGFucyBsZQpjb250ZXh0ZSBkZSBsYSBkaXJlY3RpdmUuIExlcyB2YXJpYWJsZXMgZCdlbnZpcm9ubmVtZW50IG5lIHNlcm9udCBwcmlzZXMKZW4gY29tcHRlIHF1ZSBzaSBhdWN1bmUgY29ycmVzcG9uZGFuY2UgbidhIOl06SB0cm91dullIHBhcm1pIGxlcwpjYXJhY3TpcmlzdGlxdWVzIGRlIGxhIHJlcXXqdGUsIGV0IHNpIDxlbT5hdHRyaWJ1dDwvZW0+IG4nYSBwYXMg6XTpCnNw6WNpZmnpIHNvdXMgbGEgZm9ybWUgZCd1bmUgZXhwcmVzc2lvbiByYXRpb25uZWxsZS48L2xpPgoKPC9vbD4KCjxwPkxlIHNlY29uZCBhcmd1bWVudCAoPGVtPnJlZ2V4PC9lbT4pIGVzdCB1bmUgPGEgY2xhc3M9Imdsb3NzYXJ5bGluayIgaHJlZj0iLi4vZ2xvc3NhcnkuaHRtbCNyZWdleCIgdGl0bGU9InZvaXIgZ2xvc3NhaXJlIj5leHByZXNzaW9uIHJhdGlvbm5lbGxlPC9hPi4gU2kgIDxlbT5yZWdleDwvZW0+CmNvcnJlc3BvbmQg4CBsJzxlbT5hdHRyaWJ1dDwvZW0+LCBsZXMgYXJndW1lbnRzIHN1aXZhbnRzIHNvbnQg6XZhbHXpcy48L3A+Cgo8cD5MZSByZXN0ZSBkZXMgYXJndW1lbnRzIGNvbnN0aXR1ZSBsZXMgbm9tcyBkZXMgdmFyaWFibGVzIOAgZOlmaW5pciwKYWluc2kgcXVlIGxlcyB2YWxldXJzIG9wdGlvbm5lbGxlcyBxdWkgZG9pdmVudCBsZXVyIOp0cmUgYWZmZWN06WVzLiBJbHMKcGV1dmVudCBzZSBwculzZW50ZXIgc291cyBsZXMgZm9ybWVzIHN1aXZhbnRlcyA6PC9wPgoKICAgIDxvbD4KICAgICAgPGxpPjxjb2RlPjxlbT5ub20tdmFyaWFibGU8L2VtPjwvY29kZT4sIG91PC9saT4KCiAgICAgIDxsaT48Y29kZT4hPGVtPm5vbS12YXJpYWJsZTwvZW0+PC9jb2RlPiwgb3U8L2xpPgoKICAgICAgPGxpPjxjb2RlPjxlbT5ub20tdmFyaWFibGU8L2VtPj08ZW0+dmFsZXVyPC9lbT48L2NvZGU+PC9saT4KICAgIDwvb2w+CgogICAgPHA+RGFucyBsYSBwcmVtaehyZSBmb3JtZSwgbGEgdmFsZXVyIHNlcmEgZOlmaW5pZSDgICIxIi4gRGFucyBsYQogICAgc2Vjb25kZSBmb3JtZSwgbGEgdmFyaWFibGUgc2VyYSBzdXBwcmlt6WUgc2kgZWxsZSBhIOl06SBk6WZpbmllIGF1CiAgICBwculhbGFibGUsIGV0IGRhbnMgbGEgdHJvaXNp6G1lIGZvcm1lLCBsYSB2YXJpYWJsZSBzZXJhIGTpZmluaWUg4CBsYQogICAgdmFsZXVyIGxpdHTpcmFsZSBzcOljaWZp6WUgcGFyIDxjb2RlPjxlbT52YWxldXI8L2VtPjwvY29kZT4uIERlcHVpcwogICAgbGEgdmVyc2lvbiAyLjAuNTEsIEFwYWNoZSBodHRwZCByZWNvbm5h7nQgbGVzIG9jY3VycmVuY2VzIGRlIHZhcmlhYmxlcwogICAgPGNvZGU+JDE8L2NvZGU+Li48Y29kZT4kOTwvY29kZT4g4CBsJ2ludOlyaWV1ciBkZQogICAgPGNvZGU+PGVtPnZhbGV1cjwvZW0+PC9jb2RlPiwgZXQgbGVzIHJlbXBsYWNlIHBhciBsZXMKICAgIHNvdXMtZXhwcmVzc2lvbnMgZW50cmUgcGFyZW50aOhzZXMgY29ycmVzcG9uZGFudGVzIGRlCiAgICA8dmFyPnJlZ2V4PC92YXI+LiA8Y29kZT4kMDwvY29kZT4gcGVybWV0IGQnYWNj6WRlciDgIGwnZW5zZW1ibGUgZGUgbGEgY2hh7m5lCiAgICBxdWkgY29ycmVzcG9uZCDgIGNlIG1vZOhsZS48L3A+Cgo8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+U2V0RW52SWYgUmVxdWVzdF9VUkkgIlwuZ2lmJCIgb2JqZWN0X2lzX2ltYWdlPWdpZgpTZXRFbnZJZiBSZXF1ZXN0X1VSSSAiXC5qcGckIiBvYmplY3RfaXNfaW1hZ2U9anBnClNldEVudklmIFJlcXVlc3RfVVJJICJcLnhibSQiIG9iamVjdF9pc19pbWFnZT14Ym0KICAgIApTZXRFbnZJZiBSZWZlcmVyIHd3d1wubXlkb21haW5cLmV4YW1wbGVcLmNvbSBpbnRyYV9zaXRlX3JlZmVycmFsCiAgICAKU2V0RW52SWYgb2JqZWN0X2lzX2ltYWdlIHhibSBYQklUX1BST0NFU1NJTkc9MQoKU2V0RW52SWYgUmVxdWVzdF9VUkkgIlwuKC4qKSQiIEVYVEVOU0lPTj0kMQogICAgClNldEVudklmIF5UUyAgXlthLXpdICBIQVZFX1RTPC9wcmU+CgoKICAgIDxwPkxlcyB0cm9pcyBwcmVtaehyZXMgbGlnbmVzIGTpZmluaXNzZW50IGxhIHZhcmlhYmxlCiAgICBkJ2Vudmlyb25uZW1lbnQgPGNvZGU+b2JqZXRfZXN0X3VuZV9pbWFnZTwvY29kZT4gc2kgbCdvYmpldCBkZSBsYQogICAgcmVxdep0ZSBlc3QgdW4gZmljaGllciBpbWFnZSwgZXQgbGEgcXVhdHJp6G1lIGTpZmluaXQgbGEgdmFyaWFibGUKICAgIDxjb2RlPmludHJhX3NpdGVfcmVmZXJyYWw8L2NvZGU+IHNpIGxhIHBhZ2Ugculm6XJhbnRlIHNlIHRyb3V2ZQogICAgcXVlbHF1ZSBwYXJ0IGRhbnMgbGUgc2l0ZSB3ZWIKICAgIDxjb2RlPnd3dy5teWRvbWFpbi5leGFtcGxlLmNvbTwvY29kZT4uPC9wPgoKICAgIDxwPkxhIGRlcm5p6HJlIGxpZ25lIGTpZmluaXQgbGEgdmFyaWFibGUgZCdlbnZpcm9ubmVtZW50CiAgICA8Y29kZT5IQVZFX1RTPC9jb2RlPiBzaSBsYSByZXF16nRlIGNvbnRpZW50IHVuIGVuLXTqdGUgZG9udCBsZSBub20KICAgIGNvbW1lbmNlIHBhciAiVFMiIGV0IGRvbnQgbGEgdmFsZXVyIGNvbW1lbmNlIHBhciB0b3V0IGNhcmFjdOhyZSBkdQogICAgamV1IFthLXpdLjwvcD4KCjxoMz5Wb2lyIGF1c3NpPC9oMz4KPHVsPgo8bGk+PGEgaHJlZj0iLi4vZW52Lmh0bWwiPkxlcyB2YXJpYWJsZXMgZCdlbnZpcm9ubmVtZW50IGV0IGxlCnNlcnZldXIgSFRUUCBBcGFjaGU8L2E+IHBvdXIgZGVzIGV4ZW1wbGVzIHN1cHBs6W1lbnRhaXJlcy4KPC9saT4KPC91bD4KPC9kaXY+CjxkaXYgY2xhc3M9InRvcCI+PGEgaHJlZj0iI3BhZ2UtaGVhZGVyIj48aW1nIGFsdD0idG9wIiBzcmM9Ii4uL2ltYWdlcy91cC5naWYiIC8+PC9hPjwvZGl2Pgo8ZGl2IGNsYXNzPSJkaXJlY3RpdmUtc2VjdGlvbiI+PGgyPjxhIG5hbWU9InNldGVudmlmZXhwciIgaWQ9InNldGVudmlmZXhwciI+RGlyZWN0aXZlPC9hPiA8YSBuYW1lPSJTZXRFbnZJZkV4cHIiIGlkPSJTZXRFbnZJZkV4cHIiPlNldEVudklmRXhwcjwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPkTpZmluaXQgZGVzIHZhcmlhYmxlcyBkJ2Vudmlyb25uZW1lbnQgZW4gZm9uY3Rpb24gZCd1bmUgZXhwcmVzc2lvbiBhcF9leHByPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXhlOjwvYT48L3RoPjx0ZD48Y29kZT5TZXRFbnZJZkV4cHIgPGVtPmV4cHIKICAgIFshXWVudi12YXJpYWJsZTwvZW0+Wz08ZW0+dmFsZXVyPC9lbT5dCiAgICBbWyFdPGVtPmVudi12YXJpYWJsZTwvZW0+Wz08ZW0+dmFsZXVyPC9lbT5dXSAuLi48L2NvZGU+PC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjQ29udGV4dCI+Q29udGV4dGU6PC9hPjwvdGg+PHRkPmNvbmZpZ3VyYXRpb24gZHUgc2VydmV1ciwgc2VydmV1ciB2aXJ0dWVsLCBy6XBlcnRvaXJlLCAuaHRhY2Nlc3M8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNPdmVycmlkZSI+QWxsb3dPdmVycmlkZTo8L2E+PC90aD48dGQ+RmlsZUluZm88L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNTdGF0dXMiPlN0YXR1dDo8L2E+PC90aD48dGQ+QmFzZTwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI01vZHVsZSI+TW9kdWxlOjwvYT48L3RoPjx0ZD5tb2Rfc2V0ZW52aWY8L3RkPjwvdHI+CjwvdGFibGU+CiAgICA8cD5MYSBkaXJlY3RpdmUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+U2V0RW52SWZFeHByPC9jb2RlPiBwZXJtZXQgZGUKICAgIGTpZmluaXIgZGVzIHZhcmlhYmxlcyBkJ2Vudmlyb25uZW1lbnQgZW4gZm9uY3Rpb24gZCd1bmUgZXhwcmVzc2lvbgogICAgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL2NvcmUuaHRtbCNpZiI+Jmx0O0lmJmd0OzwvYT48L2NvZGU+IDxjb2RlPmFwX2V4cHI8L2NvZGU+LiBDZXR0ZQogICAgZXhwcmVzc2lvbiBlc3Qg6XZhbHXpZSDgIGwnZXjpY3V0aW9uLCBldCB1dGlsaXNlIGxlcyB2YXJpYWJsZXMKICAgIGQnZW52aXJvbm5lbWVudCA8ZW0+ZW52LXZhcmlhYmxlPC9lbT4gZGUgbGEgbeptZSBtYW5p6HJlIHF1ZSBsYQogICAgZGlyZWN0aXZlIDxjb2RlIGNsYXNzPSJkaXJlY3RpdmUiPlNldEVudklmPC9jb2RlPi48L3A+Cgo8cHJlIGNsYXNzPSJwcmV0dHlwcmludCBsYW5nLWNvbmZpZyI+U2V0RW52SWZFeHByICJ0b2xvd2VyKHJlcSgnWC1TZW5kZmlsZScpKSA9PSAnZDpcaW1hZ2VzXHZlcnlfYmlnLmlzbycpIiBpc29fZGVsaXZlcmVkPC9wcmU+CgoKICAgIDxwPkRhbnMgY2V0IGV4ZW1wbGUsIGxhIHZhcmlhYmxlIGQnZW52aXJvbm5lbWVudAogICAgPGNvZGU+aXNvX2RlbGl2ZXJlZDwvY29kZT4gZXN0IGTpZmluaWUgY2hhcXVlIGZvaXMgcXVlIG5vdHJlCiAgICBhcHBsaWNhdGlvbiB0ZW50ZSBkZSBsJ2Vudm95ZXIgdmlhIDxjb2RlPlgtU2VuZGZpbGU8L2NvZGU+LjwvcD4KCiAgICA8cD5JbCBwb3VycmFpdCDqdHJlIHBsdXMgdXRpbGUgZGUgZOlmaW5pciB1bmUgdmFyaWFibGUgcmZjMTkxOCBzaQogICAgbCdhZHJlc3NlIElQIGRpc3RhbnRlIGVzdCB1bmUgYWRyZXNzZSBwcml26WUgYXUgc2VucyBkZSBsYSBSRkMgMTkxOAogICAgOjwvcD4KCjxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctY29uZmlnIj5TZXRFbnZJZkV4cHIgIi1SICcxMC4wLjAuMC84JyB8fCAtUiAnMTcyLjE2LjAuMC8xMicgfHwgLVIgJzE5Mi4xNjguMC4wLzE2JyIgcmZjMTkxODwvcHJlPgoKCjxoMz5Wb2lyIGF1c3NpPC9oMz4KPHVsPgo8bGk+PGEgaHJlZj0iLi4vZXhwci5odG1sIj5MZXMgZXhwcmVzc2lvbnMgZGFucyBsZSBzZXJ2ZXVyIEhUVFAKQXBhY2hlPC9hPiwgcG91ciB1bmUgculm6XJlbmNlIGNvbXBs6HRlIGV0IGRhdmFudGFnZSBkJ2V4ZW1wbGVzLjwvbGk+CjxsaT5MYSBkaXJlY3RpdmUgPGNvZGUgY2xhc3M9ImRpcmVjdGl2ZSI+PGEgaHJlZj0iLi4vbW9kL2NvcmUuaHRtbCNpZiI+Jmx0O0lmJmd0OzwvYT48L2NvZGU+IHBlcm1ldCBkJ29idGVuaXIgZGVzIHLpc3VsdGF0cwpzaW1pbGFpcmVzLjwvbGk+CjxsaT48Y29kZSBjbGFzcz0ibW9kdWxlIj48YSBocmVmPSIuLi9tb2QvbW9kX2ZpbHRlci5odG1sIj5tb2RfZmlsdGVyPC9hPjwvY29kZT48L2xpPgo8L3VsPgo8L2Rpdj4KPGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgYWx0PSJ0b3AiIHNyYz0iLi4vaW1hZ2VzL3VwLmdpZiIgLz48L2E+PC9kaXY+CjxkaXYgY2xhc3M9ImRpcmVjdGl2ZS1zZWN0aW9uIj48aDI+PGEgbmFtZT0ic2V0ZW52aWZub2Nhc2UiIGlkPSJzZXRlbnZpZm5vY2FzZSI+RGlyZWN0aXZlPC9hPiA8YSBuYW1lPSJTZXRFbnZJZk5vQ2FzZSIgaWQ9IlNldEVudklmTm9DYXNlIj5TZXRFbnZJZk5vQ2FzZTwvYT48L2gyPgo8dGFibGUgY2xhc3M9ImRpcmVjdGl2ZSI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNEZXNjcmlwdGlvbiI+RGVzY3JpcHRpb246PC9hPjwvdGg+PHRkPkTpZmluaXQgZGVzIHZhcmlhYmxlcyBkJ2Vudmlyb25uZW1lbnQgZW4gZm9uY3Rpb24gZGVzCmF0dHJpYnV0cyBkZSBsYSByZXF16nRlIHNhbnMgdGVuaXIgY29tcHRlIGRlIGxhIGNhc3NlPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3ludGF4Ij5TeW50YXhlOjwvYT48L3RoPjx0ZD48Y29kZT5TZXRFbnZJZk5vQ2FzZSA8ZW0+YXR0cmlidXQgcmVnZXgKICAgICAgICBbIV1lbnYtdmFyaWFibGU8L2VtPls9PGVtPnZhbGV1cjwvZW0+XQogICAgW1shXTxlbT5lbnYtdmFyaWFibGU8L2VtPls9PGVtPnZhbGV1cjwvZW0+XV0gLi4uPC9jb2RlPjwvdGQ+PC90cj4KPHRyPjx0aD48YSBocmVmPSJkaXJlY3RpdmUtZGljdC5odG1sI0NvbnRleHQiPkNvbnRleHRlOjwvYT48L3RoPjx0ZD5jb25maWd1cmF0aW9uIGR1IHNlcnZldXIsIHNlcnZldXIgdmlydHVlbCwgculwZXJ0b2lyZSwgLmh0YWNjZXNzPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjT3ZlcnJpZGUiPkFsbG93T3ZlcnJpZGU6PC9hPjwvdGg+PHRkPkZpbGVJbmZvPC90ZD48L3RyPgo8dHI+PHRoPjxhIGhyZWY9ImRpcmVjdGl2ZS1kaWN0Lmh0bWwjU3RhdHVzIj5TdGF0dXQ6PC9hPjwvdGg+PHRkPkJhc2U8L3RkPjwvdHI+Cjx0cj48dGg+PGEgaHJlZj0iZGlyZWN0aXZlLWRpY3QuaHRtbCNNb2R1bGUiPk1vZHVsZTo8L2E+PC90aD48dGQ+bW9kX3NldGVudmlmPC90ZD48L3RyPgo8L3RhYmxlPgoKICAgIDxwPkxhIGRpcmVjdGl2ZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj5TZXRFbnZJZk5vQ2FzZTwvY29kZT4gZXN0IGlkZW50aXF1ZQogICAgZCd1biBwb2ludCBkZSB2dWUgc+ltYW50aXF1ZSDgIGxhIGRpcmVjdGl2ZSA8Y29kZSBjbGFzcz0iZGlyZWN0aXZlIj48YSBocmVmPSIjc2V0ZW52aWYiPlNldEVudklmPC9hPjwvY29kZT4sIGV0IG5lIHMnZW4gZGlzdGluZ3VlIHF1ZQogICAgcGFyIGxlIGZhaXQgcXVlIGxhIGNvbXBhcmFpc29uIGRlcyBleHByZXNzaW9ucyByYXRpb25uZWxsZXMgZXN0CiAgICBlZmZlY3R16WUgc2FucyB0ZW5pciBjb21wdGUgZGUgbGEgY2Fzc2UuIFBhciBleGVtcGxlIDo8L3A+CjxwcmUgY2xhc3M9InByZXR0eXByaW50IGxhbmctY29uZmlnIj5TZXRFbnZJZk5vQ2FzZSBIb3N0IEV4YW1wbGVcLk9yZyBzaXRlPWV4YW1wbGU8L3ByZT4KCgogICAgPHA+Q2V0dGUgbGlnbmUgdmEgZOlmaW5pciBsYSB2YXJpYWJsZSBkJ2Vudmlyb25uZW1lbnQKICAgIDxjb2RlPnNpdGU8L2NvZGU+IGF2ZWMgbGEgdmFsZXVyICI8Y29kZT5leGFtcGxlPC9jb2RlPiIgc2kgbGUgY2hhbXAKICAgIGQnZW4tdOp0ZSBkZSByZXF16nRlIEhUVFAgPGNvZGU+SG9zdDo8L2NvZGU+IGVzdCBwculzZW50IGV0IGNvbnRpZW50CiAgICA8Y29kZT5FeGFtcGxlLk9yZzwvY29kZT4sIDxjb2RlPmV4YW1wbGUub3JnPC9jb2RlPiwgb3UgdW5lIGF1dHJlCiAgICBjb21iaW5haXNvbiBkZXMgbeptZXMgY2FyYWN06HJlcywgc2FucyB0ZW5pciBjb21wdGUgZGUgbGEgY2Fzc2UuPC9wPgoKPC9kaXY+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJib3R0b21sYW5nIj4KPHA+PHNwYW4+TGFuZ3VlcyBEaXNwb25pYmxlczogPC9zcGFuPjxhIGhyZWY9Ii4uL2VuL21vZC9tb2Rfc2V0ZW52aWYuaHRtbCIgaHJlZmxhbmc9ImVuIiByZWw9ImFsdGVybmF0ZSIgdGl0bGU9IkVuZ2xpc2giPiZuYnNwO2VuJm5ic3A7PC9hPiB8CjxhIGhyZWY9Ii4uL2ZyL21vZC9tb2Rfc2V0ZW52aWYuaHRtbCIgdGl0bGU9IkZyYW7nYWlzIj4mbmJzcDtmciZuYnNwOzwvYT4gfAo8YSBocmVmPSIuLi9qYS9tb2QvbW9kX3NldGVudmlmLmh0bWwiIGhyZWZsYW5nPSJqYSIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJKYXBhbmVzZSI+Jm5ic3A7amEmbmJzcDs8L2E+IHwKPGEgaHJlZj0iLi4va28vbW9kL21vZF9zZXRlbnZpZi5odG1sIiBocmVmbGFuZz0ia28iIHJlbD0iYWx0ZXJuYXRlIiB0aXRsZT0iS29yZWFuIj4mbmJzcDtrbyZuYnNwOzwvYT4gfAo8YSBocmVmPSIuLi90ci9tb2QvbW9kX3NldGVudmlmLmh0bWwiIGhyZWZsYW5nPSJ0ciIgcmVsPSJhbHRlcm5hdGUiIHRpdGxlPSJU/HJr52UiPiZuYnNwO3RyJm5ic3A7PC9hPjwvcD4KPC9kaXY+PGRpdiBjbGFzcz0idG9wIj48YSBocmVmPSIjcGFnZS1oZWFkZXIiPjxpbWcgc3JjPSIuLi9pbWFnZXMvdXAuZ2lmIiBhbHQ9InRvcCIgLz48L2E+PC9kaXY+PGRpdiBjbGFzcz0ic2VjdGlvbiI+PGgyPjxhIGlkPSJjb21tZW50c19zZWN0aW9uIiBuYW1lPSJjb21tZW50c19zZWN0aW9uIj5Db21tZW50YWlyZXM8L2E+PC9oMj48ZGl2IGNsYXNzPSJ3YXJuaW5nIj48c3Ryb25nPk5vdGljZTo8L3N0cm9uZz48YnIgLz5UaGlzIGlzIG5vdCBhIFEmYW1wO0Egc2VjdGlvbi4gQ29tbWVudHMgcGxhY2VkIGhlcmUgc2hvdWxkIGJlIHBvaW50ZWQgdG93YXJkcyBzdWdnZXN0aW9ucyBvbiBpbXByb3ZpbmcgdGhlIGRvY3VtZW50YXRpb24gb3Igc2VydmVyLCBhbmQgbWF5IGJlIHJlbW92ZWQgYWdhaW4gYnkgb3VyIG1vZGVyYXRvcnMgaWYgdGhleSBhcmUgZWl0aGVyIGltcGxlbWVudGVkIG9yIGNvbnNpZGVyZWQgaW52YWxpZC9vZmYtdG9waWMuIFF1ZXN0aW9ucyBvbiBob3cgdG8gbWFuYWdlIHRoZSBBcGFjaGUgSFRUUCBTZXJ2ZXIgc2hvdWxkIGJlIGRpcmVjdGVkIGF0IGVpdGhlciBvdXIgSVJDIGNoYW5uZWwsICNodHRwZCwgb24gRnJlZW5vZGUsIG9yIHNlbnQgdG8gb3VyIDxhIGhyZWY9Imh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2xpc3RzLmh0bWwiPm1haWxpbmcgbGlzdHM8L2E+LjwvZGl2Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PCEtLS8vLS0+PCFbQ0RBVEFbLy8+PCEtLQp2YXIgY29tbWVudHNfc2hvcnRuYW1lID0gJ2h0dHBkJzsKdmFyIGNvbW1lbnRzX2lkZW50aWZpZXIgPSAnaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG9jcy8yLjQvbW9kL21vZF9zZXRlbnZpZi5odG1sJzsKKGZ1bmN0aW9uKHcsIGQpIHsKICAgIGlmICh3LmxvY2F0aW9uLmhvc3RuYW1lLnRvTG93ZXJDYXNlKCkgPT0gImh0dHBkLmFwYWNoZS5vcmciKSB7CiAgICAgICAgZC53cml0ZSgnPGRpdiBpZD0iY29tbWVudHNfdGhyZWFkIj48XC9kaXY+Jyk7CiAgICAgICAgdmFyIHMgPSBkLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwogICAgICAgIHMudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnOwogICAgICAgIHMuYXN5bmMgPSB0cnVlOwogICAgICAgIHMuc3JjID0gJ2h0dHBzOi8vY29tbWVudHMuYXBhY2hlLm9yZy9zaG93X2NvbW1lbnRzLmx1YT9zaXRlPScgKyBjb21tZW50c19zaG9ydG5hbWUgKyAnJnBhZ2U9JyArIGNvbW1lbnRzX2lkZW50aWZpZXI7CiAgICAgICAgKGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2hlYWQnKVswXSB8fCBkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF0pLmFwcGVuZENoaWxkKHMpOwogICAgfQogICAgZWxzZSB7IAogICAgICAgIGQud3JpdGUoJzxkaXYgaWQ9ImNvbW1lbnRzX3RocmVhZCI+Q29tbWVudHMgYXJlIGRpc2FibGVkIGZvciB0aGlzIHBhZ2UgYXQgdGhlIG1vbWVudC48XC9kaXY+Jyk7CiAgICB9Cn0pKHdpbmRvdywgZG9jdW1lbnQpOwovLy0tPjwhXV0+PC9zY3JpcHQ+PC9kaXY+PGRpdiBpZD0iZm9vdGVyIj4KPHAgY2xhc3M9ImFwYWNoZSI+Q29weXJpZ2h0IDIwMTYgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLjxiciAvPkF1dG9yaXPpIHNvdXMgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIj5BcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjA8L2E+LjwvcD4KPHAgY2xhc3M9Im1lbnUiPjxhIGhyZWY9Ii4uL21vZC8iPk1vZHVsZXM8L2E+IHwgPGEgaHJlZj0iLi4vbW9kL2RpcmVjdGl2ZXMuaHRtbCI+RGlyZWN0aXZlczwvYT4gfCA8YSBocmVmPSJodHRwOi8vd2lraS5hcGFjaGUub3JnL2h0dHBkL0ZBUSI+RkFRPC9hPiB8IDxhIGhyZWY9Ii4uL2dsb3NzYXJ5Lmh0bWwiPkdsb3NzYWlyZTwvYT4gfCA8YSBocmVmPSIuLi9zaXRlbWFwLmh0bWwiPlBsYW4gZHUgc2l0ZTwvYT48L3A+PC9kaXY+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwhLS0vLy0tPjwhW0NEQVRBWy8vPjwhLS0KaWYgKHR5cGVvZihwcmV0dHlQcmludCkgIT09ICd1bmRlZmluZWQnKSB7CiAgICBwcmV0dHlQcmludCgpOwp9Ci8vLS0+PCFdXT48L3NjcmlwdD4KPC9ib2R5PjwvaHRtbD4=