JavaScript must be enabled to play.
Browser lacks capabilities required to play.
Upgrade or switch to another browser.
Loading…
PHN0eWxlIHJvbGU9InN0eWxlc2hlZXQiIGlkPSJ0d2luZS11c2VyLXN0eWxlc2hlZXQiIHR5cGU9InRleHQvdHdpbmUtY3NzIj4jdWktYmFye2Rpc3BsYXk6bm9uZX1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OlJhd3Nvbk1lZGl1bTtzcmM6dXJsKGFzc2V0cy9mb250L1Jhd3Nvbk1lZGl1bS5vdGYpfWJvZHksaHRtbHttYXgtd2lkdGg6MTAwJTtvdmVyZmxvdy14OmhpZGRlbn1ib2R5e2JhY2tncm91bmQtY29sb3I6IzAwMDttYXJnaW46MCFpbXBvcnRhbnQ7cGFkZGluZzowIWltcG9ydGFudDtmb250LWZhbWlseTpSYXdzb25NZWRpdW0haW1wb3J0YW50O2ZvbnQtc2l6ZToxLjFyZW0haW1wb3J0YW50fWh0bWx7bWFyZ2luOjAhaW1wb3J0YW50O3BhZGRpbmc6MCFpbXBvcnRhbnR9I3N0b3J5e2JhY2tncm91bmQtY29sb3I6IzNiM2IzYjttYXJnaW46MCBhdXRvIWltcG9ydGFudDttaW4taGVpZ2h0OmNhbGMoMTAwZHZoIC0gNDhweCk7bWF4LXdpZHRoOjQwMHB4O3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6MjRweH0ubGluay1pbnRlcm5hbHtkaXNwbGF5OmJsb2NrO21pbi13aWR0aDoyMDBweCFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjojZmFmYWZjO2JvcmRlci1yYWRpdXM6MTZweDtwYWRkaW5nOjEycHg7dGV4dC1hbGlnbjpjZW50ZXI7dGV4dC1kZWNvcmF0aW9uOm5vbmUhaW1wb3J0YW50O2NvbG9yOiMyNDI0MjQhaW1wb3J0YW50O2ZvbnQtd2VpZ2h0OjcwMH0ucGFzc2FnZSBpbWd7aGVpZ2h0OmF1dG87d2lkdGg6YXV0bzttYXgtd2lkdGg6MTAwJTtib3JkZXItcmFkaXVzOjEwcHg7bWF4LWhlaWdodDo1MDBweDttYXJnaW46MCBhdXRvfS5wYXNzYWdle21hcmdpbi10b3A6MTJweH1ib2R5Lm1hcHAgLnBhc3NhZ2V7bWFyZ2luLXRvcDoxMTJweDttYXJnaW4tYm90dG9tOjE2MHB4fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NjAwcHgpeyNzdG9yeXttYXgtd2lkdGg6MTAwJX0jdG9wYmFye2xlZnQ6MCFpbXBvcnRhbnQ7cmlnaHQ6MCFpbXBvcnRhbnR9I2hlYWRlcl9hcHB7bGVmdDowIWltcG9ydGFudDtyaWdodDowIWltcG9ydGFudH19OnJvb3R7LS1iZzp1cmwoYXNzZXRzL2ltZy9iZzEud2VicCl9Lm1haW4tbWVudXtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MzBweDtsZWZ0OjA7cmlnaHQ6MDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4fWlucHV0I3RleHRib3gtbmFtZS5tYWNyby10ZXh0Ym94e2JvcmRlci1yYWRpdXM6OHB4fWgye2xpbmUtaGVpZ2h0OjEuMn0ubG9nb3ttYXJnaW4tdG9wOjcwcHghaW1wb3J0YW50fWJvZHkuYmcxICNzdG9yeXtiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjtiYWNrZ3JvdW5kLXNpemU6Y292ZXI7YmFja2dyb3VuZC1pbWFnZTp2YXIoLS1iZyl9LnBhbmVse2JhY2tncm91bmQtY29sb3I6IzI0MjQyNDtjb2xvcjojZmNmY2ZjO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjJweDtwYWRkaW5nOjI0cHg7Ym9yZGVyLXJhZGl1czoxMnB4O21pbi13aWR0aDo4MCU7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjQ1JTtsZWZ0OjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNDUlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC00NSUpOy1vLXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNDUlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTQ1JSl9LmxpbmstZXh0ZXJuYWw6OmFmdGVye2NvbnRlbnQ6IiIhaW1wb3J0YW50fS5iYWNrLXNjcmVlbntwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LWFsaWduOmNlbnRlcjt0b3A6NDUlO2xlZnQ6NTAlOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC00NSUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTQ1JSk7LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC00NSUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNDUlKX0ucGFuZWwgcHtmb250LXNpemU6MS41cmVtO2xpbmUtaGVpZ2h0OjEuM30ucGFuZWwgLmxpbmstaW50ZXJuYWx7bWFyZ2luLXRvcDo2cHg7bWluLXdpZHRoOjkwJSFpbXBvcnRhbnR9LmJ1dHRvbi1hcHB7bWF4LXdpZHRoOjkwcHg7d2lkdGg6MjAlO3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWluLWhlaWdodDo5MHB4fS5ob3VyLXNjcmVlbnt3aWR0aDoxMDAlO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZTo2MHB4O2xpbmUtaGVpZ2h0OjF9ZGl2I2hvbWUtc2NyZWVuIGRpdiBkaXYuaG91ci1zY3JlZW4gaDF7bWFyZ2luOjA7cGFkZGluZzowfS5ib3R0b20tYmFye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO2JhY2tncm91bmQtY29sb3I6IzAwMDAwMDhmO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjI2cHg7cGFkZGluZy1ib3R0b206MTdweDtwYWRkaW5nLXRvcDoxN3B4fS5kYXktc2NyZWVue3dpZHRoOjEwMCU7bGluZS1oZWlnaHQ6MTt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tdG9wOi0ycHh9ZGl2LmRheS1zY3JlZW4gcHttYXJnaW46MDtwYWRkaW5nOjB9LmJ1dHRvbi1hcHAgLmxpbmstaW50ZXJuYWx7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDt0b3A6MDtyaWdodDowO2xlZnQ6MDtib3R0b206MDtwYWRkaW5nOjA7bWluLXdpZHRoOjAhaW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MjBweDstd2Via2l0LXRyYW5zZm9ybTpub25lIWltcG9ydGFudDstbXMtdHJhbnNmb3JtOm5vbmUhaW1wb3J0YW50Oy1vLXRyYW5zZm9ybTpub25lIWltcG9ydGFudDt0cmFuc2Zvcm06bm9uZSFpbXBvcnRhbnR9I2hvbWUtc2NyZWVue2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7Z2FwOjIwcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOjclO2xlZnQ6MDtyaWdodDowOy13ZWJraXQtZmxleC13cmFwOndyYXA7LW1zLWZsZXgtd3JhcDp3cmFwO2ZsZXgtd3JhcDp3cmFwOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfSN0b3BiYXJ7bWluLWhlaWdodDozNnB4O3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MTJweDtyaWdodDoxMnB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtcGFjazpqdXN0aWZ5Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47LW1zLWZsZXgtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO21heC13aWR0aDo0NDhweDttYXJnaW46MCBhdXRvO2JhY2tncm91bmQtY29sb3I6IzRkNGQ0ZDEwO3otaW5kZXg6OTl9I25hdmJhcntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O21heC1oZWlnaHQ6NjBweDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6NjBweH1ib2R5Lm1hcHAgI3N0b3J5e2JhY2tncm91bmQtY29sb3I6IzBiMTQxYX0jbmF2YmFyIC5idXR0b24tYXBwIGltZ3toZWlnaHQ6MzBweDt3aWR0aDozMHB4Oy1vLW9iamVjdC1maXQ6Y29udGFpbjtvYmplY3QtZml0OmNvbnRhaW47bWFyZ2luOjAhaW1wb3J0YW50O3BhZGRpbmctbGVmdDoxMnB4fSNuYXZiYXIgLmJ1dHRvbi1hcHB7bWF4LXdpZHRoOm5vbmUhaW1wb3J0YW50O3dpZHRoOjMycHghaW1wb3J0YW50fSNoZWFkZXJfYXBwLGJvZHkubWFwcCAjdG9wYmFye2JhY2tncm91bmQtY29sb3I6IzIwMmMzM30jaGVhZGVyX2FwcHtwb3NpdGlvbjpmaXhlZDttaW4taGVpZ2h0OjcwcHg7dG9wOjM2cHg7bGVmdDoxMnB4O3JpZ2h0OjEycHg7bWF4LXdpZHRoOjQ0OHB4O21hcmdpbjowIGF1dG87bWF4LWhlaWdodDoxMDBweDt6LWluZGV4Ojk1O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9I2hlYWRlcl9hcHAgaDF7bWFyZ2luOjA7cGFkZGluZzowO2ZvbnQtc2l6ZToxLjVlbX0jYXZhdGFyX21lc3NhZ2UgaW1ne21pbi1oZWlnaHQ6NTBweDttaW4td2lkdGg6NTBweDttYXgtaGVpZ2h0OjUwcHg7bWF4LXdpZHRoOjUwcHh9I21lc3NhZ2VfYnV0dG9uc3ttYXJnaW4tcmlnaHQ6MTRweDt3aWR0aDoxMjBweDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6ZW5kOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmZsZXgtZW5kOy1tcy1mbGV4LXBhY2s6ZW5kO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH1kaXYuaGVhZGVyX2FwcF9jb250ZW50IGRpdiNtZXNzYWdlX2J1dHRvbnMgYnV0dG9uI3NraXBUb2dnbGVCdXR0b257bWluLWhlaWdodDo1MHB4IWltcG9ydGFudDttaW4td2lkdGg6NTBweCFpbXBvcnRhbnQ7bWF4LWhlaWdodDo1MHB4IWltcG9ydGFudDttYXgtd2lkdGg6NTBweCFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOmNvdmVyIWltcG9ydGFudDtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50O2JvcmRlcjpub25lIWltcG9ydGFudDtvdXRsaW5lOjAhaW1wb3J0YW50O2N1cnNvcjpwb2ludGVyIWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChhc3NldHMvaW1nL0Zhc3RGb3dhcmRCdXR0b25JZGxlLndlYnApO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9ZGl2LmhlYWRlcl9hcHBfY29udGVudCBkaXYjbWVzc2FnZV9idXR0b25zIGJ1dHRvbiNza2lwVG9nZ2xlQnV0dG9uIC5hY3RpdmV7bWluLWhlaWdodDo1MHB4IWltcG9ydGFudDttaW4td2lkdGg6NTBweCFpbXBvcnRhbnQ7bWF4LWhlaWdodDo1MHB4IWltcG9ydGFudDttYXgtd2lkdGg6NTBweCFpbXBvcnRhbnQ7YmFja2dyb3VuZC1zaXplOmNvdmVyIWltcG9ydGFudDtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQhaW1wb3J0YW50O2JvcmRlcjpub25lIWltcG9ydGFudDtvdXRsaW5lOjAhaW1wb3J0YW50O2N1cnNvcjpwb2ludGVyIWltcG9ydGFudDtiYWNrZ3JvdW5kLWltYWdlOnVybChhc3NldHMvaW1nL0Zhc3RGb3dhcmRCdXR0b25BY3RpdmUud2VicCk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0uYXZhdGFyX21lc3NhZ2V7bWluLXdpZHRoOjc1cHg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH0uaGVhZGVyX2FwcF9jb250ZW50e2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtcGFjazpqdXN0aWZ5Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47LW1zLWZsZXgtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3dpZHRoOjEwMCV9I2JhY2stc3BhY2V7d2lkdGg6NjBweDttaW4td2lkdGg6NjBweH0uaGVhZGVyX2FwcF9jb250ZW50IGgxe3RleHQtYWxpZ246Y2VudGVyfS5tZXNzYWdlX2J1dHRvbnN7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDttaW4td2lkdGg6MTIwcHg7LXdlYmtpdC1ib3gtcGFjazplbmQ7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7LW1zLWZsZXgtcGFjazplbmQ7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5tZXNzYWdlX2J1dHRvbnMgaW1ney1vLW9iamVjdC1maXQ6Y29udGFpbjtvYmplY3QtZml0OmNvbnRhaW47bWF4LXdpZHRoOjQ0cHg7bWFyZ2luOjAhaW1wb3J0YW50O21hcmdpbi1yaWdodDo2cHghaW1wb3J0YW50O2N1cnNvcjpwb2ludGVyfS5oZWFkZXJfdGl0bGV7d2lkdGg6MTAwJX0jbWVzc2FnZV9vdXRzaWRle2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7Z2FwOjEycHg7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZzo5cHg7YmFja2dyb3VuZC1jb2xvcjojMjAyYzMzO2JvcmRlci1yYWRpdXM6NXB4fSNtZXNzYWdlX291dHNpZGUgLmF2YXRhciBpbWd7bWF4LXdpZHRoOjYwcHg7bWF4LWhlaWdodDo2MHB4fSNtZXNzYWdlX291dHNpZGUgLmF2YXRhcntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4fS5lcnJvcnt0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhlaWdodDoxO2ZvbnQtc2l6ZToycmVtO2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojNTk4ZWJhO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Lmhhc19tZXNzYWdle2JhY2tncm91bmQtY29sb3I6I2U5MWU5NDtib3JkZXItcmFkaXVzOjEwMHB4O2NvbG9yOiNmZmY7aGVpZ2h0OjIwcHg7d2lkdGg6MjBweDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfSNtZXNzYWdlX291dHNpZGUgLnRleHRve2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7d2lkdGg6MTAwJTstd2Via2l0LWJveC1wYWNrOmp1c3RpZnk7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjstbXMtZmxleC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59I21lc3NhZ2Vfb3V0c2lkZSAubWVuc2FqZXtjb2xvcjojNzM4MjhiOy1vLXRleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3dpZHRoOjI1MHB4fSNtZXNzYWdlX291dHNpZGUgLm5vbWJyZXtmb250LXdlaWdodDo3MDB9I21lc3NhZ2Vfb3V0c2lkZSAuaG9yYXtjb2xvcjojNzM4MjhiO2ZvbnQtd2VpZ2h0OjcwMH0jbWVzc2FnZV9vdXRzaWRlIGEubGluay1pbnRlcm5hbC5tYWNyby1saW5re3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDtib3R0b206MDtyaWdodDowO2JvcmRlci1yYWRpdXM6MDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjowfWRpdiNuYXZiYXIgZGl2LmJ1dHRvbi1hcHAgYS5saW5rLWludGVybmFsLm1hY3JvLWxpbmt7Ym9yZGVyOjB9Lm1lbnNhamVfY2Fwc3VsZS1maXJzdHtiYWNrZ3JvdW5kLWNvbG9yOiM0MDQ1NGI7cGFkZGluZzo4cHggMjhweDstd2Via2l0LWJvcmRlci1yYWRpdXM6MjBweDstd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6MnB4O2JvcmRlci1yYWRpdXM6MjBweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjJweDtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZX0ubWVuc2FqZV9jYXBzdWxle2JhY2tncm91bmQtY29sb3I6IzQwNDU0YjtwYWRkaW5nOjhweCAxNnB4O2JvcmRlci1yYWRpdXM6NHB4O3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi10b3A6OXB4fWRpdi5tZW5zYWplX2NhcHN1bGUucGFkZGluZy1tZXNzYWdlLmRlcmVjaGE6OmJlZm9yZXtjb250ZW50OnVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyBmaWxsPSclMjM0MDQ1NGInIHZlcnNpb249JzEuMScgaWQ9J0xheWVyXzEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHZpZXdCb3g9JzAgMCAyNCAyNCcgeG1sOnNwYWNlPSdwcmVzZXJ2ZSclM0UlM0NnIGlkPSdTVkdSZXBvX2JnQ2Fycmllcicgc3Ryb2tlLXdpZHRoPScwJyUzRSUzQy9nJTNFJTNDZyBpZD0nU1ZHUmVwb190cmFjZXJDYXJyaWVyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnJTNFJTNDL2clM0UlM0NnIGlkPSdTVkdSZXBvX2ljb25DYXJyaWVyJyUzRSUzQ3N0eWxlIHR5cGU9J3RleHQvY3NzJyUzRSAuc3QwJTdCZmlsbDpub25lJTNCJTdEICUzQy9zdHlsZSUzRSUzQ3BhdGggZD0nTTE1IDZsLTcgNmw3IDZWNnonJTNFJTNDL3BhdGglM0UlM0NyZWN0IGNsYXNzPSdzdDAnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCclM0UlM0MvcmVjdCUzRSUzQy9nJTNFJTNDL3N2ZyUzRSIpO3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0zcHg7bGVmdDotMjRweH1kaXYjY29udGVudCBhLmxpbmstaW50ZXJuYWwubWFjcm8tbGlua3tiYWNrZ3JvdW5kLWNvbG9yOiMxNTY2YWM7Y29sb3I6I2ZmZiFpbXBvcnRhbnR9ZGl2Lm1lbnNhamVfY2Fwc3VsZS5wYWRkaW5nLW1lc3NhZ2UuaXpxdWllcmRhOjphZnRlcntjb250ZW50OnVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyBmaWxsPSclMjMxNTY2YWMnIHZlcnNpb249JzEuMScgaWQ9J0xheWVyXzEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHZpZXdCb3g9JzAgMCAyNCAyNCcgeG1sOnNwYWNlPSdwcmVzZXJ2ZScgdHJhbnNmb3JtPSdyb3RhdGUoMTgwKSclM0UlM0NnIGlkPSdTVkdSZXBvX2JnQ2Fycmllcicgc3Ryb2tlLXdpZHRoPScwJyUzRSUzQy9nJTNFJTNDZyBpZD0nU1ZHUmVwb190cmFjZXJDYXJyaWVyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnJTNFJTNDL2clM0UlM0NnIGlkPSdTVkdSZXBvX2ljb25DYXJyaWVyJyUzRSUzQ3N0eWxlIHR5cGU9J3RleHQvY3NzJyUzRSAuc3QwJTdCZmlsbDpub25lJTNCJTdEICUzQy9zdHlsZSUzRSUzQ3BhdGggZD0nTTE1IDZsLTcgNmw3IDZWNnonJTNFJTNDL3BhdGglM0UlM0NyZWN0IGNsYXNzPSdzdDAnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCclM0UlM0MvcmVjdCUzRSUzQy9nJTNFJTNDL3N2ZyUzRSIpO3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0zcHg7cmlnaHQ6LTIzcHh9LnR5cGluZ3std2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O2hlaWdodDoxN3B4fS50eXBpbmcgLmRvdHstd2Via2l0LWFuaW1hdGlvbjptZXJjdXJ5VHlwaW5nQW5pbWF0aW9uIDEuOHMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7LW8tYW5pbWF0aW9uOm1lcmN1cnlUeXBpbmdBbmltYXRpb24gMS44cyBpbmZpbml0ZSBlYXNlLWluLW91dDthbmltYXRpb246bWVyY3VyeVR5cGluZ0FuaW1hdGlvbiAxLjhzIGluZmluaXRlIGVhc2UtaW4tb3V0O2JhY2tncm91bmQtY29sb3I6IzZjYWQ5Njtib3JkZXItcmFkaXVzOjUwJTtoZWlnaHQ6N3B4O21hcmdpbi1yaWdodDo0cHg7dmVydGljYWwtYWxpZ246bWlkZGxlO3dpZHRoOjdweDtkaXNwbGF5OmlubGluZS1ibG9ja30udHlwaW5nIC5kb3Q6Zmlyc3QtY2hpbGR7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6LjJzOy1vLWFuaW1hdGlvbi1kZWxheTouMnM7YW5pbWF0aW9uLWRlbGF5Oi4yc30udHlwaW5nIC5kb3Q6bnRoLWNoaWxkKDIpey13ZWJraXQtYW5pbWF0aW9uLWRlbGF5Oi4zczstby1hbmltYXRpb24tZGVsYXk6LjNzO2FuaW1hdGlvbi1kZWxheTouM3N9LnR5cGluZyAuZG90Om50aC1jaGlsZCgzKXstd2Via2l0LWFuaW1hdGlvbi1kZWxheTouNHM7LW8tYW5pbWF0aW9uLWRlbGF5Oi40czthbmltYXRpb24tZGVsYXk6LjRzfS50eXBpbmcgLmRvdDpsYXN0LWNoaWxke21hcmdpbi1yaWdodDowfUAtd2Via2l0LWtleWZyYW1lcyBtZXJjdXJ5VHlwaW5nQW5pbWF0aW9uezAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7YmFja2dyb3VuZC1jb2xvcjojNmNhZDk2fTI4JXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC03cHgpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC03cHgpO2JhY2tncm91bmQtY29sb3I6IzllY2FiOX00NCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTtiYWNrZ3JvdW5kLWNvbG9yOiNiNWQ5Y2J9fUAtby1rZXlmcmFtZXMgbWVyY3VyeVR5cGluZ0FuaW1hdGlvbnswJXstby10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTtiYWNrZ3JvdW5kLWNvbG9yOiM2Y2FkOTZ9Mjgley1vLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC03cHgpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC03cHgpO2JhY2tncm91bmQtY29sb3I6IzllY2FiOX00NCV7LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7YmFja2dyb3VuZC1jb2xvcjojYjVkOWNifX1Aa2V5ZnJhbWVzIG1lcmN1cnlUeXBpbmdBbmltYXRpb257MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTstby10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTtiYWNrZ3JvdW5kLWNvbG9yOiM2Y2FkOTZ9Mjgley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTdweCk7LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTdweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTdweCk7YmFja2dyb3VuZC1jb2xvcjojOWVjYWI5fTQ0JXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApOy1vLXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO2JhY2tncm91bmQtY29sb3I6I2I1ZDljYn19I21lc3NhZ2VfY29udGFpbmVye2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtYm94O2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtZmxleDtkaXNwbGF5Oi1tcy1pbmxpbmUtZmxleGJveDtkaXNwbGF5OmlubGluZS1mbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo2cHg7d2lkdGg6MTAwJTtvcGFjaXR5OjB9I21lc3NhZ2VfY29udGFpbmVyIC5hdmF0YXIgaW1ne2hlaWdodDo2MHB4O3dpZHRoOjYwcHg7bWF4LWhlaWdodDo2MHB4O21heC13aWR0aDo2MHB4O21hcmdpbi10b3A6LTE2cHg7bWFyZ2luLXJpZ2h0Oi0xNnB4O3otaW5kZXg6MTtwb3NpdGlvbjpyZWxhdGl2ZX0uZmxleHtnYXA6NnB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246c3RhcnQ7LXdlYmtpdC1hbGlnbi1pdGVtczpmbGV4LXN0YXJ0Oy1tcy1mbGV4LWFsaWduOnN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LnBhZGRpbmctbWVzc2FnZXttYXJnaW4tbGVmdDotMnB4fS5tZW5zYWplX2NhcHN1bGUtZmlyc3QuZGVyZWNoYXttYXJnaW4tcmlnaHQ6MzBweH0ubWVuc2FqZV9jYXBzdWxlLWZpcnN0Lml6cXVpZXJkYXttYXJnaW4tbGVmdDozMHB4fS5tZW5zYWplX2NhcHN1bGUuZGVyZWNoYXttYXJnaW4tcmlnaHQ6NzVweH0ubWVuc2FqZV9jYXBzdWxlLml6cXVpZXJkYXttYXJnaW4tbGVmdDo5MHB4O21hcmdpbi1yaWdodDotNnB4O2JhY2tncm91bmQtY29sb3I6IzE1NjZhY30jcGFkZGluZy1ib3h7bWluLWhlaWdodDozMHB4fS5jaGF0X2Jhcntwb3NpdGlvbjpmaXhlZDttaW4taGVpZ2h0OjUwcHg7Ym90dG9tOjA7bWFyZ2luOjAgYXV0bztsZWZ0OjEwcHg7cmlnaHQ6MTBweDttYXgtd2lkdGg6NDQ4cHg7YmFja2dyb3VuZC1jb2xvcjojMGIxNDFhfS5jaGF0X2JhciBhe21hcmdpbi1ib3R0b206MTJweH0ucGxheWVyX21lc3NhZ2V7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmVuZDstd2Via2l0LWp1c3RpZnktY29udGVudDpmbGV4LWVuZDstbXMtZmxleC1wYWNrOmVuZDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7d2lkdGg6MTAwJX0ub2ZmbGluZS10ZXh0e2NvbG9yOiM3MzgyOGI7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLXRvcDozNHB4fS5mYWRlLWlue29wYWNpdHk6MDstd2Via2l0LWFuaW1hdGlvbjpmYWRlSW4gMXMgZm9yd2FyZHM7LW8tYW5pbWF0aW9uOmZhZGVJbiAxcyBmb3J3YXJkczthbmltYXRpb246ZmFkZUluIDFzIGZvcndhcmRzfUAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW57ZnJvbXtvcGFjaXR5OjB9dG97b3BhY2l0eToxfX1ALW8ta2V5ZnJhbWVzIGZhZGVJbntmcm9te29wYWNpdHk6MH10b3tvcGFjaXR5OjF9fUBrZXlmcmFtZXMgZmFkZUlue2Zyb217b3BhY2l0eTowfXRve29wYWNpdHk6MX19QC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXR7ZnJvbXtvcGFjaXR5OjF9dG97b3BhY2l0eTowfX1ALW8ta2V5ZnJhbWVzIGZhZGVPdXR7ZnJvbXtvcGFjaXR5OjF9dG97b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIGZhZGVPdXR7ZnJvbXtvcGFjaXR5OjF9dG97b3BhY2l0eTowfX0ud2lue2JhY2tncm91bmQ6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sY29sb3Itc3RvcCg1JSwjMjFhZDI2KSx0bygjMzQ4NTM3KSk7YmFja2dyb3VuZDotby1saW5lYXItZ3JhZGllbnQodG9wLCMyMWFkMjYgNSUsIzM0ODUzNyAxMDAlKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIzIxYWQyNiA1JSwjMzQ4NTM3IDEwMCUpO2JvcmRlci1yYWRpdXM6OHB4O2NvbG9yOiNmZmY7Zm9udC1zaXplOjE1cHg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dGV4dC1zaGFkb3c6MCAxcHggMCAjM2Q3NjhhO3BhZGRpbmc6MTBweCAxMHB4O21heC13aWR0aDozMDBweDttYXJnaW46MCBhdXRvO21hcmdpbi10b3A6MTBweDttYXJnaW4tYm90dG9tOjEwcHg7ZGlzcGxheTpibG9jazstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7d2lkdGg6MzAwcHg7dGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTt0ZXh0LWFsaWduOmNlbnRlcn0ud2luLWNhcHN1bGV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC41KTtwYWRkaW5nOjVweDtib3JkZXItcmFkaXVzOjVweDtkaXNwbGF5OmlubGluZS1ibG9ja30ud2luLXNpbWJvbHtmb250LXdlaWdodDo3MDA7b3BhY2l0eTowOy13ZWJraXQtYW5pbWF0aW9uOmZhZGVJbiAxcyBmb3J3YXJkczstby1hbmltYXRpb246ZmFkZUluIDFzIGZvcndhcmRzO2FuaW1hdGlvbjpmYWRlSW4gMXMgZm9yd2FyZHM7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6LjRzOy1vLWFuaW1hdGlvbi1kZWxheTouNHM7YW5pbWF0aW9uLWRlbGF5Oi40c30uY2VudGVye2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9I3RvYXN0LWZ1bGx7cG9zaXRpb246Zml4ZWQ7dG9wOjQ1cHg7bGVmdDowO3JpZ2h0OjA7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt6LWluZGV4Ojk5Oy13ZWJraXQtYW5pbWF0aW9uOmZhZGVPdXQgLjhzOy1vLWFuaW1hdGlvbjpmYWRlT3V0IC44czthbmltYXRpb246ZmFkZU91dCAuOHM7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6MS41czstby1hbmltYXRpb24tZGVsYXk6MS41czthbmltYXRpb24tZGVsYXk6MS41c30udG9hc3QtY29udGFpbmVye21heC13aWR0aDozMDBweDt3aWR0aDozMDBweDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O2JhY2tncm91bmQ6IzI0MjQyNDtsaW5lLWhlaWdodDoxO2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjZweDtib3JkZXItcmFkaXVzOjEwcHg7Z2FwOjlweDt6LWluZGV4Ojk5fS50b2FzdC10ZXh0e2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtcGFjazpqdXN0aWZ5Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47LW1zLWZsZXgtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3dpZHRoOjEwMCV9ZGl2LnRvYXN0LWNvbnRhaW5lciBkaXYudG9hc3QtYXZhdGFyIGltZ3ttYXgtd2lkdGg6NDBweDttYXgtaGVpZ2h0OjQwcHg7aGVpZ2h0OjQwcHg7d2lkdGg6NDBweDttYXJnaW4tdG9wOjZweH1ib2R5Lm5vdGhvdXIgLnRvcC1ob3Vye29wYWNpdHk6MH1ib2R5Lm5vdGVzICNoZWFkZXJfYXBwe2JhY2tncm91bmQtY29sb3I6I2ZmZiFpbXBvcnRhbnQ7Y29sb3I6IzAwMCFpbXBvcnRhbnR9Ym9keS5ub3RlcyAjbmF2YmFyey13ZWJraXQtZmlsdGVyOmludmVydCgxMDAlKTtmaWx0ZXI6aW52ZXJ0KDEwMCUpfWJvZHkubm90ZXMgI3RvcGJhcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDAhaW1wb3J0YW50fWJvZHkubm90ZXMgI3N0b3J5e2JhY2tncm91bmQtY29sb3I6I2UzZTNlMyFpbXBvcnRhbnR9Ym9keS50b2RvICNoZWFkZXJfYXBwe2JhY2tncm91bmQtY29sb3I6IzFmMmIzMyFpbXBvcnRhbnR9Ym9keS50b2RvICN0b3BiYXJ7YmFja2dyb3VuZC1jb2xvcjojMDAwIWltcG9ydGFudH1ib2R5LnRvZG8gI3N0b3J5e2JhY2tncm91bmQtY29sb3I6IzBiMTMxOSFpbXBvcnRhbnR9YXstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7b3V0bGluZTowfWE6YWN0aXZlLGE6Zm9jdXN7b3V0bGluZTowfSNwYWRkaW5nLWNvbnRhaW5lcnttYXJnaW4tdG9wOjEwMHB4fWJvZHksaHRtbHtzY3JvbGxiYXItd2lkdGg6bm9uZX0jY29udGVudHtwYWRkaW5nOjEycHg7cGFkZGluZy1ib3R0b206MzBweH0jbWVzc2FnZV9pbWcgaW1ne3dpZHRoOjMwMHB4O2hlaWdodDozMDBweDstby1vYmplY3QtZml0OmNvdmVyO29iamVjdC1maXQ6Y292ZXJ9ZGl2I21lc3NhZ2VfaW1nIGJ1dHRvbi5saW5rLWludGVybmFsLm1hY3JvLWJ1dHRvbnt3aWR0aDozMDBweDtoZWlnaHQ6MzAwcHg7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtvdXRsaW5lOjA7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7Ym9yZGVyLXJhZGl1czoxMHB4fWRpdiNtZXNzYWdlX2ltZyBidXR0b24ubGluay1pbnRlcm5hbC5tYWNyby1idXR0b246aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMDAwMDAwOGZ9I21lc3NhZ2VfaW1ne3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbi1ib3R0b206MTJweDttYXJnaW4tdG9wOjEycHh9I3VpLWRpYWxvZ3t3aWR0aDoxMDAlIWltcG9ydGFudDttYXJnaW46MCBhdXRvIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50O2xlZnQ6MCFpbXBvcnRhbnQ7Ym90dG9tOjAhaW1wb3J0YW50O3RvcDowIWltcG9ydGFudDtyaWdodDowIWltcG9ydGFudDttYXgtd2lkdGg6NDQ4cHh9I3VpLWRpYWxvZy10aXRsZXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDB9I3VpLWRpYWxvZy10aXRsZWJhcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7Y29sb3I6I2ZmZjtib3JkZXI6bm9uZX0jdWktZGlhbG9nLWJvZHl7cGFkZGluZzowIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAhaW1wb3J0YW50O2JvcmRlcjpub25lIWltcG9ydGFudH1kaXYjdWktZGlhbG9nLWJvZHkgZGl2I2ltZ19iaWcgaW1ne2hlaWdodDo5MHZoO3dpZHRoOjEwMCU7LW8tb2JqZWN0LWZpdDpjb250YWluO29iamVjdC1maXQ6Y29udGFpbn0jaW1nX2JpZ3twb3NpdGlvbjpyZWxhdGl2ZX0uc2V0X3dhbGxwYXBlcl9jYXBzdWxlIGltZ3toZWlnaHQ6MzBweCFpbXBvcnRhbnQ7d2lkdGg6MzBweCFpbXBvcnRhbnQ7LW8tb2JqZWN0LWZpdDpjb250YWluIWltcG9ydGFudDtvYmplY3QtZml0OmNvbnRhaW4haW1wb3J0YW50O21hcmdpbjowIWltcG9ydGFudH0uc2V0X3dhbGxwYXBlcl9jYXBzdWxlIHB7bWFyZ2luOjA7cGFkZGluZzowO2NvbG9yOiNmZmY7Zm9udC1zaXplOjEuMmVtO21hcmdpbi1sZWZ0OjEycHh9ZGl2I3VpLWRpYWxvZy1ib2R5IGRpdiNpbWdfYmlnIGRpdi5zZXRfd2FsbHBhcGVyX2NhcHN1bGUgYnV0dG9uLmxpbmstaW50ZXJuYWwubWFjcm8tYnV0dG9uOjpiZWZvcmV7YmFja2dyb3VuZC1pbWFnZTp1cmwoJ2Fzc2V0cy9pbWcvaW1nLndlYnAnKTtiYWNrZ3JvdW5kLXNpemU6MjBweCAyMHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7bWFyZ2luLXJpZ2h0OjdweDtjb250ZW50OiIifWRpdiN1aS1kaWFsb2ctYm9keSBkaXYjaW1nX2JpZyBkaXYuc2V0X3dhbGxwYXBlcl9jYXBzdWxlIGJ1dHRvbi5saW5rLWludGVybmFsLm1hY3JvLWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOiM0YTRhNGE7bWF4LWhlaWdodDo0MHB4O21heC13aWR0aDoyMzVweDtib3JkZXItcmFkaXVzOjI2cHg7cGFkZGluZzo3cHggMThweDtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O21hcmdpbjowIGF1dG87Y29sb3I6I2ZmZiFpbXBvcnRhbnQ7Zm9udC1zaXplOjEuMmVtOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo2MDBweCl7I21lc3NhZ2Vfb3V0c2lkZSAubWVuc2FqZXttYXgtd2lkdGg6NTB2d30jaGVhZGVyX2FwcHttYXgtd2lkdGg6MTAwJX0jdG9wYmFye21heC13aWR0aDoxMDAlfWRpdi5idXR0b24tYXBwIGltZ3ttaW4td2lkdGg6NzBweCFpbXBvcnRhbnQ7bWF4LXdpZHRoOjcwcHghaW1wb3J0YW50fX1kaXYjaW1nX2JpZyB2aWRlb3toZWlnaHQ6OTB2aH1ib2R5LndoaXRlICNoZWFkZXJfYXBwe2JhY2tncm91bmQtY29sb3I6I2ZmZiFpbXBvcnRhbnQ7Y29sb3I6IzAwMCFpbXBvcnRhbnR9Ym9keS53aGl0ZSAjdG9wYmFye2JhY2tncm91bmQtY29sb3I6I2I5YjliOSFpbXBvcnRhbnR9Ym9keS53aGl0ZSAjc3Rvcnl7YmFja2dyb3VuZC1jb2xvcjojZmZmIWltcG9ydGFudDtjb2xvcjojMDAwIWltcG9ydGFudH1ib2R5LndoaXRlICNuYXZiYXJ7LXdlYmtpdC1maWx0ZXI6aW52ZXJ0KDEwMCUpO2ZpbHRlcjppbnZlcnQoMTAwJSl9Lmluc3RhdmliZS10b3AtY29udGVudHttYXgtd2lkdGg6ODBweDttYXgtaGVpZ2h0OjEwMHB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lmluc3RhdmliZS10b3AtY29udGVudCBpbWd7bWF4LXdpZHRoOjcwcHg7bWF4LWhlaWdodDo3MHB4fS5pbnN0YXZpYmUtdG9we292ZXJmbG93LXg6c2Nyb2xsO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7Z2FwOjZweDtwYWRkaW5nLWJvdHRvbToxMnB4O3Njcm9sbGJhci13aWR0aDpub25lfWRpdi5pbnN0YXZpYmUtcG9zdCBkaXYuYXZhdGFye3dpZHRoOjYwcHg7aGVpZ2h0OjYwcHh9Lmluc3RhdmliZS1wb3N0e2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXh9ZGl2Lmluc3RhdmliZS1wb3N0IGRpdi50ZXh0IGRpdi50b3B7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmp1c3RpZnk7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjstbXMtZmxleC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Zm9udC1zaXplOjEuMXJlbTtmb250LXdlaWdodDo3MDB9ZGl2Lmluc3RhdmliZS1wb3N0IGRpdi50ZXh0IGRpdi5ib3R0b217ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmp1c3RpZnk7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjstbXMtZmxleC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9ZGl2Lmluc3RhdmliZS1wb3N0IGRpdi50ZXh0e3dpZHRoOjEwMCU7bWFyZ2luLWxlZnQ6MTJweDtsaW5lLWhlaWdodDoxO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZy1ib3R0b206MTJweH1kaXYuaW5zdGF2aWJlLXBvc3QgZGl2LnRleHQgZGl2LmJvdHRvbSBkaXYuYnV0dG9ucyBpbWd7bWF4LXdpZHRoOjI1cHg7bWF4LWhlaWdodDoyNXB4O21hcmdpbjowIWltcG9ydGFudDtjdXJzb3I6cG9pbnRlcjstby1vYmplY3QtZml0OmNvbnRhaW47b2JqZWN0LWZpdDpjb250YWluO2JvcmRlci1yYWRpdXM6MDtwYWRkaW5nLXRvcDoxMHB4fWRpdiNwYWRkaW5nLWNvbnRhaW5lciBkaXYuaW1nLXBvc3R7cG9zaXRpb246cmVsYXRpdmV9ZGl2LmltZy1wb3N0IGJ1dHRvbi5saW5rLWludGVybmFsLm1hY3JvLWJ1dHRvbntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO291dGxpbmU6MDtjdXJzb3I6cG9pbnRlcn0ubWFnaWNfYnV0dG9ue3Bvc2l0aW9uOnJlbGF0aXZlO21heC13aWR0aDoyNXB4O21heC1oZWlnaHQ6MjVweDt3aWR0aDoyNXB4O2hlaWdodDoyNXB4fS5tYWdpY19idXR0b24gaW1ne21heC13aWR0aDoyNXB4IWltcG9ydGFudDttYXgtaGVpZ2h0OjI1cHghaW1wb3J0YW50O21hcmdpbjowIWltcG9ydGFudDtjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnQ7LW8tb2JqZWN0LWZpdDpjb250YWluIWltcG9ydGFudDtvYmplY3QtZml0OmNvbnRhaW4haW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MCFpbXBvcnRhbnQ7cGFkZGluZy10b3A6MTBweCFpbXBvcnRhbnR9Lm1hZ2ljX2J1dHRvbiBidXR0b24ubGluay1pbnRlcm5hbC5tYWNyby1idXR0b257cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtvdXRsaW5lOjA7Y3Vyc29yOnBvaW50ZXI7bWluLXdpZHRoOjAhaW1wb3J0YW50fWRpdi50ZXh0IGRpdi5ib3R0b20gZGl2LmJ1dHRvbnN7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH1kaXYuaW5zdGF2aWJlLXRvcCBkaXYuaW5zdGF2aWJlLXRvcC1jb250ZW50e3Bvc2l0aW9uOnJlbGF0aXZlfWRpdi5pbnN0YXZpYmUtdG9wIGRpdi5pbnN0YXZpYmUtdG9wLWNvbnRlbnQgYnV0dG9uLmxpbmstaW50ZXJuYWwubWFjcm8tYnV0dG9ue3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7b3V0bGluZTowO2N1cnNvcjpwb2ludGVyO21pbi13aWR0aDowIWltcG9ydGFudH0jdGVzdGJ1dHRvbnt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfWRpdiNwYWRkaW5nLWNvbnRhaW5lciBkaXYuZGVzY3JpcHRpb257bWF4LXdpZHRoOjkwJTttYXJnaW4tdG9wOi0ycHg7bWFyZ2luLWxlZnQ6N3B4O2xpbmUtaGVpZ2h0OjEuM30ucHJvZmlsZS1jYXJke2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7Z2FwOjEycHg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luLWJvdHRvbToyMHB4fS5wcm9maWxlLWNhcmQgaW1ne21pbi13aWR0aDo4NXB4IWltcG9ydGFudDttaW4taGVpZ2h0Ojg1cHghaW1wb3J0YW50O3dpZHRoOjg1cHghaW1wb3J0YW50O2hlaWdodDo4NXB4IWltcG9ydGFudDttYXgtd2lkdGg6ODVweCFpbXBvcnRhbnQ7bWF4LWhlaWdodDo4NXB4IWltcG9ydGFudH0uc3RhdHN7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDt0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhlaWdodDoxOy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOy1tcy1mbGV4LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjttYXJnaW4tdG9wOjEycHh9ZGl2LnByb2ZpbGUtY2FyZCBkaXYucHJvZmlsZS1pbmZvIGRpdi5uYW1le2ZvbnQtc2l6ZToxLjJyZW07Zm9udC13ZWlnaHQ6NzAwfS5pY29uLWNvbnRhaW5lcntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O2dhcDoyMHB4Oy13ZWJraXQtZmxleC13cmFwOndyYXA7LW1zLWZsZXgtd3JhcDp3cmFwO2ZsZXgtd3JhcDp3cmFwOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbjoyMHB4fWRpdi5idXR0b24tYXBwIGltZ3ttaW4td2lkdGg6OTBweDttYXgtd2lkdGg6OTBweH0jYXZhdGFyX21lc3NhZ2V7bWFyZ2luLWxlZnQ6OHB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXh9LmVtb2ppe21heC13aWR0aDo2MHB4IWltcG9ydGFudDttYXgtaGVpZ2h0OjYwcHghaW1wb3J0YW50Oy1vLW9iamVjdC1maXQ6Y29udGFpbiFpbXBvcnRhbnQ7b2JqZWN0LWZpdDpjb250YWluIWltcG9ydGFudDttaW4td2lkdGg6NjBweCFpbXBvcnRhbnQ7bWluLWhlaWdodDo2MHB4IWltcG9ydGFudH0jbWVzc2FnZV9pbWd7bWluLWhlaWdodDo2MHB4fS5lbW9qaV91c2Vye3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjAhaW1wb3J0YW50fS5tZXNzYWdlLXRhZ3t3aWR0aDoxMDAlO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lm1lc3NhZ2UtdGFnLWNhcHN1bGV7YmFja2dyb3VuZC1jb2xvcjojNDA0NTRiO3BhZGRpbmc6OHB4IDE2cHg7Ym9yZGVyLXJhZGl1czo0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXRvcDo5cHh9Ym9keS5kYXJrICNoZWFkZXJfYXBwe2JhY2tncm91bmQtY29sb3I6IzFmMmIzMyFpbXBvcnRhbnQ7Y29sb3I6I2ZmZiFpbXBvcnRhbnR9Ym9keS5kYXJrICN0b3BiYXJ7YmFja2dyb3VuZC1jb2xvcjojMGMwYzBkIWltcG9ydGFudH1ib2R5LmRhcmsgI3N0b3J5e2JhY2tncm91bmQtY29sb3I6IzBiMTMxOSFpbXBvcnRhbnQ7Y29sb3I6I2ZmZiFpbXBvcnRhbnR9LnNldHRpbmdfY29udGFpbmVye2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmU7YmFja2dyb3VuZC1jb2xvcjojMjAyYzMzO2JvcmRlci1yYWRpdXM6MTBweDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjZweCAxMnB4Oy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOy1tcy1mbGV4LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MjBweDttYXJnaW4tYm90dG9tOjE2cHh9LnNldHRpbmdfY29udGFpbmVyIC5saW5rLWludGVybmFse3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7dG9wOjA7cmlnaHQ6MDtsZWZ0OjA7Ym90dG9tOjA7cGFkZGluZzowO21pbi13aWR0aDowIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjIwcHg7LXdlYmtpdC10cmFuc2Zvcm06bm9uZSFpbXBvcnRhbnQ7LW1zLXRyYW5zZm9ybTpub25lIWltcG9ydGFudDstby10cmFuc2Zvcm06bm9uZSFpbXBvcnRhbnQ7dHJhbnNmb3JtOm5vbmUhaW1wb3J0YW50fS50ZXh0X3NldHRpbmd7d2lkdGg6MTAwJX0uaWNvbl9zZXR0aW5ne2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWluLXdpZHRoOjQ1cHg7bWF4LXdpZHRoOjQ1cHh9LnNldHRpbmdfYnV0dG9ue3Bvc2l0aW9uOnJlbGF0aXZlfS5zZXR0aW5nX2J1dHRvbiBpbWd7bWFyZ2luOjAhaW1wb3J0YW50O2N1cnNvcjpwb2ludGVyIWltcG9ydGFudDstby1vYmplY3QtZml0OmNvbnRhaW4haW1wb3J0YW50O29iamVjdC1maXQ6Y29udGFpbiFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czowIWltcG9ydGFudDtwYWRkaW5nLXRvcDoxMHB4IWltcG9ydGFudH0uc2V0dGluZ19idXR0b24gYnV0dG9uLmxpbmstaW50ZXJuYWwubWFjcm8tYnV0dG9ue3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7b3V0bGluZTowO2N1cnNvcjpwb2ludGVyO21pbi13aWR0aDowIWltcG9ydGFudH0ucHJlbWl1bV9jb250YWluZXJ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6OHB4O3RleHQtYWxpZ246Y2VudGVyfS5waG90b3NfY29udGFpbmVye2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1mbGV4LXdyYXA6d3JhcDstbXMtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXA7cG9zaXRpb246cmVsYXRpdmU7Z2FwOjEycHh9ZGl2LnBob3Rvc19jb250YWluZXIgZGl2I21lc3NhZ2VfaW1ne21heC13aWR0aDoxMjVweCFpbXBvcnRhbnQ7bWF4LWhlaWdodDoxMjVweCFpbXBvcnRhbnQ7d2lkdGg6MTI1cHghaW1wb3J0YW50O2hlaWdodDoxMjVweCFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVufWRpdi5waG90b3NfY29udGFpbmVyIGRpdiNtZXNzYWdlX2ltZyBpbWd7bWF4LXdpZHRoOjEyNXB4IWltcG9ydGFudDttYXgtaGVpZ2h0OjEyNXB4IWltcG9ydGFudDt3aWR0aDoxMjVweCFpbXBvcnRhbnQ7aGVpZ2h0OjEyNXB4IWltcG9ydGFudH1kaXYucGhvdG9zX2NvbnRhaW5lciBkaXYjbWVzc2FnZV9pbWcgYnV0dG9uLmxpbmstaW50ZXJuYWwubWFjcm8tYnV0dG9ue21heC13aWR0aDoxMjVweCFpbXBvcnRhbnQ7bWF4LWhlaWdodDoxMjVweCFpbXBvcnRhbnQ7d2lkdGg6MTI1cHghaW1wb3J0YW50O2hlaWdodDoxMjVweCFpbXBvcnRhbnQ7bWFyZ2luOjAhaW1wb3J0YW50O3BhZGRpbmc6MCFpbXBvcnRhbnR9Ym9keS5ob3Jvc2NvcGUgI2hlYWRlcl9hcHB7YmFja2dyb3VuZC1jb2xvcjojMGMwMzMyIWltcG9ydGFudDtjb2xvcjojZmZmIWltcG9ydGFudH1ib2R5Lmhvcm9zY29wZSAjdG9wYmFye2JhY2tncm91bmQtY29sb3I6IzBjMDMzMiFpbXBvcnRhbnR9Ym9keS5ob3Jvc2NvcGUgI3N0b3J5e2JhY2tncm91bmQtY29sb3I6IzBjMDMzMiFpbXBvcnRhbnQ7Y29sb3I6I2ZmZiFpbXBvcnRhbnR9Lmhvcm9zY29wZV9jb250YWluZXJ7YmFja2dyb3VuZC1jb2xvcjojMzEyOTUwO2JvcmRlci1yYWRpdXM6MjBweDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uO3BhZGRpbmc6MjBweDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MS40cmVtO2xpbmUtaGVpZ2h0OjF9Ym9keS5ub3RoaW5nICNoZWFkZXJfYXBwe2JhY2tncm91bmQtY29sb3I6IzAwMCFpbXBvcnRhbnQ7Y29sb3I6I2ZmZiFpbXBvcnRhbnR9Ym9keS5ub3RoaW5nICN0b3BiYXJ7YmFja2dyb3VuZC1jb2xvcjojMDAwIWltcG9ydGFudDtkaXNwbGF5Om5vbmV9Ym9keS5ub3RoaW5nICNzdG9yeXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAhaW1wb3J0YW50O2NvbG9yOiNmZmYhaW1wb3J0YW50fS5wYW5lbF9iYWNre2JhY2tncm91bmQtY29sb3I6IzIwMmMzMztwYWRkaW5nOjE0cHg7bGluZS1oZWlnaHQ6MTtib3JkZXItcmFkaXVzOjEwcHh9LnBhbmVsX2JhY2sgaDJ7bWFyZ2luOjA7cGFkZGluZzowfS5jbG9ja19wYW5lbHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOy1tcy1mbGV4LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiMyMDJjMzM7Ym9yZGVyLXJhZGl1czoxMnB4O2dhcDoxMnB4O3BhZGRpbmc6OHB4O21hcmdpbi1ib3R0b206MjBweDtwb3NpdGlvbjpyZWxhdGl2ZX0uY2xvY2tfaW1nIGltZ3ttYXgtd2lkdGg6NjBweDttYXgtaGVpZ2h0OjYwcHg7d2lkdGg6NjBweDtoZWlnaHQ6NjBweDstby1vYmplY3QtZml0OmNvbnRhaW47b2JqZWN0LWZpdDpjb250YWlufS5jbG9ja19pY29uIGltZ3ttYXgtd2lkdGg6MzVweDttYXgtaGVpZ2h0OjM1cHg7d2lkdGg6MzVweDtoZWlnaHQ6MzVweDstby1vYmplY3QtZml0OmNvbnRhaW47b2JqZWN0LWZpdDpjb250YWlufS5jbG9ja190ZXh0e3dpZHRoOjEwMCU7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtsaW5lLWhlaWdodDoxfS5jbG9ja190ZXh0IGgze21hcmdpbjowO2xpbmUtaGVpZ2h0OjE7cGFkZGluZzowfS5vcmFuZ2V7Y29sb3I6I2VkNDUyZX1kaXYuY2xvY2tfcGFuZWwgYS5saW5rLWludGVybmFsLm1hY3JvLWxpbmt7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtvdXRsaW5lOjA7Y3Vyc29yOnBvaW50ZXI7bWluLXdpZHRoOjAhaW1wb3J0YW50fS5ub3Rlc19idXR0b257YmFja2dyb3VuZC1jb2xvcjojZmZmO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7cGFkZGluZzo4cHggMTJweDtwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXItcmFkaXVzOjZweDttYXJnaW4tYm90dG9tOjEycHh9Lm5vdGVzX2J1dHRvbiBhLmxpbmstaW50ZXJuYWwubWFjcm8tbGlua3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO291dGxpbmU6MDtjdXJzb3I6cG9pbnRlcjttaW4td2lkdGg6MCFpbXBvcnRhbnR9Lm5vdGVzX3RleHR7Y29sb3I6IzAwMDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZvbnQtc2l6ZToxLjRlbTtmb250LXdlaWdodDo3MDA7bGluZS1oZWlnaHQ6MTt3aWR0aDoxMDAlOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5ub3Rlc190ZXh0IGltZ3ttYXJnaW46MCFpbXBvcnRhbnQ7d2lkdGg6NjlweCFpbXBvcnRhbnR9Lm5vdGVzX2ljb257ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH0udGV4dF9ibGFja3tjb2xvcjojMDAwO2xpbmUtaGVpZ2h0OjEuMzt0ZXh0LWFsaWduOmp1c3RpZnk7Zm9udC1zaXplOjEuMWVtfWJvZHkubm90ZXNpbiAjaGVhZGVyX2FwcHtiYWNrZ3JvdW5kLWNvbG9yOiNlM2UzZTMhaW1wb3J0YW50O2NvbG9yOiMwMDAhaW1wb3J0YW50fWJvZHkubm90ZXNpbiAjdG9wYmFye2JhY2tncm91bmQtY29sb3I6IzAwMCFpbXBvcnRhbnR9Ym9keS5ub3Rlc2luICNzdG9yeXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmYhaW1wb3J0YW50O2NvbG9yOiMwMDAhaW1wb3J0YW50fWJvZHkubm90ZXNpbiAjbmF2YmFyey13ZWJraXQtZmlsdGVyOmludmVydCgxMDAlKTtmaWx0ZXI6aW52ZXJ0KDEwMCUpfWRpdiNwYXNzYWdlLXN5c3RlbS5wYXNzYWdlLmRhcmsubm90aG91ciBkaXYuc2V0dGluZ19jb250YWluZXIgZGl2Lmljb25fc2V0dGluZyBpbWd7bWF4LWhlaWdodDo0MHB4IWltcG9ydGFudDttYXJnaW46NnB4IDRweH1kaXYjcGFzc2FnZS1zeXN0ZW0ucGFzc2FnZS5kYXJrLm5vdGhvdXIgZGl2I3BhZGRpbmctY29udGFpbmVyIGRpdi5zZXR0aW5nX2NvbnRhaW5lcntiYWNrZ3JvdW5kLWNvbG9yOiNmODY3NTQhaW1wb3J0YW50O2xpbmUtaGVpZ2h0OjE7Zm9udC13ZWlnaHQ6NzAwO3BhZGRpbmc6MTZweH0uY2xvY2tfaWNvbntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4fS5jbG9ja19pbWd7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH0uZ3JleXtjb2xvcjojOTU5NTk1fS5hY2hpZXZlbWVudHNfdGlsZXtjb2xvcjojZGUwMjg1O3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjEuMmVtO21hcmdpbi1ib3R0b206MTJweH0udG9kb19idXR0b257ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDtiYWNrZ3JvdW5kLWNvbG9yOiMyMDJjMzM7Ym9yZGVyLXJhZGl1czoxMnB4O2ZvbnQtc2l6ZToxLjNyZW07Z2FwOjEycHg7bWFyZ2luLWJvdHRvbToxMnB4fS50b2RvX2ljb257ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH0udG9kb190ZXh0e2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9PC9zdHlsZT48c2NyaXB0IHJvbGU9InNjcmlwdCIgaWQ9InR3aW5lLXVzZXItc2NyaXB0IiB0eXBlPSJ0ZXh0L3R3aW5lLWphdmFzY3JpcHQiPiJ1c2Ugc3RyaWN0IjtDb25maWcuc2F2ZXMuc2xvdHM9MTUsQ29uZmlnLnNhdmVzLnZlcnNpb249MSxTdGF0ZS52YXJpYWJsZXMuZW5kT2ZDb250ZW50PSExLFN0YXRlLnZhcmlhYmxlcy5lbmRPZkZyZWVDb250ZW50PSExLFN0YXRlLnZhcmlhYmxlcy5jYXA9MSxTdGF0ZS52YXJpYWJsZXMuTWF4Q2FwPTIsU3RhdGUudmFyaWFibGVzLmZyZWVDYXA9MSxTdGF0ZS52YXJpYWJsZXMuYmFjaz0iaG9tZSIsU3RhdGUudmFyaWFibGVzLnRyYW5zaXRpb25UZXh0PSJ0ZXN0IixTdGF0ZS52YXJpYWJsZXMudHJhbnNpdGlvbj0hMSxTdGF0ZS52YXJpYWJsZXMuZG9tc3ViPTAsU3RhdGUudmFyaWFibGVzLm5hb21pX29mZmVyPSExLFN0YXRlLnZhcmlhYmxlcy52YW5lc3NhX3JlbD0wLFN0YXRlLnZhcmlhYmxlcy5hbm5pZV9yb21hbmNlPTAsU3RhdGUudmFyaWFibGVzLm5hb21pX2VuZW15PSExLFN0YXRlLnZhcmlhYmxlcy5raXNzaW5nPSExLFN0YXRlLnZhcmlhYmxlcy5nYW5nYmFuZz0hMSxTdGF0ZS52YXJpYWJsZXMuaGFpbGV5X2RyZXNzPTEsU3RhdGUudmFyaWFibGVzLmplbm5hPTAsU3RhdGUudmFyaWFibGVzLmplbm5hX21haW49ITAsU3RhdGUudmFyaWFibGVzLmVwMT0hMSxTdGF0ZS52YXJpYWJsZXMuZXAyPSExLFN0YXRlLnZhcmlhYmxlcy5KZW5uYUFjaGl2ZW1lbnQ9ITEsU3RhdGUudmFyaWFibGVzLmFmcWxvcD0iIixTdGF0ZS52YXJpYWJsZXMuYnJzdG9wcT0ic2Fuc2UxMjc4IixTdGF0ZS52YXJpYWJsZXMucG1kbHA9ITEsU3RhdGUudmFyaWFibGVzLlRvYXN0QW5uaWUyPSExLFN0YXRlLnZhcmlhYmxlcy5ob3Jvc2NvcGU9WyJUb2RheSBpcyBwZXJmZWN0IGZvciBsZXR0aW5nIG90aGVycyB0YWtlIHRoZSBzcG90bGlnaHQuIFlvdXIgam95IGNvbWVzIGZyb20gc2VlaW5nIHRoZW0gc2hpbmUgYnJpZ2h0ZXIsIGVzcGVjaWFsbHkgd2hlbiBpdCdzIHlvdXIgY2FuZGxlIHRoZXkncmUgaG9sZGluZy4iLCJTaGFyaW5nIGlzIGNhcmluZywgYW5kIHRvZGF5LCB5b3UncmUgdGhlIHVsdGltYXRlIGdpdmVyLiBTaXQgYmFjayBhbmQgZW5qb3kgdGhlIHVuaXF1ZSBwbGVhc3VyZSBvZiBnZW5lcm9zaXR5IGluIGFsbCBpdHMgZm9ybXMuIiwiWW91ciBkdWFsIG5hdHVyZSB0aHJpdmVzIHdoZW4gc29tZW9uZSBlbHNlIHRha2VzIGNvbnRyb2wuIExldCBvdGhlcnMgc3RlZXIgdGhlIHNoaXAgd2hpbGUgeW91IGFkbWlyZSB0aGUgdmlldyBmcm9tIGEgZGlzdGFuY2UuIiwiWW91ciBudXJ0dXJpbmcgc2lkZSB3aWxsIHJlYWNoIGl0cyBwZWFrIHRvZGF5LiBHaXZpbmcgc29tZW9uZSBlbHNlIHRoZSBrZXlzIHRvIHlvdXIgdHJlYXN1cmUgY2hlc3QgZmVlbHMgc3RyYW5nZWx5IHNhdGlzZnlpbmcuIiwiWW91IGxvdmUgYXR0ZW50aW9uLCBidXQgdG9kYXksIHlvdSdsbCBmaW5kIGpveSBpbiBzdGVwcGluZyBhc2lkZSBhbmQgd2F0Y2hpbmcgc29tZW9uZSBlbHNlIGJhc2sgaW4geW91ciBnbG93LiBUaGVpciBoYXBwaW5lc3MgaXMgeW91ciBjcm93bi4iLCJEZXRhaWxzIG1hdHRlciwgZXNwZWNpYWxseSB3aGVuIHRoZXkgaW52b2x2ZSBvdGhlcnMgZW5qb3lpbmcgd2hhdCB5b3UgdmFsdWUgbW9zdC4gTGVhbiBpbnRvIHRoYXQgdXJnZSB0byBvcmNoZXN0cmF0ZSB0aGVpciBkZWxpZ2h0IHBlcmZlY3RseS4iLCJCYWxhbmNlIGlzIGtleSwgYnV0IHRvZGF5LCBpdCB0aXBzIHRvd2FyZHMgbGV0dGluZyBvdGhlcnMgaW5kdWxnZSB3aGlsZSB5b3UgY2hlZXIgdGhlbSBvbi4gSGFybW9ueSBpcyBzd2VldGVyIHdoZW4gc2hhcmVkLiIsIlRoZSBpbnRlbnNpdHkgeW91IGNyYXZlIGNvbWVzIGZyb20gd2F0Y2hpbmcgb3RoZXJzIHNhdm9yIHdoYXQgeW91IG9mZmVyLiBMZXR0aW5nIGdvIGZlZWxzIHJpc2t5IGJ1dCBvaC1zby10aHJpbGxpbmcuIiwiQWR2ZW50dXJlIGF3YWl0cywgbm90IGZvciB5b3UsIGJ1dCBmb3IgdGhvc2UgeW91IGludml0ZSBpbnRvIHlvdXIgd29ybGQuIFNoYXJlIHRoZSBleGNpdGVtZW50IGFuZCByZXZlbCBpbiB0aGVpciBqb3VybmV5LiIsIkFtYml0aW9uIHRha2VzIGEgYmFja3NlYXQgdG9kYXkgYXMgeW91IGxldCBzb21lb25lIGVsc2UgY2xpbWIgeW91ciBsYWRkZXIuIFRoZWlyIHN1Y2Nlc3MgZmVlbHMgbGlrZSB5b3VyIGdyZWF0ZXN0IGFjY29tcGxpc2htZW50LiIsIllvdXIgaW5ub3ZhdGl2ZSBzcGlyaXQgc2hpbmVzIHdoZW4geW91IGNyZWF0ZSBvcHBvcnR1bml0aWVzIGZvciBvdGhlcnMgdG8gZW5qb3kgd2hhdCB5b3UgY2hlcmlzaC4gRnVsZmlsbG1lbnQgY29tZXMgdGhyb3VnaCBzaGFyZWQgZXhwZXJpZW5jZXMuIiwiWW91ciBkcmVhbXkgbmF0dXJlIGFsaWducyB3aXRoIGEgc2VsZmxlc3MgYWN0IG9mIGdlbmVyb3NpdHkuIEdpdmluZyBmcmVlbHkgdG8gb3RoZXJzIG1ha2VzIHlvdSBmZWVsIGxpa2UgdGhlIHN0YXIgb2YgdGhlaXIgc3RvcnkuIiwiWW91ciBmaXJlIGJ1cm5zIGJyaWdodGVyIHdoZW4gb3RoZXJzIGdldCB0byBmZWVsIGl0cyB3YXJtdGguIExldCBzb21lb25lIGVsc2UgdG9hc3QgdGhlaXIgbWFyc2htYWxsb3dzIHRvZGF5LiIsIldoYXTigJlzIHlvdXJzIGlzIHRoZWlycywgYXQgbGVhc3QgZm9yIHRvZGF5LiBXYXRjaGluZyB0aGVtIGVuam95IHlvdXIgdHJlYXN1cmVzIHdpbGwgZmVlbCBvZGRseSBmdWxmaWxsaW5nLiIsIlR3byBoZWFkcyBhcmUgYmV0dGVyIHRoYW4gb25lLCBlc3BlY2lhbGx5IHdoZW4gdGhlIG90aGVyIG9uZSBnZXRzIHRvIGVuam95IGFsbCB0aGUgZnVuLiBEb3VibGUgdGhlIHBsZWFzdXJlLCBkb3VibGUgdGhlIHBlcnNwZWN0aXZlLiIsIllvdXIgZW1vdGlvbmFsIGdlbmVyb3NpdHkgaXMgdW5zdG9wcGFibGUuIEhhbmQgb3ZlciB0aGUgcmVpbnMgYW5kIGJhc2sgaW4gdGhlIGNvenkgZ2xvdyBvZiB0aGVpciBoYXBwaW5lc3MuIiwiTm9ybWFsbHksIHlvdeKAmWQgZGVtYW5kIHRoZSBzcG90bGlnaHQsIGJ1dCB0b2RheSwgdGhlcmXigJlzIGEgdW5pcXVlIGpveSBpbiB3YXRjaGluZyBzb21lb25lIGVsc2Ugc3RlYWwgeW91ciB0aHVuZGVyLiBJdOKAmXMgZmxhdHRlcmluZywgcmVhbGx5LiIsIkxldCBnbyBvZiBwZXJmZWN0aW9uIGFuZCBlbWJyYWNlIHRoZSBiZWF1dHkgb2Ygc29tZW9uZSBlbHNlIGVuam95aW5nIHdoYXQgeW91IHdvcmtlZCBzbyBoYXJkIHRvIHBlcmZlY3QuIFNhdGlzZmFjdGlvbiBndWFyYW50ZWVkISIsIlNoYXJpbmcgaXNu4oCZdCBqdXN0IGNhcmluZywgdGhhdOKAmXMgeW91ciB2aWJlIHRvZGF5LiBXYXRjaGluZyB0aGUgc2NhbGVzIHRpcCBpbiB0aGVpciBmYXZvciB3aWxsIGZlZWwgc3VycHJpc2luZ2x5IGJhbGFuY2VkLiIsIk15c3Rlcnkgc3VpdHMgeW91LCBidXQgc28gZG9lcyBoYW5kaW5nIG92ZXIgdGhlIGtleSB0byBzb21lb25lIGVsc2UuIFRoZSB0aHJpbGwgb2YgdGhlaXIgZGlzY292ZXJ5IHdpbGwgYmUgd29ydGggaXQuIiwiWW91ciBhZHZlbnR1cm91cyBzcGlyaXQgbG92ZXMgdG8gZXhwbG9yZSwgYnV0IHRvZGF5LCBsZXQgb3RoZXJzIGVuam95IHRoZSByaWRlIHdoaWxlIHlvdSBwbGF5IHRoZSB3aXNlIHRvdXIgZ3VpZGUuIiwiSGFyZCB3b3JrIHBheXMgb2ZmLCBlc3BlY2lhbGx5IHdoZW4gc29tZW9uZSBlbHNlIHJlYXBzIHRoZSBiZW5lZml0cy4gVGhlaXIgc3VjY2VzcyBpcyB5b3VyIHNpbGVudCB0cml1bXBoLiIsIllvdXIgcXVpcmt5IGlkZWFzIHNoaW5lIGJyaWdodGVyIHdoZW4gc2hhcmVkLiBMZXQgb3RoZXJzIGJvcnJvdyB5b3VyIGJyaWxsaWFuY2UgYW5kIHdhdGNoIHRoZSBtYWdpYyB1bmZvbGQuIiwiWW91ciBzZW5zaXRpdml0eSBpcyB5b3VyIHN1cGVycG93ZXIuIFRvZGF5LCBsZXR0aW5nIG90aGVycyBlbmpveSB0aGUgZHJlYW0geW914oCZdmUgYnVpbHQgaXMgdGhlIHN3ZWV0ZXN0IGtpbmQgb2YgZXNjYXBpc20uIl0sU3RhdGUudmFyaWFibGVzLmNhcDJBbm5pZT1be3R5cGU6MSxzZW5kZXI6IllvdSIsbWVzc2FnZToiRG9u4oCZdCB3b3JyeSBhYm91dCBpdCJ9LHt0eXBlOjEsc2VuZGVyOiJZb3UiLG1lc3NhZ2U6IknigJltIGdvaW5nIHRvIGdldCBpdCBkb25lIGJ5IEZyaWRheSwgbm8gbWF0dGVyIHdoYXQifSx7dHlwZToxLHNlbmRlcjoiQW5uaWUiLG1lc3NhZ2U6IknigJltIGdsYWQgdG8gaGVhciB0aGF0In0se3R5cGU6MSxzZW5kZXI6IkFubmllIixtZXNzYWdlOiJZb3Uga25vdyBJIGJlbGlldmUgaW4geW91In0se3R5cGU6NCxzZW5kZXI6IkFubmllIixtZXNzYWdlOiJhc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCJ9LHt0eXBlOjEsc2VuZGVyOiJZb3UiLG1lc3NhZ2U6IkkgbG92ZSB5b3UifSx7dHlwZToxLHNlbmRlcjoiQW5uaWUiLG1lc3NhZ2U6IkkgbG92ZSB5b3UgbW9yZSJ9XSxTdGF0ZS52YXJpYWJsZXMuY2FwMlBoaWxsaXBzPVt7dHlwZToxLHNlbmRlcjoiWW91IixtZXNzYWdlOiJVbmRlcnN0b29kLCBzaXIuIEnigJlsbCBoYXZlIGFsbCB0aGUgcmVwb3J0cyByZWFkeSBieSBGcmlkYXkifSx7dHlwZToxLHNlbmRlcjoiUGhpbGxpcHMiLG1lc3NhZ2U6IlRoYXTigJlzIG1vcmUgbGlrZSBpdC4ifSx7dHlwZToxLHNlbmRlcjoiUGhpbGxpcHMiLG1lc3NhZ2U6IkhhaWxleSB3aWxsIGJyaWVmIHlvdSBvbiB3aGF0IHdlIG5lZWQuIn0se3R5cGU6MSxzZW5kZXI6IlBoaWxsaXBzIixtZXNzYWdlOiJJ4oCZbGwgdGVsbCBoZXIgdG8gZW1haWwgeW91IGFzIHNvb24gYXMgc2hlIGdldHMgdG8gdGhlIG9mZmljZS4ifSx7dHlwZToxLHNlbmRlcjoiWW91IixtZXNzYWdlOiJVbmRlcnN0b29kIn1dLFN0YXRlLnZhcmlhYmxlcy5jYXAySGFpbGV5PVt7dHlwZToxLHNlbmRlcjoiWW91IixtZXNzYWdlOiJUaGFuayB5b3Ugc28gbXVjaCwgSGFpbGV5In0se3R5cGU6MSxzZW5kZXI6IllvdSIsbWVzc2FnZToiSSBkb27igJl0IGtub3cgd2hhdCBJ4oCZZCBkbyB3aXRob3V0IHlvdSJ9LHt0eXBlOjIsc2VuZGVyOiJIYWlsZXkiLG1lc3NhZ2U6ImFzc2V0cy9pbWcvZXAxL2hhaWxleV9waG90b18xLndlYnAifSx7dHlwZToxLHNlbmRlcjoiSGFpbGV5IixtZXNzYWdlOiJZb3UgZ290IHRoaXMgJG5hbWUhIn1dLFN0YXRlLnZhcmlhYmxlcy5jYXAyTmFvbWk9W3t0eXBlOjEsc2VuZGVyOiJOYW9taSIsbWVzc2FnZToiT2gsIEkgZGlzYWdyZWUifSx7dHlwZToxLHNlbmRlcjoiTmFvbWkiLG1lc3NhZ2U6IkFueXRoaW5nIGludm9sdmluZyBteSBiZXN0IGZyaWVuZCBoYXMgZXZlcnl0aGluZyB0byBkbyB3aXRoIG1lIn0se3R5cGU6MSxzZW5kZXI6Ik5hb21pIixtZXNzYWdlOiJJ4oCZdmUga25vd24gaGVyIGZhciBsb25nZXIgdGhhbiB5b3UgaGF2ZSJ9LHt0eXBlOjEsc2VuZGVyOiJOYW9taSIsbWVzc2FnZToiQnV0IGhleSwgeW914oCZbGwgdGhhbmsgbWUgZXZlbnR1YWxseSJ9LHt0eXBlOjEsc2VuZGVyOiJOYW9taSIsbWVzc2FnZToiVGhhbmtzIHRvIG1lLCB5b3VyIGRhcmtlc3QgZmFudGFzaWVzIHdpbGwgY29tZSB0cnVlIn0se3R5cGU6MSxzZW5kZXI6IllvdSIsbWVzc2FnZToiSeKAmW0gZG9uZSB0YWxraW5nIHRvIHlvdSJ9LHt0eXBlOjQsc2VuZGVyOiJOYW9taSIsbWVzc2FnZToiYXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfd2luay53ZWJwIn1dLFN0YXRlLnZhcmlhYmxlcy5jYXAyVmFuZXNzYT1be3R5cGU6MSxzZW5kZXI6IllvdSIsbWVzc2FnZToiVGhhbmtzLCB5b3XigJl2ZSBhbHdheXMgYmVlbiBhIGdvb2QgZnJpZW5kIn0se3R5cGU6MSxzZW5kZXI6IllvdSIsbWVzc2FnZToiV2UganVzdCB3YW50IHRvIHRyeSBzb21ldGhpbmcgbmV3LCB0aGF04oCZcyBhbGwifSx7dHlwZToxLHNlbmRlcjoiVmFuZXNzYSIsbWVzc2FnZToiSSB0b3RhbGx5IGdldCBpdCJ9LHt0eXBlOjEsc2VuZGVyOiJWYW5lc3NhIixtZXNzYWdlOiJMaWtlIEkgc2FpZCwganVzdCB0ZXh0IG1lIGlmIHlvdSBuZWVkIGFueXRoaW5nIn0se3R5cGU6MSxzZW5kZXI6IllvdSIsbWVzc2FnZToiSSB3aWxsIn0se3R5cGU6MSxzZW5kZXI6IllvdSIsbWVzc2FnZToiVGFrZSBjYXJlLCBWYW5lc3NhIn0se3R5cGU6MSxzZW5kZXI6IlZhbmVzc2EiLG1lc3NhZ2U6IllvdSB0b28sICRuYW1lIn0se3R5cGU6NCxzZW5kZXI6Ik5hb21pIixtZXNzYWdlOiJhc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9zbWlsZS53ZWJwIn1dLFN0YXRlLnZhcmlhYmxlcy5waG90b3M9WyJhc3NldHMvaW1nL2JnMS53ZWJwIl0sU3RhdGUudmFyaWFibGVzLkFubmllX25vdGlmaWNhdGlvbl8xPSExLFN0YXRlLnZhcmlhYmxlcy5zb3VuZD0hMCxTdGF0ZS52YXJpYWJsZXMubmFtZT0iSm9zaCIsU3RhdGUudmFyaWFibGVzLmhvdXI9IjA3OjQzIixTdGF0ZS52YXJpYWJsZXMuYnV0dG9uQWN0aXZlPSExLFN0YXRlLnZhcmlhYmxlcy5pbWc9IiIsU3RhdGUudmFyaWFibGVzLndhbGxwYXBlcj0iYXNzZXRzL2ltZy9iZzEud2VicCIsU3RhdGUudmFyaWFibGVzLnN1cHBvcnRJZD0iYWR3bG8wIixTdGF0ZS52YXJpYWJsZXMudGVzdHZhcj0hMSxTdGF0ZS52YXJpYWJsZXMuZGV2X3Zpc2libGU9ITEsU3RhdGUudmFyaWFibGVzLmRldl9sYXN0PSJIZXkhIixTdGF0ZS52YXJpYWJsZXMuQW5uaWVfY2hhdExvZz1bXSxTdGF0ZS52YXJpYWJsZXMuQW5uaWVfY2hhdFN0YXRlPSJBbm5pZVN0YXJ0MSIsU3RhdGUudmFyaWFibGVzLkFubmllX2NoYXQ9ITAsU3RhdGUudmFyaWFibGVzLkFubmllX2xhc3RJZD0iI2FzZCIsU3RhdGUudmFyaWFibGVzLkFubmllX3BhdXNlZD0hMSxTdGF0ZS52YXJpYWJsZXMuQW5uaWVfbGFzdD0iSGV5IGhvbmV5LCBnb29kIG1vcm5pbmciLFN0YXRlLnZhcmlhYmxlcy5Bbm5pZV9sYXN0X2hvdXI9Ijc6NDMiLFN0YXRlLnZhcmlhYmxlcy5Bbm5pZV9vcHRpb25zPVtdLFN0YXRlLnZhcmlhYmxlcy5Bbm5pZV9ub3Rlcz1bXSxTdGF0ZS52YXJpYWJsZXMuUGhpbGxpcHNfdmlzaWJsZT0hMSxTdGF0ZS52YXJpYWJsZXMuUGhpbGxpcHNfY2hhdExvZz1bXSxTdGF0ZS52YXJpYWJsZXMuUGhpbGxpcHNfY2hhdFN0YXRlPSJQaGlsbGlwc1N0YXJ0MSIsU3RhdGUudmFyaWFibGVzLlBoaWxsaXBzX2NoYXQ9ITAsU3RhdGUudmFyaWFibGVzLlBoaWxsaXBzX2xhc3RJZD0iI2FzZCIsU3RhdGUudmFyaWFibGVzLlBoaWxsaXBzX3BhdXNlZD0hMSxTdGF0ZS52YXJpYWJsZXMuUGhpbGxpcHNfbGFzdD0iSSdtIGdvaW5nIHRvIG5lZWQgdGhlIHJldmVudWUgcmVwb3J0cyBieSBGcmlkYXkuIFlvdSBoYXZlIGZpdmUgZGF5cy4iLFN0YXRlLnZhcmlhYmxlcy5QaGlsbGlwc19sYXN0X2hvdXI9Ijg6MzciLFN0YXRlLnZhcmlhYmxlcy5QaGlsbGlwc19vcHRpb25zPVtdLFN0YXRlLnZhcmlhYmxlcy5QaGlsbGlwc19ub3Rlcz1bXSxTdGF0ZS52YXJpYWJsZXMuSGFpbGV5X3Zpc2libGU9ITEsU3RhdGUudmFyaWFibGVzLkhhaWxleV9jaGF0TG9nPVtdLFN0YXRlLnZhcmlhYmxlcy5IYWlsZXlfY2hhdFN0YXRlPSJIYWlsZXlTdGFydDEiLFN0YXRlLnZhcmlhYmxlcy5IYWlsZXlfY2hhdD0hMCxTdGF0ZS52YXJpYWJsZXMuSGFpbGV5X2xhc3RJZD0iI2FzZCIsU3RhdGUudmFyaWFibGVzLkhhaWxleV9wYXVzZWQ9ITEsU3RhdGUudmFyaWFibGVzLkhhaWxleV9sYXN0PSJIZXksIGhvdyBhcmUgeW91PyIsU3RhdGUudmFyaWFibGVzLkhhaWxleV9sYXN0X2hvdXI9Ijk6MDAiLFN0YXRlLnZhcmlhYmxlcy5IYWlsZXlfb3B0aW9ucz1bXSxTdGF0ZS52YXJpYWJsZXMuSGFpbGV5X25vdGVzPVtdLFN0YXRlLnZhcmlhYmxlcy5KZW5uYV92aXNpYmxlPSExLFN0YXRlLnZhcmlhYmxlcy5KZW5uYV9jaGF0TG9nPVtdLFN0YXRlLnZhcmlhYmxlcy5KZW5uYV9jaGF0U3RhdGU9Ikplbm5hMV8xIixTdGF0ZS52YXJpYWJsZXMuSmVubmFfY2hhdD0hMCxTdGF0ZS52YXJpYWJsZXMuSmVubmFfbGFzdElkPSIjYXNkIixTdGF0ZS52YXJpYWJsZXMuSmVubmFfcGF1c2VkPSExLFN0YXRlLnZhcmlhYmxlcy5KZW5uYV9sYXN0PSJIaSAkbmFtZSwgaXMgdGhpcyB5b3VyIG51bWJlcj8iLFN0YXRlLnZhcmlhYmxlcy5KZW5uYV9sYXN0X2hvdXI9Ijk6MDAiLFN0YXRlLnZhcmlhYmxlcy5KZW5uYV9vcHRpb25zPVtdLFN0YXRlLnZhcmlhYmxlcy5KZW5uYV9ub3Rlcz1bXSxTdGF0ZS52YXJpYWJsZXMuTmFvbWlfdmlzaWJsZT0hMSxTdGF0ZS52YXJpYWJsZXMuTmFvbWlfY2hhdExvZz1bXSxTdGF0ZS52YXJpYWJsZXMuTmFvbWlfY2hhdFN0YXRlPSJOYW9taVN0YXJ0MSIsU3RhdGUudmFyaWFibGVzLk5hb21pX2NoYXQ9ITAsU3RhdGUudmFyaWFibGVzLk5hb21pX2xhc3RJZD0iI2FzZCIsU3RhdGUudmFyaWFibGVzLk5hb21pX3BhdXNlZD0hMSxTdGF0ZS52YXJpYWJsZXMuTmFvbWlfbGFzdD0iSG9uZXN0bHksIEkgaGF2ZSB0byBjb25ncmF0dWxhdGUgeW91IixTdGF0ZS52YXJpYWJsZXMuTmFvbWlfbGFzdF9ob3VyPSIxMDowMCIsU3RhdGUudmFyaWFibGVzLk5hb21pX29wdGlvbnM9W10sU3RhdGUudmFyaWFibGVzLk5hb21pX25vdGVzPVtdLFN0YXRlLnZhcmlhYmxlcy5WYW5lc3NhX3Zpc2libGU9ITEsU3RhdGUudmFyaWFibGVzLlZhbmVzc2FfY2hhdExvZz1bXSxTdGF0ZS52YXJpYWJsZXMuVmFuZXNzYV9jaGF0U3RhdGU9IlZhbmVzc2FJbnRybzEiLFN0YXRlLnZhcmlhYmxlcy5WYW5lc3NhX2NoYXQ9ITAsU3RhdGUudmFyaWFibGVzLlZhbmVzc2FfbGFzdElkPSIjYXNkIixTdGF0ZS52YXJpYWJsZXMuVmFuZXNzYV9wYXVzZWQ9ITEsU3RhdGUudmFyaWFibGVzLlZhbmVzc2FfbGFzdD0iSGV5ICRuYW1lLCBob3figJlzIGV2ZXJ5dGhpbmc/IixTdGF0ZS52YXJpYWJsZXMuVmFuZXNzYV9sYXN0X2hvdXI9IjExOjU4IixTdGF0ZS52YXJpYWJsZXMuVmFuZXNzYV9vcHRpb25zPVtdLFN0YXRlLnZhcmlhYmxlcy5WYW5lc3NhX25vdGVzPVtdLHNldHVwLnNpZ25hbF9kaWFuYV92aXNpYmxlPWZ1bmN0aW9uKCl7U3RhdGUudmFyaWFibGVzLkRpYW5hX3Zpc2libGU9ITB9LHNldHVwLmlkPWZ1bmN0aW9uKCl7cmV0dXJuIm1lc3NhZ2UtMSIuY29uY2F0KE1hdGguZmxvb3IoNDI5NDk2NzI5NipNYXRoLnJhbmRvbSgpKS50b1N0cmluZygxNikpfSxzZXR1cC50b2dnbGVGdWxsU2NyZWVuPWZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOmRvY3VtZW50LmJvZHk7ZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnQ/ZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4/ZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4oKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkVycm9yIGFsIHNhbGlyIGRlIHBhbnRhbGxhIGNvbXBsZXRhOiAiLmNvbmNhdChlLm1lc3NhZ2UpKX0pKTpkb2N1bWVudC53ZWJraXRFeGl0RnVsbHNjcmVlbj9kb2N1bWVudC53ZWJraXRFeGl0RnVsbHNjcmVlbigpOmRvY3VtZW50Lm1zRXhpdEZ1bGxzY3JlZW4mJmRvY3VtZW50Lm1zRXhpdEZ1bGxzY3JlZW4oKTplLnJlcXVlc3RGdWxsc2NyZWVuP2UucmVxdWVzdEZ1bGxzY3JlZW4oKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkVycm9yIGVuIHBhbnRhbGxhIGNvbXBsZXRhOiAiLmNvbmNhdChlLm1lc3NhZ2UpKX0pKTplLndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuP2Uud2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4oKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkVycm9yIGVuIHBhbnRhbGxhIGNvbXBsZXRhOiAiLmNvbmNhdChlLm1lc3NhZ2UpKX0pKTplLm1zUmVxdWVzdEZ1bGxzY3JlZW4mJmUubXNSZXF1ZXN0RnVsbHNjcmVlbigpfSxzZXR1cC50b2FzdD1mdW5jdGlvbihlLGEsdCl7dGhpcy5oaWRlVGltZW91dD1udWxsLHRoaXMuaGlkZVRpbWVvdXQ9c2V0VGltZW91dCgoZnVuY3Rpb24oKXsxPT1TdGF0ZS52YXJpYWJsZXMuc291bmQmJlNpbXBsZUF1ZGlvLnNlbGVjdCgidG9hc3QiKS52b2x1bWUoLjc1KS5wbGF5KCk7dmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cy5pZD0idG9hc3QtZnVsbCI7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aS5jbGFzc05hbWU9InRvYXN0LWNvbnRhaW5lciI7dmFyIG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7by5jbGFzc05hbWU9InRvYXN0LWF2YXRhciI7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7bi5zcmM9ImFzc2V0cy9pbWcvIi5jb25jYXQoZSwiX2F2YXRhci53ZWJwIiksby5hcHBlbmRDaGlsZChuKSxpLmFwcGVuZENoaWxkKG8pO3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3IuY2xhc3NOYW1lPSJ0b2FzdC10ZXh0Ijt2YXIgbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtsLnRleHRDb250ZW50PWEsci5hcHBlbmRDaGlsZChsKTt2YXIgdT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt1LnRleHRDb250ZW50PXQsci5hcHBlbmRDaGlsZCh1KSxpLmFwcGVuZENoaWxkKHIpLHMuYXBwZW5kQ2hpbGQoaSksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzKSxzZXR1cC5jbGVhclNjcmVlbihzLmlkKX0pLDMwMCl9LHNldHVwLmNsZWFyU2NyZWVuPWZ1bmN0aW9uKGUpe3RoaXMuaGlkZVRpbWVvdXQ9bnVsbCx0aGlzLmhpZGVUaW1lb3V0PXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dHJ5e2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKGUpLnJlbW92ZSgpfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoZSl9fSksMmUzKX0sJChkb2N1bWVudCkub24oImNsaWNrIiwiI3NraXBUb2dnbGVCdXR0b24iLChmdW5jdGlvbigpe1N0YXRlLnZhcmlhYmxlcy5idXR0b25BY3RpdmU9IVN0YXRlLnZhcmlhYmxlcy5idXR0b25BY3RpdmUsY29uc29sZS5sb2coU3RhdGUudmFyaWFibGVzLmJ1dHRvbkFjdGl2ZSl9KSksc2V0dXAuc2Nyb2xsSW5zdGE9ZnVuY3Rpb24oKXskKCJodG1sLCBib2R5Iikuc2Nyb2xsVG9wKCQoIiNlbmQiKS5vZmZzZXQoKS50b3ApLCQoIiNtZXNzYWdlX2NvbnRhaW5lciIpLnN0b3AoITApLmFuaW1hdGUoe29wYWNpdHk6MX0sNTAwKX0sc2V0dXAuc2Nyb2xsPWZ1bmN0aW9uKCl7JCgiaHRtbCwgYm9keSIpLnN0b3AoITAsITEpLmFuaW1hdGUoe3Njcm9sbFRvcDokKGRvY3VtZW50KS5oZWlnaHQoKX0sMWUzKX0sc2V0dXAuc2V0Qmc9ZnVuY3Rpb24oZSl7dmFyIGE9InVybCgiK2UrIikiO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIjpyb290Iikuc3R5bGUuc2V0UHJvcGVydHkoIi0tYmciLGEpfTs8L3NjcmlwdD48dHctcGFzc2FnZWRhdGEgcGlkPSIxIiBuYW1lPSJtZXNzYWdlIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OyZsdDsmbHQ7d2lkZ2V0ICZxdW90O21lc3NhZ2UmcXVvdDsmZ3Q7Jmd0OwombHQ7IS0tcmVnaW9uIG1lc3NhZ2UgLS0mZ3Q7CiZsdDsmbHQ7aWYgJGFyZ3NbMV0gIT0gJnF1b3Q7WW91JnF1b3Q7Jmd0OyZndDsKICAgICZsdDtkaXYgQGlkPSZxdW90OyRhcmdzWzNdJnF1b3Q7IGNsYXNzPSZxdW90O2ZsZXgmcXVvdDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDttZW5zYWplX2NhcHN1bGUgcGFkZGluZy1tZXNzYWdlJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3R5cGluZyZxdW90OyZndDsKICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7ZG90JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtkb3QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2RvdCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsvZGl2Jmd0OwogICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAmbHQ7ZGl2IEBpZD0mcXVvdDskYXJnc1szXSZxdW90OyBjbGFzcz0mcXVvdDtwbGF5ZXJfbWVzc2FnZSZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDttZW5zYWplX2NhcHN1bGUgcGFkZGluZy1tZXNzYWdlIGl6cXVpZXJkYSZxdW90OyZndDsKICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7dHlwaW5nJnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7ZG90JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7ZG90JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7ZG90JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogICAgICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsvZGl2Jmd0OyAgICAgIAombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7dGltZWQgJGFyZ3NbMF0mZ3Q7Jmd0OwombHQ7Jmx0O3NldCBfeiA9ICZxdW90OyMmcXVvdDsrJGFyZ3NbM10mZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgX3ogdDhuJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJGFyZ3NbMV0gIT0gJnF1b3Q7WW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O21lbnNhamVfY2Fwc3VsZSBwYWRkaW5nLW1lc3NhZ2UgZGVyZWNoYSZxdW90OyZndDsKICAgICAgICAgICAgJGFyZ3NbMl0KICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O21lbnNhamVfY2Fwc3VsZSBwYWRkaW5nLW1lc3NhZ2UgaXpxdWllcmRhJnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgJGFyZ3NbMl0KICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJGFyZ3NbMV0gIT0gJnF1b3Q7WW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2F1ZGlvICZxdW90O21lc3NhZ2UmcXVvdDsgcGxheSB2b2x1bWUgMC43NSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDthdWRpbyAmcXVvdDtteW1lc3NhZ2UmcXVvdDsgcGxheSB2b2x1bWUgMC43NSZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy93aWRnZXQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIiIG5hbWU9Im1lc3NhZ2VfZW1vamkiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSwxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7d2lkZ2V0ICZxdW90O21lc3NhZ2VfZW1vamkmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7bWVzc2FnZV9pbWcmcXVvdDsmZ3Q7CgombHQ7Jmx0O2lmICRhcmdzWzFdID09IHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIFN0YXRlLnZhcmlhYmxlcy5zdXBwb3J0SWQgPSBzZXR1cC5pZCgpOwogICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2lmICRhcmdzWzJdICE9ICZxdW90O1lvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBAaWQ9JnF1b3Q7JHN1cHBvcnRJZCZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDttZW5zYWplX2NhcHN1bGUgcGFkZGluZy1tZXNzYWdlJnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7dHlwaW5nJnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7ZG90JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7ZG90JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7ZG90JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogICAgICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAuNXMmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRzdXBwb3J0SWQgPSAmcXVvdDsjJnF1b3Q7KyRzdXBwb3J0SWQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7cmVwbGFjZSAkc3VwcG9ydElkJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpZiAkYXJnc1syXSAhPSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2ltZyBAc3JjPSZxdW90OyRhcmdzWzBdJnF1b3Q7IGNsYXNzPSZxdW90O2Vtb2ppJnF1b3Q7LyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2ltZyBAc3JjPSZxdW90OyRhcmdzWzBdJnF1b3Q7IGNsYXNzPSZxdW90O2Vtb2ppIGVtb2ppX3VzZXImcXVvdDsvJmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7YXVkaW8gJnF1b3Q7bXltZXNzYWdlJnF1b3Q7IHBsYXkgdm9sdW1lIDAuNzUmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgICZsdDtpbWcgQHNyYz0mcXVvdDskYXJnc1swXSZxdW90OyBjbGFzcz0mcXVvdDtlbW9qaSBlbW9qaV91c2VyJnF1b3Q7LyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpZiAkYXJnc1syXSAhPSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7aW1nIEBzcmM9JnF1b3Q7JGFyZ3NbMF0mcXVvdDsgY2xhc3M9JnF1b3Q7ZW1vamkmcXVvdDsvJmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2ltZyBAc3JjPSZxdW90OyRhcmdzWzBdJnF1b3Q7IGNsYXNzPSZxdW90O2Vtb2ppIGVtb2ppX3VzZXImcXVvdDsvJmd0OwogICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7Jmx0OyZsdDsvd2lkZ2V0Jmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMiIG5hbWU9Im1lc3NhZ2VfaW1nIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O3dpZGdldCAmcXVvdDttZXNzYWdlX2ltZyZxdW90OyZndDsmZ3Q7Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDttZXNzYWdlX2ltZyZxdW90OyZndDsKICAgICZsdDsmbHQ7aWYgJGFyZ3NbMV0gPT0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBAaWQ9JnF1b3Q7JGFyZ3NbMl0mcXVvdDsmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRhcmdzWzJdID0gJnF1b3Q7IyZxdW90OyskYXJnc1syXSZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7cmVwbGFjZSAkYXJnc1syXSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCBfdGh1bWJuYWlsID0gJGFyZ3NbMF0uc3BsaXQoJnF1b3Q7LiZxdW90OylbMF0gKyAmcXVvdDtfdGh1bWJuYWlsLndlYnAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2ltZyBAc3JjPSZxdW90O190aHVtYm5haWwmcXVvdDsvJmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgIHNldHVwLnNjcm9sbCgpOwogICAgICAgICAgICAgICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7YnV0dG9uICZxdW90OyZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJGltZyA9ICRhcmdzWzBdJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgICAgIERpYWxvZy5zZXR1cCgmcXVvdDsmcXVvdDspOwogICAgICAgICAgICAgICAgICAgICAgICBEaWFsb2cud2lraSgmIzM5OyZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtpbWdfYmlnJnF1b3Q7Jmd0OyZndDsmIzM5Oyk7CiAgICAgICAgICAgICAgICAgICAgICAgIERpYWxvZy5vcGVuKCk7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7L2J1dHRvbiZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7YXVkaW8gJnF1b3Q7bXltZXNzYWdlJnF1b3Q7IHBsYXkgdm9sdW1lIDAuNzUmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7c2V0IF90aHVtYm5haWwgPSAkYXJnc1swXS5zcGxpdCgmcXVvdDsuJnF1b3Q7KVswXSArICZxdW90O190aHVtYm5haWwud2VicCZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDtpbWcgQHNyYz0mcXVvdDtfdGh1bWJuYWlsJnF1b3Q7LyZndDsKICAgICAgICAgICAgJmx0OyZsdDtidXR0b24gJnF1b3Q7JnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRpbWcgPSAkYXJnc1swXSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgRGlhbG9nLnNldHVwKCZxdW90OyZxdW90Oyk7CiAgICAgICAgICAgICAgICAgICAgRGlhbG9nLndpa2koJiMzOTsmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7aW1nX2JpZyZxdW90OyZndDsmZ3Q7JiMzOTspOwogICAgICAgICAgICAgICAgICAgIERpYWxvZy5vcGVuKCk7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9idXR0b24mZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7Jmx0OyZsdDsvd2lkZ2V0Jmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQiIG5hbWU9ImltZ19iaWciIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7aW1nX2JpZyZxdW90OyZndDsKICAgICZsdDtpbWcgQHNyYz0mcXVvdDskaW1nJnF1b3Q7LyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7c2V0X3dhbGxwYXBlcl9jYXBzdWxlJnF1b3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7YnV0dG9uICZxdW90O1NldCBhcyB3YWxscGFwZXImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O3NldCAkd2FsbHBhcGVyID0gJGltZyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvYnV0dG9uJmd0OyZndDsKICAgICZsdDsvZGl2Jmd0OwombHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1IiBuYW1lPSJtZXNzYWdlX29sZCIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsmbHQ7Jmx0O3dpZGdldCAmcXVvdDttZXNzYWdlb2xkJnF1b3Q7Jmd0OyZndDsKJmx0OyEtLXJlZ2lvbiBtZXNzYWdlIG9sZCAtLSZndDsKJmx0OyZsdDtzZXQgX3NlbmRlciA9ICRhcmdzWzBdJmd0OyZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bWFjcm8tdGltZWQmcXVvdDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7ZmxleCZxdW90OyZndDsKJmx0OyZsdDtpZiBfc2VuZGVyICE9ICZxdW90O1lvdSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O21lbnNhamVfY2Fwc3VsZSBwYWRkaW5nLW1lc3NhZ2UgZGVyZWNoYSZxdW90OyZndDsKICAgICAgICAkYXJnc1sxXQogICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7cGxheWVyX21lc3NhZ2UmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7bWVuc2FqZV9jYXBzdWxlIHBhZGRpbmctbWVzc2FnZSBpenF1aWVyZGEmcXVvdDsmZ3Q7CiAgICAgICAgICAgICAgICAkYXJnc1sxXQogICAgICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7L2RpdiZndDsKJmx0Oy9zcGFuJmd0OwombHQ7Jmx0Oy93aWRnZXQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjYiIG5hbWU9Im1lc3NhZ2Vfb3V0c2lkZSIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsmbHQ7Jmx0O3dpZGdldCAmcXVvdDttZXNzYWdlbyZxdW90OyZndDsmZ3Q7CiZsdDshLS1yZWdpb24gbWVzc2FnZSBvdXRzaWRlIC0tJmd0OwombHQ7ZGl2IGlkPSZxdW90O21lc3NhZ2Vfb3V0c2lkZSZxdW90OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7YXZhdGFyJnF1b3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aWYgJGFyZ3NbMF0gPT0gJnF1b3Q7RW1pbHkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZW1pbHlfYXZhdGFyLndlYnAmcXVvdDsvJmd0OwogICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2lmICRhcmdzWzBdID09ICZxdW90O0FubmllJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL0FubmllX2F2YXRhci53ZWJwJnF1b3Q7LyZndDsKICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpZiAkYXJnc1swXSA9PSAmcXVvdDtQaGlsbGlwcyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9QaGlsbGlwc19hdmF0YXIud2VicCZxdW90Oy8mZ3Q7CiAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aWYgJGFyZ3NbMF0gPT0gJnF1b3Q7TmFvbWkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvTmFvbWlfYXZhdGFyLndlYnAmcXVvdDsvJmd0OwogICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2lmICRhcmdzWzBdID09ICZxdW90O1ZhbmVzc2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvVmFuZXNzYV9hdmF0YXIud2VicCZxdW90Oy8mZ3Q7CiAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aWYgJGFyZ3NbMF0gPT0gJnF1b3Q7SGFpbGV5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL0hhaWxleV9hdmF0YXIud2VicCZxdW90Oy8mZ3Q7CiAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aWYgJGFyZ3NbMF0gPT0gJnF1b3Q7SmVubmEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvSmVubmFfYXZhdGFyLndlYnAmcXVvdDsvJmd0OwogICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2lmICRhcmdzWzBdID09ICZxdW90O2RldiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9kZXZfYXZhdGFyLndlYnAmcXVvdDsvJmd0OwogICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsvZGl2Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDt0ZXh0byZxdW90OyZndDsKICAgICAgICAmbHQ7ZGl2Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O25vbWJyZSZxdW90OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7aWYgJGFyZ3NbMF0gPT0gJnF1b3Q7UGhpbGxpcHMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgIE1yLiBQaGlsbGlwcwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7ZWxzZWlmICRhcmdzWzBdID09ICZxdW90O2RldiZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgICAgIFRoZVBob25lR3V5IChkZXYpCiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAgICAgJGFyZ3NbMF0KICAgICAgICAgICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7bWVuc2FqZSZxdW90OyZndDskYXJnc1sxXSZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDtkaXYmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7aG9yYSZxdW90OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpZiAkYXJnc1swXSA9PSAmcXVvdDtFbWlseSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O2lmICRFbWlseV9jaGF0ID09IHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7aGFzX21lc3NhZ2UmcXVvdDsmZ3Q7ISZsdDsvZGl2Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwoKICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2lmICRhcmdzWzBdID09ICZxdW90O0FubmllJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7aWYgJEFubmllX2NoYXQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtoYXNfbWVzc2FnZSZxdW90OyZndDshJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpZiAkYXJnc1swXSA9PSAmcXVvdDtQaGlsbGlwcyZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O2lmICRQaGlsbGlwc19jaGF0ID09IHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7aGFzX21lc3NhZ2UmcXVvdDsmZ3Q7ISZsdDsvZGl2Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aWYgJGFyZ3NbMF0gPT0gJnF1b3Q7TmFvbWkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtpZiAkTmFvbWlfY2hhdCA9PSB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2hhc19tZXNzYWdlJnF1b3Q7Jmd0OyEmbHQ7L2RpdiZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwoKICAgICAgICAgICAgJmx0OyZsdDtpZiAkYXJnc1swXSA9PSAmcXVvdDtWYW5lc3NhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7aWYgJFZhbmVzc2FfY2hhdCA9PSB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2hhc19tZXNzYWdlJnF1b3Q7Jmd0OyEmbHQ7L2RpdiZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwoKICAgICAgICAgICAgJmx0OyZsdDtpZiAkYXJnc1swXSA9PSAmcXVvdDtIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtpZiAkSGFpbGV5X2NoYXQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtoYXNfbWVzc2FnZSZxdW90OyZndDshJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpZiAkYXJnc1swXSA9PSAmcXVvdDtEaWFuYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O2lmICREaWFuYV9jaGF0ID09IHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7aGFzX21lc3NhZ2UmcXVvdDsmZ3Q7ISZsdDsvZGl2Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aWYgJGFyZ3NbMF0gPT0gJnF1b3Q7SmVubmEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtpZiAkSmVubmFfY2hhdCA9PSB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2hhc19tZXNzYWdlJnF1b3Q7Jmd0OyEmbHQ7L2RpdiZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2lmICRhcmdzWzBdID09ICZxdW90O2RldiZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtoYXNfbWVzc2FnZSZxdW90OyZndDshJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsmbHQ7bGluayAmcXVvdDsmcXVvdDsgJGFyZ3NbMF0rJnF1b3Q7X2NoYXQmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7L2RpdiZndDsKJmx0OyZsdDsvd2lkZ2V0Jmd0OyZndDsmbHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjciIG5hbWU9Im1lc3NhZ2VfdGFnIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OyZsdDsmbHQ7d2lkZ2V0ICZxdW90O21lc3NhZ2VfdGFnJnF1b3Q7Jmd0OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7bWVzc2FnZS10YWcmcXVvdDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDttZXNzYWdlLXRhZy1jYXBzdWxlJnF1b3Q7Jmd0OyZsdDsmbHQ7cHJpbnQgJGFyZ3NbMF0mZ3Q7Jmd0OyZsdDsvZGl2Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L3dpZGdldCZndDsmZ3Q7Jmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI4IiBuYW1lPSJtZXNzYWdlX3RvYXN0IiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OyZsdDsmbHQ7d2lkZ2V0ICZxdW90O21lc3NhZ2VfdG9hc3QmcXVvdDsmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O3RvYXN0LWZ1bGwmcXVvdDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7dG9hc3QtY29udGFpbmVyJnF1b3Q7Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O3RvYXN0LWF2YXRhciZxdW90OyZndDsKJmx0OyZsdDs9JiMzOTsmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nLyYjMzk7KyRhcmdzWzBdKyYjMzk7X2F2YXRhci5wbmcmcXVvdDsvJmd0OyYjMzk7Jmd0OyZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7dG9hc3QtdGV4dCZxdW90OyZndDsKJmx0O2RpdiZndDtob2xhJmx0Oy9kaXYmZ3Q7CiZsdDtkaXYmZ3Q7OTozMCZsdDsvZGl2Jmd0OwombHQ7L2RpdiZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy93aWRnZXQmZ3Q7Jmd0OyZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iOSIgbmFtZT0ibWVzc2FnZV92aWRlbyIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7d2lkZ2V0ICZxdW90O21lc3NhZ2VfdmlkZW8mcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7bWVzc2FnZV9pbWcmcXVvdDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRhcmdzWzJdID09IHRydWUmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgU3RhdGUudmFyaWFibGVzLnN1cHBvcnRJZCA9IHNldHVwLmlkKCk7CiAgICAgICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7ZGl2IEBpZD0mcXVvdDskc3VwcG9ydElkJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O21lbnNhamVfY2Fwc3VsZSBwYWRkaW5nLW1lc3NhZ2UmcXVvdDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDt0eXBpbmcmcXVvdDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtkb3QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtkb3QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtkb3QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDt0aW1lZCAxcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRzdXBwb3J0SWQgPSAmcXVvdDsjJnF1b3Q7KyRzdXBwb3J0SWQmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O3JlcGxhY2UgJHN1cHBvcnRJZCZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7aW1nIEBzcmM9JnF1b3Q7JGFyZ3NbMV0mcXVvdDsvJmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtidXR0b24gJnF1b3Q7JnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkaW1nID0gJGFyZ3NbMF0mZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAgICAgRGlhbG9nLnNldHVwKCZxdW90OyZxdW90Oyk7CiAgICAgICAgICAgICAgICAgICAgICAgIERpYWxvZy53aWtpKCYjMzk7Jmx0OyZsdDtpbmNsdWRlICZxdW90O3ZpZGVvX2JpZyZxdW90OyZndDsmZ3Q7JiMzOTspOwogICAgICAgICAgICAgICAgICAgICAgICBEaWFsb2cub3BlbigpOwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0Oy9idXR0b24mZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7YXVkaW8gJnF1b3Q7bXltZXNzYWdlJnF1b3Q7IHBsYXkgdm9sdW1lIDAuNzUmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgIHNldHVwLnNjcm9sbCgpOwogICAgICAgICAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7aW1nIEBzcmM9JnF1b3Q7JGFyZ3NbMV0mcXVvdDsvJmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2J1dHRvbiAmcXVvdDsmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJGltZyA9ICRhcmdzWzBdJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICBEaWFsb2cuc2V0dXAoJnF1b3Q7JnF1b3Q7KTsKICAgICAgICAgICAgICAgICAgICBEaWFsb2cud2lraSgmIzM5OyZsdDsmbHQ7aW5jbHVkZSAmcXVvdDt2aWRlb19iaWcmcXVvdDsmZ3Q7Jmd0OyYjMzk7KTsKICAgICAgICAgICAgICAgICAgICBEaWFsb2cub3BlbigpOwogICAgICAgICAgICAgICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvYnV0dG9uJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OyZsdDsmbHQ7L3dpZGdldCZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMCIgbmFtZT0idmlkZW9fYmlnIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDtpbWdfYmlnJnF1b3Q7Jmd0OwogICAgJmx0O3ZpZGVvIEBzcmM9JnF1b3Q7JGltZyZxdW90OyBhdXRvcGxheSBsb29wJmd0OyZsdDsvdmlkZW8mZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjExIiBuYW1lPSJBbm5pZV9jaGF0IiB0YWdzPSJtYXBwIG5vdGhvdXIiIHBvc2l0aW9uPSIxMDAsMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwovKnJlZ2lvbiBFbWlseSBjaGF0Ki8KJmx0OyZsdDtpZiAkQW5uaWVfY2hhdCA9PSB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7aGVhZGVyICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0FubmllJnF1b3Q7ICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7ICRBbm5pZV9wYXVzZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2hlYWRlciAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyB0cnVlJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O21lc3NhZ2VfY29udGFpbmVyJnF1b3Q7Jmd0OwombHQ7Jmx0O2ZvciBfbGluZSByYW5nZSAkQW5uaWVfY2hhdExvZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmIF9saW5lLnR5cGUgPT0gMSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkIF9saW5lLnNlbmRlciBfbGluZS5tZXNzYWdlIF9saW5lLmF2YXRhciZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2VpZiBfbGluZS50eXBlID09IDImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bWVzc2FnZV9pbWcgX2xpbmUubWVzc2FnZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2VpZiBfbGluZS50eXBlID09IDMmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bWVzc2FnZV92aWRlbyBfbGluZS5tZXNzYWdlWzBdIF9saW5lLm1lc3NhZ2VbMV0mZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlaWYgX2xpbmUudHlwZSA9PSA0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VfZW1vamkgX2xpbmUubWVzc2FnZSBmYWxzZSBfbGluZS5zZW5kZXImZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0Oy9mb3ImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRBbm5pZV9wYXVzZWQgPT0gZmFsc2UmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkQW5uaWVfY2hhdCA9PSB0cnVlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJEFubmllX2NoYXRTdGF0ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICZsdDtkaXYgQGlkPSZxdW90OyRBbm5pZV9sYXN0SWQuc2xpY2UoMSkmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDtlbmQmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2NoYXRfYmFyJnF1b3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O2NvbnRlbnQmcXVvdDsmZ3Q7CiZsdDsmbHQ7aWYgJEFubmllX3BhdXNlZCA9PSB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJEFubmllX29wdGlvbnNbMF0mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bGluayAkQW5uaWVfb3B0aW9uc1swXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpbmNsdWRlICRBbm5pZV9vcHRpb25zWzBdLnBhc3NhZ2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkQW5uaWVfb3B0aW9uc1sxXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICRBbm5pZV9vcHRpb25zWzFdLnRleHQmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJEFubmllX29wdGlvbnNbMV0ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRBbm5pZV9vcHRpb25zWzJdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJEFubmllX29wdGlvbnNbMl0udGV4dCZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkQW5uaWVfb3B0aW9uc1syXS5wYXNzYWdlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJEFubmllX29wdGlvbnNbM10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bGluayAkQW5uaWVfb3B0aW9uc1szXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpbmNsdWRlICRBbm5pZV9vcHRpb25zWzNdLnBhc3NhZ2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7L2RpdiZndDsKJmx0OyZsdDt0aW1lZCAwLjJzJmd0OyZndDsKICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGxJbnN0YSgpOwogICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEyIiBuYW1lPSJBbm5pZVN0YXJ0MSIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtIZXkgaG9uZXksIGdvb2QgbW9ybmluZyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGV5IGhvbmV5LCBnb29kIG1vcm5pbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hleSBob25leSwgZ29vZCBtb3JuaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QXJlIHlvdSBva2F5PyBEaWQgeW91IGFycml2ZSBhbHJlYWR5PyZxdW90OyAmcXVvdDtVb2xra3JvbGtreW9sa2t3b2xra3VvbGtrVm9sa2tjb2xra0RvbGtreW9sa2tJb2xra2pvbGtraW9sa2tib2xra0tvbGtrdW9sa2tXJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FyZSB5b3Ugb2theT8gRGlkIHlvdSBhcnJpdmUgYWxyZWFkeT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0FyZSB5b3Ugb2theT8gRGlkIHlvdSBhcnJpdmUgYWxyZWFkeT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0FvbGtrT29sa2tMb2xra3hvbGtrVG9sa2tlb2xra0NvbGtrciZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjQW9sa2tPb2xra0xvbGtreG9sa2tUb2xra2VvbGtrQ29sa2tyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SGkgaG9uZXksIHllcywganVzdCBnb3QgaGVyZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVTdGFydDFfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0hpIGhvbmV5LCB5ZXMsIGp1c3QgZ290IGhlcmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV8yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTMiIG5hbWU9IkFubmllU3RhcnQxXzIiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCwyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllU3RhcnQxXzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SGkgaG9uZXksIHllcywganVzdCBnb3QgaGVyZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hpIGhvbmV5LCB5ZXMsIGp1c3QgZ290IGhlcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hpIGhvbmV5LCB5ZXMsIGp1c3QgZ290IGhlcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Ym9sa2tMb2xra2ZvbGtrQm9sa2tib2xra2FvbGtra29sa2txJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNib2xra0xvbGtrZm9sa2tCb2xra2JvbGtrYW9sa2trb2xra3EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJdCYjMzk7cyBhbGwgZ29vZCBoZXJlLCBzbyBnbGFkIHRvIGZpbmFsbHkgc3RyZXRjaCBteSBsZWdzIGFmdGVyIHRoYXQgbG9uZyB0cmlwJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV8zJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SXQmIzM5O3MgYWxsIGdvb2QgaGVyZSwgc28gZ2xhZCB0byBmaW5hbGx5IHN0cmV0Y2ggbXkgbGVncyBhZnRlciB0aGF0IGxvbmcgdHJpcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTQiIG5hbWU9IkFubmllU3RhcnQxXzE0YSIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVTdGFydDFfMTRhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0FuZCB3aGF0IGFib3V0IG9uZSBmcm9tIHRoZSBiYWNrPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FuZCB3aGF0IGFib3V0IG9uZSBmcm9tIHRoZSBiYWNrPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QW5kIHdoYXQgYWJvdXQgb25lIGZyb20gdGhlIGJhY2s/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7WW914oCZcmUgc3VjaCBhIG5hdWdodHkgYm95JnF1b3Q7ICZxdW90O1lvbGtrZ29sa2tWb2xra0JvbGtrZ29sa2t4b2xra0VvbGtreG9sa2txb2xra25vbGtrRW9sa2tIb2xra3RvbGtraW9sa2tyb2xra2EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW914oCZcmUgc3VjaCBhIG5hdWdodHkgYm95JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtZb3XigJlyZSBzdWNoIGEgbmF1Z2h0eSBib3kmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS40cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV94ZC53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfeGQud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMi45cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9pbWcgJnF1b3Q7YXNzZXRzL2ltZy9lcDEvYW5uaWVfcGhvdG9fMi53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7dG9sa2tob2xra25vbGtrQm9sa2t2b2xra1ZvbGtram9sa2trb2xra01vbGtreW9sa2t3b2xra09vbGtrSW9sa2tHb2xra2JvbGtrdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAyLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2VwMS9hbm5pZV9waG90b18yLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRwaG90b3MucHVzaCgmcXVvdDthc3NldHMvaW1nL2VwMS9hbm5pZV9waG90b18yLndlYnAmcXVvdDspJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtPb2xra1BvbGtrVW9sa2t4b2xra2dvbGtraG9sa2tzb2xra2smcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuOXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I09vbGtrUG9sa2tVb2xra3hvbGtrZ29sa2tob2xra3NvbGtrayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdSBhcmUgc28gc2V4eSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVTdGFydDFfMTVhXzEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3UgYXJlIHNvIHNleHkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV8xNWFfMSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNPb2xra1BvbGtrVW9sa2t4b2xra2dvbGtraG9sa2tzb2xra2smcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDvwn6W1JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV8xNTRhXzImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDvwn6W1JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVTdGFydDFfMTU0YV8yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE1IiBuYW1lPSJBbm5pZVN0YXJ0MV8xNWFfMSIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVTdGFydDFfMTVhXzEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WW91IGFyZSBzbyBzZXh5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGFyZSBzbyBzZXh5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtZb3UgYXJlIHNvIHNleHkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJ4oCZbSBnbGFkIHlvdSBsaWtlIHRoZW0mcXVvdDsgJnF1b3Q7bG9sa2tXb2xra3VvbGtrQ29sa2tGb2xra01vbGtrTG9sa2tOb2xra2ZvbGtrR29sa2t0b2xra1FvbGtrYW9sa2tCb2xra1pvbGtrcCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBnbGFkIHlvdSBsaWtlIHRoZW0mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJltIGdsYWQgeW91IGxpa2UgdGhlbSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7Tm93IEkgcmVhbGx5IGhhdmUgdG8gdGFrZSB0aGF0IHNob3dlciZxdW90OyAmcXVvdDtMb2xra2tvbGtrSm9sa2thb2xra2VvbGtrWG9sa2tJb2xra3BvbGtra29sa2tPb2xra0VvbGtrR29sa2tLb2xra0lvbGtrRG9sa2tJJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05vdyBJIHJlYWxseSBoYXZlIHRvIHRha2UgdGhhdCBzaG93ZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O05vdyBJIHJlYWxseSBoYXZlIHRvIHRha2UgdGhhdCBzaG93ZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0J1dCBwbGVhc2Uga2VlcCBtZSB1cGRhdGVkIGFib3V0IHlvdXIgZGF5JnF1b3Q7ICZxdW90O0RvbGtrVG9sa2tyb2xra1pvbGtram9sa2tpb2xra0JvbGtrRG9sa2tTb2xra2JvbGtrcm9sa2tvb2xra25vbGtrUW9sa2tTb2xra1EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IHBsZWFzZSBrZWVwIG1lIHVwZGF0ZWQgYWJvdXQgeW91ciBkYXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0J1dCBwbGVhc2Uga2VlcCBtZSB1cGRhdGVkIGFib3V0IHlvdXIgZGF5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4ycyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtMb3ZlIHlvdSZxdW90OyAmcXVvdDtvb2xra1VvbGtrbm9sa2t0b2xra09vbGtrT29sa2tFb2xra2pvbGtrTm9sa2twb2xra2FvbGtrcW9sa2tFb2xra2RvbGtrcm9sa2tuJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0xvdmUgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtMb3ZlIHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt0b2xra3JvbGtrQm9sa2tGb2xra09vbGtrVG9sa2tRb2xra3omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDYuMHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3RvbGtrcm9sa2tCb2xra0ZvbGtrT29sa2tUb2xra1FvbGtreiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgbG92ZSB5b3UgdG9vJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV8xNmFfMSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgbG92ZSB5b3UgdG9vJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVTdGFydDFfMTZhXzEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjdG9sa2tyb2xra0JvbGtrRm9sa2tPb2xra1RvbGtrUW9sa2t6JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q78J+lsCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVTdGFydDFfMTZhXzImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDvwn6WwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVTdGFydDFfMTZhXzImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTYiIG5hbWU9IkFubmllU3RhcnQxXzE1NGFfMiIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVTdGFydDFfMTU0YV8yJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbGV3ZF9mYWNlLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xld2RfZmFjZS53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJltIGdsYWQgeW91IGxpa2UgdGhlbSZxdW90OyAmcXVvdDtMb2xra3JvbGtrbG9sa2tob2xra21vbGtrTm9sa2tBb2xra0ZvbGtrSG9sa2t5b2xra1FvbGtrcW9sa2tyb2xra1ZvbGtrVm9sa2thJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJltIGdsYWQgeW91IGxpa2UgdGhlbSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmW0gZ2xhZCB5b3UgbGlrZSB0aGVtJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtOb3cgSSByZWFsbHkgaGF2ZSB0byB0YWtlIHRoYXQgc2hvd2VyJnF1b3Q7ICZxdW90O1pvbGtrSm9sa2tob2xra0lvbGtrdG9sa2t5b2xra3NvbGtrb29sa2tjb2xra2NvbGtraW9sa2tRb2xra0FvbGtrZG9sa2tQb2xra0wmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm93IEkgcmVhbGx5IGhhdmUgdG8gdGFrZSB0aGF0IHNob3dlciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7Tm93IEkgcmVhbGx5IGhhdmUgdG8gdGFrZSB0aGF0IHNob3dlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QnV0IHBsZWFzZSBrZWVwIG1lIHVwZGF0ZWQgYWJvdXQgeW91ciBkYXkmcXVvdDsgJnF1b3Q7VG9sa2tRb2xra1ZvbGtrbm9sa2tJb2xra0xvbGtrdW9sa2t4b2xra21vbGtram9sa2tNb2xra1BvbGtrTm9sa2tCb2xra0RvbGtrVyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgcGxlYXNlIGtlZXAgbWUgdXBkYXRlZCBhYm91dCB5b3VyIGRheSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QnV0IHBsZWFzZSBrZWVwIG1lIHVwZGF0ZWQgYWJvdXQgeW91ciBkYXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0xvdmUgeW91JnF1b3Q7ICZxdW90O0FvbGtrVm9sa2tmb2xra2NvbGtrV29sa2tub2xra2hvbGtrUm9sa2tzb2xra2RvbGtrc29sa2t4b2xra2xvbGtrWW9sa2thb2xra3cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TG92ZSB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0xvdmUgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDUuN3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2ZvbGtreG9sa2tMb2xra0tvbGtrZW9sa2tsb2xra0hvbGtrSyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNi43cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjZm9sa2t4b2xra0xvbGtrS29sa2tlb2xra2xvbGtrSG9sa2tLJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBsb3ZlIHlvdSB0b28mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzE2YV8xJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBsb3ZlIHlvdSB0b28mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV8xNmFfMSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNmb2xra3hvbGtrTG9sa2tLb2xra2VvbGtrbG9sa2tIb2xra0smcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDvwn6WwJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV8xNmFfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O/CfpbAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV8xNmFfMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNyIgbmFtZT0iQW5uaWVTdGFydDFfMTZhXzEiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCwyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllU3RhcnQxXzE2YV8xJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgbG92ZSB5b3UgdG9vJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBsb3ZlIHlvdSB0b28mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbG92ZSB5b3UgdG9vJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2RvbGtrR29sa2tLb2xra0RvbGtrRW9sa2thb2xra2tvbGtreSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjZG9sa2tHb2xra0tvbGtrRG9sa2tFb2xra2FvbGtra29sa2t5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QnllJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV8xN2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtCeWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV8xN2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTgiIG5hbWU9IkFubmllU3RhcnQxXzE2YV8yIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZVN0YXJ0MV8xNmFfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7WW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7bm9sa2t3b2xra2xvbGtrTG9sa2t3b2xra1lvbGtrWW9sa2t4JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNub2xra3dvbGtrbG9sa2tMb2xra3dvbGtrWW9sa2tZb2xra3gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtCeWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzE3YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0J5ZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzE3YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxOSIgbmFtZT0iQW5uaWVTdGFydDFfMyIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllU3RhcnQxXzMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SXTigJlzIGFsbCBnb29kIGhlcmUsIHNvIGdsYWQgdG8gZmluYWxseSBzdHJldGNoIG15IGxlZ3MgYWZ0ZXIgdGhhdCBsb25nIHRyaXAmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdOKAmXMgYWxsIGdvb2QgaGVyZSwgc28gZ2xhZCB0byBmaW5hbGx5IHN0cmV0Y2ggbXkgbGVncyBhZnRlciB0aGF0IGxvbmcgdHJpcCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SXTigJlzIGFsbCBnb29kIGhlcmUsIHNvIGdsYWQgdG8gZmluYWxseSBzdHJldGNoIG15IGxlZ3MgYWZ0ZXIgdGhhdCBsb25nIHRyaXAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7RW9sa2t6b2xra2JvbGtrUG9sa2t4b2xra1RvbGtrRG9sa2tBJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNFb2xra3pvbGtrYm9sa2tQb2xra3hvbGtrVG9sa2tEb2xra0EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDvwn5iBJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV80JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q78J+YgSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjAiIG5hbWU9IkFubmllU3RhcnQxXzQiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZVN0YXJ0MV80JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfYmlnX3NtaWxlLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2JpZ19zbWlsZS53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgc3RpbGwgY2Fu4oCZdCBiZWxpZXZlIHRoZSBjb21wYW55IHNlbnQgeW91IHNvIGZhciZxdW90OyAmcXVvdDthb2xra1pvbGtraG9sa2tCb2xra0VvbGtrdG9sa2t1b2xra1JvbGtrem9sa2t1b2xra2NvbGtreG9sa2tUb2xra05vbGtrV29sa2t3JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgc3RpbGwgY2Fu4oCZdCBiZWxpZXZlIHRoZSBjb21wYW55IHNlbnQgeW91IHNvIGZhciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBzdGlsbCBjYW7igJl0IGJlbGlldmUgdGhlIGNvbXBhbnkgc2VudCB5b3Ugc28gZmFyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJ4oCZbSBzdGlsbCBwcm9jZXNzaW5nIHRoZSBmYWN0IHRoYXQgeW914oCZbGwgYmUgYXdheSBmb3IgbW9udGhzJnF1b3Q7ICZxdW90O2VvbGtrUW9sa2tGb2xra1lvbGtrZG9sa2tmb2xra3pvbGtrcm9sa2tNb2xra1dvbGtrbm9sa2tUb2xra3VvbGtrR29sa2tOb2xra2QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gc3RpbGwgcHJvY2Vzc2luZyB0aGUgZmFjdCB0aGF0IHlvdeKAmWxsIGJlIGF3YXkgZm9yIG1vbnRocyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmW0gc3RpbGwgcHJvY2Vzc2luZyB0aGUgZmFjdCB0aGF0IHlvdeKAmWxsIGJlIGF3YXkgZm9yIG1vbnRocyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2NyeWluZy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfY3J5aW5nLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDthb2xra3RvbGtrTW9sa2tFb2xra1ZvbGtrV29sa2tOb2xra2YmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDUuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2FvbGtrdG9sa2tNb2xra0VvbGtrVm9sa2tXb2xra05vbGtrZiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1llYWgsIEkga25vdyBiYWJlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV81JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WWVhaCwgSSBrbm93IGJhYmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV81JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIxIiBuYW1lPSJBbm5pZVN0YXJ0MV81IiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZVN0YXJ0MV81JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1llYWgsIEkga25vdyBiYWJlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WWVhaCwgSSBrbm93IGJhYmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1llYWgsIEkga25vdyBiYWJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0xvbGtrZG9sa2tBb2xra1ZvbGtrdm9sa2tkb2xra2xvbGtreiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjTG9sa2tkb2xra0FvbGtrVm9sa2t2b2xra2RvbGtrbG9sa2t6JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QnV0IHlvdSBrbm93IEkgbmVlZCB0byBzY29yZSBwb2ludHMgd2l0aCBteSBib3NzLiBJIHJlYWxseSB3YW50IHRoYXQgcHJvbW90aW9uJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV82JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QnV0IHlvdSBrbm93IEkgbmVlZCB0byBzY29yZSBwb2ludHMgd2l0aCBteSBib3NzLiBJIHJlYWxseSB3YW50IHRoYXQgcHJvbW90aW9uJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVTdGFydDFfNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMiIgbmFtZT0iQW5uaWVTdGFydDFfNiIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVTdGFydDFfNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtCdXQgeW91IGtub3cgSSBuZWVkIHRvIHNjb3JlIHBvaW50cyB3aXRoIG15IGJvc3MuIEkgcmVhbGx5IHdhbnQgdGhhdCBwcm9tb3Rpb24mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgeW91IGtub3cgSSBuZWVkIHRvIHNjb3JlIHBvaW50cyB3aXRoIG15IGJvc3MuIEkgcmVhbGx5IHdhbnQgdGhhdCBwcm9tb3Rpb24mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0J1dCB5b3Uga25vdyBJIG5lZWQgdG8gc2NvcmUgcG9pbnRzIHdpdGggbXkgYm9zcy4gSSByZWFsbHkgd2FudCB0aGF0IHByb21vdGlvbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtMb2xra0xvbGtrRm9sa2tYb2xra1hvbGtrRm9sa2tEb2xra0MmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0xvbGtrTG9sa2tGb2xra1hvbGtrWG9sa2tGb2xra0RvbGtrQyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0hlIGRvZXNuJiMzOTt0IGxpa2UgbWUgbXVjaCwgYnV0IEkmIzM5O20gc3VyZSB0aGlzIHdpbGwgY2hhbmdlIGhvdyBoZSBzZWVzIG1lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV83JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SGUgZG9lc24mIzM5O3QgbGlrZSBtZSBtdWNoLCBidXQgSSYjMzk7bSBzdXJlIHRoaXMgd2lsbCBjaGFuZ2UgaG93IGhlIHNlZXMgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV83JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIzIiBuYW1lPSJBbm5pZVN0YXJ0MV83IiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZVN0YXJ0MV83JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0hlIGRvZXNu4oCZdCBsaWtlIG1lIG11Y2gsIGJ1dCBJ4oCZbSBzdXJlIHRoaXMgd2lsbCBjaGFuZ2UgaG93IGhlIHNlZXMgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZSBkb2VzbuKAmXQgbGlrZSBtZSBtdWNoLCBidXQgSeKAmW0gc3VyZSB0aGlzIHdpbGwgY2hhbmdlIGhvdyBoZSBzZWVzIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIZSBkb2VzbuKAmXQgbGlrZSBtZSBtdWNoLCBidXQgSeKAmW0gc3VyZSB0aGlzIHdpbGwgY2hhbmdlIGhvdyBoZSBzZWVzIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBob3BlIHlvdeKAmXJlIHJpZ2h0JnF1b3Q7ICZxdW90O2dvbGtrT29sa2trb2xra1NvbGtrZm9sa2tEb2xra1NvbGtrVW9sa2tMb2xra2FvbGtrRm9sa2tMb2xra3RvbGtrVW9sa2tZb2xra3YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBob3BlIHlvdeKAmXJlIHJpZ2h0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGhvcGUgeW914oCZcmUgcmlnaHQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjVzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0J1dCBob25lc3RseSwgaGXigJlzIHN1Y2ggYW4gaWRpb3QgaWYgaGUgY2Fu4oCZdCBzZWUgaG93IGNyYXp5IGhhcmR3b3JraW5nIHlvdSBhcmUmcXVvdDsgJnF1b3Q7Q29sa2tQb2xra2pvbGtrZG9sa2tSb2xra2RvbGtrUm9sa2tPb2xra2hvbGtrQm9sa2t4b2xra1FvbGtrR29sa2tGb2xra3lvbGtrUiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgaG9uZXN0bHksIGhl4oCZcyBzdWNoIGFuIGlkaW90IGlmIGhlIGNhbuKAmXQgc2VlIGhvdyBjcmF6eSBoYXJkd29ya2luZyB5b3UgYXJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCdXQgaG9uZXN0bHksIGhl4oCZcyBzdWNoIGFuIGlkaW90IGlmIGhlIGNhbuKAmXQgc2VlIGhvdyBjcmF6eSBoYXJkd29ya2luZyB5b3UgYXJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtMaWtlIEkgc2FpZCBsYXN0IG5pZ2h0LCB5b3Uga25vdyBJIGhhdmUgeW91ciBiYWNrLCBhbHdheXMhJnF1b3Q7ICZxdW90O3NvbGtrRG9sa2tKb2xra0tvbGtrdW9sa2tvb2xra0xvbGtrcG9sa2tnb2xra0JvbGtra29sa2tPb2xra3ZvbGtrWG9sa2tpb2xra0ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGlrZSBJIHNhaWQgbGFzdCBuaWdodCwgeW91IGtub3cgSSBoYXZlIHlvdXIgYmFjaywgYWx3YXlzISZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7TGlrZSBJIHNhaWQgbGFzdCBuaWdodCwgeW91IGtub3cgSSBoYXZlIHlvdXIgYmFjaywgYWx3YXlzISZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjJzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X3Rvbmd1ZS53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfdG9uZ3VlLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtlb2xra1pvbGtrSG9sa2tWb2xra1VvbGtrbm9sa2t3b2xra0omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDYuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2VvbGtrWm9sa2tIb2xra1ZvbGtrVW9sa2tub2xra3dvbGtrSiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kga25vdywgYW5kIGl0IG1lYW5zIHNvIG11Y2ggdG8gaGF2ZSBzb21lb25lIGxpa2UgeW91IHRoZXJlIGZvciBtZSBubyBtYXR0ZXIgd2hhdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVTdGFydDFfOCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kga25vdywgYW5kIGl0IG1lYW5zIHNvIG11Y2ggdG8gaGF2ZSBzb21lb25lIGxpa2UgeW91IHRoZXJlIGZvciBtZSBubyBtYXR0ZXIgd2hhdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzgmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjQiIG5hbWU9IkFubmllU3RhcnQxXzgiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllU3RhcnQxXzgmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBrbm93LCBhbmQgaXQgbWVhbnMgc28gbXVjaCB0byBoYXZlIHNvbWVvbmUgbGlrZSB5b3UgdGhlcmUgZm9yIG1lIG5vIG1hdHRlciB3aGF0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBrbm93LCBhbmQgaXQgbWVhbnMgc28gbXVjaCB0byBoYXZlIHNvbWVvbmUgbGlrZSB5b3UgdGhlcmUgZm9yIG1lIG5vIG1hdHRlciB3aGF0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGtub3csIGFuZCBpdCBtZWFucyBzbyBtdWNoIHRvIGhhdmUgc29tZW9uZSBsaWtlIHlvdSB0aGVyZSBmb3IgbWUgbm8gbWF0dGVyIHdoYXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtUaGF04oCZcyBiZWNhdXNlIEkgbG92ZSB5b3UmcXVvdDsgJnF1b3Q7R29sa2txb2xra2tvbGtrTm9sa2trb2xra2lvbGtrWG9sa2tBb2xra0NvbGtrcG9sa2tpb2xra1JvbGtrUm9sa2tSb2xra0RvbGtrSyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGF04oCZcyBiZWNhdXNlIEkgbG92ZSB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1RoYXTigJlzIGJlY2F1c2UgSSBsb3ZlIHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SeKAmWxsIGFsd2F5cyBiZSB0aGVyZSBmb3IgeW91JnF1b3Q7ICZxdW90O2JvbGtrcm9sa2tlb2xra3ZvbGtrUG9sa2tVb2xra2RvbGtrZm9sa2tPb2xra0RvbGtrVm9sa2tzb2xra1dvbGtrbG9sa2tmb2xra0YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmWxsIGFsd2F5cyBiZSB0aGVyZSBmb3IgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJ4oCZbGwgYWx3YXlzIGJlIHRoZXJlIGZvciB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O25vbGtrZG9sa2tpb2xra3BvbGtrdW9sa2tBb2xra2RvbGtrZSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjbm9sa2tkb2xra2lvbGtrcG9sa2t1b2xra0FvbGtrZG9sa2tlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q78J+lsCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVTdGFydDFfMTBhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q78J+lsCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzEwYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNub2xra2RvbGtraW9sa2twb2xra3VvbGtrQW9sa2tkb2xra2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGxvdmUgeW91IHRvby4gWW91IHdpbGwgYWx3YXlzIGhhdmUgbWUgYnkgeW91ciBzaWRlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV8xMGImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGxvdmUgeW91IHRvby4gWW91IHdpbGwgYWx3YXlzIGhhdmUgbWUgYnkgeW91ciBzaWRlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVTdGFydDFfMTBiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI1IiBuYW1lPSJBbm5pZVN0YXJ0MV8xMGEiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllU3RhcnQxXzEwYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7WW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMi4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0hvbmV5LCBJIG5lZWQgdG8gaG9wIGluIHRoZSBzaG93ZXIgaW4gYSBmZXcgbWludXRlcyZxdW90OyAmcXVvdDtub2xra2lvbGtrT29sa2tWb2xra2dvbGtrWW9sa2tQb2xra2xvbGtrQW9sa2tlb2xra1FvbGtra29sa2tOb2xra1hvbGtrZG9sa2tzJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvbmV5LCBJIG5lZWQgdG8gaG9wIGluIHRoZSBzaG93ZXIgaW4gYSBmZXcgbWludXRlcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SG9uZXksIEkgbmVlZCB0byBob3AgaW4gdGhlIHNob3dlciBpbiBhIGZldyBtaW51dGVzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuOHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtZb3Uga25vdywgZ290dGEgZ2V0IHJlYWR5IGZvciB3b3JrJnF1b3Q7ICZxdW90O1ZvbGtrTG9sa2tDb2xra2ZvbGtrRW9sa2tGb2xra3RvbGtrVm9sa2thb2xra2RvbGtrUG9sa2tab2xra3pvbGtrRm9sa2t4b2xra3gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGtub3csIGdvdHRhIGdldCByZWFkeSBmb3Igd29yayZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW91IGtub3csIGdvdHRhIGdldCByZWFkeSBmb3Igd29yayZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7am9sa2tWb2xra05vbGtrQW9sa2tFb2xra2dvbGtrZm9sa2tNJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA1LjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNqb2xra1ZvbGtrTm9sa2tBb2xra0VvbGtrZ29sa2tmb2xra00mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtDb3VsZCB5b3Ugc2VuZCBtZSBhIHBpYyB0aGVuPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVTdGFydDFfMTFhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7Q291bGQgeW91IHNlbmQgbWUgYSBwaWMgdGhlbj8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV8xMWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjam9sa2tWb2xra05vbGtrQW9sa2tFb2xra2dvbGtrZm9sa2tNJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7T2gsIG9mIGNvdXJzZSwgZ28gZG8gdGhhdCBiYWJlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV8xMWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtPaCwgb2YgY291cnNlLCBnbyBkbyB0aGF0IGJhYmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV8xMWImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjYiIG5hbWU9IkFubmllU3RhcnQxXzEwYiIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVTdGFydDFfMTBiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgbG92ZSB5b3UgdG9vLiBZb3Ugd2lsbCBhbHdheXMgaGF2ZSBtZSBieSB5b3VyIHNpZGUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGxvdmUgeW91IHRvby4gWW91IHdpbGwgYWx3YXlzIGhhdmUgbWUgYnkgeW91ciBzaWRlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGxvdmUgeW91IHRvby4gWW91IHdpbGwgYWx3YXlzIGhhdmUgbWUgYnkgeW91ciBzaWRlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtIb25leSwgSSBuZWVkIHRvIGhvcCBpbiB0aGUgc2hvd2VyIGluIGEgZmV3IG1pbnV0ZXMmcXVvdDsgJnF1b3Q7a29sa2tib2xra3JvbGtrVm9sa2tib2xra2hvbGtrbW9sa2txb2xra29vbGtrSG9sa2tHb2xra2xvbGtrdW9sa2t5b2xra0hvbGtrTSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIb25leSwgSSBuZWVkIHRvIGhvcCBpbiB0aGUgc2hvd2VyIGluIGEgZmV3IG1pbnV0ZXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hvbmV5LCBJIG5lZWQgdG8gaG9wIGluIHRoZSBzaG93ZXIgaW4gYSBmZXcgbWludXRlcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7WW91IGtub3csIGdvdHRhIGdldCByZWFkeSBmb3Igd29yayZxdW90OyAmcXVvdDtlb2xra0NvbGtrTG9sa2tYb2xra0FvbGtrQW9sa2t5b2xra1FvbGtrWm9sa2t5b2xra0RvbGtrT29sa2tab2xra1JvbGtra29sa2t6JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBrbm93LCBnb3R0YSBnZXQgcmVhZHkgZm9yIHdvcmsmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdSBrbm93LCBnb3R0YSBnZXQgcmVhZHkgZm9yIHdvcmsmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3RvbGtrTm9sa2tob2xra2JvbGtrbG9sa2tnb2xra1lvbGtraCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjdG9sa2tOb2xra2hvbGtrYm9sa2tsb2xra2dvbGtrWW9sa2toJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7Q291bGQgeW91IHNlbmQgbWUgYSBwaWMgdGhlbj8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzExYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0NvdWxkIHlvdSBzZW5kIG1lIGEgcGljIHRoZW4/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVTdGFydDFfMTFhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3RvbGtrTm9sa2tob2xra2JvbGtrbG9sa2tnb2xra1lvbGtraCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O09oLCBvZiBjb3Vyc2UsIGdvIGRvIHRoYXQgYmFiZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVTdGFydDFfMTFiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7T2gsIG9mIGNvdXJzZSwgZ28gZG8gdGhhdCBiYWJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVTdGFydDFfMTFiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI3IiBuYW1lPSJBbm5pZVN0YXJ0MV8xMWEiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCwzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllU3RhcnQxXzExYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtDb3VsZCB5b3Ugc2VuZCBtZSBhIHBpYyB0aGVuPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0NvdWxkIHlvdSBzZW5kIG1lIGEgcGljIHRoZW4/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtDb3VsZCB5b3Ugc2VuZCBtZSBhIHBpYyB0aGVuPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkZG9tc3ViID0gJGRvbXN1YisxJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3FvbGtreG9sa2tEb2xra01vbGtrR29sa2tRb2xra3dvbGtrcCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjcW9sa2t4b2xra0RvbGtrTW9sa2tHb2xra1FvbGtrd29sa2twJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q78J+ltSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVTdGFydDFfMTJhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q78J+ltSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzEyYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyOCIgbmFtZT0iQW5uaWVTdGFydDFfMTFiIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZVN0YXJ0MV8xMWImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7T2gsIG9mIGNvdXJzZSwgZ28gZG8gdGhhdCBiYWJlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2gsIG9mIGNvdXJzZSwgZ28gZG8gdGhhdCBiYWJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtPaCwgb2YgY291cnNlLCBnbyBkbyB0aGF0IGJhYmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGRvbXN1YiA9ICRkb21zdWItMSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1RoYW5rcyBob25leSZxdW90OyAmcXVvdDt4b2xra1BvbGtrY29sa2tib2xra3NvbGtrQm9sa2tQb2xra3NvbGtrSW9sa2tjb2xra3pvbGtrZW9sa2tKb2xra05vbGtrQ29sa2tuJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYW5rcyBob25leSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhhbmtzIGhvbmV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtPaCwgYW5kIG9uZSBtb3JlIHRoaW5nJnF1b3Q7ICZxdW90O2xvbGtrc29sa2tqb2xra3pvbGtrUW9sa2t4b2xra1dvbGtrcG9sa2tSb2xra1pvbGtrd29sa2tob2xra0pvbGtreG9sa2tnb2xra2MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2gsIGFuZCBvbmUgbW9yZSB0aGluZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7T2gsIGFuZCBvbmUgbW9yZSB0aGluZyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjdzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2ltZyAmcXVvdDthc3NldHMvaW1nL2VwMS9hbm5pZV9waG90b18xLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtFb2xra1FvbGtrQW9sa2tmb2xra2NvbGtrTW9sa2tLb2xra0RvbGtrem9sa2tsb2xra3VvbGtrWW9sa2ttb2xra3VvbGtrSm9sa2tuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDIsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZXAxL2FubmllX3Bob3RvXzEud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzZXQgJHBob3Rvcy5wdXNoKCZxdW90O2Fzc2V0cy9pbWcvZXAxL2FubmllX3Bob3RvXzEud2VicCZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy43cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1NvIHlvdSBkb27igJl0IGZvcmdldCBtZSZxdW90OyAmcXVvdDtXb2xra2NvbGtrYW9sa2tYb2xra1VvbGtrcG9sa2tkb2xra09vbGtrdW9sa2tPb2xra3dvbGtrcG9sa2tLb2xra3pvbGtreG9sa2tCJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1NvIHlvdSBkb27igJl0IGZvcmdldCBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7U28geW91IGRvbuKAmXQgZm9yZ2V0IG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuOHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfd2luay53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfd2luay53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7b29sa2tnb2xra1ZvbGtrSG9sa2tmb2xra1hvbGtrY29sa2t5JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA1LjhzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNvb2xra2dvbGtrVm9sa2tIb2xra2ZvbGtrWG9sa2tjb2xra3kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGNvdWxkIG5ldmVyIGZvcmdldCB5b3UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzEyYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgY291bGQgbmV2ZXIgZm9yZ2V0IHlvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzEyYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyOSIgbmFtZT0iQW5uaWVTdGFydDFfMTJhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVTdGFydDFfMTJhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbGV3ZF9mYWNlLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xld2RfZmFjZS53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kga25ldyB5b3Ugd2VyZSBnb2luZyB0byBhc2sgbG9sJnF1b3Q7ICZxdW90O2RvbGtrbW9sa2tsb2xra3RvbGtrbm9sa2trb2xra1dvbGtrbG9sa2tEb2xra1dvbGtrQW9sa2tqb2xra2RvbGtrQm9sa2tvb2xra2YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBrbmV3IHlvdSB3ZXJlIGdvaW5nIHRvIGFzayBsb2wmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kga25ldyB5b3Ugd2VyZSBnb2luZyB0byBhc2sgbG9sJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGtub3cgeW91IHRvbyB3ZWxsJnF1b3Q7ICZxdW90O0tvbGtrem9sa2tRb2xra25vbGtrQW9sa2tJb2xra1BvbGtrdG9sa2tWb2xra0dvbGtrTm9sa2tZb2xra1hvbGtrVW9sa2tjb2xra3YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBrbm93IHlvdSB0b28gd2VsbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBrbm93IHlvdSB0b28gd2VsbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Um9sa2tRb2xra0VvbGtrem9sa2tRb2xra3ZvbGtra29sa2t4JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjVzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNSb2xra1FvbGtrRW9sa2t6b2xra1FvbGtrdm9sa2trb2xra3gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDvwn6SjJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV8xM2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDvwn6SjJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVTdGFydDFfMTNhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMwIiBuYW1lPSJBbm5pZVN0YXJ0MV8xMmIiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZVN0YXJ0MV8xMmImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBjb3VsZCBuZXZlciBmb3JnZXQgeW91JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBjb3VsZCBuZXZlciBmb3JnZXQgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGNvdWxkIG5ldmVyIGZvcmdldCB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7a29sa2tXb2xra09vbGtrd29sa2tVb2xra1pvbGtrTm9sa2tyJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNrb2xra1dvbGtrT29sa2t3b2xra1VvbGtrWm9sa2tOb2xra3ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGxvdmUgeW91JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV8xM2ImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGxvdmUgeW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVTdGFydDFfMTNiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMxIiBuYW1lPSJBbm5pZVN0YXJ0MV8xM2EiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCw0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllU3RhcnQxXzEzYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xtYW8ud2VicCZxdW90OyB0cnVlICZxdW90O1lvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbG1hby53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0hlcmUgeW91IGdvJnF1b3Q7ICZxdW90O1lvbGtrdm9sa2tIb2xra21vbGtrcm9sa2tSb2xra2hvbGtrU29sa2tZb2xra1FvbGtrdW9sa2tNb2xra3BvbGtram9sa2tOb2xra0omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGVyZSB5b3UgZ28mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hlcmUgeW91IGdvJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuNHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfaW1nICZxdW90O2Fzc2V0cy9pbWcvZXAxL2FubmllX3Bob3RvXzEud2VicCZxdW90OyB0cnVlICZxdW90O1JvbGtrVm9sa2tpb2xra0JvbGtrd29sa2t5b2xra1lvbGtrcm9sa2tTb2xra0NvbGtrZW9sa2t1b2xra2FvbGtraW9sa2t5b2xra0omcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMiwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lcDEvYW5uaWVfcGhvdG9fMS53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkcGhvdG9zLnB1c2goJnF1b3Q7YXNzZXRzL2ltZy9lcDEvYW5uaWVfcGhvdG9fMS53ZWJwJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7TW9sa2tpb2xra0JvbGtrcG9sa2tTb2xra2dvbGtra29sa2tiJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjRzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNNb2xra2lvbGtrQm9sa2twb2xra1NvbGtrZ29sa2trb2xra2ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtBbmQgd2hhdCBhYm91dCBvbmUgZnJvbSB0aGUgYmFjaz8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzE0YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0FuZCB3aGF0IGFib3V0IG9uZSBmcm9tIHRoZSBiYWNrPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzE0YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMiIgbmFtZT0iQW5uaWVTdGFydDFfMTNiIiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZVN0YXJ0MV8xM2ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBsb3ZlIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbG92ZSB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbG92ZSB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGxvdmUgeW91IG1vcmUmcXVvdDsgJnF1b3Q7ZW9sa2tZb2xra2NvbGtrSm9sa2tSb2xra0FvbGtrS29sa2t5b2xra1VvbGtrTW9sa2tPb2xra0FvbGtrZG9sa2t6b2xra3hvbGtrTiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGxvdmUgeW91IG1vcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbG92ZSB5b3UgbW9yZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDIuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtCdXQgbm93IEkgcmVhbGx5IG5lZWQgdG8gdGFrZSB0aGF0IHNob3dlciZxdW90OyAmcXVvdDtJb2xra0VvbGtrQ29sa2tBb2xra0RvbGtrdG9sa2tOb2xra1hvbGtrWW9sa2tsb2xra1ZvbGtrcW9sa2tPb2xra3VvbGtrbm9sa2tlJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCBub3cgSSByZWFsbHkgbmVlZCB0byB0YWtlIHRoYXQgc2hvd2VyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCdXQgbm93IEkgcmVhbGx5IG5lZWQgdG8gdGFrZSB0aGF0IHNob3dlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjhzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7RG9u4oCZdCBmb3JnZXQgdG8gdGV4dCBtZSBsYXRlciZxdW90OyAmcXVvdDtlb2xra1lvbGtrcG9sa2txb2xra2lvbGtrQm9sa2tkb2xra2hvbGtrWm9sa2t2b2xra0VvbGtraG9sa2t2b2xra0tvbGtrcG9sa2thJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0RvbuKAmXQgZm9yZ2V0IHRvIHRleHQgbWUgbGF0ZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0RvbuKAmXQgZm9yZ2V0IHRvIHRleHQgbWUgbGF0ZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0NvbGtrVm9sa2tMb2xra1FvbGtrUW9sa2tzb2xra3FvbGtrdyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNS4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjQ29sa2tWb2xra0xvbGtrUW9sa2tRb2xra3NvbGtrcW9sa2t3JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSB3b24mIzM5O3QmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzE0YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgd29uJiMzOTt0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVTdGFydDFfMTRiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMzIiBuYW1lPSJBbm5pZVN0YXJ0MV8xNGIiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCw0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllU3RhcnQxXzE0YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIHdvbuKAmXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHdvbuKAmXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgd29u4oCZdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt4b2xra2xvbGtrcm9sa2tsb2xra09vbGtrQm9sa2tIb2xra1cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3hvbGtrbG9sa2tyb2xra2xvbGtrT29sa2tCb2xra0hvbGtrVyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O/CfpbAmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzE1YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O/CfpbAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV8xNWImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzQiIG5hbWU9IkFubmllU3RhcnQxXzE1YiIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVTdGFydDFfMTViJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90OyB0cnVlICZxdW90O0FubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAyLjBzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCeWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVTdGFydDhiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2xhc3RfaG91ciA9ICZxdW90OzA4OjM3JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXQgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRob3VyID0gJnF1b3Q7MDg6MzcmcXVvdDsmZ3Q7Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O29mZmxpbmUtdGV4dCZxdW90OyZndDtBbm5pZSBpcyBvZmZsaW5lJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7SeKAmW0gZ29pbmcgdG8gbmVlZCB0aGUgcmV2ZW51ZSByZXBvcnRzIGJ5IEZyaWRheS4gWW91IGhhdmUgZml2ZSBkYXlzLiZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjBzJmd0OyZndDsmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfdmlzaWJsZSA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzUiIG5hbWU9IkFubmllU3RhcnQxXzE3YSIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVTdGFydDFfMTdhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0J5ZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J5ZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QnllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0J5ZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgPSAmcXVvdDtBbm5pZVN0YXJ0MTBhMSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0X2hvdXIgPSAmcXVvdDswODozNyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzA4OjM3JnF1b3Q7Jmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtvZmZsaW5lLXRleHQmcXVvdDsmZ3Q7QW5uaWUgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0nigJltIGdvaW5nIHRvIG5lZWQgdGhlIHJldmVudWUgcmVwb3J0cyBieSBGcmlkYXkuIFlvdSBoYXZlIGZpdmUgZGF5cy4mcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJFBoaWxsaXBzX3Zpc2libGUgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM2IiBuYW1lPSJBbm5pZUNoYXQyXzEiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSw0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SGV5IGhvbmV5LCBob3figJlzIGV2ZXJ5dGhpbmcgZ29pbmcgb3ZlciB0aGVyZT8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hleSBob25leSwgaG934oCZcyBldmVyeXRoaW5nIGdvaW5nIG92ZXIgdGhlcmU/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIZXkgaG9uZXksIGhvd+KAmXMgZXZlcnl0aGluZyBnb2luZyBvdmVyIHRoZXJlPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2FvbGtrY29sa2tGb2xra3BvbGtra29sa2tkb2xra0dvbGtrTyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjYW9sa2tjb2xra0ZvbGtrcG9sa2trb2xra2RvbGtrR29sa2tPJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7TXIuIFBoaWxsaXBzIGp1c3Qgd29u4oCZdCBnaXZlIG1lIGEgYnJlYWsmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O01yLiBQaGlsbGlwcyBqdXN0IHdvbuKAmXQgZ2l2ZSBtZSBhIGJyZWFrJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml8yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzciIG5hbWU9IkFubmllQ2hhdDJfMiIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0Ml8yJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O01yLiBQaGlsbGlwcyBqdXN0IHdvbuKAmXQgZ2l2ZSBtZSBhIGJyZWFrJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TXIuIFBoaWxsaXBzIGp1c3Qgd29u4oCZdCBnaXZlIG1lIGEgYnJlYWsmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O01yLiBQaGlsbGlwcyBqdXN0IHdvbuKAmXQgZ2l2ZSBtZSBhIGJyZWFrJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3ZvbGtrRm9sa2tTb2xra1hvbGtrWm9sa2t3b2xra3JvbGtrUSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjdm9sa2tGb2xra1NvbGtrWG9sa2tab2xra3dvbGtrcm9sa2tRJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBoYXZlIHVudGlsIEZyaWRheSB0byBmaW5pc2ggc2V2ZXJhbCBpbXBvcnRhbnQgcmVwb3J0cyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml8zJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBoYXZlIHVudGlsIEZyaWRheSB0byBmaW5pc2ggc2V2ZXJhbCBpbXBvcnRhbnQgcmVwb3J0cyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzOCIgbmFtZT0iQW5uaWVDaGF0Ml8zIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBoYXZlIHVudGlsIEZyaWRheSB0byBmaW5pc2ggc2V2ZXJhbCBpbXBvcnRhbnQgcmVwb3J0cyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgaGF2ZSB1bnRpbCBGcmlkYXkgdG8gZmluaXNoIHNldmVyYWwgaW1wb3J0YW50IHJlcG9ydHMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgaGF2ZSB1bnRpbCBGcmlkYXkgdG8gZmluaXNoIHNldmVyYWwgaW1wb3J0YW50IHJlcG9ydHMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7bW9sa2tlb2xra2xvbGtrVW9sa2t5b2xra0pvbGtram9sa2tlJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNtb2xra2VvbGtrbG9sa2tVb2xra3lvbGtrSm9sa2tqb2xra2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIHRoaW5rIEnigJltIGdvaW5nIHRvIGxvc2UgbXkgam9iIGlmIEkgZG9u4oCZdCBnZXQgdGhlbSBkb25lIGluIHRpbWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgdGhpbmsgSeKAmW0gZ29pbmcgdG8gbG9zZSBteSBqb2IgaWYgSSBkb27igJl0IGdldCB0aGVtIGRvbmUgaW4gdGltZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzOSIgbmFtZT0iQW5uaWVDaGF0Ml80IiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0Ml80JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgdGhpbmsgSeKAmW0gZ29pbmcgdG8gbG9zZSBteSBqb2IgaWYgSSBkb27igJl0IGdldCB0aGVtIGRvbmUgaW4gdGltZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgdGhpbmsgSeKAmW0gZ29pbmcgdG8gbG9zZSBteSBqb2IgaWYgSSBkb27igJl0IGdldCB0aGVtIGRvbmUgaW4gdGltZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSB0aGluayBJ4oCZbSBnb2luZyB0byBsb3NlIG15IGpvYiBpZiBJIGRvbuKAmXQgZ2V0IHRoZW0gZG9uZSBpbiB0aW1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgdGhhdCBpZGlvdCBpcyBwdXR0aW5nIHlvdSB0aHJvdWdoIHRoaXMmcXVvdDsgJnF1b3Q7UG9sa2tBb2xra3lvbGtrRm9sa2ttb2xra3NvbGtrWG9sa2tyb2xra3lvbGtrZm9sa2t0b2xra29vbGtrZm9sa2tHb2xra1JvbGtrRiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGNhbuKAmXQgYmVsaWV2ZSB0aGF0IGlkaW90IGlzIHB1dHRpbmcgeW91IHRocm91Z2ggdGhpcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgdGhhdCBpZGlvdCBpcyBwdXR0aW5nIHlvdSB0aHJvdWdoIHRoaXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjZzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0VzcGVjaWFsbHkgYWZ0ZXIgeW91IHZvbHVudGVlcmVkIHNpbmNlIG5vIG9uZSBlbHNlIHdhbnRlZCB0byBsZWF2ZSB0aGUgY2l0eSBmb3Igc28gbG9uZyZxdW90OyAmcXVvdDtJb2xra3BvbGtrRG9sa2tsb2xra2NvbGtreG9sa2tKb2xra0RvbGtrWW9sa2tQb2xra1VvbGtrUG9sa2tMb2xra05vbGtrUW9sa2tIJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0VzcGVjaWFsbHkgYWZ0ZXIgeW91IHZvbHVudGVlcmVkIHNpbmNlIG5vIG9uZSBlbHNlIHdhbnRlZCB0byBsZWF2ZSB0aGUgY2l0eSBmb3Igc28gbG9uZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7RXNwZWNpYWxseSBhZnRlciB5b3Ugdm9sdW50ZWVyZWQgc2luY2Ugbm8gb25lIGVsc2Ugd2FudGVkIHRvIGxlYXZlIHRoZSBjaXR5IGZvciBzbyBsb25nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtIb2xra3ZvbGtrTG9sa2tVb2xra0hvbGtrdm9sa2tDb2xra0MmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuMXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0hvbGtrdm9sa2tMb2xra1VvbGtrSG9sa2t2b2xra0NvbGtrQyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgcmVhbGx5IHRoaW5rIHRoaXMgb2xkIG1hbiBoYXRlcyBtZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml81JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSByZWFsbHkgdGhpbmsgdGhpcyBvbGQgbWFuIGhhdGVzIG1lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml81JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQwIiBuYW1lPSJBbm5pZUNoYXQyXzUiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSByZWFsbHkgdGhpbmsgdGhhdCBvbGQgbWFuIGhhdGVzIG1lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSByZWFsbHkgdGhpbmsgdGhhdCBvbGQgbWFuIGhhdGVzIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIHJlYWxseSB0aGluayB0aGF0IG9sZCBtYW4gaGF0ZXMgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Tm9sa2t2b2xra3ZvbGtrT29sa2tRb2xra3VvbGtrZG9sa2tuJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNOb2xra3ZvbGtrdm9sa2tPb2xra1FvbGtrdW9sa2tkb2xra24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtIb25lc3RseSwgSeKAmW0gc28gc3RyZXNzZWQgcmlnaHQgbm93JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQyXzYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtIb25lc3RseSwgSeKAmW0gc28gc3RyZXNzZWQgcmlnaHQgbm93JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml82JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQxIiBuYW1lPSJBbm5pZUNoYXQyXzYiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCw2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtIb25lc3RseSwgSeKAmW0gc28gc3RyZXNzZWQgcmlnaHQgbm93JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SG9uZXN0bHksIEnigJltIHNvIHN0cmVzc2VkIHJpZ2h0IG5vdyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SG9uZXN0bHksIEnigJltIHNvIHN0cmVzc2VkIHJpZ2h0IG5vdyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDthb2xra2RvbGtrcG9sa2tub2xra3hvbGtrWm9sa2twb2xra24mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2FvbGtrZG9sa2twb2xra25vbGtreG9sa2tab2xra3BvbGtrbiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O/CfmKUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfNyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O/CfmKUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDIiIG5hbWU9IkFubmllQ2hhdDJfNyIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0Ml83JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfc3RyZXNzZWQud2VicCZxdW90OyB0cnVlICZxdW90O1lvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfc3RyZXNzZWQud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7U29sa2tCb2xra0NvbGtrVm9sa2tob2xra1hvbGtreG9sa2tKJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNTb2xra0JvbGtrQ29sa2tWb2xra2hvbGtrWG9sa2t4b2xra0omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGZlZWwgbGlrZSB0aGlzIGpvYiBpcyBkcml2aW5nIG1lIGluc2FuZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml84JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBmZWVsIGxpa2UgdGhpcyBqb2IgaXMgZHJpdmluZyBtZSBpbnNhbmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzgmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDMiIG5hbWU9IkFubmllQ2hhdDJfOCIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0Ml84JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgZmVlbCBsaWtlIHRoaXMgam9iIGlzIGRyaXZpbmcgbWUgaW5zYW5lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBmZWVsIGxpa2UgdGhpcyBqb2IgaXMgZHJpdmluZyBtZSBpbnNhbmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgZmVlbCBsaWtlIHRoaXMgam9iIGlzIGRyaXZpbmcgbWUgaW5zYW5lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7WW91IGtub3csIGlmIHlvdSB3YW50IHRvIHF1aXQgYW5kIGNvbWUgYmFjayB0byBtZSwgeW91IGhhdmUgbXkgZnVsbCBzdXBwb3J0JnF1b3Q7ICZxdW90O3pvbGtrZG9sa2tIb2xra1VvbGtraW9sa2tFb2xra3dvbGtrYW9sa2txb2xra0hvbGtrbW9sa2t5b2xra3hvbGtra29sa2tkb2xra1cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGtub3csIGlmIHlvdSB3YW50IHRvIHF1aXQgYW5kIGNvbWUgYmFjayB0byBtZSwgeW91IGhhdmUgbXkgZnVsbCBzdXBwb3J0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtZb3Uga25vdywgaWYgeW91IHdhbnQgdG8gcXVpdCBhbmQgY29tZSBiYWNrIHRvIG1lLCB5b3UgaGF2ZSBteSBmdWxsIHN1cHBvcnQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0NvbGtrZW9sa2t3b2xra0JvbGtrcG9sa2txb2xra0VvbGtrUyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjQ29sa2tlb2xra3dvbGtrQm9sa2twb2xra3FvbGtrRW9sa2tTJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBrbm93IGJhYmUsIGJ1dCB3aXRoIHRoZSBob3VzZSBtb3J0Z2FnZSBhbmQgdGhpcyBtYXJrZXTigKYmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfOSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kga25vdyBiYWJlLCBidXQgd2l0aCB0aGUgaG91c2UgbW9ydGdhZ2UgYW5kIHRoaXMgbWFya2V04oCmJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml85JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ0IiBuYW1lPSJBbm5pZUNoYXQyXzkiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSw2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfOSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGtub3cgYmFiZSwgYnV0IHdpdGggdGhlIGhvdXNlIG1vcnRnYWdlIGFuZCB0aGlzIG1hcmtldOKApiZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kga25vdyBiYWJlLCBidXQgd2l0aCB0aGUgaG91c2UgbW9ydGdhZ2UgYW5kIHRoaXMgbWFya2V04oCmJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGtub3cgYmFiZSwgYnV0IHdpdGggdGhlIGhvdXNlIG1vcnRnYWdlIGFuZCB0aGlzIG1hcmtldOKApiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt2b2xra2dvbGtrU29sa2tYb2xra0dvbGtrWm9sa2tlb2xra2smcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3ZvbGtrZ29sa2tTb2xra1hvbGtrR29sa2tab2xra2VvbGtrayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kganVzdCBjYW7igJl0IGRvIHRoYXQuJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQyXzEwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBqdXN0IGNhbuKAmXQgZG8gdGhhdC4mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzEwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ1IiBuYW1lPSJBbm5pZUNoYXQyXzEwIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzEwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kganVzdCBjYW7igJl0IGRvIHRoYXQuJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBqdXN0IGNhbuKAmXQgZG8gdGhhdC4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kganVzdCBjYW7igJl0IGRvIHRoYXQuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBrbm93IGhvbmV5LCBJIGtub3cuJnF1b3Q7ICZxdW90O1hvbGtrWG9sa2tWb2xra29vbGtraG9sa2tHb2xra2pvbGtram9sa2tYb2xra2RvbGtrY29sa2tab2xra0pvbGtrem9sa2tNb2xra00mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBrbm93IGhvbmV5LCBJIGtub3cuJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGtub3cgaG9uZXksIEkga25vdy4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS40cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0J1dCBJIGRvbuKAmXQgd2FudCB5b3VyIGxpZmUgdG8gdHVybiBpbnRvIGhlbGwgZWl0aGVyJnF1b3Q7ICZxdW90O3pvbGtrcG9sa2tyb2xra0hvbGtrZW9sa2tqb2xra2NvbGtrdm9sa2tQb2xra3hvbGtrd29sa2tzb2xra0xvbGtrVG9sa2tSb2xra0kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IEkgZG9u4oCZdCB3YW50IHlvdXIgbGlmZSB0byB0dXJuIGludG8gaGVsbCBlaXRoZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0J1dCBJIGRvbuKAmXQgd2FudCB5b3VyIGxpZmUgdG8gdHVybiBpbnRvIGhlbGwgZWl0aGVyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIHdpc2ggeW91IHdlcmUgaGVyZSBzbyBJIGNvdWxkIGhlbHAgeW91IGRlLXN0cmVzcyZxdW90OyAmcXVvdDt2b2xra0dvbGtrU29sa2tXb2xra25vbGtrcG9sa2tab2xra3lvbGtrQ29sa2tLb2xra0lvbGtrWW9sa2tEb2xra2FvbGtrRG9sa2tPJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgd2lzaCB5b3Ugd2VyZSBoZXJlIHNvIEkgY291bGQgaGVscCB5b3UgZGUtc3RyZXNzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIHdpc2ggeW91IHdlcmUgaGVyZSBzbyBJIGNvdWxkIGhlbHAgeW91IGRlLXN0cmVzcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7d29sa2tqb2xra0lvbGtrcG9sa2tqb2xra0NvbGtrTm9sa2t3JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjhzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN3b2xra2pvbGtrSW9sa2twb2xra2pvbGtrQ29sa2tOb2xra3cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDvwn6W1JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQyXzExJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q78J+ltSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMTEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDYiIG5hbWU9IkFubmllQ2hhdDJfMTEiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSw2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMTEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9sZXdkX2ZhY2Uud2VicCZxdW90OyB0cnVlICZxdW90O1lvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbGV3ZF9mYWNlLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1FvbGtrUG9sa2tRb2xra1RvbGtrR29sa2tmb2xra0xvbGtrdiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjUW9sa2tQb2xra1FvbGtrVG9sa2tHb2xra2ZvbGtrTG9sa2t2JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW91IGhhdmUgbm8gaWRlYSBob3cgbXVjaCBJ4oCZZCBnaXZlIHRvIGJlIHRoZXJl4oCmJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQyXzEyJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WW91IGhhdmUgbm8gaWRlYSBob3cgbXVjaCBJ4oCZZCBnaXZlIHRvIGJlIHRoZXJl4oCmJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml8xMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0NyIgbmFtZT0iQW5uaWVDaGF0Ml8xMiIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0Ml8xMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZb3UgaGF2ZSBubyBpZGVhIGhvdyBtdWNoIEnigJlkIGdpdmUgdG8gYmUgdGhlcmXigKYmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3UgaGF2ZSBubyBpZGVhIGhvdyBtdWNoIEnigJlkIGdpdmUgdG8gYmUgdGhlcmXigKYmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdSBoYXZlIG5vIGlkZWEgaG93IG11Y2ggSeKAmWQgZ2l2ZSB0byBiZSB0aGVyZeKApiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtNb2xra2pvbGtrbm9sa2tRb2xra1RvbGtrZ29sa2tQb2xra1gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I01vbGtram9sa2tub2xra1FvbGtrVG9sa2tnb2xra1BvbGtrWCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1Rocm93IHlvdSBvbiB0aGUgYmVkJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQyXzEzJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhyb3cgeW91IG9uIHRoZSBiZWQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzEzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ4IiBuYW1lPSJBbm5pZUNoYXQyXzEzIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzEzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1Rocm93IHlvdSBvbiB0aGUgYmVkJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhyb3cgeW91IG9uIHRoZSBiZWQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1Rocm93IHlvdSBvbiB0aGUgYmVkJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0hvbGtrQ29sa2tKb2xra3pvbGtreG9sa2tEb2xra2JvbGtrZyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjSG9sa2tDb2xra0pvbGtrem9sa2t4b2xra0RvbGtrYm9sa2tnJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7S2lzcyB5b3VyIG5lY2smcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMTQmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtLaXNzIHlvdXIgbmVjayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMTQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDkiIG5hbWU9IkFubmllQ2hhdDJfMTQiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzE0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0tpc3MgeW91ciBuZWNrJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7S2lzcyB5b3VyIG5lY2smcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0tpc3MgeW91ciBuZWNrJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O01vbGtrcm9sa2tLb2xra1RvbGtrbm9sa2tQb2xra0pvbGtreiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjTW9sa2tyb2xra0tvbGtrVG9sa2tub2xra1BvbGtrSm9sa2t6JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7Qml0ZSB5b3VyIG5pcHBsZXMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMTUmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtCaXRlIHlvdXIgbmlwcGxlcyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMTUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTAiIG5hbWU9IkFubmllQ2hhdDJfMTUiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzE1JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0JpdGUgeW91ciBuaXBwbGVzJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Qml0ZSB5b3VyIG5pcHBsZXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0JpdGUgeW91ciBuaXBwbGVzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1VvbGtrbW9sa2tKb2xra1FvbGtrRm9sa2tvb2xra3dvbGtrQyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjVW9sa2ttb2xra0pvbGtrUW9sa2tGb2xra29vbGtrd29sa2tDJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7V2F0Y2ggc29tZW9uZSBlbHNlIHJpcCB0aGF0IHB1c3N5IGFwYXJ0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQyXzE2JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7V2F0Y2ggc29tZW9uZSBlbHNlIHJpcCB0aGF0IHB1c3N5IGFwYXJ0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml8xNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1MSIgbmFtZT0iQW5uaWVDaGF0Ml8xNiIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0Ml8xNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtXYXRjaCBzb21lb25lIGVsc2UgcmlwIHRoYXQgcHVzc3kgYXBhcnQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXYXRjaCBzb21lb25lIGVsc2UgcmlwIHRoYXQgcHVzc3kgYXBhcnQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1dhdGNoIHNvbWVvbmUgZWxzZSByaXAgdGhhdCBwdXNzeSBhcGFydCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9zdXJwcmlzZS53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfc3VycHJpc2Uud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1lvdSB3ZXJlIG1ha2luZyBtZSB3ZXQgdW50aWwgdGhhdCBsYXN0IHBhcnQmcXVvdDsgJnF1b3Q7Um9sa2tSb2xra3BvbGtrdm9sa2tIb2xra2RvbGtrbm9sa2tBb2xra0pvbGtreW9sa2tab2xra0hvbGtram9sa2tJb2xra1ZvbGtrUiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3Ugd2VyZSBtYWtpbmcgbWUgd2V0IHVudGlsIHRoYXQgbGFzdCBwYXJ0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtZb3Ugd2VyZSBtYWtpbmcgbWUgd2V0IHVudGlsIHRoYXQgbGFzdCBwYXJ0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuOHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtXaGF0IGRvIHlvdSBtZWFuIGJ5IHRoYXQ/JnF1b3Q7ICZxdW90O1FvbGtrQm9sa2tIb2xra0lvbGtrSm9sa2tkb2xra0pvbGtrdm9sa2tub2xra1VvbGtreG9sa2tzb2xra1RvbGtrTW9sa2tjb2xra3YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2hhdCBkbyB5b3UgbWVhbiBieSB0aGF0PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V2hhdCBkbyB5b3UgbWVhbiBieSB0aGF0PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7dW9sa2tHb2xra1NvbGtrZW9sa2tRb2xra3FvbGtrZ29sa2t1JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN1b2xra0dvbGtrU29sa2tlb2xra1FvbGtrcW9sa2tnb2xra3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtTb3JyeSwgaXQgd2FzIGp1c3QgYSBqb2tlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQyXzE3JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7U29ycnksIGl0IHdhcyBqdXN0IGEgam9rZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMTcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTIiIG5hbWU9IkFubmllQ2hhdDJfMTciIHRhZ3M9IiIgcG9zaXRpb249IjIyNSw3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMTcmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7U29ycnksIGl0IHdhcyBqdXN0IGEgam9rZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1NvcnJ5LCBpdCB3YXMganVzdCBhIGpva2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1NvcnJ5LCBpdCB3YXMganVzdCBhIGpva2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfd2hhdC53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfd2hhdC53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7WW91IHVzdWFsbHkgYmx1cnQgb3V0IHRoaW5ncyBsaWtlIHRoaXMgd2hlbiB5b3XigJlyZSBhZnJhaWQgdG8gc2F5IHNvbWV0aGluZyBkaXJlY3RseSZxdW90OyAmcXVvdDtRb2xra0pvbGtrQ29sa2tMb2xra2VvbGtrd29sa2tLb2xra21vbGtrdG9sa2tTb2xra3BvbGtrZW9sa2tGb2xra2FvbGtrRG9sa2t6JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSB1c3VhbGx5IGJsdXJ0IG91dCB0aGluZ3MgbGlrZSB0aGlzIHdoZW4geW914oCZcmUgYWZyYWlkIHRvIHNheSBzb21ldGhpbmcgZGlyZWN0bHkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdSB1c3VhbGx5IGJsdXJ0IG91dCB0aGluZ3MgbGlrZSB0aGlzIHdoZW4geW914oCZcmUgYWZyYWlkIHRvIHNheSBzb21ldGhpbmcgZGlyZWN0bHkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0RvbuKAmXQgZm9yZ2V0IEkga25vdyB5b3UgdG9vIHdlbGwmcXVvdDsgJnF1b3Q7Sm9sa2thb2xra1JvbGtrc29sa2tOb2xra05vbGtrV29sa2tkb2xra1RvbGtrU29sa2tGb2xra2FvbGtrV29sa2tnb2xra2pvbGtrRSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEb27igJl0IGZvcmdldCBJIGtub3cgeW91IHRvbyB3ZWxsJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtEb27igJl0IGZvcmdldCBJIGtub3cgeW91IHRvbyB3ZWxsJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtBcmUgeW91IHNheWluZ+KApiZxdW90OyAmcXVvdDtRb2xra1JvbGtrQ29sa2tzb2xra0hvbGtrbG9sa2tWb2xra21vbGtrT29sa2tPb2xra3hvbGtrSG9sa2tOb2xra0xvbGtrYW9sa2toJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FyZSB5b3Ugc2F5aW5n4oCmJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtBcmUgeW91IHNheWluZ+KApiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QXJlIHlvdSBpbnRvIHRoYXQga2luZCBvZiB0aGluZz8mcXVvdDsgJnF1b3Q7VG9sa2tDb2xra3FvbGtrTG9sa2tob2xra3dvbGtrWm9sa2tnb2xra0xvbGtreW9sa2tyb2xra2dvbGtrSG9sa2tmb2xra2VvbGtraSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBcmUgeW91IGludG8gdGhhdCBraW5kIG9mIHRoaW5nPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QXJlIHlvdSBpbnRvIHRoYXQga2luZCBvZiB0aGluZz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O29vbGtrd29sa2txb2xra1JvbGtrbW9sa2thb2xra3pvbGtrYSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNi44cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjb29sa2t3b2xra3FvbGtrUm9sa2ttb2xra2FvbGtrem9sa2thJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SeKAmW0gc29ycnkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMTgmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJ4oCZbSBzb3JyeSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMTgmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTMiIG5hbWU9IkFubmllQ2hhdDJfMTgiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCw3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMTgmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SeKAmW0gc29ycnkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBzb3JyeSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmW0gc29ycnkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7b29sa2tpb2xra1lvbGtram9sa2tWb2xra1ZvbGtrTm9sa2t6JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNvb2xra2lvbGtrWW9sa2tqb2xra1ZvbGtrVm9sa2tOb2xra3omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJdOKAmXMganVzdCB0aGF0IEnigJltIHNvIHN0cmVzc2VkIHdpdGggYWxsIHRoaXMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMTkmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJdOKAmXMganVzdCB0aGF0IEnigJltIHNvIHN0cmVzc2VkIHdpdGggYWxsIHRoaXMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzE5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjU0IiBuYW1lPSJBbm5pZUNoYXQyXzE5IiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzE5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0l04oCZcyBqdXN0IHRoYXQgSeKAmW0gc28gc3RyZXNzZWQgd2l0aCBhbGwgdGhpcyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0l04oCZcyBqdXN0IHRoYXQgSeKAmW0gc28gc3RyZXNzZWQgd2l0aCBhbGwgdGhpcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SXTigJlzIGp1c3QgdGhhdCBJ4oCZbSBzbyBzdHJlc3NlZCB3aXRoIGFsbCB0aGlzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3NvbGtrb29sa2t4b2xra3BvbGtrcm9sa2tDb2xra2NvbGtrcCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjc29sa2tvb2xra3hvbGtrcG9sa2tyb2xra0NvbGtrY29sa2twJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QW5kIHdpdGggdGhpcyBsb25nIHRyaXAgYW5kIG5vdCBiZWluZyBhYmxlIHRvIHNlZSB5b3XigKYmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMjAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtBbmQgd2l0aCB0aGlzIGxvbmcgdHJpcCBhbmQgbm90IGJlaW5nIGFibGUgdG8gc2VlIHlvdeKApiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMjAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTUiIG5hbWU9IkFubmllQ2hhdDJfMjAiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCw3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMjAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7QW5kIHdpdGggdGhpcyBsb25nIHRyaXAgYW5kIG5vdCBiZWluZyBhYmxlIHRvIHNlZSB5b3XigKYmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbmQgd2l0aCB0aGlzIGxvbmcgdHJpcCBhbmQgbm90IGJlaW5nIGFibGUgdG8gc2VlIHlvdeKApiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QW5kIHdpdGggdGhpcyBsb25nIHRyaXAgYW5kIG5vdCBiZWluZyBhYmxlIHRvIHNlZSB5b3XigKYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7TG9sa2trb2xra0lvbGtrT29sa2trb2xra0tvbGtrUG9sa2tFJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNMb2xra2tvbGtrSW9sa2tPb2xra2tvbGtrS29sa2tQb2xra0UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGd1ZXNzIGl0IG1hZGUgbWUgaG9ybmllciB0aGFuIHVzdWFsJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQyXzIxJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBndWVzcyBpdCBtYWRlIG1lIGhvcm5pZXIgdGhhbiB1c3VhbCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMjEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTYiIG5hbWU9IkFubmllQ2hhdDJfMjEiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSw3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMjEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBndWVzcyBpdCBtYWRlIG1lIGhvcm5pZXIgdGhhbiB1c3VhbCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZ3Vlc3MgaXQgbWFkZSBtZSBob3JuaWVyIHRoYW4gdXN1YWwmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgZ3Vlc3MgaXQgbWFkZSBtZSBob3JuaWVyIHRoYW4gdXN1YWwmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtPa2F5LCBJIGdldCB0aGF0JnF1b3Q7ICZxdW90O29vbGtrSm9sa2tHb2xra2VvbGtrVm9sa2tFb2xra2dvbGtrRG9sa2thb2xra2dvbGtrTG9sa2tBb2xra2hvbGtreG9sa2tFb2xra0kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2theSwgSSBnZXQgdGhhdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7T2theSwgSSBnZXQgdGhhdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QnV0IHRoYXQgbWVhbnMgeW91IGhhdmUgdGhhdCBkZXNpcmUmcXVvdDsgJnF1b3Q7dG9sa2tOb2xra2tvbGtrTm9sa2txb2xra3RvbGtrdW9sa2tUb2xra3dvbGtrQm9sa2twb2xra3JvbGtrUG9sa2tNb2xra3RvbGtrRyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgdGhhdCBtZWFucyB5b3UgaGF2ZSB0aGF0IGRlc2lyZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QnV0IHRoYXQgbWVhbnMgeW91IGhhdmUgdGhhdCBkZXNpcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0RvIHlvdSB3YW50IHRvIHNlZSBtZSwgbGlrZSwgZ2V0dGluZyBmdWNrZWQgYnkgb3RoZXIgZ3V5cz8mcXVvdDsgJnF1b3Q7dW9sa2t1b2xra2RvbGtrcG9sa2tTb2xra0pvbGtrUW9sa2tUb2xra3FvbGtrcW9sa2tob2xra0dvbGtrWG9sa2trb2xra0VvbGtrViZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEbyB5b3Ugd2FudCB0byBzZWUgbWUsIGxpa2UsIGdldHRpbmcgZnVja2VkIGJ5IG90aGVyIGd1eXM/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtEbyB5b3Ugd2FudCB0byBzZWUgbWUsIGxpa2UsIGdldHRpbmcgZnVja2VkIGJ5IG90aGVyIGd1eXM/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtQb2xra1RvbGtrWm9sa2tRb2xra1hvbGtrTW9sa2tGb2xra24mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuNHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1BvbGtrVG9sa2tab2xra1FvbGtrWG9sa2tNb2xra0ZvbGtrbiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1llYWgsIEnigJl2ZSB0aG91Z2h0IGFib3V0IGl0IGEgZmV3ICZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml8yMmEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZZWFoLCBJ4oCZdmUgdGhvdWdodCBhYm91dCBpdCBhIGZldyAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzIyYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNQb2xra1RvbGtrWm9sa2tRb2xra1hvbGtrTW9sa2tGb2xra24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtNYXliZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml8yMmImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtNYXliZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMjJiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjU3IiBuYW1lPSJBbm5pZUNoYXQyXzIyYSIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0Ml8yMmEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WWVhaCwgSeKAmXZlIHRob3VnaHQgYWJvdXQgaXQgYSBmZXcmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLCBJ4oCZdmUgdGhvdWdodCBhYm91dCBpdCBhIGZldyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WWVhaCwgSeKAmXZlIHRob3VnaHQgYWJvdXQgaXQgYSBmZXcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGRvbXN1YiA9ICRkb21zdWIrMSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtrb2xra1JvbGtrWm9sa2tCb2xra0VvbGtrZ29sa2t0b2xra0gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2tvbGtrUm9sa2tab2xra0JvbGtrRW9sa2tnb2xra3RvbGtrSCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdSBrbm93IEkgbGlrZSB0cnlpbmcgbmV3IHRoaW5ncyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml8yM2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3Uga25vdyBJIGxpa2UgdHJ5aW5nIG5ldyB0aGluZ3MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzIzYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1OCIgbmFtZT0iQW5uaWVDaGF0Ml8yMmIiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSw3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMjJiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O01heWJlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TWF5YmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O01heWJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3VvbGtrcm9sa2tPb2xra05vbGtraG9sa2tRb2xra29vbGtrQyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjdW9sa2tyb2xra09vbGtrTm9sa2tob2xra1FvbGtrb29sa2tDJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBmZWVsIGxpa2UgaXQgY291bGQgYWRkIGEgbmV3IHNwYXJrIHRvIG91ciByZWxhdGlvbnNoaXAmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMjNiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBmZWVsIGxpa2UgaXQgY291bGQgYWRkIGEgbmV3IHNwYXJrIHRvIG91ciByZWxhdGlvbnNoaXAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzIzYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1OSIgbmFtZT0iQW5uaWVDaGF0Ml8yM2EiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzIzYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZb3Uga25vdyBJIGxpa2UgdHJ5aW5nIG5ldyB0aGluZ3MmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3Uga25vdyBJIGxpa2UgdHJ5aW5nIG5ldyB0aGluZ3MmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdSBrbm93IEkgbGlrZSB0cnlpbmcgbmV3IHRoaW5ncyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0J1dCwgd291bGQgeW91IHJlYWxseSBiZSBva2F5IHdpdGggbWUgaGF2aW5nIHNleCB3aXRoIG90aGVyIG1lbj8mcXVvdDsgJnF1b3Q7aW9sa2tOb2xra21vbGtrem9sa2tRb2xra1lvbGtraG9sa2tEb2xra2dvbGtreG9sa2tOb2xra1dvbGtrSG9sa2tIb2xra2VvbGtrSCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQsIHdvdWxkIHlvdSByZWFsbHkgYmUgb2theSB3aXRoIG1lIGhhdmluZyBzZXggd2l0aCBvdGhlciBtZW4/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCdXQsIHdvdWxkIHlvdSByZWFsbHkgYmUgb2theSB3aXRoIG1lIGhhdmluZyBzZXggd2l0aCBvdGhlciBtZW4/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMnMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbm9fd29yZHMud2VicCZxdW90OyB0cnVlICZxdW90O0FubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX25vX3dvcmRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtTb2xra0tvbGtrd29sa2t4b2xra21vbGtrem9sa2tEb2xra3QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1NvbGtrS29sa2t3b2xra3hvbGtrbW9sa2t6b2xra0RvbGtrdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1dlbGwsIHllYWgsIEkgc3VwcG9zZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml8yNSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1dlbGwsIHllYWgsIEkgc3VwcG9zZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMjUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNjAiIG5hbWU9IkFubmllQ2hhdDJfMjNiIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0Ml8yM2ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBmZWVsIGxpa2UgaXQgY291bGQgYWRkIGEgbmV3IHNwYXJrIHRvIG91ciByZWxhdGlvbnNoaXAmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGZlZWwgbGlrZSBpdCBjb3VsZCBhZGQgYSBuZXcgc3BhcmsgdG8gb3VyIHJlbGF0aW9uc2hpcCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBmZWVsIGxpa2UgaXQgY291bGQgYWRkIGEgbmV3IHNwYXJrIHRvIG91ciByZWxhdGlvbnNoaXAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7aG9sa2t2b2xra3FvbGtrT29sa2tPb2xra3RvbGtrT29sa2tyJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNob2xra3ZvbGtrcW9sa2tPb2xra09vbGtrdG9sa2tPb2xra3ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3Uga25vdywgd2XigJlyZSBwcmV0dHkgcHJlZGljdGFibGUgbW9zdCBvZiB0aGUgdGltZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml8yNGImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3Uga25vdywgd2XigJlyZSBwcmV0dHkgcHJlZGljdGFibGUgbW9zdCBvZiB0aGUgdGltZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMjRiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjYxIiBuYW1lPSJBbm5pZUNoYXQyXzI0YiIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0Ml8yNGImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WW91IGtub3csIHdl4oCZcmUgcHJldHR5IHByZWRpY3RhYmxlIG1vc3Qgb2YgdGhlIHRpbWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3Uga25vdywgd2XigJlyZSBwcmV0dHkgcHJlZGljdGFibGUgbW9zdCBvZiB0aGUgdGltZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW91IGtub3csIHdl4oCZcmUgcHJldHR5IHByZWRpY3RhYmxlIG1vc3Qgb2YgdGhlIHRpbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4zcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtCdXQsIHdvdWxkIHlvdSByZWFsbHkgYmUgb2theSB3aXRoIG1lIGhhdmluZyBzZXggd2l0aCBvdGhlciBtZW4/JnF1b3Q7ICZxdW90O01vbGtrWm9sa2t2b2xra21vbGtrYW9sa2trb2xra0lvbGtrRW9sa2tMb2xra3BvbGtrTG9sa2tCb2xra1BvbGtrb29sa2twb2xra0UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0LCB3b3VsZCB5b3UgcmVhbGx5IGJlIG9rYXkgd2l0aCBtZSBoYXZpbmcgc2V4IHdpdGggb3RoZXIgbWVuPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QnV0LCB3b3VsZCB5b3UgcmVhbGx5IGJlIG9rYXkgd2l0aCBtZSBoYXZpbmcgc2V4IHdpdGggb3RoZXIgbWVuPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjJzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX25vX3dvcmRzLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9ub193b3Jkcy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7aG9sa2t5b2xra0pvbGtrRW9sa2tBb2xra0pvbGtrS29sa2t4JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjJzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNob2xra3lvbGtrSm9sa2tFb2xra0FvbGtrSm9sa2tLb2xra3gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtXZWxsLCB5ZWFoLCBJIHN1cHBvc2UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMjUmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXZWxsLCB5ZWFoLCBJIHN1cHBvc2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzI1JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjYyIiBuYW1lPSJBbm5pZUNoYXQyXzI1IiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzI1JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1dlbGwsIHllYWgsIEkgc3VwcG9zZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dlbGwsIHllYWgsIEkgc3VwcG9zZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V2VsbCwgeWVhaCwgSSBzdXBwb3NlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2dvbGtrRm9sa2twb2xra3pvbGtrWW9sa2ttb2xra1VvbGtrbyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjZ29sa2tGb2xra3BvbGtrem9sa2tZb2xra21vbGtrVW9sa2tvJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhhdOKAmXMgdGhlIGlkZWEmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMjYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaGF04oCZcyB0aGUgaWRlYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMjYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNjMiIG5hbWU9IkFubmllQ2hhdDJfMjYiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCw4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMjYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhhdOKAmXMgdGhlIGlkZWEmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGF04oCZcyB0aGUgaWRlYSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhhdOKAmXMgdGhlIGlkZWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfc3VycHJpc2Uud2VicCZxdW90OyB0cnVlICZxdW90O0FubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX3N1cnByaXNlLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtZb3Uga25vdyBJ4oCZZCBkbyBhbnl0aGluZyBmb3IgeW91JnF1b3Q7ICZxdW90O2RvbGtrZm9sa2tFb2xra3RvbGtrVm9sa2tJb2xra2xvbGtrSm9sa2t5b2xra0tvbGtrSW9sa2tPb2xra2lvbGtrSW9sa2thb2xra3MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGtub3cgSeKAmWQgZG8gYW55dGhpbmcgZm9yIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW91IGtub3cgSeKAmWQgZG8gYW55dGhpbmcgZm9yIHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QnV0IEnigJl2ZSBuZXZlciBpbWFnaW5lZCBhbnl0aGluZyBsaWtlIHRoaXMmcXVvdDsgJnF1b3Q7TG9sa2tYb2xra09vbGtrRG9sa2tkb2xra1RvbGtraW9sa2tIb2xra1VvbGtreW9sa2tYb2xra0pvbGtrVG9sa2t6b2xra0JvbGtrUiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgSeKAmXZlIG5ldmVyIGltYWdpbmVkIGFueXRoaW5nIGxpa2UgdGhpcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QnV0IEnigJl2ZSBuZXZlciBpbWFnaW5lZCBhbnl0aGluZyBsaWtlIHRoaXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2JvbGtrRG9sa2tJb2xra0NvbGtrV29sa2tNb2xra3pvbGtrTSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjYm9sa2tEb2xra0lvbGtrQ29sa2tXb2xra01vbGtrem9sa2tNJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7TWF5YmUgd2Ugc2hvdWxkIGp1c3QgZm9yZ2V0IGl0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQyXzI3JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7TWF5YmUgd2Ugc2hvdWxkIGp1c3QgZm9yZ2V0IGl0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml8yNyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI2NCIgbmFtZT0iQW5uaWVDaGF0Ml8yNyIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0Ml8yNyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtNYXliZSB3ZSBzaG91bGQganVzdCBmb3JnZXQgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtNYXliZSB3ZSBzaG91bGQganVzdCBmb3JnZXQgaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O01heWJlIHdlIHNob3VsZCBqdXN0IGZvcmdldCBpdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtBb2xra3JvbGtram9sa2tVb2xra0hvbGtrTW9sa2tWb2xra2MmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0FvbGtrcm9sa2tqb2xra1VvbGtrSG9sa2tNb2xra1ZvbGtrYyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0xpa2UgSSBzYWlkLCBJ4oCZbSB3YXkgdG9vIHN0cmVzc2VkIHdpdGggZXZlcnl0aGluZyByaWdodCBub3cmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMjgmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtMaWtlIEkgc2FpZCwgSeKAmW0gd2F5IHRvbyBzdHJlc3NlZCB3aXRoIGV2ZXJ5dGhpbmcgcmlnaHQgbm93JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml8yOCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI2NSIgbmFtZT0iQW5uaWVDaGF0Ml8yOCIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0Ml8yOCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtMaWtlIEkgc2FpZCwgSeKAmW0gd2F5IHRvbyBzdHJlc3NlZCB3aXRoIGV2ZXJ5dGhpbmcgcmlnaHQgbm93JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGlrZSBJIHNhaWQsIEnigJltIHdheSB0b28gc3RyZXNzZWQgd2l0aCBldmVyeXRoaW5nIHJpZ2h0IG5vdyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7TGlrZSBJIHNhaWQsIEnigJltIHdheSB0b28gc3RyZXNzZWQgd2l0aCBldmVyeXRoaW5nIHJpZ2h0IG5vdyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtub2xra0pvbGtrV29sa2twb2xra0dvbGtrUW9sa2t2b2xra3QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I25vbGtrSm9sa2tXb2xra3BvbGtrR29sa2tRb2xra3ZvbGtrdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1VuZGVyIG5vcm1hbCBjaXJjdW1zdGFuY2VzLCB0aGlzIHdvdWxkbuKAmXQgaGF2ZSBldmVuIGNvbWUgdXAmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMjkmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtVbmRlciBub3JtYWwgY2lyY3Vtc3RhbmNlcywgdGhpcyB3b3VsZG7igJl0IGhhdmUgZXZlbiBjb21lIHVwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml8yOSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI2NiIgbmFtZT0iQW5uaWVDaGF0Ml8yOSIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0Ml8yOSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtVbmRlciBub3JtYWwgY2lyY3Vtc3RhbmNlcywgdGhpcyB3b3VsZG7igJl0IGhhdmUgZXZlbiBjb21lIHVwJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VW5kZXIgbm9ybWFsIGNpcmN1bXN0YW5jZXMsIHRoaXMgd291bGRu4oCZdCBoYXZlIGV2ZW4gY29tZSB1cCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VW5kZXIgbm9ybWFsIGNpcmN1bXN0YW5jZXMsIHRoaXMgd291bGRu4oCZdCBoYXZlIGV2ZW4gY29tZSB1cCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgZ2V0IHRoYXQmcXVvdDsgJnF1b3Q7Um9sa2t2b2xra1dvbGtrZ29sa2tzb2xra3dvbGtrTG9sa2tmb2xra2NvbGtrSG9sa2tCb2xra3NvbGtrUW9sa2tnb2xra1ZvbGtrZiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGdldCB0aGF0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGdldCB0aGF0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtCdXQgY2xlYXJseSwgdGhpcyBpcyBzb21ldGhpbmcgeW914oCZdmUgdGhvdWdodCBhYm91dCBiZWZvcmUmcXVvdDsgJnF1b3Q7Qm9sa2tlb2xra05vbGtreG9sa2tmb2xra3JvbGtreG9sa2ttb2xra05vbGtrU29sa2tzb2xra2RvbGtrT29sa2tZb2xra1BvbGtrbiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgY2xlYXJseSwgdGhpcyBpcyBzb21ldGhpbmcgeW914oCZdmUgdGhvdWdodCBhYm91dCBiZWZvcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0J1dCBjbGVhcmx5LCB0aGlzIGlzIHNvbWV0aGluZyB5b3XigJl2ZSB0aG91Z2h0IGFib3V0IGJlZm9yZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SXQgd2FzbuKAmXQganVzdCBhIHNwdXIgb2YgdGhlIG1vbWVudCB0aGluZyZxdW90OyAmcXVvdDtRb2xra2JvbGtrWm9sa2tpb2xra2lvbGtrSm9sa2tyb2xra3hvbGtrR29sa2tKb2xra2hvbGtrdW9sa2t5b2xra2xvbGtrY29sa2t0JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0l0IHdhc27igJl0IGp1c3QgYSBzcHVyIG9mIHRoZSBtb21lbnQgdGhpbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0l0IHdhc27igJl0IGp1c3QgYSBzcHVyIG9mIHRoZSBtb21lbnQgdGhpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3ZvbGtrem9sa2t6b2xra0hvbGtrYm9sa2tub2xra3RvbGtrWiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjdm9sa2t6b2xra3pvbGtrSG9sa2tib2xra25vbGtrdG9sa2taJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WWVhaCwgSeKAmW0gbm90IGdvaW5nIHRvIGRlbnkgaXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMzAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZZWFoLCBJ4oCZbSBub3QgZ29pbmcgdG8gZGVueSBpdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMzAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNjciIG5hbWU9IkFubmllQ2hhdDJfMzAiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCw4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMzAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WWVhaCwgSeKAmW0gbm90IGdvaW5nIHRvIGRlbnkgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLCBJ4oCZbSBub3QgZ29pbmcgdG8gZGVueSBpdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WWVhaCwgSeKAmW0gbm90IGdvaW5nIHRvIGRlbnkgaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4ycyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIHNlZeKApiZxdW90OyAmcXVvdDtyb2xra1FvbGtrZm9sa2tqb2xra3JvbGtrVm9sa2tDb2xra0tvbGtrZG9sa2tlb2xra3RvbGtrZW9sa2tzb2xra21vbGtrbm9sa2thJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgc2Vl4oCmJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIHNlZeKApiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SG9uZXN0bHksIHRoaXMgaXMgY2F0Y2hpbmcgbWUgb2ZmIGd1YXJkJnF1b3Q7ICZxdW90O3hvbGtrVW9sa2twb2xra0dvbGtrUm9sa2tlb2xra0VvbGtrQm9sa2tlb2xra3hvbGtrb29sa2tXb2xra3FvbGtrSW9sa2trb2xra1QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SG9uZXN0bHksIHRoaXMgaXMgY2F0Y2hpbmcgbWUgb2ZmIGd1YXJkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIb25lc3RseSwgdGhpcyBpcyBjYXRjaGluZyBtZSBvZmYgZ3VhcmQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi40cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJltIG5vdCBnb2luZyB0byBqdWRnZSB5b3UsIEkgaGF2ZSBteSBvd24ga2lua3MgdG9vJnF1b3Q7ICZxdW90O01vbGtrYm9sa2tmb2xra3hvbGtrWW9sa2tzb2xra0FvbGtrS29sa2t4b2xra3VvbGtrWm9sa2tqb2xra1FvbGtreG9sa2thb2xra0QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gbm90IGdvaW5nIHRvIGp1ZGdlIHlvdSwgSSBoYXZlIG15IG93biBraW5rcyB0b28mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJltIG5vdCBnb2luZyB0byBqdWRnZSB5b3UsIEkgaGF2ZSBteSBvd24ga2lua3MgdG9vJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtUaG91Z2ggdGhleSBkZWZpbml0ZWx5IGRvbuKAmXQgaW52b2x2ZSBvdGhlciBwZW9wbGUmcXVvdDsgJnF1b3Q7aG9sa2tvb2xra3pvbGtrRG9sa2tub2xra21vbGtrdW9sa2tWb2xra2tvbGtrVG9sa2t5b2xra1JvbGtrV29sa2tlb2xra1RvbGtrZSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaG91Z2ggdGhleSBkZWZpbml0ZWx5IGRvbuKAmXQgaW52b2x2ZSBvdGhlciBwZW9wbGUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1Rob3VnaCB0aGV5IGRlZmluaXRlbHkgZG9u4oCZdCBpbnZvbHZlIG90aGVyIHBlb3BsZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBqdXN0IG5lZWQgc29tZSB0aW1lIHRvIHRoaW5rIGFib3V0IGFsbCBvZiB0aGlzJnF1b3Q7ICZxdW90O2xvbGtrbm9sa2t6b2xra2NvbGtraW9sa2tQb2xra0tvbGtrZG9sa2tkb2xra2ZvbGtrZG9sa2thb2xra0pvbGtrdG9sa2tZb2xra1omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBqdXN0IG5lZWQgc29tZSB0aW1lIHRvIHRoaW5rIGFib3V0IGFsbCBvZiB0aGlzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGp1c3QgbmVlZCBzb21lIHRpbWUgdG8gdGhpbmsgYWJvdXQgYWxsIG9mIHRoaXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2dvbGtrZm9sa2tMb2xra2JvbGtrRG9sa2tQb2xra3FvbGtrRyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNy4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjZ29sa2tmb2xra0xvbGtrYm9sa2tEb2xra1BvbGtrcW9sa2tHJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7T2YgY291cnNlLCBJIHVuZGVyc3RhbmQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMzEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtPZiBjb3Vyc2UsIEkgdW5kZXJzdGFuZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMzEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNjgiIG5hbWU9IkFubmllQ2hhdDJfMzEiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSw4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMzEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7T2YgY291cnNlLCBJIHVuZGVyc3RhbmQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPZiBjb3Vyc2UsIEkgdW5kZXJzdGFuZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7T2YgY291cnNlLCBJIHVuZGVyc3RhbmQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7eG9sa2tGb2xra09vbGtrSW9sa2tBb2xra0xvbGtrUG9sa2tMJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN4b2xra0ZvbGtrT29sa2tJb2xra0FvbGtrTG9sa2tQb2xra0wmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtBbnl3YXksIEkgbmVlZCB0byBrZWVwIHdvcmtpbmcgb24gdGhlc2UgcmVwb3J0cyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml8zMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0FueXdheSwgSSBuZWVkIHRvIGtlZXAgd29ya2luZyBvbiB0aGVzZSByZXBvcnRzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml8zMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI2OSIgbmFtZT0iQW5uaWVDaGF0Ml8zMiIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCw4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7V2XigJlsbCB0YWxrIGxhdGVyJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2XigJlsbCB0YWxrIGxhdGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtXZeKAmWxsIHRhbGsgbGF0ZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V2XigJlsbCB0YWxrIGxhdGVyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSA9ICZxdW90O0FubmllQ2hhdDJfMTImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfbGFzdF9ob3VyID0gJnF1b3Q7MTE6NDYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDsxMTo0NiZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7b2ZmbGluZS10ZXh0JnF1b3Q7Jmd0O0FubmllIGlzIG9mZmxpbmUmbHQ7L2RpdiZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9ub3Rlcy5wdXNoKCZxdW90O0kgYWRtaXR0ZWQgdGhhdCBteSBmYW50YXN5IGlzIGZvciBoZXIgdG8gaGF2ZSBzZXggd2l0aCBvdGhlciBtZW4uJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJE5hb21pX3Zpc2libGUgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7SG9uZXN0bHksIEkgaGF2ZSB0byBjb25ncmF0dWxhdGUgeW91JnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRKZW5uYV92aXNpYmxlID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI3MCIgbmFtZT0iQW5uaWVDaGF0M18xIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtIb25leSwgSeKAmW0gc29ycnkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvbmV5LCBJ4oCZbSBzb3JyeSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SG9uZXksIEnigJltIHNvcnJ5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBqdXN0IGZvdW5kIG91dCB0aGF0IE5hb21pIHdyb3RlIHRvIHlvdSZxdW90OyAmcXVvdDtqb2xra3BvbGtreG9sa2tZb2xra1lvbGtrQW9sa2tKb2xra3lvbGtrcW9sa2tHb2xra21vbGtrTW9sa2t5b2xra2ZvbGtrcm9sa2t6JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kganVzdCBmb3VuZCBvdXQgdGhhdCBOYW9taSB3cm90ZSB0byB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kganVzdCBmb3VuZCBvdXQgdGhhdCBOYW9taSB3cm90ZSB0byB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1NoZSB0cmllZCB0byBoaWRlIGl0IGZyb20gbWUsIGJ1dCBJIGtub3cgaGVyIHRvbyB3ZWxsJnF1b3Q7ICZxdW90O2xvbGtrTG9sa2t1b2xra0dvbGtrZm9sa2tOb2xra3hvbGtrbW9sa2tpb2xra2NvbGtrY29sa2tTb2xra3NvbGtrTG9sa2tqb2xra1cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U2hlIHRyaWVkIHRvIGhpZGUgaXQgZnJvbSBtZSwgYnV0IEkga25vdyBoZXIgdG9vIHdlbGwmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1NoZSB0cmllZCB0byBoaWRlIGl0IGZyb20gbWUsIGJ1dCBJIGtub3cgaGVyIHRvbyB3ZWxsJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtZb3Uga25vdyBJ4oCZdmUgYWx3YXlzIHRhbGtlZCBhYm91dCBldmVyeXRoaW5nIHdpdGggaGVyIHNpbmNlIGhpZ2ggc2Nob29sJnF1b3Q7ICZxdW90O3FvbGtrQW9sa2t4b2xra0NvbGtrZG9sa2t4b2xra3BvbGtrb29sa2tQb2xra0lvbGtrVW9sa2tab2xra3RvbGtrSG9sa2tJb2xra1UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGtub3cgSeKAmXZlIGFsd2F5cyB0YWxrZWQgYWJvdXQgZXZlcnl0aGluZyB3aXRoIGhlciBzaW5jZSBoaWdoIHNjaG9vbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW91IGtub3cgSeKAmXZlIGFsd2F5cyB0YWxrZWQgYWJvdXQgZXZlcnl0aGluZyB3aXRoIGhlciBzaW5jZSBoaWdoIHNjaG9vbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjhzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QnV0IEkgZGlkbuKAmXQgdGhpbmsgc2hl4oCZZCBhY3R1YWxseSBzYXkgYW55dGhpbmcgdG8geW91JnF1b3Q7ICZxdW90O3VvbGtra29sa2tvb2xra1ZvbGtrV29sa2t6b2xra09vbGtrSG9sa2tDb2xra29vbGtrWG9sa2tTb2xra2dvbGtrbG9sa2t0b2xra2UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IEkgZGlkbuKAmXQgdGhpbmsgc2hl4oCZZCBhY3R1YWxseSBzYXkgYW55dGhpbmcgdG8geW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCdXQgSSBkaWRu4oCZdCB0aGluayBzaGXigJlkIGFjdHVhbGx5IHNheSBhbnl0aGluZyB0byB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3VvbGtrSG9sa2twb2xra0JvbGtrZW9sa2tDb2xra0ZvbGtrRyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNy40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjdW9sa2tIb2xra3BvbGtrQm9sa2tlb2xra0NvbGtrRm9sa2tHJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SXTigJlzIG9rYXksIEkgdW5kZXJzdGFuZCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M18yYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0l04oCZcyBva2F5LCBJIHVuZGVyc3RhbmQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQzXzJhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3VvbGtrSG9sa2twb2xra0JvbGtrZW9sa2tDb2xra0ZvbGtrRyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgd291bGTigJl2ZSBwcmVmZXJyZWQgaWYgc2hlIGhhZG7igJl0IGZvdW5kIG91dCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M18yYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgd291bGTigJl2ZSBwcmVmZXJyZWQgaWYgc2hlIGhhZG7igJl0IGZvdW5kIG91dCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDNfMmImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI3MSIgbmFtZT0iQW5uaWVDaGF0M18yYSIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0M18yYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJdOKAmXMgb2theSwgSSB1bmRlcnN0YW5kJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXTigJlzIG9rYXksIEkgdW5kZXJzdGFuZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SXTigJlzIG9rYXksIEkgdW5kZXJzdGFuZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkZG9tc3ViID0gJGRvbXN1Yi0xJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1dvbGtrQ29sa2tMb2xra0ZvbGtraW9sa2trb2xra0xvbGtraSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjV29sa2tDb2xra0xvbGtrRm9sa2tpb2xra2tvbGtrTG9sa2tpJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBrbm93IHlvdSBnaXJscyB0ZWxsIGVhY2ggb3RoZXIgZXZlcnl0aGluZyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M18zYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kga25vdyB5b3UgZ2lybHMgdGVsbCBlYWNoIG90aGVyIGV2ZXJ5dGhpbmcmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQzXzNhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjcyIiBuYW1lPSJBbm5pZUNoYXQzXzJiIiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQzXzJiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgd291bGTigJl2ZSBwcmVmZXJyZWQgaWYgc2hlIGhhZG7igJl0IGZvdW5kIG91dCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgd291bGTigJl2ZSBwcmVmZXJyZWQgaWYgc2hlIGhhZG7igJl0IGZvdW5kIG91dCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSB3b3VsZOKAmXZlIHByZWZlcnJlZCBpZiBzaGUgaGFkbuKAmXQgZm91bmQgb3V0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRkb21zdWIgPSAkZG9tc3ViKzEmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7RG9sa2tnb2xra0JvbGtrVm9sa2tNb2xra1lvbGtrVm9sa2twJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNEb2xra2dvbGtrQm9sa2tWb2xra01vbGtrWW9sa2tWb2xra3AmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJdCBmZWVscyBzdHJhbmdlIHRoYXQgc29tZW9uZSBlbHNlIGtub3dzJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQzXzNiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SXQgZmVlbHMgc3RyYW5nZSB0aGF0IHNvbWVvbmUgZWxzZSBrbm93cyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDNfM2ImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNzMiIG5hbWU9IkFubmllQ2hhdDNfM2EiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCw5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDNfM2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBrbm93IHlvdSBnaXJscyB0ZWxsIGVhY2ggb3RoZXIgZXZlcnl0aGluZyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kga25vdyB5b3UgZ2lybHMgdGVsbCBlYWNoIG90aGVyIGV2ZXJ5dGhpbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kga25vdyB5b3UgZ2lybHMgdGVsbCBlYWNoIG90aGVyIGV2ZXJ5dGhpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJdOKAmXMganVzdCB0aGF0IHRoaXMgd2FzIHNvIHVuZXhwZWN0ZWQmcXVvdDsgJnF1b3Q7Zm9sa2twb2xra25vbGtrem9sa2tqb2xra0ZvbGtrRG9sa2tQb2xra2lvbGtrZW9sa2tCb2xra2dvbGtrcm9sa2tPb2xra1NvbGtreiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdOKAmXMganVzdCB0aGF0IHRoaXMgd2FzIHNvIHVuZXhwZWN0ZWQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0l04oCZcyBqdXN0IHRoYXQgdGhpcyB3YXMgc28gdW5leHBlY3RlZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBuZWVkZWQgdG8gaGVhciBzb21lb25lIGVsc2XigJlzIG9waW5pb24mcXVvdDsgJnF1b3Q7UG9sa2tob2xra0pvbGtrYW9sa2tFb2xra2dvbGtrQ29sa2tRb2xra2pvbGtrdG9sa2tzb2xra2xvbGtreW9sa2tMb2xra0hvbGtrbSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIG5lZWRlZCB0byBoZWFyIHNvbWVvbmUgZWxzZeKAmXMgb3BpbmlvbiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBuZWVkZWQgdG8gaGVhciBzb21lb25lIGVsc2XigJlzIG9waW5pb24mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0Zyb20gc29tZW9uZSB3aG8ga25vd3MgZXZlcnl0aGluZyBhYm91dCBtZSZxdW90OyAmcXVvdDtFb2xra0dvbGtrWG9sa2tlb2xra0JvbGtraW9sa2tjb2xra3FvbGtrcW9sa2tlb2xra3pvbGtrZW9sa2tGb2xra1hvbGtrRm9sa2tzJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0Zyb20gc29tZW9uZSB3aG8ga25vd3MgZXZlcnl0aGluZyBhYm91dCBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7RnJvbSBzb21lb25lIHdobyBrbm93cyBldmVyeXRoaW5nIGFib3V0IG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtCb2xra2dvbGtrTG9sa2tib2xra3ZvbGtrUG9sa2tRb2xra1YmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0JvbGtrZ29sa2tMb2xra2JvbGtrdm9sa2tQb2xra1FvbGtrViZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgY2FuIHVuZGVyc3RhbmQgdGhhdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M180JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBjYW4gdW5kZXJzdGFuZCB0aGF0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0M180JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9Ijc0IiBuYW1lPSJBbm5pZUNoYXQzXzNiIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQzXzNiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0l0IGZlZWxzIHN0cmFuZ2UgdGhhdCBzb21lb25lIGVsc2Uga25vd3MmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdCBmZWVscyBzdHJhbmdlIHRoYXQgc29tZW9uZSBlbHNlIGtub3dzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJdCBmZWVscyBzdHJhbmdlIHRoYXQgc29tZW9uZSBlbHNlIGtub3dzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBrbm93LCBhbmQgSeKAmW0gc29ycnkmcXVvdDsgJnF1b3Q7VG9sa2twb2xra0lvbGtrWG9sa2txb2xra2hvbGtrdG9sa2tqb2xra2JvbGtrSG9sa2t3b2xra2pvbGtrbG9sa2tJb2xra2hvbGtrTSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGtub3csIGFuZCBJ4oCZbSBzb3JyeSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBrbm93LCBhbmQgSeKAmW0gc29ycnkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS40cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0l04oCZcyBqdXN0IHRoYXQgdGhpcyB3YXMgc28gdW5leHBlY3RlZCZxdW90OyAmcXVvdDt5b2xra2pvbGtrQ29sa2t1b2xra2JvbGtrWG9sa2t6b2xra1NvbGtrdm9sa2tsb2xra3lvbGtrTm9sa2tGb2xra2xvbGtrd29sa2tmJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0l04oCZcyBqdXN0IHRoYXQgdGhpcyB3YXMgc28gdW5leHBlY3RlZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SXTigJlzIGp1c3QgdGhhdCB0aGlzIHdhcyBzbyB1bmV4cGVjdGVkJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIG5lZWRlZCB0byBoZWFyIHNvbWVvbmUgZWxzZeKAmXMgb3BpbmlvbiZxdW90OyAmcXVvdDtYb2xra2lvbGtrYm9sa2tEb2xra3lvbGtrWm9sa2t6b2xra2RvbGtrU29sa2tab2xra1hvbGtrc29sa2tXb2xra0xvbGtrWm9sa2tVJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbmVlZGVkIHRvIGhlYXIgc29tZW9uZSBlbHNl4oCZcyBvcGluaW9uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIG5lZWRlZCB0byBoZWFyIHNvbWVvbmUgZWxzZeKAmXMgb3BpbmlvbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7RnJvbSBzb21lb25lIHdobyBrbm93cyBldmVyeXRoaW5nIGFib3V0IG1lJnF1b3Q7ICZxdW90O2ZvbGtrZG9sa2tqb2xra2JvbGtrS29sa2t1b2xra0xvbGtreG9sa2tOb2xra25vbGtrQm9sa2t3b2xra0dvbGtrdG9sa2t5b2xra2EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RnJvbSBzb21lb25lIHdobyBrbm93cyBldmVyeXRoaW5nIGFib3V0IG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtGcm9tIHNvbWVvbmUgd2hvIGtub3dzIGV2ZXJ5dGhpbmcgYWJvdXQgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1JvbGtrTG9sa2tFb2xra2dvbGtrSm9sa2tKb2xra0FvbGtrWCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNS4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjUm9sa2tMb2xra0VvbGtrZ29sa2tKb2xra0pvbGtrQW9sa2tYJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBjYW4gdW5kZXJzdGFuZCB0aGF0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQzXzQmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGNhbiB1bmRlcnN0YW5kIHRoYXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQzXzQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNzUiIG5hbWU9IkFubmllQ2hhdDNfNCIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0M180JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgY2FuIHVuZGVyc3RhbmQgdGhhdCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgY2FuIHVuZGVyc3RhbmQgdGhhdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBjYW4gdW5kZXJzdGFuZCB0aGF0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7VGhlIGxhc3QgdGhpbmcgeW91IHByb2JhYmx5IG5lZWRlZCB3aXRoIGFsbCB0aGlzIHdvcmsgc3RyZXNzIHdhcyB0aGlzIGRyYW1hJnF1b3Q7ICZxdW90O1dvbGtrUW9sa2tBb2xra1lvbGtrUm9sa2tUb2xra2RvbGtrU29sa2tVb2xra0VvbGtrdW9sa2tvb2xra1FvbGtrSW9sa2ttb2xra2cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhlIGxhc3QgdGhpbmcgeW91IHByb2JhYmx5IG5lZWRlZCB3aXRoIGFsbCB0aGlzIHdvcmsgc3RyZXNzIHdhcyB0aGlzIGRyYW1hJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUaGUgbGFzdCB0aGluZyB5b3UgcHJvYmFibHkgbmVlZGVkIHdpdGggYWxsIHRoaXMgd29yayBzdHJlc3Mgd2FzIHRoaXMgZHJhbWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJltIHJlYWxseSBzb3JyeSZxdW90OyAmcXVvdDtLb2xra3VvbGtrS29sa2tRb2xra0dvbGtra29sa2t6b2xra0pvbGtrb29sa2t1b2xra3FvbGtrUm9sa2tHb2xra1lvbGtrWW9sa2t0JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJltIHJlYWxseSBzb3JyeSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmW0gcmVhbGx5IHNvcnJ5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtjb2xra3JvbGtrcW9sa2tpb2xra0FvbGtrTG9sa2t5b2xra1MmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2NvbGtrcm9sa2txb2xra2lvbGtrQW9sa2tMb2xra3lvbGtrUyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O05vLCBpdOKAmXMgb2theSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M181JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7Tm8sIGl04oCZcyBva2F5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0M181JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9Ijc2IiBuYW1lPSJBbm5pZUNoYXQzXzUiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSw5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDNfNSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtObywgaXTigJlzIG9rYXkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtObywgaXTigJlzIG9rYXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O05vLCBpdOKAmXMgb2theSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDttb2xra05vbGtrYW9sa2tJb2xra3hvbGtrV29sa2t5b2xra3AmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I21vbGtrTm9sa2thb2xra0lvbGtreG9sa2tXb2xra3lvbGtrcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0nigJltIHRoZSBvbmUgd2hvIHN1ZGRlbmx5IGJyb3VnaHQgdXAgdGhpcyB1bmZ1bGZpbGxlZCBmZXRpc2ggb2YgbWluZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M182JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SeKAmW0gdGhlIG9uZSB3aG8gc3VkZGVubHkgYnJvdWdodCB1cCB0aGlzIHVuZnVsZmlsbGVkIGZldGlzaCBvZiBtaW5lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0M182JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9Ijc3IiBuYW1lPSJBbm5pZUNoYXQzXzYiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCw5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDNfNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJ4oCZbSB0aGUgb25lIHdobyBzdWRkZW5seSBicm91Z2h0IHVwIHRoaXMgdW5mdWxmaWxsZWQgZmV0aXNoIG9mIG1pbmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSB0aGUgb25lIHdobyBzdWRkZW5seSBicm91Z2h0IHVwIHRoaXMgdW5mdWxmaWxsZWQgZmV0aXNoIG9mIG1pbmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJltIHRoZSBvbmUgd2hvIHN1ZGRlbmx5IGJyb3VnaHQgdXAgdGhpcyB1bmZ1bGZpbGxlZCBmZXRpc2ggb2YgbWluZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtZb2xra0NvbGtrbW9sa2tyb2xra2pvbGtrYW9sa2tGb2xra2QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1lvbGtrQ29sa2ttb2xra3JvbGtram9sa2thb2xra0ZvbGtrZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgdGhpbmsgeW91ciByZWFjdGlvbiBpcyBjb21wbGV0ZWx5IG5vcm1hbCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M183JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSB0aGluayB5b3VyIHJlYWN0aW9uIGlzIGNvbXBsZXRlbHkgbm9ybWFsJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0M183JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9Ijc4IiBuYW1lPSJBbm5pZUNoYXQzXzciIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSw5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDNfNyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIHRoaW5rIHlvdXIgcmVhY3Rpb24gaXMgY29tcGxldGVseSBub3JtYWwmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHRoaW5rIHlvdXIgcmVhY3Rpb24gaXMgY29tcGxldGVseSBub3JtYWwmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgdGhpbmsgeW91ciByZWFjdGlvbiBpcyBjb21wbGV0ZWx5IG5vcm1hbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtSb2xra3hvbGtrWW9sa2t5b2xra2lvbGtra29sa2tNb2xra3omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1JvbGtreG9sa2tZb2xra3lvbGtraW9sa2trb2xra01vbGtreiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O01heWJlIGl04oCZcyBiZXN0IGlmIHdlIGp1c3QgZm9yZ2V0IHRoZSB3aG9sZSB0aGluZyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M184JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7TWF5YmUgaXTigJlzIGJlc3QgaWYgd2UganVzdCBmb3JnZXQgdGhlIHdob2xlIHRoaW5nJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0M184JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9Ijc5IiBuYW1lPSJBbm5pZUNoYXQzXzgiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQzXzgmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TWF5YmUgaXTigJlzIGJlc3QgaWYgd2UganVzdCBmb3JnZXQgdGhlIHdob2xlIHRoaW5nJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TWF5YmUgaXTigJlzIGJlc3QgaWYgd2UganVzdCBmb3JnZXQgdGhlIHdob2xlIHRoaW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtNYXliZSBpdOKAmXMgYmVzdCBpZiB3ZSBqdXN0IGZvcmdldCB0aGUgd2hvbGUgdGhpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtObywgeW914oCZdmUgYWx3YXlzIGRvbmUgZXZlcnl0aGluZyB0byBtYWtlIG1lIGhhcHB5JnF1b3Q7ICZxdW90O0hvbGtrbW9sa2tTb2xra1dvbGtrQm9sa2tzb2xra2FvbGtrZG9sa2tQb2xra2xvbGtrSW9sa2tDb2xra2RvbGtraW9sa2tlb2xra3cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm8sIHlvdeKAmXZlIGFsd2F5cyBkb25lIGV2ZXJ5dGhpbmcgdG8gbWFrZSBtZSBoYXBweSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7Tm8sIHlvdeKAmXZlIGFsd2F5cyBkb25lIGV2ZXJ5dGhpbmcgdG8gbWFrZSBtZSBoYXBweSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjhzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7WW914oCZcmUgZXZlbiBvdXQgdGhlcmUgYWNyb3NzIHRoZSBjb3VudHJ5IHRyeWluZyB0byBpbXByb3ZlIG91ciBmaW5hbmNlcyZxdW90OyAmcXVvdDtKb2xra1dvbGtrY29sa2tZb2xra0xvbGtrcW9sa2tib2xra3hvbGtrUW9sa2tZb2xra0pvbGtrTm9sa2tlb2xra3JvbGtrUm9sa2thJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdeKAmXJlIGV2ZW4gb3V0IHRoZXJlIGFjcm9zcyB0aGUgY291bnRyeSB0cnlpbmcgdG8gaW1wcm92ZSBvdXIgZmluYW5jZXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdeKAmXJlIGV2ZW4gb3V0IHRoZXJlIGFjcm9zcyB0aGUgY291bnRyeSB0cnlpbmcgdG8gaW1wcm92ZSBvdXIgZmluYW5jZXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjVzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0lmIHRoaXMgaXMgc29tZXRoaW5nIHlvdSB0cnVseSB3YW50LCBJ4oCZbGwgbWFrZSBhbiBlZmZvcnQgdG8gc2F0aXNmeSB5b3VyIGRlc2lyZSZxdW90OyAmcXVvdDtOb2xra3pvbGtrb29sa2tJb2xra2VvbGtrYm9sa2tZb2xra0VvbGtrRm9sa2tEb2xra1RvbGtrQm9sa2tWb2xra0dvbGtrZW9sa2t4JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0lmIHRoaXMgaXMgc29tZXRoaW5nIHlvdSB0cnVseSB3YW50LCBJ4oCZbGwgbWFrZSBhbiBlZmZvcnQgdG8gc2F0aXNmeSB5b3VyIGRlc2lyZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SWYgdGhpcyBpcyBzb21ldGhpbmcgeW91IHRydWx5IHdhbnQsIEnigJlsbCBtYWtlIGFuIGVmZm9ydCB0byBzYXRpc2Z5IHlvdXIgZGVzaXJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDUuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS44cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJ4oCZdmUgYWxzbyBiZWVuIHRhbGtpbmcgdG8gTmFvbWksIGFuZCBzaGUgbWFkZSBtZSBzZWUgdGhhdCBpdOKAmXMgbm90IHN1Y2ggYSBzdHJhbmdlIHRoaW5nJnF1b3Q7ICZxdW90O2JvbGtram9sa2tpb2xra0ZvbGtrY29sa2tqb2xra1RvbGtrd29sa2tNb2xra0dvbGtreG9sa2twb2xra0xvbGtrVW9sa2t4b2xra1UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmXZlIGFsc28gYmVlbiB0YWxraW5nIHRvIE5hb21pLCBhbmQgc2hlIG1hZGUgbWUgc2VlIHRoYXQgaXTigJlzIG5vdCBzdWNoIGEgc3RyYW5nZSB0aGluZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmXZlIGFsc28gYmVlbiB0YWxraW5nIHRvIE5hb21pLCBhbmQgc2hlIG1hZGUgbWUgc2VlIHRoYXQgaXTigJlzIG5vdCBzdWNoIGEgc3RyYW5nZSB0aGluZyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA4LjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7U2hlIGV2ZW4gc2F5cyBzaGUgZmluZHMgaXQgcmVhbGx5IGV4Y2l0aW5nJnF1b3Q7ICZxdW90O25vbGtrQ29sa2tlb2xra2tvbGtrRm9sa2tmb2xra0JvbGtrRG9sa2tnb2xra0xvbGtrYW9sa2tab2xra0NvbGtrTG9sa2tTb2xra1UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U2hlIGV2ZW4gc2F5cyBzaGUgZmluZHMgaXQgcmVhbGx5IGV4Y2l0aW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtTaGUgZXZlbiBzYXlzIHNoZSBmaW5kcyBpdCByZWFsbHkgZXhjaXRpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgOS41cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjZzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgc3RpbGwgZG9u4oCZdCBzZWUgYWxsIHRoZSBhcHBlYWwsIGJ1dCBpdOKAmXMgd29ydGggdHJ5aW5nIGFuZCBzZWVpbmcgaG93IGl0IGZlZWxzJnF1b3Q7ICZxdW90O0lvbGtrZW9sa2t2b2xra2JvbGtraG9sa2tYb2xra1pvbGtrSm9sa2tib2xra01vbGtrWm9sa2ttb2xra3dvbGtrRG9sa2t4b2xra3UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBzdGlsbCBkb27igJl0IHNlZSBhbGwgdGhlIGFwcGVhbCwgYnV0IGl04oCZcyB3b3J0aCB0cnlpbmcgYW5kIHNlZWluZyBob3cgaXQgZmVlbHMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgc3RpbGwgZG9u4oCZdCBzZWUgYWxsIHRoZSBhcHBlYWwsIGJ1dCBpdOKAmXMgd29ydGggdHJ5aW5nIGFuZCBzZWVpbmcgaG93IGl0IGZlZWxzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDExLjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7VGhlIG9ubHkgdGhpbmcgSeKAmWxsIGFzayBpZiB3ZeKAmXJlIGdvaW5nIHRvIGRvIHRoaXMgaXMgbm90IHRvIHJ1c2ggbWUmcXVvdDsgJnF1b3Q7Vm9sa2tFb2xra2xvbGtrYW9sa2tnb2xra3JvbGtrTW9sa2tyb2xra2xvbGtrSG9sa2tDb2xra0tvbGtreW9sa2t3b2xra0hvbGtrWiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGUgb25seSB0aGluZyBJ4oCZbGwgYXNrIGlmIHdl4oCZcmUgZ29pbmcgdG8gZG8gdGhpcyBpcyBub3QgdG8gcnVzaCBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhlIG9ubHkgdGhpbmcgSeKAmWxsIGFzayBpZiB3ZeKAmXJlIGdvaW5nIHRvIGRvIHRoaXMgaXMgbm90IHRvIHJ1c2ggbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMTMuOXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJ4oCZbSBub3Qgc3VyZSBJ4oCZbGwgYmUgYWJsZSB0byBnbyB0aHJvdWdoIHdpdGggaXQmcXVvdDsgJnF1b3Q7U29sa2tCb2xra1FvbGtrZG9sa2tWb2xra3NvbGtraG9sa2tPb2xra0xvbGtrWW9sa2tZb2xra0xvbGtrdG9sa2twb2xra2RvbGtrYyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBub3Qgc3VyZSBJ4oCZbGwgYmUgYWJsZSB0byBnbyB0aHJvdWdoIHdpdGggaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJltIG5vdCBzdXJlIEnigJlsbCBiZSBhYmxlIHRvIGdvIHRocm91Z2ggd2l0aCBpdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxNS42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0J1dCB5b3UgY2FuIGNvdW50IG9uIG1lIHRvIHRyeSZxdW90OyAmcXVvdDtGb2xra0RvbGtrQ29sa2tub2xra21vbGtrTm9sa2tKb2xra3FvbGtrcG9sa2tBb2xra09vbGtrSW9sa2tWb2xra0JvbGtrUm9sa2tFJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCB5b3UgY2FuIGNvdW50IG9uIG1lIHRvIHRyeSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QnV0IHlvdSBjYW4gY291bnQgb24gbWUgdG8gdHJ5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtGb2xra3NvbGtrWG9sa2tKb2xra2VvbGtrUG9sa2tDb2xra1ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDE3LjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNGb2xra3NvbGtrWG9sa2tKb2xra2VvbGtrUG9sa2tDb2xra1ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGFua3MgYmFiZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M185YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoYW5rcyBiYWJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0M185YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNGb2xra3NvbGtrWG9sa2tKb2xra2VvbGtrUG9sa2tDb2xra1ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3XigJlsbCBzZWUsIHlvdeKAmXJlIGdvaW5nIHRvIGxpa2UgaXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDNfOWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3XigJlsbCBzZWUsIHlvdeKAmXJlIGdvaW5nIHRvIGxpa2UgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQzXzliJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjgwIiBuYW1lPSJBbm5pZUNoYXQzXzlhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0M185YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGFua3MgYmFiZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYW5rcyBiYWJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUaGFua3MgYmFiZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkZG9tc3ViID0gJGRvbXN1Yi0xJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O29vbGtrYm9sa2tWb2xra3hvbGtraG9sa2tJb2xra29vbGtrWiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjb29sa2tib2xra1ZvbGtreG9sa2tob2xra0lvbGtrb29sa2taJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW914oCZbGwgc2VlLCB5b3XigJlyZSBnb2luZyB0byBsaWtlIGl0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQzXzEwYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdeKAmWxsIHNlZSwgeW914oCZcmUgZ29pbmcgdG8gbGlrZSBpdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDNfMTBhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjgxIiBuYW1lPSJBbm5pZUNoYXQzXzliIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMTEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0M185YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZb3XigJlsbCBzZWUsIHlvdeKAmXJlIGdvaW5nIHRvIGxpa2UgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3XigJlsbCBzZWUsIHlvdeKAmXJlIGdvaW5nIHRvIGxpa2UgaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdeKAmWxsIHNlZSwgeW914oCZcmUgZ29pbmcgdG8gbGlrZSBpdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkZG9tc3ViID0gJGRvbXN1YisxJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O25vbGtrYm9sa2tRb2xra1hvbGtrZ29sa2thb2xra3JvbGtrRyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjbm9sa2tib2xra1FvbGtrWG9sa2tnb2xra2FvbGtrcm9sa2tHJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBoYXZlIG5vIGRvdWJ0IGFib3V0IGl0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQzXzEwYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgaGF2ZSBubyBkb3VidCBhYm91dCBpdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDNfMTBiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjgyIiBuYW1lPSJBbm5pZUNoYXQzXzEwYSIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDExMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDNfMTBhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgcmVhbGx5IGFwcHJlY2lhdGUgeW91IGRvaW5nIHRoaXMgZm9yIG1lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSByZWFsbHkgYXBwcmVjaWF0ZSB5b3UgZG9pbmcgdGhpcyBmb3IgbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgcmVhbGx5IGFwcHJlY2lhdGUgeW91IGRvaW5nIHRoaXMgZm9yIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7WW91IGtub3cgSeKAmWQgZG8gYW55dGhpbmcgZm9yIHlvdSZxdW90OyAmcXVvdDtqb2xra0FvbGtrSG9sa2tyb2xra1RvbGtrU29sa2tGb2xra3dvbGtrYW9sa2tGb2xra3pvbGtrVm9sa2t5b2xra1NvbGtrd29sa2tlJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBrbm93IEnigJlkIGRvIGFueXRoaW5nIGZvciB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdSBrbm93IEnigJlkIGRvIGFueXRoaW5nIGZvciB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0FsdGhvdWdoIEnigJlsbCBhZG1pdCBJIHN0aWxsIGhhdmUgbXkgZG91YnRzJnF1b3Q7ICZxdW90O2xvbGtrUm9sa2txb2xra3JvbGtrZW9sa2tGb2xra1ZvbGtrSm9sa2t1b2xra2xvbGtrd29sa2tIb2xra0FvbGtrUW9sa2tub2xra2ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QWx0aG91Z2ggSeKAmWxsIGFkbWl0IEkgc3RpbGwgaGF2ZSBteSBkb3VidHMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0FsdGhvdWdoIEnigJlsbCBhZG1pdCBJIHN0aWxsIGhhdmUgbXkgZG91YnRzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtCdXQgeW91IGFuZCBOYW9taSBrbm93IG1lIGJldHRlciB0aGFuIGFueW9uZSZxdW90OyAmcXVvdDtBb2xra25vbGtrZ29sa2tPb2xra09vbGtrV29sa2tvb2xra2tvbGtra29sa2tnb2xra1RvbGtrRG9sa2tQb2xra2xvbGtrdG9sa2txJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCB5b3UgYW5kIE5hb21pIGtub3cgbWUgYmV0dGVyIHRoYW4gYW55b25lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCdXQgeW91IGFuZCBOYW9taSBrbm93IG1lIGJldHRlciB0aGFuIGFueW9uZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QW5kIHlvdSBib3RoIGFncmVlLCBzbyBJ4oCZbGwgZGVmaW5pdGVseSBnaXZlIHRoaXMgYSBjaGFuY2UmcXVvdDsgJnF1b3Q7am9sa2tob2xra0lvbGtra29sa2tIb2xra3lvbGtrRW9sa2t0b2xra1dvbGtrRm9sa2tWb2xra09vbGtrQm9sa2tmb2xra21vbGtrViZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbmQgeW91IGJvdGggYWdyZWUsIHNvIEnigJlsbCBkZWZpbml0ZWx5IGdpdmUgdGhpcyBhIGNoYW5jZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QW5kIHlvdSBib3RoIGFncmVlLCBzbyBJ4oCZbGwgZGVmaW5pdGVseSBnaXZlIHRoaXMgYSBjaGFuY2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3dvbGtraG9sa2tib2xra3NvbGtrdG9sa2tZb2xra3VvbGtrdCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNi4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjd29sa2tob2xra2JvbGtrc29sa2t0b2xra1lvbGtrdW9sa2t0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBoYXZlIHRvIHNheSwgdGhpcyBoYXMgbWFkZSBteSBkYXkgc28gbXVjaCBiZXR0ZXImcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDNfMTEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGhhdmUgdG8gc2F5LCB0aGlzIGhhcyBtYWRlIG15IGRheSBzbyBtdWNoIGJldHRlciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDNfMTEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iODMiIG5hbWU9IkFubmllQ2hhdDNfMTBiIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMTEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0M18xMGImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBoYXZlIG5vIGRvdWJ0IGFib3V0IGl0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBoYXZlIG5vIGRvdWJ0IGFib3V0IGl0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGhhdmUgbm8gZG91YnQgYWJvdXQgaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtIb25lc3RseSwgSSBkbyZxdW90OyAmcXVvdDtOb2xra3pvbGtreW9sa2tMb2xra3hvbGtrd29sa2tib2xra3RvbGtrTm9sa2tvb2xra0ZvbGtrbG9sa2tSb2xra0NvbGtrc29sa2tRJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvbmVzdGx5LCBJIGRvJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIb25lc3RseSwgSSBkbyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QnV0IHlvdSBhbmQgTmFvbWkga25vdyBtZSBiZXR0ZXIgdGhhbiBhbnlvbmUmcXVvdDsgJnF1b3Q7RG9sa2tKb2xra25vbGtrQW9sa2t0b2xra3hvbGtrVm9sa2trb2xra2RvbGtraW9sa2tWb2xra1pvbGtrc29sa2tFb2xra2FvbGtrSiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgeW91IGFuZCBOYW9taSBrbm93IG1lIGJldHRlciB0aGFuIGFueW9uZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QnV0IHlvdSBhbmQgTmFvbWkga25vdyBtZSBiZXR0ZXIgdGhhbiBhbnlvbmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi43cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0FuZCB5b3UgYm90aCBhZ3JlZSwgc28gSeKAmWxsIGRlZmluaXRlbHkgZ2l2ZSB0aGlzIGEgY2hhbmNlJnF1b3Q7ICZxdW90O0JvbGtrcG9sa2t5b2xra0xvbGtrZG9sa2tsb2xra2lvbGtrQm9sa2tHb2xra1lvbGtrRG9sa2tHb2xra1JvbGtrQW9sa2trb2xra3omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5kIHlvdSBib3RoIGFncmVlLCBzbyBJ4oCZbGwgZGVmaW5pdGVseSBnaXZlIHRoaXMgYSBjaGFuY2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0FuZCB5b3UgYm90aCBhZ3JlZSwgc28gSeKAmWxsIGRlZmluaXRlbHkgZ2l2ZSB0aGlzIGEgY2hhbmNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtRb2xra29vbGtreW9sa2tXb2xra1NvbGtrbW9sa2tYb2xra3YmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuNHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1FvbGtrb29sa2t5b2xra1dvbGtrU29sa2ttb2xra1hvbGtrdiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgaGF2ZSB0byBzYXksIHRoaXMgaGFzIG1hZGUgbXkgZGF5IHNvIG11Y2ggYmV0dGVyJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQzXzExJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBoYXZlIHRvIHNheSwgdGhpcyBoYXMgbWFkZSBteSBkYXkgc28gbXVjaCBiZXR0ZXImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQzXzExJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9Ijg0IiBuYW1lPSJBbm5pZUNoYXQzXzExIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMTEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0M18xMSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGhhdmUgdG8gc2F5LCB0aGlzIGhhcyBtYWRlIG15IGRheSBzbyBtdWNoIGJldHRlciZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgaGF2ZSB0byBzYXksIHRoaXMgaGFzIG1hZGUgbXkgZGF5IHNvIG11Y2ggYmV0dGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGhhdmUgdG8gc2F5LCB0aGlzIGhhcyBtYWRlIG15IGRheSBzbyBtdWNoIGJldHRlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt5b2xra2tvbGtrSG9sa2t2b2xra21vbGtrZ29sa2tQb2xra2UmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3lvbGtra29sa2tIb2xra3ZvbGtrbW9sa2tnb2xra1BvbGtrZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgZmVlbCBsaWtlIGEgd2VpZ2h0IGhhcyBiZWVuIGxpZnRlZCBvZmYgbXkgc2hvdWxkZXJzIGFmdGVyIGNvbmZlc3NpbmcgdGhpcyB0byB5b3UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDNfMTImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGZlZWwgbGlrZSBhIHdlaWdodCBoYXMgYmVlbiBsaWZ0ZWQgb2ZmIG15IHNob3VsZGVycyBhZnRlciBjb25mZXNzaW5nIHRoaXMgdG8geW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0M18xMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI4NSIgbmFtZT0iQW5uaWVDaGF0M18xMiIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDExMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDNfMTImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBmZWVsIGxpa2UgYSB3ZWlnaHQgaGFzIGJlZW4gbGlmdGVkIG9mZiBteSBzaG91bGRlcnMgYWZ0ZXIgY29uZmVzc2luZyB0aGlzIHRvIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZmVlbCBsaWtlIGEgd2VpZ2h0IGhhcyBiZWVuIGxpZnRlZCBvZmYgbXkgc2hvdWxkZXJzIGFmdGVyIGNvbmZlc3NpbmcgdGhpcyB0byB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgZmVlbCBsaWtlIGEgd2VpZ2h0IGhhcyBiZWVuIGxpZnRlZCBvZmYgbXkgc2hvdWxkZXJzIGFmdGVyIGNvbmZlc3NpbmcgdGhpcyB0byB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtIb25leSwgeW91IHNob3VsZOKAmXZlIHRvbGQgbWUgc29vbmVyJnF1b3Q7ICZxdW90O05vbGtrcW9sa2tmb2xra3pvbGtrVG9sa2tsb2xra3JvbGtrbG9sa2tob2xra3pvbGtrVG9sa2tQb2xra3JvbGtrcG9sa2tnb2xra0EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SG9uZXksIHlvdSBzaG91bGTigJl2ZSB0b2xkIG1lIHNvb25lciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SG9uZXksIHlvdSBzaG91bGTigJl2ZSB0b2xkIG1lIHNvb25lciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuM3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgeW914oCZdmUgYmVlbiBjYXJyeWluZyBhbGwgdGhpcyB3aXRob3V0IHRlbGxpbmcgbWUgYWJvdXQgaXQuJnF1b3Q7ICZxdW90O0ZvbGtrUm9sa2tyb2xra2RvbGtrVG9sa2tub2xra1pvbGtrd29sa2tab2xra0RvbGtrbG9sa2tqb2xra2pvbGtrU29sa2tTb2xra0smcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgeW914oCZdmUgYmVlbiBjYXJyeWluZyBhbGwgdGhpcyB3aXRob3V0IHRlbGxpbmcgbWUgYWJvdXQgaXQuJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGNhbuKAmXQgYmVsaWV2ZSB5b3XigJl2ZSBiZWVuIGNhcnJ5aW5nIGFsbCB0aGlzIHdpdGhvdXQgdGVsbGluZyBtZSBhYm91dCBpdC4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy40cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjZzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0FuZCBhYm91dCB3b3JrLCBkbyB5b3UgdGhpbmsgeW914oCZbGwgYmUgYWJsZSB0byBmaW5pc2ggYWxsIHlvdXIgd29yayBieSBGcmlkYXk/JnF1b3Q7ICZxdW90O3dvbGtrRW9sa2tCb2xra05vbGtrbG9sa2ttb2xra0dvbGtrSm9sa2tBb2xra2xvbGtrTW9sa2tLb2xra0lvbGtrUm9sa2tIb2xra2cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5kIGFib3V0IHdvcmssIGRvIHlvdSB0aGluayB5b3XigJlsbCBiZSBhYmxlIHRvIGZpbmlzaCBhbGwgeW91ciB3b3JrIGJ5IEZyaWRheT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0FuZCBhYm91dCB3b3JrLCBkbyB5b3UgdGhpbmsgeW914oCZbGwgYmUgYWJsZSB0byBmaW5pc2ggYWxsIHlvdXIgd29yayBieSBGcmlkYXk/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt2b2xra01vbGtrTm9sa2tib2xra1dvbGtrTW9sa2tKb2xra3AmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDUuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3ZvbGtrTW9sa2tOb2xra2JvbGtrV29sa2tNb2xra0pvbGtrcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0RvbuKAmXQgd29ycnkgYWJvdXQgaXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDNfMTNhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7RG9u4oCZdCB3b3JyeSBhYm91dCBpdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDNfMTNhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3ZvbGtrTW9sa2tOb2xra2JvbGtrV29sa2tNb2xra0pvbGtrcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0hvbmVzdGx5LCBJ4oCZbSBub3Qgc3VyZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M18xM2ImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtIb25lc3RseSwgSeKAmW0gbm90IHN1cmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQzXzEzYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI4NiIgbmFtZT0iQW5uaWVDaGF0M18xM2EiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwxMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQzXzEzYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtEb27igJl0IHdvcnJ5IGFib3V0IGl0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RG9u4oCZdCB3b3JyeSBhYm91dCBpdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7RG9u4oCZdCB3b3JyeSBhYm91dCBpdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkZG9tc3ViID0gJGRvbXN1YisxJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3pvbGtrb29sa2tXb2xra1FvbGtrbm9sa2tqb2xra3JvbGtrbCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjem9sa2tvb2xra1dvbGtrUW9sa2tub2xra2pvbGtrcm9sa2tsJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SeKAmW0gZ29pbmcgdG8gZ2V0IGl0IGRvbmUgYnkgRnJpZGF5LCBubyBtYXR0ZXIgd2hhdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M18xNGEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJ4oCZbSBnb2luZyB0byBnZXQgaXQgZG9uZSBieSBGcmlkYXksIG5vIG1hdHRlciB3aGF0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0M18xNGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iODciIG5hbWU9IkFubmllQ2hhdDNfMTNiIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMTEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0M18xM2ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SG9uZXN0bHksIEnigJltIG5vdCBzdXJlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SG9uZXN0bHksIEnigJltIG5vdCBzdXJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIb25lc3RseSwgSeKAmW0gbm90IHN1cmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGRvbXN1YiA9ICRkb21zdWItMSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtKb2xra0dvbGtrem9sa2tGb2xra3FvbGtrUm9sa2tYb2xra1cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0pvbGtrR29sa2t6b2xra0ZvbGtrcW9sa2tSb2xra1hvbGtrVyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0J1dCBJ4oCZbGwgZG8gbXkgYmVzdCB0byBtYWtlIGl0IGhhcHBlbiZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M18xNGImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtCdXQgSeKAmWxsIGRvIG15IGJlc3QgdG8gbWFrZSBpdCBoYXBwZW4mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQzXzE0YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI4OCIgbmFtZT0iQW5uaWVDaGF0M18xNGEiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSwxMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQzXzE0YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJ4oCZbSBnb2luZyB0byBnZXQgaXQgZG9uZSBieSBGcmlkYXksIG5vIG1hdHRlciB3aGF0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gZ29pbmcgdG8gZ2V0IGl0IGRvbmUgYnkgRnJpZGF5LCBubyBtYXR0ZXIgd2hhdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmW0gZ29pbmcgdG8gZ2V0IGl0IGRvbmUgYnkgRnJpZGF5LCBubyBtYXR0ZXIgd2hhdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJltIGdsYWQgdG8gaGVhciB0aGF0JnF1b3Q7ICZxdW90O1VvbGtrTW9sa2tQb2xra2ZvbGtreG9sa2tPb2xra1JvbGtrQm9sa2tKb2xra0RvbGtrdm9sa2tZb2xra2lvbGtrYW9sa2twb2xra3MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gZ2xhZCB0byBoZWFyIHRoYXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJltIGdsYWQgdG8gaGVhciB0aGF0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtZb3Uga25vdyBJIGJlbGlldmUgaW4geW91JnF1b3Q7ICZxdW90O3dvbGtreG9sa2tab2xra1BvbGtraW9sa2t2b2xra2JvbGtrcG9sa2tPb2xra2FvbGtrT29sa2tpb2xra25vbGtrRm9sa2ttb2xra0MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGtub3cgSSBiZWxpZXZlIGluIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW91IGtub3cgSSBiZWxpZXZlIGluIHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjZzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtnb2xra05vbGtrUG9sa2tyb2xra2VvbGtrdm9sa2tZb2xra3ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2dvbGtrTm9sa2tQb2xra3JvbGtrZW9sa2t2b2xra1lvbGtrciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgbG92ZSB5b3UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDNfMTVhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBsb3ZlIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDNfMTVhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9Ijg5IiBuYW1lPSJBbm5pZUNoYXQzXzE0YiIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwxMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQzXzE0YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtCdXQgSeKAmWxsIGRvIG15IGJlc3QgdG8gbWFrZSBpdCBoYXBwZW4mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgSeKAmWxsIGRvIG15IGJlc3QgdG8gbWFrZSBpdCBoYXBwZW4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0J1dCBJ4oCZbGwgZG8gbXkgYmVzdCB0byBtYWtlIGl0IGhhcHBlbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kga25vdyB5b3Ugd2lsbCZxdW90OyAmcXVvdDtMb2xra0NvbGtrVm9sa2trb2xra21vbGtra29sa2tYb2xra1BvbGtrWW9sa2trb2xra0VvbGtrdm9sa2txb2xra3JvbGtrRW9sa2tGJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kga25vdyB5b3Ugd2lsbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBrbm93IHlvdSB3aWxsJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtZb3XigJl2ZSBhbHdheXMgYmVlbiBzdWNoIGEgaGFyZHdvcmtpbmcgbWFuJnF1b3Q7ICZxdW90O0RvbGtrZ29sa2t5b2xra1RvbGtrVG9sa2tkb2xra2NvbGtrUm9sa2ttb2xra1BvbGtrYW9sa2tYb2xra29vbGtrY29sa2tqb2xra0EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW914oCZdmUgYWx3YXlzIGJlZW4gc3VjaCBhIGhhcmR3b3JraW5nIG1hbiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW914oCZdmUgYWx3YXlzIGJlZW4gc3VjaCBhIGhhcmR3b3JraW5nIG1hbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SXTigJlzIG9uZSBvZiB0aGUgdGhpbmdzIEkgbG92ZSBhYm91dCB5b3UmcXVvdDsgJnF1b3Q7c29sa2tnb2xra1BvbGtrdG9sa2tPb2xra2pvbGtrV29sa2tZb2xra2tvbGtrTG9sa2tUb2xra1hvbGtrUW9sa2t4b2xra0ZvbGtreCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdOKAmXMgb25lIG9mIHRoZSB0aGluZ3MgSSBsb3ZlIGFib3V0IHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SXTigJlzIG9uZSBvZiB0aGUgdGhpbmdzIEkgbG92ZSBhYm91dCB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC4xcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90OyB0cnVlICZxdW90O0FubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7SG9sa2trb2xra21vbGtraW9sa2tkb2xra1RvbGtrV29sa2tjJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA1LjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNIb2xra2tvbGtrbW9sa2tpb2xra2RvbGtrVG9sa2tXb2xra2MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGxvdmUgeW91LCBBbm5pZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M18xNWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGxvdmUgeW91LCBBbm5pZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDNfMTViJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjkwIiBuYW1lPSJBbm5pZUNoYXQzXzE1YSIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSwxMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQzXzE1YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGxvdmUgeW91JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBsb3ZlIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBsb3ZlIHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgbG92ZSB5b3UgbW9yZSZxdW90OyAmcXVvdDtlb2xra0lvbGtraG9sa2thb2xra2xvbGtrQ29sa2tJb2xra2xvbGtrSG9sa2tPb2xra3ZvbGtrdW9sa2tHb2xra2RvbGtrYm9sa2taJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbG92ZSB5b3UgbW9yZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBsb3ZlIHlvdSBtb3JlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbG92ZSB5b3UgbW9yZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgPSAmcXVvdDtBbm5pZUNoYXQzXzhhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2xhc3RfaG91ciA9ICZxdW90OzExOjU4JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXQgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRob3VyID0gJnF1b3Q7MTE6NTgmcXVvdDsmZ3Q7Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O29mZmxpbmUtdGV4dCZxdW90OyZndDtBbm5pZSBpcyBvZmZsaW5lJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtIZXkgJG5hbWUsIGhvd+KAmXMgZXZlcnl0aGluZz8mcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJFZhbmVzc2FfdmlzaWJsZSA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdCA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdFN0YXRlID0gJnF1b3Q7VmFuZXNzYUludHJvMSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI5MSIgbmFtZT0iQW5uaWVDaGF0M18xNWIiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCwxMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQzXzE1YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGxvdmUgeW91LCBBbm5pZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbG92ZSB5b3UsIEFubmllJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGxvdmUgeW91LCBBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtIb2xra0hvbGtrc29sa2tob2xra1NvbGtrU29sa2tpb2xra1UmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0hvbGtrSG9sa2tzb2xra2hvbGtrU29sa2tTb2xra2lvbGtrVSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgZG9u4oCZdCBrbm93IHdoYXQgSeKAmWQgZG8gd2l0aG91dCB5b3UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDNfMTYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGRvbuKAmXQga25vdyB3aGF0IEnigJlkIGRvIHdpdGhvdXQgeW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0M18xNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI5MiIgbmFtZT0iQW5uaWVDaGF0M18xNiIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDEyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDNfMTYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBkb27igJl0IGtub3cgd2hhdCBJ4oCZZCBkbyB3aXRob3V0IHlvdSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZG9u4oCZdCBrbm93IHdoYXQgSeKAmWQgZG8gd2l0aG91dCB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgZG9u4oCZdCBrbm93IHdoYXQgSeKAmWQgZG8gd2l0aG91dCB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGxvdmUgeW91IG1vcmUmcXVvdDsgJnF1b3Q7S29sa2tOb2xra2lvbGtrSm9sa2tDb2xra1VvbGtrTG9sa2tZb2xra0NvbGtrYW9sa2t1b2xra2RvbGtrTm9sa2tkb2xra1VvbGtrciZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGxvdmUgeW91IG1vcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbG92ZSB5b3UgbW9yZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGxvdmUgeW91IG1vcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVDaGF0M184YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0X2hvdXIgPSAmcXVvdDsxMTo1OCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzExOjU4JnF1b3Q7Jmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtvZmZsaW5lLXRleHQmcXVvdDsmZ3Q7QW5uaWUgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX25vdGVzLnB1c2goJnF1b3Q7QW5uaWUgdG9sZCBtZSBzaGXigJlsbCBkbyBldmVyeXRoaW5nIHNoZSBjYW4gdG8gbWFrZSBtZSBoYXBweSBhbmQgd2lsbCB0cnkgdG8gbWFrZSBhbiBlZmZvcnQgdG8gZnVsZmlsbCBteSBmYW50YXN5LiZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtIZXkgJG5hbWUsIGhvd+KAmXMgZXZlcnl0aGluZz8mcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJFZhbmVzc2FfdmlzaWJsZSA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdCA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdFN0YXRlID0gJnF1b3Q7VmFuZXNzYUludHJvMSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI5MyIgbmFtZT0iQW5uaWVDaGF0RXAyXzFfMSIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDEyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SG9uZXksIGhvd+KAmXMgZXZlcnl0aGluZyBnb2luZyBvdmVyIHRoZXJlPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SG9uZXksIGhvd+KAmXMgZXZlcnl0aGluZyBnb2luZyBvdmVyIHRoZXJlPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SG9uZXksIGhvd+KAmXMgZXZlcnl0aGluZyBnb2luZyBvdmVyIHRoZXJlPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O09vbGtrcW9sa2t4b2xra2hvbGtrSW9sa2ttb2xra1FvbGtrZCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjT29sa2txb2xra3hvbGtraG9sa2tJb2xra21vbGtrUW9sa2tkJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7U3RpbGwgd29ya2luZyBvbiB0aGUgcmVwb3J0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMV8yJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7U3RpbGwgd29ya2luZyBvbiB0aGUgcmVwb3J0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzFfMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9Ijk0IiBuYW1lPSJBbm5pZUNoYXRFcDJfMV8yIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMTIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzFfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtTdGlsbCB3b3JraW5nIG9uIHRoZSByZXBvcnQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTdGlsbCB3b3JraW5nIG9uIHRoZSByZXBvcnQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1N0aWxsIHdvcmtpbmcgb24gdGhlIHJlcG9ydCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtWb2xra3JvbGtraG9sa2trb2xra0VvbGtraW9sa2tob2xra28mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1ZvbGtrcm9sa2tob2xra2tvbGtrRW9sa2tpb2xra2hvbGtrbyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1doYXQgYWJvdXQgeW91PyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzFfMyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1doYXQgYWJvdXQgeW91PyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8xXzMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iOTUiIG5hbWU9IkFubmllQ2hhdEVwMl8xXzMiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwxMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMV8zJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1doYXQgYWJvdXQgeW91PyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1doYXQgYWJvdXQgeW91PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V2hhdCBhYm91dCB5b3U/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7V2VsbCwgSeKAmW0gb24gbXkgYnJlYWsgcmlnaHQgbm93JnF1b3Q7ICZxdW90O1FvbGtrWW9sa2tMb2xra3pvbGtram9sa2tSb2xra1ZvbGtrUW9sa2tVb2xra0JvbGtrem9sa2tmb2xra2tvbGtrbW9sa2tJb2xra3QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2VsbCwgSeKAmW0gb24gbXkgYnJlYWsgcmlnaHQgbm93JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtXZWxsLCBJ4oCZbSBvbiBteSBicmVhayByaWdodCBub3cmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1RoZSBnaXJscyBzYXkgaGkmcXVvdDsgJnF1b3Q7WW9sa2tBb2xra2xvbGtrRG9sa2t0b2xra3dvbGtrVm9sa2t4b2xra0VvbGtrZW9sa2tZb2xra2hvbGtrRm9sa2tzb2xra1VvbGtrYSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGUgZ2lybHMgc2F5IGhpJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUaGUgZ2lybHMgc2F5IGhpJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMXMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfaW1nICZxdW90O2Fzc2V0cy9pbWcvZXAyL2FubmllX3Bob3RvXzMud2VicCZxdW90OyB0cnVlICZxdW90O2xvbGtrUW9sa2tQb2xra3pvbGtrc29sa2tZb2xra3lvbGtrSm9sa2tMb2xra3hvbGtrT29sa2tGb2xra2hvbGtrYW9sa2tOb2xra3EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMiwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lcDIvYW5uaWVfcGhvdG9fMy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkcGhvdG9zLnB1c2goJnF1b3Q7YXNzZXRzL2ltZy9lcDIvYW5uaWVfcGhvdG9fMy53ZWJwJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7UG9sa2tSb2xra1JvbGtrb29sa2tMb2xra1hvbGtrd29sa2tTJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNQb2xra1JvbGtrUm9sa2tvb2xra0xvbGtrWG9sa2t3b2xra1MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUZWxsIHRoZW0gSSBzYXkgaGkgYmFjayZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzFfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RlbGwgdGhlbSBJIHNheSBoaSBiYWNrJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzFfNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI5NiIgbmFtZT0iQW5uaWVDaGF0RXAyXzFfNCIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDEyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8xXzQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGVsbCB0aGVtIEkgc2F5IGhpIGJhY2smcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUZWxsIHRoZW0gSSBzYXkgaGkgYmFjayZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGVsbCB0aGVtIEkgc2F5IGhpIGJhY2smcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4ycyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIHdpbGwmcXVvdDsgJnF1b3Q7eG9sa2tUb2xra3RvbGtrT29sa2tXb2xra3BvbGtrTG9sa2tJb2xra0ZvbGtram9sa2tib2xra3dvbGtrSW9sa2ttb2xra1pvbGtreiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHdpbGwmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgd2lsbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SeKAmW0gYWxyZWFkeSBtaXNzaW5nIHlvdSwgaG9uZXkmcXVvdDsgJnF1b3Q7SG9sa2t6b2xra1VvbGtra29sa2tVb2xra0VvbGtrb29sa2tFb2xra21vbGtrbW9sa2tUb2xra2FvbGtrdW9sa2tRb2xra1VvbGtrcSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBhbHJlYWR5IG1pc3NpbmcgeW91LCBob25leSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmW0gYWxyZWFkeSBtaXNzaW5nIHlvdSwgaG9uZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4ycyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAyLjBzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgc3RpbGwgY2Fu4oCZdCB3cmFwIG15IGhlYWQgYXJvdW5kIHRoZSBmYWN0IHRoYXQgd2hlbiBJIGdldCBob21lIGFmdGVyIHdvcmssIHlvdSB3b27igJl0IGJlIHRoZXJlJnF1b3Q7ICZxdW90O3pvbGtrRG9sa2tCb2xra0JvbGtrWW9sa2tmb2xra0FvbGtrQW9sa2tNb2xra1ZvbGtrbW9sa2tzb2xra3dvbGtrcm9sa2tyb2xra24mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBzdGlsbCBjYW7igJl0IHdyYXAgbXkgaGVhZCBhcm91bmQgdGhlIGZhY3QgdGhhdCB3aGVuIEkgZ2V0IGhvbWUgYWZ0ZXIgd29yaywgeW91IHdvbuKAmXQgYmUgdGhlcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgc3RpbGwgY2Fu4oCZdCB3cmFwIG15IGhlYWQgYXJvdW5kIHRoZSBmYWN0IHRoYXQgd2hlbiBJIGdldCBob21lIGFmdGVyIHdvcmssIHlvdSB3b27igJl0IGJlIHRoZXJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuOHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfY3J5aW5nLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9jcnlpbmcud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1ZvbGtram9sa2t6b2xra1lvbGtrUW9sa2tjb2xra1VvbGtrdyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNS44cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjVm9sa2tqb2xra3pvbGtrWW9sa2tRb2xra2NvbGtrVW9sa2t3JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBtaXNzIHlvdSB0b28mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8xXzVhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBtaXNzIHlvdSB0b28mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMV81YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNWb2xra2pvbGtrem9sa2tZb2xra1FvbGtrY29sa2tVb2xra3cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJdOKAmXMgb25seSBmb3IgYSBsaXR0bGUgd2hpbGUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8xXzViJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SXTigJlzIG9ubHkgZm9yIGEgbGl0dGxlIHdoaWxlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzFfNWImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iOTciIG5hbWU9IkFubmllQ2hhdEVwMl8xXzVhIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMTIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzFfNWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBtaXNzIHlvdSB0b28mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIG1pc3MgeW91IHRvbyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBtaXNzIHlvdSB0b28mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGFubmllX3JvbWFuY2UgPSAkYW5uaWVfcm9tYW5jZSsxJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3VvbGtrZG9sa2tlb2xra1JvbGtrWm9sa2tIb2xra0VvbGtrTiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjdW9sa2tkb2xra2VvbGtrUm9sa2tab2xra0hvbGtrRW9sa2tOJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q78J+YpSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzFfNmEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDvwn5ilJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzFfNmEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iOTgiIG5hbWU9IkFubmllQ2hhdEVwMl8xXzViIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMTIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzFfNWImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SXTigJlzIG9ubHkgZm9yIGEgbGl0dGxlIHdoaWxlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXTigJlzIG9ubHkgZm9yIGEgbGl0dGxlIHdoaWxlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJdOKAmXMgb25seSBmb3IgYSBsaXR0bGUgd2hpbGUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7bG9sa2tUb2xra1ZvbGtrT29sa2tSb2xra29vbGtrRW9sa2t3JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNsb2xra1RvbGtrVm9sa2tPb2xra1JvbGtrb29sa2tFb2xra3cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJbiBhIGZldyBtb250aHMsIEnigJlsbCBiZSByaWdodCBiYWNrIGJ5IHlvdXIgc2lkZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzFfNmImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJbiBhIGZldyBtb250aHMsIEnigJlsbCBiZSByaWdodCBiYWNrIGJ5IHlvdXIgc2lkZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8xXzZiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9Ijk5IiBuYW1lPSJBbm5pZUNoYXRFcDJfMV82YSIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwxMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMV82YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX3N0cmVzc2VkLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX3N0cmVzc2VkLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O2pvbGtrQW9sa2tTb2xra3lvbGtrWG9sa2tzb2xra3dvbGtrSiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjam9sa2tBb2xra1NvbGtreW9sa2tYb2xra3NvbGtrd29sa2tKJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QnV0IGhleSwgaXTigJlzIG9ubHkgZm9yIGEgbGl0dGxlIHdoaWxlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMV83YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0J1dCBoZXksIGl04oCZcyBvbmx5IGZvciBhIGxpdHRsZSB3aGlsZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8xXzdhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEwMCIgbmFtZT0iQW5uaWVDaGF0RXAyXzFfNmIiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMTIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzFfNmImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SW4gYSBmZXcgbW9udGhzLCBJ4oCZbGwgYmUgcmlnaHQgYmFjayBieSB5b3VyIHNpZGUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJbiBhIGZldyBtb250aHMsIEnigJlsbCBiZSByaWdodCBiYWNrIGJ5IHlvdXIgc2lkZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SW4gYSBmZXcgbW9udGhzLCBJ4oCZbGwgYmUgcmlnaHQgYmFjayBieSB5b3VyIHNpZGUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGtub3csIGhvbmV5JnF1b3Q7ICZxdW90O2RvbGtrTG9sa2tlb2xra2tvbGtrSW9sa2t2b2xra1JvbGtrUm9sa2tIb2xra0ZvbGtrS29sa2tvb2xra1hvbGtrQm9sa2tZb2xra1YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBrbm93LCBob25leSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBrbm93LCBob25leSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7VGhhdOKAmXMgd2hhdCBrZWVwcyBtZSBnb2luZywga25vd2luZyBpdOKAmXMganVzdCBhIG1hdHRlciBvZiB0aW1lIHVudGlsIHlvdeKAmXJlIGJhY2sgaGVyZSZxdW90OyAmcXVvdDtCb2xra0hvbGtrY29sa2tWb2xra0NvbGtraG9sa2tFb2xra05vbGtrRW9sa2ttb2xra3lvbGtrU29sa2t0b2xra01vbGtrbG9sa2tzJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYXTigJlzIHdoYXQga2VlcHMgbWUgZ29pbmcsIGtub3dpbmcgaXTigJlzIGp1c3QgYSBtYXR0ZXIgb2YgdGltZSB1bnRpbCB5b3XigJlyZSBiYWNrIGhlcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1RoYXTigJlzIHdoYXQga2VlcHMgbWUgZ29pbmcsIGtub3dpbmcgaXTigJlzIGp1c3QgYSBtYXR0ZXIgb2YgdGltZSB1bnRpbCB5b3XigJlyZSBiYWNrIGhlcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0hvbGtra29sa2tGb2xra2hvbGtrVG9sa2t5b2xra2ZvbGtrSiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjSG9sa2trb2xra0ZvbGtraG9sa2tUb2xra3lvbGtrZm9sa2tKJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7T2YgY291cnNlIGJhYmUuIEJlZm9yZSB5b3Uga25vdyBpdCwgSeKAmWxsIGJlIHRoZXJlIHdpdGggeW91JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMV84JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7T2YgY291cnNlIGJhYmUuIEJlZm9yZSB5b3Uga25vdyBpdCwgSeKAmWxsIGJlIHRoZXJlIHdpdGggeW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzFfOCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMDEiIG5hbWU9IkFubmllQ2hhdEVwMl8xXzdhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMTM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzFfN2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7QnV0IGhleSwgaXTigJlzIG9ubHkgZm9yIGEgbGl0dGxlIHdoaWxlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IGhleSwgaXTigJlzIG9ubHkgZm9yIGEgbGl0dGxlIHdoaWxlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCdXQgaGV5LCBpdOKAmXMgb25seSBmb3IgYSBsaXR0bGUgd2hpbGUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGtub3csIGhvbmV5JnF1b3Q7ICZxdW90O2ZvbGtrWm9sa2tib2xra3NvbGtrZ29sa2ttb2xra3FvbGtrcm9sa2tEb2xra01vbGtrem9sa2tVb2xra2VvbGtrVm9sa2tNb2xra2UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBrbm93LCBob25leSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBrbm93LCBob25leSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7VGhhdOKAmXMgd2hhdCBrZWVwcyBtZSBnb2luZywga25vd2luZyBpdOKAmXMganVzdCBhIG1hdHRlciBvZiB0aW1lIHVudGlsIHlvdeKAmXJlIGJhY2sgaGVyZSZxdW90OyAmcXVvdDtmb2xra29vbGtrT29sa2ttb2xra1ZvbGtrYW9sa2tVb2xra1dvbGtrQm9sa2t5b2xra1NvbGtrSm9sa2tVb2xra3NvbGtrQW9sa2tzJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYXTigJlzIHdoYXQga2VlcHMgbWUgZ29pbmcsIGtub3dpbmcgaXTigJlzIGp1c3QgYSBtYXR0ZXIgb2YgdGltZSB1bnRpbCB5b3XigJlyZSBiYWNrIGhlcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1RoYXTigJlzIHdoYXQga2VlcHMgbWUgZ29pbmcsIGtub3dpbmcgaXTigJlzIGp1c3QgYSBtYXR0ZXIgb2YgdGltZSB1bnRpbCB5b3XigJlyZSBiYWNrIGhlcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0lvbGtrVW9sa2tib2xra2RvbGtrZW9sa2tYb2xra1dvbGtrRyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjSW9sa2tVb2xra2JvbGtrZG9sa2tlb2xra1hvbGtrV29sa2tHJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7T2YgY291cnNlIGJhYmUuIEJlZm9yZSB5b3Uga25vdyBpdCwgSeKAmWxsIGJlIHRoZXJlIHdpdGggeW91JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMV84JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7T2YgY291cnNlIGJhYmUuIEJlZm9yZSB5b3Uga25vdyBpdCwgSeKAmWxsIGJlIHRoZXJlIHdpdGggeW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzFfOCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMDIiIG5hbWU9IkFubmllQ2hhdEVwMl8xXzgiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSwxMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMV84JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O09mIGNvdXJzZSBiYWJlLiBCZWZvcmUgeW91IGtub3cgaXQsIEnigJlsbCBiZSB0aGVyZSB3aXRoIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09mIGNvdXJzZSBiYWJlLiBCZWZvcmUgeW91IGtub3cgaXQsIEnigJlsbCBiZSB0aGVyZSB3aXRoIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7T2YgY291cnNlIGJhYmUuIEJlZm9yZSB5b3Uga25vdyBpdCwgSeKAmWxsIGJlIHRoZXJlIHdpdGggeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtPaCwgYnkgdGhlIHdheS4uLiZxdW90OyAmcXVvdDtJb2xra01vbGtraW9sa2tlb2xra2lvbGtrTG9sa2t0b2xra3BvbGtrS29sa2tVb2xra3pvbGtrbm9sa2tPb2xra01vbGtrRm9sa2toJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09oLCBieSB0aGUgd2F5Li4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtPaCwgYnkgdGhlIHdheS4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7VGhlcmXigJlzIHNvbWV0aGluZyBJIHdhbnRlZCB0byBhc2sgeW91JnF1b3Q7ICZxdW90O1VvbGtrWW9sa2tBb2xra0JvbGtrZG9sa2tVb2xra1hvbGtrU29sa2twb2xra1lvbGtrbG9sa2tWb2xra2RvbGtrdm9sa2tRb2xra08mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhlcmXigJlzIHNvbWV0aGluZyBJIHdhbnRlZCB0byBhc2sgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUaGVyZeKAmXMgc29tZXRoaW5nIEkgd2FudGVkIHRvIGFzayB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1RoZSBnaXJscyB3YW50IHRvIGdvIG91dCB0b21vcnJvdyBuaWdodCZxdW90OyAmcXVvdDtYb2xra3VvbGtrZG9sa2t5b2xra25vbGtrUW9sa2tBb2xra29vbGtrVG9sa2tQb2xra0xvbGtreG9sa2tFb2xra1BvbGtraG9sa2tPJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoZSBnaXJscyB3YW50IHRvIGdvIG91dCB0b21vcnJvdyBuaWdodCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhlIGdpcmxzIHdhbnQgdG8gZ28gb3V0IHRvbW9ycm93IG5pZ2h0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDUuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtUbyBiZSBtb3JlIHNwZWNpZmljYWxseSwgTmFvbWkgd2FudHMgdG8gaGl0IGEgbmlnaHRjbHViJnF1b3Q7ICZxdW90O1JvbGtrYm9sa2t6b2xra3BvbGtrUW9sa2tQb2xra2tvbGtrdG9sa2tib2xra3NvbGtrZm9sa2t3b2xra2lvbGtrTW9sa2tjb2xra0EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VG8gYmUgbW9yZSBzcGVjaWZpY2FsbHksIE5hb21pIHdhbnRzIHRvIGhpdCBhIG5pZ2h0Y2x1YiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VG8gYmUgbW9yZSBzcGVjaWZpY2FsbHksIE5hb21pIHdhbnRzIHRvIGhpdCBhIG5pZ2h0Y2x1YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA2LjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuM3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SeKAmXZlIG5ldmVyIHJlYWxseSB0aG91Z2h0IGFib3V0IGdvaW5nIHRvIGEgcGxhY2UgbGlrZSB0aGF0IHdpdGhvdXQgeW91JnF1b3Q7ICZxdW90O3hvbGtreG9sa2tRb2xra1NvbGtrTG9sa2t1b2xra3NvbGtrTG9sa2tpb2xra1lvbGtreW9sa2tPb2xra0xvbGtrY29sa2tJb2xra1gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmXZlIG5ldmVyIHJlYWxseSB0aG91Z2h0IGFib3V0IGdvaW5nIHRvIGEgcGxhY2UgbGlrZSB0aGF0IHdpdGhvdXQgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJ4oCZdmUgbmV2ZXIgcmVhbGx5IHRob3VnaHQgYWJvdXQgZ29pbmcgdG8gYSBwbGFjZSBsaWtlIHRoYXQgd2l0aG91dCB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgOC41cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0J1dCBjb25zaWRlcmluZyB3aGF0IHlvdSB0b2xkIG1lLi4uJnF1b3Q7ICZxdW90O3BvbGtrRm9sa2tPb2xra0NvbGtrZW9sa2tpb2xra0tvbGtrU29sa2tkb2xra1BvbGtrcm9sa2tUb2xra21vbGtrRm9sa2t3b2xra0MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IGNvbnNpZGVyaW5nIHdoYXQgeW91IHRvbGQgbWUuLi4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0J1dCBjb25zaWRlcmluZyB3aGF0IHlvdSB0b2xkIG1lLi4uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtyb2xra0xvbGtrcG9sa2tEb2xra3NvbGtrem9sa2t4b2xra0omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDkuN3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3JvbGtrTG9sa2twb2xra0RvbGtrc29sa2t6b2xra3hvbGtrSiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O09mIGNvdXJzZSwgeW91IHNob3VsZCBnbyBvdXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8xXzlhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7T2YgY291cnNlLCB5b3Ugc2hvdWxkIGdvIG91dCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8xXzlhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3JvbGtrTG9sa2twb2xra0RvbGtrc29sa2t6b2xra3hvbGtrSiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0lmIHlvdSB3YW50IHRvLCBJIHRoaW5rIGl04oCZcyBmaW5lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMV85YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0lmIHlvdSB3YW50IHRvLCBJIHRoaW5rIGl04oCZcyBmaW5lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzFfOWImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTAzIiBuYW1lPSJBbm5pZUNoYXRFcDJfMV85YSIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDEzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8xXzlhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRkb21zdWIgPSAkZG9tc3ViKzEmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O09mIGNvdXJzZSwgeW91IHNob3VsZCBnbyBvdXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPZiBjb3Vyc2UsIHlvdSBzaG91bGQgZ28gb3V0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtPZiBjb3Vyc2UsIHlvdSBzaG91bGQgZ28gb3V0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7RG9u4oCZdCBnZXQgbWUgd3JvbmcuLi4mcXVvdDsgJnF1b3Q7d29sa2tWb2xra0ZvbGtrT29sa2tab2xra3JvbGtrU29sa2tpb2xra0ZvbGtrQ29sa2tpb2xra05vbGtrem9sa2t3b2xra1NvbGtrZyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEb27igJl0IGdldCBtZSB3cm9uZy4uLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7RG9u4oCZdCBnZXQgbWUgd3JvbmcuLi4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJltIG5vdCBzYXlpbmcgSSB3b3VsZCBiZSB3aXRoIGFub3RoZXIgZ3V5IG9yIGFueXRoaW5nJnF1b3Q7ICZxdW90O0ZvbGtrcW9sa2tzb2xra2JvbGtrYm9sa2tZb2xra21vbGtrTG9sa2tWb2xra1pvbGtrc29sa2tib2xra2pvbGtrQW9sa2t6b2xra2ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gbm90IHNheWluZyBJIHdvdWxkIGJlIHdpdGggYW5vdGhlciBndXkgb3IgYW55dGhpbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJltIG5vdCBzYXlpbmcgSSB3b3VsZCBiZSB3aXRoIGFub3RoZXIgZ3V5IG9yIGFueXRoaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJ4oCZZCBqdXN0IGJlIGdvaW5nIG91dCB3aXRoIG15IGZyaWVuZHMmcXVvdDsgJnF1b3Q7am9sa2tJb2xra1RvbGtrSG9sa2ttb2xra0hvbGtrQW9sa2tjb2xra2lvbGtrYW9sa2tFb2xra0tvbGtrRm9sa2thb2xra1NvbGtrdSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZZCBqdXN0IGJlIGdvaW5nIG91dCB3aXRoIG15IGZyaWVuZHMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJlkIGp1c3QgYmUgZ29pbmcgb3V0IHdpdGggbXkgZnJpZW5kcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7U29sa2tBb2xra29vbGtrVG9sa2tQb2xra1dvbGtrUW9sa2tzJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjRzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNTb2xra0FvbGtrb29sa2tUb2xra1BvbGtrV29sa2tRb2xra3MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGdldCBpdC4gWW91IGhhdmVu4oCZdCBnb25lIG91dCBpbiBhIHdoaWxlLCB5b3Ugc2hvdWxkIGVuam95IHlvdXJzZWxmIHdpdGggeW91ciBmcmllbmRzJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMV8xMCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgZ2V0IGl0LiBZb3UgaGF2ZW7igJl0IGdvbmUgb3V0IGluIGEgd2hpbGUsIHlvdSBzaG91bGQgZW5qb3kgeW91cnNlbGYgd2l0aCB5b3VyIGZyaWVuZHMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMV8xMCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMDQiIG5hbWU9IkFubmllQ2hhdEVwMl8xXzliIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMTM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzFfOWImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGRvbXN1YiA9ICRkb21zdWItMSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SWYgeW91IHdhbnQgdG8sIEkgdGhpbmsgaXTigJlzIGZpbmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJZiB5b3Ugd2FudCB0bywgSSB0aGluayBpdOKAmXMgZmluZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SWYgeW91IHdhbnQgdG8sIEkgdGhpbmsgaXTigJlzIGZpbmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtEb27igJl0IGdldCBtZSB3cm9uZy4uLiZxdW90OyAmcXVvdDt5b2xra09vbGtrb29sa2tWb2xra2tvbGtrQ29sa2tDb2xra3ZvbGtrcG9sa2tub2xra0NvbGtrRm9sa2t6b2xra3JvbGtrUW9sa2tzJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0RvbuKAmXQgZ2V0IG1lIHdyb25nLi4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtEb27igJl0IGdldCBtZSB3cm9uZy4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SeKAmW0gbm90IHNheWluZyBJIHdvdWxkIGJlIHdpdGggYW5vdGhlciBndXkgb3IgYW55dGhpbmcmcXVvdDsgJnF1b3Q7ZW9sa2tsb2xra2dvbGtrbm9sa2tSb2xra0RvbGtrUG9sa2t6b2xra1JvbGtrcG9sa2t3b2xra1BvbGtraG9sa2t5b2xra2VvbGtrayZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBub3Qgc2F5aW5nIEkgd291bGQgYmUgd2l0aCBhbm90aGVyIGd1eSBvciBhbnl0aGluZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmW0gbm90IHNheWluZyBJIHdvdWxkIGJlIHdpdGggYW5vdGhlciBndXkgb3IgYW55dGhpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJlkIGp1c3QgYmUgZ29pbmcgb3V0IHdpdGggbXkgZnJpZW5kcyZxdW90OyAmcXVvdDtHb2xra3pvbGtrVG9sa2tVb2xra1ZvbGtrT29sa2tMb2xra01vbGtreW9sa2tLb2xra1lvbGtrU29sa2tob2xra3dvbGtrcW9sa2tpJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJlkIGp1c3QgYmUgZ29pbmcgb3V0IHdpdGggbXkgZnJpZW5kcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmWQganVzdCBiZSBnb2luZyBvdXQgd2l0aCBteSBmcmllbmRzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtab2xra0lvbGtraG9sa2txb2xra3pvbGtrSW9sa2t3b2xra1cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuNHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1pvbGtrSW9sa2tob2xra3FvbGtrem9sa2tJb2xra3dvbGtrVyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgZ2V0IGl0LiBZb3UgaGF2ZW7igJl0IGdvbmUgb3V0IGluIGEgd2hpbGUsIHlvdSBzaG91bGQgZW5qb3kgeW91cnNlbGYgd2l0aCB5b3VyIGZyaWVuZHMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8xXzEwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBnZXQgaXQuIFlvdSBoYXZlbuKAmXQgZ29uZSBvdXQgaW4gYSB3aGlsZSwgeW91IHNob3VsZCBlbmpveSB5b3Vyc2VsZiB3aXRoIHlvdXIgZnJpZW5kcyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8xXzEwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEwNSIgbmFtZT0iQW5uaWVDaGF0RXAyXzFfMTAiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwxMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMV8xMCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGdldCBpdC4gWW91IGhhdmVu4oCZdCBnb25lIG91dCBpbiBhIHdoaWxlLCB5b3Ugc2hvdWxkIGVuam95IHlvdXJzZWxmIHdpdGggeW91ciBmcmllbmRzJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBnZXQgaXQuIFlvdSBoYXZlbuKAmXQgZ29uZSBvdXQgaW4gYSB3aGlsZSwgeW91IHNob3VsZCBlbmpveSB5b3Vyc2VsZiB3aXRoIHlvdXIgZnJpZW5kcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBnZXQgaXQuIFlvdSBoYXZlbuKAmXQgZ29uZSBvdXQgaW4gYSB3aGlsZSwgeW91IHNob3VsZCBlbmpveSB5b3Vyc2VsZiB3aXRoIHlvdXIgZnJpZW5kcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1RoYW5rcyBob25leSwgeW914oCZcmUgYWx3YXlzIHNvIHVuZGVyc3RhbmRpbmcmcXVvdDsgJnF1b3Q7UW9sa2tab2xra2xvbGtrVW9sa2tyb2xra1RvbGtrbm9sa2tGb2xra2JvbGtrS29sa2t4b2xra1BvbGtrT29sa2tSb2xra0FvbGtrSCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGFua3MgaG9uZXksIHlvdeKAmXJlIGFsd2F5cyBzbyB1bmRlcnN0YW5kaW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUaGFua3MgaG9uZXksIHlvdeKAmXJlIGFsd2F5cyBzbyB1bmRlcnN0YW5kaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNXMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1JvbGtrSG9sa2tSb2xra1dvbGtreG9sa2thb2xra3BvbGtrWCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi41cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjUm9sa2tIb2xra1JvbGtrV29sa2t4b2xra2FvbGtrcG9sa2tYJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBsb3ZlIHlvdSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzFfMTFhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBsb3ZlIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8xXzExYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNSb2xra0hvbGtrUm9sa2tXb2xra3hvbGtrYW9sa2twb2xra1gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDvwn6WwJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMV8xMWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDvwn6WwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzFfMTFiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEwNiIgbmFtZT0iQW5uaWVDaGF0RXAyXzFfMTFhIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsMTM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzFfMTFhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgbG92ZSB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGxvdmUgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGxvdmUgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7VGhlIGJyZWFr4oCZcyBhbG1vc3Qgb3ZlciZxdW90OyAmcXVvdDt0b2xra2lvbGtrRm9sa2trb2xra0tvbGtraG9sa2tIb2xra0lvbGtrbW9sa2tPb2xra3BvbGtrZG9sa2tVb2xra05vbGtrWG9sa2tBJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoZSBicmVha+KAmXMgYWxtb3N0IG92ZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1RoZSBicmVha+KAmXMgYWxtb3N0IG92ZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1dlIGhhdmUgdG8gZ28gYmFjayB0byB0aGUgb2ZmaWNlJnF1b3Q7ICZxdW90O2NvbGtrbm9sa2tvb2xra3JvbGtrZm9sa2tGb2xra0lvbGtrS29sa2trb2xra25vbGtrV29sa2tzb2xra21vbGtrTm9sa2tWb2xra2UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2UgaGF2ZSB0byBnbyBiYWNrIHRvIHRoZSBvZmZpY2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1dlIGhhdmUgdG8gZ28gYmFjayB0byB0aGUgb2ZmaWNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtob2xra1NvbGtrRm9sa2tab2xra1NvbGtrcG9sa2tmb2xra3kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuN3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2hvbGtrU29sa2tGb2xra1pvbGtrU29sa2twb2xra2ZvbGtreSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1llYWgsIEnigJl2ZSBnb3QgdG8ga2VlcCB3b3JraW5nIHRvbyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzFfMTImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZZWFoLCBJ4oCZdmUgZ290IHRvIGtlZXAgd29ya2luZyB0b28mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMV8xMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMDciIG5hbWU9IkFubmllQ2hhdEVwMl8xXzExYiIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDEzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8xXzExYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7WW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtUaGUgYnJlYWvigJlzIGFsbW9zdCBvdmVyJnF1b3Q7ICZxdW90O3pvbGtrUm9sa2tTb2xra2hvbGtrRm9sa2tNb2xra2xvbGtrZG9sa2tRb2xra1lvbGtrUW9sa2thb2xra3FvbGtrZG9sa2tZb2xra3YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhlIGJyZWFr4oCZcyBhbG1vc3Qgb3ZlciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhlIGJyZWFr4oCZcyBhbG1vc3Qgb3ZlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7V2UgaGF2ZSB0byBnbyBiYWNrIHRvIHRoZSBvZmZpY2UmcXVvdDsgJnF1b3Q7bm9sa2tub2xra2JvbGtrZW9sa2tmb2xra01vbGtrY29sa2tob2xra2FvbGtrWG9sa2tyb2xra2pvbGtrd29sa2t0b2xra0VvbGtrTyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZSBoYXZlIHRvIGdvIGJhY2sgdG8gdGhlIG9mZmljZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V2UgaGF2ZSB0byBnbyBiYWNrIHRvIHRoZSBvZmZpY2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3VvbGtrUm9sa2tmb2xra2RvbGtraW9sa2tsb2xra3BvbGtrUSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjdW9sa2tSb2xra2ZvbGtrZG9sa2tpb2xra2xvbGtrcG9sa2tRJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WWVhaCwgSeKAmXZlIGdvdCB0byBrZWVwIHdvcmtpbmcgdG9vJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMV8xMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llYWgsIEnigJl2ZSBnb3QgdG8ga2VlcCB3b3JraW5nIHRvbyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8xXzEyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEwOCIgbmFtZT0iQW5uaWVDaGF0RXAyXzFfMTIiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSwxMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMV8xMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZZWFoLCBJ4oCZdmUgZ290IHRvIGtlZXAgd29ya2luZyB0b28mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLCBJ4oCZdmUgZ290IHRvIGtlZXAgd29ya2luZyB0b28mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1llYWgsIEnigJl2ZSBnb3QgdG8ga2VlcCB3b3JraW5nIHRvbyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtDb2xra0xvbGtrcG9sa2tvb2xra0NvbGtrZG9sa2tzb2xra1cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0NvbGtrTG9sa2twb2xra29vbGtrQ29sa2tkb2xra3NvbGtrVyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1dl4oCZbGwgdGFsayBsYXRlciZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzFfMTMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXZeKAmWxsIHRhbGsgbGF0ZXImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMV8xMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMDkiIG5hbWU9IkFubmllQ2hhdEVwMl8xXzEzIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDEzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8xXzEzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1dl4oCZbGwgdGFsayBsYXRlciZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dl4oCZbGwgdGFsayBsYXRlciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V2XigJlsbCB0YWxrIGxhdGVyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7UGVyZmVjdCBob25leSZxdW90OyAmcXVvdDtzb2xra2lvbGtrTW9sa2tlb2xra2xvbGtrbW9sa2tXb2xra1ZvbGtrVG9sa2tjb2xra2xvbGtreG9sa2thb2xra2JvbGtrbW9sa2tsJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1BlcmZlY3QgaG9uZXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1BlcmZlY3QgaG9uZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJlsbCB0ZXh0IHlvdSBhZnRlciB3b3JrJnF1b3Q7ICZxdW90O0VvbGtrc29sa2tEb2xra2xvbGtrUG9sa2tUb2xra2lvbGtrRG9sa2tEb2xra01vbGtrT29sa2tLb2xra3VvbGtrbW9sa2tRb2xra0kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmWxsIHRleHQgeW91IGFmdGVyIHdvcmsmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJlsbCB0ZXh0IHlvdSBhZnRlciB3b3JrJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMnMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMy4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q78J+lsCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMV8xMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0X2hvdXIgPSAmcXVvdDsxNzo0NiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzE3OjQ2JnF1b3Q7Jmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtvZmZsaW5lLXRleHQmcXVvdDsmZ3Q7QW5uaWUgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjJzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX25vdGVzLnB1c2goJnF1b3Q7QW5uaWUgYXNrZWQgbWUgaWYgSSB3YXMgb2theSB3aXRoIGhlciBnb2luZyBvdXQgd2l0aCBoZXIgZnJpZW5kcyB0aGUgbmV4dCBuaWdodC4gT2YgY291cnNlLCBJIHRvbGQgaGVyIHllcy4mcXVvdDspJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjJzJmd0OyZndDsKJmx0OyZsdDtpZiAkbmFvbWlfb2ZmZXIgPT0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkTmFvbWlfY2hhdCA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4ycyZndDsmZ3Q7CiZsdDsmbHQ7aWYgJG5hb21pX29mZmVyID09IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRTdGF0ZSA9ICZxdW90O05hb21pQ2hhdEVwMl8xXzEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4ycyZndDsmZ3Q7CiZsdDsmbHQ7aWYgJG5hb21pX29mZmVyID09IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtIZXksIGl04oCZcyBtZSBhZ2Fpbi4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjJzJmd0OyZndDsKJmx0OyZsdDtpZiAkbmFvbWlfb2ZmZXIgPT0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzE0OjQwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMnMmZ3Q7Jmd0OwombHQ7Jmx0O2lmICRuYW9taV9vZmZlciA9PSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nID0gJE5hb21pX2NoYXRMb2cuc2xpY2UoLTUpJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMnMmZ3Q7Jmd0OwombHQ7Jmx0O2lmICRuYW9taV9vZmZlciA9PSB0cnVlJmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXQgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMnMmZ3Q7Jmd0OwombHQ7Jmx0O2lmICRuYW9taV9vZmZlciA9PSB0cnVlJmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4ycyZndDsmZ3Q7CiZsdDsmbHQ7aWYgJG5hb21pX29mZmVyID09IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hleSBob25leSwganVzdCBnb3QgaG9tZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjJzJmd0OyZndDsKJmx0OyZsdDtpZiAkbmFvbWlfb2ZmZXIgPT0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICR0cmFuc2l0aW9uID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjJzJmd0OyZndDsKJmx0OyZsdDtpZiAkbmFvbWlfb2ZmZXIgPT0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICR0cmFuc2l0aW9uVGV4dCA9ICZxdW90O0EgZmV3IGhvdXJzIGxhdGVyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjExMCIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfMSIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSwxMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0hleSBob25leSwganVzdCBnb3QgaG9tZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGV5IGhvbmV5LCBqdXN0IGdvdCBob21lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIZXkgaG9uZXksIGp1c3QgZ290IGhvbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtIb3figJlzIGV2ZXJ5dGhpbmcgZ29pbmcgb3ZlciB0aGVyZT8mcXVvdDsgJnF1b3Q7am9sa2thb2xra0pvbGtrQW9sa2tpb2xra0ZvbGtrS29sa2tpb2xra1RvbGtrSW9sa2tob2xra2JvbGtrc29sa2tTb2xra3BvbGtrSCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIb3figJlzIGV2ZXJ5dGhpbmcgZ29pbmcgb3ZlciB0aGVyZT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hvd+KAmXMgZXZlcnl0aGluZyBnb2luZyBvdmVyIHRoZXJlPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Um9sa2tHb2xra1hvbGtrQm9sa2tXb2xra0hvbGtrWW9sa2tmJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjdzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNSb2xra0dvbGtrWG9sa2tCb2xra1dvbGtrSG9sa2tZb2xra2YmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtTdGlsbCBzdHJlc3NlZCwgd29ya2luZyBvbiB0aGlzJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl8yJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7U3RpbGwgc3RyZXNzZWQsIHdvcmtpbmcgb24gdGhpcyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMTEiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzIiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCwxNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8yJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1N0aWxsIHN0cmVzc2VkLCB3b3JraW5nIG9uIHRoaXMmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTdGlsbCBzdHJlc3NlZCwgd29ya2luZyBvbiB0aGlzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtTdGlsbCBzdHJlc3NlZCwgd29ya2luZyBvbiB0aGlzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2xvbGtrRG9sa2tYb2xra0ZvbGtrUm9sa2tib2xra1hvbGtrcCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjbG9sa2tEb2xra1hvbGtrRm9sa2tSb2xra2JvbGtrWG9sa2twJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QnV0IHRhbGtpbmcgdG8geW91IGhlbHBzIG1lIHJlbGF4JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl8zJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QnV0IHRhbGtpbmcgdG8geW91IGhlbHBzIG1lIHJlbGF4JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMTIiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzMiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSwxNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8zJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0J1dCB0YWxraW5nIHRvIHlvdSBoZWxwcyBtZSByZWxheCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCB0YWxraW5nIHRvIHlvdSBoZWxwcyBtZSByZWxheCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QnV0IHRhbGtpbmcgdG8geW91IGhlbHBzIG1lIHJlbGF4JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt1b2xra0ZvbGtrYW9sa2tTb2xra2pvbGtrQ29sa2tJb2xra2smcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3VvbGtrRm9sa2thb2xra1NvbGtram9sa2tDb2xra0lvbGtrayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1NvLCBob3cgYXJlIHlvdT8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzQmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtTbywgaG93IGFyZSB5b3U/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMTMiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzQiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCwxNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl80JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1NvLCBob3cgYXJlIHlvdT8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTbywgaG93IGFyZSB5b3U/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtTbywgaG93IGFyZSB5b3U/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7WW91IGtub3csIEnigJltIGdvb2QmcXVvdDsgJnF1b3Q7QW9sa2t5b2xra3BvbGtrRG9sa2tZb2xra0VvbGtrd29sa2tDb2xra2RvbGtrWG9sa2tUb2xra1pvbGtrd29sa2tob2xra2NvbGtrWCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3Uga25vdywgSeKAmW0gZ29vZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW91IGtub3csIEnigJltIGdvb2QmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0FsdGhvdWdoIHRvZGF54oCZcyBiZWVuLi4uIGludGVyZXN0aW5nIGJlY2F1c2Ugb2Ygd2hhdCB5b3UgdG9sZCBtZSZxdW90OyAmcXVvdDtKb2xra0lvbGtrSW9sa2tsb2xra3NvbGtrSm9sa2tVb2xra05vbGtrUG9sa2tvb2xra0pvbGtrdG9sa2tBb2xra21vbGtrVG9sa2tkJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FsdGhvdWdoIHRvZGF54oCZcyBiZWVuLi4uIGludGVyZXN0aW5nIGJlY2F1c2Ugb2Ygd2hhdCB5b3UgdG9sZCBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QWx0aG91Z2ggdG9kYXnigJlzIGJlZW4uLi4gaW50ZXJlc3RpbmcgYmVjYXVzZSBvZiB3aGF0IHlvdSB0b2xkIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuOXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtBY3R1YWxseSwgdGhhdOKAmXMgd2hhdCBJIHdhbnRlZCB0byB0YWxrIGFib3V0JnF1b3Q7ICZxdW90O0tvbGtrbW9sa2tsb2xra1dvbGtrTW9sa2twb2xra3BvbGtrVm9sa2tRb2xra2dvbGtrQ29sa2tMb2xra2NvbGtrem9sa2tab2xra0kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QWN0dWFsbHksIHRoYXTigJlzIHdoYXQgSSB3YW50ZWQgdG8gdGFsayBhYm91dCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QWN0dWFsbHksIHRoYXTigJlzIHdoYXQgSSB3YW50ZWQgdG8gdGFsayBhYm91dCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QnV0IEkgd2FudCB5b3UgdG8gYmUgaG9uZXN0IHdpdGggbWUsIG9rYXk/JnF1b3Q7ICZxdW90O0RvbGtrZm9sa2t2b2xra3ZvbGtrbG9sa2tBb2xra3hvbGtram9sa2ttb2xra3FvbGtrWG9sa2tIb2xra0hvbGtrSm9sa2tBb2xra2UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IEkgd2FudCB5b3UgdG8gYmUgaG9uZXN0IHdpdGggbWUsIG9rYXk/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCdXQgSSB3YW50IHlvdSB0byBiZSBob25lc3Qgd2l0aCBtZSwgb2theT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2lvbGtrTG9sa2tSb2xra3JvbGtrcm9sa2tZb2xra3hvbGtrYSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNS45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjaW9sa2tMb2xra1JvbGtrcm9sa2tyb2xra1lvbGtreG9sa2thJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7T2YgY291cnNlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl81YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O09mIGNvdXJzZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzVhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2lvbGtrTG9sa2tSb2xra3JvbGtrcm9sa2tZb2xra3hvbGtrYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgaGF2ZSBhbHdheXMgYmVlbiZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfNWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGhhdmUgYWx3YXlzIGJlZW4mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl81YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMTQiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzVhIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMTQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfNWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7T2YgY291cnNlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2YgY291cnNlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtPZiBjb3Vyc2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtIb3cgbG9uZyBoYXZlIHlvdSBiZWVuIHdhbnRpbmcgdG8gdHJ5IOKAnHRoaXPigJ0/JnF1b3Q7ICZxdW90O3dvbGtrVW9sa2tab2xra29vbGtrZm9sa2t1b2xra0pvbGtraW9sa2tab2xra2pvbGtrZm9sa2ttb2xra25vbGtrUG9sa2thb2xra0ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SG93IGxvbmcgaGF2ZSB5b3UgYmVlbiB3YW50aW5nIHRvIHRyeSDigJx0aGlz4oCdPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SG93IGxvbmcgaGF2ZSB5b3UgYmVlbiB3YW50aW5nIHRvIHRyeSDigJx0aGlz4oCdPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7QW9sa2tFb2xra0hvbGtrS29sa2t5b2xra0dvbGtrUG9sa2t6JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjhzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNBb2xra0VvbGtrSG9sa2tLb2xra3lvbGtrR29sa2tQb2xra3omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtGb3IgYSBsb25nIHRpbWUgdG8gYmUgaG9uZXN0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl82YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0ZvciBhIGxvbmcgdGltZSB0byBiZSBob25lc3QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl82YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNBb2xra0VvbGtrSG9sa2tLb2xra3lvbGtrR29sa2tQb2xra3omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtKdXN0IHJlY2VudGx5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl82YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0p1c3QgcmVjZW50bHkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl82YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMTUiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzViIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsMTQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfNWImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGhhdmUgYWx3YXlzIGJlZW4mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgaGF2ZSBhbHdheXMgYmVlbiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBoYXZlIGFsd2F5cyBiZWVuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0hvdyBsb25nIGhhdmUgeW91IGJlZW4gd2FudGluZyB0byB0cnkg4oCcdGhpc+KAnT8mcXVvdDsgJnF1b3Q7UG9sa2t1b2xra0lvbGtrVW9sa2tBb2xra0xvbGtrVG9sa2tob2xra0dvbGtrcG9sa2t1b2xra0VvbGtrWW9sa2tQb2xra09vbGtrYiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIb3cgbG9uZyBoYXZlIHlvdSBiZWVuIHdhbnRpbmcgdG8gdHJ5IOKAnHRoaXPigJ0/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIb3cgbG9uZyBoYXZlIHlvdSBiZWVuIHdhbnRpbmcgdG8gdHJ5IOKAnHRoaXPigJ0/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtOb2xra1ZvbGtrWG9sa2tMb2xra2VvbGtrTG9sa2tob2xra3QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuMXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I05vbGtrVm9sa2tYb2xra0xvbGtrZW9sa2tMb2xra2hvbGtrdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0ZvciBhIGxvbmcgdGltZSB0byBiZSBob25lc3QmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzZhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7Rm9yIGEgbG9uZyB0aW1lIHRvIGJlIGhvbmVzdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzZhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I05vbGtrVm9sa2tYb2xra0xvbGtrZW9sa2tMb2xra2hvbGtrdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0p1c3QgcmVjZW50bHkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzZiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SnVzdCByZWNlbnRseSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzZiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjExNiIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfNmEiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwxNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl82YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtGb3IgYSBsb25nIHRpbWUgdG8gYmUgaG9uZXN0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Rm9yIGEgbG9uZyB0aW1lIHRvIGJlIGhvbmVzdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7Rm9yIGEgbG9uZyB0aW1lIHRvIGJlIGhvbmVzdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgc2VlJnF1b3Q7ICZxdW90O3RvbGtrYm9sa2tUb2xra2tvbGtrS29sa2tmb2xra1BvbGtrYm9sa2tib2xra1RvbGtrTW9sa2tyb2xra0dvbGtram9sa2tKb2xra3QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBzZWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgc2VlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtXaGF04oCZcyB0aGUgbGltaXQ/JnF1b3Q7ICZxdW90O0NvbGtram9sa2tyb2xra3lvbGtrYW9sa2t3b2xra3pvbGtrRm9sa2tab2xra05vbGtrQ29sa2thb2xra3JvbGtrTm9sa2tTb2xra0cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2hhdOKAmXMgdGhlIGxpbWl0PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V2hhdOKAmXMgdGhlIGxpbWl0PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SG93IGZhciB3b3VsZCB5b3Ugd2FudCBtZSB0byBnbyB3aXRoIGFub3RoZXIgZ3V5PyZxdW90OyAmcXVvdDtQb2xra1lvbGtrYm9sa2tOb2xra3hvbGtrV29sa2t5b2xra3NvbGtrSm9sa2t4b2xra1dvbGtrbm9sa2tWb2xra3dvbGtrQm9sa2tuJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvdyBmYXIgd291bGQgeW91IHdhbnQgbWUgdG8gZ28gd2l0aCBhbm90aGVyIGd1eT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hvdyBmYXIgd291bGQgeW91IHdhbnQgbWUgdG8gZ28gd2l0aCBhbm90aGVyIGd1eT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy43cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0RvIHlvdSB3YW50IG1lIHRvIGtpc3Mgb3RoZXIgZ3V5cz8mcXVvdDsgJnF1b3Q7ZG9sa2tRb2xra0ZvbGtrVW9sa2tDb2xra0hvbGtrcm9sa2tXb2xra3dvbGtrT29sa2tLb2xra3BvbGtrZ29sa2t3b2xra1lvbGtrRCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEbyB5b3Ugd2FudCBtZSB0byBraXNzIG90aGVyIGd1eXM/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtEbyB5b3Ugd2FudCBtZSB0byBraXNzIG90aGVyIGd1eXM/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtUb2xra2hvbGtra29sa2t5b2xra3dvbGtrc29sa2tPb2xra3UmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDUuMXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1RvbGtraG9sa2trb2xra3lvbGtrd29sa2tzb2xra09vbGtrdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1llcywgYWJzb2x1dGVseSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfN2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZZXMsIGFic29sdXRlbHkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl83YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNUb2xra2hvbGtra29sa2t5b2xra3dvbGtrc29sa2tPb2xra3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtObywgSSB3b3VsZG7igJl0IHdhbnQgdGhhdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfN2ImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtObywgSSB3b3VsZG7igJl0IHdhbnQgdGhhdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzdiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjExNyIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfNmIiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCwxNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl82YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtKdXN0IHJlY2VudGx5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SnVzdCByZWNlbnRseSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SnVzdCByZWNlbnRseSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgc2VlJnF1b3Q7ICZxdW90O3VvbGtrVm9sa2tkb2xra0dvbGtrcW9sa2tnb2xra21vbGtrS29sa2ttb2xra3pvbGtrSG9sa2tvb2xra3dvbGtrY29sa2tPb2xra2smcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBzZWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgc2VlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtXaGF04oCZcyB0aGUgbGltaXQ/JnF1b3Q7ICZxdW90O2NvbGtrY29sa2tUb2xra1BvbGtra29sa2tHb2xra3dvbGtrcm9sa2tWb2xra3dvbGtrZm9sa2tLb2xra3VvbGtrRW9sa2tnb2xra1AmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2hhdOKAmXMgdGhlIGxpbWl0PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V2hhdOKAmXMgdGhlIGxpbWl0PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SG93IGZhciB3b3VsZCB5b3Ugd2FudCBtZSB0byBnbyB3aXRoIGFub3RoZXIgZ3V5PyZxdW90OyAmcXVvdDtUb2xra3dvbGtraG9sa2tpb2xra01vbGtrcW9sa2tGb2xra3BvbGtraW9sa2tMb2xra3JvbGtrT29sa2tyb2xra2tvbGtrdm9sa2tGJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvdyBmYXIgd291bGQgeW91IHdhbnQgbWUgdG8gZ28gd2l0aCBhbm90aGVyIGd1eT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hvdyBmYXIgd291bGQgeW91IHdhbnQgbWUgdG8gZ28gd2l0aCBhbm90aGVyIGd1eT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy43cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0RvIHlvdSB3YW50IG1lIHRvIGtpc3Mgb3RoZXIgZ3V5cz8mcXVvdDsgJnF1b3Q7dW9sa2tEb2xra01vbGtrcm9sa2tjb2xra0lvbGtrSW9sa2tkb2xra3BvbGtrQW9sa2twb2xra1lvbGtrZ29sa2tRb2xra1lvbGtrYyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEbyB5b3Ugd2FudCBtZSB0byBraXNzIG90aGVyIGd1eXM/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtEbyB5b3Ugd2FudCBtZSB0byBraXNzIG90aGVyIGd1eXM/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtWb2xra2RvbGtrWm9sa2tub2xra3hvbGtrRm9sa2tXb2xra20mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDUuMXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1ZvbGtrZG9sa2tab2xra25vbGtreG9sa2tGb2xra1dvbGtrbSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1llcywgYWJzb2x1dGVseSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfN2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZZXMsIGFic29sdXRlbHkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl83YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNWb2xra2RvbGtrWm9sa2tub2xra3hvbGtrRm9sa2tXb2xra20mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtObywgSSB3b3VsZG7igJl0IHdhbnQgdGhhdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfN2ImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtObywgSSB3b3VsZG7igJl0IHdhbnQgdGhhdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzdiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjExOCIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfN2EiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSwxNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl83YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsmbHQ7Jmx0O3NldCAka2lzc2luZyA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1llcywgYWJzb2x1dGVseSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1llcywgYWJzb2x1dGVseSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WWVzLCBhYnNvbHV0ZWx5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3NvbGtreG9sa2tVb2xra05vbGtrUW9sa2t1b2xra2JvbGtrcCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjc29sa2t4b2xra1VvbGtrTm9sa2tRb2xra3VvbGtrYm9sa2twJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSB3b3VsZG7igJl0IG1pbmQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzhhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSB3b3VsZG7igJl0IG1pbmQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl84YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMTkiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzdiIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDE0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzdiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O05vLCBJIHdvdWxkbuKAmXQgd2FudCB0aGF0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm8sIEkgd291bGRu4oCZdCB3YW50IHRoYXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O05vLCBJIHdvdWxkbuKAmXQgd2FudCB0aGF0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2pvbGtrYm9sa2t6b2xra0RvbGtreG9sa2tLb2xra2VvbGtreSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjam9sa2tib2xra3pvbGtrRG9sa2t4b2xra0tvbGtrZW9sa2t5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSB3b3VsZG7igJl0IGxpa2UgeW91IHRvIGtpc3Mgb3RoZXIgbWVuIHJvbWFudGljYWxseSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfOGImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIHdvdWxkbuKAmXQgbGlrZSB5b3UgdG8ga2lzcyBvdGhlciBtZW4gcm9tYW50aWNhbGx5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfOGImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTIwIiBuYW1lPSJBbm5pZUNoYXRFcDJfMl84YSIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSwxNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl84YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIHdvdWxkbuKAmXQgbWluZCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgd291bGRu4oCZdCBtaW5kJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIHdvdWxkbuKAmXQgbWluZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgc2VlJnF1b3Q7ICZxdW90O1VvbGtrYW9sa2t4b2xra1ZvbGtrQm9sa2tub2xra3VvbGtrbm9sa2tCb2xra3dvbGtrQm9sa2tnb2xra2tvbGtrbm9sa2tSb2xra2wmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBzZWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgc2VlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGRvbuKAmXQgZnVsbHkgdW5kZXJzdGFuZCB5b3VyIGZhbnRhc3kmcXVvdDsgJnF1b3Q7Sm9sa2tWb2xra1JvbGtrU29sa2tvb2xra1RvbGtrdG9sa2tGb2xra25vbGtrVm9sa2tHb2xra1BvbGtrcm9sa2t4b2xra1ZvbGtrYSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGRvbuKAmXQgZnVsbHkgdW5kZXJzdGFuZCB5b3VyIGZhbnRhc3kmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgZG9u4oCZdCBmdWxseSB1bmRlcnN0YW5kIHlvdXIgZmFudGFzeSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7V291bGQgeW91IGxpa2UgbXVsdGlwbGUgbWVuIHRvIGhhdmUgc2V4IHdpdGggbWU/JnF1b3Q7ICZxdW90O05vbGtrZm9sa2tTb2xra09vbGtram9sa2tHb2xra2dvbGtrT29sa2tFb2xra3VvbGtraG9sa2thb2xra2VvbGtrRG9sa2tCb2xra1cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V291bGQgeW91IGxpa2UgbXVsdGlwbGUgbWVuIHRvIGhhdmUgc2V4IHdpdGggbWU/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtXb3VsZCB5b3UgbGlrZSBtdWx0aXBsZSBtZW4gdG8gaGF2ZSBzZXggd2l0aCBtZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O09yIGp1c3Qgb25lIHBlcnNvbj8mcXVvdDsgJnF1b3Q7RG9sa2tOb2xra0ZvbGtrZm9sa2txb2xra2pvbGtrUW9sa2thb2xra1pvbGtrY29sa2tUb2xra25vbGtrY29sa2tkb2xra2dvbGtrSCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPciBqdXN0IG9uZSBwZXJzb24/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtPciBqdXN0IG9uZSBwZXJzb24/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtmb2xra1RvbGtrbm9sa2tOb2xra3VvbGtrY29sa2tjb2xra3ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuOXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2ZvbGtrVG9sa2tub2xra05vbGtrdW9sa2tjb2xra2NvbGtrciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0JlaW5nIGhvbmVzdCwgSeKAmWQgbG92ZSBpdCBpZiBhIGdyb3VwIG9mIG1lbiBkaWQgd2hhdGV2ZXIgdGhleSB3YW50ZWQgd2l0aCB5b3UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzEwYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0JlaW5nIGhvbmVzdCwgSeKAmWQgbG92ZSBpdCBpZiBhIGdyb3VwIG9mIG1lbiBkaWQgd2hhdGV2ZXIgdGhleSB3YW50ZWQgd2l0aCB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xMGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjZm9sa2tUb2xra25vbGtrTm9sa2t1b2xra2NvbGtrY29sa2tyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SnVzdCBvbmUgZ3V5LCBtYXliZSBzb21lb25lIHdlIGJvdGggY2hvb3NlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xMGImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtKdXN0IG9uZSBndXksIG1heWJlIHNvbWVvbmUgd2UgYm90aCBjaG9vc2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xMGImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTIxIiBuYW1lPSJBbm5pZUNoYXRFcDJfMl84YiIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDE2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzhiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgd291bGRu4oCZdCBsaWtlIHlvdSB0byBraXNzIG90aGVyIG1lbiByb21hbnRpY2FsbHkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHdvdWxkbuKAmXQgbGlrZSB5b3UgdG8ga2lzcyBvdGhlciBtZW4gcm9tYW50aWNhbGx5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIHdvdWxkbuKAmXQgbGlrZSB5b3UgdG8ga2lzcyBvdGhlciBtZW4gcm9tYW50aWNhbGx5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1FvbGtrZG9sa2tBb2xra0xvbGtrZG9sa2tBb2xra2JvbGtrYiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjUW9sa2tkb2xra0FvbGtrTG9sa2tkb2xra0FvbGtrYm9sa2tiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBqdXN0IHdhbnQgeW91IHRvIGhhdmUgc2V4IHdpdGggdGhlbSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfOWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGp1c3Qgd2FudCB5b3UgdG8gaGF2ZSBzZXggd2l0aCB0aGVtJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfOWImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTIyIiBuYW1lPSJBbm5pZUNoYXRFcDJfMl85YiIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDE2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzliJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kganVzdCB3YW50IHlvdSB0byBoYXZlIHNleCB3aXRoIHRoZW0mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGp1c3Qgd2FudCB5b3UgdG8gaGF2ZSBzZXggd2l0aCB0aGVtJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGp1c3Qgd2FudCB5b3UgdG8gaGF2ZSBzZXggd2l0aCB0aGVtJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBzZWUmcXVvdDsgJnF1b3Q7b29sa2tLb2xra2tvbGtrd29sa2tPb2xra1dvbGtrbm9sa2tqb2xra2VvbGtrZm9sa2t4b2xra3BvbGtreG9sa2t6b2xra1RvbGtrSyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHNlZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBzZWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgZG9u4oCZdCBmdWxseSB1bmRlcnN0YW5kIHlvdXIgZmFudGFzeSZxdW90OyAmcXVvdDtlb2xra3FvbGtrSm9sa2tHb2xra3lvbGtreW9sa2tZb2xra3lvbGtrem9sa2tMb2xra0RvbGtra29sa2tkb2xra2FvbGtrem9sa2tGJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZG9u4oCZdCBmdWxseSB1bmRlcnN0YW5kIHlvdXIgZmFudGFzeSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBkb27igJl0IGZ1bGx5IHVuZGVyc3RhbmQgeW91ciBmYW50YXN5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtXb3VsZCB5b3UgbGlrZSBtdWx0aXBsZSBtZW4gdG8gaGF2ZSBzZXggd2l0aCBtZT8mcXVvdDsgJnF1b3Q7aW9sa2tlb2xra1RvbGtreG9sa2tPb2xra2xvbGtrcW9sa2twb2xra2ZvbGtrYW9sa2t3b2xra2pvbGtrSW9sa2tCb2xra0NvbGtrQiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXb3VsZCB5b3UgbGlrZSBtdWx0aXBsZSBtZW4gdG8gaGF2ZSBzZXggd2l0aCBtZT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1dvdWxkIHlvdSBsaWtlIG11bHRpcGxlIG1lbiB0byBoYXZlIHNleCB3aXRoIG1lPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7T3IganVzdCBvbmUgcGVyc29uPyZxdW90OyAmcXVvdDtob2xra2dvbGtrWm9sa2t2b2xra0VvbGtrYW9sa2tWb2xra2VvbGtrdm9sa2t4b2xra2xvbGtrYW9sa2tlb2xra0tvbGtrTW9sa2tQJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09yIGp1c3Qgb25lIHBlcnNvbj8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O09yIGp1c3Qgb25lIHBlcnNvbj8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3FvbGtrVm9sa2tab2xra3ZvbGtrVm9sa2tkb2xra3VvbGtrSSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjcW9sa2tWb2xra1pvbGtrdm9sa2tWb2xra2RvbGtrdW9sa2tJJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QmVpbmcgaG9uZXN0LCBJ4oCZZCBsb3ZlIGl0IGlmIGEgZ3JvdXAgb2YgbWVuIGRpZCB3aGF0ZXZlciB0aGV5IHdhbnRlZCB3aXRoIHlvdSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTBhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QmVpbmcgaG9uZXN0LCBJ4oCZZCBsb3ZlIGl0IGlmIGEgZ3JvdXAgb2YgbWVuIGRpZCB3aGF0ZXZlciB0aGV5IHdhbnRlZCB3aXRoIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzEwYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNxb2xra1ZvbGtrWm9sa2t2b2xra1ZvbGtrZG9sa2t1b2xra0kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtKdXN0IG9uZSBndXksIG1heWJlIHNvbWVvbmUgd2UgYm90aCBjaG9vc2UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzEwYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0p1c3Qgb25lIGd1eSwgbWF5YmUgc29tZW9uZSB3ZSBib3RoIGNob29zZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzEwYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMjMiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzEwYSIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDE2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzEwYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsmbHQ7Jmx0O3NldCAkZ2FuZ2JhbmcgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtCZWluZyBob25lc3QsIEnigJlkIGxvdmUgaXQgaWYgYSBncm91cCBvZiBtZW4gZGlkIHdoYXRldmVyIHRoZXkgd2FudGVkIHdpdGggeW91JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QmVpbmcgaG9uZXN0LCBJ4oCZZCBsb3ZlIGl0IGlmIGEgZ3JvdXAgb2YgbWVuIGRpZCB3aGF0ZXZlciB0aGV5IHdhbnRlZCB3aXRoIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QmVpbmcgaG9uZXN0LCBJ4oCZZCBsb3ZlIGl0IGlmIGEgZ3JvdXAgb2YgbWVuIGRpZCB3aGF0ZXZlciB0aGV5IHdhbnRlZCB3aXRoIHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9ub193b3Jkcy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbm9fd29yZHMud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1dvdywgdGhhdOKAmXMuLi4mcXVvdDsgJnF1b3Q7WW9sa2thb2xra1BvbGtrbG9sa2tXb2xra2ZvbGtrV29sa2tIb2xra2RvbGtrTW9sa2tab2xra3ZvbGtrUG9sa2tHb2xra1BvbGtrViZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXb3csIHRoYXTigJlzLi4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtXb3csIHRoYXTigJlzLi4uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtOb3Qgd2hhdCBJIGV4cGVjdGVkJnF1b3Q7ICZxdW90O2ZvbGtrUW9sa2tjb2xra0tvbGtrWm9sa2t0b2xra3pvbGtrU29sa2tib2xra0RvbGtra29sa2tzb2xra3lvbGtrUG9sa2tVb2xra3AmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm90IHdoYXQgSSBleHBlY3RlZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7Tm90IHdoYXQgSSBleHBlY3RlZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7eG9sa2tWb2xra0JvbGtrd29sa2tMb2xra0NvbGtrRG9sa2twJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN4b2xra1ZvbGtrQm9sa2t3b2xra0xvbGtrQ29sa2tEb2xra3AmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJZiB5b3Ugd2FudCwgd2UgY2FuIHN0b3AgaGVyZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTFhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SWYgeW91IHdhbnQsIHdlIGNhbiBzdG9wIGhlcmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xMWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjeG9sa2tWb2xra0JvbGtrd29sa2tMb2xra0NvbGtrRG9sa2twJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SW4gbGlmZSwgeW91IGhhdmUgdG8gZXhwZXJpbWVudCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTFiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SW4gbGlmZSwgeW91IGhhdmUgdG8gZXhwZXJpbWVudCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzExYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMjQiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzEwYiIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDE2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzEwYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtKdXN0IG9uZSBndXksIG1heWJlIHNvbWVvbmUgd2UgYm90aCBjaG9vc2UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtKdXN0IG9uZSBndXksIG1heWJlIHNvbWVvbmUgd2UgYm90aCBjaG9vc2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0p1c3Qgb25lIGd1eSwgbWF5YmUgc29tZW9uZSB3ZSBib3RoIGNob29zZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgc2VlJnF1b3Q7ICZxdW90O1FvbGtrd29sa2tyb2xra2RvbGtrR29sa2t3b2xra0hvbGtrd29sa2tCb2xra0ZvbGtrU29sa2twb2xra3NvbGtrVW9sa2tPb2xra2gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBzZWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgc2VlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtFdmVuIHNvLCBhbGwgb2YgdGhpcyBzdGlsbCBzdXJwcmlzZXMgbWUmcXVvdDsgJnF1b3Q7TW9sa2tXb2xra25vbGtrem9sa2tZb2xra3FvbGtrUm9sa2tyb2xra2FvbGtrUm9sa2tHb2xra3RvbGtrc29sa2tmb2xra1BvbGtrWiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtFdmVuIHNvLCBhbGwgb2YgdGhpcyBzdGlsbCBzdXJwcmlzZXMgbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0V2ZW4gc28sIGFsbCBvZiB0aGlzIHN0aWxsIHN1cnByaXNlcyBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7UG9sa2tUb2xra05vbGtrdm9sa2tIb2xra05vbGtrRW9sa2tyJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjVzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNQb2xra1RvbGtrTm9sa2t2b2xra0hvbGtrTm9sa2tFb2xra3ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJZiB5b3Ugd2FudCwgd2UgY2FuIHN0b3AgaGVyZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTFhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SWYgeW91IHdhbnQsIHdlIGNhbiBzdG9wIGhlcmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xMWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjUG9sa2tUb2xra05vbGtrdm9sa2tIb2xra05vbGtrRW9sa2tyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SW4gbGlmZSwgeW91IGhhdmUgdG8gZXhwZXJpbWVudCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTFiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SW4gbGlmZSwgeW91IGhhdmUgdG8gZXhwZXJpbWVudCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzExYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMjUiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzExYSIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDE2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzExYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsmbHQ7Jmx0O3NldCAkZG9tc3ViID0gJGRvbXN1Yi0xJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJZiB5b3Ugd2FudCwgd2UgY2FuIHN0b3AgaGVyZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0lmIHlvdSB3YW50LCB3ZSBjYW4gc3RvcCBoZXJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJZiB5b3Ugd2FudCwgd2UgY2FuIHN0b3AgaGVyZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtkb2xra1JvbGtrRW9sa2twb2xra2JvbGtrdG9sa2t5b2xra0EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2RvbGtrUm9sa2tFb2xra3BvbGtrYm9sa2t0b2xra3lvbGtrQSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0xpa2UgSSBzYWlkIGVhcmxpZXIgdG9kYXksIGlmIHlvdSBmZWVsIHByZXNzdXJlZCwgd2UgY2FuIGZvcmdldCBhbGwgYWJvdXQgdGhpcyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTJhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7TGlrZSBJIHNhaWQgZWFybGllciB0b2RheSwgaWYgeW91IGZlZWwgcHJlc3N1cmVkLCB3ZSBjYW4gZm9yZ2V0IGFsbCBhYm91dCB0aGlzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTJhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEyNiIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfMTFiIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsMTYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTFiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRkb21zdWIgPSAkZG9tc3ViKzEmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0luIGxpZmUsIHlvdSBoYXZlIHRvIGV4cGVyaW1lbnQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJbiBsaWZlLCB5b3UgaGF2ZSB0byBleHBlcmltZW50JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJbiBsaWZlLCB5b3UgaGF2ZSB0byBleHBlcmltZW50JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O05vbGtrT29sa2tqb2xra1pvbGtreG9sa2ttb2xra09vbGtrQSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjTm9sa2tPb2xra2pvbGtrWm9sa2t4b2xra21vbGtrT29sa2tBJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhlIHdheSBJIHNlZSBpdCwgd2Ugd2VyZSBoZWFkaW5nIHRvd2FyZCBiZWluZyBhIGJvcmluZyBjb3VwbGUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzEyYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoZSB3YXkgSSBzZWUgaXQsIHdlIHdlcmUgaGVhZGluZyB0b3dhcmQgYmVpbmcgYSBib3JpbmcgY291cGxlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTJiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEyNyIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfMTJhIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMTYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTJhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0xpa2UgSSBzYWlkIGVhcmxpZXIgdG9kYXksIGlmIHlvdSBmZWVsIHByZXNzdXJlZCwgd2UgY2FuIGZvcmdldCBhbGwgYWJvdXQgdGhpcyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0xpa2UgSSBzYWlkIGVhcmxpZXIgdG9kYXksIGlmIHlvdSBmZWVsIHByZXNzdXJlZCwgd2UgY2FuIGZvcmdldCBhbGwgYWJvdXQgdGhpcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7TGlrZSBJIHNhaWQgZWFybGllciB0b2RheSwgaWYgeW91IGZlZWwgcHJlc3N1cmVkLCB3ZSBjYW4gZm9yZ2V0IGFsbCBhYm91dCB0aGlzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7WW91IGtub3c/IEkgZmVlbCBsaWtlIGl04oCZcyB0b28gbGF0ZSBmb3IgdGhhdCZxdW90OyAmcXVvdDtqb2xra3hvbGtra29sa2tyb2xra0JvbGtrV29sa2ttb2xra1lvbGtram9sa2tpb2xra0lvbGtrcW9sa2tyb2xra3pvbGtrWW9sa2tJJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBrbm93PyBJIGZlZWwgbGlrZSBpdOKAmXMgdG9vIGxhdGUgZm9yIHRoYXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdSBrbm93PyBJIGZlZWwgbGlrZSBpdOKAmXMgdG9vIGxhdGUgZm9yIHRoYXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgZG9u4oCZdCB0aGluayBJIGNhbiBnbyBiYWNrIHRvIHRoZSBvbGQgbWUga25vd2luZyB0aGlzIGlzIHNvbWV0aGluZyBoaWRkZW4gaW5zaWRlIHlvdSZxdW90OyAmcXVvdDtLb2xra1BvbGtrY29sa2t1b2xra2ZvbGtrWW9sa2tob2xra0dvbGtrTm9sa2tBb2xra0tvbGtrUG9sa2tPb2xra1NvbGtrWG9sa2t2JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZG9u4oCZdCB0aGluayBJIGNhbiBnbyBiYWNrIHRvIHRoZSBvbGQgbWUga25vd2luZyB0aGlzIGlzIHNvbWV0aGluZyBoaWRkZW4gaW5zaWRlIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBkb27igJl0IHRoaW5rIEkgY2FuIGdvIGJhY2sgdG8gdGhlIG9sZCBtZSBrbm93aW5nIHRoaXMgaXMgc29tZXRoaW5nIGhpZGRlbiBpbnNpZGUgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIHRoaW5rIHRoZSBiZXN0IHRoaW5nIGlzIHRvIGV4cGVyaW1lbnQsIGxpa2UgTmFvbWkgc2FpZCZxdW90OyAmcXVvdDt2b2xra0tvbGtrU29sa2tJb2xra09vbGtrVW9sa2tub2xra3ZvbGtrWm9sa2tkb2xra21vbGtreW9sa2tGb2xra0FvbGtrUG9sa2tOJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgdGhpbmsgdGhlIGJlc3QgdGhpbmcgaXMgdG8gZXhwZXJpbWVudCwgbGlrZSBOYW9taSBzYWlkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIHRoaW5rIHRoZSBiZXN0IHRoaW5nIGlzIHRvIGV4cGVyaW1lbnQsIGxpa2UgTmFvbWkgc2FpZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA2LjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QW5kIHNlZSBob3cgaXQgdHVybnMgb3V0JnF1b3Q7ICZxdW90O1lvbGtrSm9sa2tKb2xra0ZvbGtrcW9sa2tpb2xra0NvbGtrYW9sa2tjb2xra3JvbGtrRW9sa2tBb2xra1hvbGtra29sa2tkb2xra2omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5kIHNlZSBob3cgaXQgdHVybnMgb3V0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtBbmQgc2VlIGhvdyBpdCB0dXJucyBvdXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0NvbGtrRG9sa2tJb2xra1VvbGtrdm9sa2tkb2xra0FvbGtrTyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNy4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjQ29sa2tEb2xra0lvbGtrVW9sa2t2b2xra2RvbGtrQW9sa2tPJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7U291bmRzIGdvb2QgdG8gbWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzEzYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1NvdW5kcyBnb29kIHRvIG1lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTNhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEyOCIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfMTNhIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMTYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTNhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1NvdW5kcyBnb29kIHRvIG1lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U291bmRzIGdvb2QgdG8gbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1NvdW5kcyBnb29kIHRvIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2NvbGtrU29sa2tBb2xra2lvbGtrY29sa2tzb2xra1hvbGtrWiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjY29sa2tTb2xra0FvbGtraW9sa2tjb2xra3NvbGtrWG9sa2taJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBsb3ZlIHlvdSwgYmFiZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTRhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBsb3ZlIHlvdSwgYmFiZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzE0YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMjkiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzE0YSIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwxNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xNGEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBsb3ZlIHlvdSwgYmFiZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbG92ZSB5b3UsIGJhYmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbG92ZSB5b3UsIGJhYmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGxvdmUgeW91IG1vcmUsIGhvbmV5JnF1b3Q7ICZxdW90O09vbGtrQm9sa2tqb2xra0VvbGtram9sa2tkb2xra25vbGtrTm9sa2tLb2xra3NvbGtrZW9sa2t5b2xra0xvbGtrTG9sa2t3b2xra1ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBsb3ZlIHlvdSBtb3JlLCBob25leSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBsb3ZlIHlvdSBtb3JlLCBob25leSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7WG9sa2tLb2xra3NvbGtrVW9sa2tRb2xra1RvbGtrUm9sa2txJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjRzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNYb2xra0tvbGtrc29sa2tVb2xra1FvbGtrVG9sa2tSb2xra3EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtOb3cgSSBoYXZlIHRvIGdldCBiYWNrIHRvIHRoZXNlIHJlcG9ydHMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzE1YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O05vdyBJIGhhdmUgdG8gZ2V0IGJhY2sgdG8gdGhlc2UgcmVwb3J0cyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzE1YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMzAiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzEyYiIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSwxNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xMmImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhlIHdheSBJIHNlZSBpdCwgd2Ugd2VyZSBoZWFkaW5nIHRvd2FyZCBiZWluZyBhIGJvcmluZyBjb3VwbGUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGUgd2F5IEkgc2VlIGl0LCB3ZSB3ZXJlIGhlYWRpbmcgdG93YXJkIGJlaW5nIGEgYm9yaW5nIGNvdXBsZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhlIHdheSBJIHNlZSBpdCwgd2Ugd2VyZSBoZWFkaW5nIHRvd2FyZCBiZWluZyBhIGJvcmluZyBjb3VwbGUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7ZG9sa2tSb2xra2RvbGtrQ29sa2tsb2xra1BvbGtrWm9sa2tFJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNkb2xra1JvbGtrZG9sa2tDb2xra2xvbGtrUG9sa2tab2xra0UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3XigJlsbCBzZWUgaG93IGV4Y2l0aW5nIHRoaXMgd2lsbCBiZSBvbmNlIHdlIHN0YXJ0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xM2ImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3XigJlsbCBzZWUgaG93IGV4Y2l0aW5nIHRoaXMgd2lsbCBiZSBvbmNlIHdlIHN0YXJ0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTNiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEzMSIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfMTNiIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMTcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTNiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdeKAmWxsIHNlZSBob3cgZXhjaXRpbmcgdGhpcyB3aWxsIGJlIG9uY2Ugd2Ugc3RhcnQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3XigJlsbCBzZWUgaG93IGV4Y2l0aW5nIHRoaXMgd2lsbCBiZSBvbmNlIHdlIHN0YXJ0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtZb3XigJlsbCBzZWUgaG93IGV4Y2l0aW5nIHRoaXMgd2lsbCBiZSBvbmNlIHdlIHN0YXJ0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7WWVhaCwgSSBoYWQgbXkgZG91YnRzLCBidXQgTmFvbWkgdGFsa2VkIGEgbG90IHdpdGggbWUmcXVvdDsgJnF1b3Q7WG9sa2tMb2xra1VvbGtrVW9sa2ttb2xra0JvbGtrRW9sa2tUb2xra01vbGtrbG9sa2tJb2xra2hvbGtreW9sa2tqb2xra1hvbGtrQiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLCBJIGhhZCBteSBkb3VidHMsIGJ1dCBOYW9taSB0YWxrZWQgYSBsb3Qgd2l0aCBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WWVhaCwgSSBoYWQgbXkgZG91YnRzLCBidXQgTmFvbWkgdGFsa2VkIGEgbG90IHdpdGggbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgZG9u4oCZdCB0aGluayBJIGV2ZXIgc2F3IG15c2VsZiBhcyBzb21lb25lIGNhcGFibGUgb2YgdGhpcyZxdW90OyAmcXVvdDt6b2xra09vbGtrWm9sa2tmb2xra0ZvbGtrT29sa2tib2xra0FvbGtrUW9sa2twb2xra2pvbGtrZ29sa2tOb2xra1JvbGtrT29sa2tUJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZG9u4oCZdCB0aGluayBJIGV2ZXIgc2F3IG15c2VsZiBhcyBzb21lb25lIGNhcGFibGUgb2YgdGhpcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBkb27igJl0IHRoaW5rIEkgZXZlciBzYXcgbXlzZWxmIGFzIHNvbWVvbmUgY2FwYWJsZSBvZiB0aGlzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuOXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtCdXQgSSBzaG91bGQgc3RlcCBvdXQgb2YgbXkgY29tZm9ydCB6b25lIGFuZCBzZWUgaG93IGl0IGdvZXMmcXVvdDsgJnF1b3Q7WW9sa2tpb2xra2JvbGtraG9sa2tZb2xra0FvbGtrbG9sa2tzb2xra0RvbGtrSG9sa2tKb2xra2tvbGtrVm9sa2tKb2xra0NvbGtrRiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgSSBzaG91bGQgc3RlcCBvdXQgb2YgbXkgY29tZm9ydCB6b25lIGFuZCBzZWUgaG93IGl0IGdvZXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0J1dCBJIHNob3VsZCBzdGVwIG91dCBvZiBteSBjb21mb3J0IHpvbmUgYW5kIHNlZSBob3cgaXQgZ29lcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7RG9sa2tBb2xra0xvbGtrR29sa2tyb2xra3BvbGtrb29sa2tDJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA1LjlzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNEb2xra0FvbGtrTG9sa2tHb2xra3JvbGtrcG9sa2tvb2xra0MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUb3RhbGx5LiBJ4oCZbSBzdXJlIHRoaXMgd2lsbCBzdHJlbmd0aGVuIHVzIGFzIGEgY291cGxlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xNGImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUb3RhbGx5LiBJ4oCZbSBzdXJlIHRoaXMgd2lsbCBzdHJlbmd0aGVuIHVzIGFzIGEgY291cGxlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTRiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEzMiIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfMTRiIiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsMTcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTRiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RvdGFsbHkuIEnigJltIHN1cmUgdGhpcyB3aWxsIHN0cmVuZ3RoZW4gdXMgYXMgYSBjb3VwbGUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUb3RhbGx5LiBJ4oCZbSBzdXJlIHRoaXMgd2lsbCBzdHJlbmd0aGVuIHVzIGFzIGEgY291cGxlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUb3RhbGx5LiBJ4oCZbSBzdXJlIHRoaXMgd2lsbCBzdHJlbmd0aGVuIHVzIGFzIGEgY291cGxlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBob3BlIHlvdeKAmXJlIHJpZ2h0JnF1b3Q7ICZxdW90O0hvbGtrbW9sa2tmb2xra2dvbGtrd29sa2tFb2xra1lvbGtrb29sa2tob2xra3lvbGtrVm9sa2tqb2xra0lvbGtrcG9sa2t5b2xra2kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBob3BlIHlvdeKAmXJlIHJpZ2h0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGhvcGUgeW914oCZcmUgcmlnaHQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgbG92ZSB5b3UsICRuYW1lJnF1b3Q7ICZxdW90O2JvbGtrbG9sa2tGb2xra2pvbGtrb29sa2t3b2xra0ZvbGtrb29sa2ttb2xra1JvbGtrdm9sa2tNb2xra2dvbGtrcG9sa2tzb2xra08mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBsb3ZlIHlvdSwgJG5hbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbG92ZSB5b3UsICRuYW1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtXb2xra2NvbGtrVm9sa2trb2xra3dvbGtrSG9sa2t3b2xra2EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1dvbGtrY29sa2tWb2xra2tvbGtrd29sa2tIb2xra3dvbGtrYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgbG92ZSB5b3UsIEFubmllJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xNWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGxvdmUgeW91LCBBbm5pZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzE1YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMzMiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzE1YSIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDE3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzE1YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtOb3cgSSBoYXZlIHRvIGdldCBiYWNrIHRvIHRoZXNlIHJlcG9ydHMmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtOb3cgSSBoYXZlIHRvIGdldCBiYWNrIHRvIHRoZXNlIHJlcG9ydHMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O05vdyBJIGhhdmUgdG8gZ2V0IGJhY2sgdG8gdGhlc2UgcmVwb3J0cyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtvb2xra3ZvbGtrcm9sa2t3b2xra3VvbGtraG9sa2tPb2xra3AmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I29vbGtrdm9sa2tyb2xra3dvbGtrdW9sa2tob2xra09vbGtrcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0xldOKAmXMgdGFsayBhZ2FpbiBiZWZvcmUgZ29pbmcgdG8gc2xlZXAmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzE3JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7TGV04oCZcyB0YWxrIGFnYWluIGJlZm9yZSBnb2luZyB0byBzbGVlcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzE3JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEzNCIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfMTViIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMTcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTViJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgbG92ZSB5b3UsIEFubmllJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBsb3ZlIHlvdSwgQW5uaWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbG92ZSB5b3UsIEFubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3NvbGtrem9sa2twb2xra3NvbGtrRG9sa2thb2xra2lvbGtrWSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjc29sa2t6b2xra3BvbGtrc29sa2tEb2xra2FvbGtraW9sa2tZJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7Tm93IEkgaGF2ZSB0byBnZXQgYmFjayB0byB0aGVzZSByZXBvcnRzJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xNmImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtOb3cgSSBoYXZlIHRvIGdldCBiYWNrIHRvIHRoZXNlIHJlcG9ydHMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xNmImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTM1IiBuYW1lPSJBbm5pZUNoYXRFcDJfMl8xNmIiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwxNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xNmImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7Tm93IEkgaGF2ZSB0byBnZXQgYmFjayB0byB0aGVzZSByZXBvcnRzJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm93IEkgaGF2ZSB0byBnZXQgYmFjayB0byB0aGVzZSByZXBvcnRzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtOb3cgSSBoYXZlIHRvIGdldCBiYWNrIHRvIHRoZXNlIHJlcG9ydHMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7a29sa2tCb2xra21vbGtrSW9sa2tXb2xra2VvbGtra29sa2tUJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNrb2xra0JvbGtrbW9sa2tJb2xra1dvbGtrZW9sa2trb2xra1QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtMZXTigJlzIHRhbGsgYWdhaW4gYmVmb3JlIGdvaW5nIHRvIHNsZWVwJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xNyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0xldOKAmXMgdGFsayBhZ2FpbiBiZWZvcmUgZ29pbmcgdG8gc2xlZXAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xNyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMzYiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzE3IiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsMTcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTcmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TGV04oCZcyB0YWxrIGFnYWluIGJlZm9yZSBnb2luZyB0byBzbGVlcCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0xldOKAmXMgdGFsayBhZ2FpbiBiZWZvcmUgZ29pbmcgdG8gc2xlZXAmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0xldOKAmXMgdGFsayBhZ2FpbiBiZWZvcmUgZ29pbmcgdG8gc2xlZXAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4xcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtQZXJmZWN0JnF1b3Q7ICZxdW90O1ZvbGtrZm9sa2tLb2xra1FvbGtrdm9sa2tkb2xra09vbGtrcm9sa2tTb2xra3pvbGtrUW9sa2tXb2xra1hvbGtrVG9sa2tob2xra2EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7UGVyZmVjdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7UGVyZmVjdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O/CfpbAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfbGFzdF9ob3VyID0gJnF1b3Q7MjE6MzQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDsyMTozNCZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7b2ZmbGluZS10ZXh0JnF1b3Q7Jmd0O0FubmllIGlzIG9mZmxpbmUmbHQ7L2RpdiZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4wcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJHRyYW5zaXRpb24gPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICR0cmFuc2l0aW9uVGV4dCA9ICZxdW90O2F0IG5pZ2h0JnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRUb2FzdEFubmllMiA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4wcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2NoYXQgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgPSAmcXVvdDtBbm5pZUNoYXRFcDJfM18xJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SGV5IGhvbmV5JnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEzNyIgbmFtZT0iQW5uaWVDaGF0RXAyXzNfMSIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDE3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SGV5IGhvbmV5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZXkgaG9uZXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hleSBob25leSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0RpZCB5b3UgYWxyZWFkeSBnbyB0byBiZWQ/JnF1b3Q7ICZxdW90O3NvbGtrWG9sa2tib2xra21vbGtrTW9sa2tUb2xra2ZvbGtrQW9sa2tsb2xra2VvbGtraW9sa2t1b2xra3pvbGtrWW9sa2tWb2xra0cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RGlkIHlvdSBhbHJlYWR5IGdvIHRvIGJlZD8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0RpZCB5b3UgYWxyZWFkeSBnbyB0byBiZWQ/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtnb2xra1RvbGtrQm9sa2tCb2xra01vbGtrY29sa2tOb2xra0EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuOHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2dvbGtrVG9sa2tCb2xra0JvbGtrTW9sa2tjb2xra05vbGtrQSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RvIGJlIGhvbmVzdCwgSeKAmW0gc3RpbGwgYXQgdGhlIG9mZmljZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RvIGJlIGhvbmVzdCwgSeKAmW0gc3RpbGwgYXQgdGhlIG9mZmljZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8zXzImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMzgiIG5hbWU9IkFubmllQ2hhdEVwMl8zXzIiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSwxNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfM18yJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RvIGJlIGhvbmVzdCwgSeKAmW0gc3RpbGwgYXQgdGhlIG9mZmljZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RvIGJlIGhvbmVzdCwgSeKAmW0gc3RpbGwgYXQgdGhlIG9mZmljZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VG8gYmUgaG9uZXN0LCBJ4oCZbSBzdGlsbCBhdCB0aGUgb2ZmaWNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1JvbGtrS29sa2tZb2xra2dvbGtrWG9sa2t5b2xra2RvbGtrQyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjUm9sa2tLb2xra1lvbGtrZ29sa2tYb2xra3lvbGtrZG9sa2tDJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SnVzdCB3cmFwcGluZyB1cCBhIGZldyB0aGluZ3MuIEnigJlsbCBoZWFkIGJhY2sgdG8gdGhlIGhvdGVsIGluIGEgYml0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfM18zJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SnVzdCB3cmFwcGluZyB1cCBhIGZldyB0aGluZ3MuIEnigJlsbCBoZWFkIGJhY2sgdG8gdGhlIGhvdGVsIGluIGEgYml0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMzkiIG5hbWU9IkFubmllQ2hhdEVwMl8zXzMiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsMTcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtKdXN0IHdyYXBwaW5nIHVwIGEgZmV3IHRoaW5ncy4gSeKAmWxsIGhlYWQgYmFjayB0byB0aGUgaG90ZWwgaW4gYSBiaXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtKdXN0IHdyYXBwaW5nIHVwIGEgZmV3IHRoaW5ncy4gSeKAmWxsIGhlYWQgYmFjayB0byB0aGUgaG90ZWwgaW4gYSBiaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0p1c3Qgd3JhcHBpbmcgdXAgYSBmZXcgdGhpbmdzLiBJ4oCZbGwgaGVhZCBiYWNrIHRvIHRoZSBob3RlbCBpbiBhIGJpdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgY2Fu4oCZdCBiZWxpZXZlIHlvdeKAmXJlIHN0aWxsIHdvcmtpbmcgYXQgdGhpcyBob3VyJnF1b3Q7ICZxdW90O0RvbGtrRm9sa2t1b2xra3hvbGtrbW9sa2tUb2xra0pvbGtram9sa2tMb2xra3hvbGtrVG9sa2t0b2xra29vbGtrV29sa2tVb2xra3MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgeW914oCZcmUgc3RpbGwgd29ya2luZyBhdCB0aGlzIGhvdXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgY2Fu4oCZdCBiZWxpZXZlIHlvdeKAmXJlIHN0aWxsIHdvcmtpbmcgYXQgdGhpcyBob3VyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuOHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfY3J5aW5nLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9jcnlpbmcud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2VvbGtrYm9sa2tGb2xra2JvbGtreW9sa2tTb2xra01vbGtrTyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi44cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjZW9sa2tib2xra0ZvbGtrYm9sa2t5b2xra1NvbGtrTW9sa2tPJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7RG9u4oCZdCB3b3JyeSwgaXTigJlzIGp1c3QgdGVtcG9yYXJ5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfM180JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7RG9u4oCZdCB3b3JyeSwgaXTigJlzIGp1c3QgdGVtcG9yYXJ5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzNfNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNDAiIG5hbWU9IkFubmllQ2hhdEVwMl8zXzQiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMTcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzNfNCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtEb27igJl0IHdvcnJ5LCBpdOKAmXMganVzdCB0ZW1wb3JhcnkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEb27igJl0IHdvcnJ5LCBpdOKAmXMganVzdCB0ZW1wb3JhcnkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0RvbuKAmXQgd29ycnksIGl04oCZcyBqdXN0IHRlbXBvcmFyeSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt3b2xra1lvbGtrem9sa2tjb2xra2hvbGtrRG9sa2tRb2xra2kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3dvbGtrWW9sa2t6b2xra2NvbGtraG9sa2tEb2xra1FvbGtraSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0luIGEgZmV3IG1vbnRocywgSeKAmWxsIGxvb2sgYmFjayBhbmQgc2VlIHRoaXMgYXMgcGFydCBvZiB0aGUgcGFzdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzNfNSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0luIGEgZmV3IG1vbnRocywgSeKAmWxsIGxvb2sgYmFjayBhbmQgc2VlIHRoaXMgYXMgcGFydCBvZiB0aGUgcGFzdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8zXzUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTQxIiBuYW1lPSJBbm5pZUNoYXRFcDJfM181IiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMTg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzNfNSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJbiBhIGZldyBtb250aHMsIEnigJlsbCBsb29rIGJhY2sgYW5kIHNlZSB0aGlzIGFzIHBhcnQgb2YgdGhlIHBhc3QmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJbiBhIGZldyBtb250aHMsIEnigJlsbCBsb29rIGJhY2sgYW5kIHNlZSB0aGlzIGFzIHBhcnQgb2YgdGhlIHBhc3QmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0luIGEgZmV3IG1vbnRocywgSeKAmWxsIGxvb2sgYmFjayBhbmQgc2VlIHRoaXMgYXMgcGFydCBvZiB0aGUgcGFzdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjFzICZxdW90O0FubmllJnF1b3Q7ICZxdW90Oy4uLiZxdW90OyAmcXVvdDtpb2xra3JvbGtrcW9sa2t2b2xra3NvbGtrQ29sa2tpb2xra2NvbGtrU29sa2txb2xra05vbGtrSW9sa2t6b2xra1dvbGtrc29sa2tkJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90Oy4uLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7Li4uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtDb3VudCBvbiBtZSZxdW90OyAmcXVvdDtNb2xra1dvbGtrcG9sa2tjb2xra1pvbGtrcm9sa2tXb2xra0ZvbGtrRW9sa2tqb2xra2hvbGtrcW9sa2tGb2xra1pvbGtraG9sa2tVJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0NvdW50IG9uIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtDb3VudCBvbiBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7c29sa2tUb2xra2FvbGtrb29sa2tpb2xra2hvbGtrUG9sa2tUJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjlzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNzb2xra1RvbGtrYW9sa2tvb2xra2lvbGtraG9sa2tQb2xra1QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtXaGF0IGRvIHlvdSBtZWFuPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzNfNiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1doYXQgZG8geW91IG1lYW4/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzNfNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNDIiIG5hbWU9IkFubmllQ2hhdEVwMl8zXzYiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSwxODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfM182JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1doYXQgZG8geW91IG1lYW4/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2hhdCBkbyB5b3UgbWVhbj8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1doYXQgZG8geW91IG1lYW4/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7Q291bnQgb24gbWUsIEnigJltIGdvaW5nIHRvIGZ1bGZpbGwgdGhvc2UgZmFudGFzaWVzIG9mIHlvdXJzJnF1b3Q7ICZxdW90O0FvbGtraW9sa2tYb2xra2JvbGtrZG9sa2tBb2xra2RvbGtrYm9sa2twb2xra1ZvbGtrUW9sa2tYb2xra0tvbGtrTW9sa2t1b2xra2QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Q291bnQgb24gbWUsIEnigJltIGdvaW5nIHRvIGZ1bGZpbGwgdGhvc2UgZmFudGFzaWVzIG9mIHlvdXJzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtDb3VudCBvbiBtZSwgSeKAmW0gZ29pbmcgdG8gZnVsZmlsbCB0aG9zZSBmYW50YXNpZXMgb2YgeW91cnMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0xlYXZlIGl0IHRvIG1lJnF1b3Q7ICZxdW90O29vbGtrVm9sa2t6b2xra0hvbGtrbm9sa2tLb2xra0xvbGtrWW9sa2tub2xra1VvbGtrVW9sa2tJb2xra3FvbGtrYm9sa2twb2xra0YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGVhdmUgaXQgdG8gbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0xlYXZlIGl0IHRvIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJ4oCZbGwgZG8gbXkgYmVzdCB0byBtYWtlIHN1cmUgd2UgYm90aCBlbmpveSB0aGlzJnF1b3Q7ICZxdW90O2dvbGtrcG9sa2t3b2xra1BvbGtrWW9sa2tPb2xra0tvbGtrem9sa2tjb2xra3ZvbGtrV29sa2tWb2xra1lvbGtrdW9sa2tZb2xra0wmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmWxsIGRvIG15IGJlc3QgdG8gbWFrZSBzdXJlIHdlIGJvdGggZW5qb3kgdGhpcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmWxsIGRvIG15IGJlc3QgdG8gbWFrZSBzdXJlIHdlIGJvdGggZW5qb3kgdGhpcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Sm9sa2t6b2xra2hvbGtrS29sa2t2b2xra0dvbGtreW9sa2t2JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjdzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNKb2xra3pvbGtraG9sa2tLb2xra3ZvbGtrR29sa2t5b2xra3YmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtBcmUgeW91IHNlcmlvdXM/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfM183JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QXJlIHlvdSBzZXJpb3VzPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8zXzcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTQzIiBuYW1lPSJBbm5pZUNoYXRFcDJfM183IiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMTg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzNfNyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtBcmUgeW91IHNlcmlvdXM/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QXJlIHlvdSBzZXJpb3VzPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QXJlIHlvdSBzZXJpb3VzPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O09mIGNvdXJzZSZxdW90OyAmcXVvdDtDb2xra0dvbGtrZ29sa2tpb2xra05vbGtrYm9sa2tnb2xra0JvbGtrc29sa2tQb2xra0dvbGtrdW9sa2tub2xra3pvbGtrdW9sa2tGJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09mIGNvdXJzZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7T2YgY291cnNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJdOKAmXMgdGhlIGxlYXN0IEkgY2FuIGRvJnF1b3Q7ICZxdW90O0lvbGtrbW9sa2tsb2xra1JvbGtrem9sa2tZb2xra1JvbGtrQ29sa2tPb2xra0JvbGtrV29sa2thb2xra3RvbGtrUG9sa2tHb2xra1YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXTigJlzIHRoZSBsZWFzdCBJIGNhbiBkbyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SXTigJlzIHRoZSBsZWFzdCBJIGNhbiBkbyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7V29sa2tVb2xra3FvbGtrZW9sa2t3b2xra09vbGtrbG9sa2trJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNXb2xra1VvbGtrcW9sa2tlb2xra3dvbGtrT29sa2tsb2xra2smcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGF0IG1ha2VzIG1lIHNvIGhhcHB5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfM184JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhhdCBtYWtlcyBtZSBzbyBoYXBweSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8zXzgmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTQ0IiBuYW1lPSJBbm5pZUNoYXRFcDJfM184IiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMTg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzNfOCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGF0IG1ha2VzIG1lIHNvIGhhcHB5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhdCBtYWtlcyBtZSBzbyBoYXBweSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhhdCBtYWtlcyBtZSBzbyBoYXBweSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJltIGdsYWQgdG8gaGVhciB0aGF0JnF1b3Q7ICZxdW90O3VvbGtrVW9sa2tUb2xra0ZvbGtrR29sa2ttb2xra1hvbGtrZ29sa2t6b2xra0JvbGtrVW9sa2tUb2xra1VvbGtrem9sa2tBb2xra0UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gZ2xhZCB0byBoZWFyIHRoYXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJltIGdsYWQgdG8gaGVhciB0aGF0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtHZXQgcmVhZHkgJG5hbWUsIGJlY2F1c2UgYSBuZXcgY2hhcHRlciBpbiBvdXIgbGl2ZXMgaXMgYWJvdXQgdG8gYmVnaW4mcXVvdDsgJnF1b3Q7dW9sa2t1b2xra1JvbGtra29sa2tUb2xra0VvbGtrcW9sa2tHb2xra0NvbGtrTW9sa2t6b2xra1JvbGtrRG9sa2tSb2xra2FvbGtrUCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtHZXQgcmVhZHkgJG5hbWUsIGJlY2F1c2UgYSBuZXcgY2hhcHRlciBpbiBvdXIgbGl2ZXMgaXMgYWJvdXQgdG8gYmVnaW4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0dldCByZWFkeSAkbmFtZSwgYmVjYXVzZSBhIG5ldyBjaGFwdGVyIGluIG91ciBsaXZlcyBpcyBhYm91dCB0byBiZWdpbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Q29sa2t6b2xra1dvbGtrWG9sa2t5b2xra0lvbGtreG9sa2toJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjRzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNDb2xra3pvbGtrV29sa2tYb2xra3lvbGtrSW9sa2t4b2xra2gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3UgYmV0LCBiYWJlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfM185JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WW91IGJldCwgYmFiZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8zXzkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTQ1IiBuYW1lPSJBbm5pZUNoYXRFcDJfM185IiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsMTg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzNfOSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZb3UgYmV0LCBiYWJlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGJldCwgYmFiZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW91IGJldCwgYmFiZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC44cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9pbWcgJnF1b3Q7YXNzZXRzL2ltZy9lcDIvYW5uaWVfcGhvdG9fNC53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7cW9sa2txb2xra3RvbGtrSW9sa2tmb2xra3VvbGtrcW9sa2tWb2xra0NvbGtrYm9sa2twb2xra05vbGtram9sa2t1b2xra25vbGtrdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAyLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2VwMi9hbm5pZV9waG90b180LndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRwaG90b3MucHVzaCgmcXVvdDthc3NldHMvaW1nL2VwMi9hbm5pZV9waG90b180LndlYnAmcXVvdDspJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuOHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtTbywgYXJlIHlvdSByZWFsbHkgZ29pbmcgdG8gbGV0IG90aGVyIG1lbiB0YWtlIHlvdXIgZ2lybD8mcXVvdDsgJnF1b3Q7aG9sa2tBb2xra0xvbGtrbm9sa2tBb2xra01vbGtrQm9sa2tFb2xra3NvbGtrcG9sa2tGb2xra1dvbGtrcm9sa2tkb2xra0dvbGtrUiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTbywgYXJlIHlvdSByZWFsbHkgZ29pbmcgdG8gbGV0IG90aGVyIG1lbiB0YWtlIHlvdXIgZ2lybD8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1NvLCBhcmUgeW91IHJlYWxseSBnb2luZyB0byBsZXQgb3RoZXIgbWVuIHRha2UgeW91ciBnaXJsPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7RG8geW91IHJlYWxseSB3YW50IGFub3RoZXIgbWFuIHRvIHRha2UgbWUgZm9yY2VmdWxseT8mcXVvdDsgJnF1b3Q7Z29sa2tlb2xra0pvbGtra29sa2t0b2xra2pvbGtrU29sa2tZb2xra3lvbGtreG9sa2tKb2xra0VvbGtrbG9sa2tlb2xra3ZvbGtrYyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEbyB5b3UgcmVhbGx5IHdhbnQgYW5vdGhlciBtYW4gdG8gdGFrZSBtZSBmb3JjZWZ1bGx5PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7RG8geW91IHJlYWxseSB3YW50IGFub3RoZXIgbWFuIHRvIHRha2UgbWUgZm9yY2VmdWxseT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0dvbGtraW9sa2tIb2xra2NvbGtrdW9sa2tob2xra0RvbGtreiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNS4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjR29sa2tpb2xra0hvbGtrY29sa2t1b2xra2hvbGtrRG9sa2t6JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7Tm90aGluZyB3b3VsZCBtYWtlIG1lIGhhcHBpZXImcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8zXzEwYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O05vdGhpbmcgd291bGQgbWFrZSBtZSBoYXBwaWVyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTBhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0dvbGtraW9sa2tIb2xra2NvbGtrdW9sa2tob2xra0RvbGtreiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O/CfpbUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8zXzEwYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O/CfpbUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfM18xMGImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTQ2IiBuYW1lPSJBbm5pZUNoYXRFcDJfM18xMGEiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwxODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfM18xMGEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7Tm90aGluZyB3b3VsZCBtYWtlIG1lIGhhcHBpZXImcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtOb3RoaW5nIHdvdWxkIG1ha2UgbWUgaGFwcGllciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7Tm90aGluZyB3b3VsZCBtYWtlIG1lIGhhcHBpZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7d29sa2tub2xra0xvbGtrWG9sa2tQb2xra1ZvbGtrV29sa2tHJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN3b2xra25vbGtrTG9sa2tYb2xra1BvbGtrVm9sa2tXb2xra0cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtTb29uLCB5b3XigJlsbCBiZSB1c2VkIGJ5IG90aGVyIG1lbiB0byBzYXRpc2Z5IHRoZWlyIGRlc2lyZXMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8zXzExYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1Nvb24sIHlvdeKAmWxsIGJlIHVzZWQgYnkgb3RoZXIgbWVuIHRvIHNhdGlzZnkgdGhlaXIgZGVzaXJlcyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8zXzExYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNDciIG5hbWU9IkFubmllQ2hhdEVwMl8zXzEwYiIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDE4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8zXzEwYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xld2RfZmFjZS53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7WW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9sZXdkX2ZhY2Uud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGNhbuKAmXQgd2FpdCBmb3IgbXkgYm9keSB0byBiZSB1c2VkIGJ5IHNvbWVvbmUgd2hvIGlzbuKAmXQgeW91JnF1b3Q7ICZxdW90O1VvbGtrQW9sa2tRb2xra3lvbGtrdG9sa2t4b2xra09vbGtrWG9sa2tNb2xra3RvbGtrc29sa2tzb2xra1JvbGtrQm9sa2t0b2xra20mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBjYW7igJl0IHdhaXQgZm9yIG15IGJvZHkgdG8gYmUgdXNlZCBieSBzb21lb25lIHdobyBpc27igJl0IHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBjYW7igJl0IHdhaXQgZm9yIG15IGJvZHkgdG8gYmUgdXNlZCBieSBzb21lb25lIHdobyBpc27igJl0IHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7T29sa2tjb2xra2NvbGtrWW9sa2tBb2xra1FvbGtrYm9sa2t6JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNPb2xra2NvbGtrY29sa2tZb2xra0FvbGtrUW9sa2tib2xra3omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDvwn5i2JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfM18xMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O/CfmLYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfM18xMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNDgiIG5hbWU9IkFubmllQ2hhdEVwMl8zXzExYSIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDE4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8zXzExYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtTb29uLCB5b3XigJlsbCBiZSB1c2VkIGJ5IG90aGVyIG1lbiB0byBzYXRpc2Z5IHRoZWlyIGRlc2lyZXMmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTb29uLCB5b3XigJlsbCBiZSB1c2VkIGJ5IG90aGVyIG1lbiB0byBzYXRpc2Z5IHRoZWlyIGRlc2lyZXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1Nvb24sIHlvdeKAmWxsIGJlIHVzZWQgYnkgb3RoZXIgbWVuIHRvIHNhdGlzZnkgdGhlaXIgZGVzaXJlcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgY2Fu4oCZdCB3YWl0IGZvciBteSBib2R5IHRvIGJlIHVzZWQgYnkgc29tZW9uZSB3aG8gaXNu4oCZdCB5b3UmcXVvdDsgJnF1b3Q7bW9sa2tjb2xra0RvbGtrb29sa2tWb2xra3FvbGtrUm9sa2tnb2xra3pvbGtrTW9sa2tsb2xra2hvbGtrRW9sa2tub2xra0FvbGtrbyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGNhbuKAmXQgd2FpdCBmb3IgbXkgYm9keSB0byBiZSB1c2VkIGJ5IHNvbWVvbmUgd2hvIGlzbuKAmXQgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGNhbuKAmXQgd2FpdCBmb3IgbXkgYm9keSB0byBiZSB1c2VkIGJ5IHNvbWVvbmUgd2hvIGlzbuKAmXQgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDttb2xra0lvbGtrUG9sa2ttb2xra3JvbGtrS29sa2tVb2xra3EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I21vbGtrSW9sa2tQb2xra21vbGtrcm9sa2tLb2xra1VvbGtrcSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O/CfmLYmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8zXzEyJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q78J+YtiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8zXzEyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE0OSIgbmFtZT0iQW5uaWVDaGF0RXAyXzNfMTIiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsMTg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9ub193b3Jkcy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7WW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9ub193b3Jkcy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJltIHNvcnJ5JnF1b3Q7ICZxdW90O2FvbGtrTm9sa2tJb2xra3BvbGtrZG9sa2tjb2xra0pvbGtrYW9sa2tab2xra05vbGtrT29sa2tmb2xra21vbGtrRm9sa2tzb2xra2omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gc29ycnkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJltIHNvcnJ5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuOHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtXYXMgdGhhdCB0b28gbXVjaD8mcXVvdDsgJnF1b3Q7Sm9sa2tKb2xra3lvbGtraG9sa2tLb2xra1ZvbGtrWG9sa2tXb2xra0FvbGtrem9sa2t5b2xra05vbGtrUW9sa2tOb2xra1VvbGtrcyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXYXMgdGhhdCB0b28gbXVjaD8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1dhcyB0aGF0IHRvbyBtdWNoPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjhzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SeKAmW0ganVzdCB0cnlpbmcgdG8gZ2V0IHVzZWQgdG8gaXQmcXVvdDsgJnF1b3Q7ZW9sa2t5b2xra1dvbGtrcW9sa2tJb2xra3dvbGtrQW9sa2tPb2xra05vbGtrcm9sa2tZb2xra1RvbGtrTG9sa2tJb2xra1lvbGtrcCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBqdXN0IHRyeWluZyB0byBnZXQgdXNlZCB0byBpdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmW0ganVzdCB0cnlpbmcgdG8gZ2V0IHVzZWQgdG8gaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0RvbGtrVW9sa2tUb2xra21vbGtrc29sa2t3b2xra2dvbGtreCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjRG9sa2tVb2xra1RvbGtrbW9sa2tzb2xra3dvbGtrZ29sa2t4JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7TmFoLCBpdCB3YXMgcGVyZmVjdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtOYWgsIGl0IHdhcyBwZXJmZWN0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTUwIiBuYW1lPSJBbm5pZUNoYXRFcDJfM18xMyIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSwxODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfM18xMyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtOYWgsIGl0IHdhcyBwZXJmZWN0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TmFoLCBpdCB3YXMgcGVyZmVjdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7TmFoLCBpdCB3YXMgcGVyZmVjdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtub2xra1RvbGtrdm9sa2tSb2xra1hvbGtrdW9sa2tpb2xra3gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I25vbGtrVG9sa2t2b2xra1JvbGtrWG9sa2t1b2xra2lvbGtreCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0l04oCZcyBqdXN0IHRoYXQgSeKAmW0gZ2V0dGluZyB1c2VkIHRvIGl0IHRvbyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTQmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJdOKAmXMganVzdCB0aGF0IEnigJltIGdldHRpbmcgdXNlZCB0byBpdCB0b28mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfM18xNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNTEiIG5hbWU9IkFubmllQ2hhdEVwMl8zXzE0IiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMTk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SXTigJlzIGp1c3QgdGhhdCBJ4oCZbSBnZXR0aW5nIHVzZWQgdG8gaXQgdG9vJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXTigJlzIGp1c3QgdGhhdCBJ4oCZbSBnZXR0aW5nIHVzZWQgdG8gaXQgdG9vJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJdOKAmXMganVzdCB0aGF0IEnigJltIGdldHRpbmcgdXNlZCB0byBpdCB0b28mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbG1hby53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbG1hby53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7dm9sa2tUb2xra3FvbGtrcm9sa2tGb2xra2JvbGtrQm9sa2tQJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN2b2xra1RvbGtrcW9sa2tyb2xra0ZvbGtrYm9sa2tCb2xra1AmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGxvdmUgeW91LCBBbm5pZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTUmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGxvdmUgeW91LCBBbm5pZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8zXzE1JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE1MiIgbmFtZT0iQW5uaWVDaGF0RXAyXzNfMTUiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSwxOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfM18xNSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGxvdmUgeW91LCBBbm5pZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbG92ZSB5b3UsIEFubmllJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGxvdmUgeW91LCBBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgbG92ZSB5b3UsICRuYW1lJnF1b3Q7ICZxdW90O2VvbGtrb29sa2tWb2xra0FvbGtrUm9sa2tIb2xra3lvbGtrcG9sa2tKb2xra2VvbGtrWW9sa2tDb2xra0VvbGtrWm9sa2thb2xra0MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBsb3ZlIHlvdSwgJG5hbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbG92ZSB5b3UsICRuYW1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtEb27igJl0IHN0YXkgdXAgdG9vIGxhdGUmcXVvdDsgJnF1b3Q7R29sa2tHb2xra2tvbGtrUG9sa2tnb2xra0JvbGtrY29sa2tXb2xra1hvbGtrTG9sa2tNb2xra1ZvbGtra29sa2tsb2xra29vbGtreSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEb27igJl0IHN0YXkgdXAgdG9vIGxhdGUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0RvbuKAmXQgc3RheSB1cCB0b28gbGF0ZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7TWFrZSBzdXJlIHRvIGdldCBlbm91Z2ggc2xlZXAmcXVvdDsgJnF1b3Q7bm9sa2tLb2xra2pvbGtrdG9sa2t6b2xra1FvbGtrSG9sa2tTb2xra1hvbGtrRm9sa2tXb2xra0RvbGtrWG9sa2tBb2xra1pvbGtrWCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtNYWtlIHN1cmUgdG8gZ2V0IGVub3VnaCBzbGVlcCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7TWFrZSBzdXJlIHRvIGdldCBlbm91Z2ggc2xlZXAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0JvbGtrQm9sa2tOb2xra0dvbGtrbW9sa2tQb2xra2xvbGtrZyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjQm9sa2tCb2xra05vbGtrR29sa2ttb2xra1BvbGtrbG9sa2tnJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSB3aWxsJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfM18xNiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgd2lsbCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8zXzE2JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE1MyIgbmFtZT0iQW5uaWVDaGF0RXAyXzNfMTYiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCwxOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfM18xNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIHdpbGwmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHdpbGwmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgd2lsbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtRb2xra2lvbGtrVm9sa2tXb2xra2lvbGtrS29sa2t1b2xra1EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1FvbGtraW9sa2tWb2xra1dvbGtraW9sa2tLb2xra3VvbGtrUSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0dvb2QgbmlnaHQsIGJhYmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8zXzE3JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7R29vZCBuaWdodCwgYmFiZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8zXzE3JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE1NCIgbmFtZT0iQW5uaWVDaGF0RXAyXzNfMTciIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwxOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfM18xNyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtHb29kIG5pZ2h0LCBiYWJlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7R29vZCBuaWdodCwgYmFiZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7R29vZCBuaWdodCwgYmFiZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0dvb2QgbmlnaHQsIGhvbmV5JnF1b3Q7ICZxdW90O3FvbGtrRG9sa2tHb2xra1VvbGtrTG9sa2tsb2xra3BvbGtrRm9sa2tEb2xra2FvbGtrSG9sa2tab2xra3dvbGtrWG9sa2tGb2xra3UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7R29vZCBuaWdodCwgaG9uZXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0dvb2QgbmlnaHQsIGhvbmV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtZb2xra3pvbGtrQW9sa2tPb2xra0JvbGtrb29sa2tjb2xra1QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1lvbGtrem9sa2tBb2xra09vbGtrQm9sa2tvb2xra2NvbGtrVCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O/CfpbAmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8zXzE4JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q78J+lsCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8zXzE4JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE1NSIgbmFtZT0iQW5uaWVDaGF0RXAyXzNfMTgiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwxOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfM18xOCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7WW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7CiZsdDshLS1ub3RlcyAtLSZndDsKJmx0OyZsdDtpZiAka2lzc2luZyA9PSB0cnVlIGFuZCAkZ2FuZ2JhbmcgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX25vdGVzLnB1c2goJnF1b3Q7V2UgdGFsa2VkIGluIGRlcHRoIGFib3V0IG15IGZhbnRhc3kuIEkgdG9sZCBoZXIgSSB3b3VsZCBsaWtlIGhlciB0byBraXNzIG90aGVyIGd1eXMgYW5kIHRoYXQgSSB3b3VsZCBsb3ZlIGZvciBhIGdyb3VwIG9mIG1lbiB0byB1c2UgaGVyIGhvd2V2ZXIgdGhleSB3YW50LiZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7aWYgJGtpc3NpbmcgPT0gZmFsc2UgYW5kICRnYW5nYmFuZyA9PSB0cnVlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbm90ZXMucHVzaCgmcXVvdDtXZSB0YWxrZWQgaW4gZGVwdGggYWJvdXQgbXkgZmFudGFzeS4gSSB0b2xkIGhlciBJIHdvdWxkIGZlZWwgdW5jb21mb3J0YWJsZSBpZiBzaGUga2lzc2VkIG90aGVyIGd1eXMsIGJ1dCBJIHdvdWxkIGxvdmUgZm9yIGEgZ3JvdXAgb2YgbWVuIHRvIHVzZSBoZXIgaG93ZXZlciB0aGV5IHdhbnQuJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtpZiAka2lzc2luZyA9PSB0cnVlIGFuZCAkZ2FuZ2JhbmcgPT0gZmFsc2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9ub3Rlcy5wdXNoKCZxdW90O1dlIHRhbGtlZCBpbiBkZXB0aCBhYm91dCBteSBmYW50YXN5LiBJIHRvbGQgaGVyIEkgd291bGQgbGlrZSBoZXIgdG8ga2lzcyBvdGhlciBndXlzLCBidXQgSSB3b3VsZCBmZWVsIG1vcmUgY29tZm9ydGFibGUgaWYgc2hlIG9ubHkgY2hlYXRlZCBvbiBtZSB3aXRoIG9uZSBndXkuJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtpZiAka2lzc2luZyA9PSBmYWxzZSBhbmQgJGdhbmdiYW5nID09IGZhbHNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbm90ZXMucHVzaCgmcXVvdDtXZSB0YWxrZWQgaW4gZGVwdGggYWJvdXQgbXkgZmFudGFzeS4gSSB0b2xkIGhlciBJIHdvdWxkIGZlZWwgdW5jb21mb3J0YWJsZSBpZiBzaGUga2lzc2VkIG90aGVyIGd1eXMsIGFuZCBJ4oCZZCBmZWVsIGJldHRlciBpZiBzaGUgb25seSBjaGVhdGVkIG9uIG1lIHdpdGggb25lIGd1eS4mcXVvdDspJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7IS0tbm90ZXMgLS0mZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q78J+lsCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgPSAmcXVvdDtBbm5pZUNoYXRFcDJfM18xOCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0X2hvdXIgPSAmcXVvdDsyMjozNyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzIyOjM3JnF1b3Q7Jmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtvZmZsaW5lLXRleHQmcXVvdDsmZ3Q7QW5uaWUgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXQgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlID0gJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzEmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7JG5hbWUsIGFyZSB5b3Ugc3RpbGwgYXdha2U/JnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE1NiIgbmFtZT0iQW5uaWVfbm90ZSIgdGFncz0ibm90ZXNpbiBub3Rob3VyIiBwb3NpdGlvbj0iNzI1LDE5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aGVhZGVyICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0FubmllJnF1b3Q7ICZxdW90O05vdGVzJnF1b3Q7IHRydWUmZ3Q7Jmd0OwogICAgJmx0O2RpdiBpZD0mcXVvdDtwYWRkaW5nLWNvbnRhaW5lciZxdW90OyBjbGFzcz0mcXVvdDt0ZXh0X2JsYWNrJnF1b3Q7Jmd0OwogICAgICAgICZsdDtkaXYmZ3Q7LSBTaGXigJlzIG15IGdpcmxmcmllbmQuIFdlIG1ldCBpbiBoaWdoIHNjaG9vbCBhbmQgaGF2ZSBiZWVuIGluc2VwYXJhYmxlIGV2ZXIgc2luY2UuIFdl4oCZdmUgYmVlbiBsaXZpbmcgdG9nZXRoZXIgZm9yIGEgZmV3IHllYXJzIG5vdy4mbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0O2ZvciBfaSByYW5nZSAkQW5uaWVfbm90ZXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IHN0eWxlPSZxdW90O21hcmdpbi10b3A6IDE2cHgmcXVvdDsmZ3Q7LSBfaSZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsmbHQ7L2ZvciZndDsmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNTciIG5hbWU9IkhhaWxleV9jaGF0IiB0YWdzPSJtYXBwIG5vdGhvdXIiIHBvc2l0aW9uPSI4NTAsMTk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKLypyZWdpb24gRW1pbHkgY2hhdCovCiZsdDsmbHQ7aWYgJEhhaWxleV9jaGF0ID09IHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDtoZWFkZXIgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyAkSGFpbGV5X3BhdXNlZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aGVhZGVyICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsgdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDttZXNzYWdlX2NvbnRhaW5lciZxdW90OyZndDsKJmx0OyZsdDtmb3IgX2xpbmUgcmFuZ2UgJEhhaWxleV9jaGF0TG9nJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgX2xpbmUudHlwZSA9PSAxJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgX2xpbmUuc2VuZGVyIF9saW5lLm1lc3NhZ2UgX2xpbmUuYXZhdGFyJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZWlmIF9saW5lLnR5cGUgPT0gMiZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDttZXNzYWdlX2ltZyBfbGluZS5tZXNzYWdlJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZWlmIF9saW5lLnR5cGUgPT0gMyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDttZXNzYWdlX3ZpZGVvIF9saW5lLm1lc3NhZ2VbMF0gX2xpbmUubWVzc2FnZVsxXSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2VpZiBfbGluZS50eXBlID09IDQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bWVzc2FnZV9lbW9qaSBfbGluZS5tZXNzYWdlIGZhbHNlIF9saW5lLnNlbmRlciZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7L2ZvciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJEhhaWxleV9wYXVzZWQgPT0gZmFsc2UmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkSGFpbGV5X2NoYXQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICRIYWlsZXlfY2hhdFN0YXRlJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBAaWQ9JnF1b3Q7JEhhaWxleV9sYXN0SWQuc2xpY2UoMSkmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDtlbmQmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2NoYXRfYmFyJnF1b3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O2NvbnRlbnQmcXVvdDsmZ3Q7CiZsdDsmbHQ7aWYgJEhhaWxleV9wYXVzZWQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRIYWlsZXlfb3B0aW9uc1swXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICRIYWlsZXlfb3B0aW9uc1swXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpbmNsdWRlICRIYWlsZXlfb3B0aW9uc1swXS5wYXNzYWdlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJEhhaWxleV9vcHRpb25zWzFdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJEhhaWxleV9vcHRpb25zWzFdLnRleHQmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJEhhaWxleV9vcHRpb25zWzFdLnBhc3NhZ2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkSGFpbGV5X29wdGlvbnNbMl0mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bGluayAkSGFpbGV5X29wdGlvbnNbMl0udGV4dCZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkSGFpbGV5X29wdGlvbnNbMl0ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRIYWlsZXlfb3B0aW9uc1szXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICRIYWlsZXlfb3B0aW9uc1szXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpbmNsdWRlICRIYWlsZXlfb3B0aW9uc1szXS5wYXNzYWdlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7L2RpdiZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7dGltZWQgMC4ycyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsSW5zdGEoKTsKICAgICZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNTgiIG5hbWU9IkhhaWxleVN0YXJ0MSIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDE5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0hpICRuYW1lLCBNci4gUGhpbGxpcHMgYXNrZWQgbWUgdG8gc2VuZCB5b3UgdGhlIGxhc3QgcXVhcnRlcuKAmXMgcmVwb3J0IHNvIHlvdSBjYW4gdXNlIGl0IGFzIGEgcmVmZXJlbmNlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hpICRuYW1lLCBNci4gUGhpbGxpcHMgYXNrZWQgbWUgdG8gc2VuZCB5b3UgdGhlIGxhc3QgcXVhcnRlcuKAmXMgcmVwb3J0IHNvIHlvdSBjYW4gdXNlIGl0IGFzIGEgcmVmZXJlbmNlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SGkgJG5hbWUsIE1yLiBQaGlsbGlwcyBhc2tlZCBtZSB0byBzZW5kIHlvdSB0aGUgbGFzdCBxdWFydGVy4oCZcyByZXBvcnQgc28geW91IGNhbiB1c2UgaXQgYXMgYSByZWZlcmVuY2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS41cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgaGUgYXNrZWQgeW91IGZvciBhIGZ1bGwgcmVwb3J0IGluIHN1Y2ggYSBzaG9ydCB0aW1lJnF1b3Q7ICZxdW90O0NvbGtrVW9sa2tkb2xra1dvbGtrQW9sa2t3b2xra1hvbGtrZW9sa2tOb2xra3RvbGtrUm9sa2ttb2xra3pvbGtrU29sa2tMb2xra0MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGNhbuKAmXQgYmVsaWV2ZSBoZSBhc2tlZCB5b3UgZm9yIGEgZnVsbCByZXBvcnQgaW4gc3VjaCBhIHNob3J0IHRpbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIGNhbuKAmXQgYmVsaWV2ZSBoZSBhc2tlZCB5b3UgZm9yIGEgZnVsbCByZXBvcnQgaW4gc3VjaCBhIHNob3J0IHRpbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi43cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtZb3UgbXVzdCBoYXZlIHJlYWxseSBwaXNzZWQgaGltIG9mZiB0aGlzIHRpbWUmcXVvdDsgJnF1b3Q7Sm9sa2tjb2xra2xvbGtrUW9sa2tFb2xra2NvbGtrVW9sa2t2b2xra2ZvbGtreW9sa2t0b2xra05vbGtrSW9sa2tTb2xra2lvbGtrWiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBtdXN0IGhhdmUgcmVhbGx5IHBpc3NlZCBoaW0gb2ZmIHRoaXMgdGltZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1lvdSBtdXN0IGhhdmUgcmVhbGx5IHBpc3NlZCBoaW0gb2ZmIHRoaXMgdGltZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7eG9sa2tFb2xra1pvbGtrUm9sa2tYb2xra3RvbGtrc29sa2tJJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjJzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyN4b2xra0VvbGtrWm9sa2tSb2xra1hvbGtrdG9sa2tzb2xra0kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhhdCBkYW1uIG9sZCBtYW4gaGF0ZXMgbWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleVN0YXJ0MV8yYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoYXQgZGFtbiBvbGQgbWFuIGhhdGVzIG1lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5U3RhcnQxXzJhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyN4b2xra0VvbGtrWm9sa2tSb2xra1hvbGtrdG9sa2tzb2xra0kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSByZWFsbHkgZG9u4oCZdCBrbm93IGlmIEkgY2FuIGZpbmlzaCB0aGlzIGJ5IEZyaWRheSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5U3RhcnQxXzJiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSByZWFsbHkgZG9u4oCZdCBrbm93IGlmIEkgY2FuIGZpbmlzaCB0aGlzIGJ5IEZyaWRheSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleVN0YXJ0MV8yYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE1OSIgbmFtZT0iSGFpbGV5U3RhcnQxXzJhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDE5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlTdGFydDFfMmEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGF0IGRhbW4gb2xkIG1hbiBoYXRlcyBtZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGF0IGRhbW4gb2xkIG1hbiBoYXRlcyBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RoYXQgZGFtbiBvbGQgbWFuIGhhdGVzIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O09vbGtrYW9sa2tab2xra1pvbGtrUm9sa2tEb2xra0JvbGtrUSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjT29sa2thb2xra1pvbGtrWm9sa2tSb2xra0RvbGtrQm9sa2tRJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgdm9sdW50ZWVyZWQgZm9yIHRoaXMgdHJpcCB0aGlua2luZyBJ4oCZZCBlYXJuIHNvbWUgcG9pbnRzIHdpdGggaGltJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlTdGFydDFfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgdm9sdW50ZWVyZWQgZm9yIHRoaXMgdHJpcCB0aGlua2luZyBJ4oCZZCBlYXJuIHNvbWUgcG9pbnRzIHdpdGggaGltJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5U3RhcnQxXzQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTYwIiBuYW1lPSJIYWlsZXlTdGFydDFfMmIiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMTk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleVN0YXJ0MV8yYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgcmVhbGx5IGRvbuKAmXQga25vdyBpZiBJIGNhbiBmaW5pc2ggdGhpcyBieSBGcmlkYXkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSByZWFsbHkgZG9u4oCZdCBrbm93IGlmIEkgY2FuIGZpbmlzaCB0aGlzIGJ5IEZyaWRheSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgcmVhbGx5IGRvbuKAmXQga25vdyBpZiBJIGNhbiBmaW5pc2ggdGhpcyBieSBGcmlkYXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7VG9sa2tFb2xra3ZvbGtrVW9sa2t1b2xra3NvbGtrQW9sa2toJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNUb2xra0VvbGtrdm9sa2tVb2xra3VvbGtrc29sa2tBb2xra2gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSB2b2x1bnRlZXJlZCBmb3IgdGhpcyB0cmlwIHRoaW5raW5nIEnigJlkIGVhcm4gc29tZSBwb2ludHMgd2l0aCBoaW0mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleVN0YXJ0MV80JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSB2b2x1bnRlZXJlZCBmb3IgdGhpcyB0cmlwIHRoaW5raW5nIEnigJlkIGVhcm4gc29tZSBwb2ludHMgd2l0aCBoaW0mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlTdGFydDFfNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNjEiIG5hbWU9IkhhaWxleVN0YXJ0MV80IiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMjEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleVN0YXJ0MV80JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSB2b2x1bnRlZXJlZCBmb3IgdGhpcyB0cmlwIHRoaW5raW5nIEnigJlkIGVhcm4gc29tZSBwb2ludHMgd2l0aCBoaW0mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB2b2x1bnRlZXJlZCBmb3IgdGhpcyB0cmlwIHRoaW5raW5nIEnigJlkIGVhcm4gc29tZSBwb2ludHMgd2l0aCBoaW0mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIHZvbHVudGVlcmVkIGZvciB0aGlzIHRyaXAgdGhpbmtpbmcgSeKAmWQgZWFybiBzb21lIHBvaW50cyB3aXRoIGhpbSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt3b2xra1RvbGtrUW9sa2tYb2xra2NvbGtraG9sa2tCb2xra3gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3dvbGtrVG9sa2tRb2xra1hvbGtrY29sa2tob2xra0JvbGtreCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtCdXQgaXQgbG9va3MgbGlrZSBJIGp1c3QgZW5kZWQgdXAgcHV0dGluZyBteSBqb2IgYXQgcmlzayZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5U3RhcnQxXzUmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtCdXQgaXQgbG9va3MgbGlrZSBJIGp1c3QgZW5kZWQgdXAgcHV0dGluZyBteSBqb2IgYXQgcmlzayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleVN0YXJ0MV81JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE2MiIgbmFtZT0iSGFpbGV5U3RhcnQxXzUiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSwyMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5U3RhcnQxXzUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtCdXQgaXQgbG9va3MgbGlrZSBJIGp1c3QgZW5kZWQgdXAgcHV0dGluZyBteSBqb2IgYXQgcmlzayZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgaXQgbG9va3MgbGlrZSBJIGp1c3QgZW5kZWQgdXAgcHV0dGluZyBteSBqb2IgYXQgcmlzayZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0J1dCBpdCBsb29rcyBsaWtlIEkganVzdCBlbmRlZCB1cCBwdXR0aW5nIG15IGpvYiBhdCByaXNrJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0RvbuKAmXQgd29ycnksIEnigJlsbCBkbyB3aGF0IEkgY2FuIHRvIGhlbHAgeW91JnF1b3Q7ICZxdW90O2NvbGtrZ29sa2tIb2xra2ZvbGtrRm9sa2tWb2xra2JvbGtrT29sa2tPb2xra21vbGtrZm9sa2tUb2xra0VvbGtrWW9sa2tvb2xra20mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEb27igJl0IHdvcnJ5LCBJ4oCZbGwgZG8gd2hhdCBJIGNhbiB0byBoZWxwIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0RvbuKAmXQgd29ycnksIEnigJlsbCBkbyB3aGF0IEkgY2FuIHRvIGhlbHAgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuOXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7WW91IHdlcmUgYWx3YXlzIHRoZXJlIGZvciBtZSB3aGVuIEkgZmlyc3Qgam9pbmVkIHRoZSBjb21wYW55JnF1b3Q7ICZxdW90O1VvbGtrVG9sa2t2b2xra3NvbGtrV29sa2tDb2xra21vbGtram9sa2tDb2xra0dvbGtrY29sa2tjb2xra1pvbGtrWG9sa2tGb2xra0QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3Ugd2VyZSBhbHdheXMgdGhlcmUgZm9yIG1lIHdoZW4gSSBmaXJzdCBqb2luZWQgdGhlIGNvbXBhbnkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZb3Ugd2VyZSBhbHdheXMgdGhlcmUgZm9yIG1lIHdoZW4gSSBmaXJzdCBqb2luZWQgdGhlIGNvbXBhbnkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy43cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjVzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtDb3VudCBvbiBtZSBmb3Igd2hhdGV2ZXIgeW91IG5lZWQsIEkgYWxyZWFkeSBzZW50IHRoZSByZXBvcnQgdG8geW91ciBlbWFpbCZxdW90OyAmcXVvdDtHb2xra0xvbGtrZ29sa2tpb2xra1BvbGtrTm9sa2txb2xra3FvbGtrTW9sa2t5b2xra0JvbGtrU29sa2tKb2xra1pvbGtrRG9sa2tKJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Q291bnQgb24gbWUgZm9yIHdoYXRldmVyIHlvdSBuZWVkLCBJIGFscmVhZHkgc2VudCB0aGUgcmVwb3J0IHRvIHlvdXIgZW1haWwmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtDb3VudCBvbiBtZSBmb3Igd2hhdGV2ZXIgeW91IG5lZWQsIEkgYWxyZWFkeSBzZW50IHRoZSByZXBvcnQgdG8geW91ciBlbWFpbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjhzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuOHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgYWxzbyBpbmNsdWRlZCBhIHRlbXBsYXRlIHlvdSBjYW4gdXNlIGFzIGEgYmFzZSBmb3IgdGhlIG9uZSB5b3UgbmVlZCB0byBzdWJtaXQmcXVvdDsgJnF1b3Q7Sm9sa2tqb2xra3VvbGtrQW9sa2tVb2xra3NvbGtreG9sa2tBb2xra05vbGtrbW9sa2tBb2xra0tvbGtrQ29sa2tib2xra3lvbGtraSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgYWxzbyBpbmNsdWRlZCBhIHRlbXBsYXRlIHlvdSBjYW4gdXNlIGFzIGEgYmFzZSBmb3IgdGhlIG9uZSB5b3UgbmVlZCB0byBzdWJtaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIGFsc28gaW5jbHVkZWQgYSB0ZW1wbGF0ZSB5b3UgY2FuIHVzZSBhcyBhIGJhc2UgZm9yIHRoZSBvbmUgeW91IG5lZWQgdG8gc3VibWl0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDguMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7S2VlcCBtZSB1cGRhdGVkIG9uIGhvdyBpdOKAmXMgZ29pbmcmcXVvdDsgJnF1b3Q7b29sa2tmb2xra1FvbGtrTG9sa2tIb2xra05vbGtrTm9sa2tnb2xra1RvbGtrcW9sa2tlb2xra1RvbGtrVG9sa2t5b2xra29vbGtrVCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0tlZXAgbWUgdXBkYXRlZCBvbiBob3cgaXTigJlzIGdvaW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7S2VlcCBtZSB1cGRhdGVkIG9uIGhvdyBpdOKAmXMgZ29pbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3VvbGtrd29sa2tsb2xra0JvbGtrbG9sa2tKb2xra3BvbGtrUyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgOS41cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjdW9sa2t3b2xra2xvbGtrQm9sa2tsb2xra0pvbGtrcG9sa2tTJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoYW5rIHlvdSBzbyBtdWNoLCBIYWlsZXkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleVN0YXJ0MV82JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhhbmsgeW91IHNvIG11Y2gsIEhhaWxleSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleVN0YXJ0MV82JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE2MyIgbmFtZT0iSGFpbGV5U3RhcnQxXzYiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCwyMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5U3RhcnQxXzYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGFuayB5b3Ugc28gbXVjaCwgSGFpbGV5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYW5rIHlvdSBzbyBtdWNoLCBIYWlsZXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGFuayB5b3Ugc28gbXVjaCwgSGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0pvbGtrQm9sa2twb2xra3FvbGtrVG9sa2t1b2xra0pvbGtrTiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjSm9sa2tCb2xra3BvbGtrcW9sa2tUb2xra3VvbGtrSm9sa2tOJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgZG9u4oCZdCBrbm93IHdoYXQgSeKAmWQgZG8gd2l0aG91dCB5b3UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleVN0YXJ0MV83JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBkb27igJl0IGtub3cgd2hhdCBJ4oCZZCBkbyB3aXRob3V0IHlvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleVN0YXJ0MV83JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE2NCIgbmFtZT0iSGFpbGV5U3RhcnQxXzciIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwyMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5U3RhcnQxXzcmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGRvbuKAmXQga25vdyB3aGF0IEnigJlkIGRvIHdpdGhvdXQgeW91JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZG9u4oCZdCBrbm93IHdoYXQgSeKAmWQgZG8gd2l0aG91dCB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIGRvbuKAmXQga25vdyB3aGF0IEnigJlkIGRvIHdpdGhvdXQgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjhzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2ltZyAmcXVvdDthc3NldHMvaW1nL2VwMS9oYWlsZXlfcGhvdG9fMS53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7Um9sa2tUb2xra3NvbGtrUm9sa2tOb2xra2lvbGtrZG9sa2tYb2xra0VvbGtrYW9sa2t5b2xra1FvbGtrQm9sa2tIb2xra0ZvbGtreSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMiwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZXAxL2hhaWxleV9waG90b18xLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRwaG90b3MucHVzaCgmcXVvdDthc3NldHMvaW1nL2VwMS9oYWlsZXlfcGhvdG9fMS53ZWJwJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjhzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1lvdSBnb3QgdGhpcyAkbmFtZSEmcXVvdDsgJnF1b3Q7Um9sa2tMb2xra2RvbGtreG9sa2tHb2xra0FvbGtrdW9sa2t5b2xra09vbGtrb29sa2tib2xra2hvbGtreG9sa2tFb2xra3lvbGtrbCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBnb3QgdGhpcyAkbmFtZSEmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZb3UgZ290IHRoaXMgJG5hbWUhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuOHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjhzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVDaGF0Ml8xJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuOHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SGV5IGhvbmV5LCBob3figJlzIGV2ZXJ5dGhpbmcgZ29pbmcgb3ZlciB0aGVyZT8mcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi44cyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1lvdSBnb3QgdGhpcyAkbmFtZSEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSA9ICZxdW90O0hhaWxleVN0YXJ0NCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdF9ob3VyID0gJnF1b3Q7MTA6MjgmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXQgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRob3VyID0gJnF1b3Q7MTA6MjgmcXVvdDsmZ3Q7Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O29mZmxpbmUtdGV4dCZxdW90OyZndDtIYWlsZXkgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNjUiIG5hbWU9IkhhaWxleUNoYXRFcDJfMl8xIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsMjEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7JG5hbWUsIGFyZSB5b3Ugc3RpbGwgYXdha2U/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90OyRuYW1lLCBhcmUgeW91IHN0aWxsIGF3YWtlPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90OyRuYW1lLCBhcmUgeW91IHN0aWxsIGF3YWtlPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0xvbGtraG9sa2tvb2xra1VvbGtrZW9sa2tCb2xra2xvbGtrZSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjTG9sa2tob2xra29vbGtrVW9sa2tlb2xra0JvbGtrbG9sa2tlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1llYWgsIEkmIzM5O20gc3RpbGwgYXQgdGhlIG9mZmljZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZZWFoLCBJJiMzOTttIHN0aWxsIGF0IHRoZSBvZmZpY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE2NiIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzIiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwyMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZZWFoLCBJ4oCZbSBzdGlsbCBhdCB0aGUgb2ZmaWNlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1llYWgsIEnigJltIHN0aWxsIGF0IHRoZSBvZmZpY2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZZWFoLCBJ4oCZbSBzdGlsbCBhdCB0aGUgb2ZmaWNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1pvbGtrcG9sa2tRb2xra3JvbGtrR29sa2tCb2xra3FvbGtrRSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjWm9sa2twb2xra1FvbGtrcm9sa2tHb2xra0JvbGtrcW9sa2tFJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1doYXQgYSBzdXJwcmlzZSB0byBnZXQgYSBtZXNzYWdlIGZyb20geW91IGF0IHRoaXMgaG91ciZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXaGF0IGEgc3VycHJpc2UgdG8gZ2V0IGEgbWVzc2FnZSBmcm9tIHlvdSBhdCB0aGlzIGhvdXImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNjciIG5hbWU9IkhhaWxleUNoYXRFcDJfMl8zIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMjEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDJfMl8zJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7V2hhdCBhIHN1cnByaXNlIHRvIGdldCBhIG1lc3NhZ2UgZnJvbSB5b3UgYXQgdGhpcyBob3VyJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1doYXQgYSBzdXJwcmlzZSB0byBnZXQgYSBtZXNzYWdlIGZyb20geW91IGF0IHRoaXMgaG91ciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1doYXQgYSBzdXJwcmlzZSB0byBnZXQgYSBtZXNzYWdlIGZyb20geW91IGF0IHRoaXMgaG91ciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtEb2xra3lvbGtrVm9sa2t4b2xra01vbGtrZG9sa2tlb2xra3omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I0RvbGtreW9sa2tWb2xra3hvbGtrTW9sa2tkb2xra2VvbGtreiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJcyBldmVyeXRoaW5nIG9rYXk/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0lzIGV2ZXJ5dGhpbmcgb2theT8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNjgiIG5hbWU9IkhhaWxleUNoYXRFcDJfMl80IiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMjEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDJfMl80JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SXMgZXZlcnl0aGluZyBva2F5PyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJcyBldmVyeXRoaW5nIG9rYXk/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SXMgZXZlcnl0aGluZyBva2F5PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjFzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtZZWFoLi4uJnF1b3Q7ICZxdW90O2FvbGtrb29sa2tWb2xra0tvbGtrVm9sa2tob2xra3BvbGtrcW9sa2tFb2xra2JvbGtrZW9sa2t4b2xra0pvbGtrWm9sa2tNb2xra2smcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLi4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WWVhaC4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuMnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0V2ZXJ5dGhpbmfigJlzIGZpbmUmcXVvdDsgJnF1b3Q7Tm9sa2tyb2xra0pvbGtrSW9sa2tIb2xra2lvbGtrYm9sa2tlb2xra2FvbGtrem9sa2tPb2xra0xvbGtrYm9sa2txb2xra1dvbGtrVCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0V2ZXJ5dGhpbmfigJlzIGZpbmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtFdmVyeXRoaW5n4oCZcyBmaW5lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuOHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7U29ycnkgZm9yIHRleHRpbmcgeW91IHNvIGxhdGUmcXVvdDsgJnF1b3Q7aW9sa2tGb2xra2lvbGtra29sa2tCb2xra1ZvbGtrVm9sa2tkb2xra1dvbGtrRm9sa2t2b2xra3NvbGtrWm9sa2tpb2xra1NvbGtrbiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1NvcnJ5IGZvciB0ZXh0aW5nIHlvdSBzbyBsYXRlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7U29ycnkgZm9yIHRleHRpbmcgeW91IHNvIGxhdGUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjdzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJdOKAmXMganVzdCB0aGF0IHlvdSBzYWlkIHlvdeKAmWQgaGVscCBtZSBpZiBJIGV2ZXIgZGVjaWRlZCB0byBnbyBvdXQgYXQgbmlnaHQmcXVvdDsgJnF1b3Q7Ym9sa2t0b2xra1VvbGtrYW9sa2tCb2xra3NvbGtrbW9sa2tIb2xra3BvbGtrcG9sa2tMb2xra1BvbGtrbG9sa2tqb2xra2xvbGtrVSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0l04oCZcyBqdXN0IHRoYXQgeW91IHNhaWQgeW914oCZZCBoZWxwIG1lIGlmIEkgZXZlciBkZWNpZGVkIHRvIGdvIG91dCBhdCBuaWdodCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0l04oCZcyBqdXN0IHRoYXQgeW91IHNhaWQgeW914oCZZCBoZWxwIG1lIGlmIEkgZXZlciBkZWNpZGVkIHRvIGdvIG91dCBhdCBuaWdodCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0FuZCwgd2VsbC4uLiBJIHRoaW5rIEnigJltIGdvaW5nIHRvIGRvIGl0JnF1b3Q7ICZxdW90O1VvbGtrS29sa2twb2xra1lvbGtrR29sa2t3b2xra1dvbGtreW9sa2ttb2xra3JvbGtrc29sa2tTb2xra2VvbGtrY29sa2t2b2xra1omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbmQsIHdlbGwuLi4gSSB0aGluayBJ4oCZbSBnb2luZyB0byBkbyBpdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0FuZCwgd2VsbC4uLiBJIHRoaW5rIEnigJltIGdvaW5nIHRvIGRvIGl0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtXb2xra3RvbGtrcm9sa2tBb2xra0pvbGtrdW9sa2tjb2xra2QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDYuOHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1dvbGtrdG9sa2tyb2xra0FvbGtrSm9sa2t1b2xra2NvbGtrZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtSaWdodCwgd2l0aCBhbGwgdGhpcyB3b3JrLCBJ4oCZZCBjb21wbGV0ZWx5IGZvcmdvdHRlbiBhYm91dCB0aGF0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfNSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1JpZ2h0LCB3aXRoIGFsbCB0aGlzIHdvcmssIEnigJlkIGNvbXBsZXRlbHkgZm9yZ290dGVuIGFib3V0IHRoYXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfNSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNjkiIG5hbWU9IkhhaWxleUNoYXRFcDJfMl81IiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDIxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfNSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1JpZ2h0LCB3aXRoIGFsbCB0aGlzIHdvcmssIEnigJlkIGNvbXBsZXRlbHkgZm9yZ290dGVuIGFib3V0IHRoYXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7UmlnaHQsIHdpdGggYWxsIHRoaXMgd29yaywgSeKAmWQgY29tcGxldGVseSBmb3Jnb3R0ZW4gYWJvdXQgdGhhdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1JpZ2h0LCB3aXRoIGFsbCB0aGlzIHdvcmssIEnigJlkIGNvbXBsZXRlbHkgZm9yZ290dGVuIGFib3V0IHRoYXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SWYgeW914oCZcmUgYnVzeSwgd2UgY2FuIGxlYXZlIGl0IGZvciBhbm90aGVyIGRheSZxdW90OyAmcXVvdDtjb2xra0lvbGtrRW9sa2tXb2xra1pvbGtrTG9sa2t2b2xra1lvbGtrTW9sa2tIb2xra0ZvbGtrQW9sa2tIb2xra3BvbGtrY29sa2thJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SWYgeW914oCZcmUgYnVzeSwgd2UgY2FuIGxlYXZlIGl0IGZvciBhbm90aGVyIGRheSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0lmIHlvdeKAmXJlIGJ1c3ksIHdlIGNhbiBsZWF2ZSBpdCBmb3IgYW5vdGhlciBkYXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1lvbGtrU29sa2tWb2xra1NvbGtrV29sa2tJb2xra0pvbGtrWiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjWW9sa2tTb2xra1ZvbGtrU29sa2tXb2xra0lvbGtrSm9sa2taJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O05vLCBubyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtObywgbm8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNzAiIG5hbWU9IkhhaWxleUNoYXRFcDJfMl82IiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDIxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O05vLCBubyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtObywgbm8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtObywgbm8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7b29sa2t4b2xra0VvbGtrQ29sa2t0b2xra3dvbGtrVW9sa2taJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNvb2xra3hvbGtrRW9sa2tDb2xra3RvbGtrd29sa2tVb2xra1omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSB3b3VsZCBiZSBob25vcmVkIHRvIGhlbHAgeW91JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfOCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgd291bGQgYmUgaG9ub3JlZCB0byBoZWxwIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl84JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE3MSIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzgiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCwyMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzgmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIHdvdWxkIGJlIGhvbm9yZWQgdG8gaGVscCB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB3b3VsZCBiZSBob25vcmVkIHRvIGhlbHAgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSB3b3VsZCBiZSBob25vcmVkIHRvIGhlbHAgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2dvbGtrYW9sa2tVb2xra3lvbGtrbW9sa2tZb2xra3ZvbGtraiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjZ29sa2thb2xra1VvbGtreW9sa2ttb2xra1lvbGtrdm9sa2tqJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0F0IGxlYXN0IEnigJlsbCBmZWVsIGxpa2UgSeKAmW0gZG9pbmcgc29tZXRoaW5nIGZvciB5b3UgaW4gcmV0dXJuIGZvciBldmVyeXRoaW5nIHlvdSBkbyBmb3IgbWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl85JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QXQgbGVhc3QgSeKAmWxsIGZlZWwgbGlrZSBJ4oCZbSBkb2luZyBzb21ldGhpbmcgZm9yIHlvdSBpbiByZXR1cm4gZm9yIGV2ZXJ5dGhpbmcgeW91IGRvIGZvciBtZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl85JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE3MiIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzkiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSwyMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtBdCBsZWFzdCBJ4oCZbGwgZmVlbCBsaWtlIEnigJltIGRvaW5nIHNvbWV0aGluZyBmb3IgeW91IGluIHJldHVybiBmb3IgZXZlcnl0aGluZyB5b3UgZG8gZm9yIG1lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0F0IGxlYXN0IEnigJlsbCBmZWVsIGxpa2UgSeKAmW0gZG9pbmcgc29tZXRoaW5nIGZvciB5b3UgaW4gcmV0dXJuIGZvciBldmVyeXRoaW5nIHlvdSBkbyBmb3IgbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtBdCBsZWFzdCBJ4oCZbGwgZmVlbCBsaWtlIEnigJltIGRvaW5nIHNvbWV0aGluZyBmb3IgeW91IGluIHJldHVybiBmb3IgZXZlcnl0aGluZyB5b3UgZG8gZm9yIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1hvbGtrSW9sa2tXb2xra3lvbGtrZ29sa2tEb2xra0JvbGtrQyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjWG9sa2tJb2xra1dvbGtreW9sa2tnb2xra0RvbGtrQm9sa2tDJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1BsdXMsIGl0IHdpbGwgYmUgYSBuaWNlIHdheSB0byBjbGVhciBteSBoZWFkJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtQbHVzLCBpdCB3aWxsIGJlIGEgbmljZSB3YXkgdG8gY2xlYXIgbXkgaGVhZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl8xMCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNzMiIG5hbWU9IkhhaWxleUNoYXRFcDJfMl8xMCIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDIyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtQbHVzLCBpdCB3aWxsIGJlIGEgbmljZSB3YXkgdG8gY2xlYXIgbXkgaGVhZCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtQbHVzLCBpdCB3aWxsIGJlIGEgbmljZSB3YXkgdG8gY2xlYXIgbXkgaGVhZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1BsdXMsIGl0IHdpbGwgYmUgYSBuaWNlIHdheSB0byBjbGVhciBteSBoZWFkJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3JvbGtrWW9sa2tPb2xra29vbGtrZG9sa2tZb2xra0tvbGtrTiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjcm9sa2tZb2xra09vbGtrb29sa2tkb2xra1lvbGtrS29sa2tOJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0J1dCB0ZWxsIG1lLCBob3cgY2FuIEkgaGVscD8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xMSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0J1dCB0ZWxsIG1lLCBob3cgY2FuIEkgaGVscD8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTc0IiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfMTEiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwyMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzExJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7QnV0IHRlbGwgbWUsIGhvdyBjYW4gSSBoZWxwPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgdGVsbCBtZSwgaG93IGNhbiBJIGhlbHA/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QnV0IHRlbGwgbWUsIGhvdyBjYW4gSSBoZWxwPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjJzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtXZWxsLCBpdCBtaWdodCBzdXJwcmlzZSB5b3UsIGJ1dCBJ4oCZdmUgbmV2ZXIgcmVhbGx5IGdvbmUgb3V0IGJlZm9yZSZxdW90OyAmcXVvdDtwb2xra0pvbGtrSG9sa2trb2xra2hvbGtrWm9sa2tLb2xra2JvbGtrQm9sa2tsb2xra0tvbGtra29sa2tJb2xra2tvbGtrQW9sa2tPJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2VsbCwgaXQgbWlnaHQgc3VycHJpc2UgeW91LCBidXQgSeKAmXZlIG5ldmVyIHJlYWxseSBnb25lIG91dCBiZWZvcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtXZWxsLCBpdCBtaWdodCBzdXJwcmlzZSB5b3UsIGJ1dCBJ4oCZdmUgbmV2ZXIgcmVhbGx5IGdvbmUgb3V0IGJlZm9yZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7bm9sa2tab2xra3ZvbGtrb29sa2trb2xra0NvbGtra29sa2tNJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNub2xra1pvbGtrdm9sa2tvb2xra2tvbGtrQ29sa2trb2xra00mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7Tm90IHN1cnByaXNpbmcsIGxvbCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzEyJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7Tm90IHN1cnByaXNpbmcsIGxvbCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl8xMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNzUiIG5hbWU9IkhhaWxleUNoYXRFcDJfMl8xMiIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDIyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtOb3Qgc3VycHJpc2luZywgbG9sJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05vdCBzdXJwcmlzaW5nLCBsb2wmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtOb3Qgc3VycHJpc2luZywgbG9sJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2NyeWluZy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7SGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfY3J5aW5nLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS42cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSB3YXMgYWx3YXlzIHNvIGZvY3VzZWQgb24gc2Nob29sLCBhbmQgdGhlbiB3b3JrIHN0YXJ0ZWQgdGFraW5nIHVwIGFsbCBteSB0aW1lJnF1b3Q7ICZxdW90O1hvbGtrV29sa2tQb2xra2hvbGtreG9sa2tib2xra0xvbGtrRG9sa2tib2xra21vbGtrTm9sa2tLb2xra1lvbGtrd29sa2tFb2xra2EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHdhcyBhbHdheXMgc28gZm9jdXNlZCBvbiBzY2hvb2wsIGFuZCB0aGVuIHdvcmsgc3RhcnRlZCB0YWtpbmcgdXAgYWxsIG15IHRpbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIHdhcyBhbHdheXMgc28gZm9jdXNlZCBvbiBzY2hvb2wsIGFuZCB0aGVuIHdvcmsgc3RhcnRlZCB0YWtpbmcgdXAgYWxsIG15IHRpbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy41cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIG5ldmVyIHJlYWxseSBoYWQgdGhlIGNoYW5jZSB0byBtYWtlIGZyaWVuZHMmcXVvdDsgJnF1b3Q7YW9sa2tkb2xra1FvbGtrRW9sa2twb2xra1FvbGtrb29sa2tMb2xra3RvbGtrbm9sa2tTb2xra0dvbGtrdG9sa2tvb2xra1FvbGtrbSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbmV2ZXIgcmVhbGx5IGhhZCB0aGUgY2hhbmNlIHRvIG1ha2UgZnJpZW5kcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgbmV2ZXIgcmVhbGx5IGhhZCB0aGUgY2hhbmNlIHRvIG1ha2UgZnJpZW5kcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0FuZCBldmVyeSBkYXksIEkgZmVlbCBsaWtlIGl04oCZcyBnZXR0aW5nIHRvbyBsYXRlIGZvciBtZSZxdW90OyAmcXVvdDtJb2xra3hvbGtrUG9sa2t3b2xra2xvbGtram9sa2tEb2xra0JvbGtrWG9sa2tNb2xra0ZvbGtrZ29sa2trb2xra0ZvbGtrem9sa2tZJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5kIGV2ZXJ5IGRheSwgSSBmZWVsIGxpa2UgaXTigJlzIGdldHRpbmcgdG9vIGxhdGUgZm9yIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QW5kIGV2ZXJ5IGRheSwgSSBmZWVsIGxpa2UgaXTigJlzIGdldHRpbmcgdG9vIGxhdGUgZm9yIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDYuOHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7TGlrZSBJ4oCZbSBvdXQgb2YgdG91Y2gmcXVvdDsgJnF1b3Q7VW9sa2tOb2xra2pvbGtrem9sa2tub2xra2xvbGtrUW9sa2tlb2xra21vbGtrUG9sa2tXb2xra3dvbGtrV29sa2tab2xra2ZvbGtrSSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0xpa2UgSeKAmW0gb3V0IG9mIHRvdWNoJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7TGlrZSBJ4oCZbSBvdXQgb2YgdG91Y2gmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3ZvbGtrWW9sa2tPb2xra3hvbGtrV29sa2tsb2xra1pvbGtrbCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNy45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjdm9sa2tZb2xra09vbGtreG9sa2tXb2xra2xvbGtrWm9sa2tsJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0hhaWxleSwgeW914oCZcmUgYSBiZWF1dGlmdWwgd29tYW4mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xMyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0hhaWxleSwgeW914oCZcmUgYSBiZWF1dGlmdWwgd29tYW4mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTc2IiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfMTMiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwyMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzEzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SGFpbGV5LCB5b3XigJlyZSBhIGJlYXV0aWZ1bCB3b21hbiZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIYWlsZXksIHlvdeKAmXJlIGEgYmVhdXRpZnVsIHdvbWFuJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SGFpbGV5LCB5b3XigJlyZSBhIGJlYXV0aWZ1bCB3b21hbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtkb2xra09vbGtrd29sa2tob2xra1VvbGtrZ29sa2twb2xra0MmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I2RvbGtrT29sa2t3b2xra2hvbGtrVW9sa2tnb2xra3BvbGtrQyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGVyZeKAmXMgbm8gc3VjaCB0aGluZyBhcyDigJx0b28gbGF0ZeKAnSBmb3IgeW91JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTQmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaGVyZeKAmXMgbm8gc3VjaCB0aGluZyBhcyDigJx0b28gbGF0ZeKAnSBmb3IgeW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzE0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE3NyIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzE0IiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMjIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xNCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RoZXJl4oCZcyBubyBzdWNoIHRoaW5nIGFzIOKAnHRvbyBsYXRl4oCdIGZvciB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhlcmXigJlzIG5vIHN1Y2ggdGhpbmcgYXMg4oCcdG9vIGxhdGXigJ0gZm9yIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RoZXJl4oCZcyBubyBzdWNoIHRoaW5nIGFzIOKAnHRvbyBsYXRl4oCdIGZvciB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Vm9sa2t3b2xra2lvbGtrVW9sa2tob2xra3lvbGtraW9sa2tqJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNWb2xra3dvbGtraW9sa2tVb2xra2hvbGtreW9sa2tpb2xra2omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW91IGp1c3QgbmVlZCB0byB0YWtlIHRoZSBmaXJzdCBzdGVwJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTUmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3UganVzdCBuZWVkIHRvIHRha2UgdGhlIGZpcnN0IHN0ZXAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTc4IiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfMTUiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSwyMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzE1JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WW91IGp1c3QgbmVlZCB0byB0YWtlIHRoZSBmaXJzdCBzdGVwJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBqdXN0IG5lZWQgdG8gdGFrZSB0aGUgZmlyc3Qgc3RlcCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1lvdSBqdXN0IG5lZWQgdG8gdGFrZSB0aGUgZmlyc3Qgc3RlcCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtEZWVwIGRvd24sIEkga25vdyB5b3XigJlyZSByaWdodCZxdW90OyAmcXVvdDtLb2xra09vbGtrQm9sa2tUb2xra05vbGtrYm9sa2tkb2xra1JvbGtrWm9sa2twb2xra1VvbGtrS29sa2tYb2xra2FvbGtrTW9sa2tQJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RGVlcCBkb3duLCBJIGtub3cgeW914oCZcmUgcmlnaHQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtEZWVwIGRvd24sIEkga25vdyB5b3XigJlyZSByaWdodCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1RoYXTigJlzIHdoeSBJIHRleHRlZCB5b3UmcXVvdDsgJnF1b3Q7Qm9sa2tmb2xra2pvbGtrVW9sa2thb2xra1NvbGtrdW9sa2tHb2xra2FvbGtrZW9sa2tBb2xra3FvbGtrQ29sa2tvb2xra25vbGtrVyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYXTigJlzIHdoeSBJIHRleHRlZCB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGF04oCZcyB3aHkgSSB0ZXh0ZWQgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSB3YW50ZWQgdG8gYXNrIHdoYXQgeW91IHRoaW5rIGFib3V0IHRoaXMgZHJlc3MgZm9yIHRvbmlnaHQmcXVvdDsgJnF1b3Q7dW9sa2tBb2xra2hvbGtrRW9sa2tGb2xra3VvbGtraG9sa2tDb2xra0FvbGtrbm9sa2tPb2xra3FvbGtrSG9sa2tJb2xra2RvbGtrRyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgd2FudGVkIHRvIGFzayB3aGF0IHlvdSB0aGluayBhYm91dCB0aGlzIGRyZXNzIGZvciB0b25pZ2h0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSB3YW50ZWQgdG8gYXNrIHdoYXQgeW91IHRoaW5rIGFib3V0IHRoaXMgZHJlc3MgZm9yIHRvbmlnaHQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC45cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9pbWcgJnF1b3Q7YXNzZXRzL2ltZy9lcDIvaGFpbGV5X3Bob3RvXzIud2VicCZxdW90OyB0cnVlICZxdW90O2JvbGtrc29sa2t3b2xra0pvbGtrUm9sa2tlb2xra0hvbGtrQW9sa2tjb2xra1hvbGtrY29sa2tob2xra1BvbGtrR29sa2tQb2xra3MmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDIsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2VwMi9oYWlsZXlfcGhvdG9fMi53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkcGhvdG9zLnB1c2goJnF1b3Q7YXNzZXRzL2ltZy9lcDIvaGFpbGV5X3Bob3RvXzIud2VicCZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2hvbGtrVG9sa2tRb2xra2tvbGtrVG9sa2tVb2xra2pvbGtrRSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNS45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjaG9sa2tUb2xra1FvbGtra29sa2tUb2xra1VvbGtram9sa2tFJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgbG92ZSBpdC4gWW91IGxvb2sgZ3JlYXQgaW4gaXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xNmEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGxvdmUgaXQuIFlvdSBsb29rIGdyZWF0IGluIGl0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzE2YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjaG9sa2tUb2xra1FvbGtra29sa2tUb2xra1VvbGtram9sa2tFJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdSBzaG91bGQgd2VhciBzb21ldGhpbmcgbW9yZSBkYXJpbmcmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xNmImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3Ugc2hvdWxkIHdlYXIgc29tZXRoaW5nIG1vcmUgZGFyaW5nJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzE2YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNzkiIG5hbWU9IkhhaWxleUNoYXRFcDJfMl8xNmEiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsMjIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xNmEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGxvdmUgaXQuIFlvdSBsb29rIGdyZWF0IGluIGl0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbG92ZSBpdC4gWW91IGxvb2sgZ3JlYXQgaW4gaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIGxvdmUgaXQuIFlvdSBsb29rIGdyZWF0IGluIGl0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuMnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1RoYW5rcywgJG5hbWUmcXVvdDsgJnF1b3Q7Tm9sa2tMb2xra0VvbGtrbW9sa2twb2xra2VvbGtrTG9sa2tzb2xra3JvbGtrbW9sa2tIb2xra0pvbGtrRW9sa2tzb2xra21vbGtrbiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYW5rcywgJG5hbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGFua3MsICRuYW1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SXTigJlzIGRlY2lkZWQsIHRoZW4mcXVvdDsgJnF1b3Q7VG9sa2t1b2xra3lvbGtrZW9sa2tpb2xra2lvbGtrYW9sa2tpb2xra01vbGtrY29sa2tzb2xra1NvbGtrZW9sa2tsb2xra09vbGtrTiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0l04oCZcyBkZWNpZGVkLCB0aGVuJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SXTigJlzIGRlY2lkZWQsIHRoZW4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJ4oCZbGwgd2VhciB0aGlzIGRyZXNzJnF1b3Q7ICZxdW90O2tvbGtrQW9sa2tPb2xra1JvbGtrT29sa2tKb2xra3ZvbGtrQm9sa2tob2xra3NvbGtrbm9sa2trb2xra1ZvbGtreG9sa2tkb2xra3MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbGwgd2VhciB0aGlzIGRyZXNzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SeKAmWxsIHdlYXIgdGhpcyBkcmVzcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X21vdXRoLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9tb3V0aC53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCA0LjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuOXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0hleSAkbmFtZSwgaXMgaXQgb2theSBpZiBJIHRleHQgeW91IHdoZW4gSSBnZXQgdG8gdGhlIG5pZ2h0Y2x1YiB0byBhc2sgZm9yIHRpcHM/JnF1b3Q7ICZxdW90O1VvbGtrc29sa2tob2xra0hvbGtraW9sa2t6b2xra0RvbGtrTG9sa2trb2xra0VvbGtrZG9sa2tPb2xra3FvbGtrbW9sa2t3b2xra1gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZXkgJG5hbWUsIGlzIGl0IG9rYXkgaWYgSSB0ZXh0IHlvdSB3aGVuIEkgZ2V0IHRvIHRoZSBuaWdodGNsdWIgdG8gYXNrIGZvciB0aXBzPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0hleSAkbmFtZSwgaXMgaXQgb2theSBpZiBJIHRleHQgeW91IHdoZW4gSSBnZXQgdG8gdGhlIG5pZ2h0Y2x1YiB0byBhc2sgZm9yIHRpcHM/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtub2xra3pvbGtrZW9sa2t0b2xra0NvbGtrZ29sa2tkb2xra2QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDYuNXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I25vbGtrem9sa2tlb2xra3RvbGtrQ29sa2tnb2xra2RvbGtrZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtPZiBjb3Vyc2UsIEnigJlsbCBiZSBoZXJlIGZvciBhIHdoaWxlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTdhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7T2YgY291cnNlLCBJ4oCZbGwgYmUgaGVyZSBmb3IgYSB3aGlsZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl8xN2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTgwIiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfMTZiIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDIyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTZiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WW91IHNob3VsZCB3ZWFyIHNvbWV0aGluZyBtb3JlIGRhcmluZyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3Ugc2hvdWxkIHdlYXIgc29tZXRoaW5nIG1vcmUgZGFyaW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WW91IHNob3VsZCB3ZWFyIHNvbWV0aGluZyBtb3JlIGRhcmluZyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9kb3VidC53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7SGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfZG91YnQud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtZb3UgdGhpbmsgc28/JnF1b3Q7ICZxdW90O0JvbGtrSW9sa2tqb2xra3pvbGtrcm9sa2tyb2xra3NvbGtram9sa2tQb2xra0RvbGtrT29sa2tDb2xra0ZvbGtrb29sa2tub2xra1UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3UgdGhpbmsgc28/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WW91IHRoaW5rIHNvPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgYWxyZWFkeSBmZWVsIGEgYml0IG91dCBvZiBwbGFjZSB3aXRoIHRoaXMgb25lJnF1b3Q7ICZxdW90O0xvbGtrTW9sa2tWb2xra1VvbGtreW9sa2tub2xra2pvbGtrdm9sa2tkb2xra3dvbGtrem9sa2tkb2xra2RvbGtrUm9sa2txb2xra0gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGFscmVhZHkgZmVlbCBhIGJpdCBvdXQgb2YgcGxhY2Ugd2l0aCB0aGlzIG9uZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgYWxyZWFkeSBmZWVsIGEgYml0IG91dCBvZiBwbGFjZSB3aXRoIHRoaXMgb25lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtpb2xra3VvbGtrZ29sa2tWb2xra1hvbGtrSW9sa2tJb2xra1omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuOXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I2lvbGtrdW9sa2tnb2xra1ZvbGtrWG9sa2tJb2xra0lvbGtrWiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUcnVzdCBtZSBIYWlsZXkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xN2ImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUcnVzdCBtZSBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTdiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE4MSIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzE3YSIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDIzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTdhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7T2YgY291cnNlLCBJ4oCZbGwgYmUgaGVyZSBmb3IgYSB3aGlsZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPZiBjb3Vyc2UsIEnigJlsbCBiZSBoZXJlIGZvciBhIHdoaWxlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7T2YgY291cnNlLCBJ4oCZbGwgYmUgaGVyZSBmb3IgYSB3aGlsZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtub2xra3FvbGtrYm9sa2tob2xra0tvbGtram9sa2tab2xra1UmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I25vbGtrcW9sa2tib2xra2hvbGtrS29sa2tqb2xra1pvbGtrVSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtQcm9iYWJseSBwdWxsaW5nIGFuIGFsbC1uaWdodGVyJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMThhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7UHJvYmFibHkgcHVsbGluZyBhbiBhbGwtbmlnaHRlciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl8xOGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTgyIiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfMThhIiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsMjM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xOGEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtQcm9iYWJseSBwdWxsaW5nIGFuIGFsbC1uaWdodGVyJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1Byb2JhYmx5IHB1bGxpbmcgYW4gYWxsLW5pZ2h0ZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtQcm9iYWJseSBwdWxsaW5nIGFuIGFsbC1uaWdodGVyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2RvbGtrSG9sa2tjb2xra2FvbGtrdG9sa2tRb2xra3FvbGtrTiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjZG9sa2tIb2xra2NvbGtrYW9sa2t0b2xra1FvbGtrcW9sa2tOJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0l0IHdpbGwgYmUgYSBnb29kIGRpc3RyYWN0aW9uIGZvciBtZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzE5YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0l0IHdpbGwgYmUgYSBnb29kIGRpc3RyYWN0aW9uIGZvciBtZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl8xOWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTgzIiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfMTlhIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMjM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xOWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJdCB3aWxsIGJlIGEgZ29vZCBkaXN0cmFjdGlvbiBmb3IgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXQgd2lsbCBiZSBhIGdvb2QgZGlzdHJhY3Rpb24gZm9yIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SXQgd2lsbCBiZSBhIGdvb2QgZGlzdHJhY3Rpb24gZm9yIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuMnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0FscmlnaHQgdGhlbiZxdW90OyAmcXVvdDtGb2xra1dvbGtrem9sa2t1b2xra2RvbGtrY29sa2txb2xra1NvbGtrZW9sa2tPb2xra1FvbGtrWW9sa2tDb2xra2lvbGtrdW9sa2tMJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QWxyaWdodCB0aGVuJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QWxyaWdodCB0aGVuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SeKAmWxsIHRleHQgeW91IHdoZW4gSSBnZXQgdGhlcmUmcXVvdDsgJnF1b3Q7a29sa2tVb2xra0xvbGtrdW9sa2tlb2xra1BvbGtreW9sa2tLb2xra0hvbGtrSW9sa2tKb2xra2JvbGtrVW9sa2tDb2xra1VvbGtrRSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJlsbCB0ZXh0IHlvdSB3aGVuIEkgZ2V0IHRoZXJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SeKAmWxsIHRleHQgeW91IHdoZW4gSSBnZXQgdGhlcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi40cyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0nigJlsbCB0ZXh0IHlvdSB3aGVuIEkgZ2V0IHRoZXJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTlhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0X2hvdXIgPSAmcXVvdDsyMzowMCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDsyMzowMCZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7b2ZmbGluZS10ZXh0JnF1b3Q7Jmd0O0hhaWxleSBpcyBvZmZsaW5lJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuNHMmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X25vdGVzLnB1c2goJnF1b3Q7SGFpbGV5IGRlY2lkZWQgdG8gYWNjZXB0IG15IGhlbHAgdG8gZ2l2ZSBoZXIgYWR2aWNlIG9uIGhvdyB0byBiZWhhdmUgYXQgYSBuaWdodGNsdWIgc2luY2Ugc2hlIGhhcyBubyBleHBlcmllbmNlIGF0IGFsbC4mcXVvdDspJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjRzJmd0OyZndDsmbHQ7Jmx0O3NldCAkZW5kT2ZDb250ZW50ID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjRzJmd0OyZndDsmbHQ7Jmx0O3NldCAkZXAyID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxODQiIG5hbWU9IkhhaWxleUNoYXRFcDJfMl8xN2IiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwyMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzE3YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RydXN0IG1lIEhhaWxleSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUcnVzdCBtZSBIYWlsZXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUcnVzdCBtZSBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Y29sa2tTb2xra0hvbGtrU29sa2tWb2xra0FvbGtrYW9sa2tsJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNjb2xra1NvbGtrSG9sa2tTb2xra1ZvbGtrQW9sa2thb2xra2wmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW91IGtub3cgeW91IG5lZWQgbXkgYWR2aWNlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMThiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WW91IGtub3cgeW91IG5lZWQgbXkgYWR2aWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzE4YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxODUiIG5hbWU9IkhhaWxleUNoYXRFcDJfMl8xOGIiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwyMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzE4YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdSBrbm93IHlvdSBuZWVkIG15IGFkdmljZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3Uga25vdyB5b3UgbmVlZCBteSBhZHZpY2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZb3Uga25vdyB5b3UgbmVlZCBteSBhZHZpY2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7WWVhaCwgeW914oCZcmUgcmlnaHQmcXVvdDsgJnF1b3Q7TW9sa2thb2xra2JvbGtrRW9sa2tib2xra29vbGtrVG9sa2txb2xra3VvbGtrUm9sa2tNb2xra0FvbGtrRW9sa2t0b2xra3NvbGtrUyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1llYWgsIHlvdeKAmXJlIHJpZ2h0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WWVhaCwgeW914oCZcmUgcmlnaHQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4ycyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIHRoaW5rIEkgaGF2ZSBzb21ldGhpbmcgbGlrZSB0aGF0IGluIG15IGNsb3NldCZxdW90OyAmcXVvdDthb2xra2hvbGtrbW9sa2tmb2xra1lvbGtreG9sa2tTb2xra0pvbGtrbm9sa2tHb2xra1NvbGtrZG9sa2t6b2xra0tvbGtrbm9sa2tvJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB0aGluayBJIGhhdmUgc29tZXRoaW5nIGxpa2UgdGhhdCBpbiBteSBjbG9zZXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIHRoaW5rIEkgaGF2ZSBzb21ldGhpbmcgbGlrZSB0aGF0IGluIG15IGNsb3NldCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjhzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1Rob3VnaCBJ4oCZdmUgbmV2ZXIgd29ybiBpdCBpbiBwdWJsaWMmcXVvdDsgJnF1b3Q7V29sa2tRb2xra1BvbGtrTm9sa2t1b2xra0NvbGtrZm9sa2ttb2xra3dvbGtrbG9sa2tVb2xra2hvbGtrWG9sa2tQb2xra2pvbGtrUSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1Rob3VnaCBJ4oCZdmUgbmV2ZXIgd29ybiBpdCBpbiBwdWJsaWMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaG91Z2ggSeKAmXZlIG5ldmVyIHdvcm4gaXQgaW4gcHVibGljJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7TGV0IG1lIHRyeSBpdCBmaXJzdCZxdW90OyAmcXVvdDtlb2xra0lvbGtrem9sa2t0b2xra1VvbGtrb29sa2tkb2xra0xvbGtrZm9sa2tpb2xra0NvbGtrd29sa2t2b2xra3BvbGtrWW9sa2tUJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGV0IG1lIHRyeSBpdCBmaXJzdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0xldCBtZSB0cnkgaXQgZmlyc3QmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNS43cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9pbWcgJnF1b3Q7YXNzZXRzL2ltZy9lcDIvaGFpbGV5X3Bob3RvXzMud2VicCZxdW90OyB0cnVlICZxdW90O3FvbGtrRm9sa2tzb2xra1lvbGtrVW9sa2tvb2xra3BvbGtrTW9sa2tzb2xra1ZvbGtrR29sa2trb2xra3NvbGtrRm9sa2tMb2xra2kmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDIsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2VwMi9oYWlsZXlfcGhvdG9fMy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkcGhvdG9zLnB1c2goJnF1b3Q7YXNzZXRzL2ltZy9lcDIvaGFpbGV5X3Bob3RvXzMud2VicCZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNi43cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJ4oCZbSBub3Qgc3VyZS4uLiBJIGZlZWwgd2VpcmQgd2VhcmluZyB0aGlzJnF1b3Q7ICZxdW90O0hvbGtrWm9sa2t3b2xra1pvbGtrYW9sa2t3b2xra1FvbGtra29sa2tJb2xra0NvbGtrc29sa2t4b2xra25vbGtrc29sa2tRb2xra3MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBub3Qgc3VyZS4uLiBJIGZlZWwgd2VpcmQgd2VhcmluZyB0aGlzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SeKAmW0gbm90IHN1cmUuLi4gSSBmZWVsIHdlaXJkIHdlYXJpbmcgdGhpcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7cG9sa2tPb2xra0hvbGtrV29sa2tjb2xra3dvbGtrSm9sa2tEJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA4LjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNwb2xra09vbGtrSG9sa2tXb2xra2NvbGtrd29sa2tKb2xra0QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW91IGtub3cgd2hhdD8gSSB0aGluayB0aGUgb3RoZXIgZHJlc3Mgd291bGQgYmUgYmV0dGVyJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTliXzEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3Uga25vdyB3aGF0PyBJIHRoaW5rIHRoZSBvdGhlciBkcmVzcyB3b3VsZCBiZSBiZXR0ZXImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTliXzEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3BvbGtrT29sa2tIb2xra1dvbGtrY29sa2t3b2xra0pvbGtrRCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUcnVzdCBtZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzE5Yl8yJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VHJ1c3QgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTliXzImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTg2IiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfMTliXzEiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwyMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzE5Yl8xJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WW91IGtub3cgd2hhdD8gSSB0aGluayB0aGUgb3RoZXIgZHJlc3Mgd291bGQgYmUgYmV0dGVyJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBrbm93IHdoYXQ/IEkgdGhpbmsgdGhlIG90aGVyIGRyZXNzIHdvdWxkIGJlIGJldHRlciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1lvdSBrbm93IHdoYXQ/IEkgdGhpbmsgdGhlIG90aGVyIGRyZXNzIHdvdWxkIGJlIGJldHRlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtZZWFoLCBJIHRoaW5rIHNvIHRvbyZxdW90OyAmcXVvdDt1b2xra2ZvbGtrZm9sa2tyb2xra1hvbGtrem9sa2tpb2xra3lvbGtrSW9sa2tGb2xra0FvbGtrZm9sa2ttb2xra3hvbGtrbG9sa2tEJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WWVhaCwgSSB0aGluayBzbyB0b28mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZZWFoLCBJIHRoaW5rIHNvIHRvbyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgZG9u4oCZdCB0aGluayBJIGNvdWxkIHdhbGsgb3V0IGluIHB1YmxpYyB3ZWFyaW5nIHRoaXMmcXVvdDsgJnF1b3Q7dm9sa2t0b2xra3JvbGtrb29sa2tEb2xra0hvbGtrUG9sa2tEb2xra09vbGtrbG9sa2tub2xra0lvbGtrUW9sa2tRb2xra2VvbGtrQSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZG9u4oCZdCB0aGluayBJIGNvdWxkIHdhbGsgb3V0IGluIHB1YmxpYyB3ZWFyaW5nIHRoaXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIGRvbuKAmXQgdGhpbmsgSSBjb3VsZCB3YWxrIG91dCBpbiBwdWJsaWMgd2VhcmluZyB0aGlzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMXMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfeGQud2VicCZxdW90OyB0cnVlICZxdW90O0hhaWxleSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX3hkLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt6b2xra2dvbGtrR29sa2tVb2xra3pvbGtrcm9sa2tub2xra2kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuMXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3pvbGtrZ29sa2tHb2xra1VvbGtrem9sa2tyb2xra25vbGtraSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDvwn6SjJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMjBiXzEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDvwn6SjJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzIwYl8xJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE4NyIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzE5Yl8yIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMjM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xOWJfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RydXN0IG1lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RydXN0IG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VHJ1c3QgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGhhaWxleV9kcmVzcyA9IDImZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Z29sa2tOb2xra2VvbGtrSG9sa2tFb2xra2VvbGtrVG9sa2tmJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNnb2xra05vbGtrZW9sa2tIb2xra0VvbGtrZW9sa2tUb2xra2YmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhhdOKAmXMgdGhlIGRyZXNzIHlvdSB3YW50IHRvIHdlYXImcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl8yMGJfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoYXTigJlzIHRoZSBkcmVzcyB5b3Ugd2FudCB0byB3ZWFyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzIwYl8yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE4OCIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzIwYl8xIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMjM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDJfMl8yMGJfMSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbG1hby53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7WW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbG1hby53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuOXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0hleSAkbmFtZSwgaXMgaXQgb2theSBpZiBJIHRleHQgeW91IHdoZW4gSSBnZXQgdG8gdGhlIG5pZ2h0Y2x1YiB0byBhc2sgZm9yIHRpcHM/JnF1b3Q7ICZxdW90O3lvbGtrdm9sa2tIb2xra1RvbGtrR29sa2t4b2xra3NvbGtrbW9sa2tib2xra1RvbGtrY29sa2tXb2xra3VvbGtrUm9sa2twb2xra2smcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZXkgJG5hbWUsIGlzIGl0IG9rYXkgaWYgSSB0ZXh0IHlvdSB3aGVuIEkgZ2V0IHRvIHRoZSBuaWdodGNsdWIgdG8gYXNrIGZvciB0aXBzPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0hleSAkbmFtZSwgaXMgaXQgb2theSBpZiBJIHRleHQgeW91IHdoZW4gSSBnZXQgdG8gdGhlIG5pZ2h0Y2x1YiB0byBhc2sgZm9yIHRpcHM/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtnb2xra1RvbGtreW9sa2tRb2xra1NvbGtrbW9sa2twb2xra3ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuNXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I2dvbGtrVG9sa2t5b2xra1FvbGtrU29sa2ttb2xra3BvbGtrciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtPZiBjb3Vyc2UsIEnigJlsbCBiZSBoZXJlIGZvciBhIHdoaWxlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTdhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7T2YgY291cnNlLCBJ4oCZbGwgYmUgaGVyZSBmb3IgYSB3aGlsZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl8xN2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTg5IiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfMjBiXzIiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsMjM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDJfMl8yMGJfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RoYXTigJlzIHRoZSBkcmVzcyB5b3Ugd2FudCB0byB3ZWFyJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYXTigJlzIHRoZSBkcmVzcyB5b3Ugd2FudCB0byB3ZWFyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhhdOKAmXMgdGhlIGRyZXNzIHlvdSB3YW50IHRvIHdlYXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfY3J5aW5nLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9jcnlpbmcud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjZzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtPa2F5LCAkbmFtZSwgSeKAmWxsIHRha2UgeW91ciBhZHZpY2UsIGV2ZW4gdGhvdWdoIEkgZmVlbCBlbWJhcnJhc3NlZCB0byB3ZWFyIHRoaXMgaW4gcHVibGljJnF1b3Q7ICZxdW90O3dvbGtrUm9sa2tTb2xra2ZvbGtrUm9sa2t3b2xra0pvbGtrdG9sa2tWb2xra0NvbGtra29sa2tnb2xra0JvbGtrcG9sa2tkb2xra1gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPa2F5LCAkbmFtZSwgSeKAmWxsIHRha2UgeW91ciBhZHZpY2UsIGV2ZW4gdGhvdWdoIEkgZmVlbCBlbWJhcnJhc3NlZCB0byB3ZWFyIHRoaXMgaW4gcHVibGljJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7T2theSwgJG5hbWUsIEnigJlsbCB0YWtlIHlvdXIgYWR2aWNlLCBldmVuIHRob3VnaCBJIGZlZWwgZW1iYXJyYXNzZWQgdG8gd2VhciB0aGlzIGluIHB1YmxpYyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7V29sa2twb2xra3hvbGtrYm9sa2tUb2xra29vbGtrRm9sa2tsJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjVzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNXb2xra3BvbGtreG9sa2tib2xra1RvbGtrb29sa2tGb2xra2wmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW914oCZbGwgdGhhbmsgbWUgbGF0ZXIsIHRydXN0IG1lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMjFiXzImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3XigJlsbCB0aGFuayBtZSBsYXRlciwgdHJ1c3QgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMjFiXzImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTkwIiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfMjFiXzIiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMjM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDJfMl8yMWJfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdeKAmWxsIHRoYW5rIG1lIGxhdGVyLCB0cnVzdCBtZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3XigJlsbCB0aGFuayBtZSBsYXRlciwgdHJ1c3QgbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZb3XigJlsbCB0aGFuayBtZSBsYXRlciwgdHJ1c3QgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7TG9sa2tTb2xra0VvbGtrcm9sa2tJb2xra3RvbGtrTW9sa2tDJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNMb2xra1NvbGtrRW9sa2tyb2xra0lvbGtrdG9sa2tNb2xra0MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SnVzdCBnbyBmb3IgaXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl8yMmJfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0p1c3QgZ28gZm9yIGl0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzIyYl8yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE5MSIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzIyYl8yIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMjQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDJfMl8yMmJfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0p1c3QgZ28gZm9yIGl0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0p1c3QgZ28gZm9yIGl0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SnVzdCBnbyBmb3IgaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtBbHJpZ2h0LCBJIHdpbGwmcXVvdDsgJnF1b3Q7Y29sa2tBb2xra3RvbGtrTG9sa2tmb2xra2JvbGtreW9sa2tzb2xra2dvbGtrcG9sa2t1b2xra0RvbGtrRm9sa2tzb2xra0JvbGtrZCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FscmlnaHQsIEkgd2lsbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0FscmlnaHQsIEkgd2lsbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuOXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0hleSAkbmFtZSwgaXMgaXQgb2theSBpZiBJIHRleHQgeW91IHdoZW4gSSBnZXQgdG8gdGhlIG5pZ2h0Y2x1YiB0byBhc2sgZm9yIHRpcHM/JnF1b3Q7ICZxdW90O3ZvbGtrZW9sa2tCb2xra1lvbGtrR29sa2tUb2xra05vbGtrbm9sa2twb2xra2VvbGtrZW9sa2tCb2xra29vbGtraG9sa2t1b2xra1YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZXkgJG5hbWUsIGlzIGl0IG9rYXkgaWYgSSB0ZXh0IHlvdSB3aGVuIEkgZ2V0IHRvIHRoZSBuaWdodGNsdWIgdG8gYXNrIGZvciB0aXBzPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0hleSAkbmFtZSwgaXMgaXQgb2theSBpZiBJIHRleHQgeW91IHdoZW4gSSBnZXQgdG8gdGhlIG5pZ2h0Y2x1YiB0byBhc2sgZm9yIHRpcHM/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDthb2xra1BvbGtrdW9sa2tib2xra2JvbGtrdm9sa2t4b2xra2ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuN3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I2FvbGtrUG9sa2t1b2xra2JvbGtrYm9sa2t2b2xra3hvbGtrYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtPZiBjb3Vyc2UsIEnigJlsbCBiZSBoZXJlIGZvciBhIHdoaWxlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTdhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7T2YgY291cnNlLCBJ4oCZbGwgYmUgaGVyZSBmb3IgYSB3aGlsZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl8xN2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTkyIiBuYW1lPSJIYWlsZXlFcDJfMSIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDI0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90OyRuYW1lLCBpdOKAmXMgbWUgYWdhaW4uIEhvd+KAmXMgZXZlcnl0aGluZyBnb2luZz8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7JG5hbWUsIGl04oCZcyBtZSBhZ2Fpbi4gSG934oCZcyBldmVyeXRoaW5nIGdvaW5nPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90OyRuYW1lLCBpdOKAmXMgbWUgYWdhaW4uIEhvd+KAmXMgZXZlcnl0aGluZyBnb2luZz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS45cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SnVzdCB3YW50ZWQgdG8gbGV0IHlvdSBrbm93IEnigJl2ZSBzZW50IHlvdSBzb21lIGRhdGEgSSBmb3VuZCwgaXQgc2hvdWxkIGhlbHAgd2l0aCB5b3VyIHJlcG9ydCZxdW90OyAmcXVvdDtHb2xra3dvbGtrZ29sa2tTb2xra01vbGtrUm9sa2tob2xra0RvbGtrVG9sa2tUb2xra2FvbGtrVm9sa2tsb2xra3dvbGtraW9sa2tIJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SnVzdCB3YW50ZWQgdG8gbGV0IHlvdSBrbm93IEnigJl2ZSBzZW50IHlvdSBzb21lIGRhdGEgSSBmb3VuZCwgaXQgc2hvdWxkIGhlbHAgd2l0aCB5b3VyIHJlcG9ydCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0p1c3Qgd2FudGVkIHRvIGxldCB5b3Uga25vdyBJ4oCZdmUgc2VudCB5b3Ugc29tZSBkYXRhIEkgZm91bmQsIGl0IHNob3VsZCBoZWxwIHdpdGggeW91ciByZXBvcnQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0hvbGtrZ29sa2txb2xra2JvbGtrVm9sa2tob2xra3BvbGtrRSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy4xcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjSG9sa2tnb2xra3FvbGtrYm9sa2tWb2xra2hvbGtrcG9sa2tFJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoYW5rcyBhZ2FpbiwgSGFpbGV5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlFcDJfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoYW5rcyBhZ2FpbiwgSGFpbGV5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5RXAyXzImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxOTMiIG5hbWU9IkhhaWxleUVwMl8yIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMjQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUVwMl8yJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhhbmtzIGFnYWluLCBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhbmtzIGFnYWluLCBIYWlsZXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGFua3MgYWdhaW4sIEhhaWxleSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtWb2xra1JvbGtrSW9sa2tFb2xra2hvbGtrZG9sa2tFb2xra3omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1ZvbGtrUm9sa2tJb2xra0VvbGtraG9sa2tkb2xra0VvbGtreiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3UgbXVzdCBiZSB0aXJlZCBvZiBoZWFyaW5nIG1lIHNheSB0aGFuayB5b3UgYWxsIHRoZSB0aW1lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlFcDJfMyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdSBtdXN0IGJlIHRpcmVkIG9mIGhlYXJpbmcgbWUgc2F5IHRoYW5rIHlvdSBhbGwgdGhlIHRpbWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlFcDJfMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxOTQiIG5hbWU9IkhhaWxleUVwMl8zIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMjQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUVwMl8zJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WW91IG11c3QgYmUgdGlyZWQgb2YgaGVhcmluZyBtZSBzYXkgdGhhbmsgeW91IGFsbCB0aGUgdGltZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3UgbXVzdCBiZSB0aXJlZCBvZiBoZWFyaW5nIG1lIHNheSB0aGFuayB5b3UgYWxsIHRoZSB0aW1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WW91IG11c3QgYmUgdGlyZWQgb2YgaGVhcmluZyBtZSBzYXkgdGhhbmsgeW91IGFsbCB0aGUgdGltZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9iaWdfc21pbGUud2VicCZxdW90OyB0cnVlICZxdW90O0hhaWxleSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2JpZ19zbWlsZS53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O05vdCBhdCBhbGwhIEl04oCZcyBhbHdheXMgbmljZSB0byBiZSBhcHByZWNpYXRlZCZxdW90OyAmcXVvdDtHb2xra1NvbGtrcm9sa2tCb2xra0hvbGtrbm9sa2tMb2xra2tvbGtrS29sa2t2b2xra2JvbGtrWW9sa2tFb2xra0dvbGtrc29sa2twJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm90IGF0IGFsbCEgSXTigJlzIGFsd2F5cyBuaWNlIHRvIGJlIGFwcHJlY2lhdGVkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7Tm90IGF0IGFsbCEgSXTigJlzIGFsd2F5cyBuaWNlIHRvIGJlIGFwcHJlY2lhdGVkJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuOHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7QmVzaWRlcy4uLiB5b3XigJlyZSB0aGUgb25seSBvbmUgd2hvIGNoZWVycyBtZSB1cCZxdW90OyAmcXVvdDtqb2xra0FvbGtrV29sa2tVb2xra29vbGtrSW9sa2tqb2xra3pvbGtrZG9sa2tRb2xra25vbGtrSm9sa2tWb2xra2VvbGtrWG9sa2tBJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QmVzaWRlcy4uLiB5b3XigJlyZSB0aGUgb25seSBvbmUgd2hvIGNoZWVycyBtZSB1cCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0Jlc2lkZXMuLi4geW914oCZcmUgdGhlIG9ubHkgb25lIHdobyBjaGVlcnMgbWUgdXAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3RvbGtrbm9sa2tVb2xra0tvbGtrdm9sa2tIb2xra01vbGtrSSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjdG9sa2tub2xra1VvbGtrS29sa2t2b2xra0hvbGtrTW9sa2tJJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0hvdyBjYW4gSSBiZSB0aGUgb25seSBvbmU/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlFcDJfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0hvdyBjYW4gSSBiZSB0aGUgb25seSBvbmU/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5RXAyXzQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTk1IiBuYW1lPSJIYWlsZXlFcDJfNCIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDI0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlFcDJfNCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0hvdyBjYW4gSSBiZSB0aGUgb25seSBvbmU/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvdyBjYW4gSSBiZSB0aGUgb25seSBvbmU/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SG93IGNhbiBJIGJlIHRoZSBvbmx5IG9uZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7aW9sa2tYb2xra3lvbGtrVm9sa2txb2xra01vbGtrbG9sa2tjJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNpb2xra1hvbGtreW9sa2tWb2xra3FvbGtrTW9sa2tsb2xra2MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSYjMzk7dmUgdG9sZCB5b3UgYmVmb3JlLCB5b3Ugc2hvdWxkIGdvIG91dCBtb3JlLCBtZWV0IHNvbWUgcGVvcGxlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlFcDJfNSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kmIzM5O3ZlIHRvbGQgeW91IGJlZm9yZSwgeW91IHNob3VsZCBnbyBvdXQgbW9yZSwgbWVldCBzb21lIHBlb3BsZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUVwMl81JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE5NiIgbmFtZT0iSGFpbGV5RXAyXzUiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwyNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5RXAyXzUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJ4oCZdmUgdG9sZCB5b3UgYmVmb3JlLCB5b3Ugc2hvdWxkIGdvIG91dCBtb3JlLCBtZWV0IHNvbWUgcGVvcGxlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJl2ZSB0b2xkIHlvdSBiZWZvcmUsIHlvdSBzaG91bGQgZ28gb3V0IG1vcmUsIG1lZXQgc29tZSBwZW9wbGUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJ4oCZdmUgdG9sZCB5b3UgYmVmb3JlLCB5b3Ugc2hvdWxkIGdvIG91dCBtb3JlLCBtZWV0IHNvbWUgcGVvcGxlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1lvbGtrb29sa2t0b2xra3hvbGtrUW9sa2t5b2xra0RvbGtrUyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjWW9sa2tvb2xra3RvbGtreG9sa2tRb2xra3lvbGtrRG9sa2tTJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdSYjMzk7cmUgYSBsb3ZlbHkgZ2lybCwgYW5kIHlvdSBkZXNlcnZlIHRvIGVuam95IGxpZmUgbW9yZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5RXAyXzYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3UmIzM5O3JlIGEgbG92ZWx5IGdpcmwsIGFuZCB5b3UgZGVzZXJ2ZSB0byBlbmpveSBsaWZlIG1vcmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlFcDJfNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxOTciIG5hbWU9IkhhaWxleUVwMl82IiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMjQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUVwMl82JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WW914oCZcmUgYSBsb3ZlbHkgZ2lybCwgYW5kIHlvdSBkZXNlcnZlIHRvIGVuam95IGxpZmUgbW9yZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3XigJlyZSBhIGxvdmVseSBnaXJsLCBhbmQgeW91IGRlc2VydmUgdG8gZW5qb3kgbGlmZSBtb3JlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WW914oCZcmUgYSBsb3ZlbHkgZ2lybCwgYW5kIHlvdSBkZXNlcnZlIHRvIGVuam95IGxpZmUgbW9yZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIGtub3cgeW914oCZcmUgcmlnaHQuLi4mcXVvdDsgJnF1b3Q7VW9sa2t1b2xra2hvbGtraW9sa2t0b2xra2ZvbGtrTm9sa2tTb2xra2NvbGtrcW9sa2tob2xra2NvbGtrZm9sa2tnb2xra21vbGtrdyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kga25vdyB5b3XigJlyZSByaWdodC4uLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kga25vdyB5b3XigJlyZSByaWdodC4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0J1dCBJIGRvbuKAmXQgaGF2ZSBtdWNoIGV4cGVyaWVuY2UsIGFuZCBJIGRvbuKAmXQgaGF2ZSBmcmllbmRzIHRvIGdvIG91dCB3aXRoJnF1b3Q7ICZxdW90O3pvbGtrSG9sa2tPb2xra05vbGtrcm9sa2tVb2xra1JvbGtrRm9sa2twb2xra21vbGtrRW9sa2t3b2xra0ZvbGtrWW9sa2tBb2xra3omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgSSBkb27igJl0IGhhdmUgbXVjaCBleHBlcmllbmNlLCBhbmQgSSBkb27igJl0IGhhdmUgZnJpZW5kcyB0byBnbyBvdXQgd2l0aCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0J1dCBJIGRvbuKAmXQgaGF2ZSBtdWNoIGV4cGVyaWVuY2UsIGFuZCBJIGRvbuKAmXQgaGF2ZSBmcmllbmRzIHRvIGdvIG91dCB3aXRoJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtJb2xra2hvbGtrVm9sa2txb2xra3dvbGtrZG9sa2t0b2xra0kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuNHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I0lvbGtraG9sa2tWb2xra3FvbGtrd29sa2tkb2xra3RvbGtrSSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3UgZG9u4oCZdCBuZWVkIHRoYXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUVwMl83JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WW91IGRvbuKAmXQgbmVlZCB0aGF0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5RXAyXzcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTk4IiBuYW1lPSJIYWlsZXlFcDJfNyIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDI0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlFcDJfNyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdSBkb27igJl0IG5lZWQgdGhhdCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3UgZG9u4oCZdCBuZWVkIHRoYXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZb3UgZG9u4oCZdCBuZWVkIHRoYXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Wm9sa2t5b2xra0ZvbGtrb29sa2thb2xra0hvbGtrQm9sa2tZJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNab2xra3lvbGtrRm9sa2tvb2xra2FvbGtrSG9sa2tCb2xra1kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW91IGp1c3QgbmVlZCB0byB0YWtlIHRoZSBmaXJzdCBzdGVwJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlFcDJfOCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdSBqdXN0IG5lZWQgdG8gdGFrZSB0aGUgZmlyc3Qgc3RlcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUVwMl84JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE5OSIgbmFtZT0iSGFpbGV5RXAyXzgiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsMjQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUVwMl84JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WW91IGp1c3QgbmVlZCB0byB0YWtlIHRoZSBmaXJzdCBzdGVwJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBqdXN0IG5lZWQgdG8gdGFrZSB0aGUgZmlyc3Qgc3RlcCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1lvdSBqdXN0IG5lZWQgdG8gdGFrZSB0aGUgZmlyc3Qgc3RlcCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtub2xra3hvbGtrdm9sa2tzb2xra3hvbGtrd29sa2tOb2xra2smcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I25vbGtreG9sa2t2b2xra3NvbGtreG9sa2t3b2xra05vbGtrayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtXaHkgbm90IGdvIG91dCB0b25pZ2h0PyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5RXAyXzkmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXaHkgbm90IGdvIG91dCB0b25pZ2h0PyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUVwMl85JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIwMCIgbmFtZT0iSGFpbGV5RXAyXzkiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMjQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUVwMl85JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7V2h5IG5vdCBnbyBvdXQgdG9uaWdodD8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2h5IG5vdCBnbyBvdXQgdG9uaWdodD8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtXaHkgbm90IGdvIG91dCB0b25pZ2h0PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJ4oCZbSBhIGJpdCBzaHksIEkgd291bGQgZmVlbCBvdXQgb2YgcGxhY2UmcXVvdDsgJnF1b3Q7d29sa2tNb2xra1ZvbGtrUG9sa2t1b2xra1pvbGtrd29sa2t5b2xra0ZvbGtrb29sa2thb2xra2NvbGtrdW9sa2tPb2xra1BvbGtrRiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJltIGEgYml0IHNoeSwgSSB3b3VsZCBmZWVsIG91dCBvZiBwbGFjZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0nigJltIGEgYml0IHNoeSwgSSB3b3VsZCBmZWVsIG91dCBvZiBwbGFjZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgd291bGRu4oCZdCBldmVuIGtub3cgd2hhdCB0byBkbyZxdW90OyAmcXVvdDt2b2xra2hvbGtrS29sa2tNb2xra2JvbGtrTm9sa2tUb2xra05vbGtrd29sa2tnb2xra0RvbGtrbG9sa2tXb2xra3RvbGtrS29sa2tkJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB3b3VsZG7igJl0IGV2ZW4ga25vdyB3aGF0IHRvIGRvJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSB3b3VsZG7igJl0IGV2ZW4ga25vdyB3aGF0IHRvIGRvJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtmb2xra1FvbGtrSG9sa2txb2xra1JvbGtreW9sa2tFb2xra0kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I2ZvbGtrUW9sa2tIb2xra3FvbGtrUm9sa2t5b2xra0VvbGtrSSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaG9zZSBhcmUganVzdCBleGN1c2VzLCBpdOKAmXMgbm90IHRoYXQgaGFyZCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5RXAyXzEwYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1Rob3NlIGFyZSBqdXN0IGV4Y3VzZXMsIGl04oCZcyBub3QgdGhhdCBoYXJkJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5RXAyXzEwYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjZm9sa2tRb2xra0hvbGtrcW9sa2tSb2xra3lvbGtrRW9sa2tJJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0l0IGNhbiBiZSB0b3VnaCBzb21ldGltZXMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUVwMl8xMGImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJdCBjYW4gYmUgdG91Z2ggc29tZXRpbWVzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5RXAyXzEwYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMDEiIG5hbWU9IkhhaWxleUVwMl8xMGEiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCwyNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5RXAyXzEwYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1Rob3NlIGFyZSBqdXN0IGV4Y3VzZXMsIGl04oCZcyBub3QgdGhhdCBoYXJkJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1Rob3NlIGFyZSBqdXN0IGV4Y3VzZXMsIGl04oCZcyBub3QgdGhhdCBoYXJkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhvc2UgYXJlIGp1c3QgZXhjdXNlcywgaXTigJlzIG5vdCB0aGF0IGhhcmQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7UG9sa2tYb2xra0pvbGtrbm9sa2tSb2xra2tvbGtrQW9sa2tqJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNQb2xra1hvbGtrSm9sa2tub2xra1JvbGtra29sa2tBb2xra2omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7TGV04oCZcyBkbyB0aGlzLS1J4oCZbGwgYmUgeW91ciBhc3Npc3RhbnQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUVwMl8xMSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0xldOKAmXMgZG8gdGhpcy0tSeKAmWxsIGJlIHlvdXIgYXNzaXN0YW50JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5RXAyXzExJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIwMiIgbmFtZT0iSGFpbGV5RXAyXzEwYiIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDI2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlFcDJfMTBiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SXQgY2FuIGJlIHRvdWdoIHNvbWV0aW1lcyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdCBjYW4gYmUgdG91Z2ggc29tZXRpbWVzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SXQgY2FuIGJlIHRvdWdoIHNvbWV0aW1lcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtjb2xra1pvbGtrcW9sa2tWb2xra0hvbGtrRG9sa2thb2xra2smcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I2NvbGtrWm9sa2txb2xra1ZvbGtrSG9sa2tEb2xra2FvbGtrayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtMZXTigJlzIGRvIHRoaXMtLUnigJlsbCBiZSB5b3VyIGFzc2lzdGFudCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5RXAyXzExJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7TGV04oCZcyBkbyB0aGlzLS1J4oCZbGwgYmUgeW91ciBhc3Npc3RhbnQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlFcDJfMTEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjAzIiBuYW1lPSJIYWlsZXlFcDJfMTEiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCwyNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5RXAyXzExJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TGV04oCZcyBkbyB0aGlzOiBJ4oCZbGwgYmUgeW91ciBhc3Npc3RhbnQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGV04oCZcyBkbyB0aGlzOiBJ4oCZbGwgYmUgeW91ciBhc3Npc3RhbnQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtMZXTigJlzIGRvIHRoaXM6IEnigJlsbCBiZSB5b3VyIGFzc2lzdGFudCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtkb2xra0lvbGtrZW9sa2tFb2xra2pvbGtrcW9sa2tzb2xra3gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I2RvbGtrSW9sa2tlb2xra0VvbGtram9sa2txb2xra3NvbGtreCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUZXh0IG1lIGR1cmluZyB0aGUgbmlnaHQsIGFuZCBJ4oCZbGwgaGVscCB5b3UgYmUgbW9yZSBzb2NpYWwmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUVwMl8xMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RleHQgbWUgZHVyaW5nIHRoZSBuaWdodCwgYW5kIEnigJlsbCBoZWxwIHlvdSBiZSBtb3JlIHNvY2lhbCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUVwMl8xMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMDQiIG5hbWU9IkhhaWxleUVwMl8xMiIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDI2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlFcDJfMTImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUZXh0IG1lIGR1cmluZyB0aGUgbmlnaHQsIGFuZCBJ4oCZbGwgaGVscCB5b3UgYmUgbW9yZSBzb2NpYWwmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGV4dCBtZSBkdXJpbmcgdGhlIG5pZ2h0LCBhbmQgSeKAmWxsIGhlbHAgeW91IGJlIG1vcmUgc29jaWFsJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGV4dCBtZSBkdXJpbmcgdGhlIG5pZ2h0LCBhbmQgSeKAmWxsIGhlbHAgeW91IGJlIG1vcmUgc29jaWFsJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2tvbGtrVm9sa2tlb2xra21vbGtrbG9sa2tDb2xra1NvbGtrbCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsja29sa2tWb2xra2VvbGtrbW9sa2tsb2xra0NvbGtrU29sa2tsJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0FueXRpbWUgeW914oCZcmUgdW5zdXJlIG9mIHdoYXQgdG8gZG8sIGp1c3QgYXNrIG1lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlFcDJfMTMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtBbnl0aW1lIHlvdeKAmXJlIHVuc3VyZSBvZiB3aGF0IHRvIGRvLCBqdXN0IGFzayBtZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUVwMl8xMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMDUiIG5hbWU9IkhhaWxleUVwMl8xMyIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDI2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlFcDJfMTMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtBbnl0aW1lIHlvdeKAmXJlIHVuc3VyZSBvZiB3aGF0IHRvIGRvLCBqdXN0IGFzayBtZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbnl0aW1lIHlvdeKAmXJlIHVuc3VyZSBvZiB3aGF0IHRvIGRvLCBqdXN0IGFzayBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0FueXRpbWUgeW914oCZcmUgdW5zdXJlIG9mIHdoYXQgdG8gZG8sIGp1c3QgYXNrIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0J1dCB5b3XigJlyZSBidXN5IHdpdGggdGhlIHJlcG9ydC4uLiZxdW90OyAmcXVvdDtyb2xra0VvbGtrQm9sa2tLb2xra2JvbGtraG9sa2t6b2xra21vbGtrWW9sa2tyb2xra1FvbGtrTG9sa2tab2xra01vbGtrcG9sa2tOJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IHlvdeKAmXJlIGJ1c3kgd2l0aCB0aGUgcmVwb3J0Li4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QnV0IHlvdeKAmXJlIGJ1c3kgd2l0aCB0aGUgcmVwb3J0Li4uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtQb2xra0VvbGtrTm9sa2tHb2xra0ZvbGtrVm9sa2tMb2xra2YmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuNXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1BvbGtrRW9sa2tOb2xra0dvbGtrRm9sa2tWb2xra0xvbGtrZiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJdCB3b27igJl0IGNoYW5nZSBhbnl0aGluZyBmb3IgbWUgdG8gdGFrZSBhIGZldyBtaW51dGVzIHRvIHJlcGx5IHRvIHNvbWUgbWVzc2FnZXMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUVwMl8xNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0l0IHdvbuKAmXQgY2hhbmdlIGFueXRoaW5nIGZvciBtZSB0byB0YWtlIGEgZmV3IG1pbnV0ZXMgdG8gcmVwbHkgdG8gc29tZSBtZXNzYWdlcyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUVwMl8xNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMDYiIG5hbWU9IkhhaWxleUVwMl8xNCIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDI2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlFcDJfMTQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJdCB3b27igJl0IGNoYW5nZSBhbnl0aGluZyBmb3IgbWUgdG8gdGFrZSBhIGZldyBtaW51dGVzIHRvIHJlcGx5IHRvIHNvbWUgbWVzc2FnZXMmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXQgd29u4oCZdCBjaGFuZ2UgYW55dGhpbmcgZm9yIG1lIHRvIHRha2UgYSBmZXcgbWludXRlcyB0byByZXBseSB0byBzb21lIG1lc3NhZ2VzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SXQgd29u4oCZdCBjaGFuZ2UgYW55dGhpbmcgZm9yIG1lIHRvIHRha2UgYSBmZXcgbWludXRlcyB0byByZXBseSB0byBzb21lIG1lc3NhZ2VzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0lvbGtrYm9sa2tRb2xra3hvbGtrRm9sa2t1b2xra1lvbGtrcCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjSW9sa2tib2xra1FvbGtreG9sa2tGb2xra3VvbGtrWW9sa2twJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RydXN0IG1lLCBJIGNhbiBoZWxwJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlFcDJfMTUmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUcnVzdCBtZSwgSSBjYW4gaGVscCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUVwMl8xNSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMDciIG5hbWU9IkhhaWxleUVwMl8xNSIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDI2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlFcDJfMTUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUcnVzdCBtZSwgSSBjYW4gaGVscCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUcnVzdCBtZSwgSSBjYW4gaGVscCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RydXN0IG1lLCBJIGNhbiBoZWxwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O09rYXkuLi4gSeKAmWxsIHRoaW5rIGFib3V0IGl0JnF1b3Q7ICZxdW90O25vbGtrVG9sa2ttb2xra1VvbGtrdm9sa2tIb2xra1JvbGtrSG9sa2tjb2xra2pvbGtreG9sa2tGb2xra0dvbGtreW9sa2t0b2xra24mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPa2F5Li4uIEnigJlsbCB0aGluayBhYm91dCBpdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O09rYXkuLi4gSeKAmWxsIHRoaW5rIGFib3V0IGl0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtNb2xra1BvbGtrZG9sa2tMb2xra3hvbGtrRm9sa2tlb2xra0kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuNHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I01vbGtrUG9sa2tkb2xra0xvbGtreG9sa2tGb2xra2VvbGtrSSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGF04oCZcyBhbGwgSeKAmW0gYXNraW5nJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlFcDJfMTYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaGF04oCZcyBhbGwgSeKAmW0gYXNraW5nJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5RXAyXzE2JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIwOCIgbmFtZT0iSGFpbGV5RXAyXzE2IiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMjYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUVwMl8xNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RoYXTigJlzIGFsbCBJ4oCZbSBhc2tpbmcmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhdOKAmXMgYWxsIEnigJltIGFza2luZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RoYXTigJlzIGFsbCBJ4oCZbSBhc2tpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7RG9sa2tEb2xra3BvbGtram9sa2tEb2xra1ZvbGtrcm9sa2tNJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNEb2xra0RvbGtrcG9sa2tqb2xra0RvbGtrVm9sa2tyb2xra00mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGFsayB0byB5b3UgbGF0ZXIsIEhhaWxleSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5RXAyXzE3JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGFsayB0byB5b3UgbGF0ZXIsIEhhaWxleSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUVwMl8xNyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMDkiIG5hbWU9IkhhaWxleUVwMl8xNyIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwyNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5RXAyXzE3JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGFsayB0byB5b3UgbGF0ZXIsIEhhaWxleSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUYWxrIHRvIHlvdSBsYXRlciwgSGFpbGV5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGFsayB0byB5b3UgbGF0ZXIsIEhhaWxleSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtCeWUgJG5hbWUmcXVvdDsgJnF1b3Q7Qm9sa2t6b2xra0JvbGtrRW9sa2t1b2xra0pvbGtrUm9sa2tob2xra1FvbGtrdG9sa2tkb2xra3RvbGtrcW9sa2tXb2xra2pvbGtrbyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J5ZSAkbmFtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0J5ZSAkbmFtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjFzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X3Rvbmd1ZS53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7SGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfdG9uZ3VlLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDIuMXMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjFzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzFfMSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjFzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hleSBob25leSwgaG934oCZcyBldmVyeXRoaW5nIGdvaW5nIG92ZXIgdGhlcmU/JnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMXMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nID0gJEFubmllX2NoYXRMb2cuc2xpY2UoLTUpJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMXMmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDvwn5iLJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgPSAmcXVvdDtIYWlsZXlFcDJfMTcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RfaG91ciA9ICZxdW90OzE0OjMyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0ID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzE0OjMyJnF1b3Q7Jmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtvZmZsaW5lLXRleHQmcXVvdDsmZ3Q7SGFpbGV5IGlzIG9mZmxpbmUmbHQ7L2RpdiZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjEwIiBuYW1lPSJIYWlsZXlfbm90ZSIgdGFncz0ibm90ZXNpbiBub3Rob3VyIiBwb3NpdGlvbj0iMTIyNSwyNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2hlYWRlciAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O05vdGVzJnF1b3Q7IHRydWUmZ3Q7Jmd0OwogICAgJmx0O2RpdiBpZD0mcXVvdDtwYWRkaW5nLWNvbnRhaW5lciZxdW90OyBjbGFzcz0mcXVvdDt0ZXh0X2JsYWNrJnF1b3Q7Jmd0OwogICAgICAgICZsdDtkaXYmZ3Q7LSBTaGXigJlzIGEgY293b3JrZXIuIEV2ZXIgc2luY2Ugc2hlIGpvaW5lZCB0aGUgY29tcGFueSwgSSBkZWNpZGVkIHRvIGhlbHAgaGVyIGZpdCBpbiBmYXN0ZXIuIFNoZeKAmXMgYSB2ZXJ5IHJlc3BvbnNpYmxlIGFuZCBoYXJkd29ya2luZyBnaXJsLCB0aG91Z2ggc2hlIHNlZW1zIGEgYml0IGxvbmVseS4mbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0O2ZvciBfaSByYW5nZSAkSGFpbGV5X25vdGVzJmd0OyZndDsKICAgICAgICAgICAgJmx0O2RpdiBzdHlsZT0mcXVvdDttYXJnaW4tdG9wOiAxNnB4JnF1b3Q7Jmd0Oy0gX2kmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0Oy9mb3ImZ3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjExIiBuYW1lPSJKZW5uYV9jaGF0IiB0YWdzPSJtYXBwIG5vdGhvdXIiIHBvc2l0aW9uPSIxMDAsMjcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKLypyZWdpb24gRW1pbHkgY2hhdCovCiZsdDsmbHQ7aWYgJHBtZGxwID09IHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkSmVubmFfY2hhdCA9PSB0cnVlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2hlYWRlciAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyAkSmVubmFfcGF1c2VkJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2hlYWRlciAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtoZWFkZXIgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsgdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDttZXNzYWdlX2NvbnRhaW5lciZxdW90OyZndDsKICAgICZsdDsmbHQ7aWYgJHBtZGxwID09IHRydWUmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7Zm9yIF9saW5lIHJhbmdlICRKZW5uYV9jaGF0TG9nJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpZiBfbGluZS50eXBlID09IDEmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkIF9saW5lLnNlbmRlciBfbGluZS5tZXNzYWdlIF9saW5lLmF2YXRhciZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZWxzZWlmIF9saW5lLnR5cGUgPT0gMiZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VfaW1nIF9saW5lLm1lc3NhZ2UmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Vsc2VpZiBfbGluZS50eXBlID09IDMmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlX3ZpZGVvIF9saW5lLm1lc3NhZ2VbMF0gX2xpbmUubWVzc2FnZVsxXSZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZWxzZWlmIF9saW5lLnR5cGUgPT0gNCZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VfZW1vamkgX2xpbmUubWVzc2FnZSBmYWxzZSBfbGluZS5zZW5kZXImZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvZm9yJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2lmICRKZW5uYV9wYXVzZWQgPT0gZmFsc2UmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2lmICRKZW5uYV9jaGF0ID09IHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtpbmNsdWRlICRKZW5uYV9jaGF0U3RhdGUmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7ZGl2IEBpZD0mcXVvdDskSmVubmFfbGFzdElkLnNsaWNlKDEpJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtKZW5uYSBpcyBhbiBleGNsdXNpdmUgY2hhcmFjdGVyIGZvciBQYXRyZW9uIHN1cHBvcnRlcnMuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjFzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2ltZyAmcXVvdDthc3NldHMvaW1nL3ByZW1pdW0vSmVubmEvamVubmFfcGhvdG9fMDAud2VicCZxdW90OyB0cnVlICZxdW90O1BvbGtrV29sa2tDb2xra3BvbGtrU29sa2t1b2xra3NvbGtrTW9sa2tjb2xra3dvbGtrQ29sa2tSb2xra1VvbGtrV29sa2tGb2xra2smcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjVzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O1RoaXMgY2hhdCBpbmNsdWRlcyBhIHN0b3J5bGluZSB3aXRoIGFuIGV4LWNvd2Vya2VyIHRoYXQgbm93IGlzIGEgbnNmdyBjb250ZW50IGNyZWF0b3IuJnF1b3Q7ICZxdW90O01vbGtrem9sa2tqb2xra0VvbGtrTG9sa2txb2xra0ZvbGtram9sa2tJb2xra1lvbGtrVm9sa2tnb2xra3dvbGtrdm9sa2tqb2xra2omcXVvdDsoKSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNXMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7WW91IGNhbiBmaW5kIHRoZSBQYXRyZW9uIGNvZGUgaW4gdGhlIG1vc3QgcmVjZW50IHVwZGF0ZXMgb24gb3VyIFBhdHJlb24gcGFnZS4mcXVvdDsgJnF1b3Q7cm9sa2tRb2xra0JvbGtrT29sa2tGb2xra3VvbGtraG9sa2tNb2xra21vbGtrVW9sa2tsb2xra0pvbGtrcW9sa2tVb2xra2FvbGtrciZxdW90OygpJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgIHNldHVwLnNjcm9sbCgpOwogICAgICAgICAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O2VuZCZxdW90OyZndDsmbHQ7L2RpdiZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7Y2hhdF9iYXImcXVvdDsmZ3Q7CiAgICAmbHQ7ZGl2IGlkPSZxdW90O2NvbnRlbnQmcXVvdDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRwbWRscCA9PSB0cnVlJmd0OyZndDsKICAgICAgICAKICAgICAgICAmbHQ7Jmx0O2lmICRKZW5uYV9wYXVzZWQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aWYgJEplbm5hX29wdGlvbnNbMF0mZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtsaW5rICRKZW5uYV9vcHRpb25zWzBdLnRleHQmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkSmVubmFfb3B0aW9uc1swXS5wYXNzYWdlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aWYgJEplbm5hX29wdGlvbnNbMV0mZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtsaW5rICRKZW5uYV9vcHRpb25zWzFdLnRleHQmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkSmVubmFfb3B0aW9uc1sxXS5wYXNzYWdlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aWYgJEplbm5hX29wdGlvbnNbMl0mZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtsaW5rICRKZW5uYV9vcHRpb25zWzJdLnRleHQmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkSmVubmFfb3B0aW9uc1syXS5wYXNzYWdlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aWYgJEplbm5hX29wdGlvbnNbM10mZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtsaW5rICRKZW5uYV9vcHRpb25zWzNdLnRleHQmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkSmVubmFfb3B0aW9uc1szXS5wYXNzYWdlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJnF1b3Q7VW5sb2NrIFByZW1pdW0gQ29udGVudCZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7Z290byAmcXVvdDtwYXRyb24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0O3RpbWVkIDAuMnMmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbEluc3RhKCk7CiAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjEyIiBuYW1lPSJKZW5uYV9ub3RlIiB0YWdzPSJub3Rlc2luIG5vdGhvdXIiIHBvc2l0aW9uPSIyMjUsMjcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtoZWFkZXIgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7Tm90ZXMmcXVvdDsgdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7ZGl2IGlkPSZxdW90O3BhZGRpbmctY29udGFpbmVyJnF1b3Q7IGNsYXNzPSZxdW90O3RleHRfYmxhY2smcXVvdDsmZ3Q7CiAgICAgICAgJmx0O2RpdiZndDstIFdlIGpvaW5lZCB0aGUgY29tcGFueSBhcm91bmQgdGhlIHNhbWUgdGltZS4gSSBjb25zaWRlcmVkIGhlciBhIGdvb2QgZnJpZW5kIHVudGlsIE1yLiBQaGlsbGlwcyB0YXJnZXRlZCBoZXIgYW5kIGdvdCBoZXIgZmlyZWQuIEFmdGVyIHRoYXQsIHNoZSBqdXN0IGRpc2FwcGVhcmVkIGFuZCBJIG5ldmVyIGhlYXJkIGFueXRoaW5nIGFib3V0IGhlciBsaWZlIGFnYWluLiZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsmbHQ7Zm9yIF9pIHJhbmdlICRKZW5uYV9ub3RlcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgc3R5bGU9JnF1b3Q7bWFyZ2luLXRvcDogMTZweCZxdW90OyZndDstIF9pJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDsvZm9yJmd0OyZndDsKICAgICZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIxMyIgbmFtZT0iSmVubmExXzEiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCwyNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0hpICRuYW1lLCBpcyB0aGlzIHlvdXIgbnVtYmVyPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGkgJG5hbWUsIGlzIHRoaXMgeW91ciBudW1iZXI/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtIaSAkbmFtZSwgaXMgdGhpcyB5b3VyIG51bWJlcj8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtVb2xra3lvbGtrc29sa2tTb2xra2JvbGtrVG9sa2tGb2xra20mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I1VvbGtreW9sa2tzb2xra1NvbGtrYm9sa2tUb2xra0ZvbGtrbSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1dobyBpcyB0aGlzPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXaG8gaXMgdGhpcz8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIxNCIgbmFtZT0iSmVubmExXzIiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwyNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRTdGF0ZSAgPSAmcXVvdDtKZW5uYTFfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtXaG8gaXMgdGhpcz8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXaG8gaXMgdGhpcz8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O1dobyBpcyB0aGlzPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0l04oCZcyBtZSwgSmVubmEmcXVvdDsgJnF1b3Q7dG9sa2tJb2xra2JvbGtrWG9sa2t5b2xra0JvbGtrQW9sa2tGb2xra1hvbGtrQW9sa2tNb2xra1RvbGtra29sa2tFb2xra2hvbGtrUiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdOKAmXMgbWUsIEplbm5hJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtJdOKAmXMgbWUsIEplbm5hJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtZb3VyIGV4IGNvLXdvcmtlciZxdW90OyAmcXVvdDtnb2xra3FvbGtrQ29sa2tYb2xra21vbGtrY29sa2tMb2xra0lvbGtreW9sa2trb2xra1JvbGtraG9sa2tEb2xra2hvbGtrY29sa2twJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdXIgZXggY28td29ya2VyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtZb3VyIGV4IGNvLXdvcmtlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7VG9sa2tGb2xra25vbGtrdG9sa2ttb2xra3pvbGtrY29sa2tGJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyNUb2xra0ZvbGtrbm9sa2t0b2xra21vbGtrem9sa2tjb2xra0YmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtPaCwgSmVubmEhIEhvdyBoYXZlIHlvdSBiZWVuPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtPaCwgSmVubmEhIEhvdyBoYXZlIHlvdSBiZWVuPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8zJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIxNSIgbmFtZT0iSmVubmExXzMiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwyNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRTdGF0ZSAgPSAmcXVvdDtKZW5uYTFfMyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtPaCwgSmVubmEhIEhvdyBoYXZlIHlvdSBiZWVuPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09oLCBKZW5uYSEgSG93IGhhdmUgeW91IGJlZW4/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtPaCwgSmVubmEhIEhvdyBoYXZlIHlvdSBiZWVuPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtTb2xra3VvbGtrSG9sa2tqb2xra0dvbGtrUW9sa2t3b2xra2ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I1NvbGtrdW9sa2tIb2xra2pvbGtrR29sa2tRb2xra3dvbGtrYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgZGlkbuKAmXQgcmVjb2duaXplIHlvdSBmcm9tIHlvdXIgcHJvZmlsZSBwaWN0dXJlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgZGlkbuKAmXQgcmVjb2duaXplIHlvdSBmcm9tIHlvdXIgcHJvZmlsZSBwaWN0dXJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SmVubmExXzQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjE2IiBuYW1lPSJKZW5uYTFfNCIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDI3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdFN0YXRlICA9ICZxdW90O0plbm5hMV80JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSmVubmFfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgZGlkbuKAmXQgcmVjb2duaXplIHlvdSBmcm9tIHlvdXIgcHJvZmlsZSBwaWN0dXJlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBkaWRu4oCZdCByZWNvZ25pemUgeW91IGZyb20geW91ciBwcm9maWxlIHBpY3R1cmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0kgZGlkbuKAmXQgcmVjb2duaXplIHlvdSBmcm9tIHlvdXIgcHJvZmlsZSBwaWN0dXJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7TG9sLCBJ4oCZdmUgY2hhbmdlZCBhIGxvdCZxdW90OyAmcXVvdDtQb2xra1JvbGtrQW9sa2tJb2xra1ZvbGtrRG9sa2trb2xra2tvbGtraW9sa2tDb2xra1ZvbGtrZW9sa2tFb2xra3hvbGtrRG9sa2tFJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0xvbCwgSeKAmXZlIGNoYW5nZWQgYSBsb3QmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0xvbCwgSeKAmXZlIGNoYW5nZWQgYSBsb3QmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3VvbGtrSG9sa2tzb2xra09vbGtrR29sa2tib2xra3hvbGtrUSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsjdW9sa2tIb2xra3NvbGtrT29sa2tHb2xra2JvbGtreG9sa2tRJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WWVhaCwgSSBjYW4gc2VlIHRoYXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0plbm5hMV81JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WWVhaCwgSSBjYW4gc2VlIHRoYXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfNSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMTciIG5hbWU9Ikplbm5hMV81IiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMjcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRKZW5uYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WWVhaCwgSSBjYW4gc2VlIHRoYXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLCBJIGNhbiBzZWUgdGhhdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7WWVhaCwgSSBjYW4gc2VlIHRoYXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7d29sa2tJb2xra29vbGtraW9sa2tib2xra2VvbGtrUm9sa2tlJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyN3b2xra0lvbGtrb29sa2tpb2xra2JvbGtrZW9sa2tSb2xra2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtIb3cgZGlkIHlvdSBnZXQgbXkgbnVtYmVyPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtIb3cgZGlkIHlvdSBnZXQgbXkgbnVtYmVyPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV82JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIxOCIgbmFtZT0iSmVubmExXzYiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSwyNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRTdGF0ZSAgPSAmcXVvdDtKZW5uYTFfNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtIb3cgZGlkIHlvdSBnZXQgbXkgbnVtYmVyPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvdyBkaWQgeW91IGdldCBteSBudW1iZXI/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtIb3cgZGlkIHlvdSBnZXQgbXkgbnVtYmVyPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0hhaWxleSBnYXZlIGl0IHRvIG1lJnF1b3Q7ICZxdW90O0lvbGtraG9sa2tSb2xra2xvbGtrQW9sa2tWb2xra1FvbGtrV29sa2tNb2xra2ZvbGtrRG9sa2tTb2xra3pvbGtrZm9sa2tjb2xra3QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGFpbGV5IGdhdmUgaXQgdG8gbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0hhaWxleSBnYXZlIGl0IHRvIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtJIG1lYW4sIEkgYXNrZWQgaGVyIGZvciBpdCZxdW90OyAmcXVvdDt6b2xra2FvbGtrSW9sa2twb2xra0NvbGtrTm9sa2t0b2xra0NvbGtrcW9sa2tEb2xra3NvbGtrcW9sa2ttb2xra3lvbGtrcm9sa2t5JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbWVhbiwgSSBhc2tlZCBoZXIgZm9yIGl0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtJIG1lYW4sIEkgYXNrZWQgaGVyIGZvciBpdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNXMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7WW91IHR3byB1c2VkIHRvIGJlIG15IGZyaWVuZHMsIGFuZCBJIHdhbnRlZCB0byBzZWUgaG93IHlvdeKAmXZlIGJlZW4mcXVvdDsgJnF1b3Q7ZW9sa2t6b2xra0pvbGtrbm9sa2tDb2xra0tvbGtrWG9sa2txb2xra1hvbGtrUm9sa2tJb2xra1dvbGtrVW9sa2tyb2xra0pvbGtrQSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3UgdHdvIHVzZWQgdG8gYmUgbXkgZnJpZW5kcywgYW5kIEkgd2FudGVkIHRvIHNlZSBob3cgeW914oCZdmUgYmVlbiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7WW91IHR3byB1c2VkIHRvIGJlIG15IGZyaWVuZHMsIGFuZCBJIHdhbnRlZCB0byBzZWUgaG93IHlvdeKAmXZlIGJlZW4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0kgaG9wZSBpdOKAmXMgbm90IGEgcHJvYmxlbSZxdW90OyAmcXVvdDtwb2xra29vbGtrU29sa2tub2xra3NvbGtrWG9sa2tDb2xra1JvbGtrWG9sa2tGb2xra0RvbGtrUm9sa2tIb2xra1JvbGtrQ29sa2tqJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgaG9wZSBpdOKAmXMgbm90IGEgcHJvYmxlbSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7SSBob3BlIGl04oCZcyBub3QgYSBwcm9ibGVtJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtxb2xra2xvbGtrVW9sa2tWb2xra1hvbGtrTW9sa2tzb2xra0QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDYuMHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I3FvbGtrbG9sa2tVb2xra1ZvbGtrWG9sa2tNb2xra3NvbGtrRCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O05vLCBub3QgYXQgYWxsJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfNyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O05vLCBub3QgYXQgYWxsJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SmVubmExXzcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjE5IiBuYW1lPSJKZW5uYTFfNyIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwyNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRTdGF0ZSAgPSAmcXVvdDtKZW5uYTFfNyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtObywgbm90IGF0IGFsbCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05vLCBub3QgYXQgYWxsJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtObywgbm90IGF0IGFsbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtob2xra3FvbGtrVG9sa2tsb2xra3ZvbGtrWm9sa2tyb2xra3AmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I2hvbGtrcW9sa2tUb2xra2xvbGtrdm9sa2tab2xra3JvbGtrcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgd2FzIGp1c3QgY3VyaW91cyBhYm91dCBob3cgeW91IGZvdW5kIG1lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfOCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgd2FzIGp1c3QgY3VyaW91cyBhYm91dCBob3cgeW91IGZvdW5kIG1lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SmVubmExXzgmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjIwIiBuYW1lPSJKZW5uYTFfOCIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSwyNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRTdGF0ZSAgPSAmcXVvdDtKZW5uYTFfOCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIHdhcyBqdXN0IGN1cmlvdXMgYWJvdXQgaG93IHlvdSBmb3VuZCBtZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgd2FzIGp1c3QgY3VyaW91cyBhYm91dCBob3cgeW91IGZvdW5kIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtJIHdhcyBqdXN0IGN1cmlvdXMgYWJvdXQgaG93IHlvdSBmb3VuZCBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt3b2xra3NvbGtrbG9sa2tkb2xra2RvbGtrem9sa2thb2xra2omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I3dvbGtrc29sa2tsb2xra2RvbGtrZG9sa2t6b2xra2FvbGtraiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0J1dCB0ZWxsIG1lLCB3aGF0IGhhdmUgeW91IGJlZW4gdXAgdG8gYWxsIHRoaXMgdGltZT8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0plbm5hMV85JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QnV0IHRlbGwgbWUsIHdoYXQgaGF2ZSB5b3UgYmVlbiB1cCB0byBhbGwgdGhpcyB0aW1lPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV85JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIyMSIgbmFtZT0iSmVubmExXzkiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCwyODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRTdGF0ZSAgPSAmcXVvdDtKZW5uYTFfOSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtCdXQgdGVsbCBtZSwgd2hhdCBoYXZlIHlvdSBiZWVuIHVwIHRvIGFsbCB0aGlzIHRpbWU/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IHRlbGwgbWUsIHdoYXQgaGF2ZSB5b3UgYmVlbiB1cCB0byBhbGwgdGhpcyB0aW1lPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7QnV0IHRlbGwgbWUsIHdoYXQgaGF2ZSB5b3UgYmVlbiB1cCB0byBhbGwgdGhpcyB0aW1lPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjJzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O1dlbGwsIGFzIHlvdSBjYW4gc2VlLCBJ4oCZdmUgY2hhbmdlZCBhIGxvdCBzaW5jZSBiYWNrIHRoZW4mcXVvdDsgJnF1b3Q7RW9sa2tsb2xra3dvbGtrb29sa2t1b2xra0xvbGtrZm9sa2tjb2xra1VvbGtrWG9sa2t5b2xra0JvbGtrUm9sa2tob2xra1VvbGtrVSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZWxsLCBhcyB5b3UgY2FuIHNlZSwgSeKAmXZlIGNoYW5nZWQgYSBsb3Qgc2luY2UgYmFjayB0aGVuJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtXZWxsLCBhcyB5b3UgY2FuIHNlZSwgSeKAmXZlIGNoYW5nZWQgYSBsb3Qgc2luY2UgYmFjayB0aGVuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS45cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtBdCBsZWFzdCBwaHlzaWNhbGx5LiBJIHRoaW5rIGdldHRpbmcgZmlyZWQgYnkgdGhhdCBpZGlvdCBQaGlsbGlwcyB0dXJuZWQgb3V0IHRvIGJlIHJlYWxseSBnb29kIGZvciBtZSZxdW90OyAmcXVvdDt5b2xra3NvbGtrYW9sa2tkb2xra1JvbGtra29sa2tGb2xra3NvbGtrdW9sa2tjb2xra21vbGtrZm9sa2tZb2xra0VvbGtrUG9sa2tYJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0F0IGxlYXN0IHBoeXNpY2FsbHkuIEkgdGhpbmsgZ2V0dGluZyBmaXJlZCBieSB0aGF0IGlkaW90IFBoaWxsaXBzIHR1cm5lZCBvdXQgdG8gYmUgcmVhbGx5IGdvb2QgZm9yIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtBdCBsZWFzdCBwaHlzaWNhbGx5LiBJIHRoaW5rIGdldHRpbmcgZmlyZWQgYnkgdGhhdCBpZGlvdCBQaGlsbGlwcyB0dXJuZWQgb3V0IHRvIGJlIHJlYWxseSBnb29kIGZvciBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNnMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7VGhpcyBpcyB0aGUgbWUgeW91IHJlbWVtYmVyOiZxdW90OyAmcXVvdDtVb2xra2lvbGtrU29sa2t3b2xra21vbGtrV29sa2tjb2xra1JvbGtrVG9sa2t6b2xra05vbGtrcW9sa2tIb2xra1JvbGtrSm9sa2tIJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoaXMgaXMgdGhlIG1lIHlvdSByZW1lbWJlcjomcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O1RoaXMgaXMgdGhlIG1lIHlvdSByZW1lbWJlcjomcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNi4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9pbWcgJnF1b3Q7YXNzZXRzL2ltZy9wcmVtaXVtL0plbm5hL2plbm5hX3Bob3RvXzAxLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtWb2xra1RvbGtrQW9sa2twb2xra3hvbGtrQm9sa2tpb2xra1VvbGtra29sa2t1b2xra2dvbGtrYW9sa2tMb2xra1BvbGtrSW9sa2taJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDIsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvcHJlbWl1bS9KZW5uYS9qZW5uYV9waG90b18wMS53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkcGhvdG9zLnB1c2goJnF1b3Q7YXNzZXRzL2ltZy9wcmVtaXVtL0plbm5hL2plbm5hX3Bob3RvXzAxLndlYnAmcXVvdDspJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDcuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtBbmQgdGhpcyBpcyBob3cgSSBsb29rIG5vdzomcXVvdDsgJnF1b3Q7Zm9sa2tvb2xra3pvbGtrSW9sa2tib2xra2pvbGtreW9sa2tkb2xra3FvbGtrTG9sa2tRb2xra2dvbGtreW9sa2tYb2xra2tvbGtraSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbmQgdGhpcyBpcyBob3cgSSBsb29rIG5vdzomcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0FuZCB0aGlzIGlzIGhvdyBJIGxvb2sgbm93OiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA5LjFzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2ltZyAmcXVvdDthc3NldHMvaW1nL3ByZW1pdW0vSmVubmEvamVubmFfcGhvdG9fMDIud2VicCZxdW90OyB0cnVlICZxdW90O3JvbGtrYm9sa2tUb2xra25vbGtrcG9sa2tHb2xra0pvbGtrYm9sa2t0b2xra2pvbGtrZ29sa2tLb2xra0tvbGtrbm9sa2tVb2xra1YmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMiwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9wcmVtaXVtL0plbm5hL2plbm5hX3Bob3RvXzAyLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRwaG90b3MucHVzaCgmcXVvdDthc3NldHMvaW1nL3ByZW1pdW0vSmVubmEvamVubmFfcGhvdG9fMDIud2VicCZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMTAuMXMmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSmVubmFfbm90ZXMucHVzaCgmcXVvdDtKZW5uYSBnb3QgYmFjayBpbiB0b3VjaCB3aXRoIG1lIGFmdGVyIGEgbG9uZyB0aW1lLiBTaGUgZ290IHNvbWUgY29zbWV0aWMgc3VyZ2VyeSBhbmQgZ290IGluIHNoYXBlLCBzbyBub3cgc2hlIGxvb2tzIHJlYWxseSBzZXh5LiZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEwLjFzJmd0OyZndDsmbHQ7Jmx0O3NldCAkSmVubmFBY2hpdmVtZW50ID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7TW9sa2t1b2xra1JvbGtrUG9sa2tCb2xra2tvbGtrZG9sa2txJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxMC4xcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsjTW9sa2t1b2xra1JvbGtrUG9sa2tCb2xra2tvbGtrZG9sa2txJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7V293LCB5b3UgbG9vayBiZWF1dGlmdWwsIEplbm5hJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMTBhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7V293LCB5b3UgbG9vayBiZWF1dGlmdWwsIEplbm5hJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SmVubmExXzEwYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyNNb2xra3VvbGtrUm9sa2tQb2xra0JvbGtra29sa2tkb2xra3EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3XigJl2ZSByZWFsbHkgY2hhbmdlZCwgY29uZ3JhdHMhJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMTBiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WW914oCZdmUgcmVhbGx5IGNoYW5nZWQsIGNvbmdyYXRzISZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8xMGImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjIyIiBuYW1lPSJKZW5uYTFfMTBhIiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsMjg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzEwYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtXb3csIHlvdSBsb29rIGJlYXV0aWZ1bCwgSmVubmEmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXb3csIHlvdSBsb29rIGJlYXV0aWZ1bCwgSmVubmEmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O1dvdywgeW91IGxvb2sgYmVhdXRpZnVsLCBKZW5uYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjdzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O1RoYW5rcy4gSSBvbmx5IGhhZCB0d28gb3B0aW9ucyBhZnRlciB0aGUgZGVlcCBkZXByZXNzaW9uIEkgd2VudCB0aHJvdWdoIHdoZW4gSSBnb3QgZmlyZWQmcXVvdDsgJnF1b3Q7RG9sa2tob2xra0tvbGtrZW9sa2tyb2xra09vbGtrb29sa2tRb2xra2dvbGtrcW9sa2tRb2xra0pvbGtrQ29sa2t3b2xra2lvbGtrbSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGFua3MuIEkgb25seSBoYWQgdHdvIG9wdGlvbnMgYWZ0ZXIgdGhlIGRlZXAgZGVwcmVzc2lvbiBJIHdlbnQgdGhyb3VnaCB3aGVuIEkgZ290IGZpcmVkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtUaGFua3MuIEkgb25seSBoYWQgdHdvIG9wdGlvbnMgYWZ0ZXIgdGhlIGRlZXAgZGVwcmVzc2lvbiBJIHdlbnQgdGhyb3VnaCB3aGVuIEkgZ290IGZpcmVkJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtLZWVwIGdhaW5pbmcgd2VpZ2h0IG9yIGNvbXBsZXRlbHkgY2hhbmdlIG15IGxpZmVzdHlsZSZxdW90OyAmcXVvdDtob2xra2hvbGtrbG9sa2t4b2xra0FvbGtrVm9sa2tUb2xra1BvbGtrY29sa2tvb2xra0FvbGtrSm9sa2t6b2xra1lvbGtrUG9sa2tmJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0tlZXAgZ2FpbmluZyB3ZWlnaHQgb3IgY29tcGxldGVseSBjaGFuZ2UgbXkgbGlmZXN0eWxlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtLZWVwIGdhaW5pbmcgd2VpZ2h0IG9yIGNvbXBsZXRlbHkgY2hhbmdlIG15IGxpZmVzdHlsZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNXMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7THVja2lseSwgYW5kIHdpdGggYSBiaXQgb2YgcGxhc3RpYyBzdXJnZXJ5LCBJIHdhcyBhYmxlIHRvIGRvIHRoZSBsYXR0ZXImcXVvdDsgJnF1b3Q7Ym9sa2tPb2xra2dvbGtrdm9sa2tmb2xra1pvbGtrdW9sa2tQb2xra2pvbGtrQ29sa2t1b2xra2JvbGtrZm9sa2t5b2xra0hvbGtrUCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtMdWNraWx5LCBhbmQgd2l0aCBhIGJpdCBvZiBwbGFzdGljIHN1cmdlcnksIEkgd2FzIGFibGUgdG8gZG8gdGhlIGxhdHRlciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7THVja2lseSwgYW5kIHdpdGggYSBiaXQgb2YgcGxhc3RpYyBzdXJnZXJ5LCBJIHdhcyBhYmxlIHRvIGRvIHRoZSBsYXR0ZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNi4xcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGplbm5hID0gJGplbm5hKzEmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2pvbGtrSG9sa2tsb2xra3JvbGtrc29sa2tFb2xra2hvbGtrSiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNi4xcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsjam9sa2tIb2xra2xvbGtrcm9sa2tzb2xra0VvbGtraG9sa2tKJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SG9uZXN0bHksIGl0IHdvcmtlZCBvdXQgZ3JlYXQgZm9yIHlvdSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzExJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SG9uZXN0bHksIGl0IHdvcmtlZCBvdXQgZ3JlYXQgZm9yIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8xMSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMjMiIG5hbWU9Ikplbm5hMV8xMGIiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCwyODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRTdGF0ZSAgPSAmcXVvdDtKZW5uYTFfMTBiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSmVubmFfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdeKAmXZlIHJlYWxseSBjaGFuZ2VkLCBjb25ncmF0cyEmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3XigJl2ZSByZWFsbHkgY2hhbmdlZCwgY29uZ3JhdHMhJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtZb3XigJl2ZSByZWFsbHkgY2hhbmdlZCwgY29uZ3JhdHMhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuN3MgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7VGhhbmtzLiBJIG9ubHkgaGFkIHR3byBvcHRpb25zIGFmdGVyIHRoZSBkZWVwIGRlcHJlc3Npb24gSSB3ZW50IHRocm91Z2ggd2hlbiBJIGdvdCBmaXJlZCZxdW90OyAmcXVvdDtCb2xra1RvbGtrWG9sa2tsb2xra2NvbGtrZm9sa2t2b2xra09vbGtrYm9sa2t3b2xra3ZvbGtrRm9sa2tBb2xra0xvbGtrQm9sa2tkJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYW5rcy4gSSBvbmx5IGhhZCB0d28gb3B0aW9ucyBhZnRlciB0aGUgZGVlcCBkZXByZXNzaW9uIEkgd2VudCB0aHJvdWdoIHdoZW4gSSBnb3QgZmlyZWQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O1RoYW5rcy4gSSBvbmx5IGhhZCB0d28gb3B0aW9ucyBhZnRlciB0aGUgZGVlcCBkZXByZXNzaW9uIEkgd2VudCB0aHJvdWdoIHdoZW4gSSBnb3QgZmlyZWQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0tlZXAgZ2FpbmluZyB3ZWlnaHQgb3IgY29tcGxldGVseSBjaGFuZ2UgbXkgbGlmZXN0eWxlJnF1b3Q7ICZxdW90O1BvbGtrR29sa2twb2xra3hvbGtrcG9sa2tQb2xra3RvbGtreW9sa2tsb2xra25vbGtrZ29sa2t4b2xra29vbGtrQ29sa2tUb2xra3MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7S2VlcCBnYWluaW5nIHdlaWdodCBvciBjb21wbGV0ZWx5IGNoYW5nZSBteSBsaWZlc3R5bGUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0tlZXAgZ2FpbmluZyB3ZWlnaHQgb3IgY29tcGxldGVseSBjaGFuZ2UgbXkgbGlmZXN0eWxlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS41cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtMdWNraWx5LCBhbmQgd2l0aCBhIGJpdCBvZiBwbGFzdGljIHN1cmdlcnksIEkgd2FzIGFibGUgdG8gZG8gdGhlIGxhdHRlciZxdW90OyAmcXVvdDtzb2xra0NvbGtrU29sa2tPb2xra05vbGtrTW9sa2tVb2xra2VvbGtrV29sa2tYb2xra3dvbGtrRW9sa2tjb2xra2RvbGtrbm9sa2t1JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0x1Y2tpbHksIGFuZCB3aXRoIGEgYml0IG9mIHBsYXN0aWMgc3VyZ2VyeSwgSSB3YXMgYWJsZSB0byBkbyB0aGUgbGF0dGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtMdWNraWx5LCBhbmQgd2l0aCBhIGJpdCBvZiBwbGFzdGljIHN1cmdlcnksIEkgd2FzIGFibGUgdG8gZG8gdGhlIGxhdHRlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7TW9sa2tEb2xra0FvbGtrYW9sa2tSb2xra1VvbGtrcm9sa2tkJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA2LjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyNNb2xra0RvbGtrQW9sa2thb2xra1JvbGtrVW9sa2tyb2xra2QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtIb25lc3RseSwgaXQgd29ya2VkIG91dCBncmVhdCBmb3IgeW91JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMTEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtIb25lc3RseSwgaXQgd29ya2VkIG91dCBncmVhdCBmb3IgeW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SmVubmExXzExJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIyNCIgbmFtZT0iSmVubmExXzExIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMjg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzExJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSmVubmFfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0hvbmVzdGx5LCBpdCB3b3JrZWQgb3V0IGdyZWF0IGZvciB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIb25lc3RseSwgaXQgd29ya2VkIG91dCBncmVhdCBmb3IgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtIb25lc3RseSwgaXQgd29ya2VkIG91dCBncmVhdCBmb3IgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2NvbGtrZG9sa2tBb2xra0xvbGtrTG9sa2tqb2xra2xvbGtrbyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsjY29sa2tkb2xra0FvbGtrTG9sa2tMb2xra2pvbGtrbG9sa2tvJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW914oCZcmUgYSB0b3RhbGx5IGRpZmZlcmVudCBwZXJzb24gbm93JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMTImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3XigJlyZSBhIHRvdGFsbHkgZGlmZmVyZW50IHBlcnNvbiBub3cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfMTImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjI1IiBuYW1lPSJKZW5uYTFfMTIiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwyODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRTdGF0ZSAgPSAmcXVvdDtKZW5uYTFfMTImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRKZW5uYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WW914oCZcmUgYSB0b3RhbGx5IGRpZmZlcmVudCBwZXJzb24gbm93JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW914oCZcmUgYSB0b3RhbGx5IGRpZmZlcmVudCBwZXJzb24gbm93JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtZb3XigJlyZSBhIHRvdGFsbHkgZGlmZmVyZW50IHBlcnNvbiBub3cmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4ycyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtUaGFua3MgJG5hbWUmcXVvdDsgJnF1b3Q7am9sa2tub2xra3hvbGtrWm9sa2tYb2xra21vbGtrZG9sa2tHb2xra1hvbGtrUG9sa2t3b2xra2xvbGtrWm9sa2tKb2xra1JvbGtrdiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGFua3MgJG5hbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O1RoYW5rcyAkbmFtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7SSByZWFsbHkgbWlzc2VkIHRoaXMsIHlvdSB3ZXJlIGFsd2F5cyBzbyBraW5kIHRvIG1lJnF1b3Q7ICZxdW90O0RvbGtrRG9sa2tub2xra2JvbGtrQW9sa2tzb2xra1pvbGtrZm9sa2tJb2xra3pvbGtrZm9sa2tTb2xra0JvbGtreG9sa2t2b2xra3omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSByZWFsbHkgbWlzc2VkIHRoaXMsIHlvdSB3ZXJlIGFsd2F5cyBzbyBraW5kIHRvIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtJIHJlYWxseSBtaXNzZWQgdGhpcywgeW91IHdlcmUgYWx3YXlzIHNvIGtpbmQgdG8gbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjlzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0nigJltIHNvcnJ5IEkgZGlzYXBwZWFyZWQsIGJ1dCBJIGp1c3QgZGlkbuKAmXQgaGF2ZSB0aGUgc3RyZW5ndGggdG8gcHJldGVuZCBldmVyeXRoaW5nIHdhcyBva2F5IGFmdGVyIHdoYXQgaGFwcGVuZWQmcXVvdDsgJnF1b3Q7bG9sa2tFb2xra1pvbGtrT29sa2tNb2xra25vbGtrVm9sa2tyb2xra0ZvbGtrZW9sa2tOb2xra3ZvbGtrVG9sa2tBb2xra1ZvbGtrbCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBzb3JyeSBJIGRpc2FwcGVhcmVkLCBidXQgSSBqdXN0IGRpZG7igJl0IGhhdmUgdGhlIHN0cmVuZ3RoIHRvIHByZXRlbmQgZXZlcnl0aGluZyB3YXMgb2theSBhZnRlciB3aGF0IGhhcHBlbmVkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtJ4oCZbSBzb3JyeSBJIGRpc2FwcGVhcmVkLCBidXQgSSBqdXN0IGRpZG7igJl0IGhhdmUgdGhlIHN0cmVuZ3RoIHRvIHByZXRlbmQgZXZlcnl0aGluZyB3YXMgb2theSBhZnRlciB3aGF0IGhhcHBlbmVkJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtVb2xra2VvbGtrRW9sa2tsb2xra0JvbGtrUm9sa2tab2xra04mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDUuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I1VvbGtrZW9sa2tFb2xra2xvbGtrQm9sa2tSb2xra1pvbGtrTiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgZ2V0IGl0LCBkb24mIzM5O3Qgd29ycnkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0plbm5hMV8xM2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGdldCBpdCwgZG9uJiMzOTt0IHdvcnJ5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SmVubmExXzEzYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyNVb2xra2VvbGtrRW9sa2tsb2xra0JvbGtrUm9sa2tab2xra04mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtKdXN0IGRvbuKAmXQgZGlzYXBwZWFyIGFnYWluJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMTNiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SnVzdCBkb27igJl0IGRpc2FwcGVhciBhZ2FpbiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8xM2ImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjI2IiBuYW1lPSJKZW5uYTFfMTNhIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsMjg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzEzYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGdldCBpdCwgZG9u4oCZdCB3b3JyeSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZ2V0IGl0LCBkb27igJl0IHdvcnJ5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtJIGdldCBpdCwgZG9u4oCZdCB3b3JyeSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtQb2xra1ZvbGtrT29sa2tZb2xra0ZvbGtrRG9sa2t0b2xra2omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I1BvbGtrVm9sa2tPb2xra1lvbGtrRm9sa2tEb2xra3RvbGtraiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoZSBpbXBvcnRhbnQgdGhpbmcgaXMgdGhhdCB5b3XigJlyZSBkb2luZyB3ZWxsIG5vdyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzE0YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoZSBpbXBvcnRhbnQgdGhpbmcgaXMgdGhhdCB5b3XigJlyZSBkb2luZyB3ZWxsIG5vdyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8xNGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjI3IiBuYW1lPSJKZW5uYTFfMTRhIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMjg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzE0YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGUgaW1wb3J0YW50IHRoaW5nIGlzIHRoYXQgeW914oCZcmUgZG9pbmcgd2VsbCBub3cmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGUgaW1wb3J0YW50IHRoaW5nIGlzIHRoYXQgeW914oCZcmUgZG9pbmcgd2VsbCBub3cmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O1RoZSBpbXBvcnRhbnQgdGhpbmcgaXMgdGhhdCB5b3XigJlyZSBkb2luZyB3ZWxsIG5vdyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjFzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O1RoYW5rcyZxdW90OyAmcXVvdDtLb2xra0FvbGtrbG9sa2tXb2xra0pvbGtrUG9sa2tWb2xra2ZvbGtrRW9sa2tYb2xra0hvbGtrVm9sa2tnb2xra2lvbGtrb29sa2tLJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYW5rcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7VGhhbmtzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfYmlnX3NtaWxlLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtKZW5uYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9iaWdfc21pbGUud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMi4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0J1dCBhbnl3YXksIHdoYXQgYWJvdXQgeW91PyZxdW90OyAmcXVvdDt0b2xra0xvbGtrRm9sa2tFb2xra09vbGtrZm9sa2tkb2xra0VvbGtrZG9sa2tIb2xra3JvbGtrTG9sa2t3b2xra3dvbGtrVm9sa2tXJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCBhbnl3YXksIHdoYXQgYWJvdXQgeW91PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7QnV0IGFueXdheSwgd2hhdCBhYm91dCB5b3U/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtIb3figJlzIGV2ZXJ5dGhpbmcgaW4geW91ciBsaWZlPyZxdW90OyAmcXVvdDtDb2xra21vbGtrRm9sa2tvb2xra1RvbGtrTW9sa2tJb2xra0NvbGtram9sa2tFb2xra2FvbGtrem9sa2tDb2xra3BvbGtrcW9sa2tCJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvd+KAmXMgZXZlcnl0aGluZyBpbiB5b3VyIGxpZmU/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtIb3figJlzIGV2ZXJ5dGhpbmcgaW4geW91ciBsaWZlPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7QXJlIHlvdSBzdGlsbCB3aXRoIEFubmllPyZxdW90OyAmcXVvdDtFb2xra1JvbGtrVG9sa2tob2xra0FvbGtrc29sa2thb2xra2tvbGtrUm9sa2tqb2xra1ZvbGtrT29sa2t2b2xra0FvbGtrT29sa2tnJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FyZSB5b3Ugc3RpbGwgd2l0aCBBbm5pZT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0FyZSB5b3Ugc3RpbGwgd2l0aCBBbm5pZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1lvbGtrQW9sa2tPb2xra2pvbGtram9sa2tub2xra3FvbGtrRiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNS4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsjWW9sa2tBb2xra09vbGtram9sa2tqb2xra25vbGtrcW9sa2tGJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7V2VsbCwgZXZlcnl0aGluZ+KAmXMgZmluZS4gWW91IGtub3csIFBoaWxsaXBzIGlzIHN0aWxsIGJyZWF0aGluZyBkb3duIG15IG5lY2ssIHRoYXQgZ3V54oCZcyBzdWNoIGFuIGlkaW90JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMTUmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXZWxsLCBldmVyeXRoaW5n4oCZcyBmaW5lLiBZb3Uga25vdywgUGhpbGxpcHMgaXMgc3RpbGwgYnJlYXRoaW5nIGRvd24gbXkgbmVjaywgdGhhdCBndXnigJlzIHN1Y2ggYW4gaWRpb3QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfMTUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjI4IiBuYW1lPSJKZW5uYTFfMTNiIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMjg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzEzYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtKdXN0IGRvbuKAmXQgZGlzYXBwZWFyIGFnYWluJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SnVzdCBkb27igJl0IGRpc2FwcGVhciBhZ2FpbiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7SnVzdCBkb27igJl0IGRpc2FwcGVhciBhZ2FpbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtpb2xra2NvbGtrem9sa2tlb2xra25vbGtrYm9sa2tCb2xra2cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I2lvbGtrY29sa2t6b2xra2VvbGtrbm9sa2tib2xra0JvbGtrZyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgd2FudCB1cyB0byBzdGF5IGluIHRvdWNoIHRoaXMgdGltZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzE0YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgd2FudCB1cyB0byBzdGF5IGluIHRvdWNoIHRoaXMgdGltZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8xNGImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjI5IiBuYW1lPSJKZW5uYTFfMTRiIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDI4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdFN0YXRlICA9ICZxdW90O0plbm5hMV8xNGImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRKZW5uYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSB3YW50IHVzIHRvIHN0YXkgaW4gdG91Y2ggdGhpcyB0aW1lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB3YW50IHVzIHRvIHN0YXkgaW4gdG91Y2ggdGhpcyB0aW1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtJIHdhbnQgdXMgdG8gc3RheSBpbiB0b3VjaCB0aGlzIHRpbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtEb27igJl0IHdvcnJ5LCBJIHByb21pc2UgSSB3b27igJl0JnF1b3Q7ICZxdW90O3NvbGtraW9sa2tJb2xra01vbGtrbG9sa2tXb2xra05vbGtrVW9sa2t3b2xra3dvbGtrbW9sa2t4b2xra1VvbGtrVG9sa2tEb2xra3cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RG9u4oCZdCB3b3JyeSwgSSBwcm9taXNlIEkgd29u4oCZdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7RG9u4oCZdCB3b3JyeSwgSSBwcm9taXNlIEkgd29u4oCZdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7SSByZWFsbHkgd2FudGVkIHRvIHJlY29ubmVjdCBubyBtYXR0ZXIgd2hhdCZxdW90OyAmcXVvdDtzb2xra3NvbGtrbW9sa2tjb2xra0FvbGtrZG9sa2tnb2xra2dvbGtrTG9sa2tjb2xra2hvbGtreG9sa2tXb2xra3pvbGtrZ29sa2tiJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgcmVhbGx5IHdhbnRlZCB0byByZWNvbm5lY3Qgbm8gbWF0dGVyIHdoYXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0kgcmVhbGx5IHdhbnRlZCB0byByZWNvbm5lY3Qgbm8gbWF0dGVyIHdoYXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0J1dCBhbnl3YXksIHdoYXQgYWJvdXQgeW91PyZxdW90OyAmcXVvdDtMb2xra2hvbGtrb29sa2tqb2xra0dvbGtrTm9sa2tlb2xra3NvbGtrRm9sa2tIb2xra3ZvbGtrVG9sa2tTb2xra0JvbGtrdW9sa2tZJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCBhbnl3YXksIHdoYXQgYWJvdXQgeW91PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7QnV0IGFueXdheSwgd2hhdCBhYm91dCB5b3U/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtIb3figJlzIGV2ZXJ5dGhpbmcgaW4geW91ciBsaWZlPyZxdW90OyAmcXVvdDt2b2xra1ZvbGtrTW9sa2tTb2xra3pvbGtrRm9sa2tGb2xra0ZvbGtrVm9sa2tEb2xra0NvbGtrU29sa2tHb2xra2dvbGtrSG9sa2tkJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvd+KAmXMgZXZlcnl0aGluZyBpbiB5b3VyIGxpZmU/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtIb3figJlzIGV2ZXJ5dGhpbmcgaW4geW91ciBsaWZlPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7QXJlIHlvdSBzdGlsbCB3aXRoIEFubmllPyZxdW90OyAmcXVvdDtkb2xra0JvbGtrcG9sa2trb2xra0VvbGtrZG9sa2twb2xra0FvbGtrR29sa2tpb2xra01vbGtrZm9sa2tkb2xra0tvbGtrdW9sa2t5JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FyZSB5b3Ugc3RpbGwgd2l0aCBBbm5pZT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0FyZSB5b3Ugc3RpbGwgd2l0aCBBbm5pZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2RvbGtrRG9sa2tYb2xra0dvbGtrRG9sa2tab2xra2pvbGtrTCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNi4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsjZG9sa2tEb2xra1hvbGtrR29sa2tEb2xra1pvbGtram9sa2tMJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7V2VsbCwgZXZlcnl0aGluZ+KAmXMgZmluZS4gWW91IGtub3csIFBoaWxsaXBzIGlzIHN0aWxsIGJyZWF0aGluZyBkb3duIG15IG5lY2ssIHRoYXQgZ3V54oCZcyBzdWNoIGFuIGlkaW90JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMTUmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXZWxsLCBldmVyeXRoaW5n4oCZcyBmaW5lLiBZb3Uga25vdywgUGhpbGxpcHMgaXMgc3RpbGwgYnJlYXRoaW5nIGRvd24gbXkgbmVjaywgdGhhdCBndXnigJlzIHN1Y2ggYW4gaWRpb3QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfMTUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjMwIiBuYW1lPSJKZW5uYTFfMTUiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMjg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzE1JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSmVubmFfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1dlbGwsIGV2ZXJ5dGhpbmfigJlzIGZpbmUuIFlvdSBrbm93LCBQaGlsbGlwcyBpcyBzdGlsbCBicmVhdGhpbmcgZG93biBteSBuZWNrLCB0aGF0IGd1eeKAmXMgc3VjaCBhbiBpZGlvdCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dlbGwsIGV2ZXJ5dGhpbmfigJlzIGZpbmUuIFlvdSBrbm93LCBQaGlsbGlwcyBpcyBzdGlsbCBicmVhdGhpbmcgZG93biBteSBuZWNrLCB0aGF0IGd1eeKAmXMgc3VjaCBhbiBpZGlvdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7V2VsbCwgZXZlcnl0aGluZ+KAmXMgZmluZS4gWW91IGtub3csIFBoaWxsaXBzIGlzIHN0aWxsIGJyZWF0aGluZyBkb3duIG15IG5lY2ssIHRoYXQgZ3V54oCZcyBzdWNoIGFuIGlkaW90JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7VGVsbCBtZSBhYm91dCBpdC4uLiZxdW90OyAmcXVvdDtwb2xra0ZvbGtrZm9sa2txb2xra0xvbGtrQm9sa2t4b2xra3hvbGtram9sa2t3b2xra21vbGtraG9sa2tVb2xra3ZvbGtrbm9sa2tpJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RlbGwgbWUgYWJvdXQgaXQuLi4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O1RlbGwgbWUgYWJvdXQgaXQuLi4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1lvbGtrTm9sa2tGb2xra05vbGtrcm9sa2trb2xra1lvbGtrQiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsjWW9sa2tOb2xra0ZvbGtrTm9sa2tyb2xra2tvbGtrWW9sa2tCJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QW5kIHllYWgsIEFubmllIGFuZCBJIGFyZSBzdGlsbCB0b2dldGhlciwgc3Ryb25nZXIgdGhhbiBldmVyLiZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzE1X2hhbGYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtBbmQgeWVhaCwgQW5uaWUgYW5kIEkgYXJlIHN0aWxsIHRvZ2V0aGVyLCBzdHJvbmdlciB0aGFuIGV2ZXIuJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SmVubmExXzE1X2hhbGYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjMxIiBuYW1lPSJKZW5uYTFfMTYiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCwyOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRTdGF0ZSAgPSAmcXVvdDtKZW5uYTFfMTYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRKZW5uYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhvdWdoIHVuZm9ydHVuYXRlbHksIEkgaGF2ZSB0byBiZSBhd2F5IGZyb20gaG9tZSBmb3IgYSBmZXcgbW9udGhzIGJlY2F1c2Ugb2YgYSB3b3JrIGFzc2lnbm1lbnQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaG91Z2ggdW5mb3J0dW5hdGVseSwgSSBoYXZlIHRvIGJlIGF3YXkgZnJvbSBob21lIGZvciBhIGZldyBtb250aHMgYmVjYXVzZSBvZiBhIHdvcmsgYXNzaWdubWVudCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7VGhvdWdoIHVuZm9ydHVuYXRlbHksIEkgaGF2ZSB0byBiZSBhd2F5IGZyb20gaG9tZSBmb3IgYSBmZXcgbW9udGhzIGJlY2F1c2Ugb2YgYSB3b3JrIGFzc2lnbm1lbnQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4ycyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtUaGF0IHN1Y2tzLi4uJnF1b3Q7ICZxdW90O2ZvbGtrVG9sa2tSb2xra2tvbGtrUG9sa2tTb2xra1NvbGtrc29sa2t5b2xra3dvbGtrWW9sa2tpb2xra1NvbGtrVG9sa2t0b2xra0kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhdCBzdWNrcy4uLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7VGhhdCBzdWNrcy4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7QW5kIHRoZSBqb2IgdGhpbmcgdG9vJnF1b3Q7ICZxdW90O0ZvbGtrVW9sa2ttb2xra1pvbGtrc29sa2tkb2xra3hvbGtrUm9sa2tXb2xra1NvbGtrTm9sa2t0b2xra2tvbGtrQ29sa2tjb2xra1UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5kIHRoZSBqb2IgdGhpbmcgdG9vJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtBbmQgdGhlIGpvYiB0aGluZyB0b28mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0ZvbGtrWG9sa2t5b2xra0FvbGtrVW9sa2tPb2xra3hvbGtrVyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsjRm9sa2tYb2xra3lvbGtrQW9sa2tVb2xra09vbGtreG9sa2tXJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7V2hhdD8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0plbm5hMV8xNyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1doYXQ/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SmVubmExXzE3JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIzMiIgbmFtZT0iSmVubmExXzE3IiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsMjk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzE3JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSmVubmFfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1doYXQ/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2hhdD8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O1doYXQ/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuMnMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7Tm90aGluZywgbG9sJnF1b3Q7ICZxdW90O2ZvbGtrWm9sa2tqb2xra1hvbGtreW9sa2tLb2xra1dvbGtrV29sa2tVb2xra3RvbGtrTm9sa2trb2xra01vbGtrcm9sa2tnb2xra3cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm90aGluZywgbG9sJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtOb3RoaW5nLCBsb2wmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4xcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9sbWFvLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtKZW5uYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9sbWFvLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDIuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS45cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtCdXQgdGVsbCBtZSwgbm93IHRoYXQgeW914oCZdmUgc2VlbiBteSBuZXcgbG9vaywgZG9u4oCZdCB5b3UgcmVjb2duaXplIG1lIGZyb20gc29jaWFsIG1lZGlhIG9yIGFueXRoaW5nPyZxdW90OyAmcXVvdDtJb2xra2pvbGtrWm9sa2t0b2xra3lvbGtrZm9sa2tnb2xra1RvbGtrbW9sa2tKb2xra0pvbGtrUm9sa2tBb2xra0FvbGtrVG9sa2tYJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCB0ZWxsIG1lLCBub3cgdGhhdCB5b3XigJl2ZSBzZWVuIG15IG5ldyBsb29rLCBkb27igJl0IHlvdSByZWNvZ25pemUgbWUgZnJvbSBzb2NpYWwgbWVkaWEgb3IgYW55dGhpbmc/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtCdXQgdGVsbCBtZSwgbm93IHRoYXQgeW914oCZdmUgc2VlbiBteSBuZXcgbG9vaywgZG9u4oCZdCB5b3UgcmVjb2duaXplIG1lIGZyb20gc29jaWFsIG1lZGlhIG9yIGFueXRoaW5nPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7VW9sa2t4b2xra1pvbGtraG9sa2tKb2xra0RvbGtrQm9sa2thJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjZzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyNVb2xra3hvbGtrWm9sa2tob2xra0pvbGtrRG9sa2tCb2xra2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtIbW0sIG5vLiBTaG91bGQgST8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0plbm5hMV8xOCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0htbSwgbm8uIFNob3VsZCBJPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8xOCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMzMiIG5hbWU9Ikplbm5hMV8xOCIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDI5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdFN0YXRlICA9ICZxdW90O0plbm5hMV8xOCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtIbW0sIG5vLiBTaG91bGQgST8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIbW0sIG5vLiBTaG91bGQgST8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0htbSwgbm8uIFNob3VsZCBJPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0kgZ3Vlc3MgSeKAmW0gbm90IGFzIHBvcHVsYXIgYXMgSSB0aG91Z2h0JnF1b3Q7ICZxdW90O0ZvbGtrem9sa2tOb2xra0tvbGtrSG9sa2tob2xra1dvbGtrUm9sa2tKb2xra2RvbGtram9sa2tib2xra1ZvbGtrUm9sa2tFb2xra08mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBndWVzcyBJ4oCZbSBub3QgYXMgcG9wdWxhciBhcyBJIHRob3VnaHQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0kgZ3Vlc3MgSeKAmW0gbm90IGFzIHBvcHVsYXIgYXMgSSB0aG91Z2h0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuOHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtXZWxsLCBtYXliZSBpdOKAmXMgYmVjYXVzZSB5b3XigJlyZSBpbiBhIHJlbGF0aW9uc2hpcCZxdW90OyAmcXVvdDtBb2xra09vbGtrcW9sa2tZb2xra0ZvbGtrSW9sa2t1b2xra2lvbGtreG9sa2tjb2xra05vbGtrY29sa2t0b2xra0xvbGtrQm9sa2tzJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dlbGwsIG1heWJlIGl04oCZcyBiZWNhdXNlIHlvdeKAmXJlIGluIGEgcmVsYXRpb25zaGlwJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtXZWxsLCBtYXliZSBpdOKAmXMgYmVjYXVzZSB5b3XigJlyZSBpbiBhIHJlbGF0aW9uc2hpcCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7TW9sa2txb2xra1hvbGtrUW9sa2tJb2xra01vbGtrbm9sa2ttJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjJzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyNNb2xra3FvbGtrWG9sa2tRb2xra0lvbGtrTW9sa2tub2xra20mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtXaGF0IGRvIHlvdSBtZWFuPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzE5JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7V2hhdCBkbyB5b3UgbWVhbj8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfMTkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjM0IiBuYW1lPSJKZW5uYTFfMTkiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwyOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRTdGF0ZSAgPSAmcXVvdDtKZW5uYTFfMTkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRKZW5uYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7V2hhdCBkbyB5b3UgbWVhbj8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXaGF0IGRvIHlvdSBtZWFuPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7V2hhdCBkbyB5b3UgbWVhbj8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMi42cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtJIGRvbuKAmXQga25vdyBpZiBJIHNob3VsZCBzYXkgdGhpcywgYnV0IEkgZ3Vlc3MgaXTigJlzIGJldHRlciBpZiBJIHRlbGwgeW91IG15c2VsZiBpbnN0ZWFkIG9mIHlvdSBmaW5kaW5nIG91dCB0aHJvdWdoIHJ1bW9ycyBsYXRlciZxdW90OyAmcXVvdDtKb2xra1RvbGtraG9sa2tmb2xra0xvbGtrbm9sa2tub2xra1ZvbGtrUG9sa2tRb2xra2xvbGtrTW9sa2thb2xra29vbGtrQ29sa2tTJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZG9u4oCZdCBrbm93IGlmIEkgc2hvdWxkIHNheSB0aGlzLCBidXQgSSBndWVzcyBpdOKAmXMgYmV0dGVyIGlmIEkgdGVsbCB5b3UgbXlzZWxmIGluc3RlYWQgb2YgeW91IGZpbmRpbmcgb3V0IHRocm91Z2ggcnVtb3JzIGxhdGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtJIGRvbuKAmXQga25vdyBpZiBJIHNob3VsZCBzYXkgdGhpcywgYnV0IEkgZ3Vlc3MgaXTigJlzIGJldHRlciBpZiBJIHRlbGwgeW91IG15c2VsZiBpbnN0ZWFkIG9mIHlvdSBmaW5kaW5nIG91dCB0aHJvdWdoIHJ1bW9ycyBsYXRlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7SeKAmXZlIGJlZW4gZG9pbmcgb25seWZhbnMmcXVvdDsgJnF1b3Q7Q29sa2t0b2xra3lvbGtreW9sa2tVb2xra3VvbGtrVm9sa2tNb2xra05vbGtrTW9sa2tkb2xra25vbGtrSW9sa2tvb2xra2RvbGtrdiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZdmUgYmVlbiBkb2luZyBvbmx5ZmFucyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7SeKAmXZlIGJlZW4gZG9pbmcgb25seWZhbnMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC41cyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRKZW5uYV9ub3Rlcy5wdXNoKCZxdW90O0FwcGFyZW50bHkgc2hl4oCZcyBub3cgd29ya2luZyBzZWxsaW5nIGNvbnRlbnQgb24gT25seUZhbnMsIG9yIHNvIHNoZSB0b2xkIG1lLiZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtkb2xra25vbGtrdW9sa2tFb2xra2lvbGtrYm9sa2tQb2xra0MmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuNXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I2RvbGtrbm9sa2t1b2xra0VvbGtraW9sa2tib2xra1BvbGtrQyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1NlcmlvdXNseT8gT3IgaXMgdGhpcyBhIGpva2U/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMjAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtTZXJpb3VzbHk/IE9yIGlzIHRoaXMgYSBqb2tlPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8yMCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMzUiIG5hbWU9Ikplbm5hMV8yMCIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDI5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdFN0YXRlICA9ICZxdW90O0plbm5hMV8yMCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtTZXJpb3VzbHk/IE9yIGlzIHRoaXMgYSBqb2tlPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1NlcmlvdXNseT8gT3IgaXMgdGhpcyBhIGpva2U/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtTZXJpb3VzbHk/IE9yIGlzIHRoaXMgYSBqb2tlPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjVzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O1NlcmlvdXNseS4gSeKAmW0gc29tZXdoYXQgcG9wdWxhciwgd2hpY2ggaXMgd2h5IEkgYXNrZWQgaWYgeW91IG1pZ2h04oCZdmUgc2VlbiBtZSBhcm91bmQmcXVvdDsgJnF1b3Q7SW9sa2tSb2xra3lvbGtrZ29sa2tib2xra05vbGtrbG9sa2t0b2xra0dvbGtrQm9sa2tLb2xra1JvbGtrQW9sa2tFb2xra1VvbGtrciZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTZXJpb3VzbHkuIEnigJltIHNvbWV3aGF0IHBvcHVsYXIsIHdoaWNoIGlzIHdoeSBJIGFza2VkIGlmIHlvdSBtaWdodOKAmXZlIHNlZW4gbWUgYXJvdW5kJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtTZXJpb3VzbHkuIEnigJltIHNvbWV3aGF0IHBvcHVsYXIsIHdoaWNoIGlzIHdoeSBJIGFza2VkIGlmIHlvdSBtaWdodOKAmXZlIHNlZW4gbWUgYXJvdW5kJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtJIGhvcGUgaXQgZG9lc27igJl0IHdlaXJkIHlvdSBvdXQmcXVvdDsgJnF1b3Q7aG9sa2t3b2xra29vbGtrY29sa2tRb2xra09vbGtrZG9sa2tJb2xra1RvbGtrcm9sa2tyb2xra2xvbGtrZm9sa2tKb2xra09vbGtraiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGhvcGUgaXQgZG9lc27igJl0IHdlaXJkIHlvdSBvdXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0kgaG9wZSBpdCBkb2VzbuKAmXQgd2VpcmQgeW91IG91dCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7a29sa2tNb2xra2tvbGtrSW9sa2tTb2xra3pvbGtrUG9sa2tjJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjdzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyNrb2xra01vbGtra29sa2tJb2xra1NvbGtrem9sa2tQb2xra2MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtBcyBsb25nIGFzIHlvdSBtYWtlIG1vbmV5LCBJIHRoaW5rIGl04oCZcyBmaW5lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMjFhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QXMgbG9uZyBhcyB5b3UgbWFrZSBtb25leSwgSSB0aGluayBpdOKAmXMgZmluZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8yMWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsja29sa2tNb2xra2tvbGtrSW9sa2tTb2xra3pvbGtrUG9sa2tjJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSB0aGluayBpdOKAmXMgYXdlc29tZSEmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0plbm5hMV8yMWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIHRoaW5rIGl04oCZcyBhd2Vzb21lISZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8yMWImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjM2IiBuYW1lPSJKZW5uYTFfMjFhIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsMjk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzIxYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtBcyBsb25nIGFzIHlvdSBtYWtlIG1vbmV5LCBJIHRoaW5rIGl04oCZcyBmaW5lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QXMgbG9uZyBhcyB5b3UgbWFrZSBtb25leSwgSSB0aGluayBpdOKAmXMgZmluZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7QXMgbG9uZyBhcyB5b3UgbWFrZSBtb25leSwgSSB0aGluayBpdOKAmXMgZmluZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt1b2xra3ZvbGtrV29sa2tqb2xra01vbGtrdm9sa2tqb2xra1UmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I3VvbGtrdm9sa2tXb2xra2pvbGtrTW9sa2t2b2xra2pvbGtrVSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0l04oCZcyB5b3VyIGRlY2lzaW9uJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMjJhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SXTigJlzIHlvdXIgZGVjaXNpb24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfMjJhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIzNyIgbmFtZT0iSmVubmExXzIxYiIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDI5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdFN0YXRlICA9ICZxdW90O0plbm5hMV8yMWImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRKZW5uYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSB0aGluayBpdOKAmXMgYXdlc29tZSEmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHRoaW5rIGl04oCZcyBhd2Vzb21lISZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7SSB0aGluayBpdOKAmXMgYXdlc29tZSEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGplbm5hID0gJGplbm5hKzEmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7YW9sa2t1b2xra1lvbGtrWm9sa2t0b2xra0RvbGtrbG9sa2tSJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyNhb2xra3VvbGtrWW9sa2tab2xra3RvbGtrRG9sa2tsb2xra1ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDvwn5iBJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMjJiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q78J+YgSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8yMmImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjM4IiBuYW1lPSJKZW5uYTFfMjJhIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMjk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzIyYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJdOKAmXMgeW91ciBkZWNpc2lvbiZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0l04oCZcyB5b3VyIGRlY2lzaW9uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtJdOKAmXMgeW91ciBkZWNpc2lvbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O1RoYW5rcywgSSBrbmV3IHlvdSB3b3VsZG7igJl0IGp1ZGdlIG1lJnF1b3Q7ICZxdW90O0lvbGtrYm9sa2tWb2xra2xvbGtrWW9sa2tmb2xra3pvbGtrWG9sa2t4b2xra1ZvbGtrQm9sa2tsb2xra1ZvbGtrdm9sa2tob2xra1MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhbmtzLCBJIGtuZXcgeW91IHdvdWxkbuKAmXQganVkZ2UgbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O1RoYW5rcywgSSBrbmV3IHlvdSB3b3VsZG7igJl0IGp1ZGdlIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtQbHVzLCBpdCBoZWxwcyBtZSBwYXkgdGhlIGJpbGxzJnF1b3Q7ICZxdW90O3FvbGtrWm9sa2tib2xra2xvbGtrUm9sa2tGb2xra01vbGtrdW9sa2tWb2xra1hvbGtrWG9sa2t2b2xra3VvbGtrTW9sa2tDb2xra2ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7UGx1cywgaXQgaGVscHMgbWUgcGF5IHRoZSBiaWxscyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7UGx1cywgaXQgaGVscHMgbWUgcGF5IHRoZSBiaWxscyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuOXMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7VGhhbmtzIHRvIHRoaXMsIEnigJltIGFscmVhZHkgZWFybmluZyB3YXkgbW9yZSB0aGFuIEkgZGlkIGF0IHRoZSBjb21wYW55IGJlZm9yZSB0aGF0IGlkaW90IGZpcmVkIG1lJnF1b3Q7ICZxdW90O2tvbGtrZG9sa2t2b2xra1hvbGtrSG9sa2ttb2xra3JvbGtrRm9sa2tBb2xra2VvbGtrS29sa2trb2xra2NvbGtrdm9sa2tab2xra2smcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhbmtzIHRvIHRoaXMsIEnigJltIGFscmVhZHkgZWFybmluZyB3YXkgbW9yZSB0aGFuIEkgZGlkIGF0IHRoZSBjb21wYW55IGJlZm9yZSB0aGF0IGlkaW90IGZpcmVkIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtUaGFua3MgdG8gdGhpcywgSeKAmW0gYWxyZWFkeSBlYXJuaW5nIHdheSBtb3JlIHRoYW4gSSBkaWQgYXQgdGhlIGNvbXBhbnkgYmVmb3JlIHRoYXQgaWRpb3QgZmlyZWQgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3BvbGtraW9sa2tjb2xra0FvbGtrd29sa2tRb2xra3JvbGtrdiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNS40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsjcG9sa2tpb2xra2NvbGtrQW9sa2t3b2xra1FvbGtrcm9sa2t2JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgbXkgb2xkIGZyaWVuZCBKZW5uYSBpcyBhIHBvcm5zdGFyJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMjMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGNhbuKAmXQgYmVsaWV2ZSBteSBvbGQgZnJpZW5kIEplbm5hIGlzIGEgcG9ybnN0YXImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfMjMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjM5IiBuYW1lPSJKZW5uYTFfMjJiIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDI5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdFN0YXRlICA9ICZxdW90O0plbm5hMV8yMmImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRKZW5uYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9iaWdfc21pbGUud2VicCZxdW90OyB0cnVlICZxdW90O1lvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfYmlnX3NtaWxlLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7VGhhbmtzLCBJIGtuZXcgeW91IHdvdWxkbuKAmXQganVkZ2UgbWUmcXVvdDsgJnF1b3Q7RW9sa2tCb2xra2JvbGtrS29sa2tSb2xra3VvbGtrZG9sa2t4b2xra1FvbGtrVm9sa2tBb2xra0hvbGtrS29sa2tIb2xra1BvbGtrcCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGFua3MsIEkga25ldyB5b3Ugd291bGRu4oCZdCBqdWRnZSBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7VGhhbmtzLCBJIGtuZXcgeW91IHdvdWxkbuKAmXQganVkZ2UgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O1BsdXMsIGl0IGhlbHBzIG1lIHBheSB0aGUgYmlsbHMmcXVvdDsgJnF1b3Q7Ym9sa2tCb2xra0ZvbGtrSm9sa2txb2xra2ZvbGtrU29sa2tOb2xra2dvbGtram9sa2tjb2xra0JvbGtrYm9sa2tpb2xra3pvbGtrVyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtQbHVzLCBpdCBoZWxwcyBtZSBwYXkgdGhlIGJpbGxzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtQbHVzLCBpdCBoZWxwcyBtZSBwYXkgdGhlIGJpbGxzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS45cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtUaGFua3MgdG8gdGhpcywgSeKAmW0gYWxyZWFkeSBlYXJuaW5nIHdheSBtb3JlIHRoYW4gSSBkaWQgYXQgdGhlIGNvbXBhbnkgYmVmb3JlIHRoYXQgaWRpb3QgZmlyZWQgbWUmcXVvdDsgJnF1b3Q7c29sa2tkb2xra1lvbGtrYW9sa2tqb2xra0RvbGtreG9sa2tkb2xra1JvbGtrTm9sa2tmb2xra1ZvbGtrUG9sa2tTb2xra3hvbGtraCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGFua3MgdG8gdGhpcywgSeKAmW0gYWxyZWFkeSBlYXJuaW5nIHdheSBtb3JlIHRoYW4gSSBkaWQgYXQgdGhlIGNvbXBhbnkgYmVmb3JlIHRoYXQgaWRpb3QgZmlyZWQgbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O1RoYW5rcyB0byB0aGlzLCBJ4oCZbSBhbHJlYWR5IGVhcm5pbmcgd2F5IG1vcmUgdGhhbiBJIGRpZCBhdCB0aGUgY29tcGFueSBiZWZvcmUgdGhhdCBpZGlvdCBmaXJlZCBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7TW9sa2tJb2xra3dvbGtrWW9sa2twb2xra3JvbGtrdG9sa2tvJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA2LjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyNNb2xra0lvbGtrd29sa2tZb2xra3BvbGtrcm9sa2t0b2xra28mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGNhbuKAmXQgYmVsaWV2ZSBteSBvbGQgZnJpZW5kIEplbm5hIGlzIGEgcG9ybnN0YXImcXVvdDssIHBhc3NhZ2U6ICZxdW90O0plbm5hMV8yMyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgY2Fu4oCZdCBiZWxpZXZlIG15IG9sZCBmcmllbmQgSmVubmEgaXMgYSBwb3Juc3RhciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8yMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNDAiIG5hbWU9Ikplbm5hMV8yMyIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSwyOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRTdGF0ZSAgPSAmcXVvdDtKZW5uYTFfMjMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRKZW5uYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgbXkgb2xkIGZyaWVuZCBKZW5uYSBpcyBhIHBvcm5zdGFyJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgbXkgb2xkIGZyaWVuZCBKZW5uYSBpcyBhIHBvcm5zdGFyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtJIGNhbuKAmXQgYmVsaWV2ZSBteSBvbGQgZnJpZW5kIEplbm5hIGlzIGEgcG9ybnN0YXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtXZWxsLCBJ4oCZbSBub3Qgc3VyZSDigJlwb3Juc3RhcuKAmSBpcyB0aGUgcmlnaHQgdGVybSZxdW90OyAmcXVvdDthb2xra1lvbGtrbm9sa2t6b2xra0tvbGtraG9sa2tlb2xra0lvbGtreG9sa2tab2xra1FvbGtrZ29sa2tHb2xra3JvbGtrdm9sa2tSJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dlbGwsIEnigJltIG5vdCBzdXJlIOKAmXBvcm5zdGFy4oCZIGlzIHRoZSByaWdodCB0ZXJtJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtXZWxsLCBJ4oCZbSBub3Qgc3VyZSDigJlwb3Juc3RhcuKAmSBpcyB0aGUgcmlnaHQgdGVybSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjhzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNnMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7Tm90IHRoYXQgaXQgYm90aGVycyBtZSwgaXTigJlzIGp1c3QgdGhhdCBJIGhhdmVu4oCZdCBmaWxtZWQgc2NlbmVzIHdpdGggb3RoZXIgZ3V5cyB5ZXQmcXVvdDsgJnF1b3Q7em9sa2tQb2xra1ZvbGtrTG9sa2trb2xra3VvbGtram9sa2tYb2xra2FvbGtrZG9sa2tPb2xra1VvbGtrZm9sa2tZb2xra09vbGtrVCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtOb3QgdGhhdCBpdCBib3RoZXJzIG1lLCBpdOKAmXMganVzdCB0aGF0IEkgaGF2ZW7igJl0IGZpbG1lZCBzY2VuZXMgd2l0aCBvdGhlciBndXlzIHlldCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7Tm90IHRoYXQgaXQgYm90aGVycyBtZSwgaXTigJlzIGp1c3QgdGhhdCBJIGhhdmVu4oCZdCBmaWxtZWQgc2NlbmVzIHdpdGggb3RoZXIgZ3V5cyB5ZXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0lvbGtra29sa2tHb2xra1lvbGtrZm9sa2trb2xra3ZvbGtreiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsjSW9sa2trb2xra0dvbGtrWW9sa2tmb2xra2tvbGtrdm9sa2t6JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7U28gd2hhdCYjMzk7cyB5b3VyIGNvbnRlbnQgbGlrZSB0aGVuPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzI0JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7U28gd2hhdCYjMzk7cyB5b3VyIGNvbnRlbnQgbGlrZSB0aGVuPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8yNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNDEiIG5hbWU9Ikplbm5hMV8yNCIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDMxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdFN0YXRlICA9ICZxdW90O0plbm5hMV8yNCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtTbyB3aGF04oCZcyB5b3VyIGNvbnRlbnQgbGlrZSB0aGVuPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1NvIHdoYXTigJlzIHlvdXIgY29udGVudCBsaWtlIHRoZW4/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtTbyB3aGF04oCZcyB5b3VyIGNvbnRlbnQgbGlrZSB0aGVuPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O1Bob3RvcyBhbmQgdmlkZW9zLCBidXQganVzdCBieSBteXNlbGYmcXVvdDsgJnF1b3Q7dG9sa2tXb2xra3JvbGtrdG9sa2tqb2xra0dvbGtrTG9sa2tHb2xra25vbGtrTm9sa2tLb2xra1NvbGtrcG9sa2tPb2xra25vbGtrYSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtQaG90b3MgYW5kIHZpZGVvcywgYnV0IGp1c3QgYnkgbXlzZWxmJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtQaG90b3MgYW5kIHZpZGVvcywgYnV0IGp1c3QgYnkgbXlzZWxmJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS40cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtUaG91Z2ggSeKAmW0gdGhpbmtpbmcgYWJvdXQgcG9zdGluZyB2aWRlb3Mgd2l0aCBndXlzLCBidXQgSeKAmW0gbm90IHRoYXQgY29uZmlkZW50IHlldCZxdW90OyAmcXVvdDtkb2xra3NvbGtrem9sa2tEb2xra0pvbGtrYm9sa2tXb2xra1ZvbGtrbG9sa2tKb2xra3pvbGtrUG9sa2tEb2xra3FvbGtrb29sa2tVJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1Rob3VnaCBJ4oCZbSB0aGlua2luZyBhYm91dCBwb3N0aW5nIHZpZGVvcyB3aXRoIGd1eXMsIGJ1dCBJ4oCZbSBub3QgdGhhdCBjb25maWRlbnQgeWV0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtUaG91Z2ggSeKAmW0gdGhpbmtpbmcgYWJvdXQgcG9zdGluZyB2aWRlb3Mgd2l0aCBndXlzLCBidXQgSeKAmW0gbm90IHRoYXQgY29uZmlkZW50IHlldCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDIuM3MgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7SSBkb27igJl0IGtub3cgaWYgSeKAmWQgbG9vayBnb29kIG9uIGNhbWVyYSBoYXZpbmcgZXhwbGljaXQgc2V4LCBvciBpZiBJIGV2ZW4ga25vdyB3aGF0IHBlb3BsZSBhcmUgcmVhbGx5IGxvb2tpbmcgZm9yJnF1b3Q7ICZxdW90O1dvbGtrUG9sa2tNb2xra3hvbGtrZ29sa2tPb2xra2NvbGtrWG9sa2twb2xra2ZvbGtrSm9sa2tsb2xra29vbGtrVG9sa2ttb2xra0omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBkb27igJl0IGtub3cgaWYgSeKAmWQgbG9vayBnb29kIG9uIGNhbWVyYSBoYXZpbmcgZXhwbGljaXQgc2V4LCBvciBpZiBJIGV2ZW4ga25vdyB3aGF0IHBlb3BsZSBhcmUgcmVhbGx5IGxvb2tpbmcgZm9yJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtJIGRvbuKAmXQga25vdyBpZiBJ4oCZZCBsb29rIGdvb2Qgb24gY2FtZXJhIGhhdmluZyBleHBsaWNpdCBzZXgsIG9yIGlmIEkgZXZlbiBrbm93IHdoYXQgcGVvcGxlIGFyZSByZWFsbHkgbG9va2luZyBmb3ImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNi41cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjRzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0FjdHVhbGx5LCBvbmUgb2YgdGhlIHJlYXNvbnMgSSByZWFjaGVkIG91dCB0byB5b3Ugd2FzIHJlbGF0ZWQgdG8gdGhhdCZxdW90OyAmcXVvdDtmb2xra1ZvbGtrd29sa2t4b2xra2dvbGtrb29sa2tvb2xra09vbGtrT29sa2tyb2xra3hvbGtrU29sa2tib2xra09vbGtrUm9sa2tDJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FjdHVhbGx5LCBvbmUgb2YgdGhlIHJlYXNvbnMgSSByZWFjaGVkIG91dCB0byB5b3Ugd2FzIHJlbGF0ZWQgdG8gdGhhdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7QWN0dWFsbHksIG9uZSBvZiB0aGUgcmVhc29ucyBJIHJlYWNoZWQgb3V0IHRvIHlvdSB3YXMgcmVsYXRlZCB0byB0aGF0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDguNXMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfeGQud2VicCZxdW90OyB0cnVlICZxdW90O0plbm5hJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX3hkLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtUb2xra2lvbGtrS29sa2twb2xra1hvbGtrZG9sa2tFb2xra0UmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDkuNXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I1RvbGtraW9sa2tLb2xra3BvbGtrWG9sa2tkb2xra0VvbGtrRSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1doYXQgZG8geW91IG1lYW4/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMjYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXaGF0IGRvIHlvdSBtZWFuPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8yNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNDIiIG5hbWU9Ikplbm5hMV8yNiIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDMxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdFN0YXRlICA9ICZxdW90O0plbm5hMV8yNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtXaGF0IGRvIHlvdSBtZWFuPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1doYXQgZG8geW91IG1lYW4/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtXaGF0IGRvIHlvdSBtZWFuPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O1dvdWxkIHlvdSBsaWtlIHRvIGJlIHRoZSBndXkgb2YgbXkgdmlkZW9zPyZxdW90OyAmcXVvdDt6b2xra1FvbGtrZm9sa2tYb2xra3ZvbGtrZW9sa2tnb2xra0VvbGtrb29sa2tCb2xra0tvbGtrUm9sa2tkb2xra2JvbGtrSm9sa2tRJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dvdWxkIHlvdSBsaWtlIHRvIGJlIHRoZSBndXkgb2YgbXkgdmlkZW9zPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7V291bGQgeW91IGxpa2UgdG8gYmUgdGhlIGd1eSBvZiBteSB2aWRlb3M/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2ZvbGtrRW9sa2tTb2xra0NvbGtrWm9sa2t5b2xra1ZvbGtrUSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsjZm9sa2tFb2xra1NvbGtrQ29sa2tab2xra3lvbGtrVm9sa2tRJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SXQgd291bGQgYmUgYW4gaG9ub3ImcXVvdDssIHBhc3NhZ2U6ICZxdW90O0plbm5hMV8yN2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJdCB3b3VsZCBiZSBhbiBob25vciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8yN2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsjZm9sa2tFb2xra1NvbGtrQ29sa2tab2xra3lvbGtrVm9sa2tRJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SeKAmW0gc29ycnksIEkgZG9u4oCZdCB0aGluayBJIGNhbiBkbyBpdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzI3YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0nigJltIHNvcnJ5LCBJIGRvbuKAmXQgdGhpbmsgSSBjYW4gZG8gaXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfMjdiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI0MyIgbmFtZT0iSmVubmExXzI3YSIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDMxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdFN0YXRlICA9ICZxdW90O0plbm5hMV8yN2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRKZW5uYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SXQgd291bGQgYmUgYW4gaG9ub3ImcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdCB3b3VsZCBiZSBhbiBob25vciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7SXQgd291bGQgYmUgYW4gaG9ub3ImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRKZW5uYV9ub3Rlcy5wdXNoKCZxdW90O1NoZSBhc2tlZCBtZSBpZiBJIHdvdWxkIGJlIGludGVyZXN0ZWQgaW4gcmVjb3JkaW5nIHZpZGVvcyB3aXRoIGhlciBmb3IgaGVyIE9ubHlGYW5zLCBJIGRlY2lkZWQgdG8gYWNjZXB0IHRoZSBvZmZlci4mcXVvdDspJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkamVubmEgPSAkamVubmErMSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtNb2xra1dvbGtram9sa2tKb2xra29vbGtrbW9sa2t0b2xra0UmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I01vbGtrV29sa2tqb2xra0pvbGtrb29sa2ttb2xra3RvbGtrRSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0J1dCBob3cgd291bGQgd2UgZG8gaXQ/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMjhhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QnV0IGhvdyB3b3VsZCB3ZSBkbyBpdD8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfMjhhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI0NCIgbmFtZT0iSmVubmExXzI3YiIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDMxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdFN0YXRlICA9ICZxdW90O0plbm5hMV8yN2ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRKZW5uYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SeKAmW0gc29ycnksIEkgZG9u4oCZdCB0aGluayBJIGNhbiBkbyBpdCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJltIHNvcnJ5LCBJIGRvbuKAmXQgdGhpbmsgSSBjYW4gZG8gaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0nigJltIHNvcnJ5LCBJIGRvbuKAmXQgdGhpbmsgSSBjYW4gZG8gaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtJIHVuZGVyc3RhbmQsIG5vIHByb2JsZW0gJG5hbWUmcXVvdDsgJnF1b3Q7a29sa2tjb2xra0ZvbGtrTG9sa2tUb2xra3VvbGtrZ29sa2tpb2xra1JvbGtrZG9sa2tHb2xra0FvbGtrZG9sa2tFb2xra1RvbGtreCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHVuZGVyc3RhbmQsIG5vIHByb2JsZW0gJG5hbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0kgdW5kZXJzdGFuZCwgbm8gcHJvYmxlbSAkbmFtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuM3MgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7RG8geW91IHRoaW5rIHlvdSBjb3VsZCBhdCBsZWFzdCBoZWxwIG1lIGNob29zZSB3aGljaCB2aWRlb3Mgd29yaz8mcXVvdDsgJnF1b3Q7bG9sa2tkb2xra0JvbGtrdW9sa2t0b2xra1RvbGtrSm9sa2twb2xra1FvbGtrcW9sa2tSb2xra3NvbGtrdG9sa2tFb2xra21vbGtrTyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEbyB5b3UgdGhpbmsgeW91IGNvdWxkIGF0IGxlYXN0IGhlbHAgbWUgY2hvb3NlIHdoaWNoIHZpZGVvcyB3b3JrPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7RG8geW91IHRoaW5rIHlvdSBjb3VsZCBhdCBsZWFzdCBoZWxwIG1lIGNob29zZSB3aGljaCB2aWRlb3Mgd29yaz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0dpdmUgbWUgZmVlZGJhY2sgb24gdmlkZW9zIEkgZmlsbSB3aXRoIG90aGVyIGd1eXM/JnF1b3Q7ICZxdW90O0hvbGtrVm9sa2tab2xra3lvbGtrSW9sa2tHb2xra0xvbGtrQW9sa2tmb2xra2pvbGtrR29sa2tEb2xra2tvbGtrUm9sa2t5b2xra2kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7R2l2ZSBtZSBmZWVkYmFjayBvbiB2aWRlb3MgSSBmaWxtIHdpdGggb3RoZXIgZ3V5cz8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0dpdmUgbWUgZmVlZGJhY2sgb24gdmlkZW9zIEkgZmlsbSB3aXRoIG90aGVyIGd1eXM/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuOXMmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSmVubmFfbm90ZXMucHVzaCgmcXVvdDtTaGUgYXNrZWQgbWUgaWYgSeKAmWQgYmUgaW50ZXJlc3RlZCBpbiByZWNvcmRpbmcgdmlkZW9zIHdpdGggaGVyIGZvciBoZXIgT25seUZhbnMsIEkgZGVjaWRlZCB0byB0dXJuIGRvd24gdGhlIG9mZmVyIGJ1dCB0b2xkIGhlciBJIGNvdWxkIGhlbHAgaGVyIGNob29zZSB3aGljaCB2aWRlb3MgdG8gc2hhcmUgd2l0aCBoZXIgZm9sbG93ZXJzLiZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuOXMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRqZW5uYV9tYWluID0gZmFsc2UmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2lvbGtrR29sa2tOb2xra09vbGtrcm9sa2t3b2xra3NvbGtrRyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsjaW9sa2tHb2xra05vbGtrT29sa2tyb2xra3dvbGtrc29sa2tHJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WWVhaCwgSSB0aGluayBJIGNhbiBkbyB0aGF0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMzBiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WWVhaCwgSSB0aGluayBJIGNhbiBkbyB0aGF0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SmVubmExXzMwYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNDUiIG5hbWU9Ikplbm5hMV8yOGEiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwzMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRTdGF0ZSAgPSAmcXVvdDtKZW5uYTFfMjhhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSmVubmFfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0J1dCBob3cgd291bGQgd2UgZG8gaXQ/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IGhvdyB3b3VsZCB3ZSBkbyBpdD8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0J1dCBob3cgd291bGQgd2UgZG8gaXQ/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7SSBjb3VsZCBwYXkgZm9yIHlvdXIgZmxpZ2h0cyB0byBjb21lIGhlcmUmcXVvdDsgJnF1b3Q7ZG9sa2tOb2xra3NvbGtrb29sa2trb2xra3lvbGtrU29sa2tCb2xra1NvbGtrR29sa2tab2xra0JvbGtrT29sa2tkb2xra0tvbGtraCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGNvdWxkIHBheSBmb3IgeW91ciBmbGlnaHRzIHRvIGNvbWUgaGVyZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7SSBjb3VsZCBwYXkgZm9yIHlvdXIgZmxpZ2h0cyB0byBjb21lIGhlcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O1lvdSBjb21lIGZvciB0aGUgZGF5LCB3ZSBmdWNrLCBmaWxtLCBhbmQgeW91IGxlYXZlJnF1b3Q7ICZxdW90O0pvbGtrT29sa2tZb2xra0RvbGtrdG9sa2tRb2xra0lvbGtraG9sa2tLb2xra0tvbGtrWG9sa2tub2xra2hvbGtrTW9sa2tOb2xra1EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGNvbWUgZm9yIHRoZSBkYXksIHdlIGZ1Y2ssIGZpbG0sIGFuZCB5b3UgbGVhdmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O1lvdSBjb21lIGZvciB0aGUgZGF5LCB3ZSBmdWNrLCBmaWxtLCBhbmQgeW91IGxlYXZlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuNXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMi4wcyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtUaGUgbW9uZXkgSSBjb3VsZCBwYXkgeW91IHdvdWxkbuKAmXQgYmUgY3JhenksIGJ1dCBpdOKAmWQgY292ZXIgeW91ciBmbGlnaHRzIGFuZCBnaXZlIHlvdSBzb21lIGV4dHJhIGNhc2gmcXVvdDsgJnF1b3Q7ZW9sa2tob2xra3JvbGtrV29sa2t5b2xra3dvbGtrZW9sa2t0b2xra2ZvbGtrUW9sa2tpb2xra0FvbGtrdm9sa2tpb2xra0FvbGtrZCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGUgbW9uZXkgSSBjb3VsZCBwYXkgeW91IHdvdWxkbuKAmXQgYmUgY3JhenksIGJ1dCBpdOKAmWQgY292ZXIgeW91ciBmbGlnaHRzIGFuZCBnaXZlIHlvdSBzb21lIGV4dHJhIGNhc2gmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O1RoZSBtb25leSBJIGNvdWxkIHBheSB5b3Ugd291bGRu4oCZdCBiZSBjcmF6eSwgYnV0IGl04oCZZCBjb3ZlciB5b3VyIGZsaWdodHMgYW5kIGdpdmUgeW91IHNvbWUgZXh0cmEgY2FzaCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Vm9sa2tob2xra0hvbGtraW9sa2tYb2xra2NvbGtrdG9sa2tyJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA2LjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyNWb2xra2hvbGtrSG9sa2tpb2xra1hvbGtrY29sa2t0b2xra3ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGF0IHNvdW5kcyBnb29kLiBJ4oCZbSBpbiZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzI5YV8xJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhhdCBzb3VuZHMgZ29vZC4gSeKAmW0gaW4mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfMjlhXzEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsjVm9sa2tob2xra0hvbGtraW9sa2tYb2xra2NvbGtrdG9sa2tyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SeKAmW0gc29ycnksIEkgZG9u4oCZdCB0aGluayBJIGNhbiBkbyBpdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzI5YV8yJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SeKAmW0gc29ycnksIEkgZG9u4oCZdCB0aGluayBJIGNhbiBkbyBpdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8yOWFfMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNDYiIG5hbWU9Ikplbm5hMV8yOWFfMSIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDMxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdFN0YXRlICA9ICZxdW90O0plbm5hMV8yOWFfMSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGF0IHNvdW5kcyBnb29kLiBJ4oCZbSBpbiZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYXQgc291bmRzIGdvb2QuIEnigJltIGluJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtUaGF0IHNvdW5kcyBnb29kLiBJ4oCZbSBpbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0F3ZXNvbWUsICRuYW1lLiBJIGNhbuKAmXQgd2FpdCB0byBmdWNrIHdpdGggeW91JnF1b3Q7ICZxdW90O3hvbGtra29sa2trb2xra1lvbGtrRW9sa2tMb2xra2VvbGtrcG9sa2tzb2xra3ZvbGtrZW9sa2tpb2xra3ZvbGtrVm9sa2tPb2xra0kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QXdlc29tZSwgJG5hbWUuIEkgY2Fu4oCZdCB3YWl0IHRvIGZ1Y2sgd2l0aCB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0F3ZXNvbWUsICRuYW1lLiBJIGNhbuKAmXQgd2FpdCB0byBmdWNrIHdpdGggeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuOHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtGb3IgdGhlIHZpZGVvcywgb2YgY291cnNlLi4uJnF1b3Q7ICZxdW90O2xvbGtrdW9sa2t0b2xra0FvbGtrY29sa2tMb2xra1RvbGtrWG9sa2tQb2xra09vbGtrTm9sa2tEb2xra2ZvbGtrQW9sa2tyb2xra2smcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Rm9yIHRoZSB2aWRlb3MsIG9mIGNvdXJzZS4uLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7Rm9yIHRoZSB2aWRlb3MsIG9mIGNvdXJzZS4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjlzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xtYW8ud2VicCZxdW90OyB0cnVlICZxdW90O0plbm5hJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xtYW8ud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0lvbGtrUG9sa2tNb2xra0VvbGtrcm9sa2tkb2xra2FvbGtrTCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsjSW9sa2tQb2xra01vbGtrRW9sa2tyb2xra2RvbGtrYW9sa2tMJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q78J+YgiZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzMwYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O/CfmIImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfMzBhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI0NyIgbmFtZT0iSmVubmExXzI5YV8yIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMzEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzI5YV8yJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSmVubmFfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0nigJltIHNvcnJ5LCBJIGRvbuKAmXQgdGhpbmsgSSBjYW4gZG8gaXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBzb3JyeSwgSSBkb27igJl0IHRoaW5rIEkgY2FuIGRvIGl0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtJ4oCZbSBzb3JyeSwgSSBkb27igJl0IHRoaW5rIEkgY2FuIGRvIGl0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7SSB1bmRlcnN0YW5kLCBubyBwcm9ibGVtICRuYW1lJnF1b3Q7ICZxdW90O0pvbGtram9sa2tjb2xra2VvbGtrWW9sa2tWb2xra3hvbGtrTW9sa2t0b2xra3RvbGtrV29sa2tIb2xra0ZvbGtrV29sa2tRb2xra2QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB1bmRlcnN0YW5kLCBubyBwcm9ibGVtICRuYW1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtJIHVuZGVyc3RhbmQsIG5vIHByb2JsZW0gJG5hbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS40cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0RvIHlvdSB0aGluayB5b3UgY291bGQgYXQgbGVhc3QgaGVscCBtZSBjaG9vc2Ugd2hpY2ggdmlkZW9zIHdvcms/JnF1b3Q7ICZxdW90O0pvbGtra29sa2tGb2xra3hvbGtrS29sa2t2b2xra0ZvbGtrT29sa2tub2xra2lvbGtrRG9sa2tzb2xra1lvbGtrbm9sa2tJb2xra3MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RG8geW91IHRoaW5rIHlvdSBjb3VsZCBhdCBsZWFzdCBoZWxwIG1lIGNob29zZSB3aGljaCB2aWRlb3Mgd29yaz8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0RvIHlvdSB0aGluayB5b3UgY291bGQgYXQgbGVhc3QgaGVscCBtZSBjaG9vc2Ugd2hpY2ggdmlkZW9zIHdvcms/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtHaXZlIG1lIGZlZWRiYWNrIG9uIHZpZGVvcyBJIGZpbG0gd2l0aCBvdGhlciBndXlzPyZxdW90OyAmcXVvdDtCb2xra1hvbGtrbW9sa2tMb2xra0xvbGtrcW9sa2t0b2xra2lvbGtrdW9sa2t3b2xra1VvbGtraW9sa2tGb2xra09vbGtrZ29sa2tXJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0dpdmUgbWUgZmVlZGJhY2sgb24gdmlkZW9zIEkgZmlsbSB3aXRoIG90aGVyIGd1eXM/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtHaXZlIG1lIGZlZWRiYWNrIG9uIHZpZGVvcyBJIGZpbG0gd2l0aCBvdGhlciBndXlzPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjlzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEplbm5hX25vdGVzLnB1c2goJnF1b3Q7U2hlIGFza2VkIG1lIGlmIEnigJlkIGJlIGludGVyZXN0ZWQgaW4gcmVjb3JkaW5nIHZpZGVvcyB3aXRoIGhlciBmb3IgaGVyIE9ubHlGYW5zLCBJIGRlY2lkZWQgdG8gdHVybiBkb3duIHRoZSBvZmZlciBidXQgdG9sZCBoZXIgSSBjb3VsZCBoZWxwIGhlciBjaG9vc2Ugd2hpY2ggdmlkZW9zIHRvIHNoYXJlIHdpdGggaGVyIGZvbGxvd2Vycy4mcXVvdDspJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjlzJmd0OyZndDsmbHQ7Jmx0O3NldCAkamVubmFfbWFpbiA9IGZhbHNlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtib2xra0ZvbGtrS29sa2tab2xra2lvbGtrbm9sa2tHb2xra0EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuOXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I2JvbGtrRm9sa2tLb2xra1pvbGtraW9sa2tub2xra0dvbGtrQSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1llYWgsIEkgdGhpbmsgSSBjYW4gZG8gdGhhdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzMwYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llYWgsIEkgdGhpbmsgSSBjYW4gZG8gdGhhdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8zMGImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjQ4IiBuYW1lPSJKZW5uYTFfMzBhIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMzEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzMwYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xhdWdoLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xhdWdoLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7RnVjaywgSeKAmXZlIGdvdCB0byBnby4gTGV04oCZcyB0YWxrIGFib3V0IGFsbCB0aGlzIGxhdGVyJnF1b3Q7ICZxdW90O0VvbGtrWm9sa2t5b2xra1dvbGtrSm9sa2tsb2xra0tvbGtrVW9sa2tZb2xra0RvbGtrWG9sa2t4b2xra2hvbGtrU29sa2tFb2xra1QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RnVjaywgSeKAmXZlIGdvdCB0byBnby4gTGV04oCZcyB0YWxrIGFib3V0IGFsbCB0aGlzIGxhdGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtGdWNrLCBJ4oCZdmUgZ290IHRvIGdvLiBMZXTigJlzIHRhbGsgYWJvdXQgYWxsIHRoaXMgbGF0ZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O09vbGtrZG9sa2tOb2xra0pvbGtrc29sa2tnb2xra1FvbGtrTiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi43cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsjT29sa2tkb2xra05vbGtrSm9sa2tzb2xra2dvbGtrUW9sa2tOJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7U291bmRzIGdvb2QsIEplbm5hLiBUYWtlIGNhcmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0plbm5hMV8zMWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtTb3VuZHMgZ29vZCwgSmVubmEuIFRha2UgY2FyZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8zMWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjQ5IiBuYW1lPSJKZW5uYTFfMzFhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDMxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdFN0YXRlICA9ICZxdW90O0plbm5hMV8zMWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRKZW5uYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7U291bmRzIGdvb2QsIEplbm5hLiBUYWtlIGNhcmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTb3VuZHMgZ29vZCwgSmVubmEuIFRha2UgY2FyZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7U291bmRzIGdvb2QsIEplbm5hLiBUYWtlIGNhcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtZb3UgdG9vICRuYW1lJnF1b3Q7ICZxdW90O3ZvbGtreW9sa2tTb2xra3dvbGtreW9sa2tKb2xra3NvbGtrdG9sa2tkb2xra0dvbGtrcW9sa2t2b2xra3VvbGtrSG9sa2t2b2xra3QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IHRvbyAkbmFtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7WW91IHRvbyAkbmFtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjJzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtZb3UgdG9vICRuYW1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRTdGF0ZSA9ICZxdW90O0plbm5hMV8zMWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSmVubmFfbGFzdF9ob3VyID0gJnF1b3Q7MDAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSmVubmFfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtvZmZsaW5lLXRleHQmcXVvdDsmZ3Q7SmVubmEgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNTAiIG5hbWU9Ikplbm5hMV8zMGIiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMzEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzMwYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZZWFoLCBJIHRoaW5rIEkgY2FuIGRvIHRoYXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLCBJIHRoaW5rIEkgY2FuIGRvIHRoYXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O1llYWgsIEkgdGhpbmsgSSBjYW4gZG8gdGhhdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0dyZWF0LCB0aGVuIEnigJlsbCBiZSBjb3VudGluZyBvbiB5b3VyIGhlbHAmcXVvdDsgJnF1b3Q7aW9sa2t6b2xra29vbGtrdG9sa2tQb2xra1JvbGtrZm9sa2ttb2xra29vbGtrR29sa2tvb2xra2pvbGtrb29sa2tkb2xra01vbGtrYyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtHcmVhdCwgdGhlbiBJ4oCZbGwgYmUgY291bnRpbmcgb24geW91ciBoZWxwJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtHcmVhdCwgdGhlbiBJ4oCZbGwgYmUgY291bnRpbmcgb24geW91ciBoZWxwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtab2xra3NvbGtram9sa2tib2xra0JvbGtram9sa2tzb2xra0wmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuN3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I1pvbGtrc29sa2tqb2xra2JvbGtrQm9sa2tqb2xra3NvbGtrTCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0hhcHB5IHRvIGhlbHAmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0plbm5hMV8zMWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtIYXBweSB0byBoZWxwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SmVubmExXzMxYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNTEiIG5hbWU9Ikplbm5hMV8zMWIiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCwzMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRTdGF0ZSAgPSAmcXVvdDtKZW5uYTFfMzFiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSmVubmFfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0hhcHB5IHRvIGhlbHAmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIYXBweSB0byBoZWxwJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtIYXBweSB0byBoZWxwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X3Rvbmd1ZS53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7SmVubmEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfdG9uZ3VlLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtGdWNrLCBJ4oCZdmUgZ290IHRvIGdvLiBMZXTigJlzIHRhbGsgYWJvdXQgYWxsIHRoaXMgbGF0ZXImcXVvdDsgJnF1b3Q7eG9sa2t0b2xra0hvbGtrUG9sa2tqb2xra2xvbGtrcm9sa2tYb2xra2RvbGtrRG9sa2t5b2xra2xvbGtrSW9sa2tyb2xra29vbGtrRiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtGdWNrLCBJ4oCZdmUgZ290IHRvIGdvLiBMZXTigJlzIHRhbGsgYWJvdXQgYWxsIHRoaXMgbGF0ZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0Z1Y2ssIEnigJl2ZSBnb3QgdG8gZ28uIExldOKAmXMgdGFsayBhYm91dCBhbGwgdGhpcyBsYXRlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7U29sa2tRb2xra3BvbGtram9sa2t1b2xra01vbGtrYm9sa2tDJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyNTb2xra1FvbGtrcG9sa2tqb2xra3VvbGtrTW9sa2tib2xra0MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtTb3VuZHMgZ29vZCwgSmVubmEuIFRha2UgY2FyZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzMxYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1NvdW5kcyBnb29kLCBKZW5uYS4gVGFrZSBjYXJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SmVubmExXzMxYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNTIiIG5hbWU9Ikplbm5hMV8xNV9oYWxmIiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsMzIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzE1X2hhbGYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRKZW5uYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7QW5kIHllYWgsIEFubmllIGFuZCBJIGFyZSBzdGlsbCB0b2dldGhlciwgc3Ryb25nZXIgdGhhbiBldmVyLiZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FuZCB5ZWFoLCBBbm5pZSBhbmQgSSBhcmUgc3RpbGwgdG9nZXRoZXIsIHN0cm9uZ2VyIHRoYW4gZXZlci4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0FuZCB5ZWFoLCBBbm5pZSBhbmQgSSBhcmUgc3RpbGwgdG9nZXRoZXIsIHN0cm9uZ2VyIHRoYW4gZXZlci4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7dW9sa2tub2xra21vbGtrbW9sa2tDb2xra2NvbGtrQW9sa2tPJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyN1b2xra25vbGtrbW9sa2ttb2xra0NvbGtrY29sa2tBb2xra08mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaG91Z2ggdW5mb3J0dW5hdGVseSwgSSBoYXZlIHRvIGJlIGF3YXkgZnJvbSBob21lIGZvciBhIGZldyBtb250aHMgYmVjYXVzZSBvZiBhIHdvcmsgYXNzaWdubWVudCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzE2JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhvdWdoIHVuZm9ydHVuYXRlbHksIEkgaGF2ZSB0byBiZSBhd2F5IGZyb20gaG9tZSBmb3IgYSBmZXcgbW9udGhzIGJlY2F1c2Ugb2YgYSB3b3JrIGFzc2lnbm1lbnQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfMTYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjUzIiBuYW1lPSJOYW9taV9jaGF0IiB0YWdzPSJtYXBwIG5vdGhvdXIiIHBvc2l0aW9uPSIzNTAsMzIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKLypyZWdpb24gRW1pbHkgY2hhdCovCiZsdDsmbHQ7aWYgJE5hb21pX2NoYXQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2hlYWRlciAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyAkTmFvbWlfcGF1c2VkJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtoZWFkZXIgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsgdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDttZXNzYWdlX2NvbnRhaW5lciZxdW90OyZndDsKJmx0OyZsdDtmb3IgX2xpbmUgcmFuZ2UgJE5hb21pX2NoYXRMb2cmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiBfbGluZS50eXBlID09IDEmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCBfbGluZS5zZW5kZXIgX2xpbmUubWVzc2FnZSBfbGluZS5hdmF0YXImZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlaWYgX2xpbmUudHlwZSA9PSAyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VfaW1nIF9saW5lLm1lc3NhZ2UmZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlaWYgX2xpbmUudHlwZSA9PSAzJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VfdmlkZW8gX2xpbmUubWVzc2FnZVswXSBfbGluZS5tZXNzYWdlWzFdJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZWlmIF9saW5lLnR5cGUgPT0gNCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDttZXNzYWdlX2Vtb2ppIF9saW5lLm1lc3NhZ2UgZmFsc2UgX2xpbmUuc2VuZGVyJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDsvZm9yJmd0OyZndDsKJmx0OyZsdDtpZiAkTmFvbWlfcGF1c2VkID09IGZhbHNlJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJE5hb21pX2NoYXQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICROYW9taV9jaGF0U3RhdGUmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAmbHQ7ZGl2IEBpZD0mcXVvdDskTmFvbWlfbGFzdElkLnNsaWNlKDEpJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7ZW5kJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwombHQ7L2RpdiZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtjaGF0X2JhciZxdW90OyZndDsKJmx0O2RpdiBpZD0mcXVvdDtjb250ZW50JnF1b3Q7Jmd0OwombHQ7Jmx0O2lmICROYW9taV9wYXVzZWQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICROYW9taV9vcHRpb25zWzBdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJE5hb21pX29wdGlvbnNbMF0udGV4dCZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkTmFvbWlfb3B0aW9uc1swXS5wYXNzYWdlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJE5hb21pX29wdGlvbnNbMV0mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bGluayAkTmFvbWlfb3B0aW9uc1sxXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpbmNsdWRlICROYW9taV9vcHRpb25zWzFdLnBhc3NhZ2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkTmFvbWlfb3B0aW9uc1syXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICROYW9taV9vcHRpb25zWzJdLnRleHQmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJE5hb21pX29wdGlvbnNbMl0ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICROYW9taV9vcHRpb25zWzNdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJE5hb21pX29wdGlvbnNbM10udGV4dCZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkTmFvbWlfb3B0aW9uc1szXS5wYXNzYWdlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7L2RpdiZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7dGltZWQgMC4ycyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsSW5zdGEoKTsKICAgICZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNTQiIG5hbWU9Ik5hb21pU3RhcnQxIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMzIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtIb25lc3RseSwgSSBoYXZlIHRvIGNvbmdyYXR1bGF0ZSB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvbmVzdGx5LCBJIGhhdmUgdG8gY29uZ3JhdHVsYXRlIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7SG9uZXN0bHksIEkgaGF2ZSB0byBjb25ncmF0dWxhdGUgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Wm9sa2t0b2xra09vbGtrTm9sa2tLb2xra1BvbGtrcW9sa2tPJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjZzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyNab2xra3RvbGtrT29sa2tOb2xra0tvbGtrUG9sa2txb2xra08mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtOYW9taT8gSSB0aG91Z2h0IHlvdSBoYXRlZCBtZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlTdGFydDFfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O05hb21pPyBJIHRob3VnaHQgeW91IGhhdGVkIG1lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlTdGFydDFfMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI1NSIgbmFtZT0iTmFvbWlTdGFydDFfMiIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDMyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pU3RhcnQxXzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TmFvbWk/IEkgdGhvdWdodCB5b3UgaGF0ZWQgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtOYW9taT8gSSB0aG91Z2h0IHlvdSBoYXRlZCBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7TmFvbWk/IEkgdGhvdWdodCB5b3UgaGF0ZWQgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7b29sa2tab2xra2JvbGtrbW9sa2tWb2xra3hvbGtrUm9sa2tnJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyNvb2xra1pvbGtrYm9sa2ttb2xra1ZvbGtreG9sa2tSb2xra2cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtXaGF0IGRvIEkgb3dlIHRoZSBwbGVhc3VyZT8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O05hb21pU3RhcnQxXzMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXaGF0IGRvIEkgb3dlIHRoZSBwbGVhc3VyZT8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taVN0YXJ0MV8zJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI1NiIgbmFtZT0iTmFvbWlTdGFydDFfMyIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDMyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pU3RhcnQxXzMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7V2hhdCBkbyBJIG93ZSB0aGUgcGxlYXN1cmU/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2hhdCBkbyBJIG93ZSB0aGUgcGxlYXN1cmU/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtXaGF0IGRvIEkgb3dlIHRoZSBwbGVhc3VyZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtIYXRlIGlzIGEgdmVyeSBzdHJvbmcgd29yZCZxdW90OyAmcXVvdDtRb2xra3pvbGtrQ29sa2tQb2xra2FvbGtrZW9sa2tGb2xra1BvbGtraW9sa2tBb2xra1hvbGtrUW9sa2tqb2xra21vbGtrSG9sa2tVJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hhdGUgaXMgYSB2ZXJ5IHN0cm9uZyB3b3JkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtIYXRlIGlzIGEgdmVyeSBzdHJvbmcgd29yZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMnMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7TGV04oCZcyBqdXN0IHNheSBJIG5ldmVyIHRob3VnaHQgeW91IHdlcmUgZ29vZCBlbm91Z2ggZm9yIEFubmllJnF1b3Q7ICZxdW90O2JvbGtreW9sa2tKb2xra1RvbGtrSG9sa2tQb2xra2FvbGtrTm9sa2tUb2xra21vbGtrd29sa2tqb2xra2pvbGtrb29sa2tZb2xra08mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGV04oCZcyBqdXN0IHNheSBJIG5ldmVyIHRob3VnaHQgeW91IHdlcmUgZ29vZCBlbm91Z2ggZm9yIEFubmllJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtMZXTigJlzIGp1c3Qgc2F5IEkgbmV2ZXIgdGhvdWdodCB5b3Ugd2VyZSBnb29kIGVub3VnaCBmb3IgQW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O0J1dCBub3cgSSBjYW4gc2F5IEkgcmVzcGVjdCB5b3VyIHN0YW5jZSZxdW90OyAmcXVvdDtqb2xra3RvbGtrUG9sa2tsb2xra0FvbGtrem9sa2tKb2xra1BvbGtrb29sa2tKb2xra2JvbGtrUG9sa2t5b2xra2ZvbGtrUG9sa2tkJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCBub3cgSSBjYW4gc2F5IEkgcmVzcGVjdCB5b3VyIHN0YW5jZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7QnV0IG5vdyBJIGNhbiBzYXkgSSByZXNwZWN0IHlvdXIgc3RhbmNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtWb2xra0RvbGtrcm9sa2tWb2xra1RvbGtrYm9sa2trb2xra1omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuOHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I1ZvbGtrRG9sa2tyb2xra1ZvbGtrVG9sa2tib2xra2tvbGtrWiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgY2Fu4oCZdCBiZWxpZXZlIGl0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taVN0YXJ0MV80JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taVN0YXJ0MV80JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI1NyIgbmFtZT0iTmFvbWlTdGFydDFfNCIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDMyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pU3RhcnQxXzQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGNhbuKAmXQgYmVsaWV2ZSBpdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Q29sa2tzb2xra0lvbGtraG9sa2tib2xra3BvbGtrVm9sa2tYJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyNDb2xra3NvbGtrSW9sa2tob2xra2JvbGtrcG9sa2tWb2xra1gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtBbm5pZSB0b2xkIHlvdT8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O05hb21pU3RhcnQxXzUmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtBbm5pZSB0b2xkIHlvdT8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taVN0YXJ0MV81JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI1OCIgbmFtZT0iTmFvbWlTdGFydDFfNSIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDMyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pU3RhcnQxXzUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7QW5uaWUgdG9sZCB5b3U/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5uaWUgdG9sZCB5b3U/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtBbm5pZSB0b2xkIHlvdT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtXaGF0IGRpZCB5b3UgZXhwZWN0PyZxdW90OyAmcXVvdDtzb2xra1VvbGtrZm9sa2t5b2xra1pvbGtrT29sa2tib2xra1JvbGtrRm9sa2tIb2xra0pvbGtreW9sa2thb2xra0JvbGtrTW9sa2toJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1doYXQgZGlkIHlvdSBleHBlY3Q/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtXaGF0IGRpZCB5b3UgZXhwZWN0PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNHMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7V2XigJl2ZSBiZWVuIGJlc3QgZnJpZW5kcyBzaW5jZSBoaWdoIHNjaG9vbCwgYW5kIHdlIHdvcmsgYXQgdGhlIHNhbWUgY29tcGFueSZxdW90OyAmcXVvdDtYb2xra2pvbGtram9sa2tPb2xra1dvbGtrZG9sa2tEb2xra0tvbGtrU29sa2tBb2xra3FvbGtrQW9sa2tab2xra01vbGtrd29sa2tCJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dl4oCZdmUgYmVlbiBiZXN0IGZyaWVuZHMgc2luY2UgaGlnaCBzY2hvb2wsIGFuZCB3ZSB3b3JrIGF0IHRoZSBzYW1lIGNvbXBhbnkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1dl4oCZdmUgYmVlbiBiZXN0IGZyaWVuZHMgc2luY2UgaGlnaCBzY2hvb2wsIGFuZCB3ZSB3b3JrIGF0IHRoZSBzYW1lIGNvbXBhbnkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O1NoZSB0ZWxscyBtZSBldmVyeXRoaW5nJnF1b3Q7ICZxdW90O3JvbGtrYm9sa2t0b2xra1lvbGtrcG9sa2tQb2xra2tvbGtrR29sa2tyb2xra3hvbGtrTW9sa2tmb2xra3hvbGtrYW9sa2tLb2xra3QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U2hlIHRlbGxzIG1lIGV2ZXJ5dGhpbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1NoZSB0ZWxscyBtZSBldmVyeXRoaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtmb2xra3pvbGtrT29sa2t2b2xra05vbGtrZG9sa2tZb2xra3cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I2ZvbGtrem9sa2tPb2xra3ZvbGtrTm9sa2tkb2xra1lvbGtrdyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90Oy4uLiZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlTdGFydDFfNiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90Oy4uLiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O05hb21pU3RhcnQxXzYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjU5IiBuYW1lPSJOYW9taVN0YXJ0MV82IiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDMyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pU3RhcnQxXzYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7Li4uJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Li4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDsuLi4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS40cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtBbHRob3VnaCwgdG8gYmUgZmFpciwgc2hlIGRvZXNu4oCZdCBrbm93IGFib3V0IHRoaXMgY29udmVyc2F0aW9uIHdl4oCZcmUgaGF2aW5nIHJpZ2h0IG5vdyZxdW90OyAmcXVvdDtmb2xra0RvbGtrdG9sa2tob2xra2pvbGtrdW9sa2ttb2xra0RvbGtrR29sa2tHb2xra2ZvbGtrcG9sa2tBb2xra3dvbGtrcm9sa2tqJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FsdGhvdWdoLCB0byBiZSBmYWlyLCBzaGUgZG9lc27igJl0IGtub3cgYWJvdXQgdGhpcyBjb252ZXJzYXRpb24gd2XigJlyZSBoYXZpbmcgcmlnaHQgbm93JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtBbHRob3VnaCwgdG8gYmUgZmFpciwgc2hlIGRvZXNu4oCZdCBrbm93IGFib3V0IHRoaXMgY29udmVyc2F0aW9uIHdl4oCZcmUgaGF2aW5nIHJpZ2h0IG5vdyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7TGV0IG1lIGdldCBzdHJhaWdodCB0byB0aGUgcG9pbnQmcXVvdDsgJnF1b3Q7Qm9sa2tSb2xra2dvbGtrUm9sa2tSb2xra2FvbGtrSG9sa2tGb2xra3FvbGtrRW9sa2tQb2xra1dvbGtrTm9sa2tqb2xra3ZvbGtrbCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtMZXQgbWUgZ2V0IHN0cmFpZ2h0IHRvIHRoZSBwb2ludCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7TGV0IG1lIGdldCBzdHJhaWdodCB0byB0aGUgcG9pbnQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O0nigJl2ZSBhbHdheXMgdGhvdWdodCBBbm5pZSBzaG91bGTigJl2ZSBsaXZlZCBoZXIgbGlmZSBtb3JlJnF1b3Q7ICZxdW90O2FvbGtrSW9sa2tlb2xra0NvbGtrcm9sa2ttb2xra3ZvbGtrUm9sa2tEb2xra3NvbGtrcW9sa2tHb2xra05vbGtrRW9sa2tsb2xra0gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmXZlIGFsd2F5cyB0aG91Z2h0IEFubmllIHNob3VsZOKAmXZlIGxpdmVkIGhlciBsaWZlIG1vcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0nigJl2ZSBhbHdheXMgdGhvdWdodCBBbm5pZSBzaG91bGTigJl2ZSBsaXZlZCBoZXIgbGlmZSBtb3JlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDUuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtZb3Ugd2VyZSBoZXIgZmlyc3QgYm95ZnJpZW5kJnF1b3Q7ICZxdW90O3ZvbGtrUm9sa2tmb2xra3JvbGtrUW9sa2tCb2xra1dvbGtrWG9sa2t6b2xra1JvbGtrQm9sa2tnb2xra3dvbGtrZm9sa2t6b2xra3YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IHdlcmUgaGVyIGZpcnN0IGJveWZyaWVuZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7WW91IHdlcmUgaGVyIGZpcnN0IGJveWZyaWVuZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA2LjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7VGhlbiBvdXQgb2Ygbm93aGVyZSwgeW91IHR3byBtb3ZlZCBpbiB0b2dldGhlciZxdW90OyAmcXVvdDt5b2xra0NvbGtrVm9sa2t4b2xra2ZvbGtreW9sa2tRb2xra1JvbGtrcW9sa2t2b2xra09vbGtrWW9sa2tOb2xra1FvbGtrdW9sa2tzJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoZW4gb3V0IG9mIG5vd2hlcmUsIHlvdSB0d28gbW92ZWQgaW4gdG9nZXRoZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1RoZW4gb3V0IG9mIG5vd2hlcmUsIHlvdSB0d28gbW92ZWQgaW4gdG9nZXRoZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNy43cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O0FuZCBJIG5ldmVyIHJlYWxseSBnb3QgdG8gZ28gb3V0IHdpdGggbXkgZnJpZW5kJnF1b3Q7ICZxdW90O3lvbGtrS29sa2tnb2xra2JvbGtrZm9sa2tsb2xra0hvbGtrYW9sa2tmb2xra3FvbGtrYW9sa2tBb2xra0NvbGtreW9sa2t3b2xra3kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5kIEkgbmV2ZXIgcmVhbGx5IGdvdCB0byBnbyBvdXQgd2l0aCBteSBmcmllbmQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0FuZCBJIG5ldmVyIHJlYWxseSBnb3QgdG8gZ28gb3V0IHdpdGggbXkgZnJpZW5kJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDkuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtObyBiYXJzLCBubyBtZWV0aW5nIGd1eXMsIG5vIHNoYXJlZCBhZHZlbnR1cmVzJnF1b3Q7ICZxdW90O3ZvbGtrVG9sa2tSb2xra1JvbGtrV29sa2tmb2xra2FvbGtrTG9sa2tPb2xra1VvbGtraW9sa2tHb2xra0ZvbGtrQW9sa2tSb2xra2omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm8gYmFycywgbm8gbWVldGluZyBndXlzLCBubyBzaGFyZWQgYWR2ZW50dXJlcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7Tm8gYmFycywgbm8gbWVldGluZyBndXlzLCBubyBzaGFyZWQgYWR2ZW50dXJlcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxMC44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O0xldCBtZSBqdXN0IHNheSBJIGRvbuKAmXQgaGF0ZSB5b3UmcXVvdDsgJnF1b3Q7em9sa2tvb2xra05vbGtrUW9sa2tlb2xra0VvbGtraG9sa2tBb2xra1ZvbGtrTG9sa2twb2xra2RvbGtrdW9sa2tCb2xra2tvbGtrYSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtMZXQgbWUganVzdCBzYXkgSSBkb27igJl0IGhhdGUgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtMZXQgbWUganVzdCBzYXkgSSBkb27igJl0IGhhdGUgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEyLjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNXMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7QnV0IEkgZGlkbuKAmXQgbGlrZSBob3cgeW91IHN3b29wZWQgaW4gYW5kIHN0b2xlIG15IGZyaWVuZCBhd2F5IGZyb20gbWUmcXVvdDsgJnF1b3Q7Um9sa2tyb2xra1FvbGtrdW9sa2tCb2xra3ZvbGtraG9sa2tjb2xra3pvbGtrQ29sa2t3b2xra0tvbGtrRG9sa2tUb2xra2xvbGtrdyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgSSBkaWRu4oCZdCBsaWtlIGhvdyB5b3Ugc3dvb3BlZCBpbiBhbmQgc3RvbGUgbXkgZnJpZW5kIGF3YXkgZnJvbSBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7QnV0IEkgZGlkbuKAmXQgbGlrZSBob3cgeW91IHN3b29wZWQgaW4gYW5kIHN0b2xlIG15IGZyaWVuZCBhd2F5IGZyb20gbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3ZvbGtrdW9sa2tQb2xra05vbGtrYm9sa2tqb2xra09vbGtrWSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMTQuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I3ZvbGtrdW9sa2tQb2xra05vbGtrYm9sa2tqb2xra09vbGtrWSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgc2VlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taVN0YXJ0MV83YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgc2VlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlTdGFydDFfN2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsjdm9sa2t1b2xra1BvbGtrTm9sa2tib2xra2pvbGtrT29sa2tZJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7U2/igKYmcXVvdDssIHBhc3NhZ2U6ICZxdW90O05hb21pU3RhcnQxXzdiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7U2/igKYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taVN0YXJ0MV83YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNjAiIG5hbWU9Ik5hb21pU3RhcnQxXzdhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDMyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pU3RhcnQxXzdhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkTmFvbWlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgc2VlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBzZWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0kgc2VlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2pvbGtrQW9sa2tGb2xra3RvbGtrem9sa2tib2xra3pvbGtrdCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsjam9sa2tBb2xra0ZvbGtrdG9sa2t6b2xra2JvbGtrem9sa2t0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QnV0IHdoYXQgZG8geW91IHdhbnQgZnJvbSBtZT8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O05hb21pU3RhcnQxXzhhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QnV0IHdoYXQgZG8geW91IHdhbnQgZnJvbSBtZT8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taVN0YXJ0MV84YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNjEiIG5hbWU9Ik5hb21pU3RhcnQxXzdiIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMzM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgID0gJnF1b3Q7TmFvbWlTdGFydDFfN2ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7U2/igKYmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTb+KApiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7U2/igKYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtTbywgbGV0IG1lIG1ha2Ugb25lIHRoaW5nIGNsZWFyJnF1b3Q7ICZxdW90O2hvbGtrSm9sa2t0b2xra2dvbGtram9sa2tkb2xra0RvbGtrWG9sa2thb2xra1pvbGtrbm9sa2tKb2xra1VvbGtrQ29sa2tXb2xra3gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U28sIGxldCBtZSBtYWtlIG9uZSB0aGluZyBjbGVhciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7U28sIGxldCBtZSBtYWtlIG9uZSB0aGluZyBjbGVhciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7QW5uaWUgd291bGQgbmV2ZXIgYWdyZWUgdG8gZnVsZmlsbCB0aGF0IGZldGlzaCBvZiB5b3VycyZxdW90OyAmcXVvdDtTb2xra0dvbGtram9sa2tQb2xra0VvbGtrSm9sa2tFb2xra0NvbGtreG9sa2tDb2xra3lvbGtrTm9sa2tjb2xra3lvbGtrSW9sa2tkJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FubmllIHdvdWxkIG5ldmVyIGFncmVlIHRvIGZ1bGZpbGwgdGhhdCBmZXRpc2ggb2YgeW91cnMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0FubmllIHdvdWxkIG5ldmVyIGFncmVlIHRvIGZ1bGZpbGwgdGhhdCBmZXRpc2ggb2YgeW91cnMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4ycyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O05vdCB3aXRob3V0IG1lIGNvbnZpbmNpbmcgaGVyJnF1b3Q7ICZxdW90O0tvbGtrTW9sa2tXb2xra2FvbGtrR29sa2tUb2xra0ZvbGtrWG9sa2tIb2xra1BvbGtrZm9sa2tMb2xra1BvbGtrUm9sa2tQb2xra1omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm90IHdpdGhvdXQgbWUgY29udmluY2luZyBoZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O05vdCB3aXRob3V0IG1lIGNvbnZpbmNpbmcgaGVyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS41cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtJ4oCZdmUgYWxyZWFkeSB0YWxrZWQgdG8gaGVyLCBhbmQgSSB0aGluayB0aGluZ3MgbWlnaHQgaGVhZCBpbiB0aGUgcmlnaHQgZGlyZWN0aW9uJnF1b3Q7ICZxdW90O0JvbGtrRm9sa2tKb2xra1ZvbGtrZG9sa2tkb2xra1RvbGtrTW9sa2tSb2xra2ZvbGtrbm9sa2t4b2xra1ZvbGtrYm9sa2tKb2xra3ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmXZlIGFscmVhZHkgdGFsa2VkIHRvIGhlciwgYW5kIEkgdGhpbmsgdGhpbmdzIG1pZ2h0IGhlYWQgaW4gdGhlIHJpZ2h0IGRpcmVjdGlvbiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7SeKAmXZlIGFscmVhZHkgdGFsa2VkIHRvIGhlciwgYW5kIEkgdGhpbmsgdGhpbmdzIG1pZ2h0IGhlYWQgaW4gdGhlIHJpZ2h0IGRpcmVjdGlvbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA2LjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMnMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7V2hhdCBJ4oCZbSBvZmZlcmluZyBpcyBoZWxwLCBoZWxwIHRvIGdldCB3aGF0IHlvdeKAmXJlIGxvb2tpbmcgZm9yJnF1b3Q7ICZxdW90O2lvbGtrTW9sa2tib2xra0JvbGtrYW9sa2ttb2xra0JvbGtrV29sa2tlb2xra1hvbGtreW9sa2tWb2xra1lvbGtrU29sa2tNb2xra3UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2hhdCBJ4oCZbSBvZmZlcmluZyBpcyBoZWxwLCBoZWxwIHRvIGdldCB3aGF0IHlvdeKAmXJlIGxvb2tpbmcgZm9yJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtXaGF0IEnigJltIG9mZmVyaW5nIGlzIGhlbHAsIGhlbHAgdG8gZ2V0IHdoYXQgeW914oCZcmUgbG9va2luZyBmb3ImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgOC4ycyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O0FuZCwgaW4gcmV0dXJuLCBJIGdldCBteSBmcmllbmQgYmFjayBmb3IgbXlzZWxmJnF1b3Q7ICZxdW90O2pvbGtrRm9sa2tGb2xra0xvbGtrWm9sa2tpb2xra21vbGtrcm9sa2tMb2xra2dvbGtrS29sa2tBb2xra0VvbGtrWm9sa2t1b2xra2YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5kLCBpbiByZXR1cm4sIEkgZ2V0IG15IGZyaWVuZCBiYWNrIGZvciBteXNlbGYmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0FuZCwgaW4gcmV0dXJuLCBJIGdldCBteSBmcmllbmQgYmFjayBmb3IgbXlzZWxmJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDttb2xra0dvbGtrUW9sa2tjb2xra1ZvbGtrem9sa2tCb2xra0MmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDkuOHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I21vbGtrR29sa2tRb2xra2NvbGtrVm9sa2t6b2xra0JvbGtrQyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgaGF2ZSB0byBzYXksIHRoYXQgZG9lc24mIzM5O3Qgc291bmQgYmFkIGF0IGFsbCZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlTdGFydDFfMTFhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBoYXZlIHRvIHNheSwgdGhhdCBkb2VzbiYjMzk7dCBzb3VuZCBiYWQgYXQgYWxsJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlTdGFydDFfMTFhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I21vbGtrR29sa2tRb2xra2NvbGtrVm9sa2t6b2xra0JvbGtrQyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgZG9uJiMzOTt0IHdhbnQgeW91IGludm9sdmVkIGluIHRoaXMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O05hb21pU3RhcnQxXzExYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgZG9uJiMzOTt0IHdhbnQgeW91IGludm9sdmVkIGluIHRoaXMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taVN0YXJ0MV8xMWImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjYyIiBuYW1lPSJOYW9taVN0YXJ0MV84YSIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDMzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pU3RhcnQxXzhhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkTmFvbWlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0J1dCB3aGF0IGRvIHlvdSB3YW50IGZyb20gbWU/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IHdoYXQgZG8geW91IHdhbnQgZnJvbSBtZT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0J1dCB3aGF0IGRvIHlvdSB3YW50IGZyb20gbWU/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2tvbGtraW9sa2tlb2xra0RvbGtrRG9sa2ttb2xra21vbGtrWCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsja29sa2tpb2xra2VvbGtrRG9sa2tEb2xra21vbGtrbW9sa2tYJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SXMgdGhpcyBzb21lIGtpbmQgb2YgYXBvbG9neT8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O05hb21pU3RhcnQxXzEwYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0lzIHRoaXMgc29tZSBraW5kIG9mIGFwb2xvZ3k/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlTdGFydDFfMTBhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI2MyIgbmFtZT0iTmFvbWlTdGFydDFfMTBhIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMzM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgID0gJnF1b3Q7TmFvbWlTdGFydDFfMTBhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkTmFvbWlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0lzIHRoaXMgc29tZSBraW5kIG9mIGFwb2xvZ3k/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXMgdGhpcyBzb21lIGtpbmQgb2YgYXBvbG9neT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0lzIHRoaXMgc29tZSBraW5kIG9mIGFwb2xvZ3k/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7T2gsIGxldCBtZSB0ZWxsIHlvdSwgaXTigJlzIG11Y2ggbW9yZSB0aGFuIHRoYXQmcXVvdDsgJnF1b3Q7cW9sa2tMb2xra25vbGtrSm9sa2tLb2xra0tvbGtrRm9sa2t5b2xra25vbGtrVm9sa2tGb2xra3VvbGtrQm9sa2tGb2xra0ZvbGtrSSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPaCwgbGV0IG1lIHRlbGwgeW91LCBpdOKAmXMgbXVjaCBtb3JlIHRoYW4gdGhhdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7T2gsIGxldCBtZSB0ZWxsIHlvdSwgaXTigJlzIG11Y2ggbW9yZSB0aGFuIHRoYXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjJzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O1lvdSBzZWUsIEFubmllIHdvdWxkIG5ldmVyIGFncmVlIHRvIGZ1bGZpbGwgdGhhdCBmZXRpc2ggb2YgeW91cnMmcXVvdDsgJnF1b3Q7Sm9sa2tEb2xra2ZvbGtrZG9sa2tnb2xra2JvbGtrVW9sa2tPb2xra0dvbGtrU29sa2tVb2xra0tvbGtrQ29sa2tBb2xra3lvbGtrbSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3Ugc2VlLCBBbm5pZSB3b3VsZCBuZXZlciBhZ3JlZSB0byBmdWxmaWxsIHRoYXQgZmV0aXNoIG9mIHlvdXJzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtZb3Ugc2VlLCBBbm5pZSB3b3VsZCBuZXZlciBhZ3JlZSB0byBmdWxmaWxsIHRoYXQgZmV0aXNoIG9mIHlvdXJzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtOb3Qgd2l0aG91dCBtZSBjb252aW5jaW5nIGhlciZxdW90OyAmcXVvdDtHb2xra0VvbGtrbG9sa2ttb2xra0tvbGtrV29sa2txb2xra1ZvbGtra29sa2tEb2xra0RvbGtrTG9sa2tZb2xra2pvbGtrT29sa2tLJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05vdCB3aXRob3V0IG1lIGNvbnZpbmNpbmcgaGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtOb3Qgd2l0aG91dCBtZSBjb252aW5jaW5nIGhlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjhzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNXMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7SeKAmXZlIGFscmVhZHkgdGFsa2VkIHRvIGhlciwgYW5kIEkgdGhpbmsgdGhpbmdzIG1pZ2h0IGhlYWQgaW4gdGhlIHJpZ2h0IGRpcmVjdGlvbiZxdW90OyAmcXVvdDtob2xra0VvbGtrcW9sa2tWb2xra2lvbGtrZm9sa2tJb2xra29vbGtrY29sa2tjb2xra0dvbGtrcW9sa2tJb2xra1FvbGtrcW9sa2tEJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJl2ZSBhbHJlYWR5IHRhbGtlZCB0byBoZXIsIGFuZCBJIHRoaW5rIHRoaW5ncyBtaWdodCBoZWFkIGluIHRoZSByaWdodCBkaXJlY3Rpb24mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0nigJl2ZSBhbHJlYWR5IHRhbGtlZCB0byBoZXIsIGFuZCBJIHRoaW5rIHRoaW5ncyBtaWdodCBoZWFkIGluIHRoZSByaWdodCBkaXJlY3Rpb24mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNi45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjJzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O1doYXQgSeKAmW0gb2ZmZXJpbmcgaXMgaGVscCwgaGVscCB0byBnZXQgd2hhdCB5b3XigJlyZSBsb29raW5nIGZvciZxdW90OyAmcXVvdDtIb2xra0JvbGtra29sa2t1b2xra1VvbGtrdW9sa2ttb2xra21vbGtram9sa2tEb2xra0RvbGtrdG9sa2tHb2xra0xvbGtrWm9sa2tLJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1doYXQgSeKAmW0gb2ZmZXJpbmcgaXMgaGVscCwgaGVscCB0byBnZXQgd2hhdCB5b3XigJlyZSBsb29raW5nIGZvciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7V2hhdCBJ4oCZbSBvZmZlcmluZyBpcyBoZWxwLCBoZWxwIHRvIGdldCB3aGF0IHlvdeKAmXJlIGxvb2tpbmcgZm9yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDguN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtBbmQsIGluIHJldHVybiwgSSBnZXQgbXkgZnJpZW5kIGJhY2sgZm9yIG15c2VsZiZxdW90OyAmcXVvdDtZb2xra0ZvbGtrcG9sa2tMb2xra2NvbGtrdm9sa2tZb2xra2hvbGtrc29sa2tEb2xra1lvbGtrQ29sa2tIb2xra1VvbGtrTm9sa2tlJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FuZCwgaW4gcmV0dXJuLCBJIGdldCBteSBmcmllbmQgYmFjayBmb3IgbXlzZWxmJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtBbmQsIGluIHJldHVybiwgSSBnZXQgbXkgZnJpZW5kIGJhY2sgZm9yIG15c2VsZiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7bm9sa2tVb2xra01vbGtrS29sa2tRb2xra2tvbGtrb29sa2tRJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsjbm9sa2tVb2xra01vbGtrS29sa2tRb2xra2tvbGtrb29sa2tRJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBoYXZlIHRvIHNheSwgdGhhdCBkb2VzbiYjMzk7dCBzb3VuZCBiYWQgYXQgYWxsJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taVN0YXJ0MV8xMWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGhhdmUgdG8gc2F5LCB0aGF0IGRvZXNuJiMzOTt0IHNvdW5kIGJhZCBhdCBhbGwmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taVN0YXJ0MV8xMWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsjbm9sa2tVb2xra01vbGtrS29sa2tRb2xra2tvbGtrb29sa2tRJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBkb24mIzM5O3Qgd2FudCB5b3UgaW52b2x2ZWQgaW4gdGhpcyZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlTdGFydDFfMTFiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBkb24mIzM5O3Qgd2FudCB5b3UgaW52b2x2ZWQgaW4gdGhpcyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O05hb21pU3RhcnQxXzExYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNjQiIG5hbWU9Ik5hb21pU3RhcnQxXzExYSIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDMzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pU3RhcnQxXzExYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJE5hb21pX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGhhdmUgdG8gc2F5LCB0aGF0IGRvZXNu4oCZdCBzb3VuZCBiYWQgYXQgYWxsJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBoYXZlIHRvIHNheSwgdGhhdCBkb2VzbuKAmXQgc291bmQgYmFkIGF0IGFsbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7SSBoYXZlIHRvIHNheSwgdGhhdCBkb2VzbuKAmXQgc291bmQgYmFkIGF0IGFsbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkbmFvbWlfb2ZmZXIgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkTmFvbWlfbm90ZXMucHVzaCgmcXVvdDtTaGUgZm91bmQgb3V0IGFib3V0IG15IGZhbnRhc3ksIG9mZmVyZWQgdG8gaGVscCBhbmQgSSBhY2NlcHRlZC4gSSBqdXN0IGhvcGUgdGhpcyBkb2VzbuKAmXQgZW5kIGJhZGx5LiZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2dvbGtrbG9sa2tMb2xra3dvbGtrU29sa2twb2xra1hvbGtrTyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsjZ29sa2tsb2xra0xvbGtrd29sa2tTb2xra3BvbGtrWG9sa2tPJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7V2hhdCBkbyB5b3UgaGF2ZSBpbiBtaW5kPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlTdGFydDFfMTJhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7V2hhdCBkbyB5b3UgaGF2ZSBpbiBtaW5kPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O05hb21pU3RhcnQxXzEyYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNjUiIG5hbWU9Ik5hb21pU3RhcnQxXzExYiIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDMzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pU3RhcnQxXzExYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJE5hb21pX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGRvbuKAmXQgd2FudCB5b3UgaW52b2x2ZWQgaW4gdGhpcyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZG9u4oCZdCB3YW50IHlvdSBpbnZvbHZlZCBpbiB0aGlzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtJIGRvbuKAmXQgd2FudCB5b3UgaW52b2x2ZWQgaW4gdGhpcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkbmFvbWlfb2ZmZXIgPSBmYWxzZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX25vdGVzLnB1c2goJnF1b3Q7U2hlIGZvdW5kIG91dCBhYm91dCBteSBmYW50YXN5IGFuZCBvZmZlcmVkIHRvIGhlbHAsIGJ1dCBJIHR1cm5lZCBoZXIgZG93bi4gSeKAmWQgcmF0aGVyIGtlZXAgaGVyIG91dCBvZiB0aGlzLiZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2NvbGtreG9sa2tnb2xra2tvbGtrTm9sa2tIb2xra1VvbGtrbiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsjY29sa2t4b2xra2dvbGtra29sa2tOb2xra0hvbGtrVW9sa2tuJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhpcyBoYXMgbm90aGluZyB0byBkbyB3aXRoIHlvdSZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlTdGFydDFfMTJiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhpcyBoYXMgbm90aGluZyB0byBkbyB3aXRoIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O05hb21pU3RhcnQxXzEyYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNjYiIG5hbWU9Ik5hb21pU3RhcnQxXzEyYSIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDMzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pU3RhcnQxXzEyYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJE5hb21pX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtXaGF0IGRvIHlvdSBoYXZlIGluIG1pbmQ/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2hhdCBkbyB5b3UgaGF2ZSBpbiBtaW5kPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7V2hhdCBkbyB5b3UgaGF2ZSBpbiBtaW5kPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O0p1c3QgZ2l2ZSBtZSB0aW1lIHRvIHdvcmsgbXkgbWFnaWMmcXVvdDsgJnF1b3Q7eG9sa2tVb2xra0RvbGtrUm9sa2t1b2xra0JvbGtrU29sa2t4b2xra1JvbGtrR29sa2tsb2xra1lvbGtrcm9sa2tTb2xra2JvbGtrUCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtKdXN0IGdpdmUgbWUgdGltZSB0byB3b3JrIG15IG1hZ2ljJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtKdXN0IGdpdmUgbWUgdGltZSB0byB3b3JrIG15IG1hZ2ljJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtCdXQgeW914oCZbGwgc2VlIHNvb24gZW5vdWdoJnF1b3Q7ICZxdW90O0pvbGtrWG9sa2tKb2xra0xvbGtrZm9sa2tHb2xra1FvbGtrWm9sa2t5b2xra3VvbGtrT29sa2tMb2xra1lvbGtrUW9sa2tmb2xra1cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IHlvdeKAmWxsIHNlZSBzb29uIGVub3VnaCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7QnV0IHlvdeKAmWxsIHNlZSBzb29uIGVub3VnaCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Ym9sa2tEb2xra1BvbGtrdm9sa2tOb2xra3NvbGtreW9sa2tJJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjhzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyNib2xra0RvbGtrUG9sa2t2b2xra05vbGtrc29sa2t5b2xra0kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtBbHJpZ2h0LCBJIHRydXN0IHlvdSZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlTdGFydDFfMTNhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QWxyaWdodCwgSSB0cnVzdCB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taVN0YXJ0MV8xM2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjY3IiBuYW1lPSJOYW9taVN0YXJ0MV8xM2EiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCwzMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRTdGF0ZSAgPSAmcXVvdDtOYW9taVN0YXJ0MV8xM2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7QWxyaWdodCwgSSB0cnVzdCB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbHJpZ2h0LCBJIHRydXN0IHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7QWxyaWdodCwgSSB0cnVzdCB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7R29sa2t3b2xra3pvbGtrYm9sa2t6b2xra21vbGtrSW9sa2t2JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyNHb2xra3dvbGtrem9sa2tib2xra3pvbGtrbW9sa2tJb2xra3YmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtKdXN0IGtlZXAgbWUgdXBkYXRlZCwgb2theT8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O05hb21pU3RhcnQxXzE0YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0p1c3Qga2VlcCBtZSB1cGRhdGVkLCBva2F5PyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O05hb21pU3RhcnQxXzE0YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNjgiIG5hbWU9Ik5hb21pU3RhcnQxXzE0YSIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDMzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pU3RhcnQxXzE0YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJE5hb21pX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtKdXN0IGtlZXAgbWUgdXBkYXRlZCwgb2theT8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtKdXN0IGtlZXAgbWUgdXBkYXRlZCwgb2theT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0p1c3Qga2VlcCBtZSB1cGRhdGVkLCBva2F5PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O0kgd2lsbCZxdW90OyAmcXVvdDtXb2xra1ZvbGtrcW9sa2tEb2xra0lvbGtrdm9sa2t1b2xra0NvbGtrT29sa2tlb2xra1BvbGtrb29sa2tWb2xra3RvbGtrTm9sa2tsJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgd2lsbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7SSB3aWxsJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMXMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfd2luay53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7TmFvbWkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfd2luay53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAyLjFzJmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDvwn5iJJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRTdGF0ZSA9ICZxdW90O05hb21pU3RhcnQ3YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICROYW9taV9sYXN0X2hvdXIgPSAmcXVvdDswODozNyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICROYW9taV9jaGF0ID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzA4OjM3JnF1b3Q7Jmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtvZmZsaW5lLXRleHQmcXVvdDsmZ3Q7TmFvbWkgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjFzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVDaGF0M18xJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMXMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SG9uZXksIEnigJltIHNvcnJ5JnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMXMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNjkiIG5hbWU9Ik5hb21pU3RhcnQxXzEyYiIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwzMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRTdGF0ZSAgPSAmcXVvdDtOYW9taVN0YXJ0MV8xMmImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhpcyBoYXMgbm90aGluZyB0byBkbyB3aXRoIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoaXMgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1RoaXMgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtPaCwgSSBkaXNhZ3JlZSZxdW90OyAmcXVvdDtCb2xra2lvbGtrTW9sa2tkb2xra0dvbGtrUG9sa2trb2xra1FvbGtrUG9sa2tob2xra0JvbGtrbG9sa2tTb2xra0JvbGtrUG9sa2tuJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09oLCBJIGRpc2FncmVlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtPaCwgSSBkaXNhZ3JlZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7QW55dGhpbmcgaW52b2x2aW5nIG15IGJlc3QgZnJpZW5kIGhhcyBldmVyeXRoaW5nIHRvIGRvIHdpdGggbWUmcXVvdDsgJnF1b3Q7eG9sa2tZb2xra3hvbGtrYm9sa2tub2xra29vbGtrQW9sa2tTb2xra2ZvbGtrTW9sa2tYb2xra2hvbGtrYm9sa2tib2xra25vbGtrTyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbnl0aGluZyBpbnZvbHZpbmcgbXkgYmVzdCBmcmllbmQgaGFzIGV2ZXJ5dGhpbmcgdG8gZG8gd2l0aCBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7QW55dGhpbmcgaW52b2x2aW5nIG15IGJlc3QgZnJpZW5kIGhhcyBldmVyeXRoaW5nIHRvIGRvIHdpdGggbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O0nigJl2ZSBrbm93biBoZXIgZmFyIGxvbmdlciB0aGFuIHlvdSBoYXZlJnF1b3Q7ICZxdW90O0VvbGtrdm9sa2tUb2xra1VvbGtrV29sa2t0b2xra2FvbGtrVG9sa2txb2xra2FvbGtrSG9sa2thb2xra1pvbGtrbm9sa2tKb2xra1kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmXZlIGtub3duIGhlciBmYXIgbG9uZ2VyIHRoYW4geW91IGhhdmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0nigJl2ZSBrbm93biBoZXIgZmFyIGxvbmdlciB0aGFuIHlvdSBoYXZlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtCdXQgaGV5LCB5b3XigJlsbCB0aGFuayBtZSBldmVudHVhbGx5JnF1b3Q7ICZxdW90O0ZvbGtrem9sa2tub2xra3JvbGtreG9sa2tRb2xra1FvbGtrWW9sa2tlb2xra3JvbGtrWW9sa2t5b2xra3VvbGtrV29sa2t4b2xra04mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IGhleSwgeW914oCZbGwgdGhhbmsgbWUgZXZlbnR1YWxseSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7QnV0IGhleSwgeW914oCZbGwgdGhhbmsgbWUgZXZlbnR1YWxseSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7VGhhbmtzIHRvIG1lLCB5b3VyIGRhcmtlc3QgZmFudGFzaWVzIHdpbGwgY29tZSB0cnVlJnF1b3Q7ICZxdW90O0pvbGtrY29sa2t4b2xra2RvbGtrVm9sa2t4b2xra2JvbGtram9sa2tqb2xra0JvbGtrcG9sa2tXb2xra3NvbGtram9sa2tTb2xra3cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhbmtzIHRvIG1lLCB5b3VyIGRhcmtlc3QgZmFudGFzaWVzIHdpbGwgY29tZSB0cnVlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtUaGFua3MgdG8gbWUsIHlvdXIgZGFya2VzdCBmYW50YXNpZXMgd2lsbCBjb21lIHRydWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1RvbGtrQm9sa2t4b2xra0pvbGtrcG9sa2tKb2xra0FvbGtrdCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNy4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsjVG9sa2tCb2xra3hvbGtrSm9sa2twb2xra0pvbGtrQW9sa2t0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SeKAmW0gZG9uZSB0YWxraW5nIHRvIHlvdSZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlTdGFydDFfMTNiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SeKAmW0gZG9uZSB0YWxraW5nIHRvIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O05hb21pU3RhcnQxXzEzYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNzAiIG5hbWU9Ik5hb21pU3RhcnQxXzEzYiIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSwzMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRTdGF0ZSAgPSAmcXVvdDtOYW9taVN0YXJ0MV8xM2ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SeKAmW0gZG9uZSB0YWxraW5nIHRvIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJltIGRvbmUgdGFsa2luZyB0byB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0nigJltIGRvbmUgdGFsa2luZyB0byB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfd2luay53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7TmFvbWkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfd2luay53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDvwn5iJJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRTdGF0ZSA9ICZxdW90O05hb21pU3RhcnQ3YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICROYW9taV9sYXN0X2hvdXIgPSAmcXVvdDswODozNyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICROYW9taV9jaGF0ID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzA4OjM3JnF1b3Q7Jmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtvZmZsaW5lLXRleHQmcXVvdDsmZ3Q7TmFvbWkgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVDaGF0M18xJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SG9uZXksIEnigJltIHNvcnJ5JnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNzEiIG5hbWU9Ik5hb21pQ2hhdEVwMl8xXzEiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCwzNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O05hb21pJnF1b3Q7ICZxdW90O0hleSwgaXTigJlzIG1lIGFnYWluLi4uJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZXksIGl04oCZcyBtZSBhZ2Fpbi4uLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7SGV5LCBpdOKAmXMgbWUgYWdhaW4uLi4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtlb2xra1JvbGtrZW9sa2tSb2xra0xvbGtrTG9sa2tNb2xra2QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I2VvbGtrUm9sa2tlb2xra1JvbGtrTG9sa2tMb2xra01vbGtrZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O05hb21pLCB3aGF0IGRvIHlvdSB3YW50IG5vdz8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O05hb21pQ2hhdEVwMl8xXzImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtOYW9taSwgd2hhdCBkbyB5b3Ugd2FudCBub3c/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlDaGF0RXAyXzFfMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI3MiIgbmFtZT0iTmFvbWlDaGF0RXAyXzFfMiIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDM0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pQ2hhdEVwMl8xXzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TmFvbWksIHdoYXQgZG8geW91IHdhbnQgbm93PyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05hb21pLCB3aGF0IGRvIHlvdSB3YW50IG5vdz8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O05hb21pLCB3aGF0IGRvIHlvdSB3YW50IG5vdz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtJIGFzc3VtZSB5b3XigJl2ZSBoZWFyZCZxdW90OyAmcXVvdDtwb2xra2dvbGtreG9sa2tOb2xra2pvbGtrSG9sa2tWb2xra0RvbGtrRm9sa2twb2xra1lvbGtrV29sa2t3b2xra1lvbGtrRW9sa2tiJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgYXNzdW1lIHlvdeKAmXZlIGhlYXJkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtJIGFzc3VtZSB5b3XigJl2ZSBoZWFyZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7UG9sa2tYb2xra29vbGtrc29sa2tQb2xra2hvbGtrQ29sa2tpJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyNQb2xra1hvbGtrb29sa2tzb2xra1BvbGtraG9sa2tDb2xra2kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtIZWFyZCB3aGF0PyZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlDaGF0RXAyXzFfM2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtIZWFyZCB3aGF0PyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O05hb21pQ2hhdEVwMl8xXzNhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I1BvbGtrWG9sa2tvb2xra3NvbGtrUG9sa2tob2xra0NvbGtraSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoYXQgeW914oCZcmUgZ29pbmcgb3V0IHRvIGEgbmlnaHRjbHViIHRvbW9ycm93PyZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlDaGF0RXAyXzFfM2ImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaGF0IHlvdeKAmXJlIGdvaW5nIG91dCB0byBhIG5pZ2h0Y2x1YiB0b21vcnJvdz8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taUNoYXRFcDJfMV8zYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNzMiIG5hbWU9Ik5hb21pQ2hhdEVwMl8xXzNhIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMzQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgID0gJnF1b3Q7TmFvbWlDaGF0RXAyXzFfM2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SGVhcmQgd2hhdD8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZWFyZCB3aGF0PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7SGVhcmQgd2hhdD8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtUaGF0IHdl4oCZcmUgZ29pbmcgdG8gYSBuaWdodGNsdWIgdG9tb3Jyb3cmcXVvdDsgJnF1b3Q7T29sa2tyb2xra2pvbGtrQ29sa2tnb2xra3pvbGtrSG9sa2t6b2xra1ZvbGtrSW9sa2tCb2xra1BvbGtrdW9sa2tVb2xra0JvbGtreSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGF0IHdl4oCZcmUgZ29pbmcgdG8gYSBuaWdodGNsdWIgdG9tb3Jyb3cmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1RoYXQgd2XigJlyZSBnb2luZyB0byBhIG5pZ2h0Y2x1YiB0b21vcnJvdyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7dm9sa2tSb2xra2tvbGtrVW9sa2tJb2xra0xvbGtrV29sa2tCJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjZzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyN2b2xra1JvbGtra29sa2tVb2xra0lvbGtrTG9sa2tXb2xra0ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZZWFoLCBBbm5pZSBhbHJlYWR5IHRvbGQgbWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O05hb21pQ2hhdEVwMl8xXzQmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZZWFoLCBBbm5pZSBhbHJlYWR5IHRvbGQgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taUNoYXRFcDJfMV80JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI3NCIgbmFtZT0iTmFvbWlDaGF0RXAyXzFfM2IiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwzNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRTdGF0ZSAgPSAmcXVvdDtOYW9taUNoYXRFcDJfMV8zYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJE5hb21pX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGF0IHlvdeKAmXJlIGdvaW5nIG91dCB0byBhIG5pZ2h0Y2x1YiB0b21vcnJvdz8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGF0IHlvdeKAmXJlIGdvaW5nIG91dCB0byBhIG5pZ2h0Y2x1YiB0b21vcnJvdz8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1RoYXQgeW914oCZcmUgZ29pbmcgb3V0IHRvIGEgbmlnaHRjbHViIHRvbW9ycm93PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtOb2xra0JvbGtrSW9sa2tIb2xra2VvbGtrRG9sa2twb2xra1omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I05vbGtrQm9sa2tJb2xra0hvbGtrZW9sa2tEb2xra3BvbGtrWiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1llYWgsIEFubmllIGFscmVhZHkgdG9sZCBtZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlDaGF0RXAyXzFfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llYWgsIEFubmllIGFscmVhZHkgdG9sZCBtZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O05hb21pQ2hhdEVwMl8xXzQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjc1IiBuYW1lPSJOYW9taUNoYXRFcDJfMV80IiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsMzQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgID0gJnF1b3Q7TmFvbWlDaGF0RXAyXzFfNCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJE5hb21pX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZZWFoLCBBbm5pZSBhbHJlYWR5IHRvbGQgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLCBBbm5pZSBhbHJlYWR5IHRvbGQgbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1llYWgsIEFubmllIGFscmVhZHkgdG9sZCBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtXb2xra3hvbGtrZG9sa2tob2xra3dvbGtrU29sa2t5b2xra2QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I1dvbGtreG9sa2tkb2xra2hvbGtrd29sa2tTb2xra3lvbGtrZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1NvIHdoYXQgYWJvdXQgaXQ/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taUNoYXRFcDJfMV81JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7U28gd2hhdCBhYm91dCBpdD8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taUNoYXRFcDJfMV81JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI3NiIgbmFtZT0iTmFvbWlDaGF0RXAyXzFfNSIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDM0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pQ2hhdEVwMl8xXzUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7U28gd2hhdCBhYm91dCBpdD8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTbyB3aGF0IGFib3V0IGl0PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7U28gd2hhdCBhYm91dCBpdD8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtXZWxsLCBJIHRoaW5rIHlvdSBhbHJlYWR5IGtub3cgd2hhdCBJ4oCZbSBnb2luZyB0byBzYXkmcXVvdDsgJnF1b3Q7SW9sa2tPb2xra3RvbGtrY29sa2tob2xra29vbGtrTW9sa2tKb2xra2lvbGtrUG9sa2twb2xra2dvbGtrcG9sa2thb2xra2NvbGtreiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZWxsLCBJIHRoaW5rIHlvdSBhbHJlYWR5IGtub3cgd2hhdCBJ4oCZbSBnb2luZyB0byBzYXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1dlbGwsIEkgdGhpbmsgeW91IGFscmVhZHkga25vdyB3aGF0IEnigJltIGdvaW5nIHRvIHNheSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMnMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7QnV0IHlvdSBzdGlsbCBoYXZlIHRpbWUgdG8gdGFrZSBtZSB1cCBvbiBteSBvZmZlciZxdW90OyAmcXVvdDtCb2xra3hvbGtrZW9sa2tYb2xra0NvbGtrc29sa2tnb2xra0FvbGtrQW9sa2tLb2xra2pvbGtrV29sa2tFb2xra2lvbGtrY29sa2tyJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCB5b3Ugc3RpbGwgaGF2ZSB0aW1lIHRvIHRha2UgbWUgdXAgb24gbXkgb2ZmZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0J1dCB5b3Ugc3RpbGwgaGF2ZSB0aW1lIHRvIHRha2UgbWUgdXAgb24gbXkgb2ZmZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O1lvdSBqdXN0IG5lZWQgdG8gbGV0IG1lIGJlIHlvdXIgZmFpcnkgZ29kbW90aGVyJnF1b3Q7ICZxdW90O2lvbGtram9sa2tXb2xra3VvbGtrZm9sa2tib2xra3hvbGtrTm9sa2tRb2xra3NvbGtrWW9sa2tTb2xra2FvbGtreG9sa2tOb2xra04mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGp1c3QgbmVlZCB0byBsZXQgbWUgYmUgeW91ciBmYWlyeSBnb2Rtb3RoZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1lvdSBqdXN0IG5lZWQgdG8gbGV0IG1lIGJlIHlvdXIgZmFpcnkgZ29kbW90aGVyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDUuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtBIGZhaXJ5IGdvZG1vdGhlciB3aG/igJlsbCBoZWxwIHlvdXIgd2lsZGVzdCBkZXNpcmVzIGNvbWUgdHJ1ZSZxdW90OyAmcXVvdDtob2xra2VvbGtrYm9sa2tMb2xra3lvbGtrVG9sa2tVb2xra21vbGtrQW9sa2tRb2xra0pvbGtrUG9sa2trb2xra3dvbGtrUW9sa2tzJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0EgZmFpcnkgZ29kbW90aGVyIHdob+KAmWxsIGhlbHAgeW91ciB3aWxkZXN0IGRlc2lyZXMgY29tZSB0cnVlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtBIGZhaXJ5IGdvZG1vdGhlciB3aG/igJlsbCBoZWxwIHlvdXIgd2lsZGVzdCBkZXNpcmVzIGNvbWUgdHJ1ZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7WG9sa2t5b2xra1FvbGtra29sa2thb2xra1NvbGtrWW9sa2tpJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA3LjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyNYb2xra3lvbGtrUW9sa2trb2xra2FvbGtrU29sa2tZb2xra2kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3Uga25vdywgd2hlbiB5b3UgcHV0IGl0IGxpa2UgdGhhdCwgaXQgZG9lc27igJl0IHNvdW5kIHNvIGJhZCZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlDaGF0RXAyXzFfNmEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3Uga25vdywgd2hlbiB5b3UgcHV0IGl0IGxpa2UgdGhhdCwgaXQgZG9lc27igJl0IHNvdW5kIHNvIGJhZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O05hb21pQ2hhdEVwMl8xXzZhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I1hvbGtreW9sa2tRb2xra2tvbGtrYW9sa2tTb2xra1lvbGtraSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0xpa2UgSSBzYWlkLCBJ4oCZbSBub3QgaW50ZXJlc3RlZCZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlDaGF0RXAyXzFfNmImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtMaWtlIEkgc2FpZCwgSeKAmW0gbm90IGludGVyZXN0ZWQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taUNoYXRFcDJfMV82YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNzciIG5hbWU9Ik5hb21pQ2hhdEVwMl8xXzZhIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMzQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgID0gJnF1b3Q7TmFvbWlDaGF0RXAyXzFfNmEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJG5hb21pX29mZmVyID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICROYW9taV9ub3Rlcy5wdXNoKCZxdW90O1NoZSB0ZXh0ZWQgbWUgYWdhaW4gdG8gb2ZmZXIgaGVyIGhlbHAgaW4gbWFraW5nIHRoZSBmYW50YXN5IGhhcHBlbiwgYW5kIEkgZGVjaWRlZCB0byBhY2NlcHQuJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdSBrbm93LCB3aGVuIHlvdSBwdXQgaXQgbGlrZSB0aGF0LCBpdCBkb2VzbuKAmXQgc291bmQgc28gYmFkJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGtub3csIHdoZW4geW91IHB1dCBpdCBsaWtlIHRoYXQsIGl0IGRvZXNu4oCZdCBzb3VuZCBzbyBiYWQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1lvdSBrbm93LCB3aGVuIHlvdSBwdXQgaXQgbGlrZSB0aGF0LCBpdCBkb2VzbuKAmXQgc291bmQgc28gYmFkJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3RvbGtrcG9sa2thb2xra2ZvbGtrSW9sa2tPb2xra2ZvbGtrdSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsjdG9sa2twb2xra2FvbGtrZm9sa2tJb2xra09vbGtrZm9sa2t1JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QWxyaWdodCwgeW914oCZdmUgY29udmluY2VkIG1lLiBMZXTigJlzIHNlZSB3aGF0IHlvdeKAmXZlIGdvdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlDaGF0RXAyXzFfN2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtBbHJpZ2h0LCB5b3XigJl2ZSBjb252aW5jZWQgbWUuIExldOKAmXMgc2VlIHdoYXQgeW914oCZdmUgZ290JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlDaGF0RXAyXzFfN2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjc4IiBuYW1lPSJOYW9taUNoYXRFcDJfMV82YiIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDM0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pQ2hhdEVwMl8xXzZiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkTmFvbWlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRuYW9taV9lbmVteSA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkTmFvbWlfbm90ZXMucHVzaCgmcXVvdDtOYW9taSB0ZXh0ZWQgbWUgYWdhaW4gdG8gb2ZmZXIgaGVyIGhlbHAgaW4gbWFraW5nIHRoZSBmYW50YXN5IGhhcHBlbiwgYnV0IEkgdHVybmVkIGhlciBkb3duIG9uY2UgbW9yZS4mcXVvdDspJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TGlrZSBJIHNhaWQsIEnigJltIG5vdCBpbnRlcmVzdGVkJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGlrZSBJIHNhaWQsIEnigJltIG5vdCBpbnRlcmVzdGVkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtMaWtlIEkgc2FpZCwgSeKAmW0gbm90IGludGVyZXN0ZWQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7eW9sa2tGb2xra2RvbGtrS29sa2t6b2xra1BvbGtrSW9sa2t5JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyN5b2xra0ZvbGtrZG9sa2tLb2xra3pvbGtrUG9sa2tJb2xra3kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGlzIGlzIGJldHdlZW4gQW5uaWUgYW5kIG1lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taUNoYXRFcDJfMV83YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoaXMgaXMgYmV0d2VlbiBBbm5pZSBhbmQgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taUNoYXRFcDJfMV83YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNzkiIG5hbWU9Ik5hb21pQ2hhdEVwMl8xXzdhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDM0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pQ2hhdEVwMl8xXzdhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkTmFvbWlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0FscmlnaHQsIHlvdeKAmXZlIGNvbnZpbmNlZCBtZS4gTGV04oCZcyBzZWUgd2hhdCB5b3XigJl2ZSBnb3QmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbHJpZ2h0LCB5b3XigJl2ZSBjb252aW5jZWQgbWUuIExldOKAmXMgc2VlIHdoYXQgeW914oCZdmUgZ290JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtBbHJpZ2h0LCB5b3XigJl2ZSBjb252aW5jZWQgbWUuIExldOKAmXMgc2VlIHdoYXQgeW914oCZdmUgZ290JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7WW91IHdvbuKAmXQgcmVncmV0IHRoaXMsICRuYW1lJnF1b3Q7ICZxdW90O1JvbGtrQm9sa2tNb2xra1RvbGtrc29sa2tsb2xra3ZvbGtreW9sa2tOb2xra2FvbGtrdW9sa2tBb2xra0tvbGtreW9sa2tJb2xra1kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IHdvbuKAmXQgcmVncmV0IHRoaXMsICRuYW1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtZb3Ugd29u4oCZdCByZWdyZXQgdGhpcywgJG5hbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Tm9sa2tzb2xra2xvbGtrZW9sa2tjb2xra2dvbGtrc29sa2txJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjRzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyNOb2xra3NvbGtrbG9sa2tlb2xra2NvbGtrZ29sa2tzb2xra3EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtXZSYjMzk7bGwgc2VlLi4uJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taUNoYXRFcDJfMV84YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1dlJiMzOTtsbCBzZWUuLi4mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taUNoYXRFcDJfMV84YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyODAiIG5hbWU9Ik5hb21pQ2hhdEVwMl8xXzdiIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDM0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pQ2hhdEVwMl8xXzdiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkTmFvbWlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RoaXMgaXMgYmV0d2VlbiBBbm5pZSBhbmQgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGlzIGlzIGJldHdlZW4gQW5uaWUgYW5kIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtUaGlzIGlzIGJldHdlZW4gQW5uaWUgYW5kIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O05vbGtrVW9sa2twb2xra0dvbGtrbW9sa2tqb2xra0lvbGtrYiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsjTm9sa2tVb2xra3BvbGtrR29sa2ttb2xra2pvbGtrSW9sa2tiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SXQgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCB5b3UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O05hb21pQ2hhdEVwMl8xXzhiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SXQgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taUNoYXRFcDJfMV84YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyODEiIG5hbWU9Ik5hb21pQ2hhdEVwMl8xXzhhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMzYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgID0gJnF1b3Q7TmFvbWlDaGF0RXAyXzFfOGEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7V2XigJlsbCBzZWUuLi4mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZeKAmWxsIHNlZS4uLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7V2XigJlsbCBzZWUuLi4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtPaCwgeW914oCZbGwgc2VlIHdoYXQgSeKAmW0gY2FwYWJsZSBvZiZxdW90OyAmcXVvdDtHb2xra2ZvbGtrWG9sa2tab2xra1NvbGtrRm9sa2tib2xra29vbGtreW9sa2t0b2xra09vbGtrRW9sa2t6b2xra2NvbGtrZG9sa2tDJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09oLCB5b3XigJlsbCBzZWUgd2hhdCBJ4oCZbSBjYXBhYmxlIG9mJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtPaCwgeW914oCZbGwgc2VlIHdoYXQgSeKAmW0gY2FwYWJsZSBvZiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjZzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2NvbmZpZGVuY2Uud2VicCZxdW90OyB0cnVlICZxdW90O05hb21pJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2NvbmZpZGVuY2Uud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2NoYXQgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuNnMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuNnMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SGV5IGhvbmV5LCBqdXN0IGdvdCBob21lJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O/CfmI8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlID0gJnF1b3Q7TmFvbWlDaGF0RXAyXzFfOGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkTmFvbWlfbGFzdF9ob3VyID0gJnF1b3Q7MTc6NDYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkTmFvbWlfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDsxNzo0NiZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7b2ZmbGluZS10ZXh0JnF1b3Q7Jmd0O05hb21pIGlzIG9mZmxpbmUmbHQ7L2RpdiZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjgyIiBuYW1lPSJOYW9taUNoYXRFcDJfMV84YiIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDM2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pQ2hhdEVwMl8xXzhiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkTmFvbWlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0l0IGhhcyBub3RoaW5nIHRvIGRvIHdpdGggeW91JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXQgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0l0IGhhcyBub3RoaW5nIHRvIGRvIHdpdGggeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7WW914oCZcmUgYWJzb2x1dGVseSBpbnN1ZmZlcmFibGUmcXVvdDsgJnF1b3Q7Vm9sa2t6b2xra3lvbGtrTG9sa2thb2xra3lvbGtrdG9sa2tVb2xra0JvbGtraG9sa2tKb2xra3pvbGtrcW9sa2tEb2xra0dvbGtrdSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3XigJlyZSBhYnNvbHV0ZWx5IGluc3VmZmVyYWJsZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7WW914oCZcmUgYWJzb2x1dGVseSBpbnN1ZmZlcmFibGUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4ycyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O1RoYXTigJlzIHdoeSBJ4oCZdmUgbmV2ZXIgbGlrZWQgeW91JnF1b3Q7ICZxdW90O3pvbGtrbm9sa2trb2xra2dvbGtrcG9sa2txb2xra1lvbGtrV29sa2tXb2xra0FvbGtrYm9sa2tab2xra0hvbGtrZG9sa2tIb2xra0ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhdOKAmXMgd2h5IEnigJl2ZSBuZXZlciBsaWtlZCB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1RoYXTigJlzIHdoeSBJ4oCZdmUgbmV2ZXIgbGlrZWQgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt0b2xra3pvbGtrc29sa2tHb2xra2VvbGtrUG9sa2t5b2xra2kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuNHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I3RvbGtrem9sa2tzb2xra0dvbGtrZW9sa2tQb2xra3lvbGtraSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0xpa2V3aXNlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taUNoYXRFcDJfMV85JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7TGlrZXdpc2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taUNoYXRFcDJfMV85JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI4MyIgbmFtZT0iTmFvbWlDaGF0RXAyXzFfOSIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDM2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pQ2hhdEVwMl8xXzkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TGlrZXdpc2UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtMaWtld2lzZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7TGlrZXdpc2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtFaXRoZXIgd2F5LCBJ4oCZbGwgZG8gd2hhdGV2ZXIgSSBuZWVkIHRvIGhhdmUgZnVuJnF1b3Q7ICZxdW90O2NvbGtrT29sa2tGb2xra2JvbGtrcG9sa2tvb2xra3NvbGtraG9sa2tzb2xra21vbGtrSG9sa2tPb2xra1pvbGtrbW9sa2tjb2xra04mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RWl0aGVyIHdheSwgSeKAmWxsIGRvIHdoYXRldmVyIEkgbmVlZCB0byBoYXZlIGZ1biZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7RWl0aGVyIHdheSwgSeKAmWxsIGRvIHdoYXRldmVyIEkgbmVlZCB0byBoYXZlIGZ1biZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7Q29uc2lkZXIgeW91cnNlbGYgd2FybmVkJnF1b3Q7ICZxdW90O0FvbGtrbm9sa2tJb2xra2lvbGtraW9sa2tLb2xra2tvbGtrQ29sa2tCb2xra3ZvbGtrQm9sa2tzb2xra2ZvbGtrd29sa2tHb2xra0MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Q29uc2lkZXIgeW91cnNlbGYgd2FybmVkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtDb25zaWRlciB5b3Vyc2VsZiB3YXJuZWQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi44cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9jb25maWRlbmNlLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtOYW9taSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9jb25maWRlbmNlLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDMuOHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjhzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjhzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hleSBob25leSwganVzdCBnb3QgaG9tZSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjhzJmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDvwn5iPJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRTdGF0ZSA9ICZxdW90O05hb21pQ2hhdEVwMl8xXzhhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RfaG91ciA9ICZxdW90OzE3OjQ2JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2NoYXQgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRob3VyID0gJnF1b3Q7MTc6NDYmcXVvdDsmZ3Q7Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O29mZmxpbmUtdGV4dCZxdW90OyZndDtOYW9taSBpcyBvZmZsaW5lJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI4NCIgbmFtZT0iTmFvbWlfbm90ZSIgdGFncz0ibm90ZXNpbiBub3Rob3VyIiBwb3NpdGlvbj0iNDc1LDM2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aGVhZGVyICZxdW90O05hb21pJnF1b3Q7ICZxdW90O05hb21pJnF1b3Q7ICZxdW90O05vdGVzJnF1b3Q7IHRydWUmZ3Q7Jmd0OwogICAgJmx0O2RpdiBpZD0mcXVvdDtwYWRkaW5nLWNvbnRhaW5lciZxdW90OyBjbGFzcz0mcXVvdDt0ZXh0X2JsYWNrJnF1b3Q7Jmd0OwogICAgICAgICZsdDtkaXYmZ3Q7LSBTaGXigJlzIEFubmll4oCZcyBiZXN0IGZyaWVuZCwgdGhleeKAmXZlIGtub3duIGVhY2ggb3RoZXIgc2luY2UgdGhleSB3ZXJlIGtpZHMuIE5hb21pIGhhcyBhbHdheXMgc2hvd24gc29tZSBob3N0aWxpdHkgdG93YXJkIG1lLCBhbmQgSeKAmXZlIGFsd2F5cyBjb25zaWRlcmVkIGhlciBhIGJhZCBpbmZsdWVuY2Ugb24gQW5uaWUuJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDtmb3IgX2kgcmFuZ2UgJE5hb21pX25vdGVzJmd0OyZndDsKICAgICAgICAgICAgJmx0O2RpdiBzdHlsZT0mcXVvdDttYXJnaW4tdG9wOiAxNnB4JnF1b3Q7Jmd0Oy0gX2kmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0Oy9mb3ImZ3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjg1IiBuYW1lPSJQaGlsbGlwc19jaGF0IiB0YWdzPSJtYXBwIG5vdGhvdXIiIHBvc2l0aW9uPSI2MDAsMzYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKLypyZWdpb24gRW1pbHkgY2hhdCovCiZsdDsmbHQ7aWYgJFBoaWxsaXBzX2NoYXQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2hlYWRlciAmcXVvdDtNci4gUGhpbGxpcHMmcXVvdDsgJnF1b3Q7UGhpbGxpcHMmcXVvdDsgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsgJFBoaWxsaXBzX3BhdXNlZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aGVhZGVyICZxdW90O01yLiBQaGlsbGlwcyZxdW90OyAmcXVvdDtQaGlsbGlwcyZxdW90OyAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyB0cnVlJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O21lc3NhZ2VfY29udGFpbmVyJnF1b3Q7Jmd0OwombHQ7Jmx0O2ZvciBfbGluZSByYW5nZSAkUGhpbGxpcHNfY2hhdExvZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmIF9saW5lLnR5cGUgPT0gMSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkIF9saW5lLnNlbmRlciBfbGluZS5tZXNzYWdlIF9saW5lLmF2YXRhciZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2VpZiBfbGluZS50eXBlID09IDImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bWVzc2FnZV9pbWcgX2xpbmUubWVzc2FnZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2VpZiBfbGluZS50eXBlID09IDMmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bWVzc2FnZV92aWRlbyBfbGluZS5tZXNzYWdlWzBdIF9saW5lLm1lc3NhZ2VbMV0mZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlaWYgX2xpbmUudHlwZSA9PSA0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VfZW1vamkgX2xpbmUubWVzc2FnZSBmYWxzZSBfbGluZS5zZW5kZXImZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0Oy9mb3ImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRQaGlsbGlwc19wYXVzZWQgPT0gZmFsc2UmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkUGhpbGxpcHNfY2hhdCA9PSB0cnVlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJFBoaWxsaXBzX2NoYXRTdGF0ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICZsdDtkaXYgQGlkPSZxdW90OyRQaGlsbGlwc19sYXN0SWQuc2xpY2UoMSkmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDtlbmQmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2NoYXRfYmFyJnF1b3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O2NvbnRlbnQmcXVvdDsmZ3Q7CiZsdDsmbHQ7aWYgJFBoaWxsaXBzX3BhdXNlZCA9PSB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJFBoaWxsaXBzX29wdGlvbnNbMF0mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bGluayAkUGhpbGxpcHNfb3B0aW9uc1swXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpbmNsdWRlICRQaGlsbGlwc19vcHRpb25zWzBdLnBhc3NhZ2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkUGhpbGxpcHNfb3B0aW9uc1sxXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICRQaGlsbGlwc19vcHRpb25zWzFdLnRleHQmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJFBoaWxsaXBzX29wdGlvbnNbMV0ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRQaGlsbGlwc19vcHRpb25zWzJdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJFBoaWxsaXBzX29wdGlvbnNbMl0udGV4dCZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkUGhpbGxpcHNfb3B0aW9uc1syXS5wYXNzYWdlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJFBoaWxsaXBzX29wdGlvbnNbM10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bGluayAkUGhpbGxpcHNfb3B0aW9uc1szXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpbmNsdWRlICRQaGlsbGlwc19vcHRpb25zWzNdLnBhc3NhZ2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7L2RpdiZndDsKJmx0OyZsdDt0aW1lZCAwLjJzJmd0OyZndDsKICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGxJbnN0YSgpOwogICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI4NiIgbmFtZT0iUGhpbGxpcHNTdGFydDEiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwzNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O0nigJltIGdvaW5nIHRvIG5lZWQgdGhlIHJldmVudWUgcmVwb3J0cyBieSBGcmlkYXkuIFlvdSBoYXZlIGZpdmUgZGF5cy4mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7UGhpbGxpcHMmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJltIGdvaW5nIHRvIG5lZWQgdGhlIHJldmVudWUgcmVwb3J0cyBieSBGcmlkYXkuIFlvdSBoYXZlIGZpdmUgZGF5cy4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0nigJltIGdvaW5nIHRvIG5lZWQgdGhlIHJldmVudWUgcmVwb3J0cyBieSBGcmlkYXkuIFlvdSBoYXZlIGZpdmUgZGF5cy4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtQaGlsbGlwcyZxdW90OyAmcXVvdDtJIHdhbnQgdGhlbSBjYXRlZ29yaXplZCBieSBzZWN0b3IgYW5kIHdpdGggcHJvamVjdGVkIGVzdGltYXRlcy4mcXVvdDsgJnF1b3Q7UG9sa2tib2xra2NvbGtrc29sa2tNb2xra1FvbGtrVm9sa2trb2xra09vbGtrbm9sa2tPb2xra0tvbGtrS29sa2ttb2xra1VvbGtrQSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1BoaWxsaXBzJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHdhbnQgdGhlbSBjYXRlZ29yaXplZCBieSBzZWN0b3IgYW5kIHdpdGggcHJvamVjdGVkIGVzdGltYXRlcy4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0kgd2FudCB0aGVtIGNhdGVnb3JpemVkIGJ5IHNlY3RvciBhbmQgd2l0aCBwcm9qZWN0ZWQgZXN0aW1hdGVzLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7cW9sa2twb2xra2NvbGtrTW9sa2tub2xra3dvbGtrcW9sa2tzJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjJzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdElkICA9ICZxdW90OyNxb2xra3BvbGtrY29sa2tNb2xra25vbGtrd29sa2txb2xra3MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtNci4gUGhpbGxpcHMsIEkganVzdCBnb3QgaGVyZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7UGhpbGxpcHNTdGFydDFfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O01yLiBQaGlsbGlwcywgSSBqdXN0IGdvdCBoZXJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7UGhpbGxpcHNTdGFydDFfMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI4NyIgbmFtZT0iUGhpbGxpcHNTdGFydDFfMiIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDM2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdFN0YXRlICA9ICZxdW90O1BoaWxsaXBzU3RhcnQxXzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRQaGlsbGlwc19sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TXIuIFBoaWxsaXBzLCBJIGp1c3QgZ290IGhlcmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtNci4gUGhpbGxpcHMsIEkganVzdCBnb3QgaGVyZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7TXIuIFBoaWxsaXBzLCBJIGp1c3QgZ290IGhlcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7ZW9sa2tib2xra29vbGtrWm9sa2tHb2xra0tvbGtrT29sa2t5JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdElkICA9ICZxdW90OyNlb2xra2JvbGtrb29sa2tab2xra0dvbGtrS29sa2tPb2xra3kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJ4oCZbSByZWFsbHkgbm90IHN1cmUgSSBjYW4gZ2F0aGVyIGFsbCB0aGUgaW5mb3JtYXRpb24gaW4ganVzdCBmaXZlIGRheXMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O1BoaWxsaXBzU3RhcnQxXzMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJ4oCZbSByZWFsbHkgbm90IHN1cmUgSSBjYW4gZ2F0aGVyIGFsbCB0aGUgaW5mb3JtYXRpb24gaW4ganVzdCBmaXZlIGRheXMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtQaGlsbGlwc1N0YXJ0MV8zJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI4OCIgbmFtZT0iUGhpbGxpcHNTdGFydDFfMyIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDM2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdFN0YXRlICA9ICZxdW90O1BoaWxsaXBzU3RhcnQxXzMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRQaGlsbGlwc19sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SeKAmW0gcmVhbGx5IG5vdCBzdXJlIEkgY2FuIGdhdGhlciBhbGwgdGhlIGluZm9ybWF0aW9uIGluIGp1c3QgZml2ZSBkYXlzJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gcmVhbGx5IG5vdCBzdXJlIEkgY2FuIGdhdGhlciBhbGwgdGhlIGluZm9ybWF0aW9uIGluIGp1c3QgZml2ZSBkYXlzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtJ4oCZbSByZWFsbHkgbm90IHN1cmUgSSBjYW4gZ2F0aGVyIGFsbCB0aGUgaW5mb3JtYXRpb24gaW4ganVzdCBmaXZlIGRheXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Sm9sa2txb2xra2xvbGtrRW9sa2tSb2xra2VvbGtrdW9sa2tTJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdElkICA9ICZxdW90OyNKb2xra3FvbGtrbG9sa2tFb2xra1JvbGtrZW9sa2t1b2xra1MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtMZXQgYWxvbmUgcHJlcGFyZSB0aGUgcmVwb3J0cyZxdW90OywgcGFzc2FnZTogJnF1b3Q7UGhpbGxpcHNTdGFydDFfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0xldCBhbG9uZSBwcmVwYXJlIHRoZSByZXBvcnRzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7UGhpbGxpcHNTdGFydDFfNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyODkiIG5hbWU9IlBoaWxsaXBzU3RhcnQxXzQiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsMzYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0U3RhdGUgID0gJnF1b3Q7UGhpbGxpcHNTdGFydDFfNCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJFBoaWxsaXBzX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtMZXQgYWxvbmUgcHJlcGFyZSB0aGUgcmVwb3J0cyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0xldCBhbG9uZSBwcmVwYXJlIHRoZSByZXBvcnRzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtMZXQgYWxvbmUgcHJlcGFyZSB0aGUgcmVwb3J0cyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O0kga25ldyB0aGlzIHdvdWxkIGhhcHBlbi4mcXVvdDsgJnF1b3Q7bW9sa2thb2xra01vbGtrTG9sa2t3b2xra25vbGtrem9sa2tWb2xra0tvbGtrbm9sa2tCb2xra3pvbGtrUW9sa2tKb2xra3ZvbGtrYyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1BoaWxsaXBzJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGtuZXcgdGhpcyB3b3VsZCBoYXBwZW4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtJIGtuZXcgdGhpcyB3b3VsZCBoYXBwZW4uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS43cyAmcXVvdDtQaGlsbGlwcyZxdW90OyAmcXVvdDtJIGRvbuKAmXQgdW5kZXJzdGFuZCB3aHkgeW91IHZvbHVudGVlcmVkIGlmIHRoZSBmaXJzdCB0aGluZyB5b3XigJlyZSBnb2luZyB0byBkbyBpcyBtYWtlIGV4Y3VzZXMuJnF1b3Q7ICZxdW90O1FvbGtrVG9sa2tQb2xra01vbGtrc29sa2t1b2xra1hvbGtrU29sa2tZb2xra1VvbGtrQ29sa2tKb2xra2ZvbGtrb29sa2trb2xra3gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtQaGlsbGlwcyZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBkb27igJl0IHVuZGVyc3RhbmQgd2h5IHlvdSB2b2x1bnRlZXJlZCBpZiB0aGUgZmlyc3QgdGhpbmcgeW914oCZcmUgZ29pbmcgdG8gZG8gaXMgbWFrZSBleGN1c2VzLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7SSBkb27igJl0IHVuZGVyc3RhbmQgd2h5IHlvdSB2b2x1bnRlZXJlZCBpZiB0aGUgZmlyc3QgdGhpbmcgeW914oCZcmUgZ29pbmcgdG8gZG8gaXMgbWFrZSBleGN1c2VzLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuM3MgJnF1b3Q7UGhpbGxpcHMmcXVvdDsgJnF1b3Q7TGV0IG1lIGJlIHZlcnkgY2xlYXI6IG1ha2Ugc3VyZSB5b3UgaGF2ZSB0aGlzIHJlYWR5IGJ5IEZyaWRheS4mcXVvdDsgJnF1b3Q7aW9sa2tSb2xra21vbGtrWm9sa2tKb2xra09vbGtrSG9sa2tMb2xra25vbGtrUW9sa2tRb2xra2dvbGtrR29sa2tJb2xra09vbGtrbCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1BoaWxsaXBzJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtMZXQgbWUgYmUgdmVyeSBjbGVhcjogbWFrZSBzdXJlIHlvdSBoYXZlIHRoaXMgcmVhZHkgYnkgRnJpZGF5LiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7TGV0IG1lIGJlIHZlcnkgY2xlYXI6IG1ha2Ugc3VyZSB5b3UgaGF2ZSB0aGlzIHJlYWR5IGJ5IEZyaWRheS4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNS42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O01ha2Ugc3VyZSB0aGF0IHJlcG9ydCBpcyBpbiBteSBpbmJveCBieSB0aGF0IGRheS4mcXVvdDsgJnF1b3Q7QW9sa2tJb2xra3JvbGtrWG9sa2tPb2xra2tvbGtrTG9sa2tQb2xra3NvbGtrdm9sa2tFb2xra0tvbGtra29sa2tzb2xra0pvbGtrdiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1BoaWxsaXBzJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtNYWtlIHN1cmUgdGhhdCByZXBvcnQgaXMgaW4gbXkgaW5ib3ggYnkgdGhhdCBkYXkuJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtNYWtlIHN1cmUgdGhhdCByZXBvcnQgaXMgaW4gbXkgaW5ib3ggYnkgdGhhdCBkYXkuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDcuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtQaGlsbGlwcyZxdW90OyAmcXVvdDtJZiB0aGF04oCZcyBub3QgdGhlIGNhc2UsIGNvbnNpZGVyIGxvb2tpbmcgZm9yIGEgbmV3IGpvYi4mcXVvdDsgJnF1b3Q7WG9sa2tqb2xra1hvbGtrUG9sa2twb2xra0FvbGtrbm9sa2tXb2xra09vbGtrQm9sa2ttb2xra0JvbGtrSW9sa2tsb2xra3pvbGtreiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1BoaWxsaXBzJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJZiB0aGF04oCZcyBub3QgdGhlIGNhc2UsIGNvbnNpZGVyIGxvb2tpbmcgZm9yIGEgbmV3IGpvYi4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0lmIHRoYXTigJlzIG5vdCB0aGUgY2FzZSwgY29uc2lkZXIgbG9va2luZyBmb3IgYSBuZXcgam9iLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA5LjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7UGhpbGxpcHMmcXVvdDsgJnF1b3Q7VGhpcyBpcyBhIHNlcmlvdXMgY29tcGFueSwgbm90IGEga2luZGVyZ2FydGVuLiZxdW90OyAmcXVvdDtHb2xra0ZvbGtrTG9sa2tKb2xra0VvbGtrVW9sa2tWb2xra29vbGtrY29sa2tmb2xra0RvbGtrd29sa2ttb2xra0JvbGtrdG9sa2tJJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7UGhpbGxpcHMmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoaXMgaXMgYSBzZXJpb3VzIGNvbXBhbnksIG5vdCBhIGtpbmRlcmdhcnRlbi4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O1RoaXMgaXMgYSBzZXJpb3VzIGNvbXBhbnksIG5vdCBhIGtpbmRlcmdhcnRlbi4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1JvbGtrS29sa2ttb2xra3hvbGtrQm9sa2tqb2xra2xvbGtrQiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMTAuNHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0SWQgID0gJnF1b3Q7I1JvbGtrS29sa2ttb2xra3hvbGtrQm9sa2tqb2xra2xvbGtrQiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1VuZGVyc3Rvb2QsIHNpci4gSeKAmWxsIGhhdmUgYWxsIHRoZSByZXBvcnRzIHJlYWR5IGJ5IEZyaWRheSZxdW90OywgcGFzc2FnZTogJnF1b3Q7UGhpbGxpcHNTdGFydDFfNWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtVbmRlcnN0b29kLCBzaXIuIEnigJlsbCBoYXZlIGFsbCB0aGUgcmVwb3J0cyByZWFkeSBieSBGcmlkYXkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtQaGlsbGlwc1N0YXJ0MV81YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdElkICA9ICZxdW90OyNSb2xra0tvbGtrbW9sa2t4b2xra0JvbGtram9sa2tsb2xra0ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJ4oCZbGwgZG8gd2hhdCBJIGNhbiwgc2lyJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtQaGlsbGlwc1N0YXJ0MV81YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0nigJlsbCBkbyB3aGF0IEkgY2FuLCBzaXImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtQaGlsbGlwc1N0YXJ0MV81YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyOTAiIG5hbWU9IlBoaWxsaXBzU3RhcnQxXzVhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDM2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdFN0YXRlICA9ICZxdW90O1BoaWxsaXBzU3RhcnQxXzVhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkUGhpbGxpcHNfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1VuZGVyc3Rvb2QsIHNpci4gSeKAmWxsIGhhdmUgYWxsIHRoZSByZXBvcnRzIHJlYWR5IGJ5IEZyaWRheSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1VuZGVyc3Rvb2QsIHNpci4gSeKAmWxsIGhhdmUgYWxsIHRoZSByZXBvcnRzIHJlYWR5IGJ5IEZyaWRheSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7VW5kZXJzdG9vZCwgc2lyLiBJ4oCZbGwgaGF2ZSBhbGwgdGhlIHJlcG9ydHMgcmVhZHkgYnkgRnJpZGF5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7UGhpbGxpcHMmcXVvdDsgJnF1b3Q7VGhhdOKAmXMgbW9yZSBsaWtlIGl0LiZxdW90OyAmcXVvdDtCb2xra3hvbGtrZm9sa2tlb2xra2xvbGtrUm9sa2trb2xra1lvbGtreG9sa2t4b2xra1BvbGtreW9sa2tvb2xra2dvbGtrR29sa2tSJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7UGhpbGxpcHMmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYXTigJlzIG1vcmUgbGlrZSBpdC4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O1RoYXTigJlzIG1vcmUgbGlrZSBpdC4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O0hhaWxleSB3aWxsIGJyaWVmIHlvdSBvbiB3aGF0IHdlIG5lZWQuJnF1b3Q7ICZxdW90O1VvbGtrSm9sa2tsb2xra09vbGtram9sa2t4b2xra0RvbGtreW9sa2t6b2xra1lvbGtrU29sa2tDb2xra21vbGtrQm9sa2tlb2xra2kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtQaGlsbGlwcyZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGFpbGV5IHdpbGwgYnJpZWYgeW91IG9uIHdoYXQgd2UgbmVlZC4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0hhaWxleSB3aWxsIGJyaWVmIHlvdSBvbiB3aGF0IHdlIG5lZWQuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS40cyAmcXVvdDtQaGlsbGlwcyZxdW90OyAmcXVvdDtJ4oCZbGwgdGVsbCBoZXIgdG8gZW1haWwgeW91IGFzIHNvb24gYXMgc2hlIGdldHMgdG8gdGhlIG9mZmljZS4mcXVvdDsgJnF1b3Q7WG9sa2tHb2xra09vbGtrWm9sa2tzb2xra05vbGtrRG9sa2tob2xra3RvbGtraW9sa2tlb2xra0RvbGtraW9sa2tSb2xra09vbGtraiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1BoaWxsaXBzJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbGwgdGVsbCBoZXIgdG8gZW1haWwgeW91IGFzIHNvb24gYXMgc2hlIGdldHMgdG8gdGhlIG9mZmljZS4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0nigJlsbCB0ZWxsIGhlciB0byBlbWFpbCB5b3UgYXMgc29vbiBhcyBzaGUgZ2V0cyB0byB0aGUgb2ZmaWNlLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7aW9sa2tmb2xra09vbGtrZm9sa2tlb2xra2VvbGtra29sa2tKJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjdzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdElkICA9ICZxdW90OyNpb2xra2ZvbGtrT29sa2tmb2xra2VvbGtrZW9sa2trb2xra0omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtVbmRlcnN0b29kJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtQaGlsbGlwc1N0YXJ0MV82JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VW5kZXJzdG9vZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O1BoaWxsaXBzU3RhcnQxXzYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjkxIiBuYW1lPSJQaGlsbGlwc1N0YXJ0MV81YiIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDM3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdFN0YXRlICA9ICZxdW90O1BoaWxsaXBzU3RhcnQxXzViJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkUGhpbGxpcHNfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0nigJlsbCBkbyB3aGF0IEkgY2FuLCBzaXImcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbGwgZG8gd2hhdCBJIGNhbiwgc2lyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtJ4oCZbGwgZG8gd2hhdCBJIGNhbiwgc2lyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7UGhpbGxpcHMmcXVvdDsgJnF1b3Q7Tm90IHdoYXQgeW91IGNhbiwgZG8gd2hhdCBuZWVkcyB0byBiZSBkb25lLiZxdW90OyAmcXVvdDtlb2xra1lvbGtrbW9sa2twb2xra1VvbGtrV29sa2tEb2xra1VvbGtrU29sa2tYb2xra0RvbGtraG9sa2t4b2xra2VvbGtrUm9sa2tZJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7UGhpbGxpcHMmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05vdCB3aGF0IHlvdSBjYW4sIGRvIHdoYXQgbmVlZHMgdG8gYmUgZG9uZS4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O05vdCB3aGF0IHlvdSBjYW4sIGRvIHdoYXQgbmVlZHMgdG8gYmUgZG9uZS4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O0kgZG9u4oCZdCB1bmRlcnN0YW5kIHBlb3BsZSBmcm9tIHlvdXIgZ2VuZXJhdGlvbi4mcXVvdDsgJnF1b3Q7SG9sa2tlb2xra3pvbGtrQW9sa2tPb2xra1NvbGtrVm9sa2tsb2xra3dvbGtrUG9sa2tDb2xra01vbGtrem9sa2thb2xra0FvbGtrYiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1BoaWxsaXBzJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGRvbuKAmXQgdW5kZXJzdGFuZCBwZW9wbGUgZnJvbSB5b3VyIGdlbmVyYXRpb24uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtJIGRvbuKAmXQgdW5kZXJzdGFuZCBwZW9wbGUgZnJvbSB5b3VyIGdlbmVyYXRpb24uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4zcyAmcXVvdDtQaGlsbGlwcyZxdW90OyAmcXVvdDtFdmVuIHdoZW4gdGhlaXIgam9iIGlzIG9uIHRoZSBsaW5lLCB0aGV5IHN0aWxsIGRvbuKAmXQgYWN0IHByb3Blcmx5LiZxdW90OyAmcXVvdDtqb2xra3hvbGtrcW9sa2tEb2xra09vbGtrUG9sa2tEb2xra3BvbGtrT29sa2tjb2xra1BvbGtrSW9sa2tHb2xra3VvbGtrVm9sa2tuJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7UGhpbGxpcHMmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0V2ZW4gd2hlbiB0aGVpciBqb2IgaXMgb24gdGhlIGxpbmUsIHRoZXkgc3RpbGwgZG9u4oCZdCBhY3QgcHJvcGVybHkuJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtFdmVuIHdoZW4gdGhlaXIgam9iIGlzIG9uIHRoZSBsaW5lLCB0aGV5IHN0aWxsIGRvbuKAmXQgYWN0IHByb3Blcmx5LiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNXMgJnF1b3Q7UGhpbGxpcHMmcXVvdDsgJnF1b3Q7SeKAmWxsIGhhdmUgSGFpbGV5IGVtYWlsIHlvdSB0aGUgZGV0YWlscyBhcyBzb29uIGFzIHNoZSBnZXRzIHRvIHRoZSBvZmZpY2UuJnF1b3Q7ICZxdW90O0VvbGtrZm9sa2tpb2xra1NvbGtrZG9sa2tKb2xra3FvbGtrWG9sa2tVb2xra0tvbGtrTG9sa2t2b2xra0JvbGtrbW9sa2tyb2xra0ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtQaGlsbGlwcyZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmWxsIGhhdmUgSGFpbGV5IGVtYWlsIHlvdSB0aGUgZGV0YWlscyBhcyBzb29uIGFzIHNoZSBnZXRzIHRvIHRoZSBvZmZpY2UuJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtJ4oCZbGwgaGF2ZSBIYWlsZXkgZW1haWwgeW91IHRoZSBkZXRhaWxzIGFzIHNvb24gYXMgc2hlIGdldHMgdG8gdGhlIG9mZmljZS4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2tvbGtrT29sa2t2b2xra1dvbGtrb29sa2tnb2xra0ZvbGtrWSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNy4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3RJZCAgPSAmcXVvdDsja29sa2tPb2xra3ZvbGtrV29sa2tvb2xra2dvbGtrRm9sa2tZJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VW5kZXJzdG9vZCZxdW90OywgcGFzc2FnZTogJnF1b3Q7UGhpbGxpcHNTdGFydDFfNiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1VuZGVyc3Rvb2QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtQaGlsbGlwc1N0YXJ0MV82JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI5MiIgbmFtZT0iUGhpbGxpcHNTdGFydDFfNiIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDM3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdFN0YXRlICA9ICZxdW90O1BoaWxsaXBzU3RhcnQxXzYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRQaGlsbGlwc19sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VW5kZXJzdG9vZCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1VuZGVyc3Rvb2QmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O1VuZGVyc3Rvb2QmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7VW5kZXJzdG9vZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0U3RhdGUgPSAmcXVvdDtQaGlsbGlwc1N0YXJ0NCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0X2hvdXIgPSAmcXVvdDswOTowMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0ID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzA5OjAzJnF1b3Q7Jmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtvZmZsaW5lLXRleHQmcXVvdDsmZ3Q7UGhpbGxpcHMgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzZXQgJFBoaWxsaXBzX25vdGVzLnB1c2goJnF1b3Q7SGUgdG9sZCBtZSB0aGF0IGlmIEkgZG9u4oCZdCBoYXZlIHRoZSByZXBvcnRzIGJ5IEZyaWRheSwgSeKAmWxsIGJlIGZpcmVkLiZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0hpICRuYW1lLCBNci4gUGhpbGxpcHMgYXNrZWQgbWUgdG8gc2VuZCB5b3UgdGhlIGxhc3QgcXVhcnRlcuKAmXMgcmVwb3J0IHNvIHlvdSBjYW4gdXNlIGl0IGFzIGEgcmVmZXJlbmNlJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRIYWlsZXlfdmlzaWJsZSA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjkzIiBuYW1lPSJQaGlsbGlwc19ub3RlIiB0YWdzPSJub3Rlc2luIG5vdGhvdXIiIHBvc2l0aW9uPSIzNTAsMzcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtoZWFkZXIgJnF1b3Q7TXIuIFBoaWxsaXBzJnF1b3Q7ICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O05vdGVzJnF1b3Q7IHRydWUmZ3Q7Jmd0OwogICAgJmx0O2RpdiBpZD0mcXVvdDtwYWRkaW5nLWNvbnRhaW5lciZxdW90OyBjbGFzcz0mcXVvdDt0ZXh0X2JsYWNrJnF1b3Q7Jmd0OwogICAgICAgICZsdDtkaXYmZ3Q7LSBIZeKAmXMgdGhlIG1hbmFnZXIgb2YgdGhlIGRlcGFydG1lbnQgSSB3b3JrIGluLCBhbmQgdGhlcmVmb3JlLCBteSBzdXBlcmlvci4gRXZlciBzaW5jZSBJIGpvaW5lZCB0aGUgY29tcGFueSBoZeKAmXMgdHJlYXRlZCBtZSBwb29ybHkuIEhl4oCZcyBub3QgYSBmcmllbmRseSBwZXJzb24sIGJ1dCBoZeKAmXMgZXNwZWNpYWxseSB0b3VnaCBvbiBtZS4mbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0O2ZvciBfaSByYW5nZSAkUGhpbGxpcHNfbm90ZXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IHN0eWxlPSZxdW90O21hcmdpbi10b3A6IDE2cHgmcXVvdDsmZ3Q7LSBfaSZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsmbHQ7L2ZvciZndDsmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyOTQiIG5hbWU9IlZhbmVzc2FfY2hhdCIgdGFncz0ibWFwcCBub3Rob3VyIiBwb3NpdGlvbj0iNDc1LDM3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7Ci8qcmVnaW9uIEVtaWx5IGNoYXQqLwombHQ7Jmx0O2lmICRWYW5lc3NhX2NoYXQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2hlYWRlciAmcXVvdDtWYW5lc3NhJnF1b3Q7ICZxdW90O1ZhbmVzc2EmcXVvdDsgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsgJFZhbmVzc2FfcGF1c2VkJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtoZWFkZXIgJnF1b3Q7VmFuZXNzYSZxdW90OyAmcXVvdDtWYW5lc3NhJnF1b3Q7ICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7bWVzc2FnZV9jb250YWluZXImcXVvdDsmZ3Q7CiZsdDsmbHQ7Zm9yIF9saW5lIHJhbmdlICRWYW5lc3NhX2NoYXRMb2cmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiBfbGluZS50eXBlID09IDEmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCBfbGluZS5zZW5kZXIgX2xpbmUubWVzc2FnZSBfbGluZS5hdmF0YXImZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlaWYgX2xpbmUudHlwZSA9PSAyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VfaW1nIF9saW5lLm1lc3NhZ2UmZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlaWYgX2xpbmUudHlwZSA9PSAzJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VfdmlkZW8gX2xpbmUubWVzc2FnZVswXSBfbGluZS5tZXNzYWdlWzFdJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZWlmIF9saW5lLnR5cGUgPT0gNCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDttZXNzYWdlX2Vtb2ppIF9saW5lLm1lc3NhZ2UgZmFsc2UgX2xpbmUuc2VuZGVyJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDsvZm9yJmd0OyZndDsKJmx0OyZsdDtpZiAkVmFuZXNzYV9wYXVzZWQgPT0gZmFsc2UmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkVmFuZXNzYV9jaGF0ID09IHRydWUmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkVmFuZXNzYV9jaGF0U3RhdGUmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAmbHQ7ZGl2IEBpZD0mcXVvdDskVmFuZXNzYV9sYXN0SWQuc2xpY2UoMSkmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDtlbmQmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2NoYXRfYmFyJnF1b3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O2NvbnRlbnQmcXVvdDsmZ3Q7CiZsdDsmbHQ7aWYgJFZhbmVzc2FfcGF1c2VkID09IHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkVmFuZXNzYV9vcHRpb25zWzBdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJFZhbmVzc2Ffb3B0aW9uc1swXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpbmNsdWRlICRWYW5lc3NhX29wdGlvbnNbMF0ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRWYW5lc3NhX29wdGlvbnNbMV0mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bGluayAkVmFuZXNzYV9vcHRpb25zWzFdLnRleHQmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJFZhbmVzc2Ffb3B0aW9uc1sxXS5wYXNzYWdlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJFZhbmVzc2Ffb3B0aW9uc1syXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICRWYW5lc3NhX29wdGlvbnNbMl0udGV4dCZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkVmFuZXNzYV9vcHRpb25zWzJdLnBhc3NhZ2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkVmFuZXNzYV9vcHRpb25zWzNdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJFZhbmVzc2Ffb3B0aW9uc1szXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpbmNsdWRlICRWYW5lc3NhX29wdGlvbnNbM10ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0O3RpbWVkIDAuMnMmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbEluc3RhKCk7CiAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjk1IiBuYW1lPSJWYW5lc3NhSW50cm8xIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsMzcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtWYW5lc3NhJnF1b3Q7ICZxdW90O0hleSAkbmFtZSwgaG934oCZcyBldmVyeXRoaW5nPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1ZhbmVzc2EmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hleSAkbmFtZSwgaG934oCZcyBldmVyeXRoaW5nPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtIZXkgJG5hbWUsIGhvd+KAmXMgZXZlcnl0aGluZz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtib2xra09vbGtrYm9sa2tTb2xra01vbGtrQm9sa2tyb2xra2UmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0SWQgID0gJnF1b3Q7I2JvbGtrT29sa2tib2xra1NvbGtrTW9sa2tCb2xra3JvbGtrZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2Ffb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VmFuZXNzYSwgaGV5LCB3aGF0IGEgc3VycHJpc2UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O1ZhbmVzc2FJbnRybzFfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1ZhbmVzc2EsIGhleSwgd2hhdCBhIHN1cnByaXNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7VmFuZXNzYUludHJvMV8yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjk2IiBuYW1lPSJWYW5lc3NhSW50cm8xXzIiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwzNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdFN0YXRlICA9ICZxdW90O1ZhbmVzc2FJbnRybzFfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkVmFuZXNzYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VmFuZXNzYSwgaGV5LCB3aGF0IGEgc3VycHJpc2UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1ZhbmVzc2EsIGhleSwgd2hhdCBhIHN1cnByaXNlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O1ZhbmVzc2EsIGhleSwgd2hhdCBhIHN1cnByaXNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2tvbGtrVm9sa2tub2xra2dvbGtrem9sa2tEb2xra2tvbGtrZSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2Ffb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3RJZCAgPSAmcXVvdDsja29sa2tWb2xra25vbGtrZ29sa2t6b2xra0RvbGtra29sa2tlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUbyB3aGF0IGRvIEkgb3dlIHRoZSBwbGVhc3VyZT8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O1ZhbmVzc2FJbnRybzFfMyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RvIHdoYXQgZG8gSSBvd2UgdGhlIHBsZWFzdXJlPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O1ZhbmVzc2FJbnRybzFfMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyOTciIG5hbWU9IlZhbmVzc2FJbnRybzFfMyIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDM3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0U3RhdGUgID0gJnF1b3Q7VmFuZXNzYUludHJvMV8zJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRWYW5lc3NhX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUbyB3aGF0IGRvIEkgb3dlIHRoZSBwbGVhc3VyZT8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RvIHdoYXQgZG8gSSBvd2UgdGhlIHBsZWFzdXJlPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtUbyB3aGF0IGRvIEkgb3dlIHRoZSBwbGVhc3VyZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtWYW5lc3NhJnF1b3Q7ICZxdW90O1NvLCBJIGhlYXJkIHlvdSB3YW50IHRvIHRyeSBuZXcgdGhpbmdzIHdpdGggQW5uaWUmcXVvdDsgJnF1b3Q7SG9sa2tjb2xra0JvbGtrQm9sa2txb2xra0pvbGtrRG9sa2tWb2xra0VvbGtreW9sa2trb2xra0NvbGtrRG9sa2tDb2xra0ZvbGtrQSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7VmFuZXNzYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U28sIEkgaGVhcmQgeW91IHdhbnQgdG8gdHJ5IG5ldyB0aGluZ3Mgd2l0aCBBbm5pZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtTbywgSSBoZWFyZCB5b3Ugd2FudCB0byB0cnkgbmV3IHRoaW5ncyB3aXRoIEFubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtUb2xra1hvbGtrQW9sa2tYb2xra3BvbGtrdG9sa2tlb2xra2gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0SWQgID0gJnF1b3Q7I1RvbGtrWG9sa2tBb2xra1hvbGtrcG9sa2t0b2xra2VvbGtraCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2Ffb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7ZmZzLCBkb2VzIGV2ZXJ5b25lIGluIGhlciBvZmZpY2Uga25vdz8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O1ZhbmVzc2FJbnRybzFfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O2ZmcywgZG9lcyBldmVyeW9uZSBpbiBoZXIgb2ZmaWNlIGtub3c/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7VmFuZXNzYUludHJvMV80JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI5OCIgbmFtZT0iVmFuZXNzYUludHJvMV80IiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMzcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRTdGF0ZSAgPSAmcXVvdDtWYW5lc3NhSW50cm8xXzQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJFZhbmVzc2FfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O2ZmcywgZG9lcyBldmVyeW9uZSBpbiBoZXIgb2ZmaWNlIGtub3c/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtmZnMsIGRvZXMgZXZlcnlvbmUgaW4gaGVyIG9mZmljZSBrbm93PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtmZnMsIGRvZXMgZXZlcnlvbmUgaW4gaGVyIG9mZmljZSBrbm93PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O1ZhbmVzc2EmcXVvdDsgJnF1b3Q7TG9sLCBubyZxdW90OyAmcXVvdDtib2xra29vbGtrbG9sa2t1b2xra0dvbGtrSm9sa2txb2xra2JvbGtrTW9sa2tDb2xra2FvbGtrZG9sa2tib2xra2JvbGtrSG9sa2txJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtWYW5lc3NhJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtMb2wsIG5vJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O0xvbCwgbm8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O1ZhbmVzc2EmcXVvdDsgJnF1b3Q7WW91IGtub3cgdGhlIHRocmVlIG9mIHVzIGFyZSBjbG9zZSBmcmllbmRzJnF1b3Q7ICZxdW90O0pvbGtrc29sa2tIb2xra3JvbGtrbm9sa2t4b2xra1RvbGtrQW9sa2tab2xra2xvbGtrUm9sa2tFb2xra2lvbGtrRG9sa2tpb2xra00mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1ZhbmVzc2EmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBrbm93IHRoZSB0aHJlZSBvZiB1cyBhcmUgY2xvc2UgZnJpZW5kcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtZb3Uga25vdyB0aGUgdGhyZWUgb2YgdXMgYXJlIGNsb3NlIGZyaWVuZHMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O1ZhbmVzc2EmcXVvdDsgJnF1b3Q7V2UgZG8gZXZlcnl0aGluZyB0b2dldGhlciZxdW90OyAmcXVvdDtrb2xra1JvbGtrZ29sa2tBb2xra1RvbGtrRG9sa2tob2xra0ZvbGtrQm9sa2tWb2xra0NvbGtrTm9sa2tub2xra3NvbGtreW9sa2t4JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtWYW5lc3NhJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZSBkbyBldmVyeXRoaW5nIHRvZ2V0aGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O1dlIGRvIGV2ZXJ5dGhpbmcgdG9nZXRoZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O1ZhbmVzc2EmcXVvdDsgJnF1b3Q7U28geWVhaCwgSSBmb3VuZCBvdXQgYWJvdXQgaXQmcXVvdDsgJnF1b3Q7S29sa2tEb2xra05vbGtrRm9sa2tSb2xra1VvbGtram9sa2t1b2xra0pvbGtrVW9sa2tmb2xra0FvbGtrYW9sa2t3b2xra0pvbGtrdSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7VmFuZXNzYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U28geWVhaCwgSSBmb3VuZCBvdXQgYWJvdXQgaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0ID0gJnF1b3Q7U28geWVhaCwgSSBmb3VuZCBvdXQgYWJvdXQgaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2RvbGtrU29sa2tWb2xra1RvbGtrb29sa2tYb2xra2NvbGtrZyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2Ffb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3RJZCAgPSAmcXVvdDsjZG9sa2tTb2xra1ZvbGtrVG9sa2tvb2xra1hvbGtrY29sa2tnJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtSaWdodC4uLiZxdW90OywgcGFzc2FnZTogJnF1b3Q7VmFuZXNzYUludHJvMV81JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7UmlnaHQuLi4mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtWYW5lc3NhSW50cm8xXzUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjk5IiBuYW1lPSJWYW5lc3NhSW50cm8xXzUiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsMzcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRTdGF0ZSAgPSAmcXVvdDtWYW5lc3NhSW50cm8xXzUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJFZhbmVzc2FfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1JpZ2h0Li4uJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtSaWdodC4uLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtSaWdodC4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O1ZhbmVzc2EmcXVvdDsgJnF1b3Q7SSBqdXN0IHdhbnRlZCB0byBzYXkgdGhhdCBJ4oCZdmUgYWx3YXlzIHRob3VnaHQgeW914oCZcmUgYSBnb29kIGd1eS4mcXVvdDsgJnF1b3Q7Rm9sa2tIb2xra2FvbGtrSW9sa2tIb2xra2ZvbGtrRG9sa2tRb2xra3JvbGtrT29sa2tNb2xra2xvbGtreG9sa2tPb2xra3VvbGtrcSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7VmFuZXNzYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBqdXN0IHdhbnRlZCB0byBzYXkgdGhhdCBJ4oCZdmUgYWx3YXlzIHRob3VnaHQgeW914oCZcmUgYSBnb29kIGd1eS4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0ID0gJnF1b3Q7SSBqdXN0IHdhbnRlZCB0byBzYXkgdGhhdCBJ4oCZdmUgYWx3YXlzIHRob3VnaHQgeW914oCZcmUgYSBnb29kIGd1eS4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4ycyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O1ZhbmVzc2EmcXVvdDsgJnF1b3Q7QW5kIHlvdSBrbm93IEkgY2FyZSBhIGxvdCBhYm91dCBBbm5pZSZxdW90OyAmcXVvdDtTb2xra25vbGtrd29sa2tOb2xra0ZvbGtrSm9sa2tQb2xra3pvbGtrd29sa2tEb2xra1NvbGtrTm9sa2tQb2xra2ZvbGtrcG9sa2toJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtWYW5lc3NhJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbmQgeW91IGtub3cgSSBjYXJlIGEgbG90IGFib3V0IEFubmllJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O0FuZCB5b3Uga25vdyBJIGNhcmUgYSBsb3QgYWJvdXQgQW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy43cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O1ZhbmVzc2EmcXVvdDsgJnF1b3Q7SnVzdCBrbm93IHRoYXQgSSB3b27igJl0IGxldCBOYW9taSBjb21wbGV0ZWx5IGRlcmFpbCBBbm5pZSZxdW90OyAmcXVvdDtqb2xra2dvbGtrYm9sa2tNb2xra3FvbGtrRm9sa2tPb2xra3hvbGtrQ29sa2tPb2xra01vbGtrb29sa2tab2xra1pvbGtrdm9sa2twJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtWYW5lc3NhJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtKdXN0IGtub3cgdGhhdCBJIHdvbuKAmXQgbGV0IE5hb21pIGNvbXBsZXRlbHkgZGVyYWlsIEFubmllJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O0p1c3Qga25vdyB0aGF0IEkgd29u4oCZdCBsZXQgTmFvbWkgY29tcGxldGVseSBkZXJhaWwgQW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjhzICZxdW90O1ZhbmVzc2EmcXVvdDsgJnF1b3Q7WW91IGNhbiBjb3VudCBvbiBtZSBpZiB5b3UgbmVlZCBoZWxwIG9yIGlmIHlvdSBoYXZlIHNlY29uZCB0aG91Z2h0cyBhYm91dCBhbGwgdGhpcyZxdW90OyAmcXVvdDtnb2xra1JvbGtrRG9sa2tFb2xra0dvbGtrR29sa2tBb2xra2NvbGtrWm9sa2tab2xra3BvbGtrYW9sa2tqb2xra0dvbGtrdW9sa2t1JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtWYW5lc3NhJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3UgY2FuIGNvdW50IG9uIG1lIGlmIHlvdSBuZWVkIGhlbHAgb3IgaWYgeW91IGhhdmUgc2Vjb25kIHRob3VnaHRzIGFib3V0IGFsbCB0aGlzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O1lvdSBjYW4gY291bnQgb24gbWUgaWYgeW91IG5lZWQgaGVscCBvciBpZiB5b3UgaGF2ZSBzZWNvbmQgdGhvdWdodHMgYWJvdXQgYWxsIHRoaXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNy43cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjhzICZxdW90O1ZhbmVzc2EmcXVvdDsgJnF1b3Q7SWYgdGhpcyBpcyByZWFsbHkgd2hhdCB5b3Ugd2FudCwgSSBoYXZlIG5vIHByb2JsZW0gd2l0aCBpdCwgeW914oCZcmUgYm90aCBhZHVsdHMgYWZ0ZXIgYWxsJnF1b3Q7ICZxdW90O2RvbGtrU29sa2t1b2xra2tvbGtrRG9sa2tab2xra0lvbGtrQm9sa2t2b2xra05vbGtrWm9sa2tyb2xra0VvbGtrVW9sa2t1b2xra0EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1ZhbmVzc2EmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0lmIHRoaXMgaXMgcmVhbGx5IHdoYXQgeW91IHdhbnQsIEkgaGF2ZSBubyBwcm9ibGVtIHdpdGggaXQsIHlvdeKAmXJlIGJvdGggYWR1bHRzIGFmdGVyIGFsbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtJZiB0aGlzIGlzIHJlYWxseSB3aGF0IHlvdSB3YW50LCBJIGhhdmUgbm8gcHJvYmxlbSB3aXRoIGl0LCB5b3XigJlyZSBib3RoIGFkdWx0cyBhZnRlciBhbGwmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMTAuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtWYW5lc3NhJnF1b3Q7ICZxdW90O0J1dCBJ4oCZbSBoZXJlIHRvIGhlbHAgaWYgeW91IGd1eXMgbmVlZCBtZSZxdW90OyAmcXVvdDtVb2xra0lvbGtrVW9sa2tqb2xra0FvbGtrWG9sa2t2b2xra2FvbGtrZm9sa2tub2xra3pvbGtrVm9sa2tKb2xra2pvbGtrem9sa2tsJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtWYW5lc3NhJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgSeKAmW0gaGVyZSB0byBoZWxwIGlmIHlvdSBndXlzIG5lZWQgbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0ID0gJnF1b3Q7QnV0IEnigJltIGhlcmUgdG8gaGVscCBpZiB5b3UgZ3V5cyBuZWVkIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtTb2xra2pvbGtrc29sa2t0b2xra2pvbGtrc29sa2t1b2xra0ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDExLjdzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdElkICA9ICZxdW90OyNTb2xra2pvbGtrc29sa2t0b2xra2pvbGtrc29sa2t1b2xra0ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoYW5rcywgeW914oCZdmUgYWx3YXlzIGJlZW4gYSBnb29kIGZyaWVuZCZxdW90OywgcGFzc2FnZTogJnF1b3Q7VmFuZXNzYUludHJvMV82YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoYW5rcywgeW914oCZdmUgYWx3YXlzIGJlZW4gYSBnb29kIGZyaWVuZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O1ZhbmVzc2FJbnRybzFfNmEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdElkICA9ICZxdW90OyNTb2xra2pvbGtrc29sa2t0b2xra2pvbGtrc29sa2t1b2xra0ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoYXQgd29u4oCZdCBiZSBuZWNlc3NhcnkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O1ZhbmVzc2FJbnRybzFfNmImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaGF0IHdvbuKAmXQgYmUgbmVjZXNzYXJ5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7VmFuZXNzYUludHJvMV82YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMDAiIG5hbWU9IlZhbmVzc2FJbnRybzFfNmEiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMzcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRTdGF0ZSAgPSAmcXVvdDtWYW5lc3NhSW50cm8xXzZhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRWYW5lc3NhX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGFua3MsIHlvdeKAmXZlIGFsd2F5cyBiZWVuIGEgZ29vZCBmcmllbmQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYW5rcywgeW914oCZdmUgYWx3YXlzIGJlZW4gYSBnb29kIGZyaWVuZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtUaGFua3MsIHlvdeKAmXZlIGFsd2F5cyBiZWVuIGEgZ29vZCBmcmllbmQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJHZhbmVzc2FfcmVsID0gJHZhbmVzc2FfcmVsKzEmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7V29sa2t5b2xra0RvbGtrRm9sa2t1b2xra0hvbGtrUW9sa2tVJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdElkICA9ICZxdW90OyNXb2xra3lvbGtrRG9sa2tGb2xra3VvbGtrSG9sa2tRb2xra1UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1dlIGp1c3Qgd2FudCB0byB0cnkgc29tZXRoaW5nIG5ldywgdGhhdOKAmXMgYWxsJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtWYW5lc3NhSW50cm8xXzcmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXZSBqdXN0IHdhbnQgdG8gdHJ5IHNvbWV0aGluZyBuZXcsIHRoYXTigJlzIGFsbCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O1ZhbmVzc2FJbnRybzFfNyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMDEiIG5hbWU9IlZhbmVzc2FJbnRybzFfNmIiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCwzODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdFN0YXRlICA9ICZxdW90O1ZhbmVzc2FJbnRybzFfNmImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJFZhbmVzc2FfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RoYXQgd29u4oCZdCBiZSBuZWNlc3NhcnkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYXQgd29u4oCZdCBiZSBuZWNlc3NhcnkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0ID0gJnF1b3Q7VGhhdCB3b27igJl0IGJlIG5lY2Vzc2FyeSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtWb2xra2VvbGtrVG9sa2tub2xra2lvbGtrdW9sa2tYb2xra3YmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0SWQgID0gJnF1b3Q7I1ZvbGtrZW9sa2tUb2xra25vbGtraW9sa2t1b2xra1hvbGtrdiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2Ffb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7V2UganVzdCB3YW50IHRvIHRyeSBzb21ldGhpbmcgbmV3LCB0aGF04oCZcyBhbGwmcXVvdDssIHBhc3NhZ2U6ICZxdW90O1ZhbmVzc2FJbnRybzFfNyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1dlIGp1c3Qgd2FudCB0byB0cnkgc29tZXRoaW5nIG5ldywgdGhhdOKAmXMgYWxsJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7VmFuZXNzYUludHJvMV83JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMwMiIgbmFtZT0iVmFuZXNzYUludHJvMV83IiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsMzg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRTdGF0ZSAgPSAmcXVvdDtWYW5lc3NhSW50cm8xXzcmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJFZhbmVzc2FfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1dlIGp1c3Qgd2FudCB0byB0cnkgc29tZXRoaW5nIG5ldywgdGhhdOKAmXMgYWxsJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZSBqdXN0IHdhbnQgdG8gdHJ5IHNvbWV0aGluZyBuZXcsIHRoYXTigJlzIGFsbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtXZSBqdXN0IHdhbnQgdG8gdHJ5IHNvbWV0aGluZyBuZXcsIHRoYXTigJlzIGFsbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O1ZhbmVzc2EmcXVvdDsgJnF1b3Q7SSB0b3RhbGx5IGdldCBpdCZxdW90OyAmcXVvdDtrb2xra0pvbGtrdG9sa2tlb2xra1JvbGtrRW9sa2t5b2xra1lvbGtrQ29sa2tSb2xra2NvbGtreW9sa2tYb2xra2pvbGtreW9sa2t2JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtWYW5lc3NhJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHRvdGFsbHkgZ2V0IGl0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O0kgdG90YWxseSBnZXQgaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O1ZhbmVzc2EmcXVvdDsgJnF1b3Q7TGlrZSBJIHNhaWQsIGp1c3QgdGV4dCBtZSBpZiB5b3UgbmVlZCBhbnl0aGluZyZxdW90OyAmcXVvdDtvb2xra2FvbGtrd29sa2ttb2xra0NvbGtrem9sa2tyb2xra1hvbGtrbm9sa2tOb2xra1hvbGtrVm9sa2tVb2xra2dvbGtrZW9sa2tzJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtWYW5lc3NhJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtMaWtlIEkgc2FpZCwganVzdCB0ZXh0IG1lIGlmIHlvdSBuZWVkIGFueXRoaW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O0xpa2UgSSBzYWlkLCBqdXN0IHRleHQgbWUgaWYgeW91IG5lZWQgYW55dGhpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3ZvbGtrUG9sa2tnb2xra2NvbGtrTW9sa2tub2xra1VvbGtrcyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2Ffb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3RJZCAgPSAmcXVvdDsjdm9sa2tQb2xra2dvbGtrY29sa2tNb2xra25vbGtrVW9sa2tzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIHdpbGwmcXVvdDssIHBhc3NhZ2U6ICZxdW90O1ZhbmVzc2FJbnRybzFfOCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgd2lsbCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O1ZhbmVzc2FJbnRybzFfOCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMDMiIG5hbWU9IlZhbmVzc2FJbnRybzFfOCIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDM4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0U3RhdGUgID0gJnF1b3Q7VmFuZXNzYUludHJvMV84JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRWYW5lc3NhX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIHdpbGwmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgd2lsbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtJIHdpbGwmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Sm9sa2tvb2xra2xvbGtrYW9sa2twb2xra0VvbGtrWm9sa2tXJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdElkICA9ICZxdW90OyNKb2xra29vbGtrbG9sa2thb2xra3BvbGtrRW9sa2tab2xra1cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1Rha2UgY2FyZSwgVmFuZXNzYSZxdW90OywgcGFzc2FnZTogJnF1b3Q7VmFuZXNzYUludHJvMV85JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGFrZSBjYXJlLCBWYW5lc3NhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7VmFuZXNzYUludHJvMV85JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMwNCIgbmFtZT0iVmFuZXNzYUludHJvMV85IiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMzg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRTdGF0ZSAgPSAmcXVvdDtWYW5lc3NhSW50cm8xXzkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJFZhbmVzc2FfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1Rha2UgY2FyZSwgVmFuZXNzYSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGFrZSBjYXJlLCBWYW5lc3NhJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O1Rha2UgY2FyZSwgVmFuZXNzYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O1ZhbmVzc2EmcXVvdDsgJnF1b3Q7WW91IHRvbywgJG5hbWUmcXVvdDsgJnF1b3Q7Vm9sa2tkb2xra25vbGtram9sa2t3b2xra2RvbGtrY29sa2tJb2xra0hvbGtrWm9sa2tyb2xra0dvbGtrTG9sa2txb2xra0JvbGtrSSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7VmFuZXNzYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IHRvbywgJG5hbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0ID0gJnF1b3Q7WW91IHRvbywgJG5hbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4ycyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9zbWlsZS53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7VmFuZXNzYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7VmFuZXNzYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfc21pbGUud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMi4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDvwn5mCJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdFN0YXRlID0gJnF1b3Q7VmFuZXNzYUludHJvNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3RfaG91ciA9ICZxdW90OzEyOjE0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDsxMjoxNCZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7b2ZmbGluZS10ZXh0JnF1b3Q7Jmd0O1ZhbmVzc2EgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjJzJmd0OyZndDsKJmx0OyZsdDtzZXQgJFZhbmVzc2Ffbm90ZXMucHVzaCgmcXVvdDtTaGUgdGV4dGVkIG1lIHRvIG9mZmVyIGhlciBoZWxwIHdpdGggdGhlIEFubmllIHNpdHVhdGlvbiwgc2F5aW5nIHRoYXQgaWYgSSBldmVyIGhhdmUgc2Vjb25kIHRob3VnaHRzIGFib3V0IHRoaXMgSSBqdXN0IG5lZWQgdG8gbGV0IGhlciBrbm93LiZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMnMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRlbmRPZkNvbnRlbnQgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMnMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRlcDEgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMwNSIgbmFtZT0iVmFuZXNzYV9ub3RlIiB0YWdzPSJub3Rlc2luIG5vdGhvdXIiIHBvc2l0aW9uPSI2MDAsMzg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtoZWFkZXIgJnF1b3Q7VmFuZXNzYSZxdW90OyAmcXVvdDtWYW5lc3NhJnF1b3Q7ICZxdW90O05vdGVzJnF1b3Q7IHRydWUmZ3Q7Jmd0OwogICAgJmx0O2RpdiBpZD0mcXVvdDtwYWRkaW5nLWNvbnRhaW5lciZxdW90OyBjbGFzcz0mcXVvdDt0ZXh0X2JsYWNrJnF1b3Q7Jmd0OwogICAgICAgICZsdDtkaXYmZ3Q7LSBTaGXigJlzIGEgY2xvc2UgZnJpZW5kIG9mIEFubmllIGFuZCBOYW9taSwgdGhleSBhbGwgd29yayB0b2dldGhlci4gU2hl4oCZcyBhbHdheXMgYmVlbiByZWFsbHkgZnJpZW5kbHkgdG93YXJkIG1lLCBpdCBzZWVtcyBsaWtlIHNoZeKAmXMgdGhlIGNvbXBsZXRlIG9wcG9zaXRlIG9mIE5hb21pLiZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsmbHQ7Zm9yIF9pIHJhbmdlICRWYW5lc3NhX25vdGVzJmd0OyZndDsKICAgICAgICAgICAgJmx0O2RpdiBzdHlsZT0mcXVvdDttYXJnaW4tdG9wOiAxNnB4JnF1b3Q7Jmd0Oy0gX2kmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0Oy9mb3ImZ3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzA2IiBuYW1lPSJkZXZfY2hhdCIgdGFncz0ibWFwcCBub3Rob3VyIiBwb3NpdGlvbj0iNzI1LDM4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7Ci8qcmVnaW9uIEVtaWx5IGNoYXQqLwombHQ7Jmx0O2hlYWRlciAmcXVvdDtUaGVQaG9uZUd1eSAoZGV2KSZxdW90OyAmcXVvdDtkZXYmcXVvdDsgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsgdHJ1ZSZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7bWVzc2FnZV9jb250YWluZXImcXVvdDsmZ3Q7CiZsdDsmbHQ7c2V0IF9uZXh0ID0gJGZyZWVDYXArMSZndDsmZ3Q7CgombHQ7Jmx0O2lmICRjYXAgPT0gMSAmYW1wOyZhbXA7ICRlbmRPZkNvbnRlbnQgPT0gdHJ1ZSAmYW1wOyZhbXA7ICRwbWRscCA9PSBmYWxzZSZndDsmZ3Q7CiAgICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtEZXYmcXVvdDsgJnF1b3Q7SGkgdGhlcmUhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7RGV2JnF1b3Q7ICZxdW90O1lvdeKAmXZlIHJlYWNoZWQgdGhlIGVuZCBvZiBDaGFwdGVyICRmcmVlQ2FwLiZxdW90OyAmcXVvdDtFb2xra29vbGtrZm9sa2tYb2xra3BvbGtrcG9sa2tpb2xra1hvbGtrTG9sa2tob2xra0FvbGtrb29sa2tub2xra2RvbGtrdG9sa2tVJnF1b3Q7KCkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0RldiZxdW90OyAmcXVvdDtDaGFwdGVyIF9uZXh0IGlzIGFscmVhZHkgYXZhaWxhYmxlIGZvciBQYXRyZW9uIG1lbWJlcnMuJnF1b3Q7ICZxdW90O09vbGtrRG9sa2txb2xra01vbGtrbm9sa2thb2xra2hvbGtrRG9sa2tvb2xra3hvbGtrT29sa2tUb2xra2JvbGtreW9sa2tTb2xra2UmcXVvdDsoKSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuOHMgJnF1b3Q7RGV2JnF1b3Q7ICZxdW90O0lmIHlvdSBhbHJlYWR5IGhhdmUgYSBwcmVtaXVtIGNvZGUsIHlvdSBjYW4gY2xpY2sgdGhlIGJ1dHRvbiBhdCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uJnF1b3Q7ICZxdW90O0xvbGtrbW9sa2tOb2xra0xvbGtreW9sa2tTb2xra3JvbGtrTG9sa2tkb2xra1BvbGtrWW9sa2tEb2xra2ZvbGtrd29sa2t5b2xra0wmcXVvdDsoKSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDIuMXMgJnF1b3Q7RGV2JnF1b3Q7ICZxdW90O0lmIHlvdeKAmXJlIG5vdCBhIFBhdHJlb24gc3Vic2NyaWJlciB5ZXQsIHlvdSBjYW4gYmVjb21lIG9uZSBieSBjbGlja2luZyB0aGUgZm9sbG93aW5nIGxpbms6ICZsdDthIHRhcmdldD0mIzM5O19ibGFuayYjMzk7IHJlbD0mIzM5O25vb3BlbmVyIG5vcmVmZXJyZXImIzM5OyBocmVmPSYjMzk7aHR0cHM6Ly93d3cucGF0cmVvbi5jb20vVGhlUGhvbmVHdXkmIzM5OyZndDtwYXRyZW9uLmNvbS9UaGVQaG9uZUd1eSZsdDsvYSZndDsmcXVvdDsgJnF1b3Q7T29sa2tLb2xra2lvbGtrem9sa2tFb2xra3ZvbGtrSW9sa2t6b2xra0pvbGtrdm9sa2tTb2xra2FvbGtrSm9sa2tsb2xra1BvbGtrcSZxdW90OygpJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtpZiAkY2FwID09IDIgJmFtcDsmYW1wOyAkZW5kT2ZDb250ZW50ID09IHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtEZXYmcXVvdDsgJnF1b3Q7SGkgdGhlcmUhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7RGV2JnF1b3Q7ICZxdW90O1lvdeKAmXZlIHJlYWNoZWQgdGhlIGVuZCBvZiBDaGFwdGVyIF9uZXh0LiZxdW90OyAmcXVvdDtIb2xra3ZvbGtrVW9sa2twb2xra29vbGtreW9sa2tkb2xra09vbGtrSm9sa2tmb2xra1pvbGtreW9sa2tMb2xra1dvbGtrbm9sa2thJnF1b3Q7KCkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0RldiZxdW90OyAmcXVvdDtXZSByZWxlYXNlIHVwZGF0ZXMgZXZlcnkgdHdvIHdlZWtzLiZxdW90OyAmcXVvdDtOb2xra3JvbGtrcG9sa2tYb2xra09vbGtrb29sa2tRb2xra1JvbGtrWG9sa2t3b2xra25vbGtrVW9sa2twb2xra3NvbGtrTG9sa2tGJnF1b3Q7KCkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O0RldiZxdW90OyAmcXVvdDtEb27igJl0IGZvcmdldCB0byBjaGVjayBvdXIgUGF0cmVvbiBwYWdlIGZvciBmdXR1cmUgcmVsZWFzZXMuJnF1b3Q7ICZxdW90O3dvbGtrZ29sa2tzb2xra2RvbGtrdW9sa2trb2xra1hvbGtrQW9sa2trb2xra1BvbGtrRm9sa2tOb2xra2hvbGtrVm9sa2tWb2xra0smcXVvdDsoKSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7RGV2JnF1b3Q7ICZxdW90O1RoYW5rcyBmb3IgcGxheWluZyEmcXVvdDsgJnF1b3Q7T29sa2tkb2xra3NvbGtrZG9sa2t2b2xra3hvbGtrRm9sa2tjb2xra2NvbGtrWW9sa2tMb2xra2ZvbGtrTm9sa2tVb2xra3dvbGtrYiZxdW90OygpJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDtlbmQmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2NoYXRfYmFyJnF1b3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O2NvbnRlbnQmcXVvdDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRjYXAgPT0gMSAmYW1wOyZhbXA7ICRlbmRPZkNvbnRlbnQgPT0gdHJ1ZSAmYW1wOyZhbXA7ICRwbWRscCA9PSBmYWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICZxdW90O0kgYWxyZWFkeSBoYXZlIGEgY29kZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7Z290byAmcXVvdDtwYXRyb24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7L2RpdiZndDsKJmx0Oy9kaXYmZ3Q7CgombHQ7Jmx0O3RpbWVkIDAuMnMmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbEluc3RhKCk7CiAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgIHNldHVwLnNjcm9sbEluc3RhKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzA3IiBuYW1lPSJQYXNzYWdlSGVhZGVyIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMzg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgICZsdDtkaXYgaWQ9JnF1b3Q7dG9wYmFyJnF1b3Q7Jmd0OwogICAgJmx0O2RpdiBzdHlsZT0mcXVvdDtwYWRkaW5nLWxlZnQ6MjBweDsmcXVvdDsgY2xhc3M9JnF1b3Q7dG9wLWhvdXImcXVvdDsmZ3Q7CiAgICAkaG91cgogICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7ZGl2IHN0eWxlPSZxdW90O3BhZGRpbmctcmlnaHQ6IDE4cHg7cGFkZGluZy10b3A6IDRweDsmcXVvdDsmZ3Q7CiAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL0NlbGx1bGFyIENvbm5lY3Rpb24ucG5nJnF1b3Q7LyZndDsKICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvQmF0dGVyeS5wbmcmcXVvdDsvJmd0OwogICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9XaWZpLnBuZyZxdW90Oy8mZ3Q7CiAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMwOCIgbmFtZT0iU3RvcnlJbml0IiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMzg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtpbmNsdWRlICZxdW90O3ZhcmlhYmxlcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtuYXZiYXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7aGVhZGVyX2FwcCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7aW5jbHVkZSAmcXVvdDttZXNzYWdlX291dHNpZGUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7bWVzc2FnZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtwYWRkaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtpbmNsdWRlICZxdW90O21lc3NhZ2VfdG9hc3QmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7bWVzc2FnZV9vbGQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7ZmFrZV9uYXZiYXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7bWVzc2FnZV9pbWcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7bWVzc2FnZV92aWRlbyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtsaWtlX2J1dHRvbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7aW5jbHVkZSAmcXVvdDthdmF0YXJfdG9wJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtpbmNsdWRlICZxdW90O2hvbWVfc2NyZWVuX2J1dHRvbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7aW5jbHVkZSAmcXVvdDttZXNzYWdlX2Vtb2ppJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtpbmNsdWRlICZxdW90O21lc3NhZ2VfdGFnJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtpbmNsdWRlICZxdW90O3N3aXRjaF9idXR0b24mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7bm90ZXNfYnV0dG9uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtpbmNsdWRlICZxdW90O3RvZG9fYnV0dG9uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtjYWNoZWF1ZGlvICZxdW90O215bWVzc2FnZSZxdW90OyAmcXVvdDthc3NldHMvc291bmQvbXlNc2cubXAzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtjYWNoZWF1ZGlvICZxdW90O21lc3NhZ2UmcXVvdDsgJnF1b3Q7YXNzZXRzL3NvdW5kL3BvcC5tcDMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2NhY2hlYXVkaW8gJnF1b3Q7dG9hc3QmcXVvdDsgJnF1b3Q7YXNzZXRzL3NvdW5kL25vdGlmUG9wLm1wMyZxdW90OyZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMDkiIG5hbWU9IlBhc3NhZ2VSZWFkeSIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwzODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICBzZXR1cC5zZXRCZyhTdGF0ZS52YXJpYWJsZXMud2FsbHBhcGVyKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMxMCIgbmFtZT0iaW5zdGF2aWJlIiB0YWdzPSJ3aGl0ZSBub3Rob3VyIiBwb3NpdGlvbj0iMTIyNSwzODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2hlYWRlciAmcXVvdDtJbnN0YXZpYmUmcXVvdDsgJnF1b3Q7JnF1b3Q7ICZxdW90O2hvbWUmcXVvdDsgdHJ1ZSZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7cGFkZGluZy1jb250YWluZXImcXVvdDsmZ3Q7CiZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7ZXJyb3ImcXVvdDsmZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZXJyb3Iud2VicCZxdW90OyZndDsKJmx0O3NwYW4mZ3Q7SW50ZXJuYWwgU2VydmVyIEVycm9yJmx0Oy9zcGFuJmd0Owo1MDAKJmx0O3NwYW4gc3R5bGU9JnF1b3Q7Zm9udC1zaXplOiAxcmVtOyZxdW90OyZndDsoRGV2ZWxvcGVycyBhcmUgYnVzeSkmbHQ7L3NwYW4mZ3Q7CiZsdDsvZGl2Jmd0OwovKiAmbHQ7ZGl2IGNsYXNzPSZxdW90O2luc3RhdmliZS10b3AmcXVvdDsmZ3Q7CiAgICAmbHQ7Jmx0O2F2YXRhcl90b3AgJnF1b3Q7RW1pbHkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDthdmF0YXJfdG9wICZxdW90O0VtaWx5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7YXZhdGFyX3RvcCAmcXVvdDtFbWlseSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2F2YXRhcl90b3AgJnF1b3Q7RW1pbHkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDthdmF0YXJfdG9wICZxdW90O0VtaWx5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7YXZhdGFyX3RvcCAmcXVvdDtFbWlseSZxdW90OyZndDsmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7aW5zdGF2aWJlX3Bvc3RfdGVzdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtpbnN0YXZpYmVfcG9zdF90ZXN0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtpbmNsdWRlICZxdW90O2luc3RhdmliZV9wb3N0X3Rlc3QmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7aW5zdGF2aWJlX3Bvc3RfdGVzdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtpbnN0YXZpYmVfcG9zdF90ZXN0JnF1b3Q7Jmd0OyZndDsgKi8KJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzExIiBuYW1lPSJpbnN0YXZpYmVfcG9zdF90ZXN0IiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMzk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtpbWctcG9zdCZxdW90OyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9pbnN0YXZpYmUvRW1pbHlfMS53ZWJwJnF1b3Q7Jmd0OwombHQ7Jmx0O2J1dHRvbiAmcXVvdDsmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJGltZyA9ICZxdW90O2Fzc2V0cy9pbWcvaW5zdGF2aWJlL0VtaWx5XzEud2VicCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgRGlhbG9nLnNldHVwKCZxdW90OyZxdW90Oyk7CiAgICAgICAgRGlhbG9nLndpa2koJiMzOTsmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7aW1nX2JpZyZxdW90OyZndDsmZ3Q7JiMzOTspOwogICAgICAgIERpYWxvZy5vcGVuKCk7CiAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9idXR0b24mZ3Q7Jmd0OwombHQ7L2RpdiZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtpbnN0YXZpYmUtcG9zdCZxdW90OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7YXZhdGFyJnF1b3Q7Jmd0OwogICAgICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvaW5zdGF2aWJlL0VtaWx5X2F2YXRhci53ZWJwJnF1b3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3RleHQmcXVvdDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDt0b3AmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7bmFtZSZxdW90OyZndDtjcmF6eW5mdW4mbHQ7L2RpdiZndDsKICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDt0aW1lJnF1b3Q7Jmd0O0xpa2VkIGJ5IDgzIHBlb3BsZSZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7Ym90dG9tJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2NhcHRpb24mcXVvdDsmZ3Q7RW1pbHkmbHQ7L2RpdiZndDsKICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtidXR0b25zJnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9Eb3dubG9hZC53ZWJwJnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O2xpa2VfYnV0dG9uX3Rlc3QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsvZGl2Jmd0OwombHQ7L2RpdiZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtkZXNjcmlwdGlvbiZxdW90OyZndDtUaGlzIHdhcyBhIGdyZWF0IGRheSwgYSBsb3Qgb2YgZnVuIHdpdGggZnJpZW5kcyBhbmQgZmFtaWx5LiBTYWRseSBJIGdvdCBzaWNrIGJ1dCBJ4oCZbSBkb2luZyBiZXR0ZXIgbm93Li4uJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzEyIiBuYW1lPSJFbWlseV9wcm9maWxlIiB0YWdzPSJ3aGl0ZSIgcG9zaXRpb249IjIyNSwzOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2hlYWRlciAmcXVvdDtjcmF6eW5mdW4mcXVvdDsgJnF1b3Q7JnF1b3Q7ICZxdW90O2luc3RhdmliZSZxdW90OyB0cnVlJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDtwYWRkaW5nLWNvbnRhaW5lciZxdW90OyZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7cHJvZmlsZS1jYXJkJnF1b3Q7Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDthdmF0YXItY29udGFpbmVyJnF1b3Q7Jmd0OwogICAgICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvaW5zdGF2aWJlL0VtaWx5X2F2YXRhci53ZWJwJnF1b3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3Byb2ZpbGUtaW5mbyZxdW90OyZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O25hbWUmcXVvdDsmZ3Q7Y3JhenluZnVuJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtiaW8mcXVvdDsmZ3Q7SSBqdXN0IHdhbm5hIGhhdmUgZnVuIGFuZCBlbmpveSBsaWZlLiZsdDsvZGl2Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7c3RhdHMmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7cG9zdHMmcXVvdDsmZ3Q7MyAmbHQ7YnImZ3Q7IFBvc3RzJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7Zm9sbG93ZXJzJnF1b3Q7Jmd0Ozk2MSAmbHQ7YnImZ3Q7IEZvbGxvd2VycyZsdDsvZGl2Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2ZvbGxvd2luZyZxdW90OyZndDsxNDcgJmx0O2JyJmd0OyBGb2xsb3dpbmcmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwoKCiZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtpbnN0YXZpYmVfcG9zdF90ZXN0JnF1b3Q7Jmd0OyZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzEzIiBuYW1lPSJhdmF0YXJfdG9wIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMzk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsmbHQ7Jmx0O3dpZGdldCAmcXVvdDthdmF0YXJfdG9wJnF1b3Q7Jmd0OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7aW5zdGF2aWJlLXRvcC1jb250ZW50JnF1b3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0IF9hdmF0YXIgPSAmcXVvdDthc3NldHMvaW1nL2luc3RhdmliZS8mcXVvdDsgKyAkYXJnc1swXSArICZxdW90O19hdmF0YXIud2VicCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0O2ltZyBAc3JjPSZxdW90O19hdmF0YXImcXVvdDsmZ3Q7CiAgICAgICAgJGFyZ3NbMF0KICAgICAgICAmbHQ7Jmx0O2J1dHRvbiAmcXVvdDsmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O3NldCBfcHJvZmlsZSA9ICRhcmdzWzBdKyAmcXVvdDtfcHJvZmlsZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7Z290byBfcHJvZmlsZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvYnV0dG9uJmd0OyZndDsKICAgICZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy93aWRnZXQmZ3Q7Jmd0OyZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzE0IiBuYW1lPSJsaWtlX2J1dHRvbiIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDM5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7Jmx0OyZsdDt3aWRnZXQgJnF1b3Q7bGlrZV9idXR0b24mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkYXJnc1swXSA9PSB0cnVlJmd0OyZndDsKICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2hlYXJ0bGlrZWQud2VicCZxdW90OyZndDsKICAgICAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2hlYXJ0LndlYnAmcXVvdDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7L3dpZGdldCZndDsmZ3Q7Jmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMTUiIG5hbWU9Imxpa2VfYnV0dG9uX3Rlc3QiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwzOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDttYWdpY19idXR0b24mcXVvdDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBpZD0mcXVvdDt0ZXN0YnV0dG9uJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2xpa2VfYnV0dG9uICR0ZXN0dmFyJmd0OyZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0O2J1dHRvbiAmcXVvdDsmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O3NldCAkdGVzdHZhciA9ICEkdGVzdHZhciZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7cmVwbGFjZSAgJnF1b3Q7I3Rlc3RidXR0b24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtsaWtlX2J1dHRvbiAkdGVzdHZhciZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2J1dHRvbiZndDsmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMTYiIG5hbWU9ImhlYWRlcl9hcHAiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwzOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OyZsdDsmbHQ7d2lkZ2V0ICZxdW90O2hlYWRlciZxdW90OyZndDsmZ3Q7CiZsdDshLS1yZWdpb24gaGVhZGVyIC0tJmd0OwombHQ7Jmx0O3NldCBfYXZhdGFyID0gJGFyZ3NbMV0mZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O2hlYWRlcl9hcHAmcXVvdDsmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2hlYWRlcl9hcHBfY29udGVudCZxdW90OyZndDsKICAgICAgICAmbHQ7ZGl2IGlkPSZxdW90O25hdi1wbGFjZSZxdW90OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpZiAkYXJnc1szXSA9PSB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICRhcmdzWzJdJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0O2lmIF9hdmF0YXIgIT0gJnF1b3Q7JnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0O2RpdiBpZD0mcXVvdDthdmF0YXJfbWVzc2FnZSZxdW90OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0IF9hdmF0YXJJbWcgPSAmcXVvdDthc3NldHMvaW1nLyZxdW90OytfYXZhdGFyKyZxdW90O19hdmF0YXIud2VicCZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7aW1nIEBzcmM9JnF1b3Q7X2F2YXRhckltZyZxdW90OyZndDsKICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7aGVhZGVyX3RpdGxlJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7aDEmZ3Q7JGFyZ3NbMF0mbHQ7L2gxJmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsmbHQ7aWYgX2F2YXRhciAhPSAmcXVvdDsmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IGlkPSZxdW90O21lc3NhZ2VfYnV0dG9ucyZxdW90OyZndDsKICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgc3R5bGU9JnF1b3Q7aGVpZ2h0OiA1MHB4OyB3aWR0aDogMzhweDsmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsvZGl2Jmd0OwombHQ7L2RpdiZndDsKJmx0OyZsdDsvd2lkZ2V0Jmd0OyZndDsmbHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMxNyIgbmFtZT0ibmF2YmFyIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMzk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsmbHQ7Jmx0O3dpZGdldCAmcXVvdDtuYXZiYXImcXVvdDsmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O25hdmJhciZxdW90OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7YnV0dG9uLWFwcCZxdW90OyZndDsKICAgICAgICAmbHQ7aW1nIHNyYz0mIzM5O2Fzc2V0cy9pbWcvQmFjay53ZWJwJiMzOTsvJmd0OwogICAgICAgICZsdDsmbHQ7bGluayAmcXVvdDsmcXVvdDsgJGFyZ3NbMF0mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy93aWRnZXQmZ3Q7Jmd0OyZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzE4IiBuYW1lPSJmYWtlX25hdmJhciIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDM5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7Jmx0OyZsdDt3aWRnZXQgJnF1b3Q7ZmFrZV9uYXZiYXImcXVvdDsmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O25hdmJhciZxdW90OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7YnV0dG9uLWFwcCZxdW90OyZndDsKICAgICAgICAmbHQ7aW1nIHNyYz0mIzM5O2Fzc2V0cy9pbWcvQmFjay53ZWJwJiMzOTsvJmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy93aWRnZXQmZ3Q7Jmd0OyZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzE5IiBuYW1lPSJ2YXJpYWJsZXMiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsMzk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMjAiIG5hbWU9IlN0YXJ0IiB0YWdzPSJiZzEgbm90aG91ciIgcG9zaXRpb249IjEyMjUsMzk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgIC8qcmVnaW9uIHN0YXJ0Ki8KICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvbG9nby53ZWJwJnF1b3Q7IGNsYXNzPSZxdW90O2xvZ28mcXVvdDsvJmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDttYWluLW1lbnUmcXVvdDsmZ3Q7CiAgICAgICAgW1tOZXcgR2FtZXxkaXNjbGFpbWVyXV0KICAgICAgICAmbHQ7Jmx0O2xpbmsgJnF1b3Q7TG9hZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgICQud2lraSgmIzM5OyZsdDsmbHQ7cnVuIFVJLnNhdmVzKCkmZ3Q7Jmd0OyYjMzk7KTsKICAgICAgICAgICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJnF1b3Q7RnVsbCBTY3JlZW4mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgICAgICAgICBzZXR1cC50b2dnbGVGdWxsU2NyZWVuKCk7CiAgICAgICAgICAgICZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMjEiIG5hbWU9ImRpc2NsYWltZXIiIHRhZ3M9ImJnMSBub3Rob3VyIiBwb3NpdGlvbj0iMTAwLDQxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3BhbmVsJnF1b3Q7Jmd0OwogICAgICAgICZsdDtwJmd0OyYjMzk7JiMzOTtNeSBQaG9uZSBpcyBOVFImIzM5OyYjMzk7IGlzIGFuIGFkdWx0IGdhbWUgdGhhdCBjb250YWlucyBhZ2UtcmVzdHJpY3RlZCBjb250ZW50LiBZb3UgbXVzdCBiZSAxOCB5ZWFycyBvbGQgb3Igb3ZlciB0byBwbGF5LiZsdDsvcCZndDsKICAgICAgICBbW0kgYW0gMTggb3Igb2xkZXJ8IGRpc2NsYWltZXJBdWRpb11dCiAgICAgICAgW1tFeGl0fCBTdGFydF1dCiAgICAmbHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMjIiIG5hbWU9ImRpc2NsYWltZXJBdWRpbyIgdGFncz0iYmcxIG5vdGhvdXIiIHBvc2l0aW9uPSIyMjUsNDEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7cGFuZWwmcXVvdDsmZ3Q7CiAgICAgICAgJmx0O3AmZ3Q7VGhpcyBnYW1lIGluY2x1ZGVzIGF1ZGlvIGNvbnRlbnQsIHNwZWNpZmljYWxseSB3aGVuIHlvdSByZWNlaXZlIG9yIHNlbmQgYSBtZXNzYWdlLiBIb3cgd291bGQgeW91IGxpa2UgdG8gY29uZmlndXJlIGl0PyZsdDsvcCZndDsKICAgICAgICBbW0VuYWJsZSBzb3VuZHwgc3RhcnRTZXR0aW5nXV0KICAgICAgICBbW0Rpc2FibGUgc291bmR8IHN0YXJ0U2V0dGluZ11bJHNvdW5kID0gZmFsc2VdXQogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzIzIiBuYW1lPSJzdGFydFNldHRpbmciIHRhZ3M9ImJnMSBub3Rob3VyIiBwb3NpdGlvbj0iMzUwLDQxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3BhbmVsJnF1b3Q7Jmd0OwogICAgICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvbG9nby53ZWJwJnF1b3Q7LyZndDsKICAgICAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgICAgIFdyaXRlIHlvdXIgbmFtZToKICAgICAgICAmbHQ7Jmx0O3RleHRib3ggJnF1b3Q7JG5hbWUmcXVvdDsgJnF1b3Q7Sm9zaCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICAgICBbW0NvbnRpbnVlfCBob21lXV0KICAgICZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMyNCIgbmFtZT0iYmFja1NjcmVlbiIgdGFncz0ibm90aGluZyBub3Rob3VyIiBwb3NpdGlvbj0iNDc1LDQxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkdHJhbnNpdGlvbiA9IGZhbHNlJmd0OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7YmFjay1zY3JlZW4mcXVvdDsmZ3Q7CiAgICAgICAgJmx0O2gyJmd0OyR0cmFuc2l0aW9uVGV4dCZsdDsvaDImZ3Q7CiAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsmbHQ7dGltZWQgMnMmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7Z290byAmcXVvdDtob21lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMjUiIG5hbWU9ImhvbWUiIHRhZ3M9ImJnMSBub3Rob3VyIiBwb3NpdGlvbj0iNjAwLDQxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAvKnJlZ2lvbiBob21lKi8KICAgICZsdDsmbHQ7c2V0ICRiYWNrID0gJnF1b3Q7aG9tZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRBbm5pZV9ub3RpZmljYXRpb25fMSA9PSBmYWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX25vdGlmaWNhdGlvbl8xID0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgICAgICBzZXR1cC50b2FzdCgmcXVvdDtBbm5pZSZxdW90OywmcXVvdDtIZXkgaG9uZXksIGdvb2QgbW9ybmluZyZxdW90OywgU3RhdGUudmFyaWFibGVzLmhvdXIpOwogICAgICAgICZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRUb2FzdEFubmllMiA9PSB0cnVlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVG9hc3RBbm5pZTIgPSBmYWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgICAgICBzZXR1cC50b2FzdCgmcXVvdDtBbm5pZSZxdW90OywmcXVvdDtIZXkgaG9uZXkmcXVvdDssICZxdW90OzIxOjM0JnF1b3Q7KTsKICAgICAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgCgogICAgJmx0O2RpdiBpZD0mcXVvdDtob21lLXNjcmVlbiZxdW90OyZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2hvdXItY29udGFpbmVyJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2hvdXItc2NyZWVuJnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2gxJmd0OyRob3VyJmx0Oy9oMSZndDsKICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtpY29uLWNvbnRhaW5lciZxdW90OyZndDsKICAgICAgICAmbHQ7Jmx0O2hvbWVfc2NyZWVuX2J1dHRvbiAmcXVvdDtJbnN0YXZpYmUmcXVvdDsgJnF1b3Q7aW5zdGF2aWJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2hvbWVfc2NyZWVuX2J1dHRvbiAmcXVvdDtOb3RlcyZxdW90OyAmcXVvdDtOb3RlcyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtidXR0b24tYXBwJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7aW1nIHNyYz0mIzM5O2Fzc2V0cy9pbWcvaWNvbnMvSXRjaC5pby53ZWJwJiMzOTsvJmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2xpbmsgJnF1b3Q7JnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7cnVuIHdpbmRvdy5vcGVuKCZxdW90O2h0dHBzOi8vdGhlLXBob25lLWd1eS5pdGNoLmlvL215LXBob25lLWlzLW50ciZxdW90OywgJnF1b3Q7X2JsYW5rJnF1b3Q7KSZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7YnV0dG9uLWFwcCZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2ltZyBzcmM9JiMzOTthc3NldHMvaW1nL2ljb25zL1BhdHJlb24ud2VicCYjMzk7LyZndDsKICAgICAgICAgICAgJmx0OyZsdDtsaW5rICZxdW90OyZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3J1biB3aW5kb3cub3BlbigmcXVvdDtodHRwczovL3d3dy5wYXRyZW9uLmNvbS9UaGVQaG9uZUd1eSZxdW90OywgJnF1b3Q7X2JsYW5rJnF1b3Q7KSZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsmbHQ7aG9tZV9zY3JlZW5fYnV0dG9uICZxdW90O0pvdXJuYWwmcXVvdDsgJnF1b3Q7VG9EbyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtob21lX3NjcmVlbl9idXR0b24gJnF1b3Q7U3lzdGVtJnF1b3Q7ICZxdW90O1N5c3RlbSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtob21lX3NjcmVlbl9idXR0b24gJnF1b3Q7Q2xvY2smcXVvdDsgJnF1b3Q7Q2xvY2smcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aG9tZV9zY3JlZW5fYnV0dG9uICZxdW90O1NldHRpbmdzJnF1b3Q7ICZxdW90O1NldHRpbmdzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2hvbWVfc2NyZWVuX2J1dHRvbiAmcXVvdDtDcmVkaXRzJnF1b3Q7ICZxdW90OyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtidXR0b24tYXBwJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7aW1nIHNyYz0mIzM5O2Fzc2V0cy9pbWcvaWNvbnMvRGlzY29yZC53ZWJwJiMzOTsvJmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2xpbmsgJnF1b3Q7JnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7cnVuIHdpbmRvdy5vcGVuKCZxdW90O2h0dHBzOi8vZGlzY29yZC5nZy9ra01NOWF2UWp1JnF1b3Q7LCAmcXVvdDtfYmxhbmsmcXVvdDspJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDtob21lX3NjcmVlbl9idXR0b24gJnF1b3Q7UHJlbWl1bSZxdW90OyAmcXVvdDtwYXRyb24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aG9tZV9zY3JlZW5fYnV0dG9uICZxdW90O0hvcm9zY29wZSZxdW90OyAmcXVvdDtIb3Jvc2NvcGUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7Ym90dG9tLWJhciZxdW90OyZndDsKICAgICAgICAmbHQ7Jmx0O2hvbWVfc2NyZWVuX2J1dHRvbiAmcXVvdDtNZXNzYWdlcyZxdW90OyAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtidXR0b24tYXBwJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7aW1nIHNyYz0mIzM5O2Fzc2V0cy9pbWcvaWNvbnMvUGhvdG9zLndlYnAmIzM5Oy8mZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bGluayAmcXVvdDsmcXVvdDsgJnF1b3Q7cGhvdG8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2J1dHRvbi1hcHAmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtpbWcgc3JjPSYjMzk7YXNzZXRzL2ltZy9pY29ucy9CYWNrdXBzLndlYnAmIzM5Oy8mZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bGluayAmcXVvdDsmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICQud2lraSgmIzM5OyZsdDsmbHQ7cnVuIFVJLnNhdmVzKCkmZ3Q7Jmd0OyYjMzk7KTsKICAgICAgICAgICAgICAgICZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzI2IiBuYW1lPSJob21lX3NjcmVlbl9idXR0b24iIHRhZ3M9IiIgcG9zaXRpb249IjcyNSw0MTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OyZsdDsmbHQ7d2lkZ2V0ICZxdW90O2hvbWVfc2NyZWVuX2J1dHRvbiZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7YnV0dG9uLWFwcCZxdW90OyZndDsKICAgICZsdDsmbHQ7c2V0IF9pbWcgPSAmcXVvdDthc3NldHMvaW1nL2ljb25zLyZxdW90OyskYXJnc1swXSsmcXVvdDsud2VicCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7aW1nIEBzcmM9JiMzOTtfaW1nJiMzOTsvJmd0OwogICAgJmx0OyZsdDtsaW5rICZxdW90OyZxdW90OyAkYXJnc1sxXSZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L3dpZGdldCZndDsmZ3Q7Jmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMjciIG5hbWU9Im1lc3NhZ2VfYXBwIiB0YWdzPSJtYXBwIG5vdGhvdXIiIHBvc2l0aW9uPSI4NTAsNDEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKLypyZWdpb24gbWVzc2FnZSBhcHAqLyAKCiZsdDsmbHQ7aWYgJHRyYW5zaXRpb24gPT0gdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2dvdG8gJnF1b3Q7YmFja1NjcmVlbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKCiZsdDsmbHQ7aWYgJGNhcCA9PSAxICZhbXA7JmFtcDsgJGVuZE9mQ29udGVudCA9PSB0cnVlICZhbXA7JmFtcDsgJHBtZGxwID09IHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJGVuZE9mQ29udGVudCA9IGZhbHNlJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRjYXAgPSAyJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdCA9IHRydWUgJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlID0gJnF1b3Q7SGFpbGV5RXAyXzEmcXVvdDsgJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90OyRuYW1lLCBpdCYjMzk7cyBtZSBhZ2Fpbi4gSG93JiMzOTtzIGV2ZXJ5dGhpbmcgZ29pbmc/JnF1b3Q7ICZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cgPSAkSGFpbGV5X2NoYXRMb2cuc2xpY2UoLTUpJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwoKJmx0OyZsdDtoZWFkZXIgJnF1b3Q7Q29udGFjdHMmcXVvdDsgJnF1b3Q7JnF1b3Q7ICZxdW90O2hvbWUmcXVvdDsgdHJ1ZSZndDsmZ3Q7CiZsdDtkaXYgc3R5bGU9JnF1b3Q7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMjJweDsmcXVvdDsmZ3Q7CgombHQ7Jmx0O2lmICRjYXAgPT0gMSAmYW1wOyZhbXA7ICRlbmRPZkNvbnRlbnQgPT0gdHJ1ZSAmYW1wOyZhbXA7ICRwbWRscCA9PSBmYWxzZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O21lc3NhZ2VvICZxdW90O2RldiZxdW90OyAkZGV2X2xhc3QgJFZhbmVzc2FfbGFzdF9ob3VyJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZWlmICRjYXAgPT0gMiAmYW1wOyZhbXA7ICRlbmRPZkNvbnRlbnQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDttZXNzYWdlbyAmcXVvdDtkZXYmcXVvdDsgJGRldl9sYXN0ICRWYW5lc3NhX2xhc3RfaG91ciZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKCiZsdDsmbHQ7bWVzc2FnZW8gJnF1b3Q7QW5uaWUmcXVvdDsgJEFubmllX2xhc3QgJEFubmllX2xhc3RfaG91ciZndDsmZ3Q7CgombHQ7Jmx0O2lmICROYW9taV92aXNpYmxlID09IHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDttZXNzYWdlbyAmcXVvdDtOYW9taSZxdW90OyAkTmFvbWlfbGFzdCAkTmFvbWlfbGFzdF9ob3VyJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwoKJmx0OyZsdDtpZiAkVmFuZXNzYV92aXNpYmxlID09IHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDttZXNzYWdlbyAmcXVvdDtWYW5lc3NhJnF1b3Q7ICRWYW5lc3NhX2xhc3QgJFZhbmVzc2FfbGFzdF9ob3VyJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwoKJmx0OyZsdDtpZiAkSGFpbGV5X3Zpc2libGUgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O21lc3NhZ2VvICZxdW90O0hhaWxleSZxdW90OyAkSGFpbGV5X2xhc3QgJEhhaWxleV9sYXN0X2hvdXImZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CgombHQ7Jmx0O2lmICRQaGlsbGlwc192aXNpYmxlID09IHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDttZXNzYWdlbyAmcXVvdDtQaGlsbGlwcyZxdW90OyAkUGhpbGxpcHNfbGFzdCAkUGhpbGxpcHNfbGFzdF9ob3VyJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwoKJmx0OyZsdDtpZiAkSmVubmFfdmlzaWJsZSA9PSB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7bWVzc2FnZW8gJnF1b3Q7SmVubmEmcXVvdDsgJEplbm5hX2xhc3QgJEplbm5hX2xhc3RfaG91ciZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKCiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMyOCIgbmFtZT0iVG9EbyIgdGFncz0idG9kbyBub3Rob3VyIiBwb3NpdGlvbj0iOTc1LDQxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aGVhZGVyICZxdW90O1RvLURvJnF1b3Q7ICZxdW90OyZxdW90OyAmcXVvdDtob21lJnF1b3Q7IHRydWUmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O3BhZGRpbmctY29udGFpbmVyJnF1b3Q7Jmd0OwombHQ7cCZndDtIZXJlIHlvdSBjYW4gY2hlY2sgdGhlIGFjaGlldmVtZW50cyB5b3XigJl2ZSBhbHJlYWR5IHVubG9ja2VkLiZsdDsvcCZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDthY2hpZXZlbWVudHNfdGlsZSZxdW90OyZndDtVbmxvY2tlZDombHQ7L2RpdiZndDsKJmx0OyZsdDtpZiAkZXAxID09IHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0b2RvX2J1dHRvbiAmcXVvdDthc3NldHMvaW1nL2FjaGlldmVtZW50cy9hY2g0LndlYnAmcXVvdDsgJnF1b3Q7RXBpc29kZSAxIC0gRmFyIEZyb20gSG9tZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtpZiAkbmFvbWlfb2ZmZXIgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RvZG9fYnV0dG9uICZxdW90O2Fzc2V0cy9pbWcvYWNoaWV2ZW1lbnRzL2FjaDEud2VicCZxdW90OyAmcXVvdDtBIERhbmdlcm91cyBBbGx5PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtpZiAkZXAyID09IHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0b2RvX2J1dHRvbiAmcXVvdDthc3NldHMvaW1nL2FjaGlldmVtZW50cy9hY2gzLndlYnAmcXVvdDsgJnF1b3Q7RXBpc29kZSAyIC0gQXJlIFlvdSBTdXJlPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKCiZsdDsmbHQ7aWYgJEplbm5hQWNoaXZlbWVudCA9PSB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7dG9kb19idXR0b24gJnF1b3Q7YXNzZXRzL2ltZy9hY2hpZXZlbWVudHMvYWNoMi53ZWJwJnF1b3Q7ICZxdW90O0FuIE9sZCBGcmllbmQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CgoKJmx0O2RpdiBjbGFzcz0mcXVvdDthY2hpZXZlbWVudHNfdGlsZSZxdW90OyZndDtQZW5kaW5nOiZsdDsvZGl2Jmd0OwombHQ7Jmx0O2lmICRlcDEgPT0gZmFsc2UmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0b2RvX2J1dHRvbiAmcXVvdDthc3NldHMvaW1nL2xvY2sud2VicCZxdW90OyAmcXVvdDtFcGlzb2RlIDEgLSBGYXIgRnJvbSBIb21lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O2lmICRuYW9taV9vZmZlciA9PSBmYWxzZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RvZG9fYnV0dG9uICZxdW90O2Fzc2V0cy9pbWcvbG9jay53ZWJwJnF1b3Q7ICZxdW90O0EgRGFuZ2Vyb3VzIEFsbHk/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O2lmICRlcDIgPT0gZmFsc2UmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0b2RvX2J1dHRvbiAmcXVvdDthc3NldHMvaW1nL2xvY2sud2VicCZxdW90OyAmcXVvdDtFcGlzb2RlIDIgLSBBcmUgWW91IFN1cmU/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O2lmICRKZW5uYUFjaGl2ZW1lbnQgPT0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3RvZG9fYnV0dG9uICZxdW90O2Fzc2V0cy9pbWcvbG9jay53ZWJwJnF1b3Q7ICZxdW90O0FuIE9sZCBGcmllbmQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMyOSIgbmFtZT0idG9kb19idXR0b24iIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsNDEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsmbHQ7Jmx0O3dpZGdldCAmcXVvdDt0b2RvX2J1dHRvbiZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3RvZG9fYnV0dG9uJnF1b3Q7Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7dG9kb19pY29uJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7aW1nIEBzcmM9JiMzOTskYXJnc1swXSYjMzk7LyZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3RvZG9fdGV4dCZxdW90OyZndDsKICAgICAgICAgICAgJGFyZ3NbMV0KICAgICAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy93aWRnZXQmZ3Q7Jmd0OyZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzMwIiBuYW1lPSJOb3RlcyIgdGFncz0ibm90ZXMgbm90aG91ciIgcG9zaXRpb249IjEyMjUsNDEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtoZWFkZXIgJnF1b3Q7Tm90ZXMmcXVvdDsgJnF1b3Q7JnF1b3Q7ICZxdW90O2hvbWUmcXVvdDsgdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7ZGl2IGlkPSZxdW90O3BhZGRpbmctY29udGFpbmVyJnF1b3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bm90ZXNfYnV0dG9uICZxdW90O0FubmllJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O25vdGVzX2J1dHRvbiAmcXVvdDtOYW9taSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtub3Rlc19idXR0b24gJnF1b3Q7VmFuZXNzYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtub3Rlc19idXR0b24gJnF1b3Q7SGFpbGV5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O25vdGVzX2J1dHRvbiAmcXVvdDtQaGlsbGlwcyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtub3Rlc19idXR0b24gJnF1b3Q7SmVubmEmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzMxIiBuYW1lPSJub3Rlc19idXR0b24iIHRhZ3M9IiIgcG9zaXRpb249IjEwMCw0MjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OyZsdDsmbHQ7d2lkZ2V0ICZxdW90O25vdGVzX2J1dHRvbiZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O25vdGVzX2J1dHRvbiZxdW90OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJnF1b3Q7JnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtzZXQgX2dvID0gJGFyZ3NbMF0rJnF1b3Q7X25vdGUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2dvdG8gX2dvJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O25vdGVzX3RleHQmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aWYgJGFyZ3NbMF0gIT0gJnF1b3Q7UGhpbGxpcHMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJGFyZ3NbMF0KICAgICAgICAgICAgICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgTXIuIFBoaWxsaXBzCiAgICAgICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAgICAgCiAgICAgICAgICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZm9sZGVyLndlYnAmcXVvdDsvJmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7bm90ZXNfaWNvbiZxdW90OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtzZXQgX2F2YXRhciA9ICZxdW90O2Fzc2V0cy9pbWcvJnF1b3Q7KyRhcmdzWzBdKyZxdW90O19hdmF0YXIud2VicCZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDtpbWcgQHNyYz0mcXVvdDtfYXZhdGFyJnF1b3Q7LyZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy93aWRnZXQmZ3Q7Jmd0OyZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzMyIiBuYW1lPSJTZXR0aW5ncyIgdGFncz0iZGFyayBub3Rob3VyIiBwb3NpdGlvbj0iMjI1LDQyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aGVhZGVyICZxdW90O1NldHRpbmdzJnF1b3Q7ICZxdW90OyZxdW90OyAmcXVvdDtob21lJnF1b3Q7IHRydWUmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O3BhZGRpbmctY29udGFpbmVyJnF1b3Q7Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtzZXR0aW5nX2NvbnRhaW5lciZxdW90OyZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2ljb25fc2V0dGluZyZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2ltZyBzcmM9JiMzOTthc3NldHMvaW1nL3NvdW5kLndlYnAmIzM5Oy8mZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDt0ZXh0X3NldHRpbmcmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYmZ3Q7VGV4dCBTb3VuZCAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7ZGl2Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7c2V0dGluZ19idXR0b24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkYmFjayA9ICZxdW90O1NldHRpbmdzJnF1b3Q7Jmd0OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7c2V0dGluZ19jb250YWluZXImcXVvdDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICZxdW90OyZxdW90OyAmcXVvdDtwYXRyb24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7aWNvbl9zZXR0aW5nJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7aW1nIHNyYz0mIzM5O2Fzc2V0cy9pbWcvcHJlbWl1bS0xLndlYnAmIzM5Oy8mZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDt0ZXh0X3NldHRpbmcmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYmZ3Q7UHJlbWl1bSBNb2RlJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKCiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3NldHRpbmdfY29udGFpbmVyJnF1b3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bGluayAmcXVvdDsmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgICAgICAgICBzZXR1cC50b2dnbGVGdWxsU2NyZWVuKCk7CiAgICAgICAgICAgICZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtpY29uX3NldHRpbmcmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtpbWcgc3JjPSYjMzk7YXNzZXRzL2ltZy9mdWxsLndlYnAmIzM5Oy8mZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDt0ZXh0X3NldHRpbmcmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYmZ3Q7RW5hYmxlIEZ1bGxzY3JlZW4mbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsvZGl2Jmd0OwoKJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzMzIiBuYW1lPSJzd2l0Y2hfYnV0dG9uIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsNDIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsmbHQ7Jmx0O3dpZGdldCAmcXVvdDtzd2l0Y2hfYnV0dG9uJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJGFyZ3NbMF0gPT0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9zX29uLndlYnAmcXVvdDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9zX29mZi53ZWJwJnF1b3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0Oy93aWRnZXQmZ3Q7Jmd0OyZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzM0IiBuYW1lPSJzZXR0aW5nX2J1dHRvbiIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDQyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3NldHRpbmdfYnV0dG9uJnF1b3Q7Jmd0OwogICAgICAgICZsdDtkaXYgaWQ9JnF1b3Q7dGVzdGJ1dHRvbiZxdW90OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtzd2l0Y2hfYnV0dG9uICRzb3VuZCZndDsmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDtidXR0b24gJnF1b3Q7JnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtzZXQgJHNvdW5kID0gISRzb3VuZCZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7cmVwbGFjZSAgJnF1b3Q7I3Rlc3RidXR0b24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzd2l0Y2hfYnV0dG9uICRzb3VuZCZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2J1dHRvbiZndDsmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMzUiIG5hbWU9InBhdHJvbiIgdGFncz0iZGFyayBub3Rob3VyIiBwb3NpdGlvbj0iNjAwLDQyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aGVhZGVyICZxdW90O1ByZW1pdW0gTW9kZSZxdW90OyAmcXVvdDsmcXVvdDsgJGJhY2sgdHJ1ZSZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7cGFkZGluZy1jb250YWluZXImcXVvdDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRwbWRscCBpcyBmYWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtwcmVtaXVtX2NvbnRhaW5lciZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9sb2dvLndlYnAmcXVvdDsvJmd0OwogICAgICAgICAgICAmbHQ7YSB0YXJnZXQ9JnF1b3Q7X2JsYW5rJnF1b3Q7IHJlbD0mcXVvdDtub29wZW5lciBub3JlZmVycmVyJnF1b3Q7IGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucGF0cmVvbi5jb20vVGhlUGhvbmVHdXkmcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9wYXRyZW9uLndlYnAmcXVvdDsmZ3Q7Jmx0Oy9hJmd0OwogICAgICAgICAgICAmbHQ7ZGl2Jmd0O0VudGVyIHlvdXIgUGF0cmVvbiBjb2RlIGJlbGxvdyB0byB1bmxvY2sgYWxsIHByZW1pdW0gY29udGVudDombHQ7L2RpdiZndDsKICAgICAgICAgICAgJmx0OyZsdDt0ZXh0Ym94ICZxdW90OyRhZnFsb3AmcXVvdDsgJnF1b3Q7JnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICAgICAgICAgW1tVbmxvY2t8cGF0cm9uVGVzdF1dCiAgICAgICAgICAgIAogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7cHJlbWl1bV9jb250YWluZXImcXVvdDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9sb2dvLndlYnAmcXVvdDsvJmd0OwogICAgICAgICAgICAgICAgJmx0O2RpdiBzdHlsZT0mcXVvdDttYXJnaW4tdG9wOiAxMnB4OyZxdW90OyZndDtUaGUgcHJlbWl1bSBtb2RlIGlzIG5vdyBhY3RpdmF0ZWQsIHRoYW5rIHlvdSBzbyBtdWNoIGZvciB5b3VyIHN1cHBvcnQsIHRoaXMgZ2FtZSB3b3VsZG7igJl0IGJlIHBvc3NpYmxlIHdpdGhvdXQgeW91ciBoZWxwLiZsdDsvZGl2Jmd0OwogICAgICAgICAgICAmbHQ7L2RpdiZndDsgCiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMzNiIgbmFtZT0icGF0cm9uVGVzdCIgdGFncz0iZGFyayBub3Rob3VyIiBwb3NpdGlvbj0iNzI1LDQyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aGVhZGVyICZxdW90O1ByZW1pdW0gTW9kZSZxdW90OyAmcXVvdDsmcXVvdDsgJnF1b3Q7U2V0dGluZ3MmcXVvdDsgdHJ1ZSZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7cGFkZGluZy1jb250YWluZXImcXVvdDsmZ3Q7CiZsdDsmbHQ7aWYgJGFmcWxvcCBpcyAkYnJzdG9wcSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2dvdG8gJnF1b3Q7cGF0cm9uX3VubG9jayZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7Z290byAmcXVvdDtwYXRyb25fbG9jayZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzM3IiBuYW1lPSJwYXRyb25fdW5sb2NrIiB0YWdzPSJkYXJrIG5vdGhvdXIiIHBvc2l0aW9uPSI4NTAsNDIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtoZWFkZXIgJnF1b3Q7UHJlbWl1bSBNb2RlJnF1b3Q7ICZxdW90OyZxdW90OyAmcXVvdDtob21lJnF1b3Q7IHRydWUmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O3BhZGRpbmctY29udGFpbmVyJnF1b3Q7Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtwcmVtaXVtX2NvbnRhaW5lciZxdW90OyZndDsKICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2xvZ28ud2VicCZxdW90Oy8mZ3Q7CiAgICAgICAgJmx0O2RpdiBzdHlsZT0mcXVvdDttYXJnaW4tdG9wOiAxMnB4OyZxdW90OyZndDtUaGUgcHJlbWl1bSBtb2RlIGlzIG5vdyBhY3RpdmF0ZWQsIHRoYW5rIHlvdSBzbyBtdWNoIGZvciB5b3VyIHN1cHBvcnQsIHRoaXMgZ2FtZSB3b3VsZG7igJl0IGJlIHBvc3NpYmxlIHdpdGhvdXQgeW91ciBoZWxwLiZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRwbWRscCA9IHRydWUmZ3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMzOCIgbmFtZT0icGF0cm9uX2xvY2siIHRhZ3M9ImRhcmsgbm90aG91ciIgcG9zaXRpb249Ijk3NSw0MjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2hlYWRlciAmcXVvdDtQcmVtaXVtIE1vZGUmcXVvdDsgJnF1b3Q7JnF1b3Q7ICRiYWNrIHRydWUmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O3BhZGRpbmctY29udGFpbmVyJnF1b3Q7Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtwcmVtaXVtX2NvbnRhaW5lciZxdW90OyZndDsKICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2xvZ28ud2VicCZxdW90Oy8mZ3Q7CiAgICAgICAgJmx0O2RpdiZndDsmbHQ7aDImZ3Q7SW5jb3JyZWN0IGNvZGUmbHQ7L2gyJmd0OyZsdDsvZGl2Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMzOSIgbmFtZT0icGhvdG8iIHRhZ3M9ImRhcmsgbm90aG91ciIgcG9zaXRpb249IjExMDAsNDIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtoZWFkZXIgJnF1b3Q7UGhvdG9zJnF1b3Q7ICZxdW90OyZxdW90OyAmcXVvdDtob21lJnF1b3Q7IHRydWUmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O3BhZGRpbmctY29udGFpbmVyJnF1b3Q7Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtwaG90b3NfY29udGFpbmVyJnF1b3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7Zm9yIF9pIHJhbmdlICRwaG90b3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VfaW1nIF9pJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9mb3ImZ3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM0MCIgbmFtZT0iU3lzdGVtIiB0YWdzPSJkYXJrIG5vdGhvdXIiIHBvc2l0aW9uPSIxMjI1LDQyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aGVhZGVyICZxdW90O1N5c3RlbSZxdW90OyAmcXVvdDsmcXVvdDsgJnF1b3Q7aG9tZSZxdW90OyB0cnVlJmd0OyZndDsKJmx0OyZsdDtzZXQgX25leHQgPSAkZnJlZUNhcCsxJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDtwYWRkaW5nLWNvbnRhaW5lciZxdW90OyZndDsKICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvbG9nby53ZWJwJnF1b3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7cGFuZWxfYmFjayZxdW90OyZndDsKICAgICAgICAmbHQ7Jmx0O2lmICRwbWRscCA9PSBmYWxzZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7ZGl2Jmd0OyZsdDtoMiZndDtFcGlzb2RlICRmcmVlQ2FwICZsdDtzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiM2NjY7Zm9udC1zaXplOiAxcmVtOyZxdW90OyZndDsoSmFudWFyeSAzMCwgMjAyNSkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9oMiZndDsmbHQ7L2RpdiZndDsKICAgICAgICAgICAgICAgICZsdDtkaXYgc3R5bGU9JnF1b3Q7Y29sb3I6I2Y4Njc1NDttYXJnaW4tdG9wOiAxMnB4OyZxdW90OyZndDtFcGlzb2RlIF9uZXh0IG5vdyBhdmFpbGFibGUgZm9yIHN1YnNjcmliZXJzIG9uIFBhdHJlb24uJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7ZGl2Jmd0OyZsdDtoMiZndDtFcGlzb2RlIF9uZXh0ICZsdDtzcGFuIHN0eWxlPSZxdW90O2NvbG9yOiM2NjY7Zm9udC1zaXplOiAxcmVtOyZxdW90OyZndDsoSmFudWFyeSAzMCwgMjAyNSkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9oMiZndDsmbHQ7L2RpdiZndDsKICAgICAgICAgICAgICAgICAgJmx0O2RpdiBzdHlsZT0mcXVvdDtjb2xvcjojZjg2NzU0O21hcmdpbi10b3A6IDEycHg7JnF1b3Q7Jmd0O1lvdSBhcmUgcGxheWluZyB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhlIGdhbWUuJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgICZsdDsmbHQ7aWYgJHBtZGxwID09IGZhbHNlJmd0OyZndDsKICAgICAgICAmbHQ7YSB0YXJnZXQ9JnF1b3Q7X2JsYW5rJnF1b3Q7IHJlbD0mcXVvdDtub29wZW5lciBub3JlZmVycmVyJnF1b3Q7IGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucGF0cmVvbi5jb20vVGhlUGhvbmVHdXkmcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9wYXRyZW9uMi53ZWJwJnF1b3Q7Jmd0OyZsdDsvYSZndDsKICAgICAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3NldHRpbmdfY29udGFpbmVyJnF1b3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bGluayAmcXVvdDsmcXVvdDsgJnF1b3Q7cGF0cm9uJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2ljb25fc2V0dGluZyZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2ltZyBzcmM9JiMzOTthc3NldHMvaW1nL3ByZW1pdW0tMS53ZWJwJiMzOTsvJmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7dGV4dF9zZXR0aW5nJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2Jmd0O0FscmVhZHkgYSBQYXRyZW9uIHN1YnNjcmliZXI/Jmx0O2JyJmd0O1VubG9jayBwcmVtaXVtIG1vZGUuJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzQxIiBuYW1lPSJIb3Jvc2NvcGUiIHRhZ3M9Imhvcm9zY29wZSBub3Rob3VyIiBwb3NpdGlvbj0iMTAwLDQzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aGVhZGVyICZxdW90O0hvcm9zY29wZSZxdW90OyAmcXVvdDsmcXVvdDsgJnF1b3Q7aG9tZSZxdW90OyB0cnVlJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDtwYWRkaW5nLWNvbnRhaW5lciZxdW90OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7aG9yb3Njb3BlX2NvbnRhaW5lciZxdW90OyZndDsKICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2xvZ28ud2VicCZxdW90OyZndDsKICAgICAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7cHJpbnQgJGhvcm9zY29wZS5yYW5kb20oKSZndDsmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzQyIiBuYW1lPSJDbG9jayIgdGFncz0iZGFyayBjbG9jayIgcG9zaXRpb249IjIyNSw0MzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkYmFjayA9ICZxdW90O0Nsb2NrJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtoZWFkZXIgJnF1b3Q7Q2xvY2smcXVvdDsgJnF1b3Q7JnF1b3Q7ICZxdW90O2hvbWUmcXVvdDsgdHJ1ZSZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7cGFkZGluZy1jb250YWluZXImcXVvdDsmZ3Q7CiAgICAmbHQ7ZGl2IHN0eWxlPSZxdW90O3RleHQtYWxpZ246IGNlbnRlcjsmcXVvdDsmZ3Q7SGVyZSB5b3UgY2FuIGxvYWQgYW55IGNoYXB0ZXIgYXZhaWxhYmxlIGluIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgdGhlIGdhbWUuJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtjbG9ja19wYW5lbCZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtjbG9ja19pbWcmcXVvdDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2VwMS53ZWJwJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtjbG9ja190ZXh0JnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2gzJmd0O0VwaXNvZGUgMSZsdDsvaDMmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7ZGl2IHN0eWxlPSZxdW90O21hcmdpbi10b3A6IDVweDsmcXVvdDsgY2xhc3M9JnF1b3Q7Z3JleSZxdW90OyZndDtGYXIgRnJvbSBIb21lJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2Nsb2NrX2ljb24mcXVvdDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL1BsYXkud2VicCZxdW90OyZndDsKICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bGluayAmcXVvdDsmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgIHN0YXRlLnJlc3RhcnQoKTsKICAgICAgICAgICAgICAgICZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2Nsb2NrX3BhbmVsJnF1b3Q7Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7Y2xvY2tfaW1nJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2VwMi53ZWJwJnF1b3Q7Jmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7Y2xvY2tfdGV4dCZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2gzJmd0O0VwaXNvZGUgMiZsdDsvaDMmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aWYgJHBtZGxwID09IGZhbHNlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDtkaXYgc3R5bGU9JnF1b3Q7bWFyZ2luLXRvcDogNXB4OyZxdW90OyBjbGFzcz0mcXVvdDtvcmFuZ2UmcXVvdDsmZ3Q7QXZhaWxhYmxlIGZvciBQYXRyZW9uIHN1cHBvcnRlcnMmbHQ7L2RpdiZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2RpdiBzdHlsZT0mcXVvdDttYXJnaW4tdG9wOiA1cHg7JnF1b3Q7IGNsYXNzPSZxdW90O2dyZXkmcXVvdDsmZ3Q7QXJlIHlvdSBzdXJlPyZsdDsvZGl2Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtjbG9ja19pY29uJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL1BsYXkud2VicCZxdW90OyZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJnF1b3Q7JnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpZiAkcG1kbHAgPT0gZmFsc2UmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtnb3RvICZxdW90O3BhdHJvbiZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRlbmRPZkNvbnRlbnQgPSBmYWxzZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJGNhcCA9IDImZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdCA9IHRydWUgJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSA9ICZxdW90O0hhaWxleUVwMl8xJnF1b3Q7ICZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7JG5hbWUsIGl0JiMzOTtzIG1lIGFnYWluLiBIb3cmIzM5O3MgZXZlcnl0aGluZyBnb2luZz8mcXVvdDsgJmd0OyZndDsKCiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nID0gJGNhcDJIYWlsZXkmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nID0gJGNhcDJBbm5pZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cgPSAkY2FwMlBoaWxsaXBzJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfdmlzaWJsZSA9ICRjYXAyTmFvbWkmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cgPSAkY2FwMlZhbmVzc2EmZ3Q7Jmd0OwoKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdCA9IGZhbHNlICZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXQgPSBmYWxzZSAmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0ID0gZmFsc2UgJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0ID0gZmFsc2UgJmd0OyZndDsKCiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3Zpc2libGUgPSB0cnVlICZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3Zpc2libGUgPSB0cnVlICZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfdmlzaWJsZSA9IHRydWUgJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3Zpc2libGUgPSB0cnVlICZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtVbmRlcnN0b29kJnF1b3Q7ICZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtJ4oCZbSBkb25lIHRhbGtpbmcgdG8geW91JnF1b3Q7ICZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O1lvdSB0b28sICRuYW1lJnF1b3Q7ICZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGxvdmUgeW91IG1vcmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV92aXNpYmxlID0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICAgICBzZXR1cC50b2FzdCgmcXVvdDtBbm5pZSZxdW90OywmcXVvdDtJdCYjMzk7cyBtZSBhZ2Fpbi4gSG93JiMzOTtzIGV2ZXJ5dGhpbmcgZ29pbmc/JnF1b3Q7LCBTdGF0ZS52YXJpYWJsZXMuaG91cik7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O2dvdG8gJnF1b3Q7aG9tZSZxdW90OyZndDsmZ3Q7CgogICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzQzIiBuYW1lPSJwYWRkaW5nIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsNDM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsmbHQ7Jmx0O3dpZGdldCAmcXVvdDtwYWRkaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyEtLXJlZ2lvbiBwYWRkaW5nIC0tJmd0OwombHQ7ZGl2IGlkPSZxdW90O3BhZGRpbmctYm94JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy93aWRnZXQmZ3Q7Jmd0OyZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+