PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tCiAgIENvcHlyaWdodCAyMDAxLTIwMDUgVGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCgogICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCiAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0tPgoKPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+CjwhLS0gJElkJCAtLT4KPCEtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+Cjxwcm9qZWN0PgogIDxwb21WZXJzaW9uPjM8L3BvbVZlcnNpb24+CgogIDxncm91cElkPmNvbW1vbnMtY29uZmlndXJhdGlvbjwvZ3JvdXBJZD4KICA8YXJ0aWZhY3RJZD5jb21tb25zLWNvbmZpZ3VyYXRpb248L2FydGlmYWN0SWQ+CiAgPGN1cnJlbnRWZXJzaW9uPjEuMjwvY3VycmVudFZlcnNpb24+CiAgPGluY2VwdGlvblllYXI+MjAwMTwvaW5jZXB0aW9uWWVhcj4KICA8bmFtZT5Db21tb25zIENvbmZpZ3VyYXRpb248L25hbWU+CiAgPHNob3J0RGVzY3JpcHRpb24+Q29tbW9uIENvbmZpZ3VyYXRpb248L3Nob3J0RGVzY3JpcHRpb24+CiAgPGRlc2NyaXB0aW9uPgogICAgVG9vbHMgdG8gYXNzaXN0IGluIHRoZSByZWFkaW5nIG9mIGNvbmZpZ3VyYXRpb24vcHJlZmVyZW5jZXMgZmlsZXMgaW4KICAgIHZhcmlvdXMgZm9ybWF0cwogIDwvZGVzY3JpcHRpb24+CiAgPGxvZ28+L2ltYWdlcy9sb2dvLnBuZzwvbG9nbz4KCiAgPHVybD5odHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvJHtwb20uYXJ0aWZhY3RJZC5zdWJzdHJpbmcoOCl9LzwvdXJsPgogIDxwYWNrYWdlPm9yZy5hcGFjaGUuY29tbW9ucy4ke3BvbS5hcnRpZmFjdElkLnN1YnN0cmluZyg4KX08L3BhY2thZ2U+CgogIDxvcmdhbml6YXRpb24+CiAgICA8bmFtZT5UaGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb248L25hbWU+CiAgICA8dXJsPmh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmc8L3VybD4KICAgIDxsb2dvPmh0dHA6Ly9qYWthcnRhLmFwYWNoZS5vcmcvaW1hZ2VzL29yaWdpbmFsLWpha2FydGEtbG9nby5naWY8L2xvZ28+CiAgPC9vcmdhbml6YXRpb24+CgogIDxsaWNlbnNlcz4KCTxsaWNlbnNlPgogICAgCTxuYW1lPlRoZSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAyLjA8L25hbWU+CiAgICAJPHVybD4vTElDRU5TRS50eHQ8L3VybD4KICAgIAk8ZGlzdHJpYnV0aW9uPnJlcG88L2Rpc3RyaWJ1dGlvbj4KCTwvbGljZW5zZT4KICA8L2xpY2Vuc2VzPgoKICA8Z3VtcFJlcG9zaXRvcnlJZD5qYWthcnRhPC9ndW1wUmVwb3NpdG9yeUlkPgogIDxpc3N1ZVRyYWNraW5nVXJsPmh0dHA6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9idWd6aWxsYS9idWdsaXN0LmNnaT9idWdfc3RhdHVzPU5FVyZhbXA7YnVnX3N0YXR1cz1BU1NJR05FRCZhbXA7YnVnX3N0YXR1cz1SRU9QRU5FRCZhbXA7cHJvZHVjdD1Db21tb25zJmFtcDtjb21wb25lbnQ9Q29uZmlndXJhdGlvbjwvaXNzdWVUcmFja2luZ1VybD4KICA8c2l0ZUFkZHJlc3M+Y3ZzLmFwYWNoZS5vcmc8L3NpdGVBZGRyZXNzPgogIDxzaXRlRGlyZWN0b3J5Pi93d3cvamFrYXJ0YS5hcGFjaGUub3JnL2NvbW1vbnMvJHtwb20uYXJ0aWZhY3RJZC5zdWJzdHJpbmcoOCl9Lzwvc2l0ZURpcmVjdG9yeT4KICA8ZGlzdHJpYnV0aW9uU2l0ZT53d3cuYXBhY2hlLm9yZzwvZGlzdHJpYnV0aW9uU2l0ZT4KICA8ZGlzdHJpYnV0aW9uRGlyZWN0b3J5Pi93d3cvd3d3LmFwYWNoZS5vcmcvZGlzdC9qYXZhLXJlcG9zaXRvcnkvPC9kaXN0cmlidXRpb25EaXJlY3Rvcnk+CgogIDxyZXBvc2l0b3J5PgogICAgPGNvbm5lY3Rpb24+c2NtOnN2bjpodHRwOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL2pha2FydGEvY29tbW9ucy9wcm9wZXIvJHtwb20uYXJ0aWZhY3RJZC5zdWJzdHJpbmcoOCl9L3RydW5rPC9jb25uZWN0aW9uPgogICAgPHVybD5odHRwOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL2pha2FydGEvY29tbW9ucy9wcm9wZXIvJHtwb20uYXJ0aWZhY3RJZC5zdWJzdHJpbmcoOCl9L3RydW5rPC91cmw+CiAgPC9yZXBvc2l0b3J5PgoKICA8dmVyc2lvbnM+CiAgICA8dmVyc2lvbj4KICAgICAgPGlkPjEuMC1yYzE8L2lkPgogICAgICA8bmFtZT4xLjAtcmMxPC9uYW1lPgogICAgICA8dGFnPkNPTkZJR1VSQVRJT05fMV8wX1JDMTwvdGFnPgogICAgPC92ZXJzaW9uPgogICAgPHZlcnNpb24+CiAgICAgIDxpZD4xLjAtcmMyPC9pZD4KICAgICAgPG5hbWU+MS4wLXJjMjwvbmFtZT4KICAgICAgPHRhZz5DT05GSUdVUkFUSU9OXzFfMF9SQzI8L3RhZz4KICAgIDwvdmVyc2lvbj4KICAgIDx2ZXJzaW9uPgogICAgICA8aWQ+MS4wPC9pZD4KICAgICAgPG5hbWU+MS4wPC9uYW1lPgogICAgICA8dGFnPkNPTkZJR1VSQVRJT05fMV8wPC90YWc+CiAgICA8L3ZlcnNpb24+CiAgICA8dmVyc2lvbj4KICAgICAgPGlkPjEuMTwvaWQ+CiAgICAgIDxuYW1lPjEuMTwvbmFtZT4KICAgICAgPHRhZz5DT05GSUdVUkFUSU9OXzFfMTwvdGFnPgogICAgPC92ZXJzaW9uPgogIDwvdmVyc2lvbnM+CiAgICAKICA8bWFpbGluZ0xpc3RzPgogICAgPG1haWxpbmdMaXN0PgogICAgICA8bmFtZT5Db21tb25zIERldiBMaXN0PC9uYW1lPgogICAgICA8c3Vic2NyaWJlPmNvbW1vbnMtZGV2LXN1YnNjcmliZUBqYWthcnRhLmFwYWNoZS5vcmc8L3N1YnNjcmliZT4KICAgICAgPHVuc3Vic2NyaWJlPmNvbW1vbnMtZGV2LXVuc3Vic2NyaWJlQGpha2FydGEuYXBhY2hlLm9yZzwvdW5zdWJzY3JpYmU+CiAgICAgIDxhcmNoaXZlPmh0dHA6Ly9tYWlsLWFyY2hpdmVzLmFwYWNoZS5vcmcvZXllYnJvd3NlL1N1bW1hcml6ZUxpc3Q/bGlzdE5hbWU9Y29tbW9ucy1kZXZAamFrYXJ0YS5hcGFjaGUub3JnPC9hcmNoaXZlPgogICAgPC9tYWlsaW5nTGlzdD4KICAgIDxtYWlsaW5nTGlzdD4KICAgICAgPG5hbWU+Q29tbW9ucyBVc2VyIExpc3Q8L25hbWU+CiAgICAgIDxzdWJzY3JpYmU+Y29tbW9ucy11c2VyLXN1YnNjcmliZUBqYWthcnRhLmFwYWNoZS5vcmc8L3N1YnNjcmliZT4KICAgICAgPHVuc3Vic2NyaWJlPmNvbW1vbnMtdXNlci11bnN1YnNjcmliZUBqYWthcnRhLmFwYWNoZS5vcmc8L3Vuc3Vic2NyaWJlPgogICAgICA8YXJjaGl2ZT5odHRwOi8vbWFpbC1hcmNoaXZlcy5hcGFjaGUub3JnL2V5ZWJyb3dzZS9TdW1tYXJpemVMaXN0P2xpc3ROYW1lPWNvbW1vbnMtdXNlckBqYWthcnRhLmFwYWNoZS5vcmc8L2FyY2hpdmU+CiAgICA8L21haWxpbmdMaXN0PgogIDwvbWFpbGluZ0xpc3RzPgoKICA8YnJhbmNoZXM+CiAgPC9icmFuY2hlcz4KCiAgPGRldmVsb3BlcnM+CgogICAgPGRldmVsb3Blcj4KICAgICAgPG5hbWU+RGFuaWVsIFJhbGw8L25hbWU+CiAgICAgIDxpZD5kbHI8L2lkPgogICAgICA8ZW1haWw+ZGxyQGZpbmVtYWx0Y29kaW5nLmNvbTwvZW1haWw+CiAgICAgIDxvcmdhbml6YXRpb24+Q29sbGFiTmV0LCBJbmMuPC9vcmdhbml6YXRpb24+CiAgICA8L2RldmVsb3Blcj4KCiAgICA8ZGV2ZWxvcGVyPgogICAgICA8bmFtZT5KYXNvbiB2YW4gWnlsPC9uYW1lPgogICAgICA8aWQ+anZhbnp5bDwvaWQ+CiAgICAgIDxlbWFpbD5qYXNvbkB6ZW5wbGV4LmNvbTwvZW1haWw+CiAgICAgIDxvcmdhbml6YXRpb24+WmVucGxleDwvb3JnYW5pemF0aW9uPgogICAgPC9kZXZlbG9wZXI+CgogICAgPGRldmVsb3Blcj4KICAgICAgPG5hbWU+TWFydGluIFBvZXNjaGw8L25hbWU+CiAgICAgIDxpZD5tcG9lc2NobDwvaWQ+CiAgICAgIDxlbWFpbD5tcG9lc2NobEBtYXJtb3QuYXQ8L2VtYWlsPgogICAgICA8b3JnYW5pemF0aW9uPnR1Y2FuYS5hdDwvb3JnYW5pemF0aW9uPgogICAgPC9kZXZlbG9wZXI+CgogICAgPGRldmVsb3Blcj4KICAgICAgPG5hbWU+ZElvbiBHaWxsYXJkPC9uYW1lPgogICAgICA8aWQ+ZGlvbjwvaWQ+CiAgICAgIDxlbWFpbD5kaW9uQG11bHRpdGFzay5jb20uYXU8L2VtYWlsPgogICAgICA8b3JnYW5pemF0aW9uPk11bHRpdGFzayBDb25zdWx0aW5nPC9vcmdhbml6YXRpb24+CiAgICA8L2RldmVsb3Blcj4KCiAgICA8ZGV2ZWxvcGVyPgogICAgICA8bmFtZT5IZW5uaW5nIFAuIFNjaG1pZWRlaGF1c2VuPC9uYW1lPgogICAgICA8aWQ+aGVubmluZzwvaWQ+CiAgICAgIDxlbWFpbD5ocHNAaW50ZXJtZXRhLmRlPC9lbWFpbD4KICAgICAgPG9yZ2FuaXphdGlvbj5JTlRFUk1FVEEgLSBHZXNlbGxzY2hhZnQgZnVlciBNZWhyd2VydGRpZW5zdGUgbWJIPC9vcmdhbml6YXRpb24+CiAgICAgIDx0aW1lem9uZT4yPC90aW1lem9uZT4KICAgIDwvZGV2ZWxvcGVyPgoKICAgIDxkZXZlbG9wZXI+CiAgICAgIDxuYW1lPkVyaWMgUHVnaDwvbmFtZT4KICAgICAgPGlkPmVwdWdoPC9pZD4KICAgICAgPGVtYWlsPmVwdWdoQHVwc3RhdGUuY29tPC9lbWFpbD4KICAgICAgPG9yZ2FuaXphdGlvbj51cHN0YXRlLmNvbTwvb3JnYW5pemF0aW9uPgogICAgPC9kZXZlbG9wZXI+CgogICAgPGRldmVsb3Blcj4KICAgICAgPG5hbWU+QnJpYW4gRS4gRHVuYmFyPC9uYW1lPgogICAgICA8aWQ+YmR1bmJhcjwvaWQ+CiAgICAgIDxlbWFpbD5iZHVuYmFyQGR1bmJhcmNvbnN1bHRpbmcub3JnPC9lbWFpbD4KICAgICAgPG9yZ2FuaXphdGlvbj5kdW5iYXJjb25zdWx0aW5nLm9yZzwvb3JnYW5pemF0aW9uPgogICAgPC9kZXZlbG9wZXI+CgogICAgPGRldmVsb3Blcj4KICAgICAgPG5hbWU+RW1tYW51ZWwgQm91cmc8L25hbWU+CiAgICAgIDxpZD5lYm91cmc8L2lkPgogICAgICA8ZW1haWw+c21hbnV4QGxmanIubmV0PC9lbWFpbD4KICAgIDwvZGV2ZWxvcGVyPgoJCiAgICA8ZGV2ZWxvcGVyPgogICAgICA8bmFtZT5PbGl2ZXIgSGVnZXI8L25hbWU+CiAgICAgIDxpZD5vaGVnZXI8L2lkPgogICAgICA8ZW1haWw+b2xpdmVyLmhlZ2VyQHQtb25saW5lLmRlPC9lbWFpbD4KICAgICAgPG9yZ2FuaXphdGlvbj5Vbml2ZXJzaXR5IE1hcmJ1cmc8L29yZ2FuaXphdGlvbj4KICAgICAgPHRpbWV6b25lPisxPC90aW1lem9uZT4KICAgIDwvZGV2ZWxvcGVyPgoKICA8L2RldmVsb3BlcnM+CgogIDxjb250cmlidXRvcnM+CgogICAgPGNvbnRyaWJ1dG9yPgogICAgICA8bmFtZT5K9nJnIFNjaGFpYmxlPC9uYW1lPgogICAgICA8ZW1haWw+am9lcmcuc2NoYWlibGVAZ214LmRlPC9lbWFpbD4KICAgICAgPG9yZ2FuaXphdGlvbj5FbHNhZy1Tb2x1dGlvbnMgQUc8L29yZ2FuaXphdGlvbj4KICAgICAgPHRpbWV6b25lPisxPC90aW1lem9uZT4KICAgIDwvY29udHJpYnV0b3I+CgogICAgPGNvbnRyaWJ1dG9yPgogICAgICA8bmFtZT5Lb25zdGFudGluIFNoYXBvc2huaWtvdjwvbmFtZT4KICAgICAgPGVtYWlsPmtzaEBzY2FuZC5jb208L2VtYWlsPgogICAgICA8b3JnYW5pemF0aW9uPnNjYW5kLmNvbTwvb3JnYW5pemF0aW9uPgogICAgPC9jb250cmlidXRvcj4KCiAgICA8Y29udHJpYnV0b3I+CiAgICAgIDxuYW1lPkphbWllIE0uIEd1aWxsZW1ldHRlPC9uYW1lPgogICAgICA8ZW1haWw+Sk1HdWlsbGVtZXR0ZUBnbWFpbC5jb208L2VtYWlsPgogICAgICA8b3JnYW5pemF0aW9uPlREIEJhbms8L29yZ2FuaXphdGlvbj4KICAgIDwvY29udHJpYnV0b3I+CgogIDwvY29udHJpYnV0b3JzPgoKICA8ZGVwZW5kZW5jaWVzPgogICAgPGRlcGVuZGVuY3k+CiAgICAgIDxncm91cElkPmNvbW1vbnMtY29sbGVjdGlvbnM8L2dyb3VwSWQ+CiAgICAgIDxhcnRpZmFjdElkPmNvbW1vbnMtY29sbGVjdGlvbnM8L2FydGlmYWN0SWQ+CiAgICAgIDx2ZXJzaW9uPjMuMTwvdmVyc2lvbj4KICAgICAgPHByb3BlcnRpZXM+CiAgICAgICAgPHdhci5idW5kbGU+dHJ1ZTwvd2FyLmJ1bmRsZT4KICAgICAgPC9wcm9wZXJ0aWVzPgogICAgPC9kZXBlbmRlbmN5PgoKICAgIDxkZXBlbmRlbmN5PgogICAgICA8Z3JvdXBJZD5jb21tb25zLWxhbmc8L2dyb3VwSWQ+CiAgICAgIDxhcnRpZmFjdElkPmNvbW1vbnMtbGFuZzwvYXJ0aWZhY3RJZD4KICAgICAgPHZlcnNpb24+Mi4xPC92ZXJzaW9uPgogICAgICA8cHJvcGVydGllcz4KICAgICAgICA8d2FyLmJ1bmRsZT50cnVlPC93YXIuYnVuZGxlPgogICAgICA8L3Byb3BlcnRpZXM+CiAgICA8L2RlcGVuZGVuY3k+CgogICAgPGRlcGVuZGVuY3k+CiAgICAgIDxncm91cElkPmRvbTRqPC9ncm91cElkPgogICAgICA8YXJ0aWZhY3RJZD5kb200ajwvYXJ0aWZhY3RJZD4KICAgICAgPHZlcnNpb24+MS40PC92ZXJzaW9uPgogICAgPC9kZXBlbmRlbmN5PgoKICAgIDxkZXBlbmRlbmN5PgogICAgICA8Z3JvdXBJZD5jb21tb25zLWxvZ2dpbmc8L2dyb3VwSWQ+CiAgICAgIDxhcnRpZmFjdElkPmNvbW1vbnMtbG9nZ2luZy1hcGk8L2FydGlmYWN0SWQ+CiAgICAgIDx2ZXJzaW9uPjEuMC40PC92ZXJzaW9uPgogICAgICA8cHJvcGVydGllcz4KICAgICAgICA8d2FyLmJ1bmRsZT50cnVlPC93YXIuYnVuZGxlPgogICAgICA8L3Byb3BlcnRpZXM+CiAgICA8L2RlcGVuZGVuY3k+CgogICAgPGRlcGVuZGVuY3k+CiAgICAgPGdyb3VwSWQ+Y29tbW9ucy1kaWdlc3RlcjwvZ3JvdXBJZD4KICAgICAgPGFydGlmYWN0SWQ+Y29tbW9ucy1kaWdlc3RlcjwvYXJ0aWZhY3RJZD4KICAgICAgPHZlcnNpb24+MS42PC92ZXJzaW9uPgogICAgICA8cHJvcGVydGllcz4KICAgICAgICA8d2FyLmJ1bmRsZT50cnVlPC93YXIuYnVuZGxlPgogICAgICA8L3Byb3BlcnRpZXM+CiAgICA8L2RlcGVuZGVuY3k+CgogICAgPGRlcGVuZGVuY3k+CiAgICAgIDxncm91cElkPmNvbW1vbnMtYmVhbnV0aWxzPC9ncm91cElkPgogICAgICA8YXJ0aWZhY3RJZD5jb21tb25zLWJlYW51dGlscy1jb3JlPC9hcnRpZmFjdElkPgogICAgICA8dmVyc2lvbj4xLjcuMDwvdmVyc2lvbj4KICAgICAgPHByb3BlcnRpZXM+CiAgICAgICAgPHdhci5idW5kbGU+dHJ1ZTwvd2FyLmJ1bmRsZT4KICAgICAgPC9wcm9wZXJ0aWVzPgogICAgPC9kZXBlbmRlbmN5PgoKICAgIDxkZXBlbmRlbmN5PgogICAgICA8Z3JvdXBJZD5jb21tb25zLWNvZGVjPC9ncm91cElkPgogICAgICA8YXJ0aWZhY3RJZD5jb21tb25zLWNvZGVjPC9hcnRpZmFjdElkPgogICAgICA8dmVyc2lvbj4xLjM8L3ZlcnNpb24+CiAgICAgIDxwcm9wZXJ0aWVzPgogICAgICAgIDx3YXIuYnVuZGxlPnRydWU8L3dhci5idW5kbGU+CiAgICAgIDwvcHJvcGVydGllcz4KICAgIDwvZGVwZW5kZW5jeT4KCiAgICA8ZGVwZW5kZW5jeT4KICAgICAgPGdyb3VwSWQ+eGVyY2VzPC9ncm91cElkPgogICAgICA8YXJ0aWZhY3RJZD54ZXJjZXM8L2FydGlmYWN0SWQ+CiAgICAgIDx2ZXJzaW9uPjIuMi4xPC92ZXJzaW9uPgogICAgICA8dXJsPmh0dHA6Ly94bWwuYXBhY2hlLm9yZy94ZXJjZXMyLWovPC91cmw+CiAgICAgIDxwcm9wZXJ0aWVzPgogICAgICAgIDx3YXIuYnVuZGxlPnRydWU8L3dhci5idW5kbGU+CiAgICAgIDwvcHJvcGVydGllcz4KICAgIDwvZGVwZW5kZW5jeT4KCiAgICA8ZGVwZW5kZW5jeT4KICAgICAgPGdyb3VwSWQ+eGFsYW48L2dyb3VwSWQ+CiAgICAgIDxhcnRpZmFjdElkPnhhbGFuPC9hcnRpZmFjdElkPgogICAgICA8dmVyc2lvbj4yLjcuMDwvdmVyc2lvbj4KICAgICAgPHVybD5odHRwOi8veG1sLmFwYWNoZS5vcmcveGFsYW4tai88L3VybD4KICAgICAgPHByb3BlcnRpZXM+CiAgICAgICAgPHdhci5idW5kbGU+dHJ1ZTwvd2FyLmJ1bmRsZT4KICAgICAgPC9wcm9wZXJ0aWVzPgogICAgPC9kZXBlbmRlbmN5PgoKICAgIDxkZXBlbmRlbmN5PgogICAgICA8Z3JvdXBJZD54bWwtYXBpczwvZ3JvdXBJZD4KICAgICAgPGFydGlmYWN0SWQ+eG1sLWFwaXM8L2FydGlmYWN0SWQ+CiAgICAgIDx2ZXJzaW9uPjIuMC4yPC92ZXJzaW9uPgogICAgICA8dXJsPmh0dHA6Ly94bWwuYXBhY2hlLm9yZy9jb21tb25zLzwvdXJsPgogICAgICA8cHJvcGVydGllcz4KICAgICAgICA8d2FyLmJ1bmRsZT50cnVlPC93YXIuYnVuZGxlPgogICAgICA8L3Byb3BlcnRpZXM+CiAgICA8L2RlcGVuZGVuY3k+CgogICAgPGRlcGVuZGVuY3k+CiAgICAgIDxncm91cElkPnNlcnZsZXRhcGk8L2dyb3VwSWQ+CiAgICAgIDxhcnRpZmFjdElkPnNlcnZsZXRhcGk8L2FydGlmYWN0SWQ+CiAgICAgIDx2ZXJzaW9uPjIuMzwvdmVyc2lvbj4KICAgIDwvZGVwZW5kZW5jeT4KCiAgICA8IS0tIE5lZWRlZCBmb3IgdGVzdGluZyAtLT4KCiAgICA8ZGVwZW5kZW5jeT4KICAgICAgPGdyb3VwSWQ+c3BpY2U8L2dyb3VwSWQ+CiAgICAgIDxhcnRpZmFjdElkPnNwaWNlLWpuZGlraXQ8L2FydGlmYWN0SWQ+CiAgICAgIDx2ZXJzaW9uPjEuMTwvdmVyc2lvbj4KICAgICAgPHByb3BlcnRpZXM+CiAgICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgogICAgICA8L3Byb3BlcnRpZXM+CiAgICA8L2RlcGVuZGVuY3k+CgogICAgPGRlcGVuZGVuY3k+CiAgICAgIDxncm91cElkPmNvbW1vbnMtZGJjcDwvZ3JvdXBJZD4KICAgICAgPGFydGlmYWN0SWQ+Y29tbW9ucy1kYmNwPC9hcnRpZmFjdElkPgogICAgICA8dmVyc2lvbj4xLjE8L3ZlcnNpb24+CiAgICAgIDxwcm9wZXJ0aWVzPgogICAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KICAgICAgPC9wcm9wZXJ0aWVzPgogICAgPC9kZXBlbmRlbmN5PgoKICAgIDxkZXBlbmRlbmN5PgogICAgICA8Z3JvdXBJZD5jb21tb25zLXBvb2w8L2dyb3VwSWQ+CiAgICAgIDxhcnRpZmFjdElkPmNvbW1vbnMtcG9vbDwvYXJ0aWZhY3RJZD4KICAgICAgPHZlcnNpb24+MS4xPC92ZXJzaW9uPgogICAgICA8cHJvcGVydGllcz4KICAgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CiAgICAgIDwvcHJvcGVydGllcz4KICAgIDwvZGVwZW5kZW5jeT4KCiAgICA8ZGVwZW5kZW5jeT4KICAgICAgPGdyb3VwSWQ+aHNxbGRiPC9ncm91cElkPgogICAgICA8YXJ0aWZhY3RJZD5oc3FsZGI8L2FydGlmYWN0SWQ+CiAgICAgIDx2ZXJzaW9uPjEuNy4yLjI8L3ZlcnNpb24+CiAgICAgIDxwcm9wZXJ0aWVzPgogICAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KICAgICAgPC9wcm9wZXJ0aWVzPgogICAgPC9kZXBlbmRlbmN5PgoKICAgIDxkZXBlbmRlbmN5PgogICAgICA8Z3JvdXBJZD5kYnVuaXQ8L2dyb3VwSWQ+CiAgICAgIDxhcnRpZmFjdElkPmRidW5pdDwvYXJ0aWZhY3RJZD4KICAgICAgPHZlcnNpb24+Mi4xPC92ZXJzaW9uPgogICAgICA8cHJvcGVydGllcz4KICAgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CiAgICAgIDwvcHJvcGVydGllcz4KICAgIDwvZGVwZW5kZW5jeT4KCiAgICA8ZGVwZW5kZW5jeT4KICAgICAgPGdyb3VwSWQ+anVuaXQ8L2dyb3VwSWQ+CiAgICAgIDxhcnRpZmFjdElkPmp1bml0PC9hcnRpZmFjdElkPgogICAgICA8dmVyc2lvbj4zLjguMTwvdmVyc2lvbj4KICAgICAgPHByb3BlcnRpZXM+CiAgICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgogICAgICA8L3Byb3BlcnRpZXM+CiAgICA8L2RlcGVuZGVuY3k+CgogICAgPGRlcGVuZGVuY3k+CiAgICAgIDxncm91cElkPmp1bml0LWFkZG9uczwvZ3JvdXBJZD4KICAgICAgPGFydGlmYWN0SWQ+anVuaXQtYWRkb25zPC9hcnRpZmFjdElkPgogICAgICA8dmVyc2lvbj4xLjQ8L3ZlcnNpb24+CiAgICAgIDxwcm9wZXJ0aWVzPgogICAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KICAgICAgPC9wcm9wZXJ0aWVzPgogICAgPC9kZXBlbmRlbmN5PgoKICAgIDxkZXBlbmRlbmN5PgogICAgICA8Z3JvdXBJZD5tb2Nrb2JqZWN0czwvZ3JvdXBJZD4KICAgICAgPGFydGlmYWN0SWQ+bW9ja29iamVjdHMtY29yZTwvYXJ0aWZhY3RJZD4KICAgICAgPHZlcnNpb24+MC4wOTwvdmVyc2lvbj4KICAgICAgPHByb3BlcnRpZXM+CiAgICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgogICAgICA8L3Byb3BlcnRpZXM+CiAgICA8L2RlcGVuZGVuY3k+CgogICAgPGRlcGVuZGVuY3k+CiAgICAgIDxncm91cElkPm1vY2tvYmplY3RzPC9ncm91cElkPgogICAgICA8YXJ0aWZhY3RJZD5tb2Nrb2JqZWN0cy1qZGsxLjQtajJlZTEuMzwvYXJ0aWZhY3RJZD4KICAgICAgPHZlcnNpb24+MC4wOTwvdmVyc2lvbj4KICAgICAgPHByb3BlcnRpZXM+CiAgICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgogICAgICA8L3Byb3BlcnRpZXM+CiAgICA8L2RlcGVuZGVuY3k+CgogICAgPGRlcGVuZGVuY3k+CiAgICAgIDxncm91cElkPm1hdmVuLXBsdWdpbnM8L2dyb3VwSWQ+CiAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXRhc2tzLXBsdWdpbjwvYXJ0aWZhY3RJZD4KICAgICAgPHZlcnNpb24+MS4xLjA8L3ZlcnNpb24+CiAgICAgIDx1cmw+aHR0cDovL21hdmVuLXBsdWdpbnMuc291cmNlZm9yZ2UubmV0L21hdmVuLXRhc2tzLXBsdWdpbi88L3VybD4KICAgICAgPHR5cGU+cGx1Z2luPC90eXBlPgogICAgPC9kZXBlbmRlbmN5PgoKICAgIDxkZXBlbmRlbmN5PgogICAgICA8Z3JvdXBJZD5tYXZlbi1wbHVnaW5zPC9ncm91cElkPgogICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1maW5kYnVncy1wbHVnaW48L2FydGlmYWN0SWQ+CiAgICAgIDx2ZXJzaW9uPjAuOC40PC92ZXJzaW9uPgogICAgICA8dXJsPmh0dHA6Ly9tYXZlbi1wbHVnaW5zLnNvdXJjZWZvcmdlLm5ldC9tYXZlbi1maW5kYnVncy1wbHVnaW4vPC91cmw+CiAgICAgIDx0eXBlPnBsdWdpbjwvdHlwZT4KICAgIDwvZGVwZW5kZW5jeT4KCiAgPC9kZXBlbmRlbmNpZXM+CgogIDxidWlsZD4KICAgIDxuYWdFbWFpbEFkZHJlc3M+Y29tbW9ucy1kZXZAamFrYXJ0YS5hcGFjaGUub3JnPC9uYWdFbWFpbEFkZHJlc3M+CgogICAgPHNvdXJjZURpcmVjdG9yeT5zcmMvamF2YTwvc291cmNlRGlyZWN0b3J5PgogICAgPHVuaXRUZXN0U291cmNlRGlyZWN0b3J5PnNyYy90ZXN0PC91bml0VGVzdFNvdXJjZURpcmVjdG9yeT4KCiAgICA8IS0tIFVuaXQgdGVzdCBjbGFzc2VzIC0tPgogICAgPHVuaXRUZXN0PgogICAgICA8aW5jbHVkZXM+CiAgICAgICAgPGluY2x1ZGU+KiovKlRlc3QqLmphdmE8L2luY2x1ZGU+CiAgICAgIDwvaW5jbHVkZXM+CiAgICAgIDxleGNsdWRlcz4KICAgICAgICA8ZXhjbHVkZT4qKi9UZXN0QmFzZVByb3BlcnRpZXNDb25maWd1cmF0aW9uLmphdmE8L2V4Y2x1ZGU+CiAgICAgICAgPGV4Y2x1ZGU+KiovTm9uU3RyaW5nVGVzdEhvbGRlci5qYXZhPC9leGNsdWRlPgogICAgICAgIDxleGNsdWRlPioqL1Rlc3RBYnN0cmFjdENvbmZpZ3VyYXRpb24uamF2YTwvZXhjbHVkZT4KICAgICAgPC9leGNsdWRlcz4KICAgICAgPHJlc291cmNlcz4KICAgICAgICA8cmVzb3VyY2U+CiAgICAgICAgICA8ZGlyZWN0b3J5PmNvbmY8L2RpcmVjdG9yeT4KICAgICAgICAgIDxpbmNsdWRlcz4KICAgICAgICAgICAgPGluY2x1ZGU+Ki54bWw8L2luY2x1ZGU+CiAgICAgICAgICA8L2luY2x1ZGVzPgogICAgICAgIDwvcmVzb3VyY2U+CiAgICAgICAgPHJlc291cmNlPgogICAgICAgICAgPGRpcmVjdG9yeT5jb25mPC9kaXJlY3Rvcnk+CiAgICAgICAgICA8aW5jbHVkZXM+CiAgICAgICAgICAgIDxpbmNsdWRlPnRlc3RDbGFzc3BhdGgucHJvcGVydGllczwvaW5jbHVkZT4KICAgICAgICAgICAgPGluY2x1ZGU+dGVzdGRiLnNjcmlwdDwvaW5jbHVkZT4KICAgICAgICAgICAgPGluY2x1ZGU+Ki5wcm9wZXJ0aWVzPC9pbmNsdWRlPgogICAgICAgICAgICA8aW5jbHVkZT4qLmR0ZDwvaW5jbHVkZT4KICAgICAgICAgIDwvaW5jbHVkZXM+CiAgICAgICAgPC9yZXNvdXJjZT4KICAgICAgICA8cmVzb3VyY2U+CiAgICAgICAgICA8ZGlyZWN0b3J5PmNvbmY8L2RpcmVjdG9yeT4KICAgICAgICAgIDx0YXJnZXRQYXRoPm9yZy9hcGFjaGUvY29tbW9ucy9jb25maWd1cmF0aW9uPC90YXJnZXRQYXRoPgogICAgICAgICAgPGluY2x1ZGVzPgogICAgICAgICAgICA8aW5jbHVkZT50ZXN0LnByb3BlcnRpZXM8L2luY2x1ZGU+CiAgICAgICAgICAgIDxpbmNsdWRlPmluY2x1ZGUucHJvcGVydGllczwvaW5jbHVkZT4KICAgICAgICAgIDwvaW5jbHVkZXM+CiAgICAgICAgPC9yZXNvdXJjZT4KICAgICAgICA8cmVzb3VyY2U+CiAgICAgICAgICA8ZGlyZWN0b3J5PmNvbmYvY29uZmlnPC9kaXJlY3Rvcnk+CiAgICAgICAgICA8dGFyZ2V0UGF0aD5jb25maWc8L3RhcmdldFBhdGg+CiAgICAgICAgICA8aW5jbHVkZXM+CiAgICAgICAgICAgIDxpbmNsdWRlPioqLyoucHJvcGVydGllczwvaW5jbHVkZT4KICAgICAgICAgIDwvaW5jbHVkZXM+CiAgICAgICAgPC9yZXNvdXJjZT4KICAgICAgPC9yZXNvdXJjZXM+CiAgICA8L3VuaXRUZXN0PgoKICAgIDxyZXNvdXJjZXM+CiAgICAgIDxyZXNvdXJjZT4KICAgICAgICA8ZGlyZWN0b3J5PmNvbmY8L2RpcmVjdG9yeT4KICAgICAgICA8aW5jbHVkZXM+CiAgICAgICAgICA8aW5jbHVkZT5kaWdlc3RlclJ1bGVzLnhtbDwvaW5jbHVkZT4KICAgICAgICAgIDxpbmNsdWRlPnByb3BlcnRpZXMuZHRkPC9pbmNsdWRlPgogICAgICAgIDwvaW5jbHVkZXM+CiAgICAgIDwvcmVzb3VyY2U+CiAgICAgIDxyZXNvdXJjZT4KICAgICAgICA8ZGlyZWN0b3J5PiR7YmFzZWRpcn08L2RpcmVjdG9yeT4KICAgICAgICA8aW5jbHVkZXM+CiAgICAgICAgICA8aW5jbHVkZT5OT1RJQ0UudHh0PC9pbmNsdWRlPgogICAgICAgIDwvaW5jbHVkZXM+CiAgICAgICAgPHRhcmdldFBhdGg+TUVUQS1JTkY8L3RhcmdldFBhdGg+CiAgICAgIDwvcmVzb3VyY2U+CiAgICA8L3Jlc291cmNlcz4KICA8L2J1aWxkPgogIDxyZXBvcnRzPgogICAgPHJlcG9ydD5tYXZlbi1qZGVwZW5kLXBsdWdpbjwvcmVwb3J0PgogICAgPHJlcG9ydD5tYXZlbi1jaGVja3N0eWxlLXBsdWdpbjwvcmVwb3J0PgogICAgPHJlcG9ydD5tYXZlbi1jaGFuZ2VzLXBsdWdpbjwvcmVwb3J0PgogICAgPHJlcG9ydD5tYXZlbi1jaGFuZ2Vsb2ctcGx1Z2luPC9yZXBvcnQ+CiAgICA8cmVwb3J0Pm1hdmVuLWZpbGUtYWN0aXZpdHktcGx1Z2luPC9yZXBvcnQ+CiAgICA8cmVwb3J0Pm1hdmVuLWRldmVsb3Blci1hY3Rpdml0eS1wbHVnaW48L3JlcG9ydD4KICAgIDxyZXBvcnQ+bWF2ZW4tamF2YWRvYy1wbHVnaW48L3JlcG9ydD4KICAgIDxyZXBvcnQ+bWF2ZW4tanhyLXBsdWdpbjwvcmVwb3J0PgogICAgPHJlcG9ydD5tYXZlbi1qdW5pdC1yZXBvcnQtcGx1Z2luPC9yZXBvcnQ+CiAgICA8cmVwb3J0Pm1hdmVuLXRhc2tsaXN0LXBsdWdpbjwvcmVwb3J0PgogICAgPHJlcG9ydD5tYXZlbi1wbWQtcGx1Z2luPC9yZXBvcnQ+CiAgICA8cmVwb3J0Pm1hdmVuLWZhcS1wbHVnaW48L3JlcG9ydD4KICAgIDxyZXBvcnQ+bWF2ZW4tamNvdmVyYWdlLXBsdWdpbjwvcmVwb3J0PgogICAgPHJlcG9ydD5tYXZlbi10YXNrcy1wbHVnaW48L3JlcG9ydD4KICAgIDwhLS0gQ29tbWVudGVkIG91dCwgZG9lcyBub3QgcnVuIG9uIEpESyAxLjMKICAgIDxyZXBvcnQ+bWF2ZW4tZmluZGJ1Z3MtcGx1Z2luPC9yZXBvcnQ+IC0tPgogIDwvcmVwb3J0cz4KPC9wcm9qZWN0Pgo=