PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8ZG9jdW1lbnQ+Cjxib2R5Pgo8c2VjdGlvbiBuYW1lPSJBeGlzMSBEZXBsb3ltZW50IFR1dG9yaWFsIj4KPHN1YnNlY3Rpb24gbmFtZT0iSW50cm9kdWN0aW9uIj5XU1M0SiAxLjUueCBjYW4gYmUgdXNlZCBmb3Igc2VjdXJpbmcgd2ViCnNlcnZpY2VzIGRlcGxveWVkIGluIHZpcnR1YWxseSBhbnkgYXBwbGljYXRpb24gc2VydmVyLCBidXQgaXQgaW5jbHVkZXMKc3BlY2lhbCBzdXBwb3J0IGZvciBBeGlzLiBXU1M0SiAxLjUueCBzaGlwcyB3aXRoIGhhbmRsZXJzIHRoYXQgY2FuIGJlIHVzZWQgaW4KQXhpcy1iYXNlZCB3ZWIKc2VydmljZXMgZm9yIGFuIGVhc3kgaW50ZWdyYXRpb24uIFRoZXNlIGhhbmRsZXJzIGNhbiBiZSBhZGRlZCB0byB0aGUKc2VydmljZSBkZXBsb3ltZW50CmRlc2NyaXB0b3IgKHdzZGQgZmlsZSkgdG8gYWRkIGEgV1MtU2VjdXJpdHkgbGF5ZXIgdG8gdGhlIHdlYiBzZXJ2aWNlLgpUaGlzIGlzIGEgc3RlcCBieSBzdGVwIHR1dG9yaWFsIGZvciBkZXBsb3lpbmcgYSBzaW1wbGUgc2VydmljZSB3aXRoClVzZXJuYW1lIFRva2VuLjxicj48L2JyPgo8YnI+PC9icj48L3N1YnNlY3Rpb24+PHN1YnNlY3Rpb24gbmFtZT0iUHJlcmVxdWlzaXRlcyI+PGEgaHJlZj0iaHR0cDovL3dzLmFwYWNoZS5vcmcvYXhpcy8iPkF4aXMKMS4yPC9hPiBpbnN0YWxsZWQgYW5kIGNvbmZpZ3VyZWQgb24gYSA8YSBocmVmPSJodHRwOi8vamFrYXJ0YS5hcGFjaGUub3JnL3RvbWNhdC8iPlRvbWNhdCBTZXJ2ZXI8L2E+LqAgVGhpcwp0dXRvcmlhbCB3YXMgcGVyZm9ybWVkIG9uIGEgTGludXggbWFjaGluZSB3aXRoIFRvbWNhdCA1LjUuNC9KYXZhIDEuNS4wLApob3dldmVyLCB0aGUgc2V0dXAgc2hvdWxkIGJlIHNpbWlsYXIgb24gb3RoZXIgYXBwbGljYXRpb24gc2VydmVycywgb3IKb3RoZXIgb3BlcmF0aW5nIHN5c3RlbXMgKGxpa2UgV2luZG93cykgdW5sZXNzIHdlIHN0YXRlZCBvdGhlcndpc2UuPGJyPjwvYnI+Cjwvc3Vic2VjdGlvbj4KPHN1YnNlY3Rpb24gbmFtZT0iU3RlcHMiPjwvc3Vic2VjdGlvbj4KPHN1YnNlY3Rpb24gbmFtZT0iSW5zdGFsbGluZyBXU1M0SiI+CjxvbD4KICA8bGk+RG93bmxvYWQgdGhlIFdTUzRKIGJpbmFyaWVzIG9yIGJ1aWxkIGl0IGZyb20gc291cmNlczxicj48L2JyPgogIDwvbGk+CiAgPGxpPkNvcHkgdGhlIGNvbnRlbnRzIG9mIHRoZSBXU1M0SiBsaWIgZGlyZWN0b3J5IHRvIHlvdXIgQXhpcwpXRUItSU5GL2xpYiBkaXJlY3RvcnkuIE1hbnkgamFyIGZpbGVzIHdpbGwgYWxyZWFkeSBleGlzdC4gTW9zdCBvZiB0aGVtCndpbGwgYWxyZWFkeSBleGlzdCB0aGVyZSBidXQgeW91IGNhbiBqdXN0IG92ZXJ3cml0ZSB0aGVtIGFsbC48L2xpPgogIDxsaT5Zb3UgbWF5IG5lZWQgdG8gcmVzdGFydCBUb21jYXQgdW5sZXNzIHlvdSBoYXZlIGF1dG9tYXRpYwpkZXBsb3ltZW50L2NsYXNzIGxvYWRpbmcgdHVybmVkIG9uLiBDaGVjayB0aGUgQXhpcyBIYXBwaW5lc3MgUGFnZQoodHlwaWNhbGx5IGF0IGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9heGlzKSwgbWFrZSBzdXJlIHRoYXQgdGhlIFhNTApTZWN1cml0eSAoeG1sc2VjLmphcikgaXMgbGlzdGVkIHVuZGVyIHRoZSAiT3B0aW9uYWwgQ29tcG9uZW50cyIgc2VjdGlvbi48L2xpPgo8L29sPgo8aDQ+Q3JlYXRpbmcgdGhlIFNlcnZpY2U8L2g0Pgo8b2w+CjxsaT5UaGlzIHR1dG9yaWFsIHdpbGwgc2VjdXJlIHRoZSBTdG9ja1F1b3RlU2VydmljZSB3aGljaCBzaGlwcwp3aXRoIEF4aXMuIFVubGVzcyB5b3UgaGF2ZSBvbmUgYWxyZWFkeSwgY3JlYXRlIGEgZGVwbG95bWVudCBkZXNjcmlwdG9yCihkZXBsb3kud3NkZCkgZmlsZSB3aXRoIHRoZSBmb2xsb3dpbmcgY29udGVudHM6PC9saT4KPC9vbD4KPG9sIHN0YXJ0PSIyIj4KICA8YnI+PC9icj4KICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+Jmx0O2RlcGxveW1lbnQKeG1sbnM9Imh0dHA6Ly94bWwuYXBhY2hlLm9yZy9heGlzL3dzZGQvIgp4bWxuczpqYXZhPSJodHRwOi8veG1sLmFwYWNoZS5vcmcvYXhpcy93c2RkL3Byb3ZpZGVycy9qYXZhIiZndDs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6gJmx0O3NlcnZpY2UKbmFtZT0ic3RvY2std3NzLTAxIiBwcm92aWRlcj0iamF2YTpSUEMiIHN0eWxlPSJkb2N1bWVudCIKdXNlPSJsaXRlcmFsIiZndDs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6gICZsdDtwYXJhbWV0ZXIKbmFtZT0iY2xhc3NOYW1lIiB2YWx1ZT0ic2FtcGxlcy5zdG9jay5TdG9ja1F1b3RlU2VydmljZSIvJmd0Ozwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqAgJmx0O3BhcmFtZXRlcgpuYW1lPSJhbGxvd2VkTWV0aG9kcyIgdmFsdWU9ImdldFF1b3RlIi8mZ3Q7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oCAmbHQ7cGFyYW1ldGVyCm5hbWU9InNjb3BlIiB2YWx1ZT0iYXBwbGljYXRpb24iLyZndDs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6gJmx0Oy9zZXJ2aWNlJmd0Ozwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPiZsdDsvZGVwbG95bWVudCZndDs8YnI+PC9icj4KICA8YnI+PC9icj4KICA8L3NwYW4+PGxpPmRlcGxveSB0aGUgc2VydmljZSAodXNpbmcgQXhpc0FkbWluKTo8L2xpPgo8L29sPgo8b2w+CiAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPmphdmEKb3JnLmFwYWNoZS5heGlzLmNsaWVudC5BZG1pbkNsaWVudAotbGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9heGlzL3NlcnZpY2VzL0FkbWluU2VydmljZSBkZXBsb3kud3NkZDxicj48L2JyPgogIDwvc3Bhbj4KPC9vbD4KPGg0PkNyZWF0aW5nIHRoZSBDbGllbnQ8L2g0Pgo8b2w+CiAgPGxpPlVzZSBXU0RMMkphdmEgdG8gZ2VuZXJhdGUgdGhlIGNsaWVudCBzZXJ2aWNlIGJpbmRpbmdzOjxicj48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPmphdmEKb3JnLmFwYWNoZS5heGlzLndzZGwuV1NETDJKYXZhIC1vIC4KLU5odHRwOi8vZm94OjgwODAvYXhpcy9zZXJ2aWNlcy9zdG9jay13c3MtMDEgc2FtcGxlcy5zdG9jay5jbGllbnQKaHR0cDovL2ZveDo4MDgwL2F4aXMvc2VydmljZXMvc3RvY2std3NzLTAxP3dzZGw8L3NwYW4+PGJyPjwvYnI+CiAgICA8YnI+PC9icj4KQSBidW5jaCBvZiBqYXZhIGNsYXNzZXMgd2lsbCBiZSBjcmVhdGVkIHVuZGVyIHNhbXBsZXMvc3RvY2svY2xpZW50LAppbmNsdWRpbmcgdGhlIFN0b2NrUXVvdGVTZXJ2aWNlU2VydmljZUxvY2F0b3IuPGJyPjwvYnI+CiAgICA8YnI+PC9icj4KICA8L2xpPgogIDxsaT5Xcml0ZSBhIHNpbXBsZSBqYXZhIGNsaWVudCB0aGF0IHVzZXMgdGhlIGdlbmVyYXRlZCBzZXJ2aWNlCmxvY2F0b3IuIEZvciBleGFtcGxlOjxicj48L2JyPgogICAgPGJyPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+cGFja2FnZSBzYW1wbGVzLnN0b2NrLmNsaWVudDs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPmltcG9ydApqYXZhLnJtaS5SZW1vdGVFeGNlcHRpb247PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij5pbXBvcnQKamF2YXgueG1sLnJwYy5TZXJ2aWNlRXhjZXB0aW9uOzwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+cHVibGljIGNsYXNzClN0b2NrU2VydmljZUNsaWVudCB7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKAgcHVibGljClN0b2NrU2VydmljZUNsaWVudCgpIHs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqCgoCB9PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKAgcHVibGljCnN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgdGhyb3dzIFNlcnZpY2VFeGNlcHRpb24sClJlbW90ZUV4Y2VwdGlvbiB7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKCgoKCgCmlmIChhcmdzLmxlbmd0aCA9PSAwKSB7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKCgoKCgoKCgoApTeXN0ZW0ub3V0LnByaW50bG4oIlVzYWdlOlxuamF2YSBTdG9ja1NlcnZpY2VDbGllbnQgW3N5bWJvbF0iKTs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqCgoKCgoKCgoKCgCnJldHVybjs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqCgoKCgoKAKfTwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oKCgoKCgoApTdG9ja1F1b3RlU2VydmljZVNlcnZpY2UgbG9jYXRvciA9IG5ldwpTdG9ja1F1b3RlU2VydmljZVNlcnZpY2VMb2NhdG9yKCk7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKCgoKCgClN0b2NrUXVvdGVTZXJ2aWNlIHNlcnZpY2UgPSBsb2NhdG9yLmdldFN0b2NrV3NzMDEoKTs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqCgoKCgoKAKZmxvYXQgcXVvdGUgPSBzZXJ2aWNlLmdldFF1b3RlKGFyZ3NbMF0pOzwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oKCgoKCgoApTeXN0ZW0ub3V0LnByaW50bG4oInN0b2NrIHF1b3RlIHNlcnZpY2UgcmV0dXJuZWQgIiArIGFyZ3NbMF0gKyAiOiAiICsKcXVvdGUpOzwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oKCgIH08L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPn08L3NwYW4+PGJyPjwvYnI+CiAgICA8YnI+PC9icj4KICA8L2xpPgogIDxsaT5ydW4gdGhlIGNsaWVudDo8YnI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij5qYXZhCnNhbXBsZXMuc3RvY2suY2xpZW50LlN0b2NrU2VydmljZUNsaWVudCBJQk08L3NwYW4+PGJyPjwvYnI+CiAgICA8YnI+PC9icj4KSWYgYWxsIHdlbnQgd2VsbCwgeW91IHNob3VsZCBnZXQgdGhlIHJlc3VsdDo8YnI+PC9icj4KICAgIDxicj48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvc3Bhbj4gPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPnN0b2NrIHF1b3RlIHNlcnZpY2UgcmV0dXJuZWQgSUJNOiA5NS42ODwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PGJyPjwvYnI+CiAgICA8L3NwYW4+PC9saT4KPC9vbD4KPGgzPlVzZXJuYW1lIFRva2VuPC9oMz4KPGg0PkNvbmZpZ3VyaW5nIHRoZSBTZXJ2aWNlPGJyPjwvYnI+CjwvaDQ+CjxvbD4KICA8bGk+TW9kaWZ5IHRoZSBkZXBsb3ltZW50IGRlc2NyaXB0b3IgeW91IGNyZWF0ZWQgYWJvdmUgdG8gbG9vayBsaWtlCnRoaXM6PGJyPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+Jmx0O2RlcGxveW1lbnQKeG1sbnM9Imh0dHA6Ly94bWwuYXBhY2hlLm9yZy9heGlzL3dzZGQvIgp4bWxuczpqYXZhPSJodHRwOi8veG1sLmFwYWNoZS5vcmcvYXhpcy93c2RkL3Byb3ZpZGVycy9qYXZhIiZndDs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqAmbHQ7c2VydmljZQpuYW1lPSJzdG9jay13c3MtMDEiIHByb3ZpZGVyPSJqYXZhOlJQQyIgc3R5bGU9ImRvY3VtZW50Igp1c2U9ImxpdGVyYWwiJmd0Ozwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyBmb250LXdlaWdodDogYm9sZDsiPqAKJmx0O3JlcXVlc3RGbG93Jmd0Ozwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsgZm9udC13ZWlnaHQ6IGJvbGQ7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsgZm9udC13ZWlnaHQ6IGJvbGQ7Ij6goAombHQ7aGFuZGxlciB0eXBlPSJqYXZhOm9yZy5hcGFjaGUud3MuYXhpcy5zZWN1cml0eS5XU0RvQWxsUmVjZWl2ZXIiJmd0Ozwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsgZm9udC13ZWlnaHQ6IGJvbGQ7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsgZm9udC13ZWlnaHQ6IGJvbGQ7Ij6goKAKJmx0O3BhcmFtZXRlciBuYW1lPSJwYXNzd29yZENhbGxiYWNrQ2xhc3MiIHZhbHVlPSJQV0NhbGxiYWNrIi8mZ3Q7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyBmb250LXdlaWdodDogYm9sZDsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyBmb250LXdlaWdodDogYm9sZDsiPqCgoAombHQ7cGFyYW1ldGVyIG5hbWU9ImFjdGlvbiIgdmFsdWU9IlVzZXJuYW1lVG9rZW4iLyZndDs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7IGZvbnQtd2VpZ2h0OiBib2xkOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7IGZvbnQtd2VpZ2h0OiBib2xkOyI+PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7IGZvbnQtd2VpZ2h0OiBib2xkOyI+oKAKJmx0Oy9oYW5kbGVyJmd0Ozwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsgZm9udC13ZWlnaHQ6IGJvbGQ7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsgZm9udC13ZWlnaHQ6IGJvbGQ7Ij6gCiZsdDsvcmVxdWVzdEZsb3cmZ3Q7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6gICZsdDtwYXJhbWV0ZXIKbmFtZT0iY2xhc3NOYW1lIiB2YWx1ZT0ic2FtcGxlcy5zdG9jay5TdG9ja1F1b3RlU2VydmljZSIvJmd0Ozwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oCAmbHQ7cGFyYW1ldGVyCm5hbWU9ImFsbG93ZWRNZXRob2RzIiB2YWx1ZT0iZ2V0UXVvdGUiLyZndDs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqAgJmx0O3BhcmFtZXRlcgpuYW1lPSJzY29wZSIgdmFsdWU9ImFwcGxpY2F0aW9uIi8mZ3Q7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6gJmx0Oy9zZXJ2aWNlJmd0Ozwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+Jmx0Oy9kZXBsb3ltZW50Jmd0Ozxicj48L2JyPgogICAgPGJyPjwvYnI+CiAgICA8L3NwYW4+V1NEb0FsbFJlY2VpdmVyIGlzIGFuIEF4aXMgaGFuZGxlciB0aGF0IGNhbiBiZSBsb2NhdGVkIGluCndzczRqLmphci4gVGhpcyBpcyB0aGUgc3RhbmRhcmQgd2F5IHRvIGRlcGxveSBhbiBBeGlzIGhhbmRsZXIuIEZvciBtb3JlCmRldGFpbHMgcGxlYXNlIHJlZmVyIHRvIHRoZSBBeGlzIGhhbmRsZXIgZm9yIFdTUzRKIGRvY3VtZW50YXRpb24uPGJyPjwvYnI+CiAgICA8YnI+PC9icj4KICA8L2xpPgogIDxsaT5DcmVhdGUgYSBjbGFzcyBuYW1lZCBQV0NhbGxiYWNrLmphdmEgYW5kIGNvbXBpbGUgaXQgaW50byB5b3VyCkF4aXMgV0VCLUlORi9jbGFzc2VzIGRpcmVjdG9yeS4gSW4gdGhpcyBleGFtcGxlIEkgdXNlZCB0aGUgZGVmYXVsdApwYWNrYWdlIGZvciBzaW1wbGljaXR5LCBidXQgeW91IG1pZ2h0IG5lZWQgdG8gdXNlIHRoZSBmdWxseSBxdWFsaWZpZWQKY2xhc3MgbmFtZSAoYmUgY29uc2lzdGVudAp3aXRoIHRoZSBkZXBsb3ltZW50IGRlc2NyaXB0b3IpLjxicj48L2JyPgogICAgPGJyPjwvYnI+ClRoZSBmb2xsb3dpbmcgY29kZSBzbmlwcGV0IHNob3dzIGEgc2ltcGxlIHBhc3N3b3JkIGNhbGxiYWNrIGNsYXNzOjxicj48L2JyPgogICAgPGJyPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+aW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij5pbXBvcnQKamF2YXguc2VjdXJpdHkuYXV0aC5jYWxsYmFjay5DYWxsYmFjazs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPmltcG9ydApqYXZheC5zZWN1cml0eS5hdXRoLmNhbGxiYWNrLkNhbGxiYWNrSGFuZGxlcjs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPmltcG9ydApqYXZheC5zZWN1cml0eS5hdXRoLmNhbGxiYWNrLlVuc3VwcG9ydGVkQ2FsbGJhY2tFeGNlcHRpb247PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij5pbXBvcnQKb3JnLmFwYWNoZS53cy5zZWN1cml0eS5XU1Bhc3N3b3JkQ2FsbGJhY2s7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij5wdWJsaWMgY2xhc3MgUFdDYWxsYmFjawppbXBsZW1lbnRzIENhbGxiYWNrSGFuZGxlciB7PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oCCgIHB1YmxpYyB2b2lkCmhhbmRsZShDYWxsYmFja1tdIGNhbGxiYWNrcyk8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPgp0aHJvd3MgSU9FeGNlcHRpb24sIFVuc3VwcG9ydGVkQ2FsbGJhY2tFeGNlcHRpb24gezwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oKCgoKCgoApmb3IgKGludCBpID0gMDsgaSAmbHQ7IGNhbGxiYWNrcy5sZW5ndGg7IGkrKykgezwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oKCgoKCgoKCgoKAKaWYgKGNhbGxiYWNrc1tpXSBpbnN0YW5jZW9mIFdTUGFzc3dvcmRDYWxsYmFjaykgezwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oKCgoKCgoKCgoKCgoKCgCldTUGFzc3dvcmRDYWxsYmFjayBwYyA9IChXU1Bhc3N3b3JkQ2FsbGJhY2spY2FsbGJhY2tzW2ldOzxicj48L2JyPgqgoKCgoKCgoKCgoKCgoKAKLy8gc2V0IHRoZSBwYXNzd29yZCBnaXZlbiBhIHVzZXJuYW1lPGJyPjwvYnI+CiAgICA8L3NwYW4+oKCgoKCgoKCgoKCgoKCgCiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+aWYKKCJ3c3M0aiIuZXF1YWxzKHBjLmdldElkZW50aWZpZXIoKSkpIHs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqCgoKCgoKCgoKCgoKCgoKCgoKAKcGMuc2V0UGFzc3dvcmQoInNlY3VyaXR5Iik7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKCgoKCgoKCgoKCgoKAKfTwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKCgoKCgoKCgoAp9IGVsc2Ugezwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oKCgoKCgoKCgoKCgoKCgCnRocm93IG5ldyBVbnN1cHBvcnRlZENhbGxiYWNrRXhjZXB0aW9uKDwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+Y2FsbGJhY2tzW2ldLCAiVW5yZWNvZ25pemVkIENhbGxiYWNrIik7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKCgoKCgoKCgoAp9PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKCgoKCgCn08L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqCgoCB9PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij59PC9zcGFuPjxicj48L2JyPgogICAgPHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OiBib2xkOyI+PC9zcGFuPjxicj48L2JyPgogICAgPGJyPjwvYnI+CiAgICA8YnI+PC9icj4KICA8L2xpPgogIDxsaT5SZWRlcGxveSB0aGUgc2VydmljZS4gWW91ciBzZXJ2aWNlIHNob3VsZCBub3cgYmUgZXhwZWN0aW5nIGEgV1NTClVzZXJuYW1lIFRva2VuIGluIGluIHRoZSBpbmNvbWluZyByZXF1ZXN0cywgYW5kIGNsaWVudHMgc2hvdWxkIHNlbmQgdGhlCnVzZXJuYW1lICJ3c3M0aiIgYW5kIHBhc3N3b3JkICJzZWN1cml0eSIgdG8gZ2V0IHRocm91Z2guPGJyPjwvYnI+CiAgPC9saT4KPC9vbD4KPGg0PkNvbmZpZ3VyaW5nIHRoZSBDbGllbnQ8L2g0Pgo8b2w+CiAgPGxpPnJ1biB0aGUgY2xpZW50IHdlIGNyZWF0ZWQgYWdhaW46PGJyPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+amF2YQpzYW1wbGVzLnN0b2NrLmNsaWVudC5TdG9ja1NlcnZpY2VDbGllbnQgSUJNPC9zcGFuPjxicj48L2JyPgogICAgPGJyPjwvYnI+CllvdSBzaG91bGQgbm93IGdldCBhbiBlcnJvcjo8YnI+PC9icj4KICAgIDxicj48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPkV4Y2VwdGlvbiBpbiB0aHJlYWQgIm1haW4iCkF4aXNGYXVsdDwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oGZhdWx0Q29kZToKe2h0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3NvYXAvZW52ZWxvcGUvfVNlcnZlci5nZW5lcmFsRXhjZXB0aW9uPC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6gZmF1bHRTdWJjb2RlOjwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oGZhdWx0U3RyaW5nOgpXU0RvQWxsUmVjZWl2ZXI6IFJlcXVlc3QgZG9lcyBub3QgY29udGFpbiByZXF1aXJlZCBTZWN1cml0eSBoZWFkZXI8L3NwYW4+PGJyPjwvYnI+CiAgICA8YnI+PC9icj4KVGhpcyBpcyBiZWNhdXNlIHlvdXIgY2xpZW50IGlzIG5vdCBjb25maWd1cmVkIHRvIHNlbmQgYSBVc2VybmFtZSBUb2tlbgp5ZXQsIHNvIHRoZSBzZXJ2aWNlIGlzIHJlamVjdGluZyB0aGUgcmVxdWVzdC48YnI+PC9icj4KICAgIDxicj48L2JyPgogIDwvbGk+CiAgPGxpPkNyZWF0ZSBhIGRlcGxveW1lbnQgZGVzY3JpcHRvciBmaWxlIChjbGllbnRfZGVwbG95LndzZGQpIGZvciB0aGUKY2xpZW50Ojxicj48L2JyPgogICAgPGJyPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+Jmx0O2RlcGxveW1lbnQKeG1sbnM9Imh0dHA6Ly94bWwuYXBhY2hlLm9yZy9heGlzL3dzZGQvIgp4bWxuczpqYXZhPSJodHRwOi8veG1sLmFwYWNoZS5vcmcvYXhpcy93c2RkL3Byb3ZpZGVycy9qYXZhIiZndDs8YnI+PC9icj4KoCZsdDt0cmFuc3BvcnQgbmFtZT0iaHR0cCIKcGl2b3Q9ImphdmE6b3JnLmFwYWNoZS5heGlzLnRyYW5zcG9ydC5odHRwLkhUVFBTZW5kZXIiLyZndDs8YnI+PC9icj4KoCAmbHQ7Z2xvYmFsQ29uZmlndXJhdGlvbiAmZ3Q7PGJyPjwvYnI+CqCgICZsdDtyZXF1ZXN0RmxvdyAmZ3Q7PGJyPjwvYnI+CqCgoCAmbHQ7aGFuZGxlcgp0eXBlPSJqYXZhOm9yZy5hcGFjaGUud3MuYXhpcy5zZWN1cml0eS5XU0RvQWxsU2VuZGVyIiAmZ3Q7PGJyPjwvYnI+CqCgoKAgJmx0O3BhcmFtZXRlciBuYW1lPSJhY3Rpb24iCnZhbHVlPSJVc2VybmFtZVRva2VuIi8mZ3Q7PGJyPjwvYnI+CqCgoKAgJmx0O3BhcmFtZXRlciBuYW1lPSJ1c2VyIiB2YWx1ZT0id3NzNGoiLyZndDs8YnI+PC9icj4KoKCgoCAmbHQ7cGFyYW1ldGVyIG5hbWU9InBhc3N3b3JkQ2FsbGJhY2tDbGFzcyIKdmFsdWU9InNhbXBsZXMuc3RvY2suY2xpZW50LlBXQ2FsbGJhY2siLyZndDs8YnI+PC9icj4KoKCgoCAmbHQ7cGFyYW1ldGVyIG5hbWU9InBhc3N3b3JkVHlwZSIKdmFsdWU9IlBhc3N3b3JkRGlnZXN0Ii8mZ3Q7PGJyPjwvYnI+CqCgoCAmbHQ7L2hhbmRsZXImZ3Q7PGJyPjwvYnI+CqCgICZsdDsvcmVxdWVzdEZsb3cgJmd0Ozxicj48L2JyPgqgICZsdDsvZ2xvYmFsQ29uZmlndXJhdGlvbiAmZ3Q7PGJyPjwvYnI+CiZsdDsvZGVwbG95bWVudCZndDs8L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvc3Bhbj48YnI+PC9icj4KICAgIDxicj48L2JyPgogIDwvbGk+CiAgPGxpPkNyZWF0ZSB0aGUgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPnNhbXBsZXMuc3RvY2suY2xpZW50LlBXQ2FsbGJhY2s8L3NwYW4+CmNsYXNzOjxicj48L2JyPgogICAgPGJyPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+cGFja2FnZSBzYW1wbGVzLnN0b2NrLmNsaWVudDs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPmltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOzwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+aW1wb3J0CmphdmF4LnNlY3VyaXR5LmF1dGguY2FsbGJhY2suQ2FsbGJhY2s7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij5pbXBvcnQKamF2YXguc2VjdXJpdHkuYXV0aC5jYWxsYmFjay5DYWxsYmFja0hhbmRsZXI7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij5pbXBvcnQKamF2YXguc2VjdXJpdHkuYXV0aC5jYWxsYmFjay5VbnN1cHBvcnRlZENhbGxiYWNrRXhjZXB0aW9uOzwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+aW1wb3J0Cm9yZy5hcGFjaGUud3Muc2VjdXJpdHkuV1NQYXNzd29yZENhbGxiYWNrOzwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+LyoqPC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6gKiBQV0NhbGxiYWNrIGZvciB0aGUKQ2xpZW50PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6gKi88L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPnB1YmxpYyBjbGFzcyBQV0NhbGxiYWNrCmltcGxlbWVudHMgQ2FsbGJhY2tIYW5kbGVyIHs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqCgoCAvKio8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqCgoKAgKgpAc2VlCmphdmF4LnNlY3VyaXR5LmF1dGguY2FsbGJhY2suQ2FsbGJhY2tIYW5kbGVyI2hhbmRsZShqYXZheC5zZWN1cml0eS5hdXRoLmNhbGxiYWNrLkNhbGxiYWNrW10pPC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKCgICovPC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKAgcHVibGljIHZvaWQKaGFuZGxlKENhbGxiYWNrW10gY2FsbGJhY2tzKSB0aHJvd3MgSU9FeGNlcHRpb24sPC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKCgoKCgoKCgoKCgoKCgoKCgClVuc3VwcG9ydGVkQ2FsbGJhY2tFeGNlcHRpb24gezwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oKCgoKCgoApmb3IgKGludCBpID0gMDsgaSAmbHQ7IGNhbGxiYWNrcy5sZW5ndGg7IGkrKykgezwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oKCgoKCgoKCgoKAKaWYgKGNhbGxiYWNrc1tpXSBpbnN0YW5jZW9mIFdTUGFzc3dvcmRDYWxsYmFjaykgezwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oKCgoKCgoKCgoKCgoKCgCldTUGFzc3dvcmRDYWxsYmFjayBwYyA9IChXU1Bhc3N3b3JkQ2FsbGJhY2spY2FsbGJhY2tzW2ldOzwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oKCgoKCgoKCgoKCgoKCgCi8vIHNldCB0aGUgcGFzc3dvcmQgZ2l2ZW4gYSB1c2VybmFtZTwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oKCgoKCgoKCgoKCgoKCgCmlmICgid3NzNGoiLmVxdWFscyhwYy5nZXRJZGVudGlmaWVyKCkpKSB7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKCgoKCgoKCgoKCgoKCgoKCgCnBjLnNldFBhc3N3b3JkKCJzZWN1cml0eSIpOzwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+oKCgoKCgoKCgoKCgoKCgCn08L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqCgoKCgoKCgoKCgCn0gZWxzZSB7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKCgoKCgoKCgoKCgoKAKdGhyb3cgbmV3IFVuc3VwcG9ydGVkQ2FsbGJhY2tFeGNlcHRpb24oY2FsbGJhY2tzW2ldLCAiVW5yZWNvZ25pemVkCkNhbGxiYWNrIik7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKCgoKCgoKCgoAp9PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij6goKCgoKCgCn08L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPqCgoCB9PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij59PC9zcGFuPjxicj48L2JyPgogICAgPGJyPjwvYnI+CiAgPC9saT4KICA8bGk+RGVmaW5lIHRoZSBzeXN0ZW0gcHJvcGVydHkgYXhpcy5DbGllbnRDb25maWdGaWxlIGZvciB5b3VyIGNsaWVudDo8YnI+PC9icj4KICAgIDxicj48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPmphdmEKLURheGlzLkNsaWVudENvbmZpZ0ZpbGU9Y2xpZW50X2RlcGxveS53c2RkIC1jbGFzc3BhdGggJEFYSVNDTEFTU1BBVEgKc2FtcGxlcy5zdG9jay5jbGllbnQuU3RvY2tTZXJ2aWNlQ2xpZW50PC9zcGFuPjxicj48L2JyPgogICAgPGJyPjwvYnI+Ck1ha2Ugc3VyZSB0aGF0IHlvdXIgY2xhc3NwYXRoIGluY2x1ZGVzIHRoZSBqYXIgZmlsZXMgdW5kZXIgV0VCLUlORi9saWIuPGJyPjwvYnI+CiAgICA8YnI+PC9icj4KQW5vdGhlciB3YXkgdG8gZG8gdGhpcyBpcyB0byBzcGVjaWZ5IHRoZSB3c2RkIGZpbGUgaW4geW91cgpTdG9ja1NlcnZpY2VDbGllbnQgdG8gdGhlIHNlcnZpY2UgbG9jYXRvciBwcm9ncmFtbWF0aWNhbGx5Ojxicj48L2JyPgogICAgPGJyPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+Li4uPC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij5pbXBvcnQKb3JnLmFwYWNoZS5heGlzLkVuZ2luZUNvbmZpZ3VyYXRpb247PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij5pbXBvcnQKb3JnLmFwYWNoZS5heGlzLmNvbmZpZ3VyYXRpb24uRmlsZVByb3ZpZGVyOzwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+Li4uPC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij5FbmdpbmVDb25maWd1cmF0aW9uIGNvbmZpZyA9Cm5ldyBGaWxlUHJvdmlkZXIoImNsaWVudF9kZXBsb3kud3NkZCIpOzwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+U3RvY2tRdW90ZVNlcnZpY2VTZXJ2aWNlCmxvY2F0b3IgPSBuZXcgU3RvY2tRdW90ZVNlcnZpY2VTZXJ2aWNlTG9jYXRvcihjb25maWcpOzwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+Li4uPC9zcGFuPjxicj48L2JyPgogICAgPGJyPjwvYnI+CiAgPC9saT4KICA8bGk+UnVuIHRoZSBjbGllbnQsIHlvdSBzaG91bGQgZ2V0IG5vIGVycm9yczo8YnI+PC9icj4KICAgIDxicj48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPnN0b2NrIHF1b3RlIHNlcnZpY2UgcmV0dXJuZWQKSUJNOiA5NS43PC9zcGFuPjxicj48L2JyPgogICAgPGJyPjwvYnI+CllvdXIgY2xpZW50IGlzIG5vdyBzZW5kaW5nIGEgVXNlcm5hbWUgVG9rZW4gaW4gdGhlIHdzc2UgcmVxdWVzdCBoZWFkZXIKd2l0aCB0aGUgdXNlcm5hbWUgIndzczRqIiAoc2VlIGNsaWVudF9kZXBsb3kud3NkZCkgYW5kIHBhc3N3b3JkCiJzZWN1cml0eSIgKHNlZSB0aGUgUFdDYWxsYmFjayBpbXBsZW1lbnRhdGlvbikuPGJyPjwvYnI+CiAgICA8YnI+PC9icj4KQW5vdGhlciB3YXkgdG8gZG8gdGhpcyBpcyB0byBoYXZlIHRoZSBjbGllbnQgYXBwbGljYXRpb24gc2V0IHRoZQp1c2VybmFtZSBhbmQgQ2FsbGJhY2tIYW5kbGVyIGltcGxlbWVudGF0aW9uIHByb2dyYW1tYXRpY2FsbHkgaW5zdGVhZCBvZgpjbGllbnRfZGVwbG95LndzZGQ6PGJyPjwvYnI+CiAgICA8YnI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij4uLi48L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPmltcG9ydApvcmcuYXBhY2hlLmF4aXMuY2xpZW50LlN0dWI7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij4uLi48L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPlJlbW90ZSByZW1vdGUgPQpsb2NhdG9yLmdldFBvcnQoU3RvY2tRdW90ZVNlcnZpY2UuY2xhc3MpOzwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+U3R1YiBheGlzUG9ydCA9IChTdHViKXJlbW90ZTs8L3NwYW4+PGJyIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij48L2JyPgogICAgPHNwYW4gc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPmF4aXNQb3J0Ll9zZXRQcm9wZXJ0eShVc2VybmFtZVRva2VuLlBBU1NXT1JEX1RZUEUsCldTQ29uc3RhbnRzLlBBU1NXT1JEX0RJR0VTVCk7PC9zcGFuPjxiciBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+PC9icj4KICAgIDxzcGFuIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDE1Myk7Ij5heGlzUG9ydC5fc2V0UHJvcGVydHkoV1NIYW5kbGVyQ29uc3RhbnRzLlVTRVIsCiJ3c3M0aiIpOzwvc3Bhbj48YnIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgMCwgMTUzKTsiPjwvYnI+CiAgICA8c3BhbiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+YXhpc1BvcnQuX3NldFByb3BlcnR5KFdTSGFuZGxlckNvbnN0YW50cy5QV19DQUxMQkFDS19SRUYsCnB3Q2FsbGJhY2spOzwvc3Bhbj48YnI+PC9icj4KICAgIDxicj48L2JyPgp3aGVyZSAicHdDYWxsYmFjayIgaXMgYSByZWZlcmVuY2UgdG8gYSBQV0NhbGxiYWNrIGltcGxlbWVudGF0aW9uLiBTZWUKdGhlIEF4aXMgaGFuZGxlciBmb3IgV1NTNEogZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzIG9uIHRoaXMuPGJyPjwvYnI+CiAgICA8YnI+PC9icj4KICA8L2xpPgogIDxsaT5UcnkgbW9kaWZ5aW5nIHlvdXIgY2xpZW50J3MgUFdDYWxsYmFjayB0byByZXR1cm4gdGhlIHdyb25nCnBhc3N3b3JkLCBvciBzZW5kIHRoZSB3cm9uZyB1c2VybmFtZS4gVGhlIHNlcnZpY2Ugc2hvdWxkIHJlamVjdCB5b3VyCnJlcXVlc3RzLjwvbGk+Cjwvb2w+Cjxicj48L2JyPgo8YnI+PC9icj48YnI+PC9icj4KPC9zdWJzZWN0aW9uPgo8L3NlY3Rpb24+CjwvYm9keT4KPC9kb2N1bWVudD4=