栄養成分表示メーカー|お菓子の栄養成分表示が無料で作れるツール X Facebook はてブ Pocket LINE コピー 2026.06.16 ← トップページへ戻る PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImphIj4KPGhlYWQ+CjxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgo8dGl0bGU+5qCE6aSK5oiQ5YiG6KGo56S644Oh44O844Kr44O8772c5Y6f5p2Q5paZ44GL44KJ6Ieq5YuV6KiI566XPC90aXRsZT4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tIj4KPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmdzdGF0aWMuY29tIiBjcm9zc29yaWdpbj4KPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1aZW4rTWFydStHb3RoaWM6d2dodEA0MDA7NTAwOzcwMCZkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+CjxzdHlsZT4KICA6cm9vdHsKICAgIC0tY3JlYW06I0ZCRjZFQTsgLS1jcmVhbTI6I0ZGRkRGNzsgLS1iZWlnZTojRUZFNkQ1OyAtLWJlaWdlMjojRTNENUJEOwogICAgLS1icm93bjojNDUzNDJBOyAtLWJyb3duMjojNmI1ODRhOyAtLWJyb3duMzojOGE3NzY2OwogICAgLS1hbWJlcjojRTlCOTQ5OyAtLWFtYmVyLWQ6I0M5OUExRjsKICAgIC0tZ3JlZW46IzVFN0M0QTsgLS1ncmVlbi1kOiM0NjVjMzg7IC0tZ3JlZW4tYmc6I0VGRjNFQTsKICAgIC0tcmVkOiNCMDUzM0Y7CiAgfQogICp7Ym94LXNpemluZzpib3JkZXItYm94fQogIGJvZHl7CiAgICBtYXJnaW46MDsgcGFkZGluZzoxNnB4OwogICAgZm9udC1mYW1pbHk6J1plbiBNYXJ1IEdvdGhpYycsJ0hpcmFnaW5vIE1hcnUgR290aGljIFByb04nLCdIaXJhZ2lubyBTYW5zJyxzYW5zLXNlcmlmOwogICAgY29sb3I6dmFyKC0tYnJvd24pOyBiYWNrZ3JvdW5kOnZhcigtLWNyZWFtKTsgbGluZS1oZWlnaHQ6MS43OwogICAgLXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDsKICB9CiAgLndyYXB7bWF4LXdpZHRoOjY4MHB4OyBtYXJnaW46MCBhdXRvfQogIC5oZXJvewogICAgdGV4dC1hbGlnbjpjZW50ZXI7IGJhY2tncm91bmQ6dmFyKC0tY3JlYW0yKTsgYm9yZGVyOjJweCBzb2xpZCB2YXIoLS1iZWlnZTIpOwogICAgYm9yZGVyLXJhZGl1czoxNnB4OyBwYWRkaW5nOjIycHggMThweDsgbWFyZ2luLWJvdHRvbToxOHB4OwogIH0KICAuaGVybyAuZXllYnJvd3tsZXR0ZXItc3BhY2luZzouMThlbTsgZm9udC1zaXplOjExcHg7IGNvbG9yOnZhcigtLWdyZWVuLWQpOyBmb250LXdlaWdodDo3MDB9CiAgLmhlcm8gaDF7Zm9udC1zaXplOjI0cHg7IG1hcmdpbjo2cHggMCA4cHg7IGNvbG9yOnZhcigtLWJyb3duKX0KICAuaGVybyBwe2ZvbnQtc2l6ZToxM3B4OyBjb2xvcjp2YXIoLS1icm93bjIpOyBtYXJnaW46MH0KICAuY2FyZHsKICAgIGJhY2tncm91bmQ6dmFyKC0tY3JlYW0yKTsgYm9yZGVyOjJweCBzb2xpZCB2YXIoLS1iZWlnZTIpOwogICAgYm9yZGVyLXJhZGl1czoxNnB4OyBwYWRkaW5nOjE4cHg7IG1hcmdpbi1ib3R0b206MTZweDsKICB9CiAgLmNhcmQgaDJ7CiAgICBmb250LXNpemU6MTdweDsgbWFyZ2luOjAgMCAxMnB4OyBjb2xvcjp2YXIoLS1ncmVlbi1kKTsKICAgIGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6OHB4OwogIH0KICAuY2FyZCBoMiAuZG90e3dpZHRoOjEwcHg7IGhlaWdodDoxMHB4OyBib3JkZXItcmFkaXVzOjUwJTsgYmFja2dyb3VuZDp2YXIoLS1hbWJlcik7IGRpc3BsYXk6aW5saW5lLWJsb2NrfQogIC5ub3RlewogICAgYmFja2dyb3VuZDp2YXIoLS1ncmVlbi1iZyk7IGJvcmRlci1sZWZ0OjRweCBzb2xpZCB2YXIoLS1ncmVlbik7CiAgICBib3JkZXItcmFkaXVzOjhweDsgcGFkZGluZzoxMHB4IDEycHg7IGZvbnQtc2l6ZToxM3B4OyBjb2xvcjp2YXIoLS1ncmVlbi1kKTsgbWFyZ2luOjEwcHggMDsKICB9CiAgLndhcm57CiAgICBiYWNrZ3JvdW5kOiNGREYxRUM7IGJvcmRlci1sZWZ0OjRweCBzb2xpZCB2YXIoLS1yZWQpOwogICAgYm9yZGVyLXJhZGl1czo4cHg7IHBhZGRpbmc6MTBweCAxMnB4OyBmb250LXNpemU6MTNweDsgY29sb3I6IzdhM2EyYzsgbWFyZ2luOjEwcHggMDsKICB9CiAgdWwucnVsZXN7bWFyZ2luOjhweCAwIDA7IHBhZGRpbmctbGVmdDoxOHB4OyBmb250LXNpemU6MTMuNXB4OyBjb2xvcjp2YXIoLS1icm93bjIpfQogIHVsLnJ1bGVzIGxpe21hcmdpbi1ib3R0b206NnB4fQogIC5pbmctcm93ewogICAgZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDg0cHggMzBweDsgZ2FwOjhweDsgYWxpZ24taXRlbXM6Y2VudGVyOwogICAgbWFyZ2luLWJvdHRvbTo4cHg7CiAgfQogIHNlbGVjdCwgaW5wdXRbdHlwZT10ZXh0XSwgaW5wdXRbdHlwZT1udW1iZXJdewogICAgd2lkdGg6MTAwJTsgZm9udC1mYW1pbHk6aW5oZXJpdDsgZm9udC1zaXplOjE0cHg7IGNvbG9yOnZhcigtLWJyb3duKTsKICAgIGJhY2tncm91bmQ6I2ZmZjsgYm9yZGVyOjEuNXB4IHNvbGlkIHZhcigtLWJlaWdlMik7IGJvcmRlci1yYWRpdXM6MTBweDsKICAgIHBhZGRpbmc6OXB4IDEwcHg7CiAgfQogIGlucHV0OjpwbGFjZWhvbGRlcntjb2xvcjojYjZhNDhkfQogIC51bml0LWd7Zm9udC1zaXplOjEycHg7IGNvbG9yOnZhcigtLWJyb3duMyk7IHRleHQtYWxpZ246Y2VudGVyfQogIC5kZWx7CiAgICBib3JkZXI6bm9uZTsgYmFja2dyb3VuZDp2YXIoLS1iZWlnZSk7IGNvbG9yOnZhcigtLWJyb3duMik7IGJvcmRlci1yYWRpdXM6NTAlOwogICAgd2lkdGg6MjhweDsgaGVpZ2h0OjI4cHg7IGN1cnNvcjpwb2ludGVyOyBmb250LXNpemU6MTVweDsgbGluZS1oZWlnaHQ6MTsKICB9CiAgLmRlbDpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLXJlZCk7IGNvbG9yOiNmZmZ9CiAgLnJvdy1oZWFkewogICAgZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDg0cHggMzBweDsgZ2FwOjhweDsKICAgIGZvbnQtc2l6ZToxMS41cHg7IGNvbG9yOnZhcigtLWJyb3duMyk7IG1hcmdpbi1ib3R0b206NHB4OyBwYWRkaW5nOjAgMnB4OwogIH0KICAuYnRuewogICAgZm9udC1mYW1pbHk6aW5oZXJpdDsgY3Vyc29yOnBvaW50ZXI7IGJvcmRlcjpub25lOyBib3JkZXItcmFkaXVzOjk5OXB4OwogICAgZm9udC13ZWlnaHQ6NzAwOyBmb250LXNpemU6MTRweDsgcGFkZGluZzoxMXB4IDE4cHg7CiAgfQogIC5idG4tYWRke2JhY2tncm91bmQ6dmFyKC0tYmVpZ2UyKTsgY29sb3I6dmFyKC0tYnJvd24pfQogIC5idG4tYWRkOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYW1iZXIpOyBjb2xvcjojZmZmfQogIC5idG4tbWFpbntiYWNrZ3JvdW5kOnZhcigtLWdyZWVuKTsgY29sb3I6I2ZmZjsgd2lkdGg6MTAwJTsgZm9udC1zaXplOjE2cHg7IHBhZGRpbmc6MTRweH0KICAuYnRuLW1haW46aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1ncmVlbi1kKX0KICAuYnRuLWNvcHl7YmFja2dyb3VuZDp2YXIoLS1hbWJlcik7IGNvbG9yOiNmZmZ9CiAgLmJ0bi1jb3B5OmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYW1iZXItZCl9CiAgLmZpZWxkc2V0e21hcmdpbi10b3A6MTRweH0KICAuZmllbGRzZXQgbGFiZWwucSwgLmdyaWQyIGxhYmVsLnF7ZGlzcGxheTpibG9jazsgZm9udC1zaXplOjEzLjVweDsgZm9udC13ZWlnaHQ6NTAwOyBtYXJnaW4tYm90dG9tOjVweDsgY29sb3I6dmFyKC0tYnJvd24pfQogIC5zbWFsbHtmb250LXNpemU6MTJweDsgY29sb3I6dmFyKC0tYnJvd24zKX0KICAuZ3JpZDJ7ZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjsgZ2FwOjEycHh9CiAgLnJhZGlvc3tkaXNwbGF5OmZsZXg7IGZsZXgtd3JhcDp3cmFwOyBnYXA6OHB4OyBtYXJnaW4tdG9wOjRweH0KICAucmFkaW9zIGxhYmVsewogICAgYm9yZGVyOjEuNXB4IHNvbGlkIHZhcigtLWJlaWdlMik7IGJhY2tncm91bmQ6I2ZmZjsgYm9yZGVyLXJhZGl1czo5OTlweDsKICAgIHBhZGRpbmc6N3B4IDE0cHg7IGZvbnQtc2l6ZToxM3B4OyBjdXJzb3I6cG9pbnRlcjsgY29sb3I6dmFyKC0tYnJvd24yKTsKICB9CiAgLnJhZGlvcyBpbnB1dHtkaXNwbGF5Om5vbmV9CiAgLnJhZGlvcyBpbnB1dDpjaGVja2VkICsgc3Bhbntjb2xvcjp2YXIoLS1ncmVlbi1kKTsgZm9udC13ZWlnaHQ6NzAwfQogIC5yYWRpb3MgbGFiZWw6aGFzKGlucHV0OmNoZWNrZWQpe2JvcmRlci1jb2xvcjp2YXIoLS1ncmVlbik7IGJhY2tncm91bmQ6dmFyKC0tZ3JlZW4tYmcpfQogICNyZXN1bHR7ZGlzcGxheTpub25lOyBtYXJnaW4tdG9wOjZweH0KICAubmxhYmVsewogICAgYmFja2dyb3VuZDojZmZmOyBib3JkZXI6Mi41cHggc29saWQgdmFyKC0tYnJvd24pOyBib3JkZXItcmFkaXVzOjZweDsKICAgIG1heC13aWR0aDozMjBweDsgbWFyZ2luOjZweCBhdXRvIDEycHg7IHBhZGRpbmc6MDsgZm9udC1mYW1pbHk6J0hpcmFnaW5vIFNhbnMnLCdZdSBHb3RoaWMnLHNhbnMtc2VyaWY7CiAgICBjb2xvcjojMjIyOwogIH0KICAubmxhYmVsIC5ubC10aXRsZXsKICAgIHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc2l6ZToxNXB4OyBwYWRkaW5nOjhweCA2cHggNnB4OwogICAgYm9yZGVyLWJvdHRvbToycHggc29saWQgdmFyKC0tYnJvd24pOwogIH0KICAubmxhYmVsIC5ubC1zdWJ7Zm9udC1zaXplOjExcHg7IGZvbnQtd2VpZ2h0OjQwMDsgY29sb3I6IzU1NTsgZGlzcGxheTpibG9jazsgbWFyZ2luLXRvcDoycHh9CiAgLm5sYWJlbCB0YWJsZXt3aWR0aDoxMDAlOyBib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7IGZvbnQtc2l6ZToxNHB4fQogIC5ubGFiZWwgdGR7cGFkZGluZzo3cHggMTJweDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjY30KICAubmxhYmVsIHRyOmxhc3QtY2hpbGQgdGR7Ym9yZGVyLWJvdHRvbTpub25lfQogIC5ubGFiZWwgdGQudmFse3RleHQtYWxpZ246cmlnaHQ7IGZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc30KICAubmxhYmVsIHRyLmVuZXJneSB0ZHtmb250LXdlaWdodDo3MDB9CiAgLmVzdGltYXRle3RleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MTEuNXB4OyBjb2xvcjp2YXIoLS1icm93bjMpOyBtYXJnaW46LTRweCAwIDEycHh9CiAgLmNvcHliYXJ7dGV4dC1hbGlnbjpjZW50ZXJ9CiAgLnRvdGFsaW5mb3tmb250LXNpemU6MTIuNXB4OyBjb2xvcjp2YXIoLS1icm93bjIpOyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLWJvdHRvbTo2cHh9CiAgLmVycntjb2xvcjp2YXIoLS1yZWQpOyBmb250LXNpemU6MTNweDsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6OHB4fQogIGZvb3Rlcnt0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjExcHg7IGNvbG9yOnZhcigtLWJyb3duMyk7IG1hcmdpbjoxOHB4IDAgNnB4fQo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5Pgo8ZGl2IGNsYXNzPSJ3cmFwIj4KCiAgPGRpdiBjbGFzcz0iY2FyZCI+CiAgICA8aDI+PHNwYW4gY2xhc3M9ImRvdCI+PC9zcGFuPuaghOmkiuaIkOWIhuihqOekuuOBruWfuuacrOODq+ODvOODqzwvaDI+CiAgICA8cCBzdHlsZT0iZm9udC1zaXplOjE0cHg7IG1hcmdpbjowIDAgNHB4Ij7ooajnpLrjgYznvqnli5njgaXjgZHjgonjgozjgabjgYTjgovjga7jga/jgIHmrKHjga48c3Ryb25nPjXpoIXnm648L3N0cm9uZz7jgII8c3Ryb25nPuOBk+OBrumghueVqjwvc3Ryb25nPuOBp+abuOOBjeOBvuOBmeOAgjwvcD4KICAgIDx1bCBjbGFzcz0icnVsZXMiPgogICAgICA8bGk+54ax6YeP77yIa2NhbO+8iTwvbGk+CiAgICAgIDxsaT7jgZ/jgpPjgbHjgY/os6rvvIhn77yJPC9saT4KICAgICAgPGxpPuiEguizqu+8iGfvvIk8L2xpPgogICAgICA8bGk+54Kt5rC05YyW54mp77yIZ++8iTwvbGk+CiAgICAgIDxsaT7po5/loannm7jlvZPph4/vvIhn77yJ44CA4oC744OK44OI44Oq44Km44Og44Gn44Gv44Gq44GP44CM6aOf5aGp55u45b2T6YeP44CN44Gn6KGo56S644GX44G+44GZPC9saT4KICAgIDwvdWw+CiAgICA8ZGl2IGNsYXNzPSJub3RlIj4KICAgICAg6KGo56S644Gv44CMMeWAi+OBguOBn+OCiuOAjeOAjDEwMGfjgYLjgZ/jgorjgI3jgarjgak8c3Ryb25nPuWNmOS9jeOCkuW/heOBmuaxuuOCgeOBpjwvc3Ryb25nPuabuOOBjeOBvuOBmeOAgjxicj4KICAgICAg5YCk44Gv44CB5YWs55qE44Gq5YiG5p6Q44Gu44G744GL44CM5ZCI55CG55qE44Gq5o6o5a6a5YCk44CN44Gn44KCT0vjgILmiYvkvZzjgorjgYroj5PlrZDjgafjga/miJDliIbooajjgYvjgonjga7mjqjlrprjgYznj77lrp/nmoTjgafjgIHjgZ3jga7loLTlkIjjga88c3Ryb25nPuOAjOaOqOWumuWApOOAjeOBqOaYjuiomDwvc3Ryb25nPuOBl+OBvuOBme+8iOOBk+OBruODhOODvOODq+OBruWHuuWKm+OBq+OCguiHquWLleOBp+WFpeOCiuOBvuOBme+8ieOAggogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJ3YXJuIj4KICAgICAg44GT44Gu44OE44O844Or44GvPHN0cm9uZz7ml6XmnKzpo5/lk4HmqJnmupbmiJDliIbooajvvIjlhavoqILvvInjgpLjgoLjgajjgavjgZfjgZ/mpoLnrpc8L3N0cm9uZz7jgafjgZnjgILnhLzmiJDkuK3jga7msLTliIbokrjnmbrjgoTmnZDmlpnjg63jgrnjga/lj43mmKDjgZfjgY3jgozjgarjgYTjgZ/jgoHjgIHllYblk4HjgajjgZfjgabosqnlo7LjgZnjgovpmpvjga/mnIDntYLnmoTjgavjgZToh6rouqvjgafnorroqo3jgZfjgabjgY/jgaDjgZXjgYTjgIIKICAgIDwvZGl2PgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJjYXJkIj4KICAgIDxoMj48c3BhbiBjbGFzcz0iZG90Ij48L3NwYW4+4pGgIOS9v+OBo+OBn+adkOaWmeOCkuWFpeOCjOOCizwvaDI+CiAgICA8ZGl2IGNsYXNzPSJ3YXJuIj4KICAgICAgPHN0cm9uZz7kvb/jgaPjgZ/mnZDmlpnjga/jgIzjgZnjgbnjgabjgI3lhaXjgozjgabjgY/jgaDjgZXjgYTvvIjmsLTjg7vniZvkubPjg7vjgYrphZLjgarjganjgoLlkKvjgoDvvInjgII8L3N0cm9uZz48YnI+CiAgICAgIOOBk+OBruODhOODvOODq+OBr+OAgeOBvuOBmuWFqOS9k+OBruWQiOioiOaghOmkiuOCkuWHuuOBl+OBpuOBi+OCieOAjDHlgIvjgYLjgZ/jgorjgI3jgIwxMDBn44GC44Gf44KK44CN44Gr5Ymy44KK5oi744GX44G+44GZ44CC44Gd44Gu44Gf44KB44CBPHN0cm9uZz7moITppIrjgYzjgrzjg63jga7msLTjgafjgoLlhaXjgozlv5jjgozjgovjgajnt4/ph43ph4/jgYzjgZrjgow8L3N0cm9uZz7jgIHjgajjgY/jgavjgIwxMDBn44GC44Gf44KK44CN44Gu5pWw5YCk44GM5a6f6Zqb44KI44KK5aSn44GN44GP5Ye644Gm44GX44G+44GE44G+44GZ44CC44Os44K344OU44Gr5L2/44Gj44Gf44KC44Gu44Gv5ryP44KM44Gq44GP5YWl5Yqb44GX44G+44GX44KH44GG44CCCiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InJvdy1oZWFkIj48c3Bhbj7mnZDmlpk8L3NwYW4+PHNwYW4gc3R5bGU9InRleHQtYWxpZ246Y2VudGVyIj7liIbph48oZyk8L3NwYW4+PHNwYW4+PC9zcGFuPjwvZGl2PgogICAgPGRpdiBpZD0icm93cyI+PC9kaXY+CiAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWFkZCIgaWQ9ImFkZEJ0biI+77yLIOadkOaWmeOCkui/veWKoDwvYnV0dG9uPgogICAgPHAgY2xhc3M9InNtYWxsIiBzdHlsZT0ibWFyZ2luLXRvcDo4cHgiPuODquOCueODiOOBq+OBquOBhOadkOaWmeOBr+OAjOOBneOBruS7lu+8iOaJi+WFpeWKm++8ieOAjeOCkumBuOOBtuOBqOOAgTEwMGfjgYLjgZ/jgorjga7miJDliIbjgpLnm7TmjqXlhaXlipvjgafjgY3jgb7jgZnjgII8L3A+CiAgPC9kaXY+CgogIDxkaXYgY2xhc3M9ImNhcmQiIGlkPSJjb25uZWN0Ij4KICAgIDxoMj48c3BhbiBjbGFzcz0iZG90Ij48L3NwYW4+44GK6I+T5a2Q44Gu6aOf5ZOB6KGo56S644Op44OZ44Or44Oh44O844Kr44O844Go6YCj5pC677yI5Lu75oSP77yJPC9oMj4KICAgIDxwIGNsYXNzPSJzbWFsbCIgc3R5bGU9Im1hcmdpbjotNHB4IDAgOHB4Ij7jgYroj5PlrZDjga7po5/lk4HooajnpLrjg6njg5njg6vjg6Hjg7zjgqvjg7zvvIjkuIDmi6zooajnpLrvvInjgaflhaXjgozjgZ/mnZDmlpnvvJ3ph43jgZXjgpLjgZ3jga7jgb7jgb7lj5bjgorovrzjgoHjgb7jgZnjgILmoITppIrjgaDjgZHkvb/jgYbmlrnjga/jgZPjga7mrITjga/nhKHoppbjgZfjgaZPS+OAgjwvcD4KICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tYWRkIiBpZD0ic2VuZEJ0biI+44GT44Gu5p2Q5paZ44KS44GK6I+T5a2Q44Gu6aOf5ZOB6KGo56S644Op44OZ44Or44Oh44O844Kr44O844G46YCB44KL77yI44Kz44OU44O877yJPC9idXR0b24+CiAgICA8ZGl2IHN0eWxlPSJtYXJnaW4tdG9wOjZweCI+PGEgaHJlZj0iaHR0cHM6Ly9yaWlseXJlc2luLmNvbS9va2FzaGktbGFiZWwtbWFrZXIvIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciIgc3R5bGU9ImZvbnQtc2l6ZToxM3B4O2NvbG9yOnZhcigtLWdyZWVuLWQpO2ZvbnQtd2VpZ2h0OjcwMCI+4oaSIOOBiuiPk+WtkOOBrumjn+WTgeihqOekuuODqeODmeODq+ODoeODvOOCq+ODvOOCkuaWsOOBl+OBhOOCv+ODluOBp+mWi+OBjzwvYT48L2Rpdj4KICAgIDxkaXYgc3R5bGU9Im1hcmdpbi10b3A6MTBweCI+CiAgICAgIDxkaXYgY2xhc3M9InNtYWxsIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTo0cHgiPuOBiuiPk+WtkOOBrumjn+WTgeihqOekuuODqeODmeODq+ODoeODvOOCq+ODvOOBp+OCs+ODlOODvOOBl+OBn+WGheWuueOCkuiyvOOCiuS7mOOBkeOBpuWPluOCiui+vOOCgO+8mjwvZGl2PgogICAgICA8dGV4dGFyZWEgaWQ9ImltcG9ydEJveCIgcGxhY2Vob2xkZXI9IuOBk+OBk+OBq+iyvOOCiuS7mOOBkSIgc3R5bGU9IndpZHRoOjEwMCU7aGVpZ2h0OjU4cHg7Ym9yZGVyOjEuNXB4IHNvbGlkIHZhcigtLWJlaWdlMik7Ym9yZGVyLXJhZGl1czoxMHB4O3BhZGRpbmc6OHB4O2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOjEzcHg7Y29sb3I6dmFyKC0tYnJvd24pIj48L3RleHRhcmVhPgogICAgICA8YnV0dG9uIGNsYXNzPSJidG4gYnRuLWFkZCIgaWQ9ImltcG9ydEJ0biIgc3R5bGU9Im1hcmdpbi10b3A6NnB4Ij7osrzjgorku5jjgZHjgZ/mnZDmlpnjgpLlj5bjgorovrzjgoA8L2J1dHRvbj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0ic21hbGwiIGlkPSJjb25uZWN0TXNnIiBzdHlsZT0ibWFyZ2luLXRvcDo2cHg7Y29sb3I6dmFyKC0tZ3JlZW4tZCkiPjwvZGl2PgogIDwvZGl2PgoKICA8ZGl2IGNsYXNzPSJjYXJkIj4KICAgIDxoMj48c3BhbiBjbGFzcz0iZG90Ij48L3NwYW4+4pGhIOWHuuadpeS4iuOBjOOCiuOBruaDheWgsTwvaDI+CiAgICA8ZGl2IGNsYXNzPSJncmlkMiI+CiAgICAgIDxkaXY+CiAgICAgICAgPGxhYmVsIGNsYXNzPSJxIj7lh7rmnaXkuIrjgYzjgorjga7lgIvmlbA8L2xhYmVsPgogICAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJwaWVjZXMiIG1pbj0iMSIgc3RlcD0iMSIgcGxhY2Vob2xkZXI9IuS+i++8mjEyIiB2YWx1ZT0iIj4KICAgICAgICA8c3BhbiBjbGFzcz0ic21hbGwiPuS9leWAi++8iOS9leaemu+8ieOBp+OBjeOBvuOBmeOBi++8nzwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXY+CiAgICAgICAgPGxhYmVsIGNsYXNzPSJxIj7nhLzjgY3kuIrjgYzjgorlvozjga7nt4/ph43ph48oZyk8c3BhbiBjbGFzcz0ic21hbGwiPu+8j+S7u+aEjzwvc3Bhbj48L2xhYmVsPgogICAgICAgIDxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJmaW53ZWlnaHQiIG1pbj0iMSIgc3RlcD0iMSIgcGxhY2Vob2xkZXI9IuS+i++8mjM2MCI+CiAgICAgICAgPHNwYW4gY2xhc3M9InNtYWxsIj7nhLzjgYTjgabmsLTliIbjgYzpo5vjgbbjgYroj5PlrZDjga/jgZPjgaHjgonjgpLlhaXlipvjgILnqbrmrITjgarjgonmnZDmlpnjga7lkIjoqIjph43ph4/jgafoqIjnrpfjgZfjgb7jgZnjgII8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJmaWVsZHNldCI+CiAgICAgIDxsYWJlbCBjbGFzcz0icSI+44Gp44Gu5Y2Y5L2N44Gn6KGo56S644GZ44KL77yfPC9sYWJlbD4KICAgICAgPGRpdiBjbGFzcz0icmFkaW9zIiBpZD0idW5pdFJhZGlvcyI+CiAgICAgICAgPGxhYmVsPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0idW5pdCIgdmFsdWU9InBpZWNlIiBjaGVja2VkPjxzcGFuPjHlgIvjgYLjgZ/jgoo8L3NwYW4+PC9sYWJlbD4KICAgICAgICA8bGFiZWw+PGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJ1bml0IiB2YWx1ZT0iMTAwZyI+PHNwYW4+MTAwZ+OBguOBn+OCijwvc3Bhbj48L2xhYmVsPgogICAgICAgIDxsYWJlbD48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InVuaXQiIHZhbHVlPSJ0b3RhbCI+PHNwYW4+5YWo6YePKDHooosp44GC44Gf44KKPC9zcGFuPjwvbGFiZWw+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CgogIDxidXR0b24gY2xhc3M9ImJ0biBidG4tbWFpbiIgaWQ9ImNhbGNCdG4iPuaghOmkiuaIkOWIhuihqOekuuOCkuS9nOOCizwvYnV0dG9uPgogIDxkaXYgY2xhc3M9ImVyciIgaWQ9ImVyciI+PC9kaXY+CgogIDxkaXYgY2xhc3M9ImNhcmQiIGlkPSJyZXN1bHQiPgogICAgPGgyPjxzcGFuIGNsYXNzPSJkb3QiPjwvc3Bhbj7jgafjgY3jgYLjgYzjgaPjgZ/moITppIrmiJDliIbooajnpLo8L2gyPgogICAgPGRpdiBjbGFzcz0idG90YWxpbmZvIiBpZD0idG90YWxpbmZvIj48L2Rpdj4KICAgIDxkaXYgY2xhc3M9Im5sYWJlbCIgaWQ9Im5sYWJlbCI+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJlc3RpbWF0ZSI+44GT44Gu6KGo56S65YCk44Gv5o6o5a6a5YCk44Gn44GZ44CCPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJjb3B5YmFyIj4KICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1jb3B5IiBpZD0iY29weUJ0biI+6KGo56S644OG44Kt44K544OI44KS44Kz44OU44O8PC9idXR0b24+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCjwvZGl2PgoKPHNjcmlwdD4KLy8gMTAwZ+OBguOBn+OCiu+8mlvnhrHph49rY2FsLCDjgZ/jgpPjgbHjgY/os6pnLCDohILos6pnLCDngq3msLTljJbnialnLCDpo5/loannm7jlvZPph49nXQpjb25zdCBDQVRTPXsKIueyiemhniI6eyLoloTlipvnsokiOlszNDksOC4zLDEuNSw3NS44LDBdLCLlvLflipvnsokiOlszMzcsMTEuOCwxLjUsNzEuNywwXSwi5YWo57KS57KJIjpbMzIwLDEyLjgsMi45LDY4LjIsMF0sIuexs+eyiSI6WzM1Niw2LjAsMC43LDgxLjksMF0sIuOCouODvOODouODs+ODieODl+ODvOODieODqyI6WzYwOSwxOS42LDUxLjgsMjAuOSwwXSwi44Kz44Kz44Ki44OR44Km44OA44O8IjpbMzg2LDE4LjUsMjEuNiw0Mi40LDBdLCLmirnojLYiOlsyMzcsMjkuNiw1LjMsMzkuNSwwXSwi44Kz44O844Oz44K544K/44O844OBIjpbMzYzLDAuMSwwLjcsODYuMywwXSwi54mH5qCX57KJIjpbMzM4LDAuMSwwLjEsODEuNiwwXSwi55m9546J57KJIjpbMzQ3LDYuMywxLjAsODAuMCwwXSwi5LiK5paw57KJIjpbMzQzLDYuMiwwLjksNzguNSwwXSwi44KC44Gh57KJIjpbMzQ3LDYuMywxLjAsODAuMCwwXSwi44Op44Kk6bqm57KJIjpbMzI0LDguNSwxLjYsNzUuOCwwXSwi44Ob44OD44OI44Kx44O844Kt44Of44OD44Kv44K5IjpbMzYwLDcuOCw0LjAsNzQuNCwxLjBdLCLjgY3jgarjgZMiOls0NTEsMzYuNywyNS43LDI4LjUsMF0sIuOCquODvOODiOODn+ODvOODqyI6WzM1MCwxMy43LDUuNyw2OS4xLDBdfSwKIuayueiEgiI6eyLjg5Djgr/jg7wiOls3MDAsMC42LDgxLjAsMC4yLDEuOV0sIueEoeWhqeODkOOCv+ODvCI6WzcyMCwwLjUsODMuMCwwLjIsMF0sIuODnuODvOOCrOODquODsyI6WzcxNSwwLjQsNzguOSwwLjUsMS4zXSwi44K344On44O844OI44OL44Oz44KwIjpbODg5LDAsOTkuOSwwLDBdLCLjgrXjg6njg4DmsrkiOls4ODYsMCwxMDAsMCwwXSwi57Gz5rK5IjpbODg2LDAsMTAwLDAsMF0sIuOCquODquODvOODluOCquOCpOODqyI6Wzg5NCwwLDEwMCwwLDBdLCLjgrPjgrPjg4rjg4Pjg4TjgqrjgqTjg6siOls4ODksMCwxMDAsMCwwXX0sCiLnoILns5bjg7vnlJjlkbMiOnsi56CC57OWIjpbMzkxLDAsMCw5OS4zLDBdLCLjgrDjg6njg4vjg6Xjg7zns5YiOlszOTQsMCwwLDEwMCwwXSwi57KJ57OWIjpbMzkzLDAsMCw5OS43LDBdLCLjgY3jgbPnoILns5YiOlszOTYsMC4xLDAsOTguOCwwXSwi6buS57OWIjpbMzUyLDEuNywwLDkwLjMsMC4xXSwi44Gv44Gh44G/44GkIjpbMzI5LDAuMywwLDgxLjksMF0sIuODoeODvOODl+ODq+OCt+ODreODg+ODlyI6WzI2NiwwLjEsMCw2Ni4zLDBdLCLmsLTjgYLjgoEiOlszNDIsMCwwLDg1LjAsMF19LAoi5Y2144O75LmzIjp7IuWNtSI6WzE0MiwxMi4yLDEwLjIsMC40LDAuNF0sIuWNtem7hCI6WzMzNiwxNi41LDM0LjMsMC4yLDAuMV0sIuWNteeZvSI6WzQ0LDEwLjEsMCwwLjUsMC41XSwi54mb5LmzIjpbNjEsMy4zLDMuOCw0LjgsMC4xXSwi55Sf44Kv44Oq44O844OgIjpbNDA0LDEuOSw0My4wLDYuNSwwLjFdLCLjgq/jg6rjg7zjg6Djg4Hjg7zjgroiOlszMTMsOC4yLDMzLjAsMi4zLDAuN10sIuODiuODgeODpeODqeODq+ODgeODvOOCuiI6WzI5MSwxOS4xLDI0LjcsMC45LDIuMF0sIuODnuOCueOCq+ODq+ODneODvOODjSI6WzI3Myw0LjQsMjguMiw0LjMsMC4xXSwi44OX44Ot44K744K544OB44O844K6IjpbMzEzLDIyLjcsMjYuMCwxLjMsMi44XSwi44Oo44O844Kw44Or44OIIjpbNTYsMy42LDMuMCw0LjksMC4xXSwi57e05LmzIjpbMzE0LDcuNyw4LjUsNTYuMCwwLjJdLCLjgrnjgq3jg6Djg5/jg6vjgq8iOlszNTQsMzQuMCwxLjAsNTMuMywxLjRdLCLosYbkubMiOls0NCwzLjYsMi4wLDMuMSwwXSwi44Ki44O844Oi44Oz44OJ44Of44Or44KvIjpbMjQsMC40LDEuMSwzLjEsMC4xXX0sCiLjg4Hjg6fjgrPjg7vjg4rjg4Pjg4QiOnsi44OB44On44Kz44Os44O844OIIjpbNTUxLDYuOSwzNC4xLDU1LjgsMC4yXSwi44Ob44Ov44Kk44OI44OB44On44Kz44Os44O844OIIjpbNTg4LDcuMiwzOS41LDUwLjksMC4yXSwi44Ki44O844Oi44Oz44OJIjpbNjA5LDE5LjYsNTEuOCwyMC45LDBdLCLjgY/jgovjgb8iOls3MTMsMTQuNiw2OC44LDExLjcsMF0sIuOCq+OCt+ODpeODvOODiuODg+ODhCI6WzU5MSwxOS44LDQ3LjYsMjYuNywwLjZdLCLjg5Tjgrnjgr/jg4HjgqoiOls2MTcsMTcuNCw1Ni4xLDIwLjksMC43XSwi44Oe44Kr44OA44Of44Ki44OK44OD44OEIjpbNzUxLDguMyw3Ni43LDEyLjIsMC41XSwi44OU44O844OK44OD44OEIjpbNjEzLDI1LjAsNDkuNiwyMS4zLDBdLCLjg5jjg7zjgrzjg6vjg4rjg4Pjg4QiOls3MDEsMTMuNiw2OS4zLDEzLjksMC4xXSwi44OU44O844OK44OD44OE44OQ44K/44O8IjpbNTk5LDIwLjYsNTAuNCwyNC45LDAuOV0sIue3tOOCiuOBlOOBviI6WzYwNSwxOS4wLDU3LjEsMTguNSwwXSwi44Kz44Kz44OK44OD44OE44OV44Kh44Kk44OzIjpbNjc2LDYuMSw2NS44LDIzLjcsMF0sIum7kuOBlOOBviI6WzU5OSwyMC4zLDU0LjIsMTguNSwwXSwi55m944GU44G+IjpbNTk5LDIwLjMsNTQuMiwxOC41LDBdfSwKIuODleODq+ODvOODhCI6eyLjg6zjg7zjgrrjg7MiOlszMjQsMi43LDAuMiw4MC4zLDBdLCLjg4njg6njgqTjgq/jg6njg7Pjg5njg6rjg7wiOlszNDUsMC4xLDEuNCw4Mi44LDBdLCLjg4njg6njgqTjgYTjgaHjgZjjgY8iOlsyNzIsMy4wLDEuMSw3NS4zLDAuMl0sIuODkOODiuODiiI6WzkzLDEuMSwwLjIsMjIuNSwwXSwi44OQ44OK44OK44OB44OD44OXIjpbMjk5LDMuOCw3LjMsNzEuNSwwXSwi44KK44KT44GUIjpbNTMsMC4xLDAuMiwxNS41LDBdLCLjgYTjgaHjgZQiOlszMSwwLjksMC4xLDguNSwwXSwi44Os44Oi44OzIjpbNDMsMC45LDAuNywxMi41LDBdLCLjgqrjg6zjg7PjgrgiOls0OCwwLjksMC4xLDExLjgsMF0sIuOCquODrOODs+OCuOODlOODvOODqyI6WzMzMCwwLjIsMC4xLDgyLjAsMF0sIuOChuOBmiI6WzUwLDEuMiwwLjUsMTQuMiwwXSwi44KC44KC77yI57y26Kmw5ZCr44KA77yJIjpbODIsMC41LDAuMSwyMS40LDBdLCLmoJfjga7nlJjpnLLnha4iOlsyMzIsMS44LDAuNCw1Ni44LDBdLCLjgYvjgbzjgaHjgoMiOls3OCwxLjksMC4zLDIwLjYsMF0sIuOBleOBpOOBvuOBhOOCgiI6WzEyNiwxLjIsMC4yLDMxLjksMF19LAoi5ZKM44Gu5p2Q5paZIjp7IuOBpOOBtuOBguOCkyI6WzIzOSw1LjYsMC42LDU0LjAsMC4xXSwi44GT44GX44GC44KTIjpbMjU1LDUuNiwwLjUsNjAuOCwwXSwi55m944GC44KTIjpbMjU3LDUuNCwwLjIsNjAuOSwwXSwi5a+S5aSpIjpbMywwLjEsMCwwLjcsMF0sIum7kuicnCI6WzE5OSwwLjUsMCw1MC41LDBdLCLmoZzjga7oirHjga7loanmvKzjgZEiOls2MCwyLjUsMC41LDEwLjAsMTguMF0sIuOBu+OBhuOBmOiMtiI6WzAsMCwwLDAuMSwwXX0sCiLjgZ3jga7ku5bjg7vmtIvphZLjgarjgakiOnsi5aGpIjpbMCwwLDAsMCw5OS41XSwi44K344OK44Oi44OzIjpbMzU2LDMuNiwzLjUsNzkuNiwwLjFdLCLjg5Djg4vjg6njg5Pjg7zjg7PjgroiOlsyOTAsMS41LDAuNSwxMi4wLDBdLCLjgrzjg6njg4Hjg7MiOlszNDcsODcuNiwwLjMsMCwwLjddLCLjg57jgrfjg6Xjg57jg60iOlszMjQsMi4xLDAsNzkuMywwXSwi57SF6Iy2IjpbMSwwLDAsMC4xLDBdLCLjgrPjg7zjg5Ljg7wiOls0LDAuMiwwLDAuNywwXSwi44Op44Og6YWSIjpbMjQwLDAsMCwwLjEsMF0sIuODluODqeODs+ODh+ODvCI6WzIzNCwwLDAsMCwwXSwi5rSL6YWSIjpbMzIwLDAuMSwwLDMxLjAsMF19LAoi6Iao5by15YmkIjp7IuODmeODvOOCreODs+OCsOODkeOCpuODgOODvCI6WzE1MCwwLDEuMiwyOS4wLDE3LjNdLCLph43mm7kiOlswLDAsMCwwLDcyLjVdfQp9Owpjb25zdCBEQj17fTsgZm9yKGNvbnN0IGMgaW4gQ0FUUyl7Zm9yKGNvbnN0IG4gaW4gQ0FUU1tjXSl7REJbbl09Q0FUU1tjXVtuXTt9fQpjb25zdCBOQU1FUz1PYmplY3Qua2V5cyhEQik7Cgpjb25zdCByb3dzRWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncm93cycpOwoKZnVuY3Rpb24gb3B0aW9uSHRtbCgpewogIGxldCBvID0gJzxvcHRpb24gdmFsdWU9IiI+5p2Q5paZ44KS6YG444G24oCmPC9vcHRpb24+JzsKICBmb3IoY29uc3QgY2F0IGluIENBVFMpewogICAgbyArPSAnPG9wdGdyb3VwIGxhYmVsPSInK2NhdCsnIj4nOwogICAgZm9yKGNvbnN0IG4gaW4gQ0FUU1tjYXRdKXsgbyArPSAnPG9wdGlvbiB2YWx1ZT0iJytuKyciPicrbisnPC9vcHRpb24+JzsgfQogICAgbyArPSAnPC9vcHRncm91cD4nOwogIH0KICBvICs9ICc8b3B0Z3JvdXAgbGFiZWw9IuODquOCueODiOOBq+OBquOBhCI+PG9wdGlvbiB2YWx1ZT0iX19jdXN0b21fXyI+44Gd44Gu5LuW77yI5omL5YWl5Yqb77yJPC9vcHRpb24+PC9vcHRncm91cD4nOwogIHJldHVybiBvOwp9CgpmdW5jdGlvbiBhZGRSb3cobmFtZSwgZ3JhbXMpewogIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogIGRpdi5jbGFzc05hbWUgPSAnaW5nLXJvdyc7CiAgZGl2LmlubmVySFRNTCA9CiAgICAnPHNlbGVjdCBjbGFzcz0iaW5nLW5hbWUiPicrb3B0aW9uSHRtbCgpKyc8L3NlbGVjdD4nKwogICAgJzxpbnB1dCB0eXBlPSJudW1iZXIiIGNsYXNzPSJpbmctZyIgbWluPSIwIiBzdGVwPSIxIiBwbGFjZWhvbGRlcj0iMCI+JysKICAgICc8YnV0dG9uIGNsYXNzPSJkZWwiIHRpdGxlPSLliYrpmaQiPsOXPC9idXR0b24+JzsKICByb3dzRWwuYXBwZW5kQ2hpbGQoZGl2KTsKICBjb25zdCBzZWwgPSBkaXYucXVlcnlTZWxlY3RvcignLmluZy1uYW1lJyk7CiAgY29uc3QgZyA9IGRpdi5xdWVyeVNlbGVjdG9yKCcuaW5nLWcnKTsKICBpZihuYW1lKXsgc2VsLnZhbHVlID0gbmFtZTsgfQogIGlmKGdyYW1zIT1udWxsKXsgZy52YWx1ZSA9IGdyYW1zOyB9CiAgZGl2LnF1ZXJ5U2VsZWN0b3IoJy5kZWwnKS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpPT57CiAgICBkaXYucmVtb3ZlKCk7CiAgICBpZighcm93c0VsLmNoaWxkcmVuLmxlbmd0aCkgYWRkUm93KCk7CiAgfSk7CiAgc2VsLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsICgpPT57CiAgICBjb25zdCBleCA9IGRpdi5xdWVyeVNlbGVjdG9yKCcuY3VzdG9tLWZpZWxkcycpOwogICAgaWYoc2VsLnZhbHVlPT09J19fY3VzdG9tX18nKXsKICAgICAgaWYoIWV4KXsKICAgICAgICBjb25zdCBjZiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgIGNmLmNsYXNzTmFtZT0nY3VzdG9tLWZpZWxkcyc7CiAgICAgICAgY2Yuc3R5bGUuY3NzVGV4dD0nZ3JpZC1jb2x1bW46MSAvIC0xOyBkaXNwbGF5OmdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMiwxZnIpOyBnYXA6NnB4OyBtYXJnaW46MnB4IDAgNnB4JzsKICAgICAgICBjZi5pbm5lckhUTUwgPQogICAgICAgICAgJzxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iYy1uYW1lIiBwbGFjZWhvbGRlcj0i5p2Q5paZ5ZCNIj4nKwogICAgICAgICAgJzxpbnB1dCB0eXBlPSJudW1iZXIiIGNsYXNzPSJjLWtjYWwiIG1pbj0iMCIgcGxhY2Vob2xkZXI9IueGsemHjyBrY2FsLzEwMGciPicrCiAgICAgICAgICAnPGlucHV0IHR5cGU9Im51bWJlciIgY2xhc3M9ImMtcCIgbWluPSIwIiBwbGFjZWhvbGRlcj0i44Gf44KT44Gx44GP6LOqIGcvMTAwZyI+JysKICAgICAgICAgICc8aW5wdXQgdHlwZT0ibnVtYmVyIiBjbGFzcz0iYy1mIiBtaW49IjAiIHBsYWNlaG9sZGVyPSLohILos6ogZy8xMDBnIj4nKwogICAgICAgICAgJzxpbnB1dCB0eXBlPSJudW1iZXIiIGNsYXNzPSJjLWMiIG1pbj0iMCIgcGxhY2Vob2xkZXI9IueCreawtOWMlueJqSBnLzEwMGciPicrCiAgICAgICAgICAnPGlucHV0IHR5cGU9Im51bWJlciIgY2xhc3M9ImMtcyIgbWluPSIwIiBwbGFjZWhvbGRlcj0i6aOf5aGp55u45b2T6YePIGcvMTAwZyI+JzsKICAgICAgICBkaXYuYXBwZW5kQ2hpbGQoY2YpOwogICAgICB9CiAgICB9IGVsc2UgaWYoZXgpeyBleC5yZW1vdmUoKTsgfQogIH0pOwp9Cgpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkQnRuJykuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKT0+YWRkUm93KCkpOwoKLy8gc2VlZAphZGRSb3coKTsgYWRkUm93KCk7CgpmdW5jdGlvbiBudW0odil7IGNvbnN0IG49cGFyc2VGbG9hdCh2KTsgcmV0dXJuIGlzTmFOKG4pPzA6bjsgfQpmdW5jdGlvbiBwb3Modil7IHJldHVybiBNYXRoLm1heCgwLCBudW0odikpOyB9CgpmdW5jdGlvbiBmbXRFbmVyZ3kodil7IHJldHVybiAodjw1KT8nMCc6U3RyaW5nKE1hdGgucm91bmQodikpOyB9CmZ1bmN0aW9uIGZtdE51dHJpKHYpeyBpZih2PDAuNSkgcmV0dXJuICcwJzsgcmV0dXJuIChNYXRoLnJvdW5kKHYqMTApLzEwKS50b0ZpeGVkKDEpOyB9CmZ1bmN0aW9uIGZtdFNhbHQodil7IGlmKHY8MC4wNSkgcmV0dXJuICcwJzsgcmV0dXJuIChNYXRoLnJvdW5kKHYqMTApLzEwKS50b0ZpeGVkKDEpOyB9CgpmdW5jdGlvbiBjYWxjKCl7CiAgY29uc3QgZXJyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2VycicpOwogIGVyci50ZXh0Q29udGVudD0nJzsKICBsZXQgdG90PVswLDAsMCwwLDBdOyBsZXQgdXNlZD0wOyBsZXQgcmF3U3VtPTA7CiAgZm9yKGNvbnN0IHJvdyBvZiByb3dzRWwuY2hpbGRyZW4pewogICAgY29uc3Qgc2VsPXJvdy5xdWVyeVNlbGVjdG9yKCcuaW5nLW5hbWUnKTsKICAgIGNvbnN0IGc9bnVtKHJvdy5xdWVyeVNlbGVjdG9yKCcuaW5nLWcnKS52YWx1ZSk7CiAgICBpZihnPD0wIHx8ICFzZWwudmFsdWUpIGNvbnRpbnVlOwogICAgbGV0IHY7CiAgICBpZihzZWwudmFsdWU9PT0nX19jdXN0b21fXycpewogICAgICB2PVtwb3Mocm93LnF1ZXJ5U2VsZWN0b3IoJy5jLWtjYWwnKS52YWx1ZSkscG9zKHJvdy5xdWVyeVNlbGVjdG9yKCcuYy1wJykudmFsdWUpLAogICAgICAgICBwb3Mocm93LnF1ZXJ5U2VsZWN0b3IoJy5jLWYnKS52YWx1ZSkscG9zKHJvdy5xdWVyeVNlbGVjdG9yKCcuYy1jJykudmFsdWUpLAogICAgICAgICBwb3Mocm93LnF1ZXJ5U2VsZWN0b3IoJy5jLXMnKS52YWx1ZSldOwogICAgfSBlbHNlIHsgdj1EQltzZWwudmFsdWVdOyB9CiAgICBpZighdikgY29udGludWU7CiAgICB1c2VkKys7IHJhd1N1bSs9ZzsKICAgIGZvcihsZXQgaT0wO2k8NTtpKyspeyB0b3RbaV0rPSB2W2ldKmcvMTAwOyB9CiAgfQogIGlmKCF1c2VkKXsgZXJyLnRleHRDb250ZW50PSfmnZDmlpnjgajliIbph4/jgpIx44Gk5Lul5LiK5YWl5Yqb44GX44Gm44GP44Gg44GV44GE44CCJzsgcmV0dXJuOyB9CgogIGNvbnN0IHVuaXQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT11bml0XTpjaGVja2VkJykudmFsdWU7CiAgY29uc3QgcGllY2VzPW51bShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGllY2VzJykudmFsdWUpOwogIGNvbnN0IGZpbnc9bnVtKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaW53ZWlnaHQnKS52YWx1ZSk7CgogIGxldCBwZXI9Wy4uLnRvdF07IGxldCB1bml0TGFiZWw9J+WFqOmHj++8iDHooovvvInjgYLjgZ/jgoonOyBsZXQgYmFzaXNOb3RlPScnOwogIGlmKHVuaXQ9PT0ncGllY2UnKXsKICAgIGlmKHBpZWNlczw9MCl7IGVyci50ZXh0Q29udGVudD0n44CM5Ye65p2l5LiK44GM44KK44Gu5YCL5pWw44CN44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GE44CCJzsgcmV0dXJuOyB9CiAgICBwZXI9dG90Lm1hcCh4PT54L3BpZWNlcyk7IHVuaXRMYWJlbD0nMeWAi+OBguOBn+OCiic7CiAgfSBlbHNlIGlmKHVuaXQ9PT0nMTAwZycpewogICAgY29uc3QgYmFzaXMgPSBmaW53PjAgPyBmaW53IDogcmF3U3VtOwogICAgcGVyPXRvdC5tYXAoeD0+eCoxMDAvYmFzaXMpOyB1bml0TGFiZWw9JzEwMGfjgYLjgZ/jgoonOwogICAgYmFzaXNOb3RlID0gZmludz4wID8gJ++8iOeEvOOBjeS4iuOBjOOCiue3j+mHjemHjyAnK2ZpbncrJ2cg44KS5Z+65rqW77yJJyA6ICfvvIjmnZDmlpnjga7lkIjoqIjph43ph48gJytNYXRoLnJvdW5kKHJhd1N1bSkrJ2cg44KS5Z+65rqW77yJJzsKICB9CgogIHJlbmRlcihwZXIsIHVuaXRMYWJlbCwgdG90LCByYXdTdW0sIHBpZWNlcywgZmludywgYmFzaXNOb3RlKTsKfQoKbGV0IGxhc3RUZXh0PScnOwpmdW5jdGlvbiByZW5kZXIocGVyLCB1bml0TGFiZWwsIHRvdCwgcmF3U3VtLCBwaWVjZXMsIGZpbncsIGJhc2lzTm90ZSl7CiAgY29uc3Qgcm93cz1bCiAgICBbJ+eGsemHjycsIGZtdEVuZXJneShwZXJbMF0pLCAna2NhbCcsIHRydWVdLAogICAgWyfjgZ/jgpPjgbHjgY/os6onLCBmbXROdXRyaShwZXJbMV0pLCAnZycsIGZhbHNlXSwKICAgIFsn6ISC6LOqJywgZm10TnV0cmkocGVyWzJdKSwgJ2cnLCBmYWxzZV0sCiAgICBbJ+eCreawtOWMlueJqScsIGZtdE51dHJpKHBlclszXSksICdnJywgZmFsc2VdLAogICAgWyfpo5/loannm7jlvZPph48nLCBmbXRTYWx0KHBlcls0XSksICdnJywgZmFsc2VdLAogIF07CiAgbGV0IGh0bWw9JzxkaXYgY2xhc3M9Im5sLXRpdGxlIj7moITppIrmiJDliIbooajnpLo8c3BhbiBjbGFzcz0ibmwtc3ViIj7vvIgnK3VuaXRMYWJlbCsn77yJPC9zcGFuPjwvZGl2Pjx0YWJsZT4nOwogIGZvcihjb25zdCByIG9mIHJvd3MpewogICAgaHRtbCs9Jzx0ciBjbGFzcz0iJysoclszXT8nZW5lcmd5JzonJykrJyI+PHRkPicrclswXSsnPC90ZD48dGQgY2xhc3M9InZhbCI+JytyWzFdKycgJytyWzJdKyc8L3RkPjwvdHI+JzsKICB9CiAgaHRtbCs9JzwvdGFibGU+JzsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbmxhYmVsJykuaW5uZXJIVE1MPWh0bWw7CgogIGxldCBpbmZvPSflhajph4/jga7lkIjoqIjvvJrntIQnK01hdGgucm91bmQodG90WzBdKSsnIGtjYWwg77yPIOadkOaWmeOBruWQiOioiCAnK01hdGgucm91bmQocmF3U3VtKSsnZyc7CiAgaWYocGllY2VzPjApIGluZm8rPScg77yPICcrcGllY2VzKyflgIsnOwogIGlmKGJhc2lzTm90ZSkgaW5mbys9Jzxicj4nK2Jhc2lzTm90ZTsKICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG90YWxpbmZvJykuaW5uZXJIVE1MPWluZm87CgogIGxldCB0PSfmoITppIrmiJDliIbooajnpLrvvIgnK3VuaXRMYWJlbCsn77yJXG4nOwogIGZvcihjb25zdCByIG9mIHJvd3MpeyB0Kz1yWzBdKyfjgIAnK3JbMV0rJyAnK3JbMl0rJ1xuJzsgfQogIHQrPSfvvIjjgZPjga7ooajnpLrlgKTjga/mjqjlrprlgKTjgafjgZnvvIknOwogIGxhc3RUZXh0PXQ7CgogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5zdHlsZS5kaXNwbGF5PSdibG9jayc7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLnNjcm9sbEludG9WaWV3KHtiZWhhdmlvcjonc21vb3RoJywgYmxvY2s6J3N0YXJ0J30pOwp9Cgpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FsY0J0bicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY2FsYyk7Cgpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29weUJ0bicpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKXsKICBjb25zdCBidG49dGhpczsKICBmdW5jdGlvbiBkb25lKCl7IGJ0bi50ZXh0Q29udGVudD0n44Kz44OU44O844GX44G+44GX44Gf77yBJzsgc2V0VGltZW91dCgoKT0+YnRuLnRleHRDb250ZW50PSfooajnpLrjg4bjgq3jgrnjg4jjgpLjgrPjg5Tjg7wnLDE2MDApOyB9CiAgaWYobmF2aWdhdG9yLmNsaXBib2FyZCAmJiBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCl7CiAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChsYXN0VGV4dCkudGhlbihkb25lKS5jYXRjaCgoKT0+ZmFsbGJhY2soKSk7CiAgfSBlbHNlIHsgZmFsbGJhY2soKTsgfQogIGZ1bmN0aW9uIGZhbGxiYWNrKCl7CiAgICBjb25zdCB0YT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpOyB0YS52YWx1ZT1sYXN0VGV4dDsgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0YSk7CiAgICB0YS5zZWxlY3QoKTsgdHJ5e2RvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7fWNhdGNoKGUpe30gdGEucmVtb3ZlKCk7IGRvbmUoKTsKICB9Cn0pOwoKLy8gLS0tLSDjgYroj5PlrZDjga7po5/lk4HooajnpLrjg6njg5njg6vjg6Hjg7zjgqvjg7zjgajjga7pgKPmkLrvvIjku7vmhI/vvIkgLS0tLQpmdW5jdGlvbiBidWlsZFJlY2lwZVRleHQoKXsKICBsZXQgTD1bJyNyaWlseS1yZWNpcGUnXTsKICBmb3IoY29uc3Qgcm93IG9mIHJvd3NFbC5jaGlsZHJlbil7CiAgICBjb25zdCBzZWw9cm93LnF1ZXJ5U2VsZWN0b3IoJy5pbmctbmFtZScpOyBjb25zdCBnPXJvdy5xdWVyeVNlbGVjdG9yKCcuaW5nLWcnKS52YWx1ZTsKICAgIGlmKHNlbCAmJiBzZWwudmFsdWUgJiYgc2VsLnZhbHVlIT09J19fY3VzdG9tX18nKXsgTC5wdXNoKHNlbC52YWx1ZSsnXHQnKyhnfHwnJykpOyB9CiAgfQogIHJldHVybiBMLmpvaW4oJ1xuJyk7Cn0KY29uc3QgY29ubmVjdE1zZz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29ubmVjdE1zZycpOwpjb25zdCBzZW5kQnRuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZW5kQnRuJyk7CmlmKHNlbmRCdG4pIHNlbmRCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpewogIGNvbnN0IHJvd3M9Wy4uLnJvd3NFbC5jaGlsZHJlbl0uZmlsdGVyKHI9Pntjb25zdCBzPXIucXVlcnlTZWxlY3RvcignLmluZy1uYW1lJyk7cmV0dXJuIHMudmFsdWUmJnMudmFsdWUhPT0nX19jdXN0b21fXyc7fSk7CiAgaWYoIXJvd3MubGVuZ3RoKXsgY29ubmVjdE1zZy50ZXh0Q29udGVudD0n5YWI44Gr5p2Q5paZ44KS6YG444KT44Gn44GP44Gg44GV44GE44CCJzsgcmV0dXJuOyB9CiAgY29uc3QgdD1idWlsZFJlY2lwZVRleHQoKTsgY29uc3QgYnRuPXRoaXM7CiAgZnVuY3Rpb24gZG9uZSgpeyBidG4udGV4dENvbnRlbnQ9J+OCs+ODlOODvOOBl+OBvuOBl+OBn++8gSc7IHNldFRpbWVvdXQoKCk9PmJ0bi50ZXh0Q29udGVudD0n44GT44Gu5p2Q5paZ44KS44GK6I+T5a2Q44Gu6aOf5ZOB6KGo56S644Op44OZ44Or44Oh44O844Kr44O844G46YCB44KL77yI44Kz44OU44O877yJJywxNjAwKTsKICAgIGNvbm5lY3RNc2cudGV4dENvbnRlbnQ9J+OBiuiPk+WtkOOBrumjn+WTgeihqOekuuODqeODmeODq+ODoeODvOOCq+ODvOOCkumWi+OBhOOBpuOAjOWPluOCiui+vOOCgOOAjeOBq+iyvOOCiuS7mOOBkeOBpuOBj+OBoOOBleOBhOOAgic7IH0KICBpZihuYXZpZ2F0b3IuY2xpcGJvYXJkJiZuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCl7IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHQpLnRoZW4oZG9uZSkuY2F0Y2goZmIpO30gZWxzZSBmYigpOwogIGZ1bmN0aW9uIGZiKCl7IGNvbnN0IHRhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7IHRhLnZhbHVlPXQ7IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGEpOyB0YS5zZWxlY3QoKTsgdHJ5e2RvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7fWNhdGNoKGUpe30gdGEucmVtb3ZlKCk7IGRvbmUoKTsgfQp9KTsKY29uc3QgaW1wb3J0QnRuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbXBvcnRCdG4nKTsKaWYoaW1wb3J0QnRuKSBpbXBvcnRCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpewogIGNvbnN0IHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltcG9ydEJveCcpLnZhbHVlOwogIGlmKCF0LnRyaW0oKSl7IGNvbm5lY3RNc2cudGV4dENvbnRlbnQ9J+iyvOOCiuS7mOOBkeOBpuOBi+OCieaKvOOBl+OBpuOBj+OBoOOBleOBhOOAgic7IHJldHVybjsgfQogIGNvbnN0IGxpbmVzPXQuc3BsaXQoL1xyP1xuLyk7IGxldCBhZGRlZD0wLCBza2lwcGVkPVtdOwogIHJvd3NFbC5pbm5lckhUTUw9Jyc7CiAgZm9yKGxldCBsbiBvZiBsaW5lcyl7IGxuPWxuLnRyaW0oKTsgaWYoIWxufHxsblswXT09PScjJykgY29udGludWU7CiAgICBjb25zdCBwPWxuLnNwbGl0KCdcdCcpOyBjb25zdCBuYW1lPShwWzBdfHwnJykudHJpbSgpOyBjb25zdCBnPShwWzFdfHwnJykudHJpbSgpOwogICAgaWYoIW5hbWUpIGNvbnRpbnVlOwogICAgaWYoREJbbmFtZV0peyBhZGRSb3cobmFtZSwgZyk7IGFkZGVkKys7IH0gZWxzZSB7IHNraXBwZWQucHVzaChuYW1lKTsgfQogIH0KICBpZighcm93c0VsLmNoaWxkcmVuLmxlbmd0aCkgYWRkUm93KCk7CiAgbGV0IG1zZz1hZGRlZCsn5Lu244KS5Y+W44KK6L6844G/44G+44GX44Gf44CC5rC044KS6Laz44GX44Gm44CM5qCE6aSK5oiQ5YiG6KGo56S644KS5L2c44KL44CN44KS5oq844GX44Gm44GP44Gg44GV44GE44CCJzsKICBpZihza2lwcGVkLmxlbmd0aCkgbXNnKz0nIO+8jyDmoITppIrjg4fjg7zjgr/jga7jgarjgYTmnZDmlpnjga/pmaTlpJbvvJonK3NraXBwZWQuam9pbign44CBJyk7CiAgY29ubmVjdE1zZy50ZXh0Q29udGVudD1tc2c7CiAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltcG9ydEJveCcpLnZhbHVlPScnOwp9KTsKCi8vIOOCueOCr+ODreODvOODq+aZguOBq+aVsOmHjyhudW1iZXIp44GM5Yud5omL44Gr5aSJ44KP44KL44Gu44KS6Ziy44GQCmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3doZWVsJywgZnVuY3Rpb24oZSl7CiAgdmFyIGE9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDsKICBpZihhICYmIGEudGFnTmFtZT09PSdJTlBVVCcgJiYgYS50eXBlPT09J251bWJlcicpeyBhLmJsdXIoKTsgfQp9LCB7cGFzc2l2ZTp0cnVlfSk7Cjwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K