PGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+PHRpdGxlPkQtQnVzIEZBUTwvdGl0bGU+PG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43NS4yIj48L2hlYWQ+PGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPjxkaXYgY2xhc3M9ImFydGljbGUiIHRpdGxlPSJELUJ1cyBGQVEiPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiPjxhIG5hbWU9ImluZGV4Ij48L2E+RC1CdXMgRkFRPC9oMj48L2Rpdj48ZGl2PjxkaXYgY2xhc3M9ImF1dGhvcmdyb3VwIj48ZGl2IGNsYXNzPSJhdXRob3IiPjxoMyBjbGFzcz0iYXV0aG9yIj48c3BhbiBjbGFzcz0iZmlyc3RuYW1lIj5IYXZvYzwvc3Bhbj4gPHNwYW4gY2xhc3M9InN1cm5hbWUiPlBlbm5pbmd0b248L3NwYW4+PC9oMz48ZGl2IGNsYXNzPSJhZmZpbGlhdGlvbiI+PHNwYW4gY2xhc3M9Im9yZ25hbWUiPlJlZCBIYXQsIEluYy48YnI+PC9zcGFuPjxkaXYgY2xhc3M9ImFkZHJlc3MiPjxwPjxicj4KCaCgoKA8Y29kZSBjbGFzcz0iZW1haWwiPiZsdDs8YSBjbGFzcz0iZW1haWwiIGhyZWY9Im1haWx0bzpocEBwb2JveC5jb20iPmhwQHBvYm94LmNvbTwvYT4mZ3Q7PC9jb2RlPjxicj4KCaCgPC9wPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImF1dGhvciI+PGgzIGNsYXNzPSJhdXRob3IiPjxzcGFuIGNsYXNzPSJmaXJzdG5hbWUiPkRhdmlkPC9zcGFuPiA8c3BhbiBjbGFzcz0ib3RoZXJuYW1lIj5BPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3VybmFtZSI+V2hlZWxlcjwvc3Bhbj48L2gzPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXY+PHAgY2xhc3M9InJlbGVhc2VpbmZvIj5WZXJzaW9uIDAuMzwvcD48L2Rpdj48L2Rpdj48aHI+PC9kaXY+PGRpdiBjbGFzcz0icWFuZGFzZXQiIHRpdGxlPSJGcmVxdWVudGx5IEFza2VkIFF1ZXN0aW9ucyI+PGEgbmFtZT0iZmFxIj48L2E+PGRsPjxkdD4xLiA8YSBocmVmPSIjaWRwMjQ4ODA2NDAiPgogICAgICAgICAgV2hhdCBpcyBELUJ1cz8KICAgICAgICA8L2E+PC9kdD48ZHQ+Mi4gPGEgaHJlZj0iI2lkcDI4MTc1MTA0Ij4KICAgICAgICAgIElzIEQtQnVzIHN0YWJsZS9maW5pc2hlZD8KICAgICAgICA8L2E+PC9kdD48ZHQ+My4gPGEgaHJlZj0iI2lkcDI4MTc4MjcyIj4KICAgICAgICAgIEhvdyBpcyB0aGUgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIGxpY2Vuc2VkPyBDYW4gSSB1c2UgaXQgaW4gCiAgICAgICAgICBwcm9wcmlldGFyeSBhcHBsaWNhdGlvbnM/CiAgICAgICAgPC9hPjwvZHQ+PGR0PjQuIDxhIGhyZWY9IiNpZHAyNDQ4MDk2MCI+CiAgICAgICAgICBXaGF0IGlzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYSBidXMgbmFtZSwgYW5kIG9iamVjdCBwYXRoLCAKICAgICAgICAgIGFuZCBhbiBpbnRlcmZhY2U/CiAgICAgICAgPC9hPjwvZHQ+PGR0PjUuIDxhIGhyZWY9IiNzZXJ2aWNlIj4KICAgICAgICAgIFdoYXQgaXMgYSAic2VydmljZSI/CiAgICAgICAgPC9hPjwvZHQ+PGR0PjYuIDxhIGhyZWY9IiNjb21wb25lbnRzIj4KICAgICAgICAgIElzIEQtQnVzIGEgImNvbXBvbmVudCBzeXN0ZW0iPwogICAgICAgIDwvYT48L2R0PjxkdD43LiA8YSBocmVmPSIjc3BlZWQiPgogICAgICAgICAgSG93IGZhc3QgaXMgdGhlIEQtQnVzIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbj8KICAgICAgICA8L2E+PC9kdD48ZHQ+OC4gPGEgaHJlZj0iI3NpemUiPgogICAgICAgICAgSG93IGxhcmdlIGlzIHRoZSBELUJ1cyByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24/CiAgICAgICAgPC9hPjwvZHQ+PGR0PjkuIDxhIGhyZWY9IiNvdGhlci1pcGMiPgogICAgICAgICAgSG93IGRvZXMgRC1CdXMgZGlmZmVyIGZyb20gb3RoZXIgaW50ZXJwcm9jZXNzIGNvbW11bmljYXRpb24KICAgICAgICAgIG9yIG5ldHdvcmtpbmcgcHJvdG9jb2xzPwogICAgICAgIDwvYT48L2R0PjxkdD4xMC4gPGEgaHJlZj0iI2NvcmJhIj4KICAgICAgICAgIEhvdyBkb2VzIEQtQnVzIGRpZmZlciBmcm9tIENPUkJBPwogICAgICAgIDwvYT48L2R0PjxkdD4xMS4gPGEgaHJlZj0iI3htbHJwY3NvYXAiPgogICAgICAgICAgSG93IGRvZXMgRC1CdXMgZGlmZmVyIGZyb20gWE1MLVJQQyBhbmQgU09BUD8KICAgICAgICA8L2E+PC9kdD48ZHQ+MTIuIDxhIGhyZWY9IiNkY2UiPgogICAgICAgICAgSG93IGRvZXMgRC1CdXMgZGlmZmVyIGZyb20gRENFPwogICAgICAgIDwvYT48L2R0PjxkdD4xMy4gPGEgaHJlZj0iI2Rjb20iPgogICAgICAgICAgSG93IGRvZXMgRC1CdXMgZGlmZmVyIGZyb20gRENPTSBhbmQgQ09NPwogICAgICAgIDwvYT48L2R0PjxkdD4xNC4gPGEgaHJlZj0iI2ludGVybmV0LWNvbW11bmljYXRpb25zLWVuZ2luZSI+CiAgICAgICAgICBIb3cgZG9lcyBELUJ1cyBkaWZmZXIgZnJvbSBaZXJvQydzIEludGVybmV0IENvbW11bmljYXRpb25zIEVuZ2luZSAoSWNlKQogICAgICAgIDwvYT48L2R0PjxkdD4xNS4gPGEgaHJlZj0iI2ludGVyLWNsaWVudC1leGNoYW5nZSI+CiAgICAgICAgICBIb3cgZG9lcyBELUJ1cyBkaWZmZXIgZnJvbSBJbnRlci1DbGllbnQgRXhjaGFuZ2UgKElDRSk/CiAgICAgICAgPC9hPjwvZHQ+PGR0PjE2LiA8YSBocmVmPSIjZGNvcCI+CiAgICAgICAgICBIb3cgZG9lcyBELUJ1cyBkaWZmZXIgZnJvbSBEQ09QPwogICAgICAgIDwvYT48L2R0PjxkdD4xNy4gPGEgaHJlZj0iI3lldC1tb3JlLWlwYyI+CiAgICAgICAgICBIb3cgZG9lcyBELUJ1cyBkaWZmZXIgZnJvbSBbeWV0IG1vcmUgSVBDIG1lY2hhbmlzbXNdPwogICAgICAgIDwvYT48L2R0PjxkdD4xOC4gPGEgaHJlZj0iI3doaWNoLWlwYyI+CiAgICAgICAgICBXaGljaCBJUEMgbWVjaGFuaXNtIHNob3VsZCBJIHVzZT8KICAgICAgICA8L2E+PC9kdD48ZHQ+MTkuIDxhIGhyZWY9IiNpZHAyOTI4MjcwNCI+CiAgICAgICAgICBIb3cgY2FuIEkgc3VibWl0IGEgYnVnIG9yIHBhdGNoPwogICAgICAgIDwvYT48L2R0PjwvZGw+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIHN1bW1hcnk9IlEgYW5kIEEgU2V0Ij48Y29sIGFsaWduPSJsZWZ0IiB3aWR0aD0iMSUiPjxjb2w+PHRib2R5Pjx0ciBjbGFzcz0icXVlc3Rpb24iIHRpdGxlPSIxLiI+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PGEgbmFtZT0iaWRwMjQ4ODA2NDAiPjwvYT48YSBuYW1lPSJpZHAyNDg4MDg5NiI+PC9hPjxwPjxiPjEuPC9iPjwvcD48L3RkPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxwPgogICAgICAgICAgV2hhdCBpcyBELUJ1cz8KICAgICAgICA8L3A+PC90ZD48L3RyPjx0ciBjbGFzcz0iYW5zd2VyIj48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48L3RkPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxwPgogICAgICAgICAgVGhpcyBpcyBwcm9iYWJseSBiZXN0IGFuc3dlcmVkIGJ5IHJlYWRpbmcgdGhlIEQtQnVzIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iZGJ1cy10dXRvcmlhbC5odG1sIiB0YXJnZXQ9Il90b3AiPnR1dG9yaWFsPC9hPiBvcgogICAgICAgICAgdGhlIGludHJvZHVjdGlvbiB0byB0aGUgPGEgY2xhc3M9InVsaW5rIiBocmVmPSJkYnVzLXNwZWNpZmljYXRpb24uaHRtbCIgdGFyZ2V0PSJfdG9wIj5zcGVjaWZpY2F0aW9uPC9hPi4gSW4KICAgICAgICAgIHNob3J0LCBpdCBpcyBhIHN5c3RlbSBjb25zaXN0aW5nIG9mIDEpIGEgd2lyZSBwcm90b2NvbCBmb3IgZXhwb3NpbmcgYQogICAgICAgICAgdHlwaWNhbCBvYmplY3Qtb3JpZW50ZWQgbGFuZ3VhZ2UvZnJhbWV3b3JrIHRvIG90aGVyIGFwcGxpY2F0aW9uczsgYW5kCiAgICAgICAgICAyKSBhIGJ1cyBkYWVtb24gdGhhdCBhbGxvd3MgYXBwbGljYXRpb25zIHRvIGZpbmQgYW5kIG1vbml0b3Igb25lIGFub3RoZXIuCiAgICAgICAgICBQaHJhc2VkIGRpZmZlcmVudGx5LCBELUJ1cyBpcyAxKSBhbiBpbnRlcnByb2Nlc3MgY29tbXVuaWNhdGlvbiAoSVBDKSBzeXN0ZW0gYW5kIDIpIHNvbWUgaGlnaGVyLWxldmVsIAogICAgICAgICAgc3RydWN0dXJlIChsaWZlY3ljbGUgdHJhY2tpbmcsIHNlcnZpY2UgYWN0aXZhdGlvbiwgc2VjdXJpdHkgcG9saWN5KSBwcm92aWRlZCBieSB0d28gYnVzIGRhZW1vbnMsCiAgICAgICAgICBvbmUgc3lzdGVtd2lkZSBhbmQgb25lIHBlci11c2VyLXNlc3Npb24uCiAgICAgICAgPC9wPjwvdGQ+PC90cj48dHIgY2xhc3M9InF1ZXN0aW9uIiB0aXRsZT0iMi4iPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxhIG5hbWU9ImlkcDI4MTc1MTA0Ij48L2E+PGEgbmFtZT0iaWRwMjgxNzUzNjAiPjwvYT48cD48Yj4yLjwvYj48L3A+PC90ZD48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48cD4KICAgICAgICAgIElzIEQtQnVzIHN0YWJsZS9maW5pc2hlZD8KICAgICAgICA8L3A+PC90ZD48L3RyPjx0ciBjbGFzcz0iYW5zd2VyIj48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48L3RkPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxwPgogICAgICAgICAgVGhlIGxvdy1sZXZlbCBsaWJyYXJ5ICJsaWJkYnVzIiBhbmQgdGhlIHByb3RvY29sIHNwZWNpZmljYXRpb24gYXJlIGNvbnNpZGVyZWQgCiAgICAgICAgICBBQkkgc3RhYmxlLiBUaGUgPGEgY2xhc3M9InVsaW5rIiBocmVmPSJSRUFETUUiIHRhcmdldD0iX3RvcCI+UkVBRE1FPC9hPgogICAgICAgICAgZmlsZSBoYXMgYSBkaXNjdXNzaW9uIG9mIHRoZSBBUEkvQUJJIHN0YWJpbGl0eSBndWFyYW50ZWVzLgogICAgICAgICAgSGlnaGVyLWxldmVsIGJpbmRpbmdzIChzdWNoIGFzIHRob3NlIGZvciBRdCwgR0xpYiwgUHl0aG9uLCBKYXZhLCBDIykgZWFjaCAKICAgICAgICAgIGhhdmUgdGhlaXIgb3duIHJlbGVhc2Ugc2NoZWR1bGVzIGFuZCBkZWdyZWUgb2YgbWF0dXJpdHksIG5vdCBsaW5rZWQgdG8gCiAgICAgICAgICB0aGUgbG93LWxldmVsIGxpYnJhcnkgYW5kIGJ1cyBkYWVtb24gcmVsZWFzZS4gQ2hlY2sgdGhlIHByb2plY3QgcGFnZSBmb3IKICAgICAgICAgIHRoZSBiaW5kaW5nIHlvdSdyZSBjb25zaWRlcmluZyB0byB1bmRlcnN0YW5kIHRoYXQgcHJvamVjdCdzIHBvbGljaWVzLgogICAgICAgIDwvcD48L3RkPjwvdHI+PHRyIGNsYXNzPSJxdWVzdGlvbiIgdGl0bGU9IjMuIj48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48YSBuYW1lPSJpZHAyODE3ODI3MiI+PC9hPjxhIG5hbWU9ImlkcDI4MTc4NTI4Ij48L2E+PHA+PGI+My48L2I+PC9wPjwvdGQ+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PHA+CiAgICAgICAgICBIb3cgaXMgdGhlIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBsaWNlbnNlZD8gQ2FuIEkgdXNlIGl0IGluIAogICAgICAgICAgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zPwogICAgICAgIDwvcD48L3RkPjwvdHI+PHRyIGNsYXNzPSJhbnN3ZXIiPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjwvdGQ+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PHA+CiAgICAgICAgICBUaGUgc2hvcnQgYW5zd2VyIGlzIHllcywgeW91IGNhbiB1c2UgaXQgaW4gcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zLgogICAgICAgICAgWW91IHNob3VsZCByZWFkIHRoZSA8YSBjbGFzcz0idWxpbmsiIGhyZWY9IkNPUFlJTkciIHRhcmdldD0iX3RvcCI+Q09QWUlORzwvYT4gZmlsZSwgd2hpY2gKICAgICAgICAgIG9mZmVycyB5b3UgdGhlIGNob2ljZSBvZiB0d28gbGljZW5zZXMuIFRoZXNlIGFyZSB0aGUgR1BMIGFuZCB0aGUKICAgICAgICAgIEFGTC4gVGhlIEdQTCByZXF1aXJlcyB0aGF0IHlvdXIgYXBwbGljYXRpb24gYmUgbGljZW5zZWQgdW5kZXIgdGhlIEdQTAogICAgICAgICAgYXMgd2VsbC4gVGhlIEFGTCBpcyBhbiAiWC1zdHlsZSIgb3IgIkJTRC1zdHlsZSIgbGljZW5zZSBjb21wYXRpYmxlCiAgICAgICAgICB3aXRoIHByb3ByaWV0YXJ5IGxpY2Vuc2luZywgYnV0IGl0IGRvZXMgaGF2ZSBzb21lIHJlcXVpcmVtZW50czsgaW4KICAgICAgICAgIHBhcnRpY3VsYXIgaXQgcHJvaGliaXRzIHlvdSBmcm9tIGZpbGluZyBhIGxhd3N1aXQgYWxsZWdpbmcgdGhhdCB0aGUKICAgICAgICAgIEQtQnVzIHNvZnR3YXJlIGluZnJpbmdlcyB5b3VyIHBhdGVudHMgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+d2hpbGUgeW91IGNvbnRpbnVlIHRvCiAgICAgICAgICB1c2UgRC1CdXM8L2VtPjwvc3Bhbj4uICBJZiB5b3UncmUgZ29pbmcgdG8gc3VlLCB5b3UgaGF2ZSB0byBzdG9wIHVzaW5nCiAgICAgICAgICB0aGUgc29mdHdhcmUuIFJlYWQgdGhlIGxpY2Vuc2VzIHRvIGRldGVybWluZSB0aGVpciBtZWFuaW5nLCB0aGlzIEZBUQogICAgICAgICAgZW50cnkgaXMgbm90IGludGVuZGVkIHRvIGNoYW5nZSB0aGUgbWVhbmluZyBvciB0ZXJtcyBvZiB0aGUgbGljZW5zZXMuCiAgICAgICAgPC9wPjwvdGQ+PC90cj48dHIgY2xhc3M9InF1ZXN0aW9uIiB0aXRsZT0iNC4iPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxhIG5hbWU9ImlkcDI0NDgwOTYwIj48L2E+PGEgbmFtZT0iaWRwMjQ0ODEyMTYiPjwvYT48cD48Yj40LjwvYj48L3A+PC90ZD48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48cD4KICAgICAgICAgIFdoYXQgaXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBhIGJ1cyBuYW1lLCBhbmQgb2JqZWN0IHBhdGgsIAogICAgICAgICAgYW5kIGFuIGludGVyZmFjZT8KICAgICAgICA8L3A+PC90ZD48L3RyPjx0ciBjbGFzcz0iYW5zd2VyIj48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48L3RkPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxwPgogICAgICAgICAgSWYgeW91IGltYWdpbmUgYSBDKysgcHJvZ3JhbSB0aGF0IGltcGxlbWVudHMgYSBuZXR3b3JrIHNlcnZpY2UsIHRoZW4KICAgICAgICAgIHRoZSBidXMgbmFtZSBpcyB0aGUgaG9zdG5hbWUgb2YgdGhlIGNvbXB1dGVyIHJ1bm5pbmcgdGhpcyBDKysgcHJvZ3JhbSwKICAgICAgICAgIHRoZSBvYmplY3QgcGF0aCBpcyBhIEMrKyBvYmplY3QgaW5zdGFuY2UgcG9pbnRlciwgYW5kIGFuIGludGVyZmFjZSBpcwogICAgICAgICAgYSBDKysgY2xhc3MgKGEgcHVyZSB2aXJ0dWFsIG9yIGFic3RyYWN0IGNsYXNzLCB0byBiZSBleGFjdCkuCiAgICAgICAgPC9wPjxwPgogICAgICAgICAgSW4gSmF2YSB0ZXJtcywgdGhlIG9iamVjdCBwYXRoIGlzIGFuIG9iamVjdCByZWZlcmVuY2UsIAogICAgICAgICAgYW5kIGFuIGludGVyZmFjZSBpcyBhIEphdmEgaW50ZXJmYWNlLgogICAgICAgIDwvcD48cD4KICAgICAgICAgIFBlb3BsZSBnZXQgY29uZnVzZWQgYmVjYXVzZSBpZiB0aGV5IHdyaXRlIGFuIGFwcGxpY2F0aW9uIAogICAgICAgICAgd2l0aCBhIHNpbmdsZSBvYmplY3QgaW5zdGFuY2UgYW5kIGEgc2luZ2xlIGludGVyZmFjZSwgCiAgICAgICAgICB0aGVuIHRoZSBidXMgbmFtZSwgb2JqZWN0IHBhdGgsIGFuZCBpbnRlcmZhY2UgbG9vayAKICAgICAgICAgIHJlZHVuZGFudC4gRm9yIGV4YW1wbGUsIHlvdSBtaWdodCBoYXZlIGEgdGV4dCBlZGl0b3IgCiAgICAgICAgICB0aGF0IHVzZXMgdGhlIGJ1cyBuYW1lIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5vcmcuZnJlZWRlc2t0b3AuVGV4dEVkaXRvcjwvY29kZT4sCiAgICAgICAgICBoYXMgYSBnbG9iYWwgc2luZ2xldG9uIG9iamVjdCBjYWxsZWQgCiAgICAgICAgICA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+L29yZy9mcmVlZGVza3RvcC9UZXh0RWRpdG9yPC9jb2RlPiwgYW5kIAogICAgICAgICAgdGhhdCBzaW5nbGV0b24gb2JqZWN0IGNvdWxkIGltcGxlbWVudCB0aGUgaW50ZXJmYWNlIAogICAgICAgICAgPGNvZGUgY2xhc3M9ImxpdGVyYWwiPm9yZy5mcmVlZGVza3RvcC5UZXh0RWRpdG9yPC9jb2RlPi4KICAgICAgICA8L3A+PHA+CiAgICAgICAgICBIb3dldmVyLCBhIHRleHQgZWRpdG9yIGFwcGxpY2F0aW9uIGNvdWxkIGFzIGVhc2lseSBvd24gbXVsdGlwbGUgYnVzCiAgICAgICAgICBuYW1lcyAoZm9yIGV4YW1wbGUsIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5vcmcua2RlLktXcml0ZTwvY29kZT4gaW4gYWRkaXRpb24gdG8KICAgICAgICAgIGdlbmVyaWMgPGNvZGUgY2xhc3M9ImxpdGVyYWwiPlRleHRFZGl0b3I8L2NvZGU+KSwgaGF2ZSBtdWx0aXBsZSBvYmplY3RzIChtYXliZQogICAgICAgICAgPGNvZGUgY2xhc3M9ImxpdGVyYWwiPi9vcmcva2RlL2RvY3VtZW50cy80MzUyPC9jb2RlPiB3aGVyZSB0aGUgbnVtYmVyIGNoYW5nZXMKICAgICAgICAgIGFjY29yZGluZyB0byB0aGUgZG9jdW1lbnQpLCBhbmQgZWFjaCBvYmplY3QgY291bGQgaW1wbGVtZW50IG11bHRpcGxlCiAgICAgICAgICBpbnRlcmZhY2VzLCBzdWNoIGFzIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5vcmcuZnJlZWRlc2t0b3AuREJ1cy5JbnRyb3NwZWN0YWJsZTwvY29kZT4sCiAgICAgICAgICA8Y29kZSBjbGFzcz0ibGl0ZXJhbCI+b3JnLmZyZWVkZXNrdG9wLkJhc2ljVGV4dEZpZWxkPC9jb2RlPiwKICAgICAgICAgIDxjb2RlIGNsYXNzPSJsaXRlcmFsIj5vcmcua2RlLlJpY2hUZXh0RG9jdW1lbnQ8L2NvZGU+LgogICAgICAgIDwvcD48L3RkPjwvdHI+PHRyIGNsYXNzPSJxdWVzdGlvbiIgdGl0bGU9IjUuIj48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48YSBuYW1lPSJzZXJ2aWNlIj48L2E+PGEgbmFtZT0iaWRwMjQ0OTgxNDQiPjwvYT48cD48Yj41LjwvYj48L3A+PC90ZD48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48cD4KICAgICAgICAgIFdoYXQgaXMgYSAic2VydmljZSI/CiAgICAgICAgPC9wPjwvdGQ+PC90cj48dHIgY2xhc3M9ImFuc3dlciI+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PC90ZD48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48cD4KICAgICAgICAgIEEgc2VydmljZSBpcyBhIHByb2dyYW0gdGhhdCBjYW4gYmUgbGF1bmNoZWQgYnkgdGhlIGJ1cyBkYWVtb24gCiAgICAgICAgICB0byBwcm92aWRlIHNvbWUgZnVuY3Rpb25hbGl0eSB0byBvdGhlciBwcm9ncmFtcy4gU2VydmljZXMKICAgICAgICAgIGFyZSBub3JtYWxseSBsYXVuY2hlZCBhY2NvcmRpbmcgdG8gdGhlIGJ1cyBuYW1lIHRoZXkgd2lsbCAKICAgICAgICAgIGhhdmUuCiAgICAgICAgPC9wPjxwPgogICAgICAgICAgUGVvcGxlIG9mdGVuIG1pc3VzZSB0aGUgd29yZCAic2VydmljZSIgZm9yIGFueSAKICAgICAgICAgIGJ1cyBuYW1lLCBidXQgdGhpcyB0ZW5kcyB0byBiZSBhbWJpZ3VvdXMgYW5kIGNvbmZ1c2luZyBzbyBpcyBkaXNjb3VyYWdlZC4KICAgICAgICAgIEluIHRoZSBELUJ1cyBkb2NzIHdlIHRyeSB0byB1c2UgInNlcnZpY2UiIG9ubHkgd2hlbiB0YWxraW5nIGFib3V0IAogICAgICAgICAgcHJvZ3JhbXMgdGhlIGJ1cyBrbm93cyBob3cgdG8gbGF1bmNoLCBpLmUuIGEgc2VydmljZSBhbHdheXMgaGFzIGEgCiAgICAgICAgICAuc2VydmljZSBmaWxlLgogICAgICAgIDwvcD48L3RkPjwvdHI+PHRyIGNsYXNzPSJxdWVzdGlvbiIgdGl0bGU9IjYuIj48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48YSBuYW1lPSJjb21wb25lbnRzIj48L2E+PGEgbmFtZT0iaWRwMjQ1MDEzNjAiPjwvYT48cD48Yj42LjwvYj48L3A+PC90ZD48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48cD4KICAgICAgICAgIElzIEQtQnVzIGEgImNvbXBvbmVudCBzeXN0ZW0iPwogICAgICAgIDwvcD48L3RkPjwvdHI+PHRyIGNsYXNzPSJhbnN3ZXIiPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjwvdGQ+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PHA+CiAgICAgICAgICBJdCBoZWxwcyB0byBrZWVwIHRoZXNlIGNvbmNlcHRzIHNlcGFyYXRlIGluIHlvdXIgbWluZDoKICAgICAgICAgIDwvcD48ZGl2IGNsYXNzPSJvcmRlcmVkbGlzdCI+PG9sIGNsYXNzPSJvcmRlcmVkbGlzdCIgdHlwZT0iMSI+PGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CiAgICAgICAgICAgICAgICBPYmplY3QvY29tcG9uZW50IHN5c3RlbQogICAgICAgICAgICAgIDwvcD48L2xpPjxsaSBjbGFzcz0ibGlzdGl0ZW0iPjxwPgogICAgICAgICAgICAgICAgR1VJIGNvbnRyb2wvd2lkZ2V0IGVtYmVkZGluZyBpbnRlcmZhY2VzCiAgICAgICAgICAgICAgPC9wPjwvbGk+PGxpIGNsYXNzPSJsaXN0aXRlbSI+PHA+CiAgICAgICAgICAgICAgICBJbnRlcnByb2Nlc3MgY29tbXVuaWNhdGlvbiBzeXN0ZW0gb3Igd2lyZSBwcm90b2NvbAogICAgICAgICAgICAgIDwvcD48L2xpPjwvb2w+PC9kaXY+PHA+CiAgICAgICAgPC9wPjxwPgogICAgICAgICAgRC1CdXMgaXMgbm90IGEgY29tcG9uZW50IHN5c3RlbS4gIkNvbXBvbmVudCBzeXN0ZW0iIHdhcyBvcmlnaW5hbGx5CiAgICAgICAgICBkZWZpbmVkIGJ5IENPTSwgYW5kIHdhcyBlc3NlbnRpYWxseSBhIHdvcmthcm91bmQgZm9yIHRoZSBsaW1pdGF0aW9ucwogICAgICAgICAgb2YgdGhlIEMrKyBvYmplY3Qgc3lzdGVtIChhZGRpbmcgaW50cm9zcGVjdGlvbiwgcnVudGltZSBsb2NhdGlvbiBvZgogICAgICAgICAgb2JqZWN0cywgQUJJIGd1YXJhbnRlZXMsIGFuZCBzbyBmb3J0aCkuIFdpdGggdGhlIEMjIGxhbmd1YWdlIGFuZCBDTFIsCiAgICAgICAgICBNaWNyb3NvZnQgYWRkZWQgdGhlc2UgZmVhdHVyZXMgdG8gdGhlIHByaW1hcnkgb2JqZWN0IHN5c3RlbSwgbGVhdmluZwogICAgICAgICAgQ09NIG9ic29sZXRlLiBTaW1pbGFybHksIEphdmEgaGFzIG11Y2ggbGVzcyBuZWVkIGZvciBzb21ldGhpbmcgbGlrZQogICAgICAgICAgQ09NIHRoYW4gQysrIGRpZC4gRXZlbiBRT2JqZWN0IChmcm9tIFF0KSBhbmQgR09iamVjdCAoZnJvbSBHTGliKSBvZmZlcgogICAgICAgICAgc29tZSBvZiB0aGUgc2FtZSBmZWF0dXJlcyBmb3VuZCBpbiBDT00uCiAgICAgICAgPC9wPjxwPgogICAgICAgICAgQ29tcG9uZW50IHN5c3RlbXMgYXJlIG5vdCBhYm91dCBHVUkgY29udHJvbCBlbWJlZGRpbmcuIEVtYmVkZGluZwogICAgICAgICAgYSBzcHJlYWRzaGVldCBpbiBhIHdvcmQgcHJvY2Vzc29yIGRvY3VtZW50IGlzIGEgbWF0dGVyIG9mIGRlZmluaW5nCiAgICAgICAgICBzb21lIHNwZWNpZmljIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPmludGVyZmFjZXM8L2VtPjwvc3Bhbj4gdGhhdCBvYmplY3RzCiAgICAgICAgICBjYW4gaW1wbGVtZW50LiBUaGVzZSBpbnRlcmZhY2VzIHByb3ZpZGUgbWV0aG9kcyByZWxhdGVkIHRvIAogICAgICAgICAgR1VJIGNvbnRyb2xzLiBTbyBhbiBvYmplY3QgaW1wbGVtZW50aW5nIHRob3NlIGludGVyZmFjZXMgCiAgICAgICAgICBjYW4gYmUgZW1iZWRkZWQuCiAgICAgICAgPC9wPjxwPgogICAgICAgICAgVGhlIHdvcmQgImNvbXBvbmVudCIganVzdCBtZWFucyAib2JqZWN0IHdpdGggc29tZSBmYW5jeSBmZWF0dXJlcyIgYW5kCiAgICAgICAgICBpbiBtb2Rlcm4gbGFuZ3VhZ2VzIGFsbCBvYmplY3RzIGFyZSBlZmZlY3RpdmVseSAiY29tcG9uZW50cy4iCiAgICAgICAgPC9wPjxwPgogICAgICAgICAgU28gY29tcG9uZW50cyBhcmUgZmFuY3kgb2JqZWN0cywgYW5kIHNvbWUgb2JqZWN0cyBhcmUgR1VJIGNvbnRyb2xzLgogICAgICAgIDwvcD48cD4KICAgICAgICAgIEEgdGhpcmQsIHVucmVsYXRlZCBmZWF0dXJlIGlzIGludGVycHJvY2VzcyBjb21tdW5pY2F0aW9uIG9yIElQQy4KICAgICAgICAgIEQtQnVzIGlzIGFuIElQQyBzeXN0ZW0uIEdpdmVuIGFuIG9iamVjdCAob3IgImNvbXBvbmVudCIgaWYgeW91IG11c3QpLCAKICAgICAgICAgIHlvdSBjYW4gZXhwb3NlIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHRoYXQgb2JqZWN0IG92ZXIgYW4gSVBDIHN5c3RlbS4KICAgICAgICAgIEV4YW1wbGVzIG9mIElQQyBzeXN0ZW1zIGFyZSBEQ09NLCBDT1JCQSwgU09BUCwgWE1MLVJQQywgYW5kIEQtQnVzLgogICAgICAgICAgWW91IGNhbiB1c2UgYW55IG9mIHRoZXNlIElQQyBzeXN0ZW1zIHdpdGggYW55IG9iamVjdC9jb21wb25lbnQgc3lzdGVtLAogICAgICAgICAgdGhvdWdoIHNvbWUgb2YgdGhlbSBhcmUgInR1bmVkIiBmb3Igc3BlY2lmaWMgb2JqZWN0IHN5c3RlbXMuCiAgICAgICAgICBZb3UgY2FuIHRoaW5rIG9mIGFuIElQQyBzeXN0ZW0gcHJpbWFyaWx5IGFzIGEgd2lyZSBwcm90b2NvbC4KICAgICAgICA8L3A+PHA+CiAgICAgICAgICBJZiB5b3UgY29tYmluZSBhbiBJUEMgc3lzdGVtIHdpdGggYSBzZXQgb2YgR1VJIGNvbnRyb2wgaW50ZXJmYWNlcywgCiAgICAgICAgICB0aGVuIHlvdSBjYW4gaGF2ZSBhbiBvdXQtb2YtcHJvY2VzcyBvciBkeW5hbWljYWxseS1sb2FkZWQgR1VJIGNvbnRyb2wuCiAgICAgICAgPC9wPjxwPgogICAgICAgICAgQW5vdGhlciByZWxhdGVkIGNvbmNlcHQgaXMgdGhlIDxlbSBjbGFzcz0iZmlyc3R0ZXJtIj5wbHVnaW48L2VtPiBvcgogICAgICAgICAgPGVtIGNsYXNzPSJmaXJzdHRlcm0iPmV4dGVuc2lvbjwvZW0+LiAgR2VuZXJpYyBwbHVnaW4gc3lzdGVtcyBzdWNoIGFzIHRoZQogICAgICAgICAgPGEgY2xhc3M9InVsaW5rIiBocmVmPSJodHRwOi8vZWNsaXBzZS5vcmciIHRhcmdldD0iX3RvcCI+RWNsaXBzZTwvYT4gc3lzdGVtIGFyZSBub3Qgc28gZGlmZmVyZW50CiAgICAgICAgICBmcm9tIGNvbXBvbmVudC9vYmplY3Qgc3lzdGVtcywgdGhvdWdoIHBlcmhhcHMgYSAicGx1Z2luIiB0ZW5kcyB0byBiZSBhCiAgICAgICAgICBidW5kbGUgb2Ygb2JqZWN0cyB3aXRoIGEgdXNlci12aXNpYmxlIG5hbWUgYW5kIGNhbiBiZQogICAgICAgICAgZG93bmxvYWRlZC9wYWNrYWdlZCBhcyBhIHVuaXQuCiAgICAgICAgPC9wPjwvdGQ+PC90cj48dHIgY2xhc3M9InF1ZXN0aW9uIiB0aXRsZT0iNy4iPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxhIG5hbWU9InNwZWVkIj48L2E+PGEgbmFtZT0iaWRwMjQ1MTM5MDQiPjwvYT48cD48Yj43LjwvYj48L3A+PC90ZD48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48cD4KICAgICAgICAgIEhvdyBmYXN0IGlzIHRoZSBELUJ1cyByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24/CiAgICAgICAgPC9wPjwvdGQ+PC90cj48dHIgY2xhc3M9ImFuc3dlciI+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PC90ZD48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48cD4KICAgICAgICAgIE9mIGNvdXJzZSBpdCBkZXBlbmRzIGEgYml0IG9uIHdoYXQgeW91J3JlIGRvaW5nLiAKICAgICAgICAgIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9waXBlcm1haWwvZGJ1cy8yMDA0LU5vdmVtYmVyLzAwMTc3OS5odG1sIiB0YXJnZXQ9Il90b3AiPgogICAgICAgICAgICBUaGlzIG1haWw8L2E+IGNvbnRhaW5zIHNvbWUgYmVuY2htYXJraW5nLiAgQXQgdGhlIHRpbWUgb2YgdGhhdAogICAgICAgICAgYmVuY2htYXJrLCBELUJ1cyBvbmUtdG8tb25lIGNvbW11bmljYXRpb24gd2FzIGFib3V0IDIuNXggc2xvd2VyIHRoYW4KICAgICAgICAgIHNpbXBseSBwdXNoaW5nIHRoZSBkYXRhIHJhdyBvdmVyIGEgc29ja2V0LiBBZnRlciB0aGUgcmVjZW50IHJld3JpdGUgb2YKICAgICAgICAgIHRoZSBtYXJzaGFsaW5nIGNvZGUsIEQtQnVzIGlzIHNsb3dlciB0aGFuIHRoYXQgYmVjYXVzZSBhIGxvdCBvZgogICAgICAgICAgb3B0aW1pemF0aW9uIHdvcmsgd2FzIGxvc3QuIEJ1dCBpdCBjYW4gcHJvYmFibHkgYmUgc3BlZCB1cCBhZ2Fpbi4KICAgICAgICA8L3A+PHA+CiAgICAgICAgICBELUJ1cyBjb21tdW5pY2F0aW9uIHdpdGggdGhlIGludGVybWVkaWF0ZSBidXMgZGFlbW9uIHNob3VsZCBiZSAKICAgICAgICAgIChhbmQgYXMgbGFzdCBwcm9maWxlZCwgd2FzKSBhYm91dCB0d2ljZSBhcyBzbG93IGFzIG9uZS10by1vbmUgCiAgICAgICAgICBtb2RlLCBiZWNhdXNlIGEgcm91bmQgdHJpcCBpbnZvbHZlcyBmb3VyIHNvY2tldCByZWFkcy93cml0ZXMgcmF0aGVyIAogICAgICAgICAgdGhhbiB0d28gc29ja2V0IHJlYWRzL3dyaXRlcy4KICAgICAgICA8L3A+PHA+CiAgICAgICAgICBUaGUgb3ZlcmhlYWQgY29tZXMgZnJvbSBhIGNvdXBsZSBvZiBwbGFjZXM7IHBhcnQgb2YgaXQgaXMgc2ltcGx5IAogICAgICAgICAgImFic3RyYWN0aW9uIHBlbmFsdHkiICh0aGVyZSBhcmUgbGF5ZXJzIG9mIGNvZGUgdG8gc3VwcG9ydCAKICAgICAgICAgIG11bHRpcGxlIG1haW4gbG9vcHMsIG11bHRpcGxlIHRyYW5zcG9ydCB0eXBlcywgc2VjdXJpdHksIGV0Yy4pLgogICAgICAgICAgUHJvYmFibHkgdGhlIGxhcmdlc3QgcGFydCBjb21lcyBmcm9tIGRhdGEgdmFsaWRhdGlvbgogICAgICAgICAgKGJlY2F1c2UgdGhlIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCB0cnVzdCBpbmNvbWluZyBkYXRhKS4KICAgICAgICAgIEl0IHdvdWxkIGJlIHNpbXBsZSB0byBhZGQgYSAibm8gdmFsaWRhdGlvbiIgbW9kZSwgYnV0IHByb2JhYmx5IAogICAgICAgICAgbm90IGEgZ29vZCBpZGVhIGFsbCB0aGluZ3MgY29uc2lkZXJlZC4KICAgICAgICA8L3A+PHA+CiAgICAgICAgICBSYXcgYmFuZHdpZHRoIGlzbid0IHRoZSBvbmx5IGNvbmNlcm47IEQtQnVzIGlzIGRlc2lnbmVkIHRvIAogICAgICAgICAgZW5hYmxlIGFzeW5jaHJvbm91cyBjb21tdW5pY2F0aW9uIGFuZCBhdm9pZCByb3VuZCB0cmlwcy4KICAgICAgICAgIFRoaXMgaXMgZnJlcXVlbnRseSBhIG1vcmUgaW1wb3J0YW50IHBlcmZvcm1hbmNlIGlzc3VlIAogICAgICAgICAgdGhhbiB0aHJvdWdocHV0LgogICAgICAgIDwvcD48L3RkPjwvdHI+PHRyIGNsYXNzPSJxdWVzdGlvbiIgdGl0bGU9IjguIj48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48YSBuYW1lPSJzaXplIj48L2E+PGEgbmFtZT0iaWRwMjkxOTc0ODgiPjwvYT48cD48Yj44LjwvYj48L3A+PC90ZD48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48cD4KICAgICAgICAgIEhvdyBsYXJnZSBpcyB0aGUgRC1CdXMgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uPwogICAgICAgIDwvcD48L3RkPjwvdHI+PHRyIGNsYXNzPSJhbnN3ZXIiPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjwvdGQ+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PHA+CiAgICAgICAgICBBIHByb2R1Y3Rpb24gYnVpbGQgKHdpdGggYXNzZXJ0aW9ucywgdW5pdCB0ZXN0cywgYW5kIHZlcmJvc2UgbG9nZ2luZwogICAgICAgICAgZGlzYWJsZWQpIGlzIG9uIHRoZSBvcmRlciBvZiBhIDE1MEsgc2hhcmVkIGxpYnJhcnkuCiAgICAgICAgPC9wPjxwPgogICAgICAgICAgQSBtdWNoLCBtdWNoIHNtYWxsZXIgaW1wbGVtZW50YXRpb24gd291bGQgYmUgcG9zc2libGUgYnkgb21pdHRpbmcgb3V0CiAgICAgICAgICBvZiBtZW1vcnkgaGFuZGxpbmcsIGhhcmRjb2RpbmcgYSBtYWluIGxvb3AgKG9yIGFsd2F5cyB1c2luZyBibG9ja2luZwogICAgICAgICAgSS9PKSwgc2tpcHBpbmcgdmFsaWRhdGlvbiwgYW5kIG90aGVyd2lzZSBzaW1wbGlmeWluZyB0aGluZ3MuCiAgICAgICAgPC9wPjwvdGQ+PC90cj48dHIgY2xhc3M9InF1ZXN0aW9uIiB0aXRsZT0iOS4iPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxhIG5hbWU9Im90aGVyLWlwYyI+PC9hPjxhIG5hbWU9ImlkcDI5MjAwNDQ4Ij48L2E+PHA+PGI+OS48L2I+PC9wPjwvdGQ+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PHA+CiAgICAgICAgICBIb3cgZG9lcyBELUJ1cyBkaWZmZXIgZnJvbSBvdGhlciBpbnRlcnByb2Nlc3MgY29tbXVuaWNhdGlvbgogICAgICAgICAgb3IgbmV0d29ya2luZyBwcm90b2NvbHM/CiAgICAgICAgPC9wPjwvdGQ+PC90cj48dHIgY2xhc3M9ImFuc3dlciI+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PC90ZD48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48cD4KICAgICAgICAgIEtlZXAgaW4gbWluZCwgaXQgaXMgbm90IG9ubHkgYW4gSVBDIHN5c3RlbTsgaXQgYWxzbyBpbmNsdWRlcwogICAgICAgICAgbGlmZWN5Y2xlIHRyYWNraW5nLCBzZXJ2aWNlIGFjdGl2YXRpb24sIHNlY3VyaXR5IHBvbGljeSwgYW5kIG90aGVyCiAgICAgICAgICBoaWdoZXItbGV2ZWwgc3RydWN0dXJlIGFuZCBhc3N1bXB0aW9ucy4KICAgICAgICA8L3A+PHA+CiAgICAgICAgICBUaGUgYmVzdCBwbGFjZSB0byBzdGFydCBpcyB0byByZWFkIHRoZSBELUJ1cyA8YSBjbGFzcz0idWxpbmsiIGhyZWY9ImRidXMtdHV0b3JpYWwuaHRtbCIgdGFyZ2V0PSJfdG9wIj50dXRvcmlhbDwvYT4sIHNvIAogICAgICAgICAgeW91IGhhdmUgYSBjb25jcmV0ZSBpZGVhIHdoYXQgRC1CdXMgYWN0dWFsbHkgaXMuIElmIHlvdSAKICAgICAgICAgIHVuZGVyc3RhbmQgb3RoZXIgcHJvdG9jb2xzIG9uIGEgd2lyZSBmb3JtYXQgbGV2ZWwsIHlvdSAKICAgICAgICAgIG1heSBhbHNvIHdhbnQgdG8gcmVhZCB0aGUgRC1CdXMgPGEgY2xhc3M9InVsaW5rIiBocmVmPSJkYnVzLXNwZWNpZmljYXRpb24uaHRtbCIgdGFyZ2V0PSJfdG9wIj5zcGVjaWZpY2F0aW9uPC9hPiB0byBzZWUgd2hhdCAKICAgICAgICAgIEQtQnVzIGxvb2tzIGxpa2Ugb24gYSBsb3cgbGV2ZWwuCiAgICAgICAgPC9wPjxwPgogICAgICAgICAgQXMgdGhlIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iZGJ1cy10dXRvcmlhbC5odG1sIiB0YXJnZXQ9Il90b3AiPnR1dG9yaWFsPC9hPiBhbmQgPGEgY2xhc3M9InVsaW5rIiBocmVmPSJkYnVzLXNwZWNpZmljYXRpb24uaHRtbCIgdGFyZ2V0PSJfdG9wIj5zcGVjaWZpY2F0aW9uPC9hPiBib3RoIGV4cGxhaW4sIEQtQnVzIGlzIHR1bmVkIAogICAgICAgICAgZm9yIHNvbWUgc3BlY2lmaWMgdXNlIGNhc2VzLiBUaHVzLCBpdCBwcm9iYWJseSBpc24ndCB0dW5lZCAKICAgICAgICAgIGZvciB3aGF0IHlvdSB3YW50IHRvIGRvLCB1bmxlc3MgeW91IGFyZSBkb2luZyB0aGUgdGhpbmdzIAogICAgICAgICAgRC1CdXMgd2FzIGRlc2lnbmVkIGZvci4gRG9uJ3QgbWFrZSB0aGUgbWlzdGFrZSBvZiB0aGlua2luZyAKICAgICAgICAgIHRoYXQgYW55IHN5c3RlbSBpbnZvbHZpbmcgIklQQyIgaXMgdGhlIHNhbWUgdGhpbmcuCiAgICAgICAgPC9wPjxwPgogICAgICAgICAgVGhlIEQtQnVzIGF1dGhvcnMgd291bGQgbm90IHJlY29tbWVuZCB1c2luZyBELUJ1cyAKICAgICAgICAgIGZvciBhcHBsaWNhdGlvbnMgd2hlcmUgaXQgZG9lc24ndCBtYWtlIHNlbnNlLgogICAgICAgICAgVGhlIGZvbGxvd2luZyBxdWVzdGlvbnMgY29tcGFyZSBELUJ1cyB0byBzb21lIG90aGVyIAogICAgICAgICAgcHJvdG9jb2xzIHByaW1hcmlseSB0byBoZWxwIHlvdSB1bmRlcnN0YW5kIEQtQnVzIAogICAgICAgICAgYW5kIGRlY2lkZSB3aGV0aGVyIGl0J3MgYXBwcm9wcmlhdGU7IEQtQnVzIGlzIG5laXRoZXIgaW50ZW5kZWQKICAgICAgICAgIG5vciBjbGFpbWVkIHRvIGJlIHRoZSByaWdodCBjaG9pY2UgZm9yIGV2ZXJ5IGFwcGxpY2F0aW9uLgogICAgICAgIDwvcD48cD4KICAgICAgICAgIEl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBicmlkZ2UgRC1CdXMgdG8gb3RoZXIgSVBDIHN5c3RlbXMsIAogICAgICAgICAganVzdCBhcyBELUJ1cyBjYW4gYmUgYnJpZGdlZCB0byBvYmplY3Qgc3lzdGVtcy4KICAgICAgICA8L3A+PHA+CiAgICAgICAgICBOb3RlOiB0aGUgRC1CdXMgbWFpbGluZyBsaXN0IHN1YnNjcmliZXJzIGFyZSA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT52ZXJ5IG11Y2ggbm90CiAgICAgICAgICBpbnRlcmVzdGVkPC9lbT48L3NwYW4+IGluIGRlYmF0aW5nIHdoaWNoIElQQyBzeXN0ZW0gaXMgdGhlIE9uZSBUcnVlCiAgICAgICAgICBTeXN0ZW0uIFNvIGlmIHlvdSB3YW50IHRvIGRpc2N1c3MgdGhhdCwgcGxlYXNlIHVzZSBhbm90aGVyIGZvcnVtLgogICAgICAgIDwvcD48L3RkPjwvdHI+PHRyIGNsYXNzPSJxdWVzdGlvbiIgdGl0bGU9IjEwLiI+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PGEgbmFtZT0iY29yYmEiPjwvYT48YSBuYW1lPSJpZHAyOTIwODk3NiI+PC9hPjxwPjxiPjEwLjwvYj48L3A+PC90ZD48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48cD4KICAgICAgICAgIEhvdyBkb2VzIEQtQnVzIGRpZmZlciBmcm9tIENPUkJBPwogICAgICAgIDwvcD48L3RkPjwvdHI+PHRyIGNsYXNzPSJhbnN3ZXIiPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjwvdGQ+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PHA+CiAgICAgICAgICBTdGFydCBieSByZWFkaW5nIDxhIGNsYXNzPSJ4cmVmIiBocmVmPSIjb3RoZXItaXBjIiB0aXRsZT0iOS4iPlE6oDk8L2E+LgogICAgICAgIDwvcD48cD4KICAgICAgICAgIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL3d3dy5vbWcub3JnIiB0YXJnZXQ9Il90b3AiPkNPUkJBPC9hPiBpcyBkZXNpZ25lZCB0byBzdXBwb3J0CiAgICAgICAgIG9iamVjdC1vcmllbnRlZCBJUEMgYmV0d2VlbiBvYmplY3RzLCBhdXRvbWF0aWNhbGx5IG1hcnNoYWxsaW5nCiAgICAgICAgIHBhcmFtZXRlcnMgYXMgbmVjZXNzYXJ5LiBDT1JCQSBpcyBzdHJvbmdseSBzdXBwb3J0ZWQgYnkgdGhlIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL3d3dy5vbWcub3JnIiB0YXJnZXQ9Il90b3AiPk9wZW4gTWFuYWdlbWVudCBHcm91cCAoT01HKTwvYT4sIHdoaWNoCiAgICAgICAgIHByb2R1Y2VzIHZhcmlvdXMgc3RhbmRhcmRzIGFuZCBzdXBwb3J0aW5nIGRvY3VtZW50cyBmb3IgQ09SQkEgYW5kIGhhcwogICAgICAgICB0aGUgYmFja2luZyBvZiBtYW55IGxhcmdlIG9yZ2FuaXphdGlvbnMuICBUaGVyZSBhcmUgbWFueSBDT1JCQSBPUkJzCiAgICAgICAgIGF2YWlsYWJsZSwgYm90aCBwcm9wcmlldGFyeSBPUkJzIGFuZCBmcmVlIC8gb3BlbiBzb3VyY2Ugc29mdHdhcmUgT1JCcwogICAgICAgICAodGhlIGxhdHRlciBpbmNsdWRlIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL29yYml0LXJlc291cmNlLnNvdXJjZWZvcmdlLm5ldC8iIHRhcmdldD0iX3RvcCI+T1JCaXQ8L2E+LCA8YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly93d3cubWljby5vcmcvIiB0YXJnZXQ9Il90b3AiPk1JQ088L2E+LCBhbmQgPGEgY2xhc3M9InVsaW5rIiBocmVmPSJodHRwOi8vd3d3LnRoZWFjZW9yYi5jb20vIiB0YXJnZXQ9Il90b3AiPlRoZSBBQ0UgT3JiIChUQU8pPC9hPikuICBNYW55CiAgICAgICAgIG9yZ2FuaXphdGlvbnMgY29udGludWUgdG8gdXNlIENPUkJBIE9SQnMgZm9yIHZhcmlvdXMga2luZHMgb2YgSVBDLgogICAgICAgIDwvcD48cD4KICAgICAgICAgIEJvdGggR05PTUUgYW5kIEtERSBoYXZlIHVzZWQgQ09SQkEgYW5kIHRoZW4gbW92ZWQgYXdheSBmcm9tIGl0LiAgS0RFCiAgICAgICAgICBoYWQgbW9yZSBzdWNjZXNzIHdpdGggYSBzeXN0ZW0gY2FsbGVkIERDT1AsIGFuZCBHTk9NRSBsYXllcmVkIGEgc3lzdGVtCiAgICAgICAgICBjYWxsZWQgQm9ub2JvIG9uIHRvcCBvZiBDT1JCQS4gV2l0aG91dCBjdXN0b20gZXh0ZW5zaW9ucywgQ09SQkEgZG9lcwogICAgICAgICAgbm90IHN1cHBvcnQgbWFueSBvZiB0aGUgdGhpbmdzIG9uZSB3YW50cyB0byBkbyBpbiBhIGRlc2t0b3AKICAgICAgICAgIGVudmlyb25tZW50IHdpdGggdGhlIEdOT01FL0tERSBhcmNoaXRlY3R1cmUuCiAgICAgICAgPC9wPjxwPgogICAgICAgICAgQ09SQkEgb24gdGhlIG90aGVyIGhhbmQgaGFzIGEgbnVtYmVyIG9mIGZlYXR1cmVzIG9mIGludGVyZXN0IGZvcgogICAgICAgICAgZW50ZXJwcmlzZSBhbmQgd2ViIGFwcGxpY2F0aW9uIGRldmVsb3BtZW50LCB0aG91Z2ggWE1MIHN5c3RlbXMgc3VjaCBhcwogICAgICAgICAgU09BUCBhcmUgdGhlIGxhdGVzdCBmYWQuCiAgICAgICAgPC9wPjxwPgogICAgICAgICAgTGlrZSBELUJ1cywgQ09SQkEgdXNlcyBhIGZhc3QgYmluYXJ5IHByb3RvY29sIChJSU9QKS4gQm90aCBzeXN0ZW1zCiAgICAgICAgICB3b3JrIGluIHRlcm1zIG9mIG9iamVjdHMgYW5kIG1ldGhvZHMsIGFuZCBoYXZlIGNvbmNlcHRzIHN1Y2ggYXMKICAgICAgICAgICJvbmV3YXkiIGNhbGxzLiBPbmx5IEQtQnVzIGhhcyBkaXJlY3Qgc3VwcG9ydCBmb3IgInNpZ25hbHMiIGFzIGluCiAgICAgICAgICBHTGliL1F0IChvciBKYXZhIGxpc3RlbmVycywgb3IgQyMgZGVsZWdhdGVzKS4KICAgICAgICA8L3A+PHA+CiAgICAgICAgICBELUJ1cyBoYXJkY29kZXMgYW5kIHNwZWNpZmllcyBhIGxvdCBvZiB0aGluZ3MgdGhhdCBDT1JCQSBsZWF2ZXMgb3Blbi1lbmRlZCwKICAgICAgICAgIGJlY2F1c2UgQ09SQkEgaXMgbW9yZSBnZW5lcmljIGFuZCBELUJ1cyBoYXMgdHdvIHNwZWNpZmljIHVzZS1jYXNlcyBpbiBtaW5kLgogICAgICAgICAgVGhpcyBtYWtlcyBELUJ1cyBhIGJpdCBzaW1wbGVyLgogICAgICAgIDwvcD48cD4KICAgICAgICAgIEhvd2V2ZXIsIHVubGlrZSBDT1JCQSBELUJ1cyBkb2VzIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPm5vdDwvZW0+PC9zcGFuPiBzcGVjaWZ5IHRoZQogICAgICAgICAgQVBJIGZvciB0aGUgbGFuZ3VhZ2UgYmluZGluZ3MuIEluc3RlYWQsICJuYXRpdmUiIGJpbmRpbmdzIGFkYXB0ZWQKICAgICAgICAgIHNwZWNpZmljYWxseSB0byB0aGUgY29udmVudGlvbnMgb2YgYSBmcmFtZXdvcmsgc3VjaCBhcyBRT2JqZWN0LAogICAgICAgICAgR09iamVjdCwgQyMsIEphdmEsIFB5dGhvbiwgZXRjLiBhcmUgZW5jb3VyYWdlZC4gVGhlIGxpYmRidXMgcmVmZXJlbmNlCiAgICAgICAgICBpbXBsZW1lbnRhdGlvbiBpcyBkZXNpZ25lZCB0byBiZSBhIGJhY2tlbmQgZm9yIGJpbmRpbmdzIG9mIHRoaXMKICAgICAgICAgIG5hdHVyZSwgcmF0aGVyIHRoYW4gdG8gYmUgdXNlZCBkaXJlY3RseS4gVGhlIHJhdGlvbmFsZSBpcyB0aGF0IGFuIElQQwogICAgICAgICAgc3lzdGVtIEFQSSBzaG91bGQgbm90ICJsZWFrIiBhbGwgb3ZlciBhIHByb2dyYW07IGl0IHNob3VsZCBjb21lIGludG8KICAgICAgICAgIHBsYXkgb25seSBqdXN0IGJlZm9yZSBkYXRhIGdvZXMgb3ZlciB0aGUgd2lyZS4gQXMgYW4gYXNpZGUsIE9NRyBpcwogICAgICAgICAgYXBwYXJlbnRseSB3b3JraW5nIG9uIGEgc2ltcGxlciBDKysgYmluZGluZyBmb3IgQ09SQkEuCiAgICAgICAgPC9wPjxwPgogICAgICAgICAgTWFueSBDT1JCQSBpbXBsZW1lbnRhdGlvbnMgc3VjaCBhcyBPUkJpdCBhcmUgZmFzdGVyIHRoYW4gdGhlIGxpYmRidXMKICAgICAgICAgIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbi4gIE9uZSByZWFzb24gaXMgdGhhdCBELUJ1cyBjb25zaWRlcnMgZGF0YQogICAgICAgICAgZnJvbSB0aGUgb3RoZXIgZW5kIG9mIHRoZSBjb25uZWN0aW9uIHRvIGJlIHVudHJ1c3RlZCBhbmQgZXh0ZW5zaXZlbHkKICAgICAgICAgIHZhbGlkYXRlcyBpdC4gQnV0IGdlbmVyYWxseSBzcGVha2luZyBvdGhlciBwcmlvcml0aWVzIHdlcmUgcGxhY2VkCiAgICAgICAgICBhaGVhZCBvZiByYXcgc3BlZWQgaW4gdGhlIGxpYmRidXMgaW1wbGVtZW50YXRpb24uIEEgZmFzdCBELUJ1cwogICAgICAgICAgaW1wbGVtZW50YXRpb24gYWxvbmcgdGhlIGxpbmVzIG9mIE9SQml0IHNob3VsZCBiZSBwb3NzaWJsZSwgb2YgY291cnNlLgogICAgICAgIDwvcD48cD4KICAgICAgICAgIE9uIGEgbW9yZSB0cml2aWFsIG5vdGUsIEQtQnVzIGludm9sdmVzIHN1YnN0YW50aWFsbHkgZmV3ZXIgYWNyb255bXMKICAgICAgICAgIHRoYW4gQ09SQkEuCiAgICAgICAgPC9wPjwvdGQ+PC90cj48dHIgY2xhc3M9InF1ZXN0aW9uIiB0aXRsZT0iMTEuIj48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48YSBuYW1lPSJ4bWxycGNzb2FwIj48L2E+PGEgbmFtZT0iaWRwMjQ0NDk2NDgiPjwvYT48cD48Yj4xMS48L2I+PC9wPjwvdGQ+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PHA+CiAgICAgICAgICBIb3cgZG9lcyBELUJ1cyBkaWZmZXIgZnJvbSBYTUwtUlBDIGFuZCBTT0FQPwogICAgICAgIDwvcD48L3RkPjwvdHI+PHRyIGNsYXNzPSJhbnN3ZXIiPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjwvdGQ+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PHA+CiAgICAgICAgICBTdGFydCBieSByZWFkaW5nIDxhIGNsYXNzPSJ4cmVmIiBocmVmPSIjb3RoZXItaXBjIiB0aXRsZT0iOS4iPlE6oDk8L2E+LgogICAgICAgIDwvcD48cD4KICAgICAgICAgIEluIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvU09BUC8iIHRhcmdldD0iX3RvcCI+U09BUDwvYT4gYW5kIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL3d3dy54bWxycGMuY29tIiB0YXJnZXQ9Il90b3AiPlhNTC1SUEM8L2E+LCBSUEMgY2FsbHMgYXJlIHRyYW5zZm9ybWVkCiAgICAgICAgICBpbnRvIGFuIFhNTC1iYXNlZCBmb3JtYXQsIHRoZW4gc2VudCBvdmVyIHRoZSB3aXJlICh0eXBpY2FsbHkgdXNpbmcgdGhlCiAgICAgICAgICBIVFRQIHByb3RvY29sKSwgd2hlcmUgdGhleSBhcmUgcHJvY2Vzc2VkIGFuZCByZXR1cm5lZC4gIFhNTC1SUEMgaXMgdGhlCiAgICAgICAgICBzaW1wbGUgcHJvdG9jb2wgKGl0cyBzcGVjIGlzIG9ubHkgYSBwYWdlIG9yIHR3byksIGFuZCBTT0FQIGlzIHRoZQogICAgICAgICAgZnVsbC1mZWF0dXJlZCBwcm90b2NvbC4KICAgICAgICA8L3A+PHA+CiAgICAgICAgICBYTUwtUlBDIGFuZCBTT0FQIGltcG9zZSBYTUwgcGFyc2luZyBvdmVyaGVhZCB0aGF0IGlzIG5vcm1hbGx5CiAgICAgICAgICBpcnJlbGV2YW50IGluIHRoZSBjb250ZXh0IG9mIHRoZSBJbnRlcm5ldCwgYnV0IHNpZ25pZmljYW50IGZvcgogICAgICAgICAgY29uc3RhbnQgZmluZS1ncmFpbmVkIElQQyBhbW9uZyBhcHBsaWNhdGlvbnMgaW4gYSBkZXNrdG9wIHNlc3Npb24uCiAgICAgICAgPC9wPjxwPgogICAgICAgICAgRC1CdXMgb2ZmZXJzIHBlcnNpc3RlbnQgY29ubmVjdGlvbnMgYW5kIHdpdGggdGhlIGJ1cyBkYWVtb24gCiAgICAgICAgICBzdXBwb3J0cyBsaWZlY3ljbGUgdHJhY2tpbmcgb2Ygb3RoZXIgYXBwbGljYXRpb25zIGNvbm5lY3RlZAogICAgICAgICAgdG8gdGhlIGJ1cy4gV2l0aCBYTUwtUlBDIGFuZCBTT0FQLCB0eXBpY2FsbHkgZWFjaCBtZXRob2QgY2FsbCAKICAgICAgICAgIGV4aXN0cyBpbiBpc29sYXRpb24gYW5kIGhhcyBpdHMgb3duIEhUVFAgY29ubmVjdGlvbi4KICAgICAgICA8L3A+PC90ZD48L3RyPjx0ciBjbGFzcz0icXVlc3Rpb24iIHRpdGxlPSIxMi4iPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxhIG5hbWU9ImRjZSI+PC9hPjxhIG5hbWU9ImlkcDI5MjQ4MDY0Ij48L2E+PHA+PGI+MTIuPC9iPjwvcD48L3RkPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxwPgogICAgICAgICAgSG93IGRvZXMgRC1CdXMgZGlmZmVyIGZyb20gRENFPwogICAgICAgIDwvcD48L3RkPjwvdHI+PHRyIGNsYXNzPSJhbnN3ZXIiPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjwvdGQ+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PHA+CiAgICAgICAgICBTdGFydCBieSByZWFkaW5nIDxhIGNsYXNzPSJ4cmVmIiBocmVmPSIjb3RoZXItaXBjIiB0aXRsZT0iOS4iPlE6oDk8L2E+LgogICAgICAgIDwvcD48cD4KICAgICAgICAgIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL3d3dy5vcGVuZ3JvdXAub3JnL2RjZS8iIHRhcmdldD0iX3RvcCI+RGlzdHJpYnV0ZWQgQ29tcHV0aW5nCiAgICAgICAgICBFbnZpcm9ubWVudCAoRENFKTwvYT4gaXMgYW4gaW5kdXN0cnktc3RhbmRhcmQgdmVuZG9yLW5ldXRyYWwKICAgICAgICAgIHN0YW5kYXJkIHRoYXQgaW5jbHVkZXMgYW4gSVBDIG1lY2hhbmlzbS4gIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL3d3dy5vcGVuZ3JvdXAub3JnL2NvbW0vcHJlc3MvMDUtMDEtMTIuaHRtIiB0YXJnZXQ9Il90b3AiPlRoZSBPcGVuIEdyb3VwCiAgICAgICAgICBoYXMgcmVsZWFzZWQgYW4gaW1wbGVtZW50YXRpb24gYXMgb3BlbiBzb3VyY2Ugc29mdHdhcmU8L2E+LiAgRENFCiAgICAgICAgICBpcyBxdWl0ZSBjYXBhYmxlLCBhbmQgaW5jbHVkZXMgYSB2YXN0IGFtb3VudCBvZiBmdW5jdGlvbmFsaXR5IHN1Y2ggYXMKICAgICAgICAgIGEgZGlzdHJpYnV0ZWQgdGltZSBzZXJ2aWNlLiAgQXMgdGhlIG5hbWUgaW1wbGllcywgRENFIGlzIGludGVuZGVkIGZvcgogICAgICAgICAgdXNlIGluIGEgbGFyZ2UsIG11bHRpLWNvbXB1dGVyIGRpc3RyaWJ1dGVkIGFwcGxpY2F0aW9uLiBELUJ1cyB3b3VsZAogICAgICAgICAgbm90IGJlIHdlbGwtc3VpdGVkIGZvciB0aGlzLgogICAgICAgIDwvcD48L3RkPjwvdHI+PHRyIGNsYXNzPSJxdWVzdGlvbiIgdGl0bGU9IjEzLiI+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PGEgbmFtZT0iZGNvbSI+PC9hPjxhIG5hbWU9ImlkcDI5MjUyODY0Ij48L2E+PHA+PGI+MTMuPC9iPjwvcD48L3RkPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxwPgogICAgICAgICAgSG93IGRvZXMgRC1CdXMgZGlmZmVyIGZyb20gRENPTSBhbmQgQ09NPwogICAgICAgIDwvcD48L3RkPjwvdHI+PHRyIGNsYXNzPSJhbnN3ZXIiPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjwvdGQ+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PHA+CiAgICAgICAgICBTdGFydCBieSByZWFkaW5nIDxhIGNsYXNzPSJ4cmVmIiBocmVmPSIjb3RoZXItaXBjIiB0aXRsZT0iOS4iPlE6oDk8L2E+LgogICAgICAgIDwvcD48cD4KICAgICAgICAgIENvbXBhcmluZyBELUJ1cyB0byBDT00gaXMgYXBwbGVzIGFuZCBvcmFuZ2VzOyAKICAgICAgICAgIHNlZSA8YSBjbGFzcz0ieHJlZiIgaHJlZj0iI2NvbXBvbmVudHMiIHRpdGxlPSI2LiI+UTqgNjwvYT4uCiAgICAgICAgPC9wPjxwPgogICAgICAgICAgRENPTSAoZGlzdHJpYnV0ZWQgQ09NKSBpcyBhIFdpbmRvd3MgSVBDIHN5c3RlbSBkZXNpZ25lZCBmb3IgdXNlIHdpdGgKICAgICAgICAgIHRoZSBDT00gb2JqZWN0IHN5c3RlbS4gSXQncyBzaW1pbGFyIGluIHNvbWUgd2F5cyB0byBEQ0UgYW5kIENPUkJBLgogICAgICAgIDwvcD48L3RkPjwvdHI+PHRyIGNsYXNzPSJxdWVzdGlvbiIgdGl0bGU9IjE0LiI+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PGEgbmFtZT0iaW50ZXJuZXQtY29tbXVuaWNhdGlvbnMtZW5naW5lIj48L2E+PGEgbmFtZT0iaWRwMjkyNTcxMzYiPjwvYT48cD48Yj4xNC48L2I+PC9wPjwvdGQ+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PHA+CiAgICAgICAgICBIb3cgZG9lcyBELUJ1cyBkaWZmZXIgZnJvbSBaZXJvQydzIEludGVybmV0IENvbW11bmljYXRpb25zIEVuZ2luZSAoSWNlKQogICAgICAgIDwvcD48L3RkPjwvdHI+PHRyIGNsYXNzPSJhbnN3ZXIiPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjwvdGQ+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PHA+CiAgICAgICAgICBTdGFydCBieSByZWFkaW5nIDxhIGNsYXNzPSJ4cmVmIiBocmVmPSIjb3RoZXItaXBjIiB0aXRsZT0iOS4iPlE6oDk8L2E+LgogICAgICAgIDwvcD48cD4KICAgICAgICAgIFRoZSA8YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly93d3cuemVyb2MuY29tL2ljZS5odG1sIiB0YXJnZXQ9Il90b3AiPiBJbnRlcm5ldAogICAgICAgICAgQ29tbXVuaWNhdGlvbnMgRW5naW5lIChJY2UpPC9hPiBpcyBhIHBvd2VyZnVsIElQQyBtZWNoYW5pc20gbW9yZQogICAgICAgICAgb24gdGhlIGxldmVsIG9mIFNPQVAgb3IgQ09SQkEgdGhhbiBELUJ1cy4gIEljZSBoYXMgYSAiZHVhbC1saWNlbnNlIgogICAgICAgICAgYnVzaW5lc3MgYXJvdW5kIGl0OyBpLmUuIHlvdSBjYW4gdXNlIGl0IHVuZGVyIHRoZSBHUEwsIG9yIHBheSBmb3IgYQogICAgICAgICAgcHJvcHJpZXRhcnkgbGljZW5zZS4KICAgICAgICA8L3A+PC90ZD48L3RyPjx0ciBjbGFzcz0icXVlc3Rpb24iIHRpdGxlPSIxNS4iPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxhIG5hbWU9ImludGVyLWNsaWVudC1leGNoYW5nZSI+PC9hPjxhIG5hbWU9ImlkcDI5MjYxMTUyIj48L2E+PHA+PGI+MTUuPC9iPjwvcD48L3RkPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxwPgogICAgICAgICAgSG93IGRvZXMgRC1CdXMgZGlmZmVyIGZyb20gSW50ZXItQ2xpZW50IEV4Y2hhbmdlIChJQ0UpPwogICAgICAgIDwvcD48L3RkPjwvdHI+PHRyIGNsYXNzPSJhbnN3ZXIiPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjwvdGQ+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PHA+CiAgICAgICAgICA8YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly93d3cueC5vcmcvWDExUjYuOC4xL2RvY3MvSUNFL2ljZS5wZGYiIHRhcmdldD0iX3RvcCI+SUNFPC9hPgogICAgICAgICAgd2FzIGRldmVsb3BlZCBmb3IgdGhlIFggU2Vzc2lvbiBNYW5hZ2VtZW50IHByb3RvY29sIChYU01QKSwgYXMgcGFydCBvZgogICAgICAgICAgdGhlIFggV2luZG93IFN5c3RlbSAoWDExUjYuMSkuIFRoZSBpZGVhIHdhcyB0byBhbGxvdyBkZXNrdG9wIHNlc3Npb25zCiAgICAgICAgICB0byBjb250YWluIG5vbmdyYXBoaWNhbCBjbGllbnRzIGluIGFkZGl0aW9uIHRvIFggY2xpZW50cy4KICAgICAgICA8L3A+PHA+CiAgICAgICAgICBJQ0UgaXMgYSBiaW5hcnkgcHJvdG9jb2wgZGVzaWduZWQgZm9yIGRlc2t0b3AgdXNlLCBhbmQgS0RFJ3MgRENPUAogICAgICAgICAgYnVpbGRzIG9uIElDRS4gIElDRSBpcyBzdWJzdGFudGlhbGx5IHNpbXBsZXIgdGhhbiBELUJ1cyAoaW4gY29udHJhc3QKICAgICAgICAgIHRvIG1vc3Qgb2YgdGhlIG90aGVyIElQQyBzeXN0ZW1zIG1lbnRpb25lZCBoZXJlLCB3aGljaCBhcmUgbW9yZQogICAgICAgICAgY29tcGxleCkuIElDRSBkb2Vzbid0IHJlYWxseSBkZWZpbmUgYSBtYXBwaW5nIHRvIG9iamVjdHMgYW5kIG1ldGhvZHMKICAgICAgICAgIChEQ09QIGFkZHMgdGhhdCBsYXllcikuICBUaGUgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIG9mIElDRSAobGliSUNFKQogICAgICAgICAgaXMgb2Z0ZW4gY29uc2lkZXJlZCB0byBiZSBob3JyaWJsZSAoYW5kIGhvcnJpYmx5IGluc2VjdXJlKS4KICAgICAgICA8L3A+PHA+CiAgICAgICAgICBEQ09QIGFuZCBYU01QIGFyZSB0aGUgb25seSB0d28gd2lkZWx5LXVzZWQgYXBwbGljYXRpb25zIG9mIElDRSwKICAgICAgICAgIGFuZCBib3RoIGNvdWxkIGluIHByaW5jaXBsZSBiZSByZXBsYWNlZCBieSBELUJ1cy4gKFRob3VnaCB3aGV0aGVyIAogICAgICAgICAgR05PTUUgYW5kIEtERSB3aWxsIGJvdGhlciBpcyBhbiBvcGVuIHF1ZXN0aW9uLikKICAgICAgICA8L3A+PC90ZD48L3RyPjx0ciBjbGFzcz0icXVlc3Rpb24iIHRpdGxlPSIxNi4iPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxhIG5hbWU9ImRjb3AiPjwvYT48YSBuYW1lPSJpZHAyOTI2NTc3NiI+PC9hPjxwPjxiPjE2LjwvYj48L3A+PC90ZD48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48cD4KICAgICAgICAgIEhvdyBkb2VzIEQtQnVzIGRpZmZlciBmcm9tIERDT1A/CiAgICAgICAgPC9wPjwvdGQ+PC90cj48dHIgY2xhc3M9ImFuc3dlciI+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PC90ZD48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48cD4KICAgICAgICAgIFN0YXJ0IGJ5IHJlYWRpbmcgPGEgY2xhc3M9InhyZWYiIGhyZWY9IiNvdGhlci1pcGMiIHRpdGxlPSI5LiI+UTqgOTwvYT4uCiAgICAgICAgPC9wPjxwPgogICAgICAgICAgRC1CdXMgaXMgaW50ZW50aW9uYWxseSBwcmV0dHkgc2ltaWxhciB0byA8YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly9kZXZlbG9wZXIua2RlLm9yZy9kb2N1bWVudGF0aW9uL2xpYnJhcnkva2RlcXQvZGNvcC5odG1sIiB0YXJnZXQ9Il90b3AiPkRDT1A8L2E+LAogICAgICAgICAgYW5kIGNhbiBiZSB0aG91Z2h0IG9mIGFzIGEgIkRDT1AgdGhlIG5leHQgZ2VuZXJhdGlvbiIgc3VpdGFibGUgZm9yIAogICAgICAgICAgc2hhcmluZyBiZXR3ZWVuIHRoZSB2YXJpb3VzIG9wZW4gc291cmNlIGRlc2t0b3AgcHJvamVjdHMuCiAgICAgICAgPC9wPjxwPgogICAgICAgICAgRC1CdXMgaXMgYSBiaXQgbW9yZSBjb21wbGV4IHRoYW4gRENPUCwgdGhvdWdoIHRoZSBRdCBiaW5kaW5nIGZvciBELUJ1cwogICAgICAgICAgc2hvdWxkIG5vdCBiZSBtb3JlIGNvbXBsZXggZm9yIHByb2dyYW1tZXJzLiBUaGUgYWRkaXRpb25hbCBjb21wbGV4aXR5CiAgICAgICAgICBvZiBELUJ1cyBhcmlzZXMgZnJvbSBpdHMgc2VwYXJhdGlvbiBvZiBvYmplY3QgcmVmZXJlbmNlcyB2cy4gYnVzIG5hbWVzCiAgICAgICAgICB2cy4gaW50ZXJmYWNlcyBhcyBkaXN0aW5jdCBjb25jZXB0cywgYW5kIGl0cyBzdXBwb3J0IGZvciBvbmUtdG8tb25lCiAgICAgICAgICBjb25uZWN0aW9ucyBpbiBhZGRpdGlvbiB0byBjb25uZWN0aW9ucyBvdmVyIHRoZSBidXMuIFRoZSBsaWJkYnVzCiAgICAgICAgICByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24gaGFzIGEgbG90IG9mIEFQSSB0byBzdXBwb3J0IG11bHRpcGxlIGJpbmRpbmdzCiAgICAgICAgICBhbmQgbWFpbiBsb29wcywgYW5kIHBlcmZvcm1zIGRhdGEgdmFsaWRhdGlvbiBhbmQgb3V0LW9mLW1lbW9yeSBoYW5kbGluZyAKICAgICAgICAgIGluIG9yZGVyIHRvIHN1cHBvcnQgc2VjdXJlIGFwcGxpY2F0aW9ucyBzdWNoIGFzIHRoZSBzeXN0ZW13aWRlIGJ1cy4KICAgICAgICA8L3A+PHA+CiAgICAgICAgICBELUJ1cyBpcyBwcm9iYWJseSBzb21ld2hhdCBzbG93ZXIgdGhhbiBEQ09QIGR1ZSB0byBkYXRhIHZhbGlkYXRpb24gCiAgICAgICAgICBhbmQgbW9yZSAibGF5ZXJzIiBpbiB0aGUgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uLiBBIGNvbXBhcmlzb24gCiAgICAgICAgICBoYXNuJ3QgYmVlbiBwb3N0ZWQgdG8gdGhlIGxpc3QgdGhvdWdoLgogICAgICAgIDwvcD48cD4KICAgICAgICAgIEF0IHRoaXMgdGltZSwgS0RFIGhhcyBub3QgY29tbWl0dGVkIHRvIHVzaW5nIEQtQnVzLCBidXQgdGhlcmUgaGF2ZQogICAgICAgICAgYmVlbiBkaXNjdXNzaW9ucyBvZiBLREUgYnJpZGdpbmcgRC1CdXMgYW5kIERDT1AsIG9yIGV2ZW4gY2hhbmdpbmcKICAgICAgICAgIERDT1AncyBpbXBsZW1lbnRhdGlvbiB0byB1c2UgRC1CdXMgaW50ZXJuYWxseSAoc28gdGhhdCBHTk9NRSBhbmQgS0RFCiAgICAgICAgICB3b3VsZCBlbmQgdXAgdXNpbmcgZXhhY3RseSB0aGUgc2FtZSBidXMpLiBTZWUgdGhlIEtERSBtYWlsaW5nIGxpc3QgCiAgICAgICAgICBhcmNoaXZlcyBmb3Igc29tZSBvZiB0aGVzZSBkaXNjdXNzaW9ucy4KICAgICAgICA8L3A+PC90ZD48L3RyPjx0ciBjbGFzcz0icXVlc3Rpb24iIHRpdGxlPSIxNy4iPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxhIG5hbWU9InlldC1tb3JlLWlwYyI+PC9hPjxhIG5hbWU9ImlkcDI5MjcyNzY4Ij48L2E+PHA+PGI+MTcuPC9iPjwvcD48L3RkPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxwPgogICAgICAgICAgSG93IGRvZXMgRC1CdXMgZGlmZmVyIGZyb20gW3lldCBtb3JlIElQQyBtZWNoYW5pc21zXT8KICAgICAgICA8L3A+PC90ZD48L3RyPjx0ciBjbGFzcz0iYW5zd2VyIj48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48L3RkPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxwPgogICAgICAgICAgU3RhcnQgYnkgcmVhZGluZyA8YSBjbGFzcz0ieHJlZiIgaHJlZj0iI290aGVyLWlwYyIgdGl0bGU9IjkuIj5ROqA5PC9hPi4KICAgICAgICA8L3A+PHA+CiAgICAgICAgICBUaGVyZSBhcmUgY291bnRsZXNzIHVzZXMgb2YgbmV0d29yayBzb2NrZXRzIGluIHRoZSB3b3JsZC4gIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL3d3dy5tYnVzLm9yZy8iIHRhcmdldD0iX3RvcCI+TUJVUzwvYT4sIFN1biBPTkMvUlBDLCBKYWJiZXIvWE1QUCwKICAgICAgICAgIFNJUCwgYXJlIHNvbWUgd2UgY2FuIHRoaW5rIG9mIHF1aWNrbHkuCiAgICAgICAgPC9wPjwvdGQ+PC90cj48dHIgY2xhc3M9InF1ZXN0aW9uIiB0aXRsZT0iMTguIj48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48YSBuYW1lPSJ3aGljaC1pcGMiPjwvYT48YSBuYW1lPSJpZHAyOTI3NjcwNCI+PC9hPjxwPjxiPjE4LjwvYj48L3A+PC90ZD48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48cD4KICAgICAgICAgIFdoaWNoIElQQyBtZWNoYW5pc20gc2hvdWxkIEkgdXNlPwogICAgICAgIDwvcD48L3RkPjwvdHI+PHRyIGNsYXNzPSJhbnN3ZXIiPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjwvdGQ+PHRkIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+PHA+CiAgICAgICAgICBTdGFydCBieSByZWFkaW5nIDxhIGNsYXNzPSJ4cmVmIiBocmVmPSIjb3RoZXItaXBjIiB0aXRsZT0iOS4iPlE6oDk8L2E+LgogICAgICAgIDwvcD48cD4KICAgICAgICAgIElmIHlvdSdyZSB3cml0aW5nIGFuIEludGVybmV0IG9yIEludHJhbmV0IGFwcGxpY2F0aW9uLCBYTUwtUlBDIG9yIFNPQVAKICAgICAgICAgIHdvcmsgZm9yIG1hbnkgcGVvcGxlLiBUaGVzZSBhcmUgc3RhbmRhcmQsIGF2YWlsYWJsZSBmb3IgbW9zdAogICAgICAgICAgbGFuZ3VhZ2VzLCBzaW1wbGUgdG8gZGVidWcgYW5kIGVhc3kgdG8gdXNlLgogICAgICAgIDwvcD48cD4KICAgICAgICAgIElmIHlvdSdyZSB3cml0aW5nIGEgZGVza3RvcCBhcHBsaWNhdGlvbiBmb3IgVU5JWCwgCiAgICAgICAgICB0aGVuIEQtQnVzIGlzIG9mIGNvdXJzZSBvdXIgcmVjb21tZW5kYXRpb24gZm9yIAogICAgICAgICAgdGFsa2luZyB0byBvdGhlciBwYXJ0cyBvZiB0aGUgZGVza3RvcCBzZXNzaW9uLgogICAgICAgIDwvcD48cD4KICAgICAgICAgIEQtQnVzIGlzIGFsc28gZGVzaWduZWQgZm9yIGNvbW11bmljYXRpb25zIGJldHdlZW4gc3lzdGVtIGRhZW1vbnMgYW5kCiAgICAgICAgICBjb21tdW5pY2F0aW9ucyBiZXR3ZWVuIHRoZSBkZXNrdG9wIGFuZCBzeXN0ZW0gZGFlbW9ucy4KICAgICAgICA8L3A+PHA+CiAgICAgICAgICBJZiB5b3UncmUgZG9pbmcgc29tZXRoaW5nIGNvbXBsaWNhdGVkIHN1Y2ggYXMgY2x1c3RlcmluZywgCiAgICAgICAgICBkaXN0cmlidXRlZCBzd2FybXMsIHBlZXItdG8tcGVlciwgb3Igd2hhdGV2ZXIgdGhlbiAKICAgICAgICAgIHRoZSBhdXRob3JzIG9mIHRoaXMgRkFRIGRvbid0IGhhdmUgZXhwZXJ0aXNlIGluIHRoZXNlCiAgICAgICAgICBhcmVhcyBhbmQgeW91IHNob3VsZCBhc2sgc29tZW9uZSBlbHNlIG9yIHRyeSBhIHNlYXJjaCBlbmdpbmUuCiAgICAgICAgICBELUJ1cyBpcyBtb3N0IGxpa2VseSBhIHBvb3IgY2hvaWNlIGJ1dCBjb3VsZCBiZSBhcHByb3ByaWF0ZQogICAgICAgICAgZm9yIHNvbWUgdGhpbmdzLgogICAgICAgIDwvcD48cD4KICAgICAgICAgIE5vdGU6IHRoZSBELUJ1cyBtYWlsaW5nIGxpc3QgaXMgcHJvYmFibHkgbm90IHRoZSBwbGFjZSB0byAKICAgICAgICAgIGRpc2N1c3Mgd2hpY2ggc3lzdGVtIGlzIGFwcHJvcHJpYXRlIGZvciB5b3VyIGFwcGxpY2F0aW9uLCAKICAgICAgICAgIHRob3VnaCB5b3UgYXJlIHdlbGNvbWUgdG8gYXNrIHNwZWNpZmljIHF1ZXN0aW9ucyBhYm91dCAKICAgICAgICAgIEQtQnVzIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPmFmdGVyIHJlYWRpbmcgdGhpcyBGQVEsIHRoZSB0dXRvcmlhbCwgYW5kIAogICAgICAgICAgICBzZWFyY2hpbmcgdGhlIGxpc3QgYXJjaGl2ZXM8L2VtPjwvc3Bhbj4uIFRoZSBiZXN0IHdheSAKICAgICAgICAgIHRvIHNlYXJjaCB0aGUgbGlzdCBhcmNoaXZlcyBpcyBwcm9iYWJseSB0byB1c2UgCiAgICAgICAgICBhbiBJbnRlcm5ldCBlbmdpbmUgc3VjaCBhcyBHb29nbGUuIE9uIEdvb2dsZSwgCiAgICAgICAgICBpbmNsdWRlICJzaXRlOmZyZWVkZXNrdG9wLm9yZyIgaW4geW91ciBzZWFyY2guCiAgICAgICAgPC9wPjwvdGQ+PC90cj48dHIgY2xhc3M9InF1ZXN0aW9uIiB0aXRsZT0iMTkuIj48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48YSBuYW1lPSJpZHAyOTI4MjcwNCI+PC9hPjxhIG5hbWU9ImlkcDI5MjgyOTYwIj48L2E+PHA+PGI+MTkuPC9iPjwvcD48L3RkPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxwPgogICAgICAgICAgSG93IGNhbiBJIHN1Ym1pdCBhIGJ1ZyBvciBwYXRjaD8KICAgICAgICA8L3A+PC90ZD48L3RyPjx0ciBjbGFzcz0iYW5zd2VyIj48dGQgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj48L3RkPjx0ZCBhbGlnbj0ibGVmdCIgdmFsaWduPSJ0b3AiPjxwPgogICAgICAgICAgVGhlIEQtQnVzIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL2RidXMuZnJlZWRlc2t0b3Aub3JnIiB0YXJnZXQ9Il90b3AiPndlYiBzaXRlPC9hPgogICAgICAgICAgaGFzIGEgbGluayB0byB0aGUgYnVnIHRyYWNrZXIsIHdoaWNoIGlzIHRoZSBiZXN0IHBsYWNlIHRvIHN0b3JlCiAgICAgICAgICBwYXRjaGVzLiAgWW91IGNhbiBhbHNvIHBvc3QgdGhlbSB0byB0aGUgbGlzdCwgZXNwZWNpYWxseSBpZiB5b3Ugd2FudAogICAgICAgICAgdG8gZGlzY3VzcyB0aGUgcGF0Y2ggb3IgZ2V0IGZlZWRiYWNrLgogICAgICAgIDwvcD48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPjwvZGl2PjwvZGl2PjwvYm9keT48L2h0bWw+Cg==