diff --git a/муром_1.2.0.html b/муром_1.2.0.html index d3b98b3..01a27be 100644 --- a/муром_1.2.0.html +++ b/муром_1.2.0.html @@ -52,41 +52,6 @@ var murom = муром; ], -[ -"муром.ВнешнийВид_1.0.0", -"ZnVuY3Rpb24g0LfQsNC00LDRgtGM0JLQvdC10YjQvdC40LnQktC40LQoKQp7CiAgICB2YXIg0LLQuNC0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTsKICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQo0LLQuNC0KTsKICAgINCy0LjQtC5pbm5lckhUTUwgPQpgCi7QvNGD0YDQvtC8LdC60L3QvtC/0LrQsAp7CiAgICBwYWRkaW5nOiAwLjVlbSAyZW0gMC41ZW0gMmVtOwogICAgbWFyZ2luLXJpZ2h0OiAwLjVlbTsKICAgIGZsb2F0OiByaWdodDsKICAgIGNvbG9yOiAjMjIyOwogICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkOwogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOyAvKiBTYWZhcmkgKi8KICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7Cn0KLtC80YPRgNC+0Lwt0LrQvdC+0L/QutCwOmhvdmVyCnsKICAgIGJvcmRlcjogMXB4IHNvbGlkICMyMjI7Cn0KLtC80YPRgNC+0Lwt0L7RgtGB0YLRg9C/LdC/0L4t0YHRgtC+0YDQvtC90LDQvAp7CiAgICBtYXJnaW4tbGVmdDogMC41ZW07CiAgICBtYXJnaW4tcmlnaHQ6IDAuNWVtOwp9CmA7Cn0KCtC30LDQtNCw0YLRjNCS0L3QtdGI0L3QuNC50JLQuNC0KCk7", -{"status":false} -], - - -[ -"муром.СписокМодулей_1.0.0", -"ZnVuY3Rpb24g0KHQv9C40YHQvtC60JzQvtC00YPQu9C10LkoKQp7CiAgICB2YXIg0Y8gPSB0aGlzOwoKICAgIHRoaXMu0YHQvtC30LTQsNGC0YzQmNC90YLQtdGA0YTQtdC50YEoKTsKICAgIHRoaXMu0LfQsNC00LDRgtGM0JLQuNC0KCk7CiAgICB0aGlzLtCy0YvQsdGA0LDQu9C4ID0gbmV3INCj0LLQtdC00L7QvNC40YLQtdC70YwoKTsKICAgIHRoaXMu0LLRi9Cx0YDQsNC70Lgu0L/QvtC00L/QuNGB0LDRgtGMKGZ1bmN0aW9uKCl7CiAgICAgICAg0Y8u0L7RgtC+0LHRgNCw0LfQuNGC0YzQktGL0LHQvtGAKCk7CiAgICB9KTsKfQrQodC/0LjRgdC+0LrQnNC+0LTRg9C70LXQuS5wcm90b3R5cGUu0YHQvtC30LTQsNGC0YzQmNC90YLQtdGA0YTQtdC50YEgPSBmdW5jdGlvbigpCnsKICAgIC8vINCf0L7QvNC10YnQsNC10Lwg0YLQsNCx0LvQuNGG0YMg0LIgZGl2INC00LvRjyDRgNC10LDQu9C40LfQsNGG0LjQuCDQv9GA0L7QvNC+0YLQutC4LgogICAgdGhpcy7QuNGEID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICB0aGlzLtGC0LDQsdC70LjRhtCwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGFibGUiKTsKICAgIHRoaXMu0LjRhC5hcHBlbmRDaGlsZCh0aGlzLtGC0LDQsdC70LjRhtCwKTsKfTsK0KHQv9C40YHQvtC60JzQvtC00YPQu9C10LkucHJvdG90eXBlLtC30LDQtNCw0YLRjNCS0LjQtCA9IGZ1bmN0aW9uKCkKewogICAgdGhpcy7QuNGELnN0eWxlLmNzc1RleHQgPQpgCm92ZXJmbG93OiBhdXRvOwpoZWlnaHQ6IDE1LjVlbTsKYm9yZGVyOiAxcHggc29saWQgI2RkZDsKLyoKcGFkZGluZzogMC41ZW07Cm1hcmdpbjogMC41ZW07CiovCmA7CiAgICB0aGlzLtGC0LDQsdC70LjRhtCwLnN0eWxlLmNzc1RleHQgPQpgCmNvbG9yOiAjNjY2NjY2Owpmb250LWZhbWlseTogc2Fucy1zZXJpZjsKY3Vyc29yOiBkZWZhdWx0Owpib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwpgOwp9OwrQodC/0LjRgdC+0LrQnNC+0LTRg9C70LXQuS5wcm90b3R5cGUu0L7Rh9C40YHRgtC40YLRjCA9IGZ1bmN0aW9uKCkKewogICAgd2hpbGUgKHRoaXMu0YLQsNCx0LvQuNGG0LAucm93cy5sZW5ndGgpCiAgICB7CiAgICAgICAgdGhpcy7RgtCw0LHQu9C40YbQsC5kZWxldGVSb3coMCk7CiAgICB9Owp9OwrQodC/0LjRgdC+0LrQnNC+0LTRg9C70LXQuS5wcm90b3R5cGUu0LTQvtCx0LDQstC40YLRjNCt0LvQtdC80LXQvdGCID0gZnVuY3Rpb24o0YHRgtCw0YLRg9GBLCDQuNC80Y8pCnsKICAgIHZhciDRgdGC0LDRgtGD0YFIVE1MID0gIiI7CiAgICBpZiAo0YHRgtCw0YLRg9GBKQogICAgewogICAgICAgINGB0YLQsNGC0YPRgUhUTUwgPSAiY2hlY2tlZCI7CiAgICB9CgogICAgdmFyINGA0Y/QtCA9IHRoaXMu0YLQsNCx0LvQuNGG0LAuaW5zZXJ0Um93KCk7CiAgICB2YXIg0Y/Rh9C10LnQutCwID0gMDsKCiAgICB2YXIg0L3QvtC80LXRgCA9INGA0Y/QtC5pbnNlcnRDZWxsKNGP0YfQtdC50LrQsCsrKTsKICAgINC90L7QvNC10YAuaW5uZXJIVE1MID0gdGhpcy7RgtCw0LHQu9C40YbQsC5yb3dzLmxlbmd0aCAtIDE7CiAgICDQvdC+0LzQtdGALnN0eWxlLmNzc1RleHQgPSAicGFkZGluZzogMC41ZW07IjsKCiAgICB2YXIg0LLQutC7ID0g0YDRj9C0Lmluc2VydENlbGwo0Y/Rh9C10LnQutCwKyspOwogICAg0LLQutC7LmlubmVySFRNTCA9IGA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGRpc2FibGVkIGAgKyDRgdGC0LDRgtGD0YFIVE1MICsgYD48L2lucHV0PmA7CiAgICAKICAgIHZhciDQvdCw0LfQstCw0L3QuNC1ID0g0YDRj9C0Lmluc2VydENlbGwo0Y/Rh9C10LnQutCwKyspOwogICAg0L3QsNC30LLQsNC90LjQtS5pbm5lckhUTUwgPSDQuNC80Y87CiAgICDQvdCw0LfQstCw0L3QuNC1LnN0eWxlLmNzc1RleHQgPSAicGFkZGluZzogMC41ZW07IHdpZHRoOiAxMDAlOyI7Cn07CtCh0L/QuNGB0L7QutCc0L7QtNGD0LvQtdC5LnByb3RvdHlwZS7QvtGC0L7QsdGA0LDQt9C40YLRjNCh0L/QuNGB0L7QuiA9IGZ1bmN0aW9uKNGB0L/QuNGB0L7QuikKewogICAgdGhpcy7QvtGH0LjRgdGC0LjRgtGMKCk7CiAgICBmb3IgKHZhciDQvdC+0LzQtdGAIGluINGB0L/QuNGB0L7QuikKICAgIHsKICAgICAgICB2YXIg0Y3Qu9C10LzQtdC90YIgPSDRgdC/0LjRgdC+0Lpb0L3QvtC80LXRgF07CiAgICAgICAgdmFyINGB0YLQsNGC0YPRgSA9INGN0LvQtdC80LXQvdGCWzBdOwogICAgICAgIHZhciDQuNC80Y8gPSDRjdC70LXQvNC10L3RglsxXTsKICAgICAgICB0aGlzLtC00L7QsdCw0LLQuNGC0YzQrdC70LXQvNC10L3RgijRgdGC0LDRgtGD0YEsINC40LzRjyk7CiAgICB9Cn07CtCh0L/QuNGB0L7QutCc0L7QtNGD0LvQtdC5LnByb3RvdHlwZS7Rg9C70LDQstC70LjQstCw0YLRjNCS0YvQsdC+0YDQrdC70LXQvNC10L3RgtCwID0gZnVuY3Rpb24o0L3QvtC80LXRgCkKewogICAgdmFyINGPID0gdGhpczsKICAgIAogICAgdmFyINGA0Y/QtCA9IHRoaXMu0YLQsNCx0LvQuNGG0LAucm93c1vQvdC+0LzQtdGAXQogICAg0YDRj9C0Lm9uY2xpY2sgPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAg0Y8u0LLRi9Cx0L7RgNCg0LDQvdC10LUgPSDRjy7QstGL0LHQvtGAOwogICAgICAgINGPLtCy0YvQsdC+0YAgPSDQvdC+0LzQtdGAOwogICAgICAgINGPLtCy0YvQsdGA0LDQu9C4LtGD0LLQtdC00L7QvNC40YLRjCgpOwogICAgfTsKfTsK0KHQv9C40YHQvtC60JzQvtC00YPQu9C10LkucHJvdG90eXBlLtGD0LvQsNCy0LvQuNCy0LDRgtGM0JLRi9Cx0L7RgCA9IGZ1bmN0aW9uKCkKewogICAgdGhpcy7QstGL0LHQvtGA0KDQsNC90LXQtSA9IG51bGw7CiAgICB0aGlzLtCy0YvQsdC+0YAgPSBudWxsOwogICAgZm9yICh2YXIg0L3QvtC80LXRgCA9IDA7INC90L7QvNC10YAgPCB0aGlzLtGC0LDQsdC70LjRhtCwLnJvd3MubGVuZ3RoOyArK9C90L7QvNC10YApCiAgICB7CiAgICAgICAgdGhpcy7Rg9C70LDQstC70LjQstCw0YLRjNCS0YvQsdC+0YDQrdC70LXQvNC10L3RgtCwKNC90L7QvNC10YApOwogICAgfQp9OwrQodC/0LjRgdC+0LrQnNC+0LTRg9C70LXQuS5wcm90b3R5cGUu0L7RgtC+0LHRgNCw0LfQuNGC0YzQktGL0LHQvtGAID0gZnVuY3Rpb24oKQp7CiAgICBpZiAodGhpcy7QstGL0LHQvtGA0KDQsNC90LXQtSAhPSBudWxsKQogICAgewogICAgICAgIHZhciDRgNGP0LQgPSB0aGlzLtGC0LDQsdC70LjRhtCwLnJvd3NbdGhpcy7QstGL0LHQvtGA0KDQsNC90LXQtV07CiAgICAgICAg0YDRj9C0LnN0eWxlLmJhY2tncm91bmRDb2xvciA9IG51bGw7CiAgICB9CiAgICB2YXIg0YDRj9C0ID0gdGhpcy7RgtCw0LHQu9C40YbQsC5yb3dzW3RoaXMu0LLRi9Cx0L7RgF07CiAgICDRgNGP0LQuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gIiNlZWUiOwp9OwrQodC/0LjRgdC+0LrQnNC+0LTRg9C70LXQuS5wcm90b3R5cGUu0LfQsNC00LDRgtGM0KHQv9C40YHQvtC6ID0gZnVuY3Rpb24o0YHQv9C40YHQvtC6KQp7CiAgICB0aGlzLtC+0YLQvtCx0YDQsNC30LjRgtGM0KHQv9C40YHQvtC6KNGB0L/QuNGB0L7Quik7CiAgICB0aGlzLtGD0LvQsNCy0LvQuNCy0LDRgtGM0JLRi9Cx0L7RgCgpOwp9OwrQodC/0LjRgdC+0LrQnNC+0LTRg9C70LXQuS5wcm90b3R5cGUu0LLRi9Cx0YDQsNGC0YwgPSBmdW5jdGlvbijQvdC+0LzQtdGAKQp7CiAgICB2YXIg0YDRj9C0ID0gdGhpcy7RgtCw0LHQu9C40YbQsC5yb3dzW9C90L7QvNC10YBdOwogICAg0YDRj9C0LnNjcm9sbEludG9WaWV3KCk7CiAgICDRgNGP0LQub25jbGljaygpOwp9OwrQodC/0LjRgdC+0LrQnNC+0LTRg9C70LXQuS5wcm90b3R5cGUu0L7QsdC90L7QstC40YLRjNCt0LvQtdC80LXQvdGCID0gZnVuY3Rpb24o0L3QvtC80LXRgCwg0YHRgtCw0YLRg9GBLCDQuNC80Y8pCnsKICAgIHZhciDRgNGP0LQgPSB0aGlzLtGC0LDQsdC70LjRhtCwLnJvd3Nb0L3QvtC80LXRgF07CiAgICDRgNGP0LQuY2VsbHNbMV0uY2hpbGROb2Rlc1swXS5jaGVja2VkID0g0YHRgtCw0YLRg9GBOwogICAg0YDRj9C0LmNlbGxzWzJdLmlubmVySFRNTCA9INC40LzRjzsKfTsK0KHQv9C40YHQvtC60JzQvtC00YPQu9C10LkucHJvdG90eXBlLtGD0LTQsNC70LjRgtGM0K3Qu9C10LzQtdC90YIgPSBmdW5jdGlvbijQvdC+0LzQtdGAKQp7CiAgICB2YXIg0YDRj9C0ID0gdGhpcy7RgtCw0LHQu9C40YbQsC5yb3dzW9C90L7QvNC10YBdOwogICAg0YDRj9C0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQo0YDRj9C0KTsKfQoKCi8vINCi0LXRgdGCLgoKCmZ1bmN0aW9uINCi0LXRgdGC0KHQv9C40YHQutCw0JzQvtC00YPQu9C10LkoKQp7CiAgICB0aGlzLtGB0L7Qt9C00LDRgtGM0JjQvdGC0LXRgNGE0LXQudGBKCk7Cn0K0KLQtdGB0YLQodC/0LjRgdC60LDQnNC+0LTRg9C70LXQuS5wcm90b3R5cGUu0YHQvtC30LTQsNGC0YzQmNC90YLQtdGA0YTQtdC50YEgPSBmdW5jdGlvbigpCnsKICAgIHZhciDRjyA9IHRoaXM7CiAgICAKICAgIHRoaXMu0LjRhCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgdGhpcy7RgdC/0LjRgdC+0LogPSBuZXcg0KHQv9C40YHQvtC60JzQvtC00YPQu9C10LkoKTsKICAgIHRoaXMu0LjRhC5hcHBlbmRDaGlsZCh0aGlzLtGB0L/QuNGB0L7Qui7QuNGEKTsKICAgIAogICAgdmFyINC80L7QtNGD0LvQuCA9IFsKICAgICAgICBbdHJ1ZSwgICLQvNGD0YDQvtC8LtC30LDQs9GA0YPQt9C60LBfMS4wLjAiXSwKICAgICAgICBbdHJ1ZSwgICLQvNGD0YDQvtC8LnV1aWRfMS4wLjAiXSwKICAgICAgICBbdHJ1ZSwgICLQo9Cy0LXQtNC+0LzQuNGC0LXQu9GMXzEuMC4wIl0sCiAgICAgICAgW2ZhbHNlLCAidWlraXRfMy4yLjAuY3NzIl0sCiAgICAgICAgW2ZhbHNlLCAidWlraXRfMy4yLjAuanMiXSwKICAgICAgICBbZmFsc2UsICLQn9Cw0L3QtdC70YzQo9C/0YDQsNCy0LvQtdC90LjRjy5VSUtpdCJdLAogICAgICAgIFtmYWxzZSwgItCf0LDQvdC10LvRjNCj0L/RgNCw0LLQu9C10L3QuNGPXzEuMC4wIl0sCiAgICBdOwogICAgCiAgICB0aGlzLtGB0L/QuNGB0L7Qui7Qt9Cw0LTQsNGC0YzQodC/0LjRgdC+0Loo0LzQvtC00YPQu9C4KTsKICAgIHRoaXMu0YHQv9C40YHQvtC6LtCy0YvQsdGA0LDRgtGMKDApOwogICAgCiAgICB0aGlzLtGB0L7Qt9C00LDRgtGM0JrQvdC+0L/QutGDKCLQktGL0LHRgNCw0YLRjCDQv9C+0YHQu9C10LTQvdC40LkiLCBmdW5jdGlvbigpewogICAgICAgIGNvbnNvbGUubG9nKCLQstGL0LHRgNCw0YLRjCIpOwogICAgICAgINGPLtGB0L/QuNGB0L7Qui7QstGL0LHRgNCw0YLRjCjQvNC+0LTRg9C70LgubGVuZ3RoIC0gMSk7CiAgICB9KTsKICAgIHRoaXMu0YHQvtC30LTQsNGC0YzQmtC90L7Qv9C60YMoItCe0LHQvdC+0LLQuNGC0Ywg0L/QvtGB0LvQtdC00L3QuNC5IiwgZnVuY3Rpb24oKXsKICAgICAgICDRjy7RgdC/0LjRgdC+0Lou0L7QsdC90L7QstC40YLRjNCt0LvQtdC80LXQvdGCKNC80L7QtNGD0LvQuC5sZW5ndGggLSAxLCB0cnVlLCAi0J3QvtCy0L7QtSDQuNC80Y8iKTsKICAgIH0pOwogICAgdGhpcy7RgdC+0LfQtNCw0YLRjNCa0L3QvtC/0LrRgygi0KPQtNCw0LvQuNGC0Ywg0L/QvtGB0LvQtdC00L3QuNC5IiwgZnVuY3Rpb24oKXsKICAgICAgICDRjy7RgdC/0LjRgdC+0Lou0YPQtNCw0LvQuNGC0YzQrdC70LXQvNC10L3RgijQvNC+0LTRg9C70LgubGVuZ3RoIC0gMSk7CiAgICB9KTsKICAgIHRoaXMu0YHQvtC30LTQsNGC0YzQmtC90L7Qv9C60YMoItCU0L7QsdCw0LLQuNGC0YwiLCBmdW5jdGlvbigpewogICAgICAgINGPLtGB0L/QuNGB0L7Qui7QtNC+0LHQsNCy0LjRgtGM0K3Qu9C10LzQtdC90YIodHJ1ZSwgItCd0L7QstGL0LktNTk5Iik7CiAgICAgICAgdmFyINC90L7QvNC10YAgPSDRjy7RgdC/0LjRgdC+0Lou0YLQsNCx0LvQuNGG0LAucm93cy5sZW5ndGggLSAxOwogICAgICAgINGPLtGB0L/QuNGB0L7Qui7Rg9C70LDQstC70LjQstCw0YLRjNCS0YvQsdC+0YDQrdC70LXQvNC10L3RgtCwKNC90L7QvNC10YApOwogICAgICAgINGPLtGB0L/QuNGB0L7Qui7QstGL0LHRgNCw0YLRjCjQvdC+0LzQtdGAKTsKICAgIH0pOwp9OwrQotC10YHRgtCh0L/QuNGB0LrQsNCc0L7QtNGD0LvQtdC5LnByb3RvdHlwZS7RgdC+0LfQtNCw0YLRjNCa0L3QvtC/0LrRgyA9IGZ1bmN0aW9uKNC40LzRjywg0YDQtdCw0LrRhtC40Y8pCnsKICAgIHZhciDQutC90L7Qv9C60LAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsKICAgINC60L3QvtC/0LrQsC5pbm5lckhUTUwgPSDQuNC80Y87CiAgICB0aGlzLtC40YQuYXBwZW5kQ2hpbGQo0LrQvdC+0L/QutCwKTsKICAgINC60L3QvtC/0LrQsC5vbmNsaWNrID0g0YDQtdCw0LrRhtC40Y87Cn07", -{"status":false} -], - - -[ -"муром.СвойстваМодуля_1.0.0", -"ZnVuY3Rpb24g0KHQstC+0LnRgdGC0LLQsNCc0L7QtNGD0LvRjygpCnsKICAgIHRoaXMu0YHQvtC30LTQsNGC0YzQmNC90YLQtdGA0YTQtdC50YEoKTsKICAgIHRoaXMu0LjQt9C80LXQvdC40LvQuNCd0L7QvNC10YAgPSBuZXcg0KPQstC10LTQvtC80LjRgtC10LvRjCgpOwogICAgdGhpcy7QvdCw0YHRgtGA0L7QuNGC0YzQndC+0LzQtdGAKCk7CiAgICB0aGlzLtC40LfQvNC10L3QuNC70LjQmNC80Y8gPSBuZXcg0KPQstC10LTQvtC80LjRgtC10LvRjCgpOwogICAgdGhpcy7QvdCw0YHRgtGA0L7QuNGC0YzQmNC80Y8oKTsKICAgIHRoaXMu0LjQt9C80LXQvdC40LvQuNCh0YLQsNGC0YPRgSA9IG5ldyDQo9Cy0LXQtNC+0LzQuNGC0LXQu9GMKCk7CiAgICB0aGlzLtC90LDRgdGC0YDQvtC40YLRjNCh0YLQsNGC0YPRgSgpOwogICAgdGhpcy7Rg9C00LDQu9C40YLRjCA9IG5ldyDQo9Cy0LXQtNC+0LzQuNGC0LXQu9GMKCk7CiAgICB0aGlzLtC90LDRgdGC0YDQvtC40YLRjNCj0LTQsNC70LXQvdC40LUoKTsKfQrQodCy0L7QudGB0YLQstCw0JzQvtC00YPQu9GPLnByb3RvdHlwZS7RgdC+0LfQtNCw0YLRjNCY0L3RgtC10YDRhNC10LnRgSA9IGZ1bmN0aW9uKCkKewogICAgdGhpcy7QuNGEID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICB0aGlzLtC40YQuc3R5bGUuY3NzVGV4dCA9CmAKYm9yZGVyOiAxcHggc29saWQgI2RkZDsKLyoKcGFkZGluZzogMC41ZW07Cm1hcmdpbjogMC41ZW07CiovCmNvbG9yOiAjNjY2NjY2Owpmb250LWZhbWlseTogc2Fucy1zZXJpZjsKYDsKICAgIHRoaXMu0YLQsNCx0LvQuNGG0LAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0YWJsZSIpOwogICAgdGhpcy7QuNGELmFwcGVuZENoaWxkKHRoaXMu0YLQsNCx0LvQuNGG0LApOwp9OwpPYmplY3QuZGVmaW5lUHJvcGVydHko0KHQstC+0LnRgdGC0LLQsNCc0L7QtNGD0LvRjy5wcm90b3R5cGUsICLQvdC+0LzQtdGAIiwgewogICAgZ2V0OiBmdW5jdGlvbigpCiAgICB7CiAgICAgICAgcmV0dXJuIE51bWJlcih0aGlzLtC/0L7Qu9C10J3QvtC80LXRgC52YWx1ZSk7CiAgICB9LAogICAgc2V0OiBmdW5jdGlvbijQt9C90LDRh9C10L3QuNC1KQogICAgewogICAgICAgIHRoaXMu0L/QvtC70LXQndC+0LzQtdGALnZhbHVlID0g0LfQvdCw0YfQtdC90LjQtTsKICAgIH0KfSk7CtCh0LLQvtC50YHRgtCy0LDQnNC+0LTRg9C70Y8ucHJvdG90eXBlLtC90LDRgdGC0YDQvtC40YLRjNCd0L7QvNC10YAgPSBmdW5jdGlvbigpCnsKICAgIHZhciDRjyA9IHRoaXM7CiAgICAKICAgIHZhciDRgNGP0LQgPSB0aGlzLtGC0LDQsdC70LjRhtCwLmluc2VydFJvdygpOwogICAgdmFyINGP0YfQtdC50LrQsCA9IDA7CgogICAgdmFyINC60LvRjtGHID0g0YDRj9C0Lmluc2VydENlbGwo0Y/Rh9C10LnQutCwKyspOwogICAg0LrQu9GO0YcuaW5uZXJIVE1MID0gItCd0L7QvNC10YA6IjsKICAgINC60LvRjtGHLnN0eWxlLmNzc1RleHQgPSAicGFkZGluZzogMC41ZW07IjsKCiAgICB2YXIg0LfQvdCw0YfQtdC90LjQtSA9INGA0Y/QtC5pbnNlcnRDZWxsKNGP0YfQtdC50LrQsCsrKTsKICAgIHRoaXMu0L/QvtC70LXQndC+0LzQtdGAID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKICAgIHRoaXMu0L/QvtC70LXQndC+0LzQtdGALnR5cGUgPSAibnVtYmVyIjsKICAgIHRoaXMu0L/QvtC70LXQndC+0LzQtdGALm1pbiA9IDA7CiAgICDQt9C90LDRh9C10L3QuNC1LnN0eWxlLmNzc1RleHQgPSAid2lkdGg6IDEwMCU7IHBhZGRpbmc6IDAuNWVtOyI7CiAgICB0aGlzLtC/0L7Qu9C10J3QvtC80LXRgC5zdHlsZS5jc3NUZXh0ID0gIndpZHRoOiAxMDAlOyI7CiAgICDQt9C90LDRh9C10L3QuNC1LmFwcGVuZENoaWxkKHRoaXMu0L/QvtC70LXQndC+0LzQtdGAKTsKICAgIAogICAgdGhpcy7Qv9C+0LvQtdCd0L7QvNC10YAub25pbnB1dCA9IGZ1bmN0aW9uKCkKICAgIHsKICAgICAgICDRjy7QuNC30LzQtdC90LjQu9C40J3QvtC80LXRgC7Rg9Cy0LXQtNC+0LzQuNGC0YwoKTsKICAgIH07Cn07Ck9iamVjdC5kZWZpbmVQcm9wZXJ0eSjQodCy0L7QudGB0YLQstCw0JzQvtC00YPQu9GPLnByb3RvdHlwZSwgItC40LzRjyIsIHsKICAgIGdldDogZnVuY3Rpb24oKQogICAgewogICAgICAgIHJldHVybiB0aGlzLtC/0L7Qu9C10JjQvNGPLnZhbHVlOwogICAgfSwKICAgIHNldDogZnVuY3Rpb24o0LfQvdCw0YfQtdC90LjQtSkKICAgIHsKICAgICAgICB0aGlzLtC/0L7Qu9C10JjQvNGPLnZhbHVlID0g0LfQvdCw0YfQtdC90LjQtTsKICAgIH0KfSk7CtCh0LLQvtC50YHRgtCy0LDQnNC+0LTRg9C70Y8ucHJvdG90eXBlLtC90LDRgdGC0YDQvtC40YLRjNCY0LzRjyA9IGZ1bmN0aW9uKCkKewogICAgdmFyINGPID0gdGhpczsKCiAgICB2YXIg0YDRj9C0ID0gdGhpcy7RgtCw0LHQu9C40YbQsC5pbnNlcnRSb3coKTsKICAgIHZhciDRj9GH0LXQudC60LAgPSAwOwoKICAgIHZhciDQutC70Y7RhyA9INGA0Y/QtC5pbnNlcnRDZWxsKNGP0YfQtdC50LrQsCsrKTsKICAgINC60LvRjtGHLmlubmVySFRNTCA9ICLQmNC80Y86IjsKICAgINC60LvRjtGHLnN0eWxlLmNzc1RleHQgPSAicGFkZGluZzogMC41ZW07IjsKCiAgICB2YXIg0LfQvdCw0YfQtdC90LjQtSA9INGA0Y/QtC5pbnNlcnRDZWxsKNGP0YfQtdC50LrQsCsrKTsKICAgIHRoaXMu0L/QvtC70LXQmNC80Y8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOwogICAg0LfQvdCw0YfQtdC90LjQtS5zdHlsZS5jc3NUZXh0ID0gIndpZHRoOiAxMDAlOyBwYWRkaW5nOiAwLjVlbTsiOwogICAgdGhpcy7Qv9C+0LvQtdCY0LzRjy5zdHlsZS5jc3NUZXh0ID0gIndpZHRoOiAxMDAlOyI7CiAgICDQt9C90LDRh9C10L3QuNC1LmFwcGVuZENoaWxkKHRoaXMu0L/QvtC70LXQmNC80Y8pOwoKICAgIHRoaXMu0L/QvtC70LXQmNC80Y8ub25pbnB1dCA9IGZ1bmN0aW9uKCkKICAgIHsKICAgICAgICDRjy7QuNC30LzQtdC90LjQu9C40JjQvNGPLtGD0LLQtdC00L7QvNC40YLRjCgpOwogICAgfTsKfTsKT2JqZWN0LmRlZmluZVByb3BlcnR5KNCh0LLQvtC50YHRgtCy0LDQnNC+0LTRg9C70Y8ucHJvdG90eXBlLCAi0YHRgtCw0YLRg9GBIiwgewogICAgZ2V0OiBmdW5jdGlvbigpCiAgICB7CiAgICAgICAgcmV0dXJuIHRoaXMu0L/QtdGA0LXQutC70Y7Rh9Cw0YLQtdC70YwuY2hlY2tlZDsKICAgIH0sCiAgICBzZXQ6IGZ1bmN0aW9uKNC30L3QsNGH0LXQvdC40LUpCiAgICB7CiAgICAgICAgdGhpcy7Qv9C10YDQtdC60LvRjtGH0LDRgtC10LvRjC5jaGVja2VkID0g0LfQvdCw0YfQtdC90LjQtTsKICAgIH0KfSk7CtCh0LLQvtC50YHRgtCy0LDQnNC+0LTRg9C70Y8ucHJvdG90eXBlLtC90LDRgdGC0YDQvtC40YLRjNCh0YLQsNGC0YPRgSA9IGZ1bmN0aW9uKCkKewogICAgdmFyINGPID0gdGhpczsKICAgIAogICAgdmFyINGA0Y/QtCA9IHRoaXMu0YLQsNCx0LvQuNGG0LAuaW5zZXJ0Um93KCk7CiAgICB2YXIg0Y/Rh9C10LnQutCwID0gMDsKICAgIAogICAgdmFyINC60LvRjtGHID0g0YDRj9C0Lmluc2VydENlbGwo0Y/Rh9C10LnQutCwKyspOwogICAg0LrQu9GO0YcuaW5uZXJIVE1MID0gItCY0YHQv9C+0LvQvdGP0YLRjDoiOwogICAg0LrQu9GO0Ycuc3R5bGUuY3NzVGV4dCA9ICJwYWRkaW5nOiAwLjVlbTsiOwoKICAgIHZhciDQt9C90LDRh9C10L3QuNC1ID0g0YDRj9C0Lmluc2VydENlbGwo0Y/Rh9C10LnQutCwKyspOwogICAgdGhpcy7Qv9C10YDQtdC60LvRjtGH0LDRgtC10LvRjCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CiAgICB0aGlzLtC/0LXRgNC10LrQu9GO0YfQsNGC0LXQu9GMLnR5cGUgPSAiY2hlY2tib3giOwogICAgdGhpcy7Qv9C10YDQtdC60LvRjtGH0LDRgtC10LvRjC5zdHlsZS5jc3NUZXh0ID0gInBhZGRpbmc6IDAuNWVtOyI7CiAgICDQt9C90LDRh9C10L3QuNC1LmFwcGVuZENoaWxkKHRoaXMu0L/QtdGA0LXQutC70Y7Rh9Cw0YLQtdC70YwpOwoKICAgIHRoaXMu0L/QtdGA0LXQutC70Y7Rh9Cw0YLQtdC70Ywub25jaGFuZ2UgPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAg0Y8u0LjQt9C80LXQvdC40LvQuNCh0YLQsNGC0YPRgS7Rg9Cy0LXQtNC+0LzQuNGC0YwoKTsKICAgIH07CiAgICDQutC70Y7Rhy5vbmNsaWNrID0gZnVuY3Rpb24oKQogICAgewogICAgICAgINGPLtC/0LXRgNC10LrQu9GO0YfQsNGC0LXQu9GMLmNoZWNrZWQgPSAh0Y8u0L/QtdGA0LXQutC70Y7Rh9Cw0YLQtdC70YwuY2hlY2tlZDsKICAgICAgICDRjy7QuNC30LzQtdC90LjQu9C40KHRgtCw0YLRg9GBLtGD0LLQtdC00L7QvNC40YLRjCgpOwogICAgfTsKfTsK0KHQstC+0LnRgdGC0LLQsNCc0L7QtNGD0LvRjy5wcm90b3R5cGUu0L3QsNGB0YLRgNC+0LjRgtGM0KPQtNCw0LvQtdC90LjQtSA9IGZ1bmN0aW9uKCkKewogICAgdmFyINGPID0gdGhpczsKICAgIAogICAgdmFyINGA0Y/QtCA9IHRoaXMu0YLQsNCx0LvQuNGG0LAuaW5zZXJ0Um93KCk7CiAgICB2YXIg0Y/Rh9C10LnQutCwID0gMDsKCiAgICDRgNGP0LQuaW5zZXJ0Q2VsbCjRj9GH0LXQudC60LArKyk7CiAgICB2YXIg0LfQvdCw0YfQtdC90LjQtSA9INGA0Y/QtC5pbnNlcnRDZWxsKNGP0YfQtdC50LrQsCsrKTsKCiAgICB0aGlzLtC60L3QvtC/0LrQsNCj0LTQsNC70LjRgtGMID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7CiAgICB0aGlzLtC60L3QvtC/0LrQsNCj0LTQsNC70LjRgtGMLmlubmVySFRNTCA9ICLQo9C00LDQu9C40YLRjCI7CiAgICB0aGlzLtC60L3QvtC/0LrQsNCj0LTQsNC70LjRgtGMLmNsYXNzTGlzdC5hZGQoItC80YPRgNC+0Lwt0LrQvdC+0L/QutCwIik7CiAgICDQt9C90LDRh9C10L3QuNC1LmFwcGVuZENoaWxkKHRoaXMu0LrQvdC+0L/QutCw0KPQtNCw0LvQuNGC0YwpOwogICAgCiAgICB0aGlzLtC60L3QvtC/0LrQsNCj0LTQsNC70LjRgtGMLm9uY2xpY2sgPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAg0Y8u0YPQtNCw0LvQuNGC0Ywu0YPQstC10LTQvtC80LjRgtGMKCk7ICAKICAgIH07Cn07CgoKLy8g0KLQtdGB0YIuCgoKZnVuY3Rpb24g0KLQtdGB0YLQodCy0L7QudGB0YLQstCw0JzQvtC00YPQu9GPKCkKewogICAgdGhpcy7RgdC+0LfQtNCw0YLRjNCY0L3RgtC10YDRhNC10LnRgSgpOwp9CtCi0LXRgdGC0KHQstC+0LnRgdGC0LLQsNCc0L7QtNGD0LvRjy5wcm90b3R5cGUu0YHQvtC30LTQsNGC0YzQmNC90YLQtdGA0YTQtdC50YEgPSBmdW5jdGlvbigpCnsKICAgIHZhciDRjyA9IHRoaXM7CiAgICAKICAgIHRoaXMu0LjRhCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgdGhpcy7RgdCy0L7QudGB0YLQstCwID0gbmV3INCh0LLQvtC50YHRgtCy0LDQnNC+0LTRg9C70Y8oKTsKICAgIHRoaXMu0LjRhC5hcHBlbmRDaGlsZCh0aGlzLtGB0LLQvtC50YHRgtCy0LAu0LjRhCk7CgogICAgdGhpcy7RgdCy0L7QudGB0YLQstCwLtC40LfQvNC10L3QuNC70LjQndC+0LzQtdGALtC/0L7QtNC/0LjRgdCw0YLRjChmdW5jdGlvbigpewogICAgICAgIGNvbnNvbGUubG9nKCLQvdC+0LzQtdGAOiAnIiArINGPLtGB0LLQvtC50YHRgtCy0LAu0L3QvtC80LXRgCArICInIik7CiAgICB9KTsKICAgIHRoaXMu0YHQstC+0LnRgdGC0LLQsC7QuNC30LzQtdC90LjQu9C40JjQvNGPLtC/0L7QtNC/0LjRgdCw0YLRjChmdW5jdGlvbigpewogICAgICAgIGNvbnNvbGUubG9nKCLQuNC80Y86ICciICsg0Y8u0YHQstC+0LnRgdGC0LLQsC7QuNC80Y8gKyAiJyIpOwogICAgfSk7CiAgICB0aGlzLtGB0LLQvtC50YHRgtCy0LAu0LjQt9C80LXQvdC40LvQuNCh0YLQsNGC0YPRgS7Qv9C+0LTQv9C40YHQsNGC0YwoZnVuY3Rpb24oKXsKICAgICAgICBjb25zb2xlLmxvZygi0YHRgtCw0YLRg9GBOiAnIiArINGPLtGB0LLQvtC50YHRgtCy0LAu0YHRgtCw0YLRg9GBICsgIiciKTsKICAgIH0pOwogICAgdGhpcy7RgdCy0L7QudGB0YLQstCwLtGD0LTQsNC70LjRgtGMLtC/0L7QtNC/0LjRgdCw0YLRjChmdW5jdGlvbigpewogICAgICAgIGNvbnNvbGUubG9nKCLRg9C00LDQu9C40YLRjCDQvNC+0LTRg9C70YwgJyIgKyDRjy7RgdCy0L7QudGB0YLQstCwLtC40LzRjyArICInIik7CiAgICB9KTsKfTs=", -{"status":false} -], - - -[ -"муром.Модули_1.0.0", -"ZnVuY3Rpb24g0JzQvtC00YPQu9C4KCkKewogICAgCn0K0JzQvtC00YPQu9C4LnByb3RvdHlwZS7RgdCy0L7QudGB0YLQstCwID0gZnVuY3Rpb24o0L3QvtC80LXRgCkKewogICAgcmV0dXJuIG11cm9tLm1vZHVsZVByb3BlcnRpZXMo0L3QvtC80LXRgCk7Cn07CtCc0L7QtNGD0LvQuC5wcm90b3R5cGUu0LfQsNC00LDRgtGM0KHQstC+0LnRgdGC0LLQsCA9IGZ1bmN0aW9uKNC90L7QvNC10YAsINGB0LLQvtC50YHRgtCy0LApCnsKICAgIHZhciDQvCA9INC80YPRgNC+0Lwu0LzQvtC00YPQu9C4W9C90L7QvNC10YBdOwogICAg0LxbMl0gPSDRgdCy0L7QudGB0YLQstCwOwp9OwrQnNC+0LTRg9C70LgucHJvdG90eXBlLtGB0YLQsNGC0YPRgSA9IGZ1bmN0aW9uKNC90L7QvNC10YApCnsKICAgIHJldHVybiBtdXJvbS5tb2R1bGVTdGF0dXMo0L3QvtC80LXRgCk7Cn07CtCc0L7QtNGD0LvQuC5wcm90b3R5cGUu0LfQsNC00LDRgtGM0KHRgtCw0YLRg9GBID0gZnVuY3Rpb24o0L3QvtC80LXRgCwg0YHRgtCw0YLRg9GBKQp7CiAgICB2YXIg0YHQsiA9IHRoaXMu0YHQstC+0LnRgdGC0LLQsCjQvdC+0LzQtdGAKTsKICAgINGB0LJbInN0YXR1cyJdID0g0YHRgtCw0YLRg9GBOwogICAgdGhpcy7Qt9Cw0LTQsNGC0YzQodCy0L7QudGB0YLQstCwKNC90L7QvNC10YAsINGB0LIpOwp9OwrQnNC+0LTRg9C70LgucHJvdG90eXBlLtC30LDQtNCw0YLRjNCY0LzRjyA9IGZ1bmN0aW9uKNC90L7QvNC10YAsINC40LzRjykKewogICAgdmFyINC8ID0g0LzRg9GA0L7QvC7QvNC+0LTRg9C70Lhb0L3QvtC80LXRgF07CiAgICDQvFswXSA9INC40LzRjzsKfTsK0JzQvtC00YPQu9C4LnByb3RvdHlwZS7Qt9Cw0LTQsNGC0YzQndC+0LzQtdGAID0gZnVuY3Rpb24o0YHRgtCw0YDRi9C5LCDQvdC+0LLRi9C5KQp7CiAgICBjb25zb2xlLmxvZygi0LfQsNC00LDRgtGMINC90L7QvNC10YAuICciICsg0YHRgtCw0YDRi9C5ICsgIicgLT4gJyIgKyDQvdC+0LLRi9C5ICsgIiciKTsKICAgIHZhciDQvNC+0LTRg9C70YwgPSDQvNGD0YDQvtC8LtC80L7QtNGD0LvQuFvRgdGC0LDRgNGL0LldOwogICAgLy8g0KPQtNCw0LvRj9C10Lwg0YHRgtCw0YDRg9GOINC30LDQv9C40YHRjC4KICAgINC80YPRgNC+0Lwu0LzQvtC00YPQu9C4LnNwbGljZSjRgdGC0LDRgNGL0LksIDEpOwogICAgLy8g0JTQvtCx0LDQstC70Y/QtdC8INC80L7QtNGD0LvRjCDQsiDQvdC+0LLRg9GOINC/0L7Qt9C40YbQuNGOLgogICAg0LzRg9GA0L7QvC7QvNC+0LTRg9C70Lguc3BsaWNlKNC90L7QstGL0LksIDAsINC80L7QtNGD0LvRjCk7Cn07", -{"status":false} -], - - -[ -"муром.ПанельУправления", -"ZnVuY3Rpb24g0J/QsNC90LXQu9GM0KPQv9GA0LDQstC70LXQvdC40Y8oKQp7CiAgICB0aGlzLtC80L7QtNGD0LvQuCA9IG5ldyDQnNC+0LTRg9C70LgoKTsKICAgIHRoaXMu0YHQvtC30LTQsNGC0YzQntGB0L3QvtCy0YMoKTsKICAgIHRoaXMu0YHQvtC30LTQsNGC0YzQodC+0YXRgNCw0L3QtdC90LjQtdCh0LrQsNGH0LjQstCw0L3QuNC10JTQvtCx0LDQstC70LXQvdC40LUoKTsKICAgIHRoaXMu0YHQvtC30LTQsNGC0YzQodC/0LjRgdC+0LrQnNC+0LTRg9C70LXQuSgpOwogICAgdGhpcy7RgdC+0LfQtNCw0YLRjNCh0LLQvtC50YHRgtCy0LDQnNC+0LTRg9C70Y8oKTsKfQrQn9Cw0L3QtdC70YzQo9C/0YDQsNCy0LvQtdC90LjRjy5wcm90b3R5cGUu0YHQvtC30LTQsNGC0YzQntCx0ZHRgNGC0LrRg9Cv0YfQtdC50LrRgyA9IGZ1bmN0aW9uKCkKewogICAgdmFyINC+0LHRkdGA0YLQutCwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGFibGUiKTsKICAgINC+0LHRkdGA0YLQutCwLnN0eWxlLmNzc1RleHQgPSAid2lkdGg6IDEwMCU7IjsKICAgIHZhciDRgNGP0LQgPSDQvtCx0ZHRgNGC0LrQsC5pbnNlcnRSb3coKTsKICAgIHZhciDRj9GH0LXQudC60LAgPSDRgNGP0LQuaW5zZXJ0Q2VsbCgpOwogICAgcmV0dXJuIFvQvtCx0ZHRgNGC0LrQsCwg0Y/Rh9C10LnQutCwXTsKfTsK0J/QsNC90LXQu9GM0KPQv9GA0LDQstC70LXQvdC40Y8ucHJvdG90eXBlLtGB0L7Qt9C00LDRgtGM0J7RgdC90L7QstGDID0gZnVuY3Rpb24oKQp7CiAgICB0aGlzLtC40YQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0YWJsZSIpOwogICAgdGhpcy7QuNGELnN0eWxlLmNzc1RleHQgPSAid2lkdGg6IDEwMCU7IjsKICAgIHZhciDRgNGP0LQgPSB0aGlzLtC40YQuaW5zZXJ0Um93KCk7CiAgICB0aGlzLtC70LXQstC+ID0g0YDRj9C0Lmluc2VydENlbGwoKTsKICAgIHRoaXMu0LvQtdCy0L4uc3R5bGUuY3NzVGV4dCA9ICJ3aWR0aDogMTAwJTsiOwogICAgdmFyINC/0YDQsNCy0L4gPSDRgNGP0LQuaW5zZXJ0Q2VsbCgpOwogICAg0L/RgNCw0LLQvi5zdHlsZS5jc3NUZXh0ID0gImhlaWdodDogMTAwJTsiOwogICAgdGhpcy7QutC90L7Qv9C60LggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0YWJsZSIpOwogICAgdGhpcy7QutC90L7Qv9C60Lguc3R5bGUuY3NzVGV4dCA9ICJoZWlnaHQ6IDEwMCU7IjsKICAgINC/0YDQsNCy0L4uYXBwZW5kQ2hpbGQodGhpcy7QutC90L7Qv9C60LgpOwogICAg0YDRj9C0ID0gdGhpcy7QuNGELmluc2VydFJvdygpOwogICAgdGhpcy7QvdC40LcgPSDRgNGP0LQuaW5zZXJ0Q2VsbCgpOwogICAgdGhpcy7QvdC40LcuY29sU3BhbiA9IDI7Cn07CtCf0LDQvdC10LvRjNCj0L/RgNCw0LLQu9C10L3QuNGPLnByb3RvdHlwZS7RgdC+0LfQtNCw0YLRjNCh0L/QuNGB0L7QutCc0L7QtNGD0LvQtdC5ID0gZnVuY3Rpb24oKQp7CiAgICB0aGlzLtGB0L/QuNGB0L7QuiA9IG5ldyDQodC/0LjRgdC+0LrQnNC+0LTRg9C70LXQuSgpOwogICAgdGhpcy7RgdC/0LjRgdC+0Lou0LfQsNC00LDRgtGM0KHQv9C40YHQvtC6KHRoaXMu0YHQv9C40YHQvtC60JzQvtC00YPQu9C10LkoKSk7CiAgICB2YXIg0L7RjyA9IHRoaXMu0YHQvtC30LTQsNGC0YzQntCx0ZHRgNGC0LrRg9Cv0YfQtdC50LrRgygpOwogICAgdGhpcy7Qu9C10LLQvi5hcHBlbmRDaGlsZCjQvtGPWzBdKTsKICAgINC+0Y9bMV0uYXBwZW5kQ2hpbGQodGhpcy7RgdC/0LjRgdC+0Lou0LjRhCk7Cn07CtCf0LDQvdC10LvRjNCj0L/RgNCw0LLQu9C10L3QuNGPLnByb3RvdHlwZS7RgdC+0LfQtNCw0YLRjNCh0LLQvtC50YHRgtCy0LDQnNC+0LTRg9C70Y8gPSBmdW5jdGlvbigpCnsKICAgIHRoaXMu0YHQstC+0LnRgdGC0LLQsCA9IG5ldyDQodCy0L7QudGB0YLQstCw0JzQvtC00YPQu9GPKCk7CiAgICDQvtGPID0gdGhpcy7RgdC+0LfQtNCw0YLRjNCe0LHRkdGA0YLQutGD0K/Rh9C10LnQutGDKCk7CiAgICB0aGlzLtC90LjQty5hcHBlbmRDaGlsZCjQvtGPWzBdKTsKICAgINC+0Y9bMV0uYXBwZW5kQ2hpbGQodGhpcy7RgdCy0L7QudGB0YLQstCwLtC40YQpOwp9OwrQn9Cw0L3QtdC70YzQo9C/0YDQsNCy0LvQtdC90LjRjy5wcm90b3R5cGUu0YHQv9C40YHQvtC60JzQvtC00YPQu9C10LkgPSBmdW5jdGlvbigpCnsKICAgIHZhciDRgdC/0LjRgdC+0LogPSBbXTsKICAgIGZvciAodmFyINC90L7QvNC10YAgaW4g0LzRg9GA0L7QvC7QvNC+0LTRg9C70LgpCiAgICB7CiAgICAgICAgdmFyINC8ID0g0LzRg9GA0L7QvC7QvNC+0LTRg9C70Lhb0L3QvtC80LXRgF07CiAgICAgICAgdmFyINGB0YLQsNGC0YPRgSA9IHRoaXMu0LzQvtC00YPQu9C4LtGB0YLQsNGC0YPRgSjQvdC+0LzQtdGAKTsKICAgICAgICB2YXIg0LjQvNGPID0g0LxbMF07CiAgICAgICAgdmFyINGN0LvQtdC80LXQvdGCID0gW9GB0YLQsNGC0YPRgSwg0LjQvNGPXTsKICAgICAgICDRgdC/0LjRgdC+0LoucHVzaCjRjdC70LXQvNC10L3Rgik7CiAgICB9CiAgICAKICAgIHJldHVybiDRgdC/0LjRgdC+0Lo7Cn07CtCf0LDQvdC10LvRjNCj0L/RgNCw0LLQu9C10L3QuNGPLnByb3RvdHlwZS7RgdC+0LfQtNCw0YLRjNCa0L3QvtC/0LrRgyA9IGZ1bmN0aW9uKNC40LzRjywg0YPQstC10LTQvtC80LjRgtC10LvRjCkKewogICAgdmFyINC60L3QvtC/0LrQsCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpOwogICAg0LrQvdC+0L/QutCwLmlubmVySFRNTCA9INC40LzRjzsKICAgINC60L3QvtC/0LrQsC5zdHlsZS5jc3NUZXh0ID0gIndpZHRoOiAxMDAlOyI7CiAgICDQutC90L7Qv9C60LAuY2xhc3NMaXN0LmFkZCgi0LzRg9GA0L7QvC3QutC90L7Qv9C60LAiKTsKICAgINC60L3QvtC/0LrQsC5vbmNsaWNrID0gZnVuY3Rpb24oKQogICAgewogICAgICAgINGD0LLQtdC00L7QvNC40YLQtdC70Ywu0YPQstC10LTQvtC80LjRgtGMKCk7ICAKICAgIH07CiAgICAKICAgIHJldHVybiDQutC90L7Qv9C60LA7Cn07CtCf0LDQvdC10LvRjNCj0L/RgNCw0LLQu9C10L3QuNGPLnByb3RvdHlwZS7RgdC+0LfQtNCw0YLRjNCh0L7RhdGA0LDQvdC10L3QuNC10KHQutCw0YfQuNCy0LDQvdC40LXQlNC+0LHQsNCy0LvQtdC90LjQtSA9IGZ1bmN0aW9uKCkKewogICAgdmFyINGPID0gdGhpczsKICAgIAogICAgdmFyINGA0Y/QtCA9IHRoaXMu0LrQvdC+0L/QutC4Lmluc2VydFJvdygpOwogICAgdmFyINGP0YfQtdC50LrQsCA9INGA0Y/QtC5pbnNlcnRDZWxsKCk7CiAgICB0aGlzLtGB0L7RhdGA0LDQvdC40YLRjCA9IG5ldyDQo9Cy0LXQtNC+0LzQuNGC0LXQu9GMKCk7CiAgICB0aGlzLtC60L3QvtC/0LrQsNCh0L7RhdGA0LDQvdC40YLRjCA9IHRoaXMu0YHQvtC30LTQsNGC0YzQmtC90L7Qv9C60YMoItCh0L7RhdGA0LDQvdC40YLRjCIsIHRoaXMu0YHQvtGF0YDQsNC90LjRgtGMKTsKICAgINGP0YfQtdC50LrQsC5hcHBlbmRDaGlsZCh0aGlzLtC60L3QvtC/0LrQsNCh0L7RhdGA0LDQvdC40YLRjCk7CiAgICAKICAgINGA0Y/QtCA9IHRoaXMu0LrQvdC+0L/QutC4Lmluc2VydFJvdygpOwogICAg0Y/Rh9C10LnQutCwID0g0YDRj9C0Lmluc2VydENlbGwoKTsKICAgIHRoaXMu0YHQutCw0YfQsNGC0YwgPSBuZXcg0KPQstC10LTQvtC80LjRgtC10LvRjCgpOwogICAgdGhpcy7QutC90L7Qv9C60LDQodC60LDRh9Cw0YLRjCA9IHRoaXMu0YHQvtC30LTQsNGC0YzQmtC90L7Qv9C60YMoItCh0LrQsNGH0LDRgtGMIiwgdGhpcy7RgdC60LDRh9Cw0YLRjCk7CiAgICDRj9GH0LXQudC60LAuYXBwZW5kQ2hpbGQodGhpcy7QutC90L7Qv9C60LDQodC60LDRh9Cw0YLRjCk7CiAgICAKICAgIC8vINCf0YDQvtCx0LXQuy4KICAgINGA0Y/QtCA9IHRoaXMu0LrQvdC+0L/QutC4Lmluc2VydFJvdygpOwogICAg0Y/Rh9C10LnQutCwID0g0YDRj9C0Lmluc2VydENlbGwoKTsKICAgINGP0YfQtdC50LrQsC5zdHlsZS5jc3NUZXh0ID0gImhlaWdodDogMTAwJTsiOwoKICAgINGA0Y/QtCA9IHRoaXMu0LrQvdC+0L/QutC4Lmluc2VydFJvdygpOwogICAg0Y/Rh9C10LnQutCwID0g0YDRj9C0Lmluc2VydENlbGwoKTsKICAgIHRoaXMu0LTQvtCx0LDQstC40YLRjCA9IG5ldyDQo9Cy0LXQtNC+0LzQuNGC0LXQu9GMKCk7CiAgICB0aGlzLtC60L3QvtC/0LrQsNCU0L7QsdCw0LLQuNGC0YwgPSB0aGlzLtGB0L7Qt9C00LDRgtGM0JrQvdC+0L/QutGDKCLQlNC+0LHQsNCy0LjRgtGMIiwgdGhpcy7QtNC+0LHQsNCy0LjRgtGMKTsKICAgINGP0YfQtdC50LrQsC5hcHBlbmRDaGlsZCh0aGlzLtC60L3QvtC/0LrQsNCU0L7QsdCw0LLQuNGC0YwpOwp9OwrQn9Cw0L3QtdC70YzQo9C/0YDQsNCy0LvQtdC90LjRjy5wcm90b3R5cGUu0LjQvNGP0KTQsNC50LvQsCA9IGZ1bmN0aW9uKCkKewogICAgdmFyINC/0YPRgtGMID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lOwogICAgdmFyINC40LzRjyA9INC/0YPRgtGMLnNwbGl0KCIvIikucG9wKCk7CiAgICByZXR1cm4gZGVjb2RlVVJJKNC40LzRjyk7Cn07CgpmdW5jdGlvbiDQv9GA0L7QstC10YDQuNGC0YzQn9CjKCkKewogICAgY29uc29sZS5sb2coItC/0YDQvtCy0LXRgNC40YLRjNCf0KMiKTsKICAgIHZhciDQv9GDID0gbmV3INCf0LDQvdC10LvRjNCj0L/RgNCw0LLQu9C10L3QuNGPKCk7CiAgICB2YXIg0L7QsdC70LDRgdGC0LggPSDQvNGD0YDQvtC8LtGB0L7Qt9C00LDRgtGM0JvQtdCy0YPRjtCf0YDQsNCy0YPRjtCe0LHQu9Cw0YHRgtC4KCk7CiAgICB2YXIg0L/QviA9INC+0LHQu9Cw0YHRgtC4WzFdOwogICAg0L/Qvi5hcHBlbmRDaGlsZCjQv9GDLtC40YQpOwogICAg0LzRg9GA0L7QvC7RgdC+0LfQtNCw0YLRjNCg0LXQtNCw0LrRgtC+0YDQktCb0LXQstC+0LnQntCx0LvQsNGB0YLQuCgpOwogICAgdmFyINGB0L/QuNGB0L7QuiA9INC/0YMu0YHQv9C40YHQvtC6OwogICAgdmFyINGB0LLQvtC50YHRgtCy0LAgPSDQv9GDLtGB0LLQvtC50YHRgtCy0LA7CiAgICB2YXIg0LzQvtC00YPQu9C4ID0g0L/Rgy7QvNC+0LTRg9C70Lg7CiAgICAKICAgIGZ1bmN0aW9uINC+0YLQvtCx0YDQsNC30LjRgtGM0JrQvtC00JLRi9Cx0YDQsNC90L3QvtCz0L7QnNC+0LTRg9C70Y8oKQogICAgewogICAgICAgIHZhciDQvNC+0LTRg9C70YwgPSDQvNGD0YDQvtC8LtC80L7QtNGD0LvQuFvRgdC/0LjRgdC+0Lou0LLRi9Cx0L7RgF07CiAgICAgICAgdmFyINC60L7QtCA9INC80YPRgNC+0LwuYXRvYijQvNC+0LTRg9C70YxbMV0pOwogICAgICAgINC80YPRgNC+0Lwu0YDQtdC00LDQutGC0L7RgC5zZXNzaW9uLnNldFZhbHVlKNC60L7QtCk7CiAgICB9CiAgICBmdW5jdGlvbiDQvtGC0L7QsdGA0LDQt9C40YLRjNCh0LLQvtC50YHRgtCy0LDQktGL0LHRgNCw0L3QvdC+0LPQvtCc0L7QtNGD0LvRjygpCiAgICB7CiAgICAgICAgdmFyINC80L7QtNGD0LvRjCA9INC80YPRgNC+0Lwu0LzQvtC00YPQu9C4W9GB0L/QuNGB0L7Qui7QstGL0LHQvtGAXTsKICAgICAgICAKICAgICAgICDRgdCy0L7QudGB0YLQstCwLtC90L7QvNC10YAgPSDRgdC/0LjRgdC+0Lou0LLRi9Cx0L7RgDsKICAgICAgICDRgdCy0L7QudGB0YLQstCwLtC40LzRjyA9INC80L7QtNGD0LvRjFswXTsKICAgICAgICDRgdCy0L7QudGB0YLQstCwLtGB0YLQsNGC0YPRgSA9INC/0YMu0LzQvtC00YPQu9C4LtGB0YLQsNGC0YPRgSjRgdC/0LjRgdC+0Lou0LLRi9Cx0L7RgCk7CiAgICB9CiAgICDRgdC/0LjRgdC+0Lou0LLRi9Cx0YDQsNC70Lgu0L/QvtC00L/QuNGB0LDRgtGM0JzQvdC+0LPQvihbCiAgICAgICAg0L7RgtC+0LHRgNCw0LfQuNGC0YzQmtC+0LTQktGL0LHRgNCw0L3QvdC+0LPQvtCc0L7QtNGD0LvRjywKICAgICAgICDQvtGC0L7QsdGA0LDQt9C40YLRjNCh0LLQvtC50YHRgtCy0LDQktGL0LHRgNCw0L3QvdC+0LPQvtCc0L7QtNGD0LvRjywKICAgIF0pOwogICAgCiAgICBmdW5jdGlvbiDQvtCx0L3QvtCy0LjRgtGM0KHRgtCw0YLRg9GB0JzQvtC00YPQu9GPKCkKICAgIHsKICAgICAgICB2YXIg0L3QvtC80LXRgCA9INGB0L/QuNGB0L7Qui7QstGL0LHQvtGAOwogICAgICAgIHZhciDQuNC80Y8gPSDRgdCy0L7QudGB0YLQstCwLtC40LzRjzsKICAgICAgICB2YXIg0YHRgtCw0YLRg9GBID0g0YHQstC+0LnRgdGC0LLQsC7RgdGC0LDRgtGD0YE7CiAgICAgICAg0LzQvtC00YPQu9C4LtC30LDQtNCw0YLRjNCh0YLQsNGC0YPRgSjQvdC+0LzQtdGALCDRgdGC0LDRgtGD0YEpOwogICAgICAgINGB0L/QuNGB0L7Qui7QvtCx0L3QvtCy0LjRgtGM0K3Qu9C10LzQtdC90YIo0L3QvtC80LXRgCwg0YHRgtCw0YLRg9GBLCDQuNC80Y8pOwogICAgfQogICAg0YHQstC+0LnRgdGC0LLQsC7QuNC30LzQtdC90LjQu9C40KHRgtCw0YLRg9GBLtC/0L7QtNC/0LjRgdCw0YLRjCjQvtCx0L3QvtCy0LjRgtGM0KHRgtCw0YLRg9GB0JzQvtC00YPQu9GPKTsKICAgIAogICAgZnVuY3Rpb24g0L7QsdC90L7QstC40YLRjNCY0LzRj9Cc0L7QtNGD0LvRjygpCiAgICB7CiAgICAgICAgdmFyINC90L7QvNC10YAgPSDRgdC/0LjRgdC+0Lou0LLRi9Cx0L7RgDsKICAgICAgICB2YXIg0LjQvNGPID0g0YHQstC+0LnRgdGC0LLQsC7QuNC80Y87CiAgICAgICAgdmFyINGB0YLQsNGC0YPRgSA9INGB0LLQvtC50YHRgtCy0LAu0YHRgtCw0YLRg9GBOwogICAgICAgINC80L7QtNGD0LvQuC7Qt9Cw0LTQsNGC0YzQmNC80Y8o0L3QvtC80LXRgCwg0LjQvNGPKTsKICAgICAgICDRgdC/0LjRgdC+0Lou0L7QsdC90L7QstC40YLRjNCt0LvQtdC80LXQvdGCKNC90L7QvNC10YAsINGB0YLQsNGC0YPRgSwg0LjQvNGPKTsKICAgIH0KICAgINGB0LLQvtC50YHRgtCy0LAu0LjQt9C80LXQvdC40LvQuNCY0LzRjy7Qv9C+0LTQv9C40YHQsNGC0Ywo0L7QsdC90L7QstC40YLRjNCY0LzRj9Cc0L7QtNGD0LvRjyk7CiAgICAKICAgIGZ1bmN0aW9uINC+0LHQvdC+0LLQuNGC0YzQndC+0LzQtdGA0JzQvtC00YPQu9GPKCkKICAgIHsKICAgICAgICB2YXIg0YHRgtCw0YDRi9C5ID0g0YHQv9C40YHQvtC6LtCy0YvQsdC+0YA7CiAgICAgICAgdmFyINC90L7QstGL0LkgPSDRgdCy0L7QudGB0YLQstCwLtC90L7QvNC10YA7CiAgICAgICAgaWYgKNGB0YLQsNGA0YvQuSA9PSDQvdC+0LLRi9C5KQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZiAo0L3QvtCy0YvQuSA+INC80YPRgNC+0Lwu0LzQvtC00YPQu9C4Lmxlbmd0aCAtIDEpCiAgICAgICAgewogICAgICAgICAgICDQvdC+0LLRi9C5ID0g0LzRg9GA0L7QvC7QvNC+0LTRg9C70LgubGVuZ3RoIC0gMTsKICAgICAgICB9CiAgICAgICAg0LzQvtC00YPQu9C4LtC30LDQtNCw0YLRjNCd0L7QvNC10YAo0YHRgtCw0YDRi9C5LCDQvdC+0LLRi9C5KTsKICAgICAgICAvL2NvbnNvbGUubG9nKCLQndC+0LLRi9C5INC90L7QvNC10YA6ICciICsg0L3QvtC80LXRgCArICInIik7CiAgICAgICAg0YHQv9C40YHQvtC6LtC30LDQtNCw0YLRjNCh0L/QuNGB0L7QuijQv9GDLtGB0L/QuNGB0L7QutCc0L7QtNGD0LvQtdC5KCkpOwogICAgICAgINGB0L/QuNGB0L7Qui7QstGL0LHRgNCw0YLRjCjQvdC+0LLRi9C5KTsKICAgIH0KICAgINGB0LLQvtC50YHRgtCy0LAu0LjQt9C80LXQvdC40LvQuNCd0L7QvNC10YAu0L/QvtC00L/QuNGB0LDRgtGMKNC+0LHQvdC+0LLQuNGC0YzQndC+0LzQtdGA0JzQvtC00YPQu9GPKTsKICAgIAogICAgZnVuY3Rpb24g0LTQvtCx0LDQstC40YLRjNCc0L7QtNGD0LvRjCgpCiAgICB7CiAgICAgICAgdmFyINGH0LjRgdC70L4gPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBNYXRoLmZsb29yKDEwMDApKTsKICAgICAgICB2YXIg0LjQvNGPID0gItC90L7QstGL0LktIiArINGH0LjRgdC70L47IAogICAgICAgIHZhciDQutC+0LQgPSBgY29uc29sZS5sb2coItCd0JDQlNCeINCU0L7QsdCw0LLQuNGC0Ywg0LrQvtC0INCyINC80L7QtNGD0LvRjCAnYCArINC40LzRjyArIGAnIik7YDsKICAgICAgICB2YXIg0LzQvtC00YPQu9GMID0gW9C40LzRjywg0LzRg9GA0L7QvC5idG9hKNC60L7QtCldOwogICAgICAgINC80YPRgNC+0Lwu0LzQvtC00YPQu9C4LnB1c2go0LzQvtC00YPQu9GMKTsKICAgICAgICB2YXIg0LzQvtC00YPQu9C4ID0g0L/Rgy7RgdC/0LjRgdC+0LrQnNC+0LTRg9C70LXQuSgpOwogICAgICAgINGB0L/QuNGB0L7Qui7Qt9Cw0LTQsNGC0YzQodC/0LjRgdC+0Loo0LzQvtC00YPQu9C4KTsKICAgICAgICDRgdC/0LjRgdC+0Lou0LLRi9Cx0YDQsNGC0Ywo0LzQvtC00YPQu9C4Lmxlbmd0aCAtIDEpOwogICAgfQogICAg0L/Rgy7QtNC+0LHQsNCy0LjRgtGMLtC/0L7QtNC/0LjRgdCw0YLRjCjQtNC+0LHQsNCy0LjRgtGM0JzQvtC00YPQu9GMKTsKICAgIAogICAgZnVuY3Rpb24g0YPQtNCw0LvQuNGC0YzQnNC+0LTRg9C70YwoKQogICAgewogICAgICAgIHZhciDQvdC+0LzQtdGAID0g0YHQv9C40YHQvtC6LtCy0YvQsdC+0YA7CiAgICAgICAgCiAgICAgICAgdmFyINGB0YLQsNGC0YPRgSA9INC/0YMu0LzQvtC00YPQu9C4LtGB0YLQsNGC0YPRgSjQvdC+0LzQtdGAKTsKICAgICAgICBpZiAo0YHRgtCw0YLRg9GBKQogICAgICAgIHsKICAgICAgICAgICAgYWxlcnQoItCe0KjQmNCR0JrQkCDQo9C00LDQu9C40YLRjCDQvNC+0LbQvdC+INC70LjRiNGMINC90LXQuNGB0L/QvtC70L3Rj9C10LzRi9C5INC80L7QtNGD0LvRjCIpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vINCj0LTQsNC70LjRgtGMINCy0YvQsdGA0LDQvdC90YvQuSDQvNC+0LTRg9C70YwuCiAgICAgICAg0LzRg9GA0L7QvC7QvNC+0LTRg9C70Lguc3BsaWNlKNC90L7QvNC10YAsIDEpOwogICAgICAgIC0t0L3QvtC80LXRgDsKICAgICAgICBpZiAo0L3QvtC80LXRgCA8IDApCiAgICAgICAgewogICAgICAgICAgICDQvdC+0LzQtdGAID0gMDsKICAgICAgICB9CiAgICAgICAgdmFyINC80L7QtNGD0LvQuCA9INC/0YMu0YHQv9C40YHQvtC60JzQvtC00YPQu9C10LkoKTsKICAgICAgICDRgdC/0LjRgdC+0Lou0LfQsNC00LDRgtGM0KHQv9C40YHQvtC6KNC80L7QtNGD0LvQuCk7CiAgICAgICAg0YHQv9C40YHQvtC6LtCy0YvQsdGA0LDRgtGMKNC90L7QvNC10YApOwogICAgfQogICAg0YHQstC+0LnRgdGC0LLQsC7Rg9C00LDQu9C40YLRjC7Qv9C+0LTQv9C40YHQsNGC0Ywo0YPQtNCw0LvQuNGC0YzQnNC+0LTRg9C70YwpOwogICAgCiAgICBmdW5jdGlvbiDRgdC+0YXRgNCw0L3QuNGC0YzQktGL0LHRgNCw0L3QvdGL0LnQnNC+0LTRg9C70YwoKQogICAgewogICAgICAgIHZhciDQvNC+0LTRg9C70YwgPSDQvNGD0YDQvtC8LtC80L7QtNGD0LvQuFvRgdC/0LjRgdC+0Lou0LLRi9Cx0L7RgF07CiAgICAgICAgdmFyINC60L7QtCA9INC80YPRgNC+0Lwu0YDQtdC00LDQutGC0L7RgC5zZXNzaW9uLmdldFZhbHVlKCk7CiAgICAgICAg0LzQvtC00YPQu9GMWzFdID0g0LzRg9GA0L7QvC5idG9hKNC60L7QtCk7CiAgICB9CiAgICBmdW5jdGlvbiDRgdC+0YXRgNCw0L3QuNGC0YwoKQogICAgewogICAgICAgINC/0YMu0LrQvdC+0L/QutCw0KHQvtGF0YDQsNC90LjRgtGMLmRpc2FibGVkID0gdHJ1ZTsKICAgICAgICBsb2NhbGZvcmFnZS5zZXRJdGVtKCJtb2R1bGVzIiwg0LzRg9GA0L7QvC7QvNC+0LTRg9C70LgsIGZ1bmN0aW9uKNC+0YjQuNCx0LrQsCwg0LfQvdCw0YfQtdC90LjQtSl7CiAgICAgICAgICAgINC/0YMu0LrQvdC+0L/QutCw0KHQvtGF0YDQsNC90LjRgtGMLmRpc2FibGVkID0gZmFsc2U7CiAgICAgICAgICAgIGlmICjQvtGI0LjQsdC60LApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoItCd0LUg0YPQtNCw0LvQvtGB0Ywg0YHQvtGF0YDQsNC90LjRgtGMINC80L7QtNGD0LvQuDogJyIgKyDQvtGI0LjQsdC60LAgKyAiJyIpOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICB9CiAgICDQv9GDLtGB0L7RhdGA0LDQvdC40YLRjC7Qv9C+0LTQv9C40YHQsNGC0YzQnNC90L7Qs9C+KFsKICAgICAgICDRgdC+0YXRgNCw0L3QuNGC0YzQktGL0LHRgNCw0L3QvdGL0LnQnNC+0LTRg9C70YwsCiAgICAgICAg0YHQvtGF0YDQsNC90LjRgtGMLAogICAgXSk7CgogICAgLy8gSG93IHRvIGNyZWF0ZSBhIGZpbGUgaW4gbWVtb3J5IGZvciB1c2VyIHRvIGRvd25sb2FkLCBidXQgbm90IHRocm91Z2ggc2VydmVyPwogICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzE4MTk3MzQxCiAgICBmdW5jdGlvbiDRgdC60LDRh9Cw0YLRjCgpCiAgICB7CiAgICAgICAgdmFyINGB0L7QtNC10YDQttC40LzQvtC1ID0g0LzRg9GA0L7QvC7RhNCw0LnQuy7QvdCw0YfQsNC70L47CiAgICAgICAgZm9yICh2YXIg0L3QvtC80LXRgCBpbiDQvNGD0YDQvtC8LtC80L7QtNGD0LvQuCkKICAgICAgICB7CiAgICAgICAgICAgIHZhciDQvNC+0LTRg9C70YwgPSDQvNGD0YDQvtC8LtC80L7QtNGD0LvQuFvQvdC+0LzQtdGAXTsKICAgICAgICAgICAgdmFyINC40LzRjyA9INC80L7QtNGD0LvRjFswXTsKICAgICAgICAgICAgdmFyINC60L7QtDY0ID0g0LzQvtC00YPQu9GMWzFdOwogICAgICAgICAgICB2YXIg0YHQstC+0LnRgdGC0LLQsCA9INC80L7QtNGD0LvQuC7RgdCy0L7QudGB0YLQstCwKNC90L7QvNC10YApOwogICAgICAgICAgICDRgdC+0LTQtdGA0LbQuNC80L7QtSArPQpgCgpbCiJgICsg0LjQvNGPICsgYCIsCiJgICsg0LrQvtC0NjQgKyBgIiwKYAorCkpTT04uc3RyaW5naWZ5KNGB0LLQvtC50YHRgtCy0LApCisKYApdLApgCjsKICAgICAgICB9CiAgICAgICAg0YHQvtC00LXRgNC20LjQvNC+0LUgKz0g0LzRg9GA0L7QvC7RhNCw0LnQuy7QutC+0L3QtdGGOwogICAgICAgINGB0L7QtNC10YDQttC40LzQvtC1ID0g0LzRg9GA0L7QvC5idG9hKNGB0L7QtNC10YDQttC40LzQvtC1KTsKICAgIAogICAgICAgIHZhciDRgdGB0YvQu9GMID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpOwogICAgICAgINGB0YHRi9C70Ywuc2V0QXR0cmlidXRlKCJocmVmIiwgImRhdGE6dGV4dC9odG1sO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCIgKyDRgdC+0LTQtdGA0LbQuNC80L7QtSk7CiAgICAgICAgdmFyINC40LzRjyA9INC/0YMu0LjQvNGP0KTQsNC50LvQsCgpOwogICAgICAgINGB0YHRi9C70Ywuc2V0QXR0cmlidXRlKCJkb3dubG9hZCIsINC40LzRjyk7CiAgICAgICAg0YHRgdGL0LvRjC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo0YHRgdGL0LvRjCk7CiAgICAgICAg0YHRgdGL0LvRjC5jbGljaygpOwogICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQo0YHRgdGL0LvRjCk7CiAgICB9CiAgICDQv9GDLtGB0LrQsNGH0LDRgtGMLtC/0L7QtNC/0LjRgdCw0YLRjCjRgdC60LDRh9Cw0YLRjCk7CgogICAgLy8g0J/RgNC4INC30LDQv9GD0YHQutC1LgogICAg0YHQv9C40YHQvtC6LtCy0YvQsdGA0LDRgtGMKDApOwp9CgrQv9GA0L7QstC10YDQuNGC0YzQn9CjKCk7", -{"status":false} -], - - [ "муром.пу_1.0.0", "LyoKICoKICog0JLQvdC10YjQvdC40Lkg0LLQuNC0CiAqCiAqLwoKZnVuY3Rpb24g0LfQsNC00LDRgtGM0JLQvdC10YjQvdC40LnQktC40LQoKQp7CiAgICB2YXIg0LLQuNC0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTsKICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQo0LLQuNC0KTsKICAgINCy0LjQtC5pbm5lckhUTUwgPQpgCi7QvNGD0YDQvtC8LdC60L3QvtC/0LrQsAp7CiAgICBwYWRkaW5nOiAwLjVlbSAyZW0gMC41ZW0gMmVtOwogICAgbWFyZ2luLXJpZ2h0OiAwLjVlbTsKICAgIGZsb2F0OiByaWdodDsKICAgIGNvbG9yOiAjMjIyOwogICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkOwogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgLXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzOyAvKiBTYWZhcmkgKi8KICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7Cn0KLtC80YPRgNC+0Lwt0LrQvdC+0L/QutCwOmhvdmVyCnsKICAgIGJvcmRlcjogMXB4IHNvbGlkICMyMjI7Cn0KLtC80YPRgNC+0Lwt0L7RgtGB0YLRg9C/LdC/0L4t0YHRgtC+0YDQvtC90LDQvAp7CiAgICBtYXJnaW4tbGVmdDogMC41ZW07CiAgICBtYXJnaW4tcmlnaHQ6IDAuNWVtOwp9CmA7Cn0KCi8qCiAqCiAqINCh0L/QuNGB0L7QuiDQvNC+0LTRg9C70LXQuQogKgogKi8KCmZ1bmN0aW9uINCh0L/QuNGB0L7QutCc0L7QtNGD0LvQtdC5KCkKewogICAgdmFyINGPID0gdGhpczsKCiAgICB0aGlzLtGB0L7Qt9C00LDRgtGM0JjQvdGC0LXRgNGE0LXQudGBKCk7CiAgICB0aGlzLtC30LDQtNCw0YLRjNCS0LjQtCgpOwogICAgdGhpcy7QstGL0LHRgNCw0LvQuCA9IG5ldyDQo9Cy0LXQtNC+0LzQuNGC0LXQu9GMKCk7CiAgICB0aGlzLtCy0YvQsdGA0LDQu9C4LtC/0L7QtNC/0LjRgdCw0YLRjChmdW5jdGlvbigpewogICAgICAgINGPLtC+0YLQvtCx0YDQsNC30LjRgtGM0JLRi9Cx0L7RgCgpOwogICAgfSk7Cn0K0KHQv9C40YHQvtC60JzQvtC00YPQu9C10LkucHJvdG90eXBlLtGB0L7Qt9C00LDRgtGM0JjQvdGC0LXRgNGE0LXQudGBID0gZnVuY3Rpb24oKQp7CiAgICAvLyDQn9C+0LzQtdGJ0LDQtdC8INGC0LDQsdC70LjRhtGDINCyIGRpdiDQtNC70Y8g0YDQtdCw0LvQuNC30LDRhtC40Lgg0L/RgNC+0LzQvtGC0LrQuC4KICAgIHRoaXMu0LjRhCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgdGhpcy7RgtCw0LHQu9C40YbQsCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRhYmxlIik7CiAgICB0aGlzLtC40YQuYXBwZW5kQ2hpbGQodGhpcy7RgtCw0LHQu9C40YbQsCk7Cn07CtCh0L/QuNGB0L7QutCc0L7QtNGD0LvQtdC5LnByb3RvdHlwZS7Qt9Cw0LTQsNGC0YzQktC40LQgPSBmdW5jdGlvbigpCnsKICAgIHRoaXMu0LjRhC5zdHlsZS5jc3NUZXh0ID0KYApvdmVyZmxvdzogYXV0bzsKaGVpZ2h0OiAxNS41ZW07CmJvcmRlcjogMXB4IHNvbGlkICNkZGQ7Ci8qCnBhZGRpbmc6IDAuNWVtOwptYXJnaW46IDAuNWVtOwoqLwpgOwogICAgdGhpcy7RgtCw0LHQu9C40YbQsC5zdHlsZS5jc3NUZXh0ID0KYApjb2xvcjogIzY2NjY2NjsKZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7CmN1cnNvcjogZGVmYXVsdDsKYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKYDsKfTsK0KHQv9C40YHQvtC60JzQvtC00YPQu9C10LkucHJvdG90eXBlLtC+0YfQuNGB0YLQuNGC0YwgPSBmdW5jdGlvbigpCnsKICAgIHdoaWxlICh0aGlzLtGC0LDQsdC70LjRhtCwLnJvd3MubGVuZ3RoKQogICAgewogICAgICAgIHRoaXMu0YLQsNCx0LvQuNGG0LAuZGVsZXRlUm93KDApOwogICAgfTsKfTsK0KHQv9C40YHQvtC60JzQvtC00YPQu9C10LkucHJvdG90eXBlLtC00L7QsdCw0LLQuNGC0YzQrdC70LXQvNC10L3RgiA9IGZ1bmN0aW9uKNGB0YLQsNGC0YPRgSwg0LjQvNGPKQp7CiAgICB2YXIg0YHRgtCw0YLRg9GBSFRNTCA9ICIiOwogICAgaWYgKNGB0YLQsNGC0YPRgSkKICAgIHsKICAgICAgICDRgdGC0LDRgtGD0YFIVE1MID0gImNoZWNrZWQiOwogICAgfQoKICAgIHZhciDRgNGP0LQgPSB0aGlzLtGC0LDQsdC70LjRhtCwLmluc2VydFJvdygpOwogICAgdmFyINGP0YfQtdC50LrQsCA9IDA7CgogICAgdmFyINC90L7QvNC10YAgPSDRgNGP0LQuaW5zZXJ0Q2VsbCjRj9GH0LXQudC60LArKyk7CiAgICDQvdC+0LzQtdGALmlubmVySFRNTCA9IHRoaXMu0YLQsNCx0LvQuNGG0LAucm93cy5sZW5ndGggLSAxOwogICAg0L3QvtC80LXRgC5zdHlsZS5jc3NUZXh0ID0gInBhZGRpbmc6IDAuNWVtOyI7CgogICAgdmFyINCy0LrQuyA9INGA0Y/QtC5pbnNlcnRDZWxsKNGP0YfQtdC50LrQsCsrKTsKICAgINCy0LrQuy5pbm5lckhUTUwgPSBgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBkaXNhYmxlZCBgICsg0YHRgtCw0YLRg9GBSFRNTCArIGA+PC9pbnB1dD5gOwogICAgCiAgICB2YXIg0L3QsNC30LLQsNC90LjQtSA9INGA0Y/QtC5pbnNlcnRDZWxsKNGP0YfQtdC50LrQsCsrKTsKICAgINC90LDQt9Cy0LDQvdC40LUuaW5uZXJIVE1MID0g0LjQvNGPOwogICAg0L3QsNC30LLQsNC90LjQtS5zdHlsZS5jc3NUZXh0ID0gInBhZGRpbmc6IDAuNWVtOyB3aWR0aDogMTAwJTsiOwp9OwrQodC/0LjRgdC+0LrQnNC+0LTRg9C70LXQuS5wcm90b3R5cGUu0L7RgtC+0LHRgNCw0LfQuNGC0YzQodC/0LjRgdC+0LogPSBmdW5jdGlvbijRgdC/0LjRgdC+0LopCnsKICAgIHRoaXMu0L7Rh9C40YHRgtC40YLRjCgpOwogICAgZm9yICh2YXIg0L3QvtC80LXRgCBpbiDRgdC/0LjRgdC+0LopCiAgICB7CiAgICAgICAgdmFyINGN0LvQtdC80LXQvdGCID0g0YHQv9C40YHQvtC6W9C90L7QvNC10YBdOwogICAgICAgIHZhciDRgdGC0LDRgtGD0YEgPSDRjdC70LXQvNC10L3RglswXTsKICAgICAgICB2YXIg0LjQvNGPID0g0Y3Qu9C10LzQtdC90YJbMV07CiAgICAgICAgdGhpcy7QtNC+0LHQsNCy0LjRgtGM0K3Qu9C10LzQtdC90YIo0YHRgtCw0YLRg9GBLCDQuNC80Y8pOwogICAgfQp9OwrQodC/0LjRgdC+0LrQnNC+0LTRg9C70LXQuS5wcm90b3R5cGUu0YPQu9Cw0LLQu9C40LLQsNGC0YzQktGL0LHQvtGA0K3Qu9C10LzQtdC90YLQsCA9IGZ1bmN0aW9uKNC90L7QvNC10YApCnsKICAgIHZhciDRjyA9IHRoaXM7CiAgICAKICAgIHZhciDRgNGP0LQgPSB0aGlzLtGC0LDQsdC70LjRhtCwLnJvd3Nb0L3QvtC80LXRgF0KICAgINGA0Y/QtC5vbmNsaWNrID0gZnVuY3Rpb24oKQogICAgewogICAgICAgINGPLtCy0YvQsdC+0YDQoNCw0L3QtdC1ID0g0Y8u0LLRi9Cx0L7RgDsKICAgICAgICDRjy7QstGL0LHQvtGAID0g0L3QvtC80LXRgDsKICAgICAgICDRjy7QstGL0LHRgNCw0LvQuC7Rg9Cy0LXQtNC+0LzQuNGC0YwoKTsKICAgIH07Cn07CtCh0L/QuNGB0L7QutCc0L7QtNGD0LvQtdC5LnByb3RvdHlwZS7Rg9C70LDQstC70LjQstCw0YLRjNCS0YvQsdC+0YAgPSBmdW5jdGlvbigpCnsKICAgIHRoaXMu0LLRi9Cx0L7RgNCg0LDQvdC10LUgPSBudWxsOwogICAgdGhpcy7QstGL0LHQvtGAID0gbnVsbDsKICAgIGZvciAodmFyINC90L7QvNC10YAgPSAwOyDQvdC+0LzQtdGAIDwgdGhpcy7RgtCw0LHQu9C40YbQsC5yb3dzLmxlbmd0aDsgKyvQvdC+0LzQtdGAKQogICAgewogICAgICAgIHRoaXMu0YPQu9Cw0LLQu9C40LLQsNGC0YzQktGL0LHQvtGA0K3Qu9C10LzQtdC90YLQsCjQvdC+0LzQtdGAKTsKICAgIH0KfTsK0KHQv9C40YHQvtC60JzQvtC00YPQu9C10LkucHJvdG90eXBlLtC+0YLQvtCx0YDQsNC30LjRgtGM0JLRi9Cx0L7RgCA9IGZ1bmN0aW9uKCkKewogICAgaWYgKHRoaXMu0LLRi9Cx0L7RgNCg0LDQvdC10LUgIT0gbnVsbCkKICAgIHsKICAgICAgICB2YXIg0YDRj9C0ID0gdGhpcy7RgtCw0LHQu9C40YbQsC5yb3dzW3RoaXMu0LLRi9Cx0L7RgNCg0LDQvdC10LVdOwogICAgICAgINGA0Y/QtC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBudWxsOwogICAgfQogICAgdmFyINGA0Y/QtCA9IHRoaXMu0YLQsNCx0LvQuNGG0LAucm93c1t0aGlzLtCy0YvQsdC+0YBdOwogICAg0YDRj9C0LnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICIjZWVlIjsKfTsK0KHQv9C40YHQvtC60JzQvtC00YPQu9C10LkucHJvdG90eXBlLtC30LDQtNCw0YLRjNCh0L/QuNGB0L7QuiA9IGZ1bmN0aW9uKNGB0L/QuNGB0L7QuikKewogICAgdGhpcy7QvtGC0L7QsdGA0LDQt9C40YLRjNCh0L/QuNGB0L7QuijRgdC/0LjRgdC+0LopOwogICAgdGhpcy7Rg9C70LDQstC70LjQstCw0YLRjNCS0YvQsdC+0YAoKTsKfTsK0KHQv9C40YHQvtC60JzQvtC00YPQu9C10LkucHJvdG90eXBlLtCy0YvQsdGA0LDRgtGMID0gZnVuY3Rpb24o0L3QvtC80LXRgCkKewogICAgdmFyINGA0Y/QtCA9IHRoaXMu0YLQsNCx0LvQuNGG0LAucm93c1vQvdC+0LzQtdGAXTsKICAgINGA0Y/QtC5zY3JvbGxJbnRvVmlldygpOwogICAg0YDRj9C0Lm9uY2xpY2soKTsKfTsK0KHQv9C40YHQvtC60JzQvtC00YPQu9C10LkucHJvdG90eXBlLtC+0LHQvdC+0LLQuNGC0YzQrdC70LXQvNC10L3RgiA9IGZ1bmN0aW9uKNC90L7QvNC10YAsINGB0YLQsNGC0YPRgSwg0LjQvNGPKQp7CiAgICB2YXIg0YDRj9C0ID0gdGhpcy7RgtCw0LHQu9C40YbQsC5yb3dzW9C90L7QvNC10YBdOwogICAg0YDRj9C0LmNlbGxzWzFdLmNoaWxkTm9kZXNbMF0uY2hlY2tlZCA9INGB0YLQsNGC0YPRgTsKICAgINGA0Y/QtC5jZWxsc1syXS5pbm5lckhUTUwgPSDQuNC80Y87Cn07CtCh0L/QuNGB0L7QutCc0L7QtNGD0LvQtdC5LnByb3RvdHlwZS7Rg9C00LDQu9C40YLRjNCt0LvQtdC80LXQvdGCID0gZnVuY3Rpb24o0L3QvtC80LXRgCkKewogICAgdmFyINGA0Y/QtCA9IHRoaXMu0YLQsNCx0LvQuNGG0LAucm93c1vQvdC+0LzQtdGAXTsKICAgINGA0Y/QtC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKNGA0Y/QtCk7Cn0KCi8qCiAqCiAqINCi0LXRgdGCINGB0L/QuNGB0LrQsCDQvNC+0LTRg9C70LXQuQogKgogKi8KCmZ1bmN0aW9uINCi0LXRgdGC0KHQv9C40YHQutCw0JzQvtC00YPQu9C10LkoKQp7CiAgICB0aGlzLtGB0L7Qt9C00LDRgtGM0JjQvdGC0LXRgNGE0LXQudGBKCk7Cn0K0KLQtdGB0YLQodC/0LjRgdC60LDQnNC+0LTRg9C70LXQuS5wcm90b3R5cGUu0YHQvtC30LTQsNGC0YzQmNC90YLQtdGA0YTQtdC50YEgPSBmdW5jdGlvbigpCnsKICAgIHZhciDRjyA9IHRoaXM7CiAgICAKICAgIHRoaXMu0LjRhCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgdGhpcy7RgdC/0LjRgdC+0LogPSBuZXcg0KHQv9C40YHQvtC60JzQvtC00YPQu9C10LkoKTsKICAgIHRoaXMu0LjRhC5hcHBlbmRDaGlsZCh0aGlzLtGB0L/QuNGB0L7Qui7QuNGEKTsKICAgIAogICAgdmFyINC80L7QtNGD0LvQuCA9IFsKICAgICAgICBbdHJ1ZSwgICLQvNGD0YDQvtC8LtC30LDQs9GA0YPQt9C60LBfMS4wLjAiXSwKICAgICAgICBbdHJ1ZSwgICLQvNGD0YDQvtC8LnV1aWRfMS4wLjAiXSwKICAgICAgICBbdHJ1ZSwgICLQo9Cy0LXQtNC+0LzQuNGC0LXQu9GMXzEuMC4wIl0sCiAgICAgICAgW2ZhbHNlLCAidWlraXRfMy4yLjAuY3NzIl0sCiAgICAgICAgW2ZhbHNlLCAidWlraXRfMy4yLjAuanMiXSwKICAgICAgICBbZmFsc2UsICLQn9Cw0L3QtdC70YzQo9C/0YDQsNCy0LvQtdC90LjRjy5VSUtpdCJdLAogICAgICAgIFtmYWxzZSwgItCf0LDQvdC10LvRjNCj0L/RgNCw0LLQu9C10L3QuNGPXzEuMC4wIl0sCiAgICBdOwogICAgCiAgICB0aGlzLtGB0L/QuNGB0L7Qui7Qt9Cw0LTQsNGC0YzQodC/0LjRgdC+0Loo0LzQvtC00YPQu9C4KTsKICAgIHRoaXMu0YHQv9C40YHQvtC6LtCy0YvQsdGA0LDRgtGMKDApOwogICAgCiAgICB0aGlzLtGB0L7Qt9C00LDRgtGM0JrQvdC+0L/QutGDKCLQktGL0LHRgNCw0YLRjCDQv9C+0YHQu9C10LTQvdC40LkiLCBmdW5jdGlvbigpewogICAgICAgIGNvbnNvbGUubG9nKCLQstGL0LHRgNCw0YLRjCIpOwogICAgICAgINGPLtGB0L/QuNGB0L7Qui7QstGL0LHRgNCw0YLRjCjQvNC+0LTRg9C70LgubGVuZ3RoIC0gMSk7CiAgICB9KTsKICAgIHRoaXMu0YHQvtC30LTQsNGC0YzQmtC90L7Qv9C60YMoItCe0LHQvdC+0LLQuNGC0Ywg0L/QvtGB0LvQtdC00L3QuNC5IiwgZnVuY3Rpb24oKXsKICAgICAgICDRjy7RgdC/0LjRgdC+0Lou0L7QsdC90L7QstC40YLRjNCt0LvQtdC80LXQvdGCKNC80L7QtNGD0LvQuC5sZW5ndGggLSAxLCB0cnVlLCAi0J3QvtCy0L7QtSDQuNC80Y8iKTsKICAgIH0pOwogICAgdGhpcy7RgdC+0LfQtNCw0YLRjNCa0L3QvtC/0LrRgygi0KPQtNCw0LvQuNGC0Ywg0L/QvtGB0LvQtdC00L3QuNC5IiwgZnVuY3Rpb24oKXsKICAgICAgICDRjy7RgdC/0LjRgdC+0Lou0YPQtNCw0LvQuNGC0YzQrdC70LXQvNC10L3RgijQvNC+0LTRg9C70LgubGVuZ3RoIC0gMSk7CiAgICB9KTsKICAgIHRoaXMu0YHQvtC30LTQsNGC0YzQmtC90L7Qv9C60YMoItCU0L7QsdCw0LLQuNGC0YwiLCBmdW5jdGlvbigpewogICAgICAgINGPLtGB0L/QuNGB0L7Qui7QtNC+0LHQsNCy0LjRgtGM0K3Qu9C10LzQtdC90YIodHJ1ZSwgItCd0L7QstGL0LktNTk5Iik7CiAgICAgICAgdmFyINC90L7QvNC10YAgPSDRjy7RgdC/0LjRgdC+0Lou0YLQsNCx0LvQuNGG0LAucm93cy5sZW5ndGggLSAxOwogICAgICAgINGPLtGB0L/QuNGB0L7Qui7Rg9C70LDQstC70LjQstCw0YLRjNCS0YvQsdC+0YDQrdC70LXQvNC10L3RgtCwKNC90L7QvNC10YApOwogICAgICAgINGPLtGB0L/QuNGB0L7Qui7QstGL0LHRgNCw0YLRjCjQvdC+0LzQtdGAKTsKICAgIH0pOwp9OwrQotC10YHRgtCh0L/QuNGB0LrQsNCc0L7QtNGD0LvQtdC5LnByb3RvdHlwZS7RgdC+0LfQtNCw0YLRjNCa0L3QvtC/0LrRgyA9IGZ1bmN0aW9uKNC40LzRjywg0YDQtdCw0LrRhtC40Y8pCnsKICAgIHZhciDQutC90L7Qv9C60LAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsKICAgINC60L3QvtC/0LrQsC5pbm5lckhUTUwgPSDQuNC80Y87CiAgICB0aGlzLtC40YQuYXBwZW5kQ2hpbGQo0LrQvdC+0L/QutCwKTsKICAgINC60L3QvtC/0LrQsC5vbmNsaWNrID0g0YDQtdCw0LrRhtC40Y87Cn07CgovKgogKgogKiDQodCy0L7QudGB0YLQstCwINC80L7QtNGD0LvRjwogKgogKi8KCmZ1bmN0aW9uINCh0LLQvtC50YHRgtCy0LDQnNC+0LTRg9C70Y8oKQp7CiAgICB0aGlzLtGB0L7Qt9C00LDRgtGM0JjQvdGC0LXRgNGE0LXQudGBKCk7CiAgICB0aGlzLtC40LfQvNC10L3QuNC70LjQndC+0LzQtdGAID0gbmV3INCj0LLQtdC00L7QvNC40YLQtdC70YwoKTsKICAgIHRoaXMu0L3QsNGB0YLRgNC+0LjRgtGM0J3QvtC80LXRgCgpOwogICAgdGhpcy7QuNC30LzQtdC90LjQu9C40JjQvNGPID0gbmV3INCj0LLQtdC00L7QvNC40YLQtdC70YwoKTsKICAgIHRoaXMu0L3QsNGB0YLRgNC+0LjRgtGM0JjQvNGPKCk7CiAgICB0aGlzLtC40LfQvNC10L3QuNC70LjQodGC0LDRgtGD0YEgPSBuZXcg0KPQstC10LTQvtC80LjRgtC10LvRjCgpOwogICAgdGhpcy7QvdCw0YHRgtGA0L7QuNGC0YzQodGC0LDRgtGD0YEoKTsKICAgIHRoaXMu0YPQtNCw0LvQuNGC0YwgPSBuZXcg0KPQstC10LTQvtC80LjRgtC10LvRjCgpOwogICAgdGhpcy7QvdCw0YHRgtGA0L7QuNGC0YzQo9C00LDQu9C10L3QuNC1KCk7Cn0K0KHQstC+0LnRgdGC0LLQsNCc0L7QtNGD0LvRjy5wcm90b3R5cGUu0YHQvtC30LTQsNGC0YzQmNC90YLQtdGA0YTQtdC50YEgPSBmdW5jdGlvbigpCnsKICAgIHRoaXMu0LjRhCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgdGhpcy7QuNGELnN0eWxlLmNzc1RleHQgPQpgCmJvcmRlcjogMXB4IHNvbGlkICNkZGQ7Ci8qCnBhZGRpbmc6IDAuNWVtOwptYXJnaW46IDAuNWVtOwoqLwpjb2xvcjogIzY2NjY2NjsKZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7CmA7CiAgICB0aGlzLtGC0LDQsdC70LjRhtCwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGFibGUiKTsKICAgIHRoaXMu0LjRhC5hcHBlbmRDaGlsZCh0aGlzLtGC0LDQsdC70LjRhtCwKTsKfTsKT2JqZWN0LmRlZmluZVByb3BlcnR5KNCh0LLQvtC50YHRgtCy0LDQnNC+0LTRg9C70Y8ucHJvdG90eXBlLCAi0L3QvtC80LXRgCIsIHsKICAgIGdldDogZnVuY3Rpb24oKQogICAgewogICAgICAgIHJldHVybiBOdW1iZXIodGhpcy7Qv9C+0LvQtdCd0L7QvNC10YAudmFsdWUpOwogICAgfSwKICAgIHNldDogZnVuY3Rpb24o0LfQvdCw0YfQtdC90LjQtSkKICAgIHsKICAgICAgICB0aGlzLtC/0L7Qu9C10J3QvtC80LXRgC52YWx1ZSA9INC30L3QsNGH0LXQvdC40LU7CiAgICB9Cn0pOwrQodCy0L7QudGB0YLQstCw0JzQvtC00YPQu9GPLnByb3RvdHlwZS7QvdCw0YHRgtGA0L7QuNGC0YzQndC+0LzQtdGAID0gZnVuY3Rpb24oKQp7CiAgICB2YXIg0Y8gPSB0aGlzOwogICAgCiAgICB2YXIg0YDRj9C0ID0gdGhpcy7RgtCw0LHQu9C40YbQsC5pbnNlcnRSb3coKTsKICAgIHZhciDRj9GH0LXQudC60LAgPSAwOwoKICAgIHZhciDQutC70Y7RhyA9INGA0Y/QtC5pbnNlcnRDZWxsKNGP0YfQtdC50LrQsCsrKTsKICAgINC60LvRjtGHLmlubmVySFRNTCA9ICLQndC+0LzQtdGAOiI7CiAgICDQutC70Y7Rhy5zdHlsZS5jc3NUZXh0ID0gInBhZGRpbmc6IDAuNWVtOyI7CgogICAgdmFyINC30L3QsNGH0LXQvdC40LUgPSDRgNGP0LQuaW5zZXJ0Q2VsbCjRj9GH0LXQudC60LArKyk7CiAgICB0aGlzLtC/0L7Qu9C10J3QvtC80LXRgCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CiAgICB0aGlzLtC/0L7Qu9C10J3QvtC80LXRgC50eXBlID0gIm51bWJlciI7CiAgICB0aGlzLtC/0L7Qu9C10J3QvtC80LXRgC5taW4gPSAwOwogICAg0LfQvdCw0YfQtdC90LjQtS5zdHlsZS5jc3NUZXh0ID0gIndpZHRoOiAxMDAlOyBwYWRkaW5nOiAwLjVlbTsiOwogICAgdGhpcy7Qv9C+0LvQtdCd0L7QvNC10YAuc3R5bGUuY3NzVGV4dCA9ICJ3aWR0aDogMTAwJTsiOwogICAg0LfQvdCw0YfQtdC90LjQtS5hcHBlbmRDaGlsZCh0aGlzLtC/0L7Qu9C10J3QvtC80LXRgCk7CiAgICAKICAgIHRoaXMu0L/QvtC70LXQndC+0LzQtdGALm9uaW5wdXQgPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAg0Y8u0LjQt9C80LXQvdC40LvQuNCd0L7QvNC10YAu0YPQstC10LTQvtC80LjRgtGMKCk7CiAgICB9Owp9OwpPYmplY3QuZGVmaW5lUHJvcGVydHko0KHQstC+0LnRgdGC0LLQsNCc0L7QtNGD0LvRjy5wcm90b3R5cGUsICLQuNC80Y8iLCB7CiAgICBnZXQ6IGZ1bmN0aW9uKCkKICAgIHsKICAgICAgICByZXR1cm4gdGhpcy7Qv9C+0LvQtdCY0LzRjy52YWx1ZTsKICAgIH0sCiAgICBzZXQ6IGZ1bmN0aW9uKNC30L3QsNGH0LXQvdC40LUpCiAgICB7CiAgICAgICAgdGhpcy7Qv9C+0LvQtdCY0LzRjy52YWx1ZSA9INC30L3QsNGH0LXQvdC40LU7CiAgICB9Cn0pOwrQodCy0L7QudGB0YLQstCw0JzQvtC00YPQu9GPLnByb3RvdHlwZS7QvdCw0YHRgtGA0L7QuNGC0YzQmNC80Y8gPSBmdW5jdGlvbigpCnsKICAgIHZhciDRjyA9IHRoaXM7CgogICAgdmFyINGA0Y/QtCA9IHRoaXMu0YLQsNCx0LvQuNGG0LAuaW5zZXJ0Um93KCk7CiAgICB2YXIg0Y/Rh9C10LnQutCwID0gMDsKCiAgICB2YXIg0LrQu9GO0YcgPSDRgNGP0LQuaW5zZXJ0Q2VsbCjRj9GH0LXQudC60LArKyk7CiAgICDQutC70Y7Rhy5pbm5lckhUTUwgPSAi0JjQvNGPOiI7CiAgICDQutC70Y7Rhy5zdHlsZS5jc3NUZXh0ID0gInBhZGRpbmc6IDAuNWVtOyI7CgogICAgdmFyINC30L3QsNGH0LXQvdC40LUgPSDRgNGP0LQuaW5zZXJ0Q2VsbCjRj9GH0LXQudC60LArKyk7CiAgICB0aGlzLtC/0L7Qu9C10JjQvNGPID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKICAgINC30L3QsNGH0LXQvdC40LUuc3R5bGUuY3NzVGV4dCA9ICJ3aWR0aDogMTAwJTsgcGFkZGluZzogMC41ZW07IjsKICAgIHRoaXMu0L/QvtC70LXQmNC80Y8uc3R5bGUuY3NzVGV4dCA9ICJ3aWR0aDogMTAwJTsiOwogICAg0LfQvdCw0YfQtdC90LjQtS5hcHBlbmRDaGlsZCh0aGlzLtC/0L7Qu9C10JjQvNGPKTsKCiAgICB0aGlzLtC/0L7Qu9C10JjQvNGPLm9uaW5wdXQgPSBmdW5jdGlvbigpCiAgICB7CiAgICAgICAg0Y8u0LjQt9C80LXQvdC40LvQuNCY0LzRjy7Rg9Cy0LXQtNC+0LzQuNGC0YwoKTsKICAgIH07Cn07Ck9iamVjdC5kZWZpbmVQcm9wZXJ0eSjQodCy0L7QudGB0YLQstCw0JzQvtC00YPQu9GPLnByb3RvdHlwZSwgItGB0YLQsNGC0YPRgSIsIHsKICAgIGdldDogZnVuY3Rpb24oKQogICAgewogICAgICAgIHJldHVybiB0aGlzLtC/0LXRgNC10LrQu9GO0YfQsNGC0LXQu9GMLmNoZWNrZWQ7CiAgICB9LAogICAgc2V0OiBmdW5jdGlvbijQt9C90LDRh9C10L3QuNC1KQogICAgewogICAgICAgIHRoaXMu0L/QtdGA0LXQutC70Y7Rh9Cw0YLQtdC70YwuY2hlY2tlZCA9INC30L3QsNGH0LXQvdC40LU7CiAgICB9Cn0pOwrQodCy0L7QudGB0YLQstCw0JzQvtC00YPQu9GPLnByb3RvdHlwZS7QvdCw0YHRgtGA0L7QuNGC0YzQodGC0LDRgtGD0YEgPSBmdW5jdGlvbigpCnsKICAgIHZhciDRjyA9IHRoaXM7CiAgICAKICAgIHZhciDRgNGP0LQgPSB0aGlzLtGC0LDQsdC70LjRhtCwLmluc2VydFJvdygpOwogICAgdmFyINGP0YfQtdC50LrQsCA9IDA7CiAgICAKICAgIHZhciDQutC70Y7RhyA9INGA0Y/QtC5pbnNlcnRDZWxsKNGP0YfQtdC50LrQsCsrKTsKICAgINC60LvRjtGHLmlubmVySFRNTCA9ICLQmNGB0L/QvtC70L3Rj9GC0Yw6IjsKICAgINC60LvRjtGHLnN0eWxlLmNzc1RleHQgPSAicGFkZGluZzogMC41ZW07IjsKCiAgICB2YXIg0LfQvdCw0YfQtdC90LjQtSA9INGA0Y/QtC5pbnNlcnRDZWxsKNGP0YfQtdC50LrQsCsrKTsKICAgIHRoaXMu0L/QtdGA0LXQutC70Y7Rh9Cw0YLQtdC70YwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOwogICAgdGhpcy7Qv9C10YDQtdC60LvRjtGH0LDRgtC10LvRjC50eXBlID0gImNoZWNrYm94IjsKICAgIHRoaXMu0L/QtdGA0LXQutC70Y7Rh9Cw0YLQtdC70Ywuc3R5bGUuY3NzVGV4dCA9ICJwYWRkaW5nOiAwLjVlbTsiOwogICAg0LfQvdCw0YfQtdC90LjQtS5hcHBlbmRDaGlsZCh0aGlzLtC/0LXRgNC10LrQu9GO0YfQsNGC0LXQu9GMKTsKCiAgICB0aGlzLtC/0LXRgNC10LrQu9GO0YfQsNGC0LXQu9GMLm9uY2hhbmdlID0gZnVuY3Rpb24oKQogICAgewogICAgICAgINGPLtC40LfQvNC10L3QuNC70LjQodGC0LDRgtGD0YEu0YPQstC10LTQvtC80LjRgtGMKCk7CiAgICB9OwogICAg0LrQu9GO0Ycub25jbGljayA9IGZ1bmN0aW9uKCkKICAgIHsKICAgICAgICDRjy7Qv9C10YDQtdC60LvRjtGH0LDRgtC10LvRjC5jaGVja2VkID0gIdGPLtC/0LXRgNC10LrQu9GO0YfQsNGC0LXQu9GMLmNoZWNrZWQ7CiAgICAgICAg0Y8u0LjQt9C80LXQvdC40LvQuNCh0YLQsNGC0YPRgS7Rg9Cy0LXQtNC+0LzQuNGC0YwoKTsKICAgIH07Cn07CtCh0LLQvtC50YHRgtCy0LDQnNC+0LTRg9C70Y8ucHJvdG90eXBlLtC90LDRgdGC0YDQvtC40YLRjNCj0LTQsNC70LXQvdC40LUgPSBmdW5jdGlvbigpCnsKICAgIHZhciDRjyA9IHRoaXM7CiAgICAKICAgIHZhciDRgNGP0LQgPSB0aGlzLtGC0LDQsdC70LjRhtCwLmluc2VydFJvdygpOwogICAgdmFyINGP0YfQtdC50LrQsCA9IDA7CgogICAg0YDRj9C0Lmluc2VydENlbGwo0Y/Rh9C10LnQutCwKyspOwogICAgdmFyINC30L3QsNGH0LXQvdC40LUgPSDRgNGP0LQuaW5zZXJ0Q2VsbCjRj9GH0LXQudC60LArKyk7CgogICAgdGhpcy7QutC90L7Qv9C60LDQo9C00LDQu9C40YLRjCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpOwogICAgdGhpcy7QutC90L7Qv9C60LDQo9C00LDQu9C40YLRjC5pbm5lckhUTUwgPSAi0KPQtNCw0LvQuNGC0YwiOwogICAgdGhpcy7QutC90L7Qv9C60LDQo9C00LDQu9C40YLRjC5jbGFzc0xpc3QuYWRkKCLQvNGD0YDQvtC8LdC60L3QvtC/0LrQsCIpOwogICAg0LfQvdCw0YfQtdC90LjQtS5hcHBlbmRDaGlsZCh0aGlzLtC60L3QvtC/0LrQsNCj0LTQsNC70LjRgtGMKTsKICAgIAogICAgdGhpcy7QutC90L7Qv9C60LDQo9C00LDQu9C40YLRjC5vbmNsaWNrID0gZnVuY3Rpb24oKQogICAgewogICAgICAgINGPLtGD0LTQsNC70LjRgtGMLtGD0LLQtdC00L7QvNC40YLRjCgpOyAgCiAgICB9Owp9OwoKLyoKICoKICog0KLQtdGB0YIg0YHQstC+0LnRgdGC0LLQsCDQvNC+0LTRg9C70Y8KICoKICovCiAKZnVuY3Rpb24g0KLQtdGB0YLQodCy0L7QudGB0YLQstCw0JzQvtC00YPQu9GPKCkKewogICAgdGhpcy7RgdC+0LfQtNCw0YLRjNCY0L3RgtC10YDRhNC10LnRgSgpOwp9CtCi0LXRgdGC0KHQstC+0LnRgdGC0LLQsNCc0L7QtNGD0LvRjy5wcm90b3R5cGUu0YHQvtC30LTQsNGC0YzQmNC90YLQtdGA0YTQtdC50YEgPSBmdW5jdGlvbigpCnsKICAgIHZhciDRjyA9IHRoaXM7CiAgICAKICAgIHRoaXMu0LjRhCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgdGhpcy7RgdCy0L7QudGB0YLQstCwID0gbmV3INCh0LLQvtC50YHRgtCy0LDQnNC+0LTRg9C70Y8oKTsKICAgIHRoaXMu0LjRhC5hcHBlbmRDaGlsZCh0aGlzLtGB0LLQvtC50YHRgtCy0LAu0LjRhCk7CgogICAgdGhpcy7RgdCy0L7QudGB0YLQstCwLtC40LfQvNC10L3QuNC70LjQndC+0LzQtdGALtC/0L7QtNC/0LjRgdCw0YLRjChmdW5jdGlvbigpewogICAgICAgIGNvbnNvbGUubG9nKCLQvdC+0LzQtdGAOiAnIiArINGPLtGB0LLQvtC50YHRgtCy0LAu0L3QvtC80LXRgCArICInIik7CiAgICB9KTsKICAgIHRoaXMu0YHQstC+0LnRgdGC0LLQsC7QuNC30LzQtdC90LjQu9C40JjQvNGPLtC/0L7QtNC/0LjRgdCw0YLRjChmdW5jdGlvbigpewogICAgICAgIGNvbnNvbGUubG9nKCLQuNC80Y86ICciICsg0Y8u0YHQstC+0LnRgdGC0LLQsC7QuNC80Y8gKyAiJyIpOwogICAgfSk7CiAgICB0aGlzLtGB0LLQvtC50YHRgtCy0LAu0LjQt9C80LXQvdC40LvQuNCh0YLQsNGC0YPRgS7Qv9C+0LTQv9C40YHQsNGC0YwoZnVuY3Rpb24oKXsKICAgICAgICBjb25zb2xlLmxvZygi0YHRgtCw0YLRg9GBOiAnIiArINGPLtGB0LLQvtC50YHRgtCy0LAu0YHRgtCw0YLRg9GBICsgIiciKTsKICAgIH0pOwogICAgdGhpcy7RgdCy0L7QudGB0YLQstCwLtGD0LTQsNC70LjRgtGMLtC/0L7QtNC/0LjRgdCw0YLRjChmdW5jdGlvbigpewogICAgICAgIGNvbnNvbGUubG9nKCLRg9C00LDQu9C40YLRjCDQvNC+0LTRg9C70YwgJyIgKyDRjy7RgdCy0L7QudGB0YLQstCwLtC40LzRjyArICInIik7CiAgICB9KTsKfTsKCi8qCiAqCiAqINCc0L7QtNGD0LvQuAogKgogKi8KCmZ1bmN0aW9uINCc0L7QtNGD0LvQuCgpCnsKICAgIAp9CtCc0L7QtNGD0LvQuC5wcm90b3R5cGUu0YHQstC+0LnRgdGC0LLQsCA9IGZ1bmN0aW9uKNC90L7QvNC10YApCnsKICAgIHJldHVybiBtdXJvbS5tb2R1bGVQcm9wZXJ0aWVzKNC90L7QvNC10YApOwp9OwrQnNC+0LTRg9C70LgucHJvdG90eXBlLtC30LDQtNCw0YLRjNCh0LLQvtC50YHRgtCy0LAgPSBmdW5jdGlvbijQvdC+0LzQtdGALCDRgdCy0L7QudGB0YLQstCwKQp7CiAgICB2YXIg0LwgPSDQvNGD0YDQvtC8LtC80L7QtNGD0LvQuFvQvdC+0LzQtdGAXTsKICAgINC8WzJdID0g0YHQstC+0LnRgdGC0LLQsDsKfTsK0JzQvtC00YPQu9C4LnByb3RvdHlwZS7RgdGC0LDRgtGD0YEgPSBmdW5jdGlvbijQvdC+0LzQtdGAKQp7CiAgICByZXR1cm4gbXVyb20ubW9kdWxlU3RhdHVzKNC90L7QvNC10YApOwp9OwrQnNC+0LTRg9C70LgucHJvdG90eXBlLtC30LDQtNCw0YLRjNCh0YLQsNGC0YPRgSA9IGZ1bmN0aW9uKNC90L7QvNC10YAsINGB0YLQsNGC0YPRgSkKewogICAgdmFyINGB0LIgPSB0aGlzLtGB0LLQvtC50YHRgtCy0LAo0L3QvtC80LXRgCk7CiAgICDRgdCyWyJzdGF0dXMiXSA9INGB0YLQsNGC0YPRgTsKICAgIHRoaXMu0LfQsNC00LDRgtGM0KHQstC+0LnRgdGC0LLQsCjQvdC+0LzQtdGALCDRgdCyKTsKfTsK0JzQvtC00YPQu9C4LnByb3RvdHlwZS7Qt9Cw0LTQsNGC0YzQmNC80Y8gPSBmdW5jdGlvbijQvdC+0LzQtdGALCDQuNC80Y8pCnsKICAgIHZhciDQvCA9INC80YPRgNC+0Lwu0LzQvtC00YPQu9C4W9C90L7QvNC10YBdOwogICAg0LxbMF0gPSDQuNC80Y87Cn07CtCc0L7QtNGD0LvQuC5wcm90b3R5cGUu0LfQsNC00LDRgtGM0J3QvtC80LXRgCA9IGZ1bmN0aW9uKNGB0YLQsNGA0YvQuSwg0L3QvtCy0YvQuSkKewogICAgY29uc29sZS5sb2coItC30LDQtNCw0YLRjCDQvdC+0LzQtdGALiAnIiArINGB0YLQsNGA0YvQuSArICInIC0+ICciICsg0L3QvtCy0YvQuSArICInIik7CiAgICB2YXIg0LzQvtC00YPQu9GMID0g0LzRg9GA0L7QvC7QvNC+0LTRg9C70Lhb0YHRgtCw0YDRi9C5XTsKICAgIC8vINCj0LTQsNC70Y/QtdC8INGB0YLQsNGA0YPRjiDQt9Cw0L/QuNGB0YwuCiAgICDQvNGD0YDQvtC8LtC80L7QtNGD0LvQuC5zcGxpY2Uo0YHRgtCw0YDRi9C5LCAxKTsKICAgIC8vINCU0L7QsdCw0LLQu9GP0LXQvCDQvNC+0LTRg9C70Ywg0LIg0L3QvtCy0YPRjiDQv9C+0LfQuNGG0LjRji4KICAgINC80YPRgNC+0Lwu0LzQvtC00YPQu9C4LnNwbGljZSjQvdC+0LLRi9C5LCAwLCDQvNC+0LTRg9C70YwpOwp9OwoKLyoKICoKICog0J/QsNC90LXQu9GMINGD0L/RgNCw0LLQu9C10L3QuNGPCiAqCiAqLwoKZnVuY3Rpb24g0J/QsNC90LXQu9GM0KPQv9GA0LDQstC70LXQvdC40Y8oKQp7CiAgICB0aGlzLtC80L7QtNGD0LvQuCA9IG5ldyDQnNC+0LTRg9C70LgoKTsKICAgIHRoaXMu0YHQvtC30LTQsNGC0YzQntGB0L3QvtCy0YMoKTsKICAgIHRoaXMu0YHQvtC30LTQsNGC0YzQodC+0YXRgNCw0L3QtdC90LjQtdCh0LrQsNGH0LjQstCw0L3QuNC10JTQvtCx0LDQstC70LXQvdC40LUoKTsKICAgIHRoaXMu0YHQvtC30LTQsNGC0YzQodC/0LjRgdC+0LrQnNC+0LTRg9C70LXQuSgpOwogICAgdGhpcy7RgdC+0LfQtNCw0YLRjNCh0LLQvtC50YHRgtCy0LDQnNC+0LTRg9C70Y8oKTsKfQrQn9Cw0L3QtdC70YzQo9C/0YDQsNCy0LvQtdC90LjRjy5wcm90b3R5cGUu0YHQvtC30LTQsNGC0YzQntCx0ZHRgNGC0LrRg9Cv0YfQtdC50LrRgyA9IGZ1bmN0aW9uKCkKewogICAgdmFyINC+0LHRkdGA0YLQutCwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGFibGUiKTsKICAgINC+0LHRkdGA0YLQutCwLnN0eWxlLmNzc1RleHQgPSAid2lkdGg6IDEwMCU7IjsKICAgIHZhciDRgNGP0LQgPSDQvtCx0ZHRgNGC0LrQsC5pbnNlcnRSb3coKTsKICAgIHZhciDRj9GH0LXQudC60LAgPSDRgNGP0LQuaW5zZXJ0Q2VsbCgpOwogICAgcmV0dXJuIFvQvtCx0ZHRgNGC0LrQsCwg0Y/Rh9C10LnQutCwXTsKfTsK0J/QsNC90LXQu9GM0KPQv9GA0LDQstC70LXQvdC40Y8ucHJvdG90eXBlLtGB0L7Qt9C00LDRgtGM0J7RgdC90L7QstGDID0gZnVuY3Rpb24oKQp7CiAgICB0aGlzLtC40YQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0YWJsZSIpOwogICAgdGhpcy7QuNGELnN0eWxlLmNzc1RleHQgPSAid2lkdGg6IDEwMCU7IjsKICAgIHZhciDRgNGP0LQgPSB0aGlzLtC40YQuaW5zZXJ0Um93KCk7CiAgICB0aGlzLtC70LXQstC+ID0g0YDRj9C0Lmluc2VydENlbGwoKTsKICAgIHRoaXMu0LvQtdCy0L4uc3R5bGUuY3NzVGV4dCA9ICJ3aWR0aDogMTAwJTsiOwogICAgdmFyINC/0YDQsNCy0L4gPSDRgNGP0LQuaW5zZXJ0Q2VsbCgpOwogICAg0L/RgNCw0LLQvi5zdHlsZS5jc3NUZXh0ID0gImhlaWdodDogMTAwJTsiOwogICAgdGhpcy7QutC90L7Qv9C60LggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0YWJsZSIpOwogICAgdGhpcy7QutC90L7Qv9C60Lguc3R5bGUuY3NzVGV4dCA9ICJoZWlnaHQ6IDEwMCU7IjsKICAgINC/0YDQsNCy0L4uYXBwZW5kQ2hpbGQodGhpcy7QutC90L7Qv9C60LgpOwogICAg0YDRj9C0ID0gdGhpcy7QuNGELmluc2VydFJvdygpOwogICAgdGhpcy7QvdC40LcgPSDRgNGP0LQuaW5zZXJ0Q2VsbCgpOwogICAgdGhpcy7QvdC40LcuY29sU3BhbiA9IDI7Cn07CtCf0LDQvdC10LvRjNCj0L/RgNCw0LLQu9C10L3QuNGPLnByb3RvdHlwZS7RgdC+0LfQtNCw0YLRjNCh0L/QuNGB0L7QutCc0L7QtNGD0LvQtdC5ID0gZnVuY3Rpb24oKQp7CiAgICB0aGlzLtGB0L/QuNGB0L7QuiA9IG5ldyDQodC/0LjRgdC+0LrQnNC+0LTRg9C70LXQuSgpOwogICAgdGhpcy7RgdC/0LjRgdC+0Lou0LfQsNC00LDRgtGM0KHQv9C40YHQvtC6KHRoaXMu0YHQv9C40YHQvtC60JzQvtC00YPQu9C10LkoKSk7CiAgICB2YXIg0L7RjyA9IHRoaXMu0YHQvtC30LTQsNGC0YzQntCx0ZHRgNGC0LrRg9Cv0YfQtdC50LrRgygpOwogICAgdGhpcy7Qu9C10LLQvi5hcHBlbmRDaGlsZCjQvtGPWzBdKTsKICAgINC+0Y9bMV0uYXBwZW5kQ2hpbGQodGhpcy7RgdC/0LjRgdC+0Lou0LjRhCk7Cn07CtCf0LDQvdC10LvRjNCj0L/RgNCw0LLQu9C10L3QuNGPLnByb3RvdHlwZS7RgdC+0LfQtNCw0YLRjNCh0LLQvtC50YHRgtCy0LDQnNC+0LTRg9C70Y8gPSBmdW5jdGlvbigpCnsKICAgIHRoaXMu0YHQstC+0LnRgdGC0LLQsCA9IG5ldyDQodCy0L7QudGB0YLQstCw0JzQvtC00YPQu9GPKCk7CiAgICDQvtGPID0gdGhpcy7RgdC+0LfQtNCw0YLRjNCe0LHRkdGA0YLQutGD0K/Rh9C10LnQutGDKCk7CiAgICB0aGlzLtC90LjQty5hcHBlbmRDaGlsZCjQvtGPWzBdKTsKICAgINC+0Y9bMV0uYXBwZW5kQ2hpbGQodGhpcy7RgdCy0L7QudGB0YLQstCwLtC40YQpOwp9OwrQn9Cw0L3QtdC70YzQo9C/0YDQsNCy0LvQtdC90LjRjy5wcm90b3R5cGUu0YHQv9C40YHQvtC60JzQvtC00YPQu9C10LkgPSBmdW5jdGlvbigpCnsKICAgIHZhciDRgdC/0LjRgdC+0LogPSBbXTsKICAgIGZvciAodmFyINC90L7QvNC10YAgaW4g0LzRg9GA0L7QvC7QvNC+0LTRg9C70LgpCiAgICB7CiAgICAgICAgdmFyINC8ID0g0LzRg9GA0L7QvC7QvNC+0LTRg9C70Lhb0L3QvtC80LXRgF07CiAgICAgICAgdmFyINGB0YLQsNGC0YPRgSA9IHRoaXMu0LzQvtC00YPQu9C4LtGB0YLQsNGC0YPRgSjQvdC+0LzQtdGAKTsKICAgICAgICB2YXIg0LjQvNGPID0g0LxbMF07CiAgICAgICAgdmFyINGN0LvQtdC80LXQvdGCID0gW9GB0YLQsNGC0YPRgSwg0LjQvNGPXTsKICAgICAgICDRgdC/0LjRgdC+0LoucHVzaCjRjdC70LXQvNC10L3Rgik7CiAgICB9CiAgICAKICAgIHJldHVybiDRgdC/0LjRgdC+0Lo7Cn07CtCf0LDQvdC10LvRjNCj0L/RgNCw0LLQu9C10L3QuNGPLnByb3RvdHlwZS7RgdC+0LfQtNCw0YLRjNCa0L3QvtC/0LrRgyA9IGZ1bmN0aW9uKNC40LzRjywg0YPQstC10LTQvtC80LjRgtC10LvRjCkKewogICAgdmFyINC60L3QvtC/0LrQsCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpOwogICAg0LrQvdC+0L/QutCwLmlubmVySFRNTCA9INC40LzRjzsKICAgINC60L3QvtC/0LrQsC5zdHlsZS5jc3NUZXh0ID0gIndpZHRoOiAxMDAlOyI7CiAgICDQutC90L7Qv9C60LAuY2xhc3NMaXN0LmFkZCgi0LzRg9GA0L7QvC3QutC90L7Qv9C60LAiKTsKICAgINC60L3QvtC/0LrQsC5vbmNsaWNrID0gZnVuY3Rpb24oKQogICAgewogICAgICAgINGD0LLQtdC00L7QvNC40YLQtdC70Ywu0YPQstC10LTQvtC80LjRgtGMKCk7ICAKICAgIH07CiAgICAKICAgIHJldHVybiDQutC90L7Qv9C60LA7Cn07CtCf0LDQvdC10LvRjNCj0L/RgNCw0LLQu9C10L3QuNGPLnByb3RvdHlwZS7RgdC+0LfQtNCw0YLRjNCh0L7RhdGA0LDQvdC10L3QuNC10KHQutCw0YfQuNCy0LDQvdC40LXQlNC+0LHQsNCy0LvQtdC90LjQtSA9IGZ1bmN0aW9uKCkKewogICAgdmFyINGPID0gdGhpczsKICAgIAogICAgdmFyINGA0Y/QtCA9IHRoaXMu0LrQvdC+0L/QutC4Lmluc2VydFJvdygpOwogICAgdmFyINGP0YfQtdC50LrQsCA9INGA0Y/QtC5pbnNlcnRDZWxsKCk7CiAgICB0aGlzLtGB0L7RhdGA0LDQvdC40YLRjCA9IG5ldyDQo9Cy0LXQtNC+0LzQuNGC0LXQu9GMKCk7CiAgICB0aGlzLtC60L3QvtC/0LrQsNCh0L7RhdGA0LDQvdC40YLRjCA9IHRoaXMu0YHQvtC30LTQsNGC0YzQmtC90L7Qv9C60YMoItCh0L7RhdGA0LDQvdC40YLRjCIsIHRoaXMu0YHQvtGF0YDQsNC90LjRgtGMKTsKICAgINGP0YfQtdC50LrQsC5hcHBlbmRDaGlsZCh0aGlzLtC60L3QvtC/0LrQsNCh0L7RhdGA0LDQvdC40YLRjCk7CiAgICAKICAgINGA0Y/QtCA9IHRoaXMu0LrQvdC+0L/QutC4Lmluc2VydFJvdygpOwogICAg0Y/Rh9C10LnQutCwID0g0YDRj9C0Lmluc2VydENlbGwoKTsKICAgIHRoaXMu0YHQutCw0YfQsNGC0YwgPSBuZXcg0KPQstC10LTQvtC80LjRgtC10LvRjCgpOwogICAgdGhpcy7QutC90L7Qv9C60LDQodC60LDRh9Cw0YLRjCA9IHRoaXMu0YHQvtC30LTQsNGC0YzQmtC90L7Qv9C60YMoItCh0LrQsNGH0LDRgtGMIiwgdGhpcy7RgdC60LDRh9Cw0YLRjCk7CiAgICDRj9GH0LXQudC60LAuYXBwZW5kQ2hpbGQodGhpcy7QutC90L7Qv9C60LDQodC60LDRh9Cw0YLRjCk7CiAgICAKICAgIC8vINCf0YDQvtCx0LXQuy4KICAgINGA0Y/QtCA9IHRoaXMu0LrQvdC+0L/QutC4Lmluc2VydFJvdygpOwogICAg0Y/Rh9C10LnQutCwID0g0YDRj9C0Lmluc2VydENlbGwoKTsKICAgINGP0YfQtdC50LrQsC5zdHlsZS5jc3NUZXh0ID0gImhlaWdodDogMTAwJTsiOwoKICAgINGA0Y/QtCA9IHRoaXMu0LrQvdC+0L/QutC4Lmluc2VydFJvdygpOwogICAg0Y/Rh9C10LnQutCwID0g0YDRj9C0Lmluc2VydENlbGwoKTsKICAgIHRoaXMu0LTQvtCx0LDQstC40YLRjCA9IG5ldyDQo9Cy0LXQtNC+0LzQuNGC0LXQu9GMKCk7CiAgICB0aGlzLtC60L3QvtC/0LrQsNCU0L7QsdCw0LLQuNGC0YwgPSB0aGlzLtGB0L7Qt9C00LDRgtGM0JrQvdC+0L/QutGDKCLQlNC+0LHQsNCy0LjRgtGMIiwgdGhpcy7QtNC+0LHQsNCy0LjRgtGMKTsKICAgINGP0YfQtdC50LrQsC5hcHBlbmRDaGlsZCh0aGlzLtC60L3QvtC/0LrQsNCU0L7QsdCw0LLQuNGC0YwpOwp9OwrQn9Cw0L3QtdC70YzQo9C/0YDQsNCy0LvQtdC90LjRjy5wcm90b3R5cGUu0LjQvNGP0KTQsNC50LvQsCA9IGZ1bmN0aW9uKCkKewogICAgdmFyINC/0YPRgtGMID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lOwogICAgdmFyINC40LzRjyA9INC/0YPRgtGMLnNwbGl0KCIvIikucG9wKCk7CiAgICByZXR1cm4gZGVjb2RlVVJJKNC40LzRjyk7Cn07CgpmdW5jdGlvbiDQt9Cw0L/Rg9GB0YLQuNGC0YzQn9CjKCkKewogICAgY29uc29sZS5sb2coItC30LDQv9GD0YHRgtC40YLRjNCf0KMiKTsKICAgIHZhciDQv9GDID0gbmV3INCf0LDQvdC10LvRjNCj0L/RgNCw0LLQu9C10L3QuNGPKCk7CiAgICDQvNGD0YDQvtC8LtC/0YMgPSDQv9GDOwogICAgdmFyINC+0LHQu9Cw0YHRgtC4ID0g0LzRg9GA0L7QvC7RgdC+0LfQtNCw0YLRjNCb0LXQstGD0Y7Qn9GA0LDQstGD0Y7QntCx0LvQsNGB0YLQuCgpOwogICAgdmFyINC/0L4gPSDQvtCx0LvQsNGB0YLQuFsxXTsKICAgINC/0L4uYXBwZW5kQ2hpbGQo0L/Rgy7QuNGEKTsKICAgINC80YPRgNC+0Lwu0YHQvtC30LTQsNGC0YzQoNC10LTQsNC60YLQvtGA0JLQm9C10LLQvtC50J7QsdC70LDRgdGC0LgoKTsKICAgIHZhciDRgdC/0LjRgdC+0LogPSDQv9GDLtGB0L/QuNGB0L7QujsKICAgIHZhciDRgdCy0L7QudGB0YLQstCwID0g0L/Rgy7RgdCy0L7QudGB0YLQstCwOwogICAgdmFyINC80L7QtNGD0LvQuCA9INC/0YMu0LzQvtC00YPQu9C4OwogICAgCiAgICBmdW5jdGlvbiDQvtGC0L7QsdGA0LDQt9C40YLRjNCa0L7QtNCS0YvQsdGA0LDQvdC90L7Qs9C+0JzQvtC00YPQu9GPKCkKICAgIHsKICAgICAgICB2YXIg0LzQvtC00YPQu9GMID0g0LzRg9GA0L7QvC7QvNC+0LTRg9C70Lhb0YHQv9C40YHQvtC6LtCy0YvQsdC+0YBdOwogICAgICAgIHZhciDQutC+0LQgPSDQvNGD0YDQvtC8LmF0b2Io0LzQvtC00YPQu9GMWzFdKTsKICAgICAgICDQvNGD0YDQvtC8LtGA0LXQtNCw0LrRgtC+0YAuc2Vzc2lvbi5zZXRWYWx1ZSjQutC+0LQpOwogICAgfQogICAgZnVuY3Rpb24g0L7RgtC+0LHRgNCw0LfQuNGC0YzQodCy0L7QudGB0YLQstCw0JLRi9Cx0YDQsNC90L3QvtCz0L7QnNC+0LTRg9C70Y8oKQogICAgewogICAgICAgIHZhciDQvNC+0LTRg9C70YwgPSDQvNGD0YDQvtC8LtC80L7QtNGD0LvQuFvRgdC/0LjRgdC+0Lou0LLRi9Cx0L7RgF07CiAgICAgICAgCiAgICAgICAg0YHQstC+0LnRgdGC0LLQsC7QvdC+0LzQtdGAID0g0YHQv9C40YHQvtC6LtCy0YvQsdC+0YA7CiAgICAgICAg0YHQstC+0LnRgdGC0LLQsC7QuNC80Y8gPSDQvNC+0LTRg9C70YxbMF07CiAgICAgICAg0YHQstC+0LnRgdGC0LLQsC7RgdGC0LDRgtGD0YEgPSDQv9GDLtC80L7QtNGD0LvQuC7RgdGC0LDRgtGD0YEo0YHQv9C40YHQvtC6LtCy0YvQsdC+0YApOwogICAgfQogICAg0YHQv9C40YHQvtC6LtCy0YvQsdGA0LDQu9C4LtC/0L7QtNC/0LjRgdCw0YLRjNCc0L3QvtCz0L4oWwogICAgICAgINC+0YLQvtCx0YDQsNC30LjRgtGM0JrQvtC00JLRi9Cx0YDQsNC90L3QvtCz0L7QnNC+0LTRg9C70Y8sCiAgICAgICAg0L7RgtC+0LHRgNCw0LfQuNGC0YzQodCy0L7QudGB0YLQstCw0JLRi9Cx0YDQsNC90L3QvtCz0L7QnNC+0LTRg9C70Y8sCiAgICBdKTsKICAgIAogICAgZnVuY3Rpb24g0L7QsdC90L7QstC40YLRjNCh0YLQsNGC0YPRgdCc0L7QtNGD0LvRjygpCiAgICB7CiAgICAgICAgdmFyINC90L7QvNC10YAgPSDRgdC/0LjRgdC+0Lou0LLRi9Cx0L7RgDsKICAgICAgICB2YXIg0LjQvNGPID0g0YHQstC+0LnRgdGC0LLQsC7QuNC80Y87CiAgICAgICAgdmFyINGB0YLQsNGC0YPRgSA9INGB0LLQvtC50YHRgtCy0LAu0YHRgtCw0YLRg9GBOwogICAgICAgINC80L7QtNGD0LvQuC7Qt9Cw0LTQsNGC0YzQodGC0LDRgtGD0YEo0L3QvtC80LXRgCwg0YHRgtCw0YLRg9GBKTsKICAgICAgICDRgdC/0LjRgdC+0Lou0L7QsdC90L7QstC40YLRjNCt0LvQtdC80LXQvdGCKNC90L7QvNC10YAsINGB0YLQsNGC0YPRgSwg0LjQvNGPKTsKICAgIH0KICAgINGB0LLQvtC50YHRgtCy0LAu0LjQt9C80LXQvdC40LvQuNCh0YLQsNGC0YPRgS7Qv9C+0LTQv9C40YHQsNGC0Ywo0L7QsdC90L7QstC40YLRjNCh0YLQsNGC0YPRgdCc0L7QtNGD0LvRjyk7CiAgICAKICAgIGZ1bmN0aW9uINC+0LHQvdC+0LLQuNGC0YzQmNC80Y/QnNC+0LTRg9C70Y8oKQogICAgewogICAgICAgIHZhciDQvdC+0LzQtdGAID0g0YHQv9C40YHQvtC6LtCy0YvQsdC+0YA7CiAgICAgICAgdmFyINC40LzRjyA9INGB0LLQvtC50YHRgtCy0LAu0LjQvNGPOwogICAgICAgIHZhciDRgdGC0LDRgtGD0YEgPSDRgdCy0L7QudGB0YLQstCwLtGB0YLQsNGC0YPRgTsKICAgICAgICDQvNC+0LTRg9C70Lgu0LfQsNC00LDRgtGM0JjQvNGPKNC90L7QvNC10YAsINC40LzRjyk7CiAgICAgICAg0YHQv9C40YHQvtC6LtC+0LHQvdC+0LLQuNGC0YzQrdC70LXQvNC10L3RgijQvdC+0LzQtdGALCDRgdGC0LDRgtGD0YEsINC40LzRjyk7CiAgICB9CiAgICDRgdCy0L7QudGB0YLQstCwLtC40LfQvNC10L3QuNC70LjQmNC80Y8u0L/QvtC00L/QuNGB0LDRgtGMKNC+0LHQvdC+0LLQuNGC0YzQmNC80Y/QnNC+0LTRg9C70Y8pOwogICAgCiAgICBmdW5jdGlvbiDQvtCx0L3QvtCy0LjRgtGM0J3QvtC80LXRgNCc0L7QtNGD0LvRjygpCiAgICB7CiAgICAgICAgdmFyINGB0YLQsNGA0YvQuSA9INGB0L/QuNGB0L7Qui7QstGL0LHQvtGAOwogICAgICAgIHZhciDQvdC+0LLRi9C5ID0g0YHQstC+0LnRgdGC0LLQsC7QvdC+0LzQtdGAOwogICAgICAgIGlmICjRgdGC0LDRgNGL0LkgPT0g0L3QvtCy0YvQuSkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgaWYgKNC90L7QstGL0LkgPiDQvNGD0YDQvtC8LtC80L7QtNGD0LvQuC5sZW5ndGggLSAxKQogICAgICAgIHsKICAgICAgICAgICAg0L3QvtCy0YvQuSA9INC80YPRgNC+0Lwu0LzQvtC00YPQu9C4Lmxlbmd0aCAtIDE7CiAgICAgICAgfQogICAgICAgINC80L7QtNGD0LvQuC7Qt9Cw0LTQsNGC0YzQndC+0LzQtdGAKNGB0YLQsNGA0YvQuSwg0L3QvtCy0YvQuSk7CiAgICAgICAg0YHQv9C40YHQvtC6LtC30LDQtNCw0YLRjNCh0L/QuNGB0L7QuijQv9GDLtGB0L/QuNGB0L7QutCc0L7QtNGD0LvQtdC5KCkpOwogICAgICAgINGB0L/QuNGB0L7Qui7QstGL0LHRgNCw0YLRjCjQvdC+0LLRi9C5KTsKICAgIH0KICAgINGB0LLQvtC50YHRgtCy0LAu0LjQt9C80LXQvdC40LvQuNCd0L7QvNC10YAu0L/QvtC00L/QuNGB0LDRgtGMKNC+0LHQvdC+0LLQuNGC0YzQndC+0LzQtdGA0JzQvtC00YPQu9GPKTsKICAgIAogICAgZnVuY3Rpb24g0LTQvtCx0LDQstC40YLRjNCc0L7QtNGD0LvRjCgpCiAgICB7CiAgICAgICAgdmFyINGH0LjRgdC70L4gPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBNYXRoLmZsb29yKDEwMDApKTsKICAgICAgICB2YXIg0LjQvNGPID0gItC90L7QstGL0LktIiArINGH0LjRgdC70L47IAogICAgICAgIHZhciDQutC+0LQgPSBgY29uc29sZS5sb2coItCd0JDQlNCeINCU0L7QsdCw0LLQuNGC0Ywg0LrQvtC0INCyINC80L7QtNGD0LvRjCAnYCArINC40LzRjyArIGAnIik7YDsKICAgICAgICB2YXIg0LzQvtC00YPQu9GMID0gW9C40LzRjywg0LzRg9GA0L7QvC5idG9hKNC60L7QtCldOwogICAgICAgINC80YPRgNC+0Lwu0LzQvtC00YPQu9C4LnB1c2go0LzQvtC00YPQu9GMKTsKICAgICAgICB2YXIg0LzQvtC00YPQu9C4ID0g0L/Rgy7RgdC/0LjRgdC+0LrQnNC+0LTRg9C70LXQuSgpOwogICAgICAgINGB0L/QuNGB0L7Qui7Qt9Cw0LTQsNGC0YzQodC/0LjRgdC+0Loo0LzQvtC00YPQu9C4KTsKICAgICAgICDRgdC/0LjRgdC+0Lou0LLRi9Cx0YDQsNGC0Ywo0LzQvtC00YPQu9C4Lmxlbmd0aCAtIDEpOwogICAgfQogICAg0L/Rgy7QtNC+0LHQsNCy0LjRgtGMLtC/0L7QtNC/0LjRgdCw0YLRjCjQtNC+0LHQsNCy0LjRgtGM0JzQvtC00YPQu9GMKTsKICAgIAogICAgZnVuY3Rpb24g0YPQtNCw0LvQuNGC0YzQnNC+0LTRg9C70YwoKQogICAgewogICAgICAgIHZhciDQvdC+0LzQtdGAID0g0YHQv9C40YHQvtC6LtCy0YvQsdC+0YA7CiAgICAgICAgCiAgICAgICAgdmFyINGB0YLQsNGC0YPRgSA9INC/0YMu0LzQvtC00YPQu9C4LtGB0YLQsNGC0YPRgSjQvdC+0LzQtdGAKTsKICAgICAgICBpZiAo0YHRgtCw0YLRg9GBKQogICAgICAgIHsKICAgICAgICAgICAgYWxlcnQoItCe0KjQmNCR0JrQkCDQo9C00LDQu9C40YLRjCDQvNC+0LbQvdC+INC70LjRiNGMINC90LXQuNGB0L/QvtC70L3Rj9C10LzRi9C5INC80L7QtNGD0LvRjCIpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vINCj0LTQsNC70LjRgtGMINCy0YvQsdGA0LDQvdC90YvQuSDQvNC+0LTRg9C70YwuCiAgICAgICAg0LzRg9GA0L7QvC7QvNC+0LTRg9C70Lguc3BsaWNlKNC90L7QvNC10YAsIDEpOwogICAgICAgIC0t0L3QvtC80LXRgDsKICAgICAgICBpZiAo0L3QvtC80LXRgCA8IDApCiAgICAgICAgewogICAgICAgICAgICDQvdC+0LzQtdGAID0gMDsKICAgICAgICB9CiAgICAgICAgdmFyINC80L7QtNGD0LvQuCA9INC/0YMu0YHQv9C40YHQvtC60JzQvtC00YPQu9C10LkoKTsKICAgICAgICDRgdC/0LjRgdC+0Lou0LfQsNC00LDRgtGM0KHQv9C40YHQvtC6KNC80L7QtNGD0LvQuCk7CiAgICAgICAg0YHQv9C40YHQvtC6LtCy0YvQsdGA0LDRgtGMKNC90L7QvNC10YApOwogICAgfQogICAg0YHQstC+0LnRgdGC0LLQsC7Rg9C00LDQu9C40YLRjC7Qv9C+0LTQv9C40YHQsNGC0Ywo0YPQtNCw0LvQuNGC0YzQnNC+0LTRg9C70YwpOwogICAgCiAgICBmdW5jdGlvbiDRgdC+0YXRgNCw0L3QuNGC0YzQktGL0LHRgNCw0L3QvdGL0LnQnNC+0LTRg9C70YwoKQogICAgewogICAgICAgIHZhciDQvNC+0LTRg9C70YwgPSDQvNGD0YDQvtC8LtC80L7QtNGD0LvQuFvRgdC/0LjRgdC+0Lou0LLRi9Cx0L7RgF07CiAgICAgICAgdmFyINC60L7QtCA9INC80YPRgNC+0Lwu0YDQtdC00LDQutGC0L7RgC5zZXNzaW9uLmdldFZhbHVlKCk7CiAgICAgICAg0LzQvtC00YPQu9GMWzFdID0g0LzRg9GA0L7QvC5idG9hKNC60L7QtCk7CiAgICB9CiAgICBmdW5jdGlvbiDRgdC+0YXRgNCw0L3QuNGC0YwoKQogICAgewogICAgICAgINC/0YMu0LrQvdC+0L/QutCw0KHQvtGF0YDQsNC90LjRgtGMLmRpc2FibGVkID0gdHJ1ZTsKICAgICAgICBsb2NhbGZvcmFnZS5zZXRJdGVtKCJtb2R1bGVzIiwg0LzRg9GA0L7QvC7QvNC+0LTRg9C70LgsIGZ1bmN0aW9uKNC+0YjQuNCx0LrQsCwg0LfQvdCw0YfQtdC90LjQtSl7CiAgICAgICAgICAgINC/0YMu0LrQvdC+0L/QutCw0KHQvtGF0YDQsNC90LjRgtGMLmRpc2FibGVkID0gZmFsc2U7CiAgICAgICAgICAgIGlmICjQvtGI0LjQsdC60LApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoItCd0LUg0YPQtNCw0LvQvtGB0Ywg0YHQvtGF0YDQsNC90LjRgtGMINC80L7QtNGD0LvQuDogJyIgKyDQvtGI0LjQsdC60LAgKyAiJyIpOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICB9CiAgICDQv9GDLtGB0L7RhdGA0LDQvdC40YLRjC7Qv9C+0LTQv9C40YHQsNGC0YzQnNC90L7Qs9C+KFsKICAgICAgICDRgdC+0YXRgNCw0L3QuNGC0YzQktGL0LHRgNCw0L3QvdGL0LnQnNC+0LTRg9C70YwsCiAgICAgICAg0YHQvtGF0YDQsNC90LjRgtGMLAogICAgXSk7CgogICAgLy8gSG93IHRvIGNyZWF0ZSBhIGZpbGUgaW4gbWVtb3J5IGZvciB1c2VyIHRvIGRvd25sb2FkLCBidXQgbm90IHRocm91Z2ggc2VydmVyPwogICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzE4MTk3MzQxCiAgICBmdW5jdGlvbiDRgdC60LDRh9Cw0YLRjCgpCiAgICB7CiAgICAgICAgdmFyINGB0L7QtNC10YDQttC40LzQvtC1ID0g0LzRg9GA0L7QvC7RhNCw0LnQuy7QvdCw0YfQsNC70L47CiAgICAgICAgZm9yICh2YXIg0L3QvtC80LXRgCBpbiDQvNGD0YDQvtC8LtC80L7QtNGD0LvQuCkKICAgICAgICB7CiAgICAgICAgICAgIHZhciDQvNC+0LTRg9C70YwgPSDQvNGD0YDQvtC8LtC80L7QtNGD0LvQuFvQvdC+0LzQtdGAXTsKICAgICAgICAgICAgdmFyINC40LzRjyA9INC80L7QtNGD0LvRjFswXTsKICAgICAgICAgICAgdmFyINC60L7QtDY0ID0g0LzQvtC00YPQu9GMWzFdOwogICAgICAgICAgICB2YXIg0YHQstC+0LnRgdGC0LLQsCA9INC80L7QtNGD0LvQuC7RgdCy0L7QudGB0YLQstCwKNC90L7QvNC10YApOwogICAgICAgICAgICDRgdC+0LTQtdGA0LbQuNC80L7QtSArPQpgCgpbCiJgICsg0LjQvNGPICsgYCIsCiJgICsg0LrQvtC0NjQgKyBgIiwKYAorCkpTT04uc3RyaW5naWZ5KNGB0LLQvtC50YHRgtCy0LApCisKYApdLApgCjsKICAgICAgICB9CiAgICAgICAg0YHQvtC00LXRgNC20LjQvNC+0LUgKz0g0LzRg9GA0L7QvC7RhNCw0LnQuy7QutC+0L3QtdGGOwogICAgICAgINGB0L7QtNC10YDQttC40LzQvtC1ID0g0LzRg9GA0L7QvC5idG9hKNGB0L7QtNC10YDQttC40LzQvtC1KTsKICAgIAogICAgICAgIHZhciDRgdGB0YvQu9GMID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpOwogICAgICAgINGB0YHRi9C70Ywuc2V0QXR0cmlidXRlKCJocmVmIiwgImRhdGE6dGV4dC9odG1sO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCIgKyDRgdC+0LTQtdGA0LbQuNC80L7QtSk7CiAgICAgICAgdmFyINC40LzRjyA9INC/0YMu0LjQvNGP0KTQsNC50LvQsCgpOwogICAgICAgINGB0YHRi9C70Ywuc2V0QXR0cmlidXRlKCJkb3dubG9hZCIsINC40LzRjyk7CiAgICAgICAg0YHRgdGL0LvRjC5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwogICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo0YHRgdGL0LvRjCk7CiAgICAgICAg0YHRgdGL0LvRjC5jbGljaygpOwogICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQo0YHRgdGL0LvRjCk7CiAgICB9CiAgICDQv9GDLtGB0LrQsNGH0LDRgtGMLtC/0L7QtNC/0LjRgdCw0YLRjCjRgdC60LDRh9Cw0YLRjCk7CgogICAgLy8g0J/RgNC4INC30LDQv9GD0YHQutC1LgogICAg0YHQv9C40YHQvtC6LtCy0YvQsdGA0LDRgtGMKDApOwp9CgrQt9Cw0LTQsNGC0YzQktC90LXRiNC90LjQudCS0LjQtCgpOwrQt9Cw0L/Rg9GB0YLQuNGC0YzQn9CjKCk7",