PCFET0NUWVBFIGh0bWw Cgo8aHRtbCBjbGFzcz0ic2Nyb2xsLXNtb290aCIgbGFuZz0iZW4iPgo8aGVhZD4KPG1ldGEgY2hhcnNldD0idXRmLTgiLz4KPG1ldGEgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCIgbmFtZT0idmlld3BvcnQiLz4KPHRpdGxlPk1pZ3JhaW5lIFRyZWF0bWVudCBpbiBPdmVybGFuZCBQYXJrOiBXaGF0IENoaXJvcHJhY3RpYyBDYW4gQWRkcmVzcyB8IFFMQzwvdGl0bGU CjxtZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJNYW55IG1pZ3JhaW5lcyBoYXZlIGEgY2VydmljYWwgY29tcG9uZW50IHRoYXQgbWVkaWNhdGlvbiBhbG9uZSB3b24ndCBhZGRyZXNzLiBEci4gTmF2ZSBpbiBPdmVybGFuZCBQYXJrIGV4cGxhaW5zIHdoYXQgZXZhbHVhdGlvbiBmaW5kcyBhbmQgd2hhdCB0byBleHBlY3QuIj4KPGxpbmsgaHJlZj0iaHR0cHM6Ly9xdWFsaXR5bGlmZWNoaXJvcHJhY3RpYy5jb20vYmxvZy9taWdyYWluZS10cmVhdG1lbnQtb3ZlcmxhbmQtcGFyayIgcmVsPSJjYW5vbmljYWwiLz48bWV0YSBjb250ZW50PSJNaWdyYWluZXMgYW5kIHRoZSBDZXJ2aWNhbCBTcGluZTogV2hhdCBDaGlyb3ByYWN0aWMgQ2FuIGFuZCBDYW4ndCBGaXgiIHByb3BlcnR5PSJvZzp0aXRsZSIvPjxtZXRhIGNvbnRlbnQ9Ik1hbnkgbWlncmFpbmVzIGhhdmUgYSBjZXJ2aWNhbCBjb21wb25lbnQgdGhhdCBtZWRpY2F0aW9uIGFsb25lIHdvbid0IHJlYWNoLiBEci4gU2FtIE5hdmUgZXhwbGFpbnMgd2hhdCBhIHByb3BlciBldmFsdWF0aW9uIGxvb2tzIGZvciBhbmQgd2hhdCB0cmVhdG1lbnQgaW52b2x2ZXMuIiBwcm9wZXJ0eT0ib2c6ZGVzY3JpcHRpb24iLz48bWV0YSBjb250ZW50PSJ3ZWJzaXRlIiBwcm9wZXJ0eT0ib2c6dHlwZSIvPjxtZXRhIGNvbnRlbnQ9Imh0dHBzOi8vcXVhbGl0eWxpZmVjaGlyb3ByYWN0aWMuY29tL2Jsb2cvbWlncmFpbmUtdHJlYXRtZW50LW92ZXJsYW5kLXBhcmsiIHByb3BlcnR5PSJvZzp1cmwiLz48bWV0YSBjb250ZW50PSJodHRwczovL3F1YWxpdHlsaWZlY2hpcm9wcmFjdGljLmNvbS9ibG9nL2ltYWdlcy9taWdyYWluZS10cmVhdG1lbnQtb3ZlcmxhbmQtcGFyay53ZWJwIiBwcm9wZXJ0eT0ib2c6aW1hZ2UiLz48bWV0YSBjb250ZW50PSJRdWFsaXR5IExpZmUgQ2hpcm9wcmFjdGljIiBwcm9wZXJ0eT0ib2c6c2l0ZV9uYW1lIi8 CjxtZXRhIG5hbWU9InR3aXR0ZXI6Y2FyZCIgY29udGVudD0ic3VtbWFyeV9sYXJnZV9pbWFnZSIvPgo8bWV0YSBuYW1lPSJ0d2l0dGVyOmltYWdlIiBjb250ZW50PSJodHRwczovL3F1YWxpdHlsaWZlY2hpcm9wcmFjdGljLmNvbS9ibG9nL2ltYWdlcy9taWdyYWluZS10cmVhdG1lbnQtb3ZlcmxhbmQtcGFyay53ZWJwIi8 CjxtZXRhIGNvbnRlbnQ9IiM0MERDOUIiIG5hbWU9InRoZW1lLWNvbG9yIi8 CiAgICA8bGluayByZWw9InByZWxvYWQiIGhyZWY9Ii9mb250cy9wbHVzLWpha2FydGEtc2Fucy1sYXRpbi53b2ZmMiIgYXM9ImZvbnQiIHR5cGU9ImZvbnQvd29mZjIiIGNyb3Nzb3JpZ2luPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIvY3NzL3RhaWx3aW5kLm1pbi5jc3MiPgo8c3R5bGU CiAgLyogUGx1cyBKYWthcnRhIFNhbnMg4oCUIHNlbGYtaG9zdGVkICovCiAgQGZvbnQtZmFjZXtmb250LWZhbWlseTonUGx1cyBKYWthcnRhIFNhbnMnO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtd2VpZ2h0OjMwMCA4MDA7Zm9udC1kaXNwbGF5OnN3YXA7c3JjOnVybCgnL2ZvbnRzL3BsdXMtamFrYXJ0YS1zYW5zLWN5cmlsbGljLWV4dC53b2ZmMicpIGZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDQ2MC0wNTJGLFUrMUM4MC0xQzhBLFUrMjBCNCxVKzJERTAtMkRGRixVK0E2NDAtQTY5RixVK0ZFMkUtRkUyRn0KICBAZm9udC1mYWNle2ZvbnQtZmFtaWx5OidQbHVzIEpha2FydGEgU2Fucyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6MzAwIDgwMDtmb250LWRpc3BsYXk6c3dhcDtzcmM6dXJsKCcvZm9udHMvcGx1cy1qYWthcnRhLXNhbnMtdmlldG5hbWVzZS53b2ZmMicpIGZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDEwMi0wMTAzLFUrMDExMC0wMTExLFUrMDEyOC0wMTI5LFUrMDE2OC0wMTY5LFUrMDFBMC0wMUExLFUrMDFBRi0wMUIwLFUrMDMwMC0wMzAxLFUrMDMwMy0wMzA0LFUrMDMwOC0wMzA5LFUrMDMyMyxVKzAzMjksVSsxRUEwLTFFRjksVSsyMEFCfQogIEBmb250LWZhY2V7Zm9udC1mYW1pbHk6J1BsdXMgSmFrYXJ0YSBTYW5zJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDozMDAgODAwO2ZvbnQtZGlzcGxheTpzd2FwO3NyYzp1cmwoJy9mb250cy9wbHVzLWpha2FydGEtc2Fucy1sYXRpbi1leHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7dW5pY29kZS1yYW5nZTpVKzAxMDAtMDJCQSxVKzAyQkQtMDJDNSxVKzAyQzctMDJDQyxVKzAyQ0UtMDJENyxVKzAyREQtMDJGRixVKzAzMDQsVSswMzA4LFUrMDMyOSxVKzFEMDAtMURCRixVKzFFMDAtMUU5RixVKzFFRjItMUVGRixVKzIwMjAsVSsyMEEwLTIwQUIsVSsyMEFELTIwQzAsVSsyMTEzLFUrMkM2MC0yQzdGLFUrQTcyMC1BN0ZGfQogIEBmb250LWZhY2V7Zm9udC1mYW1pbHk6J1BsdXMgSmFrYXJ0YSBTYW5zJztmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDozMDAgODAwO2ZvbnQtZGlzcGxheTpzd2FwO3NyYzp1cmwoJy9mb250cy9wbHVzLWpha2FydGEtc2Fucy1sYXRpbi53b2ZmMicpIGZvcm1hdCgnd29mZjInKTt1bmljb2RlLXJhbmdlOlUrMDAwMC0wMEZGLFUrMDEzMSxVKzAxNTItMDE1MyxVKzAyQkItMDJCQyxVKzAyQzYsVSswMkRBLFUrMDJEQyxVKzAzMDQsVSswMzA4LFUrMDMyOSxVKzIwMDAtMjA2RixVKzIwQUMsVSsyMTIyLFUrMjE5MSxVKzIxOTMsVSsyMjEyLFUrMjIxNSxVK0ZFRkYsVStGRkZEfQogICAgICAgIGJvZHkgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMEQxRjJEOyBjb2xvcjogI2ZmZmZmZjsgb3ZlcmZsb3cteDogaGlkZGVuOyB9CiAgICAgICAgLm1lc2gtYmxvYiB7IHBvc2l0aW9uOiBmaXhlZDsgYm9yZGVyLXJhZGl1czogNTAlOyBmaWx0ZXI6IGJsdXIoMTIwcHgpOyBvcGFjaXR5OiAwLjA3OyBwb2ludGVyLWV2ZW50czogbm9uZTsgei1pbmRleDogMDsgfQogICAgICAgIC50ZXh0LWdyYWRpZW50IHsgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjNDBEQzlCLCAjMkFCRkJGKTsgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7IC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDsgYmFja2dyb3VuZC1jbGlwOiB0ZXh0OyB9CiAgICAgICAgLnNlY3Rpb24tcnVsZSB7IGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpOyB9CiAgICAgICAgLmZhZGUtaW4geyBvcGFjaXR5OiAwOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCk7IHRyYW5zaXRpb246IG9wYWNpdHkgMC42cyBlYXNlLCB0cmFuc2Zvcm0gMC42cyBlYXNlOyB9CiAgICAgICAgLmZhZGUtaW4udmlzaWJsZSB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfQogICAgICAgIG5hdiB7IGJhY2tkcm9wLWZpbHRlcjogYmx1cigxNnB4KTsgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTZweCk7IH0KCiAgICAgICAgLyogQmxvZyBwcm9zZSBzdHlsZXMgKi8KICAgICAgICAucHJvc2UtcWxjIGgyIHsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7CiAgICAgICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICAgICAgICBtYXJnaW4tdG9wOiAyLjVyZW07CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM7CiAgICAgICAgfQogICAgICAgIC5wcm9zZS1xbGMgaDMgewogICAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgY29sb3I6ICM0MERDOUI7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IDEuNzVyZW07CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNnJlbTsKICAgICAgICB9CiAgICAgICAgLnByb3NlLXFsYyBwIHsKICAgICAgICAgICAgY29sb3I6ICNjYmQ1ZTE7CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjg1OwogICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOwogICAgICAgIH0KICAgICAgICAucHJvc2UtcWxjIHN0cm9uZyB7CiAgICAgICAgICAgIGNvbG9yOiAjZmZmZmZmOwogICAgICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIH0KICAgICAgICAucHJvc2UtcWxjIHVsIHsKICAgICAgICAgICAgbWFyZ2luOiAwLjc1cmVtIDAgMXJlbSAwOwogICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07CiAgICAgICAgfQogICAgICAgIC5wcm9zZS1xbGMgdWwgbGkgewogICAgICAgICAgICBjb2xvcjogIzk0YTNiODsKICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNzU7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuM3JlbTsKICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTsKICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtOwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgfQogICAgICAgIC5wcm9zZS1xbGMgdWwgbGk6OmJlZm9yZSB7CiAgICAgICAgICAgIGNvbnRlbnQ6ICfihpInOwogICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgIGNvbG9yOiAjNDBEQzlCOwogICAgICAgICAgICBmb250LXNpemU6IDAuODVyZW07CiAgICAgICAgfQogICAgICAgIC5wcm9zZS1xbGMgYmxvY2txdW90ZSB7CiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgIzQwREM5QjsKICAgICAgICAgICAgbWFyZ2luOiAxLjVyZW0gMDsKICAgICAgICAgICAgcGFkZGluZzogMXJlbSAxLjVyZW07CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoNjQsIDIyMCwgMTU1LCAwLjA2KTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAwLjVyZW0gMC41cmVtIDA7CiAgICAgICAgfQogICAgICAgIC5wcm9zZS1xbGMgYmxvY2txdW90ZSBwIHsKICAgICAgICAgICAgY29sb3I6ICNhN2YzZDA7CiAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsKICAgICAgICAgICAgZm9udC1zaXplOiAxLjA1cmVtOwogICAgICAgIH0KICAgICAgICAucHJvc2UtcWxjIGEgewogICAgICAgICAgICBjb2xvcjogIzQwREM5QjsKICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgICAgICAgICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogM3B4OwogICAgICAgIH0KICAgICAgICAucHJvc2UtcWxjIGE6aG92ZXIgeyBjb2xvcjogI2ZmZmZmZjsgfQoKICAgICAgICAuZ2xhc3MtY2FyZCB7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMzksIDc3LCAxMTEsIDAuMjUpOwogICAgICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCk7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMzcsIDE3NywgMjA2LCAwLjE4KTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMXJlbTsKICAgICAgICB9CgogICAgICAgIC5mYXEtaXRlbSB7CiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMDYpOwogICAgICAgICAgICBwYWRkaW5nOiAxLjVyZW0gMDsKICAgICAgICB9CiAgICAgICAgLmZhcS1pdGVtOmxhc3QtY2hpbGQgeyBib3JkZXItYm90dG9tOiBub25lOyB9CiAgICAgICAgLmZhcS1pdGVtIGgzIHsKICAgICAgICAgICAgY29sb3I6ICNmZmZmZmY7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtOwogICAgICAgIH0KICAgICAgICAuZmFxLWl0ZW0gcCB7CiAgICAgICAgICAgIGNvbG9yOiAjOTRhM2I4OwogICAgICAgICAgICBmb250LXNpemU6IDAuOTVyZW07CiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjc1OwogICAgICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgfQogICAgPC9zdHlsZT4KPCEtLSDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgU0NIRU1BIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAtLT4KPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIj4KICAgIHsKICAgICAgIkBjb250ZXh0IjogImh0dHBzOi8vc2NoZW1hLm9yZyIsCiAgICAgICJAZ3JhcGgiOiBbCiAgICAgICAgewogICAgICAgICAgIkB0eXBlIjogIk1lZGljYWxCdXNpbmVzcyIsCiAgICAgICAgICAiYWRkaXRpb25hbFR5cGUiOiAiQ2hpcm9wcmFjdG9yIiwKICAgICAgICAgICJAaWQiOiAiaHR0cHM6Ly9xdWFsaXR5bGlmZWNoaXJvcHJhY3RpYy5jb20vI29yZ2FuaXphdGlvbiIsCiAgICAgICAgICAibmFtZSI6ICJRdWFsaXR5IExpZmUgQ2hpcm9wcmFjdGljIiwKICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9xdWFsaXR5bGlmZWNoaXJvcHJhY3RpYy5jb20vIiwKICAgICAgICAgICJ0ZWxlcGhvbmUiOiAiKzEtOTEzLTQ4OC0zMjMzIiwKICAgICAgICAgICJwcmljZVJhbmdlIjogIiQkIiwKICAgICAgICAgICJsb2dvIjogImh0dHBzOi8vcXVhbGl0eWxpZmVjaGlyb3ByYWN0aWMuY29tL3FsY2xvZ28ud2VicCIsCiAgICAgICAgICAiaW1hZ2UiOiAiaHR0cHM6Ly9xdWFsaXR5bGlmZWNoaXJvcHJhY3RpYy5jb20vZHJuYXZlaGVhZHNob3Qud2VicCIsCiAgICAgICAgICAiYWRkcmVzcyI6IHsKICAgICAgICAgICAgIkB0eXBlIjogIlBvc3RhbEFkZHJlc3MiLAogICAgICAgICAgICAic3RyZWV0QWRkcmVzcyI6ICI3MTAyIENvbGxlZ2UgQmx2ZCIsCiAgICAgICAgICAgICJhZGRyZXNzTG9jYWxpdHkiOiAiT3ZlcmxhbmQgUGFyayIsCiAgICAgICAgICAgICJhZGRyZXNzUmVnaW9uIjogIktTIiwKICAgICAgICAgICAgInBvc3RhbENvZGUiOiAiNjYyMTAiLAogICAgICAgICAgICAiYWRkcmVzc0NvdW50cnkiOiAiVVMiCiAgICAgICAgICB9LAogICAgICAgICAgImdlbyI6IHsKICAgICAgICAgICAgIkB0eXBlIjogIkdlb0Nvb3JkaW5hdGVzIiwKICAgICAgICAgICAgImxhdGl0dWRlIjogMzguOTI3MiwKICAgICAgICAgICAgImxvbmdpdHVkZSI6IC05NC42Njc3CiAgICAgICAgICB9LAogICAgICAgICAgIm9wZW5pbmdIb3Vyc1NwZWNpZmljYXRpb24iOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAiQHR5cGUiOiAiT3BlbmluZ0hvdXJzU3BlY2lmaWNhdGlvbiIsCiAgICAgICAgICAgICAgImRheU9mV2VlayI6IFsiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5Il0sCiAgICAgICAgICAgICAgIm9wZW5zIjogIjA4OjMwIiwKICAgICAgICAgICAgICAiY2xvc2VzIjogIjE3OjMwIgogICAgICAgICAgICB9CiAgICAgICAgICBdLAogICAgICAgICAgImFyZWFTZXJ2ZWQiOiBbCiAgICAgICAgICAgICJPdmVybGFuZCBQYXJrLCBLUyIsIk9sYXRoZSwgS1MiLCJMZW5leGEsIEtTIiwiTGVhd29vZCwgS1MiLCJQcmFpcmllIFZpbGxhZ2UsIEtTIiwiS2Fuc2FzIENpdHksIE1PIgogICAgICAgICAgXSwKICAgICAgICAgICJzYW1lQXMiOiBbImh0dHBzOi8vZy5wYWdlL3IvQ2FTSHo0Z3d2WTJnRUJNIl0sCiAgICAgICAgICAiYWdncmVnYXRlUmF0aW5nIjogewogICAgICAgICAgICAiQHR5cGUiOiAiQWdncmVnYXRlUmF0aW5nIiwKICAgICAgICAgICAgInJhdGluZ1ZhbHVlIjogIjUuMCIsCiAgICAgICAgICAgICJyZXZpZXdDb3VudCI6ICIxMDciLAogICAgICAgICAgICAiYmVzdFJhdGluZyI6ICI1IiwKICAgICAgICAgICAgIndvcnN0UmF0aW5nIjogIjEiCiAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiQHR5cGUiOiAiQXJ0aWNsZSIsCiAgICAgICAgICAiaGVhZGxpbmUiOiAiTWlncmFpbmVzIGFuZCB0aGUgQ2VydmljYWwgU3BpbmU6IFdoYXQgQ2hpcm9wcmFjdGljIENhbiBhbmQgQ2FuJ3QgRml4IiwKICAgICAgICAgICJhdXRob3IiOiB7CiAgICAgICAgICAgICJAdHlwZSI6ICJQZXJzb24iLAogICAgICAgICAgICAibmFtZSI6ICJEci4gU2FtIE5hdmUiCiAgICAgICAgICB9LAogICAgICAgICAgInB1Ymxpc2hlciI6IHsKICAgICAgICAgICAgIkB0eXBlIjogIk9yZ2FuaXphdGlvbiIsCiAgICAgICAgICAgICJuYW1lIjogIlF1YWxpdHkgTGlmZSBDaGlyb3ByYWN0aWMiLAogICAgICAgICAgICAibG9nbyI6IHsKICAgICAgICAgICAgICAiQHR5cGUiOiAiSW1hZ2VPYmplY3QiLAogICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9xdWFsaXR5bGlmZWNoaXJvcHJhY3RpYy5jb20vcWxjbG9nby53ZWJwIgogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgIm1haW5FbnRpdHlPZlBhZ2UiOiAiaHR0cHM6Ly9xdWFsaXR5bGlmZWNoaXJvcHJhY3RpYy5jb20vYmxvZy9taWdyYWluZS10cmVhdG1lbnQtb3ZlcmxhbmQtcGFyayIsCiAgICAgICAgICAiZGF0ZVB1Ymxpc2hlZCI6ICIyMDI2LTA2LTE1IgogICAgICAgIH0KICAgICAgXQogICAgfQogICAgPC9zY3JpcHQ CjxsaW5rIGhyZWY9Ii9xbGMtaWNvbi53ZWJwIiByZWw9Imljb24iIHR5cGU9ImltYWdlL3dlYnAiLz4KPGxpbmsgaHJlZj0iL2FwcGxldG91Y2hpY29uLnBuZyIgcmVsPSJhcHBsZS10b3VjaC1pY29uIi8 CjxsaW5rIGhyZWY9Ii9zaXRlLndlYm1hbmlmZXN0IiByZWw9Im1hbmlmZXN0Ii8 CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9hbmFseXRpY3MuYWhyZWZzLmNvbS9hbmFseXRpY3MuanMiIGRhdGEta2V5PSIzZFhRYlZWWEk4aDg2YXpucHdOTzd3IiBhc3luYz48L3NjcmlwdD4KICAgIDwhLS0gTWljcm9zb2Z0IENsYXJpdHkgLS0 CiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI CiAgICAgICAgKGZ1bmN0aW9uKGMsbCxhLHIsaSx0LHkpewogICAgICAgICAgICBjW2FdPWNbYV18fGZ1bmN0aW9uKCl7KGNbYV0ucT1jW2FdLnF8fFtdKS5wdXNoKGFyZ3VtZW50cyl9OwogICAgICAgICAgICB0PWwuY3JlYXRlRWxlbWVudChyKTt0LmFzeW5jPTE7dC5zcmM9Imh0dHBzOi8vd3d3LmNsYXJpdHkubXMvdGFnLyIraTsKICAgICAgICAgICAgeT1sLmdldEVsZW1lbnRzQnlUYWdOYW1lKHIpWzBdO3kucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodCx5KTsKICAgICAgICB9KSh3aW5kb3csIGRvY3VtZW50LCAiY2xhcml0eSIsICJzY3JpcHQiLCAid3RuNG9hc3k5ZiIpOwogICAgPC9zY3JpcHQ CiAgICA8L2hlYWQ Cjxib2R5IGNsYXNzPSJhbnRpYWxpYXNlZCBmb250LXNhbnMiPgo8ZGl2IGNsYXNzPSJtZXNoLWJsb2IgYmctcWxjLW1pbnQgdy1bNjAwcHhdIGgtWzYwMHB4XSB0b3AtWy0xNTBweF0gbGVmdC1bLTE1MHB4XSI PC9kaXY CjxkaXYgY2xhc3M9Im1lc2gtYmxvYiBiZy1xbGMtdGVhbCB3LVs1MDBweF0gaC1bNTAwcHhdIGJvdHRvbS1bLTEwMHB4XSByaWdodC1bLTEwMHB4XSI PC9kaXY CjwhLS0gTkFWIC0tPgo8bmF2IGNsYXNzPSJmaXhlZCB0b3AtMCBsZWZ0LTAgcmlnaHQtMCB6LTUwIGJnLXFsYy1pbmsvODAgYm9yZGVyLWIgYm9yZGVyLXdoaXRlLzUiIHN0eWxlPSJiYWNrZHJvcC1maWx0ZXI6Ymx1cigxNnB4KTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpOyI CjxkaXYgY2xhc3M9Im1heC13LTd4bCBteC1hdXRvIHB4LTQgc206cHgtNiBsZzpweC04IGgtMTYgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIj4KPGEgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yLjUiIGhyZWY9Ii8iPgo8aW1nIGFsdD0iUXVhbGl0eSBMaWZlIENoaXJvcHJhY3RpYyBpY29uIiBjbGFzcz0iaC05IG1kOmgtMTEgdy1hdXRvIGZsZXgtc2hyaW5rLTAiIG9uZXJyb3I9InRoaXMuc3R5bGUuZGlzcGxheT0nbm9uZSciIHNyYz0iL3FsYy1pY29uLndlYnAiIHdpZHRoPSIxMTAiIGhlaWdodD0iOTIiLz4KPHNwYW4gY2xhc3M9InRleHQteGwgbWQ6dGV4dC0yeGwgZm9udC1tZWRpdW0gdHJhY2tpbmctdGlnaHQgdGV4dC13aGl0ZSI CiAgICAgICAgICAgICAgICAgICAgUXVhbGl0eSBMaWZlIDxzcGFuIGNsYXNzPSJ0ZXh0LXFsYy1taW50Ij5DaGlyb3ByYWN0aWM8L3NwYW4 Cjwvc3Bhbj4KPC9hPgo8ZGl2IGNsYXNzPSJoaWRkZW4gbWQ6ZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTYiPgo8YSBjbGFzcz0idGV4dC1ncmF5LTMwMCBob3Zlcjp0ZXh0LXFsYy1taW50IHRyYW5zaXRpb24tY29sb3JzIHRleHQtc20gZm9udC1tZWRpdW0iIGhyZWY9Ii9wYXRpZW50LWpvdXJuZXkiPlByb2Nlc3M8L2E CjxhIGNsYXNzPSJ0ZXh0LWdyYXktMzAwIGhvdmVyOnRleHQtcWxjLW1pbnQgdHJhbnNpdGlvbi1jb2xvcnMgdGV4dC1zbSBmb250LW1lZGl1bSIgaHJlZj0iL2NvbmRpdGlvbnMiPkNvbmRpdGlvbnM8L2E CjxhIGNsYXNzPSJ0ZXh0LWdyYXktMzAwIGhvdmVyOnRleHQtcWxjLW1pbnQgdHJhbnNpdGlvbi1jb2xvcnMgdGV4dC1zbSBmb250LW1lZGl1bSIgaHJlZj0iL2F1dG8taW5qdXJ5Ij5BdXRvIEluanVyeTwvYT4KPGEgY2xhc3M9InRleHQtZ3JheS0zMDAgaG92ZXI6dGV4dC1xbGMtbWludCB0cmFuc2l0aW9uLWNvbG9ycyB0ZXh0LXNtIGZvbnQtbWVkaXVtIiBocmVmPSIvZnVuY3Rpb25hbCI RnVuY3Rpb25hbCBNZWQ8L2E CjxhIGNsYXNzPSJ0ZXh0LWdyYXktMzAwIGhvdmVyOnRleHQtcWxjLW1pbnQgdHJhbnNpdGlvbi1jb2xvcnMgdGV4dC1zbSBmb250LW1lZGl1bSIgaHJlZj0iL2Fib3V0Ij5BYm91dDwvYT4KPGEgY2xhc3M9InRleHQtZ3JheS0zMDAgaG92ZXI6dGV4dC1xbGMtbWludCB0cmFuc2l0aW9uLWNvbG9ycyB0ZXh0LXNtIGZvbnQtbWVkaXVtIiBocmVmPSIvYmxvZy8iPkJsb2c8L2E CjxhIGNsYXNzPSJweC01IHB5LTIuNSByb3VuZGVkLWZ1bGwgYmctcWxjLW1pbnQgdGV4dC1xbGMtaW5rIGZvbnQtYm9sZCB0ZXh0LXNtIHNoYWRvdy1bMF8wXzE1cHhfcmdiYSg2NCwyMjAsMTU1LDAuMzUpXSBob3ZlcjpiZy13aGl0ZSB0cmFuc2l0aW9uLWFsbCIgaHJlZj0iL3NjaGVkdWxlIj5Cb29rIGFuIEV2YWx1YXRpb24g4oaSPC9hPgo8L2Rpdj4KPGEgY2xhc3M9Im1kOmhpZGRlbiBweC00IHB5LTIgYmctcWxjLW1pbnQgdGV4dC1xbGMtaW5rIHJvdW5kZWQtZnVsbCB0ZXh0LXhzIGZvbnQtYm9sZCIgaHJlZj0iL3NjaGVkdWxlIj5Cb29rPC9hPgo8L2Rpdj4KPC9uYXY CjwhLS0gSEVSTyAtLT4KPHNlY3Rpb24gY2xhc3M9InJlbGF0aXZlIHB0LTI4IHBiLTEwIGxnOnB0LTM2IGxnOnBiLTE0Ij4KPGRpdiBjbGFzcz0ibWF4LXctM3hsIG14LWF1dG8gcHgtNCBzbTpweC02IGxnOnB4LTggcmVsYXRpdmUgei0xMCI CjxkaXYgY2xhc3M9ImZhZGUtaW4iPgo8ZGl2IGNsYXNzPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyBtYi01Ij4KPGEgY2xhc3M9InRleHQteHMgZm9udC1zZW1pYm9sZCB0ZXh0LWdyYXktNDAwIGhvdmVyOnRleHQtcWxjLW1pbnQgdHJhbnNpdGlvbi1jb2xvcnMgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVzdCIgaHJlZj0iL2NvbmRpdGlvbnMiPkNvbmRpdGlvbnM8L2E CjxzcGFuIGNsYXNzPSJ0ZXh0LWdyYXktNjAwIj7igLo8L3NwYW4 CjxzcGFuIGNsYXNzPSJ0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdGV4dC1xbGMtbWludCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZXN0Ij5IZWFkYWNoZXMgJmFtcDsgTWlncmFpbmVzPC9zcGFuPgo8L2Rpdj4KPGgxIGNsYXNzPSJ0ZXh0LTR4bCBsZzp0ZXh0LTV4bCBmb250LWV4dHJhYm9sZCB0cmFja2luZy10aWdodCBsZWFkaW5nLXRpZ2h0IG1iLTUiPgogICAgICAgICAgICAgICAgICAgIE1pZ3JhaW5lIFRyZWF0bWVudCBpbiBPdmVybGFuZCBQYXJrOjxici8 CjxzcGFuIGNsYXNzPSJ0ZXh0LWdyYWRpZW50Ij5XaGF0IENoaXJvcHJhY3RpYyBDYW4gQWRkcmVzczwvc3Bhbj4KPC9oMT4KPHAgY2xhc3M9InRleHQtbGcgdGV4dC1ncmF5LTMwMCBsZWFkaW5nLXJlbGF4ZWQgbWItNiI CiAgICAgICAgICAgICAgICAgICAgTW9zdCBwZW9wbGUgdHJlYXRpbmcgbWlncmFpbmVzIGFyZSBmb2N1c2VkIGVudGlyZWx5IG9uIGJyYWluIGNoZW1pc3RyeSDigJQgdHJpcHRhbnMsIHByZXZlbnRpdmUgbWVkaWNhdGlvbnMsIHRyaWdnZXIgYXZvaWRhbmNlLiA8c3Ryb25nIGNsYXNzPSJ0ZXh0LXdoaXRlIj5CdXQgd2hlbiB0aGUgY2VydmljYWwgc3BpbmUgaXMgYSBjb250cmlidXRpbmcgZmFjdG9yLCBtZWRpY2F0aW9uIGFsb25lIHdvbid0IHJlZHVjZSB0aGUgZnJlcXVlbmN5LiBUaGF0IHBhcnQgaGFzbid0IGJlZW4gZXZhbHVhdGVkLjwvc3Ryb25nPgo8L3A CjwhLS0gQXV0aG9yIC8gbWV0YSByb3cgLS0 CjxkaXYgY2xhc3M9ImZsZXggaXRlbXMtY2VudGVyIGdhcC00IHB0LTUgYm9yZGVyLXQgYm9yZGVyLXdoaXRlLzEwIj4KPGltZyBhbHQ9IkRyLiBTYW0gTmF2ZSIgY2xhc3M9InctMTEgaC0xMSByb3VuZGVkLWZ1bGwgb2JqZWN0LWNvdmVyIGJvcmRlci0yIGJvcmRlci1xbGMtbWludC8zMCIgb25lcnJvcj0idGhpcy5zdHlsZS5kaXNwbGF5PSdub25lJyIgc3JjPSIvZHItbmF2ZS1oZWFkc2hvdC53ZWJwIi8 CjxkaXY CjxwIGNsYXNzPSJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZSI RHIuIFNhbSBOYXZlLCBEQzwvcD4KPHAgY2xhc3M9InRleHQteHMgdGV4dC1ncmF5LTUwMCI UXVhbGl0eSBMaWZlIENoaXJvcHJhY3RpYyDigKIgT3ZlcmxhbmQgUGFyaywgS1Mg4oCiIEp1bmUgMTUsIDIwMjY8L3A CjwvZGl2Pgo8L2Rpdj4KPC9kaXY CjwvZGl2Pgo8L3NlY3Rpb24 CjwhLS0gTUFJTiBDT05URU5UIC0tPgo8bWFpbiBjbGFzcz0icmVsYXRpdmUgei0xMCBwYi0yMCI CjxkaXYgY2xhc3M9Im1heC13LTN4bCBteC1hdXRvIHB4LTQgc206cHgtNiBsZzpweC04Ij4KPCEtLSBIZXJvIGltYWdlIC0tPgo8ZGl2IGNsYXNzPSJtYi0xMCBmYWRlLWluIHJvdW5kZWQtMnhsIG92ZXJmbG93LWhpZGRlbiI CjxpbWcgc3JjPSIvaGVyb2ltYWdlLndlYnAiIGFsdD0iTWlncmFpbmUgdHJlYXRtZW50IGNvbnN1bHRhdGlvbiBhdCBRdWFsaXR5IExpZmUgQ2hpcm9wcmFjdGljIGluIE92ZXJsYW5kIFBhcmsgS1MiIGNsYXNzPSJ3LWZ1bGwgaC1hdXRvIG9iamVjdC1jb3ZlciIgd2lkdGg9IjEyMDAiIGhlaWdodD0iNjc1Ii8 CjwvZGl2Pgo8IS0tIEludHJvIGNhbGxvdXQgLS0 CjxkaXYgY2xhc3M9ImdsYXNzLWNhcmQgcC02IG1iLTEwIGZhZGUtaW4iPgo8cCBjbGFzcz0idGV4dC1ncmF5LTMwMCBsZWFkaW5nLXJlbGF4ZWQgbWItMyI CiAgICAgICAgICAgICAgICAgICAgTWlncmFpbmVzIGFyZSBvbmUgb2YgdGhlIG1vc3QgZGlzYWJsaW5nIGNvbmRpdGlvbnMgcGVvcGxlIG1hbmFnZSB3aXRob3V0IGEgY2xlYXIgcGxhbi4gVGhlIHN0YW5kYXJkIGFwcHJvYWNoIOKAlCBpZGVudGlmeSB0cmlnZ2VycywgdGFrZSBtZWRpY2F0aW9uIHdoZW4gb25lIHN0YXJ0cywgY29uc2lkZXIgYSBkYWlseSBwcmV2ZW50aXZlIOKAlCBpcyByZWFzb25hYmxlIGZvciBtYW5hZ2luZyBzeW1wdG9tcy4gPHN0cm9uZyBjbGFzcz0idGV4dC13aGl0ZSI QnV0IGl0IGRvZXNuJ3QgYWRkcmVzcyB0aGUgY2VydmljYWwgc3BpbmUsIHdoaWNoIGlzIG9uZSBvZiB0aGUgbW9zdCBjb25zaXN0ZW50IGFuZCB1bmRlcnJlY29nbml6ZWQgY29udHJpYnV0b3JzIHRvIG1pZ3JhaW5lIGZyZXF1ZW5jeS48L3N0cm9uZz4KPC9wPgo8cCBjbGFzcz0idGV4dC1ncmF5LTMwMCBsZWFkaW5nLXJlbGF4ZWQgbWItMyI CiAgICAgICAgICAgICAgICAgICAgVGhpcyBpc24ndCBhIGNsYWltIHRoYXQgY2hpcm9wcmFjdGljIGN1cmVzIG1pZ3JhaW5lcy4gSXQncyBhIG1vcmUgc3BlY2lmaWMgY2xhaW06IGluIHBhdGllbnRzIHdoZXJlIHVwcGVyIGNlcnZpY2FsIHJlc3RyaWN0aW9uIGlzIGxvd2VyaW5nIHRoZWlyIHRocmVzaG9sZCBmb3IgYXR0YWNrcywgYWRkcmVzc2luZyB0aGF0IHJlc3RyaWN0aW9uIHJlZHVjZXMgZnJlcXVlbmN5LiBUaGUgZXZhbHVhdGlvbiBkZXRlcm1pbmVzIHdoZXRoZXIgdGhhdCdzIHRydWUgZm9yIGEgZ2l2ZW4gcGF0aWVudC4KICAgICAgICAgICAgICAgIDwvcD4KPHAgY2xhc3M9InRleHQtZ3JheS00MDAgdGV4dC1zbSI CiAgICAgICAgICAgICAgICAgICAgQXMgYSA8YSBjbGFzcz0idGV4dC1xbGMtbWludCBob3Zlcjp0ZXh0LXdoaXRlIHVuZGVybGluZSB1bmRlcmxpbmUtb2Zmc2V0LTIiIGhyZWY9Ii9oZWFkYWNoZS10cmVhdG1lbnQtb3ZlcmxhbmQtcGFyayI aGVhZGFjaGUgY2hpcm9wcmFjdG9yIGluIE92ZXJsYW5kIFBhcms8L2E LCBoZXJlJ3Mgd2hhdCBJIGFjdHVhbGx5IGxvb2sgZm9yIGFuZCB3aGF0IHBhdGllbnRzIHdpdGggYSBjZXJ2aWNvZ2VuaWMgY29tcG9uZW50IGNhbiByZWFsaXN0aWNhbGx5IGV4cGVjdC4KICAgICAgICAgICAgICAgIDwvcD4KPC9kaXY CjwhLS0gQXJ0aWNsZSBib2R5IC0tPgo8YXJ0aWNsZSBjbGFzcz0icHJvc2UtcWxjIGZhZGUtaW4iPgoKPGgyPldoeSB0aGUgQ2VydmljYWwgU3BpbmUgSXMgSW52b2x2ZWQgaW4gTWlncmFpbmVzPC9oMj4KPHA VGhlIGNvbm5lY3Rpb24gYmV0d2VlbiB0aGUgdXBwZXIgY2VydmljYWwgc3BpbmUgYW5kIG1pZ3JhaW5lIGlzIGFuYXRvbWljYWwuIEF0IHRoZSBsZXZlbCBvZiBDMSwgQzIsIGFuZCBDMywgdGhlIHNlbnNvcnkgZmliZXJzIGZyb20gdGhlIGNlcnZpY2FsIG5lcnZlcyBjb252ZXJnZSB3aXRoIHRoZSB0cmlnZW1pbmFsIG51Y2xldXMgY2F1ZGFsaXMg4oCUIHRoZSBicmFpbnN0ZW0gc3RydWN0dXJlIHJlc3BvbnNpYmxlIGZvciBwcm9jZXNzaW5nIHBhaW4gZnJvbSB0aGUgaGVhZCwgZmFjZSwgYW5kIHNjYWxwLiBUaGlzIGNvbnZlcmdlbmNlIHpvbmUgaXMgY2FsbGVkIHRoZSB0cmlnZW1pbm9jZXJ2aWNhbCBjb21wbGV4LjwvcD4KPHA V2hlbiB0aGUgdXBwZXIgY2VydmljYWwgam9pbnRzIGFyZSByZXN0cmljdGVkIG9yIGlycml0YXRlZCwgdGhleSBnZW5lcmF0ZSBhIHBlcnNpc3RlbnQgYWZmZXJlbnQgc2lnbmFsIGludG8gdGhpcyBjb252ZXJnZW5jZSB6b25lLiBUaGF0IHNpZ25hbCBkb2VzIHR3byB0aGluZ3M6IGl0IGNhbiBwcm9kdWNlIHJlZmVycmVkIHBhaW4gdGhhdCBtaW1pY3Mgb3IgYWNjb21wYW5pZXMgYSBtaWdyYWluZSwgYW5kIOKAlCBtb3JlIGltcG9ydGFudGx5IOKAlCBpdCBsb3dlcnMgdGhlIG92ZXJhbGwgYWN0aXZhdGlvbiB0aHJlc2hvbGQgb2YgdGhlIHRyaWdlbWlub2NlcnZpY2FsIGNvbXBsZXguIEEgbmVydm91cyBzeXN0ZW0gdGhhdCBpcyBhbHJlYWR5IGZpcmluZyBhdCB0aGUgcGVyaXBoZXJ5IHRha2VzIGxlc3MgdG8gdHJpZ2dlciBhIGZ1bGwgbWlncmFpbmUgY2FzY2FkZSB0aGFuIG9uZSB0aGF0IGlzIHF1aWV0LjwvcD4KPHA PHN0cm9uZz5UaGlzIGlzIHdoeSBzb21lIHBlb3BsZSBub3RpY2UgdGhhdCB0aGVpciBtaWdyYWluZXMgYXJlIGNvbnNpc3RlbnRseSBwcmVjZWRlZCBieSBuZWNrIHN0aWZmbmVzcyBvciBiYXNlLW9mLXNrdWxsIHRlbnNpb24uPC9zdHJvbmc IFRoZSBjZXJ2aWNhbCBqb2ludHMgYXJlIHJhbXBpbmcgdXAgc2Vuc2l0aXphdGlvbiBpbiB0aGUgaG91cnMgYmVmb3JlIHRoZSBoZWFkYWNoZSBmdWxseSBkZXZlbG9wcy4gVGhlIG5lY2sgaXNuJ3QgYSB0cmlnZ2VyIGluIHRoZSB3YXkgdGhhdCB3aW5lIG9yIGZsdW9yZXNjZW50IGxpZ2h0cyBhcmUg4oCUIGl0J3MgYSBzdHJ1Y3R1cmFsIGlucHV0IHRoYXQga2VlcHMgdGhlIHRocmVzaG9sZCBsb3cgZW5vdWdoIHRoYXQgdHJpZ2dlcnMgbWF0dGVyIG1vcmUgdGhhbiB0aGV5IHNob3VsZC48L3A Cgo8aDI TWlncmFpbmVzIEFyZSBOb3QgQWxsIHRoZSBTYW1lPC9oMj4KPHA VGhpcyBpcyB3b3J0aCBiZWluZyBkaXJlY3QgYWJvdXQ6IG5vdCBldmVyeSBtaWdyYWluZSBoYXMgYSBtZWFuaW5nZnVsIGNlcnZpY29nZW5pYyBjb21wb25lbnQuIE1pZ3JhaW5lcyBleGlzdCBvbiBhIHNwZWN0cnVtLCBhbmQgdGhlIGRlZ3JlZSB0byB3aGljaCBjZXJ2aWNhbCBtZWNoYW5pY3MgY29udHJpYnV0ZSB2YXJpZXMgc2lnbmlmaWNhbnRseSBmcm9tIHBhdGllbnQgdG8gcGF0aWVudC48L3A CjxwPkhvcm1vbmFsIG1pZ3JhaW5lcyDigJQgcGFydGljdWxhcmx5IHRob3NlIHRpZ2h0bHkgbGlua2VkIHRvIHRoZSBtZW5zdHJ1YWwgY3ljbGUg4oCUIGFyZSBwcmltYXJpbHkgZHJpdmVuIGJ5IGVzdHJvZ2VuIGZsdWN0dWF0aW9uLiBQdXJlbHkgdmFzY3VsYXIgb3IgY29ydGljYWwgc3ByZWFkaW5nIGRlcHJlc3Npb24tZHJpdmVuIG1pZ3JhaW5lcyB3aXRob3V0IGFueSBjZXJ2aWNhbCBwcm92b2NhdGlvbiBwYXR0ZXJuIGFyZSBkaWZmZXJlbnQgZnJvbSBtaWdyYWluZXMgdGhhdCByZWxpYWJseSBpbnZvbHZlIG5lY2sgc3RpZmZuZXNzLCBiYXNlLW9mLXNrdWxsIHBhaW4sIG9yIGNlcnZpY2FsIG1vdGlvbiByZXN0cmljdGlvbiBiZWZvcmUgb3IgZHVyaW5nIGFuIGF0dGFjay48L3A CjxwPlRoZSBob25lc3QgYW5zd2VyIGlzIHRoYXQgY2hpcm9wcmFjdGljIGNhcmUgaXMgbW9zdCBsaWtlbHkgdG8gcmVkdWNlIG1pZ3JhaW5lIGZyZXF1ZW5jeSB3aGVuIHRoZXJlIGlzIGdlbnVpbmUgY2Vydmljb2dlbmljIGludm9sdmVtZW50IOKAlCBhbmQgbGVhc3QgbGlrZWx5IHRvIGhlbHAgd2hlbiBpdCBpc24ndCBwcmVzZW50LiBUaGUgZXZhbHVhdGlvbiBpcyBob3cgeW91IGRldGVybWluZSB3aGljaCBzaXR1YXRpb24geW91J3JlIGluLiBQcm9jZWVkaW5nIHdpdGhvdXQgdGhhdCBhc3Nlc3NtZW50IGlzIGd1ZXNzaW5nLjwvcD4KCjxoMj5XaGF0IEkgRmluZCBpbiBNaWdyYWluZSBQYXRpZW50cyBEdXJpbmcgRXZhbHVhdGlvbjwvaDI CjxwPldoZW4gc29tZW9uZSBjb21lcyBpbiB3aXRoIGEgbWlncmFpbmUgaGlzdG9yeSwgYSB0aG9yb3VnaCBjZXJ2aWNhbCBldmFsdWF0aW9uIHVzdWFsbHkgcmV2ZWFscyBvbmUgb3IgbW9yZSBvZiB0aGUgZm9sbG93aW5nOjwvcD4KCjxoMz5VcHBlciBDZXJ2aWNhbCBKb2ludCBSZXN0cmljdGlvbjwvaDM CjxwPlRoZSBvY2NpcHV0LUMxIGFuZCBDMS1DMiBqb2ludHMgYXJlIHRoZSBtb3N0IG1vYmlsZSBhbmQgbW9zdCBjb21tb25seSByZXN0cmljdGVkIHNlZ21lbnRzIGluIHRoZSBjZXJ2aWNhbCBzcGluZS4gUmVzdHJpY3Rpb24gaGVyZSBkb2Vzbid0IG1lYW4gcGFpbiBkaXJlY3RseSBhdCB0aG9zZSBqb2ludHMg4oCUIGl0IG1lYW5zIGxvc3Mgb2Ygbm9ybWFsIHNlZ21lbnRhbCBtb3Rpb24sIHJlZHVjZWQgZ2xpZGUsIGFuZCBvZnRlbiByZXByb2R1Y3Rpb24gb2YgZmFtaWxpYXIgYmFzZS1vZi1za3VsbCBvciB1bmlsYXRlcmFsIGhlYWQgZGlzY29tZm9ydCB3aGVuIHRob3NlIGpvaW50cyBhcmUgbG9hZGVkLiBJbiBtaWdyYWluZSBwYXRpZW50cywgdGhlIHJlc3RyaWN0ZWQgQzEtQzIgbGV2ZWwgaXMgb25lIG9mIHRoZSBtb3N0IHJlbGlhYmxlIGZpbmRpbmdzLiBXaGVuIHBhbHBhdGlvbiBhbmQgbW90aW9uIHRlc3RpbmcgYXQgdGhhdCBsZXZlbCByZXByb2R1Y2VzIGZhbWlsaWFyIHByb2Ryb21hbCBzeW1wdG9tcywgaXQgY29uZmlybXMgYSBtZWFuaW5nZnVsIGNlcnZpY29nZW5pYyBjb250cmlidXRpb24uPC9wPgoKPGgzPlN1Ym9jY2lwaXRhbCBDb21wcmVzc2lvbiBhbmQgVHJpZ2dlciBQb2ludHM8L2gzPgo8cD5UaGUgc3Vib2NjaXBpdGFsIG11c2NsZXMg4oCUIHJlY3R1cyBjYXBpdGlzIHBvc3RlcmlvciBtYWpvciwgb2JsaXF1dXMgY2FwaXRpcyBzdXBlcmlvciBhbmQgaW5mZXJpb3Ig4oCUIGFyZSBjb25zaXN0ZW50bHkgaHlwZXJhY3RpdmUgaW4gcGVvcGxlIHdpdGggY2hyb25pYyBoZWFkIHBhaW4uIFRoZXNlIG11c2NsZXMgc2l0IGRpcmVjdGx5IGJlbmVhdGggdGhlIG9jY2lwdXQsIGFuZCB0cmlnZ2VyIHBvaW50cyB3aXRoaW4gdGhlbSByZWZlciBwYWluIGluIGEgcGF0dGVybiB0aGF0IGNvdmVycyB0aGUgYmFzZSBvZiB0aGUgc2t1bGwgYW5kIGV4dGVuZHMgZm9yd2FyZCBvdmVyIHRoZSB0b3Agb2YgdGhlIGhlYWQsIG9mdGVuIHJlYWNoaW5nIGJlaGluZCB0aGUgZXllLiBUaGlzIHJlZmVycmFsIHBhdHRlcm4gaXMgbmVhcmx5IGluZGlzdGluZ3Vpc2hhYmxlIGZyb20gbWlncmFpbmUgcHJvZHJvbWUgYnkgZmVlbCBhbG9uZS4gVGhlIGdyZWF0ZXIgb2NjaXBpdGFsIG5lcnZlIGFsc28gcGFzc2VzIHRocm91Z2ggdGhlIHN1Ym9jY2lwaXRhbCB0cmlhbmdsZSBhbmQgaXMgZWFzaWx5IGNvbXByZXNzZWQgYnkgc3VzdGFpbmVkIG11c2NsZSB0ZW5zaW9uIGluIHRoYXQgcmVnaW9uLCBjb250cmlidXRpbmcgYWRkaXRpb25hbCBhZmZlcmVudCBzZW5zaXRpemF0aW9uLjwvcD4KCjxoMz5DZXJ2aWNhbCBJbnN0YWJpbGl0eSBQYXR0ZXJuczwvaDM CjxwPlNvbWUgcGF0aWVudHMg4oCUIHBhcnRpY3VsYXJseSB0aG9zZSB3aXRoIGEgaGlzdG9yeSBvZiB3aGlwbGFzaCBvciByZXBldGl0aXZlIG5lY2sgbG9hZGluZyDigJQgc2hvdyBoeXBlcm1vYmlsaXR5IGF0IEMxLUMyIGFsb25nc2lkZSByZXN0cmljdGlvbiBhdCBhZGphY2VudCBsZXZlbHMuIFRoaXMgcGF0dGVybiBpcyB3b3J0aCBpZGVudGlmeWluZyBiZWNhdXNlIGl0IGNoYW5nZXMgdGhlIHRyZWF0bWVudCBhcHByb2FjaC4gTW9iaWxpemluZyBhIGh5cGVybW9iaWxlIHNlZ21lbnQgd291bGQgYmUgY291bnRlcnByb2R1Y3RpdmUuIFN0YWJpbGl6YXRpb24sIG5vdCBtYW5pcHVsYXRpb24sIGlzIGFwcHJvcHJpYXRlIGF0IHRob3NlIGxldmVscy4gVGhpcyBpcyBvbmUgcmVhc29uIHdoeSBhbiBldmFsdWF0aW9uIHRoYXQgYWN0dWFsbHkgYXNzZXNzZXMgc2VnbWVudGFsIG1vdGlvbiBxdWFsaXR5LCByYXRoZXIgdGhhbiB0cmVhdGluZyB0aGUgbmVjayBnZW5lcmljYWxseSwgbWF0dGVycy48L3A Cgo8aDM Rm9yd2FyZCBIZWFkIFBvc3R1cmUgYW5kIExvc3Mgb2YgQ2VydmljYWwgQ3VydmU8L2gzPgo8cD5TdXN0YWluZWQgZm9yd2FyZCBoZWFkIHBvc3R1cmUgaW5jcmVhc2VzIGNvbXByZXNzaXZlIGxvYWRpbmcgb24gdGhlIHVwcGVyIGNlcnZpY2FsIGpvaW50cyBhbmQgY2hyb25pY2FsbHkgY29udHJhY3RzIHRoZSBzdWJvY2NpcGl0YWxzLiBUaGUgY2VydmljYWwgbG9yZG9zaXMg4oCUIHRoZSBub3JtYWwgaW53YXJkIGN1cnZlIG9mIHRoZSBuZWNrIOKAlCBkaXN0cmlidXRlcyBsb2FkIGVmZmljaWVudGx5IHdoZW4gaW50YWN0LiBXaGVuIGl0IGZsYXR0ZW5zIG9yIHJldmVyc2VzLCB0aGUgbWVjaGFuaWNhbCBkZW1hbmQgb24gZXZlcnkgY2VydmljYWwgc3RydWN0dXJlIGluY3JlYXNlcy4gSW4gcGF0aWVudHMgd2l0aCBkYWlseSBvciBuZWFyLWRhaWx5IG1pZ3JhaW5lcywgdGhlIGNlcnZpY2FsIHBvc3R1cmUgaGFzIGFsbW9zdCBhbHdheXMgYmVlbiBhYm5vcm1hbCBmb3IgeWVhcnMuIFRoaXMgaXNuJ3QgdGhlIGNhdXNlIG9mIGV2ZXJ5IG1pZ3JhaW5lLCBidXQgaXQgaXMgYSBzdHJ1Y3R1cmFsIGNvbmRpdGlvbiB0aGF0IGtlZXBzIHRoZSBzZW5zaXRpemF0aW9uIGxldmVsIGVsZXZhdGVkIGFuZCBtYWtlcyBlcGlzb2RpYyB0cmlnZ2VycyBtb3JlIGVmZmVjdGl2ZSBhdCBpbml0aWF0aW5nIGFuIGF0dGFjay48L3A Cgo8aDI SG93IENlcnZpY29nZW5pYyBNaWdyYWluZSBEaWZmZXJzIGZyb20gUHVyZSBNaWdyYWluZTwvaDI CjxwPlRoZSBkaXN0aW5jdGlvbiBtYXR0ZXJzIGNsaW5pY2FsbHkgYmVjYXVzZSBpdCBkZXRlcm1pbmVzIHdoYXQgdHJlYXRtZW50IHdpbGwgYWN0dWFsbHkgcmVkdWNlIGZyZXF1ZW5jeS48L3A CjxwPlB1cmUgbWlncmFpbmUg4oCUIHdpdGggY2xhc3NpYyBhdXJhLCB1bmlsYXRlcmFsIHRocm9iYmluZywgcGhvdG9waG9iaWEgYW5kIHBob25vcGhvYmlhLCBhbmQgd2l0aG91dCBhbnkgY29uc2lzdGVudCBjZXJ2aWNhbCBwcm9kcm9tZSDigJQgaXMgcHJpbWFyaWx5IGEgbmV1cm9sb2dpY2FsIGNvbmRpdGlvbi4gTWFuYWdlbWVudCBpcyBuZXVyb2xvZ2ljYWw6IHByZXZlbnRpdmUgbWVkaWNhdGlvbnMgbGlrZSB0b3BpcmFtYXRlIG9yIGFtaXRyaXB0eWxpbmUsIHRyaXB0YW5zIGZvciBhY3V0ZSByZWxpZWYsIGFuZCBsaWZlc3R5bGUtYmFzZWQgdHJpZ2dlciBtYW5hZ2VtZW50LiBDaGlyb3ByYWN0aWMgY2FyZSBpcyBub3QgdGhlIHByaW1hcnkgdHJlYXRtZW50IGZvciB0aGlzIHByZXNlbnRhdGlvbi48L3A CjxwPkNlcnZpY29nZW5pYyBtaWdyYWluZSDigJQgb3IgbW9yZSBhY2N1cmF0ZWx5LCBtaWdyYWluZSB3aXRoIHNpZ25pZmljYW50IGNlcnZpY29nZW5pYyBhbXBsaWZpY2F0aW9uIOKAlCBwcmVzZW50cyBkaWZmZXJlbnRseS4gVGhlIGF0dGFja3MgYXJlIG9mdGVuIHByZWNlZGVkIGJ5IG5lY2sgc3RpZmZuZXNzIG9yIGJhc2Utb2Ytc2t1bGwgaGVhdmluZXNzLiBUaGV5IGFyZSBjb25zaXN0ZW50bHkgd29yc2VuZWQgYnkgc3VzdGFpbmVkIGNlcnZpY2FsIGxvYWRpbmcgKGRyaXZpbmcsIHNjcmVlbiB0aW1lLCBjZXJ0YWluIHNsZWVwIHBvc2l0aW9ucykuIFRoZSBoZWFkYWNoZSBtYXkgYmUgcmVwcm9kdWNlZCBvciB3b3JzZW5lZCBieSBjZXJ2aWNhbCBtb3Rpb24gb3IgcGFscGF0aW9uLiA8YSBocmVmPSIvYmxvZy90ZW5zaW9uLWhlYWRhY2hlLWNoaXJvcHJhY3Rvci1vdmVybGFuZC1wYXJrIj5UaGUgc2FtZSBjZXJ2aWNhbCBtZWNoYW5pY3MgdGhhdCBnZW5lcmF0ZSByZWN1cnJpbmcgdGVuc2lvbiBoZWFkYWNoZXM8L2E IG9mdGVuIGNvbnRyaWJ1dGUgdG8gbWlncmFpbmUgZnJlcXVlbmN5IGluIHRoaXMgcG9wdWxhdGlvbi48L3A CjxwPk1hbnkgcGF0aWVudHMgaGF2ZSBib3RoOiB0cnVlIG1pZ3JhaW5vdXMgbmV1cm9sb2d5IHdpdGggYW4gYWRkaXRpb25hbCBjZXJ2aWNvZ2VuaWMgYW1wbGlmaWVyLiBUcmVhdGluZyBvbmx5IHRoZSBuZXVyb2xvZ3kgbGVhdmVzIHRoZSBjZXJ2aWNvZ2VuaWMgaW5wdXQgaW4gcGxhY2UuIFRyZWF0aW5nIG9ubHkgdGhlIGNlcnZpY29nZW5pYyBjb21wb25lbnQgZG9lc24ndCBhZGRyZXNzIHRoZSBuZXVyb2xvZ2ljYWwgcHJlZGlzcG9zaXRpb24uIFVuZGVyc3RhbmRpbmcgd2hpY2ggZmFjdG9ycyBhcmUgcHJlc2VudCDigJQgYW5kIGluIHdoYXQgcHJvcG9ydGlvbiDigJQgc2hhcGVzIGEgdHJlYXRtZW50IHBsYW4gdGhhdCBhY3R1YWxseSByZWR1Y2VzIGZyZXF1ZW5jeSByYXRoZXIgdGhhbiBqdXN0IG1hbmFnaW5nIGVwaXNvZGVzLjwvcD4KCjxoMj5XaGF0IHRoZSBSZXNlYXJjaCBTYXlzPC9oMj4KPHA VGhlIGV2aWRlbmNlIG9uIGNoaXJvcHJhY3RpYyBjYXJlIGZvciBtaWdyYWluZXMgaXMgbW9yZSBudWFuY2VkIHRoYW4gZWl0aGVyIGVudGh1c2lhc3RzIG9yIHNrZXB0aWNzIHR5cGljYWxseSBhY2tub3dsZWRnZS4gU2V2ZXJhbCByYW5kb21pemVkIGNvbnRyb2xsZWQgdHJpYWxzIGhhdmUgc2hvd24gdGhhdCBzcGluYWwgbWFuaXB1bGF0aXZlIHRoZXJhcHkgcmVkdWNlcyBtaWdyYWluZSBmcmVxdWVuY3kgaW4gc29tZSBwYXRpZW50IHBvcHVsYXRpb25zIOKAlCBjb21wYXJhYmxlIGluIHNvbWUgc3R1ZGllcyB0byBjZXJ0YWluIHByZXZlbnRpdmUgbWVkaWNhdGlvbnMuIE90aGVyIHN0dWRpZXMgc2hvdyBtaW5pbWFsIGVmZmVjdC4gVGhlIGluY29uc2lzdGVuY3kgaW4gdGhlIGxpdGVyYXR1cmUgYWxtb3N0IGNlcnRhaW5seSByZWZsZWN0cyB3aGF0IGNsaW5pY2lhbnMgYWxyZWFkeSBrbm93OiB0aGUgcG9wdWxhdGlvbiBvZiBwZW9wbGUgd2l0aCBtaWdyYWluZXMgaXMgaGV0ZXJvZ2VuZW91cy4gTHVtcGluZyBhbGwgbWlncmFpbmUgcGF0aWVudHMgdG9nZXRoZXIgYW5kIGF2ZXJhZ2luZyB0aGUgcmVzcG9uc2UgdG8gb25lIGludGVydmVudGlvbiBwcm9kdWNlcyBhIG11ZGRpZWQgcmVzdWx0LjwvcD4KPHA VGhlIGNsaW5pY2FsIHF1ZXN0aW9uIGlzbid0ICJkb2VzIGNoaXJvcHJhY3RpYyB3b3JrIGZvciBtaWdyYWluZXMgYXMgYSBjYXRlZ29yeS4iIEl0J3MgImRvZXMgdGhpcyBzcGVjaWZpYyBwYXRpZW50IGhhdmUgY2Vydmljb2dlbmljIGludm9sdmVtZW50IHRoYXQgaXMgY29udHJpYnV0aW5nIHRvIHRoZWlyIG1pZ3JhaW5lIGZyZXF1ZW5jeSwgYW5kIHdpbGwgYWRkcmVzc2luZyBpdCByZWR1Y2UgdGhhdCBjb250cmlidXRpb24uIiBUaGF0IHF1ZXN0aW9uIHJlcXVpcmVzIGFuIGluZGl2aWR1YWwgZXZhbHVhdGlvbiwgbm90IGEgbGl0ZXJhdHVyZSBhdmVyYWdlLjwvcD4KCjxoMj5XaGF0IFRyZWF0bWVudCBmb3IgQ2Vydmljb2dlbmljIE1pZ3JhaW5lIEludm9sdmVtZW50IExvb2tzIExpa2U8L2gyPgo8cD5XaGVuIHRoZSBldmFsdWF0aW9uIGlkZW50aWZpZXMgbWVhbmluZ2Z1bCBjZXJ2aWNvZ2VuaWMgY29udHJpYnV0aW9uLCB0cmVhdG1lbnQgYWRkcmVzc2VzIHRob3NlIHNwZWNpZmljIHN0cnVjdHVyZXMuPC9wPgoKPGgzPlVwcGVyIENlcnZpY2FsIE1vYmlsaXphdGlvbiBhbmQgQWRqdXN0bWVudDwvaDM CjxwPlJlc3RvcmluZyBzZWdtZW50YWwgbW90aW9uIHRvIHRoZSByZXN0cmljdGVkIEMxLUMyIGxldmVsIHJlbW92ZXMgdGhlIHBlcnNpc3RlbnQgYWZmZXJlbnQgc2lnbmFsIGludG8gdGhlIHRyaWdlbWlub2NlcnZpY2FsIGNvbXBsZXguIFRoaXMgaXMgb2Z0ZW4gdGhlIGhpZ2hlc3QteWllbGQgaW50ZXJ2ZW50aW9uIGluIG1pZ3JhaW5lIHBhdGllbnRzIHdpdGggYSBjZXJ2aWNvZ2VuaWMgY29tcG9uZW50LiBNYW55IHBhdGllbnRzIG5vdGljZSB3aXRoaW4gdGhlIGZpcnN0IHR3byB0byB0aHJlZSB2aXNpdHMgdGhhdCBlaXRoZXIgdGhlaXIgYXR0YWNrcyBiZWNvbWUgbGVzcyBmcmVxdWVudCwgdGhlIHByb2Ryb21hbCBuZWNrIHN5bXB0b21zIGFyZSByZWR1Y2VkLCBvciBib3RoLiBUaGVzZSBhcmUgbWVhbmluZ2Z1bCBzaWduYWxzIHRoYXQgdGhlIGNlcnZpY29nZW5pYyBjb250cmlidXRpb24gd2FzIHJlYWwgYW5kIGlzIHJlc3BvbmRpbmcgdG8gdHJlYXRtZW50LjwvcD4KCjxoMz5TdWJvY2NpcGl0YWwgUmVsZWFzZTwvaDM CjxwPk1hbnVhbCByZWxlYXNlIG9mIHRoZSBzdWJvY2NpcGl0YWwgbXVzY3VsYXR1cmUgYW5kIHRyaWdnZXIgcG9pbnQgd29yayBpbiB0aGUgdXBwZXIgdHJhcGV6aXVzIGFuZCBzdGVybm9jbGVpZG9tYXN0b2lkIHJlZHVjZXMgdGhlIG11c2N1bGFyIGNvbnRyaWJ1dGlvbiB0byB0cmlnZW1pbm9jZXJ2aWNhbCBzZW5zaXRpemF0aW9uLiBTb21lIHBhdGllbnRzIGZpbmQgdGhhdCBzdWJvY2NpcGl0YWwgcmVsZWFzZSBkdXJpbmcgdGhlIHByb2Ryb21hbCBwaGFzZSDigJQgd2hlbiB0aGUgbmVjayB0ZW5zaW9uIGlzIGJ1aWxkaW5nIGJ1dCB0aGUgZnVsbCBtaWdyYWluZSBoYXNuJ3QgeWV0IGRldmVsb3BlZCDigJQgY2FuIGludGVycnVwdCB0aGUgcHJvZ3Jlc3Npb24uIFRoaXMgZG9lc24ndCBhbHdheXMgd29yaywgYnV0IHdoZW4gaXQgZG9lcywgaXQgY29uZmlybXMgdGhhdCB0aGUgbXVzY3VsYXIgaW5wdXQgd2FzIGFtcGxpZnlpbmcgdGhlIGF0dGFjay48L3A Cgo8aDM Q2VydmljYWwgQ3VydmUgUmVoYWJpbGl0YXRpb248L2gzPgo8cD5JZiBmb3J3YXJkIGhlYWQgcG9zdHVyZSBhbmQgY2VydmljYWwgbG9yZG9zaXMgbG9zcyBhcmUgc3RydWN0dXJhbCBjb250cmlidXRvcnMg4oCUIHdoaWNoIHRoZXkgdHlwaWNhbGx5IGFyZSBpbiBwYXRpZW50cyB3aXRoIGhpZ2ggbWlncmFpbmUgZnJlcXVlbmN5IOKAlCByZWhhYmlsaXRhdGlvbiBhZGRyZXNzZXMgdGhlIGRlZXAgY2VydmljYWwgZmxleG9ycywgdGhlIGNlcnZpY2FsIGV4dGVuc29ycywgYW5kIHRoZSBtb3ZlbWVudCBoYWJpdHMgdGhhdCBhbGxvdyB0aGUgZm9yd2FyZC1oZWFkIHBvc2l0aW9uIHRvIHBlcnNpc3QgdGhyb3VnaCB0aGUgZGF5LiBUaGlzIGlzIHdoYXQgY3JlYXRlcyBsYXN0aW5nIGNoYW5nZSByYXRoZXIgdGhhbiB0ZW1wb3Jhcnkgc3ltcHRvbSByZWR1Y3Rpb24uIFdpdGhvdXQgaXQsIHRoZSBjZXJ2aWNhbCBqb2ludHMgd2lsbCByZXR1cm4gdG8gcmVzdHJpY3Rpb24gYmVjYXVzZSB0aGUgbG9hZGluZyBwYXR0ZXJuIGRyaXZpbmcgdGhlbSBoYXNuJ3QgY2hhbmdlZC48L3A Cgo8aDM Q29vcmRpbmF0aW9uIFdpdGggTWVkaWNhbCBNYW5hZ2VtZW50PC9oMz4KPHA UGF0aWVudHMgd2l0aCBjb25maXJtZWQgbWlncmFpbmUgZGlhZ25vc2VzIGFuZCBlc3RhYmxpc2hlZCBtZWRpY2F0aW9uIHJlZ2ltZW5zIHNob3VsZCBjb250aW51ZSB3b3JraW5nIHdpdGggdGhlaXIgbmV1cm9sb2dpc3Qgb3IgcHJpbWFyeSBjYXJlIHBoeXNpY2lhbi4gQ2hpcm9wcmFjdGljIGNhcmUgaW4gdGhpcyBjb250ZXh0IGlzIGFkZHJlc3NpbmcgYSBzcGVjaWZpYyBjb250cmlidXRpbmcgZmFjdG9yLCBub3QgcmVwbGFjaW5nIG1lZGljYWwgbWFuYWdlbWVudCBvZiB0aGUgdW5kZXJseWluZyBuZXVyb2xvZ2ljYWwgY29uZGl0aW9uLiBJbiBwYXRpZW50cyB3aGVyZSBmcmVxdWVuY3kgc2lnbmlmaWNhbnRseSBkZWNyZWFzZXMsIHRoYXQncyB3b3J0aCBjb21tdW5pY2F0aW5nIHRvIHRoZWlyIHByZXNjcmliaW5nIHBoeXNpY2lhbiDigJQgcHJldmVudGl2ZSBtZWRpY2F0aW9uIGRvc2luZyBtYXkgYmUgcmV2aXNpdGVkIGFzIHRoZSBjZXJ2aWNvZ2VuaWMgaW5wdXQgaXMgcmVkdWNlZC48L3A Cgo8aDI UmVhbGlzdGljIEV4cGVjdGF0aW9uczwvaDI CjxwPkZvciBwYXRpZW50cyB3aXRoIGdlbnVpbmUgY2Vydmljb2dlbmljIGludm9sdmVtZW50LCB0aGUgbW9zdCBjb21tb24gcGF0dGVybiBpcyBhIGdyYWR1YWwgcmVkdWN0aW9uIGluIGF0dGFjayBmcmVxdWVuY3kg4oCUIG5vdCBlbGltaW5hdGlvbiwgbm90IGltbWVkaWF0ZSByZXNvbHV0aW9uLiBBIHBhdGllbnQgaGF2aW5nIHR3ZWx2ZSBtaWdyYWluZXMgcGVyIG1vbnRoIG1pZ2h0IHNlZSB0aGF0IGRyb3AgdG8gc2l4IHRvIGVpZ2h0IG92ZXIgdGhlIGZpcnN0IG1vbnRoIG9mIGNhcmUuIFRoYXQncyBtZWFuaW5nZnVsLiBJdCdzIG5vdCBhIGN1cmUsIGJ1dCBpdCByZXByZXNlbnRzIGEgc2lnbmlmaWNhbnQgcmVkdWN0aW9uIGluIGRpc2FiaWxpdHkgYW5kIG1lZGljYXRpb24gYnVyZGVuLjwvcD4KPHA PHN0cm9uZz5UaGUgcmVhbGlzdGljIGdvYWwgaXMgdG8gcmVtb3ZlIHRoZSBjZXJ2aWNvZ2VuaWMgYW1wbGlmaWVyLjwvc3Ryb25nPiBXaGF0ZXZlciBuZXVyb2xvZ2ljYWwgcHJlZGlzcG9zaXRpb24gcmVtYWlucyB3aWxsIHN0aWxsIGV4aXN0IOKAlCBidXQgdGhlIHRocmVzaG9sZCB3aWxsIGJlIGhpZ2hlciwgdHJpZ2dlcnMgd2lsbCBuZWVkIHRvIGJlIG1vcmUgc2lnbmlmaWNhbnQgdG8gaW5pdGlhdGUgYW4gYXR0YWNrLCBhbmQgdGhlIHByb2Ryb21hbCBjZXJ2aWNhbCB0ZW5zaW9uIHRoYXQgb2Z0ZW4gc2lnbmFscyBhbiBpbXBlbmRpbmcgbWlncmFpbmUgd2lsbCBiZSByZWR1Y2VkIG9yIGFic2VudC48L3A CjxwPlBhdGllbnRzIHdob3NlIG1pZ3JhaW5lcyBoYXZlIG5vIGNlcnZpY29nZW5pYyBpbnZvbHZlbWVudCB0eXBpY2FsbHkgZG9uJ3QgcmVzcG9uZC4gVGhpcyBpc24ndCBhIGZhaWx1cmUgb2YgdGhlIHRyZWF0bWVudCDigJQgaXQncyB0aGUgZXZhbHVhdGlvbiBiZWluZyBpbmZvcm1hdGl2ZS4gS25vd2luZyB0aGF0IHRoZSBjZXJ2aWNhbCBzcGluZSBpc24ndCBhIG1lYW5pbmdmdWwgY29udHJpYnV0b3IgY2xhcmlmaWVzIHRoZSB0cmVhdG1lbnQgZGlyZWN0aW9uLjwvcD4KPHA Rm9yIGEgZGV0YWlsZWQgbG9vayBhdCBob3cgbmVjayBwcm9ibGVtcyBnZW5lcmF0ZSBoZWFkIHBhaW4gYW5kIHdoYXQgdGhlIGNlcnZpY2FsIGV2YWx1YXRpb24gc3BlY2lmaWNhbGx5IGV4YW1pbmVzLCA8YSBocmVmPSIvYmxvZy9uZWNrLXBhaW4tcmVsaWVmLW92ZXJsYW5kLXBhcmsiPnRoaXMgcG9zdCBvbiBuZWNrIHBhaW4gYW5kIGNlcnZpY2FsIG1lY2hhbmljczwvYT4gY292ZXJzIHRoZSBhbmF0b215IGFuZCBhc3Nlc3NtZW50IHByb2Nlc3MgaW4gbW9yZSBkZXB0aC48L3A Cgo8aDI V2hvIElzIGEgQ2FuZGlkYXRlIGZvciBDaGlyb3ByYWN0aWMgRXZhbHVhdGlvbjwvaDI CjxwPlRoZSBmb2xsb3dpbmcgcGF0dGVybnMgc3VnZ2VzdCB0aGF0IGFuIHVwcGVyIGNlcnZpY2FsIGV2YWx1YXRpb24gaXMgd29ydGggcHVyc3VpbmcgYXMgcGFydCBvZiBtaWdyYWluZSBtYW5hZ2VtZW50OjwvcD4KPHVsPgo8bGk TWlncmFpbmVzIGNvbnNpc3RlbnRseSBwcmVjZWRlZCBieSBuZWNrIHN0aWZmbmVzcywgYmFzZS1vZi1za3VsbCB0ZW5zaW9uLCBvciBzdWJvY2NpcGl0YWwgYWNoaW5nPC9saT4KPGxpPkF0dGFja3MgdGhhdCBhcmUgcmVsaWFibHkgdHJpZ2dlcmVkIG9yIHdvcnNlbmVkIGJ5IHN1c3RhaW5lZCBjZXJ2aWNhbCBsb2FkaW5nIOKAlCBsb25nIGRyaXZlcywgZXh0ZW5kZWQgc2NyZWVuIHRpbWUsIHNsZWVwaW5nIGluIGNlcnRhaW4gcG9zaXRpb25zPC9saT4KPGxpPlVuaWxhdGVyYWwgbWlncmFpbmVzIHRoYXQgYWx3YXlzIGFmZmVjdCB0aGUgc2FtZSBzaWRlLCBwYXJ0aWN1bGFybHkgd2l0aCBpcHNpbGF0ZXJhbCBuZWNrIHRlbmRlcm5lc3M8L2xpPgo8bGk TWlncmFpbmVzIHRoYXQgYmVnaW4gd2l0aCBhIHByb2Ryb21lIG9mIG5lY2sgc3RpZmZuZXNzIGJlZm9yZSB2aXN1YWwgYXVyYSBvciBoZWFkIHBhaW4gZGV2ZWxvcHM8L2xpPgo8bGk SGlzdG9yeSBvZiBuZWNrIGluanVyeSDigJQgd2hpcGxhc2gsIHNwb3J0cyBjb25jdXNzaW9uLCBjZXJ2aWNhbCBzdHJhaW4g4oCUIHRoYXQgcHJlZGF0ZWQgb3IgY29pbmNpZGVkIHdpdGggYW4gaW5jcmVhc2UgaW4gbWlncmFpbmUgZnJlcXVlbmN5PC9saT4KPGxpPk1pZ3JhaW5lcyB0aGF0IGhhdmUgaW5jcmVhc2VkIGluIGZyZXF1ZW5jeSBvdmVyIG1vbnRocyBvciB5ZWFycyB3aXRob3V0IGEgY2xlYXIgZXhwbGFuYXRpb248L2xpPgo8bGk SW5hZGVxdWF0ZSByZXNwb25zZSB0byBwcmV2ZW50aXZlIG1lZGljYXRpb25zIGRlc3BpdGUgYXBwcm9wcmlhdGUgdHJpYWxzPC9saT4KPC91bD4KPHA Tm9uZSBvZiB0aGVzZSBmZWF0dXJlcyBndWFyYW50ZWVzIGEgY2Vydmljb2dlbmljIGNvbnRyaWJ1dGlvbiwgYnV0IHRoZXkgbWFrZSBpdCBtb3JlIGxpa2VseS4gVGhlIGV2YWx1YXRpb24gZGV0ZXJtaW5lcyBpdCB3aXRoIHNwZWNpZmljaXR5IOKAlCBpdCdzIG5vdCBhIGRpYWdub3NpcyBtYWRlIGJ5IHF1ZXN0aW9ubmFpcmUuPC9wPgoKPGgyPldoYXQgSSBTZWUgaW4gUHJhY3RpY2U8L2gyPgoKPGgzPlRoZSBQYXRpZW50IFdob3NlIE1pZ3JhaW5lcyBJbmNyZWFzZWQgQWZ0ZXIgYSBOZWNrIEluanVyeTwvaDM CjxwPlRoaXMgaXMgYSBjb21tb24gcHJlc2VudGF0aW9uIHRoYXQgb2Z0ZW4gZ29lcyB1bmNvbm5lY3RlZC4gQSBwYXRpZW50IHdobyBuZXZlciBoYWQgZnJlcXVlbnQgbWlncmFpbmVzIGRldmVsb3BzIHRoZW0gYXQgYSBoaWdoZXIgcmF0ZSBhZnRlciBhIGNhciBhY2NpZGVudCBvciBzcG9ydHMgaW5qdXJ5LiBUaGUgaW5qdXJ5IGNyZWF0ZWQgY2VydmljYWwgaW5zdGFiaWxpdHkgb3Igam9pbnQgcmVzdHJpY3Rpb24gYXQgQzEtQzIgdGhhdCBoYXMgYmVlbiBnZW5lcmF0aW5nIGEgbG93LWxldmVsIGFmZmVyZW50IGlucHV0IGV2ZXIgc2luY2UuIFRoZWlyIG5ldXJvbG9naXN0IG1hbmFnZXMgdGhlIGF0dGFja3Mg4oCUIGFwcHJvcHJpYXRlbHkg4oCUIGJ1dCB0aGUgY2VydmljYWwgc291cmNlIGZlZWRpbmcgdGhlbSBoYXNuJ3QgYmVlbiBldmFsdWF0ZWQgb3IgdHJlYXRlZC4gV2hlbiB3ZSBhZGRyZXNzIGl0LCB0aGUgZnJlcXVlbmN5IGRyb3BzIGluIGEgd2F5IHRoYXQgbWVkaWNhdGlvbiBhZGp1c3RtZW50cyBhbG9uZSBoYWRuJ3QgcHJvZHVjZWQuPC9wPgoKPGgzPlRoZSBQYXRpZW50IFdobyBIYXMgIlRyaWVkIEV2ZXJ5dGhpbmciPC9oMz4KPHA VGhleSd2ZSBiZWVuIHRocm91Z2ggbXVsdGlwbGUgcHJldmVudGl2ZSBtZWRpY2F0aW9ucywgd29ya2VkIG9uIHNsZWVwIGh5Z2llbmUsIGVsaW1pbmF0ZWQgYWxjb2hvbCwgcmVkdWNlZCBjYWZmZWluZSwgaWRlbnRpZmllZCBhbmQgYXZvaWRlZCBldmVyeSB0cmlnZ2VyIHRoZXkgY2FuIGZpbmQuIFRoZSBtaWdyYWluZXMgc3RpbGwgY29tZSBlaWdodCB0byB0ZW4gdGltZXMgYSBtb250aC4gV2hlbiB3ZSBldmFsdWF0ZSBhbmQgZmluZCBzaWduaWZpY2FudCBDMS1DMiByZXN0cmljdGlvbiB3aXRoIHJlcHJvZHVjdGlvbiBvZiB0aGVpciBwcm9kcm9tYWwgc3ltcHRvbXMgb24gcGFscGF0aW9uLCB0aGF0J3MgYSBmaW5kaW5nIHRoYXQgaGFzbid0IGJlZW4gYWRkcmVzc2VkIGJlZm9yZS4gUmVtb3ZpbmcgdGhhdCBpbnB1dCBkb2Vzbid0IGVsaW1pbmF0ZSB0aGVpciBtaWdyYWluZSBkaXNvcmRlciDigJQgYnV0IGl0IGRvZXMgcmVkdWNlIHRoZSBmcmVxdWVuY3kgdG8gYSBsZXZlbCB0aGF0IG1lZGljYXRpb24gY2FuIHRoZW4gbWFuYWdlIG1vcmUgZWZmZWN0aXZlbHkuPC9wPgoKPGgzPlRoZSBQYXRpZW50IFdobyBJcyBVbmNlcnRhaW4gV2hldGhlciBUaGVpciBIZWFkYWNoZXMgQXJlIE1pZ3JhaW5lczwvaDM CjxwPk1hbnkgcGF0aWVudHMgc2VsZi1kaWFnbm9zZSBtaWdyYWluZXMgYmVjYXVzZSB0aGV5J3ZlIGhhZCBzZXZlcmUgaGVhZGFjaGVzIHdpdGggbGlnaHQgc2Vuc2l0aXZpdHkgb3IgbmF1c2VhLiBTb21ldGltZXMgdGhlc2UgYXJlIGdlbnVpbmUgbWlncmFpbmVzLiBTb21ldGltZXMgdGhleSdyZSBoaWdoLWludGVuc2l0eSBjZXJ2aWNvZ2VuaWMgaGVhZGFjaGVzIHRoYXQgaGF2ZSBiZWVuIHRyZWF0ZWQgd2l0aCBtaWdyYWluZSBtZWRpY2F0aW9ucyB0aGF0IGFyZW4ndCByZWFjaGluZyB0aGUgYWN0dWFsIHNvdXJjZS4gPGEgaHJlZj0iL2Jsb2cvdGVuc2lvbi1oZWFkYWNoZS1jaGlyb3ByYWN0b3Itb3ZlcmxhbmQtcGFyayI RGlzdGluZ3Vpc2hpbmcgY2Vydmljb2dlbmljIGhlYWRhY2hlIGZyb20gdGVuc2lvbi10eXBlIGFuZCB0cnVlIG1pZ3JhaW5lPC9hPiBpcyBwYXJ0IG9mIHdoYXQgdGhlIGV2YWx1YXRpb24gZG9lcyDigJQgYmVjYXVzZSB0aGUgdHJlYXRtZW50IHRoYXQgcmVkdWNlcyBmcmVxdWVuY3kgaXMgZW50aXJlbHkgZGlmZmVyZW50IGRlcGVuZGluZyBvbiB3aGljaCBvbmUgaXMgYWN0dWFsbHkgcHJlc2VudC48L3A Cgo8YmxvY2txdW90ZT4KPHA VGhlIHF1ZXN0aW9uIGlzbid0IHdoZXRoZXIgdG8gbWFuYWdlIG1pZ3JhaW5lcyBtZWRpY2FsbHkuIEl0J3Mgd2hldGhlciB0aGUgY2VydmljYWwgc3BpbmUgaGFzIGJlZW4gZXZhbHVhdGVkIGFzIGEgY29udHJpYnV0aW5nIHNvdXJjZSDigJQgYmVjYXVzZSBpZiBpdCBoYXNuJ3QsIHRoZSB0aHJlc2hvbGQgc3RheXMgbG93IGFuZCB0aGUgZnJlcXVlbmN5IHN0YXlzIGhpZ2ggcmVnYXJkbGVzcyBvZiB3aGF0IGVsc2UgeW91J3JlIGRvaW5nLjwvcD4KPC9ibG9ja3F1b3RlPgoKPGgyPlNlcnZpbmcgT3ZlcmxhbmQgUGFyayBhbmQgdGhlIFN1cnJvdW5kaW5nIEFyZWE8L2gyPgo8cD5JZiB5b3UncmUgZGVhbGluZyB3aXRoIG1pZ3JhaW5lcyBpbiBPdmVybGFuZCBQYXJrLCBMZWF3b29kLCBMZW5leGEsIE9sYXRoZSwgb3IgYW55d2hlcmUgaW4gSm9obnNvbiBDb3VudHkgYW5kIHRoZSB1cHBlciBjZXJ2aWNhbCBzcGluZSBoYXNuJ3QgYmVlbiBzcGVjaWZpY2FsbHkgZXZhbHVhdGVkIGFzIGEgY29udHJpYnV0aW5nIGZhY3RvciwgdGhhdCdzIHdvcnRoIGRvaW5nLiA8c3Ryb25nPk1vc3QgbWlncmFpbmUgcGF0aWVudHMgd2hvJ3ZlIHNlZW4gbmV1cm9sb2dpc3RzIGhhdmUgbmV2ZXIgaGFkIHRoZWlyIEMxLUMyIG1lY2hhbmljcyBhc3Nlc3NlZCBmb3IgYWZmZXJlbnQgc2Vuc2l0aXphdGlvbiDigJQgYW5kIGl0J3Mgb25lIG9mIHRoZSBtb3JlIGNvcnJlY3RhYmxlIGNvbnRyaWJ1dG9ycyB3aGVuIGl0J3MgcHJlc2VudC48L3N0cm9uZz48L3A Cgo8IS0tIENUQSBwYXJhZ3JhcGggLS0 CjxwPklmIHlvdSdyZSBkZWFsaW5nIHdpdGggdGhpcyBhbmQgd2FudCBhIGNsZWFyIHBsYW4sIHRoZSBuZXh0IHN0ZXAgaXMgYSBwcm9wZXIgZXZhbHVhdGlvbi4gQXQgUXVhbGl0eSBMaWZlIENoaXJvcHJhY3RpYyBpbiBPdmVybGFuZCBQYXJrLCB3ZSBmb2N1cyBvbiBpZGVudGlmeWluZyB0aGUgcm9vdCBpc3N1ZSBhbmQgYnVpbGRpbmcgYSBzdHJ1Y3R1cmVkIHBsYW4gdG8gZml4IGl0LjwvcD4KCjxoMj5GcmVxdWVudGx5IEFza2VkIFF1ZXN0aW9uczwvaDI CjxkaXYgY2xhc3M9ImZhcS1pdGVtIj4KPGgzPkNhbiBhIGNoaXJvcHJhY3RvciBoZWxwIHdpdGggbWlncmFpbmVzPzwvaDM CjxwPkluIHBhdGllbnRzIHdoZXJlIHRoZSBjZXJ2aWNhbCBzcGluZSDigJQgc3BlY2lmaWNhbGx5IHRoZSB1cHBlciBjZXJ2aWNhbCBqb2ludHMgYW5kIHN1Ym9jY2lwaXRhbCBtdXNjdWxhdHVyZSDigJQgaXMgY29udHJpYnV0aW5nIHRvIG1pZ3JhaW5lIGZyZXF1ZW5jeSwgYWRkcmVzc2luZyB0aGF0IGNlcnZpY29nZW5pYyBpbnB1dCB0eXBpY2FsbHkgcmVkdWNlcyBob3cgb2Z0ZW4gYXR0YWNrcyBvY2N1ci4gTm90IGV2ZXJ5IG1pZ3JhaW5lIHBhdGllbnQgaGFzIG1lYW5pbmdmdWwgY2Vydmljb2dlbmljIGludm9sdmVtZW50LiBUaGUgZXZhbHVhdGlvbiBpZGVudGlmaWVzIHdoZXRoZXIgaXQncyBwcmVzZW50LiBXaGVuIGl0IGlzLCBzcGluYWwgbW9iaWxpemF0aW9uIGFuZCBzb2Z0IHRpc3N1ZSByZWxlYXNlIHRhcmdldGluZyB0aGUgdHJpZ2VtaW5vY2VydmljYWwgY29tcGxleCBjYW4gbG93ZXIgdGhlIHRocmVzaG9sZCB0aGF0IG1ha2VzIG1pZ3JhaW5lcyBlYXNpZXIgdG8gdHJpZ2dlci48L3A CjwvZGl2Pgo8ZGl2IGNsYXNzPSJmYXEtaXRlbSI CjxoMz5Ib3cgZG8gSSBrbm93IGlmIG15IG1pZ3JhaW5lcyBoYXZlIGEgY2VydmljYWwgY29tcG9uZW50PzwvaDM CjxwPlNldmVyYWwgcGF0dGVybnMgc3VnZ2VzdCBpdDogbWlncmFpbmVzIGNvbnNpc3RlbnRseSBwcmVjZWRlZCBieSBuZWNrIHN0aWZmbmVzcyBvciBiYXNlLW9mLXNrdWxsIHRlbnNpb24sIGF0dGFja3MgcmVsaWFibHkgd29yc2VuZWQgYnkgcHJvbG9uZ2VkIGNlcnZpY2FsIGxvYWRpbmcgKGRyaXZpbmcsIHNjcmVlbiB0aW1lKSwgbmVjayB0ZW5kZXJuZXNzIG9uIHRoZSBzYW1lIHNpZGUgYXMgeW91ciB0eXBpY2FsIG1pZ3JhaW5lLCBhbmQgbWlncmFpbmVzIHRoYXQgaW5jcmVhc2VkIGFmdGVyIGEgbmVjayBpbmp1cnkuIEEgcGh5c2ljYWwgZXhhbWluYXRpb24gdGhhdCBpbmNsdWRlcyBzZWdtZW50YWwgbW90aW9uIHRlc3RpbmcgYW5kIHBhbHBhdGlvbiBvZiB0aGUgdXBwZXIgY2VydmljYWwgam9pbnRzIOKAlCBzcGVjaWZpY2FsbHkgY2hlY2tpbmcgd2hldGhlciBpdCByZXByb2R1Y2VzIGZhbWlsaWFyIHByb2Ryb21hbCBzeW1wdG9tcyDigJQgaXMgdGhlIG1vc3QgcmVsaWFibGUgd2F5IHRvIGNvbmZpcm0gdGhlIGNvbm5lY3Rpb24uPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0iZmFxLWl0ZW0iPgo8aDM V2lsbCBjaGlyb3ByYWN0aWMgZWxpbWluYXRlIG15IG1pZ3JhaW5lcz88L2gzPgo8cD5Gb3IgcGF0aWVudHMgd2l0aCBjZXJ2aWNvZ2VuaWMgaW52b2x2ZW1lbnQsIGl0IHR5cGljYWxseSByZWR1Y2VzIGZyZXF1ZW5jeSDigJQgbm90IGVsaW1pbmF0ZXMgYXR0YWNrcyBlbnRpcmVseS4gVGhlIG5ldXJvbG9naWNhbCBwcmVkaXNwb3NpdGlvbiB0byBtaWdyYWluZSByZW1haW5zOyB3aGF0IGNoYW5nZXMgaXMgdGhlIHN0cnVjdHVyYWwgaW5wdXQgdGhhdCB3YXMgbG93ZXJpbmcgdGhlIHRocmVzaG9sZCBhbmQgbWFraW5nIHRyaWdnZXJzIG1vcmUgZWZmZWN0aXZlLiBQYXRpZW50cyB3aXRoIG5vIGNlcnZpY29nZW5pYyBjb21wb25lbnQgZ2VuZXJhbGx5IGRvbid0IHJlc3BvbmQuIFRoZSBldmFsdWF0aW9uIGlzIGluZm9ybWF0aXZlIGVpdGhlciB3YXkg4oCUIGtub3dpbmcgdGhlIGNlcnZpY2FsIHNwaW5lIGlzIG9yIGlzbid0IGNvbnRyaWJ1dGluZyB0ZWxscyB5b3Ugd2hlcmUgdG8gZGlyZWN0IHRyZWF0bWVudC48L3A CjwvZGl2Pgo8ZGl2IGNsYXNzPSJmYXEtaXRlbSI CjxoMz5TaG91bGQgSSBzdG9wIG15IG1pZ3JhaW5lIG1lZGljYXRpb24gaWYgSSBzdGFydCBjaGlyb3ByYWN0aWMgY2FyZT88L2gzPgo8cD5Oby4gTWVkaWNhdGlvbiBtYW5hZ2VtZW50IGFuZCBjaGlyb3ByYWN0aWMgY2FyZSBmb3IgY2Vydmljb2dlbmljIGludm9sdmVtZW50IGFkZHJlc3MgZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBwcm9ibGVtIGFuZCBhcmUgbm90IG11dHVhbGx5IGV4Y2x1c2l2ZS4gSWYgbWlncmFpbmUgZnJlcXVlbmN5IHNpZ25pZmljYW50bHkgZGVjcmVhc2VzIG92ZXIgYSBjb3Vyc2Ugb2YgY2FyZSwgdGhhdCdzIHdvcnRoIGRpc2N1c3Npbmcgd2l0aCB5b3VyIHByZXNjcmliaW5nIHBoeXNpY2lhbiDigJQgcHJldmVudGl2ZSBtZWRpY2F0aW9uIG1heSBiZSByZXZpc2l0ZWQuIEJ1dCBhbnkgY2hhbmdlcyB0byB5b3VyIG1lZGljYXRpb24gcmVnaW1lbiBzaG91bGQgYmUgbWFkZSBpbiBjb29yZGluYXRpb24gd2l0aCB0aGUgcHJvdmlkZXIgbWFuYWdpbmcgaXQuPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0iZmFxLWl0ZW0iPgo8aDM RG9lcyBRdWFsaXR5IExpZmUgQ2hpcm9wcmFjdGljIHRyZWF0IHBhdGllbnRzIGZyb20gb3V0c2lkZSBPdmVybGFuZCBQYXJrPzwvaDM CjxwPlllcy4gV2UgcmVndWxhcmx5IHNlZSBwYXRpZW50cyBmcm9tIExlYXdvb2QsIExlbmV4YSwgT2xhdGhlLCBQcmFpcmllIFZpbGxhZ2UsIFNoYXduZWUsIGFuZCB0aHJvdWdob3V0IEpvaG5zb24gQ291bnR5LCBLUy48L3A CjwvZGl2Pgo8L2FydGljbGU CjwvZGl2Pgo8L21haW4 CjwhLS0gRklOQUwgQ1RBIC0tPgo8c2VjdGlvbiBjbGFzcz0icHktMjQgYmctcWxjLWluayBzZWN0aW9uLXJ1bGUgcmVsYXRpdmUgei0xMCI CjxkaXYgY2xhc3M9Im1heC13LTN4bCBteC1hdXRvIHB4LTQgc206cHgtNiBsZzpweC04IHRleHQtY2VudGVyIGZhZGUtaW4iPgo8aDIgY2xhc3M9InRleHQtNHhsIGxnOnRleHQtNXhsIGZvbnQtZXh0cmFib2xkIHRleHQtd2hpdGUgbWItNCBsZWFkaW5nLXRpZ2h0Ij5Ob3QgU3VyZSBpZiBXZTxici8 Q2FuIEhlbHA/PC9oMj4KPHAgY2xhc3M9InRleHQteGwgdGV4dC1ncmF5LTQwMCBtYi0xMCI U3RhcnQgd2l0aCBhIDE1LW1pbnV0ZSBmaXQgY29uc3VsdGF0aW9uLiBIb25lc3QgYXNzZXNzbWVudCBvZiBmaXQg4oCUIG5vIHByZXNzdXJlIGVpdGhlciB3YXkuPC9wPgo8ZGl2IGNsYXNzPSJmbGV4IGZsZXgtY29sIHNtOmZsZXgtcm93IGp1c3RpZnktY2VudGVyIGdhcC00IG1iLTYiPgo8YSBjbGFzcz0icHgtOSBweS00IHJvdW5kZWQtZnVsbCBiZy1xbGMtbWludCB0ZXh0LXFsYy1pbmsgZm9udC1ib2xkIHRleHQtYmFzZSBob3ZlcjpiZy13aGl0ZSB0cmFuc2l0aW9uLWFsbCBzaGFkb3ctWzBfMF8yNHB4X3JnYmEoNjQsMjIwLDE1NSwwLjM1KV0iIGRhdGEtYW5hbHl0aWNzPSJibG9nX2Jvb2tfZXZhbCIgaHJlZj0iL3NjaGVkdWxlIj5Cb29rIGEgNjAtTWluIEV2YWx1YXRpb24g4oaSPC9hPgo8YSBjbGFzcz0icHgtOSBweS00IHJvdW5kZWQtZnVsbCBib3JkZXIgYm9yZGVyLXdoaXRlLzI1IHRleHQtd2hpdGUgZm9udC1zZW1pYm9sZCB0ZXh0LWJhc2UgaG92ZXI6Ymctd2hpdGUvMTAgdHJhbnNpdGlvbi1hbGwiIGRhdGEtYW5hbHl0aWNzPSJibG9nX2ZpdF9jb25zdWx0IiBocmVmPSIvc2NoZWR1bGUiPjE1LU1pbiBGaXQgQ29uc3VsdGF0aW9uPC9hPgo8L2Rpdj4KPHAgY2xhc3M9InRleHQtc20gdGV4dC1ncmF5LTUwMCI Tm8gb3Blbi1lbmRlZCB0cmVhdG1lbnQgcGxhbnMuIE5vIHByZXNzdXJlLjwvcD4KPC9kaXY Cjwvc2VjdGlvbj4KPCEtLSBGT09URVIgLS0 Cjxmb290ZXIgY2xhc3M9ImJnLXFsYy1pbmsgYm9yZGVyLXQgYm9yZGVyLXFsYy1taW50LzIwIHB0LTEyIHBiLTggdGV4dC1jZW50ZXIgcmVsYXRpdmUgei0xMCI CjxkaXYgY2xhc3M9Im1heC13LTd4bCBteC1hdXRvIHB4LTQgc206cHgtNiBsZzpweC04Ij4KPHAgY2xhc3M9InRleHQtZ3JheS00MDAgbWItNiB0ZXh0LXNtIj43MTAyIENvbGxlZ2UgQmx2ZCwgT3ZlcmxhbmQgUGFyaywgS1MgNjYyMTAg4oCiICg5MTMpIDQ4OC0zMjMzPC9wPgo8ZGl2IGNsYXNzPSJmbGV4IGp1c3RpZnktY2VudGVyIGdhcC02IGZsZXgtd3JhcCB0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZSBtYi00Ij4KPGEgY2xhc3M9ImhvdmVyOnRleHQtcWxjLW1pbnQgdHJhbnNpdGlvbi1jb2xvcnMiIGhyZWY9Ii9wYXRpZW50LWpvdXJuZXkiPlByb2Nlc3M8L2E CjxhIGNsYXNzPSJob3Zlcjp0ZXh0LXFsYy1taW50IHRyYW5zaXRpb24tY29sb3JzIiBocmVmPSIvY29uZGl0aW9ucyI Q29uZGl0aW9uczwvYT4KPGEgY2xhc3M9ImhvdmVyOnRleHQtcWxjLW1pbnQgdHJhbnNpdGlvbi1jb2xvcnMiIGhyZWY9Ii9hdXRvLWluanVyeSI QXV0byBJbmp1cnk8L2E CjxhIGNsYXNzPSJob3Zlcjp0ZXh0LXFsYy1taW50IHRyYW5zaXRpb24tY29sb3JzIiBocmVmPSIvZnVuY3Rpb25hbCI RnVuY3Rpb25hbCBNZWQ8L2E CjxhIGNsYXNzPSJob3Zlcjp0ZXh0LXFsYy1taW50IHRyYW5zaXRpb24tY29sb3JzIiBocmVmPSIvYWJvdXQiPkFib3V0PC9hPgo8YSBjbGFzcz0iaG92ZXI6dGV4dC1xbGMtbWludCB0cmFuc2l0aW9uLWNvbG9ycyIgaHJlZj0iL2Jsb2cvIj5CbG9nPC9hPgo8YSBjbGFzcz0iaG92ZXI6dGV4dC1xbGMtbWludCB0cmFuc2l0aW9uLWNvbG9ycyIgaHJlZj0iL3NjaGVkdWxlIj5Cb29rPC9hPgo8L2Rpdj4KPGRpdiBjbGFzcz0iZmxleCBqdXN0aWZ5LWNlbnRlciBnYXAtNSBmbGV4LXdyYXAgdGV4dC14cyB0ZXh0LWdyYXktNjAwIG1iLTYiPgo8YSBjbGFzcz0iaG92ZXI6dGV4dC1ncmF5LTQwMCB0cmFuc2l0aW9uLWNvbG9ycyIgaHJlZj0iL3ByaXZhY3kiPlByaXZhY3k8L2E CjxhIGNsYXNzPSJob3Zlcjp0ZXh0LWdyYXktNDAwIHRyYW5zaXRpb24tY29sb3JzIiBocmVmPSIvdGVybXMiPlRlcm1zPC9hPgo8YSBjbGFzcz0iaG92ZXI6dGV4dC1ncmF5LTQwMCB0cmFuc2l0aW9uLWNvbG9ycyIgaHJlZj0iL2FjY2Vzc2liaWxpdHkiPkFjY2Vzc2liaWxpdHk8L2E PGEgaHJlZj0iL2ZhcSIgY2xhc3M9ImhvdmVyOnRleHQtZ3JheS00MDAgdHJhbnNpdGlvbi1jb2xvcnMiPkZBUTwvYT4KPC9kaXY CjxwIGNsYXNzPSJ0ZXh0LXhzIHRleHQtZ3JheS03MDAiPsKpIDIwMjYgUXVhbGl0eSBMaWZlIENoaXJvcHJhY3RpYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48L3A CjwvZGl2Pgo8L2Zvb3Rlcj4KPCEtLSBNb2JpbGUgc3RpY2t5IC0tPgo8ZGl2IGNsYXNzPSJmaXhlZCBib3R0b20tMCBsZWZ0LTAgcmlnaHQtMCBiZy1xbGMtaW5rLzk1IGJhY2tkcm9wLWJsdXItbWQgcC0zIG1kOmhpZGRlbiB6LTUwIGJvcmRlci10IGJvcmRlci13aGl0ZS8xMCI CjxkaXYgY2xhc3M9Im1heC13LTd4bCBteC1hdXRvIGZsZXggaXRlbXMtY2VudGVyIGdhcC0zIj4KPGEgY2xhc3M9ImZsZXgtMSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBnYXAtMiB0ZXh0LXFsYy1pbmsgZm9udC1ib2xkIHJvdW5kZWQteGwgcHktMyBiZy1xbGMtbWludCB0ZXh0LXNtIiBkYXRhLWFuYWx5dGljcz0ibW9iaWxlX3N0aWNreV9jYWxsIiBocmVmPSJzbXM6OTEzNDg4MzIzMyI CjxzdmcgY2xhc3M9InctNCBoLTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiB2aWV3Ym94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0zIDVhMiAyIDAgMDEyLTJoMy4yOGExIDEgMCAwMS45NDguNjg0bDEuNDk4IDQuNDkzYTEgMSAwIDAxLS41MDIgMS4yMWwtMi4yNTcgMS4xM2ExMS4wNDIgMTEuMDQyIDAgMDA1LjUxNiA1LjUxNmwxLjEzLTIuMjU3YTEgMSAwIDAxMS4yMS0uNTAybDQuNDkzIDEuNDk4YTEgMSAwIDAxLjY4NC45NDhWMTlhMiAyIDAgMDEtMiAyaC0xQzkuNzE2IDIxIDMgMTQuMjg0IDMgN1Y1eiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiPjwvcGF0aD48L3N2Zz4KICAgICAgICAgICAgICAgIENhbGwgb3IgVGV4dAogICAgICAgICAgICA8L2E CjxhIGNsYXNzPSJmbGV4LTEgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTIgdGV4dC13aGl0ZSBmb250LWJvbGQgcm91bmRlZC14bCBweS0zIGJnLXdoaXRlLzEwIGJvcmRlciBib3JkZXItd2hpdGUvMTUgdGV4dC1zbSIgZGF0YS1hbmFseXRpY3M9Im1vYmlsZV9zdGlja3lfYm9vayIgaHJlZj0iL3NjaGVkdWxlIj5Cb29rIE9ubGluZSDihpI8L2E CjwvZGl2Pgo8L2Rpdj4KPHNjcmlwdD4KICAgICAgICBjb25zdCBfb2JzID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChlbnRyaWVzKSA9PiB7CiAgICAgICAgICAgIGVudHJpZXMuZm9yRWFjaChlbCA9PiB7IGlmIChlbC5pc0ludGVyc2VjdGluZykgeyBlbC50YXJnZXQuY2xhc3NMaXN0LmFkZCgndmlzaWJsZScpOyBfb2JzLnVub2JzZXJ2ZShlbC50YXJnZXQpOyB9IH0pOwogICAgICAgIH0sIHsgdGhyZXNob2xkOiAwLjEgfSk7CiAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmZhZGUtaW4nKS5mb3JFYWNoKGVsID0 IF9vYnMub2JzZXJ2ZShlbCkpOwoKICAgICAgICAoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHZhciBnYUlkID0gIkctTFoyVjVNOUQwNyI7CiAgICAgICAgICAgIHZhciBzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CiAgICAgICAgICAgIHMuYXN5bmMgPSB0cnVlOwogICAgICAgICAgICBzLnNyYyA9ICdodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbS9ndGFnL2pzP2lkPScgKyBnYUlkOwogICAgICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHMpOwogICAgICAgICAgICB3aW5kb3cuZGF0YUxheWVyID0gd2luZG93LmRhdGFMYXllciB8fCBbXTsKICAgICAgICAgICAgZnVuY3Rpb24gZ3RhZygpe2RhdGFMYXllci5wdXNoKGFyZ3VtZW50cyk7fQogICAgICAgICAgICBndGFnKCdqcycsIG5ldyBEYXRlKCkpOwogICAgICAgICAgICBndGFnKCdjb25maWcnLCBnYUlkKTsKICAgICAgICB9KSgpOwogICAgPC9zY3JpcHQ CjwvYm9keT4KPC9odG1sPg==