.randomKey.svelte-ygb28j.svelte-ygb28j{color:#1e8094;font-size:1.5em}.refresh.svelte-ygb28j.svelte-ygb28j{font-size:1.2em;margin-left:20px;color:black
    }a.svelte-ygb28j.svelte-ygb28j:hover{cursor:pointer}.selected.svelte-ygb28j.svelte-ygb28j{background-color:#85b7c9}.buttonSection.svelte-ygb28j.svelte-ygb28j{display:flex;flex-direction:column;margin-bottom:18px}.majorMinor.svelte-ygb28j.svelte-ygb28j{display:flex;justify-content:center}.majorMinor.svelte-ygb28j button.svelte-ygb28j{width:50%}@media(min-width: 767px){.majorMinor.svelte-ygb28j button.svelte-ygb28j{width:8%;max-width:200px;height:45px;margin:10px
        }}.clearButton.svelte-ygb28j.svelte-ygb28j{width:130px;height:40px;margin-left:100px;margin-top:60px}.clearButton.svelte-ygb28j.svelte-ygb28j:active{background-color:#85b7c9
    }.selectboxSound.svelte-ygb28j.svelte-ygb28j{height:24px;font-size:medium;background-color:#f9f9f9;text-align-last:center}div.grid.svelte-ygb28j.svelte-ygb28j{row-gap:14px}.switch.svelte-ygb28j.svelte-ygb28j{position:relative;display:inline-block;width:60px;height:34px}.switch.svelte-ygb28j input.svelte-ygb28j{opacity:0;width:0;height:0}.slider.svelte-ygb28j.svelte-ygb28j{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;-webkit-transition:.4s;transition:.4s}.slider.svelte-ygb28j.svelte-ygb28j:before{position:absolute;content:"";height:26px;width:26px;left:4px;bottom:4px;background-color:white;-webkit-transition:.4s;transition:.4s}input.svelte-ygb28j:checked+.slider.svelte-ygb28j{background-color:#85b7c9}input.svelte-ygb28j:focus+.slider.svelte-ygb28j{box-shadow:0 0 1px #85b7c9}input.svelte-ygb28j:checked+.slider.svelte-ygb28j:before{-webkit-transform:translateX(26px);-ms-transform:translateX(26px);transform:translateX(26px)}.slider.round.svelte-ygb28j.svelte-ygb28j{border-radius:34px}.slider.round.svelte-ygb28j.svelte-ygb28j:before{border-radius:50%}
/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJhY3RpY2VtYWpvcnNjYWxlLnN2ZWx0ZSIsInNvdXJjZXMiOlsicHJhY3RpY2VtYWpvcnNjYWxlLnN2ZWx0ZSJdLCJzb3VyY2VzQ29udGVudCI6WyI8c2NyaXB0PlxuICAgIGltcG9ydCB7IG9uTW91bnQgfSBmcm9tICdzdmVsdGUnO1xuICAgIGltcG9ydCB7IGZseSwgZmFkZSB9IGZyb20gJ3N2ZWx0ZS90cmFuc2l0aW9uJztcbiAgICBpbXBvcnQgRnJldGJvYXJkIGZyb20gJy4uL2NvbXBvbmVudHMvRnJldGJvYXJkLnN2ZWx0ZSc7XG4gICAgaW1wb3J0IHsgc3RhbmRhcmRUdW5pbmcsIHNjYWxlRGljdGlvbmFyeSB9IGZyb20gJy4vc2NhbGVzRGljdGlvbmFyeS5qcyc7XG4gICAgaW1wb3J0IHsgYWxsTm90ZUxldHRlcnMsIHdob2xlTm90ZUxldHRlcnMsIG5vdGVDaXJjbGVzLCBpbnRlcnZhbHMsIGdldFNvdW5kRmlsZSwgXG4gICAgICAgIGdldFN0cmluZ051bWJlciwgZ2V0Tm90ZUxldHRlckJ5U3RyaW5nQW5kRnJldCwgZ2V0Tm90ZU1vZGVGcm9tQm9vbGVhbiB9IGZyb20gJy4vdXRpbC5qcyc7XG4gICAgaW1wb3J0IGNvbmZldHRpIGZyb20gJ2NhbnZhcy1jb25mZXR0aSc7XG5cbiAgICBsZXQgb3B0aW9ucztcblxuICAgIC8vIHVzaW5nIG9iamVjdCBiZWNhdXNlIHtub3RlOlwiQVwifSAhPSB7bm90ZTpcIkFcIn0gLSBmb3IgdHJhbnNpdGlvbnNcbiAgICBsZXQgcmFuZG9tS2V5O1xuICAgIGxldCBwYXR0ZXJuID0gMTtcbiAgICBsZXQgaW50ZXJ2YWxzQ2hlY2tib3ggPSBmYWxzZTtcbiAgICBsZXQgaW5jbHVkZUZsYXRzID0gZmFsc2U7XG4gICAgbGV0IGNsaWNrZWROb3RlcztcbiAgICBsZXQgcHJldmlvdXNseUNsaWNrZWROb3RlcztcbiAgICBsZXQgcGF0dGVybkFsbE5vdGVzO1xuICAgIGxldCBzaG93QWxsQ29ycmVjdE5vdGVzID0gZmFsc2U7XG4gICAgbGV0IHNvdW5kID0gXCJub19zb3VuZFwiO1xuICAgIGltcG9ydCB7IGlzTGVmdEhhbmRlZFN0b3JlIH0gZnJvbSAnLi4vc3RvcmVzL3NldHRpbmdzU3RvcmUuanMnO1xuXG5cbiAgICBvbk1vdW50KGFzeW5jICgpID0+IHtcbiAgICAgICAgcmFuZG9tS2V5ID0gcGlja1JhbmRvbU5vdGUoKTtcblxuICAgICAgICBsZXQgaXNDaG9yZE1vZGUgPSBmYWxzZTtcbiAgICAgICAgXG4gICAgICAgIGxldCBudW1GcmV0cyA9IDE1O1xuICAgICAgICBsZXQgZGltZW5zaW9uc0Z1bmMgPSBmdW5jdGlvbiAoJGZyZXRib2FyZENvbnRhaW5lciwgJGZyZXRib2FyZEJvZHksIHNldHRpbmdzKSB7XG4gICAgICAgICAgICBsZXQgd2lkdGggPSBqUXVlcnkod2luZG93KS53aWR0aCgpO1xuICAgICAgICAgICAgbGV0IGhlaWdodDtcblxuICAgICAgICAgICAgaWYgKHdpZHRoIDw9IDc2OCkge1xuICAgICAgICAgICAgICAgIGhlaWdodCA9IHNldHRpbmdzLnR1bmluZy5sZW5ndGggKiAyNjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0ID0gc2V0dGluZ3MudHVuaW5nLmxlbmd0aCAqIDMyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGhlaWdodDogaGVpZ2h0XG4gICAgICAgICAgICB9O1xuICAgICAgICB9O1xuICAgICAgICBsZXQgYW5pbWF0aW9uU3BlZWQgPSA0MDA7IC8vIG1zXG5cblxuICAgICAgICBsZXQgY2xpY2tlZE5vdGVzQ2hhbmdlZEZ1bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBzZXRDb2xvcnMoKTtcblxuICAgICAgICAgICAgbGV0ICRmcmV0Ym9hcmQgPSBqUXVlcnkoXCIubXktZnJldGJvYXJkLWpzXCIpO1xuICAgICAgICAgICAgbGV0IGFwaSA9ICRmcmV0Ym9hcmQuZGF0YShcImFwaVwiKTtcbiAgICAgICAgICAgIHByZXZpb3VzbHlDbGlja2VkTm90ZXMgPSBjbGlja2VkTm90ZXM7XG4gICAgICAgICAgICBjbGlja2VkTm90ZXMgPSBhcGkuZ2V0Q2xpY2tlZE5vdGVzKCk7XG5cbiAgICAgICAgICAgIGxldCBjbGlja2VkTm90ZUxldHRlcnMgPSBjbGlja2VkTm90ZXNcbiAgICAgICAgICAgICAgICAubWFwKGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlLm5vdGVzLm1hcChlID0+IGUubGV0dGVyKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5mbGF0KDEpO1xuXG4gICAgICAgICAgICAgLy8gc291bmRcbiAgICAgICAgICAgICBsZXQgZGlmZiA9IGZpbmRBZGRlZE5vdGVzKGNsaWNrZWROb3RlcywgcHJldmlvdXNseUNsaWNrZWROb3Rlcyk7XG4gICAgICAgICAgICAgaWYgKGRpZmYubGVuZ3RoICE9IDAgJiYgc291bmQgIT0gXCJub19zb3VuZFwiKSB7XG4gICAgICAgICAgICAgICAgbGV0IGNsaWNrZWRTdHJpbmdOdW1iZXIgPSAgZ2V0U3RyaW5nTnVtYmVyKGRpZmZbMF0uc3RyaW5nKTtcbiAgICAgICAgICAgICAgICBsZXQgZnJldCA9IGRpZmZbMF0uYWRkZWRGcmV0c1swXTtcbiAgICAgICAgICAgICAgICBjb25zdCBub3RlID0gZ2V0Tm90ZUxldHRlckJ5U3RyaW5nQW5kRnJldChkaWZmWzBdLnN0cmluZy5sZXR0ZXIsIGZyZXQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGF1ZGlvID0gbmV3IEF1ZGlvKGdldFNvdW5kRmlsZShjbGlja2VkU3RyaW5nTnVtYmVyLCBub3RlLCBmcmV0LCBzb3VuZCkpO1xuICAgICAgICAgICAgICAgIGF1ZGlvLnBsYXkoKTtcbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICBsZXQgY29ycmVjdE5vdGVMZXR0ZXJzID0gc2NhbGVEaWN0aW9uYXJ5LmdldCh0cnVlKS5nZXQocmFuZG9tS2V5Lm5vdGUpLmdldCgnbm90ZXMnKTtcblxuICAgICAgICAgICAgbGV0IHN0YXJ0RnJldE9mQ29ycmVjdE5vdGVzID0gZ2V0TWluRnJldEZyb21BcnJheShwYXR0ZXJuQWxsTm90ZXMpO1xuICAgICAgICAgICAgbGV0IGVuZEZyZXRPZkNvcnJlY3ROb3RlcyA9IGdldE1heEZyZXRGcm9tQXJyYXkocGF0dGVybkFsbE5vdGVzKTtcbiAgICAgICAgICAgIGxldCBjb3JyZWN0Tm90ZXNDb3VudCA9IGNvdW50QWxsTm90ZXMocGF0dGVybkFsbE5vdGVzKTtcblxuICAgICAgICAgICAgbGV0IHN0YXJ0RnJldE9mQ2xpY2tlZE5vdGVzID0gZ2V0TWluRnJldEZyb21BcnJheShjbGlja2VkTm90ZXMpO1xuICAgICAgICAgICAgbGV0IGVuZEZyZXRPZkNsaWNrZWROb3RlcyA9IGdldE1heEZyZXRGcm9tQXJyYXkoY2xpY2tlZE5vdGVzKTtcbiAgICAgICAgICAgIGxldCBjbGlja2VkTm90ZXNDb3VudCA9IGNvdW50QWxsTm90ZXMoY2xpY2tlZE5vdGVzKTtcblxuICAgICAgICAgICAgaWYgKGFyZUFsbENsaWNrZWROb3Rlc0NvcnJlY3QoY2xpY2tlZE5vdGVMZXR0ZXJzLCBjb3JyZWN0Tm90ZUxldHRlcnMpXG4gICAgICAgICAgICAgICAmJiBzdGFydEZyZXRPZkNsaWNrZWROb3RlcyA9PSBzdGFydEZyZXRPZkNvcnJlY3ROb3Rlc1xuICAgICAgICAgICAgICAgJiYgZW5kRnJldE9mQ2xpY2tlZE5vdGVzID09IGVuZEZyZXRPZkNvcnJlY3ROb3Rlc1xuICAgICAgICAgICAgICAgJiYgY2xpY2tlZE5vdGVzQ291bnQgPT0gY29ycmVjdE5vdGVzQ291bnQpIHtcbiAgICAgICAgICAgICAgICBjb25mZXR0aSh7XG4gICAgICAgICAgICAgICAgICAgIHBhcnRpY2xlQ291bnQ6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgc3ByZWFkOiA3MCxcbiAgICAgICAgICAgICAgICAgICAgb3JpZ2luOiB7IHk6IDAuNiB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBvcHRpb25zID0ge1xuICAgICAgICAgICAgdHVuaW5nOiBzdGFuZGFyZFR1bmluZyxcbiAgICAgICAgICAgIG51bUZyZXRzOiBudW1GcmV0cyxcbiAgICAgICAgICAgIGlzQ2hvcmRNb2RlOiBpc0Nob3JkTW9kZSxcbiAgICAgICAgICAgIG5vdGVDbGlja2luZ0Rpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgICAgIG5vdGVMZXR0ZXJzOiBhbGxOb3RlTGV0dGVycyxcbiAgICAgICAgICAgIG5vdGVNb2RlOiBnZXROb3RlTW9kZUZyb21Cb29sZWFuKGludGVydmFsc0NoZWNrYm94KSxcbiAgICAgICAgICAgIGlzTGVmdEhhbmRlZDogJGlzTGVmdEhhbmRlZFN0b3JlLFxuICAgICAgICAgICAgaW50ZXJ2YWxzOiBpbnRlcnZhbHMsXG4gICAgICAgICAgICByb290OiByYW5kb21LZXkubm90ZSxcbiAgICAgICAgICAgIGFuaW1hdGlvblNwZWVkOiBhbmltYXRpb25TcGVlZCxcbiAgICAgICAgICAgIG5vdGVDaXJjbGVzOiBub3RlQ2lyY2xlcyxcbiAgICAgICAgICAgIGRpbWVuc2lvbnNGdW5jOiBkaW1lbnNpb25zRnVuYyxcbiAgICAgICAgICAgIG5vdGVzQ2xpY2tlZENhbGxiYWNrOiBjbGlja2VkTm90ZXNDaGFuZ2VkRnVuY1xuICAgICAgICB9O1xuXG4gICAgfSk7XG4gICAgXG4gICAgXG4gICAgbGV0IGFmdGVyRnJldGJvYXJkSW5pdCA9ICgpID0+IHtcbiAgICAgICAgY2hhbmdlUGF0dGVybihwYXR0ZXJuKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBmaW5kQWRkZWROb3RlcyhjdXJyZW50VmVyc2lvbiwgcHJldmlvdXNWZXJzaW9uKSB7XG4gICAgICAgIGNvbnN0IGFkZGVkTm90ZXMgPSBbXTtcblxuICAgICAgICBjdXJyZW50VmVyc2lvbi5mb3JFYWNoKChjdXJyZW50SXRlbSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBzdHJpbmcsIG5vdGVzIH0gPSBjdXJyZW50SXRlbTtcbiAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzSXRlbSA9IHByZXZpb3VzVmVyc2lvbi5maW5kKFxuICAgICAgICAgICAgKHByZXZJdGVtKSA9PlxuICAgICAgICAgICAgICAgIHByZXZJdGVtLnN0cmluZy5sZXR0ZXIgPT09IHN0cmluZy5sZXR0ZXIgJiZcbiAgICAgICAgICAgICAgICBwcmV2SXRlbS5zdHJpbmcub2N0YXZlID09PSBzdHJpbmcub2N0YXZlXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAoIXByZXZpb3VzSXRlbSkge1xuICAgICAgICAgICAgICAgIC8vIFRoZSBlbnRpcmUgc3RyaW5nIGlzIG5ld1xuICAgICAgICAgICAgICAgIGFkZGVkTm90ZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgYWRkZWRGcmV0czogbm90ZXMubWFwKChub3RlKSA9PiBub3RlLmZyZXQpLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBDaGVjayBmb3IgYWRkZWQgZnJldHMgb24gYW4gZXhpc3Rpbmcgc3RyaW5nXG4gICAgICAgICAgICAgICAgY29uc3QgYWRkZWRGcmV0cyA9IG5vdGVzXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICAoY3VycmVudE5vdGUpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIXByZXZpb3VzSXRlbS5ub3Rlcy5zb21lKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcmV2Tm90ZSkgPT4gcHJldk5vdGUuZnJldCA9PT0gY3VycmVudE5vdGUuZnJldFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAubWFwKChhZGRlZE5vdGUpID0+IGFkZGVkTm90ZS5mcmV0KTtcblxuICAgICAgICAgICAgICAgIGlmIChhZGRlZEZyZXRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgYWRkZWROb3Rlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICBhZGRlZEZyZXRzLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBhZGRlZE5vdGVzO1xuICAgIH1cblxuICAgIGxldCBnZXRNaW5GcmV0RnJvbUFycmF5ID0gKGFycmF5KSA9PiB7XG4gICAgICAgIHJldHVybiBhcnJheVxuICAgICAgICAgICAgICAgIC5mbGF0TWFwKChpdGVtKSA9PiBpdGVtLm5vdGVzKVxuICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGxvd2VzdEZyZXQsIG5vdGUpID0+IE1hdGgubWluKGxvd2VzdEZyZXQsIG5vdGUuZnJldCksIEluZmluaXR5KTtcbiAgICB9XG5cbiAgICBsZXQgZ2V0TWF4RnJldEZyb21BcnJheSA9IChhcnJheSkgPT4ge1xuICAgICAgICByZXR1cm4gYXJyYXlcbiAgICAgICAgICAgICAgICAuZmxhdE1hcCgoaXRlbSkgPT4gaXRlbS5ub3RlcylcbiAgICAgICAgICAgICAgICAucmVkdWNlKChsb3dlc3RGcmV0LCBub3RlKSA9PiBNYXRoLm1heChsb3dlc3RGcmV0LCBub3RlLmZyZXQpLCAtSW5maW5pdHkpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvdW50QWxsTm90ZXMgPSAoYXJyYXkpID0+XG4gICAgICAgIGFycmF5LnJlZHVjZSgodG90YWxDb3VudCwgaXRlbSkgPT4gdG90YWxDb3VudCArIGl0ZW0ubm90ZXMubGVuZ3RoLCAwKTtcblxuICAgIGZ1bmN0aW9uIGFyZUFsbENsaWNrZWROb3Rlc0NvcnJlY3QoY2xpY2tlZE5vdGVMZXR0ZXJzLCBjb3JyZWN0Tm90ZUxldHRlcnMpIHtcbiAgICAgICAgcmV0dXJuIGNsaWNrZWROb3RlTGV0dGVycy5ldmVyeSgoY2xpY2tlZE5vdGUpID0+IHtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgY29ycmVjdE5vdGVMZXR0ZXJzLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb3JyZWN0Tm90ZSA9IGNvcnJlY3ROb3RlTGV0dGVyc1tpbmRleF07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwbCA9IGNsaWNrZWROb3RlLnNwbGl0KCcvJyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzcGxbMF0gPT0gY29ycmVjdE5vdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChzcGwubGVuZ3RoID4gMSAmJiBzcGxbMV0gPT0gY29ycmVjdE5vdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGxldCBwaWNrUmFuZG9tTm90ZSA9IChpbmNsdWRlRmxhdHMpID0+IHtcbiAgICAgICAgbGV0IG9sZE5vdGUgPSByYW5kb21LZXkgIT0gbnVsbCA/IHJhbmRvbUtleS5ub3RlIDogbnVsbDtcblxuICAgICAgICBsZXQgbm90ZXNUb1BpY2tGcm9tID0gaW5jbHVkZUZsYXRzID8gYWxsTm90ZUxldHRlcnMgOiB3aG9sZU5vdGVMZXR0ZXJzO1xuICAgICAgICBsZXQgcmFuZG9tS2V5TG9jYWwgPSB7bm90ZTpcIlwifTtcbiAgICAgICAgcmFuZG9tS2V5TG9jYWwubm90ZSA9IG5vdGVzVG9QaWNrRnJvbVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBub3Rlc1RvUGlja0Zyb20ubGVuZ3RoKV07XG4gICAgICAgIHdoaWxlIChvbGROb3RlID09IHJhbmRvbUtleUxvY2FsLm5vdGUpIHtcbiAgICAgICAgICAgIHJhbmRvbUtleUxvY2FsLm5vdGUgPSBub3Rlc1RvUGlja0Zyb21bTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogbm90ZXNUb1BpY2tGcm9tLmxlbmd0aCldO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByYW5kb21LZXlMb2NhbDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzZXRWYXJpYWJsZXMocGF0dGVybikge1xuICAgICAgICBwYXR0ZXJuQWxsTm90ZXMgPSBzY2FsZURpY3Rpb25hcnkuZ2V0KHRydWUpLmdldChyYW5kb21LZXkubm90ZSkuZ2V0KCdtYWpvcl9zY2FsZV9wYXR0ZXJucycpLmdldChwYXR0ZXJuKTtcblxuICAgICAgICBjbGlja2VkTm90ZXMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHBhdHRlcm5BbGxOb3RlcykpIC8vIGRlZXAgY29weVxuICAgICAgICAgICAgLmZpbHRlcih4ID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4geC5ub3Rlcy5tYXAoeCA9PiB4LmNzc0NsYXNzKS5pbmNsdWRlcygncm9vdENvbG9yJyk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLm1hcCh4ID0+IHtcbiAgICAgICAgICAgICAgICB4Lm5vdGVzID0geC5ub3Rlc1xuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKHggPT4geC5jc3NDbGFzcyA9PSdyb290Q29sb3InKTtcbiAgICAgICAgICAgICAgICByZXR1cm4geDsgIFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgXG5cbiAgICAgICAgbGV0ICRmcmV0Ym9hcmQgPSBqUXVlcnkoXCIubXktZnJldGJvYXJkLWpzXCIpO1xuICAgICAgICBsZXQgYXBpID0gJGZyZXRib2FyZC5kYXRhKFwiYXBpXCIpO1xuICAgICAgICBhcGkuc2V0Um9vdChyYW5kb21LZXkubm90ZSk7IC8vIFRPRE8gd2hhdCBhYm91dCBzaGFycHM/XG4gICAgICAgIGFwaS5jbGVhckNsaWNrZWROb3RlcygpO1xuICAgICAgICBpZiAoc2hvd0FsbENvcnJlY3ROb3Rlcykge1xuICAgICAgICAgICAgYXBpLnNldENsaWNrZWROb3RlcyhwYXR0ZXJuQWxsTm90ZXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYXBpLnNldENsaWNrZWROb3RlcyhjbGlja2VkTm90ZXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2V0Q29sb3JzKCkge1xuICAgICAgICBsZXQgY29ycmVjdE5vdGVMZXR0ZXJzID0gc2NhbGVEaWN0aW9uYXJ5LmdldCh0cnVlKS5nZXQocmFuZG9tS2V5Lm5vdGUpLmdldCgnbm90ZXMnKTtcbiAgICAgICAgbGV0IGNvcnJlY3RJbnRlcnZhbHMgPSBzY2FsZURpY3Rpb25hcnkuZ2V0KHRydWUpLmdldCgnc2NhbGVfaW50ZXJ2YWxzJyk7XG5cbiAgICAgICAgLy8gaWYgKGludGVydmFsc0NoZWNrYm94KSB7XG4gICAgICAgIC8vICAgICBBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ub3RlJykpXG4gICAgICAgIC8vICAgICAgICAgLmZpbHRlcihlbCA9PiB7XG4gICAgICAgIC8vICAgICAgICAgICAgIHJldHVybiAhY29ycmVjdEludGVydmFscy5pbmNsdWRlcyhlbC50ZXh0Q29udGVudClcbiAgICAgICAgLy8gICAgICAgICB9KVxuICAgICAgICAvLyAgICAgICAgIC5mb3JFYWNoKGUgPT4gZS5jbGFzc0xpc3QuYWRkKFwid3JvbmdDb2xvclwiKSk7XG4gICAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAgICAgICBBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ub3RlJykpXG4gICAgICAgICAgICAgICAgLmZpbHRlcihlbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnRlcnZhbHNDaGVja2JveCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFjb3JyZWN0SW50ZXJ2YWxzLmluY2x1ZGVzKGVsLnRleHRDb250ZW50KVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsLnRleHRDb250ZW50LmluY2x1ZGVzKCcvJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcGwgPSBlbC50ZXh0Q29udGVudC5zcGxpdCgnLycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAhY29ycmVjdE5vdGVMZXR0ZXJzLmluY2x1ZGVzKHNwbFswXSkgJiYgIWNvcnJlY3ROb3RlTGV0dGVycy5pbmNsdWRlcyhzcGxbMV0pXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAhY29ycmVjdE5vdGVMZXR0ZXJzLmluY2x1ZGVzKGVsLnRleHRDb250ZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuZm9yRWFjaChlID0+IGUuY2xhc3NMaXN0LmFkZChcIndyb25nQ29sb3JcIikpO1xuICAgICAgICAvLyB9XG5cbiAgICAgICAgLy8gaWYgKGludGVydmFsc0NoZWNrYm94KSB7XG4gICAgICAgIC8vICAgICBBcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5ub3RlJykpXG4gICAgICAgIC8vICAgICAgICAgLmZpbHRlcihlbCA9PiB7XG4gICAgICAgIC8vICAgICAgICAgICAgIHJldHVybiBjb3JyZWN0SW50ZXJ2YWxzLmluY2x1ZGVzKGVsLnRleHRDb250ZW50KSAmJiBlbC50ZXh0Q29udGVudCAhPSAxO1xuICAgICAgICAvLyAgICAgICAgIH0pXG4gICAgICAgIC8vICAgICAgICAgLmZvckVhY2goZSA9PiBlLmNsYXNzTGlzdC5hZGQoXCJjb3JyZWN0Q29sb3JcIikpO1xuICAgICAgICAvLyB9IGVsc2Uge1xuICAgICAgICAgICAgQXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubm90ZScpKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoZWwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW50ZXJ2YWxzQ2hlY2tib3gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb3JyZWN0SW50ZXJ2YWxzLmluY2x1ZGVzKGVsLnRleHRDb250ZW50KSAmJiBlbC50ZXh0Q29udGVudCAhPSAxO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVsLnRleHRDb250ZW50LmluY2x1ZGVzKCcvJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcGwgPSBlbC50ZXh0Q29udGVudC5zcGxpdCgnLycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoY29ycmVjdE5vdGVMZXR0ZXJzLmluY2x1ZGVzKHNwbFswXSkgfHwgY29ycmVjdE5vdGVMZXR0ZXJzLmluY2x1ZGVzKHNwbFsxXSkpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVsLnRleHRDb250ZW50ICE9IHJhbmRvbUtleS5ub3RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvcnJlY3ROb3RlTGV0dGVycy5pbmNsdWRlcyhlbC50ZXh0Q29udGVudCkgJiYgZWwudGV4dENvbnRlbnQgIT0gcmFuZG9tS2V5Lm5vdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKGUgPT4gZS5jbGFzc0xpc3QuYWRkKFwiY29ycmVjdENvbG9yXCIpKTtcbiAgICAgICAgLy8gfVxuICAgIH1cblxuXG4gICAgZnVuY3Rpb24gc2hvd0NvcnJlY3ROb3RlcyhzaG93QWxsQ29ycmVjdE5vdGVzKXtcbiAgICAgICAgbGV0ICRmcmV0Ym9hcmQgPSBqUXVlcnkoXCIubXktZnJldGJvYXJkLWpzXCIpO1xuICAgICAgICBsZXQgYXBpID0gJGZyZXRib2FyZC5kYXRhKFwiYXBpXCIpO1xuICAgICAgICBhcGkuY2xlYXJDbGlja2VkTm90ZXMoKTtcblxuICAgICAgICBpZiAoc2hvd0FsbENvcnJlY3ROb3Rlcykge1xuICAgICAgICAgICAgYXBpLnNldENsaWNrZWROb3RlcyhwYXR0ZXJuQWxsTm90ZXMpO1xuICAgICAgICAgICAgYXBpLnNldE5vdGVDbGlja2luZ0Rpc2FibGVkKHRydWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYXBpLnNldENsaWNrZWROb3RlcyhjbGlja2VkTm90ZXMpO1xuICAgICAgICAgICAgc2V0Q29sb3JzKCk7XG4gICAgICAgICAgICBhcGkuc2V0Tm90ZUNsaWNraW5nRGlzYWJsZWQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2xlYXJDbGlja2VkKCkge1xuICAgICAgICBpZiAoc2hvd0FsbENvcnJlY3ROb3Rlcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0ICRmcmV0Ym9hcmQgPSBqUXVlcnkoXCIubXktZnJldGJvYXJkLWpzXCIpO1xuICAgICAgICBsZXQgYXBpID0gJGZyZXRib2FyZC5kYXRhKFwiYXBpXCIpO1xuICAgICAgICBhcGkuY2xlYXJDbGlja2VkTm90ZXMoKTtcblxuICAgICAgICBjbGlja2VkTm90ZXMgPSBbXTtcbiAgICAgICAgLy8gY2xpY2tlZE5vdGVzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShwYXR0ZXJuQWxsTm90ZXMpKSAvLyBkZWVwIGNvcHlcbiAgICAgICAgLy8gICAgIC5maWx0ZXIoeCA9PiB7XG4gICAgICAgIC8vICAgICAgICAgcmV0dXJuIHgubm90ZXMubWFwKHggPT4geC5jc3NDbGFzcykuaW5jbHVkZXMoJ3Jvb3RDb2xvcicpO1xuICAgICAgICAvLyAgICAgfSlcbiAgICAgICAgLy8gICAgIC5tYXAoeCA9PiB7XG4gICAgICAgIC8vICAgICAgICAgeC5ub3RlcyA9IHgubm90ZXNcbiAgICAgICAgLy8gICAgICAgICAgICAgLmZpbHRlcih4ID0+IHguY3NzQ2xhc3MgPT0ncm9vdENvbG9yJyk7XG4gICAgICAgIC8vICAgICAgICAgcmV0dXJuIHg7ICBcbiAgICAgICAgLy8gICAgIH0pO1xuICAgICAgICAvLyBhcGkuc2V0Q2xpY2tlZE5vdGVzKGNsaWNrZWROb3Rlcyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2hhbmdlUGF0dGVybihwYXR0ZXJuKSB7XG4gICAgICAgIHNldENvbG9ycygpO1xuICAgICAgICBzZXRWYXJpYWJsZXMocGF0dGVybik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVmcmVzaENsaWNrKCkge1xuICAgICAgICByYW5kb21LZXkgPSBwaWNrUmFuZG9tTm90ZSgpO1xuICAgICAgICBjaGFuZ2VQYXR0ZXJuKHBhdHRlcm4pO1xuICAgIH1cblxuICAgICQ6IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHNob3dDb3JyZWN0Tm90ZXMoc2hvd0FsbENvcnJlY3ROb3Rlcyk7XG4gICAgICAgIH0gY2F0Y2ggKGlnbm9yZWQpIHt9XG4gICAgfVxuXG4gICAgJDoge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY2hhbmdlUGF0dGVybihwYXR0ZXJuKTtcbiAgICAgICAgfSBjYXRjaCAoaWdub3JlZCkge31cbiAgICB9XG5cbiAgICAkOiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgJGZyZXRib2FyZCA9IGpRdWVyeShcIi5teS1mcmV0Ym9hcmQtanNcIik7XG4gICAgICAgICAgICBsZXQgYXBpID0gJGZyZXRib2FyZC5kYXRhKFwiYXBpXCIpO1xuICAgICAgICAgICAgYXBpLnNldE5vdGVNb2RlKGdldE5vdGVNb2RlRnJvbUJvb2xlYW4oaW50ZXJ2YWxzQ2hlY2tib3gpKTtcbiAgICAgICAgfSBjYXRjaCAoaWdub3JlZCkge31cbiAgICB9XG5cbiAgICAkOiB7XG4gICAgICAgIGlmIChvcHRpb25zICE9IG51bGwpIHtcbiAgICAgICAgICAgIGxldCAkZnJldGJvYXJkID0galF1ZXJ5KFwiLm15LWZyZXRib2FyZC1qc1wiKTtcbiAgICAgICAgICAgIGxldCBhcGkgPSAkZnJldGJvYXJkLmRhdGEoXCJhcGlcIik7XG4gICAgICAgICAgICBpZiAoYXBpKSB7XG4gICAgICAgICAgICAgICAgYXBpLnNldElzTGVmdEhhbmRlZCgkaXNMZWZ0SGFuZGVkU3RvcmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuPC9zY3JpcHQ+XG5cbjxzdmVsdGU6aGVhZD5cbiAgICA8dGl0bGU+UHJhY3RpY2UgTWFqb3IgU2NhbGU8L3RpdGxlPlxuPC9zdmVsdGU6aGVhZD5cblxuPG1haW4+XG4gICAgPGgxPlByYWN0aWNlIE1ham9yIFNjYWxlPC9oMT5cbiAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uU2VjdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWFqb3JNaW5vclwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBpZD1cInBhdHRlcm4xQnV0dG9uXCIgY2xhc3M6c2VsZWN0ZWQ9e3BhdHRlcm4gPT0gMX0gIG9uOmNsaWNrPXsoKSA9PiBwYXR0ZXJuID0gMX0+UGF0dGVybiAxPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIGlkPVwicGF0dGVybjJCdXR0b25cIiBjbGFzczpzZWxlY3RlZD17cGF0dGVybiA9PSAyfSAgb246Y2xpY2s9eygpID0+IHBhdHRlcm4gPSAyfT5QYXR0ZXJuIDI8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gaWQ9XCJwYXR0ZXJuM0J1dHRvblwiIGNsYXNzOnNlbGVjdGVkPXtwYXR0ZXJuID09IDN9ICBvbjpjbGljaz17KCkgPT4gcGF0dGVybiA9IDN9PlBhdHRlcm4gMzwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiBpZD1cInBhdHRlcm40QnV0dG9uXCIgY2xhc3M6c2VsZWN0ZWQ9e3BhdHRlcm4gPT0gNH0gIG9uOmNsaWNrPXsoKSA9PiBwYXR0ZXJuID0gNH0+UGF0dGVybiA0PC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIGlkPVwicGF0dGVybjVCdXR0b25cIiBjbGFzczpzZWxlY3RlZD17cGF0dGVybiA9PSA1fSAgb246Y2xpY2s9eygpID0+IHBhdHRlcm4gPSA1fT5QYXR0ZXJuIDU8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgeyNpZiByYW5kb21LZXkgIT0gdW5kZWZpbmVkfVxuICAgICAgICB7I2tleSByYW5kb21LZXl9XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwibWFyZ2luLWJvdHRvbTozMHB4XCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDEuNWVtXCI+S2V5Ojwvc3Bhbj4mbmJzcDtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJhbmRvbUtleVwiIGluOmZhZGU9XCJ7e2R1cmF0aW9uOiAxMDB9fVwiPntyYW5kb21LZXkubm90ZX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPGEgaHJlZj17bnVsbH0gY2xhc3M9XCJyZWZyZXNoXCIgb246Y2xpY2s9e3JlZnJlc2hDbGlja30+PGkgY2xhc3M9XCJmYS1zb2xpZCBmYS1yZWZyZXNoIGZhLWZ3XCI+PC9pPjwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB7L2tleX1cbiAgICB7L2lmfVxuICAgIHsjaWYgb3B0aW9ucyAhPSB1bmRlZmluZWR9XG4gICAgICAgIDxGcmV0Ym9hcmQgb3B0aW9ucz17b3B0aW9uc30gb246ZnJldGJvYXJkSW5pdGlhbGl6ZWQ9e2FmdGVyRnJldGJvYXJkSW5pdH0vPlxuICAgIHsvaWZ9XG4gICAgPGRpdiBjbGFzcz1cImZvcm1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+ICBcbiAgICAgICAgPGRpdiBjbGFzcz1cImdyaWRcIj5cblxuICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJwYWRkaW5nLXRvcDogM3B4O1wiPlNob3cgY29ycmVjdCBub3Rlczo8L3NwYW4+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJzd2l0Y2hcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJzd2l0Y2hcIiBiaW5kOmNoZWNrZWQ9e3Nob3dBbGxDb3JyZWN0Tm90ZXN9PlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2xpZGVyIHJvdW5kXCI+PC9zcGFuPlxuICAgICAgICAgICAgPC9sYWJlbD5cblxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cImludGVydmFsQ2hlY2tcIj5TaG93IGludGVydmFsczo8L2xhYmVsPlxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9XCJpbnRlcnZhbENoZWNrXCIgaWQ9XCJpbnRlcnZhbENoZWNrXCIgdHlwZT1jaGVja2JveCBiaW5kOmNoZWNrZWQ9e2ludGVydmFsc0NoZWNrYm94fT5cbiAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgPCEtLSA8bGFiZWwgZm9yPVwiaW5jbHVkZUZsYXRzXCI+SW5jbHVkZSBmbGF0cy9zaGFycHM6PC9sYWJlbD5cbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImluY2x1ZGVGbGF0c1wiIG5hbWU9XCJpbmNsdWRlRmxhdHNcIiB0eXBlPWNoZWNrYm94IGJpbmQ6Y2hlY2tlZD17aW5jbHVkZUZsYXRzfT5cbiAgICAgICAgICAgIDwvc3Bhbj4gLS0+XG5cbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzZWxlY3Rib3hTb3VuZFwiPlNvdW5kOjwvbGFiZWw+XG4gICAgICAgICAgICA8c2VsZWN0IGlkPVwic2VsZWN0Ym94U291bmRcIiBuYW1lPVwic2VsZWN0Ym94U291bmRcIiBjbGFzcz1cInNlbGVjdGJveFNvdW5kXCIgYmluZDp2YWx1ZT17c291bmR9PlxuICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJub19zb3VuZFwiPk5vIHNvdW5kPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImVsZWN0cmljX2d1aXRhcl9jbGVhblwiPkVsZWN0cmljIGd1aXRhciBjbGVhbjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJlbGVjdHJpY19ndWl0YXJfamF6elwiPkVsZWN0cmljIGd1aXRhciBqYXp6PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImVsZWN0cmljX2d1aXRhcl9tdXRlZFwiPkVsZWN0cmljIGd1aXRhciBtdXRlZDwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJhY291c3RpY19ndWl0YXJfbnlsb25cIj5BY291c3RpYyBndWl0YXIgbnlsb248L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiYWNvdXN0aWNfZ3VpdGFyX3N0ZWVsXCI+QWNvdXN0aWMgZ3VpdGFyIHN0ZWVsPC9vcHRpb24+XG4gICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJjbGVhckJ1dHRvblwiIGlkPVwiaGVscFwiIG9uOmNsaWNrPXsoKSA9PiBjbGVhckNsaWNrZWQoKX0+Q2xlYXI8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9tYWluPlxuXG5cbjxzdHlsZT5cbiAgICAucmFuZG9tS2V5IHtcbiAgICAgICAgY29sb3I6ICMxZTgwOTQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgfVxuICAgIC5yZWZyZXNoe1xuICAgICAgICBmb250LXNpemU6IDEuMmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMjBweDsgXG4gICAgICAgIGNvbG9yOmJsYWNrXG4gICAgfVxuICAgIGE6aG92ZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuICAgIC5zZWxlY3RlZCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4NWI3Yzk7XG4gICAgfVxuICAgIC5idXR0b25TZWN0aW9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgICB9XG4gICAgLm1ham9yTWlub3Ige1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG4gICAgLm1ham9yTWlub3IgYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc2N3B4KSB7XG4gICAgICAgIC5tYWpvck1pbm9yIGJ1dHRvbiB7XG4gICAgICAgICAgICB3aWR0aDogOCU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiA0NXB4O1xuICAgICAgICAgICAgbWFyZ2luOiAxMHB4XG4gICAgICAgIH1cbiAgICAgICAgLyogLnNjYWxlcyBidXR0b24ge1xuICAgICAgICAgICAgd2lkdGg6IDEwJTtcbiAgICAgICAgfSAqL1xuICAgIH1cbiAgICAuY2xlYXJCdXR0b24ge1xuICAgICAgICB3aWR0aDogMTMwcHg7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwMHB4O1xuICAgICAgICBtYXJnaW4tdG9wOiA2MHB4O1xuICAgIH1cbiAgICAuY2xlYXJCdXR0b246YWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzg1YjdjOVxuICAgIH1cbiAgICAuc2VsZWN0Ym94U291bmQge1xuICAgICAgICBoZWlnaHQ6IDI0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogbWVkaXVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmOWY5O1xuICAgICAgICB0ZXh0LWFsaWduLWxhc3Q6IGNlbnRlcjtcbiAgICB9XG4gICAgZGl2LmdyaWR7XG4gICAgICAgIHJvdy1nYXA6IDE0cHg7XG4gICAgfVxuXG5cbiAgICAgLyogVGhlIHN3aXRjaCAtIHRoZSBib3ggYXJvdW5kIHRoZSBzbGlkZXIgKi9cbiAgICAuc3dpdGNoIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiA2MHB4O1xuICAgICAgICBoZWlnaHQ6IDM0cHg7XG4gICAgfVxuXG4gICAgLyogSGlkZSBkZWZhdWx0IEhUTUwgY2hlY2tib3ggKi9cbiAgICAuc3dpdGNoIGlucHV0IHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICB9XG5cbiAgICAvKiBUaGUgc2xpZGVyICovXG4gICAgLnNsaWRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2M7XG4gICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogLjRzO1xuICAgICAgICB0cmFuc2l0aW9uOiAuNHM7XG4gICAgfVxuXG4gICAgLnNsaWRlcjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIGhlaWdodDogMjZweDtcbiAgICAgICAgd2lkdGg6IDI2cHg7XG4gICAgICAgIGxlZnQ6IDRweDtcbiAgICAgICAgYm90dG9tOiA0cHg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAtd2Via2l0LXRyYW5zaXRpb246IC40cztcbiAgICAgICAgdHJhbnNpdGlvbjogLjRzO1xuICAgIH1cblxuICAgIGlucHV0OmNoZWNrZWQgKyAuc2xpZGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzg1YjdjOTtcbiAgICB9XG5cbiAgICBpbnB1dDpmb2N1cyArIC5zbGlkZXIge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMXB4ICM4NWI3Yzk7XG4gICAgfVxuXG4gICAgaW5wdXQ6Y2hlY2tlZCArIC5zbGlkZXI6YmVmb3JlIHtcbiAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjZweCk7XG4gICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMjZweCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyNnB4KTtcbiAgICB9XG5cbiAgICAvKiBSb3VuZGVkIHNsaWRlcnMgKi9cbiAgICAuc2xpZGVyLnJvdW5kIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMzRweDtcbiAgICB9XG5cbiAgICAuc2xpZGVyLnJvdW5kOmJlZm9yZSB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB9XG48L3N0eWxlPiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvYUksc0NBQVcsQ0FDUCxLQUFLLENBQUUsT0FBTyxDQUNkLFNBQVMsQ0FBRSxLQUNmLENBQ0Esb0NBQVEsQ0FDSixTQUFTLENBQUUsS0FBSyxDQUNoQixXQUFXLENBQUUsSUFBSSxDQUNqQixNQUFNLEtBQUs7QUFDbkIsSUFBSSxDQUNBLDZCQUFDLE1BQU8sQ0FDSixNQUFNLENBQUUsT0FDWixDQUNBLHFDQUFVLENBQ04sZ0JBQWdCLENBQUUsT0FDdEIsQ0FDQSwwQ0FBZSxDQUNYLE9BQU8sQ0FBRSxJQUFJLENBQ2IsY0FBYyxDQUFFLE1BQU0sQ0FDdEIsYUFBYSxDQUFFLElBQ25CLENBQ0EsdUNBQVksQ0FDUixPQUFPLENBQUUsSUFBSSxDQUNiLGVBQWUsQ0FBRSxNQUNyQixDQUNBLHlCQUFXLENBQUMsb0JBQU8sQ0FDZixLQUFLLENBQUUsR0FDWCxDQUNBLE1BQU8sWUFBWSxLQUFLLENBQUUsQ0FDdEIseUJBQVcsQ0FBQyxvQkFBTyxDQUNmLEtBQUssQ0FBRSxFQUFFLENBQ1QsU0FBUyxDQUFFLEtBQUssQ0FDaEIsTUFBTSxDQUFFLElBQUksQ0FDWixNQUFNLENBQUUsSUFBSTtBQUN4QixRQUFRLENBSUosQ0FDQSx3Q0FBYSxDQUNULEtBQUssQ0FBRSxLQUFLLENBQ1osTUFBTSxDQUFFLElBQUksQ0FDWixXQUFXLENBQUUsS0FBSyxDQUNsQixVQUFVLENBQUUsSUFDaEIsQ0FDQSx3Q0FBWSxPQUFRLENBQ2hCLGdCQUFnQixDQUFFLE9BQU87QUFDakMsSUFBSSxDQUNBLDJDQUFnQixDQUNaLE1BQU0sQ0FBRSxJQUFJLENBQ1osU0FBUyxDQUFFLE1BQU0sQ0FDakIsZ0JBQWdCLENBQUUsT0FBTyxDQUN6QixlQUFlLENBQUUsTUFDckIsQ0FDQSxHQUFHLGlDQUFLLENBQ0osT0FBTyxDQUFFLElBQ2IsQ0FJQSxtQ0FBUSxDQUNKLFFBQVEsQ0FBRSxRQUFRLENBQ2xCLE9BQU8sQ0FBRSxZQUFZLENBQ3JCLEtBQUssQ0FBRSxJQUFJLENBQ1gsTUFBTSxDQUFFLElBQ1osQ0FHQSxxQkFBTyxDQUFDLG1CQUFNLENBQ1YsT0FBTyxDQUFFLENBQUMsQ0FDVixLQUFLLENBQUUsQ0FBQyxDQUNSLE1BQU0sQ0FBRSxDQUNaLENBR0EsbUNBQVEsQ0FDSixRQUFRLENBQUUsUUFBUSxDQUNsQixNQUFNLENBQUUsT0FBTyxDQUNmLEdBQUcsQ0FBRSxDQUFDLENBQ04sSUFBSSxDQUFFLENBQUMsQ0FDUCxLQUFLLENBQUUsQ0FBQyxDQUNSLE1BQU0sQ0FBRSxDQUFDLENBQ1QsZ0JBQWdCLENBQUUsSUFBSSxDQUN0QixrQkFBa0IsQ0FBRSxHQUFHLENBQ3ZCLFVBQVUsQ0FBRSxHQUNoQixDQUVBLG1DQUFPLE9BQVEsQ0FDWCxRQUFRLENBQUUsUUFBUSxDQUNsQixPQUFPLENBQUUsRUFBRSxDQUNYLE1BQU0sQ0FBRSxJQUFJLENBQ1osS0FBSyxDQUFFLElBQUksQ0FDWCxJQUFJLENBQUUsR0FBRyxDQUNULE1BQU0sQ0FBRSxHQUFHLENBQ1gsZ0JBQWdCLENBQUUsS0FBSyxDQUN2QixrQkFBa0IsQ0FBRSxHQUFHLENBQ3ZCLFVBQVUsQ0FBRSxHQUNoQixDQUVBLG1CQUFLLFFBQVEsQ0FBRyxxQkFBUSxDQUNwQixnQkFBZ0IsQ0FBRSxPQUN0QixDQUVBLG1CQUFLLE1BQU0sQ0FBRyxxQkFBUSxDQUNsQixVQUFVLENBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FDeEIsQ0FFQSxtQkFBSyxRQUFRLENBQUcscUJBQU8sT0FBUSxDQUMzQixpQkFBaUIsQ0FBRSxXQUFXLElBQUksQ0FBQyxDQUNuQyxhQUFhLENBQUUsV0FBVyxJQUFJLENBQUMsQ0FDL0IsU0FBUyxDQUFFLFdBQVcsSUFBSSxDQUM5QixDQUdBLE9BQU8sa0NBQU8sQ0FDVixhQUFhLENBQUUsSUFDbkIsQ0FFQSxPQUFPLGtDQUFNLE9BQVEsQ0FDakIsYUFBYSxDQUFFLEdBQ25CIn0= */
