@libresign/pdf-elements 1.1.0 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const Z = "data:text/javascript;base64,LyoqCiAqIEBsaWNzdGFydCBUaGUgZm9sbG93aW5nIGlzIHRoZSBlbnRpcmUgbGljZW5zZSBub3RpY2UgZm9yIHRoZQogKiBKYXZhU2NyaXB0IGNvZGUgaW4gdGhpcyBwYWdlCiAqCiAqIENvcHlyaWdodCAyMDI0IE1vemlsbGEgRm91bmRhdGlvbgogKgogKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKICoKICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogKgogKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgogKgogKiBAbGljZW5kIFRoZSBhYm92ZSBpcyB0aGUgZW50aXJlIGxpY2Vuc2Ugbm90aWNlIGZvciB0aGUKICogSmF2YVNjcmlwdCBjb2RlIGluIHRoaXMgcGFnZQogKi8KLyoqCiAqIHBkZmpzVmVyc2lvbiA9IDUuNS4yMDcKICogcGRmanNCdWlsZCA9IDUyNzk2NDY5OAogKi92YXIgZT17OTMwNihlLHQsbil7dmFyIGE9big0OTAxKSxyPW4oNjgyMykscz1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKGEoZSkpcmV0dXJuIGU7dGhyb3cgbmV3IHMocihlKSsiIGlzIG5vdCBhIGZ1bmN0aW9uIil9fSw2MTk0KGUsdCxuKXt2YXIgYT1uKDIyNDgpLmhhcztlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7YShlKTtyZXR1cm4gZX19LDM1MDYoZSx0LG4pe3ZhciBhPW4oMzkyNSkscj1TdHJpbmcscz1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKGEoZSkpcmV0dXJuIGU7dGhyb3cgbmV3IHMoIkNhbid0IHNldCAiK3IoZSkrIiBhcyBhIHByb3RvdHlwZSIpfX0sNzA4MChlLHQsbil7dmFyIGE9big0NDAyKS5oYXM7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2EoZSk7cmV0dXJuIGV9fSwzNDYzKGUpe3ZhciB0PVR5cGVFcnJvcjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiBlO3Rocm93IG5ldyB0KCJBcmd1bWVudCBpcyBub3QgYSBzdHJpbmciKX19LDQzMjgoZSx0LG4pe3ZhciBhPW4oNDk5NSkscj1uZXcgYS5XZWFrTWFwLHM9YS5zZXQsaT1hLnJlbW92ZTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cyhyLGUsMSk7aShyLGUpO3JldHVybiBlfX0sNjU1NyhlLHQsbil7dmFyIGE9big0OTk1KS5oYXM7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2EoZSk7cmV0dXJuIGV9fSw2NzkoZSx0LG4pe3ZhciBhPW4oMTYyNSkscj1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7aWYoYSh0LGUpKXJldHVybiBlO3Rocm93IG5ldyByKCJJbmNvcnJlY3QgaW52b2NhdGlvbiIpfX0sMzk3MihlLHQsbil7dmFyIGE9bigzNCkscj1TdHJpbmcscz1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKHZvaWQgMD09PWV8fGEoZSkpcmV0dXJuIGU7dGhyb3cgbmV3IHMocihlKSsiIGlzIG5vdCBhbiBvYmplY3Qgb3IgdW5kZWZpbmVkIil9fSw4NTUxKGUsdCxuKXt2YXIgYT1uKDM0KSxyPVN0cmluZyxzPVR5cGVFcnJvcjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoYShlKSlyZXR1cm4gZTt0aHJvdyBuZXcgcyhyKGUpKyIgaXMgbm90IGFuIG9iamVjdCIpfX0sNDE1NChlLHQsbil7dmFyIGE9big2OTU1KSxyPVR5cGVFcnJvcjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoIlVpbnQ4QXJyYXkiPT09YShlKSlyZXR1cm4gZTt0aHJvdyBuZXcgcigiQXJndW1lbnQgaXMgbm90IGFuIFVpbnQ4QXJyYXkiKX19LDc4MTEoZSl7ZS5leHBvcnRzPSJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJiJ1bmRlZmluZWQiIT10eXBlb2YgRGF0YVZpZXd9LDczOTQoZSx0LG4pe3ZhciBhPW4oNDU3Nikscj1uKDY3MDYpLHM9bigyMTk1KSxpPWEuQXJyYXlCdWZmZXIsbz1hLlR5cGVFcnJvcjtlLmV4cG9ydHM9aSYmcihpLnByb3RvdHlwZSwiYnl0ZUxlbmd0aCIsImdldCIpfHxmdW5jdGlvbihlKXtpZigiQXJyYXlCdWZmZXIiIT09cyhlKSl0aHJvdyBuZXcgbygiQXJyYXlCdWZmZXIgZXhwZWN0ZWQiKTtyZXR1cm4gZS5ieXRlTGVuZ3RofX0sMzIzOChlLHQsbil7dmFyIGE9big0NTc2KSxyPW4oNzgxMSkscz1uKDczOTQpLGk9YS5EYXRhVmlldztlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoIXJ8fDAhPT1zKGUpKXJldHVybiExO3RyeXtuZXcgaShlKTtyZXR1cm4hMX1jYXRjaChlKXtyZXR1cm4hMH19fSw1MTY5KGUsdCxuKXt2YXIgYT1uKDMyMzgpLHI9VHlwZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihhKGUpKXRocm93IG5ldyByKCJBcnJheUJ1ZmZlciBpcyBkZXRhY2hlZCIpO3JldHVybiBlfX0sNTYzNihlLHQsbil7dmFyIGE9big0NTc2KSxyPW4oOTUwNCkscz1uKDY3MDYpLGk9big3Njk2KSxvPW4oNTE2OSksbD1uKDczOTQpLGY9big0NDgzKSxjPW4oMTU0OCksaD1hLnN0cnVjdHVyZWRDbG9uZSx1PWEuQXJyYXlCdWZmZXIsbT1hLkRhdGFWaWV3LHA9TWF0aC5taW4sZD11LnByb3RvdHlwZSxnPW0ucHJvdG90eXBlLGI9cihkLnNsaWNlKSx3PXMoZCwicmVzaXphYmxlIiwiZ2V0Iiksaj1zKGQsIm1heEJ5dGVMZW5ndGgiLCJnZXQiKSxrPXIoZy5nZXRJbnQ4KSx5PXIoZy5zZXRJbnQ4KTtlLmV4cG9ydHM9KGN8fGYpJiZmdW5jdGlvbihlLHQsbil7dmFyIGEscj1sKGUpLHM9dm9pZCAwPT09dD9yOmkodCksZD0hd3x8IXcoZSk7byhlKTtpZihjKXtlPWgoZSx7dHJhbnNmZXI6W2VdfSk7aWYocj09PXMmJihufHxkKSlyZXR1cm4gZX1pZihyPj1zJiYoIW58fGQpKWE9YihlLDAscyk7ZWxzZXt2YXIgZz1uJiYhZCYmaj97bWF4Qnl0ZUxlbmd0aDpqKGUpfTp2b2lkIDA7YT1uZXcgdShzLGcpO2Zvcih2YXIgcT1uZXcgbShlKSx2PW5ldyBtKGEpLFM9cChzLHIpLHg9MDt4PFM7eCsrKXkodix4LGsocSx4KSl9Y3x8ZihlKTtyZXR1cm4gYX19LDQ2NDQoZSx0LG4pe3ZhciBhLHIscyxpPW4oNzgxMSksbz1uKDM3MjQpLGw9big0NTc2KSxmPW4oNDkwMSksYz1uKDM0KSxoPW4oOTI5NyksdT1uKDY5NTUpLG09big2ODIzKSxwPW4oNjY5OSksZD1uKDY4NDApLGc9bigyMTA2KSxiPW4oMTYyNSksdz1uKDI3ODcpLGo9bigyOTY3KSxrPW4oODIyNykseT1uKDMzOTIpLHE9bigxMTgxKSx2PXEuZW5mb3JjZSxTPXEuZ2V0LHg9bC5JbnQ4QXJyYXksQz14JiZ4LnByb3RvdHlwZSxUPWwuVWludDhDbGFtcGVkQXJyYXksTz1UJiZULnByb3RvdHlwZSxSPXgmJncoeCksSD1DJiZ3KEMpLEQ9T2JqZWN0LnByb3RvdHlwZSxNPWwuVHlwZUVycm9yLEU9aygidG9TdHJpbmdUYWciKSxOPXkoIlRZUEVEX0FSUkFZX1RBRyIpLHo9IlR5cGVkQXJyYXlDb25zdHJ1Y3RvciIsXz1pJiYhIWomJiJPcGVyYSIhPT11KGwub3BlcmEpLEw9ITEsVT17SW50OEFycmF5OjEsVWludDhBcnJheToxLFVpbnQ4Q2xhbXBlZEFycmF5OjEsSW50MTZBcnJheToyLFVpbnQxNkFycmF5OjIsSW50MzJBcnJheTo0LFVpbnQzMkFycmF5OjQsRmxvYXQzMkFycmF5OjQsRmxvYXQ2NEFycmF5Ojh9LFg9e0JpZ0ludDY0QXJyYXk6OCxCaWdVaW50NjRBcnJheTo4fSxnZXRUeXBlZEFycmF5Q29uc3RydWN0b3I9ZnVuY3Rpb24oZSl7dmFyIHQ9dyhlKTtpZihjKHQpKXt2YXIgbj1TKHQpO3JldHVybiBuJiZoKG4seik/blt6XTpnZXRUeXBlZEFycmF5Q29uc3RydWN0b3IodCl9fSxpc1R5cGVkQXJyYXk9ZnVuY3Rpb24oZSl7aWYoIWMoZSkpcmV0dXJuITE7dmFyIHQ9dShlKTtyZXR1cm4gaChVLHQpfHxoKFgsdCl9O2ZvcihhIGluIFUpKHM9KHI9bFthXSkmJnIucHJvdG90eXBlKT92KHMpW3pdPXI6Xz0hMTtmb3IoYSBpbiBYKShzPShyPWxbYV0pJiZyLnByb3RvdHlwZSkmJih2KHMpW3pdPXIpO2lmKCFffHwhZihSKXx8Uj09PUZ1bmN0aW9uLnByb3RvdHlwZSl7Uj1mdW5jdGlvbiBUeXBlZEFycmF5KCl7dGhyb3cgbmV3IE0oIkluY29ycmVjdCBpbnZvY2F0aW9uIil9O2lmKF8pZm9yKGEgaW4gVSlsW2FdJiZqKGxbYV0sUil9aWYoIV98fCFIfHxIPT09RCl7SD1SLnByb3RvdHlwZTtpZihfKWZvcihhIGluIFUpbFthXSYmaihsW2FdLnByb3RvdHlwZSxIKX1fJiZ3KE8pIT09SCYmaihPLEgpO2lmKG8mJiFoKEgsRSkpe0w9ITA7ZyhILEUse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYyh0aGlzKT90aGlzW05dOnZvaWQgMH19KTtmb3IoYSBpbiBVKWxbYV0mJnAobFthXSxOLGEpfWUuZXhwb3J0cz17TkFUSVZFX0FSUkFZX0JVRkZFUl9WSUVXUzpfLFRZUEVEX0FSUkFZX1RBRzpMJiZOLGFUeXBlZEFycmF5OmZ1bmN0aW9uKGUpe2lmKGlzVHlwZWRBcnJheShlKSlyZXR1cm4gZTt0aHJvdyBuZXcgTSgiVGFyZ2V0IGlzIG5vdCBhIHR5cGVkIGFycmF5Iil9LGFUeXBlZEFycmF5Q29uc3RydWN0b3I6ZnVuY3Rpb24oZSl7aWYoZihlKSYmKCFqfHxiKFIsZSkpKXJldHVybiBlO3Rocm93IG5ldyBNKG0oZSkrIiBpcyBub3QgYSB0eXBlZCBhcnJheSBjb25zdHJ1Y3RvciIpfSxleHBvcnRUeXBlZEFycmF5TWV0aG9kOmZ1bmN0aW9uKGUsdCxuLGEpe2lmKG8pe2lmKG4pZm9yKHZhciByIGluIFUpe3ZhciBzPWxbcl07aWYocyYmaChzLnByb3RvdHlwZSxlKSl0cnl7ZGVsZXRlIHMucHJvdG90eXBlW2VdfWNhdGNoKG4pe3RyeXtzLnByb3RvdHlwZVtlXT10fWNhdGNoKGUpe319fUhbZV0mJiFufHxkKEgsZSxuP3Q6XyYmQ1tlXXx8dCxhKX19LGV4cG9ydFR5cGVkQXJyYXlTdGF0aWNNZXRob2Q6ZnVuY3Rpb24oZSx0LG4pe3ZhciBhLHI7aWYobyl7aWYoail7aWYobilmb3IoYSBpbiBVKWlmKChyPWxbYV0pJiZoKHIsZSkpdHJ5e2RlbGV0ZSByW2VdfWNhdGNoKGUpe31pZihSW2VdJiYhbilyZXR1cm47dHJ5e3JldHVybiBkKFIsZSxuP3Q6XyYmUltlXXx8dCl9Y2F0Y2goZSl7fX1mb3IoYSBpbiBVKSEocj1sW2FdKXx8cltlXSYmIW58fGQocixlLHQpfX0sZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yLGlzVmlldzpmdW5jdGlvbiBpc1ZpZXcoZSl7aWYoIWMoZSkpcmV0dXJuITE7dmFyIHQ9dShlKTtyZXR1cm4iRGF0YVZpZXciPT09dHx8aChVLHQpfHxoKFgsdCl9LGlzVHlwZWRBcnJheSxUeXBlZEFycmF5OlIsVHlwZWRBcnJheVByb3RvdHlwZTpIfX0sNTM3MChlLHQsbil7dmFyIGE9big2MTk4KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcj0wLHM9YXJndW1lbnRzLmxlbmd0aD4yP246YSh0KSxpPW5ldyBlKHMpO3M+cjspaVtyXT10W3IrK107cmV0dXJuIGl9fSw5NjE3KGUsdCxuKXt2YXIgYT1uKDUzOTcpLHI9big1NjEwKSxzPW4oNjE5OCksY3JlYXRlTWV0aG9kPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0LG4saSl7dmFyIG89YSh0KSxsPXMobyk7aWYoMD09PWwpcmV0dXJuIWUmJi0xO3ZhciBmLGM9cihpLGwpO2lmKGUmJm4hPW4pe2Zvcig7bD5jOylpZigoZj1vW2MrK10pIT1mKXJldHVybiEwfWVsc2UgZm9yKDtsPmM7YysrKWlmKChlfHxjIGluIG8pJiZvW2NdPT09bilyZXR1cm4gZXx8Y3x8MDtyZXR1cm4hZSYmLTF9fTtlLmV4cG9ydHM9e2luY2x1ZGVzOmNyZWF0ZU1ldGhvZCghMCksaW5kZXhPZjpjcmVhdGVNZXRob2QoITEpfX0sNDUyNyhlLHQsbil7dmFyIGE9bigzNzI0KSxyPW4oNDM3Nikscz1UeXBlRXJyb3IsaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLG89YSYmIWZ1bmN0aW9uKCl7aWYodm9pZCAwIT09dGhpcylyZXR1cm4hMDt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KFtdLCJsZW5ndGgiLHt3cml0YWJsZTohMX0pLmxlbmd0aD0xfWNhdGNoKGUpe3JldHVybiBlIGluc3RhbmNlb2YgVHlwZUVycm9yfX0oKTtlLmV4cG9ydHM9bz9mdW5jdGlvbihlLHQpe2lmKHIoZSkmJiFpKGUsImxlbmd0aCIpLndyaXRhYmxlKXRocm93IG5ldyBzKCJDYW5ub3Qgc2V0IHJlYWQgb25seSAubGVuZ3RoIik7cmV0dXJuIGUubGVuZ3RoPXR9OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUubGVuZ3RoPXR9fSw3NjgwKGUsdCxuKXt2YXIgYT1uKDk1MDQpO2UuZXhwb3J0cz1hKFtdLnNsaWNlKX0sMjgwNChlKXt2YXIgdD0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkiLG49dCsiKy8iLGE9dCsiLV8iLGludmVyc2U9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXt9LG49MDtuPDY0O24rKyl0W2UuY2hhckF0KG4pXT1uO3JldHVybiB0fTtlLmV4cG9ydHM9e2kyYzpuLGMyaTppbnZlcnNlKG4pLGkyY1VybDphLGMyaVVybDppbnZlcnNlKGEpfX0sNjMxOShlLHQsbil7dmFyIGE9big4NTUxKSxyPW4oOTUzOSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuLHMpe3RyeXtyZXR1cm4gcz90KGEobilbMF0sblsxXSk6dChuKX1jYXRjaCh0KXtyKGUsInRocm93Iix0KX19fSwyMTk1KGUsdCxuKXt2YXIgYT1uKDk1MDQpLHI9YSh7fS50b1N0cmluZykscz1hKCIiLnNsaWNlKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHMocihlKSw4LC0xKX19LDY5NTUoZSx0LG4pe3ZhciBhPW4oMjE0MCkscj1uKDQ5MDEpLHM9bigyMTk1KSxpPW4oODIyNykoInRvU3RyaW5nVGFnIiksbz1PYmplY3QsbD0iQXJndW1lbnRzIj09PXMoZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSgpKTtlLmV4cG9ydHM9YT9zOmZ1bmN0aW9uKGUpe3ZhciB0LG4sYTtyZXR1cm4gdm9pZCAwPT09ZT8iVW5kZWZpbmVkIjpudWxsPT09ZT8iTnVsbCI6InN0cmluZyI9PXR5cGVvZihuPWZ1bmN0aW9uKGUsdCl7dHJ5e3JldHVybiBlW3RdfWNhdGNoKGUpe319KHQ9byhlKSxpKSk/bjpsP3ModCk6Ik9iamVjdCI9PT0oYT1zKHQpKSYmcih0LmNhbGxlZSk/IkFyZ3VtZW50cyI6YX19LDc3NDAoZSx0LG4pe3ZhciBhPW4oOTI5Nykscj1uKDUwMzEpLHM9big3MzQ3KSxpPW4oNDkxMyk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIG89cih0KSxsPWkuZixmPXMuZixjPTA7YzxvLmxlbmd0aDtjKyspe3ZhciBoPW9bY107YShlLGgpfHxuJiZhKG4saCl8fGwoZSxoLGYodCxoKSl9fX0sMjIxMShlLHQsbil7dmFyIGE9big5MDM5KTtlLmV4cG9ydHM9IWEoZnVuY3Rpb24oKXtmdW5jdGlvbiBGKCl7fUYucHJvdG90eXBlLmNvbnN0cnVjdG9yPW51bGw7cmV0dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZihuZXcgRikhPT1GLnByb3RvdHlwZX0pfSwyNTI5KGUpe2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybnt2YWx1ZTplLGRvbmU6dH19fSw2Njk5KGUsdCxuKXt2YXIgYT1uKDM3MjQpLHI9big0OTEzKSxzPW4oNjk4MCk7ZS5leHBvcnRzPWE/ZnVuY3Rpb24oZSx0LG4pe3JldHVybiByLmYoZSx0LHMoMSxuKSl9OmZ1bmN0aW9uKGUsdCxuKXtlW3RdPW47cmV0dXJuIGV9fSw2OTgwKGUpe2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybntlbnVtZXJhYmxlOiEoMSZlKSxjb25maWd1cmFibGU6ISgyJmUpLHdyaXRhYmxlOiEoNCZlKSx2YWx1ZTp0fX19LDQ2NTkoZSx0LG4pe3ZhciBhPW4oMzcyNCkscj1uKDQ5MTMpLHM9big2OTgwKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe2E/ci5mKGUsdCxzKDAsbikpOmVbdF09bn19LDIxMDYoZSx0LG4pe3ZhciBhPW4oMjgzKSxyPW4oNDkxMyk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXtuLmdldCYmYShuLmdldCx0LHtnZXR0ZXI6ITB9KTtuLnNldCYmYShuLnNldCx0LHtzZXR0ZXI6ITB9KTtyZXR1cm4gci5mKGUsdCxuKX19LDY4NDAoZSx0LG4pe3ZhciBhPW4oNDkwMSkscj1uKDQ5MTMpLHM9bigyODMpLGk9big5NDMzKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4sbyl7b3x8KG89e30pO3ZhciBsPW8uZW51bWVyYWJsZSxmPXZvaWQgMCE9PW8ubmFtZT9vLm5hbWU6dDthKG4pJiZzKG4sZixvKTtpZihvLmdsb2JhbClsP2VbdF09bjppKHQsbik7ZWxzZXt0cnl7by51bnNhZmU/ZVt0XSYmKGw9ITApOmRlbGV0ZSBlW3RdfWNhdGNoKGUpe31sP2VbdF09bjpyLmYoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiFvLm5vbkNvbmZpZ3VyYWJsZSx3cml0YWJsZTohby5ub25Xcml0YWJsZX0pfXJldHVybiBlfX0sNjI3OShlLHQsbil7dmFyIGE9big2ODQwKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgciBpbiB0KWEoZSxyLHRbcl0sbik7cmV0dXJuIGV9fSw5NDMzKGUsdCxuKXt2YXIgYT1uKDQ1NzYpLHI9T2JqZWN0LmRlZmluZVByb3BlcnR5O2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3RyeXtyKGEsZSx7dmFsdWU6dCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KX1jYXRjaChuKXthW2VdPXR9cmV0dXJuIHR9fSwzNzI0KGUsdCxuKXt2YXIgYT1uKDkwMzkpO2UuZXhwb3J0cz0hYShmdW5jdGlvbigpe3JldHVybiA3IT09T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LDEse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pWzFdfSl9LDQ0ODMoZSx0LG4pe3ZhciBhLHIscyxpLG89big0NTc2KSxsPW4oOTQyOSksZj1uKDE1NDgpLGM9by5zdHJ1Y3R1cmVkQ2xvbmUsaD1vLkFycmF5QnVmZmVyLHU9by5NZXNzYWdlQ2hhbm5lbCxtPSExO2lmKGYpbT1mdW5jdGlvbihlKXtjKGUse3RyYW5zZmVyOltlXX0pfTtlbHNlIGlmKGgpdHJ5e3V8fChhPWwoIndvcmtlcl90aHJlYWRzIikpJiYodT1hLk1lc3NhZ2VDaGFubmVsKTtpZih1KXtyPW5ldyB1O3M9bmV3IGgoMik7aT1mdW5jdGlvbihlKXtyLnBvcnQxLnBvc3RNZXNzYWdlKG51bGwsW2VdKX07aWYoMj09PXMuYnl0ZUxlbmd0aCl7aShzKTswPT09cy5ieXRlTGVuZ3RoJiYobT1pKX19fWNhdGNoKGUpe31lLmV4cG9ydHM9bX0sNDA1NShlLHQsbil7dmFyIGE9big0NTc2KSxyPW4oMzQpLHM9YS5kb2N1bWVudCxpPXIocykmJnIocy5jcmVhdGVFbGVtZW50KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGk/cy5jcmVhdGVFbGVtZW50KGUpOnt9fX0sNjgzNyhlKXt2YXIgdD1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKGU+OTAwNzE5OTI1NDc0MDk5MSl0aHJvdyB0KCJNYXhpbXVtIGFsbG93ZWQgaW5kZXggZXhjZWVkZWQiKTtyZXR1cm4gZX19LDg3MjcoZSl7ZS5leHBvcnRzPVsiY29uc3RydWN0b3IiLCJoYXNPd25Qcm9wZXJ0eSIsImlzUHJvdG90eXBlT2YiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInRvTG9jYWxlU3RyaW5nIiwidG9TdHJpbmciLCJ2YWx1ZU9mIl19LDYxOTMoZSx0LG4pe3ZhciBhPW4oNDIxNSk7ZS5leHBvcnRzPSJOT0RFIj09PWF9LDI4MzkoZSx0LG4pe3ZhciBhPW4oNDU3NikubmF2aWdhdG9yLHI9YSYmYS51c2VyQWdlbnQ7ZS5leHBvcnRzPXI/U3RyaW5nKHIpOiIifSw5NTE5KGUsdCxuKXt2YXIgYSxyLHM9big0NTc2KSxpPW4oMjgzOSksbz1zLnByb2Nlc3MsbD1zLkRlbm8sZj1vJiZvLnZlcnNpb25zfHxsJiZsLnZlcnNpb24sYz1mJiZmLnY4O2MmJihyPShhPWMuc3BsaXQoIi4iKSlbMF0+MCYmYVswXTw0PzE6KyhhWzBdK2FbMV0pKTshciYmaSYmKCEoYT1pLm1hdGNoKC9FZGdlXC8oXGQrKS8pKXx8YVsxXT49NzQpJiYoYT1pLm1hdGNoKC9DaHJvbWVcLyhcZCspLykpJiYocj0rYVsxXSk7ZS5leHBvcnRzPXJ9LDQyMTUoZSx0LG4pe3ZhciBhPW4oNDU3Nikscj1uKDI4MzkpLHM9bigyMTk1KSx1c2VyQWdlbnRTdGFydHNXaXRoPWZ1bmN0aW9uKGUpe3JldHVybiByLnNsaWNlKDAsZS5sZW5ndGgpPT09ZX07ZS5leHBvcnRzPXVzZXJBZ2VudFN0YXJ0c1dpdGgoIkJ1bi8iKT8iQlVOIjp1c2VyQWdlbnRTdGFydHNXaXRoKCJDbG91ZGZsYXJlLVdvcmtlcnMiKT8iQ0xPVURGTEFSRSI6dXNlckFnZW50U3RhcnRzV2l0aCgiRGVuby8iKT8iREVOTyI6dXNlckFnZW50U3RhcnRzV2l0aCgiTm9kZS5qcy8iKT8iTk9ERSI6YS5CdW4mJiJzdHJpbmciPT10eXBlb2YgQnVuLnZlcnNpb24/IkJVTiI6YS5EZW5vJiYib2JqZWN0Ij09dHlwZW9mIERlbm8udmVyc2lvbj8iREVOTyI6InByb2Nlc3MiPT09cyhhLnByb2Nlc3MpPyJOT0RFIjphLndpbmRvdyYmYS5kb2N1bWVudD8iQlJPV1NFUiI6IlJFU1QifSw2NTE4KGUsdCxuKXt2YXIgYT1uKDQ1NzYpLHI9big3MzQ3KS5mLHM9big2Njk5KSxpPW4oNjg0MCksbz1uKDk0MzMpLGw9big3NzQwKSxmPW4oMjc5Nik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIG4sYyxoLHUsbSxwPWUudGFyZ2V0LGQ9ZS5nbG9iYWwsZz1lLnN0YXQ7aWYobj1kP2E6Zz9hW3BdfHxvKHAse30pOmFbcF0mJmFbcF0ucHJvdG90eXBlKWZvcihjIGluIHQpe3U9dFtjXTtoPWUuZG9udENhbGxHZXRTZXQ/KG09cihuLGMpKSYmbS52YWx1ZTpuW2NdO2lmKCFmKGQ/YzpwKyhnPyIuIjoiIyIpK2MsZS5mb3JjZWQpJiZ2b2lkIDAhPT1oKXtpZih0eXBlb2YgdT09dHlwZW9mIGgpY29udGludWU7bCh1LGgpfShlLnNoYW18fGgmJmguc2hhbSkmJnModSwic2hhbSIsITApO2kobixjLHUsZSl9fX0sOTAzOShlKXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dHJ5e3JldHVybiEhZSgpfWNhdGNoKGUpe3JldHVybiEwfX19LDg3NDUoZSx0LG4pe3ZhciBhPW4oNjE2KSxyPUZ1bmN0aW9uLnByb3RvdHlwZSxzPXIuYXBwbHksaT1yLmNhbGw7ZS5leHBvcnRzPSJvYmplY3QiPT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5hcHBseXx8KGE/aS5iaW5kKHMpOmZ1bmN0aW9uKCl7cmV0dXJuIGkuYXBwbHkocyxhcmd1bWVudHMpfSl9LDYwODAoZSx0LG4pe3ZhciBhPW4oNzQ3Nikscj1uKDkzMDYpLHM9big2MTYpLGk9YShhLmJpbmQpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3IoZSk7cmV0dXJuIHZvaWQgMD09PXQ/ZTpzP2koZSx0KTpmdW5jdGlvbigpe3JldHVybiBlLmFwcGx5KHQsYXJndW1lbnRzKX19fSw2MTYoZSx0LG4pe3ZhciBhPW4oOTAzOSk7ZS5leHBvcnRzPSFhKGZ1bmN0aW9uKCl7dmFyIGU9ZnVuY3Rpb24oKXt9LmJpbmQoKTtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgZXx8ZS5oYXNPd25Qcm9wZXJ0eSgicHJvdG90eXBlIil9KX0sOTU2NShlLHQsbil7dmFyIGE9big2MTYpLHI9RnVuY3Rpb24ucHJvdG90eXBlLmNhbGw7ZS5leHBvcnRzPWE/ci5iaW5kKHIpOmZ1bmN0aW9uKCl7cmV0dXJuIHIuYXBwbHkocixhcmd1bWVudHMpfX0sMzUwKGUsdCxuKXt2YXIgYT1uKDM3MjQpLHI9big5Mjk3KSxzPUZ1bmN0aW9uLnByb3RvdHlwZSxpPWEmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Isbz1yKHMsIm5hbWUiKSxsPW8mJiJzb21ldGhpbmciPT09ZnVuY3Rpb24gc29tZXRoaW5nKCl7fS5uYW1lLGY9byYmKCFhfHxhJiZpKHMsIm5hbWUiKS5jb25maWd1cmFibGUpO2UuZXhwb3J0cz17RVhJU1RTOm8sUFJPUEVSOmwsQ09ORklHVVJBQkxFOmZ9fSw2NzA2KGUsdCxuKXt2YXIgYT1uKDk1MDQpLHI9big5MzA2KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3RyeXtyZXR1cm4gYShyKE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KVtuXSkpfWNhdGNoKGUpe319fSw3NDc2KGUsdCxuKXt2YXIgYT1uKDIxOTUpLHI9big5NTA0KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoIkZ1bmN0aW9uIj09PWEoZSkpcmV0dXJuIHIoZSl9fSw5NTA0KGUsdCxuKXt2YXIgYT1uKDYxNikscj1GdW5jdGlvbi5wcm90b3R5cGUscz1yLmNhbGwsaT1hJiZyLmJpbmQuYmluZChzLHMpO2UuZXhwb3J0cz1hP2k6ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHMuYXBwbHkoZSxhcmd1bWVudHMpfX19LDk0NChlKXt2YXIgdD1UeXBlRXJyb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciBuPWUmJmUuYWxwaGFiZXQ7aWYodm9pZCAwPT09bnx8ImJhc2U2NCI9PT1ufHwiYmFzZTY0dXJsIj09PW4pcmV0dXJuIG58fCJiYXNlNjQiO3Rocm93IG5ldyB0KCJJbmNvcnJlY3QgYGFscGhhYmV0YCBvcHRpb24iKX19LDk0MjkoZSx0LG4pe3ZhciBhPW4oNDU3Nikscj1uKDYxOTMpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihyKXt0cnl7cmV0dXJuIGEucHJvY2Vzcy5nZXRCdWlsdGluTW9kdWxlKGUpfWNhdGNoKGUpe310cnl7cmV0dXJuIEZ1bmN0aW9uKCdyZXR1cm4gcmVxdWlyZSgiJytlKyciKScpKCl9Y2F0Y2goZSl7fX19fSw3NzUxKGUsdCxuKXt2YXIgYT1uKDQ1NzYpLHI9big0OTAxKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyPyhuPWFbZV0scihuKT9uOnZvaWQgMCk6YVtlXSYmYVtlXVt0XTt2YXIgbn19LDE3NjcoZSl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybntpdGVyYXRvcjplLG5leHQ6ZS5uZXh0LGRvbmU6ITF9fX0sODY0NihlLHQsbil7dmFyIGE9big5NTY1KSxyPW4oODU1MSkscz1uKDE3NjcpLGk9big4NTEpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3QmJiJzdHJpbmciPT10eXBlb2YgZXx8cihlKTt2YXIgbj1pKGUpO3JldHVybiBzKHIodm9pZCAwIT09bj9hKG4sZSk6ZSkpfX0sODUxKGUsdCxuKXt2YXIgYT1uKDY5NTUpLHI9big1OTY2KSxzPW4oNDExNyksaT1uKDYyNjkpLG89big4MjI3KSgiaXRlcmF0b3IiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYoIXMoZSkpcmV0dXJuIHIoZSxvKXx8cihlLCJAQGl0ZXJhdG9yIil8fGlbYShlKV19fSw4MShlLHQsbil7dmFyIGE9big5NTY1KSxyPW4oOTMwNikscz1uKDg1NTEpLGk9big2ODIzKSxvPW4oODUxKSxsPVR5cGVFcnJvcjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoPDI/byhlKTp0O2lmKHIobikpcmV0dXJuIHMoYShuLGUpKTt0aHJvdyBuZXcgbChpKGUpKyIgaXMgbm90IGl0ZXJhYmxlIil9fSw1OTY2KGUsdCxuKXt2YXIgYT1uKDkzMDYpLHI9big0MTE3KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbj1lW3RdO3JldHVybiByKG4pP3ZvaWQgMDphKG4pfX0sMzc4OShlLHQsbil7dmFyIGE9big5MzA2KSxyPW4oODU1MSkscz1uKDk1NjUpLGk9bigxMjkxKSxvPW4oMTc2NyksbD0iSW52YWxpZCBzaXplIixmPVJhbmdlRXJyb3IsYz1UeXBlRXJyb3IsaD1NYXRoLm1heCxTZXRSZWNvcmQ9ZnVuY3Rpb24oZSx0KXt0aGlzLnNldD1lO3RoaXMuc2l6ZT1oKHQsMCk7dGhpcy5oYXM9YShlLmhhcyk7dGhpcy5rZXlzPWEoZS5rZXlzKX07U2V0UmVjb3JkLnByb3RvdHlwZT17Z2V0SXRlcmF0b3I6ZnVuY3Rpb24oKXtyZXR1cm4gbyhyKHModGhpcy5rZXlzLHRoaXMuc2V0KSkpfSxpbmNsdWRlczpmdW5jdGlvbihlKXtyZXR1cm4gcyh0aGlzLmhhcyx0aGlzLnNldCxlKX19O2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyKGUpO3ZhciB0PStlLnNpemU7aWYodCE9dCl0aHJvdyBuZXcgYyhsKTt2YXIgbj1pKHQpO2lmKG48MCl0aHJvdyBuZXcgZihsKTtyZXR1cm4gbmV3IFNldFJlY29yZChlLG4pfX0sNDU3NihlKXt2YXIgY2hlY2s9ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJmUuTWF0aD09PU1hdGgmJmV9O2UuZXhwb3J0cz1jaGVjaygib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMpfHxjaGVjaygib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93KXx8Y2hlY2soIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmKXx8Y2hlY2soIm9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbCl8fGNoZWNrKCJvYmplY3QiPT10eXBlb2YgdGhpcyYmdGhpcyl8fGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KCl8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCl9LDkyOTcoZSx0LG4pe3ZhciBhPW4oOTUwNCkscj1uKDg5ODEpLHM9YSh7fS5oYXNPd25Qcm9wZXJ0eSk7ZS5leHBvcnRzPU9iamVjdC5oYXNPd258fGZ1bmN0aW9uIGhhc093bihlLHQpe3JldHVybiBzKHIoZSksdCl9fSw0MjEoZSl7ZS5leHBvcnRzPXt9fSwzOTcoZSx0LG4pe3ZhciBhPW4oNzc1MSk7ZS5leHBvcnRzPWEoImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50Iil9LDU5MTcoZSx0LG4pe3ZhciBhPW4oMzcyNCkscj1uKDkwMzkpLHM9big0MDU1KTtlLmV4cG9ydHM9IWEmJiFyKGZ1bmN0aW9uKCl7cmV0dXJuIDchPT1PYmplY3QuZGVmaW5lUHJvcGVydHkocygiZGl2IiksImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSl9LDcwNTUoZSx0LG4pe3ZhciBhPW4oOTUwNCkscj1uKDkwMzkpLHM9bigyMTk1KSxpPU9iamVjdCxvPWEoIiIuc3BsaXQpO2UuZXhwb3J0cz1yKGZ1bmN0aW9uKCl7cmV0dXJuIWkoInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pP2Z1bmN0aW9uKGUpe3JldHVybiJTdHJpbmciPT09cyhlKT9vKGUsIiIpOmkoZSl9Oml9LDM3MDYoZSx0LG4pe3ZhciBhPW4oOTUwNCkscj1uKDQ5MDEpLHM9big3NjI5KSxpPWEoRnVuY3Rpb24udG9TdHJpbmcpO3Iocy5pbnNwZWN0U291cmNlKXx8KHMuaW5zcGVjdFNvdXJjZT1mdW5jdGlvbihlKXtyZXR1cm4gaShlKX0pO2UuZXhwb3J0cz1zLmluc3BlY3RTb3VyY2V9LDExODEoZSx0LG4pe3ZhciBhLHIscyxpPW4oODYyMiksbz1uKDQ1NzYpLGw9bigzNCksZj1uKDY2OTkpLGM9big5Mjk3KSxoPW4oNzYyOSksdT1uKDYxMTkpLG09big0MjEpLHA9Ik9iamVjdCBhbHJlYWR5IGluaXRpYWxpemVkIixkPW8uVHlwZUVycm9yLGc9by5XZWFrTWFwO2lmKGl8fGguc3RhdGUpe3ZhciBiPWguc3RhdGV8fChoLnN0YXRlPW5ldyBnKTtiLmdldD1iLmdldDtiLmhhcz1iLmhhcztiLnNldD1iLnNldDthPWZ1bmN0aW9uKGUsdCl7aWYoYi5oYXMoZSkpdGhyb3cgbmV3IGQocCk7dC5mYWNhZGU9ZTtiLnNldChlLHQpO3JldHVybiB0fTtyPWZ1bmN0aW9uKGUpe3JldHVybiBiLmdldChlKXx8e319O3M9ZnVuY3Rpb24oZSl7cmV0dXJuIGIuaGFzKGUpfX1lbHNle3ZhciB3PXUoInN0YXRlIik7bVt3XT0hMDthPWZ1bmN0aW9uKGUsdCl7aWYoYyhlLHcpKXRocm93IG5ldyBkKHApO3QuZmFjYWRlPWU7ZihlLHcsdCk7cmV0dXJuIHR9O3I9ZnVuY3Rpb24oZSl7cmV0dXJuIGMoZSx3KT9lW3ddOnt9fTtzPWZ1bmN0aW9uKGUpe3JldHVybiBjKGUsdyl9fWUuZXhwb3J0cz17c2V0OmEsZ2V0OnIsaGFzOnMsZW5mb3JjZTpmdW5jdGlvbihlKXtyZXR1cm4gcyhlKT9yKGUpOmEoZSx7fSl9LGdldHRlckZvcjpmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIG47aWYoIWwodCl8fChuPXIodCkpLnR5cGUhPT1lKXRocm93IG5ldyBkKCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICIrZSsiIHJlcXVpcmVkIik7cmV0dXJuIG59fX19LDQyMDkoZSx0LG4pe3ZhciBhPW4oODIyNykscj1uKDYyNjkpLHM9YSgiaXRlcmF0b3IiKSxpPUFycmF5LnByb3RvdHlwZTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMCE9PWUmJihyLkFycmF5PT09ZXx8aVtzXT09PWUpfX0sNDM3NihlLHQsbil7dmFyIGE9bigyMTk1KTtlLmV4cG9ydHM9QXJyYXkuaXNBcnJheXx8ZnVuY3Rpb24gaXNBcnJheShlKXtyZXR1cm4iQXJyYXkiPT09YShlKX19LDExMDgoZSx0LG4pe3ZhciBhPW4oNjk1NSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PWEoZSk7cmV0dXJuIkJpZ0ludDY0QXJyYXkiPT09dHx8IkJpZ1VpbnQ2NEFycmF5Ij09PXR9fSw0OTAxKGUpe3ZhciB0PSJvYmplY3QiPT10eXBlb2YgZG9jdW1lbnQmJmRvY3VtZW50LmFsbDtlLmV4cG9ydHM9dm9pZCAwPT09dCYmdm9pZCAwIT09dD9mdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZXx8ZT09PXR9OmZ1bmN0aW9uKGUpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlfX0sMjc5NihlLHQsbil7dmFyIGE9big5MDM5KSxyPW4oNDkwMSkscz0vI3xcLnByb3RvdHlwZVwuLyxpc0ZvcmNlZD1mdW5jdGlvbihlLHQpe3ZhciBuPW9baShlKV07cmV0dXJuIG49PT1mfHxuIT09bCYmKHIodCk/YSh0KTohIXQpfSxpPWlzRm9yY2VkLm5vcm1hbGl6ZT1mdW5jdGlvbihlKXtyZXR1cm4gU3RyaW5nKGUpLnJlcGxhY2UocywiLiIpLnRvTG93ZXJDYXNlKCl9LG89aXNGb3JjZWQuZGF0YT17fSxsPWlzRm9yY2VkLk5BVElWRT0iTiIsZj1pc0ZvcmNlZC5QT0xZRklMTD0iUCI7ZS5leHBvcnRzPWlzRm9yY2VkfSw0MTE3KGUpe2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gbnVsbD09ZX19LDM0KGUsdCxuKXt2YXIgYT1uKDQ5MDEpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGU/bnVsbCE9PWU6YShlKX19LDM5MjUoZSx0LG4pe3ZhciBhPW4oMzQpO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gYShlKXx8bnVsbD09PWV9fSw2Mzk1KGUpe2UuZXhwb3J0cz0hMX0sNTgxMChlLHQsbil7dmFyIGE9bigzNCkscj1uKDExODEpLmdldDtlLmV4cG9ydHM9ZnVuY3Rpb24gaXNSYXdKU09OKGUpe2lmKCFhKGUpKXJldHVybiExO3ZhciB0PXIoZSk7cmV0dXJuISF0JiYiUmF3SlNPTiI9PT10LnR5cGV9fSw3NTcoZSx0LG4pe3ZhciBhPW4oNzc1MSkscj1uKDQ5MDEpLHM9bigxNjI1KSxpPW4oNzA0MCksbz1PYmplY3Q7ZS5leHBvcnRzPWk/ZnVuY3Rpb24oZSl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBlfTpmdW5jdGlvbihlKXt2YXIgdD1hKCJTeW1ib2wiKTtyZXR1cm4gcih0KSYmcyh0LnByb3RvdHlwZSxvKGUpKX19LDUwNyhlLHQsbil7dmFyIGE9big5NTY1KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcixzLGk9bj9lOmUuaXRlcmF0b3Isbz1lLm5leHQ7IShyPWEobyxpKSkuZG9uZTspaWYodm9pZCAwIT09KHM9dChyLnZhbHVlKSkpcmV0dXJuIHN9fSwyNjUyKGUsdCxuKXt2YXIgYT1uKDYwODApLHI9big5NTY1KSxzPW4oODU1MSksaT1uKDY4MjMpLG89big0MjA5KSxsPW4oNjE5OCksZj1uKDE2MjUpLGM9big4MSksaD1uKDg1MSksdT1uKDk1MzkpLG09VHlwZUVycm9yLFJlc3VsdD1mdW5jdGlvbihlLHQpe3RoaXMuc3RvcHBlZD1lO3RoaXMucmVzdWx0PXR9LHA9UmVzdWx0LnByb3RvdHlwZTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciBkLGcsYix3LGosayx5LHE9biYmbi50aGF0LHY9ISghbnx8IW4uQVNfRU5UUklFUyksUz0hKCFufHwhbi5JU19SRUNPUkQpLHg9ISghbnx8IW4uSVNfSVRFUkFUT1IpLEM9ISghbnx8IW4uSU5URVJSVVBURUQpLFQ9YSh0LHEpLHN0b3A9ZnVuY3Rpb24oZSl7ZCYmdShkLCJub3JtYWwiKTtyZXR1cm4gbmV3IFJlc3VsdCghMCxlKX0sY2FsbEZuPWZ1bmN0aW9uKGUpe2lmKHYpe3MoZSk7cmV0dXJuIEM/VChlWzBdLGVbMV0sc3RvcCk6VChlWzBdLGVbMV0pfXJldHVybiBDP1QoZSxzdG9wKTpUKGUpfTtpZihTKWQ9ZS5pdGVyYXRvcjtlbHNlIGlmKHgpZD1lO2Vsc2V7aWYoIShnPWgoZSkpKXRocm93IG5ldyBtKGkoZSkrIiBpcyBub3QgaXRlcmFibGUiKTtpZihvKGcpKXtmb3IoYj0wLHc9bChlKTt3PmI7YisrKWlmKChqPWNhbGxGbihlW2JdKSkmJmYocCxqKSlyZXR1cm4gajtyZXR1cm4gbmV3IFJlc3VsdCghMSl9ZD1jKGUsZyl9az1TP2UubmV4dDpkLm5leHQ7Zm9yKDshKHk9cihrLGQpKS5kb25lOyl7dHJ5e2o9Y2FsbEZuKHkudmFsdWUpfWNhdGNoKGUpe3UoZCwidGhyb3ciLGUpfWlmKCJvYmplY3QiPT10eXBlb2YgaiYmaiYmZihwLGopKXJldHVybiBqfXJldHVybiBuZXcgUmVzdWx0KCExKX19LDEzODUoZSx0LG4pe3ZhciBhPW4oOTUzOSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9ZS5sZW5ndGgtMTtyPj0wO3ItLSlpZih2b2lkIDAhPT1lW3JdKXRyeXtuPWEoZVtyXS5pdGVyYXRvcix0LG4pfWNhdGNoKGUpe3Q9InRocm93IjtuPWV9aWYoInRocm93Ij09PXQpdGhyb3cgbjtyZXR1cm4gbn19LDk1MzkoZSx0LG4pe3ZhciBhPW4oOTU2NSkscj1uKDg1NTEpLHM9big1OTY2KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciBpLG87cihlKTt0cnl7aWYoIShpPXMoZSwicmV0dXJuIikpKXtpZigidGhyb3ciPT09dCl0aHJvdyBuO3JldHVybiBufWk9YShpLGUpfWNhdGNoKGUpe289ITA7aT1lfWlmKCJ0aHJvdyI9PT10KXRocm93IG47aWYobyl0aHJvdyBpO3IoaSk7cmV0dXJuIG59fSw5NDYyKGUsdCxuKXt2YXIgYT1uKDk1NjUpLHI9bigyMzYwKSxzPW4oNjY5OSksaT1uKDYyNzkpLG89big4MjI3KSxsPW4oMTE4MSksZj1uKDU5NjYpLGM9big3NjU3KS5JdGVyYXRvclByb3RvdHlwZSxoPW4oMjUyOSksdT1uKDk1MzkpLG09bigxMzg1KSxwPW8oInRvU3RyaW5nVGFnIiksZD0iSXRlcmF0b3JIZWxwZXIiLGc9IldyYXBGb3JWYWxpZEl0ZXJhdG9yIixiPSJub3JtYWwiLHc9InRocm93IixqPWwuc2V0LGNyZWF0ZUl0ZXJhdG9yUHJveHlQcm90b3R5cGU9ZnVuY3Rpb24oZSl7dmFyIHQ9bC5nZXR0ZXJGb3IoZT9nOmQpO3JldHVybiBpKHIoYykse25leHQ6ZnVuY3Rpb24gbmV4dCgpe3ZhciBuPXQodGhpcyk7aWYoZSlyZXR1cm4gbi5uZXh0SGFuZGxlcigpO2lmKG4uZG9uZSlyZXR1cm4gaCh2b2lkIDAsITApO3RyeXt2YXIgYT1uLm5leHRIYW5kbGVyKCk7cmV0dXJuIG4ucmV0dXJuSGFuZGxlclJlc3VsdD9hOmgoYSxuLmRvbmUpfWNhdGNoKGUpe24uZG9uZT0hMDt0aHJvdyBlfX0scmV0dXJuOmZ1bmN0aW9uKCl7dmFyIG49dCh0aGlzKSxyPW4uaXRlcmF0b3I7bi5kb25lPSEwO2lmKGUpe3ZhciBzPWYociwicmV0dXJuIik7cmV0dXJuIHM/YShzLHIpOmgodm9pZCAwLCEwKX1pZihuLmlubmVyKXRyeXt1KG4uaW5uZXIuaXRlcmF0b3IsYil9Y2F0Y2goZSl7cmV0dXJuIHUocix3LGUpfWlmKG4ub3Blbkl0ZXJzKXRyeXttKG4ub3Blbkl0ZXJzLGIpfWNhdGNoKGUpe3JldHVybiB1KHIsdyxlKX1yJiZ1KHIsYik7cmV0dXJuIGgodm9pZCAwLCEwKX19KX0saz1jcmVhdGVJdGVyYXRvclByb3h5UHJvdG90eXBlKCEwKSx5PWNyZWF0ZUl0ZXJhdG9yUHJveHlQcm90b3R5cGUoITEpO3MoeSxwLCJJdGVyYXRvciBIZWxwZXIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3ZhciBhPWZ1bmN0aW9uIEl0ZXJhdG9yKGEscil7aWYocil7ci5pdGVyYXRvcj1hLml0ZXJhdG9yO3IubmV4dD1hLm5leHR9ZWxzZSByPWE7ci50eXBlPXQ/ZzpkO3IucmV0dXJuSGFuZGxlclJlc3VsdD0hIW47ci5uZXh0SGFuZGxlcj1lO3IuY291bnRlcj0wO3IuZG9uZT0hMTtqKHRoaXMscil9O2EucHJvdG90eXBlPXQ/azp5O3JldHVybiBhfX0sNjg0KGUpe2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuPSJmdW5jdGlvbiI9PXR5cGVvZiBJdGVyYXRvciYmSXRlcmF0b3IucHJvdG90eXBlW2VdO2lmKG4pdHJ5e24uY2FsbCh7bmV4dDpudWxsfSx0KS5uZXh0KCl9Y2F0Y2goZSl7cmV0dXJuITB9fX0sNDU0OShlLHQsbil7dmFyIGE9big0NTc2KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbj1hLkl0ZXJhdG9yLHI9biYmbi5wcm90b3R5cGUscz1yJiZyW2VdLGk9ITE7aWYocyl0cnl7cy5jYWxsKHtuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6ITB9fSxyZXR1cm46ZnVuY3Rpb24oKXtpPSEwfX0sLTEpfWNhdGNoKGUpe2UgaW5zdGFuY2VvZiB0fHwoaT0hMSl9aWYoIWkpcmV0dXJuIHN9fSw3NjU3KGUsdCxuKXt2YXIgYSxyLHMsaT1uKDkwMzkpLG89big0OTAxKSxsPW4oMzQpLGY9bigyMzYwKSxjPW4oMjc4NyksaD1uKDY4NDApLHU9big4MjI3KSxtPW4oNjM5NSkscD11KCJpdGVyYXRvciIpLGQ9ITE7W10ua2V5cyYmKCJuZXh0ImluKHM9W10ua2V5cygpKT8ocj1jKGMocykpKSE9PU9iamVjdC5wcm90b3R5cGUmJihhPXIpOmQ9ITApOyFsKGEpfHxpKGZ1bmN0aW9uKCl7dmFyIGU9e307cmV0dXJuIGFbcF0uY2FsbChlKSE9PWV9KT9hPXt9Om0mJihhPWYoYSkpO28oYVtwXSl8fGgoYSxwLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KTtlLmV4cG9ydHM9e0l0ZXJhdG9yUHJvdG90eXBlOmEsQlVHR1lfU0FGQVJJX0lURVJBVE9SUzpkfX0sNjI2OShlKXtlLmV4cG9ydHM9e319LDYxOTgoZSx0LG4pe3ZhciBhPW4oODAxNCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBhKGUubGVuZ3RoKX19LDI4MyhlLHQsbil7dmFyIGE9big5NTA0KSxyPW4oOTAzOSkscz1uKDQ5MDEpLGk9big5Mjk3KSxvPW4oMzcyNCksbD1uKDM1MCkuQ09ORklHVVJBQkxFLGY9bigzNzA2KSxjPW4oMTE4MSksaD1jLmVuZm9yY2UsdT1jLmdldCxtPVN0cmluZyxwPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxkPWEoIiIuc2xpY2UpLGc9YSgiIi5yZXBsYWNlKSxiPWEoW10uam9pbiksdz1vJiYhcihmdW5jdGlvbigpe3JldHVybiA4IT09cChmdW5jdGlvbigpe30sImxlbmd0aCIse3ZhbHVlOjh9KS5sZW5ndGh9KSxqPVN0cmluZyhTdHJpbmcpLnNwbGl0KCJTdHJpbmciKSxrPWUuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7IlN5bWJvbCgiPT09ZChtKHQpLDAsNykmJih0PSJbIitnKG0odCksL15TeW1ib2xcKChbXildKilcKS4qJC8sIiQxIikrIl0iKTtuJiZuLmdldHRlciYmKHQ9ImdldCAiK3QpO24mJm4uc2V0dGVyJiYodD0ic2V0ICIrdCk7KCFpKGUsIm5hbWUiKXx8bCYmZS5uYW1lIT09dCkmJihvP3AoZSwibmFtZSIse3ZhbHVlOnQsY29uZmlndXJhYmxlOiEwfSk6ZS5uYW1lPXQpO3cmJm4mJmkobiwiYXJpdHkiKSYmZS5sZW5ndGghPT1uLmFyaXR5JiZwKGUsImxlbmd0aCIse3ZhbHVlOm4uYXJpdHl9KTt0cnl7biYmaShuLCJjb25zdHJ1Y3RvciIpJiZuLmNvbnN0cnVjdG9yP28mJnAoZSwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KTplLnByb3RvdHlwZSYmKGUucHJvdG90eXBlPXZvaWQgMCl9Y2F0Y2goZSl7fXZhciBhPWgoZSk7aShhLCJzb3VyY2UiKXx8KGEuc291cmNlPWIoaiwic3RyaW5nIj09dHlwZW9mIHQ/dDoiIikpO3JldHVybiBlfTtGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc9ayhmdW5jdGlvbiB0b1N0cmluZygpe3JldHVybiBzKHRoaXMpJiZ1KHRoaXMpLnNvdXJjZXx8Zih0aGlzKX0sInRvU3RyaW5nIil9LDIyNDgoZSx0LG4pe3ZhciBhPW4oOTUwNCkscj1NYXAucHJvdG90eXBlO2UuZXhwb3J0cz17TWFwLHNldDphKHIuc2V0KSxnZXQ6YShyLmdldCksaGFzOmEoci5oYXMpLHJlbW92ZTphKHIuZGVsZXRlKSxwcm90bzpyfX0sNzQxKGUpe3ZhciB0PU1hdGguY2VpbCxuPU1hdGguZmxvb3I7ZS5leHBvcnRzPU1hdGgudHJ1bmN8fGZ1bmN0aW9uIHRydW5jKGUpe3ZhciBhPStlO3JldHVybihhPjA/bjp0KShhKX19LDc4MTkoZSx0LG4pe3ZhciBhPW4oOTAzOSk7ZS5leHBvcnRzPSFhKGZ1bmN0aW9uKCl7dmFyIGU9IjkwMDcxOTkyNTQ3NDA5OTMiLHQ9SlNPTi5yYXdKU09OKGUpO3JldHVybiFKU09OLmlzUmF3SlNPTih0KXx8SlNPTi5zdHJpbmdpZnkodCkhPT1lfSl9LDYwNDMoZSx0LG4pe3ZhciBhPW4oOTMwNikscj1UeXBlRXJyb3IsUHJvbWlzZUNhcGFiaWxpdHk9ZnVuY3Rpb24oZSl7dmFyIHQsbjt0aGlzLnByb21pc2U9bmV3IGUoZnVuY3Rpb24oZSxhKXtpZih2b2lkIDAhPT10fHx2b2lkIDAhPT1uKXRocm93IG5ldyByKCJCYWQgUHJvbWlzZSBjb25zdHJ1Y3RvciIpO3Q9ZTtuPWF9KTt0aGlzLnJlc29sdmU9YSh0KTt0aGlzLnJlamVjdD1hKG4pfTtlLmV4cG9ydHMuZj1mdW5jdGlvbihlKXtyZXR1cm4gbmV3IFByb21pc2VDYXBhYmlsaXR5KGUpfX0sMjM2MChlLHQsbil7dmFyIGEscj1uKDg1NTEpLHM9big2ODAxKSxpPW4oODcyNyksbz1uKDQyMSksbD1uKDM5NyksZj1uKDQwNTUpLGM9big2MTE5KSxoPSJwcm90b3R5cGUiLHU9InNjcmlwdCIsbT1jKCJJRV9QUk9UTyIpLEVtcHR5Q29uc3RydWN0b3I9ZnVuY3Rpb24oKXt9LHNjcmlwdFRhZz1mdW5jdGlvbihlKXtyZXR1cm4iPCIrdSsiPiIrZSsiPC8iK3UrIj4ifSxOdWxsUHJvdG9PYmplY3RWaWFBY3RpdmVYPWZ1bmN0aW9uKGUpe2Uud3JpdGUoc2NyaXB0VGFnKCIiKSk7ZS5jbG9zZSgpO3ZhciB0PWUucGFyZW50V2luZG93Lk9iamVjdDtlPW51bGw7cmV0dXJuIHR9LE51bGxQcm90b09iamVjdD1mdW5jdGlvbigpe3RyeXthPW5ldyBBY3RpdmVYT2JqZWN0KCJodG1sZmlsZSIpfWNhdGNoKGUpe31OdWxsUHJvdG9PYmplY3Q9InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudD9kb2N1bWVudC5kb21haW4mJmE/TnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWChhKTpmdW5jdGlvbigpe3ZhciBlLHQ9ZigiaWZyYW1lIiksbj0iamF2YSIrdSsiOiI7dC5zdHlsZS5kaXNwbGF5PSJub25lIjtsLmFwcGVuZENoaWxkKHQpO3Quc3JjPVN0cmluZyhuKTsoZT10LmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQpLm9wZW4oKTtlLndyaXRlKHNjcmlwdFRhZygiZG9jdW1lbnQuRj1PYmplY3QiKSk7ZS5jbG9zZSgpO3JldHVybiBlLkZ9KCk6TnVsbFByb3RvT2JqZWN0VmlhQWN0aXZlWChhKTtmb3IodmFyIGU9aS5sZW5ndGg7ZS0tOylkZWxldGUgTnVsbFByb3RvT2JqZWN0W2hdW2lbZV1dO3JldHVybiBOdWxsUHJvdG9PYmplY3QoKX07b1ttXT0hMDtlLmV4cG9ydHM9T2JqZWN0LmNyZWF0ZXx8ZnVuY3Rpb24gY3JlYXRlKGUsdCl7dmFyIG47aWYobnVsbCE9PWUpe0VtcHR5Q29uc3RydWN0b3JbaF09cihlKTtuPW5ldyBFbXB0eUNvbnN0cnVjdG9yO0VtcHR5Q29uc3RydWN0b3JbaF09bnVsbDtuW21dPWV9ZWxzZSBuPU51bGxQcm90b09iamVjdCgpO3JldHVybiB2b2lkIDA9PT10P246cy5mKG4sdCl9fSw2ODAxKGUsdCxuKXt2YXIgYT1uKDM3MjQpLHI9big4Njg2KSxzPW4oNDkxMyksaT1uKDg1NTEpLG89big1Mzk3KSxsPW4oMTA3Mik7dC5mPWEmJiFyP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzOmZ1bmN0aW9uIGRlZmluZVByb3BlcnRpZXMoZSx0KXtpKGUpO2Zvcih2YXIgbixhPW8odCkscj1sKHQpLGY9ci5sZW5ndGgsYz0wO2Y+Yzspcy5mKGUsbj1yW2MrK10sYVtuXSk7cmV0dXJuIGV9fSw0OTEzKGUsdCxuKXt2YXIgYT1uKDM3MjQpLHI9big1OTE3KSxzPW4oODY4NiksaT1uKDg1NTEpLG89big2OTY5KSxsPVR5cGVFcnJvcixmPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxjPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsaD0iZW51bWVyYWJsZSIsdT0iY29uZmlndXJhYmxlIixtPSJ3cml0YWJsZSI7dC5mPWE/cz9mdW5jdGlvbiBkZWZpbmVQcm9wZXJ0eShlLHQsbil7aShlKTt0PW8odCk7aShuKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgZSYmInByb3RvdHlwZSI9PT10JiYidmFsdWUiaW4gbiYmbSBpbiBuJiYhblttXSl7dmFyIGE9YyhlLHQpO2lmKGEmJmFbbV0pe2VbdF09bi52YWx1ZTtuPXtjb25maWd1cmFibGU6dSBpbiBuP25bdV06YVt1XSxlbnVtZXJhYmxlOmggaW4gbj9uW2hdOmFbaF0sd3JpdGFibGU6ITF9fX1yZXR1cm4gZihlLHQsbil9OmY6ZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkoZSx0LG4pe2koZSk7dD1vKHQpO2kobik7aWYocil0cnl7cmV0dXJuIGYoZSx0LG4pfWNhdGNoKGUpe31pZigiZ2V0ImluIG58fCJzZXQiaW4gbil0aHJvdyBuZXcgbCgiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQiKTsidmFsdWUiaW4gbiYmKGVbdF09bi52YWx1ZSk7cmV0dXJuIGV9fSw3MzQ3KGUsdCxuKXt2YXIgYT1uKDM3MjQpLHI9big5NTY1KSxzPW4oODc3MyksaT1uKDY5ODApLG89big1Mzk3KSxsPW4oNjk2OSksZj1uKDkyOTcpLGM9big1OTE3KSxoPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7dC5mPWE/aDpmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSx0KXtlPW8oZSk7dD1sKHQpO2lmKGMpdHJ5e3JldHVybiBoKGUsdCl9Y2F0Y2goZSl7fWlmKGYoZSx0KSlyZXR1cm4gaSghcihzLmYsZSx0KSxlW3RdKX19LDg0ODAoZSx0LG4pe3ZhciBhPW4oMTgyOCkscj1uKDg3MjcpLmNvbmNhdCgibGVuZ3RoIiwicHJvdG90eXBlIik7dC5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbiBnZXRPd25Qcm9wZXJ0eU5hbWVzKGUpe3JldHVybiBhKGUscil9fSwzNzE3KGUsdCl7dC5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHN9LDI3ODcoZSx0LG4pe3ZhciBhPW4oOTI5Nykscj1uKDQ5MDEpLHM9big4OTgxKSxpPW4oNjExOSksbz1uKDIyMTEpLGw9aSgiSUVfUFJPVE8iKSxmPU9iamVjdCxjPWYucHJvdG90eXBlO2UuZXhwb3J0cz1vP2YuZ2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24oZSl7dmFyIHQ9cyhlKTtpZihhKHQsbCkpcmV0dXJuIHRbbF07dmFyIG49dC5jb25zdHJ1Y3RvcjtyZXR1cm4gcihuKSYmdCBpbnN0YW5jZW9mIG4/bi5wcm90b3R5cGU6dCBpbnN0YW5jZW9mIGY/YzpudWxsfX0sMTYyNShlLHQsbil7dmFyIGE9big5NTA0KTtlLmV4cG9ydHM9YSh7fS5pc1Byb3RvdHlwZU9mKX0sMTgyOChlLHQsbil7dmFyIGE9big5NTA0KSxyPW4oOTI5Nykscz1uKDUzOTcpLGk9big5NjE3KS5pbmRleE9mLG89big0MjEpLGw9YShbXS5wdXNoKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbixhPXMoZSksZj0wLGM9W107Zm9yKG4gaW4gYSkhcihvLG4pJiZyKGEsbikmJmwoYyxuKTtmb3IoO3QubGVuZ3RoPmY7KXIoYSxuPXRbZisrXSkmJih+aShjLG4pfHxsKGMsbikpO3JldHVybiBjfX0sMTA3MihlLHQsbil7dmFyIGE9bigxODI4KSxyPW4oODcyNyk7ZS5leHBvcnRzPU9iamVjdC5rZXlzfHxmdW5jdGlvbiBrZXlzKGUpe3JldHVybiBhKGUscil9fSw4NzczKGUsdCl7dmFyIG49e30ucHJvcGVydHlJc0VudW1lcmFibGUsYT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLHI9YSYmIW4uY2FsbCh7MToyfSwxKTt0LmY9cj9mdW5jdGlvbiBwcm9wZXJ0eUlzRW51bWVyYWJsZShlKXt2YXIgdD1hKHRoaXMsZSk7cmV0dXJuISF0JiZ0LmVudW1lcmFibGV9Om59LDI5NjcoZSx0LG4pe3ZhciBhPW4oNjcwNikscj1uKDM0KSxzPW4oNzc1MCksaT1uKDM1MDYpO2UuZXhwb3J0cz1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fCgiX19wcm90b19fImlue30/ZnVuY3Rpb24oKXt2YXIgZSx0PSExLG49e307dHJ5eyhlPWEoT2JqZWN0LnByb3RvdHlwZSwiX19wcm90b19fIiwic2V0IikpKG4sW10pO3Q9biBpbnN0YW5jZW9mIEFycmF5fWNhdGNoKGUpe31yZXR1cm4gZnVuY3Rpb24gc2V0UHJvdG90eXBlT2YobixhKXtzKG4pO2koYSk7aWYoIXIobikpcmV0dXJuIG47dD9lKG4sYSk6bi5fX3Byb3RvX189YTtyZXR1cm4gbn19KCk6dm9pZCAwKX0sNDI3MChlLHQsbil7dmFyIGE9big5NTY1KSxyPW4oNDkwMSkscz1uKDM0KSxpPVR5cGVFcnJvcjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXt2YXIgbixvO2lmKCJzdHJpbmciPT09dCYmcihuPWUudG9TdHJpbmcpJiYhcyhvPWEobixlKSkpcmV0dXJuIG87aWYocihuPWUudmFsdWVPZikmJiFzKG89YShuLGUpKSlyZXR1cm4gbztpZigic3RyaW5nIiE9PXQmJnIobj1lLnRvU3RyaW5nKSYmIXMobz1hKG4sZSkpKXJldHVybiBvO3Rocm93IG5ldyBpKCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKX19LDUwMzEoZSx0LG4pe3ZhciBhPW4oNzc1MSkscj1uKDk1MDQpLHM9big4NDgwKSxpPW4oMzcxNyksbz1uKDg1NTEpLGw9cihbXS5jb25jYXQpO2UuZXhwb3J0cz1hKCJSZWZsZWN0Iiwib3duS2V5cyIpfHxmdW5jdGlvbiBvd25LZXlzKGUpe3ZhciB0PXMuZihvKGUpKSxuPWkuZjtyZXR1cm4gbj9sKHQsbihlKSk6dH19LDgyMzUoZSx0LG4pe3ZhciBhPW4oOTUwNCkscj1uKDkyOTcpLHM9U3ludGF4RXJyb3IsaT1wYXJzZUludCxvPVN0cmluZy5mcm9tQ2hhckNvZGUsbD1hKCIiLmNoYXJBdCksZj1hKCIiLnNsaWNlKSxjPWEoLy4vLmV4ZWMpLGg9eydcXCInOiciJywiXFxcXCI6IlxcIiwiXFwvIjoiLyIsIlxcYiI6IlxiIiwiXFxmIjoiXGYiLCJcXG4iOiJcbiIsIlxcciI6IlxyIiwiXFx0IjoiXHQifSx1PS9eW1xkYS1mXXs0fSQvaSxtPS9eW1x1MDAwMC1cdTAwMUZdJC87ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPSEwLGE9IiI7dDxlLmxlbmd0aDspe3ZhciBwPWwoZSx0KTtpZigiXFwiPT09cCl7dmFyIGQ9ZihlLHQsdCsyKTtpZihyKGgsZCkpe2ErPWhbZF07dCs9Mn1lbHNle2lmKCJcXHUiIT09ZCl0aHJvdyBuZXcgcygnVW5rbm93biBlc2NhcGUgc2VxdWVuY2U6ICInK2QrJyInKTt2YXIgZz1mKGUsdCs9Mix0KzQpO2lmKCFjKHUsZykpdGhyb3cgbmV3IHMoIkJhZCBVbmljb2RlIGVzY2FwZSBhdDogIit0KTthKz1vKGkoZywxNikpO3QrPTR9fWVsc2V7aWYoJyInPT09cCl7bj0hMTt0Kys7YnJlYWt9aWYoYyhtLHApKXRocm93IG5ldyBzKCJCYWQgY29udHJvbCBjaGFyYWN0ZXIgaW4gc3RyaW5nIGxpdGVyYWwgYXQ6ICIrdCk7YSs9cDt0Kyt9fWlmKG4pdGhyb3cgbmV3IHMoIlVudGVybWluYXRlZCBzdHJpbmcgYXQ6ICIrdCk7cmV0dXJue3ZhbHVlOmEsZW5kOnR9fX0sMTEwMyhlKXtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dHJ5e3JldHVybntlcnJvcjohMSx2YWx1ZTplKCl9fWNhdGNoKGUpe3JldHVybntlcnJvcjohMCx2YWx1ZTplfX19fSw3NzUwKGUsdCxuKXt2YXIgYT1uKDQxMTcpLHI9VHlwZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlKXtpZihhKGUpKXRocm93IG5ldyByKCJDYW4ndCBjYWxsIG1ldGhvZCBvbiAiK2UpO3JldHVybiBlfX0sOTI4NihlLHQsbil7dmFyIGE9big0NDAyKSxyPW4oODQ2OSkscz1hLlNldCxpPWEuYWRkO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdD1uZXcgcztyKGUsZnVuY3Rpb24oZSl7aSh0LGUpfSk7cmV0dXJuIHR9fSwzNDQwKGUsdCxuKXt2YXIgYT1uKDcwODApLHI9big0NDAyKSxzPW4oOTI4NiksaT1uKDUxNzApLG89bigzNzg5KSxsPW4oODQ2OSksZj1uKDUwNyksYz1yLmhhcyxoPXIucmVtb3ZlO2UuZXhwb3J0cz1mdW5jdGlvbiBkaWZmZXJlbmNlKGUpe3ZhciB0PWEodGhpcyksbj1vKGUpLHI9cyh0KTtpKHQpPD1uLnNpemU/bCh0LGZ1bmN0aW9uKGUpe24uaW5jbHVkZXMoZSkmJmgocixlKX0pOmYobi5nZXRJdGVyYXRvcigpLGZ1bmN0aW9uKGUpe2MocixlKSYmaChyLGUpfSk7cmV0dXJuIHJ9fSw0NDAyKGUsdCxuKXt2YXIgYT1uKDk1MDQpLHI9U2V0LnByb3RvdHlwZTtlLmV4cG9ydHM9e1NldCxhZGQ6YShyLmFkZCksaGFzOmEoci5oYXMpLHJlbW92ZTphKHIuZGVsZXRlKSxwcm90bzpyfX0sODc1MChlLHQsbil7dmFyIGE9big3MDgwKSxyPW4oNDQwMikscz1uKDUxNzApLGk9bigzNzg5KSxvPW4oODQ2OSksbD1uKDUwNyksZj1yLlNldCxjPXIuYWRkLGg9ci5oYXM7ZS5leHBvcnRzPWZ1bmN0aW9uIGludGVyc2VjdGlvbihlKXt2YXIgdD1hKHRoaXMpLG49aShlKSxyPW5ldyBmO3ModCk+bi5zaXplP2wobi5nZXRJdGVyYXRvcigpLGZ1bmN0aW9uKGUpe2godCxlKSYmYyhyLGUpfSk6byh0LGZ1bmN0aW9uKGUpe24uaW5jbHVkZXMoZSkmJmMocixlKX0pO3JldHVybiByfX0sNDQ0OShlLHQsbil7dmFyIGE9big3MDgwKSxyPW4oNDQwMikuaGFzLHM9big1MTcwKSxpPW4oMzc4OSksbz1uKDg0NjkpLGw9big1MDcpLGY9big5NTM5KTtlLmV4cG9ydHM9ZnVuY3Rpb24gaXNEaXNqb2ludEZyb20oZSl7dmFyIHQ9YSh0aGlzKSxuPWkoZSk7aWYocyh0KTw9bi5zaXplKXJldHVybiExIT09byh0LGZ1bmN0aW9uKGUpe2lmKG4uaW5jbHVkZXMoZSkpcmV0dXJuITF9LCEwKTt2YXIgYz1uLmdldEl0ZXJhdG9yKCk7cmV0dXJuITEhPT1sKGMsZnVuY3Rpb24oZSl7aWYocih0LGUpKXJldHVybiBmKGMsIm5vcm1hbCIsITEpfSl9fSwzODM4KGUsdCxuKXt2YXIgYT1uKDcwODApLHI9big1MTcwKSxzPW4oODQ2OSksaT1uKDM3ODkpO2UuZXhwb3J0cz1mdW5jdGlvbiBpc1N1YnNldE9mKGUpe3ZhciB0PWEodGhpcyksbj1pKGUpO3JldHVybiEocih0KT5uLnNpemUpJiYhMSE9PXModCxmdW5jdGlvbihlKXtpZighbi5pbmNsdWRlcyhlKSlyZXR1cm4hMX0sITApfX0sODUyNyhlLHQsbil7dmFyIGE9big3MDgwKSxyPW4oNDQwMikuaGFzLHM9big1MTcwKSxpPW4oMzc4OSksbz1uKDUwNyksbD1uKDk1MzkpO2UuZXhwb3J0cz1mdW5jdGlvbiBpc1N1cGVyc2V0T2YoZSl7dmFyIHQ9YSh0aGlzKSxuPWkoZSk7aWYocyh0KTxuLnNpemUpcmV0dXJuITE7dmFyIGY9bi5nZXRJdGVyYXRvcigpO3JldHVybiExIT09byhmLGZ1bmN0aW9uKGUpe2lmKCFyKHQsZSkpcmV0dXJuIGwoZiwibm9ybWFsIiwhMSl9KX19LDg0NjkoZSx0LG4pe3ZhciBhPW4oOTUwNCkscj1uKDUwNykscz1uKDQ0MDIpLGk9cy5TZXQsbz1zLnByb3RvLGw9YShvLmZvckVhY2gpLGY9YShvLmtleXMpLGM9ZihuZXcgaSkubmV4dDtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuP3Ioe2l0ZXJhdG9yOmYoZSksbmV4dDpjfSx0KTpsKGUsdCl9fSw0OTE2KGUsdCxuKXt2YXIgYT1uKDc3NTEpLGNyZWF0ZVNldExpa2U9ZnVuY3Rpb24oZSl7cmV0dXJue3NpemU6ZSxoYXM6ZnVuY3Rpb24oKXtyZXR1cm4hMX0sa2V5czpmdW5jdGlvbigpe3JldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6ITB9fX19fX0sY3JlYXRlU2V0TGlrZVdpdGhJbmZpbml0eVNpemU9ZnVuY3Rpb24oZSl7cmV0dXJue3NpemU6ZSxoYXM6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sa2V5czpmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiZSIpfX19O2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuPWEoIlNldCIpO3RyeXsobmV3IG4pW2VdKGNyZWF0ZVNldExpa2UoMCkpO3RyeXsobmV3IG4pW2VdKGNyZWF0ZVNldExpa2UoLTEpKTtyZXR1cm4hMX1jYXRjaChhKXtpZighdClyZXR1cm4hMDt0cnl7KG5ldyBuKVtlXShjcmVhdGVTZXRMaWtlV2l0aEluZmluaXR5U2l6ZSgtMS8wKSk7cmV0dXJuITF9Y2F0Y2goYSl7cmV0dXJuIHQobmV3IG4oWzEsMl0pW2VdKGNyZWF0ZVNldExpa2VXaXRoSW5maW5pdHlTaXplKDEvMCkpKX19fWNhdGNoKGUpe3JldHVybiExfX19LDk4MzUoZSl7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3RyeXt2YXIgdD1uZXcgU2V0LG49e3NpemU6MCxoYXM6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sa2V5czpmdW5jdGlvbigpe3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sIm5leHQiLHtnZXQ6ZnVuY3Rpb24oKXt0LmNsZWFyKCk7dC5hZGQoNCk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6ITB9fX19KX19LGE9dFtlXShuKTtyZXR1cm4gMT09PWEuc2l6ZSYmND09PWEudmFsdWVzKCkubmV4dCgpLnZhbHVlfWNhdGNoKGUpe3JldHVybiExfX19LDUxNzAoZSx0LG4pe3ZhciBhPW4oNjcwNikscj1uKDQ0MDIpO2UuZXhwb3J0cz1hKHIucHJvdG8sInNpemUiLCJnZXQiKXx8ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc2l6ZX19LDM2NTAoZSx0LG4pe3ZhciBhPW4oNzA4MCkscj1uKDQ0MDIpLHM9big5Mjg2KSxpPW4oMzc4OSksbz1uKDUwNyksbD1yLmFkZCxmPXIuaGFzLGM9ci5yZW1vdmU7ZS5leHBvcnRzPWZ1bmN0aW9uIHN5bW1ldHJpY0RpZmZlcmVuY2UoZSl7dmFyIHQ9YSh0aGlzKSxuPWkoZSkuZ2V0SXRlcmF0b3IoKSxyPXModCk7byhuLGZ1bmN0aW9uKGUpe2YodCxlKT9jKHIsZSk6bChyLGUpfSk7cmV0dXJuIHJ9fSw0MjA0KGUsdCxuKXt2YXIgYT1uKDcwODApLHI9big0NDAyKS5hZGQscz1uKDkyODYpLGk9bigzNzg5KSxvPW4oNTA3KTtlLmV4cG9ydHM9ZnVuY3Rpb24gdW5pb24oZSl7dmFyIHQ9YSh0aGlzKSxuPWkoZSkuZ2V0SXRlcmF0b3IoKSxsPXModCk7byhuLGZ1bmN0aW9uKGUpe3IobCxlKX0pO3JldHVybiBsfX0sNjExOShlLHQsbil7dmFyIGE9big1NzQ1KSxyPW4oMzM5Mikscz1hKCJrZXlzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBzW2VdfHwoc1tlXT1yKGUpKX19LDc2MjkoZSx0LG4pe3ZhciBhPW4oNjM5NSkscj1uKDQ1NzYpLHM9big5NDMzKSxpPSJfX2NvcmUtanNfc2hhcmVkX18iLG89ZS5leHBvcnRzPXJbaV18fHMoaSx7fSk7KG8udmVyc2lvbnN8fChvLnZlcnNpb25zPVtdKSkucHVzaCh7dmVyc2lvbjoiMy40OC4wIixtb2RlOmE/InB1cmUiOiJnbG9iYWwiLGNvcHlyaWdodDoiwqkgMjAxM+KAkzIwMjUgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSksIDIwMjXigJMyMDI2IENvcmVKUyBDb21wYW55IChjb3JlLWpzLmlvKS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4iLGxpY2Vuc2U6Imh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2Jsb2IvdjMuNDguMC9MSUNFTlNFIixzb3VyY2U6Imh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzIn0pfSw1NzQ1KGUsdCxuKXt2YXIgYT1uKDc2MjkpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3JldHVybiBhW2VdfHwoYVtlXT10fHx7fSl9fSwxNTQ4KGUsdCxuKXt2YXIgYT1uKDQ1NzYpLHI9big5MDM5KSxzPW4oOTUxOSksaT1uKDQyMTUpLG89YS5zdHJ1Y3R1cmVkQ2xvbmU7ZS5leHBvcnRzPSEhbyYmIXIoZnVuY3Rpb24oKXtpZigiREVOTyI9PT1pJiZzPjkyfHwiTk9ERSI9PT1pJiZzPjk0fHwiQlJPV1NFUiI9PT1pJiZzPjk3KXJldHVybiExO3ZhciBlPW5ldyBBcnJheUJ1ZmZlcig4KSx0PW8oZSx7dHJhbnNmZXI6W2VdfSk7cmV0dXJuIDAhPT1lLmJ5dGVMZW5ndGh8fDghPT10LmJ5dGVMZW5ndGh9KX0sNDQ5NShlLHQsbil7dmFyIGE9big5NTE5KSxyPW4oOTAzOSkscz1uKDQ1NzYpLlN0cmluZztlLmV4cG9ydHM9ISFPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYhcihmdW5jdGlvbigpe3ZhciBlPVN5bWJvbCgic3ltYm9sIGRldGVjdGlvbiIpO3JldHVybiFzKGUpfHwhKE9iamVjdChlKWluc3RhbmNlb2YgU3ltYm9sKXx8IVN5bWJvbC5zaGFtJiZhJiZhPDQxfSl9LDU2MTAoZSx0LG4pe3ZhciBhPW4oMTI5MSkscj1NYXRoLm1heCxzPU1hdGgubWluO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3ZhciBuPWEoZSk7cmV0dXJuIG48MD9yKG4rdCwwKTpzKG4sdCl9fSw1ODU0KGUsdCxuKXt2YXIgYT1uKDI3NzcpLHI9VHlwZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlKXt2YXIgdD1hKGUsIm51bWJlciIpO2lmKCJudW1iZXIiPT10eXBlb2YgdCl0aHJvdyBuZXcgcigiQ2FuJ3QgY29udmVydCBudW1iZXIgdG8gYmlnaW50Iik7cmV0dXJuIEJpZ0ludCh0KX19LDc2OTYoZSx0LG4pe3ZhciBhPW4oMTI5MSkscj1uKDgwMTQpLHM9UmFuZ2VFcnJvcjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7aWYodm9pZCAwPT09ZSlyZXR1cm4gMDt2YXIgdD1hKGUpLG49cih0KTtpZih0IT09bil0aHJvdyBuZXcgcygiV3JvbmcgbGVuZ3RoIG9yIGluZGV4Iik7cmV0dXJuIG59fSw1Mzk3KGUsdCxuKXt2YXIgYT1uKDcwNTUpLHI9big3NzUwKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGEocihlKSl9fSwxMjkxKGUsdCxuKXt2YXIgYT1uKDc0MSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PStlO3JldHVybiB0IT10fHwwPT09dD8wOmEodCl9fSw4MDE0KGUsdCxuKXt2YXIgYT1uKDEyOTEpLHI9TWF0aC5taW47ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0PWEoZSk7cmV0dXJuIHQ+MD9yKHQsOTAwNzE5OTI1NDc0MDk5MSk6MH19LDg5ODEoZSx0LG4pe3ZhciBhPW4oNzc1MCkscj1PYmplY3Q7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiByKGEoZSkpfX0sMjc3NyhlLHQsbil7dmFyIGE9big5NTY1KSxyPW4oMzQpLHM9big3NTcpLGk9big1OTY2KSxvPW4oNDI3MCksbD1uKDgyMjcpLGY9VHlwZUVycm9yLGM9bCgidG9QcmltaXRpdmUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtpZighcihlKXx8cyhlKSlyZXR1cm4gZTt2YXIgbixsPWkoZSxjKTtpZihsKXt2b2lkIDA9PT10JiYodD0iZGVmYXVsdCIpO249YShsLGUsdCk7aWYoIXIobil8fHMobikpcmV0dXJuIG47dGhyb3cgbmV3IGYoIkNhbid0IGNvbnZlcnQgb2JqZWN0IHRvIHByaW1pdGl2ZSB2YWx1ZSIpfXZvaWQgMD09PXQmJih0PSJudW1iZXIiKTtyZXR1cm4gbyhlLHQpfX0sNjk2OShlLHQsbil7dmFyIGE9bigyNzc3KSxyPW4oNzU3KTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7dmFyIHQ9YShlLCJzdHJpbmciKTtyZXR1cm4gcih0KT90OnQrIiJ9fSwyMTQwKGUsdCxuKXt2YXIgYT17fTthW24oODIyNykoInRvU3RyaW5nVGFnIildPSJ6IjtlLmV4cG9ydHM9IltvYmplY3Qgel0iPT09U3RyaW5nKGEpfSw2NTUoZSx0LG4pe3ZhciBhPW4oNjk1NSkscj1TdHJpbmc7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe2lmKCJTeW1ib2wiPT09YShlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY29udmVydCBhIFN5bWJvbCB2YWx1ZSB0byBhIHN0cmluZyIpO3JldHVybiByKGUpfX0sNjgyMyhlKXt2YXIgdD1TdHJpbmc7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3RyeXtyZXR1cm4gdChlKX1jYXRjaChlKXtyZXR1cm4iT2JqZWN0In19fSwzMzkyKGUsdCxuKXt2YXIgYT1uKDk1MDQpLHI9MCxzPU1hdGgucmFuZG9tKCksaT1hKDEuMS50b1N0cmluZyk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiJTeW1ib2woIisodm9pZCAwPT09ZT8iIjplKSsiKV8iK2koKytyK3MsMzYpfX0sOTE0MyhlLHQsbil7dmFyIGE9big0NTc2KSxyPW4oOTUwNCkscz1uKDM5NzIpLGk9bigzNDYzKSxvPW4oOTI5NyksbD1uKDI4MDQpLGY9big5NDQpLGM9big1MTY5KSxoPWwuYzJpLHU9bC5jMmlVcmwsbT1hLlN5bnRheEVycm9yLHA9YS5UeXBlRXJyb3IsZD1yKCIiLmNoYXJBdCksc2tpcEFzY2lpV2hpdGVzcGFjZT1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj1lLmxlbmd0aDt0PG47dCsrKXt2YXIgYT1kKGUsdCk7aWYoIiAiIT09YSYmIlx0IiE9PWEmJiJcbiIhPT1hJiYiXGYiIT09YSYmIlxyIiE9PWEpYnJlYWt9cmV0dXJuIHR9LGRlY29kZUJhc2U2NENodW5rPWZ1bmN0aW9uKGUsdCxuKXt2YXIgYT1lLmxlbmd0aDthPDQmJihlKz0yPT09YT8iQUEiOiJBIik7dmFyIHI9KHRbZChlLDApXTw8MTgpKyh0W2QoZSwxKV08PDEyKSsodFtkKGUsMildPDw2KSt0W2QoZSwzKV0scz1bcj4+MTYmMjU1LHI+PjgmMjU1LDI1NSZyXTtpZigyPT09YSl7aWYobiYmMCE9PXNbMV0pdGhyb3cgbmV3IG0oIkV4dHJhIGJpdHMiKTtyZXR1cm5bc1swXV19aWYoMz09PWEpe2lmKG4mJjAhPT1zWzJdKXRocm93IG5ldyBtKCJFeHRyYSBiaXRzIik7cmV0dXJuW3NbMF0sc1sxXV19cmV0dXJuIHN9LHdyaXRlQnl0ZXM9ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgYT10Lmxlbmd0aCxyPTA7cjxhO3IrKyllW24rcl09dFtyXTtyZXR1cm4gbithfTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4sYSl7aShlKTtzKHQpO3ZhciByPSJiYXNlNjQiPT09Zih0KT9oOnUsbD10P3QubGFzdENodW5rSGFuZGxpbmc6dm9pZCAwO3ZvaWQgMD09PWwmJihsPSJsb29zZSIpO2lmKCJsb29zZSIhPT1sJiYic3RyaWN0IiE9PWwmJiJzdG9wLWJlZm9yZS1wYXJ0aWFsIiE9PWwpdGhyb3cgbmV3IHAoIkluY29ycmVjdCBgbGFzdENodW5rSGFuZGxpbmdgIG9wdGlvbiIpO24mJmMobi5idWZmZXIpO3ZhciBnPWUubGVuZ3RoLGI9bnx8W10sdz0wLGo9MCxrPSIiLHk9MDtpZihhKWZvcig7Oyl7aWYoKHk9c2tpcEFzY2lpV2hpdGVzcGFjZShlLHkpKT09PWcpe2lmKGsubGVuZ3RoPjApe2lmKCJzdG9wLWJlZm9yZS1wYXJ0aWFsIj09PWwpYnJlYWs7aWYoImxvb3NlIiE9PWwpdGhyb3cgbmV3IG0oIk1pc3NpbmcgcGFkZGluZyIpO2lmKDE9PT1rLmxlbmd0aCl0aHJvdyBuZXcgbSgiTWFsZm9ybWVkIHBhZGRpbmc6IGV4YWN0bHkgb25lIGFkZGl0aW9uYWwgY2hhcmFjdGVyIik7dz13cml0ZUJ5dGVzKGIsZGVjb2RlQmFzZTY0Q2h1bmsoayxyLCExKSx3KX1qPWc7YnJlYWt9dmFyIHE9ZChlLHkpOysreTtpZigiPSI9PT1xKXtpZihrLmxlbmd0aDwyKXRocm93IG5ldyBtKCJQYWRkaW5nIGlzIHRvbyBlYXJseSIpO3k9c2tpcEFzY2lpV2hpdGVzcGFjZShlLHkpO2lmKDI9PT1rLmxlbmd0aCl7aWYoeT09PWcpe2lmKCJzdG9wLWJlZm9yZS1wYXJ0aWFsIj09PWwpYnJlYWs7dGhyb3cgbmV3IG0oIk1hbGZvcm1lZCBwYWRkaW5nOiBvbmx5IG9uZSA9Iil9aWYoIj0iPT09ZChlLHkpKXsrK3k7eT1za2lwQXNjaWlXaGl0ZXNwYWNlKGUseSl9fWlmKHk8Zyl0aHJvdyBuZXcgbSgiVW5leHBlY3RlZCBjaGFyYWN0ZXIgYWZ0ZXIgcGFkZGluZyIpO3c9d3JpdGVCeXRlcyhiLGRlY29kZUJhc2U2NENodW5rKGssciwic3RyaWN0Ij09PWwpLHcpO2o9ZzticmVha31pZighbyhyLHEpKXRocm93IG5ldyBtKCJVbmV4cGVjdGVkIGNoYXJhY3RlciIpO3ZhciB2PWEtdztpZigxPT09diYmMj09PWsubGVuZ3RofHwyPT09diYmMz09PWsubGVuZ3RoKWJyZWFrO2lmKDQ9PT0oays9cSkubGVuZ3RoKXt3PXdyaXRlQnl0ZXMoYixkZWNvZGVCYXNlNjRDaHVuayhrLHIsITEpLHcpO2s9IiI7aj15O2lmKHc9PT1hKWJyZWFrfX1yZXR1cm57Ynl0ZXM6YixyZWFkOmosd3JpdHRlbjp3fX19LDIzMDMoZSx0LG4pe3ZhciBhPW4oNDU3Nikscj1uKDk1MDQpLHM9YS5VaW50OEFycmF5LGk9YS5TeW50YXhFcnJvcixvPWEucGFyc2VJbnQsbD1NYXRoLm1pbixmPS9bXlxkYS1mXS9pLGM9cihmLmV4ZWMpLGg9cigiIi5zbGljZSk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5sZW5ndGg7aWYobiUyIT0wKXRocm93IG5ldyBpKCJTdHJpbmcgc2hvdWxkIGJlIGFuIGV2ZW4gbnVtYmVyIG9mIGNoYXJhY3RlcnMiKTtmb3IodmFyIGE9dD9sKHQubGVuZ3RoLG4vMik6bi8yLHI9dHx8bmV3IHMoYSksdT0wLG09MDttPGE7KXt2YXIgcD1oKGUsdSx1Kz0yKTtpZihjKGYscCkpdGhyb3cgbmV3IGkoIlN0cmluZyBzaG91bGQgb25seSBjb250YWluIGhleCBjaGFyYWN0ZXJzIik7clttKytdPW8ocCwxNil9cmV0dXJue2J5dGVzOnIscmVhZDp1fX19LDc0MTYoZSx0LG4pe3ZhciBhPW4oOTAzOSkscj1uKDgyMjcpLHM9bigzNzI0KSxpPW4oNjM5NSksbz1yKCJpdGVyYXRvciIpO2UuZXhwb3J0cz0hYShmdW5jdGlvbigpe3ZhciBlPW5ldyBVUkwoImI/YT0xJmI9MiZjPTMiLCJodHRwczovL2EiKSx0PWUuc2VhcmNoUGFyYW1zLG49bmV3IFVSTFNlYXJjaFBhcmFtcygiYT0xJmE9MiZiPTMiKSxhPSIiO2UucGF0aG5hbWU9ImMlMjBkIjt0LmZvckVhY2goZnVuY3Rpb24oZSxuKXt0LmRlbGV0ZSgiYiIpO2ErPW4rZX0pO24uZGVsZXRlKCJhIiwyKTtuLmRlbGV0ZSgiYiIsdm9pZCAwKTtyZXR1cm4gaSYmKCFlLnRvSlNPTnx8IW4uaGFzKCJhIiwxKXx8bi5oYXMoImEiLDIpfHwhbi5oYXMoImEiLHZvaWQgMCl8fG4uaGFzKCJiIikpfHwhdC5zaXplJiYoaXx8IXMpfHwhdC5zb3J0fHwiaHR0cHM6Ly9hL2MlMjBkP2E9MSZjPTMiIT09ZS5ocmVmfHwiMyIhPT10LmdldCgiYyIpfHwiYT0xIiE9PVN0cmluZyhuZXcgVVJMU2VhcmNoUGFyYW1zKCI/YT0xIikpfHwhdFtvXXx8ImEiIT09bmV3IFVSTCgiaHR0cHM6Ly9hQGIiKS51c2VybmFtZXx8ImIiIT09bmV3IFVSTFNlYXJjaFBhcmFtcyhuZXcgVVJMU2VhcmNoUGFyYW1zKCJhPWIiKSkuZ2V0KCJhIil8fCJ4bi0tZTFheWJjIiE9PW5ldyBVUkwoImh0dHBzOi8v0YLQtdGB0YIiKS5ob3N0fHwiIyVEMCVCMSIhPT1uZXcgVVJMKCJodHRwczovL2Ej0LEiKS5oYXNofHwiYTFjMyIhPT1hfHwieCIhPT1uZXcgVVJMKCJodHRwczovL3giLHZvaWQgMCkuaG9zdH0pfSw3MDQwKGUsdCxuKXt2YXIgYT1uKDQ0OTUpO2UuZXhwb3J0cz1hJiYhU3ltYm9sLnNoYW0mJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yfSw4Njg2KGUsdCxuKXt2YXIgYT1uKDM3MjQpLHI9big5MDM5KTtlLmV4cG9ydHM9YSYmcihmdW5jdGlvbigpe3JldHVybiA0MiE9PU9iamVjdC5kZWZpbmVQcm9wZXJ0eShmdW5jdGlvbigpe30sInByb3RvdHlwZSIse3ZhbHVlOjQyLHdyaXRhYmxlOiExfSkucHJvdG90eXBlfSl9LDI4MTIoZSl7dmFyIHQ9VHlwZUVycm9yO2UuZXhwb3J0cz1mdW5jdGlvbihlLG4pe2lmKGU8bil0aHJvdyBuZXcgdCgiTm90IGVub3VnaCBhcmd1bWVudHMiKTtyZXR1cm4gZX19LDg2MjIoZSx0LG4pe3ZhciBhPW4oNDU3Nikscj1uKDQ5MDEpLHM9YS5XZWFrTWFwO2UuZXhwb3J0cz1yKHMpJiYvbmF0aXZlIGNvZGUvLnRlc3QoU3RyaW5nKHMpKX0sNDk5NShlLHQsbil7dmFyIGE9big5NTA0KSxyPVdlYWtNYXAucHJvdG90eXBlO2UuZXhwb3J0cz17V2Vha01hcCxzZXQ6YShyLnNldCksZ2V0OmEoci5nZXQpLGhhczphKHIuaGFzKSxyZW1vdmU6YShyLmRlbGV0ZSl9fSw4MjI3KGUsdCxuKXt2YXIgYT1uKDQ1NzYpLHI9big1NzQ1KSxzPW4oOTI5NyksaT1uKDMzOTIpLG89big0NDk1KSxsPW4oNzA0MCksZj1hLlN5bWJvbCxjPXIoIndrcyIpLGg9bD9mLmZvcnx8ZjpmJiZmLndpdGhvdXRTZXR0ZXJ8fGk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3MoYyxlKXx8KGNbZV09byYmcyhmLGUpP2ZbZV06aCgiU3ltYm9sLiIrZSkpO3JldHVybiBjW2VdfX0sNjU3MyhlLHQsbil7dmFyIGE9bigzNzI0KSxyPW4oMjEwNikscz1uKDMyMzgpLGk9QXJyYXlCdWZmZXIucHJvdG90eXBlO2EmJiEoImRldGFjaGVkImluIGkpJiZyKGksImRldGFjaGVkIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbiBkZXRhY2hlZCgpe3JldHVybiBzKHRoaXMpfX0pfSw3OTM2KGUsdCxuKXt2YXIgYT1uKDY1MTgpLHI9big1NjM2KTtyJiZhKHt0YXJnZXQ6IkFycmF5QnVmZmVyIixwcm90bzohMH0se3RyYW5zZmVyVG9GaXhlZExlbmd0aDpmdW5jdGlvbiB0cmFuc2ZlclRvRml4ZWRMZW5ndGgoKXtyZXR1cm4gcih0aGlzLGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnZvaWQgMCwhMSl9fSl9LDgxMDAoZSx0LG4pe3ZhciBhPW4oNjUxOCkscj1uKDU2MzYpO3ImJmEoe3RhcmdldDoiQXJyYXlCdWZmZXIiLHByb3RvOiEwfSx7dHJhbnNmZXI6ZnVuY3Rpb24gdHJhbnNmZXIoKXtyZXR1cm4gcih0aGlzLGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnZvaWQgMCwhMCl9fSl9LDQxMTQoZSx0LG4pe3ZhciBhPW4oNjUxOCkscj1uKDg5ODEpLHM9big2MTk4KSxpPW4oNDUyNyksbz1uKDY4MzcpO2Eoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGFyaXR5OjEsZm9yY2VkOm4oOTAzOSkoZnVuY3Rpb24oKXtyZXR1cm4gNDI5NDk2NzI5NyE9PVtdLnB1c2guY2FsbCh7bGVuZ3RoOjQyOTQ5NjcyOTZ9LDEpfSl8fCFmdW5jdGlvbigpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoW10sImxlbmd0aCIse3dyaXRhYmxlOiExfSkucHVzaCgpfWNhdGNoKGUpe3JldHVybiBlIGluc3RhbmNlb2YgVHlwZUVycm9yfX0oKX0se3B1c2g6ZnVuY3Rpb24gcHVzaChlKXt2YXIgdD1yKHRoaXMpLG49cyh0KSxhPWFyZ3VtZW50cy5sZW5ndGg7byhuK2EpO2Zvcih2YXIgbD0wO2w8YTtsKyspe3Rbbl09YXJndW1lbnRzW2xdO24rK31pKHQsbik7cmV0dXJuIG59fSl9LDgxMTEoZSx0LG4pe3ZhciBhPW4oNjUxOCkscj1uKDQ1NzYpLHM9big2NzkpLGk9big4NTUxKSxvPW4oNDkwMSksbD1uKDI3ODcpLGY9bigyMTA2KSxjPW4oNDY1OSksaD1uKDkwMzkpLHU9big5Mjk3KSxtPW4oODIyNykscD1uKDc2NTcpLkl0ZXJhdG9yUHJvdG90eXBlLGQ9bigzNzI0KSxnPW4oNjM5NSksYj0iY29uc3RydWN0b3IiLHc9Ikl0ZXJhdG9yIixqPW0oInRvU3RyaW5nVGFnIiksaz1UeXBlRXJyb3IseT1yW3ddLHE9Z3x8IW8oeSl8fHkucHJvdG90eXBlIT09cHx8IWgoZnVuY3Rpb24oKXt5KHt9KX0pLHY9ZnVuY3Rpb24gSXRlcmF0b3IoKXtzKHRoaXMscCk7aWYobCh0aGlzKT09PXApdGhyb3cgbmV3IGsoIkFic3RyYWN0IGNsYXNzIEl0ZXJhdG9yIG5vdCBkaXJlY3RseSBjb25zdHJ1Y3RhYmxlIil9LGRlZmluZUl0ZXJhdG9yUHJvdG90eXBlQWNjZXNzb3I9ZnVuY3Rpb24oZSx0KXtkP2YocCxlLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHR9LHNldDpmdW5jdGlvbih0KXtpKHRoaXMpO2lmKHRoaXM9PT1wKXRocm93IG5ldyBrKCJZb3UgY2FuJ3QgcmVkZWZpbmUgdGhpcyBwcm9wZXJ0eSIpO3UodGhpcyxlKT90aGlzW2VdPXQ6Yyh0aGlzLGUsdCl9fSk6cFtlXT10fTt1KHAsail8fGRlZmluZUl0ZXJhdG9yUHJvdG90eXBlQWNjZXNzb3Ioaix3KTshcSYmdShwLGIpJiZwW2JdIT09T2JqZWN0fHxkZWZpbmVJdGVyYXRvclByb3RvdHlwZUFjY2Vzc29yKGIsdik7di5wcm90b3R5cGU9cDthKHtnbG9iYWw6ITAsY29uc3RydWN0b3I6ITAsZm9yY2VkOnF9LHtJdGVyYXRvcjp2fSl9LDExNDgoZSx0LG4pe3ZhciBhPW4oNjUxOCkscj1uKDk1NjUpLHM9bigyNjUyKSxpPW4oOTMwNiksbz1uKDg1NTEpLGw9bigxNzY3KSxmPW4oOTUzOSksYz1uKDQ1NDkpKCJldmVyeSIsVHlwZUVycm9yKTthKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpjfSx7ZXZlcnk6ZnVuY3Rpb24gZXZlcnkoZSl7byh0aGlzKTt0cnl7aShlKX1jYXRjaChlKXtmKHRoaXMsInRocm93IixlKX1pZihjKXJldHVybiByKGMsdGhpcyxlKTt2YXIgdD1sKHRoaXMpLG49MDtyZXR1cm4hcyh0LGZ1bmN0aW9uKHQsYSl7aWYoIWUodCxuKyspKXJldHVybiBhKCl9LHtJU19SRUNPUkQ6ITAsSU5URVJSVVBURUQ6ITB9KS5zdG9wcGVkfX0pfSwyNDg5KGUsdCxuKXt2YXIgYT1uKDY1MTgpLHI9big5NTY1KSxzPW4oOTMwNiksaT1uKDg1NTEpLG89bigxNzY3KSxsPW4oOTQ2MiksZj1uKDYzMTkpLGM9big2Mzk1KSxoPW4oOTUzOSksdT1uKDY4NCksbT1uKDQ1NDkpLHA9IWMmJiF1KCJmaWx0ZXIiLGZ1bmN0aW9uKCl7fSksZD0hYyYmIXAmJm0oImZpbHRlciIsVHlwZUVycm9yKSxnPWN8fHB8fGQsYj1sKGZ1bmN0aW9uKCl7Zm9yKHZhciBlLHQsbj10aGlzLml0ZXJhdG9yLGE9dGhpcy5wcmVkaWNhdGUscz10aGlzLm5leHQ7Oyl7ZT1pKHIocyxuKSk7aWYodGhpcy5kb25lPSEhZS5kb25lKXJldHVybjt0PWUudmFsdWU7aWYoZihuLGEsW3QsdGhpcy5jb3VudGVyKytdLCEwKSlyZXR1cm4gdH19KTthKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpnfSx7ZmlsdGVyOmZ1bmN0aW9uIGZpbHRlcihlKXtpKHRoaXMpO3RyeXtzKGUpfWNhdGNoKGUpe2godGhpcywidGhyb3ciLGUpfXJldHVybiBkP3IoZCx0aGlzLGUpOm5ldyBiKG8odGhpcykse3ByZWRpY2F0ZTplfSl9fSl9LDExNihlLHQsbil7dmFyIGE9big2NTE4KSxyPW4oOTU2NSkscz1uKDI2NTIpLGk9big5MzA2KSxvPW4oODU1MSksbD1uKDE3NjcpLGY9big5NTM5KSxjPW4oNDU0OSkoImZpbmQiLFR5cGVFcnJvcik7YSh7dGFyZ2V0OiJJdGVyYXRvciIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6Y30se2ZpbmQ6ZnVuY3Rpb24gZmluZChlKXtvKHRoaXMpO3RyeXtpKGUpfWNhdGNoKGUpe2YodGhpcywidGhyb3ciLGUpfWlmKGMpcmV0dXJuIHIoYyx0aGlzLGUpO3ZhciB0PWwodGhpcyksbj0wO3JldHVybiBzKHQsZnVuY3Rpb24odCxhKXtpZihlKHQsbisrKSlyZXR1cm4gYSh0KX0se0lTX1JFQ09SRDohMCxJTlRFUlJVUFRFRDohMH0pLnJlc3VsdH19KX0sNTMxKGUsdCxuKXt2YXIgYT1uKDY1MTgpLHI9big5NTY1KSxzPW4oOTMwNiksaT1uKDg1NTEpLG89bigxNzY3KSxsPW4oODY0NiksZj1uKDk0NjIpLGM9big5NTM5KSxoPW4oNjM5NSksdT1uKDY4NCksbT1uKDQ1NDkpO3ZhciBwPSFoJiYhdSgiZmxhdE1hcCIsZnVuY3Rpb24oKXt9KSxkPSFoJiYhcCYmbSgiZmxhdE1hcCIsVHlwZUVycm9yKSxnPWh8fHB8fGR8fGZ1bmN0aW9uIHRocm93c09uSXRlcmF0b3JXaXRob3V0UmV0dXJuKCl7dHJ5e3ZhciBlPUl0ZXJhdG9yLnByb3RvdHlwZS5mbGF0TWFwLmNhbGwobmV3IE1hcChbWzQsNV1dKS5lbnRyaWVzKCksZnVuY3Rpb24oZSl7cmV0dXJuIGV9KTtlLm5leHQoKTtlLnJldHVybigpfWNhdGNoKGUpe3JldHVybiEwfX0oKSxiPWYoZnVuY3Rpb24oKXtmb3IodmFyIGUsdCxuPXRoaXMuaXRlcmF0b3IsYT10aGlzLm1hcHBlcjs7KXtpZih0PXRoaXMuaW5uZXIpdHJ5e2lmKCEoZT1pKHIodC5uZXh0LHQuaXRlcmF0b3IpKSkuZG9uZSlyZXR1cm4gZS52YWx1ZTt0aGlzLmlubmVyPW51bGx9Y2F0Y2goZSl7YyhuLCJ0aHJvdyIsZSl9ZT1pKHIodGhpcy5uZXh0LG4pKTtpZih0aGlzLmRvbmU9ISFlLmRvbmUpcmV0dXJuO3RyeXt0aGlzLmlubmVyPWwoYShlLnZhbHVlLHRoaXMuY291bnRlcisrKSwhMSl9Y2F0Y2goZSl7YyhuLCJ0aHJvdyIsZSl9fX0pO2Eoe3RhcmdldDoiSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOmd9LHtmbGF0TWFwOmZ1bmN0aW9uIGZsYXRNYXAoZSl7aSh0aGlzKTt0cnl7cyhlKX1jYXRjaChlKXtjKHRoaXMsInRocm93IixlKX1yZXR1cm4gZD9yKGQsdGhpcyxlKTpuZXcgYihvKHRoaXMpLHttYXBwZXI6ZSxpbm5lcjpudWxsfSl9fSl9LDc1ODgoZSx0LG4pe3ZhciBhPW4oNjUxOCkscj1uKDk1NjUpLHM9bigyNjUyKSxpPW4oOTMwNiksbz1uKDg1NTEpLGw9bigxNzY3KSxmPW4oOTUzOSksYz1uKDQ1NDkpKCJmb3JFYWNoIixUeXBlRXJyb3IpO2Eoe3RhcmdldDoiSXRlcmF0b3IiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOmN9LHtmb3JFYWNoOmZ1bmN0aW9uIGZvckVhY2goZSl7byh0aGlzKTt0cnl7aShlKX1jYXRjaChlKXtmKHRoaXMsInRocm93IixlKX1pZihjKXJldHVybiByKGMsdGhpcyxlKTt2YXIgdD1sKHRoaXMpLG49MDtzKHQsZnVuY3Rpb24odCl7ZSh0LG4rKyl9LHtJU19SRUNPUkQ6ITB9KX19KX0sMTcwMShlLHQsbil7dmFyIGE9big2NTE4KSxyPW4oOTU2NSkscz1uKDkzMDYpLGk9big4NTUxKSxvPW4oMTc2NyksbD1uKDk0NjIpLGY9big2MzE5KSxjPW4oOTUzOSksaD1uKDY4NCksdT1uKDQ1NDkpLG09big2Mzk1KSxwPSFtJiYhaCgibWFwIixmdW5jdGlvbigpe30pLGQ9IW0mJiFwJiZ1KCJtYXAiLFR5cGVFcnJvciksZz1tfHxwfHxkLGI9bChmdW5jdGlvbigpe3ZhciBlPXRoaXMuaXRlcmF0b3IsdD1pKHIodGhpcy5uZXh0LGUpKTtpZighKHRoaXMuZG9uZT0hIXQuZG9uZSkpcmV0dXJuIGYoZSx0aGlzLm1hcHBlcixbdC52YWx1ZSx0aGlzLmNvdW50ZXIrK10sITApfSk7YSh7dGFyZ2V0OiJJdGVyYXRvciIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6Z30se21hcDpmdW5jdGlvbiBtYXAoZSl7aSh0aGlzKTt0cnl7cyhlKX1jYXRjaChlKXtjKHRoaXMsInRocm93IixlKX1yZXR1cm4gZD9yKGQsdGhpcyxlKTpuZXcgYihvKHRoaXMpLHttYXBwZXI6ZX0pfX0pfSw4MjM3KGUsdCxuKXt2YXIgYT1uKDY1MTgpLHI9bigyNjUyKSxzPW4oOTMwNiksaT1uKDg1NTEpLG89bigxNzY3KSxsPW4oOTUzOSksZj1uKDQ1NDkpLGM9big4NzQ1KSxoPW4oOTAzOSksdT1UeXBlRXJyb3IsbT1oKGZ1bmN0aW9uKCl7W10ua2V5cygpLnJlZHVjZShmdW5jdGlvbigpe30sdm9pZCAwKX0pLHA9IW0mJmYoInJlZHVjZSIsdSk7YSh7dGFyZ2V0OiJJdGVyYXRvciIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6bXx8cH0se3JlZHVjZTpmdW5jdGlvbiByZWR1Y2UoZSl7aSh0aGlzKTt0cnl7cyhlKX1jYXRjaChlKXtsKHRoaXMsInRocm93IixlKX12YXIgdD1hcmd1bWVudHMubGVuZ3RoPDIsbj10P3ZvaWQgMDphcmd1bWVudHNbMV07aWYocClyZXR1cm4gYyhwLHRoaXMsdD9bZV06W2Usbl0pO3ZhciBhPW8odGhpcyksZj0wO3IoYSxmdW5jdGlvbihhKXtpZih0KXt0PSExO249YX1lbHNlIG49ZShuLGEsZik7ZisrfSx7SVNfUkVDT1JEOiEwfSk7aWYodCl0aHJvdyBuZXcgdSgiUmVkdWNlIG9mIGVtcHR5IGl0ZXJhdG9yIHdpdGggbm8gaW5pdGlhbCB2YWx1ZSIpO3JldHVybiBufX0pfSwzNTc5KGUsdCxuKXt2YXIgYT1uKDY1MTgpLHI9big5NTY1KSxzPW4oMjY1MiksaT1uKDkzMDYpLG89big4NTUxKSxsPW4oMTc2NyksZj1uKDk1MzkpLGM9big0NTQ5KSgic29tZSIsVHlwZUVycm9yKTthKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDpjfSx7c29tZTpmdW5jdGlvbiBzb21lKGUpe28odGhpcyk7dHJ5e2koZSl9Y2F0Y2goZSl7Zih0aGlzLCJ0aHJvdyIsZSl9aWYoYylyZXR1cm4gcihjLHRoaXMsZSk7dmFyIHQ9bCh0aGlzKSxuPTA7cmV0dXJuIHModCxmdW5jdGlvbih0LGEpe2lmKGUodCxuKyspKXJldHVybiBhKCl9LHtJU19SRUNPUkQ6ITAsSU5URVJSVVBURUQ6ITB9KS5zdG9wcGVkfX0pfSwxODA2KGUsdCxuKXt2YXIgYT1uKDY1MTgpLHI9big4NTUxKSxzPW4oNDY1OSksaT1uKDI2NTIpLG89bigxNzY3KTthKHt0YXJnZXQ6Ikl0ZXJhdG9yIixwcm90bzohMCxyZWFsOiEwfSx7dG9BcnJheTpmdW5jdGlvbiB0b0FycmF5KCl7dmFyIGU9W10sdD0wO2kobyhyKHRoaXMpKSxmdW5jdGlvbihuKXtzKGUsdCsrLG4pfSx7SVNfUkVDT1JEOiEwfSk7cmV0dXJuIGV9fSl9LDMxMTAoZSx0LG4pe3ZhciBhPW4oNjUxOCkscj1uKDc3NTEpLHM9big4NzQ1KSxpPW4oOTU2NSksbz1uKDk1MDQpLGw9big5MDM5KSxmPW4oNDM3NiksYz1uKDQ5MDEpLGg9big1ODEwKSx1PW4oNzU3KSxtPW4oMjE5NSkscD1uKDY1NSksZD1uKDc2ODApLGc9big4MjM1KSxiPW4oMzM5Miksdz1uKDQ0OTUpLGo9big3ODE5KSxrPVN0cmluZyx5PXIoIkpTT04iLCJzdHJpbmdpZnkiKSxxPW8oLy4vLmV4ZWMpLHY9bygiIi5jaGFyQXQpLFM9bygiIi5jaGFyQ29kZUF0KSx4PW8oIiIucmVwbGFjZSksQz1vKCIiLnNsaWNlKSxUPW8oW10ucHVzaCksTz1vKDEuMS50b1N0cmluZyksUj0vW1x1RDgwMC1cdURGRkZdL2csSD0vXltcdUQ4MDAtXHVEQkZGXSQvLEQ9L15bXHVEQzAwLVx1REZGRl0kLyxNPWIoKSxFPU0ubGVuZ3RoLE49IXd8fGwoZnVuY3Rpb24oKXt2YXIgZT1yKCJTeW1ib2wiKSgic3RyaW5naWZ5IGRldGVjdGlvbiIpO3JldHVybiJbbnVsbF0iIT09eShbZV0pfHwie30iIT09eSh7YTplfSl8fCJ7fSIhPT15KE9iamVjdChlKSl9KSx6PWwoZnVuY3Rpb24oKXtyZXR1cm4nIlxcdWRmMDZcXHVkODM0IichPT15KCJcdWRmMDZcdWQ4MzQiKXx8JyJcXHVkZWFkIichPT15KCJcdWRlYWQiKX0pLF89Tj9mdW5jdGlvbihlLHQpe3ZhciBuPWQoYXJndW1lbnRzKSxhPWdldFJlcGxhY2VyRnVuY3Rpb24odCk7aWYoYyhhKXx8dm9pZCAwIT09ZSYmIXUoZSkpe25bMV09ZnVuY3Rpb24oZSx0KXtjKGEpJiYodD1pKGEsdGhpcyxrKGUpLHQpKTtpZighdSh0KSlyZXR1cm4gdH07cmV0dXJuIHMoeSxudWxsLG4pfX06eSxmaXhJbGxGb3JtZWRKU09OPWZ1bmN0aW9uKGUsdCxuKXt2YXIgYT12KG4sdC0xKSxyPXYobix0KzEpO3JldHVybiBxKEgsZSkmJiFxKEQscil8fHEoRCxlKSYmIXEoSCxhKT8iXFx1IitPKFMoZSwwKSwxNik6ZX0sZ2V0UmVwbGFjZXJGdW5jdGlvbj1mdW5jdGlvbihlKXtpZihjKGUpKXJldHVybiBlO2lmKGYoZSkpe2Zvcih2YXIgdD1lLmxlbmd0aCxuPVtdLGE9MDthPHQ7YSsrKXt2YXIgcj1lW2FdOyJzdHJpbmciPT10eXBlb2Ygcj9UKG4scik6Im51bWJlciIhPXR5cGVvZiByJiYiTnVtYmVyIiE9PW0ocikmJiJTdHJpbmciIT09bShyKXx8VChuLHAocikpfXZhciBzPW4ubGVuZ3RoLGk9ITA7cmV0dXJuIGZ1bmN0aW9uKGUsdCl7aWYoaSl7aT0hMTtyZXR1cm4gdH1pZihmKHRoaXMpKXJldHVybiB0O2Zvcih2YXIgYT0wO2E8czthKyspaWYoblthXT09PWUpcmV0dXJuIHR9fX07eSYmYSh7dGFyZ2V0OiJKU09OIixzdGF0OiEwLGFyaXR5OjMsZm9yY2VkOk58fHp8fCFqfSx7c3RyaW5naWZ5OmZ1bmN0aW9uIHN0cmluZ2lmeShlLHQsbil7dmFyIGE9Z2V0UmVwbGFjZXJGdW5jdGlvbih0KSxyPVtdLHM9XyhlLGZ1bmN0aW9uKGUsdCl7dmFyIG49YyhhKT9pKGEsdGhpcyxrKGUpLHQpOnQ7cmV0dXJuIWomJmgobik/TSsoVChyLG4ucmF3SlNPTiktMSk6bn0sbik7aWYoInN0cmluZyIhPXR5cGVvZiBzKXJldHVybiBzO3omJihzPXgocyxSLGZpeElsbEZvcm1lZEpTT04pKTtpZihqKXJldHVybiBzO2Zvcih2YXIgbz0iIixsPXMubGVuZ3RoLGY9MDtmPGw7ZisrKXt2YXIgdT12KHMsZik7aWYoJyInPT09dSl7dmFyIG09ZyhzLCsrZikuZW5kLTEscD1DKHMsZixtKTtvKz1DKHAsMCxFKT09PU0/cltDKHAsRSldOiciJytwKyciJztmPW19ZWxzZSBvKz11fXJldHVybiBvfX0pfSwyNzMxKGUsdCxuKXt2YXIgYT1uKDY1MTgpLHI9big5MzA2KSxzPW4oNjE5NCksaT1uKDIyNDgpLG89big2Mzk1KSxsPWkuZ2V0LGY9aS5oYXMsYz1pLnNldDthKHt0YXJnZXQ6Ik1hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6b30se2dldE9ySW5zZXJ0Q29tcHV0ZWQ6ZnVuY3Rpb24gZ2V0T3JJbnNlcnRDb21wdXRlZChlLHQpe3ModGhpcyk7cih0KTtpZihmKHRoaXMsZSkpcmV0dXJuIGwodGhpcyxlKTswPT09ZSYmMS9lPT0tMS8wJiYoZT0wKTt2YXIgbj10KGUpO2ModGhpcyxlLG4pO3JldHVybiBufX0pfSw1MzY3KGUsdCxuKXt2YXIgYT1uKDY1MTgpLHI9big2MTk0KSxzPW4oMjI0OCksaT1uKDYzOTUpLG89cy5nZXQsbD1zLmhhcyxmPXMuc2V0O2Eoe3RhcmdldDoiTWFwIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDppfSx7Z2V0T3JJbnNlcnQ6ZnVuY3Rpb24gZ2V0T3JJbnNlcnQoZSx0KXtpZihsKHIodGhpcyksZSkpcmV0dXJuIG8odGhpcyxlKTtmKHRoaXMsZSx0KTtyZXR1cm4gdH19KX0sMzA2OChlLHQsbil7dmFyIGE9big2NTE4KSxyPW4oOTUwNCkscz1uKDI2NTIpLGk9UmFuZ2VFcnJvcixvPVR5cGVFcnJvcixsPTEvMCxmPU1hdGguYWJzLGM9TWF0aC5wb3csaD1yKFtdLnB1c2gpLHU9YygyLDEwMjMpLG09YygyLDUzKS0xLHA9TnVtYmVyLk1BWF9WQUxVRSxkPWMoMiw5NzEpLGc9e30sYj17fSx3PXt9LGo9e30saz17fSx0d29zdW09ZnVuY3Rpb24oZSx0KXt2YXIgbj1lK3Q7cmV0dXJue2hpOm4sbG86dC0obi1lKX19O2Eoe3RhcmdldDoiTWF0aCIsc3RhdDohMH0se3N1bVByZWNpc2U6ZnVuY3Rpb24gc3VtUHJlY2lzZShlKXt2YXIgdD1bXSxuPTAsYT1qO3MoZSxmdW5jdGlvbihlKXtpZigrK24+PW0pdGhyb3cgbmV3IGkoIk1heGltdW0gYWxsb3dlZCBpbmRleCBleGNlZWRlZCIpO2lmKCJudW1iZXIiIT10eXBlb2YgZSl0aHJvdyBuZXcgbygiVmFsdWUgaXMgbm90IGEgbnVtYmVyIik7aWYoYSE9PWcpaWYoZSE9ZSlhPWc7ZWxzZSBpZihlPT09bClhPWE9PT1iP2c6dztlbHNlIGlmKGU9PT0tMS8wKWE9YT09PXc/ZzpiO2Vsc2UgaWYoISgwPT09ZSYmMS9lIT09bHx8YSE9PWomJmEhPT1rKSl7YT1rO2godCxlKX19KTtzd2l0Y2goYSl7Y2FzZSBnOnJldHVybiBOYU47Y2FzZSBiOnJldHVybi0xLzA7Y2FzZSB3OnJldHVybiBsO2Nhc2UgajpyZXR1cm4tMH1mb3IodmFyIHIsYyx5LHEsdixTLHg9W10sQz0wLFQ9MDtUPHQubGVuZ3RoO1QrKyl7cj10W1RdO2Zvcih2YXIgTz0wLFI9MDtSPHgubGVuZ3RoO1IrKyl7Yz14W1JdO2lmKGYocik8ZihjKSl7Uz1yO3I9YztjPVN9cT0oeT10d29zdW0ocixjKSkuaGk7dj15LmxvO2lmKGYocSk9PT1sKXt2YXIgSD1xPT09bD8xOi0xO0MrPUg7aWYoZihyPXItSCp1LUgqdSk8ZihjKSl7Uz1yO3I9YztjPVN9cT0oeT10d29zdW0ocixjKSkuaGk7dj15LmxvfTAhPT12JiYoeFtPKytdPXYpO3I9cX14Lmxlbmd0aD1POzAhPT1yJiZoKHgscil9dmFyIEQ9eC5sZW5ndGgtMTtxPTA7dj0wO2lmKDAhPT1DKXt2YXIgTT1EPj0wP3hbRF06MDtELS07aWYoZihDKT4xfHxDPjAmJk0+MHx8QzwwJiZNPDApcmV0dXJuIEM+MD9sOi0xLzA7cT0oeT10d29zdW0oQyp1LE0vMikpLmhpO3Y9eS5sbzt2Kj0yO2lmKGYoMipxKT09PWwpcmV0dXJuIHE+MD9xPT09dSYmdj09PS1kLzImJkQ+PTAmJnhbRF08MD9wOmw6cT09PS11JiZ2PT09ZC8yJiZEPj0wJiZ4W0RdPjA/LXA6LTEvMDtpZigwIT09dil7eFsrK0RdPXY7dj0wfXEqPTJ9Zm9yKDtEPj0wOyl7cT0oeT10d29zdW0ocSx4W0QtLV0pKS5oaTtpZigwIT09KHY9eS5sbykpYnJlYWt9RD49MCYmKHY8MCYmeFtEXTwwfHx2PjAmJnhbRF0+MCkmJihjPTIqdik9PT0ocj1xK2MpLXEmJihxPXIpO3JldHVybiBxfX0pfSwxNjg5KGUsdCxuKXt2YXIgYT1uKDY1MTgpLHI9big0NTc2KSxzPW4oODc0NSksaT1uKDc2ODApLG89big2MDQzKSxsPW4oOTMwNiksZj1uKDExMDMpLGM9ci5Qcm9taXNlLGg9ITE7YSh7dGFyZ2V0OiJQcm9taXNlIixzdGF0OiEwLGZvcmNlZDohY3x8IWMudHJ5fHxmKGZ1bmN0aW9uKCl7Yy50cnkoZnVuY3Rpb24oZSl7aD04PT09ZX0sOCl9KS5lcnJvcnx8IWh9LHt0cnk6ZnVuY3Rpb24oZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4xP2koYXJndW1lbnRzLDEpOltdLG49by5mKHRoaXMpLGE9ZihmdW5jdGlvbigpe3JldHVybiBzKGwoZSksdm9pZCAwLHQpfSk7KGEuZXJyb3I/bi5yZWplY3Q6bi5yZXNvbHZlKShhLnZhbHVlKTtyZXR1cm4gbi5wcm9taXNlfX0pfSw0NjI4KGUsdCxuKXt2YXIgYT1uKDY1MTgpLHI9big2MDQzKTthKHt0YXJnZXQ6IlByb21pc2UiLHN0YXQ6ITB9LHt3aXRoUmVzb2x2ZXJzOmZ1bmN0aW9uIHdpdGhSZXNvbHZlcnMoKXt2YXIgZT1yLmYodGhpcyk7cmV0dXJue3Byb21pc2U6ZS5wcm9taXNlLHJlc29sdmU6ZS5yZXNvbHZlLHJlamVjdDplLnJlamVjdH19fSl9LDc2NDIoZSx0LG4pe3ZhciBhPW4oNjUxOCkscj1uKDM0NDApLHM9big5MDM5KTthKHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6IW4oNDkxNikoImRpZmZlcmVuY2UiLGZ1bmN0aW9uKGUpe3JldHVybiAwPT09ZS5zaXplfSl8fHMoZnVuY3Rpb24oKXt2YXIgZT17c2l6ZToxLGhhczpmdW5jdGlvbigpe3JldHVybiEwfSxrZXlzOmZ1bmN0aW9uKCl7dmFyIGU9MDtyZXR1cm57bmV4dDpmdW5jdGlvbigpe3ZhciBuPWUrKz4xO3QuaGFzKDEpJiZ0LmNsZWFyKCk7cmV0dXJue2RvbmU6bix2YWx1ZToyfX19fX0sdD1uZXcgU2V0KFsxLDIsMyw0XSk7cmV0dXJuIDMhPT10LmRpZmZlcmVuY2UoZSkuc2l6ZX0pfSx7ZGlmZmVyZW5jZTpyfSl9LDgwMDQoZSx0LG4pe3ZhciBhPW4oNjUxOCkscj1uKDkwMzkpLHM9big4NzUwKTthKHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6IW4oNDkxNikoImludGVyc2VjdGlvbiIsZnVuY3Rpb24oZSl7cmV0dXJuIDI9PT1lLnNpemUmJmUuaGFzKDEpJiZlLmhhcygyKX0pfHxyKGZ1bmN0aW9uKCl7cmV0dXJuIjMsMiIhPT1TdHJpbmcoQXJyYXkuZnJvbShuZXcgU2V0KFsxLDIsM10pLmludGVyc2VjdGlvbihuZXcgU2V0KFszLDJdKSkpKX0pfSx7aW50ZXJzZWN0aW9uOnN9KX0sMzg1MyhlLHQsbil7dmFyIGE9big2NTE4KSxyPW4oNDQ0OSk7YSh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiFuKDQ5MTYpKCJpc0Rpc2pvaW50RnJvbSIsZnVuY3Rpb24oZSl7cmV0dXJuIWV9KX0se2lzRGlzam9pbnRGcm9tOnJ9KX0sNTg3NihlLHQsbil7dmFyIGE9big2NTE4KSxyPW4oMzgzOCk7YSh7dGFyZ2V0OiJTZXQiLHByb3RvOiEwLHJlYWw6ITAsZm9yY2VkOiFuKDQ5MTYpKCJpc1N1YnNldE9mIixmdW5jdGlvbihlKXtyZXR1cm4gZX0pfSx7aXNTdWJzZXRPZjpyfSl9LDI0NzUoZSx0LG4pe3ZhciBhPW4oNjUxOCkscj1uKDg1MjcpO2Eoe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohbig0OTE2KSgiaXNTdXBlcnNldE9mIixmdW5jdGlvbihlKXtyZXR1cm4hZX0pfSx7aXNTdXBlcnNldE9mOnJ9KX0sNTAyNChlLHQsbil7dmFyIGE9big2NTE4KSxyPW4oMzY1MCkscz1uKDk4MzUpO2Eoe3RhcmdldDoiU2V0Iixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDohbig0OTE2KSgic3ltbWV0cmljRGlmZmVyZW5jZSIpfHwhcygic3ltbWV0cmljRGlmZmVyZW5jZSIpfSx7c3ltbWV0cmljRGlmZmVyZW5jZTpyfSl9LDE2OTgoZSx0LG4pe3ZhciBhPW4oNjUxOCkscj1uKDQyMDQpLHM9big5ODM1KTthKHt0YXJnZXQ6IlNldCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6IW4oNDkxNikoInVuaW9uIil8fCFzKCJ1bmlvbiIpfSx7dW5pb246cn0pfSw5NTc3KGUsdCxuKXt2YXIgYT1uKDQ2NDQpLHI9bigxMTA4KSxzPW4oNjE5OCksaT1uKDEyOTEpLG89big1ODU0KSxsPWEuYVR5cGVkQXJyYXksZj1hLmdldFR5cGVkQXJyYXlDb25zdHJ1Y3RvcixjPWEuZXhwb3J0VHlwZWRBcnJheU1ldGhvZCxoPVJhbmdlRXJyb3IsdT1mdW5jdGlvbigpe3RyeXtuZXcgSW50OEFycmF5KDEpLndpdGgoMix7dmFsdWVPZjpmdW5jdGlvbigpe3Rocm93IDh9fSl9Y2F0Y2goZSl7cmV0dXJuIDg9PT1lfX0oKSxtPXUmJmZ1bmN0aW9uKCl7dHJ5e25ldyBJbnQ4QXJyYXkoMSkud2l0aCgtLjUsMSl9Y2F0Y2goZSl7cmV0dXJuITB9fSgpO2MoIndpdGgiLHt3aXRoOmZ1bmN0aW9uKGUsdCl7dmFyIG49bCh0aGlzKSxhPXMobiksYz1pKGUpLHU9YzwwP2ErYzpjLG09cihuKT9vKHQpOit0O2lmKHU+PWF8fHU8MCl0aHJvdyBuZXcgaCgiSW5jb3JyZWN0IGluZGV4Iik7Zm9yKHZhciBwPW5ldyhmKG4pKShhKSxkPTA7ZDxhO2QrKylwW2RdPWQ9PT11P206bltkXTtyZXR1cm4gcH19LndpdGgsIXV8fG0pfSw1MjEzKGUsdCxuKXt2YXIgYT1uKDY1MTgpLHI9big0NTc2KSxzPW4oNTM3MCksaT1uKDkxNDMpLG89ci5VaW50OEFycmF5LGw9IW98fCFvLmZyb21CYXNlNjR8fCFmdW5jdGlvbigpe3RyeXtvLmZyb21CYXNlNjQoImEiKTtyZXR1cm59Y2F0Y2goZSl7fXRyeXtvLmZyb21CYXNlNjQoIiIsbnVsbCl9Y2F0Y2goZSl7cmV0dXJuITB9fSgpO28mJmEoe3RhcmdldDoiVWludDhBcnJheSIsc3RhdDohMCxmb3JjZWQ6bH0se2Zyb21CYXNlNjQ6ZnVuY3Rpb24gZnJvbUJhc2U2NChlKXt2YXIgdD1pKGUsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsbnVsbCw5MDA3MTk5MjU0NzQwOTkxKTtyZXR1cm4gcyhvLHQuYnl0ZXMpfX0pfSw2NjMyKGUsdCxuKXt2YXIgYT1uKDY1MTgpLHI9big0NTc2KSxzPW4oOTE0MyksaT1uKDQxNTQpLG89ci5VaW50OEFycmF5LGw9IW98fCFvLnByb3RvdHlwZS5zZXRGcm9tQmFzZTY0fHwhZnVuY3Rpb24oKXt2YXIgZT1uZXcgbyhbMjU1LDI1NSwyNTUsMjU1LDI1NV0pO3RyeXtlLnNldEZyb21CYXNlNjQoIiIsbnVsbCk7cmV0dXJufWNhdGNoKGUpe310cnl7ZS5zZXRGcm9tQmFzZTY0KCJhIik7cmV0dXJufWNhdGNoKGUpe310cnl7ZS5zZXRGcm9tQmFzZTY0KCJNall5Wmc9PT0iKX1jYXRjaCh0KXtyZXR1cm4gNTA9PT1lWzBdJiY1ND09PWVbMV0mJjUwPT09ZVsyXSYmMjU1PT09ZVszXSYmMjU1PT09ZVs0XX19KCk7byYmYSh7dGFyZ2V0OiJVaW50OEFycmF5Iixwcm90bzohMCxmb3JjZWQ6bH0se3NldEZyb21CYXNlNjQ6ZnVuY3Rpb24gc2V0RnJvbUJhc2U2NChlKXtpKHRoaXMpO3ZhciB0PXMoZSxhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCx0aGlzLHRoaXMubGVuZ3RoKTtyZXR1cm57cmVhZDp0LnJlYWQsd3JpdHRlbjp0LndyaXR0ZW59fX0pfSw0MjI2KGUsdCxuKXt2YXIgYT1uKDY1MTgpLHI9big0NTc2KSxzPW4oMzQ2MyksaT1uKDQxNTQpLG89big1MTY5KSxsPW4oMjMwMyk7ci5VaW50OEFycmF5JiZhKHt0YXJnZXQ6IlVpbnQ4QXJyYXkiLHByb3RvOiEwLGZvcmNlZDpmdW5jdGlvbiB0aHJvd3NPbkxlbmd0aFRyYWNraW5nVmlldygpe3RyeXt2YXIgZT1uZXcgQXJyYXlCdWZmZXIoMTYse21heEJ5dGVMZW5ndGg6MTAyNH0pO25ldyBVaW50OEFycmF5KGUpLnNldEZyb21IZXgoImNhZmVkMDBkIil9Y2F0Y2goZSl7cmV0dXJuITB9fSgpfSx7c2V0RnJvbUhleDpmdW5jdGlvbiBzZXRGcm9tSGV4KGUpe2kodGhpcyk7cyhlKTtvKHRoaXMuYnVmZmVyKTt2YXIgdD1sKGUsdGhpcykucmVhZDtyZXR1cm57cmVhZDp0LHdyaXR0ZW46dC8yfX19KX0sOTQ4NihlLHQsbil7dmFyIGE9big2NTE4KSxyPW4oNDU3Nikscz1uKDk1MDQpLGk9bigzOTcyKSxvPW4oNDE1NCksbD1uKDUxNjkpLGY9bigyODA0KSxjPW4oOTQ0KSxoPWYuaTJjLHU9Zi5pMmNVcmwsbT1zKCIiLmNoYXJBdCkscD1yLlVpbnQ4QXJyYXksZD0hcHx8IXAucHJvdG90eXBlLnRvQmFzZTY0fHwhZnVuY3Rpb24oKXt0cnl7KG5ldyBwKS50b0Jhc2U2NChudWxsKX1jYXRjaChlKXtyZXR1cm4hMH19KCk7cCYmYSh7dGFyZ2V0OiJVaW50OEFycmF5Iixwcm90bzohMCxmb3JjZWQ6ZH0se3RvQmFzZTY0OmZ1bmN0aW9uIHRvQmFzZTY0KCl7dmFyIGU9byh0aGlzKSx0PWFyZ3VtZW50cy5sZW5ndGg/aShhcmd1bWVudHNbMF0pOnZvaWQgMCxuPSJiYXNlNjQiPT09Yyh0KT9oOnUsYT0hIXQmJiEhdC5vbWl0UGFkZGluZztsKHRoaXMuYnVmZmVyKTtmb3IodmFyIHIscz0iIixmPTAscD1lLmxlbmd0aCxhdD1mdW5jdGlvbihlKXtyZXR1cm4gbShuLHI+PjYqZSY2Myl9O2YrMjxwO2YrPTMpe3I9KGVbZl08PDE2KSsoZVtmKzFdPDw4KStlW2YrMl07cys9YXQoMykrYXQoMikrYXQoMSkrYXQoMCl9aWYoZisyPT09cCl7cj0oZVtmXTw8MTYpKyhlW2YrMV08PDgpO3MrPWF0KDMpK2F0KDIpK2F0KDEpKyhhPyIiOiI9Iil9ZWxzZSBpZihmKzE9PT1wKXtyPWVbZl08PDE2O3MrPWF0KDMpK2F0KDIpKyhhPyIiOiI9PSIpfXJldHVybiBzfX0pfSw0NTYoZSx0LG4pe3ZhciBhPW4oNjUxOCkscj1uKDQ1NzYpLHM9big5NTA0KSxpPW4oNDE1NCksbz1uKDUxNjkpLGw9cygxLjEudG9TdHJpbmcpLGY9ci5VaW50OEFycmF5LGM9IWZ8fCFmLnByb3RvdHlwZS50b0hleHx8IWZ1bmN0aW9uKCl7dHJ5e3JldHVybiJmZmZmZmZmZmZmZmZmZmZmIj09PW5ldyBmKFsyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1XSkudG9IZXgoKX1jYXRjaChlKXtyZXR1cm4hMX19KCk7ZiYmYSh7dGFyZ2V0OiJVaW50OEFycmF5Iixwcm90bzohMCxmb3JjZWQ6Y30se3RvSGV4OmZ1bmN0aW9uIHRvSGV4KCl7aSh0aGlzKTtvKHRoaXMuYnVmZmVyKTtmb3IodmFyIGU9IiIsdD0wLG49dGhpcy5sZW5ndGg7dDxuO3QrKyl7dmFyIGE9bCh0aGlzW3RdLDE2KTtlKz0xPT09YS5sZW5ndGg/IjAiK2E6YX1yZXR1cm4gZX19KX0sOTQ1MihlLHQsbil7dmFyIGE9big2NTE4KSxyPW4oOTMwNikscz1uKDY1NTcpLGk9big0MzI4KSxvPW4oNDk5NSksbD1uKDYzOTUpLGY9by5nZXQsYz1vLmhhcyxoPW8uc2V0O2Eoe3RhcmdldDoiV2Vha01hcCIscHJvdG86ITAscmVhbDohMCxmb3JjZWQ6bHx8IWZ1bmN0aW9uKCl7dHJ5e1dlYWtNYXAucHJvdG90eXBlLmdldE9ySW5zZXJ0Q29tcHV0ZWQmJihuZXcgV2Vha01hcCkuZ2V0T3JJbnNlcnRDb21wdXRlZCgxLGZ1bmN0aW9uKCl7dGhyb3cgMX0pfWNhdGNoKGUpe3JldHVybiBlIGluc3RhbmNlb2YgVHlwZUVycm9yfX0oKX0se2dldE9ySW5zZXJ0Q29tcHV0ZWQ6ZnVuY3Rpb24gZ2V0T3JJbnNlcnRDb21wdXRlZChlLHQpe3ModGhpcyk7aShlKTtyKHQpO2lmKGModGhpcyxlKSlyZXR1cm4gZih0aGlzLGUpO3ZhciBuPXQoZSk7aCh0aGlzLGUsbik7cmV0dXJuIG59fSl9LDg0NTQoZSx0LG4pe3ZhciBhPW4oNjUxOCkscj1uKDY1NTcpLHM9big0OTk1KSxpPW4oNjM5NSksbz1zLmdldCxsPXMuaGFzLGY9cy5zZXQ7YSh7dGFyZ2V0OiJXZWFrTWFwIixwcm90bzohMCxyZWFsOiEwLGZvcmNlZDppfSx7Z2V0T3JJbnNlcnQ6ZnVuY3Rpb24gZ2V0T3JJbnNlcnQoZSx0KXtpZihsKHIodGhpcyksZSkpcmV0dXJuIG8odGhpcyxlKTtmKHRoaXMsZSx0KTtyZXR1cm4gdH19KX0sMzYxMShlLHQsbil7dmFyIGE9big2NTE4KSxyPW4oNDU3Nikscz1uKDIxMDYpLGk9bigzNzI0KSxvPVR5cGVFcnJvcixsPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxmPXIuc2VsZiE9PXI7dHJ5e2lmKGkpe3ZhciBjPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iociwic2VsZiIpOyFmJiZjJiZjLmdldCYmYy5lbnVtZXJhYmxlfHxzKHIsInNlbGYiLHtnZXQ6ZnVuY3Rpb24gc2VsZigpe3JldHVybiByfSxzZXQ6ZnVuY3Rpb24gc2VsZihlKXtpZih0aGlzIT09cil0aHJvdyBuZXcgbygiSWxsZWdhbCBpbnZvY2F0aW9uIik7bChyLCJzZWxmIix7dmFsdWU6ZSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH0pfSxjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMH0pfWVsc2UgYSh7Z2xvYmFsOiEwLHNpbXBsZTohMCxmb3JjZWQ6Zn0se3NlbGY6cn0pfWNhdGNoKGUpe319LDQ2MDMoZSx0LG4pe3ZhciBhPW4oNjg0MCkscj1uKDk1MDQpLHM9big2NTUpLGk9bigyODEyKSxvPVVSTFNlYXJjaFBhcmFtcyxsPW8ucHJvdG90eXBlLGY9cihsLmFwcGVuZCksYz1yKGwuZGVsZXRlKSxoPXIobC5mb3JFYWNoKSx1PXIoW10ucHVzaCksbT1uZXcgbygiYT0xJmE9MiZiPTMiKTttLmRlbGV0ZSgiYSIsMSk7bS5kZWxldGUoImIiLHZvaWQgMCk7bSsiIiE9ImE9MiImJmEobCwiZGVsZXRlIixmdW5jdGlvbihlKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoLG49dDwyP3ZvaWQgMDphcmd1bWVudHNbMV07aWYodCYmdm9pZCAwPT09bilyZXR1cm4gYyh0aGlzLGUpO3ZhciBhPVtdO2godGhpcyxmdW5jdGlvbihlLHQpe3UoYSx7a2V5OnQsdmFsdWU6ZX0pfSk7aSh0LDEpO2Zvcih2YXIgcixvPXMoZSksbD1zKG4pLG09MCxwPTAsZD0hMSxnPWEubGVuZ3RoO208Zzspe3I9YVttKytdO2lmKGR8fHIua2V5PT09byl7ZD0hMDtjKHRoaXMsci5rZXkpfWVsc2UgcCsrfWZvcig7cDxnOykocj1hW3ArK10pLmtleT09PW8mJnIudmFsdWU9PT1sfHxmKHRoaXMsci5rZXksci52YWx1ZSl9LHtlbnVtZXJhYmxlOiEwLHVuc2FmZTohMH0pfSw3NTY2KGUsdCxuKXt2YXIgYT1uKDY4NDApLHI9big5NTA0KSxzPW4oNjU1KSxpPW4oMjgxMiksbz1VUkxTZWFyY2hQYXJhbXMsbD1vLnByb3RvdHlwZSxmPXIobC5nZXRBbGwpLGM9cihsLmhhcyksaD1uZXcgbygiYT0xIik7IWguaGFzKCJhIiwyKSYmaC5oYXMoImEiLHZvaWQgMCl8fGEobCwiaGFzIixmdW5jdGlvbiBoYXMoZSl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aCxuPXQ8Mj92b2lkIDA6YXJndW1lbnRzWzFdO2lmKHQmJnZvaWQgMD09PW4pcmV0dXJuIGModGhpcyxlKTt2YXIgYT1mKHRoaXMsZSk7aSh0LDEpO2Zvcih2YXIgcj1zKG4pLG89MDtvPGEubGVuZ3RoOylpZihhW28rK109PT1yKXJldHVybiEwO3JldHVybiExfSx7ZW51bWVyYWJsZTohMCx1bnNhZmU6ITB9KX0sODcyMShlLHQsbil7dmFyIGE9bigzNzI0KSxyPW4oOTUwNCkscz1uKDIxMDYpLGk9VVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZSxvPXIoaS5mb3JFYWNoKTthJiYhKCJzaXplImluIGkpJiZzKGksInNpemUiLHtnZXQ6ZnVuY3Rpb24gc2l6ZSgpe3ZhciBlPTA7byh0aGlzLGZ1bmN0aW9uKCl7ZSsrfSk7cmV0dXJuIGV9LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwfSl9LDU3ODEoZSx0LG4pe3ZhciBhPW4oNjUxOCkscj1uKDc3NTEpLHM9bigyODEyKSxpPW4oNjU1KSxvPW4oNzQxNiksbD1yKCJVUkwiKTthKHt0YXJnZXQ6IlVSTCIsc3RhdDohMCxmb3JjZWQ6IW99LHtwYXJzZTpmdW5jdGlvbiBwYXJzZShlKXt2YXIgdD1zKGFyZ3VtZW50cy5sZW5ndGgsMSksbj1pKGUpLGE9dDwyfHx2b2lkIDA9PT1hcmd1bWVudHNbMV0/dm9pZCAwOmkoYXJndW1lbnRzWzFdKTt0cnl7cmV0dXJuIG5ldyBsKG4sYSl9Y2F0Y2goZSl7cmV0dXJuIG51bGx9fX0pfX0sdD17fTtmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG4pe3ZhciBhPXRbbl07aWYodm9pZCAwIT09YSlyZXR1cm4gYS5leHBvcnRzO3ZhciByPXRbbl09e2V4cG9ydHM6e319O2Vbbl0uY2FsbChyLmV4cG9ydHMscixyLmV4cG9ydHMsX193ZWJwYWNrX3JlcXVpcmVfXyk7cmV0dXJuIHIuZXhwb3J0c31fX3dlYnBhY2tfcmVxdWlyZV9fLmQ9KGUsdCk9Pntmb3IodmFyIG4gaW4gdClfX3dlYnBhY2tfcmVxdWlyZV9fLm8odCxuKSYmIV9fd2VicGFja19yZXF1aXJlX18ubyhlLG4pJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHtlbnVtZXJhYmxlOiEwLGdldDp0W25dfSl9O19fd2VicGFja19yZXF1aXJlX18ubz0oZSx0KT0+T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsdCk7X193ZWJwYWNrX3JlcXVpcmVfXyg0MTE0KSxfX3dlYnBhY2tfcmVxdWlyZV9fKDY1NzMpLF9fd2VicGFja19yZXF1aXJlX18oODEwMCksX193ZWJwYWNrX3JlcXVpcmVfXyg3OTM2KSxfX3dlYnBhY2tfcmVxdWlyZV9fKDgxMTEpLF9fd2VicGFja19yZXF1aXJlX18oMjQ4OSksX193ZWJwYWNrX3JlcXVpcmVfXygxNzAxKSxfX3dlYnBhY2tfcmVxdWlyZV9fKDM1NzkpLF9fd2VicGFja19yZXF1aXJlX18oNTM2NyksX193ZWJwYWNrX3JlcXVpcmVfXygyNzMxKSxfX3dlYnBhY2tfcmVxdWlyZV9fKDQ2MjgpLF9fd2VicGFja19yZXF1aXJlX18oNzY0MiksX193ZWJwYWNrX3JlcXVpcmVfXyg4MDA0KSxfX3dlYnBhY2tfcmVxdWlyZV9fKDM4NTMpLF9fd2VicGFja19yZXF1aXJlX18oNTg3NiksX193ZWJwYWNrX3JlcXVpcmVfXygyNDc1KSxfX3dlYnBhY2tfcmVxdWlyZV9fKDUwMjQpLF9fd2VicGFja19yZXF1aXJlX18oMTY5OCksX193ZWJwYWNrX3JlcXVpcmVfXyg5NTc3KSxfX3dlYnBhY2tfcmVxdWlyZV9fKDY2MzIpLF9fd2VicGFja19yZXF1aXJlX18oNDIyNiksX193ZWJwYWNrX3JlcXVpcmVfXyg5NDg2KSxfX3dlYnBhY2tfcmVxdWlyZV9fKDQ1NiksX193ZWJwYWNrX3JlcXVpcmVfXygzNjExKSxfX3dlYnBhY2tfcmVxdWlyZV9fKDgyMzcpLF9fd2VicGFja19yZXF1aXJlX18oMzA2OCksX193ZWJwYWNrX3JlcXVpcmVfXyg1NzgxKTtjb25zdCBuPSEoIm9iamVjdCIhPXR5cGVvZiBwcm9jZXNzfHxwcm9jZXNzKyIiIT0iW29iamVjdCBwcm9jZXNzXSJ8fHByb2Nlc3MudmVyc2lvbnMubnd8fHByb2Nlc3MudmVyc2lvbnMuZWxlY3Ryb24mJnByb2Nlc3MudHlwZSYmImJyb3dzZXIiIT09cHJvY2Vzcy50eXBlKSxhPVsuMDAxLDAsMCwuMDAxLDAsMF0scj0xLjM1LHM9LjM1LGk9LjI1OTI1OTI1OTI1OTI1OTI0LG89MSxsPTIsZj00LGM9OCxoPTE2LHU9NjQsbT0xMjgscD0yNTYsZD0icGRmanNfaW50ZXJuYWxfZWRpdG9yXyIsZz0zLGI9OSx3PTEzLGo9MTUsaz0xMDEseT17UFJJTlQ6NCxNT0RJRllfQ09OVEVOVFM6OCxDT1BZOjE2LE1PRElGWV9BTk5PVEFUSU9OUzozMixGSUxMX0lOVEVSQUNUSVZFX0ZPUk1TOjI1NixDT1BZX0ZPUl9BQ0NFU1NJQklMSVRZOjUxMixBU1NFTUJMRToxMDI0LFBSSU5UX0hJR0hfUVVBTElUWToyMDQ4fSxxPTEsdj0yLFM9Myx4PTAsQz00LFQ9MSxPPTIsUj0zLEg9e1RFWFQ6MSxMSU5LOjIsRlJFRVRFWFQ6MyxMSU5FOjQsU1FVQVJFOjUsQ0lSQ0xFOjYsUE9MWUdPTjo3LFBPTFlMSU5FOjgsSElHSExJR0hUOjksVU5ERVJMSU5FOjEwLFNRVUlHR0xZOjExLFNUUklLRU9VVDoxMixTVEFNUDoxMyxDQVJFVDoxNCxJTks6MTUsUE9QVVA6MTYsRklMRUFUVEFDSE1FTlQ6MTcsU09VTkQ6MTgsTU9WSUU6MTksV0lER0VUOjIwLFNDUkVFTjoyMSxQUklOVEVSTUFSSzoyMixUUkFQTkVUOjIzLFdBVEVSTUFSSzoyNCxUSFJFRUQ6MjUsUkVEQUNUOjI2fSxEPSJHcm91cCIsTT0iUiIsRT0xLE49Mix6PTQsXz0xNixMPTMyLFU9MTI4LFg9NTEyLFc9MSxLPTIsVj00MDk2LEc9ODE5MiwkPTMyNzY4LFk9NjU1MzYsSj0xMzEwNzIsUT0xMDQ4NTc2LFo9MjA5NzE1MixlZT04Mzg4NjA4LHRlPTE2Nzc3MjE2LG5lPTEsYWU9MixyZT0zLHNlPTQsaWU9NSxvZT17RToiTW91c2UgRW50ZXIiLFg6Ik1vdXNlIEV4aXQiLEQ6Ik1vdXNlIERvd24iLFU6Ik1vdXNlIFVwIixGbzoiRm9jdXMiLEJsOiJCbHVyIixQTzoiUGFnZU9wZW4iLFBDOiJQYWdlQ2xvc2UiLFBWOiJQYWdlVmlzaWJsZSIsUEk6IlBhZ2VJbnZpc2libGUiLEs6IktleXN0cm9rZSIsRjoiRm9ybWF0IixWOiJWYWxpZGF0ZSIsQzoiQ2FsY3VsYXRlIn0sbGU9e1dDOiJXaWxsQ2xvc2UiLFdTOiJXaWxsU2F2ZSIsRFM6IkRpZFNhdmUiLFdQOiJXaWxsUHJpbnQiLERQOiJEaWRQcmludCJ9LGZlPXtPOiJQYWdlT3BlbiIsQzoiUGFnZUNsb3NlIn0sY2U9MSxoZT01LHVlPTEsbWU9MixwZT0zLGRlPTQsZ2U9NSxiZT02LHdlPTcsamU9OCxrZT05LHllPTEwLHFlPTExLHZlPTEyLFNlPTEzLHhlPTE0LEFlPTE1LENlPTE2LEllPTE3LEZlPTE4LFRlPTE5LE9lPTIwLFJlPTIxLEJlPTIyLEhlPTIzLERlPTI0LE1lPTI1LFBlPTI2LEVlPTI3LE5lPTI4LHplPTI5LF9lPTMwLExlPTMxLFVlPTMyLFhlPTMzLFdlPTM0LEtlPTM1LFZlPTM2LEdlPTM3LCRlPTM4LFllPTM5LEplPTQwLFFlPTQxLFplPTQyLGV0PTQzLHR0PTQ0LG50PTQ1LHJ0PTQ2LHN0PTQ3LGl0PTQ4LG90PTQ5LGx0PTUwLGZ0PTUxLGN0PTUyLGh0PTUzLHV0PTU0LG10PTU1LHB0PTU2LGR0PTU3LGd0PTU4LGJ0PTU5LHd0PTYwLGp0PTYxLGt0PTYyLHl0PTYzLHF0PTY0LHZ0PTY1LFN0PTY2LHh0PTY3LEF0PTY4LEN0PTY5LEl0PTcwLEZ0PTcxLFR0PTcyLE90PTczLFJ0PTc0LEJ0PTc1LEh0PTc2LER0PTc3LE10PTgwLFB0PTgxLEV0PTgzLE50PTg0LHp0PTg1LF90PTg2LEx0PTg3LFV0PTg4LFh0PTg5LFd0PTkwLEt0PTkxLFZ0PTkyLEd0PTkzLCR0PTk0LFl0PTAsSnQ9MSxRdD0yLFp0PTMsZW49NCx0bj0xLG5uPTI7bGV0IGFuPWNlO2Z1bmN0aW9uIGdldFZlcmJvc2l0eUxldmVsKCl7cmV0dXJuIGFufWZ1bmN0aW9uIGluZm8oZSl7YW4+PWhlJiZjb25zb2xlLmluZm8oYEluZm86ICR7ZX1gKX1mdW5jdGlvbiB3YXJuKGUpe2FuPj1jZSYmY29uc29sZS53YXJuKGBXYXJuaW5nOiAke2V9YCl9ZnVuY3Rpb24gdW5yZWFjaGFibGUoZSl7dGhyb3cgbmV3IEVycm9yKGUpfWZ1bmN0aW9uIGFzc2VydChlLHQpe2V8fHVucmVhY2hhYmxlKHQpfWZ1bmN0aW9uIGNyZWF0ZVZhbGlkQWJzb2x1dGVVcmwoZSx0PW51bGwsbj1udWxsKXtpZighZSlyZXR1cm4gbnVsbDtpZihuJiYic3RyaW5nIj09dHlwZW9mIGUpe2lmKG4uYWRkRGVmYXVsdFByb3RvY29sJiZlLnN0YXJ0c1dpdGgoInd3dy4iKSl7Y29uc3QgdD1lLm1hdGNoKC9cLi9nKTt0Py5sZW5ndGg+PTImJihlPWBodHRwOi8vJHtlfWApfWlmKG4udHJ5Q29udmVydEVuY29kaW5nKXRyeXtlPXN0cmluZ1RvVVRGOFN0cmluZyhlKX1jYXRjaHt9fWNvbnN0IGE9dD9VUkwucGFyc2UoZSx0KTpVUkwucGFyc2UoZSk7cmV0dXJuIGZ1bmN0aW9uIF9pc1ZhbGlkUHJvdG9jb2woZSl7c3dpdGNoKGU/LnByb3RvY29sKXtjYXNlImh0dHA6IjpjYXNlImh0dHBzOiI6Y2FzZSJmdHA6IjpjYXNlIm1haWx0bzoiOmNhc2UidGVsOiI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19KGEpP2E6bnVsbH1mdW5jdGlvbiBzaGFkb3coZSx0LG4sYT0hMSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7dmFsdWU6bixlbnVtZXJhYmxlOiFhLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMX0pO3JldHVybiBufWNvbnN0IHJuPWZ1bmN0aW9uIEJhc2VFeGNlcHRpb25DbG9zdXJlKCl7ZnVuY3Rpb24gQmFzZUV4Y2VwdGlvbihlLHQpe3RoaXMubWVzc2FnZT1lO3RoaXMubmFtZT10fUJhc2VFeGNlcHRpb24ucHJvdG90eXBlPW5ldyBFcnJvcjtCYXNlRXhjZXB0aW9uLmNvbnN0cnVjdG9yPUJhc2VFeGNlcHRpb247cmV0dXJuIEJhc2VFeGNlcHRpb259KCk7Y2xhc3MgUGFzc3dvcmRFeGNlcHRpb24gZXh0ZW5kcyBybntjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsIlBhc3N3b3JkRXhjZXB0aW9uIik7dGhpcy5jb2RlPXR9fWNsYXNzIFVua25vd25FcnJvckV4Y2VwdGlvbiBleHRlbmRzIHJue2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSwiVW5rbm93bkVycm9yRXhjZXB0aW9uIik7dGhpcy5kZXRhaWxzPXR9fWNsYXNzIEludmFsaWRQREZFeGNlcHRpb24gZXh0ZW5kcyBybntjb25zdHJ1Y3RvcihlKXtzdXBlcihlLCJJbnZhbGlkUERGRXhjZXB0aW9uIil9fWNsYXNzIFJlc3BvbnNlRXhjZXB0aW9uIGV4dGVuZHMgcm57Y29uc3RydWN0b3IoZSx0LG4pe3N1cGVyKGUsIlJlc3BvbnNlRXhjZXB0aW9uIik7dGhpcy5zdGF0dXM9dDt0aGlzLm1pc3Npbmc9bn19Y2xhc3MgRm9ybWF0RXJyb3IgZXh0ZW5kcyBybntjb25zdHJ1Y3RvcihlKXtzdXBlcihlLCJGb3JtYXRFcnJvciIpfX1jbGFzcyBBYm9ydEV4Y2VwdGlvbiBleHRlbmRzIHJue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUsIkFib3J0RXhjZXB0aW9uIil9fWZ1bmN0aW9uIGJ5dGVzVG9TdHJpbmcoZSl7Im9iamVjdCI9PXR5cGVvZiBlJiZ2b2lkIDAhPT1lPy5sZW5ndGh8fHVucmVhY2hhYmxlKCJJbnZhbGlkIGFyZ3VtZW50IGZvciBieXRlc1RvU3RyaW5nIik7Y29uc3QgdD1lLmxlbmd0aCxuPTgxOTI7aWYodDxuKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsZSk7Y29uc3QgYT1bXTtmb3IobGV0IHI9MDtyPHQ7cis9bil7Y29uc3Qgcz1NYXRoLm1pbihyK24sdCksaT1lLnN1YmFycmF5KHIscyk7YS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxpKSl9cmV0dXJuIGEuam9pbigiIil9ZnVuY3Rpb24gc3RyaW5nVG9CeXRlcyhlKXsic3RyaW5nIiE9dHlwZW9mIGUmJnVucmVhY2hhYmxlKCJJbnZhbGlkIGFyZ3VtZW50IGZvciBzdHJpbmdUb0J5dGVzIik7Y29uc3QgdD1lLmxlbmd0aCxuPW5ldyBVaW50OEFycmF5KHQpO2ZvcihsZXQgYT0wO2E8dDsrK2EpblthXT0yNTUmZS5jaGFyQ29kZUF0KGEpO3JldHVybiBufWZ1bmN0aW9uIHN0cmluZzMyKGUpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGU+PjI0JjI1NSxlPj4xNiYyNTUsZT4+OCYyNTUsMjU1JmUpfWZ1bmN0aW9uIG9iamVjdFNpemUoZSl7cmV0dXJuIE9iamVjdC5rZXlzKGUpLmxlbmd0aH1jbGFzcyBGZWF0dXJlVGVzdHtzdGF0aWMgZ2V0IGlzTGl0dGxlRW5kaWFuKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJpc0xpdHRsZUVuZGlhbiIsZnVuY3Rpb24gaXNMaXR0bGVFbmRpYW4oKXtjb25zdCBlPW5ldyBVaW50OEFycmF5KDQpO2VbMF09MTtyZXR1cm4gMT09PW5ldyBVaW50MzJBcnJheShlLmJ1ZmZlciwwLDEpWzBdfSgpKX1zdGF0aWMgZ2V0IGlzRXZhbFN1cHBvcnRlZCgpe3JldHVybiBzaGFkb3codGhpcywiaXNFdmFsU3VwcG9ydGVkIixmdW5jdGlvbiBpc0V2YWxTdXBwb3J0ZWQoKXt0cnl7bmV3IEZ1bmN0aW9uKCIiKTtyZXR1cm4hMH1jYXRjaHtyZXR1cm4hMX19KCkpfXN0YXRpYyBnZXQgaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQoKXtyZXR1cm4gc2hhZG93KHRoaXMsImlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkIiwidW5kZWZpbmVkIiE9dHlwZW9mIE9mZnNjcmVlbkNhbnZhcyl9c3RhdGljIGdldCBpc0ltYWdlRGVjb2RlclN1cHBvcnRlZCgpe3JldHVybiBzaGFkb3codGhpcywiaXNJbWFnZURlY29kZXJTdXBwb3J0ZWQiLCJ1bmRlZmluZWQiIT10eXBlb2YgSW1hZ2VEZWNvZGVyKX1zdGF0aWMgZ2V0IGlzRmxvYXQxNkFycmF5U3VwcG9ydGVkKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJpc0Zsb2F0MTZBcnJheVN1cHBvcnRlZCIsInVuZGVmaW5lZCIhPXR5cGVvZiBGbG9hdDE2QXJyYXkpfXN0YXRpYyBnZXQgaXNTYW5pdGl6ZXJTdXBwb3J0ZWQoKXtyZXR1cm4gc2hhZG93KHRoaXMsImlzU2FuaXRpemVyU3VwcG9ydGVkIiwidW5kZWZpbmVkIiE9dHlwZW9mIFNhbml0aXplcil9c3RhdGljIGdldCBwbGF0Zm9ybSgpe2NvbnN0e3BsYXRmb3JtOmUsdXNlckFnZW50OnR9PW5hdmlnYXRvcjtyZXR1cm4gc2hhZG93KHRoaXMsInBsYXRmb3JtIix7aXNBbmRyb2lkOnQuaW5jbHVkZXMoIkFuZHJvaWQiKSxpc0xpbnV4OmUuaW5jbHVkZXMoIkxpbnV4IiksaXNNYWM6ZS5pbmNsdWRlcygiTWFjIiksaXNXaW5kb3dzOmUuaW5jbHVkZXMoIldpbiIpLGlzRmlyZWZveDp0LmluY2x1ZGVzKCJGaXJlZm94Iil9KX1zdGF0aWMgZ2V0IGlzQ1NTUm91bmRTdXBwb3J0ZWQoKXtyZXR1cm4gc2hhZG93KHRoaXMsImlzQ1NTUm91bmRTdXBwb3J0ZWQiLGdsb2JhbFRoaXMuQ1NTPy5zdXBwb3J0cz8uKCJ3aWR0aDogcm91bmQoMS41cHgsIDFweCkiKSl9fWNvbnN0IHNuPUFycmF5LmZyb20oQXJyYXkoMjU2KS5rZXlzKCksZT0+ZS50b1N0cmluZygxNikucGFkU3RhcnQoMiwiMCIpKTtjbGFzcyBVdGlse3N0YXRpYyBtYWtlSGV4Q29sb3IoZSx0LG4pe3JldHVybmAjJHtzbltlXX0ke3NuW3RdfSR7c25bbl19YH1zdGF0aWMgZG9tTWF0cml4VG9UcmFuc2Zvcm0oZSl7cmV0dXJuW2UuYSxlLmIsZS5jLGUuZCxlLmUsZS5mXX1zdGF0aWMgc2NhbGVNaW5NYXgoZSx0KXtsZXQgbjtpZihlWzBdKXtpZihlWzBdPDApe249dFswXTt0WzBdPXRbMl07dFsyXT1ufXRbMF0qPWVbMF07dFsyXSo9ZVswXTtpZihlWzNdPDApe249dFsxXTt0WzFdPXRbM107dFszXT1ufXRbMV0qPWVbM107dFszXSo9ZVszXX1lbHNle249dFswXTt0WzBdPXRbMV07dFsxXT1uO249dFsyXTt0WzJdPXRbM107dFszXT1uO2lmKGVbMV08MCl7bj10WzFdO3RbMV09dFszXTt0WzNdPW59dFsxXSo9ZVsxXTt0WzNdKj1lWzFdO2lmKGVbMl08MCl7bj10WzBdO3RbMF09dFsyXTt0WzJdPW59dFswXSo9ZVsyXTt0WzJdKj1lWzJdfXRbMF0rPWVbNF07dFsxXSs9ZVs1XTt0WzJdKz1lWzRdO3RbM10rPWVbNV19c3RhdGljIHRyYW5zZm9ybShlLHQpe3JldHVybltlWzBdKnRbMF0rZVsyXSp0WzFdLGVbMV0qdFswXStlWzNdKnRbMV0sZVswXSp0WzJdK2VbMl0qdFszXSxlWzFdKnRbMl0rZVszXSp0WzNdLGVbMF0qdFs0XStlWzJdKnRbNV0rZVs0XSxlWzFdKnRbNF0rZVszXSp0WzVdK2VbNV1dfXN0YXRpYyBtdWx0aXBseUJ5RE9NTWF0cml4KGUsdCl7cmV0dXJuW2VbMF0qdC5hK2VbMl0qdC5iLGVbMV0qdC5hK2VbM10qdC5iLGVbMF0qdC5jK2VbMl0qdC5kLGVbMV0qdC5jK2VbM10qdC5kLGVbMF0qdC5lK2VbMl0qdC5mK2VbNF0sZVsxXSp0LmUrZVszXSp0LmYrZVs1XV19c3RhdGljIGFwcGx5VHJhbnNmb3JtKGUsdCxuPTApe2NvbnN0IGE9ZVtuXSxyPWVbbisxXTtlW25dPWEqdFswXStyKnRbMl0rdFs0XTtlW24rMV09YSp0WzFdK3IqdFszXSt0WzVdfXN0YXRpYyBhcHBseVRyYW5zZm9ybVRvQmV6aWVyKGUsdCxuPTApe2NvbnN0IGE9dFswXSxyPXRbMV0scz10WzJdLGk9dFszXSxvPXRbNF0sbD10WzVdO2ZvcihsZXQgdD0wO3Q8Njt0Kz0yKXtjb25zdCBmPWVbbit0XSxjPWVbbit0KzFdO2Vbbit0XT1mKmErYypzK287ZVtuK3QrMV09ZipyK2MqaStsfX1zdGF0aWMgYXBwbHlJbnZlcnNlVHJhbnNmb3JtKGUsdCl7Y29uc3Qgbj1lWzBdLGE9ZVsxXSxyPXRbMF0qdFszXS10WzFdKnRbMl07ZVswXT0obip0WzNdLWEqdFsyXSt0WzJdKnRbNV0tdFs0XSp0WzNdKS9yO2VbMV09KC1uKnRbMV0rYSp0WzBdK3RbNF0qdFsxXS10WzVdKnRbMF0pL3J9c3RhdGljIGF4aWFsQWxpZ25lZEJvdW5kaW5nQm94KGUsdCxuKXtjb25zdCBhPXRbMF0scj10WzFdLHM9dFsyXSxpPXRbM10sbz10WzRdLGw9dFs1XSxmPWVbMF0sYz1lWzFdLGg9ZVsyXSx1PWVbM107bGV0IG09YSpmK28scD1tLGQ9YSpoK28sZz1kLGI9aSpjK2wsdz1iLGo9aSp1K2wsaz1qO2lmKDAhPT1yfHwwIT09cyl7Y29uc3QgZT1yKmYsdD1yKmgsbj1zKmMsYT1zKnU7bSs9bjtnKz1uO2QrPWE7cCs9YTtiKz1lO2srPWU7ais9dDt3Kz10fW5bMF09TWF0aC5taW4oblswXSxtLGQscCxnKTtuWzFdPU1hdGgubWluKG5bMV0sYixqLHcsayk7blsyXT1NYXRoLm1heChuWzJdLG0sZCxwLGcpO25bM109TWF0aC5tYXgoblszXSxiLGosdyxrKX1zdGF0aWMgaW52ZXJzZVRyYW5zZm9ybShlKXtjb25zdCB0PWVbMF0qZVszXS1lWzFdKmVbMl07cmV0dXJuW2VbM10vdCwtZVsxXS90LC1lWzJdL3QsZVswXS90LChlWzJdKmVbNV0tZVs0XSplWzNdKS90LChlWzRdKmVbMV0tZVs1XSplWzBdKS90XX1zdGF0aWMgc2luZ3VsYXJWYWx1ZURlY29tcG9zZTJkU2NhbGUoZSx0KXtjb25zdCBuPWVbMF0sYT1lWzFdLHI9ZVsyXSxzPWVbM10saT1uKioyK2EqKjIsbz1uKnIrYSpzLGw9cioqMitzKioyLGY9KGkrbCkvMixjPU1hdGguc3FydChmKioyLShpKmwtbyoqMikpO3RbMF09TWF0aC5zcXJ0KGYrY3x8MSk7dFsxXT1NYXRoLnNxcnQoZi1jfHwxKX1zdGF0aWMgbm9ybWFsaXplUmVjdChlKXtjb25zdCB0PWUuc2xpY2UoMCk7aWYoZVswXT5lWzJdKXt0WzBdPWVbMl07dFsyXT1lWzBdfWlmKGVbMV0+ZVszXSl7dFsxXT1lWzNdO3RbM109ZVsxXX1yZXR1cm4gdH1zdGF0aWMgaW50ZXJzZWN0KGUsdCl7Y29uc3Qgbj1NYXRoLm1heChNYXRoLm1pbihlWzBdLGVbMl0pLE1hdGgubWluKHRbMF0sdFsyXSkpLGE9TWF0aC5taW4oTWF0aC5tYXgoZVswXSxlWzJdKSxNYXRoLm1heCh0WzBdLHRbMl0pKTtpZihuPmEpcmV0dXJuIG51bGw7Y29uc3Qgcj1NYXRoLm1heChNYXRoLm1pbihlWzFdLGVbM10pLE1hdGgubWluKHRbMV0sdFszXSkpLHM9TWF0aC5taW4oTWF0aC5tYXgoZVsxXSxlWzNdKSxNYXRoLm1heCh0WzFdLHRbM10pKTtyZXR1cm4gcj5zP251bGw6W24scixhLHNdfXN0YXRpYyBwb2ludEJvdW5kaW5nQm94KGUsdCxuKXtuWzBdPU1hdGgubWluKG5bMF0sZSk7blsxXT1NYXRoLm1pbihuWzFdLHQpO25bMl09TWF0aC5tYXgoblsyXSxlKTtuWzNdPU1hdGgubWF4KG5bM10sdCl9c3RhdGljIHJlY3RCb3VuZGluZ0JveChlLHQsbixhLHIpe3JbMF09TWF0aC5taW4oclswXSxlLG4pO3JbMV09TWF0aC5taW4oclsxXSx0LGEpO3JbMl09TWF0aC5tYXgoclsyXSxlLG4pO3JbM109TWF0aC5tYXgoclszXSx0LGEpfXN0YXRpYyNlKGUsdCxuLGEscixzLGksbyxsLGYpe2lmKGw8PTB8fGw+PTEpcmV0dXJuO2NvbnN0IGM9MS1sLGg9bCpsLHU9aCpsLG09YyooYyooYyplKzMqbCp0KSszKmgqbikrdSphLHA9YyooYyooYypyKzMqbCpzKSszKmgqaSkrdSpvO2ZbMF09TWF0aC5taW4oZlswXSxtKTtmWzFdPU1hdGgubWluKGZbMV0scCk7ZlsyXT1NYXRoLm1heChmWzJdLG0pO2ZbM109TWF0aC5tYXgoZlszXSxwKX1zdGF0aWMjdChlLHQsbixhLHIscyxpLG8sbCxmLGMsaCl7aWYoTWF0aC5hYnMobCk8MWUtMTIpe01hdGguYWJzKGYpPj0xZS0xMiYmdGhpcy4jZShlLHQsbixhLHIscyxpLG8sLWMvZixoKTtyZXR1cm59Y29uc3QgdT1mKioyLTQqYypsO2lmKHU8MClyZXR1cm47Y29uc3QgbT1NYXRoLnNxcnQodSkscD0yKmw7dGhpcy4jZShlLHQsbixhLHIscyxpLG8sKC1mK20pL3AsaCk7dGhpcy4jZShlLHQsbixhLHIscyxpLG8sKC1mLW0pL3AsaCl9c3RhdGljIGJlemllckJvdW5kaW5nQm94KGUsdCxuLGEscixzLGksbyxsKXtsWzBdPU1hdGgubWluKGxbMF0sZSxpKTtsWzFdPU1hdGgubWluKGxbMV0sdCxvKTtsWzJdPU1hdGgubWF4KGxbMl0sZSxpKTtsWzNdPU1hdGgubWF4KGxbM10sdCxvKTt0aGlzLiN0KGUsbixyLGksdCxhLHMsbywzKigzKihuLXIpLWUraSksNiooZS0yKm4rciksMyoobi1lKSxsKTt0aGlzLiN0KGUsbixyLGksdCxhLHMsbywzKigzKihhLXMpLXQrbyksNioodC0yKmErcyksMyooYS10KSxsKX19Y29uc3Qgb249WzAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDcyOCw3MTEsNzEwLDcyOSw3MzMsNzMxLDczMCw3MzIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsODIyNiw4MjI0LDgyMjUsODIzMCw4MjEyLDgyMTEsNDAyLDgyNjAsODI0OSw4MjUwLDg3MjIsODI0MCw4MjIyLDgyMjAsODIyMSw4MjE2LDgyMTcsODIxOCw4NDgyLDY0MjU3LDY0MjU4LDMyMSwzMzgsMzUyLDM3NiwzODEsMzA1LDMyMiwzMzksMzUzLDM4MiwwLDgzNjRdO2Z1bmN0aW9uIHN0cmluZ1RvUERGU3RyaW5nKGUsdD0hMSl7aWYoZVswXT49IsOvIil7bGV0IG47aWYoIsO+Ij09PWVbMF0mJiLDvyI9PT1lWzFdKXtuPSJ1dGYtMTZiZSI7ZS5sZW5ndGglMj09MSYmKGU9ZS5zbGljZSgwLC0xKSl9ZWxzZSBpZigiw78iPT09ZVswXSYmIsO+Ij09PWVbMV0pe249InV0Zi0xNmxlIjtlLmxlbmd0aCUyPT0xJiYoZT1lLnNsaWNlKDAsLTEpKX1lbHNlIsOvIj09PWVbMF0mJiLCuyI9PT1lWzFdJiYiwr8iPT09ZVsyXSYmKG49InV0Zi04Iik7aWYobil0cnl7Y29uc3QgYT1uZXcgVGV4dERlY29kZXIobix7ZmF0YWw6ITB9KSxyPXN0cmluZ1RvQnl0ZXMoZSkscz1hLmRlY29kZShyKTtyZXR1cm4gdHx8IXMuaW5jbHVkZXMoIhsiKT9zOnMucmVwbGFjZUFsbCgvXHgxYlteXHgxYl0qKD86XHgxYnwkKS9nLCIiKX1jYXRjaChlKXt3YXJuKGBzdHJpbmdUb1BERlN0cmluZzogIiR7ZX0iLmApfX1jb25zdCBuPVtdO2ZvcihsZXQgYT0wLHI9ZS5sZW5ndGg7YTxyO2ErKyl7Y29uc3Qgcz1lLmNoYXJDb2RlQXQoYSk7aWYoIXQmJjI3PT09cyl7Zm9yKDsrK2E8ciYmMjchPT1lLmNoYXJDb2RlQXQoYSk7KTtjb250aW51ZX1jb25zdCBpPW9uW3NdO24ucHVzaChpP1N0cmluZy5mcm9tQ2hhckNvZGUoaSk6ZS5jaGFyQXQoYSkpfXJldHVybiBuLmpvaW4oIiIpfWZ1bmN0aW9uIHN0cmluZ1RvVVRGOFN0cmluZyhlKXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZShlKSl9ZnVuY3Rpb24gdXRmOFN0cmluZ1RvU3RyaW5nKGUpe3JldHVybiB1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoZSkpfWZ1bmN0aW9uIGlzQXJyYXlFcXVhbChlLHQpe2lmKGUubGVuZ3RoIT09dC5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBuPTAsYT1lLmxlbmd0aDtuPGE7bisrKWlmKGVbbl0hPT10W25dKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIGdldE1vZGlmaWNhdGlvbkRhdGUoZT1uZXcgRGF0ZSl7ZSBpbnN0YW5jZW9mIERhdGV8fChlPW5ldyBEYXRlKGUpKTtyZXR1cm5bZS5nZXRVVENGdWxsWWVhcigpLnRvU3RyaW5nKCksKGUuZ2V0VVRDTW9udGgoKSsxKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKSxlLmdldFVUQ0RhdGUoKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKSxlLmdldFVUQ0hvdXJzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksZS5nZXRVVENNaW51dGVzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIiksZS5nZXRVVENTZWNvbmRzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIildLmpvaW4oIiIpfWxldCBsbj1udWxsLGZuPW51bGw7Y29uc3QgbWFrZUFycj0oKT0+W10sbWFrZU1hcD0oKT0+bmV3IE1hcCxtYWtlT2JqPSgpPT5PYmplY3QuY3JlYXRlKG51bGwpO2Z1bmN0aW9uIE1hdGhDbGFtcChlLHQsbil7cmV0dXJuIE1hdGgubWluKE1hdGgubWF4KGUsdCksbil9ImZ1bmN0aW9uIiE9dHlwZW9mIFJlc3BvbnNlLnByb3RvdHlwZS5ieXRlcyYmKFJlc3BvbnNlLnByb3RvdHlwZS5ieXRlcz1hc3luYyBmdW5jdGlvbigpe3JldHVybiBuZXcgVWludDhBcnJheShhd2FpdCB0aGlzLmFycmF5QnVmZmVyKCkpfSk7ImZ1bmN0aW9uIiE9dHlwZW9mIEFib3J0U2lnbmFsLmFueSYmKEFib3J0U2lnbmFsLmFueT1mdW5jdGlvbihlKXtjb25zdCB0PW5ldyBBYm9ydENvbnRyb2xsZXIse3NpZ25hbDpufT10O2Zvcihjb25zdCBhIG9mIGUpaWYoYS5hYm9ydGVkKXt0LmFib3J0KGEucmVhc29uKTtyZXR1cm4gbn1mb3IoY29uc3QgYSBvZiBlKWEuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLCgpPT57dC5hYm9ydChhLnJlYXNvbil9LHtzaWduYWw6bn0pO3JldHVybiBufSk7X193ZWJwYWNrX3JlcXVpcmVfXygxMTQ4KTtjb25zdCBjbj1TeW1ib2woIkNJUkNVTEFSX1JFRiIpLGhuPVN5bWJvbCgiRU9GIik7bGV0IHVuPU9iamVjdC5jcmVhdGUobnVsbCksbW49T2JqZWN0LmNyZWF0ZShudWxsKSxwbj1PYmplY3QuY3JlYXRlKG51bGwpO2NsYXNzIE5hbWV7Y29uc3RydWN0b3IoZSl7dGhpcy5uYW1lPWV9c3RhdGljIGdldChlKXtyZXR1cm4gbW5bZV18fD1uZXcgTmFtZShlKX19Y2xhc3MgQ21ke2NvbnN0cnVjdG9yKGUpe3RoaXMuY21kPWV9c3RhdGljIGdldChlKXtyZXR1cm4gdW5bZV18fD1uZXcgQ21kKGUpfX1jb25zdCBkbj1mdW5jdGlvbiBub25TZXJpYWxpemFibGVDbG9zdXJlKCl7cmV0dXJuIGRufTtjbGFzcyBEaWN0e2NvbnN0cnVjdG9yKGU9bnVsbCl7dGhpcy5fbWFwPW5ldyBNYXA7dGhpcy54cmVmPWU7dGhpcy5vYmpJZD1udWxsO3RoaXMuc3VwcHJlc3NFbmNyeXB0aW9uPSExO3RoaXMuX19ub25TZXJpYWxpemFibGVfXz1kbn1hc3NpZ25YcmVmKGUpe3RoaXMueHJlZj1lfWdldCBzaXplKCl7cmV0dXJuIHRoaXMuX21hcC5zaXplfWdldChlLHQsbil7bGV0IGE9dGhpcy5fbWFwLmdldChlKTtpZih2b2lkIDA9PT1hJiZ2b2lkIDAhPT10KXthPXRoaXMuX21hcC5nZXQodCk7dm9pZCAwPT09YSYmdm9pZCAwIT09biYmKGE9dGhpcy5fbWFwLmdldChuKSl9cmV0dXJuIGEgaW5zdGFuY2VvZiBSZWYmJnRoaXMueHJlZj90aGlzLnhyZWYuZmV0Y2goYSx0aGlzLnN1cHByZXNzRW5jcnlwdGlvbik6YX1hc3luYyBnZXRBc3luYyhlLHQsbil7bGV0IGE9dGhpcy5fbWFwLmdldChlKTtpZih2b2lkIDA9PT1hJiZ2b2lkIDAhPT10KXthPXRoaXMuX21hcC5nZXQodCk7dm9pZCAwPT09YSYmdm9pZCAwIT09biYmKGE9dGhpcy5fbWFwLmdldChuKSl9cmV0dXJuIGEgaW5zdGFuY2VvZiBSZWYmJnRoaXMueHJlZj90aGlzLnhyZWYuZmV0Y2hBc3luYyhhLHRoaXMuc3VwcHJlc3NFbmNyeXB0aW9uKTphfWdldEFycmF5KGUsdCxuKXtsZXQgYT10aGlzLl9tYXAuZ2V0KGUpO2lmKHZvaWQgMD09PWEmJnZvaWQgMCE9PXQpe2E9dGhpcy5fbWFwLmdldCh0KTt2b2lkIDA9PT1hJiZ2b2lkIDAhPT1uJiYoYT10aGlzLl9tYXAuZ2V0KG4pKX1hIGluc3RhbmNlb2YgUmVmJiZ0aGlzLnhyZWYmJihhPXRoaXMueHJlZi5mZXRjaChhLHRoaXMuc3VwcHJlc3NFbmNyeXB0aW9uKSk7aWYoQXJyYXkuaXNBcnJheShhKSl7YT1hLnNsaWNlKCk7Zm9yKGxldCBlPTAsdD1hLmxlbmd0aDtlPHQ7ZSsrKWFbZV1pbnN0YW5jZW9mIFJlZiYmdGhpcy54cmVmJiYoYVtlXT10aGlzLnhyZWYuZmV0Y2goYVtlXSx0aGlzLnN1cHByZXNzRW5jcnlwdGlvbikpfXJldHVybiBhfWdldFJhdyhlKXtyZXR1cm4gdGhpcy5fbWFwLmdldChlKX1nZXRLZXlzKCl7cmV0dXJuWy4uLnRoaXMuX21hcC5rZXlzKCldfWdldFJhd1ZhbHVlcygpe3JldHVyblsuLi50aGlzLl9tYXAudmFsdWVzKCldfWdldFJhd0VudHJpZXMoKXtyZXR1cm4gdGhpcy5fbWFwLmVudHJpZXMoKX1zZXQoZSx0KXt0aGlzLl9tYXAuc2V0KGUsdCl9c2V0SWZOb3RFeGlzdHMoZSx0KXt0aGlzLmhhcyhlKXx8dGhpcy5zZXQoZSx0KX1zZXRJZk51bWJlcihlLHQpeyJudW1iZXIiPT10eXBlb2YgdCYmdGhpcy5zZXQoZSx0KX1zZXRJZkFycmF5KGUsdCl7KEFycmF5LmlzQXJyYXkodCl8fEFycmF5QnVmZmVyLmlzVmlldyh0KSkmJnRoaXMuc2V0KGUsdCl9c2V0SWZEZWZpbmVkKGUsdCl7bnVsbCE9dCYmdGhpcy5zZXQoZSx0KX1zZXRJZk5hbWUoZSx0KXsic3RyaW5nIj09dHlwZW9mIHQ/dGhpcy5zZXQoZSxOYW1lLmdldCh0KSk6dCBpbnN0YW5jZW9mIE5hbWUmJnRoaXMuc2V0KGUsdCl9c2V0SWZEaWN0KGUsdCl7dCBpbnN0YW5jZW9mIERpY3QmJnRoaXMuc2V0KGUsdCl9aGFzKGUpe3JldHVybiB0aGlzLl9tYXAuaGFzKGUpfSpbU3ltYm9sLml0ZXJhdG9yXSgpe2Zvcihjb25zdFtlLHRdb2YgdGhpcy5fbWFwKXlpZWxkW2UsdCBpbnN0YW5jZW9mIFJlZiYmdGhpcy54cmVmP3RoaXMueHJlZi5mZXRjaCh0LHRoaXMuc3VwcHJlc3NFbmNyeXB0aW9uKTp0XX1zdGF0aWMgZ2V0IGVtcHR5KCl7Y29uc3QgZT1uZXcgRGljdChudWxsKTtlLnNldD0oZSx0KT0+e3VucmVhY2hhYmxlKCJTaG91bGQgbm90IGNhbGwgYHNldGAgb24gdGhlIGVtcHR5IGRpY3Rpb25hcnkuIil9O3JldHVybiBzaGFkb3codGhpcywiZW1wdHkiLGUpfXN0YXRpYyBtZXJnZSh7eHJlZjplLGRpY3RBcnJheTp0LG1lcmdlU3ViRGljdHM6bj0hMX0pe2NvbnN0IGE9bmV3IERpY3QoZSkscj1uZXcgTWFwO2Zvcihjb25zdCBlIG9mIHQpaWYoZSBpbnN0YW5jZW9mIERpY3QpZm9yKGNvbnN0W3QsYV1vZiBlLl9tYXApe2xldCBlPXIuZ2V0KHQpO2lmKHZvaWQgMD09PWUpe2U9W107ci5zZXQodCxlKX1lbHNlIGlmKCEobiYmYSBpbnN0YW5jZW9mIERpY3QpKWNvbnRpbnVlO2UucHVzaChhKX1mb3IoY29uc3RbdCxuXW9mIHIpe2lmKDE9PT1uLmxlbmd0aHx8IShuWzBdaW5zdGFuY2VvZiBEaWN0KSl7YS5fbWFwLnNldCh0LG5bMF0pO2NvbnRpbnVlfWNvbnN0IHI9bmV3IERpY3QoZSk7Zm9yKGNvbnN0IGUgb2Ygbilmb3IoY29uc3RbdCxuXW9mIGUuX21hcClyLl9tYXAuaGFzKHQpfHxyLl9tYXAuc2V0KHQsbik7ci5zaXplPjAmJmEuX21hcC5zZXQodCxyKX1yLmNsZWFyKCk7cmV0dXJuIGEuc2l6ZT4wP2E6RGljdC5lbXB0eX1jbG9uZSgpe2NvbnN0IGU9bmV3IERpY3QodGhpcy54cmVmKTtmb3IoY29uc3QgdCBvZiB0aGlzLmdldEtleXMoKSllLnNldCh0LHRoaXMuZ2V0UmF3KHQpKTtyZXR1cm4gZX1kZWxldGUoZSl7dGhpcy5fbWFwLmRlbGV0ZShlKX19Y2xhc3MgUmVme2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5udW09ZTt0aGlzLmdlbj10fXRvU3RyaW5nKCl7cmV0dXJuIDA9PT10aGlzLmdlbj9gJHt0aGlzLm51bX1SYDpgJHt0aGlzLm51bX1SJHt0aGlzLmdlbn1gfXN0YXRpYyBmcm9tU3RyaW5nKGUpe2NvbnN0IHQ9cG5bZV07aWYodClyZXR1cm4gdDtjb25zdCBuPS9eKFxkKylSKFxkKikkLy5leGVjKGUpO3JldHVybiBuJiYiMCIhPT1uWzFdP3BuW2VdPW5ldyBSZWYocGFyc2VJbnQoblsxXSksblsyXT9wYXJzZUludChuWzJdKTowKTpudWxsfXN0YXRpYyBnZXQoZSx0KXtjb25zdCBuPTA9PT10P2Ake2V9UmA6YCR7ZX1SJHt0fWA7cmV0dXJuIHBuW25dfHw9bmV3IFJlZihlLHQpfX1jbGFzcyBSZWZTZXR7Y29uc3RydWN0b3IoZT1udWxsKXt0aGlzLl9zZXQ9bmV3IFNldChlPy5fc2V0KX1oYXMoZSl7cmV0dXJuIHRoaXMuX3NldC5oYXMoZS50b1N0cmluZygpKX1wdXQoZSl7dGhpcy5fc2V0LmFkZChlLnRvU3RyaW5nKCkpfXJlbW92ZShlKXt0aGlzLl9zZXQuZGVsZXRlKGUudG9TdHJpbmcoKSl9W1N5bWJvbC5pdGVyYXRvcl0oKXtyZXR1cm4gdGhpcy5fc2V0LnZhbHVlcygpfWNsZWFyKCl7dGhpcy5fc2V0LmNsZWFyKCl9fWNsYXNzIFJlZlNldENhY2hle19tYXA9bmV3IE1hcDtnZXQgc2l6ZSgpe3JldHVybiB0aGlzLl9tYXAuc2l6ZX1nZXQoZSl7cmV0dXJuIHRoaXMuX21hcC5nZXQoZS50b1N0cmluZygpKX1oYXMoZSl7cmV0dXJuIHRoaXMuX21hcC5oYXMoZS50b1N0cmluZygpKX1wdXQoZSx0KXt0aGlzLl9tYXAuc2V0KGUudG9TdHJpbmcoKSx0KX1wdXRBbGlhcyhlLHQpe3RoaXMuX21hcC5zZXQoZS50b1N0cmluZygpLHRoaXMuZ2V0KHQpKX1bU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiB0aGlzLl9tYXAudmFsdWVzKCl9Y2xlYXIoKXt0aGlzLl9tYXAuY2xlYXIoKX0qdmFsdWVzKCl7eWllbGQqdGhpcy5fbWFwLnZhbHVlcygpfSppdGVtcygpe2Zvcihjb25zdFtlLHRdb2YgdGhpcy5fbWFwKXlpZWxkW1JlZi5mcm9tU3RyaW5nKGUpLHRdfSprZXlzKCl7Zm9yKGNvbnN0IGUgb2YgdGhpcy5fbWFwLmtleXMoKSl5aWVsZCBSZWYuZnJvbVN0cmluZyhlKX19ZnVuY3Rpb24gaXNOYW1lKGUsdCl7cmV0dXJuIGUgaW5zdGFuY2VvZiBOYW1lJiYodm9pZCAwPT09dHx8ZS5uYW1lPT09dCl9ZnVuY3Rpb24gaXNDbWQoZSx0KXtyZXR1cm4gZSBpbnN0YW5jZW9mIENtZCYmKHZvaWQgMD09PXR8fGUuY21kPT09dCl9ZnVuY3Rpb24gaXNEaWN0KGUsdCl7cmV0dXJuIGUgaW5zdGFuY2VvZiBEaWN0JiYodm9pZCAwPT09dHx8aXNOYW1lKGUuZ2V0KCJUeXBlIiksdCkpfWZ1bmN0aW9uIGlzUmVmc0VxdWFsKGUsdCl7cmV0dXJuIGUubnVtPT09dC5udW0mJmUuZ2VuPT09dC5nZW59Y2xhc3MgQmFzZVN0cmVhbXtnZXQgbGVuZ3RoKCl7dW5yZWFjaGFibGUoIkFic3RyYWN0IGdldHRlciBgbGVuZ3RoYCBhY2Nlc3NlZCIpfWdldCBpc0VtcHR5KCl7dW5yZWFjaGFibGUoIkFic3RyYWN0IGdldHRlciBgaXNFbXB0eWAgYWNjZXNzZWQiKX1nZXQgaXNEYXRhTG9hZGVkKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJpc0RhdGFMb2FkZWQiLCEwKX1nZXRCeXRlKCl7dW5yZWFjaGFibGUoIkFic3RyYWN0IG1ldGhvZCBgZ2V0Qnl0ZWAgY2FsbGVkIil9Z2V0Qnl0ZXMoZSl7dW5yZWFjaGFibGUoIkFic3RyYWN0IG1ldGhvZCBgZ2V0Qnl0ZXNgIGNhbGxlZCIpfWFzeW5jIGdldEltYWdlRGF0YShlLHQpe3JldHVybiB0aGlzLmdldEJ5dGVzKGUsdCl9YXN5bmMgYXN5bmNHZXRCeXRlcygpe3VucmVhY2hhYmxlKCJBYnN0cmFjdCBtZXRob2QgYGFzeW5jR2V0Qnl0ZXNgIGNhbGxlZCIpfWdldCBpc0FzeW5jKCl7cmV0dXJuITF9Z2V0IGlzQXN5bmNEZWNvZGVyKCl7cmV0dXJuITF9Z2V0IGlzSW1hZ2VTdHJlYW0oKXtyZXR1cm4hMX1nZXQgY2FuQXN5bmNEZWNvZGVJbWFnZUZyb21CdWZmZXIoKXtyZXR1cm4hMX1hc3luYyBnZXRUcmFuc2ZlcmFibGVJbWFnZSgpe3JldHVybiBudWxsfXBlZWtCeXRlKCl7Y29uc3QgZT10aGlzLmdldEJ5dGUoKTstMSE9PWUmJnRoaXMucG9zLS07cmV0dXJuIGV9cGVla0J5dGVzKGUpe2NvbnN0IHQ9dGhpcy5nZXRCeXRlcyhlKTt0aGlzLnBvcy09dC5sZW5ndGg7cmV0dXJuIHR9Z2V0VWludDE2KCl7Y29uc3QgZT10aGlzLmdldEJ5dGUoKSx0PXRoaXMuZ2V0Qnl0ZSgpO3JldHVybi0xPT09ZXx8LTE9PT10Py0xOihlPDw4KSt0fWdldEludDMyKCl7cmV0dXJuKHRoaXMuZ2V0Qnl0ZSgpPDwyNCkrKHRoaXMuZ2V0Qnl0ZSgpPDwxNikrKHRoaXMuZ2V0Qnl0ZSgpPDw4KSt0aGlzLmdldEJ5dGUoKX1nZXRCeXRlUmFuZ2UoZSx0KXt1bnJlYWNoYWJsZSgiQWJzdHJhY3QgbWV0aG9kIGBnZXRCeXRlUmFuZ2VgIGNhbGxlZCIpfWdldFN0cmluZyhlKXtyZXR1cm4gYnl0ZXNUb1N0cmluZyh0aGlzLmdldEJ5dGVzKGUpKX1za2lwKGUpe3RoaXMucG9zKz1lfHwxfXJlc2V0KCl7dW5yZWFjaGFibGUoIkFic3RyYWN0IG1ldGhvZCBgcmVzZXRgIGNhbGxlZCIpfW1vdmVTdGFydCgpe3VucmVhY2hhYmxlKCJBYnN0cmFjdCBtZXRob2QgYG1vdmVTdGFydGAgY2FsbGVkIil9bWFrZVN1YlN0cmVhbShlLHQsbj1udWxsKXt1bnJlYWNoYWJsZSgiQWJzdHJhY3QgbWV0aG9kIGBtYWtlU3ViU3RyZWFtYCBjYWxsZWQiKX1nZXRCYXNlU3RyZWFtcygpe3JldHVybiBudWxsfWdldE9yaWdpbmFsU3RyZWFtKCl7cmV0dXJuIHRoaXMuc3RyZWFtPy5nZXRPcmlnaW5hbFN0cmVhbSgpfHx0aGlzfX1jb25zdCBnbj0vXlsxLTldXC5cZCQvLGJuPTIqKjMxLTEsd249WzEsMCwwLDEsMCwwXSxqbj1bIkNvbG9yU3BhY2UiLCJFeHRHU3RhdGUiLCJGb250IiwiUGF0dGVybiIsIlByb3BlcnRpZXMiLCJTaGFkaW5nIiwiWE9iamVjdCJdLGtuPVsiRXh0R1N0YXRlIiwiRm9udCIsIlByb3BlcnRpZXMiLCJYT2JqZWN0Il07ZnVuY3Rpb24gZ2V0TG9va3VwVGFibGVGYWN0b3J5KGUpe2xldCB0O3JldHVybiBmdW5jdGlvbigpe2lmKGUpe3Q9T2JqZWN0LmNyZWF0ZShudWxsKTtlKHQpO2U9bnVsbH1yZXR1cm4gdH19Y2xhc3MgTWlzc2luZ0RhdGFFeGNlcHRpb24gZXh0ZW5kcyBybntjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGBNaXNzaW5nIGRhdGEgWyR7ZX0sICR7dH0pYCwiTWlzc2luZ0RhdGFFeGNlcHRpb24iKTt0aGlzLmJlZ2luPWU7dGhpcy5lbmQ9dH19Y2xhc3MgUGFyc2VyRU9GRXhjZXB0aW9uIGV4dGVuZHMgcm57Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwiUGFyc2VyRU9GRXhjZXB0aW9uIil9fWNsYXNzIFhSZWZFbnRyeUV4Y2VwdGlvbiBleHRlbmRzIHJue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUsIlhSZWZFbnRyeUV4Y2VwdGlvbiIpfX1jbGFzcyBYUmVmUGFyc2VFeGNlcHRpb24gZXh0ZW5kcyBybntjb25zdHJ1Y3RvcihlKXtzdXBlcihlLCJYUmVmUGFyc2VFeGNlcHRpb24iKX19ZnVuY3Rpb24gYXJyYXlCdWZmZXJzVG9CeXRlcyhlKXtjb25zdCB0PWUubGVuZ3RoO2lmKDA9PT10KXJldHVybiBuZXcgVWludDhBcnJheSgwKTtpZigxPT09dClyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoZVswXSk7bGV0IG49MDtmb3IobGV0IGE9MDthPHQ7YSsrKW4rPWVbYV0uYnl0ZUxlbmd0aDtjb25zdCBhPW5ldyBVaW50OEFycmF5KG4pO2xldCByPTA7Zm9yKGxldCBuPTA7bjx0O24rKyl7Y29uc3QgdD1uZXcgVWludDhBcnJheShlW25dKTthLnNldCh0LHIpO3IrPXQuYnl0ZUxlbmd0aH1yZXR1cm4gYX1hc3luYyBmdW5jdGlvbiBmZXRjaEJpbmFyeURhdGEoZSl7Y29uc3QgdD1hd2FpdCBmZXRjaChlKTtpZighdC5vayl0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBmZXRjaCBmaWxlICIke2V9IiB3aXRoICIke3Quc3RhdHVzVGV4dH0iLmApO3JldHVybiB0LmJ5dGVzKCl9ZnVuY3Rpb24gZ2V0SW5oZXJpdGFibGVQcm9wZXJ0eSh7ZGljdDplLGtleTp0LGdldEFycmF5Om49ITEsc3RvcFdoZW5Gb3VuZDphPSEwfSl7bGV0IHI7Y29uc3Qgcz1uZXcgUmVmU2V0O2Zvcig7ZSBpbnN0YW5jZW9mIERpY3QmJighZS5vYmpJZHx8IXMuaGFzKGUub2JqSWQpKTspe2Uub2JqSWQmJnMucHV0KGUub2JqSWQpO2NvbnN0IGk9bj9lLmdldEFycmF5KHQpOmUuZ2V0KHQpO2lmKHZvaWQgMCE9PWkpe2lmKGEpcmV0dXJuIGk7KHJ8fD1bXSkucHVzaChpKX1lPWUuZ2V0KCJQYXJlbnQiKX1yZXR1cm4gcn1jb25zdCB5bj1bIiIsIkMiLCJDQyIsIkNDQyIsIkNEIiwiRCIsIkRDIiwiRENDIiwiRENDQyIsIkNNIiwiIiwiWCIsIlhYIiwiWFhYIiwiWEwiLCJMIiwiTFgiLCJMWFgiLCJMWFhYIiwiWEMiLCIiLCJJIiwiSUkiLCJJSUkiLCJJViIsIlYiLCJWSSIsIlZJSSIsIlZJSUkiLCJJWCJdO2Z1bmN0aW9uIHRvUm9tYW5OdW1lcmFscyhlLHQ9ITEpe2Fzc2VydChOdW1iZXIuaXNJbnRlZ2VyKGUpJiZlPjAsIlRoZSBudW1iZXIgc2hvdWxkIGJlIGEgcG9zaXRpdmUgaW50ZWdlci4iKTtjb25zdCBuPSJNIi5yZXBlYXQoZS8xZTN8MCkreW5bZSUxZTMvMTAwfDBdK3luWzEwKyhlJTEwMC8xMHwwKV0reW5bMjArZSUxMF07cmV0dXJuIHQ/bi50b0xvd2VyQ2FzZSgpOm59ZnVuY3Rpb24gbG9nMihlKXtyZXR1cm4gZT4wP01hdGguY2VpbChNYXRoLmxvZzIoZSkpOjB9ZnVuY3Rpb24gcmVhZEludDgoZSx0KXtyZXR1cm4gZVt0XTw8MjQ+PjI0fWZ1bmN0aW9uIHJlYWRJbnQxNihlLHQpe3JldHVybihlW3RdPDwyNHxlW3QrMV08PDE2KT4+MTZ9ZnVuY3Rpb24gcmVhZFVpbnQxNihlLHQpe3JldHVybiBlW3RdPDw4fGVbdCsxXX1mdW5jdGlvbiByZWFkVWludDMyKGUsdCl7cmV0dXJuKGVbdF08PDI0fGVbdCsxXTw8MTZ8ZVt0KzJdPDw4fGVbdCszXSk+Pj4wfWZ1bmN0aW9uIGlzV2hpdGVTcGFjZShlKXtyZXR1cm4gMzI9PT1lfHw5PT09ZXx8MTM9PT1lfHwxMD09PWV9ZnVuY3Rpb24gaXNOdW1iZXJBcnJheShlLHQpe3JldHVybiBBcnJheS5pc0FycmF5KGUpPyhudWxsPT09dHx8ZS5sZW5ndGg9PT10KSYmZS5ldmVyeShlPT4ibnVtYmVyIj09dHlwZW9mIGUpOkFycmF5QnVmZmVyLmlzVmlldyhlKSYmIShlIGluc3RhbmNlb2YgQmlnSW50NjRBcnJheXx8ZSBpbnN0YW5jZW9mIEJpZ1VpbnQ2NEFycmF5KSYmKG51bGw9PT10fHxlLmxlbmd0aD09PXQpfWZ1bmN0aW9uIGxvb2t1cE1hdHJpeChlLHQpe3JldHVybiBpc051bWJlckFycmF5KGUsNik/ZTp0fWZ1bmN0aW9uIGxvb2t1cFJlY3QoZSx0KXtyZXR1cm4gaXNOdW1iZXJBcnJheShlLDQpP2U6dH1mdW5jdGlvbiBsb29rdXBOb3JtYWxSZWN0KGUsdCl7cmV0dXJuIGlzTnVtYmVyQXJyYXkoZSw0KT9VdGlsLm5vcm1hbGl6ZVJlY3QoZSk6dH1mdW5jdGlvbiBwYXJzZVhGQVBhdGgoZSl7Y29uc3QgdD0vKC4rKVxbKFxkKylcXSQvO3JldHVybiBlLnNwbGl0KCIuIikubWFwKGU9Pntjb25zdCBuPWUubWF0Y2godCk7cmV0dXJuIG4/e25hbWU6blsxXSxwb3M6cGFyc2VJbnQoblsyXSwxMCl9OntuYW1lOmUscG9zOjB9fSl9ZnVuY3Rpb24gZXNjYXBlUERGTmFtZShlKXtjb25zdCB0PVtdO2xldCBuPTA7Zm9yKGxldCBhPTAscj1lLmxlbmd0aDthPHI7YSsrKXtjb25zdCByPWUuY2hhckNvZGVBdChhKTtpZihyPDMzfHxyPjEyNnx8MzU9PT1yfHw0MD09PXJ8fDQxPT09cnx8NjA9PT1yfHw2Mj09PXJ8fDkxPT09cnx8OTM9PT1yfHwxMjM9PT1yfHwxMjU9PT1yfHw0Nz09PXJ8fDM3PT09cil7bjxhJiZ0LnB1c2goZS5zdWJzdHJpbmcobixhKSk7dC5wdXNoKGAjJHtyLnRvU3RyaW5nKDE2KX1gKTtuPWErMX19aWYoMD09PXQubGVuZ3RoKXJldHVybiBlO248ZS5sZW5ndGgmJnQucHVzaChlLnN1YnN0cmluZyhuLGUubGVuZ3RoKSk7cmV0dXJuIHQuam9pbigiIil9ZnVuY3Rpb24gZXNjYXBlU3RyaW5nKGUpe3JldHVybiBlLnJlcGxhY2VBbGwoLyhbKClcXFxuXHJdKS9nLGU9PiJcbiI9PT1lPyJcXG4iOiJcciI9PT1lPyJcXHIiOmBcXCR7ZX1gKX1mdW5jdGlvbiBfY29sbGVjdEpTKGUsdCxuLGEpe2lmKCFlKXJldHVybjtsZXQgcj1udWxsO2lmKGUgaW5zdGFuY2VvZiBSZWYpe2lmKGEuaGFzKGUpKXJldHVybjtyPWU7YS5wdXQocik7ZT10LmZldGNoKGUpfWlmKEFycmF5LmlzQXJyYXkoZSkpZm9yKGNvbnN0IHIgb2YgZSlfY29sbGVjdEpTKHIsdCxuLGEpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIERpY3Qpe2lmKGlzTmFtZShlLmdldCgiUyIpLCJKYXZhU2NyaXB0Iikpe2NvbnN0IHQ9ZS5nZXQoIkpTIik7bGV0IGE7dCBpbnN0YW5jZW9mIEJhc2VTdHJlYW0/YT10LmdldFN0cmluZygpOiJzdHJpbmciPT10eXBlb2YgdCYmKGE9dCk7YSYmPXN0cmluZ1RvUERGU3RyaW5nKGEsITApLnJlcGxhY2VBbGwoIlwwIiwiIik7YSYmbi5wdXNoKGEudHJpbSgpKX1fY29sbGVjdEpTKGUuZ2V0UmF3KCJOZXh0IiksdCxuLGEpfXImJmEucmVtb3ZlKHIpfWZ1bmN0aW9uIGNvbGxlY3RBY3Rpb25zKGUsdCxuKXtjb25zdCBhPU9iamVjdC5jcmVhdGUobnVsbCkscj1nZXRJbmhlcml0YWJsZVByb3BlcnR5KHtkaWN0OnQsa2V5OiJBQSIsc3RvcFdoZW5Gb3VuZDohMX0pO2lmKHIpZm9yKGxldCB0PXIubGVuZ3RoLTE7dD49MDt0LS0pe2NvbnN0IHM9clt0XTtpZihzIGluc3RhbmNlb2YgRGljdClmb3IoY29uc3QgdCBvZiBzLmdldEtleXMoKSl7Y29uc3Qgcj1uW3RdO2lmKCFyKWNvbnRpbnVlO2NvbnN0IGk9W107X2NvbGxlY3RKUyhzLmdldFJhdyh0KSxlLGksbmV3IFJlZlNldCk7aS5sZW5ndGg+MCYmKGFbcl09aSl9fWlmKHQuaGFzKCJBIikpe2NvbnN0IG49W107X2NvbGxlY3RKUyh0LmdldCgiQSIpLGUsbixuZXcgUmVmU2V0KTtuLmxlbmd0aD4wJiYoYS5BY3Rpb249bil9cmV0dXJuIG9iamVjdFNpemUoYSk+MD9hOm51bGx9Y29uc3QgcW49ezYwOiImbHQ7Iiw2MjoiJmd0OyIsMzg6IiZhbXA7IiwzNDoiJnF1b3Q7IiwzOToiJmFwb3M7In07ZnVuY3Rpb24qY29kZVBvaW50SXRlcihlKXtmb3IobGV0IHQ9MCxuPWUubGVuZ3RoO3Q8bjt0Kyspe2NvbnN0IG49ZS5jb2RlUG9pbnRBdCh0KTtuPjU1Mjk1JiYobjw1NzM0NHx8bj42NTUzMykmJnQrKzt5aWVsZCBufX1mdW5jdGlvbiBlbmNvZGVUb1htbFN0cmluZyhlKXtjb25zdCB0PVtdO2xldCBuPTA7Zm9yKGxldCBhPTAscj1lLmxlbmd0aDthPHI7YSsrKXtjb25zdCByPWUuY29kZVBvaW50QXQoYSk7aWYoMzI8PXImJnI8PTEyNil7Y29uc3Qgcz1xbltyXTtpZihzKXtuPGEmJnQucHVzaChlLnN1YnN0cmluZyhuLGEpKTt0LnB1c2gocyk7bj1hKzF9fWVsc2V7bjxhJiZ0LnB1c2goZS5zdWJzdHJpbmcobixhKSk7dC5wdXNoKGAmI3gke3IudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9O2ApO3I+NTUyOTUmJihyPDU3MzQ0fHxyPjY1NTMzKSYmYSsrO249YSsxfX1pZigwPT09dC5sZW5ndGgpcmV0dXJuIGU7bjxlLmxlbmd0aCYmdC5wdXNoKGUuc3Vic3RyaW5nKG4sZS5sZW5ndGgpKTtyZXR1cm4gdC5qb2luKCIiKX1mdW5jdGlvbiB2YWxpZGF0ZUZvbnROYW1lKGUsdD0hMSl7Y29uc3Qgbj0vXigifCcpLiooInwnKSQvLmV4ZWMoZSk7aWYobiYmblsxXT09PW5bMl0pe2lmKG5ldyBSZWdFeHAoYFteXFxcXF0ke25bMV19YCkudGVzdChlLnNsaWNlKDEsLTEpKSl7dCYmd2FybihgRm9udEZhbWlseSBjb250YWlucyB1bmVzY2FwZWQgJHtuWzFdfTogJHtlfS5gKTtyZXR1cm4hMX19ZWxzZSBmb3IoY29uc3QgbiBvZiBlLnNwbGl0KC9bIFx0XSsvKSlpZigvXihcZHwoLShcZHwtKSkpLy50ZXN0KG4pfHwhL15bXHctXFxdKyQvLnRlc3Qobikpe3QmJndhcm4oYEZvbnRGYW1pbHkgY29udGFpbnMgaW52YWxpZCA8Y3VzdG9tLWlkZW50PjogJHtlfS5gKTtyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiB2YWxpZGF0ZUNTU0ZvbnQoZSl7Y29uc3QgdD1uZXcgU2V0KFsiMTAwIiwiMjAwIiwiMzAwIiwiNDAwIiwiNTAwIiwiNjAwIiwiNzAwIiwiODAwIiwiOTAwIiwiMTAwMCIsIm5vcm1hbCIsImJvbGQiLCJib2xkZXIiLCJsaWdodGVyIl0pLHtmb250RmFtaWx5Om4sZm9udFdlaWdodDphLGl0YWxpY0FuZ2xlOnJ9PWU7aWYoIXZhbGlkYXRlRm9udE5hbWUobiwhMCkpcmV0dXJuITE7Y29uc3Qgcz1hP2EudG9TdHJpbmcoKToiIjtlLmZvbnRXZWlnaHQ9dC5oYXMocyk/czoiNDAwIjtjb25zdCBpPXBhcnNlRmxvYXQocik7ZS5pdGFsaWNBbmdsZT1pc05hTihpKXx8aTwtOTB8fGk+OTA/IjE0IjpyLnRvU3RyaW5nKCk7cmV0dXJuITB9ZnVuY3Rpb24gcmVjb3ZlckpzVVJMKGUpe2NvbnN0IHQ9bmV3IFJlZ0V4cCgiXlxccyooIitbImFwcC5sYXVuY2hVUkwiLCJ3aW5kb3cub3BlbiIsInhmYS5ob3N0LmdvdG9VUkwiXS5qb2luKCJ8IikucmVwbGFjZUFsbCgiLiIsIlxcLiIpKyIpXFwoKD86J3xcIikoW14nXCJdKikoPzonfFwiKSg/OixcXHMqKFxcdyspXFwpfFxcKSkiLCJpIikuZXhlYyhlKTtyZXR1cm4gdD8uWzJdP3t1cmw6dFsyXSxuZXdXaW5kb3c6ImFwcC5sYXVuY2hVUkwiPT09dFsxXSYmInRydWUiPT09dFszXX06bnVsbH1mdW5jdGlvbiBudW1iZXJUb1N0cmluZyhlKXtpZihOdW1iZXIuaXNJbnRlZ2VyKGUpKXJldHVybiBlLnRvU3RyaW5nKCk7Y29uc3QgdD1NYXRoLnJvdW5kKDEwMCplKTtyZXR1cm4gdCUxMDA9PTA/KHQvMTAwKS50b1N0cmluZygpOnQlMTA9PTA/ZS50b0ZpeGVkKDEpOmUudG9GaXhlZCgyKX1mdW5jdGlvbiBnZXROZXdBbm5vdGF0aW9uc01hcChlKXtpZighZSlyZXR1cm4gbnVsbDtjb25zdCB0PW5ldyBNYXA7Zm9yKGNvbnN0W24sYV1vZiBlKW4uc3RhcnRzV2l0aChkKSYmdC5nZXRPckluc2VydENvbXB1dGVkKGEucGFnZUluZGV4LG1ha2VBcnIpLnB1c2goYSk7cmV0dXJuIHQuc2l6ZT4wP3Q6bnVsbH1mdW5jdGlvbiBzdHJpbmdUb0FzY2lpT3JVVEYxNkJFKGUpe3JldHVybiBudWxsPT1lfHxmdW5jdGlvbiBpc0FzY2lpKGUpe2lmKCJzdHJpbmciIT10eXBlb2YgZSlyZXR1cm4hMTtyZXR1cm4hZXx8L15bXHgwMC1ceDdGXSokLy50ZXN0KGUpfShlKT9lOnN0cmluZ1RvVVRGMTZTdHJpbmcoZSwhMCl9ZnVuY3Rpb24gc3RyaW5nVG9VVEYxNkhleFN0cmluZyhlKXtjb25zdCB0PVtdO2ZvcihsZXQgbj0wLGE9ZS5sZW5ndGg7bjxhO24rKyl7Y29uc3QgYT1lLmNoYXJDb2RlQXQobik7dC5wdXNoKHNuW2E+PjgmMjU1XSxzblsyNTUmYV0pfXJldHVybiB0LmpvaW4oIiIpfWZ1bmN0aW9uIHN0cmluZ1RvVVRGMTZTdHJpbmcoZSx0PSExKXtjb25zdCBuPVtdO3QmJm4ucHVzaCgiw77DvyIpO2ZvcihsZXQgdD0wLGE9ZS5sZW5ndGg7dDxhO3QrKyl7Y29uc3QgYT1lLmNoYXJDb2RlQXQodCk7bi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoYT4+OCYyNTUpLFN0cmluZy5mcm9tQ2hhckNvZGUoMjU1JmEpKX1yZXR1cm4gbi5qb2luKCIiKX1mdW5jdGlvbiBnZXRSb3RhdGlvbk1hdHJpeChlLHQsbil7c3dpdGNoKGUpe2Nhc2UgOTA6cmV0dXJuWzAsMSwtMSwwLHQsMF07Y2FzZSAxODA6cmV0dXJuWy0xLDAsMCwtMSx0LG5dO2Nhc2UgMjcwOnJldHVyblswLC0xLDEsMCwwLG5dO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHJvdGF0aW9uIil9fWZ1bmN0aW9uIGdldFNpemVJbkJ5dGVzKGUpe3JldHVybiBNYXRoLmNlaWwoTWF0aC5jZWlsKE1hdGgubG9nMigxK2UpKS84KX1fX3dlYnBhY2tfcmVxdWlyZV9fKDQ2MDMpLF9fd2VicGFja19yZXF1aXJlX18oNzU2NiksX193ZWJwYWNrX3JlcXVpcmVfXyg4NzIxKTtjbGFzcyBRQ01Te3N0YXRpYyNuPW51bGw7c3RhdGljIF9tZW1vcnk9bnVsbDtzdGF0aWMgX211c3RBZGRBbHBoYT0hMTtzdGF0aWMgX2Rlc3RCdWZmZXI9bnVsbDtzdGF0aWMgX2Rlc3RPZmZzZXQ9MDtzdGF0aWMgX2Rlc3RMZW5ndGg9MDtzdGF0aWMgX2Nzc0NvbG9yPSIiO3N0YXRpYyBfbWFrZUhleENvbG9yPW51bGw7c3RhdGljIGdldCBfbWVtb3J5QXJyYXkoKXtjb25zdCBlPXRoaXMuI247cmV0dXJuIGU/LmJ5dGVMZW5ndGg/ZTp0aGlzLiNuPW5ldyBVaW50OEFycmF5KHRoaXMuX21lbW9yeS5idWZmZXIpfX1sZXQgdm47Y29uc3QgU249InVuZGVmaW5lZCIhPXR5cGVvZiBUZXh0RGVjb2Rlcj9uZXcgVGV4dERlY29kZXIoInV0Zi04Iix7aWdub3JlQk9NOiEwLGZhdGFsOiEwfSk6e2RlY29kZTooKT0+e3Rocm93IEVycm9yKCJUZXh0RGVjb2RlciBub3QgYXZhaWxhYmxlIil9fTsidW5kZWZpbmVkIiE9dHlwZW9mIFRleHREZWNvZGVyJiZTbi5kZWNvZGUoKTtsZXQgeG49bnVsbDtmdW5jdGlvbiBnZXRVaW50OEFycmF5TWVtb3J5MCgpe251bGwhPT14biYmMCE9PXhuLmJ5dGVMZW5ndGh8fCh4bj1uZXcgVWludDhBcnJheSh2bi5tZW1vcnkuYnVmZmVyKSk7cmV0dXJuIHhufWxldCBBbj0wO2Z1bmN0aW9uIHBhc3NBcnJheThUb1dhc20wKGUsdCl7Y29uc3Qgbj10KDEqZS5sZW5ndGgsMSk+Pj4wO2dldFVpbnQ4QXJyYXlNZW1vcnkwKCkuc2V0KGUsbi8xKTtBbj1lLmxlbmd0aDtyZXR1cm4gbn1jb25zdCBDbj1PYmplY3QuZnJlZXplKHtSR0I4OjAsMDoiUkdCOCIsUkdCQTg6MSwxOiJSR0JBOCIsQkdSQTg6MiwyOiJCR1JBOCIsR3JheTg6MywzOiJHcmF5OCIsR3JheUE4OjQsNDoiR3JheUE4IixDTVlLOjUsNToiQ01ZSyJ9KSxJbj1PYmplY3QuZnJlZXplKHtQZXJjZXB0dWFsOjAsMDoiUGVyY2VwdHVhbCIsUmVsYXRpdmVDb2xvcmltZXRyaWM6MSwxOiJSZWxhdGl2ZUNvbG9yaW1ldHJpYyIsU2F0dXJhdGlvbjoyLDI6IlNhdHVyYXRpb24iLEFic29sdXRlQ29sb3JpbWV0cmljOjMsMzoiQWJzb2x1dGVDb2xvcmltZXRyaWMifSk7ZnVuY3Rpb24gX193YmdfZ2V0X2ltcG9ydHMoKXtjb25zdCBlPXt3Ymc6e319O2Uud2JnLl9fd2JnX2NvcHlyZXN1bHRfYjA4ZWU3ZDI3M2YyOTVkZD1mdW5jdGlvbihlLHQpeyFmdW5jdGlvbiBjb3B5X3Jlc3VsdChlLHQpe2NvbnN0e19tdXN0QWRkQWxwaGE6bixfZGVzdEJ1ZmZlcjphLF9kZXN0T2Zmc2V0OnIsX2Rlc3RMZW5ndGg6cyxfbWVtb3J5QXJyYXk6aX09UUNNUztpZih0IT09cylpZihuKWZvcihsZXQgbj1lLHM9ZSt0LG89cjtuPHM7bis9MyxvKz00KXthW29dPWlbbl07YVtvKzFdPWlbbisxXTthW28rMl09aVtuKzJdO2FbbyszXT0yNTV9ZWxzZSBmb3IobGV0IG49ZSxzPWUrdCxvPXI7bjxzO24rPTMsbys9NCl7YVtvXT1pW25dO2FbbysxXT1pW24rMV07YVtvKzJdPWlbbisyXX1lbHNlIGEuc2V0KGkuc3ViYXJyYXkoZSxlK3QpLHIpfShlPj4+MCx0Pj4+MCl9O2Uud2JnLl9fd2JnX2NvcHlyZ2JfZDYwY2UxN2JiMDVkOWI2Nz1mdW5jdGlvbihlKXshZnVuY3Rpb24gY29weV9yZ2IoZSl7Y29uc3R7X2Rlc3RCdWZmZXI6dCxfZGVzdE9mZnNldDpuLF9tZW1vcnlBcnJheTphfT1RQ01TO3Rbbl09YVtlXTt0W24rMV09YVtlKzFdO3RbbisyXT1hW2UrMl19KGU+Pj4wKX07ZS53YmcuX193YmdfbWFrZWNzc1JHQl84OTNiZjBjZDlmZGIzMDJkPWZ1bmN0aW9uKGUpeyFmdW5jdGlvbiBtYWtlX2Nzc1JHQihlKXtjb25zdHtfbWVtb3J5QXJyYXk6dH09UUNNUztRQ01TLl9jc3NDb2xvcj1RQ01TLl9tYWtlSGV4Q29sb3IodFtlXSx0W2UrMV0sdFtlKzJdKX0oZT4+PjApfTtlLndiZy5fX3diaW5kZ2VuX2luaXRfZXh0ZXJucmVmX3RhYmxlPWZ1bmN0aW9uKCl7Y29uc3QgZT12bi5fX3diaW5kZ2VuX2V4cG9ydF8wLHQ9ZS5ncm93KDQpO2Uuc2V0KDAsdm9pZCAwKTtlLnNldCh0KzAsdm9pZCAwKTtlLnNldCh0KzEsbnVsbCk7ZS5zZXQodCsyLCEwKTtlLnNldCh0KzMsITEpfTtlLndiZy5fX3diaW5kZ2VuX3Rocm93PWZ1bmN0aW9uKGUsdCl7dGhyb3cgbmV3IEVycm9yKGZ1bmN0aW9uIGdldFN0cmluZ0Zyb21XYXNtMChlLHQpe2U+Pj49MDtyZXR1cm4gU24uZGVjb2RlKGdldFVpbnQ4QXJyYXlNZW1vcnkwKCkuc3ViYXJyYXkoZSxlK3QpKX0oZSx0KSl9O3JldHVybiBlfWZ1bmN0aW9uIF9fd2JnX2ZpbmFsaXplX2luaXQoZSx0KXt2bj1lLmV4cG9ydHM7X193YmdfaW5pdC5fX3diaW5kZ2VuX3dhc21fbW9kdWxlPXQ7eG49bnVsbDt2bi5fX3diaW5kZ2VuX3N0YXJ0KCk7cmV0dXJuIHZufWFzeW5jIGZ1bmN0aW9uIF9fd2JnX2luaXQoZSl7aWYodm9pZCAwIT09dm4pcmV0dXJuIHZuO3ZvaWQgMCE9PWUmJihPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk9PT1PYmplY3QucHJvdG90eXBlPyh7bW9kdWxlX29yX3BhdGg6ZX09ZSk6Y29uc29sZS53YXJuKCJ1c2luZyBkZXByZWNhdGVkIHBhcmFtZXRlcnMgZm9yIHRoZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbjsgcGFzcyBhIHNpbmdsZSBvYmplY3QgaW5zdGVhZCIpKTtjb25zdCB0PV9fd2JnX2dldF9pbXBvcnRzKCk7KCJzdHJpbmciPT10eXBlb2YgZXx8ImZ1bmN0aW9uIj09dHlwZW9mIFJlcXVlc3QmJmUgaW5zdGFuY2VvZiBSZXF1ZXN0fHwiZnVuY3Rpb24iPT10eXBlb2YgVVJMJiZlIGluc3RhbmNlb2YgVVJMKSYmKGU9ZmV0Y2goZSkpO2NvbnN0e2luc3RhbmNlOm4sbW9kdWxlOmF9PWF3YWl0IGFzeW5jIGZ1bmN0aW9uIF9fd2JnX2xvYWQoZSx0KXtpZigiZnVuY3Rpb24iPT10eXBlb2YgUmVzcG9uc2UmJmUgaW5zdGFuY2VvZiBSZXNwb25zZSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKXRyeXtyZXR1cm4gYXdhaXQgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmcoZSx0KX1jYXRjaCh0KXtpZigiYXBwbGljYXRpb24vd2FzbSI9PWUuaGVhZGVycy5nZXQoIkNvbnRlbnQtVHlwZSIpKXRocm93IHQ7Y29uc29sZS53YXJuKCJgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmdgIGZhaWxlZCBiZWNhdXNlIHlvdXIgc2VydmVyIGRvZXMgbm90IHNlcnZlIFdhc20gd2l0aCBgYXBwbGljYXRpb24vd2FzbWAgTUlNRSB0eXBlLiBGYWxsaW5nIGJhY2sgdG8gYFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlYCB3aGljaCBpcyBzbG93ZXIuIE9yaWdpbmFsIGVycm9yOlxuIix0KX1jb25zdCBuPWF3YWl0IGUuYXJyYXlCdWZmZXIoKTtyZXR1cm4gYXdhaXQgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGUobix0KX17Y29uc3Qgbj1hd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShlLHQpO3JldHVybiBuIGluc3RhbmNlb2YgV2ViQXNzZW1ibHkuSW5zdGFuY2U/e2luc3RhbmNlOm4sbW9kdWxlOmV9Om59fShhd2FpdCBlLHQpO3JldHVybiBfX3diZ19maW5hbGl6ZV9pbml0KG4sYSl9ZnVuY3Rpb24gaXNEZWZhdWx0RGVjb2RlSGVscGVyKGUsdCl7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuITA7Y29uc3Qgbj1lLmxlbmd0aDtpZihuPHQpe3dhcm4oIkRlY29kZSBtYXAgbGVuZ3RoIGlzIHRvbyBzaG9ydC4iKTtyZXR1cm4hMH1pZihuPnQpe2luZm8oIlRydW5jYXRpbmcgdG9vIGxvbmcgZGVjb2RlIG1hcC4iKTtlLmxlbmd0aD10fXJldHVybiExfWNsYXNzIENvbG9yU3BhY2V7c3RhdGljI2E9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDMpO2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5uYW1lPWU7dGhpcy5udW1Db21wcz10fWdldFJnYihlLHQsbj1uZXcgVWludDhDbGFtcGVkQXJyYXkoMykpe3RoaXMuZ2V0UmdiSXRlbShlLHQsbiwwKTtyZXR1cm4gbn1nZXRSZ2JIZXgoZSx0KXtjb25zdCBuPXRoaXMuZ2V0UmdiKGUsdCxDb2xvclNwYWNlLiNhKTtyZXR1cm4gVXRpbC5tYWtlSGV4Q29sb3IoblswXSxuWzFdLG5bMl0pfWdldFJnYkl0ZW0oZSx0LG4sYSl7dW5yZWFjaGFibGUoIlNob3VsZCBub3QgY2FsbCBDb2xvclNwYWNlLmdldFJnYkl0ZW0iKX1nZXRSZ2JCdWZmZXIoZSx0LG4sYSxyLHMsaSl7dW5yZWFjaGFibGUoIlNob3VsZCBub3QgY2FsbCBDb2xvclNwYWNlLmdldFJnYkJ1ZmZlciIpfWdldE91dHB1dExlbmd0aChlLHQpe3VucmVhY2hhYmxlKCJTaG91bGQgbm90IGNhbGwgQ29sb3JTcGFjZS5nZXRPdXRwdXRMZW5ndGgiKX1pc1Bhc3N0aHJvdWdoKGUpe3JldHVybiExfWlzRGVmYXVsdERlY29kZShlLHQpe3JldHVybiBDb2xvclNwYWNlLmlzRGVmYXVsdERlY29kZShlLHRoaXMubnVtQ29tcHMpfWZpbGxSZ2IoZSx0LG4sYSxyLHMsaSxvLGwpe2NvbnN0IGY9dCpuO2xldCBjPW51bGw7Y29uc3QgaD0xPDxpLHU9biE9PXJ8fHQhPT1hO2lmKHRoaXMuaXNQYXNzdGhyb3VnaChpKSljPW87ZWxzZSBpZigxPT09dGhpcy5udW1Db21wcyYmZj5oJiYiRGV2aWNlR3JheSIhPT10aGlzLm5hbWUmJiJEZXZpY2VSR0IiIT09dGhpcy5uYW1lKXtjb25zdCB0PWk8PTg/bmV3IFVpbnQ4QXJyYXkoaCk6bmV3IFVpbnQxNkFycmF5KGgpO2ZvcihsZXQgZT0wO2U8aDtlKyspdFtlXT1lO2NvbnN0IG49bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDMqaCk7dGhpcy5nZXRSZ2JCdWZmZXIodCwwLGgsbiwwLGksMCk7aWYodSl7Yz1uZXcgVWludDhBcnJheSgzKmYpO2xldCBlPTA7Zm9yKGxldCB0PTA7dDxmOysrdCl7Y29uc3QgYT0zKm9bdF07Y1tlKytdPW5bYV07Y1tlKytdPW5bYSsxXTtjW2UrK109blthKzJdfX1lbHNle2xldCB0PTA7Zm9yKGxldCBhPTA7YTxmOysrYSl7Y29uc3Qgcj0zKm9bYV07ZVt0KytdPW5bcl07ZVt0KytdPW5bcisxXTtlW3QrK109bltyKzJdO3QrPWx9fX1lbHNlIGlmKHUpe2M9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDMqZik7dGhpcy5nZXRSZ2JCdWZmZXIobywwLGYsYywwLGksMCl9ZWxzZSB0aGlzLmdldFJnYkJ1ZmZlcihvLDAsYSpzLGUsMCxpLGwpO2lmKGMpaWYodSkhZnVuY3Rpb24gcmVzaXplUmdiSW1hZ2UoZSx0LG4sYSxyLHMsaSl7aT0xIT09aT8wOmk7Y29uc3Qgbz1uL3IsbD1hL3M7bGV0IGYsYz0wO2NvbnN0IGg9bmV3IFVpbnQxNkFycmF5KHIpLHU9MypuO2ZvcihsZXQgZT0wO2U8cjtlKyspaFtlXT0zKk1hdGguZmxvb3IoZSpvKTtmb3IobGV0IG49MDtuPHM7bisrKXtjb25zdCBhPU1hdGguZmxvb3IobipsKSp1O2ZvcihsZXQgbj0wO248cjtuKyspe2Y9YStoW25dO3RbYysrXT1lW2YrK107dFtjKytdPWVbZisrXTt0W2MrK109ZVtmKytdO2MrPWl9fX0oYyxlLHQsbixhLHIsbCk7ZWxzZXtsZXQgdD0wLG49MDtmb3IobGV0IHI9MCxpPWEqcztyPGk7cisrKXtlW3QrK109Y1tuKytdO2VbdCsrXT1jW24rK107ZVt0KytdPWNbbisrXTt0Kz1sfX19Z2V0IHVzZXNaZXJvVG9PbmVSYW5nZSgpe3JldHVybiBzaGFkb3codGhpcywidXNlc1plcm9Ub09uZVJhbmdlIiwhMCl9c3RhdGljIGlzRGVmYXVsdERlY29kZShlLHQpe2lmKGlzRGVmYXVsdERlY29kZUhlbHBlcihlLDIqdCkpcmV0dXJuITA7Zm9yKGxldCB0PTAsbj1lLmxlbmd0aDt0PG47dCs9MilpZigwIT09ZVt0XXx8MSE9PWVbdCsxXSlyZXR1cm4hMTtyZXR1cm4hMH19Y2xhc3MgQWx0ZXJuYXRlQ1MgZXh0ZW5kcyBDb2xvclNwYWNle2NvbnN0cnVjdG9yKGUsdCxuKXtzdXBlcigiQWx0ZXJuYXRlIixlKTt0aGlzLmJhc2U9dDt0aGlzLnRpbnRGbj1uO3RoaXMudG1wQnVmPW5ldyBGbG9hdDMyQXJyYXkodC5udW1Db21wcyl9Z2V0UmdiSXRlbShlLHQsbixhKXtjb25zdCByPXRoaXMudG1wQnVmO3RoaXMudGludEZuKGUsdCxyLDApO3RoaXMuYmFzZS5nZXRSZ2JJdGVtKHIsMCxuLGEpfWdldFJnYkJ1ZmZlcihlLHQsbixhLHIscyxpKXtjb25zdCBvPXRoaXMudGludEZuLGw9dGhpcy5iYXNlLGY9MS8oKDE8PHMpLTEpLGM9bC5udW1Db21wcyxoPWwudXNlc1plcm9Ub09uZVJhbmdlLHU9KGwuaXNQYXNzdGhyb3VnaCg4KXx8IWgpJiYwPT09aTtsZXQgbT11P3I6MDtjb25zdCBwPXU/YTpuZXcgVWludDhDbGFtcGVkQXJyYXkoYypuKSxkPXRoaXMubnVtQ29tcHMsZz1uZXcgRmxvYXQzMkFycmF5KGQpLGI9bmV3IEZsb2F0MzJBcnJheShjKTtsZXQgdyxqO2Zvcih3PTA7dzxuO3crKyl7Zm9yKGo9MDtqPGQ7aisrKWdbal09ZVt0KytdKmY7byhnLDAsYiwwKTtpZihoKWZvcihqPTA7ajxjO2orKylwW20rK109MjU1KmJbal07ZWxzZXtsLmdldFJnYkl0ZW0oYiwwLHAsbSk7bSs9Y319dXx8bC5nZXRSZ2JCdWZmZXIocCwwLG4sYSxyLDgsaSl9Z2V0T3V0cHV0TGVuZ3RoKGUsdCl7cmV0dXJuIHRoaXMuYmFzZS5nZXRPdXRwdXRMZW5ndGgoZSp0aGlzLmJhc2UubnVtQ29tcHMvdGhpcy5udW1Db21wcyx0KX19Y2xhc3MgUGF0dGVybkNTIGV4dGVuZHMgQ29sb3JTcGFjZXtjb25zdHJ1Y3RvcihlKXtzdXBlcigiUGF0dGVybiIsbnVsbCk7dGhpcy5iYXNlPWV9aXNEZWZhdWx0RGVjb2RlKGUsdCl7dW5yZWFjaGFibGUoIlNob3VsZCBub3QgY2FsbCBQYXR0ZXJuQ1MuaXNEZWZhdWx0RGVjb2RlIil9fWNsYXNzIEluZGV4ZWRDUyBleHRlbmRzIENvbG9yU3BhY2V7Y29uc3RydWN0b3IoZSx0LG4pe3N1cGVyKCJJbmRleGVkIiwxKTt0aGlzLmJhc2U9ZTt0aGlzLmhpZ2hWYWw9dDtjb25zdCBhPWUubnVtQ29tcHMqKHQrMSk7dGhpcy5sb29rdXA9bmV3IFVpbnQ4QXJyYXkoYSk7aWYobiBpbnN0YW5jZW9mIEJhc2VTdHJlYW0pe2NvbnN0IGU9bi5nZXRCeXRlcyhhKTt0aGlzLmxvb2t1cC5zZXQoZSl9ZWxzZXtpZigic3RyaW5nIiE9dHlwZW9mIG4pdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBJbmRleGVkQ1MgLSB1bnJlY29nbml6ZWQgbG9va3VwIHRhYmxlOiAke259YCk7Zm9yKGxldCBlPTA7ZTxhOysrZSl0aGlzLmxvb2t1cFtlXT0yNTUmbi5jaGFyQ29kZUF0KGUpfX1nZXRSZ2JJdGVtKGUsdCxuLGEpe2NvbnN0e2Jhc2U6cixoaWdoVmFsOnMsbG9va3VwOml9PXRoaXMsbz1NYXRoQ2xhbXAoTWF0aC5yb3VuZChlW3RdKSwwLHMpKnIubnVtQ29tcHM7ci5nZXRSZ2JCdWZmZXIoaSxvLDEsbixhLDgsMCl9Z2V0UmdiQnVmZmVyKGUsdCxuLGEscixzLGkpe2NvbnN0e2Jhc2U6byxoaWdoVmFsOmwsbG9va3VwOmZ9PXRoaXMse251bUNvbXBzOmN9PW8saD1vLmdldE91dHB1dExlbmd0aChjLGkpO2ZvcihsZXQgcz0wO3M8bjsrK3Mpe2NvbnN0IG49TWF0aENsYW1wKE1hdGgucm91bmQoZVt0KytdKSwwLGwpKmM7by5nZXRSZ2JCdWZmZXIoZixuLDEsYSxyLDgsaSk7cis9aH19Z2V0T3V0cHV0TGVuZ3RoKGUsdCl7cmV0dXJuIHRoaXMuYmFzZS5nZXRPdXRwdXRMZW5ndGgoZSp0aGlzLmJhc2UubnVtQ29tcHMsdCl9aXNEZWZhdWx0RGVjb2RlKGUsdCl7aWYoaXNEZWZhdWx0RGVjb2RlSGVscGVyKGUsMikpcmV0dXJuITA7aWYoIU51bWJlci5pc0ludGVnZXIodCl8fHQ8MSl7d2FybigiQml0cyBwZXIgY29tcG9uZW50IGlzIG5vdCBjb3JyZWN0Iik7cmV0dXJuITB9cmV0dXJuIDA9PT1lWzBdJiZlWzFdPT09KDE8PHQpLTF9fWNsYXNzIERldmljZUdyYXlDUyBleHRlbmRzIENvbG9yU3BhY2V7Y29uc3RydWN0b3IoKXtzdXBlcigiRGV2aWNlR3JheSIsMSl9Z2V0UmdiSXRlbShlLHQsbixhKXtjb25zdCByPTI1NSplW3RdO25bYV09blthKzFdPW5bYSsyXT1yfWdldFJnYkJ1ZmZlcihlLHQsbixhLHIscyxpKXtjb25zdCBvPTI1NS8oKDE8PHMpLTEpO2xldCBsPXQsZj1yO2ZvcihsZXQgdD0wO3Q8bjsrK3Qpe2NvbnN0IHQ9byplW2wrK107YVtmKytdPXQ7YVtmKytdPXQ7YVtmKytdPXQ7Zis9aX19Z2V0T3V0cHV0TGVuZ3RoKGUsdCl7cmV0dXJuIGUqKDMrdCl9fWNsYXNzIERldmljZVJnYkNTIGV4dGVuZHMgQ29sb3JTcGFjZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCJEZXZpY2VSR0IiLDMpfWdldFJnYkl0ZW0oZSx0LG4sYSl7blthXT0yNTUqZVt0XTtuW2ErMV09MjU1KmVbdCsxXTtuW2ErMl09MjU1KmVbdCsyXX1nZXRSZ2JCdWZmZXIoZSx0LG4sYSxyLHMsaSl7aWYoOD09PXMmJjA9PT1pKXthLnNldChlLnN1YmFycmF5KHQsdCszKm4pLHIpO3JldHVybn1jb25zdCBvPTI1NS8oKDE8PHMpLTEpO2xldCBsPXQsZj1yO2ZvcihsZXQgdD0wO3Q8bjsrK3Qpe2FbZisrXT1vKmVbbCsrXTthW2YrK109byplW2wrK107YVtmKytdPW8qZVtsKytdO2YrPWl9fWdldE91dHB1dExlbmd0aChlLHQpe3JldHVybiBlKigzK3QpLzN8MH1pc1Bhc3N0aHJvdWdoKGUpe3JldHVybiA4PT09ZX19Y2xhc3MgRGV2aWNlUmdiYUNTIGV4dGVuZHMgQ29sb3JTcGFjZXtjb25zdHJ1Y3Rvcigpe3N1cGVyKCJEZXZpY2VSR0JBIiw0KX1nZXRPdXRwdXRMZW5ndGgoZSx0KXtyZXR1cm4gNCplfWlzUGFzc3Rocm91Z2goZSl7cmV0dXJuIDg9PT1lfWZpbGxSZ2IoZSx0LG4sYSxyLHMsaSxvLGwpe24hPT1yfHx0IT09YT9mdW5jdGlvbiByZXNpemVSZ2JhSW1hZ2UoZSx0LG4sYSxyLHMsaSl7Y29uc3Qgbz1uL3IsbD1hL3M7bGV0IGY9MDtjb25zdCBjPW5ldyBVaW50MTZBcnJheShyKTtpZigxPT09aSl7Zm9yKGxldCBlPTA7ZTxyO2UrKyljW2VdPU1hdGguZmxvb3IoZSpvKTtjb25zdCBhPW5ldyBVaW50MzJBcnJheShlLmJ1ZmZlciksaT1uZXcgVWludDMyQXJyYXkodC5idWZmZXIpLGg9RmVhdHVyZVRlc3QuaXNMaXR0bGVFbmRpYW4/MTY3NzcyMTU6NDI5NDk2NzA0MDtmb3IobGV0IGU9MDtlPHM7ZSsrKXtjb25zdCB0PWEuc3ViYXJyYXkoTWF0aC5mbG9vcihlKmwpKm4pO2ZvcihsZXQgZT0wO2U8cjtlKyspaVtmKytdfD10W2NbZV1dJmh9fWVsc2V7Y29uc3QgYT00LGk9biphO2ZvcihsZXQgZT0wO2U8cjtlKyspY1tlXT1NYXRoLmZsb29yKGUqbykqYTtmb3IobGV0IG49MDtuPHM7bisrKXtjb25zdCBhPWUuc3ViYXJyYXkoTWF0aC5mbG9vcihuKmwpKmkpO2ZvcihsZXQgZT0wO2U8cjtlKyspe2NvbnN0IG49Y1tlXTt0W2YrK109YVtuXTt0W2YrK109YVtuKzFdO3RbZisrXT1hW24rMl19fX19KG8sZSx0LG4sYSxyLGwpOmZ1bmN0aW9uIGNvcHlSZ2JhSW1hZ2UoZSx0LG4pe2lmKDE9PT1uKXtjb25zdCBuPW5ldyBVaW50MzJBcnJheShlLmJ1ZmZlciksYT1uZXcgVWludDMyQXJyYXkodC5idWZmZXIpLHI9RmVhdHVyZVRlc3QuaXNMaXR0bGVFbmRpYW4/MTY3NzcyMTU6NDI5NDk2NzA0MDtmb3IobGV0IGU9MCx0PW4ubGVuZ3RoO2U8dDtlKyspYVtlXXw9bltlXSZyfWVsc2V7bGV0IG49MDtmb3IobGV0IGE9MCxyPWUubGVuZ3RoO2E8cjthKz00KXt0W24rK109ZVthXTt0W24rK109ZVthKzFdO3RbbisrXT1lW2ErMl19fX0obyxlLGwpfX1jbGFzcyBEZXZpY2VDbXlrQ1MgZXh0ZW5kcyBDb2xvclNwYWNle2NvbnN0cnVjdG9yKCl7c3VwZXIoIkRldmljZUNNWUsiLDQpfSNyKGUsdCxuLGEscil7Y29uc3Qgcz1lW3RdKm4saT1lW3QrMV0qbixvPWVbdCsyXSpuLGw9ZVt0KzNdKm47YVtyXT0yNTUrcyooLTQuMzg3MzMyMzg0NjA5OTg4KnMrNTQuNDg2MTUxOTQxODkxNzYqaSsxOC44MjI5MDUwMjE2NTMwMipvKzIxMi4yNTY2MjQ1MTYzOTU4NSpsLTI4NS4yMzMxMDI2MTM3MDA0KStpKigxLjcxNDk3NjM0NzczNjIxMzQqaS01LjYwOTY3MzY5MDQwNDczMTUqbystMTcuODczODcwODYxNDE1NDQ0KmwtNS40OTcwMDY0MjcxOTYzNjYpK28qKC0yLjUyMTczNDAxMzE2ODMwMzMqby0yMS4yNDg5MjMzMzczNTMwNzMqbCsxNy41MTE5MjcwODQxODEzKStsKigtMjEuODYxMjIxNDc0NjM2MDUqbC0xODkuNDgxODA4MzU5MjI3NDcpO2FbcisxXT0yNTUrcyooOC44NDEwNDE0MjIwMzYxNDkqcys2MC4xMTgwMjcwNDU1OTczNjYqaSs2Ljg3MTQyNTU5MjA0OTAwNypvKzMxLjE1OTEwMDEzMDA1NTkyMipsLTc5LjI5NzA4NDQ4MTY1NDgpK2kqKC0xNS4zMTAzNjEzMDY5Njc4MTcqaSsxNy41NzUyNTEyNjExMDk0ODIqbysxMzEuMzUyNTA5MTI0OTM5NzYqbC0xOTAuOTQ1MzMwMjU4ODk1MSkrbyooNC40NDQzMzkxMDI4NTI3Mzkqbys5Ljg2MzI4NjE0OTM0MDUqbC0yNC44Njc0MTU4MjU1NTg3OCkrbCooLTIwLjczNzMyNTQ3MTE4MTAzNCpsLTE4Ny44MDQ1MzcwOTcxOTU3OCk7YVtyKzJdPTI1NStzKiguODg0MjUyMjQzMDAwMzI5NipzKzguMDc4Njc3NTAzMTEyOTI4KmkrMzAuODk5NzgzMDk3MDM3Mjkqby0uMjM4ODMyMzg2ODkxNzg5MzQqbC0xNC4xODM1NzY3OTk2NzMyODYpK2kqKDEwLjQ5NTkzMjczNDMyMDcyKmkrNjMuMDIzNzg0OTQ3NTQwNTIqbys1MC42MDY5NTc2NTYzNjA3MzQqbC0xMTIuMjM4ODQyNTM3MTkyNDgpK28qKC4wMzI5NjA0MTExNDg3MzIxNypvKzExNS42MDM4NDQ0OTY0NjY0MSpsLTE5My41ODIwOTM1Njg2MTUwNSkrbCooLTIyLjMzODE2ODA3MzA5ODg2KmwtMTgwLjEyNjEzOTc0NzA4MzY3KX1nZXRSZ2JJdGVtKGUsdCxuLGEpe3RoaXMuI3IoZSx0LDEsbixhKX1nZXRSZ2JCdWZmZXIoZSx0LG4sYSxyLHMsaSl7Y29uc3Qgbz0xLygoMTw8cyktMSk7Zm9yKGxldCBzPTA7czxuO3MrKyl7dGhpcy4jcihlLHQsbyxhLHIpO3QrPTQ7cis9MytpfX1nZXRPdXRwdXRMZW5ndGgoZSx0KXtyZXR1cm4gZS80KigzK3QpfDB9fWNsYXNzIENhbEdyYXlDUyBleHRlbmRzIENvbG9yU3BhY2V7Y29uc3RydWN0b3IoZSx0LG4pe3N1cGVyKCJDYWxHcmF5IiwxKTtpZighZSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIldoaXRlUG9pbnQgbWlzc2luZyAtIHJlcXVpcmVkIGZvciBjb2xvciBzcGFjZSBDYWxHcmF5Iik7W3RoaXMuWFcsdGhpcy5ZVyx0aGlzLlpXXT1lO1t0aGlzLlhCLHRoaXMuWUIsdGhpcy5aQl09dHx8WzAsMCwwXTt0aGlzLkc9bnx8MTtpZih0aGlzLlhXPDB8fHRoaXMuWlc8MHx8MSE9PXRoaXMuWVcpdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBJbnZhbGlkIFdoaXRlUG9pbnQgY29tcG9uZW50cyBmb3IgJHt0aGlzLm5hbWV9LCBubyBmYWxsYmFjayBhdmFpbGFibGVgKTtpZih0aGlzLlhCPDB8fHRoaXMuWUI8MHx8dGhpcy5aQjwwKXtpbmZvKGBJbnZhbGlkIEJsYWNrUG9pbnQgZm9yICR7dGhpcy5uYW1lfSwgZmFsbGluZyBiYWNrIHRvIGRlZmF1bHQuYCk7dGhpcy5YQj10aGlzLllCPXRoaXMuWkI9MH0wPT09dGhpcy5YQiYmMD09PXRoaXMuWUImJjA9PT10aGlzLlpCfHx3YXJuKGAke3RoaXMubmFtZX0sIEJsYWNrUG9pbnQ6IFhCOiAke3RoaXMuWEJ9LCBZQjogJHt0aGlzLllCfSwgWkI6ICR7dGhpcy5aQn0sIG9ubHkgZGVmYXVsdCB2YWx1ZXMgYXJlIHN1cHBvcnRlZC5gKTtpZih0aGlzLkc8MSl7aW5mbyhgSW52YWxpZCBHYW1tYTogJHt0aGlzLkd9IGZvciAke3RoaXMubmFtZX0sIGZhbGxpbmcgYmFjayB0byBkZWZhdWx0LmApO3RoaXMuRz0xfX0jcihlLHQsbixhLHIpe2NvbnN0IHM9KGVbdF0qcikqKnRoaXMuRyxpPXRoaXMuWVcqcyxvPU1hdGgubWF4KDI5NS44KmkqKi4zMzMzMzMzMzMzMzMzMzMzLTQwLjgsMCk7blthXT1vO25bYSsxXT1vO25bYSsyXT1vfWdldFJnYkl0ZW0oZSx0LG4sYSl7dGhpcy4jcihlLHQsbixhLDEpfWdldFJnYkJ1ZmZlcihlLHQsbixhLHIscyxpKXtjb25zdCBvPTEvKCgxPDxzKS0xKTtmb3IobGV0IHM9MDtzPG47KytzKXt0aGlzLiNyKGUsdCxhLHIsbyk7dCs9MTtyKz0zK2l9fWdldE91dHB1dExlbmd0aChlLHQpe3JldHVybiBlKigzK3QpfX1jbGFzcyBDYWxSR0JDUyBleHRlbmRzIENvbG9yU3BhY2V7c3RhdGljI3M9bmV3IEZsb2F0MzJBcnJheShbLjg5NTEsLjI2NjQsLS4xNjE0LC0uNzUwMiwxLjcxMzUsLjAzNjcsLjAzODksLS4wNjg1LDEuMDI5Nl0pO3N0YXRpYyNpPW5ldyBGbG9hdDMyQXJyYXkoWy45ODY5OTI5LC0uMTQ3MDU0MywuMTU5OTYyNywuNDMyMzA1MywuNTE4MzYwMywuMDQ5MjkxMiwtLjAwODUyODcsLjA0MDA0MjgsLjk2ODQ4NjddKTtzdGF0aWMjbz1uZXcgRmxvYXQzMkFycmF5KFszLjI0MDQ1NDIsLTEuNTM3MTM4NSwtLjQ5ODUzMTQsLS45NjkyNjYsMS44NzYwMTA4LC4wNDE1NTYsLjA1NTY0MzQsLS4yMDQwMjU5LDEuMDU3MjI1Ml0pO3N0YXRpYyNsPW5ldyBGbG9hdDMyQXJyYXkoWzEsMSwxXSk7c3RhdGljI2Y9bmV3IEZsb2F0MzJBcnJheSgzKTtzdGF0aWMjYz1uZXcgRmxvYXQzMkFycmF5KDMpO3N0YXRpYyNoPW5ldyBGbG9hdDMyQXJyYXkoMyk7c3RhdGljI3U9KDI0LzExNikqKjMvODtjb25zdHJ1Y3RvcihlLHQsbixhKXtzdXBlcigiQ2FsUkdCIiwzKTtpZighZSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIldoaXRlUG9pbnQgbWlzc2luZyAtIHJlcXVpcmVkIGZvciBjb2xvciBzcGFjZSBDYWxSR0IiKTtjb25zdFtyLHMsaV09dGhpcy53aGl0ZVBvaW50PWUsW28sbCxmXT10aGlzLmJsYWNrUG9pbnQ9dHx8bmV3IEZsb2F0MzJBcnJheSgzKTtbdGhpcy5HUix0aGlzLkdHLHRoaXMuR0JdPW58fG5ldyBGbG9hdDMyQXJyYXkoWzEsMSwxXSk7W3RoaXMuTVhBLHRoaXMuTVlBLHRoaXMuTVpBLHRoaXMuTVhCLHRoaXMuTVlCLHRoaXMuTVpCLHRoaXMuTVhDLHRoaXMuTVlDLHRoaXMuTVpDXT1hfHxuZXcgRmxvYXQzMkFycmF5KFsxLDAsMCwwLDEsMCwwLDAsMV0pO2lmKHI8MHx8aTwwfHwxIT09cyl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYEludmFsaWQgV2hpdGVQb2ludCBjb21wb25lbnRzIGZvciAke3RoaXMubmFtZX0sIG5vIGZhbGxiYWNrIGF2YWlsYWJsZWApO2lmKG88MHx8bDwwfHxmPDApe2luZm8oYEludmFsaWQgQmxhY2tQb2ludCBmb3IgJHt0aGlzLm5hbWV9IFske299LCAke2x9LCAke2Z9XSwgZmFsbGluZyBiYWNrIHRvIGRlZmF1bHQuYCk7dGhpcy5ibGFja1BvaW50PW5ldyBGbG9hdDMyQXJyYXkoMyl9aWYodGhpcy5HUjwwfHx0aGlzLkdHPDB8fHRoaXMuR0I8MCl7aW5mbyhgSW52YWxpZCBHYW1tYSBbJHt0aGlzLkdSfSwgJHt0aGlzLkdHfSwgJHt0aGlzLkdCfV0gZm9yICR7dGhpcy5uYW1lfSwgZmFsbGluZyBiYWNrIHRvIGRlZmF1bHQuYCk7dGhpcy5HUj10aGlzLkdHPXRoaXMuR0I9MX19I20oZSx0LG4pe25bMF09ZVswXSp0WzBdK2VbMV0qdFsxXStlWzJdKnRbMl07blsxXT1lWzNdKnRbMF0rZVs0XSp0WzFdK2VbNV0qdFsyXTtuWzJdPWVbNl0qdFswXStlWzddKnRbMV0rZVs4XSp0WzJdfSNwKGUsdCxuKXtuWzBdPTEqdFswXS9lWzBdO25bMV09MSp0WzFdL2VbMV07blsyXT0xKnRbMl0vZVsyXX0jZChlLHQsbil7blswXT0uOTUwNDcqdFswXS9lWzBdO25bMV09MSp0WzFdL2VbMV07blsyXT0xLjA4ODgzKnRbMl0vZVsyXX0jZyhlKXtyZXR1cm4gZTw9LjAwMzEzMDg/TWF0aENsYW1wKDEyLjkyKmUsMCwxKTplPj0uOTk1NTQ1MjU/MTpNYXRoQ2xhbXAoMS4wNTUqZSoqKDEvMi40KS0uMDU1LDAsMSl9I2IoZSl7cmV0dXJuIGU8MD8tdGhpcy4jYigtZSk6ZT44PygoZSsxNikvMTE2KSoqMzplKkNhbFJHQkNTLiN1fSN3KGUsdCxuKXtpZigwPT09ZVswXSYmMD09PWVbMV0mJjA9PT1lWzJdKXtuWzBdPXRbMF07blsxXT10WzFdO25bMl09dFsyXTtyZXR1cm59Y29uc3QgYT10aGlzLiNiKDApLHI9KDEtYSkvKDEtdGhpcy4jYihlWzBdKSkscz0xLXIsaT0oMS1hKS8oMS10aGlzLiNiKGVbMV0pKSxvPTEtaSxsPSgxLWEpLygxLXRoaXMuI2IoZVsyXSkpLGY9MS1sO25bMF09dFswXSpyK3M7blsxXT10WzFdKmkrbztuWzJdPXRbMl0qbCtmfSNqKGUsdCxuKXtpZigxPT09ZVswXSYmMT09PWVbMl0pe25bMF09dFswXTtuWzFdPXRbMV07blsyXT10WzJdO3JldHVybn1jb25zdCBhPW47dGhpcy4jbShDYWxSR0JDUy4jcyx0LGEpO2NvbnN0IHI9Q2FsUkdCQ1MuI2Y7dGhpcy4jcChlLGEscik7dGhpcy4jbShDYWxSR0JDUy4jaSxyLG4pfSNrKGUsdCxuKXtjb25zdCBhPW47dGhpcy4jbShDYWxSR0JDUy4jcyx0LGEpO2NvbnN0IHI9Q2FsUkdCQ1MuI2Y7dGhpcy4jZChlLGEscik7dGhpcy4jbShDYWxSR0JDUy4jaSxyLG4pfSNyKGUsdCxuLGEscil7Y29uc3Qgcz1NYXRoQ2xhbXAoZVt0XSpyLDAsMSksaT1NYXRoQ2xhbXAoZVt0KzFdKnIsMCwxKSxvPU1hdGhDbGFtcChlW3QrMl0qciwwLDEpLGw9MT09PXM/MTpzKip0aGlzLkdSLGY9MT09PWk/MTppKip0aGlzLkdHLGM9MT09PW8/MTpvKip0aGlzLkdCLGg9dGhpcy5NWEEqbCt0aGlzLk1YQipmK3RoaXMuTVhDKmMsdT10aGlzLk1ZQSpsK3RoaXMuTVlCKmYrdGhpcy5NWUMqYyxtPXRoaXMuTVpBKmwrdGhpcy5NWkIqZit0aGlzLk1aQypjLHA9Q2FsUkdCQ1MuI2M7cFswXT1oO3BbMV09dTtwWzJdPW07Y29uc3QgZD1DYWxSR0JDUy4jaDt0aGlzLiNqKHRoaXMud2hpdGVQb2ludCxwLGQpO2NvbnN0IGc9Q2FsUkdCQ1MuI2M7dGhpcy4jdyh0aGlzLmJsYWNrUG9pbnQsZCxnKTtjb25zdCBiPUNhbFJHQkNTLiNoO3RoaXMuI2soQ2FsUkdCQ1MuI2wsZyxiKTtjb25zdCB3PUNhbFJHQkNTLiNjO3RoaXMuI20oQ2FsUkdCQ1MuI28sYix3KTtuW2FdPTI1NSp0aGlzLiNnKHdbMF0pO25bYSsxXT0yNTUqdGhpcy4jZyh3WzFdKTtuW2ErMl09MjU1KnRoaXMuI2cod1syXSl9Z2V0UmdiSXRlbShlLHQsbixhKXt0aGlzLiNyKGUsdCxuLGEsMSl9Z2V0UmdiQnVmZmVyKGUsdCxuLGEscixzLGkpe2NvbnN0IG89MS8oKDE8PHMpLTEpO2ZvcihsZXQgcz0wO3M8bjsrK3Mpe3RoaXMuI3IoZSx0LGEscixvKTt0Kz0zO3IrPTMraX19Z2V0T3V0cHV0TGVuZ3RoKGUsdCl7cmV0dXJuIGUqKDMrdCkvM3wwfX1jbGFzcyBMYWJDUyBleHRlbmRzIENvbG9yU3BhY2V7Y29uc3RydWN0b3IoZSx0LG4pe3N1cGVyKCJMYWIiLDMpO2lmKCFlKXRocm93IG5ldyBGb3JtYXRFcnJvcigiV2hpdGVQb2ludCBtaXNzaW5nIC0gcmVxdWlyZWQgZm9yIGNvbG9yIHNwYWNlIExhYiIpO1t0aGlzLlhXLHRoaXMuWVcsdGhpcy5aV109ZTtbdGhpcy5hbWluLHRoaXMuYW1heCx0aGlzLmJtaW4sdGhpcy5ibWF4XT1ufHxbLTEwMCwxMDAsLTEwMCwxMDBdO1t0aGlzLlhCLHRoaXMuWUIsdGhpcy5aQl09dHx8WzAsMCwwXTtpZih0aGlzLlhXPDB8fHRoaXMuWlc8MHx8MSE9PXRoaXMuWVcpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJJbnZhbGlkIFdoaXRlUG9pbnQgY29tcG9uZW50cywgbm8gZmFsbGJhY2sgYXZhaWxhYmxlIik7aWYodGhpcy5YQjwwfHx0aGlzLllCPDB8fHRoaXMuWkI8MCl7aW5mbygiSW52YWxpZCBCbGFja1BvaW50LCBmYWxsaW5nIGJhY2sgdG8gZGVmYXVsdCIpO3RoaXMuWEI9dGhpcy5ZQj10aGlzLlpCPTB9aWYodGhpcy5hbWluPnRoaXMuYW1heHx8dGhpcy5ibWluPnRoaXMuYm1heCl7aW5mbygiSW52YWxpZCBSYW5nZSwgZmFsbGluZyBiYWNrIHRvIGRlZmF1bHRzIik7dGhpcy5hbWluPS0xMDA7dGhpcy5hbWF4PTEwMDt0aGlzLmJtaW49LTEwMDt0aGlzLmJtYXg9MTAwfX0jeShlKXtyZXR1cm4gZT49Ni8yOT9lKiozOjEwOC84NDEqKGUtNC8yOSl9I3EoZSx0LG4sYSl7cmV0dXJuIG4rZSooYS1uKS90fSNyKGUsdCxuLGEscil7bGV0IHM9ZVt0XSxpPWVbdCsxXSxvPWVbdCsyXTtpZighMSE9PW4pe3M9dGhpcy4jcShzLG4sMCwxMDApO2k9dGhpcy4jcShpLG4sdGhpcy5hbWluLHRoaXMuYW1heCk7bz10aGlzLiNxKG8sbix0aGlzLmJtaW4sdGhpcy5ibWF4KX1pPnRoaXMuYW1heD9pPXRoaXMuYW1heDppPHRoaXMuYW1pbiYmKGk9dGhpcy5hbWluKTtvPnRoaXMuYm1heD9vPXRoaXMuYm1heDpvPHRoaXMuYm1pbiYmKG89dGhpcy5ibWluKTtjb25zdCBsPShzKzE2KS8xMTYsZj1sK2kvNTAwLGM9bC1vLzIwMCxoPXRoaXMuWFcqdGhpcy4jeShmKSx1PXRoaXMuWVcqdGhpcy4jeShsKSxtPXRoaXMuWlcqdGhpcy4jeShjKTtsZXQgcCxkLGc7aWYodGhpcy5aVzwxKXtwPTMuMTMzOSpoKy0xLjYxNyp1Ky0uNDkwNiptO2Q9LS45Nzg1KmgrMS45MTYqdSsuMDMzMyptO2c9LjA3MipoKy0uMjI5KnUrMS40MDU3Km19ZWxzZXtwPTMuMjQwNipoKy0xLjUzNzIqdSstLjQ5ODYqbTtkPS0uOTY4OSpoKzEuODc1OCp1Ky4wNDE1Km07Zz0uMDU1NypoKy0uMjA0KnUrMS4wNTcqbX1hW3JdPTI1NSpNYXRoLnNxcnQocCk7YVtyKzFdPTI1NSpNYXRoLnNxcnQoZCk7YVtyKzJdPTI1NSpNYXRoLnNxcnQoZyl9Z2V0UmdiSXRlbShlLHQsbixhKXt0aGlzLiNyKGUsdCwhMSxuLGEpfWdldFJnYkJ1ZmZlcihlLHQsbixhLHIscyxpKXtjb25zdCBvPSgxPDxzKS0xO2ZvcihsZXQgcz0wO3M8bjtzKyspe3RoaXMuI3IoZSx0LG8sYSxyKTt0Kz0zO3IrPTMraX19Z2V0T3V0cHV0TGVuZ3RoKGUsdCl7cmV0dXJuIGUqKDMrdCkvM3wwfWlzRGVmYXVsdERlY29kZShlLHQpe3JldHVybiEwfWdldCB1c2VzWmVyb1RvT25lUmFuZ2UoKXtyZXR1cm4gc2hhZG93KHRoaXMsInVzZXNaZXJvVG9PbmVSYW5nZSIsITEpfX1mdW5jdGlvbiBmZXRjaFN5bmMoZSl7Y29uc3QgdD1uZXcgWE1MSHR0cFJlcXVlc3Q7dC5vcGVuKCJHRVQiLGUsITEpO3QucmVzcG9uc2VUeXBlPSJhcnJheWJ1ZmZlciI7dC5zZW5kKG51bGwpO3JldHVybiB0LnJlc3BvbnNlfWNsYXNzIEljY0NvbG9yU3BhY2UgZXh0ZW5kcyBDb2xvclNwYWNleyN2OyNTO3N0YXRpYyN4PSEwO3N0YXRpYyNBPW51bGw7c3RhdGljI0M9bnVsbDtjb25zdHJ1Y3RvcihlLHQsbil7aWYoIUljY0NvbG9yU3BhY2UuaXNVc2FibGUpdGhyb3cgbmV3IEVycm9yKCJObyBJQ0MgY29sb3Igc3BhY2Ugc3VwcG9ydCIpO3N1cGVyKHQsbik7bGV0IGE7c3dpdGNoKG4pe2Nhc2UgMTphPUNuLkdyYXk4O3RoaXMuI1M9KGUsdCxuKT0+ZnVuY3Rpb24gcWNtc19jb252ZXJ0X29uZShlLHQsbil7dm4ucWNtc19jb252ZXJ0X29uZShlLHQsbil9KHRoaXMuI3YsMjU1KmVbdF0sbik7YnJlYWs7Y2FzZSAzOmE9Q24uUkdCODt0aGlzLiNTPShlLHQsbik9PmZ1bmN0aW9uIHFjbXNfY29udmVydF90aHJlZShlLHQsbixhLHIpe3ZuLnFjbXNfY29udmVydF90aHJlZShlLHQsbixhLHIpfSh0aGlzLiN2LDI1NSplW3RdLDI1NSplW3QrMV0sMjU1KmVbdCsyXSxuKTticmVhaztjYXNlIDQ6YT1Dbi5DTVlLO3RoaXMuI1M9KGUsdCxuKT0+ZnVuY3Rpb24gcWNtc19jb252ZXJ0X2ZvdXIoZSx0LG4sYSxyLHMpe3ZuLnFjbXNfY29udmVydF9mb3VyKGUsdCxuLGEscixzKX0odGhpcy4jdiwyNTUqZVt0XSwyNTUqZVt0KzFdLDI1NSplW3QrMl0sMjU1KmVbdCszXSxuKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgbnVtYmVyIG9mIGNvbXBvbmVudHM6ICR7bn1gKX10aGlzLiN2PWZ1bmN0aW9uIHFjbXNfdHJhbnNmb3JtZXJfZnJvbV9tZW1vcnkoZSx0LG4pe2NvbnN0IGE9cGFzc0FycmF5OFRvV2FzbTAoZSx2bi5fX3diaW5kZ2VuX21hbGxvYykscj1BbjtyZXR1cm4gdm4ucWNtc190cmFuc2Zvcm1lcl9mcm9tX21lbW9yeShhLHIsdCxuKT4+PjB9KGUsYSxJbi5QZXJjZXB0dWFsKTtpZighdGhpcy4jdil0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byBjcmVhdGUgSUNDIGNvbG9yIHNwYWNlIik7SWNjQ29sb3JTcGFjZS4jQ3x8PW5ldyBGaW5hbGl6YXRpb25SZWdpc3RyeShlPT57IWZ1bmN0aW9uIHFjbXNfZHJvcF90cmFuc2Zvcm1lcihlKXt2bi5xY21zX2Ryb3BfdHJhbnNmb3JtZXIoZSl9KGUpfSk7SWNjQ29sb3JTcGFjZS4jQy5yZWdpc3Rlcih0aGlzLHRoaXMuI3YpfWdldFJnYkhleChlLHQpe3RoaXMuI1MoZSx0LCEwKTtyZXR1cm4gUUNNUy5fY3NzQ29sb3J9Z2V0UmdiSXRlbShlLHQsbixhKXtRQ01TLl9kZXN0QnVmZmVyPW47UUNNUy5fZGVzdE9mZnNldD1hO1FDTVMuX2Rlc3RMZW5ndGg9Mzt0aGlzLiNTKGUsdCwhMSk7UUNNUy5fZGVzdEJ1ZmZlcj1udWxsfWdldFJnYkJ1ZmZlcihlLHQsbixhLHIscyxpKXtlPWUuc3ViYXJyYXkodCx0K24qdGhpcy5udW1Db21wcyk7aWYoOCE9PXMpe2NvbnN0IHQ9MjU1LygoMTw8cyktMSk7Zm9yKGxldCBuPTAsYT1lLmxlbmd0aDtuPGE7bisrKWVbbl0qPXR9UUNNUy5fbXVzdEFkZEFscGhhPWkmJmEuYnVmZmVyPT09ZS5idWZmZXI7UUNNUy5fZGVzdEJ1ZmZlcj1hO1FDTVMuX2Rlc3RPZmZzZXQ9cjtRQ01TLl9kZXN0TGVuZ3RoPW4qKDMraSk7IWZ1bmN0aW9uIHFjbXNfY29udmVydF9hcnJheShlLHQpe2NvbnN0IG49cGFzc0FycmF5OFRvV2FzbTAodCx2bi5fX3diaW5kZ2VuX21hbGxvYyksYT1Bbjt2bi5xY21zX2NvbnZlcnRfYXJyYXkoZSxuLGEpfSh0aGlzLiN2LGUpO1FDTVMuX211c3RBZGRBbHBoYT0hMTtRQ01TLl9kZXN0QnVmZmVyPW51bGx9Z2V0T3V0cHV0TGVuZ3RoKGUsdCl7cmV0dXJuIGUvdGhpcy5udW1Db21wcyooMyt0KXwwfXN0YXRpYyBzZXRPcHRpb25zKHt1c2VXYXNtOmUsdXNlV29ya2VyRmV0Y2g6dCx3YXNtVXJsOm59KXtpZih0KXt0aGlzLiN4PWU7dGhpcy4jQT1ufWVsc2UgdGhpcy4jeD0hMX1zdGF0aWMgZ2V0IGlzVXNhYmxlKCl7bGV0IGU9ITE7aWYodGhpcy4jeClpZih0aGlzLiNBKXRyeXt0aGlzLl9tb2R1bGU9ZnVuY3Rpb24gaW5pdFN5bmMoZSl7aWYodm9pZCAwIT09dm4pcmV0dXJuIHZuO3ZvaWQgMCE9PWUmJihPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk9PT1PYmplY3QucHJvdG90eXBlPyh7bW9kdWxlOmV9PWUpOmNvbnNvbGUud2FybigidXNpbmcgZGVwcmVjYXRlZCBwYXJhbWV0ZXJzIGZvciBgaW5pdFN5bmMoKWA7IHBhc3MgYSBzaW5nbGUgb2JqZWN0IGluc3RlYWQiKSk7Y29uc3QgdD1fX3diZ19nZXRfaW1wb3J0cygpO2UgaW5zdGFuY2VvZiBXZWJBc3NlbWJseS5Nb2R1bGV8fChlPW5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoZSkpO3JldHVybiBfX3diZ19maW5hbGl6ZV9pbml0KG5ldyBXZWJBc3NlbWJseS5JbnN0YW5jZShlLHQpLGUpfSh7bW9kdWxlOmZldGNoU3luYyhgJHt0aGlzLiNBfXFjbXNfYmcud2FzbWApfSk7ZT0hIXRoaXMuX21vZHVsZTtRQ01TLl9tZW1vcnk9dGhpcy5fbW9kdWxlLm1lbW9yeTtRQ01TLl9tYWtlSGV4Q29sb3I9VXRpbC5tYWtlSGV4Q29sb3J9Y2F0Y2goZSl7d2FybihgSUNDQmFzZWQgY29sb3Igc3BhY2U6ICIke2V9Ii5gKX1lbHNlIHdhcm4oIk5vIElDQyBjb2xvciBzcGFjZSBzdXBwb3J0IGR1ZSB0byBtaXNzaW5nIGB3YXNtVXJsYCBBUEkgb3B0aW9uIik7cmV0dXJuIHNoYWRvdyh0aGlzLCJpc1VzYWJsZSIsZSl9fWNsYXNzIENteWtJQ0NCYXNlZENTIGV4dGVuZHMgSWNjQ29sb3JTcGFjZXtzdGF0aWMjSTtjb25zdHJ1Y3Rvcigpe3N1cGVyKG5ldyBVaW50OEFycmF5KGZldGNoU3luYyhgJHtDbXlrSUNDQmFzZWRDUy4jSX1DR0FUUzAwMUNvbXBhdC12Mi1taWNyby5pY2NgKSksIkRldmljZUNNWUsiLDQpfXN0YXRpYyBzZXRPcHRpb25zKHtpY2NVcmw6ZX0pe3RoaXMuI0k9ZX1zdGF0aWMgZ2V0IGlzVXNhYmxlKCl7bGV0IGU9ITE7SWNjQ29sb3JTcGFjZS5pc1VzYWJsZSYmKHRoaXMuI0k/ZT0hMDp3YXJuKCJObyBDTVlLIElDQyBwcm9maWxlIHN1cHBvcnQgZHVlIHRvIG1pc3NpbmcgYGljY1VybGAgQVBJIG9wdGlvbiIpKTtyZXR1cm4gc2hhZG93KHRoaXMsImlzVXNhYmxlIixlKX19Y2xhc3MgU3RyZWFtIGV4dGVuZHMgQmFzZVN0cmVhbXtjb25zdHJ1Y3RvcihlLHQsbixhKXtzdXBlcigpO3RoaXMuYnl0ZXM9ZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/ZTpuZXcgVWludDhBcnJheShlKTt0aGlzLnN0YXJ0PXR8fDA7dGhpcy5wb3M9dGhpcy5zdGFydDt0aGlzLmVuZD10K258fHRoaXMuYnl0ZXMubGVuZ3RoO3RoaXMuZGljdD1hfWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5lbmQtdGhpcy5zdGFydH1nZXQgaXNFbXB0eSgpe3JldHVybiAwPT09dGhpcy5sZW5ndGh9Z2V0Qnl0ZSgpe3JldHVybiB0aGlzLnBvcz49dGhpcy5lbmQ/LTE6dGhpcy5ieXRlc1t0aGlzLnBvcysrXX1nZXRCeXRlcyhlKXtjb25zdCB0PXRoaXMuYnl0ZXMsbj10aGlzLnBvcyxhPXRoaXMuZW5kO2lmKCFlKXt0aGlzLnBvcz1hO3JldHVybiB0LnN1YmFycmF5KG4sYSl9bGV0IHI9bitlO3I+YSYmKHI9YSk7dGhpcy5wb3M9cjtyZXR1cm4gdC5zdWJhcnJheShuLHIpfWdldEJ5dGVSYW5nZShlLHQpe2U8MCYmKGU9MCk7dD50aGlzLmVuZCYmKHQ9dGhpcy5lbmQpO3JldHVybiB0aGlzLmJ5dGVzLnN1YmFycmF5KGUsdCl9cmVzZXQoKXt0aGlzLnBvcz10aGlzLnN0YXJ0fW1vdmVTdGFydCgpe3RoaXMuc3RhcnQ9dGhpcy5wb3N9bWFrZVN1YlN0cmVhbShlLHQsbj1udWxsKXtyZXR1cm4gbmV3IFN0cmVhbSh0aGlzLmJ5dGVzLmJ1ZmZlcixlLHQsbil9Y2xvbmUoKXtyZXR1cm4gbmV3IFN0cmVhbSh0aGlzLmJ5dGVzLmJ1ZmZlcix0aGlzLnN0YXJ0LHRoaXMuZW5kLXRoaXMuc3RhcnQsdGhpcy5kaWN0LmNsb25lKCkpfX1jbGFzcyBTdHJpbmdTdHJlYW0gZXh0ZW5kcyBTdHJlYW17Y29uc3RydWN0b3IoZSl7c3VwZXIoc3RyaW5nVG9CeXRlcyhlKSl9fWNsYXNzIE51bGxTdHJlYW0gZXh0ZW5kcyBTdHJlYW17Y29uc3RydWN0b3IoKXtzdXBlcihuZXcgVWludDhBcnJheSgwKSl9fWNsYXNzIENodW5rZWRTdHJlYW0gZXh0ZW5kcyBTdHJlYW17cHJvZ3Jlc3NpdmVEYXRhTGVuZ3RoPTA7X2xhc3RTdWNjZXNzZnVsRW5zdXJlQnl0ZUNodW5rPS0xO19sb2FkZWRDaHVua3M9bmV3IFNldDtjb25zdHJ1Y3RvcihlLHQsbil7c3VwZXIobmV3IFVpbnQ4QXJyYXkoZSksMCxlLG51bGwpO3RoaXMuY2h1bmtTaXplPXQ7dGhpcy5udW1DaHVua3M9TWF0aC5jZWlsKGUvdCk7dGhpcy5tYW5hZ2VyPW59Z2V0TWlzc2luZ0NodW5rcygpe2NvbnN0IGU9W107Zm9yKGxldCB0PTAsbj10aGlzLm51bUNodW5rczt0PG47Kyt0KXRoaXMuX2xvYWRlZENodW5rcy5oYXModCl8fGUucHVzaCh0KTtyZXR1cm4gZX1nZXQgbnVtQ2h1bmtzTG9hZGVkKCl7cmV0dXJuIHRoaXMuX2xvYWRlZENodW5rcy5zaXplfWdldCBpc0RhdGFMb2FkZWQoKXtyZXR1cm4gdGhpcy5udW1DaHVua3NMb2FkZWQ9PT10aGlzLm51bUNodW5rc31vblJlY2VpdmVEYXRhKGUsdCl7Y29uc3Qgbj10aGlzLmNodW5rU2l6ZTtpZihlJW4hPT0wKXRocm93IG5ldyBFcnJvcihgQmFkIGJlZ2luIG9mZnNldDogJHtlfWApO2NvbnN0IGE9ZSt0LmJ5dGVMZW5ndGg7aWYoYSVuIT09MCYmYSE9PXRoaXMuYnl0ZXMubGVuZ3RoKXRocm93IG5ldyBFcnJvcihgQmFkIGVuZCBvZmZzZXQ6ICR7YX1gKTt0aGlzLmJ5dGVzLnNldChuZXcgVWludDhBcnJheSh0KSxlKTtjb25zdCByPU1hdGguZmxvb3IoZS9uKSxzPU1hdGguZmxvb3IoKGEtMSkvbikrMTtmb3IobGV0IGU9cjtlPHM7KytlKXRoaXMuX2xvYWRlZENodW5rcy5hZGQoZSl9b25SZWNlaXZlUHJvZ3Jlc3NpdmVEYXRhKGUpe2xldCB0PXRoaXMucHJvZ3Jlc3NpdmVEYXRhTGVuZ3RoO2NvbnN0IG49TWF0aC5mbG9vcih0L3RoaXMuY2h1bmtTaXplKTt0aGlzLmJ5dGVzLnNldChuZXcgVWludDhBcnJheShlKSx0KTt0Kz1lLmJ5dGVMZW5ndGg7dGhpcy5wcm9ncmVzc2l2ZURhdGFMZW5ndGg9dDtjb25zdCBhPXQ+PXRoaXMuZW5kP3RoaXMubnVtQ2h1bmtzOk1hdGguZmxvb3IodC90aGlzLmNodW5rU2l6ZSk7Zm9yKGxldCBlPW47ZTxhOysrZSl0aGlzLl9sb2FkZWRDaHVua3MuYWRkKGUpfWVuc3VyZUJ5dGUoZSl7aWYoZTx0aGlzLnByb2dyZXNzaXZlRGF0YUxlbmd0aClyZXR1cm47Y29uc3QgdD1NYXRoLmZsb29yKGUvdGhpcy5jaHVua1NpemUpO2lmKCEodD50aGlzLm51bUNodW5rcykmJnQhPT10aGlzLl9sYXN0U3VjY2Vzc2Z1bEVuc3VyZUJ5dGVDaHVuayl7aWYoIXRoaXMuX2xvYWRlZENodW5rcy5oYXModCkpdGhyb3cgbmV3IE1pc3NpbmdEYXRhRXhjZXB0aW9uKGUsZSsxKTt0aGlzLl9sYXN0U3VjY2Vzc2Z1bEVuc3VyZUJ5dGVDaHVuaz10fX1lbnN1cmVSYW5nZShlLHQpe2lmKGU+PXQpcmV0dXJuO2lmKHQ8PXRoaXMucHJvZ3Jlc3NpdmVEYXRhTGVuZ3RoKXJldHVybjtjb25zdCBuPU1hdGguZmxvb3IoZS90aGlzLmNodW5rU2l6ZSk7aWYobj50aGlzLm51bUNodW5rcylyZXR1cm47Y29uc3QgYT1NYXRoLm1pbihNYXRoLmZsb29yKCh0LTEpL3RoaXMuY2h1bmtTaXplKSsxLHRoaXMubnVtQ2h1bmtzKTtmb3IobGV0IHI9bjtyPGE7KytyKWlmKCF0aGlzLl9sb2FkZWRDaHVua3MuaGFzKHIpKXRocm93IG5ldyBNaXNzaW5nRGF0YUV4Y2VwdGlvbihlLHQpfW5leHRFbXB0eUNodW5rKGUpe2NvbnN0IHQ9dGhpcy5udW1DaHVua3M7Zm9yKGxldCBuPTA7bjx0Oysrbil7Y29uc3QgYT0oZStuKSV0O2lmKCF0aGlzLl9sb2FkZWRDaHVua3MuaGFzKGEpKXJldHVybiBhfXJldHVybiBudWxsfWhhc0NodW5rKGUpe3JldHVybiB0aGlzLl9sb2FkZWRDaHVua3MuaGFzKGUpfWdldEJ5dGUoKXtjb25zdCBlPXRoaXMucG9zO2lmKGU+PXRoaXMuZW5kKXJldHVybi0xO2U+PXRoaXMucHJvZ3Jlc3NpdmVEYXRhTGVuZ3RoJiZ0aGlzLmVuc3VyZUJ5dGUoZSk7cmV0dXJuIHRoaXMuYnl0ZXNbdGhpcy5wb3MrK119Z2V0Qnl0ZXMoZSl7Y29uc3QgdD10aGlzLmJ5dGVzLG49dGhpcy5wb3MsYT10aGlzLmVuZDtpZighZSl7YT50aGlzLnByb2dyZXNzaXZlRGF0YUxlbmd0aCYmdGhpcy5lbnN1cmVSYW5nZShuLGEpO3JldHVybiB0LnN1YmFycmF5KG4sYSl9bGV0IHI9bitlO3I+YSYmKHI9YSk7cj50aGlzLnByb2dyZXNzaXZlRGF0YUxlbmd0aCYmdGhpcy5lbnN1cmVSYW5nZShuLHIpO3RoaXMucG9zPXI7cmV0dXJuIHQuc3ViYXJyYXkobixyKX1nZXRCeXRlUmFuZ2UoZSx0KXtlPDAmJihlPTApO3Q+dGhpcy5lbmQmJih0PXRoaXMuZW5kKTt0PnRoaXMucHJvZ3Jlc3NpdmVEYXRhTGVuZ3RoJiZ0aGlzLmVuc3VyZVJhbmdlKGUsdCk7cmV0dXJuIHRoaXMuYnl0ZXMuc3ViYXJyYXkoZSx0KX1tYWtlU3ViU3RyZWFtKGUsdCxuPW51bGwpe3Q/ZSt0PnRoaXMucHJvZ3Jlc3NpdmVEYXRhTGVuZ3RoJiZ0aGlzLmVuc3VyZVJhbmdlKGUsZSt0KTplPj10aGlzLnByb2dyZXNzaXZlRGF0YUxlbmd0aCYmdGhpcy5lbnN1cmVCeXRlKGUpO2Z1bmN0aW9uIENodW5rZWRTdHJlYW1TdWJzdHJlYW0oKXt9Q2h1bmtlZFN0cmVhbVN1YnN0cmVhbS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0aGlzKTtDaHVua2VkU3RyZWFtU3Vic3RyZWFtLnByb3RvdHlwZS5nZXRNaXNzaW5nQ2h1bmtzPWZ1bmN0aW9uKCl7Y29uc3QgZT10aGlzLmNodW5rU2l6ZSx0PU1hdGguZmxvb3IodGhpcy5zdGFydC9lKSxuPU1hdGguZmxvb3IoKHRoaXMuZW5kLTEpL2UpKzEsYT1bXTtmb3IobGV0IGU9dDtlPG47KytlKXRoaXMuX2xvYWRlZENodW5rcy5oYXMoZSl8fGEucHVzaChlKTtyZXR1cm4gYX07T2JqZWN0LmRlZmluZVByb3BlcnR5KENodW5rZWRTdHJlYW1TdWJzdHJlYW0ucHJvdG90eXBlLCJpc0RhdGFMb2FkZWQiLHtnZXQoKXtyZXR1cm4gdGhpcy5udW1DaHVua3NMb2FkZWQ9PT10aGlzLm51bUNodW5rc3x8MD09PXRoaXMuZ2V0TWlzc2luZ0NodW5rcygpLmxlbmd0aH0sY29uZmlndXJhYmxlOiEwfSk7Y29uc3QgYT1uZXcgQ2h1bmtlZFN0cmVhbVN1YnN0cmVhbTthLnBvcz1hLnN0YXJ0PWU7YS5lbmQ9ZSt0fHx0aGlzLmVuZDthLmRpY3Q9bjtyZXR1cm4gYX1nZXRCYXNlU3RyZWFtcygpe3JldHVyblt0aGlzXX19Y2xhc3MgQ2h1bmtlZFN0cmVhbU1hbmFnZXJ7YWJvcnRlZD0hMTtjdXJyUmVxdWVzdElkPTA7X2NodW5rc05lZWRlZEJ5UmVxdWVzdD1uZXcgTWFwO19sb2FkZWRTdHJlYW1DYXBhYmlsaXR5PVByb21pc2Uud2l0aFJlc29sdmVycygpO19wcm9taXNlc0J5UmVxdWVzdD1uZXcgTWFwO19yZXF1ZXN0c0J5Q2h1bms9bmV3IE1hcDtjb25zdHJ1Y3RvcihlLHQpe3RoaXMubGVuZ3RoPXQubGVuZ3RoO3RoaXMuY2h1bmtTaXplPXQucmFuZ2VDaHVua1NpemU7dGhpcy5zdHJlYW09bmV3IENodW5rZWRTdHJlYW0odGhpcy5sZW5ndGgsdGhpcy5jaHVua1NpemUsdGhpcyk7dGhpcy5wZGZTdHJlYW09ZTt0aGlzLmRpc2FibGVBdXRvRmV0Y2g9dC5kaXNhYmxlQXV0b0ZldGNoO3RoaXMubXNnSGFuZGxlcj10Lm1zZ0hhbmRsZXJ9YXN5bmMgc2VuZFJlcXVlc3QoZSx0KXtjb25zdCBuPXRoaXMucGRmU3RyZWFtLmdldFJhbmdlUmVhZGVyKGUsdCk7bGV0IGE9W107Zm9yKDs7KXtjb25zdHt2YWx1ZTplLGRvbmU6dH09YXdhaXQgbi5yZWFkKCk7aWYodGhpcy5hYm9ydGVkKXthPW51bGw7cmV0dXJufWlmKHQpYnJlYWs7YS5wdXNoKGUpfWlmKDA9PT1hLmxlbmd0aCYmdGhpcy5kaXNhYmxlQXV0b0ZldGNoKXJldHVybjtjb25zdCByPWFycmF5QnVmZmVyc1RvQnl0ZXMoYSk7YT1udWxsO3RoaXMub25SZWNlaXZlRGF0YSh7Y2h1bms6ci5idWZmZXIsYmVnaW46ZX0pfXJlcXVlc3RBbGxDaHVua3MoZT0hMSl7aWYoIWUpe2NvbnN0IGU9dGhpcy5zdHJlYW0uZ2V0TWlzc2luZ0NodW5rcygpO3RoaXMuX3JlcXVlc3RDaHVua3MoZSl9cmV0dXJuIHRoaXMuX2xvYWRlZFN0cmVhbUNhcGFiaWxpdHkucHJvbWlzZX1fcmVxdWVzdENodW5rcyhlKXtjb25zdCB0PXRoaXMuY3VyclJlcXVlc3RJZCsrLG49bmV3IFNldDt0aGlzLl9jaHVua3NOZWVkZWRCeVJlcXVlc3Quc2V0KHQsbik7Zm9yKGNvbnN0IHQgb2YgZSl0aGlzLnN0cmVhbS5oYXNDaHVuayh0KXx8bi5hZGQodCk7aWYoMD09PW4uc2l6ZSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7Y29uc3QgYT1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKTt0aGlzLl9wcm9taXNlc0J5UmVxdWVzdC5zZXQodCxhKTtjb25zdCByPVtdO2Zvcihjb25zdCBlIG9mIG4pe2xldCBuPXRoaXMuX3JlcXVlc3RzQnlDaHVuay5nZXQoZSk7aWYoIW4pe249W107dGhpcy5fcmVxdWVzdHNCeUNodW5rLnNldChlLG4pO3IucHVzaChlKX1uLnB1c2godCl9aWYoci5sZW5ndGg+MCl7Y29uc3QgZT10aGlzLmdyb3VwQ2h1bmtzKHIpO2Zvcihjb25zdCB0IG9mIGUpe2NvbnN0IGU9dC5iZWdpbkNodW5rKnRoaXMuY2h1bmtTaXplLG49TWF0aC5taW4odC5lbmRDaHVuayp0aGlzLmNodW5rU2l6ZSx0aGlzLmxlbmd0aCk7dGhpcy5zZW5kUmVxdWVzdChlLG4pLmNhdGNoKGEucmVqZWN0KX19cmV0dXJuIGEucHJvbWlzZS5jYXRjaChlPT57aWYoIXRoaXMuYWJvcnRlZCl0aHJvdyBlfSl9Z2V0U3RyZWFtKCl7cmV0dXJuIHRoaXMuc3RyZWFtfXJlcXVlc3RSYW5nZShlLHQpe3Q9TWF0aC5taW4odCx0aGlzLmxlbmd0aCk7Y29uc3Qgbj10aGlzLmdldEJlZ2luQ2h1bmsoZSksYT10aGlzLmdldEVuZENodW5rKHQpLHI9W107Zm9yKGxldCBlPW47ZTxhOysrZSlyLnB1c2goZSk7cmV0dXJuIHRoaXMuX3JlcXVlc3RDaHVua3Mocil9cmVxdWVzdFJhbmdlcyhlPVtdKXtjb25zdCB0PVtdO2Zvcihjb25zdCBuIG9mIGUpe2NvbnN0IGU9dGhpcy5nZXRCZWdpbkNodW5rKG4uYmVnaW4pLGE9dGhpcy5nZXRFbmRDaHVuayhuLmVuZCk7Zm9yKGxldCBuPWU7bjxhOysrbil0LmluY2x1ZGVzKG4pfHx0LnB1c2gobil9dC5zb3J0KChlLHQpPT5lLXQpO3JldHVybiB0aGlzLl9yZXF1ZXN0Q2h1bmtzKHQpfWdyb3VwQ2h1bmtzKGUpe2NvbnN0IHQ9W107bGV0IG49LTEsYT0tMTtmb3IobGV0IHI9MCxzPWUubGVuZ3RoO3I8czsrK3Ipe2NvbnN0IHM9ZVtyXTtuPDAmJihuPXMpO2lmKGE+PTAmJmErMSE9PXMpe3QucHVzaCh7YmVnaW5DaHVuazpuLGVuZENodW5rOmErMX0pO249c31yKzE9PT1lLmxlbmd0aCYmdC5wdXNoKHtiZWdpbkNodW5rOm4sZW5kQ2h1bms6cysxfSk7YT1zfXJldHVybiB0fW9uUmVjZWl2ZURhdGEoZSl7Y29uc3R7Y2h1bmtTaXplOnQsbGVuZ3RoOm4sc3RyZWFtOmF9PXRoaXMscj1lLmNodW5rLHM9dm9pZCAwPT09ZS5iZWdpbixpPXM/YS5wcm9ncmVzc2l2ZURhdGFMZW5ndGg6ZS5iZWdpbixvPWkrci5ieXRlTGVuZ3RoLGw9TWF0aC5mbG9vcihpL3QpLGY9bzxuP01hdGguZmxvb3Ioby90KTpNYXRoLmNlaWwoby90KTtzP2Eub25SZWNlaXZlUHJvZ3Jlc3NpdmVEYXRhKHIpOmEub25SZWNlaXZlRGF0YShpLHIpO2EuaXNEYXRhTG9hZGVkJiZ0aGlzLl9sb2FkZWRTdHJlYW1DYXBhYmlsaXR5LnJlc29sdmUoYSk7Y29uc3QgYz1bXTtmb3IobGV0IGU9bDtlPGY7KytlKXtjb25zdCB0PXRoaXMuX3JlcXVlc3RzQnlDaHVuay5nZXQoZSk7aWYodCl7dGhpcy5fcmVxdWVzdHNCeUNodW5rLmRlbGV0ZShlKTtmb3IoY29uc3QgbiBvZiB0KXtjb25zdCB0PXRoaXMuX2NodW5rc05lZWRlZEJ5UmVxdWVzdC5nZXQobik7dC5oYXMoZSkmJnQuZGVsZXRlKGUpO3Quc2l6ZT4wfHxjLnB1c2gobil9fX1pZighdGhpcy5kaXNhYmxlQXV0b0ZldGNoJiYwPT09dGhpcy5fcmVxdWVzdHNCeUNodW5rLnNpemUpe2xldCBlO2lmKDE9PT1hLm51bUNodW5rc0xvYWRlZCl7Y29uc3QgdD1hLm51bUNodW5rcy0xO2EuaGFzQ2h1bmsodCl8fChlPXQpfWVsc2UgZT1hLm5leHRFbXB0eUNodW5rKGYpO051bWJlci5pc0ludGVnZXIoZSkmJnRoaXMuX3JlcXVlc3RDaHVua3MoW2VdKX1mb3IoY29uc3QgZSBvZiBjKXtjb25zdCB0PXRoaXMuX3Byb21pc2VzQnlSZXF1ZXN0LmdldChlKTt0aGlzLl9wcm9taXNlc0J5UmVxdWVzdC5kZWxldGUoZSk7dC5yZXNvbHZlKCl9dGhpcy5tc2dIYW5kbGVyLnNlbmQoIkRvY1Byb2dyZXNzIix7bG9hZGVkOk1hdGhDbGFtcChhLm51bUNodW5rc0xvYWRlZCp0LGEucHJvZ3Jlc3NpdmVEYXRhTGVuZ3RoLG4pLHRvdGFsOm59KX1vbkVycm9yKGUpe3RoaXMuX2xvYWRlZFN0cmVhbUNhcGFiaWxpdHkucmVqZWN0KGUpfWdldEJlZ2luQ2h1bmsoZSl7cmV0dXJuIE1hdGguZmxvb3IoZS90aGlzLmNodW5rU2l6ZSl9Z2V0RW5kQ2h1bmsoZSl7cmV0dXJuIE1hdGguZmxvb3IoKGUtMSkvdGhpcy5jaHVua1NpemUpKzF9YWJvcnQoZSl7dGhpcy5hYm9ydGVkPSEwO3RoaXMucGRmU3RyZWFtPy5jYW5jZWxBbGxSZXF1ZXN0cyhlKTtmb3IoY29uc3QgdCBvZiB0aGlzLl9wcm9taXNlc0J5UmVxdWVzdC52YWx1ZXMoKSl0LnJlamVjdChlKX19ZnVuY3Rpb24gY29udmVydFRvUkdCQShlKXtzd2l0Y2goZS5raW5kKXtjYXNlIFQ6cmV0dXJuIGNvbnZlcnRCbGFja0FuZFdoaXRlVG9SR0JBKGUpO2Nhc2UgTzpyZXR1cm4gZnVuY3Rpb24gY29udmVydFJHQlRvUkdCQSh7c3JjOmUsc3JjUG9zOnQ9MCxkZXN0Om4sZGVzdFBvczphPTAsd2lkdGg6cixoZWlnaHQ6c30pe2xldCBpPTA7Y29uc3Qgbz1yKnMqMyxsPW8+PjIsZj1uZXcgVWludDMyQXJyYXkoZS5idWZmZXIsdCxsKSxjPUZlYXR1cmVUZXN0LmlzTGl0dGxlRW5kaWFuPzQyNzgxOTAwODA6MjU1O2lmKEZlYXR1cmVUZXN0LmlzTGl0dGxlRW5kaWFuKXtmb3IoO2k8bC0yO2krPTMsYSs9NCl7Y29uc3QgZT1mW2ldLHQ9ZltpKzFdLHI9ZltpKzJdO25bYV09ZXxjO25bYSsxXT1lPj4+MjR8dDw8OHxjO25bYSsyXT10Pj4+MTZ8cjw8MTZ8YztuW2ErM109cj4+Pjh8Y31mb3IobGV0IHI9NCppLHM9dCtvO3I8cztyKz0zKW5bYSsrXT1lW3JdfGVbcisxXTw8OHxlW3IrMl08PDE2fGN9ZWxzZXtmb3IoO2k8bC0yO2krPTMsYSs9NCl7Y29uc3QgZT1mW2ldLHQ9ZltpKzFdLHI9ZltpKzJdO25bYV09ZXxjO25bYSsxXT1lPDwyNHx0Pj4+OHxjO25bYSsyXT10PDwxNnxyPj4+MTZ8YztuW2ErM109cjw8OHxjfWZvcihsZXQgcj00Kmkscz10K287cjxzO3IrPTMpblthKytdPWVbcl08PDI0fGVbcisxXTw8MTZ8ZVtyKzJdPDw4fGN9cmV0dXJue3NyY1Bvczp0K28sZGVzdFBvczphfX0oZSl9cmV0dXJuIG51bGx9ZnVuY3Rpb24gY29udmVydEJsYWNrQW5kV2hpdGVUb1JHQkEoe3NyYzplLHNyY1Bvczp0PTAsZGVzdDpuLHdpZHRoOmEsaGVpZ2h0OnIsbm9uQmxhY2tDb2xvcjpzPTQyOTQ5NjcyOTUsaW52ZXJzZURlY29kZTppPSExfSl7Y29uc3Qgbz1GZWF0dXJlVGVzdC5pc0xpdHRsZUVuZGlhbj80Mjc4MTkwMDgwOjI1NSxbbCxmXT1pP1tzLG9dOltvLHNdLGM9YT4+MyxoPTcmYSx1PWxeZixtPWUubGVuZ3RoO249bmV3IFVpbnQzMkFycmF5KG4uYnVmZmVyKTtsZXQgcD0wO2ZvcihsZXQgYT0wO2E8cjsrK2Epe2Zvcihjb25zdCBhPXQrYzt0PGE7Kyt0LHArPTgpe2NvbnN0IGE9ZVt0XTtuW3BdPWxeLShhPj43JjEpJnU7bltwKzFdPWxeLShhPj42JjEpJnU7bltwKzJdPWxeLShhPj41JjEpJnU7bltwKzNdPWxeLShhPj40JjEpJnU7bltwKzRdPWxeLShhPj4zJjEpJnU7bltwKzVdPWxeLShhPj4yJjEpJnU7bltwKzZdPWxeLShhPj4xJjEpJnU7bltwKzddPWxeLSgxJmEpJnV9aWYoMD09PWgpY29udGludWU7Y29uc3QgYT10PG0/ZVt0KytdOjI1NTtmb3IobGV0IGU9MDtlPGg7KytlLCsrcCluW3BdPWxeLShhPj43LWUmMSkmdX1yZXR1cm57c3JjUG9zOnQsZGVzdFBvczpwfX1jbGFzcyBJbWFnZVJlc2l6ZXJ7c3RhdGljI0Y9MjA0ODtzdGF0aWMjVD1GZWF0dXJlVGVzdC5pc0ltYWdlRGVjb2RlclN1cHBvcnRlZDtjb25zdHJ1Y3RvcihlLHQpe3RoaXMuX2ltZ0RhdGE9ZTt0aGlzLl9pc01hc2s9dH1zdGF0aWMgZ2V0IGNhblVzZUltYWdlRGVjb2Rlcigpe3JldHVybiBzaGFkb3codGhpcywiY2FuVXNlSW1hZ2VEZWNvZGVyIix0aGlzLiNUP0ltYWdlRGVjb2Rlci5pc1R5cGVTdXBwb3J0ZWQoImltYWdlL2JtcCIpOlByb21pc2UucmVzb2x2ZSghMSkpfXN0YXRpYyBuZWVkc1RvQmVSZXNpemVkKGUsdCl7aWYoZTw9dGhpcy4jRiYmdDw9dGhpcy4jRilyZXR1cm4hMTtjb25zdHtNQVhfRElNOm59PXRoaXM7aWYoZT5ufHx0Pm4pcmV0dXJuITA7Y29uc3QgYT1lKnQ7aWYodGhpcy5faGFzTWF4QXJlYSlyZXR1cm4gYT50aGlzLk1BWF9BUkVBO2lmKGE8dGhpcy4jRioqMilyZXR1cm4hMTtpZih0aGlzLl9hcmVHb29kRGltcyhlLHQpKXt0aGlzLiNGPU1hdGgubWF4KHRoaXMuI0YsTWF0aC5mbG9vcihNYXRoLnNxcnQoZSp0KSkpO3JldHVybiExfXRoaXMuI0Y9dGhpcy5fZ3Vlc3NNYXgodGhpcy4jRixuLDEyOCwwKTtyZXR1cm4gYT4odGhpcy5NQVhfQVJFQT10aGlzLiNGKioyKX1zdGF0aWMgZ2V0UmVkdWNlUG93ZXJGb3JKUFgoZSx0LG4pe2NvbnN0IGE9ZSp0LHI9MioqMzAvKDQqbik7aWYoIXRoaXMubmVlZHNUb0JlUmVzaXplZChlLHQpKXJldHVybiBhPnI/TWF0aC5jZWlsKE1hdGgubG9nMihhL3IpKTowO2NvbnN0e01BWF9ESU06cyxNQVhfQVJFQTppfT10aGlzLG89TWF0aC5tYXgoZS9zLHQvcyxNYXRoLnNxcnQoYS9NYXRoLm1pbihyLGkpKSk7cmV0dXJuIE1hdGguY2VpbChNYXRoLmxvZzIobykpfXN0YXRpYyBnZXQgTUFYX0RJTSgpe3JldHVybiBzaGFkb3codGhpcywiTUFYX0RJTSIsdGhpcy5fZ3Vlc3NNYXgoMjA0OCwzMjc2OCwwLDEpKX1zdGF0aWMgZ2V0IE1BWF9BUkVBKCl7dGhpcy5faGFzTWF4QXJlYT0hMDtyZXR1cm4gc2hhZG93KHRoaXMsIk1BWF9BUkVBIix0aGlzLl9ndWVzc01heCh0aGlzLiNGLHRoaXMuTUFYX0RJTSwxMjgsMCkqKjIpfXN0YXRpYyBzZXQgTUFYX0FSRUEoZSl7aWYoZT49MCl7dGhpcy5faGFzTWF4QXJlYT0hMDtzaGFkb3codGhpcywiTUFYX0FSRUEiLGUpfX1zdGF0aWMgc2V0T3B0aW9ucyh7Y2FudmFzTWF4QXJlYUluQnl0ZXM6ZT0tMSxpc0ltYWdlRGVjb2RlclN1cHBvcnRlZDp0PSExfSl7dGhpcy5faGFzTWF4QXJlYXx8KHRoaXMuTUFYX0FSRUE9ZT4+Mik7dGhpcy4jVD10fXN0YXRpYyBfYXJlR29vZERpbXMoZSx0KXt0cnl7Y29uc3Qgbj1uZXcgT2Zmc2NyZWVuQ2FudmFzKGUsdCksYT1uLmdldENvbnRleHQoIjJkIik7YS5maWxsUmVjdCgwLDAsMSwxKTtjb25zdCByPWEuZ2V0SW1hZ2VEYXRhKDAsMCwxLDEpLmRhdGFbM107bi53aWR0aD1uLmhlaWdodD0xO3JldHVybiAwIT09cn1jYXRjaHtyZXR1cm4hMX19c3RhdGljIF9ndWVzc01heChlLHQsbixhKXtmb3IoO2UrbisxPHQ7KXtjb25zdCBuPU1hdGguZmxvb3IoKGUrdCkvMikscj1hfHxuO3RoaXMuX2FyZUdvb2REaW1zKG4scik/ZT1uOnQ9bn1yZXR1cm4gZX1zdGF0aWMgYXN5bmMgY3JlYXRlSW1hZ2UoZSx0PSExKXtyZXR1cm4gbmV3IEltYWdlUmVzaXplcihlLHQpLl9jcmVhdGVJbWFnZSgpfWFzeW5jIF9jcmVhdGVJbWFnZSgpe2NvbnN0e19pbWdEYXRhOmV9PXRoaXMse3dpZHRoOnQsaGVpZ2h0Om59PWU7aWYodCpuKjQ+Ym4pe2NvbnN0IGU9dGhpcy4jTygpO2lmKGUpcmV0dXJuIGV9Y29uc3QgYT10aGlzLl9lbmNvZGVCTVAoKTtsZXQgcixzO2lmKGF3YWl0IEltYWdlUmVzaXplci5jYW5Vc2VJbWFnZURlY29kZXIpe3I9bmV3IEltYWdlRGVjb2Rlcih7ZGF0YTphLHR5cGU6ImltYWdlL2JtcCIscHJlZmVyQW5pbWF0aW9uOiExLHRyYW5zZmVyOlthLmJ1ZmZlcl19KTtzPXIuZGVjb2RlKCkuY2F0Y2goZT0+e3dhcm4oYEJNUCBpbWFnZSBkZWNvZGluZyBmYWlsZWQ6ICR7ZX1gKTtyZXR1cm4gY3JlYXRlSW1hZ2VCaXRtYXAobmV3IEJsb2IoW3RoaXMuX2VuY29kZUJNUCgpLmJ1ZmZlcl0se3R5cGU6ImltYWdlL2JtcCJ9KSl9KS5maW5hbGx5KCgpPT57ci5jbG9zZSgpfSl9ZWxzZSBzPWNyZWF0ZUltYWdlQml0bWFwKG5ldyBCbG9iKFthLmJ1ZmZlcl0se3R5cGU6ImltYWdlL2JtcCJ9KSk7Y29uc3R7TUFYX0FSRUE6aSxNQVhfRElNOm99PUltYWdlUmVzaXplcixsPU1hdGgubWF4KHQvbyxuL28sTWF0aC5zcXJ0KHQqbi9pKSksZj1NYXRoLm1heChsLDIpLGM9TWF0aC5yb3VuZCgxMCoobCsxLjI1KSkvMTAvZixoPU1hdGguZmxvb3IoTWF0aC5sb2cyKGMpKSx1PW5ldyBBcnJheShoKzIpLmZpbGwoMik7dVswXT1mO3Uuc3BsaWNlKC0xLDEsYy8oMTw8aCkpO2xldCBtPXQscD1uO2NvbnN0IGQ9YXdhaXQgcztsZXQgZz1kLmltYWdlfHxkO2Zvcihjb25zdCBlIG9mIHUpe2NvbnN0IHQ9bSxuPXA7bT1NYXRoLmZsb29yKG0vZSktMTtwPU1hdGguZmxvb3IocC9lKS0xO2NvbnN0IGE9bmV3IE9mZnNjcmVlbkNhbnZhcyhtLHApO2EuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UoZywwLDAsdCxuLDAsMCxtLHApO2cuY2xvc2UoKTtnPWEudHJhbnNmZXJUb0ltYWdlQml0bWFwKCl9ZS5kYXRhPW51bGw7ZS5iaXRtYXA9ZztlLndpZHRoPW07ZS5oZWlnaHQ9cDtyZXR1cm4gZX0jTygpe2NvbnN0e19pbWdEYXRhOmV9PXRoaXMse2RhdGE6dCx3aWR0aDpuLGhlaWdodDphLGtpbmQ6cn09ZSxzPW4qYSo0LGk9TWF0aC5jZWlsKE1hdGgubG9nMihzL2JuKSksbz1uPj5pLGw9YT4+aTtsZXQgZixjPWE7dHJ5e2Y9bmV3IFVpbnQ4QXJyYXkocyl9Y2F0Y2h7bGV0IGU9TWF0aC5mbG9vcihNYXRoLmxvZzIocysxKSk7Zm9yKDs7KXRyeXtmPW5ldyBVaW50OEFycmF5KDIqKmUtMSk7YnJlYWt9Y2F0Y2h7ZS09MX1jPU1hdGguZmxvb3IoKDIqKmUtMSkvKDQqbikpO2NvbnN0IHQ9bipjKjQ7dDxmLmxlbmd0aCYmKGY9bmV3IFVpbnQ4QXJyYXkodCkpfWNvbnN0IGg9bmV3IFVpbnQzMkFycmF5KGYuYnVmZmVyKSx1PW5ldyBVaW50MzJBcnJheShvKmwpO2xldCBtPTAscD0wO2NvbnN0IGQ9TWF0aC5jZWlsKGEvYyksZz1hJWM9PT0wP2E6YSVjO2ZvcihsZXQgZT0wO2U8ZDtlKyspe2NvbnN0IGE9ZTxkLTE/YzpnOyh7c3JjUG9zOm19PWNvbnZlcnRUb1JHQkEoe2tpbmQ6cixzcmM6dCxkZXN0Omgsd2lkdGg6bixoZWlnaHQ6YSxpbnZlcnNlRGVjb2RlOnRoaXMuX2lzTWFzayxzcmNQb3M6bX0pKTtmb3IobGV0IGU9MCx0PWE+Pmk7ZTx0O2UrKyl7Y29uc3QgdD1oLnN1YmFycmF5KChlPDxpKSpuKTtmb3IobGV0IGU9MDtlPG87ZSsrKXVbcCsrXT10W2U8PGldfX1pZihJbWFnZVJlc2l6ZXIubmVlZHNUb0JlUmVzaXplZChvLGwpKXtlLmRhdGE9dTtlLndpZHRoPW87ZS5oZWlnaHQ9bDtlLmtpbmQ9UjtyZXR1cm4gbnVsbH1jb25zdCBiPW5ldyBPZmZzY3JlZW5DYW52YXMobyxsKTtiLmdldENvbnRleHQoIjJkIix7d2lsbFJlYWRGcmVxdWVudGx5OiEwfSkucHV0SW1hZ2VEYXRhKG5ldyBJbWFnZURhdGEobmV3IFVpbnQ4Q2xhbXBlZEFycmF5KHUuYnVmZmVyKSxvLGwpLDAsMCk7ZS5kYXRhPW51bGw7ZS5iaXRtYXA9Yi50cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKTtlLndpZHRoPW87ZS5oZWlnaHQ9bDtyZXR1cm4gZX1fZW5jb2RlQk1QKCl7Y29uc3R7d2lkdGg6ZSxoZWlnaHQ6dCxraW5kOm59PXRoaXMuX2ltZ0RhdGE7bGV0IGEscj10aGlzLl9pbWdEYXRhLmRhdGEscz1uZXcgVWludDhBcnJheSgwKSxpPXMsbz0wO3N3aXRjaChuKXtjYXNlIFQ6e2E9MTtzPW5ldyBVaW50OEFycmF5KHRoaXMuX2lzTWFzaz9bMjU1LDI1NSwyNTUsMjU1LDAsMCwwLDBdOlswLDAsMCwwLDI1NSwyNTUsMjU1LDI1NV0pO2NvbnN0IG49ZSs3Pj4zLGk9biszJi00O2lmKG4hPT1pKXtjb25zdCBlPW5ldyBVaW50OEFycmF5KGkqdCk7bGV0IGE9MDtmb3IobGV0IHM9MCxvPXQqbjtzPG87cys9bixhKz1pKWUuc2V0KHIuc3ViYXJyYXkocyxzK24pLGEpO3I9ZX1icmVha31jYXNlIE86YT0yNDtpZigzJmUpe2NvbnN0IG49MyplLGE9biszJi00LHM9YS1uLGk9bmV3IFVpbnQ4QXJyYXkoYSp0KTtsZXQgbz0wO2ZvcihsZXQgZT0wLGE9dCpuO2U8YTtlKz1uKXtjb25zdCB0PXIuc3ViYXJyYXkoZSxlK24pO2ZvcihsZXQgZT0wO2U8bjtlKz0zKXtpW28rK109dFtlKzJdO2lbbysrXT10W2UrMV07aVtvKytdPXRbZV19bys9c31yPWl9ZWxzZSBmb3IobGV0IGU9MCx0PXIubGVuZ3RoO2U8dDtlKz0zKXtjb25zdCB0PXJbZV07cltlXT1yW2UrMl07cltlKzJdPXR9YnJlYWs7Y2FzZSBSOmE9MzI7bz0zO2k9bmV3IFVpbnQ4QXJyYXkoNjgpO2NvbnN0IG49bmV3IERhdGFWaWV3KGkuYnVmZmVyKTtpZihGZWF0dXJlVGVzdC5pc0xpdHRsZUVuZGlhbil7bi5zZXRVaW50MzIoMCwyNTUsITApO24uc2V0VWludDMyKDQsNjUyODAsITApO24uc2V0VWludDMyKDgsMTY3MTE2ODAsITApO24uc2V0VWludDMyKDEyLDQyNzgxOTAwODAsITApfWVsc2V7bi5zZXRVaW50MzIoMCw0Mjc4MTkwMDgwLCEwKTtuLnNldFVpbnQzMig0LDE2NzExNjgwLCEwKTtuLnNldFVpbnQzMig4LDY1MjgwLCEwKTtuLnNldFVpbnQzMigxMiwyNTUsITApfWJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGZvcm1hdCIpfWxldCBsPTA7Y29uc3QgZj00MCtpLmxlbmd0aCxjPTE0K2Yrcy5sZW5ndGgrci5sZW5ndGgsaD1uZXcgVWludDhBcnJheShjKSx1PW5ldyBEYXRhVmlldyhoLmJ1ZmZlcik7dS5zZXRVaW50MTYobCwxOTc3OCwhMCk7bCs9Mjt1LnNldFVpbnQzMihsLGMsITApO2wrPTQ7dS5zZXRVaW50MzIobCwwLCEwKTtsKz00O3Uuc2V0VWludDMyKGwsMTQrZitzLmxlbmd0aCwhMCk7bCs9NDt1LnNldFVpbnQzMihsLGYsITApO2wrPTQ7dS5zZXRJbnQzMihsLGUsITApO2wrPTQ7dS5zZXRJbnQzMihsLC10LCEwKTtsKz00O3Uuc2V0VWludDE2KGwsMSwhMCk7bCs9Mjt1LnNldFVpbnQxNihsLGEsITApO2wrPTI7dS5zZXRVaW50MzIobCxvLCEwKTtsKz00O3Uuc2V0VWludDMyKGwsMCwhMCk7bCs9NDt1LnNldEludDMyKGwsMCwhMCk7bCs9NDt1LnNldEludDMyKGwsMCwhMCk7bCs9NDt1LnNldFVpbnQzMihsLHMubGVuZ3RoLzQsITApO2wrPTQ7dS5zZXRVaW50MzIobCwwLCEwKTtsKz00O2guc2V0KGksbCk7bCs9aS5sZW5ndGg7aC5zZXQocyxsKTtsKz1zLmxlbmd0aDtoLnNldChyLGwpO3JldHVybiBofX1jb25zdCBGbj1hc3luYyBmdW5jdGlvbiBKQmlnMihlPXt9KXt2YXIgdD1lLHF1aXRfPShlLHQpPT57dGhyb3cgdH0sbj1pbXBvcnQubWV0YS51cmw7dHJ5e25ldyBVUkwoIi4iLG4pLmhyZWZ9Y2F0Y2h7fTA7Y29uc29sZS5sb2cuYmluZChjb25zb2xlKTt2YXIgYSxyLHMsaSxvLGw9Y29uc29sZS5lcnJvci5iaW5kKGNvbnNvbGUpLGY9ITEsYz0hMTtmdW5jdGlvbiB1cGRhdGVNZW1vcnlWaWV3cygpe3ZhciBlPXUuYnVmZmVyO2k9bmV3IEludDhBcnJheShlKTtuZXcgSW50MTZBcnJheShlKTtvPW5ldyBVaW50OEFycmF5KGUpO25ldyBVaW50MTZBcnJheShlKTtuZXcgSW50MzJBcnJheShlKTtuZXcgVWludDMyQXJyYXkoZSk7bmV3IEZsb2F0MzJBcnJheShlKTtuZXcgRmxvYXQ2NEFycmF5KGUpO25ldyBCaWdJbnQ2NEFycmF5KGUpO25ldyBCaWdVaW50NjRBcnJheShlKX1jbGFzcyBFeGl0U3RhdHVze25hbWU9IkV4aXRTdGF0dXMiO2NvbnN0cnVjdG9yKGUpe3RoaXMubWVzc2FnZT1gUHJvZ3JhbSB0ZXJtaW5hdGVkIHdpdGggZXhpdCgke2V9KWA7dGhpcy5zdGF0dXM9ZX19dmFyIGgsdSxjYWxsUnVudGltZUNhbGxiYWNrcz1lPT57Zm9yKDtlLmxlbmd0aD4wOyllLnNoaWZ0KCkodCl9LG09W10sYWRkT25Qb3N0UnVuPWU9Pm0ucHVzaChlKSxwPVtdLGFkZE9uUHJlUnVuPWU9PnAucHVzaChlKSxkPSEwLGc9MCxiPXt9LGhhbmRsZUV4Y2VwdGlvbj1lPT57aWYoZSBpbnN0YW5jZW9mIEV4aXRTdGF0dXN8fCJ1bndpbmQiPT1lKXJldHVybiBhO3F1aXRfKDAsZSl9LGtlZXBSdW50aW1lQWxpdmU9KCk9PmR8fGc+MCxfcHJvY19leGl0PWU9PnthPWU7aWYoIWtlZXBSdW50aW1lQWxpdmUoKSl7dC5vbkV4aXQ/LihlKTtmPSEwfXF1aXRfKDAsbmV3IEV4aXRTdGF0dXMoZSkpfSxfZXhpdD0oZSx0KT0+e2E9ZTtfcHJvY19leGl0KGUpfSxjYWxsVXNlckNhbGxiYWNrPWU9PntpZighZil0cnl7cmV0dXJuIGUoKX1jYXRjaChlKXtoYW5kbGVFeGNlcHRpb24oZSl9ZmluYWxseXsoKCk9PntpZigha2VlcFJ1bnRpbWVBbGl2ZSgpKXRyeXtfZXhpdChhKX1jYXRjaChlKXtoYW5kbGVFeGNlcHRpb24oZSl9fSkoKX19LGFsaWduTWVtb3J5PShlLHQpPT5NYXRoLmNlaWwoZS90KSp0LGdyb3dNZW1vcnk9ZT0+e3ZhciB0PShlLXUuYnVmZmVyLmJ5dGVMZW5ndGgrNjU1MzUpLzY1NTM2fDA7dHJ5e3UuZ3Jvdyh0KTt1cGRhdGVNZW1vcnlWaWV3cygpO3JldHVybiAxfWNhdGNoKGUpe319O3Qubm9FeGl0UnVudGltZSYmKGQ9dC5ub0V4aXRSdW50aW1lKTt0LnByaW50JiZ0LnByaW50O3QucHJpbnRFcnImJihsPXQucHJpbnRFcnIpO3Qud2FzbUJpbmFyeSYmdC53YXNtQmluYXJ5O3QuYXJndW1lbnRzJiZ0LmFyZ3VtZW50czt0LnRoaXNQcm9ncmFtJiZ0LnRoaXNQcm9ncmFtO2lmKHQucHJlSW5pdCl7ImZ1bmN0aW9uIj09dHlwZW9mIHQucHJlSW5pdCYmKHQucHJlSW5pdD1bdC5wcmVJbml0XSk7Zm9yKDt0LnByZUluaXQubGVuZ3RoPjA7KXQucHJlSW5pdC5zaGlmdCgpKCl9dC53cml0ZUFycmF5VG9NZW1vcnk9KGUsdCk9PntpLnNldChlLHQpfTt2YXIgdyxqPXtlOigpPT5mdW5jdGlvbiBhYm9ydChlKXt0Lm9uQWJvcnQ/LihlKTtsKGU9IkFib3J0ZWQoIitlKyIpIik7Zj0hMDtlKz0iLiBCdWlsZCB3aXRoIC1zQVNTRVJUSU9OUyBmb3IgbW9yZSBpbmZvLiI7dmFyIG49bmV3IFdlYkFzc2VtYmx5LlJ1bnRpbWVFcnJvcihlKTtzPy4obik7dGhyb3cgbn0oIiIpLGI6KCk9PntkPSExO2c9MH0sYzooZSx0KT0+e2lmKGJbZV0pe2NsZWFyVGltZW91dChiW2VdLmlkKTtkZWxldGUgYltlXX1pZighdClyZXR1cm4gMDt2YXIgbj1zZXRUaW1lb3V0KCgpPT57ZGVsZXRlIGJbZV07Y2FsbFVzZXJDYWxsYmFjaygoKT0+aChlLHBlcmZvcm1hbmNlLm5vdygpKSl9LHQpO2JbZV09e2lkOm4sdGltZW91dF9tczp0fTtyZXR1cm4gMH0sZzpmdW5jdGlvbiBfY3JlYXRlSW1hZ2VEYXRhKGUpe3QuaW1hZ2VEYXRhPW5ldyBVaW50OEFycmF5KGUpfSxkOmU9Pnt2YXIgdD1vLmxlbmd0aCxuPTIxNDc0ODM2NDg7aWYoKGU+Pj49MCk+bilyZXR1cm4hMTtmb3IodmFyIGE9MTthPD00O2EqPTIpe3ZhciByPXQqKDErLjIvYSk7cj1NYXRoLm1pbihyLGUrMTAwNjYzMjk2KTt2YXIgcz1NYXRoLm1pbihuLGFsaWduTWVtb3J5KE1hdGgubWF4KGUsciksNjU1MzYpKTtpZihncm93TWVtb3J5KHMpKXJldHVybiEwfXJldHVybiExfSxhOl9wcm9jX2V4aXQsaDpmdW5jdGlvbiBfc2V0SW1hZ2VEYXRhKGUsbixhLHIpe2lmKGE9PT1uKXt0LmltYWdlRGF0YT1uZXcgVWludDhDbGFtcGVkQXJyYXkoby5zdWJhcnJheShlLGUrYSpyKSk7cmV0dXJufWNvbnN0IHM9bipyLGk9dC5pbWFnZURhdGE9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KHMpO2ZvcihsZXQgdD1lLHI9MDtyPHM7dCs9YSxyKz1uKWkuc2V0KG8uc3ViYXJyYXkodCx0K24pLHIpfSxmOmZ1bmN0aW9uIF9zZXRMaW5lRGF0YShlLG4sYSl7dC5pbWFnZURhdGEuc2V0KG8uc3ViYXJyYXkoZSxlK24pLGEpfX07dz1hd2FpdCBhc3luYyBmdW5jdGlvbiBjcmVhdGVXYXNtKCl7ZnVuY3Rpb24gcmVjZWl2ZUluc3RhbmNlKGUsbil7IWZ1bmN0aW9uIGFzc2lnbldhc21FeHBvcnRzKGUpe3QuX21hbGxvYz1lLms7dC5fZnJlZT1lLmw7dC5famJpZzJfZGVjb2RlPWUubTt0Ll9jY2l0dF9kZWNvZGU9ZS5uO2g9ZS5vO3U9ZS5pO2UuX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZX0odz1lLmV4cG9ydHMpO3VwZGF0ZU1lbW9yeVZpZXdzKCk7cmV0dXJuIHd9dmFyIGU9ZnVuY3Rpb24gZ2V0V2FzbUltcG9ydHMoKXtyZXR1cm57YTpqfX0oKTtyZXR1cm4gbmV3IFByb21pc2UoKG4sYSk9Pnt0Lmluc3RhbnRpYXRlV2FzbShlLChlLHQpPT57bihyZWNlaXZlSW5zdGFuY2UoZSkpfSl9KX0oKTshZnVuY3Rpb24gcnVuKCl7IWZ1bmN0aW9uIHByZVJ1bigpe2lmKHQucHJlUnVuKXsiZnVuY3Rpb24iPT10eXBlb2YgdC5wcmVSdW4mJih0LnByZVJ1bj1bdC5wcmVSdW5dKTtmb3IoO3QucHJlUnVuLmxlbmd0aDspYWRkT25QcmVSdW4odC5wcmVSdW4uc2hpZnQoKSl9Y2FsbFJ1bnRpbWVDYWxsYmFja3MocCl9KCk7ZnVuY3Rpb24gZG9SdW4oKXt0LmNhbGxlZFJ1bj0hMDtpZighZil7IWZ1bmN0aW9uIGluaXRSdW50aW1lKCl7Yz0hMDt3LmooKX0oKTtyPy4odCk7dC5vblJ1bnRpbWVJbml0aWFsaXplZD8uKCk7IWZ1bmN0aW9uIHBvc3RSdW4oKXtpZih0LnBvc3RSdW4peyJmdW5jdGlvbiI9PXR5cGVvZiB0LnBvc3RSdW4mJih0LnBvc3RSdW49W3QucG9zdFJ1bl0pO2Zvcig7dC5wb3N0UnVuLmxlbmd0aDspYWRkT25Qb3N0UnVuKHQucG9zdFJ1bi5zaGlmdCgpKX1jYWxsUnVudGltZUNhbGxiYWNrcyhtKX0oKX19aWYodC5zZXRTdGF0dXMpe3Quc2V0U3RhdHVzKCJSdW5uaW5nLi4uIik7c2V0VGltZW91dCgoKT0+e3NldFRpbWVvdXQoKCk9PnQuc2V0U3RhdHVzKCIiKSwxKTtkb1J1bigpfSwxKX1lbHNlIGRvUnVuKCl9KCk7cmV0dXJuIGM/dDpuZXcgUHJvbWlzZSgoZSx0KT0+e3I9ZTtzPXR9KX07Y2xhc3MgSkJpZzJFcnJvciBleHRlbmRzIHJue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUsIkpiaWcyRXJyb3IiKX19Y2xhc3MgSkJpZzJDQ0lUVEZheFdhc21JbWFnZXtzdGF0aWMjUj1udWxsO3N0YXRpYyNCPW51bGw7c3RhdGljI0g9bnVsbDtzdGF0aWMjeD0hMDtzdGF0aWMjRD0hMDtzdGF0aWMjQT1udWxsO3N0YXRpYyBzZXRPcHRpb25zKHtoYW5kbGVyOmUsdXNlV2FzbTp0LHVzZVdvcmtlckZldGNoOm4sd2FzbVVybDphfSl7dGhpcy4jeD10O3RoaXMuI0Q9bjt0aGlzLiNBPWE7bnx8KHRoaXMuI0I9ZSl9c3RhdGljIGFzeW5jI00oZSx0LG4pe2NvbnN0IGE9ImpiaWcyLndhc20iO3RyeXt0aGlzLiNSfHwodGhpcy4jRD90aGlzLiNSPWF3YWl0IGZldGNoQmluYXJ5RGF0YShgJHt0aGlzLiNBfSR7YX1gKTp0aGlzLiNSPWF3YWl0IHRoaXMuI0Iuc2VuZFdpdGhQcm9taXNlKCJGZXRjaEJpbmFyeURhdGEiLHt0eXBlOiJ3YXNtRmFjdG9yeSIsZmlsZW5hbWU6YX0pKTtyZXR1cm4gbigoYXdhaXQgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGUodGhpcy4jUix0KSkuaW5zdGFuY2UpfWNhdGNoKHQpe3dhcm4oYEpCaWcySW1hZ2UjaW5zdGFudGlhdGVXYXNtOiAke3R9YCk7cmV0dXJuIGUobnVsbCl9ZmluYWxseXt0aGlzLiNCPW51bGx9fXN0YXRpYyBhc3luYyBkZWNvZGUoZSx0LG4sYSxyKXtpZighdGhpcy4jSCl7Y29uc3R7cHJvbWlzZTplLHJlc29sdmU6dH09UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCksbj1bZV07dGhpcy4jeD9uLnB1c2goRm4oe3dhcm4saW5zdGFudGlhdGVXYXNtOnRoaXMuI00uYmluZCh0aGlzLHQpfSkpOnQobnVsbCk7dGhpcy4jSD1Qcm9taXNlLnJhY2Uobil9Y29uc3Qgcz1hd2FpdCB0aGlzLiNIO2lmKCFzKXRocm93IG5ldyBKQmlnMkVycm9yKCJKQmlnMiBmYWlsZWQgdG8gaW5pdGlhbGl6ZSIpO2xldCBpLG87dHJ5e2NvbnN0IGw9ZS5sZW5ndGg7aT1zLl9tYWxsb2MobCk7cy53cml0ZUFycmF5VG9NZW1vcnkoZSxpKTtpZihyKXMuX2NjaXR0X2RlY29kZShpLGwsdCxuLHIuSyxyLkVuZE9mTGluZT8xOjAsci5FbmNvZGVkQnl0ZUFsaWduPzE6MCxyLkJsYWNrSXMxPzE6MCxyLkNvbHVtbnMsci5Sb3dzKTtlbHNle2NvbnN0IGU9YT9hLmxlbmd0aDowO2lmKGU+MCl7bz1zLl9tYWxsb2MoZSk7cy53cml0ZUFycmF5VG9NZW1vcnkoYSxvKX1zLl9qYmlnMl9kZWNvZGUoaSxsLHQsbixvLGUpfWlmKCFzLmltYWdlRGF0YSl0aHJvdyBuZXcgSkJpZzJFcnJvcigiVW5rbm93biBlcnJvciIpO2NvbnN0e2ltYWdlRGF0YTpmfT1zO3MuaW1hZ2VEYXRhPW51bGw7cmV0dXJuIGZ9ZmluYWxseXtpJiZzLl9mcmVlKGkpO28mJnMuX2ZyZWUobyl9fXN0YXRpYyBjbGVhbnVwKCl7dGhpcy4jSD1udWxsfX1jb25zdCBUbj1uZXcgVWludDhBcnJheSgwKTtjbGFzcyBEZWNvZGVTdHJlYW0gZXh0ZW5kcyBCYXNlU3RyZWFte2NvbnN0cnVjdG9yKGUpe3N1cGVyKCk7dGhpcy5fcmF3TWluQnVmZmVyTGVuZ3RoPWV8fDA7dGhpcy5wb3M9MDt0aGlzLmJ1ZmZlckxlbmd0aD0wO3RoaXMuZW9mPSExO3RoaXMuYnVmZmVyPVRuO3RoaXMubWluQnVmZmVyTGVuZ3RoPTUxMjtpZihlKWZvcig7dGhpcy5taW5CdWZmZXJMZW5ndGg8ZTspdGhpcy5taW5CdWZmZXJMZW5ndGgqPTJ9Z2V0IGlzRW1wdHkoKXtmb3IoOyF0aGlzLmVvZiYmMD09PXRoaXMuYnVmZmVyTGVuZ3RoOyl0aGlzLnJlYWRCbG9jaygpO3JldHVybiAwPT09dGhpcy5idWZmZXJMZW5ndGh9ZW5zdXJlQnVmZmVyKGUpe2NvbnN0IHQ9dGhpcy5idWZmZXI7aWYoZTw9dC5ieXRlTGVuZ3RoKXJldHVybiB0O2xldCBuPXRoaXMubWluQnVmZmVyTGVuZ3RoO2Zvcig7bjxlOyluKj0yO2NvbnN0IGE9bmV3IFVpbnQ4QXJyYXkobik7YS5zZXQodCk7cmV0dXJuIHRoaXMuYnVmZmVyPWF9Z2V0Qnl0ZSgpe2NvbnN0IGU9dGhpcy5wb3M7Zm9yKDt0aGlzLmJ1ZmZlckxlbmd0aDw9ZTspe2lmKHRoaXMuZW9mKXJldHVybi0xO3RoaXMucmVhZEJsb2NrKCl9cmV0dXJuIHRoaXMuYnVmZmVyW3RoaXMucG9zKytdfWdldEJ5dGVzKGUsdD1udWxsKXtjb25zdCBuPXRoaXMucG9zO2xldCBhO2lmKGUpe3RoaXMuZW5zdXJlQnVmZmVyKG4rZSk7YT1uK2U7Zm9yKDshdGhpcy5lb2YmJnRoaXMuYnVmZmVyTGVuZ3RoPGE7KXRoaXMucmVhZEJsb2NrKHQpO2NvbnN0IHI9dGhpcy5idWZmZXJMZW5ndGg7YT5yJiYoYT1yKX1lbHNle2Zvcig7IXRoaXMuZW9mOyl0aGlzLnJlYWRCbG9jayh0KTthPXRoaXMuYnVmZmVyTGVuZ3RofXRoaXMucG9zPWE7cmV0dXJuIHRoaXMuYnVmZmVyLnN1YmFycmF5KG4sYSl9YXN5bmMgZ2V0SW1hZ2VEYXRhKGUsdCl7aWYoIXRoaXMuY2FuQXN5bmNEZWNvZGVJbWFnZUZyb21CdWZmZXIpcmV0dXJuIHRoaXMuaXNBc3luY0RlY29kZXI/dGhpcy5kZWNvZGVJbWFnZShudWxsLGUsdCk6dGhpcy5nZXRCeXRlcyhlLHQpO2NvbnN0IG49YXdhaXQgdGhpcy5zdHJlYW0uYXN5bmNHZXRCeXRlcygpO3JldHVybiB0aGlzLmRlY29kZUltYWdlKG4sZSx0KX1hc3luYyBhc3luY0dldEJ5dGVzRnJvbURlY29tcHJlc3Npb25TdHJlYW0oZSl7dGhpcy5zdHJlYW0ucmVzZXQoKTtjb25zdCB0PXRoaXMuc3RyZWFtLmlzQXN5bmM/YXdhaXQgdGhpcy5zdHJlYW0uYXN5bmNHZXRCeXRlcygpOnRoaXMuc3RyZWFtLmdldEJ5dGVzKCk7dHJ5e2NvbnN0e3JlYWRhYmxlOm4sd3JpdGFibGU6YX09bmV3IERlY29tcHJlc3Npb25TdHJlYW0oZSkscj1hLmdldFdyaXRlcigpO2F3YWl0IHIucmVhZHk7ci53cml0ZSh0KS50aGVuKGFzeW5jKCk9Pnthd2FpdCByLnJlYWR5O2F3YWl0IHIuY2xvc2UoKX0pLmNhdGNoKCgpPT57fSk7Y29uc3Qgcz1bXTtsZXQgaT0wO2ZvciBhd2FpdChjb25zdCBlIG9mIG4pe3MucHVzaChlKTtpKz1lLmJ5dGVMZW5ndGh9Y29uc3Qgbz1uZXcgVWludDhBcnJheShpKTtsZXQgbD0wO2Zvcihjb25zdCBlIG9mIHMpe28uc2V0KGUsbCk7bCs9ZS5ieXRlTGVuZ3RofXJldHVybntkZWNvbXByZXNzZWQ6byxjb21wcmVzc2VkOnR9fWNhdGNoe3JldHVybntkZWNvbXByZXNzZWQ6bnVsbCxjb21wcmVzc2VkOnR9fX1yZXNldCgpe3RoaXMucG9zPTB9bWFrZVN1YlN0cmVhbShlLHQsbj1udWxsKXtpZih2b2lkIDA9PT10KWZvcig7IXRoaXMuZW9mOyl0aGlzLnJlYWRCbG9jaygpO2Vsc2V7Y29uc3Qgbj1lK3Q7Zm9yKDt0aGlzLmJ1ZmZlckxlbmd0aDw9biYmIXRoaXMuZW9mOyl0aGlzLnJlYWRCbG9jaygpfXJldHVybiBuZXcgU3RyZWFtKHRoaXMuYnVmZmVyLGUsdCxuKX1nZXRCYXNlU3RyZWFtcygpe3JldHVybiB0aGlzLnN0cmVhbT90aGlzLnN0cmVhbS5nZXRCYXNlU3RyZWFtcygpOm51bGx9Y2xvbmUoKXtmb3IoOyF0aGlzLmVvZjspdGhpcy5yZWFkQmxvY2soKTtyZXR1cm4gbmV3IFN0cmVhbSh0aGlzLmJ1ZmZlcix0aGlzLnN0YXJ0LHRoaXMuZW5kLXRoaXMuc3RhcnQsdGhpcy5kaWN0LmNsb25lKCkpfX1jbGFzcyBTdHJlYW1zU2VxdWVuY2VTdHJlYW0gZXh0ZW5kcyBEZWNvZGVTdHJlYW17Y29uc3RydWN0b3IoZSx0PW51bGwpe2U9ZS5maWx0ZXIoZT0+ZSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0mJiFlLmlzSW1hZ2VTdHJlYW0pO2xldCBuPTA7Zm9yKGNvbnN0IHQgb2YgZSluKz10IGluc3RhbmNlb2YgRGVjb2RlU3RyZWFtP3QuX3Jhd01pbkJ1ZmZlckxlbmd0aDp0Lmxlbmd0aDtzdXBlcihuKTt0aGlzLnN0cmVhbXM9ZTt0aGlzLl9vbkVycm9yPXR9cmVhZEJsb2NrKCl7Y29uc3QgZT10aGlzLnN0cmVhbXM7aWYoMD09PWUubGVuZ3RoKXt0aGlzLmVvZj0hMDtyZXR1cm59Y29uc3QgdD1lLnNoaWZ0KCk7bGV0IG47dHJ5e249dC5nZXRCeXRlcygpfWNhdGNoKGUpe2lmKHRoaXMuX29uRXJyb3Ipe3RoaXMuX29uRXJyb3IoZSx0LmRpY3Q/Lm9iaklkKTtyZXR1cm59dGhyb3cgZX1jb25zdCBhPXRoaXMuYnVmZmVyTGVuZ3RoLHI9YStuLmxlbmd0aDt0aGlzLmVuc3VyZUJ1ZmZlcihyKS5zZXQobixhKTt0aGlzLmJ1ZmZlckxlbmd0aD1yfWdldEJhc2VTdHJlYW1zKCl7Y29uc3QgZT1bXTtmb3IoY29uc3QgdCBvZiB0aGlzLnN0cmVhbXMpe2NvbnN0IG49dC5nZXRCYXNlU3RyZWFtcygpO24mJmUucHVzaCguLi5uKX1yZXR1cm4gZS5sZW5ndGg+MD9lOm51bGx9fWNsYXNzIENvbG9yU3BhY2VVdGlsc3tzdGF0aWMgcGFyc2Uoe2NzOmUseHJlZjp0LHJlc291cmNlczpuPW51bGwscGRmRnVuY3Rpb25GYWN0b3J5OmEsZ2xvYmFsQ29sb3JTcGFjZUNhY2hlOnIsbG9jYWxDb2xvclNwYWNlQ2FjaGU6cyxhc3luY0lmTm90Q2FjaGVkOmk9ITF9KXtjb25zdCBvPXt4cmVmOnQscmVzb3VyY2VzOm4scGRmRnVuY3Rpb25GYWN0b3J5OmEsZ2xvYmFsQ29sb3JTcGFjZUNhY2hlOnIsbG9jYWxDb2xvclNwYWNlQ2FjaGU6c307bGV0IGwsZixjO2lmKGUgaW5zdGFuY2VvZiBSZWYpe2Y9ZTtjb25zdCBuPXIuZ2V0QnlSZWYoZil8fHMuZ2V0QnlSZWYoZik7aWYobilyZXR1cm4gbjtlPXQuZmV0Y2goZSl9aWYoZSBpbnN0YW5jZW9mIE5hbWUpe2w9ZS5uYW1lO2NvbnN0IHQ9cy5nZXRCeU5hbWUobCk7aWYodClyZXR1cm4gdH10cnl7Yz10aGlzLiNQKGUsbyl9Y2F0Y2goZSl7aWYoaSYmIShlIGluc3RhbmNlb2YgTWlzc2luZ0RhdGFFeGNlcHRpb24pKXJldHVybiBQcm9taXNlLnJlamVjdChlKTt0aHJvdyBlfWlmKGx8fGYpe3Muc2V0KGwsZixjKTtmJiZyLnNldChudWxsLGYsYyl9cmV0dXJuIGk/UHJvbWlzZS5yZXNvbHZlKGMpOmN9c3RhdGljI0UoZSx0KXtjb25zdHtnbG9iYWxDb2xvclNwYWNlQ2FjaGU6bn09dDtsZXQgYTtpZihlIGluc3RhbmNlb2YgUmVmKXthPWU7Y29uc3QgdD1uLmdldEJ5UmVmKGEpO2lmKHQpcmV0dXJuIHR9Y29uc3Qgcj10aGlzLiNQKGUsdCk7YSYmbi5zZXQobnVsbCxhLHIpO3JldHVybiByfXN0YXRpYyNQKGUsdCl7Y29uc3R7eHJlZjpuLHJlc291cmNlczphLHBkZkZ1bmN0aW9uRmFjdG9yeTpyLGdsb2JhbENvbG9yU3BhY2VDYWNoZTpzfT10O2lmKChlPW4uZmV0Y2hJZlJlZihlKSlpbnN0YW5jZW9mIE5hbWUpc3dpdGNoKGUubmFtZSl7Y2FzZSJHIjpjYXNlIkRldmljZUdyYXkiOnJldHVybiB0aGlzLmdyYXk7Y2FzZSJSR0IiOmNhc2UiRGV2aWNlUkdCIjpyZXR1cm4gdGhpcy5yZ2I7Y2FzZSJEZXZpY2VSR0JBIjpyZXR1cm4gdGhpcy5yZ2JhO2Nhc2UiQ01ZSyI6Y2FzZSJEZXZpY2VDTVlLIjpyZXR1cm4gdGhpcy5jbXlrO2Nhc2UiUGF0dGVybiI6cmV0dXJuIG5ldyBQYXR0ZXJuQ1MobnVsbCk7ZGVmYXVsdDppZihhIGluc3RhbmNlb2YgRGljdCl7Y29uc3Qgbj1hLmdldCgiQ29sb3JTcGFjZSIpO2lmKG4gaW5zdGFuY2VvZiBEaWN0KXtjb25zdCBhPW4uZ2V0KGUubmFtZSk7aWYoYSl7aWYoYSBpbnN0YW5jZW9mIE5hbWUpcmV0dXJuIHRoaXMuI1AoYSx0KTtlPWE7YnJlYWt9fX13YXJuKGBVbnJlY29nbml6ZWQgQ29sb3JTcGFjZTogJHtlLm5hbWV9YCk7cmV0dXJuIHRoaXMuZ3JheX1pZihBcnJheS5pc0FycmF5KGUpKXtjb25zdCBhPW4uZmV0Y2hJZlJlZihlWzBdKS5uYW1lO2xldCBpLG8sbCxmLGMsaDtzd2l0Y2goYSl7Y2FzZSJHIjpjYXNlIkRldmljZUdyYXkiOnJldHVybiB0aGlzLmdyYXk7Y2FzZSJSR0IiOmNhc2UiRGV2aWNlUkdCIjpyZXR1cm4gdGhpcy5yZ2I7Y2FzZSJDTVlLIjpjYXNlIkRldmljZUNNWUsiOnJldHVybiB0aGlzLmNteWs7Y2FzZSJDYWxHcmF5IjppPW4uZmV0Y2hJZlJlZihlWzFdKTtmPWkuZ2V0QXJyYXkoIldoaXRlUG9pbnQiKTtjPWkuZ2V0QXJyYXkoIkJsYWNrUG9pbnQiKTtoPWkuZ2V0KCJHYW1tYSIpO3JldHVybiBuZXcgQ2FsR3JheUNTKGYsYyxoKTtjYXNlIkNhbFJHQiI6aT1uLmZldGNoSWZSZWYoZVsxXSk7Zj1pLmdldEFycmF5KCJXaGl0ZVBvaW50Iik7Yz1pLmdldEFycmF5KCJCbGFja1BvaW50Iik7aD1pLmdldEFycmF5KCJHYW1tYSIpO2NvbnN0IHU9aS5nZXRBcnJheSgiTWF0cml4Iik7cmV0dXJuIG5ldyBDYWxSR0JDUyhmLGMsaCx1KTtjYXNlIklDQ0Jhc2VkIjpjb25zdCBtPWVbMV1pbnN0YW5jZW9mIFJlZjtpZihtKXtjb25zdCB0PXMuZ2V0QnlSZWYoZVsxXSk7aWYodClyZXR1cm4gdH1jb25zdCBwPW4uZmV0Y2hJZlJlZihlWzFdKSxkPXAuZGljdDtvPWQuZ2V0KCJOIik7aWYoSWNjQ29sb3JTcGFjZS5pc1VzYWJsZSl0cnl7Y29uc3QgdD1uZXcgSWNjQ29sb3JTcGFjZShwLmdldEJ5dGVzKCksIklDQ0Jhc2VkIixvKTttJiZzLnNldChudWxsLGVbMV0sdCk7cmV0dXJuIHR9Y2F0Y2godCl7aWYodCBpbnN0YW5jZW9mIE1pc3NpbmdEYXRhRXhjZXB0aW9uKXRocm93IHQ7d2FybihgSUNDQmFzZWQgY29sb3Igc3BhY2UgKCR7ZVsxXX0pOiAiJHt0fSIuYCl9Y29uc3QgZz1kLmdldFJhdygiQWx0ZXJuYXRlIik7aWYoZyl7Y29uc3QgZT10aGlzLiNFKGcsdCk7aWYoZS5udW1Db21wcz09PW8pcmV0dXJuIGU7d2FybigiSUNDQmFzZWQgY29sb3Igc3BhY2U6IElnbm9yaW5nIGluY29ycmVjdCAvQWx0ZXJuYXRlIGVudHJ5LiIpfWlmKDE9PT1vKXJldHVybiB0aGlzLmdyYXk7aWYoMz09PW8pcmV0dXJuIHRoaXMucmdiO2lmKDQ9PT1vKXJldHVybiB0aGlzLmNteWs7YnJlYWs7Y2FzZSJQYXR0ZXJuIjpsPWVbMV18fG51bGw7bCYmKGw9dGhpcy4jRShsLHQpKTtyZXR1cm4gbmV3IFBhdHRlcm5DUyhsKTtjYXNlIkkiOmNhc2UiSW5kZXhlZCI6bD10aGlzLiNFKGVbMV0sdCk7Y29uc3QgYj1NYXRoQ2xhbXAobi5mZXRjaElmUmVmKGVbMl0pLDAsMjU1KSx3PW4uZmV0Y2hJZlJlZihlWzNdKTtyZXR1cm4gbmV3IEluZGV4ZWRDUyhsLGIsdyk7Y2FzZSJTZXBhcmF0aW9uIjpjYXNlIkRldmljZU4iOmNvbnN0IGo9bi5mZXRjaElmUmVmKGVbMV0pO289QXJyYXkuaXNBcnJheShqKT9qLmxlbmd0aDoxO2w9dGhpcy4jRShlWzJdLHQpO2NvbnN0IGs9ci5jcmVhdGUoZVszXSk7cmV0dXJuIG5ldyBBbHRlcm5hdGVDUyhvLGwsayk7Y2FzZSJMYWIiOmk9bi5mZXRjaElmUmVmKGVbMV0pO2Y9aS5nZXRBcnJheSgiV2hpdGVQb2ludCIpO2M9aS5nZXRBcnJheSgiQmxhY2tQb2ludCIpO2NvbnN0IHk9aS5nZXRBcnJheSgiUmFuZ2UiKTtyZXR1cm4gbmV3IExhYkNTKGYsYyx5KTtkZWZhdWx0Ondhcm4oYFVuaW1wbGVtZW50ZWQgQ29sb3JTcGFjZSBvYmplY3Q6ICR7YX1gKTtyZXR1cm4gdGhpcy5ncmF5fX13YXJuKGBVbnJlY29nbml6ZWQgQ29sb3JTcGFjZSBvYmplY3Q6ICR7ZX1gKTtyZXR1cm4gdGhpcy5ncmF5fXN0YXRpYyBnZXQgZ3JheSgpe3JldHVybiBzaGFkb3codGhpcywiZ3JheSIsbmV3IERldmljZUdyYXlDUyl9c3RhdGljIGdldCByZ2IoKXtyZXR1cm4gc2hhZG93KHRoaXMsInJnYiIsbmV3IERldmljZVJnYkNTKX1zdGF0aWMgZ2V0IHJnYmEoKXtyZXR1cm4gc2hhZG93KHRoaXMsInJnYmEiLG5ldyBEZXZpY2VSZ2JhQ1MpfXN0YXRpYyBnZXQgY215aygpe2lmKENteWtJQ0NCYXNlZENTLmlzVXNhYmxlKXRyeXtyZXR1cm4gc2hhZG93KHRoaXMsImNteWsiLG5ldyBDbXlrSUNDQmFzZWRDUyl9Y2F0Y2h7d2FybigiQ01ZSyBmYWxsYmFjazogRGV2aWNlQ01ZSyIpfXJldHVybiBzaGFkb3codGhpcywiY215ayIsbmV3IERldmljZUNteWtDUyl9fWNsYXNzIEpwZWdFcnJvciBleHRlbmRzIHJue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUsIkpwZWdFcnJvciIpfX1jbGFzcyBETkxNYXJrZXJFcnJvciBleHRlbmRzIHJue2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSwiRE5MTWFya2VyRXJyb3IiKTt0aGlzLnNjYW5MaW5lcz10fX1jbGFzcyBFT0lNYXJrZXJFcnJvciBleHRlbmRzIHJue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUsIkVPSU1hcmtlckVycm9yIil9fWNvbnN0IE9uPW5ldyBVaW50OEFycmF5KFswLDEsOCwxNiw5LDIsMywxMCwxNywyNCwzMiwyNSwxOCwxMSw0LDUsMTIsMTksMjYsMzMsNDAsNDgsNDEsMzQsMjcsMjAsMTMsNiw3LDE0LDIxLDI4LDM1LDQyLDQ5LDU2LDU3LDUwLDQzLDM2LDI5LDIyLDE1LDIzLDMwLDM3LDQ0LDUxLDU4LDU5LDUyLDQ1LDM4LDMxLDM5LDQ2LDUzLDYwLDYxLDU0LDQ3LDU1LDYyLDYzXSksUm49NDAxNyxCbj03OTksSG49MzQwNixEbj0yMjc2LE1uPTE1NjcsUG49Mzc4NCxFbj01NzkzLE5uPTI4OTY7ZnVuY3Rpb24gYnVpbGRIdWZmbWFuVGFibGUoZSx0KXtsZXQgbixhLHI9MCxzPTE2O2Zvcig7cz4wJiYhZVtzLTFdOylzLS07Y29uc3QgaT1be2NoaWxkcmVuOltdLGluZGV4OjB9XTtsZXQgbyxsPWlbMF07Zm9yKG49MDtuPHM7bisrKXtmb3IoYT0wO2E8ZVtuXTthKyspe2w9aS5wb3AoKTtsLmNoaWxkcmVuW2wuaW5kZXhdPXRbcl07Zm9yKDtsLmluZGV4PjA7KWw9aS5wb3AoKTtsLmluZGV4Kys7aS5wdXNoKGwpO2Zvcig7aS5sZW5ndGg8PW47KXtpLnB1c2gobz17Y2hpbGRyZW46W10saW5kZXg6MH0pO2wuY2hpbGRyZW5bbC5pbmRleF09by5jaGlsZHJlbjtsPW99cisrfWlmKG4rMTxzKXtpLnB1c2gobz17Y2hpbGRyZW46W10saW5kZXg6MH0pO2wuY2hpbGRyZW5bbC5pbmRleF09by5jaGlsZHJlbjtsPW99fXJldHVybiBpWzBdLmNoaWxkcmVufWZ1bmN0aW9uIGdldEJsb2NrQnVmZmVyT2Zmc2V0KGUsdCxuKXtyZXR1cm4gNjQqKChlLmJsb2Nrc1BlckxpbmUrMSkqdCtuKX1mdW5jdGlvbiBkZWNvZGVTY2FuKGUsdCxuLGEscixzLGksbyxsLGY9ITEpe2NvbnN0IGM9bi5tY3VzUGVyTGluZSxoPW4ucHJvZ3Jlc3NpdmUsdT10O2xldCBtPTAscD0wO2Z1bmN0aW9uIHJlYWRCaXQoKXtpZihwPjApe3AtLTtyZXR1cm4gbT4+cCYxfW09ZVt0KytdO2lmKDI1NT09PW0pe2NvbnN0IGE9ZVt0KytdO2lmKGEpe2lmKDIyMD09PWEmJmYpe2NvbnN0IGE9cmVhZFVpbnQxNihlLHQrPTIpO3QrPTI7aWYoYT4wJiZhIT09bi5zY2FuTGluZXMpdGhyb3cgbmV3IEROTE1hcmtlckVycm9yKCJGb3VuZCBETkwgbWFya2VyICgweEZGREMpIHdoaWxlIHBhcnNpbmcgc2NhbiBkYXRhIixhKX1lbHNlIGlmKDIxNz09PWEpe2lmKGYpe2NvbnN0IGU9dyooOD09PW4ucHJlY2lzaW9uPzg6MCk7aWYoZT4wJiZNYXRoLnJvdW5kKG4uc2NhbkxpbmVzL2UpPj01KXRocm93IG5ldyBETkxNYXJrZXJFcnJvcigiRm91bmQgRU9JIG1hcmtlciAoMHhGRkQ5KSB3aGlsZSBwYXJzaW5nIHNjYW4gZGF0YSwgcG9zc2libHkgY2F1c2VkIGJ5IGluY29ycmVjdCBgc2NhbkxpbmVzYCBwYXJhbWV0ZXIiLGUpfXRocm93IG5ldyBFT0lNYXJrZXJFcnJvcigiRm91bmQgRU9JIG1hcmtlciAoMHhGRkQ5KSB3aGlsZSBwYXJzaW5nIHNjYW4gZGF0YSIpfXRocm93IG5ldyBKcGVnRXJyb3IoYHVuZXhwZWN0ZWQgbWFya2VyICR7KG08PDh8YSkudG9TdHJpbmcoMTYpfWApfX1wPTc7cmV0dXJuIG0+Pj43fWZ1bmN0aW9uIGRlY29kZUh1ZmZtYW4oZSl7bGV0IHQ9ZTtmb3IoOzspe3Q9dFtyZWFkQml0KCldO3N3aXRjaCh0eXBlb2YgdCl7Y2FzZSJudW1iZXIiOnJldHVybiB0O2Nhc2Uib2JqZWN0Ijpjb250aW51ZX10aHJvdyBuZXcgSnBlZ0Vycm9yKCJpbnZhbGlkIGh1ZmZtYW4gc2VxdWVuY2UiKX19ZnVuY3Rpb24gcmVjZWl2ZShlKXtsZXQgdD0wO2Zvcig7ZT4wOyl7dD10PDwxfHJlYWRCaXQoKTtlLS19cmV0dXJuIHR9ZnVuY3Rpb24gcmVjZWl2ZUFuZEV4dGVuZChlKXtpZigxPT09ZSlyZXR1cm4gMT09PXJlYWRCaXQoKT8xOi0xO2NvbnN0IHQ9cmVjZWl2ZShlKTtyZXR1cm4gdD49MTw8ZS0xP3Q6dCsoLTE8PGUpKzF9bGV0IGQ9MDtsZXQgZyxiPTA7bGV0IHc9MDtmdW5jdGlvbiBkZWNvZGVNY3UoZSx0LG4sYSxyKXtjb25zdCBzPW4lYzt3PShuL2N8MCkqZS52K2E7Y29uc3QgaT1zKmUuaCtyO3QoZSxnZXRCbG9ja0J1ZmZlck9mZnNldChlLHcsaSkpfWZ1bmN0aW9uIGRlY29kZUJsb2NrKGUsdCxuKXt3PW4vZS5ibG9ja3NQZXJMaW5lfDA7Y29uc3QgYT1uJWUuYmxvY2tzUGVyTGluZTt0KGUsZ2V0QmxvY2tCdWZmZXJPZmZzZXQoZSx3LGEpKX1jb25zdCBqPWEubGVuZ3RoO2xldCBrLHkscSx2LFMseDt4PWg/MD09PXM/MD09PW8/ZnVuY3Rpb24gZGVjb2RlRENGaXJzdChlLHQpe2NvbnN0IG49ZGVjb2RlSHVmZm1hbihlLmh1ZmZtYW5UYWJsZURDKSxhPTA9PT1uPzA6cmVjZWl2ZUFuZEV4dGVuZChuKTw8bDtlLmJsb2NrRGF0YVt0XT1lLnByZWQrPWF9OmZ1bmN0aW9uIGRlY29kZURDU3VjY2Vzc2l2ZShlLHQpe2UuYmxvY2tEYXRhW3RdfD1yZWFkQml0KCk8PGx9OjA9PT1vP2Z1bmN0aW9uIGRlY29kZUFDRmlyc3QoZSx0KXtpZihkPjApe2QtLTtyZXR1cm59bGV0IG49cztjb25zdCBhPWk7Zm9yKDtuPD1hOyl7Y29uc3QgYT1kZWNvZGVIdWZmbWFuKGUuaHVmZm1hblRhYmxlQUMpLHI9MTUmYSxzPWE+PjQ7aWYoMD09PXIpe2lmKHM8MTUpe2Q9cmVjZWl2ZShzKSsoMTw8cyktMTticmVha31uKz0xNjtjb250aW51ZX1uKz1zO2NvbnN0IGk9T25bbl07ZS5ibG9ja0RhdGFbdCtpXT1yZWNlaXZlQW5kRXh0ZW5kKHIpKigxPDxsKTtuKyt9fTpmdW5jdGlvbiBkZWNvZGVBQ1N1Y2Nlc3NpdmUoZSx0KXtsZXQgbj1zO2NvbnN0IGE9aTtsZXQgcixvLGY9MDtmb3IoO248PWE7KXtjb25zdCBhPXQrT25bbl0scz1lLmJsb2NrRGF0YVthXTwwPy0xOjE7c3dpdGNoKGIpe2Nhc2UgMDpvPWRlY29kZUh1ZmZtYW4oZS5odWZmbWFuVGFibGVBQyk7cj0xNSZvO2Y9bz4+NDtpZigwPT09cilpZihmPDE1KXtkPXJlY2VpdmUoZikrKDE8PGYpO2I9NH1lbHNle2Y9MTY7Yj0xfWVsc2V7aWYoMSE9PXIpdGhyb3cgbmV3IEpwZWdFcnJvcigiaW52YWxpZCBBQ24gZW5jb2RpbmciKTtnPXJlY2VpdmVBbmRFeHRlbmQocik7Yj1mPzI6M31jb250aW51ZTtjYXNlIDE6Y2FzZSAyOmlmKGUuYmxvY2tEYXRhW2FdKWUuYmxvY2tEYXRhW2FdKz1zKihyZWFkQml0KCk8PGwpO2Vsc2V7Zi0tOzA9PT1mJiYoYj0yPT09Yj8zOjApfWJyZWFrO2Nhc2UgMzppZihlLmJsb2NrRGF0YVthXSllLmJsb2NrRGF0YVthXSs9cyoocmVhZEJpdCgpPDxsKTtlbHNle2UuYmxvY2tEYXRhW2FdPWc8PGw7Yj0wfWJyZWFrO2Nhc2UgNDplLmJsb2NrRGF0YVthXSYmKGUuYmxvY2tEYXRhW2FdKz1zKihyZWFkQml0KCk8PGwpKX1uKyt9aWYoND09PWIpe2QtLTswPT09ZCYmKGI9MCl9fTpmdW5jdGlvbiBkZWNvZGVCYXNlbGluZShlLHQpe2NvbnN0IG49ZGVjb2RlSHVmZm1hbihlLmh1ZmZtYW5UYWJsZURDKSxhPTA9PT1uPzA6cmVjZWl2ZUFuZEV4dGVuZChuKTtlLmJsb2NrRGF0YVt0XT1lLnByZWQrPWE7bGV0IHI9MTtmb3IoO3I8NjQ7KXtjb25zdCBuPWRlY29kZUh1ZmZtYW4oZS5odWZmbWFuVGFibGVBQyksYT0xNSZuLHM9bj4+NDtpZigwPT09YSl7aWYoczwxNSlicmVhaztyKz0xNjtjb250aW51ZX1yKz1zO2NvbnN0IGk9T25bcl07ZS5ibG9ja0RhdGFbdCtpXT1yZWNlaXZlQW5kRXh0ZW5kKGEpO3IrK319O2xldCBDLFQ9MDtjb25zdCBPPTE9PT1qP2FbMF0uYmxvY2tzUGVyTGluZSphWzBdLmJsb2Nrc1BlckNvbHVtbjpjKm4ubWN1c1BlckNvbHVtbjtsZXQgUixIO2Zvcig7VDw9Tzspe2NvbnN0IG49cj9NYXRoLm1pbihPLVQscik6TztpZihuPjApe2Zvcih5PTA7eTxqO3krKylhW3ldLnByZWQ9MDtkPTA7aWYoMT09PWope2s9YVswXTtmb3IoUz0wO1M8bjtTKyspe2RlY29kZUJsb2NrKGsseCxUKTtUKyt9fWVsc2UgZm9yKFM9MDtTPG47UysrKXtmb3IoeT0wO3k8ajt5Kyspe2s9YVt5XTtSPWsuaDtIPWsudjtmb3IocT0wO3E8SDtxKyspZm9yKHY9MDt2PFI7disrKWRlY29kZU1jdShrLHgsVCxxLHYpfVQrK319cD0wO0M9ZmluZE5leHRGaWxlTWFya2VyKGUsdCk7aWYoIUMpYnJlYWs7aWYoQy5pbnZhbGlkKXt3YXJuKGBkZWNvZGVTY2FuIC0gJHtuPjA/InVuZXhwZWN0ZWQiOiJleGNlc3NpdmUifSBNQ1UgZGF0YSwgY3VycmVudCBtYXJrZXIgaXM6ICR7Qy5pbnZhbGlkfWApO3Q9Qy5vZmZzZXR9aWYoIShDLm1hcmtlcj49NjU0ODgmJkMubWFya2VyPD02NTQ5NSkpYnJlYWs7dCs9Mn1yZXR1cm4gdC11fWZ1bmN0aW9uIHF1YW50aXplQW5kSW52ZXJzZShlLHQsbil7Y29uc3QgYT1lLnF1YW50aXphdGlvblRhYmxlLHI9ZS5ibG9ja0RhdGE7bGV0IHMsaSxvLGwsZixjLGgsdSxtLHAsZCxnLGIsdyxqLGsseTtpZighYSl0aHJvdyBuZXcgSnBlZ0Vycm9yKCJtaXNzaW5nIHJlcXVpcmVkIFF1YW50aXphdGlvbiBUYWJsZS4iKTtmb3IobGV0IGU9MDtlPDY0O2UrPTgpe209clt0K2VdO3A9clt0K2UrMV07ZD1yW3QrZSsyXTtnPXJbdCtlKzNdO2I9clt0K2UrNF07dz1yW3QrZSs1XTtqPXJbdCtlKzZdO2s9clt0K2UrN107bSo9YVtlXTtpZigwIT09KHB8ZHxnfGJ8d3xqfGspKXtwKj1hW2UrMV07ZCo9YVtlKzJdO2cqPWFbZSszXTtiKj1hW2UrNF07dyo9YVtlKzVdO2oqPWFbZSs2XTtrKj1hW2UrN107cz1FbiptKzEyOD4+ODtpPUVuKmIrMTI4Pj44O289ZDtsPWo7Zj1ObioocC1rKSsxMjg+Pjg7dT1ObioocCtrKSsxMjg+Pjg7Yz1nPDw0O2g9dzw8NDtzPXMraSsxPj4xO2k9cy1pO3k9bypQbitsKk1uKzEyOD4+ODtvPW8qTW4tbCpQbisxMjg+Pjg7bD15O2Y9ZitoKzE+PjE7aD1mLWg7dT11K2MrMT4+MTtjPXUtYztzPXMrbCsxPj4xO2w9cy1sO2k9aStvKzE+PjE7bz1pLW87eT1mKkRuK3UqSG4rMjA0OD4+MTI7Zj1mKkhuLXUqRG4rMjA0OD4+MTI7dT15O3k9YypCbitoKlJuKzIwNDg+PjEyO2M9YypSbi1oKkJuKzIwNDg+PjEyO2g9eTtuW2VdPXMrdTtuW2UrN109cy11O25bZSsxXT1pK2g7bltlKzZdPWktaDtuW2UrMl09bytjO25bZSs1XT1vLWM7bltlKzNdPWwrZjtuW2UrNF09bC1mfWVsc2V7eT1FbiptKzUxMj4+MTA7bltlXT15O25bZSsxXT15O25bZSsyXT15O25bZSszXT15O25bZSs0XT15O25bZSs1XT15O25bZSs2XT15O25bZSs3XT15fX1mb3IobGV0IGU9MDtlPDg7KytlKXttPW5bZV07cD1uW2UrOF07ZD1uW2UrMTZdO2c9bltlKzI0XTtiPW5bZSszMl07dz1uW2UrNDBdO2o9bltlKzQ4XTtrPW5bZSs1Nl07aWYoMCE9PShwfGR8Z3xifHd8anxrKSl7cz1FbiptKzIwNDg+PjEyO2k9RW4qYisyMDQ4Pj4xMjtvPWQ7bD1qO2Y9Tm4qKHAtaykrMjA0OD4+MTI7dT1ObioocCtrKSsyMDQ4Pj4xMjtjPWc7aD13O3M9NDExMisocytpKzE+PjEpO2k9cy1pO3k9bypQbitsKk1uKzIwNDg+PjEyO289bypNbi1sKlBuKzIwNDg+PjEyO2w9eTtmPWYraCsxPj4xO2g9Zi1oO3U9dStjKzE+PjE7Yz11LWM7cz1zK2wrMT4+MTtsPXMtbDtpPWkrbysxPj4xO289aS1vO3k9ZipEbit1KkhuKzIwNDg+PjEyO2Y9ZipIbi11KkRuKzIwNDg+PjEyO3U9eTt5PWMqQm4raCpSbisyMDQ4Pj4xMjtjPWMqUm4taCpCbisyMDQ4Pj4xMjtoPXk7bT1zK3U7az1zLXU7cD1pK2g7aj1pLWg7ZD1vK2M7dz1vLWM7Zz1sK2Y7Yj1sLWY7bTwxNj9tPTA6bT49NDA4MD9tPTI1NTptPj49NDtwPDE2P3A9MDpwPj00MDgwP3A9MjU1OnA+Pj00O2Q8MTY/ZD0wOmQ+PTQwODA/ZD0yNTU6ZD4+PTQ7ZzwxNj9nPTA6Zz49NDA4MD9nPTI1NTpnPj49NDtiPDE2P2I9MDpiPj00MDgwP2I9MjU1OmI+Pj00O3c8MTY/dz0wOnc+PTQwODA/dz0yNTU6dz4+PTQ7ajwxNj9qPTA6aj49NDA4MD9qPTI1NTpqPj49NDtrPDE2P2s9MDprPj00MDgwP2s9MjU1Oms+Pj00O3JbdCtlXT1tO3JbdCtlKzhdPXA7clt0K2UrMTZdPWQ7clt0K2UrMjRdPWc7clt0K2UrMzJdPWI7clt0K2UrNDBdPXc7clt0K2UrNDhdPWo7clt0K2UrNTZdPWt9ZWxzZXt5PUVuKm0rODE5Mj4+MTQ7eT15PC0yMDQwPzA6eT49MjAyND8yNTU6eSsyMDU2Pj40O3JbdCtlXT15O3JbdCtlKzhdPXk7clt0K2UrMTZdPXk7clt0K2UrMjRdPXk7clt0K2UrMzJdPXk7clt0K2UrNDBdPXk7clt0K2UrNDhdPXk7clt0K2UrNTZdPXl9fX1mdW5jdGlvbiBidWlsZENvbXBvbmVudERhdGEoZSx0KXtjb25zdCBuPXQuYmxvY2tzUGVyTGluZSxhPXQuYmxvY2tzUGVyQ29sdW1uLHI9bmV3IEludDE2QXJyYXkoNjQpO2ZvcihsZXQgZT0wO2U8YTtlKyspZm9yKGxldCBhPTA7YTxuO2ErKyl7cXVhbnRpemVBbmRJbnZlcnNlKHQsZ2V0QmxvY2tCdWZmZXJPZmZzZXQodCxlLGEpLHIpfXJldHVybiB0LmJsb2NrRGF0YX1mdW5jdGlvbiBmaW5kTmV4dEZpbGVNYXJrZXIoZSx0LG49dCl7Y29uc3QgYT1lLmxlbmd0aC0xO2xldCByPW48dD9uOnQ7aWYodD49YSlyZXR1cm4gbnVsbDtjb25zdCBzPXJlYWRVaW50MTYoZSx0KTtpZihzPj02NTQ3MiYmczw9NjU1MzQpcmV0dXJue2ludmFsaWQ6bnVsbCxtYXJrZXI6cyxvZmZzZXQ6dH07bGV0IGk9cmVhZFVpbnQxNihlLHIpO2Zvcig7IShpPj02NTQ3MiYmaTw9NjU1MzQpOyl7aWYoKytyPj1hKXJldHVybiBudWxsO2k9cmVhZFVpbnQxNihlLHIpfXJldHVybntpbnZhbGlkOnMudG9TdHJpbmcoMTYpLG1hcmtlcjppLG9mZnNldDpyfX1mdW5jdGlvbiBwcmVwYXJlQ29tcG9uZW50cyhlKXtjb25zdCB0PU1hdGguY2VpbChlLnNhbXBsZXNQZXJMaW5lLzgvZS5tYXhIKSxuPU1hdGguY2VpbChlLnNjYW5MaW5lcy84L2UubWF4Vik7Zm9yKGNvbnN0IGEgb2YgZS5jb21wb25lbnRzKXtjb25zdCByPU1hdGguY2VpbChNYXRoLmNlaWwoZS5zYW1wbGVzUGVyTGluZS84KSphLmgvZS5tYXhIKSxzPU1hdGguY2VpbChNYXRoLmNlaWwoZS5zY2FuTGluZXMvOCkqYS52L2UubWF4ViksaT10KmEuaCxvPTY0KihuKmEudikqKGkrMSk7YS5ibG9ja0RhdGE9bmV3IEludDE2QXJyYXkobyk7YS5ibG9ja3NQZXJMaW5lPXI7YS5ibG9ja3NQZXJDb2x1bW49c31lLm1jdXNQZXJMaW5lPXQ7ZS5tY3VzUGVyQ29sdW1uPW59ZnVuY3Rpb24gcmVhZERhdGFCbG9jayhlLHQpe2NvbnN0IG49cmVhZFVpbnQxNihlLHQpO2xldCBhPSh0Kz0yKStuLTI7Y29uc3Qgcj1maW5kTmV4dEZpbGVNYXJrZXIoZSxhLHQpO2lmKHI/LmludmFsaWQpe3dhcm4oInJlYWREYXRhQmxvY2sgLSBpbmNvcnJlY3QgbGVuZ3RoLCBjdXJyZW50IG1hcmtlciBpczogIityLmludmFsaWQpO2E9ci5vZmZzZXR9Y29uc3Qgcz1lLnN1YmFycmF5KHQsYSk7cmV0dXJue2FwcERhdGE6cyxvbGRPZmZzZXQ6dCxuZXdPZmZzZXQ6dCtzLmxlbmd0aH19ZnVuY3Rpb24gc2tpcERhdGEoZSx0KXtjb25zdCBuPXJlYWRVaW50MTYoZSx0KSxhPSh0Kz0yKStuLTIscj1maW5kTmV4dEZpbGVNYXJrZXIoZSxhLHQpO3JldHVybiByPy5pbnZhbGlkP3Iub2Zmc2V0OmF9Y2xhc3MgSnBlZ0ltYWdle2NvbnN0cnVjdG9yKHtkZWNvZGVUcmFuc2Zvcm06ZT1udWxsLGNvbG9yVHJhbnNmb3JtOnQ9LTF9PXt9KXt0aGlzLl9kZWNvZGVUcmFuc2Zvcm09ZTt0aGlzLl9jb2xvclRyYW5zZm9ybT10fXN0YXRpYyBjYW5Vc2VJbWFnZURlY29kZXIoZSx0PS0xKXtsZXQgbj1udWxsLGE9MCxyPW51bGwscz1yZWFkVWludDE2KGUsYSk7YSs9MjtpZig2NTQ5NiE9PXMpdGhyb3cgbmV3IEpwZWdFcnJvcigiU09JIG5vdCBmb3VuZCIpO3M9cmVhZFVpbnQxNihlLGEpO2ErPTI7ZTpmb3IoOzY1NDk3IT09czspe3N3aXRjaChzKXtjYXNlIDY1NTA1OmNvbnN0e2FwcERhdGE6dCxvbGRPZmZzZXQ6aSxuZXdPZmZzZXQ6b309cmVhZERhdGFCbG9jayhlLGEpO2E9bztpZig2OT09PXRbMF0mJjEyMD09PXRbMV0mJjEwNT09PXRbMl0mJjEwMj09PXRbM10mJjA9PT10WzRdJiYwPT09dFs1XSl7aWYobil0aHJvdyBuZXcgSnBlZ0Vycm9yKCJEdXBsaWNhdGUgRVhJRi1ibG9ja3MgZm91bmQuIik7bj17ZXhpZlN0YXJ0OmkrNixleGlmRW5kOm99fXM9cmVhZFVpbnQxNihlLGEpO2ErPTI7Y29udGludWU7Y2FzZSA2NTQ3MjpjYXNlIDY1NDczOmNhc2UgNjU0NzQ6cj1lW2ErN107YnJlYWsgZTtjYXNlIDY1NTM1OjI1NSE9PWVbYV0mJmEtLX1hPXNraXBEYXRhKGUsYSk7cz1yZWFkVWludDE2KGUsYSk7YSs9Mn1yZXR1cm4gND09PXJ8fDM9PT1yJiYwPT09dD9udWxsOm58fHt9fXBhcnNlKGUse2RubFNjYW5MaW5lczp0PW51bGx9PXt9KXtsZXQgbixhLHI9MCxzPW51bGwsaT1udWxsLG89MDtjb25zdCBsPVtdLGY9W10sYz1bXTtsZXQgaD1yZWFkVWludDE2KGUscik7cis9MjtpZig2NTQ5NiE9PWgpdGhyb3cgbmV3IEpwZWdFcnJvcigiU09JIG5vdCBmb3VuZCIpO2g9cmVhZFVpbnQxNihlLHIpO3IrPTI7ZTpmb3IoOzY1NDk3IT09aDspe2xldCB1LG0scDtzd2l0Y2goaCl7Y2FzZSA2NTUwNDpjYXNlIDY1NTA1OmNhc2UgNjU1MDY6Y2FzZSA2NTUwNzpjYXNlIDY1NTA4OmNhc2UgNjU1MDk6Y2FzZSA2NTUxMDpjYXNlIDY1NTExOmNhc2UgNjU1MTI6Y2FzZSA2NTUxMzpjYXNlIDY1NTE0OmNhc2UgNjU1MTU6Y2FzZSA2NTUxNjpjYXNlIDY1NTE3OmNhc2UgNjU1MTg6Y2FzZSA2NTUxOTpjYXNlIDY1NTM0OmNvbnN0e2FwcERhdGE6ZCxuZXdPZmZzZXQ6Z309cmVhZERhdGFCbG9jayhlLHIpO3I9Zzs2NTUwND09PWgmJjc0PT09ZFswXSYmNzA9PT1kWzFdJiY3Mz09PWRbMl0mJjcwPT09ZFszXSYmMD09PWRbNF0mJihzPXt2ZXJzaW9uOnttYWpvcjpkWzVdLG1pbm9yOmRbNl19LGRlbnNpdHlVbml0czpkWzddLHhEZW5zaXR5OmRbOF08PDh8ZFs5XSx5RGVuc2l0eTpkWzEwXTw8OHxkWzExXSx0aHVtYldpZHRoOmRbMTJdLHRodW1iSGVpZ2h0OmRbMTNdLHRodW1iRGF0YTpkLnN1YmFycmF5KDE0LDE0KzMqZFsxMl0qZFsxM10pfSk7NjU1MTg9PT1oJiY2NT09PWRbMF0mJjEwMD09PWRbMV0mJjExMT09PWRbMl0mJjk4PT09ZFszXSYmMTAxPT09ZFs0XSYmKGk9e3ZlcnNpb246ZFs1XTw8OHxkWzZdLGZsYWdzMDpkWzddPDw4fGRbOF0sZmxhZ3MxOmRbOV08PDh8ZFsxMF0sdHJhbnNmb3JtQ29kZTpkWzExXX0pO2JyZWFrO2Nhc2UgNjU0OTk6Y29uc3QgYj1yZWFkVWludDE2KGUscik7cis9Mjtjb25zdCB3PWIrci0yO2xldCBqO2Zvcig7cjx3Oyl7Y29uc3QgdD1lW3IrK10sbj1uZXcgVWludDE2QXJyYXkoNjQpO2lmKHQ+PjQpe2lmKHQ+PjQhPTEpdGhyb3cgbmV3IEpwZWdFcnJvcigiRFFUIC0gaW52YWxpZCB0YWJsZSBzcGVjIik7Zm9yKG09MDttPDY0O20rKyl7aj1PblttXTtuW2pdPXJlYWRVaW50MTYoZSxyKTtyKz0yfX1lbHNlIGZvcihtPTA7bTw2NDttKyspe2o9T25bbV07bltqXT1lW3IrK119bFsxNSZ0XT1ufWJyZWFrO2Nhc2UgNjU0NzI6Y2FzZSA2NTQ3MzpjYXNlIDY1NDc0OmlmKG4pdGhyb3cgbmV3IEpwZWdFcnJvcigiT25seSBzaW5nbGUgZnJhbWUgSlBFR3Mgc3VwcG9ydGVkIik7cis9MjtuPXt9O24uZXh0ZW5kZWQ9NjU0NzM9PT1oO24ucHJvZ3Jlc3NpdmU9NjU0NzQ9PT1oO24ucHJlY2lzaW9uPWVbcisrXTtjb25zdCBrPXJlYWRVaW50MTYoZSxyKTtyKz0yO24uc2NhbkxpbmVzPXR8fGs7bi5zYW1wbGVzUGVyTGluZT1yZWFkVWludDE2KGUscik7cis9MjtuLmNvbXBvbmVudHM9W107bi5jb21wb25lbnRJZHM9e307Y29uc3QgeT1lW3IrK107bGV0IHE9MCx2PTA7Zm9yKHU9MDt1PHk7dSsrKXtjb25zdCB0PWVbcl0sYT1lW3IrMV0+PjQscz0xNSZlW3IrMV07cTxhJiYocT1hKTt2PHMmJih2PXMpO2NvbnN0IGk9ZVtyKzJdO3A9bi5jb21wb25lbnRzLnB1c2goe2g6YSx2OnMscXVhbnRpemF0aW9uSWQ6aSxxdWFudGl6YXRpb25UYWJsZTpudWxsfSk7bi5jb21wb25lbnRJZHNbdF09cC0xO3IrPTN9bi5tYXhIPXE7bi5tYXhWPXY7cHJlcGFyZUNvbXBvbmVudHMobik7YnJlYWs7Y2FzZSA2NTQ3Njpjb25zdCBTPXJlYWRVaW50MTYoZSxyKTtyKz0yO2Zvcih1PTI7dTxTOyl7Y29uc3QgdD1lW3IrK10sbj1uZXcgVWludDhBcnJheSgxNik7bGV0IGE9MDtmb3IobT0wO208MTY7bSsrLHIrKylhKz1uW21dPWVbcl07Y29uc3Qgcz1uZXcgVWludDhBcnJheShhKTtmb3IobT0wO208YTttKysscisrKXNbbV09ZVtyXTt1Kz0xNythOyh0Pj40P2Y6YylbMTUmdF09YnVpbGRIdWZmbWFuVGFibGUobixzKX1icmVhaztjYXNlIDY1NTAxOnIrPTI7YT1yZWFkVWludDE2KGUscik7cis9MjticmVhaztjYXNlIDY1NDk4OmNvbnN0IHg9MT09PSsrbyYmIXQ7cis9Mjtjb25zdCBDPWVbcisrXSxUPVtdO2Zvcih1PTA7dTxDO3UrKyl7Y29uc3QgdD1lW3IrK10sYT1uLmNvbXBvbmVudElkc1t0XSxzPW4uY29tcG9uZW50c1thXTtzLmluZGV4PXQ7Y29uc3QgaT1lW3IrK107cy5odWZmbWFuVGFibGVEQz1jW2k+PjRdO3MuaHVmZm1hblRhYmxlQUM9ZlsxNSZpXTtULnB1c2gocyl9Y29uc3QgTz1lW3IrK10sUj1lW3IrK10sSD1lW3IrK107dHJ5e3IrPWRlY29kZVNjYW4oZSxyLG4sVCxhLE8sUixIPj40LDE1JkgseCl9Y2F0Y2godCl7aWYodCBpbnN0YW5jZW9mIEROTE1hcmtlckVycm9yKXt3YXJuKGAke3QubWVzc2FnZX0gLS0gYXR0ZW1wdGluZyB0byByZS1wYXJzZSB0aGUgSlBFRyBpbWFnZS5gKTtyZXR1cm4gdGhpcy5wYXJzZShlLHtkbmxTY2FuTGluZXM6dC5zY2FuTGluZXN9KX1pZih0IGluc3RhbmNlb2YgRU9JTWFya2VyRXJyb3Ipe3dhcm4oYCR7dC5tZXNzYWdlfSAtLSBpZ25vcmluZyB0aGUgcmVzdCBvZiB0aGUgaW1hZ2UgZGF0YS5gKTticmVhayBlfXRocm93IHR9YnJlYWs7Y2FzZSA2NTUwMDpyKz00O2JyZWFrO2Nhc2UgNjU1MzU6MjU1IT09ZVtyXSYmci0tO2JyZWFrO2RlZmF1bHQ6Y29uc3QgRD1maW5kTmV4dEZpbGVNYXJrZXIoZSxyLTIsci0zKTtpZihEPy5pbnZhbGlkKXt3YXJuKCJKcGVnSW1hZ2UucGFyc2UgLSB1bmV4cGVjdGVkIGRhdGEsIGN1cnJlbnQgbWFya2VyIGlzOiAiK0QuaW52YWxpZCk7cj1ELm9mZnNldDticmVha31pZighRHx8cj49ZS5sZW5ndGgtMSl7d2FybigiSnBlZ0ltYWdlLnBhcnNlIC0gcmVhY2hlZCB0aGUgZW5kIG9mIHRoZSBpbWFnZSBkYXRhIHdpdGhvdXQgZmluZGluZyBhbiBFT0kgbWFya2VyICgweEZGRDkpLiIpO2JyZWFrIGV9dGhyb3cgbmV3IEpwZWdFcnJvcigiSnBlZ0ltYWdlLnBhcnNlIC0gdW5rbm93biBtYXJrZXI6ICIraC50b1N0cmluZygxNikpfWg9cmVhZFVpbnQxNihlLHIpO3IrPTJ9aWYoIW4pdGhyb3cgbmV3IEpwZWdFcnJvcigiSnBlZ0ltYWdlLnBhcnNlIC0gbm8gZnJhbWUgZGF0YSBmb3VuZC4iKTt0aGlzLndpZHRoPW4uc2FtcGxlc1BlckxpbmU7dGhpcy5oZWlnaHQ9bi5zY2FuTGluZXM7dGhpcy5qZmlmPXM7dGhpcy5hZG9iZT1pO3RoaXMuY29tcG9uZW50cz1bXTtmb3IoY29uc3QgZSBvZiBuLmNvbXBvbmVudHMpe2NvbnN0IHQ9bFtlLnF1YW50aXphdGlvbklkXTt0JiYoZS5xdWFudGl6YXRpb25UYWJsZT10KTt0aGlzLmNvbXBvbmVudHMucHVzaCh7aW5kZXg6ZS5pbmRleCxvdXRwdXQ6YnVpbGRDb21wb25lbnREYXRhKDAsZSksc2NhbGVYOmUuaC9uLm1heEgsc2NhbGVZOmUudi9uLm1heFYsYmxvY2tzUGVyTGluZTplLmJsb2Nrc1BlckxpbmUsYmxvY2tzUGVyQ29sdW1uOmUuYmxvY2tzUGVyQ29sdW1ufSl9dGhpcy5udW1Db21wb25lbnRzPXRoaXMuY29tcG9uZW50cy5sZW5ndGh9X2dldExpbmVhcml6ZWRCbG9ja0RhdGEoZSx0LG49ITEpe2NvbnN0IGE9dGhpcy53aWR0aC9lLHI9dGhpcy5oZWlnaHQvdDtsZXQgcyxpLG8sbCxmLGMsaCx1LG0scCxkLGc9MDtjb25zdCBiPXRoaXMuY29tcG9uZW50cy5sZW5ndGgsdz1lKnQqYixqPW5ldyBVaW50OENsYW1wZWRBcnJheSh3KSxrPW5ldyBVaW50MzJBcnJheShlKSx5PTQyOTQ5NjcyODg7bGV0IHE7Zm9yKGg9MDtoPGI7aCsrKXtzPXRoaXMuY29tcG9uZW50c1toXTtpPXMuc2NhbGVYKmE7bz1zLnNjYWxlWSpyO2c9aDtkPXMub3V0cHV0O2w9cy5ibG9ja3NQZXJMaW5lKzE8PDM7aWYoaSE9PXEpe2ZvcihmPTA7ZjxlO2YrKyl7dT0wfGYqaTtrW2ZdPSh1JnkpPDwzfDcmdX1xPWl9Zm9yKGM9MDtjPHQ7YysrKXt1PTB8YypvO3A9bCoodSZ5KXwoNyZ1KTw8Mztmb3IoZj0wO2Y8ZTtmKyspe2pbZ109ZFtwK2tbZl1dO2crPWJ9fX1sZXQgdj10aGlzLl9kZWNvZGVUcmFuc2Zvcm07bnx8NCE9PWJ8fHZ8fCh2PW5ldyBJbnQzMkFycmF5KFstMjU2LDI1NSwtMjU2LDI1NSwtMjU2LDI1NSwtMjU2LDI1NV0pKTtpZih2KWZvcihoPTA7aDx3Oylmb3IodT0wLG09MDt1PGI7dSsrLGgrKyxtKz0yKWpbaF09KGpbaF0qdlttXT4+OCkrdlttKzFdO3JldHVybiBqfWdldCBfaXNDb2xvckNvbnZlcnNpb25OZWVkZWQoKXtyZXR1cm4gdGhpcy5hZG9iZT8hIXRoaXMuYWRvYmUudHJhbnNmb3JtQ29kZTozPT09dGhpcy5udW1Db21wb25lbnRzPzAhPT10aGlzLl9jb2xvclRyYW5zZm9ybSYmKDgyIT09dGhpcy5jb21wb25lbnRzWzBdLmluZGV4fHw3MSE9PXRoaXMuY29tcG9uZW50c1sxXS5pbmRleHx8NjYhPT10aGlzLmNvbXBvbmVudHNbMl0uaW5kZXgpOjE9PT10aGlzLl9jb2xvclRyYW5zZm9ybX1fY29udmVydFljY1RvUmdiKGUpe2xldCB0LG4sYTtmb3IobGV0IHI9MCxzPWUubGVuZ3RoO3I8cztyKz0zKXt0PWVbcl07bj1lW3IrMV07YT1lW3IrMl07ZVtyXT10LTE3OS40NTYrMS40MDIqYTtlW3IrMV09dCsxMzUuNDU5LS4zNDQqbi0uNzE0KmE7ZVtyKzJdPXQtMjI2LjgxNisxLjc3MipufXJldHVybiBlfV9jb252ZXJ0WWNjVG9SZ2JhKGUsdCl7Zm9yKGxldCBuPTAsYT0wLHI9ZS5sZW5ndGg7bjxyO24rPTMsYSs9NCl7Y29uc3Qgcj1lW25dLHM9ZVtuKzFdLGk9ZVtuKzJdO3RbYV09ci0xNzkuNDU2KzEuNDAyKmk7dFthKzFdPXIrMTM1LjQ1OS0uMzQ0KnMtLjcxNCppO3RbYSsyXT1yLTIyNi44MTYrMS43NzIqczt0W2ErM109MjU1fXJldHVybiB0fV9jb252ZXJ0WWNja1RvUmdiKGUpe3RoaXMuX2NvbnZlcnRZY2NrVG9DbXlrKGUpO3JldHVybiB0aGlzLl9jb252ZXJ0Q215a1RvUmdiKGUpfV9jb252ZXJ0WWNja1RvUmdiYShlKXt0aGlzLl9jb252ZXJ0WWNja1RvQ215ayhlKTtyZXR1cm4gdGhpcy5fY29udmVydENteWtUb1JnYmEoZSl9X2NvbnZlcnRZY2NrVG9DbXlrKGUpe2xldCB0LG4sYTtmb3IobGV0IHI9MCxzPWUubGVuZ3RoO3I8cztyKz00KXt0PWVbcl07bj1lW3IrMV07YT1lW3IrMl07ZVtyXT00MzQuNDU2LXQtMS40MDIqYTtlW3IrMV09MTE5LjU0MS10Ky4zNDQqbisuNzE0KmE7ZVtyKzJdPTQ4MS44MTYtdC0xLjc3MipufXJldHVybiBlfV9jb252ZXJ0Q215a1RvUmdiKGUpe2NvbnN0IHQ9ZS5sZW5ndGgvNDtDb2xvclNwYWNlVXRpbHMuY215ay5nZXRSZ2JCdWZmZXIoZSwwLHQsZSwwLDgsMCk7cmV0dXJuIGUuc3ViYXJyYXkoMCwzKnQpfV9jb252ZXJ0Q215a1RvUmdiYShlKXtDb2xvclNwYWNlVXRpbHMuY215ay5nZXRSZ2JCdWZmZXIoZSwwLGUubGVuZ3RoLzQsZSwwLDgsMSk7aWYoQ29sb3JTcGFjZVV0aWxzLmNteWsgaW5zdGFuY2VvZiBEZXZpY2VDbXlrQ1MpZm9yKGxldCB0PTMsbj1lLmxlbmd0aDt0PG47dCs9NCllW3RdPTI1NTtyZXR1cm4gZX1nZXREYXRhKHt3aWR0aDplLGhlaWdodDp0LGZvcmNlUkdCQTpuPSExLGZvcmNlUkdCOmE9ITEsaXNTb3VyY2VQREY6cj0hMX0pe2lmKHRoaXMubnVtQ29tcG9uZW50cz40KXRocm93IG5ldyBKcGVnRXJyb3IoIlVuc3VwcG9ydGVkIGNvbG9yIG1vZGUiKTtjb25zdCBzPXRoaXMuX2dldExpbmVhcml6ZWRCbG9ja0RhdGEoZSx0LHIpO2lmKDE9PT10aGlzLm51bUNvbXBvbmVudHMmJihufHxhKSl7Y29uc3QgZT1zLmxlbmd0aCoobj80OjMpLHQ9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGUpO2xldCBhPTA7aWYobikhZnVuY3Rpb24gZ3JheVRvUkdCQShlLHQpe2lmKEZlYXR1cmVUZXN0LmlzTGl0dGxlRW5kaWFuKWZvcihsZXQgbj0wLGE9ZS5sZW5ndGg7bjxhO24rKyl0W25dPTY1NzkzKmVbbl18NDI3ODE5MDA4MDtlbHNlIGZvcihsZXQgbj0wLGE9ZS5sZW5ndGg7bjxhO24rKyl0W25dPTE2ODQzMDA4KmVbbl18MjU1fShzLG5ldyBVaW50MzJBcnJheSh0LmJ1ZmZlcikpO2Vsc2UgZm9yKGNvbnN0IGUgb2Ygcyl7dFthKytdPWU7dFthKytdPWU7dFthKytdPWV9cmV0dXJuIHR9aWYoMz09PXRoaXMubnVtQ29tcG9uZW50cyYmdGhpcy5faXNDb2xvckNvbnZlcnNpb25OZWVkZWQpe2lmKG4pe2NvbnN0IGU9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KHMubGVuZ3RoLzMqNCk7cmV0dXJuIHRoaXMuX2NvbnZlcnRZY2NUb1JnYmEocyxlKX1yZXR1cm4gdGhpcy5fY29udmVydFljY1RvUmdiKHMpfWlmKDQ9PT10aGlzLm51bUNvbXBvbmVudHMpe2lmKHRoaXMuX2lzQ29sb3JDb252ZXJzaW9uTmVlZGVkKXJldHVybiBuP3RoaXMuX2NvbnZlcnRZY2NrVG9SZ2JhKHMpOmE/dGhpcy5fY29udmVydFljY2tUb1JnYihzKTp0aGlzLl9jb252ZXJ0WWNja1RvQ215ayhzKTtpZihuKXJldHVybiB0aGlzLl9jb252ZXJ0Q215a1RvUmdiYShzKTtpZihhKXJldHVybiB0aGlzLl9jb252ZXJ0Q215a1RvUmdiKHMpfXJldHVybiBzfX1jbGFzcyBKcGVnU3RyZWFtIGV4dGVuZHMgRGVjb2RlU3RyZWFte3N0YXRpYyNUPUZlYXR1cmVUZXN0LmlzSW1hZ2VEZWNvZGVyU3VwcG9ydGVkO2NvbnN0cnVjdG9yKGUsdCxuKXtzdXBlcih0KTt0aGlzLnN0cmVhbT1lO3RoaXMuZGljdD1lLmRpY3Q7dGhpcy5tYXliZUxlbmd0aD10O3RoaXMucGFyYW1zPW59c3RhdGljIGdldCBjYW5Vc2VJbWFnZURlY29kZXIoKXtyZXR1cm4gc2hhZG93KHRoaXMsImNhblVzZUltYWdlRGVjb2RlciIsdGhpcy4jVD9JbWFnZURlY29kZXIuaXNUeXBlU3VwcG9ydGVkKCJpbWFnZS9qcGVnIik6UHJvbWlzZS5yZXNvbHZlKCExKSl9c3RhdGljIHNldE9wdGlvbnMoe2lzSW1hZ2VEZWNvZGVyU3VwcG9ydGVkOmU9ITF9KXt0aGlzLiNUPWV9Z2V0IGJ5dGVzKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJieXRlcyIsdGhpcy5zdHJlYW0uZ2V0Qnl0ZXModGhpcy5tYXliZUxlbmd0aCkpfWVuc3VyZUJ1ZmZlcihlKXt9cmVhZEJsb2NrKCl7dGhpcy5kZWNvZGVJbWFnZSgpfWdldCBqcGVnT3B0aW9ucygpe2NvbnN0IGU9e2RlY29kZVRyYW5zZm9ybTp2b2lkIDAsY29sb3JUcmFuc2Zvcm06dm9pZCAwfSx0PXRoaXMuZGljdC5nZXRBcnJheSgiRCIsIkRlY29kZSIpO2lmKCh0aGlzLmZvcmNlUkdCQXx8dGhpcy5mb3JjZVJHQikmJkFycmF5LmlzQXJyYXkodCkpe2NvbnN0IG49dGhpcy5kaWN0LmdldCgiQlBDIiwiQml0c1BlckNvbXBvbmVudCIpfHw4LGE9dC5sZW5ndGgscj1uZXcgSW50MzJBcnJheShhKTtsZXQgcz0hMTtjb25zdCBpPSgxPDxuKS0xO2ZvcihsZXQgZT0wO2U8YTtlKz0yKXtyW2VdPTI1NioodFtlKzFdLXRbZV0pfDA7cltlKzFdPXRbZV0qaXwwOzI1Nj09PXJbZV0mJjA9PT1yW2UrMV18fChzPSEwKX1zJiYoZS5kZWNvZGVUcmFuc2Zvcm09cil9aWYodGhpcy5wYXJhbXMgaW5zdGFuY2VvZiBEaWN0KXtjb25zdCB0PXRoaXMucGFyYW1zLmdldCgiQ29sb3JUcmFuc2Zvcm0iKTtOdW1iZXIuaXNJbnRlZ2VyKHQpJiYoZS5jb2xvclRyYW5zZm9ybT10KX1yZXR1cm4gc2hhZG93KHRoaXMsImpwZWdPcHRpb25zIixlKX0jTihlKXtmb3IobGV0IHQ9MCxuPWUubGVuZ3RoLTE7dDxuO3QrKylpZigyNTU9PT1lW3RdJiYyMTY9PT1lW3QrMV0pe3Q+MCYmKGU9ZS5zdWJhcnJheSh0KSk7YnJlYWt9cmV0dXJuIGV9ZGVjb2RlSW1hZ2UoZSl7aWYodGhpcy5lb2YpcmV0dXJuIHRoaXMuYnVmZmVyO2U9dGhpcy4jTihlfHx0aGlzLmJ5dGVzKTtjb25zdCB0PW5ldyBKcGVnSW1hZ2UodGhpcy5qcGVnT3B0aW9ucyk7dC5wYXJzZShlKTtjb25zdCBuPXQuZ2V0RGF0YSh7d2lkdGg6dGhpcy5kcmF3V2lkdGgsaGVpZ2h0OnRoaXMuZHJhd0hlaWdodCxmb3JjZVJHQkE6dGhpcy5mb3JjZVJHQkEsZm9yY2VSR0I6dGhpcy5mb3JjZVJHQixpc1NvdXJjZVBERjohMH0pO3RoaXMuYnVmZmVyPW47dGhpcy5idWZmZXJMZW5ndGg9bi5sZW5ndGg7dGhpcy5lb2Y9ITA7cmV0dXJuIHRoaXMuYnVmZmVyfWdldCBjYW5Bc3luY0RlY29kZUltYWdlRnJvbUJ1ZmZlcigpe3JldHVybiB0aGlzLnN0cmVhbS5pc0FzeW5jfWFzeW5jIGdldFRyYW5zZmVyYWJsZUltYWdlKCl7aWYoIWF3YWl0IEpwZWdTdHJlYW0uY2FuVXNlSW1hZ2VEZWNvZGVyKXJldHVybiBudWxsO2NvbnN0IGU9dGhpcy5qcGVnT3B0aW9ucztpZihlLmRlY29kZVRyYW5zZm9ybSlyZXR1cm4gbnVsbDtsZXQgdDt0cnl7Y29uc3Qgbj10aGlzLmNhbkFzeW5jRGVjb2RlSW1hZ2VGcm9tQnVmZmVyJiZhd2FpdCB0aGlzLnN0cmVhbS5hc3luY0dldEJ5dGVzKCl8fHRoaXMuYnl0ZXM7aWYoIW4pcmV0dXJuIG51bGw7bGV0IGE9dGhpcy4jTihuKTtjb25zdCByPUpwZWdJbWFnZS5jYW5Vc2VJbWFnZURlY29kZXIoYSxlLmNvbG9yVHJhbnNmb3JtKTtpZighcilyZXR1cm4gbnVsbDtpZihyLmV4aWZTdGFydCl7YT1hLnNsaWNlKCk7YS5maWxsKDAsci5leGlmU3RhcnQsci5leGlmRW5kKX10PW5ldyBJbWFnZURlY29kZXIoe2RhdGE6YSx0eXBlOiJpbWFnZS9qcGVnIixwcmVmZXJBbmltYXRpb246ITF9KTtyZXR1cm4oYXdhaXQgdC5kZWNvZGUoKSkuaW1hZ2V9Y2F0Y2goZSl7d2FybihgZ2V0VHJhbnNmZXJhYmxlSW1hZ2UgLSBmYWlsZWQ6ICIke2V9Ii5gKTtyZXR1cm4gbnVsbH1maW5hbGx5e3Q/LmNsb3NlKCl9fWdldCBpc0ltYWdlU3RyZWFtKCl7cmV0dXJuITB9fWNvbnN0IHpuPWFzeW5jIGZ1bmN0aW9uIE9wZW5KUEVHKGU9e30pe3ZhciB0PWUsbj0iLi90aGlzLnByb2dyYW0iLHF1aXRfPShlLHQpPT57dGhyb3cgdH0sYT1pbXBvcnQubWV0YS51cmw7dHJ5e25ldyBVUkwoIi4iLGEpLmhyZWZ9Y2F0Y2h7fTA7dmFyIHIscyxpLG8sbCxmLGMsaCx1PWNvbnNvbGUubG9nLmJpbmQoY29uc29sZSksbT1jb25zb2xlLmVycm9yLmJpbmQoY29uc29sZSkscD0hMSxkPSExO2Z1bmN0aW9uIHVwZGF0ZU1lbW9yeVZpZXdzKCl7dmFyIGU9by5idWZmZXI7bD1uZXcgSW50OEFycmF5KGUpO25ldyBJbnQxNkFycmF5KGUpO2Y9bmV3IFVpbnQ4QXJyYXkoZSk7bmV3IFVpbnQxNkFycmF5KGUpO2M9bmV3IEludDMyQXJyYXkoZSk7aD1uZXcgVWludDMyQXJyYXkoZSk7bmV3IEZsb2F0MzJBcnJheShlKTtuZXcgRmxvYXQ2NEFycmF5KGUpO25ldyBCaWdJbnQ2NEFycmF5KGUpO25ldyBCaWdVaW50NjRBcnJheShlKX1jbGFzcyBFeGl0U3RhdHVze25hbWU9IkV4aXRTdGF0dXMiO2NvbnN0cnVjdG9yKGUpe3RoaXMubWVzc2FnZT1gUHJvZ3JhbSB0ZXJtaW5hdGVkIHdpdGggZXhpdCgke2V9KWA7dGhpcy5zdGF0dXM9ZX19dmFyIGcsY2FsbFJ1bnRpbWVDYWxsYmFja3M9ZT0+e2Zvcig7ZS5sZW5ndGg+MDspZS5zaGlmdCgpKHQpfSxiPVtdLGFkZE9uUG9zdFJ1bj1lPT5iLnB1c2goZSksdz1bXSxhZGRPblByZVJ1bj1lPT53LnB1c2goZSksaj0hMCxrPTAseT17fSxoYW5kbGVFeGNlcHRpb249ZT0+e2lmKGUgaW5zdGFuY2VvZiBFeGl0U3RhdHVzfHwidW53aW5kIj09ZSlyZXR1cm4gcjtxdWl0XygwLGUpfSxrZWVwUnVudGltZUFsaXZlPSgpPT5qfHxrPjAsX3Byb2NfZXhpdD1lPT57cj1lO2lmKCFrZWVwUnVudGltZUFsaXZlKCkpe3Qub25FeGl0Py4oZSk7cD0hMH1xdWl0XygwLG5ldyBFeGl0U3RhdHVzKGUpKX0sX2V4aXQ9KGUsdCk9PntyPWU7X3Byb2NfZXhpdChlKX0sY2FsbFVzZXJDYWxsYmFjaz1lPT57aWYoIXApdHJ5e2UoKTsoKCk9PntpZigha2VlcFJ1bnRpbWVBbGl2ZSgpKXRyeXtfZXhpdChyKX1jYXRjaChlKXtoYW5kbGVFeGNlcHRpb24oZSl9fSkoKX1jYXRjaChlKXtoYW5kbGVFeGNlcHRpb24oZSl9fSxhbGlnbk1lbW9yeT0oZSx0KT0+TWF0aC5jZWlsKGUvdCkqdCxncm93TWVtb3J5PWU9Pnt2YXIgdD0oZS1vLmJ1ZmZlci5ieXRlTGVuZ3RoKzY1NTM1KS82NTUzNnwwO3RyeXtvLmdyb3codCk7dXBkYXRlTWVtb3J5Vmlld3MoKTtyZXR1cm4gMX1jYXRjaChlKXt9fSxxPXt9LGdldEVudlN0cmluZ3M9KCk9PntpZighZ2V0RW52U3RyaW5ncy5zdHJpbmdzKXt2YXIgZT17VVNFUjoid2ViX3VzZXIiLExPR05BTUU6IndlYl91c2VyIixQQVRIOiIvIixQV0Q6Ii8iLEhPTUU6Ii9ob21lL3dlYl91c2VyIixMQU5HOigib2JqZWN0Ij09dHlwZW9mIG5hdmlnYXRvciYmbmF2aWdhdG9yLmxhbmd1YWdlfHwiQyIpLnJlcGxhY2UoIi0iLCJfIikrIi5VVEYtOCIsXzpufHwiLi90aGlzLnByb2dyYW0ifTtmb3IodmFyIHQgaW4gcSl2b2lkIDA9PT1xW3RdP2RlbGV0ZSBlW3RdOmVbdF09cVt0XTt2YXIgYT1bXTtmb3IodmFyIHQgaW4gZSlhLnB1c2goYCR7dH09JHtlW3RdfWApO2dldEVudlN0cmluZ3Muc3RyaW5ncz1hfXJldHVybiBnZXRFbnZTdHJpbmdzLnN0cmluZ3N9LHN0cmluZ1RvVVRGOD0oZSx0LG4pPT4oKGUsdCxuLGEpPT57aWYoIShhPjApKXJldHVybiAwO2Zvcih2YXIgcj1uLHM9bithLTEsaT0wO2k8ZS5sZW5ndGg7KytpKXt2YXIgbz1lLmNvZGVQb2ludEF0KGkpO2lmKG88PTEyNyl7aWYobj49cylicmVhazt0W24rK109b31lbHNlIGlmKG88PTIwNDcpe2lmKG4rMT49cylicmVhazt0W24rK109MTkyfG8+PjY7dFtuKytdPTEyOHw2MyZvfWVsc2UgaWYobzw9NjU1MzUpe2lmKG4rMj49cylicmVhazt0W24rK109MjI0fG8+PjEyO3RbbisrXT0xMjh8bz4+NiY2Mzt0W24rK109MTI4fDYzJm99ZWxzZXtpZihuKzM+PXMpYnJlYWs7dFtuKytdPTI0MHxvPj4xODt0W24rK109MTI4fG8+PjEyJjYzO3RbbisrXT0xMjh8bz4+NiY2Mzt0W24rK109MTI4fDYzJm87aSsrfX10W25dPTA7cmV0dXJuIG4tcn0pKGUsZix0LG4pLGxlbmd0aEJ5dGVzVVRGOD1lPT57Zm9yKHZhciB0PTAsbj0wO248ZS5sZW5ndGg7KytuKXt2YXIgYT1lLmNoYXJDb2RlQXQobik7aWYoYTw9MTI3KXQrKztlbHNlIGlmKGE8PTIwNDcpdCs9MjtlbHNlIGlmKGE+PTU1Mjk2JiZhPD01NzM0Myl7dCs9NDsrK259ZWxzZSB0Kz0zfXJldHVybiB0fSx2PVtudWxsLFtdLFtdXSxTPSJ1bmRlZmluZWQiIT10eXBlb2YgVGV4dERlY29kZXI/bmV3IFRleHREZWNvZGVyOnZvaWQgMCxVVEY4QXJyYXlUb1N0cmluZz0oZSx0PTAsbixhKT0+e3ZhciByPSgoZSx0LG4sYSk9Pnt2YXIgcj10K247aWYoYSlyZXR1cm4gcjtmb3IoO2VbdF0mJiEodD49cik7KSsrdDtyZXR1cm4gdH0pKGUsdCxuLGEpO2lmKHItdD4xNiYmZS5idWZmZXImJlMpcmV0dXJuIFMuZGVjb2RlKGUuc3ViYXJyYXkodCxyKSk7Zm9yKHZhciBzPSIiO3Q8cjspe3ZhciBpPWVbdCsrXTtpZigxMjgmaSl7dmFyIG89NjMmZVt0KytdO2lmKDE5MiE9KDIyNCZpKSl7dmFyIGw9NjMmZVt0KytdO2lmKChpPTIyND09KDI0MCZpKT8oMTUmaSk8PDEyfG88PDZ8bDooNyZpKTw8MTh8bzw8MTJ8bDw8Nnw2MyZlW3QrK10pPDY1NTM2KXMrPVN0cmluZy5mcm9tQ2hhckNvZGUoaSk7ZWxzZXt2YXIgZj1pLTY1NTM2O3MrPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTZ8Zj4+MTAsNTYzMjB8MTAyMyZmKX19ZWxzZSBzKz1TdHJpbmcuZnJvbUNoYXJDb2RlKCgzMSZpKTw8NnxvKX1lbHNlIHMrPVN0cmluZy5mcm9tQ2hhckNvZGUoaSl9cmV0dXJuIHN9LHByaW50Q2hhcj0oZSx0KT0+e3ZhciBuPXZbZV07aWYoMD09PXR8fDEwPT09dCl7KDE9PT1lP3U6bSkoVVRGOEFycmF5VG9TdHJpbmcobikpO24ubGVuZ3RoPTB9ZWxzZSBuLnB1c2godCl9LFVURjhUb1N0cmluZz0oZSx0LG4pPT5lP1VURjhBcnJheVRvU3RyaW5nKGYsZSx0LG4pOiIiO3Qubm9FeGl0UnVudGltZSYmKGo9dC5ub0V4aXRSdW50aW1lKTt0LnByaW50JiYodT10LnByaW50KTt0LnByaW50RXJyJiYobT10LnByaW50RXJyKTt0Lndhc21CaW5hcnkmJnQud2FzbUJpbmFyeTt0LmFyZ3VtZW50cyYmdC5hcmd1bWVudHM7dC50aGlzUHJvZ3JhbSYmKG49dC50aGlzUHJvZ3JhbSk7aWYodC5wcmVJbml0KXsiZnVuY3Rpb24iPT10eXBlb2YgdC5wcmVJbml0JiYodC5wcmVJbml0PVt0LnByZUluaXRdKTtmb3IoO3QucHJlSW5pdC5sZW5ndGg+MDspdC5wcmVJbml0LnNoaWZ0KCkoKX10LndyaXRlQXJyYXlUb01lbW9yeT0oZSx0KT0+e2wuc2V0KGUsdCl9O3ZhciB4LEM9e2s6KCk9PmZ1bmN0aW9uIGFib3J0KGUpe3Qub25BYm9ydD8uKGUpO20oZT0iQWJvcnRlZCgiK2UrIikiKTtwPSEwO2UrPSIuIEJ1aWxkIHdpdGggLXNBU1NFUlRJT05TIGZvciBtb3JlIGluZm8uIjt2YXIgbj1uZXcgV2ViQXNzZW1ibHkuUnVudGltZUVycm9yKGUpO2k/LihuKTt0aHJvdyBufSgiIiksajooKT0+e2o9ITE7az0wfSxsOihlLHQpPT57aWYoeVtlXSl7Y2xlYXJUaW1lb3V0KHlbZV0uaWQpO2RlbGV0ZSB5W2VdfWlmKCF0KXJldHVybiAwO3ZhciBuPXNldFRpbWVvdXQoKCk9PntkZWxldGUgeVtlXTtjYWxsVXNlckNhbGxiYWNrKCgpPT5nKGUscGVyZm9ybWFuY2Uubm93KCkpKX0sdCk7eVtlXT17aWQ6bix0aW1lb3V0X21zOnR9O3JldHVybiAwfSxmOmZ1bmN0aW9uIF9jb3B5X3BpeGVsc18xKGUsbil7ZT4+PTI7Y29uc3QgYT10LmltYWdlRGF0YT1uZXcgVWludDhDbGFtcGVkQXJyYXkobikscj1jLnN1YmFycmF5KGUsZStuKTthLnNldChyKX0sZTpmdW5jdGlvbiBfY29weV9waXhlbHNfMyhlLG4sYSxyKXtlPj49MjtuPj49MjthPj49Mjtjb25zdCBzPXQuaW1hZ2VEYXRhPW5ldyBVaW50OENsYW1wZWRBcnJheSgzKnIpLGk9Yy5zdWJhcnJheShlLGUrciksbz1jLnN1YmFycmF5KG4sbityKSxsPWMuc3ViYXJyYXkoYSxhK3IpO2ZvcihsZXQgZT0wO2U8cjtlKyspe3NbMyplXT1pW2VdO3NbMyplKzFdPW9bZV07c1szKmUrMl09bFtlXX19LGQ6ZnVuY3Rpb24gX2NvcHlfcGl4ZWxzXzQoZSxuLGEscixzKXtlPj49MjtuPj49MjthPj49MjtyPj49Mjtjb25zdCBpPXQuaW1hZ2VEYXRhPW5ldyBVaW50OENsYW1wZWRBcnJheSg0KnMpLG89Yy5zdWJhcnJheShlLGUrcyksbD1jLnN1YmFycmF5KG4sbitzKSxmPWMuc3ViYXJyYXkoYSxhK3MpLGg9Yy5zdWJhcnJheShyLHIrcyk7Zm9yKGxldCBlPTA7ZTxzO2UrKyl7aVs0KmVdPW9bZV07aVs0KmUrMV09bFtlXTtpWzQqZSsyXT1mW2VdO2lbNCplKzNdPWhbZV19fSxtOmU9Pnt2YXIgdD1mLmxlbmd0aCxuPTIxNDc0ODM2NDg7aWYoKGU+Pj49MCk+bilyZXR1cm4hMTtmb3IodmFyIGE9MTthPD00O2EqPTIpe3ZhciByPXQqKDErLjIvYSk7cj1NYXRoLm1pbihyLGUrMTAwNjYzMjk2KTt2YXIgcz1NYXRoLm1pbihuLGFsaWduTWVtb3J5KE1hdGgubWF4KGUsciksNjU1MzYpKTtpZihncm93TWVtb3J5KHMpKXJldHVybiEwfXJldHVybiExfSxvOihlLHQpPT57dmFyIG49MCxhPTA7Zm9yKHZhciByIG9mIGdldEVudlN0cmluZ3MoKSl7dmFyIHM9dCtuO2hbZSthPj4yXT1zO24rPXN0cmluZ1RvVVRGOChyLHMsMS8wKSsxO2ErPTR9cmV0dXJuIDB9LHA6KGUsdCk9Pnt2YXIgbj1nZXRFbnZTdHJpbmdzKCk7aFtlPj4yXT1uLmxlbmd0aDt2YXIgYT0wO2Zvcih2YXIgciBvZiBuKWErPWxlbmd0aEJ5dGVzVVRGOChyKSsxO2hbdD4+Ml09YTtyZXR1cm4gMH0sbjpmdW5jdGlvbiBfZmRfc2VlayhlLHQsbixhKXt0PShyPXQpPC05MDA3MTk5MjU0NzQwOTkyfHxyPjkwMDcxOTkyNTQ3NDA5OTI/TmFOOk51bWJlcihyKTt2YXIgcjtyZXR1cm4gNzB9LGI6KGUsdCxuLGEpPT57Zm9yKHZhciByPTAscz0wO3M8bjtzKyspe3ZhciBpPWhbdD4+Ml0sbz1oW3QrND4+Ml07dCs9ODtmb3IodmFyIGw9MDtsPG87bCsrKXByaW50Q2hhcihlLGZbaStsXSk7cis9b31oW2E+PjJdPXI7cmV0dXJuIDB9LHE6ZnVuY3Rpb24gX2dyYXlfdG9fcmdiYShlLG4pe2U+Pj0yO2NvbnN0IGE9dC5pbWFnZURhdGE9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDQqbikscj1jLnN1YmFycmF5KGUsZStuKTtmb3IobGV0IGU9MDtlPG47ZSsrKXthWzQqZV09YVs0KmUrMV09YVs0KmUrMl09cltlXTthWzQqZSszXT0yNTV9fSxoOmZ1bmN0aW9uIF9ncmF5YV90b19yZ2JhKGUsbixhKXtlPj49MjtuPj49Mjtjb25zdCByPXQuaW1hZ2VEYXRhPW5ldyBVaW50OENsYW1wZWRBcnJheSg0KmEpLHM9Yy5zdWJhcnJheShlLGUrYSksaT1jLnN1YmFycmF5KG4sbithKTtmb3IobGV0IGU9MDtlPGE7ZSsrKXtyWzQqZV09cls0KmUrMV09cls0KmUrMl09c1tlXTtyWzQqZSszXT1pW2VdfX0sYzpmdW5jdGlvbiBfanNQcmludFdhcm5pbmcoZSl7Y29uc3Qgbj1VVEY4VG9TdHJpbmcoZSk7KHQud2Fybnx8Y29uc29sZS53YXJuKShgT3BlbkpQRUc6ICR7bn1gKX0saTpfcHJvY19leGl0LGc6ZnVuY3Rpb24gX3JnYl90b19yZ2JhKGUsbixhLHIpe2U+Pj0yO24+Pj0yO2E+Pj0yO2NvbnN0IHM9dC5pbWFnZURhdGE9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDQqciksaT1jLnN1YmFycmF5KGUsZStyKSxvPWMuc3ViYXJyYXkobixuK3IpLGw9Yy5zdWJhcnJheShhLGErcik7Zm9yKGxldCBlPTA7ZTxyO2UrKyl7c1s0KmVdPWlbZV07c1s0KmUrMV09b1tlXTtzWzQqZSsyXT1sW2VdO3NbNCplKzNdPTI1NX19LGE6ZnVuY3Rpb24gX3N0b3JlRXJyb3JNZXNzYWdlKGUpe2NvbnN0IG49VVRGOFRvU3RyaW5nKGUpO3QuZXJyb3JNZXNzYWdlcz90LmVycm9yTWVzc2FnZXMrPSJcbiIrbjp0LmVycm9yTWVzc2FnZXM9bn19O3g9YXdhaXQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlV2FzbSgpe2Z1bmN0aW9uIHJlY2VpdmVJbnN0YW5jZShlLG4pe3g9ZS5leHBvcnRzO289eC5yO3VwZGF0ZU1lbW9yeVZpZXdzKCk7IWZ1bmN0aW9uIGFzc2lnbldhc21FeHBvcnRzKGUpe3QuX21hbGxvYz1lLnQ7dC5fZnJlZT1lLnU7dC5fanAyX2RlY29kZT1lLnY7Zz1lLnd9KHgpO3JldHVybiB4fXZhciBlPWZ1bmN0aW9uIGdldFdhc21JbXBvcnRzKCl7cmV0dXJue2E6Q319KCk7cmV0dXJuIG5ldyBQcm9taXNlKChuLGEpPT57dC5pbnN0YW50aWF0ZVdhc20oZSwoZSx0KT0+e24ocmVjZWl2ZUluc3RhbmNlKGUpKX0pfSl9KCk7IWZ1bmN0aW9uIHJ1bigpeyFmdW5jdGlvbiBwcmVSdW4oKXtpZih0LnByZVJ1bil7ImZ1bmN0aW9uIj09dHlwZW9mIHQucHJlUnVuJiYodC5wcmVSdW49W3QucHJlUnVuXSk7Zm9yKDt0LnByZVJ1bi5sZW5ndGg7KWFkZE9uUHJlUnVuKHQucHJlUnVuLnNoaWZ0KCkpfWNhbGxSdW50aW1lQ2FsbGJhY2tzKHcpfSgpO2Z1bmN0aW9uIGRvUnVuKCl7dC5jYWxsZWRSdW49ITA7aWYoIXApeyFmdW5jdGlvbiBpbml0UnVudGltZSgpe2Q9ITA7eC5zKCl9KCk7cz8uKHQpO3Qub25SdW50aW1lSW5pdGlhbGl6ZWQ/LigpOyFmdW5jdGlvbiBwb3N0UnVuKCl7aWYodC5wb3N0UnVuKXsiZnVuY3Rpb24iPT10eXBlb2YgdC5wb3N0UnVuJiYodC5wb3N0UnVuPVt0LnBvc3RSdW5dKTtmb3IoO3QucG9zdFJ1bi5sZW5ndGg7KWFkZE9uUG9zdFJ1bih0LnBvc3RSdW4uc2hpZnQoKSl9Y2FsbFJ1bnRpbWVDYWxsYmFja3MoYil9KCl9fWlmKHQuc2V0U3RhdHVzKXt0LnNldFN0YXR1cygiUnVubmluZy4uLiIpO3NldFRpbWVvdXQoKCk9PntzZXRUaW1lb3V0KCgpPT50LnNldFN0YXR1cygiIiksMSk7ZG9SdW4oKX0sMSl9ZWxzZSBkb1J1bigpfSgpO3JldHVybiBkP3Q6bmV3IFByb21pc2UoKGUsdCk9PntzPWU7aT10fSl9O2NsYXNzIEpweEVycm9yIGV4dGVuZHMgcm57Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwiSnB4RXJyb3IiKX19Y2xhc3MgSnB4SW1hZ2V7c3RhdGljI1I9bnVsbDtzdGF0aWMjQj1udWxsO3N0YXRpYyNIPW51bGw7c3RhdGljI3g9ITA7c3RhdGljI0Q9ITA7c3RhdGljI0E9bnVsbDtzdGF0aWMgc2V0T3B0aW9ucyh7aGFuZGxlcjplLHVzZVdhc206dCx1c2VXb3JrZXJGZXRjaDpuLHdhc21Vcmw6YX0pe3RoaXMuI3g9dDt0aGlzLiNEPW47dGhpcy4jQT1hO258fCh0aGlzLiNCPWUpfXN0YXRpYyBhc3luYyN6KGUpe2NvbnN0IHQ9YCR7dGhpcy4jQX1vcGVuanBlZ19ub3dhc21fZmFsbGJhY2suanNgO2xldCBuPW51bGw7dHJ5e249KGF3YWl0IGltcG9ydCgKLyp3ZWJwYWNrSWdub3JlOiB0cnVlKi8KLypAdml0ZS1pZ25vcmUqLwp0KSkuZGVmYXVsdCgpfWNhdGNoKGUpe3dhcm4oYEpweEltYWdlI2dldEpzTW9kdWxlOiAke2V9YCl9ZShuKX1zdGF0aWMgYXN5bmMjTShlLHQsbil7Y29uc3QgYT0ib3BlbmpwZWcud2FzbSI7dHJ5e3RoaXMuI1J8fCh0aGlzLiNEP3RoaXMuI1I9YXdhaXQgZmV0Y2hCaW5hcnlEYXRhKGAke3RoaXMuI0F9JHthfWApOnRoaXMuI1I9YXdhaXQgdGhpcy4jQi5zZW5kV2l0aFByb21pc2UoIkZldGNoQmluYXJ5RGF0YSIse3R5cGU6Indhc21GYWN0b3J5IixmaWxlbmFtZTphfSkpO3JldHVybiBuKChhd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZSh0aGlzLiNSLHQpKS5pbnN0YW5jZSl9Y2F0Y2godCl7d2FybihgSnB4SW1hZ2UjaW5zdGFudGlhdGVXYXNtOiAke3R9YCk7dGhpcy4jeihlKTtyZXR1cm4gbnVsbH1maW5hbGx5e3RoaXMuI0I9bnVsbH19c3RhdGljIGFzeW5jIGRlY29kZShlLHtudW1Db21wb25lbnRzOnQ9NCxpc0luZGV4ZWRDb2xvcm1hcDpuPSExLHNtYXNrSW5EYXRhOmE9ITEscmVkdWNlUG93ZXI6cj0wfT17fSl7aWYoIXRoaXMuI0gpe2NvbnN0e3Byb21pc2U6ZSxyZXNvbHZlOnR9PVByb21pc2Uud2l0aFJlc29sdmVycygpLG49W2VdO3RoaXMuI3g/bi5wdXNoKHpuKHt3YXJuLGluc3RhbnRpYXRlV2FzbTp0aGlzLiNNLmJpbmQodGhpcyx0KX0pKTp0aGlzLiN6KHQpO3RoaXMuI0g9UHJvbWlzZS5yYWNlKG4pfWNvbnN0IHM9YXdhaXQgdGhpcy4jSDtpZighcyl0aHJvdyBuZXcgSnB4RXJyb3IoIk9wZW5KUEVHIGZhaWxlZCB0byBpbml0aWFsaXplIik7bGV0IGk7dHJ5e2NvbnN0IG89ZS5sZW5ndGg7aT1zLl9tYWxsb2Mobyk7cy53cml0ZUFycmF5VG9NZW1vcnkoZSxpKTtpZihzLl9qcDJfZGVjb2RlKGksbyx0PjA/dDowLCEhbiwhIWEscikpe2NvbnN0e2Vycm9yTWVzc2FnZXM6ZX09cztpZihlKXtkZWxldGUgcy5lcnJvck1lc3NhZ2VzO3Rocm93IG5ldyBKcHhFcnJvcihlKX10aHJvdyBuZXcgSnB4RXJyb3IoIlVua25vd24gZXJyb3IiKX1jb25zdHtpbWFnZURhdGE6bH09cztzLmltYWdlRGF0YT1udWxsO3JldHVybiBsfWZpbmFsbHl7aSYmcy5fZnJlZShpKX19c3RhdGljIGNsZWFudXAoKXt0aGlzLiNIPW51bGx9c3RhdGljIHBhcnNlSW1hZ2VQcm9wZXJ0aWVzKGUpe2xldCB0PWUuZ2V0Qnl0ZSgpO2Zvcig7dD49MDspe2NvbnN0IG49dDt0PWUuZ2V0Qnl0ZSgpO2lmKDY1MzYxPT09KG48PDh8dCkpe2Uuc2tpcCg0KTtjb25zdCB0PWUuZ2V0SW50MzIoKT4+PjAsbj1lLmdldEludDMyKCk+Pj4wLGE9ZS5nZXRJbnQzMigpPj4+MCxyPWUuZ2V0SW50MzIoKT4+PjA7ZS5za2lwKDE2KTtyZXR1cm57d2lkdGg6dC1hLGhlaWdodDpuLXIsYml0c1BlckNvbXBvbmVudDo4LGNvbXBvbmVudHNDb3VudDplLmdldFVpbnQxNigpfX19dGhyb3cgbmV3IEpweEVycm9yKCJObyBzaXplIG1hcmtlciBmb3VuZCBpbiBKUFggc3RyZWFtIil9fWZ1bmN0aW9uIGFkZFN0YXRlKGUsdCxuLGEscil7bGV0IHM9ZTtmb3IobGV0IGU9MCxuPXQubGVuZ3RoLTE7ZTxuO2UrKyl7Y29uc3Qgbj10W2VdO3M9c1tuXXx8PVtdfXNbdC5hdCgtMSldPXtjaGVja0ZuOm4saXRlcmF0ZUZuOmEscHJvY2Vzc0ZuOnJ9fWNvbnN0IF9uPVtdO2FkZFN0YXRlKF9uLFt5ZSx2ZSxfdCxxZV0sbnVsbCxmdW5jdGlvbiBpdGVyYXRlSW5saW5lSW1hZ2VHcm91cChlLHQpe2NvbnN0IG49ZS5mbkFycmF5LGE9KHQtKGUuaUN1cnItMykpJTQ7c3dpdGNoKGEpe2Nhc2UgMDpyZXR1cm4gblt0XT09PXllO2Nhc2UgMTpyZXR1cm4gblt0XT09PXZlO2Nhc2UgMjpyZXR1cm4gblt0XT09PV90O2Nhc2UgMzpyZXR1cm4gblt0XT09PXFlfXRocm93IG5ldyBFcnJvcihgaXRlcmF0ZUlubGluZUltYWdlR3JvdXAgLSBpbnZhbGlkIHBvczogJHthfWApfSxmdW5jdGlvbiBmb3VuZElubGluZUltYWdlR3JvdXAoZSx0KXtjb25zdCBuPWUuZm5BcnJheSxhPWUuYXJnc0FycmF5LHI9ZS5pQ3VycixzPXItMyxpPXItMixvPXItMSxsPU1hdGgubWluKE1hdGguZmxvb3IoKHQtcykvNCksMjAwKTtpZihsPDEwKXJldHVybiB0LSh0LXMpJTQ7bGV0IGY9MDtjb25zdCBjPVtdO2xldCBoPTAsdT0xLG09MTtmb3IobGV0IGU9MDtlPGw7ZSsrKXtjb25zdCB0PWFbaSsoZTw8MildLG49YVtvKyhlPDwyKV1bMF07aWYodStuLndpZHRoPjFlMyl7Zj1NYXRoLm1heChmLHUpO20rPWgrMjt1PTA7aD0wfWMucHVzaCh7dHJhbnNmb3JtOnQseDp1LHk6bSx3Om4ud2lkdGgsaDpuLmhlaWdodH0pO3UrPW4ud2lkdGgrMjtoPU1hdGgubWF4KGgsbi5oZWlnaHQpfWNvbnN0IHA9TWF0aC5tYXgoZix1KSsxLGQ9bStoKzEsZz1uZXcgVWludDhBcnJheShwKmQqNCksYj1wPDwyO2ZvcihsZXQgZT0wO2U8bDtlKyspe2NvbnN0IHQ9YVtvKyhlPDwyKV1bMF0uZGF0YSxuPWNbZV0udzw8MjtsZXQgcj0wLHM9Y1tlXS54K2NbZV0ueSpwPDwyO2cuc2V0KHQuc3ViYXJyYXkoMCxuKSxzLWIpO2ZvcihsZXQgYT0wLGk9Y1tlXS5oO2E8aTthKyspe2cuc2V0KHQuc3ViYXJyYXkocixyK24pLHMpO3IrPW47cys9Yn1nLnNldCh0LnN1YmFycmF5KHItbixyKSxzKTtmb3IoO3M+PTA7KXt0W3MtNF09dFtzXTt0W3MtM109dFtzKzFdO3Rbcy0yXT10W3MrMl07dFtzLTFdPXRbcyszXTt0W3Mrbl09dFtzK24tNF07dFtzK24rMV09dFtzK24tM107dFtzK24rMl09dFtzK24tMl07dFtzK24rM109dFtzK24tMV07cy09Yn19Y29uc3Qgdz17d2lkdGg6cCxoZWlnaHQ6ZH07aWYoZS5pc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZCl7Y29uc3QgZT1uZXcgT2Zmc2NyZWVuQ2FudmFzKHAsZCk7ZS5nZXRDb250ZXh0KCIyZCIpLnB1dEltYWdlRGF0YShuZXcgSW1hZ2VEYXRhKG5ldyBVaW50OENsYW1wZWRBcnJheShnLmJ1ZmZlcikscCxkKSwwLDApO3cuYml0bWFwPWUudHJhbnNmZXJUb0ltYWdlQml0bWFwKCk7dy5kYXRhPW51bGx9ZWxzZXt3LmtpbmQ9Ujt3LmRhdGE9Z31uLnNwbGljZShzLDQqbCxMdCk7YS5zcGxpY2Uocyw0KmwsW3csY10pO3JldHVybiBzKzF9KTthZGRTdGF0ZShfbixbeWUsdmUsRXQscWVdLG51bGwsZnVuY3Rpb24gaXRlcmF0ZUltYWdlTWFza0dyb3VwKGUsdCl7Y29uc3Qgbj1lLmZuQXJyYXksYT0odC0oZS5pQ3Vyci0zKSklNDtzd2l0Y2goYSl7Y2FzZSAwOnJldHVybiBuW3RdPT09eWU7Y2FzZSAxOnJldHVybiBuW3RdPT09dmU7Y2FzZSAyOnJldHVybiBuW3RdPT09RXQ7Y2FzZSAzOnJldHVybiBuW3RdPT09cWV9dGhyb3cgbmV3IEVycm9yKGBpdGVyYXRlSW1hZ2VNYXNrR3JvdXAgLSBpbnZhbGlkIHBvczogJHthfWApfSxmdW5jdGlvbiBmb3VuZEltYWdlTWFza0dyb3VwKGUsdCl7Y29uc3Qgbj1lLmZuQXJyYXksYT1lLmFyZ3NBcnJheSxyPWUuaUN1cnIscz1yLTMsaT1yLTIsbz1yLTE7bGV0IGw9TWF0aC5mbG9vcigodC1zKS80KTtpZihsPDEwKXJldHVybiB0LSh0LXMpJTQ7bGV0IGYsYyxoPSExO2NvbnN0IHU9YVtvXVswXSxtPWFbaV1bMF0scD1hW2ldWzFdLGQ9YVtpXVsyXSxnPWFbaV1bM107aWYocD09PWQpe2g9ITA7Zj1pKzQ7bGV0IGU9bys0O2ZvcihsZXQgdD0xO3Q8bDt0KyssZis9NCxlKz00KXtjPWFbZl07aWYoYVtlXVswXSE9PXV8fGNbMF0hPT1tfHxjWzFdIT09cHx8Y1syXSE9PWR8fGNbM10hPT1nKXt0PDEwP2g9ITE6bD10O2JyZWFrfX19aWYoaCl7bD1NYXRoLm1pbihsLDFlMyk7Y29uc3QgZT1uZXcgRmxvYXQzMkFycmF5KDIqbCk7Zj1pO2ZvcihsZXQgdD0wO3Q8bDt0KyssZis9NCl7Yz1hW2ZdO2VbdDw8MV09Y1s0XTtlWzErKHQ8PDEpXT1jWzVdfW4uc3BsaWNlKHMsNCpsLFh0KTthLnNwbGljZShzLDQqbCxbdSxtLHAsZCxnLGVdKX1lbHNle2w9TWF0aC5taW4obCwxMDApO2NvbnN0IGU9W107Zm9yKGxldCB0PTA7dDxsO3QrKyl7Yz1hW2krKHQ8PDIpXTtjb25zdCBuPWFbbysodDw8MildWzBdO2UucHVzaCh7ZGF0YTpuLmRhdGEsd2lkdGg6bi53aWR0aCxoZWlnaHQ6bi5oZWlnaHQsaW50ZXJwb2xhdGU6bi5pbnRlcnBvbGF0ZSxjb3VudDpuLmNvdW50LHRyYW5zZm9ybTpjfSl9bi5zcGxpY2Uocyw0KmwsTnQpO2Euc3BsaWNlKHMsNCpsLFtlXSl9cmV0dXJuIHMrMX0pO2FkZFN0YXRlKF9uLFt5ZSx2ZSx6dCxxZV0sZnVuY3Rpb24oZSl7Y29uc3QgdD1lLmFyZ3NBcnJheSxuPWUuaUN1cnItMjtyZXR1cm4gMD09PXRbbl1bMV0mJjA9PT10W25dWzJdfSxmdW5jdGlvbiBpdGVyYXRlSW1hZ2VHcm91cChlLHQpe2NvbnN0IG49ZS5mbkFycmF5LGE9ZS5hcmdzQXJyYXkscj0odC0oZS5pQ3Vyci0zKSklNDtzd2l0Y2gocil7Y2FzZSAwOnJldHVybiBuW3RdPT09eWU7Y2FzZSAxOmlmKG5bdF0hPT12ZSlyZXR1cm4hMTtjb25zdCByPWUuaUN1cnItMixzPWFbcl1bMF0saT1hW3JdWzNdO3JldHVybiBhW3RdWzBdPT09cyYmMD09PWFbdF1bMV0mJjA9PT1hW3RdWzJdJiZhW3RdWzNdPT09aTtjYXNlIDI6aWYoblt0XSE9PXp0KXJldHVybiExO2NvbnN0IG89YVtlLmlDdXJyLTFdWzBdO3JldHVybiBhW3RdWzBdPT09bztjYXNlIDM6cmV0dXJuIG5bdF09PT1xZX10aHJvdyBuZXcgRXJyb3IoYGl0ZXJhdGVJbWFnZUdyb3VwIC0gaW52YWxpZCBwb3M6ICR7cn1gKX0sZnVuY3Rpb24oZSx0KXtjb25zdCBuPWUuZm5BcnJheSxhPWUuYXJnc0FycmF5LHI9ZS5pQ3VycixzPXItMyxpPXItMixvPWFbci0xXVswXSxsPWFbaV1bMF0sZj1hW2ldWzNdLGM9TWF0aC5taW4oTWF0aC5mbG9vcigodC1zKS80KSwxZTMpO2lmKGM8MylyZXR1cm4gdC0odC1zKSU0O2NvbnN0IGg9bmV3IEZsb2F0MzJBcnJheSgyKmMpO2xldCB1PWk7Zm9yKGxldCBlPTA7ZTxjO2UrKyx1Kz00KXtjb25zdCB0PWFbdV07aFtlPDwxXT10WzRdO2hbMSsoZTw8MSldPXRbNV19Y29uc3QgbT1bbyxsLGYsaF07bi5zcGxpY2Uocyw0KmMsVXQpO2Euc3BsaWNlKHMsNCpjLG0pO3JldHVybiBzKzF9KTthZGRTdGF0ZShfbixbTGUsR2UsWmUsdHQsVWVdLG51bGwsZnVuY3Rpb24gaXRlcmF0ZVNob3dUZXh0R3JvdXAoZSx0KXtjb25zdCBuPWUuZm5BcnJheSxhPWUuYXJnc0FycmF5LHI9KHQtKGUuaUN1cnItNCkpJTU7c3dpdGNoKHIpe2Nhc2UgMDpyZXR1cm4gblt0XT09PUxlO2Nhc2UgMTpyZXR1cm4gblt0XT09PUdlO2Nhc2UgMjpyZXR1cm4gblt0XT09PVplO2Nhc2UgMzppZihuW3RdIT09dHQpcmV0dXJuITE7Y29uc3Qgcj1lLmlDdXJyLTMscz1hW3JdWzBdLGk9YVtyXVsxXTtyZXR1cm4gYVt0XVswXT09PXMmJmFbdF1bMV09PT1pO2Nhc2UgNDpyZXR1cm4gblt0XT09PVVlfXRocm93IG5ldyBFcnJvcihgaXRlcmF0ZVNob3dUZXh0R3JvdXAgLSBpbnZhbGlkIHBvczogJHtyfWApfSxmdW5jdGlvbihlLHQpe2NvbnN0IG49ZS5mbkFycmF5LGE9ZS5hcmdzQXJyYXkscj1lLmlDdXJyLHM9ci00LGk9ci0zLG89ci0yLGw9ci0xLGY9cixjPWFbaV1bMF0saD1hW2ldWzFdO2xldCB1PU1hdGgubWluKE1hdGguZmxvb3IoKHQtcykvNSksMWUzKTtpZih1PDMpcmV0dXJuIHQtKHQtcyklNTtsZXQgbT1zO2lmKHM+PTQmJm5bcy00XT09PW5baV0mJm5bcy0zXT09PW5bb10mJm5bcy0yXT09PW5bbF0mJm5bcy0xXT09PW5bZl0mJmFbcy00XVswXT09PWMmJmFbcy00XVsxXT09PWgpe3UrKzttLT01fWxldCBwPW0rNDtmb3IobGV0IGU9MTtlPHU7ZSsrKXtuLnNwbGljZShwLDMpO2Euc3BsaWNlKHAsMyk7cCs9Mn1yZXR1cm4gcCsxfSk7YWRkU3RhdGUoX24sW3llLHZlLEt0LHFlXSxlPT57Y29uc3QgdD1lLmFyZ3NBcnJheSxuPXRbZS5pQ3Vyci0xXVswXTtpZihuIT09T2UmJm4hPT1SZSYmbiE9PURlJiZuIT09TWUmJm4hPT1QZSYmbiE9PUVlKXJldHVybiEwO2NvbnN0IGE9dFtlLmlDdXJyLTJdO3JldHVybiAxPT09YVswXSYmMD09PWFbMV0mJjA9PT1hWzJdJiYxPT09YVszXX0sKCk9PiExLChlLHQpPT57Y29uc3R7Zm5BcnJheTpuLGFyZ3NBcnJheTphfT1lLHI9ZS5pQ3VycixzPXItMyxpPXItMixvPWFbci0xXSxsPWFbaV0sWyxbZl0sY109bztpZihjKXtVdGlsLnNjYWxlTWluTWF4KGwsYyk7Zm9yKGxldCBlPTAsdD1mLmxlbmd0aDtlPHQ7KXN3aXRjaChmW2UrK10pe2Nhc2UgWXQ6Y2FzZSBKdDpVdGlsLmFwcGx5VHJhbnNmb3JtKGYsbCxlKTtlKz0yO2JyZWFrO2Nhc2UgUXQ6VXRpbC5hcHBseVRyYW5zZm9ybVRvQmV6aWVyKGYsbCxlKTtlKz02fX1uLnNwbGljZShzLDQsS3QpO2Euc3BsaWNlKHMsNCxvKTtyZXR1cm4gcysxfSk7Y2xhc3MgTnVsbE9wdGltaXplcntjb25zdHJ1Y3RvcihlKXt0aGlzLnF1ZXVlPWV9X29wdGltaXplKCl7fXB1c2goZSx0KXt0aGlzLnF1ZXVlLmZuQXJyYXkucHVzaChlKTt0aGlzLnF1ZXVlLmFyZ3NBcnJheS5wdXNoKHQpO3RoaXMuX29wdGltaXplKCl9Zmx1c2goKXt9cmVzZXQoKXt9fWNsYXNzIFF1ZXVlT3B0aW1pemVyIGV4dGVuZHMgTnVsbE9wdGltaXplcntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTt0aGlzLnN0YXRlPW51bGw7dGhpcy5jb250ZXh0PXtpQ3VycjowLGZuQXJyYXk6ZS5mbkFycmF5LGFyZ3NBcnJheTplLmFyZ3NBcnJheSxpc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZDpPcGVyYXRvckxpc3QuaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWR9O3RoaXMubWF0Y2g9bnVsbDt0aGlzLmxhc3RQcm9jZXNzZWQ9MH1fb3B0aW1pemUoKXtjb25zdCBlPXRoaXMucXVldWUuZm5BcnJheTtsZXQgdD10aGlzLmxhc3RQcm9jZXNzZWQsbj1lLmxlbmd0aCxhPXRoaXMuc3RhdGUscj10aGlzLm1hdGNoO2lmKCFhJiYhciYmdCsxPT09biYmIV9uW2VbdF1dKXt0aGlzLmxhc3RQcm9jZXNzZWQ9bjtyZXR1cm59Y29uc3Qgcz10aGlzLmNvbnRleHQ7Zm9yKDt0PG47KXtpZihyKXtpZigoMCxyLml0ZXJhdGVGbikocyx0KSl7dCsrO2NvbnRpbnVlfXQ9KDAsci5wcm9jZXNzRm4pKHMsdCsxKTtuPWUubGVuZ3RoO3I9bnVsbDthPW51bGw7aWYodD49bilicmVha31hPShhfHxfbilbZVt0XV07aWYoYSYmIUFycmF5LmlzQXJyYXkoYSkpe3MuaUN1cnI9dDt0Kys7aWYoIWEuY2hlY2tGbnx8KDAsYS5jaGVja0ZuKShzKSl7cj1hO2E9bnVsbH1lbHNlIGE9bnVsbH1lbHNlIHQrK310aGlzLnN0YXRlPWE7dGhpcy5tYXRjaD1yO3RoaXMubGFzdFByb2Nlc3NlZD10fWZsdXNoKCl7Zm9yKDt0aGlzLm1hdGNoOyl7Y29uc3QgZT10aGlzLnF1ZXVlLmZuQXJyYXkubGVuZ3RoO3RoaXMubGFzdFByb2Nlc3NlZD0oMCx0aGlzLm1hdGNoLnByb2Nlc3NGbikodGhpcy5jb250ZXh0LGUpO3RoaXMubWF0Y2g9bnVsbDt0aGlzLnN0YXRlPW51bGw7dGhpcy5fb3B0aW1pemUoKX19cmVzZXQoKXt0aGlzLnN0YXRlPW51bGw7dGhpcy5tYXRjaD1udWxsO3RoaXMubGFzdFByb2Nlc3NlZD0wfX1jbGFzcyBPcGVyYXRvckxpc3R7c3RhdGljIENIVU5LX1NJWkU9MWUzO3N0YXRpYyBDSFVOS19TSVpFX0FCT1VUPXRoaXMuQ0hVTktfU0laRS01O3N0YXRpYyBpc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZD0hMTtjb25zdHJ1Y3RvcihlPTAsdCl7dGhpcy5fc3RyZWFtU2luaz10O3RoaXMuZm5BcnJheT1bXTt0aGlzLmFyZ3NBcnJheT1bXTt0aGlzLm9wdGltaXplcj0hdHx8ZSZwP25ldyBOdWxsT3B0aW1pemVyKHRoaXMpOm5ldyBRdWV1ZU9wdGltaXplcih0aGlzKTt0aGlzLmRlcGVuZGVuY2llcz1uZXcgU2V0O3RoaXMuX3RvdGFsTGVuZ3RoPTA7dGhpcy53ZWlnaHQ9MDt0aGlzLl9yZXNvbHZlZD10P251bGw6UHJvbWlzZS5yZXNvbHZlKCl9c3RhdGljIHNldE9wdGlvbnMoe2lzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkOmV9KXt0aGlzLmlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkPWV9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmFyZ3NBcnJheS5sZW5ndGh9Z2V0IHJlYWR5KCl7cmV0dXJuIHRoaXMuX3Jlc29sdmVkfHx0aGlzLl9zdHJlYW1TaW5rLnJlYWR5fWdldCB0b3RhbExlbmd0aCgpe3JldHVybiB0aGlzLl90b3RhbExlbmd0aCt0aGlzLmxlbmd0aH1hZGRPcChlLHQpe3RoaXMub3B0aW1pemVyLnB1c2goZSx0KTt0aGlzLndlaWdodCsrO3RoaXMuX3N0cmVhbVNpbmsmJih0aGlzLndlaWdodD49T3BlcmF0b3JMaXN0LkNIVU5LX1NJWkV8fHRoaXMud2VpZ2h0Pj1PcGVyYXRvckxpc3QuQ0hVTktfU0laRV9BQk9VVCYmKGU9PT1xZXx8ZT09PVVlKSkmJnRoaXMuZmx1c2goKX1hZGRJbWFnZU9wcyhlLHQsbixhPSExKXtpZihhKXt0aGlzLmFkZE9wKHllKTt0aGlzLmFkZE9wKGtlLFtbWyJTTWFzayIsITFdXV0pfXZvaWQgMCE9PW4mJnRoaXMuYWRkT3AoSXQsWyJPQyIsbl0pO3RoaXMuYWRkT3AoZSx0KTt2b2lkIDAhPT1uJiZ0aGlzLmFkZE9wKEZ0LFtdKTthJiZ0aGlzLmFkZE9wKHFlKX1hZGREZXBlbmRlbmN5KGUpe2lmKCF0aGlzLmRlcGVuZGVuY2llcy5oYXMoZSkpe3RoaXMuZGVwZW5kZW5jaWVzLmFkZChlKTt0aGlzLmFkZE9wKHVlLFtlXSl9fWFkZERlcGVuZGVuY2llcyhlKXtmb3IoY29uc3QgdCBvZiBlKXRoaXMuYWRkRGVwZW5kZW5jeSh0KX1hZGRPcExpc3QoZSl7aWYoZSBpbnN0YW5jZW9mIE9wZXJhdG9yTGlzdCl7Zm9yKGNvbnN0IHQgb2YgZS5kZXBlbmRlbmNpZXMpdGhpcy5kZXBlbmRlbmNpZXMuYWRkKHQpO2ZvcihsZXQgdD0wLG49ZS5sZW5ndGg7dDxuO3QrKyl0aGlzLmFkZE9wKGUuZm5BcnJheVt0XSxlLmFyZ3NBcnJheVt0XSl9ZWxzZSB3YXJuKCdhZGRPcExpc3QgLSBpZ25vcmluZyBpbnZhbGlkICJvcExpc3QiIHBhcmFtZXRlci4nKX1nZXRJUigpe3JldHVybntmbkFycmF5OnRoaXMuZm5BcnJheSxhcmdzQXJyYXk6dGhpcy5hcmdzQXJyYXksbGVuZ3RoOnRoaXMubGVuZ3RofX1nZXQgX3RyYW5zZmVycygpe2NvbnN0IGU9W10se2ZuQXJyYXk6dCxhcmdzQXJyYXk6bixsZW5ndGg6YX09dGhpcztmb3IobGV0IHI9MDtyPGE7cisrKXN3aXRjaCh0W3JdKXtjYXNlIF90OmNhc2UgTHQ6Y2FzZSBFdDp7Y29uc3R7Yml0bWFwOnQsZGF0YTphfT1uW3JdWzBdOyh0fHxhPy5idWZmZXIpJiZlLnB1c2godHx8YS5idWZmZXIpO2JyZWFrfWNhc2UgS3Q6e2NvbnN0WyxbdF0sYV09bltyXTt0JiZlLnB1c2godC5idWZmZXIsYS5idWZmZXIpO2JyZWFrfWNhc2UgUnQ6Y29uc3RbdCxhXT1uW3JdO3QmJmUucHVzaCh0LmJ1ZmZlcik7YSYmZS5wdXNoKGEuYnVmZmVyKTticmVhaztjYXNlIFplOmUucHVzaChuW3JdWzBdLmJ1ZmZlcil9cmV0dXJuIGV9Zmx1c2goZT0hMSx0PW51bGwpe3RoaXMub3B0aW1pemVyLmZsdXNoKCk7Y29uc3Qgbj10aGlzLmxlbmd0aDt0aGlzLl90b3RhbExlbmd0aCs9bjt0aGlzLl9zdHJlYW1TaW5rLmVucXVldWUoe2ZuQXJyYXk6dGhpcy5mbkFycmF5LGFyZ3NBcnJheTp0aGlzLmFyZ3NBcnJheSxsYXN0Q2h1bms6ZSxzZXBhcmF0ZUFubm90czp0LGxlbmd0aDpufSwxLHRoaXMuX3RyYW5zZmVycyk7dGhpcy5kZXBlbmRlbmNpZXMuY2xlYXIoKTt0aGlzLmZuQXJyYXkubGVuZ3RoPTA7dGhpcy5hcmdzQXJyYXkubGVuZ3RoPTA7dGhpcy53ZWlnaHQ9MDt0aGlzLm9wdGltaXplci5yZXNldCgpfX1fX3dlYnBhY2tfcmVxdWlyZV9fKDExNiksX193ZWJwYWNrX3JlcXVpcmVfXyg3NTg4KTtmdW5jdGlvbiBoZXhUb0ludChlLHQpe2xldCBuPTA7Zm9yKGxldCBhPTA7YTw9dDthKyspbj1uPDw4fGVbYV07cmV0dXJuIG4+Pj4wfWZ1bmN0aW9uIGhleFRvU3RyKGUsdCl7cmV0dXJuIDE9PT10P1N0cmluZy5mcm9tQ2hhckNvZGUoZVswXSxlWzFdKTozPT09dD9TdHJpbmcuZnJvbUNoYXJDb2RlKGVbMF0sZVsxXSxlWzJdLGVbM10pOlN0cmluZy5mcm9tQ2hhckNvZGUoLi4uZS5zdWJhcnJheSgwLHQrMSkpfWZ1bmN0aW9uIGFkZEhleChlLHQsbil7bGV0IGE9MDtmb3IobGV0IHI9bjtyPj0wO3ItLSl7YSs9ZVtyXSt0W3JdO2Vbcl09MjU1JmE7YT4+PTh9fWZ1bmN0aW9uIGluY0hleChlLHQpe2xldCBuPTE7Zm9yKGxldCBhPXQ7YT49MCYmbj4wO2EtLSl7bis9ZVthXTtlW2FdPTI1NSZuO24+Pj04fX1jb25zdCBMbj0xNjtjbGFzcyBCaW5hcnlDTWFwU3RyZWFte2NvbnN0cnVjdG9yKGUpe3RoaXMuYnVmZmVyPWU7dGhpcy5wb3M9MDt0aGlzLmVuZD1lLmxlbmd0aDt0aGlzLnRtcEJ1Zj1uZXcgVWludDhBcnJheSgxOSl9cmVhZEJ5dGUoKXtyZXR1cm4gdGhpcy5wb3M+PXRoaXMuZW5kPy0xOnRoaXMuYnVmZmVyW3RoaXMucG9zKytdfXJlYWROdW1iZXIoKXtsZXQgZSx0PTA7ZG97Y29uc3Qgbj10aGlzLnJlYWRCeXRlKCk7aWYobjwwKXRocm93IG5ldyBGb3JtYXRFcnJvcigidW5leHBlY3RlZCBFT0YgaW4gYmNtYXAiKTtlPSEoMTI4Jm4pO3Q9dDw8N3wxMjcmbn13aGlsZSghZSk7cmV0dXJuIHR9cmVhZFNpZ25lZCgpe2NvbnN0IGU9dGhpcy5yZWFkTnVtYmVyKCk7cmV0dXJuIDEmZT9+KGU+Pj4xKTplPj4+MX1yZWFkSGV4KGUsdCl7ZS5zZXQodGhpcy5idWZmZXIuc3ViYXJyYXkodGhpcy5wb3MsdGhpcy5wb3MrdCsxKSk7dGhpcy5wb3MrPXQrMX1yZWFkSGV4TnVtYmVyKGUsdCl7bGV0IG47Y29uc3QgYT10aGlzLnRtcEJ1ZjtsZXQgcj0wO2Rve2NvbnN0IGU9dGhpcy5yZWFkQnl0ZSgpO2lmKGU8MCl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoInVuZXhwZWN0ZWQgRU9GIGluIGJjbWFwIik7bj0hKDEyOCZlKTthW3IrK109MTI3JmV9d2hpbGUoIW4pO2xldCBzPXQsaT0wLG89MDtmb3IoO3M+PTA7KXtmb3IoO288OCYmYS5sZW5ndGg+MDspe2l8PWFbLS1yXTw8bztvKz03fWVbc109MjU1Jmk7cy0tO2k+Pj04O28tPTh9fXJlYWRIZXhTaWduZWQoZSx0KXt0aGlzLnJlYWRIZXhOdW1iZXIoZSx0KTtjb25zdCBuPTEmZVt0XT8yNTU6MDtsZXQgYT0wO2ZvcihsZXQgcj0wO3I8PXQ7cisrKXthPSgxJmEpPDw4fGVbcl07ZVtyXT1hPj4xXm59fXJlYWRTdHJpbmcoKXtjb25zdCBlPXRoaXMucmVhZE51bWJlcigpLHQ9bmV3IEFycmF5KGUpO2ZvcihsZXQgbj0wO248ZTtuKyspdFtuXT10aGlzLnJlYWROdW1iZXIoKTtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSguLi50KX19Y2xhc3MgQmluYXJ5Q01hcFJlYWRlcnthc3luYyBwcm9jZXNzKGUsdCxuKXtjb25zdCBhPW5ldyBCaW5hcnlDTWFwU3RyZWFtKGUpLHI9YS5yZWFkQnl0ZSgpO3QudmVydGljYWw9ISEoMSZyKTtsZXQgcz1udWxsO2NvbnN0IGk9bmV3IFVpbnQ4QXJyYXkoTG4pLG89bmV3IFVpbnQ4QXJyYXkoTG4pLGw9bmV3IFVpbnQ4QXJyYXkoTG4pLGY9bmV3IFVpbnQ4QXJyYXkoTG4pLGM9bmV3IFVpbnQ4QXJyYXkoTG4pO2xldCBoLHU7Zm9yKDsodT1hLnJlYWRCeXRlKCkpPj0wOyl7Y29uc3QgZT11Pj41O2lmKDc9PT1lKXtzd2l0Y2goMzEmdSl7Y2FzZSAwOmEucmVhZFN0cmluZygpO2JyZWFrO2Nhc2UgMTpzPWEucmVhZFN0cmluZygpfWNvbnRpbnVlfWNvbnN0IG49ISEoMTYmdSkscj0xNSZ1O2lmKHIrMT5Mbil0aHJvdyBuZXcgRXJyb3IoIkJpbmFyeUNNYXBSZWFkZXIucHJvY2VzczogSW52YWxpZCBkYXRhU2l6ZS4iKTtjb25zdCBtPTEscD1hLnJlYWROdW1iZXIoKTtzd2l0Y2goZSl7Y2FzZSAwOmEucmVhZEhleChpLHIpO2EucmVhZEhleE51bWJlcihvLHIpO2FkZEhleChvLGkscik7dC5hZGRDb2Rlc3BhY2VSYW5nZShyKzEsaGV4VG9JbnQoaSxyKSxoZXhUb0ludChvLHIpKTtmb3IobGV0IGU9MTtlPHA7ZSsrKXtpbmNIZXgobyxyKTthLnJlYWRIZXhOdW1iZXIoaSxyKTthZGRIZXgoaSxvLHIpO2EucmVhZEhleE51bWJlcihvLHIpO2FkZEhleChvLGkscik7dC5hZGRDb2Rlc3BhY2VSYW5nZShyKzEsaGV4VG9JbnQoaSxyKSxoZXhUb0ludChvLHIpKX1icmVhaztjYXNlIDE6YS5yZWFkSGV4KGkscik7YS5yZWFkSGV4TnVtYmVyKG8scik7YWRkSGV4KG8saSxyKTthLnJlYWROdW1iZXIoKTtmb3IobGV0IGU9MTtlPHA7ZSsrKXtpbmNIZXgobyxyKTthLnJlYWRIZXhOdW1iZXIoaSxyKTthZGRIZXgoaSxvLHIpO2EucmVhZEhleE51bWJlcihvLHIpO2FkZEhleChvLGkscik7YS5yZWFkTnVtYmVyKCl9YnJlYWs7Y2FzZSAyOmEucmVhZEhleChsLHIpO2g9YS5yZWFkTnVtYmVyKCk7dC5tYXBPbmUoaGV4VG9JbnQobCxyKSxoKTtmb3IobGV0IGU9MTtlPHA7ZSsrKXtpbmNIZXgobCxyKTtpZighbil7YS5yZWFkSGV4TnVtYmVyKGMscik7YWRkSGV4KGwsYyxyKX1oPWEucmVhZFNpZ25lZCgpKyhoKzEpO3QubWFwT25lKGhleFRvSW50KGwsciksaCl9YnJlYWs7Y2FzZSAzOmEucmVhZEhleChpLHIpO2EucmVhZEhleE51bWJlcihvLHIpO2FkZEhleChvLGkscik7aD1hLnJlYWROdW1iZXIoKTt0Lm1hcENpZFJhbmdlKGhleFRvSW50KGksciksaGV4VG9JbnQobyxyKSxoKTtmb3IobGV0IGU9MTtlPHA7ZSsrKXtpbmNIZXgobyxyKTtpZihuKWkuc2V0KG8pO2Vsc2V7YS5yZWFkSGV4TnVtYmVyKGkscik7YWRkSGV4KGksbyxyKX1hLnJlYWRIZXhOdW1iZXIobyxyKTthZGRIZXgobyxpLHIpO2g9YS5yZWFkTnVtYmVyKCk7dC5tYXBDaWRSYW5nZShoZXhUb0ludChpLHIpLGhleFRvSW50KG8sciksaCl9YnJlYWs7Y2FzZSA0OmEucmVhZEhleChsLG0pO2EucmVhZEhleChmLHIpO3QubWFwT25lKGhleFRvSW50KGwsbSksaGV4VG9TdHIoZixyKSk7Zm9yKGxldCBlPTE7ZTxwO2UrKyl7aW5jSGV4KGwsbSk7aWYoIW4pe2EucmVhZEhleE51bWJlcihjLG0pO2FkZEhleChsLGMsbSl9aW5jSGV4KGYscik7YS5yZWFkSGV4U2lnbmVkKGMscik7YWRkSGV4KGYsYyxyKTt0Lm1hcE9uZShoZXhUb0ludChsLG0pLGhleFRvU3RyKGYscikpfWJyZWFrO2Nhc2UgNTphLnJlYWRIZXgoaSxtKTthLnJlYWRIZXhOdW1iZXIobyxtKTthZGRIZXgobyxpLG0pO2EucmVhZEhleChmLHIpO3QubWFwQmZSYW5nZShoZXhUb0ludChpLG0pLGhleFRvSW50KG8sbSksaGV4VG9TdHIoZixyKSk7Zm9yKGxldCBlPTE7ZTxwO2UrKyl7aW5jSGV4KG8sbSk7aWYobilpLnNldChvKTtlbHNle2EucmVhZEhleE51bWJlcihpLG0pO2FkZEhleChpLG8sbSl9YS5yZWFkSGV4TnVtYmVyKG8sbSk7YWRkSGV4KG8saSxtKTthLnJlYWRIZXgoZixyKTt0Lm1hcEJmUmFuZ2UoaGV4VG9JbnQoaSxtKSxoZXhUb0ludChvLG0pLGhleFRvU3RyKGYscikpfWJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBCaW5hcnlDTWFwUmVhZGVyLnByb2Nlc3MgLSB1bmtub3duIHR5cGU6ICR7ZX1gKX19cmV0dXJuIHM/bihzKTp0fX1jbGFzcyBBc2NpaTg1U3RyZWFtIGV4dGVuZHMgRGVjb2RlU3RyZWFte2NvbnN0cnVjdG9yKGUsdCl7dCYmKHQqPS44KTtzdXBlcih0KTt0aGlzLnN0cmVhbT1lO3RoaXMuZGljdD1lLmRpY3Q7dGhpcy5pbnB1dD1uZXcgVWludDhBcnJheSg1KX1yZWFkQmxvY2soKXtjb25zdCBlPXRoaXMuc3RyZWFtO2xldCB0PWUuZ2V0Qnl0ZSgpO2Zvcig7aXNXaGl0ZVNwYWNlKHQpOyl0PWUuZ2V0Qnl0ZSgpO2lmKC0xPT09dHx8MTI2PT09dCl7dGhpcy5lb2Y9ITA7cmV0dXJufWNvbnN0IG49dGhpcy5idWZmZXJMZW5ndGg7bGV0IGEscjtpZigxMjI9PT10KXthPXRoaXMuZW5zdXJlQnVmZmVyKG4rNCk7Zm9yKHI9MDtyPDQ7KytyKWFbbityXT0wO3RoaXMuYnVmZmVyTGVuZ3RoKz00fWVsc2V7Y29uc3Qgcz10aGlzLmlucHV0O3NbMF09dDtmb3Iocj0xO3I8NTsrK3Ipe3Q9ZS5nZXRCeXRlKCk7Zm9yKDtpc1doaXRlU3BhY2UodCk7KXQ9ZS5nZXRCeXRlKCk7c1tyXT10O2lmKC0xPT09dHx8MTI2PT09dClicmVha31hPXRoaXMuZW5zdXJlQnVmZmVyKG4rci0xKTt0aGlzLmJ1ZmZlckxlbmd0aCs9ci0xO2lmKHI8NSl7Zm9yKDtyPDU7KytyKXNbcl09MTE3O3RoaXMuZW9mPSEwfWxldCBpPTA7Zm9yKHI9MDtyPDU7KytyKWk9ODUqaSsoc1tyXS0zMyk7Zm9yKHI9MztyPj0wOy0tcil7YVtuK3JdPTI1NSZpO2k+Pj04fX19fWNsYXNzIEFzY2lpSGV4U3RyZWFtIGV4dGVuZHMgRGVjb2RlU3RyZWFte2NvbnN0cnVjdG9yKGUsdCl7dCYmKHQqPS41KTtzdXBlcih0KTt0aGlzLnN0cmVhbT1lO3RoaXMuZGljdD1lLmRpY3Q7dGhpcy5maXJzdERpZ2l0PS0xfXJlYWRCbG9jaygpe2NvbnN0IGU9dGhpcy5zdHJlYW0uZ2V0Qnl0ZXMoOGUzKTtpZighZS5sZW5ndGgpe3RoaXMuZW9mPSEwO3JldHVybn1jb25zdCB0PWUubGVuZ3RoKzE+PjEsbj10aGlzLmVuc3VyZUJ1ZmZlcih0aGlzLmJ1ZmZlckxlbmd0aCt0KTtsZXQgYT10aGlzLmJ1ZmZlckxlbmd0aCxyPXRoaXMuZmlyc3REaWdpdDtmb3IoY29uc3QgdCBvZiBlKXtsZXQgZTtpZih0Pj00OCYmdDw9NTcpZT0xNSZ0O2Vsc2V7aWYoISh0Pj02NSYmdDw9NzB8fHQ+PTk3JiZ0PD0xMDIpKXtpZig2Mj09PXQpe3RoaXMuZW9mPSEwO2JyZWFrfWNvbnRpbnVlfWU9OSsoMTUmdCl9aWYocjwwKXI9ZTtlbHNle25bYSsrXT1yPDw0fGU7cj0tMX19aWYocj49MCYmdGhpcy5lb2Ype25bYSsrXT1yPDw0O3I9LTF9dGhpcy5maXJzdERpZ2l0PXI7dGhpcy5idWZmZXJMZW5ndGg9YX19bGV0IFVuPSgoKT0+e2NvbnN0IGU9SW50MzJBcnJheS5mcm9tKFsyNTYsNDAyLDQzNiw0NjgsNTAwLDUzNCw1NjYsNTk4LDYzMCw2NjIsNjk0LDcyNiw3NTgsNzkwLDgyMiw4NTQsODg2LDkyMCw5NTIsOTg0LDEwMTYsMTA0OCwxMDgwXSksdD1JbnQzMkFycmF5LmZyb20oWzEsMiwzLDQsMCw1LDE3LDYsMTYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTVdKSxuPUludDMyQXJyYXkuZnJvbShbMCwzLDIsMSwwLDAsMCwwLDAsMCwzLDMsMywzLDMsM10pLGE9SW50MzJBcnJheS5mcm9tKFswLDAsMCwwLC0xLDEsLTIsMiwtMywzLC0xLDEsLTIsMiwtMywzXSkscj1JbnQzMkFycmF5LmZyb20oWzEzMTA3MiwxMzEwNzYsMTMxMDc1LDE5NjYxMCwxMzEwNzIsMTMxMDc2LDEzMTA3NSwyNjIxNDUsMTMxMDcyLDEzMTA3NiwxMzEwNzUsMTk2NjEwLDEzMTA3MiwxMzEwNzYsMTMxMDc1LDI2MjE0OV0pLHM9SW50MzJBcnJheS5mcm9tKFsxLDUsOSwxMywxNywyNSwzMyw0MSw0OSw2NSw4MSw5NywxMTMsMTQ1LDE3NywyMDksMjQxLDMwNSwzNjksNDk3LDc1MywxMjY1LDIyODksNDMzNyw4NDMzLDE2NjI1XSksaT1JbnQzMkFycmF5LmZyb20oWzIsMiwyLDIsMywzLDMsMyw0LDQsNCw0LDUsNSw1LDUsNiw2LDcsOCw5LDEwLDExLDEyLDEzLDI0XSksbz1JbnQxNkFycmF5LmZyb20oWzAsMCwwLDAsMCwwLDEsMSwyLDIsMywzLDQsNCw1LDUsNiw3LDgsOSwxMCwxMiwxNCwyNF0pLGw9SW50MTZBcnJheS5mcm9tKFswLDAsMCwwLDAsMCwwLDAsMSwxLDIsMiwzLDMsNCw0LDUsNSw2LDcsOCw5LDEwLDI0XSksZj1uZXcgSW50MTZBcnJheSgyODE2KTshZnVuY3Rpb24gdW5wYWNrQ29tbWFuZExvb2t1cFRhYmxlKGUpe2NvbnN0IHQ9bmV3IEludDMyQXJyYXkoMjQpLG49bmV3IEludDMyQXJyYXkoMjQpO25bMF09Mjtmb3IobGV0IGU9MDtlPDIzOysrZSl7dFtlKzFdPXRbZV0rKDE8PG9bZV0pO25bZSsxXT1uW2VdKygxPDxsW2VdKX1mb3IobGV0IGE9MDthPDcwNDsrK2Epe2xldCByPWE+PjYscz0tNDtpZihyPj0yKXtyLT0yO3M9MH1jb25zdCBpPSgxNzAwNjQ+PjIqciYzKTw8M3xhPj4zJjcsZj0oMTU2MjI4Pj4yKnImMyk8PDN8NyZhLGM9bltmXSxoPXMrTWF0aC5taW4oYyw1KS0yLHU9NCphO2VbdV09b1tpXXxsW2ZdPDw4O2VbdSsxXT10W2ldO2VbdSsyXT1uW2ZdO2VbdSszXT1ofX0oZik7ZnVuY3Rpb24gbG9nMmZsb29yKGUpe2xldCB0PS0xLG49MTYsYT1lO2Zvcig7bj4wOyl7bGV0IGU9YT4+bjtpZigwIT09ZSl7dCs9bjthPWV9bj4+PTF9cmV0dXJuIHQrYX1mdW5jdGlvbiBjYWxjdWxhdGVEaXN0YW5jZUFscGhhYmV0U2l6ZShlLHQsbil7cmV0dXJuIDE2K3QrMioobjw8ZSl9ZnVuY3Rpb24gY2FsY3VsYXRlRGlzdGFuY2VBbHBoYWJldExpbWl0KGUsdCxuLGEpe2lmKHQ8YSsoMjw8bikpcmV0dXJuIG1ha2VFcnJvcihlLC0yMyk7Y29uc3Qgcj00Kyh0LWE+Pm4pLHM9bG9nMmZsb29yKHIpLTE7cmV0dXJuKChzLTE8PDF8cj4+cyYxKS0xPDxuKSsoMTw8bikrYSsxNn1mdW5jdGlvbiBpbml0U3RhdGUoZSl7aWYoMCE9PWUucnVubmluZ1N0YXRlKXJldHVybiBtYWtlRXJyb3IoZSwtMjYpO2UuYmxvY2tUcmVlcz1uZXcgSW50MzJBcnJheSgzMDkxKTtlLmJsb2NrVHJlZXNbMF09NztlLmRpc3RSYklkeD0zO2xldCB0PWNhbGN1bGF0ZURpc3RhbmNlQWxwaGFiZXRMaW1pdChlLDIxNDc0ODM2NDQsMywxMjApO2lmKHQ8MClyZXR1cm4gdDtjb25zdCBuPXQ7ZS5kaXN0RXh0cmFCaXRzPW5ldyBJbnQ4QXJyYXkobik7ZS5kaXN0T2Zmc2V0PW5ldyBJbnQzMkFycmF5KG4pO3Q9ZnVuY3Rpb24gaW5pdEJpdFJlYWRlcihlKXtlLmJ5dGVCdWZmZXI9bmV3IEludDhBcnJheSg0MTYwKTtlLmFjY3VtdWxhdG9yMzI9MDtlLnNob3J0QnVmZmVyPW5ldyBJbnQxNkFycmF5KDIwODApO2UuYml0T2Zmc2V0PTMyO2UuaGFsZk9mZnNldD0yMDQ4O2UuZW5kT2ZTdHJlYW1SZWFjaGVkPTA7cmV0dXJuIHByZXBhcmUoZSl9KGUpO2lmKHQ8MClyZXR1cm4gdDtlLnJ1bm5pbmdTdGF0ZT0xO3JldHVybiAwfWZ1bmN0aW9uIGRlY29kZVZhckxlblVuc2lnbmVkQnl0ZShlKXtpZihlLmJpdE9mZnNldD49MTYpe2UuYWNjdW11bGF0b3IzMj1lLnNob3J0QnVmZmVyW2UuaGFsZk9mZnNldCsrXTw8MTZ8ZS5hY2N1bXVsYXRvcjMyPj4+MTY7ZS5iaXRPZmZzZXQtPTE2fWlmKDAhPT1yZWFkRmV3Qml0cyhlLDEpKXtjb25zdCB0PXJlYWRGZXdCaXRzKGUsMyk7cmV0dXJuIDA9PT10PzE6cmVhZEZld0JpdHMoZSx0KSsoMTw8dCl9cmV0dXJuIDB9ZnVuY3Rpb24gcmVhZFN5bWJvbChlLHQsbil7bGV0IGE9ZVt0XTtjb25zdCByPW4uYWNjdW11bGF0b3IzMj4+Pm4uYml0T2Zmc2V0O2ErPTI1NSZyO2NvbnN0IHM9ZVthXT4+MTYsaT02NTUzNSZlW2FdO2lmKHM8PTgpe24uYml0T2Zmc2V0Kz1zO3JldHVybiBpfWErPWk7YSs9KHImKDE8PHMpLTEpPj4+ODtuLmJpdE9mZnNldCs9OCsoZVthXT4+MTYpO3JldHVybiA2NTUzNSZlW2FdfWZ1bmN0aW9uIHJlYWRCbG9ja0xlbmd0aChlLHQsbil7aWYobi5iaXRPZmZzZXQ+PTE2KXtuLmFjY3VtdWxhdG9yMzI9bi5zaG9ydEJ1ZmZlcltuLmhhbGZPZmZzZXQrK108PDE2fG4uYWNjdW11bGF0b3IzMj4+PjE2O24uYml0T2Zmc2V0LT0xNn1jb25zdCBhPXJlYWRTeW1ib2woZSx0LG4pLHI9aVthXTtpZihuLmJpdE9mZnNldD49MTYpe24uYWNjdW11bGF0b3IzMj1uLnNob3J0QnVmZmVyW24uaGFsZk9mZnNldCsrXTw8MTZ8bi5hY2N1bXVsYXRvcjMyPj4+MTY7bi5iaXRPZmZzZXQtPTE2fXJldHVybiBzW2FdKyhyPD0xNj9yZWFkRmV3Qml0cyhuLHIpOnJlYWRNYW55Qml0cyhuLHIpKX1mdW5jdGlvbiBtb3ZlVG9Gcm9udChlLHQpe2xldCBuPXQ7Y29uc3QgYT1lW25dO2Zvcig7bj4wOyl7ZVtuXT1lW24tMV07bi0tfWVbMF09YX1mdW5jdGlvbiByZWFkU2ltcGxlSHVmZm1hbkNvZGUoZSx0LG4sYSxyKXtjb25zdCBzPW5ldyBJbnQzMkFycmF5KHQpLGk9bmV3IEludDMyQXJyYXkoNCksbz0xK2xvZzJmbG9vcihlLTEpLGw9cmVhZEZld0JpdHMociwyKSsxO2ZvcihsZXQgZT0wO2U8bDsrK2Upe2lmKHIuYml0T2Zmc2V0Pj0xNil7ci5hY2N1bXVsYXRvcjMyPXIuc2hvcnRCdWZmZXJbci5oYWxmT2Zmc2V0KytdPDwxNnxyLmFjY3VtdWxhdG9yMzI+Pj4xNjtyLmJpdE9mZnNldC09MTZ9Y29uc3Qgbj1yZWFkRmV3Qml0cyhyLG8pO2lmKG4+PXQpcmV0dXJuIG1ha2VFcnJvcihyLC0xNSk7aVtlXT1ufWNvbnN0IGY9ZnVuY3Rpb24gY2hlY2tEdXBlcyhlLHQsbil7Zm9yKGxldCBhPTA7YTxuLTE7KythKWZvcihsZXQgcj1hKzE7cjxuOysrcilpZih0W2FdPT09dFtyXSlyZXR1cm4gbWFrZUVycm9yKGUsLTcpO3JldHVybiAwfShyLGksbCk7aWYoZjwwKXJldHVybiBmO2xldCBjPWw7ND09PWwmJihjKz1yZWFkRmV3Qml0cyhyLDEpKTtzd2l0Y2goYyl7Y2FzZSAxOnNbaVswXV09MTticmVhaztjYXNlIDI6c1tpWzBdXT0xO3NbaVsxXV09MTticmVhaztjYXNlIDM6c1tpWzBdXT0xO3NbaVsxXV09MjtzW2lbMl1dPTI7YnJlYWs7Y2FzZSA0OnNbaVswXV09MjtzW2lbMV1dPTI7c1tpWzJdXT0yO3NbaVszXV09MjticmVhaztjYXNlIDU6c1tpWzBdXT0xO3NbaVsxXV09MjtzW2lbMl1dPTM7c1tpWzNdXT0zfXJldHVybiBidWlsZEh1ZmZtYW5UYWJsZShuLGEsOCxzLHQpfWZ1bmN0aW9uIHJlYWRDb21wbGV4SHVmZm1hbkNvZGUoZSxuLGEscyxpKXtjb25zdCBvPW5ldyBJbnQzMkFycmF5KGUpLGw9bmV3IEludDMyQXJyYXkoMTgpO2xldCBmPTMyLGM9MDtmb3IobGV0IGU9bjtlPDE4OysrZSl7Y29uc3Qgbj10W2VdO2lmKGkuYml0T2Zmc2V0Pj0xNil7aS5hY2N1bXVsYXRvcjMyPWkuc2hvcnRCdWZmZXJbaS5oYWxmT2Zmc2V0KytdPDwxNnxpLmFjY3VtdWxhdG9yMzI+Pj4xNjtpLmJpdE9mZnNldC09MTZ9Y29uc3QgYT1pLmFjY3VtdWxhdG9yMzI+Pj5pLmJpdE9mZnNldCYxNTtpLmJpdE9mZnNldCs9clthXT4+MTY7Y29uc3Qgcz02NTUzNSZyW2FdO2xbbl09cztpZigwIT09cyl7Zi09MzI+PnM7YysrO2lmKGY8PTApYnJlYWt9fWlmKDAhPT1mJiYxIT09YylyZXR1cm4gbWFrZUVycm9yKGksLTQpO2NvbnN0IGg9ZnVuY3Rpb24gcmVhZEh1ZmZtYW5Db2RlTGVuZ3RocyhlLHQsbixhKXtsZXQgcj0wLHM9OCxpPTAsbz0wLGw9MzI3Njg7Y29uc3QgZj1uZXcgSW50MzJBcnJheSgzMyk7YnVpbGRIdWZmbWFuVGFibGUoZixmLmxlbmd0aC0xLDUsZSwxOCk7Zm9yKDtyPHQmJmw+MDspe2lmKGEuaGFsZk9mZnNldD4yMDMwKXtjb25zdCBlPXJlYWRNb3JlSW5wdXQoYSk7aWYoZTwwKXJldHVybiBlfWlmKGEuYml0T2Zmc2V0Pj0xNil7YS5hY2N1bXVsYXRvcjMyPWEuc2hvcnRCdWZmZXJbYS5oYWxmT2Zmc2V0KytdPDwxNnxhLmFjY3VtdWxhdG9yMzI+Pj4xNjthLmJpdE9mZnNldC09MTZ9Y29uc3QgZT1hLmFjY3VtdWxhdG9yMzI+Pj5hLmJpdE9mZnNldCYzMTthLmJpdE9mZnNldCs9ZltlXT4+MTY7Y29uc3QgYz02NTUzNSZmW2VdO2lmKGM8MTYpe2k9MDtuW3IrK109YztpZigwIT09Yyl7cz1jO2wtPTMyNzY4Pj5jfX1lbHNle2NvbnN0IGU9Yy0xNDtsZXQgZj0wOzE2PT09YyYmKGY9cyk7aWYobyE9PWYpe2k9MDtvPWZ9Y29uc3QgaD1pO2lmKGk+MCl7aS09MjtpPDw9ZX1pZihhLmJpdE9mZnNldD49MTYpe2EuYWNjdW11bGF0b3IzMj1hLnNob3J0QnVmZmVyW2EuaGFsZk9mZnNldCsrXTw8MTZ8YS5hY2N1bXVsYXRvcjMyPj4+MTY7YS5iaXRPZmZzZXQtPTE2fWkrPXJlYWRGZXdCaXRzKGEsZSkrMztjb25zdCB1PWktaDtpZihyK3U+dClyZXR1cm4gbWFrZUVycm9yKGEsLTIpO2ZvcihsZXQgZT0wO2U8dTsrK2UpbltyKytdPW87MCE9PW8mJihsLT11PDwxNS1vKX19aWYoMCE9PWwpcmV0dXJuIG1ha2VFcnJvcihhLC0xOCk7bi5maWxsKDAscix0KTtyZXR1cm4gMH0obCxlLG8saSk7cmV0dXJuIGg8MD9oOmJ1aWxkSHVmZm1hblRhYmxlKGEscyw4LG8sZSl9ZnVuY3Rpb24gcmVhZEh1ZmZtYW5Db2RlKGUsdCxuLGEscil7aWYoci5oYWxmT2Zmc2V0PjIwMzApe2NvbnN0IGU9cmVhZE1vcmVJbnB1dChyKTtpZihlPDApcmV0dXJuIGV9aWYoci5iaXRPZmZzZXQ+PTE2KXtyLmFjY3VtdWxhdG9yMzI9ci5zaG9ydEJ1ZmZlcltyLmhhbGZPZmZzZXQrK108PDE2fHIuYWNjdW11bGF0b3IzMj4+PjE2O3IuYml0T2Zmc2V0LT0xNn1jb25zdCBzPXJlYWRGZXdCaXRzKHIsMik7cmV0dXJuIDE9PT1zP3JlYWRTaW1wbGVIdWZmbWFuQ29kZShlLHQsbixhLHIpOnJlYWRDb21wbGV4SHVmZm1hbkNvZGUodCxzLG4sYSxyKX1mdW5jdGlvbiBkZWNvZGVDb250ZXh0TWFwKHQsbixhKXtsZXQgcjtpZihhLmhhbGZPZmZzZXQ+MjAzMCl7cj1yZWFkTW9yZUlucHV0KGEpO2lmKHI8MClyZXR1cm4gcn1jb25zdCBzPWRlY29kZVZhckxlblVuc2lnbmVkQnl0ZShhKSsxO2lmKDE9PT1zKXtuLmZpbGwoMCwwLHQpO3JldHVybiBzfWlmKGEuYml0T2Zmc2V0Pj0xNil7YS5hY2N1bXVsYXRvcjMyPWEuc2hvcnRCdWZmZXJbYS5oYWxmT2Zmc2V0KytdPDwxNnxhLmFjY3VtdWxhdG9yMzI+Pj4xNjthLmJpdE9mZnNldC09MTZ9bGV0IGk9MDswIT09cmVhZEZld0JpdHMoYSwxKSYmKGk9cmVhZEZld0JpdHMoYSw0KSsxKTtjb25zdCBvPXMraSxsPWVbbyszMT4+NV0sZj1uZXcgSW50MzJBcnJheShsKzEpLGM9Zi5sZW5ndGgtMTtyPXJlYWRIdWZmbWFuQ29kZShvLG8sZixjLGEpO2lmKHI8MClyZXR1cm4gcjtsZXQgaD0wO2Zvcig7aDx0Oyl7aWYoYS5oYWxmT2Zmc2V0PjIwMzApe3I9cmVhZE1vcmVJbnB1dChhKTtpZihyPDApcmV0dXJuIHJ9aWYoYS5iaXRPZmZzZXQ+PTE2KXthLmFjY3VtdWxhdG9yMzI9YS5zaG9ydEJ1ZmZlclthLmhhbGZPZmZzZXQrK108PDE2fGEuYWNjdW11bGF0b3IzMj4+PjE2O2EuYml0T2Zmc2V0LT0xNn1jb25zdCBlPXJlYWRTeW1ib2woZixjLGEpO2lmKDA9PT1lKXtuW2hdPTA7aCsrfWVsc2UgaWYoZTw9aSl7aWYoYS5iaXRPZmZzZXQ+PTE2KXthLmFjY3VtdWxhdG9yMzI9YS5zaG9ydEJ1ZmZlclthLmhhbGZPZmZzZXQrK108PDE2fGEuYWNjdW11bGF0b3IzMj4+PjE2O2EuYml0T2Zmc2V0LT0xNn1sZXQgcj0oMTw8ZSkrcmVhZEZld0JpdHMoYSxlKTtmb3IoOzAhPT1yOyl7aWYoaD49dClyZXR1cm4gbWFrZUVycm9yKGEsLTMpO25baF09MDtoKys7ci0tfX1lbHNle25baF09ZS1pO2grK319aWYoYS5iaXRPZmZzZXQ+PTE2KXthLmFjY3VtdWxhdG9yMzI9YS5zaG9ydEJ1ZmZlclthLmhhbGZPZmZzZXQrK108PDE2fGEuYWNjdW11bGF0b3IzMj4+PjE2O2EuYml0T2Zmc2V0LT0xNn0xPT09cmVhZEZld0JpdHMoYSwxKSYmZnVuY3Rpb24gaW52ZXJzZU1vdmVUb0Zyb250VHJhbnNmb3JtKGUsdCl7Y29uc3Qgbj1uZXcgSW50MzJBcnJheSgyNTYpO2ZvcihsZXQgZT0wO2U8MjU2OysrZSluW2VdPWU7Zm9yKGxldCBhPTA7YTx0OysrYSl7Y29uc3QgdD0yNTUmZVthXTtlW2FdPW5bdF07MCE9PXQmJm1vdmVUb0Zyb250KG4sdCl9fShuLHQpO3JldHVybiBzfWZ1bmN0aW9uIGRlY29kZUJsb2NrVHlwZUFuZExlbmd0aChlLHQsbil7Y29uc3QgYT1lLnJpbmdzLHI9NCsyKnQ7aWYoZS5iaXRPZmZzZXQ+PTE2KXtlLmFjY3VtdWxhdG9yMzI9ZS5zaG9ydEJ1ZmZlcltlLmhhbGZPZmZzZXQrK108PDE2fGUuYWNjdW11bGF0b3IzMj4+PjE2O2UuYml0T2Zmc2V0LT0xNn1sZXQgcz1yZWFkU3ltYm9sKGUuYmxvY2tUcmVlcywyKnQsZSk7Y29uc3QgaT1yZWFkQmxvY2tMZW5ndGgoZS5ibG9ja1RyZWVzLDIqdCsxLGUpOzE9PT1zP3M9YVtyKzFdKzE6MD09PXM/cz1hW3JdOnMtPTI7cz49biYmKHMtPW4pO2Fbcl09YVtyKzFdO2FbcisxXT1zO3JldHVybiBpfWZ1bmN0aW9uIGRlY29kZUxpdGVyYWxCbG9ja1N3aXRjaChlKXtlLmxpdGVyYWxCbG9ja0xlbmd0aD1kZWNvZGVCbG9ja1R5cGVBbmRMZW5ndGgoZSwwLGUubnVtTGl0ZXJhbEJsb2NrVHlwZXMpO2NvbnN0IHQ9ZS5yaW5nc1s1XTtlLmNvbnRleHRNYXBTbGljZT10PDw2O2UubGl0ZXJhbFRyZWVJZHg9MjU1JmUuY29udGV4dE1hcFtlLmNvbnRleHRNYXBTbGljZV07Y29uc3Qgbj1lLmNvbnRleHRNb2Rlc1t0XTtlLmNvbnRleHRMb29rdXBPZmZzZXQxPW48PDk7ZS5jb250ZXh0TG9va3VwT2Zmc2V0Mj1lLmNvbnRleHRMb29rdXBPZmZzZXQxKzI1Nn1mdW5jdGlvbiBkZWNvZGVDb21tYW5kQmxvY2tTd2l0Y2goZSl7ZS5jb21tYW5kQmxvY2tMZW5ndGg9ZGVjb2RlQmxvY2tUeXBlQW5kTGVuZ3RoKGUsMSxlLm51bUNvbW1hbmRCbG9ja1R5cGVzKTtlLmNvbW1hbmRUcmVlSWR4PWUucmluZ3NbN119ZnVuY3Rpb24gZGVjb2RlRGlzdGFuY2VCbG9ja1N3aXRjaChlKXtlLmRpc3RhbmNlQmxvY2tMZW5ndGg9ZGVjb2RlQmxvY2tUeXBlQW5kTGVuZ3RoKGUsMixlLm51bURpc3RhbmNlQmxvY2tUeXBlcyk7ZS5kaXN0Q29udGV4dE1hcFNsaWNlPWUucmluZ3NbOV08PDJ9ZnVuY3Rpb24gcmVhZE5leHRNZXRhYmxvY2tIZWFkZXIoZSl7aWYoMCE9PWUuaW5wdXRFbmQpe2UubmV4dFJ1bm5pbmdTdGF0ZT0xMDtlLnJ1bm5pbmdTdGF0ZT0xMjtyZXR1cm4gMH1lLmxpdGVyYWxUcmVlR3JvdXA9bmV3IEludDMyQXJyYXkoMCk7ZS5jb21tYW5kVHJlZUdyb3VwPW5ldyBJbnQzMkFycmF5KDApO2UuZGlzdGFuY2VUcmVlR3JvdXA9bmV3IEludDMyQXJyYXkoMCk7bGV0IHQ7aWYoZS5oYWxmT2Zmc2V0PjIwMzApe3Q9cmVhZE1vcmVJbnB1dChlKTtpZih0PDApcmV0dXJuIHR9dD1mdW5jdGlvbiBkZWNvZGVNZXRhQmxvY2tMZW5ndGgoZSl7aWYoZS5iaXRPZmZzZXQ+PTE2KXtlLmFjY3VtdWxhdG9yMzI9ZS5zaG9ydEJ1ZmZlcltlLmhhbGZPZmZzZXQrK108PDE2fGUuYWNjdW11bGF0b3IzMj4+PjE2O2UuYml0T2Zmc2V0LT0xNn1lLmlucHV0RW5kPXJlYWRGZXdCaXRzKGUsMSk7ZS5tZXRhQmxvY2tMZW5ndGg9MDtlLmlzVW5jb21wcmVzc2VkPTA7ZS5pc01ldGFkYXRhPTA7aWYoMCE9PWUuaW5wdXRFbmQmJjAhPT1yZWFkRmV3Qml0cyhlLDEpKXJldHVybiAwO2NvbnN0IHQ9cmVhZEZld0JpdHMoZSwyKSs0O2lmKDc9PT10KXtlLmlzTWV0YWRhdGE9MTtpZigwIT09cmVhZEZld0JpdHMoZSwxKSlyZXR1cm4gbWFrZUVycm9yKGUsLTYpO2NvbnN0IHQ9cmVhZEZld0JpdHMoZSwyKTtpZigwPT09dClyZXR1cm4gMDtmb3IobGV0IG49MDtuPHQ7KytuKXtpZihlLmJpdE9mZnNldD49MTYpe2UuYWNjdW11bGF0b3IzMj1lLnNob3J0QnVmZmVyW2UuaGFsZk9mZnNldCsrXTw8MTZ8ZS5hY2N1bXVsYXRvcjMyPj4+MTY7ZS5iaXRPZmZzZXQtPTE2fWNvbnN0IGE9cmVhZEZld0JpdHMoZSw4KTtpZigwPT09YSYmbisxPT09dCYmdD4xKXJldHVybiBtYWtlRXJyb3IoZSwtOCk7ZS5tZXRhQmxvY2tMZW5ndGgrPWE8PDgqbn19ZWxzZSBmb3IobGV0IG49MDtuPHQ7KytuKXtpZihlLmJpdE9mZnNldD49MTYpe2UuYWNjdW11bGF0b3IzMj1lLnNob3J0QnVmZmVyW2UuaGFsZk9mZnNldCsrXTw8MTZ8ZS5hY2N1bXVsYXRvcjMyPj4+MTY7ZS5iaXRPZmZzZXQtPTE2fWNvbnN0IGE9cmVhZEZld0JpdHMoZSw0KTtpZigwPT09YSYmbisxPT09dCYmdD40KXJldHVybiBtYWtlRXJyb3IoZSwtOCk7ZS5tZXRhQmxvY2tMZW5ndGgrPWE8PDQqbn1lLm1ldGFCbG9ja0xlbmd0aCsrOzA9PT1lLmlucHV0RW5kJiYoZS5pc1VuY29tcHJlc3NlZD1yZWFkRmV3Qml0cyhlLDEpKTtyZXR1cm4gMH0oZSk7aWYodDwwKXJldHVybiB0O2lmKDA9PT1lLm1ldGFCbG9ja0xlbmd0aCYmMD09PWUuaXNNZXRhZGF0YSlyZXR1cm4gMDtpZigwIT09ZS5pc1VuY29tcHJlc3NlZHx8MCE9PWUuaXNNZXRhZGF0YSl7dD1qdW1wVG9CeXRlQm91bmRhcnkoZSk7aWYodDwwKXJldHVybiB0OzA9PT1lLmlzTWV0YWRhdGE/ZS5ydW5uaW5nU3RhdGU9NjplLnJ1bm5pbmdTdGF0ZT01fWVsc2UgZS5ydW5uaW5nU3RhdGU9MztpZigwIT09ZS5pc01ldGFkYXRhKXJldHVybiAwO2UuZXhwZWN0ZWRUb3RhbFNpemUrPWUubWV0YUJsb2NrTGVuZ3RoO2UuZXhwZWN0ZWRUb3RhbFNpemU+MTw8MzAmJihlLmV4cGVjdGVkVG90YWxTaXplPTE8PDMwKTtlLnJpbmdCdWZmZXJTaXplPGUubWF4UmluZ0J1ZmZlclNpemUmJmZ1bmN0aW9uIG1heWJlUmVhbGxvY2F0ZVJpbmdCdWZmZXIoZSl7bGV0IHQ9ZS5tYXhSaW5nQnVmZmVyU2l6ZTtpZih0PmUuZXhwZWN0ZWRUb3RhbFNpemUpe2NvbnN0IG49ZS5leHBlY3RlZFRvdGFsU2l6ZTtmb3IoO3Q+PjE+bjspdD4+PTE7MD09PWUuaW5wdXRFbmQmJnQ8MTYzODQmJmUubWF4UmluZ0J1ZmZlclNpemU+PTE2Mzg0JiYodD0xNjM4NCl9aWYodDw9ZS5yaW5nQnVmZmVyU2l6ZSlyZXR1cm47Y29uc3Qgbj1uZXcgSW50OEFycmF5KHQrMzcpLGE9ZS5yaW5nQnVmZmVyOzAhPT1hLmxlbmd0aCYmbi5zZXQoYS5zdWJhcnJheSgwLGUucmluZ0J1ZmZlclNpemUpLDApO2UucmluZ0J1ZmZlcj1uO2UucmluZ0J1ZmZlclNpemU9dH0oZSk7cmV0dXJuIDB9ZnVuY3Rpb24gcmVhZE1ldGFibG9ja1BhcnRpdGlvbihlLHQsbil7bGV0IGE9ZS5ibG9ja1RyZWVzWzIqdF07aWYobjw9MSl7ZS5ibG9ja1RyZWVzWzIqdCsxXT1hO2UuYmxvY2tUcmVlc1syKnQrMl09YTtyZXR1cm4gMTw8Mjh9Y29uc3Qgcj1uKzI7bGV0IHM9cmVhZEh1ZmZtYW5Db2RlKHIscixlLmJsb2NrVHJlZXMsMip0LGUpO2lmKHM8MClyZXR1cm4gczthKz1zO2UuYmxvY2tUcmVlc1syKnQrMV09YTtzPXJlYWRIdWZmbWFuQ29kZSgyNiwyNixlLmJsb2NrVHJlZXMsMip0KzEsZSk7aWYoczwwKXJldHVybiBzO2ErPXM7ZS5ibG9ja1RyZWVzWzIqdCsyXT1hO3JldHVybiByZWFkQmxvY2tMZW5ndGgoZS5ibG9ja1RyZWVzLDIqdCsxLGUpfWZ1bmN0aW9uIHJlYWRNZXRhYmxvY2tIdWZmbWFuQ29kZXNBbmRDb250ZXh0TWFwcyhlKXtlLm51bUxpdGVyYWxCbG9ja1R5cGVzPWRlY29kZVZhckxlblVuc2lnbmVkQnl0ZShlKSsxO2xldCB0PXJlYWRNZXRhYmxvY2tQYXJ0aXRpb24oZSwwLGUubnVtTGl0ZXJhbEJsb2NrVHlwZXMpO2lmKHQ8MClyZXR1cm4gdDtlLmxpdGVyYWxCbG9ja0xlbmd0aD10O2UubnVtQ29tbWFuZEJsb2NrVHlwZXM9ZGVjb2RlVmFyTGVuVW5zaWduZWRCeXRlKGUpKzE7dD1yZWFkTWV0YWJsb2NrUGFydGl0aW9uKGUsMSxlLm51bUNvbW1hbmRCbG9ja1R5cGVzKTtpZih0PDApcmV0dXJuIHQ7ZS5jb21tYW5kQmxvY2tMZW5ndGg9dDtlLm51bURpc3RhbmNlQmxvY2tUeXBlcz1kZWNvZGVWYXJMZW5VbnNpZ25lZEJ5dGUoZSkrMTt0PXJlYWRNZXRhYmxvY2tQYXJ0aXRpb24oZSwyLGUubnVtRGlzdGFuY2VCbG9ja1R5cGVzKTtpZih0PDApcmV0dXJuIHQ7ZS5kaXN0YW5jZUJsb2NrTGVuZ3RoPXQ7aWYoZS5oYWxmT2Zmc2V0PjIwMzApe3Q9cmVhZE1vcmVJbnB1dChlKTtpZih0PDApcmV0dXJuIHR9aWYoZS5iaXRPZmZzZXQ+PTE2KXtlLmFjY3VtdWxhdG9yMzI9ZS5zaG9ydEJ1ZmZlcltlLmhhbGZPZmZzZXQrK108PDE2fGUuYWNjdW11bGF0b3IzMj4+PjE2O2UuYml0T2Zmc2V0LT0xNn1lLmRpc3RhbmNlUG9zdGZpeEJpdHM9cmVhZEZld0JpdHMoZSwyKTtlLm51bURpcmVjdERpc3RhbmNlQ29kZXM9cmVhZEZld0JpdHMoZSw0KTw8ZS5kaXN0YW5jZVBvc3RmaXhCaXRzO2UuY29udGV4dE1vZGVzPW5ldyBJbnQ4QXJyYXkoZS5udW1MaXRlcmFsQmxvY2tUeXBlcyk7bGV0IG49MDtmb3IoO248ZS5udW1MaXRlcmFsQmxvY2tUeXBlczspe2NvbnN0IGE9TWF0aC5taW4obis5NixlLm51bUxpdGVyYWxCbG9ja1R5cGVzKTtmb3IoO248YTspe2lmKGUuYml0T2Zmc2V0Pj0xNil7ZS5hY2N1bXVsYXRvcjMyPWUuc2hvcnRCdWZmZXJbZS5oYWxmT2Zmc2V0KytdPDwxNnxlLmFjY3VtdWxhdG9yMzI+Pj4xNjtlLmJpdE9mZnNldC09MTZ9ZS5jb250ZXh0TW9kZXNbbl09cmVhZEZld0JpdHMoZSwyKTtuKyt9aWYoZS5oYWxmT2Zmc2V0PjIwMzApe3Q9cmVhZE1vcmVJbnB1dChlKTtpZih0PDApcmV0dXJuIHR9fWNvbnN0IGE9ZS5udW1MaXRlcmFsQmxvY2tUeXBlczw8NjtlLmNvbnRleHRNYXA9bmV3IEludDhBcnJheShhKTt0PWRlY29kZUNvbnRleHRNYXAoYSxlLmNvbnRleHRNYXAsZSk7aWYodDwwKXJldHVybiB0O2NvbnN0IHI9dDtlLnRyaXZpYWxMaXRlcmFsQ29udGV4dD0xO2ZvcihsZXQgdD0wO3Q8YTsrK3QpaWYoZS5jb250ZXh0TWFwW3RdIT09dD4+Nil7ZS50cml2aWFsTGl0ZXJhbENvbnRleHQ9MDticmVha31lLmRpc3RDb250ZXh0TWFwPW5ldyBJbnQ4QXJyYXkoZS5udW1EaXN0YW5jZUJsb2NrVHlwZXM8PDIpO3Q9ZGVjb2RlQ29udGV4dE1hcChlLm51bURpc3RhbmNlQmxvY2tUeXBlczw8MixlLmRpc3RDb250ZXh0TWFwLGUpO2lmKHQ8MClyZXR1cm4gdDtjb25zdCBzPXQ7ZS5saXRlcmFsVHJlZUdyb3VwPW5ldyBJbnQzMkFycmF5KGh1ZmZtYW5UcmVlR3JvdXBBbGxvY1NpemUoMjU2LHIpKTt0PWRlY29kZUh1ZmZtYW5UcmVlR3JvdXAoMjU2LDI1NixyLGUsZS5saXRlcmFsVHJlZUdyb3VwKTtpZih0PDApcmV0dXJuIHQ7ZS5jb21tYW5kVHJlZUdyb3VwPW5ldyBJbnQzMkFycmF5KGh1ZmZtYW5UcmVlR3JvdXBBbGxvY1NpemUoNzA0LGUubnVtQ29tbWFuZEJsb2NrVHlwZXMpKTt0PWRlY29kZUh1ZmZtYW5UcmVlR3JvdXAoNzA0LDcwNCxlLm51bUNvbW1hbmRCbG9ja1R5cGVzLGUsZS5jb21tYW5kVHJlZUdyb3VwKTtpZih0PDApcmV0dXJuIHQ7bGV0IGk9Y2FsY3VsYXRlRGlzdGFuY2VBbHBoYWJldFNpemUoZS5kaXN0YW5jZVBvc3RmaXhCaXRzLGUubnVtRGlyZWN0RGlzdGFuY2VDb2RlcywyNCksbz1pO2lmKDE9PT1lLmlzTGFyZ2VXaW5kb3cpe2k9Y2FsY3VsYXRlRGlzdGFuY2VBbHBoYWJldFNpemUoZS5kaXN0YW5jZVBvc3RmaXhCaXRzLGUubnVtRGlyZWN0RGlzdGFuY2VDb2Rlcyw2Mik7dD1jYWxjdWxhdGVEaXN0YW5jZUFscGhhYmV0TGltaXQoZSwyMTQ3NDgzNjQ0LGUuZGlzdGFuY2VQb3N0Zml4Qml0cyxlLm51bURpcmVjdERpc3RhbmNlQ29kZXMpO2lmKHQ8MClyZXR1cm4gdDtvPXR9ZS5kaXN0YW5jZVRyZWVHcm91cD1uZXcgSW50MzJBcnJheShodWZmbWFuVHJlZUdyb3VwQWxsb2NTaXplKG8scykpO3Q9ZGVjb2RlSHVmZm1hblRyZWVHcm91cChpLG8scyxlLGUuZGlzdGFuY2VUcmVlR3JvdXApO2lmKHQ8MClyZXR1cm4gdDshZnVuY3Rpb24gY2FsY3VsYXRlRGlzdGFuY2VMdXQoZSx0KXtjb25zdCBuPWUuZGlzdEV4dHJhQml0cyxhPWUuZGlzdE9mZnNldCxyPWUuZGlzdGFuY2VQb3N0Zml4Qml0cyxzPWUubnVtRGlyZWN0RGlzdGFuY2VDb2RlcyxpPTE8PHI7bGV0IG89MSxsPTAsZj0xNjtmb3IobGV0IGU9MDtlPHM7KytlKXtuW2ZdPTA7YVtmXT1lKzE7KytmfWZvcig7Zjx0Oyl7Y29uc3QgZT1zKygoMitsPDxvKS00PDxyKSsxO2ZvcihsZXQgdD0wO3Q8aTsrK3Qpe25bZl09bzthW2ZdPWUrdDsrK2Z9bys9bDtsXj0xfX0oZSxvKTtlLmNvbnRleHRNYXBTbGljZT0wO2UuZGlzdENvbnRleHRNYXBTbGljZT0wO2UuY29udGV4dExvb2t1cE9mZnNldDE9NTEyKmUuY29udGV4dE1vZGVzWzBdO2UuY29udGV4dExvb2t1cE9mZnNldDI9ZS5jb250ZXh0TG9va3VwT2Zmc2V0MSsyNTY7ZS5saXRlcmFsVHJlZUlkeD0wO2UuY29tbWFuZFRyZWVJZHg9MDtlLnJpbmdzWzRdPTE7ZS5yaW5nc1s1XT0wO2UucmluZ3NbNl09MTtlLnJpbmdzWzddPTA7ZS5yaW5nc1s4XT0xO2UucmluZ3NbOV09MDtyZXR1cm4gMH1mdW5jdGlvbiBjb3B5VW5jb21wcmVzc2VkRGF0YShlKXtjb25zdCB0PWUucmluZ0J1ZmZlcjtsZXQgbjtpZihlLm1ldGFCbG9ja0xlbmd0aDw9MCl7bj1yZWxvYWQoZSk7aWYobjwwKXJldHVybiBuO2UucnVubmluZ1N0YXRlPTI7cmV0dXJuIDB9Y29uc3QgYT1NYXRoLm1pbihlLnJpbmdCdWZmZXJTaXplLWUucG9zLGUubWV0YUJsb2NrTGVuZ3RoKTtuPWZ1bmN0aW9uIGNvcHlSYXdCeXRlcyhlLHQsbixhKXtsZXQgcj1uLHM9YTtpZig3JmUuYml0T2Zmc2V0KXJldHVybiBtYWtlRXJyb3IoZSwtMzApO2Zvcig7MzIhPT1lLmJpdE9mZnNldCYmMCE9PXM7KXt0W3IrK109ZS5hY2N1bXVsYXRvcjMyPj4+ZS5iaXRPZmZzZXQ7ZS5iaXRPZmZzZXQrPTg7cy0tfWlmKDA9PT1zKXJldHVybiAwO2NvbnN0IGk9TWF0aC5taW4oaGFsZkF2YWlsYWJsZShlKSxzPj4xKTtpZihpPjApe2NvbnN0IG49ZS5oYWxmT2Zmc2V0PDwxLGE9aTw8MTt0LnNldChlLmJ5dGVCdWZmZXIuc3ViYXJyYXkobixuK2EpLHIpO3IrPWE7cy09YTtlLmhhbGZPZmZzZXQrPWl9aWYoMD09PXMpcmV0dXJuIDA7aWYoaGFsZkF2YWlsYWJsZShlKT4wKXtpZihlLmJpdE9mZnNldD49MTYpe2UuYWNjdW11bGF0b3IzMj1lLnNob3J0QnVmZmVyW2UuaGFsZk9mZnNldCsrXTw8MTZ8ZS5hY2N1bXVsYXRvcjMyPj4+MTY7ZS5iaXRPZmZzZXQtPTE2fWZvcig7MCE9PXM7KXt0W3IrK109ZS5hY2N1bXVsYXRvcjMyPj4+ZS5iaXRPZmZzZXQ7ZS5iaXRPZmZzZXQrPTg7cy0tfXJldHVybiBjaGVja0hlYWx0aChlLDApfWZvcig7cz4wOyl7Y29uc3Qgbj1yZWFkSW5wdXQoZSx0LHIscyk7aWYobjwtMSlyZXR1cm4gbjtpZihuPD0wKXJldHVybiBtYWtlRXJyb3IoZSwtMTYpO3IrPW47cy09bn1yZXR1cm4gMH0oZSx0LGUucG9zLGEpO2lmKG48MClyZXR1cm4gbjtlLm1ldGFCbG9ja0xlbmd0aC09YTtlLnBvcys9YTtpZihlLnBvcz09PWUucmluZ0J1ZmZlclNpemUpe2UubmV4dFJ1bm5pbmdTdGF0ZT02O2UucnVubmluZ1N0YXRlPTEyO3JldHVybiAwfW49cmVsb2FkKGUpO2lmKG48MClyZXR1cm4gbjtlLnJ1bm5pbmdTdGF0ZT0yO3JldHVybiAwfWZ1bmN0aW9uIHdyaXRlUmluZ0J1ZmZlcihlKXtjb25zdCB0PU1hdGgubWluKGUub3V0cHV0TGVuZ3RoLWUub3V0cHV0VXNlZCxlLnJpbmdCdWZmZXJCeXRlc1JlYWR5LWUucmluZ0J1ZmZlckJ5dGVzV3JpdHRlbik7aWYoMCE9PXQpe2Uub3V0cHV0LnNldChlLnJpbmdCdWZmZXIuc3ViYXJyYXkoZS5yaW5nQnVmZmVyQnl0ZXNXcml0dGVuLGUucmluZ0J1ZmZlckJ5dGVzV3JpdHRlbit0KSxlLm91dHB1dE9mZnNldCtlLm91dHB1dFVzZWQpO2Uub3V0cHV0VXNlZCs9dDtlLnJpbmdCdWZmZXJCeXRlc1dyaXR0ZW4rPXR9cmV0dXJuIGUub3V0cHV0VXNlZDxlLm91dHB1dExlbmd0aD8wOjJ9ZnVuY3Rpb24gaHVmZm1hblRyZWVHcm91cEFsbG9jU2l6ZSh0LG4pe3JldHVybiBuK24qZVt0KzMxPj41XX1mdW5jdGlvbiBkZWNvZGVIdWZmbWFuVHJlZUdyb3VwKGUsdCxuLGEscil7bGV0IHM9bjtmb3IobGV0IGk9MDtpPG47KytpKXtyW2ldPXM7Y29uc3Qgbj1yZWFkSHVmZm1hbkNvZGUoZSx0LHIsaSxhKTtpZihuPDApcmV0dXJuIG47cys9bn1yZXR1cm4gMH1mdW5jdGlvbiBjYWxjdWxhdGVGZW5jZShlKXtsZXQgdD1lLnJpbmdCdWZmZXJTaXplOzAhPT1lLmlzRWFnZXImJih0PU1hdGgubWluKHQsZS5yaW5nQnVmZmVyQnl0ZXNXcml0dGVuK2Uub3V0cHV0TGVuZ3RoLWUub3V0cHV0VXNlZCkpO3JldHVybiB0fWZ1bmN0aW9uIGRvVXNlRGljdGlvbmFyeShlLHQpe2lmKGUuZGlzdGFuY2U+MjE0NzQ4MzY0NClyZXR1cm4gbWFrZUVycm9yKGUsLTkpO2NvbnN0IG49ZS5kaXN0YW5jZS1lLm1heERpc3RhbmNlLTEtZS5jZFRvdGFsU2l6ZTtpZihuPDApe2NvbnN0IHQ9ZnVuY3Rpb24gaW5pdGlhbGl6ZUNvbXBvdW5kRGljdGlvbmFyeUNvcHkoZSx0LG4pey0xPT09ZS5jZEJsb2NrQml0cyYmZnVuY3Rpb24gaW5pdGlhbGl6ZUNvbXBvdW5kRGljdGlvbmFyeShlKXtlLmNkQmxvY2tNYXA9bmV3IEludDhBcnJheSgyNTYpO2xldCB0PTg7Zm9yKDtlLmNkVG90YWxTaXplLTE+PnQ7KXQrKzt0LT04O2UuY2RCbG9ja0JpdHM9dDtsZXQgbj0wLGE9MDtmb3IoO248ZS5jZFRvdGFsU2l6ZTspe2Zvcig7ZS5jZENodW5rT2Zmc2V0c1thKzFdPG47KWErKztlLmNkQmxvY2tNYXBbbj4+dF09YTtuKz0xPDx0fX0oZSk7bGV0IGE9ZS5jZEJsb2NrTWFwW3Q+PmUuY2RCbG9ja0JpdHNdO2Zvcig7dD49ZS5jZENodW5rT2Zmc2V0c1thKzFdOylhKys7aWYoZS5jZFRvdGFsU2l6ZT50K24pcmV0dXJuIG1ha2VFcnJvcihlLC05KTtlLmRpc3RSYklkeD1lLmRpc3RSYklkeCsxJjM7ZS5yaW5nc1tlLmRpc3RSYklkeF09ZS5kaXN0YW5jZTtlLm1ldGFCbG9ja0xlbmd0aC09bjtlLmNkQnJJbmRleD1hO2UuY2RCck9mZnNldD10LWUuY2RDaHVua09mZnNldHNbYV07ZS5jZEJyTGVuZ3RoPW47ZS5jZEJyQ29waWVkPTA7cmV0dXJuIDB9KGUsLW4tMSxlLmNvcHlMZW5ndGgpO2lmKHQ8MClyZXR1cm4gdDtlLnJ1bm5pbmdTdGF0ZT0xNH1lbHNle2NvbnN0IGE9dSxyPWUuY29weUxlbmd0aDtpZihyPjMxKXJldHVybiBtYWtlRXJyb3IoZSwtOSk7Y29uc3Qgcz1wW3JdO2lmKDA9PT1zKXJldHVybiBtYWtlRXJyb3IoZSwtOSk7bGV0IGk9bVtyXTtjb25zdCBvPW4+PnM7aSs9KG4mKDE8PHMpLTEpKnI7Y29uc3QgbD1jO2lmKG8+PWwubnVtVHJhbnNmb3JtcylyZXR1cm4gbWFrZUVycm9yKGUsLTkpO2NvbnN0IGY9ZnVuY3Rpb24gdHJhbnNmb3JtRGljdGlvbmFyeVdvcmQoZSx0LG4sYSxyLHMsaSl7bGV0IG89dDtjb25zdCBsPXMudHJpcGxldHMsZj1zLnByZWZpeFN1ZmZpeFN0b3JhZ2UsYz1zLnByZWZpeFN1ZmZpeEhlYWRzLGg9MyppLHU9bFtoXSxtPWxbaCsxXSxwPWxbaCsyXTtsZXQgZD1jW3VdO2NvbnN0IGc9Y1t1KzFdO2xldCBiPWNbcF07Y29uc3Qgdz1jW3ArMV07bGV0IGo9bS0xMSxrPW07KGo8MXx8aj45KSYmKGo9MCk7KGs8MXx8az45KSYmKGs9MCk7Zm9yKDtkIT09ZzspZVtvKytdPWZbZCsrXTtsZXQgeT1yO2o+eSYmKGo9eSk7bGV0IHE9YStqO3ktPWo7eS09aztsZXQgdj15O2Zvcig7dj4wOyl7ZVtvKytdPW5bcSsrXTt2LS19aWYoMTA9PT1tfHwxMT09PW0pe2xldCB0PW8teTsxMD09PW0mJih5PTEpO2Zvcig7eT4wOyl7Y29uc3Qgbj0yNTUmZVt0XTtpZihuPDE5Mil7bj49OTcmJm48PTEyMiYmKGVbdF09MzJeZVt0XSk7dCs9MTt5LT0xfWVsc2UgaWYobjwyMjQpe2VbdCsxXT0zMl5lW3QrMV07dCs9Mjt5LT0yfWVsc2V7ZVt0KzJdPTVeZVt0KzJdO3QrPTM7eS09M319fWVsc2UgaWYoMjE9PT1tfHwyMj09PW0pe2xldCB0PW8teTtjb25zdCBuPXMucGFyYW1zW2ldO2xldCBhPTE2Nzc3MjE2LSgzMjc2OCZuKSsoMzI3Njcmbik7Zm9yKDt5PjA7KXtsZXQgbj0xO2NvbnN0IHI9MjU1JmVbdF07aWYocjwxMjgpe2ErPXI7ZVt0XT0xMjcmYX1lbHNlIGlmKHI8MTkyKTtlbHNlIGlmKHI8MjI0KWlmKHk+PTIpe2NvbnN0IHM9ZVt0KzFdO2ErPTYzJnN8KDMxJnIpPDw2O2VbdF09MTkyfGE+PjYmMzE7ZVt0KzFdPTE5MiZzfDYzJmE7bj0yfWVsc2Ugbj15O2Vsc2UgaWYocjwyNDApaWYoeT49Myl7Y29uc3Qgcz1lW3QrMV0saT1lW3QrMl07YSs9NjMmaXwoNjMmcyk8PDZ8KDE1JnIpPDwxMjtlW3RdPTIyNHxhPj4xMiYxNTtlW3QrMV09MTkyJnN8YT4+NiY2MztlW3QrMl09MTkyJml8NjMmYTtuPTN9ZWxzZSBuPXk7ZWxzZSBpZihyPDI0OClpZih5Pj00KXtjb25zdCBzPWVbdCsxXSxpPWVbdCsyXSxvPWVbdCszXTthKz02MyZvfCg2MyZpKTw8NnwoNjMmcyk8PDEyfCg3JnIpPDwxODtlW3RdPTI0MHxhPj4xOCY3O2VbdCsxXT0xOTImc3xhPj4xMiY2MztlW3QrMl09MTkyJml8YT4+NiY2MztlW3QrM109MTkyJm98NjMmYTtuPTR9ZWxzZSBuPXk7dCs9bjt5LT1uOzIxPT09bSYmKHk9MCl9fWZvcig7YiE9PXc7KWVbbysrXT1mW2IrK107cmV0dXJuIG8tdH0oZS5yaW5nQnVmZmVyLGUucG9zLGEsaSxyLGwsbyk7ZS5wb3MrPWY7ZS5tZXRhQmxvY2tMZW5ndGgtPWY7aWYoZS5wb3M+PXQpe2UubmV4dFJ1bm5pbmdTdGF0ZT00O2UucnVubmluZ1N0YXRlPTEyO3JldHVybiAwfWUucnVubmluZ1N0YXRlPTR9cmV0dXJuIDB9ZnVuY3Rpb24gY29weUZyb21Db21wb3VuZERpY3Rpb25hcnkoZSx0KXtsZXQgbj1lLnBvcztjb25zdCBhPW47Zm9yKDtlLmNkQnJMZW5ndGghPT1lLmNkQnJDb3BpZWQ7KXtjb25zdCBhPXQtbixyPWUuY2RDaHVua09mZnNldHNbZS5jZEJySW5kZXgrMV0tZS5jZENodW5rT2Zmc2V0c1tlLmNkQnJJbmRleF0tZS5jZEJyT2Zmc2V0O2xldCBzPWUuY2RCckxlbmd0aC1lLmNkQnJDb3BpZWQ7cz5yJiYocz1yKTtzPmEmJihzPWEpO2UucmluZ0J1ZmZlci5zZXQoZS5jZENodW5rc1tlLmNkQnJJbmRleF0uc3ViYXJyYXkoZS5jZEJyT2Zmc2V0LGUuY2RCck9mZnNldCtzKSxuKTtuKz1zO2UuY2RCck9mZnNldCs9cztlLmNkQnJDb3BpZWQrPXM7aWYocz09PXIpe2UuY2RCckluZGV4Kys7ZS5jZEJyT2Zmc2V0PTB9aWYobj49dClicmVha31yZXR1cm4gbi1hfWZ1bmN0aW9uIGRlY29tcHJlc3MoZSl7bGV0IHQ7aWYoMD09PWUucnVubmluZ1N0YXRlKXJldHVybiBtYWtlRXJyb3IoZSwtMjUpO2lmKGUucnVubmluZ1N0YXRlPDApcmV0dXJuIG1ha2VFcnJvcihlLC0yOCk7aWYoMTE9PT1lLnJ1bm5pbmdTdGF0ZSlyZXR1cm4gbWFrZUVycm9yKGUsLTIyKTtpZigxPT09ZS5ydW5uaW5nU3RhdGUpe2NvbnN0IHQ9ZnVuY3Rpb24gZGVjb2RlV2luZG93Qml0cyhlKXtjb25zdCB0PWUuaXNMYXJnZVdpbmRvdztlLmlzTGFyZ2VXaW5kb3c9MDtpZihlLmJpdE9mZnNldD49MTYpe2UuYWNjdW11bGF0b3IzMj1lLnNob3J0QnVmZmVyW2UuaGFsZk9mZnNldCsrXTw8MTZ8ZS5hY2N1bXVsYXRvcjMyPj4+MTY7ZS5iaXRPZmZzZXQtPTE2fWlmKDA9PT1yZWFkRmV3Qml0cyhlLDEpKXJldHVybiAxNjtsZXQgbj1yZWFkRmV3Qml0cyhlLDMpO2lmKDAhPT1uKXJldHVybiAxNytuO249cmVhZEZld0JpdHMoZSwzKTtpZigwIT09bil7aWYoMT09PW4pe2lmKDA9PT10KXJldHVybi0xO2UuaXNMYXJnZVdpbmRvdz0xO2lmKDE9PT1yZWFkRmV3Qml0cyhlLDEpKXJldHVybi0xO249cmVhZEZld0JpdHMoZSw2KTtyZXR1cm4gbjwxMHx8bj4zMD8tMTpufXJldHVybiA4K259cmV0dXJuIDE3fShlKTtpZigtMT09PXQpcmV0dXJuIG1ha2VFcnJvcihlLC0xMSk7ZS5tYXhSaW5nQnVmZmVyU2l6ZT0xPDx0O2UubWF4QmFja3dhcmREaXN0YW5jZT1lLm1heFJpbmdCdWZmZXJTaXplLTE2O2UucnVubmluZ1N0YXRlPTJ9bGV0IHI9Y2FsY3VsYXRlRmVuY2UoZSkscz1lLnJpbmdCdWZmZXJTaXplLTEsaT1lLnJpbmdCdWZmZXI7Zm9yKDsxMCE9PWUucnVubmluZ1N0YXRlOylzd2l0Y2goZS5ydW5uaW5nU3RhdGUpe2Nhc2UgMjppZihlLm1ldGFCbG9ja0xlbmd0aDwwKXJldHVybiBtYWtlRXJyb3IoZSwtMTApO3Q9cmVhZE5leHRNZXRhYmxvY2tIZWFkZXIoZSk7aWYodDwwKXJldHVybiB0O3I9Y2FsY3VsYXRlRmVuY2UoZSk7cz1lLnJpbmdCdWZmZXJTaXplLTE7aT1lLnJpbmdCdWZmZXI7Y29udGludWU7Y2FzZSAzOnQ9cmVhZE1ldGFibG9ja0h1ZmZtYW5Db2Rlc0FuZENvbnRleHRNYXBzKGUpO2lmKHQ8MClyZXR1cm4gdDtlLnJ1bm5pbmdTdGF0ZT00O2NvbnRpbnVlO2Nhc2UgNDppZihlLm1ldGFCbG9ja0xlbmd0aDw9MCl7ZS5ydW5uaW5nU3RhdGU9Mjtjb250aW51ZX1pZihlLmhhbGZPZmZzZXQ+MjAzMCl7dD1yZWFkTW9yZUlucHV0KGUpO2lmKHQ8MClyZXR1cm4gdH0wPT09ZS5jb21tYW5kQmxvY2tMZW5ndGgmJmRlY29kZUNvbW1hbmRCbG9ja1N3aXRjaChlKTtlLmNvbW1hbmRCbG9ja0xlbmd0aC0tO2lmKGUuYml0T2Zmc2V0Pj0xNil7ZS5hY2N1bXVsYXRvcjMyPWUuc2hvcnRCdWZmZXJbZS5oYWxmT2Zmc2V0KytdPDwxNnxlLmFjY3VtdWxhdG9yMzI+Pj4xNjtlLmJpdE9mZnNldC09MTZ9Y29uc3Qgbz1yZWFkU3ltYm9sKGUuY29tbWFuZFRyZWVHcm91cCxlLmNvbW1hbmRUcmVlSWR4LGUpPDwyLGw9ZltvXSxjPWZbbysxXSx1PWZbbysyXTtlLmRpc3RhbmNlQ29kZT1mW28rM107aWYoZS5iaXRPZmZzZXQ+PTE2KXtlLmFjY3VtdWxhdG9yMzI9ZS5zaG9ydEJ1ZmZlcltlLmhhbGZPZmZzZXQrK108PDE2fGUuYWNjdW11bGF0b3IzMj4+PjE2O2UuYml0T2Zmc2V0LT0xNn1jb25zdCBtPTI1NSZsO2UuaW5zZXJ0TGVuZ3RoPWMrKG08PTE2P3JlYWRGZXdCaXRzKGUsbSk6cmVhZE1hbnlCaXRzKGUsbSkpO2lmKGUuYml0T2Zmc2V0Pj0xNil7ZS5hY2N1bXVsYXRvcjMyPWUuc2hvcnRCdWZmZXJbZS5oYWxmT2Zmc2V0KytdPDwxNnxlLmFjY3VtdWxhdG9yMzI+Pj4xNjtlLmJpdE9mZnNldC09MTZ9Y29uc3QgcD1sPj44O2UuY29weUxlbmd0aD11KyhwPD0xNj9yZWFkRmV3Qml0cyhlLHApOnJlYWRNYW55Qml0cyhlLHApKTtlLmo9MDtlLnJ1bm5pbmdTdGF0ZT03O2NvbnRpbnVlO2Nhc2UgNzppZigwIT09ZS50cml2aWFsTGl0ZXJhbENvbnRleHQpZm9yKDtlLmo8ZS5pbnNlcnRMZW5ndGg7KXtpZihlLmhhbGZPZmZzZXQ+MjAzMCl7dD1yZWFkTW9yZUlucHV0KGUpO2lmKHQ8MClyZXR1cm4gdH0wPT09ZS5saXRlcmFsQmxvY2tMZW5ndGgmJmRlY29kZUxpdGVyYWxCbG9ja1N3aXRjaChlKTtlLmxpdGVyYWxCbG9ja0xlbmd0aC0tO2lmKGUuYml0T2Zmc2V0Pj0xNil7ZS5hY2N1bXVsYXRvcjMyPWUuc2hvcnRCdWZmZXJbZS5oYWxmT2Zmc2V0KytdPDwxNnxlLmFjY3VtdWxhdG9yMzI+Pj4xNjtlLmJpdE9mZnNldC09MTZ9aVtlLnBvc109cmVhZFN5bWJvbChlLmxpdGVyYWxUcmVlR3JvdXAsZS5saXRlcmFsVHJlZUlkeCxlKTtlLnBvcysrO2UuaisrO2lmKGUucG9zPj1yKXtlLm5leHRSdW5uaW5nU3RhdGU9NztlLnJ1bm5pbmdTdGF0ZT0xMjticmVha319ZWxzZXtsZXQgbj0yNTUmaVtlLnBvcy0xJnNdLGE9MjU1JmlbZS5wb3MtMiZzXTtmb3IoO2UuajxlLmluc2VydExlbmd0aDspe2lmKGUuaGFsZk9mZnNldD4yMDMwKXt0PXJlYWRNb3JlSW5wdXQoZSk7aWYodDwwKXJldHVybiB0fTA9PT1lLmxpdGVyYWxCbG9ja0xlbmd0aCYmZGVjb2RlTGl0ZXJhbEJsb2NrU3dpdGNoKGUpO2NvbnN0IHM9aFtlLmNvbnRleHRMb29rdXBPZmZzZXQxK25dfGhbZS5jb250ZXh0TG9va3VwT2Zmc2V0MithXSxvPTI1NSZlLmNvbnRleHRNYXBbZS5jb250ZXh0TWFwU2xpY2Urc107ZS5saXRlcmFsQmxvY2tMZW5ndGgtLTthPW47aWYoZS5iaXRPZmZzZXQ+PTE2KXtlLmFjY3VtdWxhdG9yMzI9ZS5zaG9ydEJ1ZmZlcltlLmhhbGZPZmZzZXQrK108PDE2fGUuYWNjdW11bGF0b3IzMj4+PjE2O2UuYml0T2Zmc2V0LT0xNn1uPXJlYWRTeW1ib2woZS5saXRlcmFsVHJlZUdyb3VwLG8sZSk7aVtlLnBvc109bjtlLnBvcysrO2UuaisrO2lmKGUucG9zPj1yKXtlLm5leHRSdW5uaW5nU3RhdGU9NztlLnJ1bm5pbmdTdGF0ZT0xMjticmVha319fWlmKDchPT1lLnJ1bm5pbmdTdGF0ZSljb250aW51ZTtlLm1ldGFCbG9ja0xlbmd0aC09ZS5pbnNlcnRMZW5ndGg7aWYoZS5tZXRhQmxvY2tMZW5ndGg8PTApe2UucnVubmluZ1N0YXRlPTQ7Y29udGludWV9bGV0IGQ9ZS5kaXN0YW5jZUNvZGU7aWYoZDwwKWUuZGlzdGFuY2U9ZS5yaW5nc1tlLmRpc3RSYklkeF07ZWxzZXtpZihlLmhhbGZPZmZzZXQ+MjAzMCl7dD1yZWFkTW9yZUlucHV0KGUpO2lmKHQ8MClyZXR1cm4gdH0wPT09ZS5kaXN0YW5jZUJsb2NrTGVuZ3RoJiZkZWNvZGVEaXN0YW5jZUJsb2NrU3dpdGNoKGUpO2UuZGlzdGFuY2VCbG9ja0xlbmd0aC0tO2lmKGUuYml0T2Zmc2V0Pj0xNil7ZS5hY2N1bXVsYXRvcjMyPWUuc2hvcnRCdWZmZXJbZS5oYWxmT2Zmc2V0KytdPDwxNnxlLmFjY3VtdWxhdG9yMzI+Pj4xNjtlLmJpdE9mZnNldC09MTZ9Y29uc3Qgcj0yNTUmZS5kaXN0Q29udGV4dE1hcFtlLmRpc3RDb250ZXh0TWFwU2xpY2UrZF07ZD1yZWFkU3ltYm9sKGUuZGlzdGFuY2VUcmVlR3JvdXAscixlKTtpZihkPDE2KXtjb25zdCB0PWUuZGlzdFJiSWR4K25bZF0mMztlLmRpc3RhbmNlPWUucmluZ3NbdF0rYVtkXTtpZihlLmRpc3RhbmNlPDApcmV0dXJuIG1ha2VFcnJvcihlLC0xMil9ZWxzZXtjb25zdCB0PWUuZGlzdEV4dHJhQml0c1tkXTtsZXQgbjtpZihlLmJpdE9mZnNldCt0PD0zMiluPXJlYWRGZXdCaXRzKGUsdCk7ZWxzZXtpZihlLmJpdE9mZnNldD49MTYpe2UuYWNjdW11bGF0b3IzMj1lLnNob3J0QnVmZmVyW2UuaGFsZk9mZnNldCsrXTw8MTZ8ZS5hY2N1bXVsYXRvcjMyPj4+MTY7ZS5iaXRPZmZzZXQtPTE2fW49dDw9MTY/cmVhZEZld0JpdHMoZSx0KTpyZWFkTWFueUJpdHMoZSx0KX1lLmRpc3RhbmNlPWUuZGlzdE9mZnNldFtkXSsobjw8ZS5kaXN0YW5jZVBvc3RmaXhCaXRzKX19ZS5tYXhEaXN0YW5jZSE9PWUubWF4QmFja3dhcmREaXN0YW5jZSYmZS5wb3M8ZS5tYXhCYWNrd2FyZERpc3RhbmNlP2UubWF4RGlzdGFuY2U9ZS5wb3M6ZS5tYXhEaXN0YW5jZT1lLm1heEJhY2t3YXJkRGlzdGFuY2U7aWYoZS5kaXN0YW5jZT5lLm1heERpc3RhbmNlKXtlLnJ1bm5pbmdTdGF0ZT05O2NvbnRpbnVlfWlmKGQ+MCl7ZS5kaXN0UmJJZHg9ZS5kaXN0UmJJZHgrMSYzO2UucmluZ3NbZS5kaXN0UmJJZHhdPWUuZGlzdGFuY2V9aWYoZS5jb3B5TGVuZ3RoPmUubWV0YUJsb2NrTGVuZ3RoKXJldHVybiBtYWtlRXJyb3IoZSwtOSk7ZS5qPTA7ZS5ydW5uaW5nU3RhdGU9ODtjb250aW51ZTtjYXNlIDg6bGV0IGc9ZS5wb3MtZS5kaXN0YW5jZSZzLGI9ZS5wb3M7Y29uc3Qgdz1lLmNvcHlMZW5ndGgtZS5qLGo9Zyt3LGs9Yit3O2lmKGo8cyYmazxzKXtpZih3PDEyfHxqPmImJms+Zyl7Y29uc3QgZT13KzM+PjI7Zm9yKGxldCB0PTA7dDxlOysrdCl7aVtiKytdPWlbZysrXTtpW2IrK109aVtnKytdO2lbYisrXT1pW2crK107aVtiKytdPWlbZysrXX19ZWxzZSBpLmNvcHlXaXRoaW4oYixnLGopO2Uuais9dztlLm1ldGFCbG9ja0xlbmd0aC09dztlLnBvcys9d31lbHNlIGZvcig7ZS5qPGUuY29weUxlbmd0aDspe2lbZS5wb3NdPWlbZS5wb3MtZS5kaXN0YW5jZSZzXTtlLm1ldGFCbG9ja0xlbmd0aC0tO2UucG9zKys7ZS5qKys7aWYoZS5wb3M+PXIpe2UubmV4dFJ1bm5pbmdTdGF0ZT04O2UucnVubmluZ1N0YXRlPTEyO2JyZWFrfX04PT09ZS5ydW5uaW5nU3RhdGUmJihlLnJ1bm5pbmdTdGF0ZT00KTtjb250aW51ZTtjYXNlIDk6dD1kb1VzZURpY3Rpb25hcnkoZSxyKTtpZih0PDApcmV0dXJuIHQ7Y29udGludWU7Y2FzZSAxNDplLnBvcys9Y29weUZyb21Db21wb3VuZERpY3Rpb25hcnkoZSxyKTtpZihlLnBvcz49cil7ZS5uZXh0UnVubmluZ1N0YXRlPTE0O2UucnVubmluZ1N0YXRlPTEyO3JldHVybiAyfWUucnVubmluZ1N0YXRlPTQ7Y29udGludWU7Y2FzZSA1OmZvcig7ZS5tZXRhQmxvY2tMZW5ndGg+MDspe2lmKGUuaGFsZk9mZnNldD4yMDMwKXt0PXJlYWRNb3JlSW5wdXQoZSk7aWYodDwwKXJldHVybiB0fWlmKGUuYml0T2Zmc2V0Pj0xNil7ZS5hY2N1bXVsYXRvcjMyPWUuc2hvcnRCdWZmZXJbZS5oYWxmT2Zmc2V0KytdPDwxNnxlLmFjY3VtdWxhdG9yMzI+Pj4xNjtlLmJpdE9mZnNldC09MTZ9cmVhZEZld0JpdHMoZSw4KTtlLm1ldGFCbG9ja0xlbmd0aC0tfWUucnVubmluZ1N0YXRlPTI7Y29udGludWU7Y2FzZSA2OnQ9Y29weVVuY29tcHJlc3NlZERhdGEoZSk7aWYodDwwKXJldHVybiB0O2NvbnRpbnVlO2Nhc2UgMTI6ZS5yaW5nQnVmZmVyQnl0ZXNSZWFkeT1NYXRoLm1pbihlLnBvcyxlLnJpbmdCdWZmZXJTaXplKTtlLnJ1bm5pbmdTdGF0ZT0xMztjb250aW51ZTtjYXNlIDEzOnQ9d3JpdGVSaW5nQnVmZmVyKGUpO2lmKDAhPT10KXJldHVybiB0O2UucG9zPj1lLm1heEJhY2t3YXJkRGlzdGFuY2UmJihlLm1heERpc3RhbmNlPWUubWF4QmFja3dhcmREaXN0YW5jZSk7aWYoZS5wb3M+PWUucmluZ0J1ZmZlclNpemUpe2UucG9zPmUucmluZ0J1ZmZlclNpemUmJmkuY29weVdpdGhpbigwLGUucmluZ0J1ZmZlclNpemUsZS5wb3MpO2UucG9zPWUucG9zJnM7ZS5yaW5nQnVmZmVyQnl0ZXNXcml0dGVuPTB9ZS5ydW5uaW5nU3RhdGU9ZS5uZXh0UnVubmluZ1N0YXRlO2NvbnRpbnVlO2RlZmF1bHQ6cmV0dXJuIG1ha2VFcnJvcihlLC0yOCl9aWYoMTAhPT1lLnJ1bm5pbmdTdGF0ZSlyZXR1cm4gbWFrZUVycm9yKGUsLTI5KTtpZihlLm1ldGFCbG9ja0xlbmd0aDwwKXJldHVybiBtYWtlRXJyb3IoZSwtMTApO3Q9anVtcFRvQnl0ZUJvdW5kYXJ5KGUpO2lmKDAhPT10KXJldHVybiB0O3Q9Y2hlY2tIZWFsdGgoZSwxKTtyZXR1cm4gMCE9PXQ/dDoxfWNvbnN0IGM9bmV3IGZ1bmN0aW9uIFRyYW5zZm9ybXMoZSx0LG4pe3RoaXMubnVtVHJhbnNmb3Jtcz0wO3RoaXMudHJpcGxldHM9bmV3IEludDMyQXJyYXkoMCk7dGhpcy5wcmVmaXhTdWZmaXhTdG9yYWdlPW5ldyBJbnQ4QXJyYXkoMCk7dGhpcy5wcmVmaXhTdWZmaXhIZWFkcz1uZXcgSW50MzJBcnJheSgwKTt0aGlzLnBhcmFtcz1uZXcgSW50MTZBcnJheSgwKTt0aGlzLm51bVRyYW5zZm9ybXM9ZTt0aGlzLnRyaXBsZXRzPW5ldyBJbnQzMkFycmF5KDMqZSk7dGhpcy5wYXJhbXM9bmV3IEludDE2QXJyYXkoZSk7dGhpcy5wcmVmaXhTdWZmaXhTdG9yYWdlPW5ldyBJbnQ4QXJyYXkodCk7dGhpcy5wcmVmaXhTdWZmaXhIZWFkcz1uZXcgSW50MzJBcnJheShuKzEpfSgxMjEsMTY3LDUwKTshZnVuY3Rpb24gdW5wYWNrVHJhbnNmb3JtcyhlLHQsbixhLHIpe2NvbnN0IHM9dG9VdGY4UnVuZXMoYSksaT1zLmxlbmd0aDtsZXQgbz0xLGw9MDtmb3IobGV0IG49MDtuPGk7KytuKXtjb25zdCBhPXNbbl07MzU9PT1hP3RbbysrXT1sOmVbbCsrXT1hfWZvcihsZXQgZT0wO2U8MzYzOysrZSluW2VdPXIuY2hhckNvZGVBdChlKS0zMn0oYy5wcmVmaXhTdWZmaXhTdG9yYWdlLGMucHJlZml4U3VmZml4SGVhZHMsYy50cmlwbGV0cywnIyAjcyAjLCAjZSAjLiMgdGhlICMuY29tLyPDgsKgIyBvZiAjIGFuZCAjIGluICMgdG8gIyIjIj4jXG4jXSMgZm9yICMgYSAjIHRoYXQgIy4gIyB3aXRoICNcJyMgZnJvbSAjIGJ5ICMuIFRoZSAjIG9uICMgYXMgIyBpcyAjaW5nICNcblx0IzojZWQgIygjIGF0ICNseSAjPSIjIG9mIHRoZSAjLiBUaGlzICMsIyBub3QgI2VyICNhbCAjPVwnI2Z1bCAjaXZlICNsZXNzICNlc3QgI2l6ZSAjb3VzICMnLCIgICAgICEhICEgLCAgKiEgICYhICBcIiAhICApICogICAqIC0gICEgIyAhICAjISohICArICAsJCAhICAtICAlICAuICAvICMgICAwICAxIC4gIFwiICAgMiAgMyEqICAgNCUgICEgIyAvICAgNSAgNiAgNyAgOCAwICAxICYgICAkICAgOSArICAgOiAgOyAgPCAnICAhPSAgPiAgPyEgNCAgQCA0ICAyICAmICAgQSAqIyAoICAgQiAgQyYgKSAlICApICEqIyAqLSUgQSArISAqLiAgRCEgJScgICYgRSAqNiAgRiAgRyUgISAqQSAqJSAgSCEgRCAgSSErISAgSiErICAgSyArLSAqNCEgQSAgTCEqNCAgTSAgTiArNiAgTyEqJSArLiEgSyAqRyAgUCArJSggICEgRyAqRCArRCAgUSArIyAqSyEqRyErRCErIyArRyArQSArNCErJSArSyErNCEqRCErSyEqSyIpO2Z1bmN0aW9uIGdldE5leHRLZXkoZSx0KXtsZXQgbj0xPDx0LTE7Zm9yKDswIT09KGUmbik7KW4+Pj0xO3JldHVybihlJm4tMSkrbn1mdW5jdGlvbiByZXBsaWNhdGVWYWx1ZShlLHQsbixhLHIpe2xldCBzPWE7Zm9yKDtzPjA7KXtzLT1uO2VbdCtzXT1yfX1mdW5jdGlvbiBuZXh0VGFibGVCaXRTaXplKGUsdCxuKXtsZXQgYT10LHI9MTw8YS1uO2Zvcig7YTwxNTspe3ItPWVbYV07aWYocjw9MClicmVhazthKys7cjw8PTF9cmV0dXJuIGEtbn1mdW5jdGlvbiBidWlsZEh1ZmZtYW5UYWJsZShlLHQsbixhLHIpe2NvbnN0IHM9ZVt0XSxpPW5ldyBJbnQzMkFycmF5KHIpLG89bmV3IEludDMyQXJyYXkoMTYpLGw9bmV3IEludDMyQXJyYXkoMTYpO2ZvcihsZXQgZT0wO2U8cjsrK2Upb1thW2VdXSsrO2xbMV09MDtmb3IobGV0IGU9MTtlPDE1OysrZSlsW2UrMV09bFtlXStvW2VdO2ZvcihsZXQgZT0wO2U8cjsrK2UpMCE9PWFbZV0mJihpW2xbYVtlXV0rK109ZSk7bGV0IGY9bixjPTE8PGYsaD1jO2lmKDE9PT1sWzE1XSl7Zm9yKGxldCB0PTA7dDxoOysrdCllW3MrdF09aVswXTtyZXR1cm4gaH1sZXQgdT0wLG09MCxwPTE7Zm9yKGxldCB0PTE7dDw9bjsrK3Qpe3A8PD0xO2Zvcig7b1t0XT4wOyl7cmVwbGljYXRlVmFsdWUoZSxzK3UscCxjLHQ8PDE2fGlbbSsrXSk7dT1nZXROZXh0S2V5KHUsdCk7b1t0XS0tfX1jb25zdCBkPWgtMTtsZXQgZz0tMSxiPXM7cD0xO2ZvcihsZXQgdD1uKzE7dDw9MTU7Kyt0KXtwPDw9MTtmb3IoO29bdF0+MDspe2lmKCh1JmQpIT09Zyl7Yis9YztmPW5leHRUYWJsZUJpdFNpemUobyx0LG4pO2M9MTw8ZjtoKz1jO2c9dSZkO2VbcytnXT1mK248PDE2fGItcy1nfXJlcGxpY2F0ZVZhbHVlKGUsYisodT4+bikscCxjLHQtbjw8MTZ8aVttKytdKTt1PWdldE5leHRLZXkodSx0KTtvW3RdLS19fXJldHVybiBofWZ1bmN0aW9uIHJlYWRNb3JlSW5wdXQoZSl7aWYoMCE9PWUuZW5kT2ZTdHJlYW1SZWFjaGVkKXJldHVybiBoYWxmQXZhaWxhYmxlKGUpPj0tMj8wOm1ha2VFcnJvcihlLC0xNik7Y29uc3QgdD1lLmhhbGZPZmZzZXQ8PDE7bGV0IG49NDA5Ni10O2UuYnl0ZUJ1ZmZlci5jb3B5V2l0aGluKDAsdCw0MDk2KTtlLmhhbGZPZmZzZXQ9MDtmb3IoO248NDA5Njspe2NvbnN0IHQ9NDA5Ni1uLGE9cmVhZElucHV0KGUsZS5ieXRlQnVmZmVyLG4sdCk7aWYoYTwtMSlyZXR1cm4gYTtpZihhPD0wKXtlLmVuZE9mU3RyZWFtUmVhY2hlZD0xO2UudGFpbEJ5dGVzPW47bis9MTticmVha31uKz1hfSFmdW5jdGlvbiBieXRlc1RvTmliYmxlcyhlLHQpe2NvbnN0IG49ZS5ieXRlQnVmZmVyLGE9dD4+MSxyPWUuc2hvcnRCdWZmZXI7Zm9yKGxldCBlPTA7ZTxhOysrZSlyW2VdPTI1NSZuWzIqZV18KDI1NSZuWzIqZSsxXSk8PDh9KGUsbik7cmV0dXJuIDB9ZnVuY3Rpb24gY2hlY2tIZWFsdGgoZSx0KXtpZigwPT09ZS5lbmRPZlN0cmVhbVJlYWNoZWQpcmV0dXJuIDA7Y29uc3Qgbj0oZS5oYWxmT2Zmc2V0PDwxKSsoZS5iaXRPZmZzZXQrNz4+MyktNDtyZXR1cm4gbj5lLnRhaWxCeXRlcz9tYWtlRXJyb3IoZSwtMTMpOjAhPT10JiZuIT09ZS50YWlsQnl0ZXM/bWFrZUVycm9yKGUsLTE3KTowfWZ1bmN0aW9uIHJlYWRGZXdCaXRzKGUsdCl7Y29uc3Qgbj1lLmFjY3VtdWxhdG9yMzI+Pj5lLmJpdE9mZnNldCYoMTw8dCktMTtlLmJpdE9mZnNldCs9dDtyZXR1cm4gbn1mdW5jdGlvbiByZWFkTWFueUJpdHMoZSx0KXtjb25zdCBuPXJlYWRGZXdCaXRzKGUsMTYpO2UuYWNjdW11bGF0b3IzMj1lLnNob3J0QnVmZmVyW2UuaGFsZk9mZnNldCsrXTw8MTZ8ZS5hY2N1bXVsYXRvcjMyPj4+MTY7ZS5iaXRPZmZzZXQtPTE2O3JldHVybiBufHJlYWRGZXdCaXRzKGUsdC0xNik8PDE2fWZ1bmN0aW9uIHByZXBhcmUoZSl7aWYoZS5oYWxmT2Zmc2V0PjIwMzApe2NvbnN0IHQ9cmVhZE1vcmVJbnB1dChlKTtpZigwIT09dClyZXR1cm4gdH1sZXQgdD1jaGVja0hlYWx0aChlLDApO2lmKDAhPT10KXJldHVybiB0O2UuYWNjdW11bGF0b3IzMj1lLnNob3J0QnVmZmVyW2UuaGFsZk9mZnNldCsrXTw8MTZ8ZS5hY2N1bXVsYXRvcjMyPj4+MTY7ZS5iaXRPZmZzZXQtPTE2O2UuYWNjdW11bGF0b3IzMj1lLnNob3J0QnVmZmVyW2UuaGFsZk9mZnNldCsrXTw8MTZ8ZS5hY2N1bXVsYXRvcjMyPj4+MTY7ZS5iaXRPZmZzZXQtPTE2O3JldHVybiAwfWZ1bmN0aW9uIHJlbG9hZChlKXtyZXR1cm4gMzI9PT1lLmJpdE9mZnNldD9wcmVwYXJlKGUpOjB9ZnVuY3Rpb24ganVtcFRvQnl0ZUJvdW5kYXJ5KGUpe2NvbnN0IHQ9MzItZS5iaXRPZmZzZXQmNztpZigwIT09dCl7aWYoMCE9PXJlYWRGZXdCaXRzKGUsdCkpcmV0dXJuIG1ha2VFcnJvcihlLC01KX1yZXR1cm4gMH1mdW5jdGlvbiBoYWxmQXZhaWxhYmxlKGUpe2xldCB0PTIwNDg7MCE9PWUuZW5kT2ZTdHJlYW1SZWFjaGVkJiYodD1lLnRhaWxCeXRlcysxPj4xKTtyZXR1cm4gdC1lLmhhbGZPZmZzZXR9Y29uc3QgaD1uZXcgSW50MzJBcnJheSgyMDQ4KTshZnVuY3Rpb24gdW5wYWNrTG9va3VwVGFibGUoZSx0LG4pe2ZvcihsZXQgdD0wO3Q8MjU2OysrdCl7ZVt0XT02MyZ0O2VbNTEyK3RdPXQ+PjI7ZVsxNzkyK3RdPTIrKHQ+PjYpfWZvcihsZXQgbj0wO248MTI4OysrbillWzEwMjQrbl09NCoodC5jaGFyQ29kZUF0KG4pLTMyKTtmb3IobGV0IHQ9MDt0PDY0OysrdCl7ZVsxMTUyK3RdPTEmdDtlWzEyMTYrdF09MisoMSZ0KX1sZXQgYT0xMjgwO2ZvcihsZXQgdD0wO3Q8MTk7Kyt0KXtjb25zdCByPTMmdCxzPW4uY2hhckNvZGVBdCh0KS0zMjtmb3IobGV0IHQ9MDt0PHM7Kyt0KWVbYSsrXT1yfWZvcihsZXQgdD0wO3Q8MTY7Kyt0KXtlWzE3OTIrdF09MTtlWzIwMzIrdF09Nn1lWzE3OTJdPTA7ZVsyMDQ3XT03O2ZvcihsZXQgdD0wO3Q8MjU2OysrdCllWzE1MzYrdF09ZVsxNzkyK3RdPDwzfShoLCIgICAgICAgICAhISAgISAgICAgICAgICAgICAgICAgIFwiIyQjIyUjJCYnIyMoIykjKysrKysrKysrKygoJionIyMsLS0tLC0tLSwtLS0tLSwtLS0tLSwtLS0tLSYjJyMjIy4vLy8uLy8vLi8vLy8vLi8vLy8vLi8vLy8vJiMnIyAiLCJBLyogICc6ICAmIDogJCAgwoEgQCIpO2Z1bmN0aW9uIFN0YXRlKCl7dGhpcy5yaW5nQnVmZmVyPW5ldyBJbnQ4QXJyYXkoMCk7dGhpcy5jb250ZXh0TW9kZXM9bmV3IEludDhBcnJheSgwKTt0aGlzLmNvbnRleHRNYXA9bmV3IEludDhBcnJheSgwKTt0aGlzLmRpc3RDb250ZXh0TWFwPW5ldyBJbnQ4QXJyYXkoMCk7dGhpcy5kaXN0RXh0cmFCaXRzPW5ldyBJbnQ4QXJyYXkoMCk7dGhpcy5vdXRwdXQ9bmV3IEludDhBcnJheSgwKTt0aGlzLmJ5dGVCdWZmZXI9bmV3IEludDhBcnJheSgwKTt0aGlzLnNob3J0QnVmZmVyPW5ldyBJbnQxNkFycmF5KDApO3RoaXMuaW50QnVmZmVyPW5ldyBJbnQzMkFycmF5KDApO3RoaXMucmluZ3M9bmV3IEludDMyQXJyYXkoMCk7dGhpcy5ibG9ja1RyZWVzPW5ldyBJbnQzMkFycmF5KDApO3RoaXMubGl0ZXJhbFRyZWVHcm91cD1uZXcgSW50MzJBcnJheSgwKTt0aGlzLmNvbW1hbmRUcmVlR3JvdXA9bmV3IEludDMyQXJyYXkoMCk7dGhpcy5kaXN0YW5jZVRyZWVHcm91cD1uZXcgSW50MzJBcnJheSgwKTt0aGlzLmRpc3RPZmZzZXQ9bmV3IEludDMyQXJyYXkoMCk7dGhpcy5hY2N1bXVsYXRvcjY0PTA7dGhpcy5ydW5uaW5nU3RhdGU9MDt0aGlzLm5leHRSdW5uaW5nU3RhdGU9MDt0aGlzLmFjY3VtdWxhdG9yMzI9MDt0aGlzLmJpdE9mZnNldD0wO3RoaXMuaGFsZk9mZnNldD0wO3RoaXMudGFpbEJ5dGVzPTA7dGhpcy5lbmRPZlN0cmVhbVJlYWNoZWQ9MDt0aGlzLm1ldGFCbG9ja0xlbmd0aD0wO3RoaXMuaW5wdXRFbmQ9MDt0aGlzLmlzVW5jb21wcmVzc2VkPTA7dGhpcy5pc01ldGFkYXRhPTA7dGhpcy5saXRlcmFsQmxvY2tMZW5ndGg9MDt0aGlzLm51bUxpdGVyYWxCbG9ja1R5cGVzPTA7dGhpcy5jb21tYW5kQmxvY2tMZW5ndGg9MDt0aGlzLm51bUNvbW1hbmRCbG9ja1R5cGVzPTA7dGhpcy5kaXN0YW5jZUJsb2NrTGVuZ3RoPTA7dGhpcy5udW1EaXN0YW5jZUJsb2NrVHlwZXM9MDt0aGlzLnBvcz0wO3RoaXMubWF4RGlzdGFuY2U9MDt0aGlzLmRpc3RSYklkeD0wO3RoaXMudHJpdmlhbExpdGVyYWxDb250ZXh0PTA7dGhpcy5saXRlcmFsVHJlZUlkeD0wO3RoaXMuY29tbWFuZFRyZWVJZHg9MDt0aGlzLmo9MDt0aGlzLmluc2VydExlbmd0aD0wO3RoaXMuY29udGV4dE1hcFNsaWNlPTA7dGhpcy5kaXN0Q29udGV4dE1hcFNsaWNlPTA7dGhpcy5jb250ZXh0TG9va3VwT2Zmc2V0MT0wO3RoaXMuY29udGV4dExvb2t1cE9mZnNldDI9MDt0aGlzLmRpc3RhbmNlQ29kZT0wO3RoaXMubnVtRGlyZWN0RGlzdGFuY2VDb2Rlcz0wO3RoaXMuZGlzdGFuY2VQb3N0Zml4Qml0cz0wO3RoaXMuZGlzdGFuY2U9MDt0aGlzLmNvcHlMZW5ndGg9MDt0aGlzLm1heEJhY2t3YXJkRGlzdGFuY2U9MDt0aGlzLm1heFJpbmdCdWZmZXJTaXplPTA7dGhpcy5yaW5nQnVmZmVyU2l6ZT0wO3RoaXMuZXhwZWN0ZWRUb3RhbFNpemU9MDt0aGlzLm91dHB1dE9mZnNldD0wO3RoaXMub3V0cHV0TGVuZ3RoPTA7dGhpcy5vdXRwdXRVc2VkPTA7dGhpcy5yaW5nQnVmZmVyQnl0ZXNXcml0dGVuPTA7dGhpcy5yaW5nQnVmZmVyQnl0ZXNSZWFkeT0wO3RoaXMuaXNFYWdlcj0wO3RoaXMuaXNMYXJnZVdpbmRvdz0wO3RoaXMuY2ROdW1DaHVua3M9MDt0aGlzLmNkVG90YWxTaXplPTA7dGhpcy5jZEJySW5kZXg9MDt0aGlzLmNkQnJPZmZzZXQ9MDt0aGlzLmNkQnJMZW5ndGg9MDt0aGlzLmNkQnJDb3BpZWQ9MDt0aGlzLmNkQ2h1bmtzPW5ldyBBcnJheSgwKTt0aGlzLmNkQ2h1bmtPZmZzZXRzPW5ldyBJbnQzMkFycmF5KDApO3RoaXMuY2RCbG9ja0JpdHM9MDt0aGlzLmNkQmxvY2tNYXA9bmV3IEludDhBcnJheSgwKTt0aGlzLmlucHV0PW5ldyBJbnB1dFN0cmVhbShuZXcgSW50OEFycmF5KDApKTt0aGlzLnJpbmdCdWZmZXI9bmV3IEludDhBcnJheSgwKTt0aGlzLnJpbmdzPW5ldyBJbnQzMkFycmF5KDEwKTt0aGlzLnJpbmdzWzBdPTE2O3RoaXMucmluZ3NbMV09MTU7dGhpcy5yaW5nc1syXT0xMTt0aGlzLnJpbmdzWzNdPTR9bGV0IHU9bmV3IEludDhBcnJheSgwKTtjb25zdCBtPW5ldyBJbnQzMkFycmF5KDMyKSxwPW5ldyBJbnQzMkFycmF5KDMyKTtjb25zdCBkPW5ldyBJbnQ4QXJyYXkoMTIyNzg0KSxnPW5ldyBJbnQzMkFycmF5KDI1KTshZnVuY3Rpb24gdW5wYWNrRGljdGlvbmFyeURhdGEoZSx0LG4sYSxyLHMpe2NvbnN0IGk9ZnVuY3Rpb24gdG9Vc0FzY2lpQnl0ZXMoZSl7Y29uc3QgdD1lLmxlbmd0aCxuPW5ldyBJbnQ4QXJyYXkodCk7Zm9yKGxldCBhPTA7YTx0OysrYSluW2FdPWUuY2hhckNvZGVBdChhKTtyZXR1cm4gbn0odCtuKSxvPXRvVXRmOFJ1bmVzKGEpO2xldCBsPTA7Y29uc3QgZj1vLmxlbmd0aD4+MTtmb3IobGV0IGU9MDtlPGY7KytlKXtjb25zdCB0PW9bMiplXS0zNixuPW9bMiplKzFdLTM2O2ZvcihsZXQgZT0wO2U8dDsrK2Upe2lbbF09M15pW2xdO2wrK31mb3IobGV0IGU9MDtlPG47KytlKXtpW2xdPTIzNl5pW2xdO2wrK319Zm9yKGxldCBlPTA7ZTxzLmxlbmd0aDsrK2UpcltlXT1zLmNoYXJDb2RlQXQoZSktNjU7ZS5zZXQoaSl9KGQsJ3dqbmZnbHRtb2plZm9mZXdhYmBoYGxnZmdid2Jwa2x0bG1venBqd2Zgand6bHNmbWl2cHdvamhmZXFmZnRscWh3Znt3emZicWx1ZnFhbGd6b2x1ZmVscW5hbGxoc29iem9qdWZvam1ma2Zvc2tsbmZwamdmbmxxZnRscWdvbG1kd2tmbnVqZnRlam1nc2JkZmdienBldm9va2ZiZ3dmcW5mYmBrYnFmYmVxbG53cXZmbmJxaGJhb2Z2c2xta2pka2did2ZvYm1nbWZ0cGZ1Zm1tZnt3YGJwZmFsd2tzbHB3dnBmZ25iZ2ZrYm1na2ZxZnRrYndtYm5mT2ptaGFvbGRwanlmYWJwZmtmb2duYmhmbmJqbXZwZnEkKiMoa2xvZ2ZtZ3B0andrTWZ0cHFmYmd0ZnFmcGpkbXdiaGZrYnVmZGJuZnBmZm1gYm9vc2J3a3Rmb29zb3ZwbmZtdmVqb25zYnF3aWxqbXdranBvanB3ZGxsZ21mZmd0YnpwdGZwd2lsYXBuam1nYm9wbG9sZGxxamBrdnBmcG9icHd3ZmJuYnFuemVsbGdoam1kdGpvb2ZicHd0YnFnYWZwd2VqcWZTYmRmaG1sdGJ0Ynotc21kbmx1ZndrYm1vbGJnZGp1ZnBmb2VtbHdmbnZga2VmZmduYm16cWxgaGpgbG1sbWBmb2xsaGtqZ2ZnamZnS2xuZnF2b2ZrbHB3Ymlie2ptZWxgb3Zhb2J0cG9mcHBrYm9lcGxuZnB2YGt5bG1mMjMzJmxtZnBgYnFmV2puZnFiYGZhb3ZmZWx2cXRmZmhlYmBma2xzZmRidWZrYnFnb2xwd3RrZm1zYnFoaGZzd3NicHBwa2pzcWxsbktXTk9zb2JtV3pzZmdsbWZwYnVmaGZmc2VvYmRvam1ocGxvZ2VqdWZ3bGxocWJ3ZndsdG1pdm5zd2t2cGdicWhgYnFnZWpvZmVmYnFwd2J6aGpvb3drYndlYm9vYnZ3bGZ1ZnEtYGxud2JvaHBrbHN1bHdmZ2Zmc25sZ2ZxZnB3d3ZxbWFscW1hYm1nZWZvb3FscGZ2cW8rcGhqbXFsb2ZgbG5mYmB3cGJkZnBuZmZ3ZGxvZy1pc2Rqd2ZudWJxemVmb3d3a2ZtcGZtZ2dxbHNVamZ0YGxzejItMyE/LGI9cHdsc2ZvcGZvamZwd2x2cXNiYGgtZGplc2Jwd2BwcDxkcWJ6bmZibSVkdzhxamdmcGtsd29id2ZwYmpncWxiZ3VicSNlZmZvaWxrbXFqYGhzbHF3ZWJwdyRWQi5nZmJnPyxhPXNsbHFham9vd3pzZlYtUC10bGxnbnZwdzFzezhKbWVscWJtaHRqZ2Z0Ym13dGJvb29mYmdYM144c2J2b3RidWZwdnFmXCcrJCB0Ymp3bmJwcGJxbnBkbGZwZGJqbW9ibWRzYmpnIi4uI29sYGh2bWp3cWxsd3Rib2hlanFudGplZntubyFwbG1kd2ZwdzEzc3toam1ncWx0cHdsbG9lbG13bmJqb3BiZWZwd2JxbmJzcGBscWZxYmptZW9sdGFiYXpwc2JtcGJ6cDdzezg1c3s4YnF3cGVsbHdxZmJvdGpoamtmYndwd2Zzd3Fqc2xxZCxvYmhmdGZiaHdsb2dFbHFuYGJwd2VibXBhYm1odWZxenF2bXBpdm96d2JwaDJzezhkbGJvZHFmdHBvbHRmZ2Rmamc+IXBmd3A2c3s4LWlwPDczc3tqZSMrcGxsbXBmYndtbG1md3ZhZnlmcWxwZm13cWZmZ2ViYHdqbXdsZGpld2ticW4yO3N7YGJuZmtqb29hbG9neWxsbnVsamdmYnB6cWptZGVqb29zZmJoam1qd2BscHcwc3s4aWJgaHdiZHBhandwcWxvb2ZnandobWZ0bWZicT8iLi5kcWx0SVBMTWd2d3pNYm5mcGJvZnpsdiNvbHdwc2JqbWlieXlgbG9nZnpmcGVqcGt0dHQtcWpwaHdiYXBzcWZ1MjNze3FqcGYxNnN7QW92ZmdqbWQwMzMvYWJvb2VscWdmYnFtdGpvZ2Fsey1lYmpxb2JgaHVmcXBzYmpxaXZtZndmYGtqZSsic2pgaGZ1am9cJyshIHRicW5vbHFnZ2xmcHN2b28vMzMzamdmYmdxYnRrdmRmcHNsd2V2bWdhdnFta3FmZWBmb29oZnpwd2pgaGtsdnFvbHBwZXZmbzIxc3twdmp3Z2Zib1FQUCFiZGZnZHFmekRGVyFmYnBmYmpucGRqcW9iamdwO3N7OG1idXpkcWpnd2pzcCA6Ojp0YnFwb2JnemBicXAqOCN+c2tzPGtmb293Ym9vdGtsbnlrOVx0KSwOXHQjMjMza2Jvby1cdFx0QjRzezhzdnBrYGtidzNzezhgcWZ0KSw/LGticGs0NnN7ZW9id3FicWYjJSUjd2Zvb2BibnNsbXdsb2JqZ25qcHBwaGpzd2Ztd2VqbWZuYm9mZGZ3cHNvbHc3MzMvDlx0Dlx0YGxsb2VmZnctc2tzP2FxPWZxamBubHB3ZHZqZ2Fmb29nZnBga2JqcW5id2tid2xuLGpuZCUgOzFvdmBoYGZtdzMzMzh3am16ZGxtZmt3bm9wZm9vZ3F2ZEVRRkZtbGdmbWpgaDxqZz5vbHBmbXZvb3VicHd0am1nUVBQI3RmYnFxZm96YWZmbXBibmZndmhmbWJwYmBic2Z0anBrZHZvZVcxMDlrandwcG9sd2Rid2ZoamBoYW92cXdrZnoyNnN7JCQqOCo4IT1ucGpmdGptcGFqcWdwbHF3YWZ3YnBmZmhXMjs5bHFncHdxZmZuYm9vNTNze2VicW4ObHVwYWx6cFgzXi0kKjghU0xQV2FmYnFoamdwKjh+fm5icXp3Zm1nK1ZIKnJ2Ymd5azlcbi5wankuLi4uc3FscyQqOA5vamV3VzI6OXVqYGZibWd6Z2Zhdz1RUFBzbGxvbWZgaGFvbHRXMjU5Z2xscWZ1Ym9XMjQ5b2Z3cGViam9scWJvc2xvb21sdWJgbG9wZGZtZiMObHhwbGV3cWxuZndqb29xbHBwP2swPXNsdnFlYmdmc2ptaD93cT1uam1qKn8iK25qbWZ5azkEYWJxcGtmYnEzMyo4bmpvaCMuLj1qcWxtZXFmZ2dqcGh0Zm13cGxqb3N2d3AsaXAsa2xvelcxMTlKUEFNVzEzOWJnYm5wZmZwP2sxPWlwbG0kLyMkYGxtd1cxMjkjUVBQb2xsc2JwamJubGxtPyxzPXBsdm9PSk1GZWxxd2BicXdXMjc5P2syPTszc3siLi4/OnN7OFczNzluamhmOTc1WW1qYGZqbWBrWmxxaHFqYGZ5azlcYiQqKjhzdnFmbmJkZnNicWJ3bG1mYWxtZzkwNFlcXGxlXFwkXio4MzMzL3lrOVx2d2JtaHpicWdhbHRvYXZwazk2NVlJYnViMDNze1x0f35cdCZAMCY5MDdZaWZlZUZbU0pgYnBrdWpwYmRsb2VwbWx0eWs5BXJ2ZnEtYHBwcGpgaG5mYnduam0tYWptZ2dmb29ranFmc2pgcHFmbXc5MDVZS1dXUy4xMzJlbHdsdGxvZUZNRyN7YWx7OTY3WUFMR1pnamBoOFx0flx0ZntqdzkwNll1YnFwYWZidyR+KjhnamZ3Ojo6OGJtbWZ+fj8sWGpeLU9ibWRobi5edGpxZndsenBiZ2dwcGZib2JvZns4XHRcbn5mYGtsbWptZi1scWQzMzYqd2xtemlmdHBwYm1nb2ZkcHFsbGUzMzMqIzEzM3RqbWZkZmJxZ2xkcGFsbHdkYnF6YHZ3cHd6b2Z3Zm5zd2psbS17bm9gbGBoZGJtZFwnKyQtNjNze1NrLUduanBgYm9ibW9sYm1nZnBobmpvZnF6Ym12bWp7Z2pwYCo4flx0Z3Zwd2BvanMqLVx0XHQ0M3N7LjEzM0dVR3A0Xj0/d2JzZmdmbmxqKCgqdGJkZmZ2cWxza2pvbHN3cGtsb2ZFQlJwYnBqbS4xNVdvYmFwc2Z3cFZRTyNhdm9oYGxsaDh+Dlx0S0ZCR1gzXipiYWFxaXZibSsyOjtvZnBrd3RqbT8saj1wbG16ZHZ6cGV2YGhzanNmfy5cdCIzMzEqbWdsdFgyXjhYXjhcdE9sZCNwYm93Dlx0XG5cbmFibWR3cWpuYWJ3ayp4Dlx0MzNze1x0fio4aGw5XDBlZmZwYmc9DnA5LCwjWF44d2xvb3NvdmQrKnhcdHgOXHQjLWlwJDEzM3NndmJvYWxidy1JU0QqOFx0fnJ2bHcqOFx0XHQkKjhcdA5cdH4OMTMyNzEzMjYxMzI1MTMyNDEzMjsxMzI6MTMxMzEzMTIxMzExMTMxMDEzMTcxMzE2MTMxNTEzMTQxMzE7MTMxOjEzMDMxMzAyMTMwMTEzMDAxMzA3MTMwNjEzMDUxMzA0MTMyMDEzMjExMzIyMTMyMzEzMzoxMzM7MTMzNDEzMzUxMzM2MTMzNzEzMzAxMzMxMTMzMjEzMzMyOjo6Mjo6OzI6OjQyOjo1Mjo6NjI6OjcyOjowMjo6MTI6OjIyOjozMjo7OjI6OzsyOjs0Mjo7NTI6OzYyOjs3Mjo7MDI6OzEyOjsyMjo7MzI6NDoyOjQ7Mjo0NDI6NDUyOjQ2Mjo0NzI6NDAyOjQxMjo0MjI6NDMyOjU6Mjo1OzI6NTQyOjU1Mjo1NjI6NTcyOjUwMjo1MTI6NTIyOjUzMjo2OjI6NjsyOjY0Mjo2NTI6NjYyOjY3Mjo2MDI6NjEyOjYyMjo2MzIzMzMyMzE3MjA6NzMzMzM6Ojo6YGxubG4vTXBmcHdmZnB3YnNmcWx3bGdsa2JgZmBiZ2JiL11sYWpmbWcvQWJicC9BdWpnYmBicGxsd3FsZWxxbHBsb2xsd3FiYHZib2dqaWxwamdsZHFibXdqc2x3Zm5iZ2ZhZmJvZGxydi9FZnB3bG1iZ2J3cWZwc2xgbGBicGJhYmlsd2xnYnBqbWxiZHZic3ZmcHZtbHBibXdmZ2pgZm92anBmb29ibmJ6bHlsbWJibmxxc2pwbGxhcWJgb2pgZm9vbGdqbHBrbHFiYGJwajxbPFxcPFE8XFw8UjxQPWw8XFw9bD1vPW48XFw8UTxZPFM8UjxSPW48VDxbPFE8UjxYPFI9bjxSPFo8WTxSPFE8VD1pPHE8XFw8WTxZPF09ZzxQPWc8fj1nPW08UjxePWc8XjxSPHE8UjxSPF08czxSPFc8VDxRPFQ8TDxIPHE8WTxwPWc9bj1nPHI8UTxUPFA8WDxcXDx7PFxcPHg8XFw8cT1vPHI8XT1uPFk8dDxbPFk8VTxRPW88UDxQPE49Zz1vPFo1bTVmNE81ajVpNEs1aTRVNW81aDRPNWQ0XTRDNWY0SzVtNWU1azVkNWg1aTVoNW80SzVkNWg1azRENF80SzVoNEk1ajVrNWY0TzVmNW40QzVrNWg0RzVpNEQ1azVoNWQ1aDVmNEQ1aDRLNWY0RDVvNFg1ZjRLNWk0TzVpNWo0RjRENWY1aDVqNEE0RDVrNWk1aTRYNWQ0WGVqcXB3dWpnZmxvamRrd3RscW9nbmZnamJ0a2p3ZmBvbHBmYW9iYGhxamRrd3BuYm9vYWxsaHBzb2JgZm52cGpgZWpmb2dscWdmcXNsam13dWJvdmZvZnVmb3diYW9mYWxicWdrbHZwZmRxbHZzdGxxaHB6ZmJxcHB3Yndmd2xnYnp0YndmcXB3YnF3cHd6b2ZnZmJ3a3NsdGZxc2tsbWZtamRrd2ZxcWxxam1zdndiYWx2d3dmcW5wd2p3b2Z3bGxvcGZ1Zm13b2xgYm93am5mcG9icWRmdGxxZ3BkYm5mcHBrbHF3cHNiYGZlbGB2cGBvZmJxbmxnZm9hb2xgaGR2amdmcWJnamxwa2JxZnRsbmZtYmRiam1ubG1mempuYmRmbWJuZnB6bHZtZG9qbWZwb2J3ZnFgbG9scWRxZmZtZXFsbXclYm5zOHRid2BrZWxxYGZzcWpgZnF2b2ZwYWZkam1iZXdmcXVqcGp3anBwdmZicWZicGFmb2x0am1nZnt3bHdib2tsdnFwb2JhZm9zcWptd3NxZnBwYXZqb3dvam1ocHBzZmZncHd2Z3p3cWJnZmVsdm1ncGZtcGZ2bWdmcXBrbHRtZWxxbnBxYm1kZmJnZ2ZncHdqb29ubHVmZ3diaGZtYmFsdWZlb2Jwa2Vqe2ZnbGV3Zm1sd2tmcXVqZnRwYGtmYGhvZmRib3FqdWZxandmbnBydmpgaHBrYnNma3ZuYm1me2pwd2Rsam1kbmx1amZ3a2pxZ2FicGpgc2ZiYGZwd2JkZnRqZ3drb2xkam1qZ2ZicHRxbHdmc2JkZnB2cGZxcGdxanVmcHdscWZhcWZiaHBsdndrdWxqYGZwandmcG5sbXdrdGtmcWZhdmpvZ3RramBrZmJxd2tlbHF2bndrcWZmcHNscXdzYnF3ekBvamBob2x0ZnFvanVmcGBvYnBwb2J6ZnFmbXdxenB3bHF6dnBiZGZwbHZtZ2BsdnF3emx2cSNhanF3a3Nsc3Zzd3pzZnBic3NvekpuYmRmYWZqbWR2c3NmcW1sd2ZwZnVmcXpwa2x0cG5mYm1wZnt3cWJuYndga3dxYmBoaG1sdG1mYnFvemFmZGJtcHZzZnFzYnNmcW1scXdrb2ZicW1kanVmbW1ibmZnZm1nZmdXZnFucHNicXdwRHFsdnNhcWJtZ3Zwam1kdGxuYm1lYm9wZnFmYmd6YnZnamx3YmhmcHRram9mLWBsbixvanVmZ2BicGZwZ2Jqb3pga2pvZ2RxZmJ3aXZnZGZ3a2xwZnZtandwbWZ1ZnFhcWxiZ2BsYnB3YGx1ZnFic3NvZmVqb2ZwYHpgb2ZwYGZtZnNvYm1wYG9qYGh0cWp3ZnJ2ZmZtc2pmYGZmbmJqb2VxYm5mbG9nZnFza2x3bG9qbmp3YGJga2ZganVqb3BgYm9mZm13ZnF3a2ZuZndrZnFmd2x2YGthbHZtZ3FsemJvYnBoZmd0a2xvZnBqbWBmcHdsYGgjbWJuZmViandra2ZicXdmbnN3emxlZWZxcGBsc2ZsdG1mZ25qZGt3Ym9hdm53a2ptaGFvbGxnYnFxYnpuYmlscXdxdnB3YGJtbG12bWpsbWBsdm13dWJvamdwd2xtZlB3em9mT2xkam1rYnNzemxgYHZxb2ZldzllcWZwa3J2andmZWpvbnBkcWJnZm1mZmdwdnFhYm1lamRrd2FicGpwa2x1ZnFidndsOHFsdndmLWt3bm9uantmZ2VqbWJvWmx2cSNwb2pnZndsc2pgYXFsdG1ib2xtZmdxYnRtcHNvandxZmJga1FqZGt3Z2J3ZnBuYnFga3J2bHdmZGxsZ3BPam1ocGdsdmF3YnB6bWB3a3ZuYWJvb2x0YGtqZmV6bHZ3a21sdWZvMjNzezhwZnF1ZnZtd2pva2JtZ3BAa2ZgaFBzYmBmcnZmcXppYm5mcGZydmJvd3RqYGYzLzMzM1B3YnF3c2JtZm9wbG1kcHFsdm1nZmpka3dwa2pld3RscXdrc2xwd3BvZmJncHRmZmhwYnVsamd3a2ZwZm5qb2Zwc29ibWZwbmJxd2Jvc2tic29ibXduYnFocHFid2Zwc29ienBgb2JqbnBib2Zwd2Z7d3Bwd2JxcHRxbG1kPyxrMD13a2ptZC1scWQsbnZvd2prZmJxZ1NsdGZxcHdibWd3bGhmbXBsb2pnK3dranBhcWptZHBranNwcHdiZWV3cWpmZ2Bib29wZXZvb3plYmB3cGJkZm13V2tqcCMsLC4uPWJnbmptZmR6c3dGdWZtdzI2c3s4Rm5iam93cXZmIWBxbHBwcHNmbXdhb2xkcGFseyE9bWx3ZmdvZmJ1ZmBram1icGp5ZnBkdmZwdz8sazc9cWxhbHdrZmJ1endxdmYvcGZ1Zm1kcWJtZ2Bxam5mcGpkbXBidGJxZmdibWBmc2ticGY9PyIuLmZtXFxWUCUgMDo4MTMzc3tcXG1ibmZvYndqbWZtaWx6Ymliey1id2psbXBuandrVi1QLSNrbG9ncHNmd2Zxam1namJtYnUhPWBrYmptcGBscWZgbG5mcGdsam1kc3FqbHFQa2JxZjI6OjNwcWxuYm1vanB3cGlic2JtZWJvb3B3cWpib2x0bWZxYmRxZmY/LGsxPWJhdnBmYm9mcXdsc2ZxYiEuLCxUYGJxZ3Bram9vcHdmYm5wU2tsd2x3cXZ3a2BvZmJtLXNrczxwYmptd25md2Jvb2x2anBuZmJtd3NxbGxlYXFqZmVxbHQhPWRmbXFmd3F2YGhvbGxocFVib3ZmRXFibmYtbWZ3LC4uPVx0P3dxeiN4XHR1YnEjbmJoZnBgbHB3cHNvYmptYmd2b3dydmZwd3dxYmptb2JhbHFrZm9zcGBidnBmbmJkamBubHdscXdrZmpxMTYzc3tvZmJwd3B3ZnNwQGx2bXdgbHZvZ2RvYnBwcGpnZnBldm1ncGtsd2ZvYnRicWdubHZ3a25sdWZwc2JxanBkanVmcGd2d2Brd2Z7YnBlcXZqd212b28vf39YXjh3bHMhPVx0PyIuLlNMUFchbGBmYm0/YXEsPWVvbGxxcHNmYmhnZnN3ayNwanlmYWJtaHBgYndga2BrYnF3MTNzezhib2pkbWdmYm9wdGx2b2c2M3N7OHZxbz4hc2JxaHBubHZwZk5scHcjLS0tPyxibmxtZGFxYmptYWxneiNtbG1mOGFicGZnYGJxcXpncWJld3FmZWZxc2JkZlxca2xuZi1uZndmcWdmb2J6Z3FmYm5zcWx1Zmlsam13Pyx3cT1ncXZkcD8iLi4jYnNxam9qZ2Zib2Jvb2ZtZntiYHdlbHF3a2BsZ2Zwb2xkamBVamZ0I3BmZm5wYW9ibWhzbHF3cCMrMTMzcGJ1ZmdcXG9qbWhkbGJvcGRxYm13ZHFmZmhrbG5mcHFqbWRwcWJ3ZmcwM3N7OHRrbHBmc2JxcGYrKjghI0FvbGBob2ptdntpbG1mcHNqe2ZvJCo4IT0qOGplKy5vZmV3Z2J1amdrbHFwZkVsYHZwcWJqcGZhbHtmcFdxYmBoZm5mbXc/LGZuPWFicSE9LXBxYD53bHRmcWJvdz4hYGJhb2ZrZm1xejE3c3s4cGZ3dnNqd2JvenBrYnFzbmptbHF3YnB3ZnRibXdwd2tqcC1xZnBmd3RrZmZvZGpxb3AsYHBwLDIzMyY4YG92YXBwd3ZlZWFqYW9mdWx3ZnAjMjMzM2hscWZifio4Dlx0YWJtZ3BydmZ2Zj4jeH44OzNzezhgaGptZHgOXHRcblxuYmtmYmdgb2xgaGpxanBrb2poZiNxYndqbHB3YndwRWxxbiF6YmtsbCpYM144QmFsdndlam1ncD8sazI9Z2ZhdmR3YnBocFZRTyM+YGZvb3B+KisqODIxc3s4c3FqbmZ3Zm9vcHd2cW1wM3s1MzMtaXNkIXBzYmptYWZiYGt3YntmcG5qYHFsYm1kZm8uLj0/LGRqZXdwcHdmdWYub2ptaGFsZ3otfio4XHRcbm5sdm13IysyOjpFQlI/LHFsZGZxZXFibWhAb2JwcDE7c3s4ZWZmZ3A/azI9P3BgbHd3d2Zwd3AxMXN7OGdxam1oKiN/fyNvZnRqcHBrYm9vIDMwOjgjZWxxI29sdWZndGJwd2YzM3N7OGliOQ9ucGpubG0/ZWxtd3Fmc296bmZmd3B2bXdmcWBrZmJzd2pka3dBcWJtZyojIj4jZ3FmcHBgb2pzcHFsbG5wbG1oZnpubGFqb25iam0tTWJuZiNzb2J3ZmV2bW16d3FmZnBgbG4sITItaXNkdG5sZ2ZzYnFiblBXQlFXb2ZldyNqZ2dmbS8jMTMyKjhcdH5cdGVscW4tdWpxdnBga2JqcXdxYm1wdGxxcHdTYmRmcGp3amxtc2J3YGs/Ii4uXHRsLmBiYGVqcW5wd2x2cXAvMzMzI2JwamJtaigoKnhiZ2xhZiQqWDNeamc+MjNhbHdrOG5mbXYjLTEtbmotc21kIWhmdWptYGxiYGtAa2pvZ2FxdmBmMS1pc2RWUU8qKC1pc2R/cHZqd2Zwb2pgZmticXF6MjEzISNwdGZmd3dxPQ5cdG1ibmY+Z2pmZGxzYmRmI3B0anBwLi49XHRcdCBlZWU4IT1PbGQtYGxuIXdxZmJ3cGtmZncqIyUlIzI3c3s4cG9mZnNtd2Ztd2Vqb2ZnaWI5D29qZz4hYE1ibmYhdGxxcGZwa2x3cC5hbHsuZ2Zvd2JcdCVvdzhhZmJxcDk3O1k/Z2J3Yi5xdnFibz8sYj0jcHNmbWdhYmhmcXBrbHNwPiMhIThza3MhPWB3amxtMjBzezhhcWpibWtmb29scGp5Zj5sPiYxRSNpbGptbmJ6YWY/am5kI2puZCE9LyNlaXBqbmQhIyEqWDNeTldsc0FXenNmIW1mdG96R2JtcGhgeWZga3dxYmpvaG1sdHA/LGs2PWViciE9eWsuYG0yMyo4XHQuMiEqOHd6c2Y+YW92ZnB3cXZvemdidWpwLWlwJDg9Dlx0PyJwd2ZmbyN6bHYjazE9Dlx0ZWxxbiNpZnB2cDIzMyYjbmZtdi0OXHRcbg5cdHRib2ZwcWpwaHB2bmZtd2dnam1kYS5vamh3ZmJga2RqZSEjdWZkYnBnYm1waGZmcHdqcGtyanNwdmxuanBsYXFmZ2ZwZ2ZmbXdxZndsZ2xwc3ZmZ2ZiL11scGZwdy9Nd2pmbWZrYnB3Ymx3cWxwc2Jxd2ZnbG1nZm12ZnVsa2JgZnFlbHFuYm5qcG5sbmZpbHFudm1nbGJydi9BZy9BYnBwL19vbGJ6dmdiZWZga2J3bGdicHdibXdsbmZtbHBnYndscGx3cWJwcGp3amxudmBrbGJrbHFib3ZkYnFuYnpscWZwd2xwa2xxYnB3Zm1mcWJtd2ZwZWx3bHBmcHdicHNiL0FwbXZmdWJwYm92Z2VscWxwbmZnamxydmpmbW5mcGZwc2xnZnFga2pvZnBmcS9NdWZgZnBnZmBqcWlscC9FZnB3YnF1Zm13YmRxdnNsa2Zga2xmb29scHdmbWRsYm5qZGxgbHBicG1qdWZvZGZtd2ZuanBuYmJqcWZwaXZvamx3Zm5icGtiYGpiZWJ1bHFpdm1qbG9qYXFmc3Ztd2xhdmZtbGJ2d2xxYmFxam9hdmZtYndme3dsbmJxeWxwYmFmcW9qcHdib3ZmZGxgL19ubGZtZnFsaXZmZGxzZnEvVmtiYWZxZnB3bHptdm1gYm52aWZxdWJvbHFldmZxYm9qYXFsZHZwd2JqZHZib3Vsd2xwYGJwbHBkdi9BYnN2ZmdscGxubHBidWpwbHZwd2ZnZ2ZhZm1tbGBrZmF2cGBiZWJvd2JmdnFscHBmcWpmZ2pga2xgdnFwbGBvYnVmYGJwYnBvZi9fbXNvYnlsb2JxZGxsYXFicHVqcHdiYnNsemxpdm13bHdxYndidWpwd2xgcWZicWBibnNsa2ZubHBgam1gbGBicWRsc2pwbHBscWdmbWtiYGZtL01xZmJnanBgbHNmZ3FsYGZxYGJzdmZnYnNic2ZvbmZtbHEvVndqb2BvYnFsaWxxZGZgYm9vZnNsbWZxd2JxZ2ZtYmdqZm5icWBicGpkdmZmb29icHBqZG9sYGxga2ZubHdscG5iZ3FmYG9icGZxZnB3bG1qL11scnZmZ2JzYnBicWFibWBsa2ppbHB1amJpZnNiYW9sL0Vwd2Z1amZtZnFmam1sZ2ZpYnFlbG1nbGBibWJvbWxxd2ZvZndxYmBidnBid2xuYnFuYm1scG92bWZwYnZ3bHB1am9vYnVmbWdsc2ZwYnF3anNscHdmbWRibmJxYGxvb2Z1YnNiZ3Fmdm1qZ2x1Ym5scHlsbWJwYm5hbHBhYm1nYm5icWpiYmF2cGxudmBrYnB2YWpxcWpsaWJ1anVqcWRxYmdsYGtqYGJib28vQWlsdWZtZ2pga2JmcHdibXdib2ZwcGJvanFwdmZvbHNmcGxwZWptZnBvb2JuYmF2cGBsL0Vwd2Jvb2ZkYm1mZHFsc29ieWJrdm5scXNiZGJxaXZtd2JnbGFvZmpwb2JwYWxvcGJhYi9dbGtiYW9ib3Zga2IvbXFmYmdqYGZtaXZkYnFtbHdicHVib29mYm9vL01gYnFkYmdsb2xxYmFiaWxmcHcvRWR2cHdsbmZtd2ZuYnFqbGVqcW5iYGxwd2xlamBrYnNvYndia2xkYnFicXdmcG9memZwYnJ2Zm9udnBmbGFicGZwc2xgbHBuandiZ2BqZm9sYGtqYGxuamZnbGRibWJxcGJtd2xmd2JzYmdmYWZwc29iemJxZmdmcHBqZndmYGxxd2ZgbHFmYmd2Z2JwZ2ZwZmx1amZpbGdmcGZiYmR2YnAlcnZsdzhnbG5iam1gbG5ubG1wd2J3dnBmdWZtd3BuYnB3ZnFwenB3Zm5iYHdqbG1hYm1tZnFxZm5sdWZwYHFsb292c2did2Zkb2xhYm9uZmdqdm5lam93ZnFtdm5hZnFga2JtZGZxZnB2b3dzdmFvamBwYHFmZm1ga2xscGZtbHFuYm93cWJ1Zm9qcHB2ZnBwbHZxYGZ3YnFkZndwc3FqbWRubGd2b2ZubGFqb2ZwdGp3YGtza2x3bHBhbHFnZnFxZmRqbG1qd3Bmb2VwbGBqYm9iYHdqdWZgbG92bm1xZmBscWdlbG9vbHR3andvZj1mandrZnFvZm1kd2tlYm5qb3plcWpmbWdvYnpsdndidndrbHFgcWZid2ZxZnVqZnRwdm5uZnFwZnF1ZnFzb2J6Zmdzb2J6ZnFme3NibWdzbG9qYHplbHFuYndnbHZhb2ZzbGptd3BwZnFqZnBzZnFwbG1vanVqbWRnZnBqZG1ubG13a3BlbHFgZnB2bWpydmZ0Zmpka3dzZmxzb2ZmbWZxZHptYnd2cWZwZmJxYGtlamR2cWZrYnVqbWRgdnB3bG5sZWVwZndvZnd3ZnF0am1nbHRwdmFuandxZm1nZnFkcWx2c3B2c29sYmdrZmJvd2tuZndrbGd1amdmbHBwYGtsbG9ldnd2cWZwa2JnbHRnZmFid2Z1Ym92ZnBMYWlmYHdsd2tmcXBxamRrd3BvZmJkdmZga3FsbmZwam5zb2ZtbHdqYGZwa2JxZmdmbWdqbWRwZmJwbG1xZnNscXdsbW9qbWZwcnZicWZhdnd3bG1qbmJkZnBmbWJhb2ZubHVqbWRvYndmcHd0am13ZnFFcWJtYGZzZnFqbGdwd3FsbWRxZnNmYndPbG1nbG1nZndiam9lbHFuZmdnZm5ibWdwZmB2cWZzYnBwZmd3bGRkb2Zzb2JgZnBnZnVqYGZwd2J3amBgandqZnBwd3FmYm56Zm9vbHRid3diYGhwd3FmZndlb2pka3dramdnZm1qbWVsIT1sc2ZtZmd2cGZldm91Ym9vZnpgYnZwZnBvZmJnZnFwZmBxZndwZmBsbWdnYm5iZGZwc2xxd3Bme2Bmc3dxYndqbWRwamRtZmd3a2ptZHBmZWVmYHdlamZvZ3Bwd2J3ZnBsZWVqYGZ1anB2Ym9mZ2p3bHF1bG92bmZRZnNscXdudnBmdm5ubHVqZnBzYnFmbXdiYGBmcHBubHB3b3pubHdrZnEhI2pnPiFuYnFoZndkcWx2bWdga2JtYGZwdnF1ZnphZmVscWZwem5hbG9ubG5mbXdwc2ZmYGtubHdqbG1qbXBqZ2ZuYnd3ZnFAZm13ZnFsYWlmYHdme2pwd3Buamdnb2ZGdnFsc2ZkcWx0d2tvZmRiYHpuYm1tZnFmbWx2ZGtgYnFmZnFibXB0ZnFscWpkam1zbHF3Ym9gb2pmbXdwZm9mYHdxYm1nbG5gb2xwZmd3bHNqYHBgbG5qbWRlYndrZnFsc3dqbG1wam5zb3pxYmpwZmdmcGBic2Zga2xwZm1ga3ZxYGtnZmVqbWZxZmJwbG1gbHFtZnFsdndzdnduZm5scXpqZXFibmZzbG9qYGZubGdmb3BNdm5hZnFndnFqbWRsZWVmcXBwd3pvZnBoam9vZmdvanB3ZmdgYm9vZmdwam91ZnFuYnFkam1nZm9md2ZhZnd3ZnFhcWx0cGZvam5qd3BEb2xhYm9wam1kb2Z0amdkZndgZm13ZnFhdmdkZndtbHRxYnNgcWZnandgb2JqbnBmbWRqbWZwYmVmd3pga2xqYGZwc2pxancucHd6b2Zwc3FmYmduYmhqbWRtZmZnZmdxdnBwamJzb2ZicGZme3dmbXdQYHFqc3dhcWxoZm1ib29sdHBga2JxZGZnanVqZ2ZlYmB3bHFuZm5hZnEuYWJwZmd3a2ZscXpgbG1lamRicWx2bWd0bHFoZmdrZm9zZmdAa3ZxYGtqbnNiYHdwa2x2b2dib3RienBvbGRsISNhbHd3bG5vanB3IT0qeHVicSNzcWZlantscWJtZGZLZmJnZnEtc3ZwaytgbHZzb2ZkYnFnZm1hcWpnZGZvYnZtYGtRZnVqZnR3YmhqbWR1anBqbG1vand3b2ZnYndqbWRBdnd3bG1hZmJ2d3p3a2ZuZnBlbHFkbHdQZmJxYGtibWBrbHFib25scHdvbGJnZmdAa2JtZGZxZnd2cW1wd3FqbWRxZm9sYmdObGFqb2ZqbWBsbmZwdnNzb3pQbHZxYGZscWdmcXB1amZ0ZmclbWFwczhgbHZxcGZCYWx2dyNqcG9ibWc/a3dubyNgbGxoamZtYm5mPiFibmJ5bG1ubGdmcW1iZ3VqYGZqbT8sYj05I1drZiNnamJvbGRrbHZwZnBBRkRKTSNOZntqYGxwd2Jxd3BgZm13cWZrZmpka3diZ2dqbWRKcG9ibWdicHBmd3BGbnNqcWZQYGtsbG9mZWVscXdnanFmYHdtZmJxb3puYm12Ym9QZm9mYHctXHRcdExtZmlsam1mZ25mbXYhPVNram9qc2J0YnFncGtibWdvZmpuc2xxd0xlZWpgZnFmZGJxZ3Boam9vcG1id2psbVBzbHF3cGdmZHFmZnRmZmhveiMrZi1kLWFma2ptZ2dsYHdscW9sZGRmZ3ZtandmZz8sYT0/LGFmZGptcHNvYm13cGJwcGpwd2Jxd2pwd2pwcHZmZzAzM3N7f2BibWJnYmJkZm1genBga2ZuZnFmbmJqbUFxYnlqb3BibnNvZm9sZGwhPWFmemxtZy5wYGJvZmJgYGZzd3BmcXVmZ25icWptZkVsbHdmcWBibmZxYj8sazI9XHRcXGVscW4hb2ZidWZwcHdxZnBwISMsPQ5cdC1kamUhI2xtb2xiZ29sYmdmcUx7ZWxxZ3BqcHdmcXB2cXVqdW9qcHdmbWVmbmJvZkdmcGpkbXBqeWY+IWJzc2Zib3dme3chPW9mdWZvcHdrYm1ocGtqZGtmcWVscWBmZ2Jtam5ib2JtemxtZkJlcWpgYmJkcWZmZ3FmYGZtd1NmbHNvZj9hcSMsPXRsbWdmcXNxamBmcHd2cW1mZ39/I3h+OG5iam0hPWptb2ptZnB2bWdienRxYnMhPWViam9mZ2BmbXB2cG5qbXZ3ZmFmYmBsbXJ2bHdmcDI2M3N7f2Zwd2J3ZnFmbmx3ZmZuYmpvIW9qbWhmZ3FqZGt3OHBqZG1ib2VscW5ibzIta3dub3BqZG12c3Nxam1gZmVvbGJ3OS1zbWQhI2VscXZuLUJgYGZwcHNic2ZxcHBsdm1ncGZ7d2ZtZ0tmamRrd3BvamdmcVZXRS47ISVibnM4I0FmZWxxZi0jVGp3a3B3dmdqbGx0bWZxcG5ibWJkZnNxbGVqd2lSdmZxemJtbXZib3NicWJucGFsdmRrd2Vibmx2cGRsbGRvZm9sbWRmcWooKCojeGpwcWJmb3BiemptZGdmYGpnZmtsbmYhPWtmYmdmcWZtcHZxZmFxYm1ga3NqZmBmcGFvbGBoOHB3YndmZ3dscyE9P3FiYGptZHFmcGp5Zi4uJWR3OHNiYGp3enBme3Zib2F2cWZidi1pc2QhIzIzLzMzM2xhd2JqbXdqd29mcGJubHZtdy8jSm1gLWBsbmZnem5mbXYhI296cWpgcHdsZ2J6LWptZ2ZmZ2Bsdm13elxcb2xkbC1FYm5qb3pvbGxoZmdOYnFoZndvcGYjamVTb2J6ZnF3dnFoZnoqOHVicSNlbHFmcHdkanVqbWRmcXFscXBHbG5iam1+Zm9wZnhqbXBmcXdBb2xkPyxlbGx3ZnFvbGRqbS1lYnB3ZnFiZGZtd3A/YWxneiMyM3N7IzNzcWJkbmJlcWpnYnppdm1qbHFnbG9vYnFzb2JgZmdgbHVmcXBzb3Zkam02LzMzMyNzYmRmIT1hbHB3bG0td2ZwdytidWJ3YnF3ZnB3ZmdcXGBsdm13ZWxxdm5wcGBrZm5iam1nZnsvZWpvb2ZncGticWZwcWZiZ2ZxYm9mcXcrYnNzZmJxUHZhbmp3b2ptZiE9YWxneiE9XHQpI1drZldrbHZka3BmZmptZGlmcXBmek1mdHA/LHVmcWplemZ7c2Zxd2ptaXZxenRqZ3drPkBsbGhqZlBXQlFXI2JgcWxwcFxcam5iZGZ3a3FmYmdtYndqdWZzbGBoZndhbHshPVx0UHpwd2ZuI0didWpnYGJtYGZxd2Jhb2Zwc3FsdWZnQnNxam8jcWZib296Z3FqdWZxandmbiE9bmxxZiE9YWxicWdwYGxvbHFwYGJuc3ZwZWpxcHcjf38jWF44bmZnamItZHZqd2JxZWptanBrdGpnd2s5cGtsdGZnTHdrZnEjLXNrcyEjYnBwdm5mb2J6ZnFwdGpvcGxtcHdscWZwcWZvamZlcHRmZ2ZtQHZwd2xuZmJwam96I3psdnEjUHdxam1kXHRcdFRram93YnpvbHFgb2ZicTlxZnBscXdlcWZtYGt3a2x2ZGshKiMoIyE/YWxnej1hdnpqbWRhcWJtZ3BOZm5hZnFtYm5mIT1sc3NqbWRwZmB3bHE2c3s4IT11cHNiYGZzbHB3ZnFuYmlscSNgbGVlZmZuYnF3am1uYnd2cWZrYnNzZm0/LG1idT1oYm1wYnBvam1oIT1KbmJkZnA+ZWJvcGZ0a2pvZiNrcHNiYGYzJWJuczgjXHRcdEptIyNzbHRmcVNsb3Boai5gbG9scWlscWdibUFsd3dsblB3YnF3Iy5gbHZtdzEta3dub21mdHAhPTMyLWlzZExtb2ptZi5xamRrd25qb29mcXBmbWpscUpQQU0jMzMvMzMzI2R2amdmcHVib3ZmKmZgd2psbXFmc2JqcS17bm8hIyNxamRrd3Ata3duby5hb2xgaHFmZEZ7czlrbHVmcXRqd2tqbXVqcWRqbXNrbG1mcD8sd3E9DnZwam1kI1x0XG51YnEjPSQqOFx0XG4/LHdnPVx0Pyx3cT1cdGFia2JwYmFxYnBqb2Rib2ZkbG5iZHpicXNsb3BoanBxc3BoajRdNEM1ZFxiVEFcbnprXHZCbFxiUX9cdlVtBUd4XGJTTVxubUNcYlRBXHR3UVxuZH1cYldAXGJUbFxiVEZcdGlAXHRjVFx2Qk1cdnxqBEJWXHRxd1x0Y0NcYldJXG5wYVx0Zk1cbntaBXtYXGJURlxiVlZcYlZLXHR/bQRrRlx0W11cYlBtXGJUdlxuc0lcdnBnXHRbSVxiUXAEbXhcdl9XXG5eTVxucGVcdlF9XHZHdVxuZWxcbnBlBENoBEJWXGJUQVx0U29cbnprXHZHTFx2eERcbmRbBUp6BU1ZXGJRcARsaVxuZmxcbnBDBXtCBU50XHZ3VFx0aV9cYlRnBFFRXG58cFx2WE5cYlFTXHZ4RARRQ1xiV1pcdHBEXHZWU1xiVFcFTnQEWWhcbnp1BEtqBU59XHR3clx0SGFcbl9EXHRqYFx2UX1cdldwXG54WgR7Y1x0amlcdEJVXG5iRARhfFx0VG5cdHBWXG5aZFxubUNcdkVWBXtYXHRjfVx0VG9cYldsXGJVZFx0SVFcdGNnXHZ4c1xuWFdcdHdSXHZla1x0Y31cdF15XHRKblxucnBcbmVnXG5wVlxuelxcBXtXXG5wbFxuelxcXG56VVx0UGNcdGB7XGJWQFxuY3xcYlJ3XHRpX1xiVmJcbndYXHRIdgRTdVxiVEZcdl9XXHZXc1x2c0kFbX9cblRUXG5kY1x0VVNcdH1mXHRpWlxiV3pcdGN9BE1EXHRCZVx0aURcdkBAXGJUbFxiUHZcdH10BFN3BE1gXHZuVVx0a1dcdmVkXG5xb1x2eFlcdEF8XGJUelx2eWAEQlIEQk1cdGlhBFhVXG55dQRuXlx0ZkxcdGlJXG5YV1x0ZkRcYld6XGJXQFx0eWpcdH9tXHRhdlx0Qk5cdmJcXFx0cERcYlRmXG5ZW1x0Sm5cYlF5XHRbXlx2V2Ncdnl1BERsBENKXHZXalx2SFJcdGBWXHZ1V1x0UXlcbnBAXHZHdQVwbARKbVxiV1tcbkxQXG54Q1xuYG1cdHdRBXVpBX9SXG5iSVx0d1FcdEJaXHRXVgRCUlxucGdcdGNnBXRpBENXXG5feVx0UmdcYlFhXHZRQlx2V2NcblliBWxlXG5nRQRTdVxuTFtcdFF/XHRlYVx0ZGpcdl1XXG5ifgRNYFx0d0xcYlRWXGJWSFxudH9cbnBsXHR8YgVzX1xiVXxcYlRhBG9RBWx2BFNrBE1gXGJUdlx2S31cbmZsXHRjQwRvUQRCUlx0SGtcdHxkXGJRcFx0SEtcdEJaXHZIUlxiUHZcdkx4XHZFWlxiVH9cYlR2XHRpRAVvRAVNVVx2d0IEU3UFa2AEU3RcbnRDXHRQbFx0S2dcbm9pXHRqWVx2eFkEaH1cbnprXGJXWlx0f21cdmVgXHRUQlx0ZkVcbnprXHRgegRZaFxuVnxcdEhLXHRBSlx0QUpcYlVMXHRwXFxcdHFsXG5ZYwRLZFxuZnkEWWhcdFtJXHZEZwRKbVxuXW5cbmxiXGJVZFxue1pcdGx1XHRmcwRvUVxiVFcESm1cdndCXHRlYQRZaARCQ1x0c2JcdFRuXG56VVxuX3lcdnhZXHRRXVxuZ3cEbXRcdE9cXFxudGJcYldXXGJReVx0bUlcdFZbXG55XFxcbmFCXHZSYlx0d1Fcbl1RBFFKXGJXZ1x2V2FcYlFqXG50Q1xiVkhcblltXHZ4c1xiVktcbmVsXGJXSVx2eFkEQ3FcbnRSXHZIVlxiVGxcYlZ3XHRheVxiUWFcYlZWXHR9dFx0ZGpcbnJ8XHRwXFxcdHdSXG57aVxuVFRcdFtJXHRpW1x0QUpcdnhzXHZfV1x0ZHtcdlF9XHRjZ1x0VHpcdEF8XHRDalx2TG0FTn0FbX9cbmJLXHRkWlx0cFxcXHRgVlx0c1ZcbnBAXHRpRFx0d1FcdlF9XGJUZgVrYQRKbVx2QEBcYlZgXHR6cFxuQE4EU3dcdGlJXHRjZ1xub2kEU3VcYlZ3BGxvBEN5XHRjfVx2YlxcXHRzVQRCQVxiV0lcYlRmXG54U1x0VnBcbmR8XGJUVlx2YkNcdE5vBUp1XG5UQ1x0fGBcbntaXHREXVxiVXxcdGN9BWxtXGJUbFx0QnZcdFBsXHRjfVxiUXBcdH9tXG5Ma1x0a2pcbkBOBFNiBEtPXHRqX1x0cFxcXG56VVxiVGxcYlRnXGJXSVx0Y2YEWE9cYldXXG5kegRsaVx0Qk5cbmRbXGJXTwRNRFx2S0NcdGRqXHRJX1xiVlZcbnlcXFx2TG0FeGxcdHhCXHRrVlx2YlxcXHZKV1x2VlNcdFZ4XHZ4RFx0ZHsETURcYlRhXHR8YFx2UHoEUn1cdldzBEJNXG5zSQRDTlxiVGEESm1cbnBlXHRpX1xucFZcbnJoXHRSZFx0SHZcbn5BXG54Ulx2V2hcdldrXG54U1x2QXpcdndYXG5iSQRvUVx0ZndcbnFJXG5WfFxudW4Fen9cdnBnXHRkXFxcdm9BBXtEXHRpXwV4QlxiVH9cdGBWBXFyXHRUVARnXQRDQVx2dVJcdFZKXHRUYFxucHdcdlJiXHRJX1xuQ3gEUm9cdnNJBENqBEtoXHRCdlx0V1YEQkIFb0QFe0RcbmhjBEttXHZeUlx0UUVcbntJXG5wQFxuY3wFR3RcdGN9BERsXG56VQVxTlx0c1YFa31cdEhoXHZ8alxucW8FdXxcdFFdXHZlawV/WgRNYARTdFxucGVcdGRqXGJWR1x2ZUVcdH9tXHZXYwR8SVxuW1dcdGZMXGJUf1x0QloEU3VcdkthBENxBU50BFlbXG5xSVxiVHZcdGZNXHRpQFx0fWYEQlxcXHRReVx2QmxcYldnBFhEBWtjXHZ4W1xiVlZcdFFdXHR/YVx0UHlcdnhEXG5mSVx0fWYFb0RcdGRqXHRTRwVsc1x0fkQEQ05cbntaXHRcXHZcbl9EXG5oY1x2eF8EQ1tcdEFKXG5MTVx0VngEQ0lcdGJqXHRjXlx0Y0ZcbnRDBFN4XHR3cgRYQVxiVVxcXHR8YVx2S1xcXGJUVlxiVmpcbmR8XHRmcwRDWFxudGJcYlJ3XHRWeFx0QUVcdEF8XGJUfwVOdFx2RGdcdFZjXGJUbARkQFxucG9cdH9NXHRjRlxucGVcdGlaXHRCb1xiU3FcbmZIBGxgXGJUeFxiV2ZcdEhFXHZGe1x0Y09cdGZEXG5sbVx2ZlpcbmxtXHZlVVx0ZEcEQkhcYlRWXHRTaQVNV1xud1hcbnpcXFx0XFxjBENYXG5kfVx0bH1cYlFwXGJUVlx0Rn5cYlF/XHRgaVxuZ0AFbk9cYlVkXGJUbFxuTFtcdHdRXHRqaVxudENcdHxKXG5MVVxuYUJcdnhZBEtqXHRBSgV1Tlx0aVtcbnBlBFNrXHZEZ1x2eF1cYlZiXGJWVlxuZWFcdGtWXG5xSVxiVGEEU2tcbkFPXHRwRFxudGJcbnRzXG55aVxiVmdcdGlfXHZfV1xuTGsFTnRcdHlqXHRmTQRSf1x0aUlcYlRsXHZ3WFx0c1Zcdk1sXG55dVx0QUpcYlZqBEtPXHRXVlx2QX1cdld/XG5ycFx0aURcdnxvBWx2XHZzSQRCTVx0ZH5cdENVXGJWYgRlVlxucENcdndUXHRqYFx0Y31cdnhzXHZwc1x2dmhcdFdWXHZHZ1x2QWVcdlZLXHZdV1x0cmdcdldjBUZgXHRCclx2YlxcXHRkWlxiUXBcbnFJBGtGXG5Ma1x2QVJcYldJXGJUZ1x0YnNcdGR3XG57TFxuX3lcdGlaXGJUQVx0bGdcYlZWXGJUbFx0ZGtcbmBrXHRhe1x0aV8Fe0EFd2pcdHdOXHZAQFxiVGVcdGlfXG5fRFx0d0xcbkFIXHZpS1x2ZWtcbltdXHRwX1x0eWpcYlR2XHRVU1x0W3JcbntJXG5wcwVHdFx2VktcbnBsBFN9XHZXUFx0fGQETURcdkhWXGJUfwRSfQRNYFxiVFZcYlZIBWx2BENoXGJXWwRLZVx0Untcdl5SXHRhYlx0QlpcdFZBXHRCYFxuZHxcbmhzBEtlXHRCZQRPaVx0UntcdGRcXAVuQlxiV1pcdGRaXHRWSgVPc1x0f20EdVFcdmhaBFFABFFRXG5mSVxiV1sEQlxcBGxpXG56VVxuTWQETWBcbnhTXGJWVlxuXFx9XHZ4RFx0f21cYlRwBElTXG5jfFx0a1YFaX5cdFZ7XHZoWlx0fGJcYld0XG5AUlx2b0Fcdm5VXGJXSVx0ZWFcdEJgXHRpRFx0Y31cdFR6BEJSXHZRQgVOalx0Q1BcdFtJXGJUdlx0YFcFdU5cdnBnXHZwZ1x2V2NcdGlUXHRic1x0d0xcdFVfXHRjXFxcdHxoXHZLYVx0TnJcdGZMXG5xfFxuenVcbnpcXFx0TnJcYlVnXHR8YgRtYFxiVHZcbnlkXG5ycFxiV2ZcdFVYBEJWXG56a1xuZH1cdHdRXHR9ZgRDZVx2ZWRcYlRXXGJTQlxueFVcdGNuXGJUYlxuZX9cdGFcXFx0U0dcYlV8XG5wVlxuTlxcBEtuXHZuVVx0QXRcdHBEXHZeUlx2SXIEYltcdFJ7XHRkRVx2eERcdldLXHZXQVxiUUxcYldABFN1XGJVZFxuRE1cdFBjBENBBERsBG9RXHRIcwV3aQR1Ylxuf2FcYlFwBU9iXG5MUFxiVGwEWVtcdkt9XHRBSlxiUX8Ebl5cdnNBXGJTTVxucU1cYldaXG5eV1x2ensEU3xcdGZEXGJWS1xiVHZcYlB2BEJCXHRDUARkRlx0aWRcdnhzBG14XHZ3c1x0Y0NcbnRDXHR5YwVNYFx2V39cbnJoXGJRcFx2eEQEXFxvXG5zSQRfa1xuenUEa0ZcdGZEBFhzBFhPXHRqcFxiVHYEQlMFe0JcdEJyXG56UVxuYklcdGN7BEJEBEJWBW5PXGJURlx0Y2EFSmRcdGZMXHRQVlx0SV9cbmxLBGBvXHR3WFxucGFcdGd1XGJQfQV7XlxiV2ZcbntJXHRCTlxucGEES2xcdnBnXHRjblx0ZkxcdnZoBENxXGJUbFx2blVcYlNxBENtXHR3UlxiVUpcbnBlXG55ZFxuWWcEQ3lcdktXXHRmRFxuZWEEb1FcdGpfXHRCdgRuTVx2SURcYlRhXG56QQVwbFxuXW5cYlRhXHRSe1x0ZnJcbl95XGJVZwV7WAVra1x2eEQEfEkFeGxcbmZ5BENlXHZ3QlxuTGtcdmRdXG5vaVxufWhcdFFdXG5wZVxiVncESGsET1FcbnprXHRBSlxucFZcYlB2XG55XFxcdEF7BE9pXGJTQgRYQVx2ZUVcdGpwXG5xfVx0aUQFcU5cdl5SXHR/bVx0aVpcdEJyXGJWZ1xub2lcblxcWFx0VV9cbmN8XHZIVlxiVGZcdFRuBFxcTgRcXE5cbnVCBWx2XG55dVx0VGRcYlRmXGJQTFx2XVdcdGRHXG5BYFxud15cbmdJXG5wZVx0ZHdcbnpcXAVpYVxiV1pcdGNGBEptXG57WlxiV08EX2sERGYEUlJcdGRcXFxiVlZcdnhzBEJOBXRpBGxtXHRUZFx0XXlcdkhWXHRTb1x2fGoEWFhcdEF8XHZaXlx2R3VcYlRXBU1gBGtGXHZoWlx2VktcdGRHXHZCbFx0YXlcbnhVBXFFBW5PXGJWd1xucUkEQ1hcbmV/XHRQbFxiV09cdkxtXHRkTAV1SARDbVx0ZFQEZm5cdndCBWthXHZuVVxuQE1cbnlUXHRIdlx0XFx9BEtoXHRkfgRZaAVrfVxuZVJcdGRcXFxiV0lcdHxiXHRIS1x0aURcYlRXBU1ZXG5wbFxiUV9cdHdyXHZBeFx0SEVcYlRnXGJTcQV2cFx2YlxcXGJXT1xuT2xcbnNJXG5meVx2SURcdFxcY1xue1pcbl5+XG5wZVxuQU9cdFRUXHZ4dgRrX1xiV09cdnxqXHZ3Qlx0UXlcdGlAXHRQbFx0SGFcdGRaBWt9BHJhXHRVVFx2SmNcdmVkXG5wQFx0UU5cbmR8XHRralx0SGsETWBcbm9pXHR3clx0ZFxcXG5scVxub19cbmxiXG5MW1x0YWMEQkIEQkgEQ21cbnBsXHRJUVxiVktcdnhzXG5gZVx2aUtcbnBhBE9pXHRVU1xiVHBcdGZEXG5QRwVrawRYQVxuelxcXG5lZ1x2V2hcdHdSBXFOXG5xU1x0Y24EbG9cbnhTXG5eV1x0QlVcbnR/XHRIRVx0cFxcXHRmRlx0ZndcYlZWXGJXQFx0YWtcdlZLBWxzXHRWSlxiVlZcdmVFBFxcb1xueVhcblltBE1gBWxMXG5kfFxuemtcdEF7BXNFXHR3UQRYVFxudH9cdFBsXHRdeVx2d1QFe3AETURcdmJcXFx0UV0ES2pcdEpuXG5BSFx2UmJcdEJVXHRIS1x0XFxjXG5mSQVtf1xucU1cbkBSXHRTb1xub2kEQlRcdEh2XG5feQRLaFx0QlpcdF1pXGJVSlx0VnsEU3JcbmJJXHZHZ1x0YV9cYlRSXG5mSVxuZmxcdFtLXHRJSQRTfFx2dVdcdGlJXGJXSVxucUlcdnxqBEJWXGJWZ1xiV1oEa0ZcdnhdXGJUQVx0YWJcdGZyXHRpQFx0SmRcdEpkXHZwc1xuQU9cYlRhBXh1XHRpRFxuemtcdHxkXHR8YFxiV1tcdGxQXHRkR1xiVlZcdnd9XHZxT1x0aVtcYlF/XGJUelx2VkZcdHdOBXRzXHRkd1xiVHZcbmVTXG5naVx0TnIFeVNcbnBlXGJWVlxiU3FcbmBtXHR5alx0QlpcdldYXGJTQlx0Y1xcXG5VUlx0W0pcdGNfBG5NXGJXUVx2QXhcbk1kXHRCcgV1aVx2eFlcYlNNXHZXY1x2fGpcdnhzXHR9UVx0Qk9cYlBMXGJXV1x0Zk1cbkFPXHRQY1x2ZVUEZV5cYlRnXG5xSVx0YWNcYlB2XHRjRgRvUVx0UX9cdmhaBWthXG56XFxcdGlLXHRCVVxuYGtcdENQBFN8BE1gXG57SVx0U3sEX09cdEJaBFppBFNrXHRwc1x0cFxcXG5ZdVxuXXNcbnhDXGJXdFxuYkRcdGtWXHZHdQV5U1xucUFcdFtyXG5lSwRNYFx0ZFoFbExcYlVnXGJUbFxuYkRcdFVTXHZiXFxcdHBWXG5jYwRTXFxcdGN0XHRgelxiUExcdldzXG5BYFxuZWdcYlNxBXVFBENSXHZEZ1x0YFdcdnp7XHZXYwRTawRTa1x0YldcYlVnXHRlYVxueFpcdGlJXHRVWFx0VkpcbnFuXHRTe1x2UmJcYlRRXG5wbAVHdFx2dVcFdWpcbnBGXG5xSVx0ZkxcdFtJXHRpYQRYT1xueXVcdkRnXHZlZFx0cXsEVkdcYlF/BWthXHRWalx0a1ZcdHhCXG5kfFxucEBcdFFOXHRQY1x0cHMEXWpcdGtWXHRvVVxiVHBcbnpVBW5CXHZCXVx0YXtcYlZAXG5dbgRtYFx0Y3pcdFJ7BG1gXGJRYVx2d1RcYlNNBU1ZBXFOXHRkagV+c1x2UX0FTVlcdk1CXHRCdlx0d1JcYlJnXHZRfVx0cWxcdktDXG5ybQV4dQRDQ1x2d0JcdnZoXHRCcQRYcVxucFZcdGlfBU9iBXVFXG5iZFxucW9cdntpXG5Dflx0QkxcdmVFBXVIXGJWagRFeQRHelx2elJcdntpXHRjZlxue1pcbl1uBFhBXHZHdVx2blVcdGhTXHZHSVxuQ2NcdEhFXGJUQVx0SEIEQkgEQ2pcbkNjXGJURlx0SEVcblhJXHRBe1xiUX9cdGNcXFx2bU9cdldYXG5mSFxucEAFTVlcYlRGXG5sS1x0QnRcbnpVXHRUVARLbVx2d1RcbnBWXG5kdFx2eUlcdFZ4XHRRf1x0UmdcdFRkXG56VVxiUlNcbkxNXHR3QQRuTVx0VG5cbmRTXHRdZ1xuTGNcdndCXHR9dFx0W0lcdENQBGtYXHZGbVx2aFoFbX9cdGlbXG5wQFx2UX1cdld/XHR8ZFxuTU9cbk1kXHRmX1x0ZkRcdGNKXHRIelx2UmJcdGlvXHRQeQRZW1xueFVcdGN0XHZAQFx0d3dcYlB2BEJNBEZGXG50YgV2fFx2S21cdEJxXHRCcQRLaARgb1xuWmQEWFVcdGldXHR8YFx0U3QEQlxcXGJRf1x2X1dcdFRKXG5xSVx0fGFcdEF7XHZ1UARNRFx0UGxcbnhSXHRmTFx2d3NcdGN7XHRkXFxcYlZgXG5lZ1x0SEsFa2NcbmR8XGJWVlxueVxcBWtjXHRpXVxiVkdcdGBWXHRzc1x0SV9cdEFFXHRic1x0ZHVcbmVsXHRwRFx2V39cbnFzBWx2XGJTTQRaaVx2VksFaWFcdlFCXHRRf1xue1pcYlB0XHZLbFxubEtcbmhzXG5kU1xiVksFbWZcbmReXHRrVlx0Y09cbmN8XGJWSFx0XFxdXGJUdlxiU3FcdG1JXHZEZ1x0VkpcdGNuXG55XFxcYlZnXGJUdlxueVhcYlRGXHRdXVxiVHBcbm9pXG5oc1x2ZVVcbkJmXHRkagVNclxufHBcdFxcZ1x0XXJcYlZiBXtEXG5kWwRYTlx0Zk1cdE9cXAVzX1x0Y2ZcdGlaBFhOXHZXY1x0cXZcbmBtXHRVXgVvRFxuZHxcdkdnXHRkRVx2d2YEbG8EdX1cbmR8BW9RXHRgaQRPaVx2eERcbmRaXG5DeARZd1xuemtcbnRiXG5nd1x0eWpcdEJgXG55WFx2cHNcbnRDXHZwUFx2cXdcYlB1XGJQWFx0RG1cbnB3BU5qXHRzc1x0YUdcdnhzXGJQdFxub0wER3pcdE9rXHRpQFx0aV0EZUNcdElRXHRpaVx0ZGpcdkBKXHR8ZAV1aFxiV1pcdmVVXHZuVVxiVGFcdGNDBGddXG56awRZaFxiVktcbkxVXG5wQFxudGJcbnRSXHRDalx2TlBcdGlAXGJQe1xuXFx9XG57Y1xud1hcdGZMXGJWR1x0Y3tcdHxgXHRBSlx0fENcdGZEBWxuXHR8ZFx0YnNcbnFJBXtCXHZBeFxucEBcbnprXHZSYgVPc1x2V1MEZV5cdkRfXHRCdlx2V2RcYlZiXHZ4c1x2ZUVcYlJ3XG5dblxufHBcdmd8XHRmdwVrY1xiVEkFa2FcblxcVARTcFx0anVcdnBzXG5wZQV1fFx2R3JcYlZlXHRDVQRdTQRYVVx2eERcYlRhXHRJUVx2V3FcdENVXHRhbVx0ZGpcYlNvBFN3XHZuVQRDaFx0UV0Fc19cYlB0XHRmU1xiVGFcdFxcfVxuQE8EWWNcdFVaXGJUeFxucGVcdm5VXG56VVx0fH1cdGlEXG56XFxcYlNNXHZ4RARCUlxuelFcdFFOBF1NBFloXG5MUFx2Rm1cdkxYBXZjXHZxbAVrYVx0SEtcYlZiXG50Q1xuQ3lcYlR2XG51VgRvUVx0YHpcdFtJXHRCYFx2UmJcdHlqXHRzYlx2V3NcYlRsXHRrVlx2ZWRcbmV/BWxMXHZ4Tlx0f21cbkpuXHRqWVx2eERcYlZiXGJTcVx2eXVcdHdMXHZYTFxiVEFcdHBnXHRBdFx0bkQEWFhcdHdSXG5wbFxuaHcFeVNcbnBzXHRjT1xiV1tcdnxqBFhOXHRzVlx0cFxcXHRCZVxuYn5cbkFKXG5dZQVrYAVxTlx0ZHdcdFdWXHRIRVx2RVYFSnpcdGlkXHRCYFx0emgFRV1cdGZEXGJUZwVxTlxiVGFcdGphBEN2XGJTTVxuaGNcYlVlBXRfXHRpZQRnXVx0d1FcblBuXGJWQlx0andcYlZnXHZiRVx0QlpcdlJIXGJQe1x0anBcblxcfVx0YV9cdGNDXHR8YVx2RF1cdEJaXHRpW1x0ZkRcdnhXXG5vX1x0ZFxcXG5fRFxudGJcdFxcY1x0QUpcbmxLBG9RBGxvXHZMeFx2TUBcYldaBEtuXHZwZ1xuVGlcbkl2XG58clx2QH0FSnoFTG0FV2gFa30FbG5cdnhEXG5dcwRnY1x2cHNcdEJyXGJUV1x2Qk0FdFpcbkJZBERXXHRqZlx2U1cEQ31cbnFvXHRkRVx0bXZcdElRXGJQUFxiVWIFbHYEQkNcbnpRXHRbSVx2Z2xcbmlnXGJVcwRCVFx2YkNcYlNxXHRzVVx0aVdcbkpuXHRTWVx0SEtcdHJnXG5wVlx2SURcdnxqBEtPXHRgU1x0fGFgdmJtZ2xmbXVqYnFuYmdxamdhdnBgYnFqbWpgamx3amZuc2xzbHFydmZgdmZtd2JmcHdiZ2xzdmZnZm1pdmZkbHBgbG13cWJmcHcvTW1tbG5hcWZ3amZtZm1zZnFlam9uYm1mcWJibmpkbHBganZnYmdgZm13cWxidm1ydmZzdmZnZnBnZm13cWxzcWpuZnFzcWZgamxwZmQvVm1hdmZtbHB1bG91ZnFzdm13bHBwZm5ibWJrYmEvQWJiZGxwd2xtdmZ1bHB2bWpnbHBgYnFvbHBmcnZqc2xtai9dbHBudmBrbHBib2R2bWJgbHFxZmxqbmJkZm1zYnF3anFicXFqYWJuYnEvQWJrbG5hcWZmbnNvZmx1ZnFnYmdgYm5hamxudmBrYnBldmZxbG1zYnBiZ2xvL0FtZmJzYnFmYGZtdmZ1YnBgdnFwbHBmcHdiYWJydmpmcWxvamFxbHBgdmJtd2xiYGBmcGxuamR2Zm91YnFqbHBgdmJ3cWx3amZtZnBkcXZzbHBwZnEvTW1mdnFsc2JuZmdqbHBlcWZtd2ZiYGZxYGJnZm4vTXBsZWZxd2JgbGBrZnBubGdmb2xqd2JvamJvZndxYnBib2QvVm1gbG5zcWJgdmJvZnBme2pwd2ZgdmZxc2xwamZtZ2xzcWZtcGJvb2ZkYnF1amJpZnBnam1mcWxudnFgamJzbGdxL01zdmZwd2xnamJxamxzdmZhb2xydmpmcWZuYm12Zm9zcWxzamxgcWpwanBgamZxd2xwZmR2cWxudmZxd2ZldmZtd2ZgZnFxYnFkcWJtZ2ZmZWZgd2xzYnF3ZnBuZmdqZ2JzcWxzamJsZXFmYGZ3amZxcWJmLm5iam91YnFqYnBlbHFuYnBldnd2cWxsYWlmd2xwZmR2anFxamZwZGxtbHFuYnBuanBubHAvVm1qYGxgYm5qbWxwandqbHBxYnkvX21nZmFqZ2xzcXZmYWJ3bG9mZ2x3Zm0vQWJpZnAvVnBmcHNmcWxgbGBqbWJscWpkZm13amZtZ2JgamZtd2xgL01nanlrYmFvYnFwZnEvQWJvYndqbWJldmZxeWJmcHdqb2xkdmZxcWJmbXdxYnEvRXtqd2xvL19zZnliZGZtZ2J1L0FnZmxmdWp3YnFzYmRqbWJuZndxbHBpYnVqZnFzYmdxZnBlL01gam9gYmFmeWIvTXFmYnBwYm9qZ2JmbXUvQWxpYnMvX21iYXZwbHBhamZtZnB3Znt3bHBvb2Z1YnFzdmZnYm1ldmZxd2ZgbG4vVm1gb2JwZnBrdm5ibWx3Zm1qZ2xham9hYmx2bWpnYmdmcHcvTXBmZ2p3YnFgcWZiZ2w8WDxXPWM9az1uPFI8VjxcXDxWPFQ8VzxUPWE9bjxSPF49bTxZPFk8XzxSPFM9bDxUPW48XFw8VjxZPWU8WT1vPFo8WTx2PFxcPFY8XTxZPFs8XT1nPFc8UjxRPFQ8fj1tPFk8UzxSPFg8QT1uPFI9bjxSPFA9azxZPFA8UTxZPW48VzxZPW49bDxcXDxbPFI8UTxcXDxfPFg8WTxQPFE8WTx4PFc9YzxzPWw8VDxRPFxcPW08UTxUPWk9bjxZPFA8Vj1uPFI8XzxSPFg8XjxSPW49bjxcXDxQPE08RDx8PFA8XFw9YzxLPW48UjxePFxcPW08XjxcXDxQPFk8UD1vPE48XFw8VjxYPF48XFw8UTxcXDxQPWE9bjxUPWE9bj1vPH48XFw8UD1uPFk9aTxTPWw8Uj1uPW89bjxRPFxcPFg8WDxRPWM8fjxSPW49bj1sPFQ8UTxZPFU8fjxcXD1tPFE8VDxQPW08XFw8UD1uPFI9bj1sPW88XTxyPFE8VDxQPFQ9bDxRPFk8WTxyPHI8cjxXPFQ9aj1hPW48XFw8cjxRPFxcPFE8WTxQPFg8UjxQPFA8UjxVPFg8XjxZPFI8UTxSPW09bzxYXGZIeVxmSWtcZkhVXGZJZFxmSHlcZklsXGZIVFxmSWtcZkh5XGZIUlxmSHlcZklnXGZIeFxmSFxcXGZIRlxmSFxcXGZIRFxmSWtcZkhjXGZIeVxmSHlcZkhTXGZIQVxmSWxcZkhrXGZIVFxmSHlcZkhcXFxmSEhcZklnXGZIVVxmSWdcZkhqXGZIRlxmSFVcZklsXGZIQ1xmSFVcZkhDXGZIUlxmSEhcZkh5XGZISVxmSFJpYmRxYm1cZkhqXGZIcFxmSHBcZklnXGZIaVxmSEBcZkhKXGZJZ1xmSHtcZkhkXGZIcFxmSFJcZkh7XGZIY1xmSFVcZkhCXGZIa1xmSERcZkhZXGZIVVxmSENcZklrXGZISVxmSWtcZkhJXGZJbFxmSHRcZkhcXFxmSHBcZkhAXGZISlxmSWxcZkh5XGZIZFxmSHBcZklsXGZIWVxmSWtcZkhEXGZIZFxmSERcZkhjXGZIVVxmSFxcXGZIZVxmSFRcZkhCXGZJa1xmSHlcZkhCXGZIWVxmSWdcZkheXGZJa1xmSFRcZkhAXGZIQlxmSGRcZkhKXGZJa1xmSH9cZkhcXFxmSGpcZkhCXGZIQFxmSFRcZkhBXGZIXFxcZkhAXGZIRFxmSHZcZkheXGZIQlxmSERcZkhqXGZIe1xmSFRcZklsXGZIXlxmSWw0VTVoNWU0STVoNWU1azRcXDRLNE40QjRdNFU0QzRDNEs1aDVlNWs0XFw1azRZNWQ0XTRWNWY0XTVvNEs1ajVkNWg0SzRENWY1ajRVNF00WjRcXDVoNW81azVqNEs1ZjVkNWk1bjRLNWg0VTVoNWY0SzVqNEs1aDVvNWo0QTRGNWU1bjRENWg1ZDRBNEU0SzRCNF01bTVuNFs0VTRENEM0XTVvNWo0STRcXDRLNW81aTRLNEs0QTRDNEk1aDRLNW01ZjVrNEQ0VTRaNW81ZjVtNEQ0QTRHNWQ1aTVqNWQ1azVkNE81ajRLNEA0QzRLNWg1azRLNF81aDVpNFU1ajRDNWg1ZjRfNFU0RDRdNFk1aDVlNWk1ajRcXDRENWs0SzRPNWo1azVpNEc1aDVvNWo0RjRLNWg0SzRBNWY0RzVpNFk0XTRYNF00QTRBNWQ1aDVkNW01ZjRLNFxcNEs1aDVvNWg1aTRdNEU0SzVqNEY0SzVoNW00TzRENWQ0QjRLNFk0TzVqNEY0SzVqNWs0SzVoNWY0VTRaNWQ1ZDVuNEM0SzRENWo0QjVmNF00RDVqNEY1aDVvNWk0WDRLNE01ZDVrNWY0SzRENWQ1bjRZNFk1ZDVpNEs0XTVuNWk0TzRBNEM1ajRBNWo0VTRDNWk0XTRPNWY0SzRBNEU1bzRGNEQ0QzVkNWo1ZjRANEQ1aTVqNWs0RjRBNEY0QDVrNEU0XzVqNEU1ZjRGNWk1bzRdNEU0VjReNEU1ajVtNF80RDVmNEY1aDVoNWs1aDVqNEs0RjVoNW81bjVoNEQ1aDVpNEs0VTVqNWs0TzVkNWg0WDVmNE01ajVkNF00TzVpNEs1bTVmNW80RDVvNWg0XFw0SzRGNF00RjRENEQ0TzVqNWs1aTRfNEs1ajVvNEQ1ZjRVNW01bjRDNEE0XzVqNWg1azVpNFg0VTRdNE81azVoNFg1azRdNW40WzRdNFs1aDREc3FsZWpvZnBmcXVqYGZnZmVidm93a2pucGZvZWdmd2Jqb3BgbG13Zm13cHZzc2xxd3B3YnF3ZmduZnBwYmRmcHZgYGZwcGVicGtqbG0/d2p3b2Y9YGx2bXdxemJgYGx2bXdgcWZid2ZncHdscWpmcHFmcHZvd3Bxdm1tam1kc3FsYGZwcHRxandqbWRsYWlmYHdwdWpwamFvZnRmb2BsbmZicXdqYG9mdm1obWx0bW1md3RscWhgbG5zYm16Z3ptYm5qYGFxbHRwZnFzcWp1YmB6c3FsYW9mblBmcXVqYGZxZnBzZmB3Z2pwc29ienFmcnZmcHdxZnBmcXVmdGZhcGp3ZmtqcHdscXplcWpmbWdwbHN3amxtcHRscWhqbWR1ZnFwamxtbmpvb2psbWBrYm1tZm90am1nbHQtYmdncWZwcHVqcGp3Zmd0ZmJ3a2ZxYGxxcWZgd3NxbGd2YHdmZ2pxZmB3ZWxxdGJxZ3psdiNgYm1xZm5sdWZncHZhaWZgd2BsbXdxbG9icWBranVmYHZxcWZtd3FmYmdqbWRvamFxYnF6b2puandmZ25ibWJkZnFldnF3a2ZxcHZubmJxem5iYGtqbWZuam12d2Zwc3FqdWJ3ZmBsbXdme3dzcWxkcWJucGxgamZ3em12bmFmcXB0cWp3d2ZtZm1iYW9mZ3dxamRkZnFwbHZxYGZwb2xiZ2ptZGZvZm5mbXdzYnF3bWZxZWptYm9venNmcWVmYHduZmJtam1kcHpwd2ZucGhmZnNqbWRgdm93dnFmJXJ2bHc4L2lsdnFtYm9zcWxpZmB3cHZxZWJgZnAlcnZsdzhme3NqcWZwcWZ1amZ0cGFib2JtYGZGbWRvanBrQGxtd2Ztd3drcWx2ZGtTb2ZicGYjbHNqbWpsbWBsbXdiYHdidWZxYmRmc3FqbmJxenVqb29iZGZQc2JtanBrZGJvb2ZxemdmYG9qbWZuZmZ3am1kbmpwcGpsbXNsc3ZvYnFydmJvand6bmZicHZxZmRmbWZxYm9wc2ZgamZwcGZwcGpsbXBmYHdqbG10cWp3ZnFwYGx2bXdmcWptandqYm9xZnNscXdwZWpkdnFmcG5mbmFmcXBrbG9nam1kZ2pwc3Z3ZmZicW9qZnFme3NxZnBwZ2pkandib3NqYHd2cWZCbWx3a2ZxbmJxcWpmZ3dxYmVlamBvZmJnam1kYGtibWRmZ2BmbXdxYm91amB3bHF6am5iZGZwLHFmYnBsbXBwd3ZnamZwZWZid3ZxZm9qcHdqbWRudnB3I2FmcGBrbGxvcFVmcXBqbG12cHZib296ZnNqcGxnZnNvYnpqbWRkcWx0am1kbGF1amx2cGx1ZnFvYnpzcWZwZm13YmB3amxtcD8sdm89Dlx0dHFic3NmcWJvcWZiZ3pgZnF3YmptcWZib2p3enB3bHFiZGZibWx3a2ZxZ2ZwaHdsc2xlZWZxZmdzYnd3ZnFtdm12cHZib0dqZGp3Ym9gYnNqd2JvVGZhcGp3ZmViam92cWZgbG1tZmB3cWZndmBmZ0JtZ3FsamdnZmBiZ2ZwcWZkdm9icSMlYm5zOCNibWpuYm9wcWZvZmJwZkJ2d2xuYndkZnd3am1kbmZ3a2xncG1sd2tqbWRTbHN2b2JxYGJzd2psbW9md3dmcXBgYnN3dnFmcGBqZm1gZm9qYGZtcGZga2JtZGZwRm1kb2JtZz4yJWJuczhLanB3bHF6Iz4jbWZ0I0BmbXdxYm92c2did2ZnUHNmYGpib01md3RscWhxZnJ2anFmYGxubmZtd3RicW1qbWRAbG9vZmRmd2xsb2FicXFmbmJqbXBhZmBidnBmZm9mYHdmZ0dmdndwYGtlam1ibWBmdGxxaGZxcHJ2amBob3phZnd0ZmZtZntiYHdvenBmd3dqbWRnanBmYnBmUGxgamZ3enRmYnNsbXBme2tqYWp3JW93OCIuLkBsbXdxbG9gb2JwcGZwYGx1ZnFmZ2x2d29qbWZid3diYGhwZ2Z1amBmcCt0am1nbHRzdnFzbHBmd2p3b2Y+IU5sYWpvZiNoam9vam1kcGtsdGptZEp3Ym9qYm1ncWxzc2Zna2ZidWpvemZlZWZgd3AuMiReKjhcdGBsbWVqcW5AdnFxZm13Ymd1Ym1gZnBrYnFqbWRsc2Ztam1kZ3FidGptZGFqb29qbG1scWdmcWZnRGZxbmJtenFmb2J3Zmc/LGVscW49am1gb3ZnZnRrZndrZnFnZmVqbWZnUGBqZm1gZmBid2JvbGRCcXdqYG9mYXZ3d2xtcG9icWRmcHd2bWplbHFuaWx2cW1menBqZ2ZhYnFAa2pgYmRsa2xvamdiekRmbWZxYm9zYnBwYmRmLyVydmx3OGJtam5id2ZlZmZvam1kYnFxanVmZ3NicHBqbWRtYnd2cWJvcWx2ZGtvei1cdFx0V2tmI2F2dyNtbHdnZm1wand6QXFqd2JqbUBram1mcGZvYmBoI2xld3FqYXZ3ZkpxZm9ibWchI2did2IuZWJgd2xxcHFmYGZqdWZ3a2J3I2pwT2phcWJxemt2cGFibWdqbSNlYmB3YmVlYmpxcEBrYnFvZnBxYmdqYGJvYXFsdmRrd2VqbWdqbWRvYm1nam1kOW9ibWQ+IXFmd3ZxbSNvZmJnZnFwc29ibW1mZ3NxZm5qdm5zYmBoYmRmQm5mcWpgYkZnandqbG1eJXJ2bHc4TmZwcGJkZm1mZmcjd2x1Ym92Zj4hYGxuc29me29sbGhqbWRwd2J3amxtYWZvamZ1ZnBuYm9vZnEubmxham9mcWZgbHFncHRibXcjd2xoam1nI2xlRWpxZmVse3psdiNicWZwam5qb2JxcHd2Z2pmZ25ie2pudm5rZmJnam1kcWJzamdvemBvam5id2Zoam1kZ2xuZm5mcWRmZ2JubHZtd3BlbHZtZ2Znc2psbWZmcWVscW52b2Jnem1icHd6a2x0I3dsI1B2c3NscXdxZnVmbXZmZmBsbWxuelFmcHZvd3BhcWx3a2ZxcGxvZ2pmcW9icWRmb3pgYm9vam1kLSVydmx3OEJgYGx2bXdGZ3RicWcjcGZkbmZtd1FsYWZxdyNmZWVscXdwU2JgamVqYG9mYnFtZmd2cyN0andra2ZqZGt3OXRmI2tidWZCbWRmb2ZwbWJ3amxtcFxccGZicWBrYnNzb2pmZ2JgcnZqcWZuYnBwanVmZHFibXdmZzkjZWJvcGZ3cWZid2ZnYWpkZGZwd2FmbWZlandncWp1am1kUHd2Z2pmcG5qbWpudm5zZnFrYnNwbmxxbWptZHBmb29qbWRqcCN2cGZncWZ1ZnFwZnVicWpibXcjcWxvZj4hbmpwcGptZGJga2pmdWZzcWxubHdmcHd2Z2Ztd3BsbmZsbWZme3dxZm5mcWZwd2xxZmFsd3dsbjlmdWxvdWZnYm9vI3drZnBqd2ZuYnNmbWRvanBrdGJ6I3dsIyNCdmR2cHdwem5hbG9wQGxuc2Jtem5id3dmcXBudnBqYGJvYmRiam1wd3BmcXVqbWR+KisqOA5cdHNiem5mbXd3cWx2YW9mYGxtYGZzd2BsbnNicWZzYnFmbXdwc29iemZxcHFmZGpsbXBubG1qd2xxIyQkV2tmI3RqbW1qbWRme3NvbHFmYmdic3dmZ0Rib29mcXpzcWxndmBmYmFqb2p3emZta2JtYGZgYnFmZnFwKi0jV2tmI2Bsb29mYHdQZmJxYGsjYm1gamZtd2Z7anB3ZmdlbGx3ZnEja2JtZ29mcXNxam13ZmdgbG1wbG9mRmJwd2ZxbWZ7c2xxd3B0am1nbHRwQGtibW1mb2pvb2ZkYm9tZnZ3cWJvcHZkZGZwd1xca2ZiZ2ZxcGpkbWptZC1rd25vIT1wZnd3b2ZndGZwd2ZxbWBidnBqbWQudGZhaGp3YG9iam5mZ0l2cHdqYGZga2Jzd2ZxdWpgd2pucFdrbG5icCNubHlqb29ic3FsbmpwZnNicXdqZnBmZ2p3amxtbHZ3cGpnZjllYm9wZi9rdm1ncWZnTG96bnNqYFxcYXZ3d2xtYnZ3a2xxcHFmYmBrZmdga3FsbWpgZ2ZuYm1ncHBmYGxtZ3BzcWx3ZmB3Ymdsc3dmZ3NxZnNicWZtZmp3a2ZxZHFmYndvemRxZmJ3ZnFsdWZxYm9vam5zcWx1ZmBsbm5ibWdwc2ZgamJvcGZicWBrLXRscXBranNldm1nam1kd2tsdmRrd2tqZGtmcHdqbXB3ZmJndndqb2p3enJ2YnF3ZnFAdm93dnFmd2Zwd2ptZGBvZmJxb3pme3NscGZnQXFsdHBmcW9qYWZxYm9+I2Bid2BrU3FsaWZgd2Z7Ym5zb2ZramdmKyo4RW9scWpnYmJtcHRmcXBib29sdGZnRm5zZnFscWdmZWZtcGZwZnFqbHZwZXFmZmdsblBmdWZxYm8uYXZ3d2xtRXZxd2tmcWx2dyNsZSMiPiNtdm9vd3Fiam1mZ0dmbW5icWh1bGpnKzMqLGJvby1pcHNxZnVmbXdRZnJ2ZnB3UHdmc2tmbVx0XHRUa2ZtI2xhcGZxdWY/LGsxPQ5cdE5sZ2ZxbSNzcWx1amdmISNib3c+IWFscWdmcXAtXHRcdEVscSNcdFx0TmJteiNicXdqcHdwc2x0ZnFmZ3NmcWVscW5lamB3amxtd3pzZiNsZW5mZ2pgYm93amBoZndwbHNzbHBmZ0Bsdm1gam90andtZnBwaXZwd2pgZkRmbHFkZiNBZm9kanZuLS0tPyxiPXd0and3ZnFtbHdiYW96dGJqd2ptZHRicWVicWYjTHdrZnEjcWJtaGptZHNrcWJwZnBuZm13amxtcHZxdWp1ZnBga2xvYnE/LHM9Dlx0I0Bsdm13cXpqZG1scWZnb2xwcCNsZWl2cHcjYnBEZmxxZGpicHdxYm1kZj9rZmJnPT9wd2xzc2ZnMiReKjgOXHRqcG9ibWdwbWx3YmFvZmFscWdmcTlvanB3I2xlYGJxcWpmZzIzMy8zMzM/LGswPVx0I3BmdWZxYm9hZmBsbmZwcGZvZmB3I3RmZ2dqbWQzMy1rd25vbmxtYnFga2xlZSN3a2Z3ZmJga2Zxa2pka296I2FqbG9sZHpvamVmI2xlbHEjZnVmbXFqcGYjbGUlcWJydmw4c292cGxtZmt2bXdqbWQrd2tsdmRrR2x2ZG9icGlsam1qbWRganFgb2ZwRWxxI3drZkJtYGpmbXdVamZ3bWJudWZramBvZnB2YGsjYnBgcXpwd2JvdWJvdmYjPlRqbWdsdHBmbWlsemZnYiNwbmJvb2JwcHZuZmc/YiNqZz4hZWxxZmpkbSNCb28jcWprbHQjd2tmR2pwc29ienFmd2pxZmdrbHRmdWZxa2pnZ2ZtOGFid3dvZnBwZmZoam1kYGJham1md3RicCNtbHdvbGxoI2J3YGxtZ3Zgd2RmdyN3a2ZJYm12YnF6a2Jzc2ZtcHd2cW1qbWRiOWtsdWZxTG1vam1mI0VxZm1gayNvYmBoam1kd3pzamBib2Z7d3FiYHdmbWZuamZwZnVmbSNqZWRmbWZxYndnZmBqZ2ZnYnFmI21sdyxwZmJxYGthZm9qZmVwLmpuYmRmOW9sYGJ3Zmdwd2J3amAtb2xkam0hPWBsbXVmcXd1amxvZm13Zm13ZnFmZ2VqcXB3IT1ganFgdmp3RWptb2JtZ2BrZm5qcHdwa2YjdGJwMjNzezghPWJwI3B2YGtnanVqZ2ZnPyxwc2JtPXRqb28jYWZvam1mI2xlYiNkcWZid256cHdmcXosam1nZnstZWJvb2ptZGd2ZiN3bCNxYmpvdGJ6YGxvb2ZkZm5sbXB3ZnFnZnBgZm13ancjdGp3a212YG9mYnFJZnRqcGsjc3Fsd2Zwd0FxandqcGtlb2x0ZnFwc3FmZ2pgd3FmZWxxbnBhdnd3bG0jdGtsI3RicG9mYHd2cWZqbXB3Ym13cHZqYGpnZmRmbWZxamBzZnFqbGdwbmJxaGZ3cFBsYGpibyNlanBram1kYGxuYWptZmRxYnNramB0am1tZnFwP2FxIyw9P2F6I3drZiNNYnd2cWJvU3FqdWJgemBsbGhqZnBsdndgbG5mcWZwbG91ZlB0ZmdqcGthcWpmZW96U2ZxcGpibXBsI252YGtAZm13dnF6Z2ZzamB3cGBsb3ZubXBrbHZwam1kcGBxanN3cG1me3cjd2xhZmJxam1kbmJzc2ptZHFmdWpwZmdpUnZmcXorLnRqZ3drOXdqd29mIT13bGxvd2pzUGZgd2psbWdmcGpkbXBXdnFoanBremx2bWRmcS1uYndgayt+KisqOFx0XHRhdnFtam1kbHNmcWJ3ZmdmZHFmZnBwbHZxYGY+UWpga2JxZ2BvbHBmb3pzb2Jwd2pgZm13cWpmcD8sd3E9Dlx0YGxvbHE5IHZvI2pnPiFzbHBwZnBwcWxvb2ptZHNrenBqYHBlYmpvam1kZntmYHZ3ZmBsbXdmcHdvam1oI3dsR2ZlYnZvdz9hcSMsPVx0OSN3cXZmL2BrYnF3ZnF3bHZxanBuYG9icHBqYHNxbGBmZmdme3NvYmptPyxrMj0OXHRsbW9qbWYtPHtubyN1Zmtmb3NqbWRnamJubG1ndnBmI3drZmJqcW9qbWZmbWcjLi49Ki1id3dxK3FmYmdmcXBrbHB3am1kIGVlZWVlZXFmYm9qeWZVam1gZm13cGpkbWJvcCNwcWA+ISxTcWxndmB3Z2Zwc2p3ZmdqdWZxcGZ3Zm9vam1kU3Zhb2pgI2tmb2cjam1JbHBmc2sjd2tmYndxZmJlZWZgd3A/cHd6b2Y9YiNvYnFkZmdsZnBtJHdvYndmcS8jRm9mbmZtd2VidWpgbG1gcWZid2xxS3ZtZGJxekJqcXNscXdwZmYjd2tmcGwjd2tid05qYGtiZm9QenB3Zm5wU3FsZHFibnAvI2JtZyMjdGpnd2s+ZiVydmx3OHdxYmdqbWRvZmV3IT1cdHNmcXBsbXBEbG9nZm0jQmVlYmpxcGRxYm5uYnFlbHFuam1kZ2Zwd3FsempnZmIjbGVgYnBmI2xlbG9nZnB3I3dranAjanAtcHFgIz4jYGJxd2xsbXFmZGpwd3FAbG5ubG1wTnZwb2pucFRrYncjanBqbSNuYm16bmJxaGptZHFmdWZib3BKbWdmZmcvZnJ2Ym9veixwa2x0XFxibHZ3Z2xscWZwYGJzZitCdnB3cWpiZGZtZndqYHB6cHdmbi9KbSN3a2YjcGp3d2ptZEtmI2JvcGxKcG9ibWdwQmBiZ2Zuelx0XG5cbj8iLi5HYm1qZm8jYWptZ2ptZGFvbGBoIT1qbnNscGZndndqb2p5ZkJhcWJrYm4rZntgZnN3eHRqZ3drOXN2d3dqbWQqLWt3bm8rf38jWF44XHRHQldCWCMpaGp3YGtmbW5sdm13ZmdiYHd2Ym8jZ2pib2Zgd25iam1veiNcXGFvYm1oJGptcHdib29me3NmcXdwamUrd3pzZkp3I2JvcGwlYGxzejgjIT1XZnFucGFscW0jam1Mc3dqbG1wZmJwd2ZxbXdib2hqbWRgbG1gZnFtZGJqbWZnI2xtZGxqbWRpdnB3amV6YHFqd2pgcGViYHdscXpqd3AjbHRtYnBwYnZvd2ptdWp3ZmdvYnB3am1ka2pwI2x0bWtxZmU+ISwhI3Fmbz4hZ2Z1Zm9sc2BsbWBmcXdnamJkcWJuZ2xvb2JxcGBvdnB3ZnFza3M8amc+Ym9gbGtsbyo4fiorKjh2cGptZCNiPT9wc2JtPXVmcHBmb3BxZnVqdWJvQmdncWZwcGJuYndmdnFibWdxbGpnYm9vZmRmZ2pvb21mcHB0Ym9oam1kYGZtd2ZxcHJ2Ym9qZXpuYndga2Zwdm1qZWpmZ2Z7d2ptYHdHZmVmbXBmZ2pmZyNqbVx0XG4/Ii4uI2B2cHdsbnBvam1oam1kT2p3d29mI0FsbGgjbGVmdWZtam1kbmptLWlwPGJxZiN3a2ZobG13Ymh3d2xnYnokcC1rd25vISN3YnFkZnc+dGZicWptZEJvbyNRamQ4XHR+KisqOHFianBqbWQjQm9wbC8jYHF2YGpib2JhbHZ3IT1nZmBvYnFmLi49XHQ/cGBlanFmZWx7YnAjbnZga2Jzc29qZnBqbWdmey8jcC8jYXZ3I3d6c2YjPiNcdA5cdD8iLi53bHRicWdwUWZgbHFncFNxanVid2ZFbHFmamRtU3FmbmpmcWBrbGpgZnBVanF3dmJvcWZ3dnFtcEBsbm5mbXdTbHRmcWZnam1vam1mOHNsdWZxd3pga2JuYWZxT2p1am1kI3Vsb3ZuZnBCbXdrbG16b2xkam0hI1Fmb2J3ZmdGYGxtbG56cWZiYGtmcGB2d3dqbWRkcWJ1and6b2plZiNqbUBrYnN3ZnEucGtiZ2x0TWx3YmFvZj8sd2c9Dlx0I3Fmd3ZxbXB3Ymdqdm50amdkZndwdWJxemptZHdxYnVmb3BrZm9nI2F6dGtsI2JxZnRscWgjam1lYmB2b3d6Ym1kdm9icXRrbCNrYmdianFzbHF3d2x0bSNsZVx0XHRQbG5mIyRgb2pgaCRga2JxZGZwaGZ6dGxxZ2p3I3Rqb29gand6I2xlK3dranAqOEJtZ3FmdCN2bWpydmYjYGtmYGhmZ2xxI25scWYwMzNzezgjcWZ3dnFtOHFwamxtPiFzb3Zkam1wdGp3a2ptI2tmcXBmb2VQd2J3amxtRWZnZnFib3VmbXd2cWZzdmFvanBrcGZtdyN3bHdmbXBqbG1iYHdxZnBwYGxuZiN3bGVqbWRmcXBHdmhmI2xlc2Zsc29mL2Z7c29sand0a2J3I2pwa2JxbmxtemIjbmJpbHEhOSFrd3dzam0ja2pwI25mbXYhPVx0bmxtd2tvemxlZWpgZnFgbHZtYGpvZGJqbWptZGZ1Zm0jam1Qdm5uYnF6Z2J3ZiNsZW9semJvd3plandtZnBwYm1nI3RicGZuc2ZxbHFwdnNxZm5mUGZgbG1nI2tmYnFqbWRRdnBwamJtb2xtZGZwd0JvYWZxd2JvYndmcWJvcGZ3I2xlI3BuYm9vIT0tYnNzZm1nZ2wjdGp3a2VmZ2ZxYm9hYm1oI2xlYWZtZmJ3a0dmcHNqd2ZAYnNqd2JvZHFsdm1ncCovI2JtZyNzZnFgZm13ancjZXFsbmBvbHBqbWRgbG13YmptSm1wd2ZiZ2VqZXdmZm1icCN0Zm9vLXpia2xsLXFmcHNsbWdlamRrd2ZxbGFwYHZxZnFmZW9mYHdscWRibWpgPiNOYndrLWZnandqbWRsbW9qbWYjc2JnZ2ptZGIjdGtsb2ZsbWZxcWxxemZicSNsZWZtZyNsZSNhYnFxamZxdGtmbSNqd2tmYmdmcSNrbG5mI2xlcWZwdm5mZ3FmbWJuZmdwd3FsbWQ9a2Zid2ptZHFmd2JqbXBgb2x2Z2VxdGJ6I2xlI05icWBrIzJobWx0am1kam0jc2Jxd0Fmd3RmZm1vZnBwbG1wYG9scGZwd3VqcXd2Ym9vam1ocCE9YHFscHBmZ0ZNRyMuLj1lYm5sdnAjYnRicWdmZ09qYGZtcGZLZmJvd2sjZWJqcW96I3RmYm93a3puam1qbmJvQmVxamBibWBsbnNmd2ZvYmFmbyE9cGptZGptZGVicW5mcXBBcWJwam8qZ2pwYHZwcHFmc29iYGZEcWZkbHF6ZWxtdyNgbHN2cXB2Zmdic3NmYnFwbmJoZiN2c3Fsdm1nZmdhbHdrI2xlYW9sYGhmZ3BidCN3a2ZsZWVqYGZwYGxvbHZxcGplK2dsYHZ0a2ZtI2tmZm1lbHFgZnN2cGsrZXZCdmR2cHcjVldFLjshPUVibXdicHpqbSNubHB3am1pdnFmZ1ZwdmJvb3plYnFuam1kYG9scHZxZmxhaWZgdyNnZmVmbWBmdnBmI2xlI05mZ2pgYm8/YWxnej1cdGZ1amdmbXdhZiN2cGZnaGZ6QGxnZnBqe3dmZm1KcG9ibmpgIDMzMzMzM2Ztd2pxZiN0amdmb3ojYmB3anVmIyt3enNmbGVsbWYjYGJtYGxvbHEjPnBzZmJoZnFme3dmbWdwU2t6cGpgcHdmcXFiam0/d2FsZ3o9ZXZtZnFib3VqZnRqbWRuamdnb2YjYHFqYGhmd3NxbHNrZndwa2pld2ZnZ2xgd2xxcFF2cHBmb28jd2JxZGZ3YGxuc2Jgd2JvZGZhcWJwbGBqYm8uYXZvaCNsZW5ibSNibWc/LHdnPVx0I2tmI29mZXcqLXVibysqZWJvcGYqOG9sZGpgYm9hYm1oam1ka2xuZiN3bG1ibmptZCNCcWp5bG1iYHFmZ2p3cCo4XHR+KjhcdGVsdm1nZnFqbSN3dnFtQGxvb2ptcGFmZWxxZiNBdncjd2tmYGticWRmZ1dqd29mIT1AYnN3YmptcHNmb29mZ2RsZ2dmcHBXYmQjLi49Qmdnam1kOWF2dyN0YnBRZmBmbXcjc2J3amZtd2FiYGgjam0+ZWJvcGYlT2ptYGxvbXRmI2htbHRAbHZtd2ZxSXZnYmpwbnBgcWpzdyNib3dmcWZnJF4qOFx0IyNrYnAjd2tmdm1gb2ZicUZ1Zm13JC9hbHdrI2ptbWx3I2Jvb1x0XHQ/Ii4uI3NvYmBqbWRrYnFnI3dsI2BmbXdmcXBscXcjbGVgb2pmbXdwcHdxZmZ3cEFmcW1icWdicHBmcXdwd2ZtZyN3bGVibXdicHpnbHRtI2pta2JxYWx2cUVxZmZnbG5pZnRmb3F6LGJhbHZ3LS1wZmJxYGtvZmRmbWdwanAjbmJnZm5sZ2ZxbSNsbW96I2xtbG1veiN3bGpuYmRmISNvam1mYnEjc2JqbXdmcWJtZyNtbHdxYnFmb3ojYmBxbG16bmdmb2p1ZnFwa2xxd2ZxMzMlYm5zOGJwI25ibXp0amd3az4hLCkjPyJYQHdqd29mIz5sZSN3a2Yjb2x0ZnB3I3NqYGhmZyNmcGBic2ZndnBmcCNsZXNmbHNvZnAjU3Zhb2pgTmJ3d2tmdHdiYHdqYHBnYm5iZGZndGJ6I2VscW9idHAjbGVmYnB6I3dsI3RqbWdsdHB3cWxtZCMjcGpuc29mfmBid2BrK3BmdWZtd2tqbWVsYWx7dGZtdyN3bHNiam13ZmdgandqeWZtSiNnbG0kd3Fmd3FmYnctI1BsbmYjdHQtISo4XHRhbG5ham1kbmJqb3dsOW5iZ2Yjam0tI05ibXojYGJxcWpmcH9/eH44dGp0bHFoI2xlcHptbG16bmdmZWZid3BlYnVscWZnbHN3amBib3NiZGZXcWJ2bW9mcHAjcGZtZ2ptZG9mZXchPT9gbG5QYGxxQm9vI3drZmlSdmZxei13bHZxanB3QG9icHBqYGVib3BmISNUam9rZm9ucHZhdnFhcGRmbXZqbWZhanBrbHNwLXBzb2p3K2RvbGFibyNlbG9vbHRwYWxneiNsZW1sbmptYm9AbG13YmB3cGZgdm9icW9mZXcjd2xga2pmZW96LmtqZ2dmbS5hYm1tZnE/LG9qPVx0XHQtI1RrZm0jam0jYWx3a2dqcG5qcHBGe3NvbHFmYm90YnpwI3VqYiN3a2Zwc2IvXWxvdGZvZWJxZnF2b2ptZCNicXFibWRmYGJzd2JqbWtqcCNwbG1xdm9mI2xla2Yjd2xsaGp3cGZvZS8+MyVibnM4K2Bib29mZ3BibnNvZnB3bCNuYmhmYGxuLHNiZE5icXdqbSNIZm1tZmd6YmBgZnN3cGV2b28jbGVrYm1nb2ZnQWZwamdmcCwsLi49PyxiYW9mI3dsd2JxZGZ3cGZwcGZtYGZram4jd2wjandwI2F6I2Bsbm5sbS1uam1mcWJvd2wjd2JoZnRienAjd2xwLWxxZCxvYmd1anBmZ3NmbWJvd3pwam5zb2Y5amUjd2tmek9md3dmcXBiI3BrbHF3S2ZxYWZxd3B3cWpoZnAjZHFsdnNwLW9mbWR3a2VvamRrd3BsdWZxb2JzcG9sdG96I29mcHBmcSNwbGBqYm8jPyxzPVx0XG5cbmp3I2ptd2xxYm1oZmcjcWJ3ZiNsZXZvPQ5cdCMjYnd3Zm5zd3NianEjbGVuYmhmI2p3SGxtd2Jod0Jtd2xtamxrYnVqbWQjcWJ3am1kcCNiYHdqdWZwd3FmYm5wd3Fic3NmZyEqLWBwcCtrbHB3am9mb2ZiZyN3bG9qd3dvZiNkcWx2c3AvU2pgd3ZxZi4uPQ5cdA5cdCNxbHRwPiEjbGFpZmB3am11ZnFwZj9lbGx3ZnFAdnB3bG5VPT9fLHBgcXBsb3VqbWRAa2JuYWZxcG9idWZxenRsdm1nZmd0a2ZxZmJwIj4jJHZtZ2VscSNib29zYnF3b3ojLnFqZGt3OUJxYmFqYm1hYmBoZmcjYGZtd3ZxenZtancjbGVubGFqb2YuRnZxbHNmL2pwI2tsbmZxanBoI2xlZ2ZwanFmZ0Bvam13bG1gbHB3I2xlYmRmI2xlI2FmYGxuZiNtbG1mI2xlcyVydmx3OE5qZ2dvZiNmYmckKlgzQHFqd2pgcHB3dmdqbHA9JWBsc3o4ZHFsdnMhPWJwcGZuYW9uYmhqbWQjc3FmcHBmZ3RqZ2Rmdy1zcDkhIzwjcWZhdmpvd2F6I3BsbmZFbHFuZnEjZmdqd2xxcGdmb2J6ZmdAYm1sbWpga2JnI3drZnN2cGtqbWRgb2JwcD4hYXZ3I2JxZnNicXdqYm9BYmF6b2xtYWx3d2xuI2BicXFqZnFAbG5uYm1nandwI3ZwZkJwI3Rqd2tgbHZxcGZwYiN3a2pxZ2dmbWx3ZnBib3BsI2ptS2x2cHdsbTEzc3s4IT1iYGB2cGZnZ2x2YW9mI2RsYm8jbGVFYm5sdnAjKi1ham1nK3NxamZwd3AjTG1vam1mam0jSXZvenB3IygjIWRgbG1wdm93Z2Zgam5ib2tmb3Nldm9xZnVqdWZnanAjdWZxenEkKCRqc3dvbHBqbWQjZWZuYm9mcGpwI2JvcGxwd3FqbWRwZ2J6cCNsZWJxcWp1Ym9ldnd2cWYjP2xhaWZgd2VscWBqbWRQd3FqbWQrISMsPVx0XG5cbmtmcWYjanBmbWBsZ2ZnLSMjV2tmI2Fib29sbG1nbG1mI2F6LGBsbm5sbWFkYGxvbHFvYnQjbGUjSm1namJtYmJ1bGpnZmdhdncjd2tmMXN7IzBze2lydmZxei1iZXdmcSNic2xvamB6LW5mbSNibWdlbGx3ZnEuPiN3cXZmOGVscSN2cGZwYHFmZm0tSm1namJtI2puYmRmIz5lYm5qb3ova3d3czksLCMlbWFwczhncWp1ZnFwZndmcW1ib3BibmYjYnBtbHdqYGZndWpmdGZxcH4qKyo4XHQjanAjbmxxZnBmYnBsbXBlbHFuZnEjd2tmI21mdGpwI2l2cHdgbG1wZm13I1BmYnFga3RicCN3a2Z0a3ojd2tmcGtqc3NmZ2FxPT9hcT10amd3azkja2ZqZGt3Pm5iZ2YjbGVgdmpwam1manAjd2tid2IjdWZxeiNCZ25qcWJvI2Vqe2ZnOG1scW5ibyNOanBwamxtU3FmcHAvI2xtd2Jxamxga2JxcGZ3d3F6I3dsI2ptdWJnZmc+IXdxdmYhcHNiYGptZGpwI25scHdiI25scWYjd2x3Ym9vemVib28jbGV+KjgOXHQjI2pubmZtcGZ3am5mI2ptcGZ3I2x2d3Bid2pwZXp3bCNlam1nZ2x0bSN3bG9sdyNsZSNTb2J6ZnFwam0jSXZtZnJ2Ym13dm5tbHcjd2tmd2puZiN3bGdqcHdibXdFam1tanBrcHFgIz4jK3BqbWRvZiNrZm9zI2xlRGZxbmJtI29idCNibWdvYmFmb2ZnZWxxZnB3cGBsbGhqbWRwc2JgZiE9a2ZiZ2ZxLnRmb28jYnBQd2Jtb2Z6YXFqZ2RmcCxkb2xhYm9AcWxid2piI0JhbHZ3I1gzXjhcdCMjancvI2JtZ2RxbHZzZmdhZmptZCNiKnh3a3FsdGtmI25iZ2ZvamRrd2ZxZndramBib0VFRUVFRSFhbHd3bG4hb2poZiNiI2Zuc29senBvanVmI2ptYnAjcGZmbXNxam13ZnFubHB3I2xldmEub2ptaHFmaWZgd3BibWcjdnBmam5iZGYhPXB2YGBmZmdlZmZnam1kTXZgb2ZicWptZWxxbmJ3bCNrZm9zVGxuZm0kcE1mandrZnFOZntqYGJtc3Fsd2ZqbT93YmFvZiNheiNuYm16a2Zib3drem9idHB2andnZnVqcGZnLXN2cGsreHBmb29mcXBwam5zb3ojV2txbHZkay1gbGxoamYjSm5iZGYrbG9nZnEhPXZwLWlwIT0jUGptYGYjdm1qdWZxcG9icWRmcSNsc2ZtI3dsIi4uI2ZtZ29qZnAjam0kXio4Dlx0IyNuYnFoZnd0a2wjanAjKyFHTE5AbG5ibWJkZmdsbWYjZWxxd3pzZmxlI0hqbWRnbG5zcWxlandwc3Fsc2xwZndsI3BrbHRgZm13ZnE4bmJnZiNqd2dxZnBwZmd0ZnFmI2ptbmp7d3ZxZnNxZmBqcGZicWpwam1kcHFgIz4jJG5iaGYjYiNwZmB2cWZnQWJzd2pwd3Vsd2ptZCNcdFxuXG51YnEjTmJxYGsjMWRxZnQjdnNAb2puYndmLXFmbmx1ZnBoam9vZmd0Ynojd2tmPyxrZmJnPWViYGYjbGViYHdqbWQjcWpka3chPXdsI3RscWhxZmd2YGZwa2JwI2tiZ2ZxZmB3Zmdwa2x0Kyo4YmB3amxtPmFsbGgjbGVibSNicWZiPj4jIWt3dz9rZmJnZnFcdD9rd25vPWBsbWVscW5lYmBqbWQjYGxsaGpmLXFmb3ojbG1rbHB3ZmcjLWB2cHdsbmtmI3RmbXdhdncjZWxxcHNxZmJnI0VibmpveiNiI25mYm1wbHZ3I3drZmVscXZucC1lbGx3YmRmIT1ObGFqb0BvZm5mbXdwISNqZz4hYnAja2pka2ptd2ZtcGYuLj0/Ii4uZWZuYm9mI2pwI3BmZm1qbnNvamZncGZ3I3drZmIjcHdid2ZibWcja2pwZWJwd2Zwd2FmcGpnZnBhdnd3bG1cXGFsdm1nZmchPT9qbmQjSm1lbGFse2Z1Zm13cC9iI3psdm1kYm1nI2JxZk1id2p1ZiNga2Zic2ZxV2puZmx2d2JtZyNrYnBmbWRqbWZwdGxtI3drZitubHB3b3pxamRrdzkjZWptZyNiIy5hbHd3bG5TcWptYGYjYnFmYiNsZW5scWYjbGVwZmJxYGtcXG1id3ZxZi9vZmRib296c2ZxamxnL29ibWcjbGVscSN0andram1ndmBmZ3NxbHVqbWRuanBwam9mb2xgYm9vekJkYmptcHd3a2YjdGJ6aCVydmx3OHN7OCE9Dlx0c3Zwa2ZnI2JhYm1nbG1tdm5mcWJvQGZxd2JqbUptI3dranBubHFmI2ptbHEjcGxuZm1ibmYjanBibWcvI2ptYHFsdG1mZ0pQQU0jMy5gcWZid2ZwTGB3bGFmcW5ieiNtbHdgZm13ZnEjb2J3ZiNqbUdmZWZtYGZmbWJgd2ZndGpwayN3bGFxbGJnb3pgbGxvam1kbG1vbGJnPmp3LSNXa2ZxZmBsdWZxTmZuYWZxcGtmamRrdyNicHB2bmZwP2t3bm89XHRzZmxzb2Ytam0jbG1mIz50am1nbHRlbGx3ZnFcXGIjZGxsZyNxZmhvYm5ibHdrZnFwL3dsI3dranBcXGBsbGhqZnNibWZvIT1PbG1nbG0vZ2Zlam1mcGBxdnBrZmdhYnN3anBuYGxicHdib3B3Ynd2cCN3andvZiEjbmx1ZiN3bG9scHcjam1hZnd3ZnEjam5zb2pmcHFqdWJvcXpwZnF1ZnFwI1B6cHdmblNmcWtic3BmcCNibWcjYGxtd2ZtZ2VvbHRqbWRvYnB3ZmcjcWpwZiNqbURmbWZwanB1amZ0I2xlcWpwam1kI3BmZm4jd2xhdncjam0jYWJgaGptZGtmI3Rqb29kanVmbSNiZGp1am1kI2Bqd2pmcC1lb2x0I2xlI09id2ZxI2JvbyNhdndLamRrdGJ6bG1veiNhenBqZG0jbGVrZiNnbGZwZ2plZWZxcGFid3dmcXolYm5zOG9icGptZG9mcHdrcWZid3BqbXdmZGZxd2JoZiNsbXFmZXZwZmdgYm9vZmcjPlZQJWJuc1BmZiN3a2ZtYndqdWZwYXojd2tqcHB6cHdmbi1rZmJnI2xlOWtsdWZxL29mcGFqYm1wdnFtYm5mYm1nI2Jvb2Bsbm5sbSxrZmJnZnFcXFxcc2JxYm5wS2JxdWJxZyxzantmby1xZm5sdWJvcGwjb2xtZHFsb2YjbGVpbGptd296cGh6cGBxYlZtamBsZ2ZhcSMsPQ5cdEJ3b2Jtd2JtdmBvZnZwQGx2bXd6L3N2cWZveiNgbHZtdyE9ZmJwam96I2F2am9nI2JsbWBvamBoYiNkanVmbXNsam13ZnFrJXJ2bHc4ZnVmbXdwI2ZvcGYjeFx0Z2p3amxtcG1sdCN3a2YvI3Rqd2sjbmJtI3RrbGxxZCxUZmFsbWYjYm1nYGJ1Ym9xektmI2dqZmdwZmJ3d29mMzMvMzMzI3h0am1nbHRrYnVmI3dsamUrdGptZ2JtZyNqd3BwbG9mb3ojbiVydmx3OHFmbWZ0ZmdHZndxbGp3Ym5sbWRwd2Zqd2tmcSN3a2ZuI2ptUGZtYndscVZwPyxiPT9Iam1kI2xlRXFibWBqcC5zcWxndmBrZiN2cGZnYnF3I2JtZ2tqbiNibWd2cGZnI2F6cGBscWptZGJ3I2tsbmZ3bCNrYnVmcWZvYndmcGpham9qd3plYmB3amxtQXZlZWJvbG9qbWghPT90a2J3I2tmZXFmZiN3bEBqd3ojbGVgbG5mI2ptcGZgd2xxcGBsdm13ZmdsbWYjZ2J6bWZxdWx2cHBydmJxZiN+OGplK2Rsam0jdGtid2puZCEjYm9qcCNsbW96cGZicWBrLHd2ZnBnYnpvbGxwZm96UGxvbG5sbXBme3ZibyMuIz9iI2txbmZnanZuIUdMI01MVyNFcWJtYGYvdGp3ayNiI3RicSNibWdwZmBsbWcjd2JoZiNiIz0OXHQOXHQOXHRuYnFoZncta2pka3RiemdsbWYjam1gd2p1and6IW9icHchPWxhb2pkZmdxanBmI3dsIXZtZ2Zlam5iZ2Yjd2wjRmJxb3ojc3FianBmZ2ptI2p3cCNlbHEja2pwYndrb2Z3Zkl2c2p3ZnFaYmtsbCIjd2ZxbmZnI3BsI25ibXpxZmJvb3ojcC0jV2tmI2IjdGxuYm08dWJvdmY+Z2pxZmB3I3FqZGt3ISNhamB6YG9mYmBqbWQ+IWdieiNibWdwd2J3am1kUWJ3a2ZxL2tqZGtmcSNMZWVqYGYjYnFmI21sdHdqbmZwLyN0a2ZtI2Ijc2J6I2VscWxtI3dranAub2ptaCE9OGFscWdmcWJxbHZtZyNibW12Ym8jd2tmI01mdHN2dyN3a2YtYGxuISN3YmhqbSN3bGIjYXFqZmUram0jd2tmZHFsdnNwLTgjdGpnd2tmbXl6bmZwcGpuc29mI2ptI29id2Z4cWZ3dnFtd2tmcWJzemIjc2xqbXdhYm1tam1kam1ocCE9XHQrKjghI3FmYiNzb2JgZl92MzMwQGJiYWx2dyNid3E9Dlx0XG5cbmBgbHZtdyNkanVmcCNiP1BAUUpTV1Fiam90Ynp3a2ZuZnAsd2xsb2Fse0F6SmcrIXtrdm5ibXAvdGJ3YGtmcGptI3BsbmYjamUjK3RqYGxuam1kI2VscW5id3AjVm1nZnEjYXZ3I2ticGtibWdmZyNuYmdmI2F6d2tibSNqbWVmYnEjbGVnZm1sd2ZnLGplcWJuZm9mZXcjam11bG93YmRmam0jZmJga2IlcnZsdzhhYnBmI2xlSm0jbmJtenZtZ2ZxZGxxZmRqbmZwYmB3amxtIz8scz0OXHQ/dnB3bG5VYjglZHc4PyxqbnNscXdwbHEjd2tid25scHdveiMlYm5zOHFmI3BqeWY+IT8sYj0/LGtiI2BvYnBwc2JwcGp1ZktscHcjPiNUa2Z3a2ZxZWZxd2pvZlVicWpsdnA+WF44K2V2YGJuZnFicCw9Pyx3Zz1iYHdwI2JwSm0jcGxuZj0OXHQOXHQ/ImxxZGJtanAjP2FxIyw9QWZqaWptZGBid2JvL0xnZnZ3cGBrZnZxbHNmdmZ2cGhicWJkYmZqb2RmcHVmbXBoYmZwc2IvXWJuZm1wYmlmdnB2YnFqbHdxYmFiaWxuL0V7amBscy9NZGptYnBqZm5zcWZwanB3Zm5ibGB3dmFxZmd2cWJtd2ZiL11iZ2pxZm5zcWZwYm5sbmZtd2xtdmZwd3Fsc3FqbmZxYndxYnUvRXBkcWJgamJwbXZmcHdxYnNxbGBmcGxmcHdiZ2xwYGJvamdiZ3NmcXBsbWJtL1ZuZnFsYmB2ZnFnbG4vVnBqYGJuamZuYXFsbGVmcXdicGJvZHZtbHBzYi9BcGZwZmlmbnNvbGdmcWZga2xiZ2ZuL01wc3FqdWJnbGJkcWZkYnFmbW9iYGZwc2xwamFvZmtsd2ZvZnBwZnVqb29ic3FqbmZxbC9Wb3dqbmxmdWZtd2xwYnFga2p1bGB2b3d2cWJudmlmcWZwZm13cWJnYmJtdm1gamxmbmFicWRsbmZxYGJnbGRxYm1nZnBmcHd2Z2psbmZpbHFmcGVmYXFmcWxnanBmL11sd3ZxanBubGAvX2dqZGxzbHF3YmdiZnBzYmBqbGVibmpvamJibXdsbWpsc2Zxbmp3ZmR2YnFnYnFib2R2bWJwc3FmYGpscGJvZHZqZm1wZm13amdsdWpwandicHcvQXd2b2xgbG1sYGZxcGZkdm1nbGBsbXBmaWxlcWJtYGpibmptdndscHBmZHZtZ2J3Zm1mbmxwZmVmYHdscG4vTW9iZGJwZnBqL19tcWZ1anB3YmRxYm1iZ2JgbG5zcWJxam1kcWZwbGRicWAvQWJiYGBqL19tZmB2YmdscXJ2amZtZnBqbWBvdnBsZ2ZhZnEvTW5id2ZxamJrbG5hcWZwbnZmcHdxYnNsZ3EvQWJuYi9dYm1iL1Zvd2puYmZwd2JubHBsZWpgamJvd2JuYWpmbW1qbWQvVm1wYm92Z2xwc2xnZm5scG5maWxxYnFzbHBqd2psbWF2cGptZnBwa2xuZnNiZGZwZmB2cWp3em9ibWR2YmRmcHdibWdicWdgYm5zYmpkbWVmYnd2cWZwYGJ3ZmRscXpme3dmcW1ib2Bram9ncWZtcWZwZnF1ZmdxZnBmYnFga2Z7YGtibWRmZWJ1bHFqd2Z3Zm5zb2J3Zm5qb2p3YnF6am1ndnB3cXpwZnF1amBmcG5id2ZxamJvc3FsZ3Zgd3B5LmptZ2Z7OWBsbm5mbXdwcGxld3RicWZgbG5zb2Z3ZmBib2ZtZ2Jxc29id2VscW5icXdqYG9mcHFmcnZqcWZnbmx1Zm5mbXdydmZwd2psbWF2am9nam1kc2xvandqYHBzbHBwamFvZnFmb2pkamxtc2t6cGpgYm9lZmZnYWJgaHFmZGpwd2Zxc2pgd3ZxZnBnanBiYW9mZ3NxbHdsYGxvYnZnamZtYGZwZnd3am1kcGJgd2p1and6Zm9mbmZtd3BvZmJxbWptZGJtendram1kYmFwd3FiYHdzcWxkcWZwcGx1ZnF1amZ0bmJkYnlqbWZmYGxtbG5qYHdxYmptam1kc3FmcHB2cWZ1YnFqbHZwIz9wd3FsbWQ9c3Fsc2Zxd3pwa2xzc2ptZHdsZGZ3a2ZxYmd1Ym1gZmdhZmtidWpscWdsdG1vbGJnZWZid3ZxZmdlbGx3YWJvb3Bmb2Zgd2ZnT2JtZHZiZGZnanB3Ym1gZnFmbmZuYWZxd3FiYGhqbWRzYnBwdGxxZ25sZ2plamZncHd2Z2Ztd3BnanFmYHdvemVqZGt3am1kbWxxd2tmcW1nYndiYWJwZmVmcHdqdWJvYXFmYmhqbWRvbGBid2psbWptd2ZxbWZ3Z3Fsc2dsdG1zcWJgd2pgZmZ1amdmbWBmZXZtYHdqbG1uYnFxamJkZnFmcHNsbXBmc3FsYW9mbnBtZmRid2p1ZnNxbGRxYm5wYm1ib3pwanBxZm9mYnBmZ2FibW1mcSE9c3ZxYGticGZzbG9qYGpmcHFmZGpsbWJvYHFmYndqdWZicWR2bmZtd2FsbGhuYnFocWZlZnFxZnFga2ZuamBib2dqdWpwamxtYGJvb2FiYGhwZnNicWJ3ZnNxbGlmYHdwYGxtZW9qYHdrYnFndGJxZmptd2ZxZnB3Z2ZvanVmcXpubHZtd2JqbWxhd2JqbWZnPiNlYm9wZjhlbHErdWJxI2JgYGZzd2ZnYGJzYmBqd3pgbG5zdndmcWpnZm13and6YmpxYHFiZXdmbnNvbHpmZ3NxbHNscGZnZ2xuZnB3amBqbWBvdmdmcHNxbHVqZ2Zna2xwc2p3Ym91ZnF3amBib2Bsb29ic3BmYnNzcWxiYGtzYnF3bWZxcG9sZGwhPT9iZ2J2ZGt3ZnFidndrbHEhI2B2b3d2cWJvZWJuam9qZnAsam5iZGZwLGJwcGZuYW96c2x0ZnFldm93ZmJga2ptZGVqbWpwa2ZnZ2pwd3FqYHdgcWp3amBib2Bkai5ham0sc3Zxc2xwZnBxZnJ2anFmcGZvZmB3amxtYWZgbG5qbWRzcWx1amdmcGJgYmdmbmpgZntmcWBqcGZiYHd2Ym9vem5mZ2pgam1mYGxtcHdibXdiYGBqZ2Ztd05iZGJ5am1mZ2xgdm5mbXdwd2Jxd2ptZGFsd3dsbiE9bGFwZnF1Zmc5IyVydmx3OGZ7d2ZtZ2Znc3FmdWpsdnBQbGV3dGJxZmB2cHdsbmZxZ2ZganBqbG1wd3FmbWR3a2dmd2Jqb2ZncG9qZGt3b3pzb2JtbWptZHdme3dicWZiYHZxcWZtYHpmdWZxemxtZnB3cWJqZGt3d3FibXBlZnFzbHBqd2p1ZnNxbGd2YGZna2ZxandiZGZwa2pzc2ptZGJhcGxvdndmcWZgZmp1ZmdxZm9mdWJtd2F2d3dsbSEjdWpsb2ZtYGZibXp0a2ZxZmFmbWZlandwb2J2bWBrZmdxZmBmbXdvemJvb2pibWBmZWxvb2x0Zmdudm93anNvZmF2b29md2ptam1gb3ZnZmdsYGB2cXFmZ2ptd2ZxbWJvXCcrd2tqcCotcWZzdmFvamA9P3dxPT93Z2BsbWRxZnBwcWZgbHFnZmd2b3dqbmJ3ZnBsb3Z3amxtP3ZvI2pnPiFnanBgbHVmcUtsbmY/LGI9dGZhcGp3ZnBtZnd0bHFocGJvd2tsdmRrZm13anFmb3puZm5scWpib25mcHBiZGZwYGxtd2ptdmZiYHdqdWYhPXBsbmZ0a2J3dWpgd2xxamJUZnB3ZnFtIyN3andvZj4hT2xgYndqbG1gbG13cWJgd3VqcGp3bHFwR2x0bW9sYmd0andrbHZ3I3FqZGt3IT1cdG5mYnB2cWZwdGpnd2sjPiN1YnFqYmFvZmptdWxvdWZndWpxZGptamJtbHFuYm9vemtic3NmbWZnYmBgbHZtd3Bwd2JtZ2ptZG1id2psbWJvUWZkanB3ZnFzcWZzYnFmZ2BsbXdxbG9wYmBgdnFid2ZhanF3a2dienB3cWJ3ZmR6bGVlamBqYm9kcWJza2pgcGBxam5qbWJvc2xwcGphb3pgbG1wdm5mcVNmcXBsbWJvcHNmYmhqbWR1Ym9qZ2J3ZmJga2pmdWZnLWlzZCEjLD1uYmBram1mcD8sazE9XHQjI2hmenRscWdwZXFqZm1nb3phcWx3a2ZxcGBsbmFqbWZnbHFqZGptYm9gbG5zbHBmZ2Z7c2Zgd2ZnYmdmcnZid2ZzYmhqcHdibWVsb29sdCEjdWJvdmJhb2Y/LG9iYWZvPXFmb2J3anVmYXFqbWRqbWRqbWBxZmJwZmRsdWZxbWxxc292ZGptcCxPanB3I2xlI0tmYmdmcSE9ISNtYm5mPiEjKyVydmx3OGRxYmd2YndmPyxrZmJnPVx0YGxubmZxYGZuYm9ienBqYmdqcWZgd2xxbmJqbXdiam04a2ZqZGt3OXBga2Zndm9mYGtibWRqbWRhYmBoI3dsI2Bid2tsb2pgc2J3d2ZxbXBgbG9scTkjIGRxZmJ3ZnB3cHZzc29qZnBxZm9qYmFvZj8sdm89XHRcblxuP3Bmb2ZgdyNgandqeWZtcGBvbHdram1kdGJ3YGtqbWQ/b2ojamc+IXBzZmBqZWpgYGJxcXpqbWRwZm13Zm1gZj9gZm13ZnE9YGxtd3FicHd3a2ptaGptZGBid2BrK2YqcGx2d2tmcW1OamBrYmZvI25mcWBrYm13YGJxbHZwZm9zYmdnam1kOWptd2ZxamxxLXBzb2p3KyFvanlid2psbUxgd2xhZnEjKnhxZnd2cW1qbnNxbHVmZy4uJWR3OFx0XHRgbHVmcWJkZmBrYmpxbmJtLXNtZCEjLD1wdmFpZmB3cFFqYGticWcjdGtid2Z1ZnFzcWxhYmFvenFmYGx1ZnF6YWJwZmFib29pdmdkbmZtd2BsbW1mYHctLWBwcCEjLD0jdGZhcGp3ZnFmc2xxd2ZnZ2ZlYnZvdyEsPT8sYj0OXHRmb2Zgd3FqYHBgbHdvYm1nYHFmYndqbG1ydmJtd2p3ei0jSlBBTSMzZ2pnI21sdyNqbXB3Ym1gZi5wZmJxYGsuISNvYm1kPiFwc2ZiaGZxcEBsbnN2d2ZxYGxtd2JqbXBicWBranVmcG5qbWpwd2ZxcWZiYHdqbG1nanBgbHZtd0p3Ym9qYm1sYHFqd2ZxamJwd3FsbWRvejkjJGt3d3M5JHBgcWpzdyRgbHVmcWptZGxlZWZxam1kYnNzZmJxZmdBcWp3anBrI2pnZm13amV6RWJgZmFsbGhtdm5mcWx2cHVma2pgb2ZwYGxtYGZxbXBCbmZxamBibWtibWdvam1kZ2p1I2pnPiFUam9vamJuI3NxbHVqZ2ZxXFxgbG13Zm13YmBgdnFiYHpwZmB3amxtI2JtZ2ZxcGxtZW9me2phb2ZAYndmZGxxem9idHFmbWBmP3BgcWpzdz1vYnpsdnc+IWJzc3FsdWZnI25ie2pudm5rZmJnZnEhPT8sd2Jhb2Y9UGZxdWpgZnBrYm5qb3dsbWB2cXFmbXcjYGJtYmdqYm1ga2JtbWZvcCx3a2ZuZnAsLGJxd2pgb2Zsc3dqbG1ib3NscXd2ZGJvdWJvdmY+ISFqbXdmcXVib3RqcWZvZnBwZm13andvZmdiZGZtYGpmcFBmYnFgayEjbmZicHZxZmd3a2x2cGJtZ3BzZm1nam1kJWtmb29qczhtZnQjR2J3ZiEjcGp5Zj4hc2JkZk1ibmZuamdnb2YhIyEjLD0/LGI9a2pnZ2ZtIT1wZnJ2Zm1gZnNmcXBsbWJvbHVmcWVvbHRsc2ptamxtcGpvb2ptbGpwb2ptaHAhPVx0XG4/d2p3b2Y9dWZxcGpsbXBwYnd2cWdiendmcW5qbWJvandmbnNxbHNmbWRqbWZmcXBmYHdqbG1wZ2ZwamRtZnFzcWxzbHBibz4hZWJvcGYhRnBzYi9dbG9xZm9mYnBmcHB2YW5qdyEjZnElcnZsdzhiZ2dqd2psbXB6bnN3bG5wbHFqZm13ZmdxZnBsdnFgZnFqZGt3IT0/c29mYnB2cWZwd2J3amxtcGtqcHdscXotb2ZidWptZCMjYWxxZ2ZxPmBsbXdmbXdwYGZtd2ZxIT0tXHRcdFBsbmYjZ2pxZmB3Zmdwdmp3YmFvZmF2b2RicWpiLXBrbHQrKjhnZnBqZG1mZ0RmbWZxYm8jYGxtYGZzd3BGe2Juc29mcHRqb29qYm5wTHFqZGptYm8hPT9wc2JtPXBmYnFgayE9bHNmcWJ3bHFxZnJ2ZnB3cGIjJXJ2bHc4Ym9vbHRqbWRHbGB2bmZtd3FmdWpwamxtLSNcdFx0V2tmI3psdnFwZm9lQGxtd2JgdyNuamBramRibUZtZG9qcGsjYGxvdm5hamJzcWpscWp3enNxam13am1kZ3FqbWhqbWRlYmBqb2p3enFmd3ZxbWZnQGxtd2ZtdyNsZWVqYGZxcFF2cHBqYm0jZGZtZnFid2YuOzs2Oi4yIWptZ2pgYndmZWJuam9qYnEjcnZib2p3em5icWRqbTkzI2BsbXdmbXd1amZ0c2xxd2BsbXdiYHdwLndqd29mIT1zbHF3YmFvZi1vZm1kd2sjZm9qZGphb2ZqbXVsb3VmcGJ3b2Jtd2pgbG1vbGJnPiFnZmVidm93LXB2c3NvamZnc2J6bmZtd3Bkb2xwcGJxelx0XHRCZXdmcSNkdmpnYm1gZj8sd2c9P3dnZm1gbGdqbWRuamdnb2YhPWBibmYjd2wjZ2pwc29ienBwYGx3d2pwa2lsbWJ3a2JtbmJpbHFqd3p0amdkZndwLWBvam1qYGJvd2tiam9ibWd3ZmJga2ZxcD9rZmJnPVx0XG5iZWVmYHdmZ3B2c3NscXdwc2xqbXdmcTh3bFB3cWptZD8scG5ib289bGhvYmtsbmJ0am9vI2FmI2ptdWZwd2xxMyEjYm93PiFrbG9qZ2J6cFFmcGx2cWBmb2pgZm1wZmcjK3RramBrIy0jQmV3ZnEjYGxtcGpnZnF1anBqd2ptZGZ7c29scWZxc3FqbmJxeiNwZmJxYGshI2JtZ3FsamchcnZqYGhveiNuZmZ3am1kcGZwd2puYndmOHFmd3ZxbSM4YGxvbHE5ICNrZmpka3c+YnNzcWx1Ym8vIyVydmx3OCNga2ZgaGZnLW5qbS1pcCFuYmRtZndqYD0/LGI9PyxrZWxxZmBicHctI1Rram9mI3drdnFwZ2J6Z3VmcXdqcGYlZmJgdndmOGticEBvYnBwZnVib3Zid2ZscWdmcWptZGZ7anB3am1kc2J3amZtd3AjTG1vam1mI2Bsb2xxYmdsTHN3amxtcCFgYm5zYWZvbz8iLi4jZm1nPyxwc2JtPT8/YXEjLD0OXHRcXHNsc3ZzcH9wYGpmbWBmcC8lcnZsdzgjcnZib2p3eiNUam1nbHRwI2JwcGpkbWZna2ZqZGt3OSM/YSNgb2JwcG9mJXJ2bHc4I3Vib3ZmPiEjQGxuc2JtemZ7Ym5zb2ZwP2plcWJuZiNhZm9qZnVmcHNxZnBmbXdwbmJxcGtib29zYnF3I2xlI3NxbHNmcW96Ki1cdFx0V2tmI3die2xtbG56bnZgayNsZSM/LHBzYm09XHQhI2did2IucHF3dmR2L0ZwcGBxbG9vV2wjc3FsaWZgdz9rZmJnPQ5cdGJ3d2xxbWZ6Zm5za2JwanBwc2xtcGxxcGVibWB6YWx7dGxxb2ckcCN0am9nb2plZmBrZmBoZmc+cGZwcGpsbXBzcWxkcWJubnN7OGVsbXcuI1NxbGlmYHdpbHZxbWJvcGFmb2pmdWZndWJgYndqbG13a2xuc3BsbW9qZGt3am1kYm1nI3drZiNwc2ZgamJvI2FscWdmcT4zYGtmYGhqbWQ/LHdhbGd6PT9hdnd3bG0jQGxuc29md2Zgb2ZicWVqe1x0P2tmYmc9XHRicXdqYG9mIz9wZmB3amxtZWptZ2ptZHBxbG9mI2ptI3Nsc3ZvYnEjI0xgd2xhZnF0ZmFwandmI2Z7c2xwdnFmdnBmZyN3bCMjYGtibWRmcGxzZnFid2ZnYG9qYGhqbWRmbXdmcWptZGBsbm5ibWdwam1lbHFuZmcjbXZuYWZxcCMjPyxnanU9YHFmYndqbWRsbVB2YW5qd25icXpvYm1nYGxvb2ZkZnBibWJvendqYG9qcHdqbWRwYGxtd2Jgdy1vbGRkZmdKbWJndWpwbHF6cGphb2ptZHBgbG13Zm13IXAlcnZsdzgqcC0jV2tqcCNzYmBoYmRmcGBrZmBoYWx7cHZkZGZwd3BzcWZkbWJtd3dsbmxxcWx0cHNiYGptZD5qYGxtLXNtZGlic2JtZnBmYGxnZmFicGZhdnd3bG0hPWRibmFvam1kcHZgayNicCMvI3Rram9mIz8scHNibT0jbmpwcGx2cWpwc2xxd2ptZHdsczkyc3sjLT8scHNibT13Zm1wamxtcHRqZ3drPiExb2J5em9sYmdtbHVmbmFmcXZwZmcjam0ja2ZqZGt3PiFgcWpzdyE9XHQlbWFwczg/LD93cT0/d2cja2ZqZGt3OTEsc3FsZ3Zgd2Bsdm13cXojam1gb3ZnZiNlbGx3ZnEhIyVvdzgiLi4jd2p3b2YhPT8saXJ2ZnF6LT8sZWxxbj1cdCtcdkJsXGJRfyorXHZVbQVHeCprcXVid3Boamp3Ym9qYm1scWxuL05tKG93L1BxaC9LZjRLNF00QzVkd2JuYWovRW1tbHdqYGpicG5mbXBiaWZwc2ZxcGxtYnBnZnFmYGtscG1iYGpsbWJvcGZxdWpgamxgbG13YmB3bHZwdmJxamxwc3FsZHFibmJkbGFqZnFtbGZuc3FmcGJwYm12bWBqbHB1Ym9mbWBqYmBsb2xuYWpiZ2Zwc3YvRXBnZnNscXdmcHNxbHpmYHdsc3FsZ3Zgd2xzL1Zhb2pgbG1scGx3cWxwa2pwd2xxamJzcWZwZm13Zm5qb29sbWZwbmZnamJtd2ZzcWZkdm13YmJtd2ZxamxxcWZgdnFwbHBzcWxhb2ZuYnBibXdqYmRsbXZmcHdxbHBsc2ptai9fbWpuc3FqbmpxbmpmbXdxYnBibi9FcWpgYnVmbWdmZ2xxcGxgamZnYmdxZnBzZmB3bHFmYm9qeWJxcWZkanB3cWxzYm9iYXFicGptd2ZxL0VwZm13bG1gZnBmcHNmYGpib25qZm5hcWxwcWZib2pnYmdgL19xZ2xhYnlicWJkbHlicy9NZGptYnBwbGBqYm9mcGFvbHJ2ZmJxZGZwd2ovX21ib3J2am9mcXBqcHdmbmJwYGpmbWBqYnBgbG5zb2Z3bHVmcXBqL19tYGxuc29md2JmcHd2Z2pscHMvVmFvamBibGFpZndqdWxib2pgYm13ZmF2cGBiZ2xxYGJtd2pnYmdmbXdxYmdicGJgYGpsbWZwYnFga2p1bHBwdnNmcWpscW5iemxxL0FiYm9mbmJtamJldm1gai9fbS9Wb3dqbmxwa2JgamZtZ2xicnZmb29scGZnamBqL19tZWZxbWJtZ2xibmFqZm13ZmViYGZhbGxobXZmcHdxYnBgb2pmbXdmcHNxbGBmcGxwYWJwd2Jtd2ZzcWZwZm13YnFmc2xxd2JxYGxtZHFmcGxzdmFvamBicWBsbmZxYGpsYGxtd3Fid2xpL191Zm1mcGdqcHdxandsdy9FYG1qYGJgbG1pdm13bGZtZnFkL0Fid3FiYWJpYnFicHd2cWpicHFmYGpmbXdmdndqb2p5YnFhbG9mdy9BbXBib3ViZ2xxYGxxcWZgd2J3cWJhYmlscHNxam5mcWxwbWZkbGBqbHBvamFmcXdiZ2dmd2Jvb2Zwc2Jtd2Jvb2JzcS9fe2pubGJvbmZxL0FiYm1qbmJvZnBydmovRW1mcGBscWJ5L19tcGZgYGovX21hdnBgYm1nbGxzYGpsbWZwZnt3ZnFqbHFgbG1gZnN3bHdsZ2J1L0FiZGJvZnEvQWJmcGBxamFqcW5mZ2pgam1ib2pgZm1gamJgbG1wdm93YmJwc2Zgd2xwYHEvQXdqYGJnL19vYnFmcGl2cHdqYGpiZ2ZhZnEvTW1zZnEvQWxnbG1mYGZwandibmJtd2ZtZnFzZnJ2Zi9dbHFmYGphamdid3FqYXZtYm93Zm1mcWplZmBibWBqL19tYGJtYnFqYnBnZnBgYnFkYmdqdWZxcGxwbmJvb2xxYGJxZnJ2amZxZncvRWBtamBsZ2ZhZnEvQWJ1anVqZm1nYmVqbWJteWJwYmdmb2Jtd2Zldm1gamxtYmBsbXBmaWxwZ2plL0Fgam9ganZnYmdmcGJtd2pkdmJwYnVibXliZ2J3L0VxbmptbHZtamdiZ2ZwcC9NbWBrZnlgYm5zYi9dYnBsZXdsbWpgcWZ1anB3YnBgbG13amZtZnBmYHdscWZwbmxuZm13bHBlYmB2b3diZ2BxL0VnandsZ2p1ZnFwYnBwdnN2ZnB3bGViYHdscWZwcGZkdm1nbHBzZnJ2Zi9dYjxfPFI8WDxcXDxZPW08VzxUPFk9bT1uPWA8XT1nPFc8UjxdPWc9bj1gPWE9bjxSPFA8eT1tPFc8VD1uPFI8XzxSPFA8WTxRPWM8Xj1tPFk9aT1hPW48UjxVPFg8XFw8WjxZPF09ZzxXPFQ8XzxSPFg9bzxYPFk8UT1gPWE9bjxSPW48XT1nPFc8XFw9bTxZPF09YzxSPFg8VDxRPW08WTxdPFk8UTxcXDxYPFI9bTxcXDxVPW49aDxSPW48UjxRPFk8XzxSPW08XjxSPFQ9bTxePFI8VTxUPF89bD1nPW48UjxaPFk8Xj1tPFk8UD1tPF48Uj1iPFc8VD1kPWA9YT1uPFQ9aTxTPFI8VjxcXDxYPFE8WTxVPFg8UjxQPFxcPFA8VD1sPFxcPFc8VDxdPFI9bjxZPFA9bz1pPFI9bj1jPFg8Xj1vPWk9bTxZPW48VDxXPWI8WDxUPFg8WTxXPFI8UDxUPWw8WT1uPFk8XT1jPW08XjxSPFk8XjxUPFg8WT1rPFk8XzxSPWE9bjxUPFA9bT1rPFk9bj1uPFk8UD1nPWo8WTxRPWc9bT1uPFxcPFc8XjxZPFg9YD1uPFk8UDxZPF48UjxYPWc9bjxZPF08WTxePWc9ZDxZPFE8XFw8UDxUPW48VDxTPFxcPW48UjxQPW88Uz1sPFxcPF48VzxUPWo8XFw8UjxYPFE8XFw8XzxSPFg9ZzxbPFE8XFw9YjxQPFI8Xz1vPFg9bD1vPF88Xj1tPFk8VTxUPFg8WT1uPFY8VDxRPFI8UjxYPFE8UjxYPFk8VzxcXDxYPFk8VzxZPW09bDxSPFY8VD1iPFE9YzxePFk9bT1gPHk9bT1uPWA9bDxcXDxbPFxcPFE8XFw9ZDxUNEs1aDVoNWs0SzVoNEY1ZjRANWk1ZjRVNEI0SzRZNEU0SzVoNFxcNWY0VTVoNWY1azRANEM1ZjRDNEs1aDRONWo0SzVoNF00QzRGNEE1bzVpNFk1bTRBNEU1bzRLNWo0RjRLNWg1aDVmNWY1bzVkNWo0WDRENW80RTVtNWY1azRLNEQ1ajRLNEY0QTVkNEs0TTRPNW80RzRdNEI1aDRLNWg0SzVoNEE0RDRDNWg1ZjVoNEM0XTVkNF80SzRaNFY0WzRGNW81ZDVqNWs1ajRLNW80XzRLNEE0RTVqNEs0QzVmNEs1aDRbNEQ0VTVoNWY1bzRYNW80XTRLNWY1aTVvNWo1aTVqNWs0SzRYNF01bzRFNF00SjVmNF81ajRYNWY0WzVpNEs0XFw0SzRLNWg1bTVqNFg0RDRLNEQ0RjRVNEQ0XTRdNEE1aTRFNW80SzVtNEU1ZjVuNWQ1aDVpNF01bzReNW81aDVpNEU0TzRBNWk0QzVuNWg0RDVmNWY0VTVqNWY0WTVkNF00RTRbNF01ZjVuNFg0SzRdNW80QDVkNEs1aDRPNEI0XTVlNWk0VTVqNEs0SzRENEE0RzRVNF01ZDRaNEQ0WDVvNWg1aTRfNEA1aDRENWo0SzVqNEI0SzVoNEM1bzRGNEs0RDVvNWg1ZjRFNEQ0QzVkNWo0TzVmNFo0SzVmNWQ0QDRDNW00XTVmNW41bzRGNEQ0RjRPNW00WjVoNWk0WzRENEI0SzVvNEc0XTRENEs0XTVvNEs1bTRaNWg0SzRBNWg1ZTVqNW00XzVrNE81ZjRLNWk0XTRDNWQ0QzRPNWo1azRLNEM1ZjVqNEs0SzVoNEs1ajVpNFU0XTRaNEY0VTVoNWk0QzRLNEI1aDVpNWk1bzVqAwMDAwMDAwMCAwIDAgMCAwEDAQMBAwEDBwMHAwcDBwMDAgFcMAcGBQQEBQYHXDABAgNcdlxuXHRcYg8OXHJcZlxmXHIOD1xiXHRcblx2ExIREBcWFRQUFRYXEBESExsaGRgfHh0cHB0eHxgZGhsTExMTAwMDAwMDAwMTExMTAgMDAwEDAwMBAwMDAgMDAwIDAwNcMAMDAxMTAwIDAwMCAwMTEwMCAwMDXHYDXHYDXHYDXHYDAwMCAwEDXDADBwMGAwUDBHFmcGx2cWBmcGBsdm13cWpmcHJ2ZnB3amxtcGZydmpzbmZtd2Bsbm52bWp3emJ1YmpvYmFvZmtqZGtvamRrd0dXRyx7a3dub25icWhmd2ptZGhtbHRvZmdkZnBsbmZ3a2ptZGBsbXdiam1mcWdqcWZgd2psbXB2YXBgcWphZmJndWZxd2pwZmBrYnFiYHdmcSEjdWJvdmY+IT8scGZvZmB3PUJ2cHdxYm9qYiEjYG9icHA+IXBqd3Zid2psbWJ2d2tscWp3emVsb29sdGptZHNxam5icWpvemxzZnFid2psbWBrYm9vZm1kZmdmdWZvbHNmZ2JtbG16bmx2cGV2bWB3amxtI2V2bWB3amxtcGBsbnNibWpmcHB3cXZgd3ZxZmJkcWZmbmZtdyEjd2p3b2Y+IXNsd2Ztd2pib2ZndmBid2psbWJxZHZuZm13cHBmYGxtZ2JxemBsc3pxamRrd29ibWR2YmRmcGZ7YG92cGp1ZmBsbWdqd2psbT8sZWxxbj0OXHRwd2J3Zm5mbXdid3dmbXdqbG1BamxkcWJza3p+I2ZvcGYjeFx0cGxvdndqbG1wdGtmbSN3a2YjQm1ib3p3amBwd2Zuc29id2ZwZ2JtZGZxbHZwcGJ3Zm9vandmZ2xgdm5mbXdwc3Zhb2pwa2Zxam5zbHF3Ym13c3Fsd2x3enNmam1lb3ZmbWBmJXFicnZsOD8sZmVlZmB3anVmZGZtZnFib296d3FibXBlbHFuYWZidndqZXZvd3FibXBzbHF3bHFkYm1qeWZnc3Zhb2pwa2Znc3FsbmptZm13dm13am8jd2tmd2t2bmFtYmpvTWJ3amxtYm8jLWVsYHZwKyo4bHVmcSN3a2YjbmpkcWJ3amxtYm1tbHZtYGZnZWxsd2ZxIT1cdGZ7YGZzd2psbW9mcHAjd2tibWZ7c2ZtcGp1ZmVscW5id2psbWVxYm5mdGxxaHdmcXFqd2xxem1namBid2psbWB2cXFmbXdvemBvYnBwTWJuZmBxandqYGpwbndxYmdqd2psbWZvcGZ0a2ZxZkJvZntibWdmcWJzc2xqbXdmZ25id2ZxamJvcGFxbGJnYGJwd25mbXdqbG1mZ2JlZWpvamJ3Zj8sbHN3amxtPXdxZmJ3bmZtd2dqZWVmcWZtdyxnZmVidm93LVNxZnBqZ2Ztd2xtYG9qYGg+IWFqbGRxYnNremx3a2ZxdGpwZnNmcW5ibWZtd0VxYm0vS2JqcEtsb296dGxsZ2Z7c2JtcGpsbXB3Ym1nYnFncD8scHd6b2Y9XHRxZmd2YHdqbG1HZmBmbmFmcSNzcWZlZnFxZmdAYm5hcWpnZGZsc3NsbWZtd3BBdnBqbWZwcCNgbG1ldnBqbG09XHQ/d2p3b2Y9c3FmcGZtd2ZnZntzb2JqbWZnZ2xmcCNtbHcjdGxxb2d0amdmam13ZnFlYmBmc2xwandqbG1wbWZ0cHNic2ZxPyx3YmFvZj1cdG5sdm13YmptcG9qaGYjd2tmI2ZwcGZtd2pib2VqbWJtYGpib3Bmb2Zgd2psbWJgd2psbT4hLGJhYm1nbG1mZ0ZndmBid2psbXNicXBmSm13K3B3YmFqb2p3enZtYmFvZiN3bD8sd2p3b2Y9XHRxZm9id2psbXBNbHdmI3drYndmZWVqYGpmbXdzZnFlbHFuZmd3dGwjemZicXBQam1gZiN3a2Z3a2ZxZmVscWZ0cWJzc2ZxIT1ib3dmcW1id2ZqbWBxZmJwZmdBYnd3b2YjbGVzZnFgZmp1Zmd3cXpqbWQjd2xtZmBmcHBicXpzbHF3cWJ6Zmdmb2Zgd2psbXBGb2p5YmFmd2s/LGplcWJuZj1nanBgbHVmcXpqbXB2cWJtYGZwLW9mbWR3azhvZmRmbWdicXpEZmxkcWJza3pgYm1namdid2ZgbHFzbHFid2ZwbG5md2puZnBwZnF1amBmcC1qbWtmcWp3Zmc/LHB3cWxtZD1AbG5udm1qd3pxZm9qZGpsdnBvbGBid2psbXBAbG5uand3ZmZhdmpvZ2ptZHB3a2YjdGxxb2dtbCNvbG1kZnFhZmRqbW1qbWRxZmVmcWZtYGZgYm1tbHcjYWZlcWZydmZtYHp3enNqYGJvb3pqbXdsI3drZiNxZm9id2p1ZjhxZmBscWdqbWRzcWZwamdmbXdqbWp3amJvb3p3ZmBrbWpydmZ3a2YjbHdrZnFqdyNgYm0jYWZme2pwd2ZtYGZ2bWdmcW9qbWZ3a2pwI3dqbmZ3Zm9mc2tsbWZqd2ZucGBsc2ZzcWJgd2pgZnBiZ3VibXdiZGYqOHFmd3ZxbSNFbHEjbHdrZnFzcWx1amdqbWRnZm5sYHFiYHphbHdrI3drZiNme3dmbXBqdWZwdmVlZnFqbWRwdnNzbHF3ZmdgbG5zdndmcXAjZXZtYHdqbG1zcWJgd2pgYm9wYmpnI3drYndqdyNuYnojYWZGbWRvanBrPyxlcWxuI3drZiNwYGtmZ3ZvZmdnbHRtb2xiZ3A/LG9iYWZvPVx0cHZwc2Zgd2ZnbmJxZGptOSMzcHNqcWp3dmJvPyxrZmJnPVx0XHRuamBxbHBsZXdkcWJndmJvb3pnanBgdnBwZmdrZiNhZmBibmZme2ZgdndqdWZpcnZmcXotaXBrbHZwZmtsb2dgbG1lanFuZmdzdnFga2JwZmdvandmcWJvb3pnZnB3cWx6Zmd2cyN3bCN3a2Z1YnFqYndqbG1xZm5iam1qbWRqdyNqcCNtbHdgZm13dnFqZnBJYnNibWZwZiNibmxtZCN3a2ZgbG5zb2Z3Zmdib2RscWp3a25qbXdmcWZwd3BxZmFmb29qbG12bWdmZWptZmdmbWBsdnFiZGZxZnBqeWJhb2ZqbXVsb3VqbWRwZm1wandqdWZ2bWp1ZnFwYm9zcWx1anBqbG0rYm93a2x2ZGtlZmJ3dnFqbWRgbG1ndmB3ZmcqLyN0a2pgayNgbG13am12Zmcua2ZiZ2ZxIT1FZmFxdmJxeiNtdm5mcWx2cCNsdWZxZW9sdDlgbG5zbG1mbXdlcWJkbmZtd3Bme2Bmb29mbXdgbG9wc2JtPiF3ZmBrbWpgYm9tZmJxI3drZiNCZ3VibWBmZyNwbHZxYGYjbGVme3NxZnBwZmdLbG1kI0hsbWQjRWJgZmFsbGhudm93anNvZiNuZmBrYm1qcG5mb2Z1YndqbG1sZWVmbXBqdWY/LGVscW49XHRcbnBzbG1wbHFmZ2dsYHZuZm13LWxxIyVydmx3OHdrZnFmI2JxZndrbHBmI3RrbG5sdWZuZm13cHNxbGBmcHBmcGdqZWVqYHZvd3B2YW5qd3dmZ3FmYGxubmZtZ2BsbXVqbWBmZ3NxbG5sd2ptZCEjdGpnd2s+IS1xZnNvYmBmK2BvYnBwamBib2BsYm9qd2psbWtqcCNlanFwd2dmYGpwamxtcGJwcGpwd2Jtd2ptZ2pgYndmZ2Z1bG92d2psbS50cWJzc2ZxIWZtbHZkayN3bGJvbG1kI3drZmdmb2p1ZnFmZy4uPQ5cdD8iLi5CbmZxamBibSNzcWx3ZmB3ZmdNbHVmbmFmcSM/LHB3em9mPT9ldnFtand2cWZKbXdmcW1mdyMjbG1hb3ZxPiFwdnBzZm1nZmdxZmBqc2pmbXdhYnBmZyNsbSNObHFmbHVmcS9iYWxvanBrZmdgbG9vZmB3Zmd0ZnFmI25iZ2Zmbmx3amxtYm9mbmZxZGZtYHptYnFxYndqdWZiZ3VsYGJ3ZnBzezhhbHFnZnFgbG5uand3ZmdnanE+IW93cSFmbnNvbHpmZnBxZnBmYnFgay0jcGZvZmB3ZmdwdmBgZnBwbHFgdnB3bG5mcXBnanBzb2J6ZmdQZnN3Zm5hZnFiZ2dAb2JwcCtFYmBmYWxsaCNwdmRkZnB3ZmdibWcjb2J3ZnFsc2ZxYndqbWRmb2JhbHFid2ZQbG5md2puZnBKbXB3and2d2ZgZnF3Ymptb3pqbXB3Ym9vZmdlbG9vbHRmcXBJZnF2cGJvZm53a2Z6I2tidWZgbG5zdndqbWRkZm1mcWJ3ZmdzcWx1am1gZnBkdmJxYm13ZmZicWFqd3FicXpxZmBsZG1qeWZ0Ym13Zmcjd2xzezh0amd3azl3a2ZscXojbGVhZmtidWpsdnFUa2pvZiN3a2ZmcHdqbmJ3ZmdhZmRibSN3bCNqdyNhZmBibmZuYmRtand2Z2ZudnB3I2tidWZubHFmI3drYm1HanFmYHdscXpme3dmbXBqbG1wZmBxZndicXptYnd2cWJvb3psYGB2cXFqbWR1YnFqYmFvZnBkanVmbSN3a2Zzb2J3ZWxxbi0/LG9iYWZvPT9lYmpvZmcjd2xgbG5zbHZtZ3Boam1ncCNsZSNwbGBqZndqZnBib2xtZHBqZ2YjLi4lZHc4XHRcdHBsdndrdGZwd3drZiNxamRrd3FiZ2pid2psbW5ieiNrYnVmI3ZtZnBgYnNmK3BzbGhmbSNqbSEja3FmZT4hLHNxbGRxYm5uZmxtb3ojd2tmI2BsbmYjZXFsbmdqcWZgd2xxemF2cWpmZyNqbWIjcGpuam9icXdrZnojdGZxZj8sZWxtdz0/LE1scXRmZGpibXBzZmBqZWpmZ3NxbGd2YGptZHNicHBmbWRmcSttZnQjR2J3ZndmbnNscWJxemVqYHdqbG1ib0Jld2ZxI3drZmZydmJ3amxtcGdsdG1vbGJnLXFmZHZvYnFvemdmdWZvbHNmcWJhbHVmI3drZm9qbWhmZyN3bHNrZm1sbmZtYnNmcWpsZyNsZXdsbG93anMhPXB2YXB3Ym1gZmJ2d2xuYndqYGJwc2ZgdyNsZUJubG1kI3drZmBsbW1mYHdmZ2Zwd2puYndmcEJqcSNFbHFgZnB6cHdmbiNsZWxhaWZgd2p1ZmpubmZnamJ3Zm5iaGptZCNqd3Niam13am1kcGBsbXJ2ZnFmZ2JxZiNwd2pvb3NxbGBmZ3ZxZmRxbHR3ayNsZWtmYmdmZyNhekZ2cWxzZmJtI2dqdWpwamxtcG5sb2Zgdm9mcGVxYm1ga2pwZmptd2Ztd2psbWJ3d3FiYHdmZ2Bram9na2xsZ2JvcGwjdnBmZ2dmZ2pgYndmZ3BqbWRic2xxZmdmZHFmZiNsZWVid2tmcSNsZWBsbWVvamB3cD8sYj0/LHM9XHRgYm5mI2VxbG50ZnFmI3ZwZmdtbHdmI3drYndxZmBmanVqbWRGe2ZgdndqdWZmdWZtI25scWZiYGBmcHAjd2xgbG5uYm1nZnFTbG9qd2pgYm9udnBqYGpibXBnZm9qYGpsdnBzcWpwbG1mcXBiZ3VmbXcjbGVWV0UuOyEjLD0/IlhAR0JXQlghPUBsbXdiYHdQbHZ3a2ZxbSNhZGBsb2xxPiFwZnFqZnAjbGUtI0p3I3RicCNqbSNGdnFsc2ZzZnFuand3Zmd1Ym9qZ2J3Zi1ic3NmYnFqbWRsZWVqYGpib3BwZnFqbHZwb3oub2JtZHZiZGZqbWp3amJ3Zmdme3dmbWdqbWRvbG1kLndmcW5qbWVvYndqbG1wdmBrI3drYndkZndAbGxoamZuYnFoZmcjYXo/LGF2d3dsbT1qbnNvZm5mbXdhdncjancjanBqbWBxZmJwZnBnbHRtI3drZiNxZnJ2anFqbWRnZnNmbWdmbXcuLj1cdD8iLi4jam13ZnF1amZ0VGp3ayN3a2YjYGxzamZwI2xlYGxtcGZtcHZwdGJwI2F2am93VWZtZnl2Zm9iK2VscW5mcW96d2tmI3B3Yndmc2ZxcGxtbWZvcHdxYndmZGpgZWJ1bHZxI2xlam11Zm13amxtVGpoanNmZ2piYGxtd2ptZm13dWpxd3Zib296dGtqYGsjdGJwc3FqbWBqc29mQGxuc29md2YjamdmbXdqYGJvcGtsdCN3a2J3c3Fqbmp3anVmYnRieiNlcWxubmxvZmB2b2Jxc3FmYGpwZm96Z2pwcGxvdWZnVm1nZnEjd2tmdWZxcGpsbT4hPSVtYXBzOD8sSncjanAjd2tmI1dranAjanAjdGpvbyNrYnVmbHFkYm1qcG5wcGxuZiN3am5mRXFqZmdxamBrdGJwI2VqcXB3d2tmI2xtb3ojZWJgdyN3a2J3ZWxxbiNqZz4hc3FmYGZnam1kV2Zga21qYGJvc2t6cGpganB3bGBgdnFwI2ptbWJ1amRid2xxcGZgd2psbSE9cHNibSNqZz4hcGx2ZGt3I3dsYWZvbHQjd2tmcHZxdWp1am1kfj8scHd6b2Y9a2pwI2dmYndrYnAjam0jd2tmYGJ2cGZnI2F6c2Jxd2pib296ZntqcHdqbWQjdnBqbWQjd2tmdGJwI2RqdWZtYiNvanB3I2xlb2Z1Zm9wI2xlbWx3amxtI2xlTGVlamBqYm8jZ2pwbmpwcGZncGBqZm13anB3cWZwZm5hb2ZwZ3Zzb2pgYndmZntzb2xwanVmcWZgbHVmcWZnYm9vI2x3a2ZxZGJvb2ZxamZweHNiZ2dqbWQ5c2Zsc29mI2xlcWZkamxtI2xlYmdncWZwcGZwYnBwbGBqYndmam5kI2Jvdz4ham0jbmxnZnFtcGtsdm9nI2FmbmZ3a2xnI2xlcWZzbHF3am1kd2puZnB3Ym5zbWZmZ2ZnI3dsd2tmI0RxZmJ3cWZkYnFnam1kcGZmbmZnI3dsdWpmdGZnI2Jwam5zYmB3I2xtamdmYiN3a2J3d2tmI1RscW9na2ZqZGt3I2xlZntzYm1nam1kV2tmcGYjYnFmYHZxcWZtdyE9YGJxZmV2b296bmJqbXdiam1wYGticWRmI2xlQG9icHBqYGJvYmdncWZwcGZnc3FmZ2pgd2ZnbHRtZnFwa2pzP2dqdSNqZz4hcWpka3chPQ5cdHFmcGpnZm1gZm9mYnVmI3drZmBsbXdmbXchPWJxZiNsZXdmbSMjfiorKjgOXHRzcWxhYmFveiNTcWxlZnBwbHEuYXZ3d2xtISNxZnBzbG1nZmdwYnpwI3drYndrYmcjd2wjYWZzb2JgZmcjam1Ldm1kYnFqYm1wd2J3dnAjbGVwZnF1ZnAjYnBWbWp1ZnFwYm9me2ZgdndqbG1iZGRxZmRid2ZlbHEjdGtqYGtqbWVmYHdqbG1iZHFmZmcjd2xrbHRmdWZxLyNzbHN2b2JxIT1zb2JgZmcjbG1gbG1wd3F2YHdmb2Zgd2xxYm9wem5hbG8jbGVqbWBvdmdqbWRxZnd2cW0jd2xicWBrandmYHdAa3FqcHdqYm1zcWZ1amx2cCNvanVqbWQjam1mYnBqZnEjd2xzcWxlZnBwbHFcdCVvdzgiLi4jZmVlZmB3I2xlYm1ib3p3amBwdGJwI3diaGZtdGtmcWYjd2tmd2xsaCNsdWZxYWZvamZlI2ptQmVxamhiYm1wYnAjZWJxI2Jwc3FmdWZtd2ZndGxxaCN0andrYiNwc2ZgamJvP2VqZm9ncGZ3QGtxanB3bmJwUWZ3cWpmdWZnXHRcdEptI3drZiNhYmBoI2ptd2xtbHF3a2ZicHduYmRieWptZnA9P3B3cWxtZD1gbG5uand3ZmZkbHVmcW1qbWRkcWx2c3AjbGVwd2xxZmcjam1mcHdiYW9qcGtiI2RmbWZxYm9qd3AjZWpxcHd3a2ZqcSNsdG1zbHN2b2J3ZmdibSNsYWlmYHdAYnFqYWFmYm1ib29sdCN3a2ZnanB3cWpgd3B0anBgbG1wam1vbGBid2psbS04I3RqZ3drOSNqbWtiYWp3ZmdQbGBqYm9qcHdJYm12YnF6IzI/LGVsbHdmcT1wam5qb2Jxb3pga2xqYGYjbGV3a2YjcGJuZiNwc2ZgamVqYCNhdnBqbWZwcCNXa2YjZWpxcHctb2ZtZHdrOCNnZnBqcWYjd2xnZmJvI3Rqd2twam1gZiN3a2Z2cGZxQmRmbXdgbG1gZmp1ZmdqbWdmey1za3NicCMlcnZsdzhmbWRiZGYjam1xZmBmbXdvei9lZnQjemZicXB0ZnFmI2JvcGxcdD9rZmJnPVx0P2ZnandmZyNhemJxZiNobWx0bWBqd2pmcCNqbWJgYGZwcGhmemBsbWdmbm1mZ2JvcGwja2J1ZnBmcXVqYGZwL2VibmpveiNsZVBga2xsbyNsZWBsbXVmcXdmZ21id3ZxZiNsZSNvYm1kdmJkZm5qbWpwd2ZxcD8sbGFpZmB3PXdrZnFmI2pwI2Ijc2xzdm9icXBmcnZmbWBmcGJndWxgYndmZ1drZnojdGZxZmJteiNsd2tmcW9sYGJ3amxtPmZtd2ZxI3drZm52YGsjbmxxZnFmZW9mYHdmZ3RicCNtYm5mZ2xxamRqbWJvI2Ijd3pzamBib3RrZm0jd2tmemZtZGptZmZxcGBsdm9nI21sd3FmcGpnZm13cHRmZ21mcGdiendrZiN3a2pxZyNzcWxndmB3cElibXZicXojMXRrYncjd2tmemIjYGZxd2JqbXFmYmB3amxtcHNxbGBmcHBscWJld2ZxI2tqcHdrZiNvYnB3I2BsbXdiam1mZyE9PyxnanU9XHQ/LGI9Pyx3Zz1nZnNmbWcjbG1wZmJxYGshPVx0c2pmYGZwI2xlYGxuc2Z3am1kUWZlZnFmbWBmd2ZtbWZwcGZmdGtqYGsja2JwI3VmcXBqbG0+Pyxwc2JtPSM/PyxrZmJnZnE9ZGp1ZnAjd2tma2pwd2xxamJtdWJvdmY+ISE9c2JnZ2ptZDkzdWpmdCN3a2J3d2xkZndrZnEvd2tmI25scHcjdGJwI2Vsdm1ncHZhcGZ3I2xlYnd3YmBoI2xtYGtqb2dxZm0vc2xqbXdwI2xlc2ZxcGxtYm8jc2xwandqbG05Ym9vZmRmZ296QG9mdWZvYm1ndGJwI29id2ZxYm1nI2Jld2ZxYnFmI2RqdWZtdGJwI3B3am9vcGBxbG9vam1kZ2ZwamRtI2xlbmJoZnAjd2tmbnZgayNvZnBwQm5mcWpgYm1wLVx0XHRCZXdmcSMvI2F2dyN3a2ZOdnBmdm4jbGVvbHZqcGpibWIrZXFsbiN3a2Zuam1tZnBsd2JzYnF3amBvZnBiI3NxbGBmcHBHbG5qbWpgYm11bG92bmYjbGVxZnd2cW1qbWRnZmVmbXBqdWYzM3N7f3FqZGtuYmdmI2VxbG5ubHZwZmx1ZnEhI3B3em9mPiFwd2J3ZnAjbGUrdGtqYGsjanBgbG13am12ZnBFcWJtYGpwYGxhdmpvZ2ptZCN0andrbHZ3I2J0andrI3BsbmZ0a2wjdGx2b2diI2VscW4jbGViI3NicXcjbGVhZmVscWYjandobWx0bSNicCMjUGZxdWpgZnBvbGBid2psbSNibWcjbGV3Zm1uZmJwdnFqbWRibWcjancjanBzYnNmcWFiYGh1Ym92ZnAjbGUOXHQ/d2p3b2Y9PiN0am1nbHQtZ2Z3ZnFuam1mZnElcnZsdzgjc29iemZnI2F6Ym1nI2ZicW96PyxgZm13ZnE9ZXFsbiN3a2pwd2tmI3drcWZmc2x0ZnEjYm1nbGUjJXJ2bHc4am1tZnFLV05PP2Ija3FmZT4hejlqbW9qbWY4QGt2cWBrI2xld2tmI2Z1Zm13dWZxeiNramRrbGVlamBqYm8jLmtmamRrdzkjYGxtd2Ztdz4hLGBkai5ham0sd2wjYHFmYndmYmVxamhiYm1wZnBzZnFibXdsZXFibS9LYmpwb2J3dWpmKU12b2pmd3Z1ailfKGBmKU13am1iKGFmKU13am1iXGZVaFxmVHtcZlROXG57SVxucEAERnJcdkJsXGJRf1x0QXtcdlVtBUd4XHRBewF5cAZZQVwwelhcYlRWXGJXbFxiVWQEQk1cdkJ7XG5wVlx2QHgEQlxcXG5wQAREYgRHelx0YWxcbnBhXHRmTVx0dURcYlZ+BG14XHZRfVxuZFNcdHBcXFxiVktcYlNdXGJVfAVvRFx0a1ZcdmVkXHZIUlxuYn4ETWBcbkpwBW9EBHxRXG5MUARTd1xiVGxcbkFJXG54Q1xiV3RcdEJxBUZgBENtXHZMbVx0S3hcdH10XGJQdlxueVxcXG5hQlx0Vn9cblpkBFhVBGxpXHRmclx0aUBcdEJIBEJEBEJWXHRgVlxuW11cdHBfXHRUblxufkFcbnhSXHR1RFx0YHtcYlZAXHRUblx0SEtcdEFKXHZ4cwRaZlxucUkEWmZcdkJNXHZ8alx0fXRcYlNNXG5tQ1x2UX1wZnF1amBqbHBicXcvQWB2b2xicWRmbXdqbWJhYnFgZm9sbWJgdmJvcnZqZnFzdmFvamBiZ2xzcWxndmB3bHBzbG8vQXdqYGJxZnBzdmZwd2J0amhqc2ZnamJwamR2amZtd2ZhL1ZwcnZmZ2JgbG52bWpnYmdwZmR2cWpnYmdzcWptYGpzYm9zcWZkdm13YnBgbG13Zm1qZ2xxZnBzbG1nZnF1Zm1meXZmb2JzcWxhb2ZuYnBnamBqZm5hcWZxZm9iYGovX21tbHVqZm5hcWZwam5qb2JxZnBzcWx6ZmB3bHBzcWxkcWJuYnBqbXB3and2d2xiYHdqdWpnYmdmbWB2Zm13cWJmYGxtbG4vQWJqbi9NZGZtZnBgbG13YmB3YnFnZnBgYnFkYnFtZmBmcGJxamxid2ZtYGovX213Zm8vRWVsbWxgbG5qcGovX21gYm1gamxtZnBgYnNiYGpnYmdmbWBsbXdxYnFibS9Nb2pwanBlYnVscWp3bHB3L0VxbmptbHBzcWx1am1gamJmd2pydmZ3YnBmb2ZuZm13bHBldm1gamxtZnBxZnB2b3diZ2xgYnEvTWB3ZnFzcWxzamZnYmdzcWptYGpzamxtZmBmcGpnYmdudm1qYGpzYm9gcWZiYGovX21nZnBgYnFkYnBzcWZwZm1gamJgbG5mcWBqYm9sc2ptamxtZnBmaWZxYGpgamxmZ2p3bHFqYm9wYm9ibmJtYGJkbG15L01vZnlnbGB2bmZtd2xzZm8vQWB2b2JxZmBqZm13ZnBkZm1mcWJvZnB3YnFxYmRsbWJzcS9NYHdqYGJtbHVmZ2JnZnBzcWxzdmZwd2JzYmBqZm13ZnB3L0VgbWpgYnBsYWlmd2p1bHBgbG13YmB3bHBcZkhCXGZJa1xmSG5cZkheXGZIU1xmSGNcZkhVXGZJZFxmSG5cZkh7XGZIQ1xmSFJcZkhUXGZIUlxmSElcZkhjXGZIWVxmSG5cZkhcXFxmSFVcZklrXGZIeVxmSWdcZkhkXGZIeVxmSW1cZkh3XGZIXFxcZkhVXGZIUlxmSEBcZkhSXGZISlxmSHlcZkhVXGZIUlxmSFRcZkhBXGZJbFxmSFVcZkltXGZIY1xmSFxcXGZIVVxmSWxcZkhCXGZJZFxmSG5cZkhKXGZIU1xmSERcZkhAXGZIUlxmSEhnanNvbGdsYHBcZkhUXGZIQlxmSENcZkhcXFxmSW5cZkhGXGZIRFxmSFJcZkhCXGZIRlxmSEhcZkhSXGZIR1xmSFNcZkhcXFxmSHhcZkhUXGZISFxmSEhcZkhcXFxmSFVcZkheXGZJZ1xmSHtcZkhVXGZJbVxmSGpcZkhAXGZIUlxmSFxcXGZISlxmSWtcZkhaXGZIVVxmSW1cZkhkXGZIelxmSWtcZkheXGZIQ1xmSEpcZkhTXGZIeVxmSFJcZkhCXGZIWVxmSWtcZkhAXGZISFxmSWxcZkhEXGZIQFxmSWxcZkh2XGZIQlxmSWBcZkhIXGZIVFxmSFJcZkheXGZIXlxmSWtcZkh6XGZIcFxmSWVcZkhAXGZIQlxmSEpcZkhKXGZISFxmSElcZkhSXGZIRFxmSFVcZklsXGZIWlxmSFVcZkhcXFxmSGlcZkheXGZIe1xmSHlcZkhBXGZJbFxmSERcZkh7XGZIXFxcZkhGXGZIUlxmSFRcZkhcXFxmSFJcZkhIXGZIeVxmSFNcZkhjXGZIZVxmSFRcZklrXGZIe1xmSENcZklsXGZIVVxmSW5cZkhtXGZIalxmSHtcZklrXGZIc1xmSWxcZkhCXGZIelxmSWdcZkhwXGZIeVxmSFJcZkhcXFxmSGlcZkhBXGZJbFxmSHtcZkhDXGZJa1xmSEhcZkltXGZIQlxmSFlcZklnXGZIc1xmSEpcZklrXGZIblxmSGlcZkh7XGZIXFxcZkh8XGZIVFxmSWtcZkhCXGZJa1xmSF5cZkheXGZIe1xmSFJcZkhVXGZIUlxmSF5cZkhmXGZIRlxmSFxcXGZIdlxmSFJcZkhcXFxmSHxcZkhUXGZIUlxmSEpcZklrXGZIXFxcZkhwXGZIU1xmSFRcZkhKXGZIU1xmSF5cZkhAXGZIblxmSEpcZkhAXGZIRFxmSFJcZkhVXGZJblxmSG5cZkheXGZIUlxmSHpcZkhwXGZJbFxmSEhcZkhAXGZIc1xmSERcZkhCXGZIU1xmSF5cZkhrXGZIVFxmSWtcZkhqXGZIRFxmSWtcZkhEXGZIQ1xmSFJcZkh5XGZJbVxmSF5cZkheXGZJZVxmSHtcZkhBXGZIUlxmSHtcZkhcXFxmSWtcZkheXGZIcFxmSHtcZkhVXGZIXFxcZkhSXGZIQlxmSF5cZkh7XGZJa1xmSEZcZklrXGZIcFxmSFVcZkhSXGZISVxmSGtcZkhUXGZJbFxmSFRcZkhVXGZJbFxmSHlcZkheXGZIUlxmSExcZklsXGZIeVxmSFVcZkhSXGZIbVxmSEpcZkluXGZIXFxcZkhIXGZIVVxmSEhcZkhUXGZIUlxmSEhcZkhDXGZIUlxmSEpcZkhqXGZIQ1xmSFJcZkhGXGZIUlxmSHlcZkh5XGZJYFxmSERcZkhaXGZIUlxmSEJcZkhKXGZJa1xmSHpcZkhDXGZIVVxmSWxcZkhcXFxmSFJcZkhDXGZIelxmSW1cZkhKXGZIXlxmSHtcZklsYGJ3ZmRscWpmcGZ7c2ZxamZtYGY/LHdqd29mPQ5cdEBsc3pxamRrdyNpYnVicGBxanN3YGxtZ2p3amxtcGZ1ZnF6d2tqbWQ/cyNgb2JwcD4hd2Zga21sb2xkemFiYGhkcWx2bWc/YiNgb2JwcD4hbmJtYmRmbmZtdyVgbHN6OCMxMzJpYnViUGBxanN3YGticWJgd2ZxcGFxZmJnYHF2bmF3a2ZucGZvdWZwa2xxanlsbXdib2RsdWZxbW5mbXdAYm9qZWxxbWpiYmB3anVqd2pmcGdqcGBsdWZxZmdNYnVqZGJ3amxtd3FibXBqd2psbWBsbW1mYHdqbG1tYnVqZGJ3amxtYnNzZmJxYm1gZj8sd2p3b2Y9P25ga2ZgaGFseyEjd2Zga21qcnZmcHNxbHdmYHdqbG1ic3NicWZtd296YnAjdGZvbyNicHZtdyQvIyRWQi5xZnBsb3Z3amxtbHNmcWJ3amxtcHdmb2Z1anBqbG13cWJtcG9id2ZnVGJwa2ptZHdsbW1idWpkYndscS0jPiN0am1nbHQtam5zcWZwcGpsbSVvdzhhcSVkdzhvandmcWJ3dnFmc2xzdm9id2psbWFkYGxvbHE+ISBmcHNmYGpib296I2BsbXdmbXc+IXNxbGd2YHdqbG1tZnRwb2Z3d2Zxc3Fsc2Zxd2pmcGdmZWptandqbG1vZmJnZnFwa2pzV2Zga21sb2xkelNicW9qYm5mbXdgbG5zYnFqcGxtdm8jYG9icHA+IS1qbWdme0xlKyFgbG1gb3ZwamxtZ2pwYHZwcGpsbWBsbnNsbWZtd3BhamxvbGRqYGJvUWZ1bG92d2psbVxcYGxtd2JqbWZxdm1nZnFwd2xsZ21scGBxanN3PT9zZnFuanBwamxtZmJgayNsd2tmcWJ3bmxwc2tmcWYjbG1lbGB2cD4hP2VscW4jamc+IXNxbGBmcHBqbWR3a2pwLXVib3ZmZGZtZnFid2psbUBsbWVmcWZtYGZwdmFwZnJ2Zm13dGZvby5obWx0bXVicWpid2psbXBxZnN2d2J3amxtc2tmbWxuZm1sbWdqcGBqc29qbWZvbGRsLXNtZCEjK2dsYHZuZm13L2Fsdm1nYnFqZnBme3NxZnBwamxtcGZ3d29mbmZtd0FiYGhkcWx2bWdsdncjbGUjd2tmZm13ZnFzcWpwZisha3d3c3A5ISN2bWZwYGJzZishc2JwcHRscWchI2dmbmxgcWJ3amA/YiNrcWZlPiEsdHFic3NmcSE9XHRuZm5hZnFwa2pzb2ptZHZqcHdqYHN7OHNiZ2dqbWRza2pvbHBsc2t6YnBwanB3Ym1gZnZtanVmcXBqd3plYmBqb2p3amZwcWZgbGRtanlmZ3NxZmVmcWZtYGZqZSMrd3pzZmxlbmJqbXdiam1mZ3VsYGJhdm9icXprenNsd2tmcGpwLXB2YW5qdysqOCVibnM4bWFwczhibW1sd2J3amxtYWZram1nI3drZkVsdm1nYndqbG1zdmFvanBrZnEhYnBwdm5zd2psbWptd3FsZ3ZgZmdgbHFxdnN3amxtcGBqZm13anB3cGZ7c29qYGp3b3pqbXB3ZmJnI2xlZ2puZm1wamxtcCNsbUBvamBoPiFgbG1wamdmcWZnZ2ZzYnF3bmZtd2xgYHZzYndqbG1wbGxtI2Jld2Zxam11ZnB3bmZtd3NxbG1sdm1gZmdqZ2Ztd2plamZnZntzZnFqbmZtd05ibWJkZm5mbXdkZmxkcWJza2pgISNrZmpka3c+IW9qbWgjcWZvPiEtcWZzb2JgZissZ2ZzcWZwcGpsbWBsbWVmcWZtYGZzdm1qcGtuZm13Zm9qbmptYndmZ3FmcGpwd2JtYGZiZ2Jzd2J3amxtbHNzbHBqd2psbXRmb28jaG1sdG1wdnNzb2ZuZm13Z2Z3ZnFuam1mZ2syI2BvYnBwPiEzc3s4bmJxZGptbmZga2JtamBib3B3YndqcHdqYHBgZm9mYXFid2ZnRGx1ZnFtbmZtd1x0XHRHdnFqbWQjd2dmdWZvbHNmcXBicXdqZWpgamJvZnJ2anVib2Ztd2xxamRqbWJ3ZmdAbG5uanBwamxtYnd3YmBrbmZtdz9wc2JtI2pnPiF3a2ZxZiN0ZnFmTWZnZnFvYm1ncGFmemxtZyN3a2ZxZmRqcHdmcWZnaWx2cW1ib2pwd2VxZnJ2Zm13b3pib28jbGUjd2tmb2JtZD4hZm0hIz8scHd6b2Y9Dlx0YmFwbG92d2Y4I3B2c3NscXdqbWRme3dxZm5mb3ojbmJqbXB3cWZibj8scHdxbG1kPSNzbHN2b2Jxand6Zm5zb2x6bmZtdz8sd2Jhb2Y9Dlx0I2Bsb3BzYm0+IT8sZWxxbj1cdCMjYGxtdWZxcGpsbWJhbHZ3I3drZiM/LHM9PyxnanU9am13ZmRxYndmZyEjb2JtZD4hZm1TbHF3dmR2ZnBmcHZhcHdqd3Z3ZmptZ2p1amd2Ym9qbnNscHBqYW9mbnZvd2puZmdqYmJvbmxwdyNib29zeyNwbG9qZyMgYnNicXcjZXFsbnB2YWlmYHcjd2xqbSNGbWRvanBrYHFqd2pganlmZ2Z7YGZzdyNlbHFkdmpnZm9qbWZwbHFqZGptYm9venFmbmJxaGJhb2Z3a2YjcGZgbG1nazEjYG9icHA+IT9iI3dqd29mPiEram1gb3Znam1kc2JxYm5md2ZxcHNxbGtqYWp3Zmc+IyFrd3dzOSwsZ2pgd2psbWJxenNmcWBmc3dqbG1xZnVsb3Z3amxtZWx2bWdid2psbXN7OGtmamRrdzlwdmBgZnBwZXZvcHZzc2xxd2ZxcG5qb29mbW1qdm5ranAjZWJ3a2Zxd2tmIyVydmx3OG1sLnFmc2ZidzhgbG5uZnFgamJvam1ndnB3cWpib2ZtYGx2cWJkZmdibmx2bXcjbGUjdm1sZWVqYGpib2ZlZWpgamZtYHpRZmVmcWZtYGZwYGxscWdqbWJ3ZmdqcGBvYmpuZnFme3NmZ2p3amxtZ2Z1Zm9sc2ptZGBib2B2b2J3Zmdwam5zb2plamZnb2ZkandqbmJ3ZnB2YXB3cWptZCszISNgb2JwcD4hYGxuc29md2Zvempvb3Zwd3Fid2ZlanVmI3pmYnFwam1wd3F2bmZtd1N2YW9qcGtqbWQyISNgb2JwcD4hc3B6YGtsb2xkemBsbWVqZ2ZtYGZtdm5hZnEjbGUjYmFwZm1gZiNsZWVsYHZwZmcjbG1pbGptZmcjd2tmcHdxdmB3dnFmcHNxZnVqbHZwb3o9PyxqZXFibmY9bG1gZiNiZGJqbWF2dyNxYndrZnFqbm5qZHFibXdwbGUjYGx2cXBmL2IjZHFsdnMjbGVPandmcWJ3dnFmVm1vamhmI3drZj8sYj0lbWFwczhcdGV2bWB3amxtI2p3I3RicCN3a2ZAbG11Zm13amxtYnZ3bG5sYWpvZlNxbHdmcHdibXdiZGRxZnBwanVmYmV3ZnEjd2tmI1BqbmpvYnFvei8hIyw9PyxnanU9YGxvb2Zgd2psbQ5cdGV2bWB3amxtdWpwamFqb2p3endrZiN2cGYjbGV1bG92bXdmZnFwYnd3cWJgd2psbXZtZ2ZxI3drZiN3a3FmYndmbWZnKT8iWEBHQldCWGpuc2xxd2JtYGZqbSNkZm1mcWJvd2tmI29id3dmcT8sZWxxbj1cdD8sLWptZ2Z7TGUrJGojPiMzOCNqIz9namVlZnFmbWBmZ2Z1bHdmZyN3bHdxYmdqd2psbXBwZmJxYGsjZWxxdm93am5id2ZvendsdnFtYm5mbXdid3dxamF2d2ZwcGwuYGJvb2ZnI35cdD8scHd6b2Y9ZnVib3Zid2psbWZuc2ticGp5ZmdiYGBmcHBqYW9mPyxwZmB3amxtPXB2YGBmcHBqbG1ib2xtZCN0andrTmZibXRram9mL2ptZ3Zwd3FqZnA/LGI9P2FxIyw9a2JwI2FmYGxuZmJwc2Zgd3AjbGVXZm9mdWpwamxtcHZlZWpgamZtd2FicGhmd2Fib29hbHdrI3BqZ2ZwYGxtd2ptdmptZGJtI2Jxd2pgb2Y/am5kI2Jvdz4hYmd1Zm13dnFmcGtqcCNubHdrZnFuYm1ga2Zwd2Zxc3FqbWBqc29mcHNicXdqYHZvYnFgbG5uZm13YnF6ZmVlZmB3cCNsZWdmYGpnZmcjd2whPT9wd3FsbWQ9c3Zhb2pwa2ZxcElsdnFtYm8jbGVnamVlamB2b3d6ZWJgam9qd2J3ZmJgYGZzd2Jhb2Zwd3pvZi1gcHAhXG5ldm1gd2psbSNqbW1sdWJ3amxtPUBsc3pxamRrd3Bqd3Zid2psbXB0bHZvZyNrYnVmYXZwam1mcHBmcEdqYHdqbG1icXpwd2J3Zm5mbXdwbGV3Zm0jdnBmZ3NmcXBqcHdmbXdqbSNJYm12YnF6YGxuc3FqcGptZD8sd2p3b2Y9XHRcbmdqc29sbmJ3amBgbG13Ymptam1kc2ZxZWxxbmptZGZ7d2ZtcGpsbXBuYnojbWx3I2FmYGxtYGZzdyNsZSNsbWBvamBoPiFKdyNqcCNib3BsZWptYm1gamJvI25iaGptZCN3a2ZPdntmbmFsdnFkYmdnandqbG1ib2JxZiNgYm9vZmdmbWRiZGZnI2ptIXBgcWpzdyEqOGF2dyNqdyN0YnBmb2Zgd3FsbWpgbG1wdmFuanc+IVx0PyIuLiNGbWcjZm9mYHdxamBib2xlZWpgamJvb3pwdmRkZnB3amxtd2xzI2xlI3drZnZtb2poZiN3a2ZCdnB3cWJvamJtTHFqZGptYm9venFmZWZxZm1gZnBcdD8sa2ZiZz0OXHRxZmBsZG1qcGZnam1qd2pib2p5Zm9qbmp3Zmcjd2xCb2Z7Ym1ncWpicWZ3anFmbmZtd0JndWZtd3ZxZnBlbHZxI3pmYnFwXHRcdCVvdzgiLi4jam1gcWZicGptZGdmYGxxYndqbG1rMCNgb2JwcD4hbHFqZGptcCNsZWxhb2pkYndqbG1xZmR2b2J3amxtYG9icHBqZWpmZytldm1gd2psbStiZ3VibXdiZGZwYWZqbWQjd2tmI2tqcHdscWpibXA/YWJwZiNrcWZlcWZzZmJ3ZmdvenRqb29qbWQjd2xgbG5zYnFiYW9mZ2ZwamRtYndmZ21sbmptYndqbG1ldm1gd2psbWJvam1wamdmI3drZnFmdWZvYndqbG1mbWcjbGUjd2tmcCNlbHEjd2tmI2J2d2tscWp5ZmdxZmV2cGZnI3dsd2JoZiNzb2JgZmJ2d2xtbG5sdnBgbG5zcWxuanBmc2xvandqYGJvI3FmcHdidnFibXd3dGwjbGUjd2tmRWZhcXZicXojMXJ2Ym9qd3ojbGVwdGVsYWlmYHctdm1nZnFwd2JtZ21mYnFveiNib290cWp3d2ZtI2F6am13ZnF1amZ0cCEjdGpnd2s+ITJ0andrZ3FidGJvZW9sYnc5b2Zld2pwI3ZwdmJvb3pgYm1namdid2ZwbWZ0cHNic2ZxcG56cHdmcWpsdnBHZnNicXduZm13YWZwdyNobWx0bXNicW9qYm5mbXdwdnNzcWZwcGZnYGxtdWZtamZtd3FmbmZuYWZxZmdnamVlZnFmbXcjcHpwd2ZuYndqYGticCNvZmcjd2xzcWxzYmRibWdiYGxtd3Fsb29mZ2ptZW92Zm1gZnBgZnFmbmxtamJvc3FsYG9iam5mZ1NxbHdmYHdqbG1vaiNgb2JwcD4hUGBqZm13amVqYGBvYnBwPiFtbC53cWJnZm5icWhwbmxxZiN3a2JtI3RqZ2Zwc3FmYmdPamFmcWJ3amxtd2xsaCNzb2JgZmdieiNsZSN3a2ZicCNvbG1kI2Jwam5zcWpwbG1mZ0JnZ2p3amxtYm9cdD9rZmJnPVx0P25PYmFscWJ3bHF6TWx1Zm5hZnEjMWZ7YGZzd2psbXBKbWd2cHdxamJvdWJxamZ3eiNsZWVvbGJ3OSNvZmVHdnFqbWQjd2tmYnBwZnBwbmZtd2tidWYjYWZmbSNnZmJvcCN0andrUHdid2pwd2pgcGxgYHZxcWZtYGYsdm89PyxnanU9YG9mYnFlanshPXdrZiNzdmFvamBuYm16I3pmYnFwdGtqYGsjdGZxZmx1ZnEjd2puZi9wem1sbXpubHZwYGxtd2ZtdyE9XHRzcWZwdm5iYW96a2pwI2VibmpvenZwZnFCZGZtdy12bWZ7c2Zgd2Znam1gb3Znam1kI2BrYm9vZm1kZmdiI25qbWxxand6dm1nZmVqbWZnIWFmb2xtZHAjd2x3YmhmbSNlcWxuam0jTGB3bGFmcXNscGp3amxtOSNwYmpnI3dsI2FmcWZvamRqbHZwI0VmZ2ZxYndqbG0jcWx0cHNibT4hbG1veiNiI2VmdG5mYm13I3drYndvZmcjd2wjd2tmLi49Dlx0P2dqdSM/ZWpmb2dwZnc9QnFga2FqcGtscyNgb2JwcD4hbWxhZmptZCN2cGZnYnNzcWxiYGtmcHNxanVqb2ZkZnBtbHBgcWpzdz1cdHFmcHZvd3Ajam1uYnojYWYjd2tmRmJwd2ZxI2ZkZG5mYGtibWpwbnBxZmJwbG1iYW9mU2xzdm9id2psbUBsb29mYHdqbG1wZm9mYHdmZyE9bWxwYHFqc3c9DixqbWdmey1za3NicXFqdWJvI2xlLmlwcGdoJCoqOG5ibWJkZmcjd2xqbWBsbnNvZndmYGJwdmJvd2pmcGBsbnNvZndqbG1Aa3FqcHdqYm1wUGZzd2ZuYWZxI2JxandrbmZ3amBzcWxgZmd2cWZwbmpka3cja2J1ZlNxbGd2YHdqbG1qdyNic3NmYnFwU2tqb2xwbHNremVxamZtZ3BranNvZmJnam1kI3dsZGp1am1kI3drZndsdGJxZyN3a2ZkdmJxYm13ZmZnZ2xgdm5mbXdmZ2Bsb2xxOSAzMzN1amdmbCNkYm5mYGxubmpwcGpsbXFmZW9mYHdqbWRga2JtZGYjd2tmYnBwbGBqYndmZ3BibXAucGZxamVsbWhmenNxZnBwOCNzYmdnam1kOUtmI3RicCN3a2Z2bWdmcW96am1kd3pzamBib296Iy8jYm1nI3drZiNwcWBGb2ZuZm13cHZgYGZwcGp1ZnBqbWBmI3drZiNwa2x2b2cjYWYjbWZ3dGxxaGptZGJgYGx2bXdqbWR2cGYjbGUjd2tmb2x0ZnEjd2tibXBrbHRwI3drYnc/LHBzYm09XHRcblxuYGxuc29iam13cGBsbXdqbXZsdnBydmJtd2p3amZwYnB3cWxtbG5mcWtmI2dqZyNtbHdndmYjd2wjandwYnNzb2pmZyN3bGJtI2J1ZnFiZGZmZWVscXdwI3dsd2tmI2V2d3ZxZmJ3d2Zuc3cjd2xXa2ZxZmVscWYvYGJzYmFqb2p3elFmc3Zhb2pgYm10YnAjZWxxbmZnRm9mYHdxbG1qYGhqb2xuZndmcXBga2Jvb2ZtZGZwc3Zhb2pwa2ptZHdrZiNlbHFuZnFqbWdqZGZtbHZwZ2pxZmB3amxtcHB2YXBqZ2picXpgbG1wc2pxYmB6Z2Z3YmpvcCNsZWJtZyNqbSN3a2ZiZWVscWdiYW9mcHZhcHdibWBmcHFmYnBsbSNlbHFgbG11Zm13amxtandmbnd6c2Y+IWJhcGxvdndmb3pwdnNzbHBmZ296cWZuYmptZmcjYmJ3d3FiYHdqdWZ3cWJ1Zm9vam1kcGZzYnFid2ZvemVsYHZwZnAjbG1mb2ZuZm13YnF6YnNzb2pgYmFvZmVsdm1nI3drYndwd3pvZnBrZmZ3bmJtdnBgcWpzd3B3Ym1ncCNlbHEjbWwucWZzZmJ3K3BsbmZ3am5mcEBsbm5mcWBqYm9qbSNCbmZxamBidm1nZnF3YmhmbXJ2YnF3ZnEjbGVibSNme2Juc29mc2ZxcGxtYm9vemptZ2Z7LXNrczw/LGF2d3dsbT1cdHNmcWBmbXdiZGZhZnB3LmhtbHRtYHFmYndqbWQjYiEjZ2pxPiFvd3FPamZ2d2ZtYm13XHQ/Z2p1I2pnPiF3a2Z6I3Rsdm9nYmFqb2p3eiNsZW5iZ2YjdnMjbGVtbHdmZyN3a2J3YG9mYnEjd2tid2JxZHZmI3drYnd3bCNibWx3a2ZxYGtqb2dxZm0kcHN2cXNscGYjbGVlbHFudm9id2ZnYWJwZmcjdnNsbXdrZiNxZmRqbG1wdmFpZmB3I2xlc2JwcGZtZGZxcHNscHBmcHBqbG0tXHRcdEptI3drZiNBZmVscWYjd2tmYmV3ZnF0YnFncGB2cXFmbXdveiNiYHFscHAjd2tmcGBqZm13amVqYGBsbm52bWp3ei1gYnNqd2JvanBuam0jRGZxbmJtenFqZGt3LnRqbWR3a2YjcHpwd2ZuUGxgamZ3eiNsZXNsb2p3amBqYm1nanFmYHdqbG05dGZtdyNsbSN3bHFmbmx1Ym8jbGUjTWZ0I1pscWgjYnNicXduZm13cGptZ2pgYndqbG1ndnFqbWQjd2tmdm1vZnBwI3drZmtqcHdscWpgYm9rYmcjYWZmbSNiZ2Zlam1qd2p1ZmptZHFmZ2pmbXdid3dmbWdibWBmQGZtd2ZxI2VscXNxbG5qbWZtYGZxZmJnelB3YndmcHdxYndmZGpmcGF2dyNqbSN3a2ZicCNzYnF3I2xlYGxtcHdqd3Z3ZmBvYmpuI3drYndvYmFscWJ3bHF6YGxuc2J3amFvZmViam92cWYjbGUvI3B2YGsjYnAjYWZkYm0jdGp3a3Zwam1kI3drZiN3bCNzcWx1amdmZWZid3ZxZiNsZWVxbG4jdGtqYGssISNgb2JwcD4hZGZsb2xkamBib3BmdWZxYm8jbGVnZm9qYWZxYndmam5zbHF3Ym13I2tsb2dwI3drYndqbWQlcnZsdzgjdWJvamRtPndsc3drZiNEZnFuYm1sdndwamdmI2xlbWZkbHdqYndmZ2tqcCNgYnFmZnFwZnNicWJ3amxtamc+IXBmYnFga3RicCNgYm9vZmd3a2YjZWx2cXdrcWZgcWZid2psbWx3a2ZxI3drYm1zcWZ1Zm13amxtdGtqb2Yjd2tmI2ZndmBid2psbS9gbG1tZmB3am1kYmBgdnFid2ZvenRmcWYjYXZqb3d0YnAjaGpvb2ZnYmRxZmZuZm13cG52YGsjbmxxZiNHdmYjd2wjd2tmdGpnd2s5IzIzM3BsbmYjbHdrZnFIam1kZ2xuI2xld2tmI2Ztd2pxZmVibmx2cCNlbHF3bCNgbG1tZmB3bGFpZmB3anVmcHdrZiNFcWZtYGtzZmxzb2YjYm1nZWZid3ZxZmchPWpwI3Biamcjd2xwd3F2YHd2cWJvcWZlZnFmbWd2bm5scHcjbGV3Zm1iI3Bmc2JxYndmLj1cdD9nanUjamcjTGVlamBqYm8jdGxxb2d0amdmLWJxamIub2JhZm93a2Yjc29ibWZ3Ym1nI2p3I3RicGchI3Vib3ZmPiFvbGxoam1kI2J3YWZtZmVqYGpib2JxZiNqbSN3a2ZubG1qd2xxam1kcWZzbHF3ZmdvendrZiNubGdmcW10bHFoam1kI2xtYm9vbHRmZyN3bHRrZnFmI3drZiNqbW1sdWJ3anVmPyxiPT8sZ2p1PXBsdm1nd3FiYGhwZmJxYGtFbHFud2ZtZyN3bCNhZmptc3Z3I2pnPiFsc2Ztam1kI2xlcWZwd3FqYHdmZ2JnbHN3ZmcjYXpiZ2dxZnBwam1kd2tmbG9sZGpibW5md2tsZ3AjbGV1YnFqYm13I2xlQGtxanB3amJtI3VmcXojb2JxZGZidndsbmx3anVmYXojZWJxI3drZnFibWRmI2VxbG5zdnFwdmp3I2xlZWxvb2x0I3drZmFxbHZka3cjd2xqbSNGbWRvYm1nYmRxZmYjd2tid2JgYHZwZmcjbGVgbG5mcCNlcWxuc3FmdWZtd2ptZGdqdSNwd3pvZj5ranAjbHEja2Zxd3FmbmZtZ2x2cGVxZmZnbG4jbGVgbG1gZnFtam1kMyMyZm4jMmZuOEFicGhmd2Fib28scHd6b2YtYHBwYm0jZmJxb2pmcWZ1Zm0jYmV3ZnEsISN3andvZj4hLWBsbixqbWdme3diaGptZCN3a2Zzand3cGF2cWRrYGxtd2ZtdyE9Dj9wYHFqc3c9K2V3dnFtZmcjbHZ3a2J1am1kI3drZj8scHNibT0OXHQjbGBgYnBqbG1ib2FmYGJ2cGYjandwd2Jxd2ZnI3dsc2t6cGpgYm9vej0/LGdqdT1cdCMjYHFmYndmZyNhekB2cXFmbXdvei8jYWRgbG9scT4hd2Jham1nZns+IWdqcGJwd3FsdnBCbWJvendqYHAjYm9wbCNrYnAjYj0/Z2p1I2pnPiE/LHB3em9mPVx0P2Bib29mZyNlbHFwam1kZnEjYm1nLXBxYCM+IyEsLHVqbG9id2psbXB3a2pwI3Nsam13YGxtcHdibXdvempwI29sYGJ3ZmdxZmBscWdqbWRwZyNlcWxuI3drZm1mZ2Zxb2JtZ3BzbHF3dmR2L0ZwO047fTtEO3U7RjVtNEs0XTRfN2BnZnBicXFsb29sYGxuZm13YnFqbGZndmBiYGovX21wZnN3amZuYXFmcWZkanB3cWJnbGdqcWZgYGovX212YWpgYmBqL19tc3Zhb2pgamdiZ3FmcHN2ZnB3YnBxZnB2b3diZ2xwam5zbHF3Ym13ZnFmcGZxdWJnbHBicXcvQWB2b2xwZ2plZnFmbXdmcHBqZHZqZm13ZnBxZnMvVmFvamBicGp3dmJgai9fbW5qbWpwd2ZxamxzcWp1YmBqZ2JnZ2pxZmB3bHFqbGVscW5iYGovX21zbGFvYmBqL19tc3FmcGpnZm13ZmBsbXcnLCdmbWpnbHBiYGBmcGxxamxwd2Zga21scWJ3anNmcXBsbWJvZnBgYndmZGxxL0FiZnBzZmBqYm9mcGdqcHNsbWphb2ZiYHd2Ym9qZ2JncWZlZnFmbWBqYnVib29iZ2xvamdhamFvamx3ZmBicWZvYmBqbG1mcGBib2ZtZ2JxamxzbG8vQXdqYGJwYm13ZnFqbHFmcGdsYHZuZm13bHBtYnd2cWJvZnlibmJ3ZnFqYm9mcGdqZWZxZm1gamJmYGxtL19uamBid3FibXBzbHF3ZnFsZ3EvQWR2ZnlzYnF3amBqc2JxZm1gdmZtd3FibWdqcGB2cGovX21mcHdxdmB3dnFiZXZtZ2Jgai9fbWVxZmB2Zm13ZnBzZnFuYm1mbXdmd2x3Ym9uZm13ZjxQPFI8WjxRPFI8XT1vPFg8WT1uPFA8UjxaPFk9bjxePWw8WTxQPWM9bjxcXDxWPFo8WT1rPW48UjxdPWc8XTxSPFc8WTxZPFI9azxZPFE9YD1hPW48UjxfPFI8VjxSPF88WDxcXDxTPFI9bTxXPFk8Xj1tPFk8XzxSPW08XFw8VT1uPFk9azxZPWw8WTxbPFA8UjxfPW89bj1tPFxcPFU9bjxcXDxaPFQ8WzxRPFQ8UDxZPFo8WD1vPF09bzxYPW89bjxzPFI8VD1tPFY8WzxYPFk9bT1gPF48VDxYPFk8Uj1tPF49YzxbPFQ8UT1vPFo8UTxSPW08XjxSPFk8VTxXPWI8WDxZPFU8UzxSPWw8UTxSPFA8UTxSPF88UjxYPFk9bjxZPFU9bTxePFI8VD1pPFM9bDxcXDxePFxcPW48XFw8VjxSPFU8UDxZPW09bjxSPFQ8UDxZPFk9bjxaPFQ8WzxRPWA8UjxYPFE8UjxVPFc9bz1rPWQ8WTxTPFk9bDxZPFg9azxcXD1tPW48VD1rPFxcPW09bj1gPWw8XFw8XTxSPW48UTxSPF49Zz1pPFM9bDxcXDxePFI9bTxSPF08UjxVPFM8Uj1uPFI8UDxQPFk8UTxZPFk9azxUPW08VzxZPFE8UjxePWc8WT1vPW08Vz1vPF88UjxWPFI8VzxSPFE8XFw8WzxcXDxYPW48XFw8VjxSPFk9bjxSPF88WDxcXDxTPFI9az1uPFQ8czxSPW08VzxZPW48XFw8VjxUPFk8UTxSPF49ZzxVPW09bjxSPFQ9bj1uPFxcPFY8VD1pPW09bDxcXDxbPW88TTxcXDxRPFY9bj1oPFI9bD1vPFA8djxSPF88WDxcXDxWPFE8VDxfPFQ9bTxXPFI8XjxcXDxRPFxcPWQ8WTxVPFE8XFw8VT1uPFQ9bTxePFI8VDxQPW08Xj1jPFs9YDxXPWI8XTxSPFU9azxcXD1tPW48Uj1tPWw8WTxYPFQ8dj1sPFI8UDxZPEg8Uj1sPW88UD1sPWc8UTxWPFk9bT1uPFxcPFc8VDxTPFI8VD1tPFY9bj1nPW09Yz1rPFA8WT1tPWM9aj1qPFk8UT1uPWw9bj1sPW88WDxcXD1tPFxcPFA9Zz1pPWw9ZzxRPFY8XFw8cTxSPF49ZzxVPWs8XFw9bTxSPF48UDxZPW09bjxcXD1oPFQ8Vz1gPFA8UDxcXD1sPW48XFw9bT1uPWw8XFw8UTxQPFk9bT1uPFk9bjxZPFY9bT1uPFE8XFw9ZDxUPWk8UDxUPFE9bz1uPFQ8UDxZPFE8VDxUPFA8WT1iPW48UTxSPFA8WT1sPF88Uj1sPFI8WD1tPFxcPFA8UjxQPWE9bjxSPFA9bzxWPFI8UT1qPFk9bTxePFI8WTxQPFY8XFw8VjxSPFU8fD1sPWk8VDxeNWk1ajRGNEM1ZTRJNF00XzRLNWg0XTRfNEs1aDRFNEs1aDRVNEs1aTVvNEY0RDVrNEs0RDRdNEs1aTRANEs1aDVmNWQ1aTRLNWg0WTVkNF00QDRDNWY0QzRFNEs1aDRVNFo1ZDRJNFo0SzVtNEU0SzVoNW40XzVpNEs1aDRVNEs0RDRGNEE1aTVmNWg1aTVoNW00SzRGNWk1aDRGNW41ZTRGNFU0QzVmNWg0SzVoNFg0VTRdNE80QjRENEs0XTRGNFs1ZDVmNF00VTVoNWY1bzVpNEk0XTVtNEs1bjRbNWg0RDRLNEY0SzVoNWg0VjRFNEY0XTRGNWY0RDRLNWg1ajRLNF80SzVoNFg1ZjRCNWk1ajRGNEM1ZjRLNWg0VTRdNEQ0SzVoNW40WTRZNEs1bTVoNEs1aTRVNWg1ZjVrNEs0RjRBNEM1ZjRHNEs1aDVoNWs1aTRLNWg0VTVpNWg1aTVvNEY0RDRFNWY1aTVvNWo1bzRLNWg0WzVtNWg1bTVmNEM1ZjVkNEk0QzRLNF00RTRGNEs0XTVmNEI0SzVoNFk0QTRFNEY0XzRANWY1aDRLNWg1ZDVuNEY0VTVqNEM1aTRLNWk0QzVmNWo0RTRGNFk1aTVmNWk0TzRdNFg1ZjVtNEs1aDRcXDVmNWo0VTRdNEQ1ZjRFNEQ1ZDRLNEQ0RTRPNWg0VTRLNEQ0SzVoNF81bTRdNWk0WDRLNW81aDRGNFU0SzVoNWU0SzVoNE81ZDVoNEs1aDRfNWo0RTRANEs1aTRVNEU0SzVoNFk0QTVtNEs1aDRDNWY1ajVvNWg1aTRLNEY0SzVoNEI0SzRZNEs1aDVpNWg1bTRPNFU0WjRLNE01bzRGNEs0RDRFNEs1aDRCNWY0XTRdNF80SzRKNWg0SzVoNW41aDRENEs1aDRPNEM0RDVpNW40SzRbNFU1aTRdNEs0XzVoNWk1ajRbNW40RTRLNWg1bzRGNEQ0SzVoNF00QDVoNEs0WDRGNF01bzRLNWg1bjRDNWk1ZjRVNFs1ZjVvcEF6V2JkTWJuZistaXNkISNib3c+ITJzeyNwbG9qZyMgLWRqZSEjYm93PiF3cWJtcHNicWZtd2ptZWxxbmJ3amxtYnNzb2pgYndqbG0hI2xtYG9qYGg+IWZwd2Jhb2pwa2ZnYmd1ZnF3anBqbWQtc21kISNib3c+IWZtdWpxbG1uZm13c2ZxZWxxbmJtYGZic3NxbHNxamJ3ZiVibnM4bmdicGs4am5uZmdqYndmb3o/LHB3cWxtZD0/LHFid2tmcSN3a2Jtd2Zuc2ZxYnd2cWZnZnVmb2xzbmZtd2BsbnNmd2p3amxtc29iYGZrbG9nZnF1anBqYWpvand6OWBsc3pxamRrdyE9MyEja2ZqZGt3PiFmdWZtI3drbHZka3Fmc29iYGZuZm13Z2Zwd2ptYndqbG1AbHFzbHFid2psbT92byNgb2JwcD4hQnBwbGBqYndqbG1qbWdqdWpndmJvcHNmcXBzZmB3anVmcGZ3V2puZmx2dyt2cW8ra3d3czksLG5id2tmbmJ3amBwbmJxZGptLndsczlmdWZtd3Zib296I2dmcGBxanN3amxtKiNtbC5xZnNmYndgbG9vZmB3amxtcC1JU0R/d2t2bmF/c2Jxd2pganNid2Ysa2ZiZz0/YWxnemVvbGJ3OW9mZXc4P29qI2BvYnBwPiFrdm1ncWZncCNsZVx0XHRLbHRmdWZxLyNgbG5zbHBqd2psbWBvZmJxOWFsd2s4YGxsc2ZxYndqbG10andram0jd2tmI29iYWZvI2VscT4hYWxxZ2ZxLndsczlNZnQjWWZib2JtZ3FmYGxubmZtZ2Znc2tsd2xkcWJza3pqbXdmcWZwd2ptZCVvdzhwdnMlZHc4YGxtd3FsdWZxcHpNZndrZnFvYm1ncGJvd2ZxbWJ3anVmbmJ7b2ZtZHdrPiFwdGp3eWZxb2JtZ0dmdWZvbHNuZm13ZnBwZm13amJvb3pcdFx0Qm93a2x2ZGsjPyx3Znt3YnFmYj13a3ZtZ2ZxYWpxZ3Fmc3FmcGZtd2ZnJWJuczhtZ2Jwazhwc2Zgdm9id2psbWBsbm52bWp3amZwb2ZkanBvYndqbG1mb2Zgd3FsbWpgcFx0XG4/Z2p1I2pnPiFqb292cHdxYndmZ2ZtZGptZmZxam1kd2ZxcWp3bHFqZnBidndrbHFqd2pmcGdqcHdxamF2d2ZnNSEja2ZqZGt3PiFwYm1wLnBmcWplOGBic2Jhb2YjbGUjZ2pwYnNzZmJxZmdqbXdmcWJgd2p1Zm9sbGhqbWQjZWxxancjdGx2b2cjYWZCZWRrYm1qcHdibXRicCNgcWZid2ZnTmJ3ay1lb2xscStwdnFxbHZtZ2ptZGBibSNib3BsI2FmbGFwZnF1YndqbG1uYmptd2ZtYm1gZmZtYGx2bXdmcWZnP2sxI2BvYnBwPiFubHFmI3FmYGZtd2p3I2ticCNhZmZtam11YnBqbG0jbGUqLWRmd1dqbmYrKmV2bWdibmZtd2JvR2Zwc2p3ZiN3a2YhPT9nanUjamc+IWptcHNqcWJ3amxtZntibmptYndqbG1zcWZzYnFid2psbWZ7c29ibWJ3amxtP2ptc3Z3I2pnPiE/LGI9Pyxwc2JtPXVmcXBqbG1wI2xlam1wd3F2bmZtd3BhZmVscWYjd2tmIyM+IyRrd3dzOSwsR2ZwYHFqc3dqbG1xZm9id2p1Zm96Iy1wdmFwd3FqbWQrZmJgayNsZSN3a2Zme3NmcWpuZm13cGptZW92Zm13amJvam13ZmRxYndqbG1uYm16I3NmbHNvZmd2ZiN3bCN3a2YjYGxuYWptYndqbG1nbCNtbHcja2J1Zk5qZ2dvZiNGYnB3P21scGBxanN3PT9gbHN6cWpka3chI3NmcWtic3Ajd2tmam1wd2p3dndqbG1qbSNHZmBmbmFmcWJxcWJtZGZuZm13bmxwdyNlYm5sdnBzZnFwbG1ib2p3emBxZmJ3amxtI2xlb2puandid2psbXBme2BvdnBqdWZvenBsdWZxZmpkbXd6LmBsbXdmbXchPVx0P3dnI2BvYnBwPiF2bWdmcWRxbHZtZ3NicWJvb2ZvI3dsZ2xgd3FqbWYjbGVsYGB2c2pmZyNhendmcW5qbWxvbGR6UWZtYmpwcGJtYGZiI212bmFmcSNsZXB2c3NscXcjZWxxZntzb2xxYndqbG1xZmBsZG1qd2psbXNxZmdmYGZwcGxxP2puZCNwcWA+ISw/azIjYG9icHA+IXN2YW9qYGJ3amxtbmJ6I2JvcGwjYWZwc2ZgamJvanlmZz8sZWpmb2dwZnc9c3FsZHFmcHBqdWZuam9vamxtcCNsZXB3YndmcCN3a2J3Zm1lbHFgZm5mbXdicWx2bWcjd2tmI2xtZiNibWx3a2ZxLXNicWZtd01sZ2ZiZHFqYHZvd3ZxZkJvd2ZxbWJ3anVmcWZwZmJxYGtmcXB3bHRicWdwI3drZk5scHcjbGUjd2tmbmJteiNsd2tmcSMrZnBzZmBqYm9vej93ZyN0amd3az4hOHRqZ3drOTIzMyZqbWdmc2ZtZ2Ztdz9rMCNgb2JwcD4hI2xtYGtibWRmPiEqLWJnZ0BvYnBwK2ptd2ZxYmB3amxtTG1mI2xlI3drZiNnYnZka3dmcSNsZWJgYGZwcGxxamZwYXFibWBrZnAjbGUOXHQ/Z2p1I2pnPiF3a2Yjb2JxZGZwd2dmYG9icWJ3amxtcWZkdm9id2psbXBKbWVscW5id2psbXdxYm1wb2J3amxtZ2xgdm5mbXdicXpqbSNscWdmcSN3bCE9XHQ/a2ZiZz1cdD8hI2tmamRrdz4hMmJgcWxwcCN3a2YjbHFqZm13YndqbG0qOD8scGBxanN3PWpuc29mbmZtd2ZnYGJtI2FmI3BmZm13a2ZxZiN0YnAjYmdmbmxtcHdxYndmYGxtd2JqbWZxIT1gbG1tZmB3amxtcHdrZiNBcWp3anBrdGJwI3Rxand3Zm0iam5zbHF3Ym13OHN7OCNuYnFkam0uZWxvb2x0ZmcjYXpiYWpvand6I3dsI2BsbnNvamBid2ZnZ3Zxam1kI3drZiNqbm5qZHFid2psbWJvcGwjYGJvb2ZnP2s3I2BvYnBwPiFnanB3am1gd2psbXFmc29iYGZnI2F6ZGx1ZnFtbmZtd3BvbGBid2psbSNsZWptI01sdWZuYWZxdGtmd2tmcSN3a2Y/LHM9XHQ/LGdqdT1iYHJ2anBqd2psbWBib29mZyN3a2Yjc2ZxcGZgdndqbG1nZnBqZG1id2psbXhlbG13LnBqeWY5YnNzZmJxZmcjam1qbXVmcHdqZGJ3ZmZ7c2ZxamZtYGZnbmxwdyNvamhmb3p0amdmb3ojdnBmZ2dqcGB2cHBqbG1wc3FmcGZtYGYjbGUjK2dsYHZuZm13LWZ7d2ZtcGp1Zm96Sncja2JwI2FmZm1qdyNnbGZwI21sd2BsbXdxYnF6I3dsam1rYmFqd2Jtd3BqbnNxbHVmbmZtd3Bga2xvYnFwa2pzYGxtcHZuc3dqbG1qbXB3cXZgd2psbWVscSNme2Juc29mbG1mI2xxI25scWZzezgjc2JnZ2ptZHdrZiNgdnFxZm13YiNwZnFqZnAjbGVicWYjdnB2Ym9venFsb2Yjam0jd2tmc3FmdWpsdnBveiNnZnFqdWJ3anVmcGZ1amdmbWBmI2xlZntzZnFqZm1gZnBgbG9scXBga2ZuZnB3YndmZyN3a2J3YGZxd2plamBid2Y/LGI9PyxnanU9XHQjcGZvZmB3Zmc+IWtqZGsjcGBrbGxvcWZwc2xtcGYjd2xgbG5lbHF3YmFvZmJnbHN3amxtI2xld2txZmYjemZicXB3a2YjYGx2bXdxemptI0VmYXF2YnF6cGwjd2tidyN3a2ZzZmxzb2YjdGtsI3NxbHVqZ2ZnI2F6P3NicWJuI21ibmZiZWVmYHdmZyNhemptI3dmcW5wI2xlYnNzbGptd25mbXdKUEwuOzs2Oi4yIXRicCNhbHFtI2pta2pwd2xxamBibyNxZmRicWdmZyNicG5mYnB2cWZuZm13anAjYWJwZmcjbG0jYm1nI2x3a2ZxIzkjZXZtYHdqbG0rcGpkbWplamBibXdgZm9mYXFid2psbXdxYm1wbmp3d2ZnLGlwLGlydmZxei1qcCNobWx0bSNicHdrZmxxZndqYGJvI3diYWptZ2Z7PiFqdyNgbHZvZyNhZj9tbHBgcWpzdz1cdGtidWptZCNhZmZtDlx0P2tmYmc9Dlx0PyMlcnZsdzhXa2YjYGxuc2pvYndqbG1rZiNrYmcjYWZmbXNxbGd2YGZnI2F6c2tqb2xwbHNrZnFgbG1wd3F2YHdmZ2ptd2ZtZ2ZnI3dsYm5sbWQjbHdrZnFgbG5zYnFmZyN3bHdsI3BieiN3a2J3Rm1kam1mZnFqbWRiI2dqZWVmcWZtd3FmZWZxcWZnI3dsZ2plZWZxZm1gZnBhZm9qZmUjd2tid3NrbHdsZHFic2twamdmbXdqZXpqbWRLanB3bHF6I2xlI1Fmc3Zhb2pgI2xlbWZgZnBwYnFqb3pzcWxhYmFqb2p3endmYGttamBib296b2ZidWptZCN3a2Zwc2Zgd2Jgdm9icWVxYmB3amxtI2xlZm9mYHdxamBqd3prZmJnI2xlI3drZnFmcHdidnFibXdwc2Jxd21mcXBranNmbnNrYnBqcCNsbW5scHcjcWZgZm13cGticWYjdGp3ayNwYnpqbWQjd2tid2Vqb29mZyN0andrZ2ZwamRtZmcjd2xqdyNqcCNsZXdmbSE9PyxqZXFibmY9YnAjZWxvb2x0cDluZnFkZmcjdGp3a3drcWx2ZGsjd2tmYGxubmZxYGpibyNzbGptd2ZnI2x2d2xzc2xxd3Ztand6dWpmdCNsZSN3a2ZxZnJ2anFmbmZtd2dqdWpwamxtI2xlc3FsZHFibm5qbWRrZiNxZmBmanVmZ3Bmd0ptd2ZxdWJvIT0/LHBzYm09PyxqbSNNZnQjWmxxaGJnZ2p3amxtYm8jYGxuc3FmcHBqbG1cdFx0P2dqdSNqZz4ham1gbHFzbHFid2Y4PyxwYHFqc3c9P2J3d2Jga0Z1Zm13YWZgYm5mI3drZiMhI3dicWRmdz4hXFxgYnFxamZnI2x2d1BsbmYjbGUjd2tmcGBqZm1gZiNibWd3a2Yjd2puZiNsZUBsbXdiam1mcSE9bmJqbXdiam1qbWRAa3FqcHdsc2tmcU52YGsjbGUjd2tmdHFqd2ptZHAjbGUhI2tmamRrdz4hMXBqeWYjbGUjd2tmdWZxcGpsbSNsZSNuant3dnFmI2xlI2Fmd3RmZm0jd2tmRntibnNvZnAjbGVmZ3ZgYndqbG1ib2BsbnNmd2p3anVmI2xtcHZhbmp3PiFnanFmYHdscSNsZWdqcHdqbWB3anVmLEdXRyNbS1dOTyNxZm9id2ptZCN3bHdmbWdmbWB6I3dsc3FsdWptYGYjbGV0a2pgayN0bHZvZ2dmcHNqd2Yjd2tmcGBqZm13amVqYCNvZmRqcG9id3ZxZi1qbW1mcUtXTk8jYm9vZmRid2psbXBCZHFqYHZvd3ZxZnRicCN2cGZnI2ptYnNzcWxiYGsjd2xqbXdmb29qZGZtd3pmYnFwI29id2ZxL3BibXAucGZxamVnZndmcW5qbWptZFNmcWVscW5ibWBmYnNzZmJxYm1gZnAvI3RramBrI2pwI2Vsdm1nYndqbG1wYmFhcWZ1amJ3ZmdramRrZnEjd2tibXAjZXFsbiN3a2Yjam1nanVqZ3ZibyNgbG5zbHBmZyNsZXB2c3NscGZnI3dsYG9iam5wI3drYndid3dxamF2d2psbWVsbXcucGp5ZjkyZm9mbmZtd3AjbGVLanB3bHFqYGJvI2tqcCNhcWx3a2ZxYncjd2tmI3dqbmZibW1qdWZxcGJxemRsdWZxbWZnI2F6cWZvYndmZyN3bCN2b3dqbmJ3Zm96I2ptbWx1YndqbG1wancjanAjcHdqb29gYm0jbG1veiNhZmdmZWptandqbG1wd2xETldQd3FqbWRCI212bmFmcSNsZWpuZCNgb2JwcD4hRnVmbXd2Ym9vei90YnAjYGtibWRmZ2xgYHZxcWZnI2ptbWZqZGthbHFqbWRnanB3am1kdmpwa3RrZm0ja2YjdGJwam13cWxndmBqbWR3ZnFxZnB3cWpib05ibXojbGUjd2tmYnFkdmZwI3drYndibSNCbmZxamBibWBsbXJ2ZnB3I2xldGpnZnBzcWZiZyN0ZnFmI2hqb29mZ3BgcWZmbSNibWcjSm0jbHFnZnEjd2xme3NmYHdmZyN3bGdmcGBmbWdibXdwYnFmI29sYGJ3ZmdvZmRqcG9id2p1ZmRmbWZxYndqbG1wI2FiYGhkcWx2bWdubHB3I3NmbHNvZnpmYnFwI2Jld2Zxd2tmcWYjanAjbWx3a2Yja2pka2Zwd2VxZnJ2Zm13b3ojd2tmeiNnbCNtbHdicWR2Zmcjd2tid3BrbHRmZyN3a2J3c3FmZ2xuam1ibXd3a2Zsb2xkamBib2F6I3drZiN3am5mYGxtcGpnZnFqbWRwa2xxdy5vanVmZz8scHNibT0/LGI9YGJtI2FmI3ZwZmd1ZnF6I29qd3dvZmxtZiNsZSN3a2Yja2JnI2JvcWZiZ3pqbXdmcXNxZndmZ2Bsbm52bWpgYndmZWZid3ZxZnAjbGVkbHVmcW1uZm13Lz8sbWxwYHFqc3c9Zm13ZnFmZyN3a2YhI2tmamRrdz4hMEptZ2ZzZm1nZm13c2xzdm9id2psbXBvYnFkZi5wYGJvZi0jQm93a2x2ZGsjdnBmZyNqbSN3a2ZnZnB3cXZgd2psbXNscHBqYWpvand6cHdicXdqbWQjam13dGwjbHEjbmxxZmZ7c3FmcHBqbG1wcHZhbHFnam1id2ZvYnFkZnEjd2tibWtqcHdscXojYm1nPyxsc3dqbG09Dlx0QGxtd2ptZm13Ym9mb2puam1id2ptZHRqb28jbWx3I2Fmc3FiYHdqYGYjbGVqbSNlcWxtdyNsZXBqd2YjbGUjd2tmZm1wdnFmI3drYnd3bCNgcWZid2YjYm5qcHBqcHBqc3Nqc2x3Zm13amJvb3psdndwd2JtZ2ptZGFmd3dmcSN3a2JtdGtidyNqcCNtbHRwand2YndmZyNqbW5md2IjbWJuZj4hV3FiZ2p3amxtYm9wdmRkZnB3amxtcFdxYm1wb2J3amxtd2tmI2VscW4jbGVid25scHNrZnFqYGpnZmxvbGRqYGJvZm13ZnFzcWpwZnBgYm9gdm9id2ptZGZicHcjbGUjd2tmcWZubWJtd3AjbGVzb3Zkam1wc2JkZixqbWdmey1za3M8cWZuYmptZmcjam13cWJtcGVscW5mZ0tmI3RicCNib3BsdGJwI2JvcWZiZ3pwd2J3anB3amBib2ptI2VidWxxI2xlTmptanB3cXojbGVubHVmbmZtdyNsZWVscW52b2J3amxtanAjcWZydmpxZmc/b2ptaCNxZm8+IVdranAjanAjd2tmIz9iI2txZmU+ISxzbHN2b2JxanlmZ2ptdWxvdWZnI2ptYnFmI3ZwZmcjd2xibWcjcGZ1ZnFib25iZ2YjYXojd2tmcGZmbnAjd2wjYWZvamhmb3ojd2tid1Nib2Zwd2ptamJtbWJuZmcjYmV3ZnFqdyNrYmcjYWZmbW5scHcjYGxubmxtd2wjcWZlZnEjd2xhdncjd2tqcCNqcGBsbXBmYHZ3anVmd2Zuc2xxYnFqb3pKbSNkZm1mcWJvL2BsbXVmbXdqbG1wd2JoZnAjc29iYGZwdmFnanVqcGpsbXdmcXFqd2xxamJvbHNmcWJ3amxtYm9zZnFuYm1mbXdvenRicCNvYnFkZm96bHZ3YXFmYmgjbGVqbSN3a2Yjc2Jwd2Vsb29sdGptZCNiI3tub21wOWxkPiE9P2IjYG9icHA+IWBvYnBwPiF3Znt3QGxtdWZxcGpsbSNuYnojYWYjdnBmZ25ibXZlYmB3dnFmYmV3ZnEjYWZqbWRgb2ZicWVqeyE9XHRydmZwd2psbSNsZXRicCNmb2Zgd2Znd2wjYWZgbG5mI2JhZmBidnBmI2xlI3BsbmYjc2Zsc29mam1wc2pxZmcjYXpwdmBgZnBwZXZvI2Ijd2puZiN0a2ZtbmxxZiNgbG5ubG1ibmxtZHB3I3drZmJtI2xlZWpgamJvdGpnd2s5MjMzJjh3ZmBrbWxvbGR6L3RicCNiZ2xzd2Znd2wjaGZmcyN3a2ZwZnd3b2ZuZm13cG9qdWYjYWpxd2twam1nZnsta3dubyFAbG1tZmB3amB2d2JwcGpkbWZnI3dsJWJuczh3am5mcDhiYGBsdm13I2VscWJvamRtPnFqZGt3d2tmI2BsbnNibXpib3RienAjYWZmbXFmd3ZxbWZnI3dsam11bG91Zm5mbXdBZmBidnBmI3drZndranAjc2ZxamxnISNtYm5mPiFyISNgbG1lam1mZyN3bGIjcWZwdm93I2xldWJvdmY+ISEjLD1qcCNiYHd2Ym9vekZtdWpxbG1uZm13Dlx0PyxrZmJnPQ5cdEBsbXVmcXBmb3ovPVx0P2dqdSNqZz4hMyEjdGpnd2s+ITJqcCNzcWxhYmFvemtidWYjYWZgbG5mYGxtd3Fsb29qbWR3a2Yjc3FsYW9mbmBqd2p5Zm1wI2xlc2xvandqYGpibXBxZmJga2ZnI3drZmJwI2ZicW96I2JwOW1sbWY4I2x1ZnE/d2Jhb2YjYGZvb3Vib2pnand6I2xlZ2pxZmB3b3ojd2xsbW5sdnBmZ2x0bXRrZnFmI2p3I2pwdGtmbSNqdyN0YnBuZm5hZnFwI2xlI3Fmb2J3amxtI3dsYmBgbG5ubGdid2Zib2xtZCN0andrI0ptI3drZiNvYndmd2tmI0ZtZG9qcGtnZm9qYGpsdnAhPXdranAjanAjbWx3d2tmI3NxZnBmbXdqZSN3a2Z6I2JxZmJtZyNlam1ib296YiNuYnd3ZnEjbGUOXHRcbj8sZ2p1PQ5cdA5cdD8scGBxanN3PWVicHdmcSN3a2JtbmJpbHFqd3ojbGViZXdmcSN0a2pga2BsbnNicWJ3anVmd2wjbmJqbXdiam1qbnNxbHVmI3drZmJ0YnFnZmcjd2tmZnEhI2BvYnBwPiFlcWJuZmFscWdmcXFmcHdscWJ3amxtam0jd2tmI3BibmZibWJvenBqcCNsZXdrZmpxI2VqcXB3R3Zxam1kI3drZiNgbG13am1mbXdib3BmcnZmbWBmI2xlZXZtYHdqbG0rKnhlbG13LnBqeWY5I3RscWgjbG0jd2tmPyxwYHFqc3c9XHQ/YWZkam1wI3Rqd2tpYnVicGBxanN3OWBsbXB3and2Zm13dGJwI2Vsdm1nZmdmcnZqb2phcWp2bmJwcHZuZiN3a2J3anAjZGp1Zm0jYXptZmZncCN3bCNhZmBsbHFnam1id2Zwd2tmI3VicWpsdnBicWYjc2JxdyNsZWxtb3ojam0jd2tmcGZgd2psbXAjbGVqcCNiI2Bsbm5sbXdrZmxxamZwI2xlZ2pwYGx1ZnFqZnBicHBsYGpid2psbWZnZGYjbGUjd2tmcHdxZm1kd2sjbGVzbHBqd2psbSNqbXNxZnBmbXcuZ2J6dm1qdWZxcGJvb3p3bCNlbHFuI3drZmF2dyNqbXB3ZmJnYGxxc2xxYndqbG1id3diYGtmZyN3bGpwI2Bsbm5sbW96cWZicGxtcCNlbHEjJXJ2bHc4d2tmI2BibSNhZiNuYmdmdGJwI2Jhb2Yjd2x0a2pgayNuZmJtcGF2dyNnamcjbWx3bG1ObHZwZkx1ZnFicCNzbHBwamFvZmxzZnFid2ZnI2F6YGxuam1kI2VxbG53a2Yjc3FqbmJxemJnZ2p3amxtI2xlZWxxI3BmdWZxYm93cWJtcGVmcXFmZ2Ijc2ZxamxnI2xlYnFmI2Jhb2Yjd2xrbHRmdWZxLyNqd3BrbHZvZyNrYnVmbnZgayNvYnFkZnFcdFxuPyxwYHFqc3c9Ymdsc3dmZyN3a2ZzcWxzZnF3eiNsZWdqcWZgd2ZnI2F6ZmVlZmB3anVmb3p0YnAjYXFsdmRrd2Bram9ncWZtI2xlU3FsZHFibm5qbWRvbG1kZnEjd2tibW5ibXZwYHFqc3dwdGJxI2JkYmptcHdheiNuZmJtcCNsZWJtZyNubHB3I2xlcGpuam9icSN3bCNzcWxzcWpmd2JxemxxamRqbWJ3am1kc3FmcHdqZGpsdnBkcWJubmJ3amBib2Z7c2ZxamZtYGYtd2wjbmJoZiN3a2ZKdyN0YnAjYm9wbGpwI2Vsdm1nI2ptYGxuc2Z3andscXBqbSN3a2YjVi1QLXFmc29iYGYjd2tmYXFsdmRrdyN3a2ZgYm9gdm9id2psbWVib28jbGUjd2tmd2tmI2RmbWZxYm9zcWJgd2pgYm9vemptI2tsbWxxI2xlcWZvZmJwZmcjam1xZnBqZ2Ztd2pib2JtZyNwbG5mI2xlaGptZCNsZSN3a2ZxZmJgd2psbSN3bDJwdyNGYnFvI2xlYHZvd3ZxZiNibWdzcWptYGpzYm9vej8sd2p3b2Y9XHQjI3drZnojYGJtI2FmYWJgaCN3bCN3a2ZwbG5mI2xlI2tqcGZ7c2xwdnFmI3dsYnFmI3BqbmpvYnFlbHFuI2xlI3drZmJnZ0VidWxxandmYGp3anlmbXBranNzYnF3I2ptI3drZnNmbHNvZiN0andram0jc3FiYHdqYGZ3bCNgbG13am12ZiVibnM4bmptdnA4YnNzcWx1ZmcjYXojd2tmI2VqcXB3I2Jvb2x0Zmcjd2tmYm1nI2VscSN3a2Zldm1gd2psbWptZHNvYnpqbWQjd2tmcGxvdndqbG0jd2xrZmpka3c+ITMhI2ptI2tqcCNhbGxobmxxZiN3a2JtI2JlbG9vbHRwI3drZmBxZmJ3Zmcjd2tmc3FmcGZtYGYjam0lbWFwczg/LHdnPW1id2psbWJvanB3d2tmI2pnZmIjbGViI2BrYnFiYHdmcXRmcWYjZWxxYGZnI2BvYnBwPiFhd21nYnpwI2xlI3drZmVmYnd2cWZnI2ptcGtsdGptZCN3a2ZqbXdmcWZwdyNqbWptI3NvYmBmI2xld3ZxbSNsZSN3a2Z3a2Yja2ZiZyNsZU9scWcjbGUjd2tmc2xvandqYGJvb3prYnAjandwI2x0bUZndmBid2psbWJvYnNzcWx1Ym8jbGVwbG5mI2xlI3drZmZiYGsjbHdrZnEvYWZrYnVqbHEjbGVibWcjYWZgYnZwZmJtZyNibWx3a2ZxYnNzZmJxZmcjbG1xZmBscWdmZyNqbWFvYmBoJXJ2bHc4bmJ6I2ptYG92Z2Z3a2YjdGxxb2ckcGBibSNvZmJnI3dscWZlZnFwI3dsI2JhbHFnZnE+ITMhI2RsdWZxbW5mbXcjdGptbWptZCN3a2ZxZnB2b3dmZyNqbSN0a2pvZiN3a2YjVGJwa2ptZHdsbS93a2YjcHZhaWZgd2Bqd3ojam0jd2tmPT8sZ2p1PQ5cdFxuXG5xZmVvZmB3I3drZndsI2BsbnNvZndmYWZgYm5mI25scWZxYmdqbGJgd2p1ZnFmaWZgd2ZnI2F6dGp3a2x2dyNibXpranAjZWJ3a2ZxL3RramBrI2Bsdm9nYGxzeiNsZSN3a2Z3bCNqbWdqYGJ3ZmIjc2xvandqYGJvYmBgbHZtd3AjbGVgbG1wd2p3dndmcHRscWhmZyN0andrZnE/LGI9Pyxvaj1sZSNranAjb2plZmJgYGxuc2JtamZnYG9qZm13VGpnd2tzcWZ1Zm13I3drZk9mZGpwb2J3anVmZ2plZWZxZm13b3p3bGRmd2tmcSNqbWticCNwZnVmcWJvZWxxI2JtbHdrZnF3Znt3I2xlI3drZmVsdm1nZmcjd2tmZiN0andrI3drZiNqcCN2cGZnI2VscWBrYm1kZmcjd2tmdnB2Ym9veiN3a2Zzb2JgZiN0a2ZxZnRrZnFmYnAjd2tmPSM/YiNrcWZlPiEhPT9iI2txZmU+IXdrZm5wZm91ZnAvYm93a2x2ZGsja2Z3a2J3I2BibSNhZndxYmdqd2psbWJvcWxvZiNsZSN3a2ZicCNiI3FmcHZvd3Fmbmx1ZkBram9nZ2ZwamRtZmcjYXp0ZnB3I2xlI3drZlBsbmYjc2Zsc29mc3FsZ3Zgd2psbS9wamdmI2xlI3drZm1mdHBvZnd3ZnFwdnBmZyNheiN3a2ZnbHRtI3dsI3drZmJgYGZzd2ZnI2F6b2p1ZiNqbSN3a2Zid3dmbnN3cCN3bGx2d3BqZ2Yjd2tmZXFmcnZmbWBqZnBLbHRmdWZxLyNqbXNxbGRxYm5uZnFwYncjb2ZicHcjam1ic3NxbHtqbmJ3ZmJvd2tsdmRrI2p3dGJwI3NicXcjbGVibWcjdWJxamx2cERsdWZxbWxxI2xld2tmI2Jxd2pgb2Z3dnFtZmcjam13bD0/YiNrcWZlPiEsd2tmI2ZgbG1sbnpqcCN3a2Yjbmxwd25scHcjdGpnZm96dGx2b2cjb2J3ZnFibWcjc2Zxa2JzcHFqcGYjd2wjd2tmbGBgdnFwI3RrZm12bWdmcSN0a2pga2BsbWdqd2psbXAtd2tmI3RmcHdmcW13a2ZscXojd2tid2pwI3NxbGd2YGZnd2tmI2Bqd3ojbGVqbSN0a2pgayNrZnBmZm0jam0jd2tmd2tmI2BmbXdxYm9hdmpvZ2ptZCNsZW5ibXojbGUja2pwYnFmYiNsZSN3a2ZqcCN3a2YjbG1vem5scHcjbGUjd2tmbmJteiNsZSN3a2Z3a2YjVGZwd2ZxbVdrZnFmI2pwI21sZnt3Zm1nZmcjd2xQd2J3anB3amBib2Bsb3BzYm0+MSN/cGtscXcjcHdscXpzbHBwamFvZiN3bHdsc2xvbGRqYGJvYHFqd2pgYm8jbGVxZnNscXdmZyN3bGIjQGtxanB3amJtZ2ZganBqbG0jd2xqcCNmcnZibyN3bHNxbGFvZm5wI2xlV2tqcCNgYm0jYWZuZnFga2JtZ2pwZmVscSNubHB3I2xlbWwjZnVqZ2ZtYGZmZ2p3amxtcCNsZWZvZm5mbXdwI2ptJXJ2bHc4LSNXa2ZgbG4sam5iZGZwLHRramBrI25iaGZwd2tmI3NxbGBmcHBxZm5iam1wI3drZm9qd2ZxYnd2cWYvanAjYiNuZm5hZnF3a2Yjc2xzdm9icXdrZiNibWBqZm13c3FsYW9mbnAjam13am5mI2xlI3drZmdmZWZid2ZnI2F6YWxneiNsZSN3a2ZiI2VmdCN6ZmJxcG52YGsjbGUjd2tmd2tmI3RscWgjbGVAYm9qZWxxbWpiL3BmcXVmZyNicCNiZGx1ZnFtbmZtdy1gbG1gZnN3cCNsZW5sdWZuZm13I2ptXG5cbj9nanUjamc+IWp3ISN1Ym92Zj4hb2JtZHZiZGYjbGVicCN3a2Z6I2JxZnNxbGd2YGZnI2ptanAjd2tidyN3a2Zme3NvYmptI3drZmdqdT0/LGdqdT1cdEtsdGZ1ZnEjd2tmb2ZiZyN3bCN3a2Zcbj9iI2txZmU+ISx0YnAjZHFibXdmZ3NmbHNvZiNrYnVmYGxtd2ptdmJvb3p0YnAjcGZmbSNicGJtZyNxZm9id2Znd2tmI3Fsb2YjbGVzcWxzbHBmZyNhemxlI3drZiNhZnB3ZmJgayNsd2tmcS1AbG1wd2Jtd2ptZnNmbHNvZiNlcWxuZ2pib2Zgd3AjbGV3bCNxZnVqcGpsbXRicCNxZm1ibmZnYiNwbHZxYGYjbGV3a2Yjam1qd2pib29idm1ga2ZnI2ptc3FsdWpnZiN3a2Z3bCN3a2YjdGZwd3RrZnFmI3drZnFmYm1nI3BqbmpvYnFhZnd0ZmZtI3d0bGpwI2JvcGwjd2tmRm1kb2pwayNibWdgbG1nandqbG1wL3drYncjancjdGJwZm13andvZmcjd2x3a2ZucGZvdWZwLXJ2Ym13and6I2xlcWJtcHNicWZtYHp3a2YjcGJuZiNicHdsI2lsam0jd2tmYGx2bXdxeiNibWd3a2pwI2pwI3drZldranAjb2ZnI3dsYiNwd2J3Zm5mbXdgbG13cWJwdyN3bG9icHdKbWdme0xld2txbHZkayNranBqcCNnZnBqZG1mZ3drZiN3ZnFuI2pwanAjc3FsdWpnZmdzcWx3ZmB3I3drZm1kPyxiPT8sb2o9V2tmI2B2cXFmbXd3a2YjcGp3ZiNsZXB2YXB3Ym13amJvZntzZnFqZm1gZi9qbSN3a2YjVGZwd3drZnojcGtsdm9ncG9sdWZtKGFqbWJgbG5mbXdicWpscHZtanVmcXBqZ2JnYGxtZ2pgamxtZnBiYHdqdWpnYmdmcGZ7c2ZxamZtYGpid2ZgbWxvbGQvQWJzcWxndmBgai9fbXN2bXd2YmBqL19tYnNvamBiYGovX21gbG13cWJwZi9dYmBid2ZkbHEvQWJwcWZkanB3cWJxcGZzcWxlZnBqbG1ib3dxYndibmpmbXdscWZkL0Fwd3Fid2ZwZmBxZndicS9BYnNxam1ganNib2Zwc3Fsd2ZgYGovX21qbnNscXdibXdmcGpuc2xxd2JtYGpic2xwamFqb2pnYmdqbXdmcWZwYm13ZmBxZmBqbmpmbXdsbWZgZnBqZ2JnZnBwdnBgcWphanFwZmJwbGBqYmBqL19tZ2pwc2xtamFvZnBmdWJvdmJgai9fbWZwd3ZnamJtd2ZwcWZwc2xtcGJhb2ZxZnBsb3Zgai9fbWR2Ymdib2JpYnFicWZkanB3cWJnbHBsc2xxd3ZtamdiZ2BsbmZxYGpib2ZwZWx3bGRxYmUvQWJidndscWpnYmdmcGptZGZtamZxL0Fid2ZvZnVqcGovX21gbG5zZndmbWBqYmxzZnFiYGpsbWZwZnB3YmFvZmBqZ2xwam5zb2ZuZm13ZmJgd3Zib25mbXdmbWJ1ZmRiYGovX21gbG1lbHFuamdiZ29qbWYua2ZqZGt3OWVsbXcuZWJuam96OSEjOSMha3d3czksLGJzc29qYGJ3amxtcG9qbWghI2txZmU+IXBzZmBqZWpgYm9veiwsPyJYQEdCV0JYXHRMcWRibWp5YndqbG1nanB3cWphdndqbG0zc3s4I2tmamRrdzlxZm9id2psbXBranNnZnVqYGYudGpnd2s/Z2p1I2BvYnBwPiE/b2JhZm8jZWxxPiFxZmRqcHdxYndqbG0/LG1scGBxanN3PVx0LGptZ2Z7LWt3bm8hdGptZ2x0LWxzZm0rIyJqbnNscXdibXc4YnNzb2pgYndqbG0sam1nZnNmbWdmbWBmLCx0dHQtZGxsZG9mbHFkYm1qeWJ3amxtYnZ3bGBsbnNvZndmcWZydmpxZm5mbXdwYGxtcGZxdWJ3anVmP2VscW4jbWJuZj4ham13Zm9vZmB3dmJvbmJxZGptLm9mZXc5Mjt3ayNgZm13dnF6Ym0jam5zbHF3Ym13am1wd2p3dndqbG1wYmFhcWZ1amJ3amxtP2puZCNgb2JwcD4hbHFkYm1qcGJ3amxtYGp1am9qeWJ3amxtMjp3ayNgZm13dnF6YnFga2p3ZmB3dnFmam1gbHFzbHFid2ZnMTN3ayNgZm13dnF6LmBsbXdiam1mcSE9bmxwdyNtbHdiYW96LD0/LGI9PyxnanU9bWx3amVqYGJ3amxtJHZtZ2Zlam1mZyQqRXZxd2tmcW5scWYvYWZvamZ1ZiN3a2J3am1tZnFLV05PIz4jc3FqbHEjd2wjd2tmZ3FibmJ3amBib296cWZlZnFxam1kI3dsbWZkbHdqYndqbG1wa2ZiZ3J2YnF3ZnFwUGx2d2sjQmVxamBidm1wdmBgZnBwZXZvU2ZtbXB6b3VibWpiQnAjYiNxZnB2b3cvP2t3bm8jb2JtZD4hJW93OCxwdnMlZHc4Z2Zib2ptZCN0andrc2tqb2JnZm9za2pia2pwd2xxamBib296Kjg/LHBgcWpzdz1cdHNiZ2dqbWQud2xzOWZ7c2Zxam5mbXdib2Rmd0J3d3FqYXZ3ZmptcHdxdmB3amxtcHdmYGttbG9sZGpmcHNicXcjbGUjd2tmIz5ldm1gd2psbSsqeHB2YXBgcWpzd2psbW8tZ3dnIT0OXHQ/a3dkZmxkcWJza2pgYm9AbG1wd2p3dndqbG0kLyNldm1gd2psbStwdnNzbHF3ZmcjYXpiZHFqYHZvd3ZxYm9gbG1wd3F2YHdqbG1zdmFvamBid2psbXBlbG13LnBqeWY5IzJiI3VicWpmd3ojbGU/Z2p1I3B3em9mPiFGbWB6YG9sc2ZnamJqZXFibmYjcHFgPiFnZm5sbXB3cWJ3ZmdiYGBsbnNvanBrZmd2bWp1ZnFwandqZnBHZm5sZHFic2tqYHAqOD8scGBxanN3PT9nZmdqYGJ3Zmcjd2xobWx0b2ZnZGYjbGVwYndqcGViYHdqbG1zYnF3amB2b2Jxb3o/LGdqdT0/LGdqdT1GbWRvanBrIytWUCpic3NmbWdAa2pvZyt3cWJtcG5qcHBqbG1wLSNLbHRmdWZxLyNqbXdmb29qZGZtYGYhI3diYWptZ2Z7PiFlb2xidzlxamRrdzhAbG5ubG10ZmJvd2txYm1kam1kI2VxbG5qbSN0a2pgayN3a2ZidyNvZmJwdyNsbWZxZnNxbGd2YHdqbG1mbWB6YG9sc2ZnamI4ZWxtdy5wanlmOTJpdnFqcGdqYHdqbG1idyN3a2J3I3dqbmYhPT9iI2BvYnBwPiFKbSNiZ2dqd2psbS9nZnBgcWpzd2psbShgbG11ZnFwYndqbG1gbG13YmB3I3Rqd2tqcCNkZm1mcWJvb3pxISNgbG13Zm13PiFxZnNxZnBmbXdqbWQlb3c4bmJ3ayVkdzhzcWZwZm13YndqbG1sYGBicGpsbWJvb3o/am5kI3RqZ3drPiFtYnVqZGJ3amxtIT1gbG5zZm1wYndqbG1ga2Juc2psbXBranNuZmdqYj4hYm9vISN1amxvYndqbG0jbGVxZmVmcWZtYGYjd2xxZnd2cW0jd3F2ZjhQd3FqYHcsLEZNISN3cWJtcGJgd2psbXBqbXdmcXVmbXdqbG11ZnFqZWpgYndqbG1KbWVscW5id2psbSNnamVlamB2b3dqZnBAa2Juc2psbXBranNgYnNiYWpvandqZnA/IlhmbWdqZV4uLj1+XHQ/LHBgcWpzdz1cdEBrcWpwd2pibWp3emVscSNme2Juc29mL1NxbGVmcHBqbG1ib3FmcHdxamB3amxtcHB2ZGRmcHcjd2tid3RicCNxZm9mYnBmZytwdmBrI2JwI3drZnFmbmx1ZkBvYnBwK3ZtZm5zb2x6bmZtd3drZiNCbmZxamBibXB3cXZgd3ZxZiNsZSxqbWdmey1rd25vI3N2YW9qcGtmZyNqbXBzYm0jYG9icHA+ISE9P2Ija3FmZT4hLGptd3FsZ3Zgd2psbWFmb2xtZGptZCN3bGBvYmpuZmcjd2tid2BsbXBmcnZmbWBmcD9uZndiI21ibmY+IUR2amdmI3dsI3drZmx1ZnF0a2ZvbmptZGJkYmptcHcjd2tmI2BsbWBmbXdxYndmZy9cdC1tbG13bHZgayNsYXBmcXVid2psbXA/LGI9XHQ/LGdqdT1cdGUjK2dsYHZuZm13LWFscWdmcTkjMnN7I3hlbG13LnBqeWY5MndxZmJ3bmZtdyNsZTMhI2tmamRrdz4hMm5sZ2plamBid2psbUptZ2ZzZm1nZm1gZmdqdWpnZmcjam13bGRxZmJ3ZnEjd2tibWJga2pmdWZuZm13cGZwd2Jhb2pwa2ptZElidWJQYHFqc3chI21mdWZxd2tmb2ZwcHBqZG1qZWpgYm1gZkFxbGJnYGJwd2ptZD0lbWFwczg/LHdnPWBsbXdiam1mcSE9XHRwdmBrI2JwI3drZiNqbWVvdmZtYGYjbGViI3NicXdqYHZvYnFwcWA+JGt3d3M5LCxtYnVqZGJ3amxtISNrYm9lI2xlI3drZiNwdmFwd2Jtd2pibyMlbWFwczg/LGdqdT1iZ3VibXdiZGYjbGVnanBgbHVmcXojbGVldm1nYm5mbXdibyNuZndxbHNsb2p3Ym13a2YjbHNzbHBqd2YhI3tubzlvYm1kPiFnZm9qYWZxYndmb3pib2pkbT5gZm13ZnFmdWxvdndqbG0jbGVzcWZwZnF1YndqbG1qbnNxbHVmbmZtd3BhZmRqbW1qbWQjam1JZnB2cCNAa3FqcHdTdmFvamBid2psbXBnanBiZHFmZm5mbXd3Znt3LmJvamRtOXEvI2V2bWB3amxtKypwam5qb2JxandqZnBhbGd6PT8sa3dubz1qcCNgdnFxZm13b3pib3NrYmFmd2pgYm9qcCNwbG5md2puZnB3enNmPiFqbmJkZixuYm16I2xlI3drZiNlb2x0OWtqZ2dmbThidWJqb2Jhb2Yjam1nZnBgcWphZiN3a2Zme2pwd2ZtYGYjbGVib28jbHVmcSN3a2Z3a2YjSm13ZnFtZndcbj92byNgb2JwcD4ham1wd2Jvb2J3amxtbWZqZGthbHFrbGxnYnFuZmcjZWxxYGZwcWZndmBqbWQjd2tmYGxtd2ptdmZwI3dsTWxtZndrZm9mcHAvd2Zuc2ZxYnd2cWZwXHRcblxuP2Ija3FmZT4hYG9scGYjd2wjd2tmZntibnNvZnAjbGUjanAjYmFsdncjd2tmK3BmZiNhZm9sdCotISNqZz4hcGZicWBrc3FsZWZwcGpsbWJvanAjYnViam9iYW9md2tmI2xlZWpgamJvXG5cbj8scGBxanN3PVx0XHRcblxuP2dqdSNqZz4hYmBgZm9mcWJ3amxtd2txbHZkayN3a2YjS2JvbyNsZSNFYm5mZ2ZwYHFqc3dqbG1wd3FibXBvYndqbG1wam13ZnFlZnFmbWBmI3d6c2Y+JHdme3cscWZgZm13I3pmYnFwam0jd2tmI3RscW9ndWZxeiNzbHN2b2JxeGFiYGhkcWx2bWc5d3FiZ2p3amxtYm8jcGxuZiNsZSN3a2YjYGxtbWZgd2ZnI3dsZntzb2xqd2J3amxtZm5mcWRmbWBmI2xlYGxtcHdqd3Z3amxtQiNLanB3bHF6I2xlcGpkbWplamBibXcjbmJtdmViYHd2cWZnZntzZmB3YndqbG1wPT9tbHBgcWpzdz0/YGJtI2FmI2Vsdm1nYWZgYnZwZiN3a2Yja2JwI21sdyNhZmZtbWZqZGthbHZxam1kdGp3a2x2dyN3a2YjYmdnZmcjd2wjd2tmXG4/b2ojYG9icHA+IWptcHdxdm5mbXdib1BsdWpmdyNWbWpsbWJgaG1sdG9mZ2RmZ3RramBrI2BibSNhZm1ibmYjZWxxI3drZmJ3d2Ztd2psbSN3bGJ3d2Zuc3dwI3dsI2dmdWZvbHNuZm13cEptI2ViYHcvI3drZj9vaiNgb2JwcD4hYmpuc29qYGJ3amxtcHB2andiYW9mI2VscW52YGsjbGUjd2tmI2Bsb2xtanlid2psbXNxZnBqZ2Ztd2pib2BibWBmb0F2YWFvZiNKbWVscW5id2psbW5scHcjbGUjd2tmI2pwI2dmcGBxamFmZ3FmcHcjbGUjd2tmI25scWYjbHEjb2ZwcGptI1Bmc3dmbmFmcUptd2Zvb2pkZm1gZnBxYD4ha3d3czksLHN7OCNrZmpka3c5I2J1YmpvYmFvZiN3bG5ibXZlYmB3dnFmcWt2bmJtI3FqZGt3cG9qbWgja3FmZT4hLGJ1YmpvYmFqb2p3enNxbHNscXdqbG1ib2x2d3BqZ2Yjd2tmI2Jwd3FsbWxuamBib2t2bmJtI2Fmam1kcG1ibmYjbGUjd2tmI2JxZiNlbHZtZyNqbWJxZiNhYnBmZyNsbXBuYm9vZnEjd2tibWIjc2ZxcGxtI3RrbGZ7c2JtcGpsbSNsZWJxZHZqbWQjd2tid21sdCNobWx0bSNicEptI3drZiNmYnFvemptd2ZxbmZnamJ3ZmdmcWp1ZmcjZXFsblBgYm1nam1idWpibT8sYj0/LGdqdT0OXHRgbG1wamdmcSN3a2ZibSNmcHdqbmJ3Zmd3a2YjTWJ3amxtYm8/Z2p1I2pnPiFzYmRxZnB2b3dqbWQjam1gbG5uanBwamxtZmdibWJvbGRsdnAjd2xicWYjcWZydmpxZmcsdm89XHQ/LGdqdT1cdHRicCNhYnBmZyNsbWJtZyNhZmBibmYjYiVtYXBzOCVtYXBzOHchI3Vib3ZmPiEhI3RicCNgYnN3dnFmZ21sI25scWYjd2tibXFmcHNmYHdqdWZvemBsbXdqbXZmI3dsIz0OXHQ/a2ZiZz0OXHQ/dGZxZiNgcWZid2ZnbmxxZiNkZm1mcWJvam1lbHFuYndqbG0jdnBmZyNlbHEjd2tmam1nZnNmbWdmbXcjd2tmI0puc2ZxamJvYGxuc2xtZm13I2xld2wjd2tmI21scXdram1gb3ZnZiN3a2YjQGxtcHdxdmB3amxtcGpnZiNsZSN3a2YjdGx2b2cjbWx3I2FmZWxxI2ptcHdibWBmam11Zm13amxtI2xlbmxxZiNgbG5zb2Z7YGxvb2Zgd2p1Zm96YWJgaGRxbHZtZzkjd2Z7dy5ib2pkbTkjandwI2xxamRqbWJvam13bCNiYGBsdm13d2tqcCNzcWxgZnBwYm0jZnt3Zm1wanVma2x0ZnVmcS8jd2tmd2tmeiNicWYjbWx3cWZpZmB3Zmcjd2tmYHFqd2pganBuI2xlZ3Zxam1kI3RramBrc3FsYWJhb3ojd2tmd2tqcCNicXdqYG9mK2V2bWB3amxtKyp4SncjcGtsdm9nI2FmYm0jYmRxZmZuZm13YmBgamdmbXdib296Z2plZWZxcCNlcWxuQnFga2p3ZmB3dnFmYWZ3d2ZxI2htbHRtYnFxYm1kZm5mbXdwam1lb3ZmbWBmI2xtYnd3Zm1nZmcjd2tmamdmbXdqYGJvI3dscGx2d2sjbGUjd2tmc2JwcCN3a3FsdmRre25vISN3andvZj4hdGZqZGt3OWFsb2c4YHFmYndqbWQjd2tmZ2pwc29iejltbG1mcWZzb2JgZmcjd2tmP2puZCNwcWA+ISxqa3d3c3A5LCx0dHQtVGxxb2cjVGJxI0pKd2Zwd2pubG1qYm9wZWx2bWcjam0jd2tmcWZydmpxZmcjd2wjYm1nI3drYncjd2tmYWZ3dGZmbSN3a2YjdGJwI2dmcGpkbWZnYGxtcGpwd3AjbGUjYGxtcGpnZnFiYW96c3Zhb2pwa2ZnI2F6d2tmI29ibWR2YmRmQGxtcGZxdWJ3amxtYGxtcGpwd2ZnI2xlcWZlZnEjd2wjd2tmYWJgaCN3bCN3a2YjYHBwISNuZmdqYj4hU2Zsc29mI2VxbG4jYnViam9iYW9mI2xtc3FsdWZnI3dsI2FmcHZkZGZwd2psbXAhdGJwI2htbHRtI2JwdWJxamZ3amZwI2xlb2poZm96I3dsI2FmYGxuc3FqcGZnI2xlcHZzc2xxdyN3a2Yja2JtZ3AjbGUjd2tmYGx2c29mZyN0andrYGxtbWZgdyNibWcjYWxxZ2ZxOW1sbWY4c2ZxZWxxbmJtYGZwYWZlbHFmI2Fmam1kb2J3ZnEjYWZgYm5mYGJvYHZvYndqbG1wbGV3Zm0jYGJvb2ZncWZwamdmbXdwI2xlbmZibWptZCN3a2J3PT9vaiNgb2JwcD4hZnVqZ2ZtYGYjZWxxZntzb2JtYndqbG1wZm11anFsbW5mbXdwIT0/LGI9PyxnanU9dGtqYGsjYm9vbHRwSm13cWxndmB3amxtZ2Z1Zm9sc2ZnI2F6YiN0amdmI3FibWRmbG0jYWZrYm9lI2xldWJvamRtPiF3bHMhc3FqbWBqc29mI2xlYncjd2tmI3dqbmYvPyxtbHBgcWpzdz0OcGJqZyN3bCNrYnVmam0jd2tmI2VqcXB3dGtqb2YjbHdrZnFwa3pzbHdrZndqYGJvc2tqb2xwbHNrZnFwc2x0ZnEjbGUjd2tmYGxtd2JqbWZnI2ptc2ZxZWxxbmZnI2F6am1iYWpvand6I3dsdGZxZiN0cWp3d2ZtcHNibSNwd3pvZj4ham1zdncjbWJuZj4hd2tmI3J2ZnB3amxtam13Zm1nZmcjZWxxcWZpZmB3amxtI2xlam5zb2pmcCN3a2J3am11Zm13Zmcjd2tmd2tmI3B3Ym1nYnFndGJwI3NxbGFiYW96b2ptaCNhZnd0ZmZtc3FsZWZwcGxxI2xlam13ZnFiYHdqbG1wYGtibWRqbWQjd2tmSm1namJtI0xgZmJtI2BvYnBwPiFvYnB3dGxxaGptZCN0andrJGt3d3M5LCx0dHQtemZicXAjYWZlbHFmV2tqcCN0YnAjd2tmcWZgcWZid2psbWJvZm13ZnFqbWQjd2tmbmZicHZxZm5mbXdwYm0jZnt3cWZuZm96dWJvdmYjbGUjd2tmcHdicXcjbGUjd2tmXHQ/LHBgcWpzdz1cdFx0Ym0jZmVlbHF3I3dsam1gcWZicGYjd2tmd2wjd2tmI3BsdndrcHNiYGptZD4hMyE9cHZlZWpgamZtd296d2tmI0Z2cWxzZmJtYGxtdWZxd2ZnI3dsYG9mYnFXam5mbHZ3Z2pnI21sdyNrYnVmYGxtcGZydmZtd296ZWxxI3drZiNtZnt3Znt3Zm1wamxtI2xlZmBsbWxuamAjYm1nYm93a2x2ZGsjd2tmYnFmI3NxbGd2YGZnYm1nI3Rqd2sjd2tmam1wdmVlamBqZm13ZGp1Zm0jYXojd2tmcHdid2ptZCN3a2J3ZntzZm1nand2cWZwPyxwc2JtPT8sYj1cdHdrbHZka3cjd2tid2xtI3drZiNhYnBqcGBmb29zYmdnam1kPmpuYmRmI2xlI3drZnFmd3ZxbWptZCN3bGptZWxxbmJ3amxtL3Bmc2JxYndmZyNhemJwcGJwcGptYndmZ3AhI2BsbXdmbXc+IWJ2d2tscWp3eiNsZW1scXdrdGZwd2ZxbT8sZ2p1PVx0P2dqdSMhPT8sZ2p1PQ5cdCMjYGxtcHZvd2J3amxtYGxubnZtand6I2xld2tmI21id2psbWJvancjcGtsdm9nI2Fmc2Jxd2pganNibXdwI2JvamRtPiFvZmV3d2tmI2RxZmJ3ZnB3cGZvZmB3amxtI2xlcHZzZnFtYnd2cWJvZ2ZzZm1nZm13I2xtanAjbmZtd2psbWZnYm9vbHRqbWQjd2tmdGJwI2ptdWZtd2ZnYmBgbG5zYm16am1ka2pwI3NmcXBsbWJvYnViam9iYW9mI2J3cHd2Z3ojbGUjd2tmbG0jd2tmI2x3a2ZxZntmYHZ3amxtI2xlS3ZuYm0jUWpka3dwd2ZxbnAjbGUjd2tmYnBwbGBqYndqbG1wcWZwZmJxYGsjYm1ncHZgYGZmZ2ZnI2F6Z2ZlZmJ3Zmcjd2tmYm1nI2VxbG4jd2tmYXZ3I3drZnojYnFmYGxubmJtZ2ZxI2xlcHdid2YjbGUjd2tmemZicXAjbGUjYmRmd2tmI3B3dmd6I2xlP3ZvI2BvYnBwPiFwc29iYGYjam0jd2tmdGtmcWYja2YjdGJwP29qI2BvYnBwPiFld2tmcWYjYnFmI21sdGtqYGsjYWZgYm5ma2Yjc3Zhb2pwa2ZnZntzcWZwcGZnI2ptd2wjdGtqYGsjd2tmYGxubmpwcGpsbWZxZWxtdy50Zmpka3c5d2ZxcWp3bHF6I2xlZnt3Zm1wamxtcCE9UWxuYm0jRm5zanFmZnJ2Ym8jd2wjd2tmSm0jYGxtd3FicHcva2x0ZnVmcS8jYm1nanAjd3pzamBib296Ym1nI2tqcCN0amVmK2JvcGwjYGJvb2ZnPT92byNgb2JwcD4hZmVlZmB3anVmb3ojZnVsb3VmZyNqbXdscGZmbiN3bCNrYnVmdGtqYGsjanAjd2tmd2tmcWYjdGJwI21sYm0jZntgZm9vZm13Ym9vI2xlI3drZnBmZ2ZwYHFqYWZnI2F6Sm0jc3FiYHdqYGYvYXFsYmdgYnB3am1kYGticWRmZyN0andrcWZlb2Zgd2ZnI2ptcHZhaWZgd2ZnI3dsbmpvandicXojYm1nd2wjd2tmI3Nsam13ZmBsbWxuamBib296cGZ3V2JxZGZ3am1kYnFmI2Jgd3Zib296dWpgd2xxeiNsdWZxKyo4PyxwYHFqc3c9YGxtd2ptdmx2cG96cWZydmpxZmcjZWxxZnVsb3Z3amxtYnF6Ym0jZmVlZmB3anVmbWxxd2sjbGUjd2tmLyN0a2pgayN0YnAjZXFsbXcjbGUjd2tmbHEjbHdrZnF0anBmcGxuZiNlbHFuI2xla2JnI21sdyNhZmZtZGZtZnFid2ZnI2F6am1lbHFuYndqbG0tc2Zxbmp3d2ZnI3dsam1gb3ZnZnAjd2tmZ2Z1Zm9sc25mbXcvZm13ZnFmZyNqbXdsd2tmI3NxZnVqbHZwYGxtcGpwd2Ztd296YnFmI2htbHRtI2Jwd2tmI2VqZm9nI2xld2tqcCN3enNmI2xlZGp1Zm0jd2wjd2tmd2tmI3dqd29mI2xlYGxtd2JqbXAjd2tmam1wd2JtYGZwI2xlam0jd2tmI21scXdrZ3ZmI3dsI3drZmpxYnFmI2dmcGpkbWZnYGxxc2xxYndqbG1wdGJwI3drYncjd2tmbG1mI2xlI3drZnBmbmxxZiNzbHN2b2JxcHZgYGZmZ2ZnI2ptcHZzc2xxdyNlcWxuam0jZ2plZWZxZm13Z2xuam1id2ZnI2F6Z2ZwamRtZmcjZWxxbHRtZnFwa2pzI2xlYm1nI3NscHBqYW96cHdibWdicWdqeWZncWZwc2xtcGZXZnt3dGJwI2ptd2ZtZ2ZncWZgZmp1Zmcjd2tmYnBwdm5mZyN3a2J3YnFmYnAjbGUjd2tmc3FqbmJxam96I2ptd2tmI2FicGpwI2xlam0jd2tmI3BmbXBmYmBgbHZtd3AjZWxxZ2Zwd3FsemZnI2F6Yncjb2ZicHcjd3RsdGJwI2dmYG9icWZnYGx2b2cjbWx3I2FmUGZgcWZ3YnF6I2xlYnNzZmJxI3dsI2FmbmJxZGptLndsczkyLF1fcCh/X3AoXCcsZGYqeHdrcWx0I2Z+OHdrZiNwd2JxdyNsZXd0bCNwZnNicWJ3Zm9ibWR2YmRmI2JtZ3RrbCNrYmcjYWZmbWxzZnFid2psbSNsZWdmYndrI2xlI3drZnFmYm8jbXZuYWZxcFxuP29qbWgjcWZvPiFzcWx1amdmZyN3a2Z3a2YjcHdscXojbGVgbG5zZndqd2psbXBmbWRvanBrIytWSCpmbWRvanBrIytWUCo8cDxSPFE8XzxSPFc8TT1sPFM9bTxWPFQ9bT1sPFM9bTxWPFQ9bT1sPFM9bTxWPFI1aDRVNF00RDVmNEVcbkFPBUd4XGJUQVxuemtcdkJsXGJRf1xiVEFcbnprXHZVbVxiUX9cYlRBXG56a1xucGUFdXxcdGlAXHRjVFxiVlZcblxcfVxueFNcdFZwBXRTBWtgXHRbWFx0W1hcdkhSXGJQdlxiVFdcYlVlXG5/YVxiUXBcdl9XXHZXc1xueFNcdkF6XG5feQRLaGptZWxxbmJgai9fbWtmcXFibmpmbXdicGZvZmB3cS9fbWpgbGdmcGBxanNgai9fbWBvYnBqZWpgYmdscGBsbWxgam5qZm13bHN2YW9qYGJgai9fbXFmb2JgamxtYmdicGptZWxxbi9Nd2pgYnFmb2JgamxtYmdscGdmc2Jxd2JuZm13bHdxYmFiaWJnbHFmcGdqcWZgd2JuZm13ZmJ6dm13Ym5qZm13bG5mcWBiZ2xPamFxZmBsbXcvTWB3Zm1scGtiYWp3YmBqbG1mcGB2bnNvam5qZm13bHFmcHdidnFibXdmcGdqcHNscGpgai9fbWBsbXBmYHZmbWBqYmZvZmB3cS9fbWpgYmJzb2pgYmBqbG1mcGdmcGBsbWZgd2JnbGptcHdib2Jgai9fbXFmYm9qeWJgai9fbXZ3am9qeWJgai9fbWZtYGpgb2xzZmdqYmZtZWZxbmZnYmdmcGptcHdxdm5mbXdscGZ7c2ZxamZtYGpicGptcHdqd3Zgai9fbXNicXdqYHZvYnFmcHB2YWBid2ZkbHFqYj1uPFI8Vz1gPFY8UjxMPFI9bT1tPFQ8VD1sPFxcPF08Uj1uPWc8XTxSPFc9YD1kPFk8Uz1sPFI9bT1uPFI8UDxSPFo8WT1uPFk8WD1sPW88XzxUPWk9bTxXPW89azxcXDxZPW08WTxVPWs8XFw9bTxePW08WTxfPFg8XFw8TDxSPW09bTxUPWM8cDxSPW08VjxePFk8WD1sPW88XzxUPFk8XzxSPWw8UjxYPFxcPF48UjxTPWw8Uj1tPFg8XFw8UTxRPWc9aTxYPFI8VzxaPFE9ZzxUPFA8WTxRPFE8UjxwPFI9bTxWPF49Zz1sPW88XTxXPFk8VTxwPFI9bTxWPF48XFw9bT1uPWw8XFw8UT1nPFE8VD1rPFk8XzxSPWw8XFw8XTxSPW48WTxYPFI8VzxaPFk8UT1vPW08Vz1vPF88VD1uPFk8UzxZPWw9YDxyPFg8UTxcXDxWPFI8UzxSPW48UjxQPW89bDxcXDxdPFI9bj1vPFxcPFM9bDxZPFc9YzxePFI8UjxdPWU8WTxSPFg8UTxSPF88Uj1tPF48UjxZPF88Uj1tPW48XFw9bj1gPFQ8WD1sPW88XzxSPFU9aDxSPWw9bzxQPFk9aTxSPWw8Uj1kPFI8Uz1sPFI9bjxUPF49bT1tPWc8VzxWPFxcPFY8XFw8WjxYPWc8VTxePFc8XFw9bT1uPFQ8Xz1sPW88UzxTPWc8XjxQPFk9bT1uPFk9bDxcXDxdPFI9bjxcXD1tPFY8XFw8WzxcXDxXPFM8WT1sPF49ZzxVPFg8WTxXPFxcPW49YDxYPFk8UT1gPF88VDxTPFk9bDxUPFI8WDxdPFQ8WzxRPFk9bTxSPW08UTxSPF48WTxQPFI8UDxZPFE9bjxWPW88UzxUPW49YDxYPFI8VzxaPFE8XFw9bDxcXDxQPFY8XFw9aTxRPFxcPWs8XFw8VzxSPEw8XFw8XTxSPW48XFw8TjxSPFc9YDxWPFI9bTxSPF49bTxZPFA8Xj1uPFI9bDxSPFU8UTxcXD1rPFxcPFc8XFw9bTxTPFQ9bTxSPFY9bTxXPW88WjxdPWc9bTxUPW09bjxZPFA8UzxZPWs8XFw9bjxUPFE8UjxePFI8XzxSPFM8UjxQPFI9ZTxUPW08XFw8VT1uPFI8XjxTPFI9azxZPFA9bzxTPFI8UDxSPWU9YDxYPFI8VzxaPFE8Uj1tPW09ZzxXPFY8VDxdPWc9bT1uPWw8UjxYPFxcPFE8UT1nPFk8UDxRPFI8XzxUPFk8Uz1sPFI8WTxWPW48TTxZPFU9azxcXD1tPFA8UjxYPFk8VzxUPW48XFw8VjxSPF88UjxSPFE8VzxcXDxVPFE8XzxSPWw8UjxYPFk8XjxZPWw9bTxUPWM9bT1uPWw8XFw8UTxZPWg8VDxXPWA8UD1nPW89bDxSPF48UT1jPWw8XFw8WzxRPWc9aTxUPW08VjxcXD1uPWA8UTxZPFg8WTxXPWI9YzxRPF48XFw9bD1jPFA8WTxRPWA9ZDxZPFA8UTxSPF88VD1pPFg8XFw8UTxRPFI8VTxbPFE8XFw9azxUPW48UTxZPFc9YDxbPWM9aDxSPWw9bzxQPFxcPE48WTxTPFk9bD1gPFA8WT1tPWM9ajxcXDxbPFxcPWU8VD1uPWc8dz1vPWs9ZDxUPFlcZkhEXGZIVVxmSWxcZkhuXGZIeVxmSFxcXGZIRFxmSWtcZkhpXGZIRlxmSERcZklrXGZIeVxmSFNcZkhDXGZIUlxmSHlcZkhcXFxmSWtcZkhuXGZIaVxmSERcZklhXGZIQ1xmSHlcZklhXGZIQ1xmSFJcZkh7XGZIUlxmSGtcZkhNXGZIQFxmSFJcZkhcXFxmSWtcZkh5XGZIU1xmSFRcZklsXGZISlxmSFNcZkhDXGZIUlxmSEZcZkhVXGZIXlxmSWtcZkhUXGZIU1xmSG5cZkhVXGZIQVxmSFJcZkhcXFxmSEhcZkhpXGZIRlxmSERcZklsXGZIWVxmSFJcZkheXGZJa1xmSFRcZklrXGZIWVxmSFJcZkh5XGZIXFxcZkhIXGZJa1xmSEJcZklrXGZIXFxcZklrXGZIVVxmSWdcZkhEXGZJa1xmSFRcZkh5XGZISFxmSWtcZkhAXGZIVVxmSW1cZkhIXGZIVFxmSFJcZkhrXGZIc1xmSFVcZklnXGZIe1xmSFJcZkhwXGZIUlxmSERcZklrXGZIQlxmSFNcZkhEXGZIc1xmSHlcZkhcXFxmSEhcZkhSXGZIeVxmSFxcXGZIRFxmSFJcZkhlXGZIRFxmSHlcZklrXGZIQ1xmSFVcZkhSXGZIbVxmSFRcZkhAXGZIVFxmSWtcZkhBXGZIUlxmSFtcZkhSXGZIalxmSEZcZkh5XGZJa1xmSF5cZkhTXGZIQ1xmSWtcZkhaXGZJbVxmSFxcXGZJblxmSGtcZkhUXGZIeVxmSWtcZkh0XGZIblxmSHNcZklrXGZIQlxmSWtcZkhcXFxmSWxcZkhUXGZIeVxmSEhcZkhSXGZIQlxmSWtcZkhcXFxmSFJcZkheXGZJa1xmSHlcZkhcXFxmSGlcZkhLXGZIU1xmSHlcZkhpXGZIRlxmSERcZkhSXGZIVFxmSEJcZkhSXGZIcFxmSEJcZkltXGZIcVxmSWtcZkh5XGZIUlxmSFxcXGZIT1xmSFVcZklnXGZISFxmSFJcZkh5XGZITVxmSFBcZklsXGZIQ1xmSFVcZkhSXGZIblxmSFVcZklnXGZIc1xmSF5cZkhaXGZIQFxmSWFcZkhKXGZIXlxmSFNcZkhDXGZIUlxmSHBcZklsXGZIWVxmSERcZkhwXGZIUlxmSEhcZkhSXGZIeVxmSWRcZkhUXGZJa1xmSGpcZkhGXGZIeVxmSFJcZkhZXGZIUlxmSF5cZklsXGZISlxmSWtcZkhEXGZJa1xmSEZcZkluXGZIXFxcZklsXGZIRlxmSFJcZkhEXGZJbFxmSGVcZkhUXGZIeVxmSWtcZkhVXGZJZ1xmSHtcZklsXGZIQFxmSWRcZkhMXGZIeVxmSGpcZkhGXGZIeVxmSWxcZkhZXGZIXFxcZklhXGZIW1xmSHtcZkhSXGZIblxmSFlcZkhqXGZIRlxmSHlcZklnXGZIcFxmSFNcZkheXGZIUlxmSHBcZkhSXGZIRFxmSFJcZkhUXGZIVVxmSEJcZkhIXGZIVVxmSEJcZklrXGZIblxmSGVcZkhEXGZIeVxmSWxcZkhDXGZIUlxmSFVcZkluXGZISlxmSFxcXGZJYVxmSHBcZkhUXGZJblxmSHZcZklsXGZIRlxmSFRcZkhuXGZISlxmSFRcZkhZXGZIUlxmSF5cZkhVXGZJZ1xmSERcZkhSXGZIVVxmSWdcZkhIXGZJbFxmSHBcZklkXGZIVFxmSWtcZkhZXGZIUlxmSEZcZkhUXGZIcFxmSERcZkhIXGZIUlxmSERcZklrXGZISFxmSFJcZkhwXGZIUlxmSFxcXGZJbFxmSHRcZkhSXGZIQ1xmSF5cZkhwXGZIU1xmSF5cZklrXGZIRFxmSWxcZkh2XGZJa1xmSHBcZkhSXGZIblxmSHZcZkhGXGZISFxmSWFcZkhcXFxmSHtcZkluXGZIe1xmSF5cZkhwXGZIUlxmSEhcZklrXGZIQFxmSFJcZkhVXGZIXFxcZkhqXGZIRlxmSERcZklrXGZIWVxmSFJcZkhVXGZIRFxmSGtcZkhUXGZIeVxmSFJcZkhUXGZJbVxmSEBcZkhVXGZIXFxcZkhVXGZIRFxmSWtcZkhrXGZIVFxmSFRcZklrXGZIVFxmSFVcZkhTXGZISFxmSEBcZkhNXGZIUFxmSWtcZkh0XGZIc1xmSERcZkhSXGZISFxmSF5cZkhSXGZIWlxmSEZcZkhSXGZIblxmSHZcZkhaXGZJYVxmSFxcXGZJbFxmSEBcZkhNXGZIUFxmSWxcZkhVXGZJZ1xmSEhcZklrXGZIVFxmSFJcZkhkXGZIc1xmSFpcZkhSXGZIQ1xmSEpcZkhUXGZIeVxmSEhcZklsXGZIcFxmSFJcZkhIXGZJbFxmSFlcZkhSXGZIXlxmSFJcZkhVXGZIcFxmSFJcZkhcXFxmSEZcZkhzXGZIRFxmSFJcZkhcXFxmSHpcZkhEXGZJa1xmSFRcZkhNXGZIUFxmSHlcZkhCXGZIU1xmSF5cZkhSXGZIZVxmSFRcZkh5XGZJbFxmSHlcZklrXGZIWVxmSF5cZkheXGZIe1xmSEhcZkhSXGZIelxmSFJcZkhEXGZIUlxmSGlcZkhcXFxmSWFcZkhJXGZIcFxmSFVcZkhSXGZIblxmSEpcZklrXGZIelxmSFJcZkhGXGZIVVxmSF5cZklsXGZIRFxmSFNcZkhDXGZIQlxmSEBcZkhTXGZIRFxmSFJcZkhAXGZJZFxmSG5cZkh5XGZIeVxmSFVcZklsXGZIblxmSHlcZkhVXGZIRFxmSFJcZkhKXGZJa1xmSEhcZkhSXGZIVVxmSEJcZkheXGZJa1xmSHlcZkhSXGZIR1xmSWxcZkhwXGZIQFxmSHlcZkhTXGZISFxmSW1cZkhcXFxmSEhcZkhCXGZIUlxmSG5cZkh7XGZIWVxmSFVcZklsXGZIblxmSFxcXGZJZ1xmSHBcZkhQXGZIQlxmSFNcZkheXGZJbFxmSGpcZkhcXFxmSWdcZkhGXGZIVFxmSWtcZkhEXGZIUlxmSENcZkhSXGZISlxmSFlcZkheXGZJa1xmSERcZklrXGZIelxmSFJcZkhIXGZIUlxmSHlcZkhcXFxmSWxcZkhAXGZIZVxmSERcZkh5XGZIUlxmSHBcZkhZXGZIUlxmSEBcZkhGXGZJblxmSFxcXGZIUlxmSEBcZkhNXGZIUFxmSFJcZkhUXGZJYFxmSEpcZkhSXGZIWlxmSWtcZkhDXGZIXFxcZkh5XGZIU1xmSENcZklrXGZIeVxmSFVcZkhSXGZIblxmSGlcZkh5XGZIVFxmSFxcXGZIQFxmSERcZkhSXGZIY1xmSFlcZkhVXGZIUlxmSG5cZkhUXGZJYVxmSElcZkheXGZIQlxmSFNcZkheXGZJa1xmSF5cZklrXGZIelxmSHlcZkhZXGZIU1xmSFtcZkhDXGZIeVxmSWFcZkhcXFxmSG5cZkhUXGZIQlxmSW5cZkhVXGZISVxmSFJcZkhEXGZIUjRGNF80RjRbNWY0VTVpNFg0SzRdNW80RTRENWQ0SzRfNFs0RTRLNWg0WTVtNEE0RTVpNWQ0SzRaNWY0VTRLNWg0QjRLNFk0RTRLNWg1aTReNWY0QzRLNWg0VTRLNWk0RTRLNWg1bzRLNEY0RDRLNWg0XTRDNWQ0QzRENF01ajRLNWk0QDRLNWg0QzVkNWg0RTRLNWg0VTRLNWg1aTRLNWg1aTVkNW40VTRLNWg0VTRdNEQ1ZjRLNWg0XzRdNWY0VTRLNWg0QDVkNEs1aDRLNWg0XFw1azRLNEQ0SzVoNEE1ZjRLNEU0SzVoNEE1bjVkNW40SzVoNW80XTVmNWk0SzVoNFU0XTRLNW41aTRBNW01ZDRUNEU0SzVoNEc0SzVqNWY1aTRYNEs1azRDNEU0SzVoNWk0XTRPNEU0SzVoNW40XTRONWo0SzVoNFg0RDRLNEQ0SzVoNEE1ZDRLNF00SzVoNEA0QzVmNEM0SzVoNE80XzRdNEU0SzVoNFU1aDVkNWk1aTRANWk1ZDRVNEU0SzVoNF00QTVpNWo0SzVoNWo1bjRLNFs1bTVoNF80WzVmNWo0SzVoNW81ZDVmNEY0SzVoNEM1ajVmNEs0RDRdNW80SzRGNWs0SzVoNF01ZjRLNFo0RjRBNWY0SzRGNWY0RDRGNWQ1bjVmNEY0SzVoNE81ZDVoNWU0SzVoNEQ0XTVmNEM0SzVoNW81aDRLNWk0SzVoNF00SzRENFs0SzVoNFg0QjRZNWY0XzVmNEs0XTRLNEY0SzVoNEc0SzVoNEc0SzVoNFk1aDRLNEU0SzVoNEE0QzVmNEc0SzVoNF41ZDRLNF00SzVoNEI1aDVmNEA0SzVoNEA1aTVmNFU0SzVoNFU0SzVpNWs0SzVoNEA1aTRLNWg0SzVoNF80SzRVNEU1aTRYNEs1azRDNWs0SzVoNF00SjVmNF80SzVoNEM0QjVkNWg0SzVoNW01ajVmNEU0SzVoNW80RjRLNEQ0SzVoNEM1ZDRdNWY0SzVoNEM0XTVkNF80SzRfNEY0VjRdNW40RjRZNEs1aTVmNWk0SzVoNEQ1ajRLNEY0SzVoNFU0VDVmNWlmbXdmcXdiam1uZm13dm1nZnFwd2JtZ2ptZCM+I2V2bWB3amxtKyotaXNkISN0amd3az4hYGxtZWpkdnFid2psbS1zbWQhI3RqZ3drPiE/YWxneiNgb2JwcD4hTmJ3ay1xYm1nbG4rKmBsbXdmbnNscWJxeiNWbWp3ZmcjUHdid2ZwYGpxYHZucHdibWBmcC1ic3NmbWdAa2pvZytscWRibWp5YndqbG1wP3BzYm0jYG9icHA+ISE9P2puZCNwcWA+ISxnanB3am1kdmpwa2Znd2tsdnBibWdwI2xlI2Bsbm52bWpgYndqbG1gb2ZicSE9PyxnanU9am11ZnB3amRid2psbWVidWpgbG0tamBsISNuYnFkam0ucWpka3c5YWJwZmcjbG0jd2tmI05icHBiYGt2cGZ3d3B3YmFvZiNhbHFnZnE+am13ZnFtYndqbG1ib2JvcGwjaG1sdG0jYnBzcWxtdm1gamJ3amxtYWJgaGRxbHZtZzkgZXNiZ2dqbWQub2ZldzlFbHEjZntibnNvZi8jbmpwYGZvb2JtZmx2cCVvdzgsbmJ3ayVkdzhzcHpga2xvbGRqYGJvam0jc2Jxd2pgdm9icWZicWBrISN3enNmPiFlbHFuI25md2tsZz4hYnAjbHNzbHBmZyN3bFB2c3FmbmYjQGx2cXdsYGBicGpsbWJvb3ojQmdnandqbG1ib296L01scXdrI0JuZnFqYGJzezhhYmBoZHFsdm1nbHNzbHF3dm1qd2pmcEZtd2Zxd2JqbW5mbXctd2xPbHRmcUBicGYrbmJtdmViYHd2cWptZHNxbGVmcHBqbG1ibyNgbG5ham1mZyN0andrRWxxI2ptcHdibWBmL2BsbXBqcHdqbWQjbGUhI25ie29mbWR3az4hcWZ3dnFtI2Vib3BmOGBsbXBgamx2cG1mcHBOZmdqd2ZxcWJtZmJtZnt3cWJscWdqbWJxemJwcGJwcGptYndqbG1wdmFwZnJ2Zm13b3ojYXZ3d2xtI3d6c2Y+IXdrZiNtdm5hZnEjbGV3a2YjbHFqZGptYm8jYGxuc3Fma2ZtcGp1ZnFmZWZxcCN3bCN3a2Y/LHZvPVx0PyxnanU9XHRza2pvbHBsc2tqYGJvb2xgYndqbG0ta3FmZXRicCNzdmFvanBrZmdQYm0jRXFibWBqcGBsK2V2bWB3amxtKyp4XHQ/Z2p1I2pnPiFuYmptcGxza2pwd2pgYndmZ25id2tmbmJ3amBibyMsa2ZiZz0OXHQ/YWxnenB2ZGRmcHdwI3drYndnbGB2bmZtd2J3amxtYGxtYGZtd3Fid2psbXFmb2J3amxtcGtqc3BuYnoja2J1ZiNhZmZtK2VscSNme2Juc29mL1dranAjYnF3amBvZiNqbSNwbG5mI2BicGZwc2Jxd3AjbGUjd2tmI2dmZWptandqbG0jbGVEcWZidyNBcWp3YmptI2Bmb29zYmdnam1kPmZydmp1Ym9mbXcjd2xzb2JgZmtsb2dmcT4hOCNlbG13LnBqeWY5I2l2cHdqZWpgYndqbG1hZm9qZnVmZyN3a2J3cHZlZWZxZmcjZXFsbmJ3d2Zuc3dmZyN3bCNvZmJnZnEjbGUjd2tmYHFqc3chI3BxYD4hLCtldm1gd2psbSsqI3hicWYjYnViam9iYW9mXHRcbj9vam1oI3Fmbz4hI3BxYD4ka3d3czksLGptd2ZxZnB3Zmcjam1gbG11Zm13amxtYm8jISNib3c+ISEjLD0/LGJxZiNkZm1mcWJvb3prYnAjYm9wbCNhZmZtbmxwdyNzbHN2b2JxI2BscXFmcHNsbWdqbWRgcWZnandmZyN0andrd3pvZj4hYWxxZ2ZxOT8sYj0/LHBzYm09PywtZGplISN0amd3az4hP2plcWJuZiNwcWA+IXdiYW9mI2BvYnBwPiFqbW9qbWYuYW9sYGg4YmBgbHFnam1kI3dsI3dsZGZ3a2ZxI3Rqd2tic3NxbHtqbmJ3Zm96c2Jxb2pibmZtd2Jxem5scWYjYm1nI25scWZnanBzb2J6OW1sbWY4d3FiZ2p3amxtYm9venNxZmdsbmptYm13b3olbWFwczh/JW1hcHM4JW1hcHM4Pyxwc2JtPSNgZm9vcHNiYGptZD4/am1zdncjbWJuZj4hbHEhI2BsbXdmbXc+IWBsbXdxbHVmcXBqYm9zcWxzZnF3ej4hbGQ5LHsucGtsYGh0YnVmLmdmbmxtcHdxYndqbG1wdnFxbHZtZ2ZnI2F6TWZ1ZnF3a2ZvZnBwL3RicCN3a2YjZWpxcHdgbG1wamdmcWJhb2YjQm93a2x2ZGsjd2tmI2Bsb29iYWxxYndqbG1wa2x2b2cjbWx3I2Fmc3Fsc2xxd2psbSNsZT9wc2JtI3B3em9mPiFobWx0bSNicCN3a2YjcGtscXdveiNiZXdmcWVscSNqbXB3Ym1gZi9nZnBgcWphZmcjYnAjLGtmYmc9XHQ/YWxneiNwd2Jxd2ptZCN0andram1gcWZicGptZG96I3drZiNlYmB3I3drYndnanBgdnBwamxtI2xlbmpnZ29mI2xlI3drZmJtI2ptZ2p1amd2Ym9namVlamB2b3cjd2wjc2xqbXcjbGUjdWpmdGtsbmxwZnt2Ym9qd3piYGBmc3dibWBmI2xlPyxwc2JtPT8sZ2p1PW5ibXZlYmB3dnFmcXBscWpkam0jbGUjd2tmYGxubmxtb3ojdnBmZ2puc2xxd2JtYGYjbGVnZm1sbmptYndqbG1wYWJgaGRxbHZtZzkjIG9mbWR3ayNsZSN3a2ZnZndmcW5qbWJ3amxtYiNwamRtamVqYGJtdyEjYWxxZ2ZxPiEzIT1xZnVsb3Z3amxtYnF6c3FqbWBqc29mcCNsZWpwI2BsbXBqZ2ZxZmd0YnAjZ2Z1Zm9sc2ZnSm1nbC5GdnFsc2ZibXV2b21mcWJhb2Yjd2xzcWxzbG1mbXdwI2xlYnFmI3BsbmZ3am5mcGBvbHBmcSN3bCN3a2ZNZnQjWmxxaCNAand6I21ibmY+IXBmYnFga2J3d3FqYXZ3Zmcjd2xgbHZxcGYjbGUjd2tmbmJ3a2ZuYndqYGpibWF6I3drZiNmbWcjbGVidyN3a2YjZm1nI2xlISNhbHFnZnE+ITMhI3dmYGttbG9sZGpgYm8tcWZubHVmQG9icHArYXFibWBrI2xlI3drZmZ1amdmbWBmI3drYnciWGZtZ2plXi4uPQ5cdEptcHdqd3Z3ZiNsZSNqbXdsI2IjcGptZG9mcWZwc2Zgd2p1Zm96LWJtZyN3a2ZxZmVscWZzcWxzZnF3amZwI2xlanAjb2xgYndmZyNqbXBsbmYjbGUjdGtqYGtXa2ZxZiNqcCNib3BsYGxtd2ptdmZnI3dsI2Jzc2ZicWJtYGYjbGUjJWJuczhtZ2JwazgjZ2ZwYHFqYWZwI3drZmBsbXBqZ2ZxYndqbG1idndrbHEjbGUjd2tmam1nZnNmbWdmbXdvemZydmpzc2ZnI3Rqd2tnbGZwI21sdyNrYnVmPyxiPT9iI2txZmU+IWBsbWV2cGZnI3Rqd2s/b2ptaCNrcWZlPiEsYncjd2tmI2JkZiNsZWJzc2ZicSNqbSN3a2ZXa2ZwZiNqbWBvdmdmcWZkYnFnb2ZwcCNsZWBsdm9nI2FmI3ZwZmcjcHd6b2Y+JXJ2bHc4cGZ1ZnFibyN3am5mcHFmc3FmcGZtdyN3a2ZhbGd6PVx0Pyxrd25vPXdrbHZka3cjd2wjYWZzbHN2b2J3amxtI2xlc2xwcGpham9qd2pmcHNmcWBmbXdiZGYjbGViYGBmcHAjd2wjd2tmYm0jYnd3Zm5zdyN3bHNxbGd2YHdqbG0jbGVpcnZmcXosaXJ2ZnF6d3RsI2dqZWVmcWZtd2Fmb2xtZCN3bCN3a2ZmcHdiYW9qcGtuZm13cWZzb2Jgam1kI3drZmdmcGBxanN3amxtISNnZndmcW5qbWYjd2tmYnViam9iYW9mI2VscUJgYGxxZ2ptZCN3bCN0amdmI3FibWRmI2xlXG4/Z2p1I2BvYnBwPiFubHFmI2Bsbm5sbW96bHFkYm1qcGJ3amxtcGV2bWB3amxtYm9qd3p0YnAjYGxuc29md2ZnIyVibnM4bmdicGs4I3NicXdqYGpzYndqbG13a2YjYGticWJgd2ZxYm0jYmdnandqbG1ib2Jzc2ZicXAjd2wjYWZlYmB3I3drYncjd2tmYm0jZntibnNvZiNsZXBqZG1qZWpgYm13b3psbW5sdnBmbHVmcT4hYWZgYnZwZiN3a2Z6I2Jwem1gIz4jd3F2ZjhzcWxhb2ZucCN0andrcGZmbnAjd2wja2J1ZndrZiNxZnB2b3cjbGUjcHFgPiFrd3dzOSwsZWJuam9qYnEjdGp3a3NscHBmcHBqbG0jbGVldm1gd2psbSMrKiN4d2xsaCNzb2JgZiNqbWJtZyNwbG5md2puZnBwdmFwd2Jtd2pib296P3BzYm09Pyxwc2JtPWpwI2xld2ZtI3ZwZmdqbSNibSNid3dmbnN3ZHFmYncjZ2ZibyNsZUZtdWpxbG1uZm13Ym9wdmBgZnBwZXZvb3ojdWpxd3Zib296I2JvbzEzd2sjYGZtd3Zxei9zcWxlZnBwamxtYm9wbWZgZnBwYnF6I3dsI2dmd2ZxbmptZmcjYXpgbG5zYndqYWpvand6YWZgYnZwZiNqdyNqcEdqYHdqbG1icXojbGVubGdqZWpgYndqbG1wV2tmI2Vsb29sdGptZG5ieiNxZmVmcSN3bDlAbG1wZnJ2Zm13b3ovSm13ZnFtYndqbG1ib2Jvd2tsdmRrI3BsbmZ3a2J3I3Rsdm9nI2FmdGxxb2ckcCNlanFwd2BvYnBwamVqZmcjYnBhbHd3bG4jbGUjd2tmK3NicXdqYHZvYnFvemJvamRtPiFvZmV3ISNubHB3I2Bsbm5sbW96YWJwanAjZWxxI3drZmVsdm1nYndqbG0jbGVgbG13cWphdndqbG1wc2xzdm9icWp3eiNsZWBmbXdmcSNsZSN3a2Z3bCNxZmd2YGYjd2tmaXZxanBnamB3amxtcGJzc3Fse2puYndqbG0jbG1ubHZwZmx2dz4hTWZ0I1dmcHdibmZtd2Bsb29mYHdqbG0jbGU/LHBzYm09PyxiPT8sam0jd2tmI1ZtandmZ2Vqb24jZ2pxZmB3bHEucHdxamB3LWd3ZyE9a2JwI2FmZm0jdnBmZ3Fmd3ZxbSN3bCN3a2Zib3drbHZkayN3a2pwYGtibWRmI2ptI3drZnBmdWZxYm8jbHdrZnFhdncjd2tmcWYjYnFmdm1zcWZgZmdmbXdmZ2pwI3BqbmpvYnEjd2xmcHNmYGpib296I2ptdGZqZGt3OSNhbG9nOGpwI2Bib29mZyN3a2ZgbG5zdndid2psbWJvam1namBid2Yjd2tid3FmcHdxamB3Zmcjd2xcbj9uZndiI21ibmY+IWJxZiN3enNqYGJvb3pgbG1lb2pgdyN0andrS2x0ZnVmcS8jd2tmI0JtI2Z7Ym5zb2YjbGVgbG5zYnFmZyN0andrcnZibXdqd2pmcCNsZXFid2tmcSN3a2JtI2JgbG1wd2Zvb2J3amxtbWZgZnBwYnF6I2VscXFmc2xxd2ZnI3drYndwc2ZgamVqYGJ3amxtc2xvandqYGJvI2JtZyVtYXBzOCVtYXBzOD9xZmVmcWZtYGZwI3dsd2tmI3BibmYjemZicURsdWZxbW5mbXcjbGVkZm1mcWJ3amxtI2xla2J1ZiNtbHcjYWZmbXBmdWZxYm8jemZicXBgbG5uanduZm13I3dsXG5cbj92byNgb2JwcD4hdWpwdmJvanlid2psbTI6d2sjYGZtd3Zxei9zcWJgd2p3amxtZnFwd2tidyNrZiN0bHZvZ2JtZyNgbG13am12ZmdsYGB2c2J3amxtI2xlanAjZ2Zlam1mZyNicGBmbXdxZiNsZSN3a2Z3a2YjYm5sdm13I2xlPT9nanUjcHd6b2Y+IWZydmp1Ym9mbXcjbGVnamVlZnFmbXdqYndmYXFsdmRrdyNiYWx2d25icWRqbS5vZmV3OSNidndsbmJ3amBib296d2tsdmRrdyNsZSNicFBsbmYjbGUjd2tmcGZcdD9nanUjYG9icHA+IWptc3Z3I2BvYnBwPiFxZnNvYmBmZyN0andranAjbG1mI2xlI3drZmZndmBid2psbSNibWdqbWVvdmZtYGZnI2F6cWZzdndid2psbSNicFx0P25md2IjbWJuZj4hYmBgbG5ubGdid2psbT8sZ2p1PVx0PyxnanU9b2JxZGYjc2JxdyNsZUptcHdqd3Z3ZiNlbHF3a2YjcGwuYGJvb2ZnI2JkYmptcHcjd2tmI0ptI3dranAjYGJwZi90YnAjYnNzbGptd2ZnYG9iam5mZyN3bCNhZktsdGZ1ZnEvI3dranBHZnNicXduZm13I2xld2tmI3FmbmJqbWptZGZlZWZgdyNsbSN3a2ZzYnF3amB2b2Jxb3ojZ2ZibyN0andrI3drZlx0P2dqdSNwd3pvZj4hYm9ubHB3I2JvdGJ6cGJxZiNgdnFxZm13b3pme3NxZnBwamxtI2xlc2tqb2xwbHNreiNsZWVscSNubHFmI3drYm1ganVqb2p5YndqbG1wbG0jd2tmI2pwb2JtZ3Bmb2Zgd2ZnSm1nZntgYm0jcWZwdm93I2ptISN1Ym92Zj4hISMsPXdrZiNwd3F2YHd2cWYjLD0/LGI9PyxnanU9TmJteiNsZSN3a2ZwZmBidnBmZyNheiN3a2ZsZSN3a2YjVm1qd2ZncHNibSNgb2JwcD4hbmBibSNhZiN3cWJgZmdqcCNxZm9id2ZnI3dsYWZgYm5mI2xtZiNsZWpwI2VxZnJ2Zm13b3pvanVqbWQjam0jd2tmd2tmbHFmd2pgYm9vekVsb29sdGptZCN3a2ZRZnVsb3Z3amxtYnF6ZGx1ZnFtbmZtdyNqbWpwI2dmd2ZxbmptZmd3a2Yjc2xvandqYGJvam13cWxndmBmZyNqbXB2ZWVqYGpmbXcjd2xnZnBgcWpzd2psbSE9cGtscXcjcHdscWpmcHBmc2JxYndqbG0jbGVicCN3bCN0a2Z3a2ZxaG1sdG0jZWxxI2p3cHRicCNqbWp3amJvb3pnanBzb2J6OWFvbGBoanAjYm0jZntibnNvZndrZiNzcWptYGpzYm9gbG1wanB3cCNsZSNicWZgbGRtanlmZyNicCxhbGd6PT8sa3dubz1iI3B2YXB3Ym13amJvcWZgbG1wd3F2YHdmZ2tmYmcjbGUjcHdid2ZxZnBqcHdibWBmI3dsdm1nZnFkcWJndmJ3ZldrZnFmI2JxZiN3dGxkcWJ1andid2psbWJvYnFmI2dmcGBxamFmZ2ptd2Ztd2psbWJvb3pwZnF1ZmcjYnAjd2tmYG9icHA+IWtmYmdmcWxzc2xwandqbG0jd2xldm1nYm5mbXdib296Z2xuam1id2ZnI3drZmJtZyN3a2YjbHdrZnFib29qYm1gZiN0andrdGJwI2VscWBmZyN3bHFmcHNmYHdqdWZvei9ibWcjc2xvandqYGJvam0jcHZzc2xxdyNsZXNmbHNvZiNqbSN3a2YxM3drI2BmbXd2cXotYm1nI3N2YW9qcGtmZ29sYmdAa2Jxd2FmYnd3bCN2bWdmcXB3Ym1nbmZuYWZxI3B3YndmcGZtdWpxbG1uZm13Ym9lanFwdyNrYm9lI2xlYGx2bXdxamZwI2JtZ2JxYGtqd2Zgd3ZxYm9hZiNgbG1wamdmcWZnYGticWJgd2ZxanlmZ2BvZmJxSm13ZnF1Ym9idndrbHFqd2J3anVmRWZnZnFid2psbSNsZXRicCNwdmBgZmZnZmdibWcjd2tmcWYjYnFmYiNgbG1wZnJ2Zm1gZndrZiNTcWZwamdmbXdib3BsI2ptYG92Z2ZnZXFmZiNwbGV3dGJxZnB2YGBmcHBqbG0jbGVnZnVmb2xzZmcjd2tmdGJwI2dmcHdxbHpmZ2J0YnojZXFsbiN3a2Y4XHQ/LHBgcWpzdz1cdD9ib3drbHZkayN3a2Z6ZWxvb2x0ZmcjYXojYm5scWYjc2x0ZnFldm9xZnB2b3dmZyNqbSNiVm1qdWZxcGp3eiNsZUtsdGZ1ZnEvI25ibXp3a2Yjc3FmcGpnZm13S2x0ZnVmcS8jcGxuZmpwI3drbHZka3cjd2x2bXdqbyN3a2YjZm1ndGJwI2JtbWx2bWBmZ2JxZiNqbnNscXdibXdib3BsI2ptYG92Z2ZwPT9qbXN2dyN3enNmPndrZiNgZm13ZnEjbGUjR0wjTUxXI0JPV0ZRdnBmZyN3bCNxZmVmcXdrZm5mcCw8cGxxdz53a2J3I2tiZyNhZmZtd2tmI2FicGpwI2VscWticCNnZnVmb2xzZmdqbSN3a2YjcHZubmZxYGxuc2JxYndqdWZvemdmcGBxamFmZyN3a2ZwdmBrI2JwI3drbHBmd2tmI3FmcHZvd2ptZGpwI2puc2xwcGphb2Z1YnFqbHZwI2x3a2ZxUGx2d2sjQmVxamBibWtidWYjd2tmI3BibmZmZWVmYHdqdWZtZnBwam0jdGtqYGsjYGJwZjgjd2Z7dy5ib2pkbTlwd3F2YHd2cWYjYm1nOCNhYmBoZHFsdm1nOXFmZGJxZ2ptZCN3a2ZwdnNzbHF3Zmcjd2tmanAjYm9wbCNobWx0bXB3em9mPiFuYnFkam1qbWBvdmdqbWQjd2tmYWJrYnBiI05mb2J6dm1scXBoI2FsaG4vSW9tbHFwaCNtem1scXBocG9sdWZtKU0oYWptYmptd2ZxbWJgamxtYm9gYm9qZWpgYmBqL19tYGxudm1qYGJgai9fbWBsbXB3cXZgYGovX20hPT9nanUjYG9icHA+IWdqcGJuYWpkdmJ3amxtR2xuYmptTWJuZiQvIyRiZ25qbWpwd3Fid2psbXBqbnZvd2JtZmx2cG96d3FibXBzbHF3YndqbG1KbXdmcW1id2psbWJvI25icWRqbS5hbHd3bG45cWZwc2xtcGpham9qd3o/IlhmbWdqZV4uLj1cdD8sPT9uZndiI21ibmY+IWpuc29mbmZtd2J3amxtam1lcWJwd3F2YHd2cWZxZnNxZnBmbXdid2psbWFscWdmcS5hbHd3bG45PyxrZmJnPVx0P2FsZ3o9Pmt3d3MmMEImMUUmMUU/ZWxxbiNuZndrbGc+IW5md2tsZz4hc2xwdyEjLGVidWpgbG0tamBsISN+KjhcdD8scGBxanN3PVx0LXBmd0J3d3FqYXZ3ZitCZ25qbWpwd3Fid2psbT4jbWZ0I0JxcWJ6Kyo4PyJYZm1namVeLi49Dlx0Z2pwc29iejlhb2xgaDhWbWVscXd2bWJ3Zm96LyE9JW1hcHM4PyxnanU9LGVidWpgbG0tamBsIT0+JHB3em9mcGtmZnckI2pnZm13amVqYGJ3amxtLyNlbHEjZntibnNvZi8/b2o9P2Ija3FmZT4hLGJtI2Jvd2ZxbWJ3anVmYnAjYiNxZnB2b3cjbGVzdyE9PyxwYHFqc3c9XHR3enNmPiFwdmFuanchI1x0K2V2bWB3amxtKyojeHFmYGxubmZtZ2J3amxtZWxxbiNiYHdqbG0+ISx3cWJtcGVscW5id2psbXFmYGxtcHdxdmB3amxtLXB3em9mLWdqcHNvYnojQmBgbHFnam1kI3dsI2tqZ2dmbSEjbWJuZj4hYm9sbWQjdGp3ayN3a2ZnbGB2bmZtdy1hbGd6LWJzc3Fse2puYndmb3ojQGxubnZtamBid2psbXBzbHB3ISNiYHdqbG0+IW5mYm1qbWQjJXJ2bHc4Li4/IlhmbWdqZV4uLj1TcWpuZiNOam1qcHdmcWBrYnFiYHdmcWpwd2pgPyxiPSM/YiNgb2JwcD53a2Yja2pwd2xxeiNsZSNsbW5sdnBmbHVmcT4hd2tmI2RsdWZxbW5mbXdrcWZlPiFrd3dzcDksLHRicCNscWpkam1ib296dGJwI2ptd3FsZ3ZgZmdgb2JwcGplamBid2psbXFmc3FmcGZtd2J3anVmYnFmI2BsbXBqZ2ZxZmc/IlhmbWdqZV4uLj1cdFx0Z2ZzZm1ncCNsbSN3a2ZWbWp1ZnFwand6I2xlI2ptI2BsbXdxYnB3I3dsI3NvYmBma2xvZ2ZxPiFqbSN3a2YjYGJwZiNsZWptd2ZxbWJ3amxtYm8jYGxtcHdqd3Z3amxtYm9wd3pvZj4hYWxxZ2ZxLjkjZXZtYHdqbG0rKiN4QWZgYnZwZiNsZSN3a2YucHdxamB3LWd3ZyE9XHQ/d2Jhb2YjYG9icHA+IWJgYGxuc2JtamZnI2F6YmBgbHZtdyNsZSN3a2Y/cGBxanN3I3BxYD4hLG1id3ZxZiNsZSN3a2Yjd2tmI3NmbHNvZiNqbSNqbSNiZ2dqd2psbSN3bHAqOCNpcC1qZyM+I2pnISN0amd3az4hMjMzJiFxZmRicWdqbWQjd2tmI1FsbmJtI0Bid2tsb2pgYm0jam1nZnNmbWdmbXdlbG9vbHRqbWQjd2tmIy1kamUhI3RqZ3drPiEyd2tmI2Vsb29sdGptZCNnanBgcWpuam1id2psbWJxYGtiZmxvbGRqYGJvc3FqbmYjbmptanB3ZnEtaXAhPT8scGBxanN3PWBsbmFqbWJ3amxtI2xlI25icWRqbXRqZ3drPiFgcWZid2ZGb2ZuZm13K3QtYnd3YmBrRnVmbXcrPyxiPT8sd2c9Pyx3cT1wcWA+IWt3d3NwOSwsYkptI3NicXdqYHZvYnEvI2JvamRtPiFvZmV3ISNAeWZgayNRZnN2YW9qYFZtandmZyNIam1kZ2xuYGxxcWZwc2xtZ2ZtYGZgbG1gb3ZnZmcjd2tidy1rd25vISN3andvZj4hK2V2bWB3amxtIysqI3hgbG5mcCNlcWxuI3drZmJzc29qYGJ3amxtI2xlP3BzYm0jYG9icHA+IXBhZm9qZnVmZyN3bCNhZmZuZm13KyRwYHFqc3ckPyxiPVx0Pyxvaj1cdD9vanVmcXojZ2plZWZxZm13PT9wc2JtI2BvYnBwPiFsc3dqbG0jdWJvdmY+IStib3BsI2htbHRtI2JwXG4/b2o9P2Ija3FmZT4hPT9qbXN2dyNtYm5mPiFwZnNicWJ3ZmcjZXFsbnFmZWZxcWZnI3dsI2JwI3Vib2pkbT4hd2xzIT1lbHZtZ2ZxI2xlI3drZmJ3d2Zuc3dqbWQjd2wjYGJxYWxtI2dqbHtqZ2ZcdFx0P2dqdSNgb2JwcD4hYG9icHA+IXBmYnFgay4sYWxnej1cdD8sa3dubz1sc3NscXd2bWp3eiN3bGBsbm52bWpgYndqbG1wPyxrZmJnPQ5cdD9hbGd6I3B3em9mPiF0amd3azlXalxyVlNtZCNValxyV2t3YGtibWRmcCNqbSN3a2ZhbHFnZnEuYGxvbHE5IDMhI2FscWdmcT4hMyEjPyxwc2JtPT8sZ2p1PT90YnAjZ2pwYGx1ZnFmZyEjd3pzZj4hd2Z7dyEjKjhcdD8scGBxanN3PVx0XHRHZnNicXduZm13I2xlI2ZgYG9mcGpicHdqYGJvd2tmcWYja2JwI2FmZm1xZnB2b3dqbWQjZXFsbj8sYWxnej0/LGt3bm89a2JwI21mdWZxI2FmZm13a2YjZWpxcHcjd2puZmptI3FmcHNsbXBmI3dsYnZ3bG5id2pgYm9veiM/LGdqdT1cdFx0P2dqdSNqdGJwI2BsbXBqZ2ZxZmdzZnFgZm13I2xlI3drZiEjLD0/LGI9PyxnanU9YGxvb2Zgd2psbSNsZSNnZnBgZm1nZmcjZXFsbnBmYHdqbG0jbGUjd2tmYmBgZnN3LmBrYnFwZnd3bCNhZiNgbG1ldnBmZ25mbmFmcSNsZSN3a2Yjc2JnZ2ptZC5xamRrdzl3cWJtcG9id2psbSNsZWptd2Zxc3Fmd2J3amxtI2txZmU+JGt3d3M5LCx0a2Z3a2ZxI2xxI21sd1drZnFmI2JxZiNib3Bsd2tmcWYjYnFmI25ibXpiI3BuYm9vI212bmFmcWx3a2ZxI3NicXdwI2xlam5zbHBwamFvZiN3bCMjYG9icHA+IWF2d3dsbW9sYGJ3Zmcjam0jd2tmLSNLbHRmdWZxLyN3a2ZibWcjZnVmbXd2Ym9vekJ3I3drZiNmbWcjbGUjYWZgYnZwZiNsZSNqd3BxZnNxZnBmbXdwI3drZj9lbHFuI2Jgd2psbT4hI25md2tsZz4hc2xwdyFqdyNqcCNzbHBwamFvZm5scWYjb2poZm96I3dsYm0jam1gcWZicGYjam1rYnVmI2JvcGwjYWZmbWBscXFmcHNsbWdwI3dsYm1tbHZtYGZnI3drYndib2pkbT4hcWpka3chPW5ibXojYGx2bXdxamZwZWxxI25ibXojemZicXBmYnFvamZwdyNobWx0bWFmYGJ2cGYjancjdGJwc3chPT8scGBxanN3PQ4jdWJvamRtPiF3bHMhI2pta2JhandibXdwI2xlZWxvb2x0am1kI3pmYnEOXHQ/Z2p1I2BvYnBwPiFuam9vamxtI3NmbHNvZmBsbXdxbHVmcXBqYm8jYGxtYGZxbWptZCN3a2ZicWR2ZiN3a2J3I3drZmRsdWZxbW5mbXcjYm1nYiNxZmVmcWZtYGYjd2x3cWJtcGVmcXFmZyN3bGdmcGBxamFqbWQjd2tmI3B3em9mPiFgbG9scTlib3drbHZkayN3a2ZxZmFmcHcjaG1sdG0jZWxxcHZhbmp3ISNtYm5mPiFudm93anNvamBid2psbW5scWYjd2tibSNsbWYjcWZgbGRtandqbG0jbGVAbHZtYGpvI2xlI3drZmZnandqbG0jbGUjd2tmIyM/bmZ3YiNtYm5mPiFGbXdmcXdiam1uZm13I2J0YnojZXFsbiN3a2YjOG5icWRqbS5xamRrdzlidyN3a2Yjd2puZiNsZWptdWZwd2pkYndqbG1wYGxtbWZgd2ZnI3Rqd2tibWcjbmJteiNsd2tmcWJvd2tsdmRrI2p3I2pwYWZkam1tam1kI3Rqd2sjP3BzYm0jYG9icHA+IWdmcGBmbWdibXdwI2xlP3BzYm0jYG9icHA+IWojYm9qZG0+IXFqZGt3IT8sa2ZiZz1cdD9hbGd6I2Jwc2Zgd3AjbGUjd2tma2JwI3BqbWBmI2FmZm1GdnFsc2ZibSNWbWpsbXFmbmptanBgZm13I2xlbmxxZiNnamVlamB2b3dVamBmI1NxZnBqZ2Ztd2BsbnNscGp3amxtI2xlc2JwcGZnI3drcWx2ZGtubHFmI2puc2xxd2Jtd2VsbXcucGp5ZjkyMnN7Zntzb2JtYndqbG0jbGV3a2YjYGxtYGZzdyNsZXRxand3Zm0jam0jd2tmXG4/cHNibSNgb2JwcD4hanAjbG1mI2xlI3drZiNxZnBmbmFvYm1gZiN3bGxtI3drZiNkcWx2bWdwdGtqYGsjYGxtd2JqbXBqbWBvdmdqbWQjd2tmI2dmZWptZmcjYXojd2tmc3Zhb2pgYndqbG0jbGVuZmJtcCN3a2J3I3drZmx2d3BqZ2YjbGUjd2tmcHZzc2xxdyNsZSN3a2Y/am1zdncjYG9icHA+IT9wc2JtI2BvYnBwPiF3K05id2stcWJtZ2xuKypubHB3I3NxbG5qbWZtd2dmcGBxanN3amxtI2xlQGxtcHdibXdqbWxzb2Z0ZnFmI3N2YW9qcGtmZz9nanUjYG9icHA+IXBmYnNzZmJxcCNqbSN3a2YyISNrZmpka3c+ITIhI25scHcjam5zbHF3Ym13dGtqYGsjam1gb3ZnZnB0a2pgayNrYmcjYWZmbWdmcHdxdmB3amxtI2xld2tmI3Nsc3ZvYndqbG1cdFxuP2dqdSNgb2JwcD4hc2xwcGpham9qd3ojbGVwbG5md2puZnAjdnBmZ2Jzc2ZicSN3bCNrYnVmcHZgYGZwcCNsZSN3a2ZqbXdmbWdmZyN3bCNhZnNxZnBmbXcjam0jd2tmcHd6b2Y+IWBvZmJxOWEOXHQ/LHBgcWpzdz0OXHQ/dGJwI2Vsdm1nZmcjam1qbXdmcXVqZnQjdGp3a1xcamchI2BsbXdmbXc+IWBic2p3Ym8jbGUjd2tmDlx0P29qbWgjcWZvPiFwcWZvZmJwZiNsZSN3a2ZzbGptdyNsdncjd2tid3tOT0t3d3NRZnJ2ZnB3Ym1nI3B2YXBmcnZmbXdwZmBsbWcjb2JxZGZwd3VmcXojam5zbHF3Ym13cHNmYGplamBid2psbXBwdnFlYmBmI2xlI3drZmJzc29qZmcjd2wjd2tmZWxxZmpkbSNzbG9qYHpcXHBmd0dsbmJqbU1ibmZmcHdiYW9qcGtmZyNqbWpwI2Fmb2pmdWZnI3dsSm0jYmdnandqbG0jd2xuZmJtam1kI2xlI3drZmpwI21ibmZnI2Jld2Zxd2wjc3Fsd2ZgdyN3a2ZqcCNxZnNxZnBmbXdmZ0dmYG9icWJ3amxtI2xlbmxxZiNmZWVqYGpmbXdAb2JwcGplamBid2psbWx3a2ZxI2VscW5wI2xla2YjcWZ3dnFtZmcjd2w/cHNibSNgb2JwcD4hYHNmcWVscW5ibWBmI2xlK2V2bWB3amxtKyojeA5qZSNibWcjbG1veiNqZXFmZGpsbXAjbGUjd2tmb2ZiZ2ptZCN3bCN3a2ZxZm9id2psbXAjdGp3a1ZtandmZyNNYndqbG1wcHd6b2Y+IWtmamRrdzlsd2tmcSN3a2JtI3drZnpzZiEjYGxtd2Ztdz4hQnBwbGBqYndqbG0jbGVcdD8sa2ZiZz1cdD9hbGd6b2xgYndmZyNsbSN3a2ZqcCNxZmVmcXFmZyN3bCtqbWBvdmdqbWQjd2tmYGxtYGZtd3Fid2psbXB3a2Yjam1nanVqZ3Zib2JubG1kI3drZiNubHB3d2tibSNibXojbHdrZnEsPVx0P29qbWgjcWZvPiEjcWZ3dnFtI2Vib3BmOHdrZiNzdnFzbHBmI2xld2tmI2Jham9qd3ojd2w4YGxvbHE5IGVlZX5cdC1cdD9wc2JtI2BvYnBwPiF3a2YjcHZhaWZgdyNsZWdmZWptandqbG1wI2xlPQ5cdD9vam1oI3Fmbz4hYG9iam4jd2tidyN3a2ZrYnVmI2dmdWZvbHNmZz93YmFvZiN0amd3az4hYGZvZmFxYndqbG0jbGVFbG9vbHRqbWQjd2tmI3dsI2dqcHdqbWR2anBrP3BzYm0jYG9icHA+IWF3YmhmcCNzb2JgZiNqbXZtZ2ZxI3drZiNtYm5mbWx3Zmcjd2tidyN3a2Y9PyJYZm1namVeLi49XHRwd3pvZj4hbmJxZGptLmptcHdmYmcjbGUjd2tmam13cWxndmBmZyN3a2Z3a2Yjc3FsYGZwcCNsZWptYHFmYnBqbWQjd2tmZ2plZWZxZm1gZnAjam1mcHdqbmJ3Zmcjd2tid2Zwc2ZgamJvb3ojd2tmLGdqdT0/Z2p1I2pnPiF0YnAjZnVmbXd2Ym9vendrcWx2ZGtsdncja2pwd2tmI2dqZWVmcWZtYGZwbG5md2tqbWQjd2tid3BzYm09Pyxwc2JtPT8scGpkbWplamBibXdveiM9PyxwYHFqc3c9Dlx0Dlx0Zm11anFsbW5mbXdibyN3bCNzcWZ1Zm13I3drZmtidWYjYWZmbSN2cGZnZnBzZmBqYm9veiNlbHF2bWdmcXB3Ym1nI3drZmpwI2ZwcGZtd2pib296dGZxZiN3a2YjZWpxcHdqcCN3a2Yjb2JxZGZwd2tidWYjYWZmbSNuYmdmISNwcWA+IWt3d3M5LCxqbXdmcXNxZndmZyNicHBmYGxtZyNrYm9lI2xlYHFsb29qbWQ+IW1sISNqcCNgbG5zbHBmZyNsZUpKLyNLbG96I1FsbmJtanAjZntzZmB3Zmcjd2xrYnVmI3drZmpxI2x0bWdmZWptZmcjYnAjd2tmd3FiZ2p3amxtYm9veiNrYnVmI2dqZWVmcWZtd2JxZiNsZXdmbSN2cGZnd2wjZm1wdnFmI3drYndiZHFmZm5mbXcjdGp3a2BsbXdiam1qbWQjd2tmYnFmI2VxZnJ2Zm13b3pqbWVscW5id2psbSNsbWZ7Ym5zb2YjanAjd2tmcWZwdm93am1kI2ptI2I/LGI9Pyxvaj0/LHZvPSNgb2JwcD4hZWxsd2ZxYm1nI2Zwc2ZgamJvb3p3enNmPiFhdnd3bG0hIz8scHNibT0/LHBzYm09dGtqYGsjam1gb3ZnZmc9XHQ/bmZ3YiNtYm5mPiFgbG1wamdmcWZnI3drZmBicXFqZmcjbHZ3I2F6S2x0ZnVmcS8jancjanBhZmBibmYjc2JxdyNsZWptI3Fmb2J3amxtI3dsc2xzdm9icSNqbSN3a2Z3a2YjYGJzandibyNsZXRicCNsZWVqYGpib296dGtqYGsja2JwI2FmZm13a2YjS2pwd2xxeiNsZWJvd2ZxbWJ3anVmI3dsZ2plZWZxZm13I2VxbG53bCNwdnNzbHF3I3drZnB2ZGRmcHdmZyN3a2J3am0jd2tmI3NxbGBmcHAjIz9nanUjYG9icHA+IXdrZiNlbHZtZ2J3amxtYWZgYnZwZiNsZSNranBgbG1gZnFtZmcjdGp3a3drZiN2bWp1ZnFwand6bHNzbHBmZyN3bCN3a2Z3a2YjYGxtd2Z7dyNsZT9wc2JtI2BvYnBwPiFzd2Z7dyEjbWJuZj4hciFcblxuP2dqdSNgb2JwcD4hd2tmI3BgamZtd2plamBxZnNxZnBmbXdmZyNhem5id2tmbmJ3amBqYm1wZm9mYHdmZyNheiN3a2Z3a2J3I2tidWYjYWZmbT0/Z2p1I2BvYnBwPiFgZ2p1I2pnPiFrZmJnZnFqbSNzYnF3amB2b2JxL2BsbXVmcXdmZyNqbXdsKjhcdD8scGBxanN3PVx0P3Nram9scGxza2pgYm8jcHFzcGhsa3F1YndwaGp3alxyVlNtZCNValxyV2t3PEw9bz1tPW08VjxUPFU9bD1vPW09bTxWPFQ8VWptdWZwd2pkYmBqL19tc2Jxd2pganNiYGovX208VjxSPW48Uj1sPWc8WTxSPF08VzxcXD1tPW48VDxWPFI9bjxSPWw9ZzxVPWs8WTxXPFI8XjxZPFY9bTxUPW09bjxZPFA9ZzxxPFI8XjxSPW09bjxUPFY8Uj1uPFI9bD1nPWk8UjxdPFc8XFw9bT1uPWA8Xj1sPFk8UDxZPFE8VDxWPFI9bjxSPWw8XFw9Yz1tPFk8XzxSPFg8UT1jPW08VjxcXD1rPFxcPW49YDxRPFI8XjxSPW09bjxUPE88Vj1sPFxcPFQ8UT1nPF48UjxTPWw8Uj1tPWc8VjxSPW48Uj1sPFI8VT1tPFg8WTxXPFxcPW49YDxTPFI8UDxSPWU9YD1iPW09bDxZPFg9bT1uPF48UjxdPWw8XFw8WzxSPFA9bT1uPFI9bDxSPFE9Zz1vPWs8XFw9bT1uPFQ8WT1uPFk9azxZPFE8VDxZPH88VzxcXDxePFE8XFw9YzxUPW09bjxSPWw8VDxUPW08VD1tPW48WTxQPFxcPWw8WT1kPFk8UTxUPWM8TTxWPFxcPWs8XFw9bj1gPFM8Uj1hPW48UjxQPW89bTxXPFk8WD1vPFk9bj1tPFY8XFw8WzxcXD1uPWA9bjxSPF48XFw9bDxSPF48VjxSPFE8WT1rPFE8Uj1sPFk9ZDxZPFE8VDxZPFY8Uj1uPFI9bDxSPFk8Uj1sPF88XFw8UTxSPF48VjxSPW48Uj1sPFI8UDxMPFk8VjxXPFxcPFA8XFw0SzVoNWk1ajRGNEM1ZTVpNWo0RjRDNWY0SzRGNEs1aDVpNWQ0WjVkNFU0SzVoNEQ0XTRLNWk0QDRLNWg1aTVkNEs1bjRVNEs1aDRdNF80SzRKNWg1aTRYNEs0XTVvNEs0RjRLNWg0TzRVNFo0SzRNNEs1aDRdNWY0SzRaNEU0SzVoNEY0WTVpNWY1aTRLNWg0SzRVNFo0SzRNNEs1aDVqNEY0SzRKNEA0SzVoNE81aDRVNEs0RDRLNWg0RjRfNEA1ZjVoNEs1aDRPNW40XzRLNWk0SzVoNFo0VjRbNEs0RjRLNWg1bTVmNEM1ZjVkNEs1aDRGNF00QTVmNEQ0SzVoNEA0QzVmNEM0RTRLNWg0RjRVNWg1ZjVpNEs1aDRPNEI0RDRLNF00SzVoNEs1bTVoNEs1aTRLNWg0TzVtNWg0SzVpNEs1aDRGNEs0XTVmNEI0SzVoNEY1bjVqNWY0RTRLNWg0SzVoNFU0SzRENEs1aDRCNWQ0SzRbNF00SzVoNWk0QDRGNWk0VTRLNWg0QzVmNW81ZDRdNEs1aDRfNWY0SzRBNEU0VTRENEM0SzVoNWg1azRLNWg0RjRdNEQ1ZjRFNEs1aDRdNWQ0SzRENFs0SzVoNE80QzRENWY0RTRLNWg0SzRCNEQ0SzRdNEs1aDVpNEY0QTRDNEU0SzVoNEs0VjRLNWo1ZmB2cXBscTlzbGptd2ZxOD8sd2p3b2Y9XHQ/bmZ3YiMhI2txZmU+IWt3d3M5LCwhPT9wc2JtI2BvYnBwPiFuZm5hZnFwI2xlI3drZiN0am1nbHQtb2xgYndqbG11ZnF3amBiby5ib2pkbTksYj0jfyM/YiNrcWZlPiE/ImdsYHd6c2Yja3dubz1uZmdqYj4hcGBxZmZtISM/bHN3amxtI3Vib3ZmPiFlYnVqYGxtLWpgbCEjLD1cdFxuXG4/Z2p1I2BvYnBwPiFga2JxYmB3ZnFqcHdqYHAhI25md2tsZz4hZGZ3ISMsYWxnej1cdD8sa3dubz1cdHBrbHF3YHZ3I2pgbG0hI2dsYHZuZm13LXRxandmK3NiZ2dqbWQuYWx3d2xuOXFmc3FmcGZtd2J3anVmcHB2YW5qdyEjdWJvdmY+IWJvamRtPiFgZm13ZnEhI3drcWx2ZGtsdncjd2tmI3BgamZtYGYjZWpgd2psbVx0IyM/Z2p1I2BvYnBwPiFwdmFuanchI2BvYnBwPiFsbWYjbGUjd2tmI25scHcjdWJvamRtPiF3bHMhPT90YnAjZnB3YmFvanBrZmcqOA5cdD8scGBxanN3PQ5cdHFmd3ZxbSNlYm9wZjghPSotcHd6b2YtZ2pwc29iemFmYGJ2cGYjbGUjd2tmI2dsYHZuZm13LWBsbGhqZj9lbHFuI2Jgd2psbT4hLH5hbGd6eG5icWRqbTkzOEZtYHpgb2xzZmdqYiNsZXVmcXBqbG0jbGUjd2tmIy1gcWZid2ZGb2ZuZm13K21ibmYhI2BsbXdmbXc+IT8sZ2p1PVx0PyxnanU9XHRcdGJnbmptanB3cWJ3anVmIz8sYWxnej1cdD8sa3dubz1ranB3bHF6I2xlI3drZiMhPT9qbXN2dyN3enNmPiFzbHF3amxtI2xlI3drZiNicCNzYnF3I2xlI3drZiMlbWFwczg/YiNrcWZlPiFsd2tmcSNgbHZtd3FqZnAhPVx0P2dqdSNgb2JwcD4hPyxwc2JtPT8scHNibT0/Sm0jbHdrZnEjdGxxZ3AvZ2pwc29iejkjYW9sYGg4YGxtd3FsbyNsZSN3a2Yjam13cWxndmB3amxtI2xlLD1cdD9uZndiI21ibmY+IWJwI3Rmb28jYnAjd2tmI2ptI3FmYGZtdyN6ZmJxcA5cdFxuP2dqdSNgb2JwcD4hPyxnanU9XHRcbj8sZ2p1PVx0am1wc2pxZmcjYXojd2tmd2tmI2ZtZyNsZSN3a2YjYGxuc2J3amFvZiN0andrYWZgYm5mI2htbHRtI2JwI3B3em9mPiFuYnFkam05LWlwIT0/LHBgcWpzdz0/I0ptd2ZxbWJ3amxtYm8jd2tmcWYja2J1ZiNhZmZtRGZxbmJtI29ibWR2YmRmI3B3em9mPiFgbG9scTkgQGxubnZtanB3I1NicXd6YGxtcGpwd2ZtdyN0andrYWxxZ2ZxPiEzISNgZm9vI25icWRqbWtmamRrdz4hd2tmI25iaWxxand6I2xlISNib2pkbT4hYGZtd2ZxcWZvYndmZyN3bCN3a2YjbmJteiNnamVlZnFmbXcjTHF3a2xnbHsjQGt2cWBrcGpuam9icSN3bCN3a2YjLD1cdD9vam1oI3Fmbz4hcHRicCNsbWYjbGUjd2tmI3Ztd2pvI2tqcCNnZmJ3a34qKyo4XHQ/LHBgcWpzdz1sd2tmcSNvYm1kdmJkZnBgbG5zYnFmZyN3bCN3a2ZzbHF3amxtcCNsZSN3a2Z3a2YjTWZ3a2Zxb2JtZ3B3a2YjbmxwdyNgbG5ubG1hYmBoZHFsdm1nOXZxbyticWR2Zmcjd2tidyN3a2ZwYHFsb29qbWQ+IW1sISNqbWBvdmdmZyNqbSN3a2ZNbHF3ayNCbmZxamBibSN3a2YjbWJuZiNsZSN3a2ZqbXdmcXNxZndid2psbXB3a2Yjd3FiZ2p3amxtYm9nZnVmb2xzbmZtdyNsZSNlcWZydmZtd296I3ZwZmdiI2Bsb29mYHdqbG0jbGV1ZnF6I3BqbmpvYnEjd2xwdnFxbHZtZ2ptZCN3a2Zme2Juc29mI2xlI3dranBib2pkbT4hYGZtd2ZxIT10bHZvZyNrYnVmI2FmZm1qbmJkZlxcYGJzd2psbSM+Ynd3YmBrZmcjd2wjd2tmcHZkZGZwd2ptZCN3a2J3am0jd2tmI2VscW4jbGUjam11bG91Zmcjam0jd2tmanAjZ2ZxanVmZyNlcWxubWJuZmcjYmV3ZnEjd2tmSm13cWxndmB3amxtI3dscWZwd3FqYHdqbG1wI2xtI3B3em9mPiF0amd3azkjYGJtI2FmI3ZwZmcjd2wjd2tmI2BxZmJ3amxtI2xlbmxwdyNqbnNscXdibXcjam1lbHFuYndqbG0jYm1ncWZwdm93Zmcjam0jd2tmYGxvb2JzcGYjbGUjd2tmV2tqcCNuZmJtcCN3a2J3Zm9mbmZtd3AjbGUjd2tmdGJwI3Fmc29iYGZnI2F6Ym1ib3pwanAjbGUjd2tmam1wc2pxYndqbG0jZWxxcWZkYnFnZmcjYnAjd2tmbmxwdyNwdmBgZnBwZXZvaG1sdG0jYnAjJXJ2bHc4YiNgbG5zcWZrZm1wanVmS2pwd2xxeiNsZSN3a2YjdGZxZiNgbG1wamdmcWZncWZ3dnFtZmcjd2wjd2tmYnFmI3FmZWZxcWZnI3dsVm1wbHZxYGZnI2puYmRmPVx0XG4/Z2p1I2BvYnBwPiFgbG1wanB3cCNsZSN3a2Zwd2xzU3Fsc2JkYndqbG1qbXdmcWZwdyNqbSN3a2ZidWJqb2Jham9qd3ojbGVic3NmYnFwI3dsI2tidWZmb2Zgd3FsbmJkbWZ3amBmbWJhb2ZQZnF1amBmcCtldm1gd2psbSNsZSN3a2ZKdyNqcCNqbnNscXdibXc/LHBgcWpzdz0/LGdqdT1ldm1gd2psbSsqeHVicSNxZm9id2p1ZiN3bCN3a2ZicCNiI3FmcHZvdyNsZSN3a2Yjc2xwandqbG0jbGVFbHEjZntibnNvZi8jam0jbmZ3a2xnPiFzbHB3ISN0YnAjZWxvb2x0ZmcjYXolYm5zOG5nYnBrOCN3a2Z3a2YjYnNzb2pgYndqbG1pcCE9PyxwYHFqc3c9Dlx0dm89PyxnanU9PyxnanU9YmV3ZnEjd2tmI2dmYndrdGp3ayNxZnBzZmB3I3dscHd6b2Y+IXNiZ2dqbWQ5anAjc2Jxd2pgdm9icW96Z2pwc29iejlqbW9qbWY4I3d6c2Y+IXB2YW5qdyEjanAjZ2p1amdmZyNqbXdsXGJUQVxuemsjK1x2QmxcYlF/KnFmcHNsbXBiYWpvamdiZ2JnbmptanB3cWJgai9fbWptd2ZxbWJgamxtYm9mcGBscXFmcHNsbWdqZm13ZlxmSGVcZkhGXGZIQ1xmSWdcZkh7XGZIRlxmSW5cZkhcXFxmSWFcZkhZXGZIVVxmSEJcZkhSXGZIXFxcZklrXGZIXlxmSWdcZkh7XGZJZ1xmSG5cZkh2XGZJbVxmSERcZkhSXGZIWVxmSF5cZklrXGZIeVxmSFNcZkhEXGZIVFxmSFxcXGZIeVxmSFJcZkhcXFxmSEZcZkltXGZIXlxmSFNcZkhUXGZIelxmSWdcZkhwXGZJa1xmSG5cZkh2XGZIUlxmSFVcZkhTXGZIY1xmSEFcZklrXGZIcFxmSWtcZkhuXGZIWlxmSFJcZkhCXGZIU1xmSF5cZkhVXGZIQlxmSFJcZkhcXFxmSWxcZkhwXGZIUlxmSHtcZkhcXFxmSE9cZkhAXGZIRFxmSFJcZkhEXGZJa1xmSHlcZkltXGZIQlxmSFJcZkhcXFxmSEBcZklhXGZIXlxmSWVcZkh7XGZIQlxmSFJcZkheXGZIU1xmSHlcZkhCXGZIVVxmSFNcZkheXGZIUlxmSEZcZklvXGZIW1xmSWFcZkhMXGZIQFxmSE5cZkhQXGZISFxmSWtcZkhBXGZIUlxmSHBcZkhGXGZIUlxmSHlcZklhXGZIXlxmSFNcZkh5XGZIc1xmSWFcZkhcXFxmSWtcZkhEXGZIelxmSFNcZkheXGZIUlxmSEdcZkhKXGZJYFxmSFxcXGZIUlxmSERcZkhCXGZIUlxmSEJcZkheXGZJa1xmSEJcZkhIXGZISlxmSFJcZkhEXGZIQFxmSFJcZkhwXGZIUlxmSFxcXGZIWVxmSFNcZkh5XGZIUlxmSFRcZkh5XGZJYVxmSENcZklnXGZIblxmSHZcZkhSXGZIVVxmSEhcZklrXGZIRlxmSFVcZkltXGZIbVxmSHZcZkhAXGZISFxmSFJcZkhDXGZIUlxmSFRcZkhuXGZIWVxmSFJcZkhKXGZISlxmSWtcZkh6XGZIRFxmSWtcZkhGXGZIU1xmSHdcZkheXGZJa1xmSFlcZkhTXGZIWlxmSWtcZkhbXGZIXFxcZkhSXGZIcFxmSWFcZkhDXGZIZVxmSEhcZklhXGZISFxmSFxcXGZIQlxmSW1cZkhuXGZIQFxmSGRcZkhKXGZJZ1xmSERcZklnXGZIblxmSGVcZkhGXGZIeVxmSFxcXGZIT1xmSEZcZkhOXGZIUFxmSWtcZkhuXGZIVFxmSWFcZkhJXGZIU1xmSEhcZkhHXGZIU1xmSF5cZklhXGZIQlxmSEJcZkltXGZIelxmSWFcZkhDXGZIaVxmSHZcZklhXGZId1xmSFJcZkh3XGZJblxmSHNcZkhIXGZJbFxmSFRcZkhuXGZIe1xmSWxcZkhIXGZIcFxmSFJcZkhjXGZIe1xmSFJcZkhZXGZIU1xmSEFcZkhSXGZIe1xmSHRcZkhPXGZJYVxmSHNcZklrXGZISlxmSW5cZkhUXGZIXFxcZklrXGZISlxmSFNcZkhEXGZJZ1xmSG5cZkhVXGZISFxmSWFcZkhDXGZIUlxmSFRcZklrXGZIeVxmSWFcZkhUXGZIe1xmSFJcZkhuXGZIS1xmSWxcZkhZXGZIU1xmSFpcZklhXGZIWVxmSFxcXGZIUlxmSEhcZklrXGZIblxmSEpcZklkXGZIc1xmSWFcZkhUXGZIRFxmSHlcZklhXGZIWlxmSFJcZkhUXGZIUlxmSEJcZkhEXGZJa1xmSGlcZkhKXGZIUlxmSF5cZkhIXGZIQFxmSFNcZkhwXGZIXlxmSWxcZkhGXGZJbVxmSFxcXGZJblxmSFtcZkhVXGZIU1xmSG5cZkhKXGZJbFxmSEJcZkhTXGZISFxmSWFcZkhcXFxmSHlcZkhZXGZIU1xmSEhcZkhSXGZIXFxcZkltXGZIRlxmSENcZklrXGZIVFxmSWFcZkhJXGZIUlxmSERcZkh5XGZIXFxcZklnXGZITVxmSFBcZkhCXGZJbVxmSHlcZklhXGZISFxmSENcZklnXGZIcFxmSERcZkhSXGZIeVxmSW9cZkhGXGZIQ1xmSFJcZkhGXGZJZ1xmSFRcZklhXGZIc1xmSHRcZkhcXFxmSWtcZkheXGZJblxmSHlcZkhSXGZIXFxcZklhXGZIQ1xmSFlcZkhTXGZIdlxmSFJcZkhcXFxmSFRcZkluXGZIdlxmSERcZkhSXGZIQlxmSW5cZkheXGZJYVxmSENcZkhKXGZJa1xmSHpcZklrXGZIblxmSFVcZkhCXGZJa1xmSFpcZkhSXGZIVFxmSWFcZkh5XGZJblxmSF5cZkhCXGZJZFxmSG5cZkhEXGZJa1xmSEhcZklkXGZIQ1xmSFJcZkhcXFxmSHBcZkhTXGZIVFxmSHlcZklrcXBwKHtubyEjd2p3b2Y+IS53enNmISNgbG13Zm13PiF3andvZiEjYGxtd2Ztdz4hYncjd2tmI3BibmYjd2puZi1pcCE9PyxwYHFqc3c9XHQ/ISNuZndrbGc+IXNscHchIz8scHNibT0/LGI9Pyxvaj11ZnF3amBiby5ib2pkbTl3LGlydmZxei1uam0taXAhPS1gb2pgaCtldm1gd2psbSsjcHd6b2Y+IXNiZ2dqbWQufiorKjhcdD8scGBxanN3PVx0Pyxwc2JtPT9iI2txZmU+IT9iI2txZmU+IWt3d3M5LCwqOCNxZnd2cW0jZWJvcGY4d2Z7dy5nZmBscWJ3amxtOSNwYHFsb29qbWQ+IW1sISNhbHFnZnEuYGxvb2JzcGY5YnBwbGBqYndmZyN0andrI0Fia2JwYiNKbWdsbWZwamJGbWRvanBrI29ibWR2YmRmP3dme3cje25vOXBzYmBmPi1kamUhI2FscWdmcT4hMyE/LGFsZ3o9XHQ/LGt3bm89XHRsdWZxZW9sdDlramdnZm04am5kI3BxYD4ha3d3czksLGJnZ0Z1Zm13T2pwd2ZtZnFxZnBzbG1wamFvZiNlbHEjcC1pcCE9PyxwYHFqc3c9XHQsZWJ1amBsbS1qYGwhIyw9bHNmcWJ3am1kI3B6cHdmbiEjcHd6b2Y+IXRqZ3drOTJ3YnFkZnc+IVxcYW9ibWghPVB3YndmI1ZtanVmcXBqd3p3Znt3LmJvamRtOW9mZXc4XHRnbGB2bmZtdy10cWp3ZisvI2ptYG92Z2ptZCN3a2YjYnFsdm1nI3drZiN0bHFvZyo4Dlx0PyxwYHFqc3c9Dlx0PyEjcHd6b2Y+IWtmamRrdzk4bHVmcWVvbHQ5a2pnZ2ZtbmxxZiNqbWVscW5id2psbWJtI2ptd2ZxbWJ3amxtYm9iI25mbmFmcSNsZSN3a2YjbG1mI2xlI3drZiNlanFwd2BibSNhZiNlbHZtZyNqbSM/LGdqdT1cdFxuXG4/LGdqdT1cdGdqcHNvYno5I21sbWY4IT0hIyw9XHQ/b2ptaCNxZm8+IVx0IyMrZXZtYHdqbG0rKiN4d2tmIzI2d2sjYGZtd3Zxei1zcWZ1Zm13R2ZlYnZvdytvYnFkZiNtdm5hZnEjbGUjQXp5Ym13am1mI0Zuc2pxZi1pc2R/d2t2bmF/b2Zld391YnB3I25iaWxxand6I2xlbmJpbHFqd3ojbGUjd2tmIyNib2pkbT4hYGZtd2ZxIT1WbWp1ZnFwand6I1NxZnBwZ2xuam1id2ZnI2F6I3drZlBmYGxtZyNUbHFvZyNUYnFnanB3cWphdndqbG0jbGUjcHd6b2Y+IXNscGp3amxtOXdrZiNxZnB3I2xlI3drZiNga2JxYmB3ZnFqeWZnI2F6I3Fmbz4hbWxlbG9vbHQhPWdmcWp1ZnAjZXFsbiN3a2ZxYndrZnEjd2tibSN3a2YjYiNgbG5ham1id2psbSNsZXB3em9mPiF0amd3azkyMzNGbWRvanBrLnBzZmJoam1kYGxuc3Z3ZnEjcGBqZm1gZmFscWdmcT4hMyEjYm93PiF3a2YjZntqcHdmbWBmI2xlR2ZubGBxYndqYCNTYnF3eiEjcHd6b2Y+IW5icWRqbS5FbHEjd2tqcCNxZmJwbG0vLWlwIT0/LHBgcWpzdz1cdFxucEF6V2JkTWJuZitwKlgzXmlwIT0/LHBgcWpzdz0OXHQ/LWlwIT0/LHBgcWpzdz0OXHRvam1oI3Fmbz4hamBsbSEjJCNib3c+JCQjYG9icHA+JGVscW5id2psbSNsZSN3a2Z1ZnFwamxtcCNsZSN3a2YjPyxiPT8sZ2p1PT8sZ2p1PSxzYmRmPVx0IyM/c2JkZj1cdD9nanUjYG9icHA+IWBsbXdhZmBibmYjd2tmI2VqcXB3YWJrYnBiI0ptZ2xtZnBqYmZtZG9qcGsjK3BqbnNvZioieSJXIlciWyJRIlUiViJAPWk9bDxePFxcPW49bTxWPFQ8VjxSPFA8UzxcXDxRPFQ8VD1jPF48Vz1jPFk9bj1tPWM8eDxSPF08XFw8XjxUPW49YD1rPFk8VzxSPF48WTxWPFxcPWw8XFw8WzxePFQ9bjxUPWM8dDxRPW48WT1sPFE8WT1uPHI9bjxePFk9bjxUPW49YDxRPFxcPFM9bDxUPFA8WT1sPFQ8UT1uPFk9bDxRPFk9bjxWPFI9bjxSPWw8UjxfPFI9bT1uPWw8XFw8UTxUPWo9ZzxWPFxcPWs8WT1tPW48XjxZPW89bTxXPFI8XjxUPWM9aTxTPWw8UjxdPFc8WTxQPWc8UzxSPFc9bz1rPFQ9bj1gPWM8XjxXPWM9Yj1uPW09YzxRPFxcPFQ8XTxSPFc8WTxZPFY8UjxQPFM8XFw8UTxUPWM8XjxRPFQ8UDxcXDxRPFQ8WT1tPWw8WTxYPW09bjxePFxcNEs1aDVpNWQ0SzRaNWY0VTRLNWg0XTRKNWY0XzVmNEU0SzVoNEs1ajRGNW40SzVoNWk0WDRLNF01bzRLNEY1bzRLNWg0XzVmNEs0XTRLNEY0SzVoNWk1bzRGNWQ0RDRFNEs1aDRfNFU1ZDRDNWY0RTRLNEE0WTRLNEo1ZjRLNEY0SzVoNFU0SzVoNWk1ZjRFNEs1aDRZNWQ0RjVmNEs0RjRLNWg0SzVqNEY0XTVqNEY0SzVoNEY0WTRLNWk1ZjVpNEs1aDRJNF81aDRLNWk1ZjRLNWg1aTRYNEs0XTVvNEU0SzVoNWk0XTRKNWY0SzRGcWxhbHdwISNgbG13Zm13PiE/Z2p1I2pnPiFlbGx3ZnEhPXdrZiNWbWp3ZmcjUHdid2ZwP2puZCNwcWA+IWt3d3M5LCwtaXNkf3FqZGt3f3drdm5hfy1pcCE9PyxwYHFqc3c9Dlx0P29sYGJ3amxtLXNxbHdsYGxvZXFibmZhbHFnZnE+ITMhI3AhIyw9XHQ/bmZ3YiNtYm5mPiE/LGI9PyxnanU9PyxnanU9P2VsbXcudGZqZGt3OWFsb2c4JXJ2bHc4I2JtZyMlcnZsdzhnZnNmbWdqbWQjbG0jd2tmI25icWRqbTkzOHNiZ2dqbWQ5ISNxZm8+IW1sZWxvb2x0ISNTcWZwamdmbXcjbGUjd2tmI3d0Zm13amZ3ayNgZm13dnF6ZnVqcGpsbT1cdCMjPyxzYmRmSm13ZnFtZncjRntzb2xxZnFiLWJwem1gIz4jd3F2ZjgOXHRqbWVscW5id2psbSNiYWx2dz9nanUjamc+IWtmYmdmcSE9ISNiYHdqbG0+IWt3d3M5LCw/YiNrcWZlPiFrd3dzcDksLD9nanUjamc+IWBsbXdmbXchPyxnanU9Dlx0PyxnanU9Dlx0P2dmcWp1ZmcjZXFsbiN3a2YjP2puZCNwcWA+JGt3d3M5LCxiYGBscWdqbWQjd2wjd2tmI1x0PyxhbGd6PVx0Pyxrd25vPVx0cHd6b2Y+IWVsbXcucGp5ZjlwYHFqc3cjb2JtZHZiZGY+IUJxamJvLyNLZm91ZndqYGIvPyxiPT9wc2JtI2BvYnBwPiE/LHBgcWpzdz0/cGBxanN3I3Nsb2p3amBibyNzYnF3amZwd2c9Pyx3cT0/LHdiYW9mPT9rcWZlPiFrd3dzOSwsdHR0LWptd2Zxc3Fmd2J3amxtI2xlcWZvPiFwd3pvZnBrZmZ3ISNnbGB2bmZtdy10cWp3ZiskP2BrYnFwZnc+IXZ3ZS47IT1cdGFmZGptbWptZCNsZSN3a2YjcWZ1ZmJvZmcjd2tidyN3a2Z3Zm9mdWpwamxtI3BmcWpmcCEjcWZvPiFtbGVsb29sdCE9I3dicWRmdz4hXFxhb2JtaCE9YG9iam5qbWQjd2tidyN3a2Zrd3dzJjBCJjFFJjFFdHR0LW5ibWplZnB3YndqbG1wI2xlU3FqbmYjTmptanB3ZnEjbGVqbWVvdmZtYGZnI2F6I3drZmBvYnBwPiFgb2ZicWVqeyE9LGdqdT0OXHQ/LGdqdT0OXHQOXHR3a3FmZi5nam5mbXBqbG1ib0BrdnFgayNsZSNGbWRvYm1nbGUjTWxxd2sjQGJxbG9qbWJwcnZicWYjaGpvbG5md3FmcC1iZ2dGdWZtd09qcHdmbWZxZ2pwd2ptYHcjZXFsbiN3a2ZgbG5ubG1veiNobWx0bSNicFNrbG1md2pgI0Jvc2tiYWZ3Z2Zgb2JxZmcjd2tidyN3a2ZgbG13cWxvb2ZnI2F6I3drZkFmbWlibmptI0VxYm1ob2ptcWxvZi5zb2J6am1kI2RibmZ3a2YjVm1qdWZxcGp3eiNsZWptI1RmcHdmcW0jRnZxbHNmc2ZxcGxtYm8jYGxuc3Z3ZnFTcWxpZmB3I0R2d2ZtYWZxZHFmZGJxZ29mcHAjbGUjd2tma2JwI2FmZm0jc3Fsc2xwZmd3bGRmd2tmcSN0andrI3drZj0/LG9qPT9vaiNgb2JwcD4ham0jcGxuZiNgbHZtd3FqZnBuam0taXAhPT8scGBxanN3PWxlI3drZiNzbHN2b2J3amxtbGVlamBqYm8jb2JtZHZiZGY/am5kI3BxYD4ham5iZGZwLGpnZm13amVqZmcjYXojd2tmbWJ3dnFibyNxZnBsdnFgZnBgb2JwcGplamBid2psbSNsZWBibSNhZiNgbG1wamdmcWZncnZibXd2biNuZmBrYm1qYHBNZnVmcXdrZm9mcHAvI3drZm5qb29qbG0jemZicXAjYmRsPyxhbGd6PQ5cdD8sa3dubz0OInkiVyJXIlsiUSJVIlYiQFx0d2JoZiNiZ3VibXdiZGYjbGVibWcvI2JgYGxxZ2ptZCN3bGJ3d3FqYXZ3Zmcjd2wjd2tmTmpgcWxwbGV3I1RqbWdsdHB3a2YjZWpxcHcjYGZtd3ZxenZtZ2ZxI3drZiNgbG13cWxvZ2p1I2BvYnBwPiFrZmJnZnFwa2xxd296I2Jld2ZxI3drZm1sd2Jhb2YjZntgZnN3amxtd2ZtcCNsZSN3a2x2cGJtZ3BwZnVmcWJvI2dqZWVmcWZtd2JxbHZtZyN3a2YjdGxxb2ctcWZiYGtqbWQjbmpvandicXpqcGxvYndmZyNlcWxuI3drZmxzc2xwandqbG0jd2wjd2tmd2tmI0xvZyNXZnB3Ym5mbXdCZXFqYGJtI0JuZnFqYGJtcGptcGZxd2ZnI2ptd2wjd2tmcGZzYnFid2YjZXFsbiN3a2ZuZndxbHNsb2p3Ym0jYnFmYm5iaGZwI2p3I3NscHBqYW9mYmBobWx0b2ZnZGZnI3drYndicWR2YmFveiN3a2Yjbmxwd3d6c2Y+IXdme3csYHBwIT1cdHdrZiNKbXdmcW1id2psbWJvQmBgbHFnam1kI3dsI3drZiNzZj4hd2Z7dyxgcHAhIyw9XHRgbGptYGpnZiN0andrI3drZnd0bC53a2pxZ3AjbGUjd2tmR3Zxam1kI3dranAjd2puZi9ndnFqbWQjd2tmI3NmcWpsZ2JtbWx2bWBmZyN3a2J3I2tmd2tmI2ptd2ZxbWJ3amxtYm9ibWcjbmxxZiNxZmBmbXdvemFmb2pmdWZnI3drYncjd2tmYGxtcGBqbHZwbWZwcCNibWdlbHFuZnFveiNobWx0bSNicHB2cXFsdm1nZmcjYXojd2tmZWpxcHcjYnNzZmJxZmcjam1sYGBicGpsbWJvb3ojdnBmZ3NscGp3amxtOWJhcGxvdndmOCEjd2JxZGZ3PiFcXGFvYm1oISNzbHBqd2psbTlxZm9id2p1Zjh3Znt3LmJvamRtOWBmbXdmcThpYnssb2phcCxpcnZmcXosMi1hYmBoZHFsdm1nLmBsb2xxOSB3enNmPiFic3NvamBid2psbSxibWR2YmRmISNgbG13Zm13PiE/bmZ3YiNrd3dzLmZydmp1PiFTcWp1YmB6I1Nsb2pgej8sYj1mKyEmMEBwYHFqc3cjcHFgPiQhI3dicWRmdz4hXFxhb2JtaCE9TG0jd2tmI2x3a2ZxI2tibWcvLWlzZH93a3ZuYX9xamRrd38xPyxnanU9P2dqdSNgb2JwcD4hP2dqdSNwd3pvZj4hZW9sYnc5bWptZndmZm13ayNgZm13dnF6PyxhbGd6PQ5cdD8sa3dubz0OXHQ/am5kI3BxYD4ha3d3czksLHA4d2Z7dy5ib2pkbTlgZm13ZnFlbG13LnRmamRrdzkjYWxvZzgjQmBgbHFnam1kI3dsI3drZiNnamVlZnFmbWBmI2Fmd3RmZm0hI2VxYm5mYWxxZ2ZxPiEzISMhI3B3em9mPiFzbHBqd2psbTlvam1oI2txZmU+IWt3d3M5LCxrd25vNyxvbGxwZi1nd2chPVx0Z3Zxam1kI3dranAjc2ZxamxnPyx3Zz0/LHdxPT8sd2Jhb2Y9YG9scGZveiNxZm9id2ZnI3dsZWxxI3drZiNlanFwdyN3am5mOGVsbXcudGZqZGt3OWFsb2c4am1zdncjd3pzZj4hd2Z7dyEjP3BzYm0jcHd6b2Y+IWVsbXcubG1xZmJnenB3YndmYGtibWRmXG4/Z2p1I2BvYnBwPiFgb2ZicWdsYHZuZm13LW9sYGJ3amxtLSNFbHEjZntibnNvZi8jd2tmI2IjdGpnZiN1YnFqZnd6I2xlIz8iR0xAV1pTRiNrd25vPQ5cdD8lbWFwczglbWFwczglbWFwczghPT9iI2txZmU+IWt3d3M5LCxwd3pvZj4hZW9sYnc5b2ZldzhgbG1gZnFtZmcjdGp3ayN3a2Y+a3d3cyYwQiYxRSYxRXR0dC1qbSNzbHN2b2JxI2B2b3d2cWZ3enNmPiF3Znt3LGBwcCEjLD1qdyNqcCNzbHBwamFvZiN3bCNLYnF1YnFnI1ZtanVmcXBqd3p3em9mcGtmZnchI2txZmU+ISx3a2YjbmJqbSNga2JxYmB3ZnFMe2VscWcjVm1qdWZxcGp3eiMjbWJuZj4haGZ6dGxxZ3AhI2Bwd3pvZj4hd2Z7dy5ib2pkbTl3a2YjVm1qd2ZnI0hqbWRnbG5lZmdmcWJvI2RsdWZxbW5mbXc/Z2p1I3B3em9mPiFuYnFkam0jZ2ZzZm1nam1kI2xtI3drZiNnZnBgcWpzd2psbSNsZSN3a2Y/Z2p1I2BvYnBwPiFrZmJnZnEtbmptLWlwIT0/LHBgcWpzdz1nZnB3cXZgd2psbSNsZSN3a2Zwb2pka3dveiNnamVlZnFmbXdqbSNiYGBscWdibWBmI3Rqd2t3Zm9mYGxubnZtamBid2psbXBqbWdqYGJ3ZnAjd2tidyN3a2Zwa2xxd296I3drZnFmYmV3ZnFmcHNmYGpib296I2ptI3drZiNGdnFsc2ZibSNgbHZtd3FqZnBLbHRmdWZxLyN3a2ZxZiNicWZwcWA+IWt3d3M5LCxwd2J3amBwdmRkZnB3Zmcjd2tidyN3a2YhI3BxYD4ha3d3czksLHR0dC1iI29icWRmI212bmFmcSNsZSNXZm9mYGxubnZtamBid2psbXAhI3Fmbz4hbWxlbG9vbHQhI3dLbG96I1FsbmJtI0Zuc2ZxbHFib25scHcjZntgb3ZwanVmb3ohI2FscWdmcT4hMyEjYm93PiFQZmBxZndicXojbGUjUHdid2Zgdm9uam1id2ptZCNqbSN3a2ZASkIjVGxxb2cjRWJgd2FsbGh3a2YjbmxwdyNqbnNscXdibXdibW1qdWZxcGJxeiNsZSN3a2Zwd3pvZj4hYWJgaGRxbHZtZy4/b2o9P2ZuPT9iI2txZmU+ISx3a2YjQndvYm13amAjTGBmYm1wd3FqYHdveiNwc2ZiaGptZC9wa2xxd296I2FmZWxxZiN3a2ZnamVlZnFmbXcjd3pzZnAjbGV3a2YjTHd3bG5ibSNGbnNqcWY9P2puZCNwcWA+IWt3d3M5LCxCbSNKbXdxbGd2YHdqbG0jd2xgbG1wZnJ2Zm1gZiNsZSN3a2ZnZnNicXd2cWYjZXFsbiN3a2ZAbG1lZmdmcWJ3ZiNQd2J3ZnBqbWdqZGZtbHZwI3NmbHNvZnBTcWxgZmZnam1kcCNsZSN3a2ZqbWVscW5id2psbSNsbSN3a2Z3a2ZscWpmcCNrYnVmI2FmZm1qbXVsb3VmbmZtdyNqbSN3a2ZnanVqZ2ZnI2ptd2wjd2txZmZiZ2liYGZtdyNgbHZtd3FqZnBqcCNxZnBzbG1wamFvZiNlbHFnanBwbG92d2psbSNsZSN3a2ZgbG9vYmFscWJ3amxtI3Rqd2t0amdmb3ojcWZkYnFnZmcjYnBranAjYGxtd2Zuc2xxYnFqZnBlbHZtZ2ptZCNuZm5hZnEjbGVHbG5qbWpgYm0jUWZzdmFvamBkZm1mcWJvb3ojYmBgZnN3Zmd3a2Yjc2xwcGpham9qd3ojbGVicWYjYm9wbCNidWJqb2Jhb2Z2bWdmcSNgbG1wd3F2YHdqbG1xZnB3bHFid2psbSNsZSN3a2Z3a2YjZGZtZnFibyNzdmFvamBqcCNib25scHcjZm13anFmb3pzYnBwZnAjd2txbHZkayN3a2ZrYnAjYWZmbSNwdmRkZnB3ZmdgbG5zdndmcSNibWcjdWpnZmxEZnFuYm1qYCNvYm1kdmJkZnAjYmBgbHFnam1kI3dsI3drZiNnamVlZnFmbXcjZXFsbiN3a2Zwa2xxd296I2Jld2ZxdGJxZ3BrcWZlPiFrd3dzcDksLHR0dC1xZmBmbXcjZ2Z1Zm9sc25mbXdBbGJxZyNsZSNHanFmYHdscXA/Z2p1I2BvYnBwPiFwZmJxYGt/Iz9iI2txZmU+IWt3d3M5LCxKbSNzYnF3amB2b2JxLyN3a2ZOdm93anNvZiNlbGx3bWx3ZnBscSNsd2tmcSNwdmFwd2JtYGZ3a2x2cGJtZ3AjbGUjemZicXB3cWJtcG9id2psbSNsZSN3a2Y/LGdqdT0OXHQ/LGdqdT0OXHQOXHQ/YiNrcWZlPiFqbWdmey1za3N0YnAjZnB3YmFvanBrZmcjam1uam0taXAhPT8scGBxanN3PVx0c2Jxd2pganNid2Yjam0jd2tmYiNwd3FsbWQjam1lb3ZmbWBmcHd6b2Y+IW5icWRqbS53bHM5cWZzcWZwZm13ZmcjYXojd2tmZHFiZ3Zid2ZnI2VxbG4jd2tmV3FiZ2p3amxtYm9vei8jd2tmRm9mbmZtdyshcGBxanN3ISo4S2x0ZnVmcS8jcGptYGYjd2tmLGdqdT1cdD8sZ2p1PVx0P2dqdSNvZmV3OCNuYnFkam0ub2ZldzlzcWx3ZmB3amxtI2JkYmptcHczOCN1ZnF3amBiby5ib2pkbTlWbWVscXd2bWJ3Zm96LyN3a2Z3enNmPiFqbmJkZix7LmpgbG0sZ2p1PVx0P2dqdSNgb2JwcD4hI2BvYnBwPiFgb2ZicWVqeyE9P2dqdSNgb2JwcD4hZWxsd2ZxXG5cbj8sZ2p1PVx0XG5cbj8sZ2p1PVx0d2tmI25sd2psbSNzamB3dnFmPH09ZjxXPF88XFw9bD1tPFY8VDxdPWY8VzxfPFxcPWw9bTxWPFQ8SDxZPFg8WT1sPFxcPWo8VDxUPFE8WT1tPFY8UjxXPWA8VjxSPW08UjxSPF09ZTxZPFE8VDxZPW08UjxSPF09ZTxZPFE8VD1jPFM9bDxSPF89bDxcXDxQPFA9ZzxyPW48Uz1sPFxcPF48VD1uPWA8XTxZPW08UzxXPFxcPW48UTxSPFA8XFw9bjxZPWw8VDxcXDxXPWc8UzxSPFs8XjxSPFc9YzxZPW48UzxSPW08VzxZPFg8UTxUPFk9bDxcXDxbPFc8VD1rPFE9Zz1pPFM9bDxSPFg9bzxWPWo8VDxUPFM9bDxSPF89bDxcXDxQPFA8XFw8UzxSPFc8UTxSPW09bj1gPWI8UTxcXD1pPFI8WDxUPW49bT1jPFQ8WzxdPWw8XFw8UTxRPFI8WTxRPFxcPW08WTxXPFk8UTxUPWM8VDxbPFA8WTxRPFk8UTxUPWM8VjxcXD1uPFk8XzxSPWw8VDxUPHw8VzxZPFY9bTxcXDxRPFg9bFxmSEpcZklhXGZIWVxmSFJcZkhcXFxmSFJcZkhCXGZJZFxmSERcZkltXGZIaVxmSF5cZkhGXGZJYVxmSFxcXGZISlxmSFJcZkhEXGZIQVxmSFJcZkhcXFxmSEhcZklsXGZIQ1xmSGlcZkhEXGZJbVxmSEpcZklrXGZIWlxmSFVcZkhTXGZIRFxmSWFcZkhKXGZJbFxmSGtcZkhuXGZITVxmSFNcZkhDXGZIUlxmSEpcZkhTXGZIXlxmSWFcZkheXGZJbFxmSGlcZkhLXGZIU1xmSHlcZkhSXGZIXFxcZkhZXGZJbFxmSE1cZkhTXGZIQ1xmSWdcZkh2XGZIU1xmSHNcZklhXGZITFxmSWtcZkhUXGZIQlxmSFJcZkh2XGZIUlxmSFxcXGZIcFxmSG5cZkh5XGZJYVxmSFpcZkhEXGZISlxmSW1cZkhEXGZIU1xmSENcZkhSXGZIRlxmSWFcZkhcXFxmSENcZklnXGZIe1xmSGlcZkhEXGZJbVxmSFRcZkhSXGZIXFxcZkh9XGZIRFxmSF5cZkhSXGZIa1xmSERcZkhGXGZIUlxmSFxcXGZJYVxmSHNcZklsXGZIWlxmSFxcXGZJYVxmSEhcZklnXGZIblxmSF5cZklnXGZIeVxmSFRcZkhBXGZIUlxmSEdcZkhQXGZJYVxmSF5cZklkXGZIWlxmSFpcZkhcXFxmSWFcZkhIXGZJa1xmSG5cZkhGXGZJYVxmSFxcXGZISlxmSWtcZkhaXGZIRlxmSWFcZkheXGZJa1xmSENcZkhcXFxmSHlcZklrXGZIblxmSEpcZklhXGZIXFxcZkhUXGZJYVxmSElcZkhTXGZISFxmSFNcZkhlXGZISFxmSWFcZkhGXGZIUlxmSEpcZkhlXGZIRFxmSWFcZkhVXGZJa1xmSG5cZkh2XGZIU1xmSHNcZklhXGZITFxmSFJcZkhDXGZIUlxmSEhcZklhXGZIXFxcZkhSXGZIcFxmSWFcZkhDXGZIUlxmSEpcZkhSXGZIRlxmSW1cZkhcXFxmSFJcZkhEXGZJa1xmSHBcZklnXGZITVxmSFBcZklrXGZIblxmSGlcZkhEXGZJbVxmSFlcZkhSXGZISlxmSFpcZklhXGZIXFxcZklrXGZIT1xmSWxcZkhaXGZIU1xmSHlcZklhXGZIW1xmSFJcZkhUXGZIXFxcZkh5XGZIUlxmSFxcXGZJbFxmSFRcZkhuXGZIe1xmSWFcZkhcXFxmSFVcZkhGXGZIXFxcZkhTXGZIT1xmSFJcZkhCXGZIQFxmSWFcZkhcXFxmSFJcZkhuXGZITVxmSEBcZkh2XGZJYVxmSHZcZklnXGZIblxmSGVcZkhGXGZIXlxmSEBcZklhXGZIS1xmSEJcZkhuXGZISFxmSWFcZkhcXFxmSWxcZkhUXGZIblxmSEZcZkhcXFxmSWFcZkh5XGZIZVxmSEJcZklhXGZIQlxmSWxcZkhKXGZIQlxmSFJcZkhLXGZJYVxmSENcZkhCXGZIVFxmSFVcZkhSXGZIQ1xmSEhcZkhSXGZIWlxmSEBcZklhXGZISlxmSWdcZkhuXGZIQlxmSWxcZkhNXGZIU1xmSENcZkhSXGZIalxmSGRcZkhGXGZJbFxmSGNcZkheXGZIQlxmSWdcZkhAXGZIUlxmSGtcZkheXGZIVFxmSG5cZkh6XGZJYVxmSENcZkhSXGZIalxmSEZcZkhcXFxmSWtcZkhaXGZIRFxmSGlcZkhEXGZJbVxmSEBcZkhuXGZIS1xmSEBcZkhSXGZIcFxmSFBcZkhSXGZIXFxcZkhEXGZIWVxmSWxcZkhEXGZISFxmSEJcZkhGXGZJYVxmSFxcXGZIQlxmSW1cZkh6XGZIRlxmSWFcZkhcXFxmSFpcZklhXGZIRFxmSEZcZkhcXFxmSFNcZkhZXGZIUlxmSFxcXGZIRFxmSW1cZkh5XGZIVFxmSFJcZkhEXGZIVFxmSEJcZkhcXFxmSWFcZkhJXGZIRFxmSGpcZkhDXGZJZ1xmSHBcZkhTXGZISFxmSFRcZklnXGZIQlxmSFlcZkhSXGZIXFw0SzVoNWk0WDRLNF01bzRLNEY0SzVoNWk1ajRGNEM1ZjRLNEY0SzVoNW81aTRENWY1ZDRGNF00SzVoNWk0WDRLNWs0QzRLNEY0VTRDNEM0SzVoNF41ZDRLNF00VTRDNEM0SzVoNF00QzVkNEM0SzVoNEk0XzVoNEs1aTVmNEU0SzVoNW01ZDRGNWQ0WDVkNEQ0SzVoNWk0XzRLNEQ1bjRLNEY0SzVoNWk0VTVoNWQ1aTRLNEY0SzVoNWk0XzVoNF81aDRLNEY0SzVoNEA0XTRLNW01ZjVvNF80SzVoNEs0XzVoNEs1aTVmNEU0SzVoNEs0RjRZNEs1aDRLNEZoZnp0bHFncCEjYGxtd2Ztdz4hdDAtbHFkLDI6Ojose2t3bm8hPT9iI3dicWRmdz4hXFxhb2JtaCEjd2Z7dyxrd25vOCNga2JxcGZ3PiEjd2JxZGZ3PiFcXGFvYm1oIT0/d2Jhb2YjYGZvb3NiZ2dqbWQ+IWJ2d2xgbG5zb2Z3Zj4hbGVlISN3Znt3LmJvamRtOSNgZm13ZnE4d2wjb2JwdyN1ZnFwamxtI2F6I2FiYGhkcWx2bWcuYGxvbHE5IyAhI2txZmU+IWt3d3M5LCx0dHQtLGdqdT0/LGdqdT0/Z2p1I2pnPj9iI2txZmU+ISAhI2BvYnBwPiEhPT9qbmQjcHFgPiFrd3dzOSwsYHFqc3chI3BxYD4ha3d3czksLFx0P3BgcWpzdyNvYm1kdmJkZj4hLCxGTSEjIWt3d3M5LCx0dHQtdGZtYGxnZlZRSkBsbnNsbWZtdyshI2txZmU+IWlidWJwYHFqc3c5P2dqdSNgb2JwcD4hYGxtd2Ztd2dsYHZuZm13LXRxandmKyQ/cGBzbHBqd2psbTkjYmFwbG92d2Y4cGBxanN3I3BxYD4ha3d3czksLCNwd3pvZj4hbmJxZGptLndsczktbmptLWlwIT0/LHBgcWpzdz1cdD8sZ2p1PVx0P2dqdSNgb2JwcD4hdDAtbHFkLDI6Ojose2t3bm8hI1x0Dlx0PyxhbGd6PQ5cdD8sa3dubz1nanB3am1gd2psbSNhZnd0ZmZtLCEjd2JxZGZ3PiFcXGFvYm1oIT0/b2ptaCNrcWZlPiFrd3dzOSwsZm1gbGdqbWQ+IXZ3ZS47ITw9XHR0LWJnZ0Z1Zm13T2pwd2ZtZnE8YmB3amxtPiFrd3dzOSwsdHR0LWpgbG0hI2txZmU+IWt3d3M5LCwjcHd6b2Y+IWFiYGhkcWx2bWc5d3pzZj4hd2Z7dyxgcHAhIyw9XHRuZndiI3NxbHNmcXd6PiFsZDl3P2ptc3Z3I3d6c2Y+IXdme3chIyNwd3pvZj4hd2Z7dy5ib2pkbTl3a2YjZ2Z1Zm9sc25mbXcjbGUjd3pvZnBrZmZ3ISN3enNmPiF3Zmt3bm84I2BrYnFwZnc+dndlLjtqcCNgbG1wamdmcWZnI3dsI2Fmd2Jhb2YjdGpnd2s+ITIzMyYhI0ptI2JnZ2p3amxtI3dsI3drZiNgbG13cWphdndmZyN3bCN3a2YjZ2plZWZxZm1gZnAjYWZ3dGZmbWdmdWZvbHNuZm13I2xlI3drZiNKdyNqcCNqbnNscXdibXcjd2wjPyxwYHFqc3c9XHRcdD9wYHFqc3cjI3B3em9mPiFlbG13LnBqeWY5Mj0/LHBzYm09P3BzYm0jamc+ZGFPamFxYnF6I2xlI0BsbWRxZnBwP2puZCNwcWA+IWt3d3M5LCxqbkZtZG9qcGsjd3FibXBvYndqbG1CYGJnZm56I2xlI1BgamZtYGZwZ2p1I3B3em9mPiFnanBzb2J6OWBsbXB3cXZgd2psbSNsZSN3a2YtZGZ3Rm9mbmZtd0F6Smcramcqam0jYGxtaXZtYHdqbG0jdGp3a0ZvZm5mbXcrJHBgcWpzdyQqOCM/bmZ3YiNzcWxzZnF3ej4hbGQ5PH09ZjxXPF88XFw9bD1tPFY8VFx0I3d6c2Y+IXdme3chI21ibmY+IT1TcWp1YmB6I1Nsb2pgej8sYj1iZ25qbWpwd2ZxZmcjYXojd2tmZm1iYW9mUGptZG9mUWZydmZwd3B3em9mPiVydmx3OG5icWRqbTk/LGdqdT0/LGdqdT0/LGdqdT0/PT9qbmQjcHFgPiFrd3dzOSwsaiNwd3pvZj4lcnZsdzhlb2xidzlxZmVmcXFmZyN3bCNicCN3a2Yjd2x3Ym8jc2xzdm9id2psbSNsZWptI1RicGtqbWR3bG0vI0ctQC0jcHd6b2Y+IWFiYGhkcWx2bWcuYm5sbWQjbHdrZnEjd2tqbWRwL2xxZGJtanlid2psbSNsZSN3a2ZzYnF3amBqc2J3Zmcjam0jd2tmd2tmI2ptd3FsZ3Zgd2psbSNsZWpnZm13amVqZmcjdGp3ayN3a2ZlamB3amxtYm8jYGticWJgd2ZxI0x7ZWxxZyNWbWp1ZnFwand6I25qcHZtZ2ZxcHdibWdqbWQjbGVXa2ZxZiNicWYvI2tsdGZ1ZnEvcHd6b2Zwa2ZmdyEja3FmZT4hLEBsb3ZuYWpiI1ZtanVmcXBqd3pme3NibWdmZyN3bCNqbWBvdmdmdnB2Ym9veiNxZmVmcXFmZyN3bGptZ2pgYndqbWQjd2tidyN3a2ZrYnVmI3B2ZGRmcHdmZyN3a2J3YmVlam9qYndmZyN0andrI3drZmBscXFmb2J3amxtI2Fmd3RmZm1tdm5hZnEjbGUjZ2plZWZxZm13PT8sd2c9Pyx3cT0/LHdiYW9mPVFmc3Zhb2pgI2xlI0pxZm9ibWdcdD8scGBxanN3PVx0P3BgcWpzdyN2bWdmcSN3a2Yjam1lb3ZmbWBmYGxtd3FqYXZ3amxtI3dsI3drZkxlZWpgamJvI3RmYXBqd2YjbGVrZmJncnZicXdmcXAjbGUjd2tmYGZtd2ZxZmcjYnFsdm1nI3drZmpuc29qYGJ3amxtcCNsZSN3a2ZrYnVmI2FmZm0jZ2Z1Zm9sc2ZnRWZnZnFibyNRZnN2YW9qYCNsZWFmYGJuZiNqbWBxZmJwam1kb3pgbG13am12YndqbG0jbGUjd2tmTWx3Zi8ja2x0ZnVmcS8jd2tid3BqbmpvYnEjd2wjd2tidyNsZSNgYnNiYWpvandqZnAjbGUjd2tmYmBgbHFnYm1gZiN0andrI3drZnNicXdqYGpzYm13cCNqbSN3a2ZldnF3a2ZxI2dmdWZvbHNuZm13dm1nZnEjd2tmI2dqcWZgd2psbWpwI2xld2ZtI2BsbXBqZ2ZxZmdranAjemx2bWRmcSNhcWx3a2ZxPyx3Zz0/LHdxPT8sd2Jhb2Y9P2Ija3d3cy5mcnZqdT4hWy5WQi5za3pwamBibyNzcWxzZnF3amZwbGUjQXFqd2pwayNAbG92bmFqYmticCNhZmZtI2BxandqYGp5ZmcrdGp3ayN3a2YjZntgZnN3amxtcnZmcHdqbG1wI2JhbHZ3I3drZnNicHBqbWQjd2txbHZkayN3a2YzISNgZm9vc2JnZ2ptZD4hMyEjd2tsdnBibWdwI2xlI3NmbHNvZnFmZ2pxZmB3cCNrZnFmLSNFbHFrYnVmI2Bram9ncWZtI3ZtZ2ZxJjBGJjBALHBgcWpzdyYwRiEqKjg/YiNrcWZlPiFrd3dzOSwsdHR0LT9vaj0/YiNrcWZlPiFrd3dzOSwscGp3ZlxcbWJuZiEjYGxtd2Ztdz4hd2Z7dy5nZmBscWJ3amxtOW1sbWZwd3pvZj4hZ2pwc29iejkjbWxtZj9uZndiI2t3d3MuZnJ2anU+IVsubWZ0I0did2YrKi1kZndXam5mKyojd3pzZj4ham5iZGYsey5qYGxtIT8scHNibT0/cHNibSNgb2JwcD4hb2JtZHZiZGY+IWlidWJwYHFqc3d0am1nbHQtb2xgYndqbG0ta3FmZT9iI2txZmU+IWlidWJwYHFqc3c5Li49Dlx0P3BgcWpzdyN3enNmPiF3P2Ija3FmZT4ka3d3czksLHR0dC1rbHF3YHZ3I2pgbG0hI2txZmU+IT8sZ2p1PQ5cdD9nanUjYG9icHA+IT9wYHFqc3cjcHFgPiFrd3dzOSwsISNxZm8+IXB3em9mcGtmZnchI3c/LGdqdT1cdD9wYHFqc3cjd3pzZj4sYj0jP2Ija3FmZT4ha3d3czksLCNib29sdFdxYm1wc2JxZm1gej4hWy5WQi5AbG5zYndqYW9mISNgbG1xZm9id2psbXBranMjYWZ3dGZmbVx0PyxwYHFqc3c9Dlx0P3BgcWpzdyM/LGI9Pyxvaj0/LHZvPT8sZ2p1PWJwcGxgamJ3ZmcjdGp3ayN3a2Yjc3FsZHFibm5qbWQjb2JtZHZiZGY/LGI9P2Ija3FmZT4ha3d3czksLD8sYj0/LG9qPT9vaiNgb2JwcD4hZWxxbiNiYHdqbG0+IWt3d3M5LCw/Z2p1I3B3em9mPiFnanBzb2J6OXd6c2Y+IXdme3chI21ibmY+IXIhP3diYW9mI3RqZ3drPiEyMzMmISNhYmBoZHFsdm1nLnNscGp3amxtOSEjYWxxZ2ZxPiEzISN0amd3az4hcWZvPiFwa2xxd2B2dyNqYGxtISNrNT0/dm89P29qPT9iI2txZmU+ISMjP25md2Ija3d3cy5mcnZqdT4hYHBwISNuZmdqYj4hcGBxZmZtISNxZnBzbG1wamFvZiNlbHEjd2tmIyEjd3pzZj4hYnNzb2pgYndqbG0sISNwd3pvZj4hYWJgaGRxbHZtZy5rd25vOCNga2JxcGZ3PnZ3ZS47ISNib29sdHdxYm1wc2JxZm1gej4hcHd6b2Zwa2ZmdyEjd3pzZj4hd2YOXHQ/bmZ3YiNrd3dzLmZydmp1PiE9Pyxwc2JtPT9wc2JtI2BvYnBwPiEzISNgZm9vcHNiYGptZD4hMyE9OFx0PyxwYHFqc3c9XHQ/cGBxanN3I3BsbmZ3am5mcCNgYm9vZmcjd2tmZ2xmcCNtbHcjbWZgZnBwYnFqb3pFbHEjbmxxZiNqbWVscW5id2psbWJ3I3drZiNhZmRqbW1qbWQjbGUjPyJHTEBXWlNGI2t3bm89P2t3bm9zYnF3amB2b2Jxb3ojam0jd2tmI3d6c2Y+IWtqZ2dmbSEjbWJuZj4haWJ1YnBgcWpzdzl1bGpnKzMqOCFmZWVmYHdqdWZtZnBwI2xlI3drZiNidndsYGxuc29md2Y+IWxlZSEjZGZtZnFib296I2BsbXBqZ2ZxZmc9P2ptc3Z3I3d6c2Y+IXdme3chIyE9PyxwYHFqc3c9Dlx0P3BgcWpzd3drcWx2ZGtsdncjd2tmI3RscW9nYGxubmxtI25qcGBsbWBmc3dqbG1icHBsYGpid2psbSN0andrI3drZj8sZ2p1PVx0PyxnanU9XHQ/Z2p1I2BndnFqbWQja2pwI29qZWZ3am5mL2BscXFmcHNsbWdqbWQjd2wjd2tmd3pzZj4ham5iZGYsey5qYGxtISNibSNqbWBxZmJwam1kI212bmFmcWdqc29sbmJ3amAjcWZvYndqbG1wYnFmI2xld2ZtI2BsbXBqZ2ZxZmduZndiI2BrYnFwZnc+IXZ3ZS47ISM/am1zdncjd3pzZj4hd2Z7dyEjZntibnNvZnAjam1gb3ZnZiN3a2YhPT9qbmQjcHFgPiFrd3dzOSwsanNicXdqYGpzYndqbG0jam0jd2tmd2tmI2Zwd2Jhb2pwa25mbXcjbGVcdD8sZ2p1PVx0P2dqdSNgb2JwcD4hJWJuczhtYXBzOCVibnM4bWFwczh3bCNnZndmcW5qbWYjdGtmd2tmcXJ2andmI2dqZWVmcWZtdyNlcWxubmJxaGZnI3drZiNhZmRqbW1qbWRnanB3Ym1gZiNhZnd0ZmZtI3drZmBsbXdxamF2d2psbXAjd2wjd2tmYGxtZW9qYHcjYWZ3dGZmbSN3a2Z0amdmb3ojYGxtcGpnZnFmZyN3bHRicCNsbWYjbGUjd2tmI2VqcXB3dGp3ayN1YnF6am1kI2dmZHFmZnBrYnVmI3BzZmB2b2J3Zmcjd2tidytnbGB2bmZtdy1kZndGb2ZuZm13c2Jxd2pganNid2ptZCNqbSN3a2ZscWpkam1ib296I2dmdWZvbHNmZ2Z3YiNga2JxcGZ3PiF2d2UuOyE9I3d6c2Y+IXdme3csYHBwISMsPVx0am13ZnFga2JtZGZiYW96I3Rqd2tubHFmI2BvbHBmb3ojcWZvYndmZ3BsYGpibyNibWcjc2xvandqYGJvd2tidyN0bHZvZyNsd2tmcXRqcGZzZnFzZm1namB2b2JxI3dsI3drZnB3em9mI3d6c2Y+IXdme3csYHBwd3pzZj4hcHZhbmp3ISNtYm5mPiFlYm5qb2pmcCNxZnBqZ2ptZCNqbWdmdWZvbHNqbWQjYGx2bXdxamZwYGxuc3Z3ZnEjc3FsZHFibm5qbWRmYGxtbG5qYCNnZnVmb2xzbmZtd2dmd2ZxbmptYndqbG0jbGUjd2tmZWxxI25scWYjam1lbHFuYndqbG1sbSNwZnVmcWJvI2xgYGJwamxtcHNscXd2ZHYvRnAjK0Z2cWxzZnYqPE88Vj1sPFxcPXs8UT1tPWA8VjxcXD1vPFY9bDxcXD17PFE9bT1gPFY8XFw8TDxSPW09bTxUPFU9bTxWPFI8VTxQPFxcPW48WT1sPFQ8XFw8VzxSPF48VDxRPWg8Uj1sPFA8XFw9ajxUPFQ9bzxTPWw8XFw8XjxXPFk8UTxUPWM8UTxZPFI8XT1pPFI8WDxUPFA8UjxUPFE9aDxSPWw8UDxcXD1qPFQ9Yzx0PFE9aDxSPWw8UDxcXD1qPFQ9YzxMPFk9bTxTPW88XTxXPFQ8VjxUPFY8UjxXPFQ9azxZPW09bjxePFI8VDxRPWg8Uj1sPFA8XFw9ajxUPWI9bjxZPWw9bDxUPW48Uj1sPFQ8VDxYPFI9bT1uPFxcPW48Uj1rPFE8UjRLNWg1aTRGNWQ0SzRANEM1ZDVqNEs1aDRLNFg0RjRdNEs1bzRLNEY0SzVoNEs1bjRGNF00SzRBNEs0Rmt3bm84I2BrYnFwZnc+VldFLjshI3Bmd1dqbmZsdncrZXZtYHdqbG0rKmdqcHNvYno5am1vam1mLmFvbGBoOD9qbXN2dyN3enNmPiFwdmFuanchI3d6c2YjPiMkd2Z7dyxpYnVicGBxaj9qbmQjcHFgPiFrd3dzOSwsdHR0LSEjIWt3d3M5LCx0dHQtdDAtbHFkLHBrbHF3YHZ3I2pgbG0hI2txZmU+ISEjYnZ3bGBsbnNvZndmPiFsZWUhIz8sYj0/LGdqdT0/Z2p1I2BvYnBwPj8sYj0/LG9qPVx0P29qI2BvYnBwPiFgcHAhI3d6c2Y+IXdme3csYHBwISM/ZWxxbiNiYHdqbG0+IWt3d3M5LCx7dyxgcHAhI2txZmU+IWt3d3M5LCxvam1oI3Fmbz4hYm93ZnFtYndmISMOXHQ/cGBxanN3I3d6c2Y+IXdme3csI2xtYG9qYGg+IWlidWJwYHFqc3c5K21mdCNHYndmKi1kZndXam5mKyp+a2ZqZGt3PiEyISN0amd3az4hMiEjU2Zsc29mJHAjUWZzdmFvamAjbGUjIz9iI2txZmU+IWt3d3M5LCx0dHQtd2Z7dy5nZmBscWJ3amxtOXZtZ2Zxd2tmI2FmZGptbWptZCNsZSN3a2YjPyxnanU9XHQ/LGdqdT1cdD8sZ2p1PVx0ZnB3YmFvanBrbmZtdyNsZSN3a2YjPyxnanU9PyxnanU9PyxnanU9PyxnIHVqZnRzbHF3eG5qbS5rZmpka3c5XHQ/cGBxanN3I3BxYD4ha3d3czksLGxzd2psbT0/bHN3amxtI3Vib3ZmPmxld2ZtI3FmZWZxcWZnI3dsI2JwIyxsc3dqbG09XHQ/bHN3amxtI3Vib3Y/IkdMQFdaU0Yja3dubz1cdD8iLi5YSm13ZnFtYndqbG1ibyNCanFzbHF3PVx0P2Ija3FmZT4ha3d3czksLHR0dD8sYj0/YiNrcWZlPiFrd3dzOSwsdFxmVExcZlReXGZURVxmVF5cZlVoXGZUe1xmVE5ccm9JXHJvfFxyb0xccm97XHJvT1xyb3Zccm90XG5BTwVHeFxiVEFcbnprIytcdlVtBUd4KlxmSERcZkhTXGZIXFxcZklhXGZISlxmSWtcZkhaXGZITVxmSFJcZkhlXGZIRFxmSF5cZklnXGZITVxmSHlcZklhXGZIW1xmSWtcZkhIXGZJYVxmSFxcXGZIcFxmSFJcZkhEXGZIeVxmSFJcZkhcXFxmSWxcZkhUXGZIblxmSEBcZkhuXGZIS1xmSFNcZkhIXGZIVFxmSWFcZkhJXGZIUlxmSEZcZkhEXGZIUlxmSFRcZklhXGZIWVxmSWxcZkh5XGZIUlxmSFxcXGZIVFxmSG5cZkhUXGZJYVxmSHlcZkhcXFxmSE9cZkhUXGZIUlxmSEJcZkh7XGZJYVxmSFxcXGZJbFxmSHZcZkhTXGZIc1xmSWFcZkhMXGZJZ1xmSG5cZkhZXGZIU1xmSHBcZklhXGZIclxmSFJcZkhEXGZIaVxmSEJcZklrXGZIXFxcZkhTXGZIeVxmSFJcZkhZXGZIU1xmSEFcZkhTXGZIRFxmSWFcZkhEXGZIe1xmSFJcZkhNXGZIU1xmSENcZkhSXGZIbVxmSHlcZklhXGZIQ1xmSWdcZkhuXGZIeVxmSFNcZkhUXGZJbVxmSFxcXGZIeVxmSWFcZkhbXGZIUlxmSEZcZkhVXGZJbVxmSG1cZkh2XGZISFxmSWxcZkhGXGZJYVxmSFxcXGZIQFxmSG5cZkhLXGZIRFxmSHNcZkhTXGZIRlxmSWFcZkhGXGZIT1xmSWxcZkh5XGZJYVxmSFxcXGZIU1xmSHlcZklrXGZIc1xmSEZcZklhXGZIXFxcZkhSXGZIXFxcZkhuXGZIQVxmSEZcZklhXGZIXFxcZkhSXGZIRlxmSWFcZkhIXGZIQlxmSFJcZkheXGZIU1xmSHlcZklnXGZIblxmSFxcXGZIR1xmSFBcZklhXGZISFxmSFJcZkhcXFxmSERcZkhTXGZIXFxcZklhXGZIQlxmSFJcZkhPXGZIXlxmSFNcZkhCXGZIU1xmSHNcZklrXGZITWdmcGBxanN3amxtISNgbG13Zm13PiFnbGB2bmZtdy1vbGBid2psbS1zcWx3LWRmd0ZvZm5mbXdwQXpXYmRNYm5mKz8iR0xAV1pTRiNrd25vPVx0P2t3bm8jP25md2IjYGticXBmdz4hdndlLjshPTl2cW8hI2BsbXdmbXc+IWt3d3M5LCwtYHBwISNxZm8+IXB3em9mcGtmZnchcHd6b2Yjd3pzZj4hd2Z7dyxgcHAhPXd6c2Y+IXdme3csYHBwISNrcWZlPiF0MC1scWQsMjo6Oix7a3dubyEje25vd3pzZj4hd2Z7dyxpYnVicGBxanN3ISNuZndrbGc+IWRmdyEjYmB3amxtPiFvam1oI3Fmbz4hcHd6b2Zwa2ZmdyEjIz4jZ2xgdm5mbXctZGZ3Rm9mbmZtd3d6c2Y+IWpuYmRmLHsuamBsbSEjLD1gZm9vc2JnZ2ptZD4hMyEjYGZvb3BzLWBwcCEjd3pzZj4hd2Z7dyxgcHAhIz8sYj0/LG9qPT9vaj0/YiNrcWZlPiEhI3RqZ3drPiEyISNrZmpka3c+ITIhIT0/YiNrcWZlPiFrd3dzOSwsdHR0LXB3em9mPiFnanBzb2J6OW1sbWY4IT1ib3dmcW1id2YhI3d6c2Y+IWJzc29qLiwsVDBALCxHV0cjW0tXTk8jMi0zI2Zvb3BzYmBqbWQ+ITMhI2Bmb29zYmcjd3pzZj4ha2pnZ2ZtISN1Ym92Zj4hLGI9JW1hcHM4P3BzYm0jcWxvZj4hcFx0P2ptc3Z3I3d6c2Y+IWtqZ2dmbSEjb2JtZHZiZGY+IUlidWJQYHFqc3chIyNnbGB2bmZtdy1kZndGb2ZuZm13cEFkPiEzISNgZm9vcHNiYGptZD4hMyEjenNmPiF3Znt3LGBwcCEjbmZnamI+IXd6c2Y+JHdme3csaWJ1YnBgcWpzdyR0andrI3drZiNme2Bmc3dqbG0jbGUjenNmPiF3Znt3LGBwcCEjcWZvPiFwdyNrZmpka3c+ITIhI3RqZ3drPiEyISM+JChmbWBsZ2ZWUUpAbG5zbG1mbXcrP29qbWgjcWZvPiFib3dmcW1id2YhI1x0YWxnei8jd3EvI2ptc3Z3LyN3Znt3bmZ3YiNtYm5mPiFxbGFsd3AhI2BsbW5md2tsZz4hc2xwdyEjYmB3amxtPiE9XHQ/YiNrcWZlPiFrd3dzOSwsdHR0LWBwcCEjcWZvPiFwd3pvZnBrZmZ3ISM/LGdqdT0/LGdqdT0/Z2p1I2BvYnBwb2JtZHZiZGY+IWlidWJwYHFqc3chPWJxamIua2pnZ2ZtPiF3cXZmIT0uWz9xanN3ISN3enNmPiF3Znt3LGlidWJwbz4zOH4qKyo4XHQrZXZtYHdqbG0rKnhhYmBoZHFsdm1nLmpuYmRmOSN2cW8rLGI9Pyxvaj0/b2o9P2Ija3FmZT4ha1xuXG4/b2o9P2Ija3FmZT4ha3d3czksLGJ3bHEhI2JxamIua2pnZ2ZtPiF3cXY9Iz9iI2txZmU+IWt3d3M5LCx0dHQtb2JtZHZiZGY+IWlidWJwYHFqc3chIyxsc3dqbG09XHQ/bHN3amxtI3Vib3ZmLGdqdT0/LGdqdT0/Z2p1I2BvYnBwPnFid2xxISNicWpiLmtqZ2dmbT4hd3FmPittZnQjR2J3ZiotZGZ3V2puZisqc2xxd3Zkdi9GcCMrZ2wjQXFicGpvKjxSPWw8XzxcXDxRPFQ8WzxcXD1qPFQ8VDxePFI8WzxQPFI8WjxRPFI9bT1uPWA8UjxdPWw8XFw8WzxSPF48XFw8UTxUPWM9bDxZPF88VD1tPW49bDxcXD1qPFQ8VDxePFI8WzxQPFI8WjxRPFI9bT1uPFQ8UjxdPWM8WzxcXD1uPFk8Vz1gPFE8XFw/IkdMQFdaU0Yja3dubyNTVkFPSkAjIW13Lld6c2YhI2BsbXdmbXc+IXdme3csP25md2Ija3d3cy5mcnZqdT4hQGxtd2ZxYm1wandqbG1ibywsRk0hIyFrd3dzOT9rd25vI3tub21wPiFrd3dzOSwsdHR0LiwsVDBALCxHV0cjW0tXTk8jMi0zI1dHV0cse2t3bm8yLndxYm1wandqbG1ibywsdHR0LXQwLWxxZCxXUSx7a3dubzIsc2YjPiMkd2Z7dyxpYnVicGBxanN3JDg/bmZ3YiNtYm5mPiFnZnBgcWpzd2psbXNicWZtd01sZ2Ytam1wZnF3QWZlbHFmP2ptc3Z3I3d6c2Y+IWtqZ2dmbSEjbWJpcCEjd3pzZj4hd2Z7dyxpYnVicGBxaitnbGB2bmZtdyotcWZiZ3orZXZtYHdqcGBxanN3I3d6c2Y+IXdme3csaWJ1YnBqbmJkZiEjYGxtd2Ztdz4ha3d3czksLFZCLkBsbnNid2phb2YhI2BsbXdmbXc+d25vOCNga2JxcGZ3PnZ3ZS47ISMsPVx0b2ptaCNxZm8+IXBrbHF3YHZ3I2pgbG0/b2ptaCNxZm8+IXB3em9mcGtmZnchIz8scGBxanN3PVx0P3BgcWpzdyN3enNmPj4jZ2xgdm5mbXctYHFmYndmRm9mbmZtP2Ijd2JxZGZ3PiFcXGFvYm1oISNrcWZlPiNnbGB2bmZtdy1kZndGb2ZuZm13cEFqbXN2dyN3enNmPiF3Znt3ISNtYm5mPmItd3pzZiM+IyR3Znt3LGlidWJwYHFqbXN2dyN3enNmPiFramdnZm0hI21ibmZrd25vOCNga2JxcGZ3PnZ3ZS47ISMsPWd3ZyE9XHQ/a3dubyN7bm9tcD4ha3d3cy4sLFQwQCwsR1dHI0tXTk8jNy0zMiNXZm13cEF6V2JkTWJuZiskcGBxanN3JCpqbXN2dyN3enNmPiFramdnZm0hI21ibj9wYHFqc3cjd3pzZj4hd2Z7dyxpYnVicCEjcHd6b2Y+IWdqcHNvYno5bWxtZjghPWdsYHZuZm13LWRmd0ZvZm5mbXdBekpnKz5nbGB2bmZtdy1gcWZid2ZGb2ZuZm13KyQjd3pzZj4kd2Z7dyxpYnVicGBxanN3JGptc3Z3I3d6c2Y+IXdme3chI21ibmY+IWctZGZ3Rm9mbmZtd3BBeldiZE1ibmYrcG1qYGJvISNrcWZlPiFrd3dzOSwsdHR0LUAsLEdXRyNLV05PIzctMzIjV3FibXBqdz9wd3pvZiN3enNmPiF3Znt3LGBwcCE9XHRcdD9wd3pvZiN3enNmPiF3Znt3LGBwcCE9amxtYm8tZ3dnIT1cdD9rd25vI3tub21wPmt3d3MuZnJ2anU+IUBsbXdmbXcuV3pzZmdqbWQ+ITMhI2Bmb29wc2Jgam1kPiEzIWt3bm84I2BrYnFwZnc+dndlLjshIyw9XHQjcHd6b2Y+IWdqcHNvYno5bWxtZjghPT8/b2o9P2Ija3FmZT4ha3d3czksLHR0dC0jd3pzZj4kd2Z7dyxpYnVicGBxanN3JD08WDxZPWM9bjxZPFc9YDxRPFI9bT1uPFQ9bTxSPFI9bjxePFk9bj1tPW48XjxUPFQ8Uz1sPFI8VDxbPF48UjxYPW09bjxePFxcPF08WTxbPFI8UzxcXD1tPFE8Uj1tPW48VFxmSEZcZkltXGZIVFxmSWFcZkhIXGZIU1xmSHlcZkhSXGZIeVxmSFJcZkhuXGZIe1xmSWFcZkhcXFxmSWtcZkhUXGZIZVxmSERcZklhXGZIVVxmSWdcZkhuXGZIRFxmSWtcZkhZXGZIU1xmSEtcZkhSXGZIRFxmSFRcZkhBXGZIUlxmSEdcZkhTXGZIeVxmSWFcZkhUXGZIU1xmSG5cZkh7XGZIVFxmSW1cZkhcXFxmSHlcZklhXGZIW1xmSFNcZkhIXGZIeVxmSWVcZkhGXGZJbFxmSFxcXGZIUlxmSGtcZkhzXGZIWVxmSFNcZkhwXGZJYVxmSHJcZkhSXGZIRlxmSERcZkh5XGZIUlxmSFxcXGZJYVxmSFxcXGZIWVxmSFJcZkhkXGZIVFxmSHlcZklhXGZIXFxcZkhTXGZIQ1xmSEhcZkhSJywi27clxownVCXChSdXJcOXJU8lZyXCpibGkyXHpSY+JiomJyZeJsKIxbjgsL4mxq0mxpImKSZeJiUmJybCgiZQJjEmwrEmMyZdJm0mdSZFJnQmQybDjyZWJlYmLyY+JjYm4L224Z28byZwJkAmRSZNJlAmeCZAJkYmZSbDjCY3JjomKCZEJjAmQyYpJi4mRiYtJjEmKCZMJkYmMcmeKs+q4oezJuGNsiZLJjsmKSZFJkgmUCYwJj8mOSZWJsKBJi0mdiZhJiwmRSYpJj8mPSYnJicmQibgtK4m1IMmzJYqJio4JiUmJSYmJiUsKSbCmiY+JsKGJjcmXSZGJjImPiZKJjYmbiYyJiUmPybCjiYyJjYmSiZnJi0mMCYsJiomSiYqJk8mKSY2JigmPCZCJk4mLiZQJkAmMiYuJlcmTSYl1LzChCgsKDwmLCbPmibho4cmLSYsKCUmKCYlJijEuzAmWCZEJsKBJmomJyZKJigmLiZCJjMmWiZSJmgmMyZFJkUmPMOGLc2g4buzJiU4PyZAJiwmWiZAJjAmSiYsJl4meCZfJjYmQyY2JkPcrOKopSZmJi0mLSYtJi0mLCZKJjImOCZ6JjgmQyZZJjgmLSZkJuG5uMOMLSY3JjEmRiY3JnQmVyY3JkkmLiYuJl4mPeC+nOGnkyY4KD4mLyYvJt27Jykn4YGlJyknJUAvJjAmJdC+4KeAKiYqQCZD1L3XlMm016s04LeX3JrTkTbgtoQmL8W4zINaJiolyYbPvybEtCYxwqjStMW0IixnLCJBQUFBS0tMTEtLS0tLSkpJSEhJSEhHR0ZGIik7IWZ1bmN0aW9uIHNldERhdGEoZSx0KXtjb25zdCBuPW0sYT1wO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7KytlKWFbZV09dFtlXTtsZXQgcj0wO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7KytlKXtuW2VdPXI7Y29uc3QgdD1hW2VdOzAhPT10JiYocis9ZTw8KDMxJnQpKX1mb3IobGV0IGU9dC5sZW5ndGg7ZTwzMjsrK2UpbltlXT1yO3U9ZX0oZCxnKTtmdW5jdGlvbiBJbnB1dFN0cmVhbShlKXt0aGlzLmRhdGE9bmV3IEludDhBcnJheSgwKTt0aGlzLm9mZnNldD0wO3RoaXMuZGF0YT1lfWZ1bmN0aW9uIHJlYWRJbnB1dChlLHQsbixhKXtpZihudWxsPT09ZS5pbnB1dClyZXR1cm4tMTtjb25zdCByPWUuaW5wdXQscz1NYXRoLm1pbihyLm9mZnNldCthLHIuZGF0YS5sZW5ndGgpLGk9cy1yLm9mZnNldDt0LnNldChyLmRhdGEuc3ViYXJyYXkoci5vZmZzZXQscyksbik7ci5vZmZzZXQrPWk7cmV0dXJuIGl9ZnVuY3Rpb24gdG9VdGY4UnVuZXMoZSl7Y29uc3QgdD1lLmxlbmd0aCxuPW5ldyBJbnQzMkFycmF5KHQpO2ZvcihsZXQgYT0wO2E8dDsrK2EpblthXT1lLmNoYXJDb2RlQXQoYSk7cmV0dXJuIG59ZnVuY3Rpb24gbWFrZUVycm9yKGUsdCl7aWYodD49MClyZXR1cm4gdDtlLnJ1bm5pbmdTdGF0ZT49MCYmKGUucnVubmluZ1N0YXRlPXQpO3Rocm93IG5ldyBFcnJvcigiQnJvdGxpIGVycm9yIGNvZGU6ICIrdCl9cmV0dXJuIGZ1bmN0aW9uIGRlY29kZShlLHQpe2xldCBuPW5ldyBTdGF0ZTtuLmlucHV0PW5ldyBJbnB1dFN0cmVhbShlKTtpbml0U3RhdGUobik7aWYodCl7bGV0IGU9dC5jdXN0b21EaWN0aW9uYXJ5O2UmJmZ1bmN0aW9uIGF0dGFjaERpY3Rpb25hcnlDaHVuayhlLHQpe2lmKDEhPT1lLnJ1bm5pbmdTdGF0ZSlyZXR1cm4gbWFrZUVycm9yKGUsLTI0KTtpZigwPT09ZS5jZE51bUNodW5rcyl7ZS5jZENodW5rcz1uZXcgQXJyYXkoMTYpO2UuY2RDaHVua09mZnNldHM9bmV3IEludDMyQXJyYXkoMTYpO2UuY2RCbG9ja0JpdHM9LTF9aWYoMTU9PT1lLmNkTnVtQ2h1bmtzKXJldHVybiBtYWtlRXJyb3IoZSwtMjcpO2UuY2RDaHVua3NbZS5jZE51bUNodW5rc109dDtlLmNkTnVtQ2h1bmtzKys7ZS5jZFRvdGFsU2l6ZSs9dC5sZW5ndGg7ZS5jZENodW5rT2Zmc2V0c1tlLmNkTnVtQ2h1bmtzXT1lLmNkVG90YWxTaXplO3JldHVybiAwfShuLGUpfWxldCBhPTAscj1bXTtmb3IoOzspe2xldCBlPW5ldyBJbnQ4QXJyYXkoMTYzODQpO3IucHVzaChlKTtuLm91dHB1dD1lO24ub3V0cHV0T2Zmc2V0PTA7bi5vdXRwdXRMZW5ndGg9MTYzODQ7bi5vdXRwdXRVc2VkPTA7ZGVjb21wcmVzcyhuKTthKz1uLm91dHB1dFVzZWQ7aWYobi5vdXRwdXRVc2VkPDE2Mzg0KWJyZWFrfSFmdW5jdGlvbiBjbG9zZShlKXtpZigwPT09ZS5ydW5uaW5nU3RhdGUpcmV0dXJuIG1ha2VFcnJvcihlLC0yNSk7ZS5ydW5uaW5nU3RhdGU+MCYmKGUucnVubmluZ1N0YXRlPTExKTtyZXR1cm4gMH0obik7IWZ1bmN0aW9uIGNsb3NlSW5wdXQoZSl7ZS5pbnB1dD1uZXcgSW5wdXRTdHJlYW0obmV3IEludDhBcnJheSgwKSl9KG4pO2xldCBzPW5ldyBJbnQ4QXJyYXkoYSksaT0wO2ZvcihsZXQgZT0wO2U8ci5sZW5ndGg7KytlKXtsZXQgdD1yW2VdLG49TWF0aC5taW4oYSxpKzE2Mzg0KS1pO248MTYzODQ/cy5zZXQodC5zdWJhcnJheSgwLG4pLGkpOnMuc2V0KHQsaSk7aSs9bn1yZXR1cm4gc319KSgpO2NsYXNzIEJyb3RsaVN0cmVhbSBleHRlbmRzIERlY29kZVN0cmVhbXsjXz0hMDtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKHQpO3RoaXMuc3RyZWFtPWU7dGhpcy5kaWN0PWUuZGljdH1yZWFkQmxvY2soKXtjb25zdCBlPXRoaXMuc3RyZWFtLmdldEJ5dGVzKCksdD1VbihuZXcgSW50OEFycmF5KGUuYnVmZmVyLGUuYnl0ZU9mZnNldCxlLmxlbmd0aCkpO3RoaXMuYnVmZmVyPW5ldyBVaW50OEFycmF5KHQuYnVmZmVyLHQuYnl0ZU9mZnNldCx0Lmxlbmd0aCk7dGhpcy5idWZmZXJMZW5ndGg9dGhpcy5idWZmZXIubGVuZ3RoO3RoaXMuZW9mPSEwfWFzeW5jIGdldEltYWdlRGF0YShlLHQpe2NvbnN0IG49YXdhaXQgdGhpcy5hc3luY0dldEJ5dGVzKCk7cmV0dXJuIG4/bi5sZW5ndGg8PWU/bjpuLnN1YmFycmF5KDAsZSk6dGhpcy5nZXRCeXRlcyhlKX1hc3luYyBhc3luY0dldEJ5dGVzKCl7Y29uc3R7ZGVjb21wcmVzc2VkOmUsY29tcHJlc3NlZDp0fT1hd2FpdCB0aGlzLmFzeW5jR2V0Qnl0ZXNGcm9tRGVjb21wcmVzc2lvblN0cmVhbSgiYnJvdGxpIik7aWYoZSlyZXR1cm4gZTt0aGlzLiNfPSExO3RoaXMuc3RyZWFtPW5ldyBTdHJlYW0odCwwLHQubGVuZ3RoLHRoaXMuc3RyZWFtLmRpY3QpO3RoaXMucmVzZXQoKTtyZXR1cm4gbnVsbH1nZXQgaXNBc3luYygpe3JldHVybiB0aGlzLiNffX1jb25zdCBYbj0tMSxXbj1bWy0xLC0xXSxbLTEsLTFdLFs3LDhdLFs3LDddLFs2LDZdLFs2LDZdLFs2LDVdLFs2LDVdLFs0LDBdLFs0LDBdLFs0LDBdLFs0LDBdLFs0LDBdLFs0LDBdLFs0LDBdLFs0LDBdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDFdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFszLDRdLFszLDNdLFszLDNdLFszLDNdLFszLDNdLFszLDNdLFszLDNdLFszLDNdLFszLDNdLFszLDNdLFszLDNdLFszLDNdLFszLDNdLFszLDNdLFszLDNdLFszLDNdLFszLDNdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdLFsxLDJdXSxLbj1bWy0xLC0xXSxbMTIsLTJdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbMTEsMTc5Ml0sWzExLDE3OTJdLFsxMiwxOTg0XSxbMTIsMjA0OF0sWzEyLDIxMTJdLFsxMiwyMTc2XSxbMTIsMjI0MF0sWzEyLDIzMDRdLFsxMSwxODU2XSxbMTEsMTg1Nl0sWzExLDE5MjBdLFsxMSwxOTIwXSxbMTIsMjM2OF0sWzEyLDI0MzJdLFsxMiwyNDk2XSxbMTIsMjU2MF1dLFZuPVtbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFs4LDI5XSxbOCwyOV0sWzgsMzBdLFs4LDMwXSxbOCw0NV0sWzgsNDVdLFs4LDQ2XSxbOCw0Nl0sWzcsMjJdLFs3LDIyXSxbNywyMl0sWzcsMjJdLFs3LDIzXSxbNywyM10sWzcsMjNdLFs3LDIzXSxbOCw0N10sWzgsNDddLFs4LDQ4XSxbOCw0OF0sWzYsMTNdLFs2LDEzXSxbNiwxM10sWzYsMTNdLFs2LDEzXSxbNiwxM10sWzYsMTNdLFs2LDEzXSxbNywyMF0sWzcsMjBdLFs3LDIwXSxbNywyMF0sWzgsMzNdLFs4LDMzXSxbOCwzNF0sWzgsMzRdLFs4LDM1XSxbOCwzNV0sWzgsMzZdLFs4LDM2XSxbOCwzN10sWzgsMzddLFs4LDM4XSxbOCwzOF0sWzcsMTldLFs3LDE5XSxbNywxOV0sWzcsMTldLFs4LDMxXSxbOCwzMV0sWzgsMzJdLFs4LDMyXSxbNiwxXSxbNiwxXSxbNiwxXSxbNiwxXSxbNiwxXSxbNiwxXSxbNiwxXSxbNiwxXSxbNiwxMl0sWzYsMTJdLFs2LDEyXSxbNiwxMl0sWzYsMTJdLFs2LDEyXSxbNiwxMl0sWzYsMTJdLFs4LDUzXSxbOCw1M10sWzgsNTRdLFs4LDU0XSxbNywyNl0sWzcsMjZdLFs3LDI2XSxbNywyNl0sWzgsMzldLFs4LDM5XSxbOCw0MF0sWzgsNDBdLFs4LDQxXSxbOCw0MV0sWzgsNDJdLFs4LDQyXSxbOCw0M10sWzgsNDNdLFs4LDQ0XSxbOCw0NF0sWzcsMjFdLFs3LDIxXSxbNywyMV0sWzcsMjFdLFs3LDI4XSxbNywyOF0sWzcsMjhdLFs3LDI4XSxbOCw2MV0sWzgsNjFdLFs4LDYyXSxbOCw2Ml0sWzgsNjNdLFs4LDYzXSxbOCwwXSxbOCwwXSxbOCwzMjBdLFs4LDMyMF0sWzgsMzg0XSxbOCwzODRdLFs1LDEwXSxbNSwxMF0sWzUsMTBdLFs1LDEwXSxbNSwxMF0sWzUsMTBdLFs1LDEwXSxbNSwxMF0sWzUsMTBdLFs1LDEwXSxbNSwxMF0sWzUsMTBdLFs1LDEwXSxbNSwxMF0sWzUsMTBdLFs1LDEwXSxbNSwxMV0sWzUsMTFdLFs1LDExXSxbNSwxMV0sWzUsMTFdLFs1LDExXSxbNSwxMV0sWzUsMTFdLFs1LDExXSxbNSwxMV0sWzUsMTFdLFs1LDExXSxbNSwxMV0sWzUsMTFdLFs1LDExXSxbNSwxMV0sWzcsMjddLFs3LDI3XSxbNywyN10sWzcsMjddLFs4LDU5XSxbOCw1OV0sWzgsNjBdLFs4LDYwXSxbOSwxNDcyXSxbOSwxNTM2XSxbOSwxNjAwXSxbOSwxNzI4XSxbNywxOF0sWzcsMThdLFs3LDE4XSxbNywxOF0sWzcsMjRdLFs3LDI0XSxbNywyNF0sWzcsMjRdLFs4LDQ5XSxbOCw0OV0sWzgsNTBdLFs4LDUwXSxbOCw1MV0sWzgsNTFdLFs4LDUyXSxbOCw1Ml0sWzcsMjVdLFs3LDI1XSxbNywyNV0sWzcsMjVdLFs4LDU1XSxbOCw1NV0sWzgsNTZdLFs4LDU2XSxbOCw1N10sWzgsNTddLFs4LDU4XSxbOCw1OF0sWzYsMTkyXSxbNiwxOTJdLFs2LDE5Ml0sWzYsMTkyXSxbNiwxOTJdLFs2LDE5Ml0sWzYsMTkyXSxbNiwxOTJdLFs2LDE2NjRdLFs2LDE2NjRdLFs2LDE2NjRdLFs2LDE2NjRdLFs2LDE2NjRdLFs2LDE2NjRdLFs2LDE2NjRdLFs2LDE2NjRdLFs4LDQ0OF0sWzgsNDQ4XSxbOCw1MTJdLFs4LDUxMl0sWzksNzA0XSxbOSw3NjhdLFs4LDY0MF0sWzgsNjQwXSxbOCw1NzZdLFs4LDU3Nl0sWzksODMyXSxbOSw4OTZdLFs5LDk2MF0sWzksMTAyNF0sWzksMTA4OF0sWzksMTE1Ml0sWzksMTIxNl0sWzksMTI4MF0sWzksMTM0NF0sWzksMTQwOF0sWzcsMjU2XSxbNywyNTZdLFs3LDI1Nl0sWzcsMjU2XSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwyXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNCwzXSxbNSwxMjhdLFs1LDEyOF0sWzUsMTI4XSxbNSwxMjhdLFs1LDEyOF0sWzUsMTI4XSxbNSwxMjhdLFs1LDEyOF0sWzUsMTI4XSxbNSwxMjhdLFs1LDEyOF0sWzUsMTI4XSxbNSwxMjhdLFs1LDEyOF0sWzUsMTI4XSxbNSwxMjhdLFs1LDhdLFs1LDhdLFs1LDhdLFs1LDhdLFs1LDhdLFs1LDhdLFs1LDhdLFs1LDhdLFs1LDhdLFs1LDhdLFs1LDhdLFs1LDhdLFs1LDhdLFs1LDhdLFs1LDhdLFs1LDhdLFs1LDldLFs1LDldLFs1LDldLFs1LDldLFs1LDldLFs1LDldLFs1LDldLFs1LDldLFs1LDldLFs1LDldLFs1LDldLFs1LDldLFs1LDldLFs1LDldLFs1LDldLFs1LDldLFs2LDE2XSxbNiwxNl0sWzYsMTZdLFs2LDE2XSxbNiwxNl0sWzYsMTZdLFs2LDE2XSxbNiwxNl0sWzYsMTddLFs2LDE3XSxbNiwxN10sWzYsMTddLFs2LDE3XSxbNiwxN10sWzYsMTddLFs2LDE3XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw0XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbNiwxNF0sWzYsMTRdLFs2LDE0XSxbNiwxNF0sWzYsMTRdLFs2LDE0XSxbNiwxNF0sWzYsMTRdLFs2LDE1XSxbNiwxNV0sWzYsMTVdLFs2LDE1XSxbNiwxNV0sWzYsMTVdLFs2LDE1XSxbNiwxNV0sWzUsNjRdLFs1LDY0XSxbNSw2NF0sWzUsNjRdLFs1LDY0XSxbNSw2NF0sWzUsNjRdLFs1LDY0XSxbNSw2NF0sWzUsNjRdLFs1LDY0XSxbNSw2NF0sWzUsNjRdLFs1LDY0XSxbNSw2NF0sWzUsNjRdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDZdLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddLFs0LDddXSxHbj1bWy0xLC0xXSxbLTEsLTFdLFsxMiwtMl0sWzEyLC0yXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbLTEsLTFdLFsxMSwxNzkyXSxbMTEsMTc5Ml0sWzExLDE3OTJdLFsxMSwxNzkyXSxbMTIsMTk4NF0sWzEyLDE5ODRdLFsxMiwyMDQ4XSxbMTIsMjA0OF0sWzEyLDIxMTJdLFsxMiwyMTEyXSxbMTIsMjE3Nl0sWzEyLDIxNzZdLFsxMiwyMjQwXSxbMTIsMjI0MF0sWzEyLDIzMDRdLFsxMiwyMzA0XSxbMTEsMTg1Nl0sWzExLDE4NTZdLFsxMSwxODU2XSxbMTEsMTg1Nl0sWzExLDE5MjBdLFsxMSwxOTIwXSxbMTEsMTkyMF0sWzExLDE5MjBdLFsxMiwyMzY4XSxbMTIsMjM2OF0sWzEyLDI0MzJdLFsxMiwyNDMyXSxbMTIsMjQ5Nl0sWzEyLDI0OTZdLFsxMiwyNTYwXSxbMTIsMjU2MF0sWzEwLDE4XSxbMTAsMThdLFsxMCwxOF0sWzEwLDE4XSxbMTAsMThdLFsxMCwxOF0sWzEwLDE4XSxbMTAsMThdLFsxMiw1Ml0sWzEyLDUyXSxbMTMsNjQwXSxbMTMsNzA0XSxbMTMsNzY4XSxbMTMsODMyXSxbMTIsNTVdLFsxMiw1NV0sWzEyLDU2XSxbMTIsNTZdLFsxMywxMjgwXSxbMTMsMTM0NF0sWzEzLDE0MDhdLFsxMywxNDcyXSxbMTIsNTldLFsxMiw1OV0sWzEyLDYwXSxbMTIsNjBdLFsxMywxNTM2XSxbMTMsMTYwMF0sWzExLDI0XSxbMTEsMjRdLFsxMSwyNF0sWzExLDI0XSxbMTEsMjVdLFsxMSwyNV0sWzExLDI1XSxbMTEsMjVdLFsxMywxNjY0XSxbMTMsMTcyOF0sWzEyLDMyMF0sWzEyLDMyMF0sWzEyLDM4NF0sWzEyLDM4NF0sWzEyLDQ0OF0sWzEyLDQ0OF0sWzEzLDUxMl0sWzEzLDU3Nl0sWzEyLDUzXSxbMTIsNTNdLFsxMiw1NF0sWzEyLDU0XSxbMTMsODk2XSxbMTMsOTYwXSxbMTMsMTAyNF0sWzEzLDEwODhdLFsxMywxMTUyXSxbMTMsMTIxNl0sWzEwLDY0XSxbMTAsNjRdLFsxMCw2NF0sWzEwLDY0XSxbMTAsNjRdLFsxMCw2NF0sWzEwLDY0XSxbMTAsNjRdXSwkbj1bWzgsMTNdLFs4LDEzXSxbOCwxM10sWzgsMTNdLFs4LDEzXSxbOCwxM10sWzgsMTNdLFs4LDEzXSxbOCwxM10sWzgsMTNdLFs4LDEzXSxbOCwxM10sWzgsMTNdLFs4LDEzXSxbOCwxM10sWzgsMTNdLFsxMSwyM10sWzExLDIzXSxbMTIsNTBdLFsxMiw1MV0sWzEyLDQ0XSxbMTIsNDVdLFsxMiw0Nl0sWzEyLDQ3XSxbMTIsNTddLFsxMiw1OF0sWzEyLDYxXSxbMTIsMjU2XSxbMTAsMTZdLFsxMCwxNl0sWzEwLDE2XSxbMTAsMTZdLFsxMCwxN10sWzEwLDE3XSxbMTAsMTddLFsxMCwxN10sWzEyLDQ4XSxbMTIsNDldLFsxMiw2Ml0sWzEyLDYzXSxbMTIsMzBdLFsxMiwzMV0sWzEyLDMyXSxbMTIsMzNdLFsxMiw0MF0sWzEyLDQxXSxbMTEsMjJdLFsxMSwyMl0sWzgsMTRdLFs4LDE0XSxbOCwxNF0sWzgsMTRdLFs4LDE0XSxbOCwxNF0sWzgsMTRdLFs4LDE0XSxbOCwxNF0sWzgsMTRdLFs4LDE0XSxbOCwxNF0sWzgsMTRdLFs4LDE0XSxbOCwxNF0sWzgsMTRdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTBdLFs3LDEwXSxbNywxMF0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbNywxMV0sWzcsMTFdLFs3LDExXSxbOSwxNV0sWzksMTVdLFs5LDE1XSxbOSwxNV0sWzksMTVdLFs5LDE1XSxbOSwxNV0sWzksMTVdLFsxMiwxMjhdLFsxMiwxOTJdLFsxMiwyNl0sWzEyLDI3XSxbMTIsMjhdLFsxMiwyOV0sWzExLDE5XSxbMTEsMTldLFsxMSwyMF0sWzExLDIwXSxbMTIsMzRdLFsxMiwzNV0sWzEyLDM2XSxbMTIsMzddLFsxMiwzOF0sWzEyLDM5XSxbMTEsMjFdLFsxMSwyMV0sWzEyLDQyXSxbMTIsNDNdLFsxMCwwXSxbMTAsMF0sWzEwLDBdLFsxMCwwXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdLFs3LDEyXSxbNywxMl0sWzcsMTJdXSxZbj1bWy0xLC0xXSxbLTEsLTFdLFstMSwtMV0sWy0xLC0xXSxbNiw5XSxbNiw4XSxbNSw3XSxbNSw3XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw2XSxbNCw1XSxbNCw1XSxbNCw1XSxbNCw1XSxbMywxXSxbMywxXSxbMywxXSxbMywxXSxbMywxXSxbMywxXSxbMywxXSxbMywxXSxbMyw0XSxbMyw0XSxbMyw0XSxbMyw0XSxbMyw0XSxbMyw0XSxbMyw0XSxbMyw0XSxbMiwzXSxbMiwzXSxbMiwzXSxbMiwzXSxbMiwzXSxbMiwzXSxbMiwzXSxbMiwzXSxbMiwzXSxbMiwzXSxbMiwzXSxbMiwzXSxbMiwzXSxbMiwzXSxbMiwzXSxbMiwzXSxbMiwyXSxbMiwyXSxbMiwyXSxbMiwyXSxbMiwyXSxbMiwyXSxbMiwyXSxbMiwyXSxbMiwyXSxbMiwyXSxbMiwyXSxbMiwyXSxbMiwyXSxbMiwyXSxbMiwyXSxbMiwyXV07Y2xhc3MgQ0NJVFRGYXhEZWNvZGVye2NvbnN0cnVjdG9yKGUsdD17SzowLEVuZE9mTGluZTohMSxFbmNvZGVkQnl0ZUFsaWduOiExLENvbHVtbnM6MTcyOCxSb3dzOjAsRW5kT2ZCbG9jazohMCxCbGFja0lzMTohMX0pe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlPy5uZXh0KXRocm93IG5ldyBFcnJvcignQ0NJVFRGYXhEZWNvZGVyIC0gaW52YWxpZCAic291cmNlIiBwYXJhbWV0ZXIuJyk7dGhpcy5zb3VyY2U9ZTt0aGlzLmVvZj0hMTsoe0s6dGhpcy5lbmNvZGluZyxFbmRPZkxpbmU6dGhpcy5lb2xpbmUsRW5jb2RlZEJ5dGVBbGlnbjp0aGlzLmJ5dGVBbGlnbixDb2x1bW5zOnRoaXMuY29sdW1ucyxSb3dzOnRoaXMucm93cyxFbmRPZkJsb2NrOnRoaXMuZW9ibG9jayxCbGFja0lzMTp0aGlzLmJsYWNrfT10KTt0aGlzLmNvZGluZ0xpbmU9bmV3IFVpbnQzMkFycmF5KHRoaXMuY29sdW1ucysxKTt0aGlzLnJlZkxpbmU9bmV3IFVpbnQzMkFycmF5KHRoaXMuY29sdW1ucysyKTt0aGlzLmNvZGluZ0xpbmVbMF09dGhpcy5jb2x1bW5zO3RoaXMuY29kaW5nUG9zPTA7dGhpcy5yb3c9MDt0aGlzLm5leHRMaW5lMkQ9dGhpcy5lbmNvZGluZzwwO3RoaXMuaW5wdXRCaXRzPTA7dGhpcy5pbnB1dEJ1Zj0wO3RoaXMub3V0cHV0Qml0cz0wO3RoaXMucm93c0RvbmU9ITE7bGV0IG47Zm9yKDswPT09KG49dGhpcy5fbG9va0JpdHMoMTIpKTspdGhpcy5fZWF0Qml0cygxKTsxPT09biYmdGhpcy5fZWF0Qml0cygxMik7aWYodGhpcy5lbmNvZGluZz4wKXt0aGlzLm5leHRMaW5lMkQ9IXRoaXMuX2xvb2tCaXRzKDEpO3RoaXMuX2VhdEJpdHMoMSl9fXJlYWROZXh0Q2hhcigpe2lmKHRoaXMuZW9mKXJldHVybi0xO2NvbnN0IGU9dGhpcy5yZWZMaW5lLHQ9dGhpcy5jb2RpbmdMaW5lLG49dGhpcy5jb2x1bW5zO2xldCBhLHIscyxpLG87aWYoMD09PXRoaXMub3V0cHV0Qml0cyl7dGhpcy5yb3dzRG9uZSYmKHRoaXMuZW9mPSEwKTtpZih0aGlzLmVvZilyZXR1cm4tMTt0aGlzLmVycj0hMTtsZXQgcyxvLGw7aWYodGhpcy5uZXh0TGluZTJEKXtmb3IoaT0wO3RbaV08bjsrK2kpZVtpXT10W2ldO2VbaSsrXT1uO2VbaV09bjt0WzBdPTA7dGhpcy5jb2RpbmdQb3M9MDthPTA7cj0wO2Zvcig7dFt0aGlzLmNvZGluZ1Bvc108bjspe3M9dGhpcy5fZ2V0VHdvRGltQ29kZSgpO3N3aXRjaChzKXtjYXNlIDA6dGhpcy5fYWRkUGl4ZWxzKGVbYSsxXSxyKTtlW2ErMV08biYmKGErPTIpO2JyZWFrO2Nhc2UgMTpzPW89MDtpZihyKXtkb3tzKz1sPXRoaXMuX2dldEJsYWNrQ29kZSgpfXdoaWxlKGw+PTY0KTtkb3tvKz1sPXRoaXMuX2dldFdoaXRlQ29kZSgpfXdoaWxlKGw+PTY0KX1lbHNle2Rve3MrPWw9dGhpcy5fZ2V0V2hpdGVDb2RlKCl9d2hpbGUobD49NjQpO2Rve28rPWw9dGhpcy5fZ2V0QmxhY2tDb2RlKCl9d2hpbGUobD49NjQpfXRoaXMuX2FkZFBpeGVscyh0W3RoaXMuY29kaW5nUG9zXStzLHIpO3RbdGhpcy5jb2RpbmdQb3NdPG4mJnRoaXMuX2FkZFBpeGVscyh0W3RoaXMuY29kaW5nUG9zXStvLDFecik7Zm9yKDtlW2FdPD10W3RoaXMuY29kaW5nUG9zXSYmZVthXTxuOylhKz0yO2JyZWFrO2Nhc2UgNzp0aGlzLl9hZGRQaXhlbHMoZVthXSszLHIpO3JePTE7aWYodFt0aGlzLmNvZGluZ1Bvc108bil7KythO2Zvcig7ZVthXTw9dFt0aGlzLmNvZGluZ1Bvc10mJmVbYV08bjspYSs9Mn1icmVhaztjYXNlIDU6dGhpcy5fYWRkUGl4ZWxzKGVbYV0rMixyKTtyXj0xO2lmKHRbdGhpcy5jb2RpbmdQb3NdPG4peysrYTtmb3IoO2VbYV08PXRbdGhpcy5jb2RpbmdQb3NdJiZlW2FdPG47KWErPTJ9YnJlYWs7Y2FzZSAzOnRoaXMuX2FkZFBpeGVscyhlW2FdKzEscik7cl49MTtpZih0W3RoaXMuY29kaW5nUG9zXTxuKXsrK2E7Zm9yKDtlW2FdPD10W3RoaXMuY29kaW5nUG9zXSYmZVthXTxuOylhKz0yfWJyZWFrO2Nhc2UgMjp0aGlzLl9hZGRQaXhlbHMoZVthXSxyKTtyXj0xO2lmKHRbdGhpcy5jb2RpbmdQb3NdPG4peysrYTtmb3IoO2VbYV08PXRbdGhpcy5jb2RpbmdQb3NdJiZlW2FdPG47KWErPTJ9YnJlYWs7Y2FzZSA4OnRoaXMuX2FkZFBpeGVsc05lZyhlW2FdLTMscik7cl49MTtpZih0W3RoaXMuY29kaW5nUG9zXTxuKXthPjA/LS1hOisrYTtmb3IoO2VbYV08PXRbdGhpcy5jb2RpbmdQb3NdJiZlW2FdPG47KWErPTJ9YnJlYWs7Y2FzZSA2OnRoaXMuX2FkZFBpeGVsc05lZyhlW2FdLTIscik7cl49MTtpZih0W3RoaXMuY29kaW5nUG9zXTxuKXthPjA/LS1hOisrYTtmb3IoO2VbYV08PXRbdGhpcy5jb2RpbmdQb3NdJiZlW2FdPG47KWErPTJ9YnJlYWs7Y2FzZSA0OnRoaXMuX2FkZFBpeGVsc05lZyhlW2FdLTEscik7cl49MTtpZih0W3RoaXMuY29kaW5nUG9zXTxuKXthPjA/LS1hOisrYTtmb3IoO2VbYV08PXRbdGhpcy5jb2RpbmdQb3NdJiZlW2FdPG47KWErPTJ9YnJlYWs7Y2FzZSBYbjp0aGlzLl9hZGRQaXhlbHMobiwwKTt0aGlzLmVvZj0hMDticmVhaztkZWZhdWx0OmluZm8oImJhZCAyZCBjb2RlIik7dGhpcy5fYWRkUGl4ZWxzKG4sMCk7dGhpcy5lcnI9ITB9fX1lbHNle3RbMF09MDt0aGlzLmNvZGluZ1Bvcz0wO3I9MDtmb3IoO3RbdGhpcy5jb2RpbmdQb3NdPG47KXtzPTA7aWYocilkb3tzKz1sPXRoaXMuX2dldEJsYWNrQ29kZSgpfXdoaWxlKGw+PTY0KTtlbHNlIGRve3MrPWw9dGhpcy5fZ2V0V2hpdGVDb2RlKCl9d2hpbGUobD49NjQpO3RoaXMuX2FkZFBpeGVscyh0W3RoaXMuY29kaW5nUG9zXStzLHIpO3JePTF9fWxldCBmPSExO3RoaXMuYnl0ZUFsaWduJiYodGhpcy5pbnB1dEJpdHMmPS04KTtpZih0aGlzLmVvYmxvY2t8fHRoaXMucm93IT09dGhpcy5yb3dzLTEpe3M9dGhpcy5fbG9va0JpdHMoMTIpO2lmKHRoaXMuZW9saW5lKWZvcig7cyE9PVhuJiYxIT09czspe3RoaXMuX2VhdEJpdHMoMSk7cz10aGlzLl9sb29rQml0cygxMil9ZWxzZSBmb3IoOzA9PT1zOyl7dGhpcy5fZWF0Qml0cygxKTtzPXRoaXMuX2xvb2tCaXRzKDEyKX1pZigxPT09cyl7dGhpcy5fZWF0Qml0cygxMik7Zj0hMH1lbHNlIHM9PT1YbiYmKHRoaXMuZW9mPSEwKX1lbHNlIHRoaXMucm93c0RvbmU9ITA7aWYoIXRoaXMuZW9mJiZ0aGlzLmVuY29kaW5nPjAmJiF0aGlzLnJvd3NEb25lKXt0aGlzLm5leHRMaW5lMkQ9IXRoaXMuX2xvb2tCaXRzKDEpO3RoaXMuX2VhdEJpdHMoMSl9aWYodGhpcy5lb2Jsb2NrJiZmJiZ0aGlzLmJ5dGVBbGlnbil7cz10aGlzLl9sb29rQml0cygxMik7aWYoMT09PXMpe3RoaXMuX2VhdEJpdHMoMTIpO2lmKHRoaXMuZW5jb2Rpbmc+MCl7dGhpcy5fbG9va0JpdHMoMSk7dGhpcy5fZWF0Qml0cygxKX1pZih0aGlzLmVuY29kaW5nPj0wKWZvcihpPTA7aTw0OysraSl7cz10aGlzLl9sb29rQml0cygxMik7MSE9PXMmJmluZm8oImJhZCBydGMgY29kZTogIitzKTt0aGlzLl9lYXRCaXRzKDEyKTtpZih0aGlzLmVuY29kaW5nPjApe3RoaXMuX2xvb2tCaXRzKDEpO3RoaXMuX2VhdEJpdHMoMSl9fXRoaXMuZW9mPSEwfX1lbHNlIGlmKHRoaXMuZXJyJiZ0aGlzLmVvbGluZSl7Zm9yKDs7KXtzPXRoaXMuX2xvb2tCaXRzKDEzKTtpZihzPT09WG4pe3RoaXMuZW9mPSEwO3JldHVybi0xfWlmKHM+PjE9PTEpYnJlYWs7dGhpcy5fZWF0Qml0cygxKX10aGlzLl9lYXRCaXRzKDEyKTtpZih0aGlzLmVuY29kaW5nPjApe3RoaXMuX2VhdEJpdHMoMSk7dGhpcy5uZXh0TGluZTJEPSEoMSZzKX19dGhpcy5vdXRwdXRCaXRzPXRbMF0+MD90W3RoaXMuY29kaW5nUG9zPTBdOnRbdGhpcy5jb2RpbmdQb3M9MV07dGhpcy5yb3crK31pZih0aGlzLm91dHB1dEJpdHM+PTgpe289MSZ0aGlzLmNvZGluZ1Bvcz8wOjI1NTt0aGlzLm91dHB1dEJpdHMtPTg7aWYoMD09PXRoaXMub3V0cHV0Qml0cyYmdFt0aGlzLmNvZGluZ1Bvc108bil7dGhpcy5jb2RpbmdQb3MrKzt0aGlzLm91dHB1dEJpdHM9dFt0aGlzLmNvZGluZ1Bvc10tdFt0aGlzLmNvZGluZ1Bvcy0xXX19ZWxzZXtzPTg7bz0wO2Rve2lmKCJudW1iZXIiIT10eXBlb2YgdGhpcy5vdXRwdXRCaXRzKXRocm93IG5ldyBGb3JtYXRFcnJvcignSW52YWxpZCAvQ0NJVFRGYXhEZWNvZGUgZGF0YSwgIm91dHB1dEJpdHMiIG11c3QgYmUgYSBudW1iZXIuJyk7aWYodGhpcy5vdXRwdXRCaXRzPnMpe288PD1zOzEmdGhpcy5jb2RpbmdQb3N8fChvfD0yNTU+Pjgtcyk7dGhpcy5vdXRwdXRCaXRzLT1zO3M9MH1lbHNle288PD10aGlzLm91dHB1dEJpdHM7MSZ0aGlzLmNvZGluZ1Bvc3x8KG98PTI1NT4+OC10aGlzLm91dHB1dEJpdHMpO3MtPXRoaXMub3V0cHV0Qml0czt0aGlzLm91dHB1dEJpdHM9MDtpZih0W3RoaXMuY29kaW5nUG9zXTxuKXt0aGlzLmNvZGluZ1BvcysrO3RoaXMub3V0cHV0Qml0cz10W3RoaXMuY29kaW5nUG9zXS10W3RoaXMuY29kaW5nUG9zLTFdfWVsc2UgaWYocz4wKXtvPDw9cztzPTB9fX13aGlsZShzKX10aGlzLmJsYWNrJiYob149MjU1KTtyZXR1cm4gb31fYWRkUGl4ZWxzKGUsdCl7Y29uc3Qgbj10aGlzLmNvZGluZ0xpbmU7bGV0IGE9dGhpcy5jb2RpbmdQb3M7aWYoZT5uW2FdKXtpZihlPnRoaXMuY29sdW1ucyl7aW5mbygicm93IGlzIHdyb25nIGxlbmd0aCIpO3RoaXMuZXJyPSEwO2U9dGhpcy5jb2x1bW5zfTEmYV50JiYrK2E7blthXT1lfXRoaXMuY29kaW5nUG9zPWF9X2FkZFBpeGVsc05lZyhlLHQpe2NvbnN0IG49dGhpcy5jb2RpbmdMaW5lO2xldCBhPXRoaXMuY29kaW5nUG9zO2lmKGU+blthXSl7aWYoZT50aGlzLmNvbHVtbnMpe2luZm8oInJvdyBpcyB3cm9uZyBsZW5ndGgiKTt0aGlzLmVycj0hMDtlPXRoaXMuY29sdW1uc30xJmFedCYmKythO25bYV09ZX1lbHNlIGlmKGU8blthXSl7aWYoZTwwKXtpbmZvKCJpbnZhbGlkIGNvZGUiKTt0aGlzLmVycj0hMDtlPTB9Zm9yKDthPjAmJmU8blthLTFdOyktLWE7blthXT1lfXRoaXMuY29kaW5nUG9zPWF9X2ZpbmRUYWJsZUNvZGUoZSx0LG4sYSl7Y29uc3Qgcj1hfHwwO2ZvcihsZXQgYT1lO2E8PXQ7KythKXtsZXQgZT10aGlzLl9sb29rQml0cyhhKTtpZihlPT09WG4pcmV0dXJuWyEwLDEsITFdO2E8dCYmKGU8PD10LWEpO2lmKCFyfHxlPj1yKXtjb25zdCB0PW5bZS1yXTtpZih0WzBdPT09YSl7dGhpcy5fZWF0Qml0cyhhKTtyZXR1cm5bITAsdFsxXSwhMF19fX1yZXR1cm5bITEsMCwhMV19X2dldFR3b0RpbUNvZGUoKXtsZXQgZSx0PTA7aWYodGhpcy5lb2Jsb2NrKXt0PXRoaXMuX2xvb2tCaXRzKDcpO2U9V25bdF07aWYoZT8uWzBdPjApe3RoaXMuX2VhdEJpdHMoZVswXSk7cmV0dXJuIGVbMV19fWVsc2V7Y29uc3QgZT10aGlzLl9maW5kVGFibGVDb2RlKDEsNyxXbik7aWYoZVswXSYmZVsyXSlyZXR1cm4gZVsxXX1pbmZvKCJCYWQgdHdvIGRpbSBjb2RlIik7cmV0dXJuIFhufV9nZXRXaGl0ZUNvZGUoKXtsZXQgZSx0PTA7aWYodGhpcy5lb2Jsb2NrKXt0PXRoaXMuX2xvb2tCaXRzKDEyKTtpZih0PT09WG4pcmV0dXJuIDE7ZT10Pj41P1ZuW3Q+PjNdOktuW3RdO2lmKGVbMF0+MCl7dGhpcy5fZWF0Qml0cyhlWzBdKTtyZXR1cm4gZVsxXX19ZWxzZXtsZXQgZT10aGlzLl9maW5kVGFibGVDb2RlKDEsOSxWbik7aWYoZVswXSlyZXR1cm4gZVsxXTtlPXRoaXMuX2ZpbmRUYWJsZUNvZGUoMTEsMTIsS24pO2lmKGVbMF0pcmV0dXJuIGVbMV19aW5mbygiYmFkIHdoaXRlIGNvZGUiKTt0aGlzLl9lYXRCaXRzKDEpO3JldHVybiAxfV9nZXRCbGFja0NvZGUoKXtsZXQgZSx0O2lmKHRoaXMuZW9ibG9jayl7ZT10aGlzLl9sb29rQml0cygxMyk7aWYoZT09PVhuKXJldHVybiAxO3Q9ZT4+Nz8hKGU+PjkpJiZlPj43PyRuWyhlPj4xKS02NF06WW5bZT4+N106R25bZV07aWYodFswXT4wKXt0aGlzLl9lYXRCaXRzKHRbMF0pO3JldHVybiB0WzFdfX1lbHNle2xldCBlPXRoaXMuX2ZpbmRUYWJsZUNvZGUoMiw2LFluKTtpZihlWzBdKXJldHVybiBlWzFdO2U9dGhpcy5fZmluZFRhYmxlQ29kZSg3LDEyLCRuLDY0KTtpZihlWzBdKXJldHVybiBlWzFdO2U9dGhpcy5fZmluZFRhYmxlQ29kZSgxMCwxMyxHbik7aWYoZVswXSlyZXR1cm4gZVsxXX1pbmZvKCJiYWQgYmxhY2sgY29kZSIpO3RoaXMuX2VhdEJpdHMoMSk7cmV0dXJuIDF9X2xvb2tCaXRzKGUpe2xldCB0O2Zvcig7dGhpcy5pbnB1dEJpdHM8ZTspe2lmKC0xPT09KHQ9dGhpcy5zb3VyY2UubmV4dCgpKSlyZXR1cm4gMD09PXRoaXMuaW5wdXRCaXRzP1huOnRoaXMuaW5wdXRCdWY8PGUtdGhpcy5pbnB1dEJpdHMmNjU1MzU+PjE2LWU7dGhpcy5pbnB1dEJ1Zj10aGlzLmlucHV0QnVmPDw4fHQ7dGhpcy5pbnB1dEJpdHMrPTh9cmV0dXJuIHRoaXMuaW5wdXRCdWY+PnRoaXMuaW5wdXRCaXRzLWUmNjU1MzU+PjE2LWV9X2VhdEJpdHMoZSl7KHRoaXMuaW5wdXRCaXRzLT1lKTwwJiYodGhpcy5pbnB1dEJpdHM9MCl9fWNsYXNzIENDSVRURmF4U3RyZWFtIGV4dGVuZHMgRGVjb2RlU3RyZWFte2NvbnN0cnVjdG9yKGUsdCxuKXtzdXBlcih0KTt0aGlzLnN0cmVhbT1lO3RoaXMubWF5YmVMZW5ndGg9dDt0aGlzLmRpY3Q9ZS5kaWN0O24gaW5zdGFuY2VvZiBEaWN0fHwobj1EaWN0LmVtcHR5KTt0aGlzLnBhcmFtcz17SzpuLmdldCgiSyIpfHwwLEVuZE9mTGluZTohIW4uZ2V0KCJFbmRPZkxpbmUiKSxFbmNvZGVkQnl0ZUFsaWduOiEhbi5nZXQoIkVuY29kZWRCeXRlQWxpZ24iKSxDb2x1bW5zOm4uZ2V0KCJDb2x1bW5zIil8fDE3MjgsUm93czpuLmdldCgiUm93cyIpfHwwLEVuZE9mQmxvY2s6ISEobi5nZXQoIkVuZE9mQmxvY2siKT8/MSksQmxhY2tJczE6ISFuLmdldCgiQmxhY2tJczEiKX19Z2V0IGJ5dGVzKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJieXRlcyIsdGhpcy5zdHJlYW0uZ2V0Qnl0ZXModGhpcy5tYXliZUxlbmd0aCkpfXJlYWRCbG9jaygpe3RoaXMuZGVjb2RlSW1hZ2VGYWxsYmFjaygpfWdldCBpc0ltYWdlU3RyZWFtKCl7cmV0dXJuITB9Z2V0IGlzQXN5bmNEZWNvZGVyKCl7cmV0dXJuITB9YXN5bmMgZGVjb2RlSW1hZ2UoZSx0LG4pe2lmKHRoaXMuZW9mKXJldHVybiB0aGlzLmJ1ZmZlcjtlfHwoZT10aGlzLnN0cmVhbS5pc0FzeW5jJiZhd2FpdCB0aGlzLnN0cmVhbS5hc3luY0dldEJ5dGVzKCl8fHRoaXMuYnl0ZXMpO3RyeXt0aGlzLmJ1ZmZlcj1hd2FpdCBKQmlnMkNDSVRURmF4V2FzbUltYWdlLmRlY29kZShlLHRoaXMuZGljdC5nZXQoIlciLCJXaWR0aCIpLHRoaXMuZGljdC5nZXQoIkgiLCJIZWlnaHQiKSxudWxsLHRoaXMucGFyYW1zKX1jYXRjaHt3YXJuKCJDQ0lUVEZheFN0cmVhbTogRmFsbGluZyBiYWNrIHRvIEpTIENDSVRURmF4IGRlY29kZXIuIik7cmV0dXJuIHRoaXMuZGVjb2RlSW1hZ2VGYWxsYmFjayhlLHQpfXRoaXMuYnVmZmVyTGVuZ3RoPXRoaXMuYnVmZmVyLmxlbmd0aDt0aGlzLmVvZj0hMDtyZXR1cm4gdGhpcy5idWZmZXJ9ZGVjb2RlSW1hZ2VGYWxsYmFjayhlLHQpe2lmKHRoaXMuZW9mKXJldHVybiB0aGlzLmJ1ZmZlcjtjb25zdHtwYXJhbXM6bn09dGhpcztpZighZSl7dGhpcy5zdHJlYW0ucmVzZXQoKTtlPXRoaXMuYnl0ZXN9bGV0IGE9MDtjb25zdCByPXtuZXh0OigpPT5lW2ErK10/Py0xfTt0JiZ0aGlzLmJ1ZmZlci5ieXRlTGVuZ3RoPHQmJih0aGlzLmJ1ZmZlcj1uZXcgVWludDhBcnJheSh0KSk7dGhpcy5jY2l0dEZheERlY29kZXI9bmV3IENDSVRURmF4RGVjb2RlcihyLG4pO2xldCBzPTA7Zm9yKDshdGhpcy5lb2Y7KXtjb25zdCBlPXRoaXMuY2NpdHRGYXhEZWNvZGVyLnJlYWROZXh0Q2hhcigpO2lmKC0xPT09ZSl7dGhpcy5lb2Y9ITA7YnJlYWt9dHx8dGhpcy5lbnN1cmVCdWZmZXIocysxKTt0aGlzLmJ1ZmZlcltzKytdPWV9dGhpcy5idWZmZXJMZW5ndGg9dGhpcy5idWZmZXIubGVuZ3RoO3JldHVybiB0aGlzLmJ1ZmZlci5zdWJhcnJheSgwLHR8fHRoaXMuYnVmZmVyTGVuZ3RoKX19Y29uc3QgSm49bmV3IEludDMyQXJyYXkoWzE2LDE3LDE4LDAsOCw3LDksNiwxMCw1LDExLDQsMTIsMywxMywyLDE0LDEsMTVdKSxRbj1uZXcgSW50MzJBcnJheShbMyw0LDUsNiw3LDgsOSwxMCw2NTU0Nyw2NTU0OSw2NTU1MSw2NTU1MywxMzEwOTEsMTMxMDk1LDEzMTA5OSwxMzExMDMsMTk2NjQzLDE5NjY1MSwxOTY2NTksMTk2NjY3LDI2MjIxMSwyNjIyMjcsMjYyMjQzLDI2MjI1OSwzMjc4MTEsMzI3ODQzLDMyNzg3NSwzMjc5MDcsMjU4LDI1OCwyNThdKSxabj1uZXcgSW50MzJBcnJheShbMSwyLDMsNCw2NTU0MSw2NTU0MywxMzEwODEsMTMxMDg1LDE5NjYyNSwxOTY2MzMsMjYyMTc3LDI2MjE5MywzMjc3NDUsMzI3Nzc3LDM5MzM0NSwzOTM0MDksNDU5MDA5LDQ1OTEzNyw1MjQ4MDEsNTI1MDU3LDU5MDg0OSw1OTEzNjEsNjU3NDA5LDY1ODQzMyw3MjQ5OTMsNzI3MDQxLDc5NDYyNSw3OTg3MjEsODY4MzUzLDg3NjU0NV0pLGVhPVtuZXcgSW50MzJBcnJheShbNDU5MDA4LDUyNDM2OCw1MjQzMDQsNTI0NTY4LDQ1OTAyNCw1MjQ0MDAsNTI0MzM2LDU5MDAxNiw0NTkwMTYsNTI0Mzg0LDUyNDMyMCw1ODk5ODQsNTI0Mjg4LDUyNDQxNiw1MjQzNTIsNTkwMDQ4LDQ1OTAxMiw1MjQzNzYsNTI0MzEyLDU4OTk2OCw0NTkwMjgsNTI0NDA4LDUyNDM0NCw1OTAwMzIsNDU5MDIwLDUyNDM5Miw1MjQzMjgsNTllNCw1MjQyOTYsNTI0NDI0LDUyNDM2MCw1OTAwNjQsNDU5MDEwLDUyNDM3Miw1MjQzMDgsNTI0NTcyLDQ1OTAyNiw1MjQ0MDQsNTI0MzQwLDU5MDAyNCw0NTkwMTgsNTI0Mzg4LDUyNDMyNCw1ODk5OTIsNTI0MjkyLDUyNDQyMCw1MjQzNTYsNTkwMDU2LDQ1OTAxNCw1MjQzODAsNTI0MzE2LDU4OTk3Niw0NTkwMzAsNTI0NDEyLDUyNDM0OCw1OTAwNDAsNDU5MDIyLDUyNDM5Niw1MjQzMzIsNTkwMDA4LDUyNDMwMCw1MjQ0MjgsNTI0MzY0LDU5MDA3Miw0NTkwMDksNTI0MzcwLDUyNDMwNiw1MjQ1NzAsNDU5MDI1LDUyNDQwMiw1MjQzMzgsNTkwMDIwLDQ1OTAxNyw1MjQzODYsNTI0MzIyLDU4OTk4OCw1MjQyOTAsNTI0NDE4LDUyNDM1NCw1OTAwNTIsNDU5MDEzLDUyNDM3OCw1MjQzMTQsNTg5OTcyLDQ1OTAyOSw1MjQ0MTAsNTI0MzQ2LDU5MDAzNiw0NTkwMjEsNTI0Mzk0LDUyNDMzMCw1OTAwMDQsNTI0Mjk4LDUyNDQyNiw1MjQzNjIsNTkwMDY4LDQ1OTAxMSw1MjQzNzQsNTI0MzEwLDUyNDU3NCw0NTkwMjcsNTI0NDA2LDUyNDM0Miw1OTAwMjgsNDU5MDE5LDUyNDM5MCw1MjQzMjYsNTg5OTk2LDUyNDI5NCw1MjQ0MjIsNTI0MzU4LDU5MDA2MCw0NTkwMTUsNTI0MzgyLDUyNDMxOCw1ODk5ODAsNDU5MDMxLDUyNDQxNCw1MjQzNTAsNTkwMDQ0LDQ1OTAyMyw1MjQzOTgsNTI0MzM0LDU5MDAxMiw1MjQzMDIsNTI0NDMwLDUyNDM2Niw1OTAwNzYsNDU5MDA4LDUyNDM2OSw1MjQzMDUsNTI0NTY5LDQ1OTAyNCw1MjQ0MDEsNTI0MzM3LDU5MDAxOCw0NTkwMTYsNTI0Mzg1LDUyNDMyMSw1ODk5ODYsNTI0Mjg5LDUyNDQxNyw1MjQzNTMsNTkwMDUwLDQ1OTAxMiw1MjQzNzcsNTI0MzEzLDU4OTk3MCw0NTkwMjgsNTI0NDA5LDUyNDM0NSw1OTAwMzQsNDU5MDIwLDUyNDM5Myw1MjQzMjksNTkwMDAyLDUyNDI5Nyw1MjQ0MjUsNTI0MzYxLDU5MDA2Niw0NTkwMTAsNTI0MzczLDUyNDMwOSw1MjQ1NzMsNDU5MDI2LDUyNDQwNSw1MjQzNDEsNTkwMDI2LDQ1OTAxOCw1MjQzODksNTI0MzI1LDU4OTk5NCw1MjQyOTMsNTI0NDIxLDUyNDM1Nyw1OTAwNTgsNDU5MDE0LDUyNDM4MSw1MjQzMTcsNTg5OTc4LDQ1OTAzMCw1MjQ0MTMsNTI0MzQ5LDU5MDA0Miw0NTkwMjIsNTI0Mzk3LDUyNDMzMyw1OTAwMTAsNTI0MzAxLDUyNDQyOSw1MjQzNjUsNTkwMDc0LDQ1OTAwOSw1MjQzNzEsNTI0MzA3LDUyNDU3MSw0NTkwMjUsNTI0NDAzLDUyNDMzOSw1OTAwMjIsNDU5MDE3LDUyNDM4Nyw1MjQzMjMsNTg5OTkwLDUyNDI5MSw1MjQ0MTksNTI0MzU1LDU5MDA1NCw0NTkwMTMsNTI0Mzc5LDUyNDMxNSw1ODk5NzQsNDU5MDI5LDUyNDQxMSw1MjQzNDcsNTkwMDM4LDQ1OTAyMSw1MjQzOTUsNTI0MzMxLDU5MDAwNiw1MjQyOTksNTI0NDI3LDUyNDM2Myw1OTAwNzAsNDU5MDExLDUyNDM3NSw1MjQzMTEsNTI0NTc1LDQ1OTAyNyw1MjQ0MDcsNTI0MzQzLDU5MDAzMCw0NTkwMTksNTI0MzkxLDUyNDMyNyw1ODk5OTgsNTI0Mjk1LDUyNDQyMyw1MjQzNTksNTkwMDYyLDQ1OTAxNSw1MjQzODMsNTI0MzE5LDU4OTk4Miw0NTkwMzEsNTI0NDE1LDUyNDM1MSw1OTAwNDYsNDU5MDIzLDUyNDM5OSw1MjQzMzUsNTkwMDE0LDUyNDMwMyw1MjQ0MzEsNTI0MzY3LDU5MDA3OCw0NTkwMDgsNTI0MzY4LDUyNDMwNCw1MjQ1NjgsNDU5MDI0LDUyNDQwMCw1MjQzMzYsNTkwMDE3LDQ1OTAxNiw1MjQzODQsNTI0MzIwLDU4OTk4NSw1MjQyODgsNTI0NDE2LDUyNDM1Miw1OTAwNDksNDU5MDEyLDUyNDM3Niw1MjQzMTIsNTg5OTY5LDQ1OTAyOCw1MjQ0MDgsNTI0MzQ0LDU5MDAzMyw0NTkwMjAsNTI0MzkyLDUyNDMyOCw1OTAwMDEsNTI0Mjk2LDUyNDQyNCw1MjQzNjAsNTkwMDY1LDQ1OTAxMCw1MjQzNzIsNTI0MzA4LDUyNDU3Miw0NTkwMjYsNTI0NDA0LDUyNDM0MCw1OTAwMjUsNDU5MDE4LDUyNDM4OCw1MjQzMjQsNTg5OTkzLDUyNDI5Miw1MjQ0MjAsNTI0MzU2LDU5MDA1Nyw0NTkwMTQsNTI0MzgwLDUyNDMxNiw1ODk5NzcsNDU5MDMwLDUyNDQxMiw1MjQzNDgsNTkwMDQxLDQ1OTAyMiw1MjQzOTYsNTI0MzMyLDU5MDAwOSw1MjQzMDAsNTI0NDI4LDUyNDM2NCw1OTAwNzMsNDU5MDA5LDUyNDM3MCw1MjQzMDYsNTI0NTcwLDQ1OTAyNSw1MjQ0MDIsNTI0MzM4LDU5MDAyMSw0NTkwMTcsNTI0Mzg2LDUyNDMyMiw1ODk5ODksNTI0MjkwLDUyNDQxOCw1MjQzNTQsNTkwMDUzLDQ1OTAxMyw1MjQzNzgsNTI0MzE0LDU4OTk3Myw0NTkwMjksNTI0NDEwLDUyNDM0Niw1OTAwMzcsNDU5MDIxLDUyNDM5NCw1MjQzMzAsNTkwMDA1LDUyNDI5OCw1MjQ0MjYsNTI0MzYyLDU5MDA2OSw0NTkwMTEsNTI0Mzc0LDUyNDMxMCw1MjQ1NzQsNDU5MDI3LDUyNDQwNiw1MjQzNDIsNTkwMDI5LDQ1OTAxOSw1MjQzOTAsNTI0MzI2LDU4OTk5Nyw1MjQyOTQsNTI0NDIyLDUyNDM1OCw1OTAwNjEsNDU5MDE1LDUyNDM4Miw1MjQzMTgsNTg5OTgxLDQ1OTAzMSw1MjQ0MTQsNTI0MzUwLDU5MDA0NSw0NTkwMjMsNTI0Mzk4LDUyNDMzNCw1OTAwMTMsNTI0MzAyLDUyNDQzMCw1MjQzNjYsNTkwMDc3LDQ1OTAwOCw1MjQzNjksNTI0MzA1LDUyNDU2OSw0NTkwMjQsNTI0NDAxLDUyNDMzNyw1OTAwMTksNDU5MDE2LDUyNDM4NSw1MjQzMjEsNTg5OTg3LDUyNDI4OSw1MjQ0MTcsNTI0MzUzLDU5MDA1MSw0NTkwMTIsNTI0Mzc3LDUyNDMxMyw1ODk5NzEsNDU5MDI4LDUyNDQwOSw1MjQzNDUsNTkwMDM1LDQ1OTAyMCw1MjQzOTMsNTI0MzI5LDU5MDAwMyw1MjQyOTcsNTI0NDI1LDUyNDM2MSw1OTAwNjcsNDU5MDEwLDUyNDM3Myw1MjQzMDksNTI0NTczLDQ1OTAyNiw1MjQ0MDUsNTI0MzQxLDU5MDAyNyw0NTkwMTgsNTI0Mzg5LDUyNDMyNSw1ODk5OTUsNTI0MjkzLDUyNDQyMSw1MjQzNTcsNTkwMDU5LDQ1OTAxNCw1MjQzODEsNTI0MzE3LDU4OTk3OSw0NTkwMzAsNTI0NDEzLDUyNDM0OSw1OTAwNDMsNDU5MDIyLDUyNDM5Nyw1MjQzMzMsNTkwMDExLDUyNDMwMSw1MjQ0MjksNTI0MzY1LDU5MDA3NSw0NTkwMDksNTI0MzcxLDUyNDMwNyw1MjQ1NzEsNDU5MDI1LDUyNDQwMyw1MjQzMzksNTkwMDIzLDQ1OTAxNyw1MjQzODcsNTI0MzIzLDU4OTk5MSw1MjQyOTEsNTI0NDE5LDUyNDM1NSw1OTAwNTUsNDU5MDEzLDUyNDM3OSw1MjQzMTUsNTg5OTc1LDQ1OTAyOSw1MjQ0MTEsNTI0MzQ3LDU5MDAzOSw0NTkwMjEsNTI0Mzk1LDUyNDMzMSw1OTAwMDcsNTI0Mjk5LDUyNDQyNyw1MjQzNjMsNTkwMDcxLDQ1OTAxMSw1MjQzNzUsNTI0MzExLDUyNDU3NSw0NTkwMjcsNTI0NDA3LDUyNDM0Myw1OTAwMzEsNDU5MDE5LDUyNDM5MSw1MjQzMjcsNTg5OTk5LDUyNDI5NSw1MjQ0MjMsNTI0MzU5LDU5MDA2Myw0NTkwMTUsNTI0MzgzLDUyNDMxOSw1ODk5ODMsNDU5MDMxLDUyNDQxNSw1MjQzNTEsNTkwMDQ3LDQ1OTAyMyw1MjQzOTksNTI0MzM1LDU5MDAxNSw1MjQzMDMsNTI0NDMxLDUyNDM2Nyw1OTAwNzldKSw5XSx0YT1bbmV3IEludDMyQXJyYXkoWzMyNzY4MCwzMjc2OTYsMzI3Njg4LDMyNzcwNCwzMjc2ODQsMzI3NzAwLDMyNzY5MiwzMjc3MDgsMzI3NjgyLDMyNzY5OCwzMjc2OTAsMzI3NzA2LDMyNzY4NiwzMjc3MDIsMzI3Njk0LDAsMzI3NjgxLDMyNzY5NywzMjc2ODksMzI3NzA1LDMyNzY4NSwzMjc3MDEsMzI3NjkzLDMyNzcwOSwzMjc2ODMsMzI3Njk5LDMyNzY5MSwzMjc3MDcsMzI3Njg3LDMyNzcwMywzMjc2OTUsMF0pLDVdO2NsYXNzIEZsYXRlU3RyZWFtIGV4dGVuZHMgRGVjb2RlU3RyZWFteyNfPSEwO2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIodCk7dGhpcy5zdHJlYW09ZTt0aGlzLmRpY3Q9ZS5kaWN0O2NvbnN0IG49ZS5nZXRCeXRlKCksYT1lLmdldEJ5dGUoKTtpZigtMT09PW58fC0xPT09YSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYEludmFsaWQgaGVhZGVyIGluIGZsYXRlIHN0cmVhbTogJHtufSwgJHthfWApO2lmKDghPSgxNSZuKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYFVua25vd24gY29tcHJlc3Npb24gbWV0aG9kIGluIGZsYXRlIHN0cmVhbTogJHtufSwgJHthfWApO2lmKCgobjw8OCkrYSklMzEhPTApdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBCYWQgRkNIRUNLIGluIGZsYXRlIHN0cmVhbTogJHtufSwgJHthfWApO2lmKDMyJmEpdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBGRElDVCBiaXQgc2V0IGluIGZsYXRlIHN0cmVhbTogJHtufSwgJHthfWApO3RoaXMuY29kZVNpemU9MDt0aGlzLmNvZGVCdWY9MH1hc3luYyBnZXRJbWFnZURhdGEoZSx0KXtjb25zdCBuPWF3YWl0IHRoaXMuYXN5bmNHZXRCeXRlcygpO3JldHVybiBuP24ubGVuZ3RoPD1lP246bi5zdWJhcnJheSgwLGUpOnRoaXMuZ2V0Qnl0ZXMoZSl9YXN5bmMgYXN5bmNHZXRCeXRlcygpe2NvbnN0e2RlY29tcHJlc3NlZDplLGNvbXByZXNzZWQ6dH09YXdhaXQgdGhpcy5hc3luY0dldEJ5dGVzRnJvbURlY29tcHJlc3Npb25TdHJlYW0oImRlZmxhdGUiKTtpZihlKXJldHVybiBlO3RoaXMuI189ITE7dGhpcy5zdHJlYW09bmV3IFN0cmVhbSh0LDIsdC5sZW5ndGgsdGhpcy5zdHJlYW0uZGljdCk7dGhpcy5yZXNldCgpO3JldHVybiBudWxsfWdldCBpc0FzeW5jKCl7cmV0dXJuIHRoaXMuI199Z2V0Qml0cyhlKXtjb25zdCB0PXRoaXMuc3RyZWFtO2xldCBuLGE9dGhpcy5jb2RlU2l6ZSxyPXRoaXMuY29kZUJ1Zjtmb3IoO2E8ZTspe2lmKC0xPT09KG49dC5nZXRCeXRlKCkpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiQmFkIGVuY29kaW5nIGluIGZsYXRlIHN0cmVhbSIpO3J8PW48PGE7YSs9OH1uPXImKDE8PGUpLTE7dGhpcy5jb2RlQnVmPXI+PmU7dGhpcy5jb2RlU2l6ZT1hLT1lO3JldHVybiBufWdldENvZGUoZSl7Y29uc3QgdD10aGlzLnN0cmVhbSxuPWVbMF0sYT1lWzFdO2xldCByLHM9dGhpcy5jb2RlU2l6ZSxpPXRoaXMuY29kZUJ1Zjtmb3IoO3M8YSYmLTEhPT0ocj10LmdldEJ5dGUoKSk7KXtpfD1yPDxzO3MrPTh9Y29uc3Qgbz1uW2kmKDE8PGEpLTFdLGw9bz4+MTYsZj02NTUzNSZvO2lmKGw8MXx8czxsKXRocm93IG5ldyBGb3JtYXRFcnJvcigiQmFkIGVuY29kaW5nIGluIGZsYXRlIHN0cmVhbSIpO3RoaXMuY29kZUJ1Zj1pPj5sO3RoaXMuY29kZVNpemU9cy1sO3JldHVybiBmfWdlbmVyYXRlSHVmZm1hblRhYmxlKGUpe2NvbnN0IHQ9ZS5sZW5ndGg7bGV0IG4sYT0wO2ZvcihuPTA7bjx0OysrbillW25dPmEmJihhPWVbbl0pO2NvbnN0IHI9MTw8YSxzPW5ldyBJbnQzMkFycmF5KHIpO2ZvcihsZXQgaT0xLG89MCxsPTI7aTw9YTsrK2ksbzw8PTEsbDw8PTEpZm9yKGxldCBhPTA7YTx0OysrYSlpZihlW2FdPT09aSl7bGV0IGU9MCx0PW87Zm9yKG49MDtuPGk7KytuKXtlPWU8PDF8MSZ0O3Q+Pj0xfWZvcihuPWU7bjxyO24rPWwpc1tuXT1pPDwxNnxhOysrb31yZXR1cm5bcyxhXX0jTChlKXtpbmZvKGUpO3RoaXMuZW9mPSEwfXJlYWRCbG9jaygpe2xldCBlLHQsbjtjb25zdCBhPXRoaXMuc3RyZWFtO3RyeXt0PXRoaXMuZ2V0Qml0cygzKX1jYXRjaChlKXt0aGlzLiNMKGUubWVzc2FnZSk7cmV0dXJufTEmdCYmKHRoaXMuZW9mPSEwKTt0Pj49MTtpZigwPT09dCl7bGV0IHQ7aWYoLTE9PT0odD1hLmdldEJ5dGUoKSkpe3RoaXMuI0woIkJhZCBibG9jayBoZWFkZXIgaW4gZmxhdGUgc3RyZWFtIik7cmV0dXJufWxldCBuPXQ7aWYoLTE9PT0odD1hLmdldEJ5dGUoKSkpe3RoaXMuI0woIkJhZCBibG9jayBoZWFkZXIgaW4gZmxhdGUgc3RyZWFtIik7cmV0dXJufW58PXQ8PDg7aWYoLTE9PT0odD1hLmdldEJ5dGUoKSkpe3RoaXMuI0woIkJhZCBibG9jayBoZWFkZXIgaW4gZmxhdGUgc3RyZWFtIik7cmV0dXJufWxldCByPXQ7aWYoLTE9PT0odD1hLmdldEJ5dGUoKSkpe3RoaXMuI0woIkJhZCBibG9jayBoZWFkZXIgaW4gZmxhdGUgc3RyZWFtIik7cmV0dXJufXJ8PXQ8PDg7aWYociE9PSg2NTUzNSZ+bikmJigwIT09bnx8MCE9PXIpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiQmFkIHVuY29tcHJlc3NlZCBibG9jayBsZW5ndGggaW4gZmxhdGUgc3RyZWFtIik7dGhpcy5jb2RlQnVmPTA7dGhpcy5jb2RlU2l6ZT0wO2NvbnN0IHM9dGhpcy5idWZmZXJMZW5ndGgsaT1zK247ZT10aGlzLmVuc3VyZUJ1ZmZlcihpKTt0aGlzLmJ1ZmZlckxlbmd0aD1pO2lmKDA9PT1uKS0xPT09YS5wZWVrQnl0ZSgpJiYodGhpcy5lb2Y9ITApO2Vsc2V7Y29uc3QgdD1hLmdldEJ5dGVzKG4pO2Uuc2V0KHQscyk7dC5sZW5ndGg8biYmKHRoaXMuZW9mPSEwKX1yZXR1cm59bGV0IHIscztpZigxPT09dCl7cj1lYTtzPXRhfWVsc2V7aWYoMiE9PXQpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJVbmtub3duIGJsb2NrIHR5cGUgaW4gZmxhdGUgc3RyZWFtIik7e2NvbnN0IGU9dGhpcy5nZXRCaXRzKDUpKzI1Nyx0PXRoaXMuZ2V0Qml0cyg1KSsxLGE9dGhpcy5nZXRCaXRzKDQpKzQsaT1uZXcgVWludDhBcnJheShKbi5sZW5ndGgpO2xldCBvO2ZvcihvPTA7bzxhOysrbylpW0puW29dXT10aGlzLmdldEJpdHMoMyk7Y29uc3QgbD10aGlzLmdlbmVyYXRlSHVmZm1hblRhYmxlKGkpO249MDtvPTA7Y29uc3QgZj1lK3QsYz1uZXcgVWludDhBcnJheShmKTtsZXQgaCx1LG07Zm9yKDtvPGY7KXtjb25zdCBlPXRoaXMuZ2V0Q29kZShsKTtpZigxNj09PWUpe2g9Mjt1PTM7bT1ufWVsc2UgaWYoMTc9PT1lKXtoPTM7dT0zO209bj0wfWVsc2V7aWYoMTghPT1lKXtjW28rK109bj1lO2NvbnRpbnVlfWg9Nzt1PTExO209bj0wfWxldCB0PXRoaXMuZ2V0Qml0cyhoKSt1O2Zvcig7dC0tID4wOyljW28rK109bX1yPXRoaXMuZ2VuZXJhdGVIdWZmbWFuVGFibGUoYy5zdWJhcnJheSgwLGUpKTtzPXRoaXMuZ2VuZXJhdGVIdWZmbWFuVGFibGUoYy5zdWJhcnJheShlLGYpKX19ZT10aGlzLmJ1ZmZlcjtsZXQgaT1lP2UubGVuZ3RoOjAsbz10aGlzLmJ1ZmZlckxlbmd0aDtmb3IoOzspe2xldCB0PXRoaXMuZ2V0Q29kZShyKTtpZih0PDI1Nil7aWYobysxPj1pKXtlPXRoaXMuZW5zdXJlQnVmZmVyKG8rMSk7aT1lLmxlbmd0aH1lW28rK109dDtjb250aW51ZX1pZigyNTY9PT10KXt0aGlzLmJ1ZmZlckxlbmd0aD1vO3JldHVybn10LT0yNTc7dD1Rblt0XTtsZXQgYT10Pj4xNjthPjAmJihhPXRoaXMuZ2V0Qml0cyhhKSk7bj0oNjU1MzUmdCkrYTt0PXRoaXMuZ2V0Q29kZShzKTt0PVpuW3RdO2E9dD4+MTY7YT4wJiYoYT10aGlzLmdldEJpdHMoYSkpO2NvbnN0IGw9KDY1NTM1JnQpK2E7aWYobytuPj1pKXtlPXRoaXMuZW5zdXJlQnVmZmVyKG8rbik7aT1lLmxlbmd0aH1mb3IobGV0IHQ9MDt0PG47Kyt0LCsrbyllW29dPWVbby1sXX19fWNvbnN0IG5hPVt7cWU6MjIwMTcsbm1wczoxLG5scHM6MSxzd2l0Y2hGbGFnOjF9LHtxZToxMzMxMyxubXBzOjIsbmxwczo2LHN3aXRjaEZsYWc6MH0se3FlOjYxNDUsbm1wczozLG5scHM6OSxzd2l0Y2hGbGFnOjB9LHtxZToyNzUzLG5tcHM6NCxubHBzOjEyLHN3aXRjaEZsYWc6MH0se3FlOjEzMTMsbm1wczo1LG5scHM6Mjksc3dpdGNoRmxhZzowfSx7cWU6NTQ1LG5tcHM6MzgsbmxwczozMyxzd2l0Y2hGbGFnOjB9LHtxZToyMjAxNyxubXBzOjcsbmxwczo2LHN3aXRjaEZsYWc6MX0se3FlOjIxNTA1LG5tcHM6OCxubHBzOjE0LHN3aXRjaEZsYWc6MH0se3FlOjE4NDMzLG5tcHM6OSxubHBzOjE0LHN3aXRjaEZsYWc6MH0se3FlOjE0MzM3LG5tcHM6MTAsbmxwczoxNCxzd2l0Y2hGbGFnOjB9LHtxZToxMjI4OSxubXBzOjExLG5scHM6MTcsc3dpdGNoRmxhZzowfSx7cWU6OTIxNyxubXBzOjEyLG5scHM6MTgsc3dpdGNoRmxhZzowfSx7cWU6NzE2OSxubXBzOjEzLG5scHM6MjAsc3dpdGNoRmxhZzowfSx7cWU6NTYzMyxubXBzOjI5LG5scHM6MjEsc3dpdGNoRmxhZzowfSx7cWU6MjIwMTcsbm1wczoxNSxubHBzOjE0LHN3aXRjaEZsYWc6MX0se3FlOjIxNTA1LG5tcHM6MTYsbmxwczoxNCxzd2l0Y2hGbGFnOjB9LHtxZToyMDczNyxubXBzOjE3LG5scHM6MTUsc3dpdGNoRmxhZzowfSx7cWU6MTg0MzMsbm1wczoxOCxubHBzOjE2LHN3aXRjaEZsYWc6MH0se3FlOjE0MzM3LG5tcHM6MTksbmxwczoxNyxzd2l0Y2hGbGFnOjB9LHtxZToxMzMxMyxubXBzOjIwLG5scHM6MTgsc3dpdGNoRmxhZzowfSx7cWU6MTIyODksbm1wczoyMSxubHBzOjE5LHN3aXRjaEZsYWc6MH0se3FlOjEwMjQxLG5tcHM6MjIsbmxwczoxOSxzd2l0Y2hGbGFnOjB9LHtxZTo5MjE3LG5tcHM6MjMsbmxwczoyMCxzd2l0Y2hGbGFnOjB9LHtxZTo4NzA1LG5tcHM6MjQsbmxwczoyMSxzd2l0Y2hGbGFnOjB9LHtxZTo3MTY5LG5tcHM6MjUsbmxwczoyMixzd2l0Y2hGbGFnOjB9LHtxZTo2MTQ1LG5tcHM6MjYsbmxwczoyMyxzd2l0Y2hGbGFnOjB9LHtxZTo1NjMzLG5tcHM6MjcsbmxwczoyNCxzd2l0Y2hGbGFnOjB9LHtxZTo1MTIxLG5tcHM6MjgsbmxwczoyNSxzd2l0Y2hGbGFnOjB9LHtxZTo0NjA5LG5tcHM6MjksbmxwczoyNixzd2l0Y2hGbGFnOjB9LHtxZTo0MzUzLG5tcHM6MzAsbmxwczoyNyxzd2l0Y2hGbGFnOjB9LHtxZToyNzUzLG5tcHM6MzEsbmxwczoyOCxzd2l0Y2hGbGFnOjB9LHtxZToyNDk3LG5tcHM6MzIsbmxwczoyOSxzd2l0Y2hGbGFnOjB9LHtxZToyMjA5LG5tcHM6MzMsbmxwczozMCxzd2l0Y2hGbGFnOjB9LHtxZToxMzEzLG5tcHM6MzQsbmxwczozMSxzd2l0Y2hGbGFnOjB9LHtxZToxMDg5LG5tcHM6MzUsbmxwczozMixzd2l0Y2hGbGFnOjB9LHtxZTo2NzMsbm1wczozNixubHBzOjMzLHN3aXRjaEZsYWc6MH0se3FlOjU0NSxubXBzOjM3LG5scHM6MzQsc3dpdGNoRmxhZzowfSx7cWU6MzIxLG5tcHM6MzgsbmxwczozNSxzd2l0Y2hGbGFnOjB9LHtxZToyNzMsbm1wczozOSxubHBzOjM2LHN3aXRjaEZsYWc6MH0se3FlOjEzMyxubXBzOjQwLG5scHM6Mzcsc3dpdGNoRmxhZzowfSx7cWU6NzMsbm1wczo0MSxubHBzOjM4LHN3aXRjaEZsYWc6MH0se3FlOjM3LG5tcHM6NDIsbmxwczozOSxzd2l0Y2hGbGFnOjB9LHtxZToyMSxubXBzOjQzLG5scHM6NDAsc3dpdGNoRmxhZzowfSx7cWU6OSxubXBzOjQ0LG5scHM6NDEsc3dpdGNoRmxhZzowfSx7cWU6NSxubXBzOjQ1LG5scHM6NDIsc3dpdGNoRmxhZzowfSx7cWU6MSxubXBzOjQ1LG5scHM6NDMsc3dpdGNoRmxhZzowfSx7cWU6MjIwMTcsbm1wczo0NixubHBzOjQ2LHN3aXRjaEZsYWc6MH1dO2NsYXNzIEFyaXRobWV0aWNEZWNvZGVye2NvbnN0cnVjdG9yKGUsdCxuKXt0aGlzLmRhdGE9ZTt0aGlzLmJwPXQ7dGhpcy5kYXRhRW5kPW47dGhpcy5jaGlnaD1lW3RdO3RoaXMuY2xvdz0wO3RoaXMuYnl0ZUluKCk7dGhpcy5jaGlnaD10aGlzLmNoaWdoPDw3JjY1NTM1fHRoaXMuY2xvdz4+OSYxMjc7dGhpcy5jbG93PXRoaXMuY2xvdzw8NyY2NTUzNTt0aGlzLmN0LT03O3RoaXMuYT0zMjc2OH1ieXRlSW4oKXtjb25zdCBlPXRoaXMuZGF0YTtsZXQgdD10aGlzLmJwO2lmKDI1NT09PWVbdF0paWYoZVt0KzFdPjE0Myl7dGhpcy5jbG93Kz02NTI4MDt0aGlzLmN0PTh9ZWxzZXt0Kys7dGhpcy5jbG93Kz1lW3RdPDw5O3RoaXMuY3Q9Nzt0aGlzLmJwPXR9ZWxzZXt0Kys7dGhpcy5jbG93Kz10PHRoaXMuZGF0YUVuZD9lW3RdPDw4OjY1MjgwO3RoaXMuY3Q9ODt0aGlzLmJwPXR9aWYodGhpcy5jbG93PjY1NTM1KXt0aGlzLmNoaWdoKz10aGlzLmNsb3c+PjE2O3RoaXMuY2xvdyY9NjU1MzV9fXJlYWRCaXQoZSx0KXtsZXQgbj1lW3RdPj4xLGE9MSZlW3RdO2NvbnN0IHI9bmFbbl0scz1yLnFlO2xldCBpLG89dGhpcy5hLXM7aWYodGhpcy5jaGlnaDxzKWlmKG88cyl7bz1zO2k9YTtuPXIubm1wc31lbHNle289cztpPTFeYTsxPT09ci5zd2l0Y2hGbGFnJiYoYT1pKTtuPXIubmxwc31lbHNle3RoaXMuY2hpZ2gtPXM7aWYoMzI3Njgmbyl7dGhpcy5hPW87cmV0dXJuIGF9aWYobzxzKXtpPTFeYTsxPT09ci5zd2l0Y2hGbGFnJiYoYT1pKTtuPXIubmxwc31lbHNle2k9YTtuPXIubm1wc319ZG97MD09PXRoaXMuY3QmJnRoaXMuYnl0ZUluKCk7bzw8PTE7dGhpcy5jaGlnaD10aGlzLmNoaWdoPDwxJjY1NTM1fHRoaXMuY2xvdz4+MTUmMTt0aGlzLmNsb3c9dGhpcy5jbG93PDwxJjY1NTM1O3RoaXMuY3QtLX13aGlsZSghKDMyNzY4Jm8pKTt0aGlzLmE9bztlW3RdPW48PDF8YTtyZXR1cm4gaX19Y2xhc3MgSmJpZzJFcnJvciBleHRlbmRzIHJue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUsIkpiaWcyRXJyb3IiKX19Y2xhc3MgQ29udGV4dENhY2hle2dldENvbnRleHRzKGUpe3JldHVybiBlIGluIHRoaXM/dGhpc1tlXTp0aGlzW2VdPW5ldyBJbnQ4QXJyYXkoNjU1MzYpfX1jbGFzcyBEZWNvZGluZ0NvbnRleHR7Y29uc3RydWN0b3IoZSx0LG4pe3RoaXMuZGF0YT1lO3RoaXMuc3RhcnQ9dDt0aGlzLmVuZD1ufWdldCBkZWNvZGVyKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJkZWNvZGVyIixuZXcgQXJpdGhtZXRpY0RlY29kZXIodGhpcy5kYXRhLHRoaXMuc3RhcnQsdGhpcy5lbmQpKX1nZXQgY29udGV4dENhY2hlKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJjb250ZXh0Q2FjaGUiLG5ldyBDb250ZXh0Q2FjaGUpfX1mdW5jdGlvbiBkZWNvZGVJbnRlZ2VyKGUsdCxuKXtjb25zdCBhPWUuZ2V0Q29udGV4dHModCk7bGV0IHI9MTtmdW5jdGlvbiByZWFkQml0cyhlKXtsZXQgdD0wO2ZvcihsZXQgcz0wO3M8ZTtzKyspe2NvbnN0IGU9bi5yZWFkQml0KGEscik7cj1yPDI1Nj9yPDwxfGU6NTExJihyPDwxfGUpfDI1Njt0PXQ8PDF8ZX1yZXR1cm4gdD4+PjB9Y29uc3Qgcz1yZWFkQml0cygxKSxpPXJlYWRCaXRzKDEpP3JlYWRCaXRzKDEpP3JlYWRCaXRzKDEpP3JlYWRCaXRzKDEpP3JlYWRCaXRzKDEpP3JlYWRCaXRzKDMyKSs0NDM2OnJlYWRCaXRzKDEyKSszNDA6cmVhZEJpdHMoOCkrODQ6cmVhZEJpdHMoNikrMjA6cmVhZEJpdHMoNCkrNDpyZWFkQml0cygyKTtsZXQgbzswPT09cz9vPWk6aT4wJiYobz0taSk7cmV0dXJuIG8+PS0yMTQ3NDgzNjQ4JiZvPD1ibj9vOm51bGx9ZnVuY3Rpb24gZGVjb2RlSUFJRChlLHQsbil7Y29uc3QgYT1lLmdldENvbnRleHRzKCJJQUlEIik7bGV0IHI9MTtmb3IobGV0IGU9MDtlPG47ZSsrKXtyPXI8PDF8dC5yZWFkQml0KGEscil9cmV0dXJuIG48MzE/ciYoMTw8biktMToyMTQ3NDgzNjQ3JnJ9Y29uc3QgYWE9WyJTeW1ib2xEaWN0aW9uYXJ5IixudWxsLG51bGwsbnVsbCwiSW50ZXJtZWRpYXRlVGV4dFJlZ2lvbiIsbnVsbCwiSW1tZWRpYXRlVGV4dFJlZ2lvbiIsIkltbWVkaWF0ZUxvc3NsZXNzVGV4dFJlZ2lvbiIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLCJQYXR0ZXJuRGljdGlvbmFyeSIsbnVsbCxudWxsLG51bGwsIkludGVybWVkaWF0ZUhhbGZ0b25lUmVnaW9uIixudWxsLCJJbW1lZGlhdGVIYWxmdG9uZVJlZ2lvbiIsIkltbWVkaWF0ZUxvc3NsZXNzSGFsZnRvbmVSZWdpb24iLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLCJJbnRlcm1lZGlhdGVHZW5lcmljUmVnaW9uIixudWxsLCJJbW1lZGlhdGVHZW5lcmljUmVnaW9uIiwiSW1tZWRpYXRlTG9zc2xlc3NHZW5lcmljUmVnaW9uIiwiSW50ZXJtZWRpYXRlR2VuZXJpY1JlZmluZW1lbnRSZWdpb24iLG51bGwsIkltbWVkaWF0ZUdlbmVyaWNSZWZpbmVtZW50UmVnaW9uIiwiSW1tZWRpYXRlTG9zc2xlc3NHZW5lcmljUmVmaW5lbWVudFJlZ2lvbiIsbnVsbCxudWxsLG51bGwsbnVsbCwiUGFnZUluZm9ybWF0aW9uIiwiRW5kT2ZQYWdlIiwiRW5kT2ZTdHJpcGUiLCJFbmRPZkZpbGUiLCJQcm9maWxlcyIsIlRhYmxlcyIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLCJFeHRlbnNpb24iXSxyYT1bW3t4Oi0xLHk6LTJ9LHt4OjAseTotMn0se3g6MSx5Oi0yfSx7eDotMix5Oi0xfSx7eDotMSx5Oi0xfSx7eDowLHk6LTF9LHt4OjEseTotMX0se3g6Mix5Oi0xfSx7eDotNCx5OjB9LHt4Oi0zLHk6MH0se3g6LTIseTowfSx7eDotMSx5OjB9XSxbe3g6LTEseTotMn0se3g6MCx5Oi0yfSx7eDoxLHk6LTJ9LHt4OjIseTotMn0se3g6LTIseTotMX0se3g6LTEseTotMX0se3g6MCx5Oi0xfSx7eDoxLHk6LTF9LHt4OjIseTotMX0se3g6LTMseTowfSx7eDotMix5OjB9LHt4Oi0xLHk6MH1dLFt7eDotMSx5Oi0yfSx7eDowLHk6LTJ9LHt4OjEseTotMn0se3g6LTIseTotMX0se3g6LTEseTotMX0se3g6MCx5Oi0xfSx7eDoxLHk6LTF9LHt4Oi0yLHk6MH0se3g6LTEseTowfV0sW3t4Oi0zLHk6LTF9LHt4Oi0yLHk6LTF9LHt4Oi0xLHk6LTF9LHt4OjAseTotMX0se3g6MSx5Oi0xfSx7eDotNCx5OjB9LHt4Oi0zLHk6MH0se3g6LTIseTowfSx7eDotMSx5OjB9XV0sc2E9W3tjb2Rpbmc6W3t4OjAseTotMX0se3g6MSx5Oi0xfSx7eDotMSx5OjB9XSxyZWZlcmVuY2U6W3t4OjAseTotMX0se3g6MSx5Oi0xfSx7eDotMSx5OjB9LHt4OjAseTowfSx7eDoxLHk6MH0se3g6LTEseToxfSx7eDowLHk6MX0se3g6MSx5OjF9XX0se2NvZGluZzpbe3g6LTEseTotMX0se3g6MCx5Oi0xfSx7eDoxLHk6LTF9LHt4Oi0xLHk6MH1dLHJlZmVyZW5jZTpbe3g6MCx5Oi0xfSx7eDotMSx5OjB9LHt4OjAseTowfSx7eDoxLHk6MH0se3g6MCx5OjF9LHt4OjEseToxfV19XSxpYT1bMzk3MTcsMTk0MSwyMjksNDA1XSxvYT1bMzIsOF07ZnVuY3Rpb24gZGVjb2RlQml0bWFwKGUsdCxuLGEscixzLGksbyl7aWYoZSl7cmV0dXJuIGRlY29kZU1NUkJpdG1hcChuZXcgUmVhZGVyKG8uZGF0YSxvLnN0YXJ0LG8uZW5kKSx0LG4sITEpfWlmKDA9PT1hJiYhcyYmIXImJjQ9PT1pLmxlbmd0aCYmMz09PWlbMF0ueCYmLTE9PT1pWzBdLnkmJi0zPT09aVsxXS54JiYtMT09PWlbMV0ueSYmMj09PWlbMl0ueCYmLTI9PT1pWzJdLnkmJi0yPT09aVszXS54JiYtMj09PWlbM10ueSlyZXR1cm4gZnVuY3Rpb24gZGVjb2RlQml0bWFwVGVtcGxhdGUwKGUsdCxuKXtjb25zdCBhPW4uZGVjb2RlcixyPW4uY29udGV4dENhY2hlLmdldENvbnRleHRzKCJHQiIpLHM9W107bGV0IGksbyxsLGYsYyxoLHU7Zm9yKG89MDtvPHQ7bysrKXtjPXNbb109bmV3IFVpbnQ4QXJyYXkoZSk7aD1vPDE/YzpzW28tMV07dT1vPDI/YzpzW28tMl07aT11WzBdPDwxM3x1WzFdPDwxMnx1WzJdPDwxMXxoWzBdPDw3fGhbMV08PDZ8aFsyXTw8NXxoWzNdPDw0O2ZvcihsPTA7bDxlO2wrKyl7Y1tsXT1mPWEucmVhZEJpdChyLGkpO2k9KDMxNzM1JmkpPDwxfChsKzM8ZT91W2wrM108PDExOjApfChsKzQ8ZT9oW2wrNF08PDQ6MCl8Zn19cmV0dXJuIHN9KHQsbixvKTtjb25zdCBsPSEhcyxmPXJhW2FdLmNvbmNhdChpKTtmLnNvcnQoKGUsdCk9PmUueS10Lnl8fGUueC10LngpO2NvbnN0IGM9Zi5sZW5ndGgsaD1uZXcgSW50OEFycmF5KGMpLHU9bmV3IEludDhBcnJheShjKSxtPVtdO2xldCBwLGQsZz0wLGI9MCx3PTAsaj0wO2ZvcihkPTA7ZDxjO2QrKyl7aFtkXT1mW2RdLng7dVtkXT1mW2RdLnk7Yj1NYXRoLm1pbihiLGZbZF0ueCk7dz1NYXRoLm1heCh3LGZbZF0ueCk7aj1NYXRoLm1pbihqLGZbZF0ueSk7ZDxjLTEmJmZbZF0ueT09PWZbZCsxXS55JiZmW2RdLng9PT1mW2QrMV0ueC0xP2d8PTE8PGMtMS1kOm0ucHVzaChkKX1jb25zdCBrPW0ubGVuZ3RoLHk9bmV3IEludDhBcnJheShrKSxxPW5ldyBJbnQ4QXJyYXkoayksdj1uZXcgVWludDE2QXJyYXkoayk7Zm9yKHA9MDtwPGs7cCsrKXtkPW1bcF07eVtwXT1mW2RdLng7cVtwXT1mW2RdLnk7dltwXT0xPDxjLTEtZH1jb25zdCBTPS1iLHg9LWosQz10LXcsVD1pYVthXTtsZXQgTz1uZXcgVWludDhBcnJheSh0KTtjb25zdCBSPVtdLEg9by5kZWNvZGVyLEQ9by5jb250ZXh0Q2FjaGUuZ2V0Q29udGV4dHMoIkdCIik7bGV0IE0sRSxOLHosXyxMPTAsVT0wO2ZvcihsZXQgZT0wO2U8bjtlKyspe2lmKHIpe0xePUgucmVhZEJpdChELFQpO2lmKEwpe1IucHVzaChPKTtjb250aW51ZX19Tz1uZXcgVWludDhBcnJheShPKTtSLnB1c2goTyk7Zm9yKE09MDtNPHQ7TSsrKXtpZihsJiZzW2VdW01dKXtPW01dPTA7Y29udGludWV9aWYoTT49UyYmTTxDJiZlPj14KXtVPVU8PDEmZztmb3IoZD0wO2Q8aztkKyspe0U9ZStxW2RdO049TSt5W2RdO3o9UltFXVtOXTtpZih6KXt6PXZbZF07VXw9en19fWVsc2V7VT0wO189Yy0xO2ZvcihkPTA7ZDxjO2QrKyxfLS0pe049TStoW2RdO2lmKE4+PTAmJk48dCl7RT1lK3VbZF07aWYoRT49MCl7ej1SW0VdW05dO3omJihVfD16PDxfKX19fX1jb25zdCBuPUgucmVhZEJpdChELFUpO09bTV09bn19cmV0dXJuIFJ9ZnVuY3Rpb24gZGVjb2RlUmVmaW5lbWVudChlLHQsbixhLHIscyxpLG8sbCl7bGV0IGY9c2Fbbl0uY29kaW5nOzA9PT1uJiYoZj1mLmNvbmNhdChbb1swXV0pKTtjb25zdCBjPWYubGVuZ3RoLGg9bmV3IEludDMyQXJyYXkoYyksdT1uZXcgSW50MzJBcnJheShjKTtsZXQgbTtmb3IobT0wO208YzttKyspe2hbbV09ZlttXS54O3VbbV09ZlttXS55fWxldCBwPXNhW25dLnJlZmVyZW5jZTswPT09biYmKHA9cC5jb25jYXQoW29bMV1dKSk7Y29uc3QgZD1wLmxlbmd0aCxnPW5ldyBJbnQzMkFycmF5KGQpLGI9bmV3IEludDMyQXJyYXkoZCk7Zm9yKG09MDttPGQ7bSsrKXtnW21dPXBbbV0ueDtiW21dPXBbbV0ueX1jb25zdCB3PWFbMF0ubGVuZ3RoLGo9YS5sZW5ndGgsaz1vYVtuXSx5PVtdLHE9bC5kZWNvZGVyLHY9bC5jb250ZXh0Q2FjaGUuZ2V0Q29udGV4dHMoIkdSIik7bGV0IFM9MDtmb3IobGV0IG49MDtuPHQ7bisrKXtpZihpKXtTXj1xLnJlYWRCaXQodixrKTtpZihTKXRocm93IG5ldyBKYmlnMkVycm9yKCJwcmVkaWN0aW9uIGlzIG5vdCBzdXBwb3J0ZWQiKX1jb25zdCB0PW5ldyBVaW50OEFycmF5KGUpO3kucHVzaCh0KTtmb3IobGV0IGk9MDtpPGU7aSsrKXtsZXQgbyxsLGY9MDtmb3IobT0wO208YzttKyspe289bit1W21dO2w9aStoW21dO288MHx8bDwwfHxsPj1lP2Y8PD0xOmY9Zjw8MXx5W29dW2xdfWZvcihtPTA7bTxkO20rKyl7bz1uK2JbbV0tcztsPWkrZ1ttXS1yO288MHx8bz49anx8bDwwfHxsPj13P2Y8PD0xOmY9Zjw8MXxhW29dW2xdfWNvbnN0IHA9cS5yZWFkQml0KHYsZik7dFtpXT1wfX1yZXR1cm4geX1mdW5jdGlvbiBkZWNvZGVUZXh0UmVnaW9uKGUsdCxuLGEscixzLGksbyxsLGYsYyxoLHUsbSxwLGQsZyxiLHcpe2lmKGUmJnQpdGhyb3cgbmV3IEpiaWcyRXJyb3IoInJlZmluZW1lbnQgd2l0aCBIdWZmbWFuIGlzIG5vdCBzdXBwb3J0ZWQiKTtjb25zdCBqPVtdO2xldCBrLHk7Zm9yKGs9MDtrPGE7aysrKXt5PW5ldyBVaW50OEFycmF5KG4pO3ImJnkuZmlsbChyKTtqLnB1c2goeSl9Y29uc3QgcT1nLmRlY29kZXIsdj1nLmNvbnRleHRDYWNoZTtsZXQgUz1lPy1tLnRhYmxlRGVsdGFULmRlY29kZSh3KTotZGVjb2RlSW50ZWdlcih2LCJJQURUIixxKSx4PTA7az0wO2Zvcig7azxzOyl7Uys9ZT9tLnRhYmxlRGVsdGFULmRlY29kZSh3KTpkZWNvZGVJbnRlZ2VyKHYsIklBRFQiLHEpO3grPWU/bS50YWJsZUZpcnN0Uy5kZWNvZGUodyk6ZGVjb2RlSW50ZWdlcih2LCJJQUZTIixxKTtsZXQgYT14O2Zvcig7Oyl7bGV0IHI9MDtpPjEmJihyPWU/dy5yZWFkQml0cyhiKTpkZWNvZGVJbnRlZ2VyKHYsIklBSVQiLHEpKTtjb25zdCBzPWkqUytyLHg9ZT9tLnN5bWJvbElEVGFibGUuZGVjb2RlKHcpOmRlY29kZUlBSUQodixxLGwpLEM9dCYmKGU/dy5yZWFkQml0KCk6ZGVjb2RlSW50ZWdlcih2LCJJQVJJIixxKSk7bGV0IFQ9b1t4XSxPPVRbMF0ubGVuZ3RoLFI9VC5sZW5ndGg7aWYoQyl7Y29uc3QgZT1kZWNvZGVJbnRlZ2VyKHYsIklBUkRXIixxKSx0PWRlY29kZUludGVnZXIodiwiSUFSREgiLHEpO08rPWU7Uis9dDtUPWRlY29kZVJlZmluZW1lbnQoTyxSLHAsVCwoZT4+MSkrZGVjb2RlSW50ZWdlcih2LCJJQVJEWCIscSksKHQ+PjEpK2RlY29kZUludGVnZXIodiwiSUFSRFkiLHEpLCExLGQsZyl9bGV0IEg9MDtmPzEmaD9IPVItMTphKz1SLTE6aD4xP2ErPU8tMTpIPU8tMTtjb25zdCBEPXMtKDEmaD8wOlItMSksTT1hLSgyJmg/Ty0xOjApO2xldCBFLE4sejtpZihmKWZvcihFPTA7RTxSO0UrKyl7eT1qW00rRV07aWYoIXkpY29udGludWU7ej1UW0VdO2NvbnN0IGU9TWF0aC5taW4obi1ELE8pO3N3aXRjaCh1KXtjYXNlIDA6Zm9yKE49MDtOPGU7TisrKXlbRCtOXXw9eltOXTticmVhaztjYXNlIDI6Zm9yKE49MDtOPGU7TisrKXlbRCtOXV49eltOXTticmVhaztkZWZhdWx0OnRocm93IG5ldyBKYmlnMkVycm9yKGBvcGVyYXRvciAke3V9IGlzIG5vdCBzdXBwb3J0ZWRgKX19ZWxzZSBmb3IoTj0wO048UjtOKyspe3k9altEK05dO2lmKHkpe3o9VFtOXTtzd2l0Y2godSl7Y2FzZSAwOmZvcihFPTA7RTxPO0UrKyl5W00rRV18PXpbRV07YnJlYWs7Y2FzZSAyOmZvcihFPTA7RTxPO0UrKyl5W00rRV1ePXpbRV07YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgSmJpZzJFcnJvcihgb3BlcmF0b3IgJHt1fSBpcyBub3Qgc3VwcG9ydGVkYCl9fX1rKys7Y29uc3QgXz1lP20udGFibGVEZWx0YVMuZGVjb2RlKHcpOmRlY29kZUludGVnZXIodiwiSUFEUyIscSk7aWYobnVsbD09PV8pYnJlYWs7YSs9SCtfK2N9fXJldHVybiBqfWZ1bmN0aW9uIHJlYWRTZWdtZW50SGVhZGVyKGUsdCl7Y29uc3Qgbj17fTtuLm51bWJlcj1yZWFkVWludDMyKGUsdCk7Y29uc3QgYT1lW3QrNF0scj02MyZhO2lmKCFhYVtyXSl0aHJvdyBuZXcgSmJpZzJFcnJvcigiaW52YWxpZCBzZWdtZW50IHR5cGU6ICIrcik7bi50eXBlPXI7bi50eXBlTmFtZT1hYVtyXTtuLmRlZmVycmVkTm9uUmV0YWluPSEhKDEyOCZhKTtjb25zdCBzPSEhKDY0JmEpLGk9ZVt0KzVdO2xldCBvPWk+PjUmNztjb25zdCBsPVszMSZpXTtsZXQgZj10KzY7aWYoNz09PW8pe289NTM2ODcwOTExJnJlYWRVaW50MzIoZSxmLTEpO2YrPTM7bGV0IHQ9bys4Pj4zO2xbMF09ZVtmKytdO2Zvcig7LS10PjA7KWwucHVzaChlW2YrK10pfWVsc2UgaWYoNT09PW98fDY9PT1vKXRocm93IG5ldyBKYmlnMkVycm9yKCJpbnZhbGlkIHJlZmVycmVkLXRvIGZsYWdzIik7bi5yZXRhaW5CaXRzPWw7bGV0IGM9NDtuLm51bWJlcjw9MjU2P2M9MTpuLm51bWJlcjw9NjU1MzYmJihjPTIpO2NvbnN0IGg9W107bGV0IHUsbTtmb3IodT0wO3U8bzt1Kyspe2xldCB0O3Q9MT09PWM/ZVtmXToyPT09Yz9yZWFkVWludDE2KGUsZik6cmVhZFVpbnQzMihlLGYpO2gucHVzaCh0KTtmKz1jfW4ucmVmZXJyZWRUbz1oO2lmKHMpe24ucGFnZUFzc29jaWF0aW9uPXJlYWRVaW50MzIoZSxmKTtmKz00fWVsc2Ugbi5wYWdlQXNzb2NpYXRpb249ZVtmKytdO24ubGVuZ3RoPXJlYWRVaW50MzIoZSxmKTtmKz00O2lmKDQyOTQ5NjcyOTU9PT1uLmxlbmd0aCl7aWYoMzghPT1yKXRocm93IG5ldyBKYmlnMkVycm9yKCJpbnZhbGlkIHVua25vd24gc2VnbWVudCBsZW5ndGgiKTt7Y29uc3QgdD1yZWFkUmVnaW9uU2VnbWVudEluZm9ybWF0aW9uKGUsZiksYT0hISgxJmVbZitsYV0pLHI9NixzPW5ldyBVaW50OEFycmF5KHIpO2lmKCFhKXtzWzBdPTI1NTtzWzFdPTE3Mn1zWzJdPXQuaGVpZ2h0Pj4+MjQmMjU1O3NbM109dC5oZWlnaHQ+PjE2JjI1NTtzWzRdPXQuaGVpZ2h0Pj44JjI1NTtzWzVdPTI1NSZ0LmhlaWdodDtmb3IodT1mLG09ZS5sZW5ndGg7dTxtO3UrKyl7bGV0IHQ9MDtmb3IoO3Q8ciYmc1t0XT09PWVbdSt0XTspdCsrO2lmKHQ9PT1yKXtuLmxlbmd0aD11K3I7YnJlYWt9fWlmKDQyOTQ5NjcyOTU9PT1uLmxlbmd0aCl0aHJvdyBuZXcgSmJpZzJFcnJvcigic2VnbWVudCBlbmQgd2FzIG5vdCBmb3VuZCIpfX1uLmhlYWRlckVuZD1mO3JldHVybiBufWZ1bmN0aW9uIHJlYWRTZWdtZW50cyhlLHQsbixhKXtjb25zdCByPVtdO2xldCBzPW47Zm9yKDtzPGE7KXtjb25zdCBuPXJlYWRTZWdtZW50SGVhZGVyKHQscyk7cz1uLmhlYWRlckVuZDtjb25zdCBhPXtoZWFkZXI6bixkYXRhOnR9O2lmKCFlLnJhbmRvbUFjY2Vzcyl7YS5zdGFydD1zO3MrPW4ubGVuZ3RoO2EuZW5kPXN9ci5wdXNoKGEpO2lmKDUxPT09bi50eXBlKWJyZWFrfWlmKGUucmFuZG9tQWNjZXNzKWZvcihsZXQgZT0wLHQ9ci5sZW5ndGg7ZTx0O2UrKyl7cltlXS5zdGFydD1zO3MrPXJbZV0uaGVhZGVyLmxlbmd0aDtyW2VdLmVuZD1zfXJldHVybiByfWZ1bmN0aW9uIHJlYWRSZWdpb25TZWdtZW50SW5mb3JtYXRpb24oZSx0KXtyZXR1cm57d2lkdGg6cmVhZFVpbnQzMihlLHQpLGhlaWdodDpyZWFkVWludDMyKGUsdCs0KSx4OnJlYWRVaW50MzIoZSx0KzgpLHk6cmVhZFVpbnQzMihlLHQrMTIpLGNvbWJpbmF0aW9uT3BlcmF0b3I6NyZlW3QrMTZdfX1jb25zdCBsYT0xNztmdW5jdGlvbiBwcm9jZXNzU2VnbWVudChlLHQpe2NvbnN0IG49ZS5oZWFkZXIsYT1lLmRhdGEscj1lLmVuZDtsZXQgcyxpLG8sbCxmPWUuc3RhcnQ7c3dpdGNoKG4udHlwZSl7Y2FzZSAwOmNvbnN0IGU9e30sdD1yZWFkVWludDE2KGEsZik7ZS5odWZmbWFuPSEhKDEmdCk7ZS5yZWZpbmVtZW50PSEhKDImdCk7ZS5odWZmbWFuREhTZWxlY3Rvcj10Pj4yJjM7ZS5odWZmbWFuRFdTZWxlY3Rvcj10Pj40JjM7ZS5iaXRtYXBTaXplU2VsZWN0b3I9dD4+NiYxO2UuYWdncmVnYXRpb25JbnN0YW5jZXNTZWxlY3Rvcj10Pj43JjE7ZS5iaXRtYXBDb2RpbmdDb250ZXh0VXNlZD0hISgyNTYmdCk7ZS5iaXRtYXBDb2RpbmdDb250ZXh0UmV0YWluZWQ9ISEoNTEyJnQpO2UudGVtcGxhdGU9dD4+MTAmMztlLnJlZmluZW1lbnRUZW1wbGF0ZT10Pj4xMiYxO2YrPTI7aWYoIWUuaHVmZm1hbil7bD0wPT09ZS50ZW1wbGF0ZT80OjE7aT1bXTtmb3Iobz0wO288bDtvKyspe2kucHVzaCh7eDpyZWFkSW50OChhLGYpLHk6cmVhZEludDgoYSxmKzEpfSk7Zis9Mn1lLmF0PWl9aWYoZS5yZWZpbmVtZW50JiYhZS5yZWZpbmVtZW50VGVtcGxhdGUpe2k9W107Zm9yKG89MDtvPDI7bysrKXtpLnB1c2goe3g6cmVhZEludDgoYSxmKSx5OnJlYWRJbnQ4KGEsZisxKX0pO2YrPTJ9ZS5yZWZpbmVtZW50QXQ9aX1lLm51bWJlck9mRXhwb3J0ZWRTeW1ib2xzPXJlYWRVaW50MzIoYSxmKTtmKz00O2UubnVtYmVyT2ZOZXdTeW1ib2xzPXJlYWRVaW50MzIoYSxmKTtmKz00O3M9W2Usbi5udW1iZXIsbi5yZWZlcnJlZFRvLGEsZixyXTticmVhaztjYXNlIDY6Y2FzZSA3OmNvbnN0IGM9e307Yy5pbmZvPXJlYWRSZWdpb25TZWdtZW50SW5mb3JtYXRpb24oYSxmKTtmKz1sYTtjb25zdCBoPXJlYWRVaW50MTYoYSxmKTtmKz0yO2MuaHVmZm1hbj0hISgxJmgpO2MucmVmaW5lbWVudD0hISgyJmgpO2MubG9nU3RyaXBTaXplPWg+PjImMztjLnN0cmlwU2l6ZT0xPDxjLmxvZ1N0cmlwU2l6ZTtjLnJlZmVyZW5jZUNvcm5lcj1oPj40JjM7Yy50cmFuc3Bvc2VkPSEhKDY0JmgpO2MuY29tYmluYXRpb25PcGVyYXRvcj1oPj43JjM7Yy5kZWZhdWx0UGl4ZWxWYWx1ZT1oPj45JjE7Yy5kc09mZnNldD1oPDwxNz4+Mjc7Yy5yZWZpbmVtZW50VGVtcGxhdGU9aD4+MTUmMTtpZihjLmh1ZmZtYW4pe2NvbnN0IGU9cmVhZFVpbnQxNihhLGYpO2YrPTI7Yy5odWZmbWFuRlM9MyZlO2MuaHVmZm1hbkRTPWU+PjImMztjLmh1ZmZtYW5EVD1lPj40JjM7Yy5odWZmbWFuUmVmaW5lbWVudERXPWU+PjYmMztjLmh1ZmZtYW5SZWZpbmVtZW50REg9ZT4+OCYzO2MuaHVmZm1hblJlZmluZW1lbnREWD1lPj4xMCYzO2MuaHVmZm1hblJlZmluZW1lbnREWT1lPj4xMiYzO2MuaHVmZm1hblJlZmluZW1lbnRTaXplU2VsZWN0b3I9ISEoMTYzODQmZSl9aWYoYy5yZWZpbmVtZW50JiYhYy5yZWZpbmVtZW50VGVtcGxhdGUpe2k9W107Zm9yKG89MDtvPDI7bysrKXtpLnB1c2goe3g6cmVhZEludDgoYSxmKSx5OnJlYWRJbnQ4KGEsZisxKX0pO2YrPTJ9Yy5yZWZpbmVtZW50QXQ9aX1jLm51bWJlck9mU3ltYm9sSW5zdGFuY2VzPXJlYWRVaW50MzIoYSxmKTtmKz00O3M9W2Msbi5yZWZlcnJlZFRvLGEsZixyXTticmVhaztjYXNlIDE2OmNvbnN0IHU9e30sbT1hW2YrK107dS5tbXI9ISEoMSZtKTt1LnRlbXBsYXRlPW0+PjEmMzt1LnBhdHRlcm5XaWR0aD1hW2YrK107dS5wYXR0ZXJuSGVpZ2h0PWFbZisrXTt1Lm1heFBhdHRlcm5JbmRleD1yZWFkVWludDMyKGEsZik7Zis9NDtzPVt1LG4ubnVtYmVyLGEsZixyXTticmVhaztjYXNlIDIyOmNhc2UgMjM6Y29uc3QgcD17fTtwLmluZm89cmVhZFJlZ2lvblNlZ21lbnRJbmZvcm1hdGlvbihhLGYpO2YrPWxhO2NvbnN0IGQ9YVtmKytdO3AubW1yPSEhKDEmZCk7cC50ZW1wbGF0ZT1kPj4xJjM7cC5lbmFibGVTa2lwPSEhKDgmZCk7cC5jb21iaW5hdGlvbk9wZXJhdG9yPWQ+PjQmNztwLmRlZmF1bHRQaXhlbFZhbHVlPWQ+PjcmMTtwLmdyaWRXaWR0aD1yZWFkVWludDMyKGEsZik7Zis9NDtwLmdyaWRIZWlnaHQ9cmVhZFVpbnQzMihhLGYpO2YrPTQ7cC5ncmlkT2Zmc2V0WD00Mjk0OTY3Mjk1JnJlYWRVaW50MzIoYSxmKTtmKz00O3AuZ3JpZE9mZnNldFk9NDI5NDk2NzI5NSZyZWFkVWludDMyKGEsZik7Zis9NDtwLmdyaWRWZWN0b3JYPXJlYWRVaW50MTYoYSxmKTtmKz0yO3AuZ3JpZFZlY3Rvclk9cmVhZFVpbnQxNihhLGYpO2YrPTI7cz1bcCxuLnJlZmVycmVkVG8sYSxmLHJdO2JyZWFrO2Nhc2UgMzg6Y2FzZSAzOTpjb25zdCBnPXt9O2cuaW5mbz1yZWFkUmVnaW9uU2VnbWVudEluZm9ybWF0aW9uKGEsZik7Zis9bGE7Y29uc3QgYj1hW2YrK107Zy5tbXI9ISEoMSZiKTtnLnRlbXBsYXRlPWI+PjEmMztnLnByZWRpY3Rpb249ISEoOCZiKTtpZighZy5tbXIpe2w9MD09PWcudGVtcGxhdGU/NDoxO2k9W107Zm9yKG89MDtvPGw7bysrKXtpLnB1c2goe3g6cmVhZEludDgoYSxmKSx5OnJlYWRJbnQ4KGEsZisxKX0pO2YrPTJ9Zy5hdD1pfXM9W2csYSxmLHJdO2JyZWFrO2Nhc2UgNDg6Y29uc3Qgdz17d2lkdGg6cmVhZFVpbnQzMihhLGYpLGhlaWdodDpyZWFkVWludDMyKGEsZis0KSxyZXNvbHV0aW9uWDpyZWFkVWludDMyKGEsZis4KSxyZXNvbHV0aW9uWTpyZWFkVWludDMyKGEsZisxMil9OzQyOTQ5NjcyOTU9PT13LmhlaWdodCYmZGVsZXRlIHcuaGVpZ2h0O2NvbnN0IGo9YVtmKzE2XTtyZWFkVWludDE2KGEsZisxNyk7dy5sb3NzbGVzcz0hISgxJmopO3cucmVmaW5lbWVudD0hISgyJmopO3cuZGVmYXVsdFBpeGVsVmFsdWU9aj4+MiYxO3cuY29tYmluYXRpb25PcGVyYXRvcj1qPj4zJjM7dy5yZXF1aXJlc0J1ZmZlcj0hISgzMiZqKTt3LmNvbWJpbmF0aW9uT3BlcmF0b3JPdmVycmlkZT0hISg2NCZqKTtzPVt3XTticmVhaztjYXNlIDQ5OmNhc2UgNTA6Y2FzZSA1MTpjYXNlIDYyOmJyZWFrO2Nhc2UgNTM6cz1bbi5udW1iZXIsYSxmLHJdO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEpiaWcyRXJyb3IoYHNlZ21lbnQgdHlwZSAke24udHlwZU5hbWV9KCR7bi50eXBlfSkgaXMgbm90IGltcGxlbWVudGVkYCl9Y29uc3QgYz0ib24iK24udHlwZU5hbWU7YyBpbiB0JiZ0W2NdLmFwcGx5KHQscyl9ZnVuY3Rpb24gcHJvY2Vzc1NlZ21lbnRzKGUsdCl7Zm9yKGxldCBuPTAsYT1lLmxlbmd0aDtuPGE7bisrKXByb2Nlc3NTZWdtZW50KGVbbl0sdCl9Y2xhc3MgU2ltcGxlU2VnbWVudFZpc2l0b3J7b25QYWdlSW5mb3JtYXRpb24oZSl7dGhpcy5jdXJyZW50UGFnZUluZm89ZTtjb25zdCB0PWUud2lkdGgrNz4+MyxuPW5ldyBVaW50OENsYW1wZWRBcnJheSh0KmUuaGVpZ2h0KTtlLmRlZmF1bHRQaXhlbFZhbHVlJiZuLmZpbGwoMjU1KTt0aGlzLmJ1ZmZlcj1ufWRyYXdCaXRtYXAoZSx0KXtjb25zdCBuPXRoaXMuY3VycmVudFBhZ2VJbmZvLGE9ZS53aWR0aCxyPWUuaGVpZ2h0LHM9bi53aWR0aCs3Pj4zLGk9bi5jb21iaW5hdGlvbk9wZXJhdG9yT3ZlcnJpZGU/ZS5jb21iaW5hdGlvbk9wZXJhdG9yOm4uY29tYmluYXRpb25PcGVyYXRvcixvPXRoaXMuYnVmZmVyLGw9MTI4Pj4oNyZlLngpO2xldCBmLGMsaCx1LG09ZS55KnMrKGUueD4+Myk7c3dpdGNoKGkpe2Nhc2UgMDpmb3IoZj0wO2Y8cjtmKyspe2g9bDt1PW07Zm9yKGM9MDtjPGE7YysrKXt0W2ZdW2NdJiYob1t1XXw9aCk7aD4+PTE7aWYoIWgpe2g9MTI4O3UrK319bSs9c31icmVhaztjYXNlIDI6Zm9yKGY9MDtmPHI7ZisrKXtoPWw7dT1tO2ZvcihjPTA7YzxhO2MrKyl7dFtmXVtjXSYmKG9bdV1ePWgpO2g+Pj0xO2lmKCFoKXtoPTEyODt1Kyt9fW0rPXN9YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgSmJpZzJFcnJvcihgb3BlcmF0b3IgJHtpfSBpcyBub3Qgc3VwcG9ydGVkYCl9fW9uSW1tZWRpYXRlR2VuZXJpY1JlZ2lvbihlLHQsbixhKXtjb25zdCByPWUuaW5mbyxzPW5ldyBEZWNvZGluZ0NvbnRleHQodCxuLGEpLGk9ZGVjb2RlQml0bWFwKGUubW1yLHIud2lkdGgsci5oZWlnaHQsZS50ZW1wbGF0ZSxlLnByZWRpY3Rpb24sbnVsbCxlLmF0LHMpO3RoaXMuZHJhd0JpdG1hcChyLGkpfW9uSW1tZWRpYXRlTG9zc2xlc3NHZW5lcmljUmVnaW9uKCl7dGhpcy5vbkltbWVkaWF0ZUdlbmVyaWNSZWdpb24oLi4uYXJndW1lbnRzKX1vblN5bWJvbERpY3Rpb25hcnkoZSx0LG4sYSxyLHMpe2xldCBpLG87aWYoZS5odWZmbWFuKXtpPWZ1bmN0aW9uIGdldFN5bWJvbERpY3Rpb25hcnlIdWZmbWFuVGFibGVzKGUsdCxuKXtsZXQgYSxyLHMsaSxvPTA7c3dpdGNoKGUuaHVmZm1hbkRIU2VsZWN0b3Ipe2Nhc2UgMDpjYXNlIDE6YT1nZXRTdGFuZGFyZFRhYmxlKGUuaHVmZm1hbkRIU2VsZWN0b3IrNCk7YnJlYWs7Y2FzZSAzOmE9Z2V0Q3VzdG9tSHVmZm1hblRhYmxlKG8sdCxuKTtvKys7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgSmJpZzJFcnJvcigiaW52YWxpZCBIdWZmbWFuIERIIHNlbGVjdG9yIil9c3dpdGNoKGUuaHVmZm1hbkRXU2VsZWN0b3Ipe2Nhc2UgMDpjYXNlIDE6cj1nZXRTdGFuZGFyZFRhYmxlKGUuaHVmZm1hbkRXU2VsZWN0b3IrMik7YnJlYWs7Y2FzZSAzOnI9Z2V0Q3VzdG9tSHVmZm1hblRhYmxlKG8sdCxuKTtvKys7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgSmJpZzJFcnJvcigiaW52YWxpZCBIdWZmbWFuIERXIHNlbGVjdG9yIil9aWYoZS5iaXRtYXBTaXplU2VsZWN0b3Ipe3M9Z2V0Q3VzdG9tSHVmZm1hblRhYmxlKG8sdCxuKTtvKyt9ZWxzZSBzPWdldFN0YW5kYXJkVGFibGUoMSk7aT1lLmFnZ3JlZ2F0aW9uSW5zdGFuY2VzU2VsZWN0b3I/Z2V0Q3VzdG9tSHVmZm1hblRhYmxlKG8sdCxuKTpnZXRTdGFuZGFyZFRhYmxlKDEpO3JldHVybnt0YWJsZURlbHRhSGVpZ2h0OmEsdGFibGVEZWx0YVdpZHRoOnIsdGFibGVCaXRtYXBTaXplOnMsdGFibGVBZ2dyZWdhdGVJbnN0YW5jZXM6aX19KGUsbix0aGlzLmN1c3RvbVRhYmxlcyk7bz1uZXcgUmVhZGVyKGEscixzKX1sZXQgbD10aGlzLnN5bWJvbHM7bHx8KHRoaXMuc3ltYm9scz1sPXt9KTtjb25zdCBmPVtdO2Zvcihjb25zdCBlIG9mIG4pe2NvbnN0IHQ9bFtlXTt0JiZmLnB1c2goLi4udCl9Y29uc3QgYz1uZXcgRGVjb2RpbmdDb250ZXh0KGEscixzKTtsW3RdPWZ1bmN0aW9uIGRlY29kZVN5bWJvbERpY3Rpb25hcnkoZSx0LG4sYSxyLHMsaSxvLGwsZixjLGgpe2lmKGUmJnQpdGhyb3cgbmV3IEpiaWcyRXJyb3IoInN5bWJvbCByZWZpbmVtZW50IHdpdGggSHVmZm1hbiBpcyBub3Qgc3VwcG9ydGVkIik7Y29uc3QgdT1bXTtsZXQgbT0wLHA9bG9nMihuLmxlbmd0aCthKTtjb25zdCBkPWMuZGVjb2RlcixnPWMuY29udGV4dENhY2hlO2xldCBiLHc7aWYoZSl7Yj1nZXRTdGFuZGFyZFRhYmxlKDEpO3c9W107cD1NYXRoLm1heChwLDEpfWZvcig7dS5sZW5ndGg8YTspe20rPWU/cy50YWJsZURlbHRhSGVpZ2h0LmRlY29kZShoKTpkZWNvZGVJbnRlZ2VyKGcsIklBREgiLGQpO2xldCBhPTAscj0wO2NvbnN0IGI9ZT93Lmxlbmd0aDowO2Zvcig7Oyl7Y29uc3QgYj1lP3MudGFibGVEZWx0YVdpZHRoLmRlY29kZShoKTpkZWNvZGVJbnRlZ2VyKGcsIklBRFciLGQpO2lmKG51bGw9PT1iKWJyZWFrO2ErPWI7cis9YTtsZXQgajtpZih0KXtjb25zdCByPWRlY29kZUludGVnZXIoZywiSUFBSSIsZCk7aWYocj4xKWo9ZGVjb2RlVGV4dFJlZ2lvbihlLHQsYSxtLDAsciwxLG4uY29uY2F0KHUpLHAsMCwwLDEsMCxzLGwsZixjLDAsaCk7ZWxzZXtjb25zdCBlPWRlY29kZUlBSUQoZyxkLHApLHQ9ZGVjb2RlSW50ZWdlcihnLCJJQVJEWCIsZCkscj1kZWNvZGVJbnRlZ2VyKGcsIklBUkRZIixkKTtqPWRlY29kZVJlZmluZW1lbnQoYSxtLGwsZTxuLmxlbmd0aD9uW2VdOnVbZS1uLmxlbmd0aF0sdCxyLCExLGYsYyl9dS5wdXNoKGopfWVsc2UgaWYoZSl3LnB1c2goYSk7ZWxzZXtqPWRlY29kZUJpdG1hcCghMSxhLG0saSwhMSxudWxsLG8sYyk7dS5wdXNoKGopfX1pZihlJiYhdCl7Y29uc3QgZT1zLnRhYmxlQml0bWFwU2l6ZS5kZWNvZGUoaCk7aC5ieXRlQWxpZ24oKTtsZXQgdDtpZigwPT09ZSl0PXJlYWRVbmNvbXByZXNzZWRCaXRtYXAoaCxyLG0pO2Vsc2V7Y29uc3Qgbj1oLmVuZCxhPWgucG9zaXRpb24rZTtoLmVuZD1hO3Q9ZGVjb2RlTU1SQml0bWFwKGgscixtLCExKTtoLmVuZD1uO2gucG9zaXRpb249YX1jb25zdCBuPXcubGVuZ3RoO2lmKGI9PT1uLTEpdS5wdXNoKHQpO2Vsc2V7bGV0IGUsYSxyLHMsaSxvPTA7Zm9yKGU9YjtlPG47ZSsrKXtzPXdbZV07cj1vK3M7aT1bXTtmb3IoYT0wO2E8bTthKyspaS5wdXNoKHRbYV0uc3ViYXJyYXkobyxyKSk7dS5wdXNoKGkpO289cn19fX1jb25zdCBqPVtdLGs9W107bGV0IHkscSx2PSExO2NvbnN0IFM9bi5sZW5ndGgrYTtmb3IoO2subGVuZ3RoPFM7KXtsZXQgdD1lP2IuZGVjb2RlKGgpOmRlY29kZUludGVnZXIoZywiSUFFWCIsZCk7Zm9yKDt0LS07KWsucHVzaCh2KTt2PSF2fWZvcih5PTAscT1uLmxlbmd0aDt5PHE7eSsrKWtbeV0mJmoucHVzaChuW3ldKTtmb3IobGV0IGU9MDtlPGE7eSsrLGUrKylrW3ldJiZqLnB1c2godVtlXSk7cmV0dXJuIGp9KGUuaHVmZm1hbixlLnJlZmluZW1lbnQsZixlLm51bWJlck9mTmV3U3ltYm9scyxlLm51bWJlck9mRXhwb3J0ZWRTeW1ib2xzLGksZS50ZW1wbGF0ZSxlLmF0LGUucmVmaW5lbWVudFRlbXBsYXRlLGUucmVmaW5lbWVudEF0LGMsbyl9b25JbW1lZGlhdGVUZXh0UmVnaW9uKGUsdCxuLGEscil7Y29uc3Qgcz1lLmluZm87bGV0IGksbztjb25zdCBsPXRoaXMuc3ltYm9scyxmPVtdO2Zvcihjb25zdCBlIG9mIHQpe2NvbnN0IHQ9bFtlXTt0JiZmLnB1c2goLi4udCl9Y29uc3QgYz1sb2cyKGYubGVuZ3RoKTtpZihlLmh1ZmZtYW4pe289bmV3IFJlYWRlcihuLGEscik7aT1mdW5jdGlvbiBnZXRUZXh0UmVnaW9uSHVmZm1hblRhYmxlcyhlLHQsbixhLHIpe2NvbnN0IHM9W107Zm9yKGxldCBlPTA7ZTw9MzQ7ZSsrKXtjb25zdCB0PXIucmVhZEJpdHMoNCk7cy5wdXNoKG5ldyBIdWZmbWFuTGluZShbZSx0LDAsMF0pKX1jb25zdCBpPW5ldyBIdWZmbWFuVGFibGUocywhMSk7cy5sZW5ndGg9MDtmb3IobGV0IGU9MDtlPGE7KXtjb25zdCB0PWkuZGVjb2RlKHIpO2lmKHQ+PTMyKXtsZXQgbixhLGk7c3dpdGNoKHQpe2Nhc2UgMzI6aWYoMD09PWUpdGhyb3cgbmV3IEpiaWcyRXJyb3IoIm5vIHByZXZpb3VzIHZhbHVlIGluIHN5bWJvbCBJRCB0YWJsZSIpO2E9ci5yZWFkQml0cygyKSszO249c1tlLTFdLnByZWZpeExlbmd0aDticmVhaztjYXNlIDMzOmE9ci5yZWFkQml0cygzKSszO249MDticmVhaztjYXNlIDM0OmE9ci5yZWFkQml0cyg3KSsxMTtuPTA7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgSmJpZzJFcnJvcigiaW52YWxpZCBjb2RlIGxlbmd0aCBpbiBzeW1ib2wgSUQgdGFibGUiKX1mb3IoaT0wO2k8YTtpKyspe3MucHVzaChuZXcgSHVmZm1hbkxpbmUoW2UsbiwwLDBdKSk7ZSsrfX1lbHNle3MucHVzaChuZXcgSHVmZm1hbkxpbmUoW2UsdCwwLDBdKSk7ZSsrfX1yLmJ5dGVBbGlnbigpO2NvbnN0IG89bmV3IEh1ZmZtYW5UYWJsZShzLCExKTtsZXQgbCxmLGMsaD0wO3N3aXRjaChlLmh1ZmZtYW5GUyl7Y2FzZSAwOmNhc2UgMTpsPWdldFN0YW5kYXJkVGFibGUoZS5odWZmbWFuRlMrNik7YnJlYWs7Y2FzZSAzOmw9Z2V0Q3VzdG9tSHVmZm1hblRhYmxlKGgsdCxuKTtoKys7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgSmJpZzJFcnJvcigiaW52YWxpZCBIdWZmbWFuIEZTIHNlbGVjdG9yIil9c3dpdGNoKGUuaHVmZm1hbkRTKXtjYXNlIDA6Y2FzZSAxOmNhc2UgMjpmPWdldFN0YW5kYXJkVGFibGUoZS5odWZmbWFuRFMrOCk7YnJlYWs7Y2FzZSAzOmY9Z2V0Q3VzdG9tSHVmZm1hblRhYmxlKGgsdCxuKTtoKys7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgSmJpZzJFcnJvcigiaW52YWxpZCBIdWZmbWFuIERTIHNlbGVjdG9yIil9c3dpdGNoKGUuaHVmZm1hbkRUKXtjYXNlIDA6Y2FzZSAxOmNhc2UgMjpjPWdldFN0YW5kYXJkVGFibGUoZS5odWZmbWFuRFQrMTEpO2JyZWFrO2Nhc2UgMzpjPWdldEN1c3RvbUh1ZmZtYW5UYWJsZShoLHQsbik7aCsrO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEpiaWcyRXJyb3IoImludmFsaWQgSHVmZm1hbiBEVCBzZWxlY3RvciIpfWlmKGUucmVmaW5lbWVudCl0aHJvdyBuZXcgSmJpZzJFcnJvcigicmVmaW5lbWVudCB3aXRoIEh1ZmZtYW4gaXMgbm90IHN1cHBvcnRlZCIpO3JldHVybntzeW1ib2xJRFRhYmxlOm8sdGFibGVGaXJzdFM6bCx0YWJsZURlbHRhUzpmLHRhYmxlRGVsdGFUOmN9fShlLHQsdGhpcy5jdXN0b21UYWJsZXMsZi5sZW5ndGgsbyl9Y29uc3QgaD1uZXcgRGVjb2RpbmdDb250ZXh0KG4sYSxyKSx1PWRlY29kZVRleHRSZWdpb24oZS5odWZmbWFuLGUucmVmaW5lbWVudCxzLndpZHRoLHMuaGVpZ2h0LGUuZGVmYXVsdFBpeGVsVmFsdWUsZS5udW1iZXJPZlN5bWJvbEluc3RhbmNlcyxlLnN0cmlwU2l6ZSxmLGMsZS50cmFuc3Bvc2VkLGUuZHNPZmZzZXQsZS5yZWZlcmVuY2VDb3JuZXIsZS5jb21iaW5hdGlvbk9wZXJhdG9yLGksZS5yZWZpbmVtZW50VGVtcGxhdGUsZS5yZWZpbmVtZW50QXQsaCxlLmxvZ1N0cmlwU2l6ZSxvKTt0aGlzLmRyYXdCaXRtYXAocyx1KX1vbkltbWVkaWF0ZUxvc3NsZXNzVGV4dFJlZ2lvbigpe3RoaXMub25JbW1lZGlhdGVUZXh0UmVnaW9uKC4uLmFyZ3VtZW50cyl9b25QYXR0ZXJuRGljdGlvbmFyeShlLHQsbixhLHIpe2xldCBzPXRoaXMucGF0dGVybnM7c3x8KHRoaXMucGF0dGVybnM9cz17fSk7Y29uc3QgaT1uZXcgRGVjb2RpbmdDb250ZXh0KG4sYSxyKTtzW3RdPWZ1bmN0aW9uIGRlY29kZVBhdHRlcm5EaWN0aW9uYXJ5KGUsdCxuLGEscixzKXtjb25zdCBpPVtdO2lmKCFlKXtpLnB1c2goe3g6LXQseTowfSk7MD09PXImJmkucHVzaCh7eDotMyx5Oi0xfSx7eDoyLHk6LTJ9LHt4Oi0yLHk6LTJ9KX1jb25zdCBvPWRlY29kZUJpdG1hcChlLChhKzEpKnQsbixyLCExLG51bGwsaSxzKSxsPVtdO2ZvcihsZXQgZT0wO2U8PWE7ZSsrKXtjb25zdCBhPVtdLHI9dCplLHM9cit0O2ZvcihsZXQgZT0wO2U8bjtlKyspYS5wdXNoKG9bZV0uc3ViYXJyYXkocixzKSk7bC5wdXNoKGEpfXJldHVybiBsfShlLm1tcixlLnBhdHRlcm5XaWR0aCxlLnBhdHRlcm5IZWlnaHQsZS5tYXhQYXR0ZXJuSW5kZXgsZS50ZW1wbGF0ZSxpKX1vbkltbWVkaWF0ZUhhbGZ0b25lUmVnaW9uKGUsdCxuLGEscil7Y29uc3Qgcz10aGlzLnBhdHRlcm5zW3RbMF1dLGk9ZS5pbmZvLG89bmV3IERlY29kaW5nQ29udGV4dChuLGEsciksbD1mdW5jdGlvbiBkZWNvZGVIYWxmdG9uZVJlZ2lvbihlLHQsbixhLHIscyxpLG8sbCxmLGMsaCx1LG0scCl7aWYoaSl0aHJvdyBuZXcgSmJpZzJFcnJvcigic2tpcCBpcyBub3Qgc3VwcG9ydGVkIik7aWYoMCE9PW8pdGhyb3cgbmV3IEpiaWcyRXJyb3IoYG9wZXJhdG9yICIke299IiBpcyBub3Qgc3VwcG9ydGVkIGluIGhhbGZ0b25lIHJlZ2lvbmApO2NvbnN0IGQ9W107bGV0IGcsYix3O2ZvcihnPTA7ZzxyO2crKyl7dz1uZXcgVWludDhBcnJheShhKTtzJiZ3LmZpbGwocyk7ZC5wdXNoKHcpfWNvbnN0IGo9dC5sZW5ndGgsaz10WzBdLHk9a1swXS5sZW5ndGgscT1rLmxlbmd0aCx2PWxvZzIoaiksUz1bXTtpZighZSl7Uy5wdXNoKHt4Om48PTE/MzoyLHk6LTF9KTswPT09biYmUy5wdXNoKHt4Oi0zLHk6LTF9LHt4OjIseTotMn0se3g6LTIseTotMn0pfWNvbnN0IHg9W107bGV0IEMsVCxPLFIsSCxELE0sRSxOLHosXztlJiYoQz1uZXcgUmVhZGVyKHAuZGF0YSxwLnN0YXJ0LHAuZW5kKSk7Zm9yKGc9di0xO2c+PTA7Zy0tKXtUPWU/ZGVjb2RlTU1SQml0bWFwKEMsbCxmLCEwKTpkZWNvZGVCaXRtYXAoITEsbCxmLG4sITEsbnVsbCxTLHApO3hbZ109VH1mb3IoTz0wO088ZjtPKyspZm9yKFI9MDtSPGw7UisrKXtIPTA7RD0wO2ZvcihiPXYtMTtiPj0wO2ItLSl7SF49eFtiXVtPXVtSXTtEfD1IPDxifU09dFtEXTtFPWMrTyptK1IqdT4+ODtOPWgrTyp1LVIqbT4+ODtpZihFPj0wJiZFK3k8PWEmJk4+PTAmJk4rcTw9cilmb3IoZz0wO2c8cTtnKyspe189ZFtOK2ddO3o9TVtnXTtmb3IoYj0wO2I8eTtiKyspX1tFK2JdfD16W2JdfWVsc2V7bGV0IGUsdDtmb3IoZz0wO2c8cTtnKyspe3Q9TitnO2lmKCEodDwwfHx0Pj1yKSl7Xz1kW3RdO3o9TVtnXTtmb3IoYj0wO2I8eTtiKyspe2U9RStiO2U+PTAmJmU8YSYmKF9bZV18PXpbYl0pfX19fX1yZXR1cm4gZH0oZS5tbXIscyxlLnRlbXBsYXRlLGkud2lkdGgsaS5oZWlnaHQsZS5kZWZhdWx0UGl4ZWxWYWx1ZSxlLmVuYWJsZVNraXAsZS5jb21iaW5hdGlvbk9wZXJhdG9yLGUuZ3JpZFdpZHRoLGUuZ3JpZEhlaWdodCxlLmdyaWRPZmZzZXRYLGUuZ3JpZE9mZnNldFksZS5ncmlkVmVjdG9yWCxlLmdyaWRWZWN0b3JZLG8pO3RoaXMuZHJhd0JpdG1hcChpLGwpfW9uSW1tZWRpYXRlTG9zc2xlc3NIYWxmdG9uZVJlZ2lvbigpe3RoaXMub25JbW1lZGlhdGVIYWxmdG9uZVJlZ2lvbiguLi5hcmd1bWVudHMpfW9uVGFibGVzKGUsdCxuLGEpe2xldCByPXRoaXMuY3VzdG9tVGFibGVzO3J8fCh0aGlzLmN1c3RvbVRhYmxlcz1yPXt9KTtyW2VdPWZ1bmN0aW9uIGRlY29kZVRhYmxlc1NlZ21lbnQoZSx0LG4pe2NvbnN0IGE9ZVt0XSxyPTQyOTQ5NjcyOTUmcmVhZFVpbnQzMihlLHQrMSkscz00Mjk0OTY3Mjk1JnJlYWRVaW50MzIoZSx0KzUpLGk9bmV3IFJlYWRlcihlLHQrOSxuKSxvPTErKGE+PjEmNyksbD0xKyhhPj40JjcpLGY9W107bGV0IGMsaCx1PXI7ZG97Yz1pLnJlYWRCaXRzKG8pO2g9aS5yZWFkQml0cyhsKTtmLnB1c2gobmV3IEh1ZmZtYW5MaW5lKFt1LGMsaCwwXSkpO3UrPTE8PGh9d2hpbGUodTxzKTtjPWkucmVhZEJpdHMobyk7Zi5wdXNoKG5ldyBIdWZmbWFuTGluZShbci0xLGMsMzIsMCwibG93ZXIiXSkpO2M9aS5yZWFkQml0cyhvKTtmLnB1c2gobmV3IEh1ZmZtYW5MaW5lKFtzLGMsMzIsMF0pKTtpZigxJmEpe2M9aS5yZWFkQml0cyhvKTtmLnB1c2gobmV3IEh1ZmZtYW5MaW5lKFtjLDBdKSl9cmV0dXJuIG5ldyBIdWZmbWFuVGFibGUoZiwhMSl9KHQsbixhKX19Y2xhc3MgSHVmZm1hbkxpbmV7Y29uc3RydWN0b3IoZSl7aWYoMj09PWUubGVuZ3RoKXt0aGlzLmlzT09CPSEwO3RoaXMucmFuZ2VMb3c9MDt0aGlzLnByZWZpeExlbmd0aD1lWzBdO3RoaXMucmFuZ2VMZW5ndGg9MDt0aGlzLnByZWZpeENvZGU9ZVsxXTt0aGlzLmlzTG93ZXJSYW5nZT0hMX1lbHNle3RoaXMuaXNPT0I9ITE7dGhpcy5yYW5nZUxvdz1lWzBdO3RoaXMucHJlZml4TGVuZ3RoPWVbMV07dGhpcy5yYW5nZUxlbmd0aD1lWzJdO3RoaXMucHJlZml4Q29kZT1lWzNdO3RoaXMuaXNMb3dlclJhbmdlPSJsb3dlciI9PT1lWzRdfX19Y2xhc3MgSHVmZm1hblRyZWVOb2Rle2NvbnN0cnVjdG9yKGUpe3RoaXMuY2hpbGRyZW49W107aWYoZSl7dGhpcy5pc0xlYWY9ITA7dGhpcy5yYW5nZUxlbmd0aD1lLnJhbmdlTGVuZ3RoO3RoaXMucmFuZ2VMb3c9ZS5yYW5nZUxvdzt0aGlzLmlzTG93ZXJSYW5nZT1lLmlzTG93ZXJSYW5nZTt0aGlzLmlzT09CPWUuaXNPT0J9ZWxzZSB0aGlzLmlzTGVhZj0hMX1idWlsZFRyZWUoZSx0KXtjb25zdCBuPWUucHJlZml4Q29kZT4+dCYxO2lmKHQ8PTApdGhpcy5jaGlsZHJlbltuXT1uZXcgSHVmZm1hblRyZWVOb2RlKGUpO2Vsc2V7bGV0IGE9dGhpcy5jaGlsZHJlbltuXTthfHwodGhpcy5jaGlsZHJlbltuXT1hPW5ldyBIdWZmbWFuVHJlZU5vZGUobnVsbCkpO2EuYnVpbGRUcmVlKGUsdC0xKX19ZGVjb2RlTm9kZShlKXtpZih0aGlzLmlzTGVhZil7aWYodGhpcy5pc09PQilyZXR1cm4gbnVsbDtjb25zdCB0PWUucmVhZEJpdHModGhpcy5yYW5nZUxlbmd0aCk7cmV0dXJuIHRoaXMucmFuZ2VMb3crKHRoaXMuaXNMb3dlclJhbmdlPy10OnQpfWNvbnN0IHQ9dGhpcy5jaGlsZHJlbltlLnJlYWRCaXQoKV07aWYoIXQpdGhyb3cgbmV3IEpiaWcyRXJyb3IoImludmFsaWQgSHVmZm1hbiBkYXRhIik7cmV0dXJuIHQuZGVjb2RlTm9kZShlKX19Y2xhc3MgSHVmZm1hblRhYmxle2NvbnN0cnVjdG9yKGUsdCl7dHx8dGhpcy5hc3NpZ25QcmVmaXhDb2RlcyhlKTt0aGlzLnJvb3ROb2RlPW5ldyBIdWZmbWFuVHJlZU5vZGUobnVsbCk7Zm9yKGxldCB0PTAsbj1lLmxlbmd0aDt0PG47dCsrKXtjb25zdCBuPWVbdF07bi5wcmVmaXhMZW5ndGg+MCYmdGhpcy5yb290Tm9kZS5idWlsZFRyZWUobixuLnByZWZpeExlbmd0aC0xKX19ZGVjb2RlKGUpe3JldHVybiB0aGlzLnJvb3ROb2RlLmRlY29kZU5vZGUoZSl9YXNzaWduUHJlZml4Q29kZXMoZSl7Y29uc3QgdD1lLmxlbmd0aDtsZXQgbj0wO2ZvcihsZXQgYT0wO2E8dDthKyspbj1NYXRoLm1heChuLGVbYV0ucHJlZml4TGVuZ3RoKTtjb25zdCBhPW5ldyBVaW50MzJBcnJheShuKzEpO2ZvcihsZXQgbj0wO248dDtuKyspYVtlW25dLnByZWZpeExlbmd0aF0rKztsZXQgcixzLGksbz0xLGw9MDthWzBdPTA7Zm9yKDtvPD1uOyl7bD1sK2Fbby0xXTw8MTtyPWw7cz0wO2Zvcig7czx0Oyl7aT1lW3NdO2lmKGkucHJlZml4TGVuZ3RoPT09byl7aS5wcmVmaXhDb2RlPXI7cisrfXMrK31vKyt9fX1jb25zdCBmYT17fTtmdW5jdGlvbiBnZXRTdGFuZGFyZFRhYmxlKGUpe2xldCB0LG49ZmFbZV07aWYobilyZXR1cm4gbjtzd2l0Y2goZSl7Y2FzZSAxOnQ9W1swLDEsNCwwXSxbMTYsMiw4LDJdLFsyNzIsMywxNiw2XSxbNjU4MDgsMywzMiw3XV07YnJlYWs7Y2FzZSAyOnQ9W1swLDEsMCwwXSxbMSwyLDAsMl0sWzIsMywwLDZdLFszLDQsMywxNF0sWzExLDUsNiwzMF0sWzc1LDYsMzIsNjJdLFs2LDYzXV07YnJlYWs7Y2FzZSAzOnQ9W1stMjU2LDgsOCwyNTRdLFswLDEsMCwwXSxbMSwyLDAsMl0sWzIsMywwLDZdLFszLDQsMywxNF0sWzExLDUsNiwzMF0sWy0yNTcsOCwzMiwyNTUsImxvd2VyIl0sWzc1LDcsMzIsMTI2XSxbNiw2Ml1dO2JyZWFrO2Nhc2UgNDp0PVtbMSwxLDAsMF0sWzIsMiwwLDJdLFszLDMsMCw2XSxbNCw0LDMsMTRdLFsxMiw1LDYsMzBdLFs3Niw1LDMyLDMxXV07YnJlYWs7Y2FzZSA1OnQ9W1stMjU1LDcsOCwxMjZdLFsxLDEsMCwwXSxbMiwyLDAsMl0sWzMsMywwLDZdLFs0LDQsMywxNF0sWzEyLDUsNiwzMF0sWy0yNTYsNywzMiwxMjcsImxvd2VyIl0sWzc2LDYsMzIsNjJdXTticmVhaztjYXNlIDY6dD1bWy0yMDQ4LDUsMTAsMjhdLFstMTAyNCw0LDksOF0sWy01MTIsNCw4LDldLFstMjU2LDQsNywxMF0sWy0xMjgsNSw2LDI5XSxbLTY0LDUsNSwzMF0sWy0zMiw0LDUsMTFdLFswLDIsNywwXSxbMTI4LDMsNywyXSxbMjU2LDMsOCwzXSxbNTEyLDQsOSwxMl0sWzEwMjQsNCwxMCwxM10sWy0yMDQ5LDYsMzIsNjIsImxvd2VyIl0sWzIwNDgsNiwzMiw2M11dO2JyZWFrO2Nhc2UgNzp0PVtbLTEwMjQsNCw5LDhdLFstNTEyLDMsOCwwXSxbLTI1Niw0LDcsOV0sWy0xMjgsNSw2LDI2XSxbLTY0LDUsNSwyN10sWy0zMiw0LDUsMTBdLFswLDQsNSwxMV0sWzMyLDUsNSwyOF0sWzY0LDUsNiwyOV0sWzEyOCw0LDcsMTJdLFsyNTYsMyw4LDFdLFs1MTIsMyw5LDJdLFsxMDI0LDMsMTAsM10sWy0xMDI1LDUsMzIsMzAsImxvd2VyIl0sWzIwNDgsNSwzMiwzMV1dO2JyZWFrO2Nhc2UgODp0PVtbLTE1LDgsMywyNTJdLFstNyw5LDEsNTA4XSxbLTUsOCwxLDI1M10sWy0zLDksMCw1MDldLFstMiw3LDAsMTI0XSxbLTEsNCwwLDEwXSxbMCwyLDEsMF0sWzIsNSwwLDI2XSxbMyw2LDAsNThdLFs0LDMsNCw0XSxbMjAsNiwxLDU5XSxbMjIsNCw0LDExXSxbMzgsNCw1LDEyXSxbNzAsNSw2LDI3XSxbMTM0LDUsNywyOF0sWzI2Miw2LDcsNjBdLFszOTAsNyw4LDEyNV0sWzY0Niw2LDEwLDYxXSxbLTE2LDksMzIsNTEwLCJsb3dlciJdLFsxNjcwLDksMzIsNTExXSxbMiwxXV07YnJlYWs7Y2FzZSA5OnQ9W1stMzEsOCw0LDI1Ml0sWy0xNSw5LDIsNTA4XSxbLTExLDgsMiwyNTNdLFstNyw5LDEsNTA5XSxbLTUsNywxLDEyNF0sWy0zLDQsMSwxMF0sWy0xLDMsMSwyXSxbMSwzLDEsM10sWzMsNSwxLDI2XSxbNSw2LDEsNThdLFs3LDMsNSw0XSxbMzksNiwyLDU5XSxbNDMsNCw1LDExXSxbNzUsNCw2LDEyXSxbMTM5LDUsNywyN10sWzI2Nyw1LDgsMjhdLFs1MjMsNiw4LDYwXSxbNzc5LDcsOSwxMjVdLFsxMjkxLDYsMTEsNjFdLFstMzIsOSwzMiw1MTAsImxvd2VyIl0sWzMzMzksOSwzMiw1MTFdLFsyLDBdXTticmVhaztjYXNlIDEwOnQ9W1stMjEsNyw0LDEyMl0sWy01LDgsMCwyNTJdLFstNCw3LDAsMTIzXSxbLTMsNSwwLDI0XSxbLTIsMiwyLDBdLFsyLDUsMCwyNV0sWzMsNiwwLDU0XSxbNCw3LDAsMTI0XSxbNSw4LDAsMjUzXSxbNiwyLDYsMV0sWzcwLDUsNSwyNl0sWzEwMiw2LDUsNTVdLFsxMzQsNiw2LDU2XSxbMTk4LDYsNyw1N10sWzMyNiw2LDgsNThdLFs1ODIsNiw5LDU5XSxbMTA5NCw2LDEwLDYwXSxbMjExOCw3LDExLDEyNV0sWy0yMiw4LDMyLDI1NCwibG93ZXIiXSxbNDE2Niw4LDMyLDI1NV0sWzIsMl1dO2JyZWFrO2Nhc2UgMTE6dD1bWzEsMSwwLDBdLFsyLDIsMSwyXSxbNCw0LDAsMTJdLFs1LDQsMSwxM10sWzcsNSwxLDI4XSxbOSw1LDIsMjldLFsxMyw2LDIsNjBdLFsxNyw3LDIsMTIyXSxbMjEsNywzLDEyM10sWzI5LDcsNCwxMjRdLFs0NSw3LDUsMTI1XSxbNzcsNyw2LDEyNl0sWzE0MSw3LDMyLDEyN11dO2JyZWFrO2Nhc2UgMTI6dD1bWzEsMSwwLDBdLFsyLDIsMCwyXSxbMywzLDEsNl0sWzUsNSwwLDI4XSxbNiw1LDEsMjldLFs4LDYsMSw2MF0sWzEwLDcsMCwxMjJdLFsxMSw3LDEsMTIzXSxbMTMsNywyLDEyNF0sWzE3LDcsMywxMjVdLFsyNSw3LDQsMTI2XSxbNDEsOCw1LDI1NF0sWzczLDgsMzIsMjU1XV07YnJlYWs7Y2FzZSAxMzp0PVtbMSwxLDAsMF0sWzIsMywwLDRdLFszLDQsMCwxMl0sWzQsNSwwLDI4XSxbNSw0LDEsMTNdLFs3LDMsMyw1XSxbMTUsNiwxLDU4XSxbMTcsNiwyLDU5XSxbMjEsNiwzLDYwXSxbMjksNiw0LDYxXSxbNDUsNiw1LDYyXSxbNzcsNyw2LDEyNl0sWzE0MSw3LDMyLDEyN11dO2JyZWFrO2Nhc2UgMTQ6dD1bWy0yLDMsMCw0XSxbLTEsMywwLDVdLFswLDEsMCwwXSxbMSwzLDAsNl0sWzIsMywwLDddXTticmVhaztjYXNlIDE1OnQ9W1stMjQsNyw0LDEyNF0sWy04LDYsMiw2MF0sWy00LDUsMSwyOF0sWy0yLDQsMCwxMl0sWy0xLDMsMCw0XSxbMCwxLDAsMF0sWzEsMywwLDVdLFsyLDQsMCwxM10sWzMsNSwxLDI5XSxbNSw2LDIsNjFdLFs5LDcsNCwxMjVdLFstMjUsNywzMiwxMjYsImxvd2VyIl0sWzI1LDcsMzIsMTI3XV07YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgSmJpZzJFcnJvcihgc3RhbmRhcmQgdGFibGUgQi4ke2V9IGRvZXMgbm90IGV4aXN0YCl9Zm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSsrKXRbZV09bmV3IEh1ZmZtYW5MaW5lKHRbZV0pO249bmV3IEh1ZmZtYW5UYWJsZSh0LCEwKTtmYVtlXT1uO3JldHVybiBufWNsYXNzIFJlYWRlcntjb25zdHJ1Y3RvcihlLHQsbil7dGhpcy5kYXRhPWU7dGhpcy5zdGFydD10O3RoaXMuZW5kPW47dGhpcy5wb3NpdGlvbj10O3RoaXMuc2hpZnQ9LTE7dGhpcy5jdXJyZW50Qnl0ZT0wfXJlYWRCaXQoKXtpZih0aGlzLnNoaWZ0PDApe2lmKHRoaXMucG9zaXRpb24+PXRoaXMuZW5kKXRocm93IG5ldyBKYmlnMkVycm9yKCJlbmQgb2YgZGF0YSB3aGlsZSByZWFkaW5nIGJpdCIpO3RoaXMuY3VycmVudEJ5dGU9dGhpcy5kYXRhW3RoaXMucG9zaXRpb24rK107dGhpcy5zaGlmdD03fWNvbnN0IGU9dGhpcy5jdXJyZW50Qnl0ZT4+dGhpcy5zaGlmdCYxO3RoaXMuc2hpZnQtLTtyZXR1cm4gZX1yZWFkQml0cyhlKXtsZXQgdCxuPTA7Zm9yKHQ9ZS0xO3Q+PTA7dC0tKW58PXRoaXMucmVhZEJpdCgpPDx0O3JldHVybiBufWJ5dGVBbGlnbigpe3RoaXMuc2hpZnQ9LTF9bmV4dCgpe3JldHVybiB0aGlzLnBvc2l0aW9uPj10aGlzLmVuZD8tMTp0aGlzLmRhdGFbdGhpcy5wb3NpdGlvbisrXX19ZnVuY3Rpb24gZ2V0Q3VzdG9tSHVmZm1hblRhYmxlKGUsdCxuKXtsZXQgYT0wO2ZvcihsZXQgcj0wLHM9dC5sZW5ndGg7cjxzO3IrKyl7Y29uc3Qgcz1uW3Rbcl1dO2lmKHMpe2lmKGU9PT1hKXJldHVybiBzO2ErK319dGhyb3cgbmV3IEpiaWcyRXJyb3IoImNhbid0IGZpbmQgY3VzdG9tIEh1ZmZtYW4gdGFibGUiKX1mdW5jdGlvbiByZWFkVW5jb21wcmVzc2VkQml0bWFwKGUsdCxuKXtjb25zdCBhPVtdO2ZvcihsZXQgcj0wO3I8bjtyKyspe2NvbnN0IG49bmV3IFVpbnQ4QXJyYXkodCk7YS5wdXNoKG4pO2ZvcihsZXQgYT0wO2E8dDthKyspblthXT1lLnJlYWRCaXQoKTtlLmJ5dGVBbGlnbigpfXJldHVybiBhfWZ1bmN0aW9uIGRlY29kZU1NUkJpdG1hcChlLHQsbixhKXtjb25zdCByPW5ldyBDQ0lUVEZheERlY29kZXIoZSx7SzotMSxDb2x1bW5zOnQsUm93czpuLEJsYWNrSXMxOiEwLEVuZE9mQmxvY2s6YX0pLHM9W107bGV0IGksbz0hMTtmb3IobGV0IGU9MDtlPG47ZSsrKXtjb25zdCBlPW5ldyBVaW50OEFycmF5KHQpO3MucHVzaChlKTtsZXQgbj0tMTtmb3IobGV0IGE9MDthPHQ7YSsrKXtpZihuPDApe2k9ci5yZWFkTmV4dENoYXIoKTtpZigtMT09PWkpe2k9MDtvPSEwfW49N31lW2FdPWk+Pm4mMTtuLS19fWlmKGEmJiFvKXtjb25zdCBlPTU7Zm9yKGxldCB0PTA7dDxlJiYtMSE9PXIucmVhZE5leHRDaGFyKCk7dCsrKTt9cmV0dXJuIHN9Y2xhc3MgSmJpZzJJbWFnZXtwYXJzZUNodW5rcyhlKXtyZXR1cm4gZnVuY3Rpb24gcGFyc2VKYmlnMkNodW5rcyhlKXtjb25zdCB0PW5ldyBTaW1wbGVTZWdtZW50VmlzaXRvcjtmb3IobGV0IG49MCxhPWUubGVuZ3RoO248YTtuKyspe2NvbnN0IGE9ZVtuXTtwcm9jZXNzU2VnbWVudHMocmVhZFNlZ21lbnRzKHt9LGEuZGF0YSxhLnN0YXJ0LGEuZW5kKSx0KX1yZXR1cm4gdC5idWZmZXJ9KGUpfXBhcnNlKGUpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkOiBKYmlnMkltYWdlLnBhcnNlIil9fWNsYXNzIEpiaWcyU3RyZWFtIGV4dGVuZHMgRGVjb2RlU3RyZWFte2NvbnN0cnVjdG9yKGUsdCxuKXtzdXBlcih0KTt0aGlzLnN0cmVhbT1lO3RoaXMuZGljdD1lLmRpY3Q7dGhpcy5tYXliZUxlbmd0aD10O3RoaXMucGFyYW1zPW59Z2V0IGJ5dGVzKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJieXRlcyIsdGhpcy5zdHJlYW0uZ2V0Qnl0ZXModGhpcy5tYXliZUxlbmd0aCkpfWVuc3VyZUJ1ZmZlcihlKXt9cmVhZEJsb2NrKCl7dGhpcy5kZWNvZGVJbWFnZUZhbGxiYWNrKCl9Z2V0IGlzQXN5bmNEZWNvZGVyKCl7cmV0dXJuITB9Z2V0IGlzSW1hZ2VTdHJlYW0oKXtyZXR1cm4hMH1hc3luYyBkZWNvZGVJbWFnZShlLHQsbil7aWYodGhpcy5lb2YpcmV0dXJuIHRoaXMuYnVmZmVyO2V8fD10aGlzLmJ5dGVzO3RyeXtsZXQgdD1udWxsO2lmKHRoaXMucGFyYW1zIGluc3RhbmNlb2YgRGljdCl7Y29uc3QgZT10aGlzLnBhcmFtcy5nZXQoIkpCSUcyR2xvYmFscyIpO2UgaW5zdGFuY2VvZiBCYXNlU3RyZWFtJiYodD1lLmdldEJ5dGVzKCkpfXRoaXMuYnVmZmVyPWF3YWl0IEpCaWcyQ0NJVFRGYXhXYXNtSW1hZ2UuZGVjb2RlKGUsdGhpcy5kaWN0LmdldCgiV2lkdGgiKSx0aGlzLmRpY3QuZ2V0KCJIZWlnaHQiKSx0KX1jYXRjaHt3YXJuKCJKYmlnMlN0cmVhbTogRmFsbGluZyBiYWNrIHRvIEpTIEpCSUcyIGRlY29kZXIuIik7cmV0dXJuIHRoaXMuZGVjb2RlSW1hZ2VGYWxsYmFjayhlLHQpfXRoaXMuYnVmZmVyTGVuZ3RoPXRoaXMuYnVmZmVyLmxlbmd0aDt0aGlzLmVvZj0hMDtyZXR1cm4gdGhpcy5idWZmZXJ9ZGVjb2RlSW1hZ2VGYWxsYmFjayhlLHQpe2lmKHRoaXMuZW9mKXJldHVybiB0aGlzLmJ1ZmZlcjtlfHw9dGhpcy5ieXRlcztjb25zdCBuPW5ldyBKYmlnMkltYWdlLGE9W107aWYodGhpcy5wYXJhbXMgaW5zdGFuY2VvZiBEaWN0KXtjb25zdCBlPXRoaXMucGFyYW1zLmdldCgiSkJJRzJHbG9iYWxzIik7aWYoZSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0pe2NvbnN0IHQ9ZS5nZXRCeXRlcygpO2EucHVzaCh7ZGF0YTp0LHN0YXJ0OjAsZW5kOnQubGVuZ3RofSl9fWEucHVzaCh7ZGF0YTplLHN0YXJ0OjAsZW5kOmUubGVuZ3RofSk7Y29uc3Qgcj1uLnBhcnNlQ2h1bmtzKGEpLHM9ci5sZW5ndGg7Zm9yKGxldCBlPTA7ZTxzO2UrKylyW2VdXj0yNTU7dGhpcy5idWZmZXI9cjt0aGlzLmJ1ZmZlckxlbmd0aD1zO3RoaXMuZW9mPSEwO3JldHVybiB0aGlzLmJ1ZmZlcn1nZXQgY2FuQXN5bmNEZWNvZGVJbWFnZUZyb21CdWZmZXIoKXtyZXR1cm4gdGhpcy5zdHJlYW0uaXNBc3luY319Y2xhc3MgSnB4U3RyZWFtIGV4dGVuZHMgRGVjb2RlU3RyZWFte2NvbnN0cnVjdG9yKGUsdCxuKXtzdXBlcih0KTt0aGlzLnN0cmVhbT1lO3RoaXMuZGljdD1lLmRpY3Q7dGhpcy5tYXliZUxlbmd0aD10O3RoaXMucGFyYW1zPW59Z2V0IGJ5dGVzKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJieXRlcyIsdGhpcy5zdHJlYW0uZ2V0Qnl0ZXModGhpcy5tYXliZUxlbmd0aCkpfWVuc3VyZUJ1ZmZlcihlKXt9cmVhZEJsb2NrKGUpe3VucmVhY2hhYmxlKCJKcHhTdHJlYW0ucmVhZEJsb2NrIil9Z2V0IGlzQXN5bmNEZWNvZGVyKCl7cmV0dXJuITB9YXN5bmMgZGVjb2RlSW1hZ2UoZSx0LG4pe2lmKHRoaXMuZW9mKXJldHVybiB0aGlzLmJ1ZmZlcjtlfHw9dGhpcy5ieXRlczt0aGlzLmJ1ZmZlcj1hd2FpdCBKcHhJbWFnZS5kZWNvZGUoZSxuKTt0aGlzLmJ1ZmZlckxlbmd0aD10aGlzLmJ1ZmZlci5sZW5ndGg7dGhpcy5lb2Y9ITA7cmV0dXJuIHRoaXMuYnVmZmVyfWdldCBjYW5Bc3luY0RlY29kZUltYWdlRnJvbUJ1ZmZlcigpe3JldHVybiB0aGlzLnN0cmVhbS5pc0FzeW5jfWdldCBpc0ltYWdlU3RyZWFtKCl7cmV0dXJuITB9fWNsYXNzIExaV1N0cmVhbSBleHRlbmRzIERlY29kZVN0cmVhbXtjb25zdHJ1Y3RvcihlLHQsbil7c3VwZXIodCk7dGhpcy5zdHJlYW09ZTt0aGlzLmRpY3Q9ZS5kaWN0O3RoaXMuY2FjaGVkRGF0YT0wO3RoaXMuYml0c0NhY2hlZD0wO2NvbnN0IGE9NDA5NixyPXtlYXJseUNoYW5nZTpuLGNvZGVMZW5ndGg6OSxuZXh0Q29kZToyNTgsZGljdGlvbmFyeVZhbHVlczpuZXcgVWludDhBcnJheShhKSxkaWN0aW9uYXJ5TGVuZ3RoczpuZXcgVWludDE2QXJyYXkoYSksZGljdGlvbmFyeVByZXZDb2RlczpuZXcgVWludDE2QXJyYXkoYSksY3VycmVudFNlcXVlbmNlOm5ldyBVaW50OEFycmF5KGEpLGN1cnJlbnRTZXF1ZW5jZUxlbmd0aDowfTtmb3IobGV0IGU9MDtlPDI1NjsrK2Upe3IuZGljdGlvbmFyeVZhbHVlc1tlXT1lO3IuZGljdGlvbmFyeUxlbmd0aHNbZV09MX10aGlzLmx6d1N0YXRlPXJ9cmVhZEJpdHMoZSl7bGV0IHQ9dGhpcy5iaXRzQ2FjaGVkLG49dGhpcy5jYWNoZWREYXRhO2Zvcig7dDxlOyl7Y29uc3QgZT10aGlzLnN0cmVhbS5nZXRCeXRlKCk7aWYoLTE9PT1lKXt0aGlzLmVvZj0hMDtyZXR1cm4gbnVsbH1uPW48PDh8ZTt0Kz04fXRoaXMuYml0c0NhY2hlZD10LT1lO3RoaXMuY2FjaGVkRGF0YT1uO3JldHVybiBuPj4+dCYoMTw8ZSktMX1yZWFkQmxvY2soKXtsZXQgZSx0LG4sYT0xMDI0O2NvbnN0IHI9dGhpcy5sendTdGF0ZTtpZighcilyZXR1cm47Y29uc3Qgcz1yLmVhcmx5Q2hhbmdlO2xldCBpPXIubmV4dENvZGU7Y29uc3Qgbz1yLmRpY3Rpb25hcnlWYWx1ZXMsbD1yLmRpY3Rpb25hcnlMZW5ndGhzLGY9ci5kaWN0aW9uYXJ5UHJldkNvZGVzO2xldCBjPXIuY29kZUxlbmd0aCxoPXIucHJldkNvZGU7Y29uc3QgdT1yLmN1cnJlbnRTZXF1ZW5jZTtsZXQgbT1yLmN1cnJlbnRTZXF1ZW5jZUxlbmd0aCxwPTAsZD10aGlzLmJ1ZmZlckxlbmd0aCxnPXRoaXMuZW5zdXJlQnVmZmVyKHRoaXMuYnVmZmVyTGVuZ3RoK2EpO2ZvcihlPTA7ZTw1MTI7ZSsrKXtjb25zdCBlPXRoaXMucmVhZEJpdHMoYykscj1tPjA7aWYoZTwyNTYpe3VbMF09ZTttPTF9ZWxzZXtpZighKGU+PTI1OCkpe2lmKDI1Nj09PWUpe2M9OTtpPTI1ODttPTA7Y29udGludWV9dGhpcy5lb2Y9ITA7ZGVsZXRlIHRoaXMubHp3U3RhdGU7YnJlYWt9aWYoZTxpKXttPWxbZV07Zm9yKHQ9bS0xLG49ZTt0Pj0wO3QtLSl7dVt0XT1vW25dO249ZltuXX19ZWxzZSB1W20rK109dVswXX1pZihyKXtmW2ldPWg7bFtpXT1sW2hdKzE7b1tpXT11WzBdO2krKztjPWkrcyZpK3MtMT9jOjB8TWF0aC5taW4oTWF0aC5sb2coaStzKS8uNjkzMTQ3MTgwNTU5OTQ1MysxLDEyKX1oPWU7cCs9bTtpZihhPHApe2Rve2ErPTUxMn13aGlsZShhPHApO2c9dGhpcy5lbnN1cmVCdWZmZXIodGhpcy5idWZmZXJMZW5ndGgrYSl9Zm9yKHQ9MDt0PG07dCsrKWdbZCsrXT11W3RdfXIubmV4dENvZGU9aTtyLmNvZGVMZW5ndGg9YztyLnByZXZDb2RlPWg7ci5jdXJyZW50U2VxdWVuY2VMZW5ndGg9bTt0aGlzLmJ1ZmZlckxlbmd0aD1kfX1jbGFzcyBQcmVkaWN0b3JTdHJlYW0gZXh0ZW5kcyBEZWNvZGVTdHJlYW17Y29uc3RydWN0b3IoZSx0LG4pe3N1cGVyKHQpO2lmKCEobiBpbnN0YW5jZW9mIERpY3QpKXJldHVybiBlO2NvbnN0IGE9dGhpcy5wcmVkaWN0b3I9bi5nZXQoIlByZWRpY3RvciIpfHwxO2lmKGE8PTEpcmV0dXJuIGU7aWYoMiE9PWEmJihhPDEwfHxhPjE1KSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYFVuc3VwcG9ydGVkIHByZWRpY3RvcjogJHthfWApO3RoaXMucmVhZEJsb2NrPTI9PT1hP3RoaXMucmVhZEJsb2NrVGlmZjp0aGlzLnJlYWRCbG9ja1BuZzt0aGlzLnN0cmVhbT1lO3RoaXMuZGljdD1lLmRpY3Q7Y29uc3Qgcj10aGlzLmNvbG9ycz1uLmdldCgiQ29sb3JzIil8fDEscz10aGlzLmJpdHM9bi5nZXQoIkJQQyIsIkJpdHNQZXJDb21wb25lbnQiKXx8OCxpPXRoaXMuY29sdW1ucz1uLmdldCgiQ29sdW1ucyIpfHwxO3RoaXMucGl4Qnl0ZXM9cipzKzc+PjM7dGhpcy5yb3dCeXRlcz1pKnIqcys3Pj4zO3JldHVybiB0aGlzfXJlYWRCbG9ja1RpZmYoKXtjb25zdCBlPXRoaXMucm93Qnl0ZXMsdD10aGlzLmJ1ZmZlckxlbmd0aCxuPXRoaXMuZW5zdXJlQnVmZmVyKHQrZSksYT10aGlzLmJpdHMscj10aGlzLmNvbG9ycyxzPXRoaXMuc3RyZWFtLmdldEJ5dGVzKGUpO3RoaXMuZW9mPSFzLmxlbmd0aDtpZih0aGlzLmVvZilyZXR1cm47bGV0IGksbz0wLGw9MCxmPTAsYz0wLGg9dDtpZigxPT09YSYmMT09PXIpZm9yKGk9MDtpPGU7KytpKXtsZXQgZT1zW2ldXm87ZV49ZT4+MTtlXj1lPj4yO2VePWU+PjQ7bz0oMSZlKTw8NztuW2grK109ZX1lbHNlIGlmKDg9PT1hKXtmb3IoaT0wO2k8cjsrK2kpbltoKytdPXNbaV07Zm9yKDtpPGU7KytpKXtuW2hdPW5baC1yXStzW2ldO2grK319ZWxzZSBpZigxNj09PWEpe2NvbnN0IHQ9MipyO2ZvcihpPTA7aTx0OysraSluW2grK109c1tpXTtmb3IoO2k8ZTtpKz0yKXtjb25zdCBlPSgoMjU1JnNbaV0pPDw4KSsoMjU1JnNbaSsxXSkrKCgyNTUmbltoLXRdKTw8OCkrKDI1NSZuW2gtdCsxXSk7bltoKytdPWU+PjgmMjU1O25baCsrXT0yNTUmZX19ZWxzZXtjb25zdCBlPW5ldyBVaW50OEFycmF5KHIrMSksaD0oMTw8YSktMTtsZXQgdT0wLG09dDtjb25zdCBwPXRoaXMuY29sdW1ucztmb3IoaT0wO2k8cDsrK2kpZm9yKGxldCB0PTA7dDxyOysrdCl7aWYoZjxhKXtvPW88PDh8MjU1JnNbdSsrXTtmKz04fWVbdF09ZVt0XSsobz4+Zi1hKSZoO2YtPWE7bD1sPDxhfGVbdF07Yys9YTtpZihjPj04KXtuW20rK109bD4+Yy04JjI1NTtjLT04fX1jPjAmJihuW20rK109KGw8PDgtYykrKG8mKDE8PDgtYyktMSkpfXRoaXMuYnVmZmVyTGVuZ3RoKz1lfXJlYWRCbG9ja1BuZygpe2NvbnN0IGU9dGhpcy5yb3dCeXRlcyx0PXRoaXMucGl4Qnl0ZXMsbj10aGlzLnN0cmVhbS5nZXRCeXRlKCksYT10aGlzLnN0cmVhbS5nZXRCeXRlcyhlKTt0aGlzLmVvZj0hYS5sZW5ndGg7aWYodGhpcy5lb2YpcmV0dXJuO2NvbnN0IHI9dGhpcy5idWZmZXJMZW5ndGgscz10aGlzLmVuc3VyZUJ1ZmZlcihyK2UpO2xldCBpPXMuc3ViYXJyYXkoci1lLHIpOzA9PT1pLmxlbmd0aCYmKGk9bmV3IFVpbnQ4QXJyYXkoZSkpO2xldCBvLGwsZixjPXI7c3dpdGNoKG4pe2Nhc2UgMDpmb3Iobz0wO288ZTsrK28pc1tjKytdPWFbb107YnJlYWs7Y2FzZSAxOmZvcihvPTA7bzx0OysrbylzW2MrK109YVtvXTtmb3IoO288ZTsrK28pe3NbY109c1tjLXRdK2Fbb10mMjU1O2MrK31icmVhaztjYXNlIDI6Zm9yKG89MDtvPGU7KytvKXNbYysrXT1pW29dK2Fbb10mMjU1O2JyZWFrO2Nhc2UgMzpmb3Iobz0wO288dDsrK28pc1tjKytdPShpW29dPj4xKSthW29dO2Zvcig7bzxlOysrbyl7c1tjXT0oaVtvXStzW2MtdF0+PjEpK2Fbb10mMjU1O2MrK31icmVhaztjYXNlIDQ6Zm9yKG89MDtvPHQ7KytvKXtsPWlbb107Zj1hW29dO3NbYysrXT1sK2Z9Zm9yKDtvPGU7KytvKXtsPWlbb107Y29uc3QgZT1pW28tdF0sbj1zW2MtdF0scj1uK2wtZTtsZXQgaD1yLW47aDwwJiYoaD0taCk7bGV0IHU9ci1sO3U8MCYmKHU9LXUpO2xldCBtPXItZTttPDAmJihtPS1tKTtmPWFbb107c1tjKytdPWg8PXUmJmg8PW0/bitmOnU8PW0/bCtmOmUrZn1icmVhaztkZWZhdWx0OnRocm93IG5ldyBGb3JtYXRFcnJvcihgVW5zdXBwb3J0ZWQgcHJlZGljdG9yOiAke259YCl9dGhpcy5idWZmZXJMZW5ndGgrPWV9fWNsYXNzIFJ1bkxlbmd0aFN0cmVhbSBleHRlbmRzIERlY29kZVN0cmVhbXtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKHQpO3RoaXMuc3RyZWFtPWU7dGhpcy5kaWN0PWUuZGljdH1yZWFkQmxvY2soKXtjb25zdCBlPXRoaXMuc3RyZWFtLmdldEJ5dGVzKDIpO2lmKCFlfHxlLmxlbmd0aDwyfHwxMjg9PT1lWzBdKXt0aGlzLmVvZj0hMDtyZXR1cm59bGV0IHQsbj10aGlzLmJ1ZmZlckxlbmd0aCxhPWVbMF07aWYoYTwxMjgpe3Q9dGhpcy5lbnN1cmVCdWZmZXIobithKzEpO3RbbisrXT1lWzFdO2lmKGE+MCl7Y29uc3QgZT10aGlzLnN0cmVhbS5nZXRCeXRlcyhhKTt0LnNldChlLG4pO24rPWF9fWVsc2V7YT0yNTctYTt0PXRoaXMuZW5zdXJlQnVmZmVyKG4rYSsxKTt0LmZpbGwoZVsxXSxuLG4rYSk7bis9YX10aGlzLmJ1ZmZlckxlbmd0aD1ufX1jbGFzcyBQYXJzZXJ7Y29uc3RydWN0b3Ioe2xleGVyOmUseHJlZjp0LGFsbG93U3RyZWFtczpuPSExLHJlY292ZXJ5TW9kZTphPSExfSl7dGhpcy5sZXhlcj1lO3RoaXMueHJlZj10O3RoaXMuYWxsb3dTdHJlYW1zPW47dGhpcy5yZWNvdmVyeU1vZGU9YTt0aGlzLmltYWdlQ2FjaGU9T2JqZWN0LmNyZWF0ZShudWxsKTt0aGlzLl9pbWFnZUlkPTA7dGhpcy5yZWZpbGwoKX1yZWZpbGwoKXt0aGlzLmJ1ZjE9dGhpcy5sZXhlci5nZXRPYmooKTt0aGlzLmJ1ZjI9dGhpcy5sZXhlci5nZXRPYmooKX1zaGlmdCgpe2lmKHRoaXMuYnVmMiBpbnN0YW5jZW9mIENtZCYmIklEIj09PXRoaXMuYnVmMi5jbWQpe3RoaXMuYnVmMT10aGlzLmJ1ZjI7dGhpcy5idWYyPW51bGx9ZWxzZXt0aGlzLmJ1ZjE9dGhpcy5idWYyO3RoaXMuYnVmMj10aGlzLmxleGVyLmdldE9iaigpfX10cnlTaGlmdCgpe3RyeXt0aGlzLnNoaWZ0KCk7cmV0dXJuITB9Y2F0Y2goZSl7aWYoZSBpbnN0YW5jZW9mIE1pc3NpbmdEYXRhRXhjZXB0aW9uKXRocm93IGU7cmV0dXJuITF9fWdldE9iaihlPW51bGwpe2NvbnN0IHQ9dGhpcy5idWYxO3RoaXMuc2hpZnQoKTtpZih0IGluc3RhbmNlb2YgQ21kKXN3aXRjaCh0LmNtZCl7Y2FzZSJCSSI6cmV0dXJuIHRoaXMubWFrZUlubGluZUltYWdlKGUpO2Nhc2UiWyI6Y29uc3Qgbj1bXTtmb3IoOyFpc0NtZCh0aGlzLmJ1ZjEsIl0iKSYmdGhpcy5idWYxIT09aG47KW4ucHVzaCh0aGlzLmdldE9iaihlKSk7aWYodGhpcy5idWYxPT09aG4pe2lmKHRoaXMucmVjb3ZlcnlNb2RlKXJldHVybiBuO3Rocm93IG5ldyBQYXJzZXJFT0ZFeGNlcHRpb24oIkVuZCBvZiBmaWxlIGluc2lkZSBhcnJheS4iKX10aGlzLnNoaWZ0KCk7cmV0dXJuIG47Y2FzZSI8PCI6Y29uc3QgYT1uZXcgRGljdCh0aGlzLnhyZWYpO2Zvcig7IWlzQ21kKHRoaXMuYnVmMSwiPj4iKSYmdGhpcy5idWYxIT09aG47KXtpZighKHRoaXMuYnVmMSBpbnN0YW5jZW9mIE5hbWUpKXtpbmZvKCJNYWxmb3JtZWQgZGljdGlvbmFyeToga2V5IG11c3QgYmUgYSBuYW1lIG9iamVjdCIpO3RoaXMuc2hpZnQoKTtjb250aW51ZX1jb25zdCB0PXRoaXMuYnVmMS5uYW1lO3RoaXMuc2hpZnQoKTtpZih0aGlzLmJ1ZjE9PT1obilicmVhazthLnNldCh0LHRoaXMuZ2V0T2JqKGUpKX1pZih0aGlzLmJ1ZjE9PT1obil7aWYodGhpcy5yZWNvdmVyeU1vZGUpcmV0dXJuIGE7dGhyb3cgbmV3IFBhcnNlckVPRkV4Y2VwdGlvbigiRW5kIG9mIGZpbGUgaW5zaWRlIGRpY3Rpb25hcnkuIil9aWYoaXNDbWQodGhpcy5idWYyLCJzdHJlYW0iKSlyZXR1cm4gdGhpcy5hbGxvd1N0cmVhbXM/dGhpcy5tYWtlU3RyZWFtKGEsZSk6YTt0aGlzLnNoaWZ0KCk7cmV0dXJuIGE7ZGVmYXVsdDpyZXR1cm4gdH1pZihOdW1iZXIuaXNJbnRlZ2VyKHQpKXtpZihOdW1iZXIuaXNJbnRlZ2VyKHRoaXMuYnVmMSkmJmlzQ21kKHRoaXMuYnVmMiwiUiIpKXtjb25zdCBlPVJlZi5nZXQodCx0aGlzLmJ1ZjEpO3RoaXMuc2hpZnQoKTt0aGlzLnNoaWZ0KCk7cmV0dXJuIGV9cmV0dXJuIHR9cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0JiZlP2UuZGVjcnlwdFN0cmluZyh0KTp0fWZpbmREZWZhdWx0SW5saW5lU3RyZWFtRW5kKGUpe2NvbnN0e2tub3duQ29tbWFuZHM6dH09dGhpcy5sZXhlcixuPWUucG9zO2xldCBhLHIscz0wO2Zvcig7LTEhPT0oYT1lLmdldEJ5dGUoKSk7KWlmKDA9PT1zKXM9Njk9PT1hPzE6MDtlbHNlIGlmKDE9PT1zKXM9NzM9PT1hPzI6MDtlbHNlIGlmKDMyPT09YXx8MTA9PT1hfHwxMz09PWEpe3I9ZS5wb3M7Y29uc3Qgbj1lLnBlZWtCeXRlcygxNSksaT1uLmxlbmd0aDtpZigwPT09aSlicmVhaztmb3IobGV0IGU9MDtlPGk7ZSsrKXthPW5bZV07aWYoKDAhPT1hfHwwPT09bltlKzFdKSYmKDEwIT09YSYmMTMhPT1hJiYoYTwzMnx8YT4xMjcpKSl7cz0wO2JyZWFrfX1pZigyIT09cyljb250aW51ZTtpZighdCl7d2FybigiZmluZERlZmF1bHRJbmxpbmVTdHJlYW1FbmQgLSBgbGV4ZXIua25vd25Db21tYW5kc2AgaXMgdW5kZWZpbmVkLiIpO2NvbnRpbnVlfWNvbnN0IG89bmV3IExleGVyKG5ldyBTdHJlYW0oZS5wZWVrQnl0ZXMoNzUpKSx0KTtvLl9oZXhTdHJpbmdXYXJuPSgpPT57fTtsZXQgbD0wO2Zvcig7Oyl7Y29uc3QgZT1vLmdldE9iaigpO2lmKGU9PT1obil7cz0wO2JyZWFrfWlmKGUgaW5zdGFuY2VvZiBDbWQpe2NvbnN0IG49dFtlLmNtZF07aWYoIW4pe3M9MDticmVha31pZihuLnZhcmlhYmxlQXJncz9sPD1uLm51bUFyZ3M6bD09PW4ubnVtQXJncylicmVhaztsPTA7Y29udGludWV9bCsrfWlmKDI9PT1zKWJyZWFrfWVsc2Ugcz0wO2lmKC0xPT09YSl7d2FybigiZmluZERlZmF1bHRJbmxpbmVTdHJlYW1FbmQ6IFJlYWNoZWQgdGhlIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhvdXQgZmluZGluZyBhIHZhbGlkIEVJIG1hcmtlciIpO2lmKHIpe3dhcm4oJy4uLiB0cnlpbmcgdG8gcmVjb3ZlciBieSB1c2luZyB0aGUgbGFzdCAiRUkiIG9jY3VycmVuY2UuJyk7ZS5za2lwKC0oZS5wb3MtcikpfX1sZXQgaT00O2Uuc2tpcCgtaSk7YT1lLnBlZWtCeXRlKCk7ZS5za2lwKGkpO2lzV2hpdGVTcGFjZShhKXx8aS0tO3JldHVybiBlLnBvcy1pLW59ZmluZERDVERlY29kZUlubGluZVN0cmVhbUVuZChlKXtjb25zdCB0PWUucG9zO2xldCBuLGEscj0hMTtmb3IoOy0xIT09KG49ZS5nZXRCeXRlKCkpOylpZigyNTU9PT1uKXtzd2l0Y2goZS5nZXRCeXRlKCkpe2Nhc2UgMDpicmVhaztjYXNlIDI1NTplLnNraXAoLTEpO2JyZWFrO2Nhc2UgMjE3OnI9ITA7YnJlYWs7Y2FzZSAxOTI6Y2FzZSAxOTM6Y2FzZSAxOTQ6Y2FzZSAxOTU6Y2FzZSAxOTc6Y2FzZSAxOTg6Y2FzZSAxOTk6Y2FzZSAyMDE6Y2FzZSAyMDI6Y2FzZSAyMDM6Y2FzZSAyMDU6Y2FzZSAyMDY6Y2FzZSAyMDc6Y2FzZSAxOTY6Y2FzZSAyMDQ6Y2FzZSAyMTg6Y2FzZSAyMTk6Y2FzZSAyMjA6Y2FzZSAyMjE6Y2FzZSAyMjI6Y2FzZSAyMjM6Y2FzZSAyMjQ6Y2FzZSAyMjU6Y2FzZSAyMjY6Y2FzZSAyMjc6Y2FzZSAyMjg6Y2FzZSAyMjk6Y2FzZSAyMzA6Y2FzZSAyMzE6Y2FzZSAyMzI6Y2FzZSAyMzM6Y2FzZSAyMzQ6Y2FzZSAyMzU6Y2FzZSAyMzY6Y2FzZSAyMzc6Y2FzZSAyMzg6Y2FzZSAyMzk6Y2FzZSAyNTQ6YT1lLmdldFVpbnQxNigpO2E+Mj9lLnNraXAoYS0yKTplLnNraXAoLTIpfWlmKHIpYnJlYWt9Y29uc3Qgcz1lLnBvcy10O2lmKC0xPT09bil7d2FybigiSW5saW5lIERDVERlY29kZSBpbWFnZSBzdHJlYW06IEVPSSBtYXJrZXIgbm90IGZvdW5kLCBzZWFyY2hpbmcgZm9yIC9FSS8gaW5zdGVhZC4iKTtlLnNraXAoLXMpO3JldHVybiB0aGlzLmZpbmREZWZhdWx0SW5saW5lU3RyZWFtRW5kKGUpfXRoaXMuaW5saW5lU3RyZWFtU2tpcEVJKGUpO3JldHVybiBzfWZpbmRBU0NJSTg1RGVjb2RlSW5saW5lU3RyZWFtRW5kKGUpe2NvbnN0IHQ9ZS5wb3M7bGV0IG47Zm9yKDstMSE9PShuPWUuZ2V0Qnl0ZSgpKTspaWYoMTI2PT09bil7Y29uc3QgdD1lLnBvcztuPWUucGVla0J5dGUoKTtmb3IoO2lzV2hpdGVTcGFjZShuKTspe2Uuc2tpcCgpO249ZS5wZWVrQnl0ZSgpfWlmKDYyPT09bil7ZS5za2lwKCk7YnJlYWt9aWYoZS5wb3M+dCl7Y29uc3QgdD1lLnBlZWtCeXRlcygyKTtpZig2OT09PXRbMF0mJjczPT09dFsxXSlicmVha319Y29uc3QgYT1lLnBvcy10O2lmKC0xPT09bil7d2FybigiSW5saW5lIEFTQ0lJODVEZWNvZGUgaW1hZ2Ugc3RyZWFtOiBFT0QgbWFya2VyIG5vdCBmb3VuZCwgc2VhcmNoaW5nIGZvciAvRUkvIGluc3RlYWQuIik7ZS5za2lwKC1hKTtyZXR1cm4gdGhpcy5maW5kRGVmYXVsdElubGluZVN0cmVhbUVuZChlKX10aGlzLmlubGluZVN0cmVhbVNraXBFSShlKTtyZXR1cm4gYX1maW5kQVNDSUlIZXhEZWNvZGVJbmxpbmVTdHJlYW1FbmQoZSl7Y29uc3QgdD1lLnBvcztsZXQgbjtmb3IoOy0xIT09KG49ZS5nZXRCeXRlKCkpJiY2MiE9PW47KTtjb25zdCBhPWUucG9zLXQ7aWYoLTE9PT1uKXt3YXJuKCJJbmxpbmUgQVNDSUlIZXhEZWNvZGUgaW1hZ2Ugc3RyZWFtOiBFT0QgbWFya2VyIG5vdCBmb3VuZCwgc2VhcmNoaW5nIGZvciAvRUkvIGluc3RlYWQuIik7ZS5za2lwKC1hKTtyZXR1cm4gdGhpcy5maW5kRGVmYXVsdElubGluZVN0cmVhbUVuZChlKX10aGlzLmlubGluZVN0cmVhbVNraXBFSShlKTtyZXR1cm4gYX1pbmxpbmVTdHJlYW1Ta2lwRUkoZSl7bGV0IHQsbj0wO2Zvcig7LTEhPT0odD1lLmdldEJ5dGUoKSk7KWlmKDA9PT1uKW49Njk9PT10PzE6MDtlbHNlIGlmKDE9PT1uKW49NzM9PT10PzI6MDtlbHNlIGlmKDI9PT1uKWJyZWFrfW1ha2VJbmxpbmVJbWFnZShlKXtjb25zdCB0PXRoaXMubGV4ZXIsbj10LnN0cmVhbSxhPU9iamVjdC5jcmVhdGUobnVsbCk7bGV0IHI7Zm9yKDshaXNDbWQodGhpcy5idWYxLCJJRCIpJiZ0aGlzLmJ1ZjEhPT1objspe2lmKCEodGhpcy5idWYxIGluc3RhbmNlb2YgTmFtZSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJEaWN0aW9uYXJ5IGtleSBtdXN0IGJlIGEgbmFtZSBvYmplY3QiKTtjb25zdCB0PXRoaXMuYnVmMS5uYW1lO3RoaXMuc2hpZnQoKTtpZih0aGlzLmJ1ZjE9PT1obilicmVhazthW3RdPXRoaXMuZ2V0T2JqKGUpfS0xIT09dC5iZWdpbklubGluZUltYWdlUG9zJiYocj1uLnBvcy10LmJlZ2luSW5saW5lSW1hZ2VQb3MpO2NvbnN0IHM9dGhpcy54cmVmLmZldGNoSWZSZWYoYS5GfHxhLkZpbHRlcik7bGV0IGk7aWYocyBpbnN0YW5jZW9mIE5hbWUpaT1zLm5hbWU7ZWxzZSBpZihBcnJheS5pc0FycmF5KHMpKXtjb25zdCBlPXRoaXMueHJlZi5mZXRjaElmUmVmKHNbMF0pO2UgaW5zdGFuY2VvZiBOYW1lJiYoaT1lLm5hbWUpfWNvbnN0IG89bi5wb3M7bGV0IGwsZjtzd2l0Y2goaSl7Y2FzZSJEQ1QiOmNhc2UiRENURGVjb2RlIjpsPXRoaXMuZmluZERDVERlY29kZUlubGluZVN0cmVhbUVuZChuKTticmVhaztjYXNlIkE4NSI6Y2FzZSJBU0NJSTg1RGVjb2RlIjpsPXRoaXMuZmluZEFTQ0lJODVEZWNvZGVJbmxpbmVTdHJlYW1FbmQobik7YnJlYWs7Y2FzZSJBSHgiOmNhc2UiQVNDSUlIZXhEZWNvZGUiOmw9dGhpcy5maW5kQVNDSUlIZXhEZWNvZGVJbmxpbmVTdHJlYW1FbmQobik7YnJlYWs7ZGVmYXVsdDpsPXRoaXMuZmluZERlZmF1bHRJbmxpbmVTdHJlYW1FbmQobil9aWYobDwxZTMmJnI+MCl7Y29uc3QgZT1uLnBvcztuLnBvcz10LmJlZ2luSW5saW5lSW1hZ2VQb3M7Zj1mdW5jdGlvbiBnZXRJbmxpbmVJbWFnZUNhY2hlS2V5KGUpe2NvbnN0IHQ9W10sbj1lLmxlbmd0aDtsZXQgYT0wO2Zvcig7YTxuLTE7KXQucHVzaChlW2ErK108PDh8ZVthKytdKTthPG4mJnQucHVzaChlW2FdKTtyZXR1cm4gbisiXyIrU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLHQpfShuLmdldEJ5dGVzKHIrbCkpO24ucG9zPWU7Y29uc3QgYT10aGlzLmltYWdlQ2FjaGVbZl07aWYodm9pZCAwIT09YSl7dGhpcy5idWYyPUNtZC5nZXQoIkVJIik7dGhpcy5zaGlmdCgpO2EucmVzZXQoKTtyZXR1cm4gYX19Y29uc3QgYz1uZXcgRGljdCh0aGlzLnhyZWYpO2Zvcihjb25zdCBlIGluIGEpYy5zZXQoZSxhW2VdKTtsZXQgaD1uLm1ha2VTdWJTdHJlYW0obyxsLGMpO2UmJihoPWUuY3JlYXRlU3RyZWFtKGgsbCkpO2g9dGhpcy5maWx0ZXIoaCxjLGwpO2guZGljdD1jO2lmKHZvaWQgMCE9PWYpe2guY2FjaGVLZXk9ImlubGluZV9pbWdfIisgKyt0aGlzLl9pbWFnZUlkO3RoaXMuaW1hZ2VDYWNoZVtmXT1ofXRoaXMuYnVmMj1DbWQuZ2V0KCJFSSIpO3RoaXMuc2hpZnQoKTtyZXR1cm4gaH0jVShlKXtjb25zdHtzdHJlYW06dH09dGhpcy5sZXhlcjt0LnBvcz1lO2NvbnN0IG49bmV3IFVpbnQ4QXJyYXkoWzEwMSwxMTAsMTAwXSksYT1uLmxlbmd0aCxyPVtuZXcgVWludDhBcnJheShbMTE1LDExNiwxMTQsMTAxLDk3LDEwOV0pLG5ldyBVaW50OEFycmF5KFsxMTUsMTE2LDEwMSw5NywxMDldKSxuZXcgVWludDhBcnJheShbMTE1LDExNiwxMTQsMTAxLDk3XSldLHM9OS1hO2Zvcig7dC5wb3M8dC5lbmQ7KXtjb25zdCBpPXQucGVla0J5dGVzKDIwNDgpLG89aS5sZW5ndGgtOTtpZihvPD0wKWJyZWFrO2xldCBsPTA7Zm9yKDtsPG87KXtsZXQgbz0wO2Zvcig7bzxhJiZpW2wrb109PT1uW29dOylvKys7aWYobz49YSl7bGV0IGE9ITE7Zm9yKGNvbnN0IGUgb2Ygcil7Y29uc3QgdD1lLmxlbmd0aDtsZXQgcj0wO2Zvcig7cjx0JiZpW2wrbytyXT09PWVbcl07KXIrKztpZihyPj1zKXthPSEwO2JyZWFrfWlmKHI+PXQpe2lmKGlzV2hpdGVTcGFjZShpW2wrbytyXSkpe2luZm8oYEZvdW5kICIke2J5dGVzVG9TdHJpbmcoWy4uLm4sLi4uZV0pfSIgd2hlbiBzZWFyY2hpbmcgZm9yIGVuZHN0cmVhbSBjb21tYW5kLmApO2E9ITB9YnJlYWt9fWlmKGEpe3QucG9zKz1sO3JldHVybiB0LnBvcy1lfX1sKyt9dC5wb3MrPW99cmV0dXJuLTF9bWFrZVN0cmVhbShlLHQpe2NvbnN0IG49dGhpcy5sZXhlcjtsZXQgYT1uLnN0cmVhbTtuLnNraXBUb05leHRMaW5lKCk7Y29uc3Qgcj1hLnBvcy0xO2xldCBzPWUuZ2V0KCJMZW5ndGgiKTtpZighTnVtYmVyLmlzSW50ZWdlcihzKSl7aW5mbyhgQmFkIGxlbmd0aCAiJHtzJiZzLnRvU3RyaW5nKCl9IiBpbiBzdHJlYW0uYCk7cz0wfWEucG9zPXIrcztuLm5leHRDaGFyKCk7aWYodGhpcy50cnlTaGlmdCgpJiZpc0NtZCh0aGlzLmJ1ZjIsImVuZHN0cmVhbSIpKXRoaXMuc2hpZnQoKTtlbHNle3M9dGhpcy4jVShyKTtpZihzPDApdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJNaXNzaW5nIGVuZHN0cmVhbSBjb21tYW5kLiIpO24ubmV4dENoYXIoKTt0aGlzLnNoaWZ0KCk7dGhpcy5zaGlmdCgpfXRoaXMuc2hpZnQoKTthPWEubWFrZVN1YlN0cmVhbShyLHMsZSk7dCYmKGE9dC5jcmVhdGVTdHJlYW0oYSxzKSk7YT10aGlzLmZpbHRlcihhLGUscyk7YS5kaWN0PWU7cmV0dXJuIGF9ZmlsdGVyKGUsdCxuKXtsZXQgYT10LmdldCgiRiIsIkZpbHRlciIpLHI9dC5nZXQoIkRQIiwiRGVjb2RlUGFybXMiKTtpZihhIGluc3RhbmNlb2YgTmFtZSl7QXJyYXkuaXNBcnJheShyKSYmd2FybigiL0RlY29kZVBhcm1zIHNob3VsZCBub3QgYmUgYW4gQXJyYXksIHdoZW4gL0ZpbHRlciBpcyBhIE5hbWUuIik7cmV0dXJuIHRoaXMubWFrZUZpbHRlcihlLGEubmFtZSxuLHIpfWxldCBzPW47aWYoQXJyYXkuaXNBcnJheShhKSl7Y29uc3QgdD1hLG49cjtmb3IobGV0IGk9MCxvPXQubGVuZ3RoO2k8bzsrK2kpe2E9dGhpcy54cmVmLmZldGNoSWZSZWYodFtpXSk7aWYoIShhIGluc3RhbmNlb2YgTmFtZSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBCYWQgZmlsdGVyIG5hbWUgIiR7YX0iYCk7cj1udWxsO0FycmF5LmlzQXJyYXkobikmJmkgaW4gbiYmKHI9dGhpcy54cmVmLmZldGNoSWZSZWYobltpXSkpO2U9dGhpcy5tYWtlRmlsdGVyKGUsYS5uYW1lLHMscik7cz1udWxsfX1yZXR1cm4gZX1tYWtlRmlsdGVyKGUsdCxuLGEpe2lmKDA9PT1uKXt3YXJuKGBFbXB0eSAiJHt0fSIgc3RyZWFtLmApO3JldHVybiBuZXcgTnVsbFN0cmVhbX10cnl7c3dpdGNoKHQpe2Nhc2UiRmwiOmNhc2UiRmxhdGVEZWNvZGUiOnJldHVybiBhP25ldyBQcmVkaWN0b3JTdHJlYW0obmV3IEZsYXRlU3RyZWFtKGUsbiksbixhKTpuZXcgRmxhdGVTdHJlYW0oZSxuKTtjYXNlIkxaVyI6Y2FzZSJMWldEZWNvZGUiOmxldCB0PTE7aWYoYSl7YS5oYXMoIkVhcmx5Q2hhbmdlIikmJih0PWEuZ2V0KCJFYXJseUNoYW5nZSIpKTtyZXR1cm4gbmV3IFByZWRpY3RvclN0cmVhbShuZXcgTFpXU3RyZWFtKGUsbix0KSxuLGEpfXJldHVybiBuZXcgTFpXU3RyZWFtKGUsbix0KTtjYXNlIkRDVCI6Y2FzZSJEQ1REZWNvZGUiOnJldHVybiBuZXcgSnBlZ1N0cmVhbShlLG4sYSk7Y2FzZSJKUFgiOmNhc2UiSlBYRGVjb2RlIjpyZXR1cm4gbmV3IEpweFN0cmVhbShlLG4sYSk7Y2FzZSJBODUiOmNhc2UiQVNDSUk4NURlY29kZSI6cmV0dXJuIG5ldyBBc2NpaTg1U3RyZWFtKGUsbik7Y2FzZSJBSHgiOmNhc2UiQVNDSUlIZXhEZWNvZGUiOnJldHVybiBuZXcgQXNjaWlIZXhTdHJlYW0oZSxuKTtjYXNlIkNDRiI6Y2FzZSJDQ0lUVEZheERlY29kZSI6cmV0dXJuIG5ldyBDQ0lUVEZheFN0cmVhbShlLG4sYSk7Y2FzZSJSTCI6Y2FzZSJSdW5MZW5ndGhEZWNvZGUiOnJldHVybiBuZXcgUnVuTGVuZ3RoU3RyZWFtKGUsbik7Y2FzZSJKQklHMkRlY29kZSI6cmV0dXJuIG5ldyBKYmlnMlN0cmVhbShlLG4sYSk7Y2FzZSJCcm90bGlEZWNvZGUiOnJldHVybiBuZXcgQnJvdGxpU3RyZWFtKGUsbil9d2FybihgRmlsdGVyICIke3R9IiBpcyBub3Qgc3VwcG9ydGVkLmApO3JldHVybiBlfWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbil0aHJvdyBlO3dhcm4oYEludmFsaWQgc3RyZWFtOiAiJHtlfSJgKTtyZXR1cm4gbmV3IE51bGxTdHJlYW19fX1jb25zdCBjYT1bMSwwLDAsMCwwLDAsMCwwLDAsMSwxLDAsMSwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDEsMCwwLDAsMCwyLDAsMCwyLDIsMCwwLDAsMCwwLDIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMiwwLDIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwyLDAsMiwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMiwwLDIsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF07ZnVuY3Rpb24gdG9IZXhEaWdpdChlKXtyZXR1cm4gZT49NDgmJmU8PTU3PzE1JmU6ZT49NjUmJmU8PTcwfHxlPj05NyYmZTw9MTAyPzkrKDE1JmUpOi0xfWNsYXNzIExleGVye2NvbnN0cnVjdG9yKGUsdD1udWxsKXt0aGlzLnN0cmVhbT1lO3RoaXMubmV4dENoYXIoKTt0aGlzLnN0ckJ1Zj1bXTt0aGlzLmtub3duQ29tbWFuZHM9dDt0aGlzLl9oZXhTdHJpbmdOdW1XYXJuPTA7dGhpcy5iZWdpbklubGluZUltYWdlUG9zPS0xfW5leHRDaGFyKCl7cmV0dXJuIHRoaXMuY3VycmVudENoYXI9dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpfXBlZWtDaGFyKCl7cmV0dXJuIHRoaXMuc3RyZWFtLnBlZWtCeXRlKCl9Z2V0TnVtYmVyKCl7bGV0IGU9dGhpcy5jdXJyZW50Q2hhcix0PTAsbj0xO2lmKDQ1PT09ZSl7bj0tMTtlPXRoaXMubmV4dENoYXIoKTs0NT09PWUmJihlPXRoaXMubmV4dENoYXIoKSl9ZWxzZSA0Mz09PWUmJihlPXRoaXMubmV4dENoYXIoKSk7aWYoMTA9PT1lfHwxMz09PWUpZG97ZT10aGlzLm5leHRDaGFyKCl9d2hpbGUoMTA9PT1lfHwxMz09PWUpO2lmKDQ2PT09ZSl7dD0xMDtlPXRoaXMubmV4dENoYXIoKX1pZihlPDQ4fHxlPjU3KXtjb25zdCB0PWBJbnZhbGlkIG51bWJlcjogJHtTdHJpbmcuZnJvbUNoYXJDb2RlKGUpfSAoY2hhckNvZGUgJHtlfSlgO2lmKGlzV2hpdGVTcGFjZShlKXx8NDA9PT1lfHw2MD09PWV8fC0xPT09ZSl7aW5mbyhgTGV4ZXIuZ2V0TnVtYmVyIC0gIiR7dH0iLmApO3JldHVybiAwfXRocm93IG5ldyBGb3JtYXRFcnJvcih0KX1sZXQgYT1lLTQ4O2Zvcig7KGU9dGhpcy5uZXh0Q2hhcigpKT49MDspaWYoZT49NDgmJmU8PTU3KXswIT09dCYmKHQqPTEwKTthPTEwKmErKGUtNDgpfWVsc2UgaWYoNDY9PT1lKXtpZigwIT09dClicmVhazt0PTF9ZWxzZXtpZig0NSE9PWUpYnJlYWs7d2FybigiQmFkbHkgZm9ybWF0dGVkIG51bWJlcjogbWludXMgc2lnbiBpbiB0aGUgbWlkZGxlIil9MCE9PXQmJihhLz10KTtyZXR1cm4gbiphfWdldFN0cmluZygpe2xldCBlPTEsdD0hMTtjb25zdCBuPXRoaXMuc3RyQnVmO24ubGVuZ3RoPTA7bGV0IGE9dGhpcy5uZXh0Q2hhcigpO2Zvcig7Oyl7bGV0IHI9ITE7c3dpdGNoKDB8YSl7Y2FzZS0xOndhcm4oIlVudGVybWluYXRlZCBzdHJpbmciKTt0PSEwO2JyZWFrO2Nhc2UgNDA6KytlO24ucHVzaCgiKCIpO2JyZWFrO2Nhc2UgNDE6aWYoMD09PS0tZSl7dGhpcy5uZXh0Q2hhcigpO3Q9ITB9ZWxzZSBuLnB1c2goIikiKTticmVhaztjYXNlIDkyOmE9dGhpcy5uZXh0Q2hhcigpO3N3aXRjaChhKXtjYXNlLTE6d2FybigiVW50ZXJtaW5hdGVkIHN0cmluZyIpO3Q9ITA7YnJlYWs7Y2FzZSAxMTA6bi5wdXNoKCJcbiIpO2JyZWFrO2Nhc2UgMTE0Om4ucHVzaCgiXHIiKTticmVhaztjYXNlIDExNjpuLnB1c2goIlx0Iik7YnJlYWs7Y2FzZSA5ODpuLnB1c2goIlxiIik7YnJlYWs7Y2FzZSAxMDI6bi5wdXNoKCJcZiIpO2JyZWFrO2Nhc2UgOTI6Y2FzZSA0MDpjYXNlIDQxOm4ucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGEpKTticmVhaztjYXNlIDQ4OmNhc2UgNDk6Y2FzZSA1MDpjYXNlIDUxOmNhc2UgNTI6Y2FzZSA1MzpjYXNlIDU0OmNhc2UgNTU6bGV0IGU9MTUmYTthPXRoaXMubmV4dENoYXIoKTtyPSEwO2lmKGE+PTQ4JiZhPD01NSl7ZT0oZTw8MykrKDE1JmEpO2E9dGhpcy5uZXh0Q2hhcigpO2lmKGE+PTQ4JiZhPD01NSl7cj0hMTtlPShlPDwzKSsoMTUmYSl9fW4ucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGUpKTticmVhaztjYXNlIDEzOjEwPT09dGhpcy5wZWVrQ2hhcigpJiZ0aGlzLm5leHRDaGFyKCk7YnJlYWs7Y2FzZSAxMDpicmVhaztkZWZhdWx0Om4ucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGEpKX1icmVhaztkZWZhdWx0Om4ucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGEpKX1pZih0KWJyZWFrO3J8fChhPXRoaXMubmV4dENoYXIoKSl9cmV0dXJuIG4uam9pbigiIil9Z2V0TmFtZSgpe2xldCBlLHQ7Y29uc3Qgbj10aGlzLnN0ckJ1ZjtuLmxlbmd0aD0wO2Zvcig7KGU9dGhpcy5uZXh0Q2hhcigpKT49MCYmIWNhW2VdOylpZigzNT09PWUpe2U9dGhpcy5uZXh0Q2hhcigpO2lmKGNhW2VdKXt3YXJuKCJMZXhlcl9nZXROYW1lOiBOVU1CRVIgU0lHTiAoIykgc2hvdWxkIGJlIGZvbGxvd2VkIGJ5IGEgaGV4YWRlY2ltYWwgbnVtYmVyLiIpO24ucHVzaCgiIyIpO2JyZWFrfWNvbnN0IGE9dG9IZXhEaWdpdChlKTtpZigtMSE9PWEpe3Q9ZTtlPXRoaXMubmV4dENoYXIoKTtjb25zdCByPXRvSGV4RGlnaXQoZSk7aWYoLTE9PT1yKXt3YXJuKGBMZXhlcl9nZXROYW1lOiBJbGxlZ2FsIGRpZ2l0ICgke1N0cmluZy5mcm9tQ2hhckNvZGUoZSl9KSBpbiBoZXhhZGVjaW1hbCBudW1iZXIuYCk7bi5wdXNoKCIjIixTdHJpbmcuZnJvbUNoYXJDb2RlKHQpKTtpZihjYVtlXSlicmVhaztuLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShlKSk7Y29udGludWV9bi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoYTw8NHxyKSl9ZWxzZSBuLnB1c2goIiMiLFN0cmluZy5mcm9tQ2hhckNvZGUoZSkpfWVsc2Ugbi5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoZSkpO24ubGVuZ3RoPjEyNyYmd2FybihgTmFtZSB0b2tlbiBpcyBsb25nZXIgdGhhbiBhbGxvd2VkIGJ5IHRoZSBzcGVjOiAke24ubGVuZ3RofWApO3JldHVybiBOYW1lLmdldChuLmpvaW4oIiIpKX1faGV4U3RyaW5nV2FybihlKXs1IT09dGhpcy5faGV4U3RyaW5nTnVtV2FybisrP3RoaXMuX2hleFN0cmluZ051bVdhcm4+NXx8d2FybihgZ2V0SGV4U3RyaW5nIC0gaWdub3JpbmcgaW52YWxpZCBjaGFyYWN0ZXI6ICR7ZX1gKTp3YXJuKCJnZXRIZXhTdHJpbmcgLSBpZ25vcmluZyBhZGRpdGlvbmFsIGludmFsaWQgY2hhcmFjdGVycy4iKX1nZXRIZXhTdHJpbmcoKXtjb25zdCBlPXRoaXMuc3RyQnVmO2UubGVuZ3RoPTA7bGV0IHQ9dGhpcy5jdXJyZW50Q2hhcixuPS0xLGE9LTE7dGhpcy5faGV4U3RyaW5nTnVtV2Fybj0wO2Zvcig7Oyl7aWYodDwwKXt3YXJuKCJVbnRlcm1pbmF0ZWQgaGV4IHN0cmluZyIpO2JyZWFrfWlmKDYyPT09dCl7dGhpcy5uZXh0Q2hhcigpO2JyZWFrfWlmKDEhPT1jYVt0XSl7YT10b0hleERpZ2l0KHQpO2lmKC0xPT09YSl0aGlzLl9oZXhTdHJpbmdXYXJuKHQpO2Vsc2UgaWYoLTE9PT1uKW49YTtlbHNle2UucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKG48PDR8YSkpO249LTF9dD10aGlzLm5leHRDaGFyKCl9ZWxzZSB0PXRoaXMubmV4dENoYXIoKX0tMSE9PW4mJmUucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKG48PDQpKTtyZXR1cm4gZS5qb2luKCIiKX1nZXRPYmooKXtsZXQgZT0hMSx0PXRoaXMuY3VycmVudENoYXI7Zm9yKDs7KXtpZih0PDApcmV0dXJuIGhuO2lmKGUpMTAhPT10JiYxMyE9PXR8fChlPSExKTtlbHNlIGlmKDM3PT09dCllPSEwO2Vsc2UgaWYoMSE9PWNhW3RdKWJyZWFrO3Q9dGhpcy5uZXh0Q2hhcigpfXN3aXRjaCgwfHQpe2Nhc2UgNDg6Y2FzZSA0OTpjYXNlIDUwOmNhc2UgNTE6Y2FzZSA1MjpjYXNlIDUzOmNhc2UgNTQ6Y2FzZSA1NTpjYXNlIDU2OmNhc2UgNTc6Y2FzZSA0MzpjYXNlIDQ1OmNhc2UgNDY6cmV0dXJuIHRoaXMuZ2V0TnVtYmVyKCk7Y2FzZSA0MDpyZXR1cm4gdGhpcy5nZXRTdHJpbmcoKTtjYXNlIDQ3OnJldHVybiB0aGlzLmdldE5hbWUoKTtjYXNlIDkxOnRoaXMubmV4dENoYXIoKTtyZXR1cm4gQ21kLmdldCgiWyIpO2Nhc2UgOTM6dGhpcy5uZXh0Q2hhcigpO3JldHVybiBDbWQuZ2V0KCJdIik7Y2FzZSA2MDp0PXRoaXMubmV4dENoYXIoKTtpZig2MD09PXQpe3RoaXMubmV4dENoYXIoKTtyZXR1cm4gQ21kLmdldCgiPDwiKX1yZXR1cm4gdGhpcy5nZXRIZXhTdHJpbmcoKTtjYXNlIDYyOnQ9dGhpcy5uZXh0Q2hhcigpO2lmKDYyPT09dCl7dGhpcy5uZXh0Q2hhcigpO3JldHVybiBDbWQuZ2V0KCI+PiIpfXJldHVybiBDbWQuZ2V0KCI+Iik7Y2FzZSAxMjM6dGhpcy5uZXh0Q2hhcigpO3JldHVybiBDbWQuZ2V0KCJ7Iik7Y2FzZSAxMjU6dGhpcy5uZXh0Q2hhcigpO3JldHVybiBDbWQuZ2V0KCJ9Iik7Y2FzZSA0MTp0aGlzLm5leHRDaGFyKCk7dGhyb3cgbmV3IEZvcm1hdEVycm9yKGBJbGxlZ2FsIGNoYXJhY3RlcjogJHt0fWApfWxldCBuPVN0cmluZy5mcm9tQ2hhckNvZGUodCk7aWYodDwzMnx8dD4xMjcpe2NvbnN0IGU9dGhpcy5wZWVrQ2hhcigpO2lmKGU+PTMyJiZlPD0xMjcpe3RoaXMubmV4dENoYXIoKTtyZXR1cm4gQ21kLmdldChuKX19Y29uc3QgYT10aGlzLmtub3duQ29tbWFuZHM7bGV0IHI9dm9pZCAwIT09YT8uW25dO2Zvcig7KHQ9dGhpcy5uZXh0Q2hhcigpKT49MCYmIWNhW3RdOyl7Y29uc3QgZT1uK1N0cmluZy5mcm9tQ2hhckNvZGUodCk7aWYociYmdm9pZCAwPT09YVtlXSlicmVhaztpZigxMjg9PT1uLmxlbmd0aCl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYENvbW1hbmQgdG9rZW4gdG9vIGxvbmc6ICR7bi5sZW5ndGh9YCk7bj1lO3I9dm9pZCAwIT09YT8uW25dfWlmKCJ0cnVlIj09PW4pcmV0dXJuITA7aWYoImZhbHNlIj09PW4pcmV0dXJuITE7aWYoIm51bGwiPT09bilyZXR1cm4gbnVsbDsiQkkiPT09biYmKHRoaXMuYmVnaW5JbmxpbmVJbWFnZVBvcz10aGlzLnN0cmVhbS5wb3MpO3JldHVybiBDbWQuZ2V0KG4pfXNraXBUb05leHRMaW5lKCl7bGV0IGU9dGhpcy5jdXJyZW50Q2hhcjtmb3IoO2U+PTA7KXtpZigxMz09PWUpe2U9dGhpcy5uZXh0Q2hhcigpOzEwPT09ZSYmdGhpcy5uZXh0Q2hhcigpO2JyZWFrfWlmKDEwPT09ZSl7dGhpcy5uZXh0Q2hhcigpO2JyZWFrfWU9dGhpcy5uZXh0Q2hhcigpfX19Y2xhc3MgTGluZWFyaXphdGlvbntzdGF0aWMgY3JlYXRlKGUpe2Z1bmN0aW9uIGdldEludChlLHQsbj0hMSl7Y29uc3QgYT1lLmdldCh0KTtpZihOdW1iZXIuaXNJbnRlZ2VyKGEpJiYobj9hPj0wOmE+MCkpcmV0dXJuIGE7dGhyb3cgbmV3IEVycm9yKGBUaGUgIiR7dH0iIHBhcmFtZXRlciBpbiB0aGUgbGluZWFyaXphdGlvbiBkaWN0aW9uYXJ5IGlzIGludmFsaWQuYCl9Y29uc3QgdD1uZXcgUGFyc2VyKHtsZXhlcjpuZXcgTGV4ZXIoZSkseHJlZjpudWxsfSksbj10LmdldE9iaigpLGE9dC5nZXRPYmooKSxyPXQuZ2V0T2JqKCkscz10LmdldE9iaigpO2xldCBpLG87aWYoIShOdW1iZXIuaXNJbnRlZ2VyKG4pJiZOdW1iZXIuaXNJbnRlZ2VyKGEpJiZpc0NtZChyLCJvYmoiKSYmcyBpbnN0YW5jZW9mIERpY3QmJiJudW1iZXIiPT10eXBlb2YoaT1zLmdldCgiTGluZWFyaXplZCIpKSYmaT4wKSlyZXR1cm4gbnVsbDtpZigobz1nZXRJbnQocywiTCIpKSE9PWUubGVuZ3RoKXRocm93IG5ldyBFcnJvcignVGhlICJMIiBwYXJhbWV0ZXIgaW4gdGhlIGxpbmVhcml6YXRpb24gZGljdGlvbmFyeSBkb2VzIG5vdCBlcXVhbCB0aGUgc3RyZWFtIGxlbmd0aC4nKTtyZXR1cm57bGVuZ3RoOm8saGludHM6ZnVuY3Rpb24gZ2V0SGludHMoZSl7Y29uc3QgdD1lLmdldCgiSCIpO2xldCBuO2lmKEFycmF5LmlzQXJyYXkodCkmJigyPT09KG49dC5sZW5ndGgpfHw0PT09bikpe2ZvcihsZXQgZT0wO2U8bjtlKyspe2NvbnN0IG49dFtlXTtpZighKE51bWJlci5pc0ludGVnZXIobikmJm4+MCkpdGhyb3cgbmV3IEVycm9yKGBIaW50ICgke2V9KSBpbiB0aGUgbGluZWFyaXphdGlvbiBkaWN0aW9uYXJ5IGlzIGludmFsaWQuYCl9cmV0dXJuIHR9dGhyb3cgbmV3IEVycm9yKCJIaW50IGFycmF5IGluIHRoZSBsaW5lYXJpemF0aW9uIGRpY3Rpb25hcnkgaXMgaW52YWxpZC4iKX0ocyksb2JqZWN0TnVtYmVyRmlyc3Q6Z2V0SW50KHMsIk8iKSxlbmRGaXJzdDpnZXRJbnQocywiRSIpLG51bVBhZ2VzOmdldEludChzLCJOIiksbWFpblhSZWZFbnRyaWVzT2Zmc2V0OmdldEludChzLCJUIikscGFnZUZpcnN0OnMuaGFzKCJQIik/Z2V0SW50KHMsIlAiLCEwKTowfX19Y29uc3QgaGE9WyJBZG9iZS1HQjEtVUNTMiIsIkFkb2JlLUNOUzEtVUNTMiIsIkFkb2JlLUphcGFuMS1VQ1MyIiwiQWRvYmUtS29yZWExLVVDUzIiLCI3OC1FVUMtSCIsIjc4LUVVQy1WIiwiNzgtSCIsIjc4LVJLU0otSCIsIjc4LVJLU0otViIsIjc4LVYiLCI3OG1zLVJLU0otSCIsIjc4bXMtUktTSi1WIiwiODNwdi1SS1NKLUgiLCI5MG1zLVJLU0otSCIsIjkwbXMtUktTSi1WIiwiOTBtc3AtUktTSi1IIiwiOTBtc3AtUktTSi1WIiwiOTBwdi1SS1NKLUgiLCI5MHB2LVJLU0otViIsIkFkZC1IIiwiQWRkLVJLU0otSCIsIkFkZC1SS1NKLVYiLCJBZGQtViIsIkFkb2JlLUNOUzEtMCIsIkFkb2JlLUNOUzEtMSIsIkFkb2JlLUNOUzEtMiIsIkFkb2JlLUNOUzEtMyIsIkFkb2JlLUNOUzEtNCIsIkFkb2JlLUNOUzEtNSIsIkFkb2JlLUNOUzEtNiIsIkFkb2JlLUdCMS0wIiwiQWRvYmUtR0IxLTEiLCJBZG9iZS1HQjEtMiIsIkFkb2JlLUdCMS0zIiwiQWRvYmUtR0IxLTQiLCJBZG9iZS1HQjEtNSIsIkFkb2JlLUphcGFuMS0wIiwiQWRvYmUtSmFwYW4xLTEiLCJBZG9iZS1KYXBhbjEtMiIsIkFkb2JlLUphcGFuMS0zIiwiQWRvYmUtSmFwYW4xLTQiLCJBZG9iZS1KYXBhbjEtNSIsIkFkb2JlLUphcGFuMS02IiwiQWRvYmUtS29yZWExLTAiLCJBZG9iZS1Lb3JlYTEtMSIsIkFkb2JlLUtvcmVhMS0yIiwiQjUtSCIsIkI1LVYiLCJCNXBjLUgiLCJCNXBjLVYiLCJDTlMtRVVDLUgiLCJDTlMtRVVDLVYiLCJDTlMxLUgiLCJDTlMxLVYiLCJDTlMyLUgiLCJDTlMyLVYiLCJFVEhLLUI1LUgiLCJFVEhLLUI1LVYiLCJFVGVuLUI1LUgiLCJFVGVuLUI1LVYiLCJFVGVubXMtQjUtSCIsIkVUZW5tcy1CNS1WIiwiRVVDLUgiLCJFVUMtViIsIkV4dC1IIiwiRXh0LVJLU0otSCIsIkV4dC1SS1NKLVYiLCJFeHQtViIsIkdCLUVVQy1IIiwiR0ItRVVDLVYiLCJHQi1IIiwiR0ItViIsIkdCSy1FVUMtSCIsIkdCSy1FVUMtViIsIkdCSzJLLUgiLCJHQksySy1WIiwiR0JLcC1FVUMtSCIsIkdCS3AtRVVDLVYiLCJHQlQtRVVDLUgiLCJHQlQtRVVDLVYiLCJHQlQtSCIsIkdCVC1WIiwiR0JUcGMtRVVDLUgiLCJHQlRwYy1FVUMtViIsIkdCcGMtRVVDLUgiLCJHQnBjLUVVQy1WIiwiSCIsIkhLZGxhLUI1LUgiLCJIS2RsYS1CNS1WIiwiSEtkbGItQjUtSCIsIkhLZGxiLUI1LVYiLCJIS2djY3MtQjUtSCIsIkhLZ2Njcy1CNS1WIiwiSEttMzE0LUI1LUgiLCJIS20zMTQtQjUtViIsIkhLbTQ3MS1CNS1IIiwiSEttNDcxLUI1LVYiLCJIS3Njcy1CNS1IIiwiSEtzY3MtQjUtViIsIkhhbmtha3UiLCJIaXJhZ2FuYSIsIktTQy1FVUMtSCIsIktTQy1FVUMtViIsIktTQy1IIiwiS1NDLUpvaGFiLUgiLCJLU0MtSm9oYWItViIsIktTQy1WIiwiS1NDbXMtVUhDLUgiLCJLU0Ntcy1VSEMtSFctSCIsIktTQ21zLVVIQy1IVy1WIiwiS1NDbXMtVUhDLVYiLCJLU0NwYy1FVUMtSCIsIktTQ3BjLUVVQy1WIiwiS2F0YWthbmEiLCJOV1AtSCIsIk5XUC1WIiwiUktTSi1IIiwiUktTSi1WIiwiUm9tYW4iLCJVbmlDTlMtVUNTMi1IIiwiVW5pQ05TLVVDUzItViIsIlVuaUNOUy1VVEYxNi1IIiwiVW5pQ05TLVVURjE2LVYiLCJVbmlDTlMtVVRGMzItSCIsIlVuaUNOUy1VVEYzMi1WIiwiVW5pQ05TLVVURjgtSCIsIlVuaUNOUy1VVEY4LVYiLCJVbmlHQi1VQ1MyLUgiLCJVbmlHQi1VQ1MyLVYiLCJVbmlHQi1VVEYxNi1IIiwiVW5pR0ItVVRGMTYtViIsIlVuaUdCLVVURjMyLUgiLCJVbmlHQi1VVEYzMi1WIiwiVW5pR0ItVVRGOC1IIiwiVW5pR0ItVVRGOC1WIiwiVW5pSklTLVVDUzItSCIsIlVuaUpJUy1VQ1MyLUhXLUgiLCJVbmlKSVMtVUNTMi1IVy1WIiwiVW5pSklTLVVDUzItViIsIlVuaUpJUy1VVEYxNi1IIiwiVW5pSklTLVVURjE2LVYiLCJVbmlKSVMtVVRGMzItSCIsIlVuaUpJUy1VVEYzMi1WIiwiVW5pSklTLVVURjgtSCIsIlVuaUpJUy1VVEY4LVYiLCJVbmlKSVMyMDA0LVVURjE2LUgiLCJVbmlKSVMyMDA0LVVURjE2LVYiLCJVbmlKSVMyMDA0LVVURjMyLUgiLCJVbmlKSVMyMDA0LVVURjMyLVYiLCJVbmlKSVMyMDA0LVVURjgtSCIsIlVuaUpJUzIwMDQtVVRGOC1WIiwiVW5pSklTUHJvLVVDUzItSFctViIsIlVuaUpJU1Byby1VQ1MyLVYiLCJVbmlKSVNQcm8tVVRGOC1WIiwiVW5pSklTWDAyMTMtVVRGMzItSCIsIlVuaUpJU1gwMjEzLVVURjMyLVYiLCJVbmlKSVNYMDIxMzIwMDQtVVRGMzItSCIsIlVuaUpJU1gwMjEzMjAwNC1VVEYzMi1WIiwiVW5pS1MtVUNTMi1IIiwiVW5pS1MtVUNTMi1WIiwiVW5pS1MtVVRGMTYtSCIsIlVuaUtTLVVURjE2LVYiLCJVbmlLUy1VVEYzMi1IIiwiVW5pS1MtVVRGMzItViIsIlVuaUtTLVVURjgtSCIsIlVuaUtTLVVURjgtViIsIlYiLCJXUC1TeW1ib2wiXSx1YT0yKioyNC0xO2NsYXNzIENNYXB7Y29uc3RydWN0b3IoZT0hMSl7dGhpcy5jb2Rlc3BhY2VSYW5nZXM9W1tdLFtdLFtdLFtdXTt0aGlzLm51bUNvZGVzcGFjZVJhbmdlcz0wO3RoaXMuX21hcD1bXTt0aGlzLm5hbWU9IiI7dGhpcy52ZXJ0aWNhbD0hMTt0aGlzLnVzZUNNYXA9bnVsbDt0aGlzLmJ1aWx0SW5DTWFwPWV9YWRkQ29kZXNwYWNlUmFuZ2UoZSx0LG4pe3RoaXMuY29kZXNwYWNlUmFuZ2VzW2UtMV0ucHVzaCh0LG4pO3RoaXMubnVtQ29kZXNwYWNlUmFuZ2VzKyt9bWFwQ2lkUmFuZ2UoZSx0LG4pe2lmKHQtZT51YSl0aHJvdyBuZXcgRXJyb3IoIm1hcENpZFJhbmdlIC0gaWdub3JpbmcgZGF0YSBhYm92ZSBNQVhfTUFQX1JBTkdFLiIpO2Zvcig7ZTw9dDspdGhpcy5fbWFwW2UrK109bisrfW1hcEJmUmFuZ2UoZSx0LG4pe2lmKHQtZT51YSl0aHJvdyBuZXcgRXJyb3IoIm1hcEJmUmFuZ2UgLSBpZ25vcmluZyBkYXRhIGFib3ZlIE1BWF9NQVBfUkFOR0UuIik7Y29uc3QgYT1uLmxlbmd0aC0xO2Zvcig7ZTw9dDspe3RoaXMuX21hcFtlKytdPW47Y29uc3QgdD1uLmNoYXJDb2RlQXQoYSkrMTt0PjI1NT9uPW4uc3Vic3RyaW5nKDAsYS0xKStTdHJpbmcuZnJvbUNoYXJDb2RlKG4uY2hhckNvZGVBdChhLTEpKzEpKyJcMCI6bj1uLnN1YnN0cmluZygwLGEpK1N0cmluZy5mcm9tQ2hhckNvZGUodCl9fW1hcEJmUmFuZ2VUb0FycmF5KGUsdCxuKXtpZih0LWU+dWEpdGhyb3cgbmV3IEVycm9yKCJtYXBCZlJhbmdlVG9BcnJheSAtIGlnbm9yaW5nIGRhdGEgYWJvdmUgTUFYX01BUF9SQU5HRS4iKTtjb25zdCBhPW4ubGVuZ3RoO2xldCByPTA7Zm9yKDtlPD10JiZyPGE7KXt0aGlzLl9tYXBbZV09bltyKytdOysrZX19bWFwT25lKGUsdCl7dGhpcy5fbWFwW2VdPXR9bG9va3VwKGUpe3JldHVybiB0aGlzLl9tYXBbZV19Y29udGFpbnMoZSl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX21hcFtlXX1mb3JFYWNoKGUpe2NvbnN0IHQ9dGhpcy5fbWFwLG49dC5sZW5ndGg7aWYobjw9NjU1MzYpZm9yKGxldCBhPTA7YTxuO2ErKyl2b2lkIDAhPT10W2FdJiZlKGEsdFthXSk7ZWxzZSBmb3IoY29uc3QgbiBpbiB0KWUobix0W25dKX1jaGFyQ29kZU9mKGUpe2NvbnN0IHQ9dGhpcy5fbWFwO2lmKHQubGVuZ3RoPD02NTUzNilyZXR1cm4gdC5pbmRleE9mKGUpO2Zvcihjb25zdCBuIGluIHQpaWYodFtuXT09PWUpcmV0dXJuIDB8bjtyZXR1cm4tMX1nZXRNYXAoKXtyZXR1cm4gdGhpcy5fbWFwfXJlYWRDaGFyQ29kZShlLHQsbil7bGV0IGE9MDtjb25zdCByPXRoaXMuY29kZXNwYWNlUmFuZ2VzO2ZvcihsZXQgcz0wLGk9ci5sZW5ndGg7czxpO3MrKyl7YT0oYTw8OHxlLmNoYXJDb2RlQXQodCtzKSk+Pj4wO2NvbnN0IGk9cltzXTtmb3IobGV0IGU9MCx0PWkubGVuZ3RoO2U8dDspe2NvbnN0IHQ9aVtlKytdLHI9aVtlKytdO2lmKGE+PXQmJmE8PXIpe24uY2hhcmNvZGU9YTtuLmxlbmd0aD1zKzE7cmV0dXJufX19bi5jaGFyY29kZT0wO24ubGVuZ3RoPTF9Z2V0Q2hhckNvZGVMZW5ndGgoZSl7Y29uc3QgdD10aGlzLmNvZGVzcGFjZVJhbmdlcztmb3IobGV0IG49MCxhPXQubGVuZ3RoO248YTtuKyspe2NvbnN0IGE9dFtuXTtmb3IobGV0IHQ9MCxyPWEubGVuZ3RoO3Q8cjspe2NvbnN0IHI9YVt0KytdLHM9YVt0KytdO2lmKGU+PXImJmU8PXMpcmV0dXJuIG4rMX19cmV0dXJuIDF9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLl9tYXAubGVuZ3RofWdldCBpc0lkZW50aXR5Q01hcCgpe2lmKCJJZGVudGl0eS1IIiE9PXRoaXMubmFtZSYmIklkZW50aXR5LVYiIT09dGhpcy5uYW1lKXJldHVybiExO2lmKDY1NTM2IT09dGhpcy5fbWFwLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IGU9MDtlPDY1NTM2O2UrKylpZih0aGlzLl9tYXBbZV0hPT1lKXJldHVybiExO3JldHVybiEwfX1jbGFzcyBJZGVudGl0eUNNYXAgZXh0ZW5kcyBDTWFwe2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoKTt0aGlzLnZlcnRpY2FsPWU7dGhpcy5hZGRDb2Rlc3BhY2VSYW5nZSh0LDAsNjU1MzUpfW1hcENpZFJhbmdlKGUsdCxuKXt1bnJlYWNoYWJsZSgic2hvdWxkIG5vdCBjYWxsIG1hcENpZFJhbmdlIil9bWFwQmZSYW5nZShlLHQsbil7dW5yZWFjaGFibGUoInNob3VsZCBub3QgY2FsbCBtYXBCZlJhbmdlIil9bWFwQmZSYW5nZVRvQXJyYXkoZSx0LG4pe3VucmVhY2hhYmxlKCJzaG91bGQgbm90IGNhbGwgbWFwQmZSYW5nZVRvQXJyYXkiKX1tYXBPbmUoZSx0KXt1bnJlYWNoYWJsZSgic2hvdWxkIG5vdCBjYWxsIG1hcENpZE9uZSIpfWxvb2t1cChlKXtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihlKSYmZTw9NjU1MzU/ZTp2b2lkIDB9Y29udGFpbnMoZSl7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoZSkmJmU8PTY1NTM1fWZvckVhY2goZSl7Zm9yKGxldCB0PTA7dDw9NjU1MzU7dCsrKWUodCx0KX1jaGFyQ29kZU9mKGUpe3JldHVybiBOdW1iZXIuaXNJbnRlZ2VyKGUpJiZlPD02NTUzNT9lOi0xfWdldE1hcCgpe2NvbnN0IGU9bmV3IEFycmF5KDY1NTM2KTtmb3IobGV0IHQ9MDt0PD02NTUzNTt0KyspZVt0XT10O3JldHVybiBlfWdldCBsZW5ndGgoKXtyZXR1cm4gNjU1MzZ9Z2V0IGlzSWRlbnRpdHlDTWFwKCl7dW5yZWFjaGFibGUoInNob3VsZCBub3QgYWNjZXNzIC5pc0lkZW50aXR5Q01hcCIpfX1mdW5jdGlvbiBzdHJUb0ludChlKXtsZXQgdD0wO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKXQ9dDw8OHxlLmNoYXJDb2RlQXQobik7cmV0dXJuIHQ+Pj4wfWZ1bmN0aW9uIGV4cGVjdFN0cmluZyhlKXtpZigic3RyaW5nIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJNYWxmb3JtZWQgQ01hcDogZXhwZWN0ZWQgc3RyaW5nLiIpfWZ1bmN0aW9uIGV4cGVjdEludChlKXtpZighTnVtYmVyLmlzSW50ZWdlcihlKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIk1hbGZvcm1lZCBDTWFwOiBleHBlY3RlZCBpbnQuIil9ZnVuY3Rpb24gcGFyc2VCZkNoYXIoZSx0KXtmb3IoOzspe2xldCBuPXQuZ2V0T2JqKCk7aWYobj09PWhuKWJyZWFrO2lmKGlzQ21kKG4sImVuZGJmY2hhciIpKXJldHVybjtleHBlY3RTdHJpbmcobik7Y29uc3QgYT1zdHJUb0ludChuKTtuPXQuZ2V0T2JqKCk7ZXhwZWN0U3RyaW5nKG4pO2NvbnN0IHI9bjtlLm1hcE9uZShhLHIpfX1mdW5jdGlvbiBwYXJzZUJmUmFuZ2UoZSx0KXtmb3IoOzspe2xldCBuPXQuZ2V0T2JqKCk7aWYobj09PWhuKWJyZWFrO2lmKGlzQ21kKG4sImVuZGJmcmFuZ2UiKSlyZXR1cm47ZXhwZWN0U3RyaW5nKG4pO2NvbnN0IGE9c3RyVG9JbnQobik7bj10LmdldE9iaigpO2V4cGVjdFN0cmluZyhuKTtjb25zdCByPXN0clRvSW50KG4pO249dC5nZXRPYmooKTtpZihOdW1iZXIuaXNJbnRlZ2VyKG4pfHwic3RyaW5nIj09dHlwZW9mIG4pe2NvbnN0IHQ9TnVtYmVyLmlzSW50ZWdlcihuKT9TdHJpbmcuZnJvbUNoYXJDb2RlKG4pOm47ZS5tYXBCZlJhbmdlKGEscix0KX1lbHNle2lmKCFpc0NtZChuLCJbIikpYnJlYWs7e249dC5nZXRPYmooKTtjb25zdCBzPVtdO2Zvcig7IWlzQ21kKG4sIl0iKSYmbiE9PWhuOyl7cy5wdXNoKG4pO249dC5nZXRPYmooKX1lLm1hcEJmUmFuZ2VUb0FycmF5KGEscixzKX19fXRocm93IG5ldyBGb3JtYXRFcnJvcigiSW52YWxpZCBiZiByYW5nZS4iKX1mdW5jdGlvbiBwYXJzZUNpZENoYXIoZSx0KXtmb3IoOzspe2xldCBuPXQuZ2V0T2JqKCk7aWYobj09PWhuKWJyZWFrO2lmKGlzQ21kKG4sImVuZGNpZGNoYXIiKSlyZXR1cm47ZXhwZWN0U3RyaW5nKG4pO2NvbnN0IGE9c3RyVG9JbnQobik7bj10LmdldE9iaigpO2V4cGVjdEludChuKTtjb25zdCByPW47ZS5tYXBPbmUoYSxyKX19ZnVuY3Rpb24gcGFyc2VDaWRSYW5nZShlLHQpe2Zvcig7Oyl7bGV0IG49dC5nZXRPYmooKTtpZihuPT09aG4pYnJlYWs7aWYoaXNDbWQobiwiZW5kY2lkcmFuZ2UiKSlyZXR1cm47ZXhwZWN0U3RyaW5nKG4pO2NvbnN0IGE9c3RyVG9JbnQobik7bj10LmdldE9iaigpO2V4cGVjdFN0cmluZyhuKTtjb25zdCByPXN0clRvSW50KG4pO249dC5nZXRPYmooKTtleHBlY3RJbnQobik7Y29uc3Qgcz1uO2UubWFwQ2lkUmFuZ2UoYSxyLHMpfX1mdW5jdGlvbiBwYXJzZUNvZGVzcGFjZVJhbmdlKGUsdCl7Zm9yKDs7KXtsZXQgbj10LmdldE9iaigpO2lmKG49PT1obilicmVhaztpZihpc0NtZChuLCJlbmRjb2Rlc3BhY2VyYW5nZSIpKXJldHVybjtpZigic3RyaW5nIiE9dHlwZW9mIG4pYnJlYWs7Y29uc3QgYT1zdHJUb0ludChuKTtuPXQuZ2V0T2JqKCk7aWYoInN0cmluZyIhPXR5cGVvZiBuKWJyZWFrO2NvbnN0IHI9c3RyVG9JbnQobik7ZS5hZGRDb2Rlc3BhY2VSYW5nZShuLmxlbmd0aCxhLHIpfXRocm93IG5ldyBGb3JtYXRFcnJvcigiSW52YWxpZCBjb2Rlc3BhY2UgcmFuZ2UuIil9ZnVuY3Rpb24gcGFyc2VXTW9kZShlLHQpe2NvbnN0IG49dC5nZXRPYmooKTtOdW1iZXIuaXNJbnRlZ2VyKG4pJiYoZS52ZXJ0aWNhbD0hIW4pfWZ1bmN0aW9uIHBhcnNlQ01hcE5hbWUoZSx0KXtjb25zdCBuPXQuZ2V0T2JqKCk7biBpbnN0YW5jZW9mIE5hbWUmJihlLm5hbWU9bi5uYW1lKX1hc3luYyBmdW5jdGlvbiBwYXJzZUNNYXAoZSx0LG4sYSl7bGV0IHIscztlOmZvcig7Oyl0cnl7Y29uc3Qgbj10LmdldE9iaigpO2lmKG49PT1obilicmVhaztpZihuIGluc3RhbmNlb2YgTmFtZSl7IldNb2RlIj09PW4ubmFtZT9wYXJzZVdNb2RlKGUsdCk6IkNNYXBOYW1lIj09PW4ubmFtZSYmcGFyc2VDTWFwTmFtZShlLHQpO3I9bn1lbHNlIGlmKG4gaW5zdGFuY2VvZiBDbWQpc3dpdGNoKG4uY21kKXtjYXNlImVuZGNtYXAiOmJyZWFrIGU7Y2FzZSJ1c2VjbWFwIjpyIGluc3RhbmNlb2YgTmFtZSYmKHM9ci5uYW1lKTticmVhaztjYXNlImJlZ2luY29kZXNwYWNlcmFuZ2UiOnBhcnNlQ29kZXNwYWNlUmFuZ2UoZSx0KTticmVhaztjYXNlImJlZ2luYmZjaGFyIjpwYXJzZUJmQ2hhcihlLHQpO2JyZWFrO2Nhc2UiYmVnaW5jaWRjaGFyIjpwYXJzZUNpZENoYXIoZSx0KTticmVhaztjYXNlImJlZ2luYmZyYW5nZSI6cGFyc2VCZlJhbmdlKGUsdCk7YnJlYWs7Y2FzZSJiZWdpbmNpZHJhbmdlIjpwYXJzZUNpZFJhbmdlKGUsdCl9fWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbil0aHJvdyBlO3dhcm4oIkludmFsaWQgY01hcCBkYXRhOiAiK2UpO2NvbnRpbnVlfSFhJiZzJiYoYT1zKTtyZXR1cm4gYT9leHRlbmRDTWFwKGUsbixhKTplfWFzeW5jIGZ1bmN0aW9uIGV4dGVuZENNYXAoZSx0LG4pe2UudXNlQ01hcD1hd2FpdCBjcmVhdGVCdWlsdEluQ01hcChuLHQpO2lmKDA9PT1lLm51bUNvZGVzcGFjZVJhbmdlcyl7Y29uc3QgdD1lLnVzZUNNYXAuY29kZXNwYWNlUmFuZ2VzO2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKWUuY29kZXNwYWNlUmFuZ2VzW25dPXRbbl0uc2xpY2UoKTtlLm51bUNvZGVzcGFjZVJhbmdlcz1lLnVzZUNNYXAubnVtQ29kZXNwYWNlUmFuZ2VzfWUudXNlQ01hcC5mb3JFYWNoKGZ1bmN0aW9uKHQsbil7ZS5jb250YWlucyh0KXx8ZS5tYXBPbmUodCxuKX0pO3JldHVybiBlfWFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUJ1aWx0SW5DTWFwKGUsdCl7aWYoIklkZW50aXR5LUgiPT09ZSlyZXR1cm4gbmV3IElkZW50aXR5Q01hcCghMSwyKTtpZigiSWRlbnRpdHktViI9PT1lKXJldHVybiBuZXcgSWRlbnRpdHlDTWFwKCEwLDIpO2lmKCFoYS5pbmNsdWRlcyhlKSl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gQ01hcCBuYW1lOiAiK2UpO2lmKCF0KXRocm93IG5ldyBFcnJvcigiQnVpbHQtaW4gQ01hcCBwYXJhbWV0ZXJzIGFyZSBub3QgcHJvdmlkZWQuIik7Y29uc3R7Y01hcERhdGE6bixpc0NvbXByZXNzZWQ6YX09YXdhaXQgdChlKSxyPW5ldyBDTWFwKCEwKTtpZihhKXJldHVybihuZXcgQmluYXJ5Q01hcFJlYWRlcikucHJvY2VzcyhuLHIsZT0+ZXh0ZW5kQ01hcChyLHQsZSkpO2NvbnN0IHM9bmV3IExleGVyKG5ldyBTdHJlYW0obikpO3JldHVybiBwYXJzZUNNYXAocixzLHQsbnVsbCl9Y2xhc3MgQ01hcEZhY3Rvcnl7c3RhdGljIGFzeW5jIGNyZWF0ZSh7ZW5jb2Rpbmc6ZSxmZXRjaEJ1aWx0SW5DTWFwOnQsdXNlQ01hcDpufSl7aWYoZSBpbnN0YW5jZW9mIE5hbWUpcmV0dXJuIGNyZWF0ZUJ1aWx0SW5DTWFwKGUubmFtZSx0KTtpZihlIGluc3RhbmNlb2YgQmFzZVN0cmVhbSl7aWYoZS5pc0FzeW5jKXtjb25zdCB0PWF3YWl0IGUuYXN5bmNHZXRCeXRlcygpO3QmJihlPW5ldyBTdHJlYW0odCwwLHQubGVuZ3RoLGUuZGljdCkpfWNvbnN0IGE9YXdhaXQgcGFyc2VDTWFwKG5ldyBDTWFwLG5ldyBMZXhlcihlKSx0LG4pO3JldHVybiBhLmlzSWRlbnRpdHlDTWFwP2NyZWF0ZUJ1aWx0SW5DTWFwKGEubmFtZSx0KTphfXRocm93IG5ldyBFcnJvcigiRW5jb2RpbmcgcmVxdWlyZWQuIil9fWNvbnN0IG1hPVsiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwic3BhY2UiLCJleGNsYW1zbWFsbCIsIkh1bmdhcnVtbGF1dHNtYWxsIiwiIiwiZG9sbGFyb2xkc3R5bGUiLCJkb2xsYXJzdXBlcmlvciIsImFtcGVyc2FuZHNtYWxsIiwiQWN1dGVzbWFsbCIsInBhcmVubGVmdHN1cGVyaW9yIiwicGFyZW5yaWdodHN1cGVyaW9yIiwidHdvZG90ZW5sZWFkZXIiLCJvbmVkb3RlbmxlYWRlciIsImNvbW1hIiwiaHlwaGVuIiwicGVyaW9kIiwiZnJhY3Rpb24iLCJ6ZXJvb2xkc3R5bGUiLCJvbmVvbGRzdHlsZSIsInR3b29sZHN0eWxlIiwidGhyZWVvbGRzdHlsZSIsImZvdXJvbGRzdHlsZSIsImZpdmVvbGRzdHlsZSIsInNpeG9sZHN0eWxlIiwic2V2ZW5vbGRzdHlsZSIsImVpZ2h0b2xkc3R5bGUiLCJuaW5lb2xkc3R5bGUiLCJjb2xvbiIsInNlbWljb2xvbiIsImNvbW1hc3VwZXJpb3IiLCJ0aHJlZXF1YXJ0ZXJzZW1kYXNoIiwicGVyaW9kc3VwZXJpb3IiLCJxdWVzdGlvbnNtYWxsIiwiIiwiYXN1cGVyaW9yIiwiYnN1cGVyaW9yIiwiY2VudHN1cGVyaW9yIiwiZHN1cGVyaW9yIiwiZXN1cGVyaW9yIiwiIiwiIiwiIiwiaXN1cGVyaW9yIiwiIiwiIiwibHN1cGVyaW9yIiwibXN1cGVyaW9yIiwibnN1cGVyaW9yIiwib3N1cGVyaW9yIiwiIiwiIiwicnN1cGVyaW9yIiwic3N1cGVyaW9yIiwidHN1cGVyaW9yIiwiIiwiZmYiLCJmaSIsImZsIiwiZmZpIiwiZmZsIiwicGFyZW5sZWZ0aW5mZXJpb3IiLCIiLCJwYXJlbnJpZ2h0aW5mZXJpb3IiLCJDaXJjdW1mbGV4c21hbGwiLCJoeXBoZW5zdXBlcmlvciIsIkdyYXZlc21hbGwiLCJBc21hbGwiLCJCc21hbGwiLCJDc21hbGwiLCJEc21hbGwiLCJFc21hbGwiLCJGc21hbGwiLCJHc21hbGwiLCJIc21hbGwiLCJJc21hbGwiLCJKc21hbGwiLCJLc21hbGwiLCJMc21hbGwiLCJNc21hbGwiLCJOc21hbGwiLCJPc21hbGwiLCJQc21hbGwiLCJRc21hbGwiLCJSc21hbGwiLCJTc21hbGwiLCJUc21hbGwiLCJVc21hbGwiLCJWc21hbGwiLCJXc21hbGwiLCJYc21hbGwiLCJZc21hbGwiLCJac21hbGwiLCJjb2xvbm1vbmV0YXJ5Iiwib25lZml0dGVkIiwicnVwaWFoIiwiVGlsZGVzbWFsbCIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsImV4Y2xhbWRvd25zbWFsbCIsImNlbnRvbGRzdHlsZSIsIkxzbGFzaHNtYWxsIiwiIiwiIiwiU2Nhcm9uc21hbGwiLCJaY2Fyb25zbWFsbCIsIkRpZXJlc2lzc21hbGwiLCJCcmV2ZXNtYWxsIiwiQ2Fyb25zbWFsbCIsIiIsIkRvdGFjY2VudHNtYWxsIiwiIiwiIiwiTWFjcm9uc21hbGwiLCIiLCIiLCJmaWd1cmVkYXNoIiwiaHlwaGVuaW5mZXJpb3IiLCIiLCIiLCJPZ29uZWtzbWFsbCIsIlJpbmdzbWFsbCIsIkNlZGlsbGFzbWFsbCIsIiIsIiIsIiIsIm9uZXF1YXJ0ZXIiLCJvbmVoYWxmIiwidGhyZWVxdWFydGVycyIsInF1ZXN0aW9uZG93bnNtYWxsIiwib25lZWlnaHRoIiwidGhyZWVlaWdodGhzIiwiZml2ZWVpZ2h0aHMiLCJzZXZlbmVpZ2h0aHMiLCJvbmV0aGlyZCIsInR3b3RoaXJkcyIsIiIsIiIsInplcm9zdXBlcmlvciIsIm9uZXN1cGVyaW9yIiwidHdvc3VwZXJpb3IiLCJ0aHJlZXN1cGVyaW9yIiwiZm91cnN1cGVyaW9yIiwiZml2ZXN1cGVyaW9yIiwic2l4c3VwZXJpb3IiLCJzZXZlbnN1cGVyaW9yIiwiZWlnaHRzdXBlcmlvciIsIm5pbmVzdXBlcmlvciIsInplcm9pbmZlcmlvciIsIm9uZWluZmVyaW9yIiwidHdvaW5mZXJpb3IiLCJ0aHJlZWluZmVyaW9yIiwiZm91cmluZmVyaW9yIiwiZml2ZWluZmVyaW9yIiwic2l4aW5mZXJpb3IiLCJzZXZlbmluZmVyaW9yIiwiZWlnaHRpbmZlcmlvciIsIm5pbmVpbmZlcmlvciIsImNlbnRpbmZlcmlvciIsImRvbGxhcmluZmVyaW9yIiwicGVyaW9kaW5mZXJpb3IiLCJjb21tYWluZmVyaW9yIiwiQWdyYXZlc21hbGwiLCJBYWN1dGVzbWFsbCIsIkFjaXJjdW1mbGV4c21hbGwiLCJBdGlsZGVzbWFsbCIsIkFkaWVyZXNpc3NtYWxsIiwiQXJpbmdzbWFsbCIsIkFFc21hbGwiLCJDY2VkaWxsYXNtYWxsIiwiRWdyYXZlc21hbGwiLCJFYWN1dGVzbWFsbCIsIkVjaXJjdW1mbGV4c21hbGwiLCJFZGllcmVzaXNzbWFsbCIsIklncmF2ZXNtYWxsIiwiSWFjdXRlc21hbGwiLCJJY2lyY3VtZmxleHNtYWxsIiwiSWRpZXJlc2lzc21hbGwiLCJFdGhzbWFsbCIsIk50aWxkZXNtYWxsIiwiT2dyYXZlc21hbGwiLCJPYWN1dGVzbWFsbCIsIk9jaXJjdW1mbGV4c21hbGwiLCJPdGlsZGVzbWFsbCIsIk9kaWVyZXNpc3NtYWxsIiwiT0VzbWFsbCIsIk9zbGFzaHNtYWxsIiwiVWdyYXZlc21hbGwiLCJVYWN1dGVzbWFsbCIsIlVjaXJjdW1mbGV4c21hbGwiLCJVZGllcmVzaXNzbWFsbCIsIllhY3V0ZXNtYWxsIiwiVGhvcm5zbWFsbCIsIllkaWVyZXNpc3NtYWxsIl0scGE9WyIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCJzcGFjZSIsImV4Y2xhbXNtYWxsIiwiSHVuZ2FydW1sYXV0c21hbGwiLCJjZW50b2xkc3R5bGUiLCJkb2xsYXJvbGRzdHlsZSIsImRvbGxhcnN1cGVyaW9yIiwiYW1wZXJzYW5kc21hbGwiLCJBY3V0ZXNtYWxsIiwicGFyZW5sZWZ0c3VwZXJpb3IiLCJwYXJlbnJpZ2h0c3VwZXJpb3IiLCJ0d29kb3RlbmxlYWRlciIsIm9uZWRvdGVubGVhZGVyIiwiY29tbWEiLCJoeXBoZW4iLCJwZXJpb2QiLCJmcmFjdGlvbiIsInplcm9vbGRzdHlsZSIsIm9uZW9sZHN0eWxlIiwidHdvb2xkc3R5bGUiLCJ0aHJlZW9sZHN0eWxlIiwiZm91cm9sZHN0eWxlIiwiZml2ZW9sZHN0eWxlIiwic2l4b2xkc3R5bGUiLCJzZXZlbm9sZHN0eWxlIiwiZWlnaHRvbGRzdHlsZSIsIm5pbmVvbGRzdHlsZSIsImNvbG9uIiwic2VtaWNvbG9uIiwiIiwidGhyZWVxdWFydGVyc2VtZGFzaCIsIiIsInF1ZXN0aW9uc21hbGwiLCIiLCIiLCIiLCIiLCJFdGhzbWFsbCIsIiIsIiIsIm9uZXF1YXJ0ZXIiLCJvbmVoYWxmIiwidGhyZWVxdWFydGVycyIsIm9uZWVpZ2h0aCIsInRocmVlZWlnaHRocyIsImZpdmVlaWdodGhzIiwic2V2ZW5laWdodGhzIiwib25ldGhpcmQiLCJ0d290aGlyZHMiLCIiLCIiLCIiLCIiLCIiLCIiLCJmZiIsImZpIiwiZmwiLCJmZmkiLCJmZmwiLCJwYXJlbmxlZnRpbmZlcmlvciIsIiIsInBhcmVucmlnaHRpbmZlcmlvciIsIkNpcmN1bWZsZXhzbWFsbCIsImh5cGhlbmluZmVyaW9yIiwiR3JhdmVzbWFsbCIsIkFzbWFsbCIsIkJzbWFsbCIsIkNzbWFsbCIsIkRzbWFsbCIsIkVzbWFsbCIsIkZzbWFsbCIsIkdzbWFsbCIsIkhzbWFsbCIsIklzbWFsbCIsIkpzbWFsbCIsIktzbWFsbCIsIkxzbWFsbCIsIk1zbWFsbCIsIk5zbWFsbCIsIk9zbWFsbCIsIlBzbWFsbCIsIlFzbWFsbCIsIlJzbWFsbCIsIlNzbWFsbCIsIlRzbWFsbCIsIlVzbWFsbCIsIlZzbWFsbCIsIldzbWFsbCIsIlhzbWFsbCIsIllzbWFsbCIsIlpzbWFsbCIsImNvbG9ubW9uZXRhcnkiLCJvbmVmaXR0ZWQiLCJydXBpYWgiLCJUaWxkZXNtYWxsIiwiIiwiIiwiYXN1cGVyaW9yIiwiY2VudHN1cGVyaW9yIiwiIiwiIiwiIiwiIiwiQWFjdXRlc21hbGwiLCJBZ3JhdmVzbWFsbCIsIkFjaXJjdW1mbGV4c21hbGwiLCJBZGllcmVzaXNzbWFsbCIsIkF0aWxkZXNtYWxsIiwiQXJpbmdzbWFsbCIsIkNjZWRpbGxhc21hbGwiLCJFYWN1dGVzbWFsbCIsIkVncmF2ZXNtYWxsIiwiRWNpcmN1bWZsZXhzbWFsbCIsIkVkaWVyZXNpc3NtYWxsIiwiSWFjdXRlc21hbGwiLCJJZ3JhdmVzbWFsbCIsIkljaXJjdW1mbGV4c21hbGwiLCJJZGllcmVzaXNzbWFsbCIsIk50aWxkZXNtYWxsIiwiT2FjdXRlc21hbGwiLCJPZ3JhdmVzbWFsbCIsIk9jaXJjdW1mbGV4c21hbGwiLCJPZGllcmVzaXNzbWFsbCIsIk90aWxkZXNtYWxsIiwiVWFjdXRlc21hbGwiLCJVZ3JhdmVzbWFsbCIsIlVjaXJjdW1mbGV4c21hbGwiLCJVZGllcmVzaXNzbWFsbCIsIiIsImVpZ2h0c3VwZXJpb3IiLCJmb3VyaW5mZXJpb3IiLCJ0aHJlZWluZmVyaW9yIiwic2l4aW5mZXJpb3IiLCJlaWdodGluZmVyaW9yIiwic2V2ZW5pbmZlcmlvciIsIlNjYXJvbnNtYWxsIiwiIiwiY2VudGluZmVyaW9yIiwidHdvaW5mZXJpb3IiLCIiLCJEaWVyZXNpc3NtYWxsIiwiIiwiQ2Fyb25zbWFsbCIsIm9zdXBlcmlvciIsImZpdmVpbmZlcmlvciIsIiIsImNvbW1haW5mZXJpb3IiLCJwZXJpb2RpbmZlcmlvciIsIllhY3V0ZXNtYWxsIiwiIiwiZG9sbGFyaW5mZXJpb3IiLCIiLCIiLCJUaG9ybnNtYWxsIiwiIiwibmluZWluZmVyaW9yIiwiemVyb2luZmVyaW9yIiwiWmNhcm9uc21hbGwiLCJBRXNtYWxsIiwiT3NsYXNoc21hbGwiLCJxdWVzdGlvbmRvd25zbWFsbCIsIm9uZWluZmVyaW9yIiwiTHNsYXNoc21hbGwiLCIiLCIiLCIiLCIiLCIiLCIiLCJDZWRpbGxhc21hbGwiLCIiLCIiLCIiLCIiLCIiLCJPRXNtYWxsIiwiZmlndXJlZGFzaCIsImh5cGhlbnN1cGVyaW9yIiwiIiwiIiwiIiwiIiwiZXhjbGFtZG93bnNtYWxsIiwiIiwiWWRpZXJlc2lzc21hbGwiLCIiLCJvbmVzdXBlcmlvciIsInR3b3N1cGVyaW9yIiwidGhyZWVzdXBlcmlvciIsImZvdXJzdXBlcmlvciIsImZpdmVzdXBlcmlvciIsInNpeHN1cGVyaW9yIiwic2V2ZW5zdXBlcmlvciIsIm5pbmVzdXBlcmlvciIsInplcm9zdXBlcmlvciIsIiIsImVzdXBlcmlvciIsInJzdXBlcmlvciIsInRzdXBlcmlvciIsIiIsIiIsImlzdXBlcmlvciIsInNzdXBlcmlvciIsImRzdXBlcmlvciIsIiIsIiIsIiIsIiIsIiIsImxzdXBlcmlvciIsIk9nb25la3NtYWxsIiwiQnJldmVzbWFsbCIsIk1hY3JvbnNtYWxsIiwiYnN1cGVyaW9yIiwibnN1cGVyaW9yIiwibXN1cGVyaW9yIiwiY29tbWFzdXBlcmlvciIsInBlcmlvZHN1cGVyaW9yIiwiRG90YWNjZW50c21hbGwiLCJSaW5nc21hbGwiLCIiLCIiLCIiLCIiXSxkYT1bIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsInNwYWNlIiwiZXhjbGFtIiwicXVvdGVkYmwiLCJudW1iZXJzaWduIiwiZG9sbGFyIiwicGVyY2VudCIsImFtcGVyc2FuZCIsInF1b3Rlc2luZ2xlIiwicGFyZW5sZWZ0IiwicGFyZW5yaWdodCIsImFzdGVyaXNrIiwicGx1cyIsImNvbW1hIiwiaHlwaGVuIiwicGVyaW9kIiwic2xhc2giLCJ6ZXJvIiwib25lIiwidHdvIiwidGhyZWUiLCJmb3VyIiwiZml2ZSIsInNpeCIsInNldmVuIiwiZWlnaHQiLCJuaW5lIiwiY29sb24iLCJzZW1pY29sb24iLCJsZXNzIiwiZXF1YWwiLCJncmVhdGVyIiwicXVlc3Rpb24iLCJhdCIsIkEiLCJCIiwiQyIsIkQiLCJFIiwiRiIsIkciLCJIIiwiSSIsIkoiLCJLIiwiTCIsIk0iLCJOIiwiTyIsIlAiLCJRIiwiUiIsIlMiLCJUIiwiVSIsIlYiLCJXIiwiWCIsIlkiLCJaIiwiYnJhY2tldGxlZnQiLCJiYWNrc2xhc2giLCJicmFja2V0cmlnaHQiLCJhc2NpaWNpcmN1bSIsInVuZGVyc2NvcmUiLCJncmF2ZSIsImEiLCJiIiwiYyIsImQiLCJlIiwiZiIsImciLCJoIiwiaSIsImoiLCJrIiwibCIsIm0iLCJuIiwibyIsInAiLCJxIiwiciIsInMiLCJ0IiwidSIsInYiLCJ3IiwieCIsInkiLCJ6IiwiYnJhY2VsZWZ0IiwiYmFyIiwiYnJhY2VyaWdodCIsImFzY2lpdGlsZGUiLCIiLCJBZGllcmVzaXMiLCJBcmluZyIsIkNjZWRpbGxhIiwiRWFjdXRlIiwiTnRpbGRlIiwiT2RpZXJlc2lzIiwiVWRpZXJlc2lzIiwiYWFjdXRlIiwiYWdyYXZlIiwiYWNpcmN1bWZsZXgiLCJhZGllcmVzaXMiLCJhdGlsZGUiLCJhcmluZyIsImNjZWRpbGxhIiwiZWFjdXRlIiwiZWdyYXZlIiwiZWNpcmN1bWZsZXgiLCJlZGllcmVzaXMiLCJpYWN1dGUiLCJpZ3JhdmUiLCJpY2lyY3VtZmxleCIsImlkaWVyZXNpcyIsIm50aWxkZSIsIm9hY3V0ZSIsIm9ncmF2ZSIsIm9jaXJjdW1mbGV4Iiwib2RpZXJlc2lzIiwib3RpbGRlIiwidWFjdXRlIiwidWdyYXZlIiwidWNpcmN1bWZsZXgiLCJ1ZGllcmVzaXMiLCJkYWdnZXIiLCJkZWdyZWUiLCJjZW50Iiwic3RlcmxpbmciLCJzZWN0aW9uIiwiYnVsbGV0IiwicGFyYWdyYXBoIiwiZ2VybWFuZGJscyIsInJlZ2lzdGVyZWQiLCJjb3B5cmlnaHQiLCJ0cmFkZW1hcmsiLCJhY3V0ZSIsImRpZXJlc2lzIiwibm90ZXF1YWwiLCJBRSIsIk9zbGFzaCIsImluZmluaXR5IiwicGx1c21pbnVzIiwibGVzc2VxdWFsIiwiZ3JlYXRlcmVxdWFsIiwieWVuIiwibXUiLCJwYXJ0aWFsZGlmZiIsInN1bW1hdGlvbiIsInByb2R1Y3QiLCJwaSIsImludGVncmFsIiwib3JkZmVtaW5pbmUiLCJvcmRtYXNjdWxpbmUiLCJPbWVnYSIsImFlIiwib3NsYXNoIiwicXVlc3Rpb25kb3duIiwiZXhjbGFtZG93biIsImxvZ2ljYWxub3QiLCJyYWRpY2FsIiwiZmxvcmluIiwiYXBwcm94ZXF1YWwiLCJEZWx0YSIsImd1aWxsZW1vdGxlZnQiLCJndWlsbGVtb3RyaWdodCIsImVsbGlwc2lzIiwic3BhY2UiLCJBZ3JhdmUiLCJBdGlsZGUiLCJPdGlsZGUiLCJPRSIsIm9lIiwiZW5kYXNoIiwiZW1kYXNoIiwicXVvdGVkYmxsZWZ0IiwicXVvdGVkYmxyaWdodCIsInF1b3RlbGVmdCIsInF1b3RlcmlnaHQiLCJkaXZpZGUiLCJsb3plbmdlIiwieWRpZXJlc2lzIiwiWWRpZXJlc2lzIiwiZnJhY3Rpb24iLCJjdXJyZW5jeSIsImd1aWxzaW5nbGxlZnQiLCJndWlsc2luZ2xyaWdodCIsImZpIiwiZmwiLCJkYWdnZXJkYmwiLCJwZXJpb2RjZW50ZXJlZCIsInF1b3Rlc2luZ2xiYXNlIiwicXVvdGVkYmxiYXNlIiwicGVydGhvdXNhbmQiLCJBY2lyY3VtZmxleCIsIkVjaXJjdW1mbGV4IiwiQWFjdXRlIiwiRWRpZXJlc2lzIiwiRWdyYXZlIiwiSWFjdXRlIiwiSWNpcmN1bWZsZXgiLCJJZGllcmVzaXMiLCJJZ3JhdmUiLCJPYWN1dGUiLCJPY2lyY3VtZmxleCIsImFwcGxlIiwiT2dyYXZlIiwiVWFjdXRlIiwiVWNpcmN1bWZsZXgiLCJVZ3JhdmUiLCJkb3RsZXNzaSIsImNpcmN1bWZsZXgiLCJ0aWxkZSIsIm1hY3JvbiIsImJyZXZlIiwiZG90YWNjZW50IiwicmluZyIsImNlZGlsbGEiLCJodW5nYXJ1bWxhdXQiLCJvZ29uZWsiLCJjYXJvbiJdLGdhPVsiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwic3BhY2UiLCJleGNsYW0iLCJxdW90ZWRibCIsIm51bWJlcnNpZ24iLCJkb2xsYXIiLCJwZXJjZW50IiwiYW1wZXJzYW5kIiwicXVvdGVyaWdodCIsInBhcmVubGVmdCIsInBhcmVucmlnaHQiLCJhc3RlcmlzayIsInBsdXMiLCJjb21tYSIsImh5cGhlbiIsInBlcmlvZCIsInNsYXNoIiwiemVybyIsIm9uZSIsInR3byIsInRocmVlIiwiZm91ciIsImZpdmUiLCJzaXgiLCJzZXZlbiIsImVpZ2h0IiwibmluZSIsImNvbG9uIiwic2VtaWNvbG9uIiwibGVzcyIsImVxdWFsIiwiZ3JlYXRlciIsInF1ZXN0aW9uIiwiYXQiLCJBIiwiQiIsIkMiLCJEIiwiRSIsIkYiLCJHIiwiSCIsIkkiLCJKIiwiSyIsIkwiLCJNIiwiTiIsIk8iLCJQIiwiUSIsIlIiLCJTIiwiVCIsIlUiLCJWIiwiVyIsIlgiLCJZIiwiWiIsImJyYWNrZXRsZWZ0IiwiYmFja3NsYXNoIiwiYnJhY2tldHJpZ2h0IiwiYXNjaWljaXJjdW0iLCJ1bmRlcnNjb3JlIiwicXVvdGVsZWZ0IiwiYSIsImIiLCJjIiwiZCIsImUiLCJmIiwiZyIsImgiLCJpIiwiaiIsImsiLCJsIiwibSIsIm4iLCJvIiwicCIsInEiLCJyIiwicyIsInQiLCJ1IiwidiIsInciLCJ4IiwieSIsInoiLCJicmFjZWxlZnQiLCJiYXIiLCJicmFjZXJpZ2h0IiwiYXNjaWl0aWxkZSIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsImV4Y2xhbWRvd24iLCJjZW50Iiwic3RlcmxpbmciLCJmcmFjdGlvbiIsInllbiIsImZsb3JpbiIsInNlY3Rpb24iLCJjdXJyZW5jeSIsInF1b3Rlc2luZ2xlIiwicXVvdGVkYmxsZWZ0IiwiZ3VpbGxlbW90bGVmdCIsImd1aWxzaW5nbGxlZnQiLCJndWlsc2luZ2xyaWdodCIsImZpIiwiZmwiLCIiLCJlbmRhc2giLCJkYWdnZXIiLCJkYWdnZXJkYmwiLCJwZXJpb2RjZW50ZXJlZCIsIiIsInBhcmFncmFwaCIsImJ1bGxldCIsInF1b3Rlc2luZ2xiYXNlIiwicXVvdGVkYmxiYXNlIiwicXVvdGVkYmxyaWdodCIsImd1aWxsZW1vdHJpZ2h0IiwiZWxsaXBzaXMiLCJwZXJ0aG91c2FuZCIsIiIsInF1ZXN0aW9uZG93biIsIiIsImdyYXZlIiwiYWN1dGUiLCJjaXJjdW1mbGV4IiwidGlsZGUiLCJtYWNyb24iLCJicmV2ZSIsImRvdGFjY2VudCIsImRpZXJlc2lzIiwiIiwicmluZyIsImNlZGlsbGEiLCIiLCJodW5nYXJ1bWxhdXQiLCJvZ29uZWsiLCJjYXJvbiIsImVtZGFzaCIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIkFFIiwiIiwib3JkZmVtaW5pbmUiLCIiLCIiLCIiLCIiLCJMc2xhc2giLCJPc2xhc2giLCJPRSIsIm9yZG1hc2N1bGluZSIsIiIsIiIsIiIsIiIsIiIsImFlIiwiIiwiIiwiIiwiZG90bGVzc2kiLCIiLCIiLCJsc2xhc2giLCJvc2xhc2giLCJvZSIsImdlcm1hbmRibHMiLCIiLCIiLCIiLCIiXSxiYT1bIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsInNwYWNlIiwiZXhjbGFtIiwicXVvdGVkYmwiLCJudW1iZXJzaWduIiwiZG9sbGFyIiwicGVyY2VudCIsImFtcGVyc2FuZCIsInF1b3Rlc2luZ2xlIiwicGFyZW5sZWZ0IiwicGFyZW5yaWdodCIsImFzdGVyaXNrIiwicGx1cyIsImNvbW1hIiwiaHlwaGVuIiwicGVyaW9kIiwic2xhc2giLCJ6ZXJvIiwib25lIiwidHdvIiwidGhyZWUiLCJmb3VyIiwiZml2ZSIsInNpeCIsInNldmVuIiwiZWlnaHQiLCJuaW5lIiwiY29sb24iLCJzZW1pY29sb24iLCJsZXNzIiwiZXF1YWwiLCJncmVhdGVyIiwicXVlc3Rpb24iLCJhdCIsIkEiLCJCIiwiQyIsIkQiLCJFIiwiRiIsIkciLCJIIiwiSSIsIkoiLCJLIiwiTCIsIk0iLCJOIiwiTyIsIlAiLCJRIiwiUiIsIlMiLCJUIiwiVSIsIlYiLCJXIiwiWCIsIlkiLCJaIiwiYnJhY2tldGxlZnQiLCJiYWNrc2xhc2giLCJicmFja2V0cmlnaHQiLCJhc2NpaWNpcmN1bSIsInVuZGVyc2NvcmUiLCJncmF2ZSIsImEiLCJiIiwiYyIsImQiLCJlIiwiZiIsImciLCJoIiwiaSIsImoiLCJrIiwibCIsIm0iLCJuIiwibyIsInAiLCJxIiwiciIsInMiLCJ0IiwidSIsInYiLCJ3IiwieCIsInkiLCJ6IiwiYnJhY2VsZWZ0IiwiYmFyIiwiYnJhY2VyaWdodCIsImFzY2lpdGlsZGUiLCJidWxsZXQiLCJFdXJvIiwiYnVsbGV0IiwicXVvdGVzaW5nbGJhc2UiLCJmbG9yaW4iLCJxdW90ZWRibGJhc2UiLCJlbGxpcHNpcyIsImRhZ2dlciIsImRhZ2dlcmRibCIsImNpcmN1bWZsZXgiLCJwZXJ0aG91c2FuZCIsIlNjYXJvbiIsImd1aWxzaW5nbGxlZnQiLCJPRSIsImJ1bGxldCIsIlpjYXJvbiIsImJ1bGxldCIsImJ1bGxldCIsInF1b3RlbGVmdCIsInF1b3RlcmlnaHQiLCJxdW90ZWRibGxlZnQiLCJxdW90ZWRibHJpZ2h0IiwiYnVsbGV0IiwiZW5kYXNoIiwiZW1kYXNoIiwidGlsZGUiLCJ0cmFkZW1hcmsiLCJzY2Fyb24iLCJndWlsc2luZ2xyaWdodCIsIm9lIiwiYnVsbGV0IiwiemNhcm9uIiwiWWRpZXJlc2lzIiwic3BhY2UiLCJleGNsYW1kb3duIiwiY2VudCIsInN0ZXJsaW5nIiwiY3VycmVuY3kiLCJ5ZW4iLCJicm9rZW5iYXIiLCJzZWN0aW9uIiwiZGllcmVzaXMiLCJjb3B5cmlnaHQiLCJvcmRmZW1pbmluZSIsImd1aWxsZW1vdGxlZnQiLCJsb2dpY2Fsbm90IiwiaHlwaGVuIiwicmVnaXN0ZXJlZCIsIm1hY3JvbiIsImRlZ3JlZSIsInBsdXNtaW51cyIsInR3b3N1cGVyaW9yIiwidGhyZWVzdXBlcmlvciIsImFjdXRlIiwibXUiLCJwYXJhZ3JhcGgiLCJwZXJpb2RjZW50ZXJlZCIsImNlZGlsbGEiLCJvbmVzdXBlcmlvciIsIm9yZG1hc2N1bGluZSIsImd1aWxsZW1vdHJpZ2h0Iiwib25lcXVhcnRlciIsIm9uZWhhbGYiLCJ0aHJlZXF1YXJ0ZXJzIiwicXVlc3Rpb25kb3duIiwiQWdyYXZlIiwiQWFjdXRlIiwiQWNpcmN1bWZsZXgiLCJBdGlsZGUiLCJBZGllcmVzaXMiLCJBcmluZyIsIkFFIiwiQ2NlZGlsbGEiLCJFZ3JhdmUiLCJFYWN1dGUiLCJFY2lyY3VtZmxleCIsIkVkaWVyZXNpcyIsIklncmF2ZSIsIklhY3V0ZSIsIkljaXJjdW1mbGV4IiwiSWRpZXJlc2lzIiwiRXRoIiwiTnRpbGRlIiwiT2dyYXZlIiwiT2FjdXRlIiwiT2NpcmN1bWZsZXgiLCJPdGlsZGUiLCJPZGllcmVzaXMiLCJtdWx0aXBseSIsIk9zbGFzaCIsIlVncmF2ZSIsIlVhY3V0ZSIsIlVjaXJjdW1mbGV4IiwiVWRpZXJlc2lzIiwiWWFjdXRlIiwiVGhvcm4iLCJnZXJtYW5kYmxzIiwiYWdyYXZlIiwiYWFjdXRlIiwiYWNpcmN1bWZsZXgiLCJhdGlsZGUiLCJhZGllcmVzaXMiLCJhcmluZyIsImFlIiwiY2NlZGlsbGEiLCJlZ3JhdmUiLCJlYWN1dGUiLCJlY2lyY3VtZmxleCIsImVkaWVyZXNpcyIsImlncmF2ZSIsImlhY3V0ZSIsImljaXJjdW1mbGV4IiwiaWRpZXJlc2lzIiwiZXRoIiwibnRpbGRlIiwib2dyYXZlIiwib2FjdXRlIiwib2NpcmN1bWZsZXgiLCJvdGlsZGUiLCJvZGllcmVzaXMiLCJkaXZpZGUiLCJvc2xhc2giLCJ1Z3JhdmUiLCJ1YWN1dGUiLCJ1Y2lyY3VtZmxleCIsInVkaWVyZXNpcyIsInlhY3V0ZSIsInRob3JuIiwieWRpZXJlc2lzIl0sd2E9WyIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCIiLCJzcGFjZSIsImV4Y2xhbSIsInVuaXZlcnNhbCIsIm51bWJlcnNpZ24iLCJleGlzdGVudGlhbCIsInBlcmNlbnQiLCJhbXBlcnNhbmQiLCJzdWNodGhhdCIsInBhcmVubGVmdCIsInBhcmVucmlnaHQiLCJhc3Rlcmlza21hdGgiLCJwbHVzIiwiY29tbWEiLCJtaW51cyIsInBlcmlvZCIsInNsYXNoIiwiemVybyIsIm9uZSIsInR3byIsInRocmVlIiwiZm91ciIsImZpdmUiLCJzaXgiLCJzZXZlbiIsImVpZ2h0IiwibmluZSIsImNvbG9uIiwic2VtaWNvbG9uIiwibGVzcyIsImVxdWFsIiwiZ3JlYXRlciIsInF1ZXN0aW9uIiwiY29uZ3J1ZW50IiwiQWxwaGEiLCJCZXRhIiwiQ2hpIiwiRGVsdGEiLCJFcHNpbG9uIiwiUGhpIiwiR2FtbWEiLCJFdGEiLCJJb3RhIiwidGhldGExIiwiS2FwcGEiLCJMYW1iZGEiLCJNdSIsIk51IiwiT21pY3JvbiIsIlBpIiwiVGhldGEiLCJSaG8iLCJTaWdtYSIsIlRhdSIsIlVwc2lsb24iLCJzaWdtYTEiLCJPbWVnYSIsIlhpIiwiUHNpIiwiWmV0YSIsImJyYWNrZXRsZWZ0IiwidGhlcmVmb3JlIiwiYnJhY2tldHJpZ2h0IiwicGVycGVuZGljdWxhciIsInVuZGVyc2NvcmUiLCJyYWRpY2FsZXgiLCJhbHBoYSIsImJldGEiLCJjaGkiLCJkZWx0YSIsImVwc2lsb24iLCJwaGkiLCJnYW1tYSIsImV0YSIsImlvdGEiLCJwaGkxIiwia2FwcGEiLCJsYW1iZGEiLCJtdSIsIm51Iiwib21pY3JvbiIsInBpIiwidGhldGEiLCJyaG8iLCJzaWdtYSIsInRhdSIsInVwc2lsb24iLCJvbWVnYTEiLCJvbWVnYSIsInhpIiwicHNpIiwiemV0YSIsImJyYWNlbGVmdCIsImJhciIsImJyYWNlcmlnaHQiLCJzaW1pbGFyIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiRXVybyIsIlVwc2lsb24xIiwibWludXRlIiwibGVzc2VxdWFsIiwiZnJhY3Rpb24iLCJpbmZpbml0eSIsImZsb3JpbiIsImNsdWIiLCJkaWFtb25kIiwiaGVhcnQiLCJzcGFkZSIsImFycm93Ym90aCIsImFycm93bGVmdCIsImFycm93dXAiLCJhcnJvd3JpZ2h0IiwiYXJyb3dkb3duIiwiZGVncmVlIiwicGx1c21pbnVzIiwic2Vjb25kIiwiZ3JlYXRlcmVxdWFsIiwibXVsdGlwbHkiLCJwcm9wb3J0aW9uYWwiLCJwYXJ0aWFsZGlmZiIsImJ1bGxldCIsImRpdmlkZSIsIm5vdGVxdWFsIiwiZXF1aXZhbGVuY2UiLCJhcHByb3hlcXVhbCIsImVsbGlwc2lzIiwiYXJyb3d2ZXJ0ZXgiLCJhcnJvd2hvcml6ZXgiLCJjYXJyaWFnZXJldHVybiIsImFsZXBoIiwiSWZyYWt0dXIiLCJSZnJha3R1ciIsIndlaWVyc3RyYXNzIiwiY2lyY2xlbXVsdGlwbHkiLCJjaXJjbGVwbHVzIiwiZW1wdHlzZXQiLCJpbnRlcnNlY3Rpb24iLCJ1bmlvbiIsInByb3BlcnN1cGVyc2V0IiwicmVmbGV4c3VwZXJzZXQiLCJub3RzdWJzZXQiLCJwcm9wZXJzdWJzZXQiLCJyZWZsZXhzdWJzZXQiLCJlbGVtZW50Iiwibm90ZWxlbWVudCIsImFuZ2xlIiwiZ3JhZGllbnQiLCJyZWdpc3RlcnNlcmlmIiwiY29weXJpZ2h0c2VyaWYiLCJ0cmFkZW1hcmtzZXJpZiIsInByb2R1Y3QiLCJyYWRpY2FsIiwiZG90bWF0aCIsImxvZ2ljYWxub3QiLCJsb2dpY2FsYW5kIiwibG9naWNhbG9yIiwiYXJyb3dkYmxib3RoIiwiYXJyb3dkYmxsZWZ0IiwiYXJyb3dkYmx1cCIsImFycm93ZGJscmlnaHQiLCJhcnJvd2RibGRvd24iLCJsb3plbmdlIiwiYW5nbGVsZWZ0IiwicmVnaXN0ZXJzYW5zIiwiY29weXJpZ2h0c2FucyIsInRyYWRlbWFya3NhbnMiLCJzdW1tYXRpb24iLCJwYXJlbmxlZnR0cCIsInBhcmVubGVmdGV4IiwicGFyZW5sZWZ0YnQiLCJicmFja2V0bGVmdHRwIiwiYnJhY2tldGxlZnRleCIsImJyYWNrZXRsZWZ0YnQiLCJicmFjZWxlZnR0cCIsImJyYWNlbGVmdG1pZCIsImJyYWNlbGVmdGJ0IiwiYnJhY2VleCIsIiIsImFuZ2xlcmlnaHQiLCJpbnRlZ3JhbCIsImludGVncmFsdHAiLCJpbnRlZ3JhbGV4IiwiaW50ZWdyYWxidCIsInBhcmVucmlnaHR0cCIsInBhcmVucmlnaHRleCIsInBhcmVucmlnaHRidCIsImJyYWNrZXRyaWdodHRwIiwiYnJhY2tldHJpZ2h0ZXgiLCJicmFja2V0cmlnaHRidCIsImJyYWNlcmlnaHR0cCIsImJyYWNlcmlnaHRtaWQiLCJicmFjZXJpZ2h0YnQiLCIiXSxqYT1bIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsInNwYWNlIiwiYTEiLCJhMiIsImEyMDIiLCJhMyIsImE0IiwiYTUiLCJhMTE5IiwiYTExOCIsImExMTciLCJhMTEiLCJhMTIiLCJhMTMiLCJhMTQiLCJhMTUiLCJhMTYiLCJhMTA1IiwiYTE3IiwiYTE4IiwiYTE5IiwiYTIwIiwiYTIxIiwiYTIyIiwiYTIzIiwiYTI0IiwiYTI1IiwiYTI2IiwiYTI3IiwiYTI4IiwiYTYiLCJhNyIsImE4IiwiYTkiLCJhMTAiLCJhMjkiLCJhMzAiLCJhMzEiLCJhMzIiLCJhMzMiLCJhMzQiLCJhMzUiLCJhMzYiLCJhMzciLCJhMzgiLCJhMzkiLCJhNDAiLCJhNDEiLCJhNDIiLCJhNDMiLCJhNDQiLCJhNDUiLCJhNDYiLCJhNDciLCJhNDgiLCJhNDkiLCJhNTAiLCJhNTEiLCJhNTIiLCJhNTMiLCJhNTQiLCJhNTUiLCJhNTYiLCJhNTciLCJhNTgiLCJhNTkiLCJhNjAiLCJhNjEiLCJhNjIiLCJhNjMiLCJhNjQiLCJhNjUiLCJhNjYiLCJhNjciLCJhNjgiLCJhNjkiLCJhNzAiLCJhNzEiLCJhNzIiLCJhNzMiLCJhNzQiLCJhMjAzIiwiYTc1IiwiYTIwNCIsImE3NiIsImE3NyIsImE3OCIsImE3OSIsImE4MSIsImE4MiIsImE4MyIsImE4NCIsImE5NyIsImE5OCIsImE5OSIsImExMDAiLCIiLCJhODkiLCJhOTAiLCJhOTMiLCJhOTQiLCJhOTEiLCJhOTIiLCJhMjA1IiwiYTg1IiwiYTIwNiIsImE4NiIsImE4NyIsImE4OCIsImE5NSIsImE5NiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsImExMDEiLCJhMTAyIiwiYTEwMyIsImExMDQiLCJhMTA2IiwiYTEwNyIsImExMDgiLCJhMTEyIiwiYTExMSIsImExMTAiLCJhMTA5IiwiYTEyMCIsImExMjEiLCJhMTIyIiwiYTEyMyIsImExMjQiLCJhMTI1IiwiYTEyNiIsImExMjciLCJhMTI4IiwiYTEyOSIsImExMzAiLCJhMTMxIiwiYTEzMiIsImExMzMiLCJhMTM0IiwiYTEzNSIsImExMzYiLCJhMTM3IiwiYTEzOCIsImExMzkiLCJhMTQwIiwiYTE0MSIsImExNDIiLCJhMTQzIiwiYTE0NCIsImExNDUiLCJhMTQ2IiwiYTE0NyIsImExNDgiLCJhMTQ5IiwiYTE1MCIsImExNTEiLCJhMTUyIiwiYTE1MyIsImExNTQiLCJhMTU1IiwiYTE1NiIsImExNTciLCJhMTU4IiwiYTE1OSIsImExNjAiLCJhMTYxIiwiYTE2MyIsImExNjQiLCJhMTk2IiwiYTE2NSIsImExOTIiLCJhMTY2IiwiYTE2NyIsImExNjgiLCJhMTY5IiwiYTE3MCIsImExNzEiLCJhMTcyIiwiYTE3MyIsImExNjIiLCJhMTc0IiwiYTE3NSIsImExNzYiLCJhMTc3IiwiYTE3OCIsImExNzkiLCJhMTkzIiwiYTE4MCIsImExOTkiLCJhMTgxIiwiYTIwMCIsImExODIiLCIiLCJhMjAxIiwiYTE4MyIsImExODQiLCJhMTk3IiwiYTE4NSIsImExOTQiLCJhMTk4IiwiYTE4NiIsImExOTUiLCJhMTg3IiwiYTE4OCIsImExODkiLCJhMTkwIiwiYTE5MSIsIiJdO2Z1bmN0aW9uIGdldEVuY29kaW5nKGUpe3N3aXRjaChlKXtjYXNlIldpbkFuc2lFbmNvZGluZyI6cmV0dXJuIGJhO2Nhc2UiU3RhbmRhcmRFbmNvZGluZyI6cmV0dXJuIGdhO2Nhc2UiTWFjUm9tYW5FbmNvZGluZyI6cmV0dXJuIGRhO2Nhc2UiU3ltYm9sU2V0RW5jb2RpbmciOnJldHVybiB3YTtjYXNlIlphcGZEaW5nYmF0c0VuY29kaW5nIjpyZXR1cm4gamE7Y2FzZSJFeHBlcnRFbmNvZGluZyI6cmV0dXJuIG1hO2Nhc2UiTWFjRXhwZXJ0RW5jb2RpbmciOnJldHVybiBwYTtkZWZhdWx0OnJldHVybiBudWxsfX1jb25zdCBrYT1nZXRMb29rdXBUYWJsZUZhY3RvcnkoZnVuY3Rpb24oZSl7ZS5BPTY1O2UuQUU9MTk4O2UuQUVhY3V0ZT01MDg7ZS5BRW1hY3Jvbj00ODI7ZS5BRXNtYWxsPTYzNDYyO2UuQWFjdXRlPTE5MztlLkFhY3V0ZXNtYWxsPTYzNDU3O2UuQWJyZXZlPTI1ODtlLkFicmV2ZWFjdXRlPTc4NTQ7ZS5BYnJldmVjeXJpbGxpYz0xMjMyO2UuQWJyZXZlZG90YmVsb3c9Nzg2MjtlLkFicmV2ZWdyYXZlPTc4NTY7ZS5BYnJldmVob29rYWJvdmU9Nzg1ODtlLkFicmV2ZXRpbGRlPTc4NjA7ZS5BY2Fyb249NDYxO2UuQWNpcmNsZT05Mzk4O2UuQWNpcmN1bWZsZXg9MTk0O2UuQWNpcmN1bWZsZXhhY3V0ZT03ODQ0O2UuQWNpcmN1bWZsZXhkb3RiZWxvdz03ODUyO2UuQWNpcmN1bWZsZXhncmF2ZT03ODQ2O2UuQWNpcmN1bWZsZXhob29rYWJvdmU9Nzg0ODtlLkFjaXJjdW1mbGV4c21hbGw9NjM0NTg7ZS5BY2lyY3VtZmxleHRpbGRlPTc4NTA7ZS5BY3V0ZT02MzE3NztlLkFjdXRlc21hbGw9NjM0MTI7ZS5BY3lyaWxsaWM9MTA0MDtlLkFkYmxncmF2ZT01MTI7ZS5BZGllcmVzaXM9MTk2O2UuQWRpZXJlc2lzY3lyaWxsaWM9MTIzNDtlLkFkaWVyZXNpc21hY3Jvbj00Nzg7ZS5BZGllcmVzaXNzbWFsbD02MzQ2MDtlLkFkb3RiZWxvdz03ODQwO2UuQWRvdG1hY3Jvbj00ODA7ZS5BZ3JhdmU9MTkyO2UuQWdyYXZlc21hbGw9NjM0NTY7ZS5BaG9va2Fib3ZlPTc4NDI7ZS5BaWVjeXJpbGxpYz0xMjM2O2UuQWludmVydGVkYnJldmU9NTE0O2UuQWxwaGE9OTEzO2UuQWxwaGF0b25vcz05MDI7ZS5BbWFjcm9uPTI1NjtlLkFtb25vc3BhY2U9NjUzMTM7ZS5Bb2dvbmVrPTI2MDtlLkFyaW5nPTE5NztlLkFyaW5nYWN1dGU9NTA2O2UuQXJpbmdiZWxvdz03NjgwO2UuQXJpbmdzbWFsbD02MzQ2MTtlLkFzbWFsbD02MzMyOTtlLkF0aWxkZT0xOTU7ZS5BdGlsZGVzbWFsbD02MzQ1OTtlLkF5YmFybWVuaWFuPTEzMjk7ZS5CPTY2O2UuQmNpcmNsZT05Mzk5O2UuQmRvdGFjY2VudD03NjgyO2UuQmRvdGJlbG93PTc2ODQ7ZS5CZWN5cmlsbGljPTEwNDE7ZS5CZW5hcm1lbmlhbj0xMzMwO2UuQmV0YT05MTQ7ZS5CaG9vaz0zODU7ZS5CbGluZWJlbG93PTc2ODY7ZS5CbW9ub3NwYWNlPTY1MzE0O2UuQnJldmVzbWFsbD02MzIyMDtlLkJzbWFsbD02MzMzMDtlLkJ0b3BiYXI9Mzg2O2UuQz02NztlLkNhYXJtZW5pYW49MTM0MjtlLkNhY3V0ZT0yNjI7ZS5DYXJvbj02MzE3ODtlLkNhcm9uc21hbGw9NjMyMjE7ZS5DY2Fyb249MjY4O2UuQ2NlZGlsbGE9MTk5O2UuQ2NlZGlsbGFhY3V0ZT03Njg4O2UuQ2NlZGlsbGFzbWFsbD02MzQ2MztlLkNjaXJjbGU9OTQwMDtlLkNjaXJjdW1mbGV4PTI2NDtlLkNkb3Q9MjY2O2UuQ2RvdGFjY2VudD0yNjY7ZS5DZWRpbGxhc21hbGw9NjM0MTY7ZS5DaGFhcm1lbmlhbj0xMzUzO2UuQ2hlYWJraGFzaWFuY3lyaWxsaWM9MTIxMjtlLkNoZWN5cmlsbGljPTEwNjM7ZS5DaGVkZXNjZW5kZXJhYmtoYXNpYW5jeXJpbGxpYz0xMjE0O2UuQ2hlZGVzY2VuZGVyY3lyaWxsaWM9MTIwNjtlLkNoZWRpZXJlc2lzY3lyaWxsaWM9MTI2ODtlLkNoZWhhcm1lbmlhbj0xMzQ3O2UuQ2hla2hha2Fzc2lhbmN5cmlsbGljPTEyMjc7ZS5DaGV2ZXJ0aWNhbHN0cm9rZWN5cmlsbGljPTEyMDg7ZS5DaGk9OTM1O2UuQ2hvb2s9MzkxO2UuQ2lyY3VtZmxleHNtYWxsPTYzMjIyO2UuQ21vbm9zcGFjZT02NTMxNTtlLkNvYXJtZW5pYW49MTM2MTtlLkNzbWFsbD02MzMzMTtlLkQ9Njg7ZS5EWj00OTc7ZS5EWmNhcm9uPTQ1MjtlLkRhYXJtZW5pYW49MTMzMjtlLkRhZnJpY2FuPTM5MztlLkRjYXJvbj0yNzA7ZS5EY2VkaWxsYT03Njk2O2UuRGNpcmNsZT05NDAxO2UuRGNpcmN1bWZsZXhiZWxvdz03Njk4O2UuRGNyb2F0PTI3MjtlLkRkb3RhY2NlbnQ9NzY5MDtlLkRkb3RiZWxvdz03NjkyO2UuRGVjeXJpbGxpYz0xMDQ0O2UuRGVpY29wdGljPTEwMDY7ZS5EZWx0YT04NzEwO2UuRGVsdGFncmVlaz05MTY7ZS5EaG9vaz0zOTQ7ZS5EaWVyZXNpcz02MzE3OTtlLkRpZXJlc2lzQWN1dGU9NjMxODA7ZS5EaWVyZXNpc0dyYXZlPTYzMTgxO2UuRGllcmVzaXNzbWFsbD02MzQwMDtlLkRpZ2FtbWFncmVlaz05ODg7ZS5EamVjeXJpbGxpYz0xMDI2O2UuRGxpbmViZWxvdz03Njk0O2UuRG1vbm9zcGFjZT02NTMxNjtlLkRvdGFjY2VudHNtYWxsPTYzMjIzO2UuRHNsYXNoPTI3MjtlLkRzbWFsbD02MzMzMjtlLkR0b3BiYXI9Mzk1O2UuRHo9NDk4O2UuRHpjYXJvbj00NTM7ZS5EemVhYmtoYXNpYW5jeXJpbGxpYz0xMjQ4O2UuRHplY3lyaWxsaWM9MTAyOTtlLkR6aGVjeXJpbGxpYz0xMDM5O2UuRT02OTtlLkVhY3V0ZT0yMDE7ZS5FYWN1dGVzbWFsbD02MzQ2NTtlLkVicmV2ZT0yNzY7ZS5FY2Fyb249MjgyO2UuRWNlZGlsbGFicmV2ZT03NzA4O2UuRWNoYXJtZW5pYW49MTMzMztlLkVjaXJjbGU9OTQwMjtlLkVjaXJjdW1mbGV4PTIwMjtlLkVjaXJjdW1mbGV4YWN1dGU9Nzg3MDtlLkVjaXJjdW1mbGV4YmVsb3c9NzcwNDtlLkVjaXJjdW1mbGV4ZG90YmVsb3c9Nzg3ODtlLkVjaXJjdW1mbGV4Z3JhdmU9Nzg3MjtlLkVjaXJjdW1mbGV4aG9va2Fib3ZlPTc4NzQ7ZS5FY2lyY3VtZmxleHNtYWxsPTYzNDY2O2UuRWNpcmN1bWZsZXh0aWxkZT03ODc2O2UuRWN5cmlsbGljPTEwMjg7ZS5FZGJsZ3JhdmU9NTE2O2UuRWRpZXJlc2lzPTIwMztlLkVkaWVyZXNpc3NtYWxsPTYzNDY3O2UuRWRvdD0yNzg7ZS5FZG90YWNjZW50PTI3ODtlLkVkb3RiZWxvdz03ODY0O2UuRWZjeXJpbGxpYz0xMDYwO2UuRWdyYXZlPTIwMDtlLkVncmF2ZXNtYWxsPTYzNDY0O2UuRWhhcm1lbmlhbj0xMzM1O2UuRWhvb2thYm92ZT03ODY2O2UuRWlnaHRyb21hbj04NTUxO2UuRWludmVydGVkYnJldmU9NTE4O2UuRWlvdGlmaWVkY3lyaWxsaWM9MTEyNDtlLkVsY3lyaWxsaWM9MTA1MTtlLkVsZXZlbnJvbWFuPTg1NTQ7ZS5FbWFjcm9uPTI3NDtlLkVtYWNyb25hY3V0ZT03NzAyO2UuRW1hY3JvbmdyYXZlPTc3MDA7ZS5FbWN5cmlsbGljPTEwNTI7ZS5FbW9ub3NwYWNlPTY1MzE3O2UuRW5jeXJpbGxpYz0xMDUzO2UuRW5kZXNjZW5kZXJjeXJpbGxpYz0xMTg2O2UuRW5nPTMzMDtlLkVuZ2hlY3lyaWxsaWM9MTE4ODtlLkVuaG9va2N5cmlsbGljPTEyMjM7ZS5Fb2dvbmVrPTI4MDtlLkVvcGVuPTQwMDtlLkVwc2lsb249OTE3O2UuRXBzaWxvbnRvbm9zPTkwNDtlLkVyY3lyaWxsaWM9MTA1NjtlLkVyZXZlcnNlZD0zOTg7ZS5FcmV2ZXJzZWRjeXJpbGxpYz0xMDY5O2UuRXNjeXJpbGxpYz0xMDU3O2UuRXNkZXNjZW5kZXJjeXJpbGxpYz0xMTk0O2UuRXNoPTQyNTtlLkVzbWFsbD02MzMzMztlLkV0YT05MTk7ZS5FdGFybWVuaWFuPTEzMzY7ZS5FdGF0b25vcz05MDU7ZS5FdGg9MjA4O2UuRXRoc21hbGw9NjM0NzI7ZS5FdGlsZGU9Nzg2ODtlLkV0aWxkZWJlbG93PTc3MDY7ZS5FdXJvPTgzNjQ7ZS5Femg9NDM5O2UuRXpoY2Fyb249NDk0O2UuRXpocmV2ZXJzZWQ9NDQwO2UuRj03MDtlLkZjaXJjbGU9OTQwMztlLkZkb3RhY2NlbnQ9NzcxMDtlLkZlaGFybWVuaWFuPTEzNjY7ZS5GZWljb3B0aWM9OTk2O2UuRmhvb2s9NDAxO2UuRml0YWN5cmlsbGljPTExMzg7ZS5GaXZlcm9tYW49ODU0ODtlLkZtb25vc3BhY2U9NjUzMTg7ZS5Gb3Vycm9tYW49ODU0NztlLkZzbWFsbD02MzMzNDtlLkc9NzE7ZS5HQnNxdWFyZT0xMzE5MTtlLkdhY3V0ZT01MDA7ZS5HYW1tYT05MTU7ZS5HYW1tYWFmcmljYW49NDA0O2UuR2FuZ2lhY29wdGljPTEwMDI7ZS5HYnJldmU9Mjg2O2UuR2Nhcm9uPTQ4NjtlLkdjZWRpbGxhPTI5MDtlLkdjaXJjbGU9OTQwNDtlLkdjaXJjdW1mbGV4PTI4NDtlLkdjb21tYWFjY2VudD0yOTA7ZS5HZG90PTI4ODtlLkdkb3RhY2NlbnQ9Mjg4O2UuR2VjeXJpbGxpYz0xMDQzO2UuR2hhZGFybWVuaWFuPTEzNDY7ZS5HaGVtaWRkbGVob29rY3lyaWxsaWM9MTE3MjtlLkdoZXN0cm9rZWN5cmlsbGljPTExNzA7ZS5HaGV1cHR1cm5jeXJpbGxpYz0xMTY4O2UuR2hvb2s9NDAzO2UuR2ltYXJtZW5pYW49MTMzMTtlLkdqZWN5cmlsbGljPTEwMjc7ZS5HbWFjcm9uPTc3MTI7ZS5HbW9ub3NwYWNlPTY1MzE5O2UuR3JhdmU9NjMxODI7ZS5HcmF2ZXNtYWxsPTYzMzI4O2UuR3NtYWxsPTYzMzM1O2UuR3NtYWxsaG9vaz02Njc7ZS5Hc3Ryb2tlPTQ4NDtlLkg9NzI7ZS5IMTg1MzM9OTY3OTtlLkgxODU0Mz05NjQyO2UuSDE4NTUxPTk2NDM7ZS5IMjIwNzM9OTYzMztlLkhQc3F1YXJlPTEzMjU5O2UuSGFhYmtoYXNpYW5jeXJpbGxpYz0xMTkyO2UuSGFkZXNjZW5kZXJjeXJpbGxpYz0xMjAyO2UuSGFyZHNpZ25jeXJpbGxpYz0xMDY2O2UuSGJhcj0yOTQ7ZS5IYnJldmViZWxvdz03NzIyO2UuSGNlZGlsbGE9NzcyMDtlLkhjaXJjbGU9OTQwNTtlLkhjaXJjdW1mbGV4PTI5MjtlLkhkaWVyZXNpcz03NzE4O2UuSGRvdGFjY2VudD03NzE0O2UuSGRvdGJlbG93PTc3MTY7ZS5IbW9ub3NwYWNlPTY1MzIwO2UuSG9hcm1lbmlhbj0xMzQ0O2UuSG9yaWNvcHRpYz0xZTM7ZS5Ic21hbGw9NjMzMzY7ZS5IdW5nYXJ1bWxhdXQ9NjMxODM7ZS5IdW5nYXJ1bWxhdXRzbWFsbD02MzIyNDtlLkh6c3F1YXJlPTEzMjAwO2UuST03MztlLklBY3lyaWxsaWM9MTA3MTtlLklKPTMwNjtlLklVY3lyaWxsaWM9MTA3MDtlLklhY3V0ZT0yMDU7ZS5JYWN1dGVzbWFsbD02MzQ2OTtlLklicmV2ZT0zMDA7ZS5JY2Fyb249NDYzO2UuSWNpcmNsZT05NDA2O2UuSWNpcmN1bWZsZXg9MjA2O2UuSWNpcmN1bWZsZXhzbWFsbD02MzQ3MDtlLkljeXJpbGxpYz0xMDMwO2UuSWRibGdyYXZlPTUyMDtlLklkaWVyZXNpcz0yMDc7ZS5JZGllcmVzaXNhY3V0ZT03NzI2O2UuSWRpZXJlc2lzY3lyaWxsaWM9MTI1MjtlLklkaWVyZXNpc3NtYWxsPTYzNDcxO2UuSWRvdD0zMDQ7ZS5JZG90YWNjZW50PTMwNDtlLklkb3RiZWxvdz03ODgyO2UuSWVicmV2ZWN5cmlsbGljPTEyMzg7ZS5JZWN5cmlsbGljPTEwNDU7ZS5JZnJha3R1cj04NDY1O2UuSWdyYXZlPTIwNDtlLklncmF2ZXNtYWxsPTYzNDY4O2UuSWhvb2thYm92ZT03ODgwO2UuSWljeXJpbGxpYz0xMDQ4O2UuSWludmVydGVkYnJldmU9NTIyO2UuSWlzaG9ydGN5cmlsbGljPTEwNDk7ZS5JbWFjcm9uPTI5ODtlLkltYWNyb25jeXJpbGxpYz0xMjUwO2UuSW1vbm9zcGFjZT02NTMyMTtlLkluaWFybWVuaWFuPTEzMzk7ZS5Jb2N5cmlsbGljPTEwMjU7ZS5Jb2dvbmVrPTMwMjtlLklvdGE9OTIxO2UuSW90YWFmcmljYW49NDA2O2UuSW90YWRpZXJlc2lzPTkzODtlLklvdGF0b25vcz05MDY7ZS5Jc21hbGw9NjMzMzc7ZS5Jc3Ryb2tlPTQwNztlLkl0aWxkZT0yOTY7ZS5JdGlsZGViZWxvdz03NzI0O2UuSXpoaXRzYWN5cmlsbGljPTExNDA7ZS5JemhpdHNhZGJsZ3JhdmVjeXJpbGxpYz0xMTQyO2UuSj03NDtlLkphYXJtZW5pYW49MTM0NTtlLkpjaXJjbGU9OTQwNztlLkpjaXJjdW1mbGV4PTMwODtlLkplY3lyaWxsaWM9MTAzMjtlLkpoZWhhcm1lbmlhbj0xMzU1O2UuSm1vbm9zcGFjZT02NTMyMjtlLkpzbWFsbD02MzMzODtlLks9NzU7ZS5LQnNxdWFyZT0xMzE4OTtlLktLc3F1YXJlPTEzMjYxO2UuS2FiYXNoa2lyY3lyaWxsaWM9MTE4NDtlLkthY3V0ZT03NzI4O2UuS2FjeXJpbGxpYz0xMDUwO2UuS2FkZXNjZW5kZXJjeXJpbGxpYz0xMTc4O2UuS2Fob29rY3lyaWxsaWM9MTIxOTtlLkthcHBhPTkyMjtlLkthc3Ryb2tlY3lyaWxsaWM9MTE4MjtlLkthdmVydGljYWxzdHJva2VjeXJpbGxpYz0xMTgwO2UuS2Nhcm9uPTQ4ODtlLktjZWRpbGxhPTMxMDtlLktjaXJjbGU9OTQwODtlLktjb21tYWFjY2VudD0zMTA7ZS5LZG90YmVsb3c9NzczMDtlLktlaGFybWVuaWFuPTEzNjQ7ZS5LZW5hcm1lbmlhbj0xMzQzO2UuS2hhY3lyaWxsaWM9MTA2MTtlLktoZWljb3B0aWM9OTk4O2UuS2hvb2s9NDA4O2UuS2plY3lyaWxsaWM9MTAzNjtlLktsaW5lYmVsb3c9NzczMjtlLkttb25vc3BhY2U9NjUzMjM7ZS5Lb3BwYWN5cmlsbGljPTExNTI7ZS5Lb3BwYWdyZWVrPTk5MDtlLktzaWN5cmlsbGljPTExMzQ7ZS5Lc21hbGw9NjMzMzk7ZS5MPTc2O2UuTEo9NDU1O2UuTEw9NjMxNjc7ZS5MYWN1dGU9MzEzO2UuTGFtYmRhPTkyMztlLkxjYXJvbj0zMTc7ZS5MY2VkaWxsYT0zMTU7ZS5MY2lyY2xlPTk0MDk7ZS5MY2lyY3VtZmxleGJlbG93PTc3NDA7ZS5MY29tbWFhY2NlbnQ9MzE1O2UuTGRvdD0zMTk7ZS5MZG90YWNjZW50PTMxOTtlLkxkb3RiZWxvdz03NzM0O2UuTGRvdGJlbG93bWFjcm9uPTc3MzY7ZS5MaXduYXJtZW5pYW49MTM0MDtlLkxqPTQ1NjtlLkxqZWN5cmlsbGljPTEwMzM7ZS5MbGluZWJlbG93PTc3Mzg7ZS5MbW9ub3NwYWNlPTY1MzI0O2UuTHNsYXNoPTMyMTtlLkxzbGFzaHNtYWxsPTYzMjI1O2UuTHNtYWxsPTYzMzQwO2UuTT03NztlLk1Cc3F1YXJlPTEzMTkwO2UuTWFjcm9uPTYzMTg0O2UuTWFjcm9uc21hbGw9NjM0MDc7ZS5NYWN1dGU9Nzc0MjtlLk1jaXJjbGU9OTQxMDtlLk1kb3RhY2NlbnQ9Nzc0NDtlLk1kb3RiZWxvdz03NzQ2O2UuTWVuYXJtZW5pYW49MTM0ODtlLk1tb25vc3BhY2U9NjUzMjU7ZS5Nc21hbGw9NjMzNDE7ZS5NdHVybmVkPTQxMjtlLk11PTkyNDtlLk49Nzg7ZS5OSj00NTg7ZS5OYWN1dGU9MzIzO2UuTmNhcm9uPTMyNztlLk5jZWRpbGxhPTMyNTtlLk5jaXJjbGU9OTQxMTtlLk5jaXJjdW1mbGV4YmVsb3c9Nzc1NDtlLk5jb21tYWFjY2VudD0zMjU7ZS5OZG90YWNjZW50PTc3NDg7ZS5OZG90YmVsb3c9Nzc1MDtlLk5ob29rbGVmdD00MTM7ZS5OaW5lcm9tYW49ODU1MjtlLk5qPTQ1OTtlLk5qZWN5cmlsbGljPTEwMzQ7ZS5ObGluZWJlbG93PTc3NTI7ZS5ObW9ub3NwYWNlPTY1MzI2O2UuTm93YXJtZW5pYW49MTM1MDtlLk5zbWFsbD02MzM0MjtlLk50aWxkZT0yMDk7ZS5OdGlsZGVzbWFsbD02MzQ3MztlLk51PTkyNTtlLk89Nzk7ZS5PRT0zMzg7ZS5PRXNtYWxsPTYzMjI2O2UuT2FjdXRlPTIxMTtlLk9hY3V0ZXNtYWxsPTYzNDc1O2UuT2JhcnJlZGN5cmlsbGljPTEyNTY7ZS5PYmFycmVkZGllcmVzaXNjeXJpbGxpYz0xMjU4O2UuT2JyZXZlPTMzNDtlLk9jYXJvbj00NjU7ZS5PY2VudGVyZWR0aWxkZT00MTU7ZS5PY2lyY2xlPTk0MTI7ZS5PY2lyY3VtZmxleD0yMTI7ZS5PY2lyY3VtZmxleGFjdXRlPTc4ODg7ZS5PY2lyY3VtZmxleGRvdGJlbG93PTc4OTY7ZS5PY2lyY3VtZmxleGdyYXZlPTc4OTA7ZS5PY2lyY3VtZmxleGhvb2thYm92ZT03ODkyO2UuT2NpcmN1bWZsZXhzbWFsbD02MzQ3NjtlLk9jaXJjdW1mbGV4dGlsZGU9Nzg5NDtlLk9jeXJpbGxpYz0xMDU0O2UuT2RibGFjdXRlPTMzNjtlLk9kYmxncmF2ZT01MjQ7ZS5PZGllcmVzaXM9MjE0O2UuT2RpZXJlc2lzY3lyaWxsaWM9MTI1NDtlLk9kaWVyZXNpc3NtYWxsPTYzNDc4O2UuT2RvdGJlbG93PTc4ODQ7ZS5PZ29uZWtzbWFsbD02MzIyNztlLk9ncmF2ZT0yMTA7ZS5PZ3JhdmVzbWFsbD02MzQ3NDtlLk9oYXJtZW5pYW49MTM2NTtlLk9obT04NDg2O2UuT2hvb2thYm92ZT03ODg2O2UuT2hvcm49NDE2O2UuT2hvcm5hY3V0ZT03ODk4O2UuT2hvcm5kb3RiZWxvdz03OTA2O2UuT2hvcm5ncmF2ZT03OTAwO2UuT2hvcm5ob29rYWJvdmU9NzkwMjtlLk9ob3JudGlsZGU9NzkwNDtlLk9odW5nYXJ1bWxhdXQ9MzM2O2UuT2k9NDE4O2UuT2ludmVydGVkYnJldmU9NTI2O2UuT21hY3Jvbj0zMzI7ZS5PbWFjcm9uYWN1dGU9Nzc2MjtlLk9tYWNyb25ncmF2ZT03NzYwO2UuT21lZ2E9ODQ4NjtlLk9tZWdhY3lyaWxsaWM9MTEyMDtlLk9tZWdhZ3JlZWs9OTM3O2UuT21lZ2Fyb3VuZGN5cmlsbGljPTExNDY7ZS5PbWVnYXRpdGxvY3lyaWxsaWM9MTE0ODtlLk9tZWdhdG9ub3M9OTExO2UuT21pY3Jvbj05Mjc7ZS5PbWljcm9udG9ub3M9OTA4O2UuT21vbm9zcGFjZT02NTMyNztlLk9uZXJvbWFuPTg1NDQ7ZS5Pb2dvbmVrPTQ5MDtlLk9vZ29uZWttYWNyb249NDkyO2UuT29wZW49MzkwO2UuT3NsYXNoPTIxNjtlLk9zbGFzaGFjdXRlPTUxMDtlLk9zbGFzaHNtYWxsPTYzNDgwO2UuT3NtYWxsPTYzMzQzO2UuT3N0cm9rZWFjdXRlPTUxMDtlLk90Y3lyaWxsaWM9MTE1MDtlLk90aWxkZT0yMTM7ZS5PdGlsZGVhY3V0ZT03NzU2O2UuT3RpbGRlZGllcmVzaXM9Nzc1ODtlLk90aWxkZXNtYWxsPTYzNDc3O2UuUD04MDtlLlBhY3V0ZT03NzY0O2UuUGNpcmNsZT05NDEzO2UuUGRvdGFjY2VudD03NzY2O2UuUGVjeXJpbGxpYz0xMDU1O2UuUGVoYXJtZW5pYW49MTM1NDtlLlBlbWlkZGxlaG9va2N5cmlsbGljPTExOTA7ZS5QaGk9OTM0O2UuUGhvb2s9NDIwO2UuUGk9OTI4O2UuUGl3cmFybWVuaWFuPTEzNjM7ZS5QbW9ub3NwYWNlPTY1MzI4O2UuUHNpPTkzNjtlLlBzaWN5cmlsbGljPTExMzY7ZS5Qc21hbGw9NjMzNDQ7ZS5RPTgxO2UuUWNpcmNsZT05NDE0O2UuUW1vbm9zcGFjZT02NTMyOTtlLlFzbWFsbD02MzM0NTtlLlI9ODI7ZS5SYWFybWVuaWFuPTEzNTY7ZS5SYWN1dGU9MzQwO2UuUmNhcm9uPTM0NDtlLlJjZWRpbGxhPTM0MjtlLlJjaXJjbGU9OTQxNTtlLlJjb21tYWFjY2VudD0zNDI7ZS5SZGJsZ3JhdmU9NTI4O2UuUmRvdGFjY2VudD03NzY4O2UuUmRvdGJlbG93PTc3NzA7ZS5SZG90YmVsb3dtYWNyb249Nzc3MjtlLlJlaGFybWVuaWFuPTEzNjA7ZS5SZnJha3R1cj04NDc2O2UuUmhvPTkyOTtlLlJpbmdzbWFsbD02MzIyODtlLlJpbnZlcnRlZGJyZXZlPTUzMDtlLlJsaW5lYmVsb3c9Nzc3NDtlLlJtb25vc3BhY2U9NjUzMzA7ZS5Sc21hbGw9NjMzNDY7ZS5Sc21hbGxpbnZlcnRlZD02NDE7ZS5Sc21hbGxpbnZlcnRlZHN1cGVyaW9yPTY5NDtlLlM9ODM7ZS5TRjAxMDAwMD05NDg0O2UuU0YwMjAwMDA9OTQ5MjtlLlNGMDMwMDAwPTk0ODg7ZS5TRjA0MDAwMD05NDk2O2UuU0YwNTAwMDA9OTUzMjtlLlNGMDYwMDAwPTk1MTY7ZS5TRjA3MDAwMD05NTI0O2UuU0YwODAwMDA9OTUwMDtlLlNGMDkwMDAwPTk1MDg7ZS5TRjEwMDAwMD05NDcyO2UuU0YxMTAwMDA9OTQ3NDtlLlNGMTkwMDAwPTk1Njk7ZS5TRjIwMDAwMD05NTcwO2UuU0YyMTAwMDA9OTU1ODtlLlNGMjIwMDAwPTk1NTc7ZS5TRjIzMDAwMD05NTcxO2UuU0YyNDAwMDA9OTU1MztlLlNGMjUwMDAwPTk1NTk7ZS5TRjI2MDAwMD05NTY1O2UuU0YyNzAwMDA9OTU2NDtlLlNGMjgwMDAwPTk1NjM7ZS5TRjM2MDAwMD05NTY2O2UuU0YzNzAwMDA9OTU2NztlLlNGMzgwMDAwPTk1NjI7ZS5TRjM5MDAwMD05NTU2O2UuU0Y0MDAwMDA9OTU3NztlLlNGNDEwMDAwPTk1NzQ7ZS5TRjQyMDAwMD05NTY4O2UuU0Y0MzAwMDA9OTU1MjtlLlNGNDQwMDAwPTk1ODA7ZS5TRjQ1MDAwMD05NTc1O2UuU0Y0NjAwMDA9OTU3NjtlLlNGNDcwMDAwPTk1NzI7ZS5TRjQ4MDAwMD05NTczO2UuU0Y0OTAwMDA9OTU2MTtlLlNGNTAwMDAwPTk1NjA7ZS5TRjUxMDAwMD05NTU0O2UuU0Y1MjAwMDA9OTU1NTtlLlNGNTMwMDAwPTk1Nzk7ZS5TRjU0MDAwMD05NTc4O2UuU2FjdXRlPTM0NjtlLlNhY3V0ZWRvdGFjY2VudD03NzgwO2UuU2FtcGlncmVlaz05OTI7ZS5TY2Fyb249MzUyO2UuU2Nhcm9uZG90YWNjZW50PTc3ODI7ZS5TY2Fyb25zbWFsbD02MzIyOTtlLlNjZWRpbGxhPTM1MDtlLlNjaHdhPTM5OTtlLlNjaHdhY3lyaWxsaWM9MTI0MDtlLlNjaHdhZGllcmVzaXNjeXJpbGxpYz0xMjQyO2UuU2NpcmNsZT05NDE2O2UuU2NpcmN1bWZsZXg9MzQ4O2UuU2NvbW1hYWNjZW50PTUzNjtlLlNkb3RhY2NlbnQ9Nzc3NjtlLlNkb3RiZWxvdz03Nzc4O2UuU2RvdGJlbG93ZG90YWNjZW50PTc3ODQ7ZS5TZWhhcm1lbmlhbj0xMzU3O2UuU2V2ZW5yb21hbj04NTUwO2UuU2hhYXJtZW5pYW49MTM1MTtlLlNoYWN5cmlsbGljPTEwNjQ7ZS5TaGNoYWN5cmlsbGljPTEwNjU7ZS5TaGVpY29wdGljPTk5NDtlLlNoaGFjeXJpbGxpYz0xMjEwO2UuU2hpbWFjb3B0aWM9MTAwNDtlLlNpZ21hPTkzMTtlLlNpeHJvbWFuPTg1NDk7ZS5TbW9ub3NwYWNlPTY1MzMxO2UuU29mdHNpZ25jeXJpbGxpYz0xMDY4O2UuU3NtYWxsPTYzMzQ3O2UuU3RpZ21hZ3JlZWs9OTg2O2UuVD04NDtlLlRhdT05MzI7ZS5UYmFyPTM1ODtlLlRjYXJvbj0zNTY7ZS5UY2VkaWxsYT0zNTQ7ZS5UY2lyY2xlPTk0MTc7ZS5UY2lyY3VtZmxleGJlbG93PTc3OTI7ZS5UY29tbWFhY2NlbnQ9MzU0O2UuVGRvdGFjY2VudD03Nzg2O2UuVGRvdGJlbG93PTc3ODg7ZS5UZWN5cmlsbGljPTEwNTg7ZS5UZWRlc2NlbmRlcmN5cmlsbGljPTExOTY7ZS5UZW5yb21hbj04NTUzO2UuVGV0c2VjeXJpbGxpYz0xMjA0O2UuVGhldGE9OTIwO2UuVGhvb2s9NDI4O2UuVGhvcm49MjIyO2UuVGhvcm5zbWFsbD02MzQ4NjtlLlRocmVlcm9tYW49ODU0NjtlLlRpbGRlc21hbGw9NjMyMzA7ZS5UaXduYXJtZW5pYW49MTM1OTtlLlRsaW5lYmVsb3c9Nzc5MDtlLlRtb25vc3BhY2U9NjUzMzI7ZS5Ub2FybWVuaWFuPTEzMzc7ZS5Ub25lZml2ZT00NDQ7ZS5Ub25lc2l4PTM4ODtlLlRvbmV0d289NDIzO2UuVHJldHJvZmxleGhvb2s9NDMwO2UuVHNlY3lyaWxsaWM9MTA2MjtlLlRzaGVjeXJpbGxpYz0xMDM1O2UuVHNtYWxsPTYzMzQ4O2UuVHdlbHZlcm9tYW49ODU1NTtlLlR3b3JvbWFuPTg1NDU7ZS5VPTg1O2UuVWFjdXRlPTIxODtlLlVhY3V0ZXNtYWxsPTYzNDgyO2UuVWJyZXZlPTM2NDtlLlVjYXJvbj00Njc7ZS5VY2lyY2xlPTk0MTg7ZS5VY2lyY3VtZmxleD0yMTk7ZS5VY2lyY3VtZmxleGJlbG93PTc3OTg7ZS5VY2lyY3VtZmxleHNtYWxsPTYzNDgzO2UuVWN5cmlsbGljPTEwNTk7ZS5VZGJsYWN1dGU9MzY4O2UuVWRibGdyYXZlPTUzMjtlLlVkaWVyZXNpcz0yMjA7ZS5VZGllcmVzaXNhY3V0ZT00NzE7ZS5VZGllcmVzaXNiZWxvdz03Nzk0O2UuVWRpZXJlc2lzY2Fyb249NDczO2UuVWRpZXJlc2lzY3lyaWxsaWM9MTI2NDtlLlVkaWVyZXNpc2dyYXZlPTQ3NTtlLlVkaWVyZXNpc21hY3Jvbj00Njk7ZS5VZGllcmVzaXNzbWFsbD02MzQ4NDtlLlVkb3RiZWxvdz03OTA4O2UuVWdyYXZlPTIxNztlLlVncmF2ZXNtYWxsPTYzNDgxO2UuVWhvb2thYm92ZT03OTEwO2UuVWhvcm49NDMxO2UuVWhvcm5hY3V0ZT03OTEyO2UuVWhvcm5kb3RiZWxvdz03OTIwO2UuVWhvcm5ncmF2ZT03OTE0O2UuVWhvcm5ob29rYWJvdmU9NzkxNjtlLlVob3JudGlsZGU9NzkxODtlLlVodW5nYXJ1bWxhdXQ9MzY4O2UuVWh1bmdhcnVtbGF1dGN5cmlsbGljPTEyNjY7ZS5VaW52ZXJ0ZWRicmV2ZT01MzQ7ZS5Va2N5cmlsbGljPTExNDQ7ZS5VbWFjcm9uPTM2MjtlLlVtYWNyb25jeXJpbGxpYz0xMjYyO2UuVW1hY3JvbmRpZXJlc2lzPTc4MDI7ZS5VbW9ub3NwYWNlPTY1MzMzO2UuVW9nb25laz0zNzA7ZS5VcHNpbG9uPTkzMztlLlVwc2lsb24xPTk3ODtlLlVwc2lsb25hY3V0ZWhvb2tzeW1ib2xncmVlaz05Nzk7ZS5VcHNpbG9uYWZyaWNhbj00MzM7ZS5VcHNpbG9uZGllcmVzaXM9OTM5O2UuVXBzaWxvbmRpZXJlc2lzaG9va3N5bWJvbGdyZWVrPTk4MDtlLlVwc2lsb25ob29rc3ltYm9sPTk3ODtlLlVwc2lsb250b25vcz05MTA7ZS5VcmluZz0zNjY7ZS5Vc2hvcnRjeXJpbGxpYz0xMDM4O2UuVXNtYWxsPTYzMzQ5O2UuVXN0cmFpZ2h0Y3lyaWxsaWM9MTE5ODtlLlVzdHJhaWdodHN0cm9rZWN5cmlsbGljPTEyMDA7ZS5VdGlsZGU9MzYwO2UuVXRpbGRlYWN1dGU9NzgwMDtlLlV0aWxkZWJlbG93PTc3OTY7ZS5WPTg2O2UuVmNpcmNsZT05NDE5O2UuVmRvdGJlbG93PTc4MDY7ZS5WZWN5cmlsbGljPTEwNDI7ZS5WZXdhcm1lbmlhbj0xMzU4O2UuVmhvb2s9NDM0O2UuVm1vbm9zcGFjZT02NTMzNDtlLlZvYXJtZW5pYW49MTM1MjtlLlZzbWFsbD02MzM1MDtlLlZ0aWxkZT03ODA0O2UuVz04NztlLldhY3V0ZT03ODEwO2UuV2NpcmNsZT05NDIwO2UuV2NpcmN1bWZsZXg9MzcyO2UuV2RpZXJlc2lzPTc4MTI7ZS5XZG90YWNjZW50PTc4MTQ7ZS5XZG90YmVsb3c9NzgxNjtlLldncmF2ZT03ODA4O2UuV21vbm9zcGFjZT02NTMzNTtlLldzbWFsbD02MzM1MTtlLlg9ODg7ZS5YY2lyY2xlPTk0MjE7ZS5YZGllcmVzaXM9NzgyMDtlLlhkb3RhY2NlbnQ9NzgxODtlLlhlaGFybWVuaWFuPTEzNDE7ZS5YaT05MjY7ZS5YbW9ub3NwYWNlPTY1MzM2O2UuWHNtYWxsPTYzMzUyO2UuWT04OTtlLllhY3V0ZT0yMjE7ZS5ZYWN1dGVzbWFsbD02MzQ4NTtlLllhdGN5cmlsbGljPTExMjI7ZS5ZY2lyY2xlPTk0MjI7ZS5ZY2lyY3VtZmxleD0zNzQ7ZS5ZZGllcmVzaXM9Mzc2O2UuWWRpZXJlc2lzc21hbGw9NjM0ODc7ZS5ZZG90YWNjZW50PTc4MjI7ZS5ZZG90YmVsb3c9NzkyNDtlLlllcmljeXJpbGxpYz0xMDY3O2UuWWVydWRpZXJlc2lzY3lyaWxsaWM9MTI3MjtlLllncmF2ZT03OTIyO2UuWWhvb2s9NDM1O2UuWWhvb2thYm92ZT03OTI2O2UuWWlhcm1lbmlhbj0xMzQ5O2UuWWljeXJpbGxpYz0xMDMxO2UuWWl3bmFybWVuaWFuPTEzNjI7ZS5ZbW9ub3NwYWNlPTY1MzM3O2UuWXNtYWxsPTYzMzUzO2UuWXRpbGRlPTc5Mjg7ZS5ZdXNiaWdjeXJpbGxpYz0xMTMwO2UuWXVzYmlnaW90aWZpZWRjeXJpbGxpYz0xMTMyO2UuWXVzbGl0dGxlY3lyaWxsaWM9MTEyNjtlLll1c2xpdHRsZWlvdGlmaWVkY3lyaWxsaWM9MTEyODtlLlo9OTA7ZS5aYWFybWVuaWFuPTEzMzQ7ZS5aYWN1dGU9Mzc3O2UuWmNhcm9uPTM4MTtlLlpjYXJvbnNtYWxsPTYzMjMxO2UuWmNpcmNsZT05NDIzO2UuWmNpcmN1bWZsZXg9NzgyNDtlLlpkb3Q9Mzc5O2UuWmRvdGFjY2VudD0zNzk7ZS5aZG90YmVsb3c9NzgyNjtlLlplY3lyaWxsaWM9MTA0NztlLlplZGVzY2VuZGVyY3lyaWxsaWM9MTE3NjtlLlplZGllcmVzaXNjeXJpbGxpYz0xMjQ2O2UuWmV0YT05MTg7ZS5aaGVhcm1lbmlhbj0xMzM4O2UuWmhlYnJldmVjeXJpbGxpYz0xMjE3O2UuWmhlY3lyaWxsaWM9MTA0NjtlLlpoZWRlc2NlbmRlcmN5cmlsbGljPTExNzQ7ZS5aaGVkaWVyZXNpc2N5cmlsbGljPTEyNDQ7ZS5abGluZWJlbG93PTc4Mjg7ZS5abW9ub3NwYWNlPTY1MzM4O2UuWnNtYWxsPTYzMzU0O2UuWnN0cm9rZT00Mzc7ZS5hPTk3O2UuYWFiZW5nYWxpPTI0Mzg7ZS5hYWN1dGU9MjI1O2UuYWFkZXZhPTIzMTA7ZS5hYWd1amFyYXRpPTI2OTQ7ZS5hYWd1cm11a2hpPTI1NjY7ZS5hYW1hdHJhZ3VybXVraGk9MjYyMjtlLmFhcnVzcXVhcmU9MTMwNTk7ZS5hYXZvd2Vsc2lnbmJlbmdhbGk9MjQ5NDtlLmFhdm93ZWxzaWduZGV2YT0yMzY2O2UuYWF2b3dlbHNpZ25ndWphcmF0aT0yNzUwO2UuYWJicmV2aWF0aW9ubWFya2FybWVuaWFuPTEzNzU7ZS5hYmJyZXZpYXRpb25zaWduZGV2YT0yNDE2O2UuYWJlbmdhbGk9MjQzNztlLmFib3BvbW9mbz0xMjU3MDtlLmFicmV2ZT0yNTk7ZS5hYnJldmVhY3V0ZT03ODU1O2UuYWJyZXZlY3lyaWxsaWM9MTIzMztlLmFicmV2ZWRvdGJlbG93PTc4NjM7ZS5hYnJldmVncmF2ZT03ODU3O2UuYWJyZXZlaG9va2Fib3ZlPTc4NTk7ZS5hYnJldmV0aWxkZT03ODYxO2UuYWNhcm9uPTQ2MjtlLmFjaXJjbGU9OTQyNDtlLmFjaXJjdW1mbGV4PTIyNjtlLmFjaXJjdW1mbGV4YWN1dGU9Nzg0NTtlLmFjaXJjdW1mbGV4ZG90YmVsb3c9Nzg1MztlLmFjaXJjdW1mbGV4Z3JhdmU9Nzg0NztlLmFjaXJjdW1mbGV4aG9va2Fib3ZlPTc4NDk7ZS5hY2lyY3VtZmxleHRpbGRlPTc4NTE7ZS5hY3V0ZT0xODA7ZS5hY3V0ZWJlbG93Y21iPTc5MTtlLmFjdXRlY21iPTc2OTtlLmFjdXRlY29tYj03Njk7ZS5hY3V0ZWRldmE9MjM4ODtlLmFjdXRlbG93bW9kPTcxOTtlLmFjdXRldG9uZWNtYj04MzM7ZS5hY3lyaWxsaWM9MTA3MjtlLmFkYmxncmF2ZT01MTM7ZS5hZGRha2d1cm11a2hpPTI2NzM7ZS5hZGV2YT0yMzA5O2UuYWRpZXJlc2lzPTIyODtlLmFkaWVyZXNpc2N5cmlsbGljPTEyMzU7ZS5hZGllcmVzaXNtYWNyb249NDc5O2UuYWRvdGJlbG93PTc4NDE7ZS5hZG90bWFjcm9uPTQ4MTtlLmFlPTIzMDtlLmFlYWN1dGU9NTA5O2UuYWVrb3JlYW49MTI2MjQ7ZS5hZW1hY3Jvbj00ODM7ZS5hZmlpMDAyMDg9ODIxMztlLmFmaWkwODk0MT04MzU2O2UuYWZpaTEwMDE3PTEwNDA7ZS5hZmlpMTAwMTg9MTA0MTtlLmFmaWkxMDAxOT0xMDQyO2UuYWZpaTEwMDIwPTEwNDM7ZS5hZmlpMTAwMjE9MTA0NDtlLmFmaWkxMDAyMj0xMDQ1O2UuYWZpaTEwMDIzPTEwMjU7ZS5hZmlpMTAwMjQ9MTA0NjtlLmFmaWkxMDAyNT0xMDQ3O2UuYWZpaTEwMDI2PTEwNDg7ZS5hZmlpMTAwMjc9MTA0OTtlLmFmaWkxMDAyOD0xMDUwO2UuYWZpaTEwMDI5PTEwNTE7ZS5hZmlpMTAwMzA9MTA1MjtlLmFmaWkxMDAzMT0xMDUzO2UuYWZpaTEwMDMyPTEwNTQ7ZS5hZmlpMTAwMzM9MTA1NTtlLmFmaWkxMDAzND0xMDU2O2UuYWZpaTEwMDM1PTEwNTc7ZS5hZmlpMTAwMzY9MTA1ODtlLmFmaWkxMDAzNz0xMDU5O2UuYWZpaTEwMDM4PTEwNjA7ZS5hZmlpMTAwMzk9MTA2MTtlLmFmaWkxMDA0MD0xMDYyO2UuYWZpaTEwMDQxPTEwNjM7ZS5hZmlpMTAwNDI9MTA2NDtlLmFmaWkxMDA0Mz0xMDY1O2UuYWZpaTEwMDQ0PTEwNjY7ZS5hZmlpMTAwNDU9MTA2NztlLmFmaWkxMDA0Nj0xMDY4O2UuYWZpaTEwMDQ3PTEwNjk7ZS5hZmlpMTAwNDg9MTA3MDtlLmFmaWkxMDA0OT0xMDcxO2UuYWZpaTEwMDUwPTExNjg7ZS5hZmlpMTAwNTE9MTAyNjtlLmFmaWkxMDA1Mj0xMDI3O2UuYWZpaTEwMDUzPTEwMjg7ZS5hZmlpMTAwNTQ9MTAyOTtlLmFmaWkxMDA1NT0xMDMwO2UuYWZpaTEwMDU2PTEwMzE7ZS5hZmlpMTAwNTc9MTAzMjtlLmFmaWkxMDA1OD0xMDMzO2UuYWZpaTEwMDU5PTEwMzQ7ZS5hZmlpMTAwNjA9MTAzNTtlLmFmaWkxMDA2MT0xMDM2O2UuYWZpaTEwMDYyPTEwMzg7ZS5hZmlpMTAwNjM9NjMxNzI7ZS5hZmlpMTAwNjQ9NjMxNzM7ZS5hZmlpMTAwNjU9MTA3MjtlLmFmaWkxMDA2Nj0xMDczO2UuYWZpaTEwMDY3PTEwNzQ7ZS5hZmlpMTAwNjg9MTA3NTtlLmFmaWkxMDA2OT0xMDc2O2UuYWZpaTEwMDcwPTEwNzc7ZS5hZmlpMTAwNzE9MTEwNTtlLmFmaWkxMDA3Mj0xMDc4O2UuYWZpaTEwMDczPTEwNzk7ZS5hZmlpMTAwNzQ9MTA4MDtlLmFmaWkxMDA3NT0xMDgxO2UuYWZpaTEwMDc2PTEwODI7ZS5hZmlpMTAwNzc9MTA4MztlLmFmaWkxMDA3OD0xMDg0O2UuYWZpaTEwMDc5PTEwODU7ZS5hZmlpMTAwODA9MTA4NjtlLmFmaWkxMDA4MT0xMDg3O2UuYWZpaTEwMDgyPTEwODg7ZS5hZmlpMTAwODM9MTA4OTtlLmFmaWkxMDA4ND0xMDkwO2UuYWZpaTEwMDg1PTEwOTE7ZS5hZmlpMTAwODY9MTA5MjtlLmFmaWkxMDA4Nz0xMDkzO2UuYWZpaTEwMDg4PTEwOTQ7ZS5hZmlpMTAwODk9MTA5NTtlLmFmaWkxMDA5MD0xMDk2O2UuYWZpaTEwMDkxPTEwOTc7ZS5hZmlpMTAwOTI9MTA5ODtlLmFmaWkxMDA5Mz0xMDk5O2UuYWZpaTEwMDk0PTExMDA7ZS5hZmlpMTAwOTU9MTEwMTtlLmFmaWkxMDA5Nj0xMTAyO2UuYWZpaTEwMDk3PTExMDM7ZS5hZmlpMTAwOTg9MTE2OTtlLmFmaWkxMDA5OT0xMTA2O2UuYWZpaTEwMTAwPTExMDc7ZS5hZmlpMTAxMDE9MTEwODtlLmFmaWkxMDEwMj0xMTA5O2UuYWZpaTEwMTAzPTExMTA7ZS5hZmlpMTAxMDQ9MTExMTtlLmFmaWkxMDEwNT0xMTEyO2UuYWZpaTEwMTA2PTExMTM7ZS5hZmlpMTAxMDc9MTExNDtlLmFmaWkxMDEwOD0xMTE1O2UuYWZpaTEwMTA5PTExMTY7ZS5hZmlpMTAxMTA9MTExODtlLmFmaWkxMDE0NT0xMDM5O2UuYWZpaTEwMTQ2PTExMjI7ZS5hZmlpMTAxNDc9MTEzODtlLmFmaWkxMDE0OD0xMTQwO2UuYWZpaTEwMTkyPTYzMTc0O2UuYWZpaTEwMTkzPTExMTk7ZS5hZmlpMTAxOTQ9MTEyMztlLmFmaWkxMDE5NT0xMTM5O2UuYWZpaTEwMTk2PTExNDE7ZS5hZmlpMTA4MzE9NjMxNzU7ZS5hZmlpMTA4MzI9NjMxNzY7ZS5hZmlpMTA4NDY9MTI0MTtlLmFmaWkyOTk9ODIwNjtlLmFmaWkzMDA9ODIwNztlLmFmaWkzMDE9ODIwNTtlLmFmaWk1NzM4MT0xNjQyO2UuYWZpaTU3Mzg4PTE1NDg7ZS5hZmlpNTczOTI9MTYzMjtlLmFmaWk1NzM5Mz0xNjMzO2UuYWZpaTU3Mzk0PTE2MzQ7ZS5hZmlpNTczOTU9MTYzNTtlLmFmaWk1NzM5Nj0xNjM2O2UuYWZpaTU3Mzk3PTE2Mzc7ZS5hZmlpNTczOTg9MTYzODtlLmFmaWk1NzM5OT0xNjM5O2UuYWZpaTU3NDAwPTE2NDA7ZS5hZmlpNTc0MDE9MTY0MTtlLmFmaWk1NzQwMz0xNTYzO2UuYWZpaTU3NDA3PTE1Njc7ZS5hZmlpNTc0MDk9MTU2OTtlLmFmaWk1NzQxMD0xNTcwO2UuYWZpaTU3NDExPTE1NzE7ZS5hZmlpNTc0MTI9MTU3MjtlLmFmaWk1NzQxMz0xNTczO2UuYWZpaTU3NDE0PTE1NzQ7ZS5hZmlpNTc0MTU9MTU3NTtlLmFmaWk1NzQxNj0xNTc2O2UuYWZpaTU3NDE3PTE1Nzc7ZS5hZmlpNTc0MTg9MTU3ODtlLmFmaWk1NzQxOT0xNTc5O2UuYWZpaTU3NDIwPTE1ODA7ZS5hZmlpNTc0MjE9MTU4MTtlLmFmaWk1NzQyMj0xNTgyO2UuYWZpaTU3NDIzPTE1ODM7ZS5hZmlpNTc0MjQ9MTU4NDtlLmFmaWk1NzQyNT0xNTg1O2UuYWZpaTU3NDI2PTE1ODY7ZS5hZmlpNTc0Mjc9MTU4NztlLmFmaWk1NzQyOD0xNTg4O2UuYWZpaTU3NDI5PTE1ODk7ZS5hZmlpNTc0MzA9MTU5MDtlLmFmaWk1NzQzMT0xNTkxO2UuYWZpaTU3NDMyPTE1OTI7ZS5hZmlpNTc0MzM9MTU5MztlLmFmaWk1NzQzND0xNTk0O2UuYWZpaTU3NDQwPTE2MDA7ZS5hZmlpNTc0NDE9MTYwMTtlLmFmaWk1NzQ0Mj0xNjAyO2UuYWZpaTU3NDQzPTE2MDM7ZS5hZmlpNTc0NDQ9MTYwNDtlLmFmaWk1NzQ0NT0xNjA1O2UuYWZpaTU3NDQ2PTE2MDY7ZS5hZmlpNTc0NDg9MTYwODtlLmFmaWk1NzQ0OT0xNjA5O2UuYWZpaTU3NDUwPTE2MTA7ZS5hZmlpNTc0NTE9MTYxMTtlLmFmaWk1NzQ1Mj0xNjEyO2UuYWZpaTU3NDUzPTE2MTM7ZS5hZmlpNTc0NTQ9MTYxNDtlLmFmaWk1NzQ1NT0xNjE1O2UuYWZpaTU3NDU2PTE2MTY7ZS5hZmlpNTc0NTc9MTYxNztlLmFmaWk1NzQ1OD0xNjE4O2UuYWZpaTU3NDcwPTE2MDc7ZS5hZmlpNTc1MDU9MTcwMDtlLmFmaWk1NzUwNj0xNjYyO2UuYWZpaTU3NTA3PTE2NzA7ZS5hZmlpNTc1MDg9MTY4ODtlLmFmaWk1NzUwOT0xNzExO2UuYWZpaTU3NTExPTE2NTc7ZS5hZmlpNTc1MTI9MTY3MjtlLmFmaWk1NzUxMz0xNjgxO2UuYWZpaTU3NTE0PTE3MjI7ZS5hZmlpNTc1MTk9MTc0NjtlLmFmaWk1NzUzND0xNzQ5O2UuYWZpaTU3NjM2PTgzNjI7ZS5hZmlpNTc2NDU9MTQ3MDtlLmFmaWk1NzY1OD0xNDc1O2UuYWZpaTU3NjY0PTE0ODg7ZS5hZmlpNTc2NjU9MTQ4OTtlLmFmaWk1NzY2Nj0xNDkwO2UuYWZpaTU3NjY3PTE0OTE7ZS5hZmlpNTc2Njg9MTQ5MjtlLmFmaWk1NzY2OT0xNDkzO2UuYWZpaTU3NjcwPTE0OTQ7ZS5hZmlpNTc2NzE9MTQ5NTtlLmFmaWk1NzY3Mj0xNDk2O2UuYWZpaTU3NjczPTE0OTc7ZS5hZmlpNTc2NzQ9MTQ5ODtlLmFmaWk1NzY3NT0xNDk5O2UuYWZpaTU3Njc2PTE1MDA7ZS5hZmlpNTc2Nzc9MTUwMTtlLmFmaWk1NzY3OD0xNTAyO2UuYWZpaTU3Njc5PTE1MDM7ZS5hZmlpNTc2ODA9MTUwNDtlLmFmaWk1NzY4MT0xNTA1O2UuYWZpaTU3NjgyPTE1MDY7ZS5hZmlpNTc2ODM9MTUwNztlLmFmaWk1NzY4ND0xNTA4O2UuYWZpaTU3Njg1PTE1MDk7ZS5hZmlpNTc2ODY9MTUxMDtlLmFmaWk1NzY4Nz0xNTExO2UuYWZpaTU3Njg4PTE1MTI7ZS5hZmlpNTc2ODk9MTUxMztlLmFmaWk1NzY5MD0xNTE0O2UuYWZpaTU3Njk0PTY0Mjk4O2UuYWZpaTU3Njk1PTY0Mjk5O2UuYWZpaTU3NzAwPTY0MzMxO2UuYWZpaTU3NzA1PTY0Mjg3O2UuYWZpaTU3NzE2PTE1MjA7ZS5hZmlpNTc3MTc9MTUyMTtlLmFmaWk1NzcxOD0xNTIyO2UuYWZpaTU3NzIzPTY0MzA5O2UuYWZpaTU3NzkzPTE0NjA7ZS5hZmlpNTc3OTQ9MTQ2MTtlLmFmaWk1Nzc5NT0xNDYyO2UuYWZpaTU3Nzk2PTE0Njc7ZS5hZmlpNTc3OTc9MTQ2NDtlLmFmaWk1Nzc5OD0xNDYzO2UuYWZpaTU3Nzk5PTE0NTY7ZS5hZmlpNTc4MDA9MTQ1ODtlLmFmaWk1NzgwMT0xNDU3O2UuYWZpaTU3ODAyPTE0NTk7ZS5hZmlpNTc4MDM9MTQ3NDtlLmFmaWk1NzgwND0xNDczO2UuYWZpaTU3ODA2PTE0NjU7ZS5hZmlpNTc4MDc9MTQ2ODtlLmFmaWk1NzgzOT0xNDY5O2UuYWZpaTU3ODQxPTE0NzE7ZS5hZmlpNTc4NDI9MTQ3MjtlLmFmaWk1NzkyOT03MDA7ZS5hZmlpNjEyNDg9ODQ1MztlLmFmaWk2MTI4OT04NDY3O2UuYWZpaTYxMzUyPTg0NzA7ZS5hZmlpNjE1NzM9ODIzNjtlLmFmaWk2MTU3ND04MjM3O2UuYWZpaTYxNTc1PTgyMzg7ZS5hZmlpNjE2NjQ9ODIwNDtlLmFmaWk2MzE2Nz0xNjQ1O2UuYWZpaTY0OTM3PTcwMTtlLmFncmF2ZT0yMjQ7ZS5hZ3VqYXJhdGk9MjY5MztlLmFndXJtdWtoaT0yNTY1O2UuYWhpcmFnYW5hPTEyMzU0O2UuYWhvb2thYm92ZT03ODQzO2UuYWliZW5nYWxpPTI0NDg7ZS5haWJvcG9tb2ZvPTEyNTc0O2UuYWlkZXZhPTIzMjA7ZS5haWVjeXJpbGxpYz0xMjM3O2UuYWlndWphcmF0aT0yNzA0O2UuYWlndXJtdWtoaT0yNTc2O2UuYWltYXRyYWd1cm11a2hpPTI2MzI7ZS5haW5hcmFiaWM9MTU5MztlLmFpbmZpbmFsYXJhYmljPTY1MjI2O2UuYWluaW5pdGlhbGFyYWJpYz02NTIyNztlLmFpbm1lZGlhbGFyYWJpYz02NTIyODtlLmFpbnZlcnRlZGJyZXZlPTUxNTtlLmFpdm93ZWxzaWduYmVuZ2FsaT0yNTA0O2UuYWl2b3dlbHNpZ25kZXZhPTIzNzY7ZS5haXZvd2Vsc2lnbmd1amFyYXRpPTI3NjA7ZS5ha2F0YWthbmE9MTI0NTA7ZS5ha2F0YWthbmFoYWxmd2lkdGg9NjUzOTM7ZS5ha29yZWFuPTEyNjIzO2UuYWxlZj0xNDg4O2UuYWxlZmFyYWJpYz0xNTc1O2UuYWxlZmRhZ2VzaGhlYnJldz02NDMwNDtlLmFsZWZmaW5hbGFyYWJpYz02NTE2NjtlLmFsZWZoYW16YWFib3ZlYXJhYmljPTE1NzE7ZS5hbGVmaGFtemFhYm92ZWZpbmFsYXJhYmljPTY1MTU2O2UuYWxlZmhhbXphYmVsb3dhcmFiaWM9MTU3MztlLmFsZWZoYW16YWJlbG93ZmluYWxhcmFiaWM9NjUxNjA7ZS5hbGVmaGVicmV3PTE0ODg7ZS5hbGVmbGFtZWRoZWJyZXc9NjQzMzU7ZS5hbGVmbWFkZGFhYm92ZWFyYWJpYz0xNTcwO2UuYWxlZm1hZGRhYWJvdmVmaW5hbGFyYWJpYz02NTE1NDtlLmFsZWZtYWtzdXJhYXJhYmljPTE2MDk7ZS5hbGVmbWFrc3VyYWZpbmFsYXJhYmljPTY1MjY0O2UuYWxlZm1ha3N1cmFpbml0aWFsYXJhYmljPTY1MjY3O2UuYWxlZm1ha3N1cmFtZWRpYWxhcmFiaWM9NjUyNjg7ZS5hbGVmcGF0YWhoZWJyZXc9NjQzMDI7ZS5hbGVmcWFtYXRzaGVicmV3PTY0MzAzO2UuYWxlcGg9ODUwMTtlLmFsbGVxdWFsPTg3ODA7ZS5hbHBoYT05NDU7ZS5hbHBoYXRvbm9zPTk0MDtlLmFtYWNyb249MjU3O2UuYW1vbm9zcGFjZT02NTM0NTtlLmFtcGVyc2FuZD0zODtlLmFtcGVyc2FuZG1vbm9zcGFjZT02NTI4NjtlLmFtcGVyc2FuZHNtYWxsPTYzMjcwO2UuYW1zcXVhcmU9MTMyNTA7ZS5hbmJvcG9tb2ZvPTEyNTc4O2UuYW5nYm9wb21vZm89MTI1ODA7ZS5hbmdicmFja2V0bGVmdD0xMjI5NjtlLmFuZ2JyYWNrZXRyaWdodD0xMjI5NztlLmFuZ2toYW5raHV0aGFpPTM2NzQ7ZS5hbmdsZT04NzM2O2UuYW5nbGVicmFja2V0bGVmdD0xMjI5NjtlLmFuZ2xlYnJhY2tldGxlZnR2ZXJ0aWNhbD02NTA4NztlLmFuZ2xlYnJhY2tldHJpZ2h0PTEyMjk3O2UuYW5nbGVicmFja2V0cmlnaHR2ZXJ0aWNhbD02NTA4ODtlLmFuZ2xlbGVmdD05MDAxO2UuYW5nbGVyaWdodD05MDAyO2UuYW5nc3Ryb209ODQ5MTtlLmFub3RlbGVpYT05MDM7ZS5hbnVkYXR0YWRldmE9MjM4NjtlLmFudXN2YXJhYmVuZ2FsaT0yNDM0O2UuYW51c3ZhcmFkZXZhPTIzMDY7ZS5hbnVzdmFyYWd1amFyYXRpPTI2OTA7ZS5hb2dvbmVrPTI2MTtlLmFwYWF0b3NxdWFyZT0xMzA1NjtlLmFwYXJlbj05MzcyO2UuYXBvc3Ryb3BoZWFybWVuaWFuPTEzNzA7ZS5hcG9zdHJvcGhlbW9kPTcwMDtlLmFwcGxlPTYzNzQzO2UuYXBwcm9hY2hlcz04Nzg0O2UuYXBwcm94ZXF1YWw9ODc3NjtlLmFwcHJveGVxdWFsb3JpbWFnZT04Nzg2O2UuYXBwcm94aW1hdGVseWVxdWFsPTg3NzM7ZS5hcmFlYWVrb3JlYW49MTI2ODY7ZS5hcmFlYWtvcmVhbj0xMjY4NTtlLmFyYz04OTc4O2UuYXJpZ2h0aGFsZnJpbmc9NzgzNDtlLmFyaW5nPTIyOTtlLmFyaW5nYWN1dGU9NTA3O2UuYXJpbmdiZWxvdz03NjgxO2UuYXJyb3dib3RoPTg1OTY7ZS5hcnJvd2Rhc2hkb3duPTg2NzU7ZS5hcnJvd2Rhc2hsZWZ0PTg2NzI7ZS5hcnJvd2Rhc2hyaWdodD04Njc0O2UuYXJyb3dkYXNodXA9ODY3MztlLmFycm93ZGJsYm90aD04NjYwO2UuYXJyb3dkYmxkb3duPTg2NTk7ZS5hcnJvd2RibGxlZnQ9ODY1NjtlLmFycm93ZGJscmlnaHQ9ODY1ODtlLmFycm93ZGJsdXA9ODY1NztlLmFycm93ZG93bj04NTk1O2UuYXJyb3dkb3dubGVmdD04NjAxO2UuYXJyb3dkb3ducmlnaHQ9ODYwMDtlLmFycm93ZG93bndoaXRlPTg2ODE7ZS5hcnJvd2hlYWRkb3dubW9kPTcwOTtlLmFycm93aGVhZGxlZnRtb2Q9NzA2O2UuYXJyb3doZWFkcmlnaHRtb2Q9NzA3O2UuYXJyb3doZWFkdXBtb2Q9NzA4O2UuYXJyb3dob3JpemV4PTYzNzE5O2UuYXJyb3dsZWZ0PTg1OTI7ZS5hcnJvd2xlZnRkYmw9ODY1NjtlLmFycm93bGVmdGRibHN0cm9rZT04NjUzO2UuYXJyb3dsZWZ0b3ZlcnJpZ2h0PTg2NDY7ZS5hcnJvd2xlZnR3aGl0ZT04Njc4O2UuYXJyb3dyaWdodD04NTk0O2UuYXJyb3dyaWdodGRibHN0cm9rZT04NjU1O2UuYXJyb3dyaWdodGhlYXZ5PTEwMTQyO2UuYXJyb3dyaWdodG92ZXJsZWZ0PTg2NDQ7ZS5hcnJvd3JpZ2h0d2hpdGU9ODY4MDtlLmFycm93dGFibGVmdD04Njc2O2UuYXJyb3d0YWJyaWdodD04Njc3O2UuYXJyb3d1cD04NTkzO2UuYXJyb3d1cGRuPTg1OTc7ZS5hcnJvd3VwZG5ic2U9ODYxNjtlLmFycm93dXBkb3duYmFzZT04NjE2O2UuYXJyb3d1cGxlZnQ9ODU5ODtlLmFycm93dXBsZWZ0b2Zkb3duPTg2NDU7ZS5hcnJvd3VwcmlnaHQ9ODU5OTtlLmFycm93dXB3aGl0ZT04Njc5O2UuYXJyb3d2ZXJ0ZXg9NjM3MTg7ZS5hc2NpaWNpcmN1bT05NDtlLmFzY2lpY2lyY3VtbW9ub3NwYWNlPTY1MzQyO2UuYXNjaWl0aWxkZT0xMjY7ZS5hc2NpaXRpbGRlbW9ub3NwYWNlPTY1Mzc0O2UuYXNjcmlwdD01OTM7ZS5hc2NyaXB0dHVybmVkPTU5NDtlLmFzbWFsbGhpcmFnYW5hPTEyMzUzO2UuYXNtYWxsa2F0YWthbmE9MTI0NDk7ZS5hc21hbGxrYXRha2FuYWhhbGZ3aWR0aD02NTM4MztlLmFzdGVyaXNrPTQyO2UuYXN0ZXJpc2thbHRvbmVhcmFiaWM9MTY0NTtlLmFzdGVyaXNrYXJhYmljPTE2NDU7ZS5hc3Rlcmlza21hdGg9ODcyNztlLmFzdGVyaXNrbW9ub3NwYWNlPTY1MjkwO2UuYXN0ZXJpc2tzbWFsbD02NTEyMTtlLmFzdGVyaXNtPTgyNTg7ZS5hc3VwZXJpb3I9NjMyMDk7ZS5hc3ltcHRvdGljYWxseWVxdWFsPTg3NzE7ZS5hdD02NDtlLmF0aWxkZT0yMjc7ZS5hdG1vbm9zcGFjZT02NTMxMjtlLmF0c21hbGw9NjUxMzE7ZS5hdHVybmVkPTU5MjtlLmF1YmVuZ2FsaT0yNDUyO2UuYXVib3BvbW9mbz0xMjU3NjtlLmF1ZGV2YT0yMzI0O2UuYXVndWphcmF0aT0yNzA4O2UuYXVndXJtdWtoaT0yNTgwO2UuYXVsZW5ndGhtYXJrYmVuZ2FsaT0yNTE5O2UuYXVtYXRyYWd1cm11a2hpPTI2MzY7ZS5hdXZvd2Vsc2lnbmJlbmdhbGk9MjUwODtlLmF1dm93ZWxzaWduZGV2YT0yMzgwO2UuYXV2b3dlbHNpZ25ndWphcmF0aT0yNzY0O2UuYXZhZ3JhaGFkZXZhPTIzNjU7ZS5heWJhcm1lbmlhbj0xMzc3O2UuYXlpbj0xNTA2O2UuYXlpbmFsdG9uZWhlYnJldz02NDI4ODtlLmF5aW5oZWJyZXc9MTUwNjtlLmI9OTg7ZS5iYWJlbmdhbGk9MjQ3NjtlLmJhY2tzbGFzaD05MjtlLmJhY2tzbGFzaG1vbm9zcGFjZT02NTM0MDtlLmJhZGV2YT0yMzQ4O2UuYmFndWphcmF0aT0yNzMyO2UuYmFndXJtdWtoaT0yNjA0O2UuYmFoaXJhZ2FuYT0xMjQwMDtlLmJhaHR0aGFpPTM2NDc7ZS5iYWthdGFrYW5hPTEyNDk2O2UuYmFyPTEyNDtlLmJhcm1vbm9zcGFjZT02NTM3MjtlLmJib3BvbW9mbz0xMjU0OTtlLmJjaXJjbGU9OTQyNTtlLmJkb3RhY2NlbnQ9NzY4MztlLmJkb3RiZWxvdz03Njg1O2UuYmVhbWVkc2l4dGVlbnRobm90ZXM9OTgzNjtlLmJlY2F1c2U9ODc1NztlLmJlY3lyaWxsaWM9MTA3MztlLmJlaGFyYWJpYz0xNTc2O2UuYmVoZmluYWxhcmFiaWM9NjUxNjg7ZS5iZWhpbml0aWFsYXJhYmljPTY1MTY5O2UuYmVoaXJhZ2FuYT0xMjQwOTtlLmJlaG1lZGlhbGFyYWJpYz02NTE3MDtlLmJlaG1lZW1pbml0aWFsYXJhYmljPTY0NjcxO2UuYmVobWVlbWlzb2xhdGVkYXJhYmljPTY0NTIwO2UuYmVobm9vbmZpbmFsYXJhYmljPTY0NjIxO2UuYmVrYXRha2FuYT0xMjUwNTtlLmJlbmFybWVuaWFuPTEzNzg7ZS5iZXQ9MTQ4OTtlLmJldGE9OTQ2O2UuYmV0YXN5bWJvbGdyZWVrPTk3NjtlLmJldGRhZ2VzaD02NDMwNTtlLmJldGRhZ2VzaGhlYnJldz02NDMwNTtlLmJldGhlYnJldz0xNDg5O2UuYmV0cmFmZWhlYnJldz02NDMzMjtlLmJoYWJlbmdhbGk9MjQ3NztlLmJoYWRldmE9MjM0OTtlLmJoYWd1amFyYXRpPTI3MzM7ZS5iaGFndXJtdWtoaT0yNjA1O2UuYmhvb2s9NTk1O2UuYmloaXJhZ2FuYT0xMjQwMztlLmJpa2F0YWthbmE9MTI0OTk7ZS5iaWxhYmlhbGNsaWNrPTY2NDtlLmJpbmRpZ3VybXVraGk9MjU2MjtlLmJpcnVzcXVhcmU9MTMxMDU7ZS5ibGFja2NpcmNsZT05Njc5O2UuYmxhY2tkaWFtb25kPTk2NzA7ZS5ibGFja2Rvd25wb2ludGluZ3RyaWFuZ2xlPTk2NjA7ZS5ibGFja2xlZnRwb2ludGluZ3BvaW50ZXI9OTY2ODtlLmJsYWNrbGVmdHBvaW50aW5ndHJpYW5nbGU9OTY2NDtlLmJsYWNrbGVudGljdWxhcmJyYWNrZXRsZWZ0PTEyMzA0O2UuYmxhY2tsZW50aWN1bGFyYnJhY2tldGxlZnR2ZXJ0aWNhbD02NTA4MztlLmJsYWNrbGVudGljdWxhcmJyYWNrZXRyaWdodD0xMjMwNTtlLmJsYWNrbGVudGljdWxhcmJyYWNrZXRyaWdodHZlcnRpY2FsPTY1MDg0O2UuYmxhY2tsb3dlcmxlZnR0cmlhbmdsZT05Njk5O2UuYmxhY2tsb3dlcnJpZ2h0dHJpYW5nbGU9OTY5ODtlLmJsYWNrcmVjdGFuZ2xlPTk2NDQ7ZS5ibGFja3JpZ2h0cG9pbnRpbmdwb2ludGVyPTk2NTg7ZS5ibGFja3JpZ2h0cG9pbnRpbmd0cmlhbmdsZT05NjU0O2UuYmxhY2tzbWFsbHNxdWFyZT05NjQyO2UuYmxhY2tzbWlsaW5nZmFjZT05Nzg3O2UuYmxhY2tzcXVhcmU9OTYzMjtlLmJsYWNrc3Rhcj05NzMzO2UuYmxhY2t1cHBlcmxlZnR0cmlhbmdsZT05NzAwO2UuYmxhY2t1cHBlcnJpZ2h0dHJpYW5nbGU9OTcwMTtlLmJsYWNrdXBwb2ludGluZ3NtYWxsdHJpYW5nbGU9OTY1MjtlLmJsYWNrdXBwb2ludGluZ3RyaWFuZ2xlPTk2NTA7ZS5ibGFuaz05MjUxO2UuYmxpbmViZWxvdz03Njg3O2UuYmxvY2s9OTYwODtlLmJtb25vc3BhY2U9NjUzNDY7ZS5ib2JhaW1haXRoYWk9MzYxMDtlLmJvaGlyYWdhbmE9MTI0MTI7ZS5ib2thdGFrYW5hPTEyNTA4O2UuYnBhcmVuPTkzNzM7ZS5icXNxdWFyZT0xMzI1MTtlLmJyYWNlZXg9NjM3MzI7ZS5icmFjZWxlZnQ9MTIzO2UuYnJhY2VsZWZ0YnQ9NjM3MzE7ZS5icmFjZWxlZnRtaWQ9NjM3MzA7ZS5icmFjZWxlZnRtb25vc3BhY2U9NjUzNzE7ZS5icmFjZWxlZnRzbWFsbD02NTExNTtlLmJyYWNlbGVmdHRwPTYzNzI5O2UuYnJhY2VsZWZ0dmVydGljYWw9NjUwNzk7ZS5icmFjZXJpZ2h0PTEyNTtlLmJyYWNlcmlnaHRidD02Mzc0MjtlLmJyYWNlcmlnaHRtaWQ9NjM3NDE7ZS5icmFjZXJpZ2h0bW9ub3NwYWNlPTY1MzczO2UuYnJhY2VyaWdodHNtYWxsPTY1MTE2O2UuYnJhY2VyaWdodHRwPTYzNzQwO2UuYnJhY2VyaWdodHZlcnRpY2FsPTY1MDgwO2UuYnJhY2tldGxlZnQ9OTE7ZS5icmFja2V0bGVmdGJ0PTYzNzI4O2UuYnJhY2tldGxlZnRleD02MzcyNztlLmJyYWNrZXRsZWZ0bW9ub3NwYWNlPTY1MzM5O2UuYnJhY2tldGxlZnR0cD02MzcyNjtlLmJyYWNrZXRyaWdodD05MztlLmJyYWNrZXRyaWdodGJ0PTYzNzM5O2UuYnJhY2tldHJpZ2h0ZXg9NjM3Mzg7ZS5icmFja2V0cmlnaHRtb25vc3BhY2U9NjUzNDE7ZS5icmFja2V0cmlnaHR0cD02MzczNztlLmJyZXZlPTcyODtlLmJyZXZlYmVsb3djbWI9ODE0O2UuYnJldmVjbWI9Nzc0O2UuYnJldmVpbnZlcnRlZGJlbG93Y21iPTgxNTtlLmJyZXZlaW52ZXJ0ZWRjbWI9Nzg1O2UuYnJldmVpbnZlcnRlZGRvdWJsZWNtYj04NjU7ZS5icmlkZ2ViZWxvd2NtYj04MTA7ZS5icmlkZ2VpbnZlcnRlZGJlbG93Y21iPTgyNjtlLmJyb2tlbmJhcj0xNjY7ZS5ic3Ryb2tlPTM4NDtlLmJzdXBlcmlvcj02MzIxMDtlLmJ0b3BiYXI9Mzg3O2UuYnVoaXJhZ2FuYT0xMjQwNjtlLmJ1a2F0YWthbmE9MTI1MDI7ZS5idWxsZXQ9ODIyNjtlLmJ1bGxldGludmVyc2U9OTY4ODtlLmJ1bGxldG9wZXJhdG9yPTg3Mjk7ZS5idWxsc2V5ZT05Njc4O2UuYz05OTtlLmNhYXJtZW5pYW49MTM5MDtlLmNhYmVuZ2FsaT0yNDU4O2UuY2FjdXRlPTI2MztlLmNhZGV2YT0yMzMwO2UuY2FndWphcmF0aT0yNzE0O2UuY2FndXJtdWtoaT0yNTg2O2UuY2Fsc3F1YXJlPTEzMTkyO2UuY2FuZHJhYmluZHViZW5nYWxpPTI0MzM7ZS5jYW5kcmFiaW5kdWNtYj03ODQ7ZS5jYW5kcmFiaW5kdWRldmE9MjMwNTtlLmNhbmRyYWJpbmR1Z3VqYXJhdGk9MjY4OTtlLmNhcHNsb2NrPTg2ODI7ZS5jYXJlb2Y9ODQ1MztlLmNhcm9uPTcxMTtlLmNhcm9uYmVsb3djbWI9ODEyO2UuY2Fyb25jbWI9NzgwO2UuY2FycmlhZ2VyZXR1cm49ODYyOTtlLmNib3BvbW9mbz0xMjU2ODtlLmNjYXJvbj0yNjk7ZS5jY2VkaWxsYT0yMzE7ZS5jY2VkaWxsYWFjdXRlPTc2ODk7ZS5jY2lyY2xlPTk0MjY7ZS5jY2lyY3VtZmxleD0yNjU7ZS5jY3VybD01OTc7ZS5jZG90PTI2NztlLmNkb3RhY2NlbnQ9MjY3O2UuY2RzcXVhcmU9MTMyNTM7ZS5jZWRpbGxhPTE4NDtlLmNlZGlsbGFjbWI9ODA3O2UuY2VudD0xNjI7ZS5jZW50aWdyYWRlPTg0NTE7ZS5jZW50aW5mZXJpb3I9NjMxOTk7ZS5jZW50bW9ub3NwYWNlPTY1NTA0O2UuY2VudG9sZHN0eWxlPTYzMzk0O2UuY2VudHN1cGVyaW9yPTYzMjAwO2UuY2hhYXJtZW5pYW49MTQwMTtlLmNoYWJlbmdhbGk9MjQ1OTtlLmNoYWRldmE9MjMzMTtlLmNoYWd1amFyYXRpPTI3MTU7ZS5jaGFndXJtdWtoaT0yNTg3O2UuY2hib3BvbW9mbz0xMjU2NDtlLmNoZWFia2hhc2lhbmN5cmlsbGljPTEyMTM7ZS5jaGVja21hcms9MTAwMDM7ZS5jaGVjeXJpbGxpYz0xMDk1O2UuY2hlZGVzY2VuZGVyYWJraGFzaWFuY3lyaWxsaWM9MTIxNTtlLmNoZWRlc2NlbmRlcmN5cmlsbGljPTEyMDc7ZS5jaGVkaWVyZXNpc2N5cmlsbGljPTEyNjk7ZS5jaGVoYXJtZW5pYW49MTM5NTtlLmNoZWtoYWthc3NpYW5jeXJpbGxpYz0xMjI4O2UuY2hldmVydGljYWxzdHJva2VjeXJpbGxpYz0xMjA5O2UuY2hpPTk2NztlLmNoaWV1Y2hhY2lyY2xla29yZWFuPTEyOTE5O2UuY2hpZXVjaGFwYXJlbmtvcmVhbj0xMjgyMztlLmNoaWV1Y2hjaXJjbGVrb3JlYW49MTI5MDU7ZS5jaGlldWNoa29yZWFuPTEyNjE4O2UuY2hpZXVjaHBhcmVua29yZWFuPTEyODA5O2UuY2hvY2hhbmd0aGFpPTM1OTQ7ZS5jaG9jaGFudGhhaT0zNTkyO2UuY2hvY2hpbmd0aGFpPTM1OTM7ZS5jaG9jaG9ldGhhaT0zNTk2O2UuY2hvb2s9MzkyO2UuY2lldWNhY2lyY2xla29yZWFuPTEyOTE4O2UuY2lldWNhcGFyZW5rb3JlYW49MTI4MjI7ZS5jaWV1Y2NpcmNsZWtvcmVhbj0xMjkwNDtlLmNpZXVja29yZWFuPTEyNjE2O2UuY2lldWNwYXJlbmtvcmVhbj0xMjgwODtlLmNpZXVjdXBhcmVua29yZWFuPTEyODI4O2UuY2lyY2xlPTk2NzU7ZS5jaXJjbGVjb3B5cnQ9MTY5O2UuY2lyY2xlbXVsdGlwbHk9ODg1NTtlLmNpcmNsZW90PTg4NTc7ZS5jaXJjbGVwbHVzPTg4NTM7ZS5jaXJjbGVwb3N0YWxtYXJrPTEyMzQyO2UuY2lyY2xld2l0aGxlZnRoYWxmYmxhY2s9OTY4MDtlLmNpcmNsZXdpdGhyaWdodGhhbGZibGFjaz05NjgxO2UuY2lyY3VtZmxleD03MTA7ZS5jaXJjdW1mbGV4YmVsb3djbWI9ODEzO2UuY2lyY3VtZmxleGNtYj03NzA7ZS5jbGVhcj04OTk5O2UuY2xpY2thbHZlb2xhcj00NTA7ZS5jbGlja2RlbnRhbD00NDg7ZS5jbGlja2xhdGVyYWw9NDQ5O2UuY2xpY2tyZXRyb2ZsZXg9NDUxO2UuY2x1Yj05ODI3O2UuY2x1YnN1aXRibGFjaz05ODI3O2UuY2x1YnN1aXR3aGl0ZT05ODMxO2UuY21jdWJlZHNxdWFyZT0xMzIyMDtlLmNtb25vc3BhY2U9NjUzNDc7ZS5jbXNxdWFyZWRzcXVhcmU9MTMyMTY7ZS5jb2FybWVuaWFuPTE0MDk7ZS5jb2xvbj01ODtlLmNvbG9ubW9uZXRhcnk9ODM1MztlLmNvbG9ubW9ub3NwYWNlPTY1MzA2O2UuY29sb25zaWduPTgzNTM7ZS5jb2xvbnNtYWxsPTY1MTA5O2UuY29sb250cmlhbmd1bGFyaGFsZm1vZD03MjE7ZS5jb2xvbnRyaWFuZ3VsYXJtb2Q9NzIwO2UuY29tbWE9NDQ7ZS5jb21tYWFib3ZlY21iPTc4NztlLmNvbW1hYWJvdmVyaWdodGNtYj03ODk7ZS5jb21tYWFjY2VudD02MzE3MTtlLmNvbW1hYXJhYmljPTE1NDg7ZS5jb21tYWFybWVuaWFuPTEzNzM7ZS5jb21tYWluZmVyaW9yPTYzMjAxO2UuY29tbWFtb25vc3BhY2U9NjUyOTI7ZS5jb21tYXJldmVyc2VkYWJvdmVjbWI9Nzg4O2UuY29tbWFyZXZlcnNlZG1vZD03MDE7ZS5jb21tYXNtYWxsPTY1MTA0O2UuY29tbWFzdXBlcmlvcj02MzIwMjtlLmNvbW1hdHVybmVkYWJvdmVjbWI9Nzg2O2UuY29tbWF0dXJuZWRtb2Q9Njk5O2UuY29tcGFzcz05Nzg4O2UuY29uZ3J1ZW50PTg3NzM7ZS5jb250b3VyaW50ZWdyYWw9ODc1MDtlLmNvbnRyb2w9ODk2MztlLmNvbnRyb2xBQ0s9NjtlLmNvbnRyb2xCRUw9NztlLmNvbnRyb2xCUz04O2UuY29udHJvbENBTj0yNDtlLmNvbnRyb2xDUj0xMztlLmNvbnRyb2xEQzE9MTc7ZS5jb250cm9sREMyPTE4O2UuY29udHJvbERDMz0xOTtlLmNvbnRyb2xEQzQ9MjA7ZS5jb250cm9sREVMPTEyNztlLmNvbnRyb2xETEU9MTY7ZS5jb250cm9sRU09MjU7ZS5jb250cm9sRU5RPTU7ZS5jb250cm9sRU9UPTQ7ZS5jb250cm9sRVNDPTI3O2UuY29udHJvbEVUQj0yMztlLmNvbnRyb2xFVFg9MztlLmNvbnRyb2xGRj0xMjtlLmNvbnRyb2xGUz0yODtlLmNvbnRyb2xHUz0yOTtlLmNvbnRyb2xIVD05O2UuY29udHJvbExGPTEwO2UuY29udHJvbE5BSz0yMTtlLmNvbnRyb2xOVUxMPTA7ZS5jb250cm9sUlM9MzA7ZS5jb250cm9sU0k9MTU7ZS5jb250cm9sU089MTQ7ZS5jb250cm9sU09UPTI7ZS5jb250cm9sU1RYPTE7ZS5jb250cm9sU1VCPTI2O2UuY29udHJvbFNZTj0yMjtlLmNvbnRyb2xVUz0zMTtlLmNvbnRyb2xWVD0xMTtlLmNvcHlyaWdodD0xNjk7ZS5jb3B5cmlnaHRzYW5zPTYzNzIxO2UuY29weXJpZ2h0c2VyaWY9NjMxOTM7ZS5jb3JuZXJicmFja2V0bGVmdD0xMjMwMDtlLmNvcm5lcmJyYWNrZXRsZWZ0aGFsZndpZHRoPTY1Mzc4O2UuY29ybmVyYnJhY2tldGxlZnR2ZXJ0aWNhbD02NTA4OTtlLmNvcm5lcmJyYWNrZXRyaWdodD0xMjMwMTtlLmNvcm5lcmJyYWNrZXRyaWdodGhhbGZ3aWR0aD02NTM3OTtlLmNvcm5lcmJyYWNrZXRyaWdodHZlcnRpY2FsPTY1MDkwO2UuY29ycG9yYXRpb25zcXVhcmU9MTMxODM7ZS5jb3NxdWFyZT0xMzI1NTtlLmNvdmVya2dzcXVhcmU9MTMyNTQ7ZS5jcGFyZW49OTM3NDtlLmNydXplaXJvPTgzNTQ7ZS5jc3RyZXRjaGVkPTY2MztlLmN1cmx5YW5kPTg5MTE7ZS5jdXJseW9yPTg5MTA7ZS5jdXJyZW5jeT0xNjQ7ZS5jeXJCcmV2ZT02MzE4NTtlLmN5ckZsZXg9NjMxODY7ZS5jeXJicmV2ZT02MzE4ODtlLmN5cmZsZXg9NjMxODk7ZS5kPTEwMDtlLmRhYXJtZW5pYW49MTM4MDtlLmRhYmVuZ2FsaT0yNDcwO2UuZGFkYXJhYmljPTE1OTA7ZS5kYWRldmE9MjM0MjtlLmRhZGZpbmFsYXJhYmljPTY1MjE0O2UuZGFkaW5pdGlhbGFyYWJpYz02NTIxNTtlLmRhZG1lZGlhbGFyYWJpYz02NTIxNjtlLmRhZ2VzaD0xNDY4O2UuZGFnZXNoaGVicmV3PTE0Njg7ZS5kYWdnZXI9ODIyNDtlLmRhZ2dlcmRibD04MjI1O2UuZGFndWphcmF0aT0yNzI2O2UuZGFndXJtdWtoaT0yNTk4O2UuZGFoaXJhZ2FuYT0xMjM4NDtlLmRha2F0YWthbmE9MTI0ODA7ZS5kYWxhcmFiaWM9MTU4MztlLmRhbGV0PTE0OTE7ZS5kYWxldGRhZ2VzaD02NDMwNztlLmRhbGV0ZGFnZXNoaGVicmV3PTY0MzA3O2UuZGFsZXRoZWJyZXc9MTQ5MTtlLmRhbGZpbmFsYXJhYmljPTY1MTk0O2UuZGFtbWFhcmFiaWM9MTYxNTtlLmRhbW1hbG93YXJhYmljPTE2MTU7ZS5kYW1tYXRhbmFsdG9uZWFyYWJpYz0xNjEyO2UuZGFtbWF0YW5hcmFiaWM9MTYxMjtlLmRhbmRhPTI0MDQ7ZS5kYXJnYWhlYnJldz0xNDQ3O2UuZGFyZ2FsZWZ0aGVicmV3PTE0NDc7ZS5kYXNpYXBuZXVtYXRhY3lyaWxsaWNjbWI9MTE1NztlLmRibEdyYXZlPTYzMTg3O2UuZGJsYW5nbGVicmFja2V0bGVmdD0xMjI5ODtlLmRibGFuZ2xlYnJhY2tldGxlZnR2ZXJ0aWNhbD02NTA4NTtlLmRibGFuZ2xlYnJhY2tldHJpZ2h0PTEyMjk5O2UuZGJsYW5nbGVicmFja2V0cmlnaHR2ZXJ0aWNhbD02NTA4NjtlLmRibGFyY2hpbnZlcnRlZGJlbG93Y21iPTgxMTtlLmRibGFycm93bGVmdD04NjYwO2UuZGJsYXJyb3dyaWdodD04NjU4O2UuZGJsZGFuZGE9MjQwNTtlLmRibGdyYXZlPTYzMTkwO2UuZGJsZ3JhdmVjbWI9NzgzO2UuZGJsaW50ZWdyYWw9ODc0ODtlLmRibGxvd2xpbmU9ODIxNTtlLmRibGxvd2xpbmVjbWI9ODE5O2UuZGJsb3ZlcmxpbmVjbWI9ODMxO2UuZGJscHJpbWVtb2Q9Njk4O2UuZGJsdmVydGljYWxiYXI9ODIxNDtlLmRibHZlcnRpY2FsbGluZWFib3ZlY21iPTc4MjtlLmRib3BvbW9mbz0xMjU1MztlLmRic3F1YXJlPTEzMjU2O2UuZGNhcm9uPTI3MTtlLmRjZWRpbGxhPTc2OTc7ZS5kY2lyY2xlPTk0Mjc7ZS5kY2lyY3VtZmxleGJlbG93PTc2OTk7ZS5kY3JvYXQ9MjczO2UuZGRhYmVuZ2FsaT0yNDY1O2UuZGRhZGV2YT0yMzM3O2UuZGRhZ3VqYXJhdGk9MjcyMTtlLmRkYWd1cm11a2hpPTI1OTM7ZS5kZGFsYXJhYmljPTE2NzI7ZS5kZGFsZmluYWxhcmFiaWM9NjQzOTM7ZS5kZGRoYWRldmE9MjM5NjtlLmRkaGFiZW5nYWxpPTI0NjY7ZS5kZGhhZGV2YT0yMzM4O2UuZGRoYWd1amFyYXRpPTI3MjI7ZS5kZGhhZ3VybXVraGk9MjU5NDtlLmRkb3RhY2NlbnQ9NzY5MTtlLmRkb3RiZWxvdz03NjkzO2UuZGVjaW1hbHNlcGFyYXRvcmFyYWJpYz0xNjQzO2UuZGVjaW1hbHNlcGFyYXRvcnBlcnNpYW49MTY0MztlLmRlY3lyaWxsaWM9MTA3NjtlLmRlZ3JlZT0xNzY7ZS5kZWhpaGVicmV3PTE0NTM7ZS5kZWhpcmFnYW5hPTEyMzkxO2UuZGVpY29wdGljPTEwMDc7ZS5kZWthdGFrYW5hPTEyNDg3O2UuZGVsZXRlbGVmdD05MDAzO2UuZGVsZXRlcmlnaHQ9ODk5ODtlLmRlbHRhPTk0ODtlLmRlbHRhdHVybmVkPTM5NztlLmRlbm9taW5hdG9ybWludXNvbmVudW1lcmF0b3JiZW5nYWxpPTI1NTI7ZS5kZXpoPTY3NjtlLmRoYWJlbmdhbGk9MjQ3MTtlLmRoYWRldmE9MjM0MztlLmRoYWd1amFyYXRpPTI3Mjc7ZS5kaGFndXJtdWtoaT0yNTk5O2UuZGhvb2s9NTk5O2UuZGlhbHl0aWthdG9ub3M9OTAxO2UuZGlhbHl0aWthdG9ub3NjbWI9ODM2O2UuZGlhbW9uZD05ODMwO2UuZGlhbW9uZHN1aXR3aGl0ZT05ODI2O2UuZGllcmVzaXM9MTY4O2UuZGllcmVzaXNhY3V0ZT02MzE5MTtlLmRpZXJlc2lzYmVsb3djbWI9ODA0O2UuZGllcmVzaXNjbWI9Nzc2O2UuZGllcmVzaXNncmF2ZT02MzE5MjtlLmRpZXJlc2lzdG9ub3M9OTAxO2UuZGloaXJhZ2FuYT0xMjM4NjtlLmRpa2F0YWthbmE9MTI0ODI7ZS5kaXR0b21hcms9MTIyOTE7ZS5kaXZpZGU9MjQ3O2UuZGl2aWRlcz04NzM5O2UuZGl2aXNpb25zbGFzaD04NzI1O2UuZGplY3lyaWxsaWM9MTEwNjtlLmRrc2hhZGU9OTYxOTtlLmRsaW5lYmVsb3c9NzY5NTtlLmRsc3F1YXJlPTEzMjA3O2UuZG1hY3Jvbj0yNzM7ZS5kbW9ub3NwYWNlPTY1MzQ4O2UuZG5ibG9jaz05NjA0O2UuZG9jaGFkYXRoYWk9MzU5ODtlLmRvZGVrdGhhaT0zNjA0O2UuZG9oaXJhZ2FuYT0xMjM5MztlLmRva2F0YWthbmE9MTI0ODk7ZS5kb2xsYXI9MzY7ZS5kb2xsYXJpbmZlcmlvcj02MzIwMztlLmRvbGxhcm1vbm9zcGFjZT02NTI4NDtlLmRvbGxhcm9sZHN0eWxlPTYzMjY4O2UuZG9sbGFyc21hbGw9NjUxMjk7ZS5kb2xsYXJzdXBlcmlvcj02MzIwNDtlLmRvbmc9ODM2MztlLmRvcnVzcXVhcmU9MTMwOTQ7ZS5kb3RhY2NlbnQ9NzI5O2UuZG90YWNjZW50Y21iPTc3NTtlLmRvdGJlbG93Y21iPTgwMztlLmRvdGJlbG93Y29tYj04MDM7ZS5kb3RrYXRha2FuYT0xMjUzOTtlLmRvdGxlc3NpPTMwNTtlLmRvdGxlc3NqPTYzMTY2O2UuZG90bGVzc2pzdHJva2Vob29rPTY0NDtlLmRvdG1hdGg9ODkwMTtlLmRvdHRlZGNpcmNsZT05Njc2O2UuZG91YmxleW9kcGF0YWg9NjQyODc7ZS5kb3VibGV5b2RwYXRhaGhlYnJldz02NDI4NztlLmRvd250YWNrYmVsb3djbWI9Nzk4O2UuZG93bnRhY2ttb2Q9NzI1O2UuZHBhcmVuPTkzNzU7ZS5kc3VwZXJpb3I9NjMyMTE7ZS5kdGFpbD01OTg7ZS5kdG9wYmFyPTM5NjtlLmR1aGlyYWdhbmE9MTIzODk7ZS5kdWthdGFrYW5hPTEyNDg1O2UuZHo9NDk5O2UuZHphbHRvbmU9Njc1O2UuZHpjYXJvbj00NTQ7ZS5kemN1cmw9Njc3O2UuZHplYWJraGFzaWFuY3lyaWxsaWM9MTI0OTtlLmR6ZWN5cmlsbGljPTExMDk7ZS5kemhlY3lyaWxsaWM9MTExOTtlLmU9MTAxO2UuZWFjdXRlPTIzMztlLmVhcnRoPTk3OTM7ZS5lYmVuZ2FsaT0yNDQ3O2UuZWJvcG9tb2ZvPTEyNTcyO2UuZWJyZXZlPTI3NztlLmVjYW5kcmFkZXZhPTIzMTc7ZS5lY2FuZHJhZ3VqYXJhdGk9MjcwMTtlLmVjYW5kcmF2b3dlbHNpZ25kZXZhPTIzNzM7ZS5lY2FuZHJhdm93ZWxzaWduZ3VqYXJhdGk9Mjc1NztlLmVjYXJvbj0yODM7ZS5lY2VkaWxsYWJyZXZlPTc3MDk7ZS5lY2hhcm1lbmlhbj0xMzgxO2UuZWNoeWl3bmFybWVuaWFuPTE0MTU7ZS5lY2lyY2xlPTk0Mjg7ZS5lY2lyY3VtZmxleD0yMzQ7ZS5lY2lyY3VtZmxleGFjdXRlPTc4NzE7ZS5lY2lyY3VtZmxleGJlbG93PTc3MDU7ZS5lY2lyY3VtZmxleGRvdGJlbG93PTc4Nzk7ZS5lY2lyY3VtZmxleGdyYXZlPTc4NzM7ZS5lY2lyY3VtZmxleGhvb2thYm92ZT03ODc1O2UuZWNpcmN1bWZsZXh0aWxkZT03ODc3O2UuZWN5cmlsbGljPTExMDg7ZS5lZGJsZ3JhdmU9NTE3O2UuZWRldmE9MjMxOTtlLmVkaWVyZXNpcz0yMzU7ZS5lZG90PTI3OTtlLmVkb3RhY2NlbnQ9Mjc5O2UuZWRvdGJlbG93PTc4NjU7ZS5lZWd1cm11a2hpPTI1NzU7ZS5lZW1hdHJhZ3VybXVraGk9MjYzMTtlLmVmY3lyaWxsaWM9MTA5MjtlLmVncmF2ZT0yMzI7ZS5lZ3VqYXJhdGk9MjcwMztlLmVoYXJtZW5pYW49MTM4MztlLmVoYm9wb21vZm89MTI1NzM7ZS5laGlyYWdhbmE9MTIzNjA7ZS5laG9va2Fib3ZlPTc4Njc7ZS5laWJvcG9tb2ZvPTEyNTc1O2UuZWlnaHQ9NTY7ZS5laWdodGFyYWJpYz0xNjQwO2UuZWlnaHRiZW5nYWxpPTI1NDI7ZS5laWdodGNpcmNsZT05MzE5O2UuZWlnaHRjaXJjbGVpbnZlcnNlc2Fuc3NlcmlmPTEwMTI5O2UuZWlnaHRkZXZhPTI0MTQ7ZS5laWdodGVlbmNpcmNsZT05MzI5O2UuZWlnaHRlZW5wYXJlbj05MzQ5O2UuZWlnaHRlZW5wZXJpb2Q9OTM2OTtlLmVpZ2h0Z3VqYXJhdGk9Mjc5ODtlLmVpZ2h0Z3VybXVraGk9MjY3MDtlLmVpZ2h0aGFja2FyYWJpYz0xNjQwO2UuZWlnaHRoYW5nemhvdT0xMjMyODtlLmVpZ2h0aG5vdGViZWFtZWQ9OTgzNTtlLmVpZ2h0aWRlb2dyYXBoaWNwYXJlbj0xMjgzOTtlLmVpZ2h0aW5mZXJpb3I9ODMyODtlLmVpZ2h0bW9ub3NwYWNlPTY1MzA0O2UuZWlnaHRvbGRzdHlsZT02MzI4ODtlLmVpZ2h0cGFyZW49OTMzOTtlLmVpZ2h0cGVyaW9kPTkzNTk7ZS5laWdodHBlcnNpYW49MTc4NDtlLmVpZ2h0cm9tYW49ODU2NztlLmVpZ2h0c3VwZXJpb3I9ODMxMjtlLmVpZ2h0dGhhaT0zNjcyO2UuZWludmVydGVkYnJldmU9NTE5O2UuZWlvdGlmaWVkY3lyaWxsaWM9MTEyNTtlLmVrYXRha2FuYT0xMjQ1NjtlLmVrYXRha2FuYWhhbGZ3aWR0aD02NTM5NjtlLmVrb25rYXJndXJtdWtoaT0yNjc2O2UuZWtvcmVhbj0xMjYyODtlLmVsY3lyaWxsaWM9MTA4MztlLmVsZW1lbnQ9ODcxMjtlLmVsZXZlbmNpcmNsZT05MzIyO2UuZWxldmVucGFyZW49OTM0MjtlLmVsZXZlbnBlcmlvZD05MzYyO2UuZWxldmVucm9tYW49ODU3MDtlLmVsbGlwc2lzPTgyMzA7ZS5lbGxpcHNpc3ZlcnRpY2FsPTg5NDI7ZS5lbWFjcm9uPTI3NTtlLmVtYWNyb25hY3V0ZT03NzAzO2UuZW1hY3JvbmdyYXZlPTc3MDE7ZS5lbWN5cmlsbGljPTEwODQ7ZS5lbWRhc2g9ODIxMjtlLmVtZGFzaHZlcnRpY2FsPTY1MDczO2UuZW1vbm9zcGFjZT02NTM0OTtlLmVtcGhhc2lzbWFya2FybWVuaWFuPTEzNzE7ZS5lbXB0eXNldD04NzA5O2UuZW5ib3BvbW9mbz0xMjU3OTtlLmVuY3lyaWxsaWM9MTA4NTtlLmVuZGFzaD04MjExO2UuZW5kYXNodmVydGljYWw9NjUwNzQ7ZS5lbmRlc2NlbmRlcmN5cmlsbGljPTExODc7ZS5lbmc9MzMxO2UuZW5nYm9wb21vZm89MTI1ODE7ZS5lbmdoZWN5cmlsbGljPTExODk7ZS5lbmhvb2tjeXJpbGxpYz0xMjI0O2UuZW5zcGFjZT04MTk0O2UuZW9nb25laz0yODE7ZS5lb2tvcmVhbj0xMjYyNztlLmVvcGVuPTYwMztlLmVvcGVuY2xvc2VkPTY2NjtlLmVvcGVucmV2ZXJzZWQ9NjA0O2UuZW9wZW5yZXZlcnNlZGNsb3NlZD02MDY7ZS5lb3BlbnJldmVyc2VkaG9vaz02MDU7ZS5lcGFyZW49OTM3NjtlLmVwc2lsb249OTQ5O2UuZXBzaWxvbnRvbm9zPTk0MTtlLmVxdWFsPTYxO2UuZXF1YWxtb25vc3BhY2U9NjUzMDk7ZS5lcXVhbHNtYWxsPTY1MTI2O2UuZXF1YWxzdXBlcmlvcj04MzE2O2UuZXF1aXZhbGVuY2U9ODgwMTtlLmVyYm9wb21vZm89MTI1ODI7ZS5lcmN5cmlsbGljPTEwODg7ZS5lcmV2ZXJzZWQ9NjAwO2UuZXJldmVyc2VkY3lyaWxsaWM9MTEwMTtlLmVzY3lyaWxsaWM9MTA4OTtlLmVzZGVzY2VuZGVyY3lyaWxsaWM9MTE5NTtlLmVzaD02NDM7ZS5lc2hjdXJsPTY0NjtlLmVzaG9ydGRldmE9MjMxODtlLmVzaG9ydHZvd2Vsc2lnbmRldmE9MjM3NDtlLmVzaHJldmVyc2VkbG9vcD00MjY7ZS5lc2hzcXVhdHJldmVyc2VkPTY0NTtlLmVzbWFsbGhpcmFnYW5hPTEyMzU5O2UuZXNtYWxsa2F0YWthbmE9MTI0NTU7ZS5lc21hbGxrYXRha2FuYWhhbGZ3aWR0aD02NTM4NjtlLmVzdGltYXRlZD04NDk0O2UuZXN1cGVyaW9yPTYzMjEyO2UuZXRhPTk1MTtlLmV0YXJtZW5pYW49MTM4NDtlLmV0YXRvbm9zPTk0MjtlLmV0aD0yNDA7ZS5ldGlsZGU9Nzg2OTtlLmV0aWxkZWJlbG93PTc3MDc7ZS5ldG5haHRhZm91a2hoZWJyZXc9MTQyNTtlLmV0bmFodGFmb3VraGxlZnRoZWJyZXc9MTQyNTtlLmV0bmFodGFoZWJyZXc9MTQyNTtlLmV0bmFodGFsZWZ0aGVicmV3PTE0MjU7ZS5ldHVybmVkPTQ3NztlLmV1a29yZWFuPTEyNjQxO2UuZXVybz04MzY0O2UuZXZvd2Vsc2lnbmJlbmdhbGk9MjUwMztlLmV2b3dlbHNpZ25kZXZhPTIzNzU7ZS5ldm93ZWxzaWduZ3VqYXJhdGk9Mjc1OTtlLmV4Y2xhbT0zMztlLmV4Y2xhbWFybWVuaWFuPTEzNzI7ZS5leGNsYW1kYmw9ODI1MjtlLmV4Y2xhbWRvd249MTYxO2UuZXhjbGFtZG93bnNtYWxsPTYzMzkzO2UuZXhjbGFtbW9ub3NwYWNlPTY1MjgxO2UuZXhjbGFtc21hbGw9NjMyNjU7ZS5leGlzdGVudGlhbD04NzA3O2UuZXpoPTY1ODtlLmV6aGNhcm9uPTQ5NTtlLmV6aGN1cmw9NjU5O2UuZXpocmV2ZXJzZWQ9NDQxO2UuZXpodGFpbD00NDI7ZS5mPTEwMjtlLmZhZGV2YT0yMzk4O2UuZmFndXJtdWtoaT0yNjU0O2UuZmFocmVuaGVpdD04NDU3O2UuZmF0aGFhcmFiaWM9MTYxNDtlLmZhdGhhbG93YXJhYmljPTE2MTQ7ZS5mYXRoYXRhbmFyYWJpYz0xNjExO2UuZmJvcG9tb2ZvPTEyNTUyO2UuZmNpcmNsZT05NDI5O2UuZmRvdGFjY2VudD03NzExO2UuZmVoYXJhYmljPTE2MDE7ZS5mZWhhcm1lbmlhbj0xNDE0O2UuZmVoZmluYWxhcmFiaWM9NjUyMzQ7ZS5mZWhpbml0aWFsYXJhYmljPTY1MjM1O2UuZmVobWVkaWFsYXJhYmljPTY1MjM2O2UuZmVpY29wdGljPTk5NztlLmZlbWFsZT05NzkyO2UuZmY9NjQyNTY7ZS5mX2Y9NjQyNTY7ZS5mZmk9NjQyNTk7ZS5mX2ZfaT02NDI1OTtlLmZmbD02NDI2MDtlLmZfZl9sPTY0MjYwO2UuZmk9NjQyNTc7ZS5mX2k9NjQyNTc7ZS5maWZ0ZWVuY2lyY2xlPTkzMjY7ZS5maWZ0ZWVucGFyZW49OTM0NjtlLmZpZnRlZW5wZXJpb2Q9OTM2NjtlLmZpZ3VyZWRhc2g9ODIxMDtlLmZpbGxlZGJveD05NjMyO2UuZmlsbGVkcmVjdD05NjQ0O2UuZmluYWxrYWY9MTQ5ODtlLmZpbmFsa2FmZGFnZXNoPTY0MzE0O2UuZmluYWxrYWZkYWdlc2hoZWJyZXc9NjQzMTQ7ZS5maW5hbGthZmhlYnJldz0xNDk4O2UuZmluYWxtZW09MTUwMTtlLmZpbmFsbWVtaGVicmV3PTE1MDE7ZS5maW5hbG51bj0xNTAzO2UuZmluYWxudW5oZWJyZXc9MTUwMztlLmZpbmFscGU9MTUwNztlLmZpbmFscGVoZWJyZXc9MTUwNztlLmZpbmFsdHNhZGk9MTUwOTtlLmZpbmFsdHNhZGloZWJyZXc9MTUwOTtlLmZpcnN0dG9uZWNoaW5lc2U9NzEzO2UuZmlzaGV5ZT05NjczO2UuZml0YWN5cmlsbGljPTExMzk7ZS5maXZlPTUzO2UuZml2ZWFyYWJpYz0xNjM3O2UuZml2ZWJlbmdhbGk9MjUzOTtlLmZpdmVjaXJjbGU9OTMxNjtlLmZpdmVjaXJjbGVpbnZlcnNlc2Fuc3NlcmlmPTEwMTI2O2UuZml2ZWRldmE9MjQxMTtlLmZpdmVlaWdodGhzPTg1NDE7ZS5maXZlZ3VqYXJhdGk9Mjc5NTtlLmZpdmVndXJtdWtoaT0yNjY3O2UuZml2ZWhhY2thcmFiaWM9MTYzNztlLmZpdmVoYW5nemhvdT0xMjMyNTtlLmZpdmVpZGVvZ3JhcGhpY3BhcmVuPTEyODM2O2UuZml2ZWluZmVyaW9yPTgzMjU7ZS5maXZlbW9ub3NwYWNlPTY1MzAxO2UuZml2ZW9sZHN0eWxlPTYzMjg1O2UuZml2ZXBhcmVuPTkzMzY7ZS5maXZlcGVyaW9kPTkzNTY7ZS5maXZlcGVyc2lhbj0xNzgxO2UuZml2ZXJvbWFuPTg1NjQ7ZS5maXZlc3VwZXJpb3I9ODMwOTtlLmZpdmV0aGFpPTM2Njk7ZS5mbD02NDI1ODtlLmZfbD02NDI1ODtlLmZsb3Jpbj00MDI7ZS5mbW9ub3NwYWNlPTY1MzUwO2UuZm1zcXVhcmU9MTMyMDk7ZS5mb2ZhbnRoYWk9MzYxNTtlLmZvZmF0aGFpPTM2MTM7ZS5mb25nbWFudGhhaT0zNjYzO2UuZm9yYWxsPTg3MDQ7ZS5mb3VyPTUyO2UuZm91cmFyYWJpYz0xNjM2O2UuZm91cmJlbmdhbGk9MjUzODtlLmZvdXJjaXJjbGU9OTMxNTtlLmZvdXJjaXJjbGVpbnZlcnNlc2Fuc3NlcmlmPTEwMTI1O2UuZm91cmRldmE9MjQxMDtlLmZvdXJndWphcmF0aT0yNzk0O2UuZm91cmd1cm11a2hpPTI2NjY7ZS5mb3VyaGFja2FyYWJpYz0xNjM2O2UuZm91cmhhbmd6aG91PTEyMzI0O2UuZm91cmlkZW9ncmFwaGljcGFyZW49MTI4MzU7ZS5mb3VyaW5mZXJpb3I9ODMyNDtlLmZvdXJtb25vc3BhY2U9NjUzMDA7ZS5mb3VybnVtZXJhdG9yYmVuZ2FsaT0yNTUxO2UuZm91cm9sZHN0eWxlPTYzMjg0O2UuZm91cnBhcmVuPTkzMzU7ZS5mb3VycGVyaW9kPTkzNTU7ZS5mb3VycGVyc2lhbj0xNzgwO2UuZm91cnJvbWFuPTg1NjM7ZS5mb3Vyc3VwZXJpb3I9ODMwODtlLmZvdXJ0ZWVuY2lyY2xlPTkzMjU7ZS5mb3VydGVlbnBhcmVuPTkzNDU7ZS5mb3VydGVlbnBlcmlvZD05MzY1O2UuZm91cnRoYWk9MzY2ODtlLmZvdXJ0aHRvbmVjaGluZXNlPTcxNTtlLmZwYXJlbj05Mzc3O2UuZnJhY3Rpb249ODI2MDtlLmZyYW5jPTgzNTU7ZS5nPTEwMztlLmdhYmVuZ2FsaT0yNDU1O2UuZ2FjdXRlPTUwMTtlLmdhZGV2YT0yMzI3O2UuZ2FmYXJhYmljPTE3MTE7ZS5nYWZmaW5hbGFyYWJpYz02NDQwMztlLmdhZmluaXRpYWxhcmFiaWM9NjQ0MDQ7ZS5nYWZtZWRpYWxhcmFiaWM9NjQ0MDU7ZS5nYWd1amFyYXRpPTI3MTE7ZS5nYWd1cm11a2hpPTI1ODM7ZS5nYWhpcmFnYW5hPTEyMzY0O2UuZ2FrYXRha2FuYT0xMjQ2MDtlLmdhbW1hPTk0NztlLmdhbW1hbGF0aW5zbWFsbD02MTE7ZS5nYW1tYXN1cGVyaW9yPTczNjtlLmdhbmdpYWNvcHRpYz0xMDAzO2UuZ2JvcG9tb2ZvPTEyNTU3O2UuZ2JyZXZlPTI4NztlLmdjYXJvbj00ODc7ZS5nY2VkaWxsYT0yOTE7ZS5nY2lyY2xlPTk0MzA7ZS5nY2lyY3VtZmxleD0yODU7ZS5nY29tbWFhY2NlbnQ9MjkxO2UuZ2RvdD0yODk7ZS5nZG90YWNjZW50PTI4OTtlLmdlY3lyaWxsaWM9MTA3NTtlLmdlaGlyYWdhbmE9MTIzNzA7ZS5nZWthdGFrYW5hPTEyNDY2O2UuZ2VvbWV0cmljYWxseWVxdWFsPTg3ODU7ZS5nZXJlc2hhY2NlbnRoZWJyZXc9MTQzNjtlLmdlcmVzaGhlYnJldz0xNTIzO2UuZ2VyZXNobXVxZGFtaGVicmV3PTE0Mzc7ZS5nZXJtYW5kYmxzPTIyMztlLmdlcnNoYXlpbWFjY2VudGhlYnJldz0xNDM4O2UuZ2Vyc2hheWltaGVicmV3PTE1MjQ7ZS5nZXRhbWFyaz0xMjMwNztlLmdoYWJlbmdhbGk9MjQ1NjtlLmdoYWRhcm1lbmlhbj0xMzk0O2UuZ2hhZGV2YT0yMzI4O2UuZ2hhZ3VqYXJhdGk9MjcxMjtlLmdoYWd1cm11a2hpPTI1ODQ7ZS5naGFpbmFyYWJpYz0xNTk0O2UuZ2hhaW5maW5hbGFyYWJpYz02NTIzMDtlLmdoYWluaW5pdGlhbGFyYWJpYz02NTIzMTtlLmdoYWlubWVkaWFsYXJhYmljPTY1MjMyO2UuZ2hlbWlkZGxlaG9va2N5cmlsbGljPTExNzM7ZS5naGVzdHJva2VjeXJpbGxpYz0xMTcxO2UuZ2hldXB0dXJuY3lyaWxsaWM9MTE2OTtlLmdoaGFkZXZhPTIzOTQ7ZS5naGhhZ3VybXVraGk9MjY1MDtlLmdob29rPTYwODtlLmdoenNxdWFyZT0xMzIwMztlLmdpaGlyYWdhbmE9MTIzNjY7ZS5naWthdGFrYW5hPTEyNDYyO2UuZ2ltYXJtZW5pYW49MTM3OTtlLmdpbWVsPTE0OTA7ZS5naW1lbGRhZ2VzaD02NDMwNjtlLmdpbWVsZGFnZXNoaGVicmV3PTY0MzA2O2UuZ2ltZWxoZWJyZXc9MTQ5MDtlLmdqZWN5cmlsbGljPTExMDc7ZS5nbG90dGFsaW52ZXJ0ZWRzdHJva2U9NDQ2O2UuZ2xvdHRhbHN0b3A9NjYwO2UuZ2xvdHRhbHN0b3BpbnZlcnRlZD02NjI7ZS5nbG90dGFsc3RvcG1vZD03MDQ7ZS5nbG90dGFsc3RvcHJldmVyc2VkPTY2MTtlLmdsb3R0YWxzdG9wcmV2ZXJzZWRtb2Q9NzA1O2UuZ2xvdHRhbHN0b3ByZXZlcnNlZHN1cGVyaW9yPTc0MDtlLmdsb3R0YWxzdG9wc3Ryb2tlPTY3MztlLmdsb3R0YWxzdG9wc3Ryb2tlcmV2ZXJzZWQ9Njc0O2UuZ21hY3Jvbj03NzEzO2UuZ21vbm9zcGFjZT02NTM1MTtlLmdvaGlyYWdhbmE9MTIzNzI7ZS5nb2thdGFrYW5hPTEyNDY4O2UuZ3BhcmVuPTkzNzg7ZS5ncGFzcXVhcmU9MTMyMjg7ZS5ncmFkaWVudD04NzExO2UuZ3JhdmU9OTY7ZS5ncmF2ZWJlbG93Y21iPTc5MDtlLmdyYXZlY21iPTc2ODtlLmdyYXZlY29tYj03Njg7ZS5ncmF2ZWRldmE9MjM4NztlLmdyYXZlbG93bW9kPTcxODtlLmdyYXZlbW9ub3NwYWNlPTY1MzQ0O2UuZ3JhdmV0b25lY21iPTgzMjtlLmdyZWF0ZXI9NjI7ZS5ncmVhdGVyZXF1YWw9ODgwNTtlLmdyZWF0ZXJlcXVhbG9ybGVzcz04OTIzO2UuZ3JlYXRlcm1vbm9zcGFjZT02NTMxMDtlLmdyZWF0ZXJvcmVxdWl2YWxlbnQ9ODgxOTtlLmdyZWF0ZXJvcmxlc3M9ODgyMztlLmdyZWF0ZXJvdmVyZXF1YWw9ODgwNztlLmdyZWF0ZXJzbWFsbD02NTEyNTtlLmdzY3JpcHQ9NjA5O2UuZ3N0cm9rZT00ODU7ZS5ndWhpcmFnYW5hPTEyMzY4O2UuZ3VpbGxlbW90bGVmdD0xNzE7ZS5ndWlsbGVtb3RyaWdodD0xODc7ZS5ndWlsc2luZ2xsZWZ0PTgyNDk7ZS5ndWlsc2luZ2xyaWdodD04MjUwO2UuZ3VrYXRha2FuYT0xMjQ2NDtlLmd1cmFtdXNxdWFyZT0xMzA4MDtlLmd5c3F1YXJlPTEzMjU3O2UuaD0xMDQ7ZS5oYWFia2hhc2lhbmN5cmlsbGljPTExOTM7ZS5oYWFsdG9uZWFyYWJpYz0xNzI5O2UuaGFiZW5nYWxpPTI0ODk7ZS5oYWRlc2NlbmRlcmN5cmlsbGljPTEyMDM7ZS5oYWRldmE9MjM2MTtlLmhhZ3VqYXJhdGk9Mjc0NTtlLmhhZ3VybXVraGk9MjYxNztlLmhhaGFyYWJpYz0xNTgxO2UuaGFoZmluYWxhcmFiaWM9NjUxODY7ZS5oYWhpbml0aWFsYXJhYmljPTY1MTg3O2UuaGFoaXJhZ2FuYT0xMjM5OTtlLmhhaG1lZGlhbGFyYWJpYz02NTE4ODtlLmhhaXR1c3F1YXJlPTEzMDk4O2UuaGFrYXRha2FuYT0xMjQ5NTtlLmhha2F0YWthbmFoYWxmd2lkdGg9NjU0MTg7ZS5oYWxhbnRndXJtdWtoaT0yNjM3O2UuaGFtemFhcmFiaWM9MTU2OTtlLmhhbXphbG93YXJhYmljPTE1Njk7ZS5oYW5ndWxmaWxsZXI9MTI2NDQ7ZS5oYXJkc2lnbmN5cmlsbGljPTEwOTg7ZS5oYXJwb29ubGVmdGJhcmJ1cD04NjM2O2UuaGFycG9vbnJpZ2h0YmFyYnVwPTg2NDA7ZS5oYXNxdWFyZT0xMzI1ODtlLmhhdGFmcGF0YWg9MTQ1ODtlLmhhdGFmcGF0YWgxNj0xNDU4O2UuaGF0YWZwYXRhaDIzPTE0NTg7ZS5oYXRhZnBhdGFoMmY9MTQ1ODtlLmhhdGFmcGF0YWhoZWJyZXc9MTQ1ODtlLmhhdGFmcGF0YWhuYXJyb3doZWJyZXc9MTQ1ODtlLmhhdGFmcGF0YWhxdWFydGVyaGVicmV3PTE0NTg7ZS5oYXRhZnBhdGFod2lkZWhlYnJldz0xNDU4O2UuaGF0YWZxYW1hdHM9MTQ1OTtlLmhhdGFmcWFtYXRzMWI9MTQ1OTtlLmhhdGFmcWFtYXRzMjg9MTQ1OTtlLmhhdGFmcWFtYXRzMzQ9MTQ1OTtlLmhhdGFmcWFtYXRzaGVicmV3PTE0NTk7ZS5oYXRhZnFhbWF0c25hcnJvd2hlYnJldz0xNDU5O2UuaGF0YWZxYW1hdHNxdWFydGVyaGVicmV3PTE0NTk7ZS5oYXRhZnFhbWF0c3dpZGVoZWJyZXc9MTQ1OTtlLmhhdGFmc2Vnb2w9MTQ1NztlLmhhdGFmc2Vnb2wxNz0xNDU3O2UuaGF0YWZzZWdvbDI0PTE0NTc7ZS5oYXRhZnNlZ29sMzA9MTQ1NztlLmhhdGFmc2Vnb2xoZWJyZXc9MTQ1NztlLmhhdGFmc2Vnb2xuYXJyb3doZWJyZXc9MTQ1NztlLmhhdGFmc2Vnb2xxdWFydGVyaGVicmV3PTE0NTc7ZS5oYXRhZnNlZ29sd2lkZWhlYnJldz0xNDU3O2UuaGJhcj0yOTU7ZS5oYm9wb21vZm89MTI1NTk7ZS5oYnJldmViZWxvdz03NzIzO2UuaGNlZGlsbGE9NzcyMTtlLmhjaXJjbGU9OTQzMTtlLmhjaXJjdW1mbGV4PTI5MztlLmhkaWVyZXNpcz03NzE5O2UuaGRvdGFjY2VudD03NzE1O2UuaGRvdGJlbG93PTc3MTc7ZS5oZT0xNDkyO2UuaGVhcnQ9OTgyOTtlLmhlYXJ0c3VpdGJsYWNrPTk4Mjk7ZS5oZWFydHN1aXR3aGl0ZT05ODI1O2UuaGVkYWdlc2g9NjQzMDg7ZS5oZWRhZ2VzaGhlYnJldz02NDMwODtlLmhlaGFsdG9uZWFyYWJpYz0xNzI5O2UuaGVoYXJhYmljPTE2MDc7ZS5oZWhlYnJldz0xNDkyO2UuaGVoZmluYWxhbHRvbmVhcmFiaWM9NjQ0MjM7ZS5oZWhmaW5hbGFsdHR3b2FyYWJpYz02NTI1ODtlLmhlaGZpbmFsYXJhYmljPTY1MjU4O2UuaGVoaGFtemFhYm92ZWZpbmFsYXJhYmljPTY0NDIxO2UuaGVoaGFtemFhYm92ZWlzb2xhdGVkYXJhYmljPTY0NDIwO2UuaGVoaW5pdGlhbGFsdG9uZWFyYWJpYz02NDQyNDtlLmhlaGluaXRpYWxhcmFiaWM9NjUyNTk7ZS5oZWhpcmFnYW5hPTEyNDA4O2UuaGVobWVkaWFsYWx0b25lYXJhYmljPTY0NDI1O2UuaGVobWVkaWFsYXJhYmljPTY1MjYwO2UuaGVpc2VpZXJhc3F1YXJlPTEzMTc5O2UuaGVrYXRha2FuYT0xMjUwNDtlLmhla2F0YWthbmFoYWxmd2lkdGg9NjU0MjE7ZS5oZWt1dGFhcnVzcXVhcmU9MTMxMTA7ZS5oZW5naG9vaz02MTU7ZS5oZXJ1dHVzcXVhcmU9MTMxMTM7ZS5oZXQ9MTQ5NTtlLmhldGhlYnJldz0xNDk1O2UuaGhvb2s9NjE0O2UuaGhvb2tzdXBlcmlvcj02ODk7ZS5oaWV1aGFjaXJjbGVrb3JlYW49MTI5MjM7ZS5oaWV1aGFwYXJlbmtvcmVhbj0xMjgyNztlLmhpZXVoY2lyY2xla29yZWFuPTEyOTA5O2UuaGlldWhrb3JlYW49MTI2MjI7ZS5oaWV1aHBhcmVua29yZWFuPTEyODEzO2UuaGloaXJhZ2FuYT0xMjQwMjtlLmhpa2F0YWthbmE9MTI0OTg7ZS5oaWthdGFrYW5haGFsZndpZHRoPTY1NDE5O2UuaGlyaXE9MTQ2MDtlLmhpcmlxMTQ9MTQ2MDtlLmhpcmlxMjE9MTQ2MDtlLmhpcmlxMmQ9MTQ2MDtlLmhpcmlxaGVicmV3PTE0NjA7ZS5oaXJpcW5hcnJvd2hlYnJldz0xNDYwO2UuaGlyaXFxdWFydGVyaGVicmV3PTE0NjA7ZS5oaXJpcXdpZGVoZWJyZXc9MTQ2MDtlLmhsaW5lYmVsb3c9NzgzMDtlLmhtb25vc3BhY2U9NjUzNTI7ZS5ob2FybWVuaWFuPTEzOTI7ZS5ob2hpcHRoYWk9MzYyNztlLmhvaGlyYWdhbmE9MTI0MTE7ZS5ob2thdGFrYW5hPTEyNTA3O2UuaG9rYXRha2FuYWhhbGZ3aWR0aD02NTQyMjtlLmhvbGFtPTE0NjU7ZS5ob2xhbTE5PTE0NjU7ZS5ob2xhbTI2PTE0NjU7ZS5ob2xhbTMyPTE0NjU7ZS5ob2xhbWhlYnJldz0xNDY1O2UuaG9sYW1uYXJyb3doZWJyZXc9MTQ2NTtlLmhvbGFtcXVhcnRlcmhlYnJldz0xNDY1O2UuaG9sYW13aWRlaGVicmV3PTE0NjU7ZS5ob25va2h1a3RoYWk9MzYzMDtlLmhvb2thYm92ZWNvbWI9Nzc3O2UuaG9va2NtYj03Nzc7ZS5ob29rcGFsYXRhbGl6ZWRiZWxvd2NtYj04MDE7ZS5ob29rcmV0cm9mbGV4YmVsb3djbWI9ODAyO2UuaG9vbnNxdWFyZT0xMzEyMjtlLmhvcmljb3B0aWM9MTAwMTtlLmhvcml6b250YWxiYXI9ODIxMztlLmhvcm5jbWI9Nzk1O2UuaG90c3ByaW5ncz05ODMyO2UuaG91c2U9ODk2MjtlLmhwYXJlbj05Mzc5O2UuaHN1cGVyaW9yPTY4ODtlLmh0dXJuZWQ9NjEzO2UuaHVoaXJhZ2FuYT0xMjQwNTtlLmh1aWl0b3NxdWFyZT0xMzEwNztlLmh1a2F0YWthbmE9MTI1MDE7ZS5odWthdGFrYW5haGFsZndpZHRoPTY1NDIwO2UuaHVuZ2FydW1sYXV0PTczMztlLmh1bmdhcnVtbGF1dGNtYj03Nzk7ZS5odj00MDU7ZS5oeXBoZW49NDU7ZS5oeXBoZW5pbmZlcmlvcj02MzIwNTtlLmh5cGhlbm1vbm9zcGFjZT02NTI5MztlLmh5cGhlbnNtYWxsPTY1MTIzO2UuaHlwaGVuc3VwZXJpb3I9NjMyMDY7ZS5oeXBoZW50d289ODIwODtlLmk9MTA1O2UuaWFjdXRlPTIzNztlLmlhY3lyaWxsaWM9MTEwMztlLmliZW5nYWxpPTI0Mzk7ZS5pYm9wb21vZm89MTI1ODM7ZS5pYnJldmU9MzAxO2UuaWNhcm9uPTQ2NDtlLmljaXJjbGU9OTQzMjtlLmljaXJjdW1mbGV4PTIzODtlLmljeXJpbGxpYz0xMTEwO2UuaWRibGdyYXZlPTUyMTtlLmlkZW9ncmFwaGVhcnRoY2lyY2xlPTEyOTQzO2UuaWRlb2dyYXBoZmlyZWNpcmNsZT0xMjkzOTtlLmlkZW9ncmFwaGljYWxsaWFuY2VwYXJlbj0xMjg2MztlLmlkZW9ncmFwaGljY2FsbHBhcmVuPTEyODU4O2UuaWRlb2dyYXBoaWNjZW50cmVjaXJjbGU9MTI5NjU7ZS5pZGVvZ3JhcGhpY2Nsb3NlPTEyMjk0O2UuaWRlb2dyYXBoaWNjb21tYT0xMjI4OTtlLmlkZW9ncmFwaGljY29tbWFsZWZ0PTY1MzgwO2UuaWRlb2dyYXBoaWNjb25ncmF0dWxhdGlvbnBhcmVuPTEyODU1O2UuaWRlb2dyYXBoaWNjb3JyZWN0Y2lyY2xlPTEyOTYzO2UuaWRlb2dyYXBoaWNlYXJ0aHBhcmVuPTEyODQ3O2UuaWRlb2dyYXBoaWNlbnRlcnByaXNlcGFyZW49MTI4NjE7ZS5pZGVvZ3JhcGhpY2V4Y2VsbGVudGNpcmNsZT0xMjk1NztlLmlkZW9ncmFwaGljZmVzdGl2YWxwYXJlbj0xMjg2NDtlLmlkZW9ncmFwaGljZmluYW5jaWFsY2lyY2xlPTEyOTUwO2UuaWRlb2dyYXBoaWNmaW5hbmNpYWxwYXJlbj0xMjg1NDtlLmlkZW9ncmFwaGljZmlyZXBhcmVuPTEyODQzO2UuaWRlb2dyYXBoaWNoYXZlcGFyZW49MTI4NTA7ZS5pZGVvZ3JhcGhpY2hpZ2hjaXJjbGU9MTI5NjQ7ZS5pZGVvZ3JhcGhpY2l0ZXJhdGlvbm1hcms9MTIyOTM7ZS5pZGVvZ3JhcGhpY2xhYm9yY2lyY2xlPTEyOTUyO2UuaWRlb2dyYXBoaWNsYWJvcnBhcmVuPTEyODU2O2UuaWRlb2dyYXBoaWNsZWZ0Y2lyY2xlPTEyOTY3O2UuaWRlb2dyYXBoaWNsb3djaXJjbGU9MTI5NjY7ZS5pZGVvZ3JhcGhpY21lZGljaW5lY2lyY2xlPTEyOTY5O2UuaWRlb2dyYXBoaWNtZXRhbHBhcmVuPTEyODQ2O2UuaWRlb2dyYXBoaWNtb29ucGFyZW49MTI4NDI7ZS5pZGVvZ3JhcGhpY25hbWVwYXJlbj0xMjg1MjtlLmlkZW9ncmFwaGljcGVyaW9kPTEyMjkwO2UuaWRlb2dyYXBoaWNwcmludGNpcmNsZT0xMjk1ODtlLmlkZW9ncmFwaGljcmVhY2hwYXJlbj0xMjg2NztlLmlkZW9ncmFwaGljcmVwcmVzZW50cGFyZW49MTI4NTc7ZS5pZGVvZ3JhcGhpY3Jlc291cmNlcGFyZW49MTI4NjI7ZS5pZGVvZ3JhcGhpY3JpZ2h0Y2lyY2xlPTEyOTY4O2UuaWRlb2dyYXBoaWNzZWNyZXRjaXJjbGU9MTI5NTM7ZS5pZGVvZ3JhcGhpY3NlbGZwYXJlbj0xMjg2NjtlLmlkZW9ncmFwaGljc29jaWV0eXBhcmVuPTEyODUxO2UuaWRlb2dyYXBoaWNzcGFjZT0xMjI4ODtlLmlkZW9ncmFwaGljc3BlY2lhbHBhcmVuPTEyODUzO2UuaWRlb2dyYXBoaWNzdG9ja3BhcmVuPTEyODQ5O2UuaWRlb2dyYXBoaWNzdHVkeXBhcmVuPTEyODU5O2UuaWRlb2dyYXBoaWNzdW5wYXJlbj0xMjg0ODtlLmlkZW9ncmFwaGljc3VwZXJ2aXNlcGFyZW49MTI4NjA7ZS5pZGVvZ3JhcGhpY3dhdGVycGFyZW49MTI4NDQ7ZS5pZGVvZ3JhcGhpY3dvb2RwYXJlbj0xMjg0NTtlLmlkZW9ncmFwaGljemVybz0xMjI5NTtlLmlkZW9ncmFwaG1ldGFsY2lyY2xlPTEyOTQyO2UuaWRlb2dyYXBobW9vbmNpcmNsZT0xMjkzODtlLmlkZW9ncmFwaG5hbWVjaXJjbGU9MTI5NDg7ZS5pZGVvZ3JhcGhzdW5jaXJjbGU9MTI5NDQ7ZS5pZGVvZ3JhcGh3YXRlcmNpcmNsZT0xMjk0MDtlLmlkZW9ncmFwaHdvb2RjaXJjbGU9MTI5NDE7ZS5pZGV2YT0yMzExO2UuaWRpZXJlc2lzPTIzOTtlLmlkaWVyZXNpc2FjdXRlPTc3Mjc7ZS5pZGllcmVzaXNjeXJpbGxpYz0xMjUzO2UuaWRvdGJlbG93PTc4ODM7ZS5pZWJyZXZlY3lyaWxsaWM9MTIzOTtlLmllY3lyaWxsaWM9MTA3NztlLmlldW5nYWNpcmNsZWtvcmVhbj0xMjkxNztlLmlldW5nYXBhcmVua29yZWFuPTEyODIxO2UuaWV1bmdjaXJjbGVrb3JlYW49MTI5MDM7ZS5pZXVuZ2tvcmVhbj0xMjYxNTtlLmlldW5ncGFyZW5rb3JlYW49MTI4MDc7ZS5pZ3JhdmU9MjM2O2UuaWd1amFyYXRpPTI2OTU7ZS5pZ3VybXVraGk9MjU2NztlLmloaXJhZ2FuYT0xMjM1NjtlLmlob29rYWJvdmU9Nzg4MTtlLmlpYmVuZ2FsaT0yNDQwO2UuaWljeXJpbGxpYz0xMDgwO2UuaWlkZXZhPTIzMTI7ZS5paWd1amFyYXRpPTI2OTY7ZS5paWd1cm11a2hpPTI1Njg7ZS5paW1hdHJhZ3VybXVraGk9MjYyNDtlLmlpbnZlcnRlZGJyZXZlPTUyMztlLmlpc2hvcnRjeXJpbGxpYz0xMDgxO2UuaWl2b3dlbHNpZ25iZW5nYWxpPTI0OTY7ZS5paXZvd2Vsc2lnbmRldmE9MjM2ODtlLmlpdm93ZWxzaWduZ3VqYXJhdGk9Mjc1MjtlLmlqPTMwNztlLmlrYXRha2FuYT0xMjQ1MjtlLmlrYXRha2FuYWhhbGZ3aWR0aD02NTM5NDtlLmlrb3JlYW49MTI2NDM7ZS5pbGRlPTczMjtlLmlsdXloZWJyZXc9MTQ1MjtlLmltYWNyb249Mjk5O2UuaW1hY3JvbmN5cmlsbGljPTEyNTE7ZS5pbWFnZW9yYXBwcm94aW1hdGVseWVxdWFsPTg3ODc7ZS5pbWF0cmFndXJtdWtoaT0yNjIzO2UuaW1vbm9zcGFjZT02NTM1MztlLmluY3JlbWVudD04NzEwO2UuaW5maW5pdHk9ODczNDtlLmluaWFybWVuaWFuPTEzODc7ZS5pbnRlZ3JhbD04NzQ3O2UuaW50ZWdyYWxib3R0b209ODk5MztlLmludGVncmFsYnQ9ODk5MztlLmludGVncmFsZXg9NjM3MzM7ZS5pbnRlZ3JhbHRvcD04OTkyO2UuaW50ZWdyYWx0cD04OTkyO2UuaW50ZXJzZWN0aW9uPTg3NDU7ZS5pbnRpc3F1YXJlPTEzMDYxO2UuaW52YnVsbGV0PTk2ODg7ZS5pbnZjaXJjbGU9OTY4OTtlLmludnNtaWxlZmFjZT05Nzg3O2UuaW9jeXJpbGxpYz0xMTA1O2UuaW9nb25laz0zMDM7ZS5pb3RhPTk1MztlLmlvdGFkaWVyZXNpcz05NzA7ZS5pb3RhZGllcmVzaXN0b25vcz05MTI7ZS5pb3RhbGF0aW49NjE3O2UuaW90YXRvbm9zPTk0MztlLmlwYXJlbj05MzgwO2UuaXJpZ3VybXVraGk9MjY3NDtlLmlzbWFsbGhpcmFnYW5hPTEyMzU1O2UuaXNtYWxsa2F0YWthbmE9MTI0NTE7ZS5pc21hbGxrYXRha2FuYWhhbGZ3aWR0aD02NTM4NDtlLmlzc2hhcmJlbmdhbGk9MjU1NDtlLmlzdHJva2U9NjE2O2UuaXN1cGVyaW9yPTYzMjEzO2UuaXRlcmF0aW9uaGlyYWdhbmE9MTI0NDU7ZS5pdGVyYXRpb25rYXRha2FuYT0xMjU0MTtlLml0aWxkZT0yOTc7ZS5pdGlsZGViZWxvdz03NzI1O2UuaXVib3BvbW9mbz0xMjU4NTtlLml1Y3lyaWxsaWM9MTEwMjtlLml2b3dlbHNpZ25iZW5nYWxpPTI0OTU7ZS5pdm93ZWxzaWduZGV2YT0yMzY3O2UuaXZvd2Vsc2lnbmd1amFyYXRpPTI3NTE7ZS5pemhpdHNhY3lyaWxsaWM9MTE0MTtlLml6aGl0c2FkYmxncmF2ZWN5cmlsbGljPTExNDM7ZS5qPTEwNjtlLmphYXJtZW5pYW49MTM5MztlLmphYmVuZ2FsaT0yNDYwO2UuamFkZXZhPTIzMzI7ZS5qYWd1amFyYXRpPTI3MTY7ZS5qYWd1cm11a2hpPTI1ODg7ZS5qYm9wb21vZm89MTI1NjA7ZS5qY2Fyb249NDk2O2UuamNpcmNsZT05NDMzO2UuamNpcmN1bWZsZXg9MzA5O2UuamNyb3NzZWR0YWlsPTY2OTtlLmpkb3RsZXNzc3Ryb2tlPTYwNztlLmplY3lyaWxsaWM9MTExMjtlLmplZW1hcmFiaWM9MTU4MDtlLmplZW1maW5hbGFyYWJpYz02NTE4MjtlLmplZW1pbml0aWFsYXJhYmljPTY1MTgzO2UuamVlbW1lZGlhbGFyYWJpYz02NTE4NDtlLmplaGFyYWJpYz0xNjg4O2UuamVoZmluYWxhcmFiaWM9NjQzOTU7ZS5qaGFiZW5nYWxpPTI0NjE7ZS5qaGFkZXZhPTIzMzM7ZS5qaGFndWphcmF0aT0yNzE3O2UuamhhZ3VybXVraGk9MjU4OTtlLmpoZWhhcm1lbmlhbj0xNDAzO2UuamlzPTEyMjkyO2Uuam1vbm9zcGFjZT02NTM1NDtlLmpwYXJlbj05MzgxO2UuanN1cGVyaW9yPTY5MDtlLms9MTA3O2Uua2FiYXNoa2lyY3lyaWxsaWM9MTE4NTtlLmthYmVuZ2FsaT0yNDUzO2Uua2FjdXRlPTc3Mjk7ZS5rYWN5cmlsbGljPTEwODI7ZS5rYWRlc2NlbmRlcmN5cmlsbGljPTExNzk7ZS5rYWRldmE9MjMyNTtlLmthZj0xNDk5O2Uua2FmYXJhYmljPTE2MDM7ZS5rYWZkYWdlc2g9NjQzMTU7ZS5rYWZkYWdlc2hoZWJyZXc9NjQzMTU7ZS5rYWZmaW5hbGFyYWJpYz02NTI0MjtlLmthZmhlYnJldz0xNDk5O2Uua2FmaW5pdGlhbGFyYWJpYz02NTI0MztlLmthZm1lZGlhbGFyYWJpYz02NTI0NDtlLmthZnJhZmVoZWJyZXc9NjQzMzM7ZS5rYWd1amFyYXRpPTI3MDk7ZS5rYWd1cm11a2hpPTI1ODE7ZS5rYWhpcmFnYW5hPTEyMzYzO2Uua2Fob29rY3lyaWxsaWM9MTIyMDtlLmtha2F0YWthbmE9MTI0NTk7ZS5rYWthdGFrYW5haGFsZndpZHRoPTY1Mzk4O2Uua2FwcGE9OTU0O2Uua2FwcGFzeW1ib2xncmVlaz0xMDA4O2Uua2FweWVvdW5taWV1bWtvcmVhbj0xMjY1NztlLmthcHllb3VucGhpZXVwaGtvcmVhbj0xMjY3NjtlLmthcHllb3VucGlldXBrb3JlYW49MTI2NjQ7ZS5rYXB5ZW91bnNzYW5ncGlldXBrb3JlYW49MTI2NjU7ZS5rYXJvcmlpc3F1YXJlPTEzMDY5O2Uua2FzaGlkYWF1dG9hcmFiaWM9MTYwMDtlLmthc2hpZGFhdXRvbm9zaWRlYmVhcmluZ2FyYWJpYz0xNjAwO2Uua2FzbWFsbGthdGFrYW5hPTEyNTMzO2Uua2FzcXVhcmU9MTMxODg7ZS5rYXNyYWFyYWJpYz0xNjE2O2Uua2FzcmF0YW5hcmFiaWM9MTYxMztlLmthc3Ryb2tlY3lyaWxsaWM9MTE4MztlLmthdGFoaXJhcHJvbG9uZ21hcmtoYWxmd2lkdGg9NjUzOTI7ZS5rYXZlcnRpY2Fsc3Ryb2tlY3lyaWxsaWM9MTE4MTtlLmtib3BvbW9mbz0xMjU1ODtlLmtjYWxzcXVhcmU9MTMxOTM7ZS5rY2Fyb249NDg5O2Uua2NlZGlsbGE9MzExO2Uua2NpcmNsZT05NDM0O2Uua2NvbW1hYWNjZW50PTMxMTtlLmtkb3RiZWxvdz03NzMxO2Uua2VoYXJtZW5pYW49MTQxMjtlLmtlaGlyYWdhbmE9MTIzNjk7ZS5rZWthdGFrYW5hPTEyNDY1O2Uua2VrYXRha2FuYWhhbGZ3aWR0aD02NTQwMTtlLmtlbmFybWVuaWFuPTEzOTE7ZS5rZXNtYWxsa2F0YWthbmE9MTI1MzQ7ZS5rZ3JlZW5sYW5kaWM9MzEyO2Uua2hhYmVuZ2FsaT0yNDU0O2Uua2hhY3lyaWxsaWM9MTA5MztlLmtoYWRldmE9MjMyNjtlLmtoYWd1amFyYXRpPTI3MTA7ZS5raGFndXJtdWtoaT0yNTgyO2Uua2hhaGFyYWJpYz0xNTgyO2Uua2hhaGZpbmFsYXJhYmljPTY1MTkwO2Uua2hhaGluaXRpYWxhcmFiaWM9NjUxOTE7ZS5raGFobWVkaWFsYXJhYmljPTY1MTkyO2Uua2hlaWNvcHRpYz05OTk7ZS5raGhhZGV2YT0yMzkzO2Uua2hoYWd1cm11a2hpPTI2NDk7ZS5raGlldWtoYWNpcmNsZWtvcmVhbj0xMjkyMDtlLmtoaWV1a2hhcGFyZW5rb3JlYW49MTI4MjQ7ZS5raGlldWtoY2lyY2xla29yZWFuPTEyOTA2O2Uua2hpZXVraGtvcmVhbj0xMjYxOTtlLmtoaWV1a2hwYXJlbmtvcmVhbj0xMjgxMDtlLmtob2toYWl0aGFpPTM1ODY7ZS5raG9raG9udGhhaT0zNTg5O2Uua2hva2h1YXR0aGFpPTM1ODc7ZS5raG9raHdhaXRoYWk9MzU4ODtlLmtob211dHRoYWk9MzY3NTtlLmtob29rPTQwOTtlLmtob3Jha2hhbmd0aGFpPTM1OTA7ZS5raHpzcXVhcmU9MTMyMDE7ZS5raWhpcmFnYW5hPTEyMzY1O2Uua2lrYXRha2FuYT0xMjQ2MTtlLmtpa2F0YWthbmFoYWxmd2lkdGg9NjUzOTk7ZS5raXJvZ3VyYW11c3F1YXJlPTEzMDc3O2Uua2lyb21lZXRvcnVzcXVhcmU9MTMwNzg7ZS5raXJvc3F1YXJlPTEzMDc2O2Uua2l5ZW9rYWNpcmNsZWtvcmVhbj0xMjkxMDtlLmtpeWVva2FwYXJlbmtvcmVhbj0xMjgxNDtlLmtpeWVva2NpcmNsZWtvcmVhbj0xMjg5NjtlLmtpeWVva2tvcmVhbj0xMjU5MztlLmtpeWVva3BhcmVua29yZWFuPTEyODAwO2Uua2l5ZW9rc2lvc2tvcmVhbj0xMjU5NTtlLmtqZWN5cmlsbGljPTExMTY7ZS5rbGluZWJlbG93PTc3MzM7ZS5rbHNxdWFyZT0xMzIwODtlLmttY3ViZWRzcXVhcmU9MTMyMjI7ZS5rbW9ub3NwYWNlPTY1MzU1O2Uua21zcXVhcmVkc3F1YXJlPTEzMjE4O2Uua29oaXJhZ2FuYT0xMjM3MTtlLmtvaG1zcXVhcmU9MTMyNDg7ZS5rb2thaXRoYWk9MzU4NTtlLmtva2F0YWthbmE9MTI0Njc7ZS5rb2thdGFrYW5haGFsZndpZHRoPTY1NDAyO2Uua29vcG9zcXVhcmU9MTMwODY7ZS5rb3BwYWN5cmlsbGljPTExNTM7ZS5rb3JlYW5zdGFuZGFyZHN5bWJvbD0xMjkyNztlLmtvcm9uaXNjbWI9ODM1O2Uua3BhcmVuPTkzODI7ZS5rcGFzcXVhcmU9MTMyMjY7ZS5rc2ljeXJpbGxpYz0xMTM1O2Uua3RzcXVhcmU9MTMyNjM7ZS5rdHVybmVkPTY3MDtlLmt1aGlyYWdhbmE9MTIzNjc7ZS5rdWthdGFrYW5hPTEyNDYzO2Uua3VrYXRha2FuYWhhbGZ3aWR0aD02NTQwMDtlLmt2c3F1YXJlPTEzMjQwO2Uua3dzcXVhcmU9MTMyNDY7ZS5sPTEwODtlLmxhYmVuZ2FsaT0yNDgyO2UubGFjdXRlPTMxNDtlLmxhZGV2YT0yMzU0O2UubGFndWphcmF0aT0yNzM4O2UubGFndXJtdWtoaT0yNjEwO2UubGFra2hhbmd5YW90aGFpPTM2NTM7ZS5sYW1hbGVmZmluYWxhcmFiaWM9NjUyNzY7ZS5sYW1hbGVmaGFtemFhYm92ZWZpbmFsYXJhYmljPTY1MjcyO2UubGFtYWxlZmhhbXphYWJvdmVpc29sYXRlZGFyYWJpYz02NTI3MTtlLmxhbWFsZWZoYW16YWJlbG93ZmluYWxhcmFiaWM9NjUyNzQ7ZS5sYW1hbGVmaGFtemFiZWxvd2lzb2xhdGVkYXJhYmljPTY1MjczO2UubGFtYWxlZmlzb2xhdGVkYXJhYmljPTY1Mjc1O2UubGFtYWxlZm1hZGRhYWJvdmVmaW5hbGFyYWJpYz02NTI3MDtlLmxhbWFsZWZtYWRkYWFib3ZlaXNvbGF0ZWRhcmFiaWM9NjUyNjk7ZS5sYW1hcmFiaWM9MTYwNDtlLmxhbWJkYT05NTU7ZS5sYW1iZGFzdHJva2U9NDExO2UubGFtZWQ9MTUwMDtlLmxhbWVkZGFnZXNoPTY0MzE2O2UubGFtZWRkYWdlc2hoZWJyZXc9NjQzMTY7ZS5sYW1lZGhlYnJldz0xNTAwO2UubGFtZmluYWxhcmFiaWM9NjUyNDY7ZS5sYW1oYWhpbml0aWFsYXJhYmljPTY0NzE0O2UubGFtaW5pdGlhbGFyYWJpYz02NTI0NztlLmxhbWplZW1pbml0aWFsYXJhYmljPTY0NzEzO2UubGFta2hhaGluaXRpYWxhcmFiaWM9NjQ3MTU7ZS5sYW1sYW1oZWhpc29sYXRlZGFyYWJpYz02NTAxMDtlLmxhbW1lZGlhbGFyYWJpYz02NTI0ODtlLmxhbW1lZW1oYWhpbml0aWFsYXJhYmljPTY0OTA0O2UubGFtbWVlbWluaXRpYWxhcmFiaWM9NjQ3MTY7ZS5sYXJnZWNpcmNsZT05NzExO2UubGJhcj00MTA7ZS5sYmVsdD02MjA7ZS5sYm9wb21vZm89MTI1NTY7ZS5sY2Fyb249MzE4O2UubGNlZGlsbGE9MzE2O2UubGNpcmNsZT05NDM1O2UubGNpcmN1bWZsZXhiZWxvdz03NzQxO2UubGNvbW1hYWNjZW50PTMxNjtlLmxkb3Q9MzIwO2UubGRvdGFjY2VudD0zMjA7ZS5sZG90YmVsb3c9NzczNTtlLmxkb3RiZWxvd21hY3Jvbj03NzM3O2UubGVmdGFuZ2xlYWJvdmVjbWI9Nzk0O2UubGVmdHRhY2tiZWxvd2NtYj03OTI7ZS5sZXNzPTYwO2UubGVzc2VxdWFsPTg4MDQ7ZS5sZXNzZXF1YWxvcmdyZWF0ZXI9ODkyMjtlLmxlc3Ntb25vc3BhY2U9NjUzMDg7ZS5sZXNzb3JlcXVpdmFsZW50PTg4MTg7ZS5sZXNzb3JncmVhdGVyPTg4MjI7ZS5sZXNzb3ZlcmVxdWFsPTg4MDY7ZS5sZXNzc21hbGw9NjUxMjQ7ZS5sZXpoPTYyMjtlLmxmYmxvY2s9OTYxMjtlLmxob29rcmV0cm9mbGV4PTYyMTtlLmxpcmE9ODM1NjtlLmxpd25hcm1lbmlhbj0xMzg4O2UubGo9NDU3O2UubGplY3lyaWxsaWM9MTExMztlLmxsPTYzMTY4O2UubGxhZGV2YT0yMzU1O2UubGxhZ3VqYXJhdGk9MjczOTtlLmxsaW5lYmVsb3c9NzczOTtlLmxsbGFkZXZhPTIzNTY7ZS5sbHZvY2FsaWNiZW5nYWxpPTI1Mjk7ZS5sbHZvY2FsaWNkZXZhPTI0MDE7ZS5sbHZvY2FsaWN2b3dlbHNpZ25iZW5nYWxpPTI1MzE7ZS5sbHZvY2FsaWN2b3dlbHNpZ25kZXZhPTI0MDM7ZS5sbWlkZGxldGlsZGU9NjE5O2UubG1vbm9zcGFjZT02NTM1NjtlLmxtc3F1YXJlPTEzMjY0O2UubG9jaHVsYXRoYWk9MzYyODtlLmxvZ2ljYWxhbmQ9ODc0MztlLmxvZ2ljYWxub3Q9MTcyO2UubG9naWNhbG5vdHJldmVyc2VkPTg5NzY7ZS5sb2dpY2Fsb3I9ODc0NDtlLmxvbGluZ3RoYWk9MzYyMTtlLmxvbmdzPTM4MztlLmxvd2xpbmVjZW50ZXJsaW5lPTY1MTAyO2UubG93bGluZWNtYj04MTg7ZS5sb3dsaW5lZGFzaGVkPTY1MTAxO2UubG96ZW5nZT05Njc0O2UubHBhcmVuPTkzODM7ZS5sc2xhc2g9MzIyO2UubHNxdWFyZT04NDY3O2UubHN1cGVyaW9yPTYzMjE0O2UubHRzaGFkZT05NjE3O2UubHV0aGFpPTM2MjI7ZS5sdm9jYWxpY2JlbmdhbGk9MjQ0NDtlLmx2b2NhbGljZGV2YT0yMzE2O2UubHZvY2FsaWN2b3dlbHNpZ25iZW5nYWxpPTI1MzA7ZS5sdm9jYWxpY3Zvd2Vsc2lnbmRldmE9MjQwMjtlLmx4c3F1YXJlPTEzMjY3O2UubT0xMDk7ZS5tYWJlbmdhbGk9MjQ3ODtlLm1hY3Jvbj0xNzU7ZS5tYWNyb25iZWxvd2NtYj04MTc7ZS5tYWNyb25jbWI9NzcyO2UubWFjcm9ubG93bW9kPTcxNztlLm1hY3Jvbm1vbm9zcGFjZT02NTUwNztlLm1hY3V0ZT03NzQzO2UubWFkZXZhPTIzNTA7ZS5tYWd1amFyYXRpPTI3MzQ7ZS5tYWd1cm11a2hpPTI2MDY7ZS5tYWhhcGFraGhlYnJldz0xNDQ0O2UubWFoYXBha2hsZWZ0aGVicmV3PTE0NDQ7ZS5tYWhpcmFnYW5hPTEyNDE0O2UubWFpY2hhdHRhd2Fsb3dsZWZ0dGhhaT02MzYzNztlLm1haWNoYXR0YXdhbG93cmlnaHR0aGFpPTYzNjM2O2UubWFpY2hhdHRhd2F0aGFpPTM2NTk7ZS5tYWljaGF0dGF3YXVwcGVybGVmdHRoYWk9NjM2MzU7ZS5tYWlla2xvd2xlZnR0aGFpPTYzNjI4O2UubWFpZWtsb3dyaWdodHRoYWk9NjM2Mjc7ZS5tYWlla3RoYWk9MzY1NjtlLm1haWVrdXBwZXJsZWZ0dGhhaT02MzYyNjtlLm1haWhhbmFrYXRsZWZ0dGhhaT02MzYyMDtlLm1haWhhbmFrYXR0aGFpPTM2MzM7ZS5tYWl0YWlraHVsZWZ0dGhhaT02MzYyNTtlLm1haXRhaWtodXRoYWk9MzY1NTtlLm1haXRob2xvd2xlZnR0aGFpPTYzNjMxO2UubWFpdGhvbG93cmlnaHR0aGFpPTYzNjMwO2UubWFpdGhvdGhhaT0zNjU3O2UubWFpdGhvdXBwZXJsZWZ0dGhhaT02MzYyOTtlLm1haXRyaWxvd2xlZnR0aGFpPTYzNjM0O2UubWFpdHJpbG93cmlnaHR0aGFpPTYzNjMzO2UubWFpdHJpdGhhaT0zNjU4O2UubWFpdHJpdXBwZXJsZWZ0dGhhaT02MzYzMjtlLm1haXlhbW9rdGhhaT0zNjU0O2UubWFrYXRha2FuYT0xMjUxMDtlLm1ha2F0YWthbmFoYWxmd2lkdGg9NjU0MjM7ZS5tYWxlPTk3OTQ7ZS5tYW5zeW9uc3F1YXJlPTEzMTI3O2UubWFxYWZoZWJyZXc9MTQ3MDtlLm1hcnM9OTc5NDtlLm1hc29yYWNpcmNsZWhlYnJldz0xNDU1O2UubWFzcXVhcmU9MTMxODc7ZS5tYm9wb21vZm89MTI1NTE7ZS5tYnNxdWFyZT0xMzI2ODtlLm1jaXJjbGU9OTQzNjtlLm1jdWJlZHNxdWFyZT0xMzIyMTtlLm1kb3RhY2NlbnQ9Nzc0NTtlLm1kb3RiZWxvdz03NzQ3O2UubWVlbWFyYWJpYz0xNjA1O2UubWVlbWZpbmFsYXJhYmljPTY1MjUwO2UubWVlbWluaXRpYWxhcmFiaWM9NjUyNTE7ZS5tZWVtbWVkaWFsYXJhYmljPTY1MjUyO2UubWVlbW1lZW1pbml0aWFsYXJhYmljPTY0NzIxO2UubWVlbW1lZW1pc29sYXRlZGFyYWJpYz02NDU4NDtlLm1lZXRvcnVzcXVhcmU9MTMxMzM7ZS5tZWhpcmFnYW5hPTEyNDE3O2UubWVpemllcmFzcXVhcmU9MTMxODI7ZS5tZWthdGFrYW5hPTEyNTEzO2UubWVrYXRha2FuYWhhbGZ3aWR0aD02NTQyNjtlLm1lbT0xNTAyO2UubWVtZGFnZXNoPTY0MzE4O2UubWVtZGFnZXNoaGVicmV3PTY0MzE4O2UubWVtaGVicmV3PTE1MDI7ZS5tZW5hcm1lbmlhbj0xMzk2O2UubWVya2hhaGVicmV3PTE0NDU7ZS5tZXJraGFrZWZ1bGFoZWJyZXc9MTQ0NjtlLm1lcmtoYWtlZnVsYWxlZnRoZWJyZXc9MTQ0NjtlLm1lcmtoYWxlZnRoZWJyZXc9MTQ0NTtlLm1ob29rPTYyNTtlLm1oenNxdWFyZT0xMzIwMjtlLm1pZGRsZWRvdGthdGFrYW5haGFsZndpZHRoPTY1MzgxO2UubWlkZG90PTE4MztlLm1pZXVtYWNpcmNsZWtvcmVhbj0xMjkxNDtlLm1pZXVtYXBhcmVua29yZWFuPTEyODE4O2UubWlldW1jaXJjbGVrb3JlYW49MTI5MDA7ZS5taWV1bWtvcmVhbj0xMjYwOTtlLm1pZXVtcGFuc2lvc2tvcmVhbj0xMjY1NjtlLm1pZXVtcGFyZW5rb3JlYW49MTI4MDQ7ZS5taWV1bXBpZXVwa29yZWFuPTEyNjU0O2UubWlldW1zaW9za29yZWFuPTEyNjU1O2UubWloaXJhZ2FuYT0xMjQxNTtlLm1pa2F0YWthbmE9MTI1MTE7ZS5taWthdGFrYW5haGFsZndpZHRoPTY1NDI0O2UubWludXM9ODcyMjtlLm1pbnVzYmVsb3djbWI9ODAwO2UubWludXNjaXJjbGU9ODg1NDtlLm1pbnVzbW9kPTcyNztlLm1pbnVzcGx1cz04NzIzO2UubWludXRlPTgyNDI7ZS5taXJpYmFhcnVzcXVhcmU9MTMxMzA7ZS5taXJpc3F1YXJlPTEzMTI5O2UubWxvbmdsZWd0dXJuZWQ9NjI0O2UubWxzcXVhcmU9MTMyMDY7ZS5tbWN1YmVkc3F1YXJlPTEzMjE5O2UubW1vbm9zcGFjZT02NTM1NztlLm1tc3F1YXJlZHNxdWFyZT0xMzIxNTtlLm1vaGlyYWdhbmE9MTI0MTg7ZS5tb2htc3F1YXJlPTEzMjQ5O2UubW9rYXRha2FuYT0xMjUxNDtlLm1va2F0YWthbmFoYWxmd2lkdGg9NjU0Mjc7ZS5tb2xzcXVhcmU9MTMyNzA7ZS5tb21hdGhhaT0zNjE3O2UubW92ZXJzc3F1YXJlPTEzMjIzO2UubW92ZXJzc3F1YXJlZHNxdWFyZT0xMzIyNDtlLm1wYXJlbj05Mzg0O2UubXBhc3F1YXJlPTEzMjI3O2UubXNzcXVhcmU9MTMyMzU7ZS5tc3VwZXJpb3I9NjMyMTU7ZS5tdHVybmVkPTYyMztlLm11PTE4MTtlLm11MT0xODE7ZS5tdWFzcXVhcmU9MTMxODY7ZS5tdWNoZ3JlYXRlcj04ODExO2UubXVjaGxlc3M9ODgxMDtlLm11ZnNxdWFyZT0xMzE5NjtlLm11Z3JlZWs9OTU2O2UubXVnc3F1YXJlPTEzMTk3O2UubXVoaXJhZ2FuYT0xMjQxNjtlLm11a2F0YWthbmE9MTI1MTI7ZS5tdWthdGFrYW5haGFsZndpZHRoPTY1NDI1O2UubXVsc3F1YXJlPTEzMjA1O2UubXVsdGlwbHk9MjE1O2UubXVtc3F1YXJlPTEzMjExO2UubXVuYWhoZWJyZXc9MTQ0MztlLm11bmFobGVmdGhlYnJldz0xNDQzO2UubXVzaWNhbG5vdGU9OTgzNDtlLm11c2ljYWxub3RlZGJsPTk4MzU7ZS5tdXNpY2ZsYXRzaWduPTk4Mzc7ZS5tdXNpY3NoYXJwc2lnbj05ODM5O2UubXVzc3F1YXJlPTEzMjM0O2UubXV2c3F1YXJlPTEzMjM4O2UubXV3c3F1YXJlPTEzMjQ0O2UubXZtZWdhc3F1YXJlPTEzMjQxO2UubXZzcXVhcmU9MTMyMzk7ZS5td21lZ2FzcXVhcmU9MTMyNDc7ZS5td3NxdWFyZT0xMzI0NTtlLm49MTEwO2UubmFiZW5nYWxpPTI0NzI7ZS5uYWJsYT04NzExO2UubmFjdXRlPTMyNDtlLm5hZGV2YT0yMzQ0O2UubmFndWphcmF0aT0yNzI4O2UubmFndXJtdWtoaT0yNjAwO2UubmFoaXJhZ2FuYT0xMjM5NDtlLm5ha2F0YWthbmE9MTI0OTA7ZS5uYWthdGFrYW5haGFsZndpZHRoPTY1NDEzO2UubmFwb3N0cm9waGU9MzI5O2UubmFzcXVhcmU9MTMxODU7ZS5uYm9wb21vZm89MTI1NTU7ZS5uYnNwYWNlPTE2MDtlLm5jYXJvbj0zMjg7ZS5uY2VkaWxsYT0zMjY7ZS5uY2lyY2xlPTk0Mzc7ZS5uY2lyY3VtZmxleGJlbG93PTc3NTU7ZS5uY29tbWFhY2NlbnQ9MzI2O2UubmRvdGFjY2VudD03NzQ5O2UubmRvdGJlbG93PTc3NTE7ZS5uZWhpcmFnYW5hPTEyMzk3O2UubmVrYXRha2FuYT0xMjQ5MztlLm5la2F0YWthbmFoYWxmd2lkdGg9NjU0MTY7ZS5uZXdzaGVxZWxzaWduPTgzNjI7ZS5uZnNxdWFyZT0xMzE5NTtlLm5nYWJlbmdhbGk9MjQ1NztlLm5nYWRldmE9MjMyOTtlLm5nYWd1amFyYXRpPTI3MTM7ZS5uZ2FndXJtdWtoaT0yNTg1O2Uubmdvbmd1dGhhaT0zNTkxO2UubmhpcmFnYW5hPTEyNDM1O2Uubmhvb2tsZWZ0PTYyNjtlLm5ob29rcmV0cm9mbGV4PTYyNztlLm5pZXVuYWNpcmNsZWtvcmVhbj0xMjkxMTtlLm5pZXVuYXBhcmVua29yZWFuPTEyODE1O2UubmlldW5jaWV1Y2tvcmVhbj0xMjU5NztlLm5pZXVuY2lyY2xla29yZWFuPTEyODk3O2UubmlldW5oaWV1aGtvcmVhbj0xMjU5ODtlLm5pZXVua29yZWFuPTEyNTk2O2UubmlldW5wYW5zaW9za29yZWFuPTEyNjQ4O2UubmlldW5wYXJlbmtvcmVhbj0xMjgwMTtlLm5pZXVuc2lvc2tvcmVhbj0xMjY0NztlLm5pZXVudGlrZXV0a29yZWFuPTEyNjQ2O2UubmloaXJhZ2FuYT0xMjM5NTtlLm5pa2F0YWthbmE9MTI0OTE7ZS5uaWthdGFrYW5haGFsZndpZHRoPTY1NDE0O2UubmlraGFoaXRsZWZ0dGhhaT02MzY0MTtlLm5pa2hhaGl0dGhhaT0zNjYxO2UubmluZT01NztlLm5pbmVhcmFiaWM9MTY0MTtlLm5pbmViZW5nYWxpPTI1NDM7ZS5uaW5lY2lyY2xlPTkzMjA7ZS5uaW5lY2lyY2xlaW52ZXJzZXNhbnNzZXJpZj0xMDEzMDtlLm5pbmVkZXZhPTI0MTU7ZS5uaW5lZ3VqYXJhdGk9Mjc5OTtlLm5pbmVndXJtdWtoaT0yNjcxO2UubmluZWhhY2thcmFiaWM9MTY0MTtlLm5pbmVoYW5nemhvdT0xMjMyOTtlLm5pbmVpZGVvZ3JhcGhpY3BhcmVuPTEyODQwO2UubmluZWluZmVyaW9yPTgzMjk7ZS5uaW5lbW9ub3NwYWNlPTY1MzA1O2UubmluZW9sZHN0eWxlPTYzMjg5O2UubmluZXBhcmVuPTkzNDA7ZS5uaW5lcGVyaW9kPTkzNjA7ZS5uaW5lcGVyc2lhbj0xNzg1O2UubmluZXJvbWFuPTg1Njg7ZS5uaW5lc3VwZXJpb3I9ODMxMztlLm5pbmV0ZWVuY2lyY2xlPTkzMzA7ZS5uaW5ldGVlbnBhcmVuPTkzNTA7ZS5uaW5ldGVlbnBlcmlvZD05MzcwO2UubmluZXRoYWk9MzY3MztlLm5qPTQ2MDtlLm5qZWN5cmlsbGljPTExMTQ7ZS5ua2F0YWthbmE9MTI1MzE7ZS5ua2F0YWthbmFoYWxmd2lkdGg9NjU0Mzc7ZS5ubGVncmlnaHRsb25nPTQxNDtlLm5saW5lYmVsb3c9Nzc1MztlLm5tb25vc3BhY2U9NjUzNTg7ZS5ubXNxdWFyZT0xMzIxMDtlLm5uYWJlbmdhbGk9MjQ2NztlLm5uYWRldmE9MjMzOTtlLm5uYWd1amFyYXRpPTI3MjM7ZS5ubmFndXJtdWtoaT0yNTk1O2Uubm5uYWRldmE9MjM0NTtlLm5vaGlyYWdhbmE9MTIzOTg7ZS5ub2thdGFrYW5hPTEyNDk0O2Uubm9rYXRha2FuYWhhbGZ3aWR0aD02NTQxNztlLm5vbmJyZWFraW5nc3BhY2U9MTYwO2Uubm9uZW50aGFpPTM2MDM7ZS5ub251dGhhaT0zNjA5O2Uubm9vbmFyYWJpYz0xNjA2O2Uubm9vbmZpbmFsYXJhYmljPTY1MjU0O2Uubm9vbmdodW5uYWFyYWJpYz0xNzIyO2Uubm9vbmdodW5uYWZpbmFsYXJhYmljPTY0NDE1O2Uubm9vbmluaXRpYWxhcmFiaWM9NjUyNTU7ZS5ub29uamVlbWluaXRpYWxhcmFiaWM9NjQ3MjI7ZS5ub29uamVlbWlzb2xhdGVkYXJhYmljPTY0NTg3O2Uubm9vbm1lZGlhbGFyYWJpYz02NTI1NjtlLm5vb25tZWVtaW5pdGlhbGFyYWJpYz02NDcyNTtlLm5vb25tZWVtaXNvbGF0ZWRhcmFiaWM9NjQ1OTA7ZS5ub29ubm9vbmZpbmFsYXJhYmljPTY0NjUzO2Uubm90Y29udGFpbnM9ODcxNjtlLm5vdGVsZW1lbnQ9ODcxMztlLm5vdGVsZW1lbnRvZj04NzEzO2Uubm90ZXF1YWw9ODgwMDtlLm5vdGdyZWF0ZXI9ODgxNTtlLm5vdGdyZWF0ZXJub3JlcXVhbD04ODE3O2Uubm90Z3JlYXRlcm5vcmxlc3M9ODgyNTtlLm5vdGlkZW50aWNhbD04ODAyO2Uubm90bGVzcz04ODE0O2Uubm90bGVzc25vcmVxdWFsPTg4MTY7ZS5ub3RwYXJhbGxlbD04NzQyO2Uubm90cHJlY2VkZXM9ODgzMjtlLm5vdHN1YnNldD04ODM2O2Uubm90c3VjY2VlZHM9ODgzMztlLm5vdHN1cGVyc2V0PTg4Mzc7ZS5ub3dhcm1lbmlhbj0xMzk4O2UubnBhcmVuPTkzODU7ZS5uc3NxdWFyZT0xMzIzMztlLm5zdXBlcmlvcj04MzE5O2UubnRpbGRlPTI0MTtlLm51PTk1NztlLm51aGlyYWdhbmE9MTIzOTY7ZS5udWthdGFrYW5hPTEyNDkyO2UubnVrYXRha2FuYWhhbGZ3aWR0aD02NTQxNTtlLm51a3RhYmVuZ2FsaT0yNDkyO2UubnVrdGFkZXZhPTIzNjQ7ZS5udWt0YWd1amFyYXRpPTI3NDg7ZS5udWt0YWd1cm11a2hpPTI2MjA7ZS5udW1iZXJzaWduPTM1O2UubnVtYmVyc2lnbm1vbm9zcGFjZT02NTI4MztlLm51bWJlcnNpZ25zbWFsbD02NTExOTtlLm51bWVyYWxzaWduZ3JlZWs9ODg0O2UubnVtZXJhbHNpZ25sb3dlcmdyZWVrPTg4NTtlLm51bWVybz04NDcwO2UubnVuPTE1MDQ7ZS5udW5kYWdlc2g9NjQzMjA7ZS5udW5kYWdlc2hoZWJyZXc9NjQzMjA7ZS5udW5oZWJyZXc9MTUwNDtlLm52c3F1YXJlPTEzMjM3O2UubndzcXVhcmU9MTMyNDM7ZS5ueWFiZW5nYWxpPTI0NjI7ZS5ueWFkZXZhPTIzMzQ7ZS5ueWFndWphcmF0aT0yNzE4O2UubnlhZ3VybXVraGk9MjU5MDtlLm89MTExO2Uub2FjdXRlPTI0MztlLm9hbmd0aGFpPTM2Mjk7ZS5vYmFycmVkPTYyOTtlLm9iYXJyZWRjeXJpbGxpYz0xMjU3O2Uub2JhcnJlZGRpZXJlc2lzY3lyaWxsaWM9MTI1OTtlLm9iZW5nYWxpPTI0NTE7ZS5vYm9wb21vZm89MTI1NzE7ZS5vYnJldmU9MzM1O2Uub2NhbmRyYWRldmE9MjMyMTtlLm9jYW5kcmFndWphcmF0aT0yNzA1O2Uub2NhbmRyYXZvd2Vsc2lnbmRldmE9MjM3NztlLm9jYW5kcmF2b3dlbHNpZ25ndWphcmF0aT0yNzYxO2Uub2Nhcm9uPTQ2NjtlLm9jaXJjbGU9OTQzODtlLm9jaXJjdW1mbGV4PTI0NDtlLm9jaXJjdW1mbGV4YWN1dGU9Nzg4OTtlLm9jaXJjdW1mbGV4ZG90YmVsb3c9Nzg5NztlLm9jaXJjdW1mbGV4Z3JhdmU9Nzg5MTtlLm9jaXJjdW1mbGV4aG9va2Fib3ZlPTc4OTM7ZS5vY2lyY3VtZmxleHRpbGRlPTc4OTU7ZS5vY3lyaWxsaWM9MTA4NjtlLm9kYmxhY3V0ZT0zMzc7ZS5vZGJsZ3JhdmU9NTI1O2Uub2RldmE9MjMyMztlLm9kaWVyZXNpcz0yNDY7ZS5vZGllcmVzaXNjeXJpbGxpYz0xMjU1O2Uub2RvdGJlbG93PTc4ODU7ZS5vZT0zMzk7ZS5vZWtvcmVhbj0xMjYzNDtlLm9nb25laz03MzE7ZS5vZ29uZWtjbWI9ODA4O2Uub2dyYXZlPTI0MjtlLm9ndWphcmF0aT0yNzA3O2Uub2hhcm1lbmlhbj0xNDEzO2Uub2hpcmFnYW5hPTEyMzYyO2Uub2hvb2thYm92ZT03ODg3O2Uub2hvcm49NDE3O2Uub2hvcm5hY3V0ZT03ODk5O2Uub2hvcm5kb3RiZWxvdz03OTA3O2Uub2hvcm5ncmF2ZT03OTAxO2Uub2hvcm5ob29rYWJvdmU9NzkwMztlLm9ob3JudGlsZGU9NzkwNTtlLm9odW5nYXJ1bWxhdXQ9MzM3O2Uub2k9NDE5O2Uub2ludmVydGVkYnJldmU9NTI3O2Uub2thdGFrYW5hPTEyNDU4O2Uub2thdGFrYW5haGFsZndpZHRoPTY1Mzk3O2Uub2tvcmVhbj0xMjYzMTtlLm9sZWhlYnJldz0xNDUxO2Uub21hY3Jvbj0zMzM7ZS5vbWFjcm9uYWN1dGU9Nzc2MztlLm9tYWNyb25ncmF2ZT03NzYxO2Uub21kZXZhPTIzODQ7ZS5vbWVnYT05Njk7ZS5vbWVnYTE9OTgyO2Uub21lZ2FjeXJpbGxpYz0xMTIxO2Uub21lZ2FsYXRpbmNsb3NlZD02MzE7ZS5vbWVnYXJvdW5kY3lyaWxsaWM9MTE0NztlLm9tZWdhdGl0bG9jeXJpbGxpYz0xMTQ5O2Uub21lZ2F0b25vcz05NzQ7ZS5vbWd1amFyYXRpPTI3Njg7ZS5vbWljcm9uPTk1OTtlLm9taWNyb250b25vcz05NzI7ZS5vbW9ub3NwYWNlPTY1MzU5O2Uub25lPTQ5O2Uub25lYXJhYmljPTE2MzM7ZS5vbmViZW5nYWxpPTI1MzU7ZS5vbmVjaXJjbGU9OTMxMjtlLm9uZWNpcmNsZWludmVyc2VzYW5zc2VyaWY9MTAxMjI7ZS5vbmVkZXZhPTI0MDc7ZS5vbmVkb3RlbmxlYWRlcj04MjI4O2Uub25lZWlnaHRoPTg1Mzk7ZS5vbmVmaXR0ZWQ9NjMxOTY7ZS5vbmVndWphcmF0aT0yNzkxO2Uub25lZ3VybXVraGk9MjY2MztlLm9uZWhhY2thcmFiaWM9MTYzMztlLm9uZWhhbGY9MTg5O2Uub25laGFuZ3pob3U9MTIzMjE7ZS5vbmVpZGVvZ3JhcGhpY3BhcmVuPTEyODMyO2Uub25laW5mZXJpb3I9ODMyMTtlLm9uZW1vbm9zcGFjZT02NTI5NztlLm9uZW51bWVyYXRvcmJlbmdhbGk9MjU0ODtlLm9uZW9sZHN0eWxlPTYzMjgxO2Uub25lcGFyZW49OTMzMjtlLm9uZXBlcmlvZD05MzUyO2Uub25lcGVyc2lhbj0xNzc3O2Uub25lcXVhcnRlcj0xODg7ZS5vbmVyb21hbj04NTYwO2Uub25lc3VwZXJpb3I9MTg1O2Uub25ldGhhaT0zNjY1O2Uub25ldGhpcmQ9ODUzMTtlLm9vZ29uZWs9NDkxO2Uub29nb25la21hY3Jvbj00OTM7ZS5vb2d1cm11a2hpPTI1Nzk7ZS5vb21hdHJhZ3VybXVraGk9MjYzNTtlLm9vcGVuPTU5NjtlLm9wYXJlbj05Mzg2O2Uub3BlbmJ1bGxldD05NzAyO2Uub3B0aW9uPTg5OTc7ZS5vcmRmZW1pbmluZT0xNzA7ZS5vcmRtYXNjdWxpbmU9MTg2O2Uub3J0aG9nb25hbD04NzM1O2Uub3Nob3J0ZGV2YT0yMzIyO2Uub3Nob3J0dm93ZWxzaWduZGV2YT0yMzc4O2Uub3NsYXNoPTI0ODtlLm9zbGFzaGFjdXRlPTUxMTtlLm9zbWFsbGhpcmFnYW5hPTEyMzYxO2Uub3NtYWxsa2F0YWthbmE9MTI0NTc7ZS5vc21hbGxrYXRha2FuYWhhbGZ3aWR0aD02NTM4NztlLm9zdHJva2VhY3V0ZT01MTE7ZS5vc3VwZXJpb3I9NjMyMTY7ZS5vdGN5cmlsbGljPTExNTE7ZS5vdGlsZGU9MjQ1O2Uub3RpbGRlYWN1dGU9Nzc1NztlLm90aWxkZWRpZXJlc2lzPTc3NTk7ZS5vdWJvcG9tb2ZvPTEyNTc3O2Uub3ZlcmxpbmU9ODI1NDtlLm92ZXJsaW5lY2VudGVybGluZT02NTA5ODtlLm92ZXJsaW5lY21iPTc3MztlLm92ZXJsaW5lZGFzaGVkPTY1MDk3O2Uub3ZlcmxpbmVkYmx3YXZ5PTY1MTAwO2Uub3ZlcmxpbmV3YXZ5PTY1MDk5O2Uub3ZlcnNjb3JlPTE3NTtlLm92b3dlbHNpZ25iZW5nYWxpPTI1MDc7ZS5vdm93ZWxzaWduZGV2YT0yMzc5O2Uub3Zvd2Vsc2lnbmd1amFyYXRpPTI3NjM7ZS5wPTExMjtlLnBhYW1wc3NxdWFyZT0xMzE4NDtlLnBhYXNlbnRvc3F1YXJlPTEzMDk5O2UucGFiZW5nYWxpPTI0NzQ7ZS5wYWN1dGU9Nzc2NTtlLnBhZGV2YT0yMzQ2O2UucGFnZWRvd249ODY3MTtlLnBhZ2V1cD04NjcwO2UucGFndWphcmF0aT0yNzMwO2UucGFndXJtdWtoaT0yNjAyO2UucGFoaXJhZ2FuYT0xMjQwMTtlLnBhaXlhbm5vaXRoYWk9MzYzMTtlLnBha2F0YWthbmE9MTI0OTc7ZS5wYWxhdGFsaXphdGlvbmN5cmlsbGljY21iPTExNTY7ZS5wYWxvY2hrYWN5cmlsbGljPTEyMTY7ZS5wYW5zaW9za29yZWFuPTEyNjcxO2UucGFyYWdyYXBoPTE4MjtlLnBhcmFsbGVsPTg3NDE7ZS5wYXJlbmxlZnQ9NDA7ZS5wYXJlbmxlZnRhbHRvbmVhcmFiaWM9NjQ4MzA7ZS5wYXJlbmxlZnRidD02MzcyNTtlLnBhcmVubGVmdGV4PTYzNzI0O2UucGFyZW5sZWZ0aW5mZXJpb3I9ODMzMztlLnBhcmVubGVmdG1vbm9zcGFjZT02NTI4ODtlLnBhcmVubGVmdHNtYWxsPTY1MTEzO2UucGFyZW5sZWZ0c3VwZXJpb3I9ODMxNztlLnBhcmVubGVmdHRwPTYzNzIzO2UucGFyZW5sZWZ0dmVydGljYWw9NjUwNzc7ZS5wYXJlbnJpZ2h0PTQxO2UucGFyZW5yaWdodGFsdG9uZWFyYWJpYz02NDgzMTtlLnBhcmVucmlnaHRidD02MzczNjtlLnBhcmVucmlnaHRleD02MzczNTtlLnBhcmVucmlnaHRpbmZlcmlvcj04MzM0O2UucGFyZW5yaWdodG1vbm9zcGFjZT02NTI4OTtlLnBhcmVucmlnaHRzbWFsbD02NTExNDtlLnBhcmVucmlnaHRzdXBlcmlvcj04MzE4O2UucGFyZW5yaWdodHRwPTYzNzM0O2UucGFyZW5yaWdodHZlcnRpY2FsPTY1MDc4O2UucGFydGlhbGRpZmY9ODcwNjtlLnBhc2VxaGVicmV3PTE0NzI7ZS5wYXNodGFoZWJyZXc9MTQzMztlLnBhc3F1YXJlPTEzMjI1O2UucGF0YWg9MTQ2MztlLnBhdGFoMTE9MTQ2MztlLnBhdGFoMWQ9MTQ2MztlLnBhdGFoMmE9MTQ2MztlLnBhdGFoaGVicmV3PTE0NjM7ZS5wYXRhaG5hcnJvd2hlYnJldz0xNDYzO2UucGF0YWhxdWFydGVyaGVicmV3PTE0NjM7ZS5wYXRhaHdpZGVoZWJyZXc9MTQ2MztlLnBhemVyaGVicmV3PTE0NDE7ZS5wYm9wb21vZm89MTI1NTA7ZS5wY2lyY2xlPTk0Mzk7ZS5wZG90YWNjZW50PTc3Njc7ZS5wZT0xNTA4O2UucGVjeXJpbGxpYz0xMDg3O2UucGVkYWdlc2g9NjQzMjQ7ZS5wZWRhZ2VzaGhlYnJldz02NDMyNDtlLnBlZXppc3F1YXJlPTEzMTE1O2UucGVmaW5hbGRhZ2VzaGhlYnJldz02NDMyMztlLnBlaGFyYWJpYz0xNjYyO2UucGVoYXJtZW5pYW49MTQwMjtlLnBlaGVicmV3PTE1MDg7ZS5wZWhmaW5hbGFyYWJpYz02NDM0MztlLnBlaGluaXRpYWxhcmFiaWM9NjQzNDQ7ZS5wZWhpcmFnYW5hPTEyNDEwO2UucGVobWVkaWFsYXJhYmljPTY0MzQ1O2UucGVrYXRha2FuYT0xMjUwNjtlLnBlbWlkZGxlaG9va2N5cmlsbGljPTExOTE7ZS5wZXJhZmVoZWJyZXc9NjQzMzQ7ZS5wZXJjZW50PTM3O2UucGVyY2VudGFyYWJpYz0xNjQyO2UucGVyY2VudG1vbm9zcGFjZT02NTI4NTtlLnBlcmNlbnRzbWFsbD02NTEzMDtlLnBlcmlvZD00NjtlLnBlcmlvZGFybWVuaWFuPTE0MTc7ZS5wZXJpb2RjZW50ZXJlZD0xODM7ZS5wZXJpb2RoYWxmd2lkdGg9NjUzNzc7ZS5wZXJpb2RpbmZlcmlvcj02MzIwNztlLnBlcmlvZG1vbm9zcGFjZT02NTI5NDtlLnBlcmlvZHNtYWxsPTY1MTA2O2UucGVyaW9kc3VwZXJpb3I9NjMyMDg7ZS5wZXJpc3BvbWVuaWdyZWVrY21iPTgzNDtlLnBlcnBlbmRpY3VsYXI9ODg2OTtlLnBlcnRob3VzYW5kPTgyNDA7ZS5wZXNldGE9ODM1OTtlLnBmc3F1YXJlPTEzMTk0O2UucGhhYmVuZ2FsaT0yNDc1O2UucGhhZGV2YT0yMzQ3O2UucGhhZ3VqYXJhdGk9MjczMTtlLnBoYWd1cm11a2hpPTI2MDM7ZS5waGk9OTY2O2UucGhpMT05ODE7ZS5waGlldXBoYWNpcmNsZWtvcmVhbj0xMjkyMjtlLnBoaWV1cGhhcGFyZW5rb3JlYW49MTI4MjY7ZS5waGlldXBoY2lyY2xla29yZWFuPTEyOTA4O2UucGhpZXVwaGtvcmVhbj0xMjYyMTtlLnBoaWV1cGhwYXJlbmtvcmVhbj0xMjgxMjtlLnBoaWxhdGluPTYzMjtlLnBoaW50aHV0aGFpPTM2NDI7ZS5waGlzeW1ib2xncmVlaz05ODE7ZS5waG9vaz00MjE7ZS5waG9waGFudGhhaT0zNjE0O2UucGhvcGh1bmd0aGFpPTM2MTI7ZS5waG9zYW1waGFvdGhhaT0zNjE2O2UucGk9OTYwO2UucGlldXBhY2lyY2xla29yZWFuPTEyOTE1O2UucGlldXBhcGFyZW5rb3JlYW49MTI4MTk7ZS5waWV1cGNpZXVja29yZWFuPTEyNjYyO2UucGlldXBjaXJjbGVrb3JlYW49MTI5MDE7ZS5waWV1cGtpeWVva2tvcmVhbj0xMjY1ODtlLnBpZXVwa29yZWFuPTEyNjEwO2UucGlldXBwYXJlbmtvcmVhbj0xMjgwNTtlLnBpZXVwc2lvc2tpeWVva2tvcmVhbj0xMjY2MDtlLnBpZXVwc2lvc2tvcmVhbj0xMjYxMjtlLnBpZXVwc2lvc3Rpa2V1dGtvcmVhbj0xMjY2MTtlLnBpZXVwdGhpZXV0aGtvcmVhbj0xMjY2MztlLnBpZXVwdGlrZXV0a29yZWFuPTEyNjU5O2UucGloaXJhZ2FuYT0xMjQwNDtlLnBpa2F0YWthbmE9MTI1MDA7ZS5waXN5bWJvbGdyZWVrPTk4MjtlLnBpd3Jhcm1lbmlhbj0xNDExO2UucGxhbmNrb3ZlcjJwaT04NDYzO2UucGxhbmNrb3ZlcjJwaTE9ODQ2MztlLnBsdXM9NDM7ZS5wbHVzYmVsb3djbWI9Nzk5O2UucGx1c2NpcmNsZT04ODUzO2UucGx1c21pbnVzPTE3NztlLnBsdXNtb2Q9NzI2O2UucGx1c21vbm9zcGFjZT02NTI5MTtlLnBsdXNzbWFsbD02NTEyMjtlLnBsdXNzdXBlcmlvcj04MzE0O2UucG1vbm9zcGFjZT02NTM2MDtlLnBtc3F1YXJlPTEzMjcyO2UucG9oaXJhZ2FuYT0xMjQxMztlLnBvaW50aW5naW5kZXhkb3dud2hpdGU9OTc1OTtlLnBvaW50aW5naW5kZXhsZWZ0d2hpdGU9OTc1NjtlLnBvaW50aW5naW5kZXhyaWdodHdoaXRlPTk3NTg7ZS5wb2ludGluZ2luZGV4dXB3aGl0ZT05NzU3O2UucG9rYXRha2FuYT0xMjUwOTtlLnBvcGxhdGhhaT0zNjExO2UucG9zdGFsbWFyaz0xMjMwNjtlLnBvc3RhbG1hcmtmYWNlPTEyMzIwO2UucHBhcmVuPTkzODc7ZS5wcmVjZWRlcz04ODI2O2UucHJlc2NyaXB0aW9uPTg0Nzg7ZS5wcmltZW1vZD02OTc7ZS5wcmltZXJldmVyc2VkPTgyNDU7ZS5wcm9kdWN0PTg3MTk7ZS5wcm9qZWN0aXZlPTg5NjU7ZS5wcm9sb25nZWRrYW5hPTEyNTQwO2UucHJvcGVsbG9yPTg5ODQ7ZS5wcm9wZXJzdWJzZXQ9ODgzNDtlLnByb3BlcnN1cGVyc2V0PTg4MzU7ZS5wcm9wb3J0aW9uPTg3NTk7ZS5wcm9wb3J0aW9uYWw9ODczMztlLnBzaT05Njg7ZS5wc2ljeXJpbGxpYz0xMTM3O2UucHNpbGlwbmV1bWF0YWN5cmlsbGljY21iPTExNTg7ZS5wc3NxdWFyZT0xMzIzMjtlLnB1aGlyYWdhbmE9MTI0MDc7ZS5wdWthdGFrYW5hPTEyNTAzO2UucHZzcXVhcmU9MTMyMzY7ZS5wd3NxdWFyZT0xMzI0MjtlLnE9MTEzO2UucWFkZXZhPTIzOTI7ZS5xYWRtYWhlYnJldz0xNDQ4O2UucWFmYXJhYmljPTE2MDI7ZS5xYWZmaW5hbGFyYWJpYz02NTIzODtlLnFhZmluaXRpYWxhcmFiaWM9NjUyMzk7ZS5xYWZtZWRpYWxhcmFiaWM9NjUyNDA7ZS5xYW1hdHM9MTQ2NDtlLnFhbWF0czEwPTE0NjQ7ZS5xYW1hdHMxYT0xNDY0O2UucWFtYXRzMWM9MTQ2NDtlLnFhbWF0czI3PTE0NjQ7ZS5xYW1hdHMyOT0xNDY0O2UucWFtYXRzMzM9MTQ2NDtlLnFhbWF0c2RlPTE0NjQ7ZS5xYW1hdHNoZWJyZXc9MTQ2NDtlLnFhbWF0c25hcnJvd2hlYnJldz0xNDY0O2UucWFtYXRzcWF0YW5oZWJyZXc9MTQ2NDtlLnFhbWF0c3FhdGFubmFycm93aGVicmV3PTE0NjQ7ZS5xYW1hdHNxYXRhbnF1YXJ0ZXJoZWJyZXc9MTQ2NDtlLnFhbWF0c3FhdGFud2lkZWhlYnJldz0xNDY0O2UucWFtYXRzcXVhcnRlcmhlYnJldz0xNDY0O2UucWFtYXRzd2lkZWhlYnJldz0xNDY0O2UucWFybmV5cGFyYWhlYnJldz0xNDM5O2UucWJvcG9tb2ZvPTEyNTYxO2UucWNpcmNsZT05NDQwO2UucWhvb2s9NjcyO2UucW1vbm9zcGFjZT02NTM2MTtlLnFvZj0xNTExO2UucW9mZGFnZXNoPTY0MzI3O2UucW9mZGFnZXNoaGVicmV3PTY0MzI3O2UucW9maGVicmV3PTE1MTE7ZS5xcGFyZW49OTM4ODtlLnF1YXJ0ZXJub3RlPTk4MzM7ZS5xdWJ1dHM9MTQ2NztlLnF1YnV0czE4PTE0Njc7ZS5xdWJ1dHMyNT0xNDY3O2UucXVidXRzMzE9MTQ2NztlLnF1YnV0c2hlYnJldz0xNDY3O2UucXVidXRzbmFycm93aGVicmV3PTE0Njc7ZS5xdWJ1dHNxdWFydGVyaGVicmV3PTE0Njc7ZS5xdWJ1dHN3aWRlaGVicmV3PTE0Njc7ZS5xdWVzdGlvbj02MztlLnF1ZXN0aW9uYXJhYmljPTE1Njc7ZS5xdWVzdGlvbmFybWVuaWFuPTEzNzQ7ZS5xdWVzdGlvbmRvd249MTkxO2UucXVlc3Rpb25kb3duc21hbGw9NjM0MjM7ZS5xdWVzdGlvbmdyZWVrPTg5NDtlLnF1ZXN0aW9ubW9ub3NwYWNlPTY1MzExO2UucXVlc3Rpb25zbWFsbD02MzI5NTtlLnF1b3RlZGJsPTM0O2UucXVvdGVkYmxiYXNlPTgyMjI7ZS5xdW90ZWRibGxlZnQ9ODIyMDtlLnF1b3RlZGJsbW9ub3NwYWNlPTY1MjgyO2UucXVvdGVkYmxwcmltZT0xMjMxODtlLnF1b3RlZGJscHJpbWVyZXZlcnNlZD0xMjMxNztlLnF1b3RlZGJscmlnaHQ9ODIyMTtlLnF1b3RlbGVmdD04MjE2O2UucXVvdGVsZWZ0cmV2ZXJzZWQ9ODIxOTtlLnF1b3RlcmV2ZXJzZWQ9ODIxOTtlLnF1b3RlcmlnaHQ9ODIxNztlLnF1b3RlcmlnaHRuPTMyOTtlLnF1b3Rlc2luZ2xiYXNlPTgyMTg7ZS5xdW90ZXNpbmdsZT0zOTtlLnF1b3Rlc2luZ2xlbW9ub3NwYWNlPTY1Mjg3O2Uucj0xMTQ7ZS5yYWFybWVuaWFuPTE0MDQ7ZS5yYWJlbmdhbGk9MjQ4MDtlLnJhY3V0ZT0zNDE7ZS5yYWRldmE9MjM1MjtlLnJhZGljYWw9ODczMDtlLnJhZGljYWxleD02MzcxNztlLnJhZG92ZXJzc3F1YXJlPTEzMjMwO2UucmFkb3ZlcnNzcXVhcmVkc3F1YXJlPTEzMjMxO2UucmFkc3F1YXJlPTEzMjI5O2UucmFmZT0xNDcxO2UucmFmZWhlYnJldz0xNDcxO2UucmFndWphcmF0aT0yNzM2O2UucmFndXJtdWtoaT0yNjA4O2UucmFoaXJhZ2FuYT0xMjQyNTtlLnJha2F0YWthbmE9MTI1MjE7ZS5yYWthdGFrYW5haGFsZndpZHRoPTY1NDMxO2UucmFsb3dlcmRpYWdvbmFsYmVuZ2FsaT0yNTQ1O2UucmFtaWRkbGVkaWFnb25hbGJlbmdhbGk9MjU0NDtlLnJhbXNob3JuPTYxMjtlLnJhdGlvPTg3NTg7ZS5yYm9wb21vZm89MTI1NjY7ZS5yY2Fyb249MzQ1O2UucmNlZGlsbGE9MzQzO2UucmNpcmNsZT05NDQxO2UucmNvbW1hYWNjZW50PTM0MztlLnJkYmxncmF2ZT01Mjk7ZS5yZG90YWNjZW50PTc3Njk7ZS5yZG90YmVsb3c9Nzc3MTtlLnJkb3RiZWxvd21hY3Jvbj03NzczO2UucmVmZXJlbmNlbWFyaz04MjUxO2UucmVmbGV4c3Vic2V0PTg4Mzg7ZS5yZWZsZXhzdXBlcnNldD04ODM5O2UucmVnaXN0ZXJlZD0xNzQ7ZS5yZWdpc3RlcnNhbnM9NjM3MjA7ZS5yZWdpc3RlcnNlcmlmPTYzMTk0O2UucmVoYXJhYmljPTE1ODU7ZS5yZWhhcm1lbmlhbj0xNDA4O2UucmVoZmluYWxhcmFiaWM9NjUxOTg7ZS5yZWhpcmFnYW5hPTEyNDI4O2UucmVrYXRha2FuYT0xMjUyNDtlLnJla2F0YWthbmFoYWxmd2lkdGg9NjU0MzQ7ZS5yZXNoPTE1MTI7ZS5yZXNoZGFnZXNoaGVicmV3PTY0MzI4O2UucmVzaGhlYnJldz0xNTEyO2UucmV2ZXJzZWR0aWxkZT04NzY1O2UucmV2aWFoZWJyZXc9MTQzMTtlLnJldmlhbXVncmFzaGhlYnJldz0xNDMxO2UucmV2bG9naWNhbG5vdD04OTc2O2UucmZpc2hob29rPTYzODtlLnJmaXNoaG9va3JldmVyc2VkPTYzOTtlLnJoYWJlbmdhbGk9MjUyNTtlLnJoYWRldmE9MjM5NztlLnJobz05NjE7ZS5yaG9vaz02Mzc7ZS5yaG9va3R1cm5lZD02MzU7ZS5yaG9va3R1cm5lZHN1cGVyaW9yPTY5MztlLnJob3N5bWJvbGdyZWVrPTEwMDk7ZS5yaG90aWNob29rbW9kPTczNDtlLnJpZXVsYWNpcmNsZWtvcmVhbj0xMjkxMztlLnJpZXVsYXBhcmVua29yZWFuPTEyODE3O2UucmlldWxjaXJjbGVrb3JlYW49MTI4OTk7ZS5yaWV1bGhpZXVoa29yZWFuPTEyNjA4O2UucmlldWxraXllb2trb3JlYW49MTI2MDI7ZS5yaWV1bGtpeWVva3Npb3Nrb3JlYW49MTI2NDk7ZS5yaWV1bGtvcmVhbj0xMjYwMTtlLnJpZXVsbWlldW1rb3JlYW49MTI2MDM7ZS5yaWV1bHBhbnNpb3Nrb3JlYW49MTI2NTI7ZS5yaWV1bHBhcmVua29yZWFuPTEyODAzO2UucmlldWxwaGlldXBoa29yZWFuPTEyNjA3O2UucmlldWxwaWV1cGtvcmVhbj0xMjYwNDtlLnJpZXVscGlldXBzaW9za29yZWFuPTEyNjUxO2UucmlldWxzaW9za29yZWFuPTEyNjA1O2UucmlldWx0aGlldXRoa29yZWFuPTEyNjA2O2UucmlldWx0aWtldXRrb3JlYW49MTI2NTA7ZS5yaWV1bHllb3JpbmhpZXVoa29yZWFuPTEyNjUzO2UucmlnaHRhbmdsZT04NzM1O2UucmlnaHR0YWNrYmVsb3djbWI9NzkzO2UucmlnaHR0cmlhbmdsZT04ODk1O2UucmloaXJhZ2FuYT0xMjQyNjtlLnJpa2F0YWthbmE9MTI1MjI7ZS5yaWthdGFrYW5haGFsZndpZHRoPTY1NDMyO2UucmluZz03MzA7ZS5yaW5nYmVsb3djbWI9ODA1O2UucmluZ2NtYj03Nzg7ZS5yaW5naGFsZmxlZnQ9NzAzO2UucmluZ2hhbGZsZWZ0YXJtZW5pYW49MTM2OTtlLnJpbmdoYWxmbGVmdGJlbG93Y21iPTc5NjtlLnJpbmdoYWxmbGVmdGNlbnRlcmVkPTcyMztlLnJpbmdoYWxmcmlnaHQ9NzAyO2UucmluZ2hhbGZyaWdodGJlbG93Y21iPTgyNTtlLnJpbmdoYWxmcmlnaHRjZW50ZXJlZD03MjI7ZS5yaW52ZXJ0ZWRicmV2ZT01MzE7ZS5yaXR0b3J1c3F1YXJlPTEzMTM3O2UucmxpbmViZWxvdz03Nzc1O2UucmxvbmdsZWc9NjM2O2UucmxvbmdsZWd0dXJuZWQ9NjM0O2Uucm1vbm9zcGFjZT02NTM2MjtlLnJvaGlyYWdhbmE9MTI0Mjk7ZS5yb2thdGFrYW5hPTEyNTI1O2Uucm9rYXRha2FuYWhhbGZ3aWR0aD02NTQzNTtlLnJvcnVhdGhhaT0zNjE5O2UucnBhcmVuPTkzODk7ZS5ycmFiZW5nYWxpPTI1MjQ7ZS5ycmFkZXZhPTIzNTM7ZS5ycmFndXJtdWtoaT0yNjUyO2UucnJlaGFyYWJpYz0xNjgxO2UucnJlaGZpbmFsYXJhYmljPTY0Mzk3O2UucnJ2b2NhbGljYmVuZ2FsaT0yNTI4O2UucnJ2b2NhbGljZGV2YT0yNDAwO2UucnJ2b2NhbGljZ3VqYXJhdGk9Mjc4NDtlLnJydm9jYWxpY3Zvd2Vsc2lnbmJlbmdhbGk9MjUwMDtlLnJydm9jYWxpY3Zvd2Vsc2lnbmRldmE9MjM3MjtlLnJydm9jYWxpY3Zvd2Vsc2lnbmd1amFyYXRpPTI3NTY7ZS5yc3VwZXJpb3I9NjMyMTc7ZS5ydGJsb2NrPTk2MTY7ZS5ydHVybmVkPTYzMztlLnJ0dXJuZWRzdXBlcmlvcj02OTI7ZS5ydWhpcmFnYW5hPTEyNDI3O2UucnVrYXRha2FuYT0xMjUyMztlLnJ1a2F0YWthbmFoYWxmd2lkdGg9NjU0MzM7ZS5ydXBlZW1hcmtiZW5nYWxpPTI1NDY7ZS5ydXBlZXNpZ25iZW5nYWxpPTI1NDc7ZS5ydXBpYWg9NjMxOTc7ZS5ydXRoYWk9MzYyMDtlLnJ2b2NhbGljYmVuZ2FsaT0yNDQzO2UucnZvY2FsaWNkZXZhPTIzMTU7ZS5ydm9jYWxpY2d1amFyYXRpPTI2OTk7ZS5ydm9jYWxpY3Zvd2Vsc2lnbmJlbmdhbGk9MjQ5OTtlLnJ2b2NhbGljdm93ZWxzaWduZGV2YT0yMzcxO2UucnZvY2FsaWN2b3dlbHNpZ25ndWphcmF0aT0yNzU1O2Uucz0xMTU7ZS5zYWJlbmdhbGk9MjQ4ODtlLnNhY3V0ZT0zNDc7ZS5zYWN1dGVkb3RhY2NlbnQ9Nzc4MTtlLnNhZGFyYWJpYz0xNTg5O2Uuc2FkZXZhPTIzNjA7ZS5zYWRmaW5hbGFyYWJpYz02NTIxMDtlLnNhZGluaXRpYWxhcmFiaWM9NjUyMTE7ZS5zYWRtZWRpYWxhcmFiaWM9NjUyMTI7ZS5zYWd1amFyYXRpPTI3NDQ7ZS5zYWd1cm11a2hpPTI2MTY7ZS5zYWhpcmFnYW5hPTEyMzczO2Uuc2FrYXRha2FuYT0xMjQ2OTtlLnNha2F0YWthbmFoYWxmd2lkdGg9NjU0MDM7ZS5zYWxsYWxsYWhvdWFsYXloZXdhc2FsbGFtYXJhYmljPTY1MDE4O2Uuc2FtZWtoPTE1MDU7ZS5zYW1la2hkYWdlc2g9NjQzMjE7ZS5zYW1la2hkYWdlc2hoZWJyZXc9NjQzMjE7ZS5zYW1la2hoZWJyZXc9MTUwNTtlLnNhcmFhYXRoYWk9MzYzNDtlLnNhcmFhZXRoYWk9MzY0OTtlLnNhcmFhaW1haW1hbGFpdGhhaT0zNjUyO2Uuc2FyYWFpbWFpbXVhbnRoYWk9MzY1MTtlLnNhcmFhbXRoYWk9MzYzNTtlLnNhcmFhdGhhaT0zNjMyO2Uuc2FyYWV0aGFpPTM2NDg7ZS5zYXJhaWlsZWZ0dGhhaT02MzYyMjtlLnNhcmFpaXRoYWk9MzYzNztlLnNhcmFpbGVmdHRoYWk9NjM2MjE7ZS5zYXJhaXRoYWk9MzYzNjtlLnNhcmFvdGhhaT0zNjUwO2Uuc2FyYXVlZWxlZnR0aGFpPTYzNjI0O2Uuc2FyYXVlZXRoYWk9MzYzOTtlLnNhcmF1ZWxlZnR0aGFpPTYzNjIzO2Uuc2FyYXVldGhhaT0zNjM4O2Uuc2FyYXV0aGFpPTM2NDA7ZS5zYXJhdXV0aGFpPTM2NDE7ZS5zYm9wb21vZm89MTI1Njk7ZS5zY2Fyb249MzUzO2Uuc2Nhcm9uZG90YWNjZW50PTc3ODM7ZS5zY2VkaWxsYT0zNTE7ZS5zY2h3YT02MDE7ZS5zY2h3YWN5cmlsbGljPTEyNDE7ZS5zY2h3YWRpZXJlc2lzY3lyaWxsaWM9MTI0MztlLnNjaHdhaG9vaz02MDI7ZS5zY2lyY2xlPTk0NDI7ZS5zY2lyY3VtZmxleD0zNDk7ZS5zY29tbWFhY2NlbnQ9NTM3O2Uuc2RvdGFjY2VudD03Nzc3O2Uuc2RvdGJlbG93PTc3Nzk7ZS5zZG90YmVsb3dkb3RhY2NlbnQ9Nzc4NTtlLnNlYWd1bGxiZWxvd2NtYj04Mjg7ZS5zZWNvbmQ9ODI0MztlLnNlY29uZHRvbmVjaGluZXNlPTcxNDtlLnNlY3Rpb249MTY3O2Uuc2VlbmFyYWJpYz0xNTg3O2Uuc2VlbmZpbmFsYXJhYmljPTY1MjAyO2Uuc2VlbmluaXRpYWxhcmFiaWM9NjUyMDM7ZS5zZWVubWVkaWFsYXJhYmljPTY1MjA0O2Uuc2Vnb2w9MTQ2MjtlLnNlZ29sMTM9MTQ2MjtlLnNlZ29sMWY9MTQ2MjtlLnNlZ29sMmM9MTQ2MjtlLnNlZ29saGVicmV3PTE0NjI7ZS5zZWdvbG5hcnJvd2hlYnJldz0xNDYyO2Uuc2Vnb2xxdWFydGVyaGVicmV3PTE0NjI7ZS5zZWdvbHRhaGVicmV3PTE0MjY7ZS5zZWdvbHdpZGVoZWJyZXc9MTQ2MjtlLnNlaGFybWVuaWFuPTE0MDU7ZS5zZWhpcmFnYW5hPTEyMzc5O2Uuc2VrYXRha2FuYT0xMjQ3NTtlLnNla2F0YWthbmFoYWxmd2lkdGg9NjU0MDY7ZS5zZW1pY29sb249NTk7ZS5zZW1pY29sb25hcmFiaWM9MTU2MztlLnNlbWljb2xvbm1vbm9zcGFjZT02NTMwNztlLnNlbWljb2xvbnNtYWxsPTY1MTA4O2Uuc2VtaXZvaWNlZG1hcmtrYW5hPTEyNDQ0O2Uuc2VtaXZvaWNlZG1hcmtrYW5haGFsZndpZHRoPTY1NDM5O2Uuc2VudGlzcXVhcmU9MTMwOTA7ZS5zZW50b3NxdWFyZT0xMzA5MTtlLnNldmVuPTU1O2Uuc2V2ZW5hcmFiaWM9MTYzOTtlLnNldmVuYmVuZ2FsaT0yNTQxO2Uuc2V2ZW5jaXJjbGU9OTMxODtlLnNldmVuY2lyY2xlaW52ZXJzZXNhbnNzZXJpZj0xMDEyODtlLnNldmVuZGV2YT0yNDEzO2Uuc2V2ZW5laWdodGhzPTg1NDI7ZS5zZXZlbmd1amFyYXRpPTI3OTc7ZS5zZXZlbmd1cm11a2hpPTI2Njk7ZS5zZXZlbmhhY2thcmFiaWM9MTYzOTtlLnNldmVuaGFuZ3pob3U9MTIzMjc7ZS5zZXZlbmlkZW9ncmFwaGljcGFyZW49MTI4Mzg7ZS5zZXZlbmluZmVyaW9yPTgzMjc7ZS5zZXZlbm1vbm9zcGFjZT02NTMwMztlLnNldmVub2xkc3R5bGU9NjMyODc7ZS5zZXZlbnBhcmVuPTkzMzg7ZS5zZXZlbnBlcmlvZD05MzU4O2Uuc2V2ZW5wZXJzaWFuPTE3ODM7ZS5zZXZlbnJvbWFuPTg1NjY7ZS5zZXZlbnN1cGVyaW9yPTgzMTE7ZS5zZXZlbnRlZW5jaXJjbGU9OTMyODtlLnNldmVudGVlbnBhcmVuPTkzNDg7ZS5zZXZlbnRlZW5wZXJpb2Q9OTM2ODtlLnNldmVudGhhaT0zNjcxO2Uuc2Z0aHlwaGVuPTE3MztlLnNoYWFybWVuaWFuPTEzOTk7ZS5zaGFiZW5nYWxpPTI0ODY7ZS5zaGFjeXJpbGxpYz0xMDk2O2Uuc2hhZGRhYXJhYmljPTE2MTc7ZS5zaGFkZGFkYW1tYWFyYWJpYz02NDYwOTtlLnNoYWRkYWRhbW1hdGFuYXJhYmljPTY0NjA2O2Uuc2hhZGRhZmF0aGFhcmFiaWM9NjQ2MDg7ZS5zaGFkZGFrYXNyYWFyYWJpYz02NDYxMDtlLnNoYWRkYWthc3JhdGFuYXJhYmljPTY0NjA3O2Uuc2hhZGU9OTYxODtlLnNoYWRlZGFyaz05NjE5O2Uuc2hhZGVsaWdodD05NjE3O2Uuc2hhZGVtZWRpdW09OTYxODtlLnNoYWRldmE9MjM1ODtlLnNoYWd1amFyYXRpPTI3NDI7ZS5zaGFndXJtdWtoaT0yNjE0O2Uuc2hhbHNoZWxldGhlYnJldz0xNDI3O2Uuc2hib3BvbW9mbz0xMjU2NTtlLnNoY2hhY3lyaWxsaWM9MTA5NztlLnNoZWVuYXJhYmljPTE1ODg7ZS5zaGVlbmZpbmFsYXJhYmljPTY1MjA2O2Uuc2hlZW5pbml0aWFsYXJhYmljPTY1MjA3O2Uuc2hlZW5tZWRpYWxhcmFiaWM9NjUyMDg7ZS5zaGVpY29wdGljPTk5NTtlLnNoZXFlbD04MzYyO2Uuc2hlcWVsaGVicmV3PTgzNjI7ZS5zaGV2YT0xNDU2O2Uuc2hldmExMTU9MTQ1NjtlLnNoZXZhMTU9MTQ1NjtlLnNoZXZhMjI9MTQ1NjtlLnNoZXZhMmU9MTQ1NjtlLnNoZXZhaGVicmV3PTE0NTY7ZS5zaGV2YW5hcnJvd2hlYnJldz0xNDU2O2Uuc2hldmFxdWFydGVyaGVicmV3PTE0NTY7ZS5zaGV2YXdpZGVoZWJyZXc9MTQ1NjtlLnNoaGFjeXJpbGxpYz0xMjExO2Uuc2hpbWFjb3B0aWM9MTAwNTtlLnNoaW49MTUxMztlLnNoaW5kYWdlc2g9NjQzMjk7ZS5zaGluZGFnZXNoaGVicmV3PTY0MzI5O2Uuc2hpbmRhZ2VzaHNoaW5kb3Q9NjQzMDA7ZS5zaGluZGFnZXNoc2hpbmRvdGhlYnJldz02NDMwMDtlLnNoaW5kYWdlc2hzaW5kb3Q9NjQzMDE7ZS5zaGluZGFnZXNoc2luZG90aGVicmV3PTY0MzAxO2Uuc2hpbmRvdGhlYnJldz0xNDczO2Uuc2hpbmhlYnJldz0xNTEzO2Uuc2hpbnNoaW5kb3Q9NjQyOTg7ZS5zaGluc2hpbmRvdGhlYnJldz02NDI5ODtlLnNoaW5zaW5kb3Q9NjQyOTk7ZS5zaGluc2luZG90aGVicmV3PTY0Mjk5O2Uuc2hvb2s9NjQyO2Uuc2lnbWE9OTYzO2Uuc2lnbWExPTk2MjtlLnNpZ21hZmluYWw9OTYyO2Uuc2lnbWFsdW5hdGVzeW1ib2xncmVlaz0xMDEwO2Uuc2loaXJhZ2FuYT0xMjM3NTtlLnNpa2F0YWthbmE9MTI0NzE7ZS5zaWthdGFrYW5haGFsZndpZHRoPTY1NDA0O2Uuc2lsdXFoZWJyZXc9MTQ2OTtlLnNpbHVxbGVmdGhlYnJldz0xNDY5O2Uuc2ltaWxhcj04NzY0O2Uuc2luZG90aGVicmV3PTE0NzQ7ZS5zaW9zYWNpcmNsZWtvcmVhbj0xMjkxNjtlLnNpb3NhcGFyZW5rb3JlYW49MTI4MjA7ZS5zaW9zY2lldWNrb3JlYW49MTI2NzA7ZS5zaW9zY2lyY2xla29yZWFuPTEyOTAyO2Uuc2lvc2tpeWVva2tvcmVhbj0xMjY2NjtlLnNpb3Nrb3JlYW49MTI2MTM7ZS5zaW9zbmlldW5rb3JlYW49MTI2Njc7ZS5zaW9zcGFyZW5rb3JlYW49MTI4MDY7ZS5zaW9zcGlldXBrb3JlYW49MTI2Njk7ZS5zaW9zdGlrZXV0a29yZWFuPTEyNjY4O2Uuc2l4PTU0O2Uuc2l4YXJhYmljPTE2Mzg7ZS5zaXhiZW5nYWxpPTI1NDA7ZS5zaXhjaXJjbGU9OTMxNztlLnNpeGNpcmNsZWludmVyc2VzYW5zc2VyaWY9MTAxMjc7ZS5zaXhkZXZhPTI0MTI7ZS5zaXhndWphcmF0aT0yNzk2O2Uuc2l4Z3VybXVraGk9MjY2ODtlLnNpeGhhY2thcmFiaWM9MTYzODtlLnNpeGhhbmd6aG91PTEyMzI2O2Uuc2l4aWRlb2dyYXBoaWNwYXJlbj0xMjgzNztlLnNpeGluZmVyaW9yPTgzMjY7ZS5zaXhtb25vc3BhY2U9NjUzMDI7ZS5zaXhvbGRzdHlsZT02MzI4NjtlLnNpeHBhcmVuPTkzMzc7ZS5zaXhwZXJpb2Q9OTM1NztlLnNpeHBlcnNpYW49MTc4MjtlLnNpeHJvbWFuPTg1NjU7ZS5zaXhzdXBlcmlvcj04MzEwO2Uuc2l4dGVlbmNpcmNsZT05MzI3O2Uuc2l4dGVlbmN1cnJlbmN5ZGVub21pbmF0b3JiZW5nYWxpPTI1NTM7ZS5zaXh0ZWVucGFyZW49OTM0NztlLnNpeHRlZW5wZXJpb2Q9OTM2NztlLnNpeHRoYWk9MzY3MDtlLnNsYXNoPTQ3O2Uuc2xhc2htb25vc3BhY2U9NjUyOTU7ZS5zbG9uZz0zODM7ZS5zbG9uZ2RvdGFjY2VudD03ODM1O2Uuc21pbGVmYWNlPTk3ODY7ZS5zbW9ub3NwYWNlPTY1MzYzO2Uuc29mcGFzdXFoZWJyZXc9MTQ3NTtlLnNvZnRoeXBoZW49MTczO2Uuc29mdHNpZ25jeXJpbGxpYz0xMTAwO2Uuc29oaXJhZ2FuYT0xMjM4MTtlLnNva2F0YWthbmE9MTI0Nzc7ZS5zb2thdGFrYW5haGFsZndpZHRoPTY1NDA3O2Uuc29saWR1c2xvbmdvdmVybGF5Y21iPTgyNDtlLnNvbGlkdXNzaG9ydG92ZXJsYXljbWI9ODIzO2Uuc29ydXNpdGhhaT0zNjI1O2Uuc29zYWxhdGhhaT0zNjI0O2Uuc29zb3RoYWk9MzU5NTtlLnNvc3VhdGhhaT0zNjI2O2Uuc3BhY2U9MzI7ZS5zcGFjZWhhY2thcmFiaWM9MzI7ZS5zcGFkZT05ODI0O2Uuc3BhZGVzdWl0YmxhY2s9OTgyNDtlLnNwYWRlc3VpdHdoaXRlPTk4Mjg7ZS5zcGFyZW49OTM5MDtlLnNxdWFyZWJlbG93Y21iPTgyNztlLnNxdWFyZWNjPTEzMjUyO2Uuc3F1YXJlY209MTMyMTM7ZS5zcXVhcmVkaWFnb25hbGNyb3NzaGF0Y2hmaWxsPTk2NDE7ZS5zcXVhcmVob3Jpem9udGFsZmlsbD05NjM2O2Uuc3F1YXJla2c9MTMxOTk7ZS5zcXVhcmVrbT0xMzIxNDtlLnNxdWFyZWttY2FwaXRhbD0xMzI2MjtlLnNxdWFyZWxuPTEzMjY1O2Uuc3F1YXJlbG9nPTEzMjY2O2Uuc3F1YXJlbWc9MTMxOTg7ZS5zcXVhcmVtaWw9MTMyNjk7ZS5zcXVhcmVtbT0xMzIxMjtlLnNxdWFyZW1zcXVhcmVkPTEzMjE3O2Uuc3F1YXJlb3J0aG9nb25hbGNyb3NzaGF0Y2hmaWxsPTk2Mzg7ZS5zcXVhcmV1cHBlcmxlZnR0b2xvd2VycmlnaHRmaWxsPTk2Mzk7ZS5zcXVhcmV1cHBlcnJpZ2h0dG9sb3dlcmxlZnRmaWxsPTk2NDA7ZS5zcXVhcmV2ZXJ0aWNhbGZpbGw9OTYzNztlLnNxdWFyZXdoaXRld2l0aHNtYWxsYmxhY2s9OTYzNTtlLnNyc3F1YXJlPTEzMjc1O2Uuc3NhYmVuZ2FsaT0yNDg3O2Uuc3NhZGV2YT0yMzU5O2Uuc3NhZ3VqYXJhdGk9Mjc0MztlLnNzYW5nY2lldWNrb3JlYW49MTI2MTc7ZS5zc2FuZ2hpZXVoa29yZWFuPTEyNjc3O2Uuc3NhbmdpZXVuZ2tvcmVhbj0xMjY3MjtlLnNzYW5na2l5ZW9ra29yZWFuPTEyNTk0O2Uuc3NhbmduaWV1bmtvcmVhbj0xMjY0NTtlLnNzYW5ncGlldXBrb3JlYW49MTI2MTE7ZS5zc2FuZ3Npb3Nrb3JlYW49MTI2MTQ7ZS5zc2FuZ3Rpa2V1dGtvcmVhbj0xMjYwMDtlLnNzdXBlcmlvcj02MzIxODtlLnN0ZXJsaW5nPTE2MztlLnN0ZXJsaW5nbW9ub3NwYWNlPTY1NTA1O2Uuc3Ryb2tlbG9uZ292ZXJsYXljbWI9ODIyO2Uuc3Ryb2tlc2hvcnRvdmVybGF5Y21iPTgyMTtlLnN1YnNldD04ODM0O2Uuc3Vic2V0bm90ZXF1YWw9ODg0MjtlLnN1YnNldG9yZXF1YWw9ODgzODtlLnN1Y2NlZWRzPTg4Mjc7ZS5zdWNodGhhdD04NzE1O2Uuc3VoaXJhZ2FuYT0xMjM3NztlLnN1a2F0YWthbmE9MTI0NzM7ZS5zdWthdGFrYW5haGFsZndpZHRoPTY1NDA1O2Uuc3VrdW5hcmFiaWM9MTYxODtlLnN1bW1hdGlvbj04NzIxO2Uuc3VuPTk3ODg7ZS5zdXBlcnNldD04ODM1O2Uuc3VwZXJzZXRub3RlcXVhbD04ODQzO2Uuc3VwZXJzZXRvcmVxdWFsPTg4Mzk7ZS5zdnNxdWFyZT0xMzI3NjtlLnN5b3V3YWVyYXNxdWFyZT0xMzE4MDtlLnQ9MTE2O2UudGFiZW5nYWxpPTI0Njg7ZS50YWNrZG93bj04ODY4O2UudGFja2xlZnQ9ODg2NztlLnRhZGV2YT0yMzQwO2UudGFndWphcmF0aT0yNzI0O2UudGFndXJtdWtoaT0yNTk2O2UudGFoYXJhYmljPTE1OTE7ZS50YWhmaW5hbGFyYWJpYz02NTIxODtlLnRhaGluaXRpYWxhcmFiaWM9NjUyMTk7ZS50YWhpcmFnYW5hPTEyMzgzO2UudGFobWVkaWFsYXJhYmljPTY1MjIwO2UudGFpc3lvdWVyYXNxdWFyZT0xMzE4MTtlLnRha2F0YWthbmE9MTI0Nzk7ZS50YWthdGFrYW5haGFsZndpZHRoPTY1NDA4O2UudGF0d2VlbGFyYWJpYz0xNjAwO2UudGF1PTk2NDtlLnRhdj0xNTE0O2UudGF2ZGFnZXM9NjQzMzA7ZS50YXZkYWdlc2g9NjQzMzA7ZS50YXZkYWdlc2hoZWJyZXc9NjQzMzA7ZS50YXZoZWJyZXc9MTUxNDtlLnRiYXI9MzU5O2UudGJvcG9tb2ZvPTEyNTU0O2UudGNhcm9uPTM1NztlLnRjY3VybD02ODA7ZS50Y2VkaWxsYT0zNTU7ZS50Y2hlaGFyYWJpYz0xNjcwO2UudGNoZWhmaW5hbGFyYWJpYz02NDM3OTtlLnRjaGVoaW5pdGlhbGFyYWJpYz02NDM4MDtlLnRjaGVobWVkaWFsYXJhYmljPTY0MzgxO2UudGNpcmNsZT05NDQzO2UudGNpcmN1bWZsZXhiZWxvdz03NzkzO2UudGNvbW1hYWNjZW50PTM1NTtlLnRkaWVyZXNpcz03ODMxO2UudGRvdGFjY2VudD03Nzg3O2UudGRvdGJlbG93PTc3ODk7ZS50ZWN5cmlsbGljPTEwOTA7ZS50ZWRlc2NlbmRlcmN5cmlsbGljPTExOTc7ZS50ZWhhcmFiaWM9MTU3ODtlLnRlaGZpbmFsYXJhYmljPTY1MTc0O2UudGVoaGFoaW5pdGlhbGFyYWJpYz02NDY3NDtlLnRlaGhhaGlzb2xhdGVkYXJhYmljPTY0NTI0O2UudGVoaW5pdGlhbGFyYWJpYz02NTE3NTtlLnRlaGlyYWdhbmE9MTIzOTA7ZS50ZWhqZWVtaW5pdGlhbGFyYWJpYz02NDY3MztlLnRlaGplZW1pc29sYXRlZGFyYWJpYz02NDUyMztlLnRlaG1hcmJ1dGFhcmFiaWM9MTU3NztlLnRlaG1hcmJ1dGFmaW5hbGFyYWJpYz02NTE3MjtlLnRlaG1lZGlhbGFyYWJpYz02NTE3NjtlLnRlaG1lZW1pbml0aWFsYXJhYmljPTY0Njc2O2UudGVobWVlbWlzb2xhdGVkYXJhYmljPTY0NTI2O2UudGVobm9vbmZpbmFsYXJhYmljPTY0NjI3O2UudGVrYXRha2FuYT0xMjQ4NjtlLnRla2F0YWthbmFoYWxmd2lkdGg9NjU0MTE7ZS50ZWxlcGhvbmU9ODQ4MTtlLnRlbGVwaG9uZWJsYWNrPTk3NDI7ZS50ZWxpc2hhZ2Vkb2xhaGVicmV3PTE0NDA7ZS50ZWxpc2hhcWV0YW5haGVicmV3PTE0NDk7ZS50ZW5jaXJjbGU9OTMyMTtlLnRlbmlkZW9ncmFwaGljcGFyZW49MTI4NDE7ZS50ZW5wYXJlbj05MzQxO2UudGVucGVyaW9kPTkzNjE7ZS50ZW5yb21hbj04NTY5O2UudGVzaD02Nzk7ZS50ZXQ9MTQ5NjtlLnRldGRhZ2VzaD02NDMxMjtlLnRldGRhZ2VzaGhlYnJldz02NDMxMjtlLnRldGhlYnJldz0xNDk2O2UudGV0c2VjeXJpbGxpYz0xMjA1O2UudGV2aXJoZWJyZXc9MTQzNTtlLnRldmlybGVmdGhlYnJldz0xNDM1O2UudGhhYmVuZ2FsaT0yNDY5O2UudGhhZGV2YT0yMzQxO2UudGhhZ3VqYXJhdGk9MjcyNTtlLnRoYWd1cm11a2hpPTI1OTc7ZS50aGFsYXJhYmljPTE1ODQ7ZS50aGFsZmluYWxhcmFiaWM9NjUxOTY7ZS50aGFudGhha2hhdGxvd2xlZnR0aGFpPTYzNjQwO2UudGhhbnRoYWtoYXRsb3dyaWdodHRoYWk9NjM2Mzk7ZS50aGFudGhha2hhdHRoYWk9MzY2MDtlLnRoYW50aGFraGF0dXBwZXJsZWZ0dGhhaT02MzYzODtlLnRoZWhhcmFiaWM9MTU3OTtlLnRoZWhmaW5hbGFyYWJpYz02NTE3ODtlLnRoZWhpbml0aWFsYXJhYmljPTY1MTc5O2UudGhlaG1lZGlhbGFyYWJpYz02NTE4MDtlLnRoZXJlZXhpc3RzPTg3MDc7ZS50aGVyZWZvcmU9ODc1NjtlLnRoZXRhPTk1MjtlLnRoZXRhMT05Nzc7ZS50aGV0YXN5bWJvbGdyZWVrPTk3NztlLnRoaWV1dGhhY2lyY2xla29yZWFuPTEyOTIxO2UudGhpZXV0aGFwYXJlbmtvcmVhbj0xMjgyNTtlLnRoaWV1dGhjaXJjbGVrb3JlYW49MTI5MDc7ZS50aGlldXRoa29yZWFuPTEyNjIwO2UudGhpZXV0aHBhcmVua29yZWFuPTEyODExO2UudGhpcnRlZW5jaXJjbGU9OTMyNDtlLnRoaXJ0ZWVucGFyZW49OTM0NDtlLnRoaXJ0ZWVucGVyaW9kPTkzNjQ7ZS50aG9uYW5nbW9udGhvdGhhaT0zNjAxO2UudGhvb2s9NDI5O2UudGhvcGh1dGhhb3RoYWk9MzYwMjtlLnRob3JuPTI1NDtlLnRob3RoYWhhbnRoYWk9MzYwNztlLnRob3RoYW50aGFpPTM2MDA7ZS50aG90aG9uZ3RoYWk9MzYwODtlLnRob3RodW5ndGhhaT0zNjA2O2UudGhvdXNhbmRjeXJpbGxpYz0xMTU0O2UudGhvdXNhbmRzc2VwYXJhdG9yYXJhYmljPTE2NDQ7ZS50aG91c2FuZHNzZXBhcmF0b3JwZXJzaWFuPTE2NDQ7ZS50aHJlZT01MTtlLnRocmVlYXJhYmljPTE2MzU7ZS50aHJlZWJlbmdhbGk9MjUzNztlLnRocmVlY2lyY2xlPTkzMTQ7ZS50aHJlZWNpcmNsZWludmVyc2VzYW5zc2VyaWY9MTAxMjQ7ZS50aHJlZWRldmE9MjQwOTtlLnRocmVlZWlnaHRocz04NTQwO2UudGhyZWVndWphcmF0aT0yNzkzO2UudGhyZWVndXJtdWtoaT0yNjY1O2UudGhyZWVoYWNrYXJhYmljPTE2MzU7ZS50aHJlZWhhbmd6aG91PTEyMzIzO2UudGhyZWVpZGVvZ3JhcGhpY3BhcmVuPTEyODM0O2UudGhyZWVpbmZlcmlvcj04MzIzO2UudGhyZWVtb25vc3BhY2U9NjUyOTk7ZS50aHJlZW51bWVyYXRvcmJlbmdhbGk9MjU1MDtlLnRocmVlb2xkc3R5bGU9NjMyODM7ZS50aHJlZXBhcmVuPTkzMzQ7ZS50aHJlZXBlcmlvZD05MzU0O2UudGhyZWVwZXJzaWFuPTE3Nzk7ZS50aHJlZXF1YXJ0ZXJzPTE5MDtlLnRocmVlcXVhcnRlcnNlbWRhc2g9NjMxOTg7ZS50aHJlZXJvbWFuPTg1NjI7ZS50aHJlZXN1cGVyaW9yPTE3OTtlLnRocmVldGhhaT0zNjY3O2UudGh6c3F1YXJlPTEzMjA0O2UudGloaXJhZ2FuYT0xMjM4NTtlLnRpa2F0YWthbmE9MTI0ODE7ZS50aWthdGFrYW5haGFsZndpZHRoPTY1NDA5O2UudGlrZXV0YWNpcmNsZWtvcmVhbj0xMjkxMjtlLnRpa2V1dGFwYXJlbmtvcmVhbj0xMjgxNjtlLnRpa2V1dGNpcmNsZWtvcmVhbj0xMjg5ODtlLnRpa2V1dGtvcmVhbj0xMjU5OTtlLnRpa2V1dHBhcmVua29yZWFuPTEyODAyO2UudGlsZGU9NzMyO2UudGlsZGViZWxvd2NtYj04MTY7ZS50aWxkZWNtYj03NzE7ZS50aWxkZWNvbWI9NzcxO2UudGlsZGVkb3VibGVjbWI9ODY0O2UudGlsZGVvcGVyYXRvcj04NzY0O2UudGlsZGVvdmVybGF5Y21iPTgyMDtlLnRpbGRldmVydGljYWxjbWI9ODMwO2UudGltZXNjaXJjbGU9ODg1NTtlLnRpcGVoYWhlYnJldz0xNDMwO2UudGlwZWhhbGVmdGhlYnJldz0xNDMwO2UudGlwcGlndXJtdWtoaT0yNjcyO2UudGl0bG9jeXJpbGxpY2NtYj0xMTU1O2UudGl3bmFybWVuaWFuPTE0MDc7ZS50bGluZWJlbG93PTc3OTE7ZS50bW9ub3NwYWNlPTY1MzY0O2UudG9hcm1lbmlhbj0xMzg1O2UudG9oaXJhZ2FuYT0xMjM5MjtlLnRva2F0YWthbmE9MTI0ODg7ZS50b2thdGFrYW5haGFsZndpZHRoPTY1NDEyO2UudG9uZWJhcmV4dHJhaGlnaG1vZD03NDE7ZS50b25lYmFyZXh0cmFsb3dtb2Q9NzQ1O2UudG9uZWJhcmhpZ2htb2Q9NzQyO2UudG9uZWJhcmxvd21vZD03NDQ7ZS50b25lYmFybWlkbW9kPTc0MztlLnRvbmVmaXZlPTQ0NTtlLnRvbmVzaXg9Mzg5O2UudG9uZXR3bz00MjQ7ZS50b25vcz05MDA7ZS50b25zcXVhcmU9MTMwOTU7ZS50b3BhdGFrdGhhaT0zNTk5O2UudG9ydG9pc2VzaGVsbGJyYWNrZXRsZWZ0PTEyMzA4O2UudG9ydG9pc2VzaGVsbGJyYWNrZXRsZWZ0c21hbGw9NjUxMTc7ZS50b3J0b2lzZXNoZWxsYnJhY2tldGxlZnR2ZXJ0aWNhbD02NTA4MTtlLnRvcnRvaXNlc2hlbGxicmFja2V0cmlnaHQ9MTIzMDk7ZS50b3J0b2lzZXNoZWxsYnJhY2tldHJpZ2h0c21hbGw9NjUxMTg7ZS50b3J0b2lzZXNoZWxsYnJhY2tldHJpZ2h0dmVydGljYWw9NjUwODI7ZS50b3Rhb3RoYWk9MzYwNTtlLnRwYWxhdGFsaG9vaz00Mjc7ZS50cGFyZW49OTM5MTtlLnRyYWRlbWFyaz04NDgyO2UudHJhZGVtYXJrc2Fucz02MzcyMjtlLnRyYWRlbWFya3NlcmlmPTYzMTk1O2UudHJldHJvZmxleGhvb2s9NjQ4O2UudHJpYWdkbj05NjYwO2UudHJpYWdsZj05NjY4O2UudHJpYWdydD05NjU4O2UudHJpYWd1cD05NjUwO2UudHM9Njc4O2UudHNhZGk9MTUxMDtlLnRzYWRpZGFnZXNoPTY0MzI2O2UudHNhZGlkYWdlc2hoZWJyZXc9NjQzMjY7ZS50c2FkaWhlYnJldz0xNTEwO2UudHNlY3lyaWxsaWM9MTA5NDtlLnRzZXJlPTE0NjE7ZS50c2VyZTEyPTE0NjE7ZS50c2VyZTFlPTE0NjE7ZS50c2VyZTJiPTE0NjE7ZS50c2VyZWhlYnJldz0xNDYxO2UudHNlcmVuYXJyb3doZWJyZXc9MTQ2MTtlLnRzZXJlcXVhcnRlcmhlYnJldz0xNDYxO2UudHNlcmV3aWRlaGVicmV3PTE0NjE7ZS50c2hlY3lyaWxsaWM9MTExNTtlLnRzdXBlcmlvcj02MzIxOTtlLnR0YWJlbmdhbGk9MjQ2MztlLnR0YWRldmE9MjMzNTtlLnR0YWd1amFyYXRpPTI3MTk7ZS50dGFndXJtdWtoaT0yNTkxO2UudHRlaGFyYWJpYz0xNjU3O2UudHRlaGZpbmFsYXJhYmljPTY0MzU5O2UudHRlaGluaXRpYWxhcmFiaWM9NjQzNjA7ZS50dGVobWVkaWFsYXJhYmljPTY0MzYxO2UudHRoYWJlbmdhbGk9MjQ2NDtlLnR0aGFkZXZhPTIzMzY7ZS50dGhhZ3VqYXJhdGk9MjcyMDtlLnR0aGFndXJtdWtoaT0yNTkyO2UudHR1cm5lZD02NDc7ZS50dWhpcmFnYW5hPTEyMzg4O2UudHVrYXRha2FuYT0xMjQ4NDtlLnR1a2F0YWthbmFoYWxmd2lkdGg9NjU0MTA7ZS50dXNtYWxsaGlyYWdhbmE9MTIzODc7ZS50dXNtYWxsa2F0YWthbmE9MTI0ODM7ZS50dXNtYWxsa2F0YWthbmFoYWxmd2lkdGg9NjUzOTE7ZS50d2VsdmVjaXJjbGU9OTMyMztlLnR3ZWx2ZXBhcmVuPTkzNDM7ZS50d2VsdmVwZXJpb2Q9OTM2MztlLnR3ZWx2ZXJvbWFuPTg1NzE7ZS50d2VudHljaXJjbGU9OTMzMTtlLnR3ZW50eWhhbmd6aG91PTIxMzE2O2UudHdlbnR5cGFyZW49OTM1MTtlLnR3ZW50eXBlcmlvZD05MzcxO2UudHdvPTUwO2UudHdvYXJhYmljPTE2MzQ7ZS50d29iZW5nYWxpPTI1MzY7ZS50d29jaXJjbGU9OTMxMztlLnR3b2NpcmNsZWludmVyc2VzYW5zc2VyaWY9MTAxMjM7ZS50d29kZXZhPTI0MDg7ZS50d29kb3RlbmxlYWRlcj04MjI5O2UudHdvZG90bGVhZGVyPTgyMjk7ZS50d29kb3RsZWFkZXJ2ZXJ0aWNhbD02NTA3MjtlLnR3b2d1amFyYXRpPTI3OTI7ZS50d29ndXJtdWtoaT0yNjY0O2UudHdvaGFja2FyYWJpYz0xNjM0O2UudHdvaGFuZ3pob3U9MTIzMjI7ZS50d29pZGVvZ3JhcGhpY3BhcmVuPTEyODMzO2UudHdvaW5mZXJpb3I9ODMyMjtlLnR3b21vbm9zcGFjZT02NTI5ODtlLnR3b251bWVyYXRvcmJlbmdhbGk9MjU0OTtlLnR3b29sZHN0eWxlPTYzMjgyO2UudHdvcGFyZW49OTMzMztlLnR3b3BlcmlvZD05MzUzO2UudHdvcGVyc2lhbj0xNzc4O2UudHdvcm9tYW49ODU2MTtlLnR3b3N0cm9rZT00NDM7ZS50d29zdXBlcmlvcj0xNzg7ZS50d290aGFpPTM2NjY7ZS50d290aGlyZHM9ODUzMjtlLnU9MTE3O2UudWFjdXRlPTI1MDtlLnViYXI9NjQ5O2UudWJlbmdhbGk9MjQ0MTtlLnVib3BvbW9mbz0xMjU4NDtlLnVicmV2ZT0zNjU7ZS51Y2Fyb249NDY4O2UudWNpcmNsZT05NDQ0O2UudWNpcmN1bWZsZXg9MjUxO2UudWNpcmN1bWZsZXhiZWxvdz03Nzk5O2UudWN5cmlsbGljPTEwOTE7ZS51ZGF0dGFkZXZhPTIzODU7ZS51ZGJsYWN1dGU9MzY5O2UudWRibGdyYXZlPTUzMztlLnVkZXZhPTIzMTM7ZS51ZGllcmVzaXM9MjUyO2UudWRpZXJlc2lzYWN1dGU9NDcyO2UudWRpZXJlc2lzYmVsb3c9Nzc5NTtlLnVkaWVyZXNpc2Nhcm9uPTQ3NDtlLnVkaWVyZXNpc2N5cmlsbGljPTEyNjU7ZS51ZGllcmVzaXNncmF2ZT00NzY7ZS51ZGllcmVzaXNtYWNyb249NDcwO2UudWRvdGJlbG93PTc5MDk7ZS51Z3JhdmU9MjQ5O2UudWd1amFyYXRpPTI2OTc7ZS51Z3VybXVraGk9MjU2OTtlLnVoaXJhZ2FuYT0xMjM1ODtlLnVob29rYWJvdmU9NzkxMTtlLnVob3JuPTQzMjtlLnVob3JuYWN1dGU9NzkxMztlLnVob3JuZG90YmVsb3c9NzkyMTtlLnVob3JuZ3JhdmU9NzkxNTtlLnVob3JuaG9va2Fib3ZlPTc5MTc7ZS51aG9ybnRpbGRlPTc5MTk7ZS51aHVuZ2FydW1sYXV0PTM2OTtlLnVodW5nYXJ1bWxhdXRjeXJpbGxpYz0xMjY3O2UudWludmVydGVkYnJldmU9NTM1O2UudWthdGFrYW5hPTEyNDU0O2UudWthdGFrYW5haGFsZndpZHRoPTY1Mzk1O2UudWtjeXJpbGxpYz0xMTQ1O2UudWtvcmVhbj0xMjYzNjtlLnVtYWNyb249MzYzO2UudW1hY3JvbmN5cmlsbGljPTEyNjM7ZS51bWFjcm9uZGllcmVzaXM9NzgwMztlLnVtYXRyYWd1cm11a2hpPTI2MjU7ZS51bW9ub3NwYWNlPTY1MzY1O2UudW5kZXJzY29yZT05NTtlLnVuZGVyc2NvcmVkYmw9ODIxNTtlLnVuZGVyc2NvcmVtb25vc3BhY2U9NjUzNDM7ZS51bmRlcnNjb3JldmVydGljYWw9NjUwNzU7ZS51bmRlcnNjb3Jld2F2eT02NTEwMztlLnVuaW9uPTg3NDY7ZS51bml2ZXJzYWw9ODcwNDtlLnVvZ29uZWs9MzcxO2UudXBhcmVuPTkzOTI7ZS51cGJsb2NrPTk2MDA7ZS51cHBlcmRvdGhlYnJldz0xNDc2O2UudXBzaWxvbj05NjU7ZS51cHNpbG9uZGllcmVzaXM9OTcxO2UudXBzaWxvbmRpZXJlc2lzdG9ub3M9OTQ0O2UudXBzaWxvbmxhdGluPTY1MDtlLnVwc2lsb250b25vcz05NzM7ZS51cHRhY2tiZWxvd2NtYj03OTc7ZS51cHRhY2ttb2Q9NzI0O2UudXJhZ3VybXVraGk9MjY3NTtlLnVyaW5nPTM2NztlLnVzaG9ydGN5cmlsbGljPTExMTg7ZS51c21hbGxoaXJhZ2FuYT0xMjM1NztlLnVzbWFsbGthdGFrYW5hPTEyNDUzO2UudXNtYWxsa2F0YWthbmFoYWxmd2lkdGg9NjUzODU7ZS51c3RyYWlnaHRjeXJpbGxpYz0xMTk5O2UudXN0cmFpZ2h0c3Ryb2tlY3lyaWxsaWM9MTIwMTtlLnV0aWxkZT0zNjE7ZS51dGlsZGVhY3V0ZT03ODAxO2UudXRpbGRlYmVsb3c9Nzc5NztlLnV1YmVuZ2FsaT0yNDQyO2UudXVkZXZhPTIzMTQ7ZS51dWd1amFyYXRpPTI2OTg7ZS51dWd1cm11a2hpPTI1NzA7ZS51dW1hdHJhZ3VybXVraGk9MjYyNjtlLnV1dm93ZWxzaWduYmVuZ2FsaT0yNDk4O2UudXV2b3dlbHNpZ25kZXZhPTIzNzA7ZS51dXZvd2Vsc2lnbmd1amFyYXRpPTI3NTQ7ZS51dm93ZWxzaWduYmVuZ2FsaT0yNDk3O2UudXZvd2Vsc2lnbmRldmE9MjM2OTtlLnV2b3dlbHNpZ25ndWphcmF0aT0yNzUzO2Uudj0xMTg7ZS52YWRldmE9MjM1NztlLnZhZ3VqYXJhdGk9Mjc0MTtlLnZhZ3VybXVraGk9MjYxMztlLnZha2F0YWthbmE9MTI1MzU7ZS52YXY9MTQ5MztlLnZhdmRhZ2VzaD02NDMwOTtlLnZhdmRhZ2VzaDY1PTY0MzA5O2UudmF2ZGFnZXNoaGVicmV3PTY0MzA5O2UudmF2aGVicmV3PTE0OTM7ZS52YXZob2xhbT02NDMzMTtlLnZhdmhvbGFtaGVicmV3PTY0MzMxO2UudmF2dmF2aGVicmV3PTE1MjA7ZS52YXZ5b2RoZWJyZXc9MTUyMTtlLnZjaXJjbGU9OTQ0NTtlLnZkb3RiZWxvdz03ODA3O2UudmVjeXJpbGxpYz0xMDc0O2UudmVoYXJhYmljPTE3MDA7ZS52ZWhmaW5hbGFyYWJpYz02NDM2MztlLnZlaGluaXRpYWxhcmFiaWM9NjQzNjQ7ZS52ZWhtZWRpYWxhcmFiaWM9NjQzNjU7ZS52ZWthdGFrYW5hPTEyNTM3O2UudmVudXM9OTc5MjtlLnZlcnRpY2FsYmFyPTEyNDtlLnZlcnRpY2FsbGluZWFib3ZlY21iPTc4MTtlLnZlcnRpY2FsbGluZWJlbG93Y21iPTgwOTtlLnZlcnRpY2FsbGluZWxvd21vZD03MTY7ZS52ZXJ0aWNhbGxpbmVtb2Q9NzEyO2UudmV3YXJtZW5pYW49MTQwNjtlLnZob29rPTY1MTtlLnZpa2F0YWthbmE9MTI1MzY7ZS52aXJhbWFiZW5nYWxpPTI1MDk7ZS52aXJhbWFkZXZhPTIzODE7ZS52aXJhbWFndWphcmF0aT0yNzY1O2UudmlzYXJnYWJlbmdhbGk9MjQzNTtlLnZpc2FyZ2FkZXZhPTIzMDc7ZS52aXNhcmdhZ3VqYXJhdGk9MjY5MTtlLnZtb25vc3BhY2U9NjUzNjY7ZS52b2FybWVuaWFuPTE0MDA7ZS52b2ljZWRpdGVyYXRpb25oaXJhZ2FuYT0xMjQ0NjtlLnZvaWNlZGl0ZXJhdGlvbmthdGFrYW5hPTEyNTQyO2Uudm9pY2VkbWFya2thbmE9MTI0NDM7ZS52b2ljZWRtYXJra2FuYWhhbGZ3aWR0aD02NTQzODtlLnZva2F0YWthbmE9MTI1Mzg7ZS52cGFyZW49OTM5MztlLnZ0aWxkZT03ODA1O2UudnR1cm5lZD02NTI7ZS52dWhpcmFnYW5hPTEyNDM2O2UudnVrYXRha2FuYT0xMjUzMjtlLnc9MTE5O2Uud2FjdXRlPTc4MTE7ZS53YWVrb3JlYW49MTI2MzM7ZS53YWhpcmFnYW5hPTEyNDMxO2Uud2FrYXRha2FuYT0xMjUyNztlLndha2F0YWthbmFoYWxmd2lkdGg9NjU0MzY7ZS53YWtvcmVhbj0xMjYzMjtlLndhc21hbGxoaXJhZ2FuYT0xMjQzMDtlLndhc21hbGxrYXRha2FuYT0xMjUyNjtlLndhdHRvc3F1YXJlPTEzMTQzO2Uud2F2ZWRhc2g9MTIzMTY7ZS53YXZ5dW5kZXJzY29yZXZlcnRpY2FsPTY1MDc2O2Uud2F3YXJhYmljPTE2MDg7ZS53YXdmaW5hbGFyYWJpYz02NTI2MjtlLndhd2hhbXphYWJvdmVhcmFiaWM9MTU3MjtlLndhd2hhbXphYWJvdmVmaW5hbGFyYWJpYz02NTE1ODtlLndic3F1YXJlPTEzMjc3O2Uud2NpcmNsZT05NDQ2O2Uud2NpcmN1bWZsZXg9MzczO2Uud2RpZXJlc2lzPTc4MTM7ZS53ZG90YWNjZW50PTc4MTU7ZS53ZG90YmVsb3c9NzgxNztlLndlaGlyYWdhbmE9MTI0MzM7ZS53ZWllcnN0cmFzcz04NDcyO2Uud2VrYXRha2FuYT0xMjUyOTtlLndla29yZWFuPTEyNjM4O2Uud2Vva29yZWFuPTEyNjM3O2Uud2dyYXZlPTc4MDk7ZS53aGl0ZWJ1bGxldD05NzAyO2Uud2hpdGVjaXJjbGU9OTY3NTtlLndoaXRlY2lyY2xlaW52ZXJzZT05Njg5O2Uud2hpdGVjb3JuZXJicmFja2V0bGVmdD0xMjMwMjtlLndoaXRlY29ybmVyYnJhY2tldGxlZnR2ZXJ0aWNhbD02NTA5MTtlLndoaXRlY29ybmVyYnJhY2tldHJpZ2h0PTEyMzAzO2Uud2hpdGVjb3JuZXJicmFja2V0cmlnaHR2ZXJ0aWNhbD02NTA5MjtlLndoaXRlZGlhbW9uZD05NjcxO2Uud2hpdGVkaWFtb25kY29udGFpbmluZ2JsYWNrc21hbGxkaWFtb25kPTk2NzI7ZS53aGl0ZWRvd25wb2ludGluZ3NtYWxsdHJpYW5nbGU9OTY2MztlLndoaXRlZG93bnBvaW50aW5ndHJpYW5nbGU9OTY2MTtlLndoaXRlbGVmdHBvaW50aW5nc21hbGx0cmlhbmdsZT05NjY3O2Uud2hpdGVsZWZ0cG9pbnRpbmd0cmlhbmdsZT05NjY1O2Uud2hpdGVsZW50aWN1bGFyYnJhY2tldGxlZnQ9MTIzMTA7ZS53aGl0ZWxlbnRpY3VsYXJicmFja2V0cmlnaHQ9MTIzMTE7ZS53aGl0ZXJpZ2h0cG9pbnRpbmdzbWFsbHRyaWFuZ2xlPTk2NTc7ZS53aGl0ZXJpZ2h0cG9pbnRpbmd0cmlhbmdsZT05NjU1O2Uud2hpdGVzbWFsbHNxdWFyZT05NjQzO2Uud2hpdGVzbWlsaW5nZmFjZT05Nzg2O2Uud2hpdGVzcXVhcmU9OTYzMztlLndoaXRlc3Rhcj05NzM0O2Uud2hpdGV0ZWxlcGhvbmU9OTc0MztlLndoaXRldG9ydG9pc2VzaGVsbGJyYWNrZXRsZWZ0PTEyMzEyO2Uud2hpdGV0b3J0b2lzZXNoZWxsYnJhY2tldHJpZ2h0PTEyMzEzO2Uud2hpdGV1cHBvaW50aW5nc21hbGx0cmlhbmdsZT05NjUzO2Uud2hpdGV1cHBvaW50aW5ndHJpYW5nbGU9OTY1MTtlLndpaGlyYWdhbmE9MTI0MzI7ZS53aWthdGFrYW5hPTEyNTI4O2Uud2lrb3JlYW49MTI2Mzk7ZS53bW9ub3NwYWNlPTY1MzY3O2Uud29oaXJhZ2FuYT0xMjQzNDtlLndva2F0YWthbmE9MTI1MzA7ZS53b2thdGFrYW5haGFsZndpZHRoPTY1MzgyO2Uud29uPTgzNjE7ZS53b25tb25vc3BhY2U9NjU1MTA7ZS53b3dhZW50aGFpPTM2MjM7ZS53cGFyZW49OTM5NDtlLndyaW5nPTc4MzI7ZS53c3VwZXJpb3I9Njk1O2Uud3R1cm5lZD02NTM7ZS53eW5uPTQ0NztlLng9MTIwO2UueGFib3ZlY21iPTgyOTtlLnhib3BvbW9mbz0xMjU2MjtlLnhjaXJjbGU9OTQ0NztlLnhkaWVyZXNpcz03ODIxO2UueGRvdGFjY2VudD03ODE5O2UueGVoYXJtZW5pYW49MTM4OTtlLnhpPTk1ODtlLnhtb25vc3BhY2U9NjUzNjg7ZS54cGFyZW49OTM5NTtlLnhzdXBlcmlvcj03Mzk7ZS55PTEyMTtlLnlhYWRvc3F1YXJlPTEzMTM0O2UueWFiZW5nYWxpPTI0Nzk7ZS55YWN1dGU9MjUzO2UueWFkZXZhPTIzNTE7ZS55YWVrb3JlYW49MTI2MjY7ZS55YWd1amFyYXRpPTI3MzU7ZS55YWd1cm11a2hpPTI2MDc7ZS55YWhpcmFnYW5hPTEyNDIwO2UueWFrYXRha2FuYT0xMjUxNjtlLnlha2F0YWthbmFoYWxmd2lkdGg9NjU0Mjg7ZS55YWtvcmVhbj0xMjYyNTtlLnlhbWFra2FudGhhaT0zNjYyO2UueWFzbWFsbGhpcmFnYW5hPTEyNDE5O2UueWFzbWFsbGthdGFrYW5hPTEyNTE1O2UueWFzbWFsbGthdGFrYW5haGFsZndpZHRoPTY1Mzg4O2UueWF0Y3lyaWxsaWM9MTEyMztlLnljaXJjbGU9OTQ0ODtlLnljaXJjdW1mbGV4PTM3NTtlLnlkaWVyZXNpcz0yNTU7ZS55ZG90YWNjZW50PTc4MjM7ZS55ZG90YmVsb3c9NzkyNTtlLnllaGFyYWJpYz0xNjEwO2UueWVoYmFycmVlYXJhYmljPTE3NDY7ZS55ZWhiYXJyZWVmaW5hbGFyYWJpYz02NDQzMTtlLnllaGZpbmFsYXJhYmljPTY1MjY2O2UueWVoaGFtemFhYm92ZWFyYWJpYz0xNTc0O2UueWVoaGFtemFhYm92ZWZpbmFsYXJhYmljPTY1MTYyO2UueWVoaGFtemFhYm92ZWluaXRpYWxhcmFiaWM9NjUxNjM7ZS55ZWhoYW16YWFib3ZlbWVkaWFsYXJhYmljPTY1MTY0O2UueWVoaW5pdGlhbGFyYWJpYz02NTI2NztlLnllaG1lZGlhbGFyYWJpYz02NTI2ODtlLnllaG1lZW1pbml0aWFsYXJhYmljPTY0NzMzO2UueWVobWVlbWlzb2xhdGVkYXJhYmljPTY0NjAwO2UueWVobm9vbmZpbmFsYXJhYmljPTY0NjYwO2UueWVodGhyZWVkb3RzYmVsb3dhcmFiaWM9MTc0NTtlLnlla29yZWFuPTEyNjMwO2UueWVuPTE2NTtlLnllbm1vbm9zcGFjZT02NTUwOTtlLnllb2tvcmVhbj0xMjYyOTtlLnllb3JpbmhpZXVoa29yZWFuPTEyNjc4O2UueWVyYWhiZW55b21vaGVicmV3PTE0NTA7ZS55ZXJhaGJlbnlvbW9sZWZ0aGVicmV3PTE0NTA7ZS55ZXJpY3lyaWxsaWM9MTA5OTtlLnllcnVkaWVyZXNpc2N5cmlsbGljPTEyNzM7ZS55ZXNpZXVuZ2tvcmVhbj0xMjY3MztlLnllc2lldW5ncGFuc2lvc2tvcmVhbj0xMjY3NTtlLnllc2lldW5nc2lvc2tvcmVhbj0xMjY3NDtlLnlldGl2aGVicmV3PTE0MzQ7ZS55Z3JhdmU9NzkyMztlLnlob29rPTQzNjtlLnlob29rYWJvdmU9NzkyNztlLnlpYXJtZW5pYW49MTM5NztlLnlpY3lyaWxsaWM9MTExMTtlLnlpa29yZWFuPTEyNjQyO2UueWlueWFuZz05Nzc1O2UueWl3bmFybWVuaWFuPTE0MTA7ZS55bW9ub3NwYWNlPTY1MzY5O2UueW9kPTE0OTc7ZS55b2RkYWdlc2g9NjQzMTM7ZS55b2RkYWdlc2hoZWJyZXc9NjQzMTM7ZS55b2RoZWJyZXc9MTQ5NztlLnlvZHlvZGhlYnJldz0xNTIyO2UueW9keW9kcGF0YWhoZWJyZXc9NjQyODc7ZS55b2hpcmFnYW5hPTEyNDI0O2UueW9pa29yZWFuPTEyNjgxO2UueW9rYXRha2FuYT0xMjUyMDtlLnlva2F0YWthbmFoYWxmd2lkdGg9NjU0MzA7ZS55b2tvcmVhbj0xMjYzNTtlLnlvc21hbGxoaXJhZ2FuYT0xMjQyMztlLnlvc21hbGxrYXRha2FuYT0xMjUxOTtlLnlvc21hbGxrYXRha2FuYWhhbGZ3aWR0aD02NTM5MDtlLnlvdGdyZWVrPTEwMTE7ZS55b3lhZWtvcmVhbj0xMjY4MDtlLnlveWFrb3JlYW49MTI2Nzk7ZS55b3lha3RoYWk9MzYxODtlLnlveWluZ3RoYWk9MzU5NztlLnlwYXJlbj05Mzk2O2UueXBvZ2VncmFtbWVuaT04OTA7ZS55cG9nZWdyYW1tZW5pZ3JlZWtjbWI9ODM3O2UueXI9NDIyO2UueXJpbmc9NzgzMztlLnlzdXBlcmlvcj02OTY7ZS55dGlsZGU9NzkyOTtlLnl0dXJuZWQ9NjU0O2UueXVoaXJhZ2FuYT0xMjQyMjtlLnl1aWtvcmVhbj0xMjY4NDtlLnl1a2F0YWthbmE9MTI1MTg7ZS55dWthdGFrYW5haGFsZndpZHRoPTY1NDI5O2UueXVrb3JlYW49MTI2NDA7ZS55dXNiaWdjeXJpbGxpYz0xMTMxO2UueXVzYmlnaW90aWZpZWRjeXJpbGxpYz0xMTMzO2UueXVzbGl0dGxlY3lyaWxsaWM9MTEyNztlLnl1c2xpdHRsZWlvdGlmaWVkY3lyaWxsaWM9MTEyOTtlLnl1c21hbGxoaXJhZ2FuYT0xMjQyMTtlLnl1c21hbGxrYXRha2FuYT0xMjUxNztlLnl1c21hbGxrYXRha2FuYWhhbGZ3aWR0aD02NTM4OTtlLnl1eWVrb3JlYW49MTI2ODM7ZS55dXllb2tvcmVhbj0xMjY4MjtlLnl5YWJlbmdhbGk9MjUyNztlLnl5YWRldmE9MjM5OTtlLno9MTIyO2UuemFhcm1lbmlhbj0xMzgyO2UuemFjdXRlPTM3ODtlLnphZGV2YT0yMzk1O2UuemFndXJtdWtoaT0yNjUxO2UuemFoYXJhYmljPTE1OTI7ZS56YWhmaW5hbGFyYWJpYz02NTIyMjtlLnphaGluaXRpYWxhcmFiaWM9NjUyMjM7ZS56YWhpcmFnYW5hPTEyMzc0O2UuemFobWVkaWFsYXJhYmljPTY1MjI0O2UuemFpbmFyYWJpYz0xNTg2O2UuemFpbmZpbmFsYXJhYmljPTY1MjAwO2UuemFrYXRha2FuYT0xMjQ3MDtlLnphcWVmZ2Fkb2xoZWJyZXc9MTQyOTtlLnphcWVmcWF0YW5oZWJyZXc9MTQyODtlLnphcnFhaGVicmV3PTE0MzI7ZS56YXlpbj0xNDk0O2UuemF5aW5kYWdlc2g9NjQzMTA7ZS56YXlpbmRhZ2VzaGhlYnJldz02NDMxMDtlLnpheWluaGVicmV3PTE0OTQ7ZS56Ym9wb21vZm89MTI1Njc7ZS56Y2Fyb249MzgyO2UuemNpcmNsZT05NDQ5O2UuemNpcmN1bWZsZXg9NzgyNTtlLnpjdXJsPTY1NztlLnpkb3Q9MzgwO2UuemRvdGFjY2VudD0zODA7ZS56ZG90YmVsb3c9NzgyNztlLnplY3lyaWxsaWM9MTA3OTtlLnplZGVzY2VuZGVyY3lyaWxsaWM9MTE3NztlLnplZGllcmVzaXNjeXJpbGxpYz0xMjQ3O2UuemVoaXJhZ2FuYT0xMjM4MDtlLnpla2F0YWthbmE9MTI0NzY7ZS56ZXJvPTQ4O2UuemVyb2FyYWJpYz0xNjMyO2UuemVyb2JlbmdhbGk9MjUzNDtlLnplcm9kZXZhPTI0MDY7ZS56ZXJvZ3VqYXJhdGk9Mjc5MDtlLnplcm9ndXJtdWtoaT0yNjYyO2UuemVyb2hhY2thcmFiaWM9MTYzMjtlLnplcm9pbmZlcmlvcj04MzIwO2UuemVyb21vbm9zcGFjZT02NTI5NjtlLnplcm9vbGRzdHlsZT02MzI4MDtlLnplcm9wZXJzaWFuPTE3NzY7ZS56ZXJvc3VwZXJpb3I9ODMwNDtlLnplcm90aGFpPTM2NjQ7ZS56ZXJvd2lkdGhqb2luZXI9NjUyNzk7ZS56ZXJvd2lkdGhub25qb2luZXI9ODIwNDtlLnplcm93aWR0aHNwYWNlPTgyMDM7ZS56ZXRhPTk1MDtlLnpoYm9wb21vZm89MTI1NjM7ZS56aGVhcm1lbmlhbj0xMzg2O2UuemhlYnJldmVjeXJpbGxpYz0xMjE4O2UuemhlY3lyaWxsaWM9MTA3ODtlLnpoZWRlc2NlbmRlcmN5cmlsbGljPTExNzU7ZS56aGVkaWVyZXNpc2N5cmlsbGljPTEyNDU7ZS56aWhpcmFnYW5hPTEyMzc2O2UuemlrYXRha2FuYT0xMjQ3MjtlLnppbm9yaGVicmV3PTE0NTQ7ZS56bGluZWJlbG93PTc4Mjk7ZS56bW9ub3NwYWNlPTY1MzcwO2Uuem9oaXJhZ2FuYT0xMjM4MjtlLnpva2F0YWthbmE9MTI0Nzg7ZS56cGFyZW49OTM5NztlLnpyZXRyb2ZsZXhob29rPTY1NjtlLnpzdHJva2U9NDM4O2UuenVoaXJhZ2FuYT0xMjM3ODtlLnp1a2F0YWthbmE9MTI0NzQ7ZVsiLm5vdGRlZiJdPTA7ZS5hbmdicmFja2V0bGVmdGJpZz05MDAxO2UuYW5nYnJhY2tldGxlZnRCaWc9OTAwMTtlLmFuZ2JyYWNrZXRsZWZ0YmlnZz05MDAxO2UuYW5nYnJhY2tldGxlZnRCaWdnPTkwMDE7ZS5hbmdicmFja2V0cmlnaHRCaWc9OTAwMjtlLmFuZ2JyYWNrZXRyaWdodGJpZz05MDAyO2UuYW5nYnJhY2tldHJpZ2h0QmlnZz05MDAyO2UuYW5nYnJhY2tldHJpZ2h0YmlnZz05MDAyO2UuYXJyb3dob29rbGVmdD04NjE4O2UuYXJyb3dob29rcmlnaHQ9ODYxNztlLmFycm93bGVmdHRvcGhhbGY9ODYzNjtlLmFycm93bGVmdGJvdGhhbGY9ODYzNztlLmFycm93bm9ydGhlYXN0PTg1OTk7ZS5hcnJvd25vcnRod2VzdD04NTk4O2UuYXJyb3dyaWdodHRvcGhhbGY9ODY0MDtlLmFycm93cmlnaHRib3RoYWxmPTg2NDE7ZS5hcnJvd3NvdXRoZWFzdD04NjAwO2UuYXJyb3dzb3V0aHdlc3Q9ODYwMTtlLmJhY2tzbGFzaGJpZz04NzI2O2UuYmFja3NsYXNoQmlnPTg3MjY7ZS5iYWNrc2xhc2hCaWdnPTg3MjY7ZS5iYWNrc2xhc2hiaWdnPTg3MjY7ZS5iYXJkYmw9ODIxNDtlLmJyYWNlaHRpcGRvd25sZWZ0PTY1MDc5O2UuYnJhY2VodGlwZG93bnJpZ2h0PTY1MDc5O2UuYnJhY2VodGlwdXBsZWZ0PTY1MDgwO2UuYnJhY2VodGlwdXByaWdodD02NTA4MDtlLmJyYWNlbGVmdEJpZz0xMjM7ZS5icmFjZWxlZnRiaWc9MTIzO2UuYnJhY2VsZWZ0YmlnZz0xMjM7ZS5icmFjZWxlZnRCaWdnPTEyMztlLmJyYWNlcmlnaHRCaWc9MTI1O2UuYnJhY2VyaWdodGJpZz0xMjU7ZS5icmFjZXJpZ2h0YmlnZz0xMjU7ZS5icmFjZXJpZ2h0QmlnZz0xMjU7ZS5icmFja2V0bGVmdGJpZz05MTtlLmJyYWNrZXRsZWZ0QmlnPTkxO2UuYnJhY2tldGxlZnRiaWdnPTkxO2UuYnJhY2tldGxlZnRCaWdnPTkxO2UuYnJhY2tldHJpZ2h0QmlnPTkzO2UuYnJhY2tldHJpZ2h0YmlnPTkzO2UuYnJhY2tldHJpZ2h0YmlnZz05MztlLmJyYWNrZXRyaWdodEJpZ2c9OTM7ZS5jZWlsaW5nbGVmdGJpZz04OTY4O2UuY2VpbGluZ2xlZnRCaWc9ODk2ODtlLmNlaWxpbmdsZWZ0QmlnZz04OTY4O2UuY2VpbGluZ2xlZnRiaWdnPTg5Njg7ZS5jZWlsaW5ncmlnaHRiaWc9ODk2OTtlLmNlaWxpbmdyaWdodEJpZz04OTY5O2UuY2VpbGluZ3JpZ2h0YmlnZz04OTY5O2UuY2VpbGluZ3JpZ2h0QmlnZz04OTY5O2UuY2lyY2xlZG90ZGlzcGxheT04ODU3O2UuY2lyY2xlZG90dGV4dD04ODU3O2UuY2lyY2xlbXVsdGlwbHlkaXNwbGF5PTg4NTU7ZS5jaXJjbGVtdWx0aXBseXRleHQ9ODg1NTtlLmNpcmNsZXBsdXNkaXNwbGF5PTg4NTM7ZS5jaXJjbGVwbHVzdGV4dD04ODUzO2UuY29udGludGVncmFsZGlzcGxheT04NzUwO2UuY29udGludGVncmFsdGV4dD04NzUwO2UuY29wcm9kdWN0ZGlzcGxheT04NzIwO2UuY29wcm9kdWN0dGV4dD04NzIwO2UuZmxvb3JsZWZ0QmlnPTg5NzA7ZS5mbG9vcmxlZnRiaWc9ODk3MDtlLmZsb29ybGVmdGJpZ2c9ODk3MDtlLmZsb29ybGVmdEJpZ2c9ODk3MDtlLmZsb29ycmlnaHRiaWc9ODk3MTtlLmZsb29ycmlnaHRCaWc9ODk3MTtlLmZsb29ycmlnaHRCaWdnPTg5NzE7ZS5mbG9vcnJpZ2h0YmlnZz04OTcxO2UuaGF0d2lkZT03NzA7ZS5oYXR3aWRlcj03NzA7ZS5oYXR3aWRlc3Q9NzcwO2UuaW50ZXJjYWw9NzQ4ODtlLmludGVncmFsZGlzcGxheT04NzQ3O2UuaW50ZWdyYWx0ZXh0PTg3NDc7ZS5pbnRlcnNlY3Rpb25kaXNwbGF5PTg4OTg7ZS5pbnRlcnNlY3Rpb250ZXh0PTg4OTg7ZS5sb2dpY2FsYW5kZGlzcGxheT04NzQzO2UubG9naWNhbGFuZHRleHQ9ODc0MztlLmxvZ2ljYWxvcmRpc3BsYXk9ODc0NDtlLmxvZ2ljYWxvcnRleHQ9ODc0NDtlLnBhcmVubGVmdEJpZz00MDtlLnBhcmVubGVmdGJpZz00MDtlLnBhcmVubGVmdEJpZ2c9NDA7ZS5wYXJlbmxlZnRiaWdnPTQwO2UucGFyZW5yaWdodEJpZz00MTtlLnBhcmVucmlnaHRiaWc9NDE7ZS5wYXJlbnJpZ2h0QmlnZz00MTtlLnBhcmVucmlnaHRiaWdnPTQxO2UucHJpbWU9ODI0MjtlLnByb2R1Y3RkaXNwbGF5PTg3MTk7ZS5wcm9kdWN0dGV4dD04NzE5O2UucmFkaWNhbGJpZz04NzMwO2UucmFkaWNhbEJpZz04NzMwO2UucmFkaWNhbEJpZ2c9ODczMDtlLnJhZGljYWxiaWdnPTg3MzA7ZS5yYWRpY2FsYnQ9ODczMDtlLnJhZGljYWx0cD04NzMwO2UucmFkaWNhbHZlcnRleD04NzMwO2Uuc2xhc2hiaWc9NDc7ZS5zbGFzaEJpZz00NztlLnNsYXNoQmlnZz00NztlLnNsYXNoYmlnZz00NztlLnN1bW1hdGlvbmRpc3BsYXk9ODcyMTtlLnN1bW1hdGlvbnRleHQ9ODcyMTtlLnRpbGRld2lkZT03MzI7ZS50aWxkZXdpZGVyPTczMjtlLnRpbGRld2lkZXN0PTczMjtlLnVuaW9uZGlzcGxheT04ODk5O2UudW5pb25tdWx0aWRpc3BsYXk9ODg0NjtlLnVuaW9ubXVsdGl0ZXh0PTg4NDY7ZS51bmlvbnNxZGlzcGxheT04ODUyO2UudW5pb25zcXRleHQ9ODg1MjtlLnVuaW9udGV4dD04ODk5O2UudmV4dGVuZGRvdWJsZT04NzQxO2UudmV4dGVuZHNpbmdsZT04NzM5fSkseWE9Z2V0TG9va3VwVGFibGVGYWN0b3J5KGZ1bmN0aW9uKGUpe2Uuc3BhY2U9MzI7ZS5hMT05OTg1O2UuYTI9OTk4NjtlLmEyMDI9OTk4NztlLmEzPTk5ODg7ZS5hND05NzQyO2UuYTU9OTk5MDtlLmExMTk9OTk5MTtlLmExMTg9OTk5MjtlLmExMTc9OTk5MztlLmExMT05NzU1O2UuYTEyPTk3NTg7ZS5hMTM9OTk5NjtlLmExND05OTk3O2UuYTE1PTk5OTg7ZS5hMTY9OTk5OTtlLmExMDU9MWU0O2UuYTE3PTEwMDAxO2UuYTE4PTEwMDAyO2UuYTE5PTEwMDAzO2UuYTIwPTEwMDA0O2UuYTIxPTEwMDA1O2UuYTIyPTEwMDA2O2UuYTIzPTEwMDA3O2UuYTI0PTEwMDA4O2UuYTI1PTEwMDA5O2UuYTI2PTEwMDEwO2UuYTI3PTEwMDExO2UuYTI4PTEwMDEyO2UuYTY9MTAwMTM7ZS5hNz0xMDAxNDtlLmE4PTEwMDE1O2UuYTk9MTAwMTY7ZS5hMTA9MTAwMTc7ZS5hMjk9MTAwMTg7ZS5hMzA9MTAwMTk7ZS5hMzE9MTAwMjA7ZS5hMzI9MTAwMjE7ZS5hMzM9MTAwMjI7ZS5hMzQ9MTAwMjM7ZS5hMzU9OTczMztlLmEzNj0xMDAyNTtlLmEzNz0xMDAyNjtlLmEzOD0xMDAyNztlLmEzOT0xMDAyODtlLmE0MD0xMDAyOTtlLmE0MT0xMDAzMDtlLmE0Mj0xMDAzMTtlLmE0Mz0xMDAzMjtlLmE0ND0xMDAzMztlLmE0NT0xMDAzNDtlLmE0Nj0xMDAzNTtlLmE0Nz0xMDAzNjtlLmE0OD0xMDAzNztlLmE0OT0xMDAzODtlLmE1MD0xMDAzOTtlLmE1MT0xMDA0MDtlLmE1Mj0xMDA0MTtlLmE1Mz0xMDA0MjtlLmE1ND0xMDA0MztlLmE1NT0xMDA0NDtlLmE1Nj0xMDA0NTtlLmE1Nz0xMDA0NjtlLmE1OD0xMDA0NztlLmE1OT0xMDA0ODtlLmE2MD0xMDA0OTtlLmE2MT0xMDA1MDtlLmE2Mj0xMDA1MTtlLmE2Mz0xMDA1MjtlLmE2ND0xMDA1MztlLmE2NT0xMDA1NDtlLmE2Nj0xMDA1NTtlLmE2Nz0xMDA1NjtlLmE2OD0xMDA1NztlLmE2OT0xMDA1ODtlLmE3MD0xMDA1OTtlLmE3MT05Njc5O2UuYTcyPTEwMDYxO2UuYTczPTk2MzI7ZS5hNzQ9MTAwNjM7ZS5hMjAzPTEwMDY0O2UuYTc1PTEwMDY1O2UuYTIwND0xMDA2NjtlLmE3Nj05NjUwO2UuYTc3PTk2NjA7ZS5hNzg9OTY3MDtlLmE3OT0xMDA3MDtlLmE4MT05Njg3O2UuYTgyPTEwMDcyO2UuYTgzPTEwMDczO2UuYTg0PTEwMDc0O2UuYTk3PTEwMDc1O2UuYTk4PTEwMDc2O2UuYTk5PTEwMDc3O2UuYTEwMD0xMDA3ODtlLmExMDE9MTAwODE7ZS5hMTAyPTEwMDgyO2UuYTEwMz0xMDA4MztlLmExMDQ9MTAwODQ7ZS5hMTA2PTEwMDg1O2UuYTEwNz0xMDA4NjtlLmExMDg9MTAwODc7ZS5hMTEyPTk4Mjc7ZS5hMTExPTk4MzA7ZS5hMTEwPTk4Mjk7ZS5hMTA5PTk4MjQ7ZS5hMTIwPTkzMTI7ZS5hMTIxPTkzMTM7ZS5hMTIyPTkzMTQ7ZS5hMTIzPTkzMTU7ZS5hMTI0PTkzMTY7ZS5hMTI1PTkzMTc7ZS5hMTI2PTkzMTg7ZS5hMTI3PTkzMTk7ZS5hMTI4PTkzMjA7ZS5hMTI5PTkzMjE7ZS5hMTMwPTEwMTAyO2UuYTEzMT0xMDEwMztlLmExMzI9MTAxMDQ7ZS5hMTMzPTEwMTA1O2UuYTEzND0xMDEwNjtlLmExMzU9MTAxMDc7ZS5hMTM2PTEwMTA4O2UuYTEzNz0xMDEwOTtlLmExMzg9MTAxMTA7ZS5hMTM5PTEwMTExO2UuYTE0MD0xMDExMjtlLmExNDE9MTAxMTM7ZS5hMTQyPTEwMTE0O2UuYTE0Mz0xMDExNTtlLmExNDQ9MTAxMTY7ZS5hMTQ1PTEwMTE3O2UuYTE0Nj0xMDExODtlLmExNDc9MTAxMTk7ZS5hMTQ4PTEwMTIwO2UuYTE0OT0xMDEyMTtlLmExNTA9MTAxMjI7ZS5hMTUxPTEwMTIzO2UuYTE1Mj0xMDEyNDtlLmExNTM9MTAxMjU7ZS5hMTU0PTEwMTI2O2UuYTE1NT0xMDEyNztlLmExNTY9MTAxMjg7ZS5hMTU3PTEwMTI5O2UuYTE1OD0xMDEzMDtlLmExNTk9MTAxMzE7ZS5hMTYwPTEwMTMyO2UuYTE2MT04NTk0O2UuYTE2Mz04NTk2O2UuYTE2ND04NTk3O2UuYTE5Nj0xMDEzNjtlLmExNjU9MTAxMzc7ZS5hMTkyPTEwMTM4O2UuYTE2Nj0xMDEzOTtlLmExNjc9MTAxNDA7ZS5hMTY4PTEwMTQxO2UuYTE2OT0xMDE0MjtlLmExNzA9MTAxNDM7ZS5hMTcxPTEwMTQ0O2UuYTE3Mj0xMDE0NTtlLmExNzM9MTAxNDY7ZS5hMTYyPTEwMTQ3O2UuYTE3ND0xMDE0ODtlLmExNzU9MTAxNDk7ZS5hMTc2PTEwMTUwO2UuYTE3Nz0xMDE1MTtlLmExNzg9MTAxNTI7ZS5hMTc5PTEwMTUzO2UuYTE5Mz0xMDE1NDtlLmExODA9MTAxNTU7ZS5hMTk5PTEwMTU2O2UuYTE4MT0xMDE1NztlLmEyMDA9MTAxNTg7ZS5hMTgyPTEwMTU5O2UuYTIwMT0xMDE2MTtlLmExODM9MTAxNjI7ZS5hMTg0PTEwMTYzO2UuYTE5Nz0xMDE2NDtlLmExODU9MTAxNjU7ZS5hMTk0PTEwMTY2O2UuYTE5OD0xMDE2NztlLmExODY9MTAxNjg7ZS5hMTk1PTEwMTY5O2UuYTE4Nz0xMDE3MDtlLmExODg9MTAxNzE7ZS5hMTg5PTEwMTcyO2UuYTE5MD0xMDE3MztlLmExOTE9MTAxNzQ7ZS5hODk9MTAwODg7ZS5hOTA9MTAwODk7ZS5hOTM9MTAwOTA7ZS5hOTQ9MTAwOTE7ZS5hOTE9MTAwOTI7ZS5hOTI9MTAwOTM7ZS5hMjA1PTEwMDk0O2UuYTg1PTEwMDk1O2UuYTIwNj0xMDA5NjtlLmE4Nj0xMDA5NztlLmE4Nz0xMDA5ODtlLmE4OD0xMDA5OTtlLmE5NT0xMDEwMDtlLmE5Nj0xMDEwMTtlWyIubm90ZGVmIl09MH0pLHFhPWdldExvb2t1cFRhYmxlRmFjdG9yeShmdW5jdGlvbihlKXtlWzYzNzIxXT0xNjk7ZVs2MzE5M109MTY5O2VbNjM3MjBdPTE3NDtlWzYzMTk0XT0xNzQ7ZVs2MzcyMl09ODQ4MjtlWzYzMTk1XT04NDgyO2VbNjM3MjldPTkxMjc7ZVs2MzczMF09OTEyODtlWzYzNzMxXT05MTI5O2VbNjM3NDBdPTkxMzE7ZVs2Mzc0MV09OTEzMjtlWzYzNzQyXT05MTMzO2VbNjM3MjZdPTkxMjE7ZVs2MzcyN109OTEyMjtlWzYzNzI4XT05MTIzO2VbNjM3MzddPTkxMjQ7ZVs2MzczOF09OTEyNTtlWzYzNzM5XT05MTI2O2VbNjM3MjNdPTkxMTU7ZVs2MzcyNF09OTExNjtlWzYzNzI1XT05MTE3O2VbNjM3MzRdPTkxMTg7ZVs2MzczNV09OTExOTtlWzYzNzM2XT05MTIwfSk7ZnVuY3Rpb24gZ2V0VW5pY29kZUZvckdseXBoKGUsdCl7bGV0IG49dFtlXTtpZih2b2lkIDAhPT1uKXJldHVybiBuO2lmKCFlKXJldHVybi0xO2lmKCJ1Ij09PWVbMF0pe2NvbnN0IHQ9ZS5sZW5ndGg7bGV0IGE7aWYoNz09PXQmJiJuIj09PWVbMV0mJiJpIj09PWVbMl0pYT1lLnN1YnN0cmluZygzKTtlbHNle2lmKCEodD49NSYmdDw9NykpcmV0dXJuLTE7YT1lLnN1YnN0cmluZygxKX1pZihhPT09YS50b1VwcGVyQ2FzZSgpKXtuPXBhcnNlSW50KGEsMTYpO2lmKG4+PTApcmV0dXJuIG59fXJldHVybi0xfWNvbnN0IHZhPVtbMCwxMjddLFsxMjgsMjU1XSxbMjU2LDM4M10sWzM4NCw1OTFdLFs1OTIsNjg3LDc0MjQsNzU1MSw3NTUyLDc2MTVdLFs2ODgsNzY3LDQyNzUyLDQyNzgzXSxbNzY4LDg3OSw3NjE2LDc2NzldLFs4ODAsMTAyM10sWzExMzkyLDExNTE5XSxbMTAyNCwxMjc5LDEyODAsMTMyNywxMTc0NCwxMTc3NSw0MjU2MCw0MjY1NV0sWzEzMjgsMTQyM10sWzE0MjQsMTUzNV0sWzQyMjQwLDQyNTU5XSxbMTUzNiwxNzkxLDE4NzIsMTkxOV0sWzE5ODQsMjA0N10sWzIzMDQsMjQzMV0sWzI0MzIsMjU1OV0sWzI1NjAsMjY4N10sWzI2ODgsMjgxNV0sWzI4MTYsMjk0M10sWzI5NDQsMzA3MV0sWzMwNzIsMzE5OV0sWzMyMDAsMzMyN10sWzMzMjgsMzQ1NV0sWzM1ODQsMzcxMV0sWzM3MTIsMzgzOV0sWzQyNTYsNDM1MSwxMTUyMCwxMTU2N10sWzY5MTIsNzAzOV0sWzQzNTIsNDYwN10sWzc2ODAsNzkzNSwxMTM2MCwxMTM5MSw0Mjc4NCw0MzAwN10sWzc5MzYsODE5MV0sWzgxOTIsODMwMywxMTc3NiwxMTkwM10sWzgzMDQsODM1MV0sWzgzNTIsODM5OV0sWzg0MDAsODQ0N10sWzg0NDgsODUyN10sWzg1MjgsODU5MV0sWzg1OTIsODcwMywxMDIyNCwxMDIzOSwxMDQ5NiwxMDYyMywxMTAwOCwxMTI2M10sWzg3MDQsODk1OSwxMDc1MiwxMTAwNywxMDE3NiwxMDIyMywxMDYyNCwxMDc1MV0sWzg5NjAsOTIxNV0sWzkyMTYsOTI3OV0sWzkyODAsOTMxMV0sWzkzMTIsOTQ3MV0sWzk0NzIsOTU5OV0sWzk2MDAsOTYzMV0sWzk2MzIsOTcyN10sWzk3MjgsOTk4M10sWzk5ODQsMTAxNzVdLFsxMjI4OCwxMjM1MV0sWzEyMzUyLDEyNDQ3XSxbMTI0NDgsMTI1NDMsMTI3ODQsMTI3OTldLFsxMjU0NCwxMjU5MSwxMjcwNCwxMjczNV0sWzEyNTkyLDEyNjg3XSxbNDMwNzIsNDMxMzVdLFsxMjgwMCwxMzA1NV0sWzEzMDU2LDEzMzExXSxbNDQwMzIsNTUyMTVdLFs1NTI5Niw1NzM0M10sWzY3ODQwLDY3ODcxXSxbMTk5NjgsNDA5NTksMTE5MDQsMTIwMzEsMTIwMzIsMTIyNTUsMTIyNzIsMTIyODcsMTMzMTIsMTk5MDMsMTMxMDcyLDE3Mzc5MSwxMjY4OCwxMjcwM10sWzU3MzQ0LDYzNzQzXSxbMTI3MzYsMTI3ODMsNjM3NDQsNjQyNTUsMTk0NTYwLDE5NTEwM10sWzY0MjU2LDY0MzM1XSxbNjQzMzYsNjUwMjNdLFs2NTA1Niw2NTA3MV0sWzY1MDQwLDY1MDU1XSxbNjUxMDQsNjUxMzVdLFs2NTEzNiw2NTI3OV0sWzY1MjgwLDY1NTE5XSxbNjU1MjAsNjU1MzVdLFszODQwLDQwOTVdLFsxNzkyLDE4NzFdLFsxOTIwLDE5ODNdLFszNDU2LDM1ODNdLFs0MDk2LDQyNTVdLFs0NjA4LDQ5OTEsNDk5Miw1MDIzLDExNjQ4LDExNzQzXSxbNTAyNCw1MTE5XSxbNTEyMCw1NzU5XSxbNTc2MCw1NzkxXSxbNTc5Miw1ODg3XSxbNjAxNiw2MTQzXSxbNjE0NCw2MzE5XSxbMTAyNDAsMTA0OTVdLFs0MDk2MCw0MjEyN10sWzU4ODgsNTkxOSw1OTIwLDU5NTEsNTk1Miw1OTgzLDU5ODQsNjAxNV0sWzY2MzA0LDY2MzUxXSxbNjYzNTIsNjYzODNdLFs2NjU2MCw2NjYzOV0sWzExODc4NCwxMTkwMzksMTE5MDQwLDExOTI5NSwxMTkyOTYsMTE5Mzc1XSxbMTE5ODA4LDEyMDgzMV0sWzEwNDQ0ODAsMTA0ODU3M10sWzY1MDI0LDY1MDM5LDkxNzc2MCw5MTc5OTldLFs5MTc1MDQsOTE3NjMxXSxbNjQwMCw2NDc5XSxbNjQ4MCw2NTI3XSxbNjUyOCw2NjIzXSxbNjY1Niw2Njg3XSxbMTEyNjQsMTEzNTldLFsxMTU2OCwxMTY0N10sWzE5OTA0LDE5OTY3XSxbNDMwMDgsNDMwNTVdLFs2NTUzNiw2NTY2Myw2NTY2NCw2NTc5MSw2NTc5Miw2NTg1NV0sWzY1ODU2LDY1OTM1XSxbNjY0MzIsNjY0NjNdLFs2NjQ2NCw2NjUyN10sWzY2NjQwLDY2Njg3XSxbNjY2ODgsNjY3MzVdLFs2NzU4NCw2NzY0N10sWzY4MDk2LDY4MTkxXSxbMTE5NTUyLDExOTY0N10sWzczNzI4LDc0NzUxLDc0NzUyLDc0ODc5XSxbMTE5NjQ4LDExOTY3OV0sWzcwNDAsNzEwM10sWzcxNjgsNzI0N10sWzcyNDgsNzI5NV0sWzQzMTM2LDQzMjMxXSxbNDMyNjQsNDMzMTFdLFs0MzMxMiw0MzM1OV0sWzQzNTIwLDQzNjE1XSxbNjU5MzYsNjU5OTldLFs2NmUzLDY2MDQ3XSxbNjYyMDgsNjYyNzEsNjYxNzYsNjYyMDcsNjc4NzIsNjc5MDNdLFsxMjcwMjQsMTI3MTM1LDEyNjk3NiwxMjcwMjNdXTtmdW5jdGlvbiBnZXRVbmljb2RlUmFuZ2VGb3IoZSx0PS0xKXtpZigtMSE9PXQpe2NvbnN0IG49dmFbdF07Zm9yKGxldCBhPTAscj1uLmxlbmd0aDthPHI7YSs9MilpZihlPj1uW2FdJiZlPD1uW2ErMV0pcmV0dXJuIHR9Zm9yKGxldCB0PTAsbj12YS5sZW5ndGg7dDxuO3QrKyl7Y29uc3Qgbj12YVt0XTtmb3IobGV0IGE9MCxyPW4ubGVuZ3RoO2E8cjthKz0yKWlmKGU+PW5bYV0mJmU8PW5bYSsxXSlyZXR1cm4gdH1yZXR1cm4tMX1jb25zdCBTYT1uZXcgUmVnRXhwKCJeKFxccyl8KFxccHtNbn0pfChcXHB7Q2Z9KSQiLCJ1IikseGE9bmV3IE1hcDtjb25zdCBBYT0hMCxDYT0xLElhPTIsRmE9NCxUYT0zMixPYT1bIi5ub3RkZWYiLCIubnVsbCIsIm5vbm1hcmtpbmdyZXR1cm4iLCJzcGFjZSIsImV4Y2xhbSIsInF1b3RlZGJsIiwibnVtYmVyc2lnbiIsImRvbGxhciIsInBlcmNlbnQiLCJhbXBlcnNhbmQiLCJxdW90ZXNpbmdsZSIsInBhcmVubGVmdCIsInBhcmVucmlnaHQiLCJhc3RlcmlzayIsInBsdXMiLCJjb21tYSIsImh5cGhlbiIsInBlcmlvZCIsInNsYXNoIiwiemVybyIsIm9uZSIsInR3byIsInRocmVlIiwiZm91ciIsImZpdmUiLCJzaXgiLCJzZXZlbiIsImVpZ2h0IiwibmluZSIsImNvbG9uIiwic2VtaWNvbG9uIiwibGVzcyIsImVxdWFsIiwiZ3JlYXRlciIsInF1ZXN0aW9uIiwiYXQiLCJBIiwiQiIsIkMiLCJEIiwiRSIsIkYiLCJHIiwiSCIsIkkiLCJKIiwiSyIsIkwiLCJNIiwiTiIsIk8iLCJQIiwiUSIsIlIiLCJTIiwiVCIsIlUiLCJWIiwiVyIsIlgiLCJZIiwiWiIsImJyYWNrZXRsZWZ0IiwiYmFja3NsYXNoIiwiYnJhY2tldHJpZ2h0IiwiYXNjaWljaXJjdW0iLCJ1bmRlcnNjb3JlIiwiZ3JhdmUiLCJhIiwiYiIsImMiLCJkIiwiZSIsImYiLCJnIiwiaCIsImkiLCJqIiwiayIsImwiLCJtIiwibiIsIm8iLCJwIiwicSIsInIiLCJzIiwidCIsInUiLCJ2IiwidyIsIngiLCJ5IiwieiIsImJyYWNlbGVmdCIsImJhciIsImJyYWNlcmlnaHQiLCJhc2NpaXRpbGRlIiwiQWRpZXJlc2lzIiwiQXJpbmciLCJDY2VkaWxsYSIsIkVhY3V0ZSIsIk50aWxkZSIsIk9kaWVyZXNpcyIsIlVkaWVyZXNpcyIsImFhY3V0ZSIsImFncmF2ZSIsImFjaXJjdW1mbGV4IiwiYWRpZXJlc2lzIiwiYXRpbGRlIiwiYXJpbmciLCJjY2VkaWxsYSIsImVhY3V0ZSIsImVncmF2ZSIsImVjaXJjdW1mbGV4IiwiZWRpZXJlc2lzIiwiaWFjdXRlIiwiaWdyYXZlIiwiaWNpcmN1bWZsZXgiLCJpZGllcmVzaXMiLCJudGlsZGUiLCJvYWN1dGUiLCJvZ3JhdmUiLCJvY2lyY3VtZmxleCIsIm9kaWVyZXNpcyIsIm90aWxkZSIsInVhY3V0ZSIsInVncmF2ZSIsInVjaXJjdW1mbGV4IiwidWRpZXJlc2lzIiwiZGFnZ2VyIiwiZGVncmVlIiwiY2VudCIsInN0ZXJsaW5nIiwic2VjdGlvbiIsImJ1bGxldCIsInBhcmFncmFwaCIsImdlcm1hbmRibHMiLCJyZWdpc3RlcmVkIiwiY29weXJpZ2h0IiwidHJhZGVtYXJrIiwiYWN1dGUiLCJkaWVyZXNpcyIsIm5vdGVxdWFsIiwiQUUiLCJPc2xhc2giLCJpbmZpbml0eSIsInBsdXNtaW51cyIsImxlc3NlcXVhbCIsImdyZWF0ZXJlcXVhbCIsInllbiIsIm11IiwicGFydGlhbGRpZmYiLCJzdW1tYXRpb24iLCJwcm9kdWN0IiwicGkiLCJpbnRlZ3JhbCIsIm9yZGZlbWluaW5lIiwib3JkbWFzY3VsaW5lIiwiT21lZ2EiLCJhZSIsIm9zbGFzaCIsInF1ZXN0aW9uZG93biIsImV4Y2xhbWRvd24iLCJsb2dpY2Fsbm90IiwicmFkaWNhbCIsImZsb3JpbiIsImFwcHJveGVxdWFsIiwiRGVsdGEiLCJndWlsbGVtb3RsZWZ0IiwiZ3VpbGxlbW90cmlnaHQiLCJlbGxpcHNpcyIsIm5vbmJyZWFraW5nc3BhY2UiLCJBZ3JhdmUiLCJBdGlsZGUiLCJPdGlsZGUiLCJPRSIsIm9lIiwiZW5kYXNoIiwiZW1kYXNoIiwicXVvdGVkYmxsZWZ0IiwicXVvdGVkYmxyaWdodCIsInF1b3RlbGVmdCIsInF1b3RlcmlnaHQiLCJkaXZpZGUiLCJsb3plbmdlIiwieWRpZXJlc2lzIiwiWWRpZXJlc2lzIiwiZnJhY3Rpb24iLCJjdXJyZW5jeSIsImd1aWxzaW5nbGxlZnQiLCJndWlsc2luZ2xyaWdodCIsImZpIiwiZmwiLCJkYWdnZXJkYmwiLCJwZXJpb2RjZW50ZXJlZCIsInF1b3Rlc2luZ2xiYXNlIiwicXVvdGVkYmxiYXNlIiwicGVydGhvdXNhbmQiLCJBY2lyY3VtZmxleCIsIkVjaXJjdW1mbGV4IiwiQWFjdXRlIiwiRWRpZXJlc2lzIiwiRWdyYXZlIiwiSWFjdXRlIiwiSWNpcmN1bWZsZXgiLCJJZGllcmVzaXMiLCJJZ3JhdmUiLCJPYWN1dGUiLCJPY2lyY3VtZmxleCIsImFwcGxlIiwiT2dyYXZlIiwiVWFjdXRlIiwiVWNpcmN1bWZsZXgiLCJVZ3JhdmUiLCJkb3RsZXNzaSIsImNpcmN1bWZsZXgiLCJ0aWxkZSIsIm1hY3JvbiIsImJyZXZlIiwiZG90YWNjZW50IiwicmluZyIsImNlZGlsbGEiLCJodW5nYXJ1bWxhdXQiLCJvZ29uZWsiLCJjYXJvbiIsIkxzbGFzaCIsImxzbGFzaCIsIlNjYXJvbiIsInNjYXJvbiIsIlpjYXJvbiIsInpjYXJvbiIsImJyb2tlbmJhciIsIkV0aCIsImV0aCIsIllhY3V0ZSIsInlhY3V0ZSIsIlRob3JuIiwidGhvcm4iLCJtaW51cyIsIm11bHRpcGx5Iiwib25lc3VwZXJpb3IiLCJ0d29zdXBlcmlvciIsInRocmVlc3VwZXJpb3IiLCJvbmVoYWxmIiwib25lcXVhcnRlciIsInRocmVlcXVhcnRlcnMiLCJmcmFuYyIsIkdicmV2ZSIsImdicmV2ZSIsIklkb3RhY2NlbnQiLCJTY2VkaWxsYSIsInNjZWRpbGxhIiwiQ2FjdXRlIiwiY2FjdXRlIiwiQ2Nhcm9uIiwiY2Nhcm9uIiwiZGNyb2F0Il07ZnVuY3Rpb24gcmVjb3ZlckdseXBoTmFtZShlLHQpe2lmKHZvaWQgMCE9PXRbZV0pcmV0dXJuIGU7Y29uc3Qgbj1nZXRVbmljb2RlRm9yR2x5cGgoZSx0KTtpZigtMSE9PW4pZm9yKGNvbnN0IGUgaW4gdClpZih0W2VdPT09bilyZXR1cm4gZTtpbmZvKCJVbmFibGUgdG8gcmVjb3ZlciBhIHN0YW5kYXJkIGdseXBoIG5hbWUgZm9yOiAiK2UpO3JldHVybiBlfWZ1bmN0aW9uIHR5cGUxRm9udEdseXBoTWFwcGluZyhlLHQsbil7Y29uc3QgYT1PYmplY3QuY3JlYXRlKG51bGwpO2xldCByLHMsaTtjb25zdCBvPSEhKGUuZmxhZ3MmRmEpO2lmKGUuaXNJbnRlcm5hbEZvbnQpe2k9dDtmb3Iocz0wO3M8aS5sZW5ndGg7cysrKXtyPW4uaW5kZXhPZihpW3NdKTthW3NdPXI+PTA/cjowfX1lbHNlIGlmKGUuYmFzZUVuY29kaW5nTmFtZSl7aT1nZXRFbmNvZGluZyhlLmJhc2VFbmNvZGluZ05hbWUpO2ZvcihzPTA7czxpLmxlbmd0aDtzKyspe3I9bi5pbmRleE9mKGlbc10pO2Fbc109cj49MD9yOjB9fWVsc2UgaWYobylmb3IocyBpbiB0KWFbc109dFtzXTtlbHNle2k9Z2E7Zm9yKHM9MDtzPGkubGVuZ3RoO3MrKyl7cj1uLmluZGV4T2YoaVtzXSk7YVtzXT1yPj0wP3I6MH19Y29uc3QgbD1lLmRpZmZlcmVuY2VzO2xldCBmO2lmKGwpZm9yKHMgaW4gbCl7Y29uc3QgZT1sW3NdO3I9bi5pbmRleE9mKGUpO2lmKC0xPT09cil7Znx8KGY9a2EoKSk7Y29uc3QgdD1yZWNvdmVyR2x5cGhOYW1lKGUsZik7dCE9PWUmJihyPW4uaW5kZXhPZih0KSl9YVtzXT1yPj0wP3I6MH1yZXR1cm4gYX1mdW5jdGlvbiBub3JtYWxpemVGb250TmFtZShlKXtyZXR1cm4gZS5yZXBsYWNlQWxsKC9bLF9dL2csIi0iKS5yZXBsYWNlQWxsKC9ccy9nLCIiKX1jb25zdCBSYT1nZXRMb29rdXBUYWJsZUZhY3RvcnkoZT0+e2VbODIxMV09NjUwNzQ7ZVs4MjEyXT02NTA3MztlWzgyMjldPTY1MDcyO2VbODIzMF09NjUwNDk7ZVsxMjI4OV09NjUwNDE7ZVsxMjI5MF09NjUwNDI7ZVsxMjI5Nl09NjUwODc7ZVsxMjI5N109NjUwODg7ZVsxMjI5OF09NjUwODU7ZVsxMjI5OV09NjUwODY7ZVsxMjMwMF09NjUwODk7ZVsxMjMwMV09NjUwOTA7ZVsxMjMwMl09NjUwOTE7ZVsxMjMwM109NjUwOTI7ZVsxMjMwNF09NjUwODM7ZVsxMjMwNV09NjUwODQ7ZVsxMjMwOF09NjUwODE7ZVsxMjMwOV09NjUwODI7ZVsxMjMxMF09NjUwNDc7ZVsxMjMxMV09NjUwNDg7ZVs2NTEwM109NjUwNzY7ZVs2NTI4MV09NjUwNDU7ZVs2NTI4OF09NjUwNzc7ZVs2NTI4OV09NjUwNzg7ZVs2NTI5Ml09NjUwNDA7ZVs2NTMwNl09NjUwNDM7ZVs2NTMwN109NjUwNDQ7ZVs2NTMxMV09NjUwNDY7ZVs2NTMzOV09NjUwOTU7ZVs2NTM0MV09NjUwOTY7ZVs2NTM0M109NjUwNzU7ZVs2NTM3MV09NjUwNzk7ZVs2NTM3M109NjUwODB9KTtfX3dlYnBhY2tfcmVxdWlyZV9fKDE4MDYpO2NvbnN0IEJhPVsiLm5vdGRlZiIsInNwYWNlIiwiZXhjbGFtIiwicXVvdGVkYmwiLCJudW1iZXJzaWduIiwiZG9sbGFyIiwicGVyY2VudCIsImFtcGVyc2FuZCIsInF1b3RlcmlnaHQiLCJwYXJlbmxlZnQiLCJwYXJlbnJpZ2h0IiwiYXN0ZXJpc2siLCJwbHVzIiwiY29tbWEiLCJoeXBoZW4iLCJwZXJpb2QiLCJzbGFzaCIsInplcm8iLCJvbmUiLCJ0d28iLCJ0aHJlZSIsImZvdXIiLCJmaXZlIiwic2l4Iiwic2V2ZW4iLCJlaWdodCIsIm5pbmUiLCJjb2xvbiIsInNlbWljb2xvbiIsImxlc3MiLCJlcXVhbCIsImdyZWF0ZXIiLCJxdWVzdGlvbiIsImF0IiwiQSIsIkIiLCJDIiwiRCIsIkUiLCJGIiwiRyIsIkgiLCJJIiwiSiIsIksiLCJMIiwiTSIsIk4iLCJPIiwiUCIsIlEiLCJSIiwiUyIsIlQiLCJVIiwiViIsIlciLCJYIiwiWSIsIloiLCJicmFja2V0bGVmdCIsImJhY2tzbGFzaCIsImJyYWNrZXRyaWdodCIsImFzY2lpY2lyY3VtIiwidW5kZXJzY29yZSIsInF1b3RlbGVmdCIsImEiLCJiIiwiYyIsImQiLCJlIiwiZiIsImciLCJoIiwiaSIsImoiLCJrIiwibCIsIm0iLCJuIiwibyIsInAiLCJxIiwiciIsInMiLCJ0IiwidSIsInYiLCJ3IiwieCIsInkiLCJ6IiwiYnJhY2VsZWZ0IiwiYmFyIiwiYnJhY2VyaWdodCIsImFzY2lpdGlsZGUiLCJleGNsYW1kb3duIiwiY2VudCIsInN0ZXJsaW5nIiwiZnJhY3Rpb24iLCJ5ZW4iLCJmbG9yaW4iLCJzZWN0aW9uIiwiY3VycmVuY3kiLCJxdW90ZXNpbmdsZSIsInF1b3RlZGJsbGVmdCIsImd1aWxsZW1vdGxlZnQiLCJndWlsc2luZ2xsZWZ0IiwiZ3VpbHNpbmdscmlnaHQiLCJmaSIsImZsIiwiZW5kYXNoIiwiZGFnZ2VyIiwiZGFnZ2VyZGJsIiwicGVyaW9kY2VudGVyZWQiLCJwYXJhZ3JhcGgiLCJidWxsZXQiLCJxdW90ZXNpbmdsYmFzZSIsInF1b3RlZGJsYmFzZSIsInF1b3RlZGJscmlnaHQiLCJndWlsbGVtb3RyaWdodCIsImVsbGlwc2lzIiwicGVydGhvdXNhbmQiLCJxdWVzdGlvbmRvd24iLCJncmF2ZSIsImFjdXRlIiwiY2lyY3VtZmxleCIsInRpbGRlIiwibWFjcm9uIiwiYnJldmUiLCJkb3RhY2NlbnQiLCJkaWVyZXNpcyIsInJpbmciLCJjZWRpbGxhIiwiaHVuZ2FydW1sYXV0Iiwib2dvbmVrIiwiY2Fyb24iLCJlbWRhc2giLCJBRSIsIm9yZGZlbWluaW5lIiwiTHNsYXNoIiwiT3NsYXNoIiwiT0UiLCJvcmRtYXNjdWxpbmUiLCJhZSIsImRvdGxlc3NpIiwibHNsYXNoIiwib3NsYXNoIiwib2UiLCJnZXJtYW5kYmxzIiwib25lc3VwZXJpb3IiLCJsb2dpY2Fsbm90IiwibXUiLCJ0cmFkZW1hcmsiLCJFdGgiLCJvbmVoYWxmIiwicGx1c21pbnVzIiwiVGhvcm4iLCJvbmVxdWFydGVyIiwiZGl2aWRlIiwiYnJva2VuYmFyIiwiZGVncmVlIiwidGhvcm4iLCJ0aHJlZXF1YXJ0ZXJzIiwidHdvc3VwZXJpb3IiLCJyZWdpc3RlcmVkIiwibWludXMiLCJldGgiLCJtdWx0aXBseSIsInRocmVlc3VwZXJpb3IiLCJjb3B5cmlnaHQiLCJBYWN1dGUiLCJBY2lyY3VtZmxleCIsIkFkaWVyZXNpcyIsIkFncmF2ZSIsIkFyaW5nIiwiQXRpbGRlIiwiQ2NlZGlsbGEiLCJFYWN1dGUiLCJFY2lyY3VtZmxleCIsIkVkaWVyZXNpcyIsIkVncmF2ZSIsIklhY3V0ZSIsIkljaXJjdW1mbGV4IiwiSWRpZXJlc2lzIiwiSWdyYXZlIiwiTnRpbGRlIiwiT2FjdXRlIiwiT2NpcmN1bWZsZXgiLCJPZGllcmVzaXMiLCJPZ3JhdmUiLCJPdGlsZGUiLCJTY2Fyb24iLCJVYWN1dGUiLCJVY2lyY3VtZmxleCIsIlVkaWVyZXNpcyIsIlVncmF2ZSIsIllhY3V0ZSIsIllkaWVyZXNpcyIsIlpjYXJvbiIsImFhY3V0ZSIsImFjaXJjdW1mbGV4IiwiYWRpZXJlc2lzIiwiYWdyYXZlIiwiYXJpbmciLCJhdGlsZGUiLCJjY2VkaWxsYSIsImVhY3V0ZSIsImVjaXJjdW1mbGV4IiwiZWRpZXJlc2lzIiwiZWdyYXZlIiwiaWFjdXRlIiwiaWNpcmN1bWZsZXgiLCJpZGllcmVzaXMiLCJpZ3JhdmUiLCJudGlsZGUiLCJvYWN1dGUiLCJvY2lyY3VtZmxleCIsIm9kaWVyZXNpcyIsIm9ncmF2ZSIsIm90aWxkZSIsInNjYXJvbiIsInVhY3V0ZSIsInVjaXJjdW1mbGV4IiwidWRpZXJlc2lzIiwidWdyYXZlIiwieWFjdXRlIiwieWRpZXJlc2lzIiwiemNhcm9uIl0sSGE9WyIubm90ZGVmIiwic3BhY2UiLCJleGNsYW1zbWFsbCIsIkh1bmdhcnVtbGF1dHNtYWxsIiwiZG9sbGFyb2xkc3R5bGUiLCJkb2xsYXJzdXBlcmlvciIsImFtcGVyc2FuZHNtYWxsIiwiQWN1dGVzbWFsbCIsInBhcmVubGVmdHN1cGVyaW9yIiwicGFyZW5yaWdodHN1cGVyaW9yIiwidHdvZG90ZW5sZWFkZXIiLCJvbmVkb3RlbmxlYWRlciIsImNvbW1hIiwiaHlwaGVuIiwicGVyaW9kIiwiZnJhY3Rpb24iLCJ6ZXJvb2xkc3R5bGUiLCJvbmVvbGRzdHlsZSIsInR3b29sZHN0eWxlIiwidGhyZWVvbGRzdHlsZSIsImZvdXJvbGRzdHlsZSIsImZpdmVvbGRzdHlsZSIsInNpeG9sZHN0eWxlIiwic2V2ZW5vbGRzdHlsZSIsImVpZ2h0b2xkc3R5bGUiLCJuaW5lb2xkc3R5bGUiLCJjb2xvbiIsInNlbWljb2xvbiIsImNvbW1hc3VwZXJpb3IiLCJ0aHJlZXF1YXJ0ZXJzZW1kYXNoIiwicGVyaW9kc3VwZXJpb3IiLCJxdWVzdGlvbnNtYWxsIiwiYXN1cGVyaW9yIiwiYnN1cGVyaW9yIiwiY2VudHN1cGVyaW9yIiwiZHN1cGVyaW9yIiwiZXN1cGVyaW9yIiwiaXN1cGVyaW9yIiwibHN1cGVyaW9yIiwibXN1cGVyaW9yIiwibnN1cGVyaW9yIiwib3N1cGVyaW9yIiwicnN1cGVyaW9yIiwic3N1cGVyaW9yIiwidHN1cGVyaW9yIiwiZmYiLCJmaSIsImZsIiwiZmZpIiwiZmZsIiwicGFyZW5sZWZ0aW5mZXJpb3IiLCJwYXJlbnJpZ2h0aW5mZXJpb3IiLCJDaXJjdW1mbGV4c21hbGwiLCJoeXBoZW5zdXBlcmlvciIsIkdyYXZlc21hbGwiLCJBc21hbGwiLCJCc21hbGwiLCJDc21hbGwiLCJEc21hbGwiLCJFc21hbGwiLCJGc21hbGwiLCJHc21hbGwiLCJIc21hbGwiLCJJc21hbGwiLCJKc21hbGwiLCJLc21hbGwiLCJMc21hbGwiLCJNc21hbGwiLCJOc21hbGwiLCJPc21hbGwiLCJQc21hbGwiLCJRc21hbGwiLCJSc21hbGwiLCJTc21hbGwiLCJUc21hbGwiLCJVc21hbGwiLCJWc21hbGwiLCJXc21hbGwiLCJYc21hbGwiLCJZc21hbGwiLCJac21hbGwiLCJjb2xvbm1vbmV0YXJ5Iiwib25lZml0dGVkIiwicnVwaWFoIiwiVGlsZGVzbWFsbCIsImV4Y2xhbWRvd25zbWFsbCIsImNlbnRvbGRzdHlsZSIsIkxzbGFzaHNtYWxsIiwiU2Nhcm9uc21hbGwiLCJaY2Fyb25zbWFsbCIsIkRpZXJlc2lzc21hbGwiLCJCcmV2ZXNtYWxsIiwiQ2Fyb25zbWFsbCIsIkRvdGFjY2VudHNtYWxsIiwiTWFjcm9uc21hbGwiLCJmaWd1cmVkYXNoIiwiaHlwaGVuaW5mZXJpb3IiLCJPZ29uZWtzbWFsbCIsIlJpbmdzbWFsbCIsIkNlZGlsbGFzbWFsbCIsIm9uZXF1YXJ0ZXIiLCJvbmVoYWxmIiwidGhyZWVxdWFydGVycyIsInF1ZXN0aW9uZG93bnNtYWxsIiwib25lZWlnaHRoIiwidGhyZWVlaWdodGhzIiwiZml2ZWVpZ2h0aHMiLCJzZXZlbmVpZ2h0aHMiLCJvbmV0aGlyZCIsInR3b3RoaXJkcyIsInplcm9zdXBlcmlvciIsIm9uZXN1cGVyaW9yIiwidHdvc3VwZXJpb3IiLCJ0aHJlZXN1cGVyaW9yIiwiZm91cnN1cGVyaW9yIiwiZml2ZXN1cGVyaW9yIiwic2l4c3VwZXJpb3IiLCJzZXZlbnN1cGVyaW9yIiwiZWlnaHRzdXBlcmlvciIsIm5pbmVzdXBlcmlvciIsInplcm9pbmZlcmlvciIsIm9uZWluZmVyaW9yIiwidHdvaW5mZXJpb3IiLCJ0aHJlZWluZmVyaW9yIiwiZm91cmluZmVyaW9yIiwiZml2ZWluZmVyaW9yIiwic2l4aW5mZXJpb3IiLCJzZXZlbmluZmVyaW9yIiwiZWlnaHRpbmZlcmlvciIsIm5pbmVpbmZlcmlvciIsImNlbnRpbmZlcmlvciIsImRvbGxhcmluZmVyaW9yIiwicGVyaW9kaW5mZXJpb3IiLCJjb21tYWluZmVyaW9yIiwiQWdyYXZlc21hbGwiLCJBYWN1dGVzbWFsbCIsIkFjaXJjdW1mbGV4c21hbGwiLCJBdGlsZGVzbWFsbCIsIkFkaWVyZXNpc3NtYWxsIiwiQXJpbmdzbWFsbCIsIkFFc21hbGwiLCJDY2VkaWxsYXNtYWxsIiwiRWdyYXZlc21hbGwiLCJFYWN1dGVzbWFsbCIsIkVjaXJjdW1mbGV4c21hbGwiLCJFZGllcmVzaXNzbWFsbCIsIklncmF2ZXNtYWxsIiwiSWFjdXRlc21hbGwiLCJJY2lyY3VtZmxleHNtYWxsIiwiSWRpZXJlc2lzc21hbGwiLCJFdGhzbWFsbCIsIk50aWxkZXNtYWxsIiwiT2dyYXZlc21hbGwiLCJPYWN1dGVzbWFsbCIsIk9jaXJjdW1mbGV4c21hbGwiLCJPdGlsZGVzbWFsbCIsIk9kaWVyZXNpc3NtYWxsIiwiT0VzbWFsbCIsIk9zbGFzaHNtYWxsIiwiVWdyYXZlc21hbGwiLCJVYWN1dGVzbWFsbCIsIlVjaXJjdW1mbGV4c21hbGwiLCJVZGllcmVzaXNzbWFsbCIsIllhY3V0ZXNtYWxsIiwiVGhvcm5zbWFsbCIsIllkaWVyZXNpc3NtYWxsIl0sRGE9WyIubm90ZGVmIiwic3BhY2UiLCJkb2xsYXJvbGRzdHlsZSIsImRvbGxhcnN1cGVyaW9yIiwicGFyZW5sZWZ0c3VwZXJpb3IiLCJwYXJlbnJpZ2h0c3VwZXJpb3IiLCJ0d29kb3RlbmxlYWRlciIsIm9uZWRvdGVubGVhZGVyIiwiY29tbWEiLCJoeXBoZW4iLCJwZXJpb2QiLCJmcmFjdGlvbiIsInplcm9vbGRzdHlsZSIsIm9uZW9sZHN0eWxlIiwidHdvb2xkc3R5bGUiLCJ0aHJlZW9sZHN0eWxlIiwiZm91cm9sZHN0eWxlIiwiZml2ZW9sZHN0eWxlIiwic2l4b2xkc3R5bGUiLCJzZXZlbm9sZHN0eWxlIiwiZWlnaHRvbGRzdHlsZSIsIm5pbmVvbGRzdHlsZSIsImNvbG9uIiwic2VtaWNvbG9uIiwiY29tbWFzdXBlcmlvciIsInRocmVlcXVhcnRlcnNlbWRhc2giLCJwZXJpb2RzdXBlcmlvciIsImFzdXBlcmlvciIsImJzdXBlcmlvciIsImNlbnRzdXBlcmlvciIsImRzdXBlcmlvciIsImVzdXBlcmlvciIsImlzdXBlcmlvciIsImxzdXBlcmlvciIsIm1zdXBlcmlvciIsIm5zdXBlcmlvciIsIm9zdXBlcmlvciIsInJzdXBlcmlvciIsInNzdXBlcmlvciIsInRzdXBlcmlvciIsImZmIiwiZmkiLCJmbCIsImZmaSIsImZmbCIsInBhcmVubGVmdGluZmVyaW9yIiwicGFyZW5yaWdodGluZmVyaW9yIiwiaHlwaGVuc3VwZXJpb3IiLCJjb2xvbm1vbmV0YXJ5Iiwib25lZml0dGVkIiwicnVwaWFoIiwiY2VudG9sZHN0eWxlIiwiZmlndXJlZGFzaCIsImh5cGhlbmluZmVyaW9yIiwib25lcXVhcnRlciIsIm9uZWhhbGYiLCJ0aHJlZXF1YXJ0ZXJzIiwib25lZWlnaHRoIiwidGhyZWVlaWdodGhzIiwiZml2ZWVpZ2h0aHMiLCJzZXZlbmVpZ2h0aHMiLCJvbmV0aGlyZCIsInR3b3RoaXJkcyIsInplcm9zdXBlcmlvciIsIm9uZXN1cGVyaW9yIiwidHdvc3VwZXJpb3IiLCJ0aHJlZXN1cGVyaW9yIiwiZm91cnN1cGVyaW9yIiwiZml2ZXN1cGVyaW9yIiwic2l4c3VwZXJpb3IiLCJzZXZlbnN1cGVyaW9yIiwiZWlnaHRzdXBlcmlvciIsIm5pbmVzdXBlcmlvciIsInplcm9pbmZlcmlvciIsIm9uZWluZmVyaW9yIiwidHdvaW5mZXJpb3IiLCJ0aHJlZWluZmVyaW9yIiwiZm91cmluZmVyaW9yIiwiZml2ZWluZmVyaW9yIiwic2l4aW5mZXJpb3IiLCJzZXZlbmluZmVyaW9yIiwiZWlnaHRpbmZlcmlvciIsIm5pbmVpbmZlcmlvciIsImNlbnRpbmZlcmlvciIsImRvbGxhcmluZmVyaW9yIiwicGVyaW9kaW5mZXJpb3IiLCJjb21tYWluZmVyaW9yIl0sTWE9WyIubm90ZGVmIiwic3BhY2UiLCJleGNsYW0iLCJxdW90ZWRibCIsIm51bWJlcnNpZ24iLCJkb2xsYXIiLCJwZXJjZW50IiwiYW1wZXJzYW5kIiwicXVvdGVyaWdodCIsInBhcmVubGVmdCIsInBhcmVucmlnaHQiLCJhc3RlcmlzayIsInBsdXMiLCJjb21tYSIsImh5cGhlbiIsInBlcmlvZCIsInNsYXNoIiwiemVybyIsIm9uZSIsInR3byIsInRocmVlIiwiZm91ciIsImZpdmUiLCJzaXgiLCJzZXZlbiIsImVpZ2h0IiwibmluZSIsImNvbG9uIiwic2VtaWNvbG9uIiwibGVzcyIsImVxdWFsIiwiZ3JlYXRlciIsInF1ZXN0aW9uIiwiYXQiLCJBIiwiQiIsIkMiLCJEIiwiRSIsIkYiLCJHIiwiSCIsIkkiLCJKIiwiSyIsIkwiLCJNIiwiTiIsIk8iLCJQIiwiUSIsIlIiLCJTIiwiVCIsIlUiLCJWIiwiVyIsIlgiLCJZIiwiWiIsImJyYWNrZXRsZWZ0IiwiYmFja3NsYXNoIiwiYnJhY2tldHJpZ2h0IiwiYXNjaWljaXJjdW0iLCJ1bmRlcnNjb3JlIiwicXVvdGVsZWZ0IiwiYSIsImIiLCJjIiwiZCIsImUiLCJmIiwiZyIsImgiLCJpIiwiaiIsImsiLCJsIiwibSIsIm4iLCJvIiwicCIsInEiLCJyIiwicyIsInQiLCJ1IiwidiIsInciLCJ4IiwieSIsInoiLCJicmFjZWxlZnQiLCJiYXIiLCJicmFjZXJpZ2h0IiwiYXNjaWl0aWxkZSIsImV4Y2xhbWRvd24iLCJjZW50Iiwic3RlcmxpbmciLCJmcmFjdGlvbiIsInllbiIsImZsb3JpbiIsInNlY3Rpb24iLCJjdXJyZW5jeSIsInF1b3Rlc2luZ2xlIiwicXVvdGVkYmxsZWZ0IiwiZ3VpbGxlbW90bGVmdCIsImd1aWxzaW5nbGxlZnQiLCJndWlsc2luZ2xyaWdodCIsImZpIiwiZmwiLCJlbmRhc2giLCJkYWdnZXIiLCJkYWdnZXJkYmwiLCJwZXJpb2RjZW50ZXJlZCIsInBhcmFncmFwaCIsImJ1bGxldCIsInF1b3Rlc2luZ2xiYXNlIiwicXVvdGVkYmxiYXNlIiwicXVvdGVkYmxyaWdodCIsImd1aWxsZW1vdHJpZ2h0IiwiZWxsaXBzaXMiLCJwZXJ0aG91c2FuZCIsInF1ZXN0aW9uZG93biIsImdyYXZlIiwiYWN1dGUiLCJjaXJjdW1mbGV4IiwidGlsZGUiLCJtYWNyb24iLCJicmV2ZSIsImRvdGFjY2VudCIsImRpZXJlc2lzIiwicmluZyIsImNlZGlsbGEiLCJodW5nYXJ1bWxhdXQiLCJvZ29uZWsiLCJjYXJvbiIsImVtZGFzaCIsIkFFIiwib3JkZmVtaW5pbmUiLCJMc2xhc2giLCJPc2xhc2giLCJPRSIsIm9yZG1hc2N1bGluZSIsImFlIiwiZG90bGVzc2kiLCJsc2xhc2giLCJvc2xhc2giLCJvZSIsImdlcm1hbmRibHMiLCJvbmVzdXBlcmlvciIsImxvZ2ljYWxub3QiLCJtdSIsInRyYWRlbWFyayIsIkV0aCIsIm9uZWhhbGYiLCJwbHVzbWludXMiLCJUaG9ybiIsIm9uZXF1YXJ0ZXIiLCJkaXZpZGUiLCJicm9rZW5iYXIiLCJkZWdyZWUiLCJ0aG9ybiIsInRocmVlcXVhcnRlcnMiLCJ0d29zdXBlcmlvciIsInJlZ2lzdGVyZWQiLCJtaW51cyIsImV0aCIsIm11bHRpcGx5IiwidGhyZWVzdXBlcmlvciIsImNvcHlyaWdodCIsIkFhY3V0ZSIsIkFjaXJjdW1mbGV4IiwiQWRpZXJlc2lzIiwiQWdyYXZlIiwiQXJpbmciLCJBdGlsZGUiLCJDY2VkaWxsYSIsIkVhY3V0ZSIsIkVjaXJjdW1mbGV4IiwiRWRpZXJlc2lzIiwiRWdyYXZlIiwiSWFjdXRlIiwiSWNpcmN1bWZsZXgiLCJJZGllcmVzaXMiLCJJZ3JhdmUiLCJOdGlsZGUiLCJPYWN1dGUiLCJPY2lyY3VtZmxleCIsIk9kaWVyZXNpcyIsIk9ncmF2ZSIsIk90aWxkZSIsIlNjYXJvbiIsIlVhY3V0ZSIsIlVjaXJjdW1mbGV4IiwiVWRpZXJlc2lzIiwiVWdyYXZlIiwiWWFjdXRlIiwiWWRpZXJlc2lzIiwiWmNhcm9uIiwiYWFjdXRlIiwiYWNpcmN1bWZsZXgiLCJhZGllcmVzaXMiLCJhZ3JhdmUiLCJhcmluZyIsImF0aWxkZSIsImNjZWRpbGxhIiwiZWFjdXRlIiwiZWNpcmN1bWZsZXgiLCJlZGllcmVzaXMiLCJlZ3JhdmUiLCJpYWN1dGUiLCJpY2lyY3VtZmxleCIsImlkaWVyZXNpcyIsImlncmF2ZSIsIm50aWxkZSIsIm9hY3V0ZSIsIm9jaXJjdW1mbGV4Iiwib2RpZXJlc2lzIiwib2dyYXZlIiwib3RpbGRlIiwic2Nhcm9uIiwidWFjdXRlIiwidWNpcmN1bWZsZXgiLCJ1ZGllcmVzaXMiLCJ1Z3JhdmUiLCJ5YWN1dGUiLCJ5ZGllcmVzaXMiLCJ6Y2Fyb24iLCJleGNsYW1zbWFsbCIsIkh1bmdhcnVtbGF1dHNtYWxsIiwiZG9sbGFyb2xkc3R5bGUiLCJkb2xsYXJzdXBlcmlvciIsImFtcGVyc2FuZHNtYWxsIiwiQWN1dGVzbWFsbCIsInBhcmVubGVmdHN1cGVyaW9yIiwicGFyZW5yaWdodHN1cGVyaW9yIiwidHdvZG90ZW5sZWFkZXIiLCJvbmVkb3RlbmxlYWRlciIsInplcm9vbGRzdHlsZSIsIm9uZW9sZHN0eWxlIiwidHdvb2xkc3R5bGUiLCJ0aHJlZW9sZHN0eWxlIiwiZm91cm9sZHN0eWxlIiwiZml2ZW9sZHN0eWxlIiwic2l4b2xkc3R5bGUiLCJzZXZlbm9sZHN0eWxlIiwiZWlnaHRvbGRzdHlsZSIsIm5pbmVvbGRzdHlsZSIsImNvbW1hc3VwZXJpb3IiLCJ0aHJlZXF1YXJ0ZXJzZW1kYXNoIiwicGVyaW9kc3VwZXJpb3IiLCJxdWVzdGlvbnNtYWxsIiwiYXN1cGVyaW9yIiwiYnN1cGVyaW9yIiwiY2VudHN1cGVyaW9yIiwiZHN1cGVyaW9yIiwiZXN1cGVyaW9yIiwiaXN1cGVyaW9yIiwibHN1cGVyaW9yIiwibXN1cGVyaW9yIiwibnN1cGVyaW9yIiwib3N1cGVyaW9yIiwicnN1cGVyaW9yIiwic3N1cGVyaW9yIiwidHN1cGVyaW9yIiwiZmYiLCJmZmkiLCJmZmwiLCJwYXJlbmxlZnRpbmZlcmlvciIsInBhcmVucmlnaHRpbmZlcmlvciIsIkNpcmN1bWZsZXhzbWFsbCIsImh5cGhlbnN1cGVyaW9yIiwiR3JhdmVzbWFsbCIsIkFzbWFsbCIsIkJzbWFsbCIsIkNzbWFsbCIsIkRzbWFsbCIsIkVzbWFsbCIsIkZzbWFsbCIsIkdzbWFsbCIsIkhzbWFsbCIsIklzbWFsbCIsIkpzbWFsbCIsIktzbWFsbCIsIkxzbWFsbCIsIk1zbWFsbCIsIk5zbWFsbCIsIk9zbWFsbCIsIlBzbWFsbCIsIlFzbWFsbCIsIlJzbWFsbCIsIlNzbWFsbCIsIlRzbWFsbCIsIlVzbWFsbCIsIlZzbWFsbCIsIldzbWFsbCIsIlhzbWFsbCIsIllzbWFsbCIsIlpzbWFsbCIsImNvbG9ubW9uZXRhcnkiLCJvbmVmaXR0ZWQiLCJydXBpYWgiLCJUaWxkZXNtYWxsIiwiZXhjbGFtZG93bnNtYWxsIiwiY2VudG9sZHN0eWxlIiwiTHNsYXNoc21hbGwiLCJTY2Fyb25zbWFsbCIsIlpjYXJvbnNtYWxsIiwiRGllcmVzaXNzbWFsbCIsIkJyZXZlc21hbGwiLCJDYXJvbnNtYWxsIiwiRG90YWNjZW50c21hbGwiLCJNYWNyb25zbWFsbCIsImZpZ3VyZWRhc2giLCJoeXBoZW5pbmZlcmlvciIsIk9nb25la3NtYWxsIiwiUmluZ3NtYWxsIiwiQ2VkaWxsYXNtYWxsIiwicXVlc3Rpb25kb3duc21hbGwiLCJvbmVlaWdodGgiLCJ0aHJlZWVpZ2h0aHMiLCJmaXZlZWlnaHRocyIsInNldmVuZWlnaHRocyIsIm9uZXRoaXJkIiwidHdvdGhpcmRzIiwiemVyb3N1cGVyaW9yIiwiZm91cnN1cGVyaW9yIiwiZml2ZXN1cGVyaW9yIiwic2l4c3VwZXJpb3IiLCJzZXZlbnN1cGVyaW9yIiwiZWlnaHRzdXBlcmlvciIsIm5pbmVzdXBlcmlvciIsInplcm9pbmZlcmlvciIsIm9uZWluZmVyaW9yIiwidHdvaW5mZXJpb3IiLCJ0aHJlZWluZmVyaW9yIiwiZm91cmluZmVyaW9yIiwiZml2ZWluZmVyaW9yIiwic2l4aW5mZXJpb3IiLCJzZXZlbmluZmVyaW9yIiwiZWlnaHRpbmZlcmlvciIsIm5pbmVpbmZlcmlvciIsImNlbnRpbmZlcmlvciIsImRvbGxhcmluZmVyaW9yIiwicGVyaW9kaW5mZXJpb3IiLCJjb21tYWluZmVyaW9yIiwiQWdyYXZlc21hbGwiLCJBYWN1dGVzbWFsbCIsIkFjaXJjdW1mbGV4c21hbGwiLCJBdGlsZGVzbWFsbCIsIkFkaWVyZXNpc3NtYWxsIiwiQXJpbmdzbWFsbCIsIkFFc21hbGwiLCJDY2VkaWxsYXNtYWxsIiwiRWdyYXZlc21hbGwiLCJFYWN1dGVzbWFsbCIsIkVjaXJjdW1mbGV4c21hbGwiLCJFZGllcmVzaXNzbWFsbCIsIklncmF2ZXNtYWxsIiwiSWFjdXRlc21hbGwiLCJJY2lyY3VtZmxleHNtYWxsIiwiSWRpZXJlc2lzc21hbGwiLCJFdGhzbWFsbCIsIk50aWxkZXNtYWxsIiwiT2dyYXZlc21hbGwiLCJPYWN1dGVzbWFsbCIsIk9jaXJjdW1mbGV4c21hbGwiLCJPdGlsZGVzbWFsbCIsIk9kaWVyZXNpc3NtYWxsIiwiT0VzbWFsbCIsIk9zbGFzaHNtYWxsIiwiVWdyYXZlc21hbGwiLCJVYWN1dGVzbWFsbCIsIlVjaXJjdW1mbGV4c21hbGwiLCJVZGllcmVzaXNzbWFsbCIsIllhY3V0ZXNtYWxsIiwiVGhvcm5zbWFsbCIsIllkaWVyZXNpc3NtYWxsIiwiMDAxLjAwMCIsIjAwMS4wMDEiLCIwMDEuMDAyIiwiMDAxLjAwMyIsIkJsYWNrIiwiQm9sZCIsIkJvb2siLCJMaWdodCIsIk1lZGl1bSIsIlJlZ3VsYXIiLCJSb21hbiIsIlNlbWlib2xkIl0sUGE9MzkxLEVhPVtudWxsLHtpZDoiaHN0ZW0iLG1pbjoyLHN0YWNrQ2xlYXJpbmc6ITAsc3RlbTohMH0sbnVsbCx7aWQ6InZzdGVtIixtaW46MixzdGFja0NsZWFyaW5nOiEwLHN0ZW06ITB9LHtpZDoidm1vdmV0byIsbWluOjEsc3RhY2tDbGVhcmluZzohMH0se2lkOiJybGluZXRvIixtaW46MixyZXNldFN0YWNrOiEwfSx7aWQ6ImhsaW5ldG8iLG1pbjoxLHJlc2V0U3RhY2s6ITB9LHtpZDoidmxpbmV0byIsbWluOjEscmVzZXRTdGFjazohMH0se2lkOiJycmN1cnZldG8iLG1pbjo2LHJlc2V0U3RhY2s6ITB9LG51bGwse2lkOiJjYWxsc3ViciIsbWluOjF9LHtpZDoicmV0dXJuIixtaW46MH0sbnVsbCxudWxsLHtpZDoiZW5kY2hhciIsbWluOjAsc3RhY2tDbGVhcmluZzohMH0sbnVsbCxudWxsLG51bGwse2lkOiJoc3RlbWhtIixtaW46MixzdGFja0NsZWFyaW5nOiEwLHN0ZW06ITB9LHtpZDoiaGludG1hc2siLG1pbjowLHN0YWNrQ2xlYXJpbmc6ITB9LHtpZDoiY250cm1hc2siLG1pbjowLHN0YWNrQ2xlYXJpbmc6ITB9LHtpZDoicm1vdmV0byIsbWluOjIsc3RhY2tDbGVhcmluZzohMH0se2lkOiJobW92ZXRvIixtaW46MSxzdGFja0NsZWFyaW5nOiEwfSx7aWQ6InZzdGVtaG0iLG1pbjoyLHN0YWNrQ2xlYXJpbmc6ITAsc3RlbTohMH0se2lkOiJyY3VydmVsaW5lIixtaW46OCxyZXNldFN0YWNrOiEwfSx7aWQ6InJsaW5lY3VydmUiLG1pbjo4LHJlc2V0U3RhY2s6ITB9LHtpZDoidnZjdXJ2ZXRvIixtaW46NCxyZXNldFN0YWNrOiEwfSx7aWQ6ImhoY3VydmV0byIsbWluOjQscmVzZXRTdGFjazohMH0sbnVsbCx7aWQ6ImNhbGxnc3ViciIsbWluOjF9LHtpZDoidmhjdXJ2ZXRvIixtaW46NCxyZXNldFN0YWNrOiEwfSx7aWQ6Imh2Y3VydmV0byIsbWluOjQscmVzZXRTdGFjazohMH1dLE5hPVtudWxsLG51bGwsbnVsbCx7aWQ6ImFuZCIsbWluOjIsc3RhY2tEZWx0YTotMX0se2lkOiJvciIsbWluOjIsc3RhY2tEZWx0YTotMX0se2lkOiJub3QiLG1pbjoxLHN0YWNrRGVsdGE6MH0sbnVsbCxudWxsLG51bGwse2lkOiJhYnMiLG1pbjoxLHN0YWNrRGVsdGE6MH0se2lkOiJhZGQiLG1pbjoyLHN0YWNrRGVsdGE6LTEsc3RhY2tGbihlLHQpe2VbdC0yXT1lW3QtMl0rZVt0LTFdfX0se2lkOiJzdWIiLG1pbjoyLHN0YWNrRGVsdGE6LTEsc3RhY2tGbihlLHQpe2VbdC0yXT1lW3QtMl0tZVt0LTFdfX0se2lkOiJkaXYiLG1pbjoyLHN0YWNrRGVsdGE6LTEsc3RhY2tGbihlLHQpe2VbdC0yXT1lW3QtMl0vZVt0LTFdfX0sbnVsbCx7aWQ6Im5lZyIsbWluOjEsc3RhY2tEZWx0YTowLHN0YWNrRm4oZSx0KXtlW3QtMV09LWVbdC0xXX19LHtpZDoiZXEiLG1pbjoyLHN0YWNrRGVsdGE6LTF9LG51bGwsbnVsbCx7aWQ6ImRyb3AiLG1pbjoxLHN0YWNrRGVsdGE6LTF9LG51bGwse2lkOiJwdXQiLG1pbjoyLHN0YWNrRGVsdGE6LTJ9LHtpZDoiZ2V0IixtaW46MSxzdGFja0RlbHRhOjB9LHtpZDoiaWZlbHNlIixtaW46NCxzdGFja0RlbHRhOi0zfSx7aWQ6InJhbmRvbSIsbWluOjAsc3RhY2tEZWx0YToxfSx7aWQ6Im11bCIsbWluOjIsc3RhY2tEZWx0YTotMSxzdGFja0ZuKGUsdCl7ZVt0LTJdPWVbdC0yXSplW3QtMV19fSxudWxsLHtpZDoic3FydCIsbWluOjEsc3RhY2tEZWx0YTowfSx7aWQ6ImR1cCIsbWluOjEsc3RhY2tEZWx0YToxfSx7aWQ6ImV4Y2giLG1pbjoyLHN0YWNrRGVsdGE6MH0se2lkOiJpbmRleCIsbWluOjIsc3RhY2tEZWx0YTowfSx7aWQ6InJvbGwiLG1pbjozLHN0YWNrRGVsdGE6LTJ9LG51bGwsbnVsbCxudWxsLHtpZDoiaGZsZXgiLG1pbjo3LHJlc2V0U3RhY2s6ITB9LHtpZDoiZmxleCIsbWluOjEzLHJlc2V0U3RhY2s6ITB9LHtpZDoiaGZsZXgxIixtaW46OSxyZXNldFN0YWNrOiEwfSx7aWQ6ImZsZXgxIixtaW46MTEscmVzZXRTdGFjazohMH1dO2NsYXNzIENGRlBhcnNlcntjb25zdHJ1Y3RvcihlLHQsbil7dGhpcy5ieXRlcz1lLmdldEJ5dGVzKCk7dGhpcy5wcm9wZXJ0aWVzPXQ7dGhpcy5zZWFjQW5hbHlzaXNFbmFibGVkPSEhbn1wYXJzZSgpe2NvbnN0IGU9dGhpcy5wcm9wZXJ0aWVzLHQ9bmV3IENGRjt0aGlzLmNmZj10O2NvbnN0IG49dGhpcy5wYXJzZUhlYWRlcigpLGE9dGhpcy5wYXJzZUluZGV4KG4uZW5kUG9zKSxyPXRoaXMucGFyc2VJbmRleChhLmVuZFBvcykscz10aGlzLnBhcnNlSW5kZXgoci5lbmRQb3MpLGk9dGhpcy5wYXJzZUluZGV4KHMuZW5kUG9zKSxvPXRoaXMucGFyc2VEaWN0KHIub2JqLmdldCgwKSksbD10aGlzLmNyZWF0ZURpY3QoQ0ZGVG9wRGljdCxvLHQuc3RyaW5ncyk7dC5oZWFkZXI9bi5vYmo7dC5uYW1lcz10aGlzLnBhcnNlTmFtZUluZGV4KGEub2JqKTt0LnN0cmluZ3M9dGhpcy5wYXJzZVN0cmluZ0luZGV4KHMub2JqKTt0LnRvcERpY3Q9bDt0Lmdsb2JhbFN1YnJJbmRleD1pLm9iajt0aGlzLnBhcnNlUHJpdmF0ZURpY3QodC50b3BEaWN0KTt0LmlzQ0lERm9udD1sLmhhc05hbWUoIlJPUyIpO2NvbnN0IGY9bC5nZXRCeU5hbWUoIkNoYXJTdHJpbmdzIiksYz10aGlzLnBhcnNlSW5kZXgoZikub2JqO3QuY2hhclN0cmluZ0NvdW50PWMuY291bnQ7Y29uc3QgaD1sLmdldEJ5TmFtZSgiRm9udE1hdHJpeCIpO2gmJihlLmZvbnRNYXRyaXg9aCk7Y29uc3QgdT1sLmdldEJ5TmFtZSgiRm9udEJCb3giKTtpZih1KXtlLmFzY2VudD1NYXRoLm1heCh1WzNdLHVbMV0pO2UuZGVzY2VudD1NYXRoLm1pbih1WzFdLHVbM10pO2UuYXNjZW50U2NhbGVkPSEwfWxldCBtLHA7aWYodC5pc0NJREZvbnQpe2NvbnN0IGU9dGhpcy5wYXJzZUluZGV4KGwuZ2V0QnlOYW1lKCJGREFycmF5IikpLm9iajtmb3IobGV0IG49MCxhPWUuY291bnQ7bjxhOysrbil7Y29uc3QgYT1lLmdldChuKSxyPXRoaXMuY3JlYXRlRGljdChDRkZUb3BEaWN0LHRoaXMucGFyc2VEaWN0KGEpLHQuc3RyaW5ncyk7dGhpcy5wYXJzZVByaXZhdGVEaWN0KHIpO3QuZmRBcnJheS5wdXNoKHIpfXA9bnVsbDttPXRoaXMucGFyc2VDaGFyc2V0cyhsLmdldEJ5TmFtZSgiY2hhcnNldCIpLGMuY291bnQsdC5zdHJpbmdzLCEwKTt0LmZkU2VsZWN0PXRoaXMucGFyc2VGRFNlbGVjdChsLmdldEJ5TmFtZSgiRkRTZWxlY3QiKSxjLmNvdW50KX1lbHNle209dGhpcy5wYXJzZUNoYXJzZXRzKGwuZ2V0QnlOYW1lKCJjaGFyc2V0IiksYy5jb3VudCx0LnN0cmluZ3MsITEpO3A9dGhpcy5wYXJzZUVuY29kaW5nKGwuZ2V0QnlOYW1lKCJFbmNvZGluZyIpLGUsdC5zdHJpbmdzLG0uY2hhcnNldCl9dC5jaGFyc2V0PW07dC5lbmNvZGluZz1wO2NvbnN0IGQ9dGhpcy5wYXJzZUNoYXJTdHJpbmdzKHtjaGFyU3RyaW5nczpjLGxvY2FsU3VickluZGV4OmwucHJpdmF0ZURpY3Quc3VicnNJbmRleCxnbG9iYWxTdWJySW5kZXg6aS5vYmosZmRTZWxlY3Q6dC5mZFNlbGVjdCxmZEFycmF5OnQuZmRBcnJheSxwcml2YXRlRGljdDpsLnByaXZhdGVEaWN0fSk7dC5jaGFyU3RyaW5ncz1kLmNoYXJTdHJpbmdzO3Quc2VhY3M9ZC5zZWFjczt0LndpZHRocz1kLndpZHRocztyZXR1cm4gdH1wYXJzZUhlYWRlcigpe2xldCBlPXRoaXMuYnl0ZXM7Y29uc3QgdD1lLmxlbmd0aDtsZXQgbj0wO2Zvcig7bjx0JiYxIT09ZVtuXTspKytuO2lmKG4+PXQpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJJbnZhbGlkIENGRiBoZWFkZXIiKTtpZigwIT09bil7aW5mbygiY2ZmIGRhdGEgaXMgc2hpZnRlZCIpO2U9ZS5zdWJhcnJheShuKTt0aGlzLmJ5dGVzPWV9Y29uc3QgYT1lWzBdLHI9ZVsxXSxzPWVbMl0saT1lWzNdO3JldHVybntvYmo6bmV3IENGRkhlYWRlcihhLHIscyxpKSxlbmRQb3M6c319cGFyc2VEaWN0KGUpe2xldCB0PTA7ZnVuY3Rpb24gcGFyc2VPcGVyYW5kKCl7bGV0IG49ZVt0KytdO2lmKDMwPT09bilyZXR1cm4gZnVuY3Rpb24gcGFyc2VGbG9hdE9wZXJhbmQoKXtsZXQgbj0iIjtjb25zdCBhPTE1LHI9WyIwIiwiMSIsIjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiLiIsIkUiLCJFLSIsbnVsbCwiLSJdLHM9ZS5sZW5ndGg7Zm9yKDt0PHM7KXtjb25zdCBzPWVbdCsrXSxpPXM+PjQsbz0xNSZzO2lmKGk9PT1hKWJyZWFrO24rPXJbaV07aWYobz09PWEpYnJlYWs7bis9cltvXX1yZXR1cm4gcGFyc2VGbG9hdChuKX0oKTtpZigyOD09PW4pe249cmVhZEludDE2KGUsdCk7dCs9MjtyZXR1cm4gbn1pZigyOT09PW4pe249ZVt0KytdO249bjw8OHxlW3QrK107bj1uPDw4fGVbdCsrXTtuPW48PDh8ZVt0KytdO3JldHVybiBufWlmKG4+PTMyJiZuPD0yNDYpcmV0dXJuIG4tMTM5O2lmKG4+PTI0NyYmbjw9MjUwKXJldHVybiAyNTYqKG4tMjQ3KStlW3QrK10rMTA4O2lmKG4+PTI1MSYmbjw9MjU0KXJldHVybi0yNTYqKG4tMjUxKS1lW3QrK10tMTA4O3dhcm4oJ0NGRlBhcnNlcl9wYXJzZURpY3Q6ICInK24rJyIgaXMgYSByZXNlcnZlZCBjb21tYW5kLicpO3JldHVybiBOYU59bGV0IG49W107Y29uc3QgYT1bXTt0PTA7Y29uc3Qgcj1lLmxlbmd0aDtmb3IoO3Q8cjspe2xldCByPWVbdF07aWYocjw9MjEpezEyPT09ciYmKHI9cjw8OHxlWysrdF0pO2EucHVzaChbcixuXSk7bj1bXTsrK3R9ZWxzZSBuLnB1c2gocGFyc2VPcGVyYW5kKCkpfXJldHVybiBhfXBhcnNlSW5kZXgoZSl7Y29uc3QgdD1uZXcgQ0ZGSW5kZXgsbj10aGlzLmJ5dGVzLGE9bltlKytdPDw4fG5bZSsrXSxyPVtdO2xldCBzLGksbz1lO2lmKDAhPT1hKXtjb25zdCB0PW5bZSsrXSxsPWUrKGErMSkqdC0xO2ZvcihzPTAsaT1hKzE7czxpOysrcyl7bGV0IGE9MDtmb3IobGV0IHI9MDtyPHQ7KytyKXthPDw9ODthKz1uW2UrK119ci5wdXNoKGwrYSl9bz1yW2FdfWZvcihzPTAsaT1yLmxlbmd0aC0xO3M8aTsrK3Mpe2NvbnN0IGU9cltzXSxhPXJbcysxXTt0LmFkZChuLnN1YmFycmF5KGUsYSkpfXJldHVybntvYmo6dCxlbmRQb3M6b319cGFyc2VOYW1lSW5kZXgoZSl7Y29uc3QgdD1bXTtmb3IobGV0IG49MCxhPWUuY291bnQ7bjxhOysrbil7Y29uc3QgYT1lLmdldChuKTt0LnB1c2goYnl0ZXNUb1N0cmluZyhhKSl9cmV0dXJuIHR9cGFyc2VTdHJpbmdJbmRleChlKXtjb25zdCB0PW5ldyBDRkZTdHJpbmdzO2ZvcihsZXQgbj0wLGE9ZS5jb3VudDtuPGE7KytuKXtjb25zdCBhPWUuZ2V0KG4pO3QuYWRkKGJ5dGVzVG9TdHJpbmcoYSkpfXJldHVybiB0fWNyZWF0ZURpY3QoZSx0LG4pe2NvbnN0IGE9bmV3IGUobik7Zm9yKGNvbnN0W2Usbl1vZiB0KWEuc2V0QnlLZXkoZSxuKTtyZXR1cm4gYX1wYXJzZUNoYXJTdHJpbmcoZSx0LG4sYSl7aWYoIXR8fGUuY2FsbERlcHRoPjEwKXJldHVybiExO2xldCByPWUuc3RhY2tTaXplO2NvbnN0IHM9ZS5zdGFjaztsZXQgaT10Lmxlbmd0aDtmb3IobGV0IG89MDtvPGk7KXtjb25zdCBsPXRbbysrXTtsZXQgZj1udWxsO2lmKDEyPT09bCl7Y29uc3QgZT10W28rK107aWYoMD09PWUpe3Rbby0yXT0xMzk7dFtvLTFdPTIyO3I9MH1lbHNlIGY9TmFbZV19ZWxzZSBpZigyOD09PWwpe3Nbcl09cmVhZEludDE2KHQsbyk7bys9MjtyKyt9ZWxzZSBpZigxND09PWwpe2lmKHI+PTQpe3ItPTQ7aWYodGhpcy5zZWFjQW5hbHlzaXNFbmFibGVkKXtlLnNlYWM9cy5zbGljZShyLHIrNCk7cmV0dXJuITF9fWY9RWFbbF19ZWxzZSBpZihsPj0zMiYmbDw9MjQ2KXtzW3JdPWwtMTM5O3IrK31lbHNlIGlmKGw+PTI0NyYmbDw9MjU0KXtzW3JdPWw8MjUxPyhsLTI0Nzw8OCkrdFtvXSsxMDg6LShsLTI1MTw8OCktdFtvXS0xMDg7bysrO3IrK31lbHNlIGlmKDI1NT09PWwpe3Nbcl09KHRbb108PDI0fHRbbysxXTw8MTZ8dFtvKzJdPDw4fHRbbyszXSkvNjU1MzY7bys9NDtyKyt9ZWxzZSBpZigxOT09PWx8fDIwPT09bCl7ZS5oaW50cys9cj4+MTtpZigwPT09ZS5oaW50cyl7dC5jb3B5V2l0aGluKG8tMSxvLC0xKTtvLT0xO2ktPTE7Y29udGludWV9bys9ZS5oaW50cys3Pj4zO3IlPTI7Zj1FYVtsXX1lbHNle2lmKDEwPT09bHx8Mjk9PT1sKXtjb25zdCB0PTEwPT09bD9uOmE7aWYoIXQpe2Y9RWFbbF07d2FybigiTWlzc2luZyBzdWJyc0luZGV4IGZvciAiK2YuaWQpO3JldHVybiExfWxldCBpPTMyNzY4O3QuY291bnQ8MTI0MD9pPTEwNzp0LmNvdW50PDMzOTAwJiYoaT0xMTMxKTtjb25zdCBvPXNbLS1yXStpO2lmKG88MHx8bz49dC5jb3VudHx8aXNOYU4obykpe2Y9RWFbbF07d2FybigiT3V0IG9mIGJvdW5kcyBzdWJySW5kZXggZm9yICIrZi5pZCk7cmV0dXJuITF9ZS5zdGFja1NpemU9cjtlLmNhbGxEZXB0aCsrO2lmKCF0aGlzLnBhcnNlQ2hhclN0cmluZyhlLHQuZ2V0KG8pLG4sYSkpcmV0dXJuITE7ZS5jYWxsRGVwdGgtLTtyPWUuc3RhY2tTaXplO2NvbnRpbnVlfWlmKDExPT09bCl7ZS5zdGFja1NpemU9cjtyZXR1cm4hMH1pZigwPT09bCYmbz09PXQubGVuZ3RoKXt0W28tMV09MTQ7Zj1FYVsxNF19ZWxzZXtpZig5PT09bCl7dC5jb3B5V2l0aGluKG8tMSxvLC0xKTtvLT0xO2ktPTE7Y29udGludWV9Zj1FYVtsXX19aWYoZil7aWYoZi5zdGVtKXtlLmhpbnRzKz1yPj4xO2lmKDM9PT1sfHwyMz09PWwpZS5oYXNWU3RlbXM9ITA7ZWxzZSBpZihlLmhhc1ZTdGVtcyYmKDE9PT1sfHwxOD09PWwpKXt3YXJuKCJDRkYgc3RlbSBoaW50cyBhcmUgaW4gd3Jvbmcgb3JkZXIiKTt0W28tMV09MT09PWw/MzoyM319aWYocjxmLm1pbil7d2FybigiTm90IGVub3VnaCBwYXJhbWV0ZXJzIGZvciAiK2YuaWQrIjsgYWN0dWFsOiAiK3IrIiwgZXhwZWN0ZWQ6ICIrZi5taW4pO2lmKDA9PT1yKXt0W28tMV09MTQ7cmV0dXJuITB9cmV0dXJuITF9aWYoZS5maXJzdFN0YWNrQ2xlYXJpbmcmJmYuc3RhY2tDbGVhcmluZyl7ZS5maXJzdFN0YWNrQ2xlYXJpbmc9ITE7ci09Zi5taW47cj49MiYmZi5zdGVtP3IlPTI6cj4xJiZ3YXJuKCJGb3VuZCB0b28gbWFueSBwYXJhbWV0ZXJzIGZvciBzdGFjay1jbGVhcmluZyBjb21tYW5kIik7cj4wJiYoZS53aWR0aD1zW3ItMV0pfWlmKCJzdGFja0RlbHRhImluIGYpeyJzdGFja0ZuImluIGYmJmYuc3RhY2tGbihzLHIpO3IrPWYuc3RhY2tEZWx0YX1lbHNlKGYuc3RhY2tDbGVhcmluZ3x8Zi5yZXNldFN0YWNrKSYmKHI9MCl9fWk8dC5sZW5ndGgmJnQuZmlsbCgxNCxpKTtlLnN0YWNrU2l6ZT1yO3JldHVybiEwfXBhcnNlQ2hhclN0cmluZ3Moe2NoYXJTdHJpbmdzOmUsbG9jYWxTdWJySW5kZXg6dCxnbG9iYWxTdWJySW5kZXg6bixmZFNlbGVjdDphLGZkQXJyYXk6cixwcml2YXRlRGljdDpzfSl7Y29uc3QgaT1bXSxvPVtdLGw9ZS5jb3VudDtmb3IobGV0IGY9MDtmPGw7ZisrKXtjb25zdCBsPWUuZ2V0KGYpLGM9e2NhbGxEZXB0aDowLHN0YWNrU2l6ZTowLHN0YWNrOltdLGhpbnRzOjAsZmlyc3RTdGFja0NsZWFyaW5nOiEwLHNlYWM6bnVsbCx3aWR0aDpudWxsLGhhc1ZTdGVtczohMX07bGV0IGg9ITAsdT1udWxsLG09cztpZihhJiZyLmxlbmd0aCl7Y29uc3QgZT1hLmdldEZESW5kZXgoZik7aWYoLTE9PT1lKXt3YXJuKCJHbHlwaCBpbmRleCBpcyBub3QgaW4gZmQgc2VsZWN0LiIpO2g9ITF9aWYoZT49ci5sZW5ndGgpe3dhcm4oIkludmFsaWQgZmQgaW5kZXggZm9yIGdseXBoIGluZGV4LiIpO2g9ITF9aWYoaCl7bT1yW2VdLnByaXZhdGVEaWN0O3U9bS5zdWJyc0luZGV4fX1lbHNlIHQmJih1PXQpO2gmJihoPXRoaXMucGFyc2VDaGFyU3RyaW5nKGMsbCx1LG4pKTtpZihudWxsIT09Yy53aWR0aCl7Y29uc3QgZT1tLmdldEJ5TmFtZSgibm9taW5hbFdpZHRoWCIpO29bZl09ZStjLndpZHRofWVsc2V7Y29uc3QgZT1tLmdldEJ5TmFtZSgiZGVmYXVsdFdpZHRoWCIpO29bZl09ZX1udWxsIT09Yy5zZWFjJiYoaVtmXT1jLnNlYWMpO2h8fGUuc2V0KGYsbmV3IFVpbnQ4QXJyYXkoWzE0XSkpfXJldHVybntjaGFyU3RyaW5nczplLHNlYWNzOmksd2lkdGhzOm99fWVtcHR5UHJpdmF0ZURpY3Rpb25hcnkoZSl7Y29uc3QgdD10aGlzLmNyZWF0ZURpY3QoQ0ZGUHJpdmF0ZURpY3QsW10sZS5zdHJpbmdzKTtlLnNldEJ5S2V5KDE4LFswLDBdKTtlLnByaXZhdGVEaWN0PXR9cGFyc2VQcml2YXRlRGljdChlKXtpZighZS5oYXNOYW1lKCJQcml2YXRlIikpe3RoaXMuZW1wdHlQcml2YXRlRGljdGlvbmFyeShlKTtyZXR1cm59Y29uc3QgdD1lLmdldEJ5TmFtZSgiUHJpdmF0ZSIpO2lmKCFBcnJheS5pc0FycmF5KHQpfHwyIT09dC5sZW5ndGgpe2UucmVtb3ZlQnlOYW1lKCJQcml2YXRlIik7cmV0dXJufWNvbnN0IG49dFswXSxhPXRbMV07aWYoMD09PW58fGE+PXRoaXMuYnl0ZXMubGVuZ3RoKXt0aGlzLmVtcHR5UHJpdmF0ZURpY3Rpb25hcnkoZSk7cmV0dXJufWNvbnN0IHI9YStuLHM9dGhpcy5ieXRlcy5zdWJhcnJheShhLHIpLGk9dGhpcy5wYXJzZURpY3Qocyksbz10aGlzLmNyZWF0ZURpY3QoQ0ZGUHJpdmF0ZURpY3QsaSxlLnN0cmluZ3MpO2UucHJpdmF0ZURpY3Q9bzswPT09by5nZXRCeU5hbWUoIkV4cGFuc2lvbkZhY3RvciIpJiZvLnNldEJ5TmFtZSgiRXhwYW5zaW9uRmFjdG9yIiwuMDYpO2lmKCFvLmdldEJ5TmFtZSgiU3VicnMiKSlyZXR1cm47Y29uc3QgbD1vLmdldEJ5TmFtZSgiU3VicnMiKSxmPWErbDtpZigwPT09bHx8Zj49dGhpcy5ieXRlcy5sZW5ndGgpe3RoaXMuZW1wdHlQcml2YXRlRGljdGlvbmFyeShlKTtyZXR1cm59Y29uc3QgYz10aGlzLnBhcnNlSW5kZXgoZik7by5zdWJyc0luZGV4PWMub2JqfXBhcnNlQ2hhcnNldHMoZSx0LG4sYSl7aWYoMD09PWUpcmV0dXJuIG5ldyBDRkZDaGFyc2V0KCEwLExhLklTT19BRE9CRSxCYSk7aWYoMT09PWUpcmV0dXJuIG5ldyBDRkZDaGFyc2V0KCEwLExhLkVYUEVSVCxIYSk7aWYoMj09PWUpcmV0dXJuIG5ldyBDRkZDaGFyc2V0KCEwLExhLkVYUEVSVF9TVUJTRVQsRGEpO2NvbnN0IHI9dGhpcy5ieXRlcyxzPWUsaT1yW2UrK10sbz1bYT8wOiIubm90ZGVmIl07bGV0IGwsZixjO3QtPTE7c3dpdGNoKGkpe2Nhc2UgMDpmb3IoYz0wO2M8dDtjKyspe2w9cltlKytdPDw4fHJbZSsrXTtvLnB1c2goYT9sOm4uZ2V0KGwpKX1icmVhaztjYXNlIDE6Zm9yKDtvLmxlbmd0aDw9dDspe2w9cltlKytdPDw4fHJbZSsrXTtmPXJbZSsrXTtmb3IoYz0wO2M8PWY7YysrKW8ucHVzaChhP2wrKzpuLmdldChsKyspKX1icmVhaztjYXNlIDI6Zm9yKDtvLmxlbmd0aDw9dDspe2w9cltlKytdPDw4fHJbZSsrXTtmPXJbZSsrXTw8OHxyW2UrK107Zm9yKGM9MDtjPD1mO2MrKylvLnB1c2goYT9sKys6bi5nZXQobCsrKSl9YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlVua25vd24gY2hhcnNldCBmb3JtYXQiKX1jb25zdCBoPWUsdT1yLnN1YmFycmF5KHMsaCk7cmV0dXJuIG5ldyBDRkZDaGFyc2V0KCExLGksbyx1KX1wYXJzZUVuY29kaW5nKGUsdCxuLGEpe2NvbnN0IHI9T2JqZWN0LmNyZWF0ZShudWxsKSxzPXRoaXMuYnl0ZXM7bGV0IGksbyxsLGY9ITEsYz1udWxsO2lmKDA9PT1lfHwxPT09ZSl7Zj0hMDtpPWU7Y29uc3QgdD1lP21hOmdhO2ZvcihvPTAsbD1hLmxlbmd0aDtvPGw7bysrKXtjb25zdCBlPXQuaW5kZXhPZihhW29dKTstMSE9PWUmJihyW2VdPW8pfX1lbHNle2NvbnN0IHQ9ZTtpPXNbZSsrXTtzd2l0Y2goMTI3Jmkpe2Nhc2UgMDpjb25zdCB0PXNbZSsrXTtmb3Iobz0xO288PXQ7bysrKXJbc1tlKytdXT1vO2JyZWFrO2Nhc2UgMTpjb25zdCBuPXNbZSsrXTtsZXQgYT0xO2ZvcihvPTA7bzxuO28rKyl7Y29uc3QgdD1zW2UrK10sbj1zW2UrK107Zm9yKGxldCBlPXQ7ZTw9dCtuO2UrKylyW2VdPWErK31icmVhaztkZWZhdWx0OnRocm93IG5ldyBGb3JtYXRFcnJvcihgVW5rbm93biBlbmNvZGluZyBmb3JtYXQ6ICR7aX0gaW4gQ0ZGYCl9Y29uc3QgbD1lO2lmKDEyOCZpKXtzW3RdJj0xMjc7IWZ1bmN0aW9uIHJlYWRTdXBwbGVtZW50KCl7Y29uc3QgdD1zW2UrK107Zm9yKG89MDtvPHQ7bysrKXtjb25zdCB0PXNbZSsrXSxpPShzW2UrK108PDgpKygyNTUmc1tlKytdKTtyW3RdPWEuaW5kZXhPZihuLmdldChpKSl9fSgpfWM9cy5zdWJhcnJheSh0LGwpfWkmPTEyNztyZXR1cm4gbmV3IENGRkVuY29kaW5nKGYsaSxyLGMpfXBhcnNlRkRTZWxlY3QoZSx0KXtjb25zdCBuPXRoaXMuYnl0ZXMsYT1uW2UrK10scj1bXTtsZXQgcztzd2l0Y2goYSl7Y2FzZSAwOmZvcihzPTA7czx0Oysrcyl7Y29uc3QgdD1uW2UrK107ci5wdXNoKHQpfWJyZWFrO2Nhc2UgMzpjb25zdCBpPW5bZSsrXTw8OHxuW2UrK107Zm9yKHM9MDtzPGk7KytzKXtsZXQgdD1uW2UrK108PDh8bltlKytdO2lmKDA9PT1zJiYwIT09dCl7d2FybigicGFyc2VGRFNlbGVjdDogVGhlIGZpcnN0IHJhbmdlIG11c3QgaGF2ZSBhIGZpcnN0IEdJRCBvZiAwIC0tIHRyeWluZyB0byByZWNvdmVyLiIpO3Q9MH1jb25zdCBhPW5bZSsrXSxpPW5bZV08PDh8bltlKzFdO2ZvcihsZXQgZT10O2U8aTsrK2Upci5wdXNoKGEpfWUrPTI7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYHBhcnNlRkRTZWxlY3Q6IFVua25vd24gZm9ybWF0ICIke2F9Ii5gKX1pZihyLmxlbmd0aCE9PXQpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJwYXJzZUZEU2VsZWN0OiBJbnZhbGlkIGZvbnQgZGF0YS4iKTtyZXR1cm4gbmV3IENGRkZEU2VsZWN0KGEscil9fWNsYXNzIENGRntoZWFkZXI9bnVsbDtuYW1lcz1bXTt0b3BEaWN0PW51bGw7c3RyaW5ncz1uZXcgQ0ZGU3RyaW5ncztnbG9iYWxTdWJySW5kZXg9bnVsbDtlbmNvZGluZz1udWxsO2NoYXJzZXQ9bnVsbDtjaGFyU3RyaW5ncz1udWxsO2ZkQXJyYXk9W107ZmRTZWxlY3Q9bnVsbDtpc0NJREZvbnQ9ITE7Y2hhclN0cmluZ0NvdW50PTA7ZHVwbGljYXRlRmlyc3RHbHlwaCgpe2lmKHRoaXMuY2hhclN0cmluZ3MuY291bnQ+PTY1NTM1KXt3YXJuKCJOb3QgZW5vdWdoIHNwYWNlIGluIGNoYXJzdHJpbmdzIHRvIGR1cGxpY2F0ZSBmaXJzdCBnbHlwaC4iKTtyZXR1cm59Y29uc3QgZT10aGlzLmNoYXJTdHJpbmdzLmdldCgwKTt0aGlzLmNoYXJTdHJpbmdzLmFkZChlKTt0aGlzLmlzQ0lERm9udCYmdGhpcy5mZFNlbGVjdC5mZFNlbGVjdC5wdXNoKHRoaXMuZmRTZWxlY3QuZmRTZWxlY3RbMF0pfWhhc0dseXBoSWQoZSl7aWYoZTwwfHxlPj10aGlzLmNoYXJTdHJpbmdzLmNvdW50KXJldHVybiExO3JldHVybiB0aGlzLmNoYXJTdHJpbmdzLmdldChlKS5sZW5ndGg+MH19Y2xhc3MgQ0ZGSGVhZGVye2NvbnN0cnVjdG9yKGUsdCxuLGEpe3RoaXMubWFqb3I9ZTt0aGlzLm1pbm9yPXQ7dGhpcy5oZHJTaXplPW47dGhpcy5vZmZTaXplPWF9fWNsYXNzIENGRlN0cmluZ3N7c3RyaW5ncz1bXTtnZXQoZSl7cmV0dXJuIGU+PTAmJmU8PTM5MD9NYVtlXTplLVBhPD10aGlzLnN0cmluZ3MubGVuZ3RoP3RoaXMuc3RyaW5nc1tlLVBhXTpNYVswXX1nZXRTSUQoZSl7bGV0IHQ9TWEuaW5kZXhPZihlKTtpZigtMSE9PXQpcmV0dXJuIHQ7dD10aGlzLnN0cmluZ3MuaW5kZXhPZihlKTtyZXR1cm4tMSE9PXQ/dCtQYTotMX1hZGQoZSl7dGhpcy5zdHJpbmdzLnB1c2goZSl9Z2V0IGNvdW50KCl7cmV0dXJuIHRoaXMuc3RyaW5ncy5sZW5ndGh9fWNsYXNzIENGRkluZGV4e29iamVjdHM9W107bGVuZ3RoPTA7YWRkKGUpe3RoaXMubGVuZ3RoKz1lLmxlbmd0aDt0aGlzLm9iamVjdHMucHVzaChlKX1zZXQoZSx0KXt0aGlzLmxlbmd0aCs9dC5sZW5ndGgtdGhpcy5vYmplY3RzW2VdLmxlbmd0aDt0aGlzLm9iamVjdHNbZV09dH1nZXQoZSl7cmV0dXJuIHRoaXMub2JqZWN0c1tlXX1nZXQgY291bnQoKXtyZXR1cm4gdGhpcy5vYmplY3RzLmxlbmd0aH19Y2xhc3MgQ0ZGRGljdHtjb25zdHJ1Y3RvcihlLHQpe3RoaXMua2V5VG9OYW1lTWFwPWUua2V5VG9OYW1lTWFwO3RoaXMubmFtZVRvS2V5TWFwPWUubmFtZVRvS2V5TWFwO3RoaXMuZGVmYXVsdHM9ZS5kZWZhdWx0czt0aGlzLnR5cGVzPWUudHlwZXM7dGhpcy5vcGNvZGVzPWUub3Bjb2Rlczt0aGlzLm9yZGVyPWUub3JkZXI7dGhpcy5zdHJpbmdzPXQ7dGhpcy52YWx1ZXM9T2JqZWN0LmNyZWF0ZShudWxsKX1zZXRCeUtleShlLHQpe2lmKCEoZSBpbiB0aGlzLmtleVRvTmFtZU1hcCkpcmV0dXJuITE7aWYoMD09PXQubGVuZ3RoKXJldHVybiEwO2Zvcihjb25zdCBuIG9mIHQpaWYoaXNOYU4obikpe3dhcm4oYEludmFsaWQgQ0ZGRGljdCB2YWx1ZTogIiR7dH0iIGZvciBrZXkgIiR7ZX0iLmApO3JldHVybiEwfWNvbnN0IG49dGhpcy50eXBlc1tlXTsibnVtIiE9PW4mJiJzaWQiIT09biYmIm9mZnNldCIhPT1ufHwodD10WzBdKTt0aGlzLnZhbHVlc1tlXT10O3JldHVybiEwfXNldEJ5TmFtZShlLHQpe2lmKCEoZSBpbiB0aGlzLm5hbWVUb0tleU1hcCkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBJbnZhbGlkIGRpY3Rpb25hcnkgbmFtZSAiJHtlfSJgKTt0aGlzLnZhbHVlc1t0aGlzLm5hbWVUb0tleU1hcFtlXV09dH1oYXNOYW1lKGUpe3JldHVybiB0aGlzLm5hbWVUb0tleU1hcFtlXWluIHRoaXMudmFsdWVzfWdldEJ5TmFtZShlKXtpZighKGUgaW4gdGhpcy5uYW1lVG9LZXlNYXApKXRocm93IG5ldyBGb3JtYXRFcnJvcihgSW52YWxpZCBkaWN0aW9uYXJ5IG5hbWUgJHtlfSJgKTtjb25zdCB0PXRoaXMubmFtZVRvS2V5TWFwW2VdO3JldHVybiB0IGluIHRoaXMudmFsdWVzP3RoaXMudmFsdWVzW3RdOnRoaXMuZGVmYXVsdHNbdF19cmVtb3ZlQnlOYW1lKGUpe2RlbGV0ZSB0aGlzLnZhbHVlc1t0aGlzLm5hbWVUb0tleU1hcFtlXV19c3RhdGljIGNyZWF0ZVRhYmxlcyhlKXtjb25zdCB0PXtrZXlUb05hbWVNYXA6e30sbmFtZVRvS2V5TWFwOnt9LGRlZmF1bHRzOnt9LHR5cGVzOnt9LG9wY29kZXM6e30sb3JkZXI6W119O2Zvcihjb25zdCBuIG9mIGUpe2NvbnN0IGU9QXJyYXkuaXNBcnJheShuWzBdKT8oblswXVswXTw8OCkrblswXVsxXTpuWzBdO3Qua2V5VG9OYW1lTWFwW2VdPW5bMV07dC5uYW1lVG9LZXlNYXBbblsxXV09ZTt0LnR5cGVzW2VdPW5bMl07dC5kZWZhdWx0c1tlXT1uWzNdO3Qub3Bjb2Rlc1tlXT1BcnJheS5pc0FycmF5KG5bMF0pP25bMF06W25bMF1dO3Qub3JkZXIucHVzaChlKX1yZXR1cm4gdH19Y29uc3QgemE9W1tbMTIsMzBdLCJST1MiLFsic2lkIiwic2lkIiwibnVtIl0sbnVsbF0sW1sxMiwyMF0sIlN5bnRoZXRpY0Jhc2UiLCJudW0iLG51bGxdLFswLCJ2ZXJzaW9uIiwic2lkIixudWxsXSxbMSwiTm90aWNlIiwic2lkIixudWxsXSxbWzEyLDBdLCJDb3B5cmlnaHQiLCJzaWQiLG51bGxdLFsyLCJGdWxsTmFtZSIsInNpZCIsbnVsbF0sWzMsIkZhbWlseU5hbWUiLCJzaWQiLG51bGxdLFs0LCJXZWlnaHQiLCJzaWQiLG51bGxdLFtbMTIsMV0sImlzRml4ZWRQaXRjaCIsIm51bSIsMF0sW1sxMiwyXSwiSXRhbGljQW5nbGUiLCJudW0iLDBdLFtbMTIsM10sIlVuZGVybGluZVBvc2l0aW9uIiwibnVtIiwtMTAwXSxbWzEyLDRdLCJVbmRlcmxpbmVUaGlja25lc3MiLCJudW0iLDUwXSxbWzEyLDVdLCJQYWludFR5cGUiLCJudW0iLDBdLFtbMTIsNl0sIkNoYXJzdHJpbmdUeXBlIiwibnVtIiwyXSxbWzEyLDddLCJGb250TWF0cml4IixbIm51bSIsIm51bSIsIm51bSIsIm51bSIsIm51bSIsIm51bSJdLFsuMDAxLDAsMCwuMDAxLDAsMF1dLFsxMywiVW5pcXVlSUQiLCJudW0iLG51bGxdLFs1LCJGb250QkJveCIsWyJudW0iLCJudW0iLCJudW0iLCJudW0iXSxbMCwwLDAsMF1dLFtbMTIsOF0sIlN0cm9rZVdpZHRoIiwibnVtIiwwXSxbMTQsIlhVSUQiLCJhcnJheSIsbnVsbF0sWzE1LCJjaGFyc2V0Iiwib2Zmc2V0IiwwXSxbMTYsIkVuY29kaW5nIiwib2Zmc2V0IiwwXSxbMTcsIkNoYXJTdHJpbmdzIiwib2Zmc2V0IiwwXSxbMTgsIlByaXZhdGUiLFsib2Zmc2V0Iiwib2Zmc2V0Il0sbnVsbF0sW1sxMiwyMV0sIlBvc3RTY3JpcHQiLCJzaWQiLG51bGxdLFtbMTIsMjJdLCJCYXNlRm9udE5hbWUiLCJzaWQiLG51bGxdLFtbMTIsMjNdLCJCYXNlRm9udEJsZW5kIiwiZGVsdGEiLG51bGxdLFtbMTIsMzFdLCJDSURGb250VmVyc2lvbiIsIm51bSIsMF0sW1sxMiwzMl0sIkNJREZvbnRSZXZpc2lvbiIsIm51bSIsMF0sW1sxMiwzM10sIkNJREZvbnRUeXBlIiwibnVtIiwwXSxbWzEyLDM0XSwiQ0lEQ291bnQiLCJudW0iLDg3MjBdLFtbMTIsMzVdLCJVSURCYXNlIiwibnVtIixudWxsXSxbWzEyLDM3XSwiRkRTZWxlY3QiLCJvZmZzZXQiLG51bGxdLFtbMTIsMzZdLCJGREFycmF5Iiwib2Zmc2V0IixudWxsXSxbWzEyLDM4XSwiRm9udE5hbWUiLCJzaWQiLG51bGxdXTtjbGFzcyBDRkZUb3BEaWN0IGV4dGVuZHMgQ0ZGRGljdHtzdGF0aWMgZ2V0IHRhYmxlcygpe3JldHVybiBzaGFkb3codGhpcywidGFibGVzIix0aGlzLmNyZWF0ZVRhYmxlcyh6YSkpfWNvbnN0cnVjdG9yKGUpe3N1cGVyKENGRlRvcERpY3QudGFibGVzLGUpO3RoaXMucHJpdmF0ZURpY3Q9bnVsbH19Y29uc3QgX2E9W1s2LCJCbHVlVmFsdWVzIiwiZGVsdGEiLG51bGxdLFs3LCJPdGhlckJsdWVzIiwiZGVsdGEiLG51bGxdLFs4LCJGYW1pbHlCbHVlcyIsImRlbHRhIixudWxsXSxbOSwiRmFtaWx5T3RoZXJCbHVlcyIsImRlbHRhIixudWxsXSxbWzEyLDldLCJCbHVlU2NhbGUiLCJudW0iLC4wMzk2MjVdLFtbMTIsMTBdLCJCbHVlU2hpZnQiLCJudW0iLDddLFtbMTIsMTFdLCJCbHVlRnV6eiIsIm51bSIsMV0sWzEwLCJTdGRIVyIsIm51bSIsbnVsbF0sWzExLCJTdGRWVyIsIm51bSIsbnVsbF0sW1sxMiwxMl0sIlN0ZW1TbmFwSCIsImRlbHRhIixudWxsXSxbWzEyLDEzXSwiU3RlbVNuYXBWIiwiZGVsdGEiLG51bGxdLFtbMTIsMTRdLCJGb3JjZUJvbGQiLCJudW0iLDBdLFtbMTIsMTddLCJMYW5ndWFnZUdyb3VwIiwibnVtIiwwXSxbWzEyLDE4XSwiRXhwYW5zaW9uRmFjdG9yIiwibnVtIiwuMDZdLFtbMTIsMTldLCJpbml0aWFsUmFuZG9tU2VlZCIsIm51bSIsMF0sWzIwLCJkZWZhdWx0V2lkdGhYIiwibnVtIiwwXSxbMjEsIm5vbWluYWxXaWR0aFgiLCJudW0iLDBdLFsxOSwiU3VicnMiLCJvZmZzZXQiLG51bGxdXTtjbGFzcyBDRkZQcml2YXRlRGljdCBleHRlbmRzIENGRkRpY3R7c3RhdGljIGdldCB0YWJsZXMoKXtyZXR1cm4gc2hhZG93KHRoaXMsInRhYmxlcyIsdGhpcy5jcmVhdGVUYWJsZXMoX2EpKX1jb25zdHJ1Y3RvcihlKXtzdXBlcihDRkZQcml2YXRlRGljdC50YWJsZXMsZSk7dGhpcy5zdWJyc0luZGV4PW51bGx9fWNvbnN0IExhPXtJU09fQURPQkU6MCxFWFBFUlQ6MSxFWFBFUlRfU1VCU0VUOjJ9O2NsYXNzIENGRkNoYXJzZXR7Y29uc3RydWN0b3IoZSx0LG4sYSl7dGhpcy5wcmVkZWZpbmVkPWU7dGhpcy5mb3JtYXQ9dDt0aGlzLmNoYXJzZXQ9bjt0aGlzLnJhdz1hfX1jbGFzcyBDRkZFbmNvZGluZ3tjb25zdHJ1Y3RvcihlLHQsbixhKXt0aGlzLnByZWRlZmluZWQ9ZTt0aGlzLmZvcm1hdD10O3RoaXMuZW5jb2Rpbmc9bjt0aGlzLnJhdz1hfX1jbGFzcyBDRkZGRFNlbGVjdHtjb25zdHJ1Y3RvcihlLHQpe3RoaXMuZm9ybWF0PWU7dGhpcy5mZFNlbGVjdD10fWdldEZESW5kZXgoZSl7cmV0dXJuIGU8MHx8ZT49dGhpcy5mZFNlbGVjdC5sZW5ndGg/LTE6dGhpcy5mZFNlbGVjdFtlXX19Y2xhc3MgQ0ZGT2Zmc2V0VHJhY2tlcntvZmZzZXRzPU9iamVjdC5jcmVhdGUobnVsbCk7aXNUcmFja2luZyhlKXtyZXR1cm4gZSBpbiB0aGlzLm9mZnNldHN9dHJhY2soZSx0KXtpZihlIGluIHRoaXMub2Zmc2V0cyl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYEFscmVhZHkgdHJhY2tpbmcgbG9jYXRpb24gb2YgJHtlfWApO3RoaXMub2Zmc2V0c1tlXT10fW9mZnNldChlKXtmb3IoY29uc3QgdCBpbiB0aGlzLm9mZnNldHMpdGhpcy5vZmZzZXRzW3RdKz1lfXNldEVudHJ5TG9jYXRpb24oZSx0LG4pe2lmKCEoZSBpbiB0aGlzLm9mZnNldHMpKXRocm93IG5ldyBGb3JtYXRFcnJvcihgTm90IHRyYWNraW5nIGxvY2F0aW9uIG9mICR7ZX1gKTtjb25zdCBhPW4uZGF0YSxyPXRoaXMub2Zmc2V0c1tlXTtmb3IobGV0IGU9MCxuPXQubGVuZ3RoO2U8bjsrK2Upe2NvbnN0IG49NSplK3Iscz1uKzEsaT1uKzIsbz1uKzMsbD1uKzQ7aWYoMjkhPT1hW25dfHwwIT09YVtzXXx8MCE9PWFbaV18fDAhPT1hW29dfHwwIT09YVtsXSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIndyaXRpbmcgdG8gYW4gb2Zmc2V0IHRoYXQgaXMgbm90IGVtcHR5Iik7Y29uc3QgZj10W2VdO2Fbbl09Mjk7YVtzXT1mPj4yNCYyNTU7YVtpXT1mPj4xNiYyNTU7YVtvXT1mPj44JjI1NTthW2xdPTI1NSZmfX19Y2xhc3MgQ0ZGQ29tcGlsZXJ7Y29uc3RydWN0b3IoZSl7dGhpcy5jZmY9ZX1jb21waWxlKCl7Y29uc3QgZT10aGlzLmNmZix0PXtkYXRhOltdLGxlbmd0aDowLGFkZChlKXt0cnl7dGhpcy5kYXRhLnB1c2goLi4uZSl9Y2F0Y2h7dGhpcy5kYXRhPXRoaXMuZGF0YS5jb25jYXQoZSl9dGhpcy5sZW5ndGg9dGhpcy5kYXRhLmxlbmd0aH19LG49dGhpcy5jb21waWxlSGVhZGVyKGUuaGVhZGVyKTt0LmFkZChuKTtjb25zdCBhPXRoaXMuY29tcGlsZU5hbWVJbmRleChlLm5hbWVzKTt0LmFkZChhKTtpZihlLmlzQ0lERm9udCYmZS50b3BEaWN0Lmhhc05hbWUoIkZvbnRNYXRyaXgiKSl7Y29uc3QgdD1lLnRvcERpY3QuZ2V0QnlOYW1lKCJGb250TWF0cml4Iik7ZS50b3BEaWN0LnJlbW92ZUJ5TmFtZSgiRm9udE1hdHJpeCIpO2Zvcihjb25zdCBuIG9mIGUuZmRBcnJheSl7bGV0IGU9dC5zbGljZSgwKTtuLmhhc05hbWUoIkZvbnRNYXRyaXgiKSYmKGU9VXRpbC50cmFuc2Zvcm0oZSxuLmdldEJ5TmFtZSgiRm9udE1hdHJpeCIpKSk7bi5zZXRCeU5hbWUoIkZvbnRNYXRyaXgiLGUpfX1jb25zdCByPWUudG9wRGljdC5nZXRCeU5hbWUoIlhVSUQiKTtyPy5sZW5ndGg+MTYmJmUudG9wRGljdC5yZW1vdmVCeU5hbWUoIlhVSUQiKTtlLnRvcERpY3Quc2V0QnlOYW1lKCJjaGFyc2V0IiwwKTtsZXQgcz10aGlzLmNvbXBpbGVUb3BEaWN0cyhbZS50b3BEaWN0XSx0Lmxlbmd0aCxlLmlzQ0lERm9udCk7dC5hZGQocy5vdXRwdXQpO2NvbnN0IGk9cy50cmFja2Vyc1swXSxvPXRoaXMuY29tcGlsZVN0cmluZ0luZGV4KGUuc3RyaW5ncy5zdHJpbmdzKTt0LmFkZChvKTtjb25zdCBsPXRoaXMuY29tcGlsZUluZGV4KGUuZ2xvYmFsU3VickluZGV4KTt0LmFkZChsKTtpZihlLmVuY29kaW5nJiZlLnRvcERpY3QuaGFzTmFtZSgiRW5jb2RpbmciKSlpZihlLmVuY29kaW5nLnByZWRlZmluZWQpaS5zZXRFbnRyeUxvY2F0aW9uKCJFbmNvZGluZyIsW2UuZW5jb2RpbmcuZm9ybWF0XSx0KTtlbHNle2NvbnN0IG49dGhpcy5jb21waWxlRW5jb2RpbmcoZS5lbmNvZGluZyk7aS5zZXRFbnRyeUxvY2F0aW9uKCJFbmNvZGluZyIsW3QubGVuZ3RoXSx0KTt0LmFkZChuKX1jb25zdCBmPXRoaXMuY29tcGlsZUNoYXJzZXQoZS5jaGFyc2V0LGUuY2hhclN0cmluZ3MuY291bnQsZS5zdHJpbmdzLGUuaXNDSURGb250KTtpLnNldEVudHJ5TG9jYXRpb24oImNoYXJzZXQiLFt0Lmxlbmd0aF0sdCk7dC5hZGQoZik7Y29uc3QgYz10aGlzLmNvbXBpbGVDaGFyU3RyaW5ncyhlLmNoYXJTdHJpbmdzKTtpLnNldEVudHJ5TG9jYXRpb24oIkNoYXJTdHJpbmdzIixbdC5sZW5ndGhdLHQpO3QuYWRkKGMpO2lmKGUuaXNDSURGb250KXtpLnNldEVudHJ5TG9jYXRpb24oIkZEU2VsZWN0IixbdC5sZW5ndGhdLHQpO2NvbnN0IG49dGhpcy5jb21waWxlRkRTZWxlY3QoZS5mZFNlbGVjdCk7dC5hZGQobik7cz10aGlzLmNvbXBpbGVUb3BEaWN0cyhlLmZkQXJyYXksdC5sZW5ndGgsITApO2kuc2V0RW50cnlMb2NhdGlvbigiRkRBcnJheSIsW3QubGVuZ3RoXSx0KTt0LmFkZChzLm91dHB1dCk7Y29uc3QgYT1zLnRyYWNrZXJzO3RoaXMuY29tcGlsZVByaXZhdGVEaWN0cyhlLmZkQXJyYXksYSx0KX10aGlzLmNvbXBpbGVQcml2YXRlRGljdHMoW2UudG9wRGljdF0sW2ldLHQpO3QuYWRkKFswXSk7cmV0dXJuIHQuZGF0YX1lbmNvZGVOdW1iZXIoZSl7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoZSk/dGhpcy5lbmNvZGVJbnRlZ2VyKGUpOnRoaXMuZW5jb2RlRmxvYXQoZSl9c3RhdGljIGdldCBFbmNvZGVGbG9hdFJlZ0V4cCgpe3JldHVybiBzaGFkb3codGhpcywiRW5jb2RlRmxvYXRSZWdFeHAiLC9cLihcZCo/KSg/Ojl7NSwyMH18MHs1LDIwfSlcZHswLDJ9KD86ZSguKyl8JCkvKX1lbmNvZGVGbG9hdChlKXtsZXQgdD1lLnRvU3RyaW5nKCk7Y29uc3Qgbj1DRkZDb21waWxlci5FbmNvZGVGbG9hdFJlZ0V4cC5leGVjKHQpO2lmKG4pe2NvbnN0IGE9cGFyc2VGbG9hdCgiMWUiKygoblsyXT8rblsyXTowKStuWzFdLmxlbmd0aCkpO3Q9KE1hdGgucm91bmQoZSphKS9hKS50b1N0cmluZygpfWxldCBhLHIscz0iIjtmb3IoYT0wLHI9dC5sZW5ndGg7YTxyOysrYSl7Y29uc3QgZT10W2FdO3MrPSJlIj09PWU/Ii0iPT09dFsrK2FdPyJjIjoiYiI6Ii4iPT09ZT8iYSI6Ii0iPT09ZT8iZSI6ZX1zKz0xJnMubGVuZ3RoPyJmIjoiZmYiO2NvbnN0IGk9WzMwXTtmb3IoYT0wLHI9cy5sZW5ndGg7YTxyO2ErPTIpaS5wdXNoKHBhcnNlSW50KHMuc3Vic3RyaW5nKGEsYSsyKSwxNikpO3JldHVybiBpfWVuY29kZUludGVnZXIoZSl7bGV0IHQ7dD1lPj0tMTA3JiZlPD0xMDc/W2UrMTM5XTplPj0xMDgmJmU8PTExMzE/WzI0NysoKGUtPTEwOCk+PjgpLDI1NSZlXTplPj0tMTEzMSYmZTw9LTEwOD9bMjUxKygoZT0tZS0xMDgpPj44KSwyNTUmZV06ZT49LTMyNzY4JiZlPD0zMjc2Nz9bMjgsZT4+OCYyNTUsMjU1JmVdOlsyOSxlPj4yNCYyNTUsZT4+MTYmMjU1LGU+PjgmMjU1LDI1NSZlXTtyZXR1cm4gdH1jb21waWxlSGVhZGVyKGUpe3JldHVybltlLm1ham9yLGUubWlub3IsNCxlLm9mZlNpemVdfWNvbXBpbGVOYW1lSW5kZXgoZSl7Y29uc3QgdD1uZXcgQ0ZGSW5kZXg7Zm9yKGNvbnN0IG4gb2YgZSl7Y29uc3QgZT1NYXRoLm1pbihuLmxlbmd0aCwxMjcpO2xldCBhPW5ldyBBcnJheShlKTtmb3IobGV0IHQ9MDt0PGU7dCsrKXtsZXQgZT1uW3RdOyhlPCIhInx8ZT4ifiJ8fCJbIj09PWV8fCJdIj09PWV8fCIoIj09PWV8fCIpIj09PWV8fCJ7Ij09PWV8fCJ9Ij09PWV8fCI8Ij09PWV8fCI+Ij09PWV8fCIvIj09PWV8fCIlIj09PWUpJiYoZT0iXyIpO2FbdF09ZX1hPWEuam9pbigiIik7IiI9PT1hJiYoYT0iQmFkX0ZvbnRfTmFtZSIpO3QuYWRkKHN0cmluZ1RvQnl0ZXMoYSkpfXJldHVybiB0aGlzLmNvbXBpbGVJbmRleCh0KX1jb21waWxlVG9wRGljdHMoZSx0LG4pe2NvbnN0IGE9W107bGV0IHI9bmV3IENGRkluZGV4O2Zvcihjb25zdCBzIG9mIGUpe2lmKG4pe3MucmVtb3ZlQnlOYW1lKCJDSURGb250VmVyc2lvbiIpO3MucmVtb3ZlQnlOYW1lKCJDSURGb250UmV2aXNpb24iKTtzLnJlbW92ZUJ5TmFtZSgiQ0lERm9udFR5cGUiKTtzLnJlbW92ZUJ5TmFtZSgiQ0lEQ291bnQiKTtzLnJlbW92ZUJ5TmFtZSgiVUlEQmFzZSIpfWNvbnN0IGU9bmV3IENGRk9mZnNldFRyYWNrZXIsaT10aGlzLmNvbXBpbGVEaWN0KHMsZSk7YS5wdXNoKGUpO3IuYWRkKGkpO2Uub2Zmc2V0KHQpfXI9dGhpcy5jb21waWxlSW5kZXgocixhKTtyZXR1cm57dHJhY2tlcnM6YSxvdXRwdXQ6cn19Y29tcGlsZVByaXZhdGVEaWN0cyhlLHQsbil7Zm9yKGxldCBhPTAscj1lLmxlbmd0aDthPHI7KythKXtjb25zdCByPWVbYV0scz1yLnByaXZhdGVEaWN0O2lmKCFzfHwhci5oYXNOYW1lKCJQcml2YXRlIikpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJUaGVyZSBtdXN0IGJlIGEgcHJpdmF0ZSBkaWN0aW9uYXJ5LiIpO2NvbnN0IGk9bmV3IENGRk9mZnNldFRyYWNrZXIsbz10aGlzLmNvbXBpbGVEaWN0KHMsaSk7bGV0IGw9bi5sZW5ndGg7aS5vZmZzZXQobCk7by5sZW5ndGh8fChsPTApO3RbYV0uc2V0RW50cnlMb2NhdGlvbigiUHJpdmF0ZSIsW28ubGVuZ3RoLGxdLG4pO24uYWRkKG8pO2lmKHMuc3VicnNJbmRleCYmcy5oYXNOYW1lKCJTdWJycyIpKXtjb25zdCBlPXRoaXMuY29tcGlsZUluZGV4KHMuc3VicnNJbmRleCk7aS5zZXRFbnRyeUxvY2F0aW9uKCJTdWJycyIsW28ubGVuZ3RoXSxuKTtuLmFkZChlKX19fWNvbXBpbGVEaWN0KGUsdCl7Y29uc3Qgbj1bXTtmb3IoY29uc3QgYSBvZiBlLm9yZGVyKXtpZighKGEgaW4gZS52YWx1ZXMpKWNvbnRpbnVlO2xldCByPWUudmFsdWVzW2FdLHM9ZS50eXBlc1thXTtBcnJheS5pc0FycmF5KHMpfHwocz1bc10pO0FycmF5LmlzQXJyYXkocil8fChyPVtyXSk7aWYoMCE9PXIubGVuZ3RoKXtmb3IobGV0IGk9MCxvPXMubGVuZ3RoO2k8bzsrK2kpe2NvbnN0IG89c1tpXSxsPXJbaV07c3dpdGNoKG8pe2Nhc2UibnVtIjpjYXNlInNpZCI6bi5wdXNoKC4uLnRoaXMuZW5jb2RlTnVtYmVyKGwpKTticmVhaztjYXNlIm9mZnNldCI6Y29uc3Qgcz1lLmtleVRvTmFtZU1hcFthXTt0LmlzVHJhY2tpbmcocyl8fHQudHJhY2socyxuLmxlbmd0aCk7bi5wdXNoKDI5LDAsMCwwLDApO2JyZWFrO2Nhc2UiYXJyYXkiOmNhc2UiZGVsdGEiOm4ucHVzaCguLi50aGlzLmVuY29kZU51bWJlcihsKSk7Zm9yKGxldCBlPTEsdD1yLmxlbmd0aDtlPHQ7KytlKW4ucHVzaCguLi50aGlzLmVuY29kZU51bWJlcihyW2VdKSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYFVua25vd24gZGF0YSB0eXBlIG9mICR7b31gKX19bi5wdXNoKC4uLmUub3Bjb2Rlc1thXSl9fXJldHVybiBufWNvbXBpbGVTdHJpbmdJbmRleChlKXtjb25zdCB0PW5ldyBDRkZJbmRleDtmb3IoY29uc3QgbiBvZiBlKXQuYWRkKHN0cmluZ1RvQnl0ZXMobikpO3JldHVybiB0aGlzLmNvbXBpbGVJbmRleCh0KX1jb21waWxlQ2hhclN0cmluZ3MoZSl7Y29uc3QgdD1uZXcgQ0ZGSW5kZXg7Zm9yKGxldCBuPTA7bjxlLmNvdW50O24rKyl7Y29uc3QgYT1lLmdldChuKTswIT09YS5sZW5ndGg/dC5hZGQoYSk6dC5hZGQobmV3IFVpbnQ4QXJyYXkoWzEzOSwxNF0pKX1yZXR1cm4gdGhpcy5jb21waWxlSW5kZXgodCl9Y29tcGlsZUNoYXJzZXQoZSx0LG4sYSl7bGV0IHI7Y29uc3Qgcz10LTE7aWYoYSl7Y29uc3QgZT1zLTE7cj1uZXcgVWludDhBcnJheShbMiwwLDEsZT4+OCYyNTUsMjU1JmVdKX1lbHNle3I9bmV3IFVpbnQ4QXJyYXkoMSsyKnMpO3JbMF09MDtsZXQgdD0wO2NvbnN0IGE9ZS5jaGFyc2V0Lmxlbmd0aDtsZXQgaT0hMTtmb3IobGV0IHM9MTtzPHIubGVuZ3RoO3MrPTIpe2xldCBvPTA7aWYodDxhKXtjb25zdCBhPWUuY2hhcnNldFt0KytdO289bi5nZXRTSUQoYSk7aWYoLTE9PT1vKXtvPTA7aWYoIWkpe2k9ITA7d2FybihgQ291bGRuJ3QgZmluZCAke2F9IGluIENGRiBzdHJpbmdzYCl9fX1yW3NdPW8+PjgmMjU1O3JbcysxXT0yNTUmb319cmV0dXJuIHRoaXMuY29tcGlsZVR5cGVkQXJyYXkocil9Y29tcGlsZUVuY29kaW5nKGUpe3JldHVybiB0aGlzLmNvbXBpbGVUeXBlZEFycmF5KGUucmF3KX1jb21waWxlRkRTZWxlY3QoZSl7Y29uc3QgdD1lLmZvcm1hdDtsZXQgbixhO3N3aXRjaCh0KXtjYXNlIDA6bj1uZXcgVWludDhBcnJheSgxK2UuZmRTZWxlY3QubGVuZ3RoKTtuWzBdPXQ7Zm9yKGE9MDthPGUuZmRTZWxlY3QubGVuZ3RoO2ErKyluW2ErMV09ZS5mZFNlbGVjdFthXTticmVhaztjYXNlIDM6Y29uc3Qgcj0wO2xldCBzPWUuZmRTZWxlY3RbMF07Y29uc3QgaT1bdCwwLDAscj4+OCYyNTUsMjU1JnIsc107Zm9yKGE9MTthPGUuZmRTZWxlY3QubGVuZ3RoO2ErKyl7Y29uc3QgdD1lLmZkU2VsZWN0W2FdO2lmKHQhPT1zKXtpLnB1c2goYT4+OCYyNTUsMjU1JmEsdCk7cz10fX1jb25zdCBvPShpLmxlbmd0aC0zKS8zO2lbMV09bz4+OCYyNTU7aVsyXT0yNTUmbztpLnB1c2goYT4+OCYyNTUsMjU1JmEpO249bmV3IFVpbnQ4QXJyYXkoaSl9cmV0dXJuIHRoaXMuY29tcGlsZVR5cGVkQXJyYXkobil9Y29tcGlsZVR5cGVkQXJyYXkoZSl7cmV0dXJuIEFycmF5LmZyb20oZSl9Y29tcGlsZUluZGV4KGUsdD1bXSl7Y29uc3Qgbj1lLm9iamVjdHMsYT1uLmxlbmd0aDtpZigwPT09YSlyZXR1cm5bMCwwXTtjb25zdCByPVthPj44JjI1NSwyNTUmYV07bGV0IHMsaSxvPTE7Zm9yKHM9MDtzPGE7KytzKW8rPW5bc10ubGVuZ3RoO2k9bzwyNTY/MTpvPDY1NTM2PzI6bzwxNjc3NzIxNj8zOjQ7ci5wdXNoKGkpO2xldCBsPTE7Zm9yKHM9MDtzPGErMTtzKyspezE9PT1pP3IucHVzaCgyNTUmbCk6Mj09PWk/ci5wdXNoKGw+PjgmMjU1LDI1NSZsKTozPT09aT9yLnB1c2gobD4+MTYmMjU1LGw+PjgmMjU1LDI1NSZsKTpyLnB1c2gobD4+PjI0JjI1NSxsPj4xNiYyNTUsbD4+OCYyNTUsMjU1JmwpO25bc10mJihsKz1uW3NdLmxlbmd0aCl9Zm9yKHM9MDtzPGE7cysrKXt0W3NdJiZ0W3NdLm9mZnNldChyLmxlbmd0aCk7ci5wdXNoKC4uLm5bc10pfXJldHVybiByfX1jb25zdCBVYT1nZXRMb29rdXBUYWJsZUZhY3RvcnkoZnVuY3Rpb24oZSl7ZVsiVGltZXMtUm9tYW4iXT0iVGltZXMtUm9tYW4iO2UuSGVsdmV0aWNhPSJIZWx2ZXRpY2EiO2UuQ291cmllcj0iQ291cmllciI7ZS5TeW1ib2w9IlN5bWJvbCI7ZVsiVGltZXMtQm9sZCJdPSJUaW1lcy1Cb2xkIjtlWyJIZWx2ZXRpY2EtQm9sZCJdPSJIZWx2ZXRpY2EtQm9sZCI7ZVsiQ291cmllci1Cb2xkIl09IkNvdXJpZXItQm9sZCI7ZS5aYXBmRGluZ2JhdHM9IlphcGZEaW5nYmF0cyI7ZVsiVGltZXMtSXRhbGljIl09IlRpbWVzLUl0YWxpYyI7ZVsiSGVsdmV0aWNhLU9ibGlxdWUiXT0iSGVsdmV0aWNhLU9ibGlxdWUiO2VbIkNvdXJpZXItT2JsaXF1ZSJdPSJDb3VyaWVyLU9ibGlxdWUiO2VbIlRpbWVzLUJvbGRJdGFsaWMiXT0iVGltZXMtQm9sZEl0YWxpYyI7ZVsiSGVsdmV0aWNhLUJvbGRPYmxpcXVlIl09IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSI7ZVsiQ291cmllci1Cb2xkT2JsaXF1ZSJdPSJDb3VyaWVyLUJvbGRPYmxpcXVlIjtlLkFyaWFsTmFycm93PSJIZWx2ZXRpY2EiO2VbIkFyaWFsTmFycm93LUJvbGQiXT0iSGVsdmV0aWNhLUJvbGQiO2VbIkFyaWFsTmFycm93LUJvbGRJdGFsaWMiXT0iSGVsdmV0aWNhLUJvbGRPYmxpcXVlIjtlWyJBcmlhbE5hcnJvdy1JdGFsaWMiXT0iSGVsdmV0aWNhLU9ibGlxdWUiO2UuQXJpYWxCbGFjaz0iSGVsdmV0aWNhIjtlWyJBcmlhbEJsYWNrLUJvbGQiXT0iSGVsdmV0aWNhLUJvbGQiO2VbIkFyaWFsQmxhY2stQm9sZEl0YWxpYyJdPSJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiO2VbIkFyaWFsQmxhY2stSXRhbGljIl09IkhlbHZldGljYS1PYmxpcXVlIjtlWyJBcmlhbC1CbGFjayJdPSJIZWx2ZXRpY2EiO2VbIkFyaWFsLUJsYWNrLUJvbGQiXT0iSGVsdmV0aWNhLUJvbGQiO2VbIkFyaWFsLUJsYWNrLUJvbGRJdGFsaWMiXT0iSGVsdmV0aWNhLUJvbGRPYmxpcXVlIjtlWyJBcmlhbC1CbGFjay1JdGFsaWMiXT0iSGVsdmV0aWNhLU9ibGlxdWUiO2UuQXJpYWw9IkhlbHZldGljYSI7ZVsiQXJpYWwtQm9sZCJdPSJIZWx2ZXRpY2EtQm9sZCI7ZVsiQXJpYWwtQm9sZEl0YWxpYyJdPSJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiO2VbIkFyaWFsLUl0YWxpYyJdPSJIZWx2ZXRpY2EtT2JsaXF1ZSI7ZS5BcmlhbE1UPSJIZWx2ZXRpY2EiO2VbIkFyaWFsLUJvbGRJdGFsaWNNVCJdPSJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiO2VbIkFyaWFsLUJvbGRNVCJdPSJIZWx2ZXRpY2EtQm9sZCI7ZVsiQXJpYWwtSXRhbGljTVQiXT0iSGVsdmV0aWNhLU9ibGlxdWUiO2VbIkFyaWFsLUJvbGRJdGFsaWNNVC1Cb2xkSXRhbGljIl09IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSI7ZVsiQXJpYWwtQm9sZE1ULUJvbGQiXT0iSGVsdmV0aWNhLUJvbGQiO2VbIkFyaWFsLUl0YWxpY01ULUl0YWxpYyJdPSJIZWx2ZXRpY2EtT2JsaXF1ZSI7ZS5BcmlhbFVuaWNvZGVNUz0iSGVsdmV0aWNhIjtlWyJBcmlhbFVuaWNvZGVNUy1Cb2xkIl09IkhlbHZldGljYS1Cb2xkIjtlWyJBcmlhbFVuaWNvZGVNUy1Cb2xkSXRhbGljIl09IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSI7ZVsiQXJpYWxVbmljb2RlTVMtSXRhbGljIl09IkhlbHZldGljYS1PYmxpcXVlIjtlWyJDb3VyaWVyLUJvbGRJdGFsaWMiXT0iQ291cmllci1Cb2xkT2JsaXF1ZSI7ZVsiQ291cmllci1JdGFsaWMiXT0iQ291cmllci1PYmxpcXVlIjtlLkNvdXJpZXJOZXc9IkNvdXJpZXIiO2VbIkNvdXJpZXJOZXctQm9sZCJdPSJDb3VyaWVyLUJvbGQiO2VbIkNvdXJpZXJOZXctQm9sZEl0YWxpYyJdPSJDb3VyaWVyLUJvbGRPYmxpcXVlIjtlWyJDb3VyaWVyTmV3LUl0YWxpYyJdPSJDb3VyaWVyLU9ibGlxdWUiO2VbIkNvdXJpZXJOZXdQUy1Cb2xkSXRhbGljTVQiXT0iQ291cmllci1Cb2xkT2JsaXF1ZSI7ZVsiQ291cmllck5ld1BTLUJvbGRNVCJdPSJDb3VyaWVyLUJvbGQiO2VbIkNvdXJpZXJOZXdQUy1JdGFsaWNNVCJdPSJDb3VyaWVyLU9ibGlxdWUiO2UuQ291cmllck5ld1BTTVQ9IkNvdXJpZXIiO2VbIkhlbHZldGljYS1Cb2xkSXRhbGljIl09IkhlbHZldGljYS1Cb2xkT2JsaXF1ZSI7ZVsiSGVsdmV0aWNhLUl0YWxpYyJdPSJIZWx2ZXRpY2EtT2JsaXF1ZSI7ZVsiSGVsdmV0aWNhTFRTdGQtQm9sZCJdPSJIZWx2ZXRpY2EtQm9sZCI7ZVsiU3ltYm9sLUJvbGQiXT0iU3ltYm9sIjtlWyJTeW1ib2wtQm9sZEl0YWxpYyJdPSJTeW1ib2wiO2VbIlN5bWJvbC1JdGFsaWMiXT0iU3ltYm9sIjtlLlRpbWVzTmV3Um9tYW49IlRpbWVzLVJvbWFuIjtlWyJUaW1lc05ld1JvbWFuLUJvbGQiXT0iVGltZXMtQm9sZCI7ZVsiVGltZXNOZXdSb21hbi1Cb2xkSXRhbGljIl09IlRpbWVzLUJvbGRJdGFsaWMiO2VbIlRpbWVzTmV3Um9tYW4tSXRhbGljIl09IlRpbWVzLUl0YWxpYyI7ZS5UaW1lc05ld1JvbWFuUFM9IlRpbWVzLVJvbWFuIjtlWyJUaW1lc05ld1JvbWFuUFMtQm9sZCJdPSJUaW1lcy1Cb2xkIjtlWyJUaW1lc05ld1JvbWFuUFMtQm9sZEl0YWxpYyJdPSJUaW1lcy1Cb2xkSXRhbGljIjtlWyJUaW1lc05ld1JvbWFuUFMtQm9sZEl0YWxpY01UIl09IlRpbWVzLUJvbGRJdGFsaWMiO2VbIlRpbWVzTmV3Um9tYW5QUy1Cb2xkTVQiXT0iVGltZXMtQm9sZCI7ZVsiVGltZXNOZXdSb21hblBTLUl0YWxpYyJdPSJUaW1lcy1JdGFsaWMiO2VbIlRpbWVzTmV3Um9tYW5QUy1JdGFsaWNNVCJdPSJUaW1lcy1JdGFsaWMiO2UuVGltZXNOZXdSb21hblBTTVQ9IlRpbWVzLVJvbWFuIjtlWyJUaW1lc05ld1JvbWFuUFNNVC1Cb2xkIl09IlRpbWVzLUJvbGQiO2VbIlRpbWVzTmV3Um9tYW5QU01ULUJvbGRJdGFsaWMiXT0iVGltZXMtQm9sZEl0YWxpYyI7ZVsiVGltZXNOZXdSb21hblBTTVQtSXRhbGljIl09IlRpbWVzLUl0YWxpYyJ9KSxYYT1nZXRMb29rdXBUYWJsZUZhY3RvcnkoZnVuY3Rpb24oZSl7ZS5Db3VyaWVyPSJGb3hpdEZpeGVkLnBmYiI7ZVsiQ291cmllci1Cb2xkIl09IkZveGl0Rml4ZWRCb2xkLnBmYiI7ZVsiQ291cmllci1Cb2xkT2JsaXF1ZSJdPSJGb3hpdEZpeGVkQm9sZEl0YWxpYy5wZmIiO2VbIkNvdXJpZXItT2JsaXF1ZSJdPSJGb3hpdEZpeGVkSXRhbGljLnBmYiI7ZS5IZWx2ZXRpY2E9IkxpYmVyYXRpb25TYW5zLVJlZ3VsYXIudHRmIjtlWyJIZWx2ZXRpY2EtQm9sZCJdPSJMaWJlcmF0aW9uU2Fucy1Cb2xkLnR0ZiI7ZVsiSGVsdmV0aWNhLUJvbGRPYmxpcXVlIl09IkxpYmVyYXRpb25TYW5zLUJvbGRJdGFsaWMudHRmIjtlWyJIZWx2ZXRpY2EtT2JsaXF1ZSJdPSJMaWJlcmF0aW9uU2Fucy1JdGFsaWMudHRmIjtlWyJUaW1lcy1Sb21hbiJdPSJGb3hpdFNlcmlmLnBmYiI7ZVsiVGltZXMtQm9sZCJdPSJGb3hpdFNlcmlmQm9sZC5wZmIiO2VbIlRpbWVzLUJvbGRJdGFsaWMiXT0iRm94aXRTZXJpZkJvbGRJdGFsaWMucGZiIjtlWyJUaW1lcy1JdGFsaWMiXT0iRm94aXRTZXJpZkl0YWxpYy5wZmIiO2UuU3ltYm9sPSJGb3hpdFN5bWJvbC5wZmIiO2UuWmFwZkRpbmdiYXRzPSJGb3hpdERpbmdiYXRzLnBmYiI7ZVsiTGliZXJhdGlvblNhbnMtUmVndWxhciJdPSJMaWJlcmF0aW9uU2Fucy1SZWd1bGFyLnR0ZiI7ZVsiTGliZXJhdGlvblNhbnMtQm9sZCJdPSJMaWJlcmF0aW9uU2Fucy1Cb2xkLnR0ZiI7ZVsiTGliZXJhdGlvblNhbnMtSXRhbGljIl09IkxpYmVyYXRpb25TYW5zLUl0YWxpYy50dGYiO2VbIkxpYmVyYXRpb25TYW5zLUJvbGRJdGFsaWMiXT0iTGliZXJhdGlvblNhbnMtQm9sZEl0YWxpYy50dGYifSksV2E9Z2V0TG9va3VwVGFibGVGYWN0b3J5KGZ1bmN0aW9uKGUpe2UuQ2FsaWJyaT0iSGVsdmV0aWNhIjtlWyJDYWxpYnJpLUJvbGQiXT0iSGVsdmV0aWNhLUJvbGQiO2VbIkNhbGlicmktQm9sZEl0YWxpYyJdPSJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiO2VbIkNhbGlicmktSXRhbGljIl09IkhlbHZldGljYS1PYmxpcXVlIjtlLkNlbnR1cnlHb3RoaWM9IkhlbHZldGljYSI7ZVsiQ2VudHVyeUdvdGhpYy1Cb2xkIl09IkhlbHZldGljYS1Cb2xkIjtlWyJDZW50dXJ5R290aGljLUJvbGRJdGFsaWMiXT0iSGVsdmV0aWNhLUJvbGRPYmxpcXVlIjtlWyJDZW50dXJ5R290aGljLUl0YWxpYyJdPSJIZWx2ZXRpY2EtT2JsaXF1ZSI7ZS5Db21pY1NhbnNNUz0iQ29taWMgU2FucyBNUyI7ZVsiQ29taWNTYW5zTVMtQm9sZCJdPSJDb21pYyBTYW5zIE1TLUJvbGQiO2VbIkNvbWljU2Fuc01TLUJvbGRJdGFsaWMiXT0iQ29taWMgU2FucyBNUy1Cb2xkSXRhbGljIjtlWyJDb21pY1NhbnNNUy1JdGFsaWMiXT0iQ29taWMgU2FucyBNUy1JdGFsaWMiO2UuR2lsbFNhbnNNVD0iSGVsdmV0aWNhIjtlWyJHaWxsU2Fuc01ULUJvbGQiXT0iSGVsdmV0aWNhLUJvbGQiO2VbIkdpbGxTYW5zTVQtQm9sZEl0YWxpYyJdPSJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiO2VbIkdpbGxTYW5zTVQtSXRhbGljIl09IkhlbHZldGljYS1PYmxpcXVlIjtlLkltcGFjdD0iSGVsdmV0aWNhIjtlWyJJdGNTeW1ib2wtQm9sZCJdPSJIZWx2ZXRpY2EtQm9sZCI7ZVsiSXRjU3ltYm9sLUJvbGRJdGFsaWMiXT0iSGVsdmV0aWNhLUJvbGRPYmxpcXVlIjtlWyJJdGNTeW1ib2wtQm9vayJdPSJIZWx2ZXRpY2EiO2VbIkl0Y1N5bWJvbC1Cb29rSXRhbGljIl09IkhlbHZldGljYS1PYmxpcXVlIjtlWyJJdGNTeW1ib2wtTWVkaXVtIl09IkhlbHZldGljYSI7ZVsiSXRjU3ltYm9sLU1lZGl1bUl0YWxpYyJdPSJIZWx2ZXRpY2EtT2JsaXF1ZSI7ZS5MdWNpZGFDb25zb2xlPSJDb3VyaWVyIjtlWyJMdWNpZGFDb25zb2xlLUJvbGQiXT0iQ291cmllci1Cb2xkIjtlWyJMdWNpZGFDb25zb2xlLUJvbGRJdGFsaWMiXT0iQ291cmllci1Cb2xkT2JsaXF1ZSI7ZVsiTHVjaWRhQ29uc29sZS1JdGFsaWMiXT0iQ291cmllci1PYmxpcXVlIjtlWyJMdWNpZGFTYW5zLURlbWkiXT0iSGVsdmV0aWNhLUJvbGQiO2VbIk1TLUdvdGhpYyJdPSJNUyBHb3RoaWMiO2VbIk1TLUdvdGhpYy1Cb2xkIl09Ik1TIEdvdGhpYy1Cb2xkIjtlWyJNUy1Hb3RoaWMtQm9sZEl0YWxpYyJdPSJNUyBHb3RoaWMtQm9sZEl0YWxpYyI7ZVsiTVMtR290aGljLUl0YWxpYyJdPSJNUyBHb3RoaWMtSXRhbGljIjtlWyJNUy1NaW5jaG8iXT0iTVMgTWluY2hvIjtlWyJNUy1NaW5jaG8tQm9sZCJdPSJNUyBNaW5jaG8tQm9sZCI7ZVsiTVMtTWluY2hvLUJvbGRJdGFsaWMiXT0iTVMgTWluY2hvLUJvbGRJdGFsaWMiO2VbIk1TLU1pbmNoby1JdGFsaWMiXT0iTVMgTWluY2hvLUl0YWxpYyI7ZVsiTVMtUEdvdGhpYyJdPSJNUyBQR290aGljIjtlWyJNUy1QR290aGljLUJvbGQiXT0iTVMgUEdvdGhpYy1Cb2xkIjtlWyJNUy1QR290aGljLUJvbGRJdGFsaWMiXT0iTVMgUEdvdGhpYy1Cb2xkSXRhbGljIjtlWyJNUy1QR290aGljLUl0YWxpYyJdPSJNUyBQR290aGljLUl0YWxpYyI7ZVsiTVMtUE1pbmNobyJdPSJNUyBQTWluY2hvIjtlWyJNUy1QTWluY2hvLUJvbGQiXT0iTVMgUE1pbmNoby1Cb2xkIjtlWyJNUy1QTWluY2hvLUJvbGRJdGFsaWMiXT0iTVMgUE1pbmNoby1Cb2xkSXRhbGljIjtlWyJNUy1QTWluY2hvLUl0YWxpYyJdPSJNUyBQTWluY2hvLUl0YWxpYyI7ZS5OdXB0aWFsU2NyaXB0PSJUaW1lcy1JdGFsaWMiO2UuU2Vnb2VVSVN5bWJvbD0iSGVsdmV0aWNhIn0pLEthPWdldExvb2t1cFRhYmxlRmFjdG9yeShmdW5jdGlvbihlKXtlWyJBZG9iZSBKZW5zb24iXT0hMDtlWyJBZG9iZSBUZXh0Il09ITA7ZS5BbGJlcnR1cz0hMDtlLkFsZHVzPSEwO2UuQWxleGFuZHJpYT0hMDtlLkFsZ2VyaWFuPSEwO2VbIkFtZXJpY2FuIFR5cGV3cml0ZXIiXT0hMDtlLkFudGlxdWE9ITA7ZS5BcGV4PSEwO2UuQXJubz0hMDtlLkFzdGVyPSEwO2UuQXVyb3JhPSEwO2UuQmFza2VydmlsbGU9ITA7ZS5CZWxsPSEwO2UuQmVtYm89ITA7ZVsiQmVtYm8gU2Nob29sYm9vayJdPSEwO2UuQmVuZ3VpYXQ9ITA7ZVsiQmVya2VsZXkgT2xkIFN0eWxlIl09ITA7ZVsiQmVybmhhcmQgTW9kZXJuIl09ITA7ZVsiQmVydGhvbGQgQ2l0eSJdPSEwO2UuQm9kb25pPSEwO2VbIkJhdWVyIEJvZG9uaSJdPSEwO2VbIkJvb2sgQW50aXF1YSJdPSEwO2UuQm9va21hbj0hMDtlWyJCb3JkZWF1eCBSb21hbiJdPSEwO2VbIkNhbGlmb3JuaWFuIEZCIl09ITA7ZS5DYWxpc3RvPSEwO2UuQ2FsdmVydD0hMDtlLkNhcGl0YWxzPSEwO2UuQ2FtYnJpYT0hMDtlLkNhcnRpZXI9ITA7ZS5DYXNsb249ITA7ZS5DYXR1bGw9ITA7ZS5DZW50YXVyPSEwO2VbIkNlbnR1cnkgT2xkIFN0eWxlIl09ITA7ZVsiQ2VudHVyeSBTY2hvb2xib29rIl09ITA7ZS5DaGFwYXJyYWw9ITA7ZVsiQ2hhcmlzIFNJTCJdPSEwO2UuQ2hlbHRlbmhhbT0hMDtlWyJDaG9sbGEgU2xhYiJdPSEwO2UuQ2xhcmVuZG9uPSEwO2UuQ2xlYXJmYWNlPSEwO2UuQ29jaGluPSEwO2UuQ29sb25uYT0hMDtlWyJDb21wdXRlciBNb2Rlcm4iXT0hMDtlWyJDb25jcmV0ZSBSb21hbiJdPSEwO2UuQ29uc3RhbnRpYT0hMDtlWyJDb29wZXIgQmxhY2siXT0hMDtlLkNvcm9uYT0hMDtlLkVjb3R5cGU9ITA7ZS5FZ3lwdGllbm5lPSEwO2UuRWxlcGhhbnQ9ITA7ZS5FeGNlbHNpb3I9ITA7ZS5GYWlyZmllbGQ9ITA7ZVsiRkYgU2NhbGEiXT0hMDtlLkZvbGthcmQ9ITA7ZS5Gb290bGlnaHQ9ITA7ZS5GcmVlU2VyaWY9ITA7ZVsiRnJpeiBRdWFkcmF0YSJdPSEwO2UuR2FyYW1vbmQ9ITA7ZS5HZW50aXVtPSEwO2UuR2VvcmdpYT0hMDtlLkdsb3VjZXN0ZXI9ITA7ZVsiR291ZHkgT2xkIFN0eWxlIl09ITA7ZVsiR291ZHkgU2Nob29sYm9vayJdPSEwO2VbIkdvdWR5IFBybyBGb250Il09ITA7ZS5HcmFuam9uPSEwO2VbIkd1YXJkaWFuIEVneXB0aWFuIl09ITA7ZS5IZWF0aGVyPSEwO2UuSGVyY3VsZXM9ITA7ZVsiSGlnaCBUb3dlciBUZXh0Il09ITA7ZS5IaXJvc2hpZ2U9ITA7ZVsiSG9lZmxlciBUZXh0Il09ITA7ZVsiSHVtYW5hIFNlcmlmIl09ITA7ZS5JbXByaW50PSEwO2VbIklvbmljIE5vLiA1Il09ITA7ZS5KYW5zb249ITA7ZS5Kb2FubmE9ITA7ZS5Lb3Jpbm5hPSEwO2UuTGV4aWNvbj0hMDtlLkxpYmVyYXRpb25TZXJpZj0hMDtlWyJMaWJlcmF0aW9uIFNlcmlmIl09ITA7ZVsiTGludXggTGliZXJ0aW5lIl09ITA7ZS5MaXRlcmF0dXJuYXlhPSEwO2UuTHVjaWRhPSEwO2VbIkx1Y2lkYSBCcmlnaHQiXT0hMDtlLk1lbGlvcj0hMDtlLk1lbXBoaXM9ITA7ZS5NaWxsZXI9ITA7ZS5NaW5pb249ITA7ZS5Nb2Rlcm49ITA7ZVsiTW9uYSBMaXNhIl09ITA7ZVsiTXJzIEVhdmVzIl09ITA7ZVsiTVMgU2VyaWYiXT0hMDtlWyJNdXNlbyBTbGFiIl09ITA7ZVsiTmV3IFlvcmsiXT0hMDtlWyJOaW1idXMgUm9tYW4iXT0hMDtlWyJOUFMgUmF3bGluc29uIFJvYWR3YXkiXT0hMDtlLk51cHRpYWxTY3JpcHQ9ITA7ZS5QYWxhdGlubz0hMDtlLlBlcnBldHVhPSEwO2UuUGxhbnRpbj0hMDtlWyJQbGFudGluIFNjaG9vbGJvb2siXT0hMDtlLlBsYXliaWxsPSEwO2VbIlBvb3IgUmljaGFyZCJdPSEwO2VbIlJhd2xpbnNvbiBSb2Fkd2F5Il09ITA7ZS5SZW5hdWx0PSEwO2UuUmVxdWllbT0hMDtlLlJvY2t3ZWxsPSEwO2UuUm9tYW49ITA7ZVsiUm90aXMgU2VyaWYiXT0hMDtlLlNhYm9uPSEwO2UuU2NhbGE9ITA7ZS5TZWFndWxsPSEwO2UuU2lzdGluYT0hMDtlLlNvdXZlbmlyPSEwO2UuU1RJWD0hMDtlWyJTdG9uZSBJbmZvcm1hbCJdPSEwO2VbIlN0b25lIFNlcmlmIl09ITA7ZS5TeWxmYWVuPSEwO2UuVGltZXM9ITA7ZS5UcmFqYW49ITA7ZVsiVHJpbml0w6kiXT0hMDtlWyJUcnVtcCBNZWRpYWV2YWwiXT0hMDtlLlV0b3BpYT0hMDtlWyJWYWxlIFR5cGUiXT0hMDtlWyJCaXRzdHJlYW0gVmVyYSJdPSEwO2VbIlZlcmEgU2VyaWYiXT0hMDtlLlZlcnNhaWxsZXM9ITA7ZS5XYW50ZWQ9ITA7ZS5XZWlzcz0hMDtlWyJXaWRlIExhdGluIl09ITA7ZS5XaW5kc29yPSEwO2UuWElUUz0hMH0pLFZhPWdldExvb2t1cFRhYmxlRmFjdG9yeShmdW5jdGlvbihlKXtlLkRpbmdiYXRzPSEwO2UuU3ltYm9sPSEwO2UuWmFwZkRpbmdiYXRzPSEwO2UuV2luZ2RpbmdzPSEwO2VbIldpbmdkaW5ncy1Cb2xkIl09ITA7ZVsiV2luZ2RpbmdzLVJlZ3VsYXIiXT0hMH0pLEdhPWdldExvb2t1cFRhYmxlRmFjdG9yeShmdW5jdGlvbihlKXtlWzJdPTEwO2VbM109MzI7ZVs0XT0zMztlWzVdPTM0O2VbNl09MzU7ZVs3XT0zNjtlWzhdPTM3O2VbOV09Mzg7ZVsxMF09Mzk7ZVsxMV09NDA7ZVsxMl09NDE7ZVsxM109NDI7ZVsxNF09NDM7ZVsxNV09NDQ7ZVsxNl09NDU7ZVsxN109NDY7ZVsxOF09NDc7ZVsxOV09NDg7ZVsyMF09NDk7ZVsyMV09NTA7ZVsyMl09NTE7ZVsyM109NTI7ZVsyNF09NTM7ZVsyNV09NTQ7ZVsyNl09NTU7ZVsyN109NTY7ZVsyOF09NTc7ZVsyOV09NTg7ZVszMF09ODk0O2VbMzFdPTYwO2VbMzJdPTYxO2VbMzNdPTYyO2VbMzRdPTYzO2VbMzVdPTY0O2VbMzZdPTY1O2VbMzddPTY2O2VbMzhdPTY3O2VbMzldPTY4O2VbNDBdPTY5O2VbNDFdPTcwO2VbNDJdPTcxO2VbNDNdPTcyO2VbNDRdPTczO2VbNDVdPTc0O2VbNDZdPTc1O2VbNDddPTc2O2VbNDhdPTc3O2VbNDldPTc4O2VbNTBdPTc5O2VbNTFdPTgwO2VbNTJdPTgxO2VbNTNdPTgyO2VbNTRdPTgzO2VbNTVdPTg0O2VbNTZdPTg1O2VbNTddPTg2O2VbNThdPTg3O2VbNTldPTg4O2VbNjBdPTg5O2VbNjFdPTkwO2VbNjJdPTkxO2VbNjNdPTkyO2VbNjRdPTkzO2VbNjVdPTk0O2VbNjZdPTk1O2VbNjddPTk2O2VbNjhdPTk3O2VbNjldPTk4O2VbNzBdPTk5O2VbNzFdPTEwMDtlWzcyXT0xMDE7ZVs3M109MTAyO2VbNzRdPTEwMztlWzc1XT0xMDQ7ZVs3Nl09MTA1O2VbNzddPTEwNjtlWzc4XT0xMDc7ZVs3OV09MTA4O2VbODBdPTEwOTtlWzgxXT0xMTA7ZVs4Ml09MTExO2VbODNdPTExMjtlWzg0XT0xMTM7ZVs4NV09MTE0O2VbODZdPTExNTtlWzg3XT0xMTY7ZVs4OF09MTE3O2VbODldPTExODtlWzkwXT0xMTk7ZVs5MV09MTIwO2VbOTJdPTEyMTtlWzkzXT0xMjI7ZVs5NF09MTIzO2VbOTVdPTEyNDtlWzk2XT0xMjU7ZVs5N109MTI2O2VbOThdPTE5NjtlWzk5XT0xOTc7ZVsxMDBdPTE5OTtlWzEwMV09MjAxO2VbMTAyXT0yMDk7ZVsxMDNdPTIxNDtlWzEwNF09MjIwO2VbMTA1XT0yMjU7ZVsxMDZdPTIyNDtlWzEwN109MjI2O2VbMTA4XT0yMjg7ZVsxMDldPTIyNztlWzExMF09MjI5O2VbMTExXT0yMzE7ZVsxMTJdPTIzMztlWzExM109MjMyO2VbMTE0XT0yMzQ7ZVsxMTVdPTIzNTtlWzExNl09MjM3O2VbMTE3XT0yMzY7ZVsxMThdPTIzODtlWzExOV09MjM5O2VbMTIwXT0yNDE7ZVsxMjFdPTI0MztlWzEyMl09MjQyO2VbMTIzXT0yNDQ7ZVsxMjRdPTI0NjtlWzEyNV09MjQ1O2VbMTI2XT0yNTA7ZVsxMjddPTI0OTtlWzEyOF09MjUxO2VbMTI5XT0yNTI7ZVsxMzBdPTgyMjQ7ZVsxMzFdPTE3NjtlWzEzMl09MTYyO2VbMTMzXT0xNjM7ZVsxMzRdPTE2NztlWzEzNV09ODIyNjtlWzEzNl09MTgyO2VbMTM3XT0yMjM7ZVsxMzhdPTE3NDtlWzEzOV09MTY5O2VbMTQwXT04NDgyO2VbMTQxXT0xODA7ZVsxNDJdPTE2ODtlWzE0M109ODgwMDtlWzE0NF09MTk4O2VbMTQ1XT0yMTY7ZVsxNDZdPTg3MzQ7ZVsxNDddPTE3NztlWzE0OF09ODgwNDtlWzE0OV09ODgwNTtlWzE1MF09MTY1O2VbMTUxXT0xODE7ZVsxNTJdPTg3MDY7ZVsxNTNdPTg3MjE7ZVsxNTRdPTg3MTk7ZVsxNTZdPTg3NDc7ZVsxNTddPTE3MDtlWzE1OF09MTg2O2VbMTU5XT04NDg2O2VbMTYwXT0yMzA7ZVsxNjFdPTI0ODtlWzE2Ml09MTkxO2VbMTYzXT0xNjE7ZVsxNjRdPTE3MjtlWzE2NV09ODczMDtlWzE2Nl09NDAyO2VbMTY3XT04Nzc2O2VbMTY4XT04NzEwO2VbMTY5XT0xNzE7ZVsxNzBdPTE4NztlWzE3MV09ODIzMDtlWzE3OV09ODIyMDtlWzE4MF09ODIyMTtlWzE4MV09ODIxNjtlWzE4Ml09ODIxNztlWzIwMF09MTkzO2VbMjAzXT0yMDU7ZVsyMDddPTIxMTtlWzIxMF09MjE4O2VbMjIzXT03MTE7ZVsyMjRdPTMyMTtlWzIyNV09MzIyO2VbMjI2XT0zNTI7ZVsyMjddPTM1MztlWzIyOF09MzgxO2VbMjI5XT0zODI7ZVsyMzNdPTIyMTtlWzIzNF09MjUzO2VbMjUyXT0yNjM7ZVsyNTNdPTI2ODtlWzI1NF09MjY5O2VbMjU4XT0yNTg7ZVsyNjBdPTI2MDtlWzI2MV09MjYxO2VbMjY1XT0yODA7ZVsyNjZdPTI4MTtlWzI2N109MjgyO2VbMjY4XT0yODM7ZVsyNjldPTMxMztlWzI3NV09MzIzO2VbMjc2XT0zMjQ7ZVsyNzhdPTMyODtlWzI4M109MzQ0O2VbMjg0XT0zNDU7ZVsyODVdPTM0NjtlWzI4Nl09MzQ3O2VbMjkyXT0zNjc7ZVsyOTVdPTM3NztlWzI5Nl09Mzc4O2VbMjk4XT0zODA7ZVszMDVdPTk2MztlWzMwNl09OTY0O2VbMzA3XT05NjY7ZVszMDhdPTgyMTU7ZVszMDldPTgyNTI7ZVszMTBdPTgzMTk7ZVszMTFdPTgzNTk7ZVszMTJdPTg1OTI7ZVszMTNdPTg1OTM7ZVszMzddPTk1NTI7ZVs0OTNdPTEwMzk7ZVs0OTRdPTEwNDA7ZVs1NzBdPTEwNDA7ZVs1NzFdPTEwNDE7ZVs1NzJdPTEwNDI7ZVs1NzNdPTEwNDM7ZVs1NzRdPTEwNDQ7ZVs1NzVdPTEwNDU7ZVs1NzZdPTEwNDY7ZVs1NzddPTEwNDc7ZVs1NzhdPTEwNDg7ZVs1NzldPTEwNDk7ZVs1ODBdPTEwNTA7ZVs1ODFdPTEwNTE7ZVs1ODJdPTEwNTI7ZVs1ODNdPTEwNTM7ZVs1ODRdPTEwNTQ7ZVs1ODVdPTEwNTU7ZVs1ODZdPTEwNTY7ZVs1ODddPTEwNTc7ZVs1ODhdPTEwNTg7ZVs1ODldPTEwNTk7ZVs1OTBdPTEwNjA7ZVs1OTFdPTEwNjE7ZVs1OTJdPTEwNjI7ZVs1OTNdPTEwNjM7ZVs1OTRdPTEwNjQ7ZVs1OTVdPTEwNjU7ZVs1OTZdPTEwNjY7ZVs1OTddPTEwNjc7ZVs1OThdPTEwNjg7ZVs1OTldPTEwNjk7ZVs2MDBdPTEwNzA7ZVs2MDFdPTEwNzE7ZVs2MDJdPTEwNzI7ZVs2MDNdPTEwNzM7ZVs2MDRdPTEwNzQ7ZVs2MDVdPTEwNzU7ZVs2MDZdPTEwNzY7ZVs2MDddPTEwNzc7ZVs2MDhdPTEwNzg7ZVs2MDldPTEwNzk7ZVs2MTBdPTEwODA7ZVs2MTFdPTEwODE7ZVs2MTJdPTEwODI7ZVs2MTNdPTEwODM7ZVs2MTRdPTEwODQ7ZVs2MTVdPTEwODU7ZVs2MTZdPTEwODY7ZVs2MTddPTEwODc7ZVs2MThdPTEwODg7ZVs2MTldPTEwODk7ZVs2MjBdPTEwOTA7ZVs2MjFdPTEwOTE7ZVs2MjJdPTEwOTI7ZVs2MjNdPTEwOTM7ZVs2MjRdPTEwOTQ7ZVs2MjVdPTEwOTU7ZVs2MjZdPTEwOTY7ZVs2MjddPTEwOTc7ZVs2MjhdPTEwOTg7ZVs2MjldPTEwOTk7ZVs2MzBdPTExMDA7ZVs2MzFdPTExMDE7ZVs2MzJdPTExMDI7ZVs2MzNdPTExMDM7ZVs2NzJdPTE0ODg7ZVs2NzNdPTE0ODk7ZVs2NzRdPTE0OTA7ZVs2NzVdPTE0OTE7ZVs2NzZdPTE0OTI7ZVs2NzddPTE0OTM7ZVs2NzhdPTE0OTQ7ZVs2NzldPTE0OTU7ZVs2ODBdPTE0OTY7ZVs2ODFdPTE0OTc7ZVs2ODJdPTE0OTg7ZVs2ODNdPTE0OTk7ZVs2ODRdPTE1MDA7ZVs2ODVdPTE1MDE7ZVs2ODZdPTE1MDI7ZVs2ODddPTE1MDM7ZVs2ODhdPTE1MDQ7ZVs2ODldPTE1MDU7ZVs2OTBdPTE1MDY7ZVs2OTFdPTE1MDc7ZVs2OTJdPTE1MDg7ZVs2OTNdPTE1MDk7ZVs2OTRdPTE1MTA7ZVs2OTVdPTE1MTE7ZVs2OTZdPTE1MTI7ZVs2OTddPTE1MTM7ZVs2OThdPTE1MTQ7ZVs3MDVdPTE1MjQ7ZVs3MDZdPTgzNjI7ZVs3MTBdPTY0Mjg4O2VbNzExXT02NDI5ODtlWzc1OV09MTYxNztlWzc2MV09MTc3NjtlWzc2M109MTc3ODtlWzc3NV09MTY1MjtlWzc3N109MTc2NDtlWzc3OF09MTc4MDtlWzc3OV09MTc4MTtlWzc4MF09MTc4MjtlWzc4Ml09NzcxO2VbNzgzXT02NDcyNjtlWzc4Nl09ODM2MztlWzc4OF09ODUzMjtlWzc5MF09NzY4O2VbNzkxXT03Njk7ZVs3OTJdPTc2ODtlWzc5NV09ODAzO2VbNzk3XT02NDMzNjtlWzc5OF09NjQzMzc7ZVs3OTldPTY0MzQyO2VbODAwXT02NDM0MztlWzgwMV09NjQzNDQ7ZVs4MDJdPTY0MzQ1O2VbODAzXT02NDM2MjtlWzgwNF09NjQzNjM7ZVs4MDVdPTY0MzY0O2VbMjQyNF09NzgyMTtlWzI0MjVdPTc4MjI7ZVsyNDI2XT03ODIzO2VbMjQyN109NzgyNDtlWzI0MjhdPTc4MjU7ZVsyNDI5XT03ODI2O2VbMjQzMF09NzgyNztlWzI0MzNdPTc2ODI7ZVsyNjc4XT04MDQ1O2VbMjY3OV09ODA0NjtlWzI4MzBdPTE1NTI7ZVsyODM4XT02ODY7ZVsyODQwXT03NTE7ZVsyODQyXT03NTM7ZVsyODQzXT03NTQ7ZVsyODQ0XT03NTU7ZVsyODQ2XT03NTc7ZVsyODU2XT03Njc7ZVsyODU3XT04NDg7ZVsyODU4XT04NDk7ZVsyODYyXT04NTM7ZVsyODYzXT04NTQ7ZVsyODY0XT04NTU7ZVsyODY1XT04NjE7ZVsyODY2XT04NjI7ZVsyOTA2XT03NDYwO2VbMjkwOF09NzQ2MjtlWzI5MDldPTc0NjM7ZVsyOTEwXT03NDY0O2VbMjkxMl09NzQ2NjtlWzI5MTNdPTc0Njc7ZVsyOTE0XT03NDY4O2VbMjkxNl09NzQ3MDtlWzI5MTddPTc0NzE7ZVsyOTE4XT03NDcyO2VbMjkyMF09NzQ3NDtlWzI5MjFdPTc0NzU7ZVsyOTIyXT03NDc2O2VbMjkyNF09NzQ3ODtlWzI5MjVdPTc0Nzk7ZVsyOTI2XT03NDgwO2VbMjkyOF09NzQ4MjtlWzI5MjldPTc0ODM7ZVsyOTMwXT03NDg0O2VbMjkzMl09NzQ4NjtlWzI5MzNdPTc0ODc7ZVsyOTM0XT03NDg4O2VbMjkzNl09NzQ5MDtlWzI5MzddPTc0OTE7ZVsyOTM4XT03NDkyO2VbMjk0MF09NzQ5NDtlWzI5NDFdPTc0OTU7ZVsyOTQyXT03NDk2O2VbMjk0NF09NzQ5ODtlWzI5NDZdPTc1MDA7ZVsyOTQ4XT03NTAyO2VbMjk1MF09NzUwNDtlWzI5NTFdPTc1MDU7ZVsyOTUyXT03NTA2O2VbMjk1NF09NzUwODtlWzI5NTVdPTc1MDk7ZVsyOTU2XT03NTEwO2VbMjk1OF09NzUxMjtlWzI5NTldPTc1MTM7ZVsyOTYwXT03NTE0O2VbMjk2Ml09NzUxNjtlWzI5NjNdPTc1MTc7ZVsyOTY0XT03NTE4O2VbMjk2Nl09NzUyMDtlWzI5NjddPTc1MjE7ZVsyOTY4XT03NTIyO2VbMjk3MF09NzUyNDtlWzI5NzFdPTc1MjU7ZVsyOTcyXT03NTI2O2VbMjk3NF09NzUyODtlWzI5NzVdPTc1Mjk7ZVsyOTc2XT03NTMwO2VbMjk3OF09MTUzNztlWzI5NzldPTE1Mzg7ZVsyOTgwXT0xNTM5O2VbMjk4Ml09MTU0OTtlWzI5ODNdPTE1NTE7ZVsyOTg0XT0xNTUyO2VbMjk4Nl09MTU1NDtlWzI5ODddPTE1NTU7ZVsyOTg4XT0xNTU2O2VbMjk5MF09MTYyMztlWzI5OTFdPTE2MjQ7ZVsyOTk1XT0xNzc1O2VbMjk5OV09MTc5MTtlWzMwMDJdPTY0MjkwO2VbMzAwM109NjQyOTE7ZVszMDA0XT02NDI5MjtlWzMwMDZdPTY0Mjk0O2VbMzAwN109NjQyOTU7ZVszMDA4XT02NDI5NjtlWzMwMTFdPTE5MDA7ZVszMDE0XT04MjIzO2VbMzAxNV09ODI0NDtlWzMwMTddPTc1MzI7ZVszMDE4XT03NTMzO2VbMzAxOV09NzUzNDtlWzMwNzVdPTc1OTA7ZVszMDc2XT03NTkxO2VbMzA3OV09NzU5NDtlWzMwODBdPTc1OTU7ZVszMDgzXT03NTk4O2VbMzA4NF09NzU5OTtlWzMwODddPTc2MDI7ZVszMDg4XT03NjAzO2VbMzA5MV09NzYwNjtlWzMwOTJdPTc2MDc7ZVszMDk1XT03NjEwO2VbMzA5Nl09NzYxMTtlWzMwOTldPTc2MTQ7ZVszMTAwXT03NjE1O2VbMzEwM109NzYxODtlWzMxMDRdPTc2MTk7ZVszMTA3XT04MzM3O2VbMzEwOF09ODMzODtlWzMxMTZdPTE4ODQ7ZVszMTE5XT0xODg1O2VbMzEyMF09MTg4NTtlWzMxMjNdPTE4ODY7ZVszMTI0XT0xODg2O2VbMzEyN109MTg4NztlWzMxMjhdPTE4ODc7ZVszMTMxXT0xODg4O2VbMzEzMl09MTg4ODtlWzMxMzVdPTE4ODk7ZVszMTM2XT0xODg5O2VbMzEzOV09MTg5MDtlWzMxNDBdPTE4OTA7ZVszMTQzXT0xODkxO2VbMzE0NF09MTg5MTtlWzMxNDddPTE4OTI7ZVszMTQ4XT0xODkyO2VbMzE1M109NTgwO2VbMzE1NF09NTgxO2VbMzE1N109NTg0O2VbMzE1OF09NTg1O2VbMzE2MV09NTg4O2VbMzE2Ml09NTg5O2VbMzE2NV09ODkxO2VbMzE2Nl09ODkyO2VbMzE2OV09MTI3NDtlWzMxNzBdPTEyNzU7ZVszMTczXT0xMjc4O2VbMzE3NF09MTI3OTtlWzMxODFdPTc2MjI7ZVszMTgyXT03NjIzO2VbMzI4Ml09MTE3OTk7ZVszMzE2XT01Nzg7ZVszMzc5XT00Mjc4NTtlWzMzOTNdPTExNTk7ZVszNDE2XT04Mzc3fSksJGE9Z2V0TG9va3VwVGFibGVGYWN0b3J5KGZ1bmN0aW9uKGUpe2VbMjI3XT0zMjI7ZVsyNjRdPTI2MTtlWzI5MV09MzQ2fSksWWE9Z2V0TG9va3VwVGFibGVGYWN0b3J5KGZ1bmN0aW9uKGUpe2VbMV09MzI7ZVs0XT02NTtlWzVdPTE5MjtlWzZdPTE5MztlWzldPTE5NjtlWzE3XT02NjtlWzE4XT02NztlWzIxXT0yNjg7ZVsyNF09Njg7ZVsyOF09Njk7ZVsyOV09MjAwO2VbMzBdPTIwMTtlWzMyXT0yODI7ZVszOF09NzA7ZVszOV09NzE7ZVs0NF09NzI7ZVs0N109NzM7ZVs0OF09MjA0O2VbNDldPTIwNTtlWzU4XT03NDtlWzYwXT03NTtlWzYyXT03NjtlWzY4XT03NztlWzY5XT03ODtlWzc1XT03OTtlWzc2XT0yMTA7ZVs4MF09MjE0O2VbODddPTgwO2VbODldPTgxO2VbOTBdPTgyO2VbOTJdPTM0NDtlWzk0XT04MztlWzk3XT0zNTI7ZVsxMDBdPTg0O2VbMTA0XT04NTtlWzEwOV09MjIwO2VbMTE1XT04NjtlWzExNl09ODc7ZVsxMjFdPTg4O2VbMTIyXT04OTtlWzEyNF09MjIxO2VbMTI3XT05MDtlWzEyOV09MzgxO2VbMjU4XT05NztlWzI1OV09MjI0O2VbMjYwXT0yMjU7ZVsyNjNdPTIyODtlWzI2OF09MjYxO2VbMjcxXT05ODtlWzI3Ml09OTk7ZVsyNzNdPTI2MztlWzI3NV09MjY5O2VbMjgyXT0xMDA7ZVsyODZdPTEwMTtlWzI4N109MjMyO2VbMjg4XT0yMzM7ZVsyOTBdPTI4MztlWzI5NV09MjgxO2VbMjk2XT0xMDI7ZVszMzZdPTEwMztlWzM0Nl09MTA0O2VbMzQ5XT0xMDU7ZVszNTBdPTIzNjtlWzM1MV09MjM3O2VbMzYxXT0xMDY7ZVszNjRdPTEwNztlWzM2N109MTA4O2VbMzcxXT0zMjI7ZVszNzNdPTEwOTtlWzM3NF09MTEwO2VbMzgxXT0xMTE7ZVszODJdPTI0MjtlWzM4M109MjQzO2VbMzg2XT0yNDY7ZVszOTNdPTExMjtlWzM5NV09MTEzO2VbMzk2XT0xMTQ7ZVszOThdPTM0NTtlWzQwMF09MTE1O2VbNDAxXT0zNDc7ZVs0MDNdPTM1MztlWzQxMF09MTE2O2VbNDM3XT0xMTc7ZVs0NDJdPTI1MjtlWzQ0OF09MTE4O2VbNDQ5XT0xMTk7ZVs0NTRdPTEyMDtlWzQ1NV09MTIxO2VbNDU3XT0yNTM7ZVs0NjBdPTEyMjtlWzQ2Ml09MzgyO2VbNDYzXT0zODA7ZVs4NTNdPTQ0O2VbODU1XT01ODtlWzg1Nl09NDY7ZVs4NzZdPTQ3O2VbODc4XT00NTtlWzg4Ml09NDU7ZVs4OTRdPTQwO2VbODk1XT00MTtlWzg5Nl09OTE7ZVs4OTddPTkzO2VbOTIzXT02NDtlWzk0MF09MTYzO2VbMTAwNF09NDg7ZVsxMDA1XT00OTtlWzEwMDZdPTUwO2VbMTAwN109NTE7ZVsxMDA4XT01MjtlWzEwMDldPTUzO2VbMTAxMF09NTQ7ZVsxMDExXT01NTtlWzEwMTJdPTU2O2VbMTAxM109NTc7ZVsxMDgxXT0zNztlWzEwODVdPTQzO2VbMTA4Nl09NDV9KTtmdW5jdGlvbiBnZXRTdGFuZGFyZEZvbnROYW1lKGUpe2NvbnN0IHQ9bm9ybWFsaXplRm9udE5hbWUoZSk7cmV0dXJuIFVhKClbdF19ZnVuY3Rpb24gaXNLbm93bkZvbnROYW1lKGUpe2NvbnN0IHQ9bm9ybWFsaXplRm9udE5hbWUoZSk7cmV0dXJuISEoVWEoKVt0XXx8V2EoKVt0XXx8S2EoKVt0XXx8VmEoKVt0XSl9Y2xhc3MgVG9Vbmljb2RlTWFwe2NvbnN0cnVjdG9yKGU9W10pe3RoaXMuX21hcD1lfWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5fbWFwLmxlbmd0aH1mb3JFYWNoKGUpe2Zvcihjb25zdCB0IGluIHRoaXMuX21hcCllKHQsdGhpcy5fbWFwW3RdLmNvZGVQb2ludEF0KDApKX1oYXMoZSl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX21hcFtlXX1nZXQoZSl7cmV0dXJuIHRoaXMuX21hcFtlXX1jaGFyQ29kZU9mKGUpe2NvbnN0IHQ9dGhpcy5fbWFwO2lmKHQubGVuZ3RoPD02NTUzNilyZXR1cm4gdC5pbmRleE9mKGUpO2Zvcihjb25zdCBuIGluIHQpaWYodFtuXT09PWUpcmV0dXJuIDB8bjtyZXR1cm4tMX1hbWVuZChlKXtmb3IoY29uc3QgdCBpbiBlKXRoaXMuX21hcFt0XT1lW3RdfX1jbGFzcyBJZGVudGl0eVRvVW5pY29kZU1hcHtjb25zdHJ1Y3RvcihlLHQpe3RoaXMuZmlyc3RDaGFyPWU7dGhpcy5sYXN0Q2hhcj10fWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5sYXN0Q2hhcisxLXRoaXMuZmlyc3RDaGFyfWZvckVhY2goZSl7Zm9yKGxldCB0PXRoaXMuZmlyc3RDaGFyLG49dGhpcy5sYXN0Q2hhcjt0PD1uO3QrKyllKHQsdCl9aGFzKGUpe3JldHVybiB0aGlzLmZpcnN0Q2hhcjw9ZSYmZTw9dGhpcy5sYXN0Q2hhcn1nZXQoZSl7aWYodGhpcy5maXJzdENoYXI8PWUmJmU8PXRoaXMubGFzdENoYXIpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoZSl9Y2hhckNvZGVPZihlKXtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihlKSYmZT49dGhpcy5maXJzdENoYXImJmU8PXRoaXMubGFzdENoYXI/ZTotMX1hbWVuZChlKXt1bnJlYWNoYWJsZSgiU2hvdWxkIG5vdCBjYWxsIGFtZW5kKCkiKX19Y2xhc3MgQ0ZGRm9udHtjb25zdHJ1Y3RvcihlLHQpe3RoaXMucHJvcGVydGllcz10O2NvbnN0IG49bmV3IENGRlBhcnNlcihlLHQsQWEpO3RoaXMuY2ZmPW4ucGFyc2UoKTt0aGlzLmNmZi5kdXBsaWNhdGVGaXJzdEdseXBoKCk7Y29uc3QgYT1uZXcgQ0ZGQ29tcGlsZXIodGhpcy5jZmYpO3RoaXMuc2VhY3M9dGhpcy5jZmYuc2VhY3M7dHJ5e3RoaXMuZGF0YT1hLmNvbXBpbGUoKX1jYXRjaHt3YXJuKCJGYWlsZWQgdG8gY29tcGlsZSBmb250ICIrdC5sb2FkZWROYW1lKTt0aGlzLmRhdGE9ZX10aGlzLl9jcmVhdGVCdWlsdEluRW5jb2RpbmcoKX1nZXQgbnVtR2x5cGhzKCl7cmV0dXJuIHRoaXMuY2ZmLmNoYXJTdHJpbmdzLmNvdW50fWdldENoYXJzZXQoKXtyZXR1cm4gdGhpcy5jZmYuY2hhcnNldC5jaGFyc2V0fWdldEdseXBoTWFwcGluZygpe2NvbnN0IGU9dGhpcy5jZmYsdD10aGlzLnByb3BlcnRpZXMse2NpZFRvR2lkTWFwOm4sY01hcDphfT10LHI9ZS5jaGFyc2V0LmNoYXJzZXQ7bGV0IHMsaTtpZih0LmNvbXBvc2l0ZSl7bGV0IHQsbztpZihuPy5sZW5ndGg+MCl7dD1PYmplY3QuY3JlYXRlKG51bGwpO2ZvcihsZXQgZT0wLGE9bi5sZW5ndGg7ZTxhO2UrKyl7Y29uc3QgYT1uW2VdO3ZvaWQgMCE9PWEmJih0W2FdPWUpfX1zPU9iamVjdC5jcmVhdGUobnVsbCk7aWYoZS5pc0NJREZvbnQpZm9yKGk9MDtpPHIubGVuZ3RoO2krKyl7Y29uc3QgZT1yW2ldO289YS5jaGFyQ29kZU9mKGUpO3ZvaWQgMCE9PXQ/LltvXSYmKG89dFtvXSk7c1tvXT1pfWVsc2UgZm9yKGk9MDtpPGUuY2hhclN0cmluZ3MuY291bnQ7aSsrKXtvPWEuY2hhckNvZGVPZihpKTtzW29dPWl9cmV0dXJuIHN9bGV0IG89ZS5lbmNvZGluZz9lLmVuY29kaW5nLmVuY29kaW5nOm51bGw7dC5pc0ludGVybmFsRm9udCYmKG89dC5kZWZhdWx0RW5jb2RpbmcpO3M9dHlwZTFGb250R2x5cGhNYXBwaW5nKHQsbyxyKTtyZXR1cm4gc31oYXNHbHlwaElkKGUpe3JldHVybiB0aGlzLmNmZi5oYXNHbHlwaElkKGUpfV9jcmVhdGVCdWlsdEluRW5jb2RpbmcoKXtjb25zdHtjaGFyc2V0OmUsZW5jb2Rpbmc6dH09dGhpcy5jZmY7aWYoIWV8fCF0KXJldHVybjtjb25zdCBuPWUuY2hhcnNldCxhPXQuZW5jb2Rpbmcscj1bXTtmb3IoY29uc3QgZSBpbiBhKXtjb25zdCB0PWFbZV07aWYodD49MCl7Y29uc3QgYT1uW3RdO2EmJihyW2VdPWEpfX1yLmxlbmd0aD4wJiYodGhpcy5wcm9wZXJ0aWVzLmJ1aWx0SW5FbmNvZGluZz1yKX19ZnVuY3Rpb24gZ2V0RmxvYXQyMTQoZSx0KXtyZXR1cm4gcmVhZEludDE2KGUsdCkvMTYzODR9ZnVuY3Rpb24gZ2V0U3Vicm91dGluZUJpYXMoZSl7Y29uc3QgdD1lLmxlbmd0aDtsZXQgbj0zMjc2ODt0PDEyNDA/bj0xMDc6dDwzMzkwMCYmKG49MTEzMSk7cmV0dXJuIG59ZnVuY3Rpb24gcGFyc2VDbWFwKGUsdCxuKXtjb25zdCBhPTE9PT1yZWFkVWludDE2KGUsdCsyKT9yZWFkVWludDMyKGUsdCs4KTpyZWFkVWludDMyKGUsdCsxNikscj1yZWFkVWludDE2KGUsdCthKTtsZXQgcyxpLG87aWYoND09PXIpe3JlYWRVaW50MTYoZSx0K2ErMik7Y29uc3Qgbj1yZWFkVWludDE2KGUsdCthKzYpPj4xO2k9dCthKzE0O3M9W107Zm9yKG89MDtvPG47bysrLGkrPTIpc1tvXT17ZW5kOnJlYWRVaW50MTYoZSxpKX07aSs9Mjtmb3Iobz0wO288bjtvKyssaSs9MilzW29dLnN0YXJ0PXJlYWRVaW50MTYoZSxpKTtmb3Iobz0wO288bjtvKyssaSs9MilzW29dLmlkRGVsdGE9cmVhZFVpbnQxNihlLGkpO2ZvcihvPTA7bzxuO28rKyxpKz0yKXtsZXQgdD1yZWFkVWludDE2KGUsaSk7aWYoMCE9PXQpe3Nbb10uaWRzPVtdO2ZvcihsZXQgbj0wLGE9c1tvXS5lbmQtc1tvXS5zdGFydCsxO248YTtuKyspe3Nbb10uaWRzW25dPXJlYWRVaW50MTYoZSxpK3QpO3QrPTJ9fX1yZXR1cm4gc31pZigxMj09PXIpe2NvbnN0IG49cmVhZFVpbnQzMihlLHQrYSsxMik7aT10K2ErMTY7cz1bXTtmb3Iobz0wO288bjtvKyspe3Q9cmVhZFVpbnQzMihlLGkpO3MucHVzaCh7c3RhcnQ6dCxlbmQ6cmVhZFVpbnQzMihlLGkrNCksaWREZWx0YTpyZWFkVWludDMyKGUsaSs4KS10fSk7aSs9MTJ9cmV0dXJuIHN9dGhyb3cgbmV3IEZvcm1hdEVycm9yKGB1bnN1cHBvcnRlZCBjbWFwOiAke3J9YCl9ZnVuY3Rpb24gcGFyc2VDZmYoZSx0LG4sYSl7Y29uc3Qgcj1uZXcgQ0ZGUGFyc2VyKG5ldyBTdHJlYW0oZSx0LG4tdCkse30sYSkucGFyc2UoKTtyZXR1cm57Z2x5cGhzOnIuY2hhclN0cmluZ3Mub2JqZWN0cyxzdWJyczpyLnRvcERpY3QucHJpdmF0ZURpY3Q/LnN1YnJzSW5kZXg/Lm9iamVjdHMsZ3N1YnJzOnIuZ2xvYmFsU3VickluZGV4Py5vYmplY3RzLGlzQ0ZGQ0lERm9udDpyLmlzQ0lERm9udCxmZFNlbGVjdDpyLmZkU2VsZWN0LGZkQXJyYXk6ci5mZEFycmF5fX1mdW5jdGlvbiBsb29rdXBDbWFwKGUsdCl7Y29uc3Qgbj10LmNvZGVQb2ludEF0KDApO2xldCBhPTAscj0wLHM9ZS5sZW5ndGgtMTtmb3IoO3I8czspe2NvbnN0IHQ9citzKzE+PjE7bjxlW3RdLnN0YXJ0P3M9dC0xOnI9dH1lW3JdLnN0YXJ0PD1uJiZuPD1lW3JdLmVuZCYmKGE9ZVtyXS5pZERlbHRhKyhlW3JdLmlkcz9lW3JdLmlkc1tuLWVbcl0uc3RhcnRdOm4pJjY1NTM1KTtyZXR1cm57Y2hhckNvZGU6bixnbHlwaElkOmF9fWZ1bmN0aW9uIGNvbXBpbGVHbHlmKGUsdCxuKXtmdW5jdGlvbiBtb3ZlVG8oZSxuKXtpJiZ0LmFkZChKdCxpKTtpPVtlLG5dO3QuYWRkKFl0LFtlLG5dKX1mdW5jdGlvbiBsaW5lVG8oZSxuKXt0LmFkZChKdCxbZSxuXSl9ZnVuY3Rpb24gcXVhZHJhdGljQ3VydmVUbyhlLG4sYSxyKXt0LmFkZChadCxbZSxuLGEscl0pfWxldCBhPTA7Y29uc3Qgcj1yZWFkSW50MTYoZSxhKTtsZXQgcyxpPW51bGwsbz0wLGw9MDthKz0xMDtpZihyPDApZG97cz1yZWFkVWludDE2KGUsYSk7Y29uc3Qgcj1yZWFkVWludDE2KGUsYSsyKTthKz00O2xldCBpLGY7aWYoMSZzKXtpZigyJnMpe2k9cmVhZEludDE2KGUsYSk7Zj1yZWFkSW50MTYoZSxhKzIpfWVsc2V7aT1yZWFkVWludDE2KGUsYSk7Zj1yZWFkVWludDE2KGUsYSsyKX1hKz00fWVsc2UgaWYoMiZzKXtpPXJlYWRJbnQ4KGUsYSsrKTtmPXJlYWRJbnQ4KGUsYSsrKX1lbHNle2k9ZVthKytdO2Y9ZVthKytdfWlmKDImcyl7bz1pO2w9Zn1lbHNle289MDtsPTB9bGV0IGM9MSxoPTEsdT0wLG09MDtpZig4JnMpe2M9aD1nZXRGbG9hdDIxNChlLGEpO2ErPTJ9ZWxzZSBpZig2NCZzKXtjPWdldEZsb2F0MjE0KGUsYSk7aD1nZXRGbG9hdDIxNChlLGErMik7YSs9NH1lbHNlIGlmKDEyOCZzKXtjPWdldEZsb2F0MjE0KGUsYSk7dT1nZXRGbG9hdDIxNChlLGErMik7bT1nZXRGbG9hdDIxNChlLGErNCk7aD1nZXRGbG9hdDIxNChlLGErNik7YSs9OH1jb25zdCBwPW4uZ2x5cGhzW3JdO2lmKHApe3Quc2F2ZSgpO3QudHJhbnNmb3JtKFtjLHUsbSxoLG8sbF0pO2NvbXBpbGVHbHlmKHAsdCxuKTt0LnJlc3RvcmUoKX19d2hpbGUoMzImcyk7ZWxzZXtjb25zdCB0PVtdO2xldCBuLGk7Zm9yKG49MDtuPHI7bisrKXt0LnB1c2gocmVhZFVpbnQxNihlLGEpKTthKz0yfWErPTIrcmVhZFVpbnQxNihlLGEpO2NvbnN0IGY9dC5hdCgtMSkrMSxjPVtdO2Zvcig7Yy5sZW5ndGg8Zjspe3M9ZVthKytdO2xldCB0PTE7OCZzJiYodCs9ZVthKytdKTtmb3IoO3QtLSA+MDspYy5wdXNoKHtmbGFnczpzfSl9Zm9yKG49MDtuPGY7bisrKXtzd2l0Y2goMTgmY1tuXS5mbGFncyl7Y2FzZSAwOm8rPXJlYWRJbnQxNihlLGEpO2ErPTI7YnJlYWs7Y2FzZSAyOm8tPWVbYSsrXTticmVhaztjYXNlIDE4Om8rPWVbYSsrXX1jW25dLng9b31mb3Iobj0wO248ZjtuKyspe3N3aXRjaCgzNiZjW25dLmZsYWdzKXtjYXNlIDA6bCs9cmVhZEludDE2KGUsYSk7YSs9MjticmVhaztjYXNlIDQ6bC09ZVthKytdO2JyZWFrO2Nhc2UgMzY6bCs9ZVthKytdfWNbbl0ueT1sfWxldCBoPTA7Zm9yKGE9MDthPHI7YSsrKXtjb25zdCBlPXRbYV0scj1jLnNsaWNlKGgsZSsxKTtpZigxJnJbMF0uZmxhZ3Mpci5wdXNoKHJbMF0pO2Vsc2UgaWYoMSZyLmF0KC0xKS5mbGFncylyLnVuc2hpZnQoci5hdCgtMSkpO2Vsc2V7Y29uc3QgZT17ZmxhZ3M6MSx4OihyWzBdLngrci5hdCgtMSkueCkvMix5OihyWzBdLnkrci5hdCgtMSkueSkvMn07ci51bnNoaWZ0KGUpO3IucHVzaChlKX1tb3ZlVG8oclswXS54LHJbMF0ueSk7Zm9yKG49MSxpPXIubGVuZ3RoO248aTtuKyspaWYoMSZyW25dLmZsYWdzKWxpbmVUbyhyW25dLngscltuXS55KTtlbHNlIGlmKDEmcltuKzFdLmZsYWdzKXtxdWFkcmF0aWNDdXJ2ZVRvKHJbbl0ueCxyW25dLnkscltuKzFdLngscltuKzFdLnkpO24rK31lbHNlIHF1YWRyYXRpY0N1cnZlVG8ocltuXS54LHJbbl0ueSwocltuXS54K3JbbisxXS54KS8yLChyW25dLnkrcltuKzFdLnkpLzIpO2g9ZSsxfX19ZnVuY3Rpb24gY29tcGlsZUNoYXJTdHJpbmcoZSx0LG4sYSl7ZnVuY3Rpb24gbW92ZVRvKGUsbil7bCYmdC5hZGQoSnQsbCk7bD1bZSxuXTt0LmFkZChZdCxbZSxuXSl9ZnVuY3Rpb24gbGluZVRvKGUsbil7dC5hZGQoSnQsW2Usbl0pfWZ1bmN0aW9uIGJlemllckN1cnZlVG8oZSxuLGEscixzLGkpe3QuYWRkKFF0LFtlLG4sYSxyLHMsaV0pfWNvbnN0IHI9W107bGV0IHM9MCxpPTAsbz0wLGw9bnVsbDshZnVuY3Rpb24gcGFyc2UoZSl7bGV0IGw9MDtmb3IoO2w8ZS5sZW5ndGg7KXtsZXQgZixjLGgsdSxtLHAsZCxnLGIsdz0hMSxqPWVbbCsrXTtzd2l0Y2goail7Y2FzZSAxOmNhc2UgMzpjYXNlIDE4OmNhc2UgMjM6bys9ci5sZW5ndGg+PjE7dz0hMDticmVhaztjYXNlIDQ6aSs9ci5wb3AoKTttb3ZlVG8ocyxpKTt3PSEwO2JyZWFrO2Nhc2UgNTpmb3IoO3IubGVuZ3RoPjA7KXtzKz1yLnNoaWZ0KCk7aSs9ci5zaGlmdCgpO2xpbmVUbyhzLGkpfWJyZWFrO2Nhc2UgNjpmb3IoO3IubGVuZ3RoPjA7KXtzKz1yLnNoaWZ0KCk7bGluZVRvKHMsaSk7aWYoMD09PXIubGVuZ3RoKWJyZWFrO2krPXIuc2hpZnQoKTtsaW5lVG8ocyxpKX1icmVhaztjYXNlIDc6Zm9yKDtyLmxlbmd0aD4wOyl7aSs9ci5zaGlmdCgpO2xpbmVUbyhzLGkpO2lmKDA9PT1yLmxlbmd0aClicmVhaztzKz1yLnNoaWZ0KCk7bGluZVRvKHMsaSl9YnJlYWs7Y2FzZSA4OmZvcig7ci5sZW5ndGg+MDspe2Y9cytyLnNoaWZ0KCk7aD1pK3Iuc2hpZnQoKTtjPWYrci5zaGlmdCgpO3U9aCtyLnNoaWZ0KCk7cz1jK3Iuc2hpZnQoKTtpPXUrci5zaGlmdCgpO2JlemllckN1cnZlVG8oZixoLGMsdSxzLGkpfWJyZWFrO2Nhc2UgMTA6Zz1yLnBvcCgpO2I9bnVsbDtpZihuLmlzQ0ZGQ0lERm9udCl7Y29uc3QgZT1uLmZkU2VsZWN0LmdldEZESW5kZXgoYSk7aWYoZT49MCYmZTxuLmZkQXJyYXkubGVuZ3RoKXtjb25zdCB0PW4uZmRBcnJheVtlXTtsZXQgYTt0LnByaXZhdGVEaWN0Py5zdWJyc0luZGV4JiYoYT10LnByaXZhdGVEaWN0LnN1YnJzSW5kZXgub2JqZWN0cyk7aWYoYSl7Zys9Z2V0U3Vicm91dGluZUJpYXMoYSk7Yj1hW2ddfX1lbHNlIHdhcm4oIkludmFsaWQgZmQgaW5kZXggZm9yIGdseXBoIGluZGV4LiIpfWVsc2UgYj1uLnN1YnJzW2crbi5zdWJyc0JpYXNdO2ImJnBhcnNlKGIpO2JyZWFrO2Nhc2UgMTE6cmV0dXJuO2Nhc2UgMTI6aj1lW2wrK107c3dpdGNoKGope2Nhc2UgMzQ6Zj1zK3Iuc2hpZnQoKTtjPWYrci5zaGlmdCgpO209aStyLnNoaWZ0KCk7cz1jK3Iuc2hpZnQoKTtiZXppZXJDdXJ2ZVRvKGYsaSxjLG0scyxtKTtmPXMrci5zaGlmdCgpO2M9ZityLnNoaWZ0KCk7cz1jK3Iuc2hpZnQoKTtiZXppZXJDdXJ2ZVRvKGYsbSxjLGkscyxpKTticmVhaztjYXNlIDM1OmY9cytyLnNoaWZ0KCk7aD1pK3Iuc2hpZnQoKTtjPWYrci5zaGlmdCgpO3U9aCtyLnNoaWZ0KCk7cz1jK3Iuc2hpZnQoKTtpPXUrci5zaGlmdCgpO2JlemllckN1cnZlVG8oZixoLGMsdSxzLGkpO2Y9cytyLnNoaWZ0KCk7aD1pK3Iuc2hpZnQoKTtjPWYrci5zaGlmdCgpO3U9aCtyLnNoaWZ0KCk7cz1jK3Iuc2hpZnQoKTtpPXUrci5zaGlmdCgpO2JlemllckN1cnZlVG8oZixoLGMsdSxzLGkpO3IucG9wKCk7YnJlYWs7Y2FzZSAzNjpmPXMrci5zaGlmdCgpO209aStyLnNoaWZ0KCk7Yz1mK3Iuc2hpZnQoKTtwPW0rci5zaGlmdCgpO3M9YytyLnNoaWZ0KCk7YmV6aWVyQ3VydmVUbyhmLG0sYyxwLHMscCk7Zj1zK3Iuc2hpZnQoKTtjPWYrci5zaGlmdCgpO2Q9cCtyLnNoaWZ0KCk7cz1jK3Iuc2hpZnQoKTtiZXppZXJDdXJ2ZVRvKGYscCxjLGQscyxpKTticmVhaztjYXNlIDM3OmNvbnN0IGU9cyx0PWk7Zj1zK3Iuc2hpZnQoKTtoPWkrci5zaGlmdCgpO2M9ZityLnNoaWZ0KCk7dT1oK3Iuc2hpZnQoKTtzPWMrci5zaGlmdCgpO2k9dStyLnNoaWZ0KCk7YmV6aWVyQ3VydmVUbyhmLGgsYyx1LHMsaSk7Zj1zK3Iuc2hpZnQoKTtoPWkrci5zaGlmdCgpO2M9ZityLnNoaWZ0KCk7dT1oK3Iuc2hpZnQoKTtzPWM7aT11O01hdGguYWJzKHMtZSk+TWF0aC5hYnMoaS10KT9zKz1yLnNoaWZ0KCk6aSs9ci5zaGlmdCgpO2JlemllckN1cnZlVG8oZixoLGMsdSxzLGkpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEZvcm1hdEVycm9yKGB1bmtub3duIG9wZXJhdG9yOiAxMiAke2p9YCl9YnJlYWs7Y2FzZSAxNDppZihyLmxlbmd0aD49NCl7Y29uc3QgZT1yLnBvcCgpLGE9ci5wb3AoKTtpPXIucG9wKCk7cz1yLnBvcCgpO3Quc2F2ZSgpO3QudHJhbnNsYXRlKHMsaSk7bGV0IG89bG9va3VwQ21hcChuLmNtYXAsU3RyaW5nLmZyb21DaGFyQ29kZShuLmdseXBoTmFtZU1hcFtnYVtlXV0pKTtjb21waWxlQ2hhclN0cmluZyhuLmdseXBoc1tvLmdseXBoSWRdLHQsbixvLmdseXBoSWQpO3QucmVzdG9yZSgpO289bG9va3VwQ21hcChuLmNtYXAsU3RyaW5nLmZyb21DaGFyQ29kZShuLmdseXBoTmFtZU1hcFtnYVthXV0pKTtjb21waWxlQ2hhclN0cmluZyhuLmdseXBoc1tvLmdseXBoSWRdLHQsbixvLmdseXBoSWQpfXJldHVybjtjYXNlIDE5OmNhc2UgMjA6bys9ci5sZW5ndGg+PjE7bCs9bys3Pj4zO3c9ITA7YnJlYWs7Y2FzZSAyMTppKz1yLnBvcCgpO3MrPXIucG9wKCk7bW92ZVRvKHMsaSk7dz0hMDticmVhaztjYXNlIDIyOnMrPXIucG9wKCk7bW92ZVRvKHMsaSk7dz0hMDticmVhaztjYXNlIDI0OmZvcig7ci5sZW5ndGg+Mjspe2Y9cytyLnNoaWZ0KCk7aD1pK3Iuc2hpZnQoKTtjPWYrci5zaGlmdCgpO3U9aCtyLnNoaWZ0KCk7cz1jK3Iuc2hpZnQoKTtpPXUrci5zaGlmdCgpO2JlemllckN1cnZlVG8oZixoLGMsdSxzLGkpfXMrPXIuc2hpZnQoKTtpKz1yLnNoaWZ0KCk7bGluZVRvKHMsaSk7YnJlYWs7Y2FzZSAyNTpmb3IoO3IubGVuZ3RoPjY7KXtzKz1yLnNoaWZ0KCk7aSs9ci5zaGlmdCgpO2xpbmVUbyhzLGkpfWY9cytyLnNoaWZ0KCk7aD1pK3Iuc2hpZnQoKTtjPWYrci5zaGlmdCgpO3U9aCtyLnNoaWZ0KCk7cz1jK3Iuc2hpZnQoKTtpPXUrci5zaGlmdCgpO2JlemllckN1cnZlVG8oZixoLGMsdSxzLGkpO2JyZWFrO2Nhc2UgMjY6ci5sZW5ndGglMiYmKHMrPXIuc2hpZnQoKSk7Zm9yKDtyLmxlbmd0aD4wOyl7Zj1zO2g9aStyLnNoaWZ0KCk7Yz1mK3Iuc2hpZnQoKTt1PWgrci5zaGlmdCgpO3M9YztpPXUrci5zaGlmdCgpO2JlemllckN1cnZlVG8oZixoLGMsdSxzLGkpfWJyZWFrO2Nhc2UgMjc6ci5sZW5ndGglMiYmKGkrPXIuc2hpZnQoKSk7Zm9yKDtyLmxlbmd0aD4wOyl7Zj1zK3Iuc2hpZnQoKTtoPWk7Yz1mK3Iuc2hpZnQoKTt1PWgrci5zaGlmdCgpO3M9YytyLnNoaWZ0KCk7aT11O2JlemllckN1cnZlVG8oZixoLGMsdSxzLGkpfWJyZWFrO2Nhc2UgMjg6ci5wdXNoKHJlYWRJbnQxNihlLGwpKTtsKz0yO2JyZWFrO2Nhc2UgMjk6Zz1yLnBvcCgpK24uZ3N1YnJzQmlhcztiPW4uZ3N1YnJzW2ddO2ImJnBhcnNlKGIpO2JyZWFrO2Nhc2UgMzA6Zm9yKDtyLmxlbmd0aD4wOyl7Zj1zO2g9aStyLnNoaWZ0KCk7Yz1mK3Iuc2hpZnQoKTt1PWgrci5zaGlmdCgpO3M9YytyLnNoaWZ0KCk7aT11KygxPT09ci5sZW5ndGg/ci5zaGlmdCgpOjApO2JlemllckN1cnZlVG8oZixoLGMsdSxzLGkpO2lmKDA9PT1yLmxlbmd0aClicmVhaztmPXMrci5zaGlmdCgpO2g9aTtjPWYrci5zaGlmdCgpO3U9aCtyLnNoaWZ0KCk7aT11K3Iuc2hpZnQoKTtzPWMrKDE9PT1yLmxlbmd0aD9yLnNoaWZ0KCk6MCk7YmV6aWVyQ3VydmVUbyhmLGgsYyx1LHMsaSl9YnJlYWs7Y2FzZSAzMTpmb3IoO3IubGVuZ3RoPjA7KXtmPXMrci5zaGlmdCgpO2g9aTtjPWYrci5zaGlmdCgpO3U9aCtyLnNoaWZ0KCk7aT11K3Iuc2hpZnQoKTtzPWMrKDE9PT1yLmxlbmd0aD9yLnNoaWZ0KCk6MCk7YmV6aWVyQ3VydmVUbyhmLGgsYyx1LHMsaSk7aWYoMD09PXIubGVuZ3RoKWJyZWFrO2Y9cztoPWkrci5zaGlmdCgpO2M9ZityLnNoaWZ0KCk7dT1oK3Iuc2hpZnQoKTtzPWMrci5zaGlmdCgpO2k9dSsoMT09PXIubGVuZ3RoP3Iuc2hpZnQoKTowKTtiZXppZXJDdXJ2ZVRvKGYsaCxjLHUscyxpKX1icmVhaztkZWZhdWx0OmlmKGo8MzIpdGhyb3cgbmV3IEZvcm1hdEVycm9yKGB1bmtub3duIG9wZXJhdG9yOiAke2p9YCk7aWYoajwyNDcpci5wdXNoKGotMTM5KTtlbHNlIGlmKGo8MjUxKXIucHVzaCgyNTYqKGotMjQ3KStlW2wrK10rMTA4KTtlbHNlIGlmKGo8MjU1KXIucHVzaCgyNTYqLShqLTI1MSktZVtsKytdLTEwOCk7ZWxzZXtyLnB1c2goKGVbbF08PDI0fGVbbCsxXTw8MTZ8ZVtsKzJdPDw4fGVbbCszXSkvNjU1MzYpO2wrPTR9fXcmJihyLmxlbmd0aD0wKX19KGUpfWNsYXNzIENvbW1hbmRze2NtZHM9W107dHJhbnNmb3JtU3RhY2s9W107Y3VycmVudFRyYW5zZm9ybT1bMSwwLDAsMSwwLDBdO2FkZChlLHQpe2lmKHQpe2NvbnN0e2N1cnJlbnRUcmFuc2Zvcm06bn09dGhpcztmb3IobGV0IGU9MCxhPXQubGVuZ3RoO2U8YTtlKz0yKVV0aWwuYXBwbHlUcmFuc2Zvcm0odCxuLGUpO3RoaXMuY21kcy5wdXNoKGUsLi4udCl9ZWxzZSB0aGlzLmNtZHMucHVzaChlKX10cmFuc2Zvcm0oZSl7dGhpcy5jdXJyZW50VHJhbnNmb3JtPVV0aWwudHJhbnNmb3JtKHRoaXMuY3VycmVudFRyYW5zZm9ybSxlKX10cmFuc2xhdGUoZSx0KXt0aGlzLnRyYW5zZm9ybShbMSwwLDAsMSxlLHRdKX1zYXZlKCl7dGhpcy50cmFuc2Zvcm1TdGFjay5wdXNoKHRoaXMuY3VycmVudFRyYW5zZm9ybS5zbGljZSgpKX1yZXN0b3JlKCl7dGhpcy5jdXJyZW50VHJhbnNmb3JtPXRoaXMudHJhbnNmb3JtU3RhY2sucG9wKCl8fFsxLDAsMCwxLDAsMF19Z2V0UGF0aCgpe3JldHVybiBuZXcoRmVhdHVyZVRlc3QuaXNGbG9hdDE2QXJyYXlTdXBwb3J0ZWQ/RmxvYXQxNkFycmF5OkZsb2F0MzJBcnJheSkodGhpcy5jbWRzKX19Y2xhc3MgQ29tcGlsZWRGb250e2NvbnN0cnVjdG9yKGUpe3RoaXMuZm9udE1hdHJpeD1lO3RoaXMuY29tcGlsZWRHbHlwaHM9T2JqZWN0LmNyZWF0ZShudWxsKTt0aGlzLmNvbXBpbGVkQ2hhckNvZGVUb0dseXBoSWQ9T2JqZWN0LmNyZWF0ZShudWxsKX1nZXRQYXRoSnMoZSl7Y29uc3R7Y2hhckNvZGU6dCxnbHlwaElkOm59PWxvb2t1cENtYXAodGhpcy5jbWFwLGUpO2xldCBhLHI9dGhpcy5jb21waWxlZEdseXBoc1tuXTtpZih2b2lkIDA9PT1yKXt0cnl7cj10aGlzLmNvbXBpbGVHbHlwaCh0aGlzLmdseXBoc1tuXSxuKX1jYXRjaChlKXtyPSIiO2E9ZX10aGlzLmNvbXBpbGVkR2x5cGhzW25dPXJ9dGhpcy5jb21waWxlZENoYXJDb2RlVG9HbHlwaElkW3RdPz89bjtpZihhKXRocm93IGE7cmV0dXJuIHJ9Y29tcGlsZUdseXBoKGUsdCl7aWYoIWU/Lmxlbmd0aHx8MTQ9PT1lWzBdKXJldHVybiIiO2xldCBuPXRoaXMuZm9udE1hdHJpeDtpZih0aGlzLmlzQ0ZGQ0lERm9udCl7Y29uc3QgZT10aGlzLmZkU2VsZWN0LmdldEZESW5kZXgodCk7aWYoZT49MCYmZTx0aGlzLmZkQXJyYXkubGVuZ3RoKXtuPXRoaXMuZmRBcnJheVtlXS5nZXRCeU5hbWUoIkZvbnRNYXRyaXgiKXx8YX1lbHNlIHdhcm4oIkludmFsaWQgZmQgaW5kZXggZm9yIGdseXBoIGluZGV4LiIpfWFzc2VydChpc051bWJlckFycmF5KG4sNiksIkV4cGVjdGVkIGEgdmFsaWQgZm9udE1hdHJpeC4iKTtjb25zdCByPW5ldyBDb21tYW5kcztyLnRyYW5zZm9ybShuLnNsaWNlKCkpO3RoaXMuY29tcGlsZUdseXBoSW1wbChlLHIsdCk7ci5hZGQoZW4pO3JldHVybiByLmdldFBhdGgoKX1jb21waWxlR2x5cGhJbXBsKCl7dW5yZWFjaGFibGUoIkNoaWxkcmVuIGNsYXNzZXMgc2hvdWxkIGltcGxlbWVudCB0aGlzLiIpfWhhc0J1aWx0UGF0aChlKXtjb25zdHtjaGFyQ29kZTp0LGdseXBoSWQ6bn09bG9va3VwQ21hcCh0aGlzLmNtYXAsZSk7cmV0dXJuIHZvaWQgMCE9PXRoaXMuY29tcGlsZWRHbHlwaHNbbl0mJnZvaWQgMCE9PXRoaXMuY29tcGlsZWRDaGFyQ29kZVRvR2x5cGhJZFt0XX19Y2xhc3MgVHJ1ZVR5cGVDb21waWxlZCBleHRlbmRzIENvbXBpbGVkRm9udHtjb25zdHJ1Y3RvcihlLHQsbil7c3VwZXIobnx8WzQ4OGUtNiwwLDAsNDg4ZS02LDAsMF0pO3RoaXMuZ2x5cGhzPWU7dGhpcy5jbWFwPXR9Y29tcGlsZUdseXBoSW1wbChlLHQpe2NvbXBpbGVHbHlmKGUsdCx0aGlzKX19Y2xhc3MgVHlwZTJDb21waWxlZCBleHRlbmRzIENvbXBpbGVkRm9udHtjb25zdHJ1Y3RvcihlLHQsbil7c3VwZXIobnx8Wy4wMDEsMCwwLC4wMDEsMCwwXSk7dGhpcy5nbHlwaHM9ZS5nbHlwaHM7dGhpcy5nc3VicnM9ZS5nc3VicnN8fFtdO3RoaXMuc3VicnM9ZS5zdWJyc3x8W107dGhpcy5jbWFwPXQ7dGhpcy5nbHlwaE5hbWVNYXA9a2EoKTt0aGlzLmdzdWJyc0JpYXM9Z2V0U3Vicm91dGluZUJpYXModGhpcy5nc3VicnMpO3RoaXMuc3VicnNCaWFzPWdldFN1YnJvdXRpbmVCaWFzKHRoaXMuc3VicnMpO3RoaXMuaXNDRkZDSURGb250PWUuaXNDRkZDSURGb250O3RoaXMuZmRTZWxlY3Q9ZS5mZFNlbGVjdDt0aGlzLmZkQXJyYXk9ZS5mZEFycmF5fWNvbXBpbGVHbHlwaEltcGwoZSx0LG4pe2NvbXBpbGVDaGFyU3RyaW5nKGUsdCx0aGlzLG4pfX1jbGFzcyBGb250UmVuZGVyZXJGYWN0b3J5e3N0YXRpYyBjcmVhdGUoZSx0KXtjb25zdCBuPW5ldyBVaW50OEFycmF5KGUuZGF0YSk7bGV0IGEscixzLGksbyxsO2NvbnN0IGY9cmVhZFVpbnQxNihuLDQpO2ZvcihsZXQgZT0wLGM9MTI7ZTxmO2UrKyxjKz0xNil7Y29uc3QgZT1ieXRlc1RvU3RyaW5nKG4uc3ViYXJyYXkoYyxjKzQpKSxmPXJlYWRVaW50MzIobixjKzgpLGg9cmVhZFVpbnQzMihuLGMrMTIpO3N3aXRjaChlKXtjYXNlImNtYXAiOmE9cGFyc2VDbWFwKG4sZik7YnJlYWs7Y2FzZSJnbHlmIjpyPW4uc3ViYXJyYXkoZixmK2gpO2JyZWFrO2Nhc2UibG9jYSI6cz1uLnN1YmFycmF5KGYsZitoKTticmVhaztjYXNlImhlYWQiOmw9cmVhZFVpbnQxNihuLGYrMTgpO289cmVhZFVpbnQxNihuLGYrNTApO2JyZWFrO2Nhc2UiQ0ZGICI6aT1wYXJzZUNmZihuLGYsZitoLHQpfX1pZihyKXtjb25zdCB0PWw/WzEvbCwwLDAsMS9sLDAsMF06ZS5mb250TWF0cml4O3JldHVybiBuZXcgVHJ1ZVR5cGVDb21waWxlZChmdW5jdGlvbiBwYXJzZUdseWZUYWJsZShlLHQsbil7bGV0IGEscjtpZihuKXthPTQ7cj1yZWFkVWludDMyfWVsc2V7YT0yO3I9KGUsdCk9PjIqcmVhZFVpbnQxNihlLHQpfWNvbnN0IHM9W107bGV0IGk9cih0LDApO2ZvcihsZXQgbj1hO248dC5sZW5ndGg7bis9YSl7Y29uc3QgYT1yKHQsbik7cy5wdXNoKGUuc3ViYXJyYXkoaSxhKSk7aT1hfXJldHVybiBzfShyLHMsbyksYSx0KX1yZXR1cm4gbmV3IFR5cGUyQ29tcGlsZWQoaSxhLGUuZm9udE1hdHJpeCl9fWNvbnN0IEphPWdldExvb2t1cFRhYmxlRmFjdG9yeShmdW5jdGlvbihlKXtlLkNvdXJpZXI9NjAwO2VbIkNvdXJpZXItQm9sZCJdPTYwMDtlWyJDb3VyaWVyLUJvbGRPYmxpcXVlIl09NjAwO2VbIkNvdXJpZXItT2JsaXF1ZSJdPTYwMDtlLkhlbHZldGljYT1nZXRMb29rdXBUYWJsZUZhY3RvcnkoZnVuY3Rpb24oZSl7ZS5zcGFjZT0yNzg7ZS5leGNsYW09Mjc4O2UucXVvdGVkYmw9MzU1O2UubnVtYmVyc2lnbj01NTY7ZS5kb2xsYXI9NTU2O2UucGVyY2VudD04ODk7ZS5hbXBlcnNhbmQ9NjY3O2UucXVvdGVyaWdodD0yMjI7ZS5wYXJlbmxlZnQ9MzMzO2UucGFyZW5yaWdodD0zMzM7ZS5hc3Rlcmlzaz0zODk7ZS5wbHVzPTU4NDtlLmNvbW1hPTI3ODtlLmh5cGhlbj0zMzM7ZS5wZXJpb2Q9Mjc4O2Uuc2xhc2g9Mjc4O2UuemVybz01NTY7ZS5vbmU9NTU2O2UudHdvPTU1NjtlLnRocmVlPTU1NjtlLmZvdXI9NTU2O2UuZml2ZT01NTY7ZS5zaXg9NTU2O2Uuc2V2ZW49NTU2O2UuZWlnaHQ9NTU2O2UubmluZT01NTY7ZS5jb2xvbj0yNzg7ZS5zZW1pY29sb249Mjc4O2UubGVzcz01ODQ7ZS5lcXVhbD01ODQ7ZS5ncmVhdGVyPTU4NDtlLnF1ZXN0aW9uPTU1NjtlLmF0PTEwMTU7ZS5BPTY2NztlLkI9NjY3O2UuQz03MjI7ZS5EPTcyMjtlLkU9NjY3O2UuRj02MTE7ZS5HPTc3ODtlLkg9NzIyO2UuST0yNzg7ZS5KPTUwMDtlLks9NjY3O2UuTD01NTY7ZS5NPTgzMztlLk49NzIyO2UuTz03Nzg7ZS5QPTY2NztlLlE9Nzc4O2UuUj03MjI7ZS5TPTY2NztlLlQ9NjExO2UuVT03MjI7ZS5WPTY2NztlLlc9OTQ0O2UuWD02Njc7ZS5ZPTY2NztlLlo9NjExO2UuYnJhY2tldGxlZnQ9Mjc4O2UuYmFja3NsYXNoPTI3ODtlLmJyYWNrZXRyaWdodD0yNzg7ZS5hc2NpaWNpcmN1bT00Njk7ZS51bmRlcnNjb3JlPTU1NjtlLnF1b3RlbGVmdD0yMjI7ZS5hPTU1NjtlLmI9NTU2O2UuYz01MDA7ZS5kPTU1NjtlLmU9NTU2O2UuZj0yNzg7ZS5nPTU1NjtlLmg9NTU2O2UuaT0yMjI7ZS5qPTIyMjtlLms9NTAwO2UubD0yMjI7ZS5tPTgzMztlLm49NTU2O2Uubz01NTY7ZS5wPTU1NjtlLnE9NTU2O2Uucj0zMzM7ZS5zPTUwMDtlLnQ9Mjc4O2UudT01NTY7ZS52PTUwMDtlLnc9NzIyO2UueD01MDA7ZS55PTUwMDtlLno9NTAwO2UuYnJhY2VsZWZ0PTMzNDtlLmJhcj0yNjA7ZS5icmFjZXJpZ2h0PTMzNDtlLmFzY2lpdGlsZGU9NTg0O2UuZXhjbGFtZG93bj0zMzM7ZS5jZW50PTU1NjtlLnN0ZXJsaW5nPTU1NjtlLmZyYWN0aW9uPTE2NztlLnllbj01NTY7ZS5mbG9yaW49NTU2O2Uuc2VjdGlvbj01NTY7ZS5jdXJyZW5jeT01NTY7ZS5xdW90ZXNpbmdsZT0xOTE7ZS5xdW90ZWRibGxlZnQ9MzMzO2UuZ3VpbGxlbW90bGVmdD01NTY7ZS5ndWlsc2luZ2xsZWZ0PTMzMztlLmd1aWxzaW5nbHJpZ2h0PTMzMztlLmZpPTUwMDtlLmZsPTUwMDtlLmVuZGFzaD01NTY7ZS5kYWdnZXI9NTU2O2UuZGFnZ2VyZGJsPTU1NjtlLnBlcmlvZGNlbnRlcmVkPTI3ODtlLnBhcmFncmFwaD01Mzc7ZS5idWxsZXQ9MzUwO2UucXVvdGVzaW5nbGJhc2U9MjIyO2UucXVvdGVkYmxiYXNlPTMzMztlLnF1b3RlZGJscmlnaHQ9MzMzO2UuZ3VpbGxlbW90cmlnaHQ9NTU2O2UuZWxsaXBzaXM9MWUzO2UucGVydGhvdXNhbmQ9MWUzO2UucXVlc3Rpb25kb3duPTYxMTtlLmdyYXZlPTMzMztlLmFjdXRlPTMzMztlLmNpcmN1bWZsZXg9MzMzO2UudGlsZGU9MzMzO2UubWFjcm9uPTMzMztlLmJyZXZlPTMzMztlLmRvdGFjY2VudD0zMzM7ZS5kaWVyZXNpcz0zMzM7ZS5yaW5nPTMzMztlLmNlZGlsbGE9MzMzO2UuaHVuZ2FydW1sYXV0PTMzMztlLm9nb25laz0zMzM7ZS5jYXJvbj0zMzM7ZS5lbWRhc2g9MWUzO2UuQUU9MWUzO2Uub3JkZmVtaW5pbmU9MzcwO2UuTHNsYXNoPTU1NjtlLk9zbGFzaD03Nzg7ZS5PRT0xZTM7ZS5vcmRtYXNjdWxpbmU9MzY1O2UuYWU9ODg5O2UuZG90bGVzc2k9Mjc4O2UubHNsYXNoPTIyMjtlLm9zbGFzaD02MTE7ZS5vZT05NDQ7ZS5nZXJtYW5kYmxzPTYxMTtlLklkaWVyZXNpcz0yNzg7ZS5lYWN1dGU9NTU2O2UuYWJyZXZlPTU1NjtlLnVodW5nYXJ1bWxhdXQ9NTU2O2UuZWNhcm9uPTU1NjtlLllkaWVyZXNpcz02Njc7ZS5kaXZpZGU9NTg0O2UuWWFjdXRlPTY2NztlLkFjaXJjdW1mbGV4PTY2NztlLmFhY3V0ZT01NTY7ZS5VY2lyY3VtZmxleD03MjI7ZS55YWN1dGU9NTAwO2Uuc2NvbW1hYWNjZW50PTUwMDtlLmVjaXJjdW1mbGV4PTU1NjtlLlVyaW5nPTcyMjtlLlVkaWVyZXNpcz03MjI7ZS5hb2dvbmVrPTU1NjtlLlVhY3V0ZT03MjI7ZS51b2dvbmVrPTU1NjtlLkVkaWVyZXNpcz02Njc7ZS5EY3JvYXQ9NzIyO2UuY29tbWFhY2NlbnQ9MjUwO2UuY29weXJpZ2h0PTczNztlLkVtYWNyb249NjY3O2UuY2Nhcm9uPTUwMDtlLmFyaW5nPTU1NjtlLk5jb21tYWFjY2VudD03MjI7ZS5sYWN1dGU9MjIyO2UuYWdyYXZlPTU1NjtlLlRjb21tYWFjY2VudD02MTE7ZS5DYWN1dGU9NzIyO2UuYXRpbGRlPTU1NjtlLkVkb3RhY2NlbnQ9NjY3O2Uuc2Nhcm9uPTUwMDtlLnNjZWRpbGxhPTUwMDtlLmlhY3V0ZT0yNzg7ZS5sb3plbmdlPTQ3MTtlLlJjYXJvbj03MjI7ZS5HY29tbWFhY2NlbnQ9Nzc4O2UudWNpcmN1bWZsZXg9NTU2O2UuYWNpcmN1bWZsZXg9NTU2O2UuQW1hY3Jvbj02Njc7ZS5yY2Fyb249MzMzO2UuY2NlZGlsbGE9NTAwO2UuWmRvdGFjY2VudD02MTE7ZS5UaG9ybj02Njc7ZS5PbWFjcm9uPTc3ODtlLlJhY3V0ZT03MjI7ZS5TYWN1dGU9NjY3O2UuZGNhcm9uPTY0MztlLlVtYWNyb249NzIyO2UudXJpbmc9NTU2O2UudGhyZWVzdXBlcmlvcj0zMzM7ZS5PZ3JhdmU9Nzc4O2UuQWdyYXZlPTY2NztlLkFicmV2ZT02Njc7ZS5tdWx0aXBseT01ODQ7ZS51YWN1dGU9NTU2O2UuVGNhcm9uPTYxMTtlLnBhcnRpYWxkaWZmPTQ3NjtlLnlkaWVyZXNpcz01MDA7ZS5OYWN1dGU9NzIyO2UuaWNpcmN1bWZsZXg9Mjc4O2UuRWNpcmN1bWZsZXg9NjY3O2UuYWRpZXJlc2lzPTU1NjtlLmVkaWVyZXNpcz01NTY7ZS5jYWN1dGU9NTAwO2UubmFjdXRlPTU1NjtlLnVtYWNyb249NTU2O2UuTmNhcm9uPTcyMjtlLklhY3V0ZT0yNzg7ZS5wbHVzbWludXM9NTg0O2UuYnJva2VuYmFyPTI2MDtlLnJlZ2lzdGVyZWQ9NzM3O2UuR2JyZXZlPTc3ODtlLklkb3RhY2NlbnQ9Mjc4O2Uuc3VtbWF0aW9uPTYwMDtlLkVncmF2ZT02Njc7ZS5yYWN1dGU9MzMzO2Uub21hY3Jvbj01NTY7ZS5aYWN1dGU9NjExO2UuWmNhcm9uPTYxMTtlLmdyZWF0ZXJlcXVhbD01NDk7ZS5FdGg9NzIyO2UuQ2NlZGlsbGE9NzIyO2UubGNvbW1hYWNjZW50PTIyMjtlLnRjYXJvbj0zMTc7ZS5lb2dvbmVrPTU1NjtlLlVvZ29uZWs9NzIyO2UuQWFjdXRlPTY2NztlLkFkaWVyZXNpcz02Njc7ZS5lZ3JhdmU9NTU2O2UuemFjdXRlPTUwMDtlLmlvZ29uZWs9MjIyO2UuT2FjdXRlPTc3ODtlLm9hY3V0ZT01NTY7ZS5hbWFjcm9uPTU1NjtlLnNhY3V0ZT01MDA7ZS5pZGllcmVzaXM9Mjc4O2UuT2NpcmN1bWZsZXg9Nzc4O2UuVWdyYXZlPTcyMjtlLkRlbHRhPTYxMjtlLnRob3JuPTU1NjtlLnR3b3N1cGVyaW9yPTMzMztlLk9kaWVyZXNpcz03Nzg7ZS5tdT01NTY7ZS5pZ3JhdmU9Mjc4O2Uub2h1bmdhcnVtbGF1dD01NTY7ZS5Fb2dvbmVrPTY2NztlLmRjcm9hdD01NTY7ZS50aHJlZXF1YXJ0ZXJzPTgzNDtlLlNjZWRpbGxhPTY2NztlLmxjYXJvbj0yOTk7ZS5LY29tbWFhY2NlbnQ9NjY3O2UuTGFjdXRlPTU1NjtlLnRyYWRlbWFyaz0xZTM7ZS5lZG90YWNjZW50PTU1NjtlLklncmF2ZT0yNzg7ZS5JbWFjcm9uPTI3ODtlLkxjYXJvbj01NTY7ZS5vbmVoYWxmPTgzNDtlLmxlc3NlcXVhbD01NDk7ZS5vY2lyY3VtZmxleD01NTY7ZS5udGlsZGU9NTU2O2UuVWh1bmdhcnVtbGF1dD03MjI7ZS5FYWN1dGU9NjY3O2UuZW1hY3Jvbj01NTY7ZS5nYnJldmU9NTU2O2Uub25lcXVhcnRlcj04MzQ7ZS5TY2Fyb249NjY3O2UuU2NvbW1hYWNjZW50PTY2NztlLk9odW5nYXJ1bWxhdXQ9Nzc4O2UuZGVncmVlPTQwMDtlLm9ncmF2ZT01NTY7ZS5DY2Fyb249NzIyO2UudWdyYXZlPTU1NjtlLnJhZGljYWw9NDUzO2UuRGNhcm9uPTcyMjtlLnJjb21tYWFjY2VudD0zMzM7ZS5OdGlsZGU9NzIyO2Uub3RpbGRlPTU1NjtlLlJjb21tYWFjY2VudD03MjI7ZS5MY29tbWFhY2NlbnQ9NTU2O2UuQXRpbGRlPTY2NztlLkFvZ29uZWs9NjY3O2UuQXJpbmc9NjY3O2UuT3RpbGRlPTc3ODtlLnpkb3RhY2NlbnQ9NTAwO2UuRWNhcm9uPTY2NztlLklvZ29uZWs9Mjc4O2Uua2NvbW1hYWNjZW50PTUwMDtlLm1pbnVzPTU4NDtlLkljaXJjdW1mbGV4PTI3ODtlLm5jYXJvbj01NTY7ZS50Y29tbWFhY2NlbnQ9Mjc4O2UubG9naWNhbG5vdD01ODQ7ZS5vZGllcmVzaXM9NTU2O2UudWRpZXJlc2lzPTU1NjtlLm5vdGVxdWFsPTU0OTtlLmdjb21tYWFjY2VudD01NTY7ZS5ldGg9NTU2O2UuemNhcm9uPTUwMDtlLm5jb21tYWFjY2VudD01NTY7ZS5vbmVzdXBlcmlvcj0zMzM7ZS5pbWFjcm9uPTI3ODtlLkV1cm89NTU2fSk7ZVsiSGVsdmV0aWNhLUJvbGQiXT1nZXRMb29rdXBUYWJsZUZhY3RvcnkoZnVuY3Rpb24oZSl7ZS5zcGFjZT0yNzg7ZS5leGNsYW09MzMzO2UucXVvdGVkYmw9NDc0O2UubnVtYmVyc2lnbj01NTY7ZS5kb2xsYXI9NTU2O2UucGVyY2VudD04ODk7ZS5hbXBlcnNhbmQ9NzIyO2UucXVvdGVyaWdodD0yNzg7ZS5wYXJlbmxlZnQ9MzMzO2UucGFyZW5yaWdodD0zMzM7ZS5hc3Rlcmlzaz0zODk7ZS5wbHVzPTU4NDtlLmNvbW1hPTI3ODtlLmh5cGhlbj0zMzM7ZS5wZXJpb2Q9Mjc4O2Uuc2xhc2g9Mjc4O2UuemVybz01NTY7ZS5vbmU9NTU2O2UudHdvPTU1NjtlLnRocmVlPTU1NjtlLmZvdXI9NTU2O2UuZml2ZT01NTY7ZS5zaXg9NTU2O2Uuc2V2ZW49NTU2O2UuZWlnaHQ9NTU2O2UubmluZT01NTY7ZS5jb2xvbj0zMzM7ZS5zZW1pY29sb249MzMzO2UubGVzcz01ODQ7ZS5lcXVhbD01ODQ7ZS5ncmVhdGVyPTU4NDtlLnF1ZXN0aW9uPTYxMTtlLmF0PTk3NTtlLkE9NzIyO2UuQj03MjI7ZS5DPTcyMjtlLkQ9NzIyO2UuRT02Njc7ZS5GPTYxMTtlLkc9Nzc4O2UuSD03MjI7ZS5JPTI3ODtlLko9NTU2O2UuSz03MjI7ZS5MPTYxMTtlLk09ODMzO2UuTj03MjI7ZS5PPTc3ODtlLlA9NjY3O2UuUT03Nzg7ZS5SPTcyMjtlLlM9NjY3O2UuVD02MTE7ZS5VPTcyMjtlLlY9NjY3O2UuVz05NDQ7ZS5YPTY2NztlLlk9NjY3O2UuWj02MTE7ZS5icmFja2V0bGVmdD0zMzM7ZS5iYWNrc2xhc2g9Mjc4O2UuYnJhY2tldHJpZ2h0PTMzMztlLmFzY2lpY2lyY3VtPTU4NDtlLnVuZGVyc2NvcmU9NTU2O2UucXVvdGVsZWZ0PTI3ODtlLmE9NTU2O2UuYj02MTE7ZS5jPTU1NjtlLmQ9NjExO2UuZT01NTY7ZS5mPTMzMztlLmc9NjExO2UuaD02MTE7ZS5pPTI3ODtlLmo9Mjc4O2Uuaz01NTY7ZS5sPTI3ODtlLm09ODg5O2Uubj02MTE7ZS5vPTYxMTtlLnA9NjExO2UucT02MTE7ZS5yPTM4OTtlLnM9NTU2O2UudD0zMzM7ZS51PTYxMTtlLnY9NTU2O2Uudz03Nzg7ZS54PTU1NjtlLnk9NTU2O2Uuej01MDA7ZS5icmFjZWxlZnQ9Mzg5O2UuYmFyPTI4MDtlLmJyYWNlcmlnaHQ9Mzg5O2UuYXNjaWl0aWxkZT01ODQ7ZS5leGNsYW1kb3duPTMzMztlLmNlbnQ9NTU2O2Uuc3Rlcmxpbmc9NTU2O2UuZnJhY3Rpb249MTY3O2UueWVuPTU1NjtlLmZsb3Jpbj01NTY7ZS5zZWN0aW9uPTU1NjtlLmN1cnJlbmN5PTU1NjtlLnF1b3Rlc2luZ2xlPTIzODtlLnF1b3RlZGJsbGVmdD01MDA7ZS5ndWlsbGVtb3RsZWZ0PTU1NjtlLmd1aWxzaW5nbGxlZnQ9MzMzO2UuZ3VpbHNpbmdscmlnaHQ9MzMzO2UuZmk9NjExO2UuZmw9NjExO2UuZW5kYXNoPTU1NjtlLmRhZ2dlcj01NTY7ZS5kYWdnZXJkYmw9NTU2O2UucGVyaW9kY2VudGVyZWQ9Mjc4O2UucGFyYWdyYXBoPTU1NjtlLmJ1bGxldD0zNTA7ZS5xdW90ZXNpbmdsYmFzZT0yNzg7ZS5xdW90ZWRibGJhc2U9NTAwO2UucXVvdGVkYmxyaWdodD01MDA7ZS5ndWlsbGVtb3RyaWdodD01NTY7ZS5lbGxpcHNpcz0xZTM7ZS5wZXJ0aG91c2FuZD0xZTM7ZS5xdWVzdGlvbmRvd249NjExO2UuZ3JhdmU9MzMzO2UuYWN1dGU9MzMzO2UuY2lyY3VtZmxleD0zMzM7ZS50aWxkZT0zMzM7ZS5tYWNyb249MzMzO2UuYnJldmU9MzMzO2UuZG90YWNjZW50PTMzMztlLmRpZXJlc2lzPTMzMztlLnJpbmc9MzMzO2UuY2VkaWxsYT0zMzM7ZS5odW5nYXJ1bWxhdXQ9MzMzO2Uub2dvbmVrPTMzMztlLmNhcm9uPTMzMztlLmVtZGFzaD0xZTM7ZS5BRT0xZTM7ZS5vcmRmZW1pbmluZT0zNzA7ZS5Mc2xhc2g9NjExO2UuT3NsYXNoPTc3ODtlLk9FPTFlMztlLm9yZG1hc2N1bGluZT0zNjU7ZS5hZT04ODk7ZS5kb3RsZXNzaT0yNzg7ZS5sc2xhc2g9Mjc4O2Uub3NsYXNoPTYxMTtlLm9lPTk0NDtlLmdlcm1hbmRibHM9NjExO2UuSWRpZXJlc2lzPTI3ODtlLmVhY3V0ZT01NTY7ZS5hYnJldmU9NTU2O2UudWh1bmdhcnVtbGF1dD02MTE7ZS5lY2Fyb249NTU2O2UuWWRpZXJlc2lzPTY2NztlLmRpdmlkZT01ODQ7ZS5ZYWN1dGU9NjY3O2UuQWNpcmN1bWZsZXg9NzIyO2UuYWFjdXRlPTU1NjtlLlVjaXJjdW1mbGV4PTcyMjtlLnlhY3V0ZT01NTY7ZS5zY29tbWFhY2NlbnQ9NTU2O2UuZWNpcmN1bWZsZXg9NTU2O2UuVXJpbmc9NzIyO2UuVWRpZXJlc2lzPTcyMjtlLmFvZ29uZWs9NTU2O2UuVWFjdXRlPTcyMjtlLnVvZ29uZWs9NjExO2UuRWRpZXJlc2lzPTY2NztlLkRjcm9hdD03MjI7ZS5jb21tYWFjY2VudD0yNTA7ZS5jb3B5cmlnaHQ9NzM3O2UuRW1hY3Jvbj02Njc7ZS5jY2Fyb249NTU2O2UuYXJpbmc9NTU2O2UuTmNvbW1hYWNjZW50PTcyMjtlLmxhY3V0ZT0yNzg7ZS5hZ3JhdmU9NTU2O2UuVGNvbW1hYWNjZW50PTYxMTtlLkNhY3V0ZT03MjI7ZS5hdGlsZGU9NTU2O2UuRWRvdGFjY2VudD02Njc7ZS5zY2Fyb249NTU2O2Uuc2NlZGlsbGE9NTU2O2UuaWFjdXRlPTI3ODtlLmxvemVuZ2U9NDk0O2UuUmNhcm9uPTcyMjtlLkdjb21tYWFjY2VudD03Nzg7ZS51Y2lyY3VtZmxleD02MTE7ZS5hY2lyY3VtZmxleD01NTY7ZS5BbWFjcm9uPTcyMjtlLnJjYXJvbj0zODk7ZS5jY2VkaWxsYT01NTY7ZS5aZG90YWNjZW50PTYxMTtlLlRob3JuPTY2NztlLk9tYWNyb249Nzc4O2UuUmFjdXRlPTcyMjtlLlNhY3V0ZT02Njc7ZS5kY2Fyb249NzQzO2UuVW1hY3Jvbj03MjI7ZS51cmluZz02MTE7ZS50aHJlZXN1cGVyaW9yPTMzMztlLk9ncmF2ZT03Nzg7ZS5BZ3JhdmU9NzIyO2UuQWJyZXZlPTcyMjtlLm11bHRpcGx5PTU4NDtlLnVhY3V0ZT02MTE7ZS5UY2Fyb249NjExO2UucGFydGlhbGRpZmY9NDk0O2UueWRpZXJlc2lzPTU1NjtlLk5hY3V0ZT03MjI7ZS5pY2lyY3VtZmxleD0yNzg7ZS5FY2lyY3VtZmxleD02Njc7ZS5hZGllcmVzaXM9NTU2O2UuZWRpZXJlc2lzPTU1NjtlLmNhY3V0ZT01NTY7ZS5uYWN1dGU9NjExO2UudW1hY3Jvbj02MTE7ZS5OY2Fyb249NzIyO2UuSWFjdXRlPTI3ODtlLnBsdXNtaW51cz01ODQ7ZS5icm9rZW5iYXI9MjgwO2UucmVnaXN0ZXJlZD03Mzc7ZS5HYnJldmU9Nzc4O2UuSWRvdGFjY2VudD0yNzg7ZS5zdW1tYXRpb249NjAwO2UuRWdyYXZlPTY2NztlLnJhY3V0ZT0zODk7ZS5vbWFjcm9uPTYxMTtlLlphY3V0ZT02MTE7ZS5aY2Fyb249NjExO2UuZ3JlYXRlcmVxdWFsPTU0OTtlLkV0aD03MjI7ZS5DY2VkaWxsYT03MjI7ZS5sY29tbWFhY2NlbnQ9Mjc4O2UudGNhcm9uPTM4OTtlLmVvZ29uZWs9NTU2O2UuVW9nb25laz03MjI7ZS5BYWN1dGU9NzIyO2UuQWRpZXJlc2lzPTcyMjtlLmVncmF2ZT01NTY7ZS56YWN1dGU9NTAwO2UuaW9nb25laz0yNzg7ZS5PYWN1dGU9Nzc4O2Uub2FjdXRlPTYxMTtlLmFtYWNyb249NTU2O2Uuc2FjdXRlPTU1NjtlLmlkaWVyZXNpcz0yNzg7ZS5PY2lyY3VtZmxleD03Nzg7ZS5VZ3JhdmU9NzIyO2UuRGVsdGE9NjEyO2UudGhvcm49NjExO2UudHdvc3VwZXJpb3I9MzMzO2UuT2RpZXJlc2lzPTc3ODtlLm11PTYxMTtlLmlncmF2ZT0yNzg7ZS5vaHVuZ2FydW1sYXV0PTYxMTtlLkVvZ29uZWs9NjY3O2UuZGNyb2F0PTYxMTtlLnRocmVlcXVhcnRlcnM9ODM0O2UuU2NlZGlsbGE9NjY3O2UubGNhcm9uPTQwMDtlLktjb21tYWFjY2VudD03MjI7ZS5MYWN1dGU9NjExO2UudHJhZGVtYXJrPTFlMztlLmVkb3RhY2NlbnQ9NTU2O2UuSWdyYXZlPTI3ODtlLkltYWNyb249Mjc4O2UuTGNhcm9uPTYxMTtlLm9uZWhhbGY9ODM0O2UubGVzc2VxdWFsPTU0OTtlLm9jaXJjdW1mbGV4PTYxMTtlLm50aWxkZT02MTE7ZS5VaHVuZ2FydW1sYXV0PTcyMjtlLkVhY3V0ZT02Njc7ZS5lbWFjcm9uPTU1NjtlLmdicmV2ZT02MTE7ZS5vbmVxdWFydGVyPTgzNDtlLlNjYXJvbj02Njc7ZS5TY29tbWFhY2NlbnQ9NjY3O2UuT2h1bmdhcnVtbGF1dD03Nzg7ZS5kZWdyZWU9NDAwO2Uub2dyYXZlPTYxMTtlLkNjYXJvbj03MjI7ZS51Z3JhdmU9NjExO2UucmFkaWNhbD01NDk7ZS5EY2Fyb249NzIyO2UucmNvbW1hYWNjZW50PTM4OTtlLk50aWxkZT03MjI7ZS5vdGlsZGU9NjExO2UuUmNvbW1hYWNjZW50PTcyMjtlLkxjb21tYWFjY2VudD02MTE7ZS5BdGlsZGU9NzIyO2UuQW9nb25laz03MjI7ZS5BcmluZz03MjI7ZS5PdGlsZGU9Nzc4O2UuemRvdGFjY2VudD01MDA7ZS5FY2Fyb249NjY3O2UuSW9nb25laz0yNzg7ZS5rY29tbWFhY2NlbnQ9NTU2O2UubWludXM9NTg0O2UuSWNpcmN1bWZsZXg9Mjc4O2UubmNhcm9uPTYxMTtlLnRjb21tYWFjY2VudD0zMzM7ZS5sb2dpY2Fsbm90PTU4NDtlLm9kaWVyZXNpcz02MTE7ZS51ZGllcmVzaXM9NjExO2Uubm90ZXF1YWw9NTQ5O2UuZ2NvbW1hYWNjZW50PTYxMTtlLmV0aD02MTE7ZS56Y2Fyb249NTAwO2UubmNvbW1hYWNjZW50PTYxMTtlLm9uZXN1cGVyaW9yPTMzMztlLmltYWNyb249Mjc4O2UuRXVybz01NTZ9KTtlWyJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiXT1nZXRMb29rdXBUYWJsZUZhY3RvcnkoZnVuY3Rpb24oZSl7ZS5zcGFjZT0yNzg7ZS5leGNsYW09MzMzO2UucXVvdGVkYmw9NDc0O2UubnVtYmVyc2lnbj01NTY7ZS5kb2xsYXI9NTU2O2UucGVyY2VudD04ODk7ZS5hbXBlcnNhbmQ9NzIyO2UucXVvdGVyaWdodD0yNzg7ZS5wYXJlbmxlZnQ9MzMzO2UucGFyZW5yaWdodD0zMzM7ZS5hc3Rlcmlzaz0zODk7ZS5wbHVzPTU4NDtlLmNvbW1hPTI3ODtlLmh5cGhlbj0zMzM7ZS5wZXJpb2Q9Mjc4O2Uuc2xhc2g9Mjc4O2UuemVybz01NTY7ZS5vbmU9NTU2O2UudHdvPTU1NjtlLnRocmVlPTU1NjtlLmZvdXI9NTU2O2UuZml2ZT01NTY7ZS5zaXg9NTU2O2Uuc2V2ZW49NTU2O2UuZWlnaHQ9NTU2O2UubmluZT01NTY7ZS5jb2xvbj0zMzM7ZS5zZW1pY29sb249MzMzO2UubGVzcz01ODQ7ZS5lcXVhbD01ODQ7ZS5ncmVhdGVyPTU4NDtlLnF1ZXN0aW9uPTYxMTtlLmF0PTk3NTtlLkE9NzIyO2UuQj03MjI7ZS5DPTcyMjtlLkQ9NzIyO2UuRT02Njc7ZS5GPTYxMTtlLkc9Nzc4O2UuSD03MjI7ZS5JPTI3ODtlLko9NTU2O2UuSz03MjI7ZS5MPTYxMTtlLk09ODMzO2UuTj03MjI7ZS5PPTc3ODtlLlA9NjY3O2UuUT03Nzg7ZS5SPTcyMjtlLlM9NjY3O2UuVD02MTE7ZS5VPTcyMjtlLlY9NjY3O2UuVz05NDQ7ZS5YPTY2NztlLlk9NjY3O2UuWj02MTE7ZS5icmFja2V0bGVmdD0zMzM7ZS5iYWNrc2xhc2g9Mjc4O2UuYnJhY2tldHJpZ2h0PTMzMztlLmFzY2lpY2lyY3VtPTU4NDtlLnVuZGVyc2NvcmU9NTU2O2UucXVvdGVsZWZ0PTI3ODtlLmE9NTU2O2UuYj02MTE7ZS5jPTU1NjtlLmQ9NjExO2UuZT01NTY7ZS5mPTMzMztlLmc9NjExO2UuaD02MTE7ZS5pPTI3ODtlLmo9Mjc4O2Uuaz01NTY7ZS5sPTI3ODtlLm09ODg5O2Uubj02MTE7ZS5vPTYxMTtlLnA9NjExO2UucT02MTE7ZS5yPTM4OTtlLnM9NTU2O2UudD0zMzM7ZS51PTYxMTtlLnY9NTU2O2Uudz03Nzg7ZS54PTU1NjtlLnk9NTU2O2Uuej01MDA7ZS5icmFjZWxlZnQ9Mzg5O2UuYmFyPTI4MDtlLmJyYWNlcmlnaHQ9Mzg5O2UuYXNjaWl0aWxkZT01ODQ7ZS5leGNsYW1kb3duPTMzMztlLmNlbnQ9NTU2O2Uuc3Rlcmxpbmc9NTU2O2UuZnJhY3Rpb249MTY3O2UueWVuPTU1NjtlLmZsb3Jpbj01NTY7ZS5zZWN0aW9uPTU1NjtlLmN1cnJlbmN5PTU1NjtlLnF1b3Rlc2luZ2xlPTIzODtlLnF1b3RlZGJsbGVmdD01MDA7ZS5ndWlsbGVtb3RsZWZ0PTU1NjtlLmd1aWxzaW5nbGxlZnQ9MzMzO2UuZ3VpbHNpbmdscmlnaHQ9MzMzO2UuZmk9NjExO2UuZmw9NjExO2UuZW5kYXNoPTU1NjtlLmRhZ2dlcj01NTY7ZS5kYWdnZXJkYmw9NTU2O2UucGVyaW9kY2VudGVyZWQ9Mjc4O2UucGFyYWdyYXBoPTU1NjtlLmJ1bGxldD0zNTA7ZS5xdW90ZXNpbmdsYmFzZT0yNzg7ZS5xdW90ZWRibGJhc2U9NTAwO2UucXVvdGVkYmxyaWdodD01MDA7ZS5ndWlsbGVtb3RyaWdodD01NTY7ZS5lbGxpcHNpcz0xZTM7ZS5wZXJ0aG91c2FuZD0xZTM7ZS5xdWVzdGlvbmRvd249NjExO2UuZ3JhdmU9MzMzO2UuYWN1dGU9MzMzO2UuY2lyY3VtZmxleD0zMzM7ZS50aWxkZT0zMzM7ZS5tYWNyb249MzMzO2UuYnJldmU9MzMzO2UuZG90YWNjZW50PTMzMztlLmRpZXJlc2lzPTMzMztlLnJpbmc9MzMzO2UuY2VkaWxsYT0zMzM7ZS5odW5nYXJ1bWxhdXQ9MzMzO2Uub2dvbmVrPTMzMztlLmNhcm9uPTMzMztlLmVtZGFzaD0xZTM7ZS5BRT0xZTM7ZS5vcmRmZW1pbmluZT0zNzA7ZS5Mc2xhc2g9NjExO2UuT3NsYXNoPTc3ODtlLk9FPTFlMztlLm9yZG1hc2N1bGluZT0zNjU7ZS5hZT04ODk7ZS5kb3RsZXNzaT0yNzg7ZS5sc2xhc2g9Mjc4O2Uub3NsYXNoPTYxMTtlLm9lPTk0NDtlLmdlcm1hbmRibHM9NjExO2UuSWRpZXJlc2lzPTI3ODtlLmVhY3V0ZT01NTY7ZS5hYnJldmU9NTU2O2UudWh1bmdhcnVtbGF1dD02MTE7ZS5lY2Fyb249NTU2O2UuWWRpZXJlc2lzPTY2NztlLmRpdmlkZT01ODQ7ZS5ZYWN1dGU9NjY3O2UuQWNpcmN1bWZsZXg9NzIyO2UuYWFjdXRlPTU1NjtlLlVjaXJjdW1mbGV4PTcyMjtlLnlhY3V0ZT01NTY7ZS5zY29tbWFhY2NlbnQ9NTU2O2UuZWNpcmN1bWZsZXg9NTU2O2UuVXJpbmc9NzIyO2UuVWRpZXJlc2lzPTcyMjtlLmFvZ29uZWs9NTU2O2UuVWFjdXRlPTcyMjtlLnVvZ29uZWs9NjExO2UuRWRpZXJlc2lzPTY2NztlLkRjcm9hdD03MjI7ZS5jb21tYWFjY2VudD0yNTA7ZS5jb3B5cmlnaHQ9NzM3O2UuRW1hY3Jvbj02Njc7ZS5jY2Fyb249NTU2O2UuYXJpbmc9NTU2O2UuTmNvbW1hYWNjZW50PTcyMjtlLmxhY3V0ZT0yNzg7ZS5hZ3JhdmU9NTU2O2UuVGNvbW1hYWNjZW50PTYxMTtlLkNhY3V0ZT03MjI7ZS5hdGlsZGU9NTU2O2UuRWRvdGFjY2VudD02Njc7ZS5zY2Fyb249NTU2O2Uuc2NlZGlsbGE9NTU2O2UuaWFjdXRlPTI3ODtlLmxvemVuZ2U9NDk0O2UuUmNhcm9uPTcyMjtlLkdjb21tYWFjY2VudD03Nzg7ZS51Y2lyY3VtZmxleD02MTE7ZS5hY2lyY3VtZmxleD01NTY7ZS5BbWFjcm9uPTcyMjtlLnJjYXJvbj0zODk7ZS5jY2VkaWxsYT01NTY7ZS5aZG90YWNjZW50PTYxMTtlLlRob3JuPTY2NztlLk9tYWNyb249Nzc4O2UuUmFjdXRlPTcyMjtlLlNhY3V0ZT02Njc7ZS5kY2Fyb249NzQzO2UuVW1hY3Jvbj03MjI7ZS51cmluZz02MTE7ZS50aHJlZXN1cGVyaW9yPTMzMztlLk9ncmF2ZT03Nzg7ZS5BZ3JhdmU9NzIyO2UuQWJyZXZlPTcyMjtlLm11bHRpcGx5PTU4NDtlLnVhY3V0ZT02MTE7ZS5UY2Fyb249NjExO2UucGFydGlhbGRpZmY9NDk0O2UueWRpZXJlc2lzPTU1NjtlLk5hY3V0ZT03MjI7ZS5pY2lyY3VtZmxleD0yNzg7ZS5FY2lyY3VtZmxleD02Njc7ZS5hZGllcmVzaXM9NTU2O2UuZWRpZXJlc2lzPTU1NjtlLmNhY3V0ZT01NTY7ZS5uYWN1dGU9NjExO2UudW1hY3Jvbj02MTE7ZS5OY2Fyb249NzIyO2UuSWFjdXRlPTI3ODtlLnBsdXNtaW51cz01ODQ7ZS5icm9rZW5iYXI9MjgwO2UucmVnaXN0ZXJlZD03Mzc7ZS5HYnJldmU9Nzc4O2UuSWRvdGFjY2VudD0yNzg7ZS5zdW1tYXRpb249NjAwO2UuRWdyYXZlPTY2NztlLnJhY3V0ZT0zODk7ZS5vbWFjcm9uPTYxMTtlLlphY3V0ZT02MTE7ZS5aY2Fyb249NjExO2UuZ3JlYXRlcmVxdWFsPTU0OTtlLkV0aD03MjI7ZS5DY2VkaWxsYT03MjI7ZS5sY29tbWFhY2NlbnQ9Mjc4O2UudGNhcm9uPTM4OTtlLmVvZ29uZWs9NTU2O2UuVW9nb25laz03MjI7ZS5BYWN1dGU9NzIyO2UuQWRpZXJlc2lzPTcyMjtlLmVncmF2ZT01NTY7ZS56YWN1dGU9NTAwO2UuaW9nb25laz0yNzg7ZS5PYWN1dGU9Nzc4O2Uub2FjdXRlPTYxMTtlLmFtYWNyb249NTU2O2Uuc2FjdXRlPTU1NjtlLmlkaWVyZXNpcz0yNzg7ZS5PY2lyY3VtZmxleD03Nzg7ZS5VZ3JhdmU9NzIyO2UuRGVsdGE9NjEyO2UudGhvcm49NjExO2UudHdvc3VwZXJpb3I9MzMzO2UuT2RpZXJlc2lzPTc3ODtlLm11PTYxMTtlLmlncmF2ZT0yNzg7ZS5vaHVuZ2FydW1sYXV0PTYxMTtlLkVvZ29uZWs9NjY3O2UuZGNyb2F0PTYxMTtlLnRocmVlcXVhcnRlcnM9ODM0O2UuU2NlZGlsbGE9NjY3O2UubGNhcm9uPTQwMDtlLktjb21tYWFjY2VudD03MjI7ZS5MYWN1dGU9NjExO2UudHJhZGVtYXJrPTFlMztlLmVkb3RhY2NlbnQ9NTU2O2UuSWdyYXZlPTI3ODtlLkltYWNyb249Mjc4O2UuTGNhcm9uPTYxMTtlLm9uZWhhbGY9ODM0O2UubGVzc2VxdWFsPTU0OTtlLm9jaXJjdW1mbGV4PTYxMTtlLm50aWxkZT02MTE7ZS5VaHVuZ2FydW1sYXV0PTcyMjtlLkVhY3V0ZT02Njc7ZS5lbWFjcm9uPTU1NjtlLmdicmV2ZT02MTE7ZS5vbmVxdWFydGVyPTgzNDtlLlNjYXJvbj02Njc7ZS5TY29tbWFhY2NlbnQ9NjY3O2UuT2h1bmdhcnVtbGF1dD03Nzg7ZS5kZWdyZWU9NDAwO2Uub2dyYXZlPTYxMTtlLkNjYXJvbj03MjI7ZS51Z3JhdmU9NjExO2UucmFkaWNhbD01NDk7ZS5EY2Fyb249NzIyO2UucmNvbW1hYWNjZW50PTM4OTtlLk50aWxkZT03MjI7ZS5vdGlsZGU9NjExO2UuUmNvbW1hYWNjZW50PTcyMjtlLkxjb21tYWFjY2VudD02MTE7ZS5BdGlsZGU9NzIyO2UuQW9nb25laz03MjI7ZS5BcmluZz03MjI7ZS5PdGlsZGU9Nzc4O2UuemRvdGFjY2VudD01MDA7ZS5FY2Fyb249NjY3O2UuSW9nb25laz0yNzg7ZS5rY29tbWFhY2NlbnQ9NTU2O2UubWludXM9NTg0O2UuSWNpcmN1bWZsZXg9Mjc4O2UubmNhcm9uPTYxMTtlLnRjb21tYWFjY2VudD0zMzM7ZS5sb2dpY2Fsbm90PTU4NDtlLm9kaWVyZXNpcz02MTE7ZS51ZGllcmVzaXM9NjExO2Uubm90ZXF1YWw9NTQ5O2UuZ2NvbW1hYWNjZW50PTYxMTtlLmV0aD02MTE7ZS56Y2Fyb249NTAwO2UubmNvbW1hYWNjZW50PTYxMTtlLm9uZXN1cGVyaW9yPTMzMztlLmltYWNyb249Mjc4O2UuRXVybz01NTZ9KTtlWyJIZWx2ZXRpY2EtT2JsaXF1ZSJdPWdldExvb2t1cFRhYmxlRmFjdG9yeShmdW5jdGlvbihlKXtlLnNwYWNlPTI3ODtlLmV4Y2xhbT0yNzg7ZS5xdW90ZWRibD0zNTU7ZS5udW1iZXJzaWduPTU1NjtlLmRvbGxhcj01NTY7ZS5wZXJjZW50PTg4OTtlLmFtcGVyc2FuZD02Njc7ZS5xdW90ZXJpZ2h0PTIyMjtlLnBhcmVubGVmdD0zMzM7ZS5wYXJlbnJpZ2h0PTMzMztlLmFzdGVyaXNrPTM4OTtlLnBsdXM9NTg0O2UuY29tbWE9Mjc4O2UuaHlwaGVuPTMzMztlLnBlcmlvZD0yNzg7ZS5zbGFzaD0yNzg7ZS56ZXJvPTU1NjtlLm9uZT01NTY7ZS50d289NTU2O2UudGhyZWU9NTU2O2UuZm91cj01NTY7ZS5maXZlPTU1NjtlLnNpeD01NTY7ZS5zZXZlbj01NTY7ZS5laWdodD01NTY7ZS5uaW5lPTU1NjtlLmNvbG9uPTI3ODtlLnNlbWljb2xvbj0yNzg7ZS5sZXNzPTU4NDtlLmVxdWFsPTU4NDtlLmdyZWF0ZXI9NTg0O2UucXVlc3Rpb249NTU2O2UuYXQ9MTAxNTtlLkE9NjY3O2UuQj02Njc7ZS5DPTcyMjtlLkQ9NzIyO2UuRT02Njc7ZS5GPTYxMTtlLkc9Nzc4O2UuSD03MjI7ZS5JPTI3ODtlLko9NTAwO2UuSz02Njc7ZS5MPTU1NjtlLk09ODMzO2UuTj03MjI7ZS5PPTc3ODtlLlA9NjY3O2UuUT03Nzg7ZS5SPTcyMjtlLlM9NjY3O2UuVD02MTE7ZS5VPTcyMjtlLlY9NjY3O2UuVz05NDQ7ZS5YPTY2NztlLlk9NjY3O2UuWj02MTE7ZS5icmFja2V0bGVmdD0yNzg7ZS5iYWNrc2xhc2g9Mjc4O2UuYnJhY2tldHJpZ2h0PTI3ODtlLmFzY2lpY2lyY3VtPTQ2OTtlLnVuZGVyc2NvcmU9NTU2O2UucXVvdGVsZWZ0PTIyMjtlLmE9NTU2O2UuYj01NTY7ZS5jPTUwMDtlLmQ9NTU2O2UuZT01NTY7ZS5mPTI3ODtlLmc9NTU2O2UuaD01NTY7ZS5pPTIyMjtlLmo9MjIyO2Uuaz01MDA7ZS5sPTIyMjtlLm09ODMzO2Uubj01NTY7ZS5vPTU1NjtlLnA9NTU2O2UucT01NTY7ZS5yPTMzMztlLnM9NTAwO2UudD0yNzg7ZS51PTU1NjtlLnY9NTAwO2Uudz03MjI7ZS54PTUwMDtlLnk9NTAwO2Uuej01MDA7ZS5icmFjZWxlZnQ9MzM0O2UuYmFyPTI2MDtlLmJyYWNlcmlnaHQ9MzM0O2UuYXNjaWl0aWxkZT01ODQ7ZS5leGNsYW1kb3duPTMzMztlLmNlbnQ9NTU2O2Uuc3Rlcmxpbmc9NTU2O2UuZnJhY3Rpb249MTY3O2UueWVuPTU1NjtlLmZsb3Jpbj01NTY7ZS5zZWN0aW9uPTU1NjtlLmN1cnJlbmN5PTU1NjtlLnF1b3Rlc2luZ2xlPTE5MTtlLnF1b3RlZGJsbGVmdD0zMzM7ZS5ndWlsbGVtb3RsZWZ0PTU1NjtlLmd1aWxzaW5nbGxlZnQ9MzMzO2UuZ3VpbHNpbmdscmlnaHQ9MzMzO2UuZmk9NTAwO2UuZmw9NTAwO2UuZW5kYXNoPTU1NjtlLmRhZ2dlcj01NTY7ZS5kYWdnZXJkYmw9NTU2O2UucGVyaW9kY2VudGVyZWQ9Mjc4O2UucGFyYWdyYXBoPTUzNztlLmJ1bGxldD0zNTA7ZS5xdW90ZXNpbmdsYmFzZT0yMjI7ZS5xdW90ZWRibGJhc2U9MzMzO2UucXVvdGVkYmxyaWdodD0zMzM7ZS5ndWlsbGVtb3RyaWdodD01NTY7ZS5lbGxpcHNpcz0xZTM7ZS5wZXJ0aG91c2FuZD0xZTM7ZS5xdWVzdGlvbmRvd249NjExO2UuZ3JhdmU9MzMzO2UuYWN1dGU9MzMzO2UuY2lyY3VtZmxleD0zMzM7ZS50aWxkZT0zMzM7ZS5tYWNyb249MzMzO2UuYnJldmU9MzMzO2UuZG90YWNjZW50PTMzMztlLmRpZXJlc2lzPTMzMztlLnJpbmc9MzMzO2UuY2VkaWxsYT0zMzM7ZS5odW5nYXJ1bWxhdXQ9MzMzO2Uub2dvbmVrPTMzMztlLmNhcm9uPTMzMztlLmVtZGFzaD0xZTM7ZS5BRT0xZTM7ZS5vcmRmZW1pbmluZT0zNzA7ZS5Mc2xhc2g9NTU2O2UuT3NsYXNoPTc3ODtlLk9FPTFlMztlLm9yZG1hc2N1bGluZT0zNjU7ZS5hZT04ODk7ZS5kb3RsZXNzaT0yNzg7ZS5sc2xhc2g9MjIyO2Uub3NsYXNoPTYxMTtlLm9lPTk0NDtlLmdlcm1hbmRibHM9NjExO2UuSWRpZXJlc2lzPTI3ODtlLmVhY3V0ZT01NTY7ZS5hYnJldmU9NTU2O2UudWh1bmdhcnVtbGF1dD01NTY7ZS5lY2Fyb249NTU2O2UuWWRpZXJlc2lzPTY2NztlLmRpdmlkZT01ODQ7ZS5ZYWN1dGU9NjY3O2UuQWNpcmN1bWZsZXg9NjY3O2UuYWFjdXRlPTU1NjtlLlVjaXJjdW1mbGV4PTcyMjtlLnlhY3V0ZT01MDA7ZS5zY29tbWFhY2NlbnQ9NTAwO2UuZWNpcmN1bWZsZXg9NTU2O2UuVXJpbmc9NzIyO2UuVWRpZXJlc2lzPTcyMjtlLmFvZ29uZWs9NTU2O2UuVWFjdXRlPTcyMjtlLnVvZ29uZWs9NTU2O2UuRWRpZXJlc2lzPTY2NztlLkRjcm9hdD03MjI7ZS5jb21tYWFjY2VudD0yNTA7ZS5jb3B5cmlnaHQ9NzM3O2UuRW1hY3Jvbj02Njc7ZS5jY2Fyb249NTAwO2UuYXJpbmc9NTU2O2UuTmNvbW1hYWNjZW50PTcyMjtlLmxhY3V0ZT0yMjI7ZS5hZ3JhdmU9NTU2O2UuVGNvbW1hYWNjZW50PTYxMTtlLkNhY3V0ZT03MjI7ZS5hdGlsZGU9NTU2O2UuRWRvdGFjY2VudD02Njc7ZS5zY2Fyb249NTAwO2Uuc2NlZGlsbGE9NTAwO2UuaWFjdXRlPTI3ODtlLmxvemVuZ2U9NDcxO2UuUmNhcm9uPTcyMjtlLkdjb21tYWFjY2VudD03Nzg7ZS51Y2lyY3VtZmxleD01NTY7ZS5hY2lyY3VtZmxleD01NTY7ZS5BbWFjcm9uPTY2NztlLnJjYXJvbj0zMzM7ZS5jY2VkaWxsYT01MDA7ZS5aZG90YWNjZW50PTYxMTtlLlRob3JuPTY2NztlLk9tYWNyb249Nzc4O2UuUmFjdXRlPTcyMjtlLlNhY3V0ZT02Njc7ZS5kY2Fyb249NjQzO2UuVW1hY3Jvbj03MjI7ZS51cmluZz01NTY7ZS50aHJlZXN1cGVyaW9yPTMzMztlLk9ncmF2ZT03Nzg7ZS5BZ3JhdmU9NjY3O2UuQWJyZXZlPTY2NztlLm11bHRpcGx5PTU4NDtlLnVhY3V0ZT01NTY7ZS5UY2Fyb249NjExO2UucGFydGlhbGRpZmY9NDc2O2UueWRpZXJlc2lzPTUwMDtlLk5hY3V0ZT03MjI7ZS5pY2lyY3VtZmxleD0yNzg7ZS5FY2lyY3VtZmxleD02Njc7ZS5hZGllcmVzaXM9NTU2O2UuZWRpZXJlc2lzPTU1NjtlLmNhY3V0ZT01MDA7ZS5uYWN1dGU9NTU2O2UudW1hY3Jvbj01NTY7ZS5OY2Fyb249NzIyO2UuSWFjdXRlPTI3ODtlLnBsdXNtaW51cz01ODQ7ZS5icm9rZW5iYXI9MjYwO2UucmVnaXN0ZXJlZD03Mzc7ZS5HYnJldmU9Nzc4O2UuSWRvdGFjY2VudD0yNzg7ZS5zdW1tYXRpb249NjAwO2UuRWdyYXZlPTY2NztlLnJhY3V0ZT0zMzM7ZS5vbWFjcm9uPTU1NjtlLlphY3V0ZT02MTE7ZS5aY2Fyb249NjExO2UuZ3JlYXRlcmVxdWFsPTU0OTtlLkV0aD03MjI7ZS5DY2VkaWxsYT03MjI7ZS5sY29tbWFhY2NlbnQ9MjIyO2UudGNhcm9uPTMxNztlLmVvZ29uZWs9NTU2O2UuVW9nb25laz03MjI7ZS5BYWN1dGU9NjY3O2UuQWRpZXJlc2lzPTY2NztlLmVncmF2ZT01NTY7ZS56YWN1dGU9NTAwO2UuaW9nb25laz0yMjI7ZS5PYWN1dGU9Nzc4O2Uub2FjdXRlPTU1NjtlLmFtYWNyb249NTU2O2Uuc2FjdXRlPTUwMDtlLmlkaWVyZXNpcz0yNzg7ZS5PY2lyY3VtZmxleD03Nzg7ZS5VZ3JhdmU9NzIyO2UuRGVsdGE9NjEyO2UudGhvcm49NTU2O2UudHdvc3VwZXJpb3I9MzMzO2UuT2RpZXJlc2lzPTc3ODtlLm11PTU1NjtlLmlncmF2ZT0yNzg7ZS5vaHVuZ2FydW1sYXV0PTU1NjtlLkVvZ29uZWs9NjY3O2UuZGNyb2F0PTU1NjtlLnRocmVlcXVhcnRlcnM9ODM0O2UuU2NlZGlsbGE9NjY3O2UubGNhcm9uPTI5OTtlLktjb21tYWFjY2VudD02Njc7ZS5MYWN1dGU9NTU2O2UudHJhZGVtYXJrPTFlMztlLmVkb3RhY2NlbnQ9NTU2O2UuSWdyYXZlPTI3ODtlLkltYWNyb249Mjc4O2UuTGNhcm9uPTU1NjtlLm9uZWhhbGY9ODM0O2UubGVzc2VxdWFsPTU0OTtlLm9jaXJjdW1mbGV4PTU1NjtlLm50aWxkZT01NTY7ZS5VaHVuZ2FydW1sYXV0PTcyMjtlLkVhY3V0ZT02Njc7ZS5lbWFjcm9uPTU1NjtlLmdicmV2ZT01NTY7ZS5vbmVxdWFydGVyPTgzNDtlLlNjYXJvbj02Njc7ZS5TY29tbWFhY2NlbnQ9NjY3O2UuT2h1bmdhcnVtbGF1dD03Nzg7ZS5kZWdyZWU9NDAwO2Uub2dyYXZlPTU1NjtlLkNjYXJvbj03MjI7ZS51Z3JhdmU9NTU2O2UucmFkaWNhbD00NTM7ZS5EY2Fyb249NzIyO2UucmNvbW1hYWNjZW50PTMzMztlLk50aWxkZT03MjI7ZS5vdGlsZGU9NTU2O2UuUmNvbW1hYWNjZW50PTcyMjtlLkxjb21tYWFjY2VudD01NTY7ZS5BdGlsZGU9NjY3O2UuQW9nb25laz02Njc7ZS5BcmluZz02Njc7ZS5PdGlsZGU9Nzc4O2UuemRvdGFjY2VudD01MDA7ZS5FY2Fyb249NjY3O2UuSW9nb25laz0yNzg7ZS5rY29tbWFhY2NlbnQ9NTAwO2UubWludXM9NTg0O2UuSWNpcmN1bWZsZXg9Mjc4O2UubmNhcm9uPTU1NjtlLnRjb21tYWFjY2VudD0yNzg7ZS5sb2dpY2Fsbm90PTU4NDtlLm9kaWVyZXNpcz01NTY7ZS51ZGllcmVzaXM9NTU2O2Uubm90ZXF1YWw9NTQ5O2UuZ2NvbW1hYWNjZW50PTU1NjtlLmV0aD01NTY7ZS56Y2Fyb249NTAwO2UubmNvbW1hYWNjZW50PTU1NjtlLm9uZXN1cGVyaW9yPTMzMztlLmltYWNyb249Mjc4O2UuRXVybz01NTZ9KTtlLlN5bWJvbD1nZXRMb29rdXBUYWJsZUZhY3RvcnkoZnVuY3Rpb24oZSl7ZS5zcGFjZT0yNTA7ZS5leGNsYW09MzMzO2UudW5pdmVyc2FsPTcxMztlLm51bWJlcnNpZ249NTAwO2UuZXhpc3RlbnRpYWw9NTQ5O2UucGVyY2VudD04MzM7ZS5hbXBlcnNhbmQ9Nzc4O2Uuc3VjaHRoYXQ9NDM5O2UucGFyZW5sZWZ0PTMzMztlLnBhcmVucmlnaHQ9MzMzO2UuYXN0ZXJpc2ttYXRoPTUwMDtlLnBsdXM9NTQ5O2UuY29tbWE9MjUwO2UubWludXM9NTQ5O2UucGVyaW9kPTI1MDtlLnNsYXNoPTI3ODtlLnplcm89NTAwO2Uub25lPTUwMDtlLnR3bz01MDA7ZS50aHJlZT01MDA7ZS5mb3VyPTUwMDtlLmZpdmU9NTAwO2Uuc2l4PTUwMDtlLnNldmVuPTUwMDtlLmVpZ2h0PTUwMDtlLm5pbmU9NTAwO2UuY29sb249Mjc4O2Uuc2VtaWNvbG9uPTI3ODtlLmxlc3M9NTQ5O2UuZXF1YWw9NTQ5O2UuZ3JlYXRlcj01NDk7ZS5xdWVzdGlvbj00NDQ7ZS5jb25ncnVlbnQ9NTQ5O2UuQWxwaGE9NzIyO2UuQmV0YT02Njc7ZS5DaGk9NzIyO2UuRGVsdGE9NjEyO2UuRXBzaWxvbj02MTE7ZS5QaGk9NzYzO2UuR2FtbWE9NjAzO2UuRXRhPTcyMjtlLklvdGE9MzMzO2UudGhldGExPTYzMTtlLkthcHBhPTcyMjtlLkxhbWJkYT02ODY7ZS5NdT04ODk7ZS5OdT03MjI7ZS5PbWljcm9uPTcyMjtlLlBpPTc2ODtlLlRoZXRhPTc0MTtlLlJobz01NTY7ZS5TaWdtYT01OTI7ZS5UYXU9NjExO2UuVXBzaWxvbj02OTA7ZS5zaWdtYTE9NDM5O2UuT21lZ2E9NzY4O2UuWGk9NjQ1O2UuUHNpPTc5NTtlLlpldGE9NjExO2UuYnJhY2tldGxlZnQ9MzMzO2UudGhlcmVmb3JlPTg2MztlLmJyYWNrZXRyaWdodD0zMzM7ZS5wZXJwZW5kaWN1bGFyPTY1ODtlLnVuZGVyc2NvcmU9NTAwO2UucmFkaWNhbGV4PTUwMDtlLmFscGhhPTYzMTtlLmJldGE9NTQ5O2UuY2hpPTU0OTtlLmRlbHRhPTQ5NDtlLmVwc2lsb249NDM5O2UucGhpPTUyMTtlLmdhbW1hPTQxMTtlLmV0YT02MDM7ZS5pb3RhPTMyOTtlLnBoaTE9NjAzO2Uua2FwcGE9NTQ5O2UubGFtYmRhPTU0OTtlLm11PTU3NjtlLm51PTUyMTtlLm9taWNyb249NTQ5O2UucGk9NTQ5O2UudGhldGE9NTIxO2UucmhvPTU0OTtlLnNpZ21hPTYwMztlLnRhdT00Mzk7ZS51cHNpbG9uPTU3NjtlLm9tZWdhMT03MTM7ZS5vbWVnYT02ODY7ZS54aT00OTM7ZS5wc2k9Njg2O2UuemV0YT00OTQ7ZS5icmFjZWxlZnQ9NDgwO2UuYmFyPTIwMDtlLmJyYWNlcmlnaHQ9NDgwO2Uuc2ltaWxhcj01NDk7ZS5FdXJvPTc1MDtlLlVwc2lsb24xPTYyMDtlLm1pbnV0ZT0yNDc7ZS5sZXNzZXF1YWw9NTQ5O2UuZnJhY3Rpb249MTY3O2UuaW5maW5pdHk9NzEzO2UuZmxvcmluPTUwMDtlLmNsdWI9NzUzO2UuZGlhbW9uZD03NTM7ZS5oZWFydD03NTM7ZS5zcGFkZT03NTM7ZS5hcnJvd2JvdGg9MTA0MjtlLmFycm93bGVmdD05ODc7ZS5hcnJvd3VwPTYwMztlLmFycm93cmlnaHQ9OTg3O2UuYXJyb3dkb3duPTYwMztlLmRlZ3JlZT00MDA7ZS5wbHVzbWludXM9NTQ5O2Uuc2Vjb25kPTQxMTtlLmdyZWF0ZXJlcXVhbD01NDk7ZS5tdWx0aXBseT01NDk7ZS5wcm9wb3J0aW9uYWw9NzEzO2UucGFydGlhbGRpZmY9NDk0O2UuYnVsbGV0PTQ2MDtlLmRpdmlkZT01NDk7ZS5ub3RlcXVhbD01NDk7ZS5lcXVpdmFsZW5jZT01NDk7ZS5hcHByb3hlcXVhbD01NDk7ZS5lbGxpcHNpcz0xZTM7ZS5hcnJvd3ZlcnRleD02MDM7ZS5hcnJvd2hvcml6ZXg9MWUzO2UuY2FycmlhZ2VyZXR1cm49NjU4O2UuYWxlcGg9ODIzO2UuSWZyYWt0dXI9Njg2O2UuUmZyYWt0dXI9Nzk1O2Uud2VpZXJzdHJhc3M9OTg3O2UuY2lyY2xlbXVsdGlwbHk9NzY4O2UuY2lyY2xlcGx1cz03Njg7ZS5lbXB0eXNldD04MjM7ZS5pbnRlcnNlY3Rpb249NzY4O2UudW5pb249NzY4O2UucHJvcGVyc3VwZXJzZXQ9NzEzO2UucmVmbGV4c3VwZXJzZXQ9NzEzO2Uubm90c3Vic2V0PTcxMztlLnByb3BlcnN1YnNldD03MTM7ZS5yZWZsZXhzdWJzZXQ9NzEzO2UuZWxlbWVudD03MTM7ZS5ub3RlbGVtZW50PTcxMztlLmFuZ2xlPTc2ODtlLmdyYWRpZW50PTcxMztlLnJlZ2lzdGVyc2VyaWY9NzkwO2UuY29weXJpZ2h0c2VyaWY9NzkwO2UudHJhZGVtYXJrc2VyaWY9ODkwO2UucHJvZHVjdD04MjM7ZS5yYWRpY2FsPTU0OTtlLmRvdG1hdGg9MjUwO2UubG9naWNhbG5vdD03MTM7ZS5sb2dpY2FsYW5kPTYwMztlLmxvZ2ljYWxvcj02MDM7ZS5hcnJvd2RibGJvdGg9MTA0MjtlLmFycm93ZGJsbGVmdD05ODc7ZS5hcnJvd2RibHVwPTYwMztlLmFycm93ZGJscmlnaHQ9OTg3O2UuYXJyb3dkYmxkb3duPTYwMztlLmxvemVuZ2U9NDk0O2UuYW5nbGVsZWZ0PTMyOTtlLnJlZ2lzdGVyc2Fucz03OTA7ZS5jb3B5cmlnaHRzYW5zPTc5MDtlLnRyYWRlbWFya3NhbnM9Nzg2O2Uuc3VtbWF0aW9uPTcxMztlLnBhcmVubGVmdHRwPTM4NDtlLnBhcmVubGVmdGV4PTM4NDtlLnBhcmVubGVmdGJ0PTM4NDtlLmJyYWNrZXRsZWZ0dHA9Mzg0O2UuYnJhY2tldGxlZnRleD0zODQ7ZS5icmFja2V0bGVmdGJ0PTM4NDtlLmJyYWNlbGVmdHRwPTQ5NDtlLmJyYWNlbGVmdG1pZD00OTQ7ZS5icmFjZWxlZnRidD00OTQ7ZS5icmFjZWV4PTQ5NDtlLmFuZ2xlcmlnaHQ9MzI5O2UuaW50ZWdyYWw9Mjc0O2UuaW50ZWdyYWx0cD02ODY7ZS5pbnRlZ3JhbGV4PTY4NjtlLmludGVncmFsYnQ9Njg2O2UucGFyZW5yaWdodHRwPTM4NDtlLnBhcmVucmlnaHRleD0zODQ7ZS5wYXJlbnJpZ2h0YnQ9Mzg0O2UuYnJhY2tldHJpZ2h0dHA9Mzg0O2UuYnJhY2tldHJpZ2h0ZXg9Mzg0O2UuYnJhY2tldHJpZ2h0YnQ9Mzg0O2UuYnJhY2VyaWdodHRwPTQ5NDtlLmJyYWNlcmlnaHRtaWQ9NDk0O2UuYnJhY2VyaWdodGJ0PTQ5NDtlLmFwcGxlPTc5MH0pO2VbIlRpbWVzLVJvbWFuIl09Z2V0TG9va3VwVGFibGVGYWN0b3J5KGZ1bmN0aW9uKGUpe2Uuc3BhY2U9MjUwO2UuZXhjbGFtPTMzMztlLnF1b3RlZGJsPTQwODtlLm51bWJlcnNpZ249NTAwO2UuZG9sbGFyPTUwMDtlLnBlcmNlbnQ9ODMzO2UuYW1wZXJzYW5kPTc3ODtlLnF1b3RlcmlnaHQ9MzMzO2UucGFyZW5sZWZ0PTMzMztlLnBhcmVucmlnaHQ9MzMzO2UuYXN0ZXJpc2s9NTAwO2UucGx1cz01NjQ7ZS5jb21tYT0yNTA7ZS5oeXBoZW49MzMzO2UucGVyaW9kPTI1MDtlLnNsYXNoPTI3ODtlLnplcm89NTAwO2Uub25lPTUwMDtlLnR3bz01MDA7ZS50aHJlZT01MDA7ZS5mb3VyPTUwMDtlLmZpdmU9NTAwO2Uuc2l4PTUwMDtlLnNldmVuPTUwMDtlLmVpZ2h0PTUwMDtlLm5pbmU9NTAwO2UuY29sb249Mjc4O2Uuc2VtaWNvbG9uPTI3ODtlLmxlc3M9NTY0O2UuZXF1YWw9NTY0O2UuZ3JlYXRlcj01NjQ7ZS5xdWVzdGlvbj00NDQ7ZS5hdD05MjE7ZS5BPTcyMjtlLkI9NjY3O2UuQz02Njc7ZS5EPTcyMjtlLkU9NjExO2UuRj01NTY7ZS5HPTcyMjtlLkg9NzIyO2UuST0zMzM7ZS5KPTM4OTtlLks9NzIyO2UuTD02MTE7ZS5NPTg4OTtlLk49NzIyO2UuTz03MjI7ZS5QPTU1NjtlLlE9NzIyO2UuUj02Njc7ZS5TPTU1NjtlLlQ9NjExO2UuVT03MjI7ZS5WPTcyMjtlLlc9OTQ0O2UuWD03MjI7ZS5ZPTcyMjtlLlo9NjExO2UuYnJhY2tldGxlZnQ9MzMzO2UuYmFja3NsYXNoPTI3ODtlLmJyYWNrZXRyaWdodD0zMzM7ZS5hc2NpaWNpcmN1bT00Njk7ZS51bmRlcnNjb3JlPTUwMDtlLnF1b3RlbGVmdD0zMzM7ZS5hPTQ0NDtlLmI9NTAwO2UuYz00NDQ7ZS5kPTUwMDtlLmU9NDQ0O2UuZj0zMzM7ZS5nPTUwMDtlLmg9NTAwO2UuaT0yNzg7ZS5qPTI3ODtlLms9NTAwO2UubD0yNzg7ZS5tPTc3ODtlLm49NTAwO2Uubz01MDA7ZS5wPTUwMDtlLnE9NTAwO2Uucj0zMzM7ZS5zPTM4OTtlLnQ9Mjc4O2UudT01MDA7ZS52PTUwMDtlLnc9NzIyO2UueD01MDA7ZS55PTUwMDtlLno9NDQ0O2UuYnJhY2VsZWZ0PTQ4MDtlLmJhcj0yMDA7ZS5icmFjZXJpZ2h0PTQ4MDtlLmFzY2lpdGlsZGU9NTQxO2UuZXhjbGFtZG93bj0zMzM7ZS5jZW50PTUwMDtlLnN0ZXJsaW5nPTUwMDtlLmZyYWN0aW9uPTE2NztlLnllbj01MDA7ZS5mbG9yaW49NTAwO2Uuc2VjdGlvbj01MDA7ZS5jdXJyZW5jeT01MDA7ZS5xdW90ZXNpbmdsZT0xODA7ZS5xdW90ZWRibGxlZnQ9NDQ0O2UuZ3VpbGxlbW90bGVmdD01MDA7ZS5ndWlsc2luZ2xsZWZ0PTMzMztlLmd1aWxzaW5nbHJpZ2h0PTMzMztlLmZpPTU1NjtlLmZsPTU1NjtlLmVuZGFzaD01MDA7ZS5kYWdnZXI9NTAwO2UuZGFnZ2VyZGJsPTUwMDtlLnBlcmlvZGNlbnRlcmVkPTI1MDtlLnBhcmFncmFwaD00NTM7ZS5idWxsZXQ9MzUwO2UucXVvdGVzaW5nbGJhc2U9MzMzO2UucXVvdGVkYmxiYXNlPTQ0NDtlLnF1b3RlZGJscmlnaHQ9NDQ0O2UuZ3VpbGxlbW90cmlnaHQ9NTAwO2UuZWxsaXBzaXM9MWUzO2UucGVydGhvdXNhbmQ9MWUzO2UucXVlc3Rpb25kb3duPTQ0NDtlLmdyYXZlPTMzMztlLmFjdXRlPTMzMztlLmNpcmN1bWZsZXg9MzMzO2UudGlsZGU9MzMzO2UubWFjcm9uPTMzMztlLmJyZXZlPTMzMztlLmRvdGFjY2VudD0zMzM7ZS5kaWVyZXNpcz0zMzM7ZS5yaW5nPTMzMztlLmNlZGlsbGE9MzMzO2UuaHVuZ2FydW1sYXV0PTMzMztlLm9nb25laz0zMzM7ZS5jYXJvbj0zMzM7ZS5lbWRhc2g9MWUzO2UuQUU9ODg5O2Uub3JkZmVtaW5pbmU9Mjc2O2UuTHNsYXNoPTYxMTtlLk9zbGFzaD03MjI7ZS5PRT04ODk7ZS5vcmRtYXNjdWxpbmU9MzEwO2UuYWU9NjY3O2UuZG90bGVzc2k9Mjc4O2UubHNsYXNoPTI3ODtlLm9zbGFzaD01MDA7ZS5vZT03MjI7ZS5nZXJtYW5kYmxzPTUwMDtlLklkaWVyZXNpcz0zMzM7ZS5lYWN1dGU9NDQ0O2UuYWJyZXZlPTQ0NDtlLnVodW5nYXJ1bWxhdXQ9NTAwO2UuZWNhcm9uPTQ0NDtlLllkaWVyZXNpcz03MjI7ZS5kaXZpZGU9NTY0O2UuWWFjdXRlPTcyMjtlLkFjaXJjdW1mbGV4PTcyMjtlLmFhY3V0ZT00NDQ7ZS5VY2lyY3VtZmxleD03MjI7ZS55YWN1dGU9NTAwO2Uuc2NvbW1hYWNjZW50PTM4OTtlLmVjaXJjdW1mbGV4PTQ0NDtlLlVyaW5nPTcyMjtlLlVkaWVyZXNpcz03MjI7ZS5hb2dvbmVrPTQ0NDtlLlVhY3V0ZT03MjI7ZS51b2dvbmVrPTUwMDtlLkVkaWVyZXNpcz02MTE7ZS5EY3JvYXQ9NzIyO2UuY29tbWFhY2NlbnQ9MjUwO2UuY29weXJpZ2h0PTc2MDtlLkVtYWNyb249NjExO2UuY2Nhcm9uPTQ0NDtlLmFyaW5nPTQ0NDtlLk5jb21tYWFjY2VudD03MjI7ZS5sYWN1dGU9Mjc4O2UuYWdyYXZlPTQ0NDtlLlRjb21tYWFjY2VudD02MTE7ZS5DYWN1dGU9NjY3O2UuYXRpbGRlPTQ0NDtlLkVkb3RhY2NlbnQ9NjExO2Uuc2Nhcm9uPTM4OTtlLnNjZWRpbGxhPTM4OTtlLmlhY3V0ZT0yNzg7ZS5sb3plbmdlPTQ3MTtlLlJjYXJvbj02Njc7ZS5HY29tbWFhY2NlbnQ9NzIyO2UudWNpcmN1bWZsZXg9NTAwO2UuYWNpcmN1bWZsZXg9NDQ0O2UuQW1hY3Jvbj03MjI7ZS5yY2Fyb249MzMzO2UuY2NlZGlsbGE9NDQ0O2UuWmRvdGFjY2VudD02MTE7ZS5UaG9ybj01NTY7ZS5PbWFjcm9uPTcyMjtlLlJhY3V0ZT02Njc7ZS5TYWN1dGU9NTU2O2UuZGNhcm9uPTU4ODtlLlVtYWNyb249NzIyO2UudXJpbmc9NTAwO2UudGhyZWVzdXBlcmlvcj0zMDA7ZS5PZ3JhdmU9NzIyO2UuQWdyYXZlPTcyMjtlLkFicmV2ZT03MjI7ZS5tdWx0aXBseT01NjQ7ZS51YWN1dGU9NTAwO2UuVGNhcm9uPTYxMTtlLnBhcnRpYWxkaWZmPTQ3NjtlLnlkaWVyZXNpcz01MDA7ZS5OYWN1dGU9NzIyO2UuaWNpcmN1bWZsZXg9Mjc4O2UuRWNpcmN1bWZsZXg9NjExO2UuYWRpZXJlc2lzPTQ0NDtlLmVkaWVyZXNpcz00NDQ7ZS5jYWN1dGU9NDQ0O2UubmFjdXRlPTUwMDtlLnVtYWNyb249NTAwO2UuTmNhcm9uPTcyMjtlLklhY3V0ZT0zMzM7ZS5wbHVzbWludXM9NTY0O2UuYnJva2VuYmFyPTIwMDtlLnJlZ2lzdGVyZWQ9NzYwO2UuR2JyZXZlPTcyMjtlLklkb3RhY2NlbnQ9MzMzO2Uuc3VtbWF0aW9uPTYwMDtlLkVncmF2ZT02MTE7ZS5yYWN1dGU9MzMzO2Uub21hY3Jvbj01MDA7ZS5aYWN1dGU9NjExO2UuWmNhcm9uPTYxMTtlLmdyZWF0ZXJlcXVhbD01NDk7ZS5FdGg9NzIyO2UuQ2NlZGlsbGE9NjY3O2UubGNvbW1hYWNjZW50PTI3ODtlLnRjYXJvbj0zMjY7ZS5lb2dvbmVrPTQ0NDtlLlVvZ29uZWs9NzIyO2UuQWFjdXRlPTcyMjtlLkFkaWVyZXNpcz03MjI7ZS5lZ3JhdmU9NDQ0O2UuemFjdXRlPTQ0NDtlLmlvZ29uZWs9Mjc4O2UuT2FjdXRlPTcyMjtlLm9hY3V0ZT01MDA7ZS5hbWFjcm9uPTQ0NDtlLnNhY3V0ZT0zODk7ZS5pZGllcmVzaXM9Mjc4O2UuT2NpcmN1bWZsZXg9NzIyO2UuVWdyYXZlPTcyMjtlLkRlbHRhPTYxMjtlLnRob3JuPTUwMDtlLnR3b3N1cGVyaW9yPTMwMDtlLk9kaWVyZXNpcz03MjI7ZS5tdT01MDA7ZS5pZ3JhdmU9Mjc4O2Uub2h1bmdhcnVtbGF1dD01MDA7ZS5Fb2dvbmVrPTYxMTtlLmRjcm9hdD01MDA7ZS50aHJlZXF1YXJ0ZXJzPTc1MDtlLlNjZWRpbGxhPTU1NjtlLmxjYXJvbj0zNDQ7ZS5LY29tbWFhY2NlbnQ9NzIyO2UuTGFjdXRlPTYxMTtlLnRyYWRlbWFyaz05ODA7ZS5lZG90YWNjZW50PTQ0NDtlLklncmF2ZT0zMzM7ZS5JbWFjcm9uPTMzMztlLkxjYXJvbj02MTE7ZS5vbmVoYWxmPTc1MDtlLmxlc3NlcXVhbD01NDk7ZS5vY2lyY3VtZmxleD01MDA7ZS5udGlsZGU9NTAwO2UuVWh1bmdhcnVtbGF1dD03MjI7ZS5FYWN1dGU9NjExO2UuZW1hY3Jvbj00NDQ7ZS5nYnJldmU9NTAwO2Uub25lcXVhcnRlcj03NTA7ZS5TY2Fyb249NTU2O2UuU2NvbW1hYWNjZW50PTU1NjtlLk9odW5nYXJ1bWxhdXQ9NzIyO2UuZGVncmVlPTQwMDtlLm9ncmF2ZT01MDA7ZS5DY2Fyb249NjY3O2UudWdyYXZlPTUwMDtlLnJhZGljYWw9NDUzO2UuRGNhcm9uPTcyMjtlLnJjb21tYWFjY2VudD0zMzM7ZS5OdGlsZGU9NzIyO2Uub3RpbGRlPTUwMDtlLlJjb21tYWFjY2VudD02Njc7ZS5MY29tbWFhY2NlbnQ9NjExO2UuQXRpbGRlPTcyMjtlLkFvZ29uZWs9NzIyO2UuQXJpbmc9NzIyO2UuT3RpbGRlPTcyMjtlLnpkb3RhY2NlbnQ9NDQ0O2UuRWNhcm9uPTYxMTtlLklvZ29uZWs9MzMzO2Uua2NvbW1hYWNjZW50PTUwMDtlLm1pbnVzPTU2NDtlLkljaXJjdW1mbGV4PTMzMztlLm5jYXJvbj01MDA7ZS50Y29tbWFhY2NlbnQ9Mjc4O2UubG9naWNhbG5vdD01NjQ7ZS5vZGllcmVzaXM9NTAwO2UudWRpZXJlc2lzPTUwMDtlLm5vdGVxdWFsPTU0OTtlLmdjb21tYWFjY2VudD01MDA7ZS5ldGg9NTAwO2UuemNhcm9uPTQ0NDtlLm5jb21tYWFjY2VudD01MDA7ZS5vbmVzdXBlcmlvcj0zMDA7ZS5pbWFjcm9uPTI3ODtlLkV1cm89NTAwfSk7ZVsiVGltZXMtQm9sZCJdPWdldExvb2t1cFRhYmxlRmFjdG9yeShmdW5jdGlvbihlKXtlLnNwYWNlPTI1MDtlLmV4Y2xhbT0zMzM7ZS5xdW90ZWRibD01NTU7ZS5udW1iZXJzaWduPTUwMDtlLmRvbGxhcj01MDA7ZS5wZXJjZW50PTFlMztlLmFtcGVyc2FuZD04MzM7ZS5xdW90ZXJpZ2h0PTMzMztlLnBhcmVubGVmdD0zMzM7ZS5wYXJlbnJpZ2h0PTMzMztlLmFzdGVyaXNrPTUwMDtlLnBsdXM9NTcwO2UuY29tbWE9MjUwO2UuaHlwaGVuPTMzMztlLnBlcmlvZD0yNTA7ZS5zbGFzaD0yNzg7ZS56ZXJvPTUwMDtlLm9uZT01MDA7ZS50d289NTAwO2UudGhyZWU9NTAwO2UuZm91cj01MDA7ZS5maXZlPTUwMDtlLnNpeD01MDA7ZS5zZXZlbj01MDA7ZS5laWdodD01MDA7ZS5uaW5lPTUwMDtlLmNvbG9uPTMzMztlLnNlbWljb2xvbj0zMzM7ZS5sZXNzPTU3MDtlLmVxdWFsPTU3MDtlLmdyZWF0ZXI9NTcwO2UucXVlc3Rpb249NTAwO2UuYXQ9OTMwO2UuQT03MjI7ZS5CPTY2NztlLkM9NzIyO2UuRD03MjI7ZS5FPTY2NztlLkY9NjExO2UuRz03Nzg7ZS5IPTc3ODtlLkk9Mzg5O2UuSj01MDA7ZS5LPTc3ODtlLkw9NjY3O2UuTT05NDQ7ZS5OPTcyMjtlLk89Nzc4O2UuUD02MTE7ZS5RPTc3ODtlLlI9NzIyO2UuUz01NTY7ZS5UPTY2NztlLlU9NzIyO2UuVj03MjI7ZS5XPTFlMztlLlg9NzIyO2UuWT03MjI7ZS5aPTY2NztlLmJyYWNrZXRsZWZ0PTMzMztlLmJhY2tzbGFzaD0yNzg7ZS5icmFja2V0cmlnaHQ9MzMzO2UuYXNjaWljaXJjdW09NTgxO2UudW5kZXJzY29yZT01MDA7ZS5xdW90ZWxlZnQ9MzMzO2UuYT01MDA7ZS5iPTU1NjtlLmM9NDQ0O2UuZD01NTY7ZS5lPTQ0NDtlLmY9MzMzO2UuZz01MDA7ZS5oPTU1NjtlLmk9Mjc4O2Uuaj0zMzM7ZS5rPTU1NjtlLmw9Mjc4O2UubT04MzM7ZS5uPTU1NjtlLm89NTAwO2UucD01NTY7ZS5xPTU1NjtlLnI9NDQ0O2Uucz0zODk7ZS50PTMzMztlLnU9NTU2O2Uudj01MDA7ZS53PTcyMjtlLng9NTAwO2UueT01MDA7ZS56PTQ0NDtlLmJyYWNlbGVmdD0zOTQ7ZS5iYXI9MjIwO2UuYnJhY2VyaWdodD0zOTQ7ZS5hc2NpaXRpbGRlPTUyMDtlLmV4Y2xhbWRvd249MzMzO2UuY2VudD01MDA7ZS5zdGVybGluZz01MDA7ZS5mcmFjdGlvbj0xNjc7ZS55ZW49NTAwO2UuZmxvcmluPTUwMDtlLnNlY3Rpb249NTAwO2UuY3VycmVuY3k9NTAwO2UucXVvdGVzaW5nbGU9Mjc4O2UucXVvdGVkYmxsZWZ0PTUwMDtlLmd1aWxsZW1vdGxlZnQ9NTAwO2UuZ3VpbHNpbmdsbGVmdD0zMzM7ZS5ndWlsc2luZ2xyaWdodD0zMzM7ZS5maT01NTY7ZS5mbD01NTY7ZS5lbmRhc2g9NTAwO2UuZGFnZ2VyPTUwMDtlLmRhZ2dlcmRibD01MDA7ZS5wZXJpb2RjZW50ZXJlZD0yNTA7ZS5wYXJhZ3JhcGg9NTQwO2UuYnVsbGV0PTM1MDtlLnF1b3Rlc2luZ2xiYXNlPTMzMztlLnF1b3RlZGJsYmFzZT01MDA7ZS5xdW90ZWRibHJpZ2h0PTUwMDtlLmd1aWxsZW1vdHJpZ2h0PTUwMDtlLmVsbGlwc2lzPTFlMztlLnBlcnRob3VzYW5kPTFlMztlLnF1ZXN0aW9uZG93bj01MDA7ZS5ncmF2ZT0zMzM7ZS5hY3V0ZT0zMzM7ZS5jaXJjdW1mbGV4PTMzMztlLnRpbGRlPTMzMztlLm1hY3Jvbj0zMzM7ZS5icmV2ZT0zMzM7ZS5kb3RhY2NlbnQ9MzMzO2UuZGllcmVzaXM9MzMzO2UucmluZz0zMzM7ZS5jZWRpbGxhPTMzMztlLmh1bmdhcnVtbGF1dD0zMzM7ZS5vZ29uZWs9MzMzO2UuY2Fyb249MzMzO2UuZW1kYXNoPTFlMztlLkFFPTFlMztlLm9yZGZlbWluaW5lPTMwMDtlLkxzbGFzaD02Njc7ZS5Pc2xhc2g9Nzc4O2UuT0U9MWUzO2Uub3JkbWFzY3VsaW5lPTMzMDtlLmFlPTcyMjtlLmRvdGxlc3NpPTI3ODtlLmxzbGFzaD0yNzg7ZS5vc2xhc2g9NTAwO2Uub2U9NzIyO2UuZ2VybWFuZGJscz01NTY7ZS5JZGllcmVzaXM9Mzg5O2UuZWFjdXRlPTQ0NDtlLmFicmV2ZT01MDA7ZS51aHVuZ2FydW1sYXV0PTU1NjtlLmVjYXJvbj00NDQ7ZS5ZZGllcmVzaXM9NzIyO2UuZGl2aWRlPTU3MDtlLllhY3V0ZT03MjI7ZS5BY2lyY3VtZmxleD03MjI7ZS5hYWN1dGU9NTAwO2UuVWNpcmN1bWZsZXg9NzIyO2UueWFjdXRlPTUwMDtlLnNjb21tYWFjY2VudD0zODk7ZS5lY2lyY3VtZmxleD00NDQ7ZS5VcmluZz03MjI7ZS5VZGllcmVzaXM9NzIyO2UuYW9nb25laz01MDA7ZS5VYWN1dGU9NzIyO2UudW9nb25laz01NTY7ZS5FZGllcmVzaXM9NjY3O2UuRGNyb2F0PTcyMjtlLmNvbW1hYWNjZW50PTI1MDtlLmNvcHlyaWdodD03NDc7ZS5FbWFjcm9uPTY2NztlLmNjYXJvbj00NDQ7ZS5hcmluZz01MDA7ZS5OY29tbWFhY2NlbnQ9NzIyO2UubGFjdXRlPTI3ODtlLmFncmF2ZT01MDA7ZS5UY29tbWFhY2NlbnQ9NjY3O2UuQ2FjdXRlPTcyMjtlLmF0aWxkZT01MDA7ZS5FZG90YWNjZW50PTY2NztlLnNjYXJvbj0zODk7ZS5zY2VkaWxsYT0zODk7ZS5pYWN1dGU9Mjc4O2UubG96ZW5nZT00OTQ7ZS5SY2Fyb249NzIyO2UuR2NvbW1hYWNjZW50PTc3ODtlLnVjaXJjdW1mbGV4PTU1NjtlLmFjaXJjdW1mbGV4PTUwMDtlLkFtYWNyb249NzIyO2UucmNhcm9uPTQ0NDtlLmNjZWRpbGxhPTQ0NDtlLlpkb3RhY2NlbnQ9NjY3O2UuVGhvcm49NjExO2UuT21hY3Jvbj03Nzg7ZS5SYWN1dGU9NzIyO2UuU2FjdXRlPTU1NjtlLmRjYXJvbj02NzI7ZS5VbWFjcm9uPTcyMjtlLnVyaW5nPTU1NjtlLnRocmVlc3VwZXJpb3I9MzAwO2UuT2dyYXZlPTc3ODtlLkFncmF2ZT03MjI7ZS5BYnJldmU9NzIyO2UubXVsdGlwbHk9NTcwO2UudWFjdXRlPTU1NjtlLlRjYXJvbj02Njc7ZS5wYXJ0aWFsZGlmZj00OTQ7ZS55ZGllcmVzaXM9NTAwO2UuTmFjdXRlPTcyMjtlLmljaXJjdW1mbGV4PTI3ODtlLkVjaXJjdW1mbGV4PTY2NztlLmFkaWVyZXNpcz01MDA7ZS5lZGllcmVzaXM9NDQ0O2UuY2FjdXRlPTQ0NDtlLm5hY3V0ZT01NTY7ZS51bWFjcm9uPTU1NjtlLk5jYXJvbj03MjI7ZS5JYWN1dGU9Mzg5O2UucGx1c21pbnVzPTU3MDtlLmJyb2tlbmJhcj0yMjA7ZS5yZWdpc3RlcmVkPTc0NztlLkdicmV2ZT03Nzg7ZS5JZG90YWNjZW50PTM4OTtlLnN1bW1hdGlvbj02MDA7ZS5FZ3JhdmU9NjY3O2UucmFjdXRlPTQ0NDtlLm9tYWNyb249NTAwO2UuWmFjdXRlPTY2NztlLlpjYXJvbj02Njc7ZS5ncmVhdGVyZXF1YWw9NTQ5O2UuRXRoPTcyMjtlLkNjZWRpbGxhPTcyMjtlLmxjb21tYWFjY2VudD0yNzg7ZS50Y2Fyb249NDE2O2UuZW9nb25laz00NDQ7ZS5Vb2dvbmVrPTcyMjtlLkFhY3V0ZT03MjI7ZS5BZGllcmVzaXM9NzIyO2UuZWdyYXZlPTQ0NDtlLnphY3V0ZT00NDQ7ZS5pb2dvbmVrPTI3ODtlLk9hY3V0ZT03Nzg7ZS5vYWN1dGU9NTAwO2UuYW1hY3Jvbj01MDA7ZS5zYWN1dGU9Mzg5O2UuaWRpZXJlc2lzPTI3ODtlLk9jaXJjdW1mbGV4PTc3ODtlLlVncmF2ZT03MjI7ZS5EZWx0YT02MTI7ZS50aG9ybj01NTY7ZS50d29zdXBlcmlvcj0zMDA7ZS5PZGllcmVzaXM9Nzc4O2UubXU9NTU2O2UuaWdyYXZlPTI3ODtlLm9odW5nYXJ1bWxhdXQ9NTAwO2UuRW9nb25laz02Njc7ZS5kY3JvYXQ9NTU2O2UudGhyZWVxdWFydGVycz03NTA7ZS5TY2VkaWxsYT01NTY7ZS5sY2Fyb249Mzk0O2UuS2NvbW1hYWNjZW50PTc3ODtlLkxhY3V0ZT02Njc7ZS50cmFkZW1hcms9MWUzO2UuZWRvdGFjY2VudD00NDQ7ZS5JZ3JhdmU9Mzg5O2UuSW1hY3Jvbj0zODk7ZS5MY2Fyb249NjY3O2Uub25laGFsZj03NTA7ZS5sZXNzZXF1YWw9NTQ5O2Uub2NpcmN1bWZsZXg9NTAwO2UubnRpbGRlPTU1NjtlLlVodW5nYXJ1bWxhdXQ9NzIyO2UuRWFjdXRlPTY2NztlLmVtYWNyb249NDQ0O2UuZ2JyZXZlPTUwMDtlLm9uZXF1YXJ0ZXI9NzUwO2UuU2Nhcm9uPTU1NjtlLlNjb21tYWFjY2VudD01NTY7ZS5PaHVuZ2FydW1sYXV0PTc3ODtlLmRlZ3JlZT00MDA7ZS5vZ3JhdmU9NTAwO2UuQ2Nhcm9uPTcyMjtlLnVncmF2ZT01NTY7ZS5yYWRpY2FsPTU0OTtlLkRjYXJvbj03MjI7ZS5yY29tbWFhY2NlbnQ9NDQ0O2UuTnRpbGRlPTcyMjtlLm90aWxkZT01MDA7ZS5SY29tbWFhY2NlbnQ9NzIyO2UuTGNvbW1hYWNjZW50PTY2NztlLkF0aWxkZT03MjI7ZS5Bb2dvbmVrPTcyMjtlLkFyaW5nPTcyMjtlLk90aWxkZT03Nzg7ZS56ZG90YWNjZW50PTQ0NDtlLkVjYXJvbj02Njc7ZS5Jb2dvbmVrPTM4OTtlLmtjb21tYWFjY2VudD01NTY7ZS5taW51cz01NzA7ZS5JY2lyY3VtZmxleD0zODk7ZS5uY2Fyb249NTU2O2UudGNvbW1hYWNjZW50PTMzMztlLmxvZ2ljYWxub3Q9NTcwO2Uub2RpZXJlc2lzPTUwMDtlLnVkaWVyZXNpcz01NTY7ZS5ub3RlcXVhbD01NDk7ZS5nY29tbWFhY2NlbnQ9NTAwO2UuZXRoPTUwMDtlLnpjYXJvbj00NDQ7ZS5uY29tbWFhY2NlbnQ9NTU2O2Uub25lc3VwZXJpb3I9MzAwO2UuaW1hY3Jvbj0yNzg7ZS5FdXJvPTUwMH0pO2VbIlRpbWVzLUJvbGRJdGFsaWMiXT1nZXRMb29rdXBUYWJsZUZhY3RvcnkoZnVuY3Rpb24oZSl7ZS5zcGFjZT0yNTA7ZS5leGNsYW09Mzg5O2UucXVvdGVkYmw9NTU1O2UubnVtYmVyc2lnbj01MDA7ZS5kb2xsYXI9NTAwO2UucGVyY2VudD04MzM7ZS5hbXBlcnNhbmQ9Nzc4O2UucXVvdGVyaWdodD0zMzM7ZS5wYXJlbmxlZnQ9MzMzO2UucGFyZW5yaWdodD0zMzM7ZS5hc3Rlcmlzaz01MDA7ZS5wbHVzPTU3MDtlLmNvbW1hPTI1MDtlLmh5cGhlbj0zMzM7ZS5wZXJpb2Q9MjUwO2Uuc2xhc2g9Mjc4O2UuemVybz01MDA7ZS5vbmU9NTAwO2UudHdvPTUwMDtlLnRocmVlPTUwMDtlLmZvdXI9NTAwO2UuZml2ZT01MDA7ZS5zaXg9NTAwO2Uuc2V2ZW49NTAwO2UuZWlnaHQ9NTAwO2UubmluZT01MDA7ZS5jb2xvbj0zMzM7ZS5zZW1pY29sb249MzMzO2UubGVzcz01NzA7ZS5lcXVhbD01NzA7ZS5ncmVhdGVyPTU3MDtlLnF1ZXN0aW9uPTUwMDtlLmF0PTgzMjtlLkE9NjY3O2UuQj02Njc7ZS5DPTY2NztlLkQ9NzIyO2UuRT02Njc7ZS5GPTY2NztlLkc9NzIyO2UuSD03Nzg7ZS5JPTM4OTtlLko9NTAwO2UuSz02Njc7ZS5MPTYxMTtlLk09ODg5O2UuTj03MjI7ZS5PPTcyMjtlLlA9NjExO2UuUT03MjI7ZS5SPTY2NztlLlM9NTU2O2UuVD02MTE7ZS5VPTcyMjtlLlY9NjY3O2UuVz04ODk7ZS5YPTY2NztlLlk9NjExO2UuWj02MTE7ZS5icmFja2V0bGVmdD0zMzM7ZS5iYWNrc2xhc2g9Mjc4O2UuYnJhY2tldHJpZ2h0PTMzMztlLmFzY2lpY2lyY3VtPTU3MDtlLnVuZGVyc2NvcmU9NTAwO2UucXVvdGVsZWZ0PTMzMztlLmE9NTAwO2UuYj01MDA7ZS5jPTQ0NDtlLmQ9NTAwO2UuZT00NDQ7ZS5mPTMzMztlLmc9NTAwO2UuaD01NTY7ZS5pPTI3ODtlLmo9Mjc4O2Uuaz01MDA7ZS5sPTI3ODtlLm09Nzc4O2Uubj01NTY7ZS5vPTUwMDtlLnA9NTAwO2UucT01MDA7ZS5yPTM4OTtlLnM9Mzg5O2UudD0yNzg7ZS51PTU1NjtlLnY9NDQ0O2Uudz02Njc7ZS54PTUwMDtlLnk9NDQ0O2Uuej0zODk7ZS5icmFjZWxlZnQ9MzQ4O2UuYmFyPTIyMDtlLmJyYWNlcmlnaHQ9MzQ4O2UuYXNjaWl0aWxkZT01NzA7ZS5leGNsYW1kb3duPTM4OTtlLmNlbnQ9NTAwO2Uuc3Rlcmxpbmc9NTAwO2UuZnJhY3Rpb249MTY3O2UueWVuPTUwMDtlLmZsb3Jpbj01MDA7ZS5zZWN0aW9uPTUwMDtlLmN1cnJlbmN5PTUwMDtlLnF1b3Rlc2luZ2xlPTI3ODtlLnF1b3RlZGJsbGVmdD01MDA7ZS5ndWlsbGVtb3RsZWZ0PTUwMDtlLmd1aWxzaW5nbGxlZnQ9MzMzO2UuZ3VpbHNpbmdscmlnaHQ9MzMzO2UuZmk9NTU2O2UuZmw9NTU2O2UuZW5kYXNoPTUwMDtlLmRhZ2dlcj01MDA7ZS5kYWdnZXJkYmw9NTAwO2UucGVyaW9kY2VudGVyZWQ9MjUwO2UucGFyYWdyYXBoPTUwMDtlLmJ1bGxldD0zNTA7ZS5xdW90ZXNpbmdsYmFzZT0zMzM7ZS5xdW90ZWRibGJhc2U9NTAwO2UucXVvdGVkYmxyaWdodD01MDA7ZS5ndWlsbGVtb3RyaWdodD01MDA7ZS5lbGxpcHNpcz0xZTM7ZS5wZXJ0aG91c2FuZD0xZTM7ZS5xdWVzdGlvbmRvd249NTAwO2UuZ3JhdmU9MzMzO2UuYWN1dGU9MzMzO2UuY2lyY3VtZmxleD0zMzM7ZS50aWxkZT0zMzM7ZS5tYWNyb249MzMzO2UuYnJldmU9MzMzO2UuZG90YWNjZW50PTMzMztlLmRpZXJlc2lzPTMzMztlLnJpbmc9MzMzO2UuY2VkaWxsYT0zMzM7ZS5odW5nYXJ1bWxhdXQ9MzMzO2Uub2dvbmVrPTMzMztlLmNhcm9uPTMzMztlLmVtZGFzaD0xZTM7ZS5BRT05NDQ7ZS5vcmRmZW1pbmluZT0yNjY7ZS5Mc2xhc2g9NjExO2UuT3NsYXNoPTcyMjtlLk9FPTk0NDtlLm9yZG1hc2N1bGluZT0zMDA7ZS5hZT03MjI7ZS5kb3RsZXNzaT0yNzg7ZS5sc2xhc2g9Mjc4O2Uub3NsYXNoPTUwMDtlLm9lPTcyMjtlLmdlcm1hbmRibHM9NTAwO2UuSWRpZXJlc2lzPTM4OTtlLmVhY3V0ZT00NDQ7ZS5hYnJldmU9NTAwO2UudWh1bmdhcnVtbGF1dD01NTY7ZS5lY2Fyb249NDQ0O2UuWWRpZXJlc2lzPTYxMTtlLmRpdmlkZT01NzA7ZS5ZYWN1dGU9NjExO2UuQWNpcmN1bWZsZXg9NjY3O2UuYWFjdXRlPTUwMDtlLlVjaXJjdW1mbGV4PTcyMjtlLnlhY3V0ZT00NDQ7ZS5zY29tbWFhY2NlbnQ9Mzg5O2UuZWNpcmN1bWZsZXg9NDQ0O2UuVXJpbmc9NzIyO2UuVWRpZXJlc2lzPTcyMjtlLmFvZ29uZWs9NTAwO2UuVWFjdXRlPTcyMjtlLnVvZ29uZWs9NTU2O2UuRWRpZXJlc2lzPTY2NztlLkRjcm9hdD03MjI7ZS5jb21tYWFjY2VudD0yNTA7ZS5jb3B5cmlnaHQ9NzQ3O2UuRW1hY3Jvbj02Njc7ZS5jY2Fyb249NDQ0O2UuYXJpbmc9NTAwO2UuTmNvbW1hYWNjZW50PTcyMjtlLmxhY3V0ZT0yNzg7ZS5hZ3JhdmU9NTAwO2UuVGNvbW1hYWNjZW50PTYxMTtlLkNhY3V0ZT02Njc7ZS5hdGlsZGU9NTAwO2UuRWRvdGFjY2VudD02Njc7ZS5zY2Fyb249Mzg5O2Uuc2NlZGlsbGE9Mzg5O2UuaWFjdXRlPTI3ODtlLmxvemVuZ2U9NDk0O2UuUmNhcm9uPTY2NztlLkdjb21tYWFjY2VudD03MjI7ZS51Y2lyY3VtZmxleD01NTY7ZS5hY2lyY3VtZmxleD01MDA7ZS5BbWFjcm9uPTY2NztlLnJjYXJvbj0zODk7ZS5jY2VkaWxsYT00NDQ7ZS5aZG90YWNjZW50PTYxMTtlLlRob3JuPTYxMTtlLk9tYWNyb249NzIyO2UuUmFjdXRlPTY2NztlLlNhY3V0ZT01NTY7ZS5kY2Fyb249NjA4O2UuVW1hY3Jvbj03MjI7ZS51cmluZz01NTY7ZS50aHJlZXN1cGVyaW9yPTMwMDtlLk9ncmF2ZT03MjI7ZS5BZ3JhdmU9NjY3O2UuQWJyZXZlPTY2NztlLm11bHRpcGx5PTU3MDtlLnVhY3V0ZT01NTY7ZS5UY2Fyb249NjExO2UucGFydGlhbGRpZmY9NDk0O2UueWRpZXJlc2lzPTQ0NDtlLk5hY3V0ZT03MjI7ZS5pY2lyY3VtZmxleD0yNzg7ZS5FY2lyY3VtZmxleD02Njc7ZS5hZGllcmVzaXM9NTAwO2UuZWRpZXJlc2lzPTQ0NDtlLmNhY3V0ZT00NDQ7ZS5uYWN1dGU9NTU2O2UudW1hY3Jvbj01NTY7ZS5OY2Fyb249NzIyO2UuSWFjdXRlPTM4OTtlLnBsdXNtaW51cz01NzA7ZS5icm9rZW5iYXI9MjIwO2UucmVnaXN0ZXJlZD03NDc7ZS5HYnJldmU9NzIyO2UuSWRvdGFjY2VudD0zODk7ZS5zdW1tYXRpb249NjAwO2UuRWdyYXZlPTY2NztlLnJhY3V0ZT0zODk7ZS5vbWFjcm9uPTUwMDtlLlphY3V0ZT02MTE7ZS5aY2Fyb249NjExO2UuZ3JlYXRlcmVxdWFsPTU0OTtlLkV0aD03MjI7ZS5DY2VkaWxsYT02Njc7ZS5sY29tbWFhY2NlbnQ9Mjc4O2UudGNhcm9uPTM2NjtlLmVvZ29uZWs9NDQ0O2UuVW9nb25laz03MjI7ZS5BYWN1dGU9NjY3O2UuQWRpZXJlc2lzPTY2NztlLmVncmF2ZT00NDQ7ZS56YWN1dGU9Mzg5O2UuaW9nb25laz0yNzg7ZS5PYWN1dGU9NzIyO2Uub2FjdXRlPTUwMDtlLmFtYWNyb249NTAwO2Uuc2FjdXRlPTM4OTtlLmlkaWVyZXNpcz0yNzg7ZS5PY2lyY3VtZmxleD03MjI7ZS5VZ3JhdmU9NzIyO2UuRGVsdGE9NjEyO2UudGhvcm49NTAwO2UudHdvc3VwZXJpb3I9MzAwO2UuT2RpZXJlc2lzPTcyMjtlLm11PTU3NjtlLmlncmF2ZT0yNzg7ZS5vaHVuZ2FydW1sYXV0PTUwMDtlLkVvZ29uZWs9NjY3O2UuZGNyb2F0PTUwMDtlLnRocmVlcXVhcnRlcnM9NzUwO2UuU2NlZGlsbGE9NTU2O2UubGNhcm9uPTM4MjtlLktjb21tYWFjY2VudD02Njc7ZS5MYWN1dGU9NjExO2UudHJhZGVtYXJrPTFlMztlLmVkb3RhY2NlbnQ9NDQ0O2UuSWdyYXZlPTM4OTtlLkltYWNyb249Mzg5O2UuTGNhcm9uPTYxMTtlLm9uZWhhbGY9NzUwO2UubGVzc2VxdWFsPTU0OTtlLm9jaXJjdW1mbGV4PTUwMDtlLm50aWxkZT01NTY7ZS5VaHVuZ2FydW1sYXV0PTcyMjtlLkVhY3V0ZT02Njc7ZS5lbWFjcm9uPTQ0NDtlLmdicmV2ZT01MDA7ZS5vbmVxdWFydGVyPTc1MDtlLlNjYXJvbj01NTY7ZS5TY29tbWFhY2NlbnQ9NTU2O2UuT2h1bmdhcnVtbGF1dD03MjI7ZS5kZWdyZWU9NDAwO2Uub2dyYXZlPTUwMDtlLkNjYXJvbj02Njc7ZS51Z3JhdmU9NTU2O2UucmFkaWNhbD01NDk7ZS5EY2Fyb249NzIyO2UucmNvbW1hYWNjZW50PTM4OTtlLk50aWxkZT03MjI7ZS5vdGlsZGU9NTAwO2UuUmNvbW1hYWNjZW50PTY2NztlLkxjb21tYWFjY2VudD02MTE7ZS5BdGlsZGU9NjY3O2UuQW9nb25laz02Njc7ZS5BcmluZz02Njc7ZS5PdGlsZGU9NzIyO2UuemRvdGFjY2VudD0zODk7ZS5FY2Fyb249NjY3O2UuSW9nb25laz0zODk7ZS5rY29tbWFhY2NlbnQ9NTAwO2UubWludXM9NjA2O2UuSWNpcmN1bWZsZXg9Mzg5O2UubmNhcm9uPTU1NjtlLnRjb21tYWFjY2VudD0yNzg7ZS5sb2dpY2Fsbm90PTYwNjtlLm9kaWVyZXNpcz01MDA7ZS51ZGllcmVzaXM9NTU2O2Uubm90ZXF1YWw9NTQ5O2UuZ2NvbW1hYWNjZW50PTUwMDtlLmV0aD01MDA7ZS56Y2Fyb249Mzg5O2UubmNvbW1hYWNjZW50PTU1NjtlLm9uZXN1cGVyaW9yPTMwMDtlLmltYWNyb249Mjc4O2UuRXVybz01MDB9KTtlWyJUaW1lcy1JdGFsaWMiXT1nZXRMb29rdXBUYWJsZUZhY3RvcnkoZnVuY3Rpb24oZSl7ZS5zcGFjZT0yNTA7ZS5leGNsYW09MzMzO2UucXVvdGVkYmw9NDIwO2UubnVtYmVyc2lnbj01MDA7ZS5kb2xsYXI9NTAwO2UucGVyY2VudD04MzM7ZS5hbXBlcnNhbmQ9Nzc4O2UucXVvdGVyaWdodD0zMzM7ZS5wYXJlbmxlZnQ9MzMzO2UucGFyZW5yaWdodD0zMzM7ZS5hc3Rlcmlzaz01MDA7ZS5wbHVzPTY3NTtlLmNvbW1hPTI1MDtlLmh5cGhlbj0zMzM7ZS5wZXJpb2Q9MjUwO2Uuc2xhc2g9Mjc4O2UuemVybz01MDA7ZS5vbmU9NTAwO2UudHdvPTUwMDtlLnRocmVlPTUwMDtlLmZvdXI9NTAwO2UuZml2ZT01MDA7ZS5zaXg9NTAwO2Uuc2V2ZW49NTAwO2UuZWlnaHQ9NTAwO2UubmluZT01MDA7ZS5jb2xvbj0zMzM7ZS5zZW1pY29sb249MzMzO2UubGVzcz02NzU7ZS5lcXVhbD02NzU7ZS5ncmVhdGVyPTY3NTtlLnF1ZXN0aW9uPTUwMDtlLmF0PTkyMDtlLkE9NjExO2UuQj02MTE7ZS5DPTY2NztlLkQ9NzIyO2UuRT02MTE7ZS5GPTYxMTtlLkc9NzIyO2UuSD03MjI7ZS5JPTMzMztlLko9NDQ0O2UuSz02Njc7ZS5MPTU1NjtlLk09ODMzO2UuTj02Njc7ZS5PPTcyMjtlLlA9NjExO2UuUT03MjI7ZS5SPTYxMTtlLlM9NTAwO2UuVD01NTY7ZS5VPTcyMjtlLlY9NjExO2UuVz04MzM7ZS5YPTYxMTtlLlk9NTU2O2UuWj01NTY7ZS5icmFja2V0bGVmdD0zODk7ZS5iYWNrc2xhc2g9Mjc4O2UuYnJhY2tldHJpZ2h0PTM4OTtlLmFzY2lpY2lyY3VtPTQyMjtlLnVuZGVyc2NvcmU9NTAwO2UucXVvdGVsZWZ0PTMzMztlLmE9NTAwO2UuYj01MDA7ZS5jPTQ0NDtlLmQ9NTAwO2UuZT00NDQ7ZS5mPTI3ODtlLmc9NTAwO2UuaD01MDA7ZS5pPTI3ODtlLmo9Mjc4O2Uuaz00NDQ7ZS5sPTI3ODtlLm09NzIyO2Uubj01MDA7ZS5vPTUwMDtlLnA9NTAwO2UucT01MDA7ZS5yPTM4OTtlLnM9Mzg5O2UudD0yNzg7ZS51PTUwMDtlLnY9NDQ0O2Uudz02Njc7ZS54PTQ0NDtlLnk9NDQ0O2Uuej0zODk7ZS5icmFjZWxlZnQ9NDAwO2UuYmFyPTI3NTtlLmJyYWNlcmlnaHQ9NDAwO2UuYXNjaWl0aWxkZT01NDE7ZS5leGNsYW1kb3duPTM4OTtlLmNlbnQ9NTAwO2Uuc3Rlcmxpbmc9NTAwO2UuZnJhY3Rpb249MTY3O2UueWVuPTUwMDtlLmZsb3Jpbj01MDA7ZS5zZWN0aW9uPTUwMDtlLmN1cnJlbmN5PTUwMDtlLnF1b3Rlc2luZ2xlPTIxNDtlLnF1b3RlZGJsbGVmdD01NTY7ZS5ndWlsbGVtb3RsZWZ0PTUwMDtlLmd1aWxzaW5nbGxlZnQ9MzMzO2UuZ3VpbHNpbmdscmlnaHQ9MzMzO2UuZmk9NTAwO2UuZmw9NTAwO2UuZW5kYXNoPTUwMDtlLmRhZ2dlcj01MDA7ZS5kYWdnZXJkYmw9NTAwO2UucGVyaW9kY2VudGVyZWQ9MjUwO2UucGFyYWdyYXBoPTUyMztlLmJ1bGxldD0zNTA7ZS5xdW90ZXNpbmdsYmFzZT0zMzM7ZS5xdW90ZWRibGJhc2U9NTU2O2UucXVvdGVkYmxyaWdodD01NTY7ZS5ndWlsbGVtb3RyaWdodD01MDA7ZS5lbGxpcHNpcz04ODk7ZS5wZXJ0aG91c2FuZD0xZTM7ZS5xdWVzdGlvbmRvd249NTAwO2UuZ3JhdmU9MzMzO2UuYWN1dGU9MzMzO2UuY2lyY3VtZmxleD0zMzM7ZS50aWxkZT0zMzM7ZS5tYWNyb249MzMzO2UuYnJldmU9MzMzO2UuZG90YWNjZW50PTMzMztlLmRpZXJlc2lzPTMzMztlLnJpbmc9MzMzO2UuY2VkaWxsYT0zMzM7ZS5odW5nYXJ1bWxhdXQ9MzMzO2Uub2dvbmVrPTMzMztlLmNhcm9uPTMzMztlLmVtZGFzaD04ODk7ZS5BRT04ODk7ZS5vcmRmZW1pbmluZT0yNzY7ZS5Mc2xhc2g9NTU2O2UuT3NsYXNoPTcyMjtlLk9FPTk0NDtlLm9yZG1hc2N1bGluZT0zMTA7ZS5hZT02Njc7ZS5kb3RsZXNzaT0yNzg7ZS5sc2xhc2g9Mjc4O2Uub3NsYXNoPTUwMDtlLm9lPTY2NztlLmdlcm1hbmRibHM9NTAwO2UuSWRpZXJlc2lzPTMzMztlLmVhY3V0ZT00NDQ7ZS5hYnJldmU9NTAwO2UudWh1bmdhcnVtbGF1dD01MDA7ZS5lY2Fyb249NDQ0O2UuWWRpZXJlc2lzPTU1NjtlLmRpdmlkZT02NzU7ZS5ZYWN1dGU9NTU2O2UuQWNpcmN1bWZsZXg9NjExO2UuYWFjdXRlPTUwMDtlLlVjaXJjdW1mbGV4PTcyMjtlLnlhY3V0ZT00NDQ7ZS5zY29tbWFhY2NlbnQ9Mzg5O2UuZWNpcmN1bWZsZXg9NDQ0O2UuVXJpbmc9NzIyO2UuVWRpZXJlc2lzPTcyMjtlLmFvZ29uZWs9NTAwO2UuVWFjdXRlPTcyMjtlLnVvZ29uZWs9NTAwO2UuRWRpZXJlc2lzPTYxMTtlLkRjcm9hdD03MjI7ZS5jb21tYWFjY2VudD0yNTA7ZS5jb3B5cmlnaHQ9NzYwO2UuRW1hY3Jvbj02MTE7ZS5jY2Fyb249NDQ0O2UuYXJpbmc9NTAwO2UuTmNvbW1hYWNjZW50PTY2NztlLmxhY3V0ZT0yNzg7ZS5hZ3JhdmU9NTAwO2UuVGNvbW1hYWNjZW50PTU1NjtlLkNhY3V0ZT02Njc7ZS5hdGlsZGU9NTAwO2UuRWRvdGFjY2VudD02MTE7ZS5zY2Fyb249Mzg5O2Uuc2NlZGlsbGE9Mzg5O2UuaWFjdXRlPTI3ODtlLmxvemVuZ2U9NDcxO2UuUmNhcm9uPTYxMTtlLkdjb21tYWFjY2VudD03MjI7ZS51Y2lyY3VtZmxleD01MDA7ZS5hY2lyY3VtZmxleD01MDA7ZS5BbWFjcm9uPTYxMTtlLnJjYXJvbj0zODk7ZS5jY2VkaWxsYT00NDQ7ZS5aZG90YWNjZW50PTU1NjtlLlRob3JuPTYxMTtlLk9tYWNyb249NzIyO2UuUmFjdXRlPTYxMTtlLlNhY3V0ZT01MDA7ZS5kY2Fyb249NTQ0O2UuVW1hY3Jvbj03MjI7ZS51cmluZz01MDA7ZS50aHJlZXN1cGVyaW9yPTMwMDtlLk9ncmF2ZT03MjI7ZS5BZ3JhdmU9NjExO2UuQWJyZXZlPTYxMTtlLm11bHRpcGx5PTY3NTtlLnVhY3V0ZT01MDA7ZS5UY2Fyb249NTU2O2UucGFydGlhbGRpZmY9NDc2O2UueWRpZXJlc2lzPTQ0NDtlLk5hY3V0ZT02Njc7ZS5pY2lyY3VtZmxleD0yNzg7ZS5FY2lyY3VtZmxleD02MTE7ZS5hZGllcmVzaXM9NTAwO2UuZWRpZXJlc2lzPTQ0NDtlLmNhY3V0ZT00NDQ7ZS5uYWN1dGU9NTAwO2UudW1hY3Jvbj01MDA7ZS5OY2Fyb249NjY3O2UuSWFjdXRlPTMzMztlLnBsdXNtaW51cz02NzU7ZS5icm9rZW5iYXI9Mjc1O2UucmVnaXN0ZXJlZD03NjA7ZS5HYnJldmU9NzIyO2UuSWRvdGFjY2VudD0zMzM7ZS5zdW1tYXRpb249NjAwO2UuRWdyYXZlPTYxMTtlLnJhY3V0ZT0zODk7ZS5vbWFjcm9uPTUwMDtlLlphY3V0ZT01NTY7ZS5aY2Fyb249NTU2O2UuZ3JlYXRlcmVxdWFsPTU0OTtlLkV0aD03MjI7ZS5DY2VkaWxsYT02Njc7ZS5sY29tbWFhY2NlbnQ9Mjc4O2UudGNhcm9uPTMwMDtlLmVvZ29uZWs9NDQ0O2UuVW9nb25laz03MjI7ZS5BYWN1dGU9NjExO2UuQWRpZXJlc2lzPTYxMTtlLmVncmF2ZT00NDQ7ZS56YWN1dGU9Mzg5O2UuaW9nb25laz0yNzg7ZS5PYWN1dGU9NzIyO2Uub2FjdXRlPTUwMDtlLmFtYWNyb249NTAwO2Uuc2FjdXRlPTM4OTtlLmlkaWVyZXNpcz0yNzg7ZS5PY2lyY3VtZmxleD03MjI7ZS5VZ3JhdmU9NzIyO2UuRGVsdGE9NjEyO2UudGhvcm49NTAwO2UudHdvc3VwZXJpb3I9MzAwO2UuT2RpZXJlc2lzPTcyMjtlLm11PTUwMDtlLmlncmF2ZT0yNzg7ZS5vaHVuZ2FydW1sYXV0PTUwMDtlLkVvZ29uZWs9NjExO2UuZGNyb2F0PTUwMDtlLnRocmVlcXVhcnRlcnM9NzUwO2UuU2NlZGlsbGE9NTAwO2UubGNhcm9uPTMwMDtlLktjb21tYWFjY2VudD02Njc7ZS5MYWN1dGU9NTU2O2UudHJhZGVtYXJrPTk4MDtlLmVkb3RhY2NlbnQ9NDQ0O2UuSWdyYXZlPTMzMztlLkltYWNyb249MzMzO2UuTGNhcm9uPTYxMTtlLm9uZWhhbGY9NzUwO2UubGVzc2VxdWFsPTU0OTtlLm9jaXJjdW1mbGV4PTUwMDtlLm50aWxkZT01MDA7ZS5VaHVuZ2FydW1sYXV0PTcyMjtlLkVhY3V0ZT02MTE7ZS5lbWFjcm9uPTQ0NDtlLmdicmV2ZT01MDA7ZS5vbmVxdWFydGVyPTc1MDtlLlNjYXJvbj01MDA7ZS5TY29tbWFhY2NlbnQ9NTAwO2UuT2h1bmdhcnVtbGF1dD03MjI7ZS5kZWdyZWU9NDAwO2Uub2dyYXZlPTUwMDtlLkNjYXJvbj02Njc7ZS51Z3JhdmU9NTAwO2UucmFkaWNhbD00NTM7ZS5EY2Fyb249NzIyO2UucmNvbW1hYWNjZW50PTM4OTtlLk50aWxkZT02Njc7ZS5vdGlsZGU9NTAwO2UuUmNvbW1hYWNjZW50PTYxMTtlLkxjb21tYWFjY2VudD01NTY7ZS5BdGlsZGU9NjExO2UuQW9nb25laz02MTE7ZS5BcmluZz02MTE7ZS5PdGlsZGU9NzIyO2UuemRvdGFjY2VudD0zODk7ZS5FY2Fyb249NjExO2UuSW9nb25laz0zMzM7ZS5rY29tbWFhY2NlbnQ9NDQ0O2UubWludXM9Njc1O2UuSWNpcmN1bWZsZXg9MzMzO2UubmNhcm9uPTUwMDtlLnRjb21tYWFjY2VudD0yNzg7ZS5sb2dpY2Fsbm90PTY3NTtlLm9kaWVyZXNpcz01MDA7ZS51ZGllcmVzaXM9NTAwO2Uubm90ZXF1YWw9NTQ5O2UuZ2NvbW1hYWNjZW50PTUwMDtlLmV0aD01MDA7ZS56Y2Fyb249Mzg5O2UubmNvbW1hYWNjZW50PTUwMDtlLm9uZXN1cGVyaW9yPTMwMDtlLmltYWNyb249Mjc4O2UuRXVybz01MDB9KTtlLlphcGZEaW5nYmF0cz1nZXRMb29rdXBUYWJsZUZhY3RvcnkoZnVuY3Rpb24oZSl7ZS5zcGFjZT0yNzg7ZS5hMT05NzQ7ZS5hMj05NjE7ZS5hMjAyPTk3NDtlLmEzPTk4MDtlLmE0PTcxOTtlLmE1PTc4OTtlLmExMTk9NzkwO2UuYTExOD03OTE7ZS5hMTE3PTY5MDtlLmExMT05NjA7ZS5hMTI9OTM5O2UuYTEzPTU0OTtlLmExND04NTU7ZS5hMTU9OTExO2UuYTE2PTkzMztlLmExMDU9OTExO2UuYTE3PTk0NTtlLmExOD05NzQ7ZS5hMTk9NzU1O2UuYTIwPTg0NjtlLmEyMT03NjI7ZS5hMjI9NzYxO2UuYTIzPTU3MTtlLmEyND02Nzc7ZS5hMjU9NzYzO2UuYTI2PTc2MDtlLmEyNz03NTk7ZS5hMjg9NzU0O2UuYTY9NDk0O2UuYTc9NTUyO2UuYTg9NTM3O2UuYTk9NTc3O2UuYTEwPTY5MjtlLmEyOT03ODY7ZS5hMzA9Nzg4O2UuYTMxPTc4ODtlLmEzMj03OTA7ZS5hMzM9NzkzO2UuYTM0PTc5NDtlLmEzNT04MTY7ZS5hMzY9ODIzO2UuYTM3PTc4OTtlLmEzOD04NDE7ZS5hMzk9ODIzO2UuYTQwPTgzMztlLmE0MT04MTY7ZS5hNDI9ODMxO2UuYTQzPTkyMztlLmE0ND03NDQ7ZS5hNDU9NzIzO2UuYTQ2PTc0OTtlLmE0Nz03OTA7ZS5hNDg9NzkyO2UuYTQ5PTY5NTtlLmE1MD03NzY7ZS5hNTE9NzY4O2UuYTUyPTc5MjtlLmE1Mz03NTk7ZS5hNTQ9NzA3O2UuYTU1PTcwODtlLmE1Nj02ODI7ZS5hNTc9NzAxO2UuYTU4PTgyNjtlLmE1OT04MTU7ZS5hNjA9Nzg5O2UuYTYxPTc4OTtlLmE2Mj03MDc7ZS5hNjM9Njg3O2UuYTY0PTY5NjtlLmE2NT02ODk7ZS5hNjY9Nzg2O2UuYTY3PTc4NztlLmE2OD03MTM7ZS5hNjk9NzkxO2UuYTcwPTc4NTtlLmE3MT03OTE7ZS5hNzI9ODczO2UuYTczPTc2MTtlLmE3ND03NjI7ZS5hMjAzPTc2MjtlLmE3NT03NTk7ZS5hMjA0PTc1OTtlLmE3Nj04OTI7ZS5hNzc9ODkyO2UuYTc4PTc4ODtlLmE3OT03ODQ7ZS5hODE9NDM4O2UuYTgyPTEzODtlLmE4Mz0yNzc7ZS5hODQ9NDE1O2UuYTk3PTM5MjtlLmE5OD0zOTI7ZS5hOTk9NjY4O2UuYTEwMD02Njg7ZS5hODk9MzkwO2UuYTkwPTM5MDtlLmE5Mz0zMTc7ZS5hOTQ9MzE3O2UuYTkxPTI3NjtlLmE5Mj0yNzY7ZS5hMjA1PTUwOTtlLmE4NT01MDk7ZS5hMjA2PTQxMDtlLmE4Nj00MTA7ZS5hODc9MjM0O2UuYTg4PTIzNDtlLmE5NT0zMzQ7ZS5hOTY9MzM0O2UuYTEwMT03MzI7ZS5hMTAyPTU0NDtlLmExMDM9NTQ0O2UuYTEwND05MTA7ZS5hMTA2PTY2NztlLmExMDc9NzYwO2UuYTEwOD03NjA7ZS5hMTEyPTc3NjtlLmExMTE9NTk1O2UuYTExMD02OTQ7ZS5hMTA5PTYyNjtlLmExMjA9Nzg4O2UuYTEyMT03ODg7ZS5hMTIyPTc4ODtlLmExMjM9Nzg4O2UuYTEyND03ODg7ZS5hMTI1PTc4ODtlLmExMjY9Nzg4O2UuYTEyNz03ODg7ZS5hMTI4PTc4ODtlLmExMjk9Nzg4O2UuYTEzMD03ODg7ZS5hMTMxPTc4ODtlLmExMzI9Nzg4O2UuYTEzMz03ODg7ZS5hMTM0PTc4ODtlLmExMzU9Nzg4O2UuYTEzNj03ODg7ZS5hMTM3PTc4ODtlLmExMzg9Nzg4O2UuYTEzOT03ODg7ZS5hMTQwPTc4ODtlLmExNDE9Nzg4O2UuYTE0Mj03ODg7ZS5hMTQzPTc4ODtlLmExNDQ9Nzg4O2UuYTE0NT03ODg7ZS5hMTQ2PTc4ODtlLmExNDc9Nzg4O2UuYTE0OD03ODg7ZS5hMTQ5PTc4ODtlLmExNTA9Nzg4O2UuYTE1MT03ODg7ZS5hMTUyPTc4ODtlLmExNTM9Nzg4O2UuYTE1ND03ODg7ZS5hMTU1PTc4ODtlLmExNTY9Nzg4O2UuYTE1Nz03ODg7ZS5hMTU4PTc4ODtlLmExNTk9Nzg4O2UuYTE2MD04OTQ7ZS5hMTYxPTgzODtlLmExNjM9MTAxNjtlLmExNjQ9NDU4O2UuYTE5Nj03NDg7ZS5hMTY1PTkyNDtlLmExOTI9NzQ4O2UuYTE2Nj05MTg7ZS5hMTY3PTkyNztlLmExNjg9OTI4O2UuYTE2OT05Mjg7ZS5hMTcwPTgzNDtlLmExNzE9ODczO2UuYTE3Mj04Mjg7ZS5hMTczPTkyNDtlLmExNjI9OTI0O2UuYTE3ND05MTc7ZS5hMTc1PTkzMDtlLmExNzY9OTMxO2UuYTE3Nz00NjM7ZS5hMTc4PTg4MztlLmExNzk9ODM2O2UuYTE5Mz04MzY7ZS5hMTgwPTg2NztlLmExOTk9ODY3O2UuYTE4MT02OTY7ZS5hMjAwPTY5NjtlLmExODI9ODc0O2UuYTIwMT04NzQ7ZS5hMTgzPTc2MDtlLmExODQ9OTQ2O2UuYTE5Nz03NzE7ZS5hMTg1PTg2NTtlLmExOTQ9NzcxO2UuYTE5OD04ODg7ZS5hMTg2PTk2NztlLmExOTU9ODg4O2UuYTE4Nz04MzE7ZS5hMTg4PTg3MztlLmExODk9OTI3O2UuYTE5MD05NzA7ZS5hMTkxPTkxOH0pfSksUWE9Z2V0TG9va3VwVGFibGVGYWN0b3J5KGZ1bmN0aW9uKGUpe2UuQ291cmllcj17YXNjZW50OjYyOSxkZXNjZW50Oi0xNTcsY2FwSGVpZ2h0OjU2Mix4SGVpZ2h0Oi00MjZ9O2VbIkNvdXJpZXItQm9sZCJdPXthc2NlbnQ6NjI5LGRlc2NlbnQ6LTE1NyxjYXBIZWlnaHQ6NTYyLHhIZWlnaHQ6NDM5fTtlWyJDb3VyaWVyLU9ibGlxdWUiXT17YXNjZW50OjYyOSxkZXNjZW50Oi0xNTcsY2FwSGVpZ2h0OjU2Mix4SGVpZ2h0OjQyNn07ZVsiQ291cmllci1Cb2xkT2JsaXF1ZSJdPXthc2NlbnQ6NjI5LGRlc2NlbnQ6LTE1NyxjYXBIZWlnaHQ6NTYyLHhIZWlnaHQ6NDI2fTtlLkhlbHZldGljYT17YXNjZW50OjcxOCxkZXNjZW50Oi0yMDcsY2FwSGVpZ2h0OjcxOCx4SGVpZ2h0OjUyM307ZVsiSGVsdmV0aWNhLUJvbGQiXT17YXNjZW50OjcxOCxkZXNjZW50Oi0yMDcsY2FwSGVpZ2h0OjcxOCx4SGVpZ2h0OjUzMn07ZVsiSGVsdmV0aWNhLU9ibGlxdWUiXT17YXNjZW50OjcxOCxkZXNjZW50Oi0yMDcsY2FwSGVpZ2h0OjcxOCx4SGVpZ2h0OjUyM307ZVsiSGVsdmV0aWNhLUJvbGRPYmxpcXVlIl09e2FzY2VudDo3MTgsZGVzY2VudDotMjA3LGNhcEhlaWdodDo3MTgseEhlaWdodDo1MzJ9O2VbIlRpbWVzLVJvbWFuIl09e2FzY2VudDo2ODMsZGVzY2VudDotMjE3LGNhcEhlaWdodDo2NjIseEhlaWdodDo0NTB9O2VbIlRpbWVzLUJvbGQiXT17YXNjZW50OjY4MyxkZXNjZW50Oi0yMTcsY2FwSGVpZ2h0OjY3Nix4SGVpZ2h0OjQ2MX07ZVsiVGltZXMtSXRhbGljIl09e2FzY2VudDo2ODMsZGVzY2VudDotMjE3LGNhcEhlaWdodDo2NTMseEhlaWdodDo0NDF9O2VbIlRpbWVzLUJvbGRJdGFsaWMiXT17YXNjZW50OjY4MyxkZXNjZW50Oi0yMTcsY2FwSGVpZ2h0OjY2OSx4SGVpZ2h0OjQ2Mn07ZS5TeW1ib2w9e2FzY2VudDpNYXRoLk5hTixkZXNjZW50Ok1hdGguTmFOLGNhcEhlaWdodDpNYXRoLk5hTix4SGVpZ2h0Ok1hdGguTmFOfTtlLlphcGZEaW5nYmF0cz17YXNjZW50Ok1hdGguTmFOLGRlc2NlbnQ6TWF0aC5OYU4sY2FwSGVpZ2h0Ok1hdGguTmFOLHhIZWlnaHQ6TWF0aC5OYU59fSk7Y2xhc3MgR2x5ZlRhYmxle2NvbnN0cnVjdG9yKHtnbHlmVGFibGU6ZSxpc0dseXBoTG9jYXRpb25zTG9uZzp0LGxvY2FUYWJsZTpuLG51bUdseXBoczphfSl7dGhpcy5nbHlwaHM9W107Y29uc3Qgcj1uZXcgRGF0YVZpZXcobi5idWZmZXIsbi5ieXRlT2Zmc2V0LG4uYnl0ZUxlbmd0aCkscz1uZXcgRGF0YVZpZXcoZS5idWZmZXIsZS5ieXRlT2Zmc2V0LGUuYnl0ZUxlbmd0aCksaT10PzQ6MjtsZXQgbz10P3IuZ2V0VWludDMyKDApOjIqci5nZXRVaW50MTYoMCksbD0wO2ZvcihsZXQgZT0wO2U8YTtlKyspe2wrPWk7Y29uc3QgZT10P3IuZ2V0VWludDMyKGwpOjIqci5nZXRVaW50MTYobCk7aWYoZT09PW8pe3RoaXMuZ2x5cGhzLnB1c2gobmV3IEdseXBoKHt9KSk7Y29udGludWV9Y29uc3Qgbj1HbHlwaC5wYXJzZShvLHMpO3RoaXMuZ2x5cGhzLnB1c2gobik7bz1lfX1nZXRTaXplKCl7cmV0dXJuIE1hdGguc3VtUHJlY2lzZSh0aGlzLmdseXBocy5tYXAoZT0+ZS5nZXRTaXplKCkrMyYtNCkpfXdyaXRlKCl7Y29uc3QgZT10aGlzLmdldFNpemUoKSx0PW5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoZSkpLG49ZT4xMzEwNzAsYT1uPzQ6MixyPW5ldyBEYXRhVmlldyhuZXcgQXJyYXlCdWZmZXIoKHRoaXMuZ2x5cGhzLmxlbmd0aCsxKSphKSk7bj9yLnNldFVpbnQzMigwLDApOnIuc2V0VWludDE2KDAsMCk7bGV0IHM9MCxpPTA7Zm9yKGNvbnN0IGUgb2YgdGhpcy5nbHlwaHMpe3MrPWUud3JpdGUocyx0KTtzPXMrMyYtNDtpKz1hO24/ci5zZXRVaW50MzIoaSxzKTpyLnNldFVpbnQxNihpLHM+PjEpfXJldHVybntpc0xvY2F0aW9uTG9uZzpuLGxvY2E6bmV3IFVpbnQ4QXJyYXkoci5idWZmZXIpLGdseWY6bmV3IFVpbnQ4QXJyYXkodC5idWZmZXIpfX1zY2FsZShlKXtmb3IobGV0IHQ9MCxuPXRoaXMuZ2x5cGhzLmxlbmd0aDt0PG47dCsrKXRoaXMuZ2x5cGhzW3RdLnNjYWxlKGVbdF0pfX1jbGFzcyBHbHlwaHtjb25zdHJ1Y3Rvcih7aGVhZGVyOmU9bnVsbCxzaW1wbGU6dD1udWxsLGNvbXBvc2l0ZXM6bj1udWxsfSl7dGhpcy5oZWFkZXI9ZTt0aGlzLnNpbXBsZT10O3RoaXMuY29tcG9zaXRlcz1ufXN0YXRpYyBwYXJzZShlLHQpe2NvbnN0W24sYV09R2x5cGhIZWFkZXIucGFyc2UoZSx0KTtlKz1uO2lmKGEubnVtYmVyT2ZDb250b3VyczwwKXtjb25zdCBuPVtdO2Zvcig7Oyl7Y29uc3RbYSxyXT1Db21wb3NpdGVHbHlwaC5wYXJzZShlLHQpO2UrPWE7bi5wdXNoKHIpO2lmKCEoMzImci5mbGFncykpYnJlYWt9cmV0dXJuIG5ldyBHbHlwaCh7aGVhZGVyOmEsY29tcG9zaXRlczpufSl9Y29uc3Qgcj1TaW1wbGVHbHlwaC5wYXJzZShlLHQsYS5udW1iZXJPZkNvbnRvdXJzKTtyZXR1cm4gbmV3IEdseXBoKHtoZWFkZXI6YSxzaW1wbGU6cn0pfWdldFNpemUoKXtpZighdGhpcy5oZWFkZXIpcmV0dXJuIDA7Y29uc3QgZT10aGlzLnNpbXBsZT90aGlzLnNpbXBsZS5nZXRTaXplKCk6TWF0aC5zdW1QcmVjaXNlKHRoaXMuY29tcG9zaXRlcy5tYXAoZT0+ZS5nZXRTaXplKCkpKTtyZXR1cm4gdGhpcy5oZWFkZXIuZ2V0U2l6ZSgpK2V9d3JpdGUoZSx0KXtpZighdGhpcy5oZWFkZXIpcmV0dXJuIDA7Y29uc3Qgbj1lO2UrPXRoaXMuaGVhZGVyLndyaXRlKGUsdCk7aWYodGhpcy5zaW1wbGUpZSs9dGhpcy5zaW1wbGUud3JpdGUoZSx0KTtlbHNlIGZvcihjb25zdCBuIG9mIHRoaXMuY29tcG9zaXRlcyllKz1uLndyaXRlKGUsdCk7cmV0dXJuIGUtbn1zY2FsZShlKXtpZighdGhpcy5oZWFkZXIpcmV0dXJuO2NvbnN0IHQ9KHRoaXMuaGVhZGVyLnhNaW4rdGhpcy5oZWFkZXIueE1heCkvMjt0aGlzLmhlYWRlci5zY2FsZSh0LGUpO2lmKHRoaXMuc2ltcGxlKXRoaXMuc2ltcGxlLnNjYWxlKHQsZSk7ZWxzZSBmb3IoY29uc3QgbiBvZiB0aGlzLmNvbXBvc2l0ZXMpbi5zY2FsZSh0LGUpfX1jbGFzcyBHbHlwaEhlYWRlcntjb25zdHJ1Y3Rvcih7bnVtYmVyT2ZDb250b3VyczplLHhNaW46dCx5TWluOm4seE1heDphLHlNYXg6cn0pe3RoaXMubnVtYmVyT2ZDb250b3Vycz1lO3RoaXMueE1pbj10O3RoaXMueU1pbj1uO3RoaXMueE1heD1hO3RoaXMueU1heD1yfXN0YXRpYyBwYXJzZShlLHQpe3JldHVyblsxMCxuZXcgR2x5cGhIZWFkZXIoe251bWJlck9mQ29udG91cnM6dC5nZXRJbnQxNihlKSx4TWluOnQuZ2V0SW50MTYoZSsyKSx5TWluOnQuZ2V0SW50MTYoZSs0KSx4TWF4OnQuZ2V0SW50MTYoZSs2KSx5TWF4OnQuZ2V0SW50MTYoZSs4KX0pXX1nZXRTaXplKCl7cmV0dXJuIDEwfXdyaXRlKGUsdCl7dC5zZXRJbnQxNihlLHRoaXMubnVtYmVyT2ZDb250b3Vycyk7dC5zZXRJbnQxNihlKzIsdGhpcy54TWluKTt0LnNldEludDE2KGUrNCx0aGlzLnlNaW4pO3Quc2V0SW50MTYoZSs2LHRoaXMueE1heCk7dC5zZXRJbnQxNihlKzgsdGhpcy55TWF4KTtyZXR1cm4gMTB9c2NhbGUoZSx0KXt0aGlzLnhNaW49TWF0aC5yb3VuZChlKyh0aGlzLnhNaW4tZSkqdCk7dGhpcy54TWF4PU1hdGgucm91bmQoZSsodGhpcy54TWF4LWUpKnQpfX1jbGFzcyBDb250b3Vye2NvbnN0cnVjdG9yKHtmbGFnczplLHhDb29yZGluYXRlczp0LHlDb29yZGluYXRlczpufSl7dGhpcy54Q29vcmRpbmF0ZXM9dDt0aGlzLnlDb29yZGluYXRlcz1uO3RoaXMuZmxhZ3M9ZX19Y2xhc3MgU2ltcGxlR2x5cGh7Y29uc3RydWN0b3Ioe2NvbnRvdXJzOmUsaW5zdHJ1Y3Rpb25zOnR9KXt0aGlzLmNvbnRvdXJzPWU7dGhpcy5pbnN0cnVjdGlvbnM9dH1zdGF0aWMgcGFyc2UoZSx0LG4pe2NvbnN0IGE9W107Zm9yKGxldCByPTA7cjxuO3IrKyl7Y29uc3Qgbj10LmdldFVpbnQxNihlKTtlKz0yO2EucHVzaChuKX1jb25zdCByPWFbbi0xXSsxLHM9dC5nZXRVaW50MTYoZSk7ZSs9Mjtjb25zdCBpPW5ldyBVaW50OEFycmF5KHQpLnNsaWNlKGUsZStzKTtlKz1zO2NvbnN0IG89W107Zm9yKGxldCBuPTA7bjxyO2UrKyxuKyspe2xldCBhPXQuZ2V0VWludDgoZSk7by5wdXNoKGEpO2lmKDgmYSl7Y29uc3Qgcj10LmdldFVpbnQ4KCsrZSk7YV49ODtmb3IobGV0IGU9MDtlPHI7ZSsrKW8ucHVzaChhKTtuKz1yfX1jb25zdCBsPVtdO2xldCBmPVtdLGM9W10saD1bXTtjb25zdCB1PVtdO2xldCBtPTAscD0wO2ZvcihsZXQgbj0wO248cjtuKyspe2NvbnN0IHI9b1tuXTtpZigyJnIpe2NvbnN0IG49dC5nZXRVaW50OChlKyspO3ArPTE2JnI/bjotbjtmLnB1c2gocCl9ZWxzZSBpZigxNiZyKWYucHVzaChwKTtlbHNle3ArPXQuZ2V0SW50MTYoZSk7ZSs9MjtmLnB1c2gocCl9aWYoYVttXT09PW4pe20rKztsLnB1c2goZik7Zj1bXX19cD0wO209MDtmb3IobGV0IG49MDtuPHI7bisrKXtjb25zdCByPW9bbl07aWYoNCZyKXtjb25zdCBuPXQuZ2V0VWludDgoZSsrKTtwKz0zMiZyP246LW47Yy5wdXNoKHApfWVsc2UgaWYoMzImciljLnB1c2gocCk7ZWxzZXtwKz10LmdldEludDE2KGUpO2UrPTI7Yy5wdXNoKHApfWgucHVzaCgxJnJ8NjQmcik7aWYoYVttXT09PW4pe2Y9bFttXTttKys7dS5wdXNoKG5ldyBDb250b3VyKHtmbGFnczpoLHhDb29yZGluYXRlczpmLHlDb29yZGluYXRlczpjfSkpO2M9W107aD1bXX19cmV0dXJuIG5ldyBTaW1wbGVHbHlwaCh7Y29udG91cnM6dSxpbnN0cnVjdGlvbnM6aX0pfWdldFNpemUoKXtsZXQgZT0yKnRoaXMuY29udG91cnMubGVuZ3RoKzIrdGhpcy5pbnN0cnVjdGlvbnMubGVuZ3RoLHQ9MCxuPTA7Zm9yKGNvbnN0IGEgb2YgdGhpcy5jb250b3Vycyl7ZSs9YS5mbGFncy5sZW5ndGg7Zm9yKGxldCByPTAscz1hLnhDb29yZGluYXRlcy5sZW5ndGg7cjxzO3IrKyl7Y29uc3Qgcz1hLnhDb29yZGluYXRlc1tyXSxpPWEueUNvb3JkaW5hdGVzW3JdO2xldCBvPU1hdGguYWJzKHMtdCk7bz4yNTU/ZSs9MjpvPjAmJihlKz0xKTt0PXM7bz1NYXRoLmFicyhpLW4pO28+MjU1P2UrPTI6bz4wJiYoZSs9MSk7bj1pfX1yZXR1cm4gZX13cml0ZShlLHQpe2NvbnN0IG49ZSxhPVtdLHI9W10scz1bXTtsZXQgaT0wLG89MDtmb3IoY29uc3QgbiBvZiB0aGlzLmNvbnRvdXJzKXtmb3IobGV0IGU9MCx0PW4ueENvb3JkaW5hdGVzLmxlbmd0aDtlPHQ7ZSsrKXtsZXQgdD1uLmZsYWdzW2VdO2NvbnN0IGw9bi54Q29vcmRpbmF0ZXNbZV07bGV0IGY9bC1pO2lmKDA9PT1mKXt0fD0xNjthLnB1c2goMCl9ZWxzZXtjb25zdCBlPU1hdGguYWJzKGYpO2lmKGU8PTI1NSl7dHw9Zj49MD8xODoyO2EucHVzaChlKX1lbHNlIGEucHVzaChmKX1pPWw7Y29uc3QgYz1uLnlDb29yZGluYXRlc1tlXTtmPWMtbztpZigwPT09Zil7dHw9MzI7ci5wdXNoKDApfWVsc2V7Y29uc3QgZT1NYXRoLmFicyhmKTtpZihlPD0yNTUpe3R8PWY+PTA/MzY6NDtyLnB1c2goZSl9ZWxzZSByLnB1c2goZil9bz1jO3MucHVzaCh0KX10LnNldFVpbnQxNihlLGEubGVuZ3RoLTEpO2UrPTJ9dC5zZXRVaW50MTYoZSx0aGlzLmluc3RydWN0aW9ucy5sZW5ndGgpO2UrPTI7aWYodGhpcy5pbnN0cnVjdGlvbnMubGVuZ3RoKXtuZXcgVWludDhBcnJheSh0LmJ1ZmZlciwwLHQuYnVmZmVyLmJ5dGVMZW5ndGgpLnNldCh0aGlzLmluc3RydWN0aW9ucyxlKTtlKz10aGlzLmluc3RydWN0aW9ucy5sZW5ndGh9Zm9yKGNvbnN0IG4gb2Ygcyl0LnNldFVpbnQ4KGUrKyxuKTtmb3IobGV0IG49MCxyPWEubGVuZ3RoO248cjtuKyspe2NvbnN0IHI9YVtuXSxpPXNbbl07aWYoMiZpKXQuc2V0VWludDgoZSsrLHIpO2Vsc2UgaWYoISgxNiZpKSl7dC5zZXRJbnQxNihlLHIpO2UrPTJ9fWZvcihsZXQgbj0wLGE9ci5sZW5ndGg7bjxhO24rKyl7Y29uc3QgYT1yW25dLGk9c1tuXTtpZig0JmkpdC5zZXRVaW50OChlKyssYSk7ZWxzZSBpZighKDMyJmkpKXt0LnNldEludDE2KGUsYSk7ZSs9Mn19cmV0dXJuIGUtbn1zY2FsZShlLHQpe2Zvcihjb25zdCBuIG9mIHRoaXMuY29udG91cnMpaWYoMCE9PW4ueENvb3JkaW5hdGVzLmxlbmd0aClmb3IobGV0IGE9MCxyPW4ueENvb3JkaW5hdGVzLmxlbmd0aDthPHI7YSsrKW4ueENvb3JkaW5hdGVzW2FdPU1hdGgucm91bmQoZSsobi54Q29vcmRpbmF0ZXNbYV0tZSkqdCl9fWNsYXNzIENvbXBvc2l0ZUdseXBoe2NvbnN0cnVjdG9yKHtmbGFnczplLGdseXBoSW5kZXg6dCxhcmd1bWVudDE6bixhcmd1bWVudDI6YSx0cmFuc2Y6cixpbnN0cnVjdGlvbnM6c30pe3RoaXMuZmxhZ3M9ZTt0aGlzLmdseXBoSW5kZXg9dDt0aGlzLmFyZ3VtZW50MT1uO3RoaXMuYXJndW1lbnQyPWE7dGhpcy50cmFuc2Y9cjt0aGlzLmluc3RydWN0aW9ucz1zfXN0YXRpYyBwYXJzZShlLHQpe2NvbnN0IG49ZSxhPVtdO2xldCByPXQuZ2V0VWludDE2KGUpO2NvbnN0IHM9dC5nZXRVaW50MTYoZSsyKTtlKz00O2xldCBpLG87aWYoMSZyKXtpZigyJnIpe2k9dC5nZXRJbnQxNihlKTtvPXQuZ2V0SW50MTYoZSsyKX1lbHNle2k9dC5nZXRVaW50MTYoZSk7bz10LmdldFVpbnQxNihlKzIpfWUrPTQ7cl49MX1lbHNle2lmKDImcil7aT10LmdldEludDgoZSk7bz10LmdldEludDgoZSsxKX1lbHNle2k9dC5nZXRVaW50OChlKTtvPXQuZ2V0VWludDgoZSsxKX1lKz0yfWlmKDgmcil7YS5wdXNoKHQuZ2V0VWludDE2KGUpKTtlKz0yfWVsc2UgaWYoNjQmcil7YS5wdXNoKHQuZ2V0VWludDE2KGUpLHQuZ2V0VWludDE2KGUrMikpO2UrPTR9ZWxzZSBpZigxMjgmcil7YS5wdXNoKHQuZ2V0VWludDE2KGUpLHQuZ2V0VWludDE2KGUrMiksdC5nZXRVaW50MTYoZSs0KSx0LmdldFVpbnQxNihlKzYpKTtlKz04fWxldCBsPW51bGw7aWYoMjU2JnIpe2NvbnN0IG49dC5nZXRVaW50MTYoZSk7ZSs9MjtsPW5ldyBVaW50OEFycmF5KHQpLnNsaWNlKGUsZStuKTtlKz1ufXJldHVybltlLW4sbmV3IENvbXBvc2l0ZUdseXBoKHtmbGFnczpyLGdseXBoSW5kZXg6cyxhcmd1bWVudDE6aSxhcmd1bWVudDI6byx0cmFuc2Y6YSxpbnN0cnVjdGlvbnM6bH0pXX1nZXRTaXplKCl7bGV0IGU9NCsyKnRoaXMudHJhbnNmLmxlbmd0aDsyNTYmdGhpcy5mbGFncyYmKGUrPTIrdGhpcy5pbnN0cnVjdGlvbnMubGVuZ3RoKTtlKz0yOzImdGhpcy5mbGFncz90aGlzLmFyZ3VtZW50MT49LTEyOCYmdGhpcy5hcmd1bWVudDE8PTEyNyYmdGhpcy5hcmd1bWVudDI+PS0xMjgmJnRoaXMuYXJndW1lbnQyPD0xMjd8fChlKz0yKTp0aGlzLmFyZ3VtZW50MT49MCYmdGhpcy5hcmd1bWVudDE8PTI1NSYmdGhpcy5hcmd1bWVudDI+PTAmJnRoaXMuYXJndW1lbnQyPD0yNTV8fChlKz0yKTtyZXR1cm4gZX13cml0ZShlLHQpe2NvbnN0IG49ZTsyJnRoaXMuZmxhZ3M/dGhpcy5hcmd1bWVudDE+PS0xMjgmJnRoaXMuYXJndW1lbnQxPD0xMjcmJnRoaXMuYXJndW1lbnQyPj0tMTI4JiZ0aGlzLmFyZ3VtZW50Mjw9MTI3fHwodGhpcy5mbGFnc3w9MSk6dGhpcy5hcmd1bWVudDE+PTAmJnRoaXMuYXJndW1lbnQxPD0yNTUmJnRoaXMuYXJndW1lbnQyPj0wJiZ0aGlzLmFyZ3VtZW50Mjw9MjU1fHwodGhpcy5mbGFnc3w9MSk7dC5zZXRVaW50MTYoZSx0aGlzLmZsYWdzKTt0LnNldFVpbnQxNihlKzIsdGhpcy5nbHlwaEluZGV4KTtlKz00O2lmKDEmdGhpcy5mbGFncyl7aWYoMiZ0aGlzLmZsYWdzKXt0LnNldEludDE2KGUsdGhpcy5hcmd1bWVudDEpO3Quc2V0SW50MTYoZSsyLHRoaXMuYXJndW1lbnQyKX1lbHNle3Quc2V0VWludDE2KGUsdGhpcy5hcmd1bWVudDEpO3Quc2V0VWludDE2KGUrMix0aGlzLmFyZ3VtZW50Mil9ZSs9NH1lbHNle3Quc2V0VWludDgoZSx0aGlzLmFyZ3VtZW50MSk7dC5zZXRVaW50OChlKzEsdGhpcy5hcmd1bWVudDIpO2UrPTJ9aWYoMjU2JnRoaXMuZmxhZ3Mpe3Quc2V0VWludDE2KGUsdGhpcy5pbnN0cnVjdGlvbnMubGVuZ3RoKTtlKz0yO2lmKHRoaXMuaW5zdHJ1Y3Rpb25zLmxlbmd0aCl7bmV3IFVpbnQ4QXJyYXkodC5idWZmZXIsMCx0LmJ1ZmZlci5ieXRlTGVuZ3RoKS5zZXQodGhpcy5pbnN0cnVjdGlvbnMsZSk7ZSs9dGhpcy5pbnN0cnVjdGlvbnMubGVuZ3RofX1yZXR1cm4gZS1ufXNjYWxlKGUsdCl7fX1mdW5jdGlvbiB3cml0ZUludDE2KGUsdCxuKXtlW3RdPW4+PjgmMjU1O2VbdCsxXT0yNTUmbn1mdW5jdGlvbiB3cml0ZUludDMyKGUsdCxuKXtlW3RdPW4+PjI0JjI1NTtlW3QrMV09bj4+MTYmMjU1O2VbdCsyXT1uPj44JjI1NTtlW3QrM109MjU1Jm59ZnVuY3Rpb24gd3JpdGVEYXRhKGUsdCxuKXtpZihuIGluc3RhbmNlb2YgVWludDhBcnJheSllLnNldChuLHQpO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBuKWZvcihsZXQgYT0wLHI9bi5sZW5ndGg7YTxyO2ErKyllW3QrK109MjU1Jm4uY2hhckNvZGVBdChhKTtlbHNlIGZvcihjb25zdCBhIG9mIG4pZVt0KytdPTI1NSZhfWNsYXNzIE9wZW5UeXBlRmlsZUJ1aWxkZXJ7Y29uc3RydWN0b3IoZSl7dGhpcy5zZm50PWU7dGhpcy50YWJsZXM9T2JqZWN0LmNyZWF0ZShudWxsKX1zdGF0aWMgZ2V0U2VhcmNoUGFyYW1zKGUsdCl7bGV0IG49MSxhPTA7Zm9yKDsobl5lKT5uOyl7bjw8PTE7YSsrfWNvbnN0IHI9bip0O3JldHVybntyYW5nZTpyLGVudHJ5OmEscmFuZ2VTaGlmdDp0KmUtcn19dG9BcnJheSgpe2xldCBlPXRoaXMuc2ZudDtjb25zdCB0PXRoaXMudGFibGVzLG49T2JqZWN0LmtleXModCk7bi5zb3J0KCk7Y29uc3QgYT1uLmxlbmd0aDtsZXQgcixzLGksbyxsLGY9MTIrMTYqYTtjb25zdCBjPVtmXTtmb3Iocj0wO3I8YTtyKyspe289dFtuW3JdXTtmKz0oby5sZW5ndGgrMyYtNCk+Pj4wO2MucHVzaChmKX1jb25zdCBoPW5ldyBVaW50OEFycmF5KGYpO2ZvcihyPTA7cjxhO3IrKyl7bz10W25bcl1dO3dyaXRlRGF0YShoLGNbcl0sbyl9InRydWUiPT09ZSYmKGU9c3RyaW5nMzIoNjU1MzYpKTtoWzBdPTI1NSZlLmNoYXJDb2RlQXQoMCk7aFsxXT0yNTUmZS5jaGFyQ29kZUF0KDEpO2hbMl09MjU1JmUuY2hhckNvZGVBdCgyKTtoWzNdPTI1NSZlLmNoYXJDb2RlQXQoMyk7d3JpdGVJbnQxNihoLDQsYSk7Y29uc3QgdT1PcGVuVHlwZUZpbGVCdWlsZGVyLmdldFNlYXJjaFBhcmFtcyhhLDE2KTt3cml0ZUludDE2KGgsNix1LnJhbmdlKTt3cml0ZUludDE2KGgsOCx1LmVudHJ5KTt3cml0ZUludDE2KGgsMTAsdS5yYW5nZVNoaWZ0KTtmPTEyO2ZvcihyPTA7cjxhO3IrKyl7bD1uW3JdO2hbZl09MjU1JmwuY2hhckNvZGVBdCgwKTtoW2YrMV09MjU1JmwuY2hhckNvZGVBdCgxKTtoW2YrMl09MjU1JmwuY2hhckNvZGVBdCgyKTtoW2YrM109MjU1JmwuY2hhckNvZGVBdCgzKTtsZXQgZT0wO2ZvcihzPWNbcl0saT1jW3IrMV07czxpO3MrPTQpe2U9ZStyZWFkVWludDMyKGgscyk+Pj4wfXdyaXRlSW50MzIoaCxmKzQsZSk7d3JpdGVJbnQzMihoLGYrOCxjW3JdKTt3cml0ZUludDMyKGgsZisxMix0W2xdLmxlbmd0aCk7Zis9MTZ9cmV0dXJuIGh9YWRkVGFibGUoZSx0KXtpZihlIGluIHRoaXMudGFibGVzKXRocm93IG5ldyBFcnJvcigiVGFibGUgIitlKyIgYWxyZWFkeSBleGlzdHMiKTt0aGlzLnRhYmxlc1tlXT10fX1jb25zdCBaYT1bNF0sZXI9WzVdLHRyPVs2XSxucj1bN10sYXI9WzhdLHJyPVsxMiwzNV0sc3I9WzE0XSxpcj1bMjFdLG9yPVsyMl0sbHI9WzMwXSxmcj1bMzFdO2NsYXNzIFR5cGUxQ2hhclN0cmluZ3t3aWR0aD0wO2xzYj0wO2ZsZXhpbmc9ITE7b3V0cHV0PVtdO3N0YWNrPVtdO2NvbnZlcnQoZSx0LG4pe2NvbnN0IGE9ZS5sZW5ndGg7bGV0IHIscyxpLG89ITE7Zm9yKGxldCBsPTA7bDxhO2wrKyl7bGV0IGE9ZVtsXTtpZihhPDMyKXsxMj09PWEmJihhPShhPDw4KStlWysrbF0pO3N3aXRjaChhKXtjYXNlIDE6Y2FzZSAzOmNhc2UgOTpjYXNlIDMwNzI6Y2FzZSAzMDczOmNhc2UgMzA3NDpjYXNlIDMxMDU6dGhpcy5zdGFjaz1bXTticmVhaztjYXNlIDQ6aWYodGhpcy5mbGV4aW5nKXtpZih0aGlzLnN0YWNrLmxlbmd0aDwxKXtvPSEwO2JyZWFrfWNvbnN0IGU9dGhpcy5zdGFjay5wb3AoKTt0aGlzLnN0YWNrLnB1c2goMCxlKTticmVha31vPXRoaXMuZXhlY3V0ZUNvbW1hbmQoMSxaYSk7YnJlYWs7Y2FzZSA1Om89dGhpcy5leGVjdXRlQ29tbWFuZCgyLGVyKTticmVhaztjYXNlIDY6bz10aGlzLmV4ZWN1dGVDb21tYW5kKDEsdHIpO2JyZWFrO2Nhc2UgNzpvPXRoaXMuZXhlY3V0ZUNvbW1hbmQoMSxucik7YnJlYWs7Y2FzZSA4Om89dGhpcy5leGVjdXRlQ29tbWFuZCg2LGFyKTticmVhaztjYXNlIDEwOmlmKHRoaXMuc3RhY2subGVuZ3RoPDEpe289ITA7YnJlYWt9aT10aGlzLnN0YWNrLnBvcCgpO2lmKCF0W2ldKXtvPSEwO2JyZWFrfW89dGhpcy5jb252ZXJ0KHRbaV0sdCxuKTticmVhaztjYXNlIDExOnJldHVybiBvO2Nhc2UgMTM6aWYodGhpcy5zdGFjay5sZW5ndGg8Mil7bz0hMDticmVha31yPXRoaXMuc3RhY2sucG9wKCk7cz10aGlzLnN0YWNrLnBvcCgpO3RoaXMubHNiPXM7dGhpcy53aWR0aD1yO3RoaXMuc3RhY2sucHVzaChyLHMpO289dGhpcy5leGVjdXRlQ29tbWFuZCgyLG9yKTticmVhaztjYXNlIDE0OnRoaXMub3V0cHV0LnB1c2goc3JbMF0pO2JyZWFrO2Nhc2UgMjE6aWYodGhpcy5mbGV4aW5nKWJyZWFrO289dGhpcy5leGVjdXRlQ29tbWFuZCgyLGlyKTticmVhaztjYXNlIDIyOmlmKHRoaXMuZmxleGluZyl7dGhpcy5zdGFjay5wdXNoKDApO2JyZWFrfW89dGhpcy5leGVjdXRlQ29tbWFuZCgxLG9yKTticmVhaztjYXNlIDMwOm89dGhpcy5leGVjdXRlQ29tbWFuZCg0LGxyKTticmVhaztjYXNlIDMxOm89dGhpcy5leGVjdXRlQ29tbWFuZCg0LGZyKTticmVhaztjYXNlIDMwNzg6aWYobil7Y29uc3QgZT10aGlzLnN0YWNrLmF0KC01KTt0aGlzLnNlYWM9dGhpcy5zdGFjay5zcGxpY2UoLTQsNCk7dGhpcy5zZWFjWzBdKz10aGlzLmxzYi1lO289dGhpcy5leGVjdXRlQ29tbWFuZCgwLHNyKX1lbHNlIG89dGhpcy5leGVjdXRlQ29tbWFuZCg0LHNyKTticmVhaztjYXNlIDMwNzk6aWYodGhpcy5zdGFjay5sZW5ndGg8NCl7bz0hMDticmVha310aGlzLnN0YWNrLnBvcCgpO3I9dGhpcy5zdGFjay5wb3AoKTtjb25zdCBlPXRoaXMuc3RhY2sucG9wKCk7cz10aGlzLnN0YWNrLnBvcCgpO3RoaXMubHNiPXM7dGhpcy53aWR0aD1yO3RoaXMuc3RhY2sucHVzaChyLHMsZSk7bz10aGlzLmV4ZWN1dGVDb21tYW5kKDMsaXIpO2JyZWFrO2Nhc2UgMzA4NDppZih0aGlzLnN0YWNrLmxlbmd0aDwyKXtvPSEwO2JyZWFrfWNvbnN0IGw9dGhpcy5zdGFjay5wb3AoKSxmPXRoaXMuc3RhY2sucG9wKCk7dGhpcy5zdGFjay5wdXNoKGYvbCk7YnJlYWs7Y2FzZSAzMDg4OmlmKHRoaXMuc3RhY2subGVuZ3RoPDIpe289ITA7YnJlYWt9aT10aGlzLnN0YWNrLnBvcCgpO2NvbnN0IGM9dGhpcy5zdGFjay5wb3AoKTtpZigwPT09aSYmMz09PWMpe2NvbnN0IGU9dGhpcy5zdGFjay5zcGxpY2UoLTE3LDE3KTt0aGlzLnN0YWNrLnB1c2goZVsyXStlWzBdLGVbM10rZVsxXSxlWzRdLGVbNV0sZVs2XSxlWzddLGVbOF0sZVs5XSxlWzEwXSxlWzExXSxlWzEyXSxlWzEzXSxlWzE0XSk7bz10aGlzLmV4ZWN1dGVDb21tYW5kKDEzLHJyLCEwKTt0aGlzLmZsZXhpbmc9ITE7dGhpcy5zdGFjay5wdXNoKGVbMTVdLGVbMTZdKX1lbHNlIDE9PT1pJiYwPT09YyYmKHRoaXMuZmxleGluZz0hMCk7YnJlYWs7Y2FzZSAzMDg5OmJyZWFrO2RlZmF1bHQ6d2FybignVW5rbm93biB0eXBlIDEgY2hhcnN0cmluZyBjb21tYW5kIG9mICInK2ErJyInKX1pZihvKWJyZWFrfWVsc2V7YTw9MjQ2P2EtPTEzOTphPWE8PTI1MD8yNTYqKGEtMjQ3KStlWysrbF0rMTA4OmE8PTI1ND8tMjU2KihhLTI1MSktZVsrK2xdLTEwODooMjU1JmVbKytsXSk8PDI0fCgyNTUmZVsrK2xdKTw8MTZ8KDI1NSZlWysrbF0pPDw4fDI1NSZlWysrbF07dGhpcy5zdGFjay5wdXNoKGEpfX1yZXR1cm4gb31leGVjdXRlQ29tbWFuZChlLHQsbil7Y29uc3QgYT10aGlzLnN0YWNrLmxlbmd0aDtpZihlPmEpcmV0dXJuITA7Y29uc3Qgcj1hLWU7Zm9yKGxldCBlPXI7ZTxhO2UrKyl7bGV0IHQ9dGhpcy5zdGFja1tlXTtpZihOdW1iZXIuaXNJbnRlZ2VyKHQpKXRoaXMub3V0cHV0LnB1c2goMjgsdD4+OCYyNTUsMjU1JnQpO2Vsc2V7dD02NTUzNip0fDA7dGhpcy5vdXRwdXQucHVzaCgyNTUsdD4+MjQmMjU1LHQ+PjE2JjI1NSx0Pj44JjI1NSwyNTUmdCl9fXRoaXMub3V0cHV0LnB1c2goLi4udCk7bj90aGlzLnN0YWNrLnNwbGljZShyLGUpOnRoaXMuc3RhY2subGVuZ3RoPTA7cmV0dXJuITF9fWZ1bmN0aW9uIGlzSGV4RGlnaXQoZSl7cmV0dXJuIGU+PTQ4JiZlPD01N3x8ZT49NjUmJmU8PTcwfHxlPj05NyYmZTw9MTAyfWZ1bmN0aW9uIGRlY3J5cHQoZSx0LG4pe2lmKG4+PWUubGVuZ3RoKXJldHVybiBuZXcgVWludDhBcnJheSgwKTtsZXQgYSxyLHM9MHx0O2ZvcihhPTA7YTxuO2ErKylzPTUyODQ1KihlW2FdK3MpKzIyNzE5JjY1NTM1O2NvbnN0IGk9ZS5sZW5ndGgtbixvPW5ldyBVaW50OEFycmF5KGkpO2ZvcihhPW4scj0wO3I8aTthKysscisrKXtjb25zdCB0PWVbYV07b1tyXT10XnM+Pjg7cz01Mjg0NSoodCtzKSsyMjcxOSY2NTUzNX1yZXR1cm4gb31mdW5jdGlvbiBpc1NwZWNpYWwoZSl7cmV0dXJuIDQ3PT09ZXx8OTE9PT1lfHw5Mz09PWV8fDEyMz09PWV8fDEyNT09PWV8fDQwPT09ZXx8NDE9PT1lfWNsYXNzIFR5cGUxUGFyc2Vye2NvbnN0cnVjdG9yKGUsdCxuKXtpZih0KXtjb25zdCB0PWUuZ2V0Qnl0ZXMoKSxuPSEoKGlzSGV4RGlnaXQodFswXSl8fGlzV2hpdGVTcGFjZSh0WzBdKSkmJmlzSGV4RGlnaXQodFsxXSkmJmlzSGV4RGlnaXQodFsyXSkmJmlzSGV4RGlnaXQodFszXSkmJmlzSGV4RGlnaXQodFs0XSkmJmlzSGV4RGlnaXQodFs1XSkmJmlzSGV4RGlnaXQodFs2XSkmJmlzSGV4RGlnaXQodFs3XSkpO2U9bmV3IFN0cmVhbShuP2RlY3J5cHQodCw1NTY2NSw0KTpmdW5jdGlvbiBkZWNyeXB0QXNjaWkoZSx0LG4pe2xldCBhPTB8dDtjb25zdCByPWUubGVuZ3RoLHM9bmV3IFVpbnQ4QXJyYXkocj4+PjEpO2xldCBpLG87Zm9yKGk9MCxvPTA7aTxyO2krKyl7Y29uc3QgdD1lW2ldO2lmKCFpc0hleERpZ2l0KHQpKWNvbnRpbnVlO2krKztsZXQgbjtmb3IoO2k8ciYmIWlzSGV4RGlnaXQobj1lW2ldKTspaSsrO2lmKGk8cil7Y29uc3QgZT1wYXJzZUludChTdHJpbmcuZnJvbUNoYXJDb2RlKHQsbiksMTYpO3NbbysrXT1lXmE+Pjg7YT01Mjg0NSooZSthKSsyMjcxOSY2NTUzNX19cmV0dXJuIHMuc2xpY2UobixvKX0odCw1NTY2NSw0KSl9dGhpcy5zZWFjQW5hbHlzaXNFbmFibGVkPSEhbjt0aGlzLnN0cmVhbT1lO3RoaXMubmV4dENoYXIoKX1yZWFkTnVtYmVyQXJyYXkoKXt0aGlzLmdldFRva2VuKCk7Y29uc3QgZT1bXTtmb3IoOzspe2NvbnN0IHQ9dGhpcy5nZXRUb2tlbigpO2lmKG51bGw9PT10fHwiXSI9PT10fHwifSI9PT10KWJyZWFrO2UucHVzaChwYXJzZUZsb2F0KHR8fDApKX1yZXR1cm4gZX1yZWFkTnVtYmVyKCl7Y29uc3QgZT10aGlzLmdldFRva2VuKCk7cmV0dXJuIHBhcnNlRmxvYXQoZXx8MCl9cmVhZEludCgpe2NvbnN0IGU9dGhpcy5nZXRUb2tlbigpO3JldHVybiAwfHBhcnNlSW50KGV8fDAsMTApfXJlYWRCb29sZWFuKCl7cmV0dXJuInRydWUiPT09dGhpcy5nZXRUb2tlbigpPzE6MH1uZXh0Q2hhcigpe3JldHVybiB0aGlzLmN1cnJlbnRDaGFyPXRoaXMuc3RyZWFtLmdldEJ5dGUoKX1wcmV2Q2hhcigpe3RoaXMuc3RyZWFtLnNraXAoLTIpO3JldHVybiB0aGlzLmN1cnJlbnRDaGFyPXRoaXMuc3RyZWFtLmdldEJ5dGUoKX1nZXRUb2tlbigpe2xldCBlPSExLHQ9dGhpcy5jdXJyZW50Q2hhcjtmb3IoOzspe2lmKC0xPT09dClyZXR1cm4gbnVsbDtpZihlKTEwIT09dCYmMTMhPT10fHwoZT0hMSk7ZWxzZSBpZigzNz09PXQpZT0hMDtlbHNlIGlmKCFpc1doaXRlU3BhY2UodCkpYnJlYWs7dD10aGlzLm5leHRDaGFyKCl9aWYoaXNTcGVjaWFsKHQpKXt0aGlzLm5leHRDaGFyKCk7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUodCl9bGV0IG49IiI7ZG97bis9U3RyaW5nLmZyb21DaGFyQ29kZSh0KTt0PXRoaXMubmV4dENoYXIoKX13aGlsZSh0Pj0wJiYhaXNXaGl0ZVNwYWNlKHQpJiYhaXNTcGVjaWFsKHQpKTtyZXR1cm4gbn1yZWFkQ2hhclN0cmluZ3MoZSx0KXtyZXR1cm4tMT09PXQ/ZTpkZWNyeXB0KGUsNDMzMCx0KX1leHRyYWN0Rm9udFByb2dyYW0oZSl7Y29uc3QgdD10aGlzLnN0cmVhbSxuPVtdLGE9W10scj1PYmplY3QuY3JlYXRlKG51bGwpO3IubGVuSVY9NDtjb25zdCBzPXtzdWJyczpbXSxjaGFyc3RyaW5nczpbXSxwcm9wZXJ0aWVzOntwcml2YXRlRGF0YTpyfX07bGV0IGksbyxsLGY7Zm9yKDtudWxsIT09KGk9dGhpcy5nZXRUb2tlbigpKTspaWYoIi8iPT09aSl7aT10aGlzLmdldFRva2VuKCk7c3dpdGNoKGkpe2Nhc2UiQ2hhclN0cmluZ3MiOnRoaXMuZ2V0VG9rZW4oKTt0aGlzLmdldFRva2VuKCk7dGhpcy5nZXRUb2tlbigpO3RoaXMuZ2V0VG9rZW4oKTtmb3IoOzspe2k9dGhpcy5nZXRUb2tlbigpO2lmKG51bGw9PT1pfHwiZW5kIj09PWkpYnJlYWs7aWYoIi8iIT09aSljb250aW51ZTtjb25zdCBlPXRoaXMuZ2V0VG9rZW4oKTtvPXRoaXMucmVhZEludCgpO3RoaXMuZ2V0VG9rZW4oKTtsPW8+MD90LmdldEJ5dGVzKG8pOm5ldyBVaW50OEFycmF5KDApO2Y9cy5wcm9wZXJ0aWVzLnByaXZhdGVEYXRhLmxlbklWO2NvbnN0IG49dGhpcy5yZWFkQ2hhclN0cmluZ3MobCxmKTt0aGlzLm5leHRDaGFyKCk7aT10aGlzLmdldFRva2VuKCk7Im5vYWNjZXNzIj09PWk/dGhpcy5nZXRUb2tlbigpOiIvIj09PWkmJnRoaXMucHJldkNoYXIoKTthLnB1c2goe2dseXBoOmUsZW5jb2RlZDpufSl9YnJlYWs7Y2FzZSJTdWJycyI6dGhpcy5yZWFkSW50KCk7dGhpcy5nZXRUb2tlbigpO2Zvcig7ImR1cCI9PT10aGlzLmdldFRva2VuKCk7KXtjb25zdCBlPXRoaXMucmVhZEludCgpO289dGhpcy5yZWFkSW50KCk7dGhpcy5nZXRUb2tlbigpO2w9bz4wP3QuZ2V0Qnl0ZXMobyk6bmV3IFVpbnQ4QXJyYXkoMCk7Zj1zLnByb3BlcnRpZXMucHJpdmF0ZURhdGEubGVuSVY7Y29uc3QgYT10aGlzLnJlYWRDaGFyU3RyaW5ncyhsLGYpO3RoaXMubmV4dENoYXIoKTtpPXRoaXMuZ2V0VG9rZW4oKTsibm9hY2Nlc3MiPT09aSYmdGhpcy5nZXRUb2tlbigpO25bZV09YX1icmVhaztjYXNlIkJsdWVWYWx1ZXMiOmNhc2UiT3RoZXJCbHVlcyI6Y2FzZSJGYW1pbHlCbHVlcyI6Y2FzZSJGYW1pbHlPdGhlckJsdWVzIjpjb25zdCBlPXRoaXMucmVhZE51bWJlckFycmF5KCk7ZS5sZW5ndGg+MCYmZS5sZW5ndGgsMDticmVhaztjYXNlIlN0ZW1TbmFwSCI6Y2FzZSJTdGVtU25hcFYiOnMucHJvcGVydGllcy5wcml2YXRlRGF0YVtpXT10aGlzLnJlYWROdW1iZXJBcnJheSgpO2JyZWFrO2Nhc2UiU3RkSFciOmNhc2UiU3RkVlciOnMucHJvcGVydGllcy5wcml2YXRlRGF0YVtpXT10aGlzLnJlYWROdW1iZXJBcnJheSgpWzBdO2JyZWFrO2Nhc2UiQmx1ZVNoaWZ0IjpjYXNlImxlbklWIjpjYXNlIkJsdWVGdXp6IjpjYXNlIkJsdWVTY2FsZSI6Y2FzZSJMYW5ndWFnZUdyb3VwIjpzLnByb3BlcnRpZXMucHJpdmF0ZURhdGFbaV09dGhpcy5yZWFkTnVtYmVyKCk7YnJlYWs7Y2FzZSJFeHBhbnNpb25GYWN0b3IiOnMucHJvcGVydGllcy5wcml2YXRlRGF0YVtpXT10aGlzLnJlYWROdW1iZXIoKXx8LjA2O2JyZWFrO2Nhc2UiRm9yY2VCb2xkIjpzLnByb3BlcnRpZXMucHJpdmF0ZURhdGFbaV09dGhpcy5yZWFkQm9vbGVhbigpfX1mb3IoY29uc3R7ZW5jb2RlZDp0LGdseXBoOnJ9b2YgYSl7Y29uc3QgYT1uZXcgVHlwZTFDaGFyU3RyaW5nLGk9YS5jb252ZXJ0KHQsbix0aGlzLnNlYWNBbmFseXNpc0VuYWJsZWQpO2xldCBvPWEub3V0cHV0O2kmJihvPVsxNF0pO2NvbnN0IGw9e2dseXBoTmFtZTpyLGNoYXJzdHJpbmc6byx3aWR0aDphLndpZHRoLGxzYjphLmxzYixzZWFjOmEuc2VhY307Ii5ub3RkZWYiPT09cj9zLmNoYXJzdHJpbmdzLnVuc2hpZnQobCk6cy5jaGFyc3RyaW5ncy5wdXNoKGwpO2lmKGUuYnVpbHRJbkVuY29kaW5nKXtjb25zdCB0PWUuYnVpbHRJbkVuY29kaW5nLmluZGV4T2Yocik7dD4tMSYmdm9pZCAwPT09ZS53aWR0aHNbdF0mJnQ+PWUuZmlyc3RDaGFyJiZ0PD1lLmxhc3RDaGFyJiYoZS53aWR0aHNbdF09YS53aWR0aCl9fXJldHVybiBzfWV4dHJhY3RGb250SGVhZGVyKGUpe2xldCB0O2Zvcig7bnVsbCE9PSh0PXRoaXMuZ2V0VG9rZW4oKSk7KWlmKCIvIj09PXQpe3Q9dGhpcy5nZXRUb2tlbigpO3N3aXRjaCh0KXtjYXNlIkZvbnRNYXRyaXgiOmNvbnN0IG49dGhpcy5yZWFkTnVtYmVyQXJyYXkoKTtlLmZvbnRNYXRyaXg9bjticmVhaztjYXNlIkVuY29kaW5nIjpjb25zdCBhPXRoaXMuZ2V0VG9rZW4oKTtsZXQgcjtpZigvXlxkKyQvLnRlc3QoYSkpe3I9W107Y29uc3QgZT0wfHBhcnNlSW50KGEsMTApO3RoaXMuZ2V0VG9rZW4oKTtmb3IobGV0IG49MDtuPGU7bisrKXt0PXRoaXMuZ2V0VG9rZW4oKTtmb3IoOyJkdXAiIT09dCYmImRlZiIhPT10Oyl7dD10aGlzLmdldFRva2VuKCk7aWYobnVsbD09PXQpcmV0dXJufWlmKCJkZWYiPT09dClicmVhaztjb25zdCBlPXRoaXMucmVhZEludCgpO3RoaXMuZ2V0VG9rZW4oKTtjb25zdCBuPXRoaXMuZ2V0VG9rZW4oKTtyW2VdPW47dGhpcy5nZXRUb2tlbigpfX1lbHNlIHI9Z2V0RW5jb2RpbmcoYSk7ZS5idWlsdEluRW5jb2Rpbmc9cjticmVhaztjYXNlIkZvbnRCQm94Ijpjb25zdCBzPXRoaXMucmVhZE51bWJlckFycmF5KCk7ZS5hc2NlbnQ9TWF0aC5tYXgoc1szXSxzWzFdKTtlLmRlc2NlbnQ9TWF0aC5taW4oc1sxXSxzWzNdKTtlLmFzY2VudFNjYWxlZD0hMH19fX1mdW5jdGlvbiBmaW5kQmxvY2soZSx0LG4pe2NvbnN0IGE9ZS5sZW5ndGgscj10Lmxlbmd0aCxzPWEtcjtsZXQgaT1uLG89ITE7Zm9yKDtpPHM7KXtsZXQgbj0wO2Zvcig7bjxyJiZlW2krbl09PT10W25dOyluKys7aWYobj49cil7aSs9bjtmb3IoO2k8YSYmaXNXaGl0ZVNwYWNlKGVbaV0pOylpKys7bz0hMDticmVha31pKyt9cmV0dXJue2ZvdW5kOm8sbGVuZ3RoOml9fWNsYXNzIFR5cGUxRm9udHtjb25zdHJ1Y3RvcihlLHQsbil7bGV0IGE9bi5sZW5ndGgxLHI9bi5sZW5ndGgyLHM9dC5wZWVrQnl0ZXMoNik7Y29uc3QgaT0xMjg9PT1zWzBdJiYxPT09c1sxXTtpZihpKXt0LnNraXAoNik7YT1zWzVdPDwyNHxzWzRdPDwxNnxzWzNdPDw4fHNbMl19Y29uc3Qgbz1mdW5jdGlvbiBnZXRIZWFkZXJCbG9jayhlLHQpe2NvbnN0IG49WzEwMSwxMDEsMTIwLDEwMSw5OV0sYT1lLnBvcztsZXQgcixzLGksbzt0cnl7cj1lLmdldEJ5dGVzKHQpO3M9ci5sZW5ndGh9Y2F0Y2h7fWlmKHM9PT10KXtpPWZpbmRCbG9jayhyLG4sdC0yKm4ubGVuZ3RoKTtpZihpLmZvdW5kJiZpLmxlbmd0aD09PXQpcmV0dXJue3N0cmVhbTpuZXcgU3RyZWFtKHIpLGxlbmd0aDp0fX13YXJuKCdJbnZhbGlkICJMZW5ndGgxIiBwcm9wZXJ0eSBpbiBUeXBlMSBmb250IC0tIHRyeWluZyB0byByZWNvdmVyLicpO2UucG9zPWE7Zm9yKDs7KXtpPWZpbmRCbG9jayhlLnBlZWtCeXRlcygyMDQ4KSxuLDApO2lmKDA9PT1pLmxlbmd0aClicmVhaztlLnBvcys9aS5sZW5ndGg7aWYoaS5mb3VuZCl7bz1lLnBvcy1hO2JyZWFrfX1lLnBvcz1hO2lmKG8pcmV0dXJue3N0cmVhbTpuZXcgU3RyZWFtKGUuZ2V0Qnl0ZXMobykpLGxlbmd0aDpvfTt3YXJuKCdVbmFibGUgdG8gcmVjb3ZlciAiTGVuZ3RoMSIgcHJvcGVydHkgaW4gVHlwZTEgZm9udCAtLSB1c2luZyBhcyBpcy4nKTtyZXR1cm57c3RyZWFtOm5ldyBTdHJlYW0oZS5nZXRCeXRlcyh0KSksbGVuZ3RoOnR9fSh0LGEpO25ldyBUeXBlMVBhcnNlcihvLnN0cmVhbSwhMSxBYSkuZXh0cmFjdEZvbnRIZWFkZXIobik7aWYoaSl7cz10LmdldEJ5dGVzKDYpO3I9c1s1XTw8MjR8c1s0XTw8MTZ8c1szXTw8OHxzWzJdfWNvbnN0IGw9ZnVuY3Rpb24gZ2V0RWV4ZWNCbG9jayhlLHQpe2NvbnN0IG49ZS5nZXRCeXRlcygpO2lmKDA9PT1uLmxlbmd0aCl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoImdldEVleGVjQmxvY2sgLSBubyBmb250IHByb2dyYW0gZm91bmQuIik7cmV0dXJue3N0cmVhbTpuZXcgU3RyZWFtKG4pLGxlbmd0aDpuLmxlbmd0aH19KHQpLGY9bmV3IFR5cGUxUGFyc2VyKGwuc3RyZWFtLCEwLEFhKS5leHRyYWN0Rm9udFByb2dyYW0obik7Zm9yKGNvbnN0IGUgaW4gZi5wcm9wZXJ0aWVzKW5bZV09Zi5wcm9wZXJ0aWVzW2VdO2NvbnN0IGM9Zi5jaGFyc3RyaW5ncyxoPXRoaXMuZ2V0VHlwZTJDaGFyc3RyaW5ncyhjKSx1PXRoaXMuZ2V0VHlwZTJTdWJycyhmLnN1YnJzKTt0aGlzLmNoYXJzdHJpbmdzPWM7dGhpcy5kYXRhPXRoaXMud3JhcChlLGgsdGhpcy5jaGFyc3RyaW5ncyx1LG4pO3RoaXMuc2VhY3M9dGhpcy5nZXRTZWFjcyhmLmNoYXJzdHJpbmdzKX1nZXQgbnVtR2x5cGhzKCl7cmV0dXJuIHRoaXMuY2hhcnN0cmluZ3MubGVuZ3RoKzF9Z2V0Q2hhcnNldCgpe2NvbnN0IGU9WyIubm90ZGVmIl07Zm9yKGNvbnN0e2dseXBoTmFtZTp0fW9mIHRoaXMuY2hhcnN0cmluZ3MpZS5wdXNoKHQpO3JldHVybiBlfWdldEdseXBoTWFwcGluZyhlKXtjb25zdCB0PXRoaXMuY2hhcnN0cmluZ3M7aWYoZS5jb21wb3NpdGUpe2NvbnN0IG49T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IobGV0IGE9MCxyPXQubGVuZ3RoO2E8cjthKyspe25bZS5jTWFwLmNoYXJDb2RlT2YoYSldPWErMX1yZXR1cm4gbn1jb25zdCBuPVsiLm5vdGRlZiJdO2xldCBhLHI7Zm9yKHI9MDtyPHQubGVuZ3RoO3IrKyluLnB1c2godFtyXS5nbHlwaE5hbWUpO2NvbnN0IHM9ZS5idWlsdEluRW5jb2Rpbmc7aWYocyl7YT1PYmplY3QuY3JlYXRlKG51bGwpO2Zvcihjb25zdCBlIGluIHMpe3I9bi5pbmRleE9mKHNbZV0pO3I+PTAmJihhW2VdPXIpfX1yZXR1cm4gdHlwZTFGb250R2x5cGhNYXBwaW5nKGUsYSxuKX1oYXNHbHlwaElkKGUpe2lmKGU8MHx8ZT49dGhpcy5udW1HbHlwaHMpcmV0dXJuITE7aWYoMD09PWUpcmV0dXJuITA7cmV0dXJuIHRoaXMuY2hhcnN0cmluZ3NbZS0xXS5jaGFyc3RyaW5nLmxlbmd0aD4wfWdldFNlYWNzKGUpe2NvbnN0IHQ9W107Zm9yKGxldCBuPTAsYT1lLmxlbmd0aDtuPGE7bisrKXtjb25zdCBhPWVbbl07YS5zZWFjJiYodFtuKzFdPWEuc2VhYyl9cmV0dXJuIHR9Z2V0VHlwZTJDaGFyc3RyaW5ncyhlKXtjb25zdCB0PVtdO2Zvcihjb25zdCBuIG9mIGUpdC5wdXNoKG4uY2hhcnN0cmluZyk7cmV0dXJuIHR9Z2V0VHlwZTJTdWJycyhlKXtsZXQgdD0wO2NvbnN0IG49ZS5sZW5ndGg7dD1uPDExMzM/MTA3Om48MzM3Njk/MTEzMTozMjc2ODtjb25zdCBhPVtdO2xldCByO2ZvcihyPTA7cjx0O3IrKylhLnB1c2goWzExXSk7Zm9yKHI9MDtyPG47cisrKWEucHVzaChlW3JdKTtyZXR1cm4gYX13cmFwKGUsdCxuLGEscil7Y29uc3Qgcz1uZXcgQ0ZGO3MuaGVhZGVyPW5ldyBDRkZIZWFkZXIoMSwwLDQsNCk7cy5uYW1lcz1bZV07Y29uc3QgaT1uZXcgQ0ZGVG9wRGljdDtpLnNldEJ5TmFtZSgidmVyc2lvbiIsMzkxKTtpLnNldEJ5TmFtZSgiTm90aWNlIiwzOTIpO2kuc2V0QnlOYW1lKCJGdWxsTmFtZSIsMzkzKTtpLnNldEJ5TmFtZSgiRmFtaWx5TmFtZSIsMzk0KTtpLnNldEJ5TmFtZSgiV2VpZ2h0IiwzOTUpO2kuc2V0QnlOYW1lKCJFbmNvZGluZyIsbnVsbCk7aS5zZXRCeU5hbWUoIkZvbnRNYXRyaXgiLHIuZm9udE1hdHJpeCk7aS5zZXRCeU5hbWUoIkZvbnRCQm94IixyLmJib3gpO2kuc2V0QnlOYW1lKCJjaGFyc2V0IixudWxsKTtpLnNldEJ5TmFtZSgiQ2hhclN0cmluZ3MiLG51bGwpO2kuc2V0QnlOYW1lKCJQcml2YXRlIixudWxsKTtzLnRvcERpY3Q9aTtjb25zdCBvPW5ldyBDRkZTdHJpbmdzO28uYWRkKCJWZXJzaW9uIDAuMTEiKTtvLmFkZCgiU2VlIG9yaWdpbmFsIG5vdGljZSIpO28uYWRkKGUpO28uYWRkKGUpO28uYWRkKCJNZWRpdW0iKTtzLnN0cmluZ3M9bztzLmdsb2JhbFN1YnJJbmRleD1uZXcgQ0ZGSW5kZXg7Y29uc3QgbD10Lmxlbmd0aCxmPVsiLm5vdGRlZiJdO2xldCBjLGg7Zm9yKGM9MDtjPGw7YysrKXtjb25zdCBlPW5bY10uZ2x5cGhOYW1lOy0xPT09TWEuaW5kZXhPZihlKSYmby5hZGQoZSk7Zi5wdXNoKGUpfXMuY2hhcnNldD1uZXcgQ0ZGQ2hhcnNldCghMSwwLGYpO2NvbnN0IHU9bmV3IENGRkluZGV4O3UuYWRkKFsxMzksMTRdKTtmb3IoYz0wO2M8bDtjKyspdS5hZGQodFtjXSk7cy5jaGFyU3RyaW5ncz11O2NvbnN0IG09bmV3IENGRlByaXZhdGVEaWN0O20uc2V0QnlOYW1lKCJTdWJycyIsbnVsbCk7Y29uc3QgcD1bIkJsdWVWYWx1ZXMiLCJPdGhlckJsdWVzIiwiRmFtaWx5Qmx1ZXMiLCJGYW1pbHlPdGhlckJsdWVzIiwiU3RlbVNuYXBIIiwiU3RlbVNuYXBWIiwiQmx1ZVNoaWZ0IiwiQmx1ZUZ1enoiLCJCbHVlU2NhbGUiLCJMYW5ndWFnZUdyb3VwIiwiRXhwYW5zaW9uRmFjdG9yIiwiRm9yY2VCb2xkIiwiU3RkSFciLCJTdGRWVyJdO2ZvcihjPTAsaD1wLmxlbmd0aDtjPGg7YysrKXtjb25zdCBlPXBbY107aWYoIShlIGluIHIucHJpdmF0ZURhdGEpKWNvbnRpbnVlO2NvbnN0IHQ9ci5wcml2YXRlRGF0YVtlXTtpZihBcnJheS5pc0FycmF5KHQpKWZvcihsZXQgZT10Lmxlbmd0aC0xO2U+MDtlLS0pdFtlXS09dFtlLTFdO20uc2V0QnlOYW1lKGUsdCl9cy50b3BEaWN0LnByaXZhdGVEaWN0PW07Y29uc3QgZD1uZXcgQ0ZGSW5kZXg7Zm9yKGM9MCxoPWEubGVuZ3RoO2M8aDtjKyspZC5hZGQoYVtjXSk7bS5zdWJyc0luZGV4PWQ7cmV0dXJuIG5ldyBDRkZDb21waWxlcihzKS5jb21waWxlKCl9fWNvbnN0IGNyPVtbNTczNDQsNjM3NDNdLFsxMDQ4NTc2LDExMTQxMDldXSxocj0xZTMsdXI9WyJhc2NlbnQiLCJiYm94IiwiYmxhY2siLCJib2xkIiwiY2hhclByb2NPcGVyYXRvckxpc3QiLCJjc3NGb250SW5mbyIsImRhdGEiLCJkZWZhdWx0Vk1ldHJpY3MiLCJkZWZhdWx0V2lkdGgiLCJkZXNjZW50IiwiZGlzYWJsZUZvbnRGYWNlIiwiZmFsbGJhY2tOYW1lIiwiZm9udEV4dHJhUHJvcGVydGllcyIsImZvbnRNYXRyaXgiLCJpc0ludmFsaWRQREZqc0ZvbnQiLCJpc1R5cGUzRm9udCIsIml0YWxpYyIsImxvYWRlZE5hbWUiLCJtaW1ldHlwZSIsIm1pc3NpbmdGaWxlIiwibmFtZSIsInJlbWVhc3VyZSIsInN5c3RlbUZvbnRJbmZvIiwidmVydGljYWwiXSxtcj1bImNNYXAiLCJjb21wb3NpdGUiLCJkZWZhdWx0RW5jb2RpbmciLCJkaWZmZXJlbmNlcyIsImlzTW9ub3NwYWNlIiwiaXNTZXJpZkZvbnQiLCJpc1N5bWJvbGljRm9udCIsInNlYWNNYXAiLCJzdWJ0eXBlIiwidG9Gb250Q2hhciIsInRvVW5pY29kZSIsInR5cGUiLCJ2bWV0cmljcyIsIndpZHRocyJdO2Z1bmN0aW9uIGFkanVzdFdpZHRocyhlKXtpZighZS5mb250TWF0cml4KXJldHVybjtpZihlLmZvbnRNYXRyaXhbMF09PT1hWzBdKXJldHVybjtjb25zdCB0PS4wMDEvZS5mb250TWF0cml4WzBdLG49ZS53aWR0aHM7Zm9yKGNvbnN0IGUgaW4gbiluW2VdKj10O2UuZGVmYXVsdFdpZHRoKj10fWZ1bmN0aW9uIGFtZW5kRmFsbGJhY2tUb1VuaWNvZGUoZSl7aWYoIWUuZmFsbGJhY2tUb1VuaWNvZGUpcmV0dXJuO2lmKGUudG9Vbmljb2RlIGluc3RhbmNlb2YgSWRlbnRpdHlUb1VuaWNvZGVNYXApcmV0dXJuO2NvbnN0IHQ9W107Zm9yKGNvbnN0IG4gaW4gZS5mYWxsYmFja1RvVW5pY29kZSllLnRvVW5pY29kZS5oYXMobil8fCh0W25dPWUuZmFsbGJhY2tUb1VuaWNvZGVbbl0pO3QubGVuZ3RoPjAmJmUudG9Vbmljb2RlLmFtZW5kKHQpfWNsYXNzIGZvbnRzX0dseXBoe2NvbnN0cnVjdG9yKGUsdCxuLGEscixzLGksbyxsKXt0aGlzLm9yaWdpbmFsQ2hhckNvZGU9ZTt0aGlzLmZvbnRDaGFyPXQ7dGhpcy51bmljb2RlPW47dGhpcy5hY2NlbnQ9YTt0aGlzLndpZHRoPXI7dGhpcy52bWV0cmljPXM7dGhpcy5vcGVyYXRvckxpc3RJZD1pO3RoaXMuaXNTcGFjZT1vO3RoaXMuaXNJbkZvbnQ9bH1nZXQgY2F0ZWdvcnkoKXtyZXR1cm4gc2hhZG93KHRoaXMsImNhdGVnb3J5IixmdW5jdGlvbiBnZXRDaGFyVW5pY29kZUNhdGVnb3J5KGUpe2NvbnN0IHQ9eGEuZ2V0KGUpO2lmKHQpcmV0dXJuIHQ7Y29uc3Qgbj1lLm1hdGNoKFNhKSxhPXtpc1doaXRlc3BhY2U6ISFuPy5bMV0saXNaZXJvV2lkdGhEaWFjcml0aWM6ISFuPy5bMl0saXNJbnZpc2libGVGb3JtYXRNYXJrOiEhbj8uWzNdfTt4YS5zZXQoZSxhKTtyZXR1cm4gYX0odGhpcy51bmljb2RlKSwhMCl9fWZ1bmN0aW9uIGludDE2KGUsdCl7cmV0dXJuKGU8PDgpK3R9ZnVuY3Rpb24gd3JpdGVTaWduZWRJbnQxNihlLHQsbil7ZVt0KzFdPW47ZVt0XT1uPj4+OH1mdW5jdGlvbiBzaWduZWRJbnQxNihlLHQpe2NvbnN0IG49KGU8PDgpK3Q7cmV0dXJuIDMyNzY4Jm4/bi02NTUzNjpufWZ1bmN0aW9uIHN0cmluZzE2KGUpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGU+PjgmMjU1LDI1NSZlKX1mdW5jdGlvbiBzYWZlU3RyaW5nMTYoZSl7ZT4zMjc2Nz9lPTMyNzY3OmU8LTMyNzY4JiYoZT0tMzI3NjgpO3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGU+PjgmMjU1LDI1NSZlKX1mdW5jdGlvbiBpc1RydWVUeXBlQ29sbGVjdGlvbkZpbGUoZSl7cmV0dXJuInR0Y2YiPT09Ynl0ZXNUb1N0cmluZyhlLnBlZWtCeXRlcyg0KSl9ZnVuY3Rpb24gZ2V0Rm9udEZpbGVUeXBlKGUse3R5cGU6dCxzdWJ0eXBlOm4sY29tcG9zaXRlOmF9KXtsZXQgcixzO2lmKGZ1bmN0aW9uIGlzVHJ1ZVR5cGVGaWxlKGUpe2NvbnN0IHQ9ZS5wZWVrQnl0ZXMoNCk7cmV0dXJuIDY1NTM2PT09cmVhZFVpbnQzMih0LDApfHwidHJ1ZSI9PT1ieXRlc1RvU3RyaW5nKHQpfShlKXx8aXNUcnVlVHlwZUNvbGxlY3Rpb25GaWxlKGUpKXI9YT8iQ0lERm9udFR5cGUyIjoiVHJ1ZVR5cGUiO2Vsc2UgaWYoZnVuY3Rpb24gaXNPcGVuVHlwZUZpbGUoZSl7cmV0dXJuIk9UVE8iPT09Ynl0ZXNUb1N0cmluZyhlLnBlZWtCeXRlcyg0KSl9KGUpKXI9YT8iQ0lERm9udFR5cGUyIjoiT3BlblR5cGUiO2Vsc2UgaWYoZnVuY3Rpb24gaXNUeXBlMUZpbGUoZSl7Y29uc3QgdD1lLnBlZWtCeXRlcygyKTtyZXR1cm4gMzc9PT10WzBdJiYzMz09PXRbMV18fDEyOD09PXRbMF0mJjE9PT10WzFdfShlKSlyPWE/IkNJREZvbnRUeXBlMCI6Ik1NVHlwZTEiPT09dD8iTU1UeXBlMSI6IlR5cGUxIjtlbHNlIGlmKGZ1bmN0aW9uIGlzQ0ZGRmlsZShlKXtjb25zdCB0PWUucGVla0J5dGVzKDQpO3JldHVybiB0WzBdPj0xJiZ0WzNdPj0xJiZ0WzNdPD00fShlKSlpZihhKXtyPSJDSURGb250VHlwZTAiO3M9IkNJREZvbnRUeXBlMEMifWVsc2V7cj0iTU1UeXBlMSI9PT10PyJNTVR5cGUxIjoiVHlwZTEiO3M9IlR5cGUxQyJ9ZWxzZXt3YXJuKCJnZXRGb250RmlsZVR5cGU6IFVuYWJsZSB0byBkZXRlY3QgY29ycmVjdCBmb250IGZpbGUgVHlwZS9TdWJ0eXBlLiIpO3I9dDtzPW59cmV0dXJuW3Isc119ZnVuY3Rpb24gYXBwbHlTdGFuZGFyZEZvbnRHbHlwaE1hcChlLHQpe2Zvcihjb25zdCBuIGluIHQpZVsrbl09dFtuXX1mdW5jdGlvbiBidWlsZFRvRm9udENoYXIoZSx0LG4pe2NvbnN0IGE9W107bGV0IHI7Zm9yKGxldCBuPTAscz1lLmxlbmd0aDtuPHM7bisrKXtyPWdldFVuaWNvZGVGb3JHbHlwaChlW25dLHQpOy0xIT09ciYmKGFbbl09cil9Zm9yKGNvbnN0IGUgaW4gbil7cj1nZXRVbmljb2RlRm9yR2x5cGgobltlXSx0KTstMSE9PXImJihhWytlXT1yKX1yZXR1cm4gYX1mdW5jdGlvbiBpc01hY05hbWVSZWNvcmQoZSl7cmV0dXJuIDE9PT1lLnBsYXRmb3JtJiYwPT09ZS5lbmNvZGluZyYmMD09PWUubGFuZ3VhZ2V9ZnVuY3Rpb24gaXNXaW5OYW1lUmVjb3JkKGUpe3JldHVybiAzPT09ZS5wbGF0Zm9ybSYmMT09PWUuZW5jb2RpbmcmJjEwMzM9PT1lLmxhbmd1YWdlfWZ1bmN0aW9uIGNvbnZlcnRDaWRTdHJpbmcoZSx0LG49ITEpe3N3aXRjaCh0Lmxlbmd0aCl7Y2FzZSAxOnJldHVybiB0LmNoYXJDb2RlQXQoMCk7Y2FzZSAyOnJldHVybiB0LmNoYXJDb2RlQXQoMCk8PDh8dC5jaGFyQ29kZUF0KDEpfWNvbnN0IGE9YFVuc3VwcG9ydGVkIENJRCBzdHJpbmcgKGNoYXJDb2RlICR7ZX0pOiAiJHt0fSIuYDtpZihuKXRocm93IG5ldyBGb3JtYXRFcnJvcihhKTt3YXJuKGEpO3JldHVybiB0fWZ1bmN0aW9uIGFkanVzdE1hcHBpbmcoZSx0LG4sYSl7Y29uc3Qgcj1PYmplY3QuY3JlYXRlKG51bGwpLHM9bmV3IE1hcCxpPVtdLG89bmV3IFNldDtsZXQgbD0wO2xldCBmPWNyW2xdWzBdLGM9Y3JbbF1bMV07Y29uc3QgaXNJblByaXZhdGVBcmVhPWU9PmNyWzBdWzBdPD1lJiZlPD1jclswXVsxXXx8Y3JbMV1bMF08PWUmJmU8PWNyWzFdWzFdO2xldCBoPW51bGw7Zm9yKGNvbnN0IHUgaW4gZSl7bGV0IG09ZVt1XTtpZighdChtKSljb250aW51ZTtpZihmPmMpe2wrKztpZihsPj1jci5sZW5ndGgpe3dhcm4oIlJhbiBvdXQgb2Ygc3BhY2UgaW4gZm9udCBwcml2YXRlIHVzZSBhcmVhLiIpO2JyZWFrfWY9Y3JbbF1bMF07Yz1jcltsXVsxXX1jb25zdCBwPWYrKzswPT09bSYmKG09bik7bGV0IGQ9YS5nZXQodSk7aWYoInN0cmluZyI9PXR5cGVvZiBkKWlmKDE9PT1kLmxlbmd0aClkPWQuY29kZVBvaW50QXQoMCk7ZWxzZXtpZighaCl7aD1uZXcgTWFwO2ZvcihsZXQgZT02NDI1NjtlPD02NDMzNTtlKyspe2NvbnN0IHQ9U3RyaW5nLmZyb21DaGFyQ29kZShlKS5ub3JtYWxpemUoIk5GS0QiKTt0Lmxlbmd0aD4xJiZoLnNldCh0LGUpfX1kPWguZ2V0KGQpfHxkLmNvZGVQb2ludEF0KDApfWlmKGQmJiFpc0luUHJpdmF0ZUFyZWEoZCkmJiFvLmhhcyhtKSl7cy5zZXQoZCxtKTtvLmFkZChtKX1yW3BdPW07aVt1XT1wfXJldHVybnt0b0ZvbnRDaGFyOmksY2hhckNvZGVUb0dseXBoSWQ6cix0b1VuaWNvZGVFeHRyYU1hcDpzLG5leHRBdmFpbGFibGVGb250Q2hhckNvZGU6Zn19ZnVuY3Rpb24gY3JlYXRlQ21hcFRhYmxlKGUsdCxuKXtjb25zdCBhPWZ1bmN0aW9uIGdldFJhbmdlcyhlLHQsbil7Y29uc3QgYT1bXTtmb3IoY29uc3QgdCBpbiBlKWVbdF0+PW58fGEucHVzaCh7Zm9udENoYXJDb2RlOjB8dCxnbHlwaElkOmVbdF19KTtpZih0KWZvcihjb25zdFtlLHJdb2YgdClyPj1ufHxhLnB1c2goe2ZvbnRDaGFyQ29kZTplLGdseXBoSWQ6cn0pOzA9PT1hLmxlbmd0aCYmYS5wdXNoKHtmb250Q2hhckNvZGU6MCxnbHlwaElkOjB9KTthLnNvcnQoKGUsdCk9PmUuZm9udENoYXJDb2RlLXQuZm9udENoYXJDb2RlKTtjb25zdCByPVtdLHM9YS5sZW5ndGg7Zm9yKGxldCBlPTA7ZTxzOyl7Y29uc3QgdD1hW2VdLmZvbnRDaGFyQ29kZSxuPVthW2VdLmdseXBoSWRdOysrZTtsZXQgaT10O2Zvcig7ZTxzJiZpKzE9PT1hW2VdLmZvbnRDaGFyQ29kZTspe24ucHVzaChhW2VdLmdseXBoSWQpOysraTsrK2U7aWYoNjU1MzU9PT1pKWJyZWFrfXIucHVzaChbdCxpLG5dKX1yZXR1cm4gcn0oZSx0LG4pLHI9YS5hdCgtMSlbMV0+NjU1MzU/MjoxO2xldCBzLGksbyxsLGY9IlwwXDAiK3N0cmluZzE2KHIpKyJcMANcMAEiK3N0cmluZzMyKDQrOCpyKTtmb3Iocz1hLmxlbmd0aC0xO3M+PTAmJiEoYVtzXVswXTw9NjU1MzUpOy0tcyk7Y29uc3QgYz1zKzE7YVtzXVswXTw2NTUzNSYmNjU1MzU9PT1hW3NdWzFdJiYoYVtzXVsxXT02NTUzNCk7Y29uc3QgaD1hW3NdWzFdPDY1NTM1PzE6MCx1PWMraCxtPU9wZW5UeXBlRmlsZUJ1aWxkZXIuZ2V0U2VhcmNoUGFyYW1zKHUsMik7bGV0IHAsZCxnLGIsdz0iIixqPSIiLGs9IiIseT0iIixxPSIiLHY9MDtmb3Iocz0wLGk9YztzPGk7cysrKXtwPWFbc107ZD1wWzBdO2c9cFsxXTt3Kz1zdHJpbmcxNihkKTtqKz1zdHJpbmcxNihnKTtiPXBbMl07bGV0IGU9ITA7Zm9yKG89MSxsPWIubGVuZ3RoO288bDsrK28paWYoYltvXSE9PWJbby0xXSsxKXtlPSExO2JyZWFrfWlmKGUpe2srPXN0cmluZzE2KGJbMF0tZCY2NTUzNSk7eSs9c3RyaW5nMTYoMCl9ZWxzZXtjb25zdCBlPTIqKHUtcykrMip2O3YrPWctZCsxO2srPXN0cmluZzE2KDApO3krPXN0cmluZzE2KGUpO2ZvcihvPTAsbD1iLmxlbmd0aDtvPGw7KytvKXErPXN0cmluZzE2KGJbb10pfX1pZihoPjApe2orPSLDv8O/Ijt3Kz0iw7/DvyI7ays9IlwwASI7eSs9IlwwXDAifWNvbnN0IFM9IlwwXDAiK3N0cmluZzE2KDIqdSkrc3RyaW5nMTYobS5yYW5nZSkrc3RyaW5nMTYobS5lbnRyeSkrc3RyaW5nMTYobS5yYW5nZVNoaWZ0KStqKyJcMFwwIit3K2sreStxO2xldCB4PSIiLEM9IiI7aWYocj4xKXtmKz0iXDADXDBcbiIrc3RyaW5nMzIoNCs4KnIrNCtTLmxlbmd0aCk7eD0iIjtmb3Iocz0wLGk9YS5sZW5ndGg7czxpO3MrKyl7cD1hW3NdO2Q9cFswXTtiPXBbMl07bGV0IGU9YlswXTtmb3Iobz0xLGw9Yi5sZW5ndGg7bzxsOysrbylpZihiW29dIT09YltvLTFdKzEpe2c9cFswXStvLTE7eCs9c3RyaW5nMzIoZCkrc3RyaW5nMzIoZykrc3RyaW5nMzIoZSk7ZD1nKzE7ZT1iW29dfXgrPXN0cmluZzMyKGQpK3N0cmluZzMyKHBbMV0pK3N0cmluZzMyKGUpfUM9IlwwXGZcMFwwIitzdHJpbmczMih4Lmxlbmd0aCsxNikrIlwwXDBcMFwwIitzdHJpbmczMih4Lmxlbmd0aC8xMil9cmV0dXJuIGYrIlwwBCIrc3RyaW5nMTYoUy5sZW5ndGgrNCkrUytDK3h9ZnVuY3Rpb24gY3JlYXRlT1MyVGFibGUoZSx0LG4pe258fD17dW5pdHNQZXJFbTowLHlNYXg6MCx5TWluOjAsYXNjZW50OjAsZGVzY2VudDowfTtsZXQgYT0wLHI9MCxzPTAsaT0wLG89bnVsbCxsPTAsZj0tMTtpZih0KXtmb3IobGV0IGUgaW4gdCl7ZXw9MDsobz5lfHwhbykmJihvPWUpO2w8ZSYmKGw9ZSk7Zj1nZXRVbmljb2RlUmFuZ2VGb3IoZSxmKTtpZihmPDMyKWF8PTE8PGY7ZWxzZSBpZihmPDY0KXJ8PTE8PGYtMzI7ZWxzZSBpZihmPDk2KXN8PTE8PGYtNjQ7ZWxzZXtpZighKGY8MTIzKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlVuaWNvZGUgcmFuZ2VzIEJpdHMgPiAxMjMgYXJlIHJlc2VydmVkIGZvciBpbnRlcm5hbCB1c2FnZSIpO2l8PTE8PGYtOTZ9fWw+NjU1MzUmJihsPTY1NTM1KX1lbHNle289MDtsPTI1NX1jb25zdCBjPWUuYmJveHx8WzAsMCwwLDBdLGg9bi51bml0c1BlckVtfHwoZS5mb250TWF0cml4PzEvTWF0aC5tYXgoLi4uZS5mb250TWF0cml4LnNsaWNlKDAsNCkubWFwKE1hdGguYWJzKSk6MWUzKSx1PWUuYXNjZW50U2NhbGVkPzE6aC9ocixtPW4uYXNjZW50fHxNYXRoLnJvdW5kKHUqKGUuYXNjZW50fHxjWzNdKSk7bGV0IHA9bi5kZXNjZW50fHxNYXRoLnJvdW5kKHUqKGUuZGVzY2VudHx8Y1sxXSkpO3A+MCYmZS5kZXNjZW50PjAmJmNbMV08MCYmKHA9LXApO2NvbnN0IGQ9bi55TWF4fHxtLGc9LW4ueU1pbnx8LXA7cmV0dXJuIlwwAwIkAcO0XDAFXDBcMALCigLCu1wwXDBcMMKMAsKKAsK7XDBcMAHDn1x4MDAxAQJcMFwwXDBcMAYiK1N0cmluZy5mcm9tQ2hhckNvZGUoZS5maXhlZFBpdGNoPzk6MCkrIlwwXDBcMFwwXDBcMCIrc3RyaW5nMzIoYSkrc3RyaW5nMzIocikrc3RyaW5nMzIocykrc3RyaW5nMzIoaSkrIioyMSoiK3N0cmluZzE2KGUuaXRhbGljQW5nbGU/MTowKStzdHJpbmcxNihvfHxlLmZpcnN0Q2hhcikrc3RyaW5nMTYobHx8ZS5sYXN0Q2hhcikrc3RyaW5nMTYobSkrc3RyaW5nMTYocCkrIlwwZCIrc3RyaW5nMTYoZCkrc3RyaW5nMTYoZykrIlwwXDBcMFwwXDBcMFwwXDAiK3N0cmluZzE2KGUueEhlaWdodCkrc3RyaW5nMTYoZS5jYXBIZWlnaHQpK3N0cmluZzE2KDApK3N0cmluZzE2KG98fGUuZmlyc3RDaGFyKSsiXDADIn1mdW5jdGlvbiBjcmVhdGVQb3N0VGFibGUoZSl7cmV0dXJuIlwwA1wwXDAiK3N0cmluZzMyKE1hdGguZmxvb3IoNjU1MzYqZS5pdGFsaWNBbmdsZSkpKyJcMFwwXDBcMCIrc3RyaW5nMzIoZS5maXhlZFBpdGNoPzE6MCkrIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMFwwIn1mdW5jdGlvbiBjcmVhdGVQb3N0c2NyaXB0TmFtZShlKXtyZXR1cm4gZS5yZXBsYWNlQWxsKC9bXlx4MjEtXHg3RV18W1tcXSgpe308Pi8lXS9nLCIiKS5zbGljZSgwLDYzKX1mdW5jdGlvbiBjcmVhdGVOYW1lVGFibGUoZSx0KXt0fHwodD1bW10sW11dKTtjb25zdCBuPVt0WzBdWzBdfHwiT3JpZ2luYWwgbGljZW5jZSIsdFswXVsxXXx8ZSx0WzBdWzJdfHwiVW5rbm93biIsdFswXVszXXx8InVuaXF1ZUlEIix0WzBdWzRdfHxlLHRbMF1bNV18fCJWZXJzaW9uIDAuMTEiLHRbMF1bNl18fGNyZWF0ZVBvc3RzY3JpcHROYW1lKGUpLHRbMF1bN118fCJVbmtub3duIix0WzBdWzhdfHwiVW5rbm93biIsdFswXVs5XXx8IlVua25vd24iXSxhPVtdO2xldCByLHMsaSxvLGw7Zm9yKHI9MCxzPW4ubGVuZ3RoO3I8cztyKyspe2w9dFsxXVtyXXx8bltyXTtjb25zdCBlPVtdO2ZvcihpPTAsbz1sLmxlbmd0aDtpPG87aSsrKWUucHVzaChzdHJpbmcxNihsLmNoYXJDb2RlQXQoaSkpKTthLnB1c2goZS5qb2luKCIiKSl9Y29uc3QgZj1bbixhXSxjPVsiXDABIiwiXDADIl0saD1bIlwwXDAiLCJcMAEiXSx1PVsiXDBcMCIsIgRcdCJdLG09bi5sZW5ndGgqYy5sZW5ndGg7bGV0IHA9IlwwXDAiK3N0cmluZzE2KG0pK3N0cmluZzE2KDEyKm0rNiksZD0wO2ZvcihyPTAscz1jLmxlbmd0aDtyPHM7cisrKXtjb25zdCBlPWZbcl07Zm9yKGk9MCxvPWUubGVuZ3RoO2k8bztpKyspe2w9ZVtpXTtwKz1jW3JdK2hbcl0rdVtyXStzdHJpbmcxNihpKStzdHJpbmcxNihsLmxlbmd0aCkrc3RyaW5nMTYoZCk7ZCs9bC5sZW5ndGh9fXArPW4uam9pbigiIikrYS5qb2luKCIiKTtyZXR1cm4gcH1jbGFzcyBGb250e2NvbnN0cnVjdG9yKGUsdCxuLGEpe3RoaXMubmFtZT1lO3RoaXMucHNOYW1lPW51bGw7dGhpcy5taW1ldHlwZT1udWxsO3RoaXMuZGlzYWJsZUZvbnRGYWNlPWEuZGlzYWJsZUZvbnRGYWNlO3RoaXMuZm9udEV4dHJhUHJvcGVydGllcz1hLmZvbnRFeHRyYVByb3BlcnRpZXM7dGhpcy5sb2FkZWROYW1lPW4ubG9hZGVkTmFtZTt0aGlzLmlzVHlwZTNGb250PW4uaXNUeXBlM0ZvbnQ7dGhpcy5taXNzaW5nRmlsZT0hMTt0aGlzLmNzc0ZvbnRJbmZvPW4uY3NzRm9udEluZm87dGhpcy5fY2hhcnNDYWNoZT1PYmplY3QuY3JlYXRlKG51bGwpO3RoaXMuX2dseXBoQ2FjaGU9T2JqZWN0LmNyZWF0ZShudWxsKTtsZXQgcj0hIShuLmZsYWdzJklhKTtpZighciYmIW4uaXNTaW11bGF0ZWRGbGFncyl7Y29uc3QgdD1VYSgpLG49V2EoKSxhPUthKCk7Zm9yKGNvbnN0IHMgb2YgZS5zcGxpdCgiKyIpKXtsZXQgZT1ub3JtYWxpemVGb250TmFtZShzKTtlPXRbZV18fG5bZV18fGU7ZT1lLnNwbGl0KCItIiwxKVswXTtpZihhW2VdKXtyPSEwO2JyZWFrfX19dGhpcy5pc1NlcmlmRm9udD1yO3RoaXMuaXNTeW1ib2xpY0ZvbnQ9ISEobi5mbGFncyZGYSk7dGhpcy5pc01vbm9zcGFjZT0hIShuLmZsYWdzJkNhKTtsZXR7dHlwZTpzLHN1YnR5cGU6aX09bjt0aGlzLnR5cGU9czt0aGlzLnN1YnR5cGU9aTt0aGlzLnN5c3RlbUZvbnRJbmZvPW4uc3lzdGVtRm9udEluZm87Y29uc3Qgbz1lLm1hdGNoKC9eSW52YWxpZFBERmpzRm9udF8oLiopX1xkKyQvKTt0aGlzLmlzSW52YWxpZFBERmpzRm9udD0hIW87dGhpcy5pc0ludmFsaWRQREZqc0ZvbnQ/dGhpcy5mYWxsYmFja05hbWU9b1sxXTp0aGlzLmlzTW9ub3NwYWNlP3RoaXMuZmFsbGJhY2tOYW1lPSJtb25vc3BhY2UiOnRoaXMuaXNTZXJpZkZvbnQ/dGhpcy5mYWxsYmFja05hbWU9InNlcmlmIjp0aGlzLmZhbGxiYWNrTmFtZT0ic2Fucy1zZXJpZiI7aWYodGhpcy5zeXN0ZW1Gb250SW5mbz8uZ3Vlc3NGYWxsYmFjayl7dGhpcy5zeXN0ZW1Gb250SW5mby5ndWVzc0ZhbGxiYWNrPSExO3RoaXMuc3lzdGVtRm9udEluZm8uY3NzKz1gLCR7dGhpcy5mYWxsYmFja05hbWV9YH10aGlzLmRpZmZlcmVuY2VzPW4uZGlmZmVyZW5jZXM7dGhpcy53aWR0aHM9bi53aWR0aHM7dGhpcy5kZWZhdWx0V2lkdGg9bi5kZWZhdWx0V2lkdGg7dGhpcy5jb21wb3NpdGU9bi5jb21wb3NpdGU7dGhpcy5jTWFwPW4uY01hcDt0aGlzLmNhcEhlaWdodD1uLmNhcEhlaWdodC9ocjt0aGlzLmFzY2VudD1uLmFzY2VudC9ocjt0aGlzLmRlc2NlbnQ9bi5kZXNjZW50L2hyO3RoaXMubGluZUhlaWdodD10aGlzLmFzY2VudC10aGlzLmRlc2NlbnQ7dGhpcy5mb250TWF0cml4PW4uZm9udE1hdHJpeDt0aGlzLmJib3g9bi5iYm94O3RoaXMuZGVmYXVsdEVuY29kaW5nPW4uZGVmYXVsdEVuY29kaW5nO3RoaXMudG9Vbmljb2RlPW4udG9Vbmljb2RlO3RoaXMudG9Gb250Q2hhcj1bXTtpZigiVHlwZTMiPT09bi50eXBlKXtmb3IobGV0IGU9MDtlPDI1NjtlKyspdGhpcy50b0ZvbnRDaGFyW2VdPXRoaXMuZGlmZmVyZW5jZXNbZV18fG4uZGVmYXVsdEVuY29kaW5nW2VdO3JldHVybn10aGlzLmNpZEVuY29kaW5nPW4uY2lkRW5jb2Rpbmd8fCIiO3RoaXMudmVydGljYWw9ISFuLnZlcnRpY2FsO2lmKHRoaXMudmVydGljYWwpe3RoaXMudm1ldHJpY3M9bi52bWV0cmljczt0aGlzLmRlZmF1bHRWTWV0cmljcz1uLmRlZmF1bHRWTWV0cmljc31pZighdHx8dC5pc0VtcHR5KXt0JiZ3YXJuKCdGb250IGZpbGUgaXMgZW1wdHkgaW4gIicrZSsnIiAoJyt0aGlzLmxvYWRlZE5hbWUrIikiKTt0aGlzLmZhbGxiYWNrVG9TeXN0ZW1Gb250KG4pO3JldHVybn1bcyxpXT1nZXRGb250RmlsZVR5cGUodCxuKTtzPT09dGhpcy50eXBlJiZpPT09dGhpcy5zdWJ0eXBlfHxpbmZvKGBJbmNvbnNpc3RlbnQgZm9udCBmaWxlIFR5cGUvU3ViVHlwZSwgZXhwZWN0ZWQ6ICR7dGhpcy50eXBlfS8ke3RoaXMuc3VidHlwZX0gYnV0IGZvdW5kOiAke3N9LyR7aX0uYCk7bGV0IGw7dHJ5e3N3aXRjaChzKXtjYXNlIk1NVHlwZTEiOmluZm8oIk1NVHlwZTEgZm9udCAoIitlKyIpLCBmYWxsaW5nIGJhY2sgdG8gVHlwZTEuIik7Y2FzZSJUeXBlMSI6Y2FzZSJDSURGb250VHlwZTAiOnRoaXMubWltZXR5cGU9ImZvbnQvb3BlbnR5cGUiO2NvbnN0IGE9IlR5cGUxQyI9PT1pfHwiQ0lERm9udFR5cGUwQyI9PT1pP25ldyBDRkZGb250KHQsbik6bmV3IFR5cGUxRm9udChlLHQsbik7YWRqdXN0V2lkdGhzKG4pO2w9dGhpcy5jb252ZXJ0KGUsYSxuKTticmVhaztjYXNlIk9wZW5UeXBlIjpjYXNlIlRydWVUeXBlIjpjYXNlIkNJREZvbnRUeXBlMiI6dGhpcy5taW1ldHlwZT0iZm9udC9vcGVudHlwZSI7bD10aGlzLmNoZWNrQW5kUmVwYWlyKGUsdCxuKTthZGp1c3RXaWR0aHMobik7dGhpcy5pc09wZW5UeXBlJiYocz0iT3BlblR5cGUiKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBGb3JtYXRFcnJvcihgRm9udCAke3N9IGlzIG5vdCBzdXBwb3J0ZWRgKX19Y2F0Y2goZSl7d2FybihlKTt0aGlzLmZhbGxiYWNrVG9TeXN0ZW1Gb250KG4pO3JldHVybn1hbWVuZEZhbGxiYWNrVG9Vbmljb2RlKG4pO3RoaXMuZGF0YT1sO3RoaXMudHlwZT1zO3RoaXMuc3VidHlwZT1pO3RoaXMuZm9udE1hdHJpeD1uLmZvbnRNYXRyaXg7dGhpcy53aWR0aHM9bi53aWR0aHM7dGhpcy5kZWZhdWx0V2lkdGg9bi5kZWZhdWx0V2lkdGg7dGhpcy50b1VuaWNvZGU9bi50b1VuaWNvZGU7dGhpcy5zZWFjTWFwPW4uc2VhY01hcH1nZXQgcmVuZGVyZXIoKXtyZXR1cm4gc2hhZG93KHRoaXMsInJlbmRlcmVyIixGb250UmVuZGVyZXJGYWN0b3J5LmNyZWF0ZSh0aGlzLEFhKSl9ZXhwb3J0RGF0YSgpe2NvbnN0IGU9T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IoY29uc3QgdCBvZiB1cil7Y29uc3Qgbj10aGlzW3RdO3ZvaWQgMCE9PW4mJihlW3RdPW4pfWlmKCF0aGlzLmZvbnRFeHRyYVByb3BlcnRpZXMpcmV0dXJue2RhdGE6ZX07Y29uc3QgdD1PYmplY3QuY3JlYXRlKG51bGwpO2Zvcihjb25zdCBlIG9mIG1yKXtjb25zdCBuPXRoaXNbZV07dm9pZCAwIT09biYmKHRbZV09bil9cmV0dXJue2RhdGE6ZSxleHRyYTp0fX1mYWxsYmFja1RvU3lzdGVtRm9udChlKXt0aGlzLm1pc3NpbmdGaWxlPSEwO2NvbnN0e25hbWU6dCx0eXBlOm59PXRoaXM7bGV0IGE9bm9ybWFsaXplRm9udE5hbWUodCk7Y29uc3Qgcj1VYSgpLHM9V2EoKSxpPSEhclthXSxvPSEoIXNbYV18fCFyW3NbYV1dKTthPXJbYV18fHNbYV18fGE7Y29uc3QgbD1RYSgpW2FdO2lmKGwpe2lzTmFOKHRoaXMuYXNjZW50KSYmKHRoaXMuYXNjZW50PWwuYXNjZW50L2hyKTtpc05hTih0aGlzLmRlc2NlbnQpJiYodGhpcy5kZXNjZW50PWwuZGVzY2VudC9ocik7aXNOYU4odGhpcy5jYXBIZWlnaHQpJiYodGhpcy5jYXBIZWlnaHQ9bC5jYXBIZWlnaHQvaHIpfXRoaXMuYm9sZD0vYm9sZC9naS50ZXN0KGEpO3RoaXMuaXRhbGljPS9vYmxpcXVlfGl0YWxpYy9naS50ZXN0KGEpO3RoaXMuYmxhY2s9L0JsYWNrL2cudGVzdCh0KTtjb25zdCBmPS9OYXJyb3cvZy50ZXN0KHQpO3RoaXMucmVtZWFzdXJlPSghaXx8ZikmJk9iamVjdC5rZXlzKHRoaXMud2lkdGhzKS5sZW5ndGg+MDtpZigoaXx8bykmJiJDSURGb250VHlwZTIiPT09biYmdGhpcy5jaWRFbmNvZGluZy5zdGFydHNXaXRoKCJJZGVudGl0eS0iKSl7Y29uc3Qgbj1lLmNpZFRvR2lkTWFwLGE9W107YXBwbHlTdGFuZGFyZEZvbnRHbHlwaE1hcChhLEdhKCkpOy9BcmlhbC0/QmxhY2svaS50ZXN0KHQpP2FwcGx5U3RhbmRhcmRGb250R2x5cGhNYXAoYSwkYSgpKTovQ2FsaWJyaS9pLnRlc3QodCkmJmFwcGx5U3RhbmRhcmRGb250R2x5cGhNYXAoYSxZYSgpKTtpZihuKXtmb3IoY29uc3QgZSBpbiBhKXtjb25zdCB0PWFbZV07dm9pZCAwIT09blt0XSYmKGFbK2VdPW5bdF0pfW4ubGVuZ3RoIT09dGhpcy50b1VuaWNvZGUubGVuZ3RoJiZlLmhhc0luY2x1ZGVkVG9Vbmljb2RlTWFwJiZ0aGlzLnRvVW5pY29kZSBpbnN0YW5jZW9mIElkZW50aXR5VG9Vbmljb2RlTWFwJiZ0aGlzLnRvVW5pY29kZS5mb3JFYWNoKGZ1bmN0aW9uKGUsdCl7Y29uc3Qgcj1hW2VdO3ZvaWQgMD09PW5bcl0mJihhWytlXT10KX0pfXRoaXMudG9Vbmljb2RlIGluc3RhbmNlb2YgSWRlbnRpdHlUb1VuaWNvZGVNYXB8fHRoaXMudG9Vbmljb2RlLmZvckVhY2goZnVuY3Rpb24oZSx0KXthWytlXT10fSk7dGhpcy50b0ZvbnRDaGFyPWE7dGhpcy50b1VuaWNvZGU9bmV3IFRvVW5pY29kZU1hcChhKX1lbHNlIGlmKC9TeW1ib2wvaS50ZXN0KGEpKXRoaXMudG9Gb250Q2hhcj1idWlsZFRvRm9udENoYXIod2Esa2EoKSx0aGlzLmRpZmZlcmVuY2VzKTtlbHNlIGlmKC9EaW5nYmF0cy9pLnRlc3QoYSkpdGhpcy50b0ZvbnRDaGFyPWJ1aWxkVG9Gb250Q2hhcihqYSx5YSgpLHRoaXMuZGlmZmVyZW5jZXMpO2Vsc2UgaWYoaXx8byl7Y29uc3QgZT1idWlsZFRvRm9udENoYXIodGhpcy5kZWZhdWx0RW5jb2Rpbmcsa2EoKSx0aGlzLmRpZmZlcmVuY2VzKTsiQ0lERm9udFR5cGUyIiE9PW58fHRoaXMuY2lkRW5jb2Rpbmcuc3RhcnRzV2l0aCgiSWRlbnRpdHktIil8fHRoaXMudG9Vbmljb2RlIGluc3RhbmNlb2YgSWRlbnRpdHlUb1VuaWNvZGVNYXB8fHRoaXMudG9Vbmljb2RlLmZvckVhY2goZnVuY3Rpb24odCxuKXtlWyt0XT1ufSk7dGhpcy50b0ZvbnRDaGFyPWV9ZWxzZXtjb25zdCBlPWthKCksbj1bXTt0aGlzLnRvVW5pY29kZS5mb3JFYWNoKCh0LGEpPT57aWYoIXRoaXMuY29tcG9zaXRlKXtjb25zdCBuPWdldFVuaWNvZGVGb3JHbHlwaCh0aGlzLmRpZmZlcmVuY2VzW3RdfHx0aGlzLmRlZmF1bHRFbmNvZGluZ1t0XSxlKTstMSE9PW4mJihhPW4pfW5bK3RdPWF9KTt0aGlzLmNvbXBvc2l0ZSYmdGhpcy50b1VuaWNvZGUgaW5zdGFuY2VvZiBJZGVudGl0eVRvVW5pY29kZU1hcCYmL1RhaG9tYXxWZXJkYW5hL2kudGVzdCh0KSYmYXBwbHlTdGFuZGFyZEZvbnRHbHlwaE1hcChuLEdhKCkpO3RoaXMudG9Gb250Q2hhcj1ufWFtZW5kRmFsbGJhY2tUb1VuaWNvZGUoZSk7dGhpcy5sb2FkZWROYW1lPWEuc3BsaXQoIi0iLDEpWzBdfWNoZWNrQW5kUmVwYWlyKGUsdCxuKXtjb25zdCBhPVsiT1MvMiIsImNtYXAiLCJoZWFkIiwiaGhlYSIsImhtdHgiLCJtYXhwIiwibmFtZSIsInBvc3QiLCJsb2NhIiwiZ2x5ZiIsImZwZ20iLCJwcmVwIiwiY3Z0ICIsIkNGRiAiXTtmdW5jdGlvbiByZWFkVGFibGVzKGUsdCl7Y29uc3Qgbj1PYmplY3QuY3JlYXRlKG51bGwpO25bIk9TLzIiXT1udWxsO24uY21hcD1udWxsO24uaGVhZD1udWxsO24uaGhlYT1udWxsO24uaG10eD1udWxsO24ubWF4cD1udWxsO24ubmFtZT1udWxsO24ucG9zdD1udWxsO2ZvcihsZXQgcj0wO3I8dDtyKyspe2NvbnN0IHQ9cmVhZFRhYmxlRW50cnkoZSk7YS5pbmNsdWRlcyh0LnRhZykmJigwIT09dC5sZW5ndGgmJihuW3QudGFnXT10KSl9cmV0dXJuIG59ZnVuY3Rpb24gcmVhZFRhYmxlRW50cnkoZSl7Y29uc3QgdD1lLmdldFN0cmluZyg0KSxuPWUuZ2V0SW50MzIoKT4+PjAsYT1lLmdldEludDMyKCk+Pj4wLHI9ZS5nZXRJbnQzMigpPj4+MCxzPWUucG9zO2UucG9zPWUuc3RhcnR8fDA7ZS5za2lwKGEpO2NvbnN0IGk9ZS5nZXRCeXRlcyhyKTtlLnBvcz1zO2lmKCJoZWFkIj09PXQpe2lbOF09aVs5XT1pWzEwXT1pWzExXT0wO2lbMTddfD0zMn1yZXR1cm57dGFnOnQsY2hlY2tzdW06bixsZW5ndGg6cixvZmZzZXQ6YSxkYXRhOml9fWZ1bmN0aW9uIHJlYWRPcGVuVHlwZUhlYWRlcihlKXtyZXR1cm57dmVyc2lvbjplLmdldFN0cmluZyg0KSxudW1UYWJsZXM6ZS5nZXRVaW50MTYoKSxzZWFyY2hSYW5nZTplLmdldFVpbnQxNigpLGVudHJ5U2VsZWN0b3I6ZS5nZXRVaW50MTYoKSxyYW5nZVNoaWZ0OmUuZ2V0VWludDE2KCl9fWZ1bmN0aW9uIHNhbml0aXplR2x5cGgoZSx0LG4sYSxyLHMpe2NvbnN0IGk9e2xlbmd0aDowLHNpemVPZkluc3RydWN0aW9uczowfTtpZih0PDB8fHQ+PWUubGVuZ3RofHxuPmUubGVuZ3RofHxuLXQ8PTEyKXJldHVybiBpO2NvbnN0IG89ZS5zdWJhcnJheSh0LG4pLGw9c2lnbmVkSW50MTYob1syXSxvWzNdKSxmPXNpZ25lZEludDE2KG9bNF0sb1s1XSksYz1zaWduZWRJbnQxNihvWzZdLG9bN10pLGg9c2lnbmVkSW50MTYob1s4XSxvWzldKTtpZihsPmMpe3dyaXRlU2lnbmVkSW50MTYobywyLGMpO3dyaXRlU2lnbmVkSW50MTYobyw2LGwpfWlmKGY+aCl7d3JpdGVTaWduZWRJbnQxNihvLDQsaCk7d3JpdGVTaWduZWRJbnQxNihvLDgsZil9Y29uc3QgdT1zaWduZWRJbnQxNihvWzBdLG9bMV0pO2lmKHU8MCl7aWYodTwtMSlyZXR1cm4gaTthLnNldChvLHIpO2kubGVuZ3RoPW8ubGVuZ3RoO3JldHVybiBpfWxldCBtLHA9MTAsZD0wO2ZvcihtPTA7bTx1O20rKyl7ZD0ob1twXTw8OHxvW3ArMV0pKzE7cCs9Mn1jb25zdCBnPXAsYj1vW3BdPDw4fG9bcCsxXTtpLnNpemVPZkluc3RydWN0aW9ucz1iO3ArPTIrYjtjb25zdCB3PXA7bGV0IGo9MDtmb3IobT0wO208ZDttKyspe2NvbnN0IGU9b1twKytdOzE5MiZlJiYob1twLTFdPTYzJmUpO2xldCB0PTI7MiZlP3Q9MToxNiZlJiYodD0wKTtsZXQgbj0yOzQmZT9uPTE6MzImZSYmKG49MCk7Y29uc3QgYT10K247ais9YTtpZig4JmUpe2NvbnN0IGU9b1twKytdOzA9PT1lJiYob1twLTFdXj04KTttKz1lO2orPWUqYX19aWYoMD09PWopcmV0dXJuIGk7bGV0IGs9cCtqO2lmKGs+by5sZW5ndGgpcmV0dXJuIGk7aWYoIXMmJmI+MCl7YS5zZXQoby5zdWJhcnJheSgwLGcpLHIpO2Euc2V0KFswLDBdLHIrZyk7YS5zZXQoby5zdWJhcnJheSh3LGspLHIrZysyKTtrLT1iO28ubGVuZ3RoLWs+MyYmKGs9ayszJi00KTtpLmxlbmd0aD1rO3JldHVybiBpfWlmKG8ubGVuZ3RoLWs+Myl7az1rKzMmLTQ7YS5zZXQoby5zdWJhcnJheSgwLGspLHIpO2kubGVuZ3RoPWs7cmV0dXJuIGl9YS5zZXQobyxyKTtpLmxlbmd0aD1vLmxlbmd0aDtyZXR1cm4gaX1mdW5jdGlvbiByZWFkTmFtZVRhYmxlKGUpe2NvbnN0IG49KHQuc3RhcnR8fDApK2Uub2Zmc2V0O3QucG9zPW47Y29uc3QgYT1bW10sW11dLHI9W10scz1lLmxlbmd0aCxpPW4rcztpZigwIT09dC5nZXRVaW50MTYoKXx8czw2KXJldHVyblthLHJdO2NvbnN0IG89dC5nZXRVaW50MTYoKSxsPXQuZ2V0VWludDE2KCk7bGV0IGYsYztmb3IoZj0wO2Y8byYmdC5wb3MrMTI8PWk7ZisrKXtjb25zdCBlPXtwbGF0Zm9ybTp0LmdldFVpbnQxNigpLGVuY29kaW5nOnQuZ2V0VWludDE2KCksbGFuZ3VhZ2U6dC5nZXRVaW50MTYoKSxuYW1lOnQuZ2V0VWludDE2KCksbGVuZ3RoOnQuZ2V0VWludDE2KCksb2Zmc2V0OnQuZ2V0VWludDE2KCl9Oyhpc01hY05hbWVSZWNvcmQoZSl8fGlzV2luTmFtZVJlY29yZChlKSkmJnIucHVzaChlKX1mb3IoZj0wLGM9ci5sZW5ndGg7ZjxjO2YrKyl7Y29uc3QgZT1yW2ZdO2lmKGUubGVuZ3RoPD0wKWNvbnRpbnVlO2NvbnN0IHM9bitsK2Uub2Zmc2V0O2lmKHMrZS5sZW5ndGg+aSljb250aW51ZTt0LnBvcz1zO2NvbnN0IG89ZS5uYW1lO2lmKGUuZW5jb2Rpbmcpe2xldCBuPSIiO2ZvcihsZXQgYT0wLHI9ZS5sZW5ndGg7YTxyO2ErPTIpbis9U3RyaW5nLmZyb21DaGFyQ29kZSh0LmdldFVpbnQxNigpKTthWzFdW29dPW59ZWxzZSBhWzBdW29dPXQuZ2V0U3RyaW5nKGUubGVuZ3RoKX1yZXR1cm5bYSxyXX1jb25zdCByPVswLDAsMCwwLDAsMCwwLDAsLTIsLTIsLTIsLTIsMCwwLC0yLC01LC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLDAsMCwtMSwwLC0xLC0xLC0xLC0xLDEsLTEsLTk5OSwwLDEsMCwtMSwtMiwwLC0xLC0yLC0xLC0xLDAsLTEsLTEsMCwwLC05OTksLTk5OSwtMSwtMSwtMSwtMSwtMiwtOTk5LC0yLC0yLC05OTksMCwtMiwtMiwwLDAsLTIsMCwtMiwwLDAsMCwtMiwtMSwtMSwxLDEsMCwwLC0xLC0xLC0xLC0xLC0xLC0xLC0xLDAsMCwtMSwwLC0xLC0xLDAsLTk5OSwtMSwtMSwtMSwtMSwtMSwtMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwtMiwtOTk5LC05OTksLTk5OSwtOTk5LC05OTksLTEsLTEsLTIsLTIsMCwwLDAsMCwtMSwtMSwtOTk5LC0yLC0yLDAsMCwtMSwtMiwtMiwwLDAsMCwtMSwtMSwtMSwtMl07ZnVuY3Rpb24gc2FuaXRpemVUVFByb2dyYW0oZSx0KXtsZXQgbixhLHMsaSxvLGw9ZS5kYXRhLGY9MCxjPTAsaD0wO2NvbnN0IHU9W10sbT1bXSxwPVtdO2xldCBkPXQudG9vQ29tcGxleFRvRm9sbG93RnVuY3Rpb25zLGc9ITEsYj0wLHc9MDtmb3IobGV0IGU9bC5sZW5ndGg7ZjxlOyl7Y29uc3QgZT1sW2YrK107aWYoNjQ9PT1lKXthPWxbZisrXTtpZihnfHx3KWYrPWE7ZWxzZSBmb3Iobj0wO248YTtuKyspdS5wdXNoKGxbZisrXSl9ZWxzZSBpZig2NT09PWUpe2E9bFtmKytdO2lmKGd8fHcpZis9MiphO2Vsc2UgZm9yKG49MDtuPGE7bisrKXtzPWxbZisrXTt1LnB1c2goczw8OHxsW2YrK10pfX1lbHNlIGlmKDE3Nj09KDI0OCZlKSl7YT1lLTE3NisxO2lmKGd8fHcpZis9YTtlbHNlIGZvcihuPTA7bjxhO24rKyl1LnB1c2gobFtmKytdKX1lbHNlIGlmKDE4ND09KDI0OCZlKSl7YT1lLTE4NCsxO2lmKGd8fHcpZis9MiphO2Vsc2UgZm9yKG49MDtuPGE7bisrKXtzPWxbZisrXTt1LnB1c2goc2lnbmVkSW50MTYocyxsW2YrK10pKX19ZWxzZSBpZig0MyE9PWV8fGQpaWYoNDQhPT1lfHxkKXtpZig0NT09PWUpaWYoZyl7Zz0hMTtjPWZ9ZWxzZXtvPW0ucG9wKCk7aWYoIW8pe3dhcm4oIlRUOiBFTkRGIGJhZCBzdGFjayIpO3QuaGludHNWYWxpZD0hMTtyZXR1cm59aT1wLnBvcCgpO2w9by5kYXRhO2Y9by5pO3QuZnVuY3Rpb25zU3RhY2tEZWx0YXNbaV09dS5sZW5ndGgtby5zdGFja1RvcH1lbHNlIGlmKDEzNz09PWUpe2lmKGd8fHcpe3dhcm4oIlRUOiBuZXN0ZWQgSURFRnMgbm90IGFsbG93ZWQiKTtkPSEwfWc9ITA7aD1mfWVsc2UgaWYoODg9PT1lKSsrYjtlbHNlIGlmKDI3PT09ZSl3PWI7ZWxzZSBpZig4OT09PWUpe3c9PT1iJiYodz0wKTstLWJ9ZWxzZSBpZigyOD09PWUmJiFnJiYhdyl7Y29uc3QgZT11LmF0KC0xKTtlPjAmJihmKz1lLTEpfX1lbHNle2lmKGd8fHcpe3dhcm4oIlRUOiBuZXN0ZWQgRkRFRnMgbm90IGFsbG93ZWQiKTtkPSEwfWc9ITA7aD1mO2k9dS5wb3AoKTt0LmZ1bmN0aW9uc0RlZmluZWRbaV09e2RhdGE6bCxpOmZ9fWVsc2UgaWYoIWcmJiF3KXtpPXUuYXQoLTEpO2lmKGlzTmFOKGkpKWluZm8oIlRUOiBDQUxMIGVtcHR5IHN0YWNrIChvciBpbnZhbGlkIGVudHJ5KS4iKTtlbHNle3QuZnVuY3Rpb25zVXNlZFtpXT0hMDtpZihpIGluIHQuZnVuY3Rpb25zU3RhY2tEZWx0YXMpe2NvbnN0IGU9dS5sZW5ndGgrdC5mdW5jdGlvbnNTdGFja0RlbHRhc1tpXTtpZihlPDApe3dhcm4oIlRUOiBDQUxMIGludmFsaWQgZnVuY3Rpb25zIHN0YWNrIGRlbHRhLiIpO3QuaGludHNWYWxpZD0hMTtyZXR1cm59dS5sZW5ndGg9ZX1lbHNlIGlmKGkgaW4gdC5mdW5jdGlvbnNEZWZpbmVkJiYhcC5pbmNsdWRlcyhpKSl7bS5wdXNoKHtkYXRhOmwsaTpmLHN0YWNrVG9wOnUubGVuZ3RoLTF9KTtwLnB1c2goaSk7bz10LmZ1bmN0aW9uc0RlZmluZWRbaV07aWYoIW8pe3dhcm4oIlRUOiBDQUxMIG5vbi1leGlzdGVudCBmdW5jdGlvbiIpO3QuaGludHNWYWxpZD0hMTtyZXR1cm59bD1vLmRhdGE7Zj1vLml9fX1pZighZyYmIXcpe2xldCB0PTA7ZTw9MTQyP3Q9cltlXTplPj0xOTImJmU8PTIyMz90PS0xOmU+PTIyNCYmKHQ9LTIpO2lmKGU+PTExMyYmZTw9MTE3KXthPXUucG9wKCk7aXNOYU4oYSl8fCh0PTIqLWEpfWZvcig7dDwwJiZ1Lmxlbmd0aD4wOyl7dS5wb3AoKTt0Kyt9Zm9yKDt0PjA7KXt1LnB1c2goTmFOKTt0LS19fX10LnRvb0NvbXBsZXhUb0ZvbGxvd0Z1bmN0aW9ucz1kO2NvbnN0IGo9W2xdO2Y+bC5sZW5ndGgmJmoucHVzaChuZXcgVWludDhBcnJheShmLWwubGVuZ3RoKSk7aWYoaD5jKXt3YXJuKCJUVDogY29tcGxlbWVudGluZyBhIG1pc3NpbmcgZnVuY3Rpb24gdGFpbCIpO2oucHVzaChuZXcgVWludDhBcnJheShbMzQsNDVdKSl9IWZ1bmN0aW9uIGZvbGRUVFRhYmxlKGUsdCl7aWYodC5sZW5ndGg+MSl7bGV0IG4sYSxyPTA7Zm9yKG49MCxhPXQubGVuZ3RoO248YTtuKyspcis9dFtuXS5sZW5ndGg7cj1yKzMmLTQ7Y29uc3Qgcz1uZXcgVWludDhBcnJheShyKTtsZXQgaT0wO2ZvcihuPTAsYT10Lmxlbmd0aDtuPGE7bisrKXtzLnNldCh0W25dLGkpO2krPXRbbl0ubGVuZ3RofWUuZGF0YT1zO2UubGVuZ3RoPXJ9fShlLGopfWxldCBzLGk7aWYoaXNUcnVlVHlwZUNvbGxlY3Rpb25GaWxlKHQ9bmV3IFN0cmVhbShuZXcgVWludDhBcnJheSh0LmdldEJ5dGVzKCkpKSkpe2NvbnN0IGU9ZnVuY3Rpb24gcmVhZFRydWVUeXBlQ29sbGVjdGlvbkRhdGEoZSx0KXtjb25zdHtudW1Gb250czpuLG9mZnNldFRhYmxlOmF9PWZ1bmN0aW9uIHJlYWRUcnVlVHlwZUNvbGxlY3Rpb25IZWFkZXIoZSl7Y29uc3QgdD1lLmdldFN0cmluZyg0KTthc3NlcnQoInR0Y2YiPT09dCwiTXVzdCBiZSBhIFRydWVUeXBlIENvbGxlY3Rpb24gZm9udC4iKTtjb25zdCBuPWUuZ2V0VWludDE2KCksYT1lLmdldFVpbnQxNigpLHI9ZS5nZXRJbnQzMigpPj4+MCxzPVtdO2ZvcihsZXQgdD0wO3Q8cjt0Kyspcy5wdXNoKGUuZ2V0SW50MzIoKT4+PjApO2NvbnN0IGk9e3R0Y1RhZzp0LG1ham9yVmVyc2lvbjpuLG1pbm9yVmVyc2lvbjphLG51bUZvbnRzOnIsb2Zmc2V0VGFibGU6c307c3dpdGNoKG4pe2Nhc2UgMTpyZXR1cm4gaTtjYXNlIDI6aS5kc2lnVGFnPWUuZ2V0SW50MzIoKT4+PjA7aS5kc2lnTGVuZ3RoPWUuZ2V0SW50MzIoKT4+PjA7aS5kc2lnT2Zmc2V0PWUuZ2V0SW50MzIoKT4+PjA7cmV0dXJuIGl9dGhyb3cgbmV3IEZvcm1hdEVycm9yKGBJbnZhbGlkIFRydWVUeXBlIENvbGxlY3Rpb24gbWFqb3JWZXJzaW9uOiAke259LmApfShlKSxyPXQuc3BsaXQoIisiKTtsZXQgcztmb3IobGV0IGk9MDtpPG47aSsrKXtlLnBvcz0oZS5zdGFydHx8MCkrYVtpXTtjb25zdCBuPXJlYWRPcGVuVHlwZUhlYWRlcihlKSxvPXJlYWRUYWJsZXMoZSxuLm51bVRhYmxlcyk7aWYoIW8ubmFtZSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoJ1RydWVUeXBlIENvbGxlY3Rpb24gZm9udCBtdXN0IGNvbnRhaW4gYSAibmFtZSIgdGFibGUuJyk7Y29uc3RbbF09cmVhZE5hbWVUYWJsZShvLm5hbWUpO2ZvcihsZXQgZT0wLGE9bC5sZW5ndGg7ZTxhO2UrKylmb3IobGV0IGE9MCxpPWxbZV0ubGVuZ3RoO2E8aTthKyspe2NvbnN0IGk9bFtlXVthXT8ucmVwbGFjZUFsbCgvXHMvZywiIik7aWYoaSl7aWYoaT09PXQpcmV0dXJue2hlYWRlcjpuLHRhYmxlczpvfTtpZighKHIubGVuZ3RoPDIpKWZvcihjb25zdCBlIG9mIHIpaT09PWUmJihzPXtuYW1lOmUsaGVhZGVyOm4sdGFibGVzOm99KX19fWlmKHMpe3dhcm4oYFRydWVUeXBlIENvbGxlY3Rpb24gZG9lcyBub3QgY29udGFpbiAiJHt0fSIgZm9udCwgZmFsbGluZyBiYWNrIHRvICIke3MubmFtZX0iIGZvbnQgaW5zdGVhZC5gKTtyZXR1cm57aGVhZGVyOnMuaGVhZGVyLHRhYmxlczpzLnRhYmxlc319dGhyb3cgbmV3IEZvcm1hdEVycm9yKGBUcnVlVHlwZSBDb2xsZWN0aW9uIGRvZXMgbm90IGNvbnRhaW4gIiR7dH0iIGZvbnQuYCl9KHQsdGhpcy5uYW1lKTtzPWUuaGVhZGVyO2k9ZS50YWJsZXN9ZWxzZXtzPXJlYWRPcGVuVHlwZUhlYWRlcih0KTtpPXJlYWRUYWJsZXModCxzLm51bVRhYmxlcyl9Y29uc3Qgbz0haVsiQ0ZGICJdO2lmKG8pe2lmKCFpLmxvY2EpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCdSZXF1aXJlZCAibG9jYSIgdGFibGUgaXMgbm90IGZvdW5kJyk7aWYoIWkuZ2x5Zil7d2FybignUmVxdWlyZWQgImdseWYiIHRhYmxlIGlzIG5vdCBmb3VuZCAtLSB0cnlpbmcgdG8gcmVjb3Zlci4nKTtpLmdseWY9e3RhZzoiZ2x5ZiIsZGF0YTpuZXcgVWludDhBcnJheSgwKX19dGhpcy5pc09wZW5UeXBlPSExfWVsc2V7aWYoIk9UVE8iPT09cy52ZXJzaW9uJiYhbi5jb21wb3NpdGV8fCFpLmhlYWR8fCFpLmhoZWF8fCFpLm1heHB8fCFpLnBvc3QpcmV0dXJuIHRoaXMuY29udmVydChlLG5ldyBDRkZGb250KG5ldyBTdHJlYW0oaVsiQ0ZGICJdLmRhdGEpLG4pLG4pO2RlbGV0ZSBpLmdseWY7ZGVsZXRlIGkubG9jYTtkZWxldGUgaS5mcGdtO2RlbGV0ZSBpLnByZXA7ZGVsZXRlIGlbImN2dCAiXTt0aGlzLmlzT3BlblR5cGU9ITB9aWYoIWkubWF4cCl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoJ1JlcXVpcmVkICJtYXhwIiB0YWJsZSBpcyBub3QgZm91bmQnKTtsZXQgbDtpZighbyl0cnl7Y29uc3QgZT1uZXcgQ0ZGUGFyc2VyKG5ldyBTdHJlYW0oaVsiQ0ZGICJdLmRhdGEpLG4sQWEpLnBhcnNlKCk7ZS5kdXBsaWNhdGVGaXJzdEdseXBoKCk7Y29uc3QgdD1uZXcgQ0ZGQ29tcGlsZXIoZSk7aVsiQ0ZGICJdLmRhdGE9dC5jb21waWxlKCk7bD1lLmNoYXJTdHJpbmdDb3VudH1jYXRjaHt3YXJuKCJGYWlsZWQgdG8gY29tcGlsZSBmb250ICIrbi5sb2FkZWROYW1lKX10LnBvcz0odC5zdGFydHx8MCkraS5tYXhwLm9mZnNldDtsZXQgZj10LmdldEludDMyKCk7Y29uc3QgYz1sPz90LmdldFVpbnQxNigpO2lmKDIwNDgwPT09ZiYmNiE9PWkubWF4cC5sZW5ndGgpe2kubWF4cC5kYXRhPWkubWF4cC5kYXRhLnN1YmFycmF5KDAsNik7aS5tYXhwLmxlbmd0aD02fWlmKDY1NTM2IT09ZiYmMjA0ODAhPT1mKXtpZig2PT09aS5tYXhwLmxlbmd0aClmPTIwNDgwO2Vsc2V7aWYoIShpLm1heHAubGVuZ3RoPj0zMikpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCcibWF4cCIgdGFibGUgaGFzIGEgd3JvbmcgdmVyc2lvbiBudW1iZXInKTtmPTY1NTM2fSFmdW5jdGlvbiB3cml0ZVVpbnQzMihlLHQsbil7ZVt0KzNdPTI1NSZuO2VbdCsyXT1uPj4+ODtlW3QrMV09bj4+PjE2O2VbdF09bj4+PjI0fShpLm1heHAuZGF0YSwwLGYpfWxldCBoPWludDE2KGkuaGVhZC5kYXRhWzUwXSxpLmhlYWQuZGF0YVs1MV0pO2lmKGkubG9jYSl7Y29uc3QgZT1oPzQqKGMrMSk6MiooYysxKTtpZihpLmxvY2EubGVuZ3RoIT09ZSl7d2FybigiSW5jb3JyZWN0ICdsb2NhJyB0YWJsZSBsZW5ndGggLS0gYXR0ZW1wdGluZyB0byBmaXggaXQuIik7Y29uc3Qgbj1PYmplY3QudmFsdWVzKGkpLmZpbHRlcihCb29sZWFuKS5zb3J0KChlLHQpPT5lLm9mZnNldC10Lm9mZnNldCksYT1uLmluZGV4T2YoaS5sb2NhKSxyPW5bYSsxXXx8bnVsbDtpZihyJiZpLmxvY2Eub2Zmc2V0K2U8ci5vZmZzZXQpe2NvbnN0IG49dC5wb3M7dC5wb3M9dC5zdGFydHx8MDt0LnNraXAoaS5sb2NhLm9mZnNldCk7aS5sb2NhLmRhdGE9dC5nZXRCeXRlcyhlKTtpLmxvY2EubGVuZ3RoPWU7dC5wb3M9bn19fWlmKG4uc2NhbGVGYWN0b3JzPy5sZW5ndGg9PT1jJiZvKXtjb25zdHtzY2FsZUZhY3RvcnM6ZX09bix0PW5ldyBHbHlmVGFibGUoe2dseWZUYWJsZTppLmdseWYuZGF0YSxpc0dseXBoTG9jYXRpb25zTG9uZzpoLGxvY2FUYWJsZTppLmxvY2EuZGF0YSxudW1HbHlwaHM6Y30pO3Quc2NhbGUoZSk7Y29uc3R7Z2x5ZjphLGxvY2E6cixpc0xvY2F0aW9uTG9uZzpzfT10LndyaXRlKCk7aS5nbHlmLmRhdGE9YTtpLmxvY2EuZGF0YT1yO2lmKHMhPT0hIWgpe2kuaGVhZC5kYXRhWzUwXT0wO2g9aS5oZWFkLmRhdGFbNTFdPXM/MTowfWNvbnN0IG89aS5obXR4LmRhdGE7Zm9yKGxldCB0PTA7dDxjO3QrKyl7Y29uc3Qgbj00KnQsYT1NYXRoLnJvdW5kKGVbdF0qaW50MTYob1tuXSxvW24rMV0pKTtvW25dPWE+PjgmMjU1O29bbisxXT0yNTUmYTt3cml0ZVNpZ25lZEludDE2KG8sbisyLE1hdGgucm91bmQoZVt0XSpzaWduZWRJbnQxNihvW24rMl0sb1tuKzNdKSkpfX1sZXQgdT1jKzEsbT0hMDtpZih1PjY1NTM1KXttPSExO3U9Yzt3YXJuKCJOb3QgZW5vdWdoIHNwYWNlIGluIGdseWZzIHRvIGR1cGxpY2F0ZSBmaXJzdCBnbHlwaC4iKX1sZXQgcD0wLGQ9MDtpZihmPj02NTUzNiYmaS5tYXhwLmxlbmd0aD49MzIpe3QucG9zKz04O2lmKHQuZ2V0VWludDE2KCk+Mil7aS5tYXhwLmRhdGFbMTRdPTA7aS5tYXhwLmRhdGFbMTVdPTJ9dC5wb3MrPTQ7cD10LmdldFVpbnQxNigpO3QucG9zKz00O2Q9dC5nZXRVaW50MTYoKX1pLm1heHAuZGF0YVs0XT11Pj44O2kubWF4cC5kYXRhWzVdPTI1NSZ1O2NvbnN0IGc9ZnVuY3Rpb24gc2FuaXRpemVUVFByb2dyYW1zKGUsdCxuLGEpe2NvbnN0IHI9e2Z1bmN0aW9uc0RlZmluZWQ6W10sZnVuY3Rpb25zVXNlZDpbXSxmdW5jdGlvbnNTdGFja0RlbHRhczpbXSx0b29Db21wbGV4VG9Gb2xsb3dGdW5jdGlvbnM6ITEsaGludHNWYWxpZDohMH07ZSYmc2FuaXRpemVUVFByb2dyYW0oZSxyKTt0JiZzYW5pdGl6ZVRUUHJvZ3JhbSh0LHIpO2UmJmZ1bmN0aW9uIGNoZWNrSW52YWxpZEZ1bmN0aW9ucyhlLHQpe2lmKCFlLnRvb0NvbXBsZXhUb0ZvbGxvd0Z1bmN0aW9ucylpZihlLmZ1bmN0aW9uc0RlZmluZWQubGVuZ3RoPnQpe3dhcm4oIlRUOiBtb3JlIGZ1bmN0aW9ucyBkZWZpbmVkIHRoYW4gZXhwZWN0ZWQiKTtlLmhpbnRzVmFsaWQ9ITF9ZWxzZSBmb3IobGV0IG49MCxhPWUuZnVuY3Rpb25zVXNlZC5sZW5ndGg7bjxhO24rKyl7aWYobj50KXt3YXJuKCJUVDogaW52YWxpZCBmdW5jdGlvbiBpZDogIituKTtlLmhpbnRzVmFsaWQ9ITE7cmV0dXJufWlmKGUuZnVuY3Rpb25zVXNlZFtuXSYmIWUuZnVuY3Rpb25zRGVmaW5lZFtuXSl7d2FybigiVFQ6IHVuZGVmaW5lZCBmdW5jdGlvbjogIituKTtlLmhpbnRzVmFsaWQ9ITE7cmV0dXJufX19KHIsYSk7aWYobiYmMSZuLmxlbmd0aCl7Y29uc3QgZT1uZXcgVWludDhBcnJheShuLmxlbmd0aCsxKTtlLnNldChuLmRhdGEpO24uZGF0YT1lfXJldHVybiByLmhpbnRzVmFsaWR9KGkuZnBnbSxpLnByZXAsaVsiY3Z0ICJdLHApO2lmKCFnKXtkZWxldGUgaS5mcGdtO2RlbGV0ZSBpLnByZXA7ZGVsZXRlIGlbImN2dCAiXX0hZnVuY3Rpb24gc2FuaXRpemVNZXRyaWNzKGUsdCxuLGEscixzKXtpZighdCl7biYmKG4uZGF0YT1udWxsKTtyZXR1cm59ZS5wb3M9KGUuc3RhcnR8fDApK3Qub2Zmc2V0O2UucG9zKz00O2UucG9zKz0yO2UucG9zKz0yO2UucG9zKz0yO2UucG9zKz0yO2UucG9zKz0yO2UucG9zKz0yO2UucG9zKz0yO2UucG9zKz0yO2UucG9zKz0yO2NvbnN0IGk9ZS5nZXRVaW50MTYoKTtlLnBvcys9ODtlLnBvcys9MjtsZXQgbz1lLmdldFVpbnQxNigpO2lmKDAhPT1pKXtpZighKDImaW50MTYoYS5kYXRhWzQ0XSxhLmRhdGFbNDVdKSkpe3QuZGF0YVsyMl09MDt0LmRhdGFbMjNdPTB9fWlmKG8+cil7aW5mbyhgVGhlIG51bU9mTWV0cmljcyAoJHtvfSkgc2hvdWxkIG5vdCBiZSBncmVhdGVyIHRoYW4gdGhlIG51bUdseXBocyAoJHtyfSkuYCk7bz1yO3QuZGF0YVszNF09KDY1MjgwJm8pPj44O3QuZGF0YVszNV09MjU1Jm99Y29uc3QgbD1yLW8tKG4ubGVuZ3RoLTQqbz4+MSk7aWYobD4wKXtjb25zdCBlPW5ldyBVaW50OEFycmF5KG4ubGVuZ3RoKzIqbCk7ZS5zZXQobi5kYXRhKTtpZihzKXtlW24ubGVuZ3RoXT1uLmRhdGFbMl07ZVtuLmxlbmd0aCsxXT1uLmRhdGFbM119bi5kYXRhPWV9fSh0LGkuaGhlYSxpLmhtdHgsaS5oZWFkLHUsbSk7aWYoIWkuaGVhZCl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoJ1JlcXVpcmVkICJoZWFkIiB0YWJsZSBpcyBub3QgZm91bmQnKTshZnVuY3Rpb24gc2FuaXRpemVIZWFkKGUsdCxuKXtjb25zdCBhPWUuZGF0YSxyPWZ1bmN0aW9uIGludDMyKGUsdCxuLGEpe3JldHVybihlPDwyNCkrKHQ8PDE2KSsobjw8OCkrYX0oYVswXSxhWzFdLGFbMl0sYVszXSk7aWYocj4+MTYhPTEpe2luZm8oIkF0dGVtcHRpbmcgdG8gZml4IGludmFsaWQgdmVyc2lvbiBpbiBoZWFkIHRhYmxlOiAiK3IpO2FbMF09MDthWzFdPTE7YVsyXT0wO2FbM109MH1jb25zdCBzPWludDE2KGFbNTBdLGFbNTFdKTtpZihzPDB8fHM+MSl7aW5mbygiQXR0ZW1wdGluZyB0byBmaXggaW52YWxpZCBpbmRleFRvTG9jRm9ybWF0IGluIGhlYWQgdGFibGU6ICIrcyk7Y29uc3QgZT10KzE7aWYobj09PWU8PDEpe2FbNTBdPTA7YVs1MV09MH1lbHNle2lmKG4hPT1lPDwyKXRocm93IG5ldyBGb3JtYXRFcnJvcigiQ291bGQgbm90IGZpeCBpbmRleFRvTG9jRm9ybWF0OiAiK3MpO2FbNTBdPTA7YVs1MV09MX19fShpLmhlYWQsYyxvP2kubG9jYS5sZW5ndGg6MCk7bGV0IGI9T2JqZWN0LmNyZWF0ZShudWxsKTtpZihvKXtjb25zdCBlPWZ1bmN0aW9uIHNhbml0aXplR2x5cGhMb2NhdGlvbnMoZSx0LG4sYSxyLHMsaSl7bGV0IG8sbCxmO2lmKGEpe289NDtsPWZ1bmN0aW9uIGZvbnRJdGVtRGVjb2RlTG9uZyhlLHQpe3JldHVybiBlW3RdPDwyNHxlW3QrMV08PDE2fGVbdCsyXTw8OHxlW3QrM119O2Y9ZnVuY3Rpb24gZm9udEl0ZW1FbmNvZGVMb25nKGUsdCxuKXtlW3RdPW4+Pj4yNCYyNTU7ZVt0KzFdPW4+PjE2JjI1NTtlW3QrMl09bj4+OCYyNTU7ZVt0KzNdPTI1NSZufX1lbHNle289MjtsPWZ1bmN0aW9uIGZvbnRJdGVtRGVjb2RlKGUsdCl7cmV0dXJuIGVbdF08PDl8ZVt0KzFdPDwxfTtmPWZ1bmN0aW9uIGZvbnRJdGVtRW5jb2RlKGUsdCxuKXtlW3RdPW4+PjkmMjU1O2VbdCsxXT1uPj4xJjI1NX19Y29uc3QgYz1zP24rMTpuLGg9byooMStjKSx1PW5ldyBVaW50OEFycmF5KGgpO3Uuc2V0KGUuZGF0YS5zdWJhcnJheSgwLGgpKTtlLmRhdGE9dTtjb25zdCBtPXQuZGF0YSxwPW0ubGVuZ3RoLGQ9bmV3IFVpbnQ4QXJyYXkocCk7bGV0IGcsYjtjb25zdCB3PVtdO2ZvcihnPTAsYj0wO2c8bisxO2crKyxiKz1vKXtsZXQgZT1sKHUsYik7ZT5wJiYoZT1wKTt3LnB1c2goe2luZGV4Omcsb2Zmc2V0OmUsZW5kT2Zmc2V0OjB9KX13LnNvcnQoKGUsdCk9PmUub2Zmc2V0LXQub2Zmc2V0KTtmb3IoZz0wO2c8bjtnKyspd1tnXS5lbmRPZmZzZXQ9d1tnKzFdLm9mZnNldDt3LnNvcnQoKGUsdCk9PmUuaW5kZXgtdC5pbmRleCk7Zm9yKGc9MDtnPG47ZysrKXtjb25zdHtvZmZzZXQ6ZSxlbmRPZmZzZXQ6dH09d1tnXTtpZigwIT09ZXx8MCE9PXQpYnJlYWs7Y29uc3Qgbj13W2crMV0ub2Zmc2V0O2lmKDAhPT1uKXt3W2ddLmVuZE9mZnNldD1uO2JyZWFrfX1jb25zdCBqPXcuYXQoLTIpOzAhPT1qLm9mZnNldCYmMD09PWouZW5kT2Zmc2V0JiYoai5lbmRPZmZzZXQ9cCk7Y29uc3Qgaz1PYmplY3QuY3JlYXRlKG51bGwpO2xldCB5PTA7Zih1LDAseSk7Zm9yKGc9MCxiPW87ZzxuO2crKyxiKz1vKXtjb25zdCBlPXNhbml0aXplR2x5cGgobSx3W2ddLm9mZnNldCx3W2ddLmVuZE9mZnNldCxkLHksciksdD1lLmxlbmd0aDswPT09dCYmKGtbZ109ITApO2Uuc2l6ZU9mSW5zdHJ1Y3Rpb25zPmkmJihpPWUuc2l6ZU9mSW5zdHJ1Y3Rpb25zKTt5Kz10O2YodSxiLHkpfWlmKDA9PT15KXtjb25zdCBlPW5ldyBVaW50OEFycmF5KFswLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNDksMF0pO2ZvcihnPTAsYj1vO2c8YztnKyssYis9bylmKHUsYixlLmxlbmd0aCk7dC5kYXRhPWV9ZWxzZSBpZihzKXtjb25zdCBuPWwodSxvKTtpZihkLmxlbmd0aD5uK3kpdC5kYXRhPWQuc3ViYXJyYXkoMCxuK3kpO2Vsc2V7dC5kYXRhPW5ldyBVaW50OEFycmF5KG4reSk7dC5kYXRhLnNldChkLnN1YmFycmF5KDAseSkpfXQuZGF0YS5zZXQoZC5zdWJhcnJheSgwLG4pLHkpO2YoZS5kYXRhLHUubGVuZ3RoLW8seStuKX1lbHNlIHQuZGF0YT1kLnN1YmFycmF5KDAseSk7cmV0dXJue21pc3NpbmdHbHlwaHM6ayxtYXhTaXplT2ZJbnN0cnVjdGlvbnM6aX19KGkubG9jYSxpLmdseWYsYyxoLGcsbSxkKTtiPWUubWlzc2luZ0dseXBocztpZihmPj02NTUzNiYmaS5tYXhwLmxlbmd0aD49MzIpe2kubWF4cC5kYXRhWzI2XT1lLm1heFNpemVPZkluc3RydWN0aW9ucz4+ODtpLm1heHAuZGF0YVsyN109MjU1JmUubWF4U2l6ZU9mSW5zdHJ1Y3Rpb25zfX1pZighaS5oaGVhKXRocm93IG5ldyBGb3JtYXRFcnJvcignUmVxdWlyZWQgImhoZWEiIHRhYmxlIGlzIG5vdCBmb3VuZCcpO2lmKDA9PT1pLmhoZWEuZGF0YVsxMF0mJjA9PT1pLmhoZWEuZGF0YVsxMV0pe2kuaGhlYS5kYXRhWzEwXT0yNTU7aS5oaGVhLmRhdGFbMTFdPTI1NX1jb25zdCB3PXt1bml0c1BlckVtOmludDE2KGkuaGVhZC5kYXRhWzE4XSxpLmhlYWQuZGF0YVsxOV0pLHlNYXg6c2lnbmVkSW50MTYoaS5oZWFkLmRhdGFbNDJdLGkuaGVhZC5kYXRhWzQzXSkseU1pbjpzaWduZWRJbnQxNihpLmhlYWQuZGF0YVszOF0saS5oZWFkLmRhdGFbMzldKSxhc2NlbnQ6c2lnbmVkSW50MTYoaS5oaGVhLmRhdGFbNF0saS5oaGVhLmRhdGFbNV0pLGRlc2NlbnQ6c2lnbmVkSW50MTYoaS5oaGVhLmRhdGFbNl0saS5oaGVhLmRhdGFbN10pLGxpbmVHYXA6c2lnbmVkSW50MTYoaS5oaGVhLmRhdGFbOF0saS5oaGVhLmRhdGFbOV0pfTt0aGlzLmFzY2VudD13LmFzY2VudC93LnVuaXRzUGVyRW07dGhpcy5kZXNjZW50PXcuZGVzY2VudC93LnVuaXRzUGVyRW07dGhpcy5saW5lR2FwPXcubGluZUdhcC93LnVuaXRzUGVyRW07aWYodGhpcy5jc3NGb250SW5mbz8ubGluZUhlaWdodCl7dGhpcy5saW5lSGVpZ2h0PXRoaXMuY3NzRm9udEluZm8ubWV0cmljcy5saW5lSGVpZ2h0O3RoaXMubGluZUdhcD10aGlzLmNzc0ZvbnRJbmZvLm1ldHJpY3MubGluZUdhcH1lbHNlIHRoaXMubGluZUhlaWdodD10aGlzLmFzY2VudC10aGlzLmRlc2NlbnQrdGhpcy5saW5lR2FwO2kucG9zdCYmZnVuY3Rpb24gcmVhZFBvc3RTY3JpcHRUYWJsZShlLG4sYSl7Y29uc3Qgcj0odC5zdGFydHx8MCkrZS5vZmZzZXQ7dC5wb3M9cjtjb25zdCBzPXIrZS5sZW5ndGgsaT10LmdldEludDMyKCk7dC5za2lwKDI4KTtsZXQgbyxsLGY9ITA7c3dpdGNoKGkpe2Nhc2UgNjU1MzY6bz1PYTticmVhaztjYXNlIDEzMTA3Mjpjb25zdCBlPXQuZ2V0VWludDE2KCk7aWYoZSE9PWEpe2Y9ITE7YnJlYWt9Y29uc3Qgcj1bXTtmb3IobD0wO2w8ZTsrK2wpe2NvbnN0IGU9dC5nZXRVaW50MTYoKTtpZihlPj0zMjc2OCl7Zj0hMTticmVha31yLnB1c2goZSl9aWYoIWYpYnJlYWs7Y29uc3QgYz1bXSxoPVtdO2Zvcig7dC5wb3M8czspe2NvbnN0IGU9dC5nZXRCeXRlKCk7aC5sZW5ndGg9ZTtmb3IobD0wO2w8ZTsrK2wpaFtsXT1TdHJpbmcuZnJvbUNoYXJDb2RlKHQuZ2V0Qnl0ZSgpKTtjLnB1c2goaC5qb2luKCIiKSl9bz1bXTtmb3IobD0wO2w8ZTsrK2wpe2NvbnN0IGU9cltsXTtlPDI1OD9vLnB1c2goT2FbZV0pOm8ucHVzaChjW2UtMjU4XSl9YnJlYWs7Y2FzZSAxOTY2MDg6YnJlYWs7ZGVmYXVsdDp3YXJuKCJVbmtub3duL3Vuc3VwcG9ydGVkIHBvc3QgdGFibGUgdmVyc2lvbiAiK2kpO2Y9ITE7bi5kZWZhdWx0RW5jb2RpbmcmJihvPW4uZGVmYXVsdEVuY29kaW5nKX1uLmdseXBoTmFtZXM9bztyZXR1cm4gZn0oaS5wb3N0LG4sYyk7aS5wb3N0PXt0YWc6InBvc3QiLGRhdGE6Y3JlYXRlUG9zdFRhYmxlKG4pfTtjb25zdCBqPU9iamVjdC5jcmVhdGUobnVsbCk7ZnVuY3Rpb24gaGFzR2x5cGgoZSl7cmV0dXJuIWJbZV19aWYobi5jb21wb3NpdGUpe2NvbnN0IGU9bi5jaWRUb0dpZE1hcHx8W10sdD0wPT09ZS5sZW5ndGg7bi5jTWFwLmZvckVhY2goZnVuY3Rpb24obixhKXsic3RyaW5nIj09dHlwZW9mIGEmJihhPWNvbnZlcnRDaWRTdHJpbmcobixhLCEwKSk7aWYoYT42NTUzNSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIk1heCBzaXplIG9mIENJRCBpcyA2NSw1MzUiKTtsZXQgcj0tMTt0P3I9YTp2b2lkIDAhPT1lW2FdJiYocj1lW2FdKTtyPj0wJiZyPGMmJmhhc0dseXBoKHIpJiYoaltuXT1yKX0pfWVsc2V7Y29uc3QgZT1mdW5jdGlvbiByZWFkQ21hcFRhYmxlKGUsdCxuLGEpe2lmKCFlKXt3YXJuKCJObyBjbWFwIHRhYmxlIGF2YWlsYWJsZS4iKTtyZXR1cm57cGxhdGZvcm1JZDotMSxlbmNvZGluZ0lkOi0xLG1hcHBpbmdzOltdLGhhc1Nob3J0Q21hcDohMX19bGV0IHIscz0odC5zdGFydHx8MCkrZS5vZmZzZXQ7dC5wb3M9czt0LnNraXAoMik7Y29uc3QgaT10LmdldFVpbnQxNigpO2xldCBvLGw9ITE7Zm9yKGxldCBlPTA7ZTxpO2UrKyl7Y29uc3Qgcj10LmdldFVpbnQxNigpLHM9dC5nZXRVaW50MTYoKSxmPXQuZ2V0SW50MzIoKT4+PjA7bGV0IGM9ITE7aWYobz8ucGxhdGZvcm1JZCE9PXJ8fG8/LmVuY29kaW5nSWQhPT1zKXtpZigwIT09cnx8MCE9PXMmJjEhPT1zJiYzIT09cylpZigxPT09ciYmMD09PXMpYz0hMDtlbHNlIGlmKDMhPT1yfHwxIT09c3x8IWEmJm8pe2lmKG4mJjM9PT1yJiYwPT09cyl7Yz0hMDtsZXQgbj0hMDtpZihlPGktMSl7Y29uc3QgZT10LnBlZWtCeXRlcygyKTtpbnQxNihlWzBdLGVbMV0pPHImJihuPSExKX1uJiYobD0hMCl9fWVsc2V7Yz0hMDtufHwobD0hMCl9ZWxzZSBjPSEwO2MmJihvPXtwbGF0Zm9ybUlkOnIsZW5jb2RpbmdJZDpzLG9mZnNldDpmfSk7aWYobClicmVha319byYmKHQucG9zPXMrby5vZmZzZXQpO2lmKCFvfHwtMT09PXQucGVla0J5dGUoKSl7d2FybigiQ291bGQgbm90IGZpbmQgYSBwcmVmZXJyZWQgY21hcCB0YWJsZS4iKTtyZXR1cm57cGxhdGZvcm1JZDotMSxlbmNvZGluZ0lkOi0xLG1hcHBpbmdzOltdLGhhc1Nob3J0Q21hcDohMX19Y29uc3QgZj10LmdldFVpbnQxNigpO2xldCBjPSExO2NvbnN0IGg9W107bGV0IHUsbTtpZigwPT09Zil7dC5za2lwKDQpO2Zvcih1PTA7dTwyNTY7dSsrKXtjb25zdCBlPXQuZ2V0Qnl0ZSgpO2UmJmgucHVzaCh7Y2hhckNvZGU6dSxnbHlwaElkOmV9KX1jPSEwfWVsc2UgaWYoMj09PWYpe3Quc2tpcCg0KTtjb25zdCBlPVtdO2xldCBuPTA7Zm9yKGxldCBhPTA7YTwyNTY7YSsrKXtjb25zdCBhPXQuZ2V0VWludDE2KCk+PjM7ZS5wdXNoKGEpO249TWF0aC5tYXgoYSxuKX1jb25zdCBhPVtdO2ZvcihsZXQgZT0wO2U8PW47ZSsrKWEucHVzaCh7Zmlyc3RDb2RlOnQuZ2V0VWludDE2KCksZW50cnlDb3VudDp0LmdldFVpbnQxNigpLGlkRGVsdGE6c2lnbmVkSW50MTYodC5nZXRCeXRlKCksdC5nZXRCeXRlKCkpLGlkUmFuZ2VQb3M6dC5wb3MrdC5nZXRVaW50MTYoKX0pO2ZvcihsZXQgbj0wO248MjU2O24rKylpZigwPT09ZVtuXSl7dC5wb3M9YVswXS5pZFJhbmdlUG9zKzIqbjttPXQuZ2V0VWludDE2KCk7aC5wdXNoKHtjaGFyQ29kZTpuLGdseXBoSWQ6bX0pfWVsc2V7Y29uc3Qgcj1hW2Vbbl1dO2Zvcih1PTA7dTxyLmVudHJ5Q291bnQ7dSsrKXtjb25zdCBlPShuPDw4KSt1K3IuZmlyc3RDb2RlO3QucG9zPXIuaWRSYW5nZVBvcysyKnU7bT10LmdldFVpbnQxNigpOzAhPT1tJiYobT0obStyLmlkRGVsdGEpJTY1NTM2KTtoLnB1c2goe2NoYXJDb2RlOmUsZ2x5cGhJZDptfSl9fX1lbHNlIGlmKDQ9PT1mKXt0LnNraXAoNCk7Y29uc3QgZT10LmdldFVpbnQxNigpPj4xO3Quc2tpcCg2KTtjb25zdCBuPVtdO2xldCBhO2ZvcihhPTA7YTxlO2ErKyluLnB1c2goe2VuZDp0LmdldFVpbnQxNigpfSk7dC5za2lwKDIpO2ZvcihhPTA7YTxlO2ErKyluW2FdLnN0YXJ0PXQuZ2V0VWludDE2KCk7Zm9yKGE9MDthPGU7YSsrKW5bYV0uZGVsdGE9dC5nZXRVaW50MTYoKTtsZXQgaSxvPTA7Zm9yKGE9MDthPGU7YSsrKXtyPW5bYV07Y29uc3Qgcz10LmdldFVpbnQxNigpO2lmKHMpe2k9KHM+PjEpLShlLWEpO3Iub2Zmc2V0SW5kZXg9aTtvPU1hdGgubWF4KG8saStyLmVuZC1yLnN0YXJ0KzEpfWVsc2Ugci5vZmZzZXRJbmRleD0tMX1jb25zdCBsPVtdO2Zvcih1PTA7dTxvO3UrKylsLnB1c2godC5nZXRVaW50MTYoKSk7Zm9yKGE9MDthPGU7YSsrKXtyPW5bYV07cz1yLnN0YXJ0O2NvbnN0IGU9ci5lbmQsdD1yLmRlbHRhO2k9ci5vZmZzZXRJbmRleDtmb3IodT1zO3U8PWU7dSsrKWlmKDY1NTM1IT09dSl7bT1pPDA/dTpsW2krdS1zXTttPW0rdCY2NTUzNTtoLnB1c2goe2NoYXJDb2RlOnUsZ2x5cGhJZDptfSl9fX1lbHNlIGlmKDY9PT1mKXt0LnNraXAoNCk7Y29uc3QgZT10LmdldFVpbnQxNigpLG49dC5nZXRVaW50MTYoKTtmb3IodT0wO3U8bjt1Kyspe209dC5nZXRVaW50MTYoKTtjb25zdCBuPWUrdTtoLnB1c2goe2NoYXJDb2RlOm4sZ2x5cGhJZDptfSl9fWVsc2V7aWYoMTIhPT1mKXt3YXJuKCJjbWFwIHRhYmxlIGhhcyB1bnN1cHBvcnRlZCBmb3JtYXQ6ICIrZik7cmV0dXJue3BsYXRmb3JtSWQ6LTEsZW5jb2RpbmdJZDotMSxtYXBwaW5nczpbXSxoYXNTaG9ydENtYXA6ITF9fXt0LnNraXAoMTApO2NvbnN0IGU9dC5nZXRJbnQzMigpPj4+MDtmb3IodT0wO3U8ZTt1Kyspe2NvbnN0IGU9dC5nZXRJbnQzMigpPj4+MCxuPXQuZ2V0SW50MzIoKT4+PjA7bGV0IGE9dC5nZXRJbnQzMigpPj4+MDtmb3IobGV0IHQ9ZTt0PD1uO3QrKyloLnB1c2goe2NoYXJDb2RlOnQsZ2x5cGhJZDphKyt9KX19fWguc29ydCgoZSx0KT0+ZS5jaGFyQ29kZS10LmNoYXJDb2RlKTtjb25zdCBwPVtdLGQ9bmV3IFNldDtmb3IoY29uc3QgZSBvZiBoKXtjb25zdHtjaGFyQ29kZTp0fT1lO2lmKCFkLmhhcyh0KSl7ZC5hZGQodCk7cC5wdXNoKGUpfX1yZXR1cm57cGxhdGZvcm1JZDpvLnBsYXRmb3JtSWQsZW5jb2RpbmdJZDpvLmVuY29kaW5nSWQsbWFwcGluZ3M6cCxoYXNTaG9ydENtYXA6Y319KGkuY21hcCx0LHRoaXMuaXNTeW1ib2xpY0ZvbnQsbi5oYXNFbmNvZGluZyksYT1lLnBsYXRmb3JtSWQscj1lLmVuY29kaW5nSWQscz1lLm1hcHBpbmdzO2xldCBvPVtdLGw9ITE7IW4uaGFzRW5jb2Rpbmd8fCJNYWNSb21hbkVuY29kaW5nIiE9PW4uYmFzZUVuY29kaW5nTmFtZSYmIldpbkFuc2lFbmNvZGluZyIhPT1uLmJhc2VFbmNvZGluZ05hbWV8fChvPWdldEVuY29kaW5nKG4uYmFzZUVuY29kaW5nTmFtZSkpO2lmKG4uaGFzRW5jb2RpbmcmJiF0aGlzLmlzU3ltYm9saWNGb250JiYoMz09PWEmJjE9PT1yfHwxPT09YSYmMD09PXIpKXtjb25zdCBlPWthKCk7Zm9yKGxldCB0PTA7dDwyNTY7dCsrKXtsZXQgaTtpPXZvaWQgMCE9PXRoaXMuZGlmZmVyZW5jZXNbdF0/dGhpcy5kaWZmZXJlbmNlc1t0XTpvLmxlbmd0aCYmIiIhPT1vW3RdP29bdF06Z2FbdF07aWYoIWkpY29udGludWU7Y29uc3QgbD1yZWNvdmVyR2x5cGhOYW1lKGksZSk7bGV0IGY7Mz09PWEmJjE9PT1yP2Y9ZVtsXToxPT09YSYmMD09PXImJihmPWRhLmluZGV4T2YobCkpO2lmKHZvaWQgMD09PWYpe2lmKCFuLmdseXBoTmFtZXMmJm4uaGFzSW5jbHVkZWRUb1VuaWNvZGVNYXAmJiEodGhpcy50b1VuaWNvZGUgaW5zdGFuY2VvZiBJZGVudGl0eVRvVW5pY29kZU1hcCkpe2NvbnN0IGU9dGhpcy50b1VuaWNvZGUuZ2V0KHQpO2UmJihmPWUuY29kZVBvaW50QXQoMCkpfWlmKHZvaWQgMD09PWYpY29udGludWV9Zm9yKGNvbnN0IGUgb2YgcylpZihlLmNoYXJDb2RlPT09Zil7alt0XT1lLmdseXBoSWQ7YnJlYWt9fX1lbHNlIGlmKDA9PT1hKXtmb3IoY29uc3QgZSBvZiBzKWpbZS5jaGFyQ29kZV09ZS5nbHlwaElkO2w9ITB9ZWxzZSBpZigzPT09YSYmMD09PXIpZm9yKGNvbnN0IGUgb2Ygcyl7bGV0IHQ9ZS5jaGFyQ29kZTt0Pj02MTQ0MCYmdDw9NjE2OTUmJih0Jj0yNTUpO2pbdF09ZS5nbHlwaElkfWVsc2UgZm9yKGNvbnN0IGUgb2YgcylqW2UuY2hhckNvZGVdPWUuZ2x5cGhJZDtpZihuLmdseXBoTmFtZXMmJihvLmxlbmd0aHx8dGhpcy5kaWZmZXJlbmNlcy5sZW5ndGgpKWZvcihsZXQgZT0wO2U8MjU2OysrZSl7aWYoIWwmJnZvaWQgMCE9PWpbZV0pY29udGludWU7Y29uc3QgdD10aGlzLmRpZmZlcmVuY2VzW2VdfHxvW2VdO2lmKCF0KWNvbnRpbnVlO2NvbnN0IGE9bi5nbHlwaE5hbWVzLmluZGV4T2YodCk7YT4wJiZoYXNHbHlwaChhKSYmKGpbZV09YSl9fTA9PT1qLmxlbmd0aCYmKGpbMF09MCk7bGV0IGs9dS0xO218fChrPTApO2lmKCFuLmNzc0ZvbnRJbmZvKXtjb25zdCBlPWFkanVzdE1hcHBpbmcoaixoYXNHbHlwaCxrLHRoaXMudG9Vbmljb2RlKTt0aGlzLnRvRm9udENoYXI9ZS50b0ZvbnRDaGFyO2kuY21hcD17dGFnOiJjbWFwIixkYXRhOmNyZWF0ZUNtYXBUYWJsZShlLmNoYXJDb2RlVG9HbHlwaElkLGUudG9Vbmljb2RlRXh0cmFNYXAsdSl9O2lbIk9TLzIiXSYmZnVuY3Rpb24gdmFsaWRhdGVPUzJUYWJsZShlLHQpe3QucG9zPSh0LnN0YXJ0fHwwKStlLm9mZnNldDtjb25zdCBuPXQuZ2V0VWludDE2KCk7dC5za2lwKDYwKTtjb25zdCBhPXQuZ2V0VWludDE2KCk7aWYobjw0JiY3NjgmYSlyZXR1cm4hMTtpZih0LmdldFVpbnQxNigpPnQuZ2V0VWludDE2KCkpcmV0dXJuITE7dC5za2lwKDYpO2lmKDA9PT10LmdldFVpbnQxNigpKXJldHVybiExO2UuZGF0YVs4XT1lLmRhdGFbOV09MDtyZXR1cm4hMH0oaVsiT1MvMiJdLHQpfHwoaVsiT1MvMiJdPXt0YWc6Ik9TLzIiLGRhdGE6Y3JlYXRlT1MyVGFibGUobixlLmNoYXJDb2RlVG9HbHlwaElkLHcpfSl9aWYoaS5uYW1lKXtjb25zdFt0LGFdPXJlYWROYW1lVGFibGUoaS5uYW1lKTtpLm5hbWUuZGF0YT1jcmVhdGVOYW1lVGFibGUoZSx0KTt0aGlzLnBzTmFtZT10WzBdWzZdfHxudWxsO24uY29tcG9zaXRlfHxmdW5jdGlvbiBhZGp1c3RUcnVlVHlwZVRvVW5pY29kZShlLHQsbil7aWYoZS5pc0ludGVybmFsRm9udClyZXR1cm47aWYoZS5oYXNJbmNsdWRlZFRvVW5pY29kZU1hcClyZXR1cm47aWYoZS5oYXNFbmNvZGluZylyZXR1cm47aWYoZS50b1VuaWNvZGUgaW5zdGFuY2VvZiBJZGVudGl0eVRvVW5pY29kZU1hcClyZXR1cm47aWYoIXQpcmV0dXJuO2lmKDA9PT1uLmxlbmd0aClyZXR1cm47aWYoZS5kZWZhdWx0RW5jb2Rpbmc9PT1iYSlyZXR1cm47Zm9yKGNvbnN0IGUgb2YgbilpZighaXNXaW5OYW1lUmVjb3JkKGUpKXJldHVybjtjb25zdCBhPWJhLHI9W10scz1rYSgpO2Zvcihjb25zdCBlIGluIGEpe2NvbnN0IHQ9YVtlXTtpZigiIj09PXQpY29udGludWU7Y29uc3Qgbj1zW3RdO3ZvaWQgMCE9PW4mJihyW2VdPVN0cmluZy5mcm9tQ2hhckNvZGUobikpfXIubGVuZ3RoPjAmJmUudG9Vbmljb2RlLmFtZW5kKHIpfShuLHRoaXMuaXNTeW1ib2xpY0ZvbnQsYSl9ZWxzZSBpLm5hbWU9e3RhZzoibmFtZSIsZGF0YTpjcmVhdGVOYW1lVGFibGUodGhpcy5uYW1lKX07Y29uc3QgeT1uZXcgT3BlblR5cGVGaWxlQnVpbGRlcihzLnZlcnNpb24pO2Zvcihjb25zdCBlIGluIGkpeS5hZGRUYWJsZShlLGlbZV0uZGF0YSk7cmV0dXJuIHkudG9BcnJheSgpfWNvbnZlcnQoZSx0LG4pe24uZml4ZWRQaXRjaD0hMTtuLmJ1aWx0SW5FbmNvZGluZyYmZnVuY3Rpb24gYWRqdXN0VHlwZTFUb1VuaWNvZGUoZSx0KXtpZihlLmlzSW50ZXJuYWxGb250KXJldHVybjtpZihlLmhhc0luY2x1ZGVkVG9Vbmljb2RlTWFwKXJldHVybjtpZih0PT09ZS5kZWZhdWx0RW5jb2RpbmcpcmV0dXJuO2lmKGUudG9Vbmljb2RlIGluc3RhbmNlb2YgSWRlbnRpdHlUb1VuaWNvZGVNYXApcmV0dXJuO2NvbnN0IG49W10sYT1rYSgpO2Zvcihjb25zdCByIGluIHQpe2lmKGUuaGFzRW5jb2RpbmcmJihlLmJhc2VFbmNvZGluZ05hbWV8fHZvaWQgMCE9PWUuZGlmZmVyZW5jZXNbcl0pKWNvbnRpbnVlO2NvbnN0IHM9Z2V0VW5pY29kZUZvckdseXBoKHRbcl0sYSk7LTEhPT1zJiYobltyXT1TdHJpbmcuZnJvbUNoYXJDb2RlKHMpKX1uLmxlbmd0aD4wJiZlLnRvVW5pY29kZS5hbWVuZChuKX0obixuLmJ1aWx0SW5FbmNvZGluZyk7bGV0IHI9MTt0IGluc3RhbmNlb2YgQ0ZGRm9udCYmKHI9dC5udW1HbHlwaHMtMSk7Y29uc3Qgcz10LmdldEdseXBoTWFwcGluZyhuKTtsZXQgaT1udWxsLG89cyxsPW51bGw7aWYoIW4uY3NzRm9udEluZm8pe2k9YWRqdXN0TWFwcGluZyhzLHQuaGFzR2x5cGhJZC5iaW5kKHQpLHIsdGhpcy50b1VuaWNvZGUpO3RoaXMudG9Gb250Q2hhcj1pLnRvRm9udENoYXI7bz1pLmNoYXJDb2RlVG9HbHlwaElkO2w9aS50b1VuaWNvZGVFeHRyYU1hcH1jb25zdCBmPXQubnVtR2x5cGhzO2Z1bmN0aW9uIGdldENoYXJDb2RlcyhlLHQpe2xldCBuPW51bGw7Zm9yKGNvbnN0IGEgaW4gZSl0PT09ZVthXSYmKG58fD1bXSkucHVzaCgwfGEpO3JldHVybiBufWZ1bmN0aW9uIGNyZWF0ZUNoYXJDb2RlKGUsdCl7Zm9yKGNvbnN0IG4gaW4gZSlpZih0PT09ZVtuXSlyZXR1cm4gMHxuO2kuY2hhckNvZGVUb0dseXBoSWRbaS5uZXh0QXZhaWxhYmxlRm9udENoYXJDb2RlXT10O3JldHVybiBpLm5leHRBdmFpbGFibGVGb250Q2hhckNvZGUrK31jb25zdCBjPXQuc2VhY3M7aWYoaSYmYz8ubGVuZ3RoKXtjb25zdCBlPW4uZm9udE1hdHJpeHx8YSxyPXQuZ2V0Q2hhcnNldCgpLG89T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IobGV0IHQgaW4gYyl7dHw9MDtjb25zdCBuPWNbdF0sYT1nYVtuWzJdXSxsPWdhW25bM11dLGY9ci5pbmRleE9mKGEpLGg9ci5pbmRleE9mKGwpO2lmKGY8MHx8aDwwKWNvbnRpbnVlO2NvbnN0IHU9e3g6blswXSplWzBdK25bMV0qZVsyXStlWzRdLHk6blswXSplWzFdK25bMV0qZVszXStlWzVdfSxtPWdldENoYXJDb2RlcyhzLHQpO2lmKG0pZm9yKGNvbnN0IGUgb2YgbSl7Y29uc3QgdD1pLmNoYXJDb2RlVG9HbHlwaElkLG49Y3JlYXRlQ2hhckNvZGUodCxmKSxhPWNyZWF0ZUNoYXJDb2RlKHQsaCk7b1tlXT17YmFzZUZvbnRDaGFyQ29kZTpuLGFjY2VudEZvbnRDaGFyQ29kZTphLGFjY2VudE9mZnNldDp1fX19bi5zZWFjTWFwPW99Y29uc3QgaD1uLmZvbnRNYXRyaXg/MS9NYXRoLm1heCguLi5uLmZvbnRNYXRyaXguc2xpY2UoMCw0KS5tYXAoTWF0aC5hYnMpKToxZTMsdT1uZXcgT3BlblR5cGVGaWxlQnVpbGRlcigiT1RUTyIpO3UuYWRkVGFibGUoIkNGRiAiLHQuZGF0YSk7dS5hZGRUYWJsZSgiT1MvMiIsY3JlYXRlT1MyVGFibGUobixvKSk7dS5hZGRUYWJsZSgiY21hcCIsY3JlYXRlQ21hcFRhYmxlKG8sbCxmKSk7dS5hZGRUYWJsZSgiaGVhZCIsIlwwAVwwXDBcMFwwEFwwXDBcMFwwXDBfDzzDtVwwXDAiK3NhZmVTdHJpbmcxNihoKSsiXDBcMFwwXDDCnlx2fidcMFwwXDBcMMKeXHZ+J1wwXDAiK3NhZmVTdHJpbmcxNihuLmRlc2NlbnQpKyIPw78iK3NhZmVTdHJpbmcxNihuLmFzY2VudCkrc3RyaW5nMTYobi5pdGFsaWNBbmdsZT8yOjApKyJcMBFcMFwwXDBcMFwwXDAiKTt1LmFkZFRhYmxlKCJoaGVhIiwiXDABXDBcMCIrc2FmZVN0cmluZzE2KG4uYXNjZW50KStzYWZlU3RyaW5nMTYobi5kZXNjZW50KSsiXDBcMMO/w79cMFwwXDBcMFwwXDAiK3NhZmVTdHJpbmcxNihuLmNhcEhlaWdodCkrc2FmZVN0cmluZzE2KE1hdGgudGFuKG4uaXRhbGljQW5nbGUpKm4ueEhlaWdodCkrIlwwXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIrc3RyaW5nMTYoZikpO3UuYWRkVGFibGUoImhtdHgiLGZ1bmN0aW9uIGZvbnRGaWVsZHNIbXR4KCl7Y29uc3QgZT10LmNoYXJzdHJpbmdzLG49dC5jZmY/dC5jZmYud2lkdGhzOm51bGw7bGV0IGE9IlwwXDBcMFwwIjtmb3IobGV0IHQ9MSxyPWY7dDxyO3QrKyl7bGV0IHI9MDtpZihlKXtjb25zdCBuPWVbdC0xXTtyPSJ3aWR0aCJpbiBuP24ud2lkdGg6MH1lbHNlIG4mJihyPU1hdGguY2VpbChuW3RdfHwwKSk7YSs9c3RyaW5nMTYocikrc3RyaW5nMTYoMCl9cmV0dXJuIGF9KCkpO3UuYWRkVGFibGUoIm1heHAiLCJcMFwwUFwwIitzdHJpbmcxNihmKSk7dS5hZGRUYWJsZSgibmFtZSIsY3JlYXRlTmFtZVRhYmxlKGUpKTt1LmFkZFRhYmxlKCJwb3N0IixjcmVhdGVQb3N0VGFibGUobikpO3JldHVybiB1LnRvQXJyYXkoKX1nZXQgX3NwYWNlV2lkdGgoKXtjb25zdCBlPVsic3BhY2UiLCJtaW51cyIsIm9uZSIsImkiLCJJIl07bGV0IHQ7Zm9yKGNvbnN0IG4gb2YgZSl7aWYobiBpbiB0aGlzLndpZHRocyl7dD10aGlzLndpZHRoc1tuXTticmVha31jb25zdCBlPWthKClbbl07bGV0IGE9MDtpZih0aGlzLmNvbXBvc2l0ZSYmdGhpcy5jTWFwLmNvbnRhaW5zKGUpKXthPXRoaXMuY01hcC5sb29rdXAoZSk7InN0cmluZyI9PXR5cGVvZiBhJiYoYT1jb252ZXJ0Q2lkU3RyaW5nKGUsYSkpfSFhJiZ0aGlzLnRvVW5pY29kZSYmKGE9dGhpcy50b1VuaWNvZGUuY2hhckNvZGVPZihlKSk7YTw9MCYmKGE9ZSk7dD10aGlzLndpZHRoc1thXTtpZih0KWJyZWFrfXJldHVybiBzaGFkb3codGhpcywiX3NwYWNlV2lkdGgiLHR8fHRoaXMuZGVmYXVsdFdpZHRoKX1fY2hhclRvR2x5cGgoZSx0PSExKXtsZXQgbixhLHIscz10aGlzLl9nbHlwaENhY2hlW2VdO2lmKHM/LmlzU3BhY2U9PT10KXJldHVybiBzO2xldCBpPWU7aWYodGhpcy5jTWFwPy5jb250YWlucyhlKSl7aT10aGlzLmNNYXAubG9va3VwKGUpOyJzdHJpbmciPT10eXBlb2YgaSYmKGk9Y29udmVydENpZFN0cmluZyhlLGkpKX1hPXRoaXMud2lkdGhzW2ldOyJudW1iZXIiIT10eXBlb2YgYSYmKGE9dGhpcy5kZWZhdWx0V2lkdGgpO2NvbnN0IG89dGhpcy52bWV0cmljcz8uW2ldO2xldCBsPXRoaXMudG9Vbmljb2RlLmdldChlKXx8ZTsibnVtYmVyIj09dHlwZW9mIGwmJihsPVN0cmluZy5mcm9tQ2hhckNvZGUobCkpO2xldCBmPXZvaWQgMCE9PXRoaXMudG9Gb250Q2hhcltlXTtuPXRoaXMudG9Gb250Q2hhcltlXXx8ZTtpZih0aGlzLm1pc3NpbmdGaWxlKXtjb25zdCB0PXRoaXMuZGlmZmVyZW5jZXNbZV18fHRoaXMuZGVmYXVsdEVuY29kaW5nW2VdO2lmKCgiLm5vdGRlZiI9PT10fHwiIj09PXQpJiYiVHlwZTEiPT09dGhpcy50eXBlKXtuPTMyO2lmKCIiPT09dCl7YXx8PXRoaXMuX3NwYWNlV2lkdGg7bD1TdHJpbmcuZnJvbUNoYXJDb2RlKG4pfX1uPWZ1bmN0aW9uIG1hcFNwZWNpYWxVbmljb2RlVmFsdWVzKGUpe3JldHVybiBlPj02NTUyMCYmZTw9NjU1MzU/MDplPj02Mjk3NiYmZTw9NjM3NDM/cWEoKVtlXXx8ZToxNzM9PT1lPzQ1OmV9KG4pfXRoaXMuaXNUeXBlM0ZvbnQmJihyPW4pO2xldCBjPW51bGw7aWYodGhpcy5zZWFjTWFwPy5bZV0pe2Y9ITA7Y29uc3QgdD10aGlzLnNlYWNNYXBbZV07bj10LmJhc2VGb250Q2hhckNvZGU7Yz17Zm9udENoYXI6U3RyaW5nLmZyb21Db2RlUG9pbnQodC5hY2NlbnRGb250Q2hhckNvZGUpLG9mZnNldDp0LmFjY2VudE9mZnNldH19bGV0IGg9IiI7Im51bWJlciI9PXR5cGVvZiBuJiYobjw9MTExNDExMT9oPVN0cmluZy5mcm9tQ29kZVBvaW50KG4pOndhcm4oYGNoYXJUb0dseXBoIC0gaW52YWxpZCBmb250Q2hhckNvZGU6ICR7bn1gKSk7aWYodGhpcy5taXNzaW5nRmlsZSYmdGhpcy52ZXJ0aWNhbCYmMT09PWgubGVuZ3RoKXtjb25zdCBlPVJhKClbaC5jaGFyQ29kZUF0KDApXTtlJiYoaD1sPVN0cmluZy5mcm9tQ2hhckNvZGUoZSkpfXM9bmV3IGZvbnRzX0dseXBoKGUsaCxsLGMsYSxvLHIsdCxmKTtyZXR1cm4gdGhpcy5fZ2x5cGhDYWNoZVtlXT1zfWNoYXJzVG9HbHlwaHMoZSl7bGV0IHQ9dGhpcy5fY2hhcnNDYWNoZVtlXTtpZih0KXJldHVybiB0O3Q9W107aWYodGhpcy5jTWFwKXtjb25zdCBuPU9iamVjdC5jcmVhdGUobnVsbCksYT1lLmxlbmd0aDtsZXQgcj0wO2Zvcig7cjxhOyl7dGhpcy5jTWFwLnJlYWRDaGFyQ29kZShlLHIsbik7Y29uc3R7Y2hhcmNvZGU6YSxsZW5ndGg6c309bjtyKz1zO2NvbnN0IGk9dGhpcy5fY2hhclRvR2x5cGgoYSwxPT09cyYmMzI9PT1lLmNoYXJDb2RlQXQoci0xKSk7dC5wdXNoKGkpfX1lbHNlIGZvcihsZXQgbj0wLGE9ZS5sZW5ndGg7bjxhOysrbil7Y29uc3QgYT1lLmNoYXJDb2RlQXQobikscj10aGlzLl9jaGFyVG9HbHlwaChhLDMyPT09YSk7dC5wdXNoKHIpfXJldHVybiB0aGlzLl9jaGFyc0NhY2hlW2VdPXR9Z2V0Q2hhclBvc2l0aW9ucyhlKXtjb25zdCB0PVtdO2lmKHRoaXMuY01hcCl7Y29uc3Qgbj1PYmplY3QuY3JlYXRlKG51bGwpO2xldCBhPTA7Zm9yKDthPGUubGVuZ3RoOyl7dGhpcy5jTWFwLnJlYWRDaGFyQ29kZShlLGEsbik7Y29uc3Qgcj1uLmxlbmd0aDt0LnB1c2goW2EsYStyXSk7YSs9cn19ZWxzZSBmb3IobGV0IG49MCxhPWUubGVuZ3RoO248YTsrK24pdC5wdXNoKFtuLG4rMV0pO3JldHVybiB0fWdldCBnbHlwaENhY2hlVmFsdWVzKCl7cmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5fZ2x5cGhDYWNoZSl9ZW5jb2RlU3RyaW5nKGUpe2NvbnN0IHQ9W10sbj1bXSxoYXNDdXJyZW50QnVmRXJyb3JzPSgpPT50Lmxlbmd0aCUyPT0xLGE9dGhpcy50b1VuaWNvZGUgaW5zdGFuY2VvZiBJZGVudGl0eVRvVW5pY29kZU1hcD9lPT50aGlzLnRvVW5pY29kZS5jaGFyQ29kZU9mKGUpOmU9PnRoaXMudG9Vbmljb2RlLmNoYXJDb2RlT2YoU3RyaW5nLmZyb21Db2RlUG9pbnQoZSkpO2ZvcihsZXQgcj0wLHM9ZS5sZW5ndGg7cjxzO3IrKyl7Y29uc3Qgcz1lLmNvZGVQb2ludEF0KHIpO3M+NTUyOTUmJihzPDU3MzQ0fHxzPjY1NTMzKSYmcisrO2lmKHRoaXMudG9Vbmljb2RlKXtjb25zdCBlPWEocyk7aWYoLTEhPT1lKXtpZihoYXNDdXJyZW50QnVmRXJyb3JzKCkpe3QucHVzaChuLmpvaW4oIiIpKTtuLmxlbmd0aD0wfWZvcihsZXQgdD0odGhpcy5jTWFwP3RoaXMuY01hcC5nZXRDaGFyQ29kZUxlbmd0aChlKToxKS0xO3Q+PTA7dC0tKW4ucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGU+PjgqdCYyNTUpKTtjb250aW51ZX19aWYoIWhhc0N1cnJlbnRCdWZFcnJvcnMoKSl7dC5wdXNoKG4uam9pbigiIikpO24ubGVuZ3RoPTB9bi5wdXNoKFN0cmluZy5mcm9tQ29kZVBvaW50KHMpKX10LnB1c2gobi5qb2luKCIiKSk7cmV0dXJuIHR9fWNsYXNzIEVycm9yRm9udHtjb25zdHJ1Y3RvcihlKXt0aGlzLmVycm9yPWU7dGhpcy5sb2FkZWROYW1lPSJnX2ZvbnRfZXJyb3IiO3RoaXMubWlzc2luZ0ZpbGU9ITB9Y2hhcnNUb0dseXBocygpe3JldHVybltdfWVuY29kZVN0cmluZyhlKXtyZXR1cm5bZV19ZXhwb3J0RGF0YSgpe3JldHVybntlcnJvcjp0aGlzLmVycm9yfX19Y2xhc3MgQ3NzRm9udEluZm97I1I7I1g7I1c7c3RhdGljIHN0cmluZ3M9WyJmb250RmFtaWx5IiwiZm9udFdlaWdodCIsIml0YWxpY0FuZ2xlIl07c3RhdGljIHdyaXRlKGUpe2NvbnN0IHQ9bmV3IFRleHRFbmNvZGVyLG49e307bGV0IGE9MDtmb3IoY29uc3QgciBvZiBDc3NGb250SW5mby5zdHJpbmdzKXtjb25zdCBzPXQuZW5jb2RlKGVbcl0pO25bcl09czthKz00K3MubGVuZ3RofWNvbnN0IHI9bmV3IEFycmF5QnVmZmVyKGEpLHM9bmV3IFVpbnQ4QXJyYXkociksaT1uZXcgRGF0YVZpZXcocik7bGV0IG89MDtmb3IoY29uc3QgZSBvZiBDc3NGb250SW5mby5zdHJpbmdzKXtjb25zdCB0PW5bZV0sYT10Lmxlbmd0aDtpLnNldFVpbnQzMihvLGEpO3Muc2V0KHQsbys0KTtvKz00K2F9YXNzZXJ0KG89PT1yLmJ5dGVMZW5ndGgsIkNzc0ZvbnRJbmZvLndyaXRlOiBCdWZmZXIgb3ZlcmZsb3ciKTtyZXR1cm4gcn1jb25zdHJ1Y3RvcihlKXt0aGlzLiNSPWU7dGhpcy4jWD1uZXcgRGF0YVZpZXcodGhpcy4jUik7dGhpcy4jVz1uZXcgVGV4dERlY29kZXJ9I0soZSl7YXNzZXJ0KGU8Q3NzRm9udEluZm8uc3RyaW5ncy5sZW5ndGgsIkludmFsaWQgc3RyaW5nIGluZGV4Iik7bGV0IHQ9MDtmb3IobGV0IG49MDtuPGU7bisrKXQrPXRoaXMuI1guZ2V0VWludDMyKHQpKzQ7Y29uc3Qgbj10aGlzLiNYLmdldFVpbnQzMih0KTtyZXR1cm4gdGhpcy4jVy5kZWNvZGUobmV3IFVpbnQ4QXJyYXkodGhpcy4jUix0KzQsbikpfWdldCBmb250RmFtaWx5KCl7cmV0dXJuIHRoaXMuI0soMCl9Z2V0IGZvbnRXZWlnaHQoKXtyZXR1cm4gdGhpcy4jSygxKX1nZXQgaXRhbGljQW5nbGUoKXtyZXR1cm4gdGhpcy4jSygyKX19Y2xhc3MgU3lzdGVtRm9udEluZm97I1I7I1g7I1c7c3RhdGljIHN0cmluZ3M9WyJjc3MiLCJsb2FkZWROYW1lIiwiYmFzZUZvbnROYW1lIiwic3JjIl07c3RhdGljIHdyaXRlKGUpe2NvbnN0IHQ9bmV3IFRleHRFbmNvZGVyLG49e307bGV0IGE9MDtmb3IoY29uc3QgciBvZiBTeXN0ZW1Gb250SW5mby5zdHJpbmdzKXtjb25zdCBzPXQuZW5jb2RlKGVbcl0pO25bcl09czthKz00K3MubGVuZ3RofWErPTQ7bGV0IHIscyxpPTErYTtpZihlLnN0eWxlKXtyPXQuZW5jb2RlKGUuc3R5bGUuc3R5bGUpO3M9dC5lbmNvZGUoZS5zdHlsZS53ZWlnaHQpO2krPTQrci5sZW5ndGgrNCtzLmxlbmd0aH1jb25zdCBvPW5ldyBBcnJheUJ1ZmZlcihpKSxsPW5ldyBVaW50OEFycmF5KG8pLGY9bmV3IERhdGFWaWV3KG8pO2xldCBjPTA7Zi5zZXRVaW50OChjKyssZS5ndWVzc0ZhbGxiYWNrPzE6MCk7Zi5zZXRVaW50MzIoYywwKTtjKz00O2E9MDtmb3IoY29uc3QgZSBvZiBTeXN0ZW1Gb250SW5mby5zdHJpbmdzKXtjb25zdCB0PW5bZV0scj10Lmxlbmd0aDthKz00K3I7Zi5zZXRVaW50MzIoYyxyKTtsLnNldCh0LGMrNCk7Yys9NCtyfWYuc2V0VWludDMyKGMtYS00LGEpO2lmKGUuc3R5bGUpe2Yuc2V0VWludDMyKGMsci5sZW5ndGgpO2wuc2V0KHIsYys0KTtjKz00K3IubGVuZ3RoO2Yuc2V0VWludDMyKGMscy5sZW5ndGgpO2wuc2V0KHMsYys0KTtjKz00K3MubGVuZ3RofWFzc2VydChjPD1vLmJ5dGVMZW5ndGgsIlN1YnN0aXRpb25JbmZvLndyaXRlOiBCdWZmZXIgb3ZlcmZsb3ciKTtyZXR1cm4gby50cmFuc2ZlclRvRml4ZWRMZW5ndGgoYyl9Y29uc3RydWN0b3IoZSl7dGhpcy4jUj1lO3RoaXMuI1g9bmV3IERhdGFWaWV3KHRoaXMuI1IpO3RoaXMuI1c9bmV3IFRleHREZWNvZGVyfWdldCBndWVzc0ZhbGxiYWNrKCl7cmV0dXJuIDAhPT10aGlzLiNYLmdldFVpbnQ4KDApfSNLKGUpe2Fzc2VydChlPFN5c3RlbUZvbnRJbmZvLnN0cmluZ3MubGVuZ3RoLCJJbnZhbGlkIHN0cmluZyBpbmRleCIpO2xldCB0PTU7Zm9yKGxldCBuPTA7bjxlO24rKyl0Kz10aGlzLiNYLmdldFVpbnQzMih0KSs0O2NvbnN0IG49dGhpcy4jWC5nZXRVaW50MzIodCk7cmV0dXJuIHRoaXMuI1cuZGVjb2RlKG5ldyBVaW50OEFycmF5KHRoaXMuI1IsdCs0LG4pKX1nZXQgY3NzKCl7cmV0dXJuIHRoaXMuI0soMCl9Z2V0IGxvYWRlZE5hbWUoKXtyZXR1cm4gdGhpcy4jSygxKX1nZXQgYmFzZUZvbnROYW1lKCl7cmV0dXJuIHRoaXMuI0soMil9Z2V0IHNyYygpe3JldHVybiB0aGlzLiNLKDMpfWdldCBzdHlsZSgpe2xldCBlPTE7ZSs9NCt0aGlzLiNYLmdldFVpbnQzMihlKTtjb25zdCB0PXRoaXMuI1guZ2V0VWludDMyKGUpLG49dGhpcy4jVy5kZWNvZGUobmV3IFVpbnQ4QXJyYXkodGhpcy4jUixlKzQsdCkpO2UrPTQrdDtjb25zdCBhPXRoaXMuI1guZ2V0VWludDMyKGUpO3JldHVybntzdHlsZTpuLHdlaWdodDp0aGlzLiNXLmRlY29kZShuZXcgVWludDhBcnJheSh0aGlzLiNSLGUrNCxhKSl9fX1jbGFzcyBGb250SW5mb3tzdGF0aWMgYm9vbHM9WyJibGFjayIsImJvbGQiLCJkaXNhYmxlRm9udEZhY2UiLCJmb250RXh0cmFQcm9wZXJ0aWVzIiwiaXNJbnZhbGlkUERGanNGb250IiwiaXNUeXBlM0ZvbnQiLCJpdGFsaWMiLCJtaXNzaW5nRmlsZSIsInJlbWVhc3VyZSIsInZlcnRpY2FsIl07c3RhdGljIG51bWJlcnM9WyJhc2NlbnQiLCJkZWZhdWx0V2lkdGgiLCJkZXNjZW50Il07c3RhdGljIHN0cmluZ3M9WyJmYWxsYmFja05hbWUiLCJsb2FkZWROYW1lIiwibWltZXR5cGUiLCJuYW1lIl07c3RhdGljI1Y9TWF0aC5jZWlsKDIqdGhpcy5ib29scy5sZW5ndGgvOCk7c3RhdGljI0c9dGhpcy4jVis4KnRoaXMubnVtYmVycy5sZW5ndGg7c3RhdGljIyQ9dGhpcy4jRysxKzg7c3RhdGljI1k9dGhpcy4jJCsxKzQ4O3N0YXRpYyNKPXRoaXMuI1krMSs2OyNSOyNXOyNYO2NvbnN0cnVjdG9yKHtkYXRhOmUsZXh0cmE6dH0pe3RoaXMuI1I9ZTt0aGlzLiNXPW5ldyBUZXh0RGVjb2Rlcjt0aGlzLiNYPW5ldyBEYXRhVmlldyh0aGlzLiNSKTt0JiZPYmplY3QuYXNzaWduKHRoaXMsdCl9I1EoZSl7YXNzZXJ0KGU8Rm9udEluZm8uYm9vbHMubGVuZ3RoLCJJbnZhbGlkIGJvb2xlYW4gaW5kZXgiKTtjb25zdCB0PU1hdGguZmxvb3IoZS80KSxuPTIqZSU4LGE9dGhpcy4jWC5nZXRVaW50OCh0KT4+biYzO3JldHVybiAwPT09YT92b2lkIDA6Mj09PWF9Z2V0IGJsYWNrKCl7cmV0dXJuIHRoaXMuI1EoMCl9Z2V0IGJvbGQoKXtyZXR1cm4gdGhpcy4jUSgxKX1nZXQgZGlzYWJsZUZvbnRGYWNlKCl7cmV0dXJuIHRoaXMuI1EoMil9Z2V0IGZvbnRFeHRyYVByb3BlcnRpZXMoKXtyZXR1cm4gdGhpcy4jUSgzKX1nZXQgaXNJbnZhbGlkUERGanNGb250KCl7cmV0dXJuIHRoaXMuI1EoNCl9Z2V0IGlzVHlwZTNGb250KCl7cmV0dXJuIHRoaXMuI1EoNSl9Z2V0IGl0YWxpYygpe3JldHVybiB0aGlzLiNRKDYpfWdldCBtaXNzaW5nRmlsZSgpe3JldHVybiB0aGlzLiNRKDcpfWdldCByZW1lYXN1cmUoKXtyZXR1cm4gdGhpcy4jUSg4KX1nZXQgdmVydGljYWwoKXtyZXR1cm4gdGhpcy4jUSg5KX0jWihlKXthc3NlcnQoZTxGb250SW5mby5udW1iZXJzLmxlbmd0aCwiSW52YWxpZCBudW1iZXIgaW5kZXgiKTtyZXR1cm4gdGhpcy4jWC5nZXRGbG9hdDY0KEZvbnRJbmZvLiNWKzgqZSl9Z2V0IGFzY2VudCgpe3JldHVybiB0aGlzLiNaKDApfWdldCBkZWZhdWx0V2lkdGgoKXtyZXR1cm4gdGhpcy4jWigxKX1nZXQgZGVzY2VudCgpe3JldHVybiB0aGlzLiNaKDIpfWdldCBiYm94KCl7bGV0IGU9Rm9udEluZm8uI0c7aWYoMD09PXRoaXMuI1guZ2V0VWludDgoZSkpcmV0dXJuO2UrPTE7Y29uc3QgdD1bXTtmb3IobGV0IG49MDtuPDQ7bisrKXt0LnB1c2godGhpcy4jWC5nZXRJbnQxNihlLCEwKSk7ZSs9Mn1yZXR1cm4gdH1nZXQgZm9udE1hdHJpeCgpe2xldCBlPUZvbnRJbmZvLiMkO2lmKDA9PT10aGlzLiNYLmdldFVpbnQ4KGUpKXJldHVybjtlKz0xO2NvbnN0IHQ9W107Zm9yKGxldCBuPTA7bjw2O24rKyl7dC5wdXNoKHRoaXMuI1guZ2V0RmxvYXQ2NChlLCEwKSk7ZSs9OH1yZXR1cm4gdH1nZXQgZGVmYXVsdFZNZXRyaWNzKCl7bGV0IGU9Rm9udEluZm8uI1k7aWYoMD09PXRoaXMuI1guZ2V0VWludDgoZSkpcmV0dXJuO2UrPTE7Y29uc3QgdD1bXTtmb3IobGV0IG49MDtuPDM7bisrKXt0LnB1c2godGhpcy4jWC5nZXRJbnQxNihlLCEwKSk7ZSs9Mn1yZXR1cm4gdH0jSyhlKXthc3NlcnQoZTxGb250SW5mby5zdHJpbmdzLmxlbmd0aCwiSW52YWxpZCBzdHJpbmcgaW5kZXgiKTtsZXQgdD1Gb250SW5mby4jSis0O2ZvcihsZXQgbj0wO248ZTtuKyspdCs9dGhpcy4jWC5nZXRVaW50MzIodCkrNDtjb25zdCBuPXRoaXMuI1guZ2V0VWludDMyKHQpLGE9bmV3IFVpbnQ4QXJyYXkobik7YS5zZXQobmV3IFVpbnQ4QXJyYXkodGhpcy4jUix0KzQsbikpO3JldHVybiB0aGlzLiNXLmRlY29kZShhKX1nZXQgZmFsbGJhY2tOYW1lKCl7cmV0dXJuIHRoaXMuI0soMCl9Z2V0IGxvYWRlZE5hbWUoKXtyZXR1cm4gdGhpcy4jSygxKX1nZXQgbWltZXR5cGUoKXtyZXR1cm4gdGhpcy4jSygyKX1nZXQgbmFtZSgpe3JldHVybiB0aGlzLiNLKDMpfWdldCBkYXRhKCl7bGV0IGU9Rm9udEluZm8uI0o7ZSs9NCt0aGlzLiNYLmdldFVpbnQzMihlKTtlKz00K3RoaXMuI1guZ2V0VWludDMyKGUpO2UrPTQrdGhpcy4jWC5nZXRVaW50MzIoZSk7Y29uc3QgdD10aGlzLiNYLmdldFVpbnQzMihlKTtpZigwIT09dClyZXR1cm4gbmV3IFVpbnQ4QXJyYXkodGhpcy4jUixlKzQsdCl9Y2xlYXJEYXRhKCl7bGV0IGU9Rm9udEluZm8uI0o7ZSs9NCt0aGlzLiNYLmdldFVpbnQzMihlKTtlKz00K3RoaXMuI1guZ2V0VWludDMyKGUpO2UrPTQrdGhpcy4jWC5nZXRVaW50MzIoZSk7Y29uc3QgdD10aGlzLiNYLmdldFVpbnQzMihlKTtuZXcgVWludDhBcnJheSh0aGlzLiNSLGUrNCx0KS5maWxsKDApO3RoaXMuI1guc2V0VWludDMyKGUsMCl9Z2V0IGNzc0ZvbnRJbmZvKCl7bGV0IGU9Rm9udEluZm8uI0o7ZSs9NCt0aGlzLiNYLmdldFVpbnQzMihlKTtlKz00K3RoaXMuI1guZ2V0VWludDMyKGUpO2NvbnN0IHQ9dGhpcy4jWC5nZXRVaW50MzIoZSk7aWYoMD09PXQpcmV0dXJuIG51bGw7Y29uc3Qgbj1uZXcgVWludDhBcnJheSh0KTtuLnNldChuZXcgVWludDhBcnJheSh0aGlzLiNSLGUrNCx0KSk7cmV0dXJuIG5ldyBDc3NGb250SW5mbyhuLmJ1ZmZlcil9Z2V0IHN5c3RlbUZvbnRJbmZvKCl7bGV0IGU9Rm9udEluZm8uI0o7ZSs9NCt0aGlzLiNYLmdldFVpbnQzMihlKTtjb25zdCB0PXRoaXMuI1guZ2V0VWludDMyKGUpO2lmKDA9PT10KXJldHVybiBudWxsO2NvbnN0IG49bmV3IFVpbnQ4QXJyYXkodCk7bi5zZXQobmV3IFVpbnQ4QXJyYXkodGhpcy4jUixlKzQsdCkpO3JldHVybiBuZXcgU3lzdGVtRm9udEluZm8obi5idWZmZXIpfXN0YXRpYyB3cml0ZShlKXtjb25zdCB0PWUuc3lzdGVtRm9udEluZm8/U3lzdGVtRm9udEluZm8ud3JpdGUoZS5zeXN0ZW1Gb250SW5mbyk6bnVsbCxuPWUuY3NzRm9udEluZm8/Q3NzRm9udEluZm8ud3JpdGUoZS5jc3NGb250SW5mbyk6bnVsbCxhPW5ldyBUZXh0RW5jb2RlcixyPXt9O2xldCBzPTA7Zm9yKGNvbnN0IHQgb2YgRm9udEluZm8uc3RyaW5ncyl7clt0XT1hLmVuY29kZShlW3RdKTtzKz00K3JbdF0ubGVuZ3RofWNvbnN0IGk9Rm9udEluZm8uI0orNCtzKzQrKHQ/dC5ieXRlTGVuZ3RoOjApKzQrKG4/bi5ieXRlTGVuZ3RoOjApKzQrKGUuZGF0YT9lLmRhdGEubGVuZ3RoOjApLG89bmV3IEFycmF5QnVmZmVyKGkpLGw9bmV3IFVpbnQ4QXJyYXkobyksZj1uZXcgRGF0YVZpZXcobyk7bGV0IGM9MDtjb25zdCBoPUZvbnRJbmZvLmJvb2xzLmxlbmd0aDtsZXQgdT0wLG09MDtmb3IobGV0IHQ9MDt0PGg7dCsrKXtjb25zdCBuPWVbRm9udEluZm8uYm9vbHNbdF1dO3V8PSh2b2lkIDA9PT1uPzA6bj8yOjEpPDxtO20rPTI7aWYoOD09PW18fHQ9PT1oLTEpe2Yuc2V0VWludDgoYysrLHUpO3U9MDttPTB9fWFzc2VydChjPT09Rm9udEluZm8uI1YsIkZvbnRJbmZvLndyaXRlOiBCb29sZWFuIHByb3BlcnRpZXMgb2Zmc2V0IG1pc21hdGNoIik7Zm9yKGNvbnN0IHQgb2YgRm9udEluZm8ubnVtYmVycyl7Zi5zZXRGbG9hdDY0KGMsZVt0XSk7Yys9OH1hc3NlcnQoYz09PUZvbnRJbmZvLiNHLCJGb250SW5mby53cml0ZTogTnVtYmVyIHByb3BlcnRpZXMgb2Zmc2V0IG1pc21hdGNoIik7aWYoZS5iYm94KXtmLnNldFVpbnQ4KGMrKyw0KTtmb3IoY29uc3QgdCBvZiBlLmJib3gpe2Yuc2V0SW50MTYoYyx0LCEwKTtjKz0yfX1lbHNle2Yuc2V0VWludDgoYysrLDApO2MrPTh9YXNzZXJ0KGM9PT1Gb250SW5mby4jJCwiRm9udEluZm8ud3JpdGU6IEJCb3ggcHJvcGVydGllcyBvZmZzZXQgbWlzbWF0Y2giKTtpZihlLmZvbnRNYXRyaXgpe2Yuc2V0VWludDgoYysrLDYpO2Zvcihjb25zdCB0IG9mIGUuZm9udE1hdHJpeCl7Zi5zZXRGbG9hdDY0KGMsdCwhMCk7Yys9OH19ZWxzZXtmLnNldFVpbnQ4KGMrKywwKTtjKz00OH1hc3NlcnQoYz09PUZvbnRJbmZvLiNZLCJGb250SW5mby53cml0ZTogRm9udE1hdHJpeCBwcm9wZXJ0aWVzIG9mZnNldCBtaXNtYXRjaCIpO2lmKGUuZGVmYXVsdFZNZXRyaWNzKXtmLnNldFVpbnQ4KGMrKywxKTtmb3IoY29uc3QgdCBvZiBlLmRlZmF1bHRWTWV0cmljcyl7Zi5zZXRJbnQxNihjLHQsITApO2MrPTJ9fWVsc2V7Zi5zZXRVaW50OChjKyssMCk7Yys9Nn1hc3NlcnQoYz09PUZvbnRJbmZvLiNKLCJGb250SW5mby53cml0ZTogRGVmYXVsdFZNZXRyaWNzIHByb3BlcnRpZXMgb2Zmc2V0IG1pc21hdGNoIik7Zi5zZXRVaW50MzIoRm9udEluZm8uI0osMCk7Yys9NDtmb3IoY29uc3QgZSBvZiBGb250SW5mby5zdHJpbmdzKXtjb25zdCB0PXJbZV0sbj10Lmxlbmd0aDtmLnNldFVpbnQzMihjLG4pO2wuc2V0KHQsYys0KTtjKz00K259Zi5zZXRVaW50MzIoRm9udEluZm8uI0osYy1Gb250SW5mby4jSi00KTtpZih0KXtjb25zdCBlPXQuYnl0ZUxlbmd0aDtmLnNldFVpbnQzMihjLGUpO2Fzc2VydChjKzQrZTw9by5ieXRlTGVuZ3RoLCJGb250SW5mby53cml0ZTogQnVmZmVyIG92ZXJmbG93IGF0IHN5c3RlbUZvbnRJbmZvIik7bC5zZXQobmV3IFVpbnQ4QXJyYXkodCksYys0KTtjKz00K2V9ZWxzZXtmLnNldFVpbnQzMihjLDApO2MrPTR9aWYobil7Y29uc3QgZT1uLmJ5dGVMZW5ndGg7Zi5zZXRVaW50MzIoYyxlKTthc3NlcnQoYys0K2U8PW8uYnl0ZUxlbmd0aCwiRm9udEluZm8ud3JpdGU6IEJ1ZmZlciBvdmVyZmxvdyBhdCBjc3NGb250SW5mbyIpO2wuc2V0KG5ldyBVaW50OEFycmF5KG4pLGMrNCk7Yys9NCtlfWVsc2V7Zi5zZXRVaW50MzIoYywwKTtjKz00fWlmKHZvaWQgMD09PWUuZGF0YSl7Zi5zZXRVaW50MzIoYywwKTtjKz00fWVsc2V7Zi5zZXRVaW50MzIoYyxlLmRhdGEubGVuZ3RoKTtsLnNldChlLmRhdGEsYys0KTtjKz00K2UuZGF0YS5sZW5ndGh9YXNzZXJ0KGM8PW8uYnl0ZUxlbmd0aCwiRm9udEluZm8ud3JpdGU6IEJ1ZmZlciBvdmVyZmxvdyIpO3JldHVybiBvLnRyYW5zZmVyVG9GaXhlZExlbmd0aChjKX19Y2xhc3MgUGF0dGVybkluZm97c3RhdGljI2VlPTA7c3RhdGljI3RlPTE7c3RhdGljI25lPTI7c3RhdGljI2FlPTM7c3RhdGljI3JlPTQ7c3RhdGljI3NlPTg7c3RhdGljI2llPTEyO3N0YXRpYyNvZT0xNjtjb25zdHJ1Y3RvcihlKXt0aGlzLmJ1ZmZlcj1lO3RoaXMudmlldz1uZXcgRGF0YVZpZXcoZSk7dGhpcy5kYXRhPW5ldyBVaW50OEFycmF5KGUpfXN0YXRpYyB3cml0ZShlKXtsZXQgdCxuPW51bGwsYT1bXSxyPVtdLHM9W10saT1bXSxvPW51bGwsbD1udWxsO3N3aXRjaChlWzBdKXtjYXNlIlJhZGlhbEF4aWFsIjp0PSJheGlhbCI9PT1lWzFdPzE6MjtuPWVbMl07cz1lWzNdOzE9PT10P2EucHVzaCguLi5lWzRdLC4uLmVbNV0pOmEucHVzaChlWzRdWzBdLGVbNF1bMV0sZVs2XSxlWzVdWzBdLGVbNV1bMV0sZVs3XSk7YnJlYWs7Y2FzZSJNZXNoIjp0PTM7bz1lWzFdO2E9ZVsyXTtyPWVbM107aT1lWzRdfHxbXTtuPWVbNl07bD1lWzddO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBwYXR0ZXJuIHR5cGU6ICR7ZVswXX1gKX1jb25zdCBmPU1hdGguZmxvb3IoYS5sZW5ndGgvMiksYz1NYXRoLmZsb29yKHIubGVuZ3RoLzMpLGg9cy5sZW5ndGgsdT1pLmxlbmd0aDtsZXQgbT0wO2Zvcihjb25zdCBlIG9mIGkpe20rPTE7bT00Kk1hdGguY2VpbChtLzQpO20rPTQrNCplLmNvb3Jkcy5sZW5ndGg7bSs9NCs0KmUuY29sb3JzLmxlbmd0aDt2b2lkIDAhPT1lLnZlcnRpY2VzUGVyUm93JiYobSs9NCl9Y29uc3QgcD1uZXcgQXJyYXlCdWZmZXIoMjArOCpmKzMqYys4KmgrKG4/MTY6MCkrKGw/MzowKSttKSxkPW5ldyBEYXRhVmlldyhwKSxnPW5ldyBVaW50OEFycmF5KHApO2Quc2V0VWludDgoUGF0dGVybkluZm8uI2VlLHQpO2Quc2V0VWludDgoUGF0dGVybkluZm8uI3RlLG4/MTowKTtkLnNldFVpbnQ4KFBhdHRlcm5JbmZvLiNuZSxsPzE6MCk7ZC5zZXRVaW50OChQYXR0ZXJuSW5mby4jYWUsbyk7ZC5zZXRVaW50MzIoUGF0dGVybkluZm8uI3JlLGYsITApO2Quc2V0VWludDMyKFBhdHRlcm5JbmZvLiNzZSxjLCEwKTtkLnNldFVpbnQzMihQYXR0ZXJuSW5mby4jaWUsaCwhMCk7ZC5zZXRVaW50MzIoUGF0dGVybkluZm8uI29lLHUsITApO2xldCBiPTIwO25ldyBGbG9hdDMyQXJyYXkocCxiLDIqZikuc2V0KGEpO2IrPTgqZjtnLnNldChyLGIpO2IrPTMqYztmb3IoY29uc3RbZSx0XW9mIHMpe2Quc2V0RmxvYXQzMihiLGUsITApO2IrPTQ7ZC5zZXRVaW50MzIoYixwYXJzZUludCh0LnNsaWNlKDEpLDE2KSwhMCk7Yis9NH1pZihuKWZvcihjb25zdCBlIG9mIG4pe2Quc2V0RmxvYXQzMihiLGUsITApO2IrPTR9aWYobCl7Zy5zZXQobCxiKTtiKz0zfWZvcihsZXQgZT0wO2U8aS5sZW5ndGg7ZSsrKXtjb25zdCB0PWlbZV07ZC5zZXRVaW50OChiLHQudHlwZSk7Yis9MTtiPTQqTWF0aC5jZWlsKGIvNCk7ZC5zZXRVaW50MzIoYix0LmNvb3Jkcy5sZW5ndGgsITApO2IrPTQ7bmV3IEludDMyQXJyYXkocCxiLHQuY29vcmRzLmxlbmd0aCkuc2V0KHQuY29vcmRzKTtiKz00KnQuY29vcmRzLmxlbmd0aDtkLnNldFVpbnQzMihiLHQuY29sb3JzLmxlbmd0aCwhMCk7Yis9NDtuZXcgSW50MzJBcnJheShwLGIsdC5jb2xvcnMubGVuZ3RoKS5zZXQodC5jb2xvcnMpO2IrPTQqdC5jb2xvcnMubGVuZ3RoO2lmKHZvaWQgMCE9PXQudmVydGljZXNQZXJSb3cpe2Quc2V0VWludDMyKGIsdC52ZXJ0aWNlc1BlclJvdywhMCk7Yis9NH19cmV0dXJuIHB9Z2V0SVIoKXtjb25zdCBlPXRoaXMudmlldyx0PXRoaXMuZGF0YVtQYXR0ZXJuSW5mby4jZWVdLG49ISF0aGlzLmRhdGFbUGF0dGVybkluZm8uI3RlXSxhPSEhdGhpcy5kYXRhW1BhdHRlcm5JbmZvLiNuZV0scj1lLmdldFVpbnQzMihQYXR0ZXJuSW5mby4jcmUsITApLHM9ZS5nZXRVaW50MzIoUGF0dGVybkluZm8uI3NlLCEwKSxpPWUuZ2V0VWludDMyKFBhdHRlcm5JbmZvLiNpZSwhMCksbz1lLmdldFVpbnQzMihQYXR0ZXJuSW5mby4jb2UsITApO2xldCBsPTIwO2NvbnN0IGY9bmV3IEZsb2F0MzJBcnJheSh0aGlzLmJ1ZmZlcixsLDIqcik7bCs9OCpyO2NvbnN0IGM9bmV3IFVpbnQ4QXJyYXkodGhpcy5idWZmZXIsbCwzKnMpO2wrPTMqcztjb25zdCBoPVtdO2ZvcihsZXQgdD0wO3Q8aTsrK3Qpe2NvbnN0IHQ9ZS5nZXRGbG9hdDMyKGwsITApO2wrPTQ7Y29uc3Qgbj1lLmdldFVpbnQzMihsLCEwKTtsKz00O2gucHVzaChbdCxgIyR7bi50b1N0cmluZygxNikucGFkU3RhcnQoNiwiMCIpfWBdKX1sZXQgdT1udWxsO2lmKG4pe3U9W107Zm9yKGxldCB0PTA7dDw0OysrdCl7dS5wdXNoKGUuZ2V0RmxvYXQzMihsLCEwKSk7bCs9NH19bGV0IG09bnVsbDtpZihhKXttPW5ldyBVaW50OEFycmF5KHRoaXMuYnVmZmVyLGwsMyk7bCs9M31jb25zdCBwPVtdO2ZvcihsZXQgdD0wO3Q8bzsrK3Qpe2NvbnN0IHQ9ZS5nZXRVaW50OChsKTtsKz0xO2w9NCpNYXRoLmNlaWwobC80KTtjb25zdCBuPWUuZ2V0VWludDMyKGwsITApO2wrPTQ7Y29uc3QgYT1uZXcgSW50MzJBcnJheSh0aGlzLmJ1ZmZlcixsLG4pO2wrPTQqbjtjb25zdCByPWUuZ2V0VWludDMyKGwsITApO2wrPTQ7Y29uc3Qgcz1uZXcgSW50MzJBcnJheSh0aGlzLmJ1ZmZlcixsLHIpO2wrPTQqcjtjb25zdCBpPXt0eXBlOnQsY29vcmRzOmEsY29sb3JzOnN9O2lmKHQ9PT12KXtpLnZlcnRpY2VzUGVyUm93PWUuZ2V0VWludDMyKGwsITApO2wrPTR9cC5wdXNoKGkpfWlmKDE9PT10KXJldHVyblsiUmFkaWFsQXhpYWwiLCJheGlhbCIsdSxoLEFycmF5LmZyb20oZi5zbGljZSgwLDIpKSxBcnJheS5mcm9tKGYuc2xpY2UoMiw0KSksbnVsbCxudWxsXTtpZigyPT09dClyZXR1cm5bIlJhZGlhbEF4aWFsIiwicmFkaWFsIix1LGgsW2ZbMF0sZlsxXV0sW2ZbM10sZls0XV0sZlsyXSxmWzVdXTtpZigzPT09dCl7Y29uc3QgZT10aGlzLmRhdGFbUGF0dGVybkluZm8uI2FlXTtsZXQgdD1udWxsO2lmKGYubGVuZ3RoPjApe2xldCBlPWZbMF0sbj1mWzBdLGE9ZlsxXSxyPWZbMV07Zm9yKGxldCB0PTA7dDxmLmxlbmd0aDt0Kz0yKXtjb25zdCBzPWZbdF0saT1mW3QrMV07ZT1lPnM/czplO2E9YT5pP2k6YTtuPW48cz9zOm47cj1yPGk/aTpyfXQ9W2UsYSxuLHJdfXJldHVyblsiTWVzaCIsZSxmLGMscCx0LHUsbV19dGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBwYXR0ZXJuIGtpbmQ6ICR7dH1gKX19Y2xhc3MgRm9udFBhdGhJbmZve3N0YXRpYyB3cml0ZShlKXtsZXQgdCxuO2lmKEZlYXR1cmVUZXN0LmlzRmxvYXQxNkFycmF5U3VwcG9ydGVkKXtuPW5ldyBBcnJheUJ1ZmZlcigyKmUubGVuZ3RoKTt0PW5ldyBGbG9hdDE2QXJyYXkobil9ZWxzZXtuPW5ldyBBcnJheUJ1ZmZlcig0KmUubGVuZ3RoKTt0PW5ldyBGbG9hdDMyQXJyYXkobil9dC5zZXQoZSk7cmV0dXJuIG59I1I7Y29uc3RydWN0b3IoZSl7dGhpcy4jUj1lfWdldCBwYXRoKCl7cmV0dXJuIEZlYXR1cmVUZXN0LmlzRmxvYXQxNkFycmF5U3VwcG9ydGVkP25ldyBGbG9hdDE2QXJyYXkodGhpcy4jUik6bmV3IEZsb2F0MzJBcnJheSh0aGlzLiNSKX19Y29uc3QgcHI9Mixkcj0zLGdyPTQsYnI9NSx3cj02LGpyPTc7Y2xhc3MgUGF0dGVybntjb25zdHJ1Y3Rvcigpe3VucmVhY2hhYmxlKCJDYW5ub3QgaW5pdGlhbGl6ZSBQYXR0ZXJuLiIpfXN0YXRpYyBwYXJzZVNoYWRpbmcoZSx0LG4sYSxyLHMpe2NvbnN0IGk9ZSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0/ZS5kaWN0OmUsbz1pLmdldCgiU2hhZGluZ1R5cGUiKTt0cnl7c3dpdGNoKG8pe2Nhc2UgcHI6Y2FzZSBkcjpyZXR1cm4gbmV3IFJhZGlhbEF4aWFsU2hhZGluZyhpLHQsbixhLHIscyk7Y2FzZSBncjpjYXNlIGJyOmNhc2Ugd3I6Y2FzZSBqcjpyZXR1cm4gbmV3IE1lc2hTaGFkaW5nKGUsdCxuLGEscixzKTtkZWZhdWx0OnRocm93IG5ldyBGb3JtYXRFcnJvcigiVW5zdXBwb3J0ZWQgU2hhZGluZ1R5cGU6ICIrbyl9fWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbil0aHJvdyBlO3dhcm4oZSk7cmV0dXJuIG5ldyBEdW1teVNoYWRpbmd9fX1jbGFzcyBCYXNlU2hhZGluZ3tzdGF0aWMgU01BTExfTlVNQkVSPTFlLTY7Z2V0SVIoKXt1bnJlYWNoYWJsZSgiQWJzdHJhY3QgbWV0aG9kIGBnZXRJUmAgY2FsbGVkLiIpfX1jbGFzcyBSYWRpYWxBeGlhbFNoYWRpbmcgZXh0ZW5kcyBCYXNlU2hhZGluZ3tjb25zdHJ1Y3RvcihlLHQsbixhLHIscyl7c3VwZXIoKTt0aGlzLnNoYWRpbmdUeXBlPWUuZ2V0KCJTaGFkaW5nVHlwZSIpO2xldCBpPTA7dGhpcy5zaGFkaW5nVHlwZT09PXByP2k9NDp0aGlzLnNoYWRpbmdUeXBlPT09ZHImJihpPTYpO3RoaXMuY29vcmRzQXJyPWUuZ2V0QXJyYXkoIkNvb3JkcyIpO2lmKCFpc051bWJlckFycmF5KHRoaXMuY29vcmRzQXJyLGkpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiUmFkaWFsQXhpYWxTaGFkaW5nOiBJbnZhbGlkIC9Db29yZHMgYXJyYXkuIik7Y29uc3Qgbz1Db2xvclNwYWNlVXRpbHMucGFyc2Uoe2NzOmUuZ2V0UmF3KCJDUyIpfHxlLmdldFJhdygiQ29sb3JTcGFjZSIpLHhyZWY6dCxyZXNvdXJjZXM6bixwZGZGdW5jdGlvbkZhY3Rvcnk6YSxnbG9iYWxDb2xvclNwYWNlQ2FjaGU6cixsb2NhbENvbG9yU3BhY2VDYWNoZTpzfSk7dGhpcy5iYm94PWxvb2t1cE5vcm1hbFJlY3QoZS5nZXRBcnJheSgiQkJveCIpLG51bGwpO2xldCBsPTAsZj0xO2NvbnN0IGM9ZS5nZXRBcnJheSgiRG9tYWluIik7aXNOdW1iZXJBcnJheShjLDIpJiYoW2wsZl09Yyk7bGV0IGg9ITEsdT0hMTtjb25zdCBtPWUuZ2V0QXJyYXkoIkV4dGVuZCIpOyhmdW5jdGlvbiBpc0Jvb2xlYW5BcnJheShlLHQpe3JldHVybiBBcnJheS5pc0FycmF5KGUpJiYobnVsbD09PXR8fGUubGVuZ3RoPT09dCkmJmUuZXZlcnkoZT0+ImJvb2xlYW4iPT10eXBlb2YgZSl9KShtLDIpJiYoW2gsdV09bSk7aWYoISh0aGlzLnNoYWRpbmdUeXBlIT09ZHJ8fGgmJnUpKXtjb25zdFtlLHQsbixhLHIsc109dGhpcy5jb29yZHNBcnIsaT1NYXRoLmh5cG90KGUtYSx0LXIpO248PXMraSYmczw9bitpJiZ3YXJuKCJVbnN1cHBvcnRlZCByYWRpYWwgZ3JhZGllbnQuIil9dGhpcy5leHRlbmRTdGFydD1oO3RoaXMuZXh0ZW5kRW5kPXU7Y29uc3QgcD1lLmdldFJhdygiRnVuY3Rpb24iKSxkPWEuY3JlYXRlKHAsITApLGc9KGYtbCkvODQwLGI9dGhpcy5jb2xvclN0b3BzPVtdO2lmKGw+PWZ8fGc8PTApe2luZm8oIkJhZCBzaGFkaW5nIGRvbWFpbi4iKTtyZXR1cm59Y29uc3Qgdz1uZXcgRmxvYXQzMkFycmF5KG8ubnVtQ29tcHMpLGo9bmV3IEZsb2F0MzJBcnJheSgxKTtsZXQgaz0wO2pbMF09bDtkKGosMCx3LDApO2NvbnN0IHk9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDMpO28uZ2V0UmdiKHcsMCx5KTtsZXRbcSx2LFNdPXk7Yi5wdXNoKFswLFV0aWwubWFrZUhleENvbG9yKHEsdixTKV0pO2xldCB4PTE7alswXT1sK2c7ZChqLDAsdywwKTtvLmdldFJnYih3LDAseSk7bGV0W0MsVCxPXT15LFI9Qy1xKzEsSD1ULXYrMSxEPU8tUysxLE09Qy1xLTEsRT1ULXYtMSxOPU8tUy0xO2ZvcihsZXQgZT0yO2U8ODQwO2UrKyl7alswXT1sK2UqZztkKGosMCx3LDApO28uZ2V0UmdiKHcsMCx5KTtjb25zdFt0LG4sYV09eSxyPWUtaztSPU1hdGgubWluKFIsKHQtcSsxKS9yKTtIPU1hdGgubWluKEgsKG4tdisxKS9yKTtEPU1hdGgubWluKEQsKGEtUysxKS9yKTtNPU1hdGgubWF4KE0sKHQtcS0xKS9yKTtFPU1hdGgubWF4KEUsKG4tdi0xKS9yKTtOPU1hdGgubWF4KE4sKGEtUy0xKS9yKTtpZighKE08PVImJkU8PUgmJk48PUQpKXtjb25zdCBlPVV0aWwubWFrZUhleENvbG9yKEMsVCxPKTtiLnB1c2goW3gvODQwLGVdKTtSPXQtQysxO0g9bi1UKzE7RD1hLU8rMTtNPXQtQy0xO0U9bi1ULTE7Tj1hLU8tMTtrPXg7cT1DO3Y9VDtTPU99eD1lO0M9dDtUPW47Tz1hfWIucHVzaChbMSxVdGlsLm1ha2VIZXhDb2xvcihDLFQsTyldKTtsZXQgej0idHJhbnNwYXJlbnQiO2UuaGFzKCJCYWNrZ3JvdW5kIikmJih6PW8uZ2V0UmdiSGV4KGUuZ2V0KCJCYWNrZ3JvdW5kIiksMCkpO2lmKCFoKXtiLnVuc2hpZnQoWzAsel0pO2JbMV1bMF0rPUJhc2VTaGFkaW5nLlNNQUxMX05VTUJFUn1pZighdSl7Yi5hdCgtMSlbMF0tPUJhc2VTaGFkaW5nLlNNQUxMX05VTUJFUjtiLnB1c2goWzEsel0pfXRoaXMuY29sb3JTdG9wcz1ifWdldElSKCl7Y29uc3R7Y29vcmRzQXJyOmUsc2hhZGluZ1R5cGU6dH09dGhpcztsZXQgbixhLHIscyxpO2lmKHQ9PT1wcil7YT1bZVswXSxlWzFdXTtyPVtlWzJdLGVbM11dO3M9bnVsbDtpPW51bGw7bj0iYXhpYWwifWVsc2UgaWYodD09PWRyKXthPVtlWzBdLGVbMV1dO3I9W2VbM10sZVs0XV07cz1lWzJdO2k9ZVs1XTtuPSJyYWRpYWwifWVsc2UgdW5yZWFjaGFibGUoYGdldFBhdHRlcm4gdHlwZSB1bmtub3duOiAke3R9YCk7cmV0dXJuWyJSYWRpYWxBeGlhbCIsbix0aGlzLmJib3gsdGhpcy5jb2xvclN0b3BzLGEscixzLGldfX1jbGFzcyBNZXNoU3RyZWFtUmVhZGVye2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5zdHJlYW09ZTt0aGlzLmNvbnRleHQ9dDt0aGlzLmJ1ZmZlcj0wO3RoaXMuYnVmZmVyTGVuZ3RoPTA7Y29uc3Qgbj10Lm51bUNvbXBzO3RoaXMudG1wQ29tcHNCdWY9bmV3IEZsb2F0MzJBcnJheShuKTtjb25zdCBhPXQuY29sb3JTcGFjZS5udW1Db21wczt0aGlzLnRtcENzQ29tcHNCdWY9dC5jb2xvckZuP25ldyBGbG9hdDMyQXJyYXkoYSk6dGhpcy50bXBDb21wc0J1Zn1nZXQgaGFzRGF0YSgpe2lmKHRoaXMuc3RyZWFtLmVuZClyZXR1cm4gdGhpcy5zdHJlYW0ucG9zPHRoaXMuc3RyZWFtLmVuZDtpZih0aGlzLmJ1ZmZlckxlbmd0aD4wKXJldHVybiEwO2NvbnN0IGU9dGhpcy5zdHJlYW0uZ2V0Qnl0ZSgpO2lmKGU8MClyZXR1cm4hMTt0aGlzLmJ1ZmZlcj1lO3RoaXMuYnVmZmVyTGVuZ3RoPTg7cmV0dXJuITB9cmVhZEJpdHMoZSl7Y29uc3R7c3RyZWFtOnR9PXRoaXM7bGV0e2J1ZmZlcjpuLGJ1ZmZlckxlbmd0aDphfT10aGlzO2lmKDMyPT09ZSl7aWYoMD09PWEpcmV0dXJuIHQuZ2V0SW50MzIoKT4+PjA7bj1uPDwyNHx0LmdldEJ5dGUoKTw8MTZ8dC5nZXRCeXRlKCk8PDh8dC5nZXRCeXRlKCk7Y29uc3QgZT10LmdldEJ5dGUoKTt0aGlzLmJ1ZmZlcj1lJigxPDxhKS0xO3JldHVybihuPDw4LWF8KDI1NSZlKT4+YSk+Pj4wfWlmKDg9PT1lJiYwPT09YSlyZXR1cm4gdC5nZXRCeXRlKCk7Zm9yKDthPGU7KXtuPW48PDh8dC5nZXRCeXRlKCk7YSs9OH1hLT1lO3RoaXMuYnVmZmVyTGVuZ3RoPWE7dGhpcy5idWZmZXI9biYoMTw8YSktMTtyZXR1cm4gbj4+YX1hbGlnbigpe3RoaXMuYnVmZmVyPTA7dGhpcy5idWZmZXJMZW5ndGg9MH1yZWFkRmxhZygpe3JldHVybiB0aGlzLnJlYWRCaXRzKHRoaXMuY29udGV4dC5iaXRzUGVyRmxhZyl9cmVhZENvb3JkaW5hdGUoKXtjb25zdHtiaXRzUGVyQ29vcmRpbmF0ZTplLGRlY29kZTp0fT10aGlzLmNvbnRleHQsbj10aGlzLnJlYWRCaXRzKGUpLGE9dGhpcy5yZWFkQml0cyhlKSxyPWU8MzI/MS8oKDE8PGUpLTEpOjIuMzI4MzA2NDM2NTM4Njk2M2UtMTA7cmV0dXJuW24qcioodFsxXS10WzBdKSt0WzBdLGEqcioodFszXS10WzJdKSt0WzJdXX1yZWFkQ29tcG9uZW50cygpe2NvbnN0e2JpdHNQZXJDb21wb25lbnQ6ZSxjb2xvckZuOnQsY29sb3JTcGFjZTpuLGRlY29kZTphLG51bUNvbXBzOnJ9PXRoaXMuY29udGV4dCxzPWU8MzI/MS8oKDE8PGUpLTEpOjIuMzI4MzA2NDM2NTM4Njk2M2UtMTAsaT10aGlzLnRtcENvbXBzQnVmO2ZvcihsZXQgdD0wLG49NDt0PHI7dCsrLG4rPTIpe2NvbnN0IHI9dGhpcy5yZWFkQml0cyhlKTtpW3RdPXIqcyooYVtuKzFdLWFbbl0pK2Fbbl19Y29uc3Qgbz10aGlzLnRtcENzQ29tcHNCdWY7dD8uKGksMCxvLDApO3JldHVybiBuLmdldFJnYihvLDApfX1sZXQga3I9T2JqZWN0LmNyZWF0ZShudWxsKTtmdW5jdGlvbiBnZXRCKGUpe3JldHVybiBrcltlXXx8PWZ1bmN0aW9uIGJ1aWxkQihlKXtjb25zdCB0PVtdO2ZvcihsZXQgbj0wO248PWU7bisrKXtjb25zdCBhPW4vZSxyPTEtYTt0LnB1c2gobmV3IEZsb2F0MzJBcnJheShbcioqMywzKmEqcioqMiwzKmEqKjIqcixhKiozXSkpfXJldHVybiB0fShlKX1jbGFzcyBNZXNoU2hhZGluZyBleHRlbmRzIEJhc2VTaGFkaW5ne3N0YXRpYyBNSU5fU1BMSVRfUEFUQ0hfQ0hVTktTX0FNT1VOVD0zO3N0YXRpYyBNQVhfU1BMSVRfUEFUQ0hfQ0hVTktTX0FNT1VOVD0yMDtzdGF0aWMgVFJJQU5HTEVfREVOU0lUWT0yMDtjb25zdHJ1Y3RvcihlLHQsbixhLHIscyl7c3VwZXIoKTtpZighKGUgaW5zdGFuY2VvZiBCYXNlU3RyZWFtKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIk1lc2ggZGF0YSBpcyBub3QgYSBzdHJlYW0iKTtjb25zdCBpPWUuZGljdDt0aGlzLnNoYWRpbmdUeXBlPWkuZ2V0KCJTaGFkaW5nVHlwZSIpO3RoaXMuYmJveD1sb29rdXBOb3JtYWxSZWN0KGkuZ2V0QXJyYXkoIkJCb3giKSxudWxsKTtjb25zdCBvPUNvbG9yU3BhY2VVdGlscy5wYXJzZSh7Y3M6aS5nZXRSYXcoIkNTIil8fGkuZ2V0UmF3KCJDb2xvclNwYWNlIikseHJlZjp0LHJlc291cmNlczpuLHBkZkZ1bmN0aW9uRmFjdG9yeTphLGdsb2JhbENvbG9yU3BhY2VDYWNoZTpyLGxvY2FsQ29sb3JTcGFjZUNhY2hlOnN9KTt0aGlzLmJhY2tncm91bmQ9aS5oYXMoIkJhY2tncm91bmQiKT9vLmdldFJnYihpLmdldCgiQmFja2dyb3VuZCIpLDApOm51bGw7Y29uc3QgbD1pLmdldFJhdygiRnVuY3Rpb24iKSxmPWw/YS5jcmVhdGUobCwhMCk6bnVsbDt0aGlzLmNvb3Jkcz1bXTt0aGlzLmNvbG9ycz1bXTt0aGlzLmZpZ3VyZXM9W107Y29uc3QgYz17Yml0c1BlckNvb3JkaW5hdGU6aS5nZXQoIkJpdHNQZXJDb29yZGluYXRlIiksYml0c1BlckNvbXBvbmVudDppLmdldCgiQml0c1BlckNvbXBvbmVudCIpLGJpdHNQZXJGbGFnOmkuZ2V0KCJCaXRzUGVyRmxhZyIpLGRlY29kZTppLmdldEFycmF5KCJEZWNvZGUiKSxjb2xvckZuOmYsY29sb3JTcGFjZTpvLG51bUNvbXBzOmY/MTpvLm51bUNvbXBzfSxoPW5ldyBNZXNoU3RyZWFtUmVhZGVyKGUsYyk7bGV0IHU9ITE7c3dpdGNoKHRoaXMuc2hhZGluZ1R5cGUpe2Nhc2UgZ3I6dGhpcy5fZGVjb2RlVHlwZTRTaGFkaW5nKGgpO2JyZWFrO2Nhc2UgYnI6Y29uc3QgZT0wfGkuZ2V0KCJWZXJ0aWNlc1BlclJvdyIpO2lmKGU8Mil0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgVmVydGljZXNQZXJSb3ciKTt0aGlzLl9kZWNvZGVUeXBlNVNoYWRpbmcoaCxlKTticmVhaztjYXNlIHdyOnRoaXMuX2RlY29kZVR5cGU2U2hhZGluZyhoKTt1PSEwO2JyZWFrO2Nhc2UganI6dGhpcy5fZGVjb2RlVHlwZTdTaGFkaW5nKGgpO3U9ITA7YnJlYWs7ZGVmYXVsdDp1bnJlYWNoYWJsZSgiVW5zdXBwb3J0ZWQgbWVzaCB0eXBlLiIpfWlmKHUpe3RoaXMuX3VwZGF0ZUJvdW5kcygpO2ZvcihsZXQgZT0wLHQ9dGhpcy5maWd1cmVzLmxlbmd0aDtlPHQ7ZSsrKXRoaXMuX2J1aWxkRmlndXJlRnJvbVBhdGNoKGUpfXRoaXMuX3VwZGF0ZUJvdW5kcygpO3RoaXMuX3BhY2tEYXRhKCl9X2RlY29kZVR5cGU0U2hhZGluZyhlKXtjb25zdCB0PXRoaXMuY29vcmRzLG49dGhpcy5jb2xvcnMsYT1bXSxyPVtdO2xldCBzPTA7Zm9yKDtlLmhhc0RhdGE7KXtjb25zdCBpPWUucmVhZEZsYWcoKSxvPWUucmVhZENvb3JkaW5hdGUoKSxsPWUucmVhZENvbXBvbmVudHMoKTtpZigwPT09cyl7aWYoISgwPD1pJiZpPD0yKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlVua25vd24gdHlwZTQgZmxhZyIpO3N3aXRjaChpKXtjYXNlIDA6cz0zO2JyZWFrO2Nhc2UgMTpyLnB1c2goci5hdCgtMiksci5hdCgtMSkpO3M9MTticmVhaztjYXNlIDI6ci5wdXNoKHIuYXQoLTMpLHIuYXQoLTEpKTtzPTF9YS5wdXNoKGkpfXIucHVzaCh0Lmxlbmd0aCk7dC5wdXNoKG8pO24ucHVzaChsKTtzLS07ZS5hbGlnbigpfXRoaXMuZmlndXJlcy5wdXNoKHt0eXBlOnEsY29vcmRzOm5ldyBJbnQzMkFycmF5KHIpLGNvbG9yczpuZXcgSW50MzJBcnJheShyKX0pfV9kZWNvZGVUeXBlNVNoYWRpbmcoZSx0KXtjb25zdCBuPXRoaXMuY29vcmRzLGE9dGhpcy5jb2xvcnMscj1bXTtmb3IoO2UuaGFzRGF0YTspe2NvbnN0IHQ9ZS5yZWFkQ29vcmRpbmF0ZSgpLHM9ZS5yZWFkQ29tcG9uZW50cygpO3IucHVzaChuLmxlbmd0aCk7bi5wdXNoKHQpO2EucHVzaChzKX10aGlzLmZpZ3VyZXMucHVzaCh7dHlwZTp2LGNvb3JkczpuZXcgSW50MzJBcnJheShyKSxjb2xvcnM6bmV3IEludDMyQXJyYXkociksdmVydGljZXNQZXJSb3c6dH0pfV9kZWNvZGVUeXBlNlNoYWRpbmcoZSl7Y29uc3QgdD10aGlzLmNvb3JkcyxuPXRoaXMuY29sb3JzLGE9bmV3IEludDMyQXJyYXkoMTYpLHI9bmV3IEludDMyQXJyYXkoNCk7Zm9yKDtlLmhhc0RhdGE7KXtjb25zdCBzPWUucmVhZEZsYWcoKTtpZighKDA8PXMmJnM8PTMpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiVW5rbm93biB0eXBlNiBmbGFnIik7Y29uc3QgaT10Lmxlbmd0aDtmb3IobGV0IG49MCxhPTAhPT1zPzg6MTI7bjxhO24rKyl0LnB1c2goZS5yZWFkQ29vcmRpbmF0ZSgpKTtjb25zdCBvPW4ubGVuZ3RoO2ZvcihsZXQgdD0wLGE9MCE9PXM/Mjo0O3Q8YTt0Kyspbi5wdXNoKGUucmVhZENvbXBvbmVudHMoKSk7bGV0IGwsZixjLGg7c3dpdGNoKHMpe2Nhc2UgMDphWzEyXT1pKzM7YVsxM109aSs0O2FbMTRdPWkrNTthWzE1XT1pKzY7YVs4XT1pKzI7YVsxMV09aSs3O2FbNF09aSsxO2FbN109aSs4O2FbMF09aTthWzFdPWkrMTE7YVsyXT1pKzEwO2FbM109aSs5O3JbMl09bysxO3JbM109bysyO3JbMF09bztyWzFdPW8rMzticmVhaztjYXNlIDE6bD1hWzEyXTtmPWFbMTNdO2M9YVsxNF07aD1hWzE1XTthWzEyXT1oO2FbMTNdPWkrMDthWzE0XT1pKzE7YVsxNV09aSsyO2FbOF09YzthWzExXT1pKzM7YVs0XT1mO2FbN109aSs0O2FbMF09bDthWzFdPWkrNzthWzJdPWkrNjthWzNdPWkrNTtsPXJbMl07Zj1yWzNdO3JbMl09ZjtyWzNdPW87clswXT1sO3JbMV09bysxO2JyZWFrO2Nhc2UgMjpsPWFbMTVdO2Y9YVsxMV07YVsxMl09YVszXTthWzEzXT1pKzA7YVsxNF09aSsxO2FbMTVdPWkrMjthWzhdPWFbN107YVsxMV09aSszO2FbNF09ZjthWzddPWkrNDthWzBdPWw7YVsxXT1pKzc7YVsyXT1pKzY7YVszXT1pKzU7bD1yWzNdO3JbMl09clsxXTtyWzNdPW87clswXT1sO3JbMV09bysxO2JyZWFrO2Nhc2UgMzphWzEyXT1hWzBdO2FbMTNdPWkrMDthWzE0XT1pKzE7YVsxNV09aSsyO2FbOF09YVsxXTthWzExXT1pKzM7YVs0XT1hWzJdO2FbN109aSs0O2FbMF09YVszXTthWzFdPWkrNzthWzJdPWkrNjthWzNdPWkrNTtyWzJdPXJbMF07clszXT1vO3JbMF09clsxXTtyWzFdPW8rMX1hWzVdPXQubGVuZ3RoO3QucHVzaChbKC00KnRbYVswXV1bMF0tdFthWzE1XV1bMF0rNioodFthWzRdXVswXSt0W2FbMV1dWzBdKS0yKih0W2FbMTJdXVswXSt0W2FbM11dWzBdKSszKih0W2FbMTNdXVswXSt0W2FbN11dWzBdKSkvOSwoLTQqdFthWzBdXVsxXS10W2FbMTVdXVsxXSs2Kih0W2FbNF1dWzFdK3RbYVsxXV1bMV0pLTIqKHRbYVsxMl1dWzFdK3RbYVszXV1bMV0pKzMqKHRbYVsxM11dWzFdK3RbYVs3XV1bMV0pKS85XSk7YVs2XT10Lmxlbmd0aDt0LnB1c2goWygtNCp0W2FbM11dWzBdLXRbYVsxMl1dWzBdKzYqKHRbYVsyXV1bMF0rdFthWzddXVswXSktMioodFthWzBdXVswXSt0W2FbMTVdXVswXSkrMyoodFthWzRdXVswXSt0W2FbMTRdXVswXSkpLzksKC00KnRbYVszXV1bMV0tdFthWzEyXV1bMV0rNioodFthWzJdXVsxXSt0W2FbN11dWzFdKS0yKih0W2FbMF1dWzFdK3RbYVsxNV1dWzFdKSszKih0W2FbNF1dWzFdK3RbYVsxNF1dWzFdKSkvOV0pO2FbOV09dC5sZW5ndGg7dC5wdXNoKFsoLTQqdFthWzEyXV1bMF0tdFthWzNdXVswXSs2Kih0W2FbOF1dWzBdK3RbYVsxM11dWzBdKS0yKih0W2FbMF1dWzBdK3RbYVsxNV1dWzBdKSszKih0W2FbMTFdXVswXSt0W2FbMV1dWzBdKSkvOSwoLTQqdFthWzEyXV1bMV0tdFthWzNdXVsxXSs2Kih0W2FbOF1dWzFdK3RbYVsxM11dWzFdKS0yKih0W2FbMF1dWzFdK3RbYVsxNV1dWzFdKSszKih0W2FbMTFdXVsxXSt0W2FbMV1dWzFdKSkvOV0pO2FbMTBdPXQubGVuZ3RoO3QucHVzaChbKC00KnRbYVsxNV1dWzBdLXRbYVswXV1bMF0rNioodFthWzExXV1bMF0rdFthWzE0XV1bMF0pLTIqKHRbYVsxMl1dWzBdK3RbYVszXV1bMF0pKzMqKHRbYVsyXV1bMF0rdFthWzhdXVswXSkpLzksKC00KnRbYVsxNV1dWzFdLXRbYVswXV1bMV0rNioodFthWzExXV1bMV0rdFthWzE0XV1bMV0pLTIqKHRbYVsxMl1dWzFdK3RbYVszXV1bMV0pKzMqKHRbYVsyXV1bMV0rdFthWzhdXVsxXSkpLzldKTt0aGlzLmZpZ3VyZXMucHVzaCh7dHlwZTpTLGNvb3JkczpuZXcgSW50MzJBcnJheShhKSxjb2xvcnM6bmV3IEludDMyQXJyYXkocil9KX19X2RlY29kZVR5cGU3U2hhZGluZyhlKXtjb25zdCB0PXRoaXMuY29vcmRzLG49dGhpcy5jb2xvcnMsYT1uZXcgSW50MzJBcnJheSgxNikscj1uZXcgSW50MzJBcnJheSg0KTtmb3IoO2UuaGFzRGF0YTspe2NvbnN0IHM9ZS5yZWFkRmxhZygpO2lmKCEoMDw9cyYmczw9MykpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJVbmtub3duIHR5cGU3IGZsYWciKTtjb25zdCBpPXQubGVuZ3RoO2ZvcihsZXQgbj0wLGE9MCE9PXM/MTI6MTY7bjxhO24rKyl0LnB1c2goZS5yZWFkQ29vcmRpbmF0ZSgpKTtjb25zdCBvPW4ubGVuZ3RoO2ZvcihsZXQgdD0wLGE9MCE9PXM/Mjo0O3Q8YTt0Kyspbi5wdXNoKGUucmVhZENvbXBvbmVudHMoKSk7bGV0IGwsZixjLGg7c3dpdGNoKHMpe2Nhc2UgMDphWzEyXT1pKzM7YVsxM109aSs0O2FbMTRdPWkrNTthWzE1XT1pKzY7YVs4XT1pKzI7YVs5XT1pKzEzO2FbMTBdPWkrMTQ7YVsxMV09aSs3O2FbNF09aSsxO2FbNV09aSsxMjthWzZdPWkrMTU7YVs3XT1pKzg7YVswXT1pO2FbMV09aSsxMTthWzJdPWkrMTA7YVszXT1pKzk7clsyXT1vKzE7clszXT1vKzI7clswXT1vO3JbMV09byszO2JyZWFrO2Nhc2UgMTpsPWFbMTJdO2Y9YVsxM107Yz1hWzE0XTtoPWFbMTVdO2FbMTJdPWg7YVsxM109aSswO2FbMTRdPWkrMTthWzE1XT1pKzI7YVs4XT1jO2FbOV09aSs5O2FbMTBdPWkrMTA7YVsxMV09aSszO2FbNF09ZjthWzVdPWkrODthWzZdPWkrMTE7YVs3XT1pKzQ7YVswXT1sO2FbMV09aSs3O2FbMl09aSs2O2FbM109aSs1O2w9clsyXTtmPXJbM107clsyXT1mO3JbM109bztyWzBdPWw7clsxXT1vKzE7YnJlYWs7Y2FzZSAyOmw9YVsxNV07Zj1hWzExXTthWzEyXT1hWzNdO2FbMTNdPWkrMDthWzE0XT1pKzE7YVsxNV09aSsyO2FbOF09YVs3XTthWzldPWkrOTthWzEwXT1pKzEwO2FbMTFdPWkrMzthWzRdPWY7YVs1XT1pKzg7YVs2XT1pKzExO2FbN109aSs0O2FbMF09bDthWzFdPWkrNzthWzJdPWkrNjthWzNdPWkrNTtsPXJbM107clsyXT1yWzFdO3JbM109bztyWzBdPWw7clsxXT1vKzE7YnJlYWs7Y2FzZSAzOmFbMTJdPWFbMF07YVsxM109aSswO2FbMTRdPWkrMTthWzE1XT1pKzI7YVs4XT1hWzFdO2FbOV09aSs5O2FbMTBdPWkrMTA7YVsxMV09aSszO2FbNF09YVsyXTthWzVdPWkrODthWzZdPWkrMTE7YVs3XT1pKzQ7YVswXT1hWzNdO2FbMV09aSs3O2FbMl09aSs2O2FbM109aSs1O3JbMl09clswXTtyWzNdPW87clswXT1yWzFdO3JbMV09bysxfXRoaXMuZmlndXJlcy5wdXNoKHt0eXBlOlMsY29vcmRzOm5ldyBJbnQzMkFycmF5KGEpLGNvbG9yczpuZXcgSW50MzJBcnJheShyKX0pfX1fYnVpbGRGaWd1cmVGcm9tUGF0Y2goZSl7Y29uc3QgdD10aGlzLmZpZ3VyZXNbZV07YXNzZXJ0KHQudHlwZT09PVMsIlVuZXhwZWN0ZWQgcGF0Y2ggbWVzaCBmaWd1cmUiKTtjb25zdCBuPXRoaXMuY29vcmRzLGE9dGhpcy5jb2xvcnMscj10LmNvb3JkcyxzPXQuY29sb3JzLGk9TWF0aC5taW4obltyWzBdXVswXSxuW3JbM11dWzBdLG5bclsxMl1dWzBdLG5bclsxNV1dWzBdKSxvPU1hdGgubWluKG5bclswXV1bMV0sbltyWzNdXVsxXSxuW3JbMTJdXVsxXSxuW3JbMTVdXVsxXSksbD1NYXRoLm1heChuW3JbMF1dWzBdLG5bclszXV1bMF0sbltyWzEyXV1bMF0sbltyWzE1XV1bMF0pLGY9TWF0aC5tYXgobltyWzBdXVsxXSxuW3JbM11dWzFdLG5bclsxMl1dWzFdLG5bclsxNV1dWzFdKTtsZXQgYz1NYXRoLmNlaWwoKGwtaSkqTWVzaFNoYWRpbmcuVFJJQU5HTEVfREVOU0lUWS8odGhpcy5ib3VuZHNbMl0tdGhpcy5ib3VuZHNbMF0pKTtjPU1hdGhDbGFtcChjLE1lc2hTaGFkaW5nLk1JTl9TUExJVF9QQVRDSF9DSFVOS1NfQU1PVU5ULE1lc2hTaGFkaW5nLk1BWF9TUExJVF9QQVRDSF9DSFVOS1NfQU1PVU5UKTtsZXQgaD1NYXRoLmNlaWwoKGYtbykqTWVzaFNoYWRpbmcuVFJJQU5HTEVfREVOU0lUWS8odGhpcy5ib3VuZHNbM10tdGhpcy5ib3VuZHNbMV0pKTtoPU1hdGhDbGFtcChoLE1lc2hTaGFkaW5nLk1JTl9TUExJVF9QQVRDSF9DSFVOS1NfQU1PVU5ULE1lc2hTaGFkaW5nLk1BWF9TUExJVF9QQVRDSF9DSFVOS1NfQU1PVU5UKTtjb25zdCB1PWMrMSxtPW5ldyBJbnQzMkFycmF5KChoKzEpKnUpLHA9bmV3IEludDMyQXJyYXkoKGgrMSkqdSk7bGV0IGQ9MDtjb25zdCBnPW5ldyBVaW50OEFycmF5KDMpLGI9bmV3IFVpbnQ4QXJyYXkoMyksdz1hW3NbMF1dLGo9YVtzWzFdXSxrPWFbc1syXV0seT1hW3NbM11dLHE9Z2V0QihoKSx4PWdldEIoYyk7Zm9yKGxldCBlPTA7ZTw9aDtlKyspe2dbMF09KHdbMF0qKGgtZSkra1swXSplKS9ofDA7Z1sxXT0od1sxXSooaC1lKStrWzFdKmUpL2h8MDtnWzJdPSh3WzJdKihoLWUpK2tbMl0qZSkvaHwwO2JbMF09KGpbMF0qKGgtZSkreVswXSplKS9ofDA7YlsxXT0oalsxXSooaC1lKSt5WzFdKmUpL2h8MDtiWzJdPShqWzJdKihoLWUpK3lbMl0qZSkvaHwwO2ZvcihsZXQgdD0wO3Q8PWM7dCsrLGQrKyl7aWYoISgwIT09ZSYmZSE9PWh8fDAhPT10JiZ0IT09YykpY29udGludWU7bGV0IHM9MCxpPTAsbz0wO2ZvcihsZXQgYT0wO2E8PTM7YSsrKWZvcihsZXQgbD0wO2w8PTM7bCsrLG8rKyl7Y29uc3QgZj1xW2VdW2FdKnhbdF1bbF07cys9bltyW29dXVswXSpmO2krPW5bcltvXV1bMV0qZn1tW2RdPW4ubGVuZ3RoO24ucHVzaChbcyxpXSk7cFtkXT1hLmxlbmd0aDtjb25zdCBsPW5ldyBVaW50OEFycmF5KDMpO2xbMF09KGdbMF0qKGMtdCkrYlswXSp0KS9jfDA7bFsxXT0oZ1sxXSooYy10KStiWzFdKnQpL2N8MDtsWzJdPShnWzJdKihjLXQpK2JbMl0qdCkvY3wwO2EucHVzaChsKX19bVswXT1yWzBdO3BbMF09c1swXTttW2NdPXJbM107cFtjXT1zWzFdO21bdSpoXT1yWzEyXTtwW3UqaF09c1syXTttW3UqaCtjXT1yWzE1XTtwW3UqaCtjXT1zWzNdO3RoaXMuZmlndXJlc1tlXT17dHlwZTp2LGNvb3JkczptLGNvbG9yczpwLHZlcnRpY2VzUGVyUm93OnV9fV91cGRhdGVCb3VuZHMoKXtsZXQgZT10aGlzLmNvb3Jkc1swXVswXSx0PXRoaXMuY29vcmRzWzBdWzFdLG49ZSxhPXQ7Zm9yKGxldCByPTEscz10aGlzLmNvb3Jkcy5sZW5ndGg7cjxzO3IrKyl7Y29uc3Qgcz10aGlzLmNvb3Jkc1tyXVswXSxpPXRoaXMuY29vcmRzW3JdWzFdO2U9ZT5zP3M6ZTt0PXQ+aT9pOnQ7bj1uPHM/czpuO2E9YTxpP2k6YX10aGlzLmJvdW5kcz1bZSx0LG4sYV19X3BhY2tEYXRhKCl7bGV0IGUsdCxuLGE7Y29uc3Qgcj10aGlzLmNvb3JkcyxzPW5ldyBGbG9hdDMyQXJyYXkoMipyLmxlbmd0aCk7Zm9yKGU9MCxuPTAsdD1yLmxlbmd0aDtlPHQ7ZSsrKXtjb25zdCB0PXJbZV07c1tuKytdPXRbMF07c1tuKytdPXRbMV19dGhpcy5jb29yZHM9cztjb25zdCBpPXRoaXMuY29sb3JzLG89bmV3IFVpbnQ4QXJyYXkoMyppLmxlbmd0aCk7Zm9yKGU9MCxuPTAsdD1pLmxlbmd0aDtlPHQ7ZSsrKXtjb25zdCB0PWlbZV07b1tuKytdPXRbMF07b1tuKytdPXRbMV07b1tuKytdPXRbMl19dGhpcy5jb2xvcnM9bztjb25zdCBsPXRoaXMuZmlndXJlcztmb3IoZT0wLHQ9bC5sZW5ndGg7ZTx0O2UrKyl7Y29uc3QgdD1sW2VdLHI9dC5jb29yZHMscz10LmNvbG9ycztmb3Iobj0wLGE9ci5sZW5ndGg7bjxhO24rKyl7cltuXSo9MjtzW25dKj0zfX19Z2V0SVIoKXtjb25zdHtib3VuZHM6ZX09dGhpcztpZihlWzJdLWVbMF09PT0wfHxlWzNdLWVbMV09PT0wKXRocm93IG5ldyBGb3JtYXRFcnJvcihgSW52YWxpZCBNZXNoU2hhZGluZyBib3VuZHM6IFske2V9XS5gKTtyZXR1cm5bIk1lc2giLHRoaXMuc2hhZGluZ1R5cGUsdGhpcy5jb29yZHMsdGhpcy5jb2xvcnMsdGhpcy5maWd1cmVzLGUsdGhpcy5iYm94LHRoaXMuYmFja2dyb3VuZF19fWNsYXNzIER1bW15U2hhZGluZyBleHRlbmRzIEJhc2VTaGFkaW5ne2dldElSKCl7cmV0dXJuWyJEdW1teSJdfX1mdW5jdGlvbiBnZXRUaWxpbmdQYXR0ZXJuSVIoZSx0LG4pe2NvbnN0IGE9bG9va3VwTWF0cml4KHQuZ2V0QXJyYXkoIk1hdHJpeCIpLHduKSxyPWxvb2t1cE5vcm1hbFJlY3QodC5nZXRBcnJheSgiQkJveCIpLG51bGwpO2lmKCFyfHxyWzJdLXJbMF09PT0wfHxyWzNdLXJbMV09PT0wKXRocm93IG5ldyBGb3JtYXRFcnJvcigiSW52YWxpZCBnZXRUaWxpbmdQYXR0ZXJuSVIgL0JCb3ggYXJyYXkuIik7Y29uc3Qgcz10LmdldCgiWFN0ZXAiKTtpZigibnVtYmVyIiE9dHlwZW9mIHMpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJJbnZhbGlkIGdldFRpbGluZ1BhdHRlcm5JUiAvWFN0ZXAgdmFsdWUuIik7Y29uc3QgaT10LmdldCgiWVN0ZXAiKTtpZigibnVtYmVyIiE9dHlwZW9mIGkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJJbnZhbGlkIGdldFRpbGluZ1BhdHRlcm5JUiAvWVN0ZXAgdmFsdWUuIik7Y29uc3Qgbz10LmdldCgiUGFpbnRUeXBlIik7aWYoIU51bWJlci5pc0ludGVnZXIobykpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJJbnZhbGlkIGdldFRpbGluZ1BhdHRlcm5JUiAvUGFpbnRUeXBlIHZhbHVlLiIpO2NvbnN0IGw9dC5nZXQoIlRpbGluZ1R5cGUiKTtpZighTnVtYmVyLmlzSW50ZWdlcihsKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgZ2V0VGlsaW5nUGF0dGVybklSIC9UaWxpbmdUeXBlIHZhbHVlLiIpO3JldHVyblsiVGlsaW5nUGF0dGVybiIsbixlLGEscixzLGksbyxsXX1jb25zdCB5cj1bMS4zODc3LDEsMSwxLC45NzgwMSwuOTI0ODIsLjg5NTUyLC45MTEzMywuODE5ODgsLjk3NTY2LC45ODE1MiwuOTM1NDgsLjkzNTQ4LDEuMjc5OCwuODUyODQsLjkyNzk0LDEsLjk2MTM0LDEuNTQ2NTcsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC44Mjg0NSwuODI4NDUsLjg1Mjg0LC44NTI4NCwuODUyODQsLjc1ODU5LC45MjEzOCwuODM5MDgsLjc3NjIsLjczMjkzLC44NzI4OSwuNzMxMzMsLjc1MTQsLjgxOTIxLC44NzM1NiwuOTU5NTgsLjU5NTI2LC43NTcyNywuNjkyMjUsMS4wNDkyNCwuOTEyMSwuODY5NDMsLjc5Nzk1LC44ODE5OCwuNzc5NTgsLjcwODY0LC44MTA1NSwuOTAzOTksLjg4NjUzLC45NjAxNywuODI1NzcsLjc3ODkyLC43ODI1NywuOTc1MDcsMS41NDY1NywuOTc1MDcsLjg1Mjg0LC44OTU1MiwuOTAxNzYsLjg4NzYyLC44Nzg1LC43NTI0MSwuODc4NSwuOTA1MTgsLjk1MDE1LC43NzYxOCwuODc4NSwuODg0MDEsLjkxOTE2LC44NjMwNCwuODg0MDEsLjkxNDg4LC44Nzg1LC44ODAxLC44Nzg1LC44Nzg1LC45MTM0MywuNzE3MywxLjA0MTA2LC44Nzg1LC44NTA3NSwuOTU3OTQsLjgyNjE2LC44NTE2MiwuNzk0OTIsLjg4MzMxLDEuNjk4MDgsLjg4MzMxLC44NTI4NCwuOTc4MDEsLjg5NTUyLC45MTEzMywuODk1NTIsLjkxMTMzLDEuNzgwMSwuODk1NTIsMS4yNDQ4NywxLjEzMjU0LDEuMTI0MDEsLjk2ODM5LC44NTI4NCwuNjg3ODcsLjcwNjQ1LC44NTU5MiwuOTA3NDcsMS4wMTQ2NiwxLjAwODgsLjkwMzIzLDEsMS4wNzQ2MywxLC45MTA1NiwuNzU4MDYsMS4xOTExOCwuOTY4MzksLjc4ODY0LC44Mjg0NSwuODQxMzMsLjc1ODU5LC44MzkwOCwuODM5MDgsLjgzOTA4LC44MzkwOCwuODM5MDgsLjgzOTA4LC43NzUzOSwuNzMyOTMsLjczMTMzLC43MzEzMywuNzMxMzMsLjczMTMzLC45NTk1OCwuOTU5NTgsLjk1OTU4LC45NTk1OCwuODg1MDYsLjkxMjEsLjg2OTQzLC44Njk0MywuODY5NDMsLjg2OTQzLC44Njk0MywuODUyODQsLjg3NTA4LC45MDM5OSwuOTAzOTksLjkwMzk5LC45MDM5OSwuNzc4OTIsLjc5Nzk1LC45MDgwNywuODg3NjIsLjg4NzYyLC44ODc2MiwuODg3NjIsLjg4NzYyLC44ODc2MiwuODcxNSwuNzUyNDEsLjkwNTE4LC45MDUxOCwuOTA1MTgsLjkwNTE4LC44ODQwMSwuODg0MDEsLjg4NDAxLC44ODQwMSwuODc4NSwuODc4NSwuODgwMSwuODgwMSwuODgwMSwuODgwMSwuODgwMSwuOTA3NDcsLjg5MDQ5LC44Nzg1LC44Nzg1LC44Nzg1LC44Nzg1LC44NTE2MiwuODc4NSwuODUxNjIsLjgzOTA4LC44ODc2MiwuODM5MDgsLjg4NzYyLC44MzkwOCwuODg3NjIsLjczMjkzLC43NTI0MSwuNzMyOTMsLjc1MjQxLC43MzI5MywuNzUyNDEsLjczMjkzLC43NTI0MSwuODcyODksLjgzMDE2LC44ODUwNiwuOTMxMjUsLjczMTMzLC45MDUxOCwuNzMxMzMsLjkwNTE4LC43MzEzMywuOTA1MTgsLjczMTMzLC45MDUxOCwuNzMxMzMsLjkwNTE4LC44MTkyMSwuNzc2MTgsLjgxOTIxLC43NzYxOCwuODE5MjEsLjc3NjE4LDEsMSwuODczNTYsLjg3ODUsLjkxMDc1LC44OTYwOCwuOTU5NTgsLjg4NDAxLC45NTk1OCwuODg0MDEsLjk1OTU4LC44ODQwMSwuOTU5NTgsLjg4NDAxLC45NTk1OCwuODg0MDEsLjc2MjI5LC45MDE2NywuNTk1MjYsLjkxOTE2LDEsMSwuODYzMDQsLjY5MjI1LC44ODQwMSwxLDEsLjcwNDI0LC43OTQ2OCwuOTE5MjYsLjg4MTc1LC43MDgyMywuOTQ5MDMsLjkxMjEsLjg3ODUsMSwxLC45MTIxLC44Nzg1LC44NzgwMiwuODg2NTYsLjg3ODUsLjg2OTQzLC44ODAxLC44Njk0MywuODgwMSwuODY5NDMsLjg4MDEsLjg3NDAyLC44OTI5MSwuNzc5NTgsLjkxMzQzLDEsMSwuNzc5NTgsLjkxMzQzLC43MDg2NCwuNzE3MywuNzA4NjQsLjcxNzMsLjcwODY0LC43MTczLC43MDg2NCwuNzE3MywxLDEsLjgxMDU1LC43NTg0MSwuODEwNTUsMS4wNjQ1MiwuOTAzOTksLjg3ODUsLjkwMzk5LC44Nzg1LC45MDM5OSwuODc4NSwuOTAzOTksLjg3ODUsLjkwMzk5LC44Nzg1LC45MDM5OSwuODc4NSwuOTYwMTcsLjk1Nzk0LC43Nzg5MiwuODUxNjIsLjc3ODkyLC43ODI1NywuNzk0OTIsLjc4MjU3LC43OTQ5MiwuNzgyNTcsLjc5NDkyLC45Mjk3LC41Njg5MiwuODM5MDgsLjg4NzYyLC43NzUzOSwuODcxNSwuODc1MDgsLjg5MDQ5LDEsMSwuODEwNTUsMS4wNDEwNiwxLjIwNTI4LDEuMjA1MjgsMSwxLjE1NTQzLC43MDY3NCwuOTgzODcsLjk0NzIxLDEuMzM0MzEsMS40NTg5NCwuOTUxNjEsMS4wNjMwMywuODM5MDgsLjgwMzUyLC41NzE4NCwuNjk2NSwuNTYyODksLjgyMDAxLC41NjAyOSwuODEyMzUsMS4wMjk4OCwuODM5MDgsLjc3NjIsLjY4MTU2LC44MDM2NywuNzMxMzMsLjc4MjU3LC44NzM1NiwuODY5NDMsLjk1OTU4LC43NTcyNywuODkwMTksMS4wNDkyNCwuOTEyMSwuNzY0OCwuODY5NDMsLjg3MzU2LC43OTc5NSwuNzgyNzUsLjgxMDU1LC43Nzg5MiwuOTc2MiwuODI1NzcsLjk5ODE5LC44NDg5NiwuOTU5NTgsLjc3ODkyLC45NjEwOCwxLjAxNDA3LC44OTA0OSwxLjAyOTg4LC45NDIxMSwuOTYxMDgsLjg5MzYsLjg0MDIxLC44Nzg0MiwuOTYzOTksLjc5MTA5LC44OTA0OSwxLjAwODEzLDEuMDI5ODgsLjg2MDc3LC44NzQ0NSwuOTIwOTksLjg0NzIzLC44NjUxMywuODgwMSwuNzU2MzgsLjg1NzE0LC43ODIxNiwuNzk1ODYsLjg3OTY1LC45NDIxMSwuOTc3NDcsLjc4Mjg3LC45NzkyNiwuODQ5NzEsMS4wMjk4OCwuOTQyMTEsLjg4MDEsLjk0MjExLC44NDk3MSwuNzMxMzMsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjkwMjY0LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45MDUxOCwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTA1NDgsMSwxLDEsMSwxLDEsLjk2MDE3LC45NTc5NCwuOTYwMTcsLjk1Nzk0LC45NjAxNywuOTU3OTQsLjc3ODkyLC44NTE2MiwxLDEsLjg5NTUyLC45MDUyNywxLC45MDM2MywuOTI3OTQsLjkyNzk0LC45Mjc5NCwuOTI3OTQsLjg3MDEyLC44NzAxMiwuODcwMTIsLjg5NTUyLC44OTU1MiwxLjQyMjU5LC43MTE0MywxLjA2MTUyLDEsMSwxLjAzMzcyLDEuMDMzNzIsLjk3MTcxLDEuNDk1NiwyLjI4MDcsLjkzODM1LC44MzQwNiwuOTExMzMsLjg0MTA3LC45MTEzMywxLDEsMSwuNzIwMjEsMSwxLjIzMTA4LC44MzQ4OSwuODg1MjUsLjg4NTI1LC44MTQ5OSwuOTA1MjcsMS44MTA1NSwuOTA1MjcsMS44MTA1NSwxLjMxMDA2LDEuNTM3MTEsLjk0NDM0LDEuMDg2OTYsMSwuOTUwMTgsLjc3MTkyLC44NTI4NCwuOTA3NDcsMS4xNzUzNCwuNjk4MjUsLjk3MTYsMS4zNzA3NywuOTA3NDcsLjkwNzQ3LC44NTM1NiwuOTA3NDcsLjkwNzQ3LDEuNDQ5NDcsLjg1Mjg0LC44OTQxLC44OTQxLC43MDU3MiwuOCwuNzA1NzIsLjcwNTcyLC43MDU3MiwuNzA1NzIsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45OTg2MiwuOTk4NjIsMSwxLDEsMSwxLDEuMDgwMDQsLjkxMDI3LDEsMSwxLC45OTg2MiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTA3MjcsLjkwNzI3LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxXSxxcj17bGluZUhlaWdodDoxLjIyMDcsbGluZUdhcDouMjIwN30sdnI9WzEuMzg3NywxLDEsMSwuOTc4MDEsLjkyNDgyLC44OTU1MiwuOTExMzMsLjgxOTg4LC45NzU2NiwuOTgxNTIsLjkzNTQ4LC45MzU0OCwxLjI3OTgsLjg1Mjg0LC45Mjc5NCwxLC45NjEzNCwxLjU2MjM5LC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuODI4NDUsLjgyODQ1LC44NTI4NCwuODUyODQsLjg1Mjg0LC43NTg1OSwuOTIxMzgsLjgzOTA4LC43NzYyLC43MTgwNSwuODcyODksLjczMTMzLC43NTE0LC44MTkyMSwuODczNTYsLjk1OTU4LC41OTUyNiwuNzU3MjcsLjY5MjI1LDEuMDQ5MjQsLjkwODcyLC44NTkzOCwuNzk3OTUsLjg3MDY4LC43Nzk1OCwuNjk3NjYsLjgxMDU1LC45MDM5OSwuODg2NTMsLjk2MDY4LC44MjU3NywuNzc4OTIsLjc4MjU3LC45NzUwNywxLjUyOSwuOTc1MDcsLjg1Mjg0LC44OTU1MiwuOTAxNzYsLjk0OTA4LC44NjQxMSwuNzQwMTIsLjg2NDExLC44ODMyMywuOTUwMTUsLjg2NDExLC44NjMzMSwuODg0MDEsLjkxOTE2LC44NjMwNCwuODg0MDEsLjkwMzksLjg2MzMxLC44NjMzMSwuODY0MTEsLjg2NDExLC45MDQ2NCwuNzA4NTIsMS4wNDEwNiwuODYzMzEsLjg0MzcyLC45NTc5NCwuODI2MTYsLjg0NTQ4LC43OTQ5MiwuODgzMzEsMS42OTgwOCwuODgzMzEsLjg1Mjg0LC45NzgwMSwuODk1NTIsLjkxMTMzLC44OTU1MiwuOTExMzMsMS43ODAxLC44OTU1MiwxLjI0NDg3LDEuMTMyNTQsMS4xOTEyOSwuOTY4MzksLjg1Mjg0LC42ODc4NywuNzA2NDUsLjg1NTkyLC45MDc0NywxLjAxNDY2LDEuMDA4OCwuOTAzMjMsMSwxLjA3NDYzLDEsLjkxMDU2LC43NTgwNiwxLjE5MTE4LC45NjgzOSwuNzg4NjQsLjgyODQ1LC44NDEzMywuNzU4NTksLjgzOTA4LC44MzkwOCwuODM5MDgsLjgzOTA4LC44MzkwOCwuODM5MDgsLjc3NTM5LC43MTgwNSwuNzMxMzMsLjczMTMzLC43MzEzMywuNzMxMzMsLjk1OTU4LC45NTk1OCwuOTU5NTgsLjk1OTU4LC44ODUwNiwuOTA4NzIsLjg1OTM4LC44NTkzOCwuODU5MzgsLjg1OTM4LC44NTkzOCwuODUyODQsLjg3MDY4LC45MDM5OSwuOTAzOTksLjkwMzk5LC45MDM5OSwuNzc4OTIsLjc5Nzk1LC45MDgwNywuOTQ5MDgsLjk0OTA4LC45NDkwOCwuOTQ5MDgsLjk0OTA4LC45NDkwOCwuODU4ODcsLjc0MDEyLC44ODMyMywuODgzMjMsLjg4MzIzLC44ODMyMywuODg0MDEsLjg4NDAxLC44ODQwMSwuODg0MDEsLjg3ODUsLjg2MzMxLC44NjMzMSwuODYzMzEsLjg2MzMxLC44NjMzMSwuODYzMzEsLjkwNzQ3LC44OTA0OSwuODYzMzEsLjg2MzMxLC44NjMzMSwuODYzMzEsLjg0NTQ4LC44NjQxMSwuODQ1NDgsLjgzOTA4LC45NDkwOCwuODM5MDgsLjk0OTA4LC44MzkwOCwuOTQ5MDgsLjcxODA1LC43NDAxMiwuNzE4MDUsLjc0MDEyLC43MTgwNSwuNzQwMTIsLjcxODA1LC43NDAxMiwuODcyODksLjc5NTM4LC44ODUwNiwuOTI3MjYsLjczMTMzLC44ODMyMywuNzMxMzMsLjg4MzIzLC43MzEzMywuODgzMjMsLjczMTMzLC44ODMyMywuNzMxMzMsLjg4MzIzLC44MTkyMSwuODY0MTEsLjgxOTIxLC44NjQxMSwuODE5MjEsLjg2NDExLDEsMSwuODczNTYsLjg2MzMxLC45MTA3NSwuODc3NywuOTU5NTgsLjg4NDAxLC45NTk1OCwuODg0MDEsLjk1OTU4LC44ODQwMSwuOTU5NTgsLjg4NDAxLC45NTk1OCwuODg0MDEsLjc2NDY3LC45MDE2NywuNTk1MjYsLjkxOTE2LDEsMSwuODYzMDQsLjY5MjI1LC44ODQwMSwxLDEsLjcwNDI0LC43NzMxMiwuOTE5MjYsLjg4MTc1LC43MDgyMywuOTQ5MDMsLjkwODcyLC44NjMzMSwxLDEsLjkwODcyLC44NjMzMSwuODY5MDYsLjg4MTE2LC44NjMzMSwuODU5MzgsLjg2MzMxLC44NTkzOCwuODYzMzEsLjg1OTM4LC44NjMzMSwuODc0MDIsLjg2NTQ5LC43Nzk1OCwuOTA0NjQsMSwxLC43Nzk1OCwuOTA0NjQsLjY5NzY2LC43MDg1MiwuNjk3NjYsLjcwODUyLC42OTc2NiwuNzA4NTIsLjY5NzY2LC43MDg1MiwxLDEsLjgxMDU1LC43NTg0MSwuODEwNTUsMS4wNjQ1MiwuOTAzOTksLjg2MzMxLC45MDM5OSwuODYzMzEsLjkwMzk5LC44NjMzMSwuOTAzOTksLjg2MzMxLC45MDM5OSwuODYzMzEsLjkwMzk5LC44NjMzMSwuOTYwNjgsLjk1Nzk0LC43Nzg5MiwuODQ1NDgsLjc3ODkyLC43ODI1NywuNzk0OTIsLjc4MjU3LC43OTQ5MiwuNzgyNTcsLjc5NDkyLC45Mjk3LC41Njg5MiwuODM5MDgsLjk0OTA4LC43NzUzOSwuODU4ODcsLjg3MDY4LC44OTA0OSwxLDEsLjgxMDU1LDEuMDQxMDYsMS4yMDUyOCwxLjIwNTI4LDEsMS4xNTU0MywuNzAwODgsLjk4Mzg3LC45NDcyMSwxLjMzNDMxLDEuNDU4OTQsLjk1MTYxLDEuNDgzODcsLjgzOTA4LC44MDM1MiwuNTcxMTgsLjY5NjUsLjU2MzQ3LC43OTE3OSwuNTU4NTMsLjgwMzQ2LDEuMDI5ODgsLjgzOTA4LC43NzYyLC42NzE3NCwuODYwMzYsLjczMTMzLC43ODI1NywuODczNTYsLjg2NDQxLC45NTk1OCwuNzU3MjcsLjg5MDE5LDEuMDQ5MjQsLjkwODcyLC43NDg4OSwuODU5MzgsLjg3ODkxLC43OTc5NSwuNzk1NywuODEwNTUsLjc3ODkyLC45NzQ0NywuODI1NzcsLjk3NDY2LC44NzE3OSwuOTU5NTgsLjc3ODkyLC45NDI1MiwuOTU2MTIsLjg3NTMsMS4wMjk4OCwuOTI3MzMsLjk0MjUyLC44NzQxMSwuODQwMjEsLjg3MjgsLjk1NjEyLC43NDA4MSwuODc1MywxLjAyMTg5LDEuMDI5ODgsLjg0ODE0LC44NzQ0NSwuOTE4MjIsLjg0NzIzLC44NTY2OCwuODYzMzEsLjgxMzQ0LC44NzU4MSwuNzY0MjIsLjgyMDQ2LC45NjA1NywuOTI3MzMsLjk5Mzc1LC43ODAyMiwuOTU0NTIsLjg2MDE1LDEuMDI5ODgsLjkyNzMzLC44NjMzMSwuOTI3MzMsLjg2MDE1LC43MzEzMywxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTA2MzEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjg4MzIzLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC44NTE3NCwxLDEsMSwxLDEsMSwuOTYwNjgsLjk1Nzk0LC45NjA2OCwuOTU3OTQsLjk2MDY4LC45NTc5NCwuNzc4OTIsLjg0NTQ4LDEsMSwuODk1NTIsLjkwNTI3LDEsLjkwMzYzLC45Mjc5NCwuOTI3OTQsLjkyNzk0LC44OTgwNywuODcwMTIsLjg3MDEyLC44NzAxMiwuODk1NTIsLjg5NTUyLDEuNDIyNTksLjcxMDk0LDEuMDYxNTIsMSwxLDEuMDMzNzIsMS4wMzM3MiwuOTcxNzEsMS40OTU2LDIuMjgwNywuOTI5NzIsLjgzNDA2LC45MTEzMywuODMzMjYsLjkxMTMzLDEsMSwxLC43MjAyMSwxLDEuMjMxMDgsLjgzNDg5LC44ODUyNSwuODg1MjUsLjgxNDk5LC45MDYxNiwxLjgxMDU1LC45MDUyNywxLjgxMDU1LDEuMzEwNywxLjUzNzExLC45NDQzNCwxLjA4Njk2LDEsLjk1MDE4LC43NzE5MiwuODUyODQsLjkwNzQ3LDEuMTc1MzQsLjY5ODI1LC45NzE2LDEuMzcwNzcsLjkwNzQ3LC45MDc0NywuODUzNTYsLjkwNzQ3LC45MDc0NywxLjQ0OTQ3LC44NTI4NCwuODk0MSwuODk0MSwuNzA1NzIsLjgsLjcwNTcyLC43MDU3MiwuNzA1NzIsLjcwNTcyLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTk4NjIsLjk5ODYyLDEsMSwxLDEsMSwxLjA4MDA0LC45MTAyNywxLDEsMSwuOTk4NjIsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjkwNzI3LC45MDcyNywxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMV0sU3I9e2xpbmVIZWlnaHQ6MS4yMjA3LGxpbmVHYXA6LjIyMDd9LHhyPVsxLjM4NzcsMSwxLDEsMS4xNzIyMywxLjEyOTMsLjg5NTUyLC45MTEzMywuODAzOTUsMS4wMjI2OSwxLjE1NjAxLC45MTA1NiwuOTEwNTYsMS4yNzk4LC44NTI4NCwuODk4MDcsMSwuOTA4NjEsMS4zOTU0MywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjk2MzA5LC45NjMwOSwuODUyODQsLjg1Mjg0LC44NTI4NCwuODMzMTksLjg4MDcxLC44Njc1LC44MTU1MiwuNzIzNDYsLjg1MTkzLC43MzIwNiwuNzUyMiwuODExMDUsLjg2Mjc1LC45MDY4NSwuNjM3NywuNzc4OTIsLjc1NTkzLDEuMDI2MzgsLjg5MjQ5LC44NDExOCwuNzc0NTIsLjg1Mzc0LC43NTE4NiwuNjc3ODksLjc5Nzc2LC44ODg0NCwuODUwNjYsLjk0MzA5LC43NzgxOCwuNzMwNiwuNzY2NTksMS4xMDM2OSwxLjM4MzEzLDEuMTAzNjksMS4wNjEzOSwuODk1NTIsLjg3MzksLjkyNDUsLjkyNDUsLjgzMjAzLC45MjQ1LC44NTg2NSwxLjA5ODQyLC45MjQ1LC45MjQ1LDEuMDMyOTcsMS4wNzY5MiwuOTA5MTgsMS4wMzI5NywuOTQ5NTksLjkyNDUsLjkyMjc0LC45MjQ1LC45MjQ1LDEuMDI5MzMsLjc3ODMyLDEuMjA1NjIsLjkyNDUsLjg5MTYsLjk4OTg2LC44NjYyMSwuODk0NTMsLjc5MDA0LC45NDE1MiwxLjc3MjU2LC45NDE1MiwuODUyODQsLjk3ODAxLC44OTU1MiwuOTExMzMsLjg5NTUyLC45MTEzMywxLjkxNzI5LC44OTU1MiwxLjE3ODg5LDEuMTMyNTQsMS4xNjM1OSwuOTIwOTgsLjg1Mjg0LC42ODc4NywuNzEzNTMsLjg0NzM3LC45MDc0NywxLjAwODgsMS4wMDQ0LC44NzY4MywxLDEuMDkwOTEsMSwuOTIyMjksLjczOSwxLjE1NjQyLC45MjA5OCwuNzYyODgsLjgwNTA0LC44MDk3MiwuNzU4NTksLjg2NzUsLjg2NzUsLjg2NzUsLjg2NzUsLjg2NzUsLjg2NzUsLjc2MzE4LC43MjM0NiwuNzMyMDYsLjczMjA2LC43MzIwNiwuNzMyMDYsLjkwNjg1LC45MDY4NSwuOTA2ODUsLjkwNjg1LC44NjQ3NywuODkyNDksLjg0MTE4LC44NDExOCwuODQxMTgsLjg0MTE4LC44NDExOCwuODUyODQsLjg0NTU3LC44ODg0NCwuODg4NDQsLjg4ODQ0LC44ODg0NCwuNzMwNiwuNzc0NTIsLjg2MzMxLC45MjQ1LC45MjQ1LC45MjQ1LC45MjQ1LC45MjQ1LC45MjQ1LC44NDg0MywuODMyMDMsLjg1ODY1LC44NTg2NSwuODU4NjUsLjg1ODY1LC44MjYwMSwuODI2MDEsLjgyNjAxLC44MjYwMSwuOTQ0NjksLjkyNDUsLjkyMjc0LC45MjI3NCwuOTIyNzQsLjkyMjc0LC45MjI3NCwuOTA3NDcsLjg2NjUxLC45MjQ1LC45MjQ1LC45MjQ1LC45MjQ1LC44OTQ1MywuOTI0NSwuODk0NTMsLjg2NzUsLjkyNDUsLjg2NzUsLjkyNDUsLjg2NzUsLjkyNDUsLjcyMzQ2LC44MzIwMywuNzIzNDYsLjgzMjAzLC43MjM0NiwuODMyMDMsLjcyMzQ2LC44MzIwMywuODUxOTMsLjg4NzUsLjg2NDc3LC45OTAzNCwuNzMyMDYsLjg1ODY1LC43MzIwNiwuODU4NjUsLjczMjA2LC44NTg2NSwuNzMyMDYsLjg1ODY1LC43MzIwNiwuODU4NjUsLjgxMTA1LC45MjQ1LC44MTEwNSwuOTI0NSwuODExMDUsLjkyNDUsMSwxLC44NjI3NSwuOTI0NSwuOTA4NzIsLjkzNTkxLC45MDY4NSwuODI2MDEsLjkwNjg1LC44MjYwMSwuOTA2ODUsLjgyNjAxLC45MDY4NSwxLjAzMjk3LC45MDY4NSwuODI2MDEsLjc3ODk2LDEuMDU2MTEsLjYzNzcsMS4wNzY5MiwxLDEsLjkwOTE4LC43NTU5MywxLjAzMjk3LDEsMSwuNzYwMzIsLjkzNzUsLjk4MTU2LC45MzQwNywuNzcyNjEsMS4xMTQyOSwuODkyNDksLjkyNDUsMSwxLC44OTI0OSwuOTI0NSwuOTI1MzQsLjg2Njk4LC45MjQ1LC44NDExOCwuOTIyNzQsLjg0MTE4LC45MjI3NCwuODQxMTgsLjkyMjc0LC44NjY3LC44NjI5MSwuNzUxODYsMS4wMjkzMywxLDEsLjc1MTg2LDEuMDI5MzMsLjY3Nzg5LC43NzgzMiwuNjc3ODksLjc3ODMyLC42Nzc4OSwuNzc4MzIsLjY3Nzg5LC43NzgzMiwxLDEsLjc5Nzc2LC45NzY1NSwuNzk3NzYsMS4yMzAyMywuODg4NDQsLjkyNDUsLjg4ODQ0LC45MjQ1LC44ODg0NCwuOTI0NSwuODg4NDQsLjkyNDUsLjg4ODQ0LC45MjQ1LC44ODg0NCwuOTI0NSwuOTQzMDksLjk4OTg2LC43MzA2LC44OTQ1MywuNzMwNiwuNzY2NTksLjc5MDA0LC43NjY1OSwuNzkwMDQsLjc2NjU5LC43OTAwNCwxLjA5MjMxLC41NDg3MywuODY3NSwuOTI0NSwuNzYzMTgsLjg0ODQzLC44NDU1NywuODY2NTEsMSwxLC43OTc3NiwxLjIwNTYyLDEuMTg2MjIsMS4xODYyMiwxLDEuMTQzNywuNjcwMDksLjk2MzM0LC45MzY5NSwxLjM1MTkxLDEuNDA5MDksLjk1MTYxLDEuNDgzODcsLjg2NzUsLjkwODYxLC42MTkyLC43MzYzLC42NDgyNCwuODI0MTEsLjU2MzIxLC44NTY5NiwxLjIzNTE2LC44Njc1LC44MTU1MiwuNzI4NiwuODQxMzQsLjczMjA2LC43NjY1OSwuODYyNzUsLjg0MzY5LC45MDY4NSwuNzc4OTIsLjg1ODcxLDEuMDI2MzgsLjg5MjQ5LC43NTgyOCwuODQxMTgsLjg1OTg0LC43NzQ1MiwuNzY0NjYsLjc5Nzc2LC43MzA2LC45MDc4MiwuNzc4MTgsLjkwMywuODcyOTEsLjkwNjg1LC43MzA2LC45OTA1OCwxLjAzNjY3LC45NDYzNSwxLjIzNTE2LC45ODQ5LC45OTA1OCwuOTIzOTMsLjg5MTYsLjk0MiwxLjAzNjY3LC43NTAyNiwuOTQ2MzUsMS4wMjk3LDEuMjM1MTYsLjkwOTE4LC45NDA0OCwuOTgyMTcsLjg5NzQ2LC44NDE1MywuOTIyNzQsLjgyNTA3LC44ODgzMiwuODQ0MzgsLjg4MTc4LDEuMDM1MjUsLjk4NDksMS4wMDIyNSwuNzgwODYsLjk3MjQ4LC44OTQwNCwxLjIzNTE2LC45ODQ5LC45MjI3NCwuOTg0OSwuODk0MDQsLjczMjA2LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC44OTY5MywxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuODU4NjUsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjkwOTMzLDEsMSwxLDEsMSwxLC45NDMwOSwuOTg5ODYsLjk0MzA5LC45ODk4NiwuOTQzMDksLjk4OTg2LC43MzA2LC44OTQ1MywxLDEsLjg5NTUyLC45MDUyNywxLC45MDE4NiwxLjEyMzA4LDEuMTIzMDgsMS4xMjMwOCwxLjEyMzA4LDEuMjU2NiwxLjI1NjYsMS4yNTY2LC44OTU1MiwuODk1NTIsMS40MjI1OSwuNjg5OTQsMS4wMzgwOSwxLDEsMS4wMTc2LDEuMDE3NiwxLjExNTIzLDEuNDk1NiwyLjAxNDYyLC45Nzg1OCwuODI2MTYsLjkxMTMzLC44MzQzNywuOTExMzMsMSwxLDEsLjcwNTA4LDEsMS4yMzEwOCwuNzk4MDEsLjg0NDI2LC44NDQyNiwuNzc0LC45MDU3MiwxLjgxMDU1LC45MDc0OSwxLjgxMDU1LDEuMjg4MDksMS41NTQ2OSwuOTQ0MzQsMS4wNzgwNiwxLC45NzA5NCwuNzU4OSwuODUyODQsLjkwNzQ3LDEuMTk2NTgsLjY5ODI1LC45NzYyMiwxLjMzNTEyLC45MDc0NywuOTA3NDcsLjg1Mjg0LC45MDc0NywuOTA3NDcsMS40NDk0NywuODUyODQsLjg5NDEsLjg5NDEsLjcwNTcyLC44LC43MDU3MiwuNzA1NzIsLjcwNTcyLC43MDU3MiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjk5ODYyLC45OTg2MiwxLDEsMSwxLDEsMS4wMzM2LC45MTAyNywxLDEsMSwuOTk4NjIsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4wNTg1OSwxLjA1ODU5LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxXSxBcj17bGluZUhlaWdodDoxLjIyMDcsbGluZUdhcDouMjIwN30sQ3I9WzEuMzg3NywxLDEsMSwxLjE3MjIzLDEuMTI5MywuODk1NTIsLjkxMTMzLC44MDM5NSwxLjAyMjY5LDEuMTU2MDEsLjkxMDU2LC45MTA1NiwxLjI3OTgsLjg1Mjg0LC44OTgwNywxLC45MDg2MSwxLjM5MDE2LC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTExMzMsLjkxMTMzLC45MTEzMywuOTYzMDksLjk2MzA5LC44NTI4NCwuODUyODQsLjg1Mjg0LC44MzMxOSwuODgwNzEsLjg2NzUsLjgxNTUyLC43MzgzNCwuODUxOTMsLjczMjA2LC43NTIyLC44MTEwNSwuODYyNzUsLjkwNjg1LC42Mzc3LC43Nzg5MiwuNzU1OTMsMS4wMjYzOCwuODkzODUsLjg1MTIyLC43NzQ1MiwuODY1MDMsLjc1MTg2LC42ODg4NywuNzk3NzYsLjg4ODQ0LC44NTA2NiwuOTQyNTgsLjc3ODE4LC43MzA2LC43NjY1OSwxLjEwMzY5LDEuMzkwMTYsMS4xMDM2OSwxLjA2MTM5LC44OTU1MiwuODczOSwuODYxMjgsLjk0NDY5LC44NDU3LC45NDQ2OSwuODk0NjQsMS4wOTg0MiwuODQ2MzYsLjk0NDY5LDEuMDMyOTcsMS4wNzY5MiwuOTA5MTgsMS4wMzI5NywuOTU4OTcsLjk0NDY5LC45NDgyLC45NDQ2OSwuOTQ0NjksMS4wNDY5MiwuNzgyMjMsMS4yMDU2MiwuOTQ0NjksLjkwMzMyLC45ODk4NiwuODY2MjEsLjkwNTI3LC43OTAwNCwuOTQxNTIsMS43NzI1NiwuOTQxNTIsLjg1Mjg0LC45NzgwMSwuODk1NTIsLjkxMTMzLC44OTU1MiwuOTExMzMsMS45MTcyOSwuODk1NTIsMS4xNzg4OSwxLjEzMjU0LDEuMDg3MDcsLjkyMDk4LC44NTI4NCwuNjg3ODcsLjcxMzUzLC44NDczNywuOTA3NDcsMS4wMDg4LDEuMDA0NCwuODc2ODMsMSwxLjA5MDkxLDEsLjkyMjI5LC43MzksMS4xNTY0MiwuOTIwOTgsLjc2Mjg4LC44MDUwNCwuODA5NzIsLjc1ODU5LC44Njc1LC44Njc1LC44Njc1LC44Njc1LC44Njc1LC44Njc1LC43NjMxOCwuNzM4MzQsLjczMjA2LC43MzIwNiwuNzMyMDYsLjczMjA2LC45MDY4NSwuOTA2ODUsLjkwNjg1LC45MDY4NSwuODY0NzcsLjg5Mzg1LC44NTEyMiwuODUxMjIsLjg1MTIyLC44NTEyMiwuODUxMjIsLjg1Mjg0LC44NTMxMSwuODg4NDQsLjg4ODQ0LC44ODg0NCwuODg4NDQsLjczMDYsLjc3NDUyLC44NjMzMSwuODYxMjgsLjg2MTI4LC44NjEyOCwuODYxMjgsLjg2MTI4LC44NjEyOCwuODY5MywuODQ1NywuODk0NjQsLjg5NDY0LC44OTQ2NCwuODk0NjQsLjgyNjAxLC44MjYwMSwuODI2MDEsLjgyNjAxLC45NDQ2OSwuOTQ0NjksLjk0ODIsLjk0ODIsLjk0ODIsLjk0ODIsLjk0ODIsLjkwNzQ3LC44NjY1MSwuOTQ0NjksLjk0NDY5LC45NDQ2OSwuOTQ0NjksLjkwNTI3LC45NDQ2OSwuOTA1MjcsLjg2NzUsLjg2MTI4LC44Njc1LC44NjEyOCwuODY3NSwuODYxMjgsLjczODM0LC44NDU3LC43MzgzNCwuODQ1NywuNzM4MzQsLjg0NTcsLjczODM0LC44NDU3LC44NTE5MywuOTI0NTQsLjg2NDc3LC45OTIxLC43MzIwNiwuODk0NjQsLjczMjA2LC44OTQ2NCwuNzMyMDYsLjg5NDY0LC43MzIwNiwuODk0NjQsLjczMjA2LC44OTQ2NCwuODExMDUsLjg0NjM2LC44MTEwNSwuODQ2MzYsLjgxMTA1LC44NDYzNiwxLDEsLjg2Mjc1LC45NDQ2OSwuOTA4NzIsLjk1Nzg2LC45MDY4NSwuODI2MDEsLjkwNjg1LC44MjYwMSwuOTA2ODUsLjgyNjAxLC45MDY4NSwxLjAzMjk3LC45MDY4NSwuODI2MDEsLjc3NzQxLDEuMDU2MTEsLjYzNzcsMS4wNzY5MiwxLDEsLjkwOTE4LC43NTU5MywxLjAzMjk3LDEsMSwuNzYwMzIsLjkwNDUyLC45ODE1NiwxLjExODQyLC43NzI2MSwxLjExNDI5LC44OTM4NSwuOTQ0NjksMSwxLC44OTM4NSwuOTQ0NjksLjk1ODc3LC44NjkwMSwuOTQ0NjksLjg1MTIyLC45NDgyLC44NTEyMiwuOTQ4MiwuODUxMjIsLjk0ODIsLjg2NjcsLjkwMDE2LC43NTE4NiwxLjA0NjkyLDEsMSwuNzUxODYsMS4wNDY5MiwuNjg4ODcsLjc4MjIzLC42ODg4NywuNzgyMjMsLjY4ODg3LC43ODIyMywuNjg4ODcsLjc4MjIzLDEsMSwuNzk3NzYsLjkyMTg4LC43OTc3NiwxLjIzMDIzLC44ODg0NCwuOTQ0NjksLjg4ODQ0LC45NDQ2OSwuODg4NDQsLjk0NDY5LC44ODg0NCwuOTQ0NjksLjg4ODQ0LC45NDQ2OSwuODg4NDQsLjk0NDY5LC45NDI1OCwuOTg5ODYsLjczMDYsLjkwNTI3LC43MzA2LC43NjY1OSwuNzkwMDQsLjc2NjU5LC43OTAwNCwuNzY2NTksLjc5MDA0LDEuMDkyMzEsLjU0ODczLC44Njc1LC44NjEyOCwuNzYzMTgsLjg2OTMsLjg1MzExLC44NjY1MSwxLDEsLjc5Nzc2LDEuMjA1NjIsMS4xODYyMiwxLjE4NjIyLDEsMS4xNDM3LC42Nzc0MiwuOTYzMzQsLjkzNjk1LDEuMzUxOTEsMS40MDkwOSwuOTUxNjEsMS40ODM4NywuODY2ODYsLjkwODYxLC42MjI2NywuNzQzNTksLjY1NjQ5LC44NTQ5OCwuNTY5NjMsLjg4MjU0LDEuMjM1MTYsLjg2NzUsLjgxNTUyLC43NTQ0MywuODQ1MDMsLjczMjA2LC43NjY1OSwuODYyNzUsLjg1MTIyLC45MDY4NSwuNzc4OTIsLjg1NzQ2LDEuMDI2MzgsLjg5Mzg1LC43NTY1NywuODUxMjIsLjg2Mjc1LC43NzQ1MiwuNzQxNzEsLjc5Nzc2LC43MzA2LC45NTE2NSwuNzc4MTgsLjg5NzcyLC44ODgzMSwuOTA2ODUsLjczMDYsLjk4MTQyLDEuMDIxOTEsLjk2NTc2LDEuMjM1MTYsLjk5MDE4LC45ODE0MiwuOTIzNiwuODkyNTgsLjk0MDM1LDEuMDIxOTEsLjc4ODQ4LC45NjU3NiwuOTU2MSwxLjIzNTE2LC45MDkxOCwuOTI1NzgsLjk1NDI0LC44OTc0NiwuODM5NjksLjk0ODIsLjgwMTEzLC44OTQ0MiwuODUyMDgsLjg2MTU1LC45ODAyMiwuOTkwMTgsMS4wMDQ1MiwuODEyMDksLjk5MjQ3LC44OTE4MSwxLjIzNTE2LC45OTAxOCwuOTQ4MiwuOTkwMTgsLjg5MTgxLC43MzIwNiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuODg4NDQsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjg5NDY0LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45Njc2NiwxLDEsMSwxLDEsMSwuOTQyNTgsLjk4OTg2LC45NDI1OCwuOTg5ODYsLjk0MjU4LC45ODk4NiwuNzMwNiwuOTA1MjcsMSwxLC44OTU1MiwuOTA1MjcsMSwuOTAxODYsMS4xMjMwOCwxLjEyMzA4LDEuMTIzMDgsMS4xMjMwOCwxLjI1NjYsMS4yNTY2LDEuMjU2NiwuODk1NTIsLjg5NTUyLDEuNDIyNTksLjY5MDQzLDEuMDM4MDksMSwxLDEuMDE3NiwxLjAxNzYsMS4xMTUyMywxLjQ5NTYsMi4wMTQ2MiwuOTkzMzEsLjgyNjE2LC45MTEzMywuODQyODYsLjkxMTMzLDEsMSwxLC43MDUwOCwxLDEuMjMxMDgsLjc5ODAxLC44NDQyNiwuODQ0MjYsLjc3NCwuOTA1MjcsMS44MTA1NSwuOTA1MjcsMS44MTA1NSwxLjI4ODA5LDEuNTU0NjksLjk0NDM0LDEuMDc4MDYsMSwuOTcwOTQsLjc1ODksLjg1Mjg0LC45MDc0NywxLjE5NjU4LC42OTgyNSwuOTc2MjIsMS4zMzUxMiwuOTA3NDcsLjkwNzQ3LC44NTM1NiwuOTA3NDcsLjkwNzQ3LDEuNDQ5NDcsLjg1Mjg0LC44OTQxLC44OTQxLC43MDU3MiwuOCwuNzA1NzIsLjcwNTcyLC43MDU3MiwuNzA1NzIsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45OTg2MiwuOTk4NjIsMSwxLDEsMSwxLDEuMDMzNiwuOTEwMjcsMSwxLDEsLjk5ODYyLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMDU4NTksMS4wNTg1OSwxLDEsMSwxLjA3MTg1LC45OTQxMywuOTYzMzQsMS4wODA2NSwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLElyPXtsaW5lSGVpZ2h0OjEuMjIwNyxsaW5lR2FwOi4yMjA3fSxGcj1bLjc2MTE2LDEsMSwxLjAwMDYsLjk5OTk4LC45OTk3NCwuOTk5NzMsLjk5OTczLC45OTk4MiwuOTk5NzcsMS4wMDA4NywuOTk5OTgsLjk5OTk4LC45OTk1OSwxLjAwMDAzLDEuMDAwNiwuOTk5OTgsMS4wMDA2LDEuMDAwNiwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTk4LDEsMS4wMDAwMywxLjAwMDAzLDEuMDAwMDMsMS4wMDAyNiwuOTk5OSwuOTk5NzcsLjk5OTc3LC45OTk3NywuOTk5NzcsMS4wMDAwMSwxLjAwMDI2LDEuMDAwMjIsLjk5OTc3LDEuMDAwNiwuOTk5NzMsLjk5OTc3LDEuMDAwMjYsLjk5OTk5LC45OTk3NywxLjAwMDIyLDEuMDAwMDEsMS4wMDAyMiwuOTk5NzcsMS4wMDAwMSwxLjAwMDI2LC45OTk3NywxLjAwMDAxLDEuMDAwMTYsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMjYsLjk5OTk4LDEuMDAwNiwuOTk5OTgsMS4wMDAwMywuOTk5NzMsLjk5OTk4LC45OTk3MywxLjAwMDI2LC45OTk3MywxLjAwMDI2LC45OTk3MywuOTk5OTgsMS4wMDAyNiwxLjAwMDI2LDEuMDAwNiwxLjAwMDYsLjk5OTczLDEuMDAwNiwuOTk5ODIsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwuOTk5NTksLjk5OTczLC45OTk5OCwxLjAwMDI2LC45OTk3MywxLjAwMDIyLC45OTk3MywuOTk5NzMsMSwuOTk5NTksMS4wMDA3NywuOTk5NTksMS4wMDAwMywuOTk5OTgsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLDEuMDAwNzcsLjk5OTczLC45OTk5OCwxLjAwMDI1LC45OTk2OCwuOTk5NzMsMS4wMDAwMywxLjAwMDI1LC42MDI5OSwxLjAwMDI0LDEuMDY0MDksMSwxLC45OTk5OCwxLC45OTk3MywxLjAwMDYsLjk5OTk4LDEsLjk5OTM2LC45OTk3MywxLjAwMDAyLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDI2LC45OTk3NywuOTk5NzcsLjk5OTc3LC45OTk3NywuOTk5NzcsLjk5OTc3LDEsLjk5OTc3LDEuMDAwMDEsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LC45OTk3NywuOTk5NzcsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMjIsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMDMsMS4wMDAyMiwuOTk5NzcsLjk5OTc3LC45OTk3NywuOTk5NzcsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMjYsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTgyLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wNjQwOSwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsLjk5OTczLDEuMDAwMjYsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LDEuMDMzNzQsLjk5OTc3LDEuMDAwMjYsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsMS4wMDAyMiwxLjAwMDI2LDEuMDAwMjIsMS4wMDAyNiwxLjAwMDIyLDEuMDAwMjYsMS4wMDAyMiwxLjAwMDI2LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDQyLC45OTk3MywuOTk5NzMsMS4wMDA2LC45OTk3NywuOTk5NzMsLjk5OTczLDEuMDAwMjYsMS4wMDA2LDEuMDAwMjYsMS4wMDA2LDEuMDAwMjYsMS4wMzgyOCwxLjAwMDI2LC45OTk5OSwxLjAwMDI2LDEuMDAwNiwuOTk5NzcsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwuOTk5MywuOTk5OCwxLjAwMDI2LDEuMDAwMjIsMS4wMDAyNiwxLjAwMDIyLDEuMDAwMjYsMS4wMDAyMiwxLjAwMDI2LDEsMS4wMDAxNiwuOTk5NzcsLjk5OTU5LC45OTk3NywuOTk5NTksLjk5OTc3LC45OTk1OSwxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDI2LC45OTk5OCwxLjAwMDI2LC44MTIxLDEuMDAwMjYsLjk5OTk4LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LC45OTk3NywxLjAwMDI2LDEuMDAwMTYsMS4wMDAyMiwxLjAwMDAxLC45OTk3MywxLjAwMDAxLDEuMDAwMjYsMSwxLjAwMDI2LDEsMS4wMDAyNiwxLDEuMDAwNiwuOTk5NzMsLjk5OTc3LC45OTk3MywxLC45OTk4MiwxLjAwMDIyLDEuMDAwMjYsMS4wMDAwMSwuOTk5NzMsMS4wMDAyNiwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LDEuMDAwMzQsLjk5OTc3LDEsLjk5OTk3LDEuMDAwMjYsMS4wMDA3OCwxLjAwMDM2LC45OTk3MywxLjAwMDEzLDEuMDAwNiwuOTk5NzcsLjk5OTc3LC45OTk4OCwuODUxNDgsMS4wMDAwMSwxLjAwMDI2LC45OTk3NywxLjAwMDIyLDEuMDAwNiwuOTk5NzcsMS4wMDAwMSwuOTk5OTksLjk5OTc3LDEuMDAwNjksMS4wMDAyMiwuOTk5NzcsMS4wMDAwMSwuOTk5ODQsMS4wMDAyNiwxLjAwMDAxLDEuMDAwMjQsMS4wMDAwMSwuOTk5OSwxLDEuMDAwNiwxLjAwMDAxLDEuMDAwNDEsLjk5OTYyLDEuMDAwMjYsMS4wMDA2LC45OTk5NSwxLjAwMDQxLC45OTk0MiwuOTk5NzMsLjk5OTI3LDEuMDAwODIsLjk5OTAyLDEuMDAwMjYsMS4wMDA4NywxLjAwMDYsMS4wMDA2OSwuOTk5NzMsLjk5ODY3LC45OTk3MywuOTk5MywxLjAwMDI2LDEuMDAwNDksMS4wMDA1NiwxLC45OTk4OCwuOTk5MzUsLjk5OTk1LC45OTk1NCwxLjAwMDU1LC45OTk0NSwxLjAwMDMyLDEuMDAwNiwuOTk5OTUsMS4wMDAyNiwuOTk5OTUsMS4wMDAzMiwxLjAwMDAxLDEuMDAwMDgsLjk5OTcxLDEuMDAwMTksLjk5OTQsMS4wMDAwMSwxLjAwMDYsMS4wMDA0NCwuOTk5NzMsMS4wMDAyMywxLjAwMDQ3LDEsLjk5OTQyLC45OTU2MSwuOTk5ODksMS4wMDAzNSwuOTk5NzcsMS4wMDAzNSwuOTk5NzcsMS4wMDAxOSwuOTk5NDQsMS4wMDAwMSwxLjAwMDIxLC45OTkyNiwxLjAwMDM1LDEuMDAwMzUsLjk5OTQyLDEuMDAwNDgsLjk5OTk5LC45OTk3NywxLjAwMDIyLDEuMDAwMzUsMS4wMDAwMSwuOTk5NzcsMS4wMDAyNiwuOTk5ODksMS4wMDA1NywxLjAwMDAxLC45OTkzNiwxLjAwMDUyLDEuMDAwMTIsLjk5OTk2LDEuMDAwNDMsMSwxLjAwMDM1LC45OTk0LC45OTk3NiwxLjAwMDM1LC45OTk3MywxLjAwMDUyLDEuMDAwNDEsMS4wMDExOSwxLjAwMDM3LC45OTk3MywxLjAwMDAyLC45OTk4NiwxLjAwMDQxLDEuMDAwNDEsLjk5OTAyLC45OTk2LDEuMDAwMzQsLjk5OTk5LDEuMDAwMjYsLjk5OTk5LDEuMDAwMjYsLjk5OTczLDEuMDAwNTIsLjk5OTczLDEsLjk5OTczLDEuMDAwNDEsMS4wMDA3NSwuOTk5NCwxLjAwMDMsLjk5OTk5LDEsMS4wMDA0MSwuOTk5NTUsMSwuOTk5MTUsLjk5OTczLC45OTk3MywxLjAwMDI2LDEuMDAxMTksLjk5OTU1LC45OTk3MywxLjAwMDYsLjk5OTExLDEuMDAwNiwxLjAwMDI2LC45OTk3MiwxLjAwMDI2LC45OTkwMiwxLjAwMDQxLC45OTk3MywuOTk5OTksMSwxLDEuMDAwMzgsMS4wMDA1LDEuMDAwMTYsMS4wMDAyMiwxLjAwMDE2LDEuMDAwMjIsMS4wMDAxNiwxLjAwMDIyLDEuMDAwMDEsLjk5OTczLDEsMSwuOTk5NzMsMSwxLC45OTk1NSwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMSwxLDEsLjk5OTczLC45OTk3MywuOTk5NzIsMSwxLDEuMDAxMDYsLjk5OTk5LC45OTk5OCwuOTk5OTgsLjk5OTk5LC45OTk5OCwxLjY2NDc1LDEsLjk5OTczLC45OTk3MywxLjAwMDIzLC45OTk3MywuOTk5NzEsMS4wMDA0NywxLjAwMDIzLDEsLjk5OTkxLC45OTk4NCwxLjAwMDAyLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDAyLDEsMSwxLDEsMSwxLDEsLjk5OTcyLDEsMS4yMDk4NSwxLjM5NzEzLDEuMDAwMDMsMS4wMDAzMSwxLjAwMDE1LDEsLjk5NTYxLDEuMDAwMjcsMS4wMDAzMSwxLjAwMDMxLC45OTkxNSwxLjAwMDMxLDEuMDAwMzEsLjk5OTk5LDEuMDAwMDMsLjk5OTk5LC45OTk5OSwxLjQxMTQ0LDEuNiwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDA1NzksMS40MDU3OSwxLjM2NjI1LC45OTk5OSwxLC45OTg2MSwuOTk4NjEsMSwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LC45OTk3MiwuOTk5OTksLjk5OTk5LC45OTk5OSwuOTk5OTksMS40MDQ4MywxLC45OTk3NywxLjAwMDU0LDEsMSwuOTk5NTMsLjk5OTYyLDEuMDAwNDIsLjk5OTUsMSwxLDEsMSwxLDEsMSwxLC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLFRyPXtsaW5lSGVpZ2h0OjEuMixsaW5lR2FwOi4yfSxPcj1bLjc2MTE2LDEsMSwxLjAwMDYsLjk5OTk4LC45OTk3NCwuOTk5NzMsLjk5OTczLC45OTk4MiwuOTk5NzcsMS4wMDA4NywuOTk5OTgsLjk5OTk4LC45OTk1OSwxLjAwMDAzLDEuMDAwNiwuOTk5OTgsMS4wMDA2LDEuMDAwNiwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTk4LDEsMS4wMDAwMywxLjAwMDAzLDEuMDAwMDMsMS4wMDAyNiwuOTk5OSwuOTk5NzcsLjk5OTc3LC45OTk3NywuOTk5NzcsMS4wMDAwMSwxLjAwMDI2LDEuMDAwMjIsLjk5OTc3LDEuMDAwNiwuOTk5NzMsLjk5OTc3LDEuMDAwMjYsLjk5OTk5LC45OTk3NywxLjAwMDIyLDEuMDAwMDEsMS4wMDAyMiwuOTk5NzcsMS4wMDAwMSwxLjAwMDI2LC45OTk3NywxLjAwMDAxLDEuMDAwMTYsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMjYsLjk5OTk4LDEuMDAwNiwuOTk5OTgsMS4wMDAwMywuOTk5NzMsLjk5OTk4LC45OTk3MywxLjAwMDI2LC45OTk3MywxLjAwMDI2LC45OTk3MywuOTk5OTgsMS4wMDAyNiwxLjAwMDI2LDEuMDAwNiwxLjAwMDYsLjk5OTczLDEuMDAwNiwuOTk5ODIsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwuOTk5NTksLjk5OTczLC45OTk5OCwxLjAwMDI2LC45OTk3MywxLjAwMDIyLC45OTk3MywuOTk5NzMsMSwuOTk5NTksMS4wMDA3NywuOTk5NTksMS4wMDAwMywuOTk5OTgsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLDEuMDAwNzcsLjk5OTczLC45OTk5OCwxLjAwMDI1LC45OTk2OCwuOTk5NzMsMS4wMDAwMywxLjAwMDI1LC42MDI5OSwxLjAwMDI0LDEuMDY0MDksMSwxLC45OTk5OCwxLC45OTk3MywxLjAwMDYsLjk5OTk4LDEsLjk5OTM2LC45OTk3MywxLjAwMDAyLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDI2LC45OTk3NywuOTk5NzcsLjk5OTc3LC45OTk3NywuOTk5NzcsLjk5OTc3LDEsLjk5OTc3LDEuMDAwMDEsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LC45OTk3NywuOTk5NzcsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMjIsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMDMsMS4wMDAyMiwuOTk5NzcsLjk5OTc3LC45OTk3NywuOTk5NzcsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMjYsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTgyLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsMS4wNjQwOSwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsLjk5OTczLDEuMDAwMjYsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LDEuMDA0NCwuOTk5NzcsMS4wMDAyNiwxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDIyLDEuMDAwMjYsMS4wMDAyMiwxLjAwMDI2LDEuMDAwMjIsMS4wMDAyNiwxLjAwMDIyLDEuMDAwMjYsLjk5OTc3LDEuMDAwMjYsLjk5OTc3LDEuMDAwMjYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LC45OTk3MSwuOTk5NzMsLjk5OTczLDEuMDAwNiwuOTk5NzcsLjk5OTczLC45OTk3MywxLjAwMDI2LDEuMDAwNiwxLjAwMDI2LDEuMDAwNiwxLjAwMDI2LDEuMDEwMTEsMS4wMDAyNiwuOTk5OTksMS4wMDAyNiwxLjAwMDYsLjk5OTc3LDEuMDAwMjYsLjk5OTc3LDEuMDAwMjYsLjk5OTc3LDEuMDAwMjYsLjk5OTMsLjk5OTgsMS4wMDAyNiwxLjAwMDIyLDEuMDAwMjYsMS4wMDAyMiwxLjAwMDI2LDEuMDAwMjIsMS4wMDAyNiwxLDEuMDAwMTYsLjk5OTc3LC45OTk1OSwuOTk5NzcsLjk5OTU5LC45OTk3NywuOTk5NTksMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsMS4wMDAyNiwuOTk5OTgsMS4wMDAyNiwuODEyMSwxLjAwMDI2LC45OTk5OCwuOTk5NzcsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwuOTk5NzcsMS4wMDAyNiwxLjAwMDE2LDEuMDAwMjIsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwxLjAwMDI2LDEsMS4wMDAyNiwxLDEuMDAwMjYsMSwxLjAwMDYsLjk5OTczLC45OTk3NywuOTk5NzMsMSwuOTk5ODIsMS4wMDAyMiwxLjAwMDI2LDEuMDAwMDEsLjk5OTczLDEuMDAwMjYsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTc3LDEsMSwxLjAwMDI2LC45OTk2OSwuOTk5NzIsLjk5OTgxLC45OTk4LDEuMDAwNiwuOTk5NzcsLjk5OTc3LDEuMDAwMjIsLjkxMTU1LDEuMDAwMDEsMS4wMDAyNiwuOTk5NzcsMS4wMDAyMiwxLjAwMDYsLjk5OTc3LDEuMDAwMDEsLjk5OTk5LC45OTk3NywuOTk5NjYsMS4wMDAyMiwxLjAwMDMyLDEuMDAwMDEsLjk5OTQ0LDEuMDAwMjYsMS4wMDAwMSwuOTk5NjgsMS4wMDAwMSwxLjAwMDQ3LDEsMS4wMDA2LDEuMDAwMDEsLjk5OTgxLDEuMDAxMDEsMS4wMDAyNiwxLjAwMDYsLjk5OTQ4LC45OTk4MSwxLjAwMDY0LC45OTk3MywuOTk5NDIsMS4wMDEwMSwxLjAwMDYxLDEuMDAwMjYsMS4wMDA2OSwxLjAwMDYsMS4wMDAxNCwuOTk5NzMsMS4wMTMyMiwuOTk5NzMsMS4wMDA2NSwxLjAwMDI2LDEuMDAwMTIsLjk5OTIzLDEsMS4wMDA2NCwxLjAwMDc2LC45OTk0OCwxLjAwMDU1LDEuMDAwNjMsMS4wMDAwNywuOTk5NDMsMS4wMDA2LC45OTk0OCwxLjAwMDI2LC45OTk0OCwuOTk5NDMsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMjksMS4wMDAzOCwxLjAwMDM1LDEuMDAwMDEsMS4wMDA2LDEuMDAwNiwuOTk5NzMsLjk5OTc4LDEuMDAwMDEsMS4wMDA1NywuOTk5ODksLjk5OTY3LC45OTk2NCwuOTk5NjcsLjk5OTc3LC45OTk5OSwuOTk5NzcsMS4wMDAzOCwuOTk5NzcsMS4wMDAwMSwuOTk5NzMsMS4wMDA2NiwuOTk5NjcsLjk5OTY3LDEuMDAwNDEsLjk5OTk4LC45OTk5OSwuOTk5NzcsMS4wMDAyMiwuOTk5NjcsMS4wMDAwMSwuOTk5NzcsMS4wMDAyNiwuOTk5NjQsMS4wMDAzMSwxLjAwMDAxLC45OTk5OSwuOTk5OTksMSwxLjAwMDIzLDEsMSwuOTk5OTksMS4wMDAzNSwxLjAwMDAxLC45OTk5OSwuOTk5NzMsLjk5OTc3LC45OTk5OSwxLjAwMDU4LC45OTk3MywuOTk5NzMsLjk5OTU1LC45OTk1LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDMyLC45OTk4OSwxLjAwMDM0LC45OTk5OSwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwuOTk5NzMsLjQ1OTk4LC45OTk3MywxLjAwMDI2LC45OTk3MywxLjAwMDAxLC45OTk5OSwuOTk5ODIsLjk5OTk0LC45OTk5NiwxLDEuMDAwNDIsMS4wMDA0NCwxLjAwMDI5LDEuMDAwMjMsLjk5OTczLC45OTk3MywxLjAwMDI2LC45OTk0OSwxLjAwMDAyLC45OTk3MywxLjAwMDYsMS4wMDA2LDEuMDAwNiwuOTk5NzUsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMzIsLjk4Njg1LC45OTk3MywxLjAwMDI2LDEsMSwuOTk5NjYsMS4wMDA0NCwxLjAwMDE2LDEuMDAwMjIsMS4wMDAxNiwxLjAwMDIyLDEuMDAwMTYsMS4wMDAyMiwxLjAwMDAxLC45OTk3MywxLDEsLjk5OTczLDEsMSwuOTk5NTUsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEsMSwxLC45OTk3MywuOTk5NzMsLjk5OTcyLDEsMSwxLjAwMTA2LC45OTk5OSwuOTk5OTgsLjk5OTk4LC45OTk5OSwuOTk5OTgsMS42NjQ3NSwxLC45OTk3MywuOTk5NzMsMSwuOTk5NzMsLjk5OTcxLC45OTk3OCwxLDEsLjk5OTkxLC45OTk4NCwxLjAwMDAyLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDAyLDEuMDAwOTgsMSwxLDEsMS4wMDA0OSwxLDEsLjk5OTcyLDEsMS4yMDk4NSwxLjM5NzEzLDEuMDAwMDMsMS4wMDAzMSwxLjAwMDE1LDEsLjk5NTYxLDEuMDAwMjcsMS4wMDAzMSwxLjAwMDMxLC45OTkxNSwxLjAwMDMxLDEuMDAwMzEsLjk5OTk5LDEuMDAwMDMsLjk5OTk5LC45OTk5OSwxLjQxMTQ0LDEuNiwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDA1NzksMS40MDU3OSwxLjM2NjI1LC45OTk5OSwxLC45OTg2MSwuOTk4NjEsMSwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LC45OTk3MiwuOTk5OTksLjk5OTk5LC45OTk5OSwuOTk5OTksMS40MDQ4MywxLC45OTk3NywxLjAwMDU0LDEsMSwuOTk5NTMsLjk5OTYyLDEuMDAwNDIsLjk5OTUsMSwxLDEsMSwxLDEsMSwxLC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLFJyPXtsaW5lSGVpZ2h0OjEuMzUsbGluZUdhcDouMn0sSHI9Wy43NjExNiwxLDEsMS4wMDA2LDEuMDAwNiwxLjAwMDA2LC45OTk3MywuOTk5NzMsLjk5OTgyLDEuMDAwMDEsMS4wMDA0MywuOTk5OTgsLjk5OTk4LC45OTk1OSwxLjAwMDAzLDEuMDAwNiwuOTk5OTgsMS4wMDA2LDEuMDAwNiwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wMDA2LDEsMS4wMDAwMywxLjAwMDAzLDEuMDAwMDMsLjk5OTczLC45OTk4NywxLjAwMDAxLDEuMDAwMDEsLjk5OTc3LC45OTk3NywxLjAwMDAxLDEuMDAwMjYsMS4wMDAyMiwuOTk5NzcsMS4wMDA2LDEsMS4wMDAwMSwuOTk5NzMsLjk5OTk5LC45OTk3NywxLjAwMDIyLDEuMDAwMDEsMS4wMDAyMiwuOTk5NzcsMS4wMDAwMSwxLjAwMDI2LC45OTk3NywxLjAwMDAxLDEuMDAwMTYsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMjYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsLjk5OTQ5LC45OTk3MywuOTk5OTgsLjk5OTczLC45OTk3MywxLC45OTk3MywuOTk5NzMsMS4wMDA2LC45OTk3MywuOTk5NzMsLjk5OTI0LC45OTkyNCwxLC45OTkyNCwuOTk5OTksLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk5OCwxLDEuMDAwNiwuOTk5NzMsMSwuOTk5NzcsMSwxLDEsMS4wMDAwNSwxLjAwMDksMS4wMDAwNSwxLjAwMDAzLC45OTk5OCwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wMDA5LC45OTk3MywuOTk5OTgsMS4wMDAyNSwuOTk5NjgsLjk5OTczLDEuMDAwMDMsMS4wMDAyNSwuNjAyOTksMS4wMDAyNCwxLjA2NDA5LDEsMSwuOTk5OTgsMSwuOTk5OCwxLjAwMDYsLjk5OTk4LDEsLjk5OTM2LC45OTk3MywxLjAwMDAyLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDI2LDEuMDAwMDEsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDAwMSwxLjAwMDAxLDEsLjk5OTc3LDEuMDAwMDEsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LC45OTk3NywuOTk5NzcsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMjIsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMDMsMS4wMDAyMiwuOTk5NzcsLjk5OTc3LC45OTk3NywuOTk5NzcsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMjYsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTgyLDEsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wNjQwOSwxLjAwMDI2LC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywxLC45OTk3MywxLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLDEuMDAwMDEsLjk5OTczLC45OTk3NywxLC45OTk3NywxLC45OTk3NywxLC45OTk3NywxLC45OTk3NywxLjAyODgsLjk5OTc3LC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDIyLC45OTk3MywxLjAwMDIyLC45OTk3MywxLjAwMDIyLC45OTk3MywxLjAwMDIyLC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LC45OTkyNCwxLjAwMDYsMS4wMDA2LC45OTk0NiwxLjAwMDM0LDEsLjk5OTI0LDEuMDAwMDEsMSwxLC45OTk3MywuOTk5MjQsLjk5OTczLC45OTkyNCwuOTk5NzMsMS4wNjMxMSwuOTk5NzMsMS4wMDAyNCwuOTk5NzMsLjk5OTI0LC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLDEuMDAwNDEsLjk5OTgsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEsMS4wMDAxNiwuOTk5NzcsLjk5OTk4LC45OTk3NywuOTk5OTgsLjk5OTc3LC45OTk5OCwxLjAwMDAxLDEsMS4wMDAwMSwxLDEuMDAwMDEsMSwxLjAwMDAxLDEsMS4wMDAyNiwxLjAwMDYsMS4wMDAyNiwuODk1NDcsMS4wMDAyNiwxLjAwMDYsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsMS4wMDAxNiwuOTk5NzcsMS4wMDAwMSwxLDEuMDAwMDEsMS4wMDAyNiwxLDEuMDAwMjYsMSwxLjAwMDI2LDEsLjk5OTI0LC45OTk3MywxLjAwMDAxLC45OTk3MywxLC45OTk4MiwxLjAwMDIyLDEuMDAwMjYsMS4wMDAwMSwxLDEuMDAwMjYsMS4wMDA2LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsMS4wMDAwMSwxLDEuMDAwNTQsLjk5OTc3LDEuMDAwODQsMS4wMDAwNywuOTk5NzMsMS4wMDAxMywuOTk5MjQsMS4wMDAwMSwxLjAwMDAxLC45OTk0NSwuOTEyMjEsMS4wMDAwMSwxLjAwMDI2LC45OTk3NywxLjAwMDIyLDEuMDAwNiwxLjAwMDAxLDEuMDAwMDEsLjk5OTk5LC45OTk3NywuOTk5MzMsMS4wMDAyMiwxLjAwMDU0LDEuMDAwMDEsMS4wMDA2NSwxLjAwMDI2LDEuMDAwMDEsMS4wMDAxLDEuMDAwMDEsMS4wMDA1MiwxLDEuMDAwNiwxLjAwMDAxLC45OTk0NSwuOTk4OTcsLjk5OTY4LC45OTkyNCwxLjAwMDM2LC45OTk0NSwuOTk5NDksMSwxLjAwMDYsLjk5ODk3LC45OTkxOCwuOTk5NjgsLjk5OTExLC45OTkyNCwxLC45OTk2MiwxLjAxNDg3LDEsMS4wMDA1LC45OTk3MywxLjAwMDEyLDEuMDAwNDMsMSwuOTk5OTUsLjk5OTk0LDEuMDAwMzYsLjk5OTQ3LDEuMDAwMTksMS4wMDA2MywxLjAwMDI1LC45OTkyNCwxLjAwMDM2LC45OTk3MywxLjAwMDM2LDEuMDAwMjUsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMjcsMS4wMDAxLDEuMDAwNjgsMS4wMDAwMSwxLjAwMDYsMS4wMDA2LDEsMS4wMDAwOCwuOTk5NTcsLjk5OTcyLC45OTk0LC45OTk1NCwuOTk5NzUsMS4wMDA1MSwxLjAwMDAxLDEuMDAwMTksMS4wMDAwMSwxLjAwMDEsLjk5OTg2LDEuMDAwMDEsMS4wMDAwMSwxLjAwMDM4LC45OTk1NCwuOTk5NTQsLjk5OTQsMS4wMDA2NiwuOTk5OTksLjk5OTc3LDEuMDAwMjIsMS4wMDA1NCwxLjAwMDAxLC45OTk3NywxLjAwMDI2LC45OTk3NSwxLjAwMDEsMS4wMDAwMSwuOTk5OTMsLjk5OTUsLjk5OTU1LDEuMDAwMTYsLjk5OTc4LC45OTk3NCwxLjAwMDE5LDEuMDAwMjIsLjk5OTU1LDEuMDAwNTMsLjk5OTczLDEuMDAwODksMS4wMDAwNSwuOTk5NjcsMS4wMDA0OCwuOTk5NzMsMS4wMDAwMiwxLjAwMDM0LC45OTk3MywuOTk5NzMsLjk5OTY0LDEuMDAwMDYsMS4wMDA2NiwuOTk5NDcsLjk5OTczLC45ODg5NCwuOTk5NzMsMSwuNDQ4OTgsMSwuOTk5NDYsMSwxLjAwMDM5LDEuMDAwODIsLjk5OTkxLC45OTk5MSwuOTk5ODUsMS4wMDAyMiwxLjAwMDIzLDEuMDAwNjEsMS4wMDAwNiwuOTk5NjYsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wMDAxOSwxLjAwMDgsMSwuOTk5MjQsLjk5OTI0LC45OTkyNCwuOTk5ODMsMS4wMDA0NCwuOTk5NzMsLjk5OTY0LC45ODMzMiwxLC45OTk3MywxLDEsLjk5OTYyLC45OTg5NSwxLjAwMDE2LC45OTk3NywxLjAwMDE2LC45OTk3NywxLjAwMDE2LC45OTk3NywxLjAwMDAxLDEsMSwxLC45OTk3MywxLDEsLjk5OTU1LC45OTkyNCwuOTk5MjQsLjk5OTI0LC45OTkyNCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5NzMsLjk5OTczLC45OTk3MiwxLDEsMS4wMDI2NywuOTk5OTksLjk5OTk4LC45OTk5OCwxLC45OTk5OCwxLjY2NDc1LDEsLjk5OTczLC45OTk3MywxLjAwMDIzLC45OTk3MywxLjAwNDIzLC45OTkyNSwuOTk5OTksMSwuOTk5OTEsLjk5OTg0LDEuMDAwMDIsMS4wMDAwMiwxLjAwMDAyLDEuMDAwMDIsMS4wMDA0OSwxLDEuMDAyNDUsMSwxLDEsMSwuOTYzMjksMSwxLjIwOTg1LDEuMzk3MTMsMS4wMDAwMywuODI1NCwxLjAwMDE1LDEsMS4wMDAzNSwxLjAwMDI3LDEuMDAwMzEsMS4wMDAzMSwxLjAwMDAzLDEuMDAwMzEsMS4wMDAzMSwuOTk5OTksMS4wMDAwMywuOTk5OTksLjk5OTk5LDEuNDExNDQsMS42LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MDU3OSwxLjQwNTc5LDEuMzY2MjUsLjk5OTk5LDEsLjk5ODYxLC45OTg2MSwxLDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LDEuMDAwMjYsLjk1MzE3LC45OTk5OSwuOTk5OTksLjk5OTk5LC45OTk5OSwxLjQwNDgzLDEsLjk5OTc3LDEuMDAwNTQsMSwxLC45OTk1MywuOTk5NjIsMS4wMDA0MiwuOTk5NSwxLDEsMSwxLDEsMSwxLDEsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LDEsMSwxLDEsMSwxLDEsMSwxLDEsMV0sRHI9e2xpbmVIZWlnaHQ6MS4zNSxsaW5lR2FwOi4yfSxNcj1bLjc2MTE2LDEsMSwxLjAwMDYsMS4wMDA2LDEuMDAwMDYsLjk5OTczLC45OTk3MywuOTk5ODIsMS4wMDAwMSwxLjAwMDQzLC45OTk5OCwuOTk5OTgsLjk5OTU5LDEuMDAwMDMsMS4wMDA2LC45OTk5OCwxLjAwMDYsMS4wMDA2LC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywxLjAwMDYsMSwxLjAwMDAzLDEuMDAwMDMsMS4wMDAwMywuOTk5NzMsLjk5OTg3LDEuMDAwMDEsMS4wMDAwMSwuOTk5NzcsLjk5OTc3LDEuMDAwMDEsMS4wMDAyNiwxLjAwMDIyLC45OTk3NywxLjAwMDYsMSwxLjAwMDAxLC45OTk3MywuOTk5OTksLjk5OTc3LDEuMDAwMjIsMS4wMDAwMSwxLjAwMDIyLC45OTk3NywxLjAwMDAxLDEuMDAwMjYsLjk5OTc3LDEuMDAwMDEsMS4wMDAxNiwxLjAwMDAxLDEuMDAwMDEsMS4wMDAyNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwuOTk5NDksLjk5OTczLC45OTk5OCwuOTk5NzMsLjk5OTczLDEsLjk5OTczLC45OTk3MywxLjAwMDYsLjk5OTczLC45OTk3MywuOTk5MjQsLjk5OTI0LDEsLjk5OTI0LC45OTk5OSwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTk4LDEsMS4wMDA2LC45OTk3MywxLC45OTk3NywxLDEsMSwxLjAwMDA1LDEuMDAwOSwxLjAwMDA1LDEuMDAwMDMsLjk5OTk4LC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywxLjAwMDksLjk5OTczLC45OTk5OCwxLjAwMDI1LC45OTk2OCwuOTk5NzMsMS4wMDAwMywxLjAwMDI1LC42MDI5OSwxLjAwMDI0LDEuMDY0MDksMSwxLC45OTk5OCwxLC45OTk4LDEuMDAwNiwuOTk5OTgsMSwuOTk5MzYsLjk5OTczLDEuMDAwMDIsMS4wMDAwMiwxLjAwMDAyLDEuMDAwMjYsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMSwuOTk5NzcsMS4wMDAwMSwxLjAwMDAxLDEuMDAwMDEsMS4wMDAwMSwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsLjk5OTc3LC45OTk3NywxLjAwMDIyLDEuMDAwMjIsMS4wMDAyMiwxLjAwMDIyLDEuMDAwMjIsMS4wMDAwMywxLjAwMDIyLC45OTk3NywuOTk5NzcsLjk5OTc3LC45OTk3NywxLjAwMDAxLDEuMDAwMDEsMS4wMDAyNiwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5ODIsMSwuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLC45OTk3MywxLjA2NDA5LDEuMDAwMjYsLjk5OTczLC45OTk3MywuOTk5NzMsLjk5OTczLDEsLjk5OTczLDEsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsMS4wMDAwMSwuOTk5NzMsLjk5OTc3LDEsLjk5OTc3LDEsLjk5OTc3LDEsLjk5OTc3LDEsLjk5OTc3LDEuMDQ1OTYsLjk5OTc3LC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDAxLC45OTk3MywxLjAwMDIyLC45OTk3MywxLjAwMDIyLC45OTk3MywxLjAwMDIyLC45OTk3MywxLjAwMDIyLC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LDEuMDAwNiwxLjAwMDYsMS4wMDA2LC45OTkyNCwxLjAwMDYsMS4wMDA2LDEuMDAwMTksMS4wMDAzNCwxLC45OTkyNCwxLjAwMDAxLDEsMSwuOTk5NzMsLjk5OTI0LC45OTk3MywuOTk5MjQsLjk5OTczLDEuMDI1NzIsLjk5OTczLDEuMDAwMDUsLjk5OTczLC45OTkyNCwuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5OTksLjk5OTgsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEuMDAwMjIsLjk5OTczLDEsMS4wMDAxNiwuOTk5NzcsLjk5OTk4LC45OTk3NywuOTk5OTgsLjk5OTc3LC45OTk5OCwxLjAwMDAxLDEsMS4wMDAwMSwxLDEuMDAwMDEsMSwxLjAwMDAxLDEsMS4wMDAyNiwxLjAwMDYsMS4wMDAyNiwuODQ1MzMsMS4wMDAyNiwxLjAwMDYsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsLjk5OTc3LC45OTk3MywuOTk5NzcsLjk5OTczLC45OTk3NywuOTk5NzMsMS4wMDAxNiwuOTk5NzcsMS4wMDAwMSwxLDEuMDAwMDEsMS4wMDAyNiwxLDEuMDAwMjYsMSwxLjAwMDI2LDEsLjk5OTI0LC45OTk3MywxLjAwMDAxLC45OTk3MywxLC45OTk4MiwxLjAwMDIyLDEuMDAwMjYsMS4wMDAwMSwxLDEuMDAwMjYsMS4wMDA2LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk5OCwuOTk5OTgsLjk5OTI4LDEsLjk5OTc3LDEuMDAwMTMsMS4wMDA1NSwuOTk5NDcsLjk5OTQ1LC45OTk0MSwuOTk5MjQsMS4wMDAwMSwxLjAwMDAxLDEuMDAwNCwuOTE2MjEsMS4wMDAwMSwxLjAwMDI2LC45OTk3NywxLjAwMDIyLDEuMDAwNiwxLjAwMDAxLDEuMDAwMDUsLjk5OTk5LC45OTk3NywxLjAwMDE1LDEuMDAwMjIsLjk5OTc3LDEuMDAwMDEsLjk5OTczLDEuMDAwMjYsMS4wMDAwMSwxLjAwMDE5LDEuMDAwMDEsLjk5OTQ2LDEsMS4wMDA2LDEuMDAwMDEsLjk5OTc4LDEuMDAwNDUsLjk5OTczLC45OTkyNCwxLjAwMDIzLC45OTk3OCwuOTk5NjYsMSwxLjAwMDY1LDEuMDAwNDUsMS4wMDAxOSwuOTk5NzMsLjk5OTczLC45OTkyNCwxLDEsLjk2NDk5LDEsMS4wMDA1NSwuOTk5NzMsMS4wMDAwOCwxLjAwMDI3LDEsLjk5OTcsLjk5OTk1LDEuMDAwMjMsLjk5OTMzLDEuMDAwMTksMS4wMDAxNSwxLjAwMDMxLC45OTkyNCwxLjAwMDIzLC45OTk3MywxLjAwMDIzLDEuMDAwMzEsMS4wMDAwMSwuOTk5MjgsMS4wMDAyOSwxLjAwMDkyLDEuMDAwMzUsMS4wMDAwMSwxLjAwMDYsMS4wMDA2LDEsLjk5OTg4LC45OTk3NSwxLDEuMDAwODIsLjk5NTYxLC45OTk2LDEuMDAwMzUsMS4wMDAwMSwuOTk5NjIsMS4wMDAwMSwxLjAwMDkyLC45OTk2NCwxLjAwMDAxLC45OTk2MywuOTk5OTksMS4wMDAzNSwxLjAwMDM1LDEuMDAwODIsLjk5OTYyLC45OTk5OSwuOTk5NzcsMS4wMDAyMiwxLjAwMDM1LDEuMDAwMDEsLjk5OTc3LDEuMDAwMjYsLjk5OTYsLjk5OTY3LDEuMDAwMDEsMS4wMDAzNCwxLjAwMDc0LDEuMDAwNTQsMS4wMDA1MywxLjAwMDYzLC45OTk3MSwuOTk5NjIsMS4wMDAzNSwuOTk5NzUsLjk5OTc3LC45OTk3MywxLjAwMDQzLC45OTk1MywxLjAwMDcsLjk5OTE1LC45OTk3MywxLjAwMDA4LC45OTg5MiwxLjAwMDczLDEuMDAwNzMsMS4wMDExNCwuOTk5MTUsMS4wMDA3MywuOTk5NTUsLjk5OTczLDEuMDAwOTIsLjk5OTczLDEsLjk5OTk4LDEsMS4wMDAzLDEsMS4wMDA0MywxLjAwMDAxLC45OTk2OSwxLjAwMDMsMSwxLjAwMDM1LDEuMDAwMDEsLjk5OTUsMSwxLjAwMDkyLC45OTk3MywuOTk5NzMsLjk5OTczLDEuMDAwNywuOTk5NSwxLC45OTkyNCwxLjAwMDYsLjk5OTI0LC45OTk3MiwxLjAwMDYyLC45OTk3MywxLjAwMTE0LDEuMDAwNzMsMSwuOTk5NTUsMSwxLDEuMDAwNDcsLjk5OTY4LDEuMDAwMTYsLjk5OTc3LDEuMDAwMTYsLjk5OTc3LDEuMDAwMTYsLjk5OTc3LDEuMDAwMDEsMSwxLDEsLjk5OTczLDEsMSwuOTk5NTUsLjk5OTI0LC45OTkyNCwuOTk5MjQsLjk5OTI0LC45OTk5OCwuOTk5OTgsLjk5OTk4LC45OTk3MywuOTk5NzMsLjk5OTcyLDEsMSwxLjAwMjY3LC45OTk5OSwuOTk5OTgsLjk5OTk4LDEsLjk5OTk4LDEuNjY0NzUsMSwuOTk5NzMsLjk5OTczLDEuMDAwMjMsLjk5OTczLC45OTk3MSwuOTk5MjUsMS4wMDAyMywxLC45OTk5MSwuOTk5ODQsMS4wMDAwMiwxLjAwMDAyLDEuMDAwMDIsMS4wMDAwMiwxLDEsMSwxLDEsMSwxLC45NjMyOSwxLDEuMjA5ODUsMS4zOTcxMywxLjAwMDAzLC44MjU0LDEuMDAwMTUsMSwxLjAwMDM1LDEuMDAwMjcsMS4wMDAzMSwxLjAwMDMxLC45OTkxNSwxLjAwMDMxLDEuMDAwMzEsLjk5OTk5LDEuMDAwMDMsLjk5OTk5LC45OTk5OSwxLjQxMTQ0LDEuNiwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDExNDQsMS40MTE0NCwxLjQxMTQ0LDEuNDA1NzksMS40MDU3OSwxLjM2NjI1LC45OTk5OSwxLC45OTg2MSwuOTk4NjEsMSwxLjAwMDI2LDEuMDAwMjYsMS4wMDAyNiwxLjAwMDI2LC45NTMxNywuOTk5OTksLjk5OTk5LC45OTk5OSwuOTk5OTksMS40MDQ4MywxLC45OTk3NywxLjAwMDU0LDEsMSwuOTk5NTMsLjk5OTYyLDEuMDAwNDIsLjk5OTUsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxXSxQcj17bGluZUhlaWdodDoxLjIsbGluZUdhcDouMn0sRXI9WzM2NSwwLDMzMywyNzgsMzMzLDQ3NCw1NTYsNTU2LDg4OSw3MjIsMjM4LDMzMywzMzMsMzg5LDU4NCwyNzgsMzMzLDI3OCwyNzgsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDMzMywzMzMsNTg0LDU4NCw1ODQsNjExLDk3NSw3MjIsNzIyLDcyMiw3MjIsNjY3LDYxMSw3NzgsNzIyLDI3OCw1NTYsNzIyLDYxMSw4MzMsNzIyLDc3OCw2NjcsNzc4LDcyMiw2NjcsNjExLDcyMiw2NjcsOTQ0LDY2Nyw2NjcsNjExLDMzMywyNzgsMzMzLDU4NCw1NTYsMzMzLDU1Niw2MTEsNTU2LDYxMSw1NTYsMzMzLDYxMSw2MTEsMjc4LDI3OCw1NTYsMjc4LDg4OSw2MTEsNjExLDYxMSw2MTEsMzg5LDU1NiwzMzMsNjExLDU1Niw3NzgsNTU2LDU1Niw1MDAsMzg5LDI4MCwzODksNTg0LDMzMyw1NTYsNTU2LDU1Niw1NTYsMjgwLDU1NiwzMzMsNzM3LDM3MCw1NTYsNTg0LDczNyw1NTIsNDAwLDU0OSwzMzMsMzMzLDMzMyw1NzYsNTU2LDI3OCwzMzMsMzMzLDM2NSw1NTYsODM0LDgzNCw4MzQsNjExLDcyMiw3MjIsNzIyLDcyMiw3MjIsNzIyLDFlMyw3MjIsNjY3LDY2Nyw2NjcsNjY3LDI3OCwyNzgsMjc4LDI3OCw3MjIsNzIyLDc3OCw3NzgsNzc4LDc3OCw3NzgsNTg0LDc3OCw3MjIsNzIyLDcyMiw3MjIsNjY3LDY2Nyw2MTEsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsODg5LDU1Niw1NTYsNTU2LDU1Niw1NTYsMjc4LDI3OCwyNzgsMjc4LDYxMSw2MTEsNjExLDYxMSw2MTEsNjExLDYxMSw1NDksNjExLDYxMSw2MTEsNjExLDYxMSw1NTYsNjExLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw3MTksNzIyLDYxMSw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNzc4LDYxMSw3NzgsNjExLDc3OCw2MTEsNzc4LDYxMSw3MjIsNjExLDcyMiw2MTEsMjc4LDI3OCwyNzgsMjc4LDI3OCwyNzgsMjc4LDI3OCwyNzgsMjc4LDc4NSw1NTYsNTU2LDI3OCw3MjIsNTU2LDU1Niw2MTEsMjc4LDYxMSwyNzgsNjExLDM4NSw2MTEsNDc5LDYxMSwyNzgsNzIyLDYxMSw3MjIsNjExLDcyMiw2MTEsNzA4LDcyMyw2MTEsNzc4LDYxMSw3NzgsNjExLDc3OCw2MTEsMWUzLDk0NCw3MjIsMzg5LDcyMiwzODksNzIyLDM4OSw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDYxMSwzMzMsNjExLDQ3OSw2MTEsMzMzLDcyMiw2MTEsNzIyLDYxMSw3MjIsNjExLDcyMiw2MTEsNzIyLDYxMSw3MjIsNjExLDk0NCw3NzgsNjY3LDU1Niw2NjcsNjExLDUwMCw2MTEsNTAwLDYxMSw1MDAsMjc4LDU1Niw3MjIsNTU2LDFlMyw4ODksNzc4LDYxMSw2NjcsNTU2LDYxMSwzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDQ2NSw3MjIsMzMzLDg1Myw5MDYsNDc0LDgyNSw5MjcsODM4LDI3OCw3MjIsNzIyLDYwMSw3MTksNjY3LDYxMSw3MjIsNzc4LDI3OCw3MjIsNjY3LDgzMyw3MjIsNjQ0LDc3OCw3MjIsNjY3LDYwMCw2MTEsNjY3LDgyMSw2NjcsODA5LDgwMiwyNzgsNjY3LDYxNSw0NTEsNjExLDI3OCw1ODIsNjE1LDYxMCw1NTYsNjA2LDQ3NSw0NjAsNjExLDU0MSwyNzgsNTU4LDU1Niw2MTIsNTU2LDQ0NSw2MTEsNzY2LDYxOSw1MjAsNjg0LDQ0Niw1ODIsNzE1LDU3Niw3NTMsODQ1LDI3OCw1ODIsNjExLDU4Miw4NDUsNjY3LDY2OSw4ODUsNTY3LDcxMSw2NjcsMjc4LDI3Niw1NTYsMTA5NCwxMDYyLDg3NSw2MTAsNzIyLDYyMiw3MTksNzIyLDcxOSw3MjIsNTY3LDcxMiw2NjcsOTA0LDYyNiw3MTksNzE5LDYxMCw3MDIsODMzLDcyMiw3NzgsNzE5LDY2Nyw3MjIsNjExLDYyMiw4NTQsNjY3LDczMCw3MDMsMTAwNSwxMDE5LDg3MCw5NzksNzE5LDcxMSwxMDMxLDcxOSw1NTYsNjE4LDYxNSw0MTcsNjM1LDU1Niw3MDksNDk3LDYxNSw2MTUsNTAwLDYzNSw3NDAsNjA0LDYxMSw2MDQsNjExLDU1Niw0OTAsNTU2LDg3NSw1NTYsNjE1LDU4MSw4MzMsODQ0LDcyOSw4NTQsNjE1LDU1Miw4NTQsNTgzLDU1Niw1NTYsNjExLDQxNyw1NTIsNTU2LDI3OCwyODEsMjc4LDk2OSw5MDYsNjExLDUwMCw2MTUsNTU2LDYwNCw3NzgsNjExLDQ4Nyw0NDcsOTQ0LDc3OCw5NDQsNzc4LDk0NCw3NzgsNjY3LDU1NiwzMzMsMzMzLDU1NiwxZTMsMWUzLDU1MiwyNzgsMjc4LDI3OCwyNzgsNTAwLDUwMCw1MDAsNTU2LDU1NiwzNTAsMWUzLDFlMywyNDAsNDc5LDMzMywzMzMsNjA0LDMzMywxNjcsMzk2LDU1Niw1NTYsMTA5NCw1NTYsODg1LDQ4OSwxMTE1LDFlMyw3NjgsNjAwLDgzNCw4MzQsODM0LDgzNCwxZTMsNTAwLDFlMyw1MDAsMWUzLDUwMCw1MDAsNDk0LDYxMiw4MjMsNzEzLDU4NCw1NDksNzEzLDk3OSw3MjIsMjc0LDU0OSw1NDksNTgzLDU0OSw1NDksNjA0LDU4NCw2MDQsNjA0LDcwOCw2MjUsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzI5LDYwNCw2MDQsMzU0LDM1NCwxZTMsOTkwLDk5MCw5OTAsOTkwLDQ5NCw2MDQsNjA0LDYwNCw2MDQsMzU0LDEwMjEsMTA1Miw5MTcsNzUwLDc1MCw1MzEsNjU2LDU5NCw1MTAsNTAwLDc1MCw3NTAsNjExLDYxMSwzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDIyMiwyMjIsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzM10sTnI9Wy0xLC0xLC0xLDMyLDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLDQyLDQzLDQ0LDQ1LDQ2LDQ3LDQ4LDQ5LDUwLDUxLDUyLDUzLDU0LDU1LDU2LDU3LDU4LDU5LDYwLDYxLDYyLDYzLDY0LDY1LDY2LDY3LDY4LDY5LDcwLDcxLDcyLDczLDc0LDc1LDc2LDc3LDc4LDc5LDgwLDgxLDgyLDgzLDg0LDg1LDg2LDg3LDg4LDg5LDkwLDkxLDkyLDkzLDk0LDk1LDk2LDk3LDk4LDk5LDEwMCwxMDEsMTAyLDEwMywxMDQsMTA1LDEwNiwxMDcsMTA4LDEwOSwxMTAsMTExLDExMiwxMTMsMTE0LDExNSwxMTYsMTE3LDExOCwxMTksMTIwLDEyMSwxMjIsMTIzLDEyNCwxMjUsMTI2LDE2MSwxNjIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MCwxNzEsMTcyLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1LDE4NiwxODcsMTg4LDE4OSwxOTAsMTkxLDE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyMDgsMjA5LDIxMCwyMTEsMjEyLDIxMywyMTQsMjE1LDIxNiwyMTcsMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMsMjI0LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIzNywyMzgsMjM5LDI0MCwyNDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcsMjQ4LDI0OSwyNTAsMjUxLDI1MiwyNTMsMjU0LDI1NSwyNTYsMjU3LDI1OCwyNTksMjYwLDI2MSwyNjIsMjYzLDI2NCwyNjUsMjY2LDI2NywyNjgsMjY5LDI3MCwyNzEsMjcyLDI3MywyNzQsMjc1LDI3NiwyNzcsMjc4LDI3OSwyODAsMjgxLDI4MiwyODMsMjg0LDI4NSwyODYsMjg3LDI4OCwyODksMjkwLDI5MSwyOTIsMjkzLDI5NCwyOTUsMjk2LDI5NywyOTgsMjk5LDMwMCwzMDEsMzAyLDMwMywzMDQsMzA1LDMwNiwzMDcsMzA4LDMwOSwzMTAsMzExLDMxMiwzMTMsMzE0LDMxNSwzMTYsMzE3LDMxOCwzMTksMzIwLDMyMSwzMjIsMzIzLDMyNCwzMjUsMzI2LDMyNywzMjgsMzI5LDMzMCwzMzEsMzMyLDMzMywzMzQsMzM1LDMzNiwzMzcsMzM4LDMzOSwzNDAsMzQxLDM0MiwzNDMsMzQ0LDM0NSwzNDYsMzQ3LDM0OCwzNDksMzUwLDM1MSwzNTIsMzUzLDM1NCwzNTUsMzU2LDM1NywzNTgsMzU5LDM2MCwzNjEsMzYyLDM2MywzNjQsMzY1LDM2NiwzNjcsMzY4LDM2OSwzNzAsMzcxLDM3MiwzNzMsMzc0LDM3NSwzNzYsMzc3LDM3OCwzNzksMzgwLDM4MSwzODIsMzgzLDQwMiw1MDYsNTA3LDUwOCw1MDksNTEwLDUxMSw1MzYsNTM3LDUzOCw1MzksNzEwLDcxMSw3MTMsNzI4LDcyOSw3MzAsNzMxLDczMiw3MzMsOTAwLDkwMSw5MDIsOTAzLDkwNCw5MDUsOTA2LDkwOCw5MTAsOTExLDkxMiw5MTMsOTE0LDkxNSw5MTYsOTE3LDkxOCw5MTksOTIwLDkyMSw5MjIsOTIzLDkyNCw5MjUsOTI2LDkyNyw5MjgsOTI5LDkzMSw5MzIsOTMzLDkzNCw5MzUsOTM2LDkzNyw5MzgsOTM5LDk0MCw5NDEsOTQyLDk0Myw5NDQsOTQ1LDk0Niw5NDcsOTQ4LDk0OSw5NTAsOTUxLDk1Miw5NTMsOTU0LDk1NSw5NTYsOTU3LDk1OCw5NTksOTYwLDk2MSw5NjIsOTYzLDk2NCw5NjUsOTY2LDk2Nyw5NjgsOTY5LDk3MCw5NzEsOTcyLDk3Myw5NzQsMTAyNCwxMDI1LDEwMjYsMTAyNywxMDI4LDEwMjksMTAzMCwxMDMxLDEwMzIsMTAzMywxMDM0LDEwMzUsMTAzNiwxMDM3LDEwMzgsMTAzOSwxMDQwLDEwNDEsMTA0MiwxMDQzLDEwNDQsMTA0NSwxMDQ2LDEwNDcsMTA0OCwxMDQ5LDEwNTAsMTA1MSwxMDUyLDEwNTMsMTA1NCwxMDU1LDEwNTYsMTA1NywxMDU4LDEwNTksMTA2MCwxMDYxLDEwNjIsMTA2MywxMDY0LDEwNjUsMTA2NiwxMDY3LDEwNjgsMTA2OSwxMDcwLDEwNzEsMTA3MiwxMDczLDEwNzQsMTA3NSwxMDc2LDEwNzcsMTA3OCwxMDc5LDEwODAsMTA4MSwxMDgyLDEwODMsMTA4NCwxMDg1LDEwODYsMTA4NywxMDg4LDEwODksMTA5MCwxMDkxLDEwOTIsMTA5MywxMDk0LDEwOTUsMTA5NiwxMDk3LDEwOTgsMTA5OSwxMTAwLDExMDEsMTEwMiwxMTAzLDExMDQsMTEwNSwxMTA2LDExMDcsMTEwOCwxMTA5LDExMTAsMTExMSwxMTEyLDExMTMsMTExNCwxMTE1LDExMTYsMTExNywxMTE4LDExMTksMTEzOCwxMTM5LDExNjgsMTE2OSw3ODA4LDc4MDksNzgxMCw3ODExLDc4MTIsNzgxMyw3OTIyLDc5MjMsODIwOCw4MjA5LDgyMTEsODIxMiw4MjEzLDgyMTUsODIxNiw4MjE3LDgyMTgsODIxOSw4MjIwLDgyMjEsODIyMiw4MjI0LDgyMjUsODIyNiw4MjMwLDgyNDAsODI0Miw4MjQzLDgyNDksODI1MCw4MjUyLDgyNTQsODI2MCw4MzE5LDgzNTUsODM1Niw4MzU5LDgzNjQsODQ1Myw4NDY3LDg0NzAsODQ4Miw4NDg2LDg0OTQsODUzOSw4NTQwLDg1NDEsODU0Miw4NTkyLDg1OTMsODU5NCw4NTk1LDg1OTYsODU5Nyw4NjE2LDg3MDYsODcxMCw4NzE5LDg3MjEsODcyMiw4NzMwLDg3MzQsODczNSw4NzQ1LDg3NDcsODc3Niw4ODAwLDg4MDEsODgwNCw4ODA1LDg5NjIsODk3Niw4OTkyLDg5OTMsOTQ3Miw5NDc0LDk0ODQsOTQ4OCw5NDkyLDk0OTYsOTUwMCw5NTA4LDk1MTYsOTUyNCw5NTMyLDk1NTIsOTU1Myw5NTU0LDk1NTUsOTU1Niw5NTU3LDk1NTgsOTU1OSw5NTYwLDk1NjEsOTU2Miw5NTYzLDk1NjQsOTU2NSw5NTY2LDk1NjcsOTU2OCw5NTY5LDk1NzAsOTU3MSw5NTcyLDk1NzMsOTU3NCw5NTc1LDk1NzYsOTU3Nyw5NTc4LDk1NzksOTU4MCw5NjAwLDk2MDQsOTYwOCw5NjEyLDk2MTYsOTYxNyw5NjE4LDk2MTksOTYzMiw5NjMzLDk2NDIsOTY0Myw5NjQ0LDk2NTAsOTY1OCw5NjYwLDk2NjgsOTY3NCw5Njc1LDk2NzksOTY4OCw5Njg5LDk3MDIsOTc4Niw5Nzg3LDk3ODgsOTc5Miw5Nzk0LDk4MjQsOTgyNyw5ODI5LDk4MzAsOTgzNCw5ODM1LDk4MzYsNjE0NDEsNjE0NDIsNjE0NDUsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTEsLTFdLHpyPVszNjUsMCwzMzMsMjc4LDMzMyw0NzQsNTU2LDU1Niw4ODksNzIyLDIzOCwzMzMsMzMzLDM4OSw1ODQsMjc4LDMzMywyNzgsMjc4LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1NiwzMzMsMzMzLDU4NCw1ODQsNTg0LDYxMSw5NzUsNzIyLDcyMiw3MjIsNzIyLDY2Nyw2MTEsNzc4LDcyMiwyNzgsNTU2LDcyMiw2MTEsODMzLDcyMiw3NzgsNjY3LDc3OCw3MjIsNjY3LDYxMSw3MjIsNjY3LDk0NCw2NjcsNjY3LDYxMSwzMzMsMjc4LDMzMyw1ODQsNTU2LDMzMyw1NTYsNjExLDU1Niw2MTEsNTU2LDMzMyw2MTEsNjExLDI3OCwyNzgsNTU2LDI3OCw4ODksNjExLDYxMSw2MTEsNjExLDM4OSw1NTYsMzMzLDYxMSw1NTYsNzc4LDU1Niw1NTYsNTAwLDM4OSwyODAsMzg5LDU4NCwzMzMsNTU2LDU1Niw1NTYsNTU2LDI4MCw1NTYsMzMzLDczNywzNzAsNTU2LDU4NCw3MzcsNTUyLDQwMCw1NDksMzMzLDMzMywzMzMsNTc2LDU1NiwyNzgsMzMzLDMzMywzNjUsNTU2LDgzNCw4MzQsODM0LDYxMSw3MjIsNzIyLDcyMiw3MjIsNzIyLDcyMiwxZTMsNzIyLDY2Nyw2NjcsNjY3LDY2NywyNzgsMjc4LDI3OCwyNzgsNzIyLDcyMiw3NzgsNzc4LDc3OCw3NzgsNzc4LDU4NCw3NzgsNzIyLDcyMiw3MjIsNzIyLDY2Nyw2NjcsNjExLDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDg4OSw1NTYsNTU2LDU1Niw1NTYsNTU2LDI3OCwyNzgsMjc4LDI3OCw2MTEsNjExLDYxMSw2MTEsNjExLDYxMSw2MTEsNTQ5LDYxMSw2MTEsNjExLDYxMSw2MTEsNTU2LDYxMSw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNzQwLDcyMiw2MTEsNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDc3OCw2MTEsNzc4LDYxMSw3NzgsNjExLDc3OCw2MTEsNzIyLDYxMSw3MjIsNjExLDI3OCwyNzgsMjc4LDI3OCwyNzgsMjc4LDI3OCwyNzgsMjc4LDI3OCw3ODIsNTU2LDU1NiwyNzgsNzIyLDU1Niw1NTYsNjExLDI3OCw2MTEsMjc4LDYxMSwzOTYsNjExLDQ3OSw2MTEsMjc4LDcyMiw2MTEsNzIyLDYxMSw3MjIsNjExLDcwOCw3MjMsNjExLDc3OCw2MTEsNzc4LDYxMSw3NzgsNjExLDFlMyw5NDQsNzIyLDM4OSw3MjIsMzg5LDcyMiwzODksNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw2MTEsMzMzLDYxMSw0NzksNjExLDMzMyw3MjIsNjExLDcyMiw2MTEsNzIyLDYxMSw3MjIsNjExLDcyMiw2MTEsNzIyLDYxMSw5NDQsNzc4LDY2Nyw1NTYsNjY3LDYxMSw1MDAsNjExLDUwMCw2MTEsNTAwLDI3OCw1NTYsNzIyLDU1NiwxZTMsODg5LDc3OCw2MTEsNjY3LDU1Niw2MTEsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsNzIyLDMzMyw4NTQsOTA2LDQ3Myw4NDQsOTMwLDg0NywyNzgsNzIyLDcyMiw2MTAsNjcxLDY2Nyw2MTEsNzIyLDc3OCwyNzgsNzIyLDY2Nyw4MzMsNzIyLDY1Nyw3NzgsNzE4LDY2Nyw1OTAsNjExLDY2Nyw4MjIsNjY3LDgyOSw3ODEsMjc4LDY2Nyw2MjAsNDc5LDYxMSwyNzgsNTkxLDYyMCw2MjEsNTU2LDYxMCw0NzksNDkyLDYxMSw1NTgsMjc4LDU2Niw1NTYsNjAzLDU1Niw0NTAsNjExLDcxMiw2MDUsNTMyLDY2NCw0MDksNTkxLDcwNCw1NzgsNzczLDgzNCwyNzgsNTkxLDYxMSw1OTEsODM0LDY2Nyw2NjcsODg2LDYxNCw3MTksNjY3LDI3OCwyNzgsNTU2LDEwOTQsMTA0Miw4NTQsNjIyLDcxOSw2NzcsNzE5LDcyMiw3MDgsNzIyLDYxNCw3MjIsNjY3LDkyNyw2NDMsNzE5LDcxOSw2MTUsNjg3LDgzMyw3MjIsNzc4LDcxOSw2NjcsNzIyLDYxMSw2NzcsNzgxLDY2Nyw3MjksNzA4LDk3OSw5ODksODU0LDFlMyw3MDgsNzE5LDEwNDIsNzI5LDU1Niw2MTksNjA0LDUzNCw2MTgsNTU2LDczNiw1MTAsNjExLDYxMSw1MDcsNjIyLDc0MCw2MDQsNjExLDYxMSw2MTEsNTU2LDg4OSw1NTYsODg1LDU1Niw2NDYsNTgzLDg4OSw5MzUsNzA3LDg1NCw1OTQsNTUyLDg2NSw1ODksNTU2LDU1Niw2MTEsNDY5LDU2Myw1NTYsMjc4LDI3OCwyNzgsOTY5LDkwNiw2MTEsNTA3LDYxOSw1NTYsNjExLDc3OCw2MTEsNTc1LDQ2Nyw5NDQsNzc4LDk0NCw3NzgsOTQ0LDc3OCw2NjcsNTU2LDMzMywzMzMsNTU2LDFlMywxZTMsNTUyLDI3OCwyNzgsMjc4LDI3OCw1MDAsNTAwLDUwMCw1NTYsNTU2LDM1MCwxZTMsMWUzLDI0MCw0NzksMzMzLDMzMyw2MDQsMzMzLDE2NywzOTYsNTU2LDU1NiwxMTA0LDU1Niw4ODUsNTE2LDExNDYsMWUzLDc2OCw2MDAsODM0LDgzNCw4MzQsODM0LDk5OSw1MDAsMWUzLDUwMCwxZTMsNTAwLDUwMCw0OTQsNjEyLDgyMyw3MTMsNTg0LDU0OSw3MTMsOTc5LDcyMiwyNzQsNTQ5LDU0OSw1ODMsNTQ5LDU0OSw2MDQsNTg0LDYwNCw2MDQsNzA4LDYyNSw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MjksNjA0LDYwNCwzNTQsMzU0LDFlMyw5OTAsOTkwLDk5MCw5OTAsNDk0LDYwNCw2MDQsNjA0LDYwNCwzNTQsMTAyMSwxMDUyLDkxNyw3NTAsNzUwLDUzMSw2NTYsNTk0LDUxMCw1MDAsNzUwLDc1MCw2MTEsNjExLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMjIyLDIyMiwzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzXSxfcj1bLTEsLTEsLTEsMzIsMzMsMzQsMzUsMzYsMzcsMzgsMzksNDAsNDEsNDIsNDMsNDQsNDUsNDYsNDcsNDgsNDksNTAsNTEsNTIsNTMsNTQsNTUsNTYsNTcsNTgsNTksNjAsNjEsNjIsNjMsNjQsNjUsNjYsNjcsNjgsNjksNzAsNzEsNzIsNzMsNzQsNzUsNzYsNzcsNzgsNzksODAsODEsODIsODMsODQsODUsODYsODcsODgsODksOTAsOTEsOTIsOTMsOTQsOTUsOTYsOTcsOTgsOTksMTAwLDEwMSwxMDIsMTAzLDEwNCwxMDUsMTA2LDEwNywxMDgsMTA5LDExMCwxMTEsMTEyLDExMywxMTQsMTE1LDExNiwxMTcsMTE4LDExOSwxMjAsMTIxLDEyMiwxMjMsMTI0LDEyNSwxMjYsMTYxLDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcwLDE3MSwxNzIsMTc0LDE3NSwxNzYsMTc3LDE3OCwxNzksMTgwLDE4MSwxODIsMTgzLDE4NCwxODUsMTg2LDE4NywxODgsMTg5LDE5MCwxOTEsMTkyLDE5MywxOTQsMTk1LDE5NiwxOTcsMTk4LDE5OSwyMDAsMjAxLDIwMiwyMDMsMjA0LDIwNSwyMDYsMjA3LDIwOCwyMDksMjEwLDIxMSwyMTIsMjEzLDIxNCwyMTUsMjE2LDIxNywyMTgsMjE5LDIyMCwyMjEsMjIyLDIyMywyMjQsMjI1LDIyNiwyMjcsMjI4LDIyOSwyMzAsMjMxLDIzMiwyMzMsMjM0LDIzNSwyMzYsMjM3LDIzOCwyMzksMjQwLDI0MSwyNDIsMjQzLDI0NCwyNDUsMjQ2LDI0NywyNDgsMjQ5LDI1MCwyNTEsMjUyLDI1MywyNTQsMjU1LDI1NiwyNTcsMjU4LDI1OSwyNjAsMjYxLDI2MiwyNjMsMjY0LDI2NSwyNjYsMjY3LDI2OCwyNjksMjcwLDI3MSwyNzIsMjczLDI3NCwyNzUsMjc2LDI3NywyNzgsMjc5LDI4MCwyODEsMjgyLDI4MywyODQsMjg1LDI4NiwyODcsMjg4LDI4OSwyOTAsMjkxLDI5MiwyOTMsMjk0LDI5NSwyOTYsMjk3LDI5OCwyOTksMzAwLDMwMSwzMDIsMzAzLDMwNCwzMDUsMzA2LDMwNywzMDgsMzA5LDMxMCwzMTEsMzEyLDMxMywzMTQsMzE1LDMxNiwzMTcsMzE4LDMxOSwzMjAsMzIxLDMyMiwzMjMsMzI0LDMyNSwzMjYsMzI3LDMyOCwzMjksMzMwLDMzMSwzMzIsMzMzLDMzNCwzMzUsMzM2LDMzNywzMzgsMzM5LDM0MCwzNDEsMzQyLDM0MywzNDQsMzQ1LDM0NiwzNDcsMzQ4LDM0OSwzNTAsMzUxLDM1MiwzNTMsMzU0LDM1NSwzNTYsMzU3LDM1OCwzNTksMzYwLDM2MSwzNjIsMzYzLDM2NCwzNjUsMzY2LDM2NywzNjgsMzY5LDM3MCwzNzEsMzcyLDM3MywzNzQsMzc1LDM3NiwzNzcsMzc4LDM3OSwzODAsMzgxLDM4MiwzODMsNDAyLDUwNiw1MDcsNTA4LDUwOSw1MTAsNTExLDUzNiw1MzcsNTM4LDUzOSw3MTAsNzExLDcxMyw3MjgsNzI5LDczMCw3MzEsNzMyLDczMyw5MDAsOTAxLDkwMiw5MDMsOTA0LDkwNSw5MDYsOTA4LDkxMCw5MTEsOTEyLDkxMyw5MTQsOTE1LDkxNiw5MTcsOTE4LDkxOSw5MjAsOTIxLDkyMiw5MjMsOTI0LDkyNSw5MjYsOTI3LDkyOCw5MjksOTMxLDkzMiw5MzMsOTM0LDkzNSw5MzYsOTM3LDkzOCw5MzksOTQwLDk0MSw5NDIsOTQzLDk0NCw5NDUsOTQ2LDk0Nyw5NDgsOTQ5LDk1MCw5NTEsOTUyLDk1Myw5NTQsOTU1LDk1Niw5NTcsOTU4LDk1OSw5NjAsOTYxLDk2Miw5NjMsOTY0LDk2NSw5NjYsOTY3LDk2OCw5NjksOTcwLDk3MSw5NzIsOTczLDk3NCwxMDI0LDEwMjUsMTAyNiwxMDI3LDEwMjgsMTAyOSwxMDMwLDEwMzEsMTAzMiwxMDMzLDEwMzQsMTAzNSwxMDM2LDEwMzcsMTAzOCwxMDM5LDEwNDAsMTA0MSwxMDQyLDEwNDMsMTA0NCwxMDQ1LDEwNDYsMTA0NywxMDQ4LDEwNDksMTA1MCwxMDUxLDEwNTIsMTA1MywxMDU0LDEwNTUsMTA1NiwxMDU3LDEwNTgsMTA1OSwxMDYwLDEwNjEsMTA2MiwxMDYzLDEwNjQsMTA2NSwxMDY2LDEwNjcsMTA2OCwxMDY5LDEwNzAsMTA3MSwxMDcyLDEwNzMsMTA3NCwxMDc1LDEwNzYsMTA3NywxMDc4LDEwNzksMTA4MCwxMDgxLDEwODIsMTA4MywxMDg0LDEwODUsMTA4NiwxMDg3LDEwODgsMTA4OSwxMDkwLDEwOTEsMTA5MiwxMDkzLDEwOTQsMTA5NSwxMDk2LDEwOTcsMTA5OCwxMDk5LDExMDAsMTEwMSwxMTAyLDExMDMsMTEwNCwxMTA1LDExMDYsMTEwNywxMTA4LDExMDksMTExMCwxMTExLDExMTIsMTExMywxMTE0LDExMTUsMTExNiwxMTE3LDExMTgsMTExOSwxMTM4LDExMzksMTE2OCwxMTY5LDc4MDgsNzgwOSw3ODEwLDc4MTEsNzgxMiw3ODEzLDc5MjIsNzkyMyw4MjA4LDgyMDksODIxMSw4MjEyLDgyMTMsODIxNSw4MjE2LDgyMTcsODIxOCw4MjE5LDgyMjAsODIyMSw4MjIyLDgyMjQsODIyNSw4MjI2LDgyMzAsODI0MCw4MjQyLDgyNDMsODI0OSw4MjUwLDgyNTIsODI1NCw4MjYwLDgzMTksODM1NSw4MzU2LDgzNTksODM2NCw4NDUzLDg0NjcsODQ3MCw4NDgyLDg0ODYsODQ5NCw4NTM5LDg1NDAsODU0MSw4NTQyLDg1OTIsODU5Myw4NTk0LDg1OTUsODU5Niw4NTk3LDg2MTYsODcwNiw4NzEwLDg3MTksODcyMSw4NzIyLDg3MzAsODczNCw4NzM1LDg3NDUsODc0Nyw4Nzc2LDg4MDAsODgwMSw4ODA0LDg4MDUsODk2Miw4OTc2LDg5OTIsODk5Myw5NDcyLDk0NzQsOTQ4NCw5NDg4LDk0OTIsOTQ5Niw5NTAwLDk1MDgsOTUxNiw5NTI0LDk1MzIsOTU1Miw5NTUzLDk1NTQsOTU1NSw5NTU2LDk1NTcsOTU1OCw5NTU5LDk1NjAsOTU2MSw5NTYyLDk1NjMsOTU2NCw5NTY1LDk1NjYsOTU2Nyw5NTY4LDk1NjksOTU3MCw5NTcxLDk1NzIsOTU3Myw5NTc0LDk1NzUsOTU3Niw5NTc3LDk1NzgsOTU3OSw5NTgwLDk2MDAsOTYwNCw5NjA4LDk2MTIsOTYxNiw5NjE3LDk2MTgsOTYxOSw5NjMyLDk2MzMsOTY0Miw5NjQzLDk2NDQsOTY1MCw5NjU4LDk2NjAsOTY2OCw5Njc0LDk2NzUsOTY3OSw5Njg4LDk2ODksOTcwMiw5Nzg2LDk3ODcsOTc4OCw5NzkyLDk3OTQsOTgyNCw5ODI3LDk4MjksOTgzMCw5ODM0LDk4MzUsOTgzNiw2MTQ0MSw2MTQ0Miw2MTQ0NSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMSwtMV0sTHI9WzM2NSwwLDMzMywyNzgsMjc4LDM1NSw1NTYsNTU2LDg4OSw2NjcsMTkxLDMzMywzMzMsMzg5LDU4NCwyNzgsMzMzLDI3OCwyNzgsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDI3OCwyNzgsNTg0LDU4NCw1ODQsNTU2LDEwMTUsNjY3LDY2Nyw3MjIsNzIyLDY2Nyw2MTEsNzc4LDcyMiwyNzgsNTAwLDY2Nyw1NTYsODMzLDcyMiw3NzgsNjY3LDc3OCw3MjIsNjY3LDYxMSw3MjIsNjY3LDk0NCw2NjcsNjY3LDYxMSwyNzgsMjc4LDI3OCw0NjksNTU2LDMzMyw1NTYsNTU2LDUwMCw1NTYsNTU2LDI3OCw1NTYsNTU2LDIyMiwyMjIsNTAwLDIyMiw4MzMsNTU2LDU1Niw1NTYsNTU2LDMzMyw1MDAsMjc4LDU1Niw1MDAsNzIyLDUwMCw1MDAsNTAwLDMzNCwyNjAsMzM0LDU4NCwzMzMsNTU2LDU1Niw1NTYsNTU2LDI2MCw1NTYsMzMzLDczNywzNzAsNTU2LDU4NCw3MzcsNTUyLDQwMCw1NDksMzMzLDMzMywzMzMsNTc2LDUzNywyNzgsMzMzLDMzMywzNjUsNTU2LDgzNCw4MzQsODM0LDYxMSw2NjcsNjY3LDY2Nyw2NjcsNjY3LDY2NywxZTMsNzIyLDY2Nyw2NjcsNjY3LDY2NywyNzgsMjc4LDI3OCwyNzgsNzIyLDcyMiw3NzgsNzc4LDc3OCw3NzgsNzc4LDU4NCw3NzgsNzIyLDcyMiw3MjIsNzIyLDY2Nyw2NjcsNjExLDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDg4OSw1MDAsNTU2LDU1Niw1NTYsNTU2LDI3OCwyNzgsMjc4LDI3OCw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTQ5LDYxMSw1NTYsNTU2LDU1Niw1NTYsNTAwLDU1Niw1MDAsNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNzIyLDUwMCw3MjIsNTAwLDcyMiw1MDAsNzIyLDUwMCw3MjIsNjI1LDcyMiw1NTYsNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDc3OCw1NTYsNzc4LDU1Niw3NzgsNTU2LDc3OCw1NTYsNzIyLDU1Niw3MjIsNTU2LDI3OCwyNzgsMjc4LDI3OCwyNzgsMjc4LDI3OCwyMjIsMjc4LDI3OCw3MzMsNDQ0LDUwMCwyMjIsNjY3LDUwMCw1MDAsNTU2LDIyMiw1NTYsMjIyLDU1NiwyODEsNTU2LDQwMCw1NTYsMjIyLDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDYxNSw3MjMsNTU2LDc3OCw1NTYsNzc4LDU1Niw3NzgsNTU2LDFlMyw5NDQsNzIyLDMzMyw3MjIsMzMzLDcyMiwzMzMsNjY3LDUwMCw2NjcsNTAwLDY2Nyw1MDAsNjY3LDUwMCw2MTEsMjc4LDYxMSwzNTQsNjExLDI3OCw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw5NDQsNzIyLDY2Nyw1MDAsNjY3LDYxMSw1MDAsNjExLDUwMCw2MTEsNTAwLDIyMiw1NTYsNjY3LDU1NiwxZTMsODg5LDc3OCw2MTEsNjY3LDUwMCw2MTEsMjc4LDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsNjY3LDI3OCw3ODksODQ2LDM4OSw3OTQsODY1LDc3NSwyMjIsNjY3LDY2Nyw1NzAsNjcxLDY2Nyw2MTEsNzIyLDc3OCwyNzgsNjY3LDY2Nyw4MzMsNzIyLDY0OCw3NzgsNzI1LDY2Nyw2MDAsNjExLDY2Nyw4MzcsNjY3LDgzMSw3NjEsMjc4LDY2Nyw1NzAsNDM5LDU1NSwyMjIsNTUwLDU3MCw1NzEsNTAwLDU1Niw0MzksNDYzLDU1NSw1NDIsMjIyLDUwMCw0OTIsNTQ4LDUwMCw0NDcsNTU2LDY3MCw1NzMsNDg2LDYwMywzNzQsNTUwLDY1Miw1NDYsNzI4LDc3OSwyMjIsNTUwLDU1Niw1NTAsNzc5LDY2Nyw2NjcsODQzLDU0NCw3MDgsNjY3LDI3OCwyNzgsNTAwLDEwNjYsOTgyLDg0NCw1ODksNzE1LDYzOSw3MjQsNjY3LDY1MSw2NjcsNTQ0LDcwNCw2NjcsOTE3LDYxNCw3MTUsNzE1LDU4OSw2ODYsODMzLDcyMiw3NzgsNzI1LDY2Nyw3MjIsNjExLDYzOSw3OTUsNjY3LDcyNyw2NzMsOTIwLDkyMyw4MDUsODg2LDY1MSw2OTQsMTAyMiw2ODIsNTU2LDU2Miw1MjIsNDkzLDU1Myw1NTYsNjg4LDQ2NSw1NTYsNTU2LDQ3Miw1NjQsNjg2LDU1MCw1NTYsNTU2LDU1Niw1MDAsODMzLDUwMCw4MzUsNTAwLDU3Miw1MTgsODMwLDg1MSw2MjEsNzM2LDUyNiw0OTIsNzUyLDUzNCw1NTYsNTU2LDU1NiwzNzgsNDk2LDUwMCwyMjIsMjIyLDIyMiw5MTAsODI4LDU1Niw0NzIsNTY1LDUwMCw1NTYsNzc4LDU1Niw0OTIsMzM5LDk0NCw3MjIsOTQ0LDcyMiw5NDQsNzIyLDY2Nyw1MDAsMzMzLDMzMyw1NTYsMWUzLDFlMyw1NTIsMjIyLDIyMiwyMjIsMjIyLDMzMywzMzMsMzMzLDU1Niw1NTYsMzUwLDFlMywxZTMsMTg4LDM1NCwzMzMsMzMzLDUwMCwzMzMsMTY3LDM2NSw1NTYsNTU2LDEwOTQsNTU2LDg4NSwzMjMsMTA4MywxZTMsNzY4LDYwMCw4MzQsODM0LDgzNCw4MzQsMWUzLDUwMCw5OTgsNTAwLDFlMyw1MDAsNTAwLDQ5NCw2MTIsODIzLDcxMyw1ODQsNTQ5LDcxMyw5NzksNzE5LDI3NCw1NDksNTQ5LDU4NCw1NDksNTQ5LDYwNCw1ODQsNjA0LDYwNCw3MDgsNjI1LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcyOSw2MDQsNjA0LDM1NCwzNTQsMWUzLDk5MCw5OTAsOTkwLDk5MCw0OTQsNjA0LDYwNCw2MDQsNjA0LDM1NCwxMDIxLDEwNTIsOTE3LDc1MCw3NTAsNTMxLDY1Niw1OTQsNTEwLDUwMCw3NTAsNzUwLDUwMCw1MDAsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywyMjIsMjIyLDI5NCwyOTQsMzI0LDMyNCwzMTYsMzI4LDM5OCwyODVdLFVyPVstMSwtMSwtMSwzMiwzMywzNCwzNSwzNiwzNywzOCwzOSw0MCw0MSw0Miw0Myw0NCw0NSw0Niw0Nyw0OCw0OSw1MCw1MSw1Miw1Myw1NCw1NSw1Niw1Nyw1OCw1OSw2MCw2MSw2Miw2Myw2NCw2NSw2Niw2Nyw2OCw2OSw3MCw3MSw3Miw3Myw3NCw3NSw3Niw3Nyw3OCw3OSw4MCw4MSw4Miw4Myw4NCw4NSw4Niw4Nyw4OCw4OSw5MCw5MSw5Miw5Myw5NCw5NSw5Niw5Nyw5OCw5OSwxMDAsMTAxLDEwMiwxMDMsMTA0LDEwNSwxMDYsMTA3LDEwOCwxMDksMTEwLDExMSwxMTIsMTEzLDExNCwxMTUsMTE2LDExNywxMTgsMTE5LDEyMCwxMjEsMTIyLDEyMywxMjQsMTI1LDEyNiwxNjEsMTYyLDE2MywxNjQsMTY1LDE2NiwxNjcsMTY4LDE2OSwxNzAsMTcxLDE3MiwxNzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4NSwxODYsMTg3LDE4OCwxODksMTkwLDE5MSwxOTIsMTkzLDE5NCwxOTUsMTk2LDE5NywxOTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsMjA1LDIwNiwyMDcsMjA4LDIwOSwyMTAsMjExLDIxMiwyMTMsMjE0LDIxNSwyMTYsMjE3LDIxOCwyMTksMjIwLDIyMSwyMjIsMjIzLDIyNCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsMjM1LDIzNiwyMzcsMjM4LDIzOSwyNDAsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LDI0OCwyNDksMjUwLDI1MSwyNTIsMjUzLDI1NCwyNTUsMjU2LDI1NywyNTgsMjU5LDI2MCwyNjEsMjYyLDI2MywyNjQsMjY1LDI2NiwyNjcsMjY4LDI2OSwyNzAsMjcxLDI3MiwyNzMsMjc0LDI3NSwyNzYsMjc3LDI3OCwyNzksMjgwLDI4MSwyODIsMjgzLDI4NCwyODUsMjg2LDI4NywyODgsMjg5LDI5MCwyOTEsMjkyLDI5MywyOTQsMjk1LDI5NiwyOTcsMjk4LDI5OSwzMDAsMzAxLDMwMiwzMDMsMzA0LDMwNSwzMDYsMzA3LDMwOCwzMDksMzEwLDMxMSwzMTIsMzEzLDMxNCwzMTUsMzE2LDMxNywzMTgsMzE5LDMyMCwzMjEsMzIyLDMyMywzMjQsMzI1LDMyNiwzMjcsMzI4LDMyOSwzMzAsMzMxLDMzMiwzMzMsMzM0LDMzNSwzMzYsMzM3LDMzOCwzMzksMzQwLDM0MSwzNDIsMzQzLDM0NCwzNDUsMzQ2LDM0NywzNDgsMzQ5LDM1MCwzNTEsMzUyLDM1MywzNTQsMzU1LDM1NiwzNTcsMzU4LDM1OSwzNjAsMzYxLDM2MiwzNjMsMzY0LDM2NSwzNjYsMzY3LDM2OCwzNjksMzcwLDM3MSwzNzIsMzczLDM3NCwzNzUsMzc2LDM3NywzNzgsMzc5LDM4MCwzODEsMzgyLDM4Myw0MDIsNTA2LDUwNyw1MDgsNTA5LDUxMCw1MTEsNTM2LDUzNyw1MzgsNTM5LDcxMCw3MTEsNzEzLDcyOCw3MjksNzMwLDczMSw3MzIsNzMzLDkwMCw5MDEsOTAyLDkwMyw5MDQsOTA1LDkwNiw5MDgsOTEwLDkxMSw5MTIsOTEzLDkxNCw5MTUsOTE2LDkxNyw5MTgsOTE5LDkyMCw5MjEsOTIyLDkyMyw5MjQsOTI1LDkyNiw5MjcsOTI4LDkyOSw5MzEsOTMyLDkzMyw5MzQsOTM1LDkzNiw5MzcsOTM4LDkzOSw5NDAsOTQxLDk0Miw5NDMsOTQ0LDk0NSw5NDYsOTQ3LDk0OCw5NDksOTUwLDk1MSw5NTIsOTUzLDk1NCw5NTUsOTU2LDk1Nyw5NTgsOTU5LDk2MCw5NjEsOTYyLDk2Myw5NjQsOTY1LDk2Niw5NjcsOTY4LDk2OSw5NzAsOTcxLDk3Miw5NzMsOTc0LDEwMjQsMTAyNSwxMDI2LDEwMjcsMTAyOCwxMDI5LDEwMzAsMTAzMSwxMDMyLDEwMzMsMTAzNCwxMDM1LDEwMzYsMTAzNywxMDM4LDEwMzksMTA0MCwxMDQxLDEwNDIsMTA0MywxMDQ0LDEwNDUsMTA0NiwxMDQ3LDEwNDgsMTA0OSwxMDUwLDEwNTEsMTA1MiwxMDUzLDEwNTQsMTA1NSwxMDU2LDEwNTcsMTA1OCwxMDU5LDEwNjAsMTA2MSwxMDYyLDEwNjMsMTA2NCwxMDY1LDEwNjYsMTA2NywxMDY4LDEwNjksMTA3MCwxMDcxLDEwNzIsMTA3MywxMDc0LDEwNzUsMTA3NiwxMDc3LDEwNzgsMTA3OSwxMDgwLDEwODEsMTA4MiwxMDgzLDEwODQsMTA4NSwxMDg2LDEwODcsMTA4OCwxMDg5LDEwOTAsMTA5MSwxMDkyLDEwOTMsMTA5NCwxMDk1LDEwOTYsMTA5NywxMDk4LDEwOTksMTEwMCwxMTAxLDExMDIsMTEwMywxMTA0LDExMDUsMTEwNiwxMTA3LDExMDgsMTEwOSwxMTEwLDExMTEsMTExMiwxMTEzLDExMTQsMTExNSwxMTE2LDExMTcsMTExOCwxMTE5LDExMzgsMTEzOSwxMTY4LDExNjksNzgwOCw3ODA5LDc4MTAsNzgxMSw3ODEyLDc4MTMsNzkyMiw3OTIzLDgyMDgsODIwOSw4MjExLDgyMTIsODIxMyw4MjE1LDgyMTYsODIxNyw4MjE4LDgyMTksODIyMCw4MjIxLDgyMjIsODIyNCw4MjI1LDgyMjYsODIzMCw4MjQwLDgyNDIsODI0Myw4MjQ5LDgyNTAsODI1Miw4MjU0LDgyNjAsODMxOSw4MzU1LDgzNTYsODM1OSw4MzY0LDg0NTMsODQ2Nyw4NDcwLDg0ODIsODQ4Niw4NDk0LDg1MzksODU0MCw4NTQxLDg1NDIsODU5Miw4NTkzLDg1OTQsODU5NSw4NTk2LDg1OTcsODYxNiw4NzA2LDg3MTAsODcxOSw4NzIxLDg3MjIsODczMCw4NzM0LDg3MzUsODc0NSw4NzQ3LDg3NzYsODgwMCw4ODAxLDg4MDQsODgwNSw4OTYyLDg5NzYsODk5Miw4OTkzLDk0NzIsOTQ3NCw5NDg0LDk0ODgsOTQ5Miw5NDk2LDk1MDAsOTUwOCw5NTE2LDk1MjQsOTUzMiw5NTUyLDk1NTMsOTU1NCw5NTU1LDk1NTYsOTU1Nyw5NTU4LDk1NTksOTU2MCw5NTYxLDk1NjIsOTU2Myw5NTY0LDk1NjUsOTU2Niw5NTY3LDk1NjgsOTU2OSw5NTcwLDk1NzEsOTU3Miw5NTczLDk1NzQsOTU3NSw5NTc2LDk1NzcsOTU3OCw5NTc5LDk1ODAsOTYwMCw5NjA0LDk2MDgsOTYxMiw5NjE2LDk2MTcsOTYxOCw5NjE5LDk2MzIsOTYzMyw5NjQyLDk2NDMsOTY0NCw5NjUwLDk2NTgsOTY2MCw5NjY4LDk2NzQsOTY3NSw5Njc5LDk2ODgsOTY4OSw5NzAyLDk3ODYsOTc4Nyw5Nzg4LDk3OTIsOTc5NCw5ODI0LDk4MjcsOTgyOSw5ODMwLDk4MzQsOTgzNSw5ODM2LDYxNDQxLDYxNDQyLDYxNDQ1LC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xXSxYcj1bMzY1LDAsMzMzLDI3OCwyNzgsMzU1LDU1Niw1NTYsODg5LDY2NywxOTEsMzMzLDMzMywzODksNTg0LDI3OCwzMzMsMjc4LDI3OCw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsMjc4LDI3OCw1ODQsNTg0LDU4NCw1NTYsMTAxNSw2NjcsNjY3LDcyMiw3MjIsNjY3LDYxMSw3NzgsNzIyLDI3OCw1MDAsNjY3LDU1Niw4MzMsNzIyLDc3OCw2NjcsNzc4LDcyMiw2NjcsNjExLDcyMiw2NjcsOTQ0LDY2Nyw2NjcsNjExLDI3OCwyNzgsMjc4LDQ2OSw1NTYsMzMzLDU1Niw1NTYsNTAwLDU1Niw1NTYsMjc4LDU1Niw1NTYsMjIyLDIyMiw1MDAsMjIyLDgzMyw1NTYsNTU2LDU1Niw1NTYsMzMzLDUwMCwyNzgsNTU2LDUwMCw3MjIsNTAwLDUwMCw1MDAsMzM0LDI2MCwzMzQsNTg0LDMzMyw1NTYsNTU2LDU1Niw1NTYsMjYwLDU1NiwzMzMsNzM3LDM3MCw1NTYsNTg0LDczNyw1NTIsNDAwLDU0OSwzMzMsMzMzLDMzMyw1NzYsNTM3LDI3OCwzMzMsMzMzLDM2NSw1NTYsODM0LDgzNCw4MzQsNjExLDY2Nyw2NjcsNjY3LDY2Nyw2NjcsNjY3LDFlMyw3MjIsNjY3LDY2Nyw2NjcsNjY3LDI3OCwyNzgsMjc4LDI3OCw3MjIsNzIyLDc3OCw3NzgsNzc4LDc3OCw3NzgsNTg0LDc3OCw3MjIsNzIyLDcyMiw3MjIsNjY3LDY2Nyw2MTEsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NTYsODg5LDUwMCw1NTYsNTU2LDU1Niw1NTYsMjc4LDI3OCwyNzgsMjc4LDU1Niw1NTYsNTU2LDU1Niw1NTYsNTU2LDU1Niw1NDksNjExLDU1Niw1NTYsNTU2LDU1Niw1MDAsNTU2LDUwMCw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw3MjIsNTAwLDcyMiw1MDAsNzIyLDUwMCw3MjIsNTAwLDcyMiw2MTUsNzIyLDU1Niw2NjcsNTU2LDY2Nyw1NTYsNjY3LDU1Niw2NjcsNTU2LDY2Nyw1NTYsNzc4LDU1Niw3NzgsNTU2LDc3OCw1NTYsNzc4LDU1Niw3MjIsNTU2LDcyMiw1NTYsMjc4LDI3OCwyNzgsMjc4LDI3OCwyNzgsMjc4LDIyMiwyNzgsMjc4LDczNSw0NDQsNTAwLDIyMiw2NjcsNTAwLDUwMCw1NTYsMjIyLDU1NiwyMjIsNTU2LDI5Miw1NTYsMzM0LDU1NiwyMjIsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNjA0LDcyMyw1NTYsNzc4LDU1Niw3NzgsNTU2LDc3OCw1NTYsMWUzLDk0NCw3MjIsMzMzLDcyMiwzMzMsNzIyLDMzMyw2NjcsNTAwLDY2Nyw1MDAsNjY3LDUwMCw2NjcsNTAwLDYxMSwyNzgsNjExLDM3NSw2MTEsMjc4LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDcyMiw1NTYsNzIyLDU1Niw3MjIsNTU2LDk0NCw3MjIsNjY3LDUwMCw2NjcsNjExLDUwMCw2MTEsNTAwLDYxMSw1MDAsMjIyLDU1Niw2NjcsNTU2LDFlMyw4ODksNzc4LDYxMSw2NjcsNTAwLDYxMSwyNzgsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMyw2NjcsMjc4LDc4NCw4MzgsMzg0LDc3NCw4NTUsNzUyLDIyMiw2NjcsNjY3LDU1MSw2NjgsNjY3LDYxMSw3MjIsNzc4LDI3OCw2NjcsNjY4LDgzMyw3MjIsNjUwLDc3OCw3MjIsNjY3LDYxOCw2MTEsNjY3LDc5OCw2NjcsODM1LDc0OCwyNzgsNjY3LDU3OCw0NDYsNTU2LDIyMiw1NDcsNTc4LDU3NSw1MDAsNTU3LDQ0Niw0NDEsNTU2LDU1NiwyMjIsNTAwLDUwMCw1NzYsNTAwLDQ0OCw1NTYsNjkwLDU2OSw0ODIsNjE3LDM5NSw1NDcsNjQ4LDUyNSw3MTMsNzgxLDIyMiw1NDcsNTU2LDU0Nyw3ODEsNjY3LDY2Nyw4NjUsNTQyLDcxOSw2NjcsMjc4LDI3OCw1MDAsMTA1NywxMDEwLDg1NCw1ODMsNzIyLDYzNSw3MTksNjY3LDY1Niw2NjcsNTQyLDY3Nyw2NjcsOTIzLDYwNCw3MTksNzE5LDU4Myw2NTYsODMzLDcyMiw3NzgsNzE5LDY2Nyw3MjIsNjExLDYzNSw3NjAsNjY3LDc0MCw2NjcsOTE3LDkzOCw3OTIsODg1LDY1Niw3MTksMTAxMCw3MjIsNTU2LDU3Myw1MzEsMzY1LDU4Myw1NTYsNjY5LDQ1OCw1NTksNTU5LDQzOCw1ODMsNjg4LDU1Miw1NTYsNTQyLDU1Niw1MDAsNDU4LDUwMCw4MjMsNTAwLDU3Myw1MjEsODAyLDgyMyw2MjUsNzE5LDUyMSw1MTAsNzUwLDU0Miw1NTYsNTU2LDU1NiwzNjUsNTEwLDUwMCwyMjIsMjc4LDIyMiw5MDYsODEyLDU1Niw0MzgsNTU5LDUwMCw1NTIsNzc4LDU1Niw0ODksNDExLDk0NCw3MjIsOTQ0LDcyMiw5NDQsNzIyLDY2Nyw1MDAsMzMzLDMzMyw1NTYsMWUzLDFlMyw1NTIsMjIyLDIyMiwyMjIsMjIyLDMzMywzMzMsMzMzLDU1Niw1NTYsMzUwLDFlMywxZTMsMTg4LDM1NCwzMzMsMzMzLDUwMCwzMzMsMTY3LDM2NSw1NTYsNTU2LDEwOTQsNTU2LDg4NSwzMjMsMTA3MywxZTMsNzY4LDYwMCw4MzQsODM0LDgzNCw4MzQsMWUzLDUwMCwxZTMsNTAwLDFlMyw1MDAsNTAwLDQ5NCw2MTIsODIzLDcxMyw1ODQsNTQ5LDcxMyw5NzksNzE5LDI3NCw1NDksNTQ5LDU4Myw1NDksNTQ5LDYwNCw1ODQsNjA0LDYwNCw3MDgsNjI1LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcwOCw3MDgsNzA4LDcyOSw2MDQsNjA0LDM1NCwzNTQsMWUzLDk5MCw5OTAsOTkwLDk5MCw0OTQsNjA0LDYwNCw2MDQsNjA0LDM1NCwxMDIxLDEwNTIsOTE3LDc1MCw3NTAsNTMxLDY1Niw1OTQsNTEwLDUwMCw3NTAsNzUwLDUwMCw1MDAsMzMzLDMzMywzMzMsMzMzLDMzMywzMzMsMzMzLDMzMywyMjIsMjIyLDI5NCwyOTQsMzI0LDMyNCwzMTYsMzI4LDM5OCwyODVdLFdyPVstMSwtMSwtMSwzMiwzMywzNCwzNSwzNiwzNywzOCwzOSw0MCw0MSw0Miw0Myw0NCw0NSw0Niw0Nyw0OCw0OSw1MCw1MSw1Miw1Myw1NCw1NSw1Niw1Nyw1OCw1OSw2MCw2MSw2Miw2Myw2NCw2NSw2Niw2Nyw2OCw2OSw3MCw3MSw3Miw3Myw3NCw3NSw3Niw3Nyw3OCw3OSw4MCw4MSw4Miw4Myw4NCw4NSw4Niw4Nyw4OCw4OSw5MCw5MSw5Miw5Myw5NCw5NSw5Niw5Nyw5OCw5OSwxMDAsMTAxLDEwMiwxMDMsMTA0LDEwNSwxMDYsMTA3LDEwOCwxMDksMTEwLDExMSwxMTIsMTEzLDExNCwxMTUsMTE2LDExNywxMTgsMTE5LDEyMCwxMjEsMTIyLDEyMywxMjQsMTI1LDEyNiwxNjEsMTYyLDE2MywxNjQsMTY1LDE2NiwxNjcsMTY4LDE2OSwxNzAsMTcxLDE3MiwxNzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4NSwxODYsMTg3LDE4OCwxODksMTkwLDE5MSwxOTIsMTkzLDE5NCwxOTUsMTk2LDE5NywxOTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsMjA1LDIwNiwyMDcsMjA4LDIwOSwyMTAsMjExLDIxMiwyMTMsMjE0LDIxNSwyMTYsMjE3LDIxOCwyMTksMjIwLDIyMSwyMjIsMjIzLDIyNCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsMjM1LDIzNiwyMzcsMjM4LDIzOSwyNDAsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LDI0OCwyNDksMjUwLDI1MSwyNTIsMjUzLDI1NCwyNTUsMjU2LDI1NywyNTgsMjU5LDI2MCwyNjEsMjYyLDI2MywyNjQsMjY1LDI2NiwyNjcsMjY4LDI2OSwyNzAsMjcxLDI3MiwyNzMsMjc0LDI3NSwyNzYsMjc3LDI3OCwyNzksMjgwLDI4MSwyODIsMjgzLDI4NCwyODUsMjg2LDI4NywyODgsMjg5LDI5MCwyOTEsMjkyLDI5MywyOTQsMjk1LDI5NiwyOTcsMjk4LDI5OSwzMDAsMzAxLDMwMiwzMDMsMzA0LDMwNSwzMDYsMzA3LDMwOCwzMDksMzEwLDMxMSwzMTIsMzEzLDMxNCwzMTUsMzE2LDMxNywzMTgsMzE5LDMyMCwzMjEsMzIyLDMyMywzMjQsMzI1LDMyNiwzMjcsMzI4LDMyOSwzMzAsMzMxLDMzMiwzMzMsMzM0LDMzNSwzMzYsMzM3LDMzOCwzMzksMzQwLDM0MSwzNDIsMzQzLDM0NCwzNDUsMzQ2LDM0NywzNDgsMzQ5LDM1MCwzNTEsMzUyLDM1MywzNTQsMzU1LDM1NiwzNTcsMzU4LDM1OSwzNjAsMzYxLDM2MiwzNjMsMzY0LDM2NSwzNjYsMzY3LDM2OCwzNjksMzcwLDM3MSwzNzIsMzczLDM3NCwzNzUsMzc2LDM3NywzNzgsMzc5LDM4MCwzODEsMzgyLDM4Myw0MDIsNTA2LDUwNyw1MDgsNTA5LDUxMCw1MTEsNTM2LDUzNyw1MzgsNTM5LDcxMCw3MTEsNzEzLDcyOCw3MjksNzMwLDczMSw3MzIsNzMzLDkwMCw5MDEsOTAyLDkwMyw5MDQsOTA1LDkwNiw5MDgsOTEwLDkxMSw5MTIsOTEzLDkxNCw5MTUsOTE2LDkxNyw5MTgsOTE5LDkyMCw5MjEsOTIyLDkyMyw5MjQsOTI1LDkyNiw5MjcsOTI4LDkyOSw5MzEsOTMyLDkzMyw5MzQsOTM1LDkzNiw5MzcsOTM4LDkzOSw5NDAsOTQxLDk0Miw5NDMsOTQ0LDk0NSw5NDYsOTQ3LDk0OCw5NDksOTUwLDk1MSw5NTIsOTUzLDk1NCw5NTUsOTU2LDk1Nyw5NTgsOTU5LDk2MCw5NjEsOTYyLDk2Myw5NjQsOTY1LDk2Niw5NjcsOTY4LDk2OSw5NzAsOTcxLDk3Miw5NzMsOTc0LDEwMjQsMTAyNSwxMDI2LDEwMjcsMTAyOCwxMDI5LDEwMzAsMTAzMSwxMDMyLDEwMzMsMTAzNCwxMDM1LDEwMzYsMTAzNywxMDM4LDEwMzksMTA0MCwxMDQxLDEwNDIsMTA0MywxMDQ0LDEwNDUsMTA0NiwxMDQ3LDEwNDgsMTA0OSwxMDUwLDEwNTEsMTA1MiwxMDUzLDEwNTQsMTA1NSwxMDU2LDEwNTcsMTA1OCwxMDU5LDEwNjAsMTA2MSwxMDYyLDEwNjMsMTA2NCwxMDY1LDEwNjYsMTA2NywxMDY4LDEwNjksMTA3MCwxMDcxLDEwNzIsMTA3MywxMDc0LDEwNzUsMTA3NiwxMDc3LDEwNzgsMTA3OSwxMDgwLDEwODEsMTA4MiwxMDgzLDEwODQsMTA4NSwxMDg2LDEwODcsMTA4OCwxMDg5LDEwOTAsMTA5MSwxMDkyLDEwOTMsMTA5NCwxMDk1LDEwOTYsMTA5NywxMDk4LDEwOTksMTEwMCwxMTAxLDExMDIsMTEwMywxMTA0LDExMDUsMTEwNiwxMTA3LDExMDgsMTEwOSwxMTEwLDExMTEsMTExMiwxMTEzLDExMTQsMTExNSwxMTE2LDExMTcsMTExOCwxMTE5LDExMzgsMTEzOSwxMTY4LDExNjksNzgwOCw3ODA5LDc4MTAsNzgxMSw3ODEyLDc4MTMsNzkyMiw3OTIzLDgyMDgsODIwOSw4MjExLDgyMTIsODIxMyw4MjE1LDgyMTYsODIxNyw4MjE4LDgyMTksODIyMCw4MjIxLDgyMjIsODIyNCw4MjI1LDgyMjYsODIzMCw4MjQwLDgyNDIsODI0Myw4MjQ5LDgyNTAsODI1Miw4MjU0LDgyNjAsODMxOSw4MzU1LDgzNTYsODM1OSw4MzY0LDg0NTMsODQ2Nyw4NDcwLDg0ODIsODQ4Niw4NDk0LDg1MzksODU0MCw4NTQxLDg1NDIsODU5Miw4NTkzLDg1OTQsODU5NSw4NTk2LDg1OTcsODYxNiw4NzA2LDg3MTAsODcxOSw4NzIxLDg3MjIsODczMCw4NzM0LDg3MzUsODc0NSw4NzQ3LDg3NzYsODgwMCw4ODAxLDg4MDQsODgwNSw4OTYyLDg5NzYsODk5Miw4OTkzLDk0NzIsOTQ3NCw5NDg0LDk0ODgsOTQ5Miw5NDk2LDk1MDAsOTUwOCw5NTE2LDk1MjQsOTUzMiw5NTUyLDk1NTMsOTU1NCw5NTU1LDk1NTYsOTU1Nyw5NTU4LDk1NTksOTU2MCw5NTYxLDk1NjIsOTU2Myw5NTY0LDk1NjUsOTU2Niw5NTY3LDk1NjgsOTU2OSw5NTcwLDk1NzEsOTU3Miw5NTczLDk1NzQsOTU3NSw5NTc2LDk1NzcsOTU3OCw5NTc5LDk1ODAsOTYwMCw5NjA0LDk2MDgsOTYxMiw5NjE2LDk2MTcsOTYxOCw5NjE5LDk2MzIsOTYzMyw5NjQyLDk2NDMsOTY0NCw5NjUwLDk2NTgsOTY2MCw5NjY4LDk2NzQsOTY3NSw5Njc5LDk2ODgsOTY4OSw5NzAyLDk3ODYsOTc4Nyw5Nzg4LDk3OTIsOTc5NCw5ODI0LDk4MjcsOTgyOSw5ODMwLDk4MzQsOTgzNSw5ODM2LDYxNDQxLDYxNDQyLDYxNDQ1LC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xLC0xXSxLcj1bMS4zNjg5OCwxLDEsLjcyNzA2LC44MDQ3OSwuODM3MzQsLjk4ODk0LC45OTc5MywuOTg5NywuOTM4ODQsLjg2MjA5LC45NDI5MiwuOTQyOTIsMS4xNjY2MSwxLjAyMDU4LC45MzU4MiwuOTY2OTQsLjkzNTgyLDEuMTkxMzcsLjk5NzkzLC45OTc5MywuOTk3OTMsLjk5NzkzLC45OTc5MywuOTk3OTMsLjk5NzkzLC45OTc5MywuOTk3OTMsLjk5NzkzLC43ODA3NiwuNzgwNzYsMS4wMjA1OCwxLjAyMDU4LDEuMDIwNTgsLjcyODUxLC43ODk2NiwuOTA4MzgsLjgzNjM3LC44MjM5MSwuOTYzNzYsLjgwMDYxLC44NjI3NSwuODc2OCwuOTU0MDcsMS4wMjU4LC43MzkwMSwuODUwMjIsLjgzNjU1LDEuMDE1NiwuOTU1NDYsLjkyMTc5LC44NzEwNywuOTIxNzksLjgyMTE0LC44MDk2LC44OTcxMywuOTQ0MzgsLjk1MzUzLC45NDA4MywuOTE5MDUsLjkwNDA2LC45NDQ2LC45NDI5MiwxLjE4Nzc3LC45NDI5MiwxLjAyMDU4LC44OTkwMywuOTAwODgsLjk0OTM4LC45Nzg5OCwuODEwOTMsLjk3NTcxLC45NDkzOCwxLjAyNCwuOTU3NywuOTU5MzMsLjk4NjIxLDEuMDQ3NCwuOTc0NTUsLjk4OTgxLC45NjcyLC45NTkzMywuOTQ0NiwuOTc4OTgsLjk3NDA3LC45NzY0NiwuNzgwMzYsMS4xMDIwOCwuOTU0NDIsLjk1Mjk4LC45NzU3OSwuOTMzMiwuOTQwMzksLjkzOCwuODA2ODcsMS4wMTE0OSwuODA2ODcsMS4wMjA1OCwuODA0NzksLjk5NzkzLC45OTc5MywuOTk3OTMsLjk5NzkzLDEuMDExNDksMS4wMDg3MiwuOTAwODgsLjkxODgyLDEuMDIxMywuODM2MSwxLjAyMDU4LC42MjI5NSwuNTQzMjQsLjg5MDIyLDEuMDg1OTUsMSwxLC45MDA4OCwxLC45NzQ1NSwuOTM1ODIsLjkwMDg4LDEsMS4wNTY4NiwuODM2MSwuOTk2NDIsLjk5NjQyLC45OTY0MiwuNzI4NTEsLjkwODM4LC45MDgzOCwuOTA4MzgsLjkwODM4LC45MDgzOCwuOTA4MzgsLjg2OCwuODIzOTEsLjgwMDYxLC44MDA2MSwuODAwNjEsLjgwMDYxLDEuMDI1OCwxLjAyNTgsMS4wMjU4LDEuMDI1OCwuOTc0ODQsLjk1NTQ2LC45MjE3OSwuOTIxNzksLjkyMTc5LC45MjE3OSwuOTIxNzksMS4wMjA1OCwuOTIxNzksLjk0NDM4LC45NDQzOCwuOTQ0MzgsLjk0NDM4LC45MDQwNiwuODY5NTgsLjk4MjI1LC45NDkzOCwuOTQ5MzgsLjk0OTM4LC45NDkzOCwuOTQ5MzgsLjk0OTM4LC45MDMxLC44MTA5MywuOTQ5MzgsLjk0OTM4LC45NDkzOCwuOTQ5MzgsLjk4NjIxLC45ODYyMSwuOTg2MjEsLjk4NjIxLC45Mzk2OSwuOTU5MzMsLjk0NDYsLjk0NDYsLjk0NDYsLjk0NDYsLjk0NDYsMS4wODU5NSwuOTQ0NiwuOTU0NDIsLjk1NDQyLC45NTQ0MiwuOTU0NDIsLjk0MDM5LC45Nzg5OCwuOTQwMzksLjkwODM4LC45NDkzOCwuOTA4MzgsLjk0OTM4LC45MDgzOCwuOTQ5MzgsLjgyMzkxLC44MTA5MywuODIzOTEsLjgxMDkzLC44MjM5MSwuODEwOTMsLjgyMzkxLC44MTA5MywuOTYzNzYsLjg0MzEzLC45NzQ4NCwuOTc1NzEsLjgwMDYxLC45NDkzOCwuODAwNjEsLjk0OTM4LC44MDA2MSwuOTQ5MzgsLjgwMDYxLC45NDkzOCwuODAwNjEsLjk0OTM4LC44NzY4LC45NTc3LC44NzY4LC45NTc3LC44NzY4LC45NTc3LDEsMSwuOTU0MDcsLjk1OTMzLC45NzA2OSwuOTU5MzMsMS4wMjU4LC45ODYyMSwxLjAyNTgsLjk4NjIxLDEuMDI1OCwuOTg2MjEsMS4wMjU4LC45ODYyMSwxLjAyNTgsLjk4NjIxLC44ODcsMS4wMTU5MSwuNzM5MDEsMS4wNDc0LDEsMSwuOTc0NTUsLjgzNjU1LC45ODk4MSwxLDEsLjgzNjU1LC43Mzk3NywuODM2NTUsLjczOTAzLC44NDYzOCwxLjAzMywuOTU1NDYsLjk1OTMzLDEsMSwuOTU1NDYsLjk1OTMzLC44MjcxLC45NTQxNywuOTU5MzMsLjkyMTc5LC45NDQ2LC45MjE3OSwuOTQ0NiwuOTIxNzksLjk0NDYsLjkzNiwuOTE5NjQsLjgyMTE0LC45NzY0NiwxLDEsLjgyMTE0LC45NzY0NiwuODA5NiwuNzgwMzYsLjgwOTYsLjc4MDM2LDEsMSwuODA5NiwuNzgwMzYsMSwxLC44OTcxMywuNzc0NTIsLjg5NzEzLDEuMTAyMDgsLjk0NDM4LC45NTQ0MiwuOTQ0MzgsLjk1NDQyLC45NDQzOCwuOTU0NDIsLjk0NDM4LC45NTQ0MiwuOTQ0MzgsLjk1NDQyLC45NDQzOCwuOTU0NDIsLjk0MDgzLC45NzU3OSwuOTA0MDYsLjk0MDM5LC45MDQwNiwuOTQ0NiwuOTM4LC45NDQ2LC45MzgsLjk0NDYsLjkzOCwxLC45OTc5MywuOTA4MzgsLjk0OTM4LC44NjgsLjkwMzEsLjkyMTc5LC45NDQ2LDEsMSwuODk3MTMsMS4xMDIwOCwuOTAwODgsLjkwMDg4LC45MDA4OCwuOTAwODgsLjkwMDg4LC45MDA4OCwuOTAwODgsLjkwMDg4LC45MDA4OCwuOTA5ODksLjkzNTgsLjkxOTQ1LC44MzE4MSwuNzUyNjEsLjg3OTkyLC44Mjk3NiwuOTYwMzQsLjgzNjg5LC45NzI2OCwxLjAwNzgsLjkwODM4LC44MzYzNywuODAxOSwuOTAxNTcsLjgwMDYxLC45NDQ2LC45NTQwNywuOTI0MzYsMS4wMjU4LC44NTAyMiwuOTcxNTMsMS4wMTU2LC45NTU0NiwuODkxOTIsLjkyMTc5LC45MjM2MSwuODcxMDcsLjk2MzE4LC44OTcxMywuOTM3MDQsLjk1NjM4LC45MTkwNSwuOTE3MDksLjkyNzk2LDEuMDI1OCwuOTM3MDQsLjk0ODM2LDEuMDM3MywuOTU5MzMsMS4wMDc4LC45NTg3MSwuOTQ4MzYsLjk2MTc0LC45MjYwMSwuOTQ5OCwuOTg2MDcsLjk1Nzc2LC45NTkzMywxLjA1NDUzLDEuMDA3OCwuOTgyNzUsLjkzMTQsLjk1NjE3LC45MTcwMSwxLjA1OTkzLC45NDQ2LC43ODM2NywuOTU1MywxLC44NjgzMiwxLjAxMjgsLjk1ODcxLC45OTM5NCwuODc1NDgsLjk2MzYxLC44Njc3NCwxLjAwNzgsLjk1ODcxLC45NDQ2LC45NTg3MSwuODY3NzQsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTQwODMsLjk3NTc5LC45NDA4MywuOTc1NzksLjk0MDgzLC45NzU3OSwuOTA0MDYsLjk0MDM5LC45NjY5NCwxLC44OTkwMywxLDEsMSwuOTM1ODIsLjkzNTgyLC45MzU4MiwxLC45MDgsLjkwOCwuOTE4LC45NDIxOSwuOTQyMTksLjk2NTQ0LDEsMS4yODUsMSwxLC44MTA3OSwuODEwNzksMSwxLC43NDg1NCwxLDEsMSwxLC45OTc5MywxLDEsMSwuNjUsMSwxLjM2MTQ1LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjE3MTczLDEsLjgwNTM1LC43NjE2OSwxLjAyMDU4LDEuMDczMiwxLjA1NDg2LDEsMSwxLjMwNjkyLDEuMDg1OTUsMS4wODU5NSwxLDEuMDg1OTUsMS4wODU5NSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMTYxNjEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMV0sVnI9e2xpbmVIZWlnaHQ6MS4yLGxpbmVHYXA6LjJ9LEdyPVsxLjM2ODk4LDEsMSwuNjYyMjcsLjgwNzc5LC44MTYyNSwuOTcyNzYsLjk3Mjc2LC45NzczMywuOTIyMjIsLjgzMjY2LC45NDI5MiwuOTQyOTIsMS4xNjE0OCwxLjAyMDU4LC45MzU4MiwuOTY2OTQsLjkzNTgyLDEuMTczMzcsLjk3Mjc2LC45NzI3NiwuOTcyNzYsLjk3Mjc2LC45NzI3NiwuOTcyNzYsLjk3Mjc2LC45NzI3NiwuOTcyNzYsLjk3Mjc2LC43ODA3NiwuNzgwNzYsMS4wMjA1OCwxLjAyMDU4LDEuMDIwNTgsLjcxNTQxLC43NjgxMywuODU1NzYsLjgwNTkxLC44MDcyOSwuOTQyOTksLjc3NTEyLC44MzY1NSwuODY1MjMsLjkyMjIyLC45ODYyMSwuNzE3NDMsLjgxNjk4LC43OTcyNiwuOTg1NTgsLjkyMjIyLC45MDYzNywuODM4MDksLjkwNjM3LC44MDcyOSwuNzY0NjMsLjg2Mjc1LC45MDY5OSwuOTE2MDUsLjkxNTQsLjg1MzA4LC44NTQ1OCwuOTA1MzEsLjk0MjkyLDEuMjEyOTYsLjk0MjkyLDEuMDIwNTgsLjg5OTAzLDEuMTg2MTYsLjk5NjEzLC45MTY3NywuNzgyMTYsLjkxNjc3LC45MDA4MywuOTg3OTYsLjkxMzUsLjkyMTY4LC45NTM4MSwuOTg5ODEsLjk1Mjk4LC45NTM4MSwuOTM0NTksLjkyMTY4LC45MTUxMywuOTIwMDQsLjkxNjc3LC45NTA3NywuNzQ4LDEuMDQ1MDIsLjkxNjc3LC45MjA2MSwuOTQyMzYsLjg5NTQ0LC44OTM2NCwuOSwuODA2ODcsLjg1NzgsLjgwNjg3LDEuMDIwNTgsLjgwNzc5LC45NzI3NiwuOTcyNzYsLjk3Mjc2LC45NzI3NiwuODU3OCwuOTk5NzMsMS4xODYxNiwuOTEzMzksMS4wODA3NCwuODI4OTEsMS4wMjA1OCwuNTU1MDksLjcxNTI2LC44OTAyMiwxLjA4NTk1LDEsMSwxLjE4NjE2LDEsLjk2NzM2LC45MzU4MiwxLjE4NjE2LDEsMS4wNDg2NCwuODI3MTEsLjk5MDQzLC45OTA0MywuOTkwNDMsLjcxNTQxLC44NTU3NiwuODU1NzYsLjg1NTc2LC44NTU3NiwuODU1NzYsLjg1NTc2LC44NDUsLjgwNzI5LC43NzUxMiwuNzc1MTIsLjc3NTEyLC43NzUxMiwuOTg2MjEsLjk4NjIxLC45ODYyMSwuOTg2MjEsLjk1OTYxLC45MjIyMiwuOTA2MzcsLjkwNjM3LC45MDYzNywuOTA2MzcsLjkwNjM3LDEuMDIwNTgsLjkwMjUxLC45MDY5OSwuOTA2OTksLjkwNjk5LC45MDY5OSwuODU0NTgsLjgzNjU5LC45NDk1MSwuOTk2MTMsLjk5NjEzLC45OTYxMywuOTk2MTMsLjk5NjEzLC45OTYxMywuODU4MTEsLjc4MjE2LC45MDA4MywuOTAwODMsLjkwMDgzLC45MDA4MywuOTUzODEsLjk1MzgxLC45NTM4MSwuOTUzODEsLjkxMzUsLjkyMTY4LC45MTUxMywuOTE1MTMsLjkxNTEzLC45MTUxMywuOTE1MTMsMS4wODU5NSwuOTE2NzcsLjkxNjc3LC45MTY3NywuOTE2NzcsLjkxNjc3LC44OTM2NCwuOTIzMzIsLjg5MzY0LC44NTU3NiwuOTk2MTMsLjg1NTc2LC45OTYxMywuODU1NzYsLjk5NjEzLC44MDcyOSwuNzgyMTYsLjgwNzI5LC43ODIxNiwuODA3MjksLjc4MjE2LC44MDcyOSwuNzgyMTYsLjk0Mjk5LC43Njc4MywuOTU5NjEsLjkxNjc3LC43NzUxMiwuOTAwODMsLjc3NTEyLC45MDA4MywuNzc1MTIsLjkwMDgzLC43NzUxMiwuOTAwODMsLjc3NTEyLC45MDA4MywuODY1MjMsLjkxMzUsLjg2NTIzLC45MTM1LC44NjUyMywuOTEzNSwxLDEsLjkyMjIyLC45MjE2OCwuOTIyMjIsLjkyMTY4LC45ODYyMSwuOTUzODEsLjk4NjIxLC45NTM4MSwuOTg2MjEsLjk1MzgxLC45ODYyMSwuOTUzODEsLjk4NjIxLC45NTM4MSwuODYwMzYsLjk3MDk2LC43MTc0MywuOTg5ODEsMSwxLC45NTI5OCwuNzk3MjYsLjk1MzgxLDEsMSwuNzk3MjYsLjY4OTQsLjc5NzI2LC43NDMyMSwuODE2OTEsMS4wMDA2LC45MjIyMiwuOTIxNjgsMSwxLC45MjIyMiwuOTIxNjgsLjc5NDY0LC45MjA5OCwuOTIxNjgsLjkwNjM3LC45MTUxMywuOTA2MzcsLjkxNTEzLC45MDYzNywuOTE1MTMsLjkwOSwuODc1MTQsLjgwNzI5LC45NTA3NywxLDEsLjgwNzI5LC45NTA3NywuNzY0NjMsLjc0OCwuNzY0NjMsLjc0OCwxLDEsLjc2NDYzLC43NDgsMSwxLC44NjI3NSwuNzI2NTEsLjg2Mjc1LDEuMDQ1MDIsLjkwNjk5LC45MTY3NywuOTA2OTksLjkxNjc3LC45MDY5OSwuOTE2NzcsLjkwNjk5LC45MTY3NywuOTA2OTksLjkxNjc3LC45MDY5OSwuOTE2NzcsLjkxNTQsLjk0MjM2LC44NTQ1OCwuODkzNjQsLjg1NDU4LC45MDUzMSwuOSwuOTA1MzEsLjksLjkwNTMxLC45LDEsLjk3Mjc2LC44NTU3NiwuOTk2MTMsLjg0NSwuODU4MTEsLjkwMjUxLC45MTY3NywxLDEsLjg2Mjc1LDEuMDQ1MDIsMS4xODYxNiwxLjE4NjE2LDEuMTg2MTYsMS4xODYxNiwxLjE4NjE2LDEuMTg2MTYsMS4xODYxNiwxLjE4NjE2LDEuMTg2MTYsMS4wMDg5OSwxLjMwNjI4LC44NTU3NiwuODAxNzgsLjY2ODYyLC43OTI3LC42OTMyMywuODgxMjcsLjcyNDU5LC44OTcxMSwuOTUzODEsLjg1NTc2LC44MDU5MSwuNzgwNSwuOTQ3MjksLjc3NTEyLC45MDUzMSwuOTIyMjIsLjkwNjM3LC45ODYyMSwuODE2OTgsLjkyNjU1LC45ODU1OCwuOTIyMjIsLjg1MzU5LC45MDYzNywuOTA5NzYsLjgzODA5LC45NDUyMywuODYyNzUsLjgzNTA5LC45MzE1NywuODUzMDgsLjgzMzkyLC45MjM0NiwuOTg2MjEsLjgzNTA5LC45Mjg4NiwuOTEzMjQsLjkyMTY4LC45NTM4MSwuOTA2NDYsLjkyODg2LC45MDU1NywuODY4NDcsLjkwMjc2LC45MTMyNCwuODY4NDIsLjkyMTY4LC45OTUzMSwuOTUzODEsLjkyMjQsLjg1NDA4LC45MjY5OSwuODY4NDcsMS4wMDUxLC45MTUxMywuODA0ODcsLjkzNDgxLDEsLjg4MTU5LDEuMDUyMTQsLjkwNjQ2LC45NzM1NSwuODE1MzksLjg5Mzk4LC44NTkyMywuOTUzODEsLjkwNjQ2LC45MTUxMywuOTA2NDYsLjg1OTIzLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjkxNTQsLjk0MjM2LC45MTU0LC45NDIzNiwuOTE1NCwuOTQyMzYsLjg1NDU4LC44OTM2NCwuOTY2OTQsMSwuODk5MDMsMSwxLDEsLjkxNzgyLC45MTc4MiwuOTE3ODIsMSwuODk2LC44OTYsLjg5NiwuOTMzMiwuOTMzMiwuOTU5NzMsMSwxLjI2LDEsMSwuODA0NzksLjgwMTc4LDEsMSwuODU2MzMsMSwxLDEsMSwuOTcyNzYsMSwxLDEsLjY5OCwxLDEuMzYxNDUsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMTQ1NDIsMSwuNzkxOTksLjc4Njk0LDEuMDIwNTgsMS4wMzQ5MywxLjA1NDg2LDEsMSwxLjIzMDI2LDEuMDg1OTUsMS4wODU5NSwxLDEuMDg1OTUsMS4wODU5NSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMjAwMDYsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMV0sJHI9e2xpbmVIZWlnaHQ6MS4yLGxpbmVHYXA6LjJ9LFlyPVsxLjM2ODk4LDEsMSwuNjU1MDcsLjg0OTQzLC44NTYzOSwuODg0NjUsLjg4NDY1LC44NjkzNiwuODgzMDcsLjg2OTQ4LC44NTI4MywuODUyODMsMS4wNjM4MywxLjAyMDU4LC43NTk0NSwuOTIxOSwuNzU5NDUsMS4xNzMzNywuODg0NjUsLjg4NDY1LC44ODQ2NSwuODg0NjUsLjg4NDY1LC44ODQ2NSwuODg0NjUsLjg4NDY1LC44ODQ2NSwuODg0NjUsLjc1OTQ1LC43NTk0NSwxLjAyMDU4LDEuMDIwNTgsMS4wMjA1OCwuNjkwNDYsLjcwOTI2LC44NTE1OCwuNzc4MTIsLjc2ODUyLC44OTU5MSwuNzA0NjYsLjc2MTI1LC44MDA5NCwuODY4MjIsLjgzODY0LC43MjgsLjc3MjEyLC43OTQ3NSwuOTM2MzcsLjg3NTE0LC44NTg4LC43NjAxMywuODU4OCwuNzI0MjEsLjY5ODY2LC43NzU5OCwuODU5OTEsLjgwODExLC44NzgzMiwuNzgxMTIsLjc3NTEyLC44NTYyLDEuMDIyMiwxLjE4NDE3LDEuMDIyMiwxLjI3MDE0LC44OTkwMywxLjE1MDEyLC45Mzg1OSwuOTQzOTksLjg0NiwuOTQzOTksLjgxNDUzLDEuMDE4NiwuOTQyMTksLjk2MDE3LDEuMDMwNzUsMS4wMjE3NSwuOTEyLDEuMDMwNzUsLjk2OTk4LC45NjAxNywuOTM4NTksLjk0Mzk5LC45NDM5OSwuOTU0OTMsLjc0NiwxLjEyNjU4LC45NDU3OCwuOTEsLjk3OSwuODgyLC44ODIsLjgzLC44NTAzNCwuODM1MzcsLjg1MDM0LDEuMDIwNTgsLjcwODY5LC44ODQ2NSwuODg0NjUsLjg4NDY1LC44ODQ2NSwuODM1MzcsLjkwMDgzLDEuMTUwMTIsLjkxNjEsLjk0NTY1LC43MzU0MSwxLjAyMDU4LC41MzYwOSwuNjkzNTMsLjc5NTE5LDEuMDg1OTUsMSwxLDEuMTUwMTIsMSwuOTE5NzQsLjc1OTQ1LDEuMTUwMTIsMSwuOTQ0NiwuNzMzNjEsLjkwMDUsLjkwMDUsLjkwMDUsLjYyODY0LC44NTE1OCwuODUxNTgsLjg1MTU4LC44NTE1OCwuODUxNTgsLjg1MTU4LC43NzMsLjc2ODUyLC43MDQ2NiwuNzA0NjYsLjcwNDY2LC43MDQ2NiwuODM4NjQsLjgzODY0LC44Mzg2NCwuODM4NjQsLjkwNTYxLC44NzUxNCwuODU4OCwuODU4OCwuODU4OCwuODU4OCwuODU4OCwxLjAyMDU4LC44NTc1MSwuODU5OTEsLjg1OTkxLC44NTk5MSwuODU5OTEsLjc3NTEyLC43NjAxMywuODgwNzUsLjkzODU5LC45Mzg1OSwuOTM4NTksLjkzODU5LC45Mzg1OSwuOTM4NTksLjgwNzUsLjg0NiwuODE0NTMsLjgxNDUzLC44MTQ1MywuODE0NTMsLjgyNDI0LC44MjQyNCwuODI0MjQsLjgyNDI0LC45Mjc4LC45NjAxNywuOTM4NTksLjkzODU5LC45Mzg1OSwuOTM4NTksLjkzODU5LDEuMDg1OTUsLjg1NjIsLjk0NTc4LC45NDU3OCwuOTQ1NzgsLjk0NTc4LC44ODIsLjk0NTc4LC44ODIsLjg1MTU4LC45Mzg1OSwuODUxNTgsLjkzODU5LC44NTE1OCwuOTM4NTksLjc2ODUyLC44NDYsLjc2ODUyLC44NDYsLjc2ODUyLC44NDYsLjc2ODUyLC44NDYsLjg5NTkxLC44NTQ0LC45MDU2MSwuOTQzOTksLjcwNDY2LC44MTQ1MywuNzA0NjYsLjgxNDUzLC43MDQ2NiwuODE0NTMsLjcwNDY2LC44MTQ1MywuNzA0NjYsLjgxNDUzLC44MDA5NCwuOTQyMTksLjgwMDk0LC45NDIxOSwuODAwOTQsLjk0MjE5LDEsMSwuODY4MjIsLjk2MDE3LC44NjgyMiwuOTYwMTcsLjgzODY0LC44MjQyNCwuODM4NjQsLjgyNDI0LC44Mzg2NCwuODI0MjQsLjgzODY0LDEuMDMwNzUsLjgzODY0LC44MjQyNCwuODE0MDIsMS4wMjczOCwuNzI4LDEuMDIxNzUsMSwxLC45MTIsLjc5NDc1LDEuMDMwNzUsMSwxLC43OTQ3NSwuODM5MTEsLjc5NDc1LC42NjI2NiwuODA1NTMsMS4wNjY3NiwuODc1MTQsLjk2MDE3LDEsMSwuODc1MTQsLjk2MDE3LC44Njg2NSwuODczOTYsLjk2MDE3LC44NTg4LC45Mzg1OSwuODU4OCwuOTM4NTksLjg1ODgsLjkzODU5LC44NjcsLjg0NzU5LC43MjQyMSwuOTU0OTMsMSwxLC43MjQyMSwuOTU0OTMsLjY5ODY2LC43NDYsLjY5ODY2LC43NDYsMSwxLC42OTg2NiwuNzQ2LDEsMSwuNzc1OTgsLjg4NDE3LC43NzU5OCwxLjEyNjU4LC44NTk5MSwuOTQ1NzgsLjg1OTkxLC45NDU3OCwuODU5OTEsLjk0NTc4LC44NTk5MSwuOTQ1NzgsLjg1OTkxLC45NDU3OCwuODU5OTEsLjk0NTc4LC44NzgzMiwuOTc5LC43NzUxMiwuODgyLC43NzUxMiwuODU2MiwuODMsLjg1NjIsLjgzLC44NTYyLC44MywxLC44ODQ2NSwuODUxNTgsLjkzODU5LC43NzMsLjgwNzUsLjg1NzUxLC44NTYyLDEsMSwuNzc1OTgsMS4xMjY1OCwxLjE1MDEyLDEuMTUwMTIsMS4xNTAxMiwxLjE1MDEyLDEuMTUwMTIsMS4xNTMxMywxLjE1MDEyLDEuMTUwMTIsMS4xNTAxMiwxLjA4MTA2LDEuMDM5MDEsLjg1MTU4LC43NzAyNSwuNjIyNjQsLjc2NDYsLjY1MzUxLC44NjAyNiwuNjk0NjEsLjg5OTQ3LDEuMDMwNzUsLjg1MTU4LC43NzgxMiwuNzY0NDksLjg4ODM2LC43MDQ2NiwuODU2MiwuODY4MjIsLjg1ODgsLjgzODY0LC43NzIxMiwuODUzMDgsLjkzNjM3LC44NzUxNCwuODIzNTIsLjg1ODgsLjg1NzAxLC43NjAxMywuODkwNTgsLjc3NTk4LC44MTU2LC44MjU2NSwuNzgxMTIsLjc3ODk5LC44OTM4NiwuODM4NjQsLjgxNTYsLjk0ODYsLjkyMzg4LC45NjE4NiwxLjAzMDc1LC45MTEyMywuOTQ4NiwuOTMyOTgsLjg3OCwuOTM5NDIsLjkyMzg4LC44NDU5NiwuOTYxODYsLjk1MTE5LDEuMDMwNzUsLjkyMiwuODg3ODcsLjk1ODI5LC44OCwuOTM1NTksLjkzODU5LC43ODgxNSwuOTM3NTgsMSwuODkyMTcsMS4wMzczNywuOTExMjMsLjkzOTY5LC43NzQ4NywuODU3NjksLjg2Nzk5LDEuMDMwNzUsLjkxMTIzLC45Mzg1OSwuOTExMjMsLjg2Nzk5LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjg3ODMyLC45NzksLjg3ODMyLC45NzksLjg3ODMyLC45NzksLjc3NTEyLC44ODIsLjkyMTksMSwuODk5MDMsMSwxLDEsLjg3MzIxLC44NzMyMSwuODczMjEsMSwxLjAyNywxLjAyNywxLjAyNywuODY4NDcsLjg2ODQ3LC43OTEyMSwxLDEuMTI0LDEsMSwuNzM1NzIsLjczNTcyLDEsMSwuODUwMzQsMSwxLDEsMSwuODg0NjUsMSwxLDEsLjY2OSwxLDEuMzYxNDUsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMDQ4MjgsMSwuNzQ5NDgsLjc1MTg3LDEuMDIwNTgsLjk4MzkxLDEuMDIxMTksMSwxLDEuMDYyMzMsMS4wODU5NSwxLjA4NTk1LDEsMS4wODU5NSwxLjA4NTk1LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4wNTIzMywxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxXSxKcj17bGluZUhlaWdodDoxLjIsbGluZUdhcDouMn0sUXI9WzEuMzY4OTgsMSwxLC43NjMwNSwuODI3ODQsLjk0OTM1LC44OTM2NCwuOTIyNDEsLjg5MDczLC45MDcwNiwuOTg0NzIsLjg1MjgzLC44NTI4MywxLjA2NjQsMS4wMjA1OCwuNzQ1MDUsLjkyMTksLjc0NTA1LDEuMjM0NTYsLjkyMjQxLC45MjI0MSwuOTIyNDEsLjkyMjQxLC45MjI0MSwuOTIyNDEsLjkyMjQxLC45MjI0MSwuOTIyNDEsLjkyMjQxLC43NDUwNSwuNzQ1MDUsMS4wMjA1OCwxLjAyMDU4LDEuMDIwNTgsLjczMDAyLC43MjYwMSwuOTE3NTUsLjgxMjYsLjgwMzE0LC45MjIyMiwuNzM3NjQsLjc5NzI2LC44MzA1MSwuOTAyODQsLjg2MDIzLC43NCwuODEyNiwuODQ4NjksLjk2NTE4LC45MTExNSwuODg1OCwuNzk3NjEsLjg4NTgsLjc0NDk4LC43MzkxNCwuODEzNjMsLjg5NTkxLC44MzY1OSwuODk2MzMsLjg1NjA4LC44MTExLC45MDUzMSwxLjAyMjIsMS4yMjczNiwxLjAyMjIsMS4yNzAxNCwuODk5MDMsLjkwMDg4LC44NjY2NywxLjAyMzEsLjg5NiwxLjAxNDExLC45MDA4MywxLjA1MDk5LDEuMDA1MTIsLjk5NzkzLDEuMDUzMjYsMS4wOTM3NywuOTM4LDEuMDYyMjYsMS4wMDExOSwuOTk3OTMsLjk4NzE0LDEuMDIzMSwxLjAxMjMxLC45ODE5NiwuNzkyLDEuMTkxMzcsLjk5MDc0LC45NjIsMS4wMTkxNSwuOTI2LC45NDIsLjg1NiwuODUwMzQsLjkyMDA2LC44NTAzNCwxLjAyMDU4LC42OTA2NywuOTIyNDEsLjkyMjQxLC45MjI0MSwuOTIyNDEsLjkyMDA2LC45MzMyLC45MDA4OCwuOTE4ODIsLjkzNDg0LC43NTMzOSwxLjAyMDU4LC41Njg2NiwuNTQzMjQsLjc5NTE5LDEuMDg1OTUsMSwxLC45MDA4OCwxLC45NTMyNSwuNzQ1MDUsLjkwMDg4LDEsLjk3MTk4LC43NTMzOSwuOTEwMDksLjkxMDA5LC45MTAwOSwuNjY0NjYsLjkxNzU1LC45MTc1NSwuOTE3NTUsLjkxNzU1LC45MTc1NSwuOTE3NTUsLjc4OCwuODAzMTQsLjczNzY0LC43Mzc2NCwuNzM3NjQsLjczNzY0LC44NjAyMywuODYwMjMsLjg2MDIzLC44NjAyMywuOTI5MTUsLjkxMTE1LC44ODU4LC44ODU4LC44ODU4LC44ODU4LC44ODU4LDEuMDIwNTgsLjg4NTgsLjg5NTkxLC44OTU5MSwuODk1OTEsLjg5NTkxLC44MTExLC43OTYxMSwuODk3MTMsLjg2NjY3LC44NjY2NywuODY2NjcsLjg2NjY3LC44NjY2NywuODY2NjcsLjg2OTM2LC44OTYsLjkwMDgzLC45MDA4MywuOTAwODMsLjkwMDgzLC44NDIyNCwuODQyMjQsLjg0MjI0LC44NDIyNCwuOTcyNzYsLjk5NzkzLC45ODcxNCwuOTg3MTQsLjk4NzE0LC45ODcxNCwuOTg3MTQsMS4wODU5NSwuODk4NzYsLjk5MDc0LC45OTA3NCwuOTkwNzQsLjk5MDc0LC45NDIsMS4wMjMxLC45NDIsLjkxNzU1LC44NjY2NywuOTE3NTUsLjg2NjY3LC45MTc1NSwuODY2NjcsLjgwMzE0LC44OTYsLjgwMzE0LC44OTYsLjgwMzE0LC44OTYsLjgwMzE0LC44OTYsLjkyMjIyLC45MzM3MiwuOTI5MTUsMS4wMTQxMSwuNzM3NjQsLjkwMDgzLC43Mzc2NCwuOTAwODMsLjczNzY0LC45MDA4MywuNzM3NjQsLjkwMDgzLC43Mzc2NCwuOTAwODMsLjgzMDUxLDEuMDA1MTIsLjgzMDUxLDEuMDA1MTIsLjgzMDUxLDEuMDA1MTIsMSwxLC45MDI4NCwuOTk3OTMsLjkwOTc2LC45OTc5MywuODYwMjMsLjg0MjI0LC44NjAyMywuODQyMjQsLjg2MDIzLC44NDIyNCwuODYwMjMsMS4wNTMyNiwuODYwMjMsLjg0MjI0LC44Mjg3MywxLjA3NDY5LC43NCwxLjA5Mzc3LDEsMSwuOTM4LC44NDg2OSwxLjA2MjI2LDEsMSwuODQ4NjksLjgzNzA0LC44NDg2OSwuODE0NDEsLjg1NTg4LDEuMDg5MjcsLjkxMTE1LC45OTc5MywxLDEsLjkxMTE1LC45OTc5MywuOTE4ODcsLjkwOTkxLC45OTc5MywuODg1OCwuOTg3MTQsLjg4NTgsLjk4NzE0LC44ODU4LC45ODcxNCwuODk0LC45MTQzNCwuNzQ0OTgsLjk4MTk2LDEsMSwuNzQ0OTgsLjk4MTk2LC43MzkxNCwuNzkyLC43MzkxNCwuNzkyLDEsMSwuNzM5MTQsLjc5MiwxLDEsLjgxMzYzLC45MDQsLjgxMzYzLDEuMTkxMzcsLjg5NTkxLC45OTA3NCwuODk1OTEsLjk5MDc0LC44OTU5MSwuOTkwNzQsLjg5NTkxLC45OTA3NCwuODk1OTEsLjk5MDc0LC44OTU5MSwuOTkwNzQsLjg5NjMzLDEuMDE5MTUsLjgxMTEsLjk0MiwuODExMSwuOTA1MzEsLjg1NiwuOTA1MzEsLjg1NiwuOTA1MzEsLjg1NiwxLC45MjI0MSwuOTE3NTUsLjg2NjY3LC43ODgsLjg2OTM2LC44ODU4LC44OTg3NiwxLDEsLjgxMzYzLDEuMTkxMzcsLjkwMDg4LC45MDA4OCwuOTAwODgsLjkwMDg4LC45MDA4OCwuOTAwODgsLjkwMDg4LC45MDA4OCwuOTAwODgsLjkwMzg4LDEuMDM5MDEsLjkyMTM4LC43ODEwNSwuNzE1NCwuODYxNjksLjgwNTEzLC45NDAwNywuODI1MjgsLjk4NjEyLDEuMDYyMjYsLjkxNzU1LC44MTI2LC44MTg4NCwuOTI4MTksLjczNzY0LC45MDUzMSwuOTAyODQsLjg4NTgsLjg2MDIzLC44MTI2LC45MTE3MiwuOTY1MTgsLjkxMTE1LC44MzA4OSwuODg1OCwuODc3OTEsLjc5NzYxLC44OTI5NywuODEzNjMsLjg4MTU3LC44OTk5MiwuODU2MDgsLjgxOTkyLC45NDMwNywuODYwMjMsLjg4MTU3LC45NTMwOCwuOTg2OTksLjk5NzkzLDEuMDYyMjYsLjk1ODE3LC45NTMwOCwuOTczNTgsLjkyOCwuOTgwODgsLjk4Njk5LC45Mjc2MSwuOTk3OTMsLjk2MDE3LDEuMDYyMjYsLjk4NiwuOTQ0LC45NTk3OCwuOTM4LC45NjcwNSwuOTg3MTQsLjgwNDQyLC45ODk3MiwxLC44OTc2MiwxLjA0NTUyLC45NTgxNywuOTkwMDcsLjg3MDY0LC45MTg3OSwuODg4ODgsMS4wNjIyNiwuOTU4MTcsLjk4NzE0LC45NTgxNywuODg4ODgsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuODk2MzMsMS4wMTkxNSwuODk2MzMsMS4wMTkxNSwuODk2MzMsMS4wMTkxNSwuODExMSwuOTQyLC45MjE5LDEsLjg5OTAzLDEsMSwxLC45MzE3MywuOTMxNzMsLjkzMTczLDEsMS4wNjMwNCwxLjA2MzA0LDEuMDY5MDQsLjg5OTAzLC44OTkwMywuODA1NDksMSwxLjE1NiwxLDEsLjc2NTc1LC43NjU3NSwxLDEsLjcyNDU4LDEsMSwxLDEsLjkyMjQxLDEsMSwxLC42MTksMSwxLjM2MTQ1LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjA3MjU3LDEsLjc0NzA1LC43MTExOSwxLjAyMDU4LDEuMDI0LDEuMDIxMTksMSwxLDEuMTUzNiwxLjA4NTk1LDEuMDg1OTUsMSwxLjA4NTk1LDEuMDg1OTUsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjA1NjM4LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLFpyPXtsaW5lSGVpZ2h0OjEuMixsaW5lR2FwOi4yfSxlcz1bMS43NjczOCwxLDEsLjk5Mjk3LC45ODI0LDEuMDQwMTYsMS4wNjQ5NywxLjAzNDI0LC45NzUyOSwxLjE3NjQ3LDEuMjMyMDMsMS4xMDg1LDEuMTA4NSwxLjE2OTM5LDEuMjEwNywuOTc1NCwxLjIxNDA4LC45NzU0LDEuNTk1NzgsMS4wMzQyNCwxLjAzNDI0LDEuMDM0MjQsMS4wMzQyNCwxLjAzNDI0LDEuMDM0MjQsMS4wMzQyNCwxLjAzNDI0LDEuMDM0MjQsMS4wMzQyNCwuODEzNzgsLjgxMzc4LDEuMjEwNywxLjIxMDcsMS4yMTA3LC43MTcwMywuOTc4NDcsLjk3MzYzLC44ODc3NiwuODY0MSwxLjAyMDk2LC43OTc5NSwuODUxMzIsLjkxNCwxLjA2MDg1LDEuMTQwNiwuODAwNywuODk4NTgsLjgzNjkzLDEuMTQ4ODksMS4wOTM5OCwuOTc0ODksLjkyMDk0LC45NzQ4OSwuOTAzOTksLjg0MDQxLC45NTkyMywxLjAwMTM1LDEsMS4wNjQ2NywuOTgyNDMsLjkwOTk2LC45OTM2MSwxLjEwODUsMS41Njk0MiwxLjEwODUsMS4yMTA3LC43NDYyNywuOTQyODIsLjk2NzUyLDEuMDE1MTksLjg2MzA0LDEuMDEzNTksLjk3Mjc4LDEuMTUxMDMsMS4wMTM1OSwuOTg1NjEsMS4wMjI4NSwxLjAyMjg1LDEuMDA1MjcsMS4wMjI4NSwxLjAzMDIsLjk5MDQxLDEuMDAwOCwxLjAxNTE5LDEuMDEzNTksMS4wMjI1OCwuNzkxMDQsMS4xNjg2MiwuOTkwNDEsLjk3NDU0LDEuMDI1MTEsLjk5Mjk4LC45Njc1MiwuOTU4MDEsLjk0ODU2LDEuMTY1NzksLjk0ODU2LDEuMjEwNywuOTgyNCwxLjAzNDI0LDEuMDM0MjQsMSwxLjAzNDI0LDEuMTY1NzksLjg3MjcsMS4zODcxLDEuMTg2MjIsMS4xMDgxOCwxLjA0NDc4LDEuMjEwNywxLjE4NjIyLC43NTE1NSwuOTQ5OTQsMS4yODgyNiwxLjIxNDA4LDEuMjE0MDgsLjkxMDU2LDEsLjkxNTcyLC45NzU0LC42NDY2MywxLjE4MzI4LDEuMjQ4NjYsMS4wNDQ3OCwxLjE0MTY5LDEuMTU3NDksMS4xNzM4OSwuNzE3MDMsLjk3MzYzLC45NzM2MywuOTczNjMsLjk3MzYzLC45NzM2MywuOTczNjMsLjkzNTA2LC44NjQxLC43OTc5NSwuNzk3OTUsLjc5Nzk1LC43OTc5NSwxLjE0MDYsMS4xNDA2LDEuMTQwNiwxLjE0MDYsMS4wMjA5NiwxLjA5Mzk4LC45NzQyNiwuOTc0MjYsLjk3NDI2LC45NzQyNiwuOTc0MjYsMS4yMTA3LC45NzQ4OSwxLjAwMTM1LDEuMDAxMzUsMS4wMDEzNSwxLjAwMTM1LC45MDk5NiwuOTIwOTQsMS4wMjc5OCwuOTY3NTIsLjk2NzUyLC45Njc1MiwuOTY3NTIsLjk2NzUyLC45Njc1MiwuOTMxMzYsLjg2MzA0LC45NzI3OCwuOTcyNzgsLjk3Mjc4LC45NzI3OCwxLjAyMjg1LDEuMDIyODUsMS4wMjI4NSwxLjAyMjg1LC45NzEyMiwuOTkwNDEsMSwxLDEsMSwxLDEuMjg4MjYsMS4wMDA4LC45OTA0MSwuOTkwNDEsLjk5MDQxLC45OTA0MSwuOTY3NTIsMS4wMTUxOSwuOTY3NTIsLjk3MzYzLC45Njc1MiwuOTczNjMsLjk2NzUyLC45NzM2MywuOTY3NTIsLjg2NDEsLjg2MzA0LC44NjQxLC44NjMwNCwuODY0MSwuODYzMDQsLjg2NDEsLjg2MzA0LDEuMDIwOTYsMS4wMzA1NywxLjAyMDk2LDEuMDM1MTcsLjc5Nzk1LC45NzI3OCwuNzk3OTUsLjk3Mjc4LC43OTc5NSwuOTcyNzgsLjc5Nzk1LC45NzI3OCwuNzk3OTUsLjk3Mjc4LC45MTQsMS4wMTM1OSwuOTE0LDEuMDEzNTksLjkxNCwxLjAxMzU5LDEsMSwxLjA2MDg1LC45ODU2MSwxLjA2MDg1LDEuMDA4NzksMS4xNDA2LDEuMDIyODUsMS4xNDA2LDEuMDIyODUsMS4xNDA2LDEuMDIyODUsMS4xNDA2LDEuMDIyODUsMS4xNDA2LDEuMDIyODUsLjk3MTM4LDEuMDg2OTIsLjgwMDcsMS4wMjI4NSwxLDEsMS4wMDUyNywuODM2OTMsMS4wMjI4NSwxLDEsLjgzNjkzLC45NDU1LC44MzY5MywuOTA0MTgsLjgzNjkzLDEuMTMwMDUsMS4wOTM5OCwuOTkwNDEsMSwxLDEuMDkzOTgsLjk5MDQxLC45NjY5MiwxLjA5MjUxLC45OTA0MSwuOTc0ODksMS4wMDA4LC45NzQ4OSwxLjAwMDgsLjk3NDg5LDEuMDAwOCwuOTM5OTQsLjk3OTMxLC45MDM5OSwxLjAyMjU4LDEsMSwuOTAzOTksMS4wMjI1OCwuODQwNDEsLjc5MTA0LC44NDA0MSwuNzkxMDQsLjg0MDQxLC43OTEwNCwuODQwNDEsLjc5MTA0LDEsMSwuOTU5MjMsMS4wNzAzNCwuOTU5MjMsMS4xNjg2MiwxLjAwMTM1LC45OTA0MSwxLjAwMTM1LC45OTA0MSwxLjAwMTM1LC45OTA0MSwxLjAwMTM1LC45OTA0MSwxLjAwMTM1LC45OTA0MSwxLjAwMTM1LC45OTA0MSwxLjA2NDY3LDEuMDI1MTEsLjkwOTk2LC45Njc1MiwuOTA5OTYsLjk5MzYxLC45NTgwMSwuOTkzNjEsLjk1ODAxLC45OTM2MSwuOTU4MDEsMS4wNzczMywxLjAzNDI0LC45NzM2MywuOTY3NTIsLjkzNTA2LC45MzEzNiwuOTc0ODksMS4wMDA4LDEsMSwuOTU5MjMsMS4xNjg2MiwxLjE1MTAzLDEuMTUxMDMsMS4wMTE3MywxLjAzOTU5LC43NTk1MywuODEzNzgsLjc5OTEyLDEuMTUxMDMsMS4yMTk5NCwuOTUxNjEsLjg3ODE1LDEuMDExNDksLjgxNTI1LC43Njc2LC45ODE2NywxLjAxMTM0LDEuMDI1NDYsLjg0MDk3LDEuMDMwODksMS4xODEwMiwuOTczNjMsLjg4Nzc2LC44NTEzNCwuOTc4MjYsLjc5Nzk1LC45OTM2MSwxLjA2MDg1LC45NzQ4OSwxLjE0MDYsLjg5ODU4LDEuMDM4OCwxLjE0ODg5LDEuMDkzOTgsLjg2MDM5LC45NzQ4OSwxLjA1OTUsLjkyMDk0LC45NDc5MywuOTU5MjMsLjkwOTk2LC45OTM0NiwuOTgyNDMsMS4wMjExMiwuOTU0OTMsMS4xNDA2LC45MDk5NiwxLjAzNTc0LDEuMDI1OTcsMS4wMDA4LDEuMTgxMDIsMS4wNjYyOCwxLjAzNTc0LDEuMDE5MiwxLjAxOTMyLDEuMDA4ODYsLjk3NTMxLDEuMDEwNiwxLjAwMDgsMS4xMzE4OSwxLjE4MTAyLDEuMDIyNzcsLjk4NjgzLDEuMDAxNiwuOTk1NjEsMS4wNzIzNywxLjAwMDgsLjkwNDM0LC45OTkyMSwuOTM4MDMsLjg5NjUsMS4yMzA4NSwxLjA2NjI4LDEuMDQ5ODMsLjk2MjY4LDEuMDQ5OSwuOTg0MzksMS4xODEwMiwxLjA2NjI4LDEuMDAwOCwxLjA2NjI4LC45ODQzOSwuNzk3OTUsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4wOTQ2NiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTcyNzgsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS4wMjA2NSwxLDEsMSwxLDEsMSwxLjA2NDY3LDEuMDI1MTEsMS4wNjQ2NywxLjAyNTExLDEuMDY0NjcsMS4wMjUxMSwuOTA5OTYsLjk2NzUyLDEsMS4yMTQwOCwuODk5MDMsMSwxLC43NTE1NSwxLjA0Mzk0LDEuMDQzOTQsMS4wNDM5NCwxLjA0Mzk0LC45ODYzMywuOTg2MzMsLjk4NjMzLC43MzA0NywuNzMwNDcsMS4yMDY0MiwuOTEyMTEsMS4yNTYzNSwxLjIyMiwxLjAyOTU2LDEuMDMzNzIsMS4wMzM3MiwuOTYwMzksMS4yNDYzMywxLDEuMTI0NTQsLjkzNTAzLDEuMDM0MjQsMS4xOTY4NywxLjAzNDI0LDEsMSwxLC43NzEsMSwxLDEuMTU3NDksMS4xNTc0OSwxLjE1NzQ5LDEuMTA5NDgsLjg2Mjc5LC45NDQzNCwuODYyNzksLjk0NDM0LC44NjE4MiwxLDEsMS4xNjg5NywxLC45NjA4NSwuOTAxMzcsMS4yMTA3LDEuMTg0MTYsMS4xMzk3MywuNjk4MjUsLjk3MTYsMi4xMDMzOSwxLjI5MDA0LDEuMjkwMDQsMS4yMTE3MiwxLjI5MDA0LDEuMjkwMDQsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjQyNjAzLDEsLjk5ODYyLC45OTg2MiwxLC44NzAyNSwuODcwMjUsLjg3MDI1LC44NzAyNSwxLjE4ODc0LDEuNDI2MDMsMSwxLjQyNjAzLDEuNDI2MDMsLjk5ODYyLDEsMSwxLDEsMSwxLjI4ODYsMS4wNDMxNSwxLjE1Mjk2LDEuMzQxNjMsMSwxLDEsMS4wOTE5MywxLjA5MTkzLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxXSx0cz17bGluZUhlaWdodDoxLjMzMDA4LGxpbmVHYXA6MH0sbnM9WzEuNzY3MzgsMSwxLC45ODk0NiwxLjAzOTU5LDEuMDQwMTYsMS4wMjgwOSwxLjAzNiwuOTc2MzksMS4xMDk1MywxLjIzMjAzLDEuMTExNDQsMS4xMTE0NCwxLjE2OTM5LDEuMjEyMzcsLjk3NTQsMS4yMTI2MSwuOTc1NCwxLjU5NzU0LDEuMDM2LDEuMDM2LDEuMDM2LDEuMDM2LDEuMDM2LDEuMDM2LDEuMDM2LDEuMDM2LDEuMDM2LDEuMDM2LC44MTM3OCwuODEzNzgsMS4yMTIzNywxLjIxMjM3LDEuMjEyMzcsLjczNTQxLC45Nzg0NywuOTczNjMsLjg5NzIzLC44Nzg5NywxLjA0MjYsLjc5NDI5LC44NTI5MiwuOTExNDksMS4wNTgxNSwxLjE0MDYsLjc5NjMxLC45MDEyOCwuODM4NTMsMS4wNDM5NiwxLjEwNjE1LC45NzU1MiwuOTQ0MzYsLjk3NTUyLC44ODY0MSwuODA1MjcsLjk2MDgzLDEuMDAxMzUsMSwxLjA2Nzc3LC45ODE3LC45MTE0MiwuOTkzNjEsMS4xMTE0NCwxLjU3MjkzLDEuMTExNDQsMS4yMTIzNywuNzQ2MjcsMS4zMTgxOCwxLjA2NTg1LC45NzA0MiwuODMwNTUsLjk3MDQyLC45MzUwMywxLjEyNjEsLjk3MDQyLC45NzkyMiwxLjE0MjM2LC45NDU1MiwxLjAxMDU0LDEuMTQyMzYsMS4wMjQ3MSwuOTc5MjIsLjk0MTY1LC45NzA0MiwuOTcwNDIsMS4wMjc2LC43ODkyOSwxLjEyNjEsLjk3OTIyLC45NTg3NCwxLjAyMTk3LC45ODUwNywuOTY3NTIsLjk3MTY4LC45NTEwNywxLjE2NTc5LC45NTEwNywxLjIxMjM3LDEuMDM5NTksMS4wMzYsMS4wMzYsMSwxLjAzNiwxLjE2NTc5LC44NzM1NywxLjMxODE4LDEuMTg3NTQsMS4yNjc4MSwxLjA1MzU2LDEuMjEyMzcsMS4xODYyMiwuNzk0ODcsLjk0OTk0LDEuMjkwMDQsMS4yNDA0NywxLjI0MDQ3LDEuMzE4MTgsMSwuOTE0ODQsLjk3NTQsMS4zMTgxOCwxLjEzNDksMS4yNDg2NiwxLjA1MzU2LDEuMTM5MzQsMS4xNTU3NCwxLjE3Mzg5LC43MzU0MSwuOTczNjMsLjk3MzYzLC45NzM2MywuOTczNjMsLjk3MzYzLC45NzM2MywuOTQzODUsLjg3ODk3LC43OTQyOSwuNzk0MjksLjc5NDI5LC43OTQyOSwxLjE0MDYsMS4xNDA2LDEuMTQwNiwxLjE0MDYsMS4wNDI2LDEuMTA2MTUsLjk3NTUyLC45NzU1MiwuOTc1NTIsLjk3NTUyLC45NzU1MiwxLjIxMjM3LC45NzU1MiwxLjAwMTM1LDEuMDAxMzUsMS4wMDEzNSwxLjAwMTM1LC45MTE0MiwuOTQ0MzYsLjk4NzIxLDEuMDY1ODUsMS4wNjU4NSwxLjA2NTg1LDEuMDY1ODUsMS4wNjU4NSwxLjA2NTg1LC45NjcwNSwuODMwNTUsLjkzNTAzLC45MzUwMywuOTM1MDMsLjkzNTAzLDEuMTQyMzYsMS4xNDIzNiwxLjE0MjM2LDEuMTQyMzYsLjkzMTI1LC45NzkyMiwuOTQxNjUsLjk0MTY1LC45NDE2NSwuOTQxNjUsLjk0MTY1LDEuMjkwMDQsLjk0MTY1LC45NzkyMiwuOTc5MjIsLjk3OTIyLC45NzkyMiwuOTY3NTIsLjk3MDQyLC45Njc1MiwuOTczNjMsMS4wNjU4NSwuOTczNjMsMS4wNjU4NSwuOTczNjMsMS4wNjU4NSwuODc4OTcsLjgzMDU1LC44Nzg5NywuODMwNTUsLjg3ODk3LC44MzA1NSwuODc4OTcsLjgzMDU1LDEuMDQyNiwxLjAwMzMsMS4wNDI2LC45NzA0MiwuNzk0MjksLjkzNTAzLC43OTQyOSwuOTM1MDMsLjc5NDI5LC45MzUwMywuNzk0MjksLjkzNTAzLC43OTQyOSwuOTM1MDMsLjkxMTQ5LC45NzA0MiwuOTExNDksLjk3MDQyLC45MTE0OSwuOTcwNDIsMSwxLDEuMDU4MTUsLjk3OTIyLDEuMDU4MTUsLjk3OTIyLDEuMTQwNiwxLjE0MjM2LDEuMTQwNiwxLjE0MjM2LDEuMTQwNiwxLjE0MjM2LDEuMTQwNiwxLjE0MjM2LDEuMTQwNiwxLjE0MjM2LC45NzQ0MSwxLjA0MzAyLC43OTYzMSwxLjAxNTgyLDEsMSwxLjAxMDU0LC44Mzg1MywxLjE0MjM2LDEsMSwuODM4NTMsMS4wOTEyNSwuODM4NTMsLjkwNDE4LC44Mzg1MywxLjE5NTA4LDEuMTA2MTUsLjk3OTIyLDEsMSwxLjEwNjE1LC45NzkyMiwxLjAxMDM0LDEuMTA0NjYsLjk3OTIyLC45NzU1MiwuOTQxNjUsLjk3NTUyLC45NDE2NSwuOTc1NTIsLjk0MTY1LC45MTYwMiwuOTE5ODEsLjg4NjQxLDEuMDI3NiwxLDEsLjg4NjQxLDEuMDI3NiwuODA1MjcsLjc4OTI5LC44MDUyNywuNzg5MjksLjgwNTI3LC43ODkyOSwuODA1MjcsLjc4OTI5LDEsMSwuOTYwODMsMS4wNTQwMywuOTU5MjMsMS4xNjg2MiwxLjAwMTM1LC45NzkyMiwxLjAwMTM1LC45NzkyMiwxLjAwMTM1LC45NzkyMiwxLjAwMTM1LC45NzkyMiwxLjAwMTM1LC45NzkyMiwxLjAwMTM1LC45NzkyMiwxLjA2Nzc3LDEuMDIxOTcsLjkxMTQyLC45Njc1MiwuOTExNDIsLjk5MzYxLC45NzE2OCwuOTkzNjEsLjk3MTY4LC45OTM2MSwuOTcxNjgsMS4yMzE5OSwxLjAzNiwuOTczNjMsMS4wNjU4NSwuOTQzODUsLjk2NzA1LC45NzU1MiwuOTQxNjUsMSwxLC45NjA4MywxLjEyNjEsMS4zMTgxOCwxLjMxODE4LDEuMzE4MTgsMS4zMTgxOCwxLjMxODE4LDEuMzE4MTgsMS4zMTgxOCwxLjMxODE4LDEuMzE4MTgsLjk1MTYxLDEuMjcxMjYsMS4wMDgxMSwuODMyODQsLjc3NzAyLC45OTEzNywuOTUyNTMsMS4wMzQ3LC44NjE0MiwxLjA3MjA1LDEuMTQyMzYsLjk3MzYzLC44OTcyMywuODY4NjksMS4wOTgxOCwuNzk0MjksLjk5MzYxLDEuMDU4MTUsLjk3NTUyLDEuMTQwNiwuOTAxMjgsMS4wNjY2MiwxLjA0Mzk2LDEuMTA2MTUsLjg0OTE4LC45NzU1MiwxLjA0Njk0LC45NDQzNiwuOTgwMTUsLjk2MDgzLC45MTE0MiwxLjAwMzU2LC45ODE3LDEuMDE5NDUsLjk4OTk5LDEuMTQwNiwuOTExNDIsMS4wNDk2MSwuOTg5OCwxLjAwNjM5LDEuMTQyMzYsMS4wNzUxNCwxLjA0OTYxLC45OTYwNywxLjAyODk3LDEuMDA4LC45ODk4LC45NTEzNCwxLjAwNjM5LDEuMTExMjEsMS4xNDIzNiwxLjAwNTE4LC45Nzk4MSwxLjAyMTg2LDEsMS4wODU3OCwuOTQxNjUsLjk5MzE0LC45ODM4NywuOTMwMjgsLjkzMzc3LDEuMzUxMjUsMS4wNzUxNCwxLjEwNjg3LC45MzQ5MSwxLjA0MjMyLDEuMDAzNTEsMS4xNDIzNiwxLjA3NTE0LC45NDE2NSwxLjA3NTE0LDEuMDAzNTEsLjc5NDI5LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMDkwOTcsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsLjkzNTAzLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45NjYwOSwxLDEsMSwxLDEsMSwxLjA2Nzc3LDEuMDIxOTcsMS4wNjc3NywxLjAyMTk3LDEuMDY3NzcsMS4wMjE5NywuOTExNDIsLjk2NzUyLDEsMS4yMTI2MSwuODk5MDMsMSwxLC43NTE1NSwxLjA0NzQ1LDEuMDQ3NDUsMS4wNDc0NSwxLjA0Mzk0LC45ODYzMywuOTg2MzMsLjk4NjMzLC43Mjk1OSwuNzI5NTksMS4yMDUwMiwuOTE0MDYsMS4yNjUxNCwxLjIyMiwxLjAyOTU2LDEuMDMzNzIsMS4wMzM3MiwuOTYwMzksMS4yNDYzMywxLDEuMDkxMjUsLjkzMzI3LDEuMDMzMzYsMS4xNjU0MSwxLjAzNiwxLDEsMSwuNzcxLDEsMSwxLjE1NTc0LDEuMTU1NzQsMS4xNTU3NCwxLjE1NTc0LC44NjM2NCwuOTQ0MzQsLjg2Mjc5LC45NDQzNCwuODYyMjQsMSwxLDEuMTY3OTgsMSwuOTYwODUsLjkwMDY4LDEuMjEyMzcsMS4xODQxNiwxLjEzOTA0LC42OTgyNSwuOTcxNiwyLjEwMzM5LDEuMjkwMDQsMS4yOTAwNCwxLjIxMzM5LDEuMjkwMDQsMS4yOTAwNCwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuNDI2MDMsMSwuOTk4NjIsLjk5ODYyLDEsLjg3MDI1LC44NzAyNSwuODcwMjUsLjg3MDI1LDEuMTg3NzUsMS40MjYwMywxLDEuNDI2MDMsMS40MjYwMywuOTk4NjIsMSwxLDEsMSwxLDEuMjg4NiwxLjA0MzE1LDEuMTUyOTYsMS4zNDE2MywxLDEsMSwxLjEzMjY5LDEuMTMyNjksMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLGFzPXtsaW5lSGVpZ2h0OjEuMzMwMDgsbGluZUdhcDowfSxycz1bMS43NjczOCwxLDEsLjk4OTQ2LDEuMTQ3NjMsMS4wNTM2NSwxLjA2MjM0LC45NjkyNywuOTI1ODYsMS4xNTM3MywxLjE4NDE0LC45MTM0OSwuOTEzNDksMS4wNzQwMywxLjE3MzA4LC43ODM4MywxLjIwMDg4LC43ODM4MywxLjQyNTMxLC45NjkyNywuOTY5MjcsLjk2OTI3LC45NjkyNywuOTY5MjcsLjk2OTI3LC45NjkyNywuOTY5MjcsLjk2OTI3LC45NjkyNywuNzgzODMsLjc4MzgzLDEuMTczMDgsMS4xNzMwOCwxLjE3MzA4LC43NzM0OSwuOTQ1NjUsLjk0NzI5LC44NTk0NCwuODg1MDYsLjk4NTgsLjc0ODE3LC44MDAxNiwuODg0NDksLjk4MDM5LC45NTc4MiwuNjkyMzgsLjg5ODk4LC44MzIzMSwuOTgxODMsMS4wMzk4OSwuOTY5MjQsLjg2MjM3LC45NjkyNCwuODA1OTUsLjc0NTI0LC44NjA5MSwuOTU0MDIsLjk0MTQzLC45ODQ0OCwuODg1OCwuODMwODksLjkzMjg1LDEuMDk0OSwxLjM5MDE2LDEuMDk0OSwxLjQ1OTk0LC43NDYyNywxLjA0ODM5LC45NzQ1NCwuOTc0NTQsLjg3MjA3LC45NzQ1NCwuODc1MzMsMS4wNjE1MSwuOTc0NTQsMS4wMDE3NiwxLjE2NDg0LDEuMDgxMzIsLjk4MDQ3LDEuMTY0ODQsMS4wMjk4OSwxLjAxMDU0LC45NjIyNSwuOTc0NTQsLjk3NDU0LDEuMDY1OTgsLjc5MDA0LDEuMTYzNDQsMS4wMDM1MSwuOTQ2MjksLjk5NzMsLjkxMDE2LC45Njc3NywuOTA0MywuOTEwODIsLjkyNDgxLC45MTA4MiwxLjE3MzA4LC45NTc0OCwuOTY5MjcsLjk2OTI3LDEsLjk2OTI3LC45MjQ4MSwuODA1OTcsMS4wNDgzOSwxLjIzMzkzLDEuMTc4MSwuOTI0NSwxLjE3MzA4LDEuMjA4MDgsLjYzMjE4LC45NDI2MSwxLjI0ODIyLDEuMDk5NzEsMS4wOTk3MSwxLjA0ODM5LDEsLjg1MjczLC43ODAzMiwxLjA0ODM5LDEuMDk5NzEsMS4yMjMyNiwuOTI0NSwxLjA5ODM2LDEuMTM1MjUsMS4xNTIyMiwuNzA0MjQsLjk0NzI5LC45NDcyOSwuOTQ3MjksLjk0NzI5LC45NDcyOSwuOTQ3MjksLjg1NDk4LC44ODUwNiwuNzQ4MTcsLjc0ODE3LC43NDgxNywuNzQ4MTcsLjk1NzgyLC45NTc4MiwuOTU3ODIsLjk1NzgyLC45ODU4LDEuMDM5ODksLjk2OTI0LC45NjkyNCwuOTY5MjQsLjk2OTI0LC45NjkyNCwxLjE3MzA4LC45NjkyNCwuOTU0MDIsLjk1NDAyLC45NTQwMiwuOTU0MDIsLjgzMDg5LC44NjIzNywuODg0MDksLjk3NDU0LC45NzQ1NCwuOTc0NTQsLjk3NDU0LC45NzQ1NCwuOTc0NTQsLjkyOTE2LC44NzIwNywuODc1MzMsLjg3NTMzLC44NzUzMywuODc1MzMsLjkzMTQ2LC45MzE0NiwuOTMxNDYsLjkzMTQ2LC45Mzg1NCwxLjAxMDU0LC45NjIyNSwuOTYyMjUsLjk2MjI1LC45NjIyNSwuOTYyMjUsMS4yNDgyMiwuODc2MSwxLjAwMzUxLDEuMDAzNTEsMS4wMDM1MSwxLjAwMzUxLC45Njc3NywuOTc0NTQsLjk2Nzc3LC45NDcyOSwuOTc0NTQsLjk0NzI5LC45NzQ1NCwuOTQ3MjksLjk3NDU0LC44ODUwNiwuODcyMDcsLjg4NTA2LC44NzIwNywuODg1MDYsLjg3MjA3LC44ODUwNiwuODcyMDcsLjk4NTgsLjk1MzkxLC45ODU4LC45NzQ1NCwuNzQ4MTcsLjg3NTMzLC43NDgxNywuODc1MzMsLjc0ODE3LC44NzUzMywuNzQ4MTcsLjg3NTMzLC43NDgxNywuODc1MzMsLjg4NDQ5LC45NzQ1NCwuODg0NDksLjk3NDU0LC44ODQ0OSwuOTc0NTQsMSwxLC45ODAzOSwxLjAwMTc2LC45ODAzOSwxLjAwMTc2LC45NTc4MiwuOTMxNDYsLjk1NzgyLC45MzE0NiwuOTU3ODIsLjkzMTQ2LC45NTc4MiwxLjE2NDg0LC45NTc4MiwuOTMxNDYsLjg0NDIxLDEuMTI3NjEsLjY5MjM4LDEuMDgxMzIsMSwxLC45ODA0NywuODMyMzEsMS4xNjQ4NCwxLDEsLjg0NzIzLDEuMDQ4NjEsLjg0NzIzLC43ODc1NSwuODMyMzEsMS4yMzczNiwxLjAzOTg5LDEuMDEwNTQsMSwxLDEuMDM5ODksMS4wMTA1NCwuOTg1NywxLjAzODQ5LDEuMDEwNTQsLjk2OTI0LC45NjIyNSwuOTY5MjQsLjk2MjI1LC45NjkyNCwuOTYyMjUsLjkyMzgzLC45MDE3MSwuODA1OTUsMS4wNjU5OCwxLDEsLjgwNTk1LDEuMDY1OTgsLjc0NTI0LC43OTAwNCwuNzQ1MjQsLjc5MDA0LC43NDUyNCwuNzkwMDQsLjc0NTI0LC43OTAwNCwxLDEsLjg2MDkxLDEuMDI3NTksLjg1NzcxLDEuMTYzNDQsLjk1NDAyLDEuMDAzNTEsLjk1NDAyLDEuMDAzNTEsLjk1NDAyLDEuMDAzNTEsLjk1NDAyLDEuMDAzNTEsLjk1NDAyLDEuMDAzNTEsLjk1NDAyLDEuMDAzNTEsLjk4NDQ4LC45OTczLC44MzA4OSwuOTY3NzcsLjgzMDg5LC45MzI4NSwuOTA0MywuOTMyODUsLjkwNDMsLjkzMjg1LC45MDQzLDEuMzE4NjgsLjk2OTI3LC45NDcyOSwuOTc0NTQsLjg1NDk4LC45MjkxNiwuOTY5MjQsLjg3NjEsMSwxLC44NjA5MSwxLjE2MzQ0LDEuMDQ4MzksMS4wNDgzOSwxLjA0ODM5LDEuMDQ4MzksMS4wNDgzOSwxLjA0ODM5LDEuMDQ4MzksMS4wNDgzOSwxLjA0ODM5LC44MTk2NSwuODE5NjUsLjk0NzI5LC43ODAzMiwuNzEwMjIsLjkwODgzLC44NDE3MSwuOTk4NzcsLjc3NTk2LDEuMDU3MzQsMS4yLC45NDcyOSwuODU5NDQsLjgyNzkxLC45NjA3LC43NDgxNywuOTMyODUsLjk4MDM5LC45NjkyNCwuOTU3ODIsLjg5ODk4LC45ODMxNiwuOTgxODMsMS4wMzk4OSwuNzg2MTQsLjk2OTI0LC45NzY0MiwuODYyMzcsLjg2MDc1LC44NjA5MSwuODMwODksLjkwMDgyLC44ODU4LC45NzI5NiwxLjAxMjg0LC45NTc4MiwuODMwODksMS4wOTc2LDEuMDQsMS4wMzM0MiwxLjIsMS4wNjc1LDEuMDk3NiwuOTgyMDUsMS4wMzgwOSwxLjA1MDk3LDEuMDQsLjk1MzY0LDEuMDMzNDIsMS4wNTQwMSwxLjIsMS4wMjE0OCwxLjAxMTksMS4wNDcyNCwxLjAxMjcsMS4wMjczMiwuOTYyMjUsLjg5NjUsLjk3NzgzLC45MzU3NCwuOTQ4MTgsMS4zMDY3OSwxLjA2NzUsMS4xMTgyNiwuOTk4MjEsMS4wNTU3LDEuMDMyNiwxLjIsMS4wNjc1LC45NjIyNSwxLjA2NzUsMS4wMzI2LC43NDgxNywxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjAzNzU0LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC44NzUzMywxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwuOTg3MDUsMSwxLDEsMSwxLDEsLjk4NDQ4LC45OTczLC45ODQ0OCwuOTk3MywuOTg0NDgsLjk5NzMsLjgzMDg5LC45Njc3NywxLDEuMjAwODgsLjg5OTAzLDEsMSwuNzUxNTUsLjk0OTQ1LC45NDk0NSwuOTQ5NDUsLjk0OTQ1LDEuMTIzMTcsMS4xMjMxNywxLjEyMzE3LC42NzYwMywuNjc2MDMsMS4xNTYyMSwuNzM1ODQsMS4yMTE5MSwxLjIyMTM1LDEuMDY0ODMsLjk0ODY4LC45NDg2OCwuOTU5OTYsMS4yNDYzMywxLDEuMDc0OTcsLjg3NzA5LC45NjkyNywxLjAxNDczLC45NjkyNywxLDEsMSwuNzcyOTUsMSwxLDEuMDk4MzYsMS4wOTgzNiwxLjA5ODM2LDEuMDE1MjIsLjg2MzIxLC45NDQzNCwuODY0OSwuOTQ0MzQsLjg2MTgyLDEsMSwxLjA4MywxLC45MTU3OCwuODY0MzgsMS4xNzMwOCwxLjE4NDE2LDEuMTQ1ODksLjY5ODI1LC45NzYyMiwxLjk2NzkxLDEuMjQ4MjIsMS4yNDgyMiwxLjE3MzA4LDEuMjQ4MjIsMS4yNDgyMiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuNDI2MDMsMSwuOTk4NjIsLjk5ODYyLDEsLjg3MDI1LC44NzAyNSwuODcwMjUsLjg3MDI1LDEuMTc5ODQsMS40MjYwMywxLDEuNDI2MDMsMS40MjYwMywuOTk4NjIsMSwxLDEsMSwxLDEuMjg4NiwxLjA0MzE1LDEuMTUyOTYsMS4zNDE2MywxLDEsMSwxLjEwNzQyLDEuMTA3NDIsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDFdLHNzPXtsaW5lSGVpZ2h0OjEuMzMwMDgsbGluZUdhcDowfSxpcz1bMS43NjczOCwxLDEsLjk4NTk0LDEuMDIyODUsMS4xMDQ1NCwxLjA2MjM0LC45NjkyNywuOTIwMzcsMS4xOTk4NSwxLjIwNDYsLjkwNjE2LC45MDYxNiwxLjA3MTUyLDEuMTcxNCwuNzgwMzIsMS4yMDA4OCwuNzgwMzIsMS40MDI0NiwuOTY5MjcsLjk2OTI3LC45NjkyNywuOTY5MjcsLjk2OTI3LC45NjkyNywuOTY5MjcsLjk2OTI3LC45NjkyNywuOTY5MjcsLjc4MDMyLC43ODAzMiwxLjE3MTQsMS4xNzE0LDEuMTcxNCwuODA1OTcsLjk0MDg0LC45NjcwNiwuODU5NDQsLjg1NzM0LC45NzA5MywuNzU4NDIsLjc5OTM2LC44ODE5OCwuOTgzMSwuOTU3ODIsLjcxMzg3LC44Njk2OSwuODQ2MzYsMS4wNzc5NiwxLjAzNTg0LC45NjkyNCwuODM5NjgsLjk2OTI0LC44MjgyNiwuNzk2NDksLjg1NzcxLC45NTEzMiwuOTMxMTksLjk4OTY1LC44ODQzMywuODI4NywuOTMzNjUsMS4wODYxMiwxLjM2MzgsMS4wODYxMiwxLjQ1Nzg2LC43NDYyNywuODA0OTksLjkxNDg0LDEuMDU3MDcsLjkyMzgzLDEuMDU4ODIsLjk0MDMsMS4xMjY1NCwxLjA1ODgyLDEuMDE3NTYsMS4wOTAxMSwxLjA5MDExLC45OTQxNCwxLjA5MDExLDEuMDM0LDEuMDE3NTYsMS4wNTM1NiwxLjA1NzA3LDEuMDU4ODIsMS4wNDM5OSwuODQ4NjMsMS4yMTk2OCwxLjAxNzU2LC45NTgwMSwxLjAwMDY4LC45MTc5NywuOTY3NzcsLjkwNDMsLjkwMzUxLC45MjEwNSwuOTAzNTEsMS4xNzE0LC44NTMzNywuOTY5MjcsLjk2OTI3LC45OTkxMiwuOTY5MjcsLjkyMTA1LC44MDU5NywxLjI0MzQsMS4yMDgwOCwxLjA1OTM3LC45MDk1NywxLjE3MTQsMS4yMDgwOCwuNzUxNTUsLjk0MjYxLDEuMjQ2NDQsMS4wOTk3MSwxLjA5OTcxLC44NDc1MSwxLC44NTI3MywuNzgwMzIsLjYxNTg0LDEuMDU0MjUsMS4xNzkxNCwuOTA5NTcsMS4wODY2NSwxLjExNTkzLDEuMTQxNjksLjczMzgxLC45NjcwNiwuOTY3MDYsLjk2NzA2LC45NjcwNiwuOTY3MDYsLjk2NzA2LC44NjAzNSwuODU3MzQsLjc1ODQyLC43NTg0MiwuNzU4NDIsLjc1ODQyLC45NTc4MiwuOTU3ODIsLjk1NzgyLC45NTc4MiwuOTcwOTMsMS4wMzU4NCwuOTY5MjQsLjk2OTI0LC45NjkyNCwuOTY5MjQsLjk2OTI0LDEuMTcxNCwuOTY5MjQsLjk1MTMyLC45NTEzMiwuOTUxMzIsLjk1MTMyLC44Mjg3LC44Mzk2OCwuODkwNDksLjkxNDg0LC45MTQ4NCwuOTE0ODQsLjkxNDg0LC45MTQ4NCwuOTE0ODQsLjkzNTc1LC45MjM4MywuOTQwMywuOTQwMywuOTQwMywuOTQwMywuODcxNywuODcxNywuODcxNywuODcxNywxLjAwNTI3LDEuMDE3NTYsMS4wNTM1NiwxLjA1MzU2LDEuMDUzNTYsMS4wNTM1NiwxLjA1MzU2LDEuMjQ2NDQsLjk1OTIzLDEuMDE3NTYsMS4wMTc1NiwxLjAxNzU2LDEuMDE3NTYsLjk2Nzc3LDEuMDU3MDcsLjk2Nzc3LC45NjcwNiwuOTE0ODQsLjk2NzA2LC45MTQ4NCwuOTY3MDYsLjkxNDg0LC44NTczNCwuOTIzODMsLjg1NzM0LC45MjM4MywuODU3MzQsLjkyMzgzLC44NTczNCwuOTIzODMsLjk3MDkzLDEuMDk2OSwuOTcwOTMsMS4wNTg4MiwuNzU4NDIsLjk0MDMsLjc1ODQyLC45NDAzLC43NTg0MiwuOTQwMywuNzU4NDIsLjk0MDMsLjc1ODQyLC45NDAzLC44ODE5OCwxLjA1ODgyLC44ODE5OCwxLjA1ODgyLC44ODE5OCwxLjA1ODgyLDEsMSwuOTgzMSwxLjAxNzU2LC45ODMxLDEuMDE3NTYsLjk1NzgyLC44NzE3LC45NTc4MiwuODcxNywuOTU3ODIsLjg3MTcsLjk1NzgyLDEuMDkwMTEsLjk1NzgyLC44NzE3LC44NDc4NCwxLjExNTUxLC43MTM4NywxLjA5MDExLDEsMSwuOTk0MTQsLjg0NjM2LDEuMDkwMTEsMSwxLC44NDYzNiwxLjA1MzYsLjg0NjM2LC45NDI5OCwuODQ2MzYsMS4yMzI5NywxLjAzNTg0LDEuMDE3NTYsMSwxLDEuMDM1ODQsMS4wMTc1NiwxLjAwMzIzLDEuMDM0NDQsMS4wMTc1NiwuOTY5MjQsMS4wNTM1NiwuOTY5MjQsMS4wNTM1NiwuOTY5MjQsMS4wNTM1NiwuOTMwNjYsLjk4MjkzLC44MjgyNiwxLjA0Mzk5LDEsMSwuODI4MjYsMS4wNDM5OSwuNzk2NDksLjg0ODYzLC43OTY0OSwuODQ4NjMsLjc5NjQ5LC44NDg2MywuNzk2NDksLjg0ODYzLDEsMSwuODU3NzEsMS4xNzMxOCwuODU3NzEsMS4yMTk2OCwuOTUxMzIsMS4wMTc1NiwuOTUxMzIsMS4wMTc1NiwuOTUxMzIsMS4wMTc1NiwuOTUxMzIsMS4wMTc1NiwuOTUxMzIsMS4wMTc1NiwuOTUxMzIsMS4wMTc1NiwuOTg5NjUsMS4wMDA2OCwuODI4NywuOTY3NzcsLjgyODcsLjkzMzY1LC45MDQzLC45MzM2NSwuOTA0MywuOTMzNjUsLjkwNDMsMS4wODU3MSwuOTY5MjcsLjk2NzA2LC45MTQ4NCwuODYwMzUsLjkzNTc1LC45NjkyNCwuOTU5MjMsMSwxLC44NTc3MSwxLjIxOTY4LDEuMTE0MzcsMS4xMTQzNywuOTMxMDksLjkxMjAyLC42MDQxMSwuODQxNjQsLjU1NTcyLDEuMDExNzMsLjk3MzYxLC44MTgxOCwuODE4MTgsLjk2NjM1LC43ODAzMiwuNzI3MjcsLjkyMzY2LC45ODYwMSwxLjAzNDA1LC43Nzk2OCwxLjA5Nzk5LDEuMiwuOTY3MDYsLjg1OTQ0LC44NTYzOCwuOTY0OTEsLjc1ODQyLC45MzM2NSwuOTgzMSwuOTY5MjQsLjk1NzgyLC44Njk2OSwuOTQxNTIsMS4wNzc5NiwxLjAzNTg0LC43ODQzNywuOTY5MjQsLjk4NzE1LC44Mzk2OCwuODM0OTEsLjg1NzcxLC44Mjg3LC45NDQ5MiwuODg0MzMsLjkyODcsMS4wMDk4LC45NTc4MiwuODI4NywxLjA2MjUsLjk4MjQ4LDEuMDM0MjQsMS4yLDEuMDEwNzEsMS4wNjI1LC45NTI0NiwxLjAzODA5LDEuMDQ5MTIsLjk4MjQ4LDEuMDAyMjEsMS4wMzQyNCwxLjA1NDQzLDEuMiwxLjA0Nzg1LC45OTYwOSwxLjAwMTY5LDEuMDUxNzYsLjk5MzQ2LDEuMDUzNTYsLjkwODcsMS4wMzAwNCwuOTU1NDIsLjkzMTE3LDEuMjMzNjIsMS4wMTA3MSwxLjA3ODMxLDEuMDI1MTIsMS4wNTIwNSwxLjAzNTAyLDEuMiwxLjAxMDcxLDEuMDUzNTYsMS4wMTA3MSwxLjAzNTAyLC43NTg0MiwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLjAzNzE5LDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLC45NDAzLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEuMDQwMjEsMSwxLDEsMSwxLDEsLjk4OTY1LDEuMDAwNjgsLjk4OTY1LDEuMDAwNjgsLjk4OTY1LDEuMDAwNjgsLjgyODcsLjk2Nzc3LDEsMS4yMDA4OCwuODk5MDMsMSwxLC43NTE1NSwxLjAzMDc3LDEuMDMwNzcsMS4wMzA3NywxLjAzMDc3LDEuMTMxOTYsMS4xMzE5NiwxLjEzMTk2LC42NzQyOCwuNjc0MjgsMS4xNjAzOSwuNzMyOTEsMS4yMDk5NiwxLjIyMTM1LDEuMDY0ODMsLjk0ODY4LC45NDg2OCwuOTU5OTYsMS4yNDYzMywxLDEuMDc0OTcsLjg3Nzk2LC45NjkyNywxLjAxNTE4LC45NjkyNywxLDEsMSwuNzcyOTUsMSwxLDEuMTA1MzksMS4xMDUzOSwxLjExMzU4LDEuMDY5NjcsLjg2Mjc5LC45NDQzNCwuODYyNzksLjk0NDM0LC44NjE4MiwxLDEsMS4wODMsMSwuOTE1NzgsLjg2NTA3LDEuMTcxNCwxLjE4NDE2LDEuMTQ1ODksLjY5ODI1LC45NzYyMiwxLjk2OTcsMS4yNDgyMiwxLjI0ODIyLDEuMTcyMzgsMS4yNDgyMiwxLjI0ODIyLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMS40MjYwMywxLC45OTg2MiwuOTk4NjIsMSwuODcwMjUsLjg3MDI1LC44NzAyNSwuODcwMjUsMS4xODA4MywxLjQyNjAzLDEsMS40MjYwMywxLjQyNjAzLC45OTg2MiwxLDEsMSwxLDEsMS4yODg2LDEuMDQzMTUsMS4xNTI5NiwxLjM0MTYzLDEsMSwxLDEuMTA5MzgsMS4xMDkzOCwxLDEsMSwxLjA1NDI1LDEuMDk5NzEsMS4wOTk3MSwxLjA5OTcxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMV0sb3M9e2xpbmVIZWlnaHQ6MS4zMzAwOCxsaW5lR2FwOjB9LGxzPWdldExvb2t1cFRhYmxlRmFjdG9yeShmdW5jdGlvbihlKXtlWyJNeXJpYWRQcm8tUmVndWxhciJdPWVbIlBkZkpTLUZhbGxiYWNrLVJlZ3VsYXIiXT17bmFtZToiTGliZXJhdGlvblNhbnMtUmVndWxhciIsZmFjdG9yczpRcixiYXNlV2lkdGhzOlhyLGJhc2VNYXBwaW5nOldyLG1ldHJpY3M6WnJ9O2VbIk15cmlhZFByby1Cb2xkIl09ZVsiUGRmSlMtRmFsbGJhY2stQm9sZCJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1Cb2xkIixmYWN0b3JzOktyLGJhc2VXaWR0aHM6RXIsYmFzZU1hcHBpbmc6TnIsbWV0cmljczpWcn07ZVsiTXlyaWFkUHJvLUl0Il09ZVsiTXlyaWFkUHJvLUl0YWxpYyJdPWVbIlBkZkpTLUZhbGxiYWNrLUl0YWxpYyJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1JdGFsaWMiLGZhY3RvcnM6WXIsYmFzZVdpZHRoczpMcixiYXNlTWFwcGluZzpVcixtZXRyaWNzOkpyfTtlWyJNeXJpYWRQcm8tQm9sZEl0Il09ZVsiTXlyaWFkUHJvLUJvbGRJdGFsaWMiXT1lWyJQZGZKUy1GYWxsYmFjay1Cb2xkSXRhbGljIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLUJvbGRJdGFsaWMiLGZhY3RvcnM6R3IsYmFzZVdpZHRoczp6cixiYXNlTWFwcGluZzpfcixtZXRyaWNzOiRyfTtlLkFyaWFsTVQ9ZS5BcmlhbD1lWyJBcmlhbC1SZWd1bGFyIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLVJlZ3VsYXIiLGJhc2VXaWR0aHM6WHIsYmFzZU1hcHBpbmc6V3J9O2VbIkFyaWFsLUJvbGRNVCJdPWVbIkFyaWFsLUJvbGQiXT17bmFtZToiTGliZXJhdGlvblNhbnMtQm9sZCIsYmFzZVdpZHRoczpFcixiYXNlTWFwcGluZzpOcn07ZVsiQXJpYWwtSXRhbGljTVQiXT1lWyJBcmlhbC1JdGFsaWMiXT17bmFtZToiTGliZXJhdGlvblNhbnMtSXRhbGljIixiYXNlV2lkdGhzOkxyLGJhc2VNYXBwaW5nOlVyfTtlWyJBcmlhbC1Cb2xkSXRhbGljTVQiXT1lWyJBcmlhbC1Cb2xkSXRhbGljIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLUJvbGRJdGFsaWMiLGJhc2VXaWR0aHM6enIsYmFzZU1hcHBpbmc6X3J9O2VbIkNhbGlicmktUmVndWxhciJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1SZWd1bGFyIixmYWN0b3JzOkNyLGJhc2VXaWR0aHM6WHIsYmFzZU1hcHBpbmc6V3IsbWV0cmljczpJcn07ZVsiQ2FsaWJyaS1Cb2xkIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLUJvbGQiLGZhY3RvcnM6eXIsYmFzZVdpZHRoczpFcixiYXNlTWFwcGluZzpOcixtZXRyaWNzOnFyfTtlWyJDYWxpYnJpLUl0YWxpYyJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1JdGFsaWMiLGZhY3RvcnM6eHIsYmFzZVdpZHRoczpMcixiYXNlTWFwcGluZzpVcixtZXRyaWNzOkFyfTtlWyJDYWxpYnJpLUJvbGRJdGFsaWMiXT17bmFtZToiTGliZXJhdGlvblNhbnMtQm9sZEl0YWxpYyIsZmFjdG9yczp2cixiYXNlV2lkdGhzOnpyLGJhc2VNYXBwaW5nOl9yLG1ldHJpY3M6U3J9O2VbIlNlZ29ldWktUmVndWxhciJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1SZWd1bGFyIixmYWN0b3JzOmlzLGJhc2VXaWR0aHM6WHIsYmFzZU1hcHBpbmc6V3IsbWV0cmljczpvc307ZVsiU2Vnb2V1aS1Cb2xkIl09e25hbWU6IkxpYmVyYXRpb25TYW5zLUJvbGQiLGZhY3RvcnM6ZXMsYmFzZVdpZHRoczpFcixiYXNlTWFwcGluZzpOcixtZXRyaWNzOnRzfTtlWyJTZWdvZXVpLUl0YWxpYyJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1JdGFsaWMiLGZhY3RvcnM6cnMsYmFzZVdpZHRoczpMcixiYXNlTWFwcGluZzpVcixtZXRyaWNzOnNzfTtlWyJTZWdvZXVpLUJvbGRJdGFsaWMiXT17bmFtZToiTGliZXJhdGlvblNhbnMtQm9sZEl0YWxpYyIsZmFjdG9yczpucyxiYXNlV2lkdGhzOnpyLGJhc2VNYXBwaW5nOl9yLG1ldHJpY3M6YXN9O2VbIkhlbHZldGljYS1SZWd1bGFyIl09ZS5IZWx2ZXRpY2E9e25hbWU6IkxpYmVyYXRpb25TYW5zLVJlZ3VsYXIiLGZhY3RvcnM6TXIsYmFzZVdpZHRoczpYcixiYXNlTWFwcGluZzpXcixtZXRyaWNzOlByfTtlWyJIZWx2ZXRpY2EtQm9sZCJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1Cb2xkIixmYWN0b3JzOkZyLGJhc2VXaWR0aHM6RXIsYmFzZU1hcHBpbmc6TnIsbWV0cmljczpUcn07ZVsiSGVsdmV0aWNhLUl0YWxpYyJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1JdGFsaWMiLGZhY3RvcnM6SHIsYmFzZVdpZHRoczpMcixiYXNlTWFwcGluZzpVcixtZXRyaWNzOkRyfTtlWyJIZWx2ZXRpY2EtQm9sZEl0YWxpYyJdPXtuYW1lOiJMaWJlcmF0aW9uU2Fucy1Cb2xkSXRhbGljIixmYWN0b3JzOk9yLGJhc2VXaWR0aHM6enIsYmFzZU1hcHBpbmc6X3IsbWV0cmljczpScn19KTtmdW5jdGlvbiBnZXRYZmFGb250TmFtZShlKXtjb25zdCB0PW5vcm1hbGl6ZUZvbnROYW1lKGUpO3JldHVybiBscygpW3RdfWZ1bmN0aW9uIGdldFhmYUZvbnREaWN0KGUpe2NvbnN0IHQ9ZnVuY3Rpb24gZ2V0WGZhRm9udFdpZHRocyhlKXtjb25zdCB0PWdldFhmYUZvbnROYW1lKGUpO2lmKCF0KXJldHVybiBudWxsO2NvbnN0e2Jhc2VXaWR0aHM6bixiYXNlTWFwcGluZzphLGZhY3RvcnM6cn09dCxzPXI/bi5tYXAoKGUsdCk9PmUqclt0XSk6bjtsZXQgaSxvPS0yO2NvbnN0IGw9W107Zm9yKGNvbnN0W2UsdF1vZiBhLm1hcCgoZSx0KT0+W2UsdF0pLnNvcnQoKFtlXSxbdF0pPT5lLXQpKWlmKC0xIT09ZSlpZihlPT09bysxKXtpLnB1c2goc1t0XSk7bys9MX1lbHNle289ZTtpPVtzW3RdXTtsLnB1c2goZSxpKX1yZXR1cm4gbH0oZSksbj1uZXcgRGljdChudWxsKTtuLnNldCgiQmFzZUZvbnQiLE5hbWUuZ2V0KGUpKTtuLnNldCgiVHlwZSIsTmFtZS5nZXQoIkZvbnQiKSk7bi5zZXQoIlN1YnR5cGUiLE5hbWUuZ2V0KCJDSURGb250VHlwZTIiKSk7bi5zZXQoIkVuY29kaW5nIixOYW1lLmdldCgiSWRlbnRpdHktSCIpKTtuLnNldCgiQ0lEVG9HSURNYXAiLE5hbWUuZ2V0KCJJZGVudGl0eSIpKTtuLnNldCgiVyIsdCk7bi5zZXQoIkZpcnN0Q2hhciIsdFswXSk7bi5zZXQoIkxhc3RDaGFyIix0LmF0KC0yKSt0LmF0KC0xKS5sZW5ndGgtMSk7Y29uc3QgYT1uZXcgRGljdChudWxsKTtuLnNldCgiRm9udERlc2NyaXB0b3IiLGEpO2NvbnN0IHI9bmV3IERpY3QobnVsbCk7ci5zZXQoIk9yZGVyaW5nIiwiSWRlbnRpdHkiKTtyLnNldCgiUmVnaXN0cnkiLCJBZG9iZSIpO3Iuc2V0KCJTdXBwbGVtZW50IiwwKTtuLnNldCgiQ0lEU3lzdGVtSW5mbyIscik7cmV0dXJuIG59Y2xhc3MgUG9zdFNjcmlwdFBhcnNlcntjb25zdHJ1Y3RvcihlKXt0aGlzLmxleGVyPWU7dGhpcy5vcGVyYXRvcnM9W107dGhpcy50b2tlbj1udWxsO3RoaXMucHJldj1udWxsfW5leHRUb2tlbigpe3RoaXMucHJldj10aGlzLnRva2VuO3RoaXMudG9rZW49dGhpcy5sZXhlci5nZXRUb2tlbigpfWFjY2VwdChlKXtpZih0aGlzLnRva2VuLnR5cGU9PT1lKXt0aGlzLm5leHRUb2tlbigpO3JldHVybiEwfXJldHVybiExfWV4cGVjdChlKXtpZih0aGlzLmFjY2VwdChlKSlyZXR1cm4hMDt0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYFVuZXhwZWN0ZWQgc3ltYm9sOiBmb3VuZCAke3RoaXMudG9rZW4udHlwZX0gZXhwZWN0ZWQgJHtlfS5gKX1wYXJzZSgpe3RoaXMubmV4dFRva2VuKCk7dGhpcy5leHBlY3QoZnMuTEJSQUNFKTt0aGlzLnBhcnNlQmxvY2soKTt0aGlzLmV4cGVjdChmcy5SQlJBQ0UpO3JldHVybiB0aGlzLm9wZXJhdG9yc31wYXJzZUJsb2NrKCl7Zm9yKDs7KWlmKHRoaXMuYWNjZXB0KGZzLk5VTUJFUikpdGhpcy5vcGVyYXRvcnMucHVzaCh0aGlzLnByZXYudmFsdWUpO2Vsc2UgaWYodGhpcy5hY2NlcHQoZnMuT1BFUkFUT1IpKXRoaXMub3BlcmF0b3JzLnB1c2godGhpcy5wcmV2LnZhbHVlKTtlbHNle2lmKCF0aGlzLmFjY2VwdChmcy5MQlJBQ0UpKXJldHVybjt0aGlzLnBhcnNlQ29uZGl0aW9uKCl9fXBhcnNlQ29uZGl0aW9uKCl7Y29uc3QgZT10aGlzLm9wZXJhdG9ycy5sZW5ndGg7dGhpcy5vcGVyYXRvcnMucHVzaChudWxsLG51bGwpO3RoaXMucGFyc2VCbG9jaygpO3RoaXMuZXhwZWN0KGZzLlJCUkFDRSk7aWYodGhpcy5hY2NlcHQoZnMuSUYpKXt0aGlzLm9wZXJhdG9yc1tlXT10aGlzLm9wZXJhdG9ycy5sZW5ndGg7dGhpcy5vcGVyYXRvcnNbZSsxXT0ianoifWVsc2V7aWYoIXRoaXMuYWNjZXB0KGZzLkxCUkFDRSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJQUyBGdW5jdGlvbjogZXJyb3IgcGFyc2luZyBjb25kaXRpb25hbC4iKTt7Y29uc3QgdD10aGlzLm9wZXJhdG9ycy5sZW5ndGg7dGhpcy5vcGVyYXRvcnMucHVzaChudWxsLG51bGwpO2NvbnN0IG49dGhpcy5vcGVyYXRvcnMubGVuZ3RoO3RoaXMucGFyc2VCbG9jaygpO3RoaXMuZXhwZWN0KGZzLlJCUkFDRSk7dGhpcy5leHBlY3QoZnMuSUZFTFNFKTt0aGlzLm9wZXJhdG9yc1t0XT10aGlzLm9wZXJhdG9ycy5sZW5ndGg7dGhpcy5vcGVyYXRvcnNbdCsxXT0iaiI7dGhpcy5vcGVyYXRvcnNbZV09bjt0aGlzLm9wZXJhdG9yc1tlKzFdPSJqeiJ9fX19Y29uc3QgZnM9e0xCUkFDRTowLFJCUkFDRToxLE5VTUJFUjoyLE9QRVJBVE9SOjMsSUY6NCxJRkVMU0U6NX07Y2xhc3MgUG9zdFNjcmlwdFRva2Vue3N0YXRpYyBnZXQgb3BDYWNoZSgpe3JldHVybiBzaGFkb3codGhpcywib3BDYWNoZSIsT2JqZWN0LmNyZWF0ZShudWxsKSl9Y29uc3RydWN0b3IoZSx0KXt0aGlzLnR5cGU9ZTt0aGlzLnZhbHVlPXR9c3RhdGljIGdldE9wZXJhdG9yKGUpe3JldHVybiBQb3N0U2NyaXB0VG9rZW4ub3BDYWNoZVtlXXx8PW5ldyBQb3N0U2NyaXB0VG9rZW4oZnMuT1BFUkFUT1IsZSl9c3RhdGljIGdldCBMQlJBQ0UoKXtyZXR1cm4gc2hhZG93KHRoaXMsIkxCUkFDRSIsbmV3IFBvc3RTY3JpcHRUb2tlbihmcy5MQlJBQ0UsInsiKSl9c3RhdGljIGdldCBSQlJBQ0UoKXtyZXR1cm4gc2hhZG93KHRoaXMsIlJCUkFDRSIsbmV3IFBvc3RTY3JpcHRUb2tlbihmcy5SQlJBQ0UsIn0iKSl9c3RhdGljIGdldCBJRigpe3JldHVybiBzaGFkb3codGhpcywiSUYiLG5ldyBQb3N0U2NyaXB0VG9rZW4oZnMuSUYsIklGIikpfXN0YXRpYyBnZXQgSUZFTFNFKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJJRkVMU0UiLG5ldyBQb3N0U2NyaXB0VG9rZW4oZnMuSUZFTFNFLCJJRkVMU0UiKSl9fWNsYXNzIFBvc3RTY3JpcHRMZXhlcntjb25zdHJ1Y3RvcihlKXt0aGlzLnN0cmVhbT1lO3RoaXMubmV4dENoYXIoKTt0aGlzLnN0ckJ1Zj1bXX1uZXh0Q2hhcigpe3JldHVybiB0aGlzLmN1cnJlbnRDaGFyPXRoaXMuc3RyZWFtLmdldEJ5dGUoKX1nZXRUb2tlbigpe2xldCBlPSExLHQ9dGhpcy5jdXJyZW50Q2hhcjtmb3IoOzspe2lmKHQ8MClyZXR1cm4gaG47aWYoZSkxMCE9PXQmJjEzIT09dHx8KGU9ITEpO2Vsc2UgaWYoMzc9PT10KWU9ITA7ZWxzZSBpZighaXNXaGl0ZVNwYWNlKHQpKWJyZWFrO3Q9dGhpcy5uZXh0Q2hhcigpfXN3aXRjaCgwfHQpe2Nhc2UgNDg6Y2FzZSA0OTpjYXNlIDUwOmNhc2UgNTE6Y2FzZSA1MjpjYXNlIDUzOmNhc2UgNTQ6Y2FzZSA1NTpjYXNlIDU2OmNhc2UgNTc6Y2FzZSA0MzpjYXNlIDQ1OmNhc2UgNDY6cmV0dXJuIG5ldyBQb3N0U2NyaXB0VG9rZW4oZnMuTlVNQkVSLHRoaXMuZ2V0TnVtYmVyKCkpO2Nhc2UgMTIzOnRoaXMubmV4dENoYXIoKTtyZXR1cm4gUG9zdFNjcmlwdFRva2VuLkxCUkFDRTtjYXNlIDEyNTp0aGlzLm5leHRDaGFyKCk7cmV0dXJuIFBvc3RTY3JpcHRUb2tlbi5SQlJBQ0V9Y29uc3Qgbj10aGlzLnN0ckJ1ZjtuLmxlbmd0aD0wO25bMF09U3RyaW5nLmZyb21DaGFyQ29kZSh0KTtmb3IoOyh0PXRoaXMubmV4dENoYXIoKSk+PTAmJih0Pj02NSYmdDw9OTB8fHQ+PTk3JiZ0PD0xMjIpOyluLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZSh0KSk7Y29uc3QgYT1uLmpvaW4oIiIpO3N3aXRjaChhLnRvTG93ZXJDYXNlKCkpe2Nhc2UiaWYiOnJldHVybiBQb3N0U2NyaXB0VG9rZW4uSUY7Y2FzZSJpZmVsc2UiOnJldHVybiBQb3N0U2NyaXB0VG9rZW4uSUZFTFNFO2RlZmF1bHQ6cmV0dXJuIFBvc3RTY3JpcHRUb2tlbi5nZXRPcGVyYXRvcihhKX19Z2V0TnVtYmVyKCl7bGV0IGU9dGhpcy5jdXJyZW50Q2hhcjtjb25zdCB0PXRoaXMuc3RyQnVmO3QubGVuZ3RoPTA7dFswXT1TdHJpbmcuZnJvbUNoYXJDb2RlKGUpO2Zvcig7KGU9dGhpcy5uZXh0Q2hhcigpKT49MCYmKGU+PTQ4JiZlPD01N3x8NDU9PT1lfHw0Nj09PWUpOyl0LnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShlKSk7Y29uc3Qgbj1wYXJzZUZsb2F0KHQuam9pbigiIikpO2lmKGlzTmFOKG4pKXRocm93IG5ldyBGb3JtYXRFcnJvcihgSW52YWxpZCBmbG9hdGluZyBwb2ludCBudW1iZXI6ICR7bn1gKTtyZXR1cm4gbn19Y2xhc3MgQmFzZUxvY2FsQ2FjaGV7Y29uc3RydWN0b3IoZSl7dGhpcy5fb25seVJlZnM9ITA9PT1lPy5vbmx5UmVmcztpZighdGhpcy5fb25seVJlZnMpe3RoaXMuX25hbWVSZWZNYXA9bmV3IE1hcDt0aGlzLl9pbWFnZU1hcD1uZXcgTWFwfXRoaXMuX2ltYWdlQ2FjaGU9bmV3IFJlZlNldENhY2hlfWdldEJ5TmFtZShlKXt0aGlzLl9vbmx5UmVmcyYmdW5yZWFjaGFibGUoIlNob3VsZCBub3QgY2FsbCBgZ2V0QnlOYW1lYCBtZXRob2QuIik7Y29uc3QgdD10aGlzLl9uYW1lUmVmTWFwLmdldChlKTtyZXR1cm4gdD90aGlzLmdldEJ5UmVmKHQpOnRoaXMuX2ltYWdlTWFwLmdldChlKXx8bnVsbH1nZXRCeVJlZihlKXtyZXR1cm4gdGhpcy5faW1hZ2VDYWNoZS5nZXQoZSl8fG51bGx9c2V0KGUsdCxuKXt1bnJlYWNoYWJsZSgiQWJzdHJhY3QgbWV0aG9kIGBzZXRgIGNhbGxlZC4iKX19Y2xhc3MgTG9jYWxJbWFnZUNhY2hlIGV4dGVuZHMgQmFzZUxvY2FsQ2FjaGV7c2V0KGUsdD1udWxsLG4pe2lmKCJzdHJpbmciIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoJ0xvY2FsSW1hZ2VDYWNoZS5zZXQgLSBleHBlY3RlZCAibmFtZSIgYXJndW1lbnQuJyk7aWYodCl7aWYodGhpcy5faW1hZ2VDYWNoZS5oYXModCkpcmV0dXJuO3RoaXMuX25hbWVSZWZNYXAuc2V0KGUsdCk7dGhpcy5faW1hZ2VDYWNoZS5wdXQodCxuKX1lbHNlIHRoaXMuX2ltYWdlTWFwLmhhcyhlKXx8dGhpcy5faW1hZ2VNYXAuc2V0KGUsbil9fWNsYXNzIExvY2FsQ29sb3JTcGFjZUNhY2hlIGV4dGVuZHMgQmFzZUxvY2FsQ2FjaGV7c2V0KGU9bnVsbCx0PW51bGwsbil7aWYoInN0cmluZyIhPXR5cGVvZiBlJiYhdCl0aHJvdyBuZXcgRXJyb3IoJ0xvY2FsQ29sb3JTcGFjZUNhY2hlLnNldCAtIGV4cGVjdGVkICJuYW1lIiBhbmQvb3IgInJlZiIgYXJndW1lbnQuJyk7aWYodCl7aWYodGhpcy5faW1hZ2VDYWNoZS5oYXModCkpcmV0dXJuO251bGwhPT1lJiZ0aGlzLl9uYW1lUmVmTWFwLnNldChlLHQpO3RoaXMuX2ltYWdlQ2FjaGUucHV0KHQsbil9ZWxzZSB0aGlzLl9pbWFnZU1hcC5oYXMoZSl8fHRoaXMuX2ltYWdlTWFwLnNldChlLG4pfX1jbGFzcyBMb2NhbEZ1bmN0aW9uQ2FjaGUgZXh0ZW5kcyBCYXNlTG9jYWxDYWNoZXtjb25zdHJ1Y3RvcihlKXtzdXBlcih7b25seVJlZnM6ITB9KX1zZXQoZT1udWxsLHQsbil7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCdMb2NhbEZ1bmN0aW9uQ2FjaGUuc2V0IC0gZXhwZWN0ZWQgInJlZiIgYXJndW1lbnQuJyk7dGhpcy5faW1hZ2VDYWNoZS5oYXModCl8fHRoaXMuX2ltYWdlQ2FjaGUucHV0KHQsbil9fWNsYXNzIExvY2FsR1N0YXRlQ2FjaGUgZXh0ZW5kcyBCYXNlTG9jYWxDYWNoZXtzZXQoZSx0PW51bGwsbil7aWYoInN0cmluZyIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcignTG9jYWxHU3RhdGVDYWNoZS5zZXQgLSBleHBlY3RlZCAibmFtZSIgYXJndW1lbnQuJyk7aWYodCl7aWYodGhpcy5faW1hZ2VDYWNoZS5oYXModCkpcmV0dXJuO3RoaXMuX25hbWVSZWZNYXAuc2V0KGUsdCk7dGhpcy5faW1hZ2VDYWNoZS5wdXQodCxuKX1lbHNlIHRoaXMuX2ltYWdlTWFwLmhhcyhlKXx8dGhpcy5faW1hZ2VNYXAuc2V0KGUsbil9fWNsYXNzIExvY2FsVGlsaW5nUGF0dGVybkNhY2hlIGV4dGVuZHMgQmFzZUxvY2FsQ2FjaGV7Y29uc3RydWN0b3IoZSl7c3VwZXIoe29ubHlSZWZzOiEwfSl9c2V0KGU9bnVsbCx0LG4pe2lmKCF0KXRocm93IG5ldyBFcnJvcignTG9jYWxUaWxpbmdQYXR0ZXJuQ2FjaGUuc2V0IC0gZXhwZWN0ZWQgInJlZiIgYXJndW1lbnQuJyk7dGhpcy5faW1hZ2VDYWNoZS5oYXModCl8fHRoaXMuX2ltYWdlQ2FjaGUucHV0KHQsbil9fWNsYXNzIFJlZ2lvbmFsSW1hZ2VDYWNoZSBleHRlbmRzIEJhc2VMb2NhbENhY2hle2NvbnN0cnVjdG9yKGUpe3N1cGVyKHtvbmx5UmVmczohMH0pfXNldChlPW51bGwsdCxuKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoJ1JlZ2lvbmFsSW1hZ2VDYWNoZS5zZXQgLSBleHBlY3RlZCAicmVmIiBhcmd1bWVudC4nKTt0aGlzLl9pbWFnZUNhY2hlLmhhcyh0KXx8dGhpcy5faW1hZ2VDYWNoZS5wdXQodCxuKX19Y2xhc3MgR2xvYmFsQ29sb3JTcGFjZUNhY2hlIGV4dGVuZHMgQmFzZUxvY2FsQ2FjaGV7Y29uc3RydWN0b3IoZSl7c3VwZXIoe29ubHlSZWZzOiEwfSl9c2V0KGU9bnVsbCx0LG4pe2lmKCF0KXRocm93IG5ldyBFcnJvcignR2xvYmFsQ29sb3JTcGFjZUNhY2hlLnNldCAtIGV4cGVjdGVkICJyZWYiIGFyZ3VtZW50LicpO3RoaXMuX2ltYWdlQ2FjaGUuaGFzKHQpfHx0aGlzLl9pbWFnZUNhY2hlLnB1dCh0LG4pfWNsZWFyKCl7dGhpcy5faW1hZ2VDYWNoZS5jbGVhcigpfX1jbGFzcyBHbG9iYWxJbWFnZUNhY2hle3N0YXRpYyBOVU1fUEFHRVNfVEhSRVNIT0xEPTI7c3RhdGljIE1JTl9JTUFHRVNfVE9fQ0FDSEU9MTA7c3RhdGljIE1BWF9CWVRFX1NJWkU9NWU3OyNsZT1uZXcgUmVmU2V0O2NvbnN0cnVjdG9yKCl7dGhpcy5fcmVmQ2FjaGU9bmV3IFJlZlNldENhY2hlO3RoaXMuX2ltYWdlQ2FjaGU9bmV3IFJlZlNldENhY2hlfWdldCNmZSgpe2xldCBlPTA7Zm9yKGNvbnN0IHQgb2YgdGhpcy5faW1hZ2VDYWNoZSllKz10LmJ5dGVTaXplO3JldHVybiBlfWdldCNjZSgpe3JldHVybiEodGhpcy5faW1hZ2VDYWNoZS5zaXplPEdsb2JhbEltYWdlQ2FjaGUuTUlOX0lNQUdFU19UT19DQUNIRSkmJiEodGhpcy4jZmU8R2xvYmFsSW1hZ2VDYWNoZS5NQVhfQllURV9TSVpFKX1zaG91bGRDYWNoZShlLHQpe2xldCBuPXRoaXMuX3JlZkNhY2hlLmdldChlKTtpZighbil7bj1uZXcgU2V0O3RoaXMuX3JlZkNhY2hlLnB1dChlLG4pfW4uYWRkKHQpO3JldHVybiEobi5zaXplPEdsb2JhbEltYWdlQ2FjaGUuTlVNX1BBR0VTX1RIUkVTSE9MRCkmJiEoIXRoaXMuX2ltYWdlQ2FjaGUuaGFzKGUpJiZ0aGlzLiNjZSl9YWRkRGVjb2RlRmFpbGVkKGUpe3RoaXMuI2xlLnB1dChlKX1oYXNEZWNvZGVGYWlsZWQoZSl7cmV0dXJuIHRoaXMuI2xlLmhhcyhlKX1hZGRCeXRlU2l6ZShlLHQpe2NvbnN0IG49dGhpcy5faW1hZ2VDYWNoZS5nZXQoZSk7biYmKG4uYnl0ZVNpemV8fChuLmJ5dGVTaXplPXQpKX1nZXREYXRhKGUsdCl7Y29uc3Qgbj10aGlzLl9yZWZDYWNoZS5nZXQoZSk7aWYoIW4pcmV0dXJuIG51bGw7aWYobi5zaXplPEdsb2JhbEltYWdlQ2FjaGUuTlVNX1BBR0VTX1RIUkVTSE9MRClyZXR1cm4gbnVsbDtjb25zdCBhPXRoaXMuX2ltYWdlQ2FjaGUuZ2V0KGUpO2lmKCFhKXJldHVybiBudWxsO24uYWRkKHQpO3JldHVybiBhfXNldERhdGEoZSx0KXtpZighdGhpcy5fcmVmQ2FjaGUuaGFzKGUpKXRocm93IG5ldyBFcnJvcignR2xvYmFsSW1hZ2VDYWNoZS5zZXREYXRhIC0gZXhwZWN0ZWQgInNob3VsZENhY2hlIiB0byBoYXZlIGJlZW4gY2FsbGVkLicpO3RoaXMuX2ltYWdlQ2FjaGUuaGFzKGUpfHwodGhpcy4jY2U/d2FybigiR2xvYmFsSW1hZ2VDYWNoZS5zZXREYXRhIC0gY2FjaGUgbGltaXQgcmVhY2hlZC4iKTp0aGlzLl9pbWFnZUNhY2hlLnB1dChlLHQpKX1jbGVhcihlPSExKXtpZighZSl7dGhpcy4jbGUuY2xlYXIoKTt0aGlzLl9yZWZDYWNoZS5jbGVhcigpfXRoaXMuX2ltYWdlQ2FjaGUuY2xlYXIoKX19Y2xhc3MgUERGRnVuY3Rpb25GYWN0b3J5e2NvbnN0cnVjdG9yKHt4cmVmOmUsaXNFdmFsU3VwcG9ydGVkOnQ9ITB9KXt0aGlzLnhyZWY9ZTt0aGlzLmlzRXZhbFN1cHBvcnRlZD0hMSE9PXR9Y3JlYXRlKGUsdD0hMSl7bGV0IG4sYTtlIGluc3RhbmNlb2YgUmVmP249ZTplIGluc3RhbmNlb2YgRGljdD9uPWUub2JqSWQ6ZSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0mJihuPWUuZGljdD8ub2JqSWQpO2lmKG4pe2NvbnN0IGU9dGhpcy5fbG9jYWxGdW5jdGlvbkNhY2hlLmdldEJ5UmVmKG4pO2lmKGUpcmV0dXJuIGV9Y29uc3Qgcj10aGlzLnhyZWYuZmV0Y2hJZlJlZihlKTtpZihBcnJheS5pc0FycmF5KHIpKXtpZighdCl0aHJvdyBuZXcgRXJyb3IoJ1BERkZ1bmN0aW9uRmFjdG9yeS5jcmVhdGUgLSBleHBlY3RlZCAicGFyc2VBcnJheSIgYXJndW1lbnQuJyk7YT1QREZGdW5jdGlvbi5wYXJzZUFycmF5KHRoaXMscil9ZWxzZSBhPVBERkZ1bmN0aW9uLnBhcnNlKHRoaXMscik7biYmdGhpcy5fbG9jYWxGdW5jdGlvbkNhY2hlLnNldChudWxsLG4sYSk7cmV0dXJuIGF9Z2V0IF9sb2NhbEZ1bmN0aW9uQ2FjaGUoKXtyZXR1cm4gc2hhZG93KHRoaXMsIl9sb2NhbEZ1bmN0aW9uQ2FjaGUiLG5ldyBMb2NhbEZ1bmN0aW9uQ2FjaGUpfX1mdW5jdGlvbiB0b051bWJlckFycmF5KGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpP2lzTnVtYmVyQXJyYXkoZSxudWxsKT9lOmUubWFwKGU9PitlKTpudWxsfWNsYXNzIFBERkZ1bmN0aW9ue3N0YXRpYyBnZXRTYW1wbGVBcnJheShlLHQsbixhKXtsZXQgcj10O2Zvcihjb25zdCB0IG9mIGUpcio9dDtjb25zdCBzPW5ldyBBcnJheShyKTtsZXQgaT0wLG89MDtjb25zdCBsPTEvKDIqKm4tMSksZj1hLmdldEJ5dGVzKChyKm4rNykvOCk7bGV0IGM9MDtmb3IobGV0IGU9MDtlPHI7ZSsrKXtmb3IoO2k8bjspe288PD04O298PWZbYysrXTtpKz04fWktPW47c1tlXT0obz4+aSkqbDtvJj0oMTw8aSktMX1yZXR1cm4gc31zdGF0aWMgcGFyc2UoZSx0KXtjb25zdCBuPXQuZGljdHx8dDtzd2l0Y2gobi5nZXQoIkZ1bmN0aW9uVHlwZSIpKXtjYXNlIDA6cmV0dXJuIHRoaXMuY29uc3RydWN0U2FtcGxlZChlLHQsbik7Y2FzZSAxOmJyZWFrO2Nhc2UgMjpyZXR1cm4gdGhpcy5jb25zdHJ1Y3RJbnRlcnBvbGF0ZWQoZSxuKTtjYXNlIDM6cmV0dXJuIHRoaXMuY29uc3RydWN0U3RpY2hlZChlLG4pO2Nhc2UgNDpyZXR1cm4gdGhpcy5jb25zdHJ1Y3RQb3N0U2NyaXB0KGUsdCxuKX10aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlVua25vd24gdHlwZSBvZiBmdW5jdGlvbiIpfXN0YXRpYyBwYXJzZUFycmF5KGUsdCl7Y29uc3R7eHJlZjpufT1lLGE9W107Zm9yKGNvbnN0IHIgb2YgdClhLnB1c2godGhpcy5wYXJzZShlLG4uZmV0Y2hJZlJlZihyKSkpO3JldHVybiBmdW5jdGlvbihlLHQsbixyKXtmb3IobGV0IHM9MCxpPWEubGVuZ3RoO3M8aTtzKyspYVtzXShlLHQsbixyK3MpfX1zdGF0aWMgY29uc3RydWN0U2FtcGxlZChlLHQsbil7ZnVuY3Rpb24gdG9NdWx0aUFycmF5KGUpe2NvbnN0IHQ9ZS5sZW5ndGgsbj1bXTtsZXQgYT0wO2ZvcihsZXQgcj0wO3I8dDtyKz0yKW5bYSsrXT1bZVtyXSxlW3IrMV1dO3JldHVybiBufWZ1bmN0aW9uIGludGVycG9sYXRlKGUsdCxuLGEscil7cmV0dXJuIGErKHItYSkvKG4tdCkqKGUtdCl9bGV0IGE9dG9OdW1iZXJBcnJheShuLmdldEFycmF5KCJEb21haW4iKSkscj10b051bWJlckFycmF5KG4uZ2V0QXJyYXkoIlJhbmdlIikpO2lmKCFhfHwhcil0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIk5vIGRvbWFpbiBvciByYW5nZSIpO2NvbnN0IHM9YS5sZW5ndGgvMixpPXIubGVuZ3RoLzI7YT10b011bHRpQXJyYXkoYSk7cj10b011bHRpQXJyYXkocik7Y29uc3Qgbz10b051bWJlckFycmF5KG4uZ2V0QXJyYXkoIlNpemUiKSksbD1uLmdldCgiQml0c1BlclNhbXBsZSIpLGY9bi5nZXQoIk9yZGVyIil8fDE7MSE9PWYmJmluZm8oIk5vIHN1cHBvcnQgZm9yIGN1YmljIHNwbGluZSBpbnRlcnBvbGF0aW9uOiAiK2YpO2xldCBjPXRvTnVtYmVyQXJyYXkobi5nZXRBcnJheSgiRW5jb2RlIikpO2lmKGMpYz10b011bHRpQXJyYXkoYyk7ZWxzZXtjPVtdO2ZvcihsZXQgZT0wO2U8czsrK2UpYy5wdXNoKFswLG9bZV0tMV0pfWxldCBoPXRvTnVtYmVyQXJyYXkobi5nZXRBcnJheSgiRGVjb2RlIikpO2g9aD90b011bHRpQXJyYXkoaCk6cjtjb25zdCB1PXRoaXMuZ2V0U2FtcGxlQXJyYXkobyxpLGwsdCk7cmV0dXJuIGZ1bmN0aW9uIGNvbnN0cnVjdFNhbXBsZWRGbihlLHQsbixsKXtjb25zdCBmPTE8PHMsbT1uZXcgRmxvYXQ2NEFycmF5KGYpLmZpbGwoMSkscD1uZXcgVWludDMyQXJyYXkoZik7bGV0IGQsZyxiPWksdz0xO2ZvcihkPTA7ZDxzOysrZCl7Y29uc3Qgbj1hW2RdWzBdLHI9YVtkXVsxXTtsZXQgcz1pbnRlcnBvbGF0ZShNYXRoQ2xhbXAoZVt0K2RdLG4sciksbixyLGNbZF1bMF0sY1tkXVsxXSk7Y29uc3QgaT1vW2RdO3M9TWF0aENsYW1wKHMsMCxpLTEpO2NvbnN0IGw9czxpLTE/TWF0aC5mbG9vcihzKTpzLTEsaD1sKzEtcyx1PXMtbCxqPWwqYixrPWorYjtmb3IoZz0wO2c8ZjtnKyspaWYoZyZ3KXttW2ddKj11O3BbZ10rPWt9ZWxzZXttW2ddKj1oO3BbZ10rPWp9Yio9aTt3PDw9MX1mb3IoZz0wO2c8aTsrK2cpe2xldCBlPTA7Zm9yKGQ9MDtkPGY7ZCsrKWUrPXVbcFtkXStnXSptW2RdO2U9aW50ZXJwb2xhdGUoZSwwLDEsaFtnXVswXSxoW2ddWzFdKTtuW2wrZ109TWF0aENsYW1wKGUscltnXVswXSxyW2ddWzFdKX19fXN0YXRpYyBjb25zdHJ1Y3RJbnRlcnBvbGF0ZWQoZSx0KXtjb25zdCBuPXRvTnVtYmVyQXJyYXkodC5nZXRBcnJheSgiQzAiKSl8fFswXSxhPXRvTnVtYmVyQXJyYXkodC5nZXRBcnJheSgiQzEiKSl8fFsxXSxyPXQuZ2V0KCJOIikscz1bXTtmb3IobGV0IGU9MCx0PW4ubGVuZ3RoO2U8dDsrK2Upcy5wdXNoKGFbZV0tbltlXSk7Y29uc3QgaT1zLmxlbmd0aDtyZXR1cm4gZnVuY3Rpb24gY29uc3RydWN0SW50ZXJwb2xhdGVkRm4oZSx0LGEsbyl7Y29uc3QgbD0xPT09cj9lW3RdOmVbdF0qKnI7Zm9yKGxldCBlPTA7ZTxpOysrZSlhW28rZV09bltlXStsKnNbZV19fXN0YXRpYyBjb25zdHJ1Y3RTdGljaGVkKGUsdCl7Y29uc3Qgbj10b051bWJlckFycmF5KHQuZ2V0QXJyYXkoIkRvbWFpbiIpKTtpZighbil0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIk5vIGRvbWFpbiIpO2lmKDEhPT1uLmxlbmd0aC8yKXRocm93IG5ldyBGb3JtYXRFcnJvcigiQmFkIGRvbWFpbiBmb3Igc3RpY2hlZCBmdW5jdGlvbiIpO2NvbnN0e3hyZWY6YX09ZSxyPVtdO2Zvcihjb25zdCBuIG9mIHQuZ2V0KCJGdW5jdGlvbnMiKSlyLnB1c2godGhpcy5wYXJzZShlLGEuZmV0Y2hJZlJlZihuKSkpO2NvbnN0IHM9dG9OdW1iZXJBcnJheSh0LmdldEFycmF5KCJCb3VuZHMiKSksaT10b051bWJlckFycmF5KHQuZ2V0QXJyYXkoIkVuY29kZSIpKSxvPW5ldyBGbG9hdDMyQXJyYXkoMSk7cmV0dXJuIGZ1bmN0aW9uIGNvbnN0cnVjdFN0aWNoZWRGbihlLHQsYSxsKXtjb25zdCBmPU1hdGhDbGFtcChlW3RdLG5bMF0sblsxXSksYz1zLmxlbmd0aDtsZXQgaDtmb3IoaD0wO2g8YyYmIShmPHNbaF0pOysraCk7Y29uc3QgdT1oPjA/c1toLTFdOm5bMF0sbT1oPGM/c1toXTpuWzFdLHA9aVsyKmhdLGQ9aVsyKmgrMV07b1swXT11PT09bT9wOnArKGYtdSkqKGQtcCkvKG0tdSk7cltoXShvLDAsYSxsKX19c3RhdGljIGNvbnN0cnVjdFBvc3RTY3JpcHQoZSx0LG4pe2NvbnN0IGE9dG9OdW1iZXJBcnJheShuLmdldEFycmF5KCJEb21haW4iKSkscj10b051bWJlckFycmF5KG4uZ2V0QXJyYXkoIlJhbmdlIikpO2lmKCFhKXRocm93IG5ldyBGb3JtYXRFcnJvcigiTm8gZG9tYWluLiIpO2lmKCFyKXRocm93IG5ldyBGb3JtYXRFcnJvcigiTm8gcmFuZ2UuIik7Y29uc3Qgcz1uZXcgUG9zdFNjcmlwdExleGVyKHQpLGk9bmV3IFBvc3RTY3JpcHRQYXJzZXIocykucGFyc2UoKTtpZihlLmlzRXZhbFN1cHBvcnRlZCYmRmVhdHVyZVRlc3QuaXNFdmFsU3VwcG9ydGVkKXtjb25zdCBlPShuZXcgUG9zdFNjcmlwdENvbXBpbGVyKS5jb21waWxlKGksYSxyKTtpZihlKXJldHVybiBuZXcgRnVuY3Rpb24oInNyYyIsInNyY09mZnNldCIsImRlc3QiLCJkZXN0T2Zmc2V0IixlKX1pbmZvKCJVbmFibGUgdG8gY29tcGlsZSBQUyBmdW5jdGlvbiIpO2NvbnN0IG89ci5sZW5ndGg+PjEsbD1hLmxlbmd0aD4+MSxmPW5ldyBQb3N0U2NyaXB0RXZhbHVhdG9yKGkpLGM9T2JqZWN0LmNyZWF0ZShudWxsKTtsZXQgaD04MTkyO2NvbnN0IHU9bmV3IEZsb2F0MzJBcnJheShsKTtyZXR1cm4gZnVuY3Rpb24gY29uc3RydWN0UG9zdFNjcmlwdEZuKGUsdCxuLGEpe2xldCBzLGksbT0iIjtjb25zdCBwPXU7Zm9yKHM9MDtzPGw7cysrKXtpPWVbdCtzXTtwW3NdPWk7bSs9aSsiXyJ9Y29uc3QgZD1jW21dO2lmKHZvaWQgMCE9PWQpe24uc2V0KGQsYSk7cmV0dXJufWNvbnN0IGc9bmV3IEZsb2F0MzJBcnJheShvKSxiPWYuZXhlY3V0ZShwKSx3PWIubGVuZ3RoLW87Zm9yKHM9MDtzPG87cysrKWdbc109TWF0aENsYW1wKGJbdytzXSxyWzIqc10sclsyKnMrMV0pO2lmKGg+MCl7aC0tO2NbbV09Z31uLnNldChnLGEpfX19ZnVuY3Rpb24gaXNQREZGdW5jdGlvbihlKXtsZXQgdDtpZihlIGluc3RhbmNlb2YgRGljdCl0PWU7ZWxzZXtpZighKGUgaW5zdGFuY2VvZiBCYXNlU3RyZWFtKSlyZXR1cm4hMTt0PWUuZGljdH1yZXR1cm4gdC5oYXMoIkZ1bmN0aW9uVHlwZSIpfWNsYXNzIFBvc3RTY3JpcHRTdGFja3tzdGF0aWMgTUFYX1NUQUNLX1NJWkU9MTAwO2NvbnN0cnVjdG9yKGUpe3RoaXMuc3RhY2s9ZT9BcnJheS5mcm9tKGUpOltdfXB1c2goZSl7aWYodGhpcy5zdGFjay5sZW5ndGg+PVBvc3RTY3JpcHRTdGFjay5NQVhfU1RBQ0tfU0laRSl0aHJvdyBuZXcgRXJyb3IoIlBvc3RTY3JpcHQgZnVuY3Rpb24gc3RhY2sgb3ZlcmZsb3cuIik7dGhpcy5zdGFjay5wdXNoKGUpfXBvcCgpe2lmKHRoaXMuc3RhY2subGVuZ3RoPD0wKXRocm93IG5ldyBFcnJvcigiUG9zdFNjcmlwdCBmdW5jdGlvbiBzdGFjayB1bmRlcmZsb3cuIik7cmV0dXJuIHRoaXMuc3RhY2sucG9wKCl9Y29weShlKXtpZih0aGlzLnN0YWNrLmxlbmd0aCtlPj1Qb3N0U2NyaXB0U3RhY2suTUFYX1NUQUNLX1NJWkUpdGhyb3cgbmV3IEVycm9yKCJQb3N0U2NyaXB0IGZ1bmN0aW9uIHN0YWNrIG92ZXJmbG93LiIpO2NvbnN0IHQ9dGhpcy5zdGFjaztmb3IobGV0IG49dC5sZW5ndGgtZSxhPWUtMTthPj0wO2EtLSxuKyspdC5wdXNoKHRbbl0pfWluZGV4KGUpe3RoaXMucHVzaCh0aGlzLnN0YWNrW3RoaXMuc3RhY2subGVuZ3RoLWUtMV0pfXJvbGwoZSx0KXtjb25zdCBuPXRoaXMuc3RhY2ssYT1uLmxlbmd0aC1lLHI9bi5sZW5ndGgtMSxzPWErKHQtTWF0aC5mbG9vcih0L2UpKmUpO2ZvcihsZXQgZT1hLHQ9cjtlPHQ7ZSsrLHQtLSl7Y29uc3QgYT1uW2VdO25bZV09blt0XTtuW3RdPWF9Zm9yKGxldCBlPWEsdD1zLTE7ZTx0O2UrKyx0LS0pe2NvbnN0IGE9bltlXTtuW2VdPW5bdF07blt0XT1hfWZvcihsZXQgZT1zLHQ9cjtlPHQ7ZSsrLHQtLSl7Y29uc3QgYT1uW2VdO25bZV09blt0XTtuW3RdPWF9fX1jbGFzcyBQb3N0U2NyaXB0RXZhbHVhdG9ye2NvbnN0cnVjdG9yKGUpe3RoaXMub3BlcmF0b3JzPWV9ZXhlY3V0ZShlKXtjb25zdCB0PW5ldyBQb3N0U2NyaXB0U3RhY2soZSk7bGV0IG49MDtjb25zdCBhPXRoaXMub3BlcmF0b3JzLHI9YS5sZW5ndGg7bGV0IHMsaSxvO2Zvcig7bjxyOyl7cz1hW24rK107aWYoIm51bWJlciIhPXR5cGVvZiBzKXN3aXRjaChzKXtjYXNlImp6IjpvPXQucG9wKCk7aT10LnBvcCgpO2l8fChuPW8pO2JyZWFrO2Nhc2UiaiI6aT10LnBvcCgpO249aTticmVhaztjYXNlImFicyI6aT10LnBvcCgpO3QucHVzaChNYXRoLmFicyhpKSk7YnJlYWs7Y2FzZSJhZGQiOm89dC5wb3AoKTtpPXQucG9wKCk7dC5wdXNoKGkrbyk7YnJlYWs7Y2FzZSJhbmQiOm89dC5wb3AoKTtpPXQucG9wKCk7ImJvb2xlYW4iPT10eXBlb2YgaSYmImJvb2xlYW4iPT10eXBlb2Ygbz90LnB1c2goaSYmbyk6dC5wdXNoKGkmbyk7YnJlYWs7Y2FzZSJhdGFuIjpvPXQucG9wKCk7aT10LnBvcCgpO2k9TWF0aC5hdGFuMihpLG8pL01hdGguUEkqMTgwO2k8MCYmKGkrPTM2MCk7dC5wdXNoKGkpO2JyZWFrO2Nhc2UiYml0c2hpZnQiOm89dC5wb3AoKTtpPXQucG9wKCk7aT4wP3QucHVzaChpPDxvKTp0LnB1c2goaT4+byk7YnJlYWs7Y2FzZSJjZWlsaW5nIjppPXQucG9wKCk7dC5wdXNoKE1hdGguY2VpbChpKSk7YnJlYWs7Y2FzZSJjb3B5IjppPXQucG9wKCk7dC5jb3B5KGkpO2JyZWFrO2Nhc2UiY29zIjppPXQucG9wKCk7dC5wdXNoKE1hdGguY29zKGklMzYwLzE4MCpNYXRoLlBJKSk7YnJlYWs7Y2FzZSJjdmkiOmk9MHx0LnBvcCgpO3QucHVzaChpKTticmVhaztjYXNlImN2ciI6YnJlYWs7Y2FzZSJkaXYiOm89dC5wb3AoKTtpPXQucG9wKCk7dC5wdXNoKGkvbyk7YnJlYWs7Y2FzZSJkdXAiOnQuY29weSgxKTticmVhaztjYXNlImVxIjpvPXQucG9wKCk7aT10LnBvcCgpO3QucHVzaChpPT09byk7YnJlYWs7Y2FzZSJleGNoIjp0LnJvbGwoMiwxKTticmVhaztjYXNlImV4cCI6bz10LnBvcCgpO2k9dC5wb3AoKTt0LnB1c2goaSoqbyk7YnJlYWs7Y2FzZSJmYWxzZSI6dC5wdXNoKCExKTticmVhaztjYXNlImZsb29yIjppPXQucG9wKCk7dC5wdXNoKE1hdGguZmxvb3IoaSkpO2JyZWFrO2Nhc2UiZ2UiOm89dC5wb3AoKTtpPXQucG9wKCk7dC5wdXNoKGk+PW8pO2JyZWFrO2Nhc2UiZ3QiOm89dC5wb3AoKTtpPXQucG9wKCk7dC5wdXNoKGk+byk7YnJlYWs7Y2FzZSJpZGl2IjpvPXQucG9wKCk7aT10LnBvcCgpO3QucHVzaChpL298MCk7YnJlYWs7Y2FzZSJpbmRleCI6aT10LnBvcCgpO3QuaW5kZXgoaSk7YnJlYWs7Y2FzZSJsZSI6bz10LnBvcCgpO2k9dC5wb3AoKTt0LnB1c2goaTw9byk7YnJlYWs7Y2FzZSJsbiI6aT10LnBvcCgpO3QucHVzaChNYXRoLmxvZyhpKSk7YnJlYWs7Y2FzZSJsb2ciOmk9dC5wb3AoKTt0LnB1c2goTWF0aC5sb2cxMChpKSk7YnJlYWs7Y2FzZSJsdCI6bz10LnBvcCgpO2k9dC5wb3AoKTt0LnB1c2goaTxvKTticmVhaztjYXNlIm1vZCI6bz10LnBvcCgpO2k9dC5wb3AoKTt0LnB1c2goaSVvKTticmVhaztjYXNlIm11bCI6bz10LnBvcCgpO2k9dC5wb3AoKTt0LnB1c2goaSpvKTticmVhaztjYXNlIm5lIjpvPXQucG9wKCk7aT10LnBvcCgpO3QucHVzaChpIT09byk7YnJlYWs7Y2FzZSJuZWciOmk9dC5wb3AoKTt0LnB1c2goLWkpO2JyZWFrO2Nhc2Uibm90IjppPXQucG9wKCk7ImJvb2xlYW4iPT10eXBlb2YgaT90LnB1c2goIWkpOnQucHVzaCh+aSk7YnJlYWs7Y2FzZSJvciI6bz10LnBvcCgpO2k9dC5wb3AoKTsiYm9vbGVhbiI9PXR5cGVvZiBpJiYiYm9vbGVhbiI9PXR5cGVvZiBvP3QucHVzaChpfHxvKTp0LnB1c2goaXxvKTticmVhaztjYXNlInBvcCI6dC5wb3AoKTticmVhaztjYXNlInJvbGwiOm89dC5wb3AoKTtpPXQucG9wKCk7dC5yb2xsKGksbyk7YnJlYWs7Y2FzZSJyb3VuZCI6aT10LnBvcCgpO3QucHVzaChNYXRoLnJvdW5kKGkpKTticmVhaztjYXNlInNpbiI6aT10LnBvcCgpO3QucHVzaChNYXRoLnNpbihpJTM2MC8xODAqTWF0aC5QSSkpO2JyZWFrO2Nhc2Uic3FydCI6aT10LnBvcCgpO3QucHVzaChNYXRoLnNxcnQoaSkpO2JyZWFrO2Nhc2Uic3ViIjpvPXQucG9wKCk7aT10LnBvcCgpO3QucHVzaChpLW8pO2JyZWFrO2Nhc2UidHJ1ZSI6dC5wdXNoKCEwKTticmVhaztjYXNlInRydW5jYXRlIjppPXQucG9wKCk7aT1pPDA/TWF0aC5jZWlsKGkpOk1hdGguZmxvb3IoaSk7dC5wdXNoKGkpO2JyZWFrO2Nhc2UieG9yIjpvPXQucG9wKCk7aT10LnBvcCgpOyJib29sZWFuIj09dHlwZW9mIGkmJiJib29sZWFuIj09dHlwZW9mIG8/dC5wdXNoKGkhPT1vKTp0LnB1c2goaV5vKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBGb3JtYXRFcnJvcihgVW5rbm93biBvcGVyYXRvciAke3N9YCl9ZWxzZSB0LnB1c2gocyl9cmV0dXJuIHQuc3RhY2t9fWNsYXNzIEFzdE5vZGV7Y29uc3RydWN0b3IoZSl7dGhpcy50eXBlPWV9dmlzaXQoZSl7dW5yZWFjaGFibGUoImFic3RyYWN0IG1ldGhvZCIpfX1jbGFzcyBBc3RBcmd1bWVudCBleHRlbmRzIEFzdE5vZGV7Y29uc3RydWN0b3IoZSx0LG4pe3N1cGVyKCJhcmdzIik7dGhpcy5pbmRleD1lO3RoaXMubWluPXQ7dGhpcy5tYXg9bn12aXNpdChlKXtlLnZpc2l0QXJndW1lbnQodGhpcyl9fWNsYXNzIEFzdExpdGVyYWwgZXh0ZW5kcyBBc3ROb2Rle2NvbnN0cnVjdG9yKGUpe3N1cGVyKCJsaXRlcmFsIik7dGhpcy5udW1iZXI9ZTt0aGlzLm1pbj1lO3RoaXMubWF4PWV9dmlzaXQoZSl7ZS52aXNpdExpdGVyYWwodGhpcyl9fWNsYXNzIEFzdEJpbmFyeU9wZXJhdGlvbiBleHRlbmRzIEFzdE5vZGV7Y29uc3RydWN0b3IoZSx0LG4sYSxyKXtzdXBlcigiYmluYXJ5Iik7dGhpcy5vcD1lO3RoaXMuYXJnMT10O3RoaXMuYXJnMj1uO3RoaXMubWluPWE7dGhpcy5tYXg9cn12aXNpdChlKXtlLnZpc2l0QmluYXJ5T3BlcmF0aW9uKHRoaXMpfX1jbGFzcyBBc3RNaW4gZXh0ZW5kcyBBc3ROb2Rle2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoIm1heCIpO3RoaXMuYXJnPWU7dGhpcy5taW49ZS5taW47dGhpcy5tYXg9dH12aXNpdChlKXtlLnZpc2l0TWluKHRoaXMpfX1jbGFzcyBBc3RWYXJpYWJsZSBleHRlbmRzIEFzdE5vZGV7Y29uc3RydWN0b3IoZSx0LG4pe3N1cGVyKCJ2YXIiKTt0aGlzLmluZGV4PWU7dGhpcy5taW49dDt0aGlzLm1heD1ufXZpc2l0KGUpe2UudmlzaXRWYXJpYWJsZSh0aGlzKX19Y2xhc3MgQXN0VmFyaWFibGVEZWZpbml0aW9uIGV4dGVuZHMgQXN0Tm9kZXtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKCJkZWZpbml0aW9uIik7dGhpcy52YXJpYWJsZT1lO3RoaXMuYXJnPXR9dmlzaXQoZSl7ZS52aXNpdFZhcmlhYmxlRGVmaW5pdGlvbih0aGlzKX19Y2xhc3MgRXhwcmVzc2lvbkJ1aWxkZXJWaXNpdG9ye3BhcnRzPVtdO3Zpc2l0QXJndW1lbnQoZSl7dGhpcy5wYXJ0cy5wdXNoKCJNYXRoLm1heCgiLGUubWluLCIsIE1hdGgubWluKCIsZS5tYXgsIiwgc3JjW3NyY09mZnNldCArICIsZS5pbmRleCwiXSkpIil9dmlzaXRWYXJpYWJsZShlKXt0aGlzLnBhcnRzLnB1c2goInYiLGUuaW5kZXgpfXZpc2l0TGl0ZXJhbChlKXt0aGlzLnBhcnRzLnB1c2goZS5udW1iZXIpfXZpc2l0QmluYXJ5T3BlcmF0aW9uKGUpe3RoaXMucGFydHMucHVzaCgiKCIpO2UuYXJnMS52aXNpdCh0aGlzKTt0aGlzLnBhcnRzLnB1c2goIiAiLGUub3AsIiAiKTtlLmFyZzIudmlzaXQodGhpcyk7dGhpcy5wYXJ0cy5wdXNoKCIpIil9dmlzaXRWYXJpYWJsZURlZmluaXRpb24oZSl7dGhpcy5wYXJ0cy5wdXNoKCJ2YXIgIik7ZS52YXJpYWJsZS52aXNpdCh0aGlzKTt0aGlzLnBhcnRzLnB1c2goIiA9ICIpO2UuYXJnLnZpc2l0KHRoaXMpO3RoaXMucGFydHMucHVzaCgiOyIpfXZpc2l0TWluKGUpe3RoaXMucGFydHMucHVzaCgiTWF0aC5taW4oIik7ZS5hcmcudmlzaXQodGhpcyk7dGhpcy5wYXJ0cy5wdXNoKCIsICIsZS5tYXgsIikiKX10b1N0cmluZygpe3JldHVybiB0aGlzLnBhcnRzLmpvaW4oIiIpfX1mdW5jdGlvbiBidWlsZEFkZE9wZXJhdGlvbihlLHQpe3JldHVybiJsaXRlcmFsIj09PXQudHlwZSYmMD09PXQubnVtYmVyP2U6ImxpdGVyYWwiPT09ZS50eXBlJiYwPT09ZS5udW1iZXI/dDoibGl0ZXJhbCI9PT10LnR5cGUmJiJsaXRlcmFsIj09PWUudHlwZT9uZXcgQXN0TGl0ZXJhbChlLm51bWJlcit0Lm51bWJlcik6bmV3IEFzdEJpbmFyeU9wZXJhdGlvbigiKyIsZSx0LGUubWluK3QubWluLGUubWF4K3QubWF4KX1mdW5jdGlvbiBidWlsZE11bE9wZXJhdGlvbihlLHQpe2lmKCJsaXRlcmFsIj09PXQudHlwZSl7aWYoMD09PXQubnVtYmVyKXJldHVybiBuZXcgQXN0TGl0ZXJhbCgwKTtpZigxPT09dC5udW1iZXIpcmV0dXJuIGU7aWYoImxpdGVyYWwiPT09ZS50eXBlKXJldHVybiBuZXcgQXN0TGl0ZXJhbChlLm51bWJlcip0Lm51bWJlcil9aWYoImxpdGVyYWwiPT09ZS50eXBlKXtpZigwPT09ZS5udW1iZXIpcmV0dXJuIG5ldyBBc3RMaXRlcmFsKDApO2lmKDE9PT1lLm51bWJlcilyZXR1cm4gdH1jb25zdCBuPU1hdGgubWluKGUubWluKnQubWluLGUubWluKnQubWF4LGUubWF4KnQubWluLGUubWF4KnQubWF4KSxhPU1hdGgubWF4KGUubWluKnQubWluLGUubWluKnQubWF4LGUubWF4KnQubWluLGUubWF4KnQubWF4KTtyZXR1cm4gbmV3IEFzdEJpbmFyeU9wZXJhdGlvbigiKiIsZSx0LG4sYSl9ZnVuY3Rpb24gYnVpbGRTdWJPcGVyYXRpb24oZSx0KXtpZigibGl0ZXJhbCI9PT10LnR5cGUpe2lmKDA9PT10Lm51bWJlcilyZXR1cm4gZTtpZigibGl0ZXJhbCI9PT1lLnR5cGUpcmV0dXJuIG5ldyBBc3RMaXRlcmFsKGUubnVtYmVyLXQubnVtYmVyKX1yZXR1cm4iYmluYXJ5Ij09PXQudHlwZSYmIi0iPT09dC5vcCYmImxpdGVyYWwiPT09ZS50eXBlJiYxPT09ZS5udW1iZXImJiJsaXRlcmFsIj09PXQuYXJnMS50eXBlJiYxPT09dC5hcmcxLm51bWJlcj90LmFyZzI6bmV3IEFzdEJpbmFyeU9wZXJhdGlvbigiLSIsZSx0LGUubWluLXQubWF4LGUubWF4LXQubWluKX1mdW5jdGlvbiBidWlsZE1pbk9wZXJhdGlvbihlLHQpe3JldHVybiBlLm1pbj49dD9uZXcgQXN0TGl0ZXJhbCh0KTplLm1heDw9dD9lOm5ldyBBc3RNaW4oZSx0KX1jbGFzcyBQb3N0U2NyaXB0Q29tcGlsZXJ7Y29tcGlsZShlLHQsbil7Y29uc3QgYT1bXSxyPVtdLHM9dC5sZW5ndGg+PjEsaT1uLmxlbmd0aD4+MTtsZXQgbyxsLGYsYyxoLHUsbSxwLGQ9MDtmb3IobGV0IGU9MDtlPHM7ZSsrKWEucHVzaChuZXcgQXN0QXJndW1lbnQoZSx0WzIqZV0sdFsyKmUrMV0pKTtmb3IobGV0IHQ9MCxuPWUubGVuZ3RoO3Q8bjt0Kyspe3A9ZVt0XTtpZigibnVtYmVyIiE9dHlwZW9mIHApc3dpdGNoKHApe2Nhc2UiYWRkIjppZihhLmxlbmd0aDwyKXJldHVybiBudWxsO2M9YS5wb3AoKTtmPWEucG9wKCk7YS5wdXNoKGJ1aWxkQWRkT3BlcmF0aW9uKGYsYykpO2JyZWFrO2Nhc2UiY3ZyIjppZihhLmxlbmd0aDwxKXJldHVybiBudWxsO2JyZWFrO2Nhc2UibXVsIjppZihhLmxlbmd0aDwyKXJldHVybiBudWxsO2M9YS5wb3AoKTtmPWEucG9wKCk7YS5wdXNoKGJ1aWxkTXVsT3BlcmF0aW9uKGYsYykpO2JyZWFrO2Nhc2Uic3ViIjppZihhLmxlbmd0aDwyKXJldHVybiBudWxsO2M9YS5wb3AoKTtmPWEucG9wKCk7YS5wdXNoKGJ1aWxkU3ViT3BlcmF0aW9uKGYsYykpO2JyZWFrO2Nhc2UiZXhjaCI6aWYoYS5sZW5ndGg8MilyZXR1cm4gbnVsbDtoPWEucG9wKCk7dT1hLnBvcCgpO2EucHVzaChoLHUpO2JyZWFrO2Nhc2UicG9wIjppZihhLmxlbmd0aDwxKXJldHVybiBudWxsO2EucG9wKCk7YnJlYWs7Y2FzZSJpbmRleCI6aWYoYS5sZW5ndGg8MSlyZXR1cm4gbnVsbDtmPWEucG9wKCk7aWYoImxpdGVyYWwiIT09Zi50eXBlKXJldHVybiBudWxsO289Zi5udW1iZXI7aWYobzwwfHwhTnVtYmVyLmlzSW50ZWdlcihvKXx8YS5sZW5ndGg8bylyZXR1cm4gbnVsbDtoPWFbYS5sZW5ndGgtby0xXTtpZigibGl0ZXJhbCI9PT1oLnR5cGV8fCJ2YXIiPT09aC50eXBlKXthLnB1c2goaCk7YnJlYWt9bT1uZXcgQXN0VmFyaWFibGUoZCsrLGgubWluLGgubWF4KTthW2EubGVuZ3RoLW8tMV09bTthLnB1c2gobSk7ci5wdXNoKG5ldyBBc3RWYXJpYWJsZURlZmluaXRpb24obSxoKSk7YnJlYWs7Y2FzZSJkdXAiOmlmKGEubGVuZ3RoPDEpcmV0dXJuIG51bGw7aWYoIm51bWJlciI9PXR5cGVvZiBlW3QrMV0mJiJndCI9PT1lW3QrMl0mJmVbdCszXT09PXQrNyYmImp6Ij09PWVbdCs0XSYmInBvcCI9PT1lW3QrNV0mJmVbdCs2XT09PWVbdCsxXSl7Zj1hLnBvcCgpO2EucHVzaChidWlsZE1pbk9wZXJhdGlvbihmLGVbdCsxXSkpO3QrPTY7YnJlYWt9aD1hLmF0KC0xKTtpZigibGl0ZXJhbCI9PT1oLnR5cGV8fCJ2YXIiPT09aC50eXBlKXthLnB1c2goaCk7YnJlYWt9bT1uZXcgQXN0VmFyaWFibGUoZCsrLGgubWluLGgubWF4KTthW2EubGVuZ3RoLTFdPW07YS5wdXNoKG0pO3IucHVzaChuZXcgQXN0VmFyaWFibGVEZWZpbml0aW9uKG0saCkpO2JyZWFrO2Nhc2Uicm9sbCI6aWYoYS5sZW5ndGg8MilyZXR1cm4gbnVsbDtjPWEucG9wKCk7Zj1hLnBvcCgpO2lmKCJsaXRlcmFsIiE9PWMudHlwZXx8ImxpdGVyYWwiIT09Zi50eXBlKXJldHVybiBudWxsO2w9Yy5udW1iZXI7bz1mLm51bWJlcjtpZihvPD0wfHwhTnVtYmVyLmlzSW50ZWdlcihvKXx8IU51bWJlci5pc0ludGVnZXIobCl8fGEubGVuZ3RoPG8pcmV0dXJuIG51bGw7bD0obCVvK28pJW87aWYoMD09PWwpYnJlYWs7YS5wdXNoKC4uLmEuc3BsaWNlKGEubGVuZ3RoLW8sby1sKSk7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gbnVsbH1lbHNlIGEucHVzaChuZXcgQXN0TGl0ZXJhbChwKSl9aWYoYS5sZW5ndGghPT1pKXJldHVybiBudWxsO2NvbnN0IGc9W107Zm9yKGNvbnN0IGUgb2Ygcil7Y29uc3QgdD1uZXcgRXhwcmVzc2lvbkJ1aWxkZXJWaXNpdG9yO2UudmlzaXQodCk7Zy5wdXNoKHQudG9TdHJpbmcoKSl9Zm9yKGxldCBlPTAsdD1hLmxlbmd0aDtlPHQ7ZSsrKXtjb25zdCB0PWFbZV0scj1uZXcgRXhwcmVzc2lvbkJ1aWxkZXJWaXNpdG9yO3QudmlzaXQocik7Y29uc3Qgcz1uWzIqZV0saT1uWzIqZSsxXSxvPVtyLnRvU3RyaW5nKCldO2lmKHM+dC5taW4pe28udW5zaGlmdCgiTWF0aC5tYXgoIixzLCIsICIpO28ucHVzaCgiKSIpfWlmKGk8dC5tYXgpe28udW5zaGlmdCgiTWF0aC5taW4oIixpLCIsICIpO28ucHVzaCgiKSIpfW8udW5zaGlmdCgiZGVzdFtkZXN0T2Zmc2V0ICsgIixlLCJdID0gIik7by5wdXNoKCI7Iik7Zy5wdXNoKG8uam9pbigiIikpfXJldHVybiBnLmpvaW4oIlxuIil9fWNvbnN0IGNzPVsiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiUyIsIkIiLCJTIiwiV1MiLCJCIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkIiLCJCIiwiQiIsIlMiLCJXUyIsIk9OIiwiT04iLCJFVCIsIkVUIiwiRVQiLCJPTiIsIk9OIiwiT04iLCJPTiIsIk9OIiwiRVMiLCJDUyIsIkVTIiwiQ1MiLCJDUyIsIkVOIiwiRU4iLCJFTiIsIkVOIiwiRU4iLCJFTiIsIkVOIiwiRU4iLCJFTiIsIkVOIiwiQ1MiLCJPTiIsIk9OIiwiT04iLCJPTiIsIk9OIiwiT04iLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIk9OIiwiT04iLCJPTiIsIk9OIiwiT04iLCJPTiIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiT04iLCJPTiIsIk9OIiwiT04iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkJOIiwiQk4iLCJCTiIsIkNTIiwiT04iLCJFVCIsIkVUIiwiRVQiLCJFVCIsIk9OIiwiT04iLCJPTiIsIk9OIiwiTCIsIk9OIiwiT04iLCJCTiIsIk9OIiwiT04iLCJFVCIsIkVUIiwiRU4iLCJFTiIsIk9OIiwiTCIsIk9OIiwiT04iLCJPTiIsIkVOIiwiTCIsIk9OIiwiT04iLCJPTiIsIk9OIiwiT04iLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIk9OIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIk9OIiwiTCIsIkwiLCJMIiwiTCIsIkwiLCJMIiwiTCIsIkwiXSxocz1bIkFOIiwiQU4iLCJBTiIsIkFOIiwiQU4iLCJBTiIsIk9OIiwiT04iLCJBTCIsIkVUIiwiRVQiLCJBTCIsIkNTIiwiQUwiLCJPTiIsIk9OIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiTlNNIiwiQUwiLCJBTCIsIiIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIkFOIiwiQU4iLCJBTiIsIkFOIiwiQU4iLCJBTiIsIkFOIiwiQU4iLCJBTiIsIkFOIiwiRVQiLCJBTiIsIkFOIiwiQUwiLCJBTCIsIkFMIiwiTlNNIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiLCJBTCIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIk5TTSIsIkFOIiwiT04iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJBTCIsIkFMIiwiTlNNIiwiTlNNIiwiT04iLCJOU00iLCJOU00iLCJOU00iLCJOU00iLCJBTCIsIkFMIiwiRU4iLCJFTiIsIkVOIiwiRU4iLCJFTiIsIkVOIiwiRU4iLCJFTiIsIkVOIiwiRU4iLCJBTCIsIkFMIiwiQUwiLCJBTCIsIkFMIiwiQUwiXTtmdW5jdGlvbiBpc09kZChlKXtyZXR1cm4hISgxJmUpfWZ1bmN0aW9uIGlzRXZlbihlKXtyZXR1cm4hKDEmZSl9ZnVuY3Rpb24gZmluZFVuZXF1YWwoZSx0LG4pe2xldCBhLHI7Zm9yKGE9dCxyPWUubGVuZ3RoO2E8cjsrK2EpaWYoZVthXSE9PW4pcmV0dXJuIGE7cmV0dXJuIGF9ZnVuY3Rpb24gcmV2ZXJzZVZhbHVlcyhlLHQsbil7Zm9yKGxldCBhPXQscj1uLTE7YTxyOysrYSwtLXIpe2NvbnN0IHQ9ZVthXTtlW2FdPWVbcl07ZVtyXT10fX1mdW5jdGlvbiBjcmVhdGVCaWRpVGV4dChlLHQsbj0hMSl7bGV0IGE9Imx0ciI7bj9hPSJ0dGIiOnR8fChhPSJydGwiKTtyZXR1cm57c3RyOmUsZGlyOmF9fWNvbnN0IHVzPVtdLG1zPVtdO2Z1bmN0aW9uIGJpZGkoZSx0PS0xLG49ITEpe2xldCBhPSEwO2NvbnN0IHI9ZS5sZW5ndGg7aWYoMD09PXJ8fG4pcmV0dXJuIGNyZWF0ZUJpZGlUZXh0KGUsYSxuKTt1cy5sZW5ndGg9cjttcy5sZW5ndGg9cjtsZXQgcyxpLG89MDtmb3Iocz0wO3M8cjsrK3Mpe3VzW3NdPWUuY2hhckF0KHMpO2NvbnN0IHQ9ZS5jaGFyQ29kZUF0KHMpO2xldCBuPSJMIjtpZih0PD0yNTUpbj1jc1t0XTtlbHNlIGlmKDE0MjQ8PXQmJnQ8PTE1MjQpbj0iUiI7ZWxzZSBpZigxNTM2PD10JiZ0PD0xNzkxKXtuPWhzWzI1NSZ0XTtufHx3YXJuKCJCaWRpOiBpbnZhbGlkIFVuaWNvZGUgY2hhcmFjdGVyICIrdC50b1N0cmluZygxNikpfWVsc2UoMTc5Mjw9dCYmdDw9MjIyMHx8NjQzMzY8PXQmJnQ8PTY1MDIzfHw2NTEzNjw9dCYmdDw9NjUyNzkpJiYobj0iQUwiKTsiUiIhPT1uJiYiQUwiIT09biYmIkFOIiE9PW58fG8rKzttc1tzXT1ufWlmKDA9PT1vKXthPSEwO3JldHVybiBjcmVhdGVCaWRpVGV4dChlLGEpfWlmKC0xPT09dClpZihvL3I8LjMmJnI+NCl7YT0hMDt0PTB9ZWxzZXthPSExO3Q9MX1jb25zdCBsPVtdO2ZvcihzPTA7czxyOysrcylsW3NdPXQ7Y29uc3QgZj1pc09kZCh0KT8iUiI6IkwiLGM9ZixoPWM7bGV0IHUsbT1jO2ZvcihzPTA7czxyOysrcykiTlNNIj09PW1zW3NdP21zW3NdPW06bT1tc1tzXTttPWM7Zm9yKHM9MDtzPHI7KytzKXt1PW1zW3NdOyJFTiI9PT11P21zW3NdPSJBTCI9PT1tPyJBTiI6IkVOIjoiUiIhPT11JiYiTCIhPT11JiYiQUwiIT09dXx8KG09dSl9Zm9yKHM9MDtzPHI7KytzKXt1PW1zW3NdOyJBTCI9PT11JiYobXNbc109IlIiKX1mb3Iocz0xO3M8ci0xOysrcyl7IkVTIj09PW1zW3NdJiYiRU4iPT09bXNbcy0xXSYmIkVOIj09PW1zW3MrMV0mJihtc1tzXT0iRU4iKTsiQ1MiIT09bXNbc118fCJFTiIhPT1tc1tzLTFdJiYiQU4iIT09bXNbcy0xXXx8bXNbcysxXSE9PW1zW3MtMV18fChtc1tzXT1tc1tzLTFdKX1mb3Iocz0wO3M8cjsrK3MpaWYoIkVOIj09PW1zW3NdKXtmb3IobGV0IGU9cy0xO2U+PTAmJiJFVCI9PT1tc1tlXTstLWUpbXNbZV09IkVOIjtmb3IobGV0IGU9cysxO2U8ciYmIkVUIj09PW1zW2VdOysrZSltc1tlXT0iRU4ifWZvcihzPTA7czxyOysrcyl7dT1tc1tzXTsiV1MiIT09dSYmIkVTIiE9PXUmJiJFVCIhPT11JiYiQ1MiIT09dXx8KG1zW3NdPSJPTiIpfW09Yztmb3Iocz0wO3M8cjsrK3Mpe3U9bXNbc107IkVOIj09PXU/bXNbc109IkwiPT09bT8iTCI6IkVOIjoiUiIhPT11JiYiTCIhPT11fHwobT11KX1mb3Iocz0wO3M8cjsrK3MpaWYoIk9OIj09PW1zW3NdKXtjb25zdCBlPWZpbmRVbmVxdWFsKG1zLHMrMSwiT04iKTtsZXQgdD1jO3M+MCYmKHQ9bXNbcy0xXSk7bGV0IG49aDtlKzE8ciYmKG49bXNbZSsxXSk7IkwiIT09dCYmKHQ9IlIiKTsiTCIhPT1uJiYobj0iUiIpO3Q9PT1uJiZtcy5maWxsKHQscyxlKTtzPWUtMX1mb3Iocz0wO3M8cjsrK3MpIk9OIj09PW1zW3NdJiYobXNbc109Zik7Zm9yKHM9MDtzPHI7KytzKXt1PW1zW3NdO2lzRXZlbihsW3NdKT8iUiI9PT11P2xbc10rPTE6IkFOIiE9PXUmJiJFTiIhPT11fHwobFtzXSs9Mik6IkwiIT09dSYmIkFOIiE9PXUmJiJFTiIhPT11fHwobFtzXSs9MSl9bGV0IHAsZD0tMSxnPTk5O2ZvcihzPTAsaT1sLmxlbmd0aDtzPGk7KytzKXtwPWxbc107ZDxwJiYoZD1wKTtnPnAmJmlzT2RkKHApJiYoZz1wKX1mb3IocD1kO3A+PWc7LS1wKXtsZXQgZT0tMTtmb3Iocz0wLGk9bC5sZW5ndGg7czxpOysrcylpZihsW3NdPHApe2lmKGU+PTApe3JldmVyc2VWYWx1ZXModXMsZSxzKTtlPS0xfX1lbHNlIGU8MCYmKGU9cyk7ZT49MCYmcmV2ZXJzZVZhbHVlcyh1cyxlLGwubGVuZ3RoKX1mb3Iocz0wLGk9dXMubGVuZ3RoO3M8aTsrK3Mpe2NvbnN0IGU9dXNbc107IjwiIT09ZSYmIj4iIT09ZXx8KHVzW3NdPSIiKX1yZXR1cm4gY3JlYXRlQmlkaVRleHQodXMuam9pbigiIiksYSl9Y29uc3QgcHM9e3N0eWxlOiJub3JtYWwiLHdlaWdodDoibm9ybWFsIn0sZHM9e3N0eWxlOiJub3JtYWwiLHdlaWdodDoiYm9sZCJ9LGdzPXtzdHlsZToiaXRhbGljIix3ZWlnaHQ6Im5vcm1hbCJ9LGJzPXtzdHlsZToiaXRhbGljIix3ZWlnaHQ6ImJvbGQifSx3cz1uZXcgTWFwKFtbIlRpbWVzLVJvbWFuIix7bG9jYWw6WyJUaW1lcyBOZXcgUm9tYW4iLCJUaW1lcy1Sb21hbiIsIlRpbWVzIiwiTGliZXJhdGlvbiBTZXJpZiIsIk5pbWJ1cyBSb21hbiIsIk5pbWJ1cyBSb21hbiBMIiwiVGlub3MiLCJUaG9ybmRhbGUiLCJUZVggR3lyZSBUZXJtZXMiLCJGcmVlU2VyaWYiLCJMaW51eCBMaWJlcnRpbmUgTyIsIkxpYmVydGludXMgU2VyaWYiLCJQVCBBc3RyYSBTZXJpZiIsIkRlamFWdSBTZXJpZiIsIkJpdHN0cmVhbSBWZXJhIFNlcmlmIiwiVWJ1bnR1Il0sc3R5bGU6cHMsdWx0aW1hdGU6InNlcmlmIn1dLFsiVGltZXMtQm9sZCIse2FsaWFzOiJUaW1lcy1Sb21hbiIsc3R5bGU6ZHMsdWx0aW1hdGU6InNlcmlmIn1dLFsiVGltZXMtSXRhbGljIix7YWxpYXM6IlRpbWVzLVJvbWFuIixzdHlsZTpncyx1bHRpbWF0ZToic2VyaWYifV0sWyJUaW1lcy1Cb2xkSXRhbGljIix7YWxpYXM6IlRpbWVzLVJvbWFuIixzdHlsZTpicyx1bHRpbWF0ZToic2VyaWYifV0sWyJIZWx2ZXRpY2EiLHtsb2NhbDpbIkhlbHZldGljYSIsIkhlbHZldGljYSBOZXVlIiwiQXJpYWwiLCJBcmlhbCBOb3ZhIiwiTGliZXJhdGlvbiBTYW5zIiwiQXJpbW8iLCJOaW1idXMgU2FucyIsIk5pbWJ1cyBTYW5zIEwiLCJBMDMwIiwiVGVYIEd5cmUgSGVyb3MiLCJGcmVlU2FucyIsIkRlamFWdSBTYW5zIiwiQWxiYW55IiwiQml0c3RyZWFtIFZlcmEgU2FucyIsIkFyaWFsIFVuaWNvZGUgTVMiLCJNaWNyb3NvZnQgU2FucyBTZXJpZiIsIkFwcGxlIFN5bWJvbHMiLCJDYW50YXJlbGwiXSxwYXRoOiJMaWJlcmF0aW9uU2Fucy1SZWd1bGFyLnR0ZiIsc3R5bGU6cHMsdWx0aW1hdGU6InNhbnMtc2VyaWYifV0sWyJIZWx2ZXRpY2EtQm9sZCIse2FsaWFzOiJIZWx2ZXRpY2EiLHBhdGg6IkxpYmVyYXRpb25TYW5zLUJvbGQudHRmIixzdHlsZTpkcyx1bHRpbWF0ZToic2Fucy1zZXJpZiJ9XSxbIkhlbHZldGljYS1PYmxpcXVlIix7YWxpYXM6IkhlbHZldGljYSIscGF0aDoiTGliZXJhdGlvblNhbnMtSXRhbGljLnR0ZiIsc3R5bGU6Z3MsdWx0aW1hdGU6InNhbnMtc2VyaWYifV0sWyJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUiLHthbGlhczoiSGVsdmV0aWNhIixwYXRoOiJMaWJlcmF0aW9uU2Fucy1Cb2xkSXRhbGljLnR0ZiIsc3R5bGU6YnMsdWx0aW1hdGU6InNhbnMtc2VyaWYifV0sWyJDb3VyaWVyIix7bG9jYWw6WyJDb3VyaWVyIiwiQ291cmllciBOZXciLCJMaWJlcmF0aW9uIE1vbm8iLCJOaW1idXMgTW9ubyIsIk5pbWJ1cyBNb25vIEwiLCJDb3VzaW5lIiwiQ3VtYmVybGFuZCIsIlRlWCBHeXJlIEN1cnNvciIsIkZyZWVNb25vIiwiTGludXggTGliZXJ0aW5lIE1vbm8gTyIsIkxpYmVydGludXMgTW9ubyJdLHN0eWxlOnBzLHVsdGltYXRlOiJtb25vc3BhY2UifV0sWyJDb3VyaWVyLUJvbGQiLHthbGlhczoiQ291cmllciIsc3R5bGU6ZHMsdWx0aW1hdGU6Im1vbm9zcGFjZSJ9XSxbIkNvdXJpZXItT2JsaXF1ZSIse2FsaWFzOiJDb3VyaWVyIixzdHlsZTpncyx1bHRpbWF0ZToibW9ub3NwYWNlIn1dLFsiQ291cmllci1Cb2xkT2JsaXF1ZSIse2FsaWFzOiJDb3VyaWVyIixzdHlsZTpicyx1bHRpbWF0ZToibW9ub3NwYWNlIn1dLFsiQXJpYWxCbGFjayIse2xvY2FsOlsiQXJpYWwgQmxhY2siXSxzdHlsZTp7c3R5bGU6Im5vcm1hbCIsd2VpZ2h0OiI5MDAifSxmYWxsYmFjazoiSGVsdmV0aWNhLUJvbGQifV0sWyJBcmlhbEJsYWNrLUJvbGQiLHthbGlhczoiQXJpYWxCbGFjayJ9XSxbIkFyaWFsQmxhY2stSXRhbGljIix7YWxpYXM6IkFyaWFsQmxhY2siLHN0eWxlOntzdHlsZToiaXRhbGljIix3ZWlnaHQ6IjkwMCJ9LGZhbGxiYWNrOiJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUifV0sWyJBcmlhbEJsYWNrLUJvbGRJdGFsaWMiLHthbGlhczoiQXJpYWxCbGFjay1JdGFsaWMifV0sWyJBcmlhbE5hcnJvdyIse2xvY2FsOlsiQXJpYWwgTmFycm93IiwiTGliZXJhdGlvbiBTYW5zIE5hcnJvdyIsIkhlbHZldGljYSBDb25kZW5zZWQiLCJOaW1idXMgU2FucyBOYXJyb3ciLCJUZVggR3lyZSBIZXJvcyBDbiJdLHN0eWxlOnBzLGZhbGxiYWNrOiJIZWx2ZXRpY2EifV0sWyJBcmlhbE5hcnJvdy1Cb2xkIix7YWxpYXM6IkFyaWFsTmFycm93IixzdHlsZTpkcyxmYWxsYmFjazoiSGVsdmV0aWNhLUJvbGQifV0sWyJBcmlhbE5hcnJvdy1JdGFsaWMiLHthbGlhczoiQXJpYWxOYXJyb3ciLHN0eWxlOmdzLGZhbGxiYWNrOiJIZWx2ZXRpY2EtT2JsaXF1ZSJ9XSxbIkFyaWFsTmFycm93LUJvbGRJdGFsaWMiLHthbGlhczoiQXJpYWxOYXJyb3ciLHN0eWxlOmJzLGZhbGxiYWNrOiJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUifV0sWyJDYWxpYnJpIix7bG9jYWw6WyJDYWxpYnJpIiwiQ2FybGl0byJdLHN0eWxlOnBzLGZhbGxiYWNrOiJIZWx2ZXRpY2EifV0sWyJDYWxpYnJpLUJvbGQiLHthbGlhczoiQ2FsaWJyaSIsc3R5bGU6ZHMsZmFsbGJhY2s6IkhlbHZldGljYS1Cb2xkIn1dLFsiQ2FsaWJyaS1JdGFsaWMiLHthbGlhczoiQ2FsaWJyaSIsc3R5bGU6Z3MsZmFsbGJhY2s6IkhlbHZldGljYS1PYmxpcXVlIn1dLFsiQ2FsaWJyaS1Cb2xkSXRhbGljIix7YWxpYXM6IkNhbGlicmkiLHN0eWxlOmJzLGZhbGxiYWNrOiJIZWx2ZXRpY2EtQm9sZE9ibGlxdWUifV0sWyJXaW5nZGluZ3MiLHtsb2NhbDpbIldpbmdkaW5ncyIsIlVSVyBEaW5nYmF0cyJdLHN0eWxlOnBzfV0sWyJXaW5nZGluZ3MtUmVndWxhciIse2FsaWFzOiJXaW5nZGluZ3MifV0sWyJXaW5nZGluZ3MtQm9sZCIse2FsaWFzOiJXaW5nZGluZ3MifV0sWyLDi8OOw4zDpSIse2xvY2FsOlsiU2ltU3VuIiwiU2ltU3VuIFJlZ3VsYXIiLCJOU2ltU3VuIl0sc3R5bGU6cHMsdWx0aW1hdGU6InNlcmlmIn1dLFsiwrrDmsOMw6UiLHtsb2NhbDpbIlNpbUhlaSIsIlNpbUhlaSBSZWd1bGFyIl0sc3R5bGU6cHMsdWx0aW1hdGU6InNhbnMtc2VyaWYifV0sWyLCv8Ksw4zDpSIse2xvY2FsOlsiS2FpVGkiLCJTaW1LYWkiLCJTaW1LYWkgUmVndWxhciJdLHN0eWxlOnBzLHVsdGltYXRlOiJzYW5zLXNlcmlmIn1dLFsiwrfDgsOLw44iLHtsb2NhbDpbIkZhbmdTb25nIiwiU2ltRmFuZyIsIlNpbUZhbmcgUmVndWxhciJdLHN0eWxlOnBzLHVsdGltYXRlOiJzZXJpZiJ9XSxbIsK/wqzDjMOlX0dCMjMxMiIse2FsaWFzOiLCv8Ksw4zDpSJ9XSxbIsK3w4LDi8OOX0dCMjMxMiIse2FsaWFzOiLCt8OCw4vDjiJ9XSxbIsOBwqXDisOpIix7bG9jYWw6WyJTaW1MaSIsIlNpbUxpIFJlZ3VsYXIiXSxzdHlsZTpwcyx1bHRpbWF0ZToic2VyaWYifV0sWyLDkMOCw4vDjiIse2FsaWFzOiLDi8OOw4zDpSJ9XV0pLGpzPW5ldyBNYXAoW1siQXJpYWwtQmxhY2siLCJBcmlhbEJsYWNrIl1dKTtmdW5jdGlvbiBnZXRGYW1pbHlOYW1lKGUpe2NvbnN0IHQ9bmV3IFNldChbInRoaW4iLCJleHRyYWxpZ2h0IiwidWx0cmFsaWdodCIsImRlbWlsaWdodCIsInNlbWlsaWdodCIsImxpZ2h0IiwiYm9vayIsInJlZ3VsYXIiLCJub3JtYWwiLCJtZWRpdW0iLCJkZW1pYm9sZCIsInNlbWlib2xkIiwiYm9sZCIsImV4dHJhYm9sZCIsInVsdHJhYm9sZCIsImJsYWNrIiwiaGVhdnkiLCJleHRyYWJsYWNrIiwidWx0cmFibGFjayIsInJvbWFuIiwiaXRhbGljIiwib2JsaXF1ZSIsInVsdHJhY29uZGVuc2VkIiwiZXh0cmFjb25kZW5zZWQiLCJjb25kZW5zZWQiLCJzZW1pY29uZGVuc2VkIiwibm9ybWFsIiwic2VtaWV4cGFuZGVkIiwiZXhwYW5kZWQiLCJleHRyYWV4cGFuZGVkIiwidWx0cmFleHBhbmRlZCIsImJvbGRpdGFsaWMiXSk7cmV0dXJuIGUuc3BsaXQoL1stICwrXSsvZykuZmlsdGVyKGU9PiF0LmhhcyhlLnRvTG93ZXJDYXNlKCkpKS5qb2luKCIgIil9ZnVuY3Rpb24gZ2VuZXJhdGVGb250KHthbGlhczplLGxvY2FsOnQscGF0aDpuLGZhbGxiYWNrOmEsc3R5bGU6cix1bHRpbWF0ZTpzfSxpLG8sbD0hMCxmPSEwLGM9IiIpe2NvbnN0IGg9e3N0eWxlOm51bGwsdWx0aW1hdGU6bnVsbH07aWYodCl7Y29uc3QgZT1jP2AgJHtjfWA6IiI7Zm9yKGNvbnN0IG4gb2YgdClpLnB1c2goYGxvY2FsKCR7bn0ke2V9KWApfWlmKGUpe2NvbnN0IHQ9d3MuZ2V0KGUpLHM9Y3x8ZnVuY3Rpb24gZ2V0U3R5bGVUb0FwcGVuZChlKXtzd2l0Y2goZSl7Y2FzZSBkczpyZXR1cm4iQm9sZCI7Y2FzZSBnczpyZXR1cm4iSXRhbGljIjtjYXNlIGJzOnJldHVybiJCb2xkIEl0YWxpYyI7ZGVmYXVsdDppZigiYm9sZCI9PT1lPy53ZWlnaHQpcmV0dXJuIkJvbGQiO2lmKCJpdGFsaWMiPT09ZT8uc3R5bGUpcmV0dXJuIkl0YWxpYyJ9cmV0dXJuIiJ9KHIpO09iamVjdC5hc3NpZ24oaCxnZW5lcmF0ZUZvbnQodCxpLG8sbCYmIWEsZiYmIW4scykpfXImJihoLnN0eWxlPXIpO3MmJihoLnVsdGltYXRlPXMpO2lmKGwmJmEpe2NvbnN0IGU9d3MuZ2V0KGEpLHt1bHRpbWF0ZTp0fT1nZW5lcmF0ZUZvbnQoZSxpLG8sbCxmJiYhbixjKTtoLnVsdGltYXRlfHw9dH1mJiZuJiZvJiZpLnB1c2goYHVybCgke299JHtufSlgKTtyZXR1cm4gaH1mdW5jdGlvbiBnZXRGb250U3Vic3RpdHV0aW9uKGUsdCxuLGEscixzKXtpZihhLnN0YXJ0c1dpdGgoIkludmFsaWRQREZqc0ZvbnRfIikpcmV0dXJuIG51bGw7IlRydWVUeXBlIiE9PXMmJiJUeXBlMSIhPT1zfHwhL15bQS1aXXs2fVwrLy50ZXN0KGEpfHwoYT1hLnNsaWNlKDcpKTtjb25zdCBpPWE9bm9ybWFsaXplRm9udE5hbWUoYSk7bGV0IG89ZS5nZXQoaSk7aWYobylyZXR1cm4gbztsZXQgbD13cy5nZXQoYSk7aWYoIWwpZm9yKGNvbnN0W2UsdF1vZiBqcylpZihhLnN0YXJ0c1dpdGgoZSkpe2E9YCR7dH0ke2Euc3Vic3RyaW5nKGUubGVuZ3RoKX1gO2w9d3MuZ2V0KGEpO2JyZWFrfWxldCBmPSExO2lmKCFsKXtsPXdzLmdldChyKTtmPSEwfWNvbnN0IGM9YCR7dC5nZXREb2NJZCgpfV9zJHt0LmNyZWF0ZUZvbnRJZCgpfWA7aWYoIWwpe2lmKCF2YWxpZGF0ZUZvbnROYW1lKGEpKXt3YXJuKGBDYW5ub3Qgc3Vic3RpdHV0ZSB0aGUgZm9udCBiZWNhdXNlIG9mIGl0cyBuYW1lOiAke2F9YCk7ZS5zZXQoaSxudWxsKTtyZXR1cm4gbnVsbH1jb25zdCB0PS9ib2xkL2dpLnRlc3QoYSksbj0vb2JsaXF1ZXxpdGFsaWMvZ2kudGVzdChhKSxyPXQmJm4mJmJzfHx0JiZkc3x8biYmZ3N8fHBzO289e2NzczpgIiR7Z2V0RmFtaWx5TmFtZShhKX0iLCR7Y31gLGd1ZXNzRmFsbGJhY2s6ITAsbG9hZGVkTmFtZTpjLGJhc2VGb250TmFtZTphLHNyYzpgbG9jYWwoJHthfSlgLHN0eWxlOnJ9O2Uuc2V0KGksbyk7cmV0dXJuIG99Y29uc3QgaD1bXTtmJiZ2YWxpZGF0ZUZvbnROYW1lKGEpJiZoLnB1c2goYGxvY2FsKCR7YX0pYCk7Y29uc3R7c3R5bGU6dSx1bHRpbWF0ZTptfT1nZW5lcmF0ZUZvbnQobCxoLG4pLHA9bnVsbD09PW0sZD1wPyIiOmAsJHttfWA7bz17Y3NzOmAiJHtnZXRGYW1pbHlOYW1lKGEpfSIsJHtjfSR7ZH1gLGd1ZXNzRmFsbGJhY2s6cCxsb2FkZWROYW1lOmMsYmFzZUZvbnROYW1lOmEsc3JjOmguam9pbigiLCIpLHN0eWxlOnV9O2Uuc2V0KGksbyk7cmV0dXJuIG99Y29uc3Qga3M9MzI4NTM3NzUyMCx5cz00Mjk0OTAxNzYwLHFzPTY1NTM1O2NsYXNzIE11cm11ckhhc2gzXzY0e2NvbnN0cnVjdG9yKGUpe3RoaXMuaDE9ZT80Mjk0OTY3Mjk1JmU6a3M7dGhpcy5oMj1lPzQyOTQ5NjcyOTUmZTprc311cGRhdGUoZSl7bGV0IHQsbjtpZigic3RyaW5nIj09dHlwZW9mIGUpe3Q9bmV3IFVpbnQ4QXJyYXkoMiplLmxlbmd0aCk7bj0wO2ZvcihsZXQgYT0wLHI9ZS5sZW5ndGg7YTxyO2ErKyl7Y29uc3Qgcj1lLmNoYXJDb2RlQXQoYSk7aWYocjw9MjU1KXRbbisrXT1yO2Vsc2V7dFtuKytdPXI+Pj44O3RbbisrXT0yNTUmcn19fWVsc2V7aWYoIUFycmF5QnVmZmVyLmlzVmlldyhlKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgZGF0YSBmb3JtYXQsIG11c3QgYmUgYSBzdHJpbmcgb3IgVHlwZWRBcnJheS4iKTt0PWUuc2xpY2UoKTtuPXQuYnl0ZUxlbmd0aH1jb25zdCBhPW4+PjIscj1uLTQqYSxzPW5ldyBVaW50MzJBcnJheSh0LmJ1ZmZlciwwLGEpO2xldCBpPTAsbz0wLGw9dGhpcy5oMSxmPXRoaXMuaDI7Y29uc3QgYz0zNDMyOTE4MzUzLGg9NDYxODQ1OTA3LHU9MTE2MDEsbT0xMzcxNTtmb3IobGV0IGU9MDtlPGE7ZSsrKWlmKDEmZSl7aT1zW2VdO2k9aSpjJnlzfGkqdSZxcztpPWk8PDE1fGk+Pj4xNztpPWkqaCZ5c3xpKm0mcXM7bF49aTtsPWw8PDEzfGw+Pj4xOTtsPTUqbCszODY0MjkyMTk2fWVsc2V7bz1zW2VdO289bypjJnlzfG8qdSZxcztvPW88PDE1fG8+Pj4xNztvPW8qaCZ5c3xvKm0mcXM7Zl49bztmPWY8PDEzfGY+Pj4xOTtmPTUqZiszODY0MjkyMTk2fWk9MDtzd2l0Y2gocil7Y2FzZSAzOmlePXRbNCphKzJdPDwxNjtjYXNlIDI6aV49dFs0KmErMV08PDg7Y2FzZSAxOmlePXRbNCphXTtpPWkqYyZ5c3xpKnUmcXM7aT1pPDwxNXxpPj4+MTc7aT1pKmgmeXN8aSptJnFzOzEmYT9sXj1pOmZePWl9dGhpcy5oMT1sO3RoaXMuaDI9Zn1oZXhkaWdlc3QoKXtsZXQgZT10aGlzLmgxLHQ9dGhpcy5oMjtlXj10Pj4+MTtlPTM5ODE4MDY3OTcqZSZ5c3wzNjA0NSplJnFzO3Q9NDI4MzU0MzUxMSp0JnlzfCgyOTUwMTYzNzk3Kih0PDwxNnxlPj4+MTYpJnlzKT4+PjE2O2VePXQ+Pj4xO2U9NDQ0OTg0NDAzKmUmeXN8NjA0OTkqZSZxczt0PTMzMDE4ODIzNjYqdCZ5c3woMzEyMDQzNzg5MyoodDw8MTZ8ZT4+PjE2KSZ5cyk+Pj4xNjtlXj10Pj4+MTtyZXR1cm4oZT4+PjApLnRvU3RyaW5nKDE2KS5wYWRTdGFydCg4LCIwIikrKHQ+Pj4wKS50b1N0cmluZygxNikucGFkU3RhcnQoOCwiMCIpfX1mdW5jdGlvbiByZXNpemVJbWFnZU1hc2soZSx0LG4sYSxyLHMpe2NvbnN0IGk9cipzO2xldCBvO289dDw9OD9uZXcgVWludDhBcnJheShpKTp0PD0xNj9uZXcgVWludDE2QXJyYXkoaSk6bmV3IFVpbnQzMkFycmF5KGkpO2NvbnN0IGw9bi9yLGY9YS9zO2xldCBjLGgsdSxtLHA9MDtjb25zdCBkPW5ldyBVaW50MTZBcnJheShyKSxnPW47Zm9yKGM9MDtjPHI7YysrKWRbY109TWF0aC5mbG9vcihjKmwpO2ZvcihjPTA7YzxzO2MrKyl7dT1NYXRoLmZsb29yKGMqZikqZztmb3IoaD0wO2g8cjtoKyspe209dStkW2hdO29bcCsrXT1lW21dfX1yZXR1cm4gb31jbGFzcyBQREZJbWFnZXtjb25zdHJ1Y3Rvcih7eHJlZjplLHJlczp0LGltYWdlOm4saXNJbmxpbmU6YT0hMSxzbWFzazpyPW51bGwsbWFzazpzPW51bGwsaXNNYXNrOmk9ITEscGRmRnVuY3Rpb25GYWN0b3J5Om8sZ2xvYmFsQ29sb3JTcGFjZUNhY2hlOmwsbG9jYWxDb2xvclNwYWNlQ2FjaGU6Zn0pe3RoaXMuaW1hZ2U9bjtjb25zdCBjPW4uZGljdCxoPWMuZ2V0KCJGIiwiRmlsdGVyIik7bGV0IHU7aWYoaCBpbnN0YW5jZW9mIE5hbWUpdT1oLm5hbWU7ZWxzZSBpZihBcnJheS5pc0FycmF5KGgpKXtjb25zdCB0PWUuZmV0Y2hJZlJlZihoWzBdKTt0IGluc3RhbmNlb2YgTmFtZSYmKHU9dC5uYW1lKX1zd2l0Y2godSl7Y2FzZSJKUFhEZWNvZGUiOih7d2lkdGg6bi53aWR0aCxoZWlnaHQ6bi5oZWlnaHQsY29tcG9uZW50c0NvdW50Om4ubnVtQ29tcHMsYml0c1BlckNvbXBvbmVudDpuLmJpdHNQZXJDb21wb25lbnR9PUpweEltYWdlLnBhcnNlSW1hZ2VQcm9wZXJ0aWVzKG4uc3RyZWFtKSk7bi5zdHJlYW0ucmVzZXQoKTtjb25zdCBlPUltYWdlUmVzaXplci5nZXRSZWR1Y2VQb3dlckZvckpQWChuLndpZHRoLG4uaGVpZ2h0LG4ubnVtQ29tcHMpO3RoaXMuanB4RGVjb2Rlck9wdGlvbnM9e251bUNvbXBvbmVudHM6MCxpc0luZGV4ZWRDb2xvcm1hcDohMSxzbWFza0luRGF0YTpjLmhhcygiU01hc2tJbkRhdGEiKSxyZWR1Y2VQb3dlcjplfTtpZihlKXtjb25zdCB0PTIqKmU7bi53aWR0aD1NYXRoLmNlaWwobi53aWR0aC90KTtuLmhlaWdodD1NYXRoLmNlaWwobi5oZWlnaHQvdCl9YnJlYWs7Y2FzZSJKQklHMkRlY29kZSI6bi5iaXRzUGVyQ29tcG9uZW50PTE7bi5udW1Db21wcz0xfWxldCBtPWMuZ2V0KCJXIiwiV2lkdGgiKSxwPWMuZ2V0KCJIIiwiSGVpZ2h0Iik7aWYoTnVtYmVyLmlzSW50ZWdlcihuLndpZHRoKSYmbi53aWR0aD4wJiZOdW1iZXIuaXNJbnRlZ2VyKG4uaGVpZ2h0KSYmbi5oZWlnaHQ+MCYmKG4ud2lkdGghPT1tfHxuLmhlaWdodCE9PXApKXt3YXJuKCJQREZJbWFnZSAtIHVzaW5nIHRoZSBXaWR0aC9IZWlnaHQgb2YgdGhlIGltYWdlIGRhdGEsIHJhdGhlciB0aGFuIHRoZSBpbWFnZSBkaWN0aW9uYXJ5LiIpO209bi53aWR0aDtwPW4uaGVpZ2h0fWVsc2V7Y29uc3QgZT0ibnVtYmVyIj09dHlwZW9mIG0mJm0+MCx0PSJudW1iZXIiPT10eXBlb2YgcCYmcD4wO2lmKCFlfHwhdCl7aWYoIW4uZmFsbGJhY2tEaW1zKXRocm93IG5ldyBGb3JtYXRFcnJvcihgSW52YWxpZCBpbWFnZSB3aWR0aDogJHttfSBvciBoZWlnaHQ6ICR7cH1gKTt3YXJuKCJQREZJbWFnZSAtIHVzaW5nIHRoZSBXaWR0aC9IZWlnaHQgb2YgdGhlIHBhcmVudCBpbWFnZSwgZm9yIFNNYXNrL01hc2sgZGF0YS4iKTtlfHwobT1uLmZhbGxiYWNrRGltcy53aWR0aCk7dHx8KHA9bi5mYWxsYmFja0RpbXMuaGVpZ2h0KX19dGhpcy53aWR0aD1tO3RoaXMuaGVpZ2h0PXA7dGhpcy5pbnRlcnBvbGF0ZT1jLmdldCgiSSIsIkludGVycG9sYXRlIik7dGhpcy5pbWFnZU1hc2s9Yy5nZXQoIklNIiwiSW1hZ2VNYXNrIil8fCExO3RoaXMubWF0dGU9Yy5nZXQoIk1hdHRlIil8fCExO2xldCBkPW4uYml0c1BlckNvbXBvbmVudDtpZighZCl7ZD1jLmdldCgiQlBDIiwiQml0c1BlckNvbXBvbmVudCIpO2lmKCFkKXtpZighdGhpcy5pbWFnZU1hc2spdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBCaXRzIHBlciBjb21wb25lbnQgbWlzc2luZyBpbiBpbWFnZTogJHt0aGlzLmltYWdlTWFza31gKTtkPTF9fXRoaXMuYnBjPWQ7aWYoIXRoaXMuaW1hZ2VNYXNrKXtsZXQgcj1jLmdldFJhdygiQ1MiKXx8Yy5nZXRSYXcoIkNvbG9yU3BhY2UiKTtjb25zdCBzPSEhcjtpZihzKXRoaXMuanB4RGVjb2Rlck9wdGlvbnM/LnNtYXNrSW5EYXRhJiYocj1OYW1lLmdldCgiRGV2aWNlUkdCQSIpKTtlbHNlIGlmKHRoaXMuanB4RGVjb2Rlck9wdGlvbnMpcj1OYW1lLmdldCgiRGV2aWNlUkdCQSIpO2Vsc2Ugc3dpdGNoKG4ubnVtQ29tcHMpe2Nhc2UgMTpyPU5hbWUuZ2V0KCJEZXZpY2VHcmF5Iik7YnJlYWs7Y2FzZSAzOnI9TmFtZS5nZXQoIkRldmljZVJHQiIpO2JyZWFrO2Nhc2UgNDpyPU5hbWUuZ2V0KCJEZXZpY2VDTVlLIik7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYEltYWdlcyB3aXRoICR7bi5udW1Db21wc30gY29sb3IgY29tcG9uZW50cyBub3Qgc3VwcG9ydGVkLmApfXRoaXMuY29sb3JTcGFjZT1Db2xvclNwYWNlVXRpbHMucGFyc2Uoe2NzOnIseHJlZjplLHJlc291cmNlczphP3Q6bnVsbCxwZGZGdW5jdGlvbkZhY3Rvcnk6byxnbG9iYWxDb2xvclNwYWNlQ2FjaGU6bCxsb2NhbENvbG9yU3BhY2VDYWNoZTpmfSk7dGhpcy5udW1Db21wcz10aGlzLmNvbG9yU3BhY2UubnVtQ29tcHM7aWYodGhpcy5qcHhEZWNvZGVyT3B0aW9ucyl7dGhpcy5qcHhEZWNvZGVyT3B0aW9ucy5udW1Db21wb25lbnRzPXM/dGhpcy5udW1Db21wczowO3RoaXMuanB4RGVjb2Rlck9wdGlvbnMuaXNJbmRleGVkQ29sb3JtYXA9IkluZGV4ZWQiPT09dGhpcy5jb2xvclNwYWNlLm5hbWV9fXRoaXMuZGVjb2RlPWMuZ2V0QXJyYXkoIkQiLCJEZWNvZGUiKTt0aGlzLm5lZWRzRGVjb2RlPSExO2lmKHRoaXMuZGVjb2RlJiYodGhpcy5jb2xvclNwYWNlJiYhdGhpcy5jb2xvclNwYWNlLmlzRGVmYXVsdERlY29kZSh0aGlzLmRlY29kZSxkKXx8aSYmIUNvbG9yU3BhY2UuaXNEZWZhdWx0RGVjb2RlKHRoaXMuZGVjb2RlLDEpKSl7dGhpcy5uZWVkc0RlY29kZT0hMDtjb25zdCBlPSgxPDxkKS0xO3RoaXMuZGVjb2RlQ29lZmZpY2llbnRzPVtdO3RoaXMuZGVjb2RlQWRkZW5kcz1bXTtjb25zdCB0PSJJbmRleGVkIj09PXRoaXMuY29sb3JTcGFjZT8ubmFtZTtmb3IobGV0IG49MCxhPTA7bjx0aGlzLmRlY29kZS5sZW5ndGg7bis9MiwrK2Epe2NvbnN0IHI9dGhpcy5kZWNvZGVbbl0scz10aGlzLmRlY29kZVtuKzFdO3RoaXMuZGVjb2RlQ29lZmZpY2llbnRzW2FdPXQ/KHMtcikvZTpzLXI7dGhpcy5kZWNvZGVBZGRlbmRzW2FdPXQ/cjplKnJ9fWlmKHIpe3IuZmFsbGJhY2tEaW1zPz89e3dpZHRoOm0saGVpZ2h0OnB9O3RoaXMuc21hc2s9bmV3IFBERkltYWdlKHt4cmVmOmUscmVzOnQsaW1hZ2U6cixpc0lubGluZTphLHBkZkZ1bmN0aW9uRmFjdG9yeTpvLGdsb2JhbENvbG9yU3BhY2VDYWNoZTpsLGxvY2FsQ29sb3JTcGFjZUNhY2hlOmZ9KX1lbHNlIGlmKHMpaWYocyBpbnN0YW5jZW9mIEJhc2VTdHJlYW0pe2lmKHMuZGljdC5nZXQoIklNIiwiSW1hZ2VNYXNrIikpe3MuZmFsbGJhY2tEaW1zPz89e3dpZHRoOm0saGVpZ2h0OnB9O3RoaXMubWFzaz1uZXcgUERGSW1hZ2Uoe3hyZWY6ZSxyZXM6dCxpbWFnZTpzLGlzSW5saW5lOmEsaXNNYXNrOiEwLHBkZkZ1bmN0aW9uRmFjdG9yeTpvLGdsb2JhbENvbG9yU3BhY2VDYWNoZTpsLGxvY2FsQ29sb3JTcGFjZUNhY2hlOmZ9KX1lbHNlIHdhcm4oIklnbm9yaW5nIC9NYXNrIGluIGltYWdlIHdpdGhvdXQgL0ltYWdlTWFzay4iKX1lbHNlIHRoaXMubWFzaz1zfXN0YXRpYyBhc3luYyBidWlsZEltYWdlKHt4cmVmOmUscmVzOnQsaW1hZ2U6bixpc0lubGluZTphPSExLHBkZkZ1bmN0aW9uRmFjdG9yeTpyLGdsb2JhbENvbG9yU3BhY2VDYWNoZTpzLGxvY2FsQ29sb3JTcGFjZUNhY2hlOml9KXtjb25zdCBvPW47bGV0IGw9bnVsbCxmPW51bGw7Y29uc3QgYz1uLmRpY3QuZ2V0KCJTTWFzayIpLGg9bi5kaWN0LmdldCgiTWFzayIpO2M/YyBpbnN0YW5jZW9mIEJhc2VTdHJlYW0/bD1jOndhcm4oIlVuc3VwcG9ydGVkIC9TTWFzayBmb3JtYXQuIik6aCYmKGggaW5zdGFuY2VvZiBCYXNlU3RyZWFtfHxBcnJheS5pc0FycmF5KGgpP2Y9aDp3YXJuKCJVbnN1cHBvcnRlZCAvTWFzayBmb3JtYXQuIikpO3JldHVybiBuZXcgUERGSW1hZ2Uoe3hyZWY6ZSxyZXM6dCxpbWFnZTpvLGlzSW5saW5lOmEsc21hc2s6bCxtYXNrOmYscGRmRnVuY3Rpb25GYWN0b3J5OnIsZ2xvYmFsQ29sb3JTcGFjZUNhY2hlOnMsbG9jYWxDb2xvclNwYWNlQ2FjaGU6aX0pfXN0YXRpYyBhc3luYyBjcmVhdGVNYXNrKHtpbWFnZTplLGlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkOnQ9ITF9KXtjb25zdHtkaWN0Om59PWUsYT1uLmdldCgiVyIsIldpZHRoIikscj1uLmdldCgiSCIsIkhlaWdodCIpLHM9bi5nZXQoIkkiLCJJbnRlcnBvbGF0ZSIpLGk9bi5nZXRBcnJheSgiRCIsIkRlY29kZSIpLG89aT8uWzBdPjAsbD0oYSs3Pj4zKSpyLGY9YXdhaXQgZS5nZXRJbWFnZURhdGEobCksYz0xPT09YSYmMT09PXImJm89PT0oMD09PWYubGVuZ3RofHwhISgxMjgmZlswXSkpO2lmKGMpcmV0dXJue2lzU2luZ2xlT3BhcXVlUGl4ZWw6Y307aWYodCl7aWYoSW1hZ2VSZXNpemVyLm5lZWRzVG9CZVJlc2l6ZWQoYSxyKSl7Y29uc3QgZT1uZXcgVWludDhDbGFtcGVkQXJyYXkoYSpyKjQpO2NvbnZlcnRCbGFja0FuZFdoaXRlVG9SR0JBKHtzcmM6ZixkZXN0OmUsd2lkdGg6YSxoZWlnaHQ6cixub25CbGFja0NvbG9yOjAsaW52ZXJzZURlY29kZTpvfSk7cmV0dXJuIEltYWdlUmVzaXplci5jcmVhdGVJbWFnZSh7a2luZDpSLGRhdGE6ZSx3aWR0aDphLGhlaWdodDpyLGludGVycG9sYXRlOnN9KX1jb25zdCBlPW5ldyBPZmZzY3JlZW5DYW52YXMoYSxyKSx0PWUuZ2V0Q29udGV4dCgiMmQiKSxuPXQuY3JlYXRlSW1hZ2VEYXRhKGEscik7Y29udmVydEJsYWNrQW5kV2hpdGVUb1JHQkEoe3NyYzpmLGRlc3Q6bi5kYXRhLHdpZHRoOmEsaGVpZ2h0OnIsbm9uQmxhY2tDb2xvcjowLGludmVyc2VEZWNvZGU6b30pO3QucHV0SW1hZ2VEYXRhKG4sMCwwKTtyZXR1cm57ZGF0YTpudWxsLHdpZHRoOmEsaGVpZ2h0OnIsaW50ZXJwb2xhdGU6cyxiaXRtYXA6ZS50cmFuc2ZlclRvSW1hZ2VCaXRtYXAoKX19Y29uc3QgaD1mLmJ5dGVMZW5ndGg7bGV0IHU7aWYoZSBpbnN0YW5jZW9mIERlY29kZVN0cmVhbSYmKCFvfHxsPT09aCkpdT1mO2Vsc2UgaWYobyl7dT1uZXcgVWludDhBcnJheShsKTt1LnNldChmKTt1LmZpbGwoMjU1LGgpfWVsc2UgdT1uZXcgVWludDhBcnJheShmKTtpZihvKWZvcihsZXQgZT0wO2U8aDtlKyspdVtlXV49MjU1O3JldHVybntkYXRhOnUsd2lkdGg6YSxoZWlnaHQ6cixpbnRlcnBvbGF0ZTpzfX1nZXQgZHJhd1dpZHRoKCl7cmV0dXJuIE1hdGgubWF4KHRoaXMud2lkdGgsdGhpcy5zbWFzaz8ud2lkdGh8fDAsdGhpcy5tYXNrPy53aWR0aHx8MCl9Z2V0IGRyYXdIZWlnaHQoKXtyZXR1cm4gTWF0aC5tYXgodGhpcy5oZWlnaHQsdGhpcy5zbWFzaz8uaGVpZ2h0fHwwLHRoaXMubWFzaz8uaGVpZ2h0fHwwKX1kZWNvZGVCdWZmZXIoZSl7Y29uc3QgdD10aGlzLmJwYyxuPXRoaXMubnVtQ29tcHMsYT10aGlzLmRlY29kZUFkZGVuZHMscj10aGlzLmRlY29kZUNvZWZmaWNpZW50cyxzPSgxPDx0KS0xO2xldCBpLG87aWYoMT09PXQpe2ZvcihpPTAsbz1lLmxlbmd0aDtpPG87aSsrKWVbaV09KyFlW2ldO3JldHVybn1sZXQgbD0wO2ZvcihpPTAsbz10aGlzLndpZHRoKnRoaXMuaGVpZ2h0O2k8bztpKyspZm9yKGxldCB0PTA7dDxuO3QrKyl7ZVtsXT1NYXRoQ2xhbXAoYVt0XStlW2xdKnJbdF0sMCxzKTtsKyt9fWdldENvbXBvbmVudHMoZSl7Y29uc3QgdD10aGlzLmJwYztpZig4PT09dClyZXR1cm4gZTtjb25zdCBuPXRoaXMud2lkdGgsYT10aGlzLmhlaWdodCxyPXRoaXMubnVtQ29tcHMscz1uKmEqcjtsZXQgaSxvPTA7aT10PD04P25ldyBVaW50OEFycmF5KHMpOnQ8PTE2P25ldyBVaW50MTZBcnJheShzKTpuZXcgVWludDMyQXJyYXkocyk7Y29uc3QgbD1uKnIsZj0oMTw8dCktMTtsZXQgYyxoLHU9MDtpZigxPT09dCl7bGV0IHQsbixyO2ZvcihsZXQgcz0wO3M8YTtzKyspe249dSsoLTgmbCk7cj11K2w7Zm9yKDt1PG47KXtoPWVbbysrXTtpW3VdPWg+PjcmMTtpW3UrMV09aD4+NiYxO2lbdSsyXT1oPj41JjE7aVt1KzNdPWg+PjQmMTtpW3UrNF09aD4+MyYxO2lbdSs1XT1oPj4yJjE7aVt1KzZdPWg+PjEmMTtpW3UrN109MSZoO3UrPTh9aWYodTxyKXtoPWVbbysrXTt0PTEyODtmb3IoO3U8cjspe2lbdSsrXT0rISEoaCZ0KTt0Pj49MX19fX1lbHNle2xldCBuPTA7aD0wO2Zvcih1PTAsYz1zO3U8YzsrK3Upe2lmKHUlbD09PTApe2g9MDtuPTB9Zm9yKDtuPHQ7KXtoPWg8PDh8ZVtvKytdO24rPTh9Y29uc3QgYT1uLXQ7bGV0IHI9aD4+YTtyPDA/cj0wOnI+ZiYmKHI9Zik7aVt1XT1yO2gmPSgxPDxhKS0xO249YX19cmV0dXJuIGl9YXN5bmMgZmlsbE9wYWNpdHkoZSx0LG4sYSxyKXtjb25zdCBzPXRoaXMuc21hc2ssaT10aGlzLm1hc2s7bGV0IG8sbCxmLGMsaCx1O2lmKHMpe2w9cy53aWR0aDtmPXMuaGVpZ2h0O289bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGwqZik7YXdhaXQgcy5maWxsR3JheUJ1ZmZlcihvKTtsPT09dCYmZj09PW58fChvPXJlc2l6ZUltYWdlTWFzayhvLHMuYnBjLGwsZix0LG4pKX1lbHNlIGlmKGkpaWYoaSBpbnN0YW5jZW9mIFBERkltYWdlKXtsPWkud2lkdGg7Zj1pLmhlaWdodDtvPW5ldyBVaW50OENsYW1wZWRBcnJheShsKmYpO2kubnVtQ29tcHM9MTthd2FpdCBpLmZpbGxHcmF5QnVmZmVyKG8pO2ZvcihjPTAsaD1sKmY7YzxoOysrYylvW2NdPTI1NS1vW2NdO2w9PT10JiZmPT09bnx8KG89cmVzaXplSW1hZ2VNYXNrKG8saS5icGMsbCxmLHQsbikpfWVsc2V7aWYoIUFycmF5LmlzQXJyYXkoaSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJVbmtub3duIG1hc2sgZm9ybWF0LiIpO3tvPW5ldyBVaW50OENsYW1wZWRBcnJheSh0Km4pO2NvbnN0IGU9dGhpcy5udW1Db21wcztmb3IoYz0wLGg9dCpuO2M8aDsrK2Mpe2xldCB0PTA7Y29uc3Qgbj1jKmU7Zm9yKHU9MDt1PGU7Kyt1KXtjb25zdCBlPXJbbit1XSxhPTIqdTtpZihlPGlbYV18fGU+aVthKzFdKXt0PTI1NTticmVha319b1tjXT10fX19aWYobylmb3IoYz0wLHU9MyxoPXQqYTtjPGg7KytjLHUrPTQpZVt1XT1vW2NdO2Vsc2UgZm9yKGM9MCx1PTMsaD10KmE7YzxoOysrYyx1Kz00KWVbdV09MjU1fXVuZG9QcmVibGVuZChlLHQsbil7Y29uc3QgYT10aGlzLnNtYXNrPy5tYXR0ZTtpZighYSlyZXR1cm47Y29uc3Qgcj10aGlzLmNvbG9yU3BhY2UuZ2V0UmdiKGEsMCkscz1yWzBdLGk9clsxXSxvPXJbMl0sbD10Km4qNDtmb3IobGV0IHQ9MDt0PGw7dCs9NCl7Y29uc3Qgbj1lW3QrM107aWYoMD09PW4pe2VbdF09MjU1O2VbdCsxXT0yNTU7ZVt0KzJdPTI1NTtjb250aW51ZX1jb25zdCBhPTI1NS9uO2VbdF09KGVbdF0tcykqYStzO2VbdCsxXT0oZVt0KzFdLWkpKmEraTtlW3QrMl09KGVbdCsyXS1vKSphK299fWFzeW5jIGNyZWF0ZUltYWdlRGF0YShlPSExLHQ9ITEpe2NvbnN0IG49dGhpcy5kcmF3V2lkdGgsYT10aGlzLmRyYXdIZWlnaHQscj17d2lkdGg6bixoZWlnaHQ6YSxpbnRlcnBvbGF0ZTp0aGlzLmludGVycG9sYXRlLGtpbmQ6MCxkYXRhOm51bGx9LHM9dGhpcy5udW1Db21wcyxpPXRoaXMud2lkdGgsbz10aGlzLmhlaWdodCxsPXRoaXMuYnBjLGY9aSpzKmwrNz4+MyxjPXQmJkltYWdlUmVzaXplci5uZWVkc1RvQmVSZXNpemVkKG4sYSk7aWYoIXRoaXMuc21hc2smJiF0aGlzLm1hc2smJiJEZXZpY2VSR0JBIj09PXRoaXMuY29sb3JTcGFjZS5uYW1lKXtyLmtpbmQ9Ujtjb25zdCBlPXIuZGF0YT1hd2FpdCB0aGlzLmdldEltYWdlQnl0ZXMobyppKjQse30pO3JldHVybiB0P2M/SW1hZ2VSZXNpemVyLmNyZWF0ZUltYWdlKHIsITEpOnRoaXMuY3JlYXRlQml0bWFwKFIsbixhLGUpOnJ9aWYoIWUpe2xldCBlOyJEZXZpY2VHcmF5Ij09PXRoaXMuY29sb3JTcGFjZS5uYW1lJiYxPT09bD9lPVQ6IkRldmljZVJHQiIhPT10aGlzLmNvbG9yU3BhY2UubmFtZXx8OCE9PWx8fHRoaXMubmVlZHNEZWNvZGV8fChlPU8pO2lmKGUmJiF0aGlzLnNtYXNrJiYhdGhpcy5tYXNrJiZuPT09aSYmYT09PW8pe2NvbnN0IHM9YXdhaXQgdGhpcy4jaGUoaSxvKTtpZihzKXJldHVybiBzO2NvbnN0IGw9YXdhaXQgdGhpcy5nZXRJbWFnZUJ5dGVzKG8qZix7fSk7aWYodClyZXR1cm4gYz9JbWFnZVJlc2l6ZXIuY3JlYXRlSW1hZ2Uoe2RhdGE6bCxraW5kOmUsd2lkdGg6bixoZWlnaHQ6YSxpbnRlcnBvbGF0ZTp0aGlzLmludGVycG9sYXRlfSx0aGlzLm5lZWRzRGVjb2RlKTp0aGlzLmNyZWF0ZUJpdG1hcChlLGksbyxsKTtyLmtpbmQ9ZTtyLmRhdGE9bDtpZih0aGlzLm5lZWRzRGVjb2RlKXthc3NlcnQoZT09PVQsIlBERkltYWdlLmNyZWF0ZUltYWdlRGF0YTogVGhlIGltYWdlIG11c3QgYmUgZ3JheXNjYWxlLiIpO2NvbnN0IHQ9ci5kYXRhO2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuO2UrKyl0W2VdXj0yNTV9cmV0dXJuIHJ9aWYodGhpcy5pbWFnZSBpbnN0YW5jZW9mIEpwZWdTdHJlYW0mJiF0aGlzLnNtYXNrJiYhdGhpcy5tYXNrJiYhdGhpcy5uZWVkc0RlY29kZSl7bGV0IGU9bypmO2lmKHQmJiFjKXtsZXQgdD0hMTtzd2l0Y2godGhpcy5jb2xvclNwYWNlLm5hbWUpe2Nhc2UiRGV2aWNlR3JheSI6ZSo9NDt0PSEwO2JyZWFrO2Nhc2UiRGV2aWNlUkdCIjplPWUvMyo0O3Q9ITA7YnJlYWs7Y2FzZSJEZXZpY2VDTVlLIjp0PSEwfWlmKHQpe2NvbnN0IHQ9YXdhaXQgdGhpcy4jaGUobixhKTtpZih0KXJldHVybiB0O2NvbnN0IHI9YXdhaXQgdGhpcy5nZXRJbWFnZUJ5dGVzKGUse2RyYXdXaWR0aDpuLGRyYXdIZWlnaHQ6YSxmb3JjZVJHQkE6ITB9KTtyZXR1cm4gdGhpcy5jcmVhdGVCaXRtYXAoUixuLGEscil9fWVsc2Ugc3dpdGNoKHRoaXMuY29sb3JTcGFjZS5uYW1lKXtjYXNlIkRldmljZUdyYXkiOmUqPTM7Y2FzZSJEZXZpY2VSR0IiOmNhc2UiRGV2aWNlQ01ZSyI6ci5raW5kPU87ci5kYXRhPWF3YWl0IHRoaXMuZ2V0SW1hZ2VCeXRlcyhlLHtkcmF3V2lkdGg6bixkcmF3SGVpZ2h0OmEsZm9yY2VSR0I6ITB9KTtyZXR1cm4gYz9JbWFnZVJlc2l6ZXIuY3JlYXRlSW1hZ2Uocik6cn19fWNvbnN0IGg9YXdhaXQgdGhpcy5nZXRJbWFnZUJ5dGVzKG8qZix7aW50ZXJuYWw6ITB9KSx1PTB8aC5sZW5ndGgvZiphL28sbT10aGlzLmdldENvbXBvbmVudHMoaCk7bGV0IHAsZCxnLGIsdyxqO2lmKHQmJiFjKXtnPW5ldyBPZmZzY3JlZW5DYW52YXMobixhKTtiPWcuZ2V0Q29udGV4dCgiMmQiKTt3PWIuY3JlYXRlSW1hZ2VEYXRhKG4sYSk7aj13LmRhdGF9ci5raW5kPVI7aWYoZXx8dGhpcy5zbWFza3x8dGhpcy5tYXNrKXt0JiYhY3x8KGo9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KG4qYSo0KSk7cD0xO2Q9ITA7YXdhaXQgdGhpcy5maWxsT3BhY2l0eShqLG4sYSx1LG0pfWVsc2V7aWYoIXR8fGMpe3Iua2luZD1PO2o9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KG4qYSozKTtwPTB9ZWxzZXtuZXcgVWludDMyQXJyYXkoai5idWZmZXIpLmZpbGwoRmVhdHVyZVRlc3QuaXNMaXR0bGVFbmRpYW4/NDI3ODE5MDA4MDoyNTUpO3A9MX1kPSExfXRoaXMubmVlZHNEZWNvZGUmJnRoaXMuZGVjb2RlQnVmZmVyKG0pO3RoaXMuY29sb3JTcGFjZS5maWxsUmdiKGosaSxvLG4sYSx1LGwsbSxwKTtkJiZ0aGlzLnVuZG9QcmVibGVuZChqLG4sdSk7aWYodCYmIWMpe2IucHV0SW1hZ2VEYXRhKHcsMCwwKTtyZXR1cm57ZGF0YTpudWxsLHdpZHRoOm4saGVpZ2h0OmEsYml0bWFwOmcudHJhbnNmZXJUb0ltYWdlQml0bWFwKCksaW50ZXJwb2xhdGU6dGhpcy5pbnRlcnBvbGF0ZX19ci5kYXRhPWo7cmV0dXJuIGM/SW1hZ2VSZXNpemVyLmNyZWF0ZUltYWdlKHIpOnJ9YXN5bmMgZmlsbEdyYXlCdWZmZXIoZSl7Y29uc3QgdD10aGlzLm51bUNvbXBzO2lmKDEhPT10KXRocm93IG5ldyBGb3JtYXRFcnJvcihgUmVhZGluZyBncmF5IHNjYWxlIGZyb20gYSBjb2xvciBpbWFnZTogJHt0fWApO2NvbnN0IG49dGhpcy53aWR0aCxhPXRoaXMuaGVpZ2h0LHI9dGhpcy5icGMscz1uKnQqcis3Pj4zLGk9YXdhaXQgdGhpcy5nZXRJbWFnZUJ5dGVzKGEqcyx7aW50ZXJuYWw6ITB9KSxvPXRoaXMuZ2V0Q29tcG9uZW50cyhpKTtsZXQgbCxmO2lmKDE9PT1yKXtmPW4qYTtpZih0aGlzLm5lZWRzRGVjb2RlKWZvcihsPTA7bDxmOysrbCllW2xdPW9bbF0tMSYyNTU7ZWxzZSBmb3IobD0wO2w8ZjsrK2wpZVtsXT0yNTUmLW9bbF07cmV0dXJufXRoaXMubmVlZHNEZWNvZGUmJnRoaXMuZGVjb2RlQnVmZmVyKG8pO2Y9biphO2NvbnN0IGM9MjU1LygoMTw8ciktMSk7Zm9yKGw9MDtsPGY7KytsKWVbbF09YypvW2xdfWNyZWF0ZUJpdG1hcChlLHQsbixhKXtjb25zdCByPW5ldyBPZmZzY3JlZW5DYW52YXModCxuKSxzPXIuZ2V0Q29udGV4dCgiMmQiKTtsZXQgaTtpZihlPT09UilpPW5ldyBJbWFnZURhdGEoYSx0LG4pO2Vsc2V7aT1zLmNyZWF0ZUltYWdlRGF0YSh0LG4pO2NvbnZlcnRUb1JHQkEoe2tpbmQ6ZSxzcmM6YSxkZXN0Om5ldyBVaW50MzJBcnJheShpLmRhdGEuYnVmZmVyKSx3aWR0aDp0LGhlaWdodDpuLGludmVyc2VEZWNvZGU6dGhpcy5uZWVkc0RlY29kZX0pfXMucHV0SW1hZ2VEYXRhKGksMCwwKTtyZXR1cm57ZGF0YTpudWxsLHdpZHRoOnQsaGVpZ2h0Om4sYml0bWFwOnIudHJhbnNmZXJUb0ltYWdlQml0bWFwKCksaW50ZXJwb2xhdGU6dGhpcy5pbnRlcnBvbGF0ZX19YXN5bmMjaGUoZSx0KXtjb25zdCBuPWF3YWl0IHRoaXMuaW1hZ2UuZ2V0VHJhbnNmZXJhYmxlSW1hZ2UoKTtyZXR1cm4gbj97ZGF0YTpudWxsLHdpZHRoOmUsaGVpZ2h0OnQsYml0bWFwOm4saW50ZXJwb2xhdGU6dGhpcy5pbnRlcnBvbGF0ZX06bnVsbH1hc3luYyBnZXRJbWFnZUJ5dGVzKGUse2RyYXdXaWR0aDp0LGRyYXdIZWlnaHQ6bixmb3JjZVJHQkE6YT0hMSxmb3JjZVJHQjpyPSExLGludGVybmFsOnM9ITF9KXt0aGlzLmltYWdlLnJlc2V0KCk7dGhpcy5pbWFnZS5kcmF3V2lkdGg9dHx8dGhpcy53aWR0aDt0aGlzLmltYWdlLmRyYXdIZWlnaHQ9bnx8dGhpcy5oZWlnaHQ7dGhpcy5pbWFnZS5mb3JjZVJHQkE9ISFhO3RoaXMuaW1hZ2UuZm9yY2VSR0I9ISFyO2NvbnN0IGk9YXdhaXQgdGhpcy5pbWFnZS5nZXRJbWFnZURhdGEoZSx0aGlzLmpweERlY29kZXJPcHRpb25zKTtpZihzfHx0aGlzLmltYWdlIGluc3RhbmNlb2YgRGVjb2RlU3RyZWFtKXJldHVybiBpO2Fzc2VydChpIGluc3RhbmNlb2YgVWludDhBcnJheSwnUERGSW1hZ2UuZ2V0SW1hZ2VCeXRlczogVW5zdXBwb3J0ZWQgImltYWdlQnl0ZXMiIHR5cGUuJyk7cmV0dXJuIG5ldyBVaW50OEFycmF5KGkpfX1jb25zdCB2cz1PYmplY3QuZnJlZXplKHttYXhJbWFnZVNpemU6LTEsZGlzYWJsZUZvbnRGYWNlOiExLGlnbm9yZUVycm9yczohMSxpc0V2YWxTdXBwb3J0ZWQ6ITAsaXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQ6ITEsaXNJbWFnZURlY29kZXJTdXBwb3J0ZWQ6ITEsY2FudmFzTWF4QXJlYUluQnl0ZXM6LTEsZm9udEV4dHJhUHJvcGVydGllczohMSx1c2VTeXN0ZW1Gb250czohMCx1c2VXYXNtOiEwLHVzZVdvcmtlckZldGNoOiEwLGNNYXBVcmw6bnVsbCxpY2NVcmw6bnVsbCxzdGFuZGFyZEZvbnREYXRhVXJsOm51bGwsd2FzbVVybDpudWxsfSksU3M9MSx4cz0yLEFzPVByb21pc2UucmVzb2x2ZSgpO2Z1bmN0aW9uIG5vcm1hbGl6ZUJsZW5kTW9kZShlLHQ9ITEpe2lmKEFycmF5LmlzQXJyYXkoZSkpe2Zvcihjb25zdCB0IG9mIGUpe2NvbnN0IGU9bm9ybWFsaXplQmxlbmRNb2RlKHQsITApO2lmKGUpcmV0dXJuIGV9d2FybihgVW5zdXBwb3J0ZWQgYmxlbmQgbW9kZSBBcnJheTogJHtlfWApO3JldHVybiJzb3VyY2Utb3ZlciJ9aWYoIShlIGluc3RhbmNlb2YgTmFtZSkpcmV0dXJuIHQ/bnVsbDoic291cmNlLW92ZXIiO3N3aXRjaChlLm5hbWUpe2Nhc2UiTm9ybWFsIjpjYXNlIkNvbXBhdGlibGUiOnJldHVybiJzb3VyY2Utb3ZlciI7Y2FzZSJNdWx0aXBseSI6cmV0dXJuIm11bHRpcGx5IjtjYXNlIlNjcmVlbiI6cmV0dXJuInNjcmVlbiI7Y2FzZSJPdmVybGF5IjpyZXR1cm4ib3ZlcmxheSI7Y2FzZSJEYXJrZW4iOnJldHVybiJkYXJrZW4iO2Nhc2UiTGlnaHRlbiI6cmV0dXJuImxpZ2h0ZW4iO2Nhc2UiQ29sb3JEb2RnZSI6cmV0dXJuImNvbG9yLWRvZGdlIjtjYXNlIkNvbG9yQnVybiI6cmV0dXJuImNvbG9yLWJ1cm4iO2Nhc2UiSGFyZExpZ2h0IjpyZXR1cm4iaGFyZC1saWdodCI7Y2FzZSJTb2Z0TGlnaHQiOnJldHVybiJzb2Z0LWxpZ2h0IjtjYXNlIkRpZmZlcmVuY2UiOnJldHVybiJkaWZmZXJlbmNlIjtjYXNlIkV4Y2x1c2lvbiI6cmV0dXJuImV4Y2x1c2lvbiI7Y2FzZSJIdWUiOnJldHVybiJodWUiO2Nhc2UiU2F0dXJhdGlvbiI6cmV0dXJuInNhdHVyYXRpb24iO2Nhc2UiQ29sb3IiOnJldHVybiJjb2xvciI7Y2FzZSJMdW1pbm9zaXR5IjpyZXR1cm4ibHVtaW5vc2l0eSJ9aWYodClyZXR1cm4gbnVsbDt3YXJuKGBVbnN1cHBvcnRlZCBibGVuZCBtb2RlOiAke2UubmFtZX1gKTtyZXR1cm4ic291cmNlLW92ZXIifWZ1bmN0aW9uIGFkZENhY2hlZEltYWdlT3BzKGUse29iaklkOnQsZm46bixhcmdzOmEsb3B0aW9uYWxDb250ZW50OnIsaGFzTWFzazpzfSl7dCYmZS5hZGREZXBlbmRlbmN5KHQpO2UuYWRkSW1hZ2VPcHMobixhLHIscyk7bj09PUV0JiZhWzBdPy5jb3VudD4wJiZhWzBdLmNvdW50Kyt9Y2xhc3MgVGltZVNsb3RNYW5hZ2Vye3N0YXRpYyBUSU1FX1NMT1RfRFVSQVRJT05fTVM9MjA7c3RhdGljIENIRUNLX1RJTUVfRVZFUlk9MTAwO2NvbnN0cnVjdG9yKCl7dGhpcy5yZXNldCgpfWNoZWNrKCl7aWYoKyt0aGlzLmNoZWNrZWQ8VGltZVNsb3RNYW5hZ2VyLkNIRUNLX1RJTUVfRVZFUlkpcmV0dXJuITE7dGhpcy5jaGVja2VkPTA7cmV0dXJuIHRoaXMuZW5kVGltZTw9RGF0ZS5ub3coKX1yZXNldCgpe3RoaXMuZW5kVGltZT1EYXRlLm5vdygpK1RpbWVTbG90TWFuYWdlci5USU1FX1NMT1RfRFVSQVRJT05fTVM7dGhpcy5jaGVja2VkPTB9fWNsYXNzIFBhcnRpYWxFdmFsdWF0b3J7Y29uc3RydWN0b3Ioe3hyZWY6ZSxoYW5kbGVyOnQscGFnZUluZGV4Om4saWRGYWN0b3J5OmEsZm9udENhY2hlOnIsYnVpbHRJbkNNYXBDYWNoZTpzLHN0YW5kYXJkRm9udERhdGFDYWNoZTppLGdsb2JhbENvbG9yU3BhY2VDYWNoZTpvLGdsb2JhbEltYWdlQ2FjaGU6bCxzeXN0ZW1Gb250Q2FjaGU6ZixvcHRpb25zOmM9bnVsbH0pe3RoaXMueHJlZj1lO3RoaXMuaGFuZGxlcj10O3RoaXMucGFnZUluZGV4PW47dGhpcy5pZEZhY3Rvcnk9YTt0aGlzLmZvbnRDYWNoZT1yO3RoaXMuYnVpbHRJbkNNYXBDYWNoZT1zO3RoaXMuc3RhbmRhcmRGb250RGF0YUNhY2hlPWk7dGhpcy5nbG9iYWxDb2xvclNwYWNlQ2FjaGU9bzt0aGlzLmdsb2JhbEltYWdlQ2FjaGU9bDt0aGlzLnN5c3RlbUZvbnRDYWNoZT1mO3RoaXMub3B0aW9ucz1jfHx2czt0aGlzLnR5cGUzRm9udFJlZnM9bnVsbDt0aGlzLl9yZWdpb25hbEltYWdlQ2FjaGU9bmV3IFJlZ2lvbmFsSW1hZ2VDYWNoZTt0aGlzLl9mZXRjaEJ1aWx0SW5DTWFwQm91bmQ9dGhpcy5mZXRjaEJ1aWx0SW5DTWFwLmJpbmQodGhpcyl9Z2V0IF9wZGZGdW5jdGlvbkZhY3RvcnkoKXtyZXR1cm4gc2hhZG93KHRoaXMsIl9wZGZGdW5jdGlvbkZhY3RvcnkiLG5ldyBQREZGdW5jdGlvbkZhY3Rvcnkoe3hyZWY6dGhpcy54cmVmLGlzRXZhbFN1cHBvcnRlZDp0aGlzLm9wdGlvbnMuaXNFdmFsU3VwcG9ydGVkfSkpfWdldCBwYXJzaW5nVHlwZTNGb250KCl7cmV0dXJuISF0aGlzLnR5cGUzRm9udFJlZnN9Y2xvbmUoZT1udWxsKXtjb25zdCB0PU9iamVjdC5jcmVhdGUodGhpcyk7dC5vcHRpb25zPU9iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLm9wdGlvbnMsZSk7cmV0dXJuIHR9aGFzQmxlbmRNb2RlcyhlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIERpY3QpKXJldHVybiExO2lmKGUub2JqSWQmJnQuaGFzKGUub2JqSWQpKXJldHVybiExO2NvbnN0IG49bmV3IFJlZlNldCh0KTtlLm9iaklkJiZuLnB1dChlLm9iaklkKTtjb25zdCBhPVtlXSxyPXRoaXMueHJlZjtmb3IoO2EubGVuZ3RoOyl7Y29uc3QgZT1hLnNoaWZ0KCksdD1lLmdldCgiRXh0R1N0YXRlIik7aWYodCBpbnN0YW5jZW9mIERpY3QpZm9yKGxldCBlIG9mIHQuZ2V0UmF3VmFsdWVzKCkpe2lmKGUgaW5zdGFuY2VvZiBSZWYpe2lmKG4uaGFzKGUpKWNvbnRpbnVlO3RyeXtlPXIuZmV0Y2goZSl9Y2F0Y2godCl7bi5wdXQoZSk7aW5mbyhgaGFzQmxlbmRNb2RlcyAtIGlnbm9yaW5nIEV4dEdTdGF0ZTogIiR7dH0iLmApO2NvbnRpbnVlfX1pZighKGUgaW5zdGFuY2VvZiBEaWN0KSljb250aW51ZTtlLm9iaklkJiZuLnB1dChlLm9iaklkKTtjb25zdCB0PWUuZ2V0KCJCTSIpO2lmKHQgaW5zdGFuY2VvZiBOYW1lKXtpZigiTm9ybWFsIiE9PXQubmFtZSlyZXR1cm4hMH1lbHNlIGlmKHZvaWQgMCE9PXQmJkFycmF5LmlzQXJyYXkodCkpZm9yKGNvbnN0IGUgb2YgdClpZihlIGluc3RhbmNlb2YgTmFtZSYmIk5vcm1hbCIhPT1lLm5hbWUpcmV0dXJuITB9Y29uc3Qgcz1lLmdldCgiWE9iamVjdCIpO2lmKHMgaW5zdGFuY2VvZiBEaWN0KWZvcihsZXQgZSBvZiBzLmdldFJhd1ZhbHVlcygpKXtpZihlIGluc3RhbmNlb2YgUmVmKXtpZihuLmhhcyhlKSljb250aW51ZTt0cnl7ZT1yLmZldGNoKGUpfWNhdGNoKHQpe24ucHV0KGUpO2luZm8oYGhhc0JsZW5kTW9kZXMgLSBpZ25vcmluZyBYT2JqZWN0OiAiJHt0fSIuYCk7Y29udGludWV9fWlmKCEoZSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0pKWNvbnRpbnVlO2UuZGljdC5vYmpJZCYmbi5wdXQoZS5kaWN0Lm9iaklkKTtjb25zdCB0PWUuZGljdC5nZXQoIlJlc291cmNlcyIpO2lmKHQgaW5zdGFuY2VvZiBEaWN0JiYoIXQub2JqSWR8fCFuLmhhcyh0Lm9iaklkKSkpe2EucHVzaCh0KTt0Lm9iaklkJiZuLnB1dCh0Lm9iaklkKX19fWZvcihjb25zdCBlIG9mIG4pdC5wdXQoZSk7cmV0dXJuITF9YXN5bmMgZmV0Y2hCdWlsdEluQ01hcChlKXtjb25zdCB0PXRoaXMuYnVpbHRJbkNNYXBDYWNoZS5nZXQoZSk7aWYodClyZXR1cm4gdDtsZXQgbjtuPXRoaXMub3B0aW9ucy51c2VXb3JrZXJGZXRjaD97Y01hcERhdGE6YXdhaXQgZmV0Y2hCaW5hcnlEYXRhKGAke3RoaXMub3B0aW9ucy5jTWFwVXJsfSR7ZX0uYmNtYXBgKSxpc0NvbXByZXNzZWQ6ITB9OmF3YWl0IHRoaXMuaGFuZGxlci5zZW5kV2l0aFByb21pc2UoIkZldGNoQmluYXJ5RGF0YSIse3R5cGU6ImNNYXBSZWFkZXJGYWN0b3J5IixuYW1lOmV9KTt0aGlzLmJ1aWx0SW5DTWFwQ2FjaGUuc2V0KGUsbik7cmV0dXJuIG59YXN5bmMgZmV0Y2hTdGFuZGFyZEZvbnREYXRhKGUpe2NvbnN0IHQ9dGhpcy5zdGFuZGFyZEZvbnREYXRhQ2FjaGUuZ2V0KGUpO2lmKHQpcmV0dXJuIG5ldyBTdHJlYW0odCk7aWYodGhpcy5vcHRpb25zLnVzZVN5c3RlbUZvbnRzJiYiU3ltYm9sIiE9PWUmJiJaYXBmRGluZ2JhdHMiIT09ZSlyZXR1cm4gbnVsbDtjb25zdCBuPVhhKClbZV07bGV0IGE7dHJ5e2E9dGhpcy5vcHRpb25zLnVzZVdvcmtlckZldGNoP2F3YWl0IGZldGNoQmluYXJ5RGF0YShgJHt0aGlzLm9wdGlvbnMuc3RhbmRhcmRGb250RGF0YVVybH0ke259YCk6YXdhaXQgdGhpcy5oYW5kbGVyLnNlbmRXaXRoUHJvbWlzZSgiRmV0Y2hCaW5hcnlEYXRhIix7dHlwZToic3RhbmRhcmRGb250RGF0YUZhY3RvcnkiLGZpbGVuYW1lOm59KX1jYXRjaChlKXt3YXJuKGUpO3JldHVybiBudWxsfXRoaXMuc3RhbmRhcmRGb250RGF0YUNhY2hlLnNldChlLGEpO3JldHVybiBuZXcgU3RyZWFtKGEpfWFzeW5jIGJ1aWxkRm9ybVhPYmplY3QoZSx0LG4sYSxyLHMsaSxvKXtjb25zdHtkaWN0Omx9PXQsZj1sb29rdXBNYXRyaXgobC5nZXRBcnJheSgiTWF0cml4IiksbnVsbCksYz1sb29rdXBOb3JtYWxSZWN0KGwuZ2V0QXJyYXkoIkJCb3giKSxudWxsKTtsZXQgaCx1O2wuaGFzKCJPQyIpJiYoaD1hd2FpdCB0aGlzLnBhcnNlTWFya2VkQ29udGVudFByb3BzKGwuZ2V0KCJPQyIpLGUpKTt2b2lkIDAhPT1oJiZhLmFkZE9wKEl0LFsiT0MiLGhdKTtjb25zdCBtPWwuZ2V0KCJHcm91cCIpO2lmKG0pe3U9e21hdHJpeDpmLGJib3g6YyxzbWFzazpuLGlzb2xhdGVkOiExLGtub2Nrb3V0OiExfTtsZXQgdD1udWxsO2lmKGlzTmFtZShtLmdldCgiUyIpLCJUcmFuc3BhcmVuY3kiKSl7dS5pc29sYXRlZD1tLmdldCgiSSIpfHwhMTt1Lmtub2Nrb3V0PW0uZ2V0KCJLIil8fCExO2lmKG0uaGFzKCJDUyIpKXtjb25zdCBuPXRoaXMuX2dldENvbG9yU3BhY2UobS5nZXRSYXcoIkNTIiksZSxpKTt0PW4gaW5zdGFuY2VvZiBDb2xvclNwYWNlP246YXdhaXQgdGhpcy5faGFuZGxlQ29sb3JTcGFjZShuKX19aWYobj8uYmFja2Ryb3Ape3R8fD1Db2xvclNwYWNlVXRpbHMucmdiO24uYmFja2Ryb3A9dC5nZXRSZ2JIZXgobi5iYWNrZHJvcCwwKX1hLmFkZE9wKEh0LFt1XSl9Y29uc3QgcD1bZiYmbmV3IEZsb2F0MzJBcnJheShmKSwhbSYmYyYmbmV3IEZsb2F0MzJBcnJheShjKXx8bnVsbF07YS5hZGRPcChSdCxwKTtjb25zdCBkPWwuZ2V0KCJSZXNvdXJjZXMiKTthd2FpdCB0aGlzLmdldE9wZXJhdG9yTGlzdCh7c3RyZWFtOnQsdGFzazpyLHJlc291cmNlczpkIGluc3RhbmNlb2YgRGljdD9kOmUsb3BlcmF0b3JMaXN0OmEsaW5pdGlhbFN0YXRlOnMscHJldlJlZnM6b30pO2EuYWRkT3AoQnQsW10pO20mJmEuYWRkT3AoRHQsW3VdKTt2b2lkIDAhPT1oJiZhLmFkZE9wKEZ0LFtdKX1fc2VuZEltZ0RhdGEoZSx0LG49ITEpe2NvbnN0IGE9dD9bdC5iaXRtYXB8fHQuZGF0YS5idWZmZXJdOm51bGw7cmV0dXJuIHRoaXMucGFyc2luZ1R5cGUzRm9udHx8bj90aGlzLmhhbmRsZXIuc2VuZCgiY29tbW9ub2JqIixbZSwiSW1hZ2UiLHRdLGEpOnRoaXMuaGFuZGxlci5zZW5kKCJvYmoiLFtlLHRoaXMucGFnZUluZGV4LCJJbWFnZSIsdF0sYSl9YXN5bmMgYnVpbGRQYWludEltYWdlWE9iamVjdCh7cmVzb3VyY2VzOmUsaW1hZ2U6dCxpc0lubGluZTpuPSExLG9wZXJhdG9yTGlzdDphLGNhY2hlS2V5OnIsbG9jYWxJbWFnZUNhY2hlOnMsbG9jYWxDb2xvclNwYWNlQ2FjaGU6aX0pe2NvbnN0e21heEltYWdlU2l6ZTpvLGlnbm9yZUVycm9yczpsLGlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkOmZ9PXRoaXMub3B0aW9ucyx7ZGljdDpjfT10LGg9Yy5vYmpJZCx1PWMuZ2V0KCJXIiwiV2lkdGgiKSxtPWMuZ2V0KCJIIiwiSGVpZ2h0Iik7aWYoIXV8fCJudW1iZXIiIT10eXBlb2YgdXx8IW18fCJudW1iZXIiIT10eXBlb2YgbSl7d2FybigiSW1hZ2UgZGltZW5zaW9ucyBhcmUgbWlzc2luZywgb3Igbm90IG51bWJlcnMuIik7cmV0dXJufWlmKC0xIT09byYmdSptPm8pe2NvbnN0IGU9IkltYWdlIGV4Y2VlZGVkIG1heGltdW0gYWxsb3dlZCBzaXplIGFuZCB3YXMgcmVtb3ZlZC4iO2lmKCFsKXRocm93IG5ldyBFcnJvcihlKTt3YXJuKGUpO3JldHVybn1sZXQgcDtjLmhhcygiT0MiKSYmKHA9YXdhaXQgdGhpcy5wYXJzZU1hcmtlZENvbnRlbnRQcm9wcyhjLmdldCgiT0MiKSxlKSk7bGV0IGQsZyxiO2lmKGMuZ2V0KCJJTSIsIkltYWdlTWFzayIpfHwhMSl7ZD1hd2FpdCBQREZJbWFnZS5jcmVhdGVNYXNrKHtpbWFnZTp0LGlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkOmYmJiF0aGlzLnBhcnNpbmdUeXBlM0ZvbnR9KTtpZihkLmlzU2luZ2xlT3BhcXVlUGl4ZWwpe2c9V3Q7Yj1bXTthLmFkZEltYWdlT3BzKGcsYixwKTtpZihyKXtjb25zdCBlPXtmbjpnLGFyZ3M6YixvcHRpb25hbENvbnRlbnQ6cH07cy5zZXQocixoLGUpO2gmJnRoaXMuX3JlZ2lvbmFsSW1hZ2VDYWNoZS5zZXQobnVsbCxoLGUpfXJldHVybn1pZih0aGlzLnBhcnNpbmdUeXBlM0ZvbnQpe2I9ZnVuY3Rpb24gY29tcGlsZVR5cGUzR2x5cGgoe2RhdGE6ZSx3aWR0aDp0LGhlaWdodDpufSl7aWYodD4xZTN8fG4+MWUzKXJldHVybiBudWxsO2NvbnN0IGE9bmV3IFVpbnQ4QXJyYXkoWzAsMiw0LDAsMSwwLDUsNCw4LDEwLDAsOCwwLDIsMSwwXSkscj10KzEscz1uZXcgVWludDhBcnJheShyKihuKzEpKTtsZXQgaSxvLGw7Y29uc3QgZj10KzcmLTgsYz1uZXcgVWludDhBcnJheShmKm4pO2xldCBoPTA7Zm9yKGNvbnN0IHQgb2YgZSl7bGV0IGU9MTI4O2Zvcig7ZT4wOyl7Y1toKytdPXQmZT8wOjI1NTtlPj49MX19bGV0IHU9MDtoPTA7aWYoMCE9PWNbaF0pe3NbMF09MTsrK3V9Zm9yKG89MTtvPHQ7bysrKXtpZihjW2hdIT09Y1toKzFdKXtzW29dPWNbaF0/MjoxOysrdX1oKyt9aWYoMCE9PWNbaF0pe3Nbb109MjsrK3V9Zm9yKGk9MTtpPG47aSsrKXtoPWkqZjtsPWkqcjtpZihjW2gtZl0hPT1jW2hdKXtzW2xdPWNbaF0/MTo4OysrdX1sZXQgZT0oY1toXT80OjApKyhjW2gtZl0/ODowKTtmb3Iobz0xO288dDtvKyspe2U9KGU+PjIpKyhjW2grMV0/NDowKSsoY1toLWYrMV0/ODowKTtpZihhW2VdKXtzW2wrb109YVtlXTsrK3V9aCsrfWlmKGNbaC1mXSE9PWNbaF0pe3NbbCtvXT1jW2hdPzI6NDsrK3V9aWYodT4xZTMpcmV0dXJuIG51bGx9aD1mKihuLTEpO2w9aSpyO2lmKDAhPT1jW2hdKXtzW2xdPTg7Kyt1fWZvcihvPTE7bzx0O28rKyl7aWYoY1toXSE9PWNbaCsxXSl7c1tsK29dPWNbaF0/NDo4OysrdX1oKyt9aWYoMCE9PWNbaF0pe3NbbCtvXT00OysrdX1pZih1PjFlMylyZXR1cm4gbnVsbDtjb25zdCBtPW5ldyBJbnQzMkFycmF5KFswLHIsLTEsMCwtciwwLDAsMCwxXSkscD1bXSx7YTpkLGI6ZyxjOmIsZDp3LGU6aixmOmt9PShuZXcgRE9NTWF0cml4KS5zY2FsZVNlbGYoMS90LC0xL24pLnRyYW5zbGF0ZVNlbGYoMCwtbik7Zm9yKGk9MDt1JiZpPD1uO2krKyl7bGV0IGU9aSpyO2NvbnN0IG49ZSt0O2Zvcig7ZTxuJiYhc1tlXTspZSsrO2lmKGU9PT1uKWNvbnRpbnVlO2xldCBhPWUlcixvPWk7cC5wdXNoKFl0LGQqYStiKm8raixnKmErdypvK2spO2NvbnN0IGw9ZTtsZXQgZj1zW2VdO2Rve2NvbnN0IHQ9bVtmXTtkb3tlKz10fXdoaWxlKCFzW2VdKTtjb25zdCBuPXNbZV07aWYoNSE9PW4mJjEwIT09bil7Zj1uO3NbZV09MH1lbHNle2Y9biY1MSpmPj40O3NbZV0mPWY+PjJ8Zjw8Mn1hPWUlcjtvPWUvcnwwO3AucHVzaChKdCxkKmErYipvK2osZyphK3cqbytrKTtzW2VdfHwtLXV9d2hpbGUobCE9PWUpOy0taX1yZXR1cm5bJHQsW25ldyBGbG9hdDMyQXJyYXkocCldLG5ldyBGbG9hdDMyQXJyYXkoWzAsMCx0LG5dKV19KGQpO2lmKGIpe2EuYWRkSW1hZ2VPcHMoS3QsYixwKTtyZXR1cm59d2FybigiQ2Fubm90IGNvbXBpbGUgVHlwZTMgZ2x5cGguIik7YS5hZGRJbWFnZU9wcyhFdCxbZF0scCk7cmV0dXJufWNvbnN0IGU9YG1hc2tfJHt0aGlzLmlkRmFjdG9yeS5jcmVhdGVPYmpJZCgpfWA7YS5hZGREZXBlbmRlbmN5KGUpO2QuZGF0YUxlbj1kLmJpdG1hcD9kLndpZHRoKmQuaGVpZ2h0KjQ6ZC5kYXRhLmxlbmd0aDt0aGlzLl9zZW5kSW1nRGF0YShlLGQpO2c9RXQ7Yj1be2RhdGE6ZSx3aWR0aDpkLndpZHRoLGhlaWdodDpkLmhlaWdodCxpbnRlcnBvbGF0ZTpkLmludGVycG9sYXRlLGNvdW50OjF9XTthLmFkZEltYWdlT3BzKGcsYixwKTtpZihyKXtjb25zdCB0PXtvYmpJZDplLGZuOmcsYXJnczpiLG9wdGlvbmFsQ29udGVudDpwfTtzLnNldChyLGgsdCk7aCYmdGhpcy5fcmVnaW9uYWxJbWFnZUNhY2hlLnNldChudWxsLGgsdCl9cmV0dXJufWNvbnN0IHc9Yy5oYXMoIlNNYXNrIil8fGMuaGFzKCJNYXNrIik7aWYobiYmdSttPDIwMCYmIXcpe3RyeXtjb25zdCByPW5ldyBQREZJbWFnZSh7eHJlZjp0aGlzLnhyZWYscmVzOmUsaW1hZ2U6dCxpc0lubGluZTpuLHBkZkZ1bmN0aW9uRmFjdG9yeTp0aGlzLl9wZGZGdW5jdGlvbkZhY3RvcnksZ2xvYmFsQ29sb3JTcGFjZUNhY2hlOnRoaXMuZ2xvYmFsQ29sb3JTcGFjZUNhY2hlLGxvY2FsQ29sb3JTcGFjZUNhY2hlOml9KTtkPWF3YWl0IHIuY3JlYXRlSW1hZ2VEYXRhKCEwLCExKTthLmFkZEltYWdlT3BzKF90LFtkXSxwKX1jYXRjaChlKXtjb25zdCB0PWBVbmFibGUgdG8gZGVjb2RlIGlubGluZSBpbWFnZTogIiR7ZX0iLmA7aWYoIWwpdGhyb3cgbmV3IEVycm9yKHQpO3dhcm4odCl9cmV0dXJufWxldCBqPWBpbWdfJHt0aGlzLmlkRmFjdG9yeS5jcmVhdGVPYmpJZCgpfWAsaz0hMSx5PW51bGw7aWYodGhpcy5wYXJzaW5nVHlwZTNGb250KWo9YCR7dGhpcy5pZEZhY3RvcnkuZ2V0RG9jSWQoKX1fdHlwZTNfJHtqfWA7ZWxzZSBpZihyJiZoKXtrPXRoaXMuZ2xvYmFsSW1hZ2VDYWNoZS5zaG91bGRDYWNoZShoLHRoaXMucGFnZUluZGV4KTtpZihrKXthc3NlcnQoIW4sIkNhbm5vdCBjYWNoZSBhbiBpbmxpbmUgaW1hZ2UgZ2xvYmFsbHkuIik7aj1gJHt0aGlzLmlkRmFjdG9yeS5nZXREb2NJZCgpfV8ke2p9YH19YS5hZGREZXBlbmRlbmN5KGopO2c9enQ7Yj1baix1LG1dO2EuYWRkSW1hZ2VPcHMoZyxiLHAsdyk7aWYoayl7eT17b2JqSWQ6aixmbjpnLGFyZ3M6YixvcHRpb25hbENvbnRlbnQ6cCxoYXNNYXNrOncsYnl0ZVNpemU6MH07aWYodGhpcy5nbG9iYWxJbWFnZUNhY2hlLmhhc0RlY29kZUZhaWxlZChoKSl7dGhpcy5nbG9iYWxJbWFnZUNhY2hlLnNldERhdGEoaCx5KTt0aGlzLl9zZW5kSW1nRGF0YShqLG51bGwsayk7cmV0dXJufWlmKHUqbT4yNWU0fHx3KXtjb25zdCBlPWF3YWl0IHRoaXMuaGFuZGxlci5zZW5kV2l0aFByb21pc2UoImNvbW1vbm9iaiIsW2osIkNvcHlMb2NhbEltYWdlIix7aW1hZ2VSZWY6aH1dKTtpZihlKXt0aGlzLmdsb2JhbEltYWdlQ2FjaGUuc2V0RGF0YShoLHkpO3RoaXMuZ2xvYmFsSW1hZ2VDYWNoZS5hZGRCeXRlU2l6ZShoLGUpO3JldHVybn19fVBERkltYWdlLmJ1aWxkSW1hZ2Uoe3hyZWY6dGhpcy54cmVmLHJlczplLGltYWdlOnQsaXNJbmxpbmU6bixwZGZGdW5jdGlvbkZhY3Rvcnk6dGhpcy5fcGRmRnVuY3Rpb25GYWN0b3J5LGdsb2JhbENvbG9yU3BhY2VDYWNoZTp0aGlzLmdsb2JhbENvbG9yU3BhY2VDYWNoZSxsb2NhbENvbG9yU3BhY2VDYWNoZTppfSkudGhlbihhc3luYyBlPT57ZD1hd2FpdCBlLmNyZWF0ZUltYWdlRGF0YSghMSxmKTtkLmRhdGFMZW49ZC5iaXRtYXA/ZC53aWR0aCpkLmhlaWdodCo0OmQuZGF0YS5sZW5ndGg7ZC5yZWY9aDtrJiZ0aGlzLmdsb2JhbEltYWdlQ2FjaGUuYWRkQnl0ZVNpemUoaCxkLmRhdGFMZW4pO3JldHVybiB0aGlzLl9zZW5kSW1nRGF0YShqLGQsayl9KS5jYXRjaChlPT57d2FybihgVW5hYmxlIHRvIGRlY29kZSBpbWFnZSAiJHtqfSI6ICIke2V9Ii5gKTtoJiZ0aGlzLmdsb2JhbEltYWdlQ2FjaGUuYWRkRGVjb2RlRmFpbGVkKGgpO3JldHVybiB0aGlzLl9zZW5kSW1nRGF0YShqLG51bGwsayl9KTtpZihyKXtjb25zdCBlPXtvYmpJZDpqLGZuOmcsYXJnczpiLG9wdGlvbmFsQ29udGVudDpwLGhhc01hc2s6d307cy5zZXQocixoLGUpO2lmKGgpe3RoaXMuX3JlZ2lvbmFsSW1hZ2VDYWNoZS5zZXQobnVsbCxoLGUpO2lmKGspe2Fzc2VydCh5LCJUaGUgZ2xvYmFsIGNhY2hlLWRhdGEgbXVzdCBiZSBhdmFpbGFibGUuIik7dGhpcy5nbG9iYWxJbWFnZUNhY2hlLnNldERhdGEoaCx5KX19fX1oYW5kbGVTTWFzayhlLHQsbixhLHIscyxpKXtjb25zdCBvPWUuZ2V0KCJHIiksbD17c3VidHlwZTplLmdldCgiUyIpLm5hbWUsYmFja2Ryb3A6ZS5nZXQoIkJDIil9LGY9ZS5nZXQoIlRSIik7aWYoaXNQREZGdW5jdGlvbihmKSl7Y29uc3QgZT10aGlzLl9wZGZGdW5jdGlvbkZhY3RvcnkuY3JlYXRlKGYpLHQ9bmV3IFVpbnQ4QXJyYXkoMjU2KSxuPW5ldyBGbG9hdDMyQXJyYXkoMSk7Zm9yKGxldCBhPTA7YTwyNTY7YSsrKXtuWzBdPWEvMjU1O2UobiwwLG4sMCk7dFthXT0yNTUqblswXXwwfWwudHJhbnNmZXJNYXA9dH1yZXR1cm4gdGhpcy5idWlsZEZvcm1YT2JqZWN0KHQsbyxsLG4sYSxyLnN0YXRlLmNsb25lKHtuZXdQYXRoOiEwfSkscyxpKX1oYW5kbGVUcmFuc2ZlckZ1bmN0aW9uKGUpe2xldCB0O2lmKEFycmF5LmlzQXJyYXkoZSkpe3Q9ZTtlLmxlbmd0aD4xJiZlLmV2ZXJ5KHQ9PnQ9PT1lWzBdKSYmKHQ9W2VbMF1dKX1lbHNle2lmKCFpc1BERkZ1bmN0aW9uKGUpKXJldHVybiBudWxsO3Q9W2VdfWNvbnN0IG49W107bGV0IGE9MCxyPTA7Zm9yKGNvbnN0IGUgb2YgdCl7Y29uc3QgdD10aGlzLnhyZWYuZmV0Y2hJZlJlZihlKTthKys7aWYoaXNOYW1lKHQsIklkZW50aXR5Iikpe24ucHVzaChudWxsKTtjb250aW51ZX1pZighaXNQREZGdW5jdGlvbih0KSlyZXR1cm4gbnVsbDtjb25zdCBzPXRoaXMuX3BkZkZ1bmN0aW9uRmFjdG9yeS5jcmVhdGUodCksaT1uZXcgVWludDhBcnJheSgyNTYpLG89bmV3IEZsb2F0MzJBcnJheSgxKTtmb3IobGV0IGU9MDtlPDI1NjtlKyspe29bMF09ZS8yNTU7cyhvLDAsbywwKTtpW2VdPTI1NSpvWzBdfDB9bi5wdXNoKGkpO3IrK31yZXR1cm4gMSE9PWEmJjQhPT1hfHwwPT09cj9udWxsOm59aGFuZGxlVGlsaW5nVHlwZShlLHQsbixhLHIscyxpLG8pe2NvbnN0IGw9bmV3IE9wZXJhdG9yTGlzdCxmPURpY3QubWVyZ2Uoe3hyZWY6dGhpcy54cmVmLGRpY3RBcnJheTpbci5nZXQoIlJlc291cmNlcyIpLG5dfSk7cmV0dXJuIHRoaXMuZ2V0T3BlcmF0b3JMaXN0KHtzdHJlYW06YSx0YXNrOmkscmVzb3VyY2VzOmYsb3BlcmF0b3JMaXN0Omx9KS50aGVuKGZ1bmN0aW9uKCl7Y29uc3Qgbj1sLmdldElSKCksYT1nZXRUaWxpbmdQYXR0ZXJuSVIobixyLHQpO3MuYWRkRGVwZW5kZW5jaWVzKGwuZGVwZW5kZW5jaWVzKTtzLmFkZE9wKGUsYSk7ci5vYmpJZCYmby5zZXQobnVsbCxyLm9iaklkLHtvcGVyYXRvckxpc3RJUjpuLGRpY3Q6cn0pfSkuY2F0Y2goZT0+e2lmKCEoZSBpbnN0YW5jZW9mIEFib3J0RXhjZXB0aW9uKSl7aWYoIXRoaXMub3B0aW9ucy5pZ25vcmVFcnJvcnMpdGhyb3cgZTt3YXJuKGBoYW5kbGVUaWxpbmdUeXBlIC0gaWdub3JpbmcgcGF0dGVybjogIiR7ZX0iLmApfX0pfWFzeW5jIGhhbmRsZVNldEZvbnQoZSx0LG4sYSxyLHMsaT1udWxsLG89bnVsbCl7Y29uc3QgbD10Py5bMF1pbnN0YW5jZW9mIE5hbWU/dFswXS5uYW1lOm51bGwsZj1hd2FpdCB0aGlzLmxvYWRGb250KGwsbixlLHIsaSxvKTtmLmZvbnQuaXNUeXBlM0ZvbnQmJmEuYWRkRGVwZW5kZW5jaWVzKGYudHlwZTNEZXBlbmRlbmNpZXMpO3MuZm9udD1mLmZvbnQ7Zi5zZW5kKHRoaXMuaGFuZGxlcik7cmV0dXJuIGYubG9hZGVkTmFtZX1oYW5kbGVUZXh0KGUsdCl7Y29uc3Qgbj10LmZvbnQsYT1uLmNoYXJzVG9HbHlwaHMoZSk7aWYobi5kYXRhKXsoISEodC50ZXh0UmVuZGVyaW5nTW9kZSZDKXx8IlBhdHRlcm4iPT09dC5maWxsQ29sb3JTcGFjZS5uYW1lfHwiUGF0dGVybiI9PT10LnN0cm9rZUNvbG9yU3BhY2UubmFtZXx8bi5kaXNhYmxlRm9udEZhY2UpJiZQYXJ0aWFsRXZhbHVhdG9yLmJ1aWxkRm9udFBhdGhzKG4sYSx0aGlzLmhhbmRsZXIsdGhpcy5vcHRpb25zKX1yZXR1cm4gYX1lbnN1cmVTdGF0ZUZvbnQoZSl7aWYoZS5mb250KXJldHVybjtjb25zdCB0PW5ldyBGb3JtYXRFcnJvcigiTWlzc2luZyBzZXRGb250IChUZikgb3BlcmF0b3IgYmVmb3JlIHRleHQgcmVuZGVyaW5nIG9wZXJhdG9yLiIpO2lmKCF0aGlzLm9wdGlvbnMuaWdub3JlRXJyb3JzKXRocm93IHQ7d2FybihgZW5zdXJlU3RhdGVGb250OiAiJHt0fSIuYCl9YXN5bmMgc2V0R1N0YXRlKHtyZXNvdXJjZXM6ZSxnU3RhdGU6dCxvcGVyYXRvckxpc3Q6bixjYWNoZUtleTphLHRhc2s6cixzdGF0ZU1hbmFnZXI6cyxsb2NhbEdTdGF0ZUNhY2hlOmksbG9jYWxDb2xvclNwYWNlQ2FjaGU6byxzZWVuUmVmczpsfSl7Y29uc3QgZj10Lm9iaklkO2xldCBjPSEwO2NvbnN0IGg9W107bGV0IHU9UHJvbWlzZS5yZXNvbHZlKCk7Zm9yKGNvbnN0W2EsaV1vZiB0KXN3aXRjaChhKXtjYXNlIlR5cGUiOmJyZWFrO2Nhc2UiTFciOmlmKCJudW1iZXIiIT10eXBlb2YgaSl7d2FybihgSW52YWxpZCBMVyAobGluZSB3aWR0aCk6ICR7aX1gKTticmVha31oLnB1c2goW2EsTWF0aC5hYnMoaSldKTticmVhaztjYXNlIkxDIjpjYXNlIkxKIjpjYXNlIk1MIjpjYXNlIkQiOmNhc2UiUkkiOmNhc2UiRkwiOmNhc2UiQ0EiOmNhc2UiY2EiOmgucHVzaChbYSxpXSk7YnJlYWs7Y2FzZSJGb250IjpjPSExO3U9dS50aGVuKCgpPT50aGlzLmhhbmRsZVNldEZvbnQoZSxudWxsLGlbMF0sbixyLHMuc3RhdGUpLnRoZW4oZnVuY3Rpb24oZSl7bi5hZGREZXBlbmRlbmN5KGUpO2gucHVzaChbYSxbZSxpWzFdXV0pfSkpO2JyZWFrO2Nhc2UiQk0iOmgucHVzaChbYSxub3JtYWxpemVCbGVuZE1vZGUoaSldKTticmVhaztjYXNlIlNNYXNrIjppZihpc05hbWUoaSwiTm9uZSIpKXtoLnB1c2goW2EsITFdKTticmVha31pZihpIGluc3RhbmNlb2YgRGljdCl7Yz0hMTt1PXUudGhlbigoKT0+dGhpcy5oYW5kbGVTTWFzayhpLGUsbixyLHMsbyxsKSk7aC5wdXNoKFthLCEwXSl9ZWxzZSB3YXJuKCJVbnN1cHBvcnRlZCBTTWFzayB0eXBlIik7YnJlYWs7Y2FzZSJUUiI6Y29uc3QgdD10aGlzLmhhbmRsZVRyYW5zZmVyRnVuY3Rpb24oaSk7aC5wdXNoKFthLHRdKTticmVhaztjYXNlIk9QIjpjYXNlIm9wIjpjYXNlIk9QTSI6Y2FzZSJCRyI6Y2FzZSJCRzIiOmNhc2UiVUNSIjpjYXNlIlVDUjIiOmNhc2UiVFIyIjpjYXNlIkhUIjpjYXNlIlNNIjpjYXNlIlNBIjpjYXNlIkFJUyI6Y2FzZSJUSyI6aW5mbygiZ3JhcGhpYyBzdGF0ZSBvcGVyYXRvciAiK2EpO2JyZWFrO2RlZmF1bHQ6aW5mbygiVW5rbm93biBncmFwaGljIHN0YXRlIG9wZXJhdG9yICIrYSl9YXdhaXQgdTtoLmxlbmd0aD4wJiZuLmFkZE9wKGtlLFtoXSk7YyYmaS5zZXQoYSxmLGgpfWxvYWRGb250KGUsdCxuLGEscj1udWxsLHM9bnVsbCl7Y29uc3QgZXJyb3JGb250PWFzeW5jKCk9Pm5ldyBUcmFuc2xhdGVkRm9udCh7bG9hZGVkTmFtZToiZ19mb250X2Vycm9yIixmb250Om5ldyBFcnJvckZvbnQoYEZvbnQgIiR7ZX0iIGlzIG5vdCBhdmFpbGFibGUuYCksZGljdDp0fSk7bGV0IGk7aWYodCl0IGluc3RhbmNlb2YgUmVmJiYoaT10KTtlbHNle2NvbnN0IHQ9bi5nZXQoIkZvbnQiKTt0JiYoaT10LmdldFJhdyhlKSl9aWYoaSl7aWYodGhpcy50eXBlM0ZvbnRSZWZzPy5oYXMoaSkpcmV0dXJuIGVycm9yRm9udCgpO2lmKHRoaXMuZm9udENhY2hlLmhhcyhpKSlyZXR1cm4gdGhpcy5mb250Q2FjaGUuZ2V0KGkpO3RyeXt0PXRoaXMueHJlZi5mZXRjaElmUmVmKGkpfWNhdGNoKGUpe3dhcm4oYGxvYWRGb250IC0gbG9va3VwIGZhaWxlZDogIiR7ZX0iLmApfX1pZighKHQgaW5zdGFuY2VvZiBEaWN0KSl7aWYoIXRoaXMub3B0aW9ucy5pZ25vcmVFcnJvcnMmJiF0aGlzLnBhcnNpbmdUeXBlM0ZvbnQpe3dhcm4oYEZvbnQgIiR7ZX0iIGlzIG5vdCBhdmFpbGFibGUuYCk7cmV0dXJuIGVycm9yRm9udCgpfXdhcm4oYEZvbnQgIiR7ZX0iIGlzIG5vdCBhdmFpbGFibGUgLS0gYXR0ZW1wdGluZyB0byBmYWxsYmFjayB0byBhIGRlZmF1bHQgZm9udC5gKTt0PXJ8fFBhcnRpYWxFdmFsdWF0b3IuZmFsbGJhY2tGb250RGljdH1pZih0LmNhY2hlS2V5JiZ0aGlzLmZvbnRDYWNoZS5oYXModC5jYWNoZUtleSkpcmV0dXJuIHRoaXMuZm9udENhY2hlLmdldCh0LmNhY2hlS2V5KTtjb25zdHtwcm9taXNlOm8scmVzb2x2ZTpsfT1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKTtsZXQgZjt0cnl7Zj10aGlzLnByZUV2YWx1YXRlRm9udCh0KTtmLmNzc0ZvbnRJbmZvPXN9Y2F0Y2goZSl7d2FybihgbG9hZEZvbnQgLSBwcmVFdmFsdWF0ZUZvbnQgZmFpbGVkOiAiJHtlfSIuYCk7cmV0dXJuIGVycm9yRm9udCgpfWNvbnN0e2Rlc2NyaXB0b3I6YyxoYXNoOmh9PWYsdT1pIGluc3RhbmNlb2YgUmVmO2xldCBtO2lmKGgmJmMgaW5zdGFuY2VvZiBEaWN0KXtjb25zdCBlPWMuZm9udEFsaWFzZXN8fD1PYmplY3QuY3JlYXRlKG51bGwpO2lmKGVbaF0pe2NvbnN0IHQ9ZVtoXS5hbGlhc1JlZjtpZih1JiZ0JiZ0aGlzLmZvbnRDYWNoZS5oYXModCkpe3RoaXMuZm9udENhY2hlLnB1dEFsaWFzKGksdCk7cmV0dXJuIHRoaXMuZm9udENhY2hlLmdldChpKX19ZWxzZSBlW2hdPXtmb250SUQ6dGhpcy5pZEZhY3RvcnkuY3JlYXRlRm9udElkKCl9O3UmJihlW2hdLmFsaWFzUmVmPWkpO209ZVtoXS5mb250SUR9ZWxzZSBtPXRoaXMuaWRGYWN0b3J5LmNyZWF0ZUZvbnRJZCgpO2Fzc2VydChtPy5zdGFydHNXaXRoKCJmIiksJ1RoZSAiZm9udElEIiBtdXN0IGJlIChjb3JyZWN0bHkpIGRlZmluZWQuJyk7aWYodSl0aGlzLmZvbnRDYWNoZS5wdXQoaSxvKTtlbHNle3QuY2FjaGVLZXk9YGNhY2hlS2V5XyR7bX1gO3RoaXMuZm9udENhY2hlLnB1dCh0LmNhY2hlS2V5LG8pfXQubG9hZGVkTmFtZT1gJHt0aGlzLmlkRmFjdG9yeS5nZXREb2NJZCgpfV8ke219YDt0aGlzLnRyYW5zbGF0ZUZvbnQoZikudGhlbihhc3luYyBlPT57Y29uc3Qgcj1uZXcgVHJhbnNsYXRlZEZvbnQoe2xvYWRlZE5hbWU6dC5sb2FkZWROYW1lLGZvbnQ6ZSxkaWN0OnR9KTtpZihlLmlzVHlwZTNGb250KXRyeXthd2FpdCByLmxvYWRUeXBlM0RhdGEodGhpcyxuLGEpfWNhdGNoKGUpe3Rocm93IG5ldyBFcnJvcihgVHlwZTMgZm9udCBsb2FkIGVycm9yOiAke2V9YCl9bChyKX0pLmNhdGNoKGU9Pnt3YXJuKGBsb2FkRm9udCAtIHRyYW5zbGF0ZUZvbnQgZmFpbGVkOiAiJHtlfSIuYCk7bChuZXcgVHJhbnNsYXRlZEZvbnQoe2xvYWRlZE5hbWU6dC5sb2FkZWROYW1lLGZvbnQ6bmV3IEVycm9yRm9udChlPy5tZXNzYWdlKSxkaWN0OnR9KSl9KTtyZXR1cm4gb31idWlsZFBhdGgoZSx0LG4pe2NvbnN0e3BhdGhNaW5NYXg6YSxwYXRoQnVmZmVyOnJ9PW47c3dpdGNoKDB8ZSl7Y2FzZSBUZTp7Y29uc3QgZT1uLmN1cnJlbnRQb2ludFg9dFswXSxzPW4uY3VycmVudFBvaW50WT10WzFdLGk9dFsyXSxvPXRbM10sbD1lK2ksZj1zK287MD09PWl8fDA9PT1vP3IucHVzaChZdCxlLHMsSnQsbCxmLGVuKTpyLnB1c2goWXQsZSxzLEp0LGwscyxKdCxsLGYsSnQsZSxmLGVuKTtVdGlsLnJlY3RCb3VuZGluZ0JveChlLHMsbCxmLGEpO2JyZWFrfWNhc2UgU2U6e2NvbnN0IGU9bi5jdXJyZW50UG9pbnRYPXRbMF0scz1uLmN1cnJlbnRQb2ludFk9dFsxXTtyLnB1c2goWXQsZSxzKTtVdGlsLnBvaW50Qm91bmRpbmdCb3goZSxzLGEpO2JyZWFrfWNhc2UgeGU6e2NvbnN0IGU9bi5jdXJyZW50UG9pbnRYPXRbMF0scz1uLmN1cnJlbnRQb2ludFk9dFsxXTtyLnB1c2goSnQsZSxzKTtVdGlsLnBvaW50Qm91bmRpbmdCb3goZSxzLGEpO2JyZWFrfWNhc2UgQWU6e2NvbnN0IGU9bi5jdXJyZW50UG9pbnRYLHM9bi5jdXJyZW50UG9pbnRZLFtpLG8sbCxmLGMsaF09dDtuLmN1cnJlbnRQb2ludFg9YztuLmN1cnJlbnRQb2ludFk9aDtyLnB1c2goUXQsaSxvLGwsZixjLGgpO1V0aWwuYmV6aWVyQm91bmRpbmdCb3goZSxzLGksbyxsLGYsYyxoLGEpO2JyZWFrfWNhc2UgQ2U6e2NvbnN0IGU9bi5jdXJyZW50UG9pbnRYLHM9bi5jdXJyZW50UG9pbnRZLFtpLG8sbCxmXT10O24uY3VycmVudFBvaW50WD1sO24uY3VycmVudFBvaW50WT1mO3IucHVzaChRdCxlLHMsaSxvLGwsZik7VXRpbC5iZXppZXJCb3VuZGluZ0JveChlLHMsZSxzLGksbyxsLGYsYSk7YnJlYWt9Y2FzZSBJZTp7Y29uc3QgZT1uLmN1cnJlbnRQb2ludFgscz1uLmN1cnJlbnRQb2ludFksW2ksbyxsLGZdPXQ7bi5jdXJyZW50UG9pbnRYPWw7bi5jdXJyZW50UG9pbnRZPWY7ci5wdXNoKFF0LGksbyxsLGYsbCxmKTtVdGlsLmJlemllckJvdW5kaW5nQm94KGUscyxpLG8sbCxmLGwsZixhKTticmVha31jYXNlIEZlOnIucHVzaChlbil9fV9nZXRDb2xvclNwYWNlKGUsdCxuKXtyZXR1cm4gQ29sb3JTcGFjZVV0aWxzLnBhcnNlKHtjczplLHhyZWY6dGhpcy54cmVmLHJlc291cmNlczp0LHBkZkZ1bmN0aW9uRmFjdG9yeTp0aGlzLl9wZGZGdW5jdGlvbkZhY3RvcnksZ2xvYmFsQ29sb3JTcGFjZUNhY2hlOnRoaXMuZ2xvYmFsQ29sb3JTcGFjZUNhY2hlLGxvY2FsQ29sb3JTcGFjZUNhY2hlOm4sYXN5bmNJZk5vdENhY2hlZDohMH0pfWFzeW5jIF9oYW5kbGVDb2xvclNwYWNlKGUpe3RyeXtyZXR1cm4gYXdhaXQgZX1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgQWJvcnRFeGNlcHRpb24pcmV0dXJuIG51bGw7aWYodGhpcy5vcHRpb25zLmlnbm9yZUVycm9ycyl7d2FybihgX2hhbmRsZUNvbG9yU3BhY2UgLSBpZ25vcmluZyBDb2xvclNwYWNlOiAiJHtlfSIuYCk7cmV0dXJuIG51bGx9dGhyb3cgZX19cGFyc2VTaGFkaW5nKHtzaGFkaW5nOmUscmVzb3VyY2VzOnQsbG9jYWxDb2xvclNwYWNlQ2FjaGU6bixsb2NhbFNoYWRpbmdQYXR0ZXJuQ2FjaGU6YX0pe2xldCByLHM9YS5nZXQoZSk7aWYocylyZXR1cm4gczt0cnl7cj1QYXR0ZXJuLnBhcnNlU2hhZGluZyhlLHRoaXMueHJlZix0LHRoaXMuX3BkZkZ1bmN0aW9uRmFjdG9yeSx0aGlzLmdsb2JhbENvbG9yU3BhY2VDYWNoZSxuKS5nZXRJUigpfWNhdGNoKHQpe2lmKHQgaW5zdGFuY2VvZiBBYm9ydEV4Y2VwdGlvbilyZXR1cm4gbnVsbDtpZih0aGlzLm9wdGlvbnMuaWdub3JlRXJyb3JzKXt3YXJuKGBwYXJzZVNoYWRpbmcgLSBpZ25vcmluZyBzaGFkaW5nOiAiJHt0fSIuYCk7YS5zZXQoZSxudWxsKTtyZXR1cm4gbnVsbH10aHJvdyB0fXM9YHBhdHRlcm5fJHt0aGlzLmlkRmFjdG9yeS5jcmVhdGVPYmpJZCgpfWA7dGhpcy5wYXJzaW5nVHlwZTNGb250JiYocz1gJHt0aGlzLmlkRmFjdG9yeS5nZXREb2NJZCgpfV90eXBlM18ke3N9YCk7YS5zZXQoZSxzKTtpZih0aGlzLnBhcnNpbmdUeXBlM0ZvbnQpe2NvbnN0IGU9W10sdD1QYXR0ZXJuSW5mby53cml0ZShyKTtlLnB1c2godCk7dGhpcy5oYW5kbGVyLnNlbmQoImNvbW1vbm9iaiIsW3MsIlBhdHRlcm4iLHRdLGUpfWVsc2UgdGhpcy5oYW5kbGVyLnNlbmQoIm9iaiIsW3MsdGhpcy5wYWdlSW5kZXgsIlBhdHRlcm4iLHJdKTtyZXR1cm4gc31oYW5kbGVDb2xvck4oZSx0LG4sYSxyLHMsaSxvLGwsZil7Y29uc3QgYz1uLnBvcCgpO2lmKGMgaW5zdGFuY2VvZiBOYW1lKXtjb25zdCBoPXIuZ2V0UmF3KGMubmFtZSksdT1oIGluc3RhbmNlb2YgUmVmJiZsLmdldEJ5UmVmKGgpO2lmKHUpdHJ5e2NvbnN0IHI9YS5iYXNlP2EuYmFzZS5nZXRSZ2JIZXgobiwwKTpudWxsLHM9Z2V0VGlsaW5nUGF0dGVybklSKHUub3BlcmF0b3JMaXN0SVIsdS5kaWN0LHIpO2UuYWRkT3AodCxzKTtyZXR1cm59Y2F0Y2h7fWNvbnN0IG09dGhpcy54cmVmLmZldGNoSWZSZWYoaCk7aWYobSl7Y29uc3Qgcj1tIGluc3RhbmNlb2YgQmFzZVN0cmVhbT9tLmRpY3Q6bSxjPXIuZ2V0KCJQYXR0ZXJuVHlwZSIpO2lmKGM9PT1Tcyl7Y29uc3Qgbz1hLmJhc2U/YS5iYXNlLmdldFJnYkhleChuLDApOm51bGw7cmV0dXJuIHRoaXMuaGFuZGxlVGlsaW5nVHlwZSh0LG8scyxtLHIsZSxpLGwpfWlmKGM9PT14cyl7Y29uc3Qgbj1yLmdldCgiU2hhZGluZyIpLGE9dGhpcy5wYXJzZVNoYWRpbmcoe3NoYWRpbmc6bixyZXNvdXJjZXM6cyxsb2NhbENvbG9yU3BhY2VDYWNoZTpvLGxvY2FsU2hhZGluZ1BhdHRlcm5DYWNoZTpmfSk7aWYoYSl7Y29uc3Qgbj1sb29rdXBNYXRyaXgoci5nZXRBcnJheSgiTWF0cml4IiksbnVsbCk7ZS5hZGRPcCh0LFsiU2hhZGluZyIsYSxuXSl9cmV0dXJufXRocm93IG5ldyBGb3JtYXRFcnJvcihgVW5rbm93biBQYXR0ZXJuVHlwZTogJHtjfWApfX10aHJvdyBuZXcgRm9ybWF0RXJyb3IoYFVua25vd24gUGF0dGVybk5hbWU6ICR7Y31gKX1fcGFyc2VWaXNpYmlsaXR5RXhwcmVzc2lvbihlLHQsbil7aWYoKyt0PjEwKXt3YXJuKCJWaXNpYmlsaXR5IGV4cHJlc3Npb24gaXMgdG9vIGRlZXBseSBuZXN0ZWQiKTtyZXR1cm59Y29uc3QgYT1lLmxlbmd0aCxyPXRoaXMueHJlZi5mZXRjaElmUmVmKGVbMF0pO2lmKCEoYTwyKSYmciBpbnN0YW5jZW9mIE5hbWUpe3N3aXRjaChyLm5hbWUpe2Nhc2UiQW5kIjpjYXNlIk9yIjpjYXNlIk5vdCI6bi5wdXNoKHIubmFtZSk7YnJlYWs7ZGVmYXVsdDp3YXJuKGBJbnZhbGlkIG9wZXJhdG9yICR7ci5uYW1lfSBpbiB2aXNpYmlsaXR5IGV4cHJlc3Npb25gKTtyZXR1cm59Zm9yKGxldCByPTE7cjxhO3IrKyl7Y29uc3QgYT1lW3JdLHM9dGhpcy54cmVmLmZldGNoSWZSZWYoYSk7aWYoQXJyYXkuaXNBcnJheShzKSl7Y29uc3QgZT1bXTtuLnB1c2goZSk7dGhpcy5fcGFyc2VWaXNpYmlsaXR5RXhwcmVzc2lvbihzLHQsZSl9ZWxzZSBhIGluc3RhbmNlb2YgUmVmJiZuLnB1c2goYS50b1N0cmluZygpKX19ZWxzZSB3YXJuKCJJbnZhbGlkIHZpc2liaWxpdHkgZXhwcmVzc2lvbiIpfWFzeW5jIHBhcnNlTWFya2VkQ29udGVudFByb3BzKGUsdCl7bGV0IG47aWYoZSBpbnN0YW5jZW9mIE5hbWUpe249dC5nZXQoIlByb3BlcnRpZXMiKS5nZXQoZS5uYW1lKX1lbHNle2lmKCEoZSBpbnN0YW5jZW9mIERpY3QpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiT3B0aW9uYWwgY29udGVudCBwcm9wZXJ0aWVzIG1hbGZvcm1lZC4iKTtuPWV9Y29uc3QgYT1uLmdldCgiVHlwZSIpPy5uYW1lO2lmKCJPQ0ciPT09YSlyZXR1cm57dHlwZTphLGlkOm4ub2JqSWR9O2lmKCJPQ01EIj09PWEpe2NvbnN0IGU9bi5nZXQoIlZFIik7aWYoQXJyYXkuaXNBcnJheShlKSl7Y29uc3QgdD1bXTt0aGlzLl9wYXJzZVZpc2liaWxpdHlFeHByZXNzaW9uKGUsMCx0KTtpZih0Lmxlbmd0aD4wKXJldHVybnt0eXBlOiJPQ01EIixleHByZXNzaW9uOnR9fWNvbnN0IHQ9bi5nZXQoIk9DR3MiKTtpZihBcnJheS5pc0FycmF5KHQpfHx0IGluc3RhbmNlb2YgRGljdCl7Y29uc3QgZT1bXTtpZihBcnJheS5pc0FycmF5KHQpKWZvcihjb25zdCBuIG9mIHQpZS5wdXNoKG4udG9TdHJpbmcoKSk7ZWxzZSBlLnB1c2godC5vYmpJZCk7cmV0dXJue3R5cGU6YSxpZHM6ZSxwb2xpY3k6bi5nZXQoIlAiKWluc3RhbmNlb2YgTmFtZT9uLmdldCgiUCIpLm5hbWU6bnVsbCxleHByZXNzaW9uOm51bGx9fWlmKHQgaW5zdGFuY2VvZiBSZWYpcmV0dXJue3R5cGU6YSxpZDp0LnRvU3RyaW5nKCl9fXJldHVybiBudWxsfWFzeW5jIGdldE9wZXJhdG9yTGlzdCh7c3RyZWFtOmUsdGFzazp0LHJlc291cmNlczpuLG9wZXJhdG9yTGlzdDphLGluaXRpYWxTdGF0ZTpyPW51bGwsZmFsbGJhY2tGb250RGljdDpzPW51bGwscHJldlJlZnM6aT1udWxsfSl7aWYoZS5pc0FzeW5jKXtjb25zdCB0PWF3YWl0IGUuYXN5bmNHZXRCeXRlcygpO3QmJihlPW5ldyBTdHJlYW0odCwwLHQubGVuZ3RoLGUuZGljdCkpfWNvbnN0IG89ZS5kaWN0Py5vYmpJZCxsPW5ldyBSZWZTZXQoaSk7aWYobyl7aWYoaT8uaGFzKG8pKXRocm93IG5ldyBFcnJvcihgZ2V0T3BlcmF0b3JMaXN0IC0gaWdub3JpbmcgY2lyY3VsYXIgcmVmZXJlbmNlOiAke299YCk7bC5wdXQobyl9bnx8PURpY3QuZW1wdHk7cnx8PW5ldyBFdmFsU3RhdGU7aWYoIWEpdGhyb3cgbmV3IEVycm9yKCdnZXRPcGVyYXRvckxpc3Q6IG1pc3NpbmcgIm9wZXJhdG9yTGlzdCIgcGFyYW1ldGVyJyk7Y29uc3QgZj10aGlzLGM9dGhpcy54cmVmLGg9bmV3IExvY2FsSW1hZ2VDYWNoZSx1PW5ldyBMb2NhbENvbG9yU3BhY2VDYWNoZSxtPW5ldyBMb2NhbEdTdGF0ZUNhY2hlLHA9bmV3IExvY2FsVGlsaW5nUGF0dGVybkNhY2hlLGQ9bmV3IE1hcCxnPW4uZ2V0KCJYT2JqZWN0Iil8fERpY3QuZW1wdHksYj1uLmdldCgiUGF0dGVybiIpfHxEaWN0LmVtcHR5LHc9bmV3IFN0YXRlTWFuYWdlcihyKSxqPW5ldyBFdmFsdWF0b3JQcmVwcm9jZXNzb3IoZSxjLHcpLGs9bmV3IFRpbWVTbG90TWFuYWdlcjtmdW5jdGlvbiBjbG9zZVBlbmRpbmdSZXN0b3JlT1BTKGUpe2ZvcihsZXQgZT0wLHQ9ai5zYXZlZFN0YXRlc0RlcHRoO2U8dDtlKyspYS5hZGRPcChxZSxbXSl9cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIHByb21pc2VCb2R5KGUscil7Y29uc3QgbmV4dD1mdW5jdGlvbih0KXtQcm9taXNlLmFsbChbdCxhLnJlYWR5XSkudGhlbihmdW5jdGlvbigpe3RyeXtwcm9taXNlQm9keShlLHIpfWNhdGNoKGUpe3IoZSl9fSxyKX07dC5lbnN1cmVOb3RUZXJtaW5hdGVkKCk7ay5yZXNldCgpO2NvbnN0IGk9e307bGV0IG8seSxxLHYsUyx4O2Zvcig7IShvPWsuY2hlY2soKSk7KXtpLmFyZ3M9bnVsbDtpZighai5yZWFkKGkpKWJyZWFrO2xldCBlPWkuYXJncyxyPWkuZm47c3dpdGNoKDB8cil7Y2FzZSBTdDp4PWVbMF1pbnN0YW5jZW9mIE5hbWU7Uz1lWzBdLm5hbWU7aWYoeCl7Y29uc3QgdD1oLmdldEJ5TmFtZShTKTtpZih0KXthZGRDYWNoZWRJbWFnZU9wcyhhLHQpO2U9bnVsbDtjb250aW51ZX19bmV4dChuZXcgUHJvbWlzZShmdW5jdGlvbihlLHIpe2lmKCF4KXRocm93IG5ldyBGb3JtYXRFcnJvcigiWE9iamVjdCBtdXN0IGJlIHJlZmVycmVkIHRvIGJ5IG5hbWUuIik7bGV0IHM9Zy5nZXRSYXcoUyk7aWYocyBpbnN0YW5jZW9mIFJlZil7Y29uc3QgdD1oLmdldEJ5UmVmKHMpfHxmLl9yZWdpb25hbEltYWdlQ2FjaGUuZ2V0QnlSZWYocyl8fGYuZ2xvYmFsSW1hZ2VDYWNoZS5nZXREYXRhKHMsZi5wYWdlSW5kZXgpO2lmKHQpe2FkZENhY2hlZEltYWdlT3BzKGEsdCk7ZSgpO3JldHVybn1zPWMuZmV0Y2gocyl9aWYoIShzIGluc3RhbmNlb2YgQmFzZVN0cmVhbSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJYT2JqZWN0IHNob3VsZCBiZSBhIHN0cmVhbSIpO2NvbnN0IGk9cy5kaWN0LmdldCgiU3VidHlwZSIpO2lmKCEoaSBpbnN0YW5jZW9mIE5hbWUpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiWE9iamVjdCBzaG91bGQgaGF2ZSBhIE5hbWUgc3VidHlwZSIpO2lmKCJGb3JtIiE9PWkubmFtZSlpZigiSW1hZ2UiIT09aS5uYW1lKXtpZigiUFMiIT09aS5uYW1lKXRocm93IG5ldyBGb3JtYXRFcnJvcihgVW5oYW5kbGVkIFhPYmplY3Qgc3VidHlwZSAke2kubmFtZX1gKTtpbmZvKCJJZ25vcmVkIFhPYmplY3Qgc3VidHlwZSBQUyIpO2UoKX1lbHNlIGYuYnVpbGRQYWludEltYWdlWE9iamVjdCh7cmVzb3VyY2VzOm4saW1hZ2U6cyxvcGVyYXRvckxpc3Q6YSxjYWNoZUtleTpTLGxvY2FsSW1hZ2VDYWNoZTpoLGxvY2FsQ29sb3JTcGFjZUNhY2hlOnV9KS50aGVuKGUscik7ZWxzZXt3LnNhdmUoKTtmLmJ1aWxkRm9ybVhPYmplY3QobixzLG51bGwsYSx0LHcuc3RhdGUuY2xvbmUoe25ld1BhdGg6ITB9KSx1LGwpLnRoZW4oZnVuY3Rpb24oKXt3LnJlc3RvcmUoKTtlKCl9LHIpfX0pLmNhdGNoKGZ1bmN0aW9uKGUpe2lmKCEoZSBpbnN0YW5jZW9mIEFib3J0RXhjZXB0aW9uKSl7aWYoIWYub3B0aW9ucy5pZ25vcmVFcnJvcnMpdGhyb3cgZTt3YXJuKGBnZXRPcGVyYXRvckxpc3QgLSBpZ25vcmluZyBYT2JqZWN0OiAiJHtlfSIuYCl9fSkpO3JldHVybjtjYXNlIEdlOmNvbnN0IGk9ZVsxXTtuZXh0KGYuaGFuZGxlU2V0Rm9udChuLGUsbnVsbCxhLHQsdy5zdGF0ZSxzKS50aGVuKGZ1bmN0aW9uKGUpe2EuYWRkRGVwZW5kZW5jeShlKTthLmFkZE9wKEdlLFtlLGldKX0pKTtyZXR1cm47Y2FzZSB2dDpjb25zdCBvPWVbMF0uY2FjaGVLZXk7aWYobyl7Y29uc3QgdD1oLmdldEJ5TmFtZShvKTtpZih0KXthZGRDYWNoZWRJbWFnZU9wcyhhLHQpO2U9bnVsbDtjb250aW51ZX19bmV4dChmLmJ1aWxkUGFpbnRJbWFnZVhPYmplY3Qoe3Jlc291cmNlczpuLGltYWdlOmVbMF0saXNJbmxpbmU6ITAsb3BlcmF0b3JMaXN0OmEsY2FjaGVLZXk6byxsb2NhbEltYWdlQ2FjaGU6aCxsb2NhbENvbG9yU3BhY2VDYWNoZTp1fSkpO3JldHVybjtjYXNlIHR0OmlmKCF3LnN0YXRlLmZvbnQpe2YuZW5zdXJlU3RhdGVGb250KHcuc3RhdGUpO2NvbnRpbnVlfWVbMF09Zi5oYW5kbGVUZXh0KGVbMF0sdy5zdGF0ZSk7YnJlYWs7Y2FzZSBudDppZighdy5zdGF0ZS5mb250KXtmLmVuc3VyZVN0YXRlRm9udCh3LnN0YXRlKTtjb250aW51ZX1jb25zdCBqPVtdLGs9dy5zdGF0ZTtmb3IoY29uc3QgdCBvZiBlWzBdKSJzdHJpbmciPT10eXBlb2YgdD9qLnB1c2goLi4uZi5oYW5kbGVUZXh0KHQsaykpOiJudW1iZXIiPT10eXBlb2YgdCYmai5wdXNoKHQpO2VbMF09ajtyPXR0O2JyZWFrO2Nhc2UgcnQ6aWYoIXcuc3RhdGUuZm9udCl7Zi5lbnN1cmVTdGF0ZUZvbnQody5zdGF0ZSk7Y29udGludWV9YS5hZGRPcChldCk7ZVswXT1mLmhhbmRsZVRleHQoZVswXSx3LnN0YXRlKTtyPXR0O2JyZWFrO2Nhc2Ugc3Q6aWYoIXcuc3RhdGUuZm9udCl7Zi5lbnN1cmVTdGF0ZUZvbnQody5zdGF0ZSk7Y29udGludWV9YS5hZGRPcChldCk7YS5hZGRPcChXZSxbZS5zaGlmdCgpXSk7YS5hZGRPcChYZSxbZS5zaGlmdCgpXSk7ZVswXT1mLmhhbmRsZVRleHQoZVswXSx3LnN0YXRlKTtyPXR0O2JyZWFrO2Nhc2UgJGU6dy5zdGF0ZS50ZXh0UmVuZGVyaW5nTW9kZT1lWzBdO2JyZWFrO2Nhc2UgZnQ6e2NvbnN0IHQ9Zi5fZ2V0Q29sb3JTcGFjZShlWzBdLG4sdSk7aWYodCBpbnN0YW5jZW9mIENvbG9yU3BhY2Upe3cuc3RhdGUuZmlsbENvbG9yU3BhY2U9dDtjb250aW51ZX1uZXh0KGYuX2hhbmRsZUNvbG9yU3BhY2UodCkudGhlbihlPT57dy5zdGF0ZS5maWxsQ29sb3JTcGFjZT1lfHxDb2xvclNwYWNlVXRpbHMuZ3JheX0pKTtyZXR1cm59Y2FzZSBsdDp7Y29uc3QgdD1mLl9nZXRDb2xvclNwYWNlKGVbMF0sbix1KTtpZih0IGluc3RhbmNlb2YgQ29sb3JTcGFjZSl7dy5zdGF0ZS5zdHJva2VDb2xvclNwYWNlPXQ7Y29udGludWV9bmV4dChmLl9oYW5kbGVDb2xvclNwYWNlKHQpLnRoZW4oZT0+e3cuc3RhdGUuc3Ryb2tlQ29sb3JTcGFjZT1lfHxDb2xvclNwYWNlVXRpbHMuZ3JheX0pKTtyZXR1cm59Y2FzZSB1dDp2PXcuc3RhdGUuZmlsbENvbG9yU3BhY2U7ZT1bdi5nZXRSZ2JIZXgoZSwwKV07cj1idDticmVhaztjYXNlIGN0OnY9dy5zdGF0ZS5zdHJva2VDb2xvclNwYWNlO2U9W3YuZ2V0UmdiSGV4KGUsMCldO3I9Z3Q7YnJlYWs7Y2FzZSBkdDp3LnN0YXRlLmZpbGxDb2xvclNwYWNlPUNvbG9yU3BhY2VVdGlscy5ncmF5O2U9W0NvbG9yU3BhY2VVdGlscy5ncmF5LmdldFJnYkhleChlLDApXTtyPWJ0O2JyZWFrO2Nhc2UgcHQ6dy5zdGF0ZS5zdHJva2VDb2xvclNwYWNlPUNvbG9yU3BhY2VVdGlscy5ncmF5O2U9W0NvbG9yU3BhY2VVdGlscy5ncmF5LmdldFJnYkhleChlLDApXTtyPWd0O2JyZWFrO2Nhc2UganQ6dy5zdGF0ZS5maWxsQ29sb3JTcGFjZT1Db2xvclNwYWNlVXRpbHMuY215aztlPVtDb2xvclNwYWNlVXRpbHMuY215ay5nZXRSZ2JIZXgoZSwwKV07cj1idDticmVhaztjYXNlIHd0Oncuc3RhdGUuc3Ryb2tlQ29sb3JTcGFjZT1Db2xvclNwYWNlVXRpbHMuY215aztlPVtDb2xvclNwYWNlVXRpbHMuY215ay5nZXRSZ2JIZXgoZSwwKV07cj1ndDticmVhaztjYXNlIGJ0Oncuc3RhdGUuZmlsbENvbG9yU3BhY2U9Q29sb3JTcGFjZVV0aWxzLnJnYjtlPVtDb2xvclNwYWNlVXRpbHMucmdiLmdldFJnYkhleChlLDApXTticmVhaztjYXNlIGd0Oncuc3RhdGUuc3Ryb2tlQ29sb3JTcGFjZT1Db2xvclNwYWNlVXRpbHMucmdiO2U9W0NvbG9yU3BhY2VVdGlscy5yZ2IuZ2V0UmdiSGV4KGUsMCldO2JyZWFrO2Nhc2UgbXQ6dj13LnN0YXRlLnBhdHRlcm5GaWxsQ29sb3JTcGFjZTtpZighdil7aWYoaXNOdW1iZXJBcnJheShlLG51bGwpKXtlPVtDb2xvclNwYWNlVXRpbHMuZ3JheS5nZXRSZ2JIZXgoZSwwKV07cj1idDticmVha31lPVtdO3I9R3Q7YnJlYWt9aWYoIlBhdHRlcm4iPT09di5uYW1lKXtuZXh0KGYuaGFuZGxlQ29sb3JOKGEsbXQsZSx2LGIsbix0LHUscCxkKSk7cmV0dXJufWU9W3YuZ2V0UmdiSGV4KGUsMCldO3I9YnQ7YnJlYWs7Y2FzZSBodDp2PXcuc3RhdGUucGF0dGVyblN0cm9rZUNvbG9yU3BhY2U7aWYoIXYpe2lmKGlzTnVtYmVyQXJyYXkoZSxudWxsKSl7ZT1bQ29sb3JTcGFjZVV0aWxzLmdyYXkuZ2V0UmdiSGV4KGUsMCldO3I9Z3Q7YnJlYWt9ZT1bXTtyPVZ0O2JyZWFrfWlmKCJQYXR0ZXJuIj09PXYubmFtZSl7bmV4dChmLmhhbmRsZUNvbG9yTihhLGh0LGUsdixiLG4sdCx1LHAsZCkpO3JldHVybn1lPVt2LmdldFJnYkhleChlLDApXTtyPWd0O2JyZWFrO2Nhc2Uga3Q6bGV0IEM7dHJ5e2NvbnN0IHQ9bi5nZXQoIlNoYWRpbmciKTtpZighdCl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIk5vIHNoYWRpbmcgcmVzb3VyY2UgZm91bmQiKTtDPXQuZ2V0KGVbMF0ubmFtZSk7aWYoIUMpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJObyBzaGFkaW5nIG9iamVjdCBmb3VuZCIpfWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBBYm9ydEV4Y2VwdGlvbiljb250aW51ZTtpZihmLm9wdGlvbnMuaWdub3JlRXJyb3JzKXt3YXJuKGBnZXRPcGVyYXRvckxpc3QgLSBpZ25vcmluZyBTaGFkaW5nOiAiJHtlfSIuYCk7Y29udGludWV9dGhyb3cgZX1jb25zdCBUPWYucGFyc2VTaGFkaW5nKHtzaGFkaW5nOkMscmVzb3VyY2VzOm4sbG9jYWxDb2xvclNwYWNlQ2FjaGU6dSxsb2NhbFNoYWRpbmdQYXR0ZXJuQ2FjaGU6ZH0pO2lmKCFUKWNvbnRpbnVlO2U9W1RdO3I9a3Q7YnJlYWs7Y2FzZSBrZTp4PWVbMF1pbnN0YW5jZW9mIE5hbWU7Uz1lWzBdLm5hbWU7aWYoeCl7Y29uc3QgdD1tLmdldEJ5TmFtZShTKTtpZih0KXt0Lmxlbmd0aD4wJiZhLmFkZE9wKGtlLFt0XSk7ZT1udWxsO2NvbnRpbnVlfX1uZXh0KG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUscil7aWYoIXgpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJHU3RhdGUgbXVzdCBiZSByZWZlcnJlZCB0byBieSBuYW1lLiIpO2NvbnN0IHM9bi5nZXQoIkV4dEdTdGF0ZSIpO2lmKCEocyBpbnN0YW5jZW9mIERpY3QpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiRXh0R1N0YXRlIHNob3VsZCBiZSBhIGRpY3Rpb25hcnkuIik7Y29uc3QgaT1zLmdldChTKTtpZighKGkgaW5zdGFuY2VvZiBEaWN0KSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkdTdGF0ZSBzaG91bGQgYmUgYSBkaWN0aW9uYXJ5LiIpO2Yuc2V0R1N0YXRlKHtyZXNvdXJjZXM6bixnU3RhdGU6aSxvcGVyYXRvckxpc3Q6YSxjYWNoZUtleTpTLHRhc2s6dCxzdGF0ZU1hbmFnZXI6dyxsb2NhbEdTdGF0ZUNhY2hlOm0sbG9jYWxDb2xvclNwYWNlQ2FjaGU6dSxzZWVuUmVmczpsfSkudGhlbihlLHIpfSkuY2F0Y2goZnVuY3Rpb24oZSl7aWYoIShlIGluc3RhbmNlb2YgQWJvcnRFeGNlcHRpb24pKXtpZighZi5vcHRpb25zLmlnbm9yZUVycm9ycyl0aHJvdyBlO3dhcm4oYGdldE9wZXJhdG9yTGlzdCAtIGlnbm9yaW5nIEV4dEdTdGF0ZTogIiR7ZX0iLmApfX0pKTtyZXR1cm47Y2FzZSBtZTp7Y29uc3RbdF09ZTtpZigibnVtYmVyIiE9dHlwZW9mIHQpe3dhcm4oYEludmFsaWQgc2V0TGluZVdpZHRoOiAke3R9YCk7Y29udGludWV9ZVswXT1NYXRoLmFicyh0KTticmVha31jYXNlIGJlOntjb25zdCB0PWVbMV07aWYoIm51bWJlciIhPXR5cGVvZiB0KXt3YXJuKGBJbnZhbGlkIHNldERhc2g6ICR7dH1gKTtjb250aW51ZX1jb25zdCBuPWVbMF07aWYoIUFycmF5LmlzQXJyYXkobikpe3dhcm4oYEludmFsaWQgc2V0RGFzaDogJHtufWApO2NvbnRpbnVlfW4uc29tZShlPT4ibnVtYmVyIiE9dHlwZW9mIGUpJiYoZVswXT1uLmZpbHRlcihlPT4ibnVtYmVyIj09dHlwZW9mIGUpKTticmVha31jYXNlIFNlOmNhc2UgeGU6Y2FzZSBBZTpjYXNlIENlOmNhc2UgSWU6Y2FzZSBGZTpjYXNlIFRlOmYuYnVpbGRQYXRoKHIsZSx3LnN0YXRlKTtjb250aW51ZTtjYXNlIE9lOmNhc2UgUmU6Y2FzZSBCZTpjYXNlIEhlOmNhc2UgRGU6Y2FzZSBNZTpjYXNlIFBlOmNhc2UgRWU6Y2FzZSBOZTp7Y29uc3R7c3RhdGU6e3BhdGhCdWZmZXI6ZSxwYXRoTWluTWF4OnR9fT13O3IhPT1SZSYmciE9PVBlJiZyIT09RWV8fGUucHVzaChlbik7aWYoMD09PWUubGVuZ3RoKWEuYWRkT3AoS3QsW3IsW251bGxdLG51bGxdKTtlbHNle2EuYWRkT3AoS3QsW3IsW25ldyBGbG9hdDMyQXJyYXkoZSldLHQuc2xpY2UoKV0pO2UubGVuZ3RoPTA7dC5zZXQoWzEvMCwxLzAsLTEvMCwtMS8wXSwwKX1jb250aW51ZX1jYXNlIFplOmEuYWRkT3AocixbbmV3IEZsb2F0MzJBcnJheShlKV0pO2NvbnRpbnVlO2Nhc2UgeHQ6Y2FzZSBBdDpjYXNlIFR0OmNhc2UgT3Q6Y29udGludWU7Y2FzZSBJdDppZighKGVbMF1pbnN0YW5jZW9mIE5hbWUpKXt3YXJuKGBFeHBlY3RlZCBuYW1lIGZvciBiZWdpbk1hcmtlZENvbnRlbnRQcm9wcyBhcmcwPSR7ZVswXX1gKTthLmFkZE9wKEl0LFsiT0MiLG51bGxdKTtjb250aW51ZX1pZigiT0MiPT09ZVswXS5uYW1lKXtuZXh0KGYucGFyc2VNYXJrZWRDb250ZW50UHJvcHMoZVsxXSxuKS50aGVuKGU9PnthLmFkZE9wKEl0LFsiT0MiLGVdKX0pLmNhdGNoKGU9PntpZighKGUgaW5zdGFuY2VvZiBBYm9ydEV4Y2VwdGlvbikpe2lmKCFmLm9wdGlvbnMuaWdub3JlRXJyb3JzKXRocm93IGU7d2FybihgZ2V0T3BlcmF0b3JMaXN0IC0gaWdub3JpbmcgYmVnaW5NYXJrZWRDb250ZW50UHJvcHM6ICIke2V9Ii5gKTthLmFkZE9wKEl0LFsiT0MiLG51bGxdKX19KSk7cmV0dXJufWU9W2VbMF0ubmFtZSxlWzFdaW5zdGFuY2VvZiBEaWN0P2VbMV0uZ2V0KCJNQ0lEIik6bnVsbF07YnJlYWs7ZGVmYXVsdDppZihudWxsIT09ZSl7Zm9yKHk9MCxxPWUubGVuZ3RoO3k8cSYmIShlW3ldaW5zdGFuY2VvZiBEaWN0KTt5KyspO2lmKHk8cSl7d2FybigiZ2V0T3BlcmF0b3JMaXN0IC0gaWdub3Jpbmcgb3BlcmF0b3I6ICIrcik7Y29udGludWV9fX1hLmFkZE9wKHIsZSl9aWYobyluZXh0KEFzKTtlbHNle2Nsb3NlUGVuZGluZ1Jlc3RvcmVPUFMoKTtlKCl9fSkuY2F0Y2goZT0+e2lmKCEoZSBpbnN0YW5jZW9mIEFib3J0RXhjZXB0aW9uKSl7aWYoIXRoaXMub3B0aW9ucy5pZ25vcmVFcnJvcnMpdGhyb3cgZTt3YXJuKGBnZXRPcGVyYXRvckxpc3QgLSBpZ25vcmluZyBlcnJvcnMgZHVyaW5nICIke3QubmFtZX0iIHRhc2s6ICIke2V9Ii5gKTtjbG9zZVBlbmRpbmdSZXN0b3JlT1BTKCl9fSl9YXN5bmMgZ2V0VGV4dENvbnRlbnQoe3N0cmVhbTplLHRhc2s6dCxyZXNvdXJjZXM6bixzdGF0ZU1hbmFnZXI6cj1udWxsLGluY2x1ZGVNYXJrZWRDb250ZW50OnM9ITEsc2luazppLHNlZW5TdHlsZXM6bz1uZXcgU2V0LHZpZXdCb3g6bCxsYW5nOmY9bnVsbCxtYXJrZWRDb250ZW50RGF0YTpjPW51bGwsZGlzYWJsZU5vcm1hbGl6YXRpb246aD0hMSxrZWVwV2hpdGVTcGFjZTp1PSExLHByZXZSZWZzOm09bnVsbCxpbnRlcnNlY3RvcjpwPW51bGx9KXtpZihlLmlzQXN5bmMpe2NvbnN0IHQ9YXdhaXQgZS5hc3luY0dldEJ5dGVzKCk7dCYmKGU9bmV3IFN0cmVhbSh0LDAsdC5sZW5ndGgsZS5kaWN0KSl9Y29uc3QgZD1lLmRpY3Q/Lm9iaklkLGc9bmV3IFJlZlNldChtKTtpZihkKXtpZihtPy5oYXMoZCkpdGhyb3cgbmV3IEVycm9yKGBnZXRUZXh0Q29udGVudCAtIGlnbm9yaW5nIGNpcmN1bGFyIHJlZmVyZW5jZTogJHtkfWApO2cucHV0KGQpfW58fD1EaWN0LmVtcHR5O3J8fD1uZXcgU3RhdGVNYW5hZ2VyKG5ldyBUZXh0U3RhdGUpO3MmJihjfHw9e2xldmVsOjB9KTtjb25zdCBiPXtpdGVtczpbXSxzdHlsZXM6T2JqZWN0LmNyZWF0ZShudWxsKSxsYW5nOmZ9LHc9e2luaXRpYWxpemVkOiExLHN0cjpbXSx0b3RhbFdpZHRoOjAsdG90YWxIZWlnaHQ6MCx3aWR0aDowLGhlaWdodDowLHZlcnRpY2FsOiExLHByZXZUcmFuc2Zvcm06bnVsbCx0ZXh0QWR2YW5jZVNjYWxlOjAsc3BhY2VJbkZsb3dNaW46MCxzcGFjZUluRmxvd01heDowLHRyYWNraW5nU3BhY2VNaW46MS8wLG5lZ2F0aXZlU3BhY2VNYXg6LTEvMCxub3RBU3BhY2U6LTEvMCx0cmFuc2Zvcm06bnVsbCxmb250TmFtZTpudWxsLGhhc0VPTDohMX0saj1bIiAiLCIgIl07bGV0IGs9MDtmdW5jdGlvbiBzYXZlTGFzdENoYXIoZSl7Y29uc3QgdD0oaysxKSUyLG49IiAiIT09altrXSYmIiAiPT09alt0XTtqW2tdPWU7az10O3JldHVybiF1JiZufWZ1bmN0aW9uIHNob3VsZEFkZFdoaXRlcHNhY2UoKXtyZXR1cm4hdSYmIiAiIT09altrXSYmIiAiPT09alsoaysxKSUyXX1mdW5jdGlvbiByZXNldExhc3RDaGFycygpe2pbMF09alsxXT0iICI7az0wfWNvbnN0IHk9dGhpcyxxPXRoaXMueHJlZix2PVtdO2xldCBTPW51bGw7Y29uc3QgeD1uZXcgTG9jYWxJbWFnZUNhY2hlLEM9bmV3IExvY2FsR1N0YXRlQ2FjaGUsVD1uZXcgRXZhbHVhdG9yUHJlcHJvY2Vzc29yKGUscSxyKTtsZXQgTyxSO2Z1bmN0aW9uIHB1c2hXaGl0ZXNwYWNlKHt3aWR0aDplPTAsaGVpZ2h0OnQ9MCx0cmFuc2Zvcm06bj13LnByZXZUcmFuc2Zvcm0sZm9udE5hbWU6YT13LmZvbnROYW1lfSl7cD8uYWRkRXh0cmFDaGFyKCIgIik7Yi5pdGVtcy5wdXNoKHtzdHI6IiAiLGRpcjoibHRyIix3aWR0aDplLGhlaWdodDp0LHRyYW5zZm9ybTpuLGZvbnROYW1lOmEsaGFzRU9MOiExfSl9ZnVuY3Rpb24gZ2V0Q3VycmVudFRleHRUcmFuc2Zvcm0oKXtjb25zdCBlPU8uZm9udCx0PVtPLmZvbnRTaXplKk8udGV4dEhTY2FsZSwwLDAsTy5mb250U2l6ZSwwLE8udGV4dFJpc2VdO2lmKGUuaXNUeXBlM0ZvbnQmJihPLmZvbnRTaXplPD0xfHxlLmlzQ2hhckJCb3gpJiYhaXNBcnJheUVxdWFsKE8uZm9udE1hdHJpeCxhKSl7Y29uc3Qgbj1lLmJib3hbM10tZS5iYm94WzFdO24+MCYmKHRbM10qPW4qTy5mb250TWF0cml4WzNdKX1yZXR1cm4gVXRpbC50cmFuc2Zvcm0oTy5jdG0sVXRpbC50cmFuc2Zvcm0oTy50ZXh0TWF0cml4LHQpKX1mdW5jdGlvbiBlbnN1cmVUZXh0Q29udGVudEl0ZW0oKXtpZih3LmluaXRpYWxpemVkKXJldHVybiB3O2NvbnN0e2ZvbnQ6ZSxsb2FkZWROYW1lOnR9PU87aWYoIW8uaGFzKHQpKXtvLmFkZCh0KTtiLnN0eWxlc1t0XT17Zm9udEZhbWlseTplLmZhbGxiYWNrTmFtZSxhc2NlbnQ6ZS5hc2NlbnQsZGVzY2VudDplLmRlc2NlbnQsdmVydGljYWw6ZS52ZXJ0aWNhbH07aWYoeS5vcHRpb25zLmZvbnRFeHRyYVByb3BlcnRpZXMmJmUuc3lzdGVtRm9udEluZm8pe2NvbnN0IG49Yi5zdHlsZXNbdF07bi5mb250U3Vic3RpdHV0aW9uPWUuc3lzdGVtRm9udEluZm8uY3NzO24uZm9udFN1YnN0aXR1dGlvbkxvYWRlZE5hbWU9ZS5zeXN0ZW1Gb250SW5mby5sb2FkZWROYW1lfX13LmZvbnROYW1lPXQ7Y29uc3Qgbj13LnRyYW5zZm9ybT1nZXRDdXJyZW50VGV4dFRyYW5zZm9ybSgpO2lmKGUudmVydGljYWwpe3cud2lkdGg9dy50b3RhbFdpZHRoPU1hdGguaHlwb3QoblswXSxuWzFdKTt3LmhlaWdodD13LnRvdGFsSGVpZ2h0PTA7dy52ZXJ0aWNhbD0hMH1lbHNle3cud2lkdGg9dy50b3RhbFdpZHRoPTA7dy5oZWlnaHQ9dy50b3RhbEhlaWdodD1NYXRoLmh5cG90KG5bMl0sblszXSk7dy52ZXJ0aWNhbD0hMX1jb25zdCBhPU1hdGguaHlwb3QoTy50ZXh0TGluZU1hdHJpeFswXSxPLnRleHRMaW5lTWF0cml4WzFdKSxyPU1hdGguaHlwb3QoTy5jdG1bMF0sTy5jdG1bMV0pO3cudGV4dEFkdmFuY2VTY2FsZT1yKmE7Y29uc3R7Zm9udFNpemU6c309Tzt3LnRyYWNraW5nU3BhY2VNaW49LjEwMipzO3cubm90QVNwYWNlPS4wMypzO3cubmVnYXRpdmVTcGFjZU1heD0tLjIqczt3LnNwYWNlSW5GbG93TWluPS4xMDIqczt3LnNwYWNlSW5GbG93TWF4PS42KnM7dy5oYXNFT0w9ITE7dy5pbml0aWFsaXplZD0hMDtyZXR1cm4gd31mdW5jdGlvbiB1cGRhdGVBZHZhbmNlU2NhbGUoKXtpZighdy5pbml0aWFsaXplZClyZXR1cm47Y29uc3QgZT1NYXRoLmh5cG90KE8udGV4dExpbmVNYXRyaXhbMF0sTy50ZXh0TGluZU1hdHJpeFsxXSksdD1NYXRoLmh5cG90KE8uY3RtWzBdLE8uY3RtWzFdKSplO2lmKHQhPT13LnRleHRBZHZhbmNlU2NhbGUpe2lmKHcudmVydGljYWwpe3cudG90YWxIZWlnaHQrPXcuaGVpZ2h0KncudGV4dEFkdmFuY2VTY2FsZTt3LmhlaWdodD0wfWVsc2V7dy50b3RhbFdpZHRoKz13LndpZHRoKncudGV4dEFkdmFuY2VTY2FsZTt3LndpZHRoPTB9dy50ZXh0QWR2YW5jZVNjYWxlPXR9fWZ1bmN0aW9uIHJ1bkJpZGlUcmFuc2Zvcm0oZSl7bGV0IHQ9ZS5zdHIuam9pbigiIik7aHx8KHQ9ZnVuY3Rpb24gbm9ybWFsaXplVW5pY29kZShlKXtpZighbG4pe2xuPS8oW1x1MDBhMFx1MDBiNVx1MDM3ZVx1MGViM1x1MjAwMC1cdTIwMGFcdTIwMmZcdTIxMjZcdWZiMDAtXHVmYjA0XHVmYjA2XHVmYjIwLVx1ZmIzNlx1ZmIzOC1cdWZiM2NcdWZiM2VcdWZiNDAtXHVmYjQxXHVmYjQzLVx1ZmI0NFx1ZmI0Ni1cdWZiYTFcdWZiYTQtXHVmYmE5XHVmYmFlLVx1ZmJiMVx1ZmJkMy1cdWZiZGNcdWZiZGUtXHVmYmU3XHVmYmVhLVx1ZmJmOFx1ZmJmYy1cdWZiZmRcdWZjMDAtXHVmYzVkXHVmYzY0LVx1ZmNmMVx1ZmNmNS1cdWZkM2RcdWZkODhcdWZkZjRcdWZkZmEtXHVmZGZiXHVmZTcxXHVmZTc3XHVmZTc5XHVmZTdiXHVmZTdkXSspfChcdWZiMDUrKS9ndTtmbj1uZXcgTWFwKFtbIu+shSIsIsW/dCJdXSl9cmV0dXJuIGUucmVwbGFjZUFsbChsbiwoZSx0LG4pPT50P3Qubm9ybWFsaXplKCJORktDIik6Zm4uZ2V0KG4pKX0odCkpO2NvbnN0IG49YmlkaSh0LC0xLGUudmVydGljYWwpO3JldHVybntzdHI6bi5zdHIsZGlyOm4uZGlyLHdpZHRoOk1hdGguYWJzKGUudG90YWxXaWR0aCksaGVpZ2h0Ok1hdGguYWJzKGUudG90YWxIZWlnaHQpLHRyYW5zZm9ybTplLnRyYW5zZm9ybSxmb250TmFtZTplLmZvbnROYW1lLGhhc0VPTDplLmhhc0VPTH19YXN5bmMgZnVuY3Rpb24gaGFuZGxlU2V0Rm9udChlLHIpe2NvbnN0IHM9YXdhaXQgeS5sb2FkRm9udChlLHIsbix0KTtPLmxvYWRlZE5hbWU9cy5sb2FkZWROYW1lO08uZm9udD1zLmZvbnQ7Ty5mb250TWF0cml4PXMuZm9udC5mb250TWF0cml4fHxhfWZ1bmN0aW9uIGFwcGx5SW52ZXJzZVJvdGF0aW9uKGUsdCxuKXtjb25zdCBhPU1hdGguaHlwb3QoblswXSxuWzFdKTtyZXR1cm5bKG5bMF0qZStuWzFdKnQpL2EsKG5bMl0qZStuWzNdKnQpL2FdfWZ1bmN0aW9uIGNvbXBhcmVXaXRoTGFzdFBvc2l0aW9uKGUpe2NvbnN0IHQ9Z2V0Q3VycmVudFRleHRUcmFuc2Zvcm0oKTtsZXQgbj10WzRdLGE9dFs1XTtpZihPLmZvbnQ/LnZlcnRpY2FsKXtpZihuPGxbMF18fG4+bFsyXXx8YStlPGxbMV18fGE+bFszXSlyZXR1cm4hMX1lbHNlIGlmKG4rZTxsWzBdfHxuPmxbMl18fGE8bFsxXXx8YT5sWzNdKXJldHVybiExO2lmKCFPLmZvbnR8fCF3LnByZXZUcmFuc2Zvcm0pcmV0dXJuITA7bGV0IHI9dy5wcmV2VHJhbnNmb3JtWzRdLHM9dy5wcmV2VHJhbnNmb3JtWzVdO2lmKHI9PT1uJiZzPT09YSlyZXR1cm4hMDtsZXQgaT0tMTt0WzBdJiYwPT09dFsxXSYmMD09PXRbMl0/aT10WzBdPjA/MDoxODA6dFsxXSYmMD09PXRbMF0mJjA9PT10WzNdJiYoaT10WzFdPjA/OTA6MjcwKTtzd2l0Y2goaSl7Y2FzZSAwOmJyZWFrO2Nhc2UgOTA6W24sYV09W2Esbl07W3Isc109W3Mscl07YnJlYWs7Y2FzZSAxODA6W24sYSxyLHNdPVstbiwtYSwtciwtc107YnJlYWs7Y2FzZSAyNzA6W24sYV09Wy1hLC1uXTtbcixzXT1bLXMsLXJdO2JyZWFrO2RlZmF1bHQ6W24sYV09YXBwbHlJbnZlcnNlUm90YXRpb24obixhLHQpO1tyLHNdPWFwcGx5SW52ZXJzZVJvdGF0aW9uKHIscyx3LnByZXZUcmFuc2Zvcm0pfWlmKE8uZm9udC52ZXJ0aWNhbCl7Y29uc3QgZT0ocy1hKS93LnRleHRBZHZhbmNlU2NhbGUsdD1uLXIsaT1NYXRoLnNpZ24ody5oZWlnaHR8fHcudG90YWxIZWlnaHQpO2lmKGU8aSp3Lm5lZ2F0aXZlU3BhY2VNYXgpe2lmKE1hdGguYWJzKHQpPi41Kncud2lkdGgpe2FwcGVuZEVPTCgpO3JldHVybiEwfXJlc2V0TGFzdENoYXJzKCk7Zmx1c2hUZXh0Q29udGVudEl0ZW0oKTtyZXR1cm4hMH1pZihNYXRoLmFicyh0KT53LndpZHRoKXthcHBlbmRFT0woKTtyZXR1cm4hMH1lPD1pKncubm90QVNwYWNlJiZyZXNldExhc3RDaGFycygpO2lmKGU8PWkqdy50cmFja2luZ1NwYWNlTWluKWlmKHNob3VsZEFkZFdoaXRlcHNhY2UoKSl7cmVzZXRMYXN0Q2hhcnMoKTtmbHVzaFRleHRDb250ZW50SXRlbSgpO3B1c2hXaGl0ZXNwYWNlKHtoZWlnaHQ6TWF0aC5hYnMoZSl9KX1lbHNlIHcuaGVpZ2h0Kz1lO2Vsc2UgaWYoIWFkZEZha2VTcGFjZXMoZSx3LnByZXZUcmFuc2Zvcm0saSkpaWYoMD09PXcuc3RyLmxlbmd0aCl7cmVzZXRMYXN0Q2hhcnMoKTtwdXNoV2hpdGVzcGFjZSh7aGVpZ2h0Ok1hdGguYWJzKGUpfSl9ZWxzZSB3LmhlaWdodCs9ZTtNYXRoLmFicyh0KT4uMjUqdy53aWR0aCYmZmx1c2hUZXh0Q29udGVudEl0ZW0oKTtyZXR1cm4hMH1jb25zdCBvPShuLXIpL3cudGV4dEFkdmFuY2VTY2FsZSxmPWEtcyxjPU1hdGguc2lnbih3LndpZHRofHx3LnRvdGFsV2lkdGgpO2lmKG88Yyp3Lm5lZ2F0aXZlU3BhY2VNYXgpe2lmKE1hdGguYWJzKGYpPi41KncuaGVpZ2h0KXthcHBlbmRFT0woKTtyZXR1cm4hMH1yZXNldExhc3RDaGFycygpO2ZsdXNoVGV4dENvbnRlbnRJdGVtKCk7cmV0dXJuITB9aWYoTWF0aC5hYnMoZik+dy5oZWlnaHQpe2FwcGVuZEVPTCgpO3JldHVybiEwfW88PWMqdy5ub3RBU3BhY2UmJnJlc2V0TGFzdENoYXJzKCk7aWYobzw9Yyp3LnRyYWNraW5nU3BhY2VNaW4paWYoc2hvdWxkQWRkV2hpdGVwc2FjZSgpKXtyZXNldExhc3RDaGFycygpO2ZsdXNoVGV4dENvbnRlbnRJdGVtKCk7cHVzaFdoaXRlc3BhY2Uoe3dpZHRoOk1hdGguYWJzKG8pfSl9ZWxzZSB3LndpZHRoKz1vO2Vsc2UgaWYoIWFkZEZha2VTcGFjZXMobyx3LnByZXZUcmFuc2Zvcm0sYykpaWYoMD09PXcuc3RyLmxlbmd0aCl7cmVzZXRMYXN0Q2hhcnMoKTtwdXNoV2hpdGVzcGFjZSh7d2lkdGg6TWF0aC5hYnMobyl9KX1lbHNlIHcud2lkdGgrPW87TWF0aC5hYnMoZik+LjI1KncuaGVpZ2h0JiZmbHVzaFRleHRDb250ZW50SXRlbSgpO3JldHVybiEwfWZ1bmN0aW9uIGJ1aWxkVGV4dENvbnRlbnRJdGVtKHtjaGFyczplLGV4dHJhU3BhY2luZzp0fSl7aWYoUiE9PU8mJihSLmZvbnROYW1lIT09Ty5mb250TmFtZXx8Ui5mb250U2l6ZSE9PU8uZm9udFNpemUpKXtmbHVzaFRleHRDb250ZW50SXRlbSgpO1I9Ty5jbG9uZSgpfWNvbnN0IG49Ty5mb250O2lmKCFlKXtjb25zdCBlPU8uY2hhclNwYWNpbmcrdDtlJiYobi52ZXJ0aWNhbD9PLnRyYW5zbGF0ZVRleHRNYXRyaXgoMCwtZSk6Ty50cmFuc2xhdGVUZXh0TWF0cml4KGUqTy50ZXh0SFNjYWxlLDApKTt1JiZjb21wYXJlV2l0aExhc3RQb3NpdGlvbigwKTtyZXR1cm59Y29uc3QgYT1uLmNoYXJzVG9HbHlwaHMoZSkscj1PLmZvbnRNYXRyaXhbMF0qTy5mb250U2l6ZTtmb3IobGV0IGU9MCxzPWEubGVuZ3RoO2U8cztlKyspe2NvbnN0IGk9YVtlXSx7Y2F0ZWdvcnk6byxvcmlnaW5hbENoYXJDb2RlOmx9PWk7aWYoby5pc0ludmlzaWJsZUZvcm1hdE1hcmspY29udGludWU7bGV0IGY9Ty5jaGFyU3BhY2luZysoZSsxPT09cz90OjApLGM9aS53aWR0aDtuLnZlcnRpY2FsJiYoYz1pLnZtZXRyaWM/aS52bWV0cmljWzBdOi1jKTtsZXQgaD1jKnI7MzI9PT1sJiYoZis9Ty53b3JkU3BhY2luZyk7aWYoIXUmJm8uaXNXaGl0ZXNwYWNlKXtpZihuLnZlcnRpY2FsKXtmKz0taDtPLnRyYW5zbGF0ZVRleHRNYXRyaXgoMCwtZil9ZWxzZXtmKz1oO08udHJhbnNsYXRlVGV4dE1hdHJpeChmKk8udGV4dEhTY2FsZSwwKX1zYXZlTGFzdENoYXIoIiAiKTtjb250aW51ZX1pZighby5pc1plcm9XaWR0aERpYWNyaXRpYyYmIWNvbXBhcmVXaXRoTGFzdFBvc2l0aW9uKGgpKXtuLnZlcnRpY2FsP08udHJhbnNsYXRlVGV4dE1hdHJpeCgwLGgpOk8udHJhbnNsYXRlVGV4dE1hdHJpeChoKk8udGV4dEhTY2FsZSwwKTtjb250aW51ZX1jb25zdCBtPWVuc3VyZVRleHRDb250ZW50SXRlbSgpO28uaXNaZXJvV2lkdGhEaWFjcml0aWMmJihoPTApO2lmKG4udmVydGljYWwpe3A/LmFkZEdseXBoKGdldEN1cnJlbnRUZXh0VHJhbnNmb3JtKCksMCxoLGkudW5pY29kZSk7Ty50cmFuc2xhdGVUZXh0TWF0cml4KDAsaCk7aD1NYXRoLmFicyhoKTttLmhlaWdodCs9aH1lbHNle2gqPU8udGV4dEhTY2FsZTtwPy5hZGRHbHlwaChnZXRDdXJyZW50VGV4dFRyYW5zZm9ybSgpLGgsMCxpLnVuaWNvZGUpO08udHJhbnNsYXRlVGV4dE1hdHJpeChoLDApO20ud2lkdGgrPWh9aCYmKG0ucHJldlRyYW5zZm9ybT1nZXRDdXJyZW50VGV4dFRyYW5zZm9ybSgpKTtjb25zdCBkPWkudW5pY29kZTtpZihzYXZlTGFzdENoYXIoZCkpe20uc3RyLnB1c2goIiAiKTtwPy5hZGRFeHRyYUNoYXIoIiAiKX1wfHxtLnN0ci5wdXNoKGQpO2YmJihuLnZlcnRpY2FsP08udHJhbnNsYXRlVGV4dE1hdHJpeCgwLC1mKTpPLnRyYW5zbGF0ZVRleHRNYXRyaXgoZipPLnRleHRIU2NhbGUsMCkpfX1mdW5jdGlvbiBhcHBlbmRFT0woKXtwPy5hZGRFeHRyYUNoYXIoIlxuIik7cmVzZXRMYXN0Q2hhcnMoKTtpZih3LmluaXRpYWxpemVkKXt3Lmhhc0VPTD0hMDtmbHVzaFRleHRDb250ZW50SXRlbSgpfWVsc2UgYi5pdGVtcy5wdXNoKHtzdHI6IiIsZGlyOiJsdHIiLHdpZHRoOjAsaGVpZ2h0OjAsdHJhbnNmb3JtOmdldEN1cnJlbnRUZXh0VHJhbnNmb3JtKCksZm9udE5hbWU6Ty5sb2FkZWROYW1lLGhhc0VPTDohMH0pfWZ1bmN0aW9uIGFkZEZha2VTcGFjZXMoZSx0LG4pe2lmKG4qdy5zcGFjZUluRmxvd01pbjw9ZSYmZTw9bip3LnNwYWNlSW5GbG93TWF4KXtpZih3LmluaXRpYWxpemVkKXtyZXNldExhc3RDaGFycygpO3cuc3RyLnB1c2goIiAiKTtwPy5hZGRFeHRyYUNoYXIoIiAiKX1yZXR1cm4hMX1jb25zdCBhPXcuZm9udE5hbWU7bGV0IHI9MDtpZih3LnZlcnRpY2FsKXtyPWU7ZT0wfWZsdXNoVGV4dENvbnRlbnRJdGVtKCk7cmVzZXRMYXN0Q2hhcnMoKTtwdXNoV2hpdGVzcGFjZSh7d2lkdGg6TWF0aC5hYnMoZSksaGVpZ2h0Ok1hdGguYWJzKHIpLHRyYW5zZm9ybTp0fHxnZXRDdXJyZW50VGV4dFRyYW5zZm9ybSgpLGZvbnROYW1lOmF9KTtyZXR1cm4hMH1mdW5jdGlvbiBmbHVzaFRleHRDb250ZW50SXRlbSgpe2lmKHcuaW5pdGlhbGl6ZWQmJncuc3RyKXt3LnZlcnRpY2FsP3cudG90YWxIZWlnaHQrPXcuaGVpZ2h0KncudGV4dEFkdmFuY2VTY2FsZTp3LnRvdGFsV2lkdGgrPXcud2lkdGgqdy50ZXh0QWR2YW5jZVNjYWxlO2IuaXRlbXMucHVzaChydW5CaWRpVHJhbnNmb3JtKHcpKTt3LmluaXRpYWxpemVkPSExO3cuc3RyLmxlbmd0aD0wfX1mdW5jdGlvbiBlbnF1ZXVlQ2h1bmsoZT0hMSl7Y29uc3QgdD1iLml0ZW1zLmxlbmd0aDtpZigwIT09dCYmIShlJiZ0PDEwKSl7aT8uZW5xdWV1ZShiLHQpO2IuaXRlbXM9W107Yi5zdHlsZXM9T2JqZWN0LmNyZWF0ZShudWxsKX19Y29uc3QgSD1uZXcgVGltZVNsb3RNYW5hZ2VyO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiBwcm9taXNlQm9keShlLGEpe2NvbnN0IG5leHQ9ZnVuY3Rpb24odCl7ZW5xdWV1ZUNodW5rKCEwKTtQcm9taXNlLmFsbChbdCxpPy5yZWFkeV0pLnRoZW4oZnVuY3Rpb24oKXt0cnl7cHJvbWlzZUJvZHkoZSxhKX1jYXRjaChlKXthKGUpfX0sYSl9O3QuZW5zdXJlTm90VGVybWluYXRlZCgpO0gucmVzZXQoKTtjb25zdCBtPXt9O2xldCBwLGQsdyxqPVtdO2Zvcig7IShwPUguY2hlY2soKSk7KXtqLmxlbmd0aD0wO20uYXJncz1qO2lmKCFULnJlYWQobSkpYnJlYWs7Tz1yLnN0YXRlO1J8fD1PLmNsb25lKCk7Y29uc3QgZT1tLmZuO2o9bS5hcmdzO3N3aXRjaCgwfGUpe2Nhc2UgR2U6Y29uc3QgZT1qWzBdLm5hbWUsYT1qWzFdO2lmKE8uZm9udCYmZT09PU8uZm9udE5hbWUmJmE9PT1PLmZvbnRTaXplKWJyZWFrO08uZm9udE5hbWU9ZTtPLmZvbnRTaXplPWE7bmV4dChoYW5kbGVTZXRGb250KGUsbnVsbCkpO3JldHVybjtjYXNlIFllOk8udGV4dFJpc2U9alswXTticmVhaztjYXNlIEtlOk8udGV4dEhTY2FsZT1qWzBdLzEwMDticmVhaztjYXNlIFZlOk8ubGVhZGluZz1qWzBdO2JyZWFrO2Nhc2UgSmU6Ty50cmFuc2xhdGVUZXh0TGluZU1hdHJpeChqWzBdLGpbMV0pO08udGV4dE1hdHJpeD1PLnRleHRMaW5lTWF0cml4LnNsaWNlKCk7YnJlYWs7Y2FzZSBRZTpPLmxlYWRpbmc9LWpbMV07Ty50cmFuc2xhdGVUZXh0TGluZU1hdHJpeChqWzBdLGpbMV0pO08udGV4dE1hdHJpeD1PLnRleHRMaW5lTWF0cml4LnNsaWNlKCk7YnJlYWs7Y2FzZSBldDpPLmNhcnJpYWdlUmV0dXJuKCk7YnJlYWs7Y2FzZSBaZTpPLnNldFRleHRNYXRyaXgoalswXSxqWzFdLGpbMl0salszXSxqWzRdLGpbNV0pO08uc2V0VGV4dExpbmVNYXRyaXgoalswXSxqWzFdLGpbMl0salszXSxqWzRdLGpbNV0pO3VwZGF0ZUFkdmFuY2VTY2FsZSgpO2JyZWFrO2Nhc2UgWGU6Ty5jaGFyU3BhY2luZz1qWzBdO2JyZWFrO2Nhc2UgV2U6Ty53b3JkU3BhY2luZz1qWzBdO2JyZWFrO2Nhc2UgTGU6Ty50ZXh0TWF0cml4PXduLnNsaWNlKCk7Ty50ZXh0TGluZU1hdHJpeD13bi5zbGljZSgpO2JyZWFrO2Nhc2UgbnQ6aWYoIXIuc3RhdGUuZm9udCl7eS5lbnN1cmVTdGF0ZUZvbnQoci5zdGF0ZSk7Y29udGludWV9Y29uc3QgbT0oTy5mb250LnZlcnRpY2FsPzE6LTEpKk8uZm9udFNpemUvMWUzLHA9alswXTtmb3IobGV0IGU9MCx0PXAubGVuZ3RoO2U8dDtlKyspe2NvbnN0IHQ9cFtlXTtpZigic3RyaW5nIj09dHlwZW9mIHQpdi5wdXNoKHQpO2Vsc2UgaWYoIm51bWJlciI9PXR5cGVvZiB0JiYwIT09dCl7Y29uc3QgZT12LmpvaW4oIiIpO3YubGVuZ3RoPTA7YnVpbGRUZXh0Q29udGVudEl0ZW0oe2NoYXJzOmUsZXh0cmFTcGFjaW5nOnQqbX0pfX1pZih2Lmxlbmd0aD4wKXtjb25zdCBlPXYuam9pbigiIik7di5sZW5ndGg9MDtidWlsZFRleHRDb250ZW50SXRlbSh7Y2hhcnM6ZSxleHRyYVNwYWNpbmc6MH0pfWJyZWFrO2Nhc2UgdHQ6aWYoIXIuc3RhdGUuZm9udCl7eS5lbnN1cmVTdGF0ZUZvbnQoci5zdGF0ZSk7Y29udGludWV9YnVpbGRUZXh0Q29udGVudEl0ZW0oe2NoYXJzOmpbMF0sZXh0cmFTcGFjaW5nOjB9KTticmVhaztjYXNlIHJ0OmlmKCFyLnN0YXRlLmZvbnQpe3kuZW5zdXJlU3RhdGVGb250KHIuc3RhdGUpO2NvbnRpbnVlfU8uY2FycmlhZ2VSZXR1cm4oKTtidWlsZFRleHRDb250ZW50SXRlbSh7Y2hhcnM6alswXSxleHRyYVNwYWNpbmc6MH0pO2JyZWFrO2Nhc2Ugc3Q6aWYoIXIuc3RhdGUuZm9udCl7eS5lbnN1cmVTdGF0ZUZvbnQoci5zdGF0ZSk7Y29udGludWV9Ty53b3JkU3BhY2luZz1qWzBdO08uY2hhclNwYWNpbmc9alsxXTtPLmNhcnJpYWdlUmV0dXJuKCk7YnVpbGRUZXh0Q29udGVudEl0ZW0oe2NoYXJzOmpbMl0sZXh0cmFTcGFjaW5nOjB9KTticmVhaztjYXNlIFN0OmZsdXNoVGV4dENvbnRlbnRJdGVtKCk7Uz8/PW4uZ2V0KCJYT2JqZWN0Iil8fERpY3QuZW1wdHk7dz1qWzBdaW5zdGFuY2VvZiBOYW1lO2Q9alswXS5uYW1lO2lmKHcmJnguZ2V0QnlOYW1lKGQpKWJyZWFrO25leHQobmV3IFByb21pc2UoZnVuY3Rpb24oZSxhKXtpZighdyl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlhPYmplY3QgbXVzdCBiZSByZWZlcnJlZCB0byBieSBuYW1lLiIpO2xldCBtPVMuZ2V0UmF3KGQpO2lmKG0gaW5zdGFuY2VvZiBSZWYpe2lmKHguZ2V0QnlSZWYobSkpe2UoKTtyZXR1cm59aWYoeS5nbG9iYWxJbWFnZUNhY2hlLmdldERhdGEobSx5LnBhZ2VJbmRleCkpe2UoKTtyZXR1cm59bT1xLmZldGNoKG0pfWlmKCEobSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0pKXRocm93IG5ldyBGb3JtYXRFcnJvcigiWE9iamVjdCBzaG91bGQgYmUgYSBzdHJlYW0iKTtjb25zdHtkaWN0OnB9PW0sYj1wLmdldCgiU3VidHlwZSIpO2lmKCEoYiBpbnN0YW5jZW9mIE5hbWUpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiWE9iamVjdCBzaG91bGQgaGF2ZSBhIE5hbWUgc3VidHlwZSIpO2lmKCJGb3JtIiE9PWIubmFtZSl7eC5zZXQoZCxwLm9iaklkLCEwKTtlKCk7cmV0dXJufWNvbnN0IGo9ci5zdGF0ZS5jbG9uZSgpLGs9bmV3IFN0YXRlTWFuYWdlcihqKSx2PWxvb2t1cE1hdHJpeChwLmdldEFycmF5KCJNYXRyaXgiKSxudWxsKTt2JiZrLnRyYW5zZm9ybSh2KTtjb25zdCBDPXAuZ2V0KCJSZXNvdXJjZXMiKTtlbnF1ZXVlQ2h1bmsoKTtjb25zdCBUPXtlbnF1ZXVlSW52b2tlZDohMSxlbnF1ZXVlKGUsdCl7dGhpcy5lbnF1ZXVlSW52b2tlZD0hMDtpLmVucXVldWUoZSx0KX0sZ2V0IGRlc2lyZWRTaXplKCl7cmV0dXJuIGkuZGVzaXJlZFNpemU/PzB9LGdldCByZWFkeSgpe3JldHVybiBpLnJlYWR5fX07eS5nZXRUZXh0Q29udGVudCh7c3RyZWFtOm0sdGFzazp0LHJlc291cmNlczpDIGluc3RhbmNlb2YgRGljdD9DOm4sc3RhdGVNYW5hZ2VyOmssaW5jbHVkZU1hcmtlZENvbnRlbnQ6cyxzaW5rOmkmJlQsc2VlblN0eWxlczpvLHZpZXdCb3g6bCxsYW5nOmYsbWFya2VkQ29udGVudERhdGE6YyxkaXNhYmxlTm9ybWFsaXphdGlvbjpoLGtlZXBXaGl0ZVNwYWNlOnUscHJldlJlZnM6Z30pLnRoZW4oZnVuY3Rpb24oKXtULmVucXVldWVJbnZva2VkfHx4LnNldChkLHAub2JqSWQsITApO2UoKX0sYSl9KS5jYXRjaChmdW5jdGlvbihlKXtpZighKGUgaW5zdGFuY2VvZiBBYm9ydEV4Y2VwdGlvbikpe2lmKCF5Lm9wdGlvbnMuaWdub3JlRXJyb3JzKXRocm93IGU7d2FybihgZ2V0VGV4dENvbnRlbnQgLSBpZ25vcmluZyBYT2JqZWN0OiAiJHtlfSIuYCl9fSkpO3JldHVybjtjYXNlIGtlOnc9alswXWluc3RhbmNlb2YgTmFtZTtkPWpbMF0ubmFtZTtpZih3JiZDLmdldEJ5TmFtZShkKSlicmVhaztuZXh0KG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUsdCl7aWYoIXcpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJHU3RhdGUgbXVzdCBiZSByZWZlcnJlZCB0byBieSBuYW1lLiIpO2NvbnN0IGE9bi5nZXQoIkV4dEdTdGF0ZSIpO2lmKCEoYSBpbnN0YW5jZW9mIERpY3QpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiRXh0R1N0YXRlIHNob3VsZCBiZSBhIGRpY3Rpb25hcnkuIik7Y29uc3Qgcj1hLmdldChkKTtpZighKHIgaW5zdGFuY2VvZiBEaWN0KSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkdTdGF0ZSBzaG91bGQgYmUgYSBkaWN0aW9uYXJ5LiIpO2NvbnN0IHM9ci5nZXQoIkZvbnQiKTtpZihzKXtmbHVzaFRleHRDb250ZW50SXRlbSgpO08uZm9udE5hbWU9bnVsbDtPLmZvbnRTaXplPXNbMV07aGFuZGxlU2V0Rm9udChudWxsLHNbMF0pLnRoZW4oZSx0KX1lbHNle0Muc2V0KGQsci5vYmpJZCwhMCk7ZSgpfX0pLmNhdGNoKGZ1bmN0aW9uKGUpe2lmKCEoZSBpbnN0YW5jZW9mIEFib3J0RXhjZXB0aW9uKSl7aWYoIXkub3B0aW9ucy5pZ25vcmVFcnJvcnMpdGhyb3cgZTt3YXJuKGBnZXRUZXh0Q29udGVudCAtIGlnbm9yaW5nIEV4dEdTdGF0ZTogIiR7ZX0iLmApfX0pKTtyZXR1cm47Y2FzZSBDdDpmbHVzaFRleHRDb250ZW50SXRlbSgpO2lmKHMpe2MubGV2ZWwrKztiLml0ZW1zLnB1c2goe3R5cGU6ImJlZ2luTWFya2VkQ29udGVudCIsdGFnOmpbMF1pbnN0YW5jZW9mIE5hbWU/alswXS5uYW1lOm51bGx9KX1icmVhaztjYXNlIEl0OmZsdXNoVGV4dENvbnRlbnRJdGVtKCk7aWYocyl7Yy5sZXZlbCsrO2xldCBlPW51bGw7alsxXWluc3RhbmNlb2YgRGljdCYmKGU9alsxXS5nZXQoIk1DSUQiKSk7Yi5pdGVtcy5wdXNoKHt0eXBlOiJiZWdpbk1hcmtlZENvbnRlbnRQcm9wcyIsaWQ6TnVtYmVyLmlzSW50ZWdlcihlKT9gJHt5LmlkRmFjdG9yeS5nZXRQYWdlT2JqSWQoKX1fbWMke2V9YDpudWxsLHRhZzpqWzBdaW5zdGFuY2VvZiBOYW1lP2pbMF0ubmFtZTpudWxsfSl9YnJlYWs7Y2FzZSBGdDpmbHVzaFRleHRDb250ZW50SXRlbSgpO2lmKHMpe2lmKDA9PT1jLmxldmVsKWJyZWFrO2MubGV2ZWwtLTtiLml0ZW1zLnB1c2goe3R5cGU6ImVuZE1hcmtlZENvbnRlbnQifSl9YnJlYWs7Y2FzZSBxZTpyLnJlc3RvcmUoKTticmVhaztjYXNlIHllOnIuc2F2ZSgpfWlmKGIuaXRlbXMubGVuZ3RoPj0oaT8uZGVzaXJlZFNpemU/PzEpKXtwPSEwO2JyZWFrfX1pZihwKW5leHQoQXMpO2Vsc2V7Zmx1c2hUZXh0Q29udGVudEl0ZW0oKTtlbnF1ZXVlQ2h1bmsoKTtlKCl9fSkuY2F0Y2goZT0+e2lmKCEoZSBpbnN0YW5jZW9mIEFib3J0RXhjZXB0aW9uKSl7aWYoIXRoaXMub3B0aW9ucy5pZ25vcmVFcnJvcnMpdGhyb3cgZTt3YXJuKGBnZXRUZXh0Q29udGVudCAtIGlnbm9yaW5nIGVycm9ycyBkdXJpbmcgIiR7dC5uYW1lfSIgdGFzazogIiR7ZX0iLmApO2ZsdXNoVGV4dENvbnRlbnRJdGVtKCk7ZW5xdWV1ZUNodW5rKCl9fSl9YXN5bmMgZXh0cmFjdERhdGFTdHJ1Y3R1cmVzKGUsdCl7Y29uc3Qgbj10aGlzLnhyZWY7bGV0IGE7Y29uc3Qgcj10aGlzLnJlYWRUb1VuaWNvZGUodC50b1VuaWNvZGUpO2lmKHQuY29tcG9zaXRlKXtjb25zdCBuPWUuZ2V0KCJDSURTeXN0ZW1JbmZvIik7biBpbnN0YW5jZW9mIERpY3QmJiF0LmNpZFN5c3RlbUluZm8mJih0LmNpZFN5c3RlbUluZm89e3JlZ2lzdHJ5OnN0cmluZ1RvUERGU3RyaW5nKG4uZ2V0KCJSZWdpc3RyeSIpKSxvcmRlcmluZzpzdHJpbmdUb1BERlN0cmluZyhuLmdldCgiT3JkZXJpbmciKSksc3VwcGxlbWVudDpuLmdldCgiU3VwcGxlbWVudCIpfSk7dHJ5e2NvbnN0IHQ9ZS5nZXQoIkNJRFRvR0lETWFwIik7dCBpbnN0YW5jZW9mIEJhc2VTdHJlYW0mJihhPXQuZ2V0Qnl0ZXMoKSl9Y2F0Y2goZSl7aWYoIXRoaXMub3B0aW9ucy5pZ25vcmVFcnJvcnMpdGhyb3cgZTt3YXJuKGBleHRyYWN0RGF0YVN0cnVjdHVyZXMgLSBpZ25vcmluZyBDSURUb0dJRE1hcCBkYXRhOiAiJHtlfSIuYCl9fWNvbnN0IHM9W107bGV0IGksbz1udWxsO2lmKGUuaGFzKCJFbmNvZGluZyIpKXtpPWUuZ2V0KCJFbmNvZGluZyIpO2lmKGkgaW5zdGFuY2VvZiBEaWN0KXtvPWkuZ2V0KCJCYXNlRW5jb2RpbmciKTtvPW8gaW5zdGFuY2VvZiBOYW1lP28ubmFtZTpudWxsO2lmKGkuaGFzKCJEaWZmZXJlbmNlcyIpKXtjb25zdCBlPWkuZ2V0KCJEaWZmZXJlbmNlcyIpO2xldCB0PTA7Zm9yKGNvbnN0IGEgb2YgZSl7Y29uc3QgZT1uLmZldGNoSWZSZWYoYSk7aWYoIm51bWJlciI9PXR5cGVvZiBlKXQ9ZTtlbHNle2lmKCEoZSBpbnN0YW5jZW9mIE5hbWUpKXRocm93IG5ldyBGb3JtYXRFcnJvcihgSW52YWxpZCBlbnRyeSBpbiAnRGlmZmVyZW5jZXMnIGFycmF5OiAke2V9YCk7c1t0KytdPWUubmFtZX19fX1lbHNlIGlmKGkgaW5zdGFuY2VvZiBOYW1lKW89aS5uYW1lO2Vsc2V7Y29uc3QgZT0iRW5jb2RpbmcgaXMgbm90IGEgTmFtZSBub3IgYSBEaWN0IjtpZighdGhpcy5vcHRpb25zLmlnbm9yZUVycm9ycyl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoZSk7d2FybihlKX0iTWFjUm9tYW5FbmNvZGluZyIhPT1vJiYiTWFjRXhwZXJ0RW5jb2RpbmciIT09byYmIldpbkFuc2lFbmNvZGluZyIhPT1vJiYobz1udWxsKX1jb25zdCBsPSF0LmZpbGV8fHQuaXNJbnRlcm5hbEZvbnQsZj1WYSgpW3QubmFtZV07byYmbCYmZiYmKG89bnVsbCk7aWYoIldpbkFuc2lFbmNvZGluZyI9PT1vJiZsJiZ0Lm5hbWU/LmNoYXJDb2RlQXQoMCk+PTE4Myl7Y29uc3QgZT10Lm5hbWU7aWYoWyLDi8OOw4zDpSIsIsK6w5rDjMOlIiwiwr/CrMOMw6UiLCLCt8OCw4vDjiIsIsK/wqzDjMOlX0dCMjMxMiIsIsK3w4LDi8OOX0dCMjMxMiIsIsOBwqXDisOpIiwiw5DDgsOLw44iXS5pbmNsdWRlcyhlKSl7bz1udWxsO3QuZGVmYXVsdEVuY29kaW5nPSJBZG9iZS1HQjEtVUNTMiI7dC5jb21wb3NpdGU9ITA7dC5jaWRFbmNvZGluZz1OYW1lLmdldCgiR0JLLUVVQy1IIik7Y29uc3QgZT1hd2FpdCBDTWFwRmFjdG9yeS5jcmVhdGUoe2VuY29kaW5nOnQuY2lkRW5jb2RpbmcsZmV0Y2hCdWlsdEluQ01hcDp0aGlzLl9mZXRjaEJ1aWx0SW5DTWFwQm91bmQsdXNlQ01hcDpudWxsfSk7dC5jTWFwPWU7dC52ZXJ0aWNhbD10LmNNYXAudmVydGljYWw7dC5jaWRTeXN0ZW1JbmZvPXtyZWdpc3RyeToiQWRvYmUiLG9yZGVyaW5nOiJHQjEiLHN1cHBsZW1lbnQ6MH19fWlmKG8pdC5kZWZhdWx0RW5jb2Rpbmc9Z2V0RW5jb2Rpbmcobyk7ZWxzZXtsZXQgZT0hISh0LmZsYWdzJkZhKTtjb25zdCBuPSEhKHQuZmxhZ3MmVGEpO2lmKCJUcnVlVHlwZSI9PT10LnR5cGUmJmUmJm4mJjAhPT1zLmxlbmd0aCl7dC5mbGFncyY9fkZhO2U9ITF9aT1nYTsiVHJ1ZVR5cGUiIT09dC50eXBlfHxufHwoaT1iYSk7aWYoZXx8Zil7aT1kYTtsJiYoL1N5bWJvbC9pLnRlc3QodC5uYW1lKT9pPXdhOi9EaW5nYmF0cy9pLnRlc3QodC5uYW1lKT9pPWphOi9XaW5nZGluZ3MvaS50ZXN0KHQubmFtZSkmJihpPWJhKSl9dC5kZWZhdWx0RW5jb2Rpbmc9aX10LmRpZmZlcmVuY2VzPXM7dC5iYXNlRW5jb2RpbmdOYW1lPW87dC5oYXNFbmNvZGluZz0hIW98fHMubGVuZ3RoPjA7dC5kaWN0PWU7dC50b1VuaWNvZGU9YXdhaXQgcjtjb25zdCBjPWF3YWl0IHRoaXMuYnVpbGRUb1VuaWNvZGUodCk7dC50b1VuaWNvZGU9YzthJiYodC5jaWRUb0dpZE1hcD10aGlzLnJlYWRDaWRUb0dpZE1hcChhLGMpKTtyZXR1cm4gdH1fc2ltcGxlRm9udFRvVW5pY29kZShlLHQ9ITEpe2Fzc2VydCghZS5jb21wb3NpdGUsIk11c3QgYmUgYSBzaW1wbGUgZm9udC4iKTtjb25zdCBuPVtdLGE9ZS5kZWZhdWx0RW5jb2Rpbmcuc2xpY2UoKSxyPWUuYmFzZUVuY29kaW5nTmFtZSxzPWUuZGlmZmVyZW5jZXM7Zm9yKGNvbnN0IGUgaW4gcyl7Y29uc3QgdD1zW2VdOyIubm90ZGVmIiE9PXQmJihhW2VdPXQpfWNvbnN0IGk9a2EoKTtmb3IoY29uc3QgcyBpbiBhKXtsZXQgbz1hW3NdO2lmKCIiPT09byljb250aW51ZTtsZXQgbD1pW29dO2lmKHZvaWQgMCE9PWwpe25bc109U3RyaW5nLmZyb21DaGFyQ29kZShsKTtjb250aW51ZX1sZXQgZj0wO3N3aXRjaChvWzBdKXtjYXNlIkciOjM9PT1vLmxlbmd0aCYmKGY9cGFyc2VJbnQoby5zdWJzdHJpbmcoMSksMTYpKTticmVhaztjYXNlImciOjU9PT1vLmxlbmd0aCYmKGY9cGFyc2VJbnQoby5zdWJzdHJpbmcoMSksMTYpKTticmVhaztjYXNlIkMiOmNhc2UiYyI6aWYoby5sZW5ndGg+PTMmJm8ubGVuZ3RoPD00KXtjb25zdCBuPW8uc3Vic3RyaW5nKDEpO2lmKHQpe2Y9cGFyc2VJbnQobiwxNik7YnJlYWt9Zj0rbjtpZihOdW1iZXIuaXNOYU4oZikmJk51bWJlci5pc0ludGVnZXIocGFyc2VJbnQobiwxNikpKXJldHVybiB0aGlzLl9zaW1wbGVGb250VG9Vbmljb2RlKGUsITApfWJyZWFrO2Nhc2UidSI6bD1nZXRVbmljb2RlRm9yR2x5cGgobyxpKTstMSE9PWwmJihmPWwpO2JyZWFrO2RlZmF1bHQ6c3dpdGNoKG8pe2Nhc2UiZl9oIjpjYXNlImZfdCI6Y2FzZSJUX2giOm5bc109by5yZXBsYWNlQWxsKCJfIiwiIik7Y29udGludWV9fWlmKGY+MCYmZjw9MTExNDExMSYmTnVtYmVyLmlzSW50ZWdlcihmKSl7aWYociYmZj09PStzKXtjb25zdCBlPWdldEVuY29kaW5nKHIpO2lmKGUmJihvPWVbc10pKXtuW3NdPVN0cmluZy5mcm9tQ2hhckNvZGUoaVtvXSk7Y29udGludWV9fW5bc109U3RyaW5nLmZyb21Db2RlUG9pbnQoZil9fXJldHVybiBufWFzeW5jIGJ1aWxkVG9Vbmljb2RlKGUpe2UuaGFzSW5jbHVkZWRUb1VuaWNvZGVNYXA9ZS50b1VuaWNvZGU/Lmxlbmd0aD4wO2lmKGUuaGFzSW5jbHVkZWRUb1VuaWNvZGVNYXApeyFlLmNvbXBvc2l0ZSYmZS5oYXNFbmNvZGluZyYmKGUuZmFsbGJhY2tUb1VuaWNvZGU9dGhpcy5fc2ltcGxlRm9udFRvVW5pY29kZShlKSk7cmV0dXJuIGUudG9Vbmljb2RlfWlmKCFlLmNvbXBvc2l0ZSlyZXR1cm4gbmV3IFRvVW5pY29kZU1hcCh0aGlzLl9zaW1wbGVGb250VG9Vbmljb2RlKGUpKTtpZihlLmNvbXBvc2l0ZSYmKGUuY01hcC5idWlsdEluQ01hcCYmIShlLmNNYXAgaW5zdGFuY2VvZiBJZGVudGl0eUNNYXApfHwiQWRvYmUiPT09ZS5jaWRTeXN0ZW1JbmZvPy5yZWdpc3RyeSYmKCJHQjEiPT09ZS5jaWRTeXN0ZW1JbmZvLm9yZGVyaW5nfHwiQ05TMSI9PT1lLmNpZFN5c3RlbUluZm8ub3JkZXJpbmd8fCJKYXBhbjEiPT09ZS5jaWRTeXN0ZW1JbmZvLm9yZGVyaW5nfHwiS29yZWExIj09PWUuY2lkU3lzdGVtSW5mby5vcmRlcmluZykpKXtjb25zdHtyZWdpc3RyeTp0LG9yZGVyaW5nOm59PWUuY2lkU3lzdGVtSW5mbyxhPU5hbWUuZ2V0KGAke3R9LSR7bn0tVUNTMmApLHI9YXdhaXQgQ01hcEZhY3RvcnkuY3JlYXRlKHtlbmNvZGluZzphLGZldGNoQnVpbHRJbkNNYXA6dGhpcy5fZmV0Y2hCdWlsdEluQ01hcEJvdW5kLHVzZUNNYXA6bnVsbH0pLHM9W10saT1bXTtlLmNNYXAuZm9yRWFjaChmdW5jdGlvbihlLHQpe2lmKHQ+NjU1MzUpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJNYXggc2l6ZSBvZiBDSUQgaXMgNjUsNTM1Iik7Y29uc3Qgbj1yLmxvb2t1cCh0KTtpZihuKXtpLmxlbmd0aD0wO2ZvcihsZXQgZT0wLHQ9bi5sZW5ndGg7ZTx0O2UrPTIpaS5wdXNoKChuLmNoYXJDb2RlQXQoZSk8PDgpK24uY2hhckNvZGVBdChlKzEpKTtzW2VdPVN0cmluZy5mcm9tQ2hhckNvZGUoLi4uaSl9fSk7cmV0dXJuIG5ldyBUb1VuaWNvZGVNYXAocyl9cmV0dXJuIG5ldyBJZGVudGl0eVRvVW5pY29kZU1hcChlLmZpcnN0Q2hhcixlLmxhc3RDaGFyKX1hc3luYyByZWFkVG9Vbmljb2RlKGUpe2lmKCFlKXJldHVybiBudWxsO2lmKGUgaW5zdGFuY2VvZiBOYW1lKXtjb25zdCB0PWF3YWl0IENNYXBGYWN0b3J5LmNyZWF0ZSh7ZW5jb2Rpbmc6ZSxmZXRjaEJ1aWx0SW5DTWFwOnRoaXMuX2ZldGNoQnVpbHRJbkNNYXBCb3VuZCx1c2VDTWFwOm51bGx9KTtyZXR1cm4gdCBpbnN0YW5jZW9mIElkZW50aXR5Q01hcD9uZXcgSWRlbnRpdHlUb1VuaWNvZGVNYXAoMCw2NTUzNSk6bmV3IFRvVW5pY29kZU1hcCh0LmdldE1hcCgpKX1pZihlIGluc3RhbmNlb2YgQmFzZVN0cmVhbSl0cnl7Y29uc3QgdD1hd2FpdCBDTWFwRmFjdG9yeS5jcmVhdGUoe2VuY29kaW5nOmUsZmV0Y2hCdWlsdEluQ01hcDp0aGlzLl9mZXRjaEJ1aWx0SW5DTWFwQm91bmQsdXNlQ01hcDpudWxsfSk7aWYodCBpbnN0YW5jZW9mIElkZW50aXR5Q01hcClyZXR1cm4gbmV3IElkZW50aXR5VG9Vbmljb2RlTWFwKDAsNjU1MzUpO2NvbnN0IG49bmV3IEFycmF5KHQubGVuZ3RoKTt0LmZvckVhY2goZnVuY3Rpb24oZSx0KXtpZigibnVtYmVyIj09dHlwZW9mIHQpe25bZV09U3RyaW5nLmZyb21Db2RlUG9pbnQodCk7cmV0dXJufXQubGVuZ3RoJTIhPTAmJih0PSJcMCIrdCk7Y29uc3QgYT1bXTtmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrPTIpe2NvbnN0IG49dC5jaGFyQ29kZUF0KGUpPDw4fHQuY2hhckNvZGVBdChlKzEpO2lmKDU1Mjk2IT0oNjM0ODgmbikpe2EucHVzaChuKTtjb250aW51ZX1lKz0yO2NvbnN0IHI9dC5jaGFyQ29kZUF0KGUpPDw4fHQuY2hhckNvZGVBdChlKzEpO2EucHVzaCgoKDEwMjMmbik8PDEwKSsoMTAyMyZyKSs2NTUzNil9bltlXT1TdHJpbmcuZnJvbUNvZGVQb2ludCguLi5hKX0pO3JldHVybiBuZXcgVG9Vbmljb2RlTWFwKG4pfWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBBYm9ydEV4Y2VwdGlvbilyZXR1cm4gbnVsbDtpZih0aGlzLm9wdGlvbnMuaWdub3JlRXJyb3JzKXt3YXJuKGByZWFkVG9Vbmljb2RlIC0gaWdub3JpbmcgVG9Vbmljb2RlIGRhdGE6ICIke2V9Ii5gKTtyZXR1cm4gbnVsbH10aHJvdyBlfXJldHVybiBudWxsfXJlYWRDaWRUb0dpZE1hcChlLHQpe2NvbnN0IG49W107Zm9yKGxldCBhPTAscj1lLmxlbmd0aDthPHI7YSsrKXtjb25zdCByPWVbYSsrXTw8OHxlW2FdLHM9YT4+MTsoMCE9PXJ8fHQuaGFzKHMpKSYmKG5bc109cil9cmV0dXJuIG59ZXh0cmFjdFdpZHRocyhlLHQsbil7Y29uc3QgYT10aGlzLnhyZWY7bGV0IHI9W10scz0wO2NvbnN0IGk9W107bGV0IG87aWYobi5jb21wb3NpdGUpe2NvbnN0IHQ9ZS5nZXQoIkRXIik7cz0ibnVtYmVyIj09dHlwZW9mIHQ/TWF0aC5jZWlsKHQpOjFlMztjb25zdCBsPWUuZ2V0KCJXIik7aWYoQXJyYXkuaXNBcnJheShsKSlmb3IobGV0IGU9MCx0PWwubGVuZ3RoO2U8dDtlKyspe2xldCB0PWEuZmV0Y2hJZlJlZihsW2UrK10pO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKHQpKWJyZWFrO2NvbnN0IG49YS5mZXRjaElmUmVmKGxbZV0pO2lmKEFycmF5LmlzQXJyYXkobikpZm9yKGNvbnN0IGUgb2Ygbil7Y29uc3Qgbj1hLmZldGNoSWZSZWYoZSk7Im51bWJlciI9PXR5cGVvZiBuJiYoclt0XT1uKTt0Kyt9ZWxzZXtpZighTnVtYmVyLmlzSW50ZWdlcihuKSlicmVhazt7Y29uc3Qgcz1hLmZldGNoSWZSZWYobFsrK2VdKTtpZigibnVtYmVyIiE9dHlwZW9mIHMpY29udGludWU7Zm9yKGxldCBlPXQ7ZTw9bjtlKyspcltlXT1zfX19aWYobi52ZXJ0aWNhbCl7Y29uc3QgdD1lLmdldEFycmF5KCJEVzIiKTtsZXQgbj1pc051bWJlckFycmF5KHQsMik/dDpbODgwLC0xZTNdO289W25bMV0sLjUqcyxuWzBdXTtuPWUuZ2V0KCJXMiIpO2lmKEFycmF5LmlzQXJyYXkobikpZm9yKGxldCBlPTAsdD1uLmxlbmd0aDtlPHQ7ZSsrKXtsZXQgdD1hLmZldGNoSWZSZWYobltlKytdKTtpZighTnVtYmVyLmlzSW50ZWdlcih0KSlicmVhaztjb25zdCByPWEuZmV0Y2hJZlJlZihuW2VdKTtpZihBcnJheS5pc0FycmF5KHIpKWZvcihsZXQgZT0wLG49ci5sZW5ndGg7ZTxuO2UrKyl7Y29uc3Qgbj1bYS5mZXRjaElmUmVmKHJbZSsrXSksYS5mZXRjaElmUmVmKHJbZSsrXSksYS5mZXRjaElmUmVmKHJbZV0pXTtpc051bWJlckFycmF5KG4sbnVsbCkmJihpW3RdPW4pO3QrK31lbHNle2lmKCFOdW1iZXIuaXNJbnRlZ2VyKHIpKWJyZWFrO3tjb25zdCBzPVthLmZldGNoSWZSZWYoblsrK2VdKSxhLmZldGNoSWZSZWYoblsrK2VdKSxhLmZldGNoSWZSZWYoblsrK2VdKV07aWYoIWlzTnVtYmVyQXJyYXkocyxudWxsKSljb250aW51ZTtmb3IobGV0IGU9dDtlPD1yO2UrKylpW2VdPXN9fX19fWVsc2V7Y29uc3QgaT1lLmdldCgiV2lkdGhzIik7aWYoQXJyYXkuaXNBcnJheShpKSl7bGV0IGU9bi5maXJzdENoYXI7Zm9yKGNvbnN0IHQgb2YgaSl7Y29uc3Qgbj1hLmZldGNoSWZSZWYodCk7Im51bWJlciI9PXR5cGVvZiBuJiYocltlXT1uKTtlKyt9Y29uc3Qgbz10LmdldCgiTWlzc2luZ1dpZHRoIik7cz0ibnVtYmVyIj09dHlwZW9mIG8/bzowfWVsc2V7Y29uc3QgdD1lLmdldCgiQmFzZUZvbnQiKTtpZih0IGluc3RhbmNlb2YgTmFtZSl7Y29uc3QgZT10aGlzLmdldEJhc2VGb250TWV0cmljcyh0Lm5hbWUpO3I9dGhpcy5idWlsZENoYXJDb2RlVG9XaWR0aChlLndpZHRocyxuKTtzPWUuZGVmYXVsdFdpZHRofX19bGV0IGw9ITAsZj1zO2Zvcihjb25zdCBlIGluIHIpe2NvbnN0IHQ9cltlXTtpZih0KWlmKGYpe2lmKGYhPT10KXtsPSExO2JyZWFrfX1lbHNlIGY9dH1sP24uZmxhZ3N8PUNhOm4uZmxhZ3MmPX5DYTtuLmRlZmF1bHRXaWR0aD1zO24ud2lkdGhzPXI7bi5kZWZhdWx0Vk1ldHJpY3M9bztuLnZtZXRyaWNzPWl9aXNTZXJpZkZvbnQoZSl7Y29uc3QgdD1lLnNwbGl0KCItIiwxKVswXTtyZXR1cm4gdCBpbiBLYSgpfHwvc2VyaWYvZ2kudGVzdCh0KX1nZXRCYXNlRm9udE1ldHJpY3MoZSl7bGV0IHQ9MCxuPU9iamVjdC5jcmVhdGUobnVsbCksYT0hMSxyPW5vcm1hbGl6ZUZvbnROYW1lKGUpO3I9VWEoKVtyXXx8cjtjb25zdCBzPUphKCksaT1zW3JdPz9zW3RoaXMuaXNTZXJpZkZvbnQoZSk/IlRpbWVzLVJvbWFuIjoiSGVsdmV0aWNhIl07aWYoIm51bWJlciI9PXR5cGVvZiBpKXt0PWk7YT0hMH1lbHNlIG49aSgpO3JldHVybntkZWZhdWx0V2lkdGg6dCxtb25vc3BhY2U6YSx3aWR0aHM6bn19YnVpbGRDaGFyQ29kZVRvV2lkdGgoZSx0KXtjb25zdCBuPU9iamVjdC5jcmVhdGUobnVsbCksYT10LmRpZmZlcmVuY2VzLHI9dC5kZWZhdWx0RW5jb2Rpbmc7Zm9yKGxldCB0PTA7dDwyNTY7dCsrKXQgaW4gYSYmZVthW3RdXT9uW3RdPWVbYVt0XV06dCBpbiByJiZlW3JbdF1dJiYoblt0XT1lW3JbdF1dKTtyZXR1cm4gbn1wcmVFdmFsdWF0ZUZvbnQoZSl7Y29uc3QgdD1lO2xldCBuPWUuZ2V0KCJTdWJ0eXBlIik7aWYoIShuIGluc3RhbmNlb2YgTmFtZSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJpbnZhbGlkIGZvbnQgU3VidHlwZSIpO2xldCBhLHI9ITE7aWYoIlR5cGUwIj09PW4ubmFtZSl7Y29uc3QgdD1lLmdldCgiRGVzY2VuZGFudEZvbnRzIik7aWYoIXQpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJEZXNjZW5kYW50IGZvbnRzIGFyZSBub3Qgc3BlY2lmaWVkIik7aWYoISgoZT1BcnJheS5pc0FycmF5KHQpP3RoaXMueHJlZi5mZXRjaElmUmVmKHRbMF0pOnQpaW5zdGFuY2VvZiBEaWN0KSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkRlc2NlbmRhbnQgZm9udCBpcyBub3QgYSBkaWN0aW9uYXJ5LiIpO249ZS5nZXQoIlN1YnR5cGUiKTtpZighKG4gaW5zdGFuY2VvZiBOYW1lKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoImludmFsaWQgZm9udCBTdWJ0eXBlIik7cj0hMH1sZXQgcz1lLmdldCgiRmlyc3RDaGFyIik7TnVtYmVyLmlzSW50ZWdlcihzKXx8KHM9MCk7bGV0IGk9ZS5nZXQoIkxhc3RDaGFyIik7TnVtYmVyLmlzSW50ZWdlcihpKXx8KGk9cj82NTUzNToyNTUpO2NvbnN0IG89ZS5nZXQoIkZvbnREZXNjcmlwdG9yIiksbD1lLmdldCgiVG9Vbmljb2RlIil8fHQuZ2V0KCJUb1VuaWNvZGUiKTtpZihvKXthPW5ldyBNdXJtdXJIYXNoM182NDtjb25zdCBuPXQuZ2V0UmF3KCJFbmNvZGluZyIpO2lmKG4gaW5zdGFuY2VvZiBOYW1lKWEudXBkYXRlKG4ubmFtZSk7ZWxzZSBpZihuIGluc3RhbmNlb2YgUmVmKWEudXBkYXRlKG4udG9TdHJpbmcoKSk7ZWxzZSBpZihuIGluc3RhbmNlb2YgRGljdClmb3IoY29uc3QgZSBvZiBuLmdldFJhd1ZhbHVlcygpKWlmKGUgaW5zdGFuY2VvZiBOYW1lKWEudXBkYXRlKGUubmFtZSk7ZWxzZSBpZihlIGluc3RhbmNlb2YgUmVmKWEudXBkYXRlKGUudG9TdHJpbmcoKSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KGUpKXtjb25zdCB0PWUubGVuZ3RoLG49bmV3IEFycmF5KHQpO2ZvcihsZXQgYT0wO2E8dDthKyspe2NvbnN0IHQ9ZVthXTt0IGluc3RhbmNlb2YgTmFtZT9uW2FdPXQubmFtZTooIm51bWJlciI9PXR5cGVvZiB0fHx0IGluc3RhbmNlb2YgUmVmKSYmKG5bYV09dC50b1N0cmluZygpKX1hLnVwZGF0ZShuLmpvaW4oKSl9YS51cGRhdGUoYCR7c30tJHtpfWApO2lmKGwgaW5zdGFuY2VvZiBCYXNlU3RyZWFtKXtjb25zdCBlPWwuc3RyZWFtfHxsLHQ9ZS5idWZmZXI/bmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIuYnVmZmVyLDAsZS5idWZmZXJMZW5ndGgpOm5ldyBVaW50OEFycmF5KGUuYnl0ZXMuYnVmZmVyLGUuc3RhcnQsZS5lbmQtZS5zdGFydCk7YS51cGRhdGUodCl9ZWxzZSBsIGluc3RhbmNlb2YgTmFtZSYmYS51cGRhdGUobC5uYW1lKTtjb25zdCBvPWUuZ2V0KCJXaWR0aHMiKXx8dC5nZXQoIldpZHRocyIpO2lmKEFycmF5LmlzQXJyYXkobykpe2NvbnN0IGU9W107Zm9yKGNvbnN0IHQgb2YgbykoIm51bWJlciI9PXR5cGVvZiB0fHx0IGluc3RhbmNlb2YgUmVmKSYmZS5wdXNoKHQudG9TdHJpbmcoKSk7YS51cGRhdGUoZS5qb2luKCkpfWlmKHIpe2EudXBkYXRlKCJjb21wb3NpdGVGb250Iik7Y29uc3Qgbj1lLmdldCgiVyIpfHx0LmdldCgiVyIpO2lmKEFycmF5LmlzQXJyYXkobikpe2NvbnN0IGU9W107Zm9yKGNvbnN0IHQgb2YgbilpZigibnVtYmVyIj09dHlwZW9mIHR8fHQgaW5zdGFuY2VvZiBSZWYpZS5wdXNoKHQudG9TdHJpbmcoKSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KHQpKXtjb25zdCBuPVtdO2Zvcihjb25zdCBlIG9mIHQpKCJudW1iZXIiPT10eXBlb2YgZXx8ZSBpbnN0YW5jZW9mIFJlZikmJm4ucHVzaChlLnRvU3RyaW5nKCkpO2UucHVzaChgWyR7bi5qb2luKCl9XWApfWEudXBkYXRlKGUuam9pbigpKX1jb25zdCByPWUuZ2V0UmF3KCJDSURUb0dJRE1hcCIpfHx0LmdldFJhdygiQ0lEVG9HSURNYXAiKTtyIGluc3RhbmNlb2YgTmFtZT9hLnVwZGF0ZShyLm5hbWUpOnIgaW5zdGFuY2VvZiBSZWY/YS51cGRhdGUoci50b1N0cmluZygpKTpyIGluc3RhbmNlb2YgQmFzZVN0cmVhbSYmYS51cGRhdGUoci5wZWVrQnl0ZXMoKSl9fXJldHVybntkZXNjcmlwdG9yOm8sZGljdDplLGJhc2VEaWN0OnQsY29tcG9zaXRlOnIsdHlwZTpuLm5hbWUsZmlyc3RDaGFyOnMsbGFzdENoYXI6aSx0b1VuaWNvZGU6bCxoYXNoOmE/YS5oZXhkaWdlc3QoKToiIn19YXN5bmMgdHJhbnNsYXRlRm9udCh7ZGVzY3JpcHRvcjplLGRpY3Q6dCxiYXNlRGljdDpuLGNvbXBvc2l0ZTpyLHR5cGU6cyxmaXJzdENoYXI6aSxsYXN0Q2hhcjpvLHRvVW5pY29kZTpsLGNzc0ZvbnRJbmZvOmZ9KXtjb25zdCBjPSJUeXBlMyI9PT1zO2lmKCFlKXtpZighYyl7bGV0IGU9dC5nZXQoIkJhc2VGb250Iik7aWYoIShlIGluc3RhbmNlb2YgTmFtZSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJCYXNlIGZvbnQgaXMgbm90IHNwZWNpZmllZCIpO2U9bm9ybWFsaXplRm9udE5hbWUoZS5uYW1lKTtjb25zdCBhPXRoaXMuZ2V0QmFzZUZvbnRNZXRyaWNzKGUpLHI9ZS5zcGxpdCgiLSIsMSlbMF0sZj0odGhpcy5pc1NlcmlmRm9udChyKT9JYTowKXwoYS5tb25vc3BhY2U/Q2E6MCl8KFZhKClbcl0/RmE6VGEpLGg9e3R5cGU6cyxuYW1lOmUsbG9hZGVkTmFtZTpuLmxvYWRlZE5hbWUsc3lzdGVtRm9udEluZm86bnVsbCx3aWR0aHM6YS53aWR0aHMsZGVmYXVsdFdpZHRoOmEuZGVmYXVsdFdpZHRoLGlzU2ltdWxhdGVkRmxhZ3M6ITAsZmxhZ3M6ZixmaXJzdENoYXI6aSxsYXN0Q2hhcjpvLHRvVW5pY29kZTpsLHhIZWlnaHQ6MCxjYXBIZWlnaHQ6MCxpdGFsaWNBbmdsZTowLGlzVHlwZTNGb250OmN9LHU9dC5nZXQoIldpZHRocyIpLG09Z2V0U3RhbmRhcmRGb250TmFtZShlKTtsZXQgcD1udWxsO2lmKG0pe3A9YXdhaXQgdGhpcy5mZXRjaFN0YW5kYXJkRm9udERhdGEobSk7aC5pc0ludGVybmFsRm9udD0hIXB9IWguaXNJbnRlcm5hbEZvbnQmJnRoaXMub3B0aW9ucy51c2VTeXN0ZW1Gb250cyYmKGguc3lzdGVtRm9udEluZm89Z2V0Rm9udFN1YnN0aXR1dGlvbih0aGlzLnN5c3RlbUZvbnRDYWNoZSx0aGlzLmlkRmFjdG9yeSx0aGlzLm9wdGlvbnMuc3RhbmRhcmRGb250RGF0YVVybCxlLG0scykpO2NvbnN0IGQ9YXdhaXQgdGhpcy5leHRyYWN0RGF0YVN0cnVjdHVyZXModCxoKTtpZihBcnJheS5pc0FycmF5KHUpKXtjb25zdCBlPVtdO2xldCB0PWk7Zm9yKGNvbnN0IG4gb2YgdSl7Y29uc3QgYT10aGlzLnhyZWYuZmV0Y2hJZlJlZihuKTsibnVtYmVyIj09dHlwZW9mIGEmJihlW3RdPWEpO3QrK31kLndpZHRocz1lfWVsc2UgZC53aWR0aHM9dGhpcy5idWlsZENoYXJDb2RlVG9XaWR0aChhLndpZHRocyxkKTtyZXR1cm4gbmV3IEZvbnQoZSxwLGQsdGhpcy5vcHRpb25zKX1lPURpY3QuZW1wdHl9bGV0IGg9ZS5nZXQoIkZvbnROYW1lIiksdT10LmdldCgiQmFzZUZvbnQiKTsic3RyaW5nIj09dHlwZW9mIGgmJihoPU5hbWUuZ2V0KGgpKTsic3RyaW5nIj09dHlwZW9mIHUmJih1PU5hbWUuZ2V0KHUpKTtjb25zdCBtPWg/Lm5hbWUscD11Py5uYW1lO2lmKGMpbXx8KGg9TmFtZS5nZXQocykpO2Vsc2UgaWYobSE9PXApe2luZm8oYFRoZSBGb250RGVzY3JpcHRvcidzIEZvbnROYW1lIGlzICIke219IiBidXQgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHRoZSBGb250J3MgQmFzZUZvbnQgIiR7cH0iLmApO20mJnAmJihwLnN0YXJ0c1dpdGgobSl8fCFpc0tub3duRm9udE5hbWUobSkmJmlzS25vd25Gb250TmFtZShwKSkmJihoPW51bGwpO2h8fD11fWlmKCEoaCBpbnN0YW5jZW9mIE5hbWUpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiaW52YWxpZCBmb250IG5hbWUiKTtsZXQgZCxnLGIsdyxqO3RyeXtkPWUuZ2V0KCJGb250RmlsZSIsIkZvbnRGaWxlMiIsIkZvbnRGaWxlMyIpO2lmKGQpe2lmKCEoZCBpbnN0YW5jZW9mIEJhc2VTdHJlYW0pKXRocm93IG5ldyBGb3JtYXRFcnJvcigiRm9udEZpbGUgc2hvdWxkIGJlIGEgc3RyZWFtIik7aWYoZC5pc0FzeW5jKXtjb25zdCBlPWF3YWl0IGQuYXN5bmNHZXRCeXRlcygpO2UmJihkPW5ldyBTdHJlYW0oZSwwLGUubGVuZ3RoLGQuZGljdCkpfWlmKGQuaXNFbXB0eSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkZvbnRGaWxlIGlzIGVtcHR5Iil9fWNhdGNoKGUpe2lmKCF0aGlzLm9wdGlvbnMuaWdub3JlRXJyb3JzKXRocm93IGU7d2FybihgdHJhbnNsYXRlRm9udCAtIGZldGNoaW5nICIke2gubmFtZX0iIGZvbnQgZmlsZTogIiR7ZX0iLmApO2Q9bnVsbH1sZXQgaz0hMSx5PW51bGwscT1udWxsO2lmKGQpe2lmKGQuZGljdCl7Y29uc3QgZT1kLmRpY3QuZ2V0KCJTdWJ0eXBlIik7ZSBpbnN0YW5jZW9mIE5hbWUmJihnPWUubmFtZSk7Yj1kLmRpY3QuZ2V0KCJMZW5ndGgxIik7dz1kLmRpY3QuZ2V0KCJMZW5ndGgyIik7aj1kLmRpY3QuZ2V0KCJMZW5ndGgzIil9fWVsc2UgaWYoZil7Y29uc3QgZT1nZXRYZmFGb250TmFtZShoLm5hbWUpO2lmKGUpe2YuZm9udEZhbWlseT1gJHtmLmZvbnRGYW1pbHl9LVBkZkpTLVhGQWA7Zi5tZXRyaWNzPWUubWV0cmljc3x8bnVsbDt5PWUuZmFjdG9yc3x8bnVsbDtkPWF3YWl0IHRoaXMuZmV0Y2hTdGFuZGFyZEZvbnREYXRhKGUubmFtZSk7az0hIWQ7bj10PWdldFhmYUZvbnREaWN0KGgubmFtZSk7cj0hMH19ZWxzZSBpZighYyl7Y29uc3QgZT1nZXRTdGFuZGFyZEZvbnROYW1lKGgubmFtZSk7aWYoZSl7ZD1hd2FpdCB0aGlzLmZldGNoU3RhbmRhcmRGb250RGF0YShlKTtrPSEhZH0hayYmdGhpcy5vcHRpb25zLnVzZVN5c3RlbUZvbnRzJiYocT1nZXRGb250U3Vic3RpdHV0aW9uKHRoaXMuc3lzdGVtRm9udENhY2hlLHRoaXMuaWRGYWN0b3J5LHRoaXMub3B0aW9ucy5zdGFuZGFyZEZvbnREYXRhVXJsLGgubmFtZSxlLHMpKX1jb25zdCB2PWxvb2t1cE1hdHJpeCh0LmdldEFycmF5KCJGb250TWF0cml4IiksYSksUz1sb29rdXBOb3JtYWxSZWN0KGUuZ2V0QXJyYXkoIkZvbnRCQm94Iil8fHQuZ2V0QXJyYXkoIkZvbnRCQm94IiksYz9bMCwwLDAsMF06dm9pZCAwKTtsZXQgeD1lLmdldCgiQXNjZW50Iik7Im51bWJlciIhPXR5cGVvZiB4JiYoeD12b2lkIDApO2xldCBDPWUuZ2V0KCJEZXNjZW50Iik7Im51bWJlciIhPXR5cGVvZiBDJiYoQz12b2lkIDApO2xldCBUPWUuZ2V0KCJYSGVpZ2h0Iik7Im51bWJlciIhPXR5cGVvZiBUJiYoVD0wKTtsZXQgTz1lLmdldCgiQ2FwSGVpZ2h0Iik7Im51bWJlciIhPXR5cGVvZiBPJiYoTz0wKTtsZXQgUj1lLmdldCgiRmxhZ3MiKTtOdW1iZXIuaXNJbnRlZ2VyKFIpfHwoUj0wKTtsZXQgSD1lLmdldCgiSXRhbGljQW5nbGUiKTsibnVtYmVyIiE9dHlwZW9mIEgmJihIPTApO2NvbnN0IEQ9e3R5cGU6cyxuYW1lOmgubmFtZSxzdWJ0eXBlOmcsZmlsZTpkLGxlbmd0aDE6YixsZW5ndGgyOncsbGVuZ3RoMzpqLGlzSW50ZXJuYWxGb250OmssbG9hZGVkTmFtZTpuLmxvYWRlZE5hbWUsY29tcG9zaXRlOnIsZml4ZWRQaXRjaDohMSxmb250TWF0cml4OnYsZmlyc3RDaGFyOmksbGFzdENoYXI6byx0b1VuaWNvZGU6bCxiYm94OlMsYXNjZW50OngsZGVzY2VudDpDLHhIZWlnaHQ6VCxjYXBIZWlnaHQ6TyxmbGFnczpSLGl0YWxpY0FuZ2xlOkgsaXNUeXBlM0ZvbnQ6Yyxjc3NGb250SW5mbzpmLHNjYWxlRmFjdG9yczp5LHN5c3RlbUZvbnRJbmZvOnF9O2lmKHIpe2NvbnN0IGU9bi5nZXQoIkVuY29kaW5nIik7ZSBpbnN0YW5jZW9mIE5hbWUmJihELmNpZEVuY29kaW5nPWUubmFtZSk7Y29uc3QgdD1hd2FpdCBDTWFwRmFjdG9yeS5jcmVhdGUoe2VuY29kaW5nOmUsZmV0Y2hCdWlsdEluQ01hcDp0aGlzLl9mZXRjaEJ1aWx0SW5DTWFwQm91bmQsdXNlQ01hcDpudWxsfSk7RC5jTWFwPXQ7RC52ZXJ0aWNhbD1ELmNNYXAudmVydGljYWx9Y29uc3QgTT1hd2FpdCB0aGlzLmV4dHJhY3REYXRhU3RydWN0dXJlcyh0LEQpO3RoaXMuZXh0cmFjdFdpZHRocyh0LGUsTSk7cmV0dXJuIG5ldyBGb250KGgubmFtZSxkLE0sdGhpcy5vcHRpb25zKX1zdGF0aWMgYnVpbGRGb250UGF0aHMoZSx0LG4sYSl7ZnVuY3Rpb24gYnVpbGRQYXRoKHQpe2NvbnN0IHI9YCR7ZS5sb2FkZWROYW1lfV9wYXRoXyR7dH1gO3RyeXtpZihlLnJlbmRlcmVyLmhhc0J1aWx0UGF0aCh0KSlyZXR1cm47Y29uc3QgYT1Gb250UGF0aEluZm8ud3JpdGUoZS5yZW5kZXJlci5nZXRQYXRoSnModCkpO24uc2VuZCgiY29tbW9ub2JqIixbciwiRm9udFBhdGgiLGFdLFthXSl9Y2F0Y2goZSl7aWYoYS5pZ25vcmVFcnJvcnMpe3dhcm4oYGJ1aWxkRm9udFBhdGhzIC0gaWdub3JpbmcgJHtyfSBnbHlwaDogIiR7ZX0iLmApO3JldHVybn10aHJvdyBlfX1mb3IoY29uc3QgZSBvZiB0KXtidWlsZFBhdGgoZS5mb250Q2hhcik7Y29uc3QgdD1lLmFjY2VudDt0Py5mb250Q2hhciYmYnVpbGRQYXRoKHQuZm9udENoYXIpfX1zdGF0aWMgZ2V0IGZhbGxiYWNrRm9udERpY3QoKXtjb25zdCBlPW5ldyBEaWN0O2Uuc2V0KCJCYXNlRm9udCIsTmFtZS5nZXQoIkhlbHZldGljYSIpKTtlLnNldCgiVHlwZSIsTmFtZS5nZXQoIkZhbGxiYWNrVHlwZSIpKTtlLnNldCgiU3VidHlwZSIsTmFtZS5nZXQoIkZhbGxiYWNrVHlwZSIpKTtlLnNldCgiRW5jb2RpbmciLE5hbWUuZ2V0KCJXaW5BbnNpRW5jb2RpbmciKSk7cmV0dXJuIHNoYWRvdyh0aGlzLCJmYWxsYmFja0ZvbnREaWN0IixlKX19Y2xhc3MgVHJhbnNsYXRlZEZvbnR7I3VlPSExOyNtZT1udWxsO2NvbnN0cnVjdG9yKHtsb2FkZWROYW1lOmUsZm9udDp0LGRpY3Q6bn0pe3RoaXMubG9hZGVkTmFtZT1lO3RoaXMuZm9udD10O3RoaXMuZGljdD1uO3RoaXMudHlwZTNEZXBlbmRlbmNpZXM9dC5pc1R5cGUzRm9udD9uZXcgU2V0Om51bGx9c2VuZChlKXtpZih0aGlzLiN1ZSlyZXR1cm47dGhpcy4jdWU9ITA7Y29uc3QgdD10aGlzLmZvbnQuZXhwb3J0RGF0YSgpLG49W107aWYodC5kYXRhKXt0LmRhdGEuY2hhclByb2NPcGVyYXRvckxpc3QmJih0LmNoYXJQcm9jT3BlcmF0b3JMaXN0PXQuZGF0YS5jaGFyUHJvY09wZXJhdG9yTGlzdCk7dC5kYXRhPUZvbnRJbmZvLndyaXRlKHQuZGF0YSk7bi5wdXNoKHQuZGF0YSl9ZS5zZW5kKCJjb21tb25vYmoiLFt0aGlzLmxvYWRlZE5hbWUsIkZvbnQiLHRdLG4pfWZhbGxiYWNrKGUsdCl7aWYodGhpcy5mb250LmRhdGEpe3RoaXMuZm9udC5kaXNhYmxlRm9udEZhY2U9ITA7UGFydGlhbEV2YWx1YXRvci5idWlsZEZvbnRQYXRocyh0aGlzLmZvbnQsdGhpcy5mb250LmdseXBoQ2FjaGVWYWx1ZXMsZSx0KX19bG9hZFR5cGUzRGF0YShlLHQsbil7aWYodGhpcy4jbWUpcmV0dXJuIHRoaXMuI21lO2NvbnN0e2ZvbnQ6YSx0eXBlM0RlcGVuZGVuY2llczpyfT10aGlzO2Fzc2VydChhLmlzVHlwZTNGb250LCJNdXN0IGJlIGEgVHlwZTMgZm9udC4iKTtjb25zdCBzPWUuY2xvbmUoe2lnbm9yZUVycm9yczohMX0pLGk9bmV3IFJlZlNldChlLnR5cGUzRm9udFJlZnMpO3RoaXMuZGljdC5vYmpJZCYmIWkuaGFzKHRoaXMuZGljdC5vYmpJZCkmJmkucHV0KHRoaXMuZGljdC5vYmpJZCk7cy50eXBlM0ZvbnRSZWZzPWk7bGV0IG89UHJvbWlzZS5yZXNvbHZlKCk7Y29uc3QgbD10aGlzLmRpY3QuZ2V0KCJDaGFyUHJvY3MiKSxmPXRoaXMuZGljdC5nZXQoIlJlc291cmNlcyIpfHx0LGM9T2JqZWN0LmNyZWF0ZShudWxsKSxbaCx1LG0scF09YS5iYm94LGQ9bS1oLGc9cC11LGI9TWF0aC5oeXBvdChkLGcpO2Zvcihjb25zdCBlIG9mIGwuZ2V0S2V5cygpKW89by50aGVuKCgpPT57Y29uc3QgdD1sLmdldChlKSxhPW5ldyBPcGVyYXRvckxpc3Q7cmV0dXJuIHMuZ2V0T3BlcmF0b3JMaXN0KHtzdHJlYW06dCx0YXNrOm4scmVzb3VyY2VzOmYsb3BlcmF0b3JMaXN0OmF9KS50aGVuKCgpPT57c3dpdGNoKGEuZm5BcnJheVswXSl7Y2FzZSBvdDp0aGlzLiNwZShhLGIpO2JyZWFrO2Nhc2UgaXQ6Ynx8dGhpcy4jZGUoYSl9Y1tlXT1hLmdldElSKCk7Zm9yKGNvbnN0IGUgb2YgYS5kZXBlbmRlbmNpZXMpci5hZGQoZSl9KS5jYXRjaChmdW5jdGlvbih0KXt3YXJuKGBUeXBlMyBmb250IHJlc291cmNlICIke2V9IiBpcyBub3QgYXZhaWxhYmxlLmApO2NvbnN0IG49bmV3IE9wZXJhdG9yTGlzdDtjW2VdPW4uZ2V0SVIoKX0pfSk7dGhpcy4jbWU9by50aGVuKCgpPT57YS5jaGFyUHJvY09wZXJhdG9yTGlzdD1jO2lmKHRoaXMuX2Jib3gpe2EuaXNDaGFyQkJveD0hMDthLmJib3g9dGhpcy5fYmJveH19KTtyZXR1cm4gdGhpcy4jbWV9I3BlKGUsdD1OYU4pe2NvbnN0IG49VXRpbC5ub3JtYWxpemVSZWN0KGUuYXJnc0FycmF5WzBdLnNsaWNlKDIpKSxhPW5bMl0tblswXSxyPW5bM10tblsxXSxzPU1hdGguaHlwb3QoYSxyKTtpZigwPT09YXx8MD09PXIpe2UuZm5BcnJheS5zcGxpY2UoMCwxKTtlLmFyZ3NBcnJheS5zcGxpY2UoMCwxKX1lbHNlIGlmKDA9PT10fHxNYXRoLnJvdW5kKHMvdCk+PTEwKXt0aGlzLl9iYm94Pz89WzEvMCwxLzAsLTEvMCwtMS8wXTtVdGlsLnJlY3RCb3VuZGluZ0JveCguLi5uLHRoaXMuX2Jib3gpfWxldCBpPTAsbz1lLmxlbmd0aDtmb3IoO2k8bzspe3N3aXRjaChlLmZuQXJyYXlbaV0pe2Nhc2Ugb3Q6YnJlYWs7Y2FzZSBsdDpjYXNlIGZ0OmNhc2UgY3Q6Y2FzZSBodDpjYXNlIHV0OmNhc2UgbXQ6Y2FzZSBwdDpjYXNlIGR0OmNhc2UgZ3Q6Y2FzZSBidDpjYXNlIHd0OmNhc2UganQ6Y2FzZSBrdDpjYXNlIHdlOmUuZm5BcnJheS5zcGxpY2UoaSwxKTtlLmFyZ3NBcnJheS5zcGxpY2UoaSwxKTtvLS07Y29udGludWU7Y2FzZSBrZTpjb25zdFt0XT1lLmFyZ3NBcnJheVtpXTtsZXQgbj0wLGE9dC5sZW5ndGg7Zm9yKDtuPGE7KXtjb25zdFtlXT10W25dO3N3aXRjaChlKXtjYXNlIlRSIjpjYXNlIlRSMiI6Y2FzZSJIVCI6Y2FzZSJCRyI6Y2FzZSJCRzIiOmNhc2UiVUNSIjpjYXNlIlVDUjIiOnQuc3BsaWNlKG4sMSk7YS0tO2NvbnRpbnVlfW4rK319aSsrfX0jZGUoZSl7bGV0IHQ9MTtjb25zdCBuPWUubGVuZ3RoO2Zvcig7dDxuOyl7aWYoZS5mbkFycmF5W3RdPT09S3Qpe2NvbnN0IG49ZS5hcmdzQXJyYXlbdF1bMl07dGhpcy5fYmJveD8/PVsxLzAsMS8wLC0xLzAsLTEvMF07VXRpbC5yZWN0Qm91bmRpbmdCb3goLi4ubix0aGlzLl9iYm94KX10Kyt9fX1jbGFzcyBTdGF0ZU1hbmFnZXJ7Y29uc3RydWN0b3IoZT1uZXcgRXZhbFN0YXRlKXt0aGlzLnN0YXRlPWU7dGhpcy5zdGF0ZVN0YWNrPVtdfXNhdmUoKXtjb25zdCBlPXRoaXMuc3RhdGU7dGhpcy5zdGF0ZVN0YWNrLnB1c2godGhpcy5zdGF0ZSk7dGhpcy5zdGF0ZT1lLmNsb25lKCl9cmVzdG9yZSgpe2NvbnN0IGU9dGhpcy5zdGF0ZVN0YWNrLnBvcCgpO2UmJih0aGlzLnN0YXRlPWUpfXRyYW5zZm9ybShlKXt0aGlzLnN0YXRlLmN0bT1VdGlsLnRyYW5zZm9ybSh0aGlzLnN0YXRlLmN0bSxlKX19Y2xhc3MgVGV4dFN0YXRle2N0bT1uZXcgRmxvYXQzMkFycmF5KHduKTtmb250TmFtZT1udWxsO2ZvbnRTaXplPTA7bG9hZGVkTmFtZT1udWxsO2ZvbnQ9bnVsbDtmb250TWF0cml4PWE7dGV4dE1hdHJpeD13bi5zbGljZSgpO3RleHRMaW5lTWF0cml4PXduLnNsaWNlKCk7Y2hhclNwYWNpbmc9MDt3b3JkU3BhY2luZz0wO2xlYWRpbmc9MDt0ZXh0SFNjYWxlPTE7dGV4dFJpc2U9MDtzZXRUZXh0TWF0cml4KGUsdCxuLGEscixzKXtjb25zdCBpPXRoaXMudGV4dE1hdHJpeDtpWzBdPWU7aVsxXT10O2lbMl09bjtpWzNdPWE7aVs0XT1yO2lbNV09c31zZXRUZXh0TGluZU1hdHJpeChlLHQsbixhLHIscyl7Y29uc3QgaT10aGlzLnRleHRMaW5lTWF0cml4O2lbMF09ZTtpWzFdPXQ7aVsyXT1uO2lbM109YTtpWzRdPXI7aVs1XT1zfXRyYW5zbGF0ZVRleHRNYXRyaXgoZSx0KXtjb25zdCBuPXRoaXMudGV4dE1hdHJpeDtuWzRdPW5bMF0qZStuWzJdKnQrbls0XTtuWzVdPW5bMV0qZStuWzNdKnQrbls1XX10cmFuc2xhdGVUZXh0TGluZU1hdHJpeChlLHQpe2NvbnN0IG49dGhpcy50ZXh0TGluZU1hdHJpeDtuWzRdPW5bMF0qZStuWzJdKnQrbls0XTtuWzVdPW5bMV0qZStuWzNdKnQrbls1XX1jYXJyaWFnZVJldHVybigpe3RoaXMudHJhbnNsYXRlVGV4dExpbmVNYXRyaXgoMCwtdGhpcy5sZWFkaW5nKTt0aGlzLnRleHRNYXRyaXg9dGhpcy50ZXh0TGluZU1hdHJpeC5zbGljZSgpfWNsb25lKCl7Y29uc3QgZT1PYmplY3QuYXNzaWduKE9iamVjdC5jcmVhdGUodGhpcyksdGhpcyk7ZS50ZXh0TWF0cml4PXRoaXMudGV4dE1hdHJpeC5zbGljZSgpO2UudGV4dExpbmVNYXRyaXg9dGhpcy50ZXh0TGluZU1hdHJpeC5zbGljZSgpO2UuZm9udE1hdHJpeD10aGlzLmZvbnRNYXRyaXguc2xpY2UoKTtyZXR1cm4gZX19Y2xhc3MgRXZhbFN0YXRle2N0bT1uZXcgRmxvYXQzMkFycmF5KHduKTtmb250PW51bGw7dGV4dFJlbmRlcmluZ01vZGU9eDtfZmlsbENvbG9yU3BhY2U9Q29sb3JTcGFjZVV0aWxzLmdyYXk7X3N0cm9rZUNvbG9yU3BhY2U9Q29sb3JTcGFjZVV0aWxzLmdyYXk7cGF0dGVybkZpbGxDb2xvclNwYWNlPW51bGw7cGF0dGVyblN0cm9rZUNvbG9yU3BhY2U9bnVsbDtjdXJyZW50UG9pbnRYPTA7Y3VycmVudFBvaW50WT0wO3BhdGhNaW5NYXg9bmV3IEZsb2F0MzJBcnJheShbMS8wLDEvMCwtMS8wLC0xLzBdKTtwYXRoQnVmZmVyPVtdO2dldCBmaWxsQ29sb3JTcGFjZSgpe3JldHVybiB0aGlzLl9maWxsQ29sb3JTcGFjZX1zZXQgZmlsbENvbG9yU3BhY2UoZSl7dGhpcy5fZmlsbENvbG9yU3BhY2U9dGhpcy5wYXR0ZXJuRmlsbENvbG9yU3BhY2U9ZX1nZXQgc3Ryb2tlQ29sb3JTcGFjZSgpe3JldHVybiB0aGlzLl9zdHJva2VDb2xvclNwYWNlfXNldCBzdHJva2VDb2xvclNwYWNlKGUpe3RoaXMuX3N0cm9rZUNvbG9yU3BhY2U9dGhpcy5wYXR0ZXJuU3Ryb2tlQ29sb3JTcGFjZT1lfWNsb25lKHtuZXdQYXRoOmU9ITF9PXt9KXtjb25zdCB0PU9iamVjdC5jcmVhdGUodGhpcyk7aWYoZSl7dC5wYXRoQnVmZmVyPVtdO3QucGF0aE1pbk1heD1uZXcgRmxvYXQzMkFycmF5KFsxLzAsMS8wLC0xLzAsLTEvMF0pfXJldHVybiB0fX1jbGFzcyBFdmFsdWF0b3JQcmVwcm9jZXNzb3J7c3RhdGljIGdldCBvcE1hcCgpe3JldHVybiBzaGFkb3codGhpcywib3BNYXAiLE9iamVjdC5hc3NpZ24oT2JqZWN0LmNyZWF0ZShudWxsKSx7dzp7aWQ6bWUsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sSjp7aWQ6cGUsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sajp7aWQ6ZGUsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sTTp7aWQ6Z2UsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sZDp7aWQ6YmUsbnVtQXJnczoyLHZhcmlhYmxlQXJnczohMX0scmk6e2lkOndlLG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LGk6e2lkOmplLG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LGdzOntpZDprZSxudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSxxOntpZDp5ZSxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxROntpZDpxZSxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxjbTp7aWQ6dmUsbnVtQXJnczo2LHZhcmlhYmxlQXJnczohMX0sbTp7aWQ6U2UsbnVtQXJnczoyLHZhcmlhYmxlQXJnczohMX0sbDp7aWQ6eGUsbnVtQXJnczoyLHZhcmlhYmxlQXJnczohMX0sYzp7aWQ6QWUsbnVtQXJnczo2LHZhcmlhYmxlQXJnczohMX0sdjp7aWQ6Q2UsbnVtQXJnczo0LHZhcmlhYmxlQXJnczohMX0seTp7aWQ6SWUsbnVtQXJnczo0LHZhcmlhYmxlQXJnczohMX0saDp7aWQ6RmUsbnVtQXJnczowLHZhcmlhYmxlQXJnczohMX0scmU6e2lkOlRlLG51bUFyZ3M6NCx2YXJpYWJsZUFyZ3M6ITF9LFM6e2lkOk9lLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LHM6e2lkOlJlLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LGY6e2lkOkJlLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LEY6e2lkOkJlLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LCJmKiI6e2lkOkhlLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LEI6e2lkOkRlLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LCJCKiI6e2lkOk1lLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LGI6e2lkOlBlLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LCJiKiI6e2lkOkVlLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LG46e2lkOk5lLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LFc6e2lkOnplLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LCJXKiI6e2lkOl9lLG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LEJUOntpZDpMZSxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxFVDp7aWQ6VWUsbnVtQXJnczowLHZhcmlhYmxlQXJnczohMX0sVGM6e2lkOlhlLG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LFR3OntpZDpXZSxudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSxUejp7aWQ6S2UsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sVEw6e2lkOlZlLG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LFRmOntpZDpHZSxudW1BcmdzOjIsdmFyaWFibGVBcmdzOiExfSxUcjp7aWQ6JGUsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sVHM6e2lkOlllLG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LFRkOntpZDpKZSxudW1BcmdzOjIsdmFyaWFibGVBcmdzOiExfSxURDp7aWQ6UWUsbnVtQXJnczoyLHZhcmlhYmxlQXJnczohMX0sVG06e2lkOlplLG51bUFyZ3M6Nix2YXJpYWJsZUFyZ3M6ITF9LCJUKiI6e2lkOmV0LG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LFRqOntpZDp0dCxudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSxUSjp7aWQ6bnQsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sIiciOntpZDpydCxudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSwnIic6e2lkOnN0LG51bUFyZ3M6Myx2YXJpYWJsZUFyZ3M6ITF9LGQwOntpZDppdCxudW1BcmdzOjIsdmFyaWFibGVBcmdzOiExfSxkMTp7aWQ6b3QsbnVtQXJnczo2LHZhcmlhYmxlQXJnczohMX0sQ1M6e2lkOmx0LG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LGNzOntpZDpmdCxudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSxTQzp7aWQ6Y3QsbnVtQXJnczo0LHZhcmlhYmxlQXJnczohMH0sU0NOOntpZDpodCxudW1BcmdzOjMzLHZhcmlhYmxlQXJnczohMH0sc2M6e2lkOnV0LG51bUFyZ3M6NCx2YXJpYWJsZUFyZ3M6ITB9LHNjbjp7aWQ6bXQsbnVtQXJnczozMyx2YXJpYWJsZUFyZ3M6ITB9LEc6e2lkOnB0LG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LGc6e2lkOmR0LG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LFJHOntpZDpndCxudW1BcmdzOjMsdmFyaWFibGVBcmdzOiExfSxyZzp7aWQ6YnQsbnVtQXJnczozLHZhcmlhYmxlQXJnczohMX0sSzp7aWQ6d3QsbnVtQXJnczo0LHZhcmlhYmxlQXJnczohMX0sazp7aWQ6anQsbnVtQXJnczo0LHZhcmlhYmxlQXJnczohMX0sc2g6e2lkOmt0LG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LEJJOntpZDp5dCxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxJRDp7aWQ6cXQsbnVtQXJnczowLHZhcmlhYmxlQXJnczohMX0sRUk6e2lkOnZ0LG51bUFyZ3M6MSx2YXJpYWJsZUFyZ3M6ITF9LERvOntpZDpTdCxudW1BcmdzOjEsdmFyaWFibGVBcmdzOiExfSxNUDp7aWQ6eHQsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sRFA6e2lkOkF0LG51bUFyZ3M6Mix2YXJpYWJsZUFyZ3M6ITF9LEJNQzp7aWQ6Q3QsbnVtQXJnczoxLHZhcmlhYmxlQXJnczohMX0sQkRDOntpZDpJdCxudW1BcmdzOjIsdmFyaWFibGVBcmdzOiExfSxFTUM6e2lkOkZ0LG51bUFyZ3M6MCx2YXJpYWJsZUFyZ3M6ITF9LEJYOntpZDpUdCxudW1BcmdzOjAsdmFyaWFibGVBcmdzOiExfSxFWDp7aWQ6T3QsbnVtQXJnczowLHZhcmlhYmxlQXJnczohMX0sQk06bnVsbCxCRDpudWxsLHRydWU6bnVsbCxmYTpudWxsLGZhbDpudWxsLGZhbHM6bnVsbCxmYWxzZTpudWxsLG51Om51bGwsbnVsOm51bGwsbnVsbDpudWxsfSkpfXN0YXRpYyBNQVhfSU5WQUxJRF9QQVRIX09QUz0xMDtjb25zdHJ1Y3RvcihlLHQsbj1uZXcgU3RhdGVNYW5hZ2VyKXt0aGlzLnBhcnNlcj1uZXcgUGFyc2VyKHtsZXhlcjpuZXcgTGV4ZXIoZSxFdmFsdWF0b3JQcmVwcm9jZXNzb3Iub3BNYXApLHhyZWY6dH0pO3RoaXMuc3RhdGVNYW5hZ2VyPW47dGhpcy5ub25Qcm9jZXNzZWRBcmdzPVtdO3RoaXMuX2lzUGF0aE9wPSExO3RoaXMuX251bUludmFsaWRQYXRoT1BTPTB9Z2V0IHNhdmVkU3RhdGVzRGVwdGgoKXtyZXR1cm4gdGhpcy5zdGF0ZU1hbmFnZXIuc3RhdGVTdGFjay5sZW5ndGh9cmVhZChlKXtsZXQgdD1lLmFyZ3M7Zm9yKDs7KXtjb25zdCBuPXRoaXMucGFyc2VyLmdldE9iaigpO2lmKG4gaW5zdGFuY2VvZiBDbWQpe2NvbnN0IGE9bi5jbWQscj1FdmFsdWF0b3JQcmVwcm9jZXNzb3Iub3BNYXBbYV07aWYoIXIpe3dhcm4oYFVua25vd24gY29tbWFuZCAiJHthfSIuYCk7Y29udGludWV9Y29uc3Qgcz1yLmlkLGk9ci5udW1BcmdzO2xldCBvPW51bGwhPT10P3QubGVuZ3RoOjA7dGhpcy5faXNQYXRoT3B8fCh0aGlzLl9udW1JbnZhbGlkUGF0aE9QUz0wKTt0aGlzLl9pc1BhdGhPcD1zPj1TZSYmczw9TmU7aWYoci52YXJpYWJsZUFyZ3Mpbz5pJiZpbmZvKGBDb21tYW5kICR7YX06IGV4cGVjdGVkIFswLCAke2l9XSBhcmdzLCBidXQgcmVjZWl2ZWQgJHtvfSBhcmdzLmApO2Vsc2V7aWYobyE9PWkpe2NvbnN0IGU9dGhpcy5ub25Qcm9jZXNzZWRBcmdzO2Zvcig7bz5pOyl7ZS5wdXNoKHQuc2hpZnQoKSk7by0tfWZvcig7bzxpJiYwIT09ZS5sZW5ndGg7KXtudWxsPT09dCYmKHQ9W10pO3QudW5zaGlmdChlLnBvcCgpKTtvKyt9fWlmKG88aSl7Y29uc3QgZT1gY29tbWFuZCAke2F9OiBleHBlY3RlZCAke2l9IGFyZ3MsIGJ1dCByZWNlaXZlZCAke299IGFyZ3MuYDtpZih0aGlzLl9pc1BhdGhPcCYmKyt0aGlzLl9udW1JbnZhbGlkUGF0aE9QUz5FdmFsdWF0b3JQcmVwcm9jZXNzb3IuTUFYX0lOVkFMSURfUEFUSF9PUFMpdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBJbnZhbGlkICR7ZX1gKTt3YXJuKGBTa2lwcGluZyAke2V9YCk7bnVsbCE9PXQmJih0Lmxlbmd0aD0wKTtjb250aW51ZX19dGhpcy5wcmVwcm9jZXNzQ29tbWFuZChzLHQpO2UuZm49cztlLmFyZ3M9dDtyZXR1cm4hMH1pZihuPT09aG4pcmV0dXJuITE7aWYobnVsbCE9PW4pe251bGw9PT10JiYodD1bXSk7dC5wdXNoKG4pO2lmKHQubGVuZ3RoPjMzKXRocm93IG5ldyBGb3JtYXRFcnJvcigiVG9vIG1hbnkgYXJndW1lbnRzIil9fX1wcmVwcm9jZXNzQ29tbWFuZChlLHQpe3N3aXRjaCgwfGUpe2Nhc2UgeWU6dGhpcy5zdGF0ZU1hbmFnZXIuc2F2ZSgpO2JyZWFrO2Nhc2UgcWU6dGhpcy5zdGF0ZU1hbmFnZXIucmVzdG9yZSgpO2JyZWFrO2Nhc2UgdmU6dGhpcy5zdGF0ZU1hbmFnZXIudHJhbnNmb3JtKHQpfX19Y2xhc3MgRGVmYXVsdEFwcGVhcmFuY2VFdmFsdWF0b3IgZXh0ZW5kcyBFdmFsdWF0b3JQcmVwcm9jZXNzb3J7Y29uc3RydWN0b3IoZSl7c3VwZXIobmV3IFN0cmluZ1N0cmVhbShlKSl9cGFyc2UoKXtjb25zdCBlPXtmbjowLGFyZ3M6W119LHQ9e2ZvbnRTaXplOjAsZm9udE5hbWU6IiIsZm9udENvbG9yOm5ldyBVaW50OENsYW1wZWRBcnJheSgzKX07dHJ5e2Zvcig7Oyl7ZS5hcmdzLmxlbmd0aD0wO2lmKCF0aGlzLnJlYWQoZSkpYnJlYWs7aWYoMCE9PXRoaXMuc2F2ZWRTdGF0ZXNEZXB0aCljb250aW51ZTtjb25zdHtmbjpuLGFyZ3M6YX09ZTtzd2l0Y2goMHxuKXtjYXNlIEdlOmNvbnN0W2Usbl09YTtlIGluc3RhbmNlb2YgTmFtZSYmKHQuZm9udE5hbWU9ZS5uYW1lKTsibnVtYmVyIj09dHlwZW9mIG4mJm4+MCYmKHQuZm9udFNpemU9bik7YnJlYWs7Y2FzZSBidDpDb2xvclNwYWNlVXRpbHMucmdiLmdldFJnYkl0ZW0oYSwwLHQuZm9udENvbG9yLDApO2JyZWFrO2Nhc2UgZHQ6Q29sb3JTcGFjZVV0aWxzLmdyYXkuZ2V0UmdiSXRlbShhLDAsdC5mb250Q29sb3IsMCk7YnJlYWs7Y2FzZSBqdDpDb2xvclNwYWNlVXRpbHMuY215ay5nZXRSZ2JJdGVtKGEsMCx0LmZvbnRDb2xvciwwKX19fWNhdGNoKGUpe3dhcm4oYHBhcnNlRGVmYXVsdEFwcGVhcmFuY2UgLSBpZ25vcmluZyBlcnJvcnM6ICIke2V9Ii5gKX1yZXR1cm4gdH19ZnVuY3Rpb24gcGFyc2VEZWZhdWx0QXBwZWFyYW5jZShlKXtyZXR1cm4gbmV3IERlZmF1bHRBcHBlYXJhbmNlRXZhbHVhdG9yKGUpLnBhcnNlKCl9Y2xhc3MgQXBwZWFyYW5jZVN0cmVhbUV2YWx1YXRvciBleHRlbmRzIEV2YWx1YXRvclByZXByb2Nlc3Nvcntjb25zdHJ1Y3RvcihlLHQsbixhKXtzdXBlcihlKTt0aGlzLnN0cmVhbT1lO3RoaXMuZXZhbHVhdG9yT3B0aW9ucz10O3RoaXMueHJlZj1uO3RoaXMuZ2xvYmFsQ29sb3JTcGFjZUNhY2hlPWE7dGhpcy5yZXNvdXJjZXM9ZS5kaWN0Py5nZXQoIlJlc291cmNlcyIpfXBhcnNlKCl7Y29uc3QgZT17Zm46MCxhcmdzOltdfTtsZXQgdD17c2NhbGVGYWN0b3I6MSxmb250U2l6ZTowLGZvbnROYW1lOiIiLGZvbnRDb2xvcjpuZXcgVWludDhDbGFtcGVkQXJyYXkoMyksZmlsbENvbG9yU3BhY2U6Q29sb3JTcGFjZVV0aWxzLmdyYXl9LG49ITE7Y29uc3QgYT1bXTt0cnl7Zm9yKDs7KXtlLmFyZ3MubGVuZ3RoPTA7aWYobnx8IXRoaXMucmVhZChlKSlicmVhaztjb25zdHtmbjpyLGFyZ3M6c309ZTtzd2l0Y2goMHxyKXtjYXNlIHllOmEucHVzaCh7c2NhbGVGYWN0b3I6dC5zY2FsZUZhY3Rvcixmb250U2l6ZTp0LmZvbnRTaXplLGZvbnROYW1lOnQuZm9udE5hbWUsZm9udENvbG9yOnQuZm9udENvbG9yLnNsaWNlKCksZmlsbENvbG9yU3BhY2U6dC5maWxsQ29sb3JTcGFjZX0pO2JyZWFrO2Nhc2UgcWU6dD1hLnBvcCgpfHx0O2JyZWFrO2Nhc2UgWmU6dC5zY2FsZUZhY3Rvcio9TWF0aC5oeXBvdChzWzBdLHNbMV0pO2JyZWFrO2Nhc2UgR2U6Y29uc3RbZSxyXT1zO2UgaW5zdGFuY2VvZiBOYW1lJiYodC5mb250TmFtZT1lLm5hbWUpOyJudW1iZXIiPT10eXBlb2YgciYmcj4wJiYodC5mb250U2l6ZT1yKnQuc2NhbGVGYWN0b3IpO2JyZWFrO2Nhc2UgZnQ6dC5maWxsQ29sb3JTcGFjZT1Db2xvclNwYWNlVXRpbHMucGFyc2Uoe2NzOnNbMF0seHJlZjp0aGlzLnhyZWYscmVzb3VyY2VzOnRoaXMucmVzb3VyY2VzLHBkZkZ1bmN0aW9uRmFjdG9yeTp0aGlzLl9wZGZGdW5jdGlvbkZhY3RvcnksZ2xvYmFsQ29sb3JTcGFjZUNhY2hlOnRoaXMuZ2xvYmFsQ29sb3JTcGFjZUNhY2hlLGxvY2FsQ29sb3JTcGFjZUNhY2hlOnRoaXMuX2xvY2FsQ29sb3JTcGFjZUNhY2hlfSk7YnJlYWs7Y2FzZSB1dDp0LmZpbGxDb2xvclNwYWNlLmdldFJnYkl0ZW0ocywwLHQuZm9udENvbG9yLDApO2JyZWFrO2Nhc2UgYnQ6Q29sb3JTcGFjZVV0aWxzLnJnYi5nZXRSZ2JJdGVtKHMsMCx0LmZvbnRDb2xvciwwKTticmVhaztjYXNlIGR0OkNvbG9yU3BhY2VVdGlscy5ncmF5LmdldFJnYkl0ZW0ocywwLHQuZm9udENvbG9yLDApO2JyZWFrO2Nhc2UganQ6Q29sb3JTcGFjZVV0aWxzLmNteWsuZ2V0UmdiSXRlbShzLDAsdC5mb250Q29sb3IsMCk7YnJlYWs7Y2FzZSB0dDpjYXNlIG50OmNhc2UgcnQ6Y2FzZSBzdDpuPSEwfX19Y2F0Y2goZSl7d2FybihgcGFyc2VBcHBlYXJhbmNlU3RyZWFtIC0gaWdub3JpbmcgZXJyb3JzOiAiJHtlfSIuYCl9dGhpcy5zdHJlYW0ucmVzZXQoKTtkZWxldGUgdC5zY2FsZUZhY3RvcjtkZWxldGUgdC5maWxsQ29sb3JTcGFjZTtyZXR1cm4gdH1nZXQgX2xvY2FsQ29sb3JTcGFjZUNhY2hlKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJfbG9jYWxDb2xvclNwYWNlQ2FjaGUiLG5ldyBMb2NhbENvbG9yU3BhY2VDYWNoZSl9Z2V0IF9wZGZGdW5jdGlvbkZhY3RvcnkoKXtyZXR1cm4gc2hhZG93KHRoaXMsIl9wZGZGdW5jdGlvbkZhY3RvcnkiLG5ldyBQREZGdW5jdGlvbkZhY3Rvcnkoe3hyZWY6dGhpcy54cmVmLGlzRXZhbFN1cHBvcnRlZDp0aGlzLmV2YWx1YXRvck9wdGlvbnMuaXNFdmFsU3VwcG9ydGVkfSkpfX1mdW5jdGlvbiBnZXRQZGZDb2xvcihlLHQpe2lmKGVbMF09PT1lWzFdJiZlWzFdPT09ZVsyXSl7cmV0dXJuYCR7bnVtYmVyVG9TdHJpbmcoZVswXS8yNTUpfSAke3Q/ImciOiJHIn1gfXJldHVybiBBcnJheS5mcm9tKGUsZT0+bnVtYmVyVG9TdHJpbmcoZS8yNTUpKS5qb2luKCIgIikrIiAiKyh0PyJyZyI6IlJHIil9Y2xhc3MgRmFrZVVuaWNvZGVGb250e2NvbnN0cnVjdG9yKGUsdCl7dGhpcy54cmVmPWU7dGhpcy53aWR0aHM9bnVsbDt0aGlzLmZpcnN0Q2hhcj0xLzA7dGhpcy5sYXN0Q2hhcj0tMS8wO3RoaXMuZm9udEZhbWlseT10O2NvbnN0IG49bmV3IE9mZnNjcmVlbkNhbnZhcygxLDEpO3RoaXMuY3R4TWVhc3VyZT1uLmdldENvbnRleHQoIjJkIix7d2lsbFJlYWRGcmVxdWVudGx5OiEwfSk7RmFrZVVuaWNvZGVGb250Ll9mb250TmFtZUlkfHwoRmFrZVVuaWNvZGVGb250Ll9mb250TmFtZUlkPTEpO3RoaXMuZm9udE5hbWU9TmFtZS5nZXQoYEludmFsaWRQREZqc0ZvbnRfJHt0fV8ke0Zha2VVbmljb2RlRm9udC5fZm9udE5hbWVJZCsrfWApfWdldCBmb250RGVzY3JpcHRvclJlZigpe2lmKCFGYWtlVW5pY29kZUZvbnQuX2ZvbnREZXNjcmlwdG9yUmVmKXtjb25zdCBlPW5ldyBEaWN0KHRoaXMueHJlZik7ZS5zZXRJZk5hbWUoIlR5cGUiLCJGb250RGVzY3JpcHRvciIpO2Uuc2V0KCJGb250TmFtZSIsdGhpcy5mb250TmFtZSk7ZS5zZXQoIkZvbnRGYW1pbHkiLCJNeXJpYWRQcm8gUmVndWxhciIpO2Uuc2V0KCJGb250QkJveCIsWzAsMCwwLDBdKTtlLnNldElmTmFtZSgiRm9udFN0cmV0Y2giLCJOb3JtYWwiKTtlLnNldCgiRm9udFdlaWdodCIsNDAwKTtlLnNldCgiSXRhbGljQW5nbGUiLDApO0Zha2VVbmljb2RlRm9udC5fZm9udERlc2NyaXB0b3JSZWY9dGhpcy54cmVmLmdldE5ld1BlcnNpc3RlbnRSZWYoZSl9cmV0dXJuIEZha2VVbmljb2RlRm9udC5fZm9udERlc2NyaXB0b3JSZWZ9Z2V0IGRlc2NlbmRhbnRGb250UmVmKCl7Y29uc3QgZT1uZXcgRGljdCh0aGlzLnhyZWYpO2Uuc2V0KCJCYXNlRm9udCIsdGhpcy5mb250TmFtZSk7ZS5zZXRJZk5hbWUoIlR5cGUiLCJGb250Iik7ZS5zZXRJZk5hbWUoIlN1YnR5cGUiLCJDSURGb250VHlwZTAiKTtlLnNldElmTmFtZSgiQ0lEVG9HSURNYXAiLCJJZGVudGl0eSIpO2Uuc2V0KCJGaXJzdENoYXIiLHRoaXMuZmlyc3RDaGFyKTtlLnNldCgiTGFzdENoYXIiLHRoaXMubGFzdENoYXIpO2Uuc2V0KCJGb250RGVzY3JpcHRvciIsdGhpcy5mb250RGVzY3JpcHRvclJlZik7ZS5zZXQoIkRXIiwxZTMpO2NvbnN0IHQ9W10sbj1bLi4udGhpcy53aWR0aHNdLnNvcnQoKTtsZXQgYT1udWxsLHI9bnVsbDtmb3IoY29uc3RbZSxzXW9mIG4paWYoYSlpZihlPT09YStyLmxlbmd0aClyLnB1c2gocyk7ZWxzZXt0LnB1c2goYSxyKTthPWU7cj1bc119ZWxzZXthPWU7cj1bc119YSYmdC5wdXNoKGEscik7ZS5zZXQoIlciLHQpO2NvbnN0IHM9bmV3IERpY3QodGhpcy54cmVmKTtzLnNldCgiT3JkZXJpbmciLCJJZGVudGl0eSIpO3Muc2V0KCJSZWdpc3RyeSIsIkFkb2JlIik7cy5zZXQoIlN1cHBsZW1lbnQiLDApO2Uuc2V0KCJDSURTeXN0ZW1JbmZvIixzKTtyZXR1cm4gdGhpcy54cmVmLmdldE5ld1BlcnNpc3RlbnRSZWYoZSl9Z2V0IGJhc2VGb250UmVmKCl7Y29uc3QgZT1uZXcgRGljdCh0aGlzLnhyZWYpO2Uuc2V0KCJCYXNlRm9udCIsdGhpcy5mb250TmFtZSk7ZS5zZXRJZk5hbWUoIlR5cGUiLCJGb250Iik7ZS5zZXRJZk5hbWUoIlN1YnR5cGUiLCJUeXBlMCIpO2Uuc2V0SWZOYW1lKCJFbmNvZGluZyIsIklkZW50aXR5LUgiKTtlLnNldCgiRGVzY2VuZGFudEZvbnRzIixbdGhpcy5kZXNjZW5kYW50Rm9udFJlZl0pO2Uuc2V0SWZOYW1lKCJUb1VuaWNvZGUiLCJJZGVudGl0eS1IIik7cmV0dXJuIHRoaXMueHJlZi5nZXROZXdQZXJzaXN0ZW50UmVmKGUpfWdldCByZXNvdXJjZXMoKXtjb25zdCBlPW5ldyBEaWN0KHRoaXMueHJlZiksdD1uZXcgRGljdCh0aGlzLnhyZWYpO3Quc2V0KHRoaXMuZm9udE5hbWUubmFtZSx0aGlzLmJhc2VGb250UmVmKTtlLnNldCgiRm9udCIsdCk7cmV0dXJuIGV9X2NyZWF0ZUNvbnRleHQoKXt0aGlzLndpZHRocz1uZXcgTWFwO3RoaXMuY3R4TWVhc3VyZS5mb250PWAxMDAwcHggJHt0aGlzLmZvbnRGYW1pbHl9YDtyZXR1cm4gdGhpcy5jdHhNZWFzdXJlfWNyZWF0ZUZvbnRSZXNvdXJjZXMoZSl7Y29uc3QgdD10aGlzLl9jcmVhdGVDb250ZXh0KCk7Zm9yKGNvbnN0IG4gb2YgZS5zcGxpdCgvXHJcbj98XG4vKSlmb3IoY29uc3QgZSBvZiBuLnNwbGl0KCIiKSl7Y29uc3Qgbj1lLmNoYXJDb2RlQXQoMCk7aWYodGhpcy53aWR0aHMuaGFzKG4pKWNvbnRpbnVlO2NvbnN0IGE9dC5tZWFzdXJlVGV4dChlKSxyPU1hdGguY2VpbChhLndpZHRoKTt0aGlzLndpZHRocy5zZXQobixyKTt0aGlzLmZpcnN0Q2hhcj1NYXRoLm1pbihuLHRoaXMuZmlyc3RDaGFyKTt0aGlzLmxhc3RDaGFyPU1hdGgubWF4KG4sdGhpcy5sYXN0Q2hhcil9cmV0dXJuIHRoaXMucmVzb3VyY2VzfXN0YXRpYyBnZXRGaXJzdFBvc2l0aW9uSW5mbyhlLHQsbil7Y29uc3RbYSxpLG8sbF09ZTtsZXQgZj1vLWEsYz1sLWk7dCUxODAhPTAmJihbZixjXT1bYyxmXSk7Y29uc3QgaD1yKm47cmV0dXJue2Nvb3JkczpbMCxjK3Mqbi1oXSxiYm94OlswLDAsZixjXSxtYXRyaXg6MCE9PXQ/Z2V0Um90YXRpb25NYXRyaXgodCxjLGgpOnZvaWQgMH19Y3JlYXRlQXBwZWFyYW5jZShlLHQsbixhLGksbyl7Y29uc3QgbD10aGlzLl9jcmVhdGVDb250ZXh0KCksZj1bXTtsZXQgYz0tMS8wO2Zvcihjb25zdCB0IG9mIGUuc3BsaXQoL1xyXG4/fFxuLykpe2YucHVzaCh0KTtjb25zdCBlPWwubWVhc3VyZVRleHQodCkud2lkdGg7Yz1NYXRoLm1heChjLGUpO2Zvcihjb25zdCBlIG9mIGNvZGVQb2ludEl0ZXIodCkpe2NvbnN0IHQ9U3RyaW5nLmZyb21Db2RlUG9pbnQoZSk7bGV0IG49dGhpcy53aWR0aHMuZ2V0KGUpO2lmKHZvaWQgMD09PW4pe2NvbnN0IGE9bC5tZWFzdXJlVGV4dCh0KTtuPU1hdGguY2VpbChhLndpZHRoKTt0aGlzLndpZHRocy5zZXQoZSxuKTt0aGlzLmZpcnN0Q2hhcj1NYXRoLm1pbihlLHRoaXMuZmlyc3RDaGFyKTt0aGlzLmxhc3RDaGFyPU1hdGgubWF4KGUsdGhpcy5sYXN0Q2hhcil9fX1jKj1hLzFlMztjb25zdFtoLHUsbSxwXT10O2xldCBkPW0taCxnPXAtdTtuJTE4MCE9MCYmKFtkLGddPVtnLGRdKTtsZXQgYj0xO2M+ZCYmKGI9ZC9jKTtsZXQgdz0xO2NvbnN0IGo9ciphLGs9cyphLHk9aipmLmxlbmd0aDt5PmcmJih3PWcveSk7Y29uc3QgcT1hKk1hdGgubWluKGIsdyksdj1bInEiLGAwIDAgJHtudW1iZXJUb1N0cmluZyhkKX0gJHtudW1iZXJUb1N0cmluZyhnKX0gcmUgVyBuYCwiQlQiLGAxIDAgMCAxIDAgJHtudW1iZXJUb1N0cmluZyhnK2spfSBUbSAwIFRjICR7Z2V0UGRmQ29sb3IoaSwhMCl9YCxgLyR7dGhpcy5mb250TmFtZS5uYW1lfSAke251bWJlclRvU3RyaW5nKHEpfSBUZmBdLHtyZXNvdXJjZXM6U309dGhpcztpZigxIT09KG89Im51bWJlciI9PXR5cGVvZiBvJiZvPj0wJiZvPD0xP286MSkpe3YucHVzaCgiL1IwIGdzIik7Y29uc3QgZT1uZXcgRGljdCh0aGlzLnhyZWYpLHQ9bmV3IERpY3QodGhpcy54cmVmKTt0LnNldCgiY2EiLG8pO3Quc2V0KCJDQSIsbyk7dC5zZXRJZk5hbWUoIlR5cGUiLCJFeHRHU3RhdGUiKTtlLnNldCgiUjAiLHQpO1Muc2V0KCJFeHRHU3RhdGUiLGUpfWNvbnN0IHg9bnVtYmVyVG9TdHJpbmcoaik7Zm9yKGNvbnN0IGUgb2YgZil2LnB1c2goYDAgLSR7eH0gVGQgPCR7c3RyaW5nVG9VVEYxNkhleFN0cmluZyhlKX0+IFRqYCk7di5wdXNoKCJFVCIsIlEiKTtjb25zdCBDPXYuam9pbigiXG4iKSxUPW5ldyBEaWN0KHRoaXMueHJlZik7VC5zZXRJZk5hbWUoIlN1YnR5cGUiLCJGb3JtIik7VC5zZXRJZk5hbWUoIlR5cGUiLCJYT2JqZWN0Iik7VC5zZXQoIkJCb3giLFswLDAsZCxnXSk7VC5zZXQoIkxlbmd0aCIsQy5sZW5ndGgpO1Quc2V0KCJSZXNvdXJjZXMiLFMpO2lmKG4pe2NvbnN0IGU9Z2V0Um90YXRpb25NYXRyaXgobixkLGcpO1Quc2V0KCJNYXRyaXgiLGUpfWNvbnN0IE89bmV3IFN0cmluZ1N0cmVhbShDKTtPLmRpY3Q9VDtyZXR1cm4gT319Y29uc3QgQ3M9WyJtL2QiLCJtL2QveXkiLCJtbS9kZC95eSIsIm1tL3l5IiwiZC1tbW0iLCJkLW1tbS15eSIsImRkLW1tbS15eSIsInl5LW1tLWRkIiwibW1tLXl5IiwibW1tbS15eSIsIm1tbSBkLCB5eXl5IiwibW1tbSBkLCB5eXl5IiwibS9kL3l5IGg6TU0gdHQiLCJtL2QveXkgSEg6TU0iXSxJcz1bIkhIOk1NIiwiaDpNTSB0dCIsIkhIOk1NOnNzIiwiaDpNTTpzcyB0dCJdO19fd2VicGFja19yZXF1aXJlX18oMzExMCk7Y2xhc3MgTmFtZU9yTnVtYmVyVHJlZXtjb25zdHJ1Y3RvcihlLHQsbil7dGhpcy5yb290PWU7dGhpcy54cmVmPXQ7dGhpcy5fdHlwZT1ufWdldEFsbChlPSExKXtjb25zdCB0PW5ldyBNYXA7aWYoIXRoaXMucm9vdClyZXR1cm4gdDtjb25zdCBuPXRoaXMueHJlZixhPW5ldyBSZWZTZXQ7YS5wdXQodGhpcy5yb290KTtjb25zdCByPVt0aGlzLnJvb3RdO2Zvcig7ci5sZW5ndGg+MDspe2NvbnN0IHM9bi5mZXRjaElmUmVmKHIuc2hpZnQoKSk7aWYoIShzIGluc3RhbmNlb2YgRGljdCkpY29udGludWU7aWYocy5oYXMoIktpZHMiKSl7Y29uc3QgZT1zLmdldCgiS2lkcyIpO2lmKCFBcnJheS5pc0FycmF5KGUpKWNvbnRpbnVlO2Zvcihjb25zdCB0IG9mIGUpe2lmKGEuaGFzKHQpKXRocm93IG5ldyBGb3JtYXRFcnJvcihgRHVwbGljYXRlIGVudHJ5IGluICIke3RoaXMuX3R5cGV9IiB0cmVlLmApO3IucHVzaCh0KTthLnB1dCh0KX1jb250aW51ZX1jb25zdCBpPXMuZ2V0KHRoaXMuX3R5cGUpO2lmKEFycmF5LmlzQXJyYXkoaSkpZm9yKGxldCBhPTAscj1pLmxlbmd0aDthPHI7YSs9Mil0LnNldChuLmZldGNoSWZSZWYoaVthXSksZT9pW2ErMV06bi5mZXRjaElmUmVmKGlbYSsxXSkpfXJldHVybiB0fWdldFJhdyhlKXtpZighdGhpcy5yb290KXJldHVybiBudWxsO2NvbnN0IHQ9dGhpcy54cmVmO2xldCBuPXQuZmV0Y2hJZlJlZih0aGlzLnJvb3QpLGE9MDtmb3IoO24uaGFzKCJLaWRzIik7KXtpZigrK2E+MTApe3dhcm4oYFNlYXJjaCBkZXB0aCBsaW1pdCByZWFjaGVkIGZvciAiJHt0aGlzLl90eXBlfSIgdHJlZS5gKTtyZXR1cm4gbnVsbH1jb25zdCByPW4uZ2V0KCJLaWRzIik7aWYoIUFycmF5LmlzQXJyYXkocikpcmV0dXJuIG51bGw7bGV0IHM9MCxpPXIubGVuZ3RoLTE7Zm9yKDtzPD1pOyl7Y29uc3QgYT1zK2k+PjEsbz10LmZldGNoSWZSZWYoclthXSksbD1vLmdldCgiTGltaXRzIik7aWYoZTx0LmZldGNoSWZSZWYobFswXSkpaT1hLTE7ZWxzZXtpZighKGU+dC5mZXRjaElmUmVmKGxbMV0pKSl7bj1vO2JyZWFrfXM9YSsxfX1pZihzPmkpcmV0dXJuIG51bGx9Y29uc3Qgcj1uLmdldCh0aGlzLl90eXBlKTtpZihBcnJheS5pc0FycmF5KHIpKXtsZXQgbj0wLGE9ci5sZW5ndGgtMjtmb3IoO248PWE7KXtjb25zdCBzPW4rYT4+MSxpPXMrKDEmcyksbz10LmZldGNoSWZSZWYocltpXSk7aWYoZTxvKWE9aS0yO2Vsc2V7aWYoIShlPm8pKXJldHVybiByW2krMV07bj1pKzJ9fX1yZXR1cm4gbnVsbH1nZXQoZSl7cmV0dXJuIHRoaXMueHJlZi5mZXRjaElmUmVmKHRoaXMuZ2V0UmF3KGUpKX19Y2xhc3MgTmFtZVRyZWUgZXh0ZW5kcyBOYW1lT3JOdW1iZXJUcmVle2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0LCJOYW1lcyIpfX1jbGFzcyBOdW1iZXJUcmVlIGV4dGVuZHMgTmFtZU9yTnVtYmVyVHJlZXtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGUsdCwiTnVtcyIpfX1mdW5jdGlvbiBjbGVhckdsb2JhbENhY2hlcygpeyFmdW5jdGlvbiBjbGVhclBhdHRlcm5DYWNoZXMoKXtrcj1PYmplY3QuY3JlYXRlKG51bGwpfSgpOyFmdW5jdGlvbiBjbGVhclByaW1pdGl2ZUNhY2hlcygpe3VuPU9iamVjdC5jcmVhdGUobnVsbCk7bW49T2JqZWN0LmNyZWF0ZShudWxsKTtwbj1PYmplY3QuY3JlYXRlKG51bGwpfSgpOyFmdW5jdGlvbiBjbGVhclVuaWNvZGVDYWNoZXMoKXt4YS5jbGVhcigpfSgpO0pweEltYWdlLmNsZWFudXAoKX1mdW5jdGlvbiBwaWNrUGxhdGZvcm1JdGVtKGUpe2lmKGUgaW5zdGFuY2VvZiBEaWN0KWZvcihjb25zdCB0IG9mWyJVRiIsIkYiLCJVbml4IiwiTWFjIiwiRE9TIl0paWYoZS5oYXModCkpcmV0dXJuIGUuZ2V0KHQpO3JldHVybiBudWxsfWNsYXNzIEZpbGVTcGVjeyNnZT0hMTtjb25zdHJ1Y3RvcihlLHQ9ITEpe2lmKGUgaW5zdGFuY2VvZiBEaWN0KXt0aGlzLnJvb3Q9ZTtlLmhhcygiRlMiKSYmKHRoaXMuZnM9ZS5nZXQoIkZTIikpO2UuaGFzKCJSRiIpJiZ3YXJuKCJSZWxhdGVkIGZpbGUgc3BlY2lmaWNhdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQiKTt0fHwoZS5oYXMoIkVGIik/dGhpcy4jZ2U9ITA6d2FybigiTm9uLWVtYmVkZGVkIGZpbGUgc3BlY2lmaWNhdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQiKSl9fWdldCBmaWxlbmFtZSgpe2NvbnN0IGU9cGlja1BsYXRmb3JtSXRlbSh0aGlzLnJvb3QpO3JldHVybiBlJiYic3RyaW5nIj09dHlwZW9mIGU/c3RyaW5nVG9QREZTdHJpbmcoZSwhMCkucmVwbGFjZUFsbCgiXFxcXCIsIlxcIikucmVwbGFjZUFsbCgiXFwvIiwiLyIpLnJlcGxhY2VBbGwoIlxcIiwiLyIpOiIifWdldCBjb250ZW50KCl7aWYoIXRoaXMuI2dlKXJldHVybiBudWxsO2NvbnN0IGU9cGlja1BsYXRmb3JtSXRlbSh0aGlzLnJvb3Q/LmdldCgiRUYiKSk7aWYoZSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0pcmV0dXJuIGUuZ2V0Qnl0ZXMoKTt3YXJuKCJFbWJlZGRlZCBmaWxlIHNwZWNpZmljYXRpb24gcG9pbnRzIHRvIG5vbi1leGlzdGluZy9pbnZhbGlkIGNvbnRlbnQiKTtyZXR1cm4gbnVsbH1nZXQgZGVzY3JpcHRpb24oKXtjb25zdCBlPXRoaXMucm9vdD8uZ2V0KCJEZXNjIik7cmV0dXJuIGUmJiJzdHJpbmciPT10eXBlb2YgZT9zdHJpbmdUb1BERlN0cmluZyhlKToiIn1nZXQgc2VyaWFsaXphYmxlKCl7Y29uc3R7ZmlsZW5hbWU6ZSxjb250ZW50OnQsZGVzY3JpcHRpb246bn09dGhpcztyZXR1cm57cmF3RmlsZW5hbWU6ZSxmaWxlbmFtZTooYT1lLGEuc3Vic3RyaW5nKGEubGFzdEluZGV4T2YoIi8iKSsxKSl8fCJ1bm5hbWVkIixjb250ZW50OnQsZGVzY3JpcHRpb246bn07dmFyIGF9fWNvbnN0IEZzPTAsVHM9LTIsT3M9LTMsUnM9LTQsQnM9LTUsSHM9LTYsRHM9LTk7ZnVuY3Rpb24gaXNXaGl0ZXNwYWNlKGUsdCl7Y29uc3Qgbj1lW3RdO3JldHVybiIgIj09PW58fCJcbiI9PT1ufHwiXHIiPT09bnx8Ilx0Ij09PW59Y2xhc3MgWE1MUGFyc2VyQmFzZXtfcmVzb2x2ZUVudGl0aWVzKGUpe3JldHVybiBlLnJlcGxhY2VBbGwoLyYoW147XSspOy9nLChlLHQpPT57aWYoIiN4Ij09PXQuc3Vic3RyaW5nKDAsMikpcmV0dXJuIFN0cmluZy5mcm9tQ29kZVBvaW50KHBhcnNlSW50KHQuc3Vic3RyaW5nKDIpLDE2KSk7aWYoIiMiPT09dC5zdWJzdHJpbmcoMCwxKSlyZXR1cm4gU3RyaW5nLmZyb21Db2RlUG9pbnQocGFyc2VJbnQodC5zdWJzdHJpbmcoMSksMTApKTtzd2l0Y2godCl7Y2FzZSJsdCI6cmV0dXJuIjwiO2Nhc2UiZ3QiOnJldHVybiI+IjtjYXNlImFtcCI6cmV0dXJuIiYiO2Nhc2UicXVvdCI6cmV0dXJuJyInO2Nhc2UiYXBvcyI6cmV0dXJuIicifXJldHVybiB0aGlzLm9uUmVzb2x2ZUVudGl0eSh0KX0pfV9wYXJzZUNvbnRlbnQoZSx0KXtjb25zdCBuPVtdO2xldCBhPXQ7ZnVuY3Rpb24gc2tpcFdzKCl7Zm9yKDthPGUubGVuZ3RoJiZpc1doaXRlc3BhY2UoZSxhKTspKythfWZvcig7YTxlLmxlbmd0aCYmIWlzV2hpdGVzcGFjZShlLGEpJiYiPiIhPT1lW2FdJiYiLyIhPT1lW2FdOykrK2E7Y29uc3Qgcj1lLnN1YnN0cmluZyh0LGEpO3NraXBXcygpO2Zvcig7YTxlLmxlbmd0aCYmIj4iIT09ZVthXSYmIi8iIT09ZVthXSYmIj8iIT09ZVthXTspe3NraXBXcygpO2xldCB0PSIiLHI9IiI7Zm9yKDthPGUubGVuZ3RoJiYhaXNXaGl0ZXNwYWNlKGUsYSkmJiI9IiE9PWVbYV07KXt0Kz1lW2FdOysrYX1za2lwV3MoKTtpZigiPSIhPT1lW2FdKXJldHVybiBudWxsOysrYTtza2lwV3MoKTtjb25zdCBzPWVbYV07aWYoJyInIT09cyYmIiciIT09cylyZXR1cm4gbnVsbDtjb25zdCBpPWUuaW5kZXhPZihzLCsrYSk7aWYoaTwwKXJldHVybiBudWxsO3I9ZS5zdWJzdHJpbmcoYSxpKTtuLnB1c2goe25hbWU6dCx2YWx1ZTp0aGlzLl9yZXNvbHZlRW50aXRpZXMocil9KTthPWkrMTtza2lwV3MoKX1yZXR1cm57bmFtZTpyLGF0dHJpYnV0ZXM6bixwYXJzZWQ6YS10fX1fcGFyc2VQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oZSx0KXtsZXQgbj10O2Zvcig7bjxlLmxlbmd0aCYmIWlzV2hpdGVzcGFjZShlLG4pJiYiPiIhPT1lW25dJiYiPyIhPT1lW25dJiYiLyIhPT1lW25dOykrK247Y29uc3QgYT1lLnN1YnN0cmluZyh0LG4pOyFmdW5jdGlvbiBza2lwV3MoKXtmb3IoO248ZS5sZW5ndGgmJmlzV2hpdGVzcGFjZShlLG4pOykrK259KCk7Y29uc3Qgcj1uO2Zvcig7bjxlLmxlbmd0aCYmKCI/IiE9PWVbbl18fCI+IiE9PWVbbisxXSk7KSsrbjtyZXR1cm57bmFtZTphLHZhbHVlOmUuc3Vic3RyaW5nKHIsbikscGFyc2VkOm4tdH19cGFyc2VYbWwoZSl7bGV0IHQ9MDtmb3IoO3Q8ZS5sZW5ndGg7KXtsZXQgbj10O2lmKCI8Ij09PWVbdF0peysrbjtsZXQgdDtzd2l0Y2goZVtuXSl7Y2FzZSIvIjorK247dD1lLmluZGV4T2YoIj4iLG4pO2lmKHQ8MCl7dGhpcy5vbkVycm9yKERzKTtyZXR1cm59dGhpcy5vbkVuZEVsZW1lbnQoZS5zdWJzdHJpbmcobix0KSk7bj10KzE7YnJlYWs7Y2FzZSI/IjorK247Y29uc3QgYT10aGlzLl9wYXJzZVByb2Nlc3NpbmdJbnN0cnVjdGlvbihlLG4pO2lmKCI/PiIhPT1lLnN1YnN0cmluZyhuK2EucGFyc2VkLG4rYS5wYXJzZWQrMikpe3RoaXMub25FcnJvcihPcyk7cmV0dXJufXRoaXMub25QaShhLm5hbWUsYS52YWx1ZSk7bis9YS5wYXJzZWQrMjticmVhaztjYXNlIiEiOmlmKCItLSI9PT1lLnN1YnN0cmluZyhuKzEsbiszKSl7dD1lLmluZGV4T2YoIi0tXHgzZSIsbiszKTtpZih0PDApe3RoaXMub25FcnJvcihCcyk7cmV0dXJufXRoaXMub25Db21tZW50KGUuc3Vic3RyaW5nKG4rMyx0KSk7bj10KzN9ZWxzZSBpZigiW0NEQVRBWyI9PT1lLnN1YnN0cmluZyhuKzEsbis4KSl7dD1lLmluZGV4T2YoIl1dPiIsbis4KTtpZih0PDApe3RoaXMub25FcnJvcihUcyk7cmV0dXJufXRoaXMub25DZGF0YShlLnN1YnN0cmluZyhuKzgsdCkpO249dCszfWVsc2V7aWYoIkRPQ1RZUEUiIT09ZS5zdWJzdHJpbmcobisxLG4rOCkpe3RoaXMub25FcnJvcihIcyk7cmV0dXJufXtjb25zdCBhPWUuaW5kZXhPZigiWyIsbis4KTtsZXQgcj0hMTt0PWUuaW5kZXhPZigiPiIsbis4KTtpZih0PDApe3RoaXMub25FcnJvcihScyk7cmV0dXJufWlmKGE+MCYmdD5hKXt0PWUuaW5kZXhPZigiXT4iLG4rOCk7aWYodDwwKXt0aGlzLm9uRXJyb3IoUnMpO3JldHVybn1yPSEwfWNvbnN0IHM9ZS5zdWJzdHJpbmcobis4LHQrKHI/MTowKSk7dGhpcy5vbkRvY3R5cGUocyk7bj10KyhyPzI6MSl9fWJyZWFrO2RlZmF1bHQ6Y29uc3Qgcj10aGlzLl9wYXJzZUNvbnRlbnQoZSxuKTtpZihudWxsPT09cil7dGhpcy5vbkVycm9yKEhzKTtyZXR1cm59bGV0IHM9ITE7aWYoIi8+Ij09PWUuc3Vic3RyaW5nKG4rci5wYXJzZWQsbityLnBhcnNlZCsyKSlzPSEwO2Vsc2UgaWYoIj4iIT09ZS5zdWJzdHJpbmcobityLnBhcnNlZCxuK3IucGFyc2VkKzEpKXt0aGlzLm9uRXJyb3IoRHMpO3JldHVybn10aGlzLm9uQmVnaW5FbGVtZW50KHIubmFtZSxyLmF0dHJpYnV0ZXMscyk7bis9ci5wYXJzZWQrKHM/MjoxKX19ZWxzZXtmb3IoO248ZS5sZW5ndGgmJiI8IiE9PWVbbl07KW4rKztjb25zdCBhPWUuc3Vic3RyaW5nKHQsbik7dGhpcy5vblRleHQodGhpcy5fcmVzb2x2ZUVudGl0aWVzKGEpKX10PW59fW9uUmVzb2x2ZUVudGl0eShlKXtyZXR1cm5gJiR7ZX07YH1vblBpKGUsdCl7fW9uQ29tbWVudChlKXt9b25DZGF0YShlKXt9b25Eb2N0eXBlKGUpe31vblRleHQoZSl7fW9uQmVnaW5FbGVtZW50KGUsdCxuKXt9b25FbmRFbGVtZW50KGUpe31vbkVycm9yKGUpe319Y2xhc3MgU2ltcGxlRE9NTm9kZXtjb25zdHJ1Y3RvcihlLHQpe3RoaXMubm9kZU5hbWU9ZTt0aGlzLm5vZGVWYWx1ZT10O09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJwYXJlbnROb2RlIix7dmFsdWU6bnVsbCx3cml0YWJsZTohMH0pfWdldCBmaXJzdENoaWxkKCl7cmV0dXJuIHRoaXMuY2hpbGROb2Rlcz8uWzBdfWdldCBuZXh0U2libGluZygpe2NvbnN0IGU9dGhpcy5wYXJlbnROb2RlLmNoaWxkTm9kZXM7aWYoIWUpcmV0dXJuO2NvbnN0IHQ9ZS5pbmRleE9mKHRoaXMpO3JldHVybi0xIT09dD9lW3QrMV06dm9pZCAwfWdldCB0ZXh0Q29udGVudCgpe3JldHVybiB0aGlzLmNoaWxkTm9kZXM/dGhpcy5jaGlsZE5vZGVzLm1hcChlPT5lLnRleHRDb250ZW50KS5qb2luKCIiKTp0aGlzLm5vZGVWYWx1ZXx8IiJ9Z2V0IGNoaWxkcmVuKCl7cmV0dXJuIHRoaXMuY2hpbGROb2Rlc3x8W119aGFzQ2hpbGROb2Rlcygpe3JldHVybiB0aGlzLmNoaWxkTm9kZXM/Lmxlbmd0aD4wfXNlYXJjaE5vZGUoZSx0KXtpZih0Pj1lLmxlbmd0aClyZXR1cm4gdGhpcztjb25zdCBuPWVbdF07aWYobi5uYW1lLnN0YXJ0c1dpdGgoIiMiKSYmdDxlLmxlbmd0aC0xKXJldHVybiB0aGlzLnNlYXJjaE5vZGUoZSx0KzEpO2NvbnN0IGE9W107bGV0IHI9dGhpcztmb3IoOzspe2lmKG4ubmFtZT09PXIubm9kZU5hbWUpe2lmKDAhPT1uLnBvcyl7aWYoMD09PWEubGVuZ3RoKXJldHVybiBudWxsO3tjb25zdFtzXT1hLnBvcCgpO2xldCBpPTA7Zm9yKGNvbnN0IGEgb2Ygcy5jaGlsZE5vZGVzKWlmKG4ubmFtZT09PWEubm9kZU5hbWUpe2lmKGk9PT1uLnBvcylyZXR1cm4gYS5zZWFyY2hOb2RlKGUsdCsxKTtpKyt9cmV0dXJuIHIuc2VhcmNoTm9kZShlLHQrMSl9fXtjb25zdCBuPXIuc2VhcmNoTm9kZShlLHQrMSk7aWYobnVsbCE9PW4pcmV0dXJuIG59fWlmKHIuY2hpbGROb2Rlcz8ubGVuZ3RoPjApe2EucHVzaChbciwwXSk7cj1yLmNoaWxkTm9kZXNbMF19ZWxzZXtpZigwPT09YS5sZW5ndGgpcmV0dXJuIG51bGw7Zm9yKDswIT09YS5sZW5ndGg7KXtjb25zdFtlLHRdPWEucG9wKCksbj10KzE7aWYobjxlLmNoaWxkTm9kZXMubGVuZ3RoKXthLnB1c2goW2Usbl0pO3I9ZS5jaGlsZE5vZGVzW25dO2JyZWFrfX1pZigwPT09YS5sZW5ndGgpcmV0dXJuIG51bGx9fX1kdW1wKGUpe2lmKCIjdGV4dCIhPT10aGlzLm5vZGVOYW1lKXtlLnB1c2goYDwke3RoaXMubm9kZU5hbWV9YCk7aWYodGhpcy5hdHRyaWJ1dGVzKWZvcihjb25zdCB0IG9mIHRoaXMuYXR0cmlidXRlcyllLnB1c2goYCAke3QubmFtZX09IiR7ZW5jb2RlVG9YbWxTdHJpbmcodC52YWx1ZSl9ImApO2lmKHRoaXMuaGFzQ2hpbGROb2RlcygpKXtlLnB1c2goIj4iKTtmb3IoY29uc3QgdCBvZiB0aGlzLmNoaWxkTm9kZXMpdC5kdW1wKGUpO2UucHVzaChgPC8ke3RoaXMubm9kZU5hbWV9PmApfWVsc2UgdGhpcy5ub2RlVmFsdWU/ZS5wdXNoKGA+JHtlbmNvZGVUb1htbFN0cmluZyh0aGlzLm5vZGVWYWx1ZSl9PC8ke3RoaXMubm9kZU5hbWV9PmApOmUucHVzaCgiLz4iKX1lbHNlIGUucHVzaChlbmNvZGVUb1htbFN0cmluZyh0aGlzLm5vZGVWYWx1ZSkpfX1jbGFzcyBTaW1wbGVYTUxQYXJzZXIgZXh0ZW5kcyBYTUxQYXJzZXJCYXNle2NvbnN0cnVjdG9yKHtoYXNBdHRyaWJ1dGVzOmU9ITEsbG93ZXJDYXNlTmFtZTp0PSExfSl7c3VwZXIoKTt0aGlzLl9jdXJyZW50RnJhZ21lbnQ9bnVsbDt0aGlzLl9zdGFjaz1udWxsO3RoaXMuX2Vycm9yQ29kZT1Gczt0aGlzLl9oYXNBdHRyaWJ1dGVzPWU7dGhpcy5fbG93ZXJDYXNlTmFtZT10fXBhcnNlRnJvbVN0cmluZyhlKXt0aGlzLl9jdXJyZW50RnJhZ21lbnQ9W107dGhpcy5fc3RhY2s9W107dGhpcy5fZXJyb3JDb2RlPUZzO3RoaXMucGFyc2VYbWwoZSk7aWYodGhpcy5fZXJyb3JDb2RlIT09RnMpcmV0dXJuO2NvbnN0W3RdPXRoaXMuX2N1cnJlbnRGcmFnbWVudDtyZXR1cm4gdD97ZG9jdW1lbnRFbGVtZW50OnR9OnZvaWQgMH1vblRleHQoZSl7aWYoZnVuY3Rpb24gaXNXaGl0ZXNwYWNlU3RyaW5nKGUpe2ZvcihsZXQgdD0wLG49ZS5sZW5ndGg7dDxuO3QrKylpZighaXNXaGl0ZXNwYWNlKGUsdCkpcmV0dXJuITE7cmV0dXJuITB9KGUpKXJldHVybjtjb25zdCB0PW5ldyBTaW1wbGVET01Ob2RlKCIjdGV4dCIsZSk7dGhpcy5fY3VycmVudEZyYWdtZW50LnB1c2godCl9b25DZGF0YShlKXtjb25zdCB0PW5ldyBTaW1wbGVET01Ob2RlKCIjdGV4dCIsZSk7dGhpcy5fY3VycmVudEZyYWdtZW50LnB1c2godCl9b25CZWdpbkVsZW1lbnQoZSx0LG4pe3RoaXMuX2xvd2VyQ2FzZU5hbWUmJihlPWUudG9Mb3dlckNhc2UoKSk7Y29uc3QgYT1uZXcgU2ltcGxlRE9NTm9kZShlKTthLmNoaWxkTm9kZXM9W107dGhpcy5faGFzQXR0cmlidXRlcyYmKGEuYXR0cmlidXRlcz10KTt0aGlzLl9jdXJyZW50RnJhZ21lbnQucHVzaChhKTtpZighbil7dGhpcy5fc3RhY2sucHVzaCh0aGlzLl9jdXJyZW50RnJhZ21lbnQpO3RoaXMuX2N1cnJlbnRGcmFnbWVudD1hLmNoaWxkTm9kZXN9fW9uRW5kRWxlbWVudChlKXt0aGlzLl9jdXJyZW50RnJhZ21lbnQ9dGhpcy5fc3RhY2sucG9wKCl8fFtdO2NvbnN0IHQ9dGhpcy5fY3VycmVudEZyYWdtZW50LmF0KC0xKTtpZighdClyZXR1cm4gbnVsbDtmb3IoY29uc3QgZSBvZiB0LmNoaWxkTm9kZXMpZS5wYXJlbnROb2RlPXQ7cmV0dXJuIHR9b25FcnJvcihlKXt0aGlzLl9lcnJvckNvZGU9ZX19Y2xhc3MgTWV0YWRhdGFQYXJzZXJ7Y29uc3RydWN0b3IoZSl7ZT10aGlzLl9yZXBhaXIoZSk7Y29uc3QgdD1uZXcgU2ltcGxlWE1MUGFyc2VyKHtsb3dlckNhc2VOYW1lOiEwfSkucGFyc2VGcm9tU3RyaW5nKGUpO3RoaXMuX21ldGFkYXRhTWFwPW5ldyBNYXA7dGhpcy5fZGF0YT1lO3QmJnRoaXMuX3BhcnNlKHQpfV9yZXBhaXIoZSl7cmV0dXJuIGUucmVwbGFjZSgvXltePF0rLywiIikucmVwbGFjZUFsbCgvPlxcMzc2XFwzNzcoW148XSspL2csZnVuY3Rpb24oZSx0KXtjb25zdCBuPXQucmVwbGFjZUFsbCgvXFwoWzAtM10pKFswLTddKShbMC03XSkvZyxmdW5jdGlvbihlLHQsbixhKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSg2NCp0KzgqbisxKmEpfSkucmVwbGFjZUFsbCgvJihhbXB8YXBvc3xndHxsdHxxdW90KTsvZyxmdW5jdGlvbihlLHQpe3N3aXRjaCh0KXtjYXNlImFtcCI6cmV0dXJuIiYiO2Nhc2UiYXBvcyI6cmV0dXJuIiciO2Nhc2UiZ3QiOnJldHVybiI+IjtjYXNlImx0IjpyZXR1cm4iPCI7Y2FzZSJxdW90IjpyZXR1cm4nIid9dGhyb3cgbmV3IEVycm9yKGBfcmVwYWlyOiAke3R9IGlzbid0IGRlZmluZWQuYCl9KSxhPVsiPiJdO2ZvcihsZXQgZT0wLHQ9bi5sZW5ndGg7ZTx0O2UrPTIpe2NvbnN0IHQ9MjU2Km4uY2hhckNvZGVBdChlKStuLmNoYXJDb2RlQXQoZSsxKTt0Pj0zMiYmdDwxMjcmJjYwIT09dCYmNjIhPT10JiYzOCE9PXQ/YS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUodCkpOmEucHVzaCgiJiN4IisoNjU1MzYrdCkudG9TdHJpbmcoMTYpLnN1YnN0cmluZygxKSsiOyIpfXJldHVybiBhLmpvaW4oIiIpfSl9X2dldFNlcXVlbmNlKGUpe2NvbnN0IHQ9ZS5ub2RlTmFtZTtyZXR1cm4icmRmOmJhZyIhPT10JiYicmRmOnNlcSIhPT10JiYicmRmOmFsdCIhPT10P251bGw6ZS5jaGlsZE5vZGVzLmZpbHRlcihlPT4icmRmOmxpIj09PWUubm9kZU5hbWUpfV9wYXJzZUFycmF5KGUpe2lmKCFlLmhhc0NoaWxkTm9kZXMoKSlyZXR1cm47Y29uc3RbdF09ZS5jaGlsZE5vZGVzLG49dGhpcy5fZ2V0U2VxdWVuY2UodCl8fFtdO3RoaXMuX21ldGFkYXRhTWFwLnNldChlLm5vZGVOYW1lLG4ubWFwKGU9PmUudGV4dENvbnRlbnQudHJpbSgpKSl9X3BhcnNlKGUpe2xldCB0PWUuZG9jdW1lbnRFbGVtZW50O2lmKCJyZGY6cmRmIiE9PXQubm9kZU5hbWUpe3Q9dC5maXJzdENoaWxkO2Zvcig7dCYmInJkZjpyZGYiIT09dC5ub2RlTmFtZTspdD10Lm5leHRTaWJsaW5nfWlmKHQmJiJyZGY6cmRmIj09PXQubm9kZU5hbWUmJnQuaGFzQ2hpbGROb2RlcygpKWZvcihjb25zdCBlIG9mIHQuY2hpbGROb2RlcylpZigicmRmOmRlc2NyaXB0aW9uIj09PWUubm9kZU5hbWUpZm9yKGNvbnN0IHQgb2YgZS5jaGlsZE5vZGVzKXtjb25zdCBlPXQubm9kZU5hbWU7c3dpdGNoKGUpe2Nhc2UiI3RleHQiOmNvbnRpbnVlO2Nhc2UiZGM6Y3JlYXRvciI6Y2FzZSJkYzpzdWJqZWN0Ijp0aGlzLl9wYXJzZUFycmF5KHQpO2NvbnRpbnVlfXRoaXMuX21ldGFkYXRhTWFwLnNldChlLHQudGV4dENvbnRlbnQudHJpbSgpKX19Z2V0IHNlcmlhbGl6YWJsZSgpe3JldHVybntwYXJzZWREYXRhOnRoaXMuX21ldGFkYXRhTWFwLHJhd0RhdGE6dGhpcy5fZGF0YX19fWNvbnN0IE1zPTEsRXM9MixOcz0zLHpzPTQsX3M9NTtjbGFzcyBTdHJ1Y3RUcmVlUm9vdHtjb25zdHJ1Y3RvcihlLHQsbil7dGhpcy54cmVmPWU7dGhpcy5kaWN0PXQ7dGhpcy5yZWY9biBpbnN0YW5jZW9mIFJlZj9uOm51bGw7dGhpcy5yb2xlTWFwPW5ldyBNYXA7dGhpcy5zdHJ1Y3RQYXJlbnRJZHM9bnVsbDt0aGlzLmtpZFJlZlRvUG9zaXRpb249dm9pZCAwO3RoaXMucGFyZW50VHJlZT1udWxsfWdldEtpZFBvc2l0aW9uKGUpe2lmKHZvaWQgMD09PXRoaXMua2lkUmVmVG9Qb3NpdGlvbil7Y29uc3QgZT10aGlzLmRpY3QuZ2V0KCJLIik7aWYoQXJyYXkuaXNBcnJheShlKSl7Y29uc3QgdD10aGlzLmtpZFJlZlRvUG9zaXRpb249bmV3IE1hcDtmb3IobGV0IG49MCxhPWUubGVuZ3RoO248YTtuKyspe2NvbnN0IGE9ZVtuXTthJiZ0LnNldChhLnRvU3RyaW5nKCksbil9fWVsc2UgdGhpcy5raWRSZWZUb1Bvc2l0aW9uPWUgaW5zdGFuY2VvZiBEaWN0P25ldyBNYXAoW1tlLm9iaklkLDBdXSk6ZT9udWxsOm5ldyBNYXB9cmV0dXJuIHRoaXMua2lkUmVmVG9Qb3NpdGlvbj90aGlzLmtpZFJlZlRvUG9zaXRpb24uZ2V0KGUpPz9OYU46LTF9aW5pdCgpe3RoaXMucmVhZFJvbGVNYXAoKTtjb25zdCBlPXRoaXMuZGljdC5nZXQoIlBhcmVudFRyZWUiKTtlJiYodGhpcy5wYXJlbnRUcmVlPW5ldyBOdW1iZXJUcmVlKGUsdGhpcy54cmVmKSl9I2JlKGUsdCxuKXtpZighKGUgaW5zdGFuY2VvZiBSZWYpfHx0PDApcmV0dXJuO3RoaXMuc3RydWN0UGFyZW50SWRzfHw9bmV3IFJlZlNldENhY2hlO2xldCBhPXRoaXMuc3RydWN0UGFyZW50SWRzLmdldChlKTtpZighYSl7YT1bXTt0aGlzLnN0cnVjdFBhcmVudElkcy5wdXQoZSxhKX1hLnB1c2goW3Qsbl0pfWFkZEFubm90YXRpb25JZFRvUGFnZShlLHQpe3RoaXMuI2JlKGUsdCx6cyl9cmVhZFJvbGVNYXAoKXtjb25zdCBlPXRoaXMuZGljdC5nZXQoIlJvbGVNYXAiKTtpZihlIGluc3RhbmNlb2YgRGljdClmb3IoY29uc3RbdCxuXW9mIGUpbiBpbnN0YW5jZW9mIE5hbWUmJnRoaXMucm9sZU1hcC5zZXQodCxuLm5hbWUpfXN0YXRpYyBhc3luYyBjYW5DcmVhdGVTdHJ1Y3R1cmVUcmVlKHtjYXRhbG9nUmVmOmUscGRmTWFuYWdlcjp0LG5ld0Fubm90YXRpb25zQnlQYWdlOm59KXtpZighKGUgaW5zdGFuY2VvZiBSZWYpKXt3YXJuKCJDYW5ub3Qgc2F2ZSB0aGUgc3RydWN0IHRyZWU6IG5vIGNhdGFsb2cgcmVmZXJlbmNlLiIpO3JldHVybiExfWxldCBhPTAscj0hMDtmb3IoY29uc3RbZSxzXW9mIG4pe2NvbnN0e3JlZjpufT1hd2FpdCB0LmdldFBhZ2UoZSk7aWYoIShuIGluc3RhbmNlb2YgUmVmKSl7d2FybihgQ2Fubm90IHNhdmUgdGhlIHN0cnVjdCB0cmVlOiBwYWdlICR7ZX0gaGFzIG5vIHJlZi5gKTtyPSEwO2JyZWFrfWZvcihjb25zdCBlIG9mIHMpaWYoZS5hY2Nlc3NpYmlsaXR5RGF0YT8udHlwZSl7ZS5wYXJlbnRUcmVlSWQ9YSsrO3I9ITF9fWlmKHIpe2Zvcihjb25zdCBlIG9mIG4udmFsdWVzKCkpZm9yKGNvbnN0IHQgb2YgZSlkZWxldGUgdC5wYXJlbnRUcmVlSWQ7cmV0dXJuITF9cmV0dXJuITB9c3RhdGljIGFzeW5jIGNyZWF0ZVN0cnVjdHVyZVRyZWUoe25ld0Fubm90YXRpb25zQnlQYWdlOmUseHJlZjp0LGNhdGFsb2dSZWY6bixwZGZNYW5hZ2VyOmEsY2hhbmdlczpyfSl7Y29uc3Qgcz1hd2FpdCBhLmVuc3VyZUNhdGFsb2coImNsb25lRGljdCIpLGk9bmV3IFJlZlNldENhY2hlO2kucHV0KG4scyk7Y29uc3Qgbz10LmdldE5ld1RlbXBvcmFyeVJlZigpO3Muc2V0KCJTdHJ1Y3RUcmVlUm9vdCIsbyk7Y29uc3QgbD1uZXcgRGljdCh0KTtsLnNldCgiVHlwZSIsTmFtZS5nZXQoIlN0cnVjdFRyZWVSb290IikpO2NvbnN0IGY9dC5nZXROZXdUZW1wb3JhcnlSZWYoKTtsLnNldCgiUGFyZW50VHJlZSIsZik7Y29uc3QgYz1bXTtsLnNldCgiSyIsYyk7aS5wdXQobyxsKTtjb25zdCBoPW5ldyBEaWN0KHQpLHU9W107aC5zZXQoIk51bXMiLHUpO2NvbnN0IG09YXdhaXQgdGhpcy4jd2Uoe25ld0Fubm90YXRpb25zQnlQYWdlOmUsc3RydWN0VHJlZVJvb3RSZWY6byxzdHJ1Y3RUcmVlUm9vdDpudWxsLGtpZHM6YyxudW1zOnUseHJlZjp0LHBkZk1hbmFnZXI6YSxjaGFuZ2VzOnIsY2FjaGU6aX0pO2wuc2V0KCJQYXJlbnRUcmVlTmV4dEtleSIsbSk7aS5wdXQoZixoKTtmb3IoY29uc3RbZSx0XW9mIGkuaXRlbXMoKSlyLnB1dChlLHtkYXRhOnR9KX1hc3luYyBjYW5VcGRhdGVTdHJ1Y3RUcmVlKHtwZGZNYW5hZ2VyOmUsbmV3QW5ub3RhdGlvbnNCeVBhZ2U6dH0pe2lmKCF0aGlzLnJlZil7d2FybigiQ2Fubm90IHVwZGF0ZSB0aGUgc3RydWN0IHRyZWU6IG5vIHJvb3QgcmVmZXJlbmNlLiIpO3JldHVybiExfWxldCBuPXRoaXMuZGljdC5nZXQoIlBhcmVudFRyZWVOZXh0S2V5Iik7aWYoIU51bWJlci5pc0ludGVnZXIobil8fG48MCl7d2FybigiQ2Fubm90IHVwZGF0ZSB0aGUgc3RydWN0IHRyZWU6IGludmFsaWQgbmV4dCBrZXkuIik7cmV0dXJuITF9Y29uc3QgYT10aGlzLmRpY3QuZ2V0KCJQYXJlbnRUcmVlIik7aWYoIShhIGluc3RhbmNlb2YgRGljdCkpe3dhcm4oIkNhbm5vdCB1cGRhdGUgdGhlIHN0cnVjdCB0cmVlOiBQYXJlbnRUcmVlIGlzbid0IGEgZGljdC4iKTtyZXR1cm4hMX1jb25zdCByPWEuZ2V0KCJOdW1zIik7aWYoIUFycmF5LmlzQXJyYXkocikpe3dhcm4oIkNhbm5vdCB1cGRhdGUgdGhlIHN0cnVjdCB0cmVlOiBudW1zIGlzbid0IGFuIGFycmF5LiIpO3JldHVybiExfWNvbnN0IHM9bmV3IE51bWJlclRyZWUoYSx0aGlzLnhyZWYpO2Zvcihjb25zdCBuIG9mIHQua2V5cygpKXtjb25zdHtwYWdlRGljdDp0fT1hd2FpdCBlLmdldFBhZ2Uobik7aWYoIXQuaGFzKCJTdHJ1Y3RQYXJlbnRzIikpY29udGludWU7Y29uc3QgYT10LmdldCgiU3RydWN0UGFyZW50cyIpO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKGEpfHwhQXJyYXkuaXNBcnJheShzLmdldChhKSkpe3dhcm4oYENhbm5vdCBzYXZlIHRoZSBzdHJ1Y3QgdHJlZTogcGFnZSAke259IGhhcyBhIHdyb25nIGlkLmApO3JldHVybiExfX1sZXQgaT0hMDtmb3IoY29uc3RbYSxyXW9mIHQpe2NvbnN0e3BhZ2VEaWN0OnR9PWF3YWl0IGUuZ2V0UGFnZShhKTtTdHJ1Y3RUcmVlUm9vdC4jamUoe2VsZW1lbnRzOnIseHJlZjp0aGlzLnhyZWYscGFnZURpY3Q6dCxudW1iZXJUcmVlOnN9KTtmb3IoY29uc3QgZSBvZiByKWlmKGUuYWNjZXNzaWJpbGl0eURhdGE/LnR5cGUpe2UuYWNjZXNzaWJpbGl0eURhdGEuc3RydWN0UGFyZW50Pj0wfHwoZS5wYXJlbnRUcmVlSWQ9bisrKTtpPSExfX1pZihpKXtmb3IoY29uc3QgZSBvZiB0LnZhbHVlcygpKWZvcihjb25zdCB0IG9mIGUpe2RlbGV0ZSB0LnBhcmVudFRyZWVJZDtkZWxldGUgdC5zdHJ1Y3RUcmVlUGFyZW50fXJldHVybiExfXJldHVybiEwfWFzeW5jIHVwZGF0ZVN0cnVjdHVyZVRyZWUoe25ld0Fubm90YXRpb25zQnlQYWdlOmUscGRmTWFuYWdlcjp0LGNoYW5nZXM6bn0pe2NvbnN0e3JlZjphLHhyZWY6cn09dGhpcyxzPXRoaXMuZGljdC5jbG9uZSgpLGk9bmV3IFJlZlNldENhY2hlO2kucHV0KGEscyk7bGV0IG8sbD1zLmdldFJhdygiUGFyZW50VHJlZSIpO2lmKGwgaW5zdGFuY2VvZiBSZWYpbz1yLmZldGNoKGwpO2Vsc2V7bz1sO2w9ci5nZXROZXdUZW1wb3JhcnlSZWYoKTtzLnNldCgiUGFyZW50VHJlZSIsbCl9bz1vLmNsb25lKCk7aS5wdXQobCxvKTtsZXQgZj1vLmdldFJhdygiTnVtcyIpLGM9bnVsbDtpZihmIGluc3RhbmNlb2YgUmVmKXtjPWY7Zj1yLmZldGNoKGMpfWY9Zi5zbGljZSgpO2N8fG8uc2V0KCJOdW1zIixmKTtjb25zdCBoPWF3YWl0IFN0cnVjdFRyZWVSb290LiN3ZSh7bmV3QW5ub3RhdGlvbnNCeVBhZ2U6ZSxzdHJ1Y3RUcmVlUm9vdFJlZjphLHN0cnVjdFRyZWVSb290OnRoaXMsa2lkczpudWxsLG51bXM6Zix4cmVmOnIscGRmTWFuYWdlcjp0LGNoYW5nZXM6bixjYWNoZTppfSk7aWYoLTEhPT1oKXtzLnNldCgiUGFyZW50VHJlZU5leHRLZXkiLGgpO2MmJmkucHV0KGMsZik7Zm9yKGNvbnN0W2UsdF1vZiBpLml0ZW1zKCkpbi5wdXQoZSx7ZGF0YTp0fSl9fXN0YXRpYyBhc3luYyN3ZSh7bmV3QW5ub3RhdGlvbnNCeVBhZ2U6ZSxzdHJ1Y3RUcmVlUm9vdFJlZjp0LHN0cnVjdFRyZWVSb290Om4sa2lkczphLG51bXM6cix4cmVmOnMscGRmTWFuYWdlcjppLGNoYW5nZXM6byxjYWNoZTpsfSl7Y29uc3QgZj1OYW1lLmdldCgiT0JKUiIpO2xldCBjLGg9LTE7Zm9yKGNvbnN0W3UsbV1vZiBlKXtjb25zdCBlPWF3YWl0IGkuZ2V0UGFnZSh1KSx7cmVmOnB9PWUsZD1wIGluc3RhbmNlb2YgUmVmO2Zvcihjb25zdHthY2Nlc3NpYmlsaXR5RGF0YTppLHJlZjpnLHBhcmVudFRyZWVJZDpiLHN0cnVjdFRyZWVQYXJlbnQ6d31vZiBtKXtpZighaT8udHlwZSljb250aW51ZTtjb25zdHtzdHJ1Y3RQYXJlbnQ6bX09aTtpZihuJiZOdW1iZXIuaXNJbnRlZ2VyKG0pJiZtPj0wKXtsZXQgdD0oY3x8PW5ldyBNYXApLmdldCh1KTtpZih2b2lkIDA9PT10KXt0PW5ldyBTdHJ1Y3RUcmVlUGFnZShuLGUucGFnZURpY3QpLmNvbGxlY3RPYmplY3RzKHApO2Muc2V0KHUsdCl9Y29uc3QgYT10Py5nZXQobSk7aWYoYSl7Y29uc3QgZT1zLmZldGNoKGEpLmNsb25lKCk7U3RydWN0VHJlZVJvb3QuI2tlKGUsaSk7by5wdXQoYSx7ZGF0YTplfSk7Y29udGludWV9fWg9TWF0aC5tYXgoaCxiKTtjb25zdCBqPXMuZ2V0TmV3VGVtcG9yYXJ5UmVmKCksaz1uZXcgRGljdChzKTtTdHJ1Y3RUcmVlUm9vdC4ja2UoayxpKTthd2FpdCB0aGlzLiN5ZSh7c3RydWN0VHJlZVBhcmVudDp3LHRhZ0RpY3Q6ayxuZXdUYWdSZWY6aixzdHJ1Y3RUcmVlUm9vdFJlZjp0LGZhbGxiYWNrS2lkczphLHhyZWY6cyxjYWNoZTpsfSk7Y29uc3QgeT1uZXcgRGljdChzKTtrLnNldCgiSyIseSk7eS5zZXQoIlR5cGUiLGYpO2QmJnkuc2V0KCJQZyIscCk7eS5zZXQoIk9iaiIsZyk7bC5wdXQoaixrKTtyLnB1c2goYixqKX19cmV0dXJuIGgrMX1zdGF0aWMja2UoZSx7dHlwZTp0LHRpdGxlOm4sbGFuZzphLGFsdDpyLGV4cGFuZGVkOnMsYWN0dWFsVGV4dDppfSl7ZS5zZXQoIlMiLE5hbWUuZ2V0KHQpKTtuJiZlLnNldCgiVCIsc3RyaW5nVG9Bc2NpaU9yVVRGMTZCRShuKSk7YSYmZS5zZXQoIkxhbmciLHN0cmluZ1RvQXNjaWlPclVURjE2QkUoYSkpO3ImJmUuc2V0KCJBbHQiLHN0cmluZ1RvQXNjaWlPclVURjE2QkUocikpO3MmJmUuc2V0KCJFIixzdHJpbmdUb0FzY2lpT3JVVEYxNkJFKHMpKTtpJiZlLnNldCgiQWN0dWFsVGV4dCIsc3RyaW5nVG9Bc2NpaU9yVVRGMTZCRShpKSl9c3RhdGljI2plKHtlbGVtZW50czplLHhyZWY6dCxwYWdlRGljdDpuLG51bWJlclRyZWU6YX0pe2NvbnN0IHI9bmV3IE1hcDtmb3IoY29uc3QgdCBvZiBlKWlmKHQuc3RydWN0VHJlZVBhcmVudElkKXtjb25zdCBlPXBhcnNlSW50KHQuc3RydWN0VHJlZVBhcmVudElkLnNwbGl0KCJfbWMiKVsxXSwxMCk7ci5nZXRPckluc2VydENvbXB1dGVkKGUsbWFrZUFycikucHVzaCh0KX1jb25zdCBzPW4uZ2V0KCJTdHJ1Y3RQYXJlbnRzIik7aWYoIU51bWJlci5pc0ludGVnZXIocykpcmV0dXJuO2NvbnN0IGk9YS5nZXQocyksdXBkYXRlRWxlbWVudD0oZSxuLGEpPT57Y29uc3Qgcz1yLmdldChlKTtpZihzKXtjb25zdCBlPW4uZ2V0UmF3KCJQIikscj10LmZldGNoSWZSZWYoZSk7aWYoZSBpbnN0YW5jZW9mIFJlZiYmciBpbnN0YW5jZW9mIERpY3Qpe2NvbnN0IGU9e3JlZjphLGRpY3Q6bn07Zm9yKGNvbnN0IHQgb2Ygcyl0LnN0cnVjdFRyZWVQYXJlbnQ9ZX1yZXR1cm4hMH1yZXR1cm4hMX07Zm9yKGNvbnN0IGUgb2YgaSl7aWYoIShlIGluc3RhbmNlb2YgUmVmKSljb250aW51ZTtjb25zdCBuPXQuZmV0Y2goZSksYT1uLmdldCgiSyIpO2lmKE51bWJlci5pc0ludGVnZXIoYSkpdXBkYXRlRWxlbWVudChhLG4sZSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KGEpKWZvcihsZXQgciBvZiBhKXtyPXQuZmV0Y2hJZlJlZihyKTtpZihOdW1iZXIuaXNJbnRlZ2VyKHIpJiZ1cGRhdGVFbGVtZW50KHIsbixlKSlicmVhaztpZighKHIgaW5zdGFuY2VvZiBEaWN0KSljb250aW51ZTtpZighaXNOYW1lKHIuZ2V0KCJUeXBlIiksIk1DUiIpKWJyZWFrO2NvbnN0IGE9ci5nZXQoIk1DSUQiKTtpZihOdW1iZXIuaXNJbnRlZ2VyKGEpJiZ1cGRhdGVFbGVtZW50KGEsbixlKSlicmVha319fXN0YXRpYyBhc3luYyN5ZSh7c3RydWN0VHJlZVBhcmVudDplLHRhZ0RpY3Q6dCxuZXdUYWdSZWY6bixzdHJ1Y3RUcmVlUm9vdFJlZjphLGZhbGxiYWNrS2lkczpyLHhyZWY6cyxjYWNoZTppfSl7bGV0IG8sbD1udWxsO2lmKGUpeyh7cmVmOmx9PWUpO289ZS5kaWN0LmdldFJhdygiUCIpfHxhfWVsc2Ugbz1hO3Quc2V0KCJQIixvKTtjb25zdCBmPXMuZmV0Y2hJZlJlZihvKTtpZighZil7ci5wdXNoKG4pO3JldHVybn1sZXQgYz1pLmdldChvKTtpZighYyl7Yz1mLmNsb25lKCk7aS5wdXQobyxjKX1jb25zdCBoPWMuZ2V0UmF3KCJLIik7bGV0IHU9aCBpbnN0YW5jZW9mIFJlZj9pLmdldChoKTpudWxsO2lmKCF1KXt1PXMuZmV0Y2hJZlJlZihoKTt1PUFycmF5LmlzQXJyYXkodSk/dS5zbGljZSgpOltoXTtjb25zdCBlPXMuZ2V0TmV3VGVtcG9yYXJ5UmVmKCk7Yy5zZXQoIksiLGUpO2kucHV0KGUsdSl9Y29uc3QgbT11LmluZGV4T2YobCk7dS5zcGxpY2UobT49MD9tKzE6dS5sZW5ndGgsMCxuKX19Y2xhc3MgU3RydWN0RWxlbWVudE5vZGV7Y29uc3RydWN0b3IoZSx0KXt0aGlzLnRyZWU9ZTt0aGlzLnhyZWY9ZS54cmVmO3RoaXMuZGljdD10O3RoaXMua2lkcz1bXTt0aGlzLnBhcnNlS2lkcygpfWdldCByb2xlKCl7Y29uc3QgZT10aGlzLmRpY3QuZ2V0KCJTIiksdD1lIGluc3RhbmNlb2YgTmFtZT9lLm5hbWU6IiIse3Jvb3Q6bn09dGhpcy50cmVlO3JldHVybiBuLnJvbGVNYXAuZ2V0KHQpPz90fWdldCBtYXRoTUwoKXtsZXQgZT10aGlzLmRpY3QuZ2V0KCJBRiIpfHxbXTtBcnJheS5pc0FycmF5KGUpfHwoZT1bZV0pO2ZvcihsZXQgdCBvZiBlKXt0PXRoaXMueHJlZi5mZXRjaElmUmVmKHQpO2lmKCEodCBpbnN0YW5jZW9mIERpY3QpKWNvbnRpbnVlO2lmKCFpc05hbWUodC5nZXQoIlR5cGUiKSwiRmlsZXNwZWMiKSljb250aW51ZTtpZighaXNOYW1lKHQuZ2V0KCJBRlJlbGF0aW9uc2hpcCIpLCJTdXBwbGVtZW50IikpY29udGludWU7Y29uc3QgZT10LmdldCgiRUYiKTtpZighKGUgaW5zdGFuY2VvZiBEaWN0KSljb250aW51ZTtjb25zdCBuPWUuZ2V0KCJVRiIpfHxlLmdldCgiRiIpO2lmKG4gaW5zdGFuY2VvZiBCYXNlU3RyZWFtJiYoaXNOYW1lKG4uZGljdC5nZXQoIlR5cGUiKSwiRW1iZWRkZWRGaWxlIikmJmlzTmFtZShuLmRpY3QuZ2V0KCJTdWJ0eXBlIiksImFwcGxpY2F0aW9uL21hdGhtbCt4bWwiKSkpcmV0dXJuIHN0cmluZ1RvVVRGOFN0cmluZyhuLmdldFN0cmluZygpKX1jb25zdCB0PXRoaXMuZGljdC5nZXQoIkEiKTtpZih0IGluc3RhbmNlb2YgRGljdCl7aWYoaXNOYW1lKHQuZ2V0KCJPIiksIk1TRlRfT2ZmaWNlIikpe2NvbnN0IGU9dC5nZXQoIk1TRlRfTWF0aE1MIik7cmV0dXJuIGU/c3RyaW5nVG9QREZTdHJpbmcoZSk6bnVsbH19cmV0dXJuIG51bGx9cGFyc2VLaWRzKCl7bGV0IGU9bnVsbDtjb25zdCB0PXRoaXMuZGljdC5nZXRSYXcoIlBnIik7dCBpbnN0YW5jZW9mIFJlZiYmKGU9dC50b1N0cmluZygpKTtjb25zdCBuPXRoaXMuZGljdC5nZXQoIksiKTtpZihBcnJheS5pc0FycmF5KG4pKWZvcihjb25zdCB0IG9mIG4pe2NvbnN0IG49dGhpcy5wYXJzZUtpZChlLHRoaXMueHJlZi5mZXRjaElmUmVmKHQpKTtuJiZ0aGlzLmtpZHMucHVzaChuKX1lbHNle2NvbnN0IHQ9dGhpcy5wYXJzZUtpZChlLG4pO3QmJnRoaXMua2lkcy5wdXNoKHQpfX1wYXJzZUtpZChlLHQpe2lmKE51bWJlci5pc0ludGVnZXIodCkpcmV0dXJuIHRoaXMudHJlZS5wYWdlRGljdC5vYmpJZCE9PWU/bnVsbDpuZXcgU3RydWN0RWxlbWVudCh7dHlwZTpNcyxtY2lkOnQscGFnZU9iaklkOmV9KTtpZighKHQgaW5zdGFuY2VvZiBEaWN0KSlyZXR1cm4gbnVsbDtjb25zdCBuPXQuZ2V0UmF3KCJQZyIpO24gaW5zdGFuY2VvZiBSZWYmJihlPW4udG9TdHJpbmcoKSk7Y29uc3QgYT10LmdldCgiVHlwZSIpaW5zdGFuY2VvZiBOYW1lP3QuZ2V0KCJUeXBlIikubmFtZTpudWxsO2lmKCJNQ1IiPT09YSl7aWYodGhpcy50cmVlLnBhZ2VEaWN0Lm9iaklkIT09ZSlyZXR1cm4gbnVsbDtjb25zdCBuPXQuZ2V0UmF3KCJTdG0iKTtyZXR1cm4gbmV3IFN0cnVjdEVsZW1lbnQoe3R5cGU6RXMscmVmT2JqSWQ6biBpbnN0YW5jZW9mIFJlZj9uLnRvU3RyaW5nKCk6bnVsbCxwYWdlT2JqSWQ6ZSxtY2lkOnQuZ2V0KCJNQ0lEIil9KX1pZigiT0JKUiI9PT1hKXtpZih0aGlzLnRyZWUucGFnZURpY3Qub2JqSWQhPT1lKXJldHVybiBudWxsO2NvbnN0IG49dC5nZXRSYXcoIk9iaiIpO3JldHVybiBuZXcgU3RydWN0RWxlbWVudCh7dHlwZTpOcyxyZWZPYmpJZDpuIGluc3RhbmNlb2YgUmVmP24udG9TdHJpbmcoKTpudWxsLHBhZ2VPYmpJZDplfSl9cmV0dXJuIG5ldyBTdHJ1Y3RFbGVtZW50KHt0eXBlOl9zLGRpY3Q6dH0pfX1jbGFzcyBTdHJ1Y3RFbGVtZW50e2NvbnN0cnVjdG9yKHt0eXBlOmUsZGljdDp0PW51bGwsbWNpZDpuPW51bGwscGFnZU9iaklkOmE9bnVsbCxyZWZPYmpJZDpyPW51bGx9KXt0aGlzLnR5cGU9ZTt0aGlzLmRpY3Q9dDt0aGlzLm1jaWQ9bjt0aGlzLnBhZ2VPYmpJZD1hO3RoaXMucmVmT2JqSWQ9cjt0aGlzLnBhcmVudE5vZGU9bnVsbH19Y2xhc3MgU3RydWN0VHJlZVBhZ2V7Y29uc3RydWN0b3IoZSx0KXt0aGlzLnJvb3Q9ZTt0aGlzLnhyZWY9ZT8ueHJlZj8/bnVsbDt0aGlzLnJvb3REaWN0PWU/LmRpY3Q/P251bGw7dGhpcy5wYWdlRGljdD10O3RoaXMubm9kZXM9W119Y29sbGVjdE9iamVjdHMoZSl7aWYoISh0aGlzLnJvb3QmJnRoaXMucm9vdERpY3QmJmUgaW5zdGFuY2VvZiBSZWYpKXJldHVybiBudWxsO2NvbnN0IHQ9dGhpcy5yb290RGljdC5nZXQoIlBhcmVudFRyZWUiKTtpZighdClyZXR1cm4gbnVsbDtjb25zdCBuPXRoaXMucm9vdC5zdHJ1Y3RQYXJlbnRJZHM/LmdldChlKTtpZighbilyZXR1cm4gbnVsbDtjb25zdCBhPW5ldyBNYXAscj1uZXcgTnVtYmVyVHJlZSh0LHRoaXMueHJlZik7Zm9yKGNvbnN0W2Vdb2Ygbil7Y29uc3QgdD1yLmdldFJhdyhlKTt0IGluc3RhbmNlb2YgUmVmJiZhLnNldChlLHQpfXJldHVybiBhfXBhcnNlKGUpe2lmKCEodGhpcy5yb290JiZ0aGlzLnJvb3REaWN0JiZlIGluc3RhbmNlb2YgUmVmKSlyZXR1cm47Y29uc3R7cGFyZW50VHJlZTp0fT10aGlzLnJvb3Q7aWYoIXQpcmV0dXJuO2NvbnN0IG49dGhpcy5wYWdlRGljdC5nZXQoIlN0cnVjdFBhcmVudHMiKSxhPXRoaXMucm9vdC5zdHJ1Y3RQYXJlbnRJZHM/LmdldChlKTtpZighTnVtYmVyLmlzSW50ZWdlcihuKSYmIWEpcmV0dXJuO2NvbnN0IHI9bmV3IE1hcDtpZihOdW1iZXIuaXNJbnRlZ2VyKG4pKXtjb25zdCBlPXQuZ2V0KG4pO2lmKEFycmF5LmlzQXJyYXkoZSkpZm9yKGNvbnN0IHQgb2YgZSl0IGluc3RhbmNlb2YgUmVmJiZ0aGlzLmFkZE5vZGUodGhpcy54cmVmLmZldGNoKHQpLHIpfWlmKGEpZm9yKGNvbnN0W2Usbl1vZiBhKXtjb25zdCBhPXQuZ2V0KGUpO2lmKGEpe2NvbnN0IGU9dGhpcy5hZGROb2RlKHRoaXMueHJlZi5mZXRjaElmUmVmKGEpLHIpOzE9PT1lPy5raWRzPy5sZW5ndGgmJmUua2lkc1swXS50eXBlPT09TnMmJihlLmtpZHNbMF0udHlwZT1uKX19fWFkZE5vZGUoZSx0LG49MCl7aWYobj40MCl7d2FybigiU3RydWN0VHJlZSBNQVhfREVQVEggcmVhY2hlZC4iKTtyZXR1cm4gbnVsbH1pZighKGUgaW5zdGFuY2VvZiBEaWN0KSlyZXR1cm4gbnVsbDtpZih0LmhhcyhlKSlyZXR1cm4gdC5nZXQoZSk7Y29uc3QgYT1uZXcgU3RydWN0RWxlbWVudE5vZGUodGhpcyxlKTt0LnNldChlLGEpO3N3aXRjaChhLnJvbGUpe2Nhc2UiTCI6Y2FzZSJMQm9keSI6Y2FzZSJMSSI6Y2FzZSJUYWJsZSI6Y2FzZSJUSGVhZCI6Y2FzZSJUQm9keSI6Y2FzZSJURm9vdCI6Y2FzZSJUUiI6Zm9yKGNvbnN0IGUgb2YgYS5raWRzKWUudHlwZT09PV9zJiZ0aGlzLmFkZE5vZGUoZS5kaWN0LHQsbi0xKX1jb25zdCByPWUuZ2V0KCJQIik7aWYoIShyIGluc3RhbmNlb2YgRGljdCl8fGlzTmFtZShyLmdldCgiVHlwZSIpLCJTdHJ1Y3RUcmVlUm9vdCIpKXt0aGlzLmFkZFRvcExldmVsTm9kZShlLGEpfHx0LmRlbGV0ZShlKTtyZXR1cm4gYX1jb25zdCBzPXRoaXMuYWRkTm9kZShyLHQsbisxKTtpZighcylyZXR1cm4gYTtsZXQgaT0hMTtmb3IoY29uc3QgdCBvZiBzLmtpZHMpaWYodC50eXBlPT09X3MmJnQuZGljdD09PWUpe3QucGFyZW50Tm9kZT1hO2k9ITB9aXx8dC5kZWxldGUoZSk7cmV0dXJuIGF9YWRkVG9wTGV2ZWxOb2RlKGUsdCl7Y29uc3Qgbj10aGlzLnJvb3QuZ2V0S2lkUG9zaXRpb24oZS5vYmpJZCk7aWYoaXNOYU4obikpcmV0dXJuITE7LTEhPT1uJiYodGhpcy5ub2Rlc1tuXT10KTtyZXR1cm4hMH1nZXQgc2VyaWFsaXphYmxlKCl7ZnVuY3Rpb24gbm9kZVRvU2VyaWFsaXphYmxlKGUsdCxuPTApe2lmKG4+NDApe3dhcm4oIlN0cnVjdFRyZWUgdG9vIGRlZXAgdG8gYmUgZnVsbHkgc2VyaWFsaXplZC4iKTtyZXR1cm59Y29uc3QgYT1PYmplY3QuY3JlYXRlKG51bGwpO2Eucm9sZT1lLnJvbGU7YS5jaGlsZHJlbj1bXTt0LmNoaWxkcmVuLnB1c2goYSk7bGV0IHI9ZS5kaWN0LmdldCgiQWx0Iik7InN0cmluZyIhPXR5cGVvZiByJiYocj1lLmRpY3QuZ2V0KCJBY3R1YWxUZXh0IikpOyJzdHJpbmciPT10eXBlb2YgciYmKGEuYWx0PXN0cmluZ1RvUERGU3RyaW5nKHIpKTtpZigiRm9ybXVsYSI9PT1hLnJvbGUpe2NvbnN0e21hdGhNTDp0fT1lO3QmJihhLm1hdGhNTD10KX1jb25zdCBzPWUuZGljdC5nZXQoIkEiKTtpZihzIGluc3RhbmNlb2YgRGljdCl7Y29uc3QgZT1sb29rdXBOb3JtYWxSZWN0KHMuZ2V0QXJyYXkoIkJCb3giKSxudWxsKTtpZihlKWEuYmJveD1lO2Vsc2V7Y29uc3QgZT1zLmdldCgiV2lkdGgiKSx0PXMuZ2V0KCJIZWlnaHQiKTsibnVtYmVyIj09dHlwZW9mIGUmJmU+MCYmIm51bWJlciI9PXR5cGVvZiB0JiZ0PjAmJihhLmJib3g9WzAsMCxlLHRdKX19Y29uc3QgaT1lLmRpY3QuZ2V0KCJMYW5nIik7InN0cmluZyI9PXR5cGVvZiBpJiYoYS5sYW5nPXN0cmluZ1RvUERGU3RyaW5nKGkpKTtmb3IoY29uc3QgdCBvZiBlLmtpZHMpe2NvbnN0IGU9dC50eXBlPT09X3M/dC5wYXJlbnROb2RlOm51bGw7ZT9ub2RlVG9TZXJpYWxpemFibGUoZSxhLG4rMSk6dC50eXBlPT09TXN8fHQudHlwZT09PUVzP2EuY2hpbGRyZW4ucHVzaCh7dHlwZToiY29udGVudCIsaWQ6YHAke3QucGFnZU9iaklkfV9tYyR7dC5tY2lkfWB9KTp0LnR5cGU9PT1Ocz9hLmNoaWxkcmVuLnB1c2goe3R5cGU6Im9iamVjdCIsaWQ6dC5yZWZPYmpJZH0pOnQudHlwZT09PXpzJiZhLmNoaWxkcmVuLnB1c2goe3R5cGU6ImFubm90YXRpb24iLGlkOmBwZGZqc19pbnRlcm5hbF9pZF8ke3QucmVmT2JqSWR9YH0pfX1jb25zdCBlPU9iamVjdC5jcmVhdGUobnVsbCk7ZS5jaGlsZHJlbj1bXTtlLnJvbGU9IlJvb3QiO2Zvcihjb25zdCB0IG9mIHRoaXMubm9kZXMpdCYmbm9kZVRvU2VyaWFsaXphYmxlKHQsZSk7cmV0dXJuIGV9fWNvbnN0IExzPWZ1bmN0aW9uIF9pc1ZhbGlkRXhwbGljaXREZXN0KGUsdCxuKXtpZighQXJyYXkuaXNBcnJheShuKXx8bi5sZW5ndGg8MilyZXR1cm4hMTtjb25zdFthLHIsLi4uc109bjtpZighZShhKSYmIU51bWJlci5pc0ludGVnZXIoYSkpcmV0dXJuITE7aWYoIXQocikpcmV0dXJuITE7Y29uc3QgaT1zLmxlbmd0aDtsZXQgbz0hMDtzd2l0Y2goci5uYW1lKXtjYXNlIlhZWiI6aWYoaTwyfHxpPjMpcmV0dXJuITE7YnJlYWs7Y2FzZSJGaXQiOmNhc2UiRml0QiI6cmV0dXJuIDA9PT1pO2Nhc2UiRml0SCI6Y2FzZSJGaXRCSCI6Y2FzZSJGaXRWIjpjYXNlIkZpdEJWIjppZihpPjEpcmV0dXJuITE7YnJlYWs7Y2FzZSJGaXRSIjppZig0IT09aSlyZXR1cm4hMTtvPSExO2JyZWFrO2RlZmF1bHQ6cmV0dXJuITF9Zm9yKGNvbnN0IGUgb2YgcylpZighKCJudW1iZXIiPT10eXBlb2YgZXx8byYmbnVsbD09PWUpKXJldHVybiExO3JldHVybiEwfS5iaW5kKG51bGwsZT0+ZSBpbnN0YW5jZW9mIFJlZixpc05hbWUpO2Z1bmN0aW9uIGZldGNoRGVzdChlKXtlIGluc3RhbmNlb2YgRGljdCYmKGU9ZS5nZXQoIkQiKSk7cmV0dXJuIExzKGUpP2U6bnVsbH1mdW5jdGlvbiBmZXRjaFJlbW90ZURlc3QoZSl7bGV0IHQ9ZS5nZXQoIkQiKTtpZih0KXt0IGluc3RhbmNlb2YgTmFtZSYmKHQ9dC5uYW1lKTtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIHN0cmluZ1RvUERGU3RyaW5nKHQsITApO2lmKExzKHQpKXJldHVybiBKU09OLnN0cmluZ2lmeSh0KX1yZXR1cm4gbnVsbH1jbGFzcyBDYXRhbG9neyNxZT1udWxsOyN2ZT1udWxsO2J1aWx0SW5DTWFwQ2FjaGU9bmV3IE1hcDtmb250Q2FjaGU9bmV3IFJlZlNldENhY2hlO2dsb2JhbENvbG9yU3BhY2VDYWNoZT1uZXcgR2xvYmFsQ29sb3JTcGFjZUNhY2hlO2dsb2JhbEltYWdlQ2FjaGU9bmV3IEdsb2JhbEltYWdlQ2FjaGU7bm9uQmxlbmRNb2Rlc1NldD1uZXcgUmVmU2V0O3BhZ2VEaWN0Q2FjaGU9bmV3IFJlZlNldENhY2hlO3BhZ2VJbmRleENhY2hlPW5ldyBSZWZTZXRDYWNoZTtwYWdlS2lkc0NvdW50Q2FjaGU9bmV3IFJlZlNldENhY2hlO3N0YW5kYXJkRm9udERhdGFDYWNoZT1uZXcgTWFwO3N5c3RlbUZvbnRDYWNoZT1uZXcgTWFwO2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5wZGZNYW5hZ2VyPWU7dGhpcy54cmVmPXQ7dGhpcy4jdmU9dC5nZXRDYXRhbG9nT2JqKCk7aWYoISh0aGlzLiN2ZSBpbnN0YW5jZW9mIERpY3QpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiQ2F0YWxvZyBvYmplY3QgaXMgbm90IGEgZGljdGlvbmFyeS4iKTt0aGlzLnRvcGxldmVsUGFnZXNEaWN0fWNsb25lRGljdCgpe3JldHVybiB0aGlzLiN2ZS5jbG9uZSgpfWdldCB2ZXJzaW9uKCl7Y29uc3QgZT10aGlzLiN2ZS5nZXQoIlZlcnNpb24iKTtpZihlIGluc3RhbmNlb2YgTmFtZSl7aWYoZ24udGVzdChlLm5hbWUpKXJldHVybiBzaGFkb3codGhpcywidmVyc2lvbiIsZS5uYW1lKTt3YXJuKGBJbnZhbGlkIFBERiBjYXRhbG9nIHZlcnNpb246ICR7ZS5uYW1lfWApfXJldHVybiBzaGFkb3codGhpcywidmVyc2lvbiIsbnVsbCl9Z2V0IGxhbmcoKXtjb25zdCBlPXRoaXMuI3ZlLmdldCgiTGFuZyIpO3JldHVybiBzaGFkb3codGhpcywibGFuZyIsZSYmInN0cmluZyI9PXR5cGVvZiBlP3N0cmluZ1RvUERGU3RyaW5nKGUpOm51bGwpfWdldCBuZWVkc1JlbmRlcmluZygpe2NvbnN0IGU9dGhpcy4jdmUuZ2V0KCJOZWVkc1JlbmRlcmluZyIpO3JldHVybiBzaGFkb3codGhpcywibmVlZHNSZW5kZXJpbmciLCJib29sZWFuIj09dHlwZW9mIGUmJmUpfWdldCBjb2xsZWN0aW9uKCl7bGV0IGU9bnVsbDt0cnl7Y29uc3QgdD10aGlzLiN2ZS5nZXQoIkNvbGxlY3Rpb24iKTt0IGluc3RhbmNlb2YgRGljdCYmdC5zaXplPjAmJihlPXQpfWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbil0aHJvdyBlO2luZm8oIkNhbm5vdCBmZXRjaCBDb2xsZWN0aW9uIGVudHJ5OyBhc3N1bWluZyBubyBjb2xsZWN0aW9uIGlzIHByZXNlbnQuIil9cmV0dXJuIHNoYWRvdyh0aGlzLCJjb2xsZWN0aW9uIixlKX1nZXQgYWNyb0Zvcm0oKXtsZXQgZT1udWxsO3RyeXtjb25zdCB0PXRoaXMuI3ZlLmdldCgiQWNyb0Zvcm0iKTt0IGluc3RhbmNlb2YgRGljdCYmdC5zaXplPjAmJihlPXQpfWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbil0aHJvdyBlO2luZm8oIkNhbm5vdCBmZXRjaCBBY3JvRm9ybSBlbnRyeTsgYXNzdW1pbmcgbm8gZm9ybXMgYXJlIHByZXNlbnQuIil9cmV0dXJuIHNoYWRvdyh0aGlzLCJhY3JvRm9ybSIsZSl9Z2V0IGFjcm9Gb3JtUmVmKCl7Y29uc3QgZT10aGlzLiN2ZS5nZXRSYXcoIkFjcm9Gb3JtIik7cmV0dXJuIHNoYWRvdyh0aGlzLCJhY3JvRm9ybVJlZiIsZSBpbnN0YW5jZW9mIFJlZj9lOm51bGwpfWdldCBtZXRhZGF0YSgpe2NvbnN0IGU9dGhpcy4jdmUuZ2V0UmF3KCJNZXRhZGF0YSIpO2lmKCEoZSBpbnN0YW5jZW9mIFJlZikpcmV0dXJuIHNoYWRvdyh0aGlzLCJtZXRhZGF0YSIsbnVsbCk7bGV0IHQ9bnVsbDt0cnl7Y29uc3Qgbj10aGlzLnhyZWYuZmV0Y2goZSwhdGhpcy54cmVmLmVuY3J5cHQ/LmVuY3J5cHRNZXRhZGF0YSk7aWYobiBpbnN0YW5jZW9mIEJhc2VTdHJlYW0mJm4uZGljdCBpbnN0YW5jZW9mIERpY3Qpe2NvbnN0IGU9bi5kaWN0LmdldCgiVHlwZSIpLGE9bi5kaWN0LmdldCgiU3VidHlwZSIpO2lmKGlzTmFtZShlLCJNZXRhZGF0YSIpJiZpc05hbWUoYSwiWE1MIikpe2NvbnN0IGU9c3RyaW5nVG9VVEY4U3RyaW5nKG4uZ2V0U3RyaW5nKCkpO2UmJih0PW5ldyBNZXRhZGF0YVBhcnNlcihlKS5zZXJpYWxpemFibGUpfX19Y2F0Y2goZSl7aWYoZSBpbnN0YW5jZW9mIE1pc3NpbmdEYXRhRXhjZXB0aW9uKXRocm93IGU7aW5mbyhgU2tpcHBpbmcgaW52YWxpZCBNZXRhZGF0YTogIiR7ZX0iLmApfXJldHVybiBzaGFkb3codGhpcywibWV0YWRhdGEiLHQpfWdldCBtYXJrSW5mbygpe2xldCBlPW51bGw7dHJ5e2U9dGhpcy4jU2UoKX1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgTWlzc2luZ0RhdGFFeGNlcHRpb24pdGhyb3cgZTt3YXJuKCJVbmFibGUgdG8gcmVhZCBtYXJrIGluZm8uIil9cmV0dXJuIHNoYWRvdyh0aGlzLCJtYXJrSW5mbyIsZSl9I1NlKCl7Y29uc3QgZT10aGlzLiN2ZS5nZXQoIk1hcmtJbmZvIik7aWYoIShlIGluc3RhbmNlb2YgRGljdCkpcmV0dXJuIG51bGw7Y29uc3QgdD17TWFya2VkOiExLFVzZXJQcm9wZXJ0aWVzOiExLFN1c3BlY3RzOiExfTtmb3IoY29uc3QgbiBpbiB0KXtjb25zdCBhPWUuZ2V0KG4pOyJib29sZWFuIj09dHlwZW9mIGEmJih0W25dPWEpfXJldHVybiB0fWdldCBoYXNTdHJ1Y3RUcmVlKCl7cmV0dXJuIHRoaXMuI3ZlLmhhcygiU3RydWN0VHJlZVJvb3QiKX1nZXQgc3RydWN0VHJlZVJvb3QoKXtsZXQgZT1udWxsO3RyeXtlPXRoaXMuI3hlKCl9Y2F0Y2goZSl7aWYoZSBpbnN0YW5jZW9mIE1pc3NpbmdEYXRhRXhjZXB0aW9uKXRocm93IGU7d2FybigiVW5hYmxlIHJlYWQgdG8gc3RydWN0VHJlZVJvb3QgaW5mby4iKX1yZXR1cm4gc2hhZG93KHRoaXMsInN0cnVjdFRyZWVSb290IixlKX0jeGUoKXtjb25zdCBlPXRoaXMuI3ZlLmdldFJhdygiU3RydWN0VHJlZVJvb3QiKSx0PXRoaXMueHJlZi5mZXRjaElmUmVmKGUpO2lmKCEodCBpbnN0YW5jZW9mIERpY3QpKXJldHVybiBudWxsO2NvbnN0IG49bmV3IFN0cnVjdFRyZWVSb290KHRoaXMueHJlZix0LGUpO24uaW5pdCgpO3JldHVybiBufWdldCB0b3BsZXZlbFBhZ2VzRGljdCgpe2NvbnN0IGU9dGhpcy4jdmUuZ2V0KCJQYWdlcyIpO2lmKCEoZSBpbnN0YW5jZW9mIERpY3QpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiSW52YWxpZCB0b3AtbGV2ZWwgcGFnZXMgZGljdGlvbmFyeS4iKTtyZXR1cm4gc2hhZG93KHRoaXMsInRvcGxldmVsUGFnZXNEaWN0IixlKX1nZXQgZG9jdW1lbnRPdXRsaW5lKCl7bGV0IGU9bnVsbDt0cnl7ZT10aGlzLiNBZSgpfWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbil0aHJvdyBlO3dhcm4oIlVuYWJsZSB0byByZWFkIGRvY3VtZW50IG91dGxpbmUuIil9cmV0dXJuIHNoYWRvdyh0aGlzLCJkb2N1bWVudE91dGxpbmUiLGUpfSNBZSgpe2xldCBlPXRoaXMuI3ZlLmdldCgiT3V0bGluZXMiKTtpZighKGUgaW5zdGFuY2VvZiBEaWN0KSlyZXR1cm4gbnVsbDtlPWUuZ2V0UmF3KCJGaXJzdCIpO2lmKCEoZSBpbnN0YW5jZW9mIFJlZikpcmV0dXJuIG51bGw7Y29uc3QgdD17aXRlbXM6W119LG49W3tvYmo6ZSxwYXJlbnQ6dH1dLGE9bmV3IFJlZlNldDthLnB1dChlKTtjb25zdCByPXRoaXMueHJlZixzPW5ldyBVaW50OENsYW1wZWRBcnJheSgzKTtmb3IoO24ubGVuZ3RoPjA7KXtjb25zdCB0PW4uc2hpZnQoKSxpPXIuZmV0Y2hJZlJlZih0Lm9iaik7aWYobnVsbD09PWkpY29udGludWU7aS5oYXMoIlRpdGxlIil8fHdhcm4oIkludmFsaWQgb3V0bGluZSBpdGVtIGVuY291bnRlcmVkLiIpO2NvbnN0IG89e3VybDpudWxsLGRlc3Q6bnVsbCxhY3Rpb246bnVsbH07Q2F0YWxvZy5wYXJzZURlc3REaWN0aW9uYXJ5KHtkZXN0RGljdDppLHJlc3VsdE9iajpvLGRvY0Jhc2VVcmw6dGhpcy5iYXNlVXJsLGRvY0F0dGFjaG1lbnRzOnRoaXMuYXR0YWNobWVudHN9KTtjb25zdCBsPWkuZ2V0KCJUaXRsZSIpLGY9aS5nZXQoIkYiKXx8MCxjPWkuZ2V0QXJyYXkoIkMiKSxoPWkuZ2V0KCJDb3VudCIpO2xldCB1PXM7IWlzTnVtYmVyQXJyYXkoYywzKXx8MD09PWNbMF0mJjA9PT1jWzFdJiYwPT09Y1syXXx8KHU9Q29sb3JTcGFjZVV0aWxzLnJnYi5nZXRSZ2IoYywwKSk7Y29uc3QgbT17YWN0aW9uOm8uYWN0aW9uLGF0dGFjaG1lbnQ6by5hdHRhY2htZW50LGRlc3Q6by5kZXN0LHVybDpvLnVybCx1bnNhZmVVcmw6by51bnNhZmVVcmwsbmV3V2luZG93Om8ubmV3V2luZG93LHNldE9DR1N0YXRlOm8uc2V0T0NHU3RhdGUsdGl0bGU6InN0cmluZyI9PXR5cGVvZiBsP3N0cmluZ1RvUERGU3RyaW5nKGwpOiIiLGNvbG9yOnUsY291bnQ6TnVtYmVyLmlzSW50ZWdlcihoKT9oOnZvaWQgMCxib2xkOiEhKDImZiksaXRhbGljOiEhKDEmZiksaXRlbXM6W119O3QucGFyZW50Lml0ZW1zLnB1c2gobSk7ZT1pLmdldFJhdygiRmlyc3QiKTtpZihlIGluc3RhbmNlb2YgUmVmJiYhYS5oYXMoZSkpe24ucHVzaCh7b2JqOmUscGFyZW50Om19KTthLnB1dChlKX1lPWkuZ2V0UmF3KCJOZXh0Iik7aWYoZSBpbnN0YW5jZW9mIFJlZiYmIWEuaGFzKGUpKXtuLnB1c2goe29iajplLHBhcmVudDp0LnBhcmVudH0pO2EucHV0KGUpfX1yZXR1cm4gdC5pdGVtcy5sZW5ndGg+MD90Lml0ZW1zOm51bGx9Z2V0IHBlcm1pc3Npb25zKCl7bGV0IGU9bnVsbDt0cnl7ZT10aGlzLiNDZSgpfWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbil0aHJvdyBlO3dhcm4oIlVuYWJsZSB0byByZWFkIHBlcm1pc3Npb25zLiIpfXJldHVybiBzaGFkb3codGhpcywicGVybWlzc2lvbnMiLGUpfSNDZSgpe2NvbnN0IGU9dGhpcy54cmVmLnRyYWlsZXIuZ2V0KCJFbmNyeXB0Iik7aWYoIShlIGluc3RhbmNlb2YgRGljdCkpcmV0dXJuIG51bGw7bGV0IHQ9ZS5nZXQoIlAiKTtpZigibnVtYmVyIiE9dHlwZW9mIHQpcmV0dXJuIG51bGw7dCs9MioqMzI7Y29uc3Qgbj1bXTtmb3IoY29uc3QgZSBpbiB5KXtjb25zdCBhPXlbZV07dCZhJiZuLnB1c2goYSl9cmV0dXJuIG59Z2V0IG9wdGlvbmFsQ29udGVudENvbmZpZygpe2xldCBlPW51bGw7dHJ5e2NvbnN0IHQ9dGhpcy4jdmUuZ2V0KCJPQ1Byb3BlcnRpZXMiKTtpZighdClyZXR1cm4gc2hhZG93KHRoaXMsIm9wdGlvbmFsQ29udGVudENvbmZpZyIsbnVsbCk7Y29uc3Qgbj10LmdldCgiRCIpO2lmKCFuKXJldHVybiBzaGFkb3codGhpcywib3B0aW9uYWxDb250ZW50Q29uZmlnIixudWxsKTtjb25zdCBhPXQuZ2V0KCJPQ0dzIik7aWYoIUFycmF5LmlzQXJyYXkoYSkpcmV0dXJuIHNoYWRvdyh0aGlzLCJvcHRpb25hbENvbnRlbnRDb25maWciLG51bGwpO2NvbnN0IHI9bmV3IFJlZlNldENhY2hlO2Zvcihjb25zdCBlIG9mIGEpZSBpbnN0YW5jZW9mIFJlZiYmIXIuaGFzKGUpJiZyLnB1dChlLHRoaXMuI0llKGUpKTtlPXRoaXMuI0ZlKG4scil9Y2F0Y2goZSl7aWYoZSBpbnN0YW5jZW9mIE1pc3NpbmdEYXRhRXhjZXB0aW9uKXRocm93IGU7d2FybihgVW5hYmxlIHRvIHJlYWQgb3B0aW9uYWwgY29udGVudCBjb25maWc6ICR7ZX1gKX1yZXR1cm4gc2hhZG93KHRoaXMsIm9wdGlvbmFsQ29udGVudENvbmZpZyIsZSl9I0llKGUpe2NvbnN0IHQ9dGhpcy54cmVmLmZldGNoKGUpLG49e2lkOmUudG9TdHJpbmcoKSxuYW1lOm51bGwsaW50ZW50Om51bGwsdXNhZ2U6e3ByaW50Om51bGwsdmlldzpudWxsfSxyYkdyb3VwczpbXX0sYT10LmdldCgiTmFtZSIpOyJzdHJpbmciPT10eXBlb2YgYSYmKG4ubmFtZT1zdHJpbmdUb1BERlN0cmluZyhhKSk7bGV0IHI9dC5nZXRBcnJheSgiSW50ZW50Iik7QXJyYXkuaXNBcnJheShyKXx8KHI9W3JdKTtyLmV2ZXJ5KGU9PmUgaW5zdGFuY2VvZiBOYW1lKSYmKG4uaW50ZW50PXIubWFwKGU9PmUubmFtZSkpO2NvbnN0IHM9dC5nZXQoIlVzYWdlIik7aWYoIShzIGluc3RhbmNlb2YgRGljdCkpcmV0dXJuIG47Y29uc3QgaT1uLnVzYWdlLG89cy5nZXQoIlByaW50Iik7aWYobyBpbnN0YW5jZW9mIERpY3Qpe2NvbnN0IGU9by5nZXQoIlByaW50U3RhdGUiKTtpZihlIGluc3RhbmNlb2YgTmFtZSlzd2l0Y2goZS5uYW1lKXtjYXNlIk9OIjpjYXNlIk9GRiI6aS5wcmludD17cHJpbnRTdGF0ZTplLm5hbWV9fX1jb25zdCBsPXMuZ2V0KCJWaWV3Iik7aWYobCBpbnN0YW5jZW9mIERpY3Qpe2NvbnN0IGU9bC5nZXQoIlZpZXdTdGF0ZSIpO2lmKGUgaW5zdGFuY2VvZiBOYW1lKXN3aXRjaChlLm5hbWUpe2Nhc2UiT04iOmNhc2UiT0ZGIjppLnZpZXc9e3ZpZXdTdGF0ZTplLm5hbWV9fX1yZXR1cm4gbn0jRmUoZSx0KXtmdW5jdGlvbiBwYXJzZU9uT2ZmKGUpe2NvbnN0IG49W107aWYoQXJyYXkuaXNBcnJheShlKSlmb3IoY29uc3QgYSBvZiBlKWEgaW5zdGFuY2VvZiBSZWYmJnQuaGFzKGEpJiZuLnB1c2goYS50b1N0cmluZygpKTtyZXR1cm4gbn1mdW5jdGlvbiBwYXJzZU9yZGVyKGUsbj0wKXtpZighQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gbnVsbDtjb25zdCByPVtdO2Zvcihjb25zdCBzIG9mIGUpe2lmKHMgaW5zdGFuY2VvZiBSZWYmJnQuaGFzKHMpKXthLnB1dChzKTtyLnB1c2gocy50b1N0cmluZygpKTtjb250aW51ZX1jb25zdCBlPXBhcnNlTmVzdGVkT3JkZXIocyxuKTtlJiZyLnB1c2goZSl9aWYobj4wKXJldHVybiByO2NvbnN0IHM9W107Zm9yKGNvbnN0W2Vdb2YgdC5pdGVtcygpKWEuaGFzKGUpfHxzLnB1c2goZS50b1N0cmluZygpKTtzLmxlbmd0aCYmci5wdXNoKHtuYW1lOm51bGwsb3JkZXI6c30pO3JldHVybiByfWZ1bmN0aW9uIHBhcnNlTmVzdGVkT3JkZXIoZSx0KXtpZigrK3Q+cil7d2FybigicGFyc2VOZXN0ZWRPcmRlciAtIHJlYWNoZWQgTUFYX05FU1RFRF9MRVZFTFMuIik7cmV0dXJuIG51bGx9Y29uc3QgYT1uLmZldGNoSWZSZWYoZSk7aWYoIUFycmF5LmlzQXJyYXkoYSkpcmV0dXJuIG51bGw7Y29uc3Qgcz1uLmZldGNoSWZSZWYoYVswXSk7aWYoInN0cmluZyIhPXR5cGVvZiBzKXJldHVybiBudWxsO2NvbnN0IGk9cGFyc2VPcmRlcihhLnNsaWNlKDEpLHQpO3JldHVybiBpPy5sZW5ndGg/e25hbWU6c3RyaW5nVG9QREZTdHJpbmcocyksb3JkZXI6aX06bnVsbH1jb25zdCBuPXRoaXMueHJlZixhPW5ldyBSZWZTZXQscj0xMDshZnVuY3Rpb24gcGFyc2VSQkdyb3VwcyhlKXtpZihBcnJheS5pc0FycmF5KGUpKWZvcihjb25zdCBhIG9mIGUpe2NvbnN0IGU9bi5mZXRjaElmUmVmKGEpO2lmKCFBcnJheS5pc0FycmF5KGUpfHwhZS5sZW5ndGgpY29udGludWU7Y29uc3Qgcj1uZXcgU2V0O2Zvcihjb25zdCBuIG9mIGUpaWYobiBpbnN0YW5jZW9mIFJlZiYmdC5oYXMobikmJiFyLmhhcyhuLnRvU3RyaW5nKCkpKXtyLmFkZChuLnRvU3RyaW5nKCkpO3QuZ2V0KG4pLnJiR3JvdXBzLnB1c2gocil9fX0oZS5nZXQoIlJCR3JvdXBzIikpO3JldHVybntuYW1lOiJzdHJpbmciPT10eXBlb2YgZS5nZXQoIk5hbWUiKT9zdHJpbmdUb1BERlN0cmluZyhlLmdldCgiTmFtZSIpKTpudWxsLGNyZWF0b3I6InN0cmluZyI9PXR5cGVvZiBlLmdldCgiQ3JlYXRvciIpP3N0cmluZ1RvUERGU3RyaW5nKGUuZ2V0KCJDcmVhdG9yIikpOm51bGwsYmFzZVN0YXRlOmUuZ2V0KCJCYXNlU3RhdGUiKWluc3RhbmNlb2YgTmFtZT9lLmdldCgiQmFzZVN0YXRlIikubmFtZTpudWxsLG9uOnBhcnNlT25PZmYoZS5nZXQoIk9OIikpLG9mZjpwYXJzZU9uT2ZmKGUuZ2V0KCJPRkYiKSksb3JkZXI6cGFyc2VPcmRlcihlLmdldCgiT3JkZXIiKSksZ3JvdXBzOlsuLi50XX19c2V0QWN0dWFsTnVtUGFnZXMoZT1udWxsKXt0aGlzLiNxZT1lfWdldCBoYXNBY3R1YWxOdW1QYWdlcygpe3JldHVybiBudWxsIT09dGhpcy4jcWV9Z2V0IF9wYWdlc0NvdW50KCl7Y29uc3QgZT10aGlzLnRvcGxldmVsUGFnZXNEaWN0LmdldCgiQ291bnQiKTtpZighTnVtYmVyLmlzSW50ZWdlcihlKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlBhZ2UgY291bnQgaW4gdG9wLWxldmVsIHBhZ2VzIGRpY3Rpb25hcnkgaXMgbm90IGFuIGludGVnZXIuIik7cmV0dXJuIHNoYWRvdyh0aGlzLCJfcGFnZXNDb3VudCIsZSl9Z2V0IG51bVBhZ2VzKCl7cmV0dXJuIHRoaXMuI3FlPz90aGlzLl9wYWdlc0NvdW50fWdldCBkZXN0aW5hdGlvbnMoKXtjb25zdCBlPXRoaXMuI1RlKCksdD1PYmplY3QuY3JlYXRlKG51bGwpO2Zvcihjb25zdCBuIG9mIGUpaWYobiBpbnN0YW5jZW9mIE5hbWVUcmVlKWZvcihjb25zdFtlLGFdb2Ygbi5nZXRBbGwoKSl7Y29uc3Qgbj1mZXRjaERlc3QoYSk7biYmKHRbc3RyaW5nVG9QREZTdHJpbmcoZSwhMCldPW4pfWVsc2UgaWYobiBpbnN0YW5jZW9mIERpY3QpZm9yKGNvbnN0W2UsYV1vZiBuKXtjb25zdCBuPWZldGNoRGVzdChhKTtuJiYodFtzdHJpbmdUb1BERlN0cmluZyhlLCEwKV18fD1uKX1yZXR1cm4gc2hhZG93KHRoaXMsImRlc3RpbmF0aW9ucyIsdCl9Z2V0RGVzdGluYXRpb24oZSl7aWYodGhpcy5oYXNPd25Qcm9wZXJ0eSgiZGVzdGluYXRpb25zIikpcmV0dXJuIHRoaXMuZGVzdGluYXRpb25zW2VdPz9udWxsO2NvbnN0IHQ9dGhpcy4jVGUoKTtmb3IoY29uc3QgbiBvZiB0KWlmKG4gaW5zdGFuY2VvZiBOYW1lVHJlZXx8biBpbnN0YW5jZW9mIERpY3Qpe2NvbnN0IHQ9ZmV0Y2hEZXN0KG4uZ2V0KGUpKTtpZih0KXJldHVybiB0fWlmKHQubGVuZ3RoKXtjb25zdCB0PXRoaXMuZGVzdGluYXRpb25zW2VdO2lmKHQpcmV0dXJuIHR9cmV0dXJuIG51bGx9I1RlKCl7Y29uc3QgZT10aGlzLiN2ZS5nZXQoIk5hbWVzIiksdD1bXTtlPy5oYXMoIkRlc3RzIikmJnQucHVzaChuZXcgTmFtZVRyZWUoZS5nZXRSYXcoIkRlc3RzIiksdGhpcy54cmVmKSk7dGhpcy4jdmUuaGFzKCJEZXN0cyIpJiZ0LnB1c2godGhpcy4jdmUuZ2V0KCJEZXN0cyIpKTtyZXR1cm4gdH1nZXQgcmF3UGFnZUxhYmVscygpe2NvbnN0IGU9dGhpcy4jdmUuZ2V0UmF3KCJQYWdlTGFiZWxzIik7aWYoIWUpcmV0dXJuIG51bGw7cmV0dXJuIG5ldyBOdW1iZXJUcmVlKGUsdGhpcy54cmVmKS5nZXRBbGwoKX1nZXQgcGFnZUxhYmVscygpe2xldCBlPW51bGw7dHJ5e2U9dGhpcy4jT2UoKX1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgTWlzc2luZ0RhdGFFeGNlcHRpb24pdGhyb3cgZTt3YXJuKCJVbmFibGUgdG8gcmVhZCBwYWdlIGxhYmVscy4iKX1yZXR1cm4gc2hhZG93KHRoaXMsInBhZ2VMYWJlbHMiLGUpfSNPZSgpe2NvbnN0IGU9dGhpcy5yYXdQYWdlTGFiZWxzO2lmKCFlKXJldHVybiBudWxsO2NvbnN0IHQ9bmV3IEFycmF5KHRoaXMubnVtUGFnZXMpO2xldCBuPW51bGwsYT0iIixyPSIiLHM9MTtmb3IobGV0IGk9MCxvPXRoaXMubnVtUGFnZXM7aTxvO2krKyl7Y29uc3Qgbz1lLmdldChpKTtpZih2b2lkIDAhPT1vKXtpZighKG8gaW5zdGFuY2VvZiBEaWN0KSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlBhZ2VMYWJlbCBpcyBub3QgYSBkaWN0aW9uYXJ5LiIpO2lmKG8uaGFzKCJUeXBlIikmJiFpc05hbWUoby5nZXQoIlR5cGUiKSwiUGFnZUxhYmVsIikpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJJbnZhbGlkIHR5cGUgaW4gUGFnZUxhYmVsIGRpY3Rpb25hcnkuIik7aWYoby5oYXMoIlMiKSl7Y29uc3QgZT1vLmdldCgiUyIpO2lmKCEoZSBpbnN0YW5jZW9mIE5hbWUpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiSW52YWxpZCBzdHlsZSBpbiBQYWdlTGFiZWwgZGljdGlvbmFyeS4iKTtuPWUubmFtZX1lbHNlIG49bnVsbDtpZihvLmhhcygiUCIpKXtjb25zdCBlPW8uZ2V0KCJQIik7aWYoInN0cmluZyIhPXR5cGVvZiBlKXRocm93IG5ldyBGb3JtYXRFcnJvcigiSW52YWxpZCBwcmVmaXggaW4gUGFnZUxhYmVsIGRpY3Rpb25hcnkuIik7YT1zdHJpbmdUb1BERlN0cmluZyhlKX1lbHNlIGE9IiI7aWYoby5oYXMoIlN0Iikpe2NvbnN0IGU9by5nZXQoIlN0Iik7aWYoIShOdW1iZXIuaXNJbnRlZ2VyKGUpJiZlPj0xKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgc3RhcnQgaW4gUGFnZUxhYmVsIGRpY3Rpb25hcnkuIik7cz1lfWVsc2Ugcz0xfXN3aXRjaChuKXtjYXNlIkQiOnI9czticmVhaztjYXNlIlIiOmNhc2UiciI6cj10b1JvbWFuTnVtZXJhbHMocywiciI9PT1uKTticmVhaztjYXNlIkEiOmNhc2UiYSI6Y29uc3QgZT0yNix0PSJhIj09PW4/OTc6NjUsYT1zLTE7cj1TdHJpbmcuZnJvbUNoYXJDb2RlKHQrYSVlKS5yZXBlYXQoTWF0aC5mbG9vcihhL2UpKzEpO2JyZWFrO2RlZmF1bHQ6aWYobil0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYEludmFsaWQgc3R5bGUgIiR7bn0iIGluIFBhZ2VMYWJlbCBkaWN0aW9uYXJ5LmApO3I9IiJ9dFtpXT1hK3I7cysrfXJldHVybiB0fWdldCBwYWdlTGF5b3V0KCl7Y29uc3QgZT10aGlzLiN2ZS5nZXQoIlBhZ2VMYXlvdXQiKTtsZXQgdD0iIjtpZihlIGluc3RhbmNlb2YgTmFtZSlzd2l0Y2goZS5uYW1lKXtjYXNlIlNpbmdsZVBhZ2UiOmNhc2UiT25lQ29sdW1uIjpjYXNlIlR3b0NvbHVtbkxlZnQiOmNhc2UiVHdvQ29sdW1uUmlnaHQiOmNhc2UiVHdvUGFnZUxlZnQiOmNhc2UiVHdvUGFnZVJpZ2h0Ijp0PWUubmFtZX1yZXR1cm4gc2hhZG93KHRoaXMsInBhZ2VMYXlvdXQiLHQpfWdldCBwYWdlTW9kZSgpe2NvbnN0IGU9dGhpcy4jdmUuZ2V0KCJQYWdlTW9kZSIpO2xldCB0PSJVc2VOb25lIjtpZihlIGluc3RhbmNlb2YgTmFtZSlzd2l0Y2goZS5uYW1lKXtjYXNlIlVzZU5vbmUiOmNhc2UiVXNlT3V0bGluZXMiOmNhc2UiVXNlVGh1bWJzIjpjYXNlIkZ1bGxTY3JlZW4iOmNhc2UiVXNlT0MiOmNhc2UiVXNlQXR0YWNobWVudHMiOnQ9ZS5uYW1lfXJldHVybiBzaGFkb3codGhpcywicGFnZU1vZGUiLHQpfWdldCB2aWV3ZXJQcmVmZXJlbmNlcygpe2NvbnN0IGU9dGhpcy4jdmUuZ2V0KCJWaWV3ZXJQcmVmZXJlbmNlcyIpO2lmKCEoZSBpbnN0YW5jZW9mIERpY3QpKXJldHVybiBzaGFkb3codGhpcywidmlld2VyUHJlZmVyZW5jZXMiLG51bGwpO2xldCB0PW51bGw7Zm9yKGNvbnN0W24sYV1vZiBlKXtsZXQgZTtzd2l0Y2gobil7Y2FzZSJIaWRlVG9vbGJhciI6Y2FzZSJIaWRlTWVudWJhciI6Y2FzZSJIaWRlV2luZG93VUkiOmNhc2UiRml0V2luZG93IjpjYXNlIkNlbnRlcldpbmRvdyI6Y2FzZSJEaXNwbGF5RG9jVGl0bGUiOmNhc2UiUGlja1RyYXlCeVBERlNpemUiOiJib29sZWFuIj09dHlwZW9mIGEmJihlPWEpO2JyZWFrO2Nhc2UiTm9uRnVsbFNjcmVlblBhZ2VNb2RlIjppZihhIGluc3RhbmNlb2YgTmFtZSlzd2l0Y2goYS5uYW1lKXtjYXNlIlVzZU5vbmUiOmNhc2UiVXNlT3V0bGluZXMiOmNhc2UiVXNlVGh1bWJzIjpjYXNlIlVzZU9DIjplPWEubmFtZTticmVhaztkZWZhdWx0OmU9IlVzZU5vbmUifWJyZWFrO2Nhc2UiRGlyZWN0aW9uIjppZihhIGluc3RhbmNlb2YgTmFtZSlzd2l0Y2goYS5uYW1lKXtjYXNlIkwyUiI6Y2FzZSJSMkwiOmU9YS5uYW1lO2JyZWFrO2RlZmF1bHQ6ZT0iTDJSIn1icmVhaztjYXNlIlZpZXdBcmVhIjpjYXNlIlZpZXdDbGlwIjpjYXNlIlByaW50QXJlYSI6Y2FzZSJQcmludENsaXAiOmlmKGEgaW5zdGFuY2VvZiBOYW1lKXN3aXRjaChhLm5hbWUpe2Nhc2UiTWVkaWFCb3giOmNhc2UiQ3JvcEJveCI6Y2FzZSJCbGVlZEJveCI6Y2FzZSJUcmltQm94IjpjYXNlIkFydEJveCI6ZT1hLm5hbWU7YnJlYWs7ZGVmYXVsdDplPSJDcm9wQm94In1icmVhaztjYXNlIlByaW50U2NhbGluZyI6aWYoYSBpbnN0YW5jZW9mIE5hbWUpc3dpdGNoKGEubmFtZSl7Y2FzZSJOb25lIjpjYXNlIkFwcERlZmF1bHQiOmU9YS5uYW1lO2JyZWFrO2RlZmF1bHQ6ZT0iQXBwRGVmYXVsdCJ9YnJlYWs7Y2FzZSJEdXBsZXgiOmlmKGEgaW5zdGFuY2VvZiBOYW1lKXN3aXRjaChhLm5hbWUpe2Nhc2UiU2ltcGxleCI6Y2FzZSJEdXBsZXhGbGlwU2hvcnRFZGdlIjpjYXNlIkR1cGxleEZsaXBMb25nRWRnZSI6ZT1hLm5hbWU7YnJlYWs7ZGVmYXVsdDplPSJOb25lIn1icmVhaztjYXNlIlByaW50UGFnZVJhbmdlIjppZihBcnJheS5pc0FycmF5KGEpJiZhLmxlbmd0aCUyPT0wKXthLmV2ZXJ5KChlLHQsbik9Pk51bWJlci5pc0ludGVnZXIoZSkmJmU+MCYmKDA9PT10fHxlPj1uW3QtMV0pJiZlPD10aGlzLm51bVBhZ2VzKSYmKGU9YSl9YnJlYWs7Y2FzZSJOdW1Db3BpZXMiOk51bWJlci5pc0ludGVnZXIoYSkmJmE+MCYmKGU9YSk7YnJlYWs7ZGVmYXVsdDp3YXJuKGBJZ25vcmluZyBub24tc3RhbmRhcmQga2V5IGluIFZpZXdlclByZWZlcmVuY2VzOiAke259LmApO2NvbnRpbnVlfWlmKHZvaWQgMCE9PWUpe3Q/Pz1PYmplY3QuY3JlYXRlKG51bGwpO3Rbbl09ZX1lbHNlIHdhcm4oYEJhZCB2YWx1ZSwgZm9yIGtleSAiJHtufSIsIGluIFZpZXdlclByZWZlcmVuY2VzOiAke2F9LmApfXJldHVybiBzaGFkb3codGhpcywidmlld2VyUHJlZmVyZW5jZXMiLHQpfWdldCBvcGVuQWN0aW9uKCl7Y29uc3QgZT10aGlzLiN2ZS5nZXQoIk9wZW5BY3Rpb24iKSx0PU9iamVjdC5jcmVhdGUobnVsbCk7aWYoZSBpbnN0YW5jZW9mIERpY3Qpe2NvbnN0IG49bmV3IERpY3QodGhpcy54cmVmKTtuLnNldCgiQSIsZSk7Y29uc3QgYT17dXJsOm51bGwsZGVzdDpudWxsLGFjdGlvbjpudWxsfTtDYXRhbG9nLnBhcnNlRGVzdERpY3Rpb25hcnkoe2Rlc3REaWN0Om4scmVzdWx0T2JqOmF9KTtBcnJheS5pc0FycmF5KGEuZGVzdCk/dC5kZXN0PWEuZGVzdDphLmFjdGlvbiYmKHQuYWN0aW9uPWEuYWN0aW9uKX1lbHNlIExzKGUpJiYodC5kZXN0PWUpO3JldHVybiBzaGFkb3codGhpcywib3BlbkFjdGlvbiIsb2JqZWN0U2l6ZSh0KT4wP3Q6bnVsbCl9Z2V0IGF0dGFjaG1lbnRzKCl7Y29uc3QgZT10aGlzLiN2ZS5nZXQoIk5hbWVzIik7bGV0IHQ9bnVsbDtpZihlIGluc3RhbmNlb2YgRGljdCYmZS5oYXMoIkVtYmVkZGVkRmlsZXMiKSl7Y29uc3Qgbj1uZXcgTmFtZVRyZWUoZS5nZXRSYXcoIkVtYmVkZGVkRmlsZXMiKSx0aGlzLnhyZWYpO2Zvcihjb25zdFtlLGFdb2Ygbi5nZXRBbGwoKSl7Y29uc3Qgbj1uZXcgRmlsZVNwZWMoYSk7dD8/PU9iamVjdC5jcmVhdGUobnVsbCk7dFtzdHJpbmdUb1BERlN0cmluZyhlLCEwKV09bi5zZXJpYWxpemFibGV9fXJldHVybiBzaGFkb3codGhpcywiYXR0YWNobWVudHMiLHQpfWdldCB4ZmFJbWFnZXMoKXtjb25zdCBlPXRoaXMuI3ZlLmdldCgiTmFtZXMiKTtsZXQgdD1udWxsO2lmKGUgaW5zdGFuY2VvZiBEaWN0JiZlLmhhcygiWEZBSW1hZ2VzIikpe2NvbnN0IG49bmV3IE5hbWVUcmVlKGUuZ2V0UmF3KCJYRkFJbWFnZXMiKSx0aGlzLnhyZWYpO2Zvcihjb25zdFtlLGFdb2Ygbi5nZXRBbGwoKSlpZihhIGluc3RhbmNlb2YgQmFzZVN0cmVhbSl7dD8/PW5ldyBNYXA7dC5zZXQoc3RyaW5nVG9QREZTdHJpbmcoZSwhMCksYS5nZXRCeXRlcygpKX19cmV0dXJuIHNoYWRvdyh0aGlzLCJ4ZmFJbWFnZXMiLHQpfSNSZSgpe2NvbnN0IGU9dGhpcy4jdmUuZ2V0KCJOYW1lcyIpO2xldCB0PW51bGw7ZnVuY3Rpb24gYXBwZW5kSWZKYXZhU2NyaXB0RGljdChlLG4pe2lmKCEobiBpbnN0YW5jZW9mIERpY3QpKXJldHVybjtpZighaXNOYW1lKG4uZ2V0KCJTIiksIkphdmFTY3JpcHQiKSlyZXR1cm47bGV0IGE9bi5nZXQoIkpTIik7aWYoYSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0pYT1hLmdldFN0cmluZygpO2Vsc2UgaWYoInN0cmluZyIhPXR5cGVvZiBhKXJldHVybjthPXN0cmluZ1RvUERGU3RyaW5nKGEsITApLnJlcGxhY2VBbGwoIlwwIiwiIik7YSYmKHR8fD1uZXcgTWFwKS5zZXQoZSxhKX1pZihlIGluc3RhbmNlb2YgRGljdCYmZS5oYXMoIkphdmFTY3JpcHQiKSl7Y29uc3QgdD1uZXcgTmFtZVRyZWUoZS5nZXRSYXcoIkphdmFTY3JpcHQiKSx0aGlzLnhyZWYpO2Zvcihjb25zdFtlLG5db2YgdC5nZXRBbGwoKSlhcHBlbmRJZkphdmFTY3JpcHREaWN0KHN0cmluZ1RvUERGU3RyaW5nKGUsITApLG4pfWNvbnN0IG49dGhpcy4jdmUuZ2V0KCJPcGVuQWN0aW9uIik7biYmYXBwZW5kSWZKYXZhU2NyaXB0RGljdCgiT3BlbkFjdGlvbiIsbik7cmV0dXJuIHR9Z2V0IGpzQWN0aW9ucygpe2NvbnN0IGU9dGhpcy4jUmUoKTtsZXQgdD1jb2xsZWN0QWN0aW9ucyh0aGlzLnhyZWYsdGhpcy4jdmUsbGUpO2lmKGUpe3R8fD1PYmplY3QuY3JlYXRlKG51bGwpO2Zvcihjb25zdFtuLGFdb2YgZSluIGluIHQ/dFtuXS5wdXNoKGEpOnRbbl09W2FdfXJldHVybiBzaGFkb3codGhpcywianNBY3Rpb25zIix0KX1hc3luYyBjbGVhbnVwKGU9ITEpe2NsZWFyR2xvYmFsQ2FjaGVzKCk7dGhpcy5nbG9iYWxDb2xvclNwYWNlQ2FjaGUuY2xlYXIoKTt0aGlzLmdsb2JhbEltYWdlQ2FjaGUuY2xlYXIoZSk7dGhpcy5wYWdlS2lkc0NvdW50Q2FjaGUuY2xlYXIoKTt0aGlzLnBhZ2VJbmRleENhY2hlLmNsZWFyKCk7dGhpcy5wYWdlRGljdENhY2hlLmNsZWFyKCk7dGhpcy5ub25CbGVuZE1vZGVzU2V0LmNsZWFyKCk7Zm9yKGNvbnN0e2RpY3Q6ZX1vZiBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLmZvbnRDYWNoZSkpZGVsZXRlIGUuY2FjaGVLZXk7dGhpcy5mb250Q2FjaGUuY2xlYXIoKTt0aGlzLmJ1aWx0SW5DTWFwQ2FjaGUuY2xlYXIoKTt0aGlzLnN0YW5kYXJkRm9udERhdGFDYWNoZS5jbGVhcigpO3RoaXMuc3lzdGVtRm9udENhY2hlLmNsZWFyKCl9YXN5bmMgZ2V0UGFnZURpY3QoZSl7Y29uc3QgdD1bdGhpcy50b3BsZXZlbFBhZ2VzRGljdF0sbj1uZXcgUmVmU2V0LGE9dGhpcy4jdmUuZ2V0UmF3KCJQYWdlcyIpO2EgaW5zdGFuY2VvZiBSZWYmJm4ucHV0KGEpO2NvbnN0IHI9dGhpcy54cmVmLHM9dGhpcy5wYWdlS2lkc0NvdW50Q2FjaGUsaT10aGlzLnBhZ2VJbmRleENhY2hlLG89dGhpcy5wYWdlRGljdENhY2hlO2xldCBsPTA7Zm9yKDt0Lmxlbmd0aDspe2NvbnN0IGE9dC5wb3AoKTtpZihhIGluc3RhbmNlb2YgUmVmKXtjb25zdCBmPXMuZ2V0KGEpO2lmKGY+PTAmJmwrZjw9ZSl7bCs9Zjtjb250aW51ZX1pZihuLmhhcyhhKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIlBhZ2VzIHRyZWUgY29udGFpbnMgY2lyY3VsYXIgcmVmZXJlbmNlLiIpO24ucHV0KGEpO2NvbnN0IGM9YXdhaXQoby5nZXQoYSl8fHIuZmV0Y2hBc3luYyhhKSk7aWYoYyBpbnN0YW5jZW9mIERpY3Qpe2xldCB0PWMuZ2V0UmF3KCJUeXBlIik7dCBpbnN0YW5jZW9mIFJlZiYmKHQ9YXdhaXQgci5mZXRjaEFzeW5jKHQpKTtpZihpc05hbWUodCwiUGFnZSIpfHwhYy5oYXMoIktpZHMiKSl7cy5oYXMoYSl8fHMucHV0KGEsMSk7aS5oYXMoYSl8fGkucHV0KGEsbCk7aWYobD09PWUpcmV0dXJuW2MsYV07bCsrO2NvbnRpbnVlfX10LnB1c2goYyk7Y29udGludWV9aWYoIShhIGluc3RhbmNlb2YgRGljdCkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJQYWdlIGRpY3Rpb25hcnkga2lkIHJlZmVyZW5jZSBwb2ludHMgdG8gd3JvbmcgdHlwZSBvZiBvYmplY3QuIik7Y29uc3R7b2JqSWQ6Zn09YTtsZXQgYz1hLmdldFJhdygiQ291bnQiKTtjIGluc3RhbmNlb2YgUmVmJiYoYz1hd2FpdCByLmZldGNoQXN5bmMoYykpO2lmKE51bWJlci5pc0ludGVnZXIoYykmJmM+PTApe2YmJiFzLmhhcyhmKSYmcy5wdXQoZixjKTtpZihsK2M8PWUpe2wrPWM7Y29udGludWV9fWxldCBoPWEuZ2V0UmF3KCJLaWRzIik7aCBpbnN0YW5jZW9mIFJlZiYmKGg9YXdhaXQgci5mZXRjaEFzeW5jKGgpKTtpZighQXJyYXkuaXNBcnJheShoKSl7bGV0IHQ9YS5nZXRSYXcoIlR5cGUiKTt0IGluc3RhbmNlb2YgUmVmJiYodD1hd2FpdCByLmZldGNoQXN5bmModCkpO2lmKGlzTmFtZSh0LCJQYWdlIil8fCFhLmhhcygiS2lkcyIpKXtpZihsPT09ZSlyZXR1cm5bYSxudWxsXTtsKys7Y29udGludWV9dGhyb3cgbmV3IEZvcm1hdEVycm9yKCJQYWdlIGRpY3Rpb25hcnkga2lkcyBvYmplY3QgaXMgbm90IGFuIGFycmF5LiIpfWZvcihsZXQgZT1oLmxlbmd0aC0xO2U+PTA7ZS0tKXtjb25zdCBuPWhbZV07dC5wdXNoKG4pO2E9PT10aGlzLnRvcGxldmVsUGFnZXNEaWN0JiZuIGluc3RhbmNlb2YgUmVmJiYhby5oYXMobikmJm8ucHV0KG4sci5mZXRjaEFzeW5jKG4pKX19dGhyb3cgbmV3IEVycm9yKGBQYWdlIGluZGV4ICR7ZX0gbm90IGZvdW5kLmApfWFzeW5jIGdldEFsbFBhZ2VEaWN0cyhlPSExKXtjb25zdHtpZ25vcmVFcnJvcnM6dH09dGhpcy5wZGZNYW5hZ2VyLmV2YWx1YXRvck9wdGlvbnMsbj1be2N1cnJlbnROb2RlOnRoaXMudG9wbGV2ZWxQYWdlc0RpY3QscG9zSW5LaWRzOjB9XSxhPW5ldyBSZWZTZXQscj10aGlzLiN2ZS5nZXRSYXcoIlBhZ2VzIik7ciBpbnN0YW5jZW9mIFJlZiYmYS5wdXQocik7Y29uc3Qgcz1uZXcgTWFwLGk9dGhpcy54cmVmLG89dGhpcy5wYWdlSW5kZXhDYWNoZTtsZXQgbD0wO2Z1bmN0aW9uIGFkZFBhZ2VEaWN0KGUsdCl7dCYmIW8uaGFzKHQpJiZvLnB1dCh0LGwpO3Muc2V0KGwrKyxbZSx0XSl9ZnVuY3Rpb24gYWRkUGFnZUVycm9yKG4pe2lmKG4gaW5zdGFuY2VvZiBYUmVmRW50cnlFeGNlcHRpb24mJiFlKXRocm93IG47aWYoZSYmdCYmMD09PWwpe3dhcm4oYGdldEFsbFBhZ2VEaWN0cyAtIFNraXBwaW5nIGludmFsaWQgZmlyc3QgcGFnZTogIiR7bn0iLmApO249RGljdC5lbXB0eX1zLnNldChsKyssW24sbnVsbF0pfWZvcig7bi5sZW5ndGg+MDspe2NvbnN0IGU9bi5hdCgtMSkse2N1cnJlbnROb2RlOnQscG9zSW5LaWRzOnJ9PWU7bGV0IHM9dC5nZXRSYXcoIktpZHMiKTtpZihzIGluc3RhbmNlb2YgUmVmKXRyeXtzPWF3YWl0IGkuZmV0Y2hBc3luYyhzKX1jYXRjaChlKXthZGRQYWdlRXJyb3IoZSk7YnJlYWt9aWYoIUFycmF5LmlzQXJyYXkocykpe2FkZFBhZ2VFcnJvcihuZXcgRm9ybWF0RXJyb3IoIlBhZ2UgZGljdGlvbmFyeSBraWRzIG9iamVjdCBpcyBub3QgYW4gYXJyYXkuIikpO2JyZWFrfWlmKHI+PXMubGVuZ3RoKXtuLnBvcCgpO2NvbnRpbnVlfWNvbnN0IG89c1tyXTtsZXQgbDtpZihvIGluc3RhbmNlb2YgUmVmKXtpZihhLmhhcyhvKSl7YWRkUGFnZUVycm9yKG5ldyBGb3JtYXRFcnJvcigiUGFnZXMgdHJlZSBjb250YWlucyBjaXJjdWxhciByZWZlcmVuY2UuIikpO2JyZWFrfWEucHV0KG8pO3RyeXtsPWF3YWl0IGkuZmV0Y2hBc3luYyhvKX1jYXRjaChlKXthZGRQYWdlRXJyb3IoZSk7YnJlYWt9fWVsc2UgbD1vO2lmKCEobCBpbnN0YW5jZW9mIERpY3QpKXthZGRQYWdlRXJyb3IobmV3IEZvcm1hdEVycm9yKCJQYWdlIGRpY3Rpb25hcnkga2lkIHJlZmVyZW5jZSBwb2ludHMgdG8gd3JvbmcgdHlwZSBvZiBvYmplY3QuIikpO2JyZWFrfWxldCBmPWwuZ2V0UmF3KCJUeXBlIik7aWYoZiBpbnN0YW5jZW9mIFJlZil0cnl7Zj1hd2FpdCBpLmZldGNoQXN5bmMoZil9Y2F0Y2goZSl7YWRkUGFnZUVycm9yKGUpO2JyZWFrfWlzTmFtZShmLCJQYWdlIil8fCFsLmhhcygiS2lkcyIpP2FkZFBhZ2VEaWN0KGwsbyBpbnN0YW5jZW9mIFJlZj9vOm51bGwpOm4ucHVzaCh7Y3VycmVudE5vZGU6bCxwb3NJbktpZHM6MH0pO2UucG9zSW5LaWRzKyt9cmV0dXJuIHN9Z2V0UGFnZUluZGV4KGUpe2NvbnN0IHQ9dGhpcy5wYWdlSW5kZXhDYWNoZS5nZXQoZSk7aWYodm9pZCAwIT09dClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHQpO2NvbnN0IG49dGhpcy54cmVmO2xldCBhPTA7Y29uc3QgbmV4dD10PT5mdW5jdGlvbiBwYWdlc0JlZm9yZVJlZih0KXtsZXQgYSxyPTA7cmV0dXJuIG4uZmV0Y2hBc3luYyh0KS50aGVuKGZ1bmN0aW9uKG4pe2lmKGlzUmVmc0VxdWFsKHQsZSkmJiFpc0RpY3QobiwiUGFnZSIpJiYhKG4gaW5zdGFuY2VvZiBEaWN0JiYhbi5oYXMoIlR5cGUiKSYmbi5oYXMoIkNvbnRlbnRzIikpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiVGhlIHJlZmVyZW5jZSBkb2VzIG5vdCBwb2ludCB0byBhIC9QYWdlIGRpY3Rpb25hcnkuIik7aWYoIW4pcmV0dXJuIG51bGw7aWYoIShuIGluc3RhbmNlb2YgRGljdCkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJOb2RlIG11c3QgYmUgYSBkaWN0aW9uYXJ5LiIpO2E9bi5nZXRSYXcoIlBhcmVudCIpO3JldHVybiBuLmdldEFzeW5jKCJQYXJlbnQiKX0pLnRoZW4oZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuIG51bGw7aWYoIShlIGluc3RhbmNlb2YgRGljdCkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJQYXJlbnQgbXVzdCBiZSBhIGRpY3Rpb25hcnkuIik7cmV0dXJuIGUuZ2V0QXN5bmMoIktpZHMiKX0pLnRoZW4oZnVuY3Rpb24oZSl7aWYoIWUpcmV0dXJuIG51bGw7Y29uc3Qgcz1bXTtsZXQgaT0hMTtmb3IoY29uc3QgYSBvZiBlKXtpZighKGEgaW5zdGFuY2VvZiBSZWYpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiS2lkIG11c3QgYmUgYSByZWZlcmVuY2UuIik7aWYoaXNSZWZzRXF1YWwoYSx0KSl7aT0hMDticmVha31zLnB1c2gobi5mZXRjaEFzeW5jKGEpLnRoZW4oZnVuY3Rpb24oZSl7aWYoIShlIGluc3RhbmNlb2YgRGljdCkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJLaWQgbm9kZSBtdXN0IGJlIGEgZGljdGlvbmFyeS4iKTtlLmhhcygiQ291bnQiKT9yKz1lLmdldCgiQ291bnQiKTpyKyt9KSl9aWYoIWkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJLaWQgcmVmZXJlbmNlIG5vdCBmb3VuZCBpbiBwYXJlbnQncyBraWRzLiIpO3JldHVybiBQcm9taXNlLmFsbChzKS50aGVuKCgpPT5bcixhXSl9KX0odCkudGhlbih0PT57aWYoIXQpe3RoaXMucGFnZUluZGV4Q2FjaGUucHV0KGUsYSk7cmV0dXJuIGF9Y29uc3RbbixyXT10O2ErPW47cmV0dXJuIG5leHQocil9KTtyZXR1cm4gbmV4dChlKX1nZXQgYmFzZVVybCgpe2NvbnN0IGU9dGhpcy4jdmUuZ2V0KCJVUkkiKTtpZihlIGluc3RhbmNlb2YgRGljdCl7Y29uc3QgdD1lLmdldCgiQmFzZSIpO2lmKCJzdHJpbmciPT10eXBlb2YgdCl7Y29uc3QgZT1jcmVhdGVWYWxpZEFic29sdXRlVXJsKHQsbnVsbCx7dHJ5Q29udmVydEVuY29kaW5nOiEwfSk7aWYoZSlyZXR1cm4gc2hhZG93KHRoaXMsImJhc2VVcmwiLGUuaHJlZil9fXJldHVybiBzaGFkb3codGhpcywiYmFzZVVybCIsdGhpcy5wZGZNYW5hZ2VyLmRvY0Jhc2VVcmwpfXN0YXRpYyBwYXJzZURlc3REaWN0aW9uYXJ5KHtkZXN0RGljdDplLHJlc3VsdE9iajp0LGRvY0Jhc2VVcmw6bj1udWxsLGRvY0F0dGFjaG1lbnRzOmE9bnVsbH0pe2lmKCEoZSBpbnN0YW5jZW9mIERpY3QpKXt3YXJuKCJwYXJzZURlc3REaWN0aW9uYXJ5OiBgZGVzdERpY3RgIG11c3QgYmUgYSBkaWN0aW9uYXJ5LiIpO3JldHVybn1sZXQgcixzLGk9ZS5nZXQoIkEiKTtpZighKGkgaW5zdGFuY2VvZiBEaWN0KSlpZihlLmhhcygiRGVzdCIpKWk9ZS5nZXQoIkRlc3QiKTtlbHNle2k9ZS5nZXQoIkFBIik7aSBpbnN0YW5jZW9mIERpY3QmJihpLmhhcygiRCIpP2k9aS5nZXQoIkQiKTppLmhhcygiVSIpJiYoaT1pLmdldCgiVSIpKSl9aWYoaSBpbnN0YW5jZW9mIERpY3Qpe2NvbnN0IGU9aS5nZXQoIlMiKTtpZighKGUgaW5zdGFuY2VvZiBOYW1lKSl7d2FybigicGFyc2VEZXN0RGljdGlvbmFyeTogSW52YWxpZCB0eXBlIGluIEFjdGlvbiBkaWN0aW9uYXJ5LiIpO3JldHVybn1jb25zdCBuPWUubmFtZTtzd2l0Y2gobil7Y2FzZSJSZXNldEZvcm0iOmNvbnN0IGU9aS5nZXQoIkZsYWdzIiksbz0hKDEmKCJudW1iZXIiPT10eXBlb2YgZT9lOjApKSxsPVtdLGY9W107Zm9yKGNvbnN0IGUgb2YgaS5nZXQoIkZpZWxkcyIpfHxbXSllIGluc3RhbmNlb2YgUmVmP2YucHVzaChlLnRvU3RyaW5nKCkpOiJzdHJpbmciPT10eXBlb2YgZSYmbC5wdXNoKHN0cmluZ1RvUERGU3RyaW5nKGUpKTt0LnJlc2V0Rm9ybT17ZmllbGRzOmwscmVmczpmLGluY2x1ZGU6b307YnJlYWs7Y2FzZSJVUkkiOnI9aS5nZXQoIlVSSSIpO3IgaW5zdGFuY2VvZiBOYW1lJiYocj0iLyIrci5uYW1lKTticmVhaztjYXNlIkdvVG8iOnM9aS5nZXQoIkQiKTticmVhaztjYXNlIkxhdW5jaCI6Y2FzZSJHb1RvUiI6Y29uc3QgYz1pLmdldCgiRiIpO2lmKGMgaW5zdGFuY2VvZiBEaWN0KXtjb25zdCBlPW5ldyBGaWxlU3BlYyhjLCEwKTsoe3Jhd0ZpbGVuYW1lOnJ9PWUuc2VyaWFsaXphYmxlKX1lbHNle2lmKCJzdHJpbmciIT10eXBlb2YgYylicmVhaztyPWN9Y29uc3QgaD1mZXRjaFJlbW90ZURlc3QoaSk7aCYmKHI9ci5zcGxpdCgiIyIsMSlbMF0rIiMiK2gpO2NvbnN0IHU9aS5nZXQoIk5ld1dpbmRvdyIpOyJib29sZWFuIj09dHlwZW9mIHUmJih0Lm5ld1dpbmRvdz11KTticmVhaztjYXNlIkdvVG9FIjpjb25zdCBtPWkuZ2V0KCJUIik7bGV0IHA7aWYoYSYmbSBpbnN0YW5jZW9mIERpY3Qpe2NvbnN0IGU9bS5nZXQoIlIiKSx0PW0uZ2V0KCJOIik7aXNOYW1lKGUsIkMiKSYmInN0cmluZyI9PXR5cGVvZiB0JiYocD1hW3N0cmluZ1RvUERGU3RyaW5nKHQsITApXSl9aWYocCl7dC5hdHRhY2htZW50PXA7Y29uc3QgZT1mZXRjaFJlbW90ZURlc3QoaSk7ZSYmKHQuYXR0YWNobWVudERlc3Q9ZSl9ZWxzZSB3YXJuKCdwYXJzZURlc3REaWN0aW9uYXJ5IC0gdW5pbXBsZW1lbnRlZCAiR29Ub0UiIGFjdGlvbi4nKTticmVhaztjYXNlIk5hbWVkIjpjb25zdCBkPWkuZ2V0KCJOIik7ZCBpbnN0YW5jZW9mIE5hbWUmJih0LmFjdGlvbj1kLm5hbWUpO2JyZWFrO2Nhc2UiU2V0T0NHU3RhdGUiOmNvbnN0IGc9aS5nZXQoIlN0YXRlIiksYj1pLmdldCgiUHJlc2VydmVSQiIpO2lmKCFBcnJheS5pc0FycmF5KGcpfHwwPT09Zy5sZW5ndGgpYnJlYWs7Y29uc3Qgdz1bXTtmb3IoY29uc3QgZSBvZiBnKWlmKGUgaW5zdGFuY2VvZiBOYW1lKXN3aXRjaChlLm5hbWUpe2Nhc2UiT04iOmNhc2UiT0ZGIjpjYXNlIlRvZ2dsZSI6dy5wdXNoKGUubmFtZSl9ZWxzZSBlIGluc3RhbmNlb2YgUmVmJiZ3LnB1c2goZS50b1N0cmluZygpKTtpZih3Lmxlbmd0aCE9PWcubGVuZ3RoKWJyZWFrO3Quc2V0T0NHU3RhdGU9e3N0YXRlOncscHJlc2VydmVSQjoiYm9vbGVhbiIhPXR5cGVvZiBifHxifTticmVhaztjYXNlIkphdmFTY3JpcHQiOmNvbnN0IGo9aS5nZXQoIkpTIik7bGV0IGs7aiBpbnN0YW5jZW9mIEJhc2VTdHJlYW0/az1qLmdldFN0cmluZygpOiJzdHJpbmciPT10eXBlb2YgaiYmKGs9aik7Y29uc3QgeT1rJiZyZWNvdmVySnNVUkwoc3RyaW5nVG9QREZTdHJpbmcoaywhMCkpO2lmKHkpe3I9eS51cmw7dC5uZXdXaW5kb3c9eS5uZXdXaW5kb3c7YnJlYWt9ZGVmYXVsdDppZigiSmF2YVNjcmlwdCI9PT1ufHwiU3VibWl0Rm9ybSI9PT1uKWJyZWFrO3dhcm4oYHBhcnNlRGVzdERpY3Rpb25hcnkgLSB1bnN1cHBvcnRlZCBhY3Rpb246ICIke259Ii5gKX19ZWxzZSBlLmhhcygiRGVzdCIpJiYocz1lLmdldCgiRGVzdCIpKTtpZigic3RyaW5nIj09dHlwZW9mIHIpe2NvbnN0IGU9Y3JlYXRlVmFsaWRBYnNvbHV0ZVVybChyLG4se2FkZERlZmF1bHRQcm90b2NvbDohMCx0cnlDb252ZXJ0RW5jb2Rpbmc6ITB9KTtlJiYodC51cmw9ZS5ocmVmKTt0LnVuc2FmZVVybD1yfWlmKHMpe3MgaW5zdGFuY2VvZiBOYW1lJiYocz1zLm5hbWUpOyJzdHJpbmciPT10eXBlb2Ygcz90LmRlc3Q9c3RyaW5nVG9QREZTdHJpbmcocywhMCk6THMocykmJih0LmRlc3Q9cyl9fX1mdW5jdGlvbiBtYXlIYXZlQ2hpbGRyZW4oZSl7cmV0dXJuIGUgaW5zdGFuY2VvZiBSZWZ8fGUgaW5zdGFuY2VvZiBEaWN0fHxlIGluc3RhbmNlb2YgQmFzZVN0cmVhbXx8QXJyYXkuaXNBcnJheShlKX1mdW5jdGlvbiBhZGRDaGlsZHJlbihlLHQpe2lmKGUgaW5zdGFuY2VvZiBEaWN0KWU9ZS5nZXRSYXdWYWx1ZXMoKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBCYXNlU3RyZWFtKWU9ZS5kaWN0LmdldFJhd1ZhbHVlcygpO2Vsc2UgaWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuO2Zvcihjb25zdCBuIG9mIGUpbWF5SGF2ZUNoaWxkcmVuKG4pJiZ0LnB1c2gobil9Y2xhc3MgT2JqZWN0TG9hZGVye3JlZlNldD1uZXcgUmVmU2V0O2NvbnN0cnVjdG9yKGUsdCxuKXt0aGlzLmRpY3Q9ZTt0aGlzLmtleXM9dDt0aGlzLnhyZWY9bn1hc3luYyBsb2FkKCl7Y29uc3R7a2V5czplLGRpY3Q6dH09dGhpcyxuPVtdO2Zvcihjb25zdCBhIG9mIGUpe2NvbnN0IGU9dC5nZXRSYXcoYSk7dm9pZCAwIT09ZSYmbi5wdXNoKGUpfWF3YWl0IHRoaXMuI0JlKG4pO3RoaXMucmVmU2V0PW51bGx9YXN5bmMjQmUoZSl7Y29uc3QgdD1bXSxuPVtdO2Zvcig7ZS5sZW5ndGg7KXtsZXQgYT1lLnBvcCgpO2lmKGEgaW5zdGFuY2VvZiBSZWYpe2lmKHRoaXMucmVmU2V0LmhhcyhhKSljb250aW51ZTt0cnl7dGhpcy5yZWZTZXQucHV0KGEpO2E9dGhpcy54cmVmLmZldGNoKGEpfWNhdGNoKGUpe2lmKCEoZSBpbnN0YW5jZW9mIE1pc3NpbmdEYXRhRXhjZXB0aW9uKSl7d2FybihgT2JqZWN0TG9hZGVyLiN3YWxrIC0gcmVxdWVzdGluZyBhbGwgZGF0YTogIiR7ZX0iLmApO2F3YWl0IHRoaXMueHJlZi5zdHJlYW0ubWFuYWdlci5yZXF1ZXN0QWxsQ2h1bmtzKCk7cmV0dXJufXQucHVzaChhKTtuLnB1c2goe2JlZ2luOmUuYmVnaW4sZW5kOmUuZW5kfSl9fWlmKGEgaW5zdGFuY2VvZiBCYXNlU3RyZWFtKXtjb25zdCBlPWEuZ2V0QmFzZVN0cmVhbXMoKTtpZihlKXtsZXQgcj0hMTtmb3IoY29uc3QgdCBvZiBlKWlmKCF0LmlzRGF0YUxvYWRlZCl7cj0hMDtuLnB1c2goe2JlZ2luOnQuc3RhcnQsZW5kOnQuZW5kfSl9ciYmdC5wdXNoKGEpfX1hZGRDaGlsZHJlbihhLGUpfWlmKG4ubGVuZ3RoKXthd2FpdCB0aGlzLnhyZWYuc3RyZWFtLm1hbmFnZXIucmVxdWVzdFJhbmdlcyhuKTtmb3IoY29uc3QgZSBvZiB0KWUgaW5zdGFuY2VvZiBSZWYmJnRoaXMucmVmU2V0LnJlbW92ZShlKTthd2FpdCB0aGlzLiNCZSh0KX19c3RhdGljIGFzeW5jIGxvYWQoZSx0LG4pe2lmKG4uc3RyZWFtLmlzRGF0YUxvYWRlZClyZXR1cm47Y29uc3QgYT1uZXcgT2JqZWN0TG9hZGVyKGUsdCxuKTthd2FpdCBhLmxvYWQoKX19Y29uc3QgVXM9U3ltYm9sKCksWHM9U3ltYm9sKCksV3M9U3ltYm9sKCksS3M9U3ltYm9sKCksVnM9U3ltYm9sKCksR3M9U3ltYm9sKCksJHM9U3ltYm9sKCksWXM9U3ltYm9sKCksSnM9U3ltYm9sKCksUXM9U3ltYm9sKCJjb250ZW50IiksWnM9U3ltYm9sKCJkYXRhIiksZWk9U3ltYm9sKCksdGk9U3ltYm9sKCJleHRyYSIpLG5pPVN5bWJvbCgpLGFpPVN5bWJvbCgpLHJpPVN5bWJvbCgpLHNpPVN5bWJvbCgpLGlpPVN5bWJvbCgpLG9pPVN5bWJvbCgpLGxpPVN5bWJvbCgpLGZpPVN5bWJvbCgpLGNpPVN5bWJvbCgpLGhpPVN5bWJvbCgpLHVpPVN5bWJvbCgpLG1pPVN5bWJvbCgpLHBpPVN5bWJvbCgpLGRpPVN5bWJvbCgpLGdpPVN5bWJvbCgpLGJpPVN5bWJvbCgpLHdpPVN5bWJvbCgpLGppPVN5bWJvbCgpLGtpPVN5bWJvbCgpLHlpPVN5bWJvbCgpLHFpPVN5bWJvbCgpLHZpPVN5bWJvbCgpLFNpPVN5bWJvbCgpLHhpPVN5bWJvbCgpLEFpPVN5bWJvbCgpLENpPVN5bWJvbCgpLElpPVN5bWJvbCgpLEZpPVN5bWJvbCgpLFRpPVN5bWJvbCgpLE9pPVN5bWJvbCgpLFJpPVN5bWJvbCgpLEJpPVN5bWJvbCgpLEhpPVN5bWJvbCgibmFtZXNwYWNlSWQiKSxEaT1TeW1ib2woIm5vZGVOYW1lIiksTWk9U3ltYm9sKCksUGk9U3ltYm9sKCksRWk9U3ltYm9sKCksTmk9U3ltYm9sKCksemk9U3ltYm9sKCksX2k9U3ltYm9sKCksWGk9U3ltYm9sKCksV2k9U3ltYm9sKCksS2k9U3ltYm9sKCJyb290IiksVmk9U3ltYm9sKCksR2k9U3ltYm9sKCksJGk9U3ltYm9sKCksWWk9U3ltYm9sKCksSmk9U3ltYm9sKCksUWk9U3ltYm9sKCksWmk9U3ltYm9sKCksZW89U3ltYm9sKCksdG89U3ltYm9sKCksbm89U3ltYm9sKCksYW89U3ltYm9sKCkscm89U3ltYm9sKCJ1aWQiKTtfX3dlYnBhY2tfcmVxdWlyZV9fKDUzMSksX193ZWJwYWNrX3JlcXVpcmVfXyg1MjEzKTtjb25zdCBzbz1TeW1ib2woKSxpbz17Y29uZmlnOntpZDowLGNoZWNrOmU9PmUuc3RhcnRzV2l0aCgiaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94Y2kvIil9LGNvbm5lY3Rpb25TZXQ6e2lkOjEsY2hlY2s6ZT0+ZS5zdGFydHNXaXRoKCJodHRwOi8vd3d3LnhmYS5vcmcvc2NoZW1hL3hmYS1jb25uZWN0aW9uLXNldC8iKX0sZGF0YXNldHM6e2lkOjIsY2hlY2s6ZT0+ZS5zdGFydHNXaXRoKCJodHRwOi8vd3d3LnhmYS5vcmcvc2NoZW1hL3hmYS1kYXRhLyIpfSxmb3JtOntpZDozLGNoZWNrOmU9PmUuc3RhcnRzV2l0aCgiaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtZm9ybS8iKX0sbG9jYWxlU2V0OntpZDo0LGNoZWNrOmU9PmUuc3RhcnRzV2l0aCgiaHR0cDovL3d3dy54ZmEub3JnL3NjaGVtYS94ZmEtbG9jYWxlLXNldC8iKX0scGRmOntpZDo1LGNoZWNrOmU9PiJodHRwOi8vbnMuYWRvYmUuY29tL3hkcC9wZGYvIj09PWV9LHNpZ25hdHVyZTp7aWQ6NixjaGVjazplPT4iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI9PT1lfSxzb3VyY2VTZXQ6e2lkOjcsY2hlY2s6ZT0+ZS5zdGFydHNXaXRoKCJodHRwOi8vd3d3LnhmYS5vcmcvc2NoZW1hL3hmYS1zb3VyY2Utc2V0LyIpfSxzdHlsZXNoZWV0OntpZDo4LGNoZWNrOmU9PiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hTTC9UcmFuc2Zvcm0iPT09ZX0sdGVtcGxhdGU6e2lkOjksY2hlY2s6ZT0+ZS5zdGFydHNXaXRoKCJodHRwOi8vd3d3LnhmYS5vcmcvc2NoZW1hL3hmYS10ZW1wbGF0ZS8iKX0seGRjOntpZDoxMCxjaGVjazplPT5lLnN0YXJ0c1dpdGgoImh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGRjLyIpfSx4ZHA6e2lkOjExLGNoZWNrOmU9PiJodHRwOi8vbnMuYWRvYmUuY29tL3hkcC8iPT09ZX0seGZkZjp7aWQ6MTIsY2hlY2s6ZT0+Imh0dHA6Ly9ucy5hZG9iZS5jb20veGZkZi8iPT09ZX0seGh0bWw6e2lkOjEzLGNoZWNrOmU9PiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj09PWV9LHhtcG1ldGE6e2lkOjE0LGNoZWNrOmU9PiJodHRwOi8vbnMuYWRvYmUuY29tL3htcG1ldGEvIj09PWV9fSxvbz17cHQ6ZT0+ZSxjbTplPT5lLzIuNTQqNzIsbW06ZT0+ZS8yNS40KjcyLGluOmU9PjcyKmUscHg6ZT0+ZX0sbG89LyhbKy1dP1xkK1wuP1xkKikoLiopLztmdW5jdGlvbiBzdHJpcFF1b3RlcyhlKXtyZXR1cm4gZS5zdGFydHNXaXRoKCInIil8fGUuc3RhcnRzV2l0aCgnIicpP2Uuc2xpY2UoMSwtMSk6ZX1mdW5jdGlvbiBnZXRJbnRlZ2VyKHtkYXRhOmUsZGVmYXVsdFZhbHVlOnQsdmFsaWRhdGU6bn0pe2lmKCFlKXJldHVybiB0O2U9ZS50cmltKCk7Y29uc3QgYT1wYXJzZUludChlLDEwKTtyZXR1cm4haXNOYU4oYSkmJm4oYSk/YTp0fWZ1bmN0aW9uIGdldEZsb2F0KHtkYXRhOmUsZGVmYXVsdFZhbHVlOnQsdmFsaWRhdGU6bn0pe2lmKCFlKXJldHVybiB0O2U9ZS50cmltKCk7Y29uc3QgYT1wYXJzZUZsb2F0KGUpO3JldHVybiFpc05hTihhKSYmbihhKT9hOnR9ZnVuY3Rpb24gZ2V0S2V5d29yZCh7ZGF0YTplLGRlZmF1bHRWYWx1ZTp0LHZhbGlkYXRlOm59KXtyZXR1cm4gZSYmbihlPWUudHJpbSgpKT9lOnR9ZnVuY3Rpb24gZ2V0U3RyaW5nT3B0aW9uKGUsdCl7cmV0dXJuIGdldEtleXdvcmQoe2RhdGE6ZSxkZWZhdWx0VmFsdWU6dFswXSx2YWxpZGF0ZTplPT50LmluY2x1ZGVzKGUpfSl9ZnVuY3Rpb24gZ2V0TWVhc3VyZW1lbnQoZSx0PSIwIil7dHx8PSIwIjtpZighZSlyZXR1cm4gZ2V0TWVhc3VyZW1lbnQodCk7Y29uc3Qgbj1lLnRyaW0oKS5tYXRjaChsbyk7aWYoIW4pcmV0dXJuIGdldE1lYXN1cmVtZW50KHQpO2NvbnN0WyxhLHJdPW4scz1wYXJzZUZsb2F0KGEpO2lmKGlzTmFOKHMpKXJldHVybiBnZXRNZWFzdXJlbWVudCh0KTtpZigwPT09cylyZXR1cm4gMDtjb25zdCBpPW9vW3JdO3JldHVybiBpP2kocyk6c31mdW5jdGlvbiBnZXRSYXRpbyhlKXtpZighZSlyZXR1cm57bnVtOjEsZGVuOjF9O2NvbnN0IHQ9ZS5zcGxpdCgiOiIsMikubWFwKGU9PnBhcnNlRmxvYXQoZS50cmltKCkpKS5maWx0ZXIoZT0+IWlzTmFOKGUpKTsxPT09dC5sZW5ndGgmJnQucHVzaCgxKTtpZigwPT09dC5sZW5ndGgpcmV0dXJue251bToxLGRlbjoxfTtjb25zdFtuLGFdPXQ7cmV0dXJue251bTpuLGRlbjphfX1mdW5jdGlvbiBnZXRSZWxldmFudChlKXtyZXR1cm4gZT9lLnRyaW0oKS5zcGxpdCgvXHMrLykubWFwKGU9Pih7ZXhjbHVkZWQ6Ii0iPT09ZVswXSx2aWV3bmFtZTplLnN1YnN0cmluZygxKX0pKTpbXX1jbGFzcyBIVE1MUmVzdWx0e3N0YXRpYyBnZXQgRkFJTFVSRSgpe3JldHVybiBzaGFkb3codGhpcywiRkFJTFVSRSIsbmV3IEhUTUxSZXN1bHQoITEsbnVsbCxudWxsLG51bGwpKX1zdGF0aWMgZ2V0IEVNUFRZKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJFTVBUWSIsbmV3IEhUTUxSZXN1bHQoITAsbnVsbCxudWxsLG51bGwpKX1jb25zdHJ1Y3RvcihlLHQsbixhKXt0aGlzLnN1Y2Nlc3M9ZTt0aGlzLmh0bWw9dDt0aGlzLmJib3g9bjt0aGlzLmJyZWFrTm9kZT1hfWlzQnJlYWsoKXtyZXR1cm4hIXRoaXMuYnJlYWtOb2RlfXN0YXRpYyBicmVha05vZGUoZSl7cmV0dXJuIG5ldyBIVE1MUmVzdWx0KCExLG51bGwsbnVsbCxlKX1zdGF0aWMgc3VjY2VzcyhlLHQ9bnVsbCl7cmV0dXJuIG5ldyBIVE1MUmVzdWx0KCEwLGUsdCxudWxsKX19Y2xhc3MgRm9udEZpbmRlcntjb25zdHJ1Y3RvcihlKXt0aGlzLmZvbnRzPW5ldyBNYXA7dGhpcy5jYWNoZT1uZXcgTWFwO3RoaXMud2FybmVkPW5ldyBTZXQ7dGhpcy5kZWZhdWx0Rm9udD1udWxsO3RoaXMuYWRkKGUpfWFkZChlLHQ9bnVsbCl7Zm9yKGNvbnN0IHQgb2YgZSl0aGlzLmFkZFBkZkZvbnQodCk7Zm9yKGNvbnN0IGUgb2YgdGhpcy5mb250cy52YWx1ZXMoKSllLnJlZ3VsYXJ8fChlLnJlZ3VsYXI9ZS5pdGFsaWN8fGUuYm9sZHx8ZS5ib2xkaXRhbGljKTtpZighdHx8MD09PXQuc2l6ZSlyZXR1cm47Y29uc3Qgbj10aGlzLmZvbnRzLmdldCgiUGRmSlMtRmFsbGJhY2stUGRmSlMtWEZBIik7Zm9yKGNvbnN0IGUgb2YgdCl0aGlzLmZvbnRzLnNldChlLG4pfWFkZFBkZkZvbnQoZSl7Y29uc3QgdD1lLmNzc0ZvbnRJbmZvLG49dC5mb250RmFtaWx5LGE9dGhpcy5mb250cy5nZXRPckluc2VydENvbXB1dGVkKG4sbWFrZU9iaik7dGhpcy5kZWZhdWx0Rm9udD8/PWE7bGV0IHI9IiI7Y29uc3Qgcz1wYXJzZUZsb2F0KHQuZm9udFdlaWdodCk7MCE9PXBhcnNlRmxvYXQodC5pdGFsaWNBbmdsZSk/cj1zPj03MDA/ImJvbGRpdGFsaWMiOiJpdGFsaWMiOnM+PTcwMCYmKHI9ImJvbGQiKTtpZighcil7KGUubmFtZS5pbmNsdWRlcygiQm9sZCIpfHxlLnBzTmFtZT8uaW5jbHVkZXMoIkJvbGQiKSkmJihyPSJib2xkIik7KGUubmFtZS5pbmNsdWRlcygiSXRhbGljIil8fGUubmFtZS5lbmRzV2l0aCgiSXQiKXx8ZS5wc05hbWU/LmluY2x1ZGVzKCJJdGFsaWMiKXx8ZS5wc05hbWU/LmVuZHNXaXRoKCJJdCIpKSYmKHIrPSJpdGFsaWMiKX1yfHwocj0icmVndWxhciIpO2Fbcl09ZX1nZXREZWZhdWx0KCl7cmV0dXJuIHRoaXMuZGVmYXVsdEZvbnR9ZmluZChlLHQ9ITApe2xldCBuPXRoaXMuZm9udHMuZ2V0KGUpfHx0aGlzLmNhY2hlLmdldChlKTtpZihuKXJldHVybiBuO2NvbnN0IGE9Lyx8LXxffCB8Ym9sZGl0YWxpY3xib2xkfGl0YWxpY3xyZWd1bGFyfGl0L2dpO2xldCByPWUucmVwbGFjZUFsbChhLCIiKTtuPXRoaXMuZm9udHMuZ2V0KHIpO2lmKG4pe3RoaXMuY2FjaGUuc2V0KGUsbik7cmV0dXJuIG59cj1yLnRvTG93ZXJDYXNlKCk7Y29uc3Qgcz1bXTtmb3IoY29uc3RbZSx0XW9mIHRoaXMuZm9udHMpZS5yZXBsYWNlQWxsKGEsIiIpLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChyKSYmcy5wdXNoKHQpO2lmKDA9PT1zLmxlbmd0aClmb3IoY29uc3QgZSBvZiB0aGlzLmZvbnRzLnZhbHVlcygpKWUucmVndWxhci5uYW1lPy5yZXBsYWNlQWxsKGEsIiIpLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChyKSYmcy5wdXNoKGUpO2lmKDA9PT1zLmxlbmd0aCl7cj1yLnJlcGxhY2VBbGwoL3BzbXR8bXQvZ2ksIiIpO2Zvcihjb25zdFtlLHRdb2YgdGhpcy5mb250cyllLnJlcGxhY2VBbGwoYSwiIikudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKHIpJiZzLnB1c2godCl9aWYoMD09PXMubGVuZ3RoKWZvcihjb25zdCBlIG9mIHRoaXMuZm9udHMudmFsdWVzKCkpZS5yZWd1bGFyLm5hbWU/LnJlcGxhY2VBbGwoYSwiIikudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKHIpJiZzLnB1c2goZSk7aWYocy5sZW5ndGg+PTEpezEhPT1zLmxlbmd0aCYmdCYmd2FybihgWEZBIC0gVG9vIG1hbnkgY2hvaWNlcyB0byBndWVzcyB0aGUgY29ycmVjdCBmb250OiAke2V9YCk7dGhpcy5jYWNoZS5zZXQoZSxzWzBdKTtyZXR1cm4gc1swXX1pZih0JiYhdGhpcy53YXJuZWQuaGFzKGUpKXt0aGlzLndhcm5lZC5hZGQoZSk7d2FybihgWEZBIC0gQ2Fubm90IGZpbmQgdGhlIGZvbnQ6ICR7ZX1gKX1yZXR1cm4gbnVsbH19ZnVuY3Rpb24gc2VsZWN0Rm9udChlLHQpe3JldHVybiJpdGFsaWMiPT09ZS5wb3N0dXJlPyJib2xkIj09PWUud2VpZ2h0P3QuYm9sZGl0YWxpYzp0Lml0YWxpYzoiYm9sZCI9PT1lLndlaWdodD90LmJvbGQ6dC5yZWd1bGFyfWNsYXNzIHRleHRfRm9udEluZm97Y29uc3RydWN0b3IoZSx0LG4sYSl7dGhpcy5saW5lSGVpZ2h0PW47dGhpcy5wYXJhTWFyZ2luPXR8fHt0b3A6MCxib3R0b206MCxsZWZ0OjAscmlnaHQ6MH07aWYoIWUpe1t0aGlzLnBkZkZvbnQsdGhpcy54ZmFGb250XT10aGlzLmRlZmF1bHRGb250KGEpO3JldHVybn10aGlzLnhmYUZvbnQ9e3R5cGVmYWNlOmUudHlwZWZhY2UscG9zdHVyZTplLnBvc3R1cmUsd2VpZ2h0OmUud2VpZ2h0LHNpemU6ZS5zaXplLGxldHRlclNwYWNpbmc6ZS5sZXR0ZXJTcGFjaW5nfTtjb25zdCByPWEuZmluZChlLnR5cGVmYWNlKTtpZihyKXt0aGlzLnBkZkZvbnQ9c2VsZWN0Rm9udChlLHIpO3RoaXMucGRmRm9udHx8KFt0aGlzLnBkZkZvbnQsdGhpcy54ZmFGb250XT10aGlzLmRlZmF1bHRGb250KGEpKX1lbHNlW3RoaXMucGRmRm9udCx0aGlzLnhmYUZvbnRdPXRoaXMuZGVmYXVsdEZvbnQoYSl9ZGVmYXVsdEZvbnQoZSl7Y29uc3QgdD1lLmZpbmQoIkhlbHZldGljYSIsITEpfHxlLmZpbmQoIk15cmlhZCBQcm8iLCExKXx8ZS5maW5kKCJBcmlhbCIsITEpfHxlLmdldERlZmF1bHQoKTtpZih0Py5yZWd1bGFyKXtjb25zdCBlPXQucmVndWxhcjtyZXR1cm5bZSx7dHlwZWZhY2U6ZS5jc3NGb250SW5mby5mb250RmFtaWx5LHBvc3R1cmU6Im5vcm1hbCIsd2VpZ2h0OiJub3JtYWwiLHNpemU6MTAsbGV0dGVyU3BhY2luZzowfV19cmV0dXJuW251bGwse3R5cGVmYWNlOiJDb3VyaWVyIixwb3N0dXJlOiJub3JtYWwiLHdlaWdodDoibm9ybWFsIixzaXplOjEwLGxldHRlclNwYWNpbmc6MH1dfX1jbGFzcyBGb250U2VsZWN0b3J7Y29uc3RydWN0b3IoZSx0LG4sYSl7dGhpcy5mb250RmluZGVyPWE7dGhpcy5zdGFjaz1bbmV3IHRleHRfRm9udEluZm8oZSx0LG4sYSldfXB1c2hEYXRhKGUsdCxuKXtjb25zdCBhPXRoaXMuc3RhY2suYXQoLTEpO2Zvcihjb25zdCB0IG9mWyJ0eXBlZmFjZSIsInBvc3R1cmUiLCJ3ZWlnaHQiLCJzaXplIiwibGV0dGVyU3BhY2luZyJdKWVbdF18fChlW3RdPWEueGZhRm9udFt0XSk7Zm9yKGNvbnN0IGUgb2ZbInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCJdKWlzTmFOKHRbZV0pJiYodFtlXT1hLnBhcmFNYXJnaW5bZV0pO2NvbnN0IHI9bmV3IHRleHRfRm9udEluZm8oZSx0LG58fGEubGluZUhlaWdodCx0aGlzLmZvbnRGaW5kZXIpO3IucGRmRm9udHx8KHIucGRmRm9udD1hLnBkZkZvbnQpO3RoaXMuc3RhY2sucHVzaChyKX1wb3BGb250KCl7dGhpcy5zdGFjay5wb3AoKX10b3BGb250KCl7cmV0dXJuIHRoaXMuc3RhY2suYXQoLTEpfX1jbGFzcyBUZXh0TWVhc3VyZXtjb25zdHJ1Y3RvcihlLHQsbixhKXt0aGlzLmdseXBocz1bXTt0aGlzLmZvbnRTZWxlY3Rvcj1uZXcgRm9udFNlbGVjdG9yKGUsdCxuLGEpO3RoaXMuZXh0cmFIZWlnaHQ9MH1wdXNoRGF0YShlLHQsbil7dGhpcy5mb250U2VsZWN0b3IucHVzaERhdGEoZSx0LG4pfXBvcEZvbnQoZSl7cmV0dXJuIHRoaXMuZm9udFNlbGVjdG9yLnBvcEZvbnQoKX1hZGRQYXJhKCl7Y29uc3QgZT10aGlzLmZvbnRTZWxlY3Rvci50b3BGb250KCk7dGhpcy5leHRyYUhlaWdodCs9ZS5wYXJhTWFyZ2luLnRvcCtlLnBhcmFNYXJnaW4uYm90dG9tfWFkZFN0cmluZyhlKXtpZighZSlyZXR1cm47Y29uc3QgdD10aGlzLmZvbnRTZWxlY3Rvci50b3BGb250KCksbj10LnhmYUZvbnQuc2l6ZTtpZih0LnBkZkZvbnQpe2NvbnN0IGE9dC54ZmFGb250LmxldHRlclNwYWNpbmcscj10LnBkZkZvbnQscz1yLmxpbmVIZWlnaHR8fDEuMixpPXQubGluZUhlaWdodHx8TWF0aC5tYXgoMS4yLHMpKm4sbz1zLSh2b2lkIDA9PT1yLmxpbmVHYXA/LjI6ci5saW5lR2FwKSxsPU1hdGgubWF4KDEsbykqbixmPW4vMWUzLGM9ci5kZWZhdWx0V2lkdGh8fHIuY2hhcnNUb0dseXBocygiICIpWzBdLndpZHRoO2Zvcihjb25zdCB0IG9mIGUuc3BsaXQoL1tcdTIwMjlcbl0vKSl7Y29uc3QgZT1yLmVuY29kZVN0cmluZyh0KS5qb2luKCIiKSxuPXIuY2hhcnNUb0dseXBocyhlKTtmb3IoY29uc3QgZSBvZiBuKXtjb25zdCB0PWUud2lkdGh8fGM7dGhpcy5nbHlwaHMucHVzaChbdCpmK2EsaSxsLGUudW5pY29kZSwhMV0pfXRoaXMuZ2x5cGhzLnB1c2goWzAsMCwwLCJcbiIsITBdKX10aGlzLmdseXBocy5wb3AoKTtyZXR1cm59Zm9yKGNvbnN0IHQgb2YgZS5zcGxpdCgvW1x1MjAyOVxuXS8pKXtmb3IoY29uc3QgZSBvZiB0LnNwbGl0KCIiKSl0aGlzLmdseXBocy5wdXNoKFtuLDEuMipuLG4sZSwhMV0pO3RoaXMuZ2x5cGhzLnB1c2goWzAsMCwwLCJcbiIsITBdKX10aGlzLmdseXBocy5wb3AoKX1jb21wdXRlKGUpe2xldCB0PS0xLG49MCxhPTAscj0wLHM9MCxpPTAsbz0hMSxsPSEwO2ZvcihsZXQgZj0wLGM9dGhpcy5nbHlwaHMubGVuZ3RoO2Y8YztmKyspe2NvbnN0W2MsaCx1LG0scF09dGhpcy5nbHlwaHNbZl0sZD0iICI9PT1tLGc9bD91Omg7aWYocCl7YT1NYXRoLm1heChhLHMpO3M9MDtyKz1pO2k9Zzt0PS0xO249MDtsPSExfWVsc2UgaWYoZClpZihzK2M+ZSl7YT1NYXRoLm1heChhLHMpO3M9MDtyKz1pO2k9Zzt0PS0xO249MDtvPSEwO2w9ITF9ZWxzZXtpPU1hdGgubWF4KGcsaSk7bj1zO3MrPWM7dD1mfWVsc2UgaWYocytjPmUpe3IrPWk7aT1nO2lmKC0xIT09dCl7Zj10O2E9TWF0aC5tYXgoYSxuKTtzPTA7dD0tMTtuPTB9ZWxzZXthPU1hdGgubWF4KGEscyk7cz1jfW89ITA7bD0hMX1lbHNle3MrPWM7aT1NYXRoLm1heChnLGkpfX1hPU1hdGgubWF4KGEscyk7cis9aSt0aGlzLmV4dHJhSGVpZ2h0O3JldHVybnt3aWR0aDoxLjAyKmEsaGVpZ2h0OnIsaXNCcm9rZW46b319fV9fd2VicGFja19yZXF1aXJlX18oODQ1NCksX193ZWJwYWNrX3JlcXVpcmVfXyg5NDUyKTtjb25zdCBmbz0vXlteLltdKy8sY289L15bXlxdXSsvLGhvPTAsdW89MSxtbz0yLHBvPTMsZ289NCxibz1uZXcgTWFwKFtbIiRkYXRhIiwoZSx0KT0+ZS5kYXRhc2V0cz9lLmRhdGFzZXRzLmRhdGE6ZV0sWyIkcmVjb3JkIiwoZSx0KT0+KGUuZGF0YXNldHM/ZS5kYXRhc2V0cy5kYXRhOmUpW21pXSgpWzBdXSxbIiR0ZW1wbGF0ZSIsKGUsdCk9PmUudGVtcGxhdGVdLFsiJGNvbm5lY3Rpb25TZXQiLChlLHQpPT5lLmNvbm5lY3Rpb25TZXRdLFsiJGZvcm0iLChlLHQpPT5lLmZvcm1dLFsiJGxheW91dCIsKGUsdCk9PmUubGF5b3V0XSxbIiRob3N0IiwoZSx0KT0+ZS5ob3N0XSxbIiRkYXRhV2luZG93IiwoZSx0KT0+ZS5kYXRhV2luZG93XSxbIiRldmVudCIsKGUsdCk9PmUuZXZlbnRdLFsiISIsKGUsdCk9PmUuZGF0YXNldHNdLFsiJHhmYSIsKGUsdCk9PmVdLFsieGZhIiwoZSx0KT0+ZV0sWyIkIiwoZSx0KT0+dF1dKSx3bz1uZXcgV2Vha01hcDtmdW5jdGlvbiBwYXJzZUluZGV4KGUpe3JldHVybiIqIj09PShlPWUudHJpbSgpKT8xLzA6cGFyc2VJbnQoZSwxMCl8fDB9ZnVuY3Rpb24gcGFyc2VFeHByZXNzaW9uKGUsdCxuPSEwKXtsZXQgYT1lLm1hdGNoKGZvKTtpZighYSlyZXR1cm4gbnVsbDtsZXRbcl09YTtjb25zdCBzPVt7bmFtZTpyLGNhY2hlTmFtZToiLiIrcixpbmRleDowLGpzOm51bGwsZm9ybUNhbGM6bnVsbCxvcGVyYXRvcjpob31dO2xldCBpPXIubGVuZ3RoO2Zvcig7aTxlLmxlbmd0aDspe2NvbnN0IG89aTtpZigiWyI9PT1lLmNoYXJBdChpKyspKXthPWUuc2xpY2UoaSkubWF0Y2goY28pO2lmKCFhKXt3YXJuKCJYRkEgLSBJbnZhbGlkIGluZGV4IGluIFNPTSBleHByZXNzaW9uIik7cmV0dXJuIG51bGx9cy5hdCgtMSkuaW5kZXg9cGFyc2VJbmRleChhWzBdKTtpKz1hWzBdLmxlbmd0aCsxO2NvbnRpbnVlfWxldCBsO3N3aXRjaChlLmNoYXJBdChpKSl7Y2FzZSIuIjppZighdClyZXR1cm4gbnVsbDtpKys7bD11bzticmVhaztjYXNlIiMiOmkrKztsPW1vO2JyZWFrO2Nhc2UiWyI6aWYobil7d2FybigiWEZBIC0gU09NIGV4cHJlc3Npb24gY29udGFpbnMgYSBGb3JtQ2FsYyBzdWJleHByZXNzaW9uIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIG5vdy4iKTtyZXR1cm4gbnVsbH1sPXBvO2JyZWFrO2Nhc2UiKCI6aWYobil7d2FybigiWEZBIC0gU09NIGV4cHJlc3Npb24gY29udGFpbnMgYSBKYXZhU2NyaXB0IHN1YmV4cHJlc3Npb24gd2hpY2ggaXMgbm90IHN1cHBvcnRlZCBmb3Igbm93LiIpO3JldHVybiBudWxsfWw9Z287YnJlYWs7ZGVmYXVsdDpsPWhvfWE9ZS5zbGljZShpKS5tYXRjaChmbyk7aWYoIWEpYnJlYWs7W3JdPWE7aSs9ci5sZW5ndGg7cy5wdXNoKHtuYW1lOnIsY2FjaGVOYW1lOmUuc2xpY2UobyxpKSxvcGVyYXRvcjpsLGluZGV4OjAsanM6bnVsbCxmb3JtQ2FsYzpudWxsfSl9cmV0dXJuIHN9ZnVuY3Rpb24gc2VhcmNoTm9kZShlLHQsbixhPSEwLHI9ITApe2NvbnN0IHM9cGFyc2VFeHByZXNzaW9uKG4sYSk7aWYoIXMpcmV0dXJuIG51bGw7Y29uc3QgaT1iby5nZXQoc1swXS5uYW1lKTtsZXQgbyxsPTA7aWYoaSl7bz0hMDtlPVtpKGUsdCldO2w9MX1lbHNle289bnVsbD09PXQ7ZT1bdHx8ZV19Zm9yKGxldCBuPXMubGVuZ3RoO2w8bjtsKyspe2NvbnN0e25hbWU6bixjYWNoZU5hbWU6YSxvcGVyYXRvcjppLGluZGV4OmZ9PXNbbF0sYz1bXTtmb3IoY29uc3QgdCBvZiBlKXtpZighdC5pc1hGQU9iamVjdCljb250aW51ZTtsZXQgZSxzO2lmKHIpe3M9d28uZ2V0T3JJbnNlcnRDb21wdXRlZCh0LG1ha2VNYXApO2U9cy5nZXQoYSl9aWYoIWUpe3N3aXRjaChpKXtjYXNlIGhvOmU9dFtsaV0obiwhMSk7YnJlYWs7Y2FzZSB1bzplPXRbbGldKG4sITApO2JyZWFrO2Nhc2UgbW86ZT10W29pXShuKTtlPWUuaXNYRkFPYmplY3RBcnJheT9lLmNoaWxkcmVuOltlXX1yJiZzLnNldChhLGUpfWUubGVuZ3RoPjAmJmMucHVzaChlKX1pZigwPT09Yy5sZW5ndGgmJiFvJiYwPT09bCl7Y29uc3Qgbj10W2JpXSgpO2lmKCEodD1uKSlyZXR1cm4gbnVsbDtsPS0xO2U9W3RdO2NvbnRpbnVlfWU9aXNGaW5pdGUoZik/Yy5maWx0ZXIoZT0+ZjxlLmxlbmd0aCkubWFwKGU9PmVbZl0pOmMuZmxhdCgpfXJldHVybiAwPT09ZS5sZW5ndGg/bnVsbDplfWZ1bmN0aW9uIGNyZWF0ZURhdGFOb2RlKGUsdCxuKXtjb25zdCBhPXBhcnNlRXhwcmVzc2lvbihuKTtpZighYSlyZXR1cm4gbnVsbDtpZihhLnNvbWUoZT0+ZS5vcGVyYXRvcj09PXVvKSlyZXR1cm4gbnVsbDtjb25zdCByPWJvLmdldChhWzBdLm5hbWUpO2xldCBzPTA7aWYocil7ZT1yKGUsdCk7cz0xfWVsc2UgZT10fHxlO2ZvcihsZXQgdD1hLmxlbmd0aDtzPHQ7cysrKXtjb25zdHtuYW1lOnQsb3BlcmF0b3I6bixpbmRleDpyfT1hW3NdO2lmKCFpc0Zpbml0ZShyKSl7YVtzXS5pbmRleD0wO3JldHVybiBlLmNyZWF0ZU5vZGVzKGEuc2xpY2UocykpfWxldCBpO3N3aXRjaChuKXtjYXNlIGhvOmk9ZVtsaV0odCwhMSk7YnJlYWs7Y2FzZSB1bzppPWVbbGldKHQsITApO2JyZWFrO2Nhc2UgbW86aT1lW29pXSh0KTtpPWkuaXNYRkFPYmplY3RBcnJheT9pLmNoaWxkcmVuOltpXX1pZigwPT09aS5sZW5ndGgpcmV0dXJuIGUuY3JlYXRlTm9kZXMoYS5zbGljZShzKSk7aWYoIShyPGkubGVuZ3RoKSl7YVtzXS5pbmRleD1yLWkubGVuZ3RoO3JldHVybiBlLmNyZWF0ZU5vZGVzKGEuc2xpY2UocykpfXtjb25zdCB0PWlbcl07aWYoIXQuaXNYRkFPYmplY3Qpe3dhcm4oIlhGQSAtIENhbm5vdCBjcmVhdGUgYSBub2RlLiIpO3JldHVybiBudWxsfWU9dH19cmV0dXJuIG51bGx9Y29uc3Qgam89U3ltYm9sKCksa289U3ltYm9sKCkseW89U3ltYm9sKCkscW89U3ltYm9sKCJfY2hpbGRyZW4iKSx2bz1TeW1ib2woKSxTbz1TeW1ib2woKSx4bz1TeW1ib2woKSxBbz1TeW1ib2woKSxDbz1TeW1ib2woKSxJbz1TeW1ib2woKSxGbz1TeW1ib2woKSxPbz1TeW1ib2woKSxSbz1TeW1ib2woKSxCbz1TeW1ib2woInBhcmVudCIpLEhvPVN5bWJvbCgpLERvPVN5bWJvbCgpLE1vPVN5bWJvbCgpO2xldCBQbz0wO2NvbnN0IEVvPWlvLmRhdGFzZXRzLmlkO2NsYXNzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlLHQsbj0hMSl7dGhpc1tIaV09ZTt0aGlzW0RpXT10O3RoaXNbRm9dPW47dGhpc1tCb109bnVsbDt0aGlzW3FvXT1bXTt0aGlzW3JvXT1gJHt0fSR7UG8rK31gO3RoaXNbamldPW51bGx9Z2V0IGlzWEZBT2JqZWN0KCl7cmV0dXJuITB9Z2V0IGlzWEZBT2JqZWN0QXJyYXkoKXtyZXR1cm4hMX1jcmVhdGVOb2RlcyhlKXtsZXQgdD10aGlzLG49bnVsbDtmb3IoY29uc3R7bmFtZTphLGluZGV4OnJ9b2YgZSl7Zm9yKGxldCBlPTAscz1pc0Zpbml0ZShyKT9yOjA7ZTw9cztlKyspe2NvbnN0IGU9dFtIaV09PT1Fbz8tMTp0W0hpXTtuPW5ldyBYbWxPYmplY3QoZSxhKTt0W1dzXShuKX10PW59cmV0dXJuIG59W1BpXShlKXtpZighdGhpc1tGb118fCF0aGlzW0VpXShlKSlyZXR1cm4hMTtjb25zdCB0PWVbRGldLG49dGhpc1t0XTtpZighKG4gaW5zdGFuY2VvZiBYRkFPYmplY3RBcnJheSkpe251bGwhPT1uJiZ0aGlzW1dpXShuKTt0aGlzW3RdPWU7dGhpc1tXc10oZSk7cmV0dXJuITB9aWYobi5wdXNoKGUpKXt0aGlzW1dzXShlKTtyZXR1cm4hMH1sZXQgYT0iIjt0aGlzLmlkP2E9YCAoaWQ6ICR7dGhpcy5pZH0pYDp0aGlzLm5hbWUmJihhPWAgKG5hbWU6ICR7dGhpcy5uYW1lfSAke3RoaXMuaC52YWx1ZX0pYCk7d2FybihgWEZBIC0gbm9kZSAiJHt0aGlzW0RpXX0iJHthfSBoYXMgYWxyZWFkeSBlbm91Z2ggIiR7dH0iIWApO3JldHVybiExfVtFaV0oZSl7cmV0dXJuIHRoaXMuaGFzT3duUHJvcGVydHkoZVtEaV0pJiZlW0hpXT09PXRoaXNbSGldfVtJaV0oKXtyZXR1cm4hMX1bVXNdKCl7cmV0dXJuITF9W1NpXSgpe3JldHVybiExfVt4aV0oKXtyZXR1cm4hMX1bX2ldKCl7dGhpcy5wYXJhJiZ0aGlzW3dpXSgpW3RpXS5wYXJhU3RhY2sucG9wKCl9W1hpXSgpe3RoaXNbd2ldKClbdGldLnBhcmFTdGFjay5wdXNoKHRoaXMucGFyYSl9WyRpXShlKXt0aGlzLmlkJiZ0aGlzW0hpXT09PWlvLnRlbXBsYXRlLmlkJiZlLnNldCh0aGlzLmlkLHRoaXMpfVt3aV0oKXtyZXR1cm4gdGhpc1tqaV0udGVtcGxhdGV9W0ZpXSgpe3JldHVybiExfVtUaV0oKXtyZXR1cm4hMX1bV3NdKGUpe2VbQm9dPXRoaXM7dGhpc1txb10ucHVzaChlKTshZVtqaV0mJnRoaXNbamldJiYoZVtqaV09dGhpc1tqaV0pfVtXaV0oZSl7Y29uc3QgdD10aGlzW3FvXS5pbmRleE9mKGUpO3RoaXNbcW9dLnNwbGljZSh0LDEpfVtraV0oKXtyZXR1cm4gdGhpcy5oYXNPd25Qcm9wZXJ0eSgidmFsdWUiKX1bSmldKGUpe31bTmldKGUpe31bbmldKCl7fVtWc10oZSl7ZGVsZXRlIHRoaXNbRm9dO2lmKHRoaXNbJHNdKXtlLmNsZWFuKHRoaXNbJHNdKTtkZWxldGUgdGhpc1skc119fVtxaV0oZSl7cmV0dXJuIHRoaXNbcW9dLmluZGV4T2YoZSl9W3ZpXShlLHQpe3RbQm9dPXRoaXM7dGhpc1txb10uc3BsaWNlKGUsMCx0KTshdFtqaV0mJnRoaXNbamldJiYodFtqaV09dGhpc1tqaV0pfVtPaV0oKXtyZXR1cm4hdGhpcy5uYW1lfVtCaV0oKXtyZXR1cm4iIn1bWmldKCl7cmV0dXJuIDA9PT10aGlzW3FvXS5sZW5ndGg/dGhpc1tRc106dGhpc1txb10ubWFwKGU9PmVbWmldKCkpLmpvaW4oIiIpfWdldFt5b10oKXtjb25zdCBlPU9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKTtpZighZS5fYXR0cmlidXRlcyl7Y29uc3QgdD1lLl9hdHRyaWJ1dGVzPW5ldyBTZXQ7Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpe2lmKG51bGw9PT10aGlzW2VdfHx0aGlzW2VdaW5zdGFuY2VvZiBYRkFPYmplY3R8fHRoaXNbZV1pbnN0YW5jZW9mIFhGQU9iamVjdEFycmF5KWJyZWFrO3QuYWRkKGUpfX1yZXR1cm4gc2hhZG93KHRoaXMseW8sZS5fYXR0cmlidXRlcyl9W0NpXShlKXtsZXQgdD10aGlzO2Zvcig7dDspe2lmKHQ9PT1lKXJldHVybiEwO3Q9dFtiaV0oKX1yZXR1cm4hMX1bYmldKCl7cmV0dXJuIHRoaXNbQm9dfVtnaV0oKXtyZXR1cm4gdGhpc1tiaV0oKX1bbWldKGU9bnVsbCl7cmV0dXJuIGU/dGhpc1tlXTp0aGlzW3FvXX1bZWldKCl7Y29uc3QgZT1PYmplY3QuY3JlYXRlKG51bGwpO3RoaXNbUXNdJiYoZS4kY29udGVudD10aGlzW1FzXSk7Zm9yKGNvbnN0IHQgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpe2NvbnN0IG49dGhpc1t0XTtudWxsIT09biYmKG4gaW5zdGFuY2VvZiBYRkFPYmplY3Q/ZVt0XT1uW2VpXSgpOm4gaW5zdGFuY2VvZiBYRkFPYmplY3RBcnJheT9uLmlzRW1wdHkoKXx8KGVbdF09bi5kdW1wKCkpOmVbdF09bil9cmV0dXJuIGV9W2FvXSgpe3JldHVybiBudWxsfVt0b10oKXtyZXR1cm4gSFRNTFJlc3VsdC5FTVBUWX0qW3BpXSgpe2Zvcihjb25zdCBlIG9mIHRoaXNbbWldKCkpeWllbGQgZX0qW0FvXShlLHQpe2Zvcihjb25zdCBuIG9mIHRoaXNbcGldKCkpaWYoIWV8fHQ9PT1lLmhhcyhuW0RpXSkpe2NvbnN0IGU9dGhpc1tpaV0oKSx0PW5bdG9dKGUpO3Quc3VjY2Vzc3x8KHRoaXNbdGldLmZhaWxpbmdOb2RlPW4pO3lpZWxkIHR9fVthaV0oKXtyZXR1cm4gbnVsbH1bWHNdKGUsdCl7dGhpc1t0aV0uY2hpbGRyZW4ucHVzaChlKX1baWldKCl7fVtLc10oe2ZpbHRlcjplPW51bGwsaW5jbHVkZTp0PSEwfSl7aWYodGhpc1t0aV0uZ2VuZXJhdG9yKXtjb25zdCBlPXRoaXNbaWldKCksdD10aGlzW3RpXS5mYWlsaW5nTm9kZVt0b10oZSk7aWYoIXQuc3VjY2VzcylyZXR1cm4gdDt0Lmh0bWwmJnRoaXNbWHNdKHQuaHRtbCx0LmJib3gpO2RlbGV0ZSB0aGlzW3RpXS5mYWlsaW5nTm9kZX1lbHNlIHRoaXNbdGldLmdlbmVyYXRvcj10aGlzW0FvXShlLHQpO2Zvcig7Oyl7Y29uc3QgZT10aGlzW3RpXS5nZW5lcmF0b3IubmV4dCgpO2lmKGUuZG9uZSlicmVhaztjb25zdCB0PWUudmFsdWU7aWYoIXQuc3VjY2VzcylyZXR1cm4gdDt0Lmh0bWwmJnRoaXNbWHNdKHQuaHRtbCx0LmJib3gpfXRoaXNbdGldLmdlbmVyYXRvcj1udWxsO3JldHVybiBIVE1MUmVzdWx0LkVNUFRZfVtZaV0oZSl7dGhpc1tEb109bmV3IFNldChPYmplY3Qua2V5cyhlKSl9W0lvXShlKXtjb25zdCB0PXRoaXNbeW9dLG49dGhpc1tEb107cmV0dXJuWy4uLmVdLmZpbHRlcihlPT50LmhhcyhlKSYmIW4uaGFzKGUpKX1bVmldKGUsdD1uZXcgU2V0KXtmb3IoY29uc3QgbiBvZiB0aGlzW3FvXSluW0hvXShlLHQpfVtIb10oZSx0KXtjb25zdCBuPXRoaXNbQ29dKGUsdCk7bj90aGlzW2pvXShuLGUsdCk6dGhpc1tWaV0oZSx0KX1bQ29dKGUsdCl7Y29uc3R7dXNlOm4sdXNlaHJlZjphfT10aGlzO2lmKCFuJiYhYSlyZXR1cm4gbnVsbDtsZXQgcj1udWxsLHM9bnVsbCxpPW51bGwsbz1uO2lmKGEpe289YTthLnN0YXJ0c1dpdGgoIiNzb20oIikmJmEuZW5kc1dpdGgoIikiKT9zPWEuc2xpY2UoNSwtMSk6YS5zdGFydHNXaXRoKCIuI3NvbSgiKSYmYS5lbmRzV2l0aCgiKSIpP3M9YS5zbGljZSg2LC0xKTphLnN0YXJ0c1dpdGgoIiMiKT9pPWEuc2xpY2UoMSk6YS5zdGFydHNXaXRoKCIuIyIpJiYoaT1hLnNsaWNlKDIpKX1lbHNlIG4uc3RhcnRzV2l0aCgiIyIpP2k9bi5zbGljZSgxKTpzPW47dGhpcy51c2U9dGhpcy51c2VocmVmPSIiO2lmKGkpcj1lLmdldChpKTtlbHNle3I9c2VhcmNoTm9kZShlLmdldChLaSksdGhpcyxzLCEwLCExKTtyJiYocj1yWzBdKX1pZighcil7d2FybihgWEZBIC0gSW52YWxpZCBwcm90b3R5cGUgcmVmZXJlbmNlOiAke299LmApO3JldHVybiBudWxsfWlmKHJbRGldIT09dGhpc1tEaV0pe3dhcm4oYFhGQSAtIEluY29tcGF0aWJsZSBwcm90b3R5cGU6ICR7cltEaV19ICE9PSAke3RoaXNbRGldfS5gKTtyZXR1cm4gbnVsbH1pZih0LmhhcyhyKSl7d2FybigiWEZBIC0gQ3ljbGUgZGV0ZWN0ZWQgaW4gcHJvdG90eXBlcyB1c2UuIik7cmV0dXJuIG51bGx9dC5hZGQocik7Y29uc3QgbD1yW0NvXShlLHQpO2wmJnJbam9dKGwsZSx0KTtyW1ZpXShlLHQpO3QuZGVsZXRlKHIpO3JldHVybiByfVtqb10oZSx0LG4pe2lmKG4uaGFzKGUpKXt3YXJuKCJYRkEgLSBDeWNsZSBkZXRlY3RlZCBpbiBwcm90b3R5cGVzIHVzZS4iKTtyZXR1cm59IXRoaXNbUXNdJiZlW1FzXSYmKHRoaXNbUXNdPWVbUXNdKTtuZXcgU2V0KG4pLmFkZChlKTtmb3IoY29uc3QgdCBvZiB0aGlzW0lvXShlW0RvXSkpe3RoaXNbdF09ZVt0XTt0aGlzW0RvXSYmdGhpc1tEb10uYWRkKHQpfWZvcihjb25zdCBhIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMpKXtpZih0aGlzW3lvXS5oYXMoYSkpY29udGludWU7Y29uc3Qgcj10aGlzW2FdLHM9ZVthXTtpZihyIGluc3RhbmNlb2YgWEZBT2JqZWN0QXJyYXkpe2Zvcihjb25zdCBlIG9mIHJbcW9dKWVbSG9dKHQsbik7Zm9yKGxldCBhPXJbcW9dLmxlbmd0aCxpPXNbcW9dLmxlbmd0aDthPGk7YSsrKXtjb25zdCBzPWVbcW9dW2FdW1lzXSgpO2lmKCFyLnB1c2gocykpYnJlYWs7c1tCb109dGhpczt0aGlzW3FvXS5wdXNoKHMpO3NbSG9dKHQsbil9fWVsc2UgaWYobnVsbD09PXIpe2lmKG51bGwhPT1zKXtjb25zdCBlPXNbWXNdKCk7ZVtCb109dGhpczt0aGlzW2FdPWU7dGhpc1txb10ucHVzaChlKTtlW0hvXSh0LG4pfX1lbHNle3JbVmldKHQsbik7cyYmcltqb10ocyx0LG4pfX19c3RhdGljW3ZvXShlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lLm1hcChlPT5YRkFPYmplY3Rbdm9dKGUpKToib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lP09iamVjdC5hc3NpZ24oe30sZSk6ZX1bWXNdKCl7Y29uc3QgZT1PYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKSk7Zm9yKGNvbnN0IHQgb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0aGlzKSl0cnl7ZVt0XT10aGlzW3RdfWNhdGNoe3NoYWRvdyhlLHQsdGhpc1t0XSl9ZVtyb109YCR7ZVtEaV19JHtQbysrfWA7ZVtxb109W107Zm9yKGNvbnN0IHQgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpe2lmKHRoaXNbeW9dLmhhcyh0KSl7ZVt0XT1YRkFPYmplY3Rbdm9dKHRoaXNbdF0pO2NvbnRpbnVlfWNvbnN0IG49dGhpc1t0XTtlW3RdPW4gaW5zdGFuY2VvZiBYRkFPYmplY3RBcnJheT9uZXcgWEZBT2JqZWN0QXJyYXkobltPb10pOm51bGx9Zm9yKGNvbnN0IHQgb2YgdGhpc1txb10pe2NvbnN0IG49dFtEaV0sYT10W1lzXSgpO2VbcW9dLnB1c2goYSk7YVtCb109ZTtudWxsPT09ZVtuXT9lW25dPWE6ZVtuXVtxb10ucHVzaChhKX1yZXR1cm4gZX1bbWldKGU9bnVsbCl7cmV0dXJuIGU/dGhpc1txb10uZmlsdGVyKHQ9PnRbRGldPT09ZSk6dGhpc1txb119W29pXShlKXtyZXR1cm4gdGhpc1tlXX1bbGldKGUsdCxuPSEwKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzW2ZpXShlLHQsbikpfSpbZmldKGUsdCxuPSEwKXtpZigicGFyZW50IiE9PWUpe2Zvcihjb25zdCBuIG9mIHRoaXNbcW9dKXtuW0RpXT09PWUmJih5aWVsZCBuKTtuLm5hbWU9PT1lJiYoeWllbGQgbik7KHR8fG5bT2ldKCkpJiYoeWllbGQqbltmaV0oZSx0LCExKSl9biYmdGhpc1t5b10uaGFzKGUpJiYoeWllbGQgbmV3IFhGQUF0dHJpYnV0ZSh0aGlzLGUsdGhpc1tlXSkpfWVsc2UgeWllbGQgdGhpc1tCb119fWNsYXNzIFhGQU9iamVjdEFycmF5e2NvbnN0cnVjdG9yKGU9MS8wKXt0aGlzW09vXT1lO3RoaXNbcW9dPVtdfWdldCBpc1hGQU9iamVjdCgpe3JldHVybiExfWdldCBpc1hGQU9iamVjdEFycmF5KCl7cmV0dXJuITB9cHVzaChlKXtpZih0aGlzW3FvXS5sZW5ndGg8PXRoaXNbT29dKXt0aGlzW3FvXS5wdXNoKGUpO3JldHVybiEwfXdhcm4oYFhGQSAtIG5vZGUgIiR7ZVtEaV19IiBhY2NlcHRzIG5vIG1vcmUgdGhhbiAke3RoaXNbT29dfSBjaGlsZHJlbmApO3JldHVybiExfWlzRW1wdHkoKXtyZXR1cm4gMD09PXRoaXNbcW9dLmxlbmd0aH1kdW1wKCl7cmV0dXJuIDE9PT10aGlzW3FvXS5sZW5ndGg/dGhpc1txb11bMF1bZWldKCk6dGhpc1txb10ubWFwKGU9PmVbZWldKCkpfVtZc10oKXtjb25zdCBlPW5ldyBYRkFPYmplY3RBcnJheSh0aGlzW09vXSk7ZVtxb109dGhpc1txb10ubWFwKGU9PmVbWXNdKCkpO3JldHVybiBlfWdldCBjaGlsZHJlbigpe3JldHVybiB0aGlzW3FvXX1jbGVhcigpe3RoaXNbcW9dLmxlbmd0aD0wfX1jbGFzcyBYRkFBdHRyaWJ1dGV7Y29uc3RydWN0b3IoZSx0LG4pe3RoaXNbQm9dPWU7dGhpc1tEaV09dDt0aGlzW1FzXT1uO3RoaXNbSnNdPSExO3RoaXNbcm9dPSJhdHRyaWJ1dGUiK1BvKyt9W2JpXSgpe3JldHVybiB0aGlzW0JvXX1bQWldKCl7cmV0dXJuITB9W2NpXSgpe3JldHVybiB0aGlzW1FzXS50cmltKCl9W0ppXShlKXtlPWUudmFsdWV8fCIiO3RoaXNbUXNdPWUudG9TdHJpbmcoKX1bWmldKCl7cmV0dXJuIHRoaXNbUXNdfVtDaV0oZSl7cmV0dXJuIHRoaXNbQm9dPT09ZXx8dGhpc1tCb11bQ2ldKGUpfX1jbGFzcyBYbWxPYmplY3QgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSx0LG49e30pe3N1cGVyKGUsdCk7dGhpc1tRc109IiI7dGhpc1tTb109bnVsbDtpZigiI3RleHQiIT09dCl7Y29uc3QgZT1uZXcgTWFwO3RoaXNba29dPWU7Zm9yKGNvbnN0W3QsYV1vZiBPYmplY3QuZW50cmllcyhuKSllLnNldCh0LG5ldyBYRkFBdHRyaWJ1dGUodGhpcyx0LGEpKTtpZihuLmhhc093blByb3BlcnR5KE1pKSl7Y29uc3QgZT1uW01pXS54ZmEuZGF0YU5vZGU7dm9pZCAwIT09ZSYmKCJkYXRhR3JvdXAiPT09ZT90aGlzW1NvXT0hMToiZGF0YVZhbHVlIj09PWUmJih0aGlzW1NvXT0hMCkpfX10aGlzW0pzXT0hMX1bbm9dKGUpe2NvbnN0IHQ9dGhpc1tEaV07aWYoIiN0ZXh0Ij09PXQpe2UucHVzaChlbmNvZGVUb1htbFN0cmluZyh0aGlzW1FzXSkpO3JldHVybn1jb25zdCBuPXV0ZjhTdHJpbmdUb1N0cmluZyh0KSxhPXRoaXNbSGldPT09RW8/InhmYToiOiIiO2UucHVzaChgPCR7YX0ke259YCk7Zm9yKGNvbnN0W3Qsbl1vZiB0aGlzW2tvXSl7Y29uc3QgYT11dGY4U3RyaW5nVG9TdHJpbmcodCk7ZS5wdXNoKGAgJHthfT0iJHtlbmNvZGVUb1htbFN0cmluZyhuW1FzXSl9ImApfW51bGwhPT10aGlzW1NvXSYmKHRoaXNbU29dP2UucHVzaCgnIHhmYTpkYXRhTm9kZT0iZGF0YVZhbHVlIicpOmUucHVzaCgnIHhmYTpkYXRhTm9kZT0iZGF0YUdyb3VwIicpKTtpZih0aGlzW1FzXXx8MCE9PXRoaXNbcW9dLmxlbmd0aCl7ZS5wdXNoKCI+Iik7aWYodGhpc1tRc10pInN0cmluZyI9PXR5cGVvZiB0aGlzW1FzXT9lLnB1c2goZW5jb2RlVG9YbWxTdHJpbmcodGhpc1tRc10pKTp0aGlzW1FzXVtub10oZSk7ZWxzZSBmb3IoY29uc3QgdCBvZiB0aGlzW3FvXSl0W25vXShlKTtlLnB1c2goYDwvJHthfSR7bn0+YCl9ZWxzZSBlLnB1c2goIi8+Iil9W1BpXShlKXtpZih0aGlzW1FzXSl7Y29uc3QgZT1uZXcgWG1sT2JqZWN0KHRoaXNbSGldLCIjdGV4dCIpO3RoaXNbV3NdKGUpO2VbUXNdPXRoaXNbUXNdO3RoaXNbUXNdPSIifXRoaXNbV3NdKGUpO3JldHVybiEwfVtOaV0oZSl7dGhpc1tRc10rPWV9W25pXSgpe2lmKHRoaXNbUXNdJiZ0aGlzW3FvXS5sZW5ndGg+MCl7Y29uc3QgZT1uZXcgWG1sT2JqZWN0KHRoaXNbSGldLCIjdGV4dCIpO3RoaXNbV3NdKGUpO2VbUXNdPXRoaXNbUXNdO2RlbGV0ZSB0aGlzW1FzXX19W3RvXSgpe3JldHVybiIjdGV4dCI9PT10aGlzW0RpXT9IVE1MUmVzdWx0LnN1Y2Nlc3Moe25hbWU6IiN0ZXh0Iix2YWx1ZTp0aGlzW1FzXX0pOkhUTUxSZXN1bHQuRU1QVFl9W21pXShlPW51bGwpe3JldHVybiBlP3RoaXNbcW9dLmZpbHRlcih0PT50W0RpXT09PWUpOnRoaXNbcW9dfVtzaV0oKXtyZXR1cm4gdGhpc1trb119W29pXShlKXtjb25zdCB0PXRoaXNba29dLmdldChlKTtyZXR1cm4gdm9pZCAwIT09dD90OnRoaXNbbWldKGUpfSpbZmldKGUsdCl7Y29uc3Qgbj10aGlzW2tvXS5nZXQoZSk7biYmKHlpZWxkIG4pO2Zvcihjb25zdCBuIG9mIHRoaXNbcW9dKXtuW0RpXT09PWUmJih5aWVsZCBuKTt0JiYoeWllbGQqbltmaV0oZSx0KSl9fSpbcmldKGUsdCl7Y29uc3Qgbj10aGlzW2tvXS5nZXQoZSk7IW58fHQmJm5bSnNdfHwoeWllbGQgbik7Zm9yKGNvbnN0IG4gb2YgdGhpc1txb10peWllbGQqbltyaV0oZSx0KX0qW3VpXShlLHQsbil7Zm9yKGNvbnN0IGEgb2YgdGhpc1txb10pe2FbRGldIT09ZXx8biYmYVtKc118fCh5aWVsZCBhKTt0JiYoeWllbGQqYVt1aV0oZSx0LG4pKX19W0FpXSgpe3JldHVybiBudWxsPT09dGhpc1tTb10/MD09PXRoaXNbcW9dLmxlbmd0aHx8dGhpc1txb11bMF1bSGldPT09aW8ueGh0bWwuaWQ6dGhpc1tTb119W2NpXSgpe3JldHVybiBudWxsPT09dGhpc1tTb10/MD09PXRoaXNbcW9dLmxlbmd0aD90aGlzW1FzXS50cmltKCk6dGhpc1txb11bMF1bSGldPT09aW8ueGh0bWwuaWQ/dGhpc1txb11bMF1bWmldKCkudHJpbSgpOm51bGw6dGhpc1tRc10udHJpbSgpfVtKaV0oZSl7ZT1lLnZhbHVlfHwiIjt0aGlzW1FzXT1lLnRvU3RyaW5nKCl9W2VpXShlPSExKXtjb25zdCB0PU9iamVjdC5jcmVhdGUobnVsbCk7ZSYmKHQuJG5zPXRoaXNbSGldKTt0aGlzW1FzXSYmKHQuJGNvbnRlbnQ9dGhpc1tRc10pO3QuJG5hbWU9dGhpc1tEaV07dC5jaGlsZHJlbj1bXTtmb3IoY29uc3QgbiBvZiB0aGlzW3FvXSl0LmNoaWxkcmVuLnB1c2gobltlaV0oZSkpO3QuYXR0cmlidXRlcz1PYmplY3QuY3JlYXRlKG51bGwpO2Zvcihjb25zdFtlLG5db2YgdGhpc1trb10pdC5hdHRyaWJ1dGVzW2VdPW5bUXNdO3JldHVybiB0fX1jbGFzcyBDb250ZW50T2JqZWN0IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0KTt0aGlzW1FzXT0iIn1bTmldKGUpe3RoaXNbUXNdKz1lfVtuaV0oKXt9fWNsYXNzIE9wdGlvbk9iamVjdCBleHRlbmRzIENvbnRlbnRPYmplY3R7Y29uc3RydWN0b3IoZSx0LG4pe3N1cGVyKGUsdCk7dGhpc1tSb109bn1bbmldKCl7dGhpc1tRc109Z2V0S2V5d29yZCh7ZGF0YTp0aGlzW1FzXSxkZWZhdWx0VmFsdWU6dGhpc1tSb11bMF0sdmFsaWRhdGU6ZT0+dGhpc1tSb10uaW5jbHVkZXMoZSl9KX1bVnNdKGUpe3N1cGVyW1ZzXShlKTtkZWxldGUgdGhpc1tSb119fWNsYXNzIFN0cmluZ09iamVjdCBleHRlbmRzIENvbnRlbnRPYmplY3R7W25pXSgpe3RoaXNbUXNdPXRoaXNbUXNdLnRyaW0oKX19Y2xhc3MgSW50ZWdlck9iamVjdCBleHRlbmRzIENvbnRlbnRPYmplY3R7Y29uc3RydWN0b3IoZSx0LG4sYSl7c3VwZXIoZSx0KTt0aGlzW3hvXT1uO3RoaXNbTW9dPWF9W25pXSgpe3RoaXNbUXNdPWdldEludGVnZXIoe2RhdGE6dGhpc1tRc10sZGVmYXVsdFZhbHVlOnRoaXNbeG9dLHZhbGlkYXRlOnRoaXNbTW9dfSl9W1ZzXShlKXtzdXBlcltWc10oZSk7ZGVsZXRlIHRoaXNbeG9dO2RlbGV0ZSB0aGlzW01vXX19Y2xhc3MgT3B0aW9uMDEgZXh0ZW5kcyBJbnRlZ2VyT2JqZWN0e2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoZSx0LDAsZT0+MT09PWUpfX1jbGFzcyBPcHRpb24xMCBleHRlbmRzIEludGVnZXJPYmplY3R7Y29uc3RydWN0b3IoZSx0KXtzdXBlcihlLHQsMSxlPT4wPT09ZSl9fWZ1bmN0aW9uIG1lYXN1cmVUb1N0cmluZyhlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU/IjBweCI6TnVtYmVyLmlzSW50ZWdlcihlKT9gJHtlfXB4YDpgJHtlLnRvRml4ZWQoMil9cHhgfWNvbnN0IE5vPXthbmNob3JUeXBlKGUsdCl7Y29uc3Qgbj1lW2dpXSgpO2lmKG4mJighbi5sYXlvdXR8fCJwb3NpdGlvbiI9PT1uLmxheW91dCkpeyJ0cmFuc2Zvcm0iaW4gdHx8KHQudHJhbnNmb3JtPSIiKTtzd2l0Y2goZS5hbmNob3JUeXBlKXtjYXNlImJvdHRvbUNlbnRlciI6dC50cmFuc2Zvcm0rPSJ0cmFuc2xhdGUoLTUwJSwgLTEwMCUpIjticmVhaztjYXNlImJvdHRvbUxlZnQiOnQudHJhbnNmb3JtKz0idHJhbnNsYXRlKDAsLTEwMCUpIjticmVhaztjYXNlImJvdHRvbVJpZ2h0Ijp0LnRyYW5zZm9ybSs9InRyYW5zbGF0ZSgtMTAwJSwtMTAwJSkiO2JyZWFrO2Nhc2UibWlkZGxlQ2VudGVyIjp0LnRyYW5zZm9ybSs9InRyYW5zbGF0ZSgtNTAlLC01MCUpIjticmVhaztjYXNlIm1pZGRsZUxlZnQiOnQudHJhbnNmb3JtKz0idHJhbnNsYXRlKDAsLTUwJSkiO2JyZWFrO2Nhc2UibWlkZGxlUmlnaHQiOnQudHJhbnNmb3JtKz0idHJhbnNsYXRlKC0xMDAlLC01MCUpIjticmVhaztjYXNlInRvcENlbnRlciI6dC50cmFuc2Zvcm0rPSJ0cmFuc2xhdGUoLTUwJSwwKSI7YnJlYWs7Y2FzZSJ0b3BSaWdodCI6dC50cmFuc2Zvcm0rPSJ0cmFuc2xhdGUoLTEwMCUsMCkifX19LGRpbWVuc2lvbnMoZSx0KXtjb25zdCBuPWVbZ2ldKCk7bGV0IGE9ZS53O2NvbnN0IHI9ZS5oO2lmKG4ubGF5b3V0Py5pbmNsdWRlcygicm93Iikpe2NvbnN0IHQ9blt0aV0scj1lLmNvbFNwYW47bGV0IHM7aWYoLTE9PT1yKXtzPU1hdGguc3VtUHJlY2lzZSh0LmNvbHVtbldpZHRocy5zbGljZSh0LmN1cnJlbnRDb2x1bW4pKTt0LmN1cnJlbnRDb2x1bW49MH1lbHNle3M9TWF0aC5zdW1QcmVjaXNlKHQuY29sdW1uV2lkdGhzLnNsaWNlKHQuY3VycmVudENvbHVtbix0LmN1cnJlbnRDb2x1bW4rcikpO3QuY3VycmVudENvbHVtbj0odC5jdXJyZW50Q29sdW1uK2UuY29sU3BhbikldC5jb2x1bW5XaWR0aHMubGVuZ3RofWlzTmFOKHMpfHwoYT1lLnc9cyl9dC53aWR0aD0iIiE9PWE/bWVhc3VyZVRvU3RyaW5nKGEpOiJhdXRvIjt0LmhlaWdodD0iIiE9PXI/bWVhc3VyZVRvU3RyaW5nKHIpOiJhdXRvIn0scG9zaXRpb24oZSx0KXtjb25zdCBuPWVbZ2ldKCk7aWYoIW4/LmxheW91dHx8InBvc2l0aW9uIj09PW4ubGF5b3V0KXt0LnBvc2l0aW9uPSJhYnNvbHV0ZSI7dC5sZWZ0PW1lYXN1cmVUb1N0cmluZyhlLngpO3QudG9wPW1lYXN1cmVUb1N0cmluZyhlLnkpfX0scm90YXRlKGUsdCl7aWYoZS5yb3RhdGUpeyJ0cmFuc2Zvcm0iaW4gdHx8KHQudHJhbnNmb3JtPSIiKTt0LnRyYW5zZm9ybSs9YHJvdGF0ZSgtJHtlLnJvdGF0ZX1kZWcpYDt0LnRyYW5zZm9ybU9yaWdpbj0idG9wIGxlZnQifX0scHJlc2VuY2UoZSx0KXtzd2l0Y2goZS5wcmVzZW5jZSl7Y2FzZSJpbnZpc2libGUiOnQudmlzaWJpbGl0eT0iaGlkZGVuIjticmVhaztjYXNlImhpZGRlbiI6Y2FzZSJpbmFjdGl2ZSI6dC5kaXNwbGF5PSJub25lIn19LGhBbGlnbihlLHQpe2lmKCJwYXJhIj09PWVbRGldKXN3aXRjaChlLmhBbGlnbil7Y2FzZSJqdXN0aWZ5QWxsIjp0LnRleHRBbGlnbj0ianVzdGlmeS1hbGwiO2JyZWFrO2Nhc2UicmFkaXgiOnQudGV4dEFsaWduPSJsZWZ0IjticmVhaztkZWZhdWx0OnQudGV4dEFsaWduPWUuaEFsaWdufWVsc2Ugc3dpdGNoKGUuaEFsaWduKXtjYXNlImxlZnQiOnQuYWxpZ25TZWxmPSJzdGFydCI7YnJlYWs7Y2FzZSJjZW50ZXIiOnQuYWxpZ25TZWxmPSJjZW50ZXIiO2JyZWFrO2Nhc2UicmlnaHQiOnQuYWxpZ25TZWxmPSJlbmQifX0sbWFyZ2luKGUsdCl7ZS5tYXJnaW4mJih0Lm1hcmdpbj1lLm1hcmdpblthb10oKS5tYXJnaW4pfX07ZnVuY3Rpb24gc2V0TWluTWF4RGltZW5zaW9ucyhlLHQpe2lmKCJwb3NpdGlvbiI9PT1lW2dpXSgpLmxheW91dCl7ZS5taW5XPjAmJih0Lm1pbldpZHRoPW1lYXN1cmVUb1N0cmluZyhlLm1pblcpKTtlLm1heFc+MCYmKHQubWF4V2lkdGg9bWVhc3VyZVRvU3RyaW5nKGUubWF4VykpO2UubWluSD4wJiYodC5taW5IZWlnaHQ9bWVhc3VyZVRvU3RyaW5nKGUubWluSCkpO2UubWF4SD4wJiYodC5tYXhIZWlnaHQ9bWVhc3VyZVRvU3RyaW5nKGUubWF4SCkpfX1mdW5jdGlvbiBsYXlvdXRUZXh0KGUsdCxuLGEscixzKXtjb25zdCBpPW5ldyBUZXh0TWVhc3VyZSh0LG4sYSxyKTsic3RyaW5nIj09dHlwZW9mIGU/aS5hZGRTdHJpbmcoZSk6ZVt6aV0oaSk7cmV0dXJuIGkuY29tcHV0ZShzKX1mdW5jdGlvbiBsYXlvdXROb2RlKGUsdCl7bGV0IG49bnVsbCxhPW51bGwscj0hMTtpZigoIWUud3x8IWUuaCkmJmUudmFsdWUpe2xldCBzPTAsaT0wO2lmKGUubWFyZ2luKXtzPWUubWFyZ2luLmxlZnRJbnNldCtlLm1hcmdpbi5yaWdodEluc2V0O2k9ZS5tYXJnaW4udG9wSW5zZXQrZS5tYXJnaW4uYm90dG9tSW5zZXR9bGV0IG89bnVsbCxsPW51bGw7aWYoZS5wYXJhKXtsPU9iamVjdC5jcmVhdGUobnVsbCk7bz0iIj09PWUucGFyYS5saW5lSGVpZ2h0P251bGw6ZS5wYXJhLmxpbmVIZWlnaHQ7bC50b3A9IiI9PT1lLnBhcmEuc3BhY2VBYm92ZT8wOmUucGFyYS5zcGFjZUFib3ZlO2wuYm90dG9tPSIiPT09ZS5wYXJhLnNwYWNlQmVsb3c/MDplLnBhcmEuc3BhY2VCZWxvdztsLmxlZnQ9IiI9PT1lLnBhcmEubWFyZ2luTGVmdD8wOmUucGFyYS5tYXJnaW5MZWZ0O2wucmlnaHQ9IiI9PT1lLnBhcmEubWFyZ2luUmlnaHQ/MDplLnBhcmEubWFyZ2luUmlnaHR9bGV0IGY9ZS5mb250O2lmKCFmKXtjb25zdCB0PWVbd2ldKCk7bGV0IG49ZVtiaV0oKTtmb3IoO24mJm4hPT10Oyl7aWYobi5mb250KXtmPW4uZm9udDticmVha31uPW5bYmldKCl9fWNvbnN0IGM9KGUud3x8dC53aWR0aCktcyxoPWVbamldLmZvbnRGaW5kZXI7aWYoZS52YWx1ZS5leERhdGEmJmUudmFsdWUuZXhEYXRhW1FzXSYmInRleHQvaHRtbCI9PT1lLnZhbHVlLmV4RGF0YS5jb250ZW50VHlwZSl7Y29uc3QgdD1sYXlvdXRUZXh0KGUudmFsdWUuZXhEYXRhW1FzXSxmLGwsbyxoLGMpO2E9dC53aWR0aDtuPXQuaGVpZ2h0O3I9dC5pc0Jyb2tlbn1lbHNle2NvbnN0IHQ9ZS52YWx1ZVtaaV0oKTtpZih0KXtjb25zdCBlPWxheW91dFRleHQodCxmLGwsbyxoLGMpO2E9ZS53aWR0aDtuPWUuaGVpZ2h0O3I9ZS5pc0Jyb2tlbn19bnVsbD09PWF8fGUud3x8KGErPXMpO251bGw9PT1ufHxlLmh8fChuKz1pKX1yZXR1cm57dzphLGg6bixpc0Jyb2tlbjpyfX1mdW5jdGlvbiBjb21wdXRlQmJveChlLHQsbil7bGV0IGE7aWYoIiIhPT1lLncmJiIiIT09ZS5oKWE9W2UueCxlLnksZS53LGUuaF07ZWxzZXtpZighbilyZXR1cm4gbnVsbDtsZXQgcj1lLnc7aWYoIiI9PT1yKXtpZigwPT09ZS5tYXhXKXtjb25zdCB0PWVbZ2ldKCk7cj0icG9zaXRpb24iPT09dC5sYXlvdXQmJiIiIT09dC53PzA6ZS5taW5XfWVsc2Ugcj1NYXRoLm1pbihlLm1heFcsbi53aWR0aCk7dC5hdHRyaWJ1dGVzLnN0eWxlLndpZHRoPW1lYXN1cmVUb1N0cmluZyhyKX1sZXQgcz1lLmg7aWYoIiI9PT1zKXtpZigwPT09ZS5tYXhIKXtjb25zdCB0PWVbZ2ldKCk7cz0icG9zaXRpb24iPT09dC5sYXlvdXQmJiIiIT09dC5oPzA6ZS5taW5IfWVsc2Ugcz1NYXRoLm1pbihlLm1heEgsbi5oZWlnaHQpO3QuYXR0cmlidXRlcy5zdHlsZS5oZWlnaHQ9bWVhc3VyZVRvU3RyaW5nKHMpfWE9W2UueCxlLnkscixzXX1yZXR1cm4gYX1mdW5jdGlvbiBmaXhEaW1lbnNpb25zKGUpe2NvbnN0IHQ9ZVtnaV0oKTtpZih0LmxheW91dD8uaW5jbHVkZXMoInJvdyIpKXtjb25zdCBuPXRbdGldLGE9ZS5jb2xTcGFuO2xldCByO3I9LTE9PT1hP01hdGguc3VtUHJlY2lzZShuLmNvbHVtbldpZHRocy5zbGljZShuLmN1cnJlbnRDb2x1bW4pKTpNYXRoLnN1bVByZWNpc2Uobi5jb2x1bW5XaWR0aHMuc2xpY2Uobi5jdXJyZW50Q29sdW1uLG4uY3VycmVudENvbHVtbithKSk7aXNOYU4ocil8fChlLnc9cil9dC5sYXlvdXQmJiJwb3NpdGlvbiIhPT10LmxheW91dCYmKGUueD1lLnk9MCk7InRhYmxlIj09PWUubGF5b3V0JiYiIj09PWUudyYmQXJyYXkuaXNBcnJheShlLmNvbHVtbldpZHRocykmJihlLnc9TWF0aC5zdW1QcmVjaXNlKGUuY29sdW1uV2lkdGhzKSl9ZnVuY3Rpb24gbGF5b3V0Q2xhc3MoZSl7c3dpdGNoKGUubGF5b3V0KXtjYXNlInBvc2l0aW9uIjpkZWZhdWx0OnJldHVybiJ4ZmFQb3NpdGlvbiI7Y2FzZSJsci10YiI6cmV0dXJuInhmYUxyVGIiO2Nhc2Uicmwtcm93IjpyZXR1cm4ieGZhUmxSb3ciO2Nhc2UicmwtdGIiOnJldHVybiJ4ZmFSbFRiIjtjYXNlInJvdyI6cmV0dXJuInhmYVJvdyI7Y2FzZSJ0YWJsZSI6cmV0dXJuInhmYVRhYmxlIjtjYXNlInRiIjpyZXR1cm4ieGZhVGIifX1mdW5jdGlvbiB0b1N0eWxlKGUsLi4udCl7Y29uc3Qgbj1PYmplY3QuY3JlYXRlKG51bGwpO2Zvcihjb25zdCBhIG9mIHQpe2NvbnN0IHQ9ZVthXTtpZihudWxsIT09dClpZihOby5oYXNPd25Qcm9wZXJ0eShhKSlOb1thXShlLG4pO2Vsc2UgaWYodCBpbnN0YW5jZW9mIFhGQU9iamVjdCl7Y29uc3QgZT10W2FvXSgpO2U/T2JqZWN0LmFzc2lnbihuLGUpOndhcm4oYChERUJVRykgLSBYRkEgLSBzdHlsZSBmb3IgJHthfSBub3QgaW1wbGVtZW50ZWQgeWV0YCl9fXJldHVybiBufWZ1bmN0aW9uIGNyZWF0ZVdyYXBwZXIoZSx0KXtjb25zdHthdHRyaWJ1dGVzOm59PXQse3N0eWxlOmF9PW4scj17bmFtZToiZGl2IixhdHRyaWJ1dGVzOntjbGFzczpbInhmYVdyYXBwZXIiXSxzdHlsZTpPYmplY3QuY3JlYXRlKG51bGwpfSxjaGlsZHJlbjpbXX07bi5jbGFzcy5wdXNoKCJ4ZmFXcmFwcGVkIik7aWYoZS5ib3JkZXIpe2NvbnN0e3dpZHRoczpuLGluc2V0czpzfT1lLmJvcmRlclt0aV07bGV0IGksbyxsPXNbMF0sZj1zWzNdO2NvbnN0IGM9c1swXStzWzJdLGg9c1sxXStzWzNdO3N3aXRjaChlLmJvcmRlci5oYW5kKXtjYXNlImV2ZW4iOmwtPW5bMF0vMjtmLT1uWzNdLzI7aT1gY2FsYygxMDAlICsgJHsoblsxXStuWzNdKS8yLWh9cHgpYDtvPWBjYWxjKDEwMCUgKyAkeyhuWzBdK25bMl0pLzItY31weClgO2JyZWFrO2Nhc2UibGVmdCI6bC09blswXTtmLT1uWzNdO2k9YGNhbGMoMTAwJSArICR7blsxXStuWzNdLWh9cHgpYDtvPWBjYWxjKDEwMCUgKyAke25bMF0rblsyXS1jfXB4KWA7YnJlYWs7Y2FzZSJyaWdodCI6aT1oP2BjYWxjKDEwMCUgLSAke2h9cHgpYDoiMTAwJSI7bz1jP2BjYWxjKDEwMCUgLSAke2N9cHgpYDoiMTAwJSJ9Y29uc3QgdT1bInhmYUJvcmRlciJdO2lzUHJpbnRPbmx5KGUuYm9yZGVyKSYmdS5wdXNoKCJ4ZmFQcmludE9ubHkiKTtjb25zdCBtPXtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6e2NsYXNzOnUsc3R5bGU6e3RvcDpgJHtsfXB4YCxsZWZ0OmAke2Z9cHhgLHdpZHRoOmksaGVpZ2h0Om99fSxjaGlsZHJlbjpbXX07Zm9yKGNvbnN0IGUgb2ZbImJvcmRlciIsImJvcmRlcldpZHRoIiwiYm9yZGVyQ29sb3IiLCJib3JkZXJSYWRpdXMiLCJib3JkZXJTdHlsZSJdKWlmKHZvaWQgMCE9PWFbZV0pe20uYXR0cmlidXRlcy5zdHlsZVtlXT1hW2VdO2RlbGV0ZSBhW2VdfXIuY2hpbGRyZW4ucHVzaChtLHQpfWVsc2Ugci5jaGlsZHJlbi5wdXNoKHQpO2Zvcihjb25zdCBlIG9mWyJiYWNrZ3JvdW5kIiwiYmFja2dyb3VuZENsaXAiLCJ0b3AiLCJsZWZ0Iiwid2lkdGgiLCJoZWlnaHQiLCJtaW5XaWR0aCIsIm1pbkhlaWdodCIsIm1heFdpZHRoIiwibWF4SGVpZ2h0IiwidHJhbnNmb3JtIiwidHJhbnNmb3JtT3JpZ2luIiwidmlzaWJpbGl0eSJdKWlmKHZvaWQgMCE9PWFbZV0pe3IuYXR0cmlidXRlcy5zdHlsZVtlXT1hW2VdO2RlbGV0ZSBhW2VdfXIuYXR0cmlidXRlcy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiPT09YS5wb3NpdGlvbj8iYWJzb2x1dGUiOiJyZWxhdGl2ZSI7ZGVsZXRlIGEucG9zaXRpb247aWYoYS5hbGlnblNlbGYpe3IuYXR0cmlidXRlcy5zdHlsZS5hbGlnblNlbGY9YS5hbGlnblNlbGY7ZGVsZXRlIGEuYWxpZ25TZWxmfXJldHVybiByfWZ1bmN0aW9uIGZpeFRleHRJbmRlbnQoZSl7Y29uc3QgdD1nZXRNZWFzdXJlbWVudChlLnRleHRJbmRlbnQsIjBweCIpO2lmKHQ+PTApcmV0dXJuO2NvbnN0IG49InBhZGRpbmciKygibGVmdCI9PT0oInJpZ2h0Ij09PWUudGV4dEFsaWduPyJyaWdodCI6ImxlZnQiKT8iTGVmdCI6IlJpZ2h0IiksYT1nZXRNZWFzdXJlbWVudChlW25dLCIwcHgiKTtlW25dPWEtdCsicHgifWZ1bmN0aW9uIHNldEFjY2VzcyhlLHQpe3N3aXRjaChlLmFjY2Vzcyl7Y2FzZSJub25JbnRlcmFjdGl2ZSI6dC5wdXNoKCJ4ZmFOb25JbnRlcmFjdGl2ZSIpO2JyZWFrO2Nhc2UicmVhZE9ubHkiOnQucHVzaCgieGZhUmVhZE9ubHkiKTticmVhaztjYXNlInByb3RlY3RlZCI6dC5wdXNoKCJ4ZmFEaXNhYmxlZCIpfX1mdW5jdGlvbiBpc1ByaW50T25seShlKXtyZXR1cm4gZS5yZWxldmFudC5sZW5ndGg+MCYmIWUucmVsZXZhbnRbMF0uZXhjbHVkZWQmJiJwcmludCI9PT1lLnJlbGV2YW50WzBdLnZpZXduYW1lfWZ1bmN0aW9uIGdldEN1cnJlbnRQYXJhKGUpe2NvbnN0IHQ9ZVt3aV0oKVt0aV0ucGFyYVN0YWNrO3JldHVybiB0Lmxlbmd0aD90LmF0KC0xKTpudWxsfWZ1bmN0aW9uIHNldFBhcmEoZSx0LG4pe2lmKG4uYXR0cmlidXRlcy5jbGFzcz8uaW5jbHVkZXMoInhmYVJpY2giKSl7aWYodCl7IiI9PT1lLmgmJih0LmhlaWdodD0iYXV0byIpOyIiPT09ZS53JiYodC53aWR0aD0iYXV0byIpfWNvbnN0IGE9Z2V0Q3VycmVudFBhcmEoZSk7aWYoYSl7Y29uc3QgZT1uLmF0dHJpYnV0ZXMuc3R5bGU7ZS5kaXNwbGF5PSJmbGV4IjtlLmZsZXhEaXJlY3Rpb249ImNvbHVtbiI7c3dpdGNoKGEudkFsaWduKXtjYXNlInRvcCI6ZS5qdXN0aWZ5Q29udGVudD0ic3RhcnQiO2JyZWFrO2Nhc2UiYm90dG9tIjplLmp1c3RpZnlDb250ZW50PSJlbmQiO2JyZWFrO2Nhc2UibWlkZGxlIjplLmp1c3RpZnlDb250ZW50PSJjZW50ZXIifWNvbnN0IHQ9YVthb10oKTtmb3IoY29uc3RbbixhXW9mIE9iamVjdC5lbnRyaWVzKHQpKW4gaW4gZXx8KGVbbl09YSl9fX1mdW5jdGlvbiBzZXRGb250RmFtaWx5KGUsdCxuLGEpe2lmKCFuKXtkZWxldGUgYS5mb250RmFtaWx5O3JldHVybn1jb25zdCByPXN0cmlwUXVvdGVzKGUudHlwZWZhY2UpO2EuZm9udEZhbWlseT1gIiR7cn0iYDtjb25zdCBzPW4uZmluZChyKTtpZihzKXtjb25zdHtmb250RmFtaWx5Om59PXMucmVndWxhci5jc3NGb250SW5mbztuIT09ciYmKGEuZm9udEZhbWlseT1gIiR7bn0iYCk7Y29uc3QgaT1nZXRDdXJyZW50UGFyYSh0KTtpZihpJiYiIiE9PWkubGluZUhlaWdodClyZXR1cm47aWYoYS5saW5lSGVpZ2h0KXJldHVybjtjb25zdCBvPXNlbGVjdEZvbnQoZSxzKTtvJiYoYS5saW5lSGVpZ2h0PU1hdGgubWF4KDEuMixvLmxpbmVIZWlnaHQpKX19ZnVuY3Rpb24gZml4VVJMKGUpe2NvbnN0IHQ9Y3JlYXRlVmFsaWRBYnNvbHV0ZVVybChlLG51bGwse2FkZERlZmF1bHRQcm90b2NvbDohMCx0cnlDb252ZXJ0RW5jb2Rpbmc6ITB9KTtyZXR1cm4gdD90LmhyZWY6bnVsbH1mdW5jdGlvbiBjcmVhdGVMaW5lKGUsdCl7cmV0dXJue25hbWU6ImRpdiIsYXR0cmlidXRlczp7Y2xhc3M6WyJsci10YiI9PT1lLmxheW91dD8ieGZhTHIiOiJ4ZmFSbCJdfSxjaGlsZHJlbjp0fX1mdW5jdGlvbiBmbHVzaEhUTUwoZSl7aWYoIWVbdGldKXJldHVybiBudWxsO2NvbnN0IHQ9e25hbWU6ImRpdiIsYXR0cmlidXRlczplW3RpXS5hdHRyaWJ1dGVzLGNoaWxkcmVuOmVbdGldLmNoaWxkcmVufTtpZihlW3RpXS5mYWlsaW5nTm9kZSl7Y29uc3Qgbj1lW3RpXS5mYWlsaW5nTm9kZVthaV0oKTtuJiYoZS5sYXlvdXQuZW5kc1dpdGgoIi10YiIpP3QuY2hpbGRyZW4ucHVzaChjcmVhdGVMaW5lKGUsW25dKSk6dC5jaGlsZHJlbi5wdXNoKG4pKX1yZXR1cm4gMD09PXQuY2hpbGRyZW4ubGVuZ3RoP251bGw6dH1mdW5jdGlvbiBhZGRIVE1MKGUsdCxuKXtjb25zdCBhPWVbdGldLHI9YS5hdmFpbGFibGVTcGFjZSxbcyxpLG8sbF09bjtzd2l0Y2goZS5sYXlvdXQpe2Nhc2UicG9zaXRpb24iOmEud2lkdGg9TWF0aC5tYXgoYS53aWR0aCxzK28pO2EuaGVpZ2h0PU1hdGgubWF4KGEuaGVpZ2h0LGkrbCk7YS5jaGlsZHJlbi5wdXNoKHQpO2JyZWFrO2Nhc2UibHItdGIiOmNhc2UicmwtdGIiOmlmKCFhLmxpbmV8fDE9PT1hLmF0dGVtcHQpe2EubGluZT1jcmVhdGVMaW5lKGUsW10pO2EuY2hpbGRyZW4ucHVzaChhLmxpbmUpO2EubnVtYmVySW5MaW5lPTB9YS5udW1iZXJJbkxpbmUrPTE7YS5saW5lLmNoaWxkcmVuLnB1c2godCk7aWYoMD09PWEuYXR0ZW1wdCl7YS5jdXJyZW50V2lkdGgrPW87YS5oZWlnaHQ9TWF0aC5tYXgoYS5oZWlnaHQsYS5wcmV2SGVpZ2h0K2wpfWVsc2V7YS5jdXJyZW50V2lkdGg9bzthLnByZXZIZWlnaHQ9YS5oZWlnaHQ7YS5oZWlnaHQrPWw7YS5hdHRlbXB0PTB9YS53aWR0aD1NYXRoLm1heChhLndpZHRoLGEuY3VycmVudFdpZHRoKTticmVhaztjYXNlInJsLXJvdyI6Y2FzZSJyb3ciOnthLmNoaWxkcmVuLnB1c2godCk7YS53aWR0aCs9bzthLmhlaWdodD1NYXRoLm1heChhLmhlaWdodCxsKTtjb25zdCBlPW1lYXN1cmVUb1N0cmluZyhhLmhlaWdodCk7Zm9yKGNvbnN0IHQgb2YgYS5jaGlsZHJlbil0LmF0dHJpYnV0ZXMuc3R5bGUuaGVpZ2h0PWU7YnJlYWt9Y2FzZSJ0YWJsZSI6Y2FzZSJ0YiI6YS53aWR0aD1NYXRoQ2xhbXAobyxhLndpZHRoLHIud2lkdGgpO2EuaGVpZ2h0Kz1sO2EuY2hpbGRyZW4ucHVzaCh0KX19ZnVuY3Rpb24gZ2V0QXZhaWxhYmxlU3BhY2UoZSl7Y29uc3QgdD1lW3RpXS5hdmFpbGFibGVTcGFjZSxuPWUubWFyZ2luP2UubWFyZ2luLnRvcEluc2V0K2UubWFyZ2luLmJvdHRvbUluc2V0OjAsYT1lLm1hcmdpbj9lLm1hcmdpbi5sZWZ0SW5zZXQrZS5tYXJnaW4ucmlnaHRJbnNldDowO3N3aXRjaChlLmxheW91dCl7Y2FzZSJsci10YiI6Y2FzZSJybC10YiI6cmV0dXJuIDA9PT1lW3RpXS5hdHRlbXB0P3t3aWR0aDp0LndpZHRoLWEtZVt0aV0uY3VycmVudFdpZHRoLGhlaWdodDp0LmhlaWdodC1uLWVbdGldLnByZXZIZWlnaHR9Ont3aWR0aDp0LndpZHRoLWEsaGVpZ2h0OnQuaGVpZ2h0LW4tZVt0aV0uaGVpZ2h0fTtjYXNlInJsLXJvdyI6Y2FzZSJyb3ciOnJldHVybnt3aWR0aDpNYXRoLnN1bVByZWNpc2UoZVt0aV0uY29sdW1uV2lkdGhzLnNsaWNlKGVbdGldLmN1cnJlbnRDb2x1bW4pKSxoZWlnaHQ6dC5oZWlnaHQtYX07Y2FzZSJ0YWJsZSI6Y2FzZSJ0YiI6cmV0dXJue3dpZHRoOnQud2lkdGgtYSxoZWlnaHQ6dC5oZWlnaHQtbi1lW3RpXS5oZWlnaHR9O2RlZmF1bHQ6cmV0dXJuIHR9fWZ1bmN0aW9uIGNoZWNrRGltZW5zaW9ucyhlLHQpe2lmKG51bGw9PT1lW3dpXSgpW3RpXS5maXJzdFVuc3BsaXR0YWJsZSlyZXR1cm4hMDtpZigwPT09ZS53fHwwPT09ZS5oKXJldHVybiEwO2NvbnN0IG49ZVtnaV0oKSxhPW5bdGldPy5hdHRlbXB0fHwwLFsscixzLGldPWZ1bmN0aW9uIGdldFRyYW5zZm9ybWVkQkJveChlKXtsZXQgdCxuLGE9IiI9PT1lLnc/TmFOOmUudyxyPSIiPT09ZS5oP05hTjplLmgsW3MsaV09WzAsMF07c3dpdGNoKGUuYW5jaG9yVHlwZXx8IiIpe2Nhc2UiYm90dG9tQ2VudGVyIjpbcyxpXT1bYS8yLHJdO2JyZWFrO2Nhc2UiYm90dG9tTGVmdCI6W3MsaV09WzAscl07YnJlYWs7Y2FzZSJib3R0b21SaWdodCI6W3MsaV09W2Escl07YnJlYWs7Y2FzZSJtaWRkbGVDZW50ZXIiOltzLGldPVthLzIsci8yXTticmVhaztjYXNlIm1pZGRsZUxlZnQiOltzLGldPVswLHIvMl07YnJlYWs7Y2FzZSJtaWRkbGVSaWdodCI6W3MsaV09W2Esci8yXTticmVhaztjYXNlInRvcENlbnRlciI6W3MsaV09W2EvMiwwXTticmVhaztjYXNlInRvcFJpZ2h0IjpbcyxpXT1bYSwwXX1zd2l0Y2goZS5yb3RhdGV8fDApe2Nhc2UgMDpbdCxuXT1bLXMsLWldO2JyZWFrO2Nhc2UgOTA6W3Qsbl09Wy1pLHNdO1thLHJdPVtyLC1hXTticmVhaztjYXNlIDE4MDpbdCxuXT1bcyxpXTtbYSxyXT1bLWEsLXJdO2JyZWFrO2Nhc2UgMjcwOlt0LG5dPVtpLC1zXTtbYSxyXT1bLXIsYV19cmV0dXJuW2UueCt0K01hdGgubWluKDAsYSksZS55K24rTWF0aC5taW4oMCxyKSxNYXRoLmFicyhhKSxNYXRoLmFicyhyKV19KGUpO3N3aXRjaChuLmxheW91dCl7Y2FzZSJsci10YiI6Y2FzZSJybC10YiI6cmV0dXJuIDA9PT1hP2Vbd2ldKClbdGldLm5vTGF5b3V0RmFpbHVyZT8iIiE9PWUudz9NYXRoLnJvdW5kKHMtdC53aWR0aCk8PTI6dC53aWR0aD4yOiEoIiIhPT1lLmgmJk1hdGgucm91bmQoaS10LmhlaWdodCk+MikmJigiIiE9PWUudz9NYXRoLnJvdW5kKHMtdC53aWR0aCk8PTJ8fDA9PT1uW3RpXS5udW1iZXJJbkxpbmUmJnQuaGVpZ2h0PjI6dC53aWR0aD4yKTohIWVbd2ldKClbdGldLm5vTGF5b3V0RmFpbHVyZXx8ISgiIiE9PWUuaCYmTWF0aC5yb3VuZChpLXQuaGVpZ2h0KT4yKSYmKCgiIj09PWUud3x8TWF0aC5yb3VuZChzLXQud2lkdGgpPD0yfHwhbltUaV0oKSkmJnQuaGVpZ2h0PjIpO2Nhc2UidGFibGUiOmNhc2UidGIiOnJldHVybiEhZVt3aV0oKVt0aV0ubm9MYXlvdXRGYWlsdXJlfHwoIiI9PT1lLmh8fGVbRmldKCk/KCIiPT09ZS53fHxNYXRoLnJvdW5kKHMtdC53aWR0aCk8PTJ8fCFuW1RpXSgpKSYmdC5oZWlnaHQ+MjpNYXRoLnJvdW5kKGktdC5oZWlnaHQpPD0yKTtjYXNlInBvc2l0aW9uIjppZihlW3dpXSgpW3RpXS5ub0xheW91dEZhaWx1cmUpcmV0dXJuITA7aWYoIiI9PT1lLmh8fE1hdGgucm91bmQoaStyLXQuaGVpZ2h0KTw9MilyZXR1cm4hMDtyZXR1cm4gaStyPmVbd2ldKClbdGldLmN1cnJlbnRDb250ZW50QXJlYS5oO2Nhc2Uicmwtcm93IjpjYXNlInJvdyI6cmV0dXJuISFlW3dpXSgpW3RpXS5ub0xheW91dEZhaWx1cmV8fCgiIj09PWUuaHx8TWF0aC5yb3VuZChpLXQuaGVpZ2h0KTw9Mik7ZGVmYXVsdDpyZXR1cm4hMH19Y29uc3Qgem89aW8udGVtcGxhdGUuaWQsX289Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixMbz0vXkgoXGQrKSQvLFVvPW5ldyBTZXQoWyJpbWFnZS9naWYiLCJpbWFnZS9qcGVnIiwiaW1hZ2UvanBnIiwiaW1hZ2UvcGpwZWciLCJpbWFnZS9wbmciLCJpbWFnZS9hcG5nIiwiaW1hZ2UveC1wbmciLCJpbWFnZS9ibXAiLCJpbWFnZS94LW1zLWJtcCIsImltYWdlL3RpZmYiLCJpbWFnZS90aWYiLCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iXSksWG89W1tbNjYsNzddLCJpbWFnZS9ibXAiXSxbWzI1NSwyMTYsMjU1XSwiaW1hZ2UvanBlZyJdLFtbNzMsNzMsNDIsMF0sImltYWdlL3RpZmYiXSxbWzc3LDc3LDAsNDJdLCJpbWFnZS90aWZmIl0sW1s3MSw3Myw3MCw1Niw1Nyw5N10sImltYWdlL2dpZiJdLFtbMTM3LDgwLDc4LDcxLDEzLDEwLDI2LDEwXSwiaW1hZ2UvcG5nIl1dO2Z1bmN0aW9uIGdldEJvcmRlckRpbXMoZSl7aWYoIWV8fCFlLmJvcmRlcilyZXR1cm57dzowLGg6MH07Y29uc3QgdD1lLmJvcmRlcltoaV0oKTtyZXR1cm4gdD97dzp0LndpZHRoc1swXSt0LndpZHRoc1syXSt0Lmluc2V0c1swXSt0Lmluc2V0c1syXSxoOnQud2lkdGhzWzFdK3Qud2lkdGhzWzNdK3QuaW5zZXRzWzFdK3QuaW5zZXRzWzNdfTp7dzowLGg6MH19ZnVuY3Rpb24gaGFzTWFyZ2luKGUpe3JldHVybiBlLm1hcmdpbiYmKGUubWFyZ2luLnRvcEluc2V0fHxlLm1hcmdpbi5yaWdodEluc2V0fHxlLm1hcmdpbi5ib3R0b21JbnNldHx8ZS5tYXJnaW4ubGVmdEluc2V0KX1mdW5jdGlvbiBfc2V0VmFsdWUoZSx0KXtpZighZS52YWx1ZSl7Y29uc3QgdD1uZXcgVmFsdWUoe30pO2VbV3NdKHQpO2UudmFsdWU9dH1lLnZhbHVlW0ppXSh0KX1mdW5jdGlvbipnZXRDb250YWluZWRDaGlsZHJlbihlKXtmb3IoY29uc3QgdCBvZiBlW21pXSgpKXQgaW5zdGFuY2VvZiBTdWJmb3JtU2V0P3lpZWxkKnRbcGldKCk6eWllbGQgdH1mdW5jdGlvbiBpc1JlcXVpcmVkKGUpe3JldHVybiJlcnJvciI9PT1lLnZhbGlkYXRlPy5udWxsVGVzdH1mdW5jdGlvbiBzZXRUYWJJbmRleChlKXtmb3IoO2U7KXtpZighZS50cmF2ZXJzYWwpe2VbUWldPWVbYmldKClbUWldO3JldHVybn1pZihlW1FpXSlyZXR1cm47bGV0IHQ9bnVsbDtmb3IoY29uc3QgbiBvZiBlLnRyYXZlcnNhbFttaV0oKSlpZigibmV4dCI9PT1uLm9wZXJhdGlvbil7dD1uO2JyZWFrfWlmKCF0fHwhdC5yZWYpe2VbUWldPWVbYmldKClbUWldO3JldHVybn1jb25zdCBuPWVbd2ldKCk7ZVtRaV09KytuW1FpXTtjb25zdCBhPW5bR2ldKHQucmVmLGUpO2lmKCFhKXJldHVybjtlPWFbMF19fWZ1bmN0aW9uIGFwcGx5QXNzaXN0KGUsdCl7Y29uc3Qgbj1lLmFzc2lzdDtpZihuKXtjb25zdCBlPW5bdG9dKCk7ZSYmKHQudGl0bGU9ZSk7Y29uc3QgYT1uLnJvbGUubWF0Y2goTG8pO2lmKGEpe2NvbnN0IGU9ImhlYWRpbmciLG49YVsxXTt0LnJvbGU9ZTt0WyJhcmlhLWxldmVsIl09bn19aWYoInRhYmxlIj09PWUubGF5b3V0KXQucm9sZT0idGFibGUiO2Vsc2UgaWYoInJvdyI9PT1lLmxheW91dCl0LnJvbGU9InJvdyI7ZWxzZXtjb25zdCBuPWVbYmldKCk7InJvdyI9PT1uLmxheW91dCYmKHQucm9sZT0iVEgiPT09bi5hc3Npc3Q/LnJvbGU/ImNvbHVtbmhlYWRlciI6ImNlbGwiKX19ZnVuY3Rpb24gYXJpYUxhYmVsKGUpe2lmKCFlLmFzc2lzdClyZXR1cm4gbnVsbDtjb25zdCB0PWUuYXNzaXN0O3JldHVybiB0LnNwZWFrJiYiIiE9PXQuc3BlYWtbUXNdP3Quc3BlYWtbUXNdOnQudG9vbFRpcD90LnRvb2xUaXBbUXNdOm51bGx9ZnVuY3Rpb24gdmFsdWVUb0h0bWwoZSl7cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2Vzcyh7bmFtZToiZGl2IixhdHRyaWJ1dGVzOntjbGFzczpbInhmYVJpY2giXSxzdHlsZTpPYmplY3QuY3JlYXRlKG51bGwpfSxjaGlsZHJlbjpbe25hbWU6InNwYW4iLGF0dHJpYnV0ZXM6e3N0eWxlOk9iamVjdC5jcmVhdGUobnVsbCl9LHZhbHVlOmV9XX0pfWZ1bmN0aW9uIHNldEZpcnN0VW5zcGxpdHRhYmxlKGUpe2NvbnN0IHQ9ZVt3aV0oKTtpZihudWxsPT09dFt0aV0uZmlyc3RVbnNwbGl0dGFibGUpe3RbdGldLmZpcnN0VW5zcGxpdHRhYmxlPWU7dFt0aV0ubm9MYXlvdXRGYWlsdXJlPSEwfX1mdW5jdGlvbiB1bnNldEZpcnN0VW5zcGxpdHRhYmxlKGUpe2NvbnN0IHQ9ZVt3aV0oKTt0W3RpXS5maXJzdFVuc3BsaXR0YWJsZT09PWUmJih0W3RpXS5ub0xheW91dEZhaWx1cmU9ITEpfWZ1bmN0aW9uIGhhbmRsZUJyZWFrKGUpe2lmKGVbdGldKXJldHVybiExO2VbdGldPU9iamVjdC5jcmVhdGUobnVsbCk7aWYoImF1dG8iPT09ZS50YXJnZXRUeXBlKXJldHVybiExO2NvbnN0IHQ9ZVt3aV0oKTtsZXQgbj1udWxsO2lmKGUudGFyZ2V0KXtuPXRbR2ldKGUudGFyZ2V0LGVbYmldKCkpO2lmKCFuKXJldHVybiExO249blswXX1jb25zdHtjdXJyZW50UGFnZUFyZWE6YSxjdXJyZW50Q29udGVudEFyZWE6cn09dFt0aV07aWYoInBhZ2VBcmVhIj09PWUudGFyZ2V0VHlwZSl7biBpbnN0YW5jZW9mIFBhZ2VBcmVhfHwobj1udWxsKTtpZihlLnN0YXJ0TmV3KXtlW3RpXS50YXJnZXQ9bnx8YTtyZXR1cm4hMH1pZihuJiZuIT09YSl7ZVt0aV0udGFyZ2V0PW47cmV0dXJuITB9cmV0dXJuITF9biBpbnN0YW5jZW9mIENvbnRlbnRBcmVhfHwobj1udWxsKTtjb25zdCBzPW4mJm5bYmldKCk7bGV0IGksbz1zO2lmKGUuc3RhcnROZXcpaWYobil7Y29uc3QgZT1zLmNvbnRlbnRBcmVhLmNoaWxkcmVuLHQ9ZS5pbmRleE9mKHIpLGE9ZS5pbmRleE9mKG4pOy0xIT09dCYmdDxhJiYobz1udWxsKTtpPWEtMX1lbHNlIGk9YS5jb250ZW50QXJlYS5jaGlsZHJlbi5pbmRleE9mKHIpO2Vsc2V7aWYoIW58fG49PT1yKXJldHVybiExO2k9cy5jb250ZW50QXJlYS5jaGlsZHJlbi5pbmRleE9mKG4pLTE7bz1zPT09YT9udWxsOnN9ZVt0aV0udGFyZ2V0PW87ZVt0aV0uaW5kZXg9aTtyZXR1cm4hMH1mdW5jdGlvbiBoYW5kbGVPdmVyZmxvdyhlLHQsbil7Y29uc3QgYT1lW3dpXSgpLHI9YVt0aV0ubm9MYXlvdXRGYWlsdXJlLHM9dFtnaV07dFtnaV09KCk9PmU7YVt0aV0ubm9MYXlvdXRGYWlsdXJlPSEwO2NvbnN0IGk9dFt0b10obik7ZVtYc10oaS5odG1sLGkuYmJveCk7YVt0aV0ubm9MYXlvdXRGYWlsdXJlPXI7dFtnaV09c31jbGFzcyBBcHBlYXJhbmNlRmlsdGVyIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJhcHBlYXJhbmNlRmlsdGVyIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnR5cGU9Z2V0U3RyaW5nT3B0aW9uKGUudHlwZSxbIm9wdGlvbmFsIiwicmVxdWlyZWQiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBBcmMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sImFyYyIsITApO3RoaXMuY2lyY3VsYXI9Z2V0SW50ZWdlcih7ZGF0YTplLmNpcmN1bGFyLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfSk7dGhpcy5oYW5kPWdldFN0cmluZ09wdGlvbihlLmhhbmQsWyJldmVuIiwibGVmdCIsInJpZ2h0Il0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5zdGFydEFuZ2xlPWdldEZsb2F0KHtkYXRhOmUuc3RhcnRBbmdsZSxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTplPT4hMH0pO3RoaXMuc3dlZXBBbmdsZT1nZXRGbG9hdCh7ZGF0YTplLnN3ZWVwQW5nbGUsZGVmYXVsdFZhbHVlOjM2MCx2YWxpZGF0ZTplPT4hMH0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmVkZ2U9bnVsbDt0aGlzLmZpbGw9bnVsbH1bdG9dKCl7Y29uc3QgZT10aGlzLmVkZ2V8fG5ldyBFZGdlKHt9KSx0PWVbYW9dKCksbj1PYmplY3QuY3JlYXRlKG51bGwpOyJ2aXNpYmxlIj09PXRoaXMuZmlsbD8ucHJlc2VuY2U/T2JqZWN0LmFzc2lnbihuLHRoaXMuZmlsbFthb10oKSk6bi5maWxsPSJ0cmFuc3BhcmVudCI7bi5zdHJva2VXaWR0aD1tZWFzdXJlVG9TdHJpbmcoInZpc2libGUiPT09ZS5wcmVzZW5jZT9lLnRoaWNrbmVzczowKTtuLnN0cm9rZT10LmNvbG9yO2xldCBhO2NvbnN0IHI9e3htbG5zOl9vLHN0eWxlOnt3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixvdmVyZmxvdzoidmlzaWJsZSJ9fTtpZigzNjA9PT10aGlzLnN3ZWVwQW5nbGUpYT17bmFtZToiZWxsaXBzZSIsYXR0cmlidXRlczp7eG1sbnM6X28sY3g6IjUwJSIsY3k6IjUwJSIscng6IjUwJSIscnk6IjUwJSIsc3R5bGU6bn19O2Vsc2V7Y29uc3QgZT10aGlzLnN0YXJ0QW5nbGUqTWF0aC5QSS8xODAsdD10aGlzLnN3ZWVwQW5nbGUqTWF0aC5QSS8xODAscz10aGlzLnN3ZWVwQW5nbGU+MTgwPzE6MCxbaSxvLGwsZl09WzUwKigxK01hdGguY29zKGUpKSw1MCooMS1NYXRoLnNpbihlKSksNTAqKDErTWF0aC5jb3MoZSt0KSksNTAqKDEtTWF0aC5zaW4oZSt0KSldO2E9e25hbWU6InBhdGgiLGF0dHJpYnV0ZXM6e3htbG5zOl9vLGQ6YE0gJHtpfSAke299IEEgNTAgNTAgMCAke3N9IDAgJHtsfSAke2Z9YCx2ZWN0b3JFZmZlY3Q6Im5vbi1zY2FsaW5nLXN0cm9rZSIsc3R5bGU6bn19O09iamVjdC5hc3NpZ24ocix7dmlld0JveDoiMCAwIDEwMCAxMDAiLHByZXNlcnZlQXNwZWN0UmF0aW86Im5vbmUifSl9Y29uc3Qgcz17bmFtZToic3ZnIixjaGlsZHJlbjpbYV0sYXR0cmlidXRlczpyfTtpZihoYXNNYXJnaW4odGhpc1tiaV0oKVtiaV0oKSkpcmV0dXJuIEhUTUxSZXN1bHQuc3VjY2Vzcyh7bmFtZToiZGl2IixhdHRyaWJ1dGVzOntzdHlsZTp7ZGlzcGxheToiaW5saW5lIix3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIn19LGNoaWxkcmVuOltzXX0pO3MuYXR0cmlidXRlcy5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO3JldHVybiBIVE1MUmVzdWx0LnN1Y2Nlc3Mocyl9fWNsYXNzIEFyZWEgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sImFyZWEiLCEwKTt0aGlzLmNvbFNwYW49Z2V0SW50ZWdlcih7ZGF0YTplLmNvbFNwYW4sZGVmYXVsdFZhbHVlOjEsdmFsaWRhdGU6ZT0+ZT49MXx8LTE9PT1lfSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnJlbGV2YW50PWdldFJlbGV2YW50KGUucmVsZXZhbnQpO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLng9Z2V0TWVhc3VyZW1lbnQoZS54LCIwcHQiKTt0aGlzLnk9Z2V0TWVhc3VyZW1lbnQoZS55LCIwcHQiKTt0aGlzLmRlc2M9bnVsbDt0aGlzLmV4dHJhcz1udWxsO3RoaXMuYXJlYT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5kcmF3PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmV4T2JqZWN0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmV4Y2xHcm91cD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5maWVsZD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zdWJmb3JtPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnN1YmZvcm1TZXQ9bmV3IFhGQU9iamVjdEFycmF5fSpbcGldKCl7eWllbGQqZ2V0Q29udGFpbmVkQ2hpbGRyZW4odGhpcyl9W09pXSgpe3JldHVybiEwfVt4aV0oKXtyZXR1cm4hMH1bWHNdKGUsdCl7Y29uc3RbbixhLHIsc109dDt0aGlzW3RpXS53aWR0aD1NYXRoLm1heCh0aGlzW3RpXS53aWR0aCxuK3IpO3RoaXNbdGldLmhlaWdodD1NYXRoLm1heCh0aGlzW3RpXS5oZWlnaHQsYStzKTt0aGlzW3RpXS5jaGlsZHJlbi5wdXNoKGUpfVtpaV0oKXtyZXR1cm4gdGhpc1t0aV0uYXZhaWxhYmxlU3BhY2V9W3RvXShlKXtjb25zdCB0PXRvU3R5bGUodGhpcywicG9zaXRpb24iKSxuPXtzdHlsZTp0LGlkOnRoaXNbcm9dLGNsYXNzOlsieGZhQXJlYSJdfTtpc1ByaW50T25seSh0aGlzKSYmbi5jbGFzcy5wdXNoKCJ4ZmFQcmludE9ubHkiKTt0aGlzLm5hbWUmJihuLnhmYU5hbWU9dGhpcy5uYW1lKTtjb25zdCBhPVtdO3RoaXNbdGldPXtjaGlsZHJlbjphLHdpZHRoOjAsaGVpZ2h0OjAsYXZhaWxhYmxlU3BhY2U6ZX07Y29uc3Qgcj10aGlzW0tzXSh7ZmlsdGVyOm5ldyBTZXQoWyJhcmVhIiwiZHJhdyIsImZpZWxkIiwiZXhjbEdyb3VwIiwic3ViZm9ybSIsInN1YmZvcm1TZXQiXSksaW5jbHVkZTohMH0pO2lmKCFyLnN1Y2Nlc3Mpe2lmKHIuaXNCcmVhaygpKXJldHVybiByO2RlbGV0ZSB0aGlzW3RpXTtyZXR1cm4gSFRNTFJlc3VsdC5GQUlMVVJFfXQud2lkdGg9bWVhc3VyZVRvU3RyaW5nKHRoaXNbdGldLndpZHRoKTt0LmhlaWdodD1tZWFzdXJlVG9TdHJpbmcodGhpc1t0aV0uaGVpZ2h0KTtjb25zdCBzPXtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6bixjaGlsZHJlbjphfSxpPVt0aGlzLngsdGhpcy55LHRoaXNbdGldLndpZHRoLHRoaXNbdGldLmhlaWdodF07ZGVsZXRlIHRoaXNbdGldO3JldHVybiBIVE1MUmVzdWx0LnN1Y2Nlc3MocyxpKX19Y2xhc3MgQXNzaXN0IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJhc3Npc3QiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMucm9sZT1lLnJvbGV8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLnNwZWFrPW51bGw7dGhpcy50b29sVGlwPW51bGx9W3RvXSgpe3JldHVybiB0aGlzLnRvb2xUaXA/LltRc118fG51bGx9fWNsYXNzIEJhcmNvZGUgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sImJhcmNvZGUiLCEwKTt0aGlzLmNoYXJFbmNvZGluZz1nZXRLZXl3b3JkKHtkYXRhOmUuY2hhckVuY29kaW5nP2UuY2hhckVuY29kaW5nLnRvTG93ZXJDYXNlKCk6IiIsZGVmYXVsdFZhbHVlOiIiLHZhbGlkYXRlOmU9PlsidXRmLTgiLCJiaWctZml2ZSIsImZvbnRzcGVjaWZpYyIsImdiayIsImdiLTE4MDMwIiwiZ2ItMjMxMiIsImtzYy01NjAxIiwibm9uZSIsInNoaWZ0LWppcyIsInVjcy0yIiwidXRmLTE2Il0uaW5jbHVkZXMoZSl8fGUubWF0Y2goL2lzby04ODU5LVxkezJ9Lyl9KTt0aGlzLmNoZWNrc3VtPWdldFN0cmluZ09wdGlvbihlLmNoZWNrc3VtLFsibm9uZSIsIjFtb2QxMCIsIjFtb2QxMF8xbW9kMTEiLCIybW9kMTAiLCJhdXRvIl0pO3RoaXMuZGF0YUNvbHVtbkNvdW50PWdldEludGVnZXIoe2RhdGE6ZS5kYXRhQ29sdW1uQ291bnQsZGVmYXVsdFZhbHVlOi0xLHZhbGlkYXRlOmU9PmU+PTB9KTt0aGlzLmRhdGFMZW5ndGg9Z2V0SW50ZWdlcih7ZGF0YTplLmRhdGFMZW5ndGgsZGVmYXVsdFZhbHVlOi0xLHZhbGlkYXRlOmU9PmU+PTB9KTt0aGlzLmRhdGFQcmVwPWdldFN0cmluZ09wdGlvbihlLmRhdGFQcmVwLFsibm9uZSIsImZsYXRlQ29tcHJlc3MiXSk7dGhpcy5kYXRhUm93Q291bnQ9Z2V0SW50ZWdlcih7ZGF0YTplLmRhdGFSb3dDb3VudCxkZWZhdWx0VmFsdWU6LTEsdmFsaWRhdGU6ZT0+ZT49MH0pO3RoaXMuZW5kQ2hhcj1lLmVuZENoYXJ8fCIiO3RoaXMuZXJyb3JDb3JyZWN0aW9uTGV2ZWw9Z2V0SW50ZWdlcih7ZGF0YTplLmVycm9yQ29ycmVjdGlvbkxldmVsLGRlZmF1bHRWYWx1ZTotMSx2YWxpZGF0ZTplPT5lPj0wJiZlPD04fSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm1vZHVsZUhlaWdodD1nZXRNZWFzdXJlbWVudChlLm1vZHVsZUhlaWdodCwiNW1tIik7dGhpcy5tb2R1bGVXaWR0aD1nZXRNZWFzdXJlbWVudChlLm1vZHVsZVdpZHRoLCIwLjI1bW0iKTt0aGlzLnByaW50Q2hlY2tEaWdpdD1nZXRJbnRlZ2VyKHtkYXRhOmUucHJpbnRDaGVja0RpZ2l0LGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfSk7dGhpcy5yb3dDb2x1bW5SYXRpbz1nZXRSYXRpbyhlLnJvd0NvbHVtblJhdGlvKTt0aGlzLnN0YXJ0Q2hhcj1lLnN0YXJ0Q2hhcnx8IiI7dGhpcy50ZXh0TG9jYXRpb249Z2V0U3RyaW5nT3B0aW9uKGUudGV4dExvY2F0aW9uLFsiYmVsb3ciLCJhYm92ZSIsImFib3ZlRW1iZWRkZWQiLCJiZWxvd0VtYmVkZGVkIiwibm9uZSJdKTt0aGlzLnRydW5jYXRlPWdldEludGVnZXIoe2RhdGE6ZS50cnVuY2F0ZSxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTplPT4xPT09ZX0pO3RoaXMudHlwZT1nZXRTdHJpbmdPcHRpb24oZS50eXBlP2UudHlwZS50b0xvd2VyQ2FzZSgpOiIiLFsiYXp0ZWMiLCJjb2RhYmFyIiwiY29kZTJvZjVpbmR1c3RyaWFsIiwiY29kZTJvZjVpbnRlcmxlYXZlZCIsImNvZGUyb2Y1bWF0cml4IiwiY29kZTJvZjVzdGFuZGFyZCIsImNvZGUzb2Y5IiwiY29kZTNvZjlleHRlbmRlZCIsImNvZGUxMSIsImNvZGU0OSIsImNvZGU5MyIsImNvZGUxMjgiLCJjb2RlMTI4YSIsImNvZGUxMjhiIiwiY29kZTEyOGMiLCJjb2RlMTI4c3NjYyIsImRhdGFtYXRyaXgiLCJlYW44IiwiZWFuOGFkZDIiLCJlYW44YWRkNSIsImVhbjEzIiwiZWFuMTNhZGQyIiwiZWFuMTNhZGQ1IiwiZWFuMTNwd2NkIiwiZmltIiwibG9nbWFycyIsIm1heGljb2RlIiwibXNpIiwicGRmNDE3IiwicGRmNDE3bWFjcm8iLCJwbGVzc2V5IiwicG9zdGF1c2N1c3QyIiwicG9zdGF1c2N1c3QzIiwicG9zdGF1c3JlcGx5cGFpZCIsInBvc3RhdXNzdGFuZGFyZCIsInBvc3R1a3JtNHNjYyIsInBvc3R1c2RwYmMiLCJwb3N0dXNpbWIiLCJwb3N0dXNzdGFuZGFyZCIsInBvc3R1czV6aXAiLCJxcmNvZGUiLCJyZmlkIiwicnNzMTQiLCJyc3MxNGV4cGFuZGVkIiwicnNzMTRsaW1pdGVkIiwicnNzMTRzdGFja2VkIiwicnNzMTRzdGFja2Vkb21uaSIsInJzczE0dHJ1bmNhdGVkIiwidGVsZXBlbiIsInVjYzEyOCIsInVjYzEyOHJhbmRvbSIsInVjYzEyOHNzY2MiLCJ1cGNhIiwidXBjYWFkZDIiLCJ1cGNhYWRkNSIsInVwY2Fwd2NkIiwidXBjZSIsInVwY2VhZGQyIiwidXBjZWFkZDUiLCJ1cGNlYW4yIiwidXBjZWFuNSIsInVwc21heGljb2RlIl0pO3RoaXMudXBzTW9kZT1nZXRTdHJpbmdPcHRpb24oZS51cHNNb2RlLFsidXNDYXJyaWVyIiwiaW50ZXJuYXRpb25hbENhcnJpZXIiLCJzZWN1cmVTeW1ib2wiLCJzdGFuZGFyZFN5bWJvbCJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy53aWRlTmFycm93UmF0aW89Z2V0UmF0aW8oZS53aWRlTmFycm93UmF0aW8pO3RoaXMuZW5jcnlwdD1udWxsO3RoaXMuZXh0cmFzPW51bGx9fWNsYXNzIEJpbmQgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sImJpbmQiLCEwKTt0aGlzLm1hdGNoPWdldFN0cmluZ09wdGlvbihlLm1hdGNoLFsib25jZSIsImRhdGFSZWYiLCJnbG9iYWwiLCJub25lIl0pO3RoaXMucmVmPWUucmVmfHwiIjt0aGlzLnBpY3R1cmU9bnVsbH19Y2xhc3MgQmluZEl0ZW1zIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJiaW5kSXRlbXMiKTt0aGlzLmNvbm5lY3Rpb249ZS5jb25uZWN0aW9ufHwiIjt0aGlzLmxhYmVsUmVmPWUubGFiZWxSZWZ8fCIiO3RoaXMucmVmPWUucmVmfHwiIjt0aGlzLnZhbHVlUmVmPWUudmFsdWVSZWZ8fCIifX1jbGFzcyBCb29rZW5kIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJib29rZW5kIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmxlYWRlcj1lLmxlYWRlcnx8IiI7dGhpcy50cmFpbGVyPWUudHJhaWxlcnx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBCb29sZWFuRWxlbWVudCBleHRlbmRzIE9wdGlvbjAxe2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJib29sZWFuIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9W3RvXShlKXtyZXR1cm4gdmFsdWVUb0h0bWwoMT09PXRoaXNbUXNdPyIxIjoiMCIpfX1jbGFzcyBCb3JkZXIgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sImJvcmRlciIsITApO3RoaXMuYnJlYWs9Z2V0U3RyaW5nT3B0aW9uKGUuYnJlYWssWyJjbG9zZSIsIm9wZW4iXSk7dGhpcy5oYW5kPWdldFN0cmluZ09wdGlvbihlLmhhbmQsWyJldmVuIiwibGVmdCIsInJpZ2h0Il0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5wcmVzZW5jZT1nZXRTdHJpbmdPcHRpb24oZS5wcmVzZW5jZSxbInZpc2libGUiLCJoaWRkZW4iLCJpbmFjdGl2ZSIsImludmlzaWJsZSJdKTt0aGlzLnJlbGV2YW50PWdldFJlbGV2YW50KGUucmVsZXZhbnQpO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmNvcm5lcj1uZXcgWEZBT2JqZWN0QXJyYXkoNCk7dGhpcy5lZGdlPW5ldyBYRkFPYmplY3RBcnJheSg0KTt0aGlzLmV4dHJhcz1udWxsO3RoaXMuZmlsbD1udWxsO3RoaXMubWFyZ2luPW51bGx9W2hpXSgpe2lmKCF0aGlzW3RpXSl7Y29uc3QgZT10aGlzLmVkZ2UuY2hpbGRyZW4uc2xpY2UoKTtpZihlLmxlbmd0aDw0KXtjb25zdCB0PWUuYXQoLTEpfHxuZXcgRWRnZSh7fSk7Zm9yKGxldCBuPWUubGVuZ3RoO248NDtuKyspZS5wdXNoKHQpfWNvbnN0IHQ9ZS5tYXAoZT0+ZS50aGlja25lc3MpLG49WzAsMCwwLDBdO2lmKHRoaXMubWFyZ2luKXtuWzBdPXRoaXMubWFyZ2luLnRvcEluc2V0O25bMV09dGhpcy5tYXJnaW4ucmlnaHRJbnNldDtuWzJdPXRoaXMubWFyZ2luLmJvdHRvbUluc2V0O25bM109dGhpcy5tYXJnaW4ubGVmdEluc2V0fXRoaXNbdGldPXt3aWR0aHM6dCxpbnNldHM6bixlZGdlczplfX1yZXR1cm4gdGhpc1t0aV19W2FvXSgpe2NvbnN0e2VkZ2VzOmV9PXRoaXNbaGldKCksdD1lLm1hcChlPT57Y29uc3QgdD1lW2FvXSgpO3QuY29sb3J8fD0iIzAwMDAwMCI7cmV0dXJuIHR9KSxuPU9iamVjdC5jcmVhdGUobnVsbCk7dGhpcy5tYXJnaW4mJk9iamVjdC5hc3NpZ24obix0aGlzLm1hcmdpblthb10oKSk7InZpc2libGUiPT09dGhpcy5maWxsPy5wcmVzZW5jZSYmT2JqZWN0LmFzc2lnbihuLHRoaXMuZmlsbFthb10oKSk7aWYodGhpcy5jb3JuZXIuY2hpbGRyZW4uc29tZShlPT4wIT09ZS5yYWRpdXMpKXtjb25zdCBlPXRoaXMuY29ybmVyLmNoaWxkcmVuLm1hcChlPT5lW2FvXSgpKTtpZigyPT09ZS5sZW5ndGh8fDM9PT1lLmxlbmd0aCl7Y29uc3QgdD1lLmF0KC0xKTtmb3IobGV0IG49ZS5sZW5ndGg7bjw0O24rKyllLnB1c2godCl9bi5ib3JkZXJSYWRpdXM9ZS5tYXAoZT0+ZS5yYWRpdXMpLmpvaW4oIiAiKX1zd2l0Y2godGhpcy5wcmVzZW5jZSl7Y2FzZSJpbnZpc2libGUiOmNhc2UiaGlkZGVuIjpuLmJvcmRlclN0eWxlPSIiO2JyZWFrO2Nhc2UiaW5hY3RpdmUiOm4uYm9yZGVyU3R5bGU9Im5vbmUiO2JyZWFrO2RlZmF1bHQ6bi5ib3JkZXJTdHlsZT10Lm1hcChlPT5lLnN0eWxlKS5qb2luKCIgIil9bi5ib3JkZXJXaWR0aD10Lm1hcChlPT5lLndpZHRoKS5qb2luKCIgIik7bi5ib3JkZXJDb2xvcj10Lm1hcChlPT5lLmNvbG9yKS5qb2luKCIgIik7cmV0dXJuIG59fWNsYXNzIEJyZWFrIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJicmVhayIsITApO3RoaXMuYWZ0ZXI9Z2V0U3RyaW5nT3B0aW9uKGUuYWZ0ZXIsWyJhdXRvIiwiY29udGVudEFyZWEiLCJwYWdlQXJlYSIsInBhZ2VFdmVuIiwicGFnZU9kZCJdKTt0aGlzLmFmdGVyVGFyZ2V0PWUuYWZ0ZXJUYXJnZXR8fCIiO3RoaXMuYmVmb3JlPWdldFN0cmluZ09wdGlvbihlLmJlZm9yZSxbImF1dG8iLCJjb250ZW50QXJlYSIsInBhZ2VBcmVhIiwicGFnZUV2ZW4iLCJwYWdlT2RkIl0pO3RoaXMuYmVmb3JlVGFyZ2V0PWUuYmVmb3JlVGFyZ2V0fHwiIjt0aGlzLmJvb2tlbmRMZWFkZXI9ZS5ib29rZW5kTGVhZGVyfHwiIjt0aGlzLmJvb2tlbmRUcmFpbGVyPWUuYm9va2VuZFRyYWlsZXJ8fCIiO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5vdmVyZmxvd0xlYWRlcj1lLm92ZXJmbG93TGVhZGVyfHwiIjt0aGlzLm92ZXJmbG93VGFyZ2V0PWUub3ZlcmZsb3dUYXJnZXR8fCIiO3RoaXMub3ZlcmZsb3dUcmFpbGVyPWUub3ZlcmZsb3dUcmFpbGVyfHwiIjt0aGlzLnN0YXJ0TmV3PWdldEludGVnZXIoe2RhdGE6ZS5zdGFydE5ldyxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTplPT4xPT09ZX0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmV4dHJhcz1udWxsfX1jbGFzcyBCcmVha0FmdGVyIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJicmVha0FmdGVyIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmxlYWRlcj1lLmxlYWRlcnx8IiI7dGhpcy5zdGFydE5ldz1nZXRJbnRlZ2VyKHtkYXRhOmUuc3RhcnROZXcsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+MT09PWV9KTt0aGlzLnRhcmdldD1lLnRhcmdldHx8IiI7dGhpcy50YXJnZXRUeXBlPWdldFN0cmluZ09wdGlvbihlLnRhcmdldFR5cGUsWyJhdXRvIiwiY29udGVudEFyZWEiLCJwYWdlQXJlYSJdKTt0aGlzLnRyYWlsZXI9ZS50cmFpbGVyfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5zY3JpcHQ9bnVsbH19Y2xhc3MgQnJlYWtCZWZvcmUgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sImJyZWFrQmVmb3JlIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmxlYWRlcj1lLmxlYWRlcnx8IiI7dGhpcy5zdGFydE5ldz1nZXRJbnRlZ2VyKHtkYXRhOmUuc3RhcnROZXcsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+MT09PWV9KTt0aGlzLnRhcmdldD1lLnRhcmdldHx8IiI7dGhpcy50YXJnZXRUeXBlPWdldFN0cmluZ09wdGlvbihlLnRhcmdldFR5cGUsWyJhdXRvIiwiY29udGVudEFyZWEiLCJwYWdlQXJlYSJdKTt0aGlzLnRyYWlsZXI9ZS50cmFpbGVyfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5zY3JpcHQ9bnVsbH1bdG9dKGUpe3RoaXNbdGldPXt9O3JldHVybiBIVE1MUmVzdWx0LkZBSUxVUkV9fWNsYXNzIEJ1dHRvbiBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywiYnV0dG9uIiwhMCk7dGhpcy5oaWdobGlnaHQ9Z2V0U3RyaW5nT3B0aW9uKGUuaGlnaGxpZ2h0LFsiaW52ZXJ0ZWQiLCJub25lIiwib3V0bGluZSIsInB1c2giXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5leHRyYXM9bnVsbH1bdG9dKGUpe2NvbnN0IHQ9dGhpc1tiaV0oKVtiaV0oKSxuPXtuYW1lOiJidXR0b24iLGF0dHJpYnV0ZXM6e2lkOnRoaXNbcm9dLGNsYXNzOlsieGZhQnV0dG9uIl0sc3R5bGU6e319LGNoaWxkcmVuOltdfTtmb3IoY29uc3QgZSBvZiB0LmV2ZW50LmNoaWxkcmVuKXtpZigiY2xpY2siIT09ZS5hY3Rpdml0eXx8IWUuc2NyaXB0KWNvbnRpbnVlO2NvbnN0IHQ9cmVjb3ZlckpzVVJMKGUuc2NyaXB0W1FzXSk7aWYoIXQpY29udGludWU7Y29uc3QgYT1maXhVUkwodC51cmwpO2EmJm4uY2hpbGRyZW4ucHVzaCh7bmFtZToiYSIsYXR0cmlidXRlczp7aWQ6ImxpbmsiK3RoaXNbcm9dLGhyZWY6YSxuZXdXaW5kb3c6dC5uZXdXaW5kb3csY2xhc3M6WyJ4ZmFMaW5rIl0sc3R5bGU6e319LGNoaWxkcmVuOltdfSl9cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2VzcyhuKX19Y2xhc3MgQ2FsY3VsYXRlIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJjYWxjdWxhdGUiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMub3ZlcnJpZGU9Z2V0U3RyaW5nT3B0aW9uKGUub3ZlcnJpZGUsWyJkaXNhYmxlZCIsImVycm9yIiwiaWdub3JlIiwid2FybmluZyJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5leHRyYXM9bnVsbDt0aGlzLm1lc3NhZ2U9bnVsbDt0aGlzLnNjcmlwdD1udWxsfX1jbGFzcyBDYXB0aW9uIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJjYXB0aW9uIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnBsYWNlbWVudD1nZXRTdHJpbmdPcHRpb24oZS5wbGFjZW1lbnQsWyJsZWZ0IiwiYm90dG9tIiwiaW5saW5lIiwicmlnaHQiLCJ0b3AiXSk7dGhpcy5wcmVzZW5jZT1nZXRTdHJpbmdPcHRpb24oZS5wcmVzZW5jZSxbInZpc2libGUiLCJoaWRkZW4iLCJpbmFjdGl2ZSIsImludmlzaWJsZSJdKTt0aGlzLnJlc2VydmU9TWF0aC5jZWlsKGdldE1lYXN1cmVtZW50KGUucmVzZXJ2ZSkpO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmV4dHJhcz1udWxsO3RoaXMuZm9udD1udWxsO3RoaXMubWFyZ2luPW51bGw7dGhpcy5wYXJhPW51bGw7dGhpcy52YWx1ZT1udWxsfVtKaV0oZSl7X3NldFZhbHVlKHRoaXMsZSl9W2hpXShlKXtpZighdGhpc1t0aV0pe2xldHt3aWR0aDp0LGhlaWdodDpufT1lO3N3aXRjaCh0aGlzLnBsYWNlbWVudCl7Y2FzZSJsZWZ0IjpjYXNlInJpZ2h0IjpjYXNlImlubGluZSI6dD10aGlzLnJlc2VydmU8PTA/dDp0aGlzLnJlc2VydmU7YnJlYWs7Y2FzZSJ0b3AiOmNhc2UiYm90dG9tIjpuPXRoaXMucmVzZXJ2ZTw9MD9uOnRoaXMucmVzZXJ2ZX10aGlzW3RpXT1sYXlvdXROb2RlKHRoaXMse3dpZHRoOnQsaGVpZ2h0Om59KX1yZXR1cm4gdGhpc1t0aV19W3RvXShlKXtpZighdGhpcy52YWx1ZSlyZXR1cm4gSFRNTFJlc3VsdC5FTVBUWTt0aGlzW1hpXSgpO2NvbnN0IHQ9dGhpcy52YWx1ZVt0b10oZSkuaHRtbDtpZighdCl7dGhpc1tfaV0oKTtyZXR1cm4gSFRNTFJlc3VsdC5FTVBUWX1jb25zdCBuPXRoaXMucmVzZXJ2ZTtpZih0aGlzLnJlc2VydmU8PTApe2NvbnN0e3c6dCxoOm59PXRoaXNbaGldKGUpO3N3aXRjaCh0aGlzLnBsYWNlbWVudCl7Y2FzZSJsZWZ0IjpjYXNlInJpZ2h0IjpjYXNlImlubGluZSI6dGhpcy5yZXNlcnZlPXQ7YnJlYWs7Y2FzZSJ0b3AiOmNhc2UiYm90dG9tIjp0aGlzLnJlc2VydmU9bn19Y29uc3QgYT1bXTsic3RyaW5nIj09dHlwZW9mIHQ/YS5wdXNoKHtuYW1lOiIjdGV4dCIsdmFsdWU6dH0pOmEucHVzaCh0KTtjb25zdCByPXRvU3R5bGUodGhpcywiZm9udCIsIm1hcmdpbiIsInZpc2liaWxpdHkiKTtzd2l0Y2godGhpcy5wbGFjZW1lbnQpe2Nhc2UibGVmdCI6Y2FzZSJyaWdodCI6dGhpcy5yZXNlcnZlPjAmJihyLndpZHRoPW1lYXN1cmVUb1N0cmluZyh0aGlzLnJlc2VydmUpKTticmVhaztjYXNlInRvcCI6Y2FzZSJib3R0b20iOnRoaXMucmVzZXJ2ZT4wJiYoci5oZWlnaHQ9bWVhc3VyZVRvU3RyaW5nKHRoaXMucmVzZXJ2ZSkpfXNldFBhcmEodGhpcyxudWxsLHQpO3RoaXNbX2ldKCk7dGhpcy5yZXNlcnZlPW47cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2Vzcyh7bmFtZToiZGl2IixhdHRyaWJ1dGVzOntzdHlsZTpyLGNsYXNzOlsieGZhQ2FwdGlvbiJdfSxjaGlsZHJlbjphfSl9fWNsYXNzIENlcnRpZmljYXRlIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJjZXJ0aWZpY2F0ZSIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBDZXJ0aWZpY2F0ZXMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sImNlcnRpZmljYXRlcyIsITApO3RoaXMuY3JlZGVudGlhbFNlcnZlclBvbGljeT1nZXRTdHJpbmdPcHRpb24oZS5jcmVkZW50aWFsU2VydmVyUG9saWN5LFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudXJsPWUudXJsfHwiIjt0aGlzLnVybFBvbGljeT1lLnVybFBvbGljeXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuZW5jcnlwdGlvbj1udWxsO3RoaXMuaXNzdWVycz1udWxsO3RoaXMua2V5VXNhZ2U9bnVsbDt0aGlzLm9pZHM9bnVsbDt0aGlzLnNpZ25pbmc9bnVsbDt0aGlzLnN1YmplY3RETnM9bnVsbH19Y2xhc3MgQ2hlY2tCdXR0b24gZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sImNoZWNrQnV0dG9uIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm1hcms9Z2V0U3RyaW5nT3B0aW9uKGUubWFyayxbImRlZmF1bHQiLCJjaGVjayIsImNpcmNsZSIsImNyb3NzIiwiZGlhbW9uZCIsInNxdWFyZSIsInN0YXIiXSk7dGhpcy5zaGFwZT1nZXRTdHJpbmdPcHRpb24oZS5zaGFwZSxbInNxdWFyZSIsInJvdW5kIl0pO3RoaXMuc2l6ZT1nZXRNZWFzdXJlbWVudChlLnNpemUsIjEwcHQiKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5ib3JkZXI9bnVsbDt0aGlzLmV4dHJhcz1udWxsO3RoaXMubWFyZ2luPW51bGx9W3RvXShlKXtjb25zdCB0PXRvU3R5bGUodGhpcywibWFyZ2luIiksbj1tZWFzdXJlVG9TdHJpbmcodGhpcy5zaXplKTt0LndpZHRoPXQuaGVpZ2h0PW47bGV0IGEscixzO2NvbnN0IGk9dGhpc1tiaV0oKVtiaV0oKSxvPWkuaXRlbXMuY2hpbGRyZW4ubGVuZ3RoJiZpLml0ZW1zLmNoaWxkcmVuWzBdW3RvXSgpLmh0bWx8fFtdLGw9e29uOih2b2lkIDAhPT1vWzBdP29bMF06Im9uIikudG9TdHJpbmcoKSxvZmY6KHZvaWQgMCE9PW9bMV0/b1sxXToib2ZmIikudG9TdHJpbmcoKX0sZj0oaS52YWx1ZT8uW1ppXSgpfHwib2ZmIik9PT1sLm9ufHx2b2lkIDAsYz1pW2dpXSgpLGg9aVtyb107bGV0IHU7aWYoYyBpbnN0YW5jZW9mIEV4Y2xHcm91cCl7cz1jW3JvXTthPSJyYWRpbyI7cj0ieGZhUmFkaW8iO3U9Y1tac10/Lltyb118fGNbcm9dfWVsc2V7YT0iY2hlY2tib3giO3I9InhmYUNoZWNrYm94Ijt1PWlbWnNdPy5bcm9dfHxpW3JvXX1jb25zdCBtPXtuYW1lOiJpbnB1dCIsYXR0cmlidXRlczp7Y2xhc3M6W3JdLHN0eWxlOnQsZmllbGRJZDpoLGRhdGFJZDp1LHR5cGU6YSxjaGVja2VkOmYseGZhT246bC5vbix4ZmFPZmY6bC5vZmYsImFyaWEtbGFiZWwiOmFyaWFMYWJlbChpKSwiYXJpYS1yZXF1aXJlZCI6ITF9fTtzJiYobS5hdHRyaWJ1dGVzLm5hbWU9cyk7aWYoaXNSZXF1aXJlZChpKSl7bS5hdHRyaWJ1dGVzWyJhcmlhLXJlcXVpcmVkIl09ITA7bS5hdHRyaWJ1dGVzLnJlcXVpcmVkPSEwfXJldHVybiBIVE1MUmVzdWx0LnN1Y2Nlc3Moe25hbWU6ImxhYmVsIixhdHRyaWJ1dGVzOntjbGFzczpbInhmYUxhYmVsIl19LGNoaWxkcmVuOlttXX0pfX1jbGFzcyBDaG9pY2VMaXN0IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJjaG9pY2VMaXN0IiwhMCk7dGhpcy5jb21taXRPbj1nZXRTdHJpbmdPcHRpb24oZS5jb21taXRPbixbInNlbGVjdCIsImV4aXQiXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm9wZW49Z2V0U3RyaW5nT3B0aW9uKGUub3BlbixbInVzZXJDb250cm9sIiwiYWx3YXlzIiwibXVsdGlTZWxlY3QiLCJvbkVudHJ5Il0pO3RoaXMudGV4dEVudHJ5PWdldEludGVnZXIoe2RhdGE6ZS50ZXh0RW50cnksZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+MT09PWV9KTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5ib3JkZXI9bnVsbDt0aGlzLmV4dHJhcz1udWxsO3RoaXMubWFyZ2luPW51bGx9W3RvXShlKXtjb25zdCB0PXRvU3R5bGUodGhpcywiYm9yZGVyIiwibWFyZ2luIiksbj10aGlzW2JpXSgpW2JpXSgpLGE9e2ZvbnRTaXplOmBjYWxjKCR7bi5mb250Py5zaXplfHwxMH1weCAqIHZhcigtLXRvdGFsLXNjYWxlLWZhY3RvcikpYH0scj1bXTtpZihuLml0ZW1zLmNoaWxkcmVuLmxlbmd0aD4wKXtjb25zdCBlPW4uaXRlbXM7bGV0IHQ9MCxzPTA7aWYoMj09PWUuY2hpbGRyZW4ubGVuZ3RoKXt0PWUuY2hpbGRyZW5bMF0uc2F2ZTtzPTEtdH1jb25zdCBpPWUuY2hpbGRyZW5bdF1bdG9dKCkuaHRtbCxvPWUuY2hpbGRyZW5bc11bdG9dKCkuaHRtbDtsZXQgbD0hMTtjb25zdCBmPW4udmFsdWU/LltaaV0oKXx8IiI7Zm9yKGxldCBlPTAsdD1pLmxlbmd0aDtlPHQ7ZSsrKXtjb25zdCB0PXtuYW1lOiJvcHRpb24iLGF0dHJpYnV0ZXM6e3ZhbHVlOm9bZV18fGlbZV0sc3R5bGU6YX0sdmFsdWU6aVtlXX07b1tlXT09PWYmJih0LmF0dHJpYnV0ZXMuc2VsZWN0ZWQ9bD0hMCk7ci5wdXNoKHQpfWx8fHIuc3BsaWNlKDAsMCx7bmFtZToib3B0aW9uIixhdHRyaWJ1dGVzOntoaWRkZW46ITAsc2VsZWN0ZWQ6ITB9LHZhbHVlOiIgIn0pfWNvbnN0IHM9e2NsYXNzOlsieGZhU2VsZWN0Il0sZmllbGRJZDpuW3JvXSxkYXRhSWQ6bltac10/Lltyb118fG5bcm9dLHN0eWxlOnQsImFyaWEtbGFiZWwiOmFyaWFMYWJlbChuKSwiYXJpYS1yZXF1aXJlZCI6ITF9O2lmKGlzUmVxdWlyZWQobikpe3NbImFyaWEtcmVxdWlyZWQiXT0hMDtzLnJlcXVpcmVkPSEwfSJtdWx0aVNlbGVjdCI9PT10aGlzLm9wZW4mJihzLm11bHRpcGxlPSEwKTtyZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOiJsYWJlbCIsYXR0cmlidXRlczp7Y2xhc3M6WyJ4ZmFMYWJlbCJdfSxjaGlsZHJlbjpbe25hbWU6InNlbGVjdCIsY2hpbGRyZW46cixhdHRyaWJ1dGVzOnN9XX0pfX1jbGFzcyBDb2xvciBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywiY29sb3IiLCEwKTt0aGlzLmNTcGFjZT1nZXRTdHJpbmdPcHRpb24oZS5jU3BhY2UsWyJTUkdCIl0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMudmFsdWU9ZS52YWx1ZT9mdW5jdGlvbiBnZXRDb2xvcihlLHQ9WzAsMCwwXSl7bGV0W24sYSxyXT10O2lmKCFlKXJldHVybntyOm4sZzphLGI6cn07Y29uc3Qgcz1lLnNwbGl0KCIsIiwzKS5tYXAoZT0+TWF0aENsYW1wKHBhcnNlSW50KGUudHJpbSgpLDEwKSwwLDI1NSkpLm1hcChlPT5pc05hTihlKT8wOmUpO2lmKHMubGVuZ3RoPDMpcmV0dXJue3I6bixnOmEsYjpyfTtbbixhLHJdPXM7cmV0dXJue3I6bixnOmEsYjpyfX0oZS52YWx1ZSk6IiI7dGhpcy5leHRyYXM9bnVsbH1ba2ldKCl7cmV0dXJuITF9W2FvXSgpe3JldHVybiB0aGlzLnZhbHVlP1V0aWwubWFrZUhleENvbG9yKHRoaXMudmFsdWUucix0aGlzLnZhbHVlLmcsdGhpcy52YWx1ZS5iKTpudWxsfX1jbGFzcyBDb21iIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJjb21iIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm51bWJlck9mQ2VsbHM9Z2V0SW50ZWdlcih7ZGF0YTplLm51bWJlck9mQ2VsbHMsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+ZT49MH0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn19Y2xhc3MgQ29ubmVjdCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywiY29ubmVjdCIsITApO3RoaXMuY29ubmVjdGlvbj1lLmNvbm5lY3Rpb258fCIiO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5yZWY9ZS5yZWZ8fCIiO3RoaXMudXNhZ2U9Z2V0U3RyaW5nT3B0aW9uKGUudXNhZ2UsWyJleHBvcnRBbmRJbXBvcnQiLCJleHBvcnRPbmx5IiwiaW1wb3J0T25seSJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5waWN0dXJlPW51bGx9fWNsYXNzIENvbnRlbnRBcmVhIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJjb250ZW50QXJlYSIsITApO3RoaXMuaD1nZXRNZWFzdXJlbWVudChlLmgpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy5yZWxldmFudD1nZXRSZWxldmFudChlLnJlbGV2YW50KTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy53PWdldE1lYXN1cmVtZW50KGUudyk7dGhpcy54PWdldE1lYXN1cmVtZW50KGUueCwiMHB0Iik7dGhpcy55PWdldE1lYXN1cmVtZW50KGUueSwiMHB0Iik7dGhpcy5kZXNjPW51bGw7dGhpcy5leHRyYXM9bnVsbH1bdG9dKGUpe2NvbnN0IHQ9e2xlZnQ6bWVhc3VyZVRvU3RyaW5nKHRoaXMueCksdG9wOm1lYXN1cmVUb1N0cmluZyh0aGlzLnkpLHdpZHRoOm1lYXN1cmVUb1N0cmluZyh0aGlzLncpLGhlaWdodDptZWFzdXJlVG9TdHJpbmcodGhpcy5oKX0sbj1bInhmYUNvbnRlbnRhcmVhIl07aXNQcmludE9ubHkodGhpcykmJm4ucHVzaCgieGZhUHJpbnRPbmx5Iik7cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2Vzcyh7bmFtZToiZGl2IixjaGlsZHJlbjpbXSxhdHRyaWJ1dGVzOntzdHlsZTp0LGNsYXNzOm4saWQ6dGhpc1tyb119fSl9fWNsYXNzIENvcm5lciBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywiY29ybmVyIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmludmVydGVkPWdldEludGVnZXIoe2RhdGE6ZS5pbnZlcnRlZCxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTplPT4xPT09ZX0pO3RoaXMuam9pbj1nZXRTdHJpbmdPcHRpb24oZS5qb2luLFsic3F1YXJlIiwicm91bmQiXSk7dGhpcy5wcmVzZW5jZT1nZXRTdHJpbmdPcHRpb24oZS5wcmVzZW5jZSxbInZpc2libGUiLCJoaWRkZW4iLCJpbmFjdGl2ZSIsImludmlzaWJsZSJdKTt0aGlzLnJhZGl1cz1nZXRNZWFzdXJlbWVudChlLnJhZGl1cyk7dGhpcy5zdHJva2U9Z2V0U3RyaW5nT3B0aW9uKGUuc3Ryb2tlLFsic29saWQiLCJkYXNoRG90IiwiZGFzaERvdERvdCIsImRhc2hlZCIsImRvdHRlZCIsImVtYm9zc2VkIiwiZXRjaGVkIiwibG93ZXJlZCIsInJhaXNlZCJdKTt0aGlzLnRoaWNrbmVzcz1nZXRNZWFzdXJlbWVudChlLnRoaWNrbmVzcywiMC41cHQiKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5jb2xvcj1udWxsO3RoaXMuZXh0cmFzPW51bGx9W2FvXSgpe2NvbnN0IGU9dG9TdHlsZSh0aGlzLCJ2aXNpYmlsaXR5Iik7ZS5yYWRpdXM9bWVhc3VyZVRvU3RyaW5nKCJzcXVhcmUiPT09dGhpcy5qb2luPzA6dGhpcy5yYWRpdXMpO3JldHVybiBlfX1jbGFzcyBEYXRlRWxlbWVudCBleHRlbmRzIENvbnRlbnRPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sImRhdGUiKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn1bbmldKCl7Y29uc3QgZT10aGlzW1FzXS50cmltKCk7dGhpc1tRc109ZT9uZXcgRGF0ZShlKTpudWxsfVt0b10oZSl7cmV0dXJuIHZhbHVlVG9IdG1sKHRoaXNbUXNdP3RoaXNbUXNdLnRvU3RyaW5nKCk6IiIpfX1jbGFzcyBEYXRlVGltZSBleHRlbmRzIENvbnRlbnRPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sImRhdGVUaW1lIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9W25pXSgpe2NvbnN0IGU9dGhpc1tRc10udHJpbSgpO3RoaXNbUXNdPWU/bmV3IERhdGUoZSk6bnVsbH1bdG9dKGUpe3JldHVybiB2YWx1ZVRvSHRtbCh0aGlzW1FzXT90aGlzW1FzXS50b1N0cmluZygpOiIiKX19Y2xhc3MgRGF0ZVRpbWVFZGl0IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJkYXRlVGltZUVkaXQiLCEwKTt0aGlzLmhTY3JvbGxQb2xpY3k9Z2V0U3RyaW5nT3B0aW9uKGUuaFNjcm9sbFBvbGljeSxbImF1dG8iLCJvZmYiLCJvbiJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMucGlja2VyPWdldFN0cmluZ09wdGlvbihlLnBpY2tlcixbImhvc3QiLCJub25lIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmJvcmRlcj1udWxsO3RoaXMuY29tYj1udWxsO3RoaXMuZXh0cmFzPW51bGw7dGhpcy5tYXJnaW49bnVsbH1bdG9dKGUpe2NvbnN0IHQ9dG9TdHlsZSh0aGlzLCJib3JkZXIiLCJmb250IiwibWFyZ2luIiksbj10aGlzW2JpXSgpW2JpXSgpLGE9e25hbWU6ImlucHV0IixhdHRyaWJ1dGVzOnt0eXBlOiJ0ZXh0IixmaWVsZElkOm5bcm9dLGRhdGFJZDpuW1pzXT8uW3JvXXx8bltyb10sY2xhc3M6WyJ4ZmFUZXh0ZmllbGQiXSxzdHlsZTp0LCJhcmlhLWxhYmVsIjphcmlhTGFiZWwobiksImFyaWEtcmVxdWlyZWQiOiExfX07aWYoaXNSZXF1aXJlZChuKSl7YS5hdHRyaWJ1dGVzWyJhcmlhLXJlcXVpcmVkIl09ITA7YS5hdHRyaWJ1dGVzLnJlcXVpcmVkPSEwfXJldHVybiBIVE1MUmVzdWx0LnN1Y2Nlc3Moe25hbWU6ImxhYmVsIixhdHRyaWJ1dGVzOntjbGFzczpbInhmYUxhYmVsIl19LGNoaWxkcmVuOlthXX0pfX1jbGFzcyBEZWNpbWFsIGV4dGVuZHMgQ29udGVudE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywiZGVjaW1hbCIpO3RoaXMuZnJhY0RpZ2l0cz1nZXRJbnRlZ2VyKHtkYXRhOmUuZnJhY0RpZ2l0cyxkZWZhdWx0VmFsdWU6Mix2YWxpZGF0ZTplPT4hMH0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5sZWFkRGlnaXRzPWdldEludGVnZXIoe2RhdGE6ZS5sZWFkRGlnaXRzLGRlZmF1bHRWYWx1ZTotMSx2YWxpZGF0ZTplPT4hMH0pO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn1bbmldKCl7Y29uc3QgZT1wYXJzZUZsb2F0KHRoaXNbUXNdLnRyaW0oKSk7dGhpc1tRc109aXNOYU4oZSk/bnVsbDplfVt0b10oZSl7cmV0dXJuIHZhbHVlVG9IdG1sKG51bGwhPT10aGlzW1FzXT90aGlzW1FzXS50b1N0cmluZygpOiIiKX19Y2xhc3MgRGVmYXVsdFVpIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJkZWZhdWx0VWkiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmV4dHJhcz1udWxsfX1jbGFzcyBEZXNjIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJkZXNjIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5ib29sZWFuPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRhdGU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZGF0ZVRpbWU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZGVjaW1hbD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5leERhdGE9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZmxvYXQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuaW1hZ2U9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuaW50ZWdlcj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy50ZXh0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnRpbWU9bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBEaWdlc3RNZXRob2QgZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sImRpZ2VzdE1ldGhvZCIsWyIiLCJTSEExIiwiU0hBMjU2IiwiU0hBNTEyIiwiUklQRU1EMTYwIl0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBEaWdlc3RNZXRob2RzIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJkaWdlc3RNZXRob2RzIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnR5cGU9Z2V0U3RyaW5nT3B0aW9uKGUudHlwZSxbIm9wdGlvbmFsIiwicmVxdWlyZWQiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuZGlnZXN0TWV0aG9kPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgRHJhdyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywiZHJhdyIsITApO3RoaXMuYW5jaG9yVHlwZT1nZXRTdHJpbmdPcHRpb24oZS5hbmNob3JUeXBlLFsidG9wTGVmdCIsImJvdHRvbUNlbnRlciIsImJvdHRvbUxlZnQiLCJib3R0b21SaWdodCIsIm1pZGRsZUNlbnRlciIsIm1pZGRsZUxlZnQiLCJtaWRkbGVSaWdodCIsInRvcENlbnRlciIsInRvcFJpZ2h0Il0pO3RoaXMuY29sU3Bhbj1nZXRJbnRlZ2VyKHtkYXRhOmUuY29sU3BhbixkZWZhdWx0VmFsdWU6MSx2YWxpZGF0ZTplPT5lPj0xfHwtMT09PWV9KTt0aGlzLmg9ZS5oP2dldE1lYXN1cmVtZW50KGUuaCk6IiI7dGhpcy5oQWxpZ249Z2V0U3RyaW5nT3B0aW9uKGUuaEFsaWduLFsibGVmdCIsImNlbnRlciIsImp1c3RpZnkiLCJqdXN0aWZ5QWxsIiwicmFkaXgiLCJyaWdodCJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubG9jYWxlPWUubG9jYWxlfHwiIjt0aGlzLm1heEg9Z2V0TWVhc3VyZW1lbnQoZS5tYXhILCIwcHQiKTt0aGlzLm1heFc9Z2V0TWVhc3VyZW1lbnQoZS5tYXhXLCIwcHQiKTt0aGlzLm1pbkg9Z2V0TWVhc3VyZW1lbnQoZS5taW5ILCIwcHQiKTt0aGlzLm1pblc9Z2V0TWVhc3VyZW1lbnQoZS5taW5XLCIwcHQiKTt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnByZXNlbmNlPWdldFN0cmluZ09wdGlvbihlLnByZXNlbmNlLFsidmlzaWJsZSIsImhpZGRlbiIsImluYWN0aXZlIiwiaW52aXNpYmxlIl0pO3RoaXMucmVsZXZhbnQ9Z2V0UmVsZXZhbnQoZS5yZWxldmFudCk7dGhpcy5yb3RhdGU9Z2V0SW50ZWdlcih7ZGF0YTplLnJvdGF0ZSxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTplPT5lJTkwPT0wfSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMudz1lLnc/Z2V0TWVhc3VyZW1lbnQoZS53KToiIjt0aGlzLng9Z2V0TWVhc3VyZW1lbnQoZS54LCIwcHQiKTt0aGlzLnk9Z2V0TWVhc3VyZW1lbnQoZS55LCIwcHQiKTt0aGlzLmFzc2lzdD1udWxsO3RoaXMuYm9yZGVyPW51bGw7dGhpcy5jYXB0aW9uPW51bGw7dGhpcy5kZXNjPW51bGw7dGhpcy5leHRyYXM9bnVsbDt0aGlzLmZvbnQ9bnVsbDt0aGlzLmtlZXA9bnVsbDt0aGlzLm1hcmdpbj1udWxsO3RoaXMucGFyYT1udWxsO3RoaXMudHJhdmVyc2FsPW51bGw7dGhpcy51aT1udWxsO3RoaXMudmFsdWU9bnVsbDt0aGlzLnNldFByb3BlcnR5PW5ldyBYRkFPYmplY3RBcnJheX1bSmldKGUpe19zZXRWYWx1ZSh0aGlzLGUpfVt0b10oZSl7c2V0VGFiSW5kZXgodGhpcyk7aWYoImhpZGRlbiI9PT10aGlzLnByZXNlbmNlfHwiaW5hY3RpdmUiPT09dGhpcy5wcmVzZW5jZSlyZXR1cm4gSFRNTFJlc3VsdC5FTVBUWTtmaXhEaW1lbnNpb25zKHRoaXMpO3RoaXNbWGldKCk7Y29uc3QgdD10aGlzLncsbj10aGlzLmgse3c6YSxoOnIsaXNCcm9rZW46c309bGF5b3V0Tm9kZSh0aGlzLGUpO2lmKGEmJiIiPT09dGhpcy53KXtpZihzJiZ0aGlzW2dpXSgpW1RpXSgpKXt0aGlzW19pXSgpO3JldHVybiBIVE1MUmVzdWx0LkZBSUxVUkV9dGhpcy53PWF9ciYmIiI9PT10aGlzLmgmJih0aGlzLmg9cik7c2V0Rmlyc3RVbnNwbGl0dGFibGUodGhpcyk7aWYoIWNoZWNrRGltZW5zaW9ucyh0aGlzLGUpKXt0aGlzLnc9dDt0aGlzLmg9bjt0aGlzW19pXSgpO3JldHVybiBIVE1MUmVzdWx0LkZBSUxVUkV9dW5zZXRGaXJzdFVuc3BsaXR0YWJsZSh0aGlzKTtjb25zdCBpPXRvU3R5bGUodGhpcywiZm9udCIsImhBbGlnbiIsImRpbWVuc2lvbnMiLCJwb3NpdGlvbiIsInByZXNlbmNlIiwicm90YXRlIiwiYW5jaG9yVHlwZSIsImJvcmRlciIsIm1hcmdpbiIpO3NldE1pbk1heERpbWVuc2lvbnModGhpcyxpKTtpZihpLm1hcmdpbil7aS5wYWRkaW5nPWkubWFyZ2luO2RlbGV0ZSBpLm1hcmdpbn1jb25zdCBvPVsieGZhRHJhdyJdO3RoaXMuZm9udCYmby5wdXNoKCJ4ZmFGb250Iik7aXNQcmludE9ubHkodGhpcykmJm8ucHVzaCgieGZhUHJpbnRPbmx5Iik7Y29uc3QgbD17c3R5bGU6aSxpZDp0aGlzW3JvXSxjbGFzczpvfTt0aGlzLm5hbWUmJihsLnhmYU5hbWU9dGhpcy5uYW1lKTtjb25zdCBmPXtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6bCxjaGlsZHJlbjpbXX07YXBwbHlBc3Npc3QodGhpcyxsKTtjb25zdCBjPWNvbXB1dGVCYm94KHRoaXMsZixlKSxoPXRoaXMudmFsdWU/dGhpcy52YWx1ZVt0b10oZSkuaHRtbDpudWxsO2lmKG51bGw9PT1oKXt0aGlzLnc9dDt0aGlzLmg9bjt0aGlzW19pXSgpO3JldHVybiBIVE1MUmVzdWx0LnN1Y2Nlc3MoY3JlYXRlV3JhcHBlcih0aGlzLGYpLGMpfWYuY2hpbGRyZW4ucHVzaChoKTtzZXRQYXJhKHRoaXMsaSxoKTt0aGlzLnc9dDt0aGlzLmg9bjt0aGlzW19pXSgpO3JldHVybiBIVE1MUmVzdWx0LnN1Y2Nlc3MoY3JlYXRlV3JhcHBlcih0aGlzLGYpLGMpfX1jbGFzcyBFZGdlIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJlZGdlIiwhMCk7dGhpcy5jYXA9Z2V0U3RyaW5nT3B0aW9uKGUuY2FwLFsic3F1YXJlIiwiYnV0dCIsInJvdW5kIl0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5wcmVzZW5jZT1nZXRTdHJpbmdPcHRpb24oZS5wcmVzZW5jZSxbInZpc2libGUiLCJoaWRkZW4iLCJpbmFjdGl2ZSIsImludmlzaWJsZSJdKTt0aGlzLnN0cm9rZT1nZXRTdHJpbmdPcHRpb24oZS5zdHJva2UsWyJzb2xpZCIsImRhc2hEb3QiLCJkYXNoRG90RG90IiwiZGFzaGVkIiwiZG90dGVkIiwiZW1ib3NzZWQiLCJldGNoZWQiLCJsb3dlcmVkIiwicmFpc2VkIl0pO3RoaXMudGhpY2tuZXNzPWdldE1lYXN1cmVtZW50KGUudGhpY2tuZXNzLCIwLjVwdCIpO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmNvbG9yPW51bGw7dGhpcy5leHRyYXM9bnVsbH1bYW9dKCl7Y29uc3QgZT10b1N0eWxlKHRoaXMsInZpc2liaWxpdHkiKTtPYmplY3QuYXNzaWduKGUse2xpbmVjYXA6dGhpcy5jYXAsd2lkdGg6bWVhc3VyZVRvU3RyaW5nKHRoaXMudGhpY2tuZXNzKSxjb2xvcjp0aGlzLmNvbG9yP3RoaXMuY29sb3JbYW9dKCk6IiMwMDAwMDAiLHN0eWxlOiIifSk7aWYoInZpc2libGUiIT09dGhpcy5wcmVzZW5jZSllLnN0eWxlPSJub25lIjtlbHNlIHN3aXRjaCh0aGlzLnN0cm9rZSl7Y2FzZSJzb2xpZCI6ZS5zdHlsZT0ic29saWQiO2JyZWFrO2Nhc2UiZGFzaERvdCI6Y2FzZSJkYXNoRG90RG90IjpjYXNlImRhc2hlZCI6ZS5zdHlsZT0iZGFzaGVkIjticmVhaztjYXNlImRvdHRlZCI6ZS5zdHlsZT0iZG90dGVkIjticmVhaztjYXNlImVtYm9zc2VkIjplLnN0eWxlPSJyaWRnZSI7YnJlYWs7Y2FzZSJldGNoZWQiOmUuc3R5bGU9Imdyb292ZSI7YnJlYWs7Y2FzZSJsb3dlcmVkIjplLnN0eWxlPSJpbnNldCI7YnJlYWs7Y2FzZSJyYWlzZWQiOmUuc3R5bGU9Im91dHNldCJ9cmV0dXJuIGV9fWNsYXNzIEVuY29kaW5nIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJlbmNvZGluZyIsWyJhZGJlLng1MDkucnNhX3NoYTEiLCJhZGJlLnBrY3M3LmRldGFjaGVkIiwiYWRiZS5wa2NzNy5zaGExIl0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBFbmNvZGluZ3MgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sImVuY29kaW5ncyIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy50eXBlPWdldFN0cmluZ09wdGlvbihlLnR5cGUsWyJvcHRpb25hbCIsInJlcXVpcmVkIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmVuY29kaW5nPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgRW5jcnlwdCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywiZW5jcnlwdCIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuY2VydGlmaWNhdGU9bnVsbH19Y2xhc3MgRW5jcnlwdERhdGEgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sImVuY3J5cHREYXRhIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm9wZXJhdGlvbj1nZXRTdHJpbmdPcHRpb24oZS5vcGVyYXRpb24sWyJlbmNyeXB0IiwiZGVjcnlwdCJdKTt0aGlzLnRhcmdldD1lLnRhcmdldHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuZmlsdGVyPW51bGw7dGhpcy5tYW5pZmVzdD1udWxsfX1jbGFzcyBFbmNyeXB0aW9uIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJlbmNyeXB0aW9uIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnR5cGU9Z2V0U3RyaW5nT3B0aW9uKGUudHlwZSxbIm9wdGlvbmFsIiwicmVxdWlyZWQiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuY2VydGlmaWNhdGU9bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBFbmNyeXB0aW9uTWV0aG9kIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJlbmNyeXB0aW9uTWV0aG9kIixbIiIsIkFFUzI1Ni1DQkMiLCJUUklQTEVERVMtQ0JDIiwiQUVTMTI4LUNCQyIsIkFFUzE5Mi1DQkMiXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9fWNsYXNzIEVuY3J5cHRpb25NZXRob2RzIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJlbmNyeXB0aW9uTWV0aG9kcyIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy50eXBlPWdldFN0cmluZ09wdGlvbihlLnR5cGUsWyJvcHRpb25hbCIsInJlcXVpcmVkIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmVuY3J5cHRpb25NZXRob2Q9bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBFdmVudCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywiZXZlbnQiLCEwKTt0aGlzLmFjdGl2aXR5PWdldFN0cmluZ09wdGlvbihlLmFjdGl2aXR5LFsiY2xpY2siLCJjaGFuZ2UiLCJkb2NDbG9zZSIsImRvY1JlYWR5IiwiZW50ZXIiLCJleGl0IiwiZnVsbCIsImluZGV4Q2hhbmdlIiwiaW5pdGlhbGl6ZSIsIm1vdXNlRG93biIsIm1vdXNlRW50ZXIiLCJtb3VzZUV4aXQiLCJtb3VzZVVwIiwicG9zdEV4ZWN1dGUiLCJwb3N0T3BlbiIsInBvc3RQcmludCIsInBvc3RTYXZlIiwicG9zdFNpZ24iLCJwb3N0U3VibWl0IiwicHJlRXhlY3V0ZSIsInByZU9wZW4iLCJwcmVQcmludCIsInByZVNhdmUiLCJwcmVTaWduIiwicHJlU3VibWl0IiwicmVhZHkiLCJ2YWxpZGF0aW9uU3RhdGUiXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmxpc3Rlbj1nZXRTdHJpbmdPcHRpb24oZS5saXN0ZW4sWyJyZWZPbmx5IiwicmVmQW5kRGVzY2VuZGVudHMiXSk7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy5yZWY9ZS5yZWZ8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmV4dHJhcz1udWxsO3RoaXMuZW5jcnlwdERhdGE9bnVsbDt0aGlzLmV4ZWN1dGU9bnVsbDt0aGlzLnNjcmlwdD1udWxsO3RoaXMuc2lnbkRhdGE9bnVsbDt0aGlzLnN1Ym1pdD1udWxsfX1jbGFzcyBFeERhdGEgZXh0ZW5kcyBDb250ZW50T2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJleERhdGEiKTt0aGlzLmNvbnRlbnRUeXBlPWUuY29udGVudFR5cGV8fCIiO3RoaXMuaHJlZj1lLmhyZWZ8fCIiO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5tYXhMZW5ndGg9Z2V0SW50ZWdlcih7ZGF0YTplLm1heExlbmd0aCxkZWZhdWx0VmFsdWU6LTEsdmFsaWRhdGU6ZT0+ZT49LTF9KTt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnJpZD1lLnJpZHx8IiI7dGhpcy50cmFuc2ZlckVuY29kaW5nPWdldFN0cmluZ09wdGlvbihlLnRyYW5zZmVyRW5jb2RpbmcsWyJub25lIiwiYmFzZTY0IiwicGFja2FnZSJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9W1NpXSgpe3JldHVybiJ0ZXh0L2h0bWwiPT09dGhpcy5jb250ZW50VHlwZX1bUGldKGUpe2lmKCJ0ZXh0L2h0bWwiPT09dGhpcy5jb250ZW50VHlwZSYmZVtIaV09PT1pby54aHRtbC5pZCl7dGhpc1tRc109ZTtyZXR1cm4hMH1pZigidGV4dC94bWwiPT09dGhpcy5jb250ZW50VHlwZSl7dGhpc1tRc109ZTtyZXR1cm4hMH1yZXR1cm4hMX1bdG9dKGUpe3JldHVybiJ0ZXh0L2h0bWwiPT09dGhpcy5jb250ZW50VHlwZSYmdGhpc1tRc10/dGhpc1tRc11bdG9dKGUpOkhUTUxSZXN1bHQuRU1QVFl9fWNsYXNzIEV4T2JqZWN0IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJleE9iamVjdCIsITApO3RoaXMuYXJjaGl2ZT1lLmFyY2hpdmV8fCIiO3RoaXMuY2xhc3NJZD1lLmNsYXNzSWR8fCIiO3RoaXMuY29kZUJhc2U9ZS5jb2RlQmFzZXx8IiI7dGhpcy5jb2RlVHlwZT1lLmNvZGVUeXBlfHwiIjt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmV4dHJhcz1udWxsO3RoaXMuYm9vbGVhbj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5kYXRlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRhdGVUaW1lPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRlY2ltYWw9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZXhEYXRhPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmV4T2JqZWN0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmZsb2F0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmltYWdlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmludGVnZXI9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMudGV4dD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy50aW1lPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgRXhjbEdyb3VwIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJleGNsR3JvdXAiLCEwKTt0aGlzLmFjY2Vzcz1nZXRTdHJpbmdPcHRpb24oZS5hY2Nlc3MsWyJvcGVuIiwibm9uSW50ZXJhY3RpdmUiLCJwcm90ZWN0ZWQiLCJyZWFkT25seSJdKTt0aGlzLmFjY2Vzc0tleT1lLmFjY2Vzc0tleXx8IiI7dGhpcy5hbmNob3JUeXBlPWdldFN0cmluZ09wdGlvbihlLmFuY2hvclR5cGUsWyJ0b3BMZWZ0IiwiYm90dG9tQ2VudGVyIiwiYm90dG9tTGVmdCIsImJvdHRvbVJpZ2h0IiwibWlkZGxlQ2VudGVyIiwibWlkZGxlTGVmdCIsIm1pZGRsZVJpZ2h0IiwidG9wQ2VudGVyIiwidG9wUmlnaHQiXSk7dGhpcy5jb2xTcGFuPWdldEludGVnZXIoe2RhdGE6ZS5jb2xTcGFuLGRlZmF1bHRWYWx1ZToxLHZhbGlkYXRlOmU9PmU+PTF8fC0xPT09ZX0pO3RoaXMuaD1lLmg/Z2V0TWVhc3VyZW1lbnQoZS5oKToiIjt0aGlzLmhBbGlnbj1nZXRTdHJpbmdPcHRpb24oZS5oQWxpZ24sWyJsZWZ0IiwiY2VudGVyIiwianVzdGlmeSIsImp1c3RpZnlBbGwiLCJyYWRpeCIsInJpZ2h0Il0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5sYXlvdXQ9Z2V0U3RyaW5nT3B0aW9uKGUubGF5b3V0LFsicG9zaXRpb24iLCJsci10YiIsInJsLXJvdyIsInJsLXRiIiwicm93IiwidGFibGUiLCJ0YiJdKTt0aGlzLm1heEg9Z2V0TWVhc3VyZW1lbnQoZS5tYXhILCIwcHQiKTt0aGlzLm1heFc9Z2V0TWVhc3VyZW1lbnQoZS5tYXhXLCIwcHQiKTt0aGlzLm1pbkg9Z2V0TWVhc3VyZW1lbnQoZS5taW5ILCIwcHQiKTt0aGlzLm1pblc9Z2V0TWVhc3VyZW1lbnQoZS5taW5XLCIwcHQiKTt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnByZXNlbmNlPWdldFN0cmluZ09wdGlvbihlLnByZXNlbmNlLFsidmlzaWJsZSIsImhpZGRlbiIsImluYWN0aXZlIiwiaW52aXNpYmxlIl0pO3RoaXMucmVsZXZhbnQ9Z2V0UmVsZXZhbnQoZS5yZWxldmFudCk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMudz1lLnc/Z2V0TWVhc3VyZW1lbnQoZS53KToiIjt0aGlzLng9Z2V0TWVhc3VyZW1lbnQoZS54LCIwcHQiKTt0aGlzLnk9Z2V0TWVhc3VyZW1lbnQoZS55LCIwcHQiKTt0aGlzLmFzc2lzdD1udWxsO3RoaXMuYmluZD1udWxsO3RoaXMuYm9yZGVyPW51bGw7dGhpcy5jYWxjdWxhdGU9bnVsbDt0aGlzLmNhcHRpb249bnVsbDt0aGlzLmRlc2M9bnVsbDt0aGlzLmV4dHJhcz1udWxsO3RoaXMubWFyZ2luPW51bGw7dGhpcy5wYXJhPW51bGw7dGhpcy50cmF2ZXJzYWw9bnVsbDt0aGlzLnZhbGlkYXRlPW51bGw7dGhpcy5jb25uZWN0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmV2ZW50PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmZpZWxkPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnNldFByb3BlcnR5PW5ldyBYRkFPYmplY3RBcnJheX1beGldKCl7cmV0dXJuITB9W2tpXSgpe3JldHVybiEwfVtKaV0oZSl7Zm9yKGNvbnN0IHQgb2YgdGhpcy5maWVsZC5jaGlsZHJlbil7aWYoIXQudmFsdWUpe2NvbnN0IGU9bmV3IFZhbHVlKHt9KTt0W1dzXShlKTt0LnZhbHVlPWV9dC52YWx1ZVtKaV0oZSl9fVtUaV0oKXtyZXR1cm4gdGhpcy5sYXlvdXQuZW5kc1dpdGgoIi10YiIpJiYwPT09dGhpc1t0aV0uYXR0ZW1wdCYmdGhpc1t0aV0ubnVtYmVySW5MaW5lPjB8fHRoaXNbYmldKClbVGldKCl9W0ZpXSgpe2NvbnN0IGU9dGhpc1tnaV0oKTtpZighZVtGaV0oKSlyZXR1cm4hMTtpZih2b2lkIDAhPT10aGlzW3RpXS5faXNTcGxpdHRhYmxlKXJldHVybiB0aGlzW3RpXS5faXNTcGxpdHRhYmxlO2lmKCJwb3NpdGlvbiI9PT10aGlzLmxheW91dHx8dGhpcy5sYXlvdXQuaW5jbHVkZXMoInJvdyIpKXt0aGlzW3RpXS5faXNTcGxpdHRhYmxlPSExO3JldHVybiExfWlmKGUubGF5b3V0Py5lbmRzV2l0aCgiLXRiIikmJjAhPT1lW3RpXS5udW1iZXJJbkxpbmUpcmV0dXJuITE7dGhpc1t0aV0uX2lzU3BsaXR0YWJsZT0hMDtyZXR1cm4hMH1bYWldKCl7cmV0dXJuIGZsdXNoSFRNTCh0aGlzKX1bWHNdKGUsdCl7YWRkSFRNTCh0aGlzLGUsdCl9W2lpXSgpe3JldHVybiBnZXRBdmFpbGFibGVTcGFjZSh0aGlzKX1bdG9dKGUpe3NldFRhYkluZGV4KHRoaXMpO2lmKCJoaWRkZW4iPT09dGhpcy5wcmVzZW5jZXx8ImluYWN0aXZlIj09PXRoaXMucHJlc2VuY2V8fDA9PT10aGlzLmh8fDA9PT10aGlzLncpcmV0dXJuIEhUTUxSZXN1bHQuRU1QVFk7Zml4RGltZW5zaW9ucyh0aGlzKTtjb25zdCB0PVtdLG49e2lkOnRoaXNbcm9dLGNsYXNzOltdfTtzZXRBY2Nlc3ModGhpcyxuLmNsYXNzKTt0aGlzW3RpXXx8PU9iamVjdC5jcmVhdGUobnVsbCk7T2JqZWN0LmFzc2lnbih0aGlzW3RpXSx7Y2hpbGRyZW46dCxhdHRyaWJ1dGVzOm4sYXR0ZW1wdDowLGxpbmU6bnVsbCxudW1iZXJJbkxpbmU6MCxhdmFpbGFibGVTcGFjZTp7d2lkdGg6TWF0aC5taW4odGhpcy53fHwxLzAsZS53aWR0aCksaGVpZ2h0Ok1hdGgubWluKHRoaXMuaHx8MS8wLGUuaGVpZ2h0KX0sd2lkdGg6MCxoZWlnaHQ6MCxwcmV2SGVpZ2h0OjAsY3VycmVudFdpZHRoOjB9KTtjb25zdCBhPXRoaXNbRmldKCk7YXx8c2V0Rmlyc3RVbnNwbGl0dGFibGUodGhpcyk7aWYoIWNoZWNrRGltZW5zaW9ucyh0aGlzLGUpKXJldHVybiBIVE1MUmVzdWx0LkZBSUxVUkU7Y29uc3Qgcj1uZXcgU2V0KFsiZmllbGQiXSk7aWYodGhpcy5sYXlvdXQuaW5jbHVkZXMoInJvdyIpKXtjb25zdCBlPXRoaXNbZ2ldKCkuY29sdW1uV2lkdGhzO2lmKEFycmF5LmlzQXJyYXkoZSkmJmUubGVuZ3RoPjApe3RoaXNbdGldLmNvbHVtbldpZHRocz1lO3RoaXNbdGldLmN1cnJlbnRDb2x1bW49MH19Y29uc3Qgcz10b1N0eWxlKHRoaXMsImFuY2hvclR5cGUiLCJkaW1lbnNpb25zIiwicG9zaXRpb24iLCJwcmVzZW5jZSIsImJvcmRlciIsIm1hcmdpbiIsImhBbGlnbiIpLGk9WyJ4ZmFFeGNsZ3JvdXAiXSxvPWxheW91dENsYXNzKHRoaXMpO28mJmkucHVzaChvKTtpc1ByaW50T25seSh0aGlzKSYmaS5wdXNoKCJ4ZmFQcmludE9ubHkiKTtuLnN0eWxlPXM7bi5jbGFzcz1pO3RoaXMubmFtZSYmKG4ueGZhTmFtZT10aGlzLm5hbWUpO3RoaXNbWGldKCk7Y29uc3QgbD0ibHItdGIiPT09dGhpcy5sYXlvdXR8fCJybC10YiI9PT10aGlzLmxheW91dCxmPWw/MjoxO2Zvcig7dGhpc1t0aV0uYXR0ZW1wdDxmO3RoaXNbdGldLmF0dGVtcHQrKyl7bCYmMT09PXRoaXNbdGldLmF0dGVtcHQmJih0aGlzW3RpXS5udW1iZXJJbkxpbmU9MCk7Y29uc3QgZT10aGlzW0tzXSh7ZmlsdGVyOnIsaW5jbHVkZTohMH0pO2lmKGUuc3VjY2VzcylicmVhaztpZihlLmlzQnJlYWsoKSl7dGhpc1tfaV0oKTtyZXR1cm4gZX1pZihsJiYwPT09dGhpc1t0aV0uYXR0ZW1wdCYmMD09PXRoaXNbdGldLm51bWJlckluTGluZSYmIXRoaXNbd2ldKClbdGldLm5vTGF5b3V0RmFpbHVyZSl7dGhpc1t0aV0uYXR0ZW1wdD1mO2JyZWFrfX10aGlzW19pXSgpO2F8fHVuc2V0Rmlyc3RVbnNwbGl0dGFibGUodGhpcyk7aWYodGhpc1t0aV0uYXR0ZW1wdD09PWYpe2F8fGRlbGV0ZSB0aGlzW3RpXTtyZXR1cm4gSFRNTFJlc3VsdC5GQUlMVVJFfWxldCBjPTAsaD0wO2lmKHRoaXMubWFyZ2luKXtjPXRoaXMubWFyZ2luLmxlZnRJbnNldCt0aGlzLm1hcmdpbi5yaWdodEluc2V0O2g9dGhpcy5tYXJnaW4udG9wSW5zZXQrdGhpcy5tYXJnaW4uYm90dG9tSW5zZXR9Y29uc3QgdT1NYXRoLm1heCh0aGlzW3RpXS53aWR0aCtjLHRoaXMud3x8MCksbT1NYXRoLm1heCh0aGlzW3RpXS5oZWlnaHQraCx0aGlzLmh8fDApLHA9W3RoaXMueCx0aGlzLnksdSxtXTsiIj09PXRoaXMudyYmKHMud2lkdGg9bWVhc3VyZVRvU3RyaW5nKHUpKTsiIj09PXRoaXMuaCYmKHMuaGVpZ2h0PW1lYXN1cmVUb1N0cmluZyhtKSk7Y29uc3QgZD17bmFtZToiZGl2IixhdHRyaWJ1dGVzOm4sY2hpbGRyZW46dH07YXBwbHlBc3Npc3QodGhpcyxuKTtkZWxldGUgdGhpc1t0aV07cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2VzcyhjcmVhdGVXcmFwcGVyKHRoaXMsZCkscCl9fWNsYXNzIEV4ZWN1dGUgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sImV4ZWN1dGUiKTt0aGlzLmNvbm5lY3Rpb249ZS5jb25uZWN0aW9ufHwiIjt0aGlzLmV4ZWN1dGVUeXBlPWdldFN0cmluZ09wdGlvbihlLmV4ZWN1dGVUeXBlLFsiaW1wb3J0IiwicmVtZXJnZSJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMucnVuQXQ9Z2V0U3RyaW5nT3B0aW9uKGUucnVuQXQsWyJjbGllbnQiLCJib3RoIiwic2VydmVyIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn19Y2xhc3MgRXh0cmFzIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJleHRyYXMiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmJvb2xlYW49bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZGF0ZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5kYXRlVGltZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5kZWNpbWFsPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmV4RGF0YT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5leHRyYXM9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZmxvYXQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuaW1hZ2U9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuaW50ZWdlcj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy50ZXh0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnRpbWU9bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBGaWVsZCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywiZmllbGQiLCEwKTt0aGlzLmFjY2Vzcz1nZXRTdHJpbmdPcHRpb24oZS5hY2Nlc3MsWyJvcGVuIiwibm9uSW50ZXJhY3RpdmUiLCJwcm90ZWN0ZWQiLCJyZWFkT25seSJdKTt0aGlzLmFjY2Vzc0tleT1lLmFjY2Vzc0tleXx8IiI7dGhpcy5hbmNob3JUeXBlPWdldFN0cmluZ09wdGlvbihlLmFuY2hvclR5cGUsWyJ0b3BMZWZ0IiwiYm90dG9tQ2VudGVyIiwiYm90dG9tTGVmdCIsImJvdHRvbVJpZ2h0IiwibWlkZGxlQ2VudGVyIiwibWlkZGxlTGVmdCIsIm1pZGRsZVJpZ2h0IiwidG9wQ2VudGVyIiwidG9wUmlnaHQiXSk7dGhpcy5jb2xTcGFuPWdldEludGVnZXIoe2RhdGE6ZS5jb2xTcGFuLGRlZmF1bHRWYWx1ZToxLHZhbGlkYXRlOmU9PmU+PTF8fC0xPT09ZX0pO3RoaXMuaD1lLmg/Z2V0TWVhc3VyZW1lbnQoZS5oKToiIjt0aGlzLmhBbGlnbj1nZXRTdHJpbmdPcHRpb24oZS5oQWxpZ24sWyJsZWZ0IiwiY2VudGVyIiwianVzdGlmeSIsImp1c3RpZnlBbGwiLCJyYWRpeCIsInJpZ2h0Il0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5sb2NhbGU9ZS5sb2NhbGV8fCIiO3RoaXMubWF4SD1nZXRNZWFzdXJlbWVudChlLm1heEgsIjBwdCIpO3RoaXMubWF4Vz1nZXRNZWFzdXJlbWVudChlLm1heFcsIjBwdCIpO3RoaXMubWluSD1nZXRNZWFzdXJlbWVudChlLm1pbkgsIjBwdCIpO3RoaXMubWluVz1nZXRNZWFzdXJlbWVudChlLm1pblcsIjBwdCIpO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMucHJlc2VuY2U9Z2V0U3RyaW5nT3B0aW9uKGUucHJlc2VuY2UsWyJ2aXNpYmxlIiwiaGlkZGVuIiwiaW5hY3RpdmUiLCJpbnZpc2libGUiXSk7dGhpcy5yZWxldmFudD1nZXRSZWxldmFudChlLnJlbGV2YW50KTt0aGlzLnJvdGF0ZT1nZXRJbnRlZ2VyKHtkYXRhOmUucm90YXRlLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PmUlOTA9PTB9KTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy53PWUudz9nZXRNZWFzdXJlbWVudChlLncpOiIiO3RoaXMueD1nZXRNZWFzdXJlbWVudChlLngsIjBwdCIpO3RoaXMueT1nZXRNZWFzdXJlbWVudChlLnksIjBwdCIpO3RoaXMuYXNzaXN0PW51bGw7dGhpcy5iaW5kPW51bGw7dGhpcy5ib3JkZXI9bnVsbDt0aGlzLmNhbGN1bGF0ZT1udWxsO3RoaXMuY2FwdGlvbj1udWxsO3RoaXMuZGVzYz1udWxsO3RoaXMuZXh0cmFzPW51bGw7dGhpcy5mb250PW51bGw7dGhpcy5mb3JtYXQ9bnVsbDt0aGlzLml0ZW1zPW5ldyBYRkFPYmplY3RBcnJheSgyKTt0aGlzLmtlZXA9bnVsbDt0aGlzLm1hcmdpbj1udWxsO3RoaXMucGFyYT1udWxsO3RoaXMudHJhdmVyc2FsPW51bGw7dGhpcy51aT1udWxsO3RoaXMudmFsaWRhdGU9bnVsbDt0aGlzLnZhbHVlPW51bGw7dGhpcy5iaW5kSXRlbXM9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuY29ubmVjdD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5ldmVudD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zZXRQcm9wZXJ0eT1uZXcgWEZBT2JqZWN0QXJyYXl9W3hpXSgpe3JldHVybiEwfVtKaV0oZSl7X3NldFZhbHVlKHRoaXMsZSl9W3RvXShlKXtzZXRUYWJJbmRleCh0aGlzKTtpZighdGhpcy51aSl7dGhpcy51aT1uZXcgVWkoe30pO3RoaXMudWlbamldPXRoaXNbamldO3RoaXNbV3NdKHRoaXMudWkpO2xldCBlO3N3aXRjaCh0aGlzLml0ZW1zLmNoaWxkcmVuLmxlbmd0aCl7Y2FzZSAwOmU9bmV3IFRleHRFZGl0KHt9KTt0aGlzLnVpLnRleHRFZGl0PWU7YnJlYWs7Y2FzZSAxOmU9bmV3IENoZWNrQnV0dG9uKHt9KTt0aGlzLnVpLmNoZWNrQnV0dG9uPWU7YnJlYWs7Y2FzZSAyOmU9bmV3IENob2ljZUxpc3Qoe30pO3RoaXMudWkuY2hvaWNlTGlzdD1lfXRoaXMudWlbV3NdKGUpfWlmKCF0aGlzLnVpfHwiaGlkZGVuIj09PXRoaXMucHJlc2VuY2V8fCJpbmFjdGl2ZSI9PT10aGlzLnByZXNlbmNlfHwwPT09dGhpcy5ofHwwPT09dGhpcy53KXJldHVybiBIVE1MUmVzdWx0LkVNUFRZO3RoaXMuY2FwdGlvbiYmZGVsZXRlIHRoaXMuY2FwdGlvblt0aV07dGhpc1tYaV0oKTtjb25zdCB0PXRoaXMuY2FwdGlvbj90aGlzLmNhcHRpb25bdG9dKGUpLmh0bWw6bnVsbCxuPXRoaXMudyxhPXRoaXMuaDtsZXQgcj0wLHM9MDtpZih0aGlzLm1hcmdpbil7cj10aGlzLm1hcmdpbi5sZWZ0SW5zZXQrdGhpcy5tYXJnaW4ucmlnaHRJbnNldDtzPXRoaXMubWFyZ2luLnRvcEluc2V0K3RoaXMubWFyZ2luLmJvdHRvbUluc2V0fWxldCBpPW51bGw7aWYoIiI9PT10aGlzLnd8fCIiPT09dGhpcy5oKXtsZXQgdD1udWxsLG49bnVsbCxhPTAsbz0wO2lmKHRoaXMudWkuY2hlY2tCdXR0b24pYT1vPXRoaXMudWkuY2hlY2tCdXR0b24uc2l6ZTtlbHNle2NvbnN0e3c6dCxoOm59PWxheW91dE5vZGUodGhpcyxlKTtpZihudWxsIT09dCl7YT10O289bn1lbHNlIG89ZnVuY3Rpb24gZm9udHNfZ2V0TWV0cmljcyhlLHQ9ITEpe2xldCBuPW51bGw7aWYoZSl7Y29uc3QgdD1zdHJpcFF1b3RlcyhlLnR5cGVmYWNlKSxhPWVbamldLmZvbnRGaW5kZXIuZmluZCh0KTtuPXNlbGVjdEZvbnQoZSxhKX1pZighbilyZXR1cm57bGluZUhlaWdodDoxMixsaW5lR2FwOjIsbGluZU5vR2FwOjEwfTtjb25zdCBhPWUuc2l6ZXx8MTAscj1uLmxpbmVIZWlnaHQ/TWF0aC5tYXgodD8wOjEuMixuLmxpbmVIZWlnaHQpOjEuMixzPXZvaWQgMD09PW4ubGluZUdhcD8uMjpuLmxpbmVHYXA7cmV0dXJue2xpbmVIZWlnaHQ6ciphLGxpbmVHYXA6cyphLGxpbmVOb0dhcDpNYXRoLm1heCgxLHItcykqYX19KHRoaXMuZm9udCwhMCkubGluZU5vR2FwfWk9Z2V0Qm9yZGVyRGltcyh0aGlzLnVpW2hpXSgpKTthKz1pLnc7bys9aS5oO2lmKHRoaXMuY2FwdGlvbil7Y29uc3R7dzpyLGg6cyxpc0Jyb2tlbjppfT10aGlzLmNhcHRpb25baGldKGUpO2lmKGkmJnRoaXNbZ2ldKClbVGldKCkpe3RoaXNbX2ldKCk7cmV0dXJuIEhUTUxSZXN1bHQuRkFJTFVSRX10PXI7bj1zO3N3aXRjaCh0aGlzLmNhcHRpb24ucGxhY2VtZW50KXtjYXNlImxlZnQiOmNhc2UicmlnaHQiOmNhc2UiaW5saW5lIjp0Kz1hO2JyZWFrO2Nhc2UidG9wIjpjYXNlImJvdHRvbSI6bis9b319ZWxzZXt0PWE7bj1vfWlmKHQmJiIiPT09dGhpcy53KXt0Kz1yO3RoaXMudz1NYXRoLm1pbih0aGlzLm1heFc8PTA/MS8wOnRoaXMubWF4Vyx0aGlzLm1pblcrMTx0P3Q6dGhpcy5taW5XKX1pZihuJiYiIj09PXRoaXMuaCl7bis9czt0aGlzLmg9TWF0aC5taW4odGhpcy5tYXhIPD0wPzEvMDp0aGlzLm1heEgsdGhpcy5taW5IKzE8bj9uOnRoaXMubWluSCl9fXRoaXNbX2ldKCk7Zml4RGltZW5zaW9ucyh0aGlzKTtzZXRGaXJzdFVuc3BsaXR0YWJsZSh0aGlzKTtpZighY2hlY2tEaW1lbnNpb25zKHRoaXMsZSkpe3RoaXMudz1uO3RoaXMuaD1hO3RoaXNbX2ldKCk7cmV0dXJuIEhUTUxSZXN1bHQuRkFJTFVSRX11bnNldEZpcnN0VW5zcGxpdHRhYmxlKHRoaXMpO2NvbnN0IG89dG9TdHlsZSh0aGlzLCJmb250IiwiZGltZW5zaW9ucyIsInBvc2l0aW9uIiwicm90YXRlIiwiYW5jaG9yVHlwZSIsInByZXNlbmNlIiwibWFyZ2luIiwiaEFsaWduIik7c2V0TWluTWF4RGltZW5zaW9ucyh0aGlzLG8pO2NvbnN0IGw9WyJ4ZmFGaWVsZCJdO3RoaXMuZm9udCYmbC5wdXNoKCJ4ZmFGb250Iik7aXNQcmludE9ubHkodGhpcykmJmwucHVzaCgieGZhUHJpbnRPbmx5Iik7Y29uc3QgZj17c3R5bGU6byxpZDp0aGlzW3JvXSxjbGFzczpsfTtpZihvLm1hcmdpbil7by5wYWRkaW5nPW8ubWFyZ2luO2RlbGV0ZSBvLm1hcmdpbn1zZXRBY2Nlc3ModGhpcyxsKTt0aGlzLm5hbWUmJihmLnhmYU5hbWU9dGhpcy5uYW1lKTtjb25zdCBjPVtdLGg9e25hbWU6ImRpdiIsYXR0cmlidXRlczpmLGNoaWxkcmVuOmN9O2FwcGx5QXNzaXN0KHRoaXMsZik7Y29uc3QgdT10aGlzLmJvcmRlcj90aGlzLmJvcmRlclthb10oKTpudWxsLG09Y29tcHV0ZUJib3godGhpcyxoLGUpLHA9dGhpcy51aVt0b10oKS5odG1sO2lmKCFwKXtPYmplY3QuYXNzaWduKG8sdSk7cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2VzcyhjcmVhdGVXcmFwcGVyKHRoaXMsaCksbSl9dGhpc1tRaV0mJihwLmNoaWxkcmVuPy5bMF0/cC5jaGlsZHJlblswXS5hdHRyaWJ1dGVzLnRhYmluZGV4PXRoaXNbUWldOnAuYXR0cmlidXRlcy50YWJpbmRleD10aGlzW1FpXSk7cC5hdHRyaWJ1dGVzLnN0eWxlfHw9T2JqZWN0LmNyZWF0ZShudWxsKTtsZXQgZD1udWxsO2lmKHRoaXMudWkuYnV0dG9uKXsxPT09cC5jaGlsZHJlbi5sZW5ndGgmJihbZF09cC5jaGlsZHJlbi5zcGxpY2UoMCwxKSk7T2JqZWN0LmFzc2lnbihwLmF0dHJpYnV0ZXMuc3R5bGUsdSl9ZWxzZSBPYmplY3QuYXNzaWduKG8sdSk7Yy5wdXNoKHApO2lmKHRoaXMudmFsdWUpaWYodGhpcy51aS5pbWFnZUVkaXQpcC5jaGlsZHJlbi5wdXNoKHRoaXMudmFsdWVbdG9dKCkuaHRtbCk7ZWxzZSBpZighdGhpcy51aS5idXR0b24pe2xldCBlPSIiO2lmKHRoaXMudmFsdWUuZXhEYXRhKWU9dGhpcy52YWx1ZS5leERhdGFbWmldKCk7ZWxzZSBpZih0aGlzLnZhbHVlLnRleHQpZT10aGlzLnZhbHVlLnRleHRbaGldKCk7ZWxzZXtjb25zdCB0PXRoaXMudmFsdWVbdG9dKCkuaHRtbDtudWxsIT09dCYmKGU9dC5jaGlsZHJlblswXS52YWx1ZSl9dGhpcy51aS50ZXh0RWRpdCYmdGhpcy52YWx1ZS50ZXh0Py5tYXhDaGFycyYmKHAuY2hpbGRyZW5bMF0uYXR0cmlidXRlcy5tYXhMZW5ndGg9dGhpcy52YWx1ZS50ZXh0Lm1heENoYXJzKTtpZihlKXtpZih0aGlzLnVpLm51bWVyaWNFZGl0KXtlPXBhcnNlRmxvYXQoZSk7ZT1pc05hTihlKT8iIjplLnRvU3RyaW5nKCl9InRleHRhcmVhIj09PXAuY2hpbGRyZW5bMF0ubmFtZT9wLmNoaWxkcmVuWzBdLmF0dHJpYnV0ZXMudGV4dENvbnRlbnQ9ZTpwLmNoaWxkcmVuWzBdLmF0dHJpYnV0ZXMudmFsdWU9ZX19aWYoIXRoaXMudWkuaW1hZ2VFZGl0JiZwLmNoaWxkcmVuPy5bMF0mJnRoaXMuaCl7aT1pfHxnZXRCb3JkZXJEaW1zKHRoaXMudWlbaGldKCkpO2xldCB0PTA7aWYodGhpcy5jYXB0aW9uJiZbInRvcCIsImJvdHRvbSJdLmluY2x1ZGVzKHRoaXMuY2FwdGlvbi5wbGFjZW1lbnQpKXt0PXRoaXMuY2FwdGlvbi5yZXNlcnZlO3Q8PTAmJih0PXRoaXMuY2FwdGlvbltoaV0oZSkuaCk7Y29uc3Qgbj10aGlzLmgtdC1zLWkuaDtwLmNoaWxkcmVuWzBdLmF0dHJpYnV0ZXMuc3R5bGUuaGVpZ2h0PW1lYXN1cmVUb1N0cmluZyhuKX1lbHNlIHAuY2hpbGRyZW5bMF0uYXR0cmlidXRlcy5zdHlsZS5oZWlnaHQ9IjEwMCUifWQmJnAuY2hpbGRyZW4ucHVzaChkKTtpZighdCl7cC5hdHRyaWJ1dGVzLmNsYXNzJiZwLmF0dHJpYnV0ZXMuY2xhc3MucHVzaCgieGZhTGVmdCIpO3RoaXMudz1uO3RoaXMuaD1hO3JldHVybiBIVE1MUmVzdWx0LnN1Y2Nlc3MoY3JlYXRlV3JhcHBlcih0aGlzLGgpLG0pfWlmKHRoaXMudWkuYnV0dG9uKXtvLnBhZGRpbmcmJmRlbGV0ZSBvLnBhZGRpbmc7ImRpdiI9PT10Lm5hbWUmJih0Lm5hbWU9InNwYW4iKTtwLmNoaWxkcmVuLnB1c2godCk7cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2VzcyhoLG0pfXRoaXMudWkuY2hlY2tCdXR0b24mJih0LmF0dHJpYnV0ZXMuY2xhc3NbMF09InhmYUNhcHRpb25Gb3JDaGVja0J1dHRvbiIpO3AuYXR0cmlidXRlcy5jbGFzc3x8PVtdO3AuY2hpbGRyZW4uc3BsaWNlKDAsMCx0KTtzd2l0Y2godGhpcy5jYXB0aW9uLnBsYWNlbWVudCl7Y2FzZSJsZWZ0IjpjYXNlImlubGluZSI6cC5hdHRyaWJ1dGVzLmNsYXNzLnB1c2goInhmYUxlZnQiKTticmVhaztjYXNlInJpZ2h0IjpwLmF0dHJpYnV0ZXMuY2xhc3MucHVzaCgieGZhUmlnaHQiKTticmVhaztjYXNlInRvcCI6cC5hdHRyaWJ1dGVzLmNsYXNzLnB1c2goInhmYVRvcCIpO2JyZWFrO2Nhc2UiYm90dG9tIjpwLmF0dHJpYnV0ZXMuY2xhc3MucHVzaCgieGZhQm90dG9tIil9dGhpcy53PW47dGhpcy5oPWE7cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2VzcyhjcmVhdGVXcmFwcGVyKHRoaXMsaCksbSl9fWNsYXNzIEZpbGwgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sImZpbGwiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMucHJlc2VuY2U9Z2V0U3RyaW5nT3B0aW9uKGUucHJlc2VuY2UsWyJ2aXNpYmxlIiwiaGlkZGVuIiwiaW5hY3RpdmUiLCJpbnZpc2libGUiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuY29sb3I9bnVsbDt0aGlzLmV4dHJhcz1udWxsO3RoaXMubGluZWFyPW51bGw7dGhpcy5wYXR0ZXJuPW51bGw7dGhpcy5yYWRpYWw9bnVsbDt0aGlzLnNvbGlkPW51bGw7dGhpcy5zdGlwcGxlPW51bGx9W2FvXSgpe2NvbnN0IGU9dGhpc1tiaV0oKSx0PWVbYmldKClbYmldKCksbj1PYmplY3QuY3JlYXRlKG51bGwpO2xldCBhPSJjb2xvciIscj1hO2lmKGUgaW5zdGFuY2VvZiBCb3JkZXIpe2E9ImJhY2tncm91bmQtY29sb3IiO3I9ImJhY2tncm91bmQiO3QgaW5zdGFuY2VvZiBVaSYmKG4uYmFja2dyb3VuZENvbG9yPSJ3aGl0ZSIpfWlmKGUgaW5zdGFuY2VvZiBSZWN0YW5nbGV8fGUgaW5zdGFuY2VvZiBBcmMpe2E9cj0iZmlsbCI7bi5maWxsPSJ3aGl0ZSJ9Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpe2lmKCJleHRyYXMiPT09ZXx8ImNvbG9yIj09PWUpY29udGludWU7Y29uc3QgdD10aGlzW2VdO2lmKCEodCBpbnN0YW5jZW9mIFhGQU9iamVjdCkpY29udGludWU7Y29uc3Qgcz10W2FvXSh0aGlzLmNvbG9yKTtzJiYobltzLnN0YXJ0c1dpdGgoIiMiKT9hOnJdPXMpO3JldHVybiBufWlmKHRoaXMuY29sb3I/LnZhbHVlKXtjb25zdCBlPXRoaXMuY29sb3JbYW9dKCk7bltlLnN0YXJ0c1dpdGgoIiMiKT9hOnJdPWV9cmV0dXJuIG59fWNsYXNzIEZpbHRlciBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywiZmlsdGVyIiwhMCk7dGhpcy5hZGRSZXZvY2F0aW9uSW5mbz1nZXRTdHJpbmdPcHRpb24oZS5hZGRSZXZvY2F0aW9uSW5mbyxbIiIsInJlcXVpcmVkIiwib3B0aW9uYWwiLCJub25lIl0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMudmVyc2lvbj1nZXRJbnRlZ2VyKHtkYXRhOnRoaXMudmVyc2lvbixkZWZhdWx0VmFsdWU6NSx2YWxpZGF0ZTplPT5lPj0xJiZlPD01fSk7dGhpcy5hcHBlYXJhbmNlRmlsdGVyPW51bGw7dGhpcy5jZXJ0aWZpY2F0ZXM9bnVsbDt0aGlzLmRpZ2VzdE1ldGhvZHM9bnVsbDt0aGlzLmVuY29kaW5ncz1udWxsO3RoaXMuZW5jcnlwdGlvbk1ldGhvZHM9bnVsbDt0aGlzLmhhbmRsZXI9bnVsbDt0aGlzLmxvY2tEb2N1bWVudD1udWxsO3RoaXMubWRwPW51bGw7dGhpcy5yZWFzb25zPW51bGw7dGhpcy50aW1lU3RhbXA9bnVsbH19Y2xhc3MgRmxvYXQgZXh0ZW5kcyBDb250ZW50T2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJmbG9hdCIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifVtuaV0oKXtjb25zdCBlPXBhcnNlRmxvYXQodGhpc1tRc10udHJpbSgpKTt0aGlzW1FzXT1pc05hTihlKT9udWxsOmV9W3RvXShlKXtyZXR1cm4gdmFsdWVUb0h0bWwobnVsbCE9PXRoaXNbUXNdP3RoaXNbUXNdLnRvU3RyaW5nKCk6IiIpfX1jbGFzcyB0ZW1wbGF0ZV9Gb250IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJmb250IiwhMCk7dGhpcy5iYXNlbGluZVNoaWZ0PWdldE1lYXN1cmVtZW50KGUuYmFzZWxpbmVTaGlmdCk7dGhpcy5mb250SG9yaXpvbnRhbFNjYWxlPWdldEZsb2F0KHtkYXRhOmUuZm9udEhvcml6b250YWxTY2FsZSxkZWZhdWx0VmFsdWU6MTAwLHZhbGlkYXRlOmU9PmU+PTB9KTt0aGlzLmZvbnRWZXJ0aWNhbFNjYWxlPWdldEZsb2F0KHtkYXRhOmUuZm9udFZlcnRpY2FsU2NhbGUsZGVmYXVsdFZhbHVlOjEwMCx2YWxpZGF0ZTplPT5lPj0wfSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmtlcm5pbmdNb2RlPWdldFN0cmluZ09wdGlvbihlLmtlcm5pbmdNb2RlLFsibm9uZSIsInBhaXIiXSk7dGhpcy5sZXR0ZXJTcGFjaW5nPWdldE1lYXN1cmVtZW50KGUubGV0dGVyU3BhY2luZywiMCIpO3RoaXMubGluZVRocm91Z2g9Z2V0SW50ZWdlcih7ZGF0YTplLmxpbmVUaHJvdWdoLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfHwyPT09ZX0pO3RoaXMubGluZVRocm91Z2hQZXJpb2Q9Z2V0U3RyaW5nT3B0aW9uKGUubGluZVRocm91Z2hQZXJpb2QsWyJhbGwiLCJ3b3JkIl0pO3RoaXMub3ZlcmxpbmU9Z2V0SW50ZWdlcih7ZGF0YTplLm92ZXJsaW5lLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfHwyPT09ZX0pO3RoaXMub3ZlcmxpbmVQZXJpb2Q9Z2V0U3RyaW5nT3B0aW9uKGUub3ZlcmxpbmVQZXJpb2QsWyJhbGwiLCJ3b3JkIl0pO3RoaXMucG9zdHVyZT1nZXRTdHJpbmdPcHRpb24oZS5wb3N0dXJlLFsibm9ybWFsIiwiaXRhbGljIl0pO3RoaXMuc2l6ZT1nZXRNZWFzdXJlbWVudChlLnNpemUsIjEwcHQiKTt0aGlzLnR5cGVmYWNlPWUudHlwZWZhY2V8fCJDb3VyaWVyIjt0aGlzLnVuZGVybGluZT1nZXRJbnRlZ2VyKHtkYXRhOmUudW5kZXJsaW5lLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfHwyPT09ZX0pO3RoaXMudW5kZXJsaW5lUGVyaW9kPWdldFN0cmluZ09wdGlvbihlLnVuZGVybGluZVBlcmlvZCxbImFsbCIsIndvcmQiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMud2VpZ2h0PWdldFN0cmluZ09wdGlvbihlLndlaWdodCxbIm5vcm1hbCIsImJvbGQiXSk7dGhpcy5leHRyYXM9bnVsbDt0aGlzLmZpbGw9bnVsbH1bVnNdKGUpe3N1cGVyW1ZzXShlKTt0aGlzW2ppXS51c2VkVHlwZWZhY2VzLmFkZCh0aGlzLnR5cGVmYWNlKX1bYW9dKCl7Y29uc3QgZT10b1N0eWxlKHRoaXMsImZpbGwiKSx0PWUuY29sb3I7aWYodClpZigiIzAwMDAwMCI9PT10KWRlbGV0ZSBlLmNvbG9yO2Vsc2UgaWYoIXQuc3RhcnRzV2l0aCgiIyIpKXtlLmJhY2tncm91bmQ9dDtlLmJhY2tncm91bmRDbGlwPSJ0ZXh0IjtlLmNvbG9yPSJ0cmFuc3BhcmVudCJ9dGhpcy5iYXNlbGluZVNoaWZ0JiYoZS52ZXJ0aWNhbEFsaWduPW1lYXN1cmVUb1N0cmluZyh0aGlzLmJhc2VsaW5lU2hpZnQpKTtlLmZvbnRLZXJuaW5nPSJub25lIj09PXRoaXMua2VybmluZ01vZGU/Im5vbmUiOiJub3JtYWwiO2UubGV0dGVyU3BhY2luZz1tZWFzdXJlVG9TdHJpbmcodGhpcy5sZXR0ZXJTcGFjaW5nKTtpZigwIT09dGhpcy5saW5lVGhyb3VnaCl7ZS50ZXh0RGVjb3JhdGlvbj0ibGluZS10aHJvdWdoIjsyPT09dGhpcy5saW5lVGhyb3VnaCYmKGUudGV4dERlY29yYXRpb25TdHlsZT0iZG91YmxlIil9aWYoMCE9PXRoaXMub3ZlcmxpbmUpe2UudGV4dERlY29yYXRpb249Im92ZXJsaW5lIjsyPT09dGhpcy5vdmVybGluZSYmKGUudGV4dERlY29yYXRpb25TdHlsZT0iZG91YmxlIil9ZS5mb250U3R5bGU9dGhpcy5wb3N0dXJlO2UuZm9udFNpemU9bWVhc3VyZVRvU3RyaW5nKC45OSp0aGlzLnNpemUpO3NldEZvbnRGYW1pbHkodGhpcyx0aGlzLHRoaXNbamldLmZvbnRGaW5kZXIsZSk7aWYoMCE9PXRoaXMudW5kZXJsaW5lKXtlLnRleHREZWNvcmF0aW9uPSJ1bmRlcmxpbmUiOzI9PT10aGlzLnVuZGVybGluZSYmKGUudGV4dERlY29yYXRpb25TdHlsZT0iZG91YmxlIil9ZS5mb250V2VpZ2h0PXRoaXMud2VpZ2h0O3JldHVybiBlfX1jbGFzcyBGb3JtYXQgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sImZvcm1hdCIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuZXh0cmFzPW51bGw7dGhpcy5waWN0dXJlPW51bGx9fWNsYXNzIEhhbmRsZXIgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sImhhbmRsZXIiKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudHlwZT1nZXRTdHJpbmdPcHRpb24oZS50eXBlLFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9fWNsYXNzIEh5cGhlbmF0aW9uIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJoeXBoZW5hdGlvbiIpO3RoaXMuZXhjbHVkZUFsbENhcHM9Z2V0SW50ZWdlcih7ZGF0YTplLmV4Y2x1ZGVBbGxDYXBzLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfSk7dGhpcy5leGNsdWRlSW5pdGlhbENhcD1nZXRJbnRlZ2VyKHtkYXRhOmUuZXhjbHVkZUluaXRpYWxDYXAsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+MT09PWV9KTt0aGlzLmh5cGhlbmF0ZT1nZXRJbnRlZ2VyKHtkYXRhOmUuaHlwaGVuYXRlLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnB1c2hDaGFyYWN0ZXJDb3VudD1nZXRJbnRlZ2VyKHtkYXRhOmUucHVzaENoYXJhY3RlckNvdW50LGRlZmF1bHRWYWx1ZTozLHZhbGlkYXRlOmU9PmU+PTB9KTt0aGlzLnJlbWFpbkNoYXJhY3RlckNvdW50PWdldEludGVnZXIoe2RhdGE6ZS5yZW1haW5DaGFyYWN0ZXJDb3VudCxkZWZhdWx0VmFsdWU6Myx2YWxpZGF0ZTplPT5lPj0wfSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMud29yZENoYXJhY3RlckNvdW50PWdldEludGVnZXIoe2RhdGE6ZS53b3JkQ2hhcmFjdGVyQ291bnQsZGVmYXVsdFZhbHVlOjcsdmFsaWRhdGU6ZT0+ZT49MH0pfX1jbGFzcyBJbWFnZSBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywiaW1hZ2UiKTt0aGlzLmFzcGVjdD1nZXRTdHJpbmdPcHRpb24oZS5hc3BlY3QsWyJmaXQiLCJhY3R1YWwiLCJoZWlnaHQiLCJub25lIiwid2lkdGgiXSk7dGhpcy5jb250ZW50VHlwZT1lLmNvbnRlbnRUeXBlfHwiIjt0aGlzLmhyZWY9ZS5ocmVmfHwiIjt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMudHJhbnNmZXJFbmNvZGluZz1nZXRTdHJpbmdPcHRpb24oZS50cmFuc2ZlckVuY29kaW5nLFsiYmFzZTY0Iiwibm9uZSIsInBhY2thZ2UiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifVt0b10oKXtpZih0aGlzLmNvbnRlbnRUeXBlJiYhVW8uaGFzKHRoaXMuY29udGVudFR5cGUudG9Mb3dlckNhc2UoKSkpcmV0dXJuIEhUTUxSZXN1bHQuRU1QVFk7bGV0IGU9dGhpc1tqaV0uaW1hZ2VzPy5nZXQodGhpcy5ocmVmKTtpZighZSYmKHRoaXMuaHJlZnx8IXRoaXNbUXNdKSlyZXR1cm4gSFRNTFJlc3VsdC5FTVBUWTtlfHwiYmFzZTY0IiE9PXRoaXMudHJhbnNmZXJFbmNvZGluZ3x8KGU9VWludDhBcnJheS5mcm9tQmFzZTY0KHRoaXNbUXNdKSk7aWYoIWUpcmV0dXJuIEhUTUxSZXN1bHQuRU1QVFk7aWYoIXRoaXMuY29udGVudFR5cGUpe2Zvcihjb25zdFt0LG5db2YgWG8paWYoZS5sZW5ndGg+dC5sZW5ndGgmJnQuZXZlcnkoKHQsbik9PnQ9PT1lW25dKSl7dGhpcy5jb250ZW50VHlwZT1uO2JyZWFrfWlmKCF0aGlzLmNvbnRlbnRUeXBlKXJldHVybiBIVE1MUmVzdWx0LkVNUFRZfWNvbnN0IHQ9bmV3IEJsb2IoW2VdLHt0eXBlOnRoaXMuY29udGVudFR5cGV9KTtsZXQgbjtzd2l0Y2godGhpcy5hc3BlY3Qpe2Nhc2UiZml0IjpjYXNlImFjdHVhbCI6YnJlYWs7Y2FzZSJoZWlnaHQiOm49e2hlaWdodDoiMTAwJSIsb2JqZWN0Rml0OiJmaWxsIn07YnJlYWs7Y2FzZSJub25lIjpuPXt3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIixvYmplY3RGaXQ6ImZpbGwifTticmVhaztjYXNlIndpZHRoIjpuPXt3aWR0aDoiMTAwJSIsb2JqZWN0Rml0OiJmaWxsIn19Y29uc3QgYT10aGlzW2JpXSgpO3JldHVybiBIVE1MUmVzdWx0LnN1Y2Nlc3Moe25hbWU6ImltZyIsYXR0cmlidXRlczp7Y2xhc3M6WyJ4ZmFJbWFnZSJdLHN0eWxlOm4sc3JjOlVSTC5jcmVhdGVPYmplY3RVUkwodCksYWx0OmE/YXJpYUxhYmVsKGFbYmldKCkpOm51bGx9fSl9fWNsYXNzIEltYWdlRWRpdCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywiaW1hZ2VFZGl0IiwhMCk7dGhpcy5kYXRhPWdldFN0cmluZ09wdGlvbihlLmRhdGEsWyJsaW5rIiwiZW1iZWQiXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5ib3JkZXI9bnVsbDt0aGlzLmV4dHJhcz1udWxsO3RoaXMubWFyZ2luPW51bGx9W3RvXShlKXtyZXR1cm4iZW1iZWQiPT09dGhpcy5kYXRhP0hUTUxSZXN1bHQuc3VjY2Vzcyh7bmFtZToiZGl2IixjaGlsZHJlbjpbXSxhdHRyaWJ1dGVzOnt9fSk6SFRNTFJlc3VsdC5FTVBUWX19Y2xhc3MgSW50ZWdlciBleHRlbmRzIENvbnRlbnRPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sImludGVnZXIiKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn1bbmldKCl7Y29uc3QgZT1wYXJzZUludCh0aGlzW1FzXS50cmltKCksMTApO3RoaXNbUXNdPWlzTmFOKGUpP251bGw6ZX1bdG9dKGUpe3JldHVybiB2YWx1ZVRvSHRtbChudWxsIT09dGhpc1tRc10/dGhpc1tRc10udG9TdHJpbmcoKToiIil9fWNsYXNzIElzc3VlcnMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sImlzc3VlcnMiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudHlwZT1nZXRTdHJpbmdPcHRpb24oZS50eXBlLFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5jZXJ0aWZpY2F0ZT1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIEl0ZW1zIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJpdGVtcyIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy5wcmVzZW5jZT1nZXRTdHJpbmdPcHRpb24oZS5wcmVzZW5jZSxbInZpc2libGUiLCJoaWRkZW4iLCJpbmFjdGl2ZSIsImludmlzaWJsZSJdKTt0aGlzLnJlZj1lLnJlZnx8IiI7dGhpcy5zYXZlPWdldEludGVnZXIoe2RhdGE6ZS5zYXZlLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuYm9vbGVhbj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5kYXRlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRhdGVUaW1lPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRlY2ltYWw9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZXhEYXRhPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmZsb2F0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmltYWdlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmludGVnZXI9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMudGV4dD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy50aW1lPW5ldyBYRkFPYmplY3RBcnJheX1bdG9dKCl7Y29uc3QgZT1bXTtmb3IoY29uc3QgdCBvZiB0aGlzW21pXSgpKWUucHVzaCh0W1ppXSgpKTtyZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKGUpfX1jbGFzcyBLZWVwIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJrZWVwIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjtjb25zdCB0PVsibm9uZSIsImNvbnRlbnRBcmVhIiwicGFnZUFyZWEiXTt0aGlzLmludGFjdD1nZXRTdHJpbmdPcHRpb24oZS5pbnRhY3QsdCk7dGhpcy5uZXh0PWdldFN0cmluZ09wdGlvbihlLm5leHQsdCk7dGhpcy5wcmV2aW91cz1nZXRTdHJpbmdPcHRpb24oZS5wcmV2aW91cyx0KTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5leHRyYXM9bnVsbH19Y2xhc3MgS2V5VXNhZ2UgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sImtleVVzYWdlIik7Y29uc3QgdD1bIiIsInllcyIsIm5vIl07dGhpcy5jcmxTaWduPWdldFN0cmluZ09wdGlvbihlLmNybFNpZ24sdCk7dGhpcy5kYXRhRW5jaXBoZXJtZW50PWdldFN0cmluZ09wdGlvbihlLmRhdGFFbmNpcGhlcm1lbnQsdCk7dGhpcy5kZWNpcGhlck9ubHk9Z2V0U3RyaW5nT3B0aW9uKGUuZGVjaXBoZXJPbmx5LHQpO3RoaXMuZGlnaXRhbFNpZ25hdHVyZT1nZXRTdHJpbmdPcHRpb24oZS5kaWdpdGFsU2lnbmF0dXJlLHQpO3RoaXMuZW5jaXBoZXJPbmx5PWdldFN0cmluZ09wdGlvbihlLmVuY2lwaGVyT25seSx0KTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMua2V5QWdyZWVtZW50PWdldFN0cmluZ09wdGlvbihlLmtleUFncmVlbWVudCx0KTt0aGlzLmtleUNlcnRTaWduPWdldFN0cmluZ09wdGlvbihlLmtleUNlcnRTaWduLHQpO3RoaXMua2V5RW5jaXBoZXJtZW50PWdldFN0cmluZ09wdGlvbihlLmtleUVuY2lwaGVybWVudCx0KTt0aGlzLm5vblJlcHVkaWF0aW9uPWdldFN0cmluZ09wdGlvbihlLm5vblJlcHVkaWF0aW9uLHQpO3RoaXMudHlwZT1nZXRTdHJpbmdPcHRpb24oZS50eXBlLFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9fWNsYXNzIExpbmUgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sImxpbmUiLCEwKTt0aGlzLmhhbmQ9Z2V0U3RyaW5nT3B0aW9uKGUuaGFuZCxbImV2ZW4iLCJsZWZ0IiwicmlnaHQiXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnNsb3BlPWdldFN0cmluZ09wdGlvbihlLnNsb3BlLFsiXFwiLCIvIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmVkZ2U9bnVsbH1bdG9dKCl7Y29uc3QgZT10aGlzW2JpXSgpW2JpXSgpLHQ9dGhpcy5lZGdlfHxuZXcgRWRnZSh7fSksbj10W2FvXSgpLGE9T2JqZWN0LmNyZWF0ZShudWxsKSxyPSJ2aXNpYmxlIj09PXQucHJlc2VuY2U/dC50aGlja25lc3M6MDthLnN0cm9rZVdpZHRoPW1lYXN1cmVUb1N0cmluZyhyKTthLnN0cm9rZT1uLmNvbG9yO2xldCBzLGksbyxsLGY9IjEwMCUiLGM9IjEwMCUiO2lmKGUudzw9cil7W3MsaSxvLGxdPVsiNTAlIiwwLCI1MCUiLCIxMDAlIl07Zj1hLnN0cm9rZVdpZHRofWVsc2UgaWYoZS5oPD1yKXtbcyxpLG8sbF09WzAsIjUwJSIsIjEwMCUiLCI1MCUiXTtjPWEuc3Ryb2tlV2lkdGh9ZWxzZSJcXCI9PT10aGlzLnNsb3BlP1tzLGksbyxsXT1bMCwwLCIxMDAlIiwiMTAwJSJdOltzLGksbyxsXT1bMCwiMTAwJSIsIjEwMCUiLDBdO2NvbnN0IGg9e25hbWU6InN2ZyIsY2hpbGRyZW46W3tuYW1lOiJsaW5lIixhdHRyaWJ1dGVzOnt4bWxuczpfbyx4MTpzLHkxOmkseDI6byx5MjpsLHN0eWxlOmF9fV0sYXR0cmlidXRlczp7eG1sbnM6X28sd2lkdGg6ZixoZWlnaHQ6YyxzdHlsZTp7b3ZlcmZsb3c6InZpc2libGUifX19O2lmKGhhc01hcmdpbihlKSlyZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6e3N0eWxlOntkaXNwbGF5OiJpbmxpbmUiLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUifX0sY2hpbGRyZW46W2hdfSk7aC5hdHRyaWJ1dGVzLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2VzcyhoKX19Y2xhc3MgTGluZWFyIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJsaW5lYXIiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudHlwZT1nZXRTdHJpbmdPcHRpb24oZS50eXBlLFsidG9SaWdodCIsInRvQm90dG9tIiwidG9MZWZ0IiwidG9Ub3AiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuY29sb3I9bnVsbDt0aGlzLmV4dHJhcz1udWxsfVthb10oZSl7ZT1lP2VbYW9dKCk6IiNGRkZGRkYiO3JldHVybmBsaW5lYXItZ3JhZGllbnQoJHt0aGlzLnR5cGUucmVwbGFjZSgvKFtSQkxUXSkvLCIgJDEiKS50b0xvd2VyQ2FzZSgpfSwgJHtlfSwgJHt0aGlzLmNvbG9yP3RoaXMuY29sb3JbYW9dKCk6IiMwMDAwMDAifSlgfX1jbGFzcyBMb2NrRG9jdW1lbnQgZXh0ZW5kcyBDb250ZW50T2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJsb2NrRG9jdW1lbnQiKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudHlwZT1nZXRTdHJpbmdPcHRpb24oZS50eXBlLFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9W25pXSgpe3RoaXNbUXNdPWdldFN0cmluZ09wdGlvbih0aGlzW1FzXSxbImF1dG8iLCIwIiwiMSJdKX19Y2xhc3MgTWFuaWZlc3QgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sIm1hbmlmZXN0IiwhMCk7dGhpcy5hY3Rpb249Z2V0U3RyaW5nT3B0aW9uKGUuYWN0aW9uLFsiaW5jbHVkZSIsImFsbCIsImV4Y2x1ZGUiXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5leHRyYXM9bnVsbDt0aGlzLnJlZj1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIE1hcmdpbiBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywibWFyZ2luIiwhMCk7dGhpcy5ib3R0b21JbnNldD1nZXRNZWFzdXJlbWVudChlLmJvdHRvbUluc2V0LCIwIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmxlZnRJbnNldD1nZXRNZWFzdXJlbWVudChlLmxlZnRJbnNldCwiMCIpO3RoaXMucmlnaHRJbnNldD1nZXRNZWFzdXJlbWVudChlLnJpZ2h0SW5zZXQsIjAiKTt0aGlzLnRvcEluc2V0PWdldE1lYXN1cmVtZW50KGUudG9wSW5zZXQsIjAiKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5leHRyYXM9bnVsbH1bYW9dKCl7cmV0dXJue21hcmdpbjptZWFzdXJlVG9TdHJpbmcodGhpcy50b3BJbnNldCkrIiAiK21lYXN1cmVUb1N0cmluZyh0aGlzLnJpZ2h0SW5zZXQpKyIgIittZWFzdXJlVG9TdHJpbmcodGhpcy5ib3R0b21JbnNldCkrIiAiK21lYXN1cmVUb1N0cmluZyh0aGlzLmxlZnRJbnNldCl9fX1jbGFzcyBNZHAgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sIm1kcCIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5wZXJtaXNzaW9ucz1nZXRJbnRlZ2VyKHtkYXRhOmUucGVybWlzc2lvbnMsZGVmYXVsdFZhbHVlOjIsdmFsaWRhdGU6ZT0+MT09PWV8fDM9PT1lfSk7dGhpcy5zaWduYXR1cmVUeXBlPWdldFN0cmluZ09wdGlvbihlLnNpZ25hdHVyZVR5cGUsWyJmaWxsZXIiLCJhdXRob3IiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBNZWRpdW0gZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sIm1lZGl1bSIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5pbWFnaW5nQkJveD1mdW5jdGlvbiBnZXRCQm94KGUpe2NvbnN0IHQ9LTE7aWYoIWUpcmV0dXJue3g6dCx5OnQsd2lkdGg6dCxoZWlnaHQ6dH07Y29uc3Qgbj1lLnNwbGl0KCIsIiw0KS5tYXAoZT0+Z2V0TWVhc3VyZW1lbnQoZS50cmltKCksIi0xIikpO2lmKG4ubGVuZ3RoPDR8fG5bMl08MHx8blszXTwwKXJldHVybnt4OnQseTp0LHdpZHRoOnQsaGVpZ2h0OnR9O2NvbnN0W2EscixzLGldPW47cmV0dXJue3g6YSx5OnIsd2lkdGg6cyxoZWlnaHQ6aX19KGUuaW1hZ2luZ0JCb3gpO3RoaXMubG9uZz1nZXRNZWFzdXJlbWVudChlLmxvbmcpO3RoaXMub3JpZW50YXRpb249Z2V0U3RyaW5nT3B0aW9uKGUub3JpZW50YXRpb24sWyJwb3J0cmFpdCIsImxhbmRzY2FwZSJdKTt0aGlzLnNob3J0PWdldE1lYXN1cmVtZW50KGUuc2hvcnQpO3RoaXMuc3RvY2s9ZS5zdG9ja3x8IiI7dGhpcy50cmF5SW49Z2V0U3RyaW5nT3B0aW9uKGUudHJheUluLFsiYXV0byIsImRlbGVnYXRlIiwicGFnZUZyb250Il0pO3RoaXMudHJheU91dD1nZXRTdHJpbmdPcHRpb24oZS50cmF5T3V0LFsiYXV0byIsImRlbGVnYXRlIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn19Y2xhc3MgTWVzc2FnZSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywibWVzc2FnZSIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMudGV4dD1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIE51bWVyaWNFZGl0IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJudW1lcmljRWRpdCIsITApO3RoaXMuaFNjcm9sbFBvbGljeT1nZXRTdHJpbmdPcHRpb24oZS5oU2Nyb2xsUG9saWN5LFsiYXV0byIsIm9mZiIsIm9uIl0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuYm9yZGVyPW51bGw7dGhpcy5jb21iPW51bGw7dGhpcy5leHRyYXM9bnVsbDt0aGlzLm1hcmdpbj1udWxsfVt0b10oZSl7Y29uc3QgdD10b1N0eWxlKHRoaXMsImJvcmRlciIsImZvbnQiLCJtYXJnaW4iKSxuPXRoaXNbYmldKClbYmldKCksYT17bmFtZToiaW5wdXQiLGF0dHJpYnV0ZXM6e3R5cGU6InRleHQiLGZpZWxkSWQ6bltyb10sZGF0YUlkOm5bWnNdPy5bcm9dfHxuW3JvXSxjbGFzczpbInhmYVRleHRmaWVsZCJdLHN0eWxlOnQsImFyaWEtbGFiZWwiOmFyaWFMYWJlbChuKSwiYXJpYS1yZXF1aXJlZCI6ITF9fTtpZihpc1JlcXVpcmVkKG4pKXthLmF0dHJpYnV0ZXNbImFyaWEtcmVxdWlyZWQiXT0hMDthLmF0dHJpYnV0ZXMucmVxdWlyZWQ9ITB9cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2Vzcyh7bmFtZToibGFiZWwiLGF0dHJpYnV0ZXM6e2NsYXNzOlsieGZhTGFiZWwiXX0sY2hpbGRyZW46W2FdfSl9fWNsYXNzIE9jY3VyIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJvY2N1ciIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5pbml0aWFsPSIiIT09ZS5pbml0aWFsP2dldEludGVnZXIoe2RhdGE6ZS5pbml0aWFsLGRlZmF1bHRWYWx1ZToiIix2YWxpZGF0ZTplPT4hMH0pOiIiO3RoaXMubWF4PSIiIT09ZS5tYXg/Z2V0SW50ZWdlcih7ZGF0YTplLm1heCxkZWZhdWx0VmFsdWU6LTEsdmFsaWRhdGU6ZT0+ITB9KToiIjt0aGlzLm1pbj0iIiE9PWUubWluP2dldEludGVnZXIoe2RhdGE6ZS5taW4sZGVmYXVsdFZhbHVlOjEsdmFsaWRhdGU6ZT0+ITB9KToiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5leHRyYXM9bnVsbH1bVnNdKCl7Y29uc3QgZT10aGlzW2JpXSgpLHQ9dGhpcy5taW47IiI9PT10aGlzLm1pbiYmKHRoaXMubWluPWUgaW5zdGFuY2VvZiBQYWdlQXJlYXx8ZSBpbnN0YW5jZW9mIFBhZ2VTZXQ/MDoxKTsiIj09PXRoaXMubWF4JiYodGhpcy5tYXg9IiI9PT10P2UgaW5zdGFuY2VvZiBQYWdlQXJlYXx8ZSBpbnN0YW5jZW9mIFBhZ2VTZXQ/LTE6MTp0aGlzLm1pbik7LTEhPT10aGlzLm1heCYmdGhpcy5tYXg8dGhpcy5taW4mJih0aGlzLm1heD10aGlzLm1pbik7IiI9PT10aGlzLmluaXRpYWwmJih0aGlzLmluaXRpYWw9ZSBpbnN0YW5jZW9mIFRlbXBsYXRlPzE6dGhpcy5taW4pfX1jbGFzcyBPaWQgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sIm9pZCIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBPaWRzIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJvaWRzIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnR5cGU9Z2V0U3RyaW5nT3B0aW9uKGUudHlwZSxbIm9wdGlvbmFsIiwicmVxdWlyZWQiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMub2lkPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgT3ZlcmZsb3cgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sIm92ZXJmbG93Iik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmxlYWRlcj1lLmxlYWRlcnx8IiI7dGhpcy50YXJnZXQ9ZS50YXJnZXR8fCIiO3RoaXMudHJhaWxlcj1lLnRyYWlsZXJ8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn1baGldKCl7aWYoIXRoaXNbdGldKXtjb25zdCBlPXRoaXNbYmldKCksdD10aGlzW3dpXSgpLG49dFtHaV0odGhpcy50YXJnZXQsZSksYT10W0dpXSh0aGlzLmxlYWRlcixlKSxyPXRbR2ldKHRoaXMudHJhaWxlcixlKTt0aGlzW3RpXT17dGFyZ2V0Om4/LlswXXx8bnVsbCxsZWFkZXI6YT8uWzBdfHxudWxsLHRyYWlsZXI6cj8uWzBdfHxudWxsLGFkZExlYWRlcjohMSxhZGRUcmFpbGVyOiExfX1yZXR1cm4gdGhpc1t0aV19fWNsYXNzIFBhZ2VBcmVhIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJwYWdlQXJlYSIsITApO3RoaXMuYmxhbmtPck5vdEJsYW5rPWdldFN0cmluZ09wdGlvbihlLmJsYW5rT3JOb3RCbGFuayxbImFueSIsImJsYW5rIiwibm90QmxhbmsiXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLmluaXRpYWxOdW1iZXI9Z2V0SW50ZWdlcih7ZGF0YTplLmluaXRpYWxOdW1iZXIsZGVmYXVsdFZhbHVlOjEsdmFsaWRhdGU6ZT0+ITB9KTt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLm51bWJlcmVkPWdldEludGVnZXIoe2RhdGE6ZS5udW1iZXJlZCxkZWZhdWx0VmFsdWU6MSx2YWxpZGF0ZTplPT4hMH0pO3RoaXMub2RkT3JFdmVuPWdldFN0cmluZ09wdGlvbihlLm9kZE9yRXZlbixbImFueSIsImV2ZW4iLCJvZGQiXSk7dGhpcy5wYWdlUG9zaXRpb249Z2V0U3RyaW5nT3B0aW9uKGUucGFnZVBvc2l0aW9uLFsiYW55IiwiZmlyc3QiLCJsYXN0Iiwib25seSIsInJlc3QiXSk7dGhpcy5yZWxldmFudD1nZXRSZWxldmFudChlLnJlbGV2YW50KTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5kZXNjPW51bGw7dGhpcy5leHRyYXM9bnVsbDt0aGlzLm1lZGl1bT1udWxsO3RoaXMub2NjdXI9bnVsbDt0aGlzLmFyZWE9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuY29udGVudEFyZWE9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZHJhdz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5leGNsR3JvdXA9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZmllbGQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuc3ViZm9ybT1uZXcgWEZBT2JqZWN0QXJyYXl9W1JpXSgpe2lmKCF0aGlzW3RpXSl7dGhpc1t0aV09e251bWJlck9mVXNlOjB9O3JldHVybiEwfXJldHVybiF0aGlzLm9jY3VyfHwtMT09PXRoaXMub2NjdXIubWF4fHx0aGlzW3RpXS5udW1iZXJPZlVzZTx0aGlzLm9jY3VyLm1heH1bR3NdKCl7ZGVsZXRlIHRoaXNbdGldfVtkaV0oKXt0aGlzW3RpXXx8PXtudW1iZXJPZlVzZTowfTtjb25zdCBlPXRoaXNbYmldKCk7aWYoIm9yZGVyZWRPY2N1cnJlbmNlIj09PWUucmVsYXRpb24mJnRoaXNbUmldKCkpe3RoaXNbdGldLm51bWJlck9mVXNlKz0xO3JldHVybiB0aGlzfXJldHVybiBlW2RpXSgpfVtpaV0oKXtyZXR1cm4gdGhpc1t0aV0uc3BhY2V8fHt3aWR0aDowLGhlaWdodDowfX1bdG9dKCl7dGhpc1t0aV18fD17bnVtYmVyT2ZVc2U6MX07Y29uc3QgZT1bXTt0aGlzW3RpXS5jaGlsZHJlbj1lO2NvbnN0IHQ9T2JqZWN0LmNyZWF0ZShudWxsKTtpZih0aGlzLm1lZGl1bSYmdGhpcy5tZWRpdW0uc2hvcnQmJnRoaXMubWVkaXVtLmxvbmcpe3Qud2lkdGg9bWVhc3VyZVRvU3RyaW5nKHRoaXMubWVkaXVtLnNob3J0KTt0LmhlaWdodD1tZWFzdXJlVG9TdHJpbmcodGhpcy5tZWRpdW0ubG9uZyk7dGhpc1t0aV0uc3BhY2U9e3dpZHRoOnRoaXMubWVkaXVtLnNob3J0LGhlaWdodDp0aGlzLm1lZGl1bS5sb25nfTtpZigibGFuZHNjYXBlIj09PXRoaXMubWVkaXVtLm9yaWVudGF0aW9uKXtjb25zdCBlPXQud2lkdGg7dC53aWR0aD10LmhlaWdodDt0LmhlaWdodD1lO3RoaXNbdGldLnNwYWNlPXt3aWR0aDp0aGlzLm1lZGl1bS5sb25nLGhlaWdodDp0aGlzLm1lZGl1bS5zaG9ydH19fWVsc2Ugd2FybigiWEZBIC0gTm8gbWVkaXVtIHNwZWNpZmllZCBpbiBwYWdlQXJlYTogcGxlYXNlIGZpbGUgYSBidWcuIik7dGhpc1tLc10oe2ZpbHRlcjpuZXcgU2V0KFsiYXJlYSIsImRyYXciLCJmaWVsZCIsInN1YmZvcm0iXSksaW5jbHVkZTohMH0pO3RoaXNbS3NdKHtmaWx0ZXI6bmV3IFNldChbImNvbnRlbnRBcmVhIl0pLGluY2x1ZGU6ITB9KTtyZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOiJkaXYiLGNoaWxkcmVuOmUsYXR0cmlidXRlczp7Y2xhc3M6WyJ4ZmFQYWdlIl0saWQ6dGhpc1tyb10sc3R5bGU6dCx4ZmFOYW1lOnRoaXMubmFtZX19KX19Y2xhc3MgUGFnZVNldCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywicGFnZVNldCIsITApO3RoaXMuZHVwbGV4SW1wb3NpdGlvbj1nZXRTdHJpbmdPcHRpb24oZS5kdXBsZXhJbXBvc2l0aW9uLFsibG9uZ0VkZ2UiLCJzaG9ydEVkZ2UiXSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnJlbGF0aW9uPWdldFN0cmluZ09wdGlvbihlLnJlbGF0aW9uLFsib3JkZXJlZE9jY3VycmVuY2UiLCJkdXBsZXhQYWdpbmF0ZWQiLCJzaW1wbGV4UGFnaW5hdGVkIl0pO3RoaXMucmVsZXZhbnQ9Z2V0UmVsZXZhbnQoZS5yZWxldmFudCk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuZXh0cmFzPW51bGw7dGhpcy5vY2N1cj1udWxsO3RoaXMucGFnZUFyZWE9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMucGFnZVNldD1uZXcgWEZBT2JqZWN0QXJyYXl9W0dzXSgpe2Zvcihjb25zdCBlIG9mIHRoaXMucGFnZUFyZWEuY2hpbGRyZW4pZVtHc10oKTtmb3IoY29uc3QgZSBvZiB0aGlzLnBhZ2VTZXQuY2hpbGRyZW4pZVtHc10oKX1bUmldKCl7cmV0dXJuIXRoaXMub2NjdXJ8fC0xPT09dGhpcy5vY2N1ci5tYXh8fHRoaXNbdGldLm51bWJlck9mVXNlPHRoaXMub2NjdXIubWF4fVtkaV0oKXt0aGlzW3RpXXx8PXtudW1iZXJPZlVzZToxLHBhZ2VJbmRleDotMSxwYWdlU2V0SW5kZXg6LTF9O2lmKCJvcmRlcmVkT2NjdXJyZW5jZSI9PT10aGlzLnJlbGF0aW9uKXtpZih0aGlzW3RpXS5wYWdlSW5kZXgrMTx0aGlzLnBhZ2VBcmVhLmNoaWxkcmVuLmxlbmd0aCl7dGhpc1t0aV0ucGFnZUluZGV4Kz0xO3JldHVybiB0aGlzLnBhZ2VBcmVhLmNoaWxkcmVuW3RoaXNbdGldLnBhZ2VJbmRleF1bZGldKCl9aWYodGhpc1t0aV0ucGFnZVNldEluZGV4KzE8dGhpcy5wYWdlU2V0LmNoaWxkcmVuLmxlbmd0aCl7dGhpc1t0aV0ucGFnZVNldEluZGV4Kz0xO3JldHVybiB0aGlzLnBhZ2VTZXQuY2hpbGRyZW5bdGhpc1t0aV0ucGFnZVNldEluZGV4XVtkaV0oKX1pZih0aGlzW1JpXSgpKXt0aGlzW3RpXS5udW1iZXJPZlVzZSs9MTt0aGlzW3RpXS5wYWdlSW5kZXg9LTE7dGhpc1t0aV0ucGFnZVNldEluZGV4PS0xO3JldHVybiB0aGlzW2RpXSgpfWNvbnN0IGU9dGhpc1tiaV0oKTtpZihlIGluc3RhbmNlb2YgUGFnZVNldClyZXR1cm4gZVtkaV0oKTt0aGlzW0dzXSgpO3JldHVybiB0aGlzW2RpXSgpfWNvbnN0IGU9dGhpc1t3aV0oKVt0aV0ucGFnZU51bWJlcix0PWUlMj09MD8iZXZlbiI6Im9kZCIsbj0wPT09ZT8iZmlyc3QiOiJyZXN0IjtsZXQgYT10aGlzLnBhZ2VBcmVhLmNoaWxkcmVuLmZpbmQoZT0+ZS5vZGRPckV2ZW49PT10JiZlLnBhZ2VQb3NpdGlvbj09PW4pO2lmKGEpcmV0dXJuIGE7YT10aGlzLnBhZ2VBcmVhLmNoaWxkcmVuLmZpbmQoZT0+ImFueSI9PT1lLm9kZE9yRXZlbiYmZS5wYWdlUG9zaXRpb249PT1uKTtpZihhKXJldHVybiBhO2E9dGhpcy5wYWdlQXJlYS5jaGlsZHJlbi5maW5kKGU9PiJhbnkiPT09ZS5vZGRPckV2ZW4mJiJhbnkiPT09ZS5wYWdlUG9zaXRpb24pO3JldHVybiBhfHx0aGlzLnBhZ2VBcmVhLmNoaWxkcmVuWzBdfX1jbGFzcyBQYXJhIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJwYXJhIiwhMCk7dGhpcy5oQWxpZ249Z2V0U3RyaW5nT3B0aW9uKGUuaEFsaWduLFsibGVmdCIsImNlbnRlciIsImp1c3RpZnkiLCJqdXN0aWZ5QWxsIiwicmFkaXgiLCJyaWdodCJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubGluZUhlaWdodD1lLmxpbmVIZWlnaHQ/Z2V0TWVhc3VyZW1lbnQoZS5saW5lSGVpZ2h0LCIwcHQiKToiIjt0aGlzLm1hcmdpbkxlZnQ9ZS5tYXJnaW5MZWZ0P2dldE1lYXN1cmVtZW50KGUubWFyZ2luTGVmdCwiMHB0Iik6IiI7dGhpcy5tYXJnaW5SaWdodD1lLm1hcmdpblJpZ2h0P2dldE1lYXN1cmVtZW50KGUubWFyZ2luUmlnaHQsIjBwdCIpOiIiO3RoaXMub3JwaGFucz1nZXRJbnRlZ2VyKHtkYXRhOmUub3JwaGFucyxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTplPT5lPj0wfSk7dGhpcy5wcmVzZXJ2ZT1lLnByZXNlcnZlfHwiIjt0aGlzLnJhZGl4T2Zmc2V0PWUucmFkaXhPZmZzZXQ/Z2V0TWVhc3VyZW1lbnQoZS5yYWRpeE9mZnNldCwiMHB0Iik6IiI7dGhpcy5zcGFjZUFib3ZlPWUuc3BhY2VBYm92ZT9nZXRNZWFzdXJlbWVudChlLnNwYWNlQWJvdmUsIjBwdCIpOiIiO3RoaXMuc3BhY2VCZWxvdz1lLnNwYWNlQmVsb3c/Z2V0TWVhc3VyZW1lbnQoZS5zcGFjZUJlbG93LCIwcHQiKToiIjt0aGlzLnRhYkRlZmF1bHQ9ZS50YWJEZWZhdWx0P2dldE1lYXN1cmVtZW50KHRoaXMudGFiRGVmYXVsdCk6IiI7dGhpcy50YWJTdG9wcz0oZS50YWJTdG9wc3x8IiIpLnRyaW0oKS5zcGxpdCgvXHMrLykubWFwKChlLHQpPT50JTI9PTE/Z2V0TWVhc3VyZW1lbnQoZSk6ZSk7dGhpcy50ZXh0SW5kZW50PWUudGV4dEluZGVudD9nZXRNZWFzdXJlbWVudChlLnRleHRJbmRlbnQsIjBwdCIpOiIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLnZBbGlnbj1nZXRTdHJpbmdPcHRpb24oZS52QWxpZ24sWyJ0b3AiLCJib3R0b20iLCJtaWRkbGUiXSk7dGhpcy53aWRvd3M9Z2V0SW50ZWdlcih7ZGF0YTplLndpZG93cyxkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTplPT5lPj0wfSk7dGhpcy5oeXBoZW5hdGlvbj1udWxsfVthb10oKXtjb25zdCBlPXRvU3R5bGUodGhpcywiaEFsaWduIik7IiIhPT10aGlzLm1hcmdpbkxlZnQmJihlLnBhZGRpbmdMZWZ0PW1lYXN1cmVUb1N0cmluZyh0aGlzLm1hcmdpbkxlZnQpKTsiIiE9PXRoaXMubWFyZ2luUmlnaHQmJihlLnBhZGRpbmdSaWdodD1tZWFzdXJlVG9TdHJpbmcodGhpcy5tYXJnaW5SaWdodCkpOyIiIT09dGhpcy5zcGFjZUFib3ZlJiYoZS5wYWRkaW5nVG9wPW1lYXN1cmVUb1N0cmluZyh0aGlzLnNwYWNlQWJvdmUpKTsiIiE9PXRoaXMuc3BhY2VCZWxvdyYmKGUucGFkZGluZ0JvdHRvbT1tZWFzdXJlVG9TdHJpbmcodGhpcy5zcGFjZUJlbG93KSk7aWYoIiIhPT10aGlzLnRleHRJbmRlbnQpe2UudGV4dEluZGVudD1tZWFzdXJlVG9TdHJpbmcodGhpcy50ZXh0SW5kZW50KTtmaXhUZXh0SW5kZW50KGUpfXRoaXMubGluZUhlaWdodD4wJiYoZS5saW5lSGVpZ2h0PW1lYXN1cmVUb1N0cmluZyh0aGlzLmxpbmVIZWlnaHQpKTsiIiE9PXRoaXMudGFiRGVmYXVsdCYmKGUudGFiU2l6ZT1tZWFzdXJlVG9TdHJpbmcodGhpcy50YWJEZWZhdWx0KSk7dGhpcy50YWJTdG9wcy5sZW5ndGg7dGhpcy5oeXBoZW5hdGF0aW9uJiZPYmplY3QuYXNzaWduKGUsdGhpcy5oeXBoZW5hdGF0aW9uW2FvXSgpKTtyZXR1cm4gZX19Y2xhc3MgUGFzc3dvcmRFZGl0IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJwYXNzd29yZEVkaXQiLCEwKTt0aGlzLmhTY3JvbGxQb2xpY3k9Z2V0U3RyaW5nT3B0aW9uKGUuaFNjcm9sbFBvbGljeSxbImF1dG8iLCJvZmYiLCJvbiJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMucGFzc3dvcmRDaGFyPWUucGFzc3dvcmRDaGFyfHwiKiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuYm9yZGVyPW51bGw7dGhpcy5leHRyYXM9bnVsbDt0aGlzLm1hcmdpbj1udWxsfX1jbGFzcyB0ZW1wbGF0ZV9QYXR0ZXJuIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJwYXR0ZXJuIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnR5cGU9Z2V0U3RyaW5nT3B0aW9uKGUudHlwZSxbImNyb3NzSGF0Y2giLCJjcm9zc0RpYWdvbmFsIiwiZGlhZ29uYWxMZWZ0IiwiZGlhZ29uYWxSaWdodCIsImhvcml6b250YWwiLCJ2ZXJ0aWNhbCJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5jb2xvcj1udWxsO3RoaXMuZXh0cmFzPW51bGx9W2FvXShlKXtlPWU/ZVthb10oKToiI0ZGRkZGRiI7Y29uc3QgdD10aGlzLmNvbG9yP3RoaXMuY29sb3JbYW9dKCk6IiMwMDAwMDAiLG49InJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQiLGE9YCR7ZX0sJHtlfSA1cHgsJHt0fSA1cHgsJHt0fSAxMHB4YDtzd2l0Y2godGhpcy50eXBlKXtjYXNlImNyb3NzSGF0Y2giOnJldHVybmAke259KHRvIHRvcCwke2F9KSAke259KHRvIHJpZ2h0LCR7YX0pYDtjYXNlImNyb3NzRGlhZ29uYWwiOnJldHVybmAke259KDQ1ZGVnLCR7YX0pICR7bn0oLTQ1ZGVnLCR7YX0pYDtjYXNlImRpYWdvbmFsTGVmdCI6cmV0dXJuYCR7bn0oNDVkZWcsJHthfSlgO2Nhc2UiZGlhZ29uYWxSaWdodCI6cmV0dXJuYCR7bn0oLTQ1ZGVnLCR7YX0pYDtjYXNlImhvcml6b250YWwiOnJldHVybmAke259KHRvIHRvcCwke2F9KWA7Y2FzZSJ2ZXJ0aWNhbCI6cmV0dXJuYCR7bn0odG8gcmlnaHQsJHthfSlgfXJldHVybiIifX1jbGFzcyBQaWN0dXJlIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJwaWN0dXJlIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9fWNsYXNzIFByb3RvIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJwcm90byIsITApO3RoaXMuYXBwZWFyYW5jZUZpbHRlcj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5hcmM9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuYXJlYT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5hc3Npc3Q9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuYmFyY29kZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5iaW5kSXRlbXM9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuYm9va2VuZD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5ib29sZWFuPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmJvcmRlcj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5icmVhaz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5icmVha0FmdGVyPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmJyZWFrQmVmb3JlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmJ1dHRvbj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5jYWxjdWxhdGU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuY2FwdGlvbj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5jZXJ0aWZpY2F0ZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5jZXJ0aWZpY2F0ZXM9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuY2hlY2tCdXR0b249bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuY2hvaWNlTGlzdD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5jb2xvcj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5jb21iPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmNvbm5lY3Q9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuY29udGVudEFyZWE9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuY29ybmVyPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRhdGU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZGF0ZVRpbWU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZGF0ZVRpbWVFZGl0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRlY2ltYWw9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZGVmYXVsdFVpPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRlc2M9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZGlnZXN0TWV0aG9kPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRpZ2VzdE1ldGhvZHM9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZHJhdz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5lZGdlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmVuY29kaW5nPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmVuY29kaW5ncz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5lbmNyeXB0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmVuY3J5cHREYXRhPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmVuY3J5cHRpb249bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZW5jcnlwdGlvbk1ldGhvZD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5lbmNyeXB0aW9uTWV0aG9kcz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5ldmVudD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5leERhdGE9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZXhPYmplY3Q9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZXhjbEdyb3VwPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmV4ZWN1dGU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZXh0cmFzPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmZpZWxkPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmZpbGw9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZmlsdGVyPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmZsb2F0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmZvbnQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZm9ybWF0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmhhbmRsZXI9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuaHlwaGVuYXRpb249bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuaW1hZ2U9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuaW1hZ2VFZGl0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmludGVnZXI9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuaXNzdWVycz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5pdGVtcz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5rZWVwPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmtleVVzYWdlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmxpbmU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMubGluZWFyPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmxvY2tEb2N1bWVudD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5tYW5pZmVzdD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5tYXJnaW49bmV3IFhGQU9iamVjdEFycmF5O3RoaXMubWRwPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLm1lZGl1bT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5tZXNzYWdlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLm51bWVyaWNFZGl0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLm9jY3VyPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLm9pZD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5vaWRzPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLm92ZXJmbG93PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnBhZ2VBcmVhPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnBhZ2VTZXQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMucGFyYT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5wYXNzd29yZEVkaXQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMucGF0dGVybj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5waWN0dXJlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnJhZGlhbD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5yZWFzb249bmV3IFhGQU9iamVjdEFycmF5O3RoaXMucmVhc29ucz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5yZWN0YW5nbGU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMucmVmPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnNjcmlwdD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zZXRQcm9wZXJ0eT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zaWduRGF0YT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zaWduYXR1cmU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuc2lnbmluZz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zb2xpZD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zcGVhaz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zdGlwcGxlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnN1YmZvcm09bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuc3ViZm9ybVNldD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zdWJqZWN0RE49bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuc3ViamVjdEROcz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zdWJtaXQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMudGV4dD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy50ZXh0RWRpdD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy50aW1lPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnRpbWVTdGFtcD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy50b29sVGlwPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnRyYXZlcnNhbD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy50cmF2ZXJzZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy51aT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy52YWxpZGF0ZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy52YWx1ZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy52YXJpYWJsZXM9bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBSYWRpYWwgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sInJhZGlhbCIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy50eXBlPWdldFN0cmluZ09wdGlvbihlLnR5cGUsWyJ0b0VkZ2UiLCJ0b0NlbnRlciJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5jb2xvcj1udWxsO3RoaXMuZXh0cmFzPW51bGx9W2FvXShlKXtlPWU/ZVthb10oKToiI0ZGRkZGRiI7Y29uc3QgdD10aGlzLmNvbG9yP3RoaXMuY29sb3JbYW9dKCk6IiMwMDAwMDAiO3JldHVybmByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IGNlbnRlciwgJHsidG9FZGdlIj09PXRoaXMudHlwZT9gJHtlfSwke3R9YDpgJHt0fSwke2V9YH0pYH19Y2xhc3MgUmVhc29uIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJyZWFzb24iKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn19Y2xhc3MgUmVhc29ucyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywicmVhc29ucyIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy50eXBlPWdldFN0cmluZ09wdGlvbihlLnR5cGUsWyJvcHRpb25hbCIsInJlcXVpcmVkIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLnJlYXNvbj1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIFJlY3RhbmdsZSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywicmVjdGFuZ2xlIiwhMCk7dGhpcy5oYW5kPWdldFN0cmluZ09wdGlvbihlLmhhbmQsWyJldmVuIiwibGVmdCIsInJpZ2h0Il0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuY29ybmVyPW5ldyBYRkFPYmplY3RBcnJheSg0KTt0aGlzLmVkZ2U9bmV3IFhGQU9iamVjdEFycmF5KDQpO3RoaXMuZmlsbD1udWxsfVt0b10oKXtjb25zdCBlPXRoaXMuZWRnZS5jaGlsZHJlbi5sZW5ndGg/dGhpcy5lZGdlLmNoaWxkcmVuWzBdOm5ldyBFZGdlKHt9KSx0PWVbYW9dKCksbj1PYmplY3QuY3JlYXRlKG51bGwpOyJ2aXNpYmxlIj09PXRoaXMuZmlsbD8ucHJlc2VuY2U/T2JqZWN0LmFzc2lnbihuLHRoaXMuZmlsbFthb10oKSk6bi5maWxsPSJ0cmFuc3BhcmVudCI7bi5zdHJva2VXaWR0aD1tZWFzdXJlVG9TdHJpbmcoInZpc2libGUiPT09ZS5wcmVzZW5jZT9lLnRoaWNrbmVzczowKTtuLnN0cm9rZT10LmNvbG9yO2NvbnN0IGE9KHRoaXMuY29ybmVyLmNoaWxkcmVuLmxlbmd0aD90aGlzLmNvcm5lci5jaGlsZHJlblswXTpuZXcgQ29ybmVyKHt9KSlbYW9dKCkscj17bmFtZToic3ZnIixjaGlsZHJlbjpbe25hbWU6InJlY3QiLGF0dHJpYnV0ZXM6e3htbG5zOl9vLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLHg6MCx5OjAscng6YS5yYWRpdXMscnk6YS5yYWRpdXMsc3R5bGU6bn19XSxhdHRyaWJ1dGVzOnt4bWxuczpfbyxzdHlsZTp7b3ZlcmZsb3c6InZpc2libGUifSx3aWR0aDoiMTAwJSIsaGVpZ2h0OiIxMDAlIn19O2lmKGhhc01hcmdpbih0aGlzW2JpXSgpW2JpXSgpKSlyZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6e3N0eWxlOntkaXNwbGF5OiJpbmxpbmUiLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUifX0sY2hpbGRyZW46W3JdfSk7ci5hdHRyaWJ1dGVzLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2VzcyhyKX19Y2xhc3MgUmVmRWxlbWVudCBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywicmVmIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9fWNsYXNzIFNjcmlwdCBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywic2NyaXB0Iik7dGhpcy5iaW5kaW5nPWUuYmluZGluZ3x8IiI7dGhpcy5jb250ZW50VHlwZT1lLmNvbnRlbnRUeXBlfHwiIjt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMucnVuQXQ9Z2V0U3RyaW5nT3B0aW9uKGUucnVuQXQsWyJjbGllbnQiLCJib3RoIiwic2VydmVyIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn19Y2xhc3MgU2V0UHJvcGVydHkgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sInNldFByb3BlcnR5Iik7dGhpcy5jb25uZWN0aW9uPWUuY29ubmVjdGlvbnx8IiI7dGhpcy5yZWY9ZS5yZWZ8fCIiO3RoaXMudGFyZ2V0PWUudGFyZ2V0fHwiIn19Y2xhc3MgU2lnbkRhdGEgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sInNpZ25EYXRhIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm9wZXJhdGlvbj1nZXRTdHJpbmdPcHRpb24oZS5vcGVyYXRpb24sWyJzaWduIiwiY2xlYXIiLCJ2ZXJpZnkiXSk7dGhpcy5yZWY9ZS5yZWZ8fCIiO3RoaXMudGFyZ2V0PWUudGFyZ2V0fHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5maWx0ZXI9bnVsbDt0aGlzLm1hbmlmZXN0PW51bGx9fWNsYXNzIFNpZ25hdHVyZSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywic2lnbmF0dXJlIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnR5cGU9Z2V0U3RyaW5nT3B0aW9uKGUudHlwZSxbIlBERjEuMyIsIlBERjEuNiJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5ib3JkZXI9bnVsbDt0aGlzLmV4dHJhcz1udWxsO3RoaXMuZmlsdGVyPW51bGw7dGhpcy5tYW5pZmVzdD1udWxsO3RoaXMubWFyZ2luPW51bGx9fWNsYXNzIFNpZ25pbmcgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sInNpZ25pbmciLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudHlwZT1nZXRTdHJpbmdPcHRpb24oZS50eXBlLFsib3B0aW9uYWwiLCJyZXF1aXJlZCJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5jZXJ0aWZpY2F0ZT1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIFNvbGlkIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJzb2xpZCIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuZXh0cmFzPW51bGx9W2FvXShlKXtyZXR1cm4gZT9lW2FvXSgpOiIjRkZGRkZGIn19Y2xhc3MgU3BlYWsgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sInNwZWFrIik7dGhpcy5kaXNhYmxlPWdldEludGVnZXIoe2RhdGE6ZS5kaXNhYmxlLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfSk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnByaW9yaXR5PWdldFN0cmluZ09wdGlvbihlLnByaW9yaXR5LFsiY3VzdG9tIiwiY2FwdGlvbiIsIm5hbWUiLCJ0b29sVGlwIl0pO3RoaXMucmlkPWUucmlkfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9fWNsYXNzIFN0aXBwbGUgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sInN0aXBwbGUiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMucmF0ZT1nZXRJbnRlZ2VyKHtkYXRhOmUucmF0ZSxkZWZhdWx0VmFsdWU6NTAsdmFsaWRhdGU6ZT0+ZT49MCYmZTw9MTAwfSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuY29sb3I9bnVsbDt0aGlzLmV4dHJhcz1udWxsfVthb10oZSl7Y29uc3QgdD10aGlzLnJhdGUvMTAwO3JldHVybiBVdGlsLm1ha2VIZXhDb2xvcihNYXRoLnJvdW5kKGUudmFsdWUuciooMS10KSt0aGlzLnZhbHVlLnIqdCksTWF0aC5yb3VuZChlLnZhbHVlLmcqKDEtdCkrdGhpcy52YWx1ZS5nKnQpLE1hdGgucm91bmQoZS52YWx1ZS5iKigxLXQpK3RoaXMudmFsdWUuYip0KSl9fWNsYXNzIFN1YmZvcm0gZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sInN1YmZvcm0iLCEwKTt0aGlzLmFjY2Vzcz1nZXRTdHJpbmdPcHRpb24oZS5hY2Nlc3MsWyJvcGVuIiwibm9uSW50ZXJhY3RpdmUiLCJwcm90ZWN0ZWQiLCJyZWFkT25seSJdKTt0aGlzLmFsbG93TWFjcm89Z2V0SW50ZWdlcih7ZGF0YTplLmFsbG93TWFjcm8sZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+MT09PWV9KTt0aGlzLmFuY2hvclR5cGU9Z2V0U3RyaW5nT3B0aW9uKGUuYW5jaG9yVHlwZSxbInRvcExlZnQiLCJib3R0b21DZW50ZXIiLCJib3R0b21MZWZ0IiwiYm90dG9tUmlnaHQiLCJtaWRkbGVDZW50ZXIiLCJtaWRkbGVMZWZ0IiwibWlkZGxlUmlnaHQiLCJ0b3BDZW50ZXIiLCJ0b3BSaWdodCJdKTt0aGlzLmNvbFNwYW49Z2V0SW50ZWdlcih7ZGF0YTplLmNvbFNwYW4sZGVmYXVsdFZhbHVlOjEsdmFsaWRhdGU6ZT0+ZT49MXx8LTE9PT1lfSk7dGhpcy5jb2x1bW5XaWR0aHM9KGUuY29sdW1uV2lkdGhzfHwiIikudHJpbSgpLnNwbGl0KC9ccysvKS5tYXAoZT0+Ii0xIj09PWU/LTE6Z2V0TWVhc3VyZW1lbnQoZSkpO3RoaXMuaD1lLmg/Z2V0TWVhc3VyZW1lbnQoZS5oKToiIjt0aGlzLmhBbGlnbj1nZXRTdHJpbmdPcHRpb24oZS5oQWxpZ24sWyJsZWZ0IiwiY2VudGVyIiwianVzdGlmeSIsImp1c3RpZnlBbGwiLCJyYWRpeCIsInJpZ2h0Il0pO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5sYXlvdXQ9Z2V0U3RyaW5nT3B0aW9uKGUubGF5b3V0LFsicG9zaXRpb24iLCJsci10YiIsInJsLXJvdyIsInJsLXRiIiwicm93IiwidGFibGUiLCJ0YiJdKTt0aGlzLmxvY2FsZT1lLmxvY2FsZXx8IiI7dGhpcy5tYXhIPWdldE1lYXN1cmVtZW50KGUubWF4SCwiMHB0Iik7dGhpcy5tYXhXPWdldE1lYXN1cmVtZW50KGUubWF4VywiMHB0Iik7dGhpcy5tZXJnZU1vZGU9Z2V0U3RyaW5nT3B0aW9uKGUubWVyZ2VNb2RlLFsiY29uc3VtZURhdGEiLCJtYXRjaFRlbXBsYXRlIl0pO3RoaXMubWluSD1nZXRNZWFzdXJlbWVudChlLm1pbkgsIjBwdCIpO3RoaXMubWluVz1nZXRNZWFzdXJlbWVudChlLm1pblcsIjBwdCIpO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMucHJlc2VuY2U9Z2V0U3RyaW5nT3B0aW9uKGUucHJlc2VuY2UsWyJ2aXNpYmxlIiwiaGlkZGVuIiwiaW5hY3RpdmUiLCJpbnZpc2libGUiXSk7dGhpcy5yZWxldmFudD1nZXRSZWxldmFudChlLnJlbGV2YW50KTt0aGlzLnJlc3RvcmVTdGF0ZT1nZXRTdHJpbmdPcHRpb24oZS5yZXN0b3JlU3RhdGUsWyJtYW51YWwiLCJhdXRvIl0pO3RoaXMuc2NvcGU9Z2V0U3RyaW5nT3B0aW9uKGUuc2NvcGUsWyJuYW1lIiwibm9uZSJdKTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy53PWUudz9nZXRNZWFzdXJlbWVudChlLncpOiIiO3RoaXMueD1nZXRNZWFzdXJlbWVudChlLngsIjBwdCIpO3RoaXMueT1nZXRNZWFzdXJlbWVudChlLnksIjBwdCIpO3RoaXMuYXNzaXN0PW51bGw7dGhpcy5iaW5kPW51bGw7dGhpcy5ib29rZW5kPW51bGw7dGhpcy5ib3JkZXI9bnVsbDt0aGlzLmJyZWFrPW51bGw7dGhpcy5jYWxjdWxhdGU9bnVsbDt0aGlzLmRlc2M9bnVsbDt0aGlzLmV4dHJhcz1udWxsO3RoaXMua2VlcD1udWxsO3RoaXMubWFyZ2luPW51bGw7dGhpcy5vY2N1cj1udWxsO3RoaXMub3ZlcmZsb3c9bnVsbDt0aGlzLnBhZ2VTZXQ9bnVsbDt0aGlzLnBhcmE9bnVsbDt0aGlzLnRyYXZlcnNhbD1udWxsO3RoaXMudmFsaWRhdGU9bnVsbDt0aGlzLnZhcmlhYmxlcz1udWxsO3RoaXMuYXJlYT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5icmVha0FmdGVyPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmJyZWFrQmVmb3JlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmNvbm5lY3Q9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZHJhdz1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5ldmVudD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5leE9iamVjdD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5leGNsR3JvdXA9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZmllbGQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMucHJvdG89bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuc2V0UHJvcGVydHk9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuc3ViZm9ybT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zdWJmb3JtU2V0PW5ldyBYRkFPYmplY3RBcnJheX1bZ2ldKCl7Y29uc3QgZT10aGlzW2JpXSgpO3JldHVybiBlIGluc3RhbmNlb2YgU3ViZm9ybVNldD9lW2dpXSgpOmV9W3hpXSgpe3JldHVybiEwfVtUaV0oKXtyZXR1cm4gdGhpcy5sYXlvdXQuZW5kc1dpdGgoIi10YiIpJiYwPT09dGhpc1t0aV0uYXR0ZW1wdCYmdGhpc1t0aV0ubnVtYmVySW5MaW5lPjB8fHRoaXNbYmldKClbVGldKCl9KltwaV0oKXt5aWVsZCpnZXRDb250YWluZWRDaGlsZHJlbih0aGlzKX1bYWldKCl7cmV0dXJuIGZsdXNoSFRNTCh0aGlzKX1bWHNdKGUsdCl7YWRkSFRNTCh0aGlzLGUsdCl9W2lpXSgpe3JldHVybiBnZXRBdmFpbGFibGVTcGFjZSh0aGlzKX1bRmldKCl7Y29uc3QgZT10aGlzW2dpXSgpO2lmKCFlW0ZpXSgpKXJldHVybiExO2lmKHZvaWQgMCE9PXRoaXNbdGldLl9pc1NwbGl0dGFibGUpcmV0dXJuIHRoaXNbdGldLl9pc1NwbGl0dGFibGU7aWYoInBvc2l0aW9uIj09PXRoaXMubGF5b3V0fHx0aGlzLmxheW91dC5pbmNsdWRlcygicm93Iikpe3RoaXNbdGldLl9pc1NwbGl0dGFibGU9ITE7cmV0dXJuITF9aWYodGhpcy5rZWVwJiYibm9uZSIhPT10aGlzLmtlZXAuaW50YWN0KXt0aGlzW3RpXS5faXNTcGxpdHRhYmxlPSExO3JldHVybiExfWlmKGUubGF5b3V0Py5lbmRzV2l0aCgiLXRiIikmJjAhPT1lW3RpXS5udW1iZXJJbkxpbmUpcmV0dXJuITE7dGhpc1t0aV0uX2lzU3BsaXR0YWJsZT0hMDtyZXR1cm4hMH1bdG9dKGUpe3NldFRhYkluZGV4KHRoaXMpO2lmKHRoaXMuYnJlYWspe2lmKCJhdXRvIiE9PXRoaXMuYnJlYWsuYWZ0ZXJ8fCIiIT09dGhpcy5icmVhay5hZnRlclRhcmdldCl7Y29uc3QgZT1uZXcgQnJlYWtBZnRlcih7dGFyZ2V0VHlwZTp0aGlzLmJyZWFrLmFmdGVyLHRhcmdldDp0aGlzLmJyZWFrLmFmdGVyVGFyZ2V0LHN0YXJ0TmV3OnRoaXMuYnJlYWsuc3RhcnROZXcudG9TdHJpbmcoKX0pO2VbamldPXRoaXNbamldO3RoaXNbV3NdKGUpO3RoaXMuYnJlYWtBZnRlci5wdXNoKGUpfWlmKCJhdXRvIiE9PXRoaXMuYnJlYWsuYmVmb3JlfHwiIiE9PXRoaXMuYnJlYWsuYmVmb3JlVGFyZ2V0KXtjb25zdCBlPW5ldyBCcmVha0JlZm9yZSh7dGFyZ2V0VHlwZTp0aGlzLmJyZWFrLmJlZm9yZSx0YXJnZXQ6dGhpcy5icmVhay5iZWZvcmVUYXJnZXQsc3RhcnROZXc6dGhpcy5icmVhay5zdGFydE5ldy50b1N0cmluZygpfSk7ZVtqaV09dGhpc1tqaV07dGhpc1tXc10oZSk7dGhpcy5icmVha0JlZm9yZS5wdXNoKGUpfWlmKCIiIT09dGhpcy5icmVhay5vdmVyZmxvd1RhcmdldCl7Y29uc3QgZT1uZXcgT3ZlcmZsb3coe3RhcmdldDp0aGlzLmJyZWFrLm92ZXJmbG93VGFyZ2V0LGxlYWRlcjp0aGlzLmJyZWFrLm92ZXJmbG93TGVhZGVyLHRyYWlsZXI6dGhpcy5icmVhay5vdmVyZmxvd1RyYWlsZXJ9KTtlW2ppXT10aGlzW2ppXTt0aGlzW1dzXShlKTt0aGlzLm92ZXJmbG93LnB1c2goZSl9dGhpc1tXaV0odGhpcy5icmVhayk7dGhpcy5icmVhaz1udWxsfWlmKCJoaWRkZW4iPT09dGhpcy5wcmVzZW5jZXx8ImluYWN0aXZlIj09PXRoaXMucHJlc2VuY2UpcmV0dXJuIEhUTUxSZXN1bHQuRU1QVFk7KHRoaXMuYnJlYWtCZWZvcmUuY2hpbGRyZW4ubGVuZ3RoPjF8fHRoaXMuYnJlYWtBZnRlci5jaGlsZHJlbi5sZW5ndGg+MSkmJndhcm4oIlhGQSAtIFNldmVyYWwgYnJlYWtCZWZvcmUgb3IgYnJlYWtBZnRlciBpbiBzdWJmb3JtczogcGxlYXNlIGZpbGUgYSBidWcuIik7aWYodGhpcy5icmVha0JlZm9yZS5jaGlsZHJlbi5sZW5ndGg+PTEpe2NvbnN0IGU9dGhpcy5icmVha0JlZm9yZS5jaGlsZHJlblswXTtpZihoYW5kbGVCcmVhayhlKSlyZXR1cm4gSFRNTFJlc3VsdC5icmVha05vZGUoZSl9aWYodGhpc1t0aV0/LmFmdGVyQnJlYWtBZnRlcilyZXR1cm4gSFRNTFJlc3VsdC5FTVBUWTtmaXhEaW1lbnNpb25zKHRoaXMpO2NvbnN0IHQ9W10sbj17aWQ6dGhpc1tyb10sY2xhc3M6W119O3NldEFjY2Vzcyh0aGlzLG4uY2xhc3MpO3RoaXNbdGldfHw9T2JqZWN0LmNyZWF0ZShudWxsKTtPYmplY3QuYXNzaWduKHRoaXNbdGldLHtjaGlsZHJlbjp0LGxpbmU6bnVsbCxhdHRyaWJ1dGVzOm4sYXR0ZW1wdDowLG51bWJlckluTGluZTowLGF2YWlsYWJsZVNwYWNlOnt3aWR0aDpNYXRoLm1pbih0aGlzLnd8fDEvMCxlLndpZHRoKSxoZWlnaHQ6TWF0aC5taW4odGhpcy5ofHwxLzAsZS5oZWlnaHQpfSx3aWR0aDowLGhlaWdodDowLHByZXZIZWlnaHQ6MCxjdXJyZW50V2lkdGg6MH0pO2NvbnN0IGE9dGhpc1t3aV0oKSxyPWFbdGldLm5vTGF5b3V0RmFpbHVyZSxzPXRoaXNbRmldKCk7c3x8c2V0Rmlyc3RVbnNwbGl0dGFibGUodGhpcyk7aWYoIWNoZWNrRGltZW5zaW9ucyh0aGlzLGUpKXJldHVybiBIVE1MUmVzdWx0LkZBSUxVUkU7Y29uc3QgaT1uZXcgU2V0KFsiYXJlYSIsImRyYXciLCJleGNsR3JvdXAiLCJmaWVsZCIsInN1YmZvcm0iLCJzdWJmb3JtU2V0Il0pO2lmKHRoaXMubGF5b3V0LmluY2x1ZGVzKCJyb3ciKSl7Y29uc3QgZT10aGlzW2dpXSgpLmNvbHVtbldpZHRocztpZihBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aD4wKXt0aGlzW3RpXS5jb2x1bW5XaWR0aHM9ZTt0aGlzW3RpXS5jdXJyZW50Q29sdW1uPTB9fWNvbnN0IG89dG9TdHlsZSh0aGlzLCJhbmNob3JUeXBlIiwiZGltZW5zaW9ucyIsInBvc2l0aW9uIiwicHJlc2VuY2UiLCJib3JkZXIiLCJtYXJnaW4iLCJoQWxpZ24iKSxsPVsieGZhU3ViZm9ybSJdLGY9bGF5b3V0Q2xhc3ModGhpcyk7ZiYmbC5wdXNoKGYpO24uc3R5bGU9bztuLmNsYXNzPWw7dGhpcy5uYW1lJiYobi54ZmFOYW1lPXRoaXMubmFtZSk7aWYodGhpcy5vdmVyZmxvdyl7Y29uc3QgdD10aGlzLm92ZXJmbG93W2hpXSgpO2lmKHQuYWRkTGVhZGVyKXt0LmFkZExlYWRlcj0hMTtoYW5kbGVPdmVyZmxvdyh0aGlzLHQubGVhZGVyLGUpfX10aGlzW1hpXSgpO2NvbnN0IGM9ImxyLXRiIj09PXRoaXMubGF5b3V0fHwicmwtdGIiPT09dGhpcy5sYXlvdXQsaD1jPzI6MTtmb3IoO3RoaXNbdGldLmF0dGVtcHQ8aDt0aGlzW3RpXS5hdHRlbXB0Kyspe2MmJjE9PT10aGlzW3RpXS5hdHRlbXB0JiYodGhpc1t0aV0ubnVtYmVySW5MaW5lPTApO2NvbnN0IGU9dGhpc1tLc10oe2ZpbHRlcjppLGluY2x1ZGU6ITB9KTtpZihlLnN1Y2Nlc3MpYnJlYWs7aWYoZS5pc0JyZWFrKCkpe3RoaXNbX2ldKCk7cmV0dXJuIGV9aWYoYyYmMD09PXRoaXNbdGldLmF0dGVtcHQmJjA9PT10aGlzW3RpXS5udW1iZXJJbkxpbmUmJiFhW3RpXS5ub0xheW91dEZhaWx1cmUpe3RoaXNbdGldLmF0dGVtcHQ9aDticmVha319dGhpc1tfaV0oKTtzfHx1bnNldEZpcnN0VW5zcGxpdHRhYmxlKHRoaXMpO2FbdGldLm5vTGF5b3V0RmFpbHVyZT1yO2lmKHRoaXNbdGldLmF0dGVtcHQ9PT1oKXt0aGlzLm92ZXJmbG93JiYodGhpc1t3aV0oKVt0aV0ub3ZlcmZsb3dOb2RlPXRoaXMub3ZlcmZsb3cpO3N8fGRlbGV0ZSB0aGlzW3RpXTtyZXR1cm4gSFRNTFJlc3VsdC5GQUlMVVJFfWlmKHRoaXMub3ZlcmZsb3cpe2NvbnN0IHQ9dGhpcy5vdmVyZmxvd1toaV0oKTtpZih0LmFkZFRyYWlsZXIpe3QuYWRkVHJhaWxlcj0hMTtoYW5kbGVPdmVyZmxvdyh0aGlzLHQudHJhaWxlcixlKX19bGV0IHU9MCxtPTA7aWYodGhpcy5tYXJnaW4pe3U9dGhpcy5tYXJnaW4ubGVmdEluc2V0K3RoaXMubWFyZ2luLnJpZ2h0SW5zZXQ7bT10aGlzLm1hcmdpbi50b3BJbnNldCt0aGlzLm1hcmdpbi5ib3R0b21JbnNldH1jb25zdCBwPU1hdGgubWF4KHRoaXNbdGldLndpZHRoK3UsdGhpcy53fHwwKSxkPU1hdGgubWF4KHRoaXNbdGldLmhlaWdodCttLHRoaXMuaHx8MCksZz1bdGhpcy54LHRoaXMueSxwLGRdOyIiPT09dGhpcy53JiYoby53aWR0aD1tZWFzdXJlVG9TdHJpbmcocCkpOyIiPT09dGhpcy5oJiYoby5oZWlnaHQ9bWVhc3VyZVRvU3RyaW5nKGQpKTtpZigoIjBweCI9PT1vLndpZHRofHwiMHB4Ij09PW8uaGVpZ2h0KSYmMD09PXQubGVuZ3RoKXJldHVybiBIVE1MUmVzdWx0LkVNUFRZO2NvbnN0IGI9e25hbWU6ImRpdiIsYXR0cmlidXRlczpuLGNoaWxkcmVuOnR9O2FwcGx5QXNzaXN0KHRoaXMsbik7Y29uc3Qgdz1IVE1MUmVzdWx0LnN1Y2Nlc3MoY3JlYXRlV3JhcHBlcih0aGlzLGIpLGcpO2lmKHRoaXMuYnJlYWtBZnRlci5jaGlsZHJlbi5sZW5ndGg+PTEpe2NvbnN0IGU9dGhpcy5icmVha0FmdGVyLmNoaWxkcmVuWzBdO2lmKGhhbmRsZUJyZWFrKGUpKXt0aGlzW3RpXS5hZnRlckJyZWFrQWZ0ZXI9dztyZXR1cm4gSFRNTFJlc3VsdC5icmVha05vZGUoZSl9fWRlbGV0ZSB0aGlzW3RpXTtyZXR1cm4gd319Y2xhc3MgU3ViZm9ybVNldCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywic3ViZm9ybVNldCIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy5yZWxhdGlvbj1nZXRTdHJpbmdPcHRpb24oZS5yZWxhdGlvbixbIm9yZGVyZWQiLCJjaG9pY2UiLCJ1bm9yZGVyZWQiXSk7dGhpcy5yZWxldmFudD1nZXRSZWxldmFudChlLnJlbGV2YW50KTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5ib29rZW5kPW51bGw7dGhpcy5icmVhaz1udWxsO3RoaXMuZGVzYz1udWxsO3RoaXMuZXh0cmFzPW51bGw7dGhpcy5vY2N1cj1udWxsO3RoaXMub3ZlcmZsb3c9bnVsbDt0aGlzLmJyZWFrQWZ0ZXI9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuYnJlYWtCZWZvcmU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuc3ViZm9ybT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zdWJmb3JtU2V0PW5ldyBYRkFPYmplY3RBcnJheX0qW3BpXSgpe3lpZWxkKmdldENvbnRhaW5lZENoaWxkcmVuKHRoaXMpfVtnaV0oKXtsZXQgZT10aGlzW2JpXSgpO2Zvcig7IShlIGluc3RhbmNlb2YgU3ViZm9ybSk7KWU9ZVtiaV0oKTtyZXR1cm4gZX1beGldKCl7cmV0dXJuITB9fWNsYXNzIFN1YmplY3RETiBleHRlbmRzIENvbnRlbnRPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sInN1YmplY3RETiIpO3RoaXMuZGVsaW1pdGVyPWUuZGVsaW1pdGVyfHwiLCI7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9W25pXSgpe3RoaXNbUXNdPW5ldyBNYXAodGhpc1tRc10uc3BsaXQodGhpcy5kZWxpbWl0ZXIpLm1hcChlPT57KGU9ZS5zcGxpdCgiPSIsMikpWzBdPWVbMF0udHJpbSgpO3JldHVybiBlfSkpfX1jbGFzcyBTdWJqZWN0RE5zIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJzdWJqZWN0RE5zIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnR5cGU9Z2V0U3RyaW5nT3B0aW9uKGUudHlwZSxbIm9wdGlvbmFsIiwicmVxdWlyZWQiXSk7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIiO3RoaXMuc3ViamVjdEROPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgU3VibWl0IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJzdWJtaXQiLCEwKTt0aGlzLmVtYmVkUERGPWdldEludGVnZXIoe2RhdGE6ZS5lbWJlZFBERixkZWZhdWx0VmFsdWU6MCx2YWxpZGF0ZTplPT4xPT09ZX0pO3RoaXMuZm9ybWF0PWdldFN0cmluZ09wdGlvbihlLmZvcm1hdCxbInhkcCIsImZvcm1kYXRhIiwicGRmIiwidXJsZW5jb2RlZCIsInhmZCIsInhtbCJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudGFyZ2V0PWUudGFyZ2V0fHwiIjt0aGlzLnRleHRFbmNvZGluZz1nZXRLZXl3b3JkKHtkYXRhOmUudGV4dEVuY29kaW5nP2UudGV4dEVuY29kaW5nLnRvTG93ZXJDYXNlKCk6IiIsZGVmYXVsdFZhbHVlOiIiLHZhbGlkYXRlOmU9PlsidXRmLTgiLCJiaWctZml2ZSIsImZvbnRzcGVjaWZpYyIsImdiayIsImdiLTE4MDMwIiwiZ2ItMjMxMiIsImtzYy01NjAxIiwibm9uZSIsInNoaWZ0LWppcyIsInVjcy0yIiwidXRmLTE2Il0uaW5jbHVkZXMoZSl8fGUubWF0Y2goL2lzby04ODU5LVxkezJ9Lyl9KTt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy54ZHBDb250ZW50PWUueGRwQ29udGVudHx8IiI7dGhpcy5lbmNyeXB0PW51bGw7dGhpcy5lbmNyeXB0RGF0YT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zaWduRGF0YT1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIFRlbXBsYXRlIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJ0ZW1wbGF0ZSIsITApO3RoaXMuYmFzZVByb2ZpbGU9Z2V0U3RyaW5nT3B0aW9uKGUuYmFzZVByb2ZpbGUsWyJmdWxsIiwiaW50ZXJhY3RpdmVGb3JtcyJdKTt0aGlzLmV4dHJhcz1udWxsO3RoaXMuc3ViZm9ybT1uZXcgWEZBT2JqZWN0QXJyYXl9W25pXSgpezA9PT10aGlzLnN1YmZvcm0uY2hpbGRyZW4ubGVuZ3RoJiZ3YXJuKCJYRkEgLSBObyBzdWJmb3JtcyBpbiB0ZW1wbGF0ZSBub2RlLiIpO3RoaXMuc3ViZm9ybS5jaGlsZHJlbi5sZW5ndGg+PTImJndhcm4oIlhGQSAtIFNldmVyYWwgc3ViZm9ybXMgaW4gdGVtcGxhdGUgbm9kZTogcGxlYXNlIGZpbGUgYSBidWcuIik7dGhpc1tRaV09NWUzfVtGaV0oKXtyZXR1cm4hMH1bR2ldKGUsdCl7cmV0dXJuIGUuc3RhcnRzV2l0aCgiIyIpP1t0aGlzW3lpXS5nZXQoZS5zbGljZSgxKSldOnNlYXJjaE5vZGUodGhpcyx0LGUsITAsITApfSpbZW9dKCl7aWYoIXRoaXMuc3ViZm9ybS5jaGlsZHJlbi5sZW5ndGgpcmV0dXJuIEhUTUxSZXN1bHQuc3VjY2Vzcyh7bmFtZToiZGl2IixjaGlsZHJlbjpbXX0pO3RoaXNbdGldPXtvdmVyZmxvd05vZGU6bnVsbCxmaXJzdFVuc3BsaXR0YWJsZTpudWxsLGN1cnJlbnRDb250ZW50QXJlYTpudWxsLGN1cnJlbnRQYWdlQXJlYTpudWxsLG5vTGF5b3V0RmFpbHVyZTohMSxwYWdlTnVtYmVyOjEscGFnZVBvc2l0aW9uOiJmaXJzdCIsb2RkT3JFdmVuOiJvZGQiLGJsYW5rT3JOb3RCbGFuazoibm9uQmxhbmsiLHBhcmFTdGFjazpbXX07Y29uc3QgZT10aGlzLnN1YmZvcm0uY2hpbGRyZW5bMF07ZS5wYWdlU2V0W0dzXSgpO2NvbnN0IHQ9ZS5wYWdlU2V0LnBhZ2VBcmVhLmNoaWxkcmVuLG49e25hbWU6ImRpdiIsY2hpbGRyZW46W119O2xldCBhPW51bGwscj1udWxsLHM9bnVsbDtpZihlLmJyZWFrQmVmb3JlLmNoaWxkcmVuLmxlbmd0aD49MSl7cj1lLmJyZWFrQmVmb3JlLmNoaWxkcmVuWzBdO3M9ci50YXJnZXR9ZWxzZSBpZihlLnN1YmZvcm0uY2hpbGRyZW4ubGVuZ3RoPj0xJiZlLnN1YmZvcm0uY2hpbGRyZW5bMF0uYnJlYWtCZWZvcmUuY2hpbGRyZW4ubGVuZ3RoPj0xKXtyPWUuc3ViZm9ybS5jaGlsZHJlblswXS5icmVha0JlZm9yZS5jaGlsZHJlblswXTtzPXIudGFyZ2V0fWVsc2UgaWYoZS5icmVhaz8uYmVmb3JlVGFyZ2V0KXtyPWUuYnJlYWs7cz1yLmJlZm9yZVRhcmdldH1lbHNlIGlmKGUuc3ViZm9ybS5jaGlsZHJlbi5sZW5ndGg+PTEmJmUuc3ViZm9ybS5jaGlsZHJlblswXS5icmVhaz8uYmVmb3JlVGFyZ2V0KXtyPWUuc3ViZm9ybS5jaGlsZHJlblswXS5icmVhaztzPXIuYmVmb3JlVGFyZ2V0fWlmKHIpe2NvbnN0IGU9dGhpc1tHaV0ocyxyW2JpXSgpKTtpZihlIGluc3RhbmNlb2YgUGFnZUFyZWEpe2E9ZTtyW3RpXT17fX19YXx8PXRbMF07YVt0aV09e251bWJlck9mVXNlOjF9O2NvbnN0IGk9YVtiaV0oKTtpW3RpXT17bnVtYmVyT2ZVc2U6MSxwYWdlSW5kZXg6aS5wYWdlQXJlYS5jaGlsZHJlbi5pbmRleE9mKGEpLHBhZ2VTZXRJbmRleDowfTtsZXQgbyxsPW51bGwsZj1udWxsLGM9ITAsaD0wLHU9MDtmb3IoOzspe2lmKGMpaD0wO2Vsc2V7bi5jaGlsZHJlbi5wb3AoKTtpZigzPT09KytoKXt3YXJuKCJYRkEgLSBTb21ldGhpbmcgZ29lcyB3cm9uZzogcGxlYXNlIGZpbGUgYSBidWcuIik7cmV0dXJuIG59fW89bnVsbDt0aGlzW3RpXS5jdXJyZW50UGFnZUFyZWE9YTtjb25zdCB0PWFbdG9dKCkuaHRtbDtuLmNoaWxkcmVuLnB1c2godCk7aWYobCl7dGhpc1t0aV0ubm9MYXlvdXRGYWlsdXJlPSEwO3QuY2hpbGRyZW4ucHVzaChsW3RvXShhW3RpXS5zcGFjZSkuaHRtbCk7bD1udWxsfWlmKGYpe3RoaXNbdGldLm5vTGF5b3V0RmFpbHVyZT0hMDt0LmNoaWxkcmVuLnB1c2goZlt0b10oYVt0aV0uc3BhY2UpLmh0bWwpO2Y9bnVsbH1jb25zdCByPWEuY29udGVudEFyZWEuY2hpbGRyZW4scz10LmNoaWxkcmVuLmZpbHRlcihlPT5lLmF0dHJpYnV0ZXMuY2xhc3MuaW5jbHVkZXMoInhmYUNvbnRlbnRhcmVhIikpO2M9ITE7dGhpc1t0aV0uZmlyc3RVbnNwbGl0dGFibGU9bnVsbDt0aGlzW3RpXS5ub0xheW91dEZhaWx1cmU9ITE7Y29uc3QgZmx1c2g9dD0+e2NvbnN0IG49ZVthaV0oKTtpZihuKXtjfHw9bi5jaGlsZHJlbj8ubGVuZ3RoPjA7c1t0XS5jaGlsZHJlbi5wdXNoKG4pfX07Zm9yKGxldCB0PXUsYT1yLmxlbmd0aDt0PGE7dCsrKXtjb25zdCBhPXRoaXNbdGldLmN1cnJlbnRDb250ZW50QXJlYT1yW3RdLGk9e3dpZHRoOmEudyxoZWlnaHQ6YS5ofTt1PTA7aWYobCl7c1t0XS5jaGlsZHJlbi5wdXNoKGxbdG9dKGkpLmh0bWwpO2w9bnVsbH1pZihmKXtzW3RdLmNoaWxkcmVuLnB1c2goZlt0b10oaSkuaHRtbCk7Zj1udWxsfWNvbnN0IGg9ZVt0b10oaSk7aWYoaC5zdWNjZXNzKXtpZihoLmh0bWwpe2N8fD1oLmh0bWwuY2hpbGRyZW4/Lmxlbmd0aD4wO3NbdF0uY2hpbGRyZW4ucHVzaChoLmh0bWwpfWVsc2UhYyYmbi5jaGlsZHJlbi5sZW5ndGg+MSYmbi5jaGlsZHJlbi5wb3AoKTtyZXR1cm4gbn1pZihoLmlzQnJlYWsoKSl7Y29uc3QgZT1oLmJyZWFrTm9kZTtmbHVzaCh0KTtpZigiYXV0byI9PT1lLnRhcmdldFR5cGUpY29udGludWU7aWYoZS5sZWFkZXIpe2w9dGhpc1tHaV0oZS5sZWFkZXIsZVtiaV0oKSk7bD1sP2xbMF06bnVsbH1pZihlLnRyYWlsZXIpe2Y9dGhpc1tHaV0oZS50cmFpbGVyLGVbYmldKCkpO2Y9Zj9mWzBdOm51bGx9aWYoInBhZ2VBcmVhIj09PWUudGFyZ2V0VHlwZSl7bz1lW3RpXS50YXJnZXQ7dD0xLzB9ZWxzZSBpZihlW3RpXS50YXJnZXQpe289ZVt0aV0udGFyZ2V0O3U9ZVt0aV0uaW5kZXgrMTt0PTEvMH1lbHNlIHQ9ZVt0aV0uaW5kZXg7Y29udGludWV9aWYodGhpc1t0aV0ub3ZlcmZsb3dOb2RlKXtjb25zdCBlPXRoaXNbdGldLm92ZXJmbG93Tm9kZTt0aGlzW3RpXS5vdmVyZmxvd05vZGU9bnVsbDtjb25zdCBuPWVbaGldKCksYT1uLnRhcmdldDtuLmFkZExlYWRlcj1udWxsIT09bi5sZWFkZXI7bi5hZGRUcmFpbGVyPW51bGwhPT1uLnRyYWlsZXI7Zmx1c2godCk7Y29uc3Qgcz10O3Q9MS8wO2lmKGEgaW5zdGFuY2VvZiBQYWdlQXJlYSlvPWE7ZWxzZSBpZihhIGluc3RhbmNlb2YgQ29udGVudEFyZWEpe2NvbnN0IGU9ci5pbmRleE9mKGEpO2lmKC0xIT09ZSllPnM/dD1lLTE6dT1lO2Vsc2V7bz1hW2JpXSgpO3U9by5jb250ZW50QXJlYS5jaGlsZHJlbi5pbmRleE9mKGEpfX1jb250aW51ZX1mbHVzaCh0KX10aGlzW3RpXS5wYWdlTnVtYmVyKz0xO28mJihvW1JpXSgpP29bdGldLm51bWJlck9mVXNlKz0xOm89bnVsbCk7YT1vfHxhW2RpXSgpO3lpZWxkIG51bGx9fX1jbGFzcyBUZXh0IGV4dGVuZHMgQ29udGVudE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywidGV4dCIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5tYXhDaGFycz1nZXRJbnRlZ2VyKHtkYXRhOmUubWF4Q2hhcnMsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+ZT49MH0pO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMucmlkPWUucmlkfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9W1VzXSgpe3JldHVybiEwfVtQaV0oZSl7aWYoZVtIaV09PT1pby54aHRtbC5pZCl7dGhpc1tRc109ZTtyZXR1cm4hMH13YXJuKGBYRkEgLSBJbnZhbGlkIGNvbnRlbnQgaW4gVGV4dDogJHtlW0RpXX0uYCk7cmV0dXJuITF9W05pXShlKXt0aGlzW1FzXWluc3RhbmNlb2YgWEZBT2JqZWN0fHxzdXBlcltOaV0oZSl9W25pXSgpeyJzdHJpbmciPT10eXBlb2YgdGhpc1tRc10mJih0aGlzW1FzXT10aGlzW1FzXS5yZXBsYWNlQWxsKCJcclxuIiwiXG4iKSl9W2hpXSgpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdGhpc1tRc10/dGhpc1tRc10uc3BsaXQoL1tcdTIwMjlcdTIwMjhcbl0vKS5maWx0ZXIoZT0+ISFlKS5qb2luKCJcbiIpOnRoaXNbUXNdW1ppXSgpfVt0b10oZSl7aWYoInN0cmluZyI9PXR5cGVvZiB0aGlzW1FzXSl7Y29uc3QgZT12YWx1ZVRvSHRtbCh0aGlzW1FzXSkuaHRtbDtpZih0aGlzW1FzXS5pbmNsdWRlcygiXHUyMDI5Iikpe2UubmFtZT0iZGl2IjtlLmNoaWxkcmVuPVtdO3RoaXNbUXNdLnNwbGl0KCJcdTIwMjkiKS5tYXAoZT0+ZS5zcGxpdCgvW1x1MjAyOFxuXS8pLmZsYXRNYXAoZT0+W3tuYW1lOiJzcGFuIix2YWx1ZTplfSx7bmFtZToiYnIifV0pKS5mb3JFYWNoKHQ9PntlLmNoaWxkcmVuLnB1c2goe25hbWU6InAiLGNoaWxkcmVuOnR9KX0pfWVsc2UgaWYoL1tcdTIwMjhcbl0vLnRlc3QodGhpc1tRc10pKXtlLm5hbWU9ImRpdiI7ZS5jaGlsZHJlbj1bXTt0aGlzW1FzXS5zcGxpdCgvW1x1MjAyOFxuXS8pLmZvckVhY2godD0+e2UuY2hpbGRyZW4ucHVzaCh7bmFtZToic3BhbiIsdmFsdWU6dH0se25hbWU6ImJyIn0pfSl9cmV0dXJuIEhUTUxSZXN1bHQuc3VjY2VzcyhlKX1yZXR1cm4gdGhpc1tRc11bdG9dKGUpfX1jbGFzcyBUZXh0RWRpdCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywidGV4dEVkaXQiLCEwKTt0aGlzLmFsbG93UmljaFRleHQ9Z2V0SW50ZWdlcih7ZGF0YTplLmFsbG93UmljaFRleHQsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+MT09PWV9KTt0aGlzLmhTY3JvbGxQb2xpY3k9Z2V0U3RyaW5nT3B0aW9uKGUuaFNjcm9sbFBvbGljeSxbImF1dG8iLCJvZmYiLCJvbiJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubXVsdGlMaW5lPWdldEludGVnZXIoe2RhdGE6ZS5tdWx0aUxpbmUsZGVmYXVsdFZhbHVlOiIiLHZhbGlkYXRlOmU9PjA9PT1lfHwxPT09ZX0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLnZTY3JvbGxQb2xpY3k9Z2V0U3RyaW5nT3B0aW9uKGUudlNjcm9sbFBvbGljeSxbImF1dG8iLCJvZmYiLCJvbiJdKTt0aGlzLmJvcmRlcj1udWxsO3RoaXMuY29tYj1udWxsO3RoaXMuZXh0cmFzPW51bGw7dGhpcy5tYXJnaW49bnVsbH1bdG9dKGUpe2NvbnN0IHQ9dG9TdHlsZSh0aGlzLCJib3JkZXIiLCJmb250IiwibWFyZ2luIik7bGV0IG47Y29uc3QgYT10aGlzW2JpXSgpW2JpXSgpOyIiPT09dGhpcy5tdWx0aUxpbmUmJih0aGlzLm11bHRpTGluZT1hIGluc3RhbmNlb2YgRHJhdz8xOjApO249MT09PXRoaXMubXVsdGlMaW5lP3tuYW1lOiJ0ZXh0YXJlYSIsYXR0cmlidXRlczp7ZGF0YUlkOmFbWnNdPy5bcm9dfHxhW3JvXSxmaWVsZElkOmFbcm9dLGNsYXNzOlsieGZhVGV4dGZpZWxkIl0sc3R5bGU6dCwiYXJpYS1sYWJlbCI6YXJpYUxhYmVsKGEpLCJhcmlhLXJlcXVpcmVkIjohMX19OntuYW1lOiJpbnB1dCIsYXR0cmlidXRlczp7dHlwZToidGV4dCIsZGF0YUlkOmFbWnNdPy5bcm9dfHxhW3JvXSxmaWVsZElkOmFbcm9dLGNsYXNzOlsieGZhVGV4dGZpZWxkIl0sc3R5bGU6dCwiYXJpYS1sYWJlbCI6YXJpYUxhYmVsKGEpLCJhcmlhLXJlcXVpcmVkIjohMX19O2lmKGlzUmVxdWlyZWQoYSkpe24uYXR0cmlidXRlc1siYXJpYS1yZXF1aXJlZCJdPSEwO24uYXR0cmlidXRlcy5yZXF1aXJlZD0hMH1yZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOiJsYWJlbCIsYXR0cmlidXRlczp7Y2xhc3M6WyJ4ZmFMYWJlbCJdfSxjaGlsZHJlbjpbbl19KX19Y2xhc3MgVGltZSBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywidGltZSIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifVtuaV0oKXtjb25zdCBlPXRoaXNbUXNdLnRyaW0oKTt0aGlzW1FzXT1lP25ldyBEYXRlKGUpOm51bGx9W3RvXShlKXtyZXR1cm4gdmFsdWVUb0h0bWwodGhpc1tRc10/dGhpc1tRc10udG9TdHJpbmcoKToiIil9fWNsYXNzIFRpbWVTdGFtcCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywidGltZVN0YW1wIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnNlcnZlcj1lLnNlcnZlcnx8IiI7dGhpcy50eXBlPWdldFN0cmluZ09wdGlvbihlLnR5cGUsWyJvcHRpb25hbCIsInJlcXVpcmVkIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn19Y2xhc3MgVG9vbFRpcCBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywidG9vbFRpcCIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5yaWQ9ZS5yaWR8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn19Y2xhc3MgVHJhdmVyc2FsIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJ0cmF2ZXJzYWwiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmV4dHJhcz1udWxsO3RoaXMudHJhdmVyc2U9bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBUcmF2ZXJzZSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywidHJhdmVyc2UiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMub3BlcmF0aW9uPWdldFN0cmluZ09wdGlvbihlLm9wZXJhdGlvbixbIm5leHQiLCJiYWNrIiwiZG93biIsImZpcnN0IiwibGVmdCIsInJpZ2h0IiwidXAiXSk7dGhpcy5yZWY9ZS5yZWZ8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmV4dHJhcz1udWxsO3RoaXMuc2NyaXB0PW51bGx9Z2V0IG5hbWUoKXtyZXR1cm4gdGhpcy5vcGVyYXRpb259W09pXSgpe3JldHVybiExfX1jbGFzcyBVaSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywidWkiLCEwKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmV4dHJhcz1udWxsO3RoaXMucGljdHVyZT1udWxsO3RoaXMuYmFyY29kZT1udWxsO3RoaXMuYnV0dG9uPW51bGw7dGhpcy5jaGVja0J1dHRvbj1udWxsO3RoaXMuY2hvaWNlTGlzdD1udWxsO3RoaXMuZGF0ZVRpbWVFZGl0PW51bGw7dGhpcy5kZWZhdWx0VWk9bnVsbDt0aGlzLmltYWdlRWRpdD1udWxsO3RoaXMubnVtZXJpY0VkaXQ9bnVsbDt0aGlzLnBhc3N3b3JkRWRpdD1udWxsO3RoaXMuc2lnbmF0dXJlPW51bGw7dGhpcy50ZXh0RWRpdD1udWxsfVtoaV0oKXtpZih2b2lkIDA9PT10aGlzW3RpXSl7Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpe2lmKCJleHRyYXMiPT09ZXx8InBpY3R1cmUiPT09ZSljb250aW51ZTtjb25zdCB0PXRoaXNbZV07aWYodCBpbnN0YW5jZW9mIFhGQU9iamVjdCl7dGhpc1t0aV09dDtyZXR1cm4gdH19dGhpc1t0aV09bnVsbH1yZXR1cm4gdGhpc1t0aV19W3RvXShlKXtjb25zdCB0PXRoaXNbaGldKCk7cmV0dXJuIHQ/dFt0b10oZSk6SFRNTFJlc3VsdC5FTVBUWX19Y2xhc3MgVmFsaWRhdGUgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoem8sInZhbGlkYXRlIiwhMCk7dGhpcy5mb3JtYXRUZXN0PWdldFN0cmluZ09wdGlvbihlLmZvcm1hdFRlc3QsWyJ3YXJuaW5nIiwiZGlzYWJsZWQiLCJlcnJvciJdKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubnVsbFRlc3Q9Z2V0U3RyaW5nT3B0aW9uKGUubnVsbFRlc3QsWyJkaXNhYmxlZCIsImVycm9yIiwid2FybmluZyJdKTt0aGlzLnNjcmlwdFRlc3Q9Z2V0U3RyaW5nT3B0aW9uKGUuc2NyaXB0VGVzdCxbImVycm9yIiwiZGlzYWJsZWQiLCJ3YXJuaW5nIl0pO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmV4dHJhcz1udWxsO3RoaXMubWVzc2FnZT1udWxsO3RoaXMucGljdHVyZT1udWxsO3RoaXMuc2NyaXB0PW51bGx9fWNsYXNzIFZhbHVlIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKHpvLCJ2YWx1ZSIsITApO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5vdmVycmlkZT1nZXRJbnRlZ2VyKHtkYXRhOmUub3ZlcnJpZGUsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+MT09PWV9KTt0aGlzLnJlbGV2YW50PWdldFJlbGV2YW50KGUucmVsZXZhbnQpO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIjt0aGlzLmFyYz1udWxsO3RoaXMuYm9vbGVhbj1udWxsO3RoaXMuZGF0ZT1udWxsO3RoaXMuZGF0ZVRpbWU9bnVsbDt0aGlzLmRlY2ltYWw9bnVsbDt0aGlzLmV4RGF0YT1udWxsO3RoaXMuZmxvYXQ9bnVsbDt0aGlzLmltYWdlPW51bGw7dGhpcy5pbnRlZ2VyPW51bGw7dGhpcy5saW5lPW51bGw7dGhpcy5yZWN0YW5nbGU9bnVsbDt0aGlzLnRleHQ9bnVsbDt0aGlzLnRpbWU9bnVsbH1bSmldKGUpe2NvbnN0IHQ9dGhpc1tiaV0oKTtpZih0IGluc3RhbmNlb2YgRmllbGQmJnQudWk/LmltYWdlRWRpdCl7aWYoIXRoaXMuaW1hZ2Upe3RoaXMuaW1hZ2U9bmV3IEltYWdlKHt9KTt0aGlzW1dzXSh0aGlzLmltYWdlKX10aGlzLmltYWdlW1FzXT1lW1FzXTtyZXR1cm59Y29uc3Qgbj1lW0RpXTtpZihudWxsPT09dGhpc1tuXSl7Zm9yKGNvbnN0IGUgb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGhpcykpe2NvbnN0IHQ9dGhpc1tlXTtpZih0IGluc3RhbmNlb2YgWEZBT2JqZWN0KXt0aGlzW2VdPW51bGw7dGhpc1tXaV0odCl9fXRoaXNbZVtEaV1dPWU7dGhpc1tXc10oZSl9ZWxzZSB0aGlzW25dW1FzXT1lW1FzXX1bWmldKCl7aWYodGhpcy5leERhdGEpcmV0dXJuInN0cmluZyI9PXR5cGVvZiB0aGlzLmV4RGF0YVtRc10/dGhpcy5leERhdGFbUXNdLnRyaW0oKTp0aGlzLmV4RGF0YVtRc11bWmldKCkudHJpbSgpO2Zvcihjb25zdCBlIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMpKXtpZigiaW1hZ2UiPT09ZSljb250aW51ZTtjb25zdCB0PXRoaXNbZV07aWYodCBpbnN0YW5jZW9mIFhGQU9iamVjdClyZXR1cm4odFtRc118fCIiKS50b1N0cmluZygpLnRyaW0oKX1yZXR1cm4gbnVsbH1bdG9dKGUpe2Zvcihjb25zdCB0IG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMpKXtjb25zdCBuPXRoaXNbdF07aWYobiBpbnN0YW5jZW9mIFhGQU9iamVjdClyZXR1cm4gblt0b10oZSl9cmV0dXJuIEhUTUxSZXN1bHQuRU1QVFl9fWNsYXNzIFZhcmlhYmxlcyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcih6bywidmFyaWFibGVzIiwhMCk7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiI7dGhpcy5ib29sZWFuPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRhdGU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZGF0ZVRpbWU9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZGVjaW1hbD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5leERhdGE9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuZmxvYXQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuaW1hZ2U9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuaW50ZWdlcj1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5tYW5pZmVzdD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5zY3JpcHQ9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMudGV4dD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy50aW1lPW5ldyBYRkFPYmplY3RBcnJheX1bT2ldKCl7cmV0dXJuITB9fWNsYXNzIFRlbXBsYXRlTmFtZXNwYWNle3N0YXRpY1tzb10oZSx0KXtpZihUZW1wbGF0ZU5hbWVzcGFjZS5oYXNPd25Qcm9wZXJ0eShlKSl7Y29uc3Qgbj1UZW1wbGF0ZU5hbWVzcGFjZVtlXSh0KTtuW1lpXSh0KTtyZXR1cm4gbn19c3RhdGljIGFwcGVhcmFuY2VGaWx0ZXIoZSl7cmV0dXJuIG5ldyBBcHBlYXJhbmNlRmlsdGVyKGUpfXN0YXRpYyBhcmMoZSl7cmV0dXJuIG5ldyBBcmMoZSl9c3RhdGljIGFyZWEoZSl7cmV0dXJuIG5ldyBBcmVhKGUpfXN0YXRpYyBhc3Npc3QoZSl7cmV0dXJuIG5ldyBBc3Npc3QoZSl9c3RhdGljIGJhcmNvZGUoZSl7cmV0dXJuIG5ldyBCYXJjb2RlKGUpfXN0YXRpYyBiaW5kKGUpe3JldHVybiBuZXcgQmluZChlKX1zdGF0aWMgYmluZEl0ZW1zKGUpe3JldHVybiBuZXcgQmluZEl0ZW1zKGUpfXN0YXRpYyBib29rZW5kKGUpe3JldHVybiBuZXcgQm9va2VuZChlKX1zdGF0aWMgYm9vbGVhbihlKXtyZXR1cm4gbmV3IEJvb2xlYW5FbGVtZW50KGUpfXN0YXRpYyBib3JkZXIoZSl7cmV0dXJuIG5ldyBCb3JkZXIoZSl9c3RhdGljIGJyZWFrKGUpe3JldHVybiBuZXcgQnJlYWsoZSl9c3RhdGljIGJyZWFrQWZ0ZXIoZSl7cmV0dXJuIG5ldyBCcmVha0FmdGVyKGUpfXN0YXRpYyBicmVha0JlZm9yZShlKXtyZXR1cm4gbmV3IEJyZWFrQmVmb3JlKGUpfXN0YXRpYyBidXR0b24oZSl7cmV0dXJuIG5ldyBCdXR0b24oZSl9c3RhdGljIGNhbGN1bGF0ZShlKXtyZXR1cm4gbmV3IENhbGN1bGF0ZShlKX1zdGF0aWMgY2FwdGlvbihlKXtyZXR1cm4gbmV3IENhcHRpb24oZSl9c3RhdGljIGNlcnRpZmljYXRlKGUpe3JldHVybiBuZXcgQ2VydGlmaWNhdGUoZSl9c3RhdGljIGNlcnRpZmljYXRlcyhlKXtyZXR1cm4gbmV3IENlcnRpZmljYXRlcyhlKX1zdGF0aWMgY2hlY2tCdXR0b24oZSl7cmV0dXJuIG5ldyBDaGVja0J1dHRvbihlKX1zdGF0aWMgY2hvaWNlTGlzdChlKXtyZXR1cm4gbmV3IENob2ljZUxpc3QoZSl9c3RhdGljIGNvbG9yKGUpe3JldHVybiBuZXcgQ29sb3IoZSl9c3RhdGljIGNvbWIoZSl7cmV0dXJuIG5ldyBDb21iKGUpfXN0YXRpYyBjb25uZWN0KGUpe3JldHVybiBuZXcgQ29ubmVjdChlKX1zdGF0aWMgY29udGVudEFyZWEoZSl7cmV0dXJuIG5ldyBDb250ZW50QXJlYShlKX1zdGF0aWMgY29ybmVyKGUpe3JldHVybiBuZXcgQ29ybmVyKGUpfXN0YXRpYyBkYXRlKGUpe3JldHVybiBuZXcgRGF0ZUVsZW1lbnQoZSl9c3RhdGljIGRhdGVUaW1lKGUpe3JldHVybiBuZXcgRGF0ZVRpbWUoZSl9c3RhdGljIGRhdGVUaW1lRWRpdChlKXtyZXR1cm4gbmV3IERhdGVUaW1lRWRpdChlKX1zdGF0aWMgZGVjaW1hbChlKXtyZXR1cm4gbmV3IERlY2ltYWwoZSl9c3RhdGljIGRlZmF1bHRVaShlKXtyZXR1cm4gbmV3IERlZmF1bHRVaShlKX1zdGF0aWMgZGVzYyhlKXtyZXR1cm4gbmV3IERlc2MoZSl9c3RhdGljIGRpZ2VzdE1ldGhvZChlKXtyZXR1cm4gbmV3IERpZ2VzdE1ldGhvZChlKX1zdGF0aWMgZGlnZXN0TWV0aG9kcyhlKXtyZXR1cm4gbmV3IERpZ2VzdE1ldGhvZHMoZSl9c3RhdGljIGRyYXcoZSl7cmV0dXJuIG5ldyBEcmF3KGUpfXN0YXRpYyBlZGdlKGUpe3JldHVybiBuZXcgRWRnZShlKX1zdGF0aWMgZW5jb2RpbmcoZSl7cmV0dXJuIG5ldyBFbmNvZGluZyhlKX1zdGF0aWMgZW5jb2RpbmdzKGUpe3JldHVybiBuZXcgRW5jb2RpbmdzKGUpfXN0YXRpYyBlbmNyeXB0KGUpe3JldHVybiBuZXcgRW5jcnlwdChlKX1zdGF0aWMgZW5jcnlwdERhdGEoZSl7cmV0dXJuIG5ldyBFbmNyeXB0RGF0YShlKX1zdGF0aWMgZW5jcnlwdGlvbihlKXtyZXR1cm4gbmV3IEVuY3J5cHRpb24oZSl9c3RhdGljIGVuY3J5cHRpb25NZXRob2QoZSl7cmV0dXJuIG5ldyBFbmNyeXB0aW9uTWV0aG9kKGUpfXN0YXRpYyBlbmNyeXB0aW9uTWV0aG9kcyhlKXtyZXR1cm4gbmV3IEVuY3J5cHRpb25NZXRob2RzKGUpfXN0YXRpYyBldmVudChlKXtyZXR1cm4gbmV3IEV2ZW50KGUpfXN0YXRpYyBleERhdGEoZSl7cmV0dXJuIG5ldyBFeERhdGEoZSl9c3RhdGljIGV4T2JqZWN0KGUpe3JldHVybiBuZXcgRXhPYmplY3QoZSl9c3RhdGljIGV4Y2xHcm91cChlKXtyZXR1cm4gbmV3IEV4Y2xHcm91cChlKX1zdGF0aWMgZXhlY3V0ZShlKXtyZXR1cm4gbmV3IEV4ZWN1dGUoZSl9c3RhdGljIGV4dHJhcyhlKXtyZXR1cm4gbmV3IEV4dHJhcyhlKX1zdGF0aWMgZmllbGQoZSl7cmV0dXJuIG5ldyBGaWVsZChlKX1zdGF0aWMgZmlsbChlKXtyZXR1cm4gbmV3IEZpbGwoZSl9c3RhdGljIGZpbHRlcihlKXtyZXR1cm4gbmV3IEZpbHRlcihlKX1zdGF0aWMgZmxvYXQoZSl7cmV0dXJuIG5ldyBGbG9hdChlKX1zdGF0aWMgZm9udChlKXtyZXR1cm4gbmV3IHRlbXBsYXRlX0ZvbnQoZSl9c3RhdGljIGZvcm1hdChlKXtyZXR1cm4gbmV3IEZvcm1hdChlKX1zdGF0aWMgaGFuZGxlcihlKXtyZXR1cm4gbmV3IEhhbmRsZXIoZSl9c3RhdGljIGh5cGhlbmF0aW9uKGUpe3JldHVybiBuZXcgSHlwaGVuYXRpb24oZSl9c3RhdGljIGltYWdlKGUpe3JldHVybiBuZXcgSW1hZ2UoZSl9c3RhdGljIGltYWdlRWRpdChlKXtyZXR1cm4gbmV3IEltYWdlRWRpdChlKX1zdGF0aWMgaW50ZWdlcihlKXtyZXR1cm4gbmV3IEludGVnZXIoZSl9c3RhdGljIGlzc3VlcnMoZSl7cmV0dXJuIG5ldyBJc3N1ZXJzKGUpfXN0YXRpYyBpdGVtcyhlKXtyZXR1cm4gbmV3IEl0ZW1zKGUpfXN0YXRpYyBrZWVwKGUpe3JldHVybiBuZXcgS2VlcChlKX1zdGF0aWMga2V5VXNhZ2UoZSl7cmV0dXJuIG5ldyBLZXlVc2FnZShlKX1zdGF0aWMgbGluZShlKXtyZXR1cm4gbmV3IExpbmUoZSl9c3RhdGljIGxpbmVhcihlKXtyZXR1cm4gbmV3IExpbmVhcihlKX1zdGF0aWMgbG9ja0RvY3VtZW50KGUpe3JldHVybiBuZXcgTG9ja0RvY3VtZW50KGUpfXN0YXRpYyBtYW5pZmVzdChlKXtyZXR1cm4gbmV3IE1hbmlmZXN0KGUpfXN0YXRpYyBtYXJnaW4oZSl7cmV0dXJuIG5ldyBNYXJnaW4oZSl9c3RhdGljIG1kcChlKXtyZXR1cm4gbmV3IE1kcChlKX1zdGF0aWMgbWVkaXVtKGUpe3JldHVybiBuZXcgTWVkaXVtKGUpfXN0YXRpYyBtZXNzYWdlKGUpe3JldHVybiBuZXcgTWVzc2FnZShlKX1zdGF0aWMgbnVtZXJpY0VkaXQoZSl7cmV0dXJuIG5ldyBOdW1lcmljRWRpdChlKX1zdGF0aWMgb2NjdXIoZSl7cmV0dXJuIG5ldyBPY2N1cihlKX1zdGF0aWMgb2lkKGUpe3JldHVybiBuZXcgT2lkKGUpfXN0YXRpYyBvaWRzKGUpe3JldHVybiBuZXcgT2lkcyhlKX1zdGF0aWMgb3ZlcmZsb3coZSl7cmV0dXJuIG5ldyBPdmVyZmxvdyhlKX1zdGF0aWMgcGFnZUFyZWEoZSl7cmV0dXJuIG5ldyBQYWdlQXJlYShlKX1zdGF0aWMgcGFnZVNldChlKXtyZXR1cm4gbmV3IFBhZ2VTZXQoZSl9c3RhdGljIHBhcmEoZSl7cmV0dXJuIG5ldyBQYXJhKGUpfXN0YXRpYyBwYXNzd29yZEVkaXQoZSl7cmV0dXJuIG5ldyBQYXNzd29yZEVkaXQoZSl9c3RhdGljIHBhdHRlcm4oZSl7cmV0dXJuIG5ldyB0ZW1wbGF0ZV9QYXR0ZXJuKGUpfXN0YXRpYyBwaWN0dXJlKGUpe3JldHVybiBuZXcgUGljdHVyZShlKX1zdGF0aWMgcHJvdG8oZSl7cmV0dXJuIG5ldyBQcm90byhlKX1zdGF0aWMgcmFkaWFsKGUpe3JldHVybiBuZXcgUmFkaWFsKGUpfXN0YXRpYyByZWFzb24oZSl7cmV0dXJuIG5ldyBSZWFzb24oZSl9c3RhdGljIHJlYXNvbnMoZSl7cmV0dXJuIG5ldyBSZWFzb25zKGUpfXN0YXRpYyByZWN0YW5nbGUoZSl7cmV0dXJuIG5ldyBSZWN0YW5nbGUoZSl9c3RhdGljIHJlZihlKXtyZXR1cm4gbmV3IFJlZkVsZW1lbnQoZSl9c3RhdGljIHNjcmlwdChlKXtyZXR1cm4gbmV3IFNjcmlwdChlKX1zdGF0aWMgc2V0UHJvcGVydHkoZSl7cmV0dXJuIG5ldyBTZXRQcm9wZXJ0eShlKX1zdGF0aWMgc2lnbkRhdGEoZSl7cmV0dXJuIG5ldyBTaWduRGF0YShlKX1zdGF0aWMgc2lnbmF0dXJlKGUpe3JldHVybiBuZXcgU2lnbmF0dXJlKGUpfXN0YXRpYyBzaWduaW5nKGUpe3JldHVybiBuZXcgU2lnbmluZyhlKX1zdGF0aWMgc29saWQoZSl7cmV0dXJuIG5ldyBTb2xpZChlKX1zdGF0aWMgc3BlYWsoZSl7cmV0dXJuIG5ldyBTcGVhayhlKX1zdGF0aWMgc3RpcHBsZShlKXtyZXR1cm4gbmV3IFN0aXBwbGUoZSl9c3RhdGljIHN1YmZvcm0oZSl7cmV0dXJuIG5ldyBTdWJmb3JtKGUpfXN0YXRpYyBzdWJmb3JtU2V0KGUpe3JldHVybiBuZXcgU3ViZm9ybVNldChlKX1zdGF0aWMgc3ViamVjdEROKGUpe3JldHVybiBuZXcgU3ViamVjdEROKGUpfXN0YXRpYyBzdWJqZWN0RE5zKGUpe3JldHVybiBuZXcgU3ViamVjdEROcyhlKX1zdGF0aWMgc3VibWl0KGUpe3JldHVybiBuZXcgU3VibWl0KGUpfXN0YXRpYyB0ZW1wbGF0ZShlKXtyZXR1cm4gbmV3IFRlbXBsYXRlKGUpfXN0YXRpYyB0ZXh0KGUpe3JldHVybiBuZXcgVGV4dChlKX1zdGF0aWMgdGV4dEVkaXQoZSl7cmV0dXJuIG5ldyBUZXh0RWRpdChlKX1zdGF0aWMgdGltZShlKXtyZXR1cm4gbmV3IFRpbWUoZSl9c3RhdGljIHRpbWVTdGFtcChlKXtyZXR1cm4gbmV3IFRpbWVTdGFtcChlKX1zdGF0aWMgdG9vbFRpcChlKXtyZXR1cm4gbmV3IFRvb2xUaXAoZSl9c3RhdGljIHRyYXZlcnNhbChlKXtyZXR1cm4gbmV3IFRyYXZlcnNhbChlKX1zdGF0aWMgdHJhdmVyc2UoZSl7cmV0dXJuIG5ldyBUcmF2ZXJzZShlKX1zdGF0aWMgdWkoZSl7cmV0dXJuIG5ldyBVaShlKX1zdGF0aWMgdmFsaWRhdGUoZSl7cmV0dXJuIG5ldyBWYWxpZGF0ZShlKX1zdGF0aWMgdmFsdWUoZSl7cmV0dXJuIG5ldyBWYWx1ZShlKX1zdGF0aWMgdmFyaWFibGVzKGUpe3JldHVybiBuZXcgVmFyaWFibGVzKGUpfX1jb25zdCBXbz1pby5kYXRhc2V0cy5pZDtmdW5jdGlvbiBjcmVhdGVUZXh0KGUpe2NvbnN0IHQ9bmV3IFRleHQoe30pO3RbUXNdPWU7cmV0dXJuIHR9Y2xhc3MgQmluZGVye2NvbnN0cnVjdG9yKGUpe3RoaXMucm9vdD1lO3RoaXMuZGF0YXNldHM9ZS5kYXRhc2V0czt0aGlzLmRhdGE9ZS5kYXRhc2V0cz8uZGF0YXx8bmV3IFhtbE9iamVjdChpby5kYXRhc2V0cy5pZCwiZGF0YSIpO3RoaXMuZW1wdHlNZXJnZT0wPT09dGhpcy5kYXRhW21pXSgpLmxlbmd0aDt0aGlzLnJvb3QuZm9ybT10aGlzLmZvcm09ZS50ZW1wbGF0ZVtZc10oKX1faXNDb25zdW1lRGF0YSgpe3JldHVybiF0aGlzLmVtcHR5TWVyZ2UmJnRoaXMuX21lcmdlTW9kZX1faXNNYXRjaFRlbXBsYXRlKCl7cmV0dXJuIXRoaXMuX2lzQ29uc3VtZURhdGEoKX1iaW5kKCl7dGhpcy5fYmluZEVsZW1lbnQodGhpcy5mb3JtLHRoaXMuZGF0YSk7cmV0dXJuIHRoaXMuZm9ybX1nZXREYXRhKCl7cmV0dXJuIHRoaXMuZGF0YX1fYmluZFZhbHVlKGUsdCxuKXtlW1pzXT10O2lmKGVba2ldKCkpaWYodFtBaV0oKSl7Y29uc3Qgbj10W2NpXSgpO2VbSmldKGNyZWF0ZVRleHQobikpfWVsc2UgaWYoZSBpbnN0YW5jZW9mIEZpZWxkJiYibXVsdGlTZWxlY3QiPT09ZS51aT8uY2hvaWNlTGlzdD8ub3Blbil7Y29uc3Qgbj10W21pXSgpLm1hcChlPT5lW1FzXS50cmltKCkpLmpvaW4oIlxuIik7ZVtKaV0oY3JlYXRlVGV4dChuKSl9ZWxzZSB0aGlzLl9pc0NvbnN1bWVEYXRhKCkmJndhcm4oIlhGQSAtIE5vZGVzIGhhdmVuJ3QgdGhlIHNhbWUgdHlwZS4iKTtlbHNlIXRbQWldKCl8fHRoaXMuX2lzTWF0Y2hUZW1wbGF0ZSgpP3RoaXMuX2JpbmRFbGVtZW50KGUsdCk6d2FybigiWEZBIC0gTm9kZXMgaGF2ZW4ndCB0aGUgc2FtZSB0eXBlLiIpfV9maW5kRGF0YUJ5TmFtZVRvQ29uc3VtZShlLHQsbixhKXtpZighZSlyZXR1cm4gbnVsbDtsZXQgcixzO2ZvcihsZXQgYT0wO2E8MzthKyspe3I9blt1aV0oZSwhMSwhMCk7Zm9yKDs7KXtzPXIubmV4dCgpLnZhbHVlO2lmKCFzKWJyZWFrO2lmKHQ9PT1zW0FpXSgpKXJldHVybiBzfWlmKG5bSGldPT09aW8uZGF0YXNldHMuaWQmJiJkYXRhIj09PW5bRGldKWJyZWFrO249bltiaV0oKX1pZighYSlyZXR1cm4gbnVsbDtyPXRoaXMuZGF0YVt1aV0oZSwhMCwhMSk7cz1yLm5leHQoKS52YWx1ZTtpZihzKXJldHVybiBzO3I9dGhpcy5kYXRhW3JpXShlLCEwKTtzPXIubmV4dCgpLnZhbHVlO3JldHVybiBzPy5bQWldKCk/czpudWxsfV9zZXRQcm9wZXJ0aWVzKGUsdCl7aWYoZS5oYXNPd25Qcm9wZXJ0eSgic2V0UHJvcGVydHkiKSlmb3IoY29uc3R7cmVmOm4sdGFyZ2V0OmEsY29ubmVjdGlvbjpyfW9mIGUuc2V0UHJvcGVydHkuY2hpbGRyZW4pe2lmKHIpY29udGludWU7aWYoIW4pY29udGludWU7Y29uc3Qgcz1zZWFyY2hOb2RlKHRoaXMucm9vdCx0LG4sITEsITEpO2lmKCFzKXt3YXJuKGBYRkEgLSBJbnZhbGlkIHJlZmVyZW5jZTogJHtufS5gKTtjb250aW51ZX1jb25zdFtpXT1zO2lmKCFpW0NpXSh0aGlzLmRhdGEpKXt3YXJuKCJYRkEgLSBJbnZhbGlkIG5vZGU6IG11c3QgYmUgYSBkYXRhIG5vZGUuIik7Y29udGludWV9Y29uc3Qgbz1zZWFyY2hOb2RlKHRoaXMucm9vdCxlLGEsITEsITEpO2lmKCFvKXt3YXJuKGBYRkEgLSBJbnZhbGlkIHRhcmdldDogJHthfS5gKTtjb250aW51ZX1jb25zdFtsXT1vO2lmKCFsW0NpXShlKSl7d2FybigiWEZBIC0gSW52YWxpZCB0YXJnZXQ6IG11c3QgYmUgYSBwcm9wZXJ0eSBvciBzdWJwcm9wZXJ0eS4iKTtjb250aW51ZX1jb25zdCBmPWxbYmldKCk7aWYobCBpbnN0YW5jZW9mIFNldFByb3BlcnR5fHxmIGluc3RhbmNlb2YgU2V0UHJvcGVydHkpe3dhcm4oIlhGQSAtIEludmFsaWQgdGFyZ2V0OiBjYW5ub3QgYmUgYSBzZXRQcm9wZXJ0eSBvciBvbmUgb2YgaXRzIHByb3BlcnRpZXMuIik7Y29udGludWV9aWYobCBpbnN0YW5jZW9mIEJpbmRJdGVtc3x8ZiBpbnN0YW5jZW9mIEJpbmRJdGVtcyl7d2FybigiWEZBIC0gSW52YWxpZCB0YXJnZXQ6IGNhbm5vdCBiZSBhIGJpbmRJdGVtcyBvciBvbmUgb2YgaXRzIHByb3BlcnRpZXMuIik7Y29udGludWV9Y29uc3QgYz1pW1ppXSgpLGg9bFtEaV07aWYobCBpbnN0YW5jZW9mIFhGQUF0dHJpYnV0ZSl7Y29uc3QgZT1PYmplY3QuY3JlYXRlKG51bGwpO2VbaF09Yztjb25zdCB0PVJlZmxlY3QuY29uc3RydWN0KE9iamVjdC5nZXRQcm90b3R5cGVPZihmKS5jb25zdHJ1Y3RvcixbZV0pO2ZbaF09dFtoXTtjb250aW51ZX1pZihsLmhhc093blByb3BlcnR5KFFzKSl7bFtac109aTtsW1FzXT1jO2xbbmldKCl9ZWxzZSB3YXJuKCJYRkEgLSBJbnZhbGlkIG5vZGUgdG8gdXNlIGluIHNldFByb3BlcnR5Iil9fV9iaW5kSXRlbXMoZSx0KXtpZighZS5oYXNPd25Qcm9wZXJ0eSgiaXRlbXMiKXx8IWUuaGFzT3duUHJvcGVydHkoImJpbmRJdGVtcyIpfHxlLmJpbmRJdGVtcy5pc0VtcHR5KCkpcmV0dXJuO2Zvcihjb25zdCB0IG9mIGUuaXRlbXMuY2hpbGRyZW4pZVtXaV0odCk7ZS5pdGVtcy5jbGVhcigpO2NvbnN0IG49bmV3IEl0ZW1zKHt9KSxhPW5ldyBJdGVtcyh7fSk7ZVtXc10obik7ZS5pdGVtcy5wdXNoKG4pO2VbV3NdKGEpO2UuaXRlbXMucHVzaChhKTtmb3IoY29uc3R7cmVmOnIsbGFiZWxSZWY6cyx2YWx1ZVJlZjppLGNvbm5lY3Rpb246b31vZiBlLmJpbmRJdGVtcy5jaGlsZHJlbil7aWYobyljb250aW51ZTtpZighciljb250aW51ZTtjb25zdCBlPXNlYXJjaE5vZGUodGhpcy5yb290LHQsciwhMSwhMSk7aWYoZSlmb3IoY29uc3QgdCBvZiBlKXtpZighdFtDaV0odGhpcy5kYXRhc2V0cykpe3dhcm4oYFhGQSAtIEludmFsaWQgcmVmICgke3J9KTogbXVzdCBiZSBhIGRhdGFzZXRzIGNoaWxkLmApO2NvbnRpbnVlfWNvbnN0IGU9c2VhcmNoTm9kZSh0aGlzLnJvb3QsdCxzLCEwLCExKTtpZighZSl7d2FybihgWEZBIC0gSW52YWxpZCBsYWJlbDogJHtzfS5gKTtjb250aW51ZX1jb25zdFtvXT1lO2lmKCFvW0NpXSh0aGlzLmRhdGFzZXRzKSl7d2FybigiWEZBIC0gSW52YWxpZCBsYWJlbDogbXVzdCBiZSBhIGRhdGFzZXRzIGNoaWxkLiIpO2NvbnRpbnVlfWNvbnN0IGw9c2VhcmNoTm9kZSh0aGlzLnJvb3QsdCxpLCEwLCExKTtpZighbCl7d2FybihgWEZBIC0gSW52YWxpZCB2YWx1ZTogJHtpfS5gKTtjb250aW51ZX1jb25zdFtmXT1sO2lmKCFmW0NpXSh0aGlzLmRhdGFzZXRzKSl7d2FybigiWEZBIC0gSW52YWxpZCB2YWx1ZTogbXVzdCBiZSBhIGRhdGFzZXRzIGNoaWxkLiIpO2NvbnRpbnVlfWNvbnN0IGM9Y3JlYXRlVGV4dChvW1ppXSgpKSxoPWNyZWF0ZVRleHQoZltaaV0oKSk7bltXc10oYyk7bi50ZXh0LnB1c2goYyk7YVtXc10oaCk7YS50ZXh0LnB1c2goaCl9ZWxzZSB3YXJuKGBYRkEgLSBJbnZhbGlkIHJlZmVyZW5jZTogJHtyfS5gKX19X2JpbmRPY2N1cnJlbmNlcyhlLHQsbil7bGV0IGE7aWYodC5sZW5ndGg+MSl7YT1lW1lzXSgpO2FbV2ldKGEub2NjdXIpO2Eub2NjdXI9bnVsbH10aGlzLl9iaW5kVmFsdWUoZSx0WzBdLG4pO3RoaXMuX3NldFByb3BlcnRpZXMoZSx0WzBdKTt0aGlzLl9iaW5kSXRlbXMoZSx0WzBdKTtpZigxPT09dC5sZW5ndGgpcmV0dXJuO2NvbnN0IHI9ZVtiaV0oKSxzPWVbRGldLGk9cltxaV0oZSk7Zm9yKGxldCBlPTEsbz10Lmxlbmd0aDtlPG87ZSsrKXtjb25zdCBvPXRbZV0sbD1hW1lzXSgpO3Jbc10ucHVzaChsKTtyW3ZpXShpK2UsbCk7dGhpcy5fYmluZFZhbHVlKGwsbyxuKTt0aGlzLl9zZXRQcm9wZXJ0aWVzKGwsbyk7dGhpcy5fYmluZEl0ZW1zKGwsbyl9fV9jcmVhdGVPY2N1cnJlbmNlcyhlKXtpZighdGhpcy5lbXB0eU1lcmdlKXJldHVybjtjb25zdHtvY2N1cjp0fT1lO2lmKCF0fHx0LmluaXRpYWw8PTEpcmV0dXJuO2NvbnN0IG49ZVtiaV0oKSxhPWVbRGldO2lmKCEoblthXWluc3RhbmNlb2YgWEZBT2JqZWN0QXJyYXkpKXJldHVybjtsZXQgcjtyPWUubmFtZT9uW2FdLmNoaWxkcmVuLmZpbHRlcih0PT50Lm5hbWU9PT1lLm5hbWUpLmxlbmd0aDpuW2FdLmNoaWxkcmVuLmxlbmd0aDtjb25zdCBzPW5bcWldKGUpKzEsaT10LmluaXRpYWwtcjtpZihpKXtjb25zdCB0PWVbWXNdKCk7dFtXaV0odC5vY2N1cik7dC5vY2N1cj1udWxsO25bYV0ucHVzaCh0KTtuW3ZpXShzLHQpO2ZvcihsZXQgZT0xO2U8aTtlKyspe2NvbnN0IHI9dFtZc10oKTtuW2FdLnB1c2gocik7blt2aV0ocytlLHIpfX19X2dldE9jY3VySW5mbyhlKXtjb25zdHtuYW1lOnQsb2NjdXI6bn09ZTtpZighbnx8IXQpcmV0dXJuWzEsMV07Y29uc3QgYT0tMT09PW4ubWF4PzEvMDpuLm1heDtyZXR1cm5bbi5taW4sYV19X3NldEFuZEJpbmQoZSx0KXt0aGlzLl9zZXRQcm9wZXJ0aWVzKGUsdCk7dGhpcy5fYmluZEl0ZW1zKGUsdCk7dGhpcy5fYmluZEVsZW1lbnQoZSx0KX1fYmluZEVsZW1lbnQoZSx0KXtjb25zdCBuPVtdO3RoaXMuX2NyZWF0ZU9jY3VycmVuY2VzKGUpO2Zvcihjb25zdCBhIG9mIGVbbWldKCkpe2lmKGFbWnNdKWNvbnRpbnVlO2lmKHZvaWQgMD09PXRoaXMuX21lcmdlTW9kZSYmInN1YmZvcm0iPT09YVtEaV0pe3RoaXMuX21lcmdlTW9kZT0iY29uc3VtZURhdGEiPT09YS5tZXJnZU1vZGU7Y29uc3QgZT10W21pXSgpO2lmKGUubGVuZ3RoPjApdGhpcy5fYmluZE9jY3VycmVuY2VzKGEsW2VbMF1dLG51bGwpO2Vsc2UgaWYodGhpcy5lbXB0eU1lcmdlKXtjb25zdCBlPXRbSGldPT09V28/LTE6dFtIaV0sbj1hW1pzXT1uZXcgWG1sT2JqZWN0KGUsYS5uYW1lfHwicm9vdCIpO3RbV3NdKG4pO3RoaXMuX2JpbmRFbGVtZW50KGEsbil9Y29udGludWV9aWYoIWFbeGldKCkpY29udGludWU7bGV0IGU9ITEscj1udWxsLHM9bnVsbCxpPW51bGw7aWYoYS5iaW5kKXtzd2l0Y2goYS5iaW5kLm1hdGNoKXtjYXNlIm5vbmUiOnRoaXMuX3NldEFuZEJpbmQoYSx0KTtjb250aW51ZTtjYXNlImdsb2JhbCI6ZT0hMDticmVhaztjYXNlImRhdGFSZWYiOmlmKCFhLmJpbmQucmVmKXt3YXJuKGBYRkEgLSByZWYgaXMgZW1wdHkgaW4gbm9kZSAke2FbRGldfS5gKTt0aGlzLl9zZXRBbmRCaW5kKGEsdCk7Y29udGludWV9cz1hLmJpbmQucmVmfWEuYmluZC5waWN0dXJlJiYocj1hLmJpbmQucGljdHVyZVtRc10pfWNvbnN0W28sbF09dGhpcy5fZ2V0T2NjdXJJbmZvKGEpO2lmKHMpe2k9c2VhcmNoTm9kZSh0aGlzLnJvb3QsdCxzLCEwLCExKTtpZihudWxsPT09aSl7aT1jcmVhdGVEYXRhTm9kZSh0aGlzLmRhdGEsdCxzKTtpZighaSljb250aW51ZTt0aGlzLl9pc0NvbnN1bWVEYXRhKCkmJihpW0pzXT0hMCk7dGhpcy5fc2V0QW5kQmluZChhLGkpO2NvbnRpbnVlfXRoaXMuX2lzQ29uc3VtZURhdGEoKSYmKGk9aS5maWx0ZXIoZT0+IWVbSnNdKSk7aS5sZW5ndGg+bD9pPWkuc2xpY2UoMCxsKTowPT09aS5sZW5ndGgmJihpPW51bGwpO2kmJnRoaXMuX2lzQ29uc3VtZURhdGEoKSYmaS5mb3JFYWNoKGU9PntlW0pzXT0hMH0pfWVsc2V7aWYoIWEubmFtZSl7dGhpcy5fc2V0QW5kQmluZChhLHQpO2NvbnRpbnVlfWlmKHRoaXMuX2lzQ29uc3VtZURhdGEoKSl7Y29uc3Qgbj1bXTtmb3IoO24ubGVuZ3RoPGw7KXtjb25zdCByPXRoaXMuX2ZpbmREYXRhQnlOYW1lVG9Db25zdW1lKGEubmFtZSxhW2tpXSgpLHQsZSk7aWYoIXIpYnJlYWs7cltKc109ITA7bi5wdXNoKHIpfWk9bi5sZW5ndGg+MD9uOm51bGx9ZWxzZXtpPXRbdWldKGEubmFtZSwhMSx0aGlzLmVtcHR5TWVyZ2UpLm5leHQoKS52YWx1ZTtpZighaSl7aWYoMD09PW8pe24ucHVzaChhKTtjb250aW51ZX1jb25zdCBlPXRbSGldPT09V28/LTE6dFtIaV07aT1hW1pzXT1uZXcgWG1sT2JqZWN0KGUsYS5uYW1lKTt0aGlzLmVtcHR5TWVyZ2UmJihpW0pzXT0hMCk7dFtXc10oaSk7dGhpcy5fc2V0QW5kQmluZChhLGkpO2NvbnRpbnVlfXRoaXMuZW1wdHlNZXJnZSYmKGlbSnNdPSEwKTtpPVtpXX19aT90aGlzLl9iaW5kT2NjdXJyZW5jZXMoYSxpLHIpOm8+MD90aGlzLl9zZXRBbmRCaW5kKGEsdCk6bi5wdXNoKGEpfW4uZm9yRWFjaChlPT5lW2JpXSgpW1dpXShlKSl9fWNsYXNzIERhdGFIYW5kbGVye2NvbnN0cnVjdG9yKGUsdCl7dGhpcy5kYXRhPXQ7dGhpcy5kYXRhc2V0PWUuZGF0YXNldHN8fG51bGx9c2VyaWFsaXplKGUpe2NvbnN0IHQ9W1stMSx0aGlzLmRhdGFbbWldKCldXTtmb3IoO3QubGVuZ3RoPjA7KXtjb25zdCBuPXQuYXQoLTEpLFthLHJdPW47aWYoYSsxPT09ci5sZW5ndGgpe3QucG9wKCk7Y29udGludWV9Y29uc3Qgcz1yWysrblswXV0saT1lLmdldChzW3JvXSk7aWYoaSlzW0ppXShpKTtlbHNle2NvbnN0IHQ9c1tzaV0oKTtmb3IoY29uc3QgbiBvZiB0LnZhbHVlcygpKXtjb25zdCB0PWUuZ2V0KG5bcm9dKTtpZih0KXtuW0ppXSh0KTticmVha319fWNvbnN0IG89c1ttaV0oKTtvLmxlbmd0aD4wJiZ0LnB1c2goWy0xLG9dKX1jb25zdCBuPVsnPHhmYTpkYXRhc2V0cyB4bWxuczp4ZmE9Imh0dHA6Ly93d3cueGZhLm9yZy9zY2hlbWEveGZhLWRhdGEvMS4wLyI+J107aWYodGhpcy5kYXRhc2V0KWZvcihjb25zdCBlIG9mIHRoaXMuZGF0YXNldFttaV0oKSkiZGF0YSIhPT1lW0RpXSYmZVtub10obik7dGhpcy5kYXRhW25vXShuKTtuLnB1c2goIjwveGZhOmRhdGFzZXRzPiIpO3JldHVybiBuLmpvaW4oIiIpfX1jb25zdCBLbz1pby5jb25maWcuaWQ7Y2xhc3MgQWNyb2JhdCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywiYWNyb2JhdCIsITApO3RoaXMuYWNyb2JhdDc9bnVsbDt0aGlzLmF1dG9TYXZlPW51bGw7dGhpcy5jb21tb249bnVsbDt0aGlzLnZhbGlkYXRlPW51bGw7dGhpcy52YWxpZGF0ZUFwcHJvdmFsU2lnbmF0dXJlcz1udWxsO3RoaXMuc3VibWl0VXJsPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgQWNyb2JhdDcgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sImFjcm9iYXQ3IiwhMCk7dGhpcy5keW5hbWljUmVuZGVyPW51bGx9fWNsYXNzIEFEQkVfSlNDb25zb2xlIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJBREJFX0pTQ29uc29sZSIsWyJkZWxlZ2F0ZSIsIkVuYWJsZSIsIkRpc2FibGUiXSl9fWNsYXNzIEFEQkVfSlNEZWJ1Z2dlciBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywiQURCRV9KU0RlYnVnZ2VyIixbImRlbGVnYXRlIiwiRW5hYmxlIiwiRGlzYWJsZSJdKX19Y2xhc3MgQWRkU2lsZW50UHJpbnQgZXh0ZW5kcyBPcHRpb24wMXtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywiYWRkU2lsZW50UHJpbnQiKX19Y2xhc3MgQWRkVmlld2VyUHJlZmVyZW5jZXMgZXh0ZW5kcyBPcHRpb24wMXtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywiYWRkVmlld2VyUHJlZmVyZW5jZXMiKX19Y2xhc3MgQWRqdXN0RGF0YSBleHRlbmRzIE9wdGlvbjEwe2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJhZGp1c3REYXRhIil9fWNsYXNzIEFkb2JlRXh0ZW5zaW9uTGV2ZWwgZXh0ZW5kcyBJbnRlZ2VyT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJhZG9iZUV4dGVuc2lvbkxldmVsIiwwLGU9PmU+PTEmJmU8PTgpfX1jbGFzcyBBZ2VudCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywiYWdlbnQiLCEwKTt0aGlzLm5hbWU9ZS5uYW1lP2UubmFtZS50cmltKCk6IiI7dGhpcy5jb21tb249bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBBbHdheXNFbWJlZCBleHRlbmRzIENvbnRlbnRPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sImFsd2F5c0VtYmVkIil9fWNsYXNzIEFtZCBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywiYW1kIil9fWNsYXNzIGNvbmZpZ19BcmVhIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJhcmVhIik7dGhpcy5sZXZlbD1nZXRJbnRlZ2VyKHtkYXRhOmUubGV2ZWwsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+ZT49MSYmZTw9M30pO3RoaXMubmFtZT1nZXRTdHJpbmdPcHRpb24oZS5uYW1lLFsiIiwiYmFyY29kZSIsImNvcmVpbml0IiwiZGV2aWNlRHJpdmVyIiwiZm9udCIsImdlbmVyYWwiLCJsYXlvdXQiLCJtZXJnZSIsInNjcmlwdCIsInNpZ25hdHVyZSIsInNvdXJjZVNldCIsInRlbXBsYXRlQ2FjaGUiXSl9fWNsYXNzIEF0dHJpYnV0ZXMgZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sImF0dHJpYnV0ZXMiLFsicHJlc2VydmUiLCJkZWxlZ2F0ZSIsImlnbm9yZSJdKX19Y2xhc3MgQXV0b1NhdmUgZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sImF1dG9TYXZlIixbImRpc2FibGVkIiwiZW5hYmxlZCJdKX19Y2xhc3MgQmFzZSBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywiYmFzZSIpfX1jbGFzcyBCYXRjaE91dHB1dCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywiYmF0Y2hPdXRwdXQiKTt0aGlzLmZvcm1hdD1nZXRTdHJpbmdPcHRpb24oZS5mb3JtYXQsWyJub25lIiwiY29uY2F0IiwiemlwIiwiemlwQ29tcHJlc3MiXSl9fWNsYXNzIEJlaGF2aW9yT3ZlcnJpZGUgZXh0ZW5kcyBDb250ZW50T2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJiZWhhdmlvck92ZXJyaWRlIil9W25pXSgpe3RoaXNbUXNdPW5ldyBNYXAodGhpc1tRc10udHJpbSgpLnNwbGl0KC9ccysvKS5maWx0ZXIoZT0+ZS5pbmNsdWRlcygiOiIpKS5tYXAoZT0+ZS5zcGxpdCgiOiIsMikpKX19Y2xhc3MgQ2FjaGUgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sImNhY2hlIiwhMCk7dGhpcy50ZW1wbGF0ZUNhY2hlPW51bGx9fWNsYXNzIENoYW5nZSBleHRlbmRzIE9wdGlvbjAxe2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJjaGFuZ2UiKX19Y2xhc3MgQ29tbW9uIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJjb21tb24iLCEwKTt0aGlzLmRhdGE9bnVsbDt0aGlzLmxvY2FsZT1udWxsO3RoaXMubG9jYWxlU2V0PW51bGw7dGhpcy5tZXNzYWdpbmc9bnVsbDt0aGlzLnN1cHByZXNzQmFubmVyPW51bGw7dGhpcy50ZW1wbGF0ZT1udWxsO3RoaXMudmFsaWRhdGlvbk1lc3NhZ2luZz1udWxsO3RoaXMudmVyc2lvbkNvbnRyb2w9bnVsbDt0aGlzLmxvZz1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIENvbXByZXNzIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJjb21wcmVzcyIpO3RoaXMuc2NvcGU9Z2V0U3RyaW5nT3B0aW9uKGUuc2NvcGUsWyJpbWFnZU9ubHkiLCJkb2N1bWVudCJdKX19Y2xhc3MgQ29tcHJlc3NMb2dpY2FsU3RydWN0dXJlIGV4dGVuZHMgT3B0aW9uMDF7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sImNvbXByZXNzTG9naWNhbFN0cnVjdHVyZSIpfX1jbGFzcyBDb21wcmVzc09iamVjdFN0cmVhbSBleHRlbmRzIE9wdGlvbjEwe2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJjb21wcmVzc09iamVjdFN0cmVhbSIpfX1jbGFzcyBDb21wcmVzc2lvbiBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywiY29tcHJlc3Npb24iLCEwKTt0aGlzLmNvbXByZXNzTG9naWNhbFN0cnVjdHVyZT1udWxsO3RoaXMuY29tcHJlc3NPYmplY3RTdHJlYW09bnVsbDt0aGlzLmxldmVsPW51bGw7dGhpcy50eXBlPW51bGx9fWNsYXNzIENvbmZpZyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywiY29uZmlnIiwhMCk7dGhpcy5hY3JvYmF0PW51bGw7dGhpcy5wcmVzZW50PW51bGw7dGhpcy50cmFjZT1udWxsO3RoaXMuYWdlbnQ9bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBDb25mb3JtYW5jZSBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywiY29uZm9ybWFuY2UiLFsiQSIsIkIiXSl9fWNsYXNzIENvbnRlbnRDb3B5IGV4dGVuZHMgT3B0aW9uMDF7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sImNvbnRlbnRDb3B5Iil9fWNsYXNzIENvcGllcyBleHRlbmRzIEludGVnZXJPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sImNvcGllcyIsMSxlPT5lPj0xKX19Y2xhc3MgQ3JlYXRvciBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywiY3JlYXRvciIpfX1jbGFzcyBDdXJyZW50UGFnZSBleHRlbmRzIEludGVnZXJPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sImN1cnJlbnRQYWdlIiwwLGU9PmU+PTApfX1jbGFzcyBEYXRhIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJkYXRhIiwhMCk7dGhpcy5hZGp1c3REYXRhPW51bGw7dGhpcy5hdHRyaWJ1dGVzPW51bGw7dGhpcy5pbmNyZW1lbnRhbExvYWQ9bnVsbDt0aGlzLm91dHB1dFhTTD1udWxsO3RoaXMucmFuZ2U9bnVsbDt0aGlzLnJlY29yZD1udWxsO3RoaXMuc3RhcnROb2RlPW51bGw7dGhpcy51cmk9bnVsbDt0aGlzLndpbmRvdz1udWxsO3RoaXMueHNsPW51bGw7dGhpcy5leGNsdWRlTlM9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMudHJhbnNmb3JtPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgRGVidWcgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sImRlYnVnIiwhMCk7dGhpcy51cmk9bnVsbH19Y2xhc3MgRGVmYXVsdFR5cGVmYWNlIGV4dGVuZHMgQ29udGVudE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywiZGVmYXVsdFR5cGVmYWNlIik7dGhpcy53cml0aW5nU2NyaXB0PWdldFN0cmluZ09wdGlvbihlLndyaXRpbmdTY3JpcHQsWyIqIiwiQXJhYmljIiwiQ3lyaWxsaWMiLCJFYXN0RXVyb3BlYW5Sb21hbiIsIkdyZWVrIiwiSGVicmV3IiwiSmFwYW5lc2UiLCJLb3JlYW4iLCJSb21hbiIsIlNpbXBsaWZpZWRDaGluZXNlIiwiVGhhaSIsIlRyYWRpdGlvbmFsQ2hpbmVzZSIsIlZpZXRuYW1lc2UiXSl9fWNsYXNzIERlc3RpbmF0aW9uIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJkZXN0aW5hdGlvbiIsWyJwZGYiLCJwY2wiLCJwcyIsIndlYkNsaWVudCIsInpwbCJdKX19Y2xhc3MgRG9jdW1lbnRBc3NlbWJseSBleHRlbmRzIE9wdGlvbjAxe2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJkb2N1bWVudEFzc2VtYmx5Iil9fWNsYXNzIERyaXZlciBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywiZHJpdmVyIiwhMCk7dGhpcy5uYW1lPWUubmFtZT9lLm5hbWUudHJpbSgpOiIiO3RoaXMuZm9udEluZm89bnVsbDt0aGlzLnhkYz1udWxsfX1jbGFzcyBEdXBsZXhPcHRpb24gZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sImR1cGxleE9wdGlvbiIsWyJzaW1wbGV4IiwiZHVwbGV4RmxpcExvbmdFZGdlIiwiZHVwbGV4RmxpcFNob3J0RWRnZSJdKX19Y2xhc3MgRHluYW1pY1JlbmRlciBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywiZHluYW1pY1JlbmRlciIsWyJmb3JiaWRkZW4iLCJyZXF1aXJlZCJdKX19Y2xhc3MgRW1iZWQgZXh0ZW5kcyBPcHRpb24wMXtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywiZW1iZWQiKX19Y2xhc3MgY29uZmlnX0VuY3J5cHQgZXh0ZW5kcyBPcHRpb24wMXtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywiZW5jcnlwdCIpfX1jbGFzcyBjb25maWdfRW5jcnlwdGlvbiBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywiZW5jcnlwdGlvbiIsITApO3RoaXMuZW5jcnlwdD1udWxsO3RoaXMuZW5jcnlwdGlvbkxldmVsPW51bGw7dGhpcy5wZXJtaXNzaW9ucz1udWxsfX1jbGFzcyBFbmNyeXB0aW9uTGV2ZWwgZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sImVuY3J5cHRpb25MZXZlbCIsWyI0MGJpdCIsIjEyOGJpdCJdKX19Y2xhc3MgRW5mb3JjZSBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywiZW5mb3JjZSIpfX1jbGFzcyBFcXVhdGUgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sImVxdWF0ZSIpO3RoaXMuZm9yY2U9Z2V0SW50ZWdlcih7ZGF0YTplLmZvcmNlLGRlZmF1bHRWYWx1ZToxLHZhbGlkYXRlOmU9PjA9PT1lfSk7dGhpcy5mcm9tPWUuZnJvbXx8IiI7dGhpcy50bz1lLnRvfHwiIn19Y2xhc3MgRXF1YXRlUmFuZ2UgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sImVxdWF0ZVJhbmdlIik7dGhpcy5mcm9tPWUuZnJvbXx8IiI7dGhpcy50bz1lLnRvfHwiIjt0aGlzLl91bmljb2RlUmFuZ2U9ZS51bmljb2RlUmFuZ2V8fCIifWdldCB1bmljb2RlUmFuZ2UoKXtjb25zdCBlPVtdLHQ9L1VcKyhbMC05YS1mQS1GXSspLyxuPXRoaXMuX3VuaWNvZGVSYW5nZTtmb3IobGV0IGEgb2Ygbi5zcGxpdCgiLCIpLm1hcChlPT5lLnRyaW0oKSkuZmlsdGVyKGU9PiEhZSkpe2E9YS5zcGxpdCgiLSIsMikubWFwKGU9Pntjb25zdCBuPWUubWF0Y2godCk7cmV0dXJuIG4/cGFyc2VJbnQoblsxXSwxNik6MH0pOzE9PT1hLmxlbmd0aCYmYS5wdXNoKGFbMF0pO2UucHVzaChhKX1yZXR1cm4gc2hhZG93KHRoaXMsInVuaWNvZGVSYW5nZSIsZSl9fWNsYXNzIEV4Y2x1ZGUgZXh0ZW5kcyBDb250ZW50T2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJleGNsdWRlIil9W25pXSgpe3RoaXNbUXNdPXRoaXNbUXNdLnRyaW0oKS5zcGxpdCgvXHMrLykuZmlsdGVyKGU9PmUmJlsiY2FsY3VsYXRlIiwiY2xvc2UiLCJlbnRlciIsImV4aXQiLCJpbml0aWFsaXplIiwicmVhZHkiLCJ2YWxpZGF0ZSJdLmluY2x1ZGVzKGUpKX19Y2xhc3MgRXhjbHVkZU5TIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJleGNsdWRlTlMiKX19Y2xhc3MgRmxpcExhYmVsIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJmbGlwTGFiZWwiLFsidXNlUHJpbnRlclNldHRpbmciLCJvbiIsIm9mZiJdKX19Y2xhc3MgY29uZmlnX0ZvbnRJbmZvIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJmb250SW5mbyIsITApO3RoaXMuZW1iZWQ9bnVsbDt0aGlzLm1hcD1udWxsO3RoaXMuc3Vic2V0QmVsb3c9bnVsbDt0aGlzLmFsd2F5c0VtYmVkPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmRlZmF1bHRUeXBlZmFjZT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5uZXZlckVtYmVkPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgRm9ybUZpZWxkRmlsbGluZyBleHRlbmRzIE9wdGlvbjAxe2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJmb3JtRmllbGRGaWxsaW5nIil9fWNsYXNzIEdyb3VwUGFyZW50IGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJncm91cFBhcmVudCIpfX1jbGFzcyBJZkVtcHR5IGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJpZkVtcHR5IixbImRhdGFWYWx1ZSIsImRhdGFHcm91cCIsImlnbm9yZSIsInJlbW92ZSJdKX19Y2xhc3MgSW5jbHVkZVhEUENvbnRlbnQgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sImluY2x1ZGVYRFBDb250ZW50Iil9fWNsYXNzIEluY3JlbWVudGFsTG9hZCBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywiaW5jcmVtZW50YWxMb2FkIixbIm5vbmUiLCJmb3J3YXJkT25seSJdKX19Y2xhc3MgSW5jcmVtZW50YWxNZXJnZSBleHRlbmRzIE9wdGlvbjAxe2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJpbmNyZW1lbnRhbE1lcmdlIil9fWNsYXNzIEludGVyYWN0aXZlIGV4dGVuZHMgT3B0aW9uMDF7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sImludGVyYWN0aXZlIil9fWNsYXNzIEpvZyBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywiam9nIixbInVzZVByaW50ZXJTZXR0aW5nIiwibm9uZSIsInBhZ2VTZXQiXSl9fWNsYXNzIExhYmVsUHJpbnRlciBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywibGFiZWxQcmludGVyIiwhMCk7dGhpcy5uYW1lPWdldFN0cmluZ09wdGlvbihlLm5hbWUsWyJ6cGwiLCJkcGwiLCJpcGwiLCJ0Y3BsIl0pO3RoaXMuYmF0Y2hPdXRwdXQ9bnVsbDt0aGlzLmZsaXBMYWJlbD1udWxsO3RoaXMuZm9udEluZm89bnVsbDt0aGlzLnhkYz1udWxsfX1jbGFzcyBMYXlvdXQgZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sImxheW91dCIsWyJwYWdpbmF0ZSIsInBhbmVsIl0pfX1jbGFzcyBMZXZlbCBleHRlbmRzIEludGVnZXJPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sImxldmVsIiwwLGU9PmU+MCl9fWNsYXNzIExpbmVhcml6ZWQgZXh0ZW5kcyBPcHRpb24wMXtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywibGluZWFyaXplZCIpfX1jbGFzcyBMb2NhbGUgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sImxvY2FsZSIpfX1jbGFzcyBMb2NhbGVTZXQgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sImxvY2FsZVNldCIpfX1jbGFzcyBMb2cgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sImxvZyIsITApO3RoaXMubW9kZT1udWxsO3RoaXMudGhyZXNob2xkPW51bGw7dGhpcy50bz1udWxsO3RoaXMudXJpPW51bGx9fWNsYXNzIE1hcEVsZW1lbnQgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sIm1hcCIsITApO3RoaXMuZXF1YXRlPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLmVxdWF0ZVJhbmdlPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgTWVkaXVtSW5mbyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywibWVkaXVtSW5mbyIsITApO3RoaXMubWFwPW51bGx9fWNsYXNzIGNvbmZpZ19NZXNzYWdlIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJtZXNzYWdlIiwhMCk7dGhpcy5tc2dJZD1udWxsO3RoaXMuc2V2ZXJpdHk9bnVsbH19Y2xhc3MgTWVzc2FnaW5nIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJtZXNzYWdpbmciLCEwKTt0aGlzLm1lc3NhZ2U9bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBNb2RlIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJtb2RlIixbImFwcGVuZCIsIm92ZXJ3cml0ZSJdKX19Y2xhc3MgTW9kaWZ5QW5ub3RzIGV4dGVuZHMgT3B0aW9uMDF7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sIm1vZGlmeUFubm90cyIpfX1jbGFzcyBNc2dJZCBleHRlbmRzIEludGVnZXJPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sIm1zZ0lkIiwxLGU9PmU+PTEpfX1jbGFzcyBOYW1lQXR0ciBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywibmFtZUF0dHIiKX19Y2xhc3MgTmV2ZXJFbWJlZCBleHRlbmRzIENvbnRlbnRPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sIm5ldmVyRW1iZWQiKX19Y2xhc3MgTnVtYmVyT2ZDb3BpZXMgZXh0ZW5kcyBJbnRlZ2VyT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJudW1iZXJPZkNvcGllcyIsbnVsbCxlPT5lPj0yJiZlPD01KX19Y2xhc3MgT3BlbkFjdGlvbiBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywib3BlbkFjdGlvbiIsITApO3RoaXMuZGVzdGluYXRpb249bnVsbH19Y2xhc3MgT3V0cHV0IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJvdXRwdXQiLCEwKTt0aGlzLnRvPW51bGw7dGhpcy50eXBlPW51bGw7dGhpcy51cmk9bnVsbH19Y2xhc3MgT3V0cHV0QmluIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJvdXRwdXRCaW4iKX19Y2xhc3MgT3V0cHV0WFNMIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJvdXRwdXRYU0wiLCEwKTt0aGlzLnVyaT1udWxsfX1jbGFzcyBPdmVycHJpbnQgZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sIm92ZXJwcmludCIsWyJub25lIiwiYm90aCIsImRyYXciLCJmaWVsZCJdKX19Y2xhc3MgUGFja2V0cyBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywicGFja2V0cyIpfVtuaV0oKXsiKiIhPT10aGlzW1FzXSYmKHRoaXNbUXNdPXRoaXNbUXNdLnRyaW0oKS5zcGxpdCgvXHMrLykuZmlsdGVyKGU9PlsiY29uZmlnIiwiZGF0YXNldHMiLCJ0ZW1wbGF0ZSIsInhmZGYiLCJ4c2x0Il0uaW5jbHVkZXMoZSkpKX19Y2xhc3MgUGFnZU9mZnNldCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywicGFnZU9mZnNldCIpO3RoaXMueD1nZXRJbnRlZ2VyKHtkYXRhOmUueCxkZWZhdWx0VmFsdWU6InVzZVhEQ1NldHRpbmciLHZhbGlkYXRlOmU9PiEwfSk7dGhpcy55PWdldEludGVnZXIoe2RhdGE6ZS55LGRlZmF1bHRWYWx1ZToidXNlWERDU2V0dGluZyIsdmFsaWRhdGU6ZT0+ITB9KX19Y2xhc3MgUGFnZVJhbmdlIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJwYWdlUmFuZ2UiKX1bbmldKCl7Y29uc3QgZT10aGlzW1FzXS50cmltKCkuc3BsaXQoL1xzKy8pLm1hcChlPT5wYXJzZUludChlLDEwKSksdD1bXTtmb3IobGV0IG49MCxhPWUubGVuZ3RoO248YTtuKz0yKXQucHVzaChlLnNsaWNlKG4sbisyKSk7dGhpc1tRc109dH19Y2xhc3MgUGFnaW5hdGlvbiBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywicGFnaW5hdGlvbiIsWyJzaW1wbGV4IiwiZHVwbGV4U2hvcnRFZGdlIiwiZHVwbGV4TG9uZ0VkZ2UiXSl9fWNsYXNzIFBhZ2luYXRpb25PdmVycmlkZSBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywicGFnaW5hdGlvbk92ZXJyaWRlIixbIm5vbmUiLCJmb3JjZUR1cGxleCIsImZvcmNlRHVwbGV4TG9uZ0VkZ2UiLCJmb3JjZUR1cGxleFNob3J0RWRnZSIsImZvcmNlU2ltcGxleCJdKX19Y2xhc3MgUGFydCBleHRlbmRzIEludGVnZXJPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sInBhcnQiLDEsZT0+ITEpfX1jbGFzcyBQY2wgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sInBjbCIsITApO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMuYmF0Y2hPdXRwdXQ9bnVsbDt0aGlzLmZvbnRJbmZvPW51bGw7dGhpcy5qb2c9bnVsbDt0aGlzLm1lZGl1bUluZm89bnVsbDt0aGlzLm91dHB1dEJpbj1udWxsO3RoaXMucGFnZU9mZnNldD1udWxsO3RoaXMuc3RhcGxlPW51bGw7dGhpcy54ZGM9bnVsbH19Y2xhc3MgUGRmIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJwZGYiLCEwKTt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLmFkb2JlRXh0ZW5zaW9uTGV2ZWw9bnVsbDt0aGlzLmJhdGNoT3V0cHV0PW51bGw7dGhpcy5jb21wcmVzc2lvbj1udWxsO3RoaXMuY3JlYXRvcj1udWxsO3RoaXMuZW5jcnlwdGlvbj1udWxsO3RoaXMuZm9udEluZm89bnVsbDt0aGlzLmludGVyYWN0aXZlPW51bGw7dGhpcy5saW5lYXJpemVkPW51bGw7dGhpcy5vcGVuQWN0aW9uPW51bGw7dGhpcy5wZGZhPW51bGw7dGhpcy5wcm9kdWNlcj1udWxsO3RoaXMucmVuZGVyUG9saWN5PW51bGw7dGhpcy5zY3JpcHRNb2RlbD1udWxsO3RoaXMuc2lsZW50UHJpbnQ9bnVsbDt0aGlzLnN1Ym1pdEZvcm1hdD1udWxsO3RoaXMudGFnZ2VkPW51bGw7dGhpcy52ZXJzaW9uPW51bGw7dGhpcy52aWV3ZXJQcmVmZXJlbmNlcz1udWxsO3RoaXMueGRjPW51bGx9fWNsYXNzIFBkZmEgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sInBkZmEiLCEwKTt0aGlzLmFtZD1udWxsO3RoaXMuY29uZm9ybWFuY2U9bnVsbDt0aGlzLmluY2x1ZGVYRFBDb250ZW50PW51bGw7dGhpcy5wYXJ0PW51bGx9fWNsYXNzIFBlcm1pc3Npb25zIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJwZXJtaXNzaW9ucyIsITApO3RoaXMuYWNjZXNzaWJsZUNvbnRlbnQ9bnVsbDt0aGlzLmNoYW5nZT1udWxsO3RoaXMuY29udGVudENvcHk9bnVsbDt0aGlzLmRvY3VtZW50QXNzZW1ibHk9bnVsbDt0aGlzLmZvcm1GaWVsZEZpbGxpbmc9bnVsbDt0aGlzLm1vZGlmeUFubm90cz1udWxsO3RoaXMucGxhaW50ZXh0TWV0YWRhdGE9bnVsbDt0aGlzLnByaW50PW51bGw7dGhpcy5wcmludEhpZ2hRdWFsaXR5PW51bGx9fWNsYXNzIFBpY2tUcmF5QnlQREZTaXplIGV4dGVuZHMgT3B0aW9uMDF7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sInBpY2tUcmF5QnlQREZTaXplIil9fWNsYXNzIGNvbmZpZ19QaWN0dXJlIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJwaWN0dXJlIil9fWNsYXNzIFBsYWludGV4dE1ldGFkYXRhIGV4dGVuZHMgT3B0aW9uMDF7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sInBsYWludGV4dE1ldGFkYXRhIil9fWNsYXNzIFByZXNlbmNlIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJwcmVzZW5jZSIsWyJwcmVzZXJ2ZSIsImRpc3NvbHZlIiwiZGlzc29sdmVTdHJ1Y3R1cmUiLCJpZ25vcmUiLCJyZW1vdmUiXSl9fWNsYXNzIFByZXNlbnQgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sInByZXNlbnQiLCEwKTt0aGlzLmJlaGF2aW9yT3ZlcnJpZGU9bnVsbDt0aGlzLmNhY2hlPW51bGw7dGhpcy5jb21tb249bnVsbDt0aGlzLmNvcGllcz1udWxsO3RoaXMuZGVzdGluYXRpb249bnVsbDt0aGlzLmluY3JlbWVudGFsTWVyZ2U9bnVsbDt0aGlzLmxheW91dD1udWxsO3RoaXMub3V0cHV0PW51bGw7dGhpcy5vdmVycHJpbnQ9bnVsbDt0aGlzLnBhZ2luYXRpb249bnVsbDt0aGlzLnBhZ2luYXRpb25PdmVycmlkZT1udWxsO3RoaXMuc2NyaXB0PW51bGw7dGhpcy52YWxpZGF0ZT1udWxsO3RoaXMueGRwPW51bGw7dGhpcy5kcml2ZXI9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMubGFiZWxQcmludGVyPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnBjbD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy5wZGY9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMucHM9bmV3IFhGQU9iamVjdEFycmF5O3RoaXMuc3VibWl0VXJsPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLndlYkNsaWVudD1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy56cGw9bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBQcmludCBleHRlbmRzIE9wdGlvbjAxe2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJwcmludCIpfX1jbGFzcyBQcmludEhpZ2hRdWFsaXR5IGV4dGVuZHMgT3B0aW9uMDF7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sInByaW50SGlnaFF1YWxpdHkiKX19Y2xhc3MgUHJpbnRTY2FsaW5nIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJwcmludFNjYWxpbmciLFsiYXBwZGVmYXVsdCIsIm5vU2NhbGluZyJdKX19Y2xhc3MgUHJpbnRlck5hbWUgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sInByaW50ZXJOYW1lIil9fWNsYXNzIFByb2R1Y2VyIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJwcm9kdWNlciIpfX1jbGFzcyBQcyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywicHMiLCEwKTt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLmJhdGNoT3V0cHV0PW51bGw7dGhpcy5mb250SW5mbz1udWxsO3RoaXMuam9nPW51bGw7dGhpcy5tZWRpdW1JbmZvPW51bGw7dGhpcy5vdXRwdXRCaW49bnVsbDt0aGlzLnN0YXBsZT1udWxsO3RoaXMueGRjPW51bGx9fWNsYXNzIFJhbmdlIGV4dGVuZHMgQ29udGVudE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywicmFuZ2UiKX1bbmldKCl7dGhpc1tRc109dGhpc1tRc10uc3BsaXQoIiwiLDIpLm1hcChlPT5lLnNwbGl0KCItIikubWFwKGU9PnBhcnNlSW50KGUudHJpbSgpLDEwKSkpLmZpbHRlcihlPT5lLmV2ZXJ5KGU9PiFpc05hTihlKSkpLm1hcChlPT57MT09PWUubGVuZ3RoJiZlLnB1c2goZVswXSk7cmV0dXJuIGV9KX19Y2xhc3MgUmVjb3JkIGV4dGVuZHMgQ29udGVudE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywicmVjb3JkIil9W25pXSgpe3RoaXNbUXNdPXRoaXNbUXNdLnRyaW0oKTtjb25zdCBlPXBhcnNlSW50KHRoaXNbUXNdLDEwKTshaXNOYU4oZSkmJmU+PTAmJih0aGlzW1FzXT1lKX19Y2xhc3MgUmVsZXZhbnQgZXh0ZW5kcyBDb250ZW50T2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJyZWxldmFudCIpfVtuaV0oKXt0aGlzW1FzXT10aGlzW1FzXS50cmltKCkuc3BsaXQoL1xzKy8pfX1jbGFzcyBSZW5hbWUgZXh0ZW5kcyBDb250ZW50T2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJyZW5hbWUiKX1bbmldKCl7dGhpc1tRc109dGhpc1tRc10udHJpbSgpOyh0aGlzW1FzXS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoInhtbCIpfHxuZXcgUmVnRXhwKCJbXFxwe0x9X11bXFxwe0x9XFxkLl9cXHB7TX0tXSoiLCJ1IikudGVzdCh0aGlzW1FzXSkpJiZ3YXJuKCJYRkEgLSBSZW5hbWU6IGludmFsaWQgWEZBIG5hbWUiKX19Y2xhc3MgUmVuZGVyUG9saWN5IGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJyZW5kZXJQb2xpY3kiLFsic2VydmVyIiwiY2xpZW50Il0pfX1jbGFzcyBSdW5TY3JpcHRzIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJydW5TY3JpcHRzIixbImJvdGgiLCJjbGllbnQiLCJub25lIiwic2VydmVyIl0pfX1jbGFzcyBjb25maWdfU2NyaXB0IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJzY3JpcHQiLCEwKTt0aGlzLmN1cnJlbnRQYWdlPW51bGw7dGhpcy5leGNsdWRlPW51bGw7dGhpcy5ydW5TY3JpcHRzPW51bGx9fWNsYXNzIFNjcmlwdE1vZGVsIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJzY3JpcHRNb2RlbCIsWyJYRkEiLCJub25lIl0pfX1jbGFzcyBTZXZlcml0eSBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywic2V2ZXJpdHkiLFsiaWdub3JlIiwiZXJyb3IiLCJpbmZvcm1hdGlvbiIsInRyYWNlIiwid2FybmluZyJdKX19Y2xhc3MgU2lsZW50UHJpbnQgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sInNpbGVudFByaW50IiwhMCk7dGhpcy5hZGRTaWxlbnRQcmludD1udWxsO3RoaXMucHJpbnRlck5hbWU9bnVsbH19Y2xhc3MgU3RhcGxlIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJzdGFwbGUiKTt0aGlzLm1vZGU9Z2V0U3RyaW5nT3B0aW9uKGUubW9kZSxbInVzZVByaW50ZXJTZXR0aW5nIiwib24iLCJvZmYiXSl9fWNsYXNzIFN0YXJ0Tm9kZSBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywic3RhcnROb2RlIil9fWNsYXNzIFN0YXJ0UGFnZSBleHRlbmRzIEludGVnZXJPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sInN0YXJ0UGFnZSIsMCxlPT4hMCl9fWNsYXNzIFN1Ym1pdEZvcm1hdCBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywic3VibWl0Rm9ybWF0IixbImh0bWwiLCJkZWxlZ2F0ZSIsImZkZiIsInhtbCIsInBkZiJdKX19Y2xhc3MgU3VibWl0VXJsIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJzdWJtaXRVcmwiKX19Y2xhc3MgU3Vic2V0QmVsb3cgZXh0ZW5kcyBJbnRlZ2VyT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJzdWJzZXRCZWxvdyIsMTAwLGU9PmU+PTAmJmU8PTEwMCl9fWNsYXNzIFN1cHByZXNzQmFubmVyIGV4dGVuZHMgT3B0aW9uMDF7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sInN1cHByZXNzQmFubmVyIil9fWNsYXNzIFRhZ2dlZCBleHRlbmRzIE9wdGlvbjAxe2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJ0YWdnZWQiKX19Y2xhc3MgY29uZmlnX1RlbXBsYXRlIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJ0ZW1wbGF0ZSIsITApO3RoaXMuYmFzZT1udWxsO3RoaXMucmVsZXZhbnQ9bnVsbDt0aGlzLnN0YXJ0UGFnZT1udWxsO3RoaXMudXJpPW51bGw7dGhpcy54c2w9bnVsbH19Y2xhc3MgVGhyZXNob2xkIGV4dGVuZHMgT3B0aW9uT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJ0aHJlc2hvbGQiLFsidHJhY2UiLCJlcnJvciIsImluZm9ybWF0aW9uIiwid2FybmluZyJdKX19Y2xhc3MgVG8gZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sInRvIixbIm51bGwiLCJtZW1vcnkiLCJzdGRlcnIiLCJzdGRvdXQiLCJzeXN0ZW0iLCJ1cmkiXSl9fWNsYXNzIFRlbXBsYXRlQ2FjaGUgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sInRlbXBsYXRlQ2FjaGUiKTt0aGlzLm1heEVudHJpZXM9Z2V0SW50ZWdlcih7ZGF0YTplLm1heEVudHJpZXMsZGVmYXVsdFZhbHVlOjUsdmFsaWRhdGU6ZT0+ZT49MH0pfX1jbGFzcyBUcmFjZSBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywidHJhY2UiLCEwKTt0aGlzLmFyZWE9bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBUcmFuc2Zvcm0gZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sInRyYW5zZm9ybSIsITApO3RoaXMuZ3JvdXBQYXJlbnQ9bnVsbDt0aGlzLmlmRW1wdHk9bnVsbDt0aGlzLm5hbWVBdHRyPW51bGw7dGhpcy5waWN0dXJlPW51bGw7dGhpcy5wcmVzZW5jZT1udWxsO3RoaXMucmVuYW1lPW51bGw7dGhpcy53aGl0ZXNwYWNlPW51bGx9fWNsYXNzIFR5cGUgZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sInR5cGUiLFsibm9uZSIsImFzY2lpODUiLCJhc2NpaUhleCIsImNjaXR0ZmF4IiwiZmxhdGUiLCJsenciLCJydW5MZW5ndGgiLCJuYXRpdmUiLCJ4ZHAiLCJtZXJnZWRYRFAiXSl9fWNsYXNzIFVyaSBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywidXJpIil9fWNsYXNzIGNvbmZpZ19WYWxpZGF0ZSBleHRlbmRzIE9wdGlvbk9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywidmFsaWRhdGUiLFsicHJlU3VibWl0IiwicHJlUHJpbnQiLCJwcmVFeGVjdXRlIiwicHJlU2F2ZSJdKX19Y2xhc3MgVmFsaWRhdGVBcHByb3ZhbFNpZ25hdHVyZXMgZXh0ZW5kcyBDb250ZW50T2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJ2YWxpZGF0ZUFwcHJvdmFsU2lnbmF0dXJlcyIpfVtuaV0oKXt0aGlzW1FzXT10aGlzW1FzXS50cmltKCkuc3BsaXQoL1xzKy8pLmZpbHRlcihlPT5bImRvY1JlYWR5IiwicG9zdFNpZ24iXS5pbmNsdWRlcyhlKSl9fWNsYXNzIFZhbGlkYXRpb25NZXNzYWdpbmcgZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sInZhbGlkYXRpb25NZXNzYWdpbmciLFsiYWxsTWVzc2FnZXNJbmRpdmlkdWFsbHkiLCJhbGxNZXNzYWdlc1RvZ2V0aGVyIiwiZmlyc3RNZXNzYWdlT25seSIsIm5vTWVzc2FnZXMiXSl9fWNsYXNzIFZlcnNpb24gZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sInZlcnNpb24iLFsiMS43IiwiMS42IiwiMS41IiwiMS40IiwiMS4zIiwiMS4yIl0pfX1jbGFzcyBWZXJzaW9uQ29udHJvbCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywiVmVyc2lvbkNvbnRyb2wiKTt0aGlzLm91dHB1dEJlbG93PWdldFN0cmluZ09wdGlvbihlLm91dHB1dEJlbG93LFsid2FybiIsImVycm9yIiwidXBkYXRlIl0pO3RoaXMuc291cmNlQWJvdmU9Z2V0U3RyaW5nT3B0aW9uKGUuc291cmNlQWJvdmUsWyJ3YXJuIiwiZXJyb3IiXSk7dGhpcy5zb3VyY2VCZWxvdz1nZXRTdHJpbmdPcHRpb24oZS5zb3VyY2VCZWxvdyxbInVwZGF0ZSIsIm1haW50YWluIl0pfX1jbGFzcyBWaWV3ZXJQcmVmZXJlbmNlcyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywidmlld2VyUHJlZmVyZW5jZXMiLCEwKTt0aGlzLkFEQkVfSlNDb25zb2xlPW51bGw7dGhpcy5BREJFX0pTRGVidWdnZXI9bnVsbDt0aGlzLmFkZFZpZXdlclByZWZlcmVuY2VzPW51bGw7dGhpcy5kdXBsZXhPcHRpb249bnVsbDt0aGlzLmVuZm9yY2U9bnVsbDt0aGlzLm51bWJlck9mQ29waWVzPW51bGw7dGhpcy5wYWdlUmFuZ2U9bnVsbDt0aGlzLnBpY2tUcmF5QnlQREZTaXplPW51bGw7dGhpcy5wcmludFNjYWxpbmc9bnVsbH19Y2xhc3MgV2ViQ2xpZW50IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJ3ZWJDbGllbnQiLCEwKTt0aGlzLm5hbWU9ZS5uYW1lP2UubmFtZS50cmltKCk6IiI7dGhpcy5mb250SW5mbz1udWxsO3RoaXMueGRjPW51bGx9fWNsYXNzIFdoaXRlc3BhY2UgZXh0ZW5kcyBPcHRpb25PYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sIndoaXRlc3BhY2UiLFsicHJlc2VydmUiLCJsdHJpbSIsIm5vcm1hbGl6ZSIsInJ0cmltIiwidHJpbSJdKX19Y2xhc3MgV2luZG93IGV4dGVuZHMgQ29udGVudE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihLbywid2luZG93Iil9W25pXSgpe2NvbnN0IGU9dGhpc1tRc10uc3BsaXQoIiwiLDIpLm1hcChlPT5wYXJzZUludChlLnRyaW0oKSwxMCkpO2lmKGUuc29tZShlPT5pc05hTihlKSkpdGhpc1tRc109WzAsMF07ZWxzZXsxPT09ZS5sZW5ndGgmJmUucHVzaChlWzBdKTt0aGlzW1FzXT1lfX19Y2xhc3MgWGRjIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEtvLCJ4ZGMiLCEwKTt0aGlzLnVyaT1uZXcgWEZBT2JqZWN0QXJyYXk7dGhpcy54c2w9bmV3IFhGQU9iamVjdEFycmF5fX1jbGFzcyBYZHAgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sInhkcCIsITApO3RoaXMucGFja2V0cz1udWxsfX1jbGFzcyBYc2wgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sInhzbCIsITApO3RoaXMuZGVidWc9bnVsbDt0aGlzLnVyaT1udWxsfX1jbGFzcyBacGwgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoS28sInpwbCIsITApO3RoaXMubmFtZT1lLm5hbWU/ZS5uYW1lLnRyaW0oKToiIjt0aGlzLmJhdGNoT3V0cHV0PW51bGw7dGhpcy5mbGlwTGFiZWw9bnVsbDt0aGlzLmZvbnRJbmZvPW51bGw7dGhpcy54ZGM9bnVsbH19Y2xhc3MgQ29uZmlnTmFtZXNwYWNle3N0YXRpY1tzb10oZSx0KXtpZihDb25maWdOYW1lc3BhY2UuaGFzT3duUHJvcGVydHkoZSkpcmV0dXJuIENvbmZpZ05hbWVzcGFjZVtlXSh0KX1zdGF0aWMgYWNyb2JhdChlKXtyZXR1cm4gbmV3IEFjcm9iYXQoZSl9c3RhdGljIGFjcm9iYXQ3KGUpe3JldHVybiBuZXcgQWNyb2JhdDcoZSl9c3RhdGljIEFEQkVfSlNDb25zb2xlKGUpe3JldHVybiBuZXcgQURCRV9KU0NvbnNvbGUoZSl9c3RhdGljIEFEQkVfSlNEZWJ1Z2dlcihlKXtyZXR1cm4gbmV3IEFEQkVfSlNEZWJ1Z2dlcihlKX1zdGF0aWMgYWRkU2lsZW50UHJpbnQoZSl7cmV0dXJuIG5ldyBBZGRTaWxlbnRQcmludChlKX1zdGF0aWMgYWRkVmlld2VyUHJlZmVyZW5jZXMoZSl7cmV0dXJuIG5ldyBBZGRWaWV3ZXJQcmVmZXJlbmNlcyhlKX1zdGF0aWMgYWRqdXN0RGF0YShlKXtyZXR1cm4gbmV3IEFkanVzdERhdGEoZSl9c3RhdGljIGFkb2JlRXh0ZW5zaW9uTGV2ZWwoZSl7cmV0dXJuIG5ldyBBZG9iZUV4dGVuc2lvbkxldmVsKGUpfXN0YXRpYyBhZ2VudChlKXtyZXR1cm4gbmV3IEFnZW50KGUpfXN0YXRpYyBhbHdheXNFbWJlZChlKXtyZXR1cm4gbmV3IEFsd2F5c0VtYmVkKGUpfXN0YXRpYyBhbWQoZSl7cmV0dXJuIG5ldyBBbWQoZSl9c3RhdGljIGFyZWEoZSl7cmV0dXJuIG5ldyBjb25maWdfQXJlYShlKX1zdGF0aWMgYXR0cmlidXRlcyhlKXtyZXR1cm4gbmV3IEF0dHJpYnV0ZXMoZSl9c3RhdGljIGF1dG9TYXZlKGUpe3JldHVybiBuZXcgQXV0b1NhdmUoZSl9c3RhdGljIGJhc2UoZSl7cmV0dXJuIG5ldyBCYXNlKGUpfXN0YXRpYyBiYXRjaE91dHB1dChlKXtyZXR1cm4gbmV3IEJhdGNoT3V0cHV0KGUpfXN0YXRpYyBiZWhhdmlvck92ZXJyaWRlKGUpe3JldHVybiBuZXcgQmVoYXZpb3JPdmVycmlkZShlKX1zdGF0aWMgY2FjaGUoZSl7cmV0dXJuIG5ldyBDYWNoZShlKX1zdGF0aWMgY2hhbmdlKGUpe3JldHVybiBuZXcgQ2hhbmdlKGUpfXN0YXRpYyBjb21tb24oZSl7cmV0dXJuIG5ldyBDb21tb24oZSl9c3RhdGljIGNvbXByZXNzKGUpe3JldHVybiBuZXcgQ29tcHJlc3MoZSl9c3RhdGljIGNvbXByZXNzTG9naWNhbFN0cnVjdHVyZShlKXtyZXR1cm4gbmV3IENvbXByZXNzTG9naWNhbFN0cnVjdHVyZShlKX1zdGF0aWMgY29tcHJlc3NPYmplY3RTdHJlYW0oZSl7cmV0dXJuIG5ldyBDb21wcmVzc09iamVjdFN0cmVhbShlKX1zdGF0aWMgY29tcHJlc3Npb24oZSl7cmV0dXJuIG5ldyBDb21wcmVzc2lvbihlKX1zdGF0aWMgY29uZmlnKGUpe3JldHVybiBuZXcgQ29uZmlnKGUpfXN0YXRpYyBjb25mb3JtYW5jZShlKXtyZXR1cm4gbmV3IENvbmZvcm1hbmNlKGUpfXN0YXRpYyBjb250ZW50Q29weShlKXtyZXR1cm4gbmV3IENvbnRlbnRDb3B5KGUpfXN0YXRpYyBjb3BpZXMoZSl7cmV0dXJuIG5ldyBDb3BpZXMoZSl9c3RhdGljIGNyZWF0b3IoZSl7cmV0dXJuIG5ldyBDcmVhdG9yKGUpfXN0YXRpYyBjdXJyZW50UGFnZShlKXtyZXR1cm4gbmV3IEN1cnJlbnRQYWdlKGUpfXN0YXRpYyBkYXRhKGUpe3JldHVybiBuZXcgRGF0YShlKX1zdGF0aWMgZGVidWcoZSl7cmV0dXJuIG5ldyBEZWJ1ZyhlKX1zdGF0aWMgZGVmYXVsdFR5cGVmYWNlKGUpe3JldHVybiBuZXcgRGVmYXVsdFR5cGVmYWNlKGUpfXN0YXRpYyBkZXN0aW5hdGlvbihlKXtyZXR1cm4gbmV3IERlc3RpbmF0aW9uKGUpfXN0YXRpYyBkb2N1bWVudEFzc2VtYmx5KGUpe3JldHVybiBuZXcgRG9jdW1lbnRBc3NlbWJseShlKX1zdGF0aWMgZHJpdmVyKGUpe3JldHVybiBuZXcgRHJpdmVyKGUpfXN0YXRpYyBkdXBsZXhPcHRpb24oZSl7cmV0dXJuIG5ldyBEdXBsZXhPcHRpb24oZSl9c3RhdGljIGR5bmFtaWNSZW5kZXIoZSl7cmV0dXJuIG5ldyBEeW5hbWljUmVuZGVyKGUpfXN0YXRpYyBlbWJlZChlKXtyZXR1cm4gbmV3IEVtYmVkKGUpfXN0YXRpYyBlbmNyeXB0KGUpe3JldHVybiBuZXcgY29uZmlnX0VuY3J5cHQoZSl9c3RhdGljIGVuY3J5cHRpb24oZSl7cmV0dXJuIG5ldyBjb25maWdfRW5jcnlwdGlvbihlKX1zdGF0aWMgZW5jcnlwdGlvbkxldmVsKGUpe3JldHVybiBuZXcgRW5jcnlwdGlvbkxldmVsKGUpfXN0YXRpYyBlbmZvcmNlKGUpe3JldHVybiBuZXcgRW5mb3JjZShlKX1zdGF0aWMgZXF1YXRlKGUpe3JldHVybiBuZXcgRXF1YXRlKGUpfXN0YXRpYyBlcXVhdGVSYW5nZShlKXtyZXR1cm4gbmV3IEVxdWF0ZVJhbmdlKGUpfXN0YXRpYyBleGNsdWRlKGUpe3JldHVybiBuZXcgRXhjbHVkZShlKX1zdGF0aWMgZXhjbHVkZU5TKGUpe3JldHVybiBuZXcgRXhjbHVkZU5TKGUpfXN0YXRpYyBmbGlwTGFiZWwoZSl7cmV0dXJuIG5ldyBGbGlwTGFiZWwoZSl9c3RhdGljIGZvbnRJbmZvKGUpe3JldHVybiBuZXcgY29uZmlnX0ZvbnRJbmZvKGUpfXN0YXRpYyBmb3JtRmllbGRGaWxsaW5nKGUpe3JldHVybiBuZXcgRm9ybUZpZWxkRmlsbGluZyhlKX1zdGF0aWMgZ3JvdXBQYXJlbnQoZSl7cmV0dXJuIG5ldyBHcm91cFBhcmVudChlKX1zdGF0aWMgaWZFbXB0eShlKXtyZXR1cm4gbmV3IElmRW1wdHkoZSl9c3RhdGljIGluY2x1ZGVYRFBDb250ZW50KGUpe3JldHVybiBuZXcgSW5jbHVkZVhEUENvbnRlbnQoZSl9c3RhdGljIGluY3JlbWVudGFsTG9hZChlKXtyZXR1cm4gbmV3IEluY3JlbWVudGFsTG9hZChlKX1zdGF0aWMgaW5jcmVtZW50YWxNZXJnZShlKXtyZXR1cm4gbmV3IEluY3JlbWVudGFsTWVyZ2UoZSl9c3RhdGljIGludGVyYWN0aXZlKGUpe3JldHVybiBuZXcgSW50ZXJhY3RpdmUoZSl9c3RhdGljIGpvZyhlKXtyZXR1cm4gbmV3IEpvZyhlKX1zdGF0aWMgbGFiZWxQcmludGVyKGUpe3JldHVybiBuZXcgTGFiZWxQcmludGVyKGUpfXN0YXRpYyBsYXlvdXQoZSl7cmV0dXJuIG5ldyBMYXlvdXQoZSl9c3RhdGljIGxldmVsKGUpe3JldHVybiBuZXcgTGV2ZWwoZSl9c3RhdGljIGxpbmVhcml6ZWQoZSl7cmV0dXJuIG5ldyBMaW5lYXJpemVkKGUpfXN0YXRpYyBsb2NhbGUoZSl7cmV0dXJuIG5ldyBMb2NhbGUoZSl9c3RhdGljIGxvY2FsZVNldChlKXtyZXR1cm4gbmV3IExvY2FsZVNldChlKX1zdGF0aWMgbG9nKGUpe3JldHVybiBuZXcgTG9nKGUpfXN0YXRpYyBtYXAoZSl7cmV0dXJuIG5ldyBNYXBFbGVtZW50KGUpfXN0YXRpYyBtZWRpdW1JbmZvKGUpe3JldHVybiBuZXcgTWVkaXVtSW5mbyhlKX1zdGF0aWMgbWVzc2FnZShlKXtyZXR1cm4gbmV3IGNvbmZpZ19NZXNzYWdlKGUpfXN0YXRpYyBtZXNzYWdpbmcoZSl7cmV0dXJuIG5ldyBNZXNzYWdpbmcoZSl9c3RhdGljIG1vZGUoZSl7cmV0dXJuIG5ldyBNb2RlKGUpfXN0YXRpYyBtb2RpZnlBbm5vdHMoZSl7cmV0dXJuIG5ldyBNb2RpZnlBbm5vdHMoZSl9c3RhdGljIG1zZ0lkKGUpe3JldHVybiBuZXcgTXNnSWQoZSl9c3RhdGljIG5hbWVBdHRyKGUpe3JldHVybiBuZXcgTmFtZUF0dHIoZSl9c3RhdGljIG5ldmVyRW1iZWQoZSl7cmV0dXJuIG5ldyBOZXZlckVtYmVkKGUpfXN0YXRpYyBudW1iZXJPZkNvcGllcyhlKXtyZXR1cm4gbmV3IE51bWJlck9mQ29waWVzKGUpfXN0YXRpYyBvcGVuQWN0aW9uKGUpe3JldHVybiBuZXcgT3BlbkFjdGlvbihlKX1zdGF0aWMgb3V0cHV0KGUpe3JldHVybiBuZXcgT3V0cHV0KGUpfXN0YXRpYyBvdXRwdXRCaW4oZSl7cmV0dXJuIG5ldyBPdXRwdXRCaW4oZSl9c3RhdGljIG91dHB1dFhTTChlKXtyZXR1cm4gbmV3IE91dHB1dFhTTChlKX1zdGF0aWMgb3ZlcnByaW50KGUpe3JldHVybiBuZXcgT3ZlcnByaW50KGUpfXN0YXRpYyBwYWNrZXRzKGUpe3JldHVybiBuZXcgUGFja2V0cyhlKX1zdGF0aWMgcGFnZU9mZnNldChlKXtyZXR1cm4gbmV3IFBhZ2VPZmZzZXQoZSl9c3RhdGljIHBhZ2VSYW5nZShlKXtyZXR1cm4gbmV3IFBhZ2VSYW5nZShlKX1zdGF0aWMgcGFnaW5hdGlvbihlKXtyZXR1cm4gbmV3IFBhZ2luYXRpb24oZSl9c3RhdGljIHBhZ2luYXRpb25PdmVycmlkZShlKXtyZXR1cm4gbmV3IFBhZ2luYXRpb25PdmVycmlkZShlKX1zdGF0aWMgcGFydChlKXtyZXR1cm4gbmV3IFBhcnQoZSl9c3RhdGljIHBjbChlKXtyZXR1cm4gbmV3IFBjbChlKX1zdGF0aWMgcGRmKGUpe3JldHVybiBuZXcgUGRmKGUpfXN0YXRpYyBwZGZhKGUpe3JldHVybiBuZXcgUGRmYShlKX1zdGF0aWMgcGVybWlzc2lvbnMoZSl7cmV0dXJuIG5ldyBQZXJtaXNzaW9ucyhlKX1zdGF0aWMgcGlja1RyYXlCeVBERlNpemUoZSl7cmV0dXJuIG5ldyBQaWNrVHJheUJ5UERGU2l6ZShlKX1zdGF0aWMgcGljdHVyZShlKXtyZXR1cm4gbmV3IGNvbmZpZ19QaWN0dXJlKGUpfXN0YXRpYyBwbGFpbnRleHRNZXRhZGF0YShlKXtyZXR1cm4gbmV3IFBsYWludGV4dE1ldGFkYXRhKGUpfXN0YXRpYyBwcmVzZW5jZShlKXtyZXR1cm4gbmV3IFByZXNlbmNlKGUpfXN0YXRpYyBwcmVzZW50KGUpe3JldHVybiBuZXcgUHJlc2VudChlKX1zdGF0aWMgcHJpbnQoZSl7cmV0dXJuIG5ldyBQcmludChlKX1zdGF0aWMgcHJpbnRIaWdoUXVhbGl0eShlKXtyZXR1cm4gbmV3IFByaW50SGlnaFF1YWxpdHkoZSl9c3RhdGljIHByaW50U2NhbGluZyhlKXtyZXR1cm4gbmV3IFByaW50U2NhbGluZyhlKX1zdGF0aWMgcHJpbnRlck5hbWUoZSl7cmV0dXJuIG5ldyBQcmludGVyTmFtZShlKX1zdGF0aWMgcHJvZHVjZXIoZSl7cmV0dXJuIG5ldyBQcm9kdWNlcihlKX1zdGF0aWMgcHMoZSl7cmV0dXJuIG5ldyBQcyhlKX1zdGF0aWMgcmFuZ2UoZSl7cmV0dXJuIG5ldyBSYW5nZShlKX1zdGF0aWMgcmVjb3JkKGUpe3JldHVybiBuZXcgUmVjb3JkKGUpfXN0YXRpYyByZWxldmFudChlKXtyZXR1cm4gbmV3IFJlbGV2YW50KGUpfXN0YXRpYyByZW5hbWUoZSl7cmV0dXJuIG5ldyBSZW5hbWUoZSl9c3RhdGljIHJlbmRlclBvbGljeShlKXtyZXR1cm4gbmV3IFJlbmRlclBvbGljeShlKX1zdGF0aWMgcnVuU2NyaXB0cyhlKXtyZXR1cm4gbmV3IFJ1blNjcmlwdHMoZSl9c3RhdGljIHNjcmlwdChlKXtyZXR1cm4gbmV3IGNvbmZpZ19TY3JpcHQoZSl9c3RhdGljIHNjcmlwdE1vZGVsKGUpe3JldHVybiBuZXcgU2NyaXB0TW9kZWwoZSl9c3RhdGljIHNldmVyaXR5KGUpe3JldHVybiBuZXcgU2V2ZXJpdHkoZSl9c3RhdGljIHNpbGVudFByaW50KGUpe3JldHVybiBuZXcgU2lsZW50UHJpbnQoZSl9c3RhdGljIHN0YXBsZShlKXtyZXR1cm4gbmV3IFN0YXBsZShlKX1zdGF0aWMgc3RhcnROb2RlKGUpe3JldHVybiBuZXcgU3RhcnROb2RlKGUpfXN0YXRpYyBzdGFydFBhZ2UoZSl7cmV0dXJuIG5ldyBTdGFydFBhZ2UoZSl9c3RhdGljIHN1Ym1pdEZvcm1hdChlKXtyZXR1cm4gbmV3IFN1Ym1pdEZvcm1hdChlKX1zdGF0aWMgc3VibWl0VXJsKGUpe3JldHVybiBuZXcgU3VibWl0VXJsKGUpfXN0YXRpYyBzdWJzZXRCZWxvdyhlKXtyZXR1cm4gbmV3IFN1YnNldEJlbG93KGUpfXN0YXRpYyBzdXBwcmVzc0Jhbm5lcihlKXtyZXR1cm4gbmV3IFN1cHByZXNzQmFubmVyKGUpfXN0YXRpYyB0YWdnZWQoZSl7cmV0dXJuIG5ldyBUYWdnZWQoZSl9c3RhdGljIHRlbXBsYXRlKGUpe3JldHVybiBuZXcgY29uZmlnX1RlbXBsYXRlKGUpfXN0YXRpYyB0ZW1wbGF0ZUNhY2hlKGUpe3JldHVybiBuZXcgVGVtcGxhdGVDYWNoZShlKX1zdGF0aWMgdGhyZXNob2xkKGUpe3JldHVybiBuZXcgVGhyZXNob2xkKGUpfXN0YXRpYyB0byhlKXtyZXR1cm4gbmV3IFRvKGUpfXN0YXRpYyB0cmFjZShlKXtyZXR1cm4gbmV3IFRyYWNlKGUpfXN0YXRpYyB0cmFuc2Zvcm0oZSl7cmV0dXJuIG5ldyBUcmFuc2Zvcm0oZSl9c3RhdGljIHR5cGUoZSl7cmV0dXJuIG5ldyBUeXBlKGUpfXN0YXRpYyB1cmkoZSl7cmV0dXJuIG5ldyBVcmkoZSl9c3RhdGljIHZhbGlkYXRlKGUpe3JldHVybiBuZXcgY29uZmlnX1ZhbGlkYXRlKGUpfXN0YXRpYyB2YWxpZGF0ZUFwcHJvdmFsU2lnbmF0dXJlcyhlKXtyZXR1cm4gbmV3IFZhbGlkYXRlQXBwcm92YWxTaWduYXR1cmVzKGUpfXN0YXRpYyB2YWxpZGF0aW9uTWVzc2FnaW5nKGUpe3JldHVybiBuZXcgVmFsaWRhdGlvbk1lc3NhZ2luZyhlKX1zdGF0aWMgdmVyc2lvbihlKXtyZXR1cm4gbmV3IFZlcnNpb24oZSl9c3RhdGljIHZlcnNpb25Db250cm9sKGUpe3JldHVybiBuZXcgVmVyc2lvbkNvbnRyb2woZSl9c3RhdGljIHZpZXdlclByZWZlcmVuY2VzKGUpe3JldHVybiBuZXcgVmlld2VyUHJlZmVyZW5jZXMoZSl9c3RhdGljIHdlYkNsaWVudChlKXtyZXR1cm4gbmV3IFdlYkNsaWVudChlKX1zdGF0aWMgd2hpdGVzcGFjZShlKXtyZXR1cm4gbmV3IFdoaXRlc3BhY2UoZSl9c3RhdGljIHdpbmRvdyhlKXtyZXR1cm4gbmV3IFdpbmRvdyhlKX1zdGF0aWMgeGRjKGUpe3JldHVybiBuZXcgWGRjKGUpfXN0YXRpYyB4ZHAoZSl7cmV0dXJuIG5ldyBYZHAoZSl9c3RhdGljIHhzbChlKXtyZXR1cm4gbmV3IFhzbChlKX1zdGF0aWMgenBsKGUpe3JldHVybiBuZXcgWnBsKGUpfX1jb25zdCBWbz1pby5jb25uZWN0aW9uU2V0LmlkO2NsYXNzIENvbm5lY3Rpb25TZXQgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVm8sImNvbm5lY3Rpb25TZXQiLCEwKTt0aGlzLndzZGxDb25uZWN0aW9uPW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnhtbENvbm5lY3Rpb249bmV3IFhGQU9iamVjdEFycmF5O3RoaXMueHNkQ29ubmVjdGlvbj1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIEVmZmVjdGl2ZUlucHV0UG9saWN5IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFZvLCJlZmZlY3RpdmVJbnB1dFBvbGljeSIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBFZmZlY3RpdmVPdXRwdXRQb2xpY3kgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVm8sImVmZmVjdGl2ZU91dHB1dFBvbGljeSIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBPcGVyYXRpb24gZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVm8sIm9wZXJhdGlvbiIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5pbnB1dD1lLmlucHV0fHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLm91dHB1dD1lLm91dHB1dHx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBSb290RWxlbWVudCBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihWbywicm9vdEVsZW1lbnQiKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn19Y2xhc3MgU29hcEFjdGlvbiBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihWbywic29hcEFjdGlvbiIpO3RoaXMuaWQ9ZS5pZHx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy51c2U9ZS51c2V8fCIiO3RoaXMudXNlaHJlZj1lLnVzZWhyZWZ8fCIifX1jbGFzcyBTb2FwQWRkcmVzcyBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihWbywic29hcEFkZHJlc3MiKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn19Y2xhc3MgY29ubmVjdGlvbl9zZXRfVXJpIGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFZvLCJ1cmkiKTt0aGlzLmlkPWUuaWR8fCIiO3RoaXMubmFtZT1lLm5hbWV8fCIiO3RoaXMudXNlPWUudXNlfHwiIjt0aGlzLnVzZWhyZWY9ZS51c2VocmVmfHwiIn19Y2xhc3MgV3NkbEFkZHJlc3MgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVm8sIndzZGxBZGRyZXNzIik7dGhpcy5pZD1lLmlkfHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnVzZT1lLnVzZXx8IiI7dGhpcy51c2VocmVmPWUudXNlaHJlZnx8IiJ9fWNsYXNzIFdzZGxDb25uZWN0aW9uIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFZvLCJ3c2RsQ29ubmVjdGlvbiIsITApO3RoaXMuZGF0YURlc2NyaXB0aW9uPWUuZGF0YURlc2NyaXB0aW9ufHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLmVmZmVjdGl2ZUlucHV0UG9saWN5PW51bGw7dGhpcy5lZmZlY3RpdmVPdXRwdXRQb2xpY3k9bnVsbDt0aGlzLm9wZXJhdGlvbj1udWxsO3RoaXMuc29hcEFjdGlvbj1udWxsO3RoaXMuc29hcEFkZHJlc3M9bnVsbDt0aGlzLndzZGxBZGRyZXNzPW51bGx9fWNsYXNzIFhtbENvbm5lY3Rpb24gZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoVm8sInhtbENvbm5lY3Rpb24iLCEwKTt0aGlzLmRhdGFEZXNjcmlwdGlvbj1lLmRhdGFEZXNjcmlwdGlvbnx8IiI7dGhpcy5uYW1lPWUubmFtZXx8IiI7dGhpcy51cmk9bnVsbH19Y2xhc3MgWHNkQ29ubmVjdGlvbiBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihWbywieHNkQ29ubmVjdGlvbiIsITApO3RoaXMuZGF0YURlc2NyaXB0aW9uPWUuZGF0YURlc2NyaXB0aW9ufHwiIjt0aGlzLm5hbWU9ZS5uYW1lfHwiIjt0aGlzLnJvb3RFbGVtZW50PW51bGw7dGhpcy51cmk9bnVsbH19Y2xhc3MgQ29ubmVjdGlvblNldE5hbWVzcGFjZXtzdGF0aWNbc29dKGUsdCl7aWYoQ29ubmVjdGlvblNldE5hbWVzcGFjZS5oYXNPd25Qcm9wZXJ0eShlKSlyZXR1cm4gQ29ubmVjdGlvblNldE5hbWVzcGFjZVtlXSh0KX1zdGF0aWMgY29ubmVjdGlvblNldChlKXtyZXR1cm4gbmV3IENvbm5lY3Rpb25TZXQoZSl9c3RhdGljIGVmZmVjdGl2ZUlucHV0UG9saWN5KGUpe3JldHVybiBuZXcgRWZmZWN0aXZlSW5wdXRQb2xpY3koZSl9c3RhdGljIGVmZmVjdGl2ZU91dHB1dFBvbGljeShlKXtyZXR1cm4gbmV3IEVmZmVjdGl2ZU91dHB1dFBvbGljeShlKX1zdGF0aWMgb3BlcmF0aW9uKGUpe3JldHVybiBuZXcgT3BlcmF0aW9uKGUpfXN0YXRpYyByb290RWxlbWVudChlKXtyZXR1cm4gbmV3IFJvb3RFbGVtZW50KGUpfXN0YXRpYyBzb2FwQWN0aW9uKGUpe3JldHVybiBuZXcgU29hcEFjdGlvbihlKX1zdGF0aWMgc29hcEFkZHJlc3MoZSl7cmV0dXJuIG5ldyBTb2FwQWRkcmVzcyhlKX1zdGF0aWMgdXJpKGUpe3JldHVybiBuZXcgY29ubmVjdGlvbl9zZXRfVXJpKGUpfXN0YXRpYyB3c2RsQWRkcmVzcyhlKXtyZXR1cm4gbmV3IFdzZGxBZGRyZXNzKGUpfXN0YXRpYyB3c2RsQ29ubmVjdGlvbihlKXtyZXR1cm4gbmV3IFdzZGxDb25uZWN0aW9uKGUpfXN0YXRpYyB4bWxDb25uZWN0aW9uKGUpe3JldHVybiBuZXcgWG1sQ29ubmVjdGlvbihlKX1zdGF0aWMgeHNkQ29ubmVjdGlvbihlKXtyZXR1cm4gbmV3IFhzZENvbm5lY3Rpb24oZSl9fWNvbnN0IEdvPWlvLmRhdGFzZXRzLmlkO2NsYXNzIGRhdGFzZXRzX0RhdGEgZXh0ZW5kcyBYbWxPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoR28sImRhdGEiLGUpfVtJaV0oKXtyZXR1cm4hMH19Y2xhc3MgRGF0YXNldHMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoR28sImRhdGFzZXRzIiwhMCk7dGhpcy5kYXRhPW51bGw7dGhpcy5TaWduYXR1cmU9bnVsbH1bUGldKGUpe2NvbnN0IHQ9ZVtEaV07KCJkYXRhIj09PXQmJmVbSGldPT09R298fCJTaWduYXR1cmUiPT09dCYmZVtIaV09PT1pby5zaWduYXR1cmUuaWQpJiYodGhpc1t0XT1lKTt0aGlzW1dzXShlKX19Y2xhc3MgRGF0YXNldHNOYW1lc3BhY2V7c3RhdGljW3NvXShlLHQpe2lmKERhdGFzZXRzTmFtZXNwYWNlLmhhc093blByb3BlcnR5KGUpKXJldHVybiBEYXRhc2V0c05hbWVzcGFjZVtlXSh0KX1zdGF0aWMgZGF0YXNldHMoZSl7cmV0dXJuIG5ldyBEYXRhc2V0cyhlKX1zdGF0aWMgZGF0YShlKXtyZXR1cm4gbmV3IGRhdGFzZXRzX0RhdGEoZSl9fWNvbnN0ICRvPWlvLmxvY2FsZVNldC5pZDtjbGFzcyBDYWxlbmRhclN5bWJvbHMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoJG8sImNhbGVuZGFyU3ltYm9scyIsITApO3RoaXMubmFtZT0iZ3JlZ29yaWFuIjt0aGlzLmRheU5hbWVzPW5ldyBYRkFPYmplY3RBcnJheSgyKTt0aGlzLmVyYU5hbWVzPW51bGw7dGhpcy5tZXJpZGllbU5hbWVzPW51bGw7dGhpcy5tb250aE5hbWVzPW5ldyBYRkFPYmplY3RBcnJheSgyKX19Y2xhc3MgQ3VycmVuY3lTeW1ib2wgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoJG8sImN1cnJlbmN5U3ltYm9sIik7dGhpcy5uYW1lPWdldFN0cmluZ09wdGlvbihlLm5hbWUsWyJzeW1ib2wiLCJpc29uYW1lIiwiZGVjaW1hbCJdKX19Y2xhc3MgQ3VycmVuY3lTeW1ib2xzIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKCRvLCJjdXJyZW5jeVN5bWJvbHMiLCEwKTt0aGlzLmN1cnJlbmN5U3ltYm9sPW5ldyBYRkFPYmplY3RBcnJheSgzKX19Y2xhc3MgRGF0ZVBhdHRlcm4gZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoJG8sImRhdGVQYXR0ZXJuIik7dGhpcy5uYW1lPWdldFN0cmluZ09wdGlvbihlLm5hbWUsWyJmdWxsIiwibG9uZyIsIm1lZCIsInNob3J0Il0pfX1jbGFzcyBEYXRlUGF0dGVybnMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoJG8sImRhdGVQYXR0ZXJucyIsITApO3RoaXMuZGF0ZVBhdHRlcm49bmV3IFhGQU9iamVjdEFycmF5KDQpfX1jbGFzcyBEYXRlVGltZVN5bWJvbHMgZXh0ZW5kcyBDb250ZW50T2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKCRvLCJkYXRlVGltZVN5bWJvbHMiKX19Y2xhc3MgRGF5IGV4dGVuZHMgU3RyaW5nT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKCRvLCJkYXkiKX19Y2xhc3MgRGF5TmFtZXMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoJG8sImRheU5hbWVzIiwhMCk7dGhpcy5hYmJyPWdldEludGVnZXIoe2RhdGE6ZS5hYmJyLGRlZmF1bHRWYWx1ZTowLHZhbGlkYXRlOmU9PjE9PT1lfSk7dGhpcy5kYXk9bmV3IFhGQU9iamVjdEFycmF5KDcpfX1jbGFzcyBFcmEgZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoJG8sImVyYSIpfX1jbGFzcyBFcmFOYW1lcyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcigkbywiZXJhTmFtZXMiLCEwKTt0aGlzLmVyYT1uZXcgWEZBT2JqZWN0QXJyYXkoMil9fWNsYXNzIGxvY2FsZV9zZXRfTG9jYWxlIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKCRvLCJsb2NhbGUiLCEwKTt0aGlzLmRlc2M9ZS5kZXNjfHwiIjt0aGlzLm5hbWU9Imlzb25hbWUiO3RoaXMuY2FsZW5kYXJTeW1ib2xzPW51bGw7dGhpcy5jdXJyZW5jeVN5bWJvbHM9bnVsbDt0aGlzLmRhdGVQYXR0ZXJucz1udWxsO3RoaXMuZGF0ZVRpbWVTeW1ib2xzPW51bGw7dGhpcy5udW1iZXJQYXR0ZXJucz1udWxsO3RoaXMubnVtYmVyU3ltYm9scz1udWxsO3RoaXMudGltZVBhdHRlcm5zPW51bGw7dGhpcy50eXBlRmFjZXM9bnVsbH19Y2xhc3MgbG9jYWxlX3NldF9Mb2NhbGVTZXQgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoJG8sImxvY2FsZVNldCIsITApO3RoaXMubG9jYWxlPW5ldyBYRkFPYmplY3RBcnJheX19Y2xhc3MgTWVyaWRpZW0gZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoJG8sIm1lcmlkaWVtIil9fWNsYXNzIE1lcmlkaWVtTmFtZXMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoJG8sIm1lcmlkaWVtTmFtZXMiLCEwKTt0aGlzLm1lcmlkaWVtPW5ldyBYRkFPYmplY3RBcnJheSgyKX19Y2xhc3MgTW9udGggZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoJG8sIm1vbnRoIil9fWNsYXNzIE1vbnRoTmFtZXMgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoJG8sIm1vbnRoTmFtZXMiLCEwKTt0aGlzLmFiYnI9Z2V0SW50ZWdlcih7ZGF0YTplLmFiYnIsZGVmYXVsdFZhbHVlOjAsdmFsaWRhdGU6ZT0+MT09PWV9KTt0aGlzLm1vbnRoPW5ldyBYRkFPYmplY3RBcnJheSgxMil9fWNsYXNzIE51bWJlclBhdHRlcm4gZXh0ZW5kcyBTdHJpbmdPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoJG8sIm51bWJlclBhdHRlcm4iKTt0aGlzLm5hbWU9Z2V0U3RyaW5nT3B0aW9uKGUubmFtZSxbImZ1bGwiLCJsb25nIiwibWVkIiwic2hvcnQiXSl9fWNsYXNzIE51bWJlclBhdHRlcm5zIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKCRvLCJudW1iZXJQYXR0ZXJucyIsITApO3RoaXMubnVtYmVyUGF0dGVybj1uZXcgWEZBT2JqZWN0QXJyYXkoNCl9fWNsYXNzIE51bWJlclN5bWJvbCBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcigkbywibnVtYmVyU3ltYm9sIik7dGhpcy5uYW1lPWdldFN0cmluZ09wdGlvbihlLm5hbWUsWyJkZWNpbWFsIiwiZ3JvdXBpbmciLCJwZXJjZW50IiwibWludXMiLCJ6ZXJvIl0pfX1jbGFzcyBOdW1iZXJTeW1ib2xzIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKCRvLCJudW1iZXJTeW1ib2xzIiwhMCk7dGhpcy5udW1iZXJTeW1ib2w9bmV3IFhGQU9iamVjdEFycmF5KDUpfX1jbGFzcyBUaW1lUGF0dGVybiBleHRlbmRzIFN0cmluZ09iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcigkbywidGltZVBhdHRlcm4iKTt0aGlzLm5hbWU9Z2V0U3RyaW5nT3B0aW9uKGUubmFtZSxbImZ1bGwiLCJsb25nIiwibWVkIiwic2hvcnQiXSl9fWNsYXNzIFRpbWVQYXR0ZXJucyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcigkbywidGltZVBhdHRlcm5zIiwhMCk7dGhpcy50aW1lUGF0dGVybj1uZXcgWEZBT2JqZWN0QXJyYXkoNCl9fWNsYXNzIFR5cGVGYWNlIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKCRvLCJ0eXBlRmFjZSIsITApO3RoaXMubmFtZT0iInxlLm5hbWV9fWNsYXNzIFR5cGVGYWNlcyBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcigkbywidHlwZUZhY2VzIiwhMCk7dGhpcy50eXBlRmFjZT1uZXcgWEZBT2JqZWN0QXJyYXl9fWNsYXNzIExvY2FsZVNldE5hbWVzcGFjZXtzdGF0aWNbc29dKGUsdCl7aWYoTG9jYWxlU2V0TmFtZXNwYWNlLmhhc093blByb3BlcnR5KGUpKXJldHVybiBMb2NhbGVTZXROYW1lc3BhY2VbZV0odCl9c3RhdGljIGNhbGVuZGFyU3ltYm9scyhlKXtyZXR1cm4gbmV3IENhbGVuZGFyU3ltYm9scyhlKX1zdGF0aWMgY3VycmVuY3lTeW1ib2woZSl7cmV0dXJuIG5ldyBDdXJyZW5jeVN5bWJvbChlKX1zdGF0aWMgY3VycmVuY3lTeW1ib2xzKGUpe3JldHVybiBuZXcgQ3VycmVuY3lTeW1ib2xzKGUpfXN0YXRpYyBkYXRlUGF0dGVybihlKXtyZXR1cm4gbmV3IERhdGVQYXR0ZXJuKGUpfXN0YXRpYyBkYXRlUGF0dGVybnMoZSl7cmV0dXJuIG5ldyBEYXRlUGF0dGVybnMoZSl9c3RhdGljIGRhdGVUaW1lU3ltYm9scyhlKXtyZXR1cm4gbmV3IERhdGVUaW1lU3ltYm9scyhlKX1zdGF0aWMgZGF5KGUpe3JldHVybiBuZXcgRGF5KGUpfXN0YXRpYyBkYXlOYW1lcyhlKXtyZXR1cm4gbmV3IERheU5hbWVzKGUpfXN0YXRpYyBlcmEoZSl7cmV0dXJuIG5ldyBFcmEoZSl9c3RhdGljIGVyYU5hbWVzKGUpe3JldHVybiBuZXcgRXJhTmFtZXMoZSl9c3RhdGljIGxvY2FsZShlKXtyZXR1cm4gbmV3IGxvY2FsZV9zZXRfTG9jYWxlKGUpfXN0YXRpYyBsb2NhbGVTZXQoZSl7cmV0dXJuIG5ldyBsb2NhbGVfc2V0X0xvY2FsZVNldChlKX1zdGF0aWMgbWVyaWRpZW0oZSl7cmV0dXJuIG5ldyBNZXJpZGllbShlKX1zdGF0aWMgbWVyaWRpZW1OYW1lcyhlKXtyZXR1cm4gbmV3IE1lcmlkaWVtTmFtZXMoZSl9c3RhdGljIG1vbnRoKGUpe3JldHVybiBuZXcgTW9udGgoZSl9c3RhdGljIG1vbnRoTmFtZXMoZSl7cmV0dXJuIG5ldyBNb250aE5hbWVzKGUpfXN0YXRpYyBudW1iZXJQYXR0ZXJuKGUpe3JldHVybiBuZXcgTnVtYmVyUGF0dGVybihlKX1zdGF0aWMgbnVtYmVyUGF0dGVybnMoZSl7cmV0dXJuIG5ldyBOdW1iZXJQYXR0ZXJucyhlKX1zdGF0aWMgbnVtYmVyU3ltYm9sKGUpe3JldHVybiBuZXcgTnVtYmVyU3ltYm9sKGUpfXN0YXRpYyBudW1iZXJTeW1ib2xzKGUpe3JldHVybiBuZXcgTnVtYmVyU3ltYm9scyhlKX1zdGF0aWMgdGltZVBhdHRlcm4oZSl7cmV0dXJuIG5ldyBUaW1lUGF0dGVybihlKX1zdGF0aWMgdGltZVBhdHRlcm5zKGUpe3JldHVybiBuZXcgVGltZVBhdHRlcm5zKGUpfXN0YXRpYyB0eXBlRmFjZShlKXtyZXR1cm4gbmV3IFR5cGVGYWNlKGUpfXN0YXRpYyB0eXBlRmFjZXMoZSl7cmV0dXJuIG5ldyBUeXBlRmFjZXMoZSl9fWNvbnN0IFlvPWlvLnNpZ25hdHVyZS5pZDtjbGFzcyBzaWduYXR1cmVfU2lnbmF0dXJlIGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKFlvLCJzaWduYXR1cmUiLCEwKX19Y2xhc3MgU2lnbmF0dXJlTmFtZXNwYWNle3N0YXRpY1tzb10oZSx0KXtpZihTaWduYXR1cmVOYW1lc3BhY2UuaGFzT3duUHJvcGVydHkoZSkpcmV0dXJuIFNpZ25hdHVyZU5hbWVzcGFjZVtlXSh0KX1zdGF0aWMgc2lnbmF0dXJlKGUpe3JldHVybiBuZXcgc2lnbmF0dXJlX1NpZ25hdHVyZShlKX19Y29uc3QgSm89aW8uc3R5bGVzaGVldC5pZDtjbGFzcyBTdHlsZXNoZWV0IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKEpvLCJzdHlsZXNoZWV0IiwhMCl9fWNsYXNzIFN0eWxlc2hlZXROYW1lc3BhY2V7c3RhdGljW3NvXShlLHQpe2lmKFN0eWxlc2hlZXROYW1lc3BhY2UuaGFzT3duUHJvcGVydHkoZSkpcmV0dXJuIFN0eWxlc2hlZXROYW1lc3BhY2VbZV0odCl9c3RhdGljIHN0eWxlc2hlZXQoZSl7cmV0dXJuIG5ldyBTdHlsZXNoZWV0KGUpfX1jb25zdCBRbz1pby54ZHAuaWQ7Y2xhc3MgeGRwX1hkcCBleHRlbmRzIFhGQU9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihRbywieGRwIiwhMCk7dGhpcy51dWlkPWUudXVpZHx8IiI7dGhpcy50aW1lU3RhbXA9ZS50aW1lU3RhbXB8fCIiO3RoaXMuY29uZmlnPW51bGw7dGhpcy5jb25uZWN0aW9uU2V0PW51bGw7dGhpcy5kYXRhc2V0cz1udWxsO3RoaXMubG9jYWxlU2V0PW51bGw7dGhpcy5zdHlsZXNoZWV0PW5ldyBYRkFPYmplY3RBcnJheTt0aGlzLnRlbXBsYXRlPW51bGx9W0VpXShlKXtjb25zdCB0PWlvW2VbRGldXTtyZXR1cm4gdCYmZVtIaV09PT10LmlkfX1jbGFzcyBYZHBOYW1lc3BhY2V7c3RhdGljW3NvXShlLHQpe2lmKFhkcE5hbWVzcGFjZS5oYXNPd25Qcm9wZXJ0eShlKSlyZXR1cm4gWGRwTmFtZXNwYWNlW2VdKHQpfXN0YXRpYyB4ZHAoZSl7cmV0dXJuIG5ldyB4ZHBfWGRwKGUpfX1jb25zdCBabz1pby54aHRtbC5pZCxlbD1TeW1ib2woKSx0bD1uZXcgU2V0KFsiY29sb3IiLCJmb250IiwiZm9udC1mYW1pbHkiLCJmb250LXNpemUiLCJmb250LXN0cmV0Y2giLCJmb250LXN0eWxlIiwiZm9udC13ZWlnaHQiLCJtYXJnaW4iLCJtYXJnaW4tYm90dG9tIiwibWFyZ2luLWxlZnQiLCJtYXJnaW4tcmlnaHQiLCJtYXJnaW4tdG9wIiwibGV0dGVyLXNwYWNpbmciLCJsaW5lLWhlaWdodCIsIm9ycGhhbnMiLCJwYWdlLWJyZWFrLWFmdGVyIiwicGFnZS1icmVhay1iZWZvcmUiLCJwYWdlLWJyZWFrLWluc2lkZSIsInRhYi1pbnRlcnZhbCIsInRhYi1zdG9wIiwidGV4dC1hbGlnbiIsInRleHQtZGVjb3JhdGlvbiIsInRleHQtaW5kZW50IiwidmVydGljYWwtYWxpZ24iLCJ3aWRvd3MiLCJrZXJuaW5nLW1vZGUiLCJ4ZmEtZm9udC1ob3Jpem9udGFsLXNjYWxlIiwieGZhLWZvbnQtdmVydGljYWwtc2NhbGUiLCJ4ZmEtc3BhY2VydW4iLCJ4ZmEtdGFiLXN0b3BzIl0pLG5sPW5ldyBNYXAoW1sicGFnZS1icmVhay1hZnRlciIsImJyZWFrQWZ0ZXIiXSxbInBhZ2UtYnJlYWstYmVmb3JlIiwiYnJlYWtCZWZvcmUiXSxbInBhZ2UtYnJlYWstaW5zaWRlIiwiYnJlYWtJbnNpZGUiXSxbImtlcm5pbmctbW9kZSIsZT0+Im5vbmUiPT09ZT8ibm9uZSI6Im5vcm1hbCJdLFsieGZhLWZvbnQtaG9yaXpvbnRhbC1zY2FsZSIsZT0+YHNjYWxlWCgke01hdGgubWF4KDAscGFyc2VJbnQoZSkvMTAwKS50b0ZpeGVkKDIpfSlgXSxbInhmYS1mb250LXZlcnRpY2FsLXNjYWxlIixlPT5gc2NhbGVZKCR7TWF0aC5tYXgoMCxwYXJzZUludChlKS8xMDApLnRvRml4ZWQoMil9KWBdLFsieGZhLXNwYWNlcnVuIiwiIl0sWyJ4ZmEtdGFiLXN0b3BzIiwiIl0sWyJmb250LXNpemUiLChlLHQpPT5tZWFzdXJlVG9TdHJpbmcoLjk5KihlPXQuZm9udFNpemU9TWF0aC5hYnMoZ2V0TWVhc3VyZW1lbnQoZSkpKSldLFsibGV0dGVyLXNwYWNpbmciLGU9Pm1lYXN1cmVUb1N0cmluZyhnZXRNZWFzdXJlbWVudChlKSldLFsibGluZS1oZWlnaHQiLGU9Pm1lYXN1cmVUb1N0cmluZyhnZXRNZWFzdXJlbWVudChlKSldLFsibWFyZ2luIixlPT5tZWFzdXJlVG9TdHJpbmcoZ2V0TWVhc3VyZW1lbnQoZSkpXSxbIm1hcmdpbi1ib3R0b20iLGU9Pm1lYXN1cmVUb1N0cmluZyhnZXRNZWFzdXJlbWVudChlKSldLFsibWFyZ2luLWxlZnQiLGU9Pm1lYXN1cmVUb1N0cmluZyhnZXRNZWFzdXJlbWVudChlKSldLFsibWFyZ2luLXJpZ2h0IixlPT5tZWFzdXJlVG9TdHJpbmcoZ2V0TWVhc3VyZW1lbnQoZSkpXSxbIm1hcmdpbi10b3AiLGU9Pm1lYXN1cmVUb1N0cmluZyhnZXRNZWFzdXJlbWVudChlKSldLFsidGV4dC1pbmRlbnQiLGU9Pm1lYXN1cmVUb1N0cmluZyhnZXRNZWFzdXJlbWVudChlKSldLFsiZm9udC1mYW1pbHkiLGU9PmVdLFsidmVydGljYWwtYWxpZ24iLGU9Pm1lYXN1cmVUb1N0cmluZyhnZXRNZWFzdXJlbWVudChlKSldXSksYWw9L1xzKy9nLHJsPS9bXHJcbl0rL2csc2w9L1xyXG4/L2c7ZnVuY3Rpb24gbWFwU3R5bGUoZSx0LG4pe2NvbnN0IGE9T2JqZWN0LmNyZWF0ZShudWxsKTtpZighZSlyZXR1cm4gYTtjb25zdCByPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGNvbnN0W3Qsbl1vZiBlLnNwbGl0KCI7IikubWFwKGU9PmUuc3BsaXQoIjoiLDIpKSl7Y29uc3QgZT1ubC5nZXQodCk7aWYoIiI9PT1lKWNvbnRpbnVlO2xldCBzPW47ZSYmKHM9InN0cmluZyI9PXR5cGVvZiBlP2U6ZShuLHIpKTt0LmVuZHNXaXRoKCJzY2FsZSIpP2EudHJhbnNmb3JtPWEudHJhbnNmb3JtP2Ake2FbdF19ICR7c31gOnM6YVt0LnJlcGxhY2VBbGwoLy0oW2EtekEtWl0pL2csKGUsdCk9PnQudG9VcHBlckNhc2UoKSldPXN9YS5mb250RmFtaWx5JiZzZXRGb250RmFtaWx5KHt0eXBlZmFjZTphLmZvbnRGYW1pbHksd2VpZ2h0OmEuZm9udFdlaWdodHx8Im5vcm1hbCIscG9zdHVyZTphLmZvbnRTdHlsZXx8Im5vcm1hbCIsc2l6ZTpyLmZvbnRTaXplfHwwfSx0LHRbamldLmZvbnRGaW5kZXIsYSk7aWYobiYmYS52ZXJ0aWNhbEFsaWduJiYiMHB4IiE9PWEudmVydGljYWxBbGlnbiYmYS5mb250U2l6ZSl7Y29uc3QgZT0uNTgzLHQ9LjMzMyxuPWdldE1lYXN1cmVtZW50KGEuZm9udFNpemUpO2EuZm9udFNpemU9bWVhc3VyZVRvU3RyaW5nKG4qZSk7YS52ZXJ0aWNhbEFsaWduPW1lYXN1cmVUb1N0cmluZyhNYXRoLnNpZ24oZ2V0TWVhc3VyZW1lbnQoYS52ZXJ0aWNhbEFsaWduKSkqbip0KX1uJiZhLmZvbnRTaXplJiYoYS5mb250U2l6ZT1gY2FsYygke2EuZm9udFNpemV9ICogdmFyKC0tdG90YWwtc2NhbGUtZmFjdG9yKSlgKTtmaXhUZXh0SW5kZW50KGEpO3JldHVybiBhfWNvbnN0IGlsPW5ldyBTZXQoWyJib2R5IiwiaHRtbCJdKTtjbGFzcyBYaHRtbE9iamVjdCBleHRlbmRzIFhtbE9iamVjdHtjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKFpvLHQpO3RoaXNbZWxdPSExO3RoaXMuc3R5bGU9ZS5zdHlsZXx8IiJ9W1ZzXShlKXtzdXBlcltWc10oZSk7dGhpcy5zdHlsZT1mdW5jdGlvbiBjaGVja1N0eWxlKGUpe3JldHVybiBlLnN0eWxlP2Uuc3R5bGUuc3BsaXQoIjsiKS5maWx0ZXIoZT0+ISFlLnRyaW0oKSkubWFwKGU9PmUuc3BsaXQoIjoiLDIpLm1hcChlPT5lLnRyaW0oKSkpLmZpbHRlcigoW3Qsbl0pPT57ImZvbnQtZmFtaWx5Ij09PXQmJmVbamldLnVzZWRUeXBlZmFjZXMuYWRkKG4pO3JldHVybiB0bC5oYXModCl9KS5tYXAoZT0+ZS5qb2luKCI6IikpLmpvaW4oIjsiKToiIn0odGhpcyl9W1VzXSgpe3JldHVybiFpbC5oYXModGhpc1tEaV0pfVtOaV0oZSx0PSExKXtpZih0KXRoaXNbZWxdPSEwO2Vsc2V7ZT1lLnJlcGxhY2VBbGwocmwsIiIpO3RoaXMuc3R5bGUuaW5jbHVkZXMoInhmYS1zcGFjZXJ1bjp5ZXMiKXx8KGU9ZS5yZXBsYWNlQWxsKGFsLCIgIikpfWUmJih0aGlzW1FzXSs9ZSl9W3ppXShlLHQ9ITApe2NvbnN0IG49T2JqZWN0LmNyZWF0ZShudWxsKSxhPXt0b3A6TmFOLGJvdHRvbTpOYU4sbGVmdDpOYU4scmlnaHQ6TmFOfTtsZXQgcj1udWxsO2Zvcihjb25zdFtlLHRdb2YgdGhpcy5zdHlsZS5zcGxpdCgiOyIpLm1hcChlPT5lLnNwbGl0KCI6IiwyKSkpc3dpdGNoKGUpe2Nhc2UiZm9udC1mYW1pbHkiOm4udHlwZWZhY2U9c3RyaXBRdW90ZXModCk7YnJlYWs7Y2FzZSJmb250LXNpemUiOm4uc2l6ZT1nZXRNZWFzdXJlbWVudCh0KTticmVhaztjYXNlImZvbnQtd2VpZ2h0IjpuLndlaWdodD10O2JyZWFrO2Nhc2UiZm9udC1zdHlsZSI6bi5wb3N0dXJlPXQ7YnJlYWs7Y2FzZSJsZXR0ZXItc3BhY2luZyI6bi5sZXR0ZXJTcGFjaW5nPWdldE1lYXN1cmVtZW50KHQpO2JyZWFrO2Nhc2UibWFyZ2luIjpjb25zdCBlPXQuc3BsaXQoLyBcdC8pLm1hcChlPT5nZXRNZWFzdXJlbWVudChlKSk7c3dpdGNoKGUubGVuZ3RoKXtjYXNlIDE6YS50b3A9YS5ib3R0b209YS5sZWZ0PWEucmlnaHQ9ZVswXTticmVhaztjYXNlIDI6YS50b3A9YS5ib3R0b209ZVswXTthLmxlZnQ9YS5yaWdodD1lWzFdO2JyZWFrO2Nhc2UgMzphLnRvcD1lWzBdO2EuYm90dG9tPWVbMl07YS5sZWZ0PWEucmlnaHQ9ZVsxXTticmVhaztjYXNlIDQ6YS50b3A9ZVswXTthLmxlZnQ9ZVsxXTthLmJvdHRvbT1lWzJdO2EucmlnaHQ9ZVszXX1icmVhaztjYXNlIm1hcmdpbi10b3AiOmEudG9wPWdldE1lYXN1cmVtZW50KHQpO2JyZWFrO2Nhc2UibWFyZ2luLWJvdHRvbSI6YS5ib3R0b209Z2V0TWVhc3VyZW1lbnQodCk7YnJlYWs7Y2FzZSJtYXJnaW4tbGVmdCI6YS5sZWZ0PWdldE1lYXN1cmVtZW50KHQpO2JyZWFrO2Nhc2UibWFyZ2luLXJpZ2h0IjphLnJpZ2h0PWdldE1lYXN1cmVtZW50KHQpO2JyZWFrO2Nhc2UibGluZS1oZWlnaHQiOnI9Z2V0TWVhc3VyZW1lbnQodCl9ZS5wdXNoRGF0YShuLGEscik7aWYodGhpc1tRc10pZS5hZGRTdHJpbmcodGhpc1tRc10pO2Vsc2UgZm9yKGNvbnN0IHQgb2YgdGhpc1ttaV0oKSkiI3RleHQiIT09dFtEaV0/dFt6aV0oZSk6ZS5hZGRTdHJpbmcodFtRc10pO3QmJmUucG9wRm9udCgpfVt0b10oZSl7Y29uc3QgdD1bXTt0aGlzW3RpXT17Y2hpbGRyZW46dH07dGhpc1tLc10oe30pO2lmKDA9PT10Lmxlbmd0aCYmIXRoaXNbUXNdKXJldHVybiBIVE1MUmVzdWx0LkVNUFRZO2xldCBuO249dGhpc1tlbF0/dGhpc1tRc10/dGhpc1tRc10ucmVwbGFjZUFsbChzbCwiXG4iKTp2b2lkIDA6dGhpc1tRc118fHZvaWQgMDtyZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOnRoaXNbRGldLGF0dHJpYnV0ZXM6e2hyZWY6dGhpcy5ocmVmLHN0eWxlOm1hcFN0eWxlKHRoaXMuc3R5bGUsdGhpcyx0aGlzW2VsXSl9LGNoaWxkcmVuOnQsdmFsdWU6bn0pfX1jbGFzcyBBIGV4dGVuZHMgWGh0bWxPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwiYSIpO3RoaXMuaHJlZj1maXhVUkwoZS5ocmVmKXx8IiJ9fWNsYXNzIEIgZXh0ZW5kcyBYaHRtbE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlLCJiIil9W3ppXShlKXtlLnB1c2hGb250KHt3ZWlnaHQ6ImJvbGQifSk7c3VwZXJbemldKGUpO2UucG9wRm9udCgpfX1jbGFzcyBCb2R5IGV4dGVuZHMgWGh0bWxPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwiYm9keSIpfVt0b10oZSl7Y29uc3QgdD1zdXBlclt0b10oZSkse2h0bWw6bn09dDtpZighbilyZXR1cm4gSFRNTFJlc3VsdC5FTVBUWTtuLm5hbWU9ImRpdiI7bi5hdHRyaWJ1dGVzLmNsYXNzPVsieGZhUmljaCJdO3JldHVybiB0fX1jbGFzcyBCciBleHRlbmRzIFhodG1sT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUsImJyIil9W1ppXSgpe3JldHVybiJcbiJ9W3ppXShlKXtlLmFkZFN0cmluZygiXG4iKX1bdG9dKGUpe3JldHVybiBIVE1MUmVzdWx0LnN1Y2Nlc3Moe25hbWU6ImJyIn0pfX1jbGFzcyBIdG1sIGV4dGVuZHMgWGh0bWxPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwiaHRtbCIpfVt0b10oZSl7Y29uc3QgdD1bXTt0aGlzW3RpXT17Y2hpbGRyZW46dH07dGhpc1tLc10oe30pO2lmKDA9PT10Lmxlbmd0aClyZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6e2NsYXNzOlsieGZhUmljaCJdLHN0eWxlOnt9fSx2YWx1ZTp0aGlzW1FzXXx8IiJ9KTtpZigxPT09dC5sZW5ndGgpe2NvbnN0IGU9dFswXTtpZihlLmF0dHJpYnV0ZXM/LmNsYXNzLmluY2x1ZGVzKCJ4ZmFSaWNoIikpcmV0dXJuIEhUTUxSZXN1bHQuc3VjY2VzcyhlKX1yZXR1cm4gSFRNTFJlc3VsdC5zdWNjZXNzKHtuYW1lOiJkaXYiLGF0dHJpYnV0ZXM6e2NsYXNzOlsieGZhUmljaCJdLHN0eWxlOnt9fSxjaGlsZHJlbjp0fSl9fWNsYXNzIEkgZXh0ZW5kcyBYaHRtbE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlLCJpIil9W3ppXShlKXtlLnB1c2hGb250KHtwb3N0dXJlOiJpdGFsaWMifSk7c3VwZXJbemldKGUpO2UucG9wRm9udCgpfX1jbGFzcyBMaSBleHRlbmRzIFhodG1sT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUsImxpIil9fWNsYXNzIE9sIGV4dGVuZHMgWGh0bWxPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwib2wiKX19Y2xhc3MgUCBleHRlbmRzIFhodG1sT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUsInAiKX1bemldKGUpe3N1cGVyW3ppXShlLCExKTtlLmFkZFN0cmluZygiXG4iKTtlLmFkZFBhcmEoKTtlLnBvcEZvbnQoKX1bWmldKCl7cmV0dXJuIHRoaXNbYmldKClbbWldKCkuYXQoLTEpPT09dGhpcz9zdXBlcltaaV0oKTpzdXBlcltaaV0oKSsiXG4ifX1jbGFzcyBTcGFuIGV4dGVuZHMgWGh0bWxPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwic3BhbiIpfX1jbGFzcyBTdWIgZXh0ZW5kcyBYaHRtbE9iamVjdHtjb25zdHJ1Y3RvcihlKXtzdXBlcihlLCJzdWIiKX19Y2xhc3MgU3VwIGV4dGVuZHMgWGh0bWxPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwic3VwIil9fWNsYXNzIFVsIGV4dGVuZHMgWGh0bWxPYmplY3R7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSwidWwiKX19Y2xhc3MgWGh0bWxOYW1lc3BhY2V7c3RhdGljW3NvXShlLHQpe2lmKFhodG1sTmFtZXNwYWNlLmhhc093blByb3BlcnR5KGUpKXJldHVybiBYaHRtbE5hbWVzcGFjZVtlXSh0KX1zdGF0aWMgYShlKXtyZXR1cm4gbmV3IEEoZSl9c3RhdGljIGIoZSl7cmV0dXJuIG5ldyBCKGUpfXN0YXRpYyBib2R5KGUpe3JldHVybiBuZXcgQm9keShlKX1zdGF0aWMgYnIoZSl7cmV0dXJuIG5ldyBCcihlKX1zdGF0aWMgaHRtbChlKXtyZXR1cm4gbmV3IEh0bWwoZSl9c3RhdGljIGkoZSl7cmV0dXJuIG5ldyBJKGUpfXN0YXRpYyBsaShlKXtyZXR1cm4gbmV3IExpKGUpfXN0YXRpYyBvbChlKXtyZXR1cm4gbmV3IE9sKGUpfXN0YXRpYyBwKGUpe3JldHVybiBuZXcgUChlKX1zdGF0aWMgc3BhbihlKXtyZXR1cm4gbmV3IFNwYW4oZSl9c3RhdGljIHN1YihlKXtyZXR1cm4gbmV3IFN1YihlKX1zdGF0aWMgc3VwKGUpe3JldHVybiBuZXcgU3VwKGUpfXN0YXRpYyB1bChlKXtyZXR1cm4gbmV3IFVsKGUpfX1jb25zdCBvbD17Y29uZmlnOkNvbmZpZ05hbWVzcGFjZSxjb25uZWN0aW9uOkNvbm5lY3Rpb25TZXROYW1lc3BhY2UsZGF0YXNldHM6RGF0YXNldHNOYW1lc3BhY2UsbG9jYWxlU2V0OkxvY2FsZVNldE5hbWVzcGFjZSxzaWduYXR1cmU6U2lnbmF0dXJlTmFtZXNwYWNlLHN0eWxlc2hlZXQ6U3R5bGVzaGVldE5hbWVzcGFjZSx0ZW1wbGF0ZTpUZW1wbGF0ZU5hbWVzcGFjZSx4ZHA6WGRwTmFtZXNwYWNlLHhodG1sOlhodG1sTmFtZXNwYWNlfTtjbGFzcyBVbmtub3duTmFtZXNwYWNle2NvbnN0cnVjdG9yKGUpe3RoaXMubmFtZXNwYWNlSWQ9ZX1bc29dKGUsdCl7cmV0dXJuIG5ldyBYbWxPYmplY3QodGhpcy5uYW1lc3BhY2VJZCxlLHQpfX1jbGFzcyBSb290IGV4dGVuZHMgWEZBT2JqZWN0e2NvbnN0cnVjdG9yKGUpe3N1cGVyKC0xLCJyb290IixPYmplY3QuY3JlYXRlKG51bGwpKTt0aGlzLmVsZW1lbnQ9bnVsbDt0aGlzW3lpXT1lfVtQaV0oZSl7dGhpcy5lbGVtZW50PWU7cmV0dXJuITB9W25pXSgpe3N1cGVyW25pXSgpO2lmKHRoaXMuZWxlbWVudC50ZW1wbGF0ZSBpbnN0YW5jZW9mIFRlbXBsYXRlKXt0aGlzW3lpXS5zZXQoS2ksdGhpcy5lbGVtZW50KTt0aGlzLmVsZW1lbnQudGVtcGxhdGVbVmldKHRoaXNbeWldKTt0aGlzLmVsZW1lbnQudGVtcGxhdGVbeWldPXRoaXNbeWldfX19Y2xhc3MgRW1wdHkgZXh0ZW5kcyBYRkFPYmplY3R7Y29uc3RydWN0b3IoKXtzdXBlcigtMSwiIixPYmplY3QuY3JlYXRlKG51bGwpKX1bUGldKGUpe3JldHVybiExfX1jbGFzcyBCdWlsZGVye2NvbnN0cnVjdG9yKGU9bnVsbCl7dGhpcy5fbmFtZXNwYWNlU3RhY2s9W107dGhpcy5fbnNBZ25vc3RpY0xldmVsPTA7dGhpcy5fbmFtZXNwYWNlUHJlZml4ZXM9bmV3IE1hcDt0aGlzLl9uYW1lc3BhY2VzPW5ldyBNYXA7dGhpcy5fbmV4dE5zSWQ9TWF0aC5tYXgoLi4uT2JqZWN0LnZhbHVlcyhpbykubWFwKCh7aWQ6ZX0pPT5lKSk7dGhpcy5fY3VycmVudE5hbWVzcGFjZT1lfHxuZXcgVW5rbm93bk5hbWVzcGFjZSgrK3RoaXMuX25leHROc0lkKX1idWlsZFJvb3QoZSl7cmV0dXJuIG5ldyBSb290KGUpfWJ1aWxkKHtuc1ByZWZpeDplLG5hbWU6dCxhdHRyaWJ1dGVzOm4sbmFtZXNwYWNlOmEscHJlZml4ZXM6cn0pe2NvbnN0IHM9bnVsbCE9PWE7aWYocyl7dGhpcy5fbmFtZXNwYWNlU3RhY2sucHVzaCh0aGlzLl9jdXJyZW50TmFtZXNwYWNlKTt0aGlzLl9jdXJyZW50TmFtZXNwYWNlPXRoaXMuX3NlYXJjaE5hbWVzcGFjZShhKX1yJiZ0aGlzLl9hZGROYW1lc3BhY2VQcmVmaXgocik7aWYobi5oYXNPd25Qcm9wZXJ0eShNaSkpe2NvbnN0IGU9b2wuZGF0YXNldHMsdD1uW01pXTtsZXQgYT1udWxsO2Zvcihjb25zdFtuLHJdb2YgT2JqZWN0LmVudHJpZXModCkpe2lmKHRoaXMuX2dldE5hbWVzcGFjZVRvVXNlKG4pPT09ZSl7YT17eGZhOnJ9O2JyZWFrfX1hP25bTWldPWE6ZGVsZXRlIG5bTWldfWNvbnN0IGk9dGhpcy5fZ2V0TmFtZXNwYWNlVG9Vc2UoZSksbz1pPy5bc29dKHQsbil8fG5ldyBFbXB0eTtvW0lpXSgpJiZ0aGlzLl9uc0Fnbm9zdGljTGV2ZWwrKzsoc3x8cnx8b1tJaV0oKSkmJihvWyRzXT17aGFzTmFtZXNwYWNlOnMscHJlZml4ZXM6cixuc0Fnbm9zdGljOm9bSWldKCl9KTtyZXR1cm4gb31pc05zQWdub3N0aWMoKXtyZXR1cm4gdGhpcy5fbnNBZ25vc3RpY0xldmVsPjB9X3NlYXJjaE5hbWVzcGFjZShlKXtsZXQgdD10aGlzLl9uYW1lc3BhY2VzLmdldChlKTtpZih0KXJldHVybiB0O2Zvcihjb25zdFtuLHtjaGVjazphfV1vZiBPYmplY3QuZW50cmllcyhpbykpaWYoYShlKSl7dD1vbFtuXTtpZih0KXt0aGlzLl9uYW1lc3BhY2VzLnNldChlLHQpO3JldHVybiB0fWJyZWFrfXQ9bmV3IFVua25vd25OYW1lc3BhY2UoKyt0aGlzLl9uZXh0TnNJZCk7dGhpcy5fbmFtZXNwYWNlcy5zZXQoZSx0KTtyZXR1cm4gdH1fYWRkTmFtZXNwYWNlUHJlZml4KGUpe2Zvcihjb25zdHtwcmVmaXg6dCx2YWx1ZTpufW9mIGUpe2NvbnN0IGU9dGhpcy5fc2VhcmNoTmFtZXNwYWNlKG4pO3RoaXMuX25hbWVzcGFjZVByZWZpeGVzLmdldE9ySW5zZXJ0Q29tcHV0ZWQodCxtYWtlQXJyKS5wdXNoKGUpfX1fZ2V0TmFtZXNwYWNlVG9Vc2UoZSl7aWYoIWUpcmV0dXJuIHRoaXMuX2N1cnJlbnROYW1lc3BhY2U7Y29uc3QgdD10aGlzLl9uYW1lc3BhY2VQcmVmaXhlcy5nZXQoZSk7aWYodD8ubGVuZ3RoPjApcmV0dXJuIHQuYXQoLTEpO3dhcm4oYFVua25vd24gbmFtZXNwYWNlIHByZWZpeDogJHtlfS5gKTtyZXR1cm4gbnVsbH1jbGVhbihlKXtjb25zdHtoYXNOYW1lc3BhY2U6dCxwcmVmaXhlczpuLG5zQWdub3N0aWM6YX09ZTt0JiYodGhpcy5fY3VycmVudE5hbWVzcGFjZT10aGlzLl9uYW1lc3BhY2VTdGFjay5wb3AoKSk7biYmbi5mb3JFYWNoKCh7cHJlZml4OmV9KT0+e3RoaXMuX25hbWVzcGFjZVByZWZpeGVzLmdldChlKS5wb3AoKX0pO2EmJnRoaXMuX25zQWdub3N0aWNMZXZlbC0tfX1jbGFzcyBYRkFQYXJzZXIgZXh0ZW5kcyBYTUxQYXJzZXJCYXNle2NvbnN0cnVjdG9yKGU9bnVsbCx0PSExKXtzdXBlcigpO3RoaXMuX2J1aWxkZXI9bmV3IEJ1aWxkZXIoZSk7dGhpcy5fc3RhY2s9W107dGhpcy5fZ2xvYmFsRGF0YT17dXNlZFR5cGVmYWNlczpuZXcgU2V0fTt0aGlzLl9pZHM9bmV3IE1hcDt0aGlzLl9jdXJyZW50PXRoaXMuX2J1aWxkZXIuYnVpbGRSb290KHRoaXMuX2lkcyk7dGhpcy5fZXJyb3JDb2RlPUZzO3RoaXMuX3doaXRlUmVnZXg9L15ccyskLzt0aGlzLl9uYnNwcz0vXHhhMCsvZzt0aGlzLl9yaWNoVGV4dD10fXBhcnNlKGUpe3RoaXMucGFyc2VYbWwoZSk7aWYodGhpcy5fZXJyb3JDb2RlPT09RnMpe3RoaXMuX2N1cnJlbnRbbmldKCk7cmV0dXJuIHRoaXMuX2N1cnJlbnQuZWxlbWVudH19b25UZXh0KGUpe2U9ZS5yZXBsYWNlKHRoaXMuX25ic3BzLGU9PmUuc2xpY2UoMSkrIiAiKTt0aGlzLl9yaWNoVGV4dHx8dGhpcy5fY3VycmVudFtVc10oKT90aGlzLl9jdXJyZW50W05pXShlLHRoaXMuX3JpY2hUZXh0KTp0aGlzLl93aGl0ZVJlZ2V4LnRlc3QoZSl8fHRoaXMuX2N1cnJlbnRbTmldKGUudHJpbSgpKX1vbkNkYXRhKGUpe3RoaXMuX2N1cnJlbnRbTmldKGUpfV9ta0F0dHJpYnV0ZXMoZSx0KXtsZXQgbj1udWxsLGE9bnVsbDtjb25zdCByPU9iamVjdC5jcmVhdGUoe30pO2Zvcihjb25zdHtuYW1lOnMsdmFsdWU6aX1vZiBlKWlmKCJ4bWxucyI9PT1zKW4/d2FybihgWEZBIC0gbXVsdGlwbGUgbmFtZXNwYWNlIGRlZmluaXRpb24gaW4gPCR7dH0+YCk6bj1pO2Vsc2UgaWYocy5zdGFydHNXaXRoKCJ4bWxuczoiKSl7Y29uc3QgZT1zLnN1YnN0cmluZyg2KTthPz89W107YS5wdXNoKHtwcmVmaXg6ZSx2YWx1ZTppfSl9ZWxzZXtjb25zdCBlPXMuaW5kZXhPZigiOiIpO2lmKC0xPT09ZSlyW3NdPWk7ZWxzZXtjb25zdCB0PXJbTWldPz89T2JqZWN0LmNyZWF0ZShudWxsKSxbbixhXT1bcy5zbGljZSgwLGUpLHMuc2xpY2UoZSsxKV07KHRbbl18fD1PYmplY3QuY3JlYXRlKG51bGwpKVthXT1pfX1yZXR1cm5bbixhLHJdfV9nZXROYW1lQW5kUHJlZml4KGUsdCl7Y29uc3Qgbj1lLmluZGV4T2YoIjoiKTtyZXR1cm4tMT09PW4/W2UsbnVsbF06W2Uuc3Vic3RyaW5nKG4rMSksdD8iIjplLnN1YnN0cmluZygwLG4pXX1vbkJlZ2luRWxlbWVudChlLHQsbil7Y29uc3RbYSxyLHNdPXRoaXMuX21rQXR0cmlidXRlcyh0LGUpLFtpLG9dPXRoaXMuX2dldE5hbWVBbmRQcmVmaXgoZSx0aGlzLl9idWlsZGVyLmlzTnNBZ25vc3RpYygpKSxsPXRoaXMuX2J1aWxkZXIuYnVpbGQoe25zUHJlZml4Om8sbmFtZTppLGF0dHJpYnV0ZXM6cyxuYW1lc3BhY2U6YSxwcmVmaXhlczpyfSk7bFtqaV09dGhpcy5fZ2xvYmFsRGF0YTtpZihuKXtsW25pXSgpO3RoaXMuX2N1cnJlbnRbUGldKGwpJiZsWyRpXSh0aGlzLl9pZHMpO2xbVnNdKHRoaXMuX2J1aWxkZXIpfWVsc2V7dGhpcy5fc3RhY2sucHVzaCh0aGlzLl9jdXJyZW50KTt0aGlzLl9jdXJyZW50PWx9fW9uRW5kRWxlbWVudChlKXtjb25zdCB0PXRoaXMuX2N1cnJlbnQ7aWYodFtTaV0oKSYmInN0cmluZyI9PXR5cGVvZiB0W1FzXSl7Y29uc3QgZT1uZXcgWEZBUGFyc2VyO2UuX2dsb2JhbERhdGE9dGhpcy5fZ2xvYmFsRGF0YTtjb25zdCBuPWUucGFyc2UodFtRc10pO3RbUXNdPW51bGw7dFtQaV0obil9dFtuaV0oKTt0aGlzLl9jdXJyZW50PXRoaXMuX3N0YWNrLnBvcCgpO3RoaXMuX2N1cnJlbnRbUGldKHQpJiZ0WyRpXSh0aGlzLl9pZHMpO3RbVnNdKHRoaXMuX2J1aWxkZXIpfW9uRXJyb3IoZSl7dGhpcy5fZXJyb3JDb2RlPWV9fWNsYXNzIFhGQUZhY3Rvcnl7Y29uc3RydWN0b3IoZSl7dHJ5e3RoaXMucm9vdD0obmV3IFhGQVBhcnNlcikucGFyc2UoWEZBRmFjdG9yeS5fY3JlYXRlRG9jdW1lbnQoZSkpO2NvbnN0IHQ9bmV3IEJpbmRlcih0aGlzLnJvb3QpO3RoaXMuZm9ybT10LmJpbmQoKTt0aGlzLmRhdGFIYW5kbGVyPW5ldyBEYXRhSGFuZGxlcih0aGlzLnJvb3QsdC5nZXREYXRhKCkpO3RoaXMuZm9ybVtqaV0udGVtcGxhdGU9dGhpcy5mb3JtfWNhdGNoKGUpe3dhcm4oYFhGQSAtIGFuIGVycm9yIG9jY3VycmVkIGR1cmluZyBwYXJzaW5nIGFuZCBiaW5kaW5nOiAke2V9YCl9fWlzVmFsaWQoKXtyZXR1cm4hKCF0aGlzLnJvb3R8fCF0aGlzLmZvcm0pfV9jcmVhdGVQYWdlc0hlbHBlcigpe2NvbnN0IGU9dGhpcy5mb3JtW2VvXSgpO3JldHVybiBuZXcgUHJvbWlzZSgodCxuKT0+e2NvbnN0IG5leHRJdGVyYXRpb249KCk9Pnt0cnl7Y29uc3Qgbj1lLm5leHQoKTtuLmRvbmU/dChuLnZhbHVlKTpzZXRUaW1lb3V0KG5leHRJdGVyYXRpb24sMCl9Y2F0Y2goZSl7bihlKX19O3NldFRpbWVvdXQobmV4dEl0ZXJhdGlvbiwwKX0pfWFzeW5jIF9jcmVhdGVQYWdlcygpe3RyeXt0aGlzLnBhZ2VzPWF3YWl0IHRoaXMuX2NyZWF0ZVBhZ2VzSGVscGVyKCk7dGhpcy5kaW1zPXRoaXMucGFnZXMuY2hpbGRyZW4ubWFwKGU9Pntjb25zdHt3aWR0aDp0LGhlaWdodDpufT1lLmF0dHJpYnV0ZXMuc3R5bGU7cmV0dXJuWzAsMCxwYXJzZUludCh0KSxwYXJzZUludChuKV19KX1jYXRjaChlKXt3YXJuKGBYRkEgLSBhbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgbGF5b3V0OiAke2V9YCl9fWdldEJvdW5kaW5nQm94KGUpe3JldHVybiB0aGlzLmRpbXNbZV19YXN5bmMgZ2V0TnVtUGFnZXMoKXt0aGlzLnBhZ2VzfHxhd2FpdCB0aGlzLl9jcmVhdGVQYWdlcygpO3JldHVybiB0aGlzLmRpbXMubGVuZ3RofXNldEltYWdlcyhlKXt0aGlzLmZvcm1bamldLmltYWdlcz1lfXNldEZvbnRzKGUpe3RoaXMuZm9ybVtqaV0uZm9udEZpbmRlcj1uZXcgRm9udEZpbmRlcihlKTtjb25zdCB0PVtdO2ZvcihsZXQgZSBvZiB0aGlzLmZvcm1bamldLnVzZWRUeXBlZmFjZXMpe2U9c3RyaXBRdW90ZXMoZSk7dGhpcy5mb3JtW2ppXS5mb250RmluZGVyLmZpbmQoZSl8fHQucHVzaChlKX1yZXR1cm4gdC5sZW5ndGg+MD90Om51bGx9YXBwZW5kRm9udHMoZSx0KXt0aGlzLmZvcm1bamldLmZvbnRGaW5kZXIuYWRkKGUsdCl9YXN5bmMgZ2V0UGFnZXMoKXt0aGlzLnBhZ2VzfHxhd2FpdCB0aGlzLl9jcmVhdGVQYWdlcygpO2NvbnN0IGU9dGhpcy5wYWdlczt0aGlzLnBhZ2VzPW51bGw7cmV0dXJuIGV9c2VyaWFsaXplRGF0YShlKXtyZXR1cm4gdGhpcy5kYXRhSGFuZGxlci5zZXJpYWxpemUoZSl9c3RhdGljIF9jcmVhdGVEb2N1bWVudChlKXtyZXR1cm4gZVsiL3hkcDp4ZHAiXT9PYmplY3QudmFsdWVzKGUpLmpvaW4oIiIpOmVbInhkcDp4ZHAiXX1zdGF0aWMgZ2V0UmljaFRleHRBc0h0bWwoZSl7aWYoIWV8fCJzdHJpbmciIT10eXBlb2YgZSlyZXR1cm4gbnVsbDt0cnl7bGV0IHQ9bmV3IFhGQVBhcnNlcihYaHRtbE5hbWVzcGFjZSwhMCkucGFyc2UoZSk7aWYoIVsiYm9keSIsInhodG1sIl0uaW5jbHVkZXModFtEaV0pKXtjb25zdCBlPVhodG1sTmFtZXNwYWNlLmJvZHkoe30pO2VbV3NdKHQpO3Q9ZX1jb25zdCBuPXRbdG9dKCk7aWYoIW4uc3VjY2VzcylyZXR1cm4gbnVsbDtjb25zdHtodG1sOmF9PW4se2F0dHJpYnV0ZXM6cn09YTtpZihyKXtyLmNsYXNzJiYoci5jbGFzcz1yLmNsYXNzLmZpbHRlcihlPT4hZS5zdGFydHNXaXRoKCJ4ZmEiKSkpO3IuZGlyPSJhdXRvIn1yZXR1cm57aHRtbDphLHN0cjp0W1ppXSgpfX1jYXRjaChlKXt3YXJuKGBYRkEgLSBhbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgcGFyc2luZyBvZiByaWNoIHRleHQ6ICR7ZX1gKX1yZXR1cm4gbnVsbH19Y2xhc3MgQW5ub3RhdGlvbkZhY3Rvcnl7c3RhdGljIGNyZWF0ZUdsb2JhbHMoZSl7cmV0dXJuIFByb21pc2UuYWxsKFtlLmVuc3VyZUNhdGFsb2coImFjcm9Gb3JtIiksZS5lbnN1cmVEb2MoInhmYURhdGFzZXRzIiksZS5lbnN1cmVDYXRhbG9nKCJzdHJ1Y3RUcmVlUm9vdCIpLGUuZW5zdXJlQ2F0YWxvZygiYmFzZVVybCIpLGUuZW5zdXJlQ2F0YWxvZygiYXR0YWNobWVudHMiKSxlLmVuc3VyZUNhdGFsb2coImdsb2JhbENvbG9yU3BhY2VDYWNoZSIpXSkudGhlbigoW3QsbixhLHIscyxpXSk9Pih7cGRmTWFuYWdlcjplLGFjcm9Gb3JtOnQgaW5zdGFuY2VvZiBEaWN0P3Q6RGljdC5lbXB0eSx4ZmFEYXRhc2V0czpuLHN0cnVjdFRyZWVSb290OmEsYmFzZVVybDpyLGF0dGFjaG1lbnRzOnMsZ2xvYmFsQ29sb3JTcGFjZUNhY2hlOml9KSxlPT57d2FybihgY3JlYXRlR2xvYmFsczogIiR7ZX0iLmApO3JldHVybiBudWxsfSl9c3RhdGljIGFzeW5jIGNyZWF0ZShlLHQsbixhLHIscyxpLG8pe2NvbnN0IGw9cj9hd2FpdCB0aGlzLl9nZXRQYWdlSW5kZXgoZSx0LG4ucGRmTWFuYWdlcik6bnVsbDtyZXR1cm4gbi5wZGZNYW5hZ2VyLmVuc3VyZSh0aGlzLCJfY3JlYXRlIixbZSx0LG4sYSxyLHMsaSxsLG9dKX1zdGF0aWMgX2NyZWF0ZShlLHQsbixhLHI9ITEscz1udWxsLGk9bnVsbCxvPW51bGwsbD1udWxsKXtjb25zdCBmPWUuZmV0Y2hJZlJlZih0KTtpZighKGYgaW5zdGFuY2VvZiBEaWN0KSlyZXR1cm47bGV0IGM9Zi5nZXQoIlN1YnR5cGUiKTtjPWMgaW5zdGFuY2VvZiBOYW1lP2MubmFtZTpudWxsO2lmKGkmJiFpLmhhcyhIW2M/LnRvVXBwZXJDYXNlKCldKSlyZXR1cm4gbnVsbDtjb25zdHthY3JvRm9ybTpoLHBkZk1hbmFnZXI6dX09bixtPXQgaW5zdGFuY2VvZiBSZWY/dC50b1N0cmluZygpOmBhbm5vdF8ke2EuY3JlYXRlT2JqSWQoKX1gLHA9e3hyZWY6ZSxyZWY6dCxkaWN0OmYsc3VidHlwZTpjLGlkOm0sYW5ub3RhdGlvbkdsb2JhbHM6bixjb2xsZWN0RmllbGRzOnIsb3JwaGFuRmllbGRzOnMsbmVlZEFwcGVhcmFuY2VzOiFyJiYhMD09PWguZ2V0KCJOZWVkQXBwZWFyYW5jZXMiKSxwYWdlSW5kZXg6byxldmFsdWF0b3JPcHRpb25zOnUuZXZhbHVhdG9yT3B0aW9ucyxwYWdlUmVmOmx9O3N3aXRjaChjKXtjYXNlIkxpbmsiOnJldHVybiBuZXcgTGlua0Fubm90YXRpb24ocCk7Y2FzZSJUZXh0IjpyZXR1cm4gbmV3IFRleHRBbm5vdGF0aW9uKHApO2Nhc2UiV2lkZ2V0IjpsZXQgZT1nZXRJbmhlcml0YWJsZVByb3BlcnR5KHtkaWN0OmYsa2V5OiJGVCJ9KTtlPWUgaW5zdGFuY2VvZiBOYW1lP2UubmFtZTpudWxsO3N3aXRjaChlKXtjYXNlIlR4IjpyZXR1cm4gbmV3IFRleHRXaWRnZXRBbm5vdGF0aW9uKHApO2Nhc2UiQnRuIjpyZXR1cm4gbmV3IEJ1dHRvbldpZGdldEFubm90YXRpb24ocCk7Y2FzZSJDaCI6cmV0dXJuIG5ldyBDaG9pY2VXaWRnZXRBbm5vdGF0aW9uKHApO2Nhc2UiU2lnIjpyZXR1cm4gbmV3IFNpZ25hdHVyZVdpZGdldEFubm90YXRpb24ocCl9d2FybihgVW5pbXBsZW1lbnRlZCB3aWRnZXQgZmllbGQgdHlwZSAiJHtlfSIsIGZhbGxpbmcgYmFjayB0byBiYXNlIGZpZWxkIHR5cGUuYCk7cmV0dXJuIG5ldyBXaWRnZXRBbm5vdGF0aW9uKHApO2Nhc2UiUG9wdXAiOnJldHVybiBuZXcgUG9wdXBBbm5vdGF0aW9uKHApO2Nhc2UiRnJlZVRleHQiOnJldHVybiBuZXcgRnJlZVRleHRBbm5vdGF0aW9uKHApO2Nhc2UiTGluZSI6cmV0dXJuIG5ldyBMaW5lQW5ub3RhdGlvbihwKTtjYXNlIlNxdWFyZSI6cmV0dXJuIG5ldyBTcXVhcmVBbm5vdGF0aW9uKHApO2Nhc2UiQ2lyY2xlIjpyZXR1cm4gbmV3IENpcmNsZUFubm90YXRpb24ocCk7Y2FzZSJQb2x5TGluZSI6cmV0dXJuIG5ldyBQb2x5bGluZUFubm90YXRpb24ocCk7Y2FzZSJQb2x5Z29uIjpyZXR1cm4gbmV3IFBvbHlnb25Bbm5vdGF0aW9uKHApO2Nhc2UiQ2FyZXQiOnJldHVybiBuZXcgQ2FyZXRBbm5vdGF0aW9uKHApO2Nhc2UiSW5rIjpyZXR1cm4gbmV3IElua0Fubm90YXRpb24ocCk7Y2FzZSJIaWdobGlnaHQiOnJldHVybiBuZXcgSGlnaGxpZ2h0QW5ub3RhdGlvbihwKTtjYXNlIlVuZGVybGluZSI6cmV0dXJuIG5ldyBVbmRlcmxpbmVBbm5vdGF0aW9uKHApO2Nhc2UiU3F1aWdnbHkiOnJldHVybiBuZXcgU3F1aWdnbHlBbm5vdGF0aW9uKHApO2Nhc2UiU3RyaWtlT3V0IjpyZXR1cm4gbmV3IFN0cmlrZU91dEFubm90YXRpb24ocCk7Y2FzZSJTdGFtcCI6cmV0dXJuIG5ldyBTdGFtcEFubm90YXRpb24ocCk7Y2FzZSJGaWxlQXR0YWNobWVudCI6cmV0dXJuIG5ldyBGaWxlQXR0YWNobWVudEFubm90YXRpb24ocCk7ZGVmYXVsdDpyfHx3YXJuKGM/YFVuaW1wbGVtZW50ZWQgYW5ub3RhdGlvbiB0eXBlICIke2N9IiwgZmFsbGluZyBiYWNrIHRvIGJhc2UgYW5ub3RhdGlvbi5gOiJBbm5vdGF0aW9uIGlzIG1pc3NpbmcgdGhlIHJlcXVpcmVkIC9TdWJ0eXBlLiIpO3JldHVybiBuZXcgQW5ub3RhdGlvbihwKX19c3RhdGljIGFzeW5jIF9nZXRQYWdlSW5kZXgoZSx0LG4pe3RyeXtjb25zdCBhPWF3YWl0IGUuZmV0Y2hJZlJlZkFzeW5jKHQpO2lmKCEoYSBpbnN0YW5jZW9mIERpY3QpKXJldHVybi0xO2NvbnN0IHI9YS5nZXRSYXcoIlAiKTtpZihyIGluc3RhbmNlb2YgUmVmKXRyeXtyZXR1cm4gYXdhaXQgbi5lbnN1cmVDYXRhbG9nKCJnZXRQYWdlSW5kZXgiLFtyXSl9Y2F0Y2goZSl7aW5mbyhgX2dldFBhZ2VJbmRleCAtLSBub3QgYSB2YWxpZCBwYWdlIHJlZmVyZW5jZTogIiR7ZX0iLmApfWlmKGEuaGFzKCJLaWRzIikpcmV0dXJuLTE7Y29uc3Qgcz1hd2FpdCBuLmVuc3VyZURvYygibnVtUGFnZXMiKTtmb3IobGV0IGU9MDtlPHM7ZSsrKXtjb25zdCBhPWF3YWl0IG4uZ2V0UGFnZShlKSxyPWF3YWl0IG4uZW5zdXJlKGEsImFubm90YXRpb25zIik7Zm9yKGNvbnN0IG4gb2YgcilpZihuIGluc3RhbmNlb2YgUmVmJiZpc1JlZnNFcXVhbChuLHQpKXJldHVybiBlfX1jYXRjaChlKXt3YXJuKGBfZ2V0UGFnZUluZGV4OiAiJHtlfSIuYCl9cmV0dXJuLTF9c3RhdGljIGdlbmVyYXRlSW1hZ2VzKGUsdCxuKXtpZighbil7d2FybigiZ2VuZXJhdGVJbWFnZXM6IE9mZnNjcmVlbkNhbnZhcyBpcyBub3Qgc3VwcG9ydGVkLCBjYW5ub3Qgc2F2ZSBvciBwcmludCBzb21lIGFubm90YXRpb25zIHdpdGggaW1hZ2VzLiIpO3JldHVybiBudWxsfWxldCBhO2Zvcihjb25zdHtiaXRtYXBJZDpuLGJpdG1hcDpyfW9mIGUpaWYocil7YXx8PW5ldyBNYXA7YS5zZXQobixTdGFtcEFubm90YXRpb24uY3JlYXRlSW1hZ2Uocix0KSl9cmV0dXJuIGF9c3RhdGljIGFzeW5jIHNhdmVOZXdBbm5vdGF0aW9ucyhlLHQsbixhLHIpe2NvbnN0IHM9ZS54cmVmO2xldCBpO2NvbnN0IG89W10se2lzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkOmx9PWUub3B0aW9ucztmb3IoY29uc3QgZiBvZiBuKWlmKCFmLmRlbGV0ZWQpc3dpdGNoKGYuYW5ub3RhdGlvblR5cGUpe2Nhc2UgZzppZighaSl7Y29uc3QgZT1uZXcgRGljdChzKTtlLnNldElmTmFtZSgiQmFzZUZvbnQiLCJIZWx2ZXRpY2EiKTtlLnNldElmTmFtZSgiVHlwZSIsIkZvbnQiKTtlLnNldElmTmFtZSgiU3VidHlwZSIsIlR5cGUxIik7ZS5zZXRJZk5hbWUoIkVuY29kaW5nIiwiV2luQW5zaUVuY29kaW5nIik7aT1zLmdldE5ld1RlbXBvcmFyeVJlZigpO3IucHV0KGkse2RhdGE6ZX0pfW8ucHVzaChGcmVlVGV4dEFubm90YXRpb24uY3JlYXRlTmV3QW5ub3RhdGlvbihzLGYscix7ZXZhbHVhdG9yOmUsdGFzazp0LGJhc2VGb250UmVmOml9KSk7YnJlYWs7Y2FzZSBiOmYucXVhZFBvaW50cz9vLnB1c2goSGlnaGxpZ2h0QW5ub3RhdGlvbi5jcmVhdGVOZXdBbm5vdGF0aW9uKHMsZixyKSk6by5wdXNoKElua0Fubm90YXRpb24uY3JlYXRlTmV3QW5ub3RhdGlvbihzLGYscikpO2JyZWFrO2Nhc2UgajpvLnB1c2goSW5rQW5ub3RhdGlvbi5jcmVhdGVOZXdBbm5vdGF0aW9uKHMsZixyKSk7YnJlYWs7Y2FzZSB3OmNvbnN0IG49bD9hd2FpdChhPy5nZXQoZi5iaXRtYXBJZCkpOm51bGw7aWYobj8uaW1hZ2VTdHJlYW0pe2NvbnN0e2ltYWdlU3RyZWFtOmUsc21hc2tTdHJlYW06dH09bjtpZih0KXtjb25zdCBuPXMuZ2V0TmV3VGVtcG9yYXJ5UmVmKCk7ci5wdXQobix7ZGF0YTp0fSk7ZS5kaWN0LnNldCgiU01hc2siLG4pfWNvbnN0IGE9bi5pbWFnZVJlZj1zLmdldE5ld1RlbXBvcmFyeVJlZigpO3IucHV0KGEse2RhdGE6ZX0pO24uaW1hZ2VTdHJlYW09bi5zbWFza1N0cmVhbT1udWxsfW8ucHVzaChTdGFtcEFubm90YXRpb24uY3JlYXRlTmV3QW5ub3RhdGlvbihzLGYscix7aW1hZ2U6bn0pKTticmVhaztjYXNlIGs6by5wdXNoKFN0YW1wQW5ub3RhdGlvbi5jcmVhdGVOZXdBbm5vdGF0aW9uKHMsZixyLHt9KSl9cmV0dXJue2Fubm90YXRpb25zOihhd2FpdCBQcm9taXNlLmFsbChvKSkuZmxhdCgpfX1zdGF0aWMgYXN5bmMgcHJpbnROZXdBbm5vdGF0aW9ucyhlLHQsbixhLHIpe2lmKCFhKXJldHVybiBudWxsO2NvbnN0e29wdGlvbnM6cyx4cmVmOml9PXQsbz1bXTtmb3IoY29uc3QgbCBvZiBhKWlmKCFsLmRlbGV0ZWQpc3dpdGNoKGwuYW5ub3RhdGlvblR5cGUpe2Nhc2UgZzpvLnB1c2goRnJlZVRleHRBbm5vdGF0aW9uLmNyZWF0ZU5ld1ByaW50QW5ub3RhdGlvbihlLGksbCx7ZXZhbHVhdG9yOnQsdGFzazpuLGV2YWx1YXRvck9wdGlvbnM6c30pKTticmVhaztjYXNlIGI6bC5xdWFkUG9pbnRzP28ucHVzaChIaWdobGlnaHRBbm5vdGF0aW9uLmNyZWF0ZU5ld1ByaW50QW5ub3RhdGlvbihlLGksbCx7ZXZhbHVhdG9yT3B0aW9uczpzfSkpOm8ucHVzaChJbmtBbm5vdGF0aW9uLmNyZWF0ZU5ld1ByaW50QW5ub3RhdGlvbihlLGksbCx7ZXZhbHVhdG9yT3B0aW9uczpzfSkpO2JyZWFrO2Nhc2UgajpvLnB1c2goSW5rQW5ub3RhdGlvbi5jcmVhdGVOZXdQcmludEFubm90YXRpb24oZSxpLGwse2V2YWx1YXRvck9wdGlvbnM6c30pKTticmVhaztjYXNlIHc6Y29uc3QgYT1zLmlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkP2F3YWl0KHI/LmdldChsLmJpdG1hcElkKSk6bnVsbDtpZihhPy5pbWFnZVN0cmVhbSl7Y29uc3R7aW1hZ2VTdHJlYW06ZSxzbWFza1N0cmVhbTp0fT1hO3QmJmUuZGljdC5zZXQoIlNNYXNrIix0KTthLmltYWdlUmVmPW5ldyBKcGVnU3RyZWFtKGUsZS5sZW5ndGgpO2EuaW1hZ2VTdHJlYW09YS5zbWFza1N0cmVhbT1udWxsfW8ucHVzaChTdGFtcEFubm90YXRpb24uY3JlYXRlTmV3UHJpbnRBbm5vdGF0aW9uKGUsaSxsLHtpbWFnZTphLGV2YWx1YXRvck9wdGlvbnM6c30pKTticmVhaztjYXNlIGs6by5wdXNoKFN0YW1wQW5ub3RhdGlvbi5jcmVhdGVOZXdQcmludEFubm90YXRpb24oZSxpLGwse2V2YWx1YXRvck9wdGlvbnM6c30pKX1yZXR1cm4gUHJvbWlzZS5hbGwobyl9fWZ1bmN0aW9uIGdldFJnYkNvbG9yKGUsdD1uZXcgVWludDhDbGFtcGVkQXJyYXkoMykpe2lmKCFBcnJheS5pc0FycmF5KGUpKXJldHVybiB0O2NvbnN0IG49dHx8bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KDMpO3N3aXRjaChlLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBudWxsO2Nhc2UgMTpDb2xvclNwYWNlVXRpbHMuZ3JheS5nZXRSZ2JJdGVtKGUsMCxuLDApO3JldHVybiBuO2Nhc2UgMzpDb2xvclNwYWNlVXRpbHMucmdiLmdldFJnYkl0ZW0oZSwwLG4sMCk7cmV0dXJuIG47Y2FzZSA0OkNvbG9yU3BhY2VVdGlscy5jbXlrLmdldFJnYkl0ZW0oZSwwLG4sMCk7cmV0dXJuIG47ZGVmYXVsdDpyZXR1cm4gdH19ZnVuY3Rpb24gZ2V0UGRmQ29sb3JBcnJheShlLHQ9bnVsbCl7cmV0dXJuIGUmJkFycmF5LmZyb20oZSxlPT5lLzI1NSl8fHR9ZnVuY3Rpb24gZ2V0UXVhZFBvaW50cyhlLHQpe2NvbnN0IG49ZS5nZXRBcnJheSgiUXVhZFBvaW50cyIpO2lmKCFpc051bWJlckFycmF5KG4sbnVsbCl8fDA9PT1uLmxlbmd0aHx8bi5sZW5ndGglOD4wKXJldHVybiBudWxsO2NvbnN0IGE9bmV3IEZsb2F0MzJBcnJheShuLmxlbmd0aCk7Zm9yKGxldCBlPTAscj1uLmxlbmd0aDtlPHI7ZSs9OCl7Y29uc3RbcixzLGksbyxsLGYsYyxoXT1uLnNsaWNlKGUsZSs4KSx1PU1hdGgubWluKHIsaSxsLGMpLG09TWF0aC5tYXgocixpLGwsYykscD1NYXRoLm1pbihzLG8sZixoKSxkPU1hdGgubWF4KHMsbyxmLGgpO2lmKG51bGwhPT10JiYodTx0WzBdfHxtPnRbMl18fHA8dFsxXXx8ZD50WzNdKSlyZXR1cm4gbnVsbDthLnNldChbdSxkLG0sZCx1LHAsbSxwXSxlKX1yZXR1cm4gYX1mdW5jdGlvbiBnZXRUcmFuc2Zvcm1NYXRyaXgoZSx0LG4pe2NvbnN0IGE9bmV3IEZsb2F0MzJBcnJheShbMS8wLDEvMCwtMS8wLC0xLzBdKTtVdGlsLmF4aWFsQWxpZ25lZEJvdW5kaW5nQm94KHQsbixhKTtjb25zdFtyLHMsaSxvXT1hO2lmKHI9PT1pfHxzPT09bylyZXR1cm5bMSwwLDAsMSxlWzBdLGVbMV1dO2NvbnN0IGw9KGVbMl0tZVswXSkvKGktciksZj0oZVszXS1lWzFdKS8oby1zKTtyZXR1cm5bbCwwLDAsZixlWzBdLXIqbCxlWzFdLXMqZl19Y2xhc3MgQW5ub3RhdGlvbntjb25zdHJ1Y3RvcihlKXtjb25zdHthbm5vdGF0aW9uR2xvYmFsczp0LGRpY3Q6bixvcnBoYW5GaWVsZHM6YSxyZWY6cixzdWJ0eXBlOnMseHJlZjppfT1lLG89YT8uZ2V0KHIpO28mJm4uc2V0KCJQYXJlbnQiLG8pO3RoaXMuc2V0VGl0bGUobi5nZXQoIlQiKSk7dGhpcy5zZXRDb250ZW50cyhuLmdldCgiQ29udGVudHMiKSk7dGhpcy5zZXRNb2RpZmljYXRpb25EYXRlKG4uZ2V0KCJNIikpO3RoaXMuc2V0RmxhZ3Mobi5nZXQoIkYiKSk7dGhpcy5zZXRSZWN0YW5nbGUobi5nZXRBcnJheSgiUmVjdCIpKTt0aGlzLnNldENvbG9yKG4uZ2V0QXJyYXkoIkMiKSk7dGhpcy5zZXRCb3JkZXJTdHlsZShuKTt0aGlzLnNldEFwcGVhcmFuY2Uobik7dGhpcy5zZXRPcHRpb25hbENvbnRlbnQobik7Y29uc3QgbD1uLmdldCgiTUsiKTt0aGlzLnNldEJvcmRlckFuZEJhY2tncm91bmRDb2xvcnMobCk7dGhpcy5zZXRSb3RhdGlvbihsLG4pO3RoaXMucmVmPWUucmVmIGluc3RhbmNlb2YgUmVmP2UucmVmOm51bGw7dGhpcy5fc3RyZWFtcz1bXTt0aGlzLmFwcGVhcmFuY2UmJnRoaXMuX3N0cmVhbXMucHVzaCh0aGlzLmFwcGVhcmFuY2UpO2NvbnN0IGY9ISEodGhpcy5mbGFncyZVKSxjPSEhKHRoaXMuZmxhZ3MmWCk7dGhpcy5kYXRhPXthbm5vdGF0aW9uVHlwZTpIW3M/LnRvVXBwZXJDYXNlKCldLGFubm90YXRpb25GbGFnczp0aGlzLmZsYWdzLGJvcmRlclN0eWxlOnRoaXMuYm9yZGVyU3R5bGUsY29sb3I6dGhpcy5jb2xvcixiYWNrZ3JvdW5kQ29sb3I6dGhpcy5iYWNrZ3JvdW5kQ29sb3IsYm9yZGVyQ29sb3I6dGhpcy5ib3JkZXJDb2xvcixyb3RhdGlvbjp0aGlzLnJvdGF0aW9uLGNvbnRlbnRzT2JqOnRoaXMuX2NvbnRlbnRzLGhhc0FwcGVhcmFuY2U6ISF0aGlzLmFwcGVhcmFuY2UsaWQ6ZS5pZCxtb2RpZmljYXRpb25EYXRlOnRoaXMubW9kaWZpY2F0aW9uRGF0ZSxyZWN0OnRoaXMucmVjdGFuZ2xlLHN1YnR5cGU6cyxoYXNPd25DYW52YXM6ITEsbm9Sb3RhdGU6ISEodGhpcy5mbGFncyZfKSxub0hUTUw6ZiYmYyxpc0VkaXRhYmxlOiExLHN0cnVjdFBhcmVudDotMX07aWYodC5zdHJ1Y3RUcmVlUm9vdCl7bGV0IGE9bi5nZXQoIlN0cnVjdFBhcmVudCIpO3RoaXMuZGF0YS5zdHJ1Y3RQYXJlbnQ9YT1OdW1iZXIuaXNJbnRlZ2VyKGEpJiZhPj0wP2E6LTE7dC5zdHJ1Y3RUcmVlUm9vdC5hZGRBbm5vdGF0aW9uSWRUb1BhZ2UoZS5wYWdlUmVmLGEpfWlmKGUuY29sbGVjdEZpZWxkcyl7Y29uc3QgdD1uLmdldCgiS2lkcyIpO2lmKEFycmF5LmlzQXJyYXkodCkpe2NvbnN0IGU9W107Zm9yKGNvbnN0IG4gb2YgdCluIGluc3RhbmNlb2YgUmVmJiZlLnB1c2gobi50b1N0cmluZygpKTswIT09ZS5sZW5ndGgmJih0aGlzLmRhdGEua2lkSWRzPWUpfXRoaXMuZGF0YS5hY3Rpb25zPWNvbGxlY3RBY3Rpb25zKGksbixvZSk7dGhpcy5kYXRhLmZpZWxkTmFtZT10aGlzLl9jb25zdHJ1Y3RGaWVsZE5hbWUobik7dGhpcy5kYXRhLnBhZ2VJbmRleD1lLnBhZ2VJbmRleH1jb25zdCBoPW4uZ2V0KCJJVCIpO2ggaW5zdGFuY2VvZiBOYW1lJiYodGhpcy5kYXRhLml0PWgubmFtZSk7dGhpcy5faXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQ9ZS5ldmFsdWF0b3JPcHRpb25zLmlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkO3RoaXMuX2ZhbGxiYWNrRm9udERpY3Q9bnVsbDt0aGlzLl9uZWVkQXBwZWFyYW5jZXM9ITF9X2hhc0ZsYWcoZSx0KXtyZXR1cm4hIShlJnQpfV9idWlsZEZsYWdzKGUsdCl7bGV0e2ZsYWdzOm59PXRoaXM7aWYodm9pZCAwPT09ZSl7aWYodm9pZCAwPT09dClyZXR1cm47cmV0dXJuIHQ/biZ+ejpuJn5OfHp9aWYoZSl7bnw9ejtyZXR1cm4gdD9uJn5MfE46biZ+TnxMfW4mPX4oTnxMKTtyZXR1cm4gdD9uJn56Om58en1faXNWaWV3YWJsZShlKXtyZXR1cm4hdGhpcy5faGFzRmxhZyhlLEUpJiYhdGhpcy5faGFzRmxhZyhlLEwpfV9pc1ByaW50YWJsZShlKXtyZXR1cm4gdGhpcy5faGFzRmxhZyhlLHopJiYhdGhpcy5faGFzRmxhZyhlLE4pJiYhdGhpcy5faGFzRmxhZyhlLEUpfW11c3RCZVZpZXdlZChlLHQpe2NvbnN0IG49ZT8uZ2V0KHRoaXMuZGF0YS5pZCk/Lm5vVmlldztyZXR1cm4gdm9pZCAwIT09bj8hbjp0aGlzLnZpZXdhYmxlJiYhdGhpcy5faGFzRmxhZyh0aGlzLmZsYWdzLE4pfW11c3RCZVByaW50ZWQoZSl7Y29uc3QgdD1lPy5nZXQodGhpcy5kYXRhLmlkKT8ubm9QcmludDtyZXR1cm4gdm9pZCAwIT09dD8hdDp0aGlzLnByaW50YWJsZX1tdXN0QmVWaWV3ZWRXaGVuRWRpdGluZyhlLHQ9bnVsbCl7cmV0dXJuIGU/IXRoaXMuZGF0YS5pc0VkaXRhYmxlOiF0Py5oYXModGhpcy5kYXRhLmlkKX1nZXQgdmlld2FibGUoKXtyZXR1cm4gbnVsbCE9PXRoaXMuZGF0YS5xdWFkUG9pbnRzJiYoMD09PXRoaXMuZmxhZ3N8fHRoaXMuX2lzVmlld2FibGUodGhpcy5mbGFncykpfWdldCBwcmludGFibGUoKXtyZXR1cm4gbnVsbCE9PXRoaXMuZGF0YS5xdWFkUG9pbnRzJiYoMCE9PXRoaXMuZmxhZ3MmJnRoaXMuX2lzUHJpbnRhYmxlKHRoaXMuZmxhZ3MpKX1fcGFyc2VTdHJpbmdIZWxwZXIoZSl7Y29uc3QgdD0ic3RyaW5nIj09dHlwZW9mIGU/c3RyaW5nVG9QREZTdHJpbmcoZSk6IiI7cmV0dXJue3N0cjp0LGRpcjp0JiYicnRsIj09PWJpZGkodCkuZGlyPyJydGwiOiJsdHIifX1zZXREZWZhdWx0QXBwZWFyYW5jZShlKXtjb25zdHtkaWN0OnQsYW5ub3RhdGlvbkdsb2JhbHM6bn09ZSxhPWdldEluaGVyaXRhYmxlUHJvcGVydHkoe2RpY3Q6dCxrZXk6IkRBIn0pfHxuLmFjcm9Gb3JtLmdldCgiREEiKTt0aGlzLl9kZWZhdWx0QXBwZWFyYW5jZT0ic3RyaW5nIj09dHlwZW9mIGE/YToiIjt0aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhPXBhcnNlRGVmYXVsdEFwcGVhcmFuY2UodGhpcy5fZGVmYXVsdEFwcGVhcmFuY2UpfXNldFRpdGxlKGUpe3RoaXMuX3RpdGxlPXRoaXMuX3BhcnNlU3RyaW5nSGVscGVyKGUpfXNldENvbnRlbnRzKGUpe3RoaXMuX2NvbnRlbnRzPXRoaXMuX3BhcnNlU3RyaW5nSGVscGVyKGUpfXNldE1vZGlmaWNhdGlvbkRhdGUoZSl7dGhpcy5tb2RpZmljYXRpb25EYXRlPSJzdHJpbmciPT10eXBlb2YgZT9lOm51bGx9c2V0RmxhZ3MoZSl7dGhpcy5mbGFncz1OdW1iZXIuaXNJbnRlZ2VyKGUpJiZlPjA/ZTowO3RoaXMuZmxhZ3MmRSYmIkFubm90YXRpb24iIT09dGhpcy5jb25zdHJ1Y3Rvci5uYW1lJiYodGhpcy5mbGFnc149RSl9aGFzRmxhZyhlKXtyZXR1cm4gdGhpcy5faGFzRmxhZyh0aGlzLmZsYWdzLGUpfXNldFJlY3RhbmdsZShlKXt0aGlzLnJlY3RhbmdsZT1sb29rdXBOb3JtYWxSZWN0KGUsWzAsMCwwLDBdKX1zZXRDb2xvcihlKXt0aGlzLmNvbG9yPWdldFJnYkNvbG9yKGUpfXNldExpbmVFbmRpbmdzKGUpe3RoaXMubGluZUVuZGluZ3M9WyJOb25lIiwiTm9uZSJdO2lmKEFycmF5LmlzQXJyYXkoZSkmJjI9PT1lLmxlbmd0aClmb3IobGV0IHQ9MDt0PDI7dCsrKXtjb25zdCBuPWVbdF07aWYobiBpbnN0YW5jZW9mIE5hbWUpc3dpdGNoKG4ubmFtZSl7Y2FzZSJOb25lIjpjb250aW51ZTtjYXNlIlNxdWFyZSI6Y2FzZSJDaXJjbGUiOmNhc2UiRGlhbW9uZCI6Y2FzZSJPcGVuQXJyb3ciOmNhc2UiQ2xvc2VkQXJyb3ciOmNhc2UiQnV0dCI6Y2FzZSJST3BlbkFycm93IjpjYXNlIlJDbG9zZWRBcnJvdyI6Y2FzZSJTbGFzaCI6dGhpcy5saW5lRW5kaW5nc1t0XT1uLm5hbWU7Y29udGludWV9d2FybihgSWdub3JpbmcgaW52YWxpZCBsaW5lRW5kaW5nOiAke259YCl9fXNldFJvdGF0aW9uKGUsdCl7dGhpcy5yb3RhdGlvbj0wO2xldCBuPWUgaW5zdGFuY2VvZiBEaWN0P2UuZ2V0KCJSIil8fDA6dC5nZXQoIlJvdGF0ZSIpfHwwO2lmKE51bWJlci5pc0ludGVnZXIobikmJjAhPT1uKXtuJT0zNjA7bjwwJiYobis9MzYwKTtuJTkwPT0wJiYodGhpcy5yb3RhdGlvbj1uKX19c2V0Qm9yZGVyQW5kQmFja2dyb3VuZENvbG9ycyhlKXtpZihlIGluc3RhbmNlb2YgRGljdCl7dGhpcy5ib3JkZXJDb2xvcj1nZXRSZ2JDb2xvcihlLmdldEFycmF5KCJCQyIpLG51bGwpO3RoaXMuYmFja2dyb3VuZENvbG9yPWdldFJnYkNvbG9yKGUuZ2V0QXJyYXkoIkJHIiksbnVsbCl9ZWxzZSB0aGlzLmJvcmRlckNvbG9yPXRoaXMuYmFja2dyb3VuZENvbG9yPW51bGx9c2V0Qm9yZGVyU3R5bGUoZSl7dGhpcy5ib3JkZXJTdHlsZT1uZXcgQW5ub3RhdGlvbkJvcmRlclN0eWxlO2lmKGUgaW5zdGFuY2VvZiBEaWN0KWlmKGUuaGFzKCJCUyIpKXtjb25zdCB0PWUuZ2V0KCJCUyIpO2lmKHQgaW5zdGFuY2VvZiBEaWN0KXtjb25zdCBlPXQuZ2V0KCJUeXBlIik7aWYoIWV8fGlzTmFtZShlLCJCb3JkZXIiKSl7dGhpcy5ib3JkZXJTdHlsZS5zZXRXaWR0aCh0LmdldCgiVyIpLHRoaXMucmVjdGFuZ2xlKTt0aGlzLmJvcmRlclN0eWxlLnNldFN0eWxlKHQuZ2V0KCJTIikpO3RoaXMuYm9yZGVyU3R5bGUuc2V0RGFzaEFycmF5KHQuZ2V0QXJyYXkoIkQiKSl9fX1lbHNlIGlmKGUuaGFzKCJCb3JkZXIiKSl7Y29uc3QgdD1lLmdldEFycmF5KCJCb3JkZXIiKTtpZihBcnJheS5pc0FycmF5KHQpJiZ0Lmxlbmd0aD49Myl7dGhpcy5ib3JkZXJTdHlsZS5zZXRIb3Jpem9udGFsQ29ybmVyUmFkaXVzKHRbMF0pO3RoaXMuYm9yZGVyU3R5bGUuc2V0VmVydGljYWxDb3JuZXJSYWRpdXModFsxXSk7dGhpcy5ib3JkZXJTdHlsZS5zZXRXaWR0aCh0WzJdLHRoaXMucmVjdGFuZ2xlKTs0PT09dC5sZW5ndGgmJnRoaXMuYm9yZGVyU3R5bGUuc2V0RGFzaEFycmF5KHRbM10sITApfX1lbHNlIHRoaXMuYm9yZGVyU3R5bGUuc2V0V2lkdGgoMCl9c2V0QXBwZWFyYW5jZShlKXt0aGlzLmFwcGVhcmFuY2U9bnVsbDtjb25zdCB0PWUuZ2V0KCJBUCIpO2lmKCEodCBpbnN0YW5jZW9mIERpY3QpKXJldHVybjtjb25zdCBuPXQuZ2V0KCJOIik7aWYobiBpbnN0YW5jZW9mIEJhc2VTdHJlYW0pe3RoaXMuYXBwZWFyYW5jZT1uO3JldHVybn1pZighKG4gaW5zdGFuY2VvZiBEaWN0KSlyZXR1cm47Y29uc3QgYT1lLmdldCgiQVMiKTtpZighKGEgaW5zdGFuY2VvZiBOYW1lJiZuLmhhcyhhLm5hbWUpKSlyZXR1cm47Y29uc3Qgcj1uLmdldChhLm5hbWUpO3IgaW5zdGFuY2VvZiBCYXNlU3RyZWFtJiYodGhpcy5hcHBlYXJhbmNlPXIpfXNldE9wdGlvbmFsQ29udGVudChlKXt0aGlzLm9jPW51bGw7Y29uc3QgdD1lLmdldCgiT0MiKTt0IGluc3RhbmNlb2YgTmFtZT93YXJuKCJzZXRPcHRpb25hbENvbnRlbnQ6IFN1cHBvcnQgZm9yIC9OYW1lLWVudHJ5IGlzIG5vdCBpbXBsZW1lbnRlZC4iKTp0IGluc3RhbmNlb2YgRGljdCYmKHRoaXMub2M9dCl9YXN5bmMgbG9hZFJlc291cmNlcyhlLHQpe2NvbnN0IG49YXdhaXQgdC5kaWN0LmdldEFzeW5jKCJSZXNvdXJjZXMiKTtuJiZhd2FpdCBPYmplY3RMb2FkZXIubG9hZChuLGUsbi54cmVmKTtyZXR1cm4gbn1hc3luYyBnZXRPcGVyYXRvckxpc3QoZSx0LG4sYSl7Y29uc3R7aGFzT3duQ2FudmFzOnIsaWQ6cyxyZWN0Oml9PXRoaXMuZGF0YTtsZXQgbz10aGlzLmFwcGVhcmFuY2U7Y29uc3QgZj0hIShyJiZuJmwpO2lmKGYmJigwPT09dGhpcy53aWR0aHx8MD09PXRoaXMuaGVpZ2h0KSl7dGhpcy5kYXRhLmhhc093bkNhbnZhcz0hMTtyZXR1cm57b3BMaXN0Om5ldyBPcGVyYXRvckxpc3Qsc2VwYXJhdGVGb3JtOiExLHNlcGFyYXRlQ2FudmFzOiExfX1pZighbyl7aWYoIWYpcmV0dXJue29wTGlzdDpuZXcgT3BlcmF0b3JMaXN0LHNlcGFyYXRlRm9ybTohMSxzZXBhcmF0ZUNhbnZhczohMX07bz1uZXcgU3RyaW5nU3RyZWFtKCIiKTtvLmRpY3Q9bmV3IERpY3R9Y29uc3QgYz1vLmRpY3QsaD1hd2FpdCB0aGlzLmxvYWRSZXNvdXJjZXMoam4sbyksdT1sb29rdXBSZWN0KGMuZ2V0QXJyYXkoIkJCb3giKSxbMCwwLDEsMV0pLG09bG9va3VwTWF0cml4KGMuZ2V0QXJyYXkoIk1hdHJpeCIpLHduKSxwPWdldFRyYW5zZm9ybU1hdHJpeChpLHUsbSksZD1uZXcgT3BlcmF0b3JMaXN0O2xldCBnO3RoaXMub2MmJihnPWF3YWl0IGUucGFyc2VNYXJrZWRDb250ZW50UHJvcHModGhpcy5vYyxudWxsKSk7dm9pZCAwIT09ZyYmZC5hZGRPcChJdCxbIk9DIixnXSk7ZC5hZGRPcChNdCxbcyxpLHAsbSxmXSk7YXdhaXQgZS5nZXRPcGVyYXRvckxpc3Qoe3N0cmVhbTpvLHRhc2s6dCxyZXNvdXJjZXM6aCxvcGVyYXRvckxpc3Q6ZCxmYWxsYmFja0ZvbnREaWN0OnRoaXMuX2ZhbGxiYWNrRm9udERpY3R9KTtkLmFkZE9wKFB0LFtdKTt2b2lkIDAhPT1nJiZkLmFkZE9wKEZ0LFtdKTt0aGlzLnJlc2V0KCk7cmV0dXJue29wTGlzdDpkLHNlcGFyYXRlRm9ybTohMSxzZXBhcmF0ZUNhbnZhczpmfX1hc3luYyBzYXZlKGUsdCxuLGEpe3JldHVybiBudWxsfWdldCBvdmVybGF5c1RleHRDb250ZW50KCl7cmV0dXJuITF9Z2V0IGhhc1RleHRDb250ZW50KCl7cmV0dXJuITF9YXN5bmMgZXh0cmFjdFRleHRDb250ZW50KGUsdCxuKXtpZighdGhpcy5hcHBlYXJhbmNlKXJldHVybjtjb25zdCBhPWF3YWl0IHRoaXMubG9hZFJlc291cmNlcyhrbix0aGlzLmFwcGVhcmFuY2UpLHI9W10scz1bXTtsZXQgaT1udWxsO2NvbnN0IG89e2Rlc2lyZWRTaXplOk1hdGguSW5maW5pdHkscmVhZHk6ITAsZW5xdWV1ZShlLHQpe2Zvcihjb25zdCB0IG9mIGUuaXRlbXMpaWYodm9pZCAwIT09dC5zdHIpe2l8fD10LnRyYW5zZm9ybS5zbGljZSgtMik7cy5wdXNoKHQuc3RyKTtpZih0Lmhhc0VPTCl7ci5wdXNoKHMuam9pbigiIikudHJpbUVuZCgpKTtzLmxlbmd0aD0wfX19fTthd2FpdCBlLmdldFRleHRDb250ZW50KHtzdHJlYW06dGhpcy5hcHBlYXJhbmNlLHRhc2s6dCxyZXNvdXJjZXM6YSxpbmNsdWRlTWFya2VkQ29udGVudDohMCxrZWVwV2hpdGVTcGFjZTohMCxzaW5rOm8sdmlld0JveDpufSk7dGhpcy5yZXNldCgpO3MubGVuZ3RoJiZyLnB1c2gocy5qb2luKCIiKS50cmltRW5kKCkpO2lmKHIubGVuZ3RoPjF8fHJbMF0pe2NvbnN0IGU9dGhpcy5hcHBlYXJhbmNlLmRpY3QsdD1sb29rdXBSZWN0KGUuZ2V0QXJyYXkoIkJCb3giKSxudWxsKSxuPWxvb2t1cE1hdHJpeChlLmdldEFycmF5KCJNYXRyaXgiKSxudWxsKTt0aGlzLmRhdGEudGV4dFBvc2l0aW9uPXRoaXMuX3RyYW5zZm9ybVBvaW50KGksdCxuKTt0aGlzLmRhdGEudGV4dENvbnRlbnQ9cn19X3RyYW5zZm9ybVBvaW50KGUsdCxuKXtjb25zdHtyZWN0OmF9PXRoaXMuZGF0YTt0fHw9WzAsMCwxLDFdO258fD1bMSwwLDAsMSwwLDBdO2NvbnN0IHI9Z2V0VHJhbnNmb3JtTWF0cml4KGEsdCxuKTtyWzRdLT1hWzBdO3JbNV0tPWFbMV07Y29uc3Qgcz1lLnNsaWNlKCk7VXRpbC5hcHBseVRyYW5zZm9ybShzLHIpO1V0aWwuYXBwbHlUcmFuc2Zvcm0ocyxuKTtyZXR1cm4gc31nZXRGaWVsZE9iamVjdCgpe3JldHVybiB0aGlzLmRhdGEua2lkSWRzP3tpZDp0aGlzLmRhdGEuaWQsYWN0aW9uczp0aGlzLmRhdGEuYWN0aW9ucyxuYW1lOnRoaXMuZGF0YS5maWVsZE5hbWUsc3Ryb2tlQ29sb3I6dGhpcy5kYXRhLmJvcmRlckNvbG9yLGZpbGxDb2xvcjp0aGlzLmRhdGEuYmFja2dyb3VuZENvbG9yLHR5cGU6IiIsa2lkSWRzOnRoaXMuZGF0YS5raWRJZHMscGFnZTp0aGlzLmRhdGEucGFnZUluZGV4LHJvdGF0aW9uOnRoaXMucm90YXRpb259Om51bGx9cmVzZXQoKXtmb3IoY29uc3QgZSBvZiB0aGlzLl9zdHJlYW1zKWUucmVzZXQoKX1fY29uc3RydWN0RmllbGROYW1lKGUpe2lmKCFlLmhhcygiVCIpJiYhZS5oYXMoIlBhcmVudCIpKXt3YXJuKCJVbmtub3duIGZpZWxkIG5hbWUsIGZhbGxpbmcgYmFjayB0byBlbXB0eSBmaWVsZCBuYW1lLiIpO3JldHVybiIifWlmKCFlLmhhcygiUGFyZW50IikpcmV0dXJuIHN0cmluZ1RvUERGU3RyaW5nKGUuZ2V0KCJUIikpO2NvbnN0IHQ9W107ZS5oYXMoIlQiKSYmdC51bnNoaWZ0KHN0cmluZ1RvUERGU3RyaW5nKGUuZ2V0KCJUIikpKTtsZXQgbj1lO2NvbnN0IGE9bmV3IFJlZlNldDtlLm9iaklkJiZhLnB1dChlLm9iaklkKTtmb3IoO24uaGFzKCJQYXJlbnQiKTspe249bi5nZXQoIlBhcmVudCIpO2lmKCEobiBpbnN0YW5jZW9mIERpY3QpfHxuLm9iaklkJiZhLmhhcyhuLm9iaklkKSlicmVhaztuLm9iaklkJiZhLnB1dChuLm9iaklkKTtuLmhhcygiVCIpJiZ0LnVuc2hpZnQoc3RyaW5nVG9QREZTdHJpbmcobi5nZXQoIlQiKSkpfXJldHVybiB0LmpvaW4oIi4iKX1nZXQgd2lkdGgoKXtyZXR1cm4gdGhpcy5kYXRhLnJlY3RbMl0tdGhpcy5kYXRhLnJlY3RbMF19Z2V0IGhlaWdodCgpe3JldHVybiB0aGlzLmRhdGEucmVjdFszXS10aGlzLmRhdGEucmVjdFsxXX19Y2xhc3MgQW5ub3RhdGlvbkJvcmRlclN0eWxle3dpZHRoPTE7cmF3V2lkdGg9MTtzdHlsZT1uZTtkYXNoQXJyYXk9WzNdO2hvcml6b250YWxDb3JuZXJSYWRpdXM9MDt2ZXJ0aWNhbENvcm5lclJhZGl1cz0wO3NldFdpZHRoKGUsdD1bMCwwLDAsMF0pe2lmKGUgaW5zdGFuY2VvZiBOYW1lKXRoaXMud2lkdGg9MDtlbHNlIGlmKCJudW1iZXIiPT10eXBlb2YgZSl7aWYoZT4wKXt0aGlzLnJhd1dpZHRoPWU7Y29uc3Qgbj0odFsyXS10WzBdKS8yLGE9KHRbM10tdFsxXSkvMjtpZihuPjAmJmE+MCYmKGU+bnx8ZT5hKSl7d2FybihgQW5ub3RhdGlvbkJvcmRlclN0eWxlLnNldFdpZHRoIC0gaWdub3Jpbmcgd2lkdGg6ICR7ZX1gKTtlPTF9fXRoaXMud2lkdGg9ZX19c2V0U3R5bGUoZSl7aWYoZSBpbnN0YW5jZW9mIE5hbWUpc3dpdGNoKGUubmFtZSl7Y2FzZSJTIjp0aGlzLnN0eWxlPW5lO2JyZWFrO2Nhc2UiRCI6dGhpcy5zdHlsZT1hZTticmVhaztjYXNlIkIiOnRoaXMuc3R5bGU9cmU7YnJlYWs7Y2FzZSJJIjp0aGlzLnN0eWxlPXNlO2JyZWFrO2Nhc2UiVSI6dGhpcy5zdHlsZT1pZX19c2V0RGFzaEFycmF5KGUsdD0hMSl7aWYoQXJyYXkuaXNBcnJheShlKSl7bGV0IG49ITAsYT0hMDtmb3IoY29uc3QgdCBvZiBlKXtpZighKCt0Pj0wKSl7bj0hMTticmVha310PjAmJihhPSExKX1pZigwPT09ZS5sZW5ndGh8fG4mJiFhKXt0aGlzLmRhc2hBcnJheT1lO3QmJnRoaXMuc2V0U3R5bGUoTmFtZS5nZXQoIkQiKSl9ZWxzZSB0aGlzLndpZHRoPTB9ZWxzZSBlJiYodGhpcy53aWR0aD0wKX1zZXRIb3Jpem9udGFsQ29ybmVyUmFkaXVzKGUpe051bWJlci5pc0ludGVnZXIoZSkmJih0aGlzLmhvcml6b250YWxDb3JuZXJSYWRpdXM9ZSl9c2V0VmVydGljYWxDb3JuZXJSYWRpdXMoZSl7TnVtYmVyLmlzSW50ZWdlcihlKSYmKHRoaXMudmVydGljYWxDb3JuZXJSYWRpdXM9ZSl9fWNsYXNzIE1hcmt1cEFubm90YXRpb24gZXh0ZW5kcyBBbm5vdGF0aW9ue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO2NvbnN0e2RpY3Q6dH09ZTtpZih0LmhhcygiSVJUIikpe2NvbnN0IGU9dC5nZXRSYXcoIklSVCIpO3RoaXMuZGF0YS5pblJlcGx5VG89ZSBpbnN0YW5jZW9mIFJlZj9lLnRvU3RyaW5nKCk6bnVsbDtjb25zdCBuPXQuZ2V0KCJSVCIpO3RoaXMuZGF0YS5yZXBseVR5cGU9biBpbnN0YW5jZW9mIE5hbWU/bi5uYW1lOk19bGV0IG49bnVsbDtpZih0aGlzLmRhdGEucmVwbHlUeXBlPT09RCl7Y29uc3QgZT10LmdldCgiSVJUIik7dGhpcy5zZXRUaXRsZShlLmdldCgiVCIpKTt0aGlzLmRhdGEudGl0bGVPYmo9dGhpcy5fdGl0bGU7dGhpcy5zZXRDb250ZW50cyhlLmdldCgiQ29udGVudHMiKSk7dGhpcy5kYXRhLmNvbnRlbnRzT2JqPXRoaXMuX2NvbnRlbnRzO2lmKGUuaGFzKCJDcmVhdGlvbkRhdGUiKSl7dGhpcy5zZXRDcmVhdGlvbkRhdGUoZS5nZXQoIkNyZWF0aW9uRGF0ZSIpKTt0aGlzLmRhdGEuY3JlYXRpb25EYXRlPXRoaXMuY3JlYXRpb25EYXRlfWVsc2UgdGhpcy5kYXRhLmNyZWF0aW9uRGF0ZT1udWxsO2lmKGUuaGFzKCJNIikpe3RoaXMuc2V0TW9kaWZpY2F0aW9uRGF0ZShlLmdldCgiTSIpKTt0aGlzLmRhdGEubW9kaWZpY2F0aW9uRGF0ZT10aGlzLm1vZGlmaWNhdGlvbkRhdGV9ZWxzZSB0aGlzLmRhdGEubW9kaWZpY2F0aW9uRGF0ZT1udWxsO249ZS5nZXRSYXcoIlBvcHVwIik7aWYoZS5oYXMoIkMiKSl7dGhpcy5zZXRDb2xvcihlLmdldEFycmF5KCJDIikpO3RoaXMuZGF0YS5jb2xvcj10aGlzLmNvbG9yfWVsc2UgdGhpcy5kYXRhLmNvbG9yPW51bGx9ZWxzZXt0aGlzLmRhdGEudGl0bGVPYmo9dGhpcy5fdGl0bGU7dGhpcy5zZXRDcmVhdGlvbkRhdGUodC5nZXQoIkNyZWF0aW9uRGF0ZSIpKTt0aGlzLmRhdGEuY3JlYXRpb25EYXRlPXRoaXMuY3JlYXRpb25EYXRlO249dC5nZXRSYXcoIlBvcHVwIik7dC5oYXMoIkMiKXx8KHRoaXMuZGF0YS5jb2xvcj1udWxsKX10aGlzLmRhdGEucG9wdXBSZWY9biBpbnN0YW5jZW9mIFJlZj9uLnRvU3RyaW5nKCk6bnVsbDt0LmhhcygiUkMiKSYmKHRoaXMuZGF0YS5yaWNoVGV4dD1YRkFGYWN0b3J5LmdldFJpY2hUZXh0QXNIdG1sKHQuZ2V0KCJSQyIpKSl9c2V0Q3JlYXRpb25EYXRlKGUpe3RoaXMuY3JlYXRpb25EYXRlPSJzdHJpbmciPT10eXBlb2YgZT9lOm51bGx9X3NldERlZmF1bHRBcHBlYXJhbmNlKHt4cmVmOmUsZXh0cmE6dCxzdHJva2VDb2xvcjpuLGZpbGxDb2xvcjphLGJsZW5kTW9kZTpyLHN0cm9rZUFscGhhOnMsZmlsbEFscGhhOmkscG9pbnRzQ2FsbGJhY2s6b30pe2NvbnN0IGw9dGhpcy5kYXRhLnJlY3Q9WzEvMCwxLzAsLTEvMCwtMS8wXSxmPVsicSJdO3QmJmYucHVzaCh0KTtuJiZmLnB1c2goYCR7blswXX0gJHtuWzFdfSAke25bMl19IFJHYCk7YSYmZi5wdXNoKGAke2FbMF19ICR7YVsxXX0gJHthWzJdfSByZ2ApO2NvbnN0IGM9dGhpcy5kYXRhLnF1YWRQb2ludHN8fEZsb2F0MzJBcnJheS5mcm9tKFt0aGlzLnJlY3RhbmdsZVswXSx0aGlzLnJlY3RhbmdsZVszXSx0aGlzLnJlY3RhbmdsZVsyXSx0aGlzLnJlY3RhbmdsZVszXSx0aGlzLnJlY3RhbmdsZVswXSx0aGlzLnJlY3RhbmdsZVsxXSx0aGlzLnJlY3RhbmdsZVsyXSx0aGlzLnJlY3RhbmdsZVsxXV0pO2ZvcihsZXQgZT0wLHQ9Yy5sZW5ndGg7ZTx0O2UrPTgpe2NvbnN0IHQ9byhmLGMuc3ViYXJyYXkoZSxlKzgpKTtVdGlsLnJlY3RCb3VuZGluZ0JveCguLi50LGwpfWYucHVzaCgiUSIpO2NvbnN0IGg9bmV3IERpY3QoZSksdT1uZXcgRGljdChlKTt1LnNldElmTmFtZSgiU3VidHlwZSIsIkZvcm0iKTtjb25zdCBtPW5ldyBTdHJpbmdTdHJlYW0oZi5qb2luKCIgIikpO20uZGljdD11O2guc2V0KCJGbTAiLG0pO2NvbnN0IHA9bmV3IERpY3QoZSk7ciYmcC5zZXRJZk5hbWUoIkJNIixyKTtwLnNldElmTnVtYmVyKCJDQSIscyk7cC5zZXRJZk51bWJlcigiY2EiLGkpO2NvbnN0IGQ9bmV3IERpY3QoZSk7ZC5zZXQoIkdTMCIscCk7Y29uc3QgZz1uZXcgRGljdChlKTtnLnNldCgiRXh0R1N0YXRlIixkKTtnLnNldCgiWE9iamVjdCIsaCk7Y29uc3QgYj1uZXcgRGljdChlKTtiLnNldCgiUmVzb3VyY2VzIixnKTtiLnNldCgiQkJveCIsbCk7dGhpcy5hcHBlYXJhbmNlPW5ldyBTdHJpbmdTdHJlYW0oIi9HUzAgZ3MgL0ZtMCBEbyIpO3RoaXMuYXBwZWFyYW5jZS5kaWN0PWI7dGhpcy5fc3RyZWFtcy5wdXNoKHRoaXMuYXBwZWFyYW5jZSxtKX1zdGF0aWMgYXN5bmMgY3JlYXRlTmV3QW5ub3RhdGlvbihlLHQsbixhKXtjb25zdCByPXQucmVmfHw9ZS5nZXROZXdUZW1wb3JhcnlSZWYoKSxzPWF3YWl0IHRoaXMuY3JlYXRlTmV3QXBwZWFyYW5jZVN0cmVhbSh0LGUsYSk7bGV0IGk7aWYocyl7Y29uc3QgYT1lLmdldE5ld1RlbXBvcmFyeVJlZigpO2k9dGhpcy5jcmVhdGVOZXdEaWN0KHQsZSx7YXBSZWY6YX0pO24ucHV0KGEse2RhdGE6c30pfWVsc2UgaT10aGlzLmNyZWF0ZU5ld0RpY3QodCxlLHt9KTtOdW1iZXIuaXNJbnRlZ2VyKHQucGFyZW50VHJlZUlkKSYmaS5zZXQoIlN0cnVjdFBhcmVudCIsdC5wYXJlbnRUcmVlSWQpO24ucHV0KHIse2RhdGE6aX0pO2NvbnN0IG89e3JlZjpyfSx7cG9wdXA6bH09dDtpZihsKXtpZihsLmRlbGV0ZWQpe2kuZGVsZXRlKCJQb3B1cCIpO2kuZGVsZXRlKCJDb250ZW50cyIpO2kuZGVsZXRlKCJSQyIpO3JldHVybiBvfWNvbnN0IHQ9bC5yZWZ8fD1lLmdldE5ld1RlbXBvcmFyeVJlZigpO2wucGFyZW50PXI7Y29uc3QgYT1Qb3B1cEFubm90YXRpb24uY3JlYXRlTmV3RGljdChsLGUpO24ucHV0KHQse2RhdGE6YX0pO2kuc2V0SWZEZWZpbmVkKCJDb250ZW50cyIsc3RyaW5nVG9Bc2NpaU9yVVRGMTZCRShsLmNvbnRlbnRzKSk7aS5zZXQoIlBvcHVwIix0KTtyZXR1cm5bbyx7cmVmOnR9XX1yZXR1cm4gb31zdGF0aWMgYXN5bmMgY3JlYXRlTmV3UHJpbnRBbm5vdGF0aW9uKGUsdCxuLGEpe2NvbnN0IHI9YXdhaXQgdGhpcy5jcmVhdGVOZXdBcHBlYXJhbmNlU3RyZWFtKG4sdCxhKSxzPXRoaXMuY3JlYXRlTmV3RGljdChuLHQscj97YXA6cn06e30pLGk9bmV3IHRoaXMucHJvdG90eXBlLmNvbnN0cnVjdG9yKHtkaWN0OnMseHJlZjp0LGFubm90YXRpb25HbG9iYWxzOmUsZXZhbHVhdG9yT3B0aW9uczphLmV2YWx1YXRvck9wdGlvbnN9KTtuLnJlZiYmKGkucmVmPWkucmVmVG9SZXBsYWNlPW4ucmVmKTtyZXR1cm4gaX19Y2xhc3MgV2lkZ2V0QW5ub3RhdGlvbiBleHRlbmRzIEFubm90YXRpb257Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7Y29uc3R7ZGljdDp0LHhyZWY6bixhbm5vdGF0aW9uR2xvYmFsczphfT1lLHI9dGhpcy5kYXRhO3RoaXMuX25lZWRBcHBlYXJhbmNlcz1lLm5lZWRBcHBlYXJhbmNlczt2b2lkIDA9PT1yLmZpZWxkTmFtZSYmKHIuZmllbGROYW1lPXRoaXMuX2NvbnN0cnVjdEZpZWxkTmFtZSh0KSk7dm9pZCAwPT09ci5hY3Rpb25zJiYoci5hY3Rpb25zPWNvbGxlY3RBY3Rpb25zKG4sdCxvZSkpO2xldCBzPWdldEluaGVyaXRhYmxlUHJvcGVydHkoe2RpY3Q6dCxrZXk6IlYiLGdldEFycmF5OiEwfSk7ci5maWVsZFZhbHVlPXRoaXMuX2RlY29kZUZvcm1WYWx1ZShzKTtjb25zdCBpPWdldEluaGVyaXRhYmxlUHJvcGVydHkoe2RpY3Q6dCxrZXk6IkRWIixnZXRBcnJheTohMH0pO3IuZGVmYXVsdEZpZWxkVmFsdWU9dGhpcy5fZGVjb2RlRm9ybVZhbHVlKGkpO2lmKHZvaWQgMD09PXMmJmEueGZhRGF0YXNldHMpe2NvbnN0IGU9dGhpcy5fdGl0bGUuc3RyO2lmKGUpe3RoaXMuX2hhc1ZhbHVlRnJvbVhGQT0hMDtyLmZpZWxkVmFsdWU9cz1hLnhmYURhdGFzZXRzLmdldFZhbHVlKGUpfX12b2lkIDA9PT1zJiZudWxsIT09ci5kZWZhdWx0RmllbGRWYWx1ZSYmKHIuZmllbGRWYWx1ZT1yLmRlZmF1bHRGaWVsZFZhbHVlKTtyLmFsdGVybmF0aXZlVGV4dD1zdHJpbmdUb1BERlN0cmluZyh0LmdldCgiVFUiKXx8IiIpO3RoaXMuc2V0RGVmYXVsdEFwcGVhcmFuY2UoZSk7ci5oYXNBcHBlYXJhbmNlfHw9dGhpcy5fbmVlZEFwcGVhcmFuY2VzJiZ2b2lkIDAhPT1yLmZpZWxkVmFsdWUmJm51bGwhPT1yLmZpZWxkVmFsdWU7Y29uc3Qgbz1nZXRJbmhlcml0YWJsZVByb3BlcnR5KHtkaWN0OnQsa2V5OiJGVCJ9KTtyLmZpZWxkVHlwZT1vIGluc3RhbmNlb2YgTmFtZT9vLm5hbWU6bnVsbDtjb25zdCBsPWdldEluaGVyaXRhYmxlUHJvcGVydHkoe2RpY3Q6dCxrZXk6IkRSIn0pLGY9YS5hY3JvRm9ybS5nZXQoIkRSIiksYz10aGlzLmFwcGVhcmFuY2U/LmRpY3QuZ2V0KCJSZXNvdXJjZXMiKTt0aGlzLl9maWVsZFJlc291cmNlcz17bG9jYWxSZXNvdXJjZXM6bCxhY3JvRm9ybVJlc291cmNlczpmLGFwcGVhcmFuY2VSZXNvdXJjZXM6YyxtZXJnZWRSZXNvdXJjZXM6RGljdC5tZXJnZSh7eHJlZjpuLGRpY3RBcnJheTpbbCxjLGZdLG1lcmdlU3ViRGljdHM6ITB9KX07ci5maWVsZEZsYWdzPWdldEluaGVyaXRhYmxlUHJvcGVydHkoe2RpY3Q6dCxrZXk6IkZmIn0pOyghTnVtYmVyLmlzSW50ZWdlcihyLmZpZWxkRmxhZ3MpfHxyLmZpZWxkRmxhZ3M8MCkmJihyLmZpZWxkRmxhZ3M9MCk7ci5wYXNzd29yZD10aGlzLmhhc0ZpZWxkRmxhZyhHKTtyLnJlYWRPbmx5PXRoaXMuaGFzRmllbGRGbGFnKFcpO3IucmVxdWlyZWQ9dGhpcy5oYXNGaWVsZEZsYWcoSyk7ci5oaWRkZW49dGhpcy5faGFzRmxhZyhyLmFubm90YXRpb25GbGFncyxOKXx8dGhpcy5faGFzRmxhZyhyLmFubm90YXRpb25GbGFncyxMKX1fZGVjb2RlRm9ybVZhbHVlKGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpP2UuZmlsdGVyKGU9PiJzdHJpbmciPT10eXBlb2YgZSkubWFwKGU9PnN0cmluZ1RvUERGU3RyaW5nKGUpKTplIGluc3RhbmNlb2YgTmFtZT9zdHJpbmdUb1BERlN0cmluZyhlLm5hbWUpOiJzdHJpbmciPT10eXBlb2YgZT9zdHJpbmdUb1BERlN0cmluZyhlKTpudWxsfWhhc0ZpZWxkRmxhZyhlKXtyZXR1cm4hISh0aGlzLmRhdGEuZmllbGRGbGFncyZlKX1faXNWaWV3YWJsZShlKXtyZXR1cm4hMH1tdXN0QmVWaWV3ZWQoZSx0KXtyZXR1cm4gdD90aGlzLnZpZXdhYmxlOnN1cGVyLm11c3RCZVZpZXdlZChlLHQpJiYhdGhpcy5faGFzRmxhZyh0aGlzLmZsYWdzLEwpfWdldFJvdGF0aW9uTWF0cml4KGUpe2xldCB0PWU/LmdldCh0aGlzLmRhdGEuaWQpPy5yb3RhdGlvbjt2b2lkIDA9PT10JiYodD10aGlzLnJvdGF0aW9uKTtyZXR1cm4gMD09PXQ/d246Z2V0Um90YXRpb25NYXRyaXgodCx0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KX1nZXRCb3JkZXJBbmRCYWNrZ3JvdW5kQXBwZWFyYW5jZXMoZSl7bGV0IHQ9ZT8uZ2V0KHRoaXMuZGF0YS5pZCk/LnJvdGF0aW9uO3ZvaWQgMD09PXQmJih0PXRoaXMucm90YXRpb24pO2lmKCF0aGlzLmJhY2tncm91bmRDb2xvciYmIXRoaXMuYm9yZGVyQ29sb3IpcmV0dXJuIiI7Y29uc3Qgbj0wPT09dHx8MTgwPT09dD9gMCAwICR7dGhpcy53aWR0aH0gJHt0aGlzLmhlaWdodH0gcmVgOmAwIDAgJHt0aGlzLmhlaWdodH0gJHt0aGlzLndpZHRofSByZWA7bGV0IGE9IiI7dGhpcy5iYWNrZ3JvdW5kQ29sb3ImJihhPWAke2dldFBkZkNvbG9yKHRoaXMuYmFja2dyb3VuZENvbG9yLCEwKX0gJHtufSBmIGApO2lmKHRoaXMuYm9yZGVyQ29sb3Ipe2ErPWAke3RoaXMuYm9yZGVyU3R5bGUud2lkdGh8fDF9IHcgJHtnZXRQZGZDb2xvcih0aGlzLmJvcmRlckNvbG9yLCExKX0gJHtufSBTIGB9cmV0dXJuIGF9YXN5bmMgZ2V0T3BlcmF0b3JMaXN0KGUsdCxuLGEpe2lmKG4maCYmISh0aGlzIGluc3RhbmNlb2YgU2lnbmF0dXJlV2lkZ2V0QW5ub3RhdGlvbikmJiF0aGlzLmRhdGEubm9IVE1MJiYhdGhpcy5kYXRhLmhhc093bkNhbnZhcylyZXR1cm57b3BMaXN0Om5ldyBPcGVyYXRvckxpc3Qsc2VwYXJhdGVGb3JtOiEwLHNlcGFyYXRlQ2FudmFzOiExfTtpZighdGhpcy5faGFzVGV4dClyZXR1cm4gc3VwZXIuZ2V0T3BlcmF0b3JMaXN0KGUsdCxuLGEpO2NvbnN0IHI9YXdhaXQgdGhpcy5fZ2V0QXBwZWFyYW5jZShlLHQsbixhKTtpZih0aGlzLmFwcGVhcmFuY2UmJm51bGw9PT1yKXJldHVybiBzdXBlci5nZXRPcGVyYXRvckxpc3QoZSx0LG4sYSk7Y29uc3Qgcz1uZXcgT3BlcmF0b3JMaXN0O2lmKCF0aGlzLl9kZWZhdWx0QXBwZWFyYW5jZXx8bnVsbD09PXIpcmV0dXJue29wTGlzdDpzLHNlcGFyYXRlRm9ybTohMSxzZXBhcmF0ZUNhbnZhczohMX07Y29uc3QgaT0hISh0aGlzLmRhdGEuaGFzT3duQ2FudmFzJiZuJmwpLG89WzAsMCx0aGlzLndpZHRoLHRoaXMuaGVpZ2h0XSxmPWdldFRyYW5zZm9ybU1hdHJpeCh0aGlzLmRhdGEucmVjdCxvLFsxLDAsMCwxLDAsMF0pO2xldCBjO3RoaXMub2MmJihjPWF3YWl0IGUucGFyc2VNYXJrZWRDb250ZW50UHJvcHModGhpcy5vYyxudWxsKSk7dm9pZCAwIT09YyYmcy5hZGRPcChJdCxbIk9DIixjXSk7cy5hZGRPcChNdCxbdGhpcy5kYXRhLmlkLHRoaXMuZGF0YS5yZWN0LGYsdGhpcy5nZXRSb3RhdGlvbk1hdHJpeChhKSxpXSk7Y29uc3QgdT1uZXcgU3RyaW5nU3RyZWFtKHIpO2F3YWl0IGUuZ2V0T3BlcmF0b3JMaXN0KHtzdHJlYW06dSx0YXNrOnQscmVzb3VyY2VzOnRoaXMuX2ZpZWxkUmVzb3VyY2VzLm1lcmdlZFJlc291cmNlcyxvcGVyYXRvckxpc3Q6c30pO3MuYWRkT3AoUHQsW10pO3ZvaWQgMCE9PWMmJnMuYWRkT3AoRnQsW10pO3JldHVybntvcExpc3Q6cyxzZXBhcmF0ZUZvcm06ITEsc2VwYXJhdGVDYW52YXM6aX19X2dldE1LRGljdChlKXtjb25zdCB0PW5ldyBEaWN0KG51bGwpO2UmJnQuc2V0KCJSIixlKTt0LnNldElmQXJyYXkoIkJDIixnZXRQZGZDb2xvckFycmF5KHRoaXMuYm9yZGVyQ29sb3IpKTt0LnNldElmQXJyYXkoIkJHIixnZXRQZGZDb2xvckFycmF5KHRoaXMuYmFja2dyb3VuZENvbG9yKSk7cmV0dXJuIHQuc2l6ZT4wP3Q6bnVsbH1hbWVuZFNhdmVkRGljdChlLHQpe31zZXRWYWx1ZShlLHQsbixhKXtjb25zdHtkaWN0OnIscmVmOnN9PWZ1bmN0aW9uIGdldFBhcmVudFRvVXBkYXRlKGUsdCxuKXtjb25zdCBhPW5ldyBSZWZTZXQscj1lLHM9e2RpY3Q6bnVsbCxyZWY6bnVsbH07Zm9yKDtlIGluc3RhbmNlb2YgRGljdCYmIWEuaGFzKHQpOyl7YS5wdXQodCk7aWYoZS5oYXMoIlQiKSlicmVhaztpZighKCh0PWUuZ2V0UmF3KCJQYXJlbnQiKSlpbnN0YW5jZW9mIFJlZikpcmV0dXJuIHM7ZT1uLmZldGNoKHQpfWlmKGUgaW5zdGFuY2VvZiBEaWN0JiZlIT09cil7cy5kaWN0PWU7cy5yZWY9dH1yZXR1cm4gc30oZSx0aGlzLnJlZixuKTtpZihyKXtpZighYS5oYXMocykpe2NvbnN0IGU9ci5jbG9uZSgpO2Uuc2V0KCJWIix0KTthLnB1dChzLHtkYXRhOmV9KTtyZXR1cm4gZX19ZWxzZSBlLnNldCgiViIsdCk7cmV0dXJuIG51bGx9YXN5bmMgc2F2ZShlLHQsbixhKXtjb25zdCByPW4/LmdldCh0aGlzLmRhdGEuaWQpLHM9dGhpcy5fYnVpbGRGbGFncyhyPy5ub1ZpZXcscj8ubm9QcmludCk7bGV0IGk9cj8udmFsdWUsbz1yPy5yb3RhdGlvbjtpZihpPT09dGhpcy5kYXRhLmZpZWxkVmFsdWV8fHZvaWQgMD09PWkpe2lmKCF0aGlzLl9oYXNWYWx1ZUZyb21YRkEmJnZvaWQgMD09PW8mJnZvaWQgMD09PXMpcmV0dXJuO2l8fD10aGlzLmRhdGEuZmllbGRWYWx1ZX1pZih2b2lkIDA9PT1vJiYhdGhpcy5faGFzVmFsdWVGcm9tWEZBJiZBcnJheS5pc0FycmF5KGkpJiZBcnJheS5pc0FycmF5KHRoaXMuZGF0YS5maWVsZFZhbHVlKSYmaXNBcnJheUVxdWFsKGksdGhpcy5kYXRhLmZpZWxkVmFsdWUpJiZ2b2lkIDA9PT1zKXJldHVybjt2b2lkIDA9PT1vJiYobz10aGlzLnJvdGF0aW9uKTtsZXQgbD1udWxsO2lmKCF0aGlzLl9uZWVkQXBwZWFyYW5jZXMpe2w9YXdhaXQgdGhpcy5fZ2V0QXBwZWFyYW5jZShlLHQsYyxuKTtpZihudWxsPT09bCYmdm9pZCAwPT09cylyZXR1cm59bGV0IGY9ITE7aWYobD8ubmVlZEFwcGVhcmFuY2VzKXtmPSEwO2w9bnVsbH1jb25zdHt4cmVmOmh9PWUsdT1oLmZldGNoSWZSZWYodGhpcy5yZWYpO2lmKCEodSBpbnN0YW5jZW9mIERpY3QpKXJldHVybjtjb25zdCBtPW5ldyBEaWN0KGgpO2Zvcihjb25zdCBlIG9mIHUuZ2V0S2V5cygpKSJBUCIhPT1lJiZtLnNldChlLHUuZ2V0UmF3KGUpKTtpZih2b2lkIDAhPT1zKXttLnNldCgiRiIscyk7aWYobnVsbD09PWwmJiFmKXtjb25zdCBlPXUuZ2V0UmF3KCJBUCIpO2UmJm0uc2V0KCJBUCIsZSl9fWNvbnN0IHA9e3BhdGg6dGhpcy5kYXRhLmZpZWxkTmFtZSx2YWx1ZTppfSxkPXRoaXMuc2V0VmFsdWUobSxBcnJheS5pc0FycmF5KGkpP2kubWFwKHN0cmluZ1RvQXNjaWlPclVURjE2QkUpOnN0cmluZ1RvQXNjaWlPclVURjE2QkUoaSksaCxhKTt0aGlzLmFtZW5kU2F2ZWREaWN0KG4sZHx8bSk7Y29uc3QgZz10aGlzLl9nZXRNS0RpY3Qobyk7ZyYmbS5zZXQoIk1LIixnKTthLnB1dCh0aGlzLnJlZix7ZGF0YTptLHhmYTpwLG5lZWRBcHBlYXJhbmNlczpmfSk7aWYobnVsbCE9PWwpe2NvbnN0IGU9aC5nZXROZXdUZW1wb3JhcnlSZWYoKSx0PW5ldyBEaWN0KGgpO20uc2V0KCJBUCIsdCk7dC5zZXQoIk4iLGUpO2NvbnN0IHI9dGhpcy5fZ2V0U2F2ZUZpZWxkUmVzb3VyY2VzKGgpLHM9bmV3IFN0cmluZ1N0cmVhbShsKSxpPXMuZGljdD1uZXcgRGljdChoKTtpLnNldElmTmFtZSgiU3VidHlwZSIsIkZvcm0iKTtpLnNldCgiUmVzb3VyY2VzIixyKTtjb25zdCBmPW8lMTgwPT0wP1swLDAsdGhpcy53aWR0aCx0aGlzLmhlaWdodF06WzAsMCx0aGlzLmhlaWdodCx0aGlzLndpZHRoXTtpLnNldCgiQkJveCIsZik7Y29uc3QgYz10aGlzLmdldFJvdGF0aW9uTWF0cml4KG4pO2MhPT13biYmaS5zZXQoIk1hdHJpeCIsYyk7YS5wdXQoZSx7ZGF0YTpzLHhmYTpudWxsLG5lZWRBcHBlYXJhbmNlczohMX0pfW0uc2V0KCJNIixgRDoke2dldE1vZGlmaWNhdGlvbkRhdGUoKX1gKX1hc3luYyBfZ2V0QXBwZWFyYW5jZShlLHQsbixhKXtpZih0aGlzLmRhdGEucGFzc3dvcmQpcmV0dXJuIG51bGw7Y29uc3Qgcj1hPy5nZXQodGhpcy5kYXRhLmlkKTtsZXQgcyxvO2lmKHIpe3M9ci5mb3JtYXR0ZWRWYWx1ZXx8ci52YWx1ZTtvPXIucm90YXRpb259aWYodm9pZCAwPT09byYmdm9pZCAwPT09cyYmIXRoaXMuX25lZWRBcHBlYXJhbmNlcyYmKCF0aGlzLl9oYXNWYWx1ZUZyb21YRkF8fHRoaXMuYXBwZWFyYW5jZSkpcmV0dXJuIG51bGw7Y29uc3QgbD10aGlzLmdldEJvcmRlckFuZEJhY2tncm91bmRBcHBlYXJhbmNlcyhhKTtpZih2b2lkIDA9PT1zKXtzPXRoaXMuZGF0YS5maWVsZFZhbHVlO2lmKCFzKXJldHVybmAvVHggQk1DIHEgJHtsfVEgRU1DYH1BcnJheS5pc0FycmF5KHMpJiYxPT09cy5sZW5ndGgmJihzPXNbMF0pO2Fzc2VydCgic3RyaW5nIj09dHlwZW9mIHMsIkV4cGVjdGVkIGB2YWx1ZWAgdG8gYmUgYSBzdHJpbmcuIik7cz1zLnRyaW1FbmQoKTtpZih0aGlzLmRhdGEuY29tYm8pe2NvbnN0IGU9dGhpcy5kYXRhLm9wdGlvbnMuZmluZCgoe2V4cG9ydFZhbHVlOmV9KT0+cz09PWUpO3M9ZT8uZGlzcGxheVZhbHVlfHxzfWlmKCIiPT09cylyZXR1cm5gL1R4IEJNQyBxICR7bH1RIEVNQ2A7dm9pZCAwPT09byYmKG89dGhpcy5yb3RhdGlvbik7bGV0IGYsaD0tMTtpZih0aGlzLmRhdGEubXVsdGlMaW5lKXtmPXMuc3BsaXQoL1xyXG4/fFxuLykubWFwKGU9PmUubm9ybWFsaXplKCJORkMiKSk7aD1mLmxlbmd0aH1lbHNlIGY9W3MucmVwbGFjZSgvXHJcbj98XG4vLCIiKS5ub3JtYWxpemUoIk5GQyIpXTtsZXR7d2lkdGg6dSxoZWlnaHQ6bX09dGhpczs5MCE9PW8mJjI3MCE9PW98fChbdSxtXT1bbSx1XSk7dGhpcy5fZGVmYXVsdEFwcGVhcmFuY2V8fCh0aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhPXBhcnNlRGVmYXVsdEFwcGVhcmFuY2UodGhpcy5fZGVmYXVsdEFwcGVhcmFuY2U9Ii9IZWx2ZXRpY2EgMCBUZiAwIGciKSk7bGV0IHAsZCxnLGI9YXdhaXQgV2lkZ2V0QW5ub3RhdGlvbi5fZ2V0Rm9udERhdGEoZSx0LHRoaXMuZGF0YS5kZWZhdWx0QXBwZWFyYW5jZURhdGEsdGhpcy5fZmllbGRSZXNvdXJjZXMubWVyZ2VkUmVzb3VyY2VzKTtjb25zdCB3PVtdO2xldCBqPSExO2Zvcihjb25zdCBlIG9mIGYpe2NvbnN0IHQ9Yi5lbmNvZGVTdHJpbmcoZSk7dC5sZW5ndGg+MSYmKGo9ITApO3cucHVzaCh0LmpvaW4oIiIpKX1pZihqJiZuJmMpcmV0dXJue25lZWRBcHBlYXJhbmNlczohMH07aWYoaiYmdGhpcy5faXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQpe2NvbnN0IG49dGhpcy5kYXRhLmNvbWI/Im1vbm9zcGFjZSI6InNhbnMtc2VyaWYiLGE9bmV3IEZha2VVbmljb2RlRm9udChlLnhyZWYsbikscj1hLmNyZWF0ZUZvbnRSZXNvdXJjZXMoZi5qb2luKCIiKSksaT1yLmdldFJhdygiRm9udCIpO2lmKHRoaXMuX2ZpZWxkUmVzb3VyY2VzLm1lcmdlZFJlc291cmNlcy5oYXMoIkZvbnQiKSl7Y29uc3QgZT10aGlzLl9maWVsZFJlc291cmNlcy5tZXJnZWRSZXNvdXJjZXMuZ2V0KCJGb250Iik7Zm9yKGNvbnN0IHQgb2YgaS5nZXRLZXlzKCkpZS5zZXQodCxpLmdldFJhdyh0KSl9ZWxzZSB0aGlzLl9maWVsZFJlc291cmNlcy5tZXJnZWRSZXNvdXJjZXMuc2V0KCJGb250IixpKTtjb25zdCBvPWEuZm9udE5hbWUubmFtZTtiPWF3YWl0IFdpZGdldEFubm90YXRpb24uX2dldEZvbnREYXRhKGUsdCx7Zm9udE5hbWU6byxmb250U2l6ZTowfSxyKTtmb3IobGV0IGU9MCx0PXcubGVuZ3RoO2U8dDtlKyspd1tlXT1zdHJpbmdUb1VURjE2U3RyaW5nKGZbZV0pO2NvbnN0IGw9T2JqZWN0LmFzc2lnbihPYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuZGF0YS5kZWZhdWx0QXBwZWFyYW5jZURhdGEpO3RoaXMuZGF0YS5kZWZhdWx0QXBwZWFyYW5jZURhdGEuZm9udFNpemU9MDt0aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhLmZvbnROYW1lPW87W3AsZCxnXT10aGlzLl9jb21wdXRlRm9udFNpemUobS0yLHUtNCxzLGIsaCk7dGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YT1sfWVsc2V7dGhpcy5faXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWR8fHdhcm4oIl9nZXRBcHBlYXJhbmNlOiBPZmZzY3JlZW5DYW52YXMgaXMgbm90IHN1cHBvcnRlZCwgYW5ub3RhdGlvbiBtYXkgbm90IHJlbmRlciBjb3JyZWN0bHkuIik7W3AsZCxnXT10aGlzLl9jb21wdXRlRm9udFNpemUobS0yLHUtNCxzLGIsaCl9bGV0IGs9Yi5kZXNjZW50O2s9aXNOYU4oayk/aSpnOk1hdGgubWF4KGkqZyxNYXRoLmFicyhrKSpkKTtjb25zdCB5PU1hdGgubWluKE1hdGguZmxvb3IoKG0tZCkvMiksMSkscT10aGlzLmRhdGEudGV4dEFsaWdubWVudDtpZih0aGlzLmRhdGEubXVsdGlMaW5lKXJldHVybiB0aGlzLl9nZXRNdWx0aWxpbmVBcHBlYXJhbmNlKHAsdyxiLGQsdSxtLHEsMix5LGssZyxhKTtpZih0aGlzLmRhdGEuY29tYilyZXR1cm4gdGhpcy5fZ2V0Q29tYkFwcGVhcmFuY2UocCxiLHdbMF0sZCx1LG0sMix5LGssZyxhKTtjb25zdCB2PXkraztpZigwPT09cXx8cT4yKXJldHVybmAvVHggQk1DIHEgJHtsfUJUIGArcCtgIDEgMCAwIDEgJHtudW1iZXJUb1N0cmluZygyKX0gJHtudW1iZXJUb1N0cmluZyh2KX0gVG0gKCR7ZXNjYXBlU3RyaW5nKHdbMF0pfSkgVGogRVQgUSBFTUNgO3JldHVybmAvVHggQk1DIHEgJHtsfUJUIGArcCtgIDEgMCAwIDEgMCAwIFRtICR7dGhpcy5fcmVuZGVyVGV4dCh3WzBdLGIsZCx1LHEse3NoaWZ0OjB9LDIsdil9IEVUIFEgRU1DYH1zdGF0aWMgYXN5bmMgX2dldEZvbnREYXRhKGUsdCxuLGEpe2NvbnN0IHI9bmV3IE9wZXJhdG9yTGlzdCxzPXtmb250Om51bGwsY2xvbmUoKXtyZXR1cm4gdGhpc319LHtmb250TmFtZTppLGZvbnRTaXplOm99PW47YXdhaXQgZS5oYW5kbGVTZXRGb250KGEsW2kmJk5hbWUuZ2V0KGkpLG9dLG51bGwscix0LHMsbnVsbCk7cmV0dXJuIHMuZm9udH1fZ2V0VGV4dFdpZHRoKGUsdCl7cmV0dXJuIE1hdGguc3VtUHJlY2lzZSh0LmNoYXJzVG9HbHlwaHMoZSkubWFwKGU9PmUud2lkdGgpKS8xZTN9X2NvbXB1dGVGb250U2l6ZShlLHQsbixhLHMpe2xldHtmb250U2l6ZTppfT10aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhLG89KGl8fDEyKSpyLGw9TWF0aC5yb3VuZChlL28pO2lmKCFpKXtjb25zdCByb3VuZFdpdGhUd29EaWdpdHM9ZT0+TWF0aC5mbG9vcigxMDAqZSkvMTAwO2lmKC0xPT09cyl7Y29uc3Qgcz10aGlzLl9nZXRUZXh0V2lkdGgobixhKTtpPXJvdW5kV2l0aFR3b0RpZ2l0cyhNYXRoLm1pbihlL3IsdC9zKSk7bD0xfWVsc2V7Y29uc3QgZj1uLnNwbGl0KC9cclxuP3xcbi8pLGM9W107Zm9yKGNvbnN0IGUgb2YgZil7Y29uc3QgdD1hLmVuY29kZVN0cmluZyhlKS5qb2luKCIiKSxuPWEuY2hhcnNUb0dseXBocyh0KSxyPWEuZ2V0Q2hhclBvc2l0aW9ucyh0KTtjLnB1c2goe2xpbmU6dCxnbHlwaHM6bixwb3NpdGlvbnM6cn0pfWNvbnN0IGlzVG9vQmlnPW49PntsZXQgcj0wO2Zvcihjb25zdCBzIG9mIGMpe3IrPXRoaXMuX3NwbGl0TGluZShudWxsLGEsbix0LHMpLmxlbmd0aCpuO2lmKHI+ZSlyZXR1cm4hMH1yZXR1cm4hMX07bD1NYXRoLm1heChsLHMpO2Zvcig7Oyl7bz1lL2w7aT1yb3VuZFdpdGhUd29EaWdpdHMoby9yKTtpZighaXNUb29CaWcoaSkpYnJlYWs7bCsrfX1jb25zdHtmb250TmFtZTpmLGZvbnRDb2xvcjpjfT10aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhO3RoaXMuX2RlZmF1bHRBcHBlYXJhbmNlPWZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRBcHBlYXJhbmNlKHtmb250U2l6ZTplLGZvbnROYW1lOnQsZm9udENvbG9yOm59KXtyZXR1cm5gLyR7ZXNjYXBlUERGTmFtZSh0KX0gJHtlfSBUZiAke2dldFBkZkNvbG9yKG4sITApfWB9KHtmb250U2l6ZTppLGZvbnROYW1lOmYsZm9udENvbG9yOmN9KX1yZXR1cm5bdGhpcy5fZGVmYXVsdEFwcGVhcmFuY2UsaSxlL2xdfV9yZW5kZXJUZXh0KGUsdCxuLGEscixzLGksbyl7bGV0IGw7aWYoMT09PXIpe2w9KGEtdGhpcy5fZ2V0VGV4dFdpZHRoKGUsdCkqbikvMn1lbHNlIGlmKDI9PT1yKXtsPWEtdGhpcy5fZ2V0VGV4dFdpZHRoKGUsdCkqbi1pfWVsc2UgbD1pO2NvbnN0IGY9bnVtYmVyVG9TdHJpbmcobC1zLnNoaWZ0KTtzLnNoaWZ0PWw7cmV0dXJuYCR7Zn0gJHtvPW51bWJlclRvU3RyaW5nKG8pfSBUZCAoJHtlc2NhcGVTdHJpbmcoZSl9KSBUamB9X2dldFNhdmVGaWVsZFJlc291cmNlcyhlKXtjb25zdHtsb2NhbFJlc291cmNlczp0LGFwcGVhcmFuY2VSZXNvdXJjZXM6bixhY3JvRm9ybVJlc291cmNlczphfT10aGlzLl9maWVsZFJlc291cmNlcyxyPXRoaXMuZGF0YS5kZWZhdWx0QXBwZWFyYW5jZURhdGE/LmZvbnROYW1lO2lmKCFyKXJldHVybiB0fHxEaWN0LmVtcHR5O2Zvcihjb25zdCBlIG9mW3Qsbl0paWYoZSBpbnN0YW5jZW9mIERpY3Qpe2NvbnN0IHQ9ZS5nZXQoIkZvbnQiKTtpZih0IGluc3RhbmNlb2YgRGljdCYmdC5oYXMocikpcmV0dXJuIGV9aWYoYSBpbnN0YW5jZW9mIERpY3Qpe2NvbnN0IG49YS5nZXQoIkZvbnQiKTtpZihuIGluc3RhbmNlb2YgRGljdCYmbi5oYXMocikpe2NvbnN0IGE9bmV3IERpY3QoZSk7YS5zZXQocixuLmdldFJhdyhyKSk7Y29uc3Qgcz1uZXcgRGljdChlKTtzLnNldCgiRm9udCIsYSk7cmV0dXJuIERpY3QubWVyZ2Uoe3hyZWY6ZSxkaWN0QXJyYXk6W3MsdF0sbWVyZ2VTdWJEaWN0czohMH0pfX1yZXR1cm4gdHx8RGljdC5lbXB0eX1nZXRGaWVsZE9iamVjdCgpe3JldHVybiBudWxsfX1jbGFzcyBUZXh0V2lkZ2V0QW5ub3RhdGlvbiBleHRlbmRzIFdpZGdldEFubm90YXRpb257Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7Y29uc3R7ZGljdDp0fT1lO2lmKHQuaGFzKCJQTUQiKSl7dGhpcy5mbGFnc3w9Tjt0aGlzLmRhdGEuaGlkZGVuPSEwO3dhcm4oIkJhcmNvZGVzIGFyZSBub3Qgc3VwcG9ydGVkIil9dGhpcy5kYXRhLmhhc093bkNhbnZhcz10aGlzLmRhdGEucmVhZE9ubHkmJiF0aGlzLmRhdGEubm9IVE1MO3RoaXMuX2hhc1RleHQ9ITA7InN0cmluZyIhPXR5cGVvZiB0aGlzLmRhdGEuZmllbGRWYWx1ZSYmKHRoaXMuZGF0YS5maWVsZFZhbHVlPSIiKTtsZXQgbj1nZXRJbmhlcml0YWJsZVByb3BlcnR5KHtkaWN0OnQsa2V5OiJRIn0pOyghTnVtYmVyLmlzSW50ZWdlcihuKXx8bjwwfHxuPjIpJiYobj1udWxsKTt0aGlzLmRhdGEudGV4dEFsaWdubWVudD1uO2xldCBhPWdldEluaGVyaXRhYmxlUHJvcGVydHkoe2RpY3Q6dCxrZXk6Ik1heExlbiJ9KTsoIU51bWJlci5pc0ludGVnZXIoYSl8fGE8MCkmJihhPTApO3RoaXMuZGF0YS5tYXhMZW49YTt0aGlzLmRhdGEubXVsdGlMaW5lPXRoaXMuaGFzRmllbGRGbGFnKFYpO3RoaXMuZGF0YS5jb21iPXRoaXMuaGFzRmllbGRGbGFnKHRlKSYmIXRoaXMuZGF0YS5tdWx0aUxpbmUmJiF0aGlzLmRhdGEucGFzc3dvcmQmJiF0aGlzLmhhc0ZpZWxkRmxhZyhRKSYmMCE9PXRoaXMuZGF0YS5tYXhMZW47dGhpcy5kYXRhLmRvTm90U2Nyb2xsPXRoaXMuaGFzRmllbGRGbGFnKGVlKTtjb25zdHtkYXRhOnthY3Rpb25zOnJ9fT10aGlzO2lmKCFyKXJldHVybjtjb25zdCBzPS9eQUYoRGF0ZXxUaW1lKV8oPzpLZXlzdHJva2V8Rm9ybWF0KSg/OkV4KT9cKFsnIl0/KFteJyJdKylbJyJdP1wpOyQvO2xldCBpPSExOygxPT09ci5Gb3JtYXQ/Lmxlbmd0aCYmMT09PXIuS2V5c3Ryb2tlPy5sZW5ndGgmJnMudGVzdChyLkZvcm1hdFswXSkmJnMudGVzdChyLktleXN0cm9rZVswXSl8fDA9PT1yLkZvcm1hdD8ubGVuZ3RoJiYxPT09ci5LZXlzdHJva2U/Lmxlbmd0aCYmcy50ZXN0KHIuS2V5c3Ryb2tlWzBdKXx8MD09PXIuS2V5c3Ryb2tlPy5sZW5ndGgmJjE9PT1yLkZvcm1hdD8ubGVuZ3RoJiZzLnRlc3Qoci5Gb3JtYXRbMF0pKSYmKGk9ITApO2NvbnN0IG89W107ci5Gb3JtYXQmJm8ucHVzaCguLi5yLkZvcm1hdCk7ci5LZXlzdHJva2UmJm8ucHVzaCguLi5yLktleXN0cm9rZSk7aWYoaSl7ZGVsZXRlIHIuS2V5c3Ryb2tlO3IuRm9ybWF0PW99Zm9yKGNvbnN0IGUgb2Ygbyl7Y29uc3QgdD1lLm1hdGNoKHMpO2lmKCF0KWNvbnRpbnVlO2NvbnN0IG49IkRhdGUiPT09dFsxXTtsZXQgYT10WzJdO2NvbnN0IHI9cGFyc2VJbnQoYSwxMCk7aXNOYU4ocil8fE1hdGguZmxvb3IoTWF0aC5sb2cxMChyKSkrMSE9PXRbMl0ubGVuZ3RofHwoYT0obj9DczpJcylbcl0/P2EpO3RoaXMuZGF0YS5kYXRldGltZUZvcm1hdD1hO2lmKCFpKWJyZWFrO2lmKG4pe2lmKC9ISHxNTXxzc3xoLy50ZXN0KGEpKXt0aGlzLmRhdGEuZGF0ZXRpbWVUeXBlPSJkYXRldGltZS1sb2NhbCI7dGhpcy5kYXRhLnRpbWVTdGVwPS9zcy8udGVzdChhKT8xOjYwfWVsc2UgdGhpcy5kYXRhLmRhdGV0aW1lVHlwZT0iZGF0ZSI7YnJlYWt9dGhpcy5kYXRhLmRhdGV0aW1lVHlwZT0idGltZSI7dGhpcy5kYXRhLnRpbWVTdGVwPS9zcy8udGVzdChhKT8xOjYwO2JyZWFrfX1nZXQgaGFzVGV4dENvbnRlbnQoKXtyZXR1cm4hIXRoaXMuYXBwZWFyYW5jZSYmIXRoaXMuX25lZWRBcHBlYXJhbmNlc31fZ2V0Q29tYkFwcGVhcmFuY2UoZSx0LG4sYSxyLHMsaSxvLGwsZixjKXtjb25zdCBoPXIvdGhpcy5kYXRhLm1heExlbix1PXRoaXMuZ2V0Qm9yZGVyQW5kQmFja2dyb3VuZEFwcGVhcmFuY2VzKGMpLG09W10scD10LmdldENoYXJQb3NpdGlvbnMobik7Zm9yKGNvbnN0W2UsdF1vZiBwKW0ucHVzaChgKCR7ZXNjYXBlU3RyaW5nKG4uc3Vic3RyaW5nKGUsdCkpfSkgVGpgKTtjb25zdCBkPW0uam9pbihgICR7bnVtYmVyVG9TdHJpbmcoaCl9IDAgVGQgYCk7cmV0dXJuYC9UeCBCTUMgcSAke3V9QlQgYCtlK2AgMSAwIDAgMSAke251bWJlclRvU3RyaW5nKGkpfSAke251bWJlclRvU3RyaW5nKG8rbCl9IFRtICR7ZH0gRVQgUSBFTUNgfV9nZXRNdWx0aWxpbmVBcHBlYXJhbmNlKGUsdCxuLGEscixzLGksbyxsLGYsYyxoKXtjb25zdCB1PVtdLG09ci0yKm8scD17c2hpZnQ6MH07Zm9yKGxldCBlPTAscz10Lmxlbmd0aDtlPHM7ZSsrKXtjb25zdCBzPXRbZV0saD10aGlzLl9zcGxpdExpbmUocyxuLGEsbSk7Zm9yKGxldCB0PTAscz1oLmxlbmd0aDt0PHM7dCsrKXtjb25zdCBzPWhbdF0sbT0wPT09ZSYmMD09PXQ/LWwtKGMtZik6LWM7dS5wdXNoKHRoaXMuX3JlbmRlclRleHQocyxuLGEscixpLHAsbyxtKSl9fWNvbnN0IGQ9dGhpcy5nZXRCb3JkZXJBbmRCYWNrZ3JvdW5kQXBwZWFyYW5jZXMoaCksZz11LmpvaW4oIlxuIik7cmV0dXJuYC9UeCBCTUMgcSAke2R9QlQgYCtlK2AgMSAwIDAgMSAwICR7bnVtYmVyVG9TdHJpbmcocyl9IFRtICR7Z30gRVQgUSBFTUNgfV9zcGxpdExpbmUoZSx0LG4sYSxyPXt9KXtlPXIubGluZXx8ZTtjb25zdCBzPXIuZ2x5cGhzfHx0LmNoYXJzVG9HbHlwaHMoZSk7aWYocy5sZW5ndGg8PTEpcmV0dXJuW2VdO2NvbnN0IGk9ci5wb3NpdGlvbnN8fHQuZ2V0Q2hhclBvc2l0aW9ucyhlKSxvPW4vMWUzLGw9W107bGV0IGY9LTEsYz0tMSxoPS0xLHU9MCxtPTA7Zm9yKGxldCB0PTAsbj1zLmxlbmd0aDt0PG47dCsrKXtjb25zdFtuLHJdPWlbdF0scD1zW3RdLGQ9cC53aWR0aCpvO2lmKCIgIj09PXAudW5pY29kZSlpZihtK2Q+YSl7bC5wdXNoKGUuc3Vic3RyaW5nKHUsbikpO3U9bjttPWQ7Zj0tMTtoPS0xfWVsc2V7bSs9ZDtmPW47Yz1yO2g9dH1lbHNlIGlmKG0rZD5hKWlmKC0xIT09Zil7bC5wdXNoKGUuc3Vic3RyaW5nKHUsYykpO3U9Yzt0PWgrMTtmPS0xO209MH1lbHNle2wucHVzaChlLnN1YnN0cmluZyh1LG4pKTt1PW47bT1kfWVsc2UgbSs9ZH11PGUubGVuZ3RoJiZsLnB1c2goZS5zdWJzdHJpbmcodSxlLmxlbmd0aCkpO3JldHVybiBsfWFzeW5jIGV4dHJhY3RUZXh0Q29udGVudChlLHQsbil7YXdhaXQgc3VwZXIuZXh0cmFjdFRleHRDb250ZW50KGUsdCxuKTtjb25zdCBhPXRoaXMuZGF0YS50ZXh0Q29udGVudDtpZighYSlyZXR1cm47Y29uc3Qgcj1hLmpvaW4oIlxuIik7aWYocj09PXRoaXMuZGF0YS5maWVsZFZhbHVlKXJldHVybjtjb25zdCBzPXIucmVwbGFjZUFsbCgvKFsuKis/XiR7fSgpfFtcXVxcXSl8KFxzKykvZywoZSx0KT0+dD9gXFwke3R9YDoiXFxzKyIpO25ldyBSZWdFeHAoYF5cXHMqJHtzfVxccyokYCkudGVzdCh0aGlzLmRhdGEuZmllbGRWYWx1ZSkmJih0aGlzLmRhdGEudGV4dENvbnRlbnQ9dGhpcy5kYXRhLmZpZWxkVmFsdWUuc3BsaXQoIlxuIikpfWdldEZpZWxkT2JqZWN0KCl7cmV0dXJue2lkOnRoaXMuZGF0YS5pZCx2YWx1ZTp0aGlzLmRhdGEuZmllbGRWYWx1ZSxkZWZhdWx0VmFsdWU6dGhpcy5kYXRhLmRlZmF1bHRGaWVsZFZhbHVlfHwiIixtdWx0aWxpbmU6dGhpcy5kYXRhLm11bHRpTGluZSxwYXNzd29yZDp0aGlzLmRhdGEucGFzc3dvcmQsY2hhckxpbWl0OnRoaXMuZGF0YS5tYXhMZW4sY29tYjp0aGlzLmRhdGEuY29tYixlZGl0YWJsZTohdGhpcy5kYXRhLnJlYWRPbmx5LGhpZGRlbjp0aGlzLmRhdGEuaGlkZGVuLG5hbWU6dGhpcy5kYXRhLmZpZWxkTmFtZSxyZWN0OnRoaXMuZGF0YS5yZWN0LGFjdGlvbnM6dGhpcy5kYXRhLmFjdGlvbnMscGFnZTp0aGlzLmRhdGEucGFnZUluZGV4LHN0cm9rZUNvbG9yOnRoaXMuZGF0YS5ib3JkZXJDb2xvcixmaWxsQ29sb3I6dGhpcy5kYXRhLmJhY2tncm91bmRDb2xvcixyb3RhdGlvbjp0aGlzLnJvdGF0aW9uLGRhdGV0aW1lRm9ybWF0OnRoaXMuZGF0YS5kYXRldGltZUZvcm1hdCxoYXNEYXRldGltZUhUTUw6ISF0aGlzLmRhdGEuZGF0ZXRpbWVUeXBlLHR5cGU6InRleHQifX19Y2xhc3MgQnV0dG9uV2lkZ2V0QW5ub3RhdGlvbiBleHRlbmRzIFdpZGdldEFubm90YXRpb257Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7dGhpcy5jaGVja2VkQXBwZWFyYW5jZT1udWxsO3RoaXMudW5jaGVja2VkQXBwZWFyYW5jZT1udWxsO2NvbnN0IHQ9dGhpcy5oYXNGaWVsZEZsYWcoJCksbj10aGlzLmhhc0ZpZWxkRmxhZyhZKTt0aGlzLmRhdGEuY2hlY2tCb3g9IXQmJiFuO3RoaXMuZGF0YS5yYWRpb0J1dHRvbj10JiYhbjt0aGlzLmRhdGEucHVzaEJ1dHRvbj1uO3RoaXMuZGF0YS5pc1Rvb2x0aXBPbmx5PSExO2lmKHRoaXMuZGF0YS5jaGVja0JveCl0aGlzLl9wcm9jZXNzQ2hlY2tCb3goZSk7ZWxzZSBpZih0aGlzLmRhdGEucmFkaW9CdXR0b24pdGhpcy5fcHJvY2Vzc1JhZGlvQnV0dG9uKGUpO2Vsc2UgaWYodGhpcy5kYXRhLnB1c2hCdXR0b24pe3RoaXMuZGF0YS5oYXNPd25DYW52YXM9ITA7dGhpcy5kYXRhLm5vSFRNTD0hMTt0aGlzLl9wcm9jZXNzUHVzaEJ1dHRvbihlKX1lbHNlIHdhcm4oIkludmFsaWQgZmllbGQgZmxhZ3MgZm9yIGJ1dHRvbiB3aWRnZXQgYW5ub3RhdGlvbiIpfWFzeW5jIGdldE9wZXJhdG9yTGlzdChlLHQsbixhKXtpZih0aGlzLmRhdGEucHVzaEJ1dHRvbilyZXR1cm4gc3VwZXIuZ2V0T3BlcmF0b3JMaXN0KGUsdCxuLCExLGEpO2xldCByPW51bGwscz1udWxsO2lmKGEpe2NvbnN0IGU9YS5nZXQodGhpcy5kYXRhLmlkKTtyPWU/ZS52YWx1ZTpudWxsO3M9ZT9lLnJvdGF0aW9uOm51bGx9aWYobnVsbD09PXImJnRoaXMuYXBwZWFyYW5jZSlyZXR1cm4gc3VwZXIuZ2V0T3BlcmF0b3JMaXN0KGUsdCxuLGEpO251bGw9PXImJihyPXRoaXMuZGF0YS5jaGVja0JveD90aGlzLmRhdGEuZmllbGRWYWx1ZT09PXRoaXMuZGF0YS5leHBvcnRWYWx1ZTp0aGlzLmRhdGEuZmllbGRWYWx1ZT09PXRoaXMuZGF0YS5idXR0b25WYWx1ZSk7Y29uc3QgaT1yP3RoaXMuY2hlY2tlZEFwcGVhcmFuY2U6dGhpcy51bmNoZWNrZWRBcHBlYXJhbmNlO2lmKGkpe2NvbnN0IHI9dGhpcy5hcHBlYXJhbmNlLG89bG9va3VwTWF0cml4KGkuZGljdC5nZXRBcnJheSgiTWF0cml4Iiksd24pO3MmJmkuZGljdC5zZXQoIk1hdHJpeCIsdGhpcy5nZXRSb3RhdGlvbk1hdHJpeChhKSk7dGhpcy5hcHBlYXJhbmNlPWk7Y29uc3QgbD1zdXBlci5nZXRPcGVyYXRvckxpc3QoZSx0LG4sYSk7dGhpcy5hcHBlYXJhbmNlPXI7aS5kaWN0LnNldCgiTWF0cml4IixvKTtyZXR1cm4gbH1yZXR1cm57b3BMaXN0Om5ldyBPcGVyYXRvckxpc3Qsc2VwYXJhdGVGb3JtOiExLHNlcGFyYXRlQ2FudmFzOiExfX1hc3luYyBzYXZlKGUsdCxuLGEpe3RoaXMuZGF0YS5jaGVja0JveD90aGlzLl9zYXZlQ2hlY2tib3goZSx0LG4sYSk6dGhpcy5kYXRhLnJhZGlvQnV0dG9uJiZ0aGlzLl9zYXZlUmFkaW9CdXR0b24oZSx0LG4sYSl9YXN5bmMgX3NhdmVDaGVja2JveChlLHQsbixhKXtpZighbilyZXR1cm47Y29uc3Qgcj1uLmdldCh0aGlzLmRhdGEuaWQpLHM9dGhpcy5fYnVpbGRGbGFncyhyPy5ub1ZpZXcscj8ubm9QcmludCk7bGV0IGk9cj8ucm90YXRpb24sbz1yPy52YWx1ZTtpZih2b2lkIDA9PT1pJiZ2b2lkIDA9PT1zKXtpZih2b2lkIDA9PT1vKXJldHVybjtpZih0aGlzLmRhdGEuZmllbGRWYWx1ZT09PXRoaXMuZGF0YS5leHBvcnRWYWx1ZT09PW8pcmV0dXJufWxldCBsPWUueHJlZi5mZXRjaElmUmVmKHRoaXMucmVmKTtpZighKGwgaW5zdGFuY2VvZiBEaWN0KSlyZXR1cm47bD1sLmNsb25lKCk7dm9pZCAwPT09aSYmKGk9dGhpcy5yb3RhdGlvbik7dm9pZCAwPT09byYmKG89dGhpcy5kYXRhLmZpZWxkVmFsdWU9PT10aGlzLmRhdGEuZXhwb3J0VmFsdWUpO2NvbnN0IGY9e3BhdGg6dGhpcy5kYXRhLmZpZWxkTmFtZSx2YWx1ZTpvP3RoaXMuZGF0YS5leHBvcnRWYWx1ZToiIn0sYz1OYW1lLmdldChvP3RoaXMuZGF0YS5leHBvcnRWYWx1ZToiT2ZmIik7dGhpcy5zZXRWYWx1ZShsLGMsZS54cmVmLGEpO2wuc2V0KCJBUyIsYyk7bC5zZXQoIk0iLGBEOiR7Z2V0TW9kaWZpY2F0aW9uRGF0ZSgpfWApO3ZvaWQgMCE9PXMmJmwuc2V0KCJGIixzKTtjb25zdCBoPXRoaXMuX2dldE1LRGljdChpKTtoJiZsLnNldCgiTUsiLGgpO2EucHV0KHRoaXMucmVmLHtkYXRhOmwseGZhOmYsbmVlZEFwcGVhcmFuY2VzOiExfSl9YXN5bmMgX3NhdmVSYWRpb0J1dHRvbihlLHQsbixhKXtpZighbilyZXR1cm47Y29uc3Qgcj1uLmdldCh0aGlzLmRhdGEuaWQpLHM9dGhpcy5fYnVpbGRGbGFncyhyPy5ub1ZpZXcscj8ubm9QcmludCk7bGV0IGk9cj8ucm90YXRpb24sbz1yPy52YWx1ZTtpZih2b2lkIDA9PT1pJiZ2b2lkIDA9PT1zKXtpZih2b2lkIDA9PT1vKXJldHVybjtpZih0aGlzLmRhdGEuZmllbGRWYWx1ZT09PXRoaXMuZGF0YS5idXR0b25WYWx1ZT09PW8pcmV0dXJufWxldCBsPWUueHJlZi5mZXRjaElmUmVmKHRoaXMucmVmKTtpZighKGwgaW5zdGFuY2VvZiBEaWN0KSlyZXR1cm47bD1sLmNsb25lKCk7dm9pZCAwPT09byYmKG89dGhpcy5kYXRhLmZpZWxkVmFsdWU9PT10aGlzLmRhdGEuYnV0dG9uVmFsdWUpO3ZvaWQgMD09PWkmJihpPXRoaXMucm90YXRpb24pO2NvbnN0IGY9e3BhdGg6dGhpcy5kYXRhLmZpZWxkTmFtZSx2YWx1ZTpvP3RoaXMuZGF0YS5idXR0b25WYWx1ZToiIn0sYz1OYW1lLmdldChvP3RoaXMuZGF0YS5idXR0b25WYWx1ZToiT2ZmIik7byYmdGhpcy5zZXRWYWx1ZShsLGMsZS54cmVmLGEpO2wuc2V0KCJBUyIsYyk7bC5zZXQoIk0iLGBEOiR7Z2V0TW9kaWZpY2F0aW9uRGF0ZSgpfWApO3ZvaWQgMCE9PXMmJmwuc2V0KCJGIixzKTtjb25zdCBoPXRoaXMuX2dldE1LRGljdChpKTtoJiZsLnNldCgiTUsiLGgpO2EucHV0KHRoaXMucmVmLHtkYXRhOmwseGZhOmYsbmVlZEFwcGVhcmFuY2VzOiExfSl9X2dldERlZmF1bHRDaGVja2VkQXBwZWFyYW5jZShlLHQpe2NvbnN0e3dpZHRoOm4saGVpZ2h0OmF9PXRoaXMscj1bMCwwLG4sYV0scz0uOCpNYXRoLm1pbihuLGEpO2xldCBpLG87aWYoImNoZWNrIj09PXQpe2k9e3dpZHRoOi43NTUqcyxoZWlnaHQ6LjcwNSpzfTtvPSIzIn1lbHNlIGlmKCJkaXNjIj09PXQpe2k9e3dpZHRoOi43OTEqcyxoZWlnaHQ6LjcwNSpzfTtvPSJsIn1lbHNlIHVucmVhY2hhYmxlKGBfZ2V0RGVmYXVsdENoZWNrZWRBcHBlYXJhbmNlIC0gdW5zdXBwb3J0ZWQgdHlwZTogJHt0fWApO2NvbnN0IGw9YHEgQlQgL1BkZkpzWmFEYiAke3N9IFRmIDAgZyAke251bWJlclRvU3RyaW5nKChuLWkud2lkdGgpLzIpfSAke251bWJlclRvU3RyaW5nKChhLWkuaGVpZ2h0KS8yKX0gVGQgKCR7b30pIFRqIEVUIFFgLGY9bmV3IERpY3QoZS54cmVmKTtmLnNldCgiRm9ybVR5cGUiLDEpO2Yuc2V0SWZOYW1lKCJTdWJ0eXBlIiwiRm9ybSIpO2Yuc2V0SWZOYW1lKCJUeXBlIiwiWE9iamVjdCIpO2Yuc2V0KCJCQm94IixyKTtmLnNldCgiTWF0cml4IixbMSwwLDAsMSwwLDBdKTtmLnNldCgiTGVuZ3RoIixsLmxlbmd0aCk7Y29uc3QgYz1uZXcgRGljdChlLnhyZWYpLGg9bmV3IERpY3QoZS54cmVmKTtoLnNldCgiUGRmSnNaYURiIix0aGlzLmZhbGxiYWNrRm9udERpY3QpO2Muc2V0KCJGb250IixoKTtmLnNldCgiUmVzb3VyY2VzIixjKTt0aGlzLmNoZWNrZWRBcHBlYXJhbmNlPW5ldyBTdHJpbmdTdHJlYW0obCk7dGhpcy5jaGVja2VkQXBwZWFyYW5jZS5kaWN0PWY7dGhpcy5fc3RyZWFtcy5wdXNoKHRoaXMuY2hlY2tlZEFwcGVhcmFuY2UpfV9wcm9jZXNzQ2hlY2tCb3goZSl7Y29uc3QgdD1lLmRpY3QuZ2V0KCJBUCIpO2lmKCEodCBpbnN0YW5jZW9mIERpY3QpKXJldHVybjtjb25zdCBuPXQuZ2V0KCJOIik7aWYoIShuIGluc3RhbmNlb2YgRGljdCkpcmV0dXJuO2NvbnN0IGE9dGhpcy5fZGVjb2RlRm9ybVZhbHVlKGUuZGljdC5nZXQoIkFTIikpOyJzdHJpbmciPT10eXBlb2YgYSYmKHRoaXMuZGF0YS5maWVsZFZhbHVlPWEpO2NvbnN0IHI9bnVsbCE9PXRoaXMuZGF0YS5maWVsZFZhbHVlJiYiT2ZmIiE9PXRoaXMuZGF0YS5maWVsZFZhbHVlP3RoaXMuZGF0YS5maWVsZFZhbHVlOiJZZXMiLHM9dGhpcy5fZGVjb2RlRm9ybVZhbHVlKG4uZ2V0S2V5cygpKTtpZigwPT09cy5sZW5ndGgpcy5wdXNoKCJPZmYiLHIpO2Vsc2UgaWYoMT09PXMubGVuZ3RoKSJPZmYiPT09c1swXT9zLnB1c2gocik6cy51bnNoaWZ0KCJPZmYiKTtlbHNlIGlmKHMuaW5jbHVkZXMocikpe3MubGVuZ3RoPTA7cy5wdXNoKCJPZmYiLHIpfWVsc2V7Y29uc3QgZT1zLmZpbmQoZT0+Ik9mZiIhPT1lKTtzLmxlbmd0aD0wO3MucHVzaCgiT2ZmIixlKX1zLmluY2x1ZGVzKHRoaXMuZGF0YS5maWVsZFZhbHVlKXx8KHRoaXMuZGF0YS5maWVsZFZhbHVlPSJPZmYiKTt0aGlzLmRhdGEuZXhwb3J0VmFsdWU9c1sxXTtjb25zdCBpPW4uZ2V0KHRoaXMuZGF0YS5leHBvcnRWYWx1ZSk7dGhpcy5jaGVja2VkQXBwZWFyYW5jZT1pIGluc3RhbmNlb2YgQmFzZVN0cmVhbT9pOm51bGw7Y29uc3Qgbz1uLmdldCgiT2ZmIik7dGhpcy51bmNoZWNrZWRBcHBlYXJhbmNlPW8gaW5zdGFuY2VvZiBCYXNlU3RyZWFtP286bnVsbDt0aGlzLmNoZWNrZWRBcHBlYXJhbmNlP3RoaXMuX3N0cmVhbXMucHVzaCh0aGlzLmNoZWNrZWRBcHBlYXJhbmNlKTp0aGlzLl9nZXREZWZhdWx0Q2hlY2tlZEFwcGVhcmFuY2UoZSwiY2hlY2siKTt0aGlzLnVuY2hlY2tlZEFwcGVhcmFuY2UmJnRoaXMuX3N0cmVhbXMucHVzaCh0aGlzLnVuY2hlY2tlZEFwcGVhcmFuY2UpO3RoaXMuX2ZhbGxiYWNrRm9udERpY3Q9dGhpcy5mYWxsYmFja0ZvbnREaWN0O251bGw9PT10aGlzLmRhdGEuZGVmYXVsdEZpZWxkVmFsdWUmJih0aGlzLmRhdGEuZGVmYXVsdEZpZWxkVmFsdWU9Ik9mZiIpfV9wcm9jZXNzUmFkaW9CdXR0b24oZSl7dGhpcy5kYXRhLmJ1dHRvblZhbHVlPW51bGw7Y29uc3QgdD1lLmRpY3QuZ2V0KCJQYXJlbnQiKTtpZih0IGluc3RhbmNlb2YgRGljdCl7dGhpcy5wYXJlbnQ9ZS5kaWN0LmdldFJhdygiUGFyZW50Iik7Y29uc3Qgbj10LmdldCgiViIpO24gaW5zdGFuY2VvZiBOYW1lJiYodGhpcy5kYXRhLmZpZWxkVmFsdWU9dGhpcy5fZGVjb2RlRm9ybVZhbHVlKG4pKX1jb25zdCBuPWUuZGljdC5nZXQoIkFQIik7aWYoIShuIGluc3RhbmNlb2YgRGljdCkpcmV0dXJuO2NvbnN0IGE9bi5nZXQoIk4iKTtpZighKGEgaW5zdGFuY2VvZiBEaWN0KSlyZXR1cm47Zm9yKGNvbnN0IGUgb2YgYS5nZXRLZXlzKCkpaWYoIk9mZiIhPT1lKXt0aGlzLmRhdGEuYnV0dG9uVmFsdWU9dGhpcy5fZGVjb2RlRm9ybVZhbHVlKGUpO2JyZWFrfWNvbnN0IHI9YS5nZXQodGhpcy5kYXRhLmJ1dHRvblZhbHVlKTt0aGlzLmNoZWNrZWRBcHBlYXJhbmNlPXIgaW5zdGFuY2VvZiBCYXNlU3RyZWFtP3I6bnVsbDtjb25zdCBzPWEuZ2V0KCJPZmYiKTt0aGlzLnVuY2hlY2tlZEFwcGVhcmFuY2U9cyBpbnN0YW5jZW9mIEJhc2VTdHJlYW0/czpudWxsO3RoaXMuY2hlY2tlZEFwcGVhcmFuY2U/dGhpcy5fc3RyZWFtcy5wdXNoKHRoaXMuY2hlY2tlZEFwcGVhcmFuY2UpOnRoaXMuX2dldERlZmF1bHRDaGVja2VkQXBwZWFyYW5jZShlLCJkaXNjIik7dGhpcy51bmNoZWNrZWRBcHBlYXJhbmNlJiZ0aGlzLl9zdHJlYW1zLnB1c2godGhpcy51bmNoZWNrZWRBcHBlYXJhbmNlKTt0aGlzLl9mYWxsYmFja0ZvbnREaWN0PXRoaXMuZmFsbGJhY2tGb250RGljdDtudWxsPT09dGhpcy5kYXRhLmRlZmF1bHRGaWVsZFZhbHVlJiYodGhpcy5kYXRhLmRlZmF1bHRGaWVsZFZhbHVlPSJPZmYiKX1fcHJvY2Vzc1B1c2hCdXR0b24oZSl7Y29uc3R7ZGljdDp0LGFubm90YXRpb25HbG9iYWxzOm59PWU7aWYodC5oYXMoIkEiKXx8dC5oYXMoIkFBIil8fHRoaXMuZGF0YS5hbHRlcm5hdGl2ZVRleHQpe3RoaXMuZGF0YS5pc1Rvb2x0aXBPbmx5PSF0LmhhcygiQSIpJiYhdC5oYXMoIkFBIik7Q2F0YWxvZy5wYXJzZURlc3REaWN0aW9uYXJ5KHtkZXN0RGljdDp0LHJlc3VsdE9iajp0aGlzLmRhdGEsZG9jQmFzZVVybDpuLmJhc2VVcmwsZG9jQXR0YWNobWVudHM6bi5hdHRhY2htZW50c30pfWVsc2Ugd2FybigiUHVzaCBidXR0b25zIHdpdGhvdXQgYWN0aW9uIGRpY3Rpb25hcmllcyBhcmUgbm90IHN1cHBvcnRlZCIpfWdldEZpZWxkT2JqZWN0KCl7bGV0IGUsdD0iYnV0dG9uIjtpZih0aGlzLmRhdGEuY2hlY2tCb3gpe3Q9ImNoZWNrYm94IjtlPXRoaXMuZGF0YS5leHBvcnRWYWx1ZX1lbHNlIGlmKHRoaXMuZGF0YS5yYWRpb0J1dHRvbil7dD0icmFkaW9idXR0b24iO2U9dGhpcy5kYXRhLmJ1dHRvblZhbHVlfXJldHVybntpZDp0aGlzLmRhdGEuaWQsdmFsdWU6dGhpcy5kYXRhLmZpZWxkVmFsdWV8fCJPZmYiLGRlZmF1bHRWYWx1ZTp0aGlzLmRhdGEuZGVmYXVsdEZpZWxkVmFsdWUsZXhwb3J0VmFsdWVzOmUsZWRpdGFibGU6IXRoaXMuZGF0YS5yZWFkT25seSxuYW1lOnRoaXMuZGF0YS5maWVsZE5hbWUscmVjdDp0aGlzLmRhdGEucmVjdCxoaWRkZW46dGhpcy5kYXRhLmhpZGRlbixhY3Rpb25zOnRoaXMuZGF0YS5hY3Rpb25zLHBhZ2U6dGhpcy5kYXRhLnBhZ2VJbmRleCxzdHJva2VDb2xvcjp0aGlzLmRhdGEuYm9yZGVyQ29sb3IsZmlsbENvbG9yOnRoaXMuZGF0YS5iYWNrZ3JvdW5kQ29sb3Iscm90YXRpb246dGhpcy5yb3RhdGlvbix0eXBlOnR9fWdldCBmYWxsYmFja0ZvbnREaWN0KCl7Y29uc3QgZT1uZXcgRGljdDtlLnNldElmTmFtZSgiQmFzZUZvbnQiLCJaYXBmRGluZ2JhdHMiKTtlLnNldElmTmFtZSgiVHlwZSIsIkZhbGxiYWNrVHlwZSIpO2Uuc2V0SWZOYW1lKCJTdWJ0eXBlIiwiRmFsbGJhY2tUeXBlIik7ZS5zZXRJZk5hbWUoIkVuY29kaW5nIiwiWmFwZkRpbmdiYXRzRW5jb2RpbmciKTtyZXR1cm4gc2hhZG93KHRoaXMsImZhbGxiYWNrRm9udERpY3QiLGUpfX1jbGFzcyBDaG9pY2VXaWRnZXRBbm5vdGF0aW9uIGV4dGVuZHMgV2lkZ2V0QW5ub3RhdGlvbntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTtjb25zdHtkaWN0OnQseHJlZjpufT1lO3RoaXMuaW5kaWNlcz10LmdldEFycmF5KCJJIik7dGhpcy5oYXNJbmRpY2VzPUFycmF5LmlzQXJyYXkodGhpcy5pbmRpY2VzKSYmdGhpcy5pbmRpY2VzLmxlbmd0aD4wO3RoaXMuZGF0YS5vcHRpb25zPVtdO2NvbnN0IGE9Z2V0SW5oZXJpdGFibGVQcm9wZXJ0eSh7ZGljdDp0LGtleToiT3B0In0pO2lmKEFycmF5LmlzQXJyYXkoYSkpZm9yKGxldCBlPTAsdD1hLmxlbmd0aDtlPHQ7ZSsrKXtjb25zdCB0PW4uZmV0Y2hJZlJlZihhW2VdKSxyPUFycmF5LmlzQXJyYXkodCk7dGhpcy5kYXRhLm9wdGlvbnNbZV09e2V4cG9ydFZhbHVlOnRoaXMuX2RlY29kZUZvcm1WYWx1ZShyP24uZmV0Y2hJZlJlZih0WzBdKTp0KSxkaXNwbGF5VmFsdWU6dGhpcy5fZGVjb2RlRm9ybVZhbHVlKHI/bi5mZXRjaElmUmVmKHRbMV0pOnQpfX1pZih0aGlzLmhhc0luZGljZXMpe3RoaXMuZGF0YS5maWVsZFZhbHVlPVtdO2NvbnN0IGU9dGhpcy5kYXRhLm9wdGlvbnMubGVuZ3RoO2Zvcihjb25zdCB0IG9mIHRoaXMuaW5kaWNlcylOdW1iZXIuaXNJbnRlZ2VyKHQpJiZ0Pj0wJiZ0PGUmJnRoaXMuZGF0YS5maWVsZFZhbHVlLnB1c2godGhpcy5kYXRhLm9wdGlvbnNbdF0uZXhwb3J0VmFsdWUpfWVsc2Uic3RyaW5nIj09dHlwZW9mIHRoaXMuZGF0YS5maWVsZFZhbHVlP3RoaXMuZGF0YS5maWVsZFZhbHVlPVt0aGlzLmRhdGEuZmllbGRWYWx1ZV06dGhpcy5kYXRhLmZpZWxkVmFsdWV8fD1bXTswPT09dGhpcy5kYXRhLm9wdGlvbnMubGVuZ3RoJiZ0aGlzLmRhdGEuZmllbGRWYWx1ZS5sZW5ndGg+MCYmKHRoaXMuZGF0YS5vcHRpb25zPXRoaXMuZGF0YS5maWVsZFZhbHVlLm1hcChlPT4oe2V4cG9ydFZhbHVlOmUsZGlzcGxheVZhbHVlOmV9KSkpO3RoaXMuZGF0YS5jb21ibz10aGlzLmhhc0ZpZWxkRmxhZyhKKTt0aGlzLmRhdGEubXVsdGlTZWxlY3Q9dGhpcy5oYXNGaWVsZEZsYWcoWik7dGhpcy5faGFzVGV4dD0hMH1nZXRGaWVsZE9iamVjdCgpe2NvbnN0IGU9dGhpcy5kYXRhLmNvbWJvPyJjb21ib2JveCI6Imxpc3Rib3giLHQ9dGhpcy5kYXRhLmZpZWxkVmFsdWUubGVuZ3RoPjA/dGhpcy5kYXRhLmZpZWxkVmFsdWVbMF06bnVsbDtyZXR1cm57aWQ6dGhpcy5kYXRhLmlkLHZhbHVlOnQsZGVmYXVsdFZhbHVlOnRoaXMuZGF0YS5kZWZhdWx0RmllbGRWYWx1ZSxlZGl0YWJsZTohdGhpcy5kYXRhLnJlYWRPbmx5LG5hbWU6dGhpcy5kYXRhLmZpZWxkTmFtZSxyZWN0OnRoaXMuZGF0YS5yZWN0LG51bUl0ZW1zOnRoaXMuZGF0YS5maWVsZFZhbHVlLmxlbmd0aCxtdWx0aXBsZVNlbGVjdGlvbjp0aGlzLmRhdGEubXVsdGlTZWxlY3QsaGlkZGVuOnRoaXMuZGF0YS5oaWRkZW4sYWN0aW9uczp0aGlzLmRhdGEuYWN0aW9ucyxpdGVtczp0aGlzLmRhdGEub3B0aW9ucyxwYWdlOnRoaXMuZGF0YS5wYWdlSW5kZXgsc3Ryb2tlQ29sb3I6dGhpcy5kYXRhLmJvcmRlckNvbG9yLGZpbGxDb2xvcjp0aGlzLmRhdGEuYmFja2dyb3VuZENvbG9yLHJvdGF0aW9uOnRoaXMucm90YXRpb24sdHlwZTplfX1hbWVuZFNhdmVkRGljdChlLHQpe2lmKCF0aGlzLmhhc0luZGljZXMpcmV0dXJuO2xldCBuPWU/LmdldCh0aGlzLmRhdGEuaWQpPy52YWx1ZTtBcnJheS5pc0FycmF5KG4pfHwobj1bbl0pO2NvbnN0IGE9W10se29wdGlvbnM6cn09dGhpcy5kYXRhO2ZvcihsZXQgZT0wLHQ9MCxzPXIubGVuZ3RoO2U8cztlKyspaWYocltlXS5leHBvcnRWYWx1ZT09PW5bdF0pe2EucHVzaChlKTt0Kz0xfXQuc2V0KCJJIixhKX1hc3luYyBfZ2V0QXBwZWFyYW5jZShlLHQsbixhKXtpZih0aGlzLmRhdGEuY29tYm8pcmV0dXJuIHN1cGVyLl9nZXRBcHBlYXJhbmNlKGUsdCxuLGEpO2xldCBzLGk7Y29uc3Qgbz1hPy5nZXQodGhpcy5kYXRhLmlkKTtpZihvKXtpPW8ucm90YXRpb247cz1vLnZhbHVlfWlmKHZvaWQgMD09PWkmJnZvaWQgMD09PXMmJiF0aGlzLl9uZWVkQXBwZWFyYW5jZXMpcmV0dXJuIG51bGw7dm9pZCAwPT09cz9zPXRoaXMuZGF0YS5maWVsZFZhbHVlOkFycmF5LmlzQXJyYXkocyl8fChzPVtzXSk7bGV0e3dpZHRoOmwsaGVpZ2h0OmZ9PXRoaXM7OTAhPT1pJiYyNzAhPT1pfHwoW2wsZl09W2YsbF0pO2NvbnN0IGM9dGhpcy5kYXRhLm9wdGlvbnMubGVuZ3RoLGg9W107Zm9yKGxldCBlPTA7ZTxjO2UrKyl7Y29uc3R7ZXhwb3J0VmFsdWU6dH09dGhpcy5kYXRhLm9wdGlvbnNbZV07cy5pbmNsdWRlcyh0KSYmaC5wdXNoKGUpfXRoaXMuX2RlZmF1bHRBcHBlYXJhbmNlfHwodGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YT1wYXJzZURlZmF1bHRBcHBlYXJhbmNlKHRoaXMuX2RlZmF1bHRBcHBlYXJhbmNlPSIvSGVsdmV0aWNhIDAgVGYgMCBnIikpO2NvbnN0IHU9YXdhaXQgV2lkZ2V0QW5ub3RhdGlvbi5fZ2V0Rm9udERhdGEoZSx0LHRoaXMuZGF0YS5kZWZhdWx0QXBwZWFyYW5jZURhdGEsdGhpcy5fZmllbGRSZXNvdXJjZXMubWVyZ2VkUmVzb3VyY2VzKTtsZXQgbSx7Zm9udFNpemU6cH09dGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YTtpZihwKW09dGhpcy5fZGVmYXVsdEFwcGVhcmFuY2U7ZWxzZXtjb25zdCBlPShmLTEpL2M7bGV0IHQsbj0tMTtmb3IoY29uc3R7ZGlzcGxheVZhbHVlOmV9b2YgdGhpcy5kYXRhLm9wdGlvbnMpe2NvbnN0IGE9dGhpcy5fZ2V0VGV4dFdpZHRoKGUsdSk7aWYoYT5uKXtuPWE7dD1lfX1bbSxwXT10aGlzLl9jb21wdXRlRm9udFNpemUoZSxsLTQsdCx1LC0xKX1jb25zdCBkPXAqcixnPShkLXApLzIsYj1NYXRoLmZsb29yKGYvZCk7bGV0IHc9MDtpZihoLmxlbmd0aD4wKXtjb25zdCBlPU1hdGgubWluKC4uLmgpLHQ9TWF0aC5tYXgoLi4uaCk7dz1NYXRoLm1heCgwLHQtYisxKTt3PmUmJih3PWUpfWNvbnN0IGo9TWF0aC5taW4odytiKzEsYyksaz1bIi9UeCBCTUMgcSIsYDEgMSAke2x9ICR7Zn0gcmUgVyBuYF07aWYoaC5sZW5ndGgpe2sucHVzaCgiMC42MDAwMDYgMC43NTY4NjYgMC44NTQ5MDQgcmciKTtmb3IoY29uc3QgZSBvZiBoKXc8PWUmJmU8aiYmay5wdXNoKGAxICR7Zi0oZS13KzEpKmR9ICR7bH0gJHtkfSByZSBmYCl9ay5wdXNoKCJCVCIsbSxgMSAwIDAgMSAwICR7Zn0gVG1gKTtjb25zdCB5PXtzaGlmdDowfTtmb3IobGV0IGU9dztlPGo7ZSsrKXtjb25zdHtkaXNwbGF5VmFsdWU6dH09dGhpcy5kYXRhLm9wdGlvbnNbZV0sbj1lPT09dz9nOjA7ay5wdXNoKHRoaXMuX3JlbmRlclRleHQodCx1LHAsbCwwLHksMiwtZCtuKSl9ay5wdXNoKCJFVCBRIEVNQyIpO3JldHVybiBrLmpvaW4oIlxuIil9fWNsYXNzIFNpZ25hdHVyZVdpZGdldEFubm90YXRpb24gZXh0ZW5kcyBXaWRnZXRBbm5vdGF0aW9ue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO3RoaXMuZGF0YS5maWVsZFZhbHVlPW51bGw7dGhpcy5kYXRhLmhhc093bkNhbnZhcz10aGlzLmRhdGEubm9Sb3RhdGU7dGhpcy5kYXRhLm5vSFRNTD0hdGhpcy5kYXRhLmhhc093bkNhbnZhc31nZXRGaWVsZE9iamVjdCgpe3JldHVybntpZDp0aGlzLmRhdGEuaWQsdmFsdWU6bnVsbCxwYWdlOnRoaXMuZGF0YS5wYWdlSW5kZXgsdHlwZToic2lnbmF0dXJlIn19fWNsYXNzIFRleHRBbm5vdGF0aW9uIGV4dGVuZHMgTWFya3VwQW5ub3RhdGlvbntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTt0aGlzLmRhdGEubm9Sb3RhdGU9ITA7dGhpcy5kYXRhLmhhc093bkNhbnZhcz10aGlzLmRhdGEubm9Sb3RhdGU7dGhpcy5kYXRhLm5vSFRNTD0hMTtjb25zdHtkaWN0OnR9PWU7aWYodGhpcy5kYXRhLmhhc0FwcGVhcmFuY2UpdGhpcy5kYXRhLm5hbWU9Ik5vSWNvbiI7ZWxzZXt0aGlzLmRhdGEucmVjdFsxXT10aGlzLmRhdGEucmVjdFszXS0yMjt0aGlzLmRhdGEucmVjdFsyXT10aGlzLmRhdGEucmVjdFswXSsyMjt0aGlzLmRhdGEubmFtZT10LmhhcygiTmFtZSIpP3QuZ2V0KCJOYW1lIikubmFtZToiTm90ZSJ9aWYodC5oYXMoIlN0YXRlIikpe3RoaXMuZGF0YS5zdGF0ZT10LmdldCgiU3RhdGUiKXx8bnVsbDt0aGlzLmRhdGEuc3RhdGVNb2RlbD10LmdldCgiU3RhdGVNb2RlbCIpfHxudWxsfWVsc2V7dGhpcy5kYXRhLnN0YXRlPW51bGw7dGhpcy5kYXRhLnN0YXRlTW9kZWw9bnVsbH19fWNsYXNzIExpbmtBbm5vdGF0aW9uIGV4dGVuZHMgQW5ub3RhdGlvbntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTtjb25zdHtkaWN0OnQsYW5ub3RhdGlvbkdsb2JhbHM6bn09ZTt0aGlzLmRhdGEubm9IVE1MPSExO2NvbnN0IGE9Z2V0UXVhZFBvaW50cyh0LHRoaXMucmVjdGFuZ2xlKTthJiYodGhpcy5kYXRhLnF1YWRQb2ludHM9YSk7dGhpcy5kYXRhLmJvcmRlckNvbG9yfHw9dGhpcy5kYXRhLmNvbG9yO0NhdGFsb2cucGFyc2VEZXN0RGljdGlvbmFyeSh7ZGVzdERpY3Q6dCxyZXN1bHRPYmo6dGhpcy5kYXRhLGRvY0Jhc2VVcmw6bi5iYXNlVXJsLGRvY0F0dGFjaG1lbnRzOm4uYXR0YWNobWVudHN9KX1nZXQgb3ZlcmxheXNUZXh0Q29udGVudCgpe3JldHVybiEwfX1jbGFzcyBQb3B1cEFubm90YXRpb24gZXh0ZW5kcyBBbm5vdGF0aW9ue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO2NvbnN0e2RpY3Q6dH09ZTt0aGlzLmRhdGEubm9IVE1MPSExOzAhPT10aGlzLndpZHRoJiYwIT09dGhpcy5oZWlnaHR8fCh0aGlzLmRhdGEucmVjdD1udWxsKTtsZXQgbj10LmdldCgiUGFyZW50Iik7aWYoIW4pe3dhcm4oIlBvcHVwIGFubm90YXRpb24gaGFzIGEgbWlzc2luZyBvciBpbnZhbGlkIHBhcmVudCBhbm5vdGF0aW9uLiIpO3JldHVybn10aGlzLmRhdGEucGFyZW50UmVjdD1sb29rdXBOb3JtYWxSZWN0KG4uZ2V0QXJyYXkoIlJlY3QiKSxudWxsKTt0aGlzLmRhdGEuY3JlYXRpb25EYXRlPW4uZ2V0KCJDcmVhdGlvbkRhdGUiKXx8IiI7aXNOYW1lKG4uZ2V0KCJSVCIpLEQpJiYobj1uLmdldCgiSVJUIikpO2lmKG4uaGFzKCJNIikpe3RoaXMuc2V0TW9kaWZpY2F0aW9uRGF0ZShuLmdldCgiTSIpKTt0aGlzLmRhdGEubW9kaWZpY2F0aW9uRGF0ZT10aGlzLm1vZGlmaWNhdGlvbkRhdGV9ZWxzZSB0aGlzLmRhdGEubW9kaWZpY2F0aW9uRGF0ZT1udWxsO2lmKG4uaGFzKCJDIikpe3RoaXMuc2V0Q29sb3Iobi5nZXRBcnJheSgiQyIpKTt0aGlzLmRhdGEuY29sb3I9dGhpcy5jb2xvcn1lbHNlIHRoaXMuZGF0YS5jb2xvcj1udWxsO2lmKCF0aGlzLnZpZXdhYmxlKXtjb25zdCBlPW4uZ2V0KCJGIik7dGhpcy5faXNWaWV3YWJsZShlKSYmdGhpcy5zZXRGbGFncyhlKX10aGlzLnNldFRpdGxlKG4uZ2V0KCJUIikpO3RoaXMuZGF0YS50aXRsZU9iaj10aGlzLl90aXRsZTt0aGlzLnNldENvbnRlbnRzKG4uZ2V0KCJDb250ZW50cyIpKTt0aGlzLmRhdGEuY29udGVudHNPYmo9dGhpcy5fY29udGVudHM7bi5oYXMoIlJDIikmJih0aGlzLmRhdGEucmljaFRleHQ9WEZBRmFjdG9yeS5nZXRSaWNoVGV4dEFzSHRtbChuLmdldCgiUkMiKSkpO3RoaXMuZGF0YS5vcGVuPSEhdC5nZXQoIk9wZW4iKX1zdGF0aWMgY3JlYXRlTmV3RGljdChlLHQsbil7Y29uc3R7b2xkQW5ub3RhdGlvbjphLHJlY3Q6cixwYXJlbnQ6c309ZSxpPWF8fG5ldyBEaWN0KHQpO2kuc2V0SWZOb3RFeGlzdHMoIlR5cGUiLE5hbWUuZ2V0KCJBbm5vdCIpKTtpLnNldElmTm90RXhpc3RzKCJTdWJ0eXBlIixOYW1lLmdldCgiUG9wdXAiKSk7aS5zZXRJZk5vdEV4aXN0cygiT3BlbiIsITEpO2kuc2V0SWZBcnJheSgiUmVjdCIscik7aS5zZXQoIlBhcmVudCIscyk7cmV0dXJuIGl9c3RhdGljIGFzeW5jIGNyZWF0ZU5ld0FwcGVhcmFuY2VTdHJlYW0oZSx0LG4pe3JldHVybiBudWxsfX1jbGFzcyBGcmVlVGV4dEFubm90YXRpb24gZXh0ZW5kcyBNYXJrdXBBbm5vdGF0aW9ue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO3RoaXMuZGF0YS5oYXNPd25DYW52YXM9dGhpcy5kYXRhLm5vUm90YXRlO3RoaXMuZGF0YS5pc0VkaXRhYmxlPSF0aGlzLmRhdGEubm9IVE1MO3RoaXMuZGF0YS5ub0hUTUw9ITE7Y29uc3R7YW5ub3RhdGlvbkdsb2JhbHM6dCxldmFsdWF0b3JPcHRpb25zOm4seHJlZjphfT1lO3RoaXMuc2V0RGVmYXVsdEFwcGVhcmFuY2UoZSk7dGhpcy5faGFzQXBwZWFyYW5jZT0hIXRoaXMuYXBwZWFyYW5jZTtpZih0aGlzLl9oYXNBcHBlYXJhbmNlKXtjb25zdHtmb250Q29sb3I6ZSxmb250U2l6ZTpyfT1mdW5jdGlvbiBwYXJzZUFwcGVhcmFuY2VTdHJlYW0oZSx0LG4sYSl7cmV0dXJuIG5ldyBBcHBlYXJhbmNlU3RyZWFtRXZhbHVhdG9yKGUsdCxuLGEpLnBhcnNlKCl9KHRoaXMuYXBwZWFyYW5jZSxuLGEsdC5nbG9iYWxDb2xvclNwYWNlQ2FjaGUpO3RoaXMuZGF0YS5kZWZhdWx0QXBwZWFyYW5jZURhdGEuZm9udENvbG9yPWU7dGhpcy5kYXRhLmRlZmF1bHRBcHBlYXJhbmNlRGF0YS5mb250U2l6ZT1yfHwxMH1lbHNle3RoaXMuZGF0YS5kZWZhdWx0QXBwZWFyYW5jZURhdGEuZm9udFNpemV8fD0xMDtjb25zdHtmb250Q29sb3I6dCxmb250U2l6ZTpufT10aGlzLmRhdGEuZGVmYXVsdEFwcGVhcmFuY2VEYXRhO2lmKHRoaXMuX2NvbnRlbnRzLnN0cil7dGhpcy5kYXRhLnRleHRDb250ZW50PXRoaXMuX2NvbnRlbnRzLnN0ci5zcGxpdCgvXHJcbj98XG4vKS5tYXAoZT0+ZS50cmltRW5kKCkpO2NvbnN0e2Nvb3JkczplLGJib3g6dCxtYXRyaXg6YX09RmFrZVVuaWNvZGVGb250LmdldEZpcnN0UG9zaXRpb25JbmZvKHRoaXMucmVjdGFuZ2xlLHRoaXMucm90YXRpb24sbik7dGhpcy5kYXRhLnRleHRQb3NpdGlvbj10aGlzLl90cmFuc2Zvcm1Qb2ludChlLHQsYSl9aWYodGhpcy5faXNPZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQpe2NvbnN0IHI9ZS5kaWN0LmdldCgiQ0EiKSxzPW5ldyBGYWtlVW5pY29kZUZvbnQoYSwic2Fucy1zZXJpZiIpO3RoaXMuYXBwZWFyYW5jZT1zLmNyZWF0ZUFwcGVhcmFuY2UodGhpcy5fY29udGVudHMuc3RyLHRoaXMucmVjdGFuZ2xlLHRoaXMucm90YXRpb24sbix0LHIpO3RoaXMuX3N0cmVhbXMucHVzaCh0aGlzLmFwcGVhcmFuY2UpfWVsc2Ugd2FybigiRnJlZVRleHRBbm5vdGF0aW9uOiBPZmZzY3JlZW5DYW52YXMgaXMgbm90IHN1cHBvcnRlZCwgYW5ub3RhdGlvbiBtYXkgbm90IHJlbmRlciBjb3JyZWN0bHkuIil9fWdldCBoYXNUZXh0Q29udGVudCgpe3JldHVybiB0aGlzLl9oYXNBcHBlYXJhbmNlfXN0YXRpYyBjcmVhdGVOZXdEaWN0KGUsdCx7YXBSZWY6bixhcDphfSl7Y29uc3R7Y29sb3I6cixkYXRlOnMsZm9udFNpemU6aSxvbGRBbm5vdGF0aW9uOm8scmVjdDpsLHJvdGF0aW9uOmYsdXNlcjpjLHZhbHVlOmh9PWUsdT1vfHxuZXcgRGljdCh0KTt1LnNldElmTm90RXhpc3RzKCJUeXBlIixOYW1lLmdldCgiQW5ub3QiKSk7dS5zZXRJZk5vdEV4aXN0cygiU3VidHlwZSIsTmFtZS5nZXQoIkZyZWVUZXh0IikpO3Uuc2V0KG8/Ik0iOiJDcmVhdGlvbkRhdGUiLGBEOiR7Z2V0TW9kaWZpY2F0aW9uRGF0ZShzKX1gKTtvJiZ1LmRlbGV0ZSgiUkMiKTt1LnNldElmQXJyYXkoIlJlY3QiLGwpO2NvbnN0IG09YC9IZWx2ICR7aX0gVGYgJHtnZXRQZGZDb2xvcihyLCEwKX1gO3Uuc2V0KCJEQSIsbSk7dS5zZXRJZkRlZmluZWQoIkNvbnRlbnRzIixzdHJpbmdUb0FzY2lpT3JVVEYxNkJFKGgpKTt1LnNldElmTm90RXhpc3RzKCJGIiw0KTt1LnNldElmTm90RXhpc3RzKCJCb3JkZXIiLFswLDAsMF0pO3Uuc2V0SWZOdW1iZXIoIlJvdGF0ZSIsZik7dS5zZXRJZkRlZmluZWQoIlQiLHN0cmluZ1RvQXNjaWlPclVURjE2QkUoYykpO2lmKG58fGEpe2NvbnN0IGU9bmV3IERpY3QodCk7dS5zZXQoIkFQIixlKTtlLnNldCgiTiIsbnx8YSl9cmV0dXJuIHV9c3RhdGljIGFzeW5jIGNyZWF0ZU5ld0FwcGVhcmFuY2VTdHJlYW0oZSx0LG4pe2NvbnN0e2Jhc2VGb250UmVmOmEsZXZhbHVhdG9yOnMsdGFzazppfT1uLHtjb2xvcjpvLGZvbnRTaXplOmwscmVjdDpmLHJvdGF0aW9uOmMsdmFsdWU6aH09ZTtpZighbylyZXR1cm4gbnVsbDtjb25zdCB1PW5ldyBEaWN0KHQpLG09bmV3IERpY3QodCk7aWYoYSltLnNldCgiSGVsdiIsYSk7ZWxzZXtjb25zdCBlPW5ldyBEaWN0KHQpO2Uuc2V0SWZOYW1lKCJCYXNlRm9udCIsIkhlbHZldGljYSIpO2Uuc2V0SWZOYW1lKCJUeXBlIiwiRm9udCIpO2Uuc2V0SWZOYW1lKCJTdWJ0eXBlIiwiVHlwZTEiKTtlLnNldElmTmFtZSgiRW5jb2RpbmciLCJXaW5BbnNpRW5jb2RpbmciKTttLnNldCgiSGVsdiIsZSl9dS5zZXQoIkZvbnQiLG0pO2NvbnN0IHA9YXdhaXQgV2lkZ2V0QW5ub3RhdGlvbi5fZ2V0Rm9udERhdGEocyxpLHtmb250TmFtZToiSGVsdiIsZm9udFNpemU6bH0sdSksW2QsZyxiLHddPWY7bGV0IGo9Yi1kLGs9dy1nO2MlMTgwIT0wJiYoW2osa109W2ssal0pO2NvbnN0IHk9aC5zcGxpdCgiXG4iKSxxPWwvMWUzO2xldCB2PS0xLzA7Y29uc3QgUz1bXTtmb3IobGV0IGUgb2YgeSl7Y29uc3QgdD1wLmVuY29kZVN0cmluZyhlKTtpZih0Lmxlbmd0aD4xKXJldHVybiBudWxsO2U9dC5qb2luKCIiKTtTLnB1c2goZSk7bGV0IG49MDtjb25zdCBhPXAuY2hhcnNUb0dseXBocyhlKTtmb3IoY29uc3QgZSBvZiBhKW4rPWUud2lkdGgqcTt2PU1hdGgubWF4KHYsbil9bGV0IHg9MTt2PmomJih4PWovdik7bGV0IEM9MTtjb25zdCBUPXIqbCxPPTEqbCxSPVQqeS5sZW5ndGg7Uj5rJiYoQz1rL1IpO2NvbnN0IEg9bCpNYXRoLm1pbih4LEMpO2xldCBELE0sRTtzd2l0Y2goYyl7Y2FzZSAwOkU9WzEsMCwwLDFdO009W2ZbMF0sZlsxXSxqLGtdO0Q9W2ZbMF0sZlszXS1PXTticmVhaztjYXNlIDkwOkU9WzAsMSwtMSwwXTtNPVtmWzFdLC1mWzJdLGosa107RD1bZlsxXSwtZlswXS1PXTticmVhaztjYXNlIDE4MDpFPVstMSwwLDAsLTFdO009Wy1mWzJdLC1mWzNdLGosa107RD1bLWZbMl0sLWZbMV0tT107YnJlYWs7Y2FzZSAyNzA6RT1bMCwtMSwxLDBdO009Wy1mWzNdLGZbMF0saixrXTtEPVstZlszXSxmWzJdLU9dfWNvbnN0IE49WyJxIixgJHtFLmpvaW4oIiAiKX0gMCAwIGNtYCxgJHtNLmpvaW4oIiAiKX0gcmUgVyBuYCwiQlQiLGAke2dldFBkZkNvbG9yKG8sITApfWAsYDAgVGMgL0hlbHYgJHtudW1iZXJUb1N0cmluZyhIKX0gVGZgXTtOLnB1c2goYCR7RC5qb2luKCIgIil9IFRkICgke2VzY2FwZVN0cmluZyhTWzBdKX0pIFRqYCk7Y29uc3Qgej1udW1iZXJUb1N0cmluZyhUKTtmb3IobGV0IGU9MSx0PVMubGVuZ3RoO2U8dDtlKyspe2NvbnN0IHQ9U1tlXTtOLnB1c2goYDAgLSR7en0gVGQgKCR7ZXNjYXBlU3RyaW5nKHQpfSkgVGpgKX1OLnB1c2goIkVUIiwiUSIpO2NvbnN0IF89Ti5qb2luKCJcbiIpLEw9bmV3IERpY3QodCk7TC5zZXQoIkZvcm1UeXBlIiwxKTtMLnNldElmTmFtZSgiU3VidHlwZSIsIkZvcm0iKTtMLnNldElmTmFtZSgiVHlwZSIsIlhPYmplY3QiKTtMLnNldCgiQkJveCIsZik7TC5zZXQoIlJlc291cmNlcyIsdSk7TC5zZXQoIk1hdHJpeCIsWzEsMCwwLDEsLWZbMF0sLWZbMV1dKTtjb25zdCBVPW5ldyBTdHJpbmdTdHJlYW0oXyk7VS5kaWN0PUw7cmV0dXJuIFV9fWNsYXNzIExpbmVBbm5vdGF0aW9uIGV4dGVuZHMgTWFya3VwQW5ub3RhdGlvbntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTtjb25zdHtkaWN0OnQseHJlZjpufT1lO3RoaXMuZGF0YS5oYXNPd25DYW52YXM9dGhpcy5kYXRhLm5vUm90YXRlO3RoaXMuZGF0YS5ub0hUTUw9ITE7Y29uc3QgYT1sb29rdXBSZWN0KHQuZ2V0QXJyYXkoIkwiKSxbMCwwLDAsMF0pO3RoaXMuZGF0YS5saW5lQ29vcmRpbmF0ZXM9VXRpbC5ub3JtYWxpemVSZWN0KGEpO3RoaXMuc2V0TGluZUVuZGluZ3ModC5nZXRBcnJheSgiTEUiKSk7dGhpcy5kYXRhLmxpbmVFbmRpbmdzPXRoaXMubGluZUVuZGluZ3M7aWYoIXRoaXMuYXBwZWFyYW5jZSl7Y29uc3QgZT1nZXRQZGZDb2xvckFycmF5KHRoaXMuY29sb3IsWzAsMCwwXSkscj10LmdldCgiQ0EiKSxzPWdldFBkZkNvbG9yQXJyYXkoZ2V0UmdiQ29sb3IodC5nZXRBcnJheSgiSUMiKSxudWxsKSksaT1zP3I6bnVsbCxvPXRoaXMuYm9yZGVyU3R5bGUud2lkdGh8fDEsbD0yKm8sZj1bdGhpcy5kYXRhLmxpbmVDb29yZGluYXRlc1swXS1sLHRoaXMuZGF0YS5saW5lQ29vcmRpbmF0ZXNbMV0tbCx0aGlzLmRhdGEubGluZUNvb3JkaW5hdGVzWzJdK2wsdGhpcy5kYXRhLmxpbmVDb29yZGluYXRlc1szXStsXTtVdGlsLmludGVyc2VjdCh0aGlzLnJlY3RhbmdsZSxmKXx8KHRoaXMucmVjdGFuZ2xlPWYpO3RoaXMuX3NldERlZmF1bHRBcHBlYXJhbmNlKHt4cmVmOm4sZXh0cmE6YCR7b30gd2Asc3Ryb2tlQ29sb3I6ZSxmaWxsQ29sb3I6cyxzdHJva2VBbHBoYTpyLGZpbGxBbHBoYTppLHBvaW50c0NhbGxiYWNrOihlLHQpPT57ZS5wdXNoKGAke2FbMF19ICR7YVsxXX0gbWAsYCR7YVsyXX0gJHthWzNdfSBsYCwiUyIpO3JldHVyblt0WzBdLW8sdFs3XS1vLHRbMl0rbyx0WzNdK29dfX0pfX19Y2xhc3MgU3F1YXJlQW5ub3RhdGlvbiBleHRlbmRzIE1hcmt1cEFubm90YXRpb257Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7Y29uc3R7ZGljdDp0LHhyZWY6bn09ZTt0aGlzLmRhdGEuaGFzT3duQ2FudmFzPXRoaXMuZGF0YS5ub1JvdGF0ZTt0aGlzLmRhdGEubm9IVE1MPSExO2lmKCF0aGlzLmFwcGVhcmFuY2Upe2NvbnN0IGU9Z2V0UGRmQ29sb3JBcnJheSh0aGlzLmNvbG9yLFswLDAsMF0pLGE9dC5nZXQoIkNBIikscj1nZXRQZGZDb2xvckFycmF5KGdldFJnYkNvbG9yKHQuZ2V0QXJyYXkoIklDIiksbnVsbCkpLHM9cj9hOm51bGw7aWYoMD09PXRoaXMuYm9yZGVyU3R5bGUud2lkdGgmJiFyKXJldHVybjt0aGlzLl9zZXREZWZhdWx0QXBwZWFyYW5jZSh7eHJlZjpuLGV4dHJhOmAke3RoaXMuYm9yZGVyU3R5bGUud2lkdGh9IHdgLHN0cm9rZUNvbG9yOmUsZmlsbENvbG9yOnIsc3Ryb2tlQWxwaGE6YSxmaWxsQWxwaGE6cyxwb2ludHNDYWxsYmFjazooZSx0KT0+e2NvbnN0IG49dFs0XSt0aGlzLmJvcmRlclN0eWxlLndpZHRoLzIsYT10WzVdK3RoaXMuYm9yZGVyU3R5bGUud2lkdGgvMixzPXRbNl0tdFs0XS10aGlzLmJvcmRlclN0eWxlLndpZHRoLGk9dFszXS10WzddLXRoaXMuYm9yZGVyU3R5bGUud2lkdGg7ZS5wdXNoKGAke259ICR7YX0gJHtzfSAke2l9IHJlYCk7cj9lLnB1c2goIkIiKTplLnB1c2goIlMiKTtyZXR1cm5bdFswXSx0WzddLHRbMl0sdFszXV19fSl9fX1jbGFzcyBDaXJjbGVBbm5vdGF0aW9uIGV4dGVuZHMgTWFya3VwQW5ub3RhdGlvbntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTtjb25zdHtkaWN0OnQseHJlZjpufT1lO2lmKCF0aGlzLmFwcGVhcmFuY2Upe2NvbnN0IGU9Z2V0UGRmQ29sb3JBcnJheSh0aGlzLmNvbG9yLFswLDAsMF0pLGE9dC5nZXQoIkNBIikscj1nZXRQZGZDb2xvckFycmF5KGdldFJnYkNvbG9yKHQuZ2V0QXJyYXkoIklDIiksbnVsbCkpLHM9cj9hOm51bGw7aWYoMD09PXRoaXMuYm9yZGVyU3R5bGUud2lkdGgmJiFyKXJldHVybjtjb25zdCBpPTQvMypNYXRoLnRhbihNYXRoLlBJLzgpO3RoaXMuX3NldERlZmF1bHRBcHBlYXJhbmNlKHt4cmVmOm4sZXh0cmE6YCR7dGhpcy5ib3JkZXJTdHlsZS53aWR0aH0gd2Asc3Ryb2tlQ29sb3I6ZSxmaWxsQ29sb3I6cixzdHJva2VBbHBoYTphLGZpbGxBbHBoYTpzLHBvaW50c0NhbGxiYWNrOihlLHQpPT57Y29uc3Qgbj10WzBdK3RoaXMuYm9yZGVyU3R5bGUud2lkdGgvMixhPXRbMV0tdGhpcy5ib3JkZXJTdHlsZS53aWR0aC8yLHM9dFs2XS10aGlzLmJvcmRlclN0eWxlLndpZHRoLzIsbz10WzddK3RoaXMuYm9yZGVyU3R5bGUud2lkdGgvMixsPW4rKHMtbikvMixmPWErKG8tYSkvMixjPShzLW4pLzIqaSxoPShvLWEpLzIqaTtlLnB1c2goYCR7bH0gJHtvfSBtYCxgJHtsK2N9ICR7b30gJHtzfSAke2YraH0gJHtzfSAke2Z9IGNgLGAke3N9ICR7Zi1ofSAke2wrY30gJHthfSAke2x9ICR7YX0gY2AsYCR7bC1jfSAke2F9ICR7bn0gJHtmLWh9ICR7bn0gJHtmfSBjYCxgJHtufSAke2YraH0gJHtsLWN9ICR7b30gJHtsfSAke299IGNgLCJoIik7cj9lLnB1c2goIkIiKTplLnB1c2goIlMiKTtyZXR1cm5bdFswXSx0WzddLHRbMl0sdFszXV19fSl9fX1jbGFzcyBQb2x5bGluZUFubm90YXRpb24gZXh0ZW5kcyBNYXJrdXBBbm5vdGF0aW9ue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO2NvbnN0e2RpY3Q6dCx4cmVmOm59PWU7dGhpcy5kYXRhLmhhc093bkNhbnZhcz10aGlzLmRhdGEubm9Sb3RhdGU7dGhpcy5kYXRhLm5vSFRNTD0hMTt0aGlzLmRhdGEudmVydGljZXM9bnVsbDtpZighKHRoaXMgaW5zdGFuY2VvZiBQb2x5Z29uQW5ub3RhdGlvbikpe3RoaXMuc2V0TGluZUVuZGluZ3ModC5nZXRBcnJheSgiTEUiKSk7dGhpcy5kYXRhLmxpbmVFbmRpbmdzPXRoaXMubGluZUVuZGluZ3N9Y29uc3QgYT10LmdldEFycmF5KCJWZXJ0aWNlcyIpO2lmKCFpc051bWJlckFycmF5KGEsbnVsbCkpcmV0dXJuO2NvbnN0IHI9dGhpcy5kYXRhLnZlcnRpY2VzPUZsb2F0MzJBcnJheS5mcm9tKGEpO2lmKCF0aGlzLmFwcGVhcmFuY2Upe2NvbnN0IGU9Z2V0UGRmQ29sb3JBcnJheSh0aGlzLmNvbG9yLFswLDAsMF0pLGE9dC5nZXQoIkNBIik7bGV0IHMsaT1nZXRSZ2JDb2xvcih0LmdldEFycmF5KCJJQyIpLG51bGwpO2kmJihpPWdldFBkZkNvbG9yQXJyYXkoaSkpO3M9aT90aGlzLmNvbG9yP2kuZXZlcnkoKHQsbik9PnQ9PT1lW25dKT8iZiI6IkIiOiJmIjoiUyI7Y29uc3Qgbz10aGlzLmJvcmRlclN0eWxlLndpZHRofHwxLGw9MipvLGY9WzEvMCwxLzAsLTEvMCwtMS8wXTtmb3IobGV0IGU9MCx0PXIubGVuZ3RoO2U8dDtlKz0yKVV0aWwucmVjdEJvdW5kaW5nQm94KHJbZV0tbCxyW2UrMV0tbCxyW2VdK2wscltlKzFdK2wsZik7VXRpbC5pbnRlcnNlY3QodGhpcy5yZWN0YW5nbGUsZil8fCh0aGlzLnJlY3RhbmdsZT1mKTt0aGlzLl9zZXREZWZhdWx0QXBwZWFyYW5jZSh7eHJlZjpuLGV4dHJhOmAke299IHdgLHN0cm9rZUNvbG9yOmUsc3Ryb2tlQWxwaGE6YSxmaWxsQ29sb3I6aSxmaWxsQWxwaGE6aT9hOm51bGwscG9pbnRzQ2FsbGJhY2s6KGUsdCk9Pntmb3IobGV0IHQ9MCxuPXIubGVuZ3RoO3Q8bjt0Kz0yKWUucHVzaChgJHtyW3RdfSAke3JbdCsxXX0gJHswPT09dD8ibSI6ImwifWApO2UucHVzaChzKTtyZXR1cm5bdFswXSx0WzddLHRbMl0sdFszXV19fSl9fX1jbGFzcyBQb2x5Z29uQW5ub3RhdGlvbiBleHRlbmRzIFBvbHlsaW5lQW5ub3RhdGlvbnt9Y2xhc3MgQ2FyZXRBbm5vdGF0aW9uIGV4dGVuZHMgTWFya3VwQW5ub3RhdGlvbnt9Y2xhc3MgSW5rQW5ub3RhdGlvbiBleHRlbmRzIE1hcmt1cEFubm90YXRpb257Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7dGhpcy5kYXRhLmhhc093bkNhbnZhcz10aGlzLmRhdGEubm9Sb3RhdGU7dGhpcy5kYXRhLm5vSFRNTD0hMTtjb25zdHtkaWN0OnQseHJlZjpufT1lO3RoaXMuZGF0YS5pbmtMaXN0cz1bXTt0aGlzLmRhdGEuaXNFZGl0YWJsZT0hdGhpcy5kYXRhLm5vSFRNTDt0aGlzLmRhdGEubm9IVE1MPSExO3RoaXMuZGF0YS5vcGFjaXR5PXQuZ2V0KCJDQSIpfHwxO2NvbnN0IGE9dC5nZXRBcnJheSgiSW5rTGlzdCIpO2lmKEFycmF5LmlzQXJyYXkoYSkpe2ZvcihsZXQgZT0wLHQ9YS5sZW5ndGg7ZTx0OysrZSl7aWYoIUFycmF5LmlzQXJyYXkoYVtlXSkpY29udGludWU7Y29uc3QgdD1uZXcgRmxvYXQzMkFycmF5KGFbZV0ubGVuZ3RoKTt0aGlzLmRhdGEuaW5rTGlzdHMucHVzaCh0KTtmb3IobGV0IHI9MCxzPWFbZV0ubGVuZ3RoO3I8cztyKz0yKXtjb25zdCBzPW4uZmV0Y2hJZlJlZihhW2VdW3JdKSxpPW4uZmV0Y2hJZlJlZihhW2VdW3IrMV0pO2lmKCJudW1iZXIiPT10eXBlb2YgcyYmIm51bWJlciI9PXR5cGVvZiBpKXt0W3JdPXM7dFtyKzFdPWl9fX1pZighdGhpcy5hcHBlYXJhbmNlKXtjb25zdCBlPWdldFBkZkNvbG9yQXJyYXkodGhpcy5jb2xvcixbMCwwLDBdKSxhPXQuZ2V0KCJDQSIpLHI9dGhpcy5ib3JkZXJTdHlsZS53aWR0aHx8MSxzPTIqcixpPVsxLzAsMS8wLC0xLzAsLTEvMF07Zm9yKGNvbnN0IGUgb2YgdGhpcy5kYXRhLmlua0xpc3RzKWZvcihsZXQgdD0wLG49ZS5sZW5ndGg7dDxuO3QrPTIpVXRpbC5yZWN0Qm91bmRpbmdCb3goZVt0XS1zLGVbdCsxXS1zLGVbdF0rcyxlW3QrMV0rcyxpKTtVdGlsLmludGVyc2VjdCh0aGlzLnJlY3RhbmdsZSxpKXx8KHRoaXMucmVjdGFuZ2xlPWkpO3RoaXMuX3NldERlZmF1bHRBcHBlYXJhbmNlKHt4cmVmOm4sZXh0cmE6YCR7cn0gd2Asc3Ryb2tlQ29sb3I6ZSxzdHJva2VBbHBoYTphLHBvaW50c0NhbGxiYWNrOihlLHQpPT57Zm9yKGNvbnN0IHQgb2YgdGhpcy5kYXRhLmlua0xpc3RzKXtmb3IobGV0IG49MCxhPXQubGVuZ3RoO248YTtuKz0yKWUucHVzaChgJHt0W25dfSAke3RbbisxXX0gJHswPT09bj8ibSI6ImwifWApO2UucHVzaCgiUyIpfXJldHVyblt0WzBdLHRbN10sdFsyXSx0WzNdXX19KX19fXN0YXRpYyBjcmVhdGVOZXdEaWN0KGUsdCx7YXBSZWY6bixhcDphfSl7Y29uc3R7b2xkQW5ub3RhdGlvbjpyLGNvbG9yOnMsZGF0ZTppLG9wYWNpdHk6byxwYXRoczpsLG91dGxpbmVzOmYscmVjdDpjLHJvdGF0aW9uOmgsdGhpY2tuZXNzOnUsdXNlcjptfT1lLHA9cnx8bmV3IERpY3QodCk7cC5zZXRJZk5vdEV4aXN0cygiVHlwZSIsTmFtZS5nZXQoIkFubm90IikpO3Auc2V0SWZOb3RFeGlzdHMoIlN1YnR5cGUiLE5hbWUuZ2V0KCJJbmsiKSk7cC5zZXQocj8iTSI6IkNyZWF0aW9uRGF0ZSIsYEQ6JHtnZXRNb2RpZmljYXRpb25EYXRlKGkpfWApO3Auc2V0SWZBcnJheSgiUmVjdCIsYyk7cC5zZXRJZkFycmF5KCJJbmtMaXN0IixmPy5wb2ludHN8fGw/LnBvaW50cyk7cC5zZXRJZk5vdEV4aXN0cygiRiIsNCk7cC5zZXRJZk51bWJlcigiUm90YXRlIixoKTtwLnNldElmRGVmaW5lZCgiVCIsc3RyaW5nVG9Bc2NpaU9yVVRGMTZCRShtKSk7ZiYmcC5zZXRJZk5hbWUoIklUIiwiSW5rSGlnaGxpZ2h0Iik7aWYodT4wKXtjb25zdCBlPW5ldyBEaWN0KHQpO3Auc2V0KCJCUyIsZSk7ZS5zZXQoIlciLHUpfXAuc2V0SWZBcnJheSgiQyIsZ2V0UGRmQ29sb3JBcnJheShzKSk7cC5zZXRJZk51bWJlcigiQ0EiLG8pO2lmKGF8fG4pe2NvbnN0IGU9bmV3IERpY3QodCk7cC5zZXQoIkFQIixlKTtlLnNldCgiTiIsbnx8YSl9cmV0dXJuIHB9c3RhdGljIGFzeW5jIGNyZWF0ZU5ld0FwcGVhcmFuY2VTdHJlYW0oZSx0LG4pe2lmKGUub3V0bGluZXMpcmV0dXJuIHRoaXMuY3JlYXRlTmV3QXBwZWFyYW5jZVN0cmVhbUZvckhpZ2hsaWdodChlLHQsbik7Y29uc3R7Y29sb3I6YSxyZWN0OnIscGF0aHM6cyx0aGlja25lc3M6aSxvcGFjaXR5Om99PWU7aWYoIWEpcmV0dXJuIG51bGw7Y29uc3QgbD1bYCR7aX0gdyAxIEogMSBqYCxgJHtnZXRQZGZDb2xvcihhLCExKX1gXTsxIT09byYmbC5wdXNoKCIvUjAgZ3MiKTtmb3IoY29uc3QgZSBvZiBzLmxpbmVzKXtsLnB1c2goYCR7bnVtYmVyVG9TdHJpbmcoZVs0XSl9ICR7bnVtYmVyVG9TdHJpbmcoZVs1XSl9IG1gKTtmb3IobGV0IHQ9NixuPWUubGVuZ3RoO3Q8bjt0Kz02KWlmKGlzTmFOKGVbdF0pKWwucHVzaChgJHtudW1iZXJUb1N0cmluZyhlW3QrNF0pfSAke251bWJlclRvU3RyaW5nKGVbdCs1XSl9IGxgKTtlbHNle2NvbnN0W24sYSxyLHMsaSxvXT1lLnNsaWNlKHQsdCs2KTtsLnB1c2goW24sYSxyLHMsaSxvXS5tYXAobnVtYmVyVG9TdHJpbmcpLmpvaW4oIiAiKSsiIGMiKX02PT09ZS5sZW5ndGgmJmwucHVzaChgJHtudW1iZXJUb1N0cmluZyhlWzRdKX0gJHtudW1iZXJUb1N0cmluZyhlWzVdKX0gbGApfWwucHVzaCgiUyIpO2NvbnN0IGY9bC5qb2luKCJcbiIpLGM9bmV3IERpY3QodCk7Yy5zZXQoIkZvcm1UeXBlIiwxKTtjLnNldElmTmFtZSgiU3VidHlwZSIsIkZvcm0iKTtjLnNldElmTmFtZSgiVHlwZSIsIlhPYmplY3QiKTtjLnNldCgiQkJveCIscik7Yy5zZXQoIkxlbmd0aCIsZi5sZW5ndGgpO2lmKDEhPT1vKXtjb25zdCBlPW5ldyBEaWN0KHQpLG49bmV3IERpY3QodCksYT1uZXcgRGljdCh0KTthLnNldCgiQ0EiLG8pO2Euc2V0SWZOYW1lKCJUeXBlIiwiRXh0R1N0YXRlIik7bi5zZXQoIlIwIixhKTtlLnNldCgiRXh0R1N0YXRlIixuKTtjLnNldCgiUmVzb3VyY2VzIixlKX1jb25zdCBoPW5ldyBTdHJpbmdTdHJlYW0oZik7aC5kaWN0PWM7cmV0dXJuIGh9c3RhdGljIGFzeW5jIGNyZWF0ZU5ld0FwcGVhcmFuY2VTdHJlYW1Gb3JIaWdobGlnaHQoZSx0LG4pe2NvbnN0e2NvbG9yOmEscmVjdDpyLG91dGxpbmVzOntvdXRsaW5lOnN9LG9wYWNpdHk6aX09ZTtpZighYSlyZXR1cm4gbnVsbDtjb25zdCBvPVtgJHtnZXRQZGZDb2xvcihhLCEwKX1gLCIvUjAgZ3MiXTtvLnB1c2goYCR7bnVtYmVyVG9TdHJpbmcoc1s0XSl9ICR7bnVtYmVyVG9TdHJpbmcoc1s1XSl9IG1gKTtmb3IobGV0IGU9Nix0PXMubGVuZ3RoO2U8dDtlKz02KWlmKGlzTmFOKHNbZV0pKW8ucHVzaChgJHtudW1iZXJUb1N0cmluZyhzW2UrNF0pfSAke251bWJlclRvU3RyaW5nKHNbZSs1XSl9IGxgKTtlbHNle2NvbnN0W3QsbixhLHIsaSxsXT1zLnNsaWNlKGUsZSs2KTtvLnB1c2goW3QsbixhLHIsaSxsXS5tYXAobnVtYmVyVG9TdHJpbmcpLmpvaW4oIiAiKSsiIGMiKX1vLnB1c2goImggZiIpO2NvbnN0IGw9by5qb2luKCJcbiIpLGY9bmV3IERpY3QodCk7Zi5zZXQoIkZvcm1UeXBlIiwxKTtmLnNldElmTmFtZSgiU3VidHlwZSIsIkZvcm0iKTtmLnNldElmTmFtZSgiVHlwZSIsIlhPYmplY3QiKTtmLnNldCgiQkJveCIscik7Zi5zZXQoIkxlbmd0aCIsbC5sZW5ndGgpO2NvbnN0IGM9bmV3IERpY3QodCksaD1uZXcgRGljdCh0KTtjLnNldCgiRXh0R1N0YXRlIixoKTtmLnNldCgiUmVzb3VyY2VzIixjKTtjb25zdCB1PW5ldyBEaWN0KHQpO2guc2V0KCJSMCIsdSk7dS5zZXRJZk5hbWUoIkJNIiwiTXVsdGlwbHkiKTtpZigxIT09aSl7dS5zZXQoImNhIixpKTt1LnNldElmTmFtZSgiVHlwZSIsIkV4dEdTdGF0ZSIpfWNvbnN0IG09bmV3IFN0cmluZ1N0cmVhbShsKTttLmRpY3Q9ZjtyZXR1cm4gbX19Y2xhc3MgSGlnaGxpZ2h0QW5ub3RhdGlvbiBleHRlbmRzIE1hcmt1cEFubm90YXRpb257Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7Y29uc3R7ZGljdDp0LHhyZWY6bn09ZTt0aGlzLmRhdGEuaXNFZGl0YWJsZT0hdGhpcy5kYXRhLm5vSFRNTDt0aGlzLmRhdGEubm9IVE1MPSExO3RoaXMuZGF0YS5vcGFjaXR5PXQuZ2V0KCJDQSIpfHwxO2lmKHRoaXMuZGF0YS5xdWFkUG9pbnRzPWdldFF1YWRQb2ludHModCxudWxsKSl7Y29uc3QgZT10aGlzLmFwcGVhcmFuY2U/LmRpY3QuZ2V0KCJSZXNvdXJjZXMiKTtpZighdGhpcy5hcHBlYXJhbmNlfHwhZT8uaGFzKCJFeHRHU3RhdGUiKSl7dGhpcy5hcHBlYXJhbmNlJiZ3YXJuKCJIaWdobGlnaHRBbm5vdGF0aW9uIC0gaWdub3JpbmcgYnVpbHQtaW4gYXBwZWFyYW5jZSBzdHJlYW0uIik7Y29uc3QgZT1nZXRQZGZDb2xvckFycmF5KHRoaXMuY29sb3IsWzEsMSwwXSksYT10LmdldCgiQ0EiKTt0aGlzLl9zZXREZWZhdWx0QXBwZWFyYW5jZSh7eHJlZjpuLGZpbGxDb2xvcjplLGJsZW5kTW9kZToiTXVsdGlwbHkiLGZpbGxBbHBoYTphLHBvaW50c0NhbGxiYWNrOihlLHQpPT57ZS5wdXNoKGAke3RbMF19ICR7dFsxXX0gbWAsYCR7dFsyXX0gJHt0WzNdfSBsYCxgJHt0WzZdfSAke3RbN119IGxgLGAke3RbNF19ICR7dFs1XX0gbGAsImYiKTtyZXR1cm5bdFswXSx0WzddLHRbMl0sdFszXV19fSl9fWVsc2UgdGhpcy5kYXRhLnBvcHVwUmVmPW51bGx9Z2V0IG92ZXJsYXlzVGV4dENvbnRlbnQoKXtyZXR1cm4hMH1zdGF0aWMgY3JlYXRlTmV3RGljdChlLHQse2FwUmVmOm4sYXA6YX0pe2NvbnN0e2NvbG9yOnIsZGF0ZTpzLG9sZEFubm90YXRpb246aSxvcGFjaXR5Om8scmVjdDpsLHJvdGF0aW9uOmYsdXNlcjpjLHF1YWRQb2ludHM6aH09ZSx1PWl8fG5ldyBEaWN0KHQpO3Uuc2V0SWZOb3RFeGlzdHMoIlR5cGUiLE5hbWUuZ2V0KCJBbm5vdCIpKTt1LnNldElmTm90RXhpc3RzKCJTdWJ0eXBlIixOYW1lLmdldCgiSGlnaGxpZ2h0IikpO3Uuc2V0KGk/Ik0iOiJDcmVhdGlvbkRhdGUiLGBEOiR7Z2V0TW9kaWZpY2F0aW9uRGF0ZShzKX1gKTt1LnNldElmQXJyYXkoIlJlY3QiLGwpO3Uuc2V0SWZOb3RFeGlzdHMoIkYiLDQpO3Uuc2V0SWZOb3RFeGlzdHMoIkJvcmRlciIsWzAsMCwwXSk7dS5zZXRJZk51bWJlcigiUm90YXRlIixmKTt1LnNldElmQXJyYXkoIlF1YWRQb2ludHMiLGgpO3Uuc2V0SWZBcnJheSgiQyIsZ2V0UGRmQ29sb3JBcnJheShyKSk7dS5zZXRJZk51bWJlcigiQ0EiLG8pO3Uuc2V0SWZEZWZpbmVkKCJUIixzdHJpbmdUb0FzY2lpT3JVVEYxNkJFKGMpKTtpZihufHxhKXtjb25zdCBlPW5ldyBEaWN0KHQpO3Uuc2V0KCJBUCIsZSk7ZS5zZXQoIk4iLG58fGEpfXJldHVybiB1fXN0YXRpYyBhc3luYyBjcmVhdGVOZXdBcHBlYXJhbmNlU3RyZWFtKGUsdCxuKXtjb25zdHtjb2xvcjphLHJlY3Q6cixvdXRsaW5lczpzLG9wYWNpdHk6aX09ZTtpZighYSlyZXR1cm4gbnVsbDtjb25zdCBvPVtgJHtnZXRQZGZDb2xvcihhLCEwKX1gLCIvUjAgZ3MiXSxsPVtdO2Zvcihjb25zdCBlIG9mIHMpe2wubGVuZ3RoPTA7bC5wdXNoKGAke251bWJlclRvU3RyaW5nKGVbMF0pfSAke251bWJlclRvU3RyaW5nKGVbMV0pfSBtYCk7Zm9yKGxldCB0PTIsbj1lLmxlbmd0aDt0PG47dCs9MilsLnB1c2goYCR7bnVtYmVyVG9TdHJpbmcoZVt0XSl9ICR7bnVtYmVyVG9TdHJpbmcoZVt0KzFdKX0gbGApO2wucHVzaCgiaCIpO28ucHVzaChsLmpvaW4oIlxuIikpfW8ucHVzaCgiZioiKTtjb25zdCBmPW8uam9pbigiXG4iKSxjPW5ldyBEaWN0KHQpO2Muc2V0KCJGb3JtVHlwZSIsMSk7Yy5zZXRJZk5hbWUoIlN1YnR5cGUiLCJGb3JtIik7Yy5zZXRJZk5hbWUoIlR5cGUiLCJYT2JqZWN0Iik7Yy5zZXQoIkJCb3giLHIpO2Muc2V0KCJMZW5ndGgiLGYubGVuZ3RoKTtjb25zdCBoPW5ldyBEaWN0KHQpLHU9bmV3IERpY3QodCk7aC5zZXQoIkV4dEdTdGF0ZSIsdSk7Yy5zZXQoIlJlc291cmNlcyIsaCk7Y29uc3QgbT1uZXcgRGljdCh0KTt1LnNldCgiUjAiLG0pO20uc2V0SWZOYW1lKCJCTSIsIk11bHRpcGx5Iik7aWYoMSE9PWkpe20uc2V0KCJjYSIsaSk7bS5zZXRJZk5hbWUoIlR5cGUiLCJFeHRHU3RhdGUiKX1jb25zdCBwPW5ldyBTdHJpbmdTdHJlYW0oZik7cC5kaWN0PWM7cmV0dXJuIHB9fWNsYXNzIFVuZGVybGluZUFubm90YXRpb24gZXh0ZW5kcyBNYXJrdXBBbm5vdGF0aW9ue2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpO2NvbnN0e2RpY3Q6dCx4cmVmOm59PWU7aWYodGhpcy5kYXRhLnF1YWRQb2ludHM9Z2V0UXVhZFBvaW50cyh0LG51bGwpKXtpZighdGhpcy5hcHBlYXJhbmNlKXtjb25zdCBlPWdldFBkZkNvbG9yQXJyYXkodGhpcy5jb2xvcixbMCwwLDBdKSxhPXQuZ2V0KCJDQSIpO3RoaXMuX3NldERlZmF1bHRBcHBlYXJhbmNlKHt4cmVmOm4sZXh0cmE6IltdIDAgZCAwLjU3MSB3IixzdHJva2VDb2xvcjplLHN0cm9rZUFscGhhOmEscG9pbnRzQ2FsbGJhY2s6KGUsdCk9PntlLnB1c2goYCR7dFs0XX0gJHt0WzVdKzEuM30gbWAsYCR7dFs2XX0gJHt0WzddKzEuM30gbGAsIlMiKTtyZXR1cm5bdFswXSx0WzddLHRbMl0sdFszXV19fSl9fWVsc2UgdGhpcy5kYXRhLnBvcHVwUmVmPW51bGx9Z2V0IG92ZXJsYXlzVGV4dENvbnRlbnQoKXtyZXR1cm4hMH19Y2xhc3MgU3F1aWdnbHlBbm5vdGF0aW9uIGV4dGVuZHMgTWFya3VwQW5ub3RhdGlvbntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTtjb25zdHtkaWN0OnQseHJlZjpufT1lO2lmKHRoaXMuZGF0YS5xdWFkUG9pbnRzPWdldFF1YWRQb2ludHModCxudWxsKSl7aWYoIXRoaXMuYXBwZWFyYW5jZSl7Y29uc3QgZT1nZXRQZGZDb2xvckFycmF5KHRoaXMuY29sb3IsWzAsMCwwXSksYT10LmdldCgiQ0EiKTt0aGlzLl9zZXREZWZhdWx0QXBwZWFyYW5jZSh7eHJlZjpuLGV4dHJhOiJbXSAwIGQgMSB3IixzdHJva2VDb2xvcjplLHN0cm9rZUFscGhhOmEscG9pbnRzQ2FsbGJhY2s6KGUsdCk9Pntjb25zdCBuPSh0WzFdLXRbNV0pLzY7bGV0IGE9bixyPXRbNF07Y29uc3Qgcz10WzVdLGk9dFs2XTtlLnB1c2goYCR7cn0gJHtzK2F9IG1gKTtkb3tyKz0yO2E9MD09PWE/bjowO2UucHVzaChgJHtyfSAke3MrYX0gbGApfXdoaWxlKHI8aSk7ZS5wdXNoKCJTIik7cmV0dXJuW3RbNF0scy0yKm4saSxzKzIqbl19fSl9fWVsc2UgdGhpcy5kYXRhLnBvcHVwUmVmPW51bGx9Z2V0IG92ZXJsYXlzVGV4dENvbnRlbnQoKXtyZXR1cm4hMH19Y2xhc3MgU3RyaWtlT3V0QW5ub3RhdGlvbiBleHRlbmRzIE1hcmt1cEFubm90YXRpb257Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7Y29uc3R7ZGljdDp0LHhyZWY6bn09ZTtpZih0aGlzLmRhdGEucXVhZFBvaW50cz1nZXRRdWFkUG9pbnRzKHQsbnVsbCkpe2lmKCF0aGlzLmFwcGVhcmFuY2Upe2NvbnN0IGU9Z2V0UGRmQ29sb3JBcnJheSh0aGlzLmNvbG9yLFswLDAsMF0pLGE9dC5nZXQoIkNBIik7dGhpcy5fc2V0RGVmYXVsdEFwcGVhcmFuY2Uoe3hyZWY6bixleHRyYToiW10gMCBkIDEgdyIsc3Ryb2tlQ29sb3I6ZSxzdHJva2VBbHBoYTphLHBvaW50c0NhbGxiYWNrOihlLHQpPT57ZS5wdXNoKCh0WzBdK3RbNF0pLzIrIiAiKyh0WzFdK3RbNV0pLzIrIiBtIiwodFsyXSt0WzZdKS8yKyIgIisodFszXSt0WzddKS8yKyIgbCIsIlMiKTtyZXR1cm5bdFswXSx0WzddLHRbMl0sdFszXV19fSl9fWVsc2UgdGhpcy5kYXRhLnBvcHVwUmVmPW51bGx9Z2V0IG92ZXJsYXlzVGV4dENvbnRlbnQoKXtyZXR1cm4hMH19Y2xhc3MgU3RhbXBBbm5vdGF0aW9uIGV4dGVuZHMgTWFya3VwQW5ub3RhdGlvbnsjSGU9bnVsbDtjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTt0aGlzLmRhdGEuaGFzT3duQ2FudmFzPXRoaXMuZGF0YS5ub1JvdGF0ZTt0aGlzLmRhdGEuaXNFZGl0YWJsZT0hdGhpcy5kYXRhLm5vSFRNTDt0aGlzLmRhdGEubm9IVE1MPSExfW11c3RCZVZpZXdlZFdoZW5FZGl0aW5nKGUsdD1udWxsKXtpZihlKXtpZighdGhpcy5kYXRhLmlzRWRpdGFibGUpcmV0dXJuITA7dGhpcy4jSGU/Pz10aGlzLmRhdGEuaGFzT3duQ2FudmFzO3RoaXMuZGF0YS5oYXNPd25DYW52YXM9ITA7cmV0dXJuITB9aWYobnVsbCE9PXRoaXMuI0hlKXt0aGlzLmRhdGEuaGFzT3duQ2FudmFzPXRoaXMuI0hlO3RoaXMuI0hlPW51bGx9cmV0dXJuIXQ/Lmhhcyh0aGlzLmRhdGEuaWQpfXN0YXRpYyBhc3luYyBjcmVhdGVJbWFnZShlLHQpe2NvbnN0e3dpZHRoOm4saGVpZ2h0OmF9PWUscj1uZXcgT2Zmc2NyZWVuQ2FudmFzKG4sYSkscz1yLmdldENvbnRleHQoIjJkIix7YWxwaGE6ITB9KTtzLmRyYXdJbWFnZShlLDAsMCk7Y29uc3QgaT1zLmdldEltYWdlRGF0YSgwLDAsbixhKS5kYXRhLG89bmV3IFVpbnQzMkFycmF5KGkuYnVmZmVyKSxsPW8uc29tZShGZWF0dXJlVGVzdC5pc0xpdHRsZUVuZGlhbj9lPT5lPj4+MjQhPTI1NTplPT4hISgyNTUmfmUpKTtpZihsKXtzLmZpbGxTdHlsZT0id2hpdGUiO3MuZmlsbFJlY3QoMCwwLG4sYSk7cy5kcmF3SW1hZ2UoZSwwLDApfWNvbnN0IGY9ci5jb252ZXJ0VG9CbG9iKHt0eXBlOiJpbWFnZS9qcGVnIixxdWFsaXR5OjF9KS50aGVuKGU9PmUuYXJyYXlCdWZmZXIoKSksYz1OYW1lLmdldCgiWE9iamVjdCIpLGg9TmFtZS5nZXQoIkltYWdlIiksdT1uZXcgRGljdCh0KTt1LnNldCgiVHlwZSIsYyk7dS5zZXQoIlN1YnR5cGUiLGgpO3Uuc2V0KCJCaXRzUGVyQ29tcG9uZW50Iiw4KTt1LnNldElmTmFtZSgiQ29sb3JTcGFjZSIsIkRldmljZVJHQiIpO3Uuc2V0SWZOYW1lKCJGaWx0ZXIiLCJEQ1REZWNvZGUiKTt1LnNldCgiQkJveCIsWzAsMCxuLGFdKTt1LnNldCgiV2lkdGgiLG4pO3Uuc2V0KCJIZWlnaHQiLGEpO2xldCBtPW51bGw7aWYobCl7Y29uc3QgZT1uZXcgVWludDhBcnJheShvLmxlbmd0aCk7aWYoRmVhdHVyZVRlc3QuaXNMaXR0bGVFbmRpYW4pZm9yKGxldCB0PTAsbj1vLmxlbmd0aDt0PG47dCsrKWVbdF09b1t0XT4+PjI0O2Vsc2UgZm9yKGxldCB0PTAsbj1vLmxlbmd0aDt0PG47dCsrKWVbdF09MjU1Jm9bdF07Y29uc3Qgcj1uZXcgRGljdCh0KTtyLnNldCgiVHlwZSIsYyk7ci5zZXQoIlN1YnR5cGUiLGgpO3Iuc2V0KCJCaXRzUGVyQ29tcG9uZW50Iiw4KTtyLnNldElmTmFtZSgiQ29sb3JTcGFjZSIsIkRldmljZUdyYXkiKTtyLnNldCgiV2lkdGgiLG4pO3Iuc2V0KCJIZWlnaHQiLGEpO209bmV3IFN0cmVhbShlLDAsMCxyKX1yZXR1cm57aW1hZ2VTdHJlYW06bmV3IFN0cmVhbShhd2FpdCBmLDAsMCx1KSxzbWFza1N0cmVhbTptLHdpZHRoOm4saGVpZ2h0OmF9fXN0YXRpYyBjcmVhdGVOZXdEaWN0KGUsdCx7YXBSZWY6bixhcDphfSl7Y29uc3R7ZGF0ZTpyLG9sZEFubm90YXRpb246cyxyZWN0Omkscm90YXRpb246byx1c2VyOmx9PWUsZj1zfHxuZXcgRGljdCh0KTtmLnNldElmTm90RXhpc3RzKCJUeXBlIixOYW1lLmdldCgiQW5ub3QiKSk7Zi5zZXRJZk5vdEV4aXN0cygiU3VidHlwZSIsTmFtZS5nZXQoIlN0YW1wIikpO2Yuc2V0KHM/Ik0iOiJDcmVhdGlvbkRhdGUiLGBEOiR7Z2V0TW9kaWZpY2F0aW9uRGF0ZShyKX1gKTtmLnNldElmQXJyYXkoIlJlY3QiLGkpO2Yuc2V0SWZOb3RFeGlzdHMoIkYiLDQpO2Yuc2V0SWZOb3RFeGlzdHMoIkJvcmRlciIsWzAsMCwwXSk7Zi5zZXRJZk51bWJlcigiUm90YXRlIixvKTtmLnNldElmRGVmaW5lZCgiVCIsc3RyaW5nVG9Bc2NpaU9yVVRGMTZCRShsKSk7aWYobnx8YSl7Y29uc3QgZT1uZXcgRGljdCh0KTtmLnNldCgiQVAiLGUpO2Uuc2V0KCJOIixufHxhKX1yZXR1cm4gZn1zdGF0aWMgYXN5bmMjRGUoZSx0KXtjb25zdHthcmVDb250b3VyczpuLGNvbG9yOmEscmVjdDpyLGxpbmVzOnMsdGhpY2tuZXNzOml9PWU7aWYoIWEpcmV0dXJuIG51bGw7Y29uc3Qgbz1bYCR7aX0gdyAxIEogMSBqYCxgJHtnZXRQZGZDb2xvcihhLG4pfWBdO2Zvcihjb25zdCBlIG9mIHMpe28ucHVzaChgJHtudW1iZXJUb1N0cmluZyhlWzRdKX0gJHtudW1iZXJUb1N0cmluZyhlWzVdKX0gbWApO2ZvcihsZXQgdD02LG49ZS5sZW5ndGg7dDxuO3QrPTYpaWYoaXNOYU4oZVt0XSkpby5wdXNoKGAke251bWJlclRvU3RyaW5nKGVbdCs0XSl9ICR7bnVtYmVyVG9TdHJpbmcoZVt0KzVdKX0gbGApO2Vsc2V7Y29uc3RbbixhLHIscyxpLGxdPWUuc2xpY2UodCx0KzYpO28ucHVzaChbbixhLHIscyxpLGxdLm1hcChudW1iZXJUb1N0cmluZykuam9pbigiICIpKyIgYyIpfTY9PT1lLmxlbmd0aCYmby5wdXNoKGAke251bWJlclRvU3RyaW5nKGVbNF0pfSAke251bWJlclRvU3RyaW5nKGVbNV0pfSBsYCl9by5wdXNoKG4/IkYiOiJTIik7Y29uc3QgbD1vLmpvaW4oIlxuIiksZj1uZXcgRGljdCh0KTtmLnNldCgiRm9ybVR5cGUiLDEpO2Yuc2V0SWZOYW1lKCJTdWJ0eXBlIiwiRm9ybSIpO2Yuc2V0SWZOYW1lKCJUeXBlIiwiWE9iamVjdCIpO2Yuc2V0KCJCQm94IixyKTtmLnNldCgiTGVuZ3RoIixsLmxlbmd0aCk7Y29uc3QgYz1uZXcgU3RyaW5nU3RyZWFtKGwpO2MuZGljdD1mO3JldHVybiBjfXN0YXRpYyBhc3luYyBjcmVhdGVOZXdBcHBlYXJhbmNlU3RyZWFtKGUsdCxuKXtpZihlLm9sZEFubm90YXRpb24pcmV0dXJuIG51bGw7aWYoZS5pc1NpZ25hdHVyZSlyZXR1cm4gdGhpcy4jRGUoZSx0KTtjb25zdHtyb3RhdGlvbjphfT1lLHtpbWFnZVJlZjpyLHdpZHRoOnMsaGVpZ2h0Oml9PW4uaW1hZ2Usbz1uZXcgRGljdCh0KSxsPW5ldyBEaWN0KHQpO28uc2V0KCJYT2JqZWN0IixsKTtsLnNldCgiSW0wIixyKTtjb25zdCBmPWBxICR7c30gMCAwICR7aX0gMCAwIGNtIC9JbTAgRG8gUWAsYz1uZXcgRGljdCh0KTtjLnNldCgiRm9ybVR5cGUiLDEpO2Muc2V0SWZOYW1lKCJTdWJ0eXBlIiwiRm9ybSIpO2Muc2V0SWZOYW1lKCJUeXBlIiwiWE9iamVjdCIpO2Muc2V0KCJCQm94IixbMCwwLHMsaV0pO2Muc2V0KCJSZXNvdXJjZXMiLG8pO2lmKGEpe2NvbnN0IGU9Z2V0Um90YXRpb25NYXRyaXgoYSxzLGkpO2Muc2V0KCJNYXRyaXgiLGUpfWNvbnN0IGg9bmV3IFN0cmluZ1N0cmVhbShmKTtoLmRpY3Q9YztyZXR1cm4gaH19Y2xhc3MgRmlsZUF0dGFjaG1lbnRBbm5vdGF0aW9uIGV4dGVuZHMgTWFya3VwQW5ub3RhdGlvbntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTtjb25zdHtkaWN0OnR9PWUsbj1uZXcgRmlsZVNwZWModC5nZXQoIkZTIikpO3RoaXMuZGF0YS5oYXNPd25DYW52YXM9dGhpcy5kYXRhLm5vUm90YXRlO3RoaXMuZGF0YS5ub0hUTUw9ITE7dGhpcy5kYXRhLmZpbGU9bi5zZXJpYWxpemFibGU7Y29uc3QgYT10LmdldCgiTmFtZSIpO3RoaXMuZGF0YS5uYW1lPWEgaW5zdGFuY2VvZiBOYW1lP3N0cmluZ1RvUERGU3RyaW5nKGEubmFtZSk6IlB1c2hQaW4iO2NvbnN0IHI9dC5nZXQoImNhIik7dGhpcy5kYXRhLmZpbGxBbHBoYT0ibnVtYmVyIj09dHlwZW9mIHImJnI+PTAmJnI8PTE/cjpudWxsfX1jb25zdCBsbD17Z2V0IHIoKXtyZXR1cm4gc2hhZG93KHRoaXMsInIiLG5ldyBVaW50OEFycmF5KFs3LDEyLDE3LDIyLDcsMTIsMTcsMjIsNywxMiwxNywyMiw3LDEyLDE3LDIyLDUsOSwxNCwyMCw1LDksMTQsMjAsNSw5LDE0LDIwLDUsOSwxNCwyMCw0LDExLDE2LDIzLDQsMTEsMTYsMjMsNCwxMSwxNiwyMyw0LDExLDE2LDIzLDYsMTAsMTUsMjEsNiwxMCwxNSwyMSw2LDEwLDE1LDIxLDYsMTAsMTUsMjFdKSl9LGdldCBrKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJrIixuZXcgSW50MzJBcnJheShbLTY4MDg3NjkzNiwtMzg5NTY0NTg2LDYwNjEwNTgxOSwtMTA0NDUyNTMzMCwtMTc2NDE4ODk3LDEyMDAwODA0MjYsLTE0NzMyMzEzNDEsLTQ1NzA1OTgzLDE3NzAwMzU0MTYsLTE5NTg0MTQ0MTcsLTQyMDYzLC0xOTkwNDA0MTYyLDE4MDQ2MDM2ODIsLTQwMzQxMTAxLC0xNTAyMDAyMjkwLDEyMzY1MzUzMjksLTE2NTc5NjUxMCwtMTA2OTUwMTYzMiw2NDM3MTc3MTMsLTM3Mzg5NzMwMiwtNzAxNTU4NjkxLDM4MDE2MDgzLC02NjA0NzgzMzUsLTQwNTUzNzg0OCw1Njg0NDY0MzgsLTEwMTk4MDM2OTAsLTE4NzM2Mzk2MSwxMTYzNTMxNTAxLC0xNDQ0NjgxNDY3LC01MTQwMzc4NCwxNzM1MzI4NDczLC0xOTI2NjA3NzM0LC0zNzg1NTgsLTIwMjI1NzQ0NjMsMTgzOTAzMDU2MiwtMzUzMDk1NTYsLTE1MzA5OTIwNjAsMTI3Mjg5MzM1MywtMTU1NDk3NjMyLC0xMDk0NzMwNjQwLDY4MTI3OTE3NCwtMzU4NTM3MjIyLC03MjI1MjE5NzksNzYwMjkxODksLTY0MDM2NDQ4NywtNDIxODE1ODM1LDUzMDc0MjUyMCwtOTk1MzM4NjUxLC0xOTg2MzA4NDQsMTEyNjg5MTQxNSwtMTQxNjM1NDkwNSwtNTc0MzQwNTUsMTcwMDQ4NTU3MSwtMTg5NDk4NjYwNiwtMTA1MTUyMywtMjA1NDkyMjc5OSwxODczMzEzMzU5LC0zMDYxMTc0NCwtMTU2MDE5ODM4MCwxMzA5MTUxNjQ5LC0xNDU1MjMwNzAsLTExMjAyMTAzNzksNzE4Nzg3MjU5LC0zNDM0ODU1NTFdKSl9fTtmdW5jdGlvbiBjYWxjdWxhdGVNRDUoZSx0LG4pe2xldCBhPTE3MzI1ODQxOTMscj0tMjcxNzMzODc5LHM9LTE3MzI1ODQxOTQsaT0yNzE3MzM4Nzg7Y29uc3Qgbz1uKzcyJi02NCxsPW5ldyBVaW50OEFycmF5KG8pO2xldCBmLGM7Zm9yKGY9MDtmPG47KytmKWxbZl09ZVt0KytdO2xbZisrXT0xMjg7Y29uc3QgaD1vLTg7ZjxoJiYoZj1oKTtsW2YrK109bjw8MyYyNTU7bFtmKytdPW4+PjUmMjU1O2xbZisrXT1uPj4xMyYyNTU7bFtmKytdPW4+PjIxJjI1NTtsW2YrK109bj4+PjI5JjI1NTtmKz0zO2NvbnN0IHU9bmV3IEludDMyQXJyYXkoMTYpLHtrOm0scjpwfT1sbDtmb3IoZj0wO2Y8bzspe2ZvcihjPTA7YzwxNjsrK2MsZis9NCl1W2NdPWxbZl18bFtmKzFdPDw4fGxbZisyXTw8MTZ8bFtmKzNdPDwyNDtsZXQgZSx0LG49YSxvPXIsaD1zLGQ9aTtmb3IoYz0wO2M8NjQ7KytjKXtpZihjPDE2KXtlPW8maHx+byZkO3Q9Y31lbHNlIGlmKGM8MzIpe2U9ZCZvfH5kJmg7dD01KmMrMSYxNX1lbHNlIGlmKGM8NDgpe2U9b15oXmQ7dD0zKmMrNSYxNX1lbHNle2U9aF4ob3x+ZCk7dD03KmMmMTV9Y29uc3QgYT1kLHI9bitlK21bY10rdVt0XXwwLHM9cFtjXTtkPWg7aD1vO289bysocjw8c3xyPj4+MzItcyl8MDtuPWF9YT1hK258MDtyPXIrb3wwO3M9cytofDA7aT1pK2R8MH1yZXR1cm4gbmV3IFVpbnQ4QXJyYXkoWzI1NSZhLGE+PjgmMjU1LGE+PjE2JjI1NSxhPj4+MjQmMjU1LDI1NSZyLHI+PjgmMjU1LHI+PjE2JjI1NSxyPj4+MjQmMjU1LDI1NSZzLHM+PjgmMjU1LHM+PjE2JjI1NSxzPj4+MjQmMjU1LDI1NSZpLGk+PjgmMjU1LGk+PjE2JjI1NSxpPj4+MjQmMjU1XSl9ZnVuY3Rpb24gZGVjb2RlU3RyaW5nKGUpe3RyeXtyZXR1cm4gc3RyaW5nVG9VVEY4U3RyaW5nKGUpfWNhdGNoKHQpe3dhcm4oYFVURi04IGRlY29kaW5nIGZhaWxlZDogIiR7dH0iLmApO3JldHVybiBlfX1jbGFzcyBEYXRhc2V0WE1MUGFyc2VyIGV4dGVuZHMgU2ltcGxlWE1MUGFyc2Vye25vZGU9bnVsbDtvbkVuZEVsZW1lbnQoZSl7Y29uc3QgdD1zdXBlci5vbkVuZEVsZW1lbnQoZSk7aWYodCYmInhmYTpkYXRhc2V0cyI9PT1lKXt0aGlzLm5vZGU9dDt0aHJvdyBuZXcgRXJyb3IoIkFib3J0aW5nIERhdGFzZXRYTUxQYXJzZXIuIil9fX1jbGFzcyBEYXRhc2V0UmVhZGVye2NvbnN0cnVjdG9yKGUpe2lmKGUuZGF0YXNldHMpdGhpcy5ub2RlPW5ldyBTaW1wbGVYTUxQYXJzZXIoe2hhc0F0dHJpYnV0ZXM6ITB9KS5wYXJzZUZyb21TdHJpbmcoZS5kYXRhc2V0cykuZG9jdW1lbnRFbGVtZW50O2Vsc2V7Y29uc3QgdD1uZXcgRGF0YXNldFhNTFBhcnNlcih7aGFzQXR0cmlidXRlczohMH0pO3RyeXt0LnBhcnNlRnJvbVN0cmluZyhlWyJ4ZHA6eGRwIl0pfWNhdGNoe310aGlzLm5vZGU9dC5ub2RlfX1nZXRWYWx1ZShlKXtpZighdGhpcy5ub2RlfHwhZSlyZXR1cm4iIjtjb25zdCB0PXRoaXMubm9kZS5zZWFyY2hOb2RlKHBhcnNlWEZBUGF0aChlKSwwKTtpZighdClyZXR1cm4iIjtjb25zdCBuPXQuZmlyc3RDaGlsZDtyZXR1cm4idmFsdWUiPT09bj8ubm9kZU5hbWU/dC5jaGlsZHJlbi5tYXAoZT0+ZGVjb2RlU3RyaW5nKGUudGV4dENvbnRlbnQpKTpkZWNvZGVTdHJpbmcodC50ZXh0Q29udGVudCl9fWNsYXNzIFNpbmdsZUludGVyc2VjdG9yeyNNZTttaW5YPTEvMDttaW5ZPTEvMDttYXhYPS0xLzA7bWF4WT0tMS8wOyNQZT1udWxsOyNFZT1bXTsjTmU9W107I3plPS0xOyNfZT0hMTtjb25zdHJ1Y3RvcihlKXt0aGlzLiNNZT1lO2NvbnN0IHQ9ZS5kYXRhLnF1YWRQb2ludHM7aWYodCl7Zm9yKGxldCBlPTAsbj10Lmxlbmd0aDtlPG47ZSs9OCl7dGhpcy5taW5YPU1hdGgubWluKHRoaXMubWluWCx0W2VdKTt0aGlzLm1heFg9TWF0aC5tYXgodGhpcy5tYXhYLHRbZSsyXSk7dGhpcy5taW5ZPU1hdGgubWluKHRoaXMubWluWSx0W2UrNV0pO3RoaXMubWF4WT1NYXRoLm1heCh0aGlzLm1heFksdFtlKzFdKX10Lmxlbmd0aD44JiYodGhpcy4jUGU9dCl9ZWxzZVt0aGlzLm1pblgsdGhpcy5taW5ZLHRoaXMubWF4WCx0aGlzLm1heFldPWUuZGF0YS5yZWN0fSNMZShlLHQpe2lmKHRoaXMubWluWD49ZXx8dGhpcy5tYXhYPD1lfHx0aGlzLm1pblk+PXR8fHRoaXMubWF4WTw9dClyZXR1cm4hMTtjb25zdCBuPXRoaXMuI1BlO2lmKCFuKXJldHVybiEwO2lmKHRoaXMuI3plPj0wKXtjb25zdCBhPXRoaXMuI3plO2lmKCEoblthXT49ZXx8blthKzJdPD1lfHxuW2ErNV0+PXR8fG5bYSsxXTw9dCkpcmV0dXJuITA7dGhpcy4jemU9LTF9Zm9yKGxldCBhPTAscj1uLmxlbmd0aDthPHI7YSs9OClpZighKG5bYV0+PWV8fG5bYSsyXTw9ZXx8blthKzVdPj10fHxuW2ErMV08PXQpKXt0aGlzLiN6ZT1hO3JldHVybiEwfXJldHVybiExfWFkZEdseXBoKGUsdCxuKXtpZighdGhpcy4jTGUoZSx0KSl7dGhpcy5kaXNhYmxlRXh0cmFDaGFycygpO3JldHVybiExfWlmKHRoaXMuI05lLmxlbmd0aD4wKXt0aGlzLiNFZS5wdXNoKHRoaXMuI05lLmpvaW4oIiIpKTt0aGlzLiNOZS5sZW5ndGg9MH10aGlzLiNFZS5wdXNoKG4pO3RoaXMuI19lPSEwO3JldHVybiEwfWFkZEV4dHJhQ2hhcihlKXt0aGlzLiNfZSYmdGhpcy4jTmUucHVzaChlKX1kaXNhYmxlRXh0cmFDaGFycygpe2lmKHRoaXMuI19lKXt0aGlzLiNfZT0hMTt0aGlzLiNOZS5sZW5ndGg9MH19c2V0VGV4dCgpe3RoaXMuI01lLmRhdGEub3ZlcmxhaWRUZXh0PXRoaXMuI0VlLmpvaW4oIiIpfX1jb25zdCBmbD02NDtjbGFzcyBJbnRlcnNlY3RvcnsjVWU9W107I1hlPVtdOyNXZTsjS2U7I1ZlOyNHZTsjJGU7I1llO2NvbnN0cnVjdG9yKGUpe2xldCB0PTEvMCxuPTEvMCxhPS0xLzAscj0tMS8wO2NvbnN0IHM9dGhpcy4jVWU7Zm9yKGNvbnN0IGkgb2YgZSl7aWYoIWkuZGF0YS5xdWFkUG9pbnRzJiYhaS5kYXRhLnJlY3QpY29udGludWU7Y29uc3QgZT1uZXcgU2luZ2xlSW50ZXJzZWN0b3IoaSk7cy5wdXNoKGUpO3Q9TWF0aC5taW4odCxlLm1pblgpO249TWF0aC5taW4obixlLm1pblkpO2E9TWF0aC5tYXgoYSxlLm1heFgpO3I9TWF0aC5tYXgocixlLm1heFkpfXRoaXMuI1dlPXQ7dGhpcy4jVmU9bjt0aGlzLiNLZT1hO3RoaXMuI0dlPXI7dGhpcy4jJGU9NjMvKGEtdCk7dGhpcy4jWWU9NjMvKHItbik7Zm9yKGNvbnN0IGUgb2Ygcyl7Y29uc3QgdD10aGlzLiNKZShlLm1pblgsZS5taW5ZKSxuPXRoaXMuI0plKGUubWF4WCxlLm1heFkpLGE9KG4tdCklZmwscj1NYXRoLmZsb29yKChuLXQpL2ZsKTtmb3IobGV0IG49dDtuPD10K3IqZmw7bis9ZmwpZm9yKGxldCB0PTA7dDw9YTt0Kyspe2xldCBhPXRoaXMuI1hlW24rdF07YXx8KHRoaXMuI1hlW24rdF09YT1bXSk7YS5wdXNoKGUpfX19I0plKGUsdCl7cmV0dXJuIE1hdGguZmxvb3IoKGUtdGhpcy4jV2UpKnRoaXMuIyRlKStNYXRoLmZsb29yKCh0LXRoaXMuI1ZlKSp0aGlzLiNZZSkqZmx9YWRkR2x5cGgoZSx0LG4sYSl7Y29uc3Qgcj1lWzRdK3QvMixzPWVbNV0rbi8yO2lmKHI8dGhpcy4jV2V8fHM8dGhpcy4jVmV8fHI+dGhpcy4jS2V8fHM+dGhpcy4jR2UpcmV0dXJuO2NvbnN0IGk9dGhpcy4jWGVbdGhpcy4jSmUocixzKV07aWYoaSlmb3IoY29uc3QgZSBvZiBpKWUuYWRkR2x5cGgocixzLGEpfWFkZEV4dHJhQ2hhcihlKXtmb3IoY29uc3QgdCBvZiB0aGlzLiNVZSl0LmFkZEV4dHJhQ2hhcihlKX1zZXRUZXh0KCl7Zm9yKGNvbnN0IGUgb2YgdGhpcy4jVWUpZS5zZXRUZXh0KCl9fWNsYXNzIFdvcmQ2NHtjb25zdHJ1Y3RvcihlLHQpe3RoaXMuaGlnaD0wfGU7dGhpcy5sb3c9MHx0fWFuZChlKXt0aGlzLmhpZ2gmPWUuaGlnaDt0aGlzLmxvdyY9ZS5sb3d9eG9yKGUpe3RoaXMuaGlnaF49ZS5oaWdoO3RoaXMubG93Xj1lLmxvd31zaGlmdFJpZ2h0KGUpe2lmKGU+PTMyKXt0aGlzLmxvdz10aGlzLmhpZ2g+Pj5lLTMyfDA7dGhpcy5oaWdoPTB9ZWxzZXt0aGlzLmxvdz10aGlzLmxvdz4+PmV8dGhpcy5oaWdoPDwzMi1lO3RoaXMuaGlnaD10aGlzLmhpZ2g+Pj5lfDB9fXJvdGF0ZVJpZ2h0KGUpe2xldCB0LG47aWYoMzImZSl7bj10aGlzLmxvdzt0PXRoaXMuaGlnaH1lbHNle3Q9dGhpcy5sb3c7bj10aGlzLmhpZ2h9ZSY9MzE7dGhpcy5sb3c9dD4+PmV8bjw8MzItZTt0aGlzLmhpZ2g9bj4+PmV8dDw8MzItZX1ub3QoKXt0aGlzLmhpZ2g9fnRoaXMuaGlnaDt0aGlzLmxvdz1+dGhpcy5sb3d9YWRkKGUpe2NvbnN0IHQ9KHRoaXMubG93Pj4+MCkrKGUubG93Pj4+MCk7bGV0IG49KHRoaXMuaGlnaD4+PjApKyhlLmhpZ2g+Pj4wKTt0PjQyOTQ5NjcyOTUmJihuKz0xKTt0aGlzLmxvdz0wfHQ7dGhpcy5oaWdoPTB8bn1jb3B5VG8oZSx0KXtlW3RdPXRoaXMuaGlnaD4+PjI0JjI1NTtlW3QrMV09dGhpcy5oaWdoPj4xNiYyNTU7ZVt0KzJdPXRoaXMuaGlnaD4+OCYyNTU7ZVt0KzNdPTI1NSZ0aGlzLmhpZ2g7ZVt0KzRdPXRoaXMubG93Pj4+MjQmMjU1O2VbdCs1XT10aGlzLmxvdz4+MTYmMjU1O2VbdCs2XT10aGlzLmxvdz4+OCYyNTU7ZVt0KzddPTI1NSZ0aGlzLmxvd31hc3NpZ24oZSl7dGhpcy5oaWdoPWUuaGlnaDt0aGlzLmxvdz1lLmxvd319Y29uc3QgY2w9e2dldCBrKCl7cmV0dXJuIHNoYWRvdyh0aGlzLCJrIixbbmV3IFdvcmQ2NCgxMTE2MzUyNDA4LDM2MDk3Njc0NTgpLG5ldyBXb3JkNjQoMTg5OTQ0NzQ0MSw2MDI4OTE3MjUpLG5ldyBXb3JkNjQoMzA0OTMyMzQ3MSwzOTY0NDg0Mzk5KSxuZXcgV29yZDY0KDM5MjEwMDk1NzMsMjE3MzI5NTU0OCksbmV3IFdvcmQ2NCg5NjE5ODcxNjMsNDA4MTYyODQ3MiksbmV3IFdvcmQ2NCgxNTA4OTcwOTkzLDMwNTM4MzQyNjUpLG5ldyBXb3JkNjQoMjQ1MzYzNTc0OCwyOTM3NjcxNTc5KSxuZXcgV29yZDY0KDI4NzA3NjMyMjEsMzY2NDYwOTU2MCksbmV3IFdvcmQ2NCgzNjI0MzgxMDgwLDI3MzQ4ODMzOTQpLG5ldyBXb3JkNjQoMzEwNTk4NDAxLDExNjQ5OTY1NDIpLG5ldyBXb3JkNjQoNjA3MjI1Mjc4LDEzMjM2MTA3NjQpLG5ldyBXb3JkNjQoMTQyNjg4MTk4NywzNTkwMzA0OTk0KSxuZXcgV29yZDY0KDE5MjUwNzgzODgsNDA2ODE4MjM4MyksbmV3IFdvcmQ2NCgyMTYyMDc4MjA2LDk5MTMzNjExMyksbmV3IFdvcmQ2NCgyNjE0ODg4MTAzLDYzMzgwMzMxNyksbmV3IFdvcmQ2NCgzMjQ4MjIyNTgwLDM0Nzk3NzQ4NjgpLG5ldyBXb3JkNjQoMzgzNTM5MDQwMSwyNjY2NjEzNDU4KSxuZXcgV29yZDY0KDQwMjIyMjQ3NzQsOTQ0NzExMTM5KSxuZXcgV29yZDY0KDI2NDM0NzA3OCwyMzQxMjYyNzczKSxuZXcgV29yZDY0KDYwNDgwNzYyOCwyMDA3ODAwOTMzKSxuZXcgV29yZDY0KDc3MDI1NTk4MywxNDk1OTkwOTAxKSxuZXcgV29yZDY0KDEyNDkxNTAxMjIsMTg1NjQzMTIzNSksbmV3IFdvcmQ2NCgxNTU1MDgxNjkyLDMxNzUyMTgxMzIpLG5ldyBXb3JkNjQoMTk5NjA2NDk4NiwyMTk4OTUwODM3KSxuZXcgV29yZDY0KDI1NTQyMjA4ODIsMzk5OTcxOTMzOSksbmV3IFdvcmQ2NCgyODIxODM0MzQ5LDc2Njc4NDAxNiksbmV3IFdvcmQ2NCgyOTUyOTk2ODA4LDI1NjY1OTQ4NzkpLG5ldyBXb3JkNjQoMzIxMDMxMzY3MSwzMjAzMzM3OTU2KSxuZXcgV29yZDY0KDMzMzY1NzE4OTEsMTAzNDQ1NzAyNiksbmV3IFdvcmQ2NCgzNTg0NTI4NzExLDI0NjY5NDg5MDEpLG5ldyBXb3JkNjQoMTEzOTI2OTkzLDM3NTgzMjYzODMpLG5ldyBXb3JkNjQoMzM4MjQxODk1LDE2ODcxNzkzNiksbmV3IFdvcmQ2NCg2NjYzMDcyMDUsMTE4ODE3OTk2NCksbmV3IFdvcmQ2NCg3NzM1Mjk5MTIsMTU0NjA0NTczNCksbmV3IFdvcmQ2NCgxMjk0NzU3MzcyLDE1MjI4MDU0ODUpLG5ldyBXb3JkNjQoMTM5NjE4MjI5MSwyNjQzODMzODIzKSxuZXcgV29yZDY0KDE2OTUxODM3MDAsMjM0MzUyNzM5MCksbmV3IFdvcmQ2NCgxOTg2NjYxMDUxLDEwMTQ0Nzc0ODApLG5ldyBXb3JkNjQoMjE3NzAyNjM1MCwxMjA2NzU5MTQyKSxuZXcgV29yZDY0KDI0NTY5NTYwMzcsMzQ0MDc3NjI3KSxuZXcgV29yZDY0KDI3MzA0ODU5MjEsMTI5MDg2MzQ2MCksbmV3IFdvcmQ2NCgyODIwMzAyNDExLDMxNTg0NTQyNzMpLG5ldyBXb3JkNjQoMzI1OTczMDgwMCwzNTA1OTUyNjU3KSxuZXcgV29yZDY0KDMzNDU3NjQ3NzEsMTA2MjE3MDA4KSxuZXcgV29yZDY0KDM1MTYwNjU4MTcsMzYwNjAwODM0NCksbmV3IFdvcmQ2NCgzNjAwMzUyODA0LDE0MzI3MjU3NzYpLG5ldyBXb3JkNjQoNDA5NDU3MTkwOSwxNDY3MDMxNTk0KSxuZXcgV29yZDY0KDI3NTQyMzM0NCw4NTExNjk3MjApLG5ldyBXb3JkNjQoNDMwMjI3NzM0LDMxMDA4MjM3NTIpLG5ldyBXb3JkNjQoNTA2OTQ4NjE2LDEzNjMyNTgxOTUpLG5ldyBXb3JkNjQoNjU5MDYwNTU2LDM3NTA2ODU1OTMpLG5ldyBXb3JkNjQoODgzOTk3ODc3LDM3ODUwNTAyODApLG5ldyBXb3JkNjQoOTU4MTM5NTcxLDMzMTgzMDc0MjcpLG5ldyBXb3JkNjQoMTMyMjgyMjIxOCwzODEyNzIzNDAzKSxuZXcgV29yZDY0KDE1MzcwMDIwNjMsMjAwMzAzNDk5NSksbmV3IFdvcmQ2NCgxNzQ3ODczNzc5LDM2MDIwMzY4OTkpLG5ldyBXb3JkNjQoMTk1NTU2MjIyMiwxNTc1OTkwMDEyKSxuZXcgV29yZDY0KDIwMjQxMDQ4MTUsMTEyNTU5MjkyOCksbmV3IFdvcmQ2NCgyMjI3NzMwNDUyLDI3MTY5MDQzMDYpLG5ldyBXb3JkNjQoMjM2MTg1MjQyNCw0NDI3NzYwNDQpLG5ldyBXb3JkNjQoMjQyODQzNjQ3NCw1OTM2OTgzNDQpLG5ldyBXb3JkNjQoMjc1NjczNDE4NywzNzMzMTEwMjQ5KSxuZXcgV29yZDY0KDMyMDQwMzE0NzksMjk5OTM1MTU3MyksbmV3IFdvcmQ2NCgzMzI5MzI1Mjk4LDM4MTU5MjA0MjcpLG5ldyBXb3JkNjQoMzM5MTU2OTYxNCwzOTI4MzgzOTAwKSxuZXcgV29yZDY0KDM1MTUyNjcyNzEsNTY2MjgwNzExKSxuZXcgV29yZDY0KDM5NDAxODc2MDYsMzQ1NDA2OTUzNCksbmV3IFdvcmQ2NCg0MTE4NjMwMjcxLDQwMDAyMzk5OTIpLG5ldyBXb3JkNjQoMTE2NDE4NDc0LDE5MTQxMzg1NTQpLG5ldyBXb3JkNjQoMTc0MjkyNDIxLDI3MzEwNTUyNzApLG5ldyBXb3JkNjQoMjg5MzgwMzU2LDMyMDM5OTMwMDYpLG5ldyBXb3JkNjQoNDYwMzkzMjY5LDMyMDYyMDMxNSksbmV3IFdvcmQ2NCg2ODU0NzE3MzMsNTg3NDk2ODM2KSxuZXcgV29yZDY0KDg1MjE0Mjk3MSwxMDg2NzkyODUxKSxuZXcgV29yZDY0KDEwMTcwMzYyOTgsMzY1NTQzMTAwKSxuZXcgV29yZDY0KDExMjYwMDA1ODAsMjYxODI5NzY3NiksbmV3IFdvcmQ2NCgxMjg4MDMzNDcwLDM0MDk4NTUxNTgpLG5ldyBXb3JkNjQoMTUwMTUwNTk0OCw0MjM0NTA5ODY2KSxuZXcgV29yZDY0KDE2MDcxNjc5MTUsOTg3MTY3NDY4KSxuZXcgV29yZDY0KDE4MTY0MDIzMTYsMTI0NjE4OTU5MSldKX19O2Z1bmN0aW9uIGNoKGUsdCxuLGEscil7ZS5hc3NpZ24odCk7ZS5hbmQobik7ci5hc3NpZ24odCk7ci5ub3QoKTtyLmFuZChhKTtlLnhvcihyKX1mdW5jdGlvbiBtYWooZSx0LG4sYSxyKXtlLmFzc2lnbih0KTtlLmFuZChuKTtyLmFzc2lnbih0KTtyLmFuZChhKTtlLnhvcihyKTtyLmFzc2lnbihuKTtyLmFuZChhKTtlLnhvcihyKX1mdW5jdGlvbiBzaWdtYShlLHQsbil7ZS5hc3NpZ24odCk7ZS5yb3RhdGVSaWdodCgyOCk7bi5hc3NpZ24odCk7bi5yb3RhdGVSaWdodCgzNCk7ZS54b3Iobik7bi5hc3NpZ24odCk7bi5yb3RhdGVSaWdodCgzOSk7ZS54b3Iobil9ZnVuY3Rpb24gc2lnbWFQcmltZShlLHQsbil7ZS5hc3NpZ24odCk7ZS5yb3RhdGVSaWdodCgxNCk7bi5hc3NpZ24odCk7bi5yb3RhdGVSaWdodCgxOCk7ZS54b3Iobik7bi5hc3NpZ24odCk7bi5yb3RhdGVSaWdodCg0MSk7ZS54b3Iobil9ZnVuY3Rpb24gbGl0dGxlU2lnbWEoZSx0LG4pe2UuYXNzaWduKHQpO2Uucm90YXRlUmlnaHQoMSk7bi5hc3NpZ24odCk7bi5yb3RhdGVSaWdodCg4KTtlLnhvcihuKTtuLmFzc2lnbih0KTtuLnNoaWZ0UmlnaHQoNyk7ZS54b3Iobil9ZnVuY3Rpb24gbGl0dGxlU2lnbWFQcmltZShlLHQsbil7ZS5hc3NpZ24odCk7ZS5yb3RhdGVSaWdodCgxOSk7bi5hc3NpZ24odCk7bi5yb3RhdGVSaWdodCg2MSk7ZS54b3Iobik7bi5hc3NpZ24odCk7bi5zaGlmdFJpZ2h0KDYpO2UueG9yKG4pfWZ1bmN0aW9uIGNhbGN1bGF0ZVNIQTUxMihlLHQsbixhPSExKXtsZXQgcixzLGksbyxsLGYsYyxoO2lmKGEpe3I9bmV3IFdvcmQ2NCgzNDE4MDcwMzY1LDMyMzgzNzEwMzIpO3M9bmV3IFdvcmQ2NCgxNjU0MjcwMjUwLDkxNDE1MDY2Myk7aT1uZXcgV29yZDY0KDI0Mzg1MjkzNzAsODEyNzAyOTk5KTtvPW5ldyBXb3JkNjQoMzU1NDYyMzYwLDQxNDQ5MTI2OTcpO2w9bmV3IFdvcmQ2NCgxNzMxNDA1NDE1LDQyOTA3NzU4NTcpO2Y9bmV3IFdvcmQ2NCgyMzk0MTgwMjMxLDE3NTA2MDMwMjUpO2M9bmV3IFdvcmQ2NCgzNjc1MDA4NTI1LDE2OTQwNzY4MzkpO2g9bmV3IFdvcmQ2NCgxMjAzMDYyODEzLDMyMDQwNzU0MjgpfWVsc2V7cj1uZXcgV29yZDY0KDE3NzkwMzM3MDMsNDA4OTIzNTcyMCk7cz1uZXcgV29yZDY0KDMxNDQxMzQyNzcsMjIyNzg3MzU5NSk7aT1uZXcgV29yZDY0KDEwMTM5MDQyNDIsNDI3MTE3NTcyMyk7bz1uZXcgV29yZDY0KDI3NzM0ODA3NjIsMTU5NTc1MDEyOSk7bD1uZXcgV29yZDY0KDEzNTk4OTMxMTksMjkxNzU2NTEzNyk7Zj1uZXcgV29yZDY0KDI2MDA4MjI5MjQsNzI1NTExMTk5KTtjPW5ldyBXb3JkNjQoNTI4NzM0NjM1LDQyMTUzODk1NDcpO2g9bmV3IFdvcmQ2NCgxNTQxNDU5MjI1LDMyNzAzMzIwOSl9Y29uc3QgdT0xMjgqTWF0aC5jZWlsKChuKzE3KS8xMjgpLG09bmV3IFVpbnQ4QXJyYXkodSk7bGV0IHAsZDtmb3IocD0wO3A8bjsrK3ApbVtwXT1lW3QrK107bVtwKytdPTEyODtjb25zdCBnPXUtMTY7cDxnJiYocD1nKTtwKz0xMTttW3ArK109bj4+PjI5JjI1NTttW3ArK109bj4+MjEmMjU1O21bcCsrXT1uPj4xMyYyNTU7bVtwKytdPW4+PjUmMjU1O21bcCsrXT1uPDwzJjI1NTtjb25zdCBiPW5ldyBBcnJheSg4MCk7Zm9yKHA9MDtwPDgwO3ArKyliW3BdPW5ldyBXb3JkNjQoMCwwKTtjb25zdHtrOnd9PWNsO2xldCBqPW5ldyBXb3JkNjQoMCwwKSxrPW5ldyBXb3JkNjQoMCwwKSx5PW5ldyBXb3JkNjQoMCwwKSxxPW5ldyBXb3JkNjQoMCwwKSx2PW5ldyBXb3JkNjQoMCwwKSxTPW5ldyBXb3JkNjQoMCwwKSx4PW5ldyBXb3JkNjQoMCwwKSxDPW5ldyBXb3JkNjQoMCwwKTtjb25zdCBUPW5ldyBXb3JkNjQoMCwwKSxPPW5ldyBXb3JkNjQoMCwwKSxSPW5ldyBXb3JkNjQoMCwwKSxIPW5ldyBXb3JkNjQoMCwwKTtsZXQgRCxNO2ZvcihwPTA7cDx1Oyl7Zm9yKGQ9MDtkPDE2OysrZCl7YltkXS5oaWdoPW1bcF08PDI0fG1bcCsxXTw8MTZ8bVtwKzJdPDw4fG1bcCszXTtiW2RdLmxvdz1tW3ArNF08PDI0fG1bcCs1XTw8MTZ8bVtwKzZdPDw4fG1bcCs3XTtwKz04fWZvcihkPTE2O2Q8ODA7KytkKXtEPWJbZF07bGl0dGxlU2lnbWFQcmltZShELGJbZC0yXSxIKTtELmFkZChiW2QtN10pO2xpdHRsZVNpZ21hKFIsYltkLTE1XSxIKTtELmFkZChSKTtELmFkZChiW2QtMTZdKX1qLmFzc2lnbihyKTtrLmFzc2lnbihzKTt5LmFzc2lnbihpKTtxLmFzc2lnbihvKTt2LmFzc2lnbihsKTtTLmFzc2lnbihmKTt4LmFzc2lnbihjKTtDLmFzc2lnbihoKTtmb3IoZD0wO2Q8ODA7KytkKXtULmFzc2lnbihDKTtzaWdtYVByaW1lKFIsdixIKTtULmFkZChSKTtjaChSLHYsUyx4LEgpO1QuYWRkKFIpO1QuYWRkKHdbZF0pO1QuYWRkKGJbZF0pO3NpZ21hKE8saixIKTttYWooUixqLGsseSxIKTtPLmFkZChSKTtEPUM7Qz14O3g9UztTPXY7cS5hZGQoVCk7dj1xO3E9eTt5PWs7az1qO0QuYXNzaWduKFQpO0QuYWRkKE8pO2o9RH1yLmFkZChqKTtzLmFkZChrKTtpLmFkZCh5KTtvLmFkZChxKTtsLmFkZCh2KTtmLmFkZChTKTtjLmFkZCh4KTtoLmFkZChDKX1pZihhKXtNPW5ldyBVaW50OEFycmF5KDQ4KTtyLmNvcHlUbyhNLDApO3MuY29weVRvKE0sOCk7aS5jb3B5VG8oTSwxNik7by5jb3B5VG8oTSwyNCk7bC5jb3B5VG8oTSwzMik7Zi5jb3B5VG8oTSw0MCl9ZWxzZXtNPW5ldyBVaW50OEFycmF5KDY0KTtyLmNvcHlUbyhNLDApO3MuY29weVRvKE0sOCk7aS5jb3B5VG8oTSwxNik7by5jb3B5VG8oTSwyNCk7bC5jb3B5VG8oTSwzMik7Zi5jb3B5VG8oTSw0MCk7Yy5jb3B5VG8oTSw0OCk7aC5jb3B5VG8oTSw1Nil9cmV0dXJuIE19ZnVuY3Rpb24gY2FsY3VsYXRlU0hBMzg0KGUsdCxuKXtyZXR1cm4gY2FsY3VsYXRlU0hBNTEyKGUsdCxuLCEwKX1jb25zdCBobD17Z2V0IGsoKXtyZXR1cm4gc2hhZG93KHRoaXMsImsiLFsxMTE2MzUyNDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgyMDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgwLDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEsMzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2MDY1ODE3LDM2MDAzNTI4MDQsNDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdKX19O2Z1bmN0aW9uIHJvdHIoZSx0KXtyZXR1cm4gZT4+PnR8ZTw8MzItdH1mdW5jdGlvbiBjYWxjdWxhdGVfc2hhMjU2X2NoKGUsdCxuKXtyZXR1cm4gZSZ0Xn5lJm59ZnVuY3Rpb24gY2FsY3VsYXRlX3NoYTI1Nl9tYWooZSx0LG4pe3JldHVybiBlJnReZSZuXnQmbn1mdW5jdGlvbiBjYWxjdWxhdGVfc2hhMjU2X3NpZ21hKGUpe3JldHVybiByb3RyKGUsMilecm90cihlLDEzKV5yb3RyKGUsMjIpfWZ1bmN0aW9uIGNhbGN1bGF0ZV9zaGEyNTZfc2lnbWFQcmltZShlKXtyZXR1cm4gcm90cihlLDYpXnJvdHIoZSwxMSlecm90cihlLDI1KX1mdW5jdGlvbiBjYWxjdWxhdGVfc2hhMjU2X2xpdHRsZVNpZ21hKGUpe3JldHVybiByb3RyKGUsNylecm90cihlLDE4KV5lPj4+M31mdW5jdGlvbiBjYWxjdWxhdGVfc2hhMjU2X2xpdHRsZVNpZ21hUHJpbWUoZSl7cmV0dXJuIHJvdHIoZSwxNylecm90cihlLDE5KV5lPj4+MTB9ZnVuY3Rpb24gY2FsY3VsYXRlU0hBMjU2KGUsdCxuKXtsZXQgYT0xNzc5MDMzNzAzLHI9MzE0NDEzNDI3NyxzPTEwMTM5MDQyNDIsaT0yNzczNDgwNzYyLG89MTM1OTg5MzExOSxsPTI2MDA4MjI5MjQsZj01Mjg3MzQ2MzUsYz0xNTQxNDU5MjI1O2NvbnN0IGg9NjQqTWF0aC5jZWlsKChuKzkpLzY0KSx1PW5ldyBVaW50OEFycmF5KGgpO2xldCBtLHA7Zm9yKG09MDttPG47KyttKXVbbV09ZVt0KytdO3VbbSsrXT0xMjg7Y29uc3QgZD1oLTg7bTxkJiYobT1kKTttKz0zO3VbbSsrXT1uPj4+MjkmMjU1O3VbbSsrXT1uPj4yMSYyNTU7dVttKytdPW4+PjEzJjI1NTt1W20rK109bj4+NSYyNTU7dVttKytdPW48PDMmMjU1O2NvbnN0IGc9bmV3IFVpbnQzMkFycmF5KDY0KSx7azpifT1obDtmb3IobT0wO208aDspe2ZvcihwPTA7cDwxNjsrK3Ape2dbcF09dVttXTw8MjR8dVttKzFdPDwxNnx1W20rMl08PDh8dVttKzNdO20rPTR9Zm9yKHA9MTY7cDw2NDsrK3ApZ1twXT1jYWxjdWxhdGVfc2hhMjU2X2xpdHRsZVNpZ21hUHJpbWUoZ1twLTJdKStnW3AtN10rY2FsY3VsYXRlX3NoYTI1Nl9saXR0bGVTaWdtYShnW3AtMTVdKStnW3AtMTZdfDA7bGV0IGUsdCxuPWEsaD1yLGQ9cyx3PWksaj1vLGs9bCx5PWYscT1jO2ZvcihwPTA7cDw2NDsrK3Ape2U9cStjYWxjdWxhdGVfc2hhMjU2X3NpZ21hUHJpbWUoaikrY2FsY3VsYXRlX3NoYTI1Nl9jaChqLGsseSkrYltwXStnW3BdO3Q9Y2FsY3VsYXRlX3NoYTI1Nl9zaWdtYShuKStjYWxjdWxhdGVfc2hhMjU2X21haihuLGgsZCk7cT15O3k9aztrPWo7aj13K2V8MDt3PWQ7ZD1oO2g9bjtuPWUrdHwwfWE9YStufDA7cj1yK2h8MDtzPXMrZHwwO2k9aSt3fDA7bz1vK2p8MDtsPWwra3wwO2Y9Zit5fDA7Yz1jK3F8MH1yZXR1cm4gbmV3IFVpbnQ4QXJyYXkoW2E+PjI0JjI1NSxhPj4xNiYyNTUsYT4+OCYyNTUsMjU1JmEscj4+MjQmMjU1LHI+PjE2JjI1NSxyPj44JjI1NSwyNTUmcixzPj4yNCYyNTUscz4+MTYmMjU1LHM+PjgmMjU1LDI1NSZzLGk+PjI0JjI1NSxpPj4xNiYyNTUsaT4+OCYyNTUsMjU1Jmksbz4+MjQmMjU1LG8+PjE2JjI1NSxvPj44JjI1NSwyNTUmbyxsPj4yNCYyNTUsbD4+MTYmMjU1LGw+PjgmMjU1LDI1NSZsLGY+PjI0JjI1NSxmPj4xNiYyNTUsZj4+OCYyNTUsMjU1JmYsYz4+MjQmMjU1LGM+PjE2JjI1NSxjPj44JjI1NSwyNTUmY10pfWNsYXNzIERlY3J5cHRTdHJlYW0gZXh0ZW5kcyBEZWNvZGVTdHJlYW17Y29uc3RydWN0b3IoZSx0LG4pe3N1cGVyKHQpO3RoaXMuc3RyZWFtPWU7dGhpcy5kaWN0PWUuZGljdDt0aGlzLmRlY3J5cHQ9bjt0aGlzLm5leHRDaHVuaz1udWxsO3RoaXMuaW5pdGlhbGl6ZWQ9ITF9cmVhZEJsb2NrKCl7bGV0IGU7aWYodGhpcy5pbml0aWFsaXplZCllPXRoaXMubmV4dENodW5rO2Vsc2V7ZT10aGlzLnN0cmVhbS5nZXRCeXRlcyg1MTIpO3RoaXMuaW5pdGlhbGl6ZWQ9ITB9aWYoIWU/Lmxlbmd0aCl7dGhpcy5lb2Y9ITA7cmV0dXJufXRoaXMubmV4dENodW5rPXRoaXMuc3RyZWFtLmdldEJ5dGVzKDUxMik7Y29uc3QgdD10aGlzLm5leHRDaHVuaz8ubGVuZ3RoPjA7ZT0oMCx0aGlzLmRlY3J5cHQpKGUsIXQpO2NvbnN0IG49dGhpcy5idWZmZXJMZW5ndGgsYT1uK2UubGVuZ3RoO3RoaXMuZW5zdXJlQnVmZmVyKGEpLnNldChlLG4pO3RoaXMuYnVmZmVyTGVuZ3RoPWF9Z2V0T3JpZ2luYWxTdHJlYW0oKXtyZXR1cm4gdGhpc319Y2xhc3MgQVJDRm91ckNpcGhlcnthPTA7Yj0wO2NvbnN0cnVjdG9yKGUpe2NvbnN0IHQ9bmV3IFVpbnQ4QXJyYXkoMjU2KSxuPWUubGVuZ3RoO2ZvcihsZXQgZT0wO2U8MjU2OysrZSl0W2VdPWU7Zm9yKGxldCBhPTAscj0wO2E8MjU2OysrYSl7Y29uc3Qgcz10W2FdO3I9citzK2VbYSVuXSYyNTU7dFthXT10W3JdO3Rbcl09c310aGlzLnM9dH1lbmNyeXB0QmxvY2soZSl7bGV0IHQ9dGhpcy5hLG49dGhpcy5iO2NvbnN0IGE9dGhpcy5zLHI9ZS5sZW5ndGgscz1uZXcgVWludDhBcnJheShyKTtmb3IobGV0IGk9MDtpPHI7KytpKXt0PXQrMSYyNTU7Y29uc3Qgcj1hW3RdO249bityJjI1NTtjb25zdCBvPWFbbl07YVt0XT1vO2Fbbl09cjtzW2ldPWVbaV1eYVtyK28mMjU1XX10aGlzLmE9dDt0aGlzLmI9bjtyZXR1cm4gc31kZWNyeXB0QmxvY2soZSl7cmV0dXJuIHRoaXMuZW5jcnlwdEJsb2NrKGUpfWVuY3J5cHQoZSl7cmV0dXJuIHRoaXMuZW5jcnlwdEJsb2NrKGUpfX1jbGFzcyBOdWxsQ2lwaGVye2RlY3J5cHRCbG9jayhlKXtyZXR1cm4gZX1lbmNyeXB0KGUpe3JldHVybiBlfX1jbGFzcyBBRVNCYXNlQ2lwaGVye19zPW5ldyBVaW50OEFycmF5KFs5OSwxMjQsMTE5LDEyMywyNDIsMTA3LDExMSwxOTcsNDgsMSwxMDMsNDMsMjU0LDIxNSwxNzEsMTE4LDIwMiwxMzAsMjAxLDEyNSwyNTAsODksNzEsMjQwLDE3MywyMTIsMTYyLDE3NSwxNTYsMTY0LDExNCwxOTIsMTgzLDI1MywxNDcsMzgsNTQsNjMsMjQ3LDIwNCw1MiwxNjUsMjI5LDI0MSwxMTMsMjE2LDQ5LDIxLDQsMTk5LDM1LDE5NSwyNCwxNTAsNSwxNTQsNywxOCwxMjgsMjI2LDIzNSwzOSwxNzgsMTE3LDksMTMxLDQ0LDI2LDI3LDExMCw5MCwxNjAsODIsNTksMjE0LDE3OSw0MSwyMjcsNDcsMTMyLDgzLDIwOSwwLDIzNywzMiwyNTIsMTc3LDkxLDEwNiwyMDMsMTkwLDU3LDc0LDc2LDg4LDIwNywyMDgsMjM5LDE3MCwyNTEsNjcsNzcsNTEsMTMzLDY5LDI0OSwyLDEyNyw4MCw2MCwxNTksMTY4LDgxLDE2Myw2NCwxNDMsMTQ2LDE1Nyw1NiwyNDUsMTg4LDE4MiwyMTgsMzMsMTYsMjU1LDI0MywyMTAsMjA1LDEyLDE5LDIzNiw5NSwxNTEsNjgsMjMsMTk2LDE2NywxMjYsNjEsMTAwLDkzLDI1LDExNSw5NiwxMjksNzksMjIwLDM0LDQyLDE0NCwxMzYsNzAsMjM4LDE4NCwyMCwyMjIsOTQsMTEsMjE5LDIyNCw1MCw1OCwxMCw3Myw2LDM2LDkyLDE5NCwyMTEsMTcyLDk4LDE0NSwxNDksMjI4LDEyMSwyMzEsMjAwLDU1LDEwOSwxNDEsMjEzLDc4LDE2OSwxMDgsODYsMjQ0LDIzNCwxMDEsMTIyLDE3NCw4LDE4NiwxMjAsMzcsNDYsMjgsMTY2LDE4MCwxOTgsMjMyLDIyMSwxMTYsMzEsNzUsMTg5LDEzOSwxMzgsMTEyLDYyLDE4MSwxMDIsNzIsMywyNDYsMTQsOTcsNTMsODcsMTg1LDEzNCwxOTMsMjksMTU4LDIyNSwyNDgsMTUyLDE3LDEwNSwyMTcsMTQyLDE0OCwxNTUsMzAsMTM1LDIzMywyMDYsODUsNDAsMjIzLDE0MCwxNjEsMTM3LDEzLDE5MSwyMzAsNjYsMTA0LDY1LDE1Myw0NSwxNSwxNzYsODQsMTg3LDIyXSk7X2ludl9zPW5ldyBVaW50OEFycmF5KFs4Miw5LDEwNiwyMTMsNDgsNTQsMTY1LDU2LDE5MSw2NCwxNjMsMTU4LDEyOSwyNDMsMjE1LDI1MSwxMjQsMjI3LDU3LDEzMCwxNTUsNDcsMjU1LDEzNSw1MiwxNDIsNjcsNjgsMTk2LDIyMiwyMzMsMjAzLDg0LDEyMywxNDgsNTAsMTY2LDE5NCwzNSw2MSwyMzgsNzYsMTQ5LDExLDY2LDI1MCwxOTUsNzgsOCw0NiwxNjEsMTAyLDQwLDIxNywzNiwxNzgsMTE4LDkxLDE2Miw3MywxMDksMTM5LDIwOSwzNywxMTQsMjQ4LDI0NiwxMDAsMTM0LDEwNCwxNTIsMjIsMjEyLDE2NCw5MiwyMDQsOTMsMTAxLDE4MiwxNDYsMTA4LDExMiw3Miw4MCwyNTMsMjM3LDE4NSwyMTgsOTQsMjEsNzAsODcsMTY3LDE0MSwxNTcsMTMyLDE0NCwyMTYsMTcxLDAsMTQwLDE4OCwyMTEsMTAsMjQ3LDIyOCw4OCw1LDE4NCwxNzksNjksNiwyMDgsNDQsMzAsMTQzLDIwMiw2MywxNSwyLDE5MywxNzUsMTg5LDMsMSwxOSwxMzgsMTA3LDU4LDE0NSwxNyw2NSw3OSwxMDMsMjIwLDIzNCwxNTEsMjQyLDIwNywyMDYsMjQwLDE4MCwyMzAsMTE1LDE1MCwxNzIsMTE2LDM0LDIzMSwxNzMsNTMsMTMzLDIyNiwyNDksNTUsMjMyLDI4LDExNywyMjMsMTEwLDcxLDI0MSwyNiwxMTMsMjksNDEsMTk3LDEzNywxMTEsMTgzLDk4LDE0LDE3MCwyNCwxOTAsMjcsMjUyLDg2LDYyLDc1LDE5OCwyMTAsMTIxLDMyLDE1NCwyMTksMTkyLDI1NCwxMjAsMjA1LDkwLDI0NCwzMSwyMjEsMTY4LDUxLDEzNiw3LDE5OSw0OSwxNzcsMTgsMTYsODksMzksMTI4LDIzNiw5NSw5Niw4MSwxMjcsMTY5LDI1LDE4MSw3NCwxMyw0NSwyMjksMTIyLDE1OSwxNDcsMjAxLDE1NiwyMzksMTYwLDIyNCw1OSw3NywxNzQsNDIsMjQ1LDE3NiwyMDAsMjM1LDE4Nyw2MCwxMzEsODMsMTUzLDk3LDIzLDQzLDQsMTI2LDE4NiwxMTksMjE0LDM4LDIyNSwxMDUsMjAsOTksODUsMzMsMTIsMTI1XSk7X21peD1uZXcgVWludDMyQXJyYXkoWzAsMjM1NDc0MTg3LDQ3MDk0ODM3NCwzMDM3NjUyNzcsOTQxODk2NzQ4LDkwODkzMzQxNSw2MDc1MzA1NTQsNzA4NzgwODQ5LDE4ODM3OTM0OTYsMjExODIxNDk5NSwxODE3ODY2ODMwLDE2NDk2MzkyMzcsMTIxNTA2MTEwOCwxMTgxMDQ1MTE5LDE0MTc1NjE2OTgsMTUxNzc2NzUyOSwzNzY3NTg2OTkyLDQwMDMwNjExNzksNDIzNjQyOTk5MCw0MDY5MjQ2ODkzLDM2MzU3MzM2NjAsMzYwMjc3MDMyNywzMjk5Mjc4NDc0LDM0MDA1Mjg3NjksMjQzMDEyMjIxNiwyNjY0NTQzNzE1LDIzNjIwOTAyMzgsMjE5Mzg2MjY0NSwyODM1MTIzMzk2LDI4MDExMDc0MDcsMzAzNTUzNTA1OCwzMTM1NzQwODg5LDM2NzgxMjQ5MjMsMzU3Njg3MDUxMiwzMzQxMzk0Mjg1LDMzNzQzNjE3MDIsMzgxMDQ5NjM0MywzOTc3Njc1MzU2LDQyNzkwODAyNTcsNDA0MzYxMDE4NiwyODc2NDk0NjI3LDI3NzYyOTI5MDQsMzA3NjYzOTAyOSwzMTEwNjUwOTQyLDI0NzIwMTE1MzUsMjY0MDI0MzIwNCwyNDAzNzI4NjY1LDIxNjkzMDMwNTgsMTAwMTA4OTk5NSw4OTk4MzU1ODQsNjY2NDY0NzMzLDY5OTQzMjE1MCw1OTcyNzg0NywyMjY5MDY4NjAsNTMwNDAwNzUzLDI5NDkzMDY4MiwxMjczMTY4Nzg3LDExNzI5NjcwNjQsMTQ3NTQxODUwMSwxNTA5NDMwNDE0LDE5NDI0MzU3NzUsMjExMDY2NzQ0NCwxODc2MjQxODMzLDE2NDE4MTYyMjYsMjkxMDIxOTc2NiwyNzQzMDM0MTA5LDI5NzYxNTE1MjAsMzIxMTYyMzE0NywyNTA1MjAyMTM4LDI2MDY0NTM5NjksMjMwMjY5MDI1MiwyMjY5NzI4NDU1LDM3MTE4Mjk0MjIsMzU0MzU5OTI2OSwzMjQwODk0MzkyLDM0NzUzMTMzMzEsMzg0MzY5OTA3NCwzOTQzOTA2NDQxLDQxNzgwNjIyMjgsNDE0NDA0Nzc3NSwxMzA2OTY3MzY2LDExMzk3ODE3MDksMTM3NDk4ODExMiwxNjEwNDU5NzM5LDE5NzU2ODM0MzQsMjA3NjkzNTI2NSwxNzc1Mjc2OTI0LDE3NDIzMTUxMjcsMTAzNDg2Nzk5OCw4NjY2Mzc4NDUsNTY2MDIxODk2LDgwMDQ0MDgzNSw5Mjk4NzY5OCwxOTMxOTUwNjUsNDI5NDU2MTY0LDM5NTQ0MTcxMSwxOTg0ODEyNjg1LDIwMTc3Nzg1NjYsMTc4NDY2MzE5NSwxNjgzNDA3MjQ4LDEzMTU1NjIxNDUsMTA4MDA5NDYzNCwxMzgzODU2MzExLDE1NTEwMzc4ODQsMTAxMDM5ODI5LDEzNTA1MDIwNiw0Mzc3NTcxMjMsMzM3NTUzODY0LDEwNDIzODU2NTcsODA3OTYyNjEwLDU3MzgwNDc4Myw3NDIwMzkwMTIsMjUzMTA2NzQ1MywyNTY0MDMzMzM0LDIzMjg4Mjg5NzEsMjIyNzU3MzAyNCwyOTM1NTY2ODY1LDI3MDAwOTkzNTQsMzAwMTc1NTY1NSwzMTY4OTM3MjI4LDM4Njg1NTI4MDUsMzkwMjU2MzE4Miw0MjAzMTgxMTcxLDQxMDI5Nzc5MTIsMzczNjE2NDkzNywzNTAxNzQxODkwLDMyNjU0Nzg3NTEsMzQzMzcxMjk4MCwxMTA2MDQxNTkxLDEzNDA0NjMxMDAsMTU3Njk3NjYwOSwxNDA4NzQ5MDM0LDIwNDMyMTE0ODMsMjAwOTE5NTQ3MiwxNzA4ODQ4MzMzLDE4MDkwNTQxNTAsODMyODc3MjMxLDEwNjgzNTEzOTYsNzY2OTQ1NDY1LDU5OTc2MjM1NCwxNTk0MTc5ODcsMTI2NDU0NjY0LDM2MTkyOTg3Nyw0NjMxODAxOTAsMjcwOTI2MDg3MSwyOTQzNjgyMzgwLDMxNzgxMDY5NjEsMzAwOTg3OTM4NiwyNTcyNjk3MTk1LDI1Mzg2ODExODQsMjIzNjIyODczMywyMzM2NDM0NTUwLDM1MDk4NzExMzUsMzc0NTM0NTMwMCwzNDQxODUwMzc3LDMyNzQ2NjcyNjYsMzkxMDE2MTk3MSwzODc3MTk4NjQ4LDQxMTA1Njg0ODUsNDIxMTgxODc5OCwyNTk3ODA2NDc2LDI0OTc2MDQ3NDMsMjI2MTA4OTE3OCwyMjk1MTAxMDczLDI3MzM4NTYxNjAsMjkwMjA4Nzg1MSwzMjAyNDM3MDQ2LDI5NjgwMTE0NTMsMzkzNjI5MTI4NCwzODM1MDM2ODk1LDQxMzY0NDA3NzAsNDE2OTQwODIwMSwzNTM1NDg2NDU2LDM3MDI2NjU0NTksMzQ2NzE5MjMwMiwzMjMxNzIyMjEzLDIwNTE1MTg3ODAsMTk1MTMxNzA0NywxNzE2ODkwNDEwLDE3NTA5MDIzMDUsMTExMzgxODM4NCwxMjgyMDUwMDc1LDE1ODQ1MDQ1ODIsMTM1MDA3ODk4OSwxNjg4MTA4NTIsNjc1NTY0NjMsMzcxMDQ5MzMwLDQwNDAxNjc2MSw4NDE3Mzk1OTIsMTAwODkxODU5NSw3NzU1NTA4MTQsNTQwMDgwNzI1LDM5Njk1NjIzNjksMzgwMTMzMjIzNCw0MDM1NDg5MDQ3LDQyNjk5MDc5OTYsMzU2OTI1NTIxMywzNjY5NDYyNTY2LDMzNjY3NTQ2MTksMzMzMjc0MDE0NCwyNjMxMDY1NDMzLDI0NjM4Nzk3NjIsMjE2MDExNzA3MSwyMzk1NTg4Njc2LDI3Njc2NDU1NTcsMjg2ODg5NzQwNiwzMTAyMDExNzQ3LDMwNjkwNDk5NjAsMjAyMDA4NDk3LDMzNzc4MzYyLDI3MDA0MDQ4Nyw1MDQ0NTk0MzYsODc1NDUxMjkzLDk3NTY1ODY0Niw2NzUwMzk2MjcsNjQxMDI1MTUyLDIwODQ3MDQyMzMsMTkxNzUxODU2MiwxNjE1ODYxMjQ3LDE4NTEzMzI4NTIsMTE0NzU1MDY2MSwxMjQ4ODAyNTEwLDE0ODQwMDU4NDMsMTQ1MTA0NDA1Niw5MzMzMDEzNzAsOTY3MzExNzI5LDczMzE1Njk3Miw2MzI5NTM3MDMsMjYwMzg4OTUwLDI1OTY1OTE3LDMyODY3MTgwOCw0OTY5MDYwNTksMTIwNjQ3Nzg1OCwxMjM5NDQzNzUzLDE1NDMyMDg1MDAsMTQ0MTk1MjU3NSwyMTQ0MTYxODA2LDE5MDg2OTQyNzcsMTY3NTU3Nzg4MCwxODQyNzU5NDQzLDM2MTAzNjkyMjYsMzY0NDM3OTU4NSwzNDA4MTE5NTE2LDMzMDc5MTYyNDcsNDAxMTE5MDUwMiwzNzc2NzY3NDY5LDQwNzczODQ0MzIsNDI0NTYxODY4MywyODA5NzcxMTU0LDI4NDI3MzcwNDksMzE0NDM5NjQyMCwzMDQzMTQwNDk1LDI2NzM3MDUxNTAsMjQzODIzNzYyMSwyMjAzMDMyMjMyLDIzNzAyMTM3OTVdKTtfbWl4Q29sPW5ldyBVaW50OEFycmF5KDI1NikubWFwKChlLHQpPT50PDEyOD90PDwxOnQ8PDFeMjcpO2NvbnN0cnVjdG9yKCl7dGhpcy5idWZmZXI9bmV3IFVpbnQ4QXJyYXkoMTYpO3RoaXMuYnVmZmVyUG9zaXRpb249MH1fZXhwYW5kS2V5KGUpe3VucmVhY2hhYmxlKCJDYW5ub3QgY2FsbCBgX2V4cGFuZEtleWAgb24gdGhlIGJhc2UgY2xhc3MiKX1fZGVjcnlwdChlLHQpe2xldCBuLGEscjtjb25zdCBzPW5ldyBVaW50OEFycmF5KDE2KTtzLnNldChlKTtmb3IobGV0IGU9MCxuPXRoaXMuX2tleVNpemU7ZTwxNjsrK2UsKytuKXNbZV1ePXRbbl07Zm9yKGxldCBlPXRoaXMuX2N5Y2xlc09mUmVwZXRpdGlvbi0xO2U+PTE7LS1lKXtuPXNbMTNdO3NbMTNdPXNbOV07c1s5XT1zWzVdO3NbNV09c1sxXTtzWzFdPW47bj1zWzE0XTthPXNbMTBdO3NbMTRdPXNbNl07c1sxMF09c1syXTtzWzZdPW47c1syXT1hO249c1sxNV07YT1zWzExXTtyPXNbN107c1sxNV09c1szXTtzWzExXT1uO3NbN109YTtzWzNdPXI7Zm9yKGxldCBlPTA7ZTwxNjsrK2Upc1tlXT10aGlzLl9pbnZfc1tzW2VdXTtmb3IobGV0IG49MCxhPTE2KmU7bjwxNjsrK24sKythKXNbbl1ePXRbYV07Zm9yKGxldCBlPTA7ZTwxNjtlKz00KXtjb25zdCB0PXRoaXMuX21peFtzW2VdXSxhPXRoaXMuX21peFtzW2UrMV1dLHI9dGhpcy5fbWl4W3NbZSsyXV0saT10aGlzLl9taXhbc1tlKzNdXTtuPXReYT4+PjheYTw8MjRecj4+PjE2XnI8PDE2Xmk+Pj4yNF5pPDw4O3NbZV09bj4+PjI0JjI1NTtzW2UrMV09bj4+MTYmMjU1O3NbZSsyXT1uPj44JjI1NTtzW2UrM109MjU1Jm59fW49c1sxM107c1sxM109c1s5XTtzWzldPXNbNV07c1s1XT1zWzFdO3NbMV09bjtuPXNbMTRdO2E9c1sxMF07c1sxNF09c1s2XTtzWzEwXT1zWzJdO3NbNl09bjtzWzJdPWE7bj1zWzE1XTthPXNbMTFdO3I9c1s3XTtzWzE1XT1zWzNdO3NbMTFdPW47c1s3XT1hO3NbM109cjtmb3IobGV0IGU9MDtlPDE2OysrZSl7c1tlXT10aGlzLl9pbnZfc1tzW2VdXTtzW2VdXj10W2VdfXJldHVybiBzfV9lbmNyeXB0KGUsdCl7Y29uc3Qgbj10aGlzLl9zO2xldCBhLHIscztjb25zdCBpPW5ldyBVaW50OEFycmF5KDE2KTtpLnNldChlKTtmb3IobGV0IGU9MDtlPDE2OysrZSlpW2VdXj10W2VdO2ZvcihsZXQgZT0xO2U8dGhpcy5fY3ljbGVzT2ZSZXBldGl0aW9uO2UrKyl7Zm9yKGxldCBlPTA7ZTwxNjsrK2UpaVtlXT1uW2lbZV1dO3M9aVsxXTtpWzFdPWlbNV07aVs1XT1pWzldO2lbOV09aVsxM107aVsxM109cztzPWlbMl07cj1pWzZdO2lbMl09aVsxMF07aVs2XT1pWzE0XTtpWzEwXT1zO2lbMTRdPXI7cz1pWzNdO3I9aVs3XTthPWlbMTFdO2lbM109aVsxNV07aVs3XT1zO2lbMTFdPXI7aVsxNV09YTtmb3IobGV0IGU9MDtlPDE2O2UrPTQpe2NvbnN0IHQ9aVtlXSxuPWlbZSsxXSxyPWlbZSsyXSxzPWlbZSszXTthPXRebl5yXnM7aVtlXV49YV50aGlzLl9taXhDb2xbdF5uXTtpW2UrMV1ePWFedGhpcy5fbWl4Q29sW25ecl07aVtlKzJdXj1hXnRoaXMuX21peENvbFtyXnNdO2lbZSszXV49YV50aGlzLl9taXhDb2xbc150XX1mb3IobGV0IG49MCxhPTE2KmU7bjwxNjsrK24sKythKWlbbl1ePXRbYV19Zm9yKGxldCBlPTA7ZTwxNjsrK2UpaVtlXT1uW2lbZV1dO3M9aVsxXTtpWzFdPWlbNV07aVs1XT1pWzldO2lbOV09aVsxM107aVsxM109cztzPWlbMl07cj1pWzZdO2lbMl09aVsxMF07aVs2XT1pWzE0XTtpWzEwXT1zO2lbMTRdPXI7cz1pWzNdO3I9aVs3XTthPWlbMTFdO2lbM109aVsxNV07aVs3XT1zO2lbMTFdPXI7aVsxNV09YTtmb3IobGV0IGU9MCxuPXRoaXMuX2tleVNpemU7ZTwxNjsrK2UsKytuKWlbZV1ePXRbbl07cmV0dXJuIGl9X2RlY3J5cHRCbG9jazIoZSx0KXtjb25zdCBuPWUubGVuZ3RoO2xldCBhPXRoaXMuYnVmZmVyLHI9dGhpcy5idWZmZXJQb3NpdGlvbjtjb25zdCBzPVtdO2xldCBpPXRoaXMuaXY7Zm9yKGxldCB0PTA7dDxuOysrdCl7YVtyXT1lW3RdOysrcjtpZihyPDE2KWNvbnRpbnVlO2NvbnN0IG49dGhpcy5fZGVjcnlwdChhLHRoaXMuX2tleSk7Zm9yKGxldCBlPTA7ZTwxNjsrK2UpbltlXV49aVtlXTtpPWE7cy5wdXNoKG4pO2E9bmV3IFVpbnQ4QXJyYXkoMTYpO3I9MH10aGlzLmJ1ZmZlcj1hO3RoaXMuYnVmZmVyTGVuZ3RoPXI7dGhpcy5pdj1pO2lmKDA9PT1zLmxlbmd0aClyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoMCk7bGV0IG89MTYqcy5sZW5ndGg7aWYodCl7Y29uc3QgZT1zLmF0KC0xKTtsZXQgdD1lWzE1XTtpZih0PD0xNil7Zm9yKGxldCBuPTE1LGE9MTYtdDtuPj1hOy0tbilpZihlW25dIT09dCl7dD0wO2JyZWFrfW8tPXQ7c1tzLmxlbmd0aC0xXT1lLnN1YmFycmF5KDAsMTYtdCl9fWNvbnN0IGw9bmV3IFVpbnQ4QXJyYXkobyk7Zm9yKGxldCBlPTAsdD0wLG49cy5sZW5ndGg7ZTxuOysrZSx0Kz0xNilsLnNldChzW2VdLHQpO3JldHVybiBsfWRlY3J5cHRCbG9jayhlLHQsbj1udWxsKXtjb25zdCBhPWUubGVuZ3RoLHI9dGhpcy5idWZmZXI7bGV0IHM9dGhpcy5idWZmZXJQb3NpdGlvbjtpZihuKXRoaXMuaXY9bjtlbHNle2ZvcihsZXQgdD0wO3M8MTYmJnQ8YTsrK3QsKytzKXJbc109ZVt0XTtpZihzPDE2KXt0aGlzLmJ1ZmZlckxlbmd0aD1zO3JldHVybiBuZXcgVWludDhBcnJheSgwKX10aGlzLml2PXI7ZT1lLnN1YmFycmF5KDE2KX10aGlzLmJ1ZmZlcj1uZXcgVWludDhBcnJheSgxNik7dGhpcy5idWZmZXJMZW5ndGg9MDt0aGlzLmRlY3J5cHRCbG9jaz10aGlzLl9kZWNyeXB0QmxvY2syO3JldHVybiB0aGlzLmRlY3J5cHRCbG9jayhlLHQpfWVuY3J5cHQoZSx0KXtjb25zdCBuPWUubGVuZ3RoO2xldCBhPXRoaXMuYnVmZmVyLHI9dGhpcy5idWZmZXJQb3NpdGlvbjtjb25zdCBzPVtdO3R8fD1uZXcgVWludDhBcnJheSgxNik7Zm9yKGxldCBpPTA7aTxuOysraSl7YVtyXT1lW2ldOysrcjtpZihyPDE2KWNvbnRpbnVlO2ZvcihsZXQgZT0wO2U8MTY7KytlKWFbZV1ePXRbZV07Y29uc3Qgbj10aGlzLl9lbmNyeXB0KGEsdGhpcy5fa2V5KTt0PW47cy5wdXNoKG4pO2E9bmV3IFVpbnQ4QXJyYXkoMTYpO3I9MH10aGlzLmJ1ZmZlcj1hO3RoaXMuYnVmZmVyTGVuZ3RoPXI7dGhpcy5pdj10O2lmKDA9PT1zLmxlbmd0aClyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoMCk7Y29uc3QgaT0xNipzLmxlbmd0aCxvPW5ldyBVaW50OEFycmF5KGkpO2ZvcihsZXQgZT0wLHQ9MCxuPXMubGVuZ3RoO2U8bjsrK2UsdCs9MTYpby5zZXQoc1tlXSx0KTtyZXR1cm4gb319Y2xhc3MgQUVTMTI4Q2lwaGVyIGV4dGVuZHMgQUVTQmFzZUNpcGhlcntfcmNvbj1uZXcgVWludDhBcnJheShbMTQxLDEsMiw0LDgsMTYsMzIsNjQsMTI4LDI3LDU0LDEwOCwyMTYsMTcxLDc3LDE1NCw0Nyw5NCwxODgsOTksMTk4LDE1MSw1MywxMDYsMjEyLDE3OSwxMjUsMjUwLDIzOSwxOTcsMTQ1LDU3LDExNCwyMjgsMjExLDE4OSw5NywxOTQsMTU5LDM3LDc0LDE0OCw1MSwxMDIsMjA0LDEzMSwyOSw1OCwxMTYsMjMyLDIwMywxNDEsMSwyLDQsOCwxNiwzMiw2NCwxMjgsMjcsNTQsMTA4LDIxNiwxNzEsNzcsMTU0LDQ3LDk0LDE4OCw5OSwxOTgsMTUxLDUzLDEwNiwyMTIsMTc5LDEyNSwyNTAsMjM5LDE5NywxNDUsNTcsMTE0LDIyOCwyMTEsMTg5LDk3LDE5NCwxNTksMzcsNzQsMTQ4LDUxLDEwMiwyMDQsMTMxLDI5LDU4LDExNiwyMzIsMjAzLDE0MSwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNyw1NCwxMDgsMjE2LDE3MSw3NywxNTQsNDcsOTQsMTg4LDk5LDE5OCwxNTEsNTMsMTA2LDIxMiwxNzksMTI1LDI1MCwyMzksMTk3LDE0NSw1NywxMTQsMjI4LDIxMSwxODksOTcsMTk0LDE1OSwzNyw3NCwxNDgsNTEsMTAyLDIwNCwxMzEsMjksNTgsMTE2LDIzMiwyMDMsMTQxLDEsMiw0LDgsMTYsMzIsNjQsMTI4LDI3LDU0LDEwOCwyMTYsMTcxLDc3LDE1NCw0Nyw5NCwxODgsOTksMTk4LDE1MSw1MywxMDYsMjEyLDE3OSwxMjUsMjUwLDIzOSwxOTcsMTQ1LDU3LDExNCwyMjgsMjExLDE4OSw5NywxOTQsMTU5LDM3LDc0LDE0OCw1MSwxMDIsMjA0LDEzMSwyOSw1OCwxMTYsMjMyLDIwMywxNDEsMSwyLDQsOCwxNiwzMiw2NCwxMjgsMjcsNTQsMTA4LDIxNiwxNzEsNzcsMTU0LDQ3LDk0LDE4OCw5OSwxOTgsMTUxLDUzLDEwNiwyMTIsMTc5LDEyNSwyNTAsMjM5LDE5NywxNDUsNTcsMTE0LDIyOCwyMTEsMTg5LDk3LDE5NCwxNTksMzcsNzQsMTQ4LDUxLDEwMiwyMDQsMTMxLDI5LDU4LDExNiwyMzIsMjAzLDE0MV0pO2NvbnN0cnVjdG9yKGUpe3N1cGVyKCk7dGhpcy5fY3ljbGVzT2ZSZXBldGl0aW9uPTEwO3RoaXMuX2tleVNpemU9MTYwO3RoaXMuX2tleT10aGlzLl9leHBhbmRLZXkoZSl9X2V4cGFuZEtleShlKXtjb25zdCB0PXRoaXMuX3Msbj10aGlzLl9yY29uLGE9bmV3IFVpbnQ4QXJyYXkoMTc2KTthLnNldChlKTtmb3IobGV0IGU9MTYscj0xO2U8MTc2Oysrcil7bGV0IHM9YVtlLTNdLGk9YVtlLTJdLG89YVtlLTFdLGw9YVtlLTRdO3M9dFtzXTtpPXRbaV07bz10W29dO2w9dFtsXTtzXj1uW3JdO2ZvcihsZXQgdD0wO3Q8NDsrK3Qpe2FbZV09c149YVtlLTE2XTtlKys7YVtlXT1pXj1hW2UtMTZdO2UrKzthW2VdPW9ePWFbZS0xNl07ZSsrO2FbZV09bF49YVtlLTE2XTtlKyt9fXJldHVybiBhfX1jbGFzcyBBRVMyNTZDaXBoZXIgZXh0ZW5kcyBBRVNCYXNlQ2lwaGVye2NvbnN0cnVjdG9yKGUpe3N1cGVyKCk7dGhpcy5fY3ljbGVzT2ZSZXBldGl0aW9uPTE0O3RoaXMuX2tleVNpemU9MjI0O3RoaXMuX2tleT10aGlzLl9leHBhbmRLZXkoZSl9X2V4cGFuZEtleShlKXtjb25zdCB0PXRoaXMuX3Msbj1uZXcgVWludDhBcnJheSgyNDApO24uc2V0KGUpO2xldCBhLHIscyxpLG89MTtmb3IobGV0IGU9MzIsbD0xO2U8MjQwOysrbCl7aWYoZSUzMj09MTYpe2E9dFthXTtyPXRbcl07cz10W3NdO2k9dFtpXX1lbHNlIGlmKGUlMzI9PTApe2E9bltlLTNdO3I9bltlLTJdO3M9bltlLTFdO2k9bltlLTRdO2E9dFthXTtyPXRbcl07cz10W3NdO2k9dFtpXTthXj1vOyhvPDw9MSk+PTI1NiYmKG89MjU1JigyN15vKSl9Zm9yKGxldCB0PTA7dDw0OysrdCl7bltlXT1hXj1uW2UtMzJdO2UrKztuW2VdPXJePW5bZS0zMl07ZSsrO25bZV09c149bltlLTMyXTtlKys7bltlXT1pXj1uW2UtMzJdO2UrK319cmV0dXJuIG59fWNsYXNzIFBERkJhc2V7X2hhc2goZSx0LG4pe3VucmVhY2hhYmxlKCJBYnN0cmFjdCBtZXRob2QgYF9oYXNoYCBjYWxsZWQiKX1jaGVja093bmVyUGFzc3dvcmQoZSx0LG4sYSl7Y29uc3Qgcj1uZXcgVWludDhBcnJheShlLmxlbmd0aCs1Nik7ci5zZXQoZSwwKTtyLnNldCh0LGUubGVuZ3RoKTtyLnNldChuLGUubGVuZ3RoK3QubGVuZ3RoKTtyZXR1cm4gaXNBcnJheUVxdWFsKHRoaXMuX2hhc2goZSxyLG4pLGEpfWNoZWNrVXNlclBhc3N3b3JkKGUsdCxuKXtjb25zdCBhPW5ldyBVaW50OEFycmF5KGUubGVuZ3RoKzgpO2Euc2V0KGUsMCk7YS5zZXQodCxlLmxlbmd0aCk7cmV0dXJuIGlzQXJyYXlFcXVhbCh0aGlzLl9oYXNoKGUsYSxbXSksbil9Z2V0T3duZXJLZXkoZSx0LG4sYSl7Y29uc3Qgcj1uZXcgVWludDhBcnJheShlLmxlbmd0aCs1Nik7ci5zZXQoZSwwKTtyLnNldCh0LGUubGVuZ3RoKTtyLnNldChuLGUubGVuZ3RoK3QubGVuZ3RoKTtjb25zdCBzPXRoaXMuX2hhc2goZSxyLG4pO3JldHVybiBuZXcgQUVTMjU2Q2lwaGVyKHMpLmRlY3J5cHRCbG9jayhhLCExLG5ldyBVaW50OEFycmF5KDE2KSl9Z2V0VXNlcktleShlLHQsbil7Y29uc3QgYT1uZXcgVWludDhBcnJheShlLmxlbmd0aCs4KTthLnNldChlLDApO2Euc2V0KHQsZS5sZW5ndGgpO2NvbnN0IHI9dGhpcy5faGFzaChlLGEsW10pO3JldHVybiBuZXcgQUVTMjU2Q2lwaGVyKHIpLmRlY3J5cHRCbG9jayhuLCExLG5ldyBVaW50OEFycmF5KDE2KSl9fWNsYXNzIFBERjE3IGV4dGVuZHMgUERGQmFzZXtfaGFzaChlLHQsbil7cmV0dXJuIGNhbGN1bGF0ZVNIQTI1Nih0LDAsdC5sZW5ndGgpfX1jbGFzcyBQREYyMCBleHRlbmRzIFBERkJhc2V7X2hhc2goZSx0LG4pe2xldCBhPWNhbGN1bGF0ZVNIQTI1Nih0LDAsdC5sZW5ndGgpLnN1YmFycmF5KDAsMzIpLHI9WzBdLHM9MDtmb3IoO3M8NjR8fHIuYXQoLTEpPnMtMzI7KXtjb25zdCB0PWUubGVuZ3RoK2EubGVuZ3RoK24ubGVuZ3RoLGk9bmV3IFVpbnQ4QXJyYXkodCk7bGV0IG89MDtpLnNldChlLG8pO28rPWUubGVuZ3RoO2kuc2V0KGEsbyk7bys9YS5sZW5ndGg7aS5zZXQobixvKTtjb25zdCBsPW5ldyBVaW50OEFycmF5KDY0KnQpO2ZvcihsZXQgZT0wLG49MDtlPDY0O2UrKyxuKz10KWwuc2V0KGksbik7cj1uZXcgQUVTMTI4Q2lwaGVyKGEuc3ViYXJyYXkoMCwxNikpLmVuY3J5cHQobCxhLnN1YmFycmF5KDE2LDMyKSk7Y29uc3QgZj1NYXRoLnN1bVByZWNpc2Uoci5zbGljZSgwLDE2KSklMzswPT09Zj9hPWNhbGN1bGF0ZVNIQTI1NihyLDAsci5sZW5ndGgpOjE9PT1mP2E9Y2FsY3VsYXRlU0hBMzg0KHIsMCxyLmxlbmd0aCk6Mj09PWYmJihhPWNhbGN1bGF0ZVNIQTUxMihyLDAsci5sZW5ndGgpKTtzKyt9cmV0dXJuIGEuc3ViYXJyYXkoMCwzMil9fWNsYXNzIENpcGhlclRyYW5zZm9ybXtjb25zdHJ1Y3RvcihlLHQpe3RoaXMuU3RyaW5nQ2lwaGVyQ29uc3RydWN0b3I9ZTt0aGlzLlN0cmVhbUNpcGhlckNvbnN0cnVjdG9yPXR9Y3JlYXRlU3RyZWFtKGUsdCl7Y29uc3Qgbj1uZXcgdGhpcy5TdHJlYW1DaXBoZXJDb25zdHJ1Y3RvcjtyZXR1cm4gbmV3IERlY3J5cHRTdHJlYW0oZSx0LGZ1bmN0aW9uIGNpcGhlclRyYW5zZm9ybURlY3J5cHRTdHJlYW0oZSx0KXtyZXR1cm4gbi5kZWNyeXB0QmxvY2soZSx0KX0pfWRlY3J5cHRTdHJpbmcoZSl7Y29uc3QgdD1uZXcgdGhpcy5TdHJpbmdDaXBoZXJDb25zdHJ1Y3RvcjtsZXQgbj1zdHJpbmdUb0J5dGVzKGUpO249dC5kZWNyeXB0QmxvY2sobiwhMCk7cmV0dXJuIGJ5dGVzVG9TdHJpbmcobil9ZW5jcnlwdFN0cmluZyhlKXtjb25zdCB0PW5ldyB0aGlzLlN0cmluZ0NpcGhlckNvbnN0cnVjdG9yO2lmKHQgaW5zdGFuY2VvZiBBRVNCYXNlQ2lwaGVyKXtjb25zdCBuPTE2LWUubGVuZ3RoJTE2O2UrPVN0cmluZy5mcm9tQ2hhckNvZGUobikucmVwZWF0KG4pO2NvbnN0IGE9bmV3IFVpbnQ4QXJyYXkoMTYpO2NyeXB0by5nZXRSYW5kb21WYWx1ZXMoYSk7bGV0IHI9c3RyaW5nVG9CeXRlcyhlKTtyPXQuZW5jcnlwdChyLGEpO2NvbnN0IHM9bmV3IFVpbnQ4QXJyYXkoMTYrci5sZW5ndGgpO3Muc2V0KGEpO3Muc2V0KHIsMTYpO3JldHVybiBieXRlc1RvU3RyaW5nKHMpfWxldCBuPXN0cmluZ1RvQnl0ZXMoZSk7bj10LmVuY3J5cHQobik7cmV0dXJuIGJ5dGVzVG9TdHJpbmcobil9fWNsYXNzIENpcGhlclRyYW5zZm9ybUZhY3Rvcnl7c3RhdGljIGdldCBfZGVmYXVsdFBhc3N3b3JkQnl0ZXMoKXtyZXR1cm4gc2hhZG93KHRoaXMsIl9kZWZhdWx0UGFzc3dvcmRCeXRlcyIsbmV3IFVpbnQ4QXJyYXkoWzQwLDE5MSw3OCw5NCw3OCwxMTcsMTM4LDY1LDEwMCwwLDc4LDg2LDI1NSwyNTAsMSw4LDQ2LDQ2LDAsMTgyLDIwOCwxMDQsNjIsMTI4LDQ3LDEyLDE2OSwyNTQsMTAwLDgzLDEwNSwxMjJdKSl9I1FlKGUsdCxuLGEscixzLGksbyxsLGYsYyxoKXtpZih0KXtjb25zdCBlPU1hdGgubWluKDEyNyx0Lmxlbmd0aCk7dD10LnN1YmFycmF5KDAsZSl9ZWxzZSB0PVtdO2NvbnN0IHU9Nj09PWU/bmV3IFBERjIwOm5ldyBQREYxNztyZXR1cm4gdS5jaGVja1VzZXJQYXNzd29yZCh0LG8saSk/dS5nZXRVc2VyS2V5KHQsbCxjKTp0Lmxlbmd0aCYmdS5jaGVja093bmVyUGFzc3dvcmQodCxhLHMsbik/dS5nZXRPd25lcktleSh0LHIscyxmKTpudWxsfSNaZShlLHQsbixhLHIscyxpLG8pe2NvbnN0IGw9NDArbi5sZW5ndGgrZS5sZW5ndGgsZj1uZXcgVWludDhBcnJheShsKTtsZXQgYyxoLHU9MDtpZih0KXtoPU1hdGgubWluKDMyLHQubGVuZ3RoKTtmb3IoO3U8aDsrK3UpZlt1XT10W3VdfWM9MDtmb3IoO3U8MzI7KWZbdSsrXT1DaXBoZXJUcmFuc2Zvcm1GYWN0b3J5Ll9kZWZhdWx0UGFzc3dvcmRCeXRlc1tjKytdO2Yuc2V0KG4sdSk7dSs9bi5sZW5ndGg7Zlt1KytdPTI1NSZyO2ZbdSsrXT1yPj44JjI1NTtmW3UrK109cj4+MTYmMjU1O2ZbdSsrXT1yPj4+MjQmMjU1O2Yuc2V0KGUsdSk7dSs9ZS5sZW5ndGg7aWYocz49NCYmIW8pe2YuZmlsbCgyNTUsdSx1KzQpO3UrPTR9bGV0IG09Y2FsY3VsYXRlTUQ1KGYsMCx1KTtjb25zdCBwPWk+PjM7aWYocz49Mylmb3IoYz0wO2M8NTA7KytjKW09Y2FsY3VsYXRlTUQ1KG0sMCxwKTtjb25zdCBkPW0uc3ViYXJyYXkoMCxwKTtsZXQgZyxiO2lmKHM+PTMpe3U9MDtmLnNldChDaXBoZXJUcmFuc2Zvcm1GYWN0b3J5Ll9kZWZhdWx0UGFzc3dvcmRCeXRlcyx1KTt1Kz0zMjtmLnNldChlLHUpO3UrPWUubGVuZ3RoO2c9bmV3IEFSQ0ZvdXJDaXBoZXIoZCk7Yj1nLmVuY3J5cHRCbG9jayhjYWxjdWxhdGVNRDUoZiwwLHUpKTtoPWQubGVuZ3RoO2NvbnN0IHQ9bmV3IFVpbnQ4QXJyYXkoaCk7Zm9yKGM9MTtjPD0xOTsrK2Mpe2ZvcihsZXQgZT0wO2U8aDsrK2UpdFtlXT1kW2VdXmM7Zz1uZXcgQVJDRm91ckNpcGhlcih0KTtiPWcuZW5jcnlwdEJsb2NrKGIpfX1lbHNle2c9bmV3IEFSQ0ZvdXJDaXBoZXIoZCk7Yj1nLmVuY3J5cHRCbG9jayhDaXBoZXJUcmFuc2Zvcm1GYWN0b3J5Ll9kZWZhdWx0UGFzc3dvcmRCeXRlcyl9cmV0dXJuIGIuZXZlcnkoKGUsdCk9PmFbdF09PT1lKT9kOm51bGx9I2V0KGUsdCxuLGEpe2NvbnN0IHI9bmV3IFVpbnQ4QXJyYXkoMzIpO2xldCBzPTA7Y29uc3QgaT1NYXRoLm1pbigzMixlLmxlbmd0aCk7Zm9yKDtzPGk7KytzKXJbc109ZVtzXTtsZXQgbz0wO2Zvcig7czwzMjspcltzKytdPUNpcGhlclRyYW5zZm9ybUZhY3RvcnkuX2RlZmF1bHRQYXNzd29yZEJ5dGVzW28rK107bGV0IGw9Y2FsY3VsYXRlTUQ1KHIsMCxzKTtjb25zdCBmPWE+PjM7aWYobj49Mylmb3Iobz0wO288NTA7KytvKWw9Y2FsY3VsYXRlTUQ1KGwsMCxsLmxlbmd0aCk7bGV0IGMsaDtpZihuPj0zKXtoPXQ7Y29uc3QgZT1uZXcgVWludDhBcnJheShmKTtmb3Iobz0xOTtvPj0wO28tLSl7Zm9yKGxldCB0PTA7dDxmOysrdCllW3RdPWxbdF1ebztjPW5ldyBBUkNGb3VyQ2lwaGVyKGUpO2g9Yy5lbmNyeXB0QmxvY2soaCl9fWVsc2V7Yz1uZXcgQVJDRm91ckNpcGhlcihsLnN1YmFycmF5KDAsZikpO2g9Yy5lbmNyeXB0QmxvY2sodCl9cmV0dXJuIGh9I3R0KGUsdCxuLGE9ITEpe2NvbnN0IHI9bi5sZW5ndGgscz1uZXcgVWludDhBcnJheShyKzkpO3Muc2V0KG4pO2xldCBpPXI7c1tpKytdPTI1NSZlO3NbaSsrXT1lPj44JjI1NTtzW2krK109ZT4+MTYmMjU1O3NbaSsrXT0yNTUmdDtzW2krK109dD4+OCYyNTU7aWYoYSl7c1tpKytdPTExNTtzW2krK109NjU7c1tpKytdPTEwODtzW2krK109ODR9cmV0dXJuIGNhbGN1bGF0ZU1ENShzLDAsaSkuc3ViYXJyYXkoMCxNYXRoLm1pbihyKzUsMTYpKX0jbnQoZSx0LG4sYSxyKXtpZighKHQgaW5zdGFuY2VvZiBOYW1lKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgY3J5cHQgZmlsdGVyIG5hbWUuIik7Y29uc3Qgcz10aGlzLGk9ZS5nZXQodC5uYW1lKSxvPWk/LmdldCgiQ0ZNIik7aWYoIW98fCJOb25lIj09PW8ubmFtZSlyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE51bGxDaXBoZXJ9O2lmKCJWMiI9PT1vLm5hbWUpcmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBBUkNGb3VyQ2lwaGVyKHMuI3R0KG4sYSxyLCExKSl9O2lmKCJBRVNWMiI9PT1vLm5hbWUpcmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBBRVMxMjhDaXBoZXIocy4jdHQobixhLHIsITApKX07aWYoIkFFU1YzIj09PW8ubmFtZSlyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEFFUzI1NkNpcGhlcihyKX07dGhyb3cgbmV3IEZvcm1hdEVycm9yKCJVbmtub3duIGNyeXB0byBtZXRob2QiKX1jb25zdHJ1Y3RvcihlLHQsbil7Y29uc3QgYT1lLmdldCgiRmlsdGVyIik7aWYoIWlzTmFtZShhLCJTdGFuZGFyZCIpKXRocm93IG5ldyBGb3JtYXRFcnJvcigidW5rbm93biBlbmNyeXB0aW9uIG1ldGhvZCIpO3RoaXMuZmlsdGVyTmFtZT1hLm5hbWU7dGhpcy5kaWN0PWU7Y29uc3Qgcj1lLmdldCgiViIpO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKHIpfHwxIT09ciYmMiE9PXImJjQhPT1yJiY1IT09cil0aHJvdyBuZXcgRm9ybWF0RXJyb3IoInVuc3VwcG9ydGVkIGVuY3J5cHRpb24gYWxnb3JpdGhtIik7dGhpcy5hbGdvcml0aG09cjtsZXQgcz1lLmdldCgiTGVuZ3RoIik7aWYoIXMpaWYocjw9MylzPTQwO2Vsc2V7Y29uc3QgdD1lLmdldCgiQ0YiKSxuPWUuZ2V0KCJTdG1GIik7aWYodCBpbnN0YW5jZW9mIERpY3QmJm4gaW5zdGFuY2VvZiBOYW1lKXt0LnN1cHByZXNzRW5jcnlwdGlvbj0hMDtjb25zdCBlPXQuZ2V0KG4ubmFtZSk7cz1lPy5nZXQoIkxlbmd0aCIpfHwxMjg7czw0MCYmKHM8PD0zKX19aWYoIU51bWJlci5pc0ludGVnZXIocyl8fHM8NDB8fHMlOCE9MCl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoImludmFsaWQga2V5IGxlbmd0aCIpO2NvbnN0IGk9c3RyaW5nVG9CeXRlcyhlLmdldCgiTyIpKSxvPXN0cmluZ1RvQnl0ZXMoZS5nZXQoIlUiKSksbD1pLnN1YmFycmF5KDAsMzIpLGY9by5zdWJhcnJheSgwLDMyKSxjPWUuZ2V0KCJQIiksaD1lLmdldCgiUiIpLHU9KDQ9PT1yfHw1PT09cikmJiExIT09ZS5nZXQoIkVuY3J5cHRNZXRhZGF0YSIpO3RoaXMuZW5jcnlwdE1ldGFkYXRhPXU7Y29uc3QgbT1zdHJpbmdUb0J5dGVzKHQpO2xldCBwLGQ7aWYobil7aWYoNj09PWgpdHJ5e249dXRmOFN0cmluZ1RvU3RyaW5nKG4pfWNhdGNoe3dhcm4oIkNpcGhlclRyYW5zZm9ybUZhY3Rvcnk6IFVuYWJsZSB0byBjb252ZXJ0IFVURjggZW5jb2RlZCBwYXNzd29yZC4iKX1wPXN0cmluZ1RvQnl0ZXMobil9aWYoNSE9PXIpZD10aGlzLiNaZShtLHAsbCxmLGMsaCxzLHUpO2Vsc2V7Y29uc3QgdD1pLnN1YmFycmF5KDMyLDQwKSxuPWkuc3ViYXJyYXkoNDAsNDgpLGE9by5zdWJhcnJheSgwLDQ4KSxyPW8uc3ViYXJyYXkoMzIsNDApLHM9by5zdWJhcnJheSg0MCw0OCksYz1zdHJpbmdUb0J5dGVzKGUuZ2V0KCJPRSIpKSx1PXN0cmluZ1RvQnl0ZXMoZS5nZXQoIlVFIikpLG09c3RyaW5nVG9CeXRlcyhlLmdldCgiUGVybXMiKSk7ZD10aGlzLiNRZShoLHAsbCx0LG4sYSxmLHIscyxjLHUsbSl9aWYoIWQpe2lmKCFuKXRocm93IG5ldyBQYXNzd29yZEV4Y2VwdGlvbigiTm8gcGFzc3dvcmQgZ2l2ZW4iLHRuKTtjb25zdCBlPXRoaXMuI2V0KHAsbCxoLHMpO2Q9dGhpcy4jWmUobSxlLGwsZixjLGgscyx1KX1pZighZCl0aHJvdyBuZXcgUGFzc3dvcmRFeGNlcHRpb24oIkluY29ycmVjdCBQYXNzd29yZCIsbm4pO2lmKDQ9PT1yJiZkLmxlbmd0aDwxNil7dGhpcy5lbmNyeXB0aW9uS2V5PW5ldyBVaW50OEFycmF5KDE2KTt0aGlzLmVuY3J5cHRpb25LZXkuc2V0KGQpfWVsc2UgdGhpcy5lbmNyeXB0aW9uS2V5PWQ7aWYocj49NCl7Y29uc3QgdD1lLmdldCgiQ0YiKTt0IGluc3RhbmNlb2YgRGljdCYmKHQuc3VwcHJlc3NFbmNyeXB0aW9uPSEwKTt0aGlzLmNmPXQ7dGhpcy5zdG1mPWUuZ2V0KCJTdG1GIil8fE5hbWUuZ2V0KCJJZGVudGl0eSIpO3RoaXMuc3RyZj1lLmdldCgiU3RyRiIpfHxOYW1lLmdldCgiSWRlbnRpdHkiKTt0aGlzLmVmZj1lLmdldCgiRUZGIil8fHRoaXMuc3RtZn19Y3JlYXRlQ2lwaGVyVHJhbnNmb3JtKGUsdCl7aWYoND09PXRoaXMuYWxnb3JpdGhtfHw1PT09dGhpcy5hbGdvcml0aG0pcmV0dXJuIG5ldyBDaXBoZXJUcmFuc2Zvcm0odGhpcy4jbnQodGhpcy5jZix0aGlzLnN0cmYsZSx0LHRoaXMuZW5jcnlwdGlvbktleSksdGhpcy4jbnQodGhpcy5jZix0aGlzLnN0bWYsZSx0LHRoaXMuZW5jcnlwdGlvbktleSkpO2NvbnN0IG49dGhpcy4jdHQoZSx0LHRoaXMuZW5jcnlwdGlvbktleSwhMSksY2lwaGVyQ29uc3RydWN0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEFSQ0ZvdXJDaXBoZXIobil9O3JldHVybiBuZXcgQ2lwaGVyVHJhbnNmb3JtKGNpcGhlckNvbnN0cnVjdG9yLGNpcGhlckNvbnN0cnVjdG9yKX19Y2xhc3MgWFJlZntjb25zdHJ1Y3RvcihlLHQpe3RoaXMuc3RyZWFtPWU7dGhpcy5wZGZNYW5hZ2VyPXQ7dGhpcy5lbnRyaWVzPVtdO3RoaXMuX3hyZWZTdG1zPW5ldyBTZXQ7dGhpcy5fY2FjaGVNYXA9bmV3IE1hcDt0aGlzLl9wZW5kaW5nUmVmcz1uZXcgUmVmU2V0O3RoaXMuX25ld1BlcnNpc3RlbnRSZWZOdW09bnVsbDt0aGlzLl9uZXdUZW1wb3JhcnlSZWZOdW09bnVsbDt0aGlzLl9wZXJzaXN0ZW50UmVmc0NhY2hlPW51bGx9Z2V0TmV3UGVyc2lzdGVudFJlZihlKXtudWxsPT09dGhpcy5fbmV3UGVyc2lzdGVudFJlZk51bSYmKHRoaXMuX25ld1BlcnNpc3RlbnRSZWZOdW09dGhpcy5lbnRyaWVzLmxlbmd0aHx8MSk7Y29uc3QgdD10aGlzLl9uZXdQZXJzaXN0ZW50UmVmTnVtKys7dGhpcy5fY2FjaGVNYXAuc2V0KHQsZSk7cmV0dXJuIFJlZi5nZXQodCwwKX1nZXROZXdUZW1wb3JhcnlSZWYoKXtpZihudWxsPT09dGhpcy5fbmV3VGVtcG9yYXJ5UmVmTnVtKXt0aGlzLl9uZXdUZW1wb3JhcnlSZWZOdW09dGhpcy5lbnRyaWVzLmxlbmd0aHx8MTtpZih0aGlzLl9uZXdQZXJzaXN0ZW50UmVmTnVtKXt0aGlzLl9wZXJzaXN0ZW50UmVmc0NhY2hlPW5ldyBNYXA7Zm9yKGxldCBlPXRoaXMuX25ld1RlbXBvcmFyeVJlZk51bTtlPHRoaXMuX25ld1BlcnNpc3RlbnRSZWZOdW07ZSsrKXt0aGlzLl9wZXJzaXN0ZW50UmVmc0NhY2hlLnNldChlLHRoaXMuX2NhY2hlTWFwLmdldChlKSk7dGhpcy5fY2FjaGVNYXAuZGVsZXRlKGUpfX19cmV0dXJuIFJlZi5nZXQodGhpcy5fbmV3VGVtcG9yYXJ5UmVmTnVtKyssMCl9cmVzZXROZXdUZW1wb3JhcnlSZWYoKXt0aGlzLl9uZXdUZW1wb3JhcnlSZWZOdW09bnVsbDtpZih0aGlzLl9wZXJzaXN0ZW50UmVmc0NhY2hlKWZvcihjb25zdFtlLHRdb2YgdGhpcy5fcGVyc2lzdGVudFJlZnNDYWNoZSl0aGlzLl9jYWNoZU1hcC5zZXQoZSx0KTt0aGlzLl9wZXJzaXN0ZW50UmVmc0NhY2hlPW51bGx9c2V0U3RhcnRYUmVmKGUpe3RoaXMuc3RhcnRYUmVmUXVldWU9W2VdfXBhcnNlKGU9ITEpe2xldCB0LG4sYTtpZihlKXt3YXJuKCJJbmRleGluZyBhbGwgUERGIG9iamVjdHMiKTt0PXRoaXMuaW5kZXhPYmplY3RzKCl9ZWxzZSB0PXRoaXMucmVhZFhSZWYoKTt0LmFzc2lnblhyZWYodGhpcyk7dGhpcy50cmFpbGVyPXQ7dHJ5e249dC5nZXQoIkVuY3J5cHQiKX1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgTWlzc2luZ0RhdGFFeGNlcHRpb24pdGhyb3cgZTt3YXJuKGBYUmVmLnBhcnNlIC0gSW52YWxpZCAiRW5jcnlwdCIgcmVmZXJlbmNlOiAiJHtlfSIuYCl9aWYobiBpbnN0YW5jZW9mIERpY3Qpe2NvbnN0IGU9dC5nZXQoIklEIiksYT1lPy5sZW5ndGg/ZVswXToiIjtuLnN1cHByZXNzRW5jcnlwdGlvbj0hMDt0aGlzLmVuY3J5cHQ9bmV3IENpcGhlclRyYW5zZm9ybUZhY3RvcnkobixhLHRoaXMucGRmTWFuYWdlci5wYXNzd29yZCl9dHJ5e2E9dC5nZXQoIlJvb3QiKX1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgTWlzc2luZ0RhdGFFeGNlcHRpb24pdGhyb3cgZTt3YXJuKGBYUmVmLnBhcnNlIC0gSW52YWxpZCAiUm9vdCIgcmVmZXJlbmNlOiAiJHtlfSIuYCl9aWYoYSBpbnN0YW5jZW9mIERpY3QpdHJ5e2lmKGEuZ2V0KCJQYWdlcyIpaW5zdGFuY2VvZiBEaWN0KXt0aGlzLnJvb3Q9YTtyZXR1cm59fWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbil0aHJvdyBlO3dhcm4oYFhSZWYucGFyc2UgLSBJbnZhbGlkICJQYWdlcyIgcmVmZXJlbmNlOiAiJHtlfSIuYCl9aWYoIWUpdGhyb3cgbmV3IFhSZWZQYXJzZUV4Y2VwdGlvbjt0aHJvdyBuZXcgSW52YWxpZFBERkV4Y2VwdGlvbigiSW52YWxpZCBSb290IHJlZmVyZW5jZS4iKX1wcm9jZXNzWFJlZlRhYmxlKGUpeyJ0YWJsZVN0YXRlImluIHRoaXN8fCh0aGlzLnRhYmxlU3RhdGU9e2VudHJ5TnVtOjAsc3RyZWFtUG9zOmUubGV4ZXIuc3RyZWFtLnBvcyxwYXJzZXJCdWYxOmUuYnVmMSxwYXJzZXJCdWYyOmUuYnVmMn0pO2lmKCFpc0NtZCh0aGlzLnJlYWRYUmVmVGFibGUoZSksInRyYWlsZXIiKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgWFJlZiB0YWJsZTogY291bGQgbm90IGZpbmQgdHJhaWxlciBkaWN0aW9uYXJ5Iik7bGV0IHQ9ZS5nZXRPYmooKTt0IGluc3RhbmNlb2YgRGljdHx8IXQuZGljdHx8KHQ9dC5kaWN0KTtpZighKHQgaW5zdGFuY2VvZiBEaWN0KSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgWFJlZiB0YWJsZTogY291bGQgbm90IHBhcnNlIHRyYWlsZXIgZGljdGlvbmFyeSIpO2RlbGV0ZSB0aGlzLnRhYmxlU3RhdGU7cmV0dXJuIHR9cmVhZFhSZWZUYWJsZShlKXtjb25zdCB0PWUubGV4ZXIuc3RyZWFtLG49dGhpcy50YWJsZVN0YXRlO3QucG9zPW4uc3RyZWFtUG9zO2UuYnVmMT1uLnBhcnNlckJ1ZjE7ZS5idWYyPW4ucGFyc2VyQnVmMjtsZXQgYTtmb3IoOzspe2lmKCEoImZpcnN0RW50cnlOdW0iaW4gbil8fCEoImVudHJ5Q291bnQiaW4gbikpe2lmKGlzQ21kKGE9ZS5nZXRPYmooKSwidHJhaWxlciIpKWJyZWFrO24uZmlyc3RFbnRyeU51bT1hO24uZW50cnlDb3VudD1lLmdldE9iaigpfWxldCByPW4uZmlyc3RFbnRyeU51bTtjb25zdCBzPW4uZW50cnlDb3VudDtpZighTnVtYmVyLmlzSW50ZWdlcihyKXx8IU51bWJlci5pc0ludGVnZXIocykpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJJbnZhbGlkIFhSZWYgdGFibGU6IHdyb25nIHR5cGVzIGluIHN1YnNlY3Rpb24gaGVhZGVyIik7Zm9yKGxldCBhPW4uZW50cnlOdW07YTxzO2ErKyl7bi5zdHJlYW1Qb3M9dC5wb3M7bi5lbnRyeU51bT1hO24ucGFyc2VyQnVmMT1lLmJ1ZjE7bi5wYXJzZXJCdWYyPWUuYnVmMjtjb25zdCBpPXt9O2kub2Zmc2V0PWUuZ2V0T2JqKCk7aS5nZW49ZS5nZXRPYmooKTtjb25zdCBvPWUuZ2V0T2JqKCk7aWYobyBpbnN0YW5jZW9mIENtZClzd2l0Y2goby5jbWQpe2Nhc2UiZiI6aS5mcmVlPSEwO2JyZWFrO2Nhc2UibiI6aS51bmNvbXByZXNzZWQ9ITB9aWYoIU51bWJlci5pc0ludGVnZXIoaS5vZmZzZXQpfHwhTnVtYmVyLmlzSW50ZWdlcihpLmdlbil8fCFpLmZyZWUmJiFpLnVuY29tcHJlc3NlZCl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoYEludmFsaWQgZW50cnkgaW4gWFJlZiBzdWJzZWN0aW9uOiAke3J9LCAke3N9YCk7MD09PWEmJmkuZnJlZSYmMT09PXImJihyPTApO3RoaXMuZW50cmllc1thK3JdfHwodGhpcy5lbnRyaWVzW2Ercl09aSl9bi5lbnRyeU51bT0wO24uc3RyZWFtUG9zPXQucG9zO24ucGFyc2VyQnVmMT1lLmJ1ZjE7bi5wYXJzZXJCdWYyPWUuYnVmMjtkZWxldGUgbi5maXJzdEVudHJ5TnVtO2RlbGV0ZSBuLmVudHJ5Q291bnR9aWYodGhpcy5lbnRyaWVzWzBdJiYhdGhpcy5lbnRyaWVzWzBdLmZyZWUpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJJbnZhbGlkIFhSZWYgdGFibGU6IHVuZXhwZWN0ZWQgZmlyc3Qgb2JqZWN0Iik7cmV0dXJuIGF9cHJvY2Vzc1hSZWZTdHJlYW0oZSl7aWYoISgic3RyZWFtU3RhdGUiaW4gdGhpcykpe2NvbnN0e2RpY3Q6dCxwb3M6bn09ZSxhPXQuZ2V0KCJXIikscj10LmdldCgiSW5kZXgiKXx8WzAsdC5nZXQoIlNpemUiKV07dGhpcy5zdHJlYW1TdGF0ZT17ZW50cnlSYW5nZXM6cixieXRlV2lkdGhzOmEsZW50cnlOdW06MCxzdHJlYW1Qb3M6bn19dGhpcy5yZWFkWFJlZlN0cmVhbShlKTtkZWxldGUgdGhpcy5zdHJlYW1TdGF0ZTtyZXR1cm4gZS5kaWN0fXJlYWRYUmVmU3RyZWFtKGUpe2NvbnN0IHQ9dGhpcy5zdHJlYW1TdGF0ZTtlLnBvcz10LnN0cmVhbVBvcztjb25zdFtuLGEscl09dC5ieXRlV2lkdGhzLHM9dC5lbnRyeVJhbmdlcztmb3IoO3MubGVuZ3RoPjA7KXtjb25zdFtpLG9dPXM7aWYoIU51bWJlci5pc0ludGVnZXIoaSl8fCFOdW1iZXIuaXNJbnRlZ2VyKG8pKXRocm93IG5ldyBGb3JtYXRFcnJvcihgSW52YWxpZCBYUmVmIHJhbmdlIGZpZWxkczogJHtpfSwgJHtvfWApO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKG4pfHwhTnVtYmVyLmlzSW50ZWdlcihhKXx8IU51bWJlci5pc0ludGVnZXIocikpdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBJbnZhbGlkIFhSZWYgZW50cnkgZmllbGRzIGxlbmd0aDogJHtpfSwgJHtvfWApO2ZvcihsZXQgcz10LmVudHJ5TnVtO3M8bzsrK3Mpe3QuZW50cnlOdW09czt0LnN0cmVhbVBvcz1lLnBvcztsZXQgbz0wLGw9MCxmPTA7Zm9yKGxldCB0PTA7dDxuOysrdCl7Y29uc3QgdD1lLmdldEJ5dGUoKTtpZigtMT09PXQpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJJbnZhbGlkIFhSZWYgYnl0ZVdpZHRocyAndHlwZScuIik7bz1vPDw4fHR9MD09PW4mJihvPTEpO2ZvcihsZXQgdD0wO3Q8YTsrK3Qpe2NvbnN0IHQ9ZS5nZXRCeXRlKCk7aWYoLTE9PT10KXRocm93IG5ldyBGb3JtYXRFcnJvcigiSW52YWxpZCBYUmVmIGJ5dGVXaWR0aHMgJ29mZnNldCcuIik7bD1sPDw4fHR9Zm9yKGxldCB0PTA7dDxyOysrdCl7Y29uc3QgdD1lLmdldEJ5dGUoKTtpZigtMT09PXQpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJJbnZhbGlkIFhSZWYgYnl0ZVdpZHRocyAnZ2VuZXJhdGlvbicuIik7Zj1mPDw4fHR9Y29uc3QgYz17fTtjLm9mZnNldD1sO2MuZ2VuPWY7c3dpdGNoKG8pe2Nhc2UgMDpjLmZyZWU9ITA7YnJlYWs7Y2FzZSAxOmMudW5jb21wcmVzc2VkPSEwO2JyZWFrO2Nhc2UgMjpicmVhaztkZWZhdWx0OnRocm93IG5ldyBGb3JtYXRFcnJvcihgSW52YWxpZCBYUmVmIGVudHJ5IHR5cGU6ICR7b31gKX10aGlzLmVudHJpZXNbaStzXXx8KHRoaXMuZW50cmllc1tpK3NdPWMpfXQuZW50cnlOdW09MDt0LnN0cmVhbVBvcz1lLnBvcztzLnNwbGljZSgwLDIpfX1pbmRleE9iamVjdHMoKXtmdW5jdGlvbiByZWFkVG9rZW4oZSx0KXtsZXQgbj0iIixhPWVbdF07Zm9yKDsxMCE9PWEmJjEzIT09YSYmNjAhPT1hJiYhKCsrdD49ZS5sZW5ndGgpOyl7bis9U3RyaW5nLmZyb21DaGFyQ29kZShhKTthPWVbdF19cmV0dXJuIG59ZnVuY3Rpb24gc2tpcFVudGlsKGUsdCxuKXtjb25zdCBhPW4ubGVuZ3RoLHI9ZS5sZW5ndGg7bGV0IHM9MDtmb3IoO3Q8cjspe2xldCByPTA7Zm9yKDtyPGEmJmVbdCtyXT09PW5bcl07KSsrcjtpZihyPj1hKWJyZWFrO3QrKztzKyt9cmV0dXJuIHN9Y29uc3QgZT0vXGIoZW5kb2JqfFxkK1xzK1xkK1xzK29ianx4cmVmfHRyYWlsZXJccyo8PClcYi9nLHQ9L1xiKHN0YXJ0eHJlZnxcZCtccytcZCtccytvYmopXGIvZyxuPS9eKFxkKylccysoXGQrKVxzK29ialxiLyxhPW5ldyBVaW50OEFycmF5KFsxMTYsMTE0LDk3LDEwNSwxMDgsMTAxLDExNF0pLHI9bmV3IFVpbnQ4QXJyYXkoWzExNSwxMTYsOTcsMTE0LDExNiwxMjAsMTE0LDEwMSwxMDJdKSxzPW5ldyBVaW50OEFycmF5KFs0Nyw4OCw4MiwxMDEsMTAyXSk7dGhpcy5lbnRyaWVzLmxlbmd0aD0wO3RoaXMuX2NhY2hlTWFwLmNsZWFyKCk7Y29uc3QgaT10aGlzLnN0cmVhbTtpLnBvcz0wO2NvbnN0IG89aS5nZXRCeXRlcygpLGw9Ynl0ZXNUb1N0cmluZyhvKSxmPW8ubGVuZ3RoO2xldCBjPWkuc3RhcnQ7Y29uc3QgaD1bXSx1PVtdO2Zvcig7YzxmOyl7bGV0IG09b1tjXTtpZig5PT09bXx8MTA9PT1tfHwxMz09PW18fDMyPT09bSl7KytjO2NvbnRpbnVlfWlmKDM3PT09bSl7ZG97KytjO2lmKGM+PWYpYnJlYWs7bT1vW2NdfXdoaWxlKDEwIT09bSYmMTMhPT1tKTtjb250aW51ZX1jb25zdCBwPXJlYWRUb2tlbihvLGMpO2xldCBkO2lmKHAuc3RhcnRzV2l0aCgieHJlZiIpJiYoND09PXAubGVuZ3RofHwvXHMvLnRlc3QocFs0XSkpKXtjKz1za2lwVW50aWwobyxjLGEpO2gucHVzaChjKTtjKz1za2lwVW50aWwobyxjLHIpfWVsc2UgaWYoZD1uLmV4ZWMocCkpe2NvbnN0IHQ9MHxkWzFdLG49MHxkWzJdLGE9YytwLmxlbmd0aDtsZXQgcixoPSExO2lmKHRoaXMuZW50cmllc1t0XSl7aWYodGhpcy5lbnRyaWVzW3RdLmdlbj09PW4pdHJ5e25ldyBQYXJzZXIoe2xleGVyOm5ldyBMZXhlcihpLm1ha2VTdWJTdHJlYW0oYSkpfSkuZ2V0T2JqKCk7aD0hMH1jYXRjaChlKXtlIGluc3RhbmNlb2YgUGFyc2VyRU9GRXhjZXB0aW9uP3dhcm4oYGluZGV4T2JqZWN0cyAtLSBjaGVja2luZyBvYmplY3QgKCR7cH0pOiAiJHtlfSIuYCk6aD0hMH19ZWxzZSBoPSEwO2gmJih0aGlzLmVudHJpZXNbdF09e29mZnNldDpjLWkuc3RhcnQsZ2VuOm4sdW5jb21wcmVzc2VkOiEwfSk7ZS5sYXN0SW5kZXg9YTtjb25zdCBtPWUuZXhlYyhsKTtpZihtKXtyPWUubGFzdEluZGV4KzEtYztpZigiZW5kb2JqIiE9PW1bMV0pe3dhcm4oYGluZGV4T2JqZWN0czogRm91bmQgIiR7bVsxXX0iIGluc2lkZSBvZiBhbm90aGVyICJvYmoiLCBjYXVzZWQgYnkgbWlzc2luZyAiZW5kb2JqIiAtLSB0cnlpbmcgdG8gcmVjb3Zlci5gKTtyLT1tWzFdLmxlbmd0aCsxfX1lbHNlIHI9Zi1jO2NvbnN0IGc9by5zdWJhcnJheShjLGMrciksYj1za2lwVW50aWwoZywwLHMpO2lmKGI8ciYmZ1tiKzVdPDY0KXt1LnB1c2goYy1pLnN0YXJ0KTt0aGlzLl94cmVmU3Rtcy5hZGQoYy1pLnN0YXJ0KX1jKz1yfWVsc2UgaWYocC5zdGFydHNXaXRoKCJ0cmFpbGVyIikmJig3PT09cC5sZW5ndGh8fC9ccy8udGVzdChwWzddKSkpe2gucHVzaChjKTtjb25zdCBlPWMrcC5sZW5ndGg7bGV0IG47dC5sYXN0SW5kZXg9ZTtjb25zdCBhPXQuZXhlYyhsKTtpZihhKXtuPXQubGFzdEluZGV4KzEtYztpZigic3RhcnR4cmVmIiE9PWFbMV0pe3dhcm4oYGluZGV4T2JqZWN0czogRm91bmQgIiR7YVsxXX0iIGFmdGVyICJ0cmFpbGVyIiwgY2F1c2VkIGJ5IG1pc3NpbmcgInN0YXJ0eHJlZiIgLS0gdHJ5aW5nIHRvIHJlY292ZXIuYCk7bi09YVsxXS5sZW5ndGgrMX19ZWxzZSBuPWYtYztjKz1ufWVsc2UgYys9cC5sZW5ndGgrMX1mb3IoY29uc3QgZSBvZiB1KXt0aGlzLnN0YXJ0WFJlZlF1ZXVlLnB1c2goZSk7dGhpcy5yZWFkWFJlZighMCl9Y29uc3QgbT1bXTtsZXQgcCxkLGc9ITE7Zm9yKGNvbnN0IGUgb2YgaCl7aS5wb3M9ZTtjb25zdCB0PW5ldyBQYXJzZXIoe2xleGVyOm5ldyBMZXhlcihpKSx4cmVmOnRoaXMsYWxsb3dTdHJlYW1zOiEwLHJlY292ZXJ5TW9kZTohMH0pO2lmKCFpc0NtZCh0LmdldE9iaigpLCJ0cmFpbGVyIikpY29udGludWU7Y29uc3Qgbj10LmdldE9iaigpO2lmKG4gaW5zdGFuY2VvZiBEaWN0KXttLnB1c2gobik7bi5oYXMoIkVuY3J5cHQiKSYmKGc9ITApfX1mb3IoY29uc3QgZSBvZlsuLi5tLCJnZW5GYWxsYmFjayIsLi4ubV0pe2lmKCJnZW5GYWxsYmFjayI9PT1lKXtpZighZClicmVhazt0aGlzLl9nZW5lcmF0aW9uRmFsbGJhY2s9ITA7Y29udGludWV9bGV0IHQ9ITE7dHJ5e2NvbnN0IG49ZS5nZXQoIlJvb3QiKTtpZighKG4gaW5zdGFuY2VvZiBEaWN0KSljb250aW51ZTtjb25zdCBhPW4uZ2V0KCJQYWdlcyIpO2lmKCEoYSBpbnN0YW5jZW9mIERpY3QpKWNvbnRpbnVlO2NvbnN0IHI9YS5nZXQoIkNvdW50Iik7TnVtYmVyLmlzSW50ZWdlcihyKSYmKHQ9ITApfWNhdGNoKGUpe2Q9ZTtjb250aW51ZX1pZih0JiYoIWd8fGUuaGFzKCJFbmNyeXB0IikpJiZlLmhhcygiSUQiKSlyZXR1cm4gZTtwPWV9aWYocClyZXR1cm4gcDtpZih0aGlzLnRvcERpY3QpcmV0dXJuIHRoaXMudG9wRGljdDtpZighbS5sZW5ndGgpZm9yKGNvbnN0IGUgaW4gdGhpcy5lbnRyaWVzKXtjb25zdCB0PXRoaXMuZW50cmllc1tlXTtpZighdCljb250aW51ZTtjb25zdCBuPVJlZi5nZXQocGFyc2VJbnQoZSksdC5nZW4pO2xldCBhO3RyeXthPXRoaXMuZmV0Y2gobil9Y2F0Y2h7Y29udGludWV9YSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0mJihhPWEuZGljdCk7aWYoYSBpbnN0YW5jZW9mIERpY3QmJmEuaGFzKCJSb290IikpcmV0dXJuIGF9dGhyb3cgbmV3IEludmFsaWRQREZFeGNlcHRpb24oIkludmFsaWQgUERGIHN0cnVjdHVyZS4iKX1yZWFkWFJlZihlPSExKXtjb25zdCB0PXRoaXMuc3RyZWFtLG49bmV3IFNldDtmb3IoO3RoaXMuc3RhcnRYUmVmUXVldWUubGVuZ3RoOyl7dHJ5e2NvbnN0IGU9dGhpcy5zdGFydFhSZWZRdWV1ZVswXTtpZihuLmhhcyhlKSl7d2FybigicmVhZFhSZWYgLSBza2lwcGluZyBYUmVmIHRhYmxlIHNpbmNlIGl0IHdhcyBhbHJlYWR5IHBhcnNlZC4iKTt0aGlzLnN0YXJ0WFJlZlF1ZXVlLnNoaWZ0KCk7Y29udGludWV9bi5hZGQoZSk7dC5wb3M9ZSt0LnN0YXJ0O2NvbnN0IGE9bmV3IFBhcnNlcih7bGV4ZXI6bmV3IExleGVyKHQpLHhyZWY6dGhpcyxhbGxvd1N0cmVhbXM6ITB9KTtsZXQgcixzPWEuZ2V0T2JqKCk7aWYoaXNDbWQocywieHJlZiIpKXtyPXRoaXMucHJvY2Vzc1hSZWZUYWJsZShhKTt0aGlzLnRvcERpY3R8fCh0aGlzLnRvcERpY3Q9cik7cz1yLmdldCgiWFJlZlN0bSIpO2lmKE51bWJlci5pc0ludGVnZXIocykmJiF0aGlzLl94cmVmU3Rtcy5oYXMocykpe3RoaXMuX3hyZWZTdG1zLmFkZChzKTt0aGlzLnN0YXJ0WFJlZlF1ZXVlLnB1c2gocyl9fWVsc2V7aWYoIU51bWJlci5pc0ludGVnZXIocykpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJJbnZhbGlkIFhSZWYgc3RyZWFtIGhlYWRlciIpO2lmKCEoTnVtYmVyLmlzSW50ZWdlcihhLmdldE9iaigpKSYmaXNDbWQoYS5nZXRPYmooKSwib2JqIikmJihzPWEuZ2V0T2JqKCkpaW5zdGFuY2VvZiBCYXNlU3RyZWFtKSl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgWFJlZiBzdHJlYW0iKTtyPXRoaXMucHJvY2Vzc1hSZWZTdHJlYW0ocyk7dGhpcy50b3BEaWN0fHwodGhpcy50b3BEaWN0PXIpO2lmKCFyKXRocm93IG5ldyBGb3JtYXRFcnJvcigiRmFpbGVkIHRvIHJlYWQgWFJlZiBzdHJlYW0iKX1zPXIuZ2V0KCJQcmV2Iik7TnVtYmVyLmlzSW50ZWdlcihzKT90aGlzLnN0YXJ0WFJlZlF1ZXVlLnB1c2gocyk6cyBpbnN0YW5jZW9mIFJlZiYmdGhpcy5zdGFydFhSZWZRdWV1ZS5wdXNoKHMubnVtKX1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgTWlzc2luZ0RhdGFFeGNlcHRpb24pdGhyb3cgZTtpbmZvKCIod2hpbGUgcmVhZGluZyBYUmVmKTogIitlKX10aGlzLnN0YXJ0WFJlZlF1ZXVlLnNoaWZ0KCl9aWYodGhpcy50b3BEaWN0KXJldHVybiB0aGlzLnRvcERpY3Q7aWYoIWUpdGhyb3cgbmV3IFhSZWZQYXJzZUV4Y2VwdGlvbn1nZXRFbnRyeShlKXtjb25zdCB0PXRoaXMuZW50cmllc1tlXTtyZXR1cm4gdCYmIXQuZnJlZSYmdC5vZmZzZXQ/dDpudWxsfWZldGNoSWZSZWYoZSx0PSExKXtyZXR1cm4gZSBpbnN0YW5jZW9mIFJlZj90aGlzLmZldGNoKGUsdCk6ZX1mZXRjaChlLHQ9ITEpe2lmKCEoZSBpbnN0YW5jZW9mIFJlZikpdGhyb3cgbmV3IEVycm9yKCJyZWYgb2JqZWN0IGlzIG5vdCBhIHJlZmVyZW5jZSIpO2NvbnN0IG49ZS5udW0sYT10aGlzLl9jYWNoZU1hcC5nZXQobik7aWYodm9pZCAwIT09YSl7YSBpbnN0YW5jZW9mIERpY3QmJiFhLm9iaklkJiYoYS5vYmpJZD1lLnRvU3RyaW5nKCkpO3JldHVybiBhfWxldCByPXRoaXMuZ2V0RW50cnkobik7aWYobnVsbD09PXIpcmV0dXJuIHI7aWYodGhpcy5fcGVuZGluZ1JlZnMuaGFzKGUpKXt0aGlzLl9wZW5kaW5nUmVmcy5yZW1vdmUoZSk7d2FybihgSWdub3JpbmcgY2lyY3VsYXIgcmVmZXJlbmNlOiAke2V9LmApO3JldHVybiBjbn10aGlzLl9wZW5kaW5nUmVmcy5wdXQoZSk7dHJ5e3I9ci51bmNvbXByZXNzZWQ/dGhpcy5mZXRjaFVuY29tcHJlc3NlZChlLHIsdCk6dGhpcy5mZXRjaENvbXByZXNzZWQoZSxyLHQpO3RoaXMuX3BlbmRpbmdSZWZzLnJlbW92ZShlKX1jYXRjaCh0KXt0aGlzLl9wZW5kaW5nUmVmcy5yZW1vdmUoZSk7dGhyb3cgdH1yIGluc3RhbmNlb2YgRGljdD9yLm9iaklkPWUudG9TdHJpbmcoKTpyIGluc3RhbmNlb2YgQmFzZVN0cmVhbSYmKHIuZGljdC5vYmpJZD1lLnRvU3RyaW5nKCkpO3JldHVybiByfWZldGNoVW5jb21wcmVzc2VkKGUsdCxuPSExKXtjb25zdCBhPWUuZ2VuO2xldCByPWUubnVtO2lmKHQuZ2VuIT09YSl7Y29uc3Qgcz1gSW5jb25zaXN0ZW50IGdlbmVyYXRpb24gaW4gWFJlZjogJHtlfWA7aWYodGhpcy5fZ2VuZXJhdGlvbkZhbGxiYWNrJiZ0LmdlbjxhKXt3YXJuKHMpO3JldHVybiB0aGlzLmZldGNoVW5jb21wcmVzc2VkKFJlZi5nZXQocix0LmdlbiksdCxuKX10aHJvdyBuZXcgWFJlZkVudHJ5RXhjZXB0aW9uKHMpfWNvbnN0IHM9dGhpcy5zdHJlYW0ubWFrZVN1YlN0cmVhbSh0Lm9mZnNldCt0aGlzLnN0cmVhbS5zdGFydCksaT1uZXcgUGFyc2VyKHtsZXhlcjpuZXcgTGV4ZXIocykseHJlZjp0aGlzLGFsbG93U3RyZWFtczohMH0pLG89aS5nZXRPYmooKSxsPWkuZ2V0T2JqKCksZj1pLmdldE9iaigpO2lmKG8hPT1yfHxsIT09YXx8IShmIGluc3RhbmNlb2YgQ21kKSl0aHJvdyBuZXcgWFJlZkVudHJ5RXhjZXB0aW9uKGBCYWQgKHVuY29tcHJlc3NlZCkgWFJlZiBlbnRyeTogJHtlfWApO2lmKCJvYmoiIT09Zi5jbWQpe2lmKGYuY21kLnN0YXJ0c1dpdGgoIm9iaiIpKXtyPXBhcnNlSW50KGYuY21kLnN1YnN0cmluZygzKSwxMCk7aWYoIU51bWJlci5pc05hTihyKSlyZXR1cm4gcn10aHJvdyBuZXcgWFJlZkVudHJ5RXhjZXB0aW9uKGBCYWQgKHVuY29tcHJlc3NlZCkgWFJlZiBlbnRyeTogJHtlfWApfSh0PXRoaXMuZW5jcnlwdCYmIW4/aS5nZXRPYmoodGhpcy5lbmNyeXB0LmNyZWF0ZUNpcGhlclRyYW5zZm9ybShyLGEpKTppLmdldE9iaigpKWluc3RhbmNlb2YgQmFzZVN0cmVhbXx8dGhpcy5fY2FjaGVNYXAuc2V0KHIsdCk7cmV0dXJuIHR9ZmV0Y2hDb21wcmVzc2VkKGUsdCxuPSExKXtjb25zdCBhPXQub2Zmc2V0LHI9dGhpcy5mZXRjaChSZWYuZ2V0KGEsMCkpO2lmKCEociBpbnN0YW5jZW9mIEJhc2VTdHJlYW0pKXRocm93IG5ldyBGb3JtYXRFcnJvcigiYmFkIE9ialN0bSBzdHJlYW0iKTtjb25zdCBzPXIuZGljdC5nZXQoIkZpcnN0IiksaT1yLmRpY3QuZ2V0KCJOIik7aWYoIU51bWJlci5pc0ludGVnZXIocyl8fCFOdW1iZXIuaXNJbnRlZ2VyKGkpKXRocm93IG5ldyBGb3JtYXRFcnJvcigiaW52YWxpZCBmaXJzdCBhbmQgbiBwYXJhbWV0ZXJzIGZvciBPYmpTdG0gc3RyZWFtIik7bGV0IG89bmV3IFBhcnNlcih7bGV4ZXI6bmV3IExleGVyKHIpLHhyZWY6dGhpcyxhbGxvd1N0cmVhbXM6ITB9KTtjb25zdCBsPW5ldyBBcnJheShpKSxmPW5ldyBBcnJheShpKTtmb3IobGV0IGU9MDtlPGk7KytlKXtjb25zdCB0PW8uZ2V0T2JqKCk7aWYoIU51bWJlci5pc0ludGVnZXIodCkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBpbnZhbGlkIG9iamVjdCBudW1iZXIgaW4gdGhlIE9ialN0bSBzdHJlYW06ICR7dH1gKTtjb25zdCBuPW8uZ2V0T2JqKCk7aWYoIU51bWJlci5pc0ludGVnZXIobikpdGhyb3cgbmV3IEZvcm1hdEVycm9yKGBpbnZhbGlkIG9iamVjdCBvZmZzZXQgaW4gdGhlIE9ialN0bSBzdHJlYW06ICR7bn1gKTtsW2VdPXQ7Y29uc3Qgcj10aGlzLmdldEVudHJ5KHQpO3I/Lm9mZnNldD09PWEmJnIuZ2VuIT09ZSYmKHIuZ2VuPWUpO2ZbZV09bn1jb25zdCBjPShyLnN0YXJ0fHwwKStzLGg9bmV3IEFycmF5KGkpO2ZvcihsZXQgZT0wO2U8aTsrK2Upe2NvbnN0IHQ9ZTxpLTE/ZltlKzFdLWZbZV06dm9pZCAwO2lmKHQ8MCl0aHJvdyBuZXcgRm9ybWF0RXJyb3IoIkludmFsaWQgb2Zmc2V0IGluIHRoZSBPYmpTdG0gc3RyZWFtLiIpO289bmV3IFBhcnNlcih7bGV4ZXI6bmV3IExleGVyKHIubWFrZVN1YlN0cmVhbShjK2ZbZV0sdCxyLmRpY3QpKSx4cmVmOnRoaXMsYWxsb3dTdHJlYW1zOiEwfSk7Y29uc3Qgbj1vLmdldE9iaigpO2hbZV09bjtpZihuIGluc3RhbmNlb2YgQmFzZVN0cmVhbSljb250aW51ZTtjb25zdCBzPWxbZV0sdT10aGlzLmVudHJpZXNbc107dSYmdS5vZmZzZXQ9PT1hJiZ1Lmdlbj09PWUmJnRoaXMuX2NhY2hlTWFwLnNldChzLG4pfWlmKHZvaWQgMD09PSh0PWhbdC5nZW5dKSl0aHJvdyBuZXcgWFJlZkVudHJ5RXhjZXB0aW9uKGBCYWQgKGNvbXByZXNzZWQpIFhSZWYgZW50cnk6ICR7ZX1gKTtyZXR1cm4gdH1hc3luYyBmZXRjaElmUmVmQXN5bmMoZSx0KXtyZXR1cm4gZSBpbnN0YW5jZW9mIFJlZj90aGlzLmZldGNoQXN5bmMoZSx0KTplfWFzeW5jIGZldGNoQXN5bmMoZSx0KXt0cnl7cmV0dXJuIHRoaXMuZmV0Y2goZSx0KX1jYXRjaChuKXtpZighKG4gaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbikpdGhyb3cgbjthd2FpdCB0aGlzLnBkZk1hbmFnZXIucmVxdWVzdFJhbmdlKG4uYmVnaW4sbi5lbmQpO3JldHVybiB0aGlzLmZldGNoQXN5bmMoZSx0KX19Z2V0Q2F0YWxvZ09iaigpe3JldHVybiB0aGlzLnJvb3R9fWNvbnN0IHVsPVswLDAsNjEyLDc5Ml07Y2xhc3MgUGFnZXsjYXQ9ITE7I3J0PW51bGw7Y29uc3RydWN0b3Ioe3BkZk1hbmFnZXI6ZSx4cmVmOnQscGFnZUluZGV4Om4scGFnZURpY3Q6YSxyZWY6cixnbG9iYWxJZEZhY3Rvcnk6cyxmb250Q2FjaGU6aSxidWlsdEluQ01hcENhY2hlOm8sc3RhbmRhcmRGb250RGF0YUNhY2hlOmwsZ2xvYmFsQ29sb3JTcGFjZUNhY2hlOmYsZ2xvYmFsSW1hZ2VDYWNoZTpjLHN5c3RlbUZvbnRDYWNoZTpoLG5vbkJsZW5kTW9kZXNTZXQ6dSx4ZmFGYWN0b3J5Om19KXt0aGlzLnBkZk1hbmFnZXI9ZTt0aGlzLnBhZ2VJbmRleD1uO3RoaXMucGFnZURpY3Q9YTt0aGlzLnhyZWY9dDt0aGlzLnJlZj1yO3RoaXMuZm9udENhY2hlPWk7dGhpcy5idWlsdEluQ01hcENhY2hlPW87dGhpcy5zdGFuZGFyZEZvbnREYXRhQ2FjaGU9bDt0aGlzLmdsb2JhbENvbG9yU3BhY2VDYWNoZT1mO3RoaXMuZ2xvYmFsSW1hZ2VDYWNoZT1jO3RoaXMuc3lzdGVtRm9udENhY2hlPWg7dGhpcy5ub25CbGVuZE1vZGVzU2V0PXU7dGhpcy5ldmFsdWF0b3JPcHRpb25zPWUuZXZhbHVhdG9yT3B0aW9uczt0aGlzLnhmYUZhY3Rvcnk9bTtjb25zdCBwPXtvYmo6MH07dGhpcy5fbG9jYWxJZEZhY3Rvcnk9Y2xhc3MgZXh0ZW5kcyBze3N0YXRpYyBjcmVhdGVPYmpJZCgpe3JldHVybmBwJHtufV8keysrcC5vYmp9YH1zdGF0aWMgZ2V0UGFnZU9iaklkKCl7cmV0dXJuYHAke3IudG9TdHJpbmcoKX1gfX19I3N0KGUsdD10aGlzLnBhZ2VJbmRleCl7cmV0dXJuIG5ldyBQYXJ0aWFsRXZhbHVhdG9yKHt4cmVmOnRoaXMueHJlZixoYW5kbGVyOmUscGFnZUluZGV4OnQsaWRGYWN0b3J5OnRoaXMuX2xvY2FsSWRGYWN0b3J5LGZvbnRDYWNoZTp0aGlzLmZvbnRDYWNoZSxidWlsdEluQ01hcENhY2hlOnRoaXMuYnVpbHRJbkNNYXBDYWNoZSxzdGFuZGFyZEZvbnREYXRhQ2FjaGU6dGhpcy5zdGFuZGFyZEZvbnREYXRhQ2FjaGUsZ2xvYmFsQ29sb3JTcGFjZUNhY2hlOnRoaXMuZ2xvYmFsQ29sb3JTcGFjZUNhY2hlLGdsb2JhbEltYWdlQ2FjaGU6dGhpcy5nbG9iYWxJbWFnZUNhY2hlLHN5c3RlbUZvbnRDYWNoZTp0aGlzLnN5c3RlbUZvbnRDYWNoZSxvcHRpb25zOnRoaXMuZXZhbHVhdG9yT3B0aW9uc30pfSNpdChlLHQ9ITEpe2NvbnN0IG49Z2V0SW5oZXJpdGFibGVQcm9wZXJ0eSh7ZGljdDp0aGlzLnBhZ2VEaWN0LGtleTplLGdldEFycmF5OnQsc3RvcFdoZW5Gb3VuZDohMX0pO3JldHVybiBBcnJheS5pc0FycmF5KG4pPzEhPT1uLmxlbmd0aCYmblswXWluc3RhbmNlb2YgRGljdD9EaWN0Lm1lcmdlKHt4cmVmOnRoaXMueHJlZixkaWN0QXJyYXk6bn0pOm5bMF06bn1nZXQgY29udGVudCgpe3JldHVybiB0aGlzLnBhZ2VEaWN0LmdldEFycmF5KCJDb250ZW50cyIpfWdldCByZXNvdXJjZXMoKXtjb25zdCBlPXRoaXMuI2l0KCJSZXNvdXJjZXMiKTtyZXR1cm4gc2hhZG93KHRoaXMsInJlc291cmNlcyIsZSBpbnN0YW5jZW9mIERpY3Q/ZTpEaWN0LmVtcHR5KX1nZXRCb3VuZGluZ0JveChlKXtpZih0aGlzLnhmYURhdGEpcmV0dXJuIHRoaXMueGZhRGF0YS5iYm94O2NvbnN0IHQ9bG9va3VwTm9ybWFsUmVjdCh0aGlzLiNpdChlLCEwKSxudWxsKTtpZih0KXtpZih0WzJdLXRbMF0+MCYmdFszXS10WzFdPjApcmV0dXJuIHQ7d2FybihgRW1wdHksIG9yIGludmFsaWQsIC8ke2V9IGVudHJ5LmApfXJldHVybiBudWxsfWdldCBtZWRpYUJveCgpe3JldHVybiBzaGFkb3codGhpcywibWVkaWFCb3giLHRoaXMuZ2V0Qm91bmRpbmdCb3goIk1lZGlhQm94Iil8fHVsKX1nZXQgY3JvcEJveCgpe3JldHVybiBzaGFkb3codGhpcywiY3JvcEJveCIsdGhpcy5nZXRCb3VuZGluZ0JveCgiQ3JvcEJveCIpfHx0aGlzLm1lZGlhQm94KX1nZXQgdXNlclVuaXQoKXtjb25zdCBlPXRoaXMucGFnZURpY3QuZ2V0KCJVc2VyVW5pdCIpO3JldHVybiBzaGFkb3codGhpcywidXNlclVuaXQiLCJudW1iZXIiPT10eXBlb2YgZSYmZT4wP2U6MSl9Z2V0IHZpZXcoKXtjb25zdHtjcm9wQm94OmUsbWVkaWFCb3g6dH09dGhpcztpZihlIT09dCYmIWlzQXJyYXlFcXVhbChlLHQpKXtjb25zdCBuPVV0aWwuaW50ZXJzZWN0KGUsdCk7aWYobiYmblsyXS1uWzBdPjAmJm5bM10tblsxXT4wKXJldHVybiBzaGFkb3codGhpcywidmlldyIsbik7d2FybigiRW1wdHkgL0Nyb3BCb3ggYW5kIC9NZWRpYUJveCBpbnRlcnNlY3Rpb24uIil9cmV0dXJuIHNoYWRvdyh0aGlzLCJ2aWV3Iix0KX1nZXQgcm90YXRlKCl7bGV0IGU9dGhpcy4jaXQoIlJvdGF0ZSIpfHwwO2UlOTAhPTA/ZT0wOmU+PTM2MD9lJT0zNjA6ZTwwJiYoZT0oZSUzNjArMzYwKSUzNjApO3JldHVybiBzaGFkb3codGhpcywicm90YXRlIixlKX0jb3QoZSx0KXtpZighdGhpcy5ldmFsdWF0b3JPcHRpb25zLmlnbm9yZUVycm9ycyl0aHJvdyBlO3dhcm4oYGdldENvbnRlbnRTdHJlYW0gLSBpZ25vcmluZyBzdWItc3RyZWFtICgke3R9KTogIiR7ZX0iLmApfWFzeW5jIGdldENvbnRlbnRTdHJlYW0oKXtjb25zdCBlPWF3YWl0IHRoaXMucGRmTWFuYWdlci5lbnN1cmUodGhpcywiY29udGVudCIpO2lmKGUgaW5zdGFuY2VvZiBCYXNlU3RyZWFtJiYhZS5pc0ltYWdlU3RyZWFtKXtpZihlLmlzQXN5bmMpe2NvbnN0IHQ9YXdhaXQgZS5hc3luY0dldEJ5dGVzKCk7aWYodClyZXR1cm4gbmV3IFN0cmVhbSh0LDAsdC5sZW5ndGgsZS5kaWN0KX1yZXR1cm4gZX1pZihBcnJheS5pc0FycmF5KGUpKXtjb25zdCB0PVtdO2ZvcihsZXQgbj0wLGE9ZS5sZW5ndGg7bjxhO24rKyl7Y29uc3QgYT1lW25dO2EgaW5zdGFuY2VvZiBCYXNlU3RyZWFtJiZhLmlzQXN5bmMmJnQucHVzaChhLmFzeW5jR2V0Qnl0ZXMoKS50aGVuKHQ9Pnt0JiYoZVtuXT1uZXcgU3RyZWFtKHQsMCx0Lmxlbmd0aCxhLmRpY3QpKX0pKX10Lmxlbmd0aD4wJiZhd2FpdCBQcm9taXNlLmFsbCh0KTtyZXR1cm4gbmV3IFN0cmVhbXNTZXF1ZW5jZVN0cmVhbShlLHRoaXMuI290LmJpbmQodGhpcykpfXJldHVybiBuZXcgTnVsbFN0cmVhbX1nZXQgeGZhRGF0YSgpe3JldHVybiBzaGFkb3codGhpcywieGZhRGF0YSIsdGhpcy54ZmFGYWN0b3J5P3tiYm94OnRoaXMueGZhRmFjdG9yeS5nZXRCb3VuZGluZ0JveCh0aGlzLnBhZ2VJbmRleCl9Om51bGwpfWFzeW5jI2x0KGUsdCxuKXtjb25zdCBhPVtdO2Zvcihjb25zdCByIG9mIGUpaWYoci5pZCl7Y29uc3QgZT1SZWYuZnJvbVN0cmluZyhyLmlkKTtpZighZSl7d2FybihgQSBub24tbGlua2VkIGFubm90YXRpb24gY2Fubm90IGJlIG1vZGlmaWVkOiAke3IuaWR9YCk7Y29udGludWV9aWYoci5kZWxldGVkKXt0LnB1dChlLGUpO2lmKHIucG9wdXBSZWYpe2NvbnN0IGU9UmVmLmZyb21TdHJpbmcoci5wb3B1cFJlZik7ZSYmdC5wdXQoZSxlKX1jb250aW51ZX1pZihyLnBvcHVwPy5kZWxldGVkKXtjb25zdCBlPVJlZi5mcm9tU3RyaW5nKHIucG9wdXBSZWYpO2UmJnQucHV0KGUsZSl9bj8ucHV0KGUpO3IucmVmPWU7YS5wdXNoKHRoaXMueHJlZi5mZXRjaEFzeW5jKGUpLnRoZW4oZT0+e2UgaW5zdGFuY2VvZiBEaWN0JiYoci5vbGRBbm5vdGF0aW9uPWUuY2xvbmUoKSl9LCgpPT57d2FybihgQ2Fubm90IGZldGNoIFxgb2xkQW5ub3RhdGlvblxgIGZvcjogJHtlfS5gKX0pKTtkZWxldGUgci5pZH1hd2FpdCBQcm9taXNlLmFsbChhKX1hc3luYyBzYXZlTmV3QW5ub3RhdGlvbnMoZSx0LG4sYSxyKXtpZih0aGlzLnhmYUZhY3RvcnkpdGhyb3cgbmV3IEVycm9yKCJYRkE6IENhbm5vdCBzYXZlIG5ldyBhbm5vdGF0aW9ucy4iKTtjb25zdCBzPXRoaXMuI3N0KGUpLGk9bmV3IFJlZlNldENhY2hlLG89bmV3IFJlZlNldDthd2FpdCB0aGlzLiNsdChuLGksbyk7Y29uc3QgbD10aGlzLnBhZ2VEaWN0LGY9dGhpcy5hbm5vdGF0aW9ucy5maWx0ZXIoZT0+IShlIGluc3RhbmNlb2YgUmVmJiZpLmhhcyhlKSkpLGM9YXdhaXQgQW5ub3RhdGlvbkZhY3Rvcnkuc2F2ZU5ld0Fubm90YXRpb25zKHMsdCxuLGEscik7Zm9yKGNvbnN0e3JlZjplfW9mIGMuYW5ub3RhdGlvbnMpZSBpbnN0YW5jZW9mIFJlZiYmIW8uaGFzKGUpJiZmLnB1c2goZSk7Y29uc3QgaD1sLmNsb25lKCk7aC5zZXQoIkFubm90cyIsZik7ci5wdXQodGhpcy5yZWYse2RhdGE6aH0pO2Zvcihjb25zdCBlIG9mIGkpci5wdXQoZSx7ZGF0YTpudWxsfSl9YXN5bmMgc2F2ZShlLHQsbixhKXtjb25zdCByPXRoaXMuI3N0KGUpLHM9YXdhaXQgdGhpcy5fcGFyc2VkQW5ub3RhdGlvbnMsaT1bXTtmb3IoY29uc3QgZSBvZiBzKWkucHVzaChlLnNhdmUocix0LG4sYSkuY2F0Y2goZnVuY3Rpb24oZSl7d2Fybihgc2F2ZSAtIGlnbm9yaW5nIGFubm90YXRpb24gZGF0YSBkdXJpbmcgIiR7dC5uYW1lfSIgdGFzazogIiR7ZX0iLmApO3JldHVybiBudWxsfSkpO3JldHVybiBQcm9taXNlLmFsbChpKX1hc3luYyBsb2FkUmVzb3VyY2VzKGUpe2F3YWl0KHRoaXMuI3J0Pz89dGhpcy5wZGZNYW5hZ2VyLmVuc3VyZSh0aGlzLCJyZXNvdXJjZXMiKSk7YXdhaXQgT2JqZWN0TG9hZGVyLmxvYWQodGhpcy5yZXNvdXJjZXMsZSx0aGlzLnhyZWYpfWFzeW5jI2Z0KGUsdCl7Y29uc3Qgbj1lPy5nZXQoIlJlc291cmNlcyIpO2lmKCEobiBpbnN0YW5jZW9mIERpY3QmJm4uc2l6ZSkpcmV0dXJuIHRoaXMucmVzb3VyY2VzO2F3YWl0IE9iamVjdExvYWRlci5sb2FkKG4sdCx0aGlzLnhyZWYpO3JldHVybiBEaWN0Lm1lcmdlKHt4cmVmOnRoaXMueHJlZixkaWN0QXJyYXk6W24sdGhpcy5yZXNvdXJjZXNdLG1lcmdlU3ViRGljdHM6ITB9KX1hc3luYyBnZXRPcGVyYXRvckxpc3Qoe2hhbmRsZXI6ZSxzaW5rOnQsdGFzazpuLGludGVudDphLGNhY2hlS2V5OnIscGFnZUluZGV4OnM9dGhpcy5wYWdlSW5kZXgsYW5ub3RhdGlvblN0b3JhZ2U6aT1udWxsLG1vZGlmaWVkSWRzOmM9bnVsbH0pe2NvbnN0IHA9dGhpcy5nZXRDb250ZW50U3RyZWFtKCksZz10aGlzLmxvYWRSZXNvdXJjZXMoam4pLGI9dGhpcy4jc3QoZSxzKSx3PXRoaXMueGZhRmFjdG9yeT9udWxsOmdldE5ld0Fubm90YXRpb25zTWFwKGkpLGo9dz8uZ2V0KHRoaXMucGFnZUluZGV4KTtsZXQgaz1Qcm9taXNlLnJlc29sdmUobnVsbCkseT1udWxsO2lmKGope2NvbnN0IGU9dGhpcy5wZGZNYW5hZ2VyLmVuc3VyZURvYygiYW5ub3RhdGlvbkdsb2JhbHMiKTtsZXQgdDtjb25zdCBhPW5ldyBTZXQ7Zm9yKGNvbnN0e2JpdG1hcElkOmUsYml0bWFwOnR9b2YgaikhZXx8dHx8YS5oYXMoZSl8fGEuYWRkKGUpO2NvbnN0e2lzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkOnJ9PXRoaXMuZXZhbHVhdG9yT3B0aW9ucztpZihhLnNpemU+MCl7Y29uc3QgZT1qLnNsaWNlKCk7Zm9yKGNvbnN0W3Qsbl1vZiBpKXQuc3RhcnRzV2l0aChkKSYmbi5iaXRtYXAmJmEuaGFzKG4uYml0bWFwSWQpJiZlLnB1c2gobik7dD1Bbm5vdGF0aW9uRmFjdG9yeS5nZW5lcmF0ZUltYWdlcyhlLHRoaXMueHJlZixyKX1lbHNlIHQ9QW5ub3RhdGlvbkZhY3RvcnkuZ2VuZXJhdGVJbWFnZXMoaix0aGlzLnhyZWYscik7eT1uZXcgUmVmU2V0O2s9UHJvbWlzZS5hbGwoW2UsdGhpcy4jbHQoaix5LG51bGwpXSkudGhlbigoW2VdKT0+ZT9Bbm5vdGF0aW9uRmFjdG9yeS5wcmludE5ld0Fubm90YXRpb25zKGUsYixuLGosdCk6bnVsbCl9Y29uc3QgcT1Qcm9taXNlLmFsbChbcCxnXSkudGhlbihhc3luYyhbaV0pPT57Y29uc3Qgbz1hd2FpdCB0aGlzLiNmdChpLmRpY3Qsam4pLGw9bmV3IE9wZXJhdG9yTGlzdChhLHQpO2Uuc2VuZCgiU3RhcnRSZW5kZXJQYWdlIix7dHJhbnNwYXJlbmN5OmIuaGFzQmxlbmRNb2RlcyhvLHRoaXMubm9uQmxlbmRNb2Rlc1NldCkscGFnZUluZGV4OnMsY2FjaGVLZXk6cn0pO2F3YWl0IGIuZ2V0T3BlcmF0b3JMaXN0KHtzdHJlYW06aSx0YXNrOm4scmVzb3VyY2VzOm8sb3BlcmF0b3JMaXN0Omx9KTtyZXR1cm4gbH0pO2xldFt2LFMseF09YXdhaXQgUHJvbWlzZS5hbGwoW3EsdGhpcy5fcGFyc2VkQW5ub3RhdGlvbnMsa10pO2lmKHgpe1M9Uy5maWx0ZXIoZT0+IShlLnJlZiYmeS5oYXMoZS5yZWYpKSk7Zm9yKGxldCBlPTAsdD14Lmxlbmd0aDtlPHQ7ZSsrKXtjb25zdCBuPXhbZV07aWYobi5yZWZUb1JlcGxhY2Upe2NvbnN0IGE9Uy5maW5kSW5kZXgoZT0+ZS5yZWYmJmlzUmVmc0VxdWFsKGUucmVmLG4ucmVmVG9SZXBsYWNlKSk7aWYoYT49MCl7Uy5zcGxpY2UoYSwxLG4pO3guc3BsaWNlKGUtLSwxKTt0LS19fX1TPVMuY29uY2F0KHgpfWlmKDA9PT1TLmxlbmd0aHx8YSZ1KXt2LmZsdXNoKCEwKTtyZXR1cm57bGVuZ3RoOnYudG90YWxMZW5ndGh9fWNvbnN0IEM9ISEoYSZoKSxUPSEhKGEmbSksTz0hIShhJm8pLFI9ISEoYSZsKSxIPSEhKGEmZiksRD1bXTtmb3IoY29uc3QgZSBvZiBTKShPfHxSJiZlLm11c3RCZVZpZXdlZChpLEMpJiZlLm11c3RCZVZpZXdlZFdoZW5FZGl0aW5nKFQsYyl8fEgmJmUubXVzdEJlUHJpbnRlZChpKSkmJkQucHVzaChlLmdldE9wZXJhdG9yTGlzdChiLG4sYSxpKS5jYXRjaChmdW5jdGlvbihlKXt3YXJuKGBnZXRPcGVyYXRvckxpc3QgLSBpZ25vcmluZyBhbm5vdGF0aW9uIGRhdGEgZHVyaW5nICIke24ubmFtZX0iIHRhc2s6ICIke2V9Ii5gKTtyZXR1cm57b3BMaXN0Om51bGwsc2VwYXJhdGVGb3JtOiExLHNlcGFyYXRlQ2FudmFzOiExfX0pKTtjb25zdCBNPWF3YWl0IFByb21pc2UuYWxsKEQpO2xldCBFPSExLE49ITE7Zm9yKGNvbnN0e29wTGlzdDplLHNlcGFyYXRlRm9ybTp0LHNlcGFyYXRlQ2FudmFzOm59b2YgTSl7di5hZGRPcExpc3QoZSk7RXx8PXQ7Tnx8PW59di5mbHVzaCghMCx7Zm9ybTpFLGNhbnZhczpOfSk7cmV0dXJue2xlbmd0aDp2LnRvdGFsTGVuZ3RofX1hc3luYyBleHRyYWN0VGV4dENvbnRlbnQoe2hhbmRsZXI6ZSx0YXNrOnQsaW5jbHVkZU1hcmtlZENvbnRlbnQ6bixkaXNhYmxlTm9ybWFsaXphdGlvbjphLHNpbms6cixpbnRlcnNlY3RvcjpzPW51bGx9KXtjb25zdCBpPXRoaXMuZ2V0Q29udGVudFN0cmVhbSgpLG89dGhpcy5sb2FkUmVzb3VyY2VzKGtuKSxsPXRoaXMucGRmTWFuYWdlci5lbnN1cmVDYXRhbG9nKCJsYW5nIiksW2YsLGNdPWF3YWl0IFByb21pc2UuYWxsKFtpLG8sbF0pLGg9YXdhaXQgdGhpcy4jZnQoZi5kaWN0LGtuKTtyZXR1cm4gdGhpcy4jc3QoZSkuZ2V0VGV4dENvbnRlbnQoe3N0cmVhbTpmLHRhc2s6dCxyZXNvdXJjZXM6aCxpbmNsdWRlTWFya2VkQ29udGVudDpuLGRpc2FibGVOb3JtYWxpemF0aW9uOmEsc2luazpyLHZpZXdCb3g6dGhpcy52aWV3LGxhbmc6YyxpbnRlcnNlY3RvcjpzfSl9YXN5bmMgZ2V0U3RydWN0VHJlZSgpe2NvbnN0IGU9YXdhaXQgdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZUNhdGFsb2coInN0cnVjdFRyZWVSb290Iik7aWYoIWUpcmV0dXJuIG51bGw7YXdhaXQgdGhpcy5fcGFyc2VkQW5ub3RhdGlvbnM7dHJ5e2NvbnN0IHQ9YXdhaXQgdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZSh0aGlzLCJfcGFyc2VTdHJ1Y3RUcmVlIixbZV0pO3JldHVybiBhd2FpdCB0aGlzLnBkZk1hbmFnZXIuZW5zdXJlKHQsInNlcmlhbGl6YWJsZSIpfWNhdGNoKGUpe3dhcm4oYGdldFN0cnVjdFRyZWU6ICIke2V9Ii5gKTtyZXR1cm4gbnVsbH19X3BhcnNlU3RydWN0VHJlZShlKXtjb25zdCB0PW5ldyBTdHJ1Y3RUcmVlUGFnZShlLHRoaXMucGFnZURpY3QpO3QucGFyc2UodGhpcy5yZWYpO3JldHVybiB0fWFzeW5jIGdldEFubm90YXRpb25zRGF0YShlLHQsbil7Y29uc3QgYT1hd2FpdCB0aGlzLl9wYXJzZWRBbm5vdGF0aW9ucztpZigwPT09YS5sZW5ndGgpcmV0dXJuIGE7Y29uc3Qgcj1bXSxzPVtdO2xldCBpO2NvbnN0IGM9ISEobiZvKSxoPSEhKG4mbCksdT0hIShuJmYpLG09W107Zm9yKGNvbnN0IG4gb2YgYSl7Y29uc3QgYT1jfHxoJiZuLnZpZXdhYmxlOyhhfHx1JiZuLnByaW50YWJsZSkmJnIucHVzaChuLmRhdGEpO2lmKG4uaGFzVGV4dENvbnRlbnQmJmEpe2k/Pz10aGlzLiNzdChlKTtzLnB1c2gobi5leHRyYWN0VGV4dENvbnRlbnQoaSx0LFstMS8wLC0xLzAsMS8wLDEvMF0pLmNhdGNoKGZ1bmN0aW9uKGUpe3dhcm4oYGdldEFubm90YXRpb25zRGF0YSAtIGlnbm9yaW5nIHRleHRDb250ZW50IGR1cmluZyAiJHt0Lm5hbWV9IiB0YXNrOiAiJHtlfSIuYCl9KSl9ZWxzZSBuLm92ZXJsYXlzVGV4dENvbnRlbnQmJmEmJm0ucHVzaChuKX1pZihtLmxlbmd0aD4wKXtjb25zdCBuPW5ldyBJbnRlcnNlY3RvcihtKTtzLnB1c2godGhpcy5leHRyYWN0VGV4dENvbnRlbnQoe2hhbmRsZXI6ZSx0YXNrOnQsaW5jbHVkZU1hcmtlZENvbnRlbnQ6ITEsZGlzYWJsZU5vcm1hbGl6YXRpb246ITEsc2luazpudWxsLHZpZXdCb3g6dGhpcy52aWV3LGxhbmc6bnVsbCxpbnRlcnNlY3RvcjpufSkudGhlbigoKT0+e24uc2V0VGV4dCgpfSkpfWF3YWl0IFByb21pc2UuYWxsKHMpO3JldHVybiByfWdldCBhbm5vdGF0aW9ucygpe2NvbnN0IGU9dGhpcy4jaXQoIkFubm90cyIpO3JldHVybiBzaGFkb3codGhpcywiYW5ub3RhdGlvbnMiLEFycmF5LmlzQXJyYXkoZSk/ZTpbXSl9Z2V0IF9wYXJzZWRBbm5vdGF0aW9ucygpe2NvbnN0IGU9dGhpcy5wZGZNYW5hZ2VyLmVuc3VyZSh0aGlzLCJhbm5vdGF0aW9ucyIpLnRoZW4oYXN5bmMgZT0+e2lmKDA9PT1lLmxlbmd0aClyZXR1cm4gZTtjb25zdFt0LG5dPWF3YWl0IFByb21pc2UuYWxsKFt0aGlzLnBkZk1hbmFnZXIuZW5zdXJlRG9jKCJhbm5vdGF0aW9uR2xvYmFscyIpLHRoaXMucGRmTWFuYWdlci5lbnN1cmVEb2MoImZpZWxkT2JqZWN0cyIpXSk7aWYoIXQpcmV0dXJuW107Y29uc3QgYT1uPy5vcnBoYW5GaWVsZHMscj1bXTtmb3IoY29uc3QgbiBvZiBlKXIucHVzaChBbm5vdGF0aW9uRmFjdG9yeS5jcmVhdGUodGhpcy54cmVmLG4sdCx0aGlzLl9sb2NhbElkRmFjdG9yeSwhMSxhLG51bGwsdGhpcy5yZWYpLmNhdGNoKGZ1bmN0aW9uKGUpe3dhcm4oYF9wYXJzZWRBbm5vdGF0aW9uczogIiR7ZX0iLmApO3JldHVybiBudWxsfSkpO2NvbnN0IHM9W107bGV0IGksbztmb3IoY29uc3QgZSBvZiBhd2FpdCBQcm9taXNlLmFsbChyKSllJiYoZSBpbnN0YW5jZW9mIFdpZGdldEFubm90YXRpb24/KG98fD1bXSkucHVzaChlKTplIGluc3RhbmNlb2YgUG9wdXBBbm5vdGF0aW9uPyhpfHw9W10pLnB1c2goZSk6cy5wdXNoKGUpKTtvJiZzLnB1c2goLi4ubyk7aSYmcy5wdXNoKC4uLmkpO3JldHVybiBzfSk7dGhpcy4jYXQ9ITA7cmV0dXJuIHNoYWRvdyh0aGlzLCJfcGFyc2VkQW5ub3RhdGlvbnMiLGUpfWdldCBqc0FjdGlvbnMoKXtyZXR1cm4gc2hhZG93KHRoaXMsImpzQWN0aW9ucyIsY29sbGVjdEFjdGlvbnModGhpcy54cmVmLHRoaXMucGFnZURpY3QsZmUpKX1hc3luYyBjb2xsZWN0QW5ub3RhdGlvbnNCeVR5cGUoZSx0LG4sYSxyKXtjb25zdHtwYWdlSW5kZXg6c309dGhpcztpZih0aGlzLiNhdCl7Y29uc3QgZT1hd2FpdCB0aGlzLl9wYXJzZWRBbm5vdGF0aW9ucztmb3IoY29uc3R7ZGF0YTp0fW9mIGUpaWYoIW58fG4uaGFzKHQuYW5ub3RhdGlvblR5cGUpKXt0LnBhZ2VJbmRleD1zO2EucHVzaChQcm9taXNlLnJlc29sdmUodCkpfXJldHVybn1jb25zdCBpPWF3YWl0IHRoaXMucGRmTWFuYWdlci5lbnN1cmUodGhpcywiYW5ub3RhdGlvbnMiKTtmb3IoY29uc3QgbyBvZiBpKWEucHVzaChBbm5vdGF0aW9uRmFjdG9yeS5jcmVhdGUodGhpcy54cmVmLG8scix0aGlzLl9sb2NhbElkRmFjdG9yeSwhMSxudWxsLG4sdGhpcy5yZWYpLnRoZW4oYXN5bmMgbj0+e2lmKCFuKXJldHVybiBudWxsO24uZGF0YS5wYWdlSW5kZXg9cztpZihuLmhhc1RleHRDb250ZW50JiZuLnZpZXdhYmxlKXtjb25zdCBhPXRoaXMuI3N0KGUpO2F3YWl0IG4uZXh0cmFjdFRleHRDb250ZW50KGEsdCxbLTEvMCwtMS8wLDEvMCwxLzBdKX1yZXR1cm4gbi5kYXRhfSkuY2F0Y2goZnVuY3Rpb24oZSl7d2FybihgY29sbGVjdEFubm90YXRpb25zQnlUeXBlOiAiJHtlfSIuYCk7cmV0dXJuIG51bGx9KSl9fWNvbnN0IG1sPW5ldyBVaW50OEFycmF5KFszNyw4MCw2OCw3MCw0NV0pLHBsPW5ldyBVaW50OEFycmF5KFsxMTUsMTE2LDk3LDExNCwxMTYsMTIwLDExNCwxMDEsMTAyXSksZGw9bmV3IFVpbnQ4QXJyYXkoWzEwMSwxMTAsMTAwLDExMSw5OCwxMDZdKTtmdW5jdGlvbiBmaW5kKGUsdCxuPTEwMjQsYT0hMSl7Y29uc3Qgcj10Lmxlbmd0aCxzPWUucGVla0J5dGVzKG4pLGk9cy5sZW5ndGgtcjtpZihpPD0wKXJldHVybiExO2lmKGEpe2NvbnN0IG49ci0xO2xldCBhPXMubGVuZ3RoLTE7Zm9yKDthPj1uOyl7bGV0IGk9MDtmb3IoO2k8ciYmc1thLWldPT09dFtuLWldOylpKys7aWYoaT49cil7ZS5wb3MrPWEtbjtyZXR1cm4hMH1hLS19fWVsc2V7bGV0IG49MDtmb3IoO248PWk7KXtsZXQgYT0wO2Zvcig7YTxyJiZzW24rYV09PT10W2FdOylhKys7aWYoYT49cil7ZS5wb3MrPW47cmV0dXJuITB9bisrfX1yZXR1cm4hMX1jbGFzcyBQREZEb2N1bWVudHsjY3Q9bmV3IE1hcDsjaHQ9bnVsbDtjb25zdHJ1Y3RvcihlLHQpe2lmKHQubGVuZ3RoPD0wKXRocm93IG5ldyBJbnZhbGlkUERGRXhjZXB0aW9uKCJUaGUgUERGIGZpbGUgaXMgZW1wdHksIGkuZS4gaXRzIHNpemUgaXMgemVybyBieXRlcy4iKTt0aGlzLnBkZk1hbmFnZXI9ZTt0aGlzLnN0cmVhbT10O3RoaXMueHJlZj1uZXcgWFJlZih0LGUpO2NvbnN0IG49e2ZvbnQ6MH07dGhpcy5fZ2xvYmFsSWRGYWN0b3J5PWNsYXNze3N0YXRpYyBnZXREb2NJZCgpe3JldHVybmBnXyR7ZS5kb2NJZH1gfXN0YXRpYyBjcmVhdGVGb250SWQoKXtyZXR1cm4iZiIrICsrbi5mb250fXN0YXRpYyBjcmVhdGVPYmpJZCgpe3VucmVhY2hhYmxlKCJBYnN0cmFjdCBtZXRob2QgYGNyZWF0ZU9iaklkYCBjYWxsZWQuIil9c3RhdGljIGdldFBhZ2VPYmpJZCgpe3VucmVhY2hhYmxlKCJBYnN0cmFjdCBtZXRob2QgYGdldFBhZ2VPYmpJZGAgY2FsbGVkLiIpfX19cGFyc2UoZSl7dGhpcy54cmVmLnBhcnNlKGUpO3RoaXMuY2F0YWxvZz1uZXcgQ2F0YWxvZyh0aGlzLnBkZk1hbmFnZXIsdGhpcy54cmVmKX1nZXQgbGluZWFyaXphdGlvbigpe2xldCBlPW51bGw7dHJ5e2U9TGluZWFyaXphdGlvbi5jcmVhdGUodGhpcy5zdHJlYW0pfWNhdGNoKGUpe2lmKGUgaW5zdGFuY2VvZiBNaXNzaW5nRGF0YUV4Y2VwdGlvbil0aHJvdyBlO2luZm8oZSl9cmV0dXJuIHNoYWRvdyh0aGlzLCJsaW5lYXJpemF0aW9uIixlKX1nZXQgc3RhcnRYUmVmKCl7Y29uc3QgZT10aGlzLnN0cmVhbTtsZXQgdD0wO2lmKHRoaXMubGluZWFyaXphdGlvbil7ZS5yZXNldCgpO2lmKGZpbmQoZSxkbCkpe2Uuc2tpcCg2KTtsZXQgbj1lLnBlZWtCeXRlKCk7Zm9yKDtpc1doaXRlU3BhY2Uobik7KXtlLnBvcysrO249ZS5wZWVrQnl0ZSgpfXQ9ZS5wb3MtZS5zdGFydH19ZWxzZXtjb25zdCBuPTEwMjQsYT1wbC5sZW5ndGg7bGV0IHI9ITEscz1lLmVuZDtmb3IoOyFyJiZzPjA7KXtzLT1uLWE7czwwJiYocz0wKTtlLnBvcz1zO3I9ZmluZChlLHBsLG4sITApfWlmKHIpe2Uuc2tpcCg5KTtsZXQgbjtkb3tuPWUuZ2V0Qnl0ZSgpfXdoaWxlKGlzV2hpdGVTcGFjZShuKSk7bGV0IGE9IiI7Zm9yKDtuPj0zMiYmbjw9NTc7KXthKz1TdHJpbmcuZnJvbUNoYXJDb2RlKG4pO249ZS5nZXRCeXRlKCl9dD1wYXJzZUludChhLDEwKTtpc05hTih0KSYmKHQ9MCl9fXJldHVybiBzaGFkb3codGhpcywic3RhcnRYUmVmIix0KX1jaGVja0hlYWRlcigpe2NvbnN0IGU9dGhpcy5zdHJlYW07ZS5yZXNldCgpO2lmKCFmaW5kKGUsbWwpKXJldHVybjtlLm1vdmVTdGFydCgpO2Uuc2tpcChtbC5sZW5ndGgpO2xldCB0LG49IiI7Zm9yKDsodD1lLmdldEJ5dGUoKSk+MzImJm4ubGVuZ3RoPDc7KW4rPVN0cmluZy5mcm9tQ2hhckNvZGUodCk7Z24udGVzdChuKT90aGlzLiNodD1uOndhcm4oYEludmFsaWQgUERGIGhlYWRlciB2ZXJzaW9uOiAke259YCl9cGFyc2VTdGFydFhSZWYoKXt0aGlzLnhyZWYuc2V0U3RhcnRYUmVmKHRoaXMuc3RhcnRYUmVmKX1nZXQgbnVtUGFnZXMoKXtsZXQgZT0wO2U9dGhpcy5jYXRhbG9nLmhhc0FjdHVhbE51bVBhZ2VzP3RoaXMuY2F0YWxvZy5udW1QYWdlczp0aGlzLnhmYUZhY3Rvcnk/dGhpcy54ZmFGYWN0b3J5LmdldE51bVBhZ2VzKCk6dGhpcy5saW5lYXJpemF0aW9uP3RoaXMubGluZWFyaXphdGlvbi5udW1QYWdlczp0aGlzLmNhdGFsb2cubnVtUGFnZXM7cmV0dXJuIHNoYWRvdyh0aGlzLCJudW1QYWdlcyIsZSl9I3V0KGUsdD0wKXtyZXR1cm4hIUFycmF5LmlzQXJyYXkoZSkmJmUuZXZlcnkoZT0+e2lmKCEoKGU9dGhpcy54cmVmLmZldGNoSWZSZWYoZSkpaW5zdGFuY2VvZiBEaWN0KSlyZXR1cm4hMTtpZihlLmhhcygiS2lkcyIpKXtpZigrK3Q+MTApe3dhcm4oIiNoYXNPbmx5RG9jdW1lbnRTaWduYXR1cmVzOiBtYXhpbXVtIHJlY3Vyc2lvbiBkZXB0aCByZWFjaGVkIik7cmV0dXJuITF9cmV0dXJuIHRoaXMuI3V0KGUuZ2V0KCJLaWRzIiksdCl9Y29uc3Qgbj1pc05hbWUoZS5nZXQoIkZUIiksIlNpZyIpLGE9ZS5nZXQoIlJlY3QiKSxyPUFycmF5LmlzQXJyYXkoYSkmJmEuZXZlcnkoZT0+MD09PWUpO3JldHVybiBuJiZyfSl9Z2V0IF94ZmFTdHJlYW1zKCl7Y29uc3R7YWNyb0Zvcm06ZX09dGhpcy5jYXRhbG9nO2lmKCFlKXJldHVybiBudWxsO2NvbnN0IHQ9ZS5nZXQoIlhGQSIpLG49bmV3IE1hcChbInhkcDp4ZHAiLCJ0ZW1wbGF0ZSIsImRhdGFzZXRzIiwiY29uZmlnIiwiY29ubmVjdGlvblNldCIsImxvY2FsZVNldCIsInN0eWxlc2hlZXQiLCIveGRwOnhkcCJdLm1hcChlPT5bZSxudWxsXSkpO2lmKHQgaW5zdGFuY2VvZiBCYXNlU3RyZWFtJiYhdC5pc0VtcHR5KXtuLnNldCgieGRwOnhkcCIsdCk7cmV0dXJuIG59aWYoIUFycmF5LmlzQXJyYXkodCl8fDA9PT10Lmxlbmd0aClyZXR1cm4gbnVsbDtmb3IobGV0IGU9MCxhPXQubGVuZ3RoO2U8YTtlKz0yKXtsZXQgcjtyPTA9PT1lPyJ4ZHA6eGRwIjplPT09YS0yPyIveGRwOnhkcCI6dFtlXTtpZighbi5oYXMocikpY29udGludWU7Y29uc3Qgcz10aGlzLnhyZWYuZmV0Y2hJZlJlZih0W2UrMV0pO3MgaW5zdGFuY2VvZiBCYXNlU3RyZWFtJiYhcy5pc0VtcHR5JiZuLnNldChyLHMpfXJldHVybiBufWdldCB4ZmFEYXRhc2V0cygpe2NvbnN0IGU9dGhpcy5feGZhU3RyZWFtcztpZighZSlyZXR1cm4gc2hhZG93KHRoaXMsInhmYURhdGFzZXRzIixudWxsKTtmb3IoY29uc3QgdCBvZlsiZGF0YXNldHMiLCJ4ZHA6eGRwIl0pe2NvbnN0IG49ZS5nZXQodCk7aWYobil0cnl7Y29uc3QgZT1zdHJpbmdUb1VURjhTdHJpbmcobi5nZXRTdHJpbmcoKSk7cmV0dXJuIHNoYWRvdyh0aGlzLCJ4ZmFEYXRhc2V0cyIsbmV3IERhdGFzZXRSZWFkZXIoe1t0XTplfSkpfWNhdGNoe3dhcm4oIlhGQSAtIEludmFsaWQgdXRmLTggc3RyaW5nLiIpO2JyZWFrfX1yZXR1cm4gc2hhZG93KHRoaXMsInhmYURhdGFzZXRzIixudWxsKX1nZXQgeGZhRGF0YSgpe2NvbnN0IGU9dGhpcy5feGZhU3RyZWFtcztpZighZSlyZXR1cm4gbnVsbDtjb25zdCB0PU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGNvbnN0W24sYV1vZiBlKWlmKGEpdHJ5e3Rbbl09c3RyaW5nVG9VVEY4U3RyaW5nKGEuZ2V0U3RyaW5nKCkpfWNhdGNoe3dhcm4oIlhGQSAtIEludmFsaWQgdXRmLTggc3RyaW5nLiIpO3JldHVybiBudWxsfXJldHVybiB0fWdldCB4ZmFGYWN0b3J5KCl7bGV0IGU7dGhpcy5wZGZNYW5hZ2VyLmVuYWJsZVhmYSYmdGhpcy5jYXRhbG9nLm5lZWRzUmVuZGVyaW5nJiZ0aGlzLmZvcm1JbmZvLmhhc1hmYSYmIXRoaXMuZm9ybUluZm8uaGFzQWNyb0Zvcm0mJihlPXRoaXMueGZhRGF0YSk7cmV0dXJuIHNoYWRvdyh0aGlzLCJ4ZmFGYWN0b3J5IixlP25ldyBYRkFGYWN0b3J5KGUpOm51bGwpfWdldCBpc1B1cmVYZmEoKXtyZXR1cm4hIXRoaXMueGZhRmFjdG9yeSYmdGhpcy54ZmFGYWN0b3J5LmlzVmFsaWQoKX1nZXQgaHRtbEZvclhmYSgpe3JldHVybiB0aGlzLnhmYUZhY3Rvcnk/dGhpcy54ZmFGYWN0b3J5LmdldFBhZ2VzKCk6bnVsbH1hc3luYyNtdCgpe2NvbnN0IGU9YXdhaXQgdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZUNhdGFsb2coInhmYUltYWdlcyIpO2UmJnRoaXMueGZhRmFjdG9yeS5zZXRJbWFnZXMoZSl9YXN5bmMjcHQoZSx0KXtjb25zdCBuPWF3YWl0IHRoaXMucGRmTWFuYWdlci5lbnN1cmVDYXRhbG9nKCJhY3JvRm9ybSIpO2lmKCFuKXJldHVybjtjb25zdCBhPWF3YWl0IG4uZ2V0QXN5bmMoIkRSIik7aWYoIShhIGluc3RhbmNlb2YgRGljdCkpcmV0dXJuO2F3YWl0IE9iamVjdExvYWRlci5sb2FkKGEsWyJGb250Il0sdGhpcy54cmVmKTtjb25zdCByPWEuZ2V0KCJGb250Iik7aWYoIShyIGluc3RhbmNlb2YgRGljdCkpcmV0dXJuO2NvbnN0IHM9T2JqZWN0LmFzc2lnbihPYmplY3QuY3JlYXRlKG51bGwpLHRoaXMucGRmTWFuYWdlci5ldmFsdWF0b3JPcHRpb25zLHt1c2VTeXN0ZW1Gb250czohMX0pLHtidWlsdEluQ01hcENhY2hlOmksZm9udENhY2hlOm8sc3RhbmRhcmRGb250RGF0YUNhY2hlOmx9PXRoaXMuY2F0YWxvZyxmPW5ldyBQYXJ0aWFsRXZhbHVhdG9yKHt4cmVmOnRoaXMueHJlZixoYW5kbGVyOmUscGFnZUluZGV4Oi0xLGlkRmFjdG9yeTp0aGlzLl9nbG9iYWxJZEZhY3RvcnksZm9udENhY2hlOm8sYnVpbHRJbkNNYXBDYWNoZTppLHN0YW5kYXJkRm9udERhdGFDYWNoZTpsLG9wdGlvbnM6c30pLGM9bmV3IE9wZXJhdG9yTGlzdCxoPVtdLHU9e2dldCBmb250KCl7cmV0dXJuIGguYXQoLTEpfSxzZXQgZm9udChlKXtoLnB1c2goZSl9LGNsb25lKCl7cmV0dXJuIHRoaXN9fSxwYXJzZUZvbnQ9KGUsbixyKT0+Zi5oYW5kbGVTZXRGb250KGEsW05hbWUuZ2V0KGUpLDFdLG51bGwsYyx0LHUsbixyKS5jYXRjaChlPT57d2FybihgbG9hZFhmYUZvbnRzOiAiJHtlfSIuYCk7cmV0dXJuIG51bGx9KSxtPVtdO2Zvcihjb25zdFtlLHRdb2Ygcil7Y29uc3Qgbj10LmdldCgiRm9udERlc2NyaXB0b3IiKTtpZighKG4gaW5zdGFuY2VvZiBEaWN0KSljb250aW51ZTtsZXQgYT1uLmdldCgiRm9udEZhbWlseSIpO2E9YS5yZXBsYWNlQWxsKC9bIF0rKFxkKS9nLCIkMSIpO2NvbnN0IHI9e2ZvbnRGYW1pbHk6YSxmb250V2VpZ2h0Om4uZ2V0KCJGb250V2VpZ2h0IiksaXRhbGljQW5nbGU6LW4uZ2V0KCJJdGFsaWNBbmdsZSIpfTt2YWxpZGF0ZUNTU0ZvbnQocikmJm0ucHVzaChwYXJzZUZvbnQoZSxudWxsLHIpKX1hd2FpdCBQcm9taXNlLmFsbChtKTtjb25zdCBwPXRoaXMueGZhRmFjdG9yeS5zZXRGb250cyhoKTtpZighcClyZXR1cm47cy5pZ25vcmVFcnJvcnM9ITA7bS5sZW5ndGg9MDtoLmxlbmd0aD0wO2NvbnN0IGQ9bmV3IFNldDtmb3IoY29uc3QgZSBvZiBwKWdldFhmYUZvbnROYW1lKGAke2V9LVJlZ3VsYXJgKXx8ZC5hZGQoZSk7ZC5zaXplJiZwLnB1c2goIlBkZkpTLUZhbGxiYWNrIik7Zm9yKGNvbnN0IGUgb2YgcClpZighZC5oYXMoZSkpZm9yKGNvbnN0IHQgb2Zbe25hbWU6IlJlZ3VsYXIiLGZvbnRXZWlnaHQ6NDAwLGl0YWxpY0FuZ2xlOjB9LHtuYW1lOiJCb2xkIixmb250V2VpZ2h0OjcwMCxpdGFsaWNBbmdsZTowfSx7bmFtZToiSXRhbGljIixmb250V2VpZ2h0OjQwMCxpdGFsaWNBbmdsZToxMn0se25hbWU6IkJvbGRJdGFsaWMiLGZvbnRXZWlnaHQ6NzAwLGl0YWxpY0FuZ2xlOjEyfV0pe2NvbnN0IG49YCR7ZX0tJHt0Lm5hbWV9YDttLnB1c2gocGFyc2VGb250KG4sZ2V0WGZhRm9udERpY3Qobikse2ZvbnRGYW1pbHk6ZSxmb250V2VpZ2h0OnQuZm9udFdlaWdodCxpdGFsaWNBbmdsZTp0Lml0YWxpY0FuZ2xlfSkpfWF3YWl0IFByb21pc2UuYWxsKG0pO3RoaXMueGZhRmFjdG9yeS5hcHBlbmRGb250cyhoLGQpfWxvYWRYZmFSZXNvdXJjZXMoZSx0KXtyZXR1cm4gUHJvbWlzZS5hbGwoW3RoaXMuI3B0KGUsdCkuY2F0Y2goKCk9Pnt9KSx0aGlzLiNtdCgpXSl9c2VyaWFsaXplWGZhRGF0YShlKXtyZXR1cm4gdGhpcy54ZmFGYWN0b3J5P3RoaXMueGZhRmFjdG9yeS5zZXJpYWxpemVEYXRhKGUpOm51bGx9Z2V0IHZlcnNpb24oKXtyZXR1cm4gdGhpcy5jYXRhbG9nLnZlcnNpb258fHRoaXMuI2h0fWdldCBmb3JtSW5mbygpe2NvbnN0IGU9e2hhc0ZpZWxkczohMSxoYXNBY3JvRm9ybTohMSxoYXNYZmE6ITEsaGFzU2lnbmF0dXJlczohMX0se2Fjcm9Gb3JtOnR9PXRoaXMuY2F0YWxvZztpZighdClyZXR1cm4gc2hhZG93KHRoaXMsImZvcm1JbmZvIixlKTt0cnl7Y29uc3Qgbj10LmdldCgiRmllbGRzIiksYT1BcnJheS5pc0FycmF5KG4pJiZuLmxlbmd0aD4wO2UuaGFzRmllbGRzPWE7Y29uc3Qgcj10LmdldCgiWEZBIik7ZS5oYXNYZmE9QXJyYXkuaXNBcnJheShyKSYmci5sZW5ndGg+MHx8ciBpbnN0YW5jZW9mIEJhc2VTdHJlYW0mJiFyLmlzRW1wdHk7Y29uc3Qgcz0hISgxJnQuZ2V0KCJTaWdGbGFncyIpKSxpPXMmJnRoaXMuI3V0KG4pO2UuaGFzQWNyb0Zvcm09YSYmIWk7ZS5oYXNTaWduYXR1cmVzPXN9Y2F0Y2goZSl7aWYoZSBpbnN0YW5jZW9mIE1pc3NpbmdEYXRhRXhjZXB0aW9uKXRocm93IGU7d2FybihgQ2Fubm90IGZldGNoIGZvcm0gaW5mb3JtYXRpb246ICIke2V9Ii5gKX1yZXR1cm4gc2hhZG93KHRoaXMsImZvcm1JbmZvIixlKX1nZXQgZG9jdW1lbnRJbmZvKCl7Y29uc3R7Y2F0YWxvZzplLGZvcm1JbmZvOnQseHJlZjpufT10aGlzLGE9e1BERkZvcm1hdFZlcnNpb246dGhpcy52ZXJzaW9uLExhbmd1YWdlOmUubGFuZyxFbmNyeXB0RmlsdGVyTmFtZTpuLmVuY3J5cHQ/LmZpbHRlck5hbWU/P251bGwsSXNMaW5lYXJpemVkOiEhdGhpcy5saW5lYXJpemF0aW9uLElzQWNyb0Zvcm1QcmVzZW50OnQuaGFzQWNyb0Zvcm0sSXNYRkFQcmVzZW50OnQuaGFzWGZhLElzQ29sbGVjdGlvblByZXNlbnQ6ISFlLmNvbGxlY3Rpb24sSXNTaWduYXR1cmVzUHJlc2VudDp0Lmhhc1NpZ25hdHVyZXN9O2xldCByO3RyeXtyPW4udHJhaWxlci5nZXQoIkluZm8iKX1jYXRjaChlKXtpZihlIGluc3RhbmNlb2YgTWlzc2luZ0RhdGFFeGNlcHRpb24pdGhyb3cgZTtpbmZvKCJUaGUgZG9jdW1lbnQgaW5mb3JtYXRpb24gZGljdGlvbmFyeSBpcyBpbnZhbGlkLiIpfWlmKCEociBpbnN0YW5jZW9mIERpY3QpKXJldHVybiBzaGFkb3codGhpcywiZG9jdW1lbnRJbmZvIixhKTtmb3IoY29uc3RbZSx0XW9mIHIpe3N3aXRjaChlKXtjYXNlIlRpdGxlIjpjYXNlIkF1dGhvciI6Y2FzZSJTdWJqZWN0IjpjYXNlIktleXdvcmRzIjpjYXNlIkNyZWF0b3IiOmNhc2UiUHJvZHVjZXIiOmNhc2UiQ3JlYXRpb25EYXRlIjpjYXNlIk1vZERhdGUiOmlmKCJzdHJpbmciPT10eXBlb2YgdCl7YVtlXT1zdHJpbmdUb1BERlN0cmluZyh0KTtjb250aW51ZX1icmVhaztjYXNlIlRyYXBwZWQiOmlmKHQgaW5zdGFuY2VvZiBOYW1lKXthW2VdPXQ7Y29udGludWV9YnJlYWs7ZGVmYXVsdDpsZXQgbjtzd2l0Y2godHlwZW9mIHQpe2Nhc2Uic3RyaW5nIjpuPXN0cmluZ1RvUERGU3RyaW5nKHQpO2JyZWFrO2Nhc2UibnVtYmVyIjpjYXNlImJvb2xlYW4iOm49dDticmVhaztkZWZhdWx0OnQgaW5zdGFuY2VvZiBOYW1lJiYobj10KX1pZih2b2lkIDA9PT1uKXt3YXJuKGBCYWQgdmFsdWUsIGZvciBjdXN0b20ga2V5ICIke2V9IiwgaW4gSW5mbzogJHt0fS5gKTtjb250aW51ZX1hLkN1c3RvbT8/PU9iamVjdC5jcmVhdGUobnVsbCk7YS5DdXN0b21bZV09bjtjb250aW51ZX13YXJuKGBCYWQgdmFsdWUsIGZvciBrZXkgIiR7ZX0iLCBpbiBJbmZvOiAke3R9LmApfXJldHVybiBzaGFkb3codGhpcywiZG9jdW1lbnRJbmZvIixhKX1nZXQgZmluZ2VycHJpbnRzKCl7Y29uc3QgZT0iXDAiLnJlcGVhdCgxNik7ZnVuY3Rpb24gdmFsaWRhdGUodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0JiYxNj09PXQubGVuZ3RoJiZ0IT09ZX1jb25zdCB0PXRoaXMueHJlZi50cmFpbGVyLmdldCgiSUQiKTtsZXQgbixhO2lmKEFycmF5LmlzQXJyYXkodCkmJnZhbGlkYXRlKHRbMF0pKXtuPXN0cmluZ1RvQnl0ZXModFswXSk7dFsxXSE9PXRbMF0mJnZhbGlkYXRlKHRbMV0pJiYoYT1zdHJpbmdUb0J5dGVzKHRbMV0pKX1lbHNlIG49Y2FsY3VsYXRlTUQ1KHRoaXMuc3RyZWFtLmdldEJ5dGVSYW5nZSgwLDEwMjQpLDAsMTAyNCk7cmV0dXJuIHNoYWRvdyh0aGlzLCJmaW5nZXJwcmludHMiLFtuLnRvSGV4KCksYT8udG9IZXgoKT8/bnVsbF0pfWFzeW5jI2R0KGUpe2NvbnN0e2NhdGFsb2c6dCxsaW5lYXJpemF0aW9uOm4seHJlZjphfT10aGlzLHI9UmVmLmdldChuLm9iamVjdE51bWJlckZpcnN0LDApO3RyeXtjb25zdCBlPWF3YWl0IGEuZmV0Y2hBc3luYyhyKTtpZihlIGluc3RhbmNlb2YgRGljdCl7bGV0IG49ZS5nZXRSYXcoIlR5cGUiKTtuIGluc3RhbmNlb2YgUmVmJiYobj1hd2FpdCBhLmZldGNoQXN5bmMobikpO2lmKGlzTmFtZShuLCJQYWdlIil8fCFlLmhhcygiVHlwZSIpJiYhZS5oYXMoIktpZHMiKSYmZS5oYXMoIkNvbnRlbnRzIikpe3QucGFnZUtpZHNDb3VudENhY2hlLmhhcyhyKXx8dC5wYWdlS2lkc0NvdW50Q2FjaGUucHV0KHIsMSk7dC5wYWdlSW5kZXhDYWNoZS5oYXMocil8fHQucGFnZUluZGV4Q2FjaGUucHV0KHIsMCk7cmV0dXJuW2Uscl19fXRocm93IG5ldyBGb3JtYXRFcnJvcigiVGhlIExpbmVhcml6YXRpb24gZGljdGlvbmFyeSBkb2Vzbid0IHBvaW50IHRvIGEgdmFsaWQgUGFnZSBkaWN0aW9uYXJ5LiIpfWNhdGNoKG4pe3dhcm4oYF9nZXRMaW5lYXJpemF0aW9uUGFnZTogIiR7bi5tZXNzYWdlfSIuYCk7cmV0dXJuIHQuZ2V0UGFnZURpY3QoZSl9fWdldFBhZ2UoZSl7Y29uc3QgdD10aGlzLiNjdC5nZXQoZSk7aWYodClyZXR1cm4gdDtjb25zdHtjYXRhbG9nOm4sbGluZWFyaXphdGlvbjphLHhmYUZhY3Rvcnk6cn09dGhpcztsZXQgcztzPXI/UHJvbWlzZS5yZXNvbHZlKFtEaWN0LmVtcHR5LG51bGxdKTphPy5wYWdlRmlyc3Q9PT1lP3RoaXMuI2R0KGUpOm4uZ2V0UGFnZURpY3QoZSk7cz1zLnRoZW4oKFt0LGFdKT0+bmV3IFBhZ2Uoe3BkZk1hbmFnZXI6dGhpcy5wZGZNYW5hZ2VyLHhyZWY6dGhpcy54cmVmLHBhZ2VJbmRleDplLHBhZ2VEaWN0OnQscmVmOmEsZ2xvYmFsSWRGYWN0b3J5OnRoaXMuX2dsb2JhbElkRmFjdG9yeSxmb250Q2FjaGU6bi5mb250Q2FjaGUsYnVpbHRJbkNNYXBDYWNoZTpuLmJ1aWx0SW5DTWFwQ2FjaGUsc3RhbmRhcmRGb250RGF0YUNhY2hlOm4uc3RhbmRhcmRGb250RGF0YUNhY2hlLGdsb2JhbENvbG9yU3BhY2VDYWNoZTpuLmdsb2JhbENvbG9yU3BhY2VDYWNoZSxnbG9iYWxJbWFnZUNhY2hlOm4uZ2xvYmFsSW1hZ2VDYWNoZSxzeXN0ZW1Gb250Q2FjaGU6bi5zeXN0ZW1Gb250Q2FjaGUsbm9uQmxlbmRNb2Rlc1NldDpuLm5vbkJsZW5kTW9kZXNTZXQseGZhRmFjdG9yeTpyfSkpO3RoaXMuI2N0LnNldChlLHMpO3JldHVybiBzfWFzeW5jIGNoZWNrRmlyc3RQYWdlKGU9ITEpe2lmKCFlKXRyeXthd2FpdCB0aGlzLmdldFBhZ2UoMCl9Y2F0Y2goZSl7aWYoZSBpbnN0YW5jZW9mIFhSZWZFbnRyeUV4Y2VwdGlvbil7dGhpcy4jY3QuZGVsZXRlKDApO2F3YWl0IHRoaXMuY2xlYW51cCgpO3Rocm93IG5ldyBYUmVmUGFyc2VFeGNlcHRpb259fX1hc3luYyBjaGVja0xhc3RQYWdlKGU9ITEpe2NvbnN0e2NhdGFsb2c6dCxwZGZNYW5hZ2VyOm59PXRoaXM7dC5zZXRBY3R1YWxOdW1QYWdlcygpO2xldCBhO3RyeXthd2FpdCBQcm9taXNlLmFsbChbbi5lbnN1cmVEb2MoInhmYUZhY3RvcnkiKSxuLmVuc3VyZURvYygibGluZWFyaXphdGlvbiIpLG4uZW5zdXJlQ2F0YWxvZygibnVtUGFnZXMiKV0pO2lmKHRoaXMueGZhRmFjdG9yeSlyZXR1cm47YT10aGlzLmxpbmVhcml6YXRpb24/dGhpcy5saW5lYXJpemF0aW9uLm51bVBhZ2VzOnQubnVtUGFnZXM7aWYoIU51bWJlci5pc0ludGVnZXIoYSkpdGhyb3cgbmV3IEZvcm1hdEVycm9yKCJQYWdlIGNvdW50IGlzIG5vdCBhbiBpbnRlZ2VyLiIpO2lmKGE8PTEpcmV0dXJuO2F3YWl0IHRoaXMuZ2V0UGFnZShhLTEpfWNhdGNoKHIpe3RoaXMuI2N0LmRlbGV0ZShhLTEpO2F3YWl0IHRoaXMuY2xlYW51cCgpO2lmKHIgaW5zdGFuY2VvZiBYUmVmRW50cnlFeGNlcHRpb24mJiFlKXRocm93IG5ldyBYUmVmUGFyc2VFeGNlcHRpb247d2FybihgY2hlY2tMYXN0UGFnZSAtIGludmFsaWQgL1BhZ2VzIHRyZWUgL0NvdW50OiAke2F9LmApO2xldCBzO3RyeXtzPWF3YWl0IHQuZ2V0QWxsUGFnZURpY3RzKGUpfWNhdGNoKG4pe2lmKG4gaW5zdGFuY2VvZiBYUmVmRW50cnlFeGNlcHRpb24mJiFlKXRocm93IG5ldyBYUmVmUGFyc2VFeGNlcHRpb247dC5zZXRBY3R1YWxOdW1QYWdlcygxKTtyZXR1cm59Zm9yKGNvbnN0W2UsW2Escl1db2Ygcyl7bGV0IHM7aWYoYSBpbnN0YW5jZW9mIEVycm9yKXtzPVByb21pc2UucmVqZWN0KGEpO3MuY2F0Y2goKCk9Pnt9KX1lbHNlIHM9UHJvbWlzZS5yZXNvbHZlKG5ldyBQYWdlKHtwZGZNYW5hZ2VyOm4seHJlZjp0aGlzLnhyZWYscGFnZUluZGV4OmUscGFnZURpY3Q6YSxyZWY6cixnbG9iYWxJZEZhY3Rvcnk6dGhpcy5fZ2xvYmFsSWRGYWN0b3J5LGZvbnRDYWNoZTp0LmZvbnRDYWNoZSxidWlsdEluQ01hcENhY2hlOnQuYnVpbHRJbkNNYXBDYWNoZSxzdGFuZGFyZEZvbnREYXRhQ2FjaGU6dC5zdGFuZGFyZEZvbnREYXRhQ2FjaGUsZ2xvYmFsQ29sb3JTcGFjZUNhY2hlOnRoaXMuZ2xvYmFsQ29sb3JTcGFjZUNhY2hlLGdsb2JhbEltYWdlQ2FjaGU6dC5nbG9iYWxJbWFnZUNhY2hlLHN5c3RlbUZvbnRDYWNoZTp0LnN5c3RlbUZvbnRDYWNoZSxub25CbGVuZE1vZGVzU2V0OnQubm9uQmxlbmRNb2Rlc1NldCx4ZmFGYWN0b3J5Om51bGx9KSk7dGhpcy4jY3Quc2V0KGUscyl9dC5zZXRBY3R1YWxOdW1QYWdlcyhzLnNpemUpfX1hc3luYyBmb250RmFsbGJhY2soZSx0KXtjb25zdHtjYXRhbG9nOm4scGRmTWFuYWdlcjphfT10aGlzO2Zvcihjb25zdCByIG9mIGF3YWl0IFByb21pc2UuYWxsKG4uZm9udENhY2hlKSlpZihyLmxvYWRlZE5hbWU9PT1lKXtyLmZhbGxiYWNrKHQsYS5ldmFsdWF0b3JPcHRpb25zKTtyZXR1cm59fWFzeW5jIGNsZWFudXAoZT0hMSl7cmV0dXJuIHRoaXMuY2F0YWxvZz90aGlzLmNhdGFsb2cuY2xlYW51cChlKTpjbGVhckdsb2JhbENhY2hlcygpfWFzeW5jI2d0KGUsdCxuLGEscixzLGkpe2NvbnN0e3hyZWY6b309dGhpcztpZighKG4gaW5zdGFuY2VvZiBSZWYpfHxzLmhhcyhuKSlyZXR1cm47cy5wdXQobik7Y29uc3QgbD1hd2FpdCBvLmZldGNoQXN5bmMobik7aWYoIShsIGluc3RhbmNlb2YgRGljdCkpcmV0dXJuO2xldCBmPWF3YWl0IGwuZ2V0QXN5bmMoIlN1YnR5cGUiKTtmPWYgaW5zdGFuY2VvZiBOYW1lP2YubmFtZTpudWxsO2lmKCJMaW5rIj09PWYpcmV0dXJuO2lmKGwuaGFzKCJUIikpe2NvbnN0IHQ9c3RyaW5nVG9QREZTdHJpbmcoYXdhaXQgbC5nZXRBc3luYygiVCIpKTtlPSIiPT09ZT90OmAke2V9LiR7dH1gfWVsc2V7bGV0IG49bDtmb3IoOzspe249bi5nZXRSYXcoIlBhcmVudCIpfHx0O2lmKG4gaW5zdGFuY2VvZiBSZWYpe2lmKHMuaGFzKG4pKWJyZWFrO249YXdhaXQgby5mZXRjaEFzeW5jKG4pfWlmKCEobiBpbnN0YW5jZW9mIERpY3QpKWJyZWFrO2lmKG4uaGFzKCJUIikpe2NvbnN0IHQ9c3RyaW5nVG9QREZTdHJpbmcoYXdhaXQgbi5nZXRBc3luYygiVCIpKTtlPSIiPT09ZT90OmAke2V9LiR7dH1gO2JyZWFrfX19dCYmIWwuaGFzKCJQYXJlbnQiKSYmaXNOYW1lKGwuZ2V0KCJTdWJ0eXBlIiksIldpZGdldCIpJiZpLnB1dChuLHQpO2EuZ2V0T3JJbnNlcnRDb21wdXRlZChlLG1ha2VBcnIpLnB1c2goQW5ub3RhdGlvbkZhY3RvcnkuY3JlYXRlKG8sbixyLG51bGwsITAsaSxudWxsLG51bGwpLnRoZW4oZT0+ZT8uZ2V0RmllbGRPYmplY3QoKSkuY2F0Y2goZnVuY3Rpb24oZSl7d2FybihgI2NvbGxlY3RGaWVsZE9iamVjdHM6ICIke2V9Ii5gKTtyZXR1cm4gbnVsbH0pKTtpZighbC5oYXMoIktpZHMiKSlyZXR1cm47Y29uc3QgYz1hd2FpdCBsLmdldEFzeW5jKCJLaWRzIik7aWYoQXJyYXkuaXNBcnJheShjKSlmb3IoY29uc3QgdCBvZiBjKWF3YWl0IHRoaXMuI2d0KGUsbix0LGEscixzLGkpfWdldCBmaWVsZE9iamVjdHMoKXtyZXR1cm4gc2hhZG93KHRoaXMsImZpZWxkT2JqZWN0cyIsdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZURvYygiZm9ybUluZm8iKS50aGVuKGFzeW5jIGU9PntpZighZS5oYXNGaWVsZHMpcmV0dXJuIG51bGw7Y29uc3QgdD1hd2FpdCB0aGlzLmFubm90YXRpb25HbG9iYWxzO2lmKCF0KXJldHVybiBudWxsO2NvbnN0e2Fjcm9Gb3JtOm59PXQsYT1uZXcgUmVmU2V0LHI9T2JqZWN0LmNyZWF0ZShudWxsKSxzPW5ldyBNYXAsaT1uZXcgUmVmU2V0Q2FjaGU7Zm9yKGNvbnN0IGUgb2Ygbi5nZXQoIkZpZWxkcyIpKWF3YWl0IHRoaXMuI2d0KCIiLG51bGwsZSxzLHQsYSxpKTtjb25zdCBvPVtdO2Zvcihjb25zdFtlLHRdb2YgcylvLnB1c2goUHJvbWlzZS5hbGwodCkudGhlbih0PT57KHQ9dC5maWx0ZXIoZT0+ISFlKSkubGVuZ3RoPjAmJihyW2VdPXQpfSkpO2F3YWl0IFByb21pc2UuYWxsKG8pO3JldHVybnthbGxGaWVsZHM6b2JqZWN0U2l6ZShyKT4wP3I6bnVsbCxvcnBoYW5GaWVsZHM6aX19KSl9Z2V0IGhhc0pTQWN0aW9ucygpe3JldHVybiBzaGFkb3codGhpcywiaGFzSlNBY3Rpb25zIix0aGlzLnBkZk1hbmFnZXIuZW5zdXJlRG9jKCJfcGFyc2VIYXNKU0FjdGlvbnMiKSl9YXN5bmMgX3BhcnNlSGFzSlNBY3Rpb25zKCl7Y29uc3RbZSx0XT1hd2FpdCBQcm9taXNlLmFsbChbdGhpcy5wZGZNYW5hZ2VyLmVuc3VyZUNhdGFsb2coImpzQWN0aW9ucyIpLHRoaXMucGRmTWFuYWdlci5lbnN1cmVEb2MoImZpZWxkT2JqZWN0cyIpXSk7cmV0dXJuISFlfHwhIXQ/LmFsbEZpZWxkcyYmT2JqZWN0LnZhbHVlcyh0LmFsbEZpZWxkcykuc29tZShlPT5lLnNvbWUoZT0+bnVsbCE9PWUuYWN0aW9ucykpfWdldCBjYWxjdWxhdGlvbk9yZGVySWRzKCl7Y29uc3QgZT10aGlzLmNhdGFsb2cuYWNyb0Zvcm0/LmdldCgiQ08iKTtpZighQXJyYXkuaXNBcnJheShlKXx8MD09PWUubGVuZ3RoKXJldHVybiBzaGFkb3codGhpcywiY2FsY3VsYXRpb25PcmRlcklkcyIsbnVsbCk7Y29uc3QgdD1bXTtmb3IoY29uc3QgbiBvZiBlKW4gaW5zdGFuY2VvZiBSZWYmJnQucHVzaChuLnRvU3RyaW5nKCkpO3JldHVybiBzaGFkb3codGhpcywiY2FsY3VsYXRpb25PcmRlcklkcyIsdC5sZW5ndGg/dDpudWxsKX1nZXQgYW5ub3RhdGlvbkdsb2JhbHMoKXtyZXR1cm4gc2hhZG93KHRoaXMsImFubm90YXRpb25HbG9iYWxzIixBbm5vdGF0aW9uRmFjdG9yeS5jcmVhdGVHbG9iYWxzKHRoaXMucGRmTWFuYWdlcikpfX1jbGFzcyBCYXNlUGRmTWFuYWdlcntjb25zdHJ1Y3Rvcih7ZG9jQmFzZVVybDplLGRvY0lkOnQsZW5hYmxlWGZhOm4sZXZhbHVhdG9yT3B0aW9uczphLGhhbmRsZXI6cixwYXNzd29yZDpzfSl7dGhpcy5fZG9jQmFzZVVybD1mdW5jdGlvbiBwYXJzZURvY0Jhc2VVcmwoZSl7aWYoZSl7Y29uc3QgdD1jcmVhdGVWYWxpZEFic29sdXRlVXJsKGUpO2lmKHQpcmV0dXJuIHQuaHJlZjt3YXJuKGBJbnZhbGlkIGFic29sdXRlIGRvY0Jhc2VVcmw6ICIke2V9Ii5gKX1yZXR1cm4gbnVsbH0oZSk7dGhpcy5fZG9jSWQ9dDt0aGlzLl9wYXNzd29yZD1zO3RoaXMuZW5hYmxlWGZhPW47YS5pc09mZnNjcmVlbkNhbnZhc1N1cHBvcnRlZCYmPUZlYXR1cmVUZXN0LmlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkO2EuaXNJbWFnZURlY29kZXJTdXBwb3J0ZWQmJj1GZWF0dXJlVGVzdC5pc0ltYWdlRGVjb2RlclN1cHBvcnRlZDt0aGlzLmV2YWx1YXRvck9wdGlvbnM9T2JqZWN0LmZyZWV6ZShhKTtJbWFnZVJlc2l6ZXIuc2V0T3B0aW9ucyhhKTtKcGVnU3RyZWFtLnNldE9wdGlvbnMoYSk7T3BlcmF0b3JMaXN0LnNldE9wdGlvbnMoYSk7Y29uc3QgaT17Li4uYSxoYW5kbGVyOnJ9O0pweEltYWdlLnNldE9wdGlvbnMoaSk7SWNjQ29sb3JTcGFjZS5zZXRPcHRpb25zKGkpO0NteWtJQ0NCYXNlZENTLnNldE9wdGlvbnMoaSk7SkJpZzJDQ0lUVEZheFdhc21JbWFnZS5zZXRPcHRpb25zKGkpfWdldCBkb2NJZCgpe3JldHVybiB0aGlzLl9kb2NJZH1nZXQgcGFzc3dvcmQoKXtyZXR1cm4gdGhpcy5fcGFzc3dvcmR9Z2V0IGRvY0Jhc2VVcmwoKXtyZXR1cm4gdGhpcy5fZG9jQmFzZVVybH1lbnN1cmVEb2MoZSx0KXtyZXR1cm4gdGhpcy5lbnN1cmUodGhpcy5wZGZEb2N1bWVudCxlLHQpfWVuc3VyZVhSZWYoZSx0KXtyZXR1cm4gdGhpcy5lbnN1cmUodGhpcy5wZGZEb2N1bWVudC54cmVmLGUsdCl9ZW5zdXJlQ2F0YWxvZyhlLHQpe3JldHVybiB0aGlzLmVuc3VyZSh0aGlzLnBkZkRvY3VtZW50LmNhdGFsb2csZSx0KX1nZXRQYWdlKGUpe3JldHVybiB0aGlzLnBkZkRvY3VtZW50LmdldFBhZ2UoZSl9Zm9udEZhbGxiYWNrKGUsdCl7cmV0dXJuIHRoaXMucGRmRG9jdW1lbnQuZm9udEZhbGxiYWNrKGUsdCl9Y2xlYW51cChlPSExKXtyZXR1cm4gdGhpcy5wZGZEb2N1bWVudC5jbGVhbnVwKGUpfWFzeW5jIGVuc3VyZShlLHQsbil7dW5yZWFjaGFibGUoIkFic3RyYWN0IG1ldGhvZCBgZW5zdXJlYCBjYWxsZWQiKX1yZXF1ZXN0UmFuZ2UoZSx0KXt1bnJlYWNoYWJsZSgiQWJzdHJhY3QgbWV0aG9kIGByZXF1ZXN0UmFuZ2VgIGNhbGxlZCIpfXJlcXVlc3RMb2FkZWRTdHJlYW0oZT0hMSl7dW5yZWFjaGFibGUoIkFic3RyYWN0IG1ldGhvZCBgcmVxdWVzdExvYWRlZFN0cmVhbWAgY2FsbGVkIil9c2VuZFByb2dyZXNzaXZlRGF0YShlKXt1bnJlYWNoYWJsZSgiQWJzdHJhY3QgbWV0aG9kIGBzZW5kUHJvZ3Jlc3NpdmVEYXRhYCBjYWxsZWQiKX11cGRhdGVQYXNzd29yZChlKXt0aGlzLl9wYXNzd29yZD1lfXRlcm1pbmF0ZShlKXt1bnJlYWNoYWJsZSgiQWJzdHJhY3QgbWV0aG9kIGB0ZXJtaW5hdGVgIGNhbGxlZCIpfX1jbGFzcyBMb2NhbFBkZk1hbmFnZXIgZXh0ZW5kcyBCYXNlUGRmTWFuYWdlcntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTtjb25zdCB0PW5ldyBTdHJlYW0oZS5zb3VyY2UpO3RoaXMucGRmRG9jdW1lbnQ9bmV3IFBERkRvY3VtZW50KHRoaXMsdCk7dGhpcy5fbG9hZGVkU3RyZWFtUHJvbWlzZT1Qcm9taXNlLnJlc29sdmUodCl9YXN5bmMgZW5zdXJlKGUsdCxuKXtjb25zdCBhPWVbdF07cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGE/YS5hcHBseShlLG4pOmF9cmVxdWVzdFJhbmdlKGUsdCl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpfXJlcXVlc3RMb2FkZWRTdHJlYW0oZT0hMSl7cmV0dXJuIHRoaXMuX2xvYWRlZFN0cmVhbVByb21pc2V9dGVybWluYXRlKGUpe319Y2xhc3MgTmV0d29ya1BkZk1hbmFnZXIgZXh0ZW5kcyBCYXNlUGRmTWFuYWdlcntjb25zdHJ1Y3RvcihlKXtzdXBlcihlKTt0aGlzLnN0cmVhbU1hbmFnZXI9bmV3IENodW5rZWRTdHJlYW1NYW5hZ2VyKGUuc291cmNlLHttc2dIYW5kbGVyOmUuaGFuZGxlcixsZW5ndGg6ZS5sZW5ndGgsZGlzYWJsZUF1dG9GZXRjaDplLmRpc2FibGVBdXRvRmV0Y2gscmFuZ2VDaHVua1NpemU6ZS5yYW5nZUNodW5rU2l6ZX0pO3RoaXMucGRmRG9jdW1lbnQ9bmV3IFBERkRvY3VtZW50KHRoaXMsdGhpcy5zdHJlYW1NYW5hZ2VyLmdldFN0cmVhbSgpKX1hc3luYyBlbnN1cmUoZSx0LG4pe3RyeXtjb25zdCBhPWVbdF07cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGE/YS5hcHBseShlLG4pOmF9Y2F0Y2goYSl7aWYoIShhIGluc3RhbmNlb2YgTWlzc2luZ0RhdGFFeGNlcHRpb24pKXRocm93IGE7YXdhaXQgdGhpcy5yZXF1ZXN0UmFuZ2UoYS5iZWdpbixhLmVuZCk7cmV0dXJuIHRoaXMuZW5zdXJlKGUsdCxuKX19cmVxdWVzdFJhbmdlKGUsdCl7cmV0dXJuIHRoaXMuc3RyZWFtTWFuYWdlci5yZXF1ZXN0UmFuZ2UoZSx0KX1yZXF1ZXN0TG9hZGVkU3RyZWFtKGU9ITEpe3JldHVybiB0aGlzLnN0cmVhbU1hbmFnZXIucmVxdWVzdEFsbENodW5rcyhlKX1zZW5kUHJvZ3Jlc3NpdmVEYXRhKGUpe3RoaXMuc3RyZWFtTWFuYWdlci5vblJlY2VpdmVEYXRhKHtjaHVuazplfSl9dGVybWluYXRlKGUpe3RoaXMuc3RyZWFtTWFuYWdlci5hYm9ydChlKX19X193ZWJwYWNrX3JlcXVpcmVfXygxNjg5KTtjb25zdCBnbD0xLGJsPTIsd2w9MSxqbD0yLGtsPTMseWw9NCxxbD01LHZsPTYsU2w9Nyx4bD04O2Z1bmN0aW9uIG9uRm4oKXt9ZnVuY3Rpb24gd3JhcFJlYXNvbihlKXtpZihlIGluc3RhbmNlb2YgQWJvcnRFeGNlcHRpb258fGUgaW5zdGFuY2VvZiBJbnZhbGlkUERGRXhjZXB0aW9ufHxlIGluc3RhbmNlb2YgUGFzc3dvcmRFeGNlcHRpb258fGUgaW5zdGFuY2VvZiBSZXNwb25zZUV4Y2VwdGlvbnx8ZSBpbnN0YW5jZW9mIFVua25vd25FcnJvckV4Y2VwdGlvbilyZXR1cm4gZTtlIGluc3RhbmNlb2YgRXJyb3J8fCJvYmplY3QiPT10eXBlb2YgZSYmbnVsbCE9PWV8fHVucmVhY2hhYmxlKCd3cmFwUmVhc29uOiBFeHBlY3RlZCAicmVhc29uIiB0byBiZSBhIChwb3NzaWJseSBjbG9uZWQpIEVycm9yLicpO3N3aXRjaChlLm5hbWUpe2Nhc2UiQWJvcnRFeGNlcHRpb24iOnJldHVybiBuZXcgQWJvcnRFeGNlcHRpb24oZS5tZXNzYWdlKTtjYXNlIkludmFsaWRQREZFeGNlcHRpb24iOnJldHVybiBuZXcgSW52YWxpZFBERkV4Y2VwdGlvbihlLm1lc3NhZ2UpO2Nhc2UiUGFzc3dvcmRFeGNlcHRpb24iOnJldHVybiBuZXcgUGFzc3dvcmRFeGNlcHRpb24oZS5tZXNzYWdlLGUuY29kZSk7Y2FzZSJSZXNwb25zZUV4Y2VwdGlvbiI6cmV0dXJuIG5ldyBSZXNwb25zZUV4Y2VwdGlvbihlLm1lc3NhZ2UsZS5zdGF0dXMsZS5taXNzaW5nKTtjYXNlIlVua25vd25FcnJvckV4Y2VwdGlvbiI6cmV0dXJuIG5ldyBVbmtub3duRXJyb3JFeGNlcHRpb24oZS5tZXNzYWdlLGUuZGV0YWlscyl9cmV0dXJuIG5ldyBVbmtub3duRXJyb3JFeGNlcHRpb24oZS5tZXNzYWdlLGUudG9TdHJpbmcoKSl9Y2xhc3MgTWVzc2FnZUhhbmRsZXJ7I2J0PW5ldyBBYm9ydENvbnRyb2xsZXI7Y29uc3RydWN0b3IoZSx0LG4pe3RoaXMuc291cmNlTmFtZT1lO3RoaXMudGFyZ2V0TmFtZT10O3RoaXMuY29tT2JqPW47dGhpcy5jYWxsYmFja0lkPTE7dGhpcy5zdHJlYW1JZD0xO3RoaXMuc3RyZWFtU2lua3M9T2JqZWN0LmNyZWF0ZShudWxsKTt0aGlzLnN0cmVhbUNvbnRyb2xsZXJzPU9iamVjdC5jcmVhdGUobnVsbCk7dGhpcy5jYWxsYmFja0NhcGFiaWxpdGllcz1PYmplY3QuY3JlYXRlKG51bGwpO3RoaXMuYWN0aW9uSGFuZGxlcj1PYmplY3QuY3JlYXRlKG51bGwpO24uYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsdGhpcy4jd3QuYmluZCh0aGlzKSx7c2lnbmFsOnRoaXMuI2J0LnNpZ25hbH0pfSN3dCh7ZGF0YTplfSl7aWYoZS50YXJnZXROYW1lIT09dGhpcy5zb3VyY2VOYW1lKXJldHVybjtpZihlLnN0cmVhbSl7dGhpcy4janQoZSk7cmV0dXJufWlmKGUuY2FsbGJhY2spe2NvbnN0IHQ9ZS5jYWxsYmFja0lkLG49dGhpcy5jYWxsYmFja0NhcGFiaWxpdGllc1t0XTtpZighbil0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCByZXNvbHZlIGNhbGxiYWNrICR7dH1gKTtkZWxldGUgdGhpcy5jYWxsYmFja0NhcGFiaWxpdGllc1t0XTtpZihlLmNhbGxiYWNrPT09Z2wpbi5yZXNvbHZlKGUuZGF0YSk7ZWxzZXtpZihlLmNhbGxiYWNrIT09YmwpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIGNhbGxiYWNrIGNhc2UiKTtuLnJlamVjdCh3cmFwUmVhc29uKGUucmVhc29uKSl9cmV0dXJufWNvbnN0IHQ9dGhpcy5hY3Rpb25IYW5kbGVyW2UuYWN0aW9uXTtpZighdCl0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gYWN0aW9uIGZyb20gd29ya2VyOiAke2UuYWN0aW9ufWApO2lmKGUuY2FsbGJhY2tJZCl7Y29uc3Qgbj10aGlzLnNvdXJjZU5hbWUsYT1lLnNvdXJjZU5hbWUscj10aGlzLmNvbU9iajtQcm9taXNlLnRyeSh0LGUuZGF0YSkudGhlbihmdW5jdGlvbih0KXtyLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOm4sdGFyZ2V0TmFtZTphLGNhbGxiYWNrOmdsLGNhbGxiYWNrSWQ6ZS5jYWxsYmFja0lkLGRhdGE6dH0pfSxmdW5jdGlvbih0KXtyLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOm4sdGFyZ2V0TmFtZTphLGNhbGxiYWNrOmJsLGNhbGxiYWNrSWQ6ZS5jYWxsYmFja0lkLHJlYXNvbjp3cmFwUmVhc29uKHQpfSl9KTtyZXR1cm59ZS5zdHJlYW1JZD90aGlzLiNrdChlKTp0KGUuZGF0YSl9b24oZSx0KXtjb25zdCBuPXRoaXMuYWN0aW9uSGFuZGxlcjtpZihuW2VdKXRocm93IG5ldyBFcnJvcihgVGhlcmUgaXMgYWxyZWFkeSBhbiBhY3Rpb25OYW1lIGNhbGxlZCAiJHtlfSJgKTtuW2VdPXR9c2VuZChlLHQsbil7dGhpcy5jb21PYmoucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6dGhpcy5zb3VyY2VOYW1lLHRhcmdldE5hbWU6dGhpcy50YXJnZXROYW1lLGFjdGlvbjplLGRhdGE6dH0sbil9c2VuZFdpdGhQcm9taXNlKGUsdCxuKXtjb25zdCBhPXRoaXMuY2FsbGJhY2tJZCsrLHI9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCk7dGhpcy5jYWxsYmFja0NhcGFiaWxpdGllc1thXT1yO3RyeXt0aGlzLmNvbU9iai5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTp0aGlzLnNvdXJjZU5hbWUsdGFyZ2V0TmFtZTp0aGlzLnRhcmdldE5hbWUsYWN0aW9uOmUsY2FsbGJhY2tJZDphLGRhdGE6dH0sbil9Y2F0Y2goZSl7ci5yZWplY3QoZSl9cmV0dXJuIHIucHJvbWlzZX1zZW5kV2l0aFN0cmVhbShlLHQsbixhKXtjb25zdCByPXRoaXMuc3RyZWFtSWQrKyxzPXRoaXMuc291cmNlTmFtZSxpPXRoaXMudGFyZ2V0TmFtZSxvPXRoaXMuY29tT2JqO3JldHVybiBuZXcgUmVhZGFibGVTdHJlYW0oe3N0YXJ0Om49Pntjb25zdCBsPVByb21pc2Uud2l0aFJlc29sdmVycygpO3RoaXMuc3RyZWFtQ29udHJvbGxlcnNbcl09e2NvbnRyb2xsZXI6bixzdGFydENhbGw6bCxwdWxsQ2FsbDpudWxsLGNhbmNlbENhbGw6bnVsbCxpc0Nsb3NlZDohMX07by5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTpzLHRhcmdldE5hbWU6aSxhY3Rpb246ZSxzdHJlYW1JZDpyLGRhdGE6dCxkZXNpcmVkU2l6ZTpuLmRlc2lyZWRTaXplfSxhKTtyZXR1cm4gbC5wcm9taXNlfSxwdWxsOmU9Pntjb25zdCB0PVByb21pc2Uud2l0aFJlc29sdmVycygpO3RoaXMuc3RyZWFtQ29udHJvbGxlcnNbcl0ucHVsbENhbGw9dDtvLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOnMsdGFyZ2V0TmFtZTppLHN0cmVhbTp2bCxzdHJlYW1JZDpyLGRlc2lyZWRTaXplOmUuZGVzaXJlZFNpemV9KTtyZXR1cm4gdC5wcm9taXNlfSxjYW5jZWw6ZT0+e2Fzc2VydChlIGluc3RhbmNlb2YgRXJyb3IsImNhbmNlbCBtdXN0IGhhdmUgYSB2YWxpZCByZWFzb24iKTtjb25zdCB0PVByb21pc2Uud2l0aFJlc29sdmVycygpO3RoaXMuc3RyZWFtQ29udHJvbGxlcnNbcl0uY2FuY2VsQ2FsbD10O3RoaXMuc3RyZWFtQ29udHJvbGxlcnNbcl0uaXNDbG9zZWQ9ITA7by5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTpzLHRhcmdldE5hbWU6aSxzdHJlYW06d2wsc3RyZWFtSWQ6cixyZWFzb246d3JhcFJlYXNvbihlKX0pO3JldHVybiB0LnByb21pc2V9fSxuKX0ja3QoZSl7Y29uc3QgdD1lLnN0cmVhbUlkLG49dGhpcy5zb3VyY2VOYW1lLGE9ZS5zb3VyY2VOYW1lLHI9dGhpcy5jb21PYmoscz10aGlzLGk9dGhpcy5hY3Rpb25IYW5kbGVyW2UuYWN0aW9uXSxvPXtlbnF1ZXVlKGUscz0xLGkpe2lmKHRoaXMuaXNDYW5jZWxsZWQpcmV0dXJuO2NvbnN0IG89dGhpcy5kZXNpcmVkU2l6ZTt0aGlzLmRlc2lyZWRTaXplLT1zO2lmKG8+MCYmdGhpcy5kZXNpcmVkU2l6ZTw9MCl7dGhpcy5zaW5rQ2FwYWJpbGl0eT1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKTt0aGlzLnJlYWR5PXRoaXMuc2lua0NhcGFiaWxpdHkucHJvbWlzZX1yLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOm4sdGFyZ2V0TmFtZTphLHN0cmVhbTp5bCxzdHJlYW1JZDp0LGNodW5rOmV9LGkpfSxjbG9zZSgpe2lmKCF0aGlzLmlzQ2FuY2VsbGVkKXt0aGlzLmlzQ2FuY2VsbGVkPSEwO3IucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6bix0YXJnZXROYW1lOmEsc3RyZWFtOmtsLHN0cmVhbUlkOnR9KTtkZWxldGUgcy5zdHJlYW1TaW5rc1t0XX19LGVycm9yKGUpe2Fzc2VydChlIGluc3RhbmNlb2YgRXJyb3IsImVycm9yIG11c3QgaGF2ZSBhIHZhbGlkIHJlYXNvbiIpO2lmKCF0aGlzLmlzQ2FuY2VsbGVkKXt0aGlzLmlzQ2FuY2VsbGVkPSEwO3IucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6bix0YXJnZXROYW1lOmEsc3RyZWFtOnFsLHN0cmVhbUlkOnQscmVhc29uOndyYXBSZWFzb24oZSl9KX19LHNpbmtDYXBhYmlsaXR5OlByb21pc2Uud2l0aFJlc29sdmVycygpLG9uUHVsbDpudWxsLG9uQ2FuY2VsOm51bGwsaXNDYW5jZWxsZWQ6ITEsZGVzaXJlZFNpemU6ZS5kZXNpcmVkU2l6ZSxyZWFkeTpudWxsfTtvLnNpbmtDYXBhYmlsaXR5LnJlc29sdmUoKTtvLnJlYWR5PW8uc2lua0NhcGFiaWxpdHkucHJvbWlzZTt0aGlzLnN0cmVhbVNpbmtzW3RdPW87UHJvbWlzZS50cnkoaSxlLmRhdGEsbykudGhlbihmdW5jdGlvbigpe3IucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6bix0YXJnZXROYW1lOmEsc3RyZWFtOnhsLHN0cmVhbUlkOnQsc3VjY2VzczohMH0pfSxmdW5jdGlvbihlKXtyLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOm4sdGFyZ2V0TmFtZTphLHN0cmVhbTp4bCxzdHJlYW1JZDp0LHJlYXNvbjp3cmFwUmVhc29uKGUpfSl9KX0janQoZSl7Y29uc3QgdD1lLnN0cmVhbUlkLG49dGhpcy5zb3VyY2VOYW1lLGE9ZS5zb3VyY2VOYW1lLHI9dGhpcy5jb21PYmoscz10aGlzLnN0cmVhbUNvbnRyb2xsZXJzW3RdLGk9dGhpcy5zdHJlYW1TaW5rc1t0XTtzd2l0Y2goZS5zdHJlYW0pe2Nhc2UgeGw6ZS5zdWNjZXNzP3Muc3RhcnRDYWxsLnJlc29sdmUoKTpzLnN0YXJ0Q2FsbC5yZWplY3Qod3JhcFJlYXNvbihlLnJlYXNvbikpO2JyZWFrO2Nhc2UgU2w6ZS5zdWNjZXNzP3MucHVsbENhbGwucmVzb2x2ZSgpOnMucHVsbENhbGwucmVqZWN0KHdyYXBSZWFzb24oZS5yZWFzb24pKTticmVhaztjYXNlIHZsOmlmKCFpKXtyLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOm4sdGFyZ2V0TmFtZTphLHN0cmVhbTpTbCxzdHJlYW1JZDp0LHN1Y2Nlc3M6ITB9KTticmVha31pLmRlc2lyZWRTaXplPD0wJiZlLmRlc2lyZWRTaXplPjAmJmkuc2lua0NhcGFiaWxpdHkucmVzb2x2ZSgpO2kuZGVzaXJlZFNpemU9ZS5kZXNpcmVkU2l6ZTtQcm9taXNlLnRyeShpLm9uUHVsbHx8b25GbikudGhlbihmdW5jdGlvbigpe3IucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6bix0YXJnZXROYW1lOmEsc3RyZWFtOlNsLHN0cmVhbUlkOnQsc3VjY2VzczohMH0pfSxmdW5jdGlvbihlKXtyLnBvc3RNZXNzYWdlKHtzb3VyY2VOYW1lOm4sdGFyZ2V0TmFtZTphLHN0cmVhbTpTbCxzdHJlYW1JZDp0LHJlYXNvbjp3cmFwUmVhc29uKGUpfSl9KTticmVhaztjYXNlIHlsOmFzc2VydChzLCJlbnF1ZXVlIHNob3VsZCBoYXZlIHN0cmVhbSBjb250cm9sbGVyIik7aWYocy5pc0Nsb3NlZClicmVhaztzLmNvbnRyb2xsZXIuZW5xdWV1ZShlLmNodW5rKTticmVhaztjYXNlIGtsOmFzc2VydChzLCJjbG9zZSBzaG91bGQgaGF2ZSBzdHJlYW0gY29udHJvbGxlciIpO2lmKHMuaXNDbG9zZWQpYnJlYWs7cy5pc0Nsb3NlZD0hMDtzLmNvbnRyb2xsZXIuY2xvc2UoKTt0aGlzLiN5dChzLHQpO2JyZWFrO2Nhc2UgcWw6YXNzZXJ0KHMsImVycm9yIHNob3VsZCBoYXZlIHN0cmVhbSBjb250cm9sbGVyIik7cy5jb250cm9sbGVyLmVycm9yKHdyYXBSZWFzb24oZS5yZWFzb24pKTt0aGlzLiN5dChzLHQpO2JyZWFrO2Nhc2Ugamw6ZS5zdWNjZXNzP3MuY2FuY2VsQ2FsbC5yZXNvbHZlKCk6cy5jYW5jZWxDYWxsLnJlamVjdCh3cmFwUmVhc29uKGUucmVhc29uKSk7dGhpcy4jeXQocyx0KTticmVhaztjYXNlIHdsOmlmKCFpKWJyZWFrO2NvbnN0IG89d3JhcFJlYXNvbihlLnJlYXNvbik7UHJvbWlzZS50cnkoaS5vbkNhbmNlbHx8b25GbixvKS50aGVuKGZ1bmN0aW9uKCl7ci5wb3N0TWVzc2FnZSh7c291cmNlTmFtZTpuLHRhcmdldE5hbWU6YSxzdHJlYW06amwsc3RyZWFtSWQ6dCxzdWNjZXNzOiEwfSl9LGZ1bmN0aW9uKGUpe3IucG9zdE1lc3NhZ2Uoe3NvdXJjZU5hbWU6bix0YXJnZXROYW1lOmEsc3RyZWFtOmpsLHN0cmVhbUlkOnQscmVhc29uOndyYXBSZWFzb24oZSl9KX0pO2kuc2lua0NhcGFiaWxpdHkucmVqZWN0KG8pO2kuaXNDYW5jZWxsZWQ9ITA7ZGVsZXRlIHRoaXMuc3RyZWFtU2lua3NbdF07YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgc3RyZWFtIGNhc2UiKX19YXN5bmMjeXQoZSx0KXthd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoW2Uuc3RhcnRDYWxsPy5wcm9taXNlLGUucHVsbENhbGw/LnByb21pc2UsZS5jYW5jZWxDYWxsPy5wcm9taXNlXSk7ZGVsZXRlIHRoaXMuc3RyZWFtQ29udHJvbGxlcnNbdF19ZGVzdHJveSgpe3RoaXMuI2J0Py5hYm9ydCgpO3RoaXMuI2J0PW51bGx9fWFzeW5jIGZ1bmN0aW9uIHdyaXRlT2JqZWN0KGUsdCxuLHtlbmNyeXB0OmE9bnVsbCxlbmNyeXB0UmVmOnI9bnVsbH0pe2NvbnN0IHM9YSYmciE9PWU/YS5jcmVhdGVDaXBoZXJUcmFuc2Zvcm0oZS5udW0sZS5nZW4pOm51bGw7bi5wdXNoKGAke2UubnVtfSAke2UuZ2VufSBvYmpcbmApO2F3YWl0IHdyaXRlVmFsdWUodCxuLHMpO24ucHVzaCgiXG5lbmRvYmpcbiIpfWFzeW5jIGZ1bmN0aW9uIHdyaXRlRGljdChlLHQsbil7dC5wdXNoKCI8PCIpO2Zvcihjb25zdFthLHJdb2YgZS5nZXRSYXdFbnRyaWVzKCkpe3QucHVzaChgIC8ke2VzY2FwZVBERk5hbWUoYSl9IGApO2F3YWl0IHdyaXRlVmFsdWUocix0LG4pfXQucHVzaCgiPj4iKX1hc3luYyBmdW5jdGlvbiB3cml0ZVZhbHVlKGUsdCxuKXtpZihlIGluc3RhbmNlb2YgTmFtZSl0LnB1c2goYC8ke2VzY2FwZVBERk5hbWUoZS5uYW1lKX1gKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiBSZWYpdC5wdXNoKGAke2UubnVtfSAke2UuZ2VufSBSYCk7ZWxzZSBpZihBcnJheS5pc0FycmF5KGUpfHxBcnJheUJ1ZmZlci5pc1ZpZXcoZSkpYXdhaXQgYXN5bmMgZnVuY3Rpb24gd3JpdGVBcnJheShlLHQsbil7dC5wdXNoKCJbIik7Zm9yKGxldCBhPTAscj1lLmxlbmd0aDthPHI7YSsrKXthd2FpdCB3cml0ZVZhbHVlKGVbYV0sdCxuKTthPHItMSYmdC5wdXNoKCIgIil9dC5wdXNoKCJdIil9KGUsdCxuKTtlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgZSl7biYmKGU9bi5lbmNyeXB0U3RyaW5nKGUpKTt0LnB1c2goYCgke2VzY2FwZVN0cmluZyhlKX0pYCl9ZWxzZSJudW1iZXIiPT10eXBlb2YgZXx8ImJvb2xlYW4iPT10eXBlb2YgZT90LnB1c2goZS50b1N0cmluZygpKTplIGluc3RhbmNlb2YgRGljdD9hd2FpdCB3cml0ZURpY3QoZSx0LG4pOmUgaW5zdGFuY2VvZiBCYXNlU3RyZWFtP2F3YWl0IGFzeW5jIGZ1bmN0aW9uIHdyaXRlU3RyZWFtKGUsdCxuKXsoZT1lLmdldE9yaWdpbmFsU3RyZWFtKCkpLnJlc2V0KCk7bGV0IGE9ZS5nZXRCeXRlcygpO2NvbnN0e2RpY3Q6cn09ZSxbcyxpXT1hd2FpdCBQcm9taXNlLmFsbChbci5nZXRBc3luYygiRmlsdGVyIiksci5nZXRBc3luYygiRGVjb2RlUGFybXMiKV0pLG89aXNOYW1lKEFycmF5LmlzQXJyYXkocyk/YXdhaXQgci54cmVmLmZldGNoSWZSZWZBc3luYyhzWzBdKTpzLCJGbGF0ZURlY29kZSIpO2lmKGEubGVuZ3RoPj0yNTYmJiFvKXRyeXtjb25zdCBlPW5ldyBDb21wcmVzc2lvblN0cmVhbSgiZGVmbGF0ZSIpLHQ9ZS53cml0YWJsZS5nZXRXcml0ZXIoKTthd2FpdCB0LnJlYWR5O3Qud3JpdGUoYSkudGhlbihhc3luYygpPT57YXdhaXQgdC5yZWFkeTthd2FpdCB0LmNsb3NlKCl9KS5jYXRjaCgoKT0+e30pO2NvbnN0IG49YXdhaXQgbmV3IFJlc3BvbnNlKGUucmVhZGFibGUpLmFycmF5QnVmZmVyKCk7YT1uZXcgVWludDhBcnJheShuKTtsZXQgbCxmO2lmKHMpe2lmKCFvKXtsPUFycmF5LmlzQXJyYXkocyk/W05hbWUuZ2V0KCJGbGF0ZURlY29kZSIpLC4uLnNdOltOYW1lLmdldCgiRmxhdGVEZWNvZGUiKSxzXTtpJiYoZj1BcnJheS5pc0FycmF5KGkpP1tudWxsLC4uLmldOltudWxsLGldKX19ZWxzZSBsPU5hbWUuZ2V0KCJGbGF0ZURlY29kZSIpO2wmJnIuc2V0KCJGaWx0ZXIiLGwpO2YmJnIuc2V0KCJEZWNvZGVQYXJtcyIsZil9Y2F0Y2goZSl7aW5mbyhgd3JpdGVTdHJlYW0gLSBjYW5ub3QgY29tcHJlc3MgZGF0YTogIiR7ZX0iLmApfWxldCBsPWJ5dGVzVG9TdHJpbmcoYSk7biYmKGw9bi5lbmNyeXB0U3RyaW5nKGwpKTtyLnNldCgiTGVuZ3RoIixsLmxlbmd0aCk7YXdhaXQgd3JpdGVEaWN0KHIsdCxuKTt0LnB1c2goIiBzdHJlYW1cbiIsbCwiXG5lbmRzdHJlYW0iKX0oZSx0LG4pOm51bGw9PT1lP3QucHVzaCgibnVsbCIpOndhcm4oYFVuaGFuZGxlZCB2YWx1ZSBpbiB3cml0ZXI6ICR7dHlwZW9mIGV9LCBwbGVhc2UgZmlsZSBhIGJ1Zy5gKX1mdW5jdGlvbiB3cml0ZUludChlLHQsbixhKXtmb3IobGV0IHI9dCtuLTE7cj5uLTE7ci0tKXthW3JdPTI1NSZlO2U+Pj04fXJldHVybiBuK3R9ZnVuY3Rpb24gd3JpdGVTdHJpbmcoZSx0LG4pe2NvbnN0IGE9ZS5sZW5ndGg7Zm9yKGxldCByPTA7cjxhO3IrKyluW3Qrcl09MjU1JmUuY2hhckNvZGVBdChyKTtyZXR1cm4gdCthfWZ1bmN0aW9uIHVwZGF0ZVhGQSh7eGZhRGF0YTplLHhmYURhdGFzZXRzUmVmOnQsY2hhbmdlczpuLHhyZWY6YX0pe2lmKG51bGw9PT1lKXtlPWZ1bmN0aW9uIHdyaXRlWEZBRGF0YUZvckFjcm9mb3JtKGUsdCl7Y29uc3Qgbj1uZXcgU2ltcGxlWE1MUGFyc2VyKHtoYXNBdHRyaWJ1dGVzOiEwfSkucGFyc2VGcm9tU3RyaW5nKGUpO2Zvcihjb25zdHt4ZmE6ZX1vZiB0KXtpZighZSljb250aW51ZTtjb25zdHtwYXRoOnQsdmFsdWU6YX09ZTtpZighdCljb250aW51ZTtjb25zdCByPXBhcnNlWEZBUGF0aCh0KTtsZXQgcz1uLmRvY3VtZW50RWxlbWVudC5zZWFyY2hOb2RlKHIsMCk7IXMmJnIubGVuZ3RoPjEmJihzPW4uZG9jdW1lbnRFbGVtZW50LnNlYXJjaE5vZGUoW3IuYXQoLTEpXSwwKSk7cz9zLmNoaWxkTm9kZXM9QXJyYXkuaXNBcnJheShhKT9hLm1hcChlPT5uZXcgU2ltcGxlRE9NTm9kZSgidmFsdWUiLGUpKTpbbmV3IFNpbXBsZURPTU5vZGUoIiN0ZXh0IixhKV06d2FybihgTm9kZSBub3QgZm91bmQgZm9yIHBhdGg6ICR7dH1gKX1jb25zdCBhPVtdO24uZG9jdW1lbnRFbGVtZW50LmR1bXAoYSk7cmV0dXJuIGEuam9pbigiIil9KGEuZmV0Y2hJZlJlZih0KS5nZXRTdHJpbmcoKSxuKX1jb25zdCByPW5ldyBTdHJpbmdTdHJlYW0oZSk7ci5kaWN0PW5ldyBEaWN0KGEpO3IuZGljdC5zZXRJZk5hbWUoIlR5cGUiLCJFbWJlZGRlZEZpbGUiKTtuLnB1dCh0LHtkYXRhOnJ9KX1mdW5jdGlvbiBnZXRJbmRleGVzKGUpe2NvbnN0IHQ9W107Zm9yKGNvbnN0e3JlZjpufW9mIGUpbi5udW09PT10LmF0KC0yKSt0LmF0KC0xKT90W3QubGVuZ3RoLTFdKz0xOnQucHVzaChuLm51bSwxKTtyZXR1cm4gdH1mdW5jdGlvbiBjb21wdXRlSURzKGUsdCxuKXtpZihBcnJheS5pc0FycmF5KHQuZmlsZUlkcykmJnQuZmlsZUlkcy5sZW5ndGg+MCl7Y29uc3QgYT1mdW5jdGlvbiBjb21wdXRlTUQ1KGUsdCl7Y29uc3Qgbj1NYXRoLmZsb29yKERhdGUubm93KCkvMWUzKSxhPXQuZmlsZW5hbWV8fCIiLHI9W24udG9TdHJpbmcoKSxhLGUudG9TdHJpbmcoKSwuLi50LmluZm9NYXAudmFsdWVzKCldLHM9TWF0aC5zdW1QcmVjaXNlKHIubWFwKGU9PmUubGVuZ3RoKSksaT1uZXcgVWludDhBcnJheShzKTtsZXQgbz0wO2Zvcihjb25zdCBlIG9mIHIpbz13cml0ZVN0cmluZyhlLG8saSk7cmV0dXJuIGJ5dGVzVG9TdHJpbmcoY2FsY3VsYXRlTUQ1KGksMCxpLmxlbmd0aCkpfShlLHQpO24uc2V0KCJJRCIsW3QuZmlsZUlkc1swXXx8YSxhXSl9fWFzeW5jIGZ1bmN0aW9uIGluY3JlbWVudGFsVXBkYXRlKHtvcmlnaW5hbERhdGE6ZSx4cmVmSW5mbzp0LGNoYW5nZXM6bix4cmVmOmE9bnVsbCxoYXNYZmE6cj0hMSx4ZmFEYXRhc2V0c1JlZjpzPW51bGwsaGFzWGZhRGF0YXNldHNFbnRyeTppPSExLG5lZWRBcHBlYXJhbmNlczpvLGFjcm9Gb3JtUmVmOmw9bnVsbCxhY3JvRm9ybTpmPW51bGwseGZhRGF0YTpjPW51bGwsdXNlWHJlZlN0cmVhbTpoPSExfSl7YXdhaXQgYXN5bmMgZnVuY3Rpb24gdXBkYXRlQWNyb2Zvcm0oe3hyZWY6ZSxhY3JvRm9ybTp0LGFjcm9Gb3JtUmVmOm4saGFzWGZhOmEsaGFzWGZhRGF0YXNldHNFbnRyeTpyLHhmYURhdGFzZXRzUmVmOnMsbmVlZEFwcGVhcmFuY2VzOmksY2hhbmdlczpvfSl7IWF8fHJ8fHN8fHdhcm4oIlhGQSAtIENhbm5vdCBzYXZlIGl0Iik7aWYoIWkmJighYXx8IXN8fHIpKXJldHVybjtjb25zdCBsPXQuY2xvbmUoKTtpZihhJiYhcil7Y29uc3QgZT10LmdldCgiWEZBIikuc2xpY2UoKTtlLnNwbGljZSgyLDAsImRhdGFzZXRzIik7ZS5zcGxpY2UoMywwLHMpO2wuc2V0KCJYRkEiLGUpfWkmJmwuc2V0KCJOZWVkQXBwZWFyYW5jZXMiLCEwKTtvLnB1dChuLHtkYXRhOmx9KX0oe3hyZWY6YSxhY3JvRm9ybTpmLGFjcm9Gb3JtUmVmOmwsaGFzWGZhOnIsaGFzWGZhRGF0YXNldHNFbnRyeTppLHhmYURhdGFzZXRzUmVmOnMsbmVlZEFwcGVhcmFuY2VzOm8sY2hhbmdlczpufSk7ciYmdXBkYXRlWEZBKHt4ZmFEYXRhOmMseGZhRGF0YXNldHNSZWY6cyxjaGFuZ2VzOm4seHJlZjphfSk7Y29uc3QgdT1mdW5jdGlvbiBnZXRUcmFpbGVyRGljdChlLHQsbil7Y29uc3QgYT1uZXcgRGljdChudWxsKTthLnNldElmRGVmaW5lZCgiUHJldiIsZT8uc3RhcnRYUmVmKTtjb25zdCByPWUubmV3UmVmO2lmKG4pe3QucHV0KHIse2RhdGE6IiJ9KTthLnNldCgiU2l6ZSIsci5udW0rMSk7YS5zZXRJZk5hbWUoIlR5cGUiLCJYUmVmIil9ZWxzZSBhLnNldCgiU2l6ZSIsci5udW0pO2Euc2V0SWZEZWZpbmVkKCJSb290IixlPy5yb290UmVmKTthLnNldElmRGVmaW5lZCgiSW5mbyIsZT8uaW5mb1JlZik7YS5zZXRJZkRlZmluZWQoIkVuY3J5cHQiLGU/LmVuY3J5cHRSZWYpO3JldHVybiBhfSh0LG4saCksbT1bXSxwPWF3YWl0IGFzeW5jIGZ1bmN0aW9uIHdyaXRlQ2hhbmdlcyhlLHQsbj1bXSl7Y29uc3QgYT1bXTtmb3IoY29uc3Rbcix7ZGF0YTpzLG9ialN0cmVhbVJlZjppLGluZGV4Om99XW9mIGUuaXRlbXMoKSlpZihpKWEucHVzaCh7cmVmOnIsZGF0YTpzLG9ialN0cmVhbVJlZjppLGluZGV4Om99KTtlbHNlIGlmKG51bGwhPT1zJiYic3RyaW5nIiE9dHlwZW9mIHMpe2F3YWl0IHdyaXRlT2JqZWN0KHIscyxuLHQpO2EucHVzaCh7cmVmOnIsZGF0YTpuLmpvaW4oIiIpfSk7bi5sZW5ndGg9MH1lbHNlIGEucHVzaCh7cmVmOnIsZGF0YTpzfSk7cmV0dXJuIGEuc29ydCgoZSx0KT0+ZS5yZWYubnVtLXQucmVmLm51bSl9KG4sYSxtKTtsZXQgZD1lLmxlbmd0aDtjb25zdCBnPWUuYXQoLTEpO2lmKDEwIT09ZyYmMTMhPT1nKXttLnB1c2goIlxuIik7ZCs9MX1mb3IoY29uc3R7ZGF0YTplfW9mIHApbnVsbCE9PWUmJm0ucHVzaChlKTthd2FpdChoP2FzeW5jIGZ1bmN0aW9uIGdldFhSZWZTdHJlYW1UYWJsZShlLHQsbixhLHIpe2NvbnN0IHM9W107bGV0IGk9MCxvPTA7Zm9yKGNvbnN0e3JlZjplLGRhdGE6YSxvYmpTdHJlYW1SZWY6cixpbmRleDpsfW9mIG4pe2xldCBuO2k9TWF0aC5tYXgoaSx0KTtpZihyKXtuPWw7cy5wdXNoKFsyLHIubnVtLG5dKX1lbHNlIGlmKG51bGwhPT1hKXtuPU1hdGgubWluKGUuZ2VuLDY1NTM1KTtzLnB1c2goWzEsdCxuXSk7dCs9YS5sZW5ndGh9ZWxzZXtuPU1hdGgubWluKGUuZ2VuKzEsNjU1MzUpO3MucHVzaChbMCwwLG5dKX1vPU1hdGgubWF4KG8sbil9YS5zZXQoIkluZGV4IixnZXRJbmRleGVzKG4pKTtjb25zdCBsPVsxLGdldFNpemVJbkJ5dGVzKGkpLGdldFNpemVJbkJ5dGVzKG8pXTthLnNldCgiVyIsbCk7Y29tcHV0ZUlEcyh0LGUsYSk7Y29uc3QgZj1NYXRoLnN1bVByZWNpc2UobCksYz1uZXcgVWludDhBcnJheShmKnMubGVuZ3RoKSxoPW5ldyBTdHJlYW0oYyk7aC5kaWN0PWE7bGV0IHU9MDtmb3IoY29uc3RbZSx0LG5db2Ygcyl7dT13cml0ZUludChlLGxbMF0sdSxjKTt1PXdyaXRlSW50KHQsbFsxXSx1LGMpO3U9d3JpdGVJbnQobixsWzJdLHUsYyl9YXdhaXQgd3JpdGVPYmplY3QoZS5uZXdSZWYsaCxyLHt9KTtyLnB1c2goInN0YXJ0eHJlZlxuIix0LnRvU3RyaW5nKCksIlxuJSVFT0ZcbiIpfSh0LGQscCx1LG0pOmFzeW5jIGZ1bmN0aW9uIGdldFhSZWZUYWJsZShlLHQsbixhLHIpe3IucHVzaCgieHJlZlxuIik7Y29uc3Qgcz1nZXRJbmRleGVzKG4pO2xldCBpPTA7Zm9yKGNvbnN0e3JlZjplLGRhdGE6YX1vZiBuKXtpZihlLm51bT09PXNbaV0pe3IucHVzaChgJHtzW2ldfSAke3NbaSsxXX1cbmApO2krPTJ9aWYobnVsbCE9PWEpe3IucHVzaChgJHt0LnRvU3RyaW5nKCkucGFkU3RhcnQoMTAsIjAiKX0gJHtNYXRoLm1pbihlLmdlbiw2NTUzNSkudG9TdHJpbmcoKS5wYWRTdGFydCg1LCIwIil9IG5cclxuYCk7dCs9YS5sZW5ndGh9ZWxzZSByLnB1c2goYDAwMDAwMDAwMDAgJHtNYXRoLm1pbihlLmdlbisxLDY1NTM1KS50b1N0cmluZygpLnBhZFN0YXJ0KDUsIjAiKX0gZlxyXG5gKX1jb21wdXRlSURzKHQsZSxhKTtyLnB1c2goInRyYWlsZXJcbiIpO2F3YWl0IHdyaXRlRGljdChhLHIsbnVsbCk7ci5wdXNoKCJcbnN0YXJ0eHJlZlxuIix0LnRvU3RyaW5nKCksIlxuJSVFT0ZcbiIpfSh0LGQscCx1LG0pKTtjb25zdCBiPWUubGVuZ3RoK01hdGguc3VtUHJlY2lzZShtLm1hcChlPT5lLmxlbmd0aCkpLHc9bmV3IFVpbnQ4QXJyYXkoYik7dy5zZXQoZSk7bGV0IGo9ZS5sZW5ndGg7Zm9yKGNvbnN0IGUgb2YgbSlqPXdyaXRlU3RyaW5nKGUsaix3KTtyZXR1cm4gd31jbGFzcyBQYWdlRGF0YXtjb25zdHJ1Y3RvcihlLHQpe3RoaXMucGFnZT1lO3RoaXMuZG9jdW1lbnREYXRhPXQ7dGhpcy5hbm5vdGF0aW9ucz1udWxsO3RoaXMucG9pbnRpbmdOYW1lZERlc3RpbmF0aW9ucz1udWxsO3QucGFnZXNNYXAucHV0KGUucmVmLHRoaXMpfX1jbGFzcyBEb2N1bWVudERhdGF7Y29uc3RydWN0b3IoZSl7dGhpcy5kb2N1bWVudD1lO3RoaXMuZGVzdGluYXRpb25zPW51bGw7dGhpcy5wYWdlTGFiZWxzPW51bGw7dGhpcy5wYWdlc01hcD1uZXcgUmVmU2V0Q2FjaGU7dGhpcy5vbGRSZWZNYXBwaW5nPW5ldyBSZWZTZXRDYWNoZTt0aGlzLmRlZHVwTmFtZWREZXN0aW5hdGlvbnM9bmV3IE1hcDt0aGlzLnVzZWROYW1lZERlc3RpbmF0aW9ucz1uZXcgU2V0O3RoaXMucG9zdHBvbmVkUmVmQ29waWVzPW5ldyBSZWZTZXRDYWNoZTt0aGlzLnVzZWRTdHJ1Y3RQYXJlbnRzPW5ldyBTZXQ7dGhpcy5vbGRTdHJ1Y3RQYXJlbnRNYXBwaW5nPW5ldyBNYXA7dGhpcy5zdHJ1Y3RUcmVlUm9vdD1udWxsO3RoaXMucGFyZW50VHJlZT1udWxsO3RoaXMuaWRUcmVlPW51bGw7dGhpcy5yb2xlTWFwPW51bGw7dGhpcy5jbGFzc01hcD1udWxsO3RoaXMubmFtZXNwYWNlcz1udWxsO3RoaXMuc3RydWN0VHJlZUFGPW51bGw7dGhpcy5zdHJ1Y3RUcmVlUHJvbnVuY2lhdGlvbkxleGljb249W119fWNsYXNzIFhSZWZXcmFwcGVye2NvbnN0cnVjdG9yKGUpe3RoaXMuZW50cmllcz1lfWZldGNoKGUpe3JldHVybiBlIGluc3RhbmNlb2YgUmVmP3RoaXMuZW50cmllc1tlLm51bV06ZX19Y2xhc3MgUERGRWRpdG9ye2hhc1NpbmdsZUZpbGU9ITE7Y3VycmVudERvY3VtZW50PW51bGw7b2xkUGFnZXM9W107bmV3UGFnZXM9W107eHJlZj1bbnVsbF07eHJlZldyYXBwZXI9bmV3IFhSZWZXcmFwcGVyKHRoaXMueHJlZik7bmV3UmVmQ291bnQ9MTtuYW1lc0RpY3Q9bnVsbDt2ZXJzaW9uPSIxLjciO3BhZ2VMYWJlbHM9bnVsbDtuYW1lZERlc3RpbmF0aW9ucz1uZXcgTWFwO3BhcmVudFRyZWU9bmV3IE1hcDtzdHJ1Y3RUcmVlS2lkcz1bXTtpZFRyZWU9bmV3IE1hcDtjbGFzc01hcD1uZXcgRGljdDtyb2xlTWFwPW5ldyBEaWN0O25hbWVzcGFjZXM9bmV3IE1hcDtzdHJ1Y3RUcmVlQUY9W107c3RydWN0VHJlZVByb251bmNpYXRpb25MZXhpY29uPVtdO2NvbnN0cnVjdG9yKHt1c2VPYmplY3RTdHJlYW1zOmU9ITAsdGl0bGU6dD0iIixhdXRob3I6bj0iIn09e30pe1t0aGlzLnJvb3RSZWYsdGhpcy5yb290RGljdF09dGhpcy5uZXdEaWN0O1t0aGlzLmluZm9SZWYsdGhpcy5pbmZvRGljdF09dGhpcy5uZXdEaWN0O1t0aGlzLnBhZ2VzUmVmLHRoaXMucGFnZXNEaWN0XT10aGlzLm5ld0RpY3Q7dGhpcy51c2VPYmplY3RTdHJlYW1zPWU7dGhpcy5vYmpTdHJlYW1SZWZzPWU/bmV3IFNldDpudWxsO3RoaXMudGl0bGU9dDt0aGlzLmF1dGhvcj1ufWdldCBuZXdSZWYoKXtyZXR1cm4gUmVmLmdldCh0aGlzLm5ld1JlZkNvdW50KyssMCl9Z2V0IG5ld0RpY3QoKXtjb25zdCBlPXRoaXMubmV3UmVmO3JldHVybltlLHRoaXMueHJlZltlLm51bV09bmV3IERpY3RdfWFzeW5jI3F0KGUsdCl7Y29uc3Qgbj10aGlzLm5ld1JlZjt0aGlzLnhyZWZbbi5udW1dPWF3YWl0IHRoaXMuI3Z0KGUsITAsdCk7cmV0dXJuIG59Y2xvbmVEaWN0KGUpe2NvbnN0IHQ9ZS5jbG9uZSgpO3QueHJlZj10aGlzLnhyZWZXcmFwcGVyO3JldHVybiB0fWFzeW5jI3Z0KGUsdCxuKXtpZihlIGluc3RhbmNlb2YgUmVmKXtjb25zdHtjdXJyZW50RG9jdW1lbnQ6e29sZFJlZk1hcHBpbmc6dH19PXRoaXM7bGV0IGE9dC5nZXQoZSk7aWYoYSlyZXR1cm4gYTtjb25zdCByPWU7aWYoIm51bWJlciI9PXR5cGVvZihlPWF3YWl0IG4uZmV0Y2hBc3luYyhyKSkpcmV0dXJuIGU7YT10aGlzLm5ld1JlZjt0LnB1dChyLGEpO3RoaXMueHJlZlthLm51bV09YXdhaXQgdGhpcy4jdnQoZSwhMCxuKTtyZXR1cm4gYX1jb25zdCBhPVtdLHtjdXJyZW50RG9jdW1lbnQ6e3Bvc3Rwb25lZFJlZkNvcGllczpyfX09dGhpcztpZihBcnJheS5pc0FycmF5KGUpKXt0JiYoZT1lLnNsaWNlKCkpO2ZvcihsZXQgdD0wLHM9ZS5sZW5ndGg7dDxzO3QrKyl7Y29uc3Qgcz1yLmdldChlW3RdKTtzP3MucHVzaChuPT5lW3RdPW4pOmEucHVzaCh0aGlzLiN2dChlW3RdLCEwLG4pLnRoZW4obj0+ZVt0XT1uKSl9YXdhaXQgUHJvbWlzZS5hbGwoYSk7cmV0dXJuIGV9bGV0IHM7aWYoZSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0peyh7ZGljdDpzfT1lPWUuZ2V0T3JpZ2luYWxTdHJlYW0oKS5jbG9uZSgpKTtzLnhyZWY9dGhpcy54cmVmV3JhcHBlcn1lbHNlIGlmKGUgaW5zdGFuY2VvZiBEaWN0KXt0JiYoKGU9ZS5jbG9uZSgpKS54cmVmPXRoaXMueHJlZldyYXBwZXIpO3M9ZX1pZihzKXtmb3IoY29uc3RbZSx0XW9mIHMuZ2V0UmF3RW50cmllcygpKXtjb25zdCBpPXIuZ2V0KHQpO2k/aS5wdXNoKHQ9PnMuc2V0KGUsdCkpOmEucHVzaCh0aGlzLiN2dCh0LCEwLG4pLnRoZW4odD0+cy5zZXQoZSx0KSkpfWF3YWl0IFByb21pc2UuYWxsKGEpfXJldHVybiBlfWFzeW5jI1N0KGUsdCxuLGEscixzLGksbz1uZXcgUmVmU2V0KXtjb25zdHtjdXJyZW50RG9jdW1lbnQ6e3BhZ2VzTWFwOmwsb2xkUmVmTWFwcGluZzpmfX09dGhpcyxjPXQuZ2V0UmF3KCJQZyIpO2lmKGMgaW5zdGFuY2VvZiBSZWYmJiFsLmhhcyhjKSlyZXR1cm4gbnVsbDtsZXQgaDtjb25zdCB1PWg9dC5nZXRSYXcoIksiKTtpZih1IGluc3RhbmNlb2YgUmVmKXtpZihvLmhhcyh1KSlyZXR1cm4gbnVsbDtoPWF3YWl0IG4uZmV0Y2hBc3luYyh1KTtBcnJheS5pc0FycmF5KGgpfHwoaD1bdV0pfWg9QXJyYXkuaXNBcnJheShoKT9oOltoXTtjb25zdCBtPVtdLHA9W107Zm9yKGxldCB0IG9mIGgpe2NvbnN0IGM9dCBpbnN0YW5jZW9mIFJlZj90Om51bGw7aWYoYyl7aWYoby5oYXMoYykpY29udGludWU7by5wdXQoYyk7dD1hd2FpdCBuLmZldGNoQXN5bmMoYyl9aWYoIm51bWJlciI9PXR5cGVvZiB0KXttLnB1c2godCk7Y29udGludWV9aWYoISh0IGluc3RhbmNlb2YgRGljdCkpY29udGludWU7Y29uc3QgaD10LmdldFJhdygiUGciKTtpZihoIGluc3RhbmNlb2YgUmVmJiYhbC5oYXMoaCkpY29udGludWU7Y29uc3QgdT10LmdldCgiVHlwZSIpO2lmKCF1fHxpc05hbWUodSwiU3RydWN0RWxlbSIpKXtsZXQgZT0hMTtpZihjJiZhLmhhcyhjKSl7aWYoIWlzTmFtZSh0LmdldCgiUyIpLCJMaW5rIikpY29udGludWU7ZT0hMH1jb25zdCBsPWF3YWl0IHRoaXMuI1N0KGMsdCxuLGEscixzLGksbyk7aWYobCl7cC5wdXNoKG0ubGVuZ3RoKTttLnB1c2gobCk7YyYmZi5wdXQoYyxsKTtlJiZ0aGlzLnhyZWZbbC5udW1dLnNldElmTmFtZSgiUyIsIlNwYW4iKX1jb250aW51ZX1pZihpc05hbWUodSwiT0JKUiIpKXtpZighYyljb250aW51ZTtjb25zdCB0PWYuZ2V0KGMpO2lmKCF0KWNvbnRpbnVlO2NvbnN0IG49dGhpcy54cmVmW3QubnVtXS5nZXRSYXcoIk9iaiIpO2lmKG4gaW5zdGFuY2VvZiBSZWYpe2NvbnN0IHQ9dGhpcy54cmVmW24ubnVtXTtpZih0IGluc3RhbmNlb2YgRGljdCYmIXQuaGFzKCJTdHJ1Y3RQYXJlbnQiKSYmZSl7Y29uc3Qgbj10aGlzLnBhcmVudFRyZWUuc2l6ZTt0aGlzLnBhcmVudFRyZWUuc2V0KG4sW2YsZV0pO3Quc2V0KCJTdHJ1Y3RQYXJlbnQiLG4pfX1tLnB1c2godCk7Y29udGludWV9aWYoaXNOYW1lKHUsIk1DUiIpKXtjb25zdCBlPWF3YWl0IHRoaXMuI3Z0KGN8fHQsITAsbik7bS5wdXNoKGUpO2NvbnRpbnVlfWlmKGMpe2NvbnN0IGU9YXdhaXQgdGhpcy4jdnQoYywhMCxuKTttLnB1c2goZSl9fWlmKDAhPT1oLmxlbmd0aCYmMD09PW0ubGVuZ3RoKXJldHVybiBudWxsO2NvbnN0IGQ9dGhpcy5uZXdSZWYsZz10aGlzLnhyZWZbZC5udW1dPXRoaXMuY2xvbmVEaWN0KHQpO2cuZGVsZXRlKCJJRCIpO2cuZGVsZXRlKCJDIik7Zy5kZWxldGUoIksiKTtnLmRlbGV0ZSgiUCIpO2cuZGVsZXRlKCJTIik7YXdhaXQgdGhpcy4jdnQoZywhMSxuKTtjb25zdCBiPXQuZ2V0KCJDIik7aWYoYiBpbnN0YW5jZW9mIE5hbWUpe2NvbnN0IGU9cy5nZXQoYi5uYW1lKTtlP2cuc2V0KCJDIixOYW1lLmdldChlKSk6Zy5zZXQoIkMiLGIpfWVsc2UgaWYoQXJyYXkuaXNBcnJheShiKSl7Y29uc3QgZT1bXTtmb3IoY29uc3QgdCBvZiBiKWlmKHQgaW5zdGFuY2VvZiBOYW1lKXtjb25zdCBuPXMuZ2V0KHQubmFtZSk7bj9lLnB1c2goTmFtZS5nZXQobikpOmUucHVzaCh0KX1nLnNldCgiQyIsZSl9Y29uc3Qgdz10LmdldCgiUyIpO2lmKHcgaW5zdGFuY2VvZiBOYW1lKXtjb25zdCBlPWkuZ2V0KHcubmFtZSk7ZT9nLnNldCgiUyIsTmFtZS5nZXQoZSkpOmcuc2V0KCJTIix3KX1jb25zdCBqPXQuZ2V0KCJJRCIpO2lmKCJzdHJpbmciPT10eXBlb2Ygail7Y29uc3QgZT1zdHJpbmdUb1BERlN0cmluZyhqLCExKSx0PXIuZ2V0KGUpO3Q/Zy5zZXQoIklEIixzdHJpbmdUb0FzY2lpT3JVVEYxNkJFKHQpKTpnLnNldCgiSUQiLGopfWxldCBrPWcuZ2V0KCJBIik7aWYoayl7QXJyYXkuaXNBcnJheShrKXx8KGs9W2tdKTtmb3IobGV0IGUgb2Ygayl7ZT10aGlzLnhyZWZXcmFwcGVyLmZldGNoKGUpO2lmKGlzTmFtZShlLmdldCgiTyIpLCJUYWJsZSIpJiZlLmhhcygiSGVhZGVycyIpKXtjb25zdCB0PXRoaXMueHJlZldyYXBwZXIuZmV0Y2goZS5nZXRSYXcoIkhlYWRlcnMiKSk7aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IobGV0IGU9MCxuPXQubGVuZ3RoO2U8bjtlKyspe2NvbnN0IG49ci5nZXQoc3RyaW5nVG9QREZTdHJpbmcodFtlXSwhMSkpO24mJih0W2VdPW4pfX19fWZvcihjb25zdCBlIG9mIHApe2NvbnN0IHQ9bVtlXTt0aGlzLnhyZWZbdC5udW1dLnNldCgiUCIsZCl9MT09PW0ubGVuZ3RoP2cuc2V0KCJLIixtWzBdKTptLmxlbmd0aD4xJiZnLnNldCgiSyIsbSk7cmV0dXJuIGR9YXN5bmMgZXh0cmFjdFBhZ2VzKGUpe2NvbnN0IHQ9W107bGV0IG49MDt0aGlzLmhhc1NpbmdsZUZpbGU9MT09PWUubGVuZ3RoO2NvbnN0IGE9W107Zm9yKGNvbnN0e2RvY3VtZW50OnIsaW5jbHVkZVBhZ2VzOnMsZXhjbHVkZVBhZ2VzOmkscGFnZUluZGljZXM6b31vZiBlKXtpZighciljb250aW51ZTtvJiYobj0tMSk7Y29uc3QgZT1uZXcgRG9jdW1lbnREYXRhKHIpO2EucHVzaChlKTt0LnB1c2godGhpcy4jeHQoZSkpO2xldCBsLGYsYyxoO2Zvcihjb25zdCBlIG9mIHN8fFtdKUFycmF5LmlzQXJyYXkoZSk/KGZ8fD1bXSkucHVzaChlKToobHx8PW5ldyBTZXQpLmFkZChlKTtmb3IoY29uc3QgZSBvZiBpfHxbXSlBcnJheS5pc0FycmF5KGUpPyhofHw9W10pLnB1c2goZSk6KGN8fD1uZXcgU2V0KS5hZGQoZSk7bGV0IHU9MDtmb3IobGV0IGE9MCxzPXIubnVtUGFnZXM7YTxzO2ErKyl7aWYoYz8uaGFzKGEpKWNvbnRpbnVlO2lmKGgpe2xldCBlPSExO2Zvcihjb25zdFt0LG5db2YgaClpZihhPj10JiZhPD1uKXtlPSEwO2JyZWFrfWlmKGUpY29udGludWV9bGV0IHMsaT0hMTtsJiYoaT1sLmhhcyhhKSk7aWYoIWkmJmYpZm9yKGNvbnN0W2UsdF1vZiBmKWlmKGE+PWUmJmE8PXQpe2k9ITA7YnJlYWt9aXx8bHx8Znx8KGk9ITApO2lmKGkpe28mJihzPW9bdSsrXSk7aWYodm9pZCAwPT09cylpZigtMSE9PW4pcz1uKys7ZWxzZSBmb3Iocz0wO3ZvaWQgMD09PXRoaXMub2xkUGFnZXNbc107cysrKTt0LnB1c2goci5nZXRQYWdlKGEpLnRoZW4odD0+e3RoaXMub2xkUGFnZXNbc109bmV3IFBhZ2VEYXRhKHQsZSl9KSl9fX1hd2FpdCBQcm9taXNlLmFsbCh0KTt0Lmxlbmd0aD0wO3RoaXMuI0F0KGEpO3RoaXMuI0N0KCk7Zm9yKGNvbnN0IGUgb2YgdGhpcy5vbGRQYWdlcyl0LnB1c2godGhpcy4jSXQoZSkpO2F3YWl0IFByb21pc2UuYWxsKHQpO3RoaXMuI0Z0KCk7dGhpcy4jVHQoYSk7Zm9yKGxldCBlPTAsdD10aGlzLm9sZFBhZ2VzLmxlbmd0aDtlPHQ7ZSsrKXRoaXMubmV3UGFnZXNbZV09YXdhaXQgdGhpcy4jT3QoZSxudWxsKTt0aGlzLiNSdChhKTthd2FpdCB0aGlzLiNCdChhKTtyZXR1cm4gdGhpcy53cml0ZVBERigpfWFzeW5jI3h0KGUpe2NvbnN0e2RvY3VtZW50OntwZGZNYW5hZ2VyOnQseHJlZjpufX09ZTthd2FpdCBQcm9taXNlLmFsbChbdC5lbnN1cmVDYXRhbG9nKCJkZXN0aW5hdGlvbnMiKS50aGVuKHQ9PmUuZGVzdGluYXRpb25zPXQpLHQuZW5zdXJlQ2F0YWxvZygicmF3UGFnZUxhYmVscyIpLnRoZW4odD0+ZS5wYWdlTGFiZWxzPXQpLHQuZW5zdXJlQ2F0YWxvZygic3RydWN0VHJlZVJvb3QiKS50aGVuKHQ9PmUuc3RydWN0VHJlZVJvb3Q9dCldKTtjb25zdCBhPWUuc3RydWN0VHJlZVJvb3Q7aWYoYSl7Y29uc3QgdD1hLmRpY3Qscj10LmdldCgiUGFyZW50VHJlZSIpO2lmKHIpe2NvbnN0IHQ9bmV3IE51bWJlclRyZWUocixuKTtlLnBhcmVudFRyZWU9dC5nZXRBbGwoITApfWNvbnN0IHM9dC5nZXQoIklEVHJlZSIpO2lmKHMpe2NvbnN0IHQ9bmV3IE5hbWVUcmVlKHMsbik7ZS5pZFRyZWU9dC5nZXRBbGwoITApfWUucm9sZU1hcD10LmdldCgiUm9sZU1hcCIpfHxudWxsO2UuY2xhc3NNYXA9dC5nZXQoIkNsYXNzTWFwIil8fG51bGw7bGV0IGk9dC5nZXQoIk5hbWVzcGFjZXMiKXx8bnVsbDtpJiYhQXJyYXkuaXNBcnJheShpKSYmKGk9W2ldKTtlLm5hbWVzcGFjZXM9aTtlLnN0cnVjdFRyZWVBRj10LmdldCgiQUYiKXx8bnVsbDtlLnN0cnVjdFRyZWVQcm9udW5jaWF0aW9uTGV4aWNvbj10LmdldCgiUHJvbnVuY2lhdGlvbkxleGljb24iKXx8bnVsbH19YXN5bmMjSXQoZSl7Y29uc3R7cGFnZTp7eHJlZjp0LGFubm90YXRpb25zOm59LGRvY3VtZW50RGF0YTp7cGFnZXNNYXA6YSxkZXN0aW5hdGlvbnM6cix1c2VkTmFtZWREZXN0aW5hdGlvbnM6c319PWU7aWYoIW4pcmV0dXJuO2NvbnN0IGk9W107bGV0IG89W10sbD0wO2Zvcihjb25zdCBlIG9mIG4pe2NvbnN0IG49bCsrO2kucHVzaCh0LmZldGNoSWZSZWZBc3luYyhlKS50aGVuKGFzeW5jIHQ9PntpZighaXNOYW1lKHQuZ2V0KCJTdWJ0eXBlIiksIkxpbmsiKSl7b1tuXT1lO3JldHVybn1jb25zdCBpPXQuZ2V0KCJBIiksbD1pIGluc3RhbmNlb2YgRGljdD9pLmdldCgiRCIpOnQuZ2V0KCJEZXN0Iik7aWYobCYmKCFBcnJheS5pc0FycmF5KGwpfHxsWzBdaW5zdGFuY2VvZiBSZWYmJiFhLmhhcyhsWzBdKSkpe2lmKCJzdHJpbmciPT10eXBlb2YgbCl7Y29uc3QgdD1zdHJpbmdUb1BERlN0cmluZyhsLCEwKTtpZihyLmhhcyh0KSl7b1tuXT1lO3MuYWRkKHQpfX19ZWxzZSBvW25dPWV9KSl9YXdhaXQgUHJvbWlzZS5hbGwoaSk7bz1vLmZpbHRlcihlPT4hIWUpO2UuYW5ub3RhdGlvbnM9by5sZW5ndGg+MD9vOm51bGx9I1R0KGUpe2Zvcihjb25zdHtwb3N0cG9uZWRSZWZDb3BpZXM6dCxwYWdlc01hcDpufW9mIGUpZm9yKGNvbnN0IGUgb2Ygbi5rZXlzKCkpdC5wdXQoZSxbXSl9I1J0KGUpe2Zvcihjb25zdHtwb3N0cG9uZWRSZWZDb3BpZXM6dCxvbGRSZWZNYXBwaW5nOm59b2YgZSl7Zm9yKGNvbnN0W2UsYV1vZiB0Lml0ZW1zKCkpe2NvbnN0IHQ9bi5nZXQoZSk7Zm9yKGNvbnN0IGUgb2YgYSllKHQpfXQuY2xlYXIoKX19I0h0KGUsdCxuPW5ldyBSZWZTZXQpe2lmKGUgaW5zdGFuY2VvZiBSZWYpe2lmKCFuLmhhcyhlKSl7bi5wdXQoZSk7dGhpcy4jSHQodGhpcy54cmVmW2UubnVtXSx0LG4pfXJldHVybn1pZihBcnJheS5pc0FycmF5KGUpKXtmb3IoY29uc3QgYSBvZiBlKXRoaXMuI0h0KGEsdCxuKTtyZXR1cm59bGV0IGE7ZSBpbnN0YW5jZW9mIEJhc2VTdHJlYW0/KHtkaWN0OmF9PWUpOmUgaW5zdGFuY2VvZiBEaWN0JiYoYT1lKTtpZihhKXt0KGEpO2Zvcihjb25zdCBlIG9mIGEuZ2V0UmF3VmFsdWVzKCkpdGhpcy4jSHQoZSx0LG4pfX1hc3luYyNCdChlKXtsZXQgdD0wO2NvbnN0e3BhcmVudFRyZWU6bn09dGhpcztmb3IobGV0IGU9MCxhPXRoaXMubmV3UGFnZXMubGVuZ3RoO2U8YTtlKyspe2NvbnN0e2RvY3VtZW50RGF0YTp7cGFyZW50VHJlZTphLG9sZFJlZk1hcHBpbmc6cixvbGRTdHJ1Y3RQYXJlbnRNYXBwaW5nOnMsdXNlZFN0cnVjdFBhcmVudHM6aSxkb2N1bWVudDp7eHJlZjpvfX19PXRoaXMub2xkUGFnZXNbZV07aWYoIWEpY29udGludWU7Y29uc3QgbD10aGlzLm5ld1BhZ2VzW2VdLGY9dGhpcy54cmVmW2wubnVtXTt0aGlzLiNIdChmLGU9Pntjb25zdCBsPWUuZ2V0KCJTdHJ1Y3RQYXJlbnQiKT8/ZS5nZXQoIlN0cnVjdFBhcmVudHMiKTtpZigibnVtYmVyIiE9dHlwZW9mIGwpcmV0dXJuO2kuYWRkKGwpO2xldCBmPWEuZ2V0KGwpO2NvbnN0IGM9ZiBpbnN0YW5jZW9mIFJlZj9mOm51bGw7aWYoYyl7Y29uc3QgZT1vLmZldGNoKGMpO0FycmF5LmlzQXJyYXkoZSkmJihmPWUpfUFycmF5LmlzQXJyYXkoZikmJmYuZXZlcnkoZT0+bnVsbD09PWUpJiYoZj1udWxsKTtpZighZil7ZS5oYXMoIlN0cnVjdFBhcmVudCIpP2UuZGVsZXRlKCJTdHJ1Y3RQYXJlbnQiKTplLmRlbGV0ZSgiU3RydWN0UGFyZW50cyIpO3JldHVybn1sZXQgaD1zLmdldChsKTtpZih2b2lkIDA9PT1oKXtoPXQrKztzLnNldChsLGgpO24uc2V0KGgsW3IsZl0pfWUuaGFzKCJTdHJ1Y3RQYXJlbnQiKT9lLnNldCgiU3RydWN0UGFyZW50IixoKTplLnNldCgiU3RydWN0UGFyZW50cyIsaCl9KX1jb25zdHtzdHJ1Y3RUcmVlS2lkczphLGlkVHJlZTpyLGNsYXNzTWFwOnMscm9sZU1hcDppLG5hbWVzcGFjZXM6byxzdHJ1Y3RUcmVlQUY6bCxzdHJ1Y3RUcmVlUHJvbnVuY2lhdGlvbkxleGljb246Zn09dGhpcztmb3IoY29uc3QgdCBvZiBlKXtjb25zdHtkb2N1bWVudDp7eHJlZjplfSxvbGRSZWZNYXBwaW5nOm4scGFyZW50VHJlZTpjLHVzZWRTdHJ1Y3RQYXJlbnRzOmgsc3RydWN0VHJlZVJvb3Q6dSxpZFRyZWU6bSxjbGFzc01hcDpwLHJvbGVNYXA6ZCxuYW1lc3BhY2VzOmcsc3RydWN0VHJlZUFGOmIsc3RydWN0VHJlZVByb251bmNpYXRpb25MZXhpY29uOnd9PXQ7aWYoIXUpY29udGludWU7dGhpcy5jdXJyZW50RG9jdW1lbnQ9dDtjb25zdCBqPW5ldyBSZWZTZXQ7Zm9yKGNvbnN0W2UsdF1vZiBjfHxbXSkhaC5oYXMoZSkmJnQgaW5zdGFuY2VvZiBSZWYmJmoucHV0KHQpO2NvbnN0IGs9bmV3IE1hcDtmb3IoY29uc3RbZSx0XW9mIG18fFtdKXtsZXQgbj1lO2lmKHIuaGFzKGUpKWZvcihsZXQgdD0xOzt0Kyspe2NvbnN0IGE9YCR7ZX1fJHt0fWA7aWYoIXIuaGFzKGEpKXtrLnNldChlLGEpO249YTticmVha319ci5zZXQobix0KX1jb25zdCB5PW5ldyBNYXA7aWYocD8uc2l6ZT4wKWZvcihsZXRbdCxuXW9mIHApe249YXdhaXQgdGhpcy4jdnQobiwhMCxlKTtpZihzLmhhcyh0KSlmb3IobGV0IGU9MTs7ZSsrKXtjb25zdCBuPWAke3R9XyR7ZX1gO2lmKCFzLmhhcyhuKSl7eS5zZXQodCxuKTt0PW47YnJlYWt9fXMuc2V0KHQsbil9Y29uc3QgcT1uZXcgTWFwO2lmKGQ/LnNpemU+MClmb3IoY29uc3RbZSx0XW9mIGQpe2NvbnN0IG49aS5nZXQoZSk7aWYobil7aWYobiE9PXQpZm9yKGxldCBuPTE7O24rKyl7Y29uc3QgYT1gJHtlfV8ke259YDtpZighaS5oYXMoYSkpe3Euc2V0KGUsYSk7aS5zZXQoYSx0KTticmVha319fWVsc2UgaS5zZXQoZSx0KX1pZihnPy5sZW5ndGg+MClmb3IoY29uc3QgdCBvZiBnKXtjb25zdCBuPWF3YWl0IGUuZmV0Y2hJZlJlZkFzeW5jKHQpO2xldCBhPW4uZ2V0KCJOUyIpO2lmKCFhfHxvLmhhcyhhKSljb250aW51ZTthPXN0cmluZ1RvUERGU3RyaW5nKGEsITEpO2NvbnN0IHI9YXdhaXQgdGhpcy4jdnQobiwhMCxlKTtvLnNldChhLHIpfWlmKGIpZm9yKGNvbnN0IHQgb2YgYilsLnB1c2goYXdhaXQgdGhpcy4jdnQodCwhMCxlKSk7aWYodylmb3IoY29uc3QgdCBvZiB3KWYucHVzaChhd2FpdCB0aGlzLiN2dCh0LCEwLGUpKTtsZXQgdj11LmRpY3QuZ2V0KCJLIik7aWYodil7dj1BcnJheS5pc0FycmF5KHYpP3Y6W3ZdO2ZvcihsZXQgdCBvZiB2KXtjb25zdCBuPXQgaW5zdGFuY2VvZiBSZWY/dDpudWxsO2lmKG4mJmouaGFzKG4pKWNvbnRpbnVlO3Q9YXdhaXQgZS5mZXRjaElmUmVmQXN5bmModCk7Y29uc3Qgcj1hd2FpdCB0aGlzLiNTdChuLHQsZSxqLGsseSxxKTtyJiZhLnB1c2gocil9Zm9yKGNvbnN0W2UsdF1vZiBtfHxbXSl7Y29uc3QgYT1uLmdldCh0KSxzPWsuZ2V0KGUpfHxlO2E/ci5zZXQocyxhKTpyLmRlbGV0ZShzKX19fWZvcihjb25zdFtlLFt0LGFdXW9mIG4pe2lmKCFhKXtuLmRlbGV0ZShlKTtjb250aW51ZX1pZighQXJyYXkuaXNBcnJheShhKSl7Y29uc3Qgcj10LmdldChhKTt2b2lkIDA9PT1yP24uZGVsZXRlKGUpOm4uc2V0KGUscik7Y29udGludWV9Y29uc3Qgcj1hLm1hcChlPT5lIGluc3RhbmNlb2YgUmVmJiZ0LmdldChlKXx8bnVsbCk7MD09PXIubGVuZ3RofHxyLmV2ZXJ5KGU9Pm51bGw9PT1lKT9uLmRlbGV0ZShlKTpuLnNldChlLHIpfXRoaXMuY3VycmVudERvY3VtZW50PW51bGx9I0F0KGUpe2Zvcihjb25zdCB0IG9mIGUpe2lmKCF0LmRlc3RpbmF0aW9ucyljb250aW51ZTtjb25zdHtkZXN0aW5hdGlvbnM6ZSxwYWdlc01hcDpufT10LGE9dC5kZXN0aW5hdGlvbnM9bmV3IE1hcDtmb3IoY29uc3RbdCxyXW9mIE9iamVjdC5lbnRyaWVzKGUpKXtjb25zdCBlPXJbMF0scz1uLmdldChlKTtpZihzKXsocy5wb2ludGluZ05hbWVkRGVzdGluYXRpb25zfHw9bmV3IFNldCkuYWRkKHQpO2Euc2V0KHQscil9fX19I0Z0KCl7Y29uc3R7bmFtZWREZXN0aW5hdGlvbnM6ZX09dGhpcztmb3IobGV0IHQ9MCxuPXRoaXMub2xkUGFnZXMubGVuZ3RoO3Q8bjt0Kyspe2NvbnN0IG49dGhpcy5vbGRQYWdlc1t0XSx7ZG9jdW1lbnREYXRhOntkZXN0aW5hdGlvbnM6YSxkZWR1cE5hbWVkRGVzdGluYXRpb25zOnIsdXNlZE5hbWVkRGVzdGluYXRpb25zOnN9fT1uO2xldHtwb2ludGluZ05hbWVkRGVzdGluYXRpb25zOml9PW47aWYoaSl7bi5wb2ludGluZ05hbWVkRGVzdGluYXRpb25zPWk9aS5pbnRlcnNlY3Rpb24ocyk7Zm9yKGNvbnN0IG4gb2YgaSl7aWYoIXMuaGFzKG4pKWNvbnRpbnVlO2NvbnN0IGk9YS5nZXQobikuc2xpY2UoKTtpZighZS5oYXMobikpe2Uuc2V0KG4saSk7Y29udGludWV9Y29uc3Qgbz1gJHtufV9wJHt0KzF9YDtyLnNldChuLG8pO2Uuc2V0KG8saSl9fX19I0R0KGUsdCl7aWYoMD09PXQuc2l6ZSlyZXR1cm47Y29uc3QgZml4RGVzdGluYXRpb249KGUsbixhKT0+eyJzdHJpbmciPT10eXBlb2YgYSYmZS5zZXQobix0LmdldChzdHJpbmdUb1BERlN0cmluZyhhLCEwKSl8fGEpfTtmb3IoY29uc3QgdCBvZiBlKXtjb25zdCBlPXRoaXMueHJlZlt0Lm51bV07aWYoIWlzTmFtZShlLmdldCgiU3VidHlwZSIpLCJMaW5rIikpY29udGludWU7Y29uc3Qgbj1lLmdldCgiQSIpO2lmKG4gaW5zdGFuY2VvZiBEaWN0JiZuLmhhcygiRCIpKXtjb25zdCBlPW4uZ2V0KCJEIik7Zml4RGVzdGluYXRpb24obiwiRCIsZSk7Y29udGludWV9Y29uc3QgYT1lLmdldCgiRGVzdCIpO2ZpeERlc3RpbmF0aW9uKGUsIkRlc3QiLGEpfX1hc3luYyNDdCgpe2lmKCF0aGlzLmhhc1NpbmdsZUZpbGUpcmV0dXJuO2NvbnN0e2RvY3VtZW50RGF0YTp7ZG9jdW1lbnQ6ZSxwYWdlTGFiZWxzOnR9fT10aGlzLm9sZFBhZ2VzWzBdO2lmKCF0KXJldHVybjtjb25zdCBuPWUubnVtUGFnZXMsYT1bXSxyPW5ldyBTZXQodGhpcy5vbGRQYWdlcy5tYXAoKHtwYWdlOntwYWdlSW5kZXg6ZX19KT0+ZSkpO2xldCBzPW51bGwsaT0tMTtmb3IobGV0IGU9MDtlPG47ZSsrKXtjb25zdCBuPXQuZ2V0KGUpO2lmKG4pe3M9bjtpPXMuaGFzKCJTdCIpP2U6LTF9aWYoci5oYXMoZSkpe2lmKC0xIT09aSl7Y29uc3QgdD1zLmdldCgiU3QiKTtzPXRoaXMuY2xvbmVEaWN0KHMpO3Muc2V0KCJTdCIsdCsoZS1pKSk7aT0tMX1hLnB1c2gocyl9fXM9YVswXTtsZXQgbz0wO2NvbnN0IGw9dGhpcy5wYWdlTGFiZWxzPVtbMCxzXV07Zm9yKGxldCBlPTAsdD1hLmxlbmd0aDtlPHQ7ZSsrKXtjb25zdCB0PWFbZV07aWYodCE9PXMpe289ZTtzPXQ7bC5wdXNoKFtvLHNdKX19fWFzeW5jI090KGUpe2NvbnN0e3BhZ2U6dCxkb2N1bWVudERhdGE6bixhbm5vdGF0aW9uczphLHBvaW50aW5nTmFtZWREZXN0aW5hdGlvbnM6cn09dGhpcy5vbGRQYWdlc1tlXTt0aGlzLmN1cnJlbnREb2N1bWVudD1uO2NvbnN0e2RlZHVwTmFtZWREZXN0aW5hdGlvbnM6cyxvbGRSZWZNYXBwaW5nOml9PW4se3hyZWY6byxyb3RhdGU6bCxtZWRpYUJveDpmLHJlc291cmNlczpjLHJlZjpofT10LHU9dGhpcy5uZXdSZWYsbT10aGlzLnhyZWZbdS5udW1dPXRoaXMuY2xvbmVEaWN0KHQucGFnZURpY3QpO2kucHV0KGgsdSk7aWYocilmb3IoY29uc3QgZSBvZiByKXtjb25zdCB0PXMuZ2V0KGUpfHxlO3RoaXMubmFtZWREZXN0aW5hdGlvbnMuZ2V0KHQpWzBdPXV9Zm9yKGNvbnN0IGUgb2ZbIlJvdGF0ZSIsIk1lZGlhQm94IiwiQ3JvcEJveCIsIkJsZWVkQm94IiwiVHJpbUJveCIsIkFydEJveCIsIlJlc291cmNlcyIsIkFubm90cyIsIlBhcmVudCIsIlVzZXJVbml0Il0pbS5kZWxldGUoZSk7Y29uc3QgcD10aGlzLm5ld1JlZkNvdW50O2F3YWl0IHRoaXMuI3Z0KG0sITEsbyk7bS5zZXQoIlJvdGF0ZSIsbCk7bS5zZXQoIk1lZGlhQm94IixmKTtmb3IoY29uc3QgZSBvZlsiQ3JvcEJveCIsIkJsZWVkQm94IiwiVHJpbUJveCIsIkFydEJveCJdKXtjb25zdCBuPXQuZ2V0Qm91bmRpbmdCb3goZSk7bj8uc29tZSgoZSx0KT0+ZSE9PWZbdF0pJiZtLnNldChlLG4pfWNvbnN0IGQ9dC51c2VyVW5pdDsxIT09ZCYmbS5zZXQoIlVzZXJVbml0IixkKTttLnNldElmRGljdCgiUmVzb3VyY2VzIixhd2FpdCB0aGlzLiN2dChjLCEwLG8pKTtpZihhKXtjb25zdCBlPWF3YWl0IHRoaXMuI3Z0KGEsITAsbyk7dGhpcy4jRHQoZSxzKTttLnNldElmQXJyYXkoIkFubm90cyIsZSl9aWYodGhpcy51c2VPYmplY3RTdHJlYW1zKXtjb25zdCBlPXRoaXMubmV3UmVmQ291bnQsdD1bXTtmb3IobGV0IG49cDtuPGU7bisrKXt0aGlzLnhyZWZbbl1pbnN0YW5jZW9mIEJhc2VTdHJlYW18fHQucHVzaChSZWYuZ2V0KG4sMCkpfWZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSs9NjU1MzUpe2NvbnN0IG49dGhpcy5uZXdSZWY7dGhpcy5vYmpTdHJlYW1SZWZzLmFkZChuLm51bSk7dGhpcy54cmVmW24ubnVtXT10LnNsaWNlKGUsZSs2NTUzNSl9fXRoaXMuY3VycmVudERvY3VtZW50PW51bGw7cmV0dXJuIHV9I010KCl7Y29uc3R7bmV3UGFnZXM6ZSxyb290RGljdDp0LHBhZ2VzUmVmOm4scGFnZXNEaWN0OmF9PXRoaXM7dC5zZXQoIlBhZ2VzIixuKTthLnNldElmTmFtZSgiVHlwZSIsIlBhZ2VzIik7YS5zZXQoIkNvdW50IixlLmxlbmd0aCk7Y29uc3Qgcj1be2RpY3Q6YSxraWRzOmUscGFyZW50UmVmOm59XTtmb3IoO3IubGVuZ3RoPjA7KXtjb25zdHtkaWN0OmUsa2lkczp0LHBhcmVudFJlZjpufT1yLnBvcCgpO2lmKHQubGVuZ3RoPD0xNil7ZS5zZXQoIktpZHMiLHQpO2Zvcihjb25zdCBlIG9mIHQpdGhpcy54cmVmW2UubnVtXS5zZXQoIlBhcmVudCIsbik7Y29udGludWV9Y29uc3QgYT1NYXRoLm1heCgxNixNYXRoLmNlaWwodC5sZW5ndGgvMTYpKSxzPVtdO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSs9YSlzLnB1c2godC5zbGljZShlLGUrYSkpO2NvbnN0IGk9W107ZS5zZXQoIktpZHMiLGkpO2Zvcihjb25zdCBlIG9mIHMpe2NvbnN0W3QsYV09dGhpcy5uZXdEaWN0O2kucHVzaCh0KTthLnNldElmTmFtZSgiVHlwZSIsIlBhZ2VzIik7YS5zZXQoIlBhcmVudCIsbik7YS5zZXQoIkNvdW50IixlLmxlbmd0aCk7ci5wdXNoKHtkaWN0OmEsa2lkczplLHBhcmVudFJlZjp0fSl9fX0jUHQoZSx0KXtjb25zdCBuPWUuc29ydCh0PyhbZV0sW3RdKT0+ZS5sb2NhbGVDb21wYXJlKHQpOihbZV0sW3RdKT0+ZS10KSxbYSxyXT10aGlzLm5ld0RpY3Qscz1be2RpY3Q6cixlbnRyaWVzOm59XSxpPXQ/Ik5hbWVzIjoiTnVtcyI7Zm9yKDtzLmxlbmd0aD4wOyl7Y29uc3R7ZGljdDplLGVudHJpZXM6dH09cy5wb3AoKTtpZih0Lmxlbmd0aDw9NjQpe2Uuc2V0KCJMaW1pdHMiLFt0WzBdWzBdLHQuYXQoLTEpWzBdXSk7ZS5zZXQoaSx0LmZsYXQoKSk7Y29udGludWV9Y29uc3Qgbj1bXSxhPU1hdGgubWF4KDY0LE1hdGguY2VpbCh0Lmxlbmd0aC82NCkpO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSs9YSluLnB1c2godC5zbGljZShlLGUrYSkpO2NvbnN0IHI9W107ZS5zZXQoIktpZHMiLHIpO2Zvcihjb25zdCBlIG9mIG4pe2NvbnN0W3Qsbl09dGhpcy5uZXdEaWN0O3IucHVzaCh0KTtuLnNldCgiTGltaXRzIixbZVswXVswXSxlLmF0KC0xKVswXV0pO3MucHVzaCh7ZGljdDpuLGVudHJpZXM6ZX0pfX1yZXR1cm4gYX0jRXQoKXtjb25zdHtwYWdlTGFiZWxzOmV9PXRoaXM7aWYoIWV8fDA9PT1lLmxlbmd0aClyZXR1cm47Y29uc3R7cm9vdERpY3Q6dH09dGhpcyxuPXRoaXMuI1B0KHRoaXMucGFnZUxhYmVscywhMSk7dC5zZXQoIlBhZ2VMYWJlbHMiLG4pfSNOdCgpe2NvbnN0e25hbWVkRGVzdGluYXRpb25zOmV9PXRoaXM7aWYoMCE9PWUuc2l6ZSl7aWYoIXRoaXMubmFtZXNEaWN0KXtbdGhpcy5uYW1lc1JlZix0aGlzLm5hbWVzRGljdF09dGhpcy5uZXdEaWN0O3RoaXMucm9vdERpY3Quc2V0KCJOYW1lcyIsdGhpcy5uYW1lc1JlZil9dGhpcy5uYW1lc0RpY3Quc2V0KCJEZXN0cyIsdGhpcy4jUHQoQXJyYXkuZnJvbShlLmVudHJpZXMoKSksITApKX19I3p0KCl7Y29uc3R7c3RydWN0VHJlZUtpZHM6ZX09dGhpcztpZighZXx8MD09PWUubGVuZ3RoKXJldHVybjtjb25zdHtyb290RGljdDp0fT10aGlzLG49dGhpcy5uZXdSZWYsYT10aGlzLnhyZWZbbi5udW1dPW5ldyBEaWN0O2Euc2V0SWZOYW1lKCJUeXBlIiwiU3RydWN0VHJlZVJvb3QiKTthLnNldElmQXJyYXkoIksiLGUpO2Zvcihjb25zdCB0IG9mIGUpe2NvbnN0IGU9dGhpcy54cmVmW3QubnVtXSxhPWUuZ2V0KCJUeXBlIik7YSYmIWlzTmFtZShhLCJTdHJ1Y3RFbGVtIil8fGUuc2V0KCJQIixuKX1pZih0aGlzLnBhcmVudFRyZWUuc2l6ZT4wKXtjb25zdCBlPXRoaXMuI1B0KEFycmF5LmZyb20odGhpcy5wYXJlbnRUcmVlLmVudHJpZXMoKSksITEpO3RoaXMueHJlZltlLm51bV0uc2V0SWZOYW1lKCJUeXBlIiwiUGFyZW50VHJlZSIpO2Euc2V0KCJQYXJlbnRUcmVlIixlKTthLnNldCgiUGFyZW50VHJlZU5leHRLZXkiLHRoaXMucGFyZW50VHJlZS5zaXplKX1pZih0aGlzLmlkVHJlZS5zaXplPjApe2NvbnN0IGU9dGhpcy4jUHQoQXJyYXkuZnJvbSh0aGlzLmlkVHJlZS5lbnRyaWVzKCkpLCEwKTt0aGlzLnhyZWZbZS5udW1dLnNldElmTmFtZSgiVHlwZSIsIklEVHJlZSIpO2Euc2V0KCJJRFRyZWUiLGUpfWlmKHRoaXMuY2xhc3NNYXAuc2l6ZT4wKXtjb25zdCBlPXRoaXMubmV3UmVmO3RoaXMueHJlZltlLm51bV09dGhpcy5jbGFzc01hcDthLnNldCgiQ2xhc3NNYXAiLGUpfWlmKHRoaXMucm9sZU1hcC5zaXplPjApe2NvbnN0IGU9dGhpcy5uZXdSZWY7dGhpcy54cmVmW2UubnVtXT10aGlzLnJvbGVNYXA7YS5zZXQoIlJvbGVNYXAiLGUpfWlmKHRoaXMubmFtZXNwYWNlcy5zaXplPjApe2NvbnN0IGU9dGhpcy5uZXdSZWY7dGhpcy54cmVmW2UubnVtXT1BcnJheS5mcm9tKHRoaXMubmFtZXNwYWNlcy52YWx1ZXMoKSk7YS5zZXQoIk5hbWVzcGFjZXMiLGUpfWlmKHRoaXMuc3RydWN0VHJlZUFGLmxlbmd0aD4wKXtjb25zdCBlPXRoaXMubmV3UmVmO3RoaXMueHJlZltlLm51bV09dGhpcy5zdHJ1Y3RUcmVlQUY7YS5zZXQoIkFGIixlKX1pZih0aGlzLnN0cnVjdFRyZWVQcm9udW5jaWF0aW9uTGV4aWNvbi5sZW5ndGg+MCl7Y29uc3QgZT10aGlzLm5ld1JlZjt0aGlzLnhyZWZbZS5udW1dPXRoaXMuc3RydWN0VHJlZVByb251bmNpYXRpb25MZXhpY29uO2Euc2V0KCJQcm9udW5jaWF0aW9uTGV4aWNvbiIsZSl9dC5zZXQoIlN0cnVjdFRyZWVSb290IixuKX1hc3luYyNfdCgpe2NvbnN0e3Jvb3REaWN0OmV9PXRoaXM7ZS5zZXRJZk5hbWUoIlR5cGUiLCJDYXRhbG9nIik7ZS5zZXRJZk5hbWUoIlZlcnNpb24iLHRoaXMudmVyc2lvbik7dGhpcy4jTXQoKTt0aGlzLiNFdCgpO3RoaXMuI050KCk7dGhpcy4jenQoKX0jTHQoKXtjb25zdCBlPW5ldyBNYXA7aWYodGhpcy5oYXNTaW5nbGVGaWxlKXtjb25zdHt4cmVmOnt0cmFpbGVyOnR9fT10aGlzLm9sZFBhZ2VzWzBdLmRvY3VtZW50RGF0YS5kb2N1bWVudCxuPXQuZ2V0KCJJbmZvIik7Zm9yKGNvbnN0W3QsYV1vZiBufHxbXSkic3RyaW5nIj09dHlwZW9mIGEmJmUuc2V0KHQsc3RyaW5nVG9QREZTdHJpbmcoYSkpfWUuZGVsZXRlKCJNb2REYXRlIik7ZS5zZXQoIkNyZWF0aW9uRGF0ZSIsZ2V0TW9kaWZpY2F0aW9uRGF0ZSgpKTtlLnNldCgiQ3JlYXRvciIsIlBERi5qcyIpO2Uuc2V0KCJQcm9kdWNlciIsIkZpcmVmb3giKTt0aGlzLmF1dGhvciYmZS5zZXQoIkF1dGhvciIsdGhpcy5hdXRob3IpO3RoaXMudGl0bGUmJmUuc2V0KCJUaXRsZSIsdGhpcy50aXRsZSk7Zm9yKGNvbnN0W3Qsbl1vZiBlKXRoaXMuaW5mb0RpY3Quc2V0KHQsc3RyaW5nVG9Bc2NpaU9yVVRGMTZCRShuKSk7cmV0dXJuIGV9YXN5bmMjVXQoKXtpZighdGhpcy5oYXNTaW5nbGVGaWxlKXJldHVybltudWxsLG51bGwsbnVsbF07Y29uc3R7ZG9jdW1lbnREYXRhOmV9PXRoaXMub2xkUGFnZXNbMF0se2RvY3VtZW50Ont4cmVmOnt0cmFpbGVyOnQsZW5jcnlwdDpufX19PWU7aWYoIXQuaGFzKCJFbmNyeXB0IikpcmV0dXJuW251bGwsbnVsbCxudWxsXTtjb25zdCBhPXQuZ2V0KCJFbmNyeXB0Iik7aWYoIShhIGluc3RhbmNlb2YgRGljdCkpcmV0dXJuW251bGwsbnVsbCxudWxsXTt0aGlzLmN1cnJlbnREb2N1bWVudD1lO2NvbnN0IHI9W2F3YWl0IHRoaXMuI3F0KGEsdC54cmVmKSxuLHQuZ2V0KCJJRCIpXTt0aGlzLmN1cnJlbnREb2N1bWVudD1udWxsO3JldHVybiByfWFzeW5jI1h0KCl7Y29uc3QgZT1uZXcgUmVmU2V0Q2FjaGU7ZS5wdXQoUmVmLmdldCgwLDY1NTM1KSx7ZGF0YTpudWxsfSk7Zm9yKGxldCB0PTEsbj10aGlzLnhyZWYubGVuZ3RoO3Q8bjt0KyspdGhpcy5vYmpTdHJlYW1SZWZzPy5oYXModCk/YXdhaXQgdGhpcy4jV3QoUmVmLmdldCh0LDApLHRoaXMueHJlZlt0XSxlKTplLnB1dChSZWYuZ2V0KHQsMCkse2RhdGE6dGhpcy54cmVmW3RdfSk7cmV0dXJuW2UsdGhpcy5uZXdSZWZdfWFzeW5jI1d0KGUsdCxuKXtjb25zdCBhPVsiIl0scj1bXTtsZXQgcz0wO2NvbnN0IGk9W107Zm9yKGxldCBvPTAsbD10Lmxlbmd0aDtvPGw7bysrKXtjb25zdCBsPXRbb107bi5wdXQobCx7ZGF0YTpudWxsLG9ialN0cmVhbVJlZjplLGluZGV4Om99KTtyLnB1c2goYCR7bC5udW19ICR7c31gKTtjb25zdCBmPXRoaXMueHJlZltsLm51bV07YXdhaXQgd3JpdGVWYWx1ZShmLGksbnVsbCk7Y29uc3QgYz1pLmpvaW4oIiIpO2kubGVuZ3RoPTA7YS5wdXNoKGMpO3MrPWMubGVuZ3RoKzF9YVswXT1yLmpvaW4oIlxuIik7Y29uc3Qgbz1uZXcgU3RyaW5nU3RyZWFtKGEuam9pbigiXG4iKSksbD1vLmRpY3Q9bmV3IERpY3Q7bC5zZXRJZk5hbWUoIlR5cGUiLCJPYmpTdG0iKTtsLnNldCgiTiIsdC5sZW5ndGgpO2wuc2V0KCJGaXJzdCIsYVswXS5sZW5ndGgrMSk7bi5wdXQoZSx7ZGF0YTpvfSl9YXN5bmMgd3JpdGVQREYoKXthd2FpdCB0aGlzLiNfdCgpO2NvbnN0IGU9dGhpcy4jTHQoKSxbdCxuLGFdPWF3YWl0IHRoaXMuI1V0KCksW3Isc109YXdhaXQgdGhpcy4jWHQoKSxpPVsuLi5gJVBERi0ke3RoaXMudmVyc2lvbn1cbiVgLnNwbGl0KCIiKS5tYXAoZT0+ZS5jaGFyQ29kZUF0KDApKSwyNTAsMjIyLDI1MCwyMDZdO3JldHVybiBpbmNyZW1lbnRhbFVwZGF0ZSh7b3JpZ2luYWxEYXRhOm5ldyBVaW50OEFycmF5KGkpLGNoYW5nZXM6cix4cmVmSW5mbzp7c3RhcnRYUmVmOm51bGwscm9vdFJlZjp0aGlzLnJvb3RSZWYsaW5mb1JlZjp0aGlzLmluZm9SZWYsZW5jcnlwdFJlZjp0LG5ld1JlZjpzLGZpbGVJZHM6YXx8W251bGwsbnVsbF0saW5mb01hcDplfSx1c2VYcmVmU3RyZWFtOnRoaXMudXNlT2JqZWN0U3RyZWFtcyx4cmVmOntlbmNyeXB0Om4sZW5jcnlwdFJlZjp0fX0pfX1jbGFzcyBCYXNlUERGU3RyZWFteyNLdD1udWxsOyNWdD1udWxsO19mdWxsUmVhZGVyPW51bGw7X3JhbmdlUmVhZGVycz1uZXcgU2V0O19zb3VyY2U9bnVsbDtjb25zdHJ1Y3RvcihlLHQsbil7dGhpcy5fc291cmNlPWU7dGhpcy4jS3Q9dDt0aGlzLiNWdD1ufWdldCBfcHJvZ3Jlc3NpdmVEYXRhTGVuZ3RoKCl7cmV0dXJuIHRoaXMuX2Z1bGxSZWFkZXI/Ll9sb2FkZWQ/PzB9Z2V0RnVsbFJlYWRlcigpe2Fzc2VydCghdGhpcy5fZnVsbFJlYWRlciwiQmFzZVBERlN0cmVhbS5nZXRGdWxsUmVhZGVyIGNhbiBvbmx5IGJlIGNhbGxlZCBvbmNlLiIpO3JldHVybiB0aGlzLl9mdWxsUmVhZGVyPW5ldyB0aGlzLiNLdCh0aGlzKX1nZXRSYW5nZVJlYWRlcihlLHQpe2lmKHQ8PXRoaXMuX3Byb2dyZXNzaXZlRGF0YUxlbmd0aClyZXR1cm4gbnVsbDtjb25zdCBuPW5ldyB0aGlzLiNWdCh0aGlzLGUsdCk7dGhpcy5fcmFuZ2VSZWFkZXJzLmFkZChuKTtyZXR1cm4gbn1jYW5jZWxBbGxSZXF1ZXN0cyhlKXt0aGlzLl9mdWxsUmVhZGVyPy5jYW5jZWwoZSk7Zm9yKGNvbnN0IHQgb2YgbmV3IFNldCh0aGlzLl9yYW5nZVJlYWRlcnMpKXQuY2FuY2VsKGUpfX1jbGFzcyBCYXNlUERGU3RyZWFtUmVhZGVye29uUHJvZ3Jlc3M9bnVsbDtfY29udGVudExlbmd0aD0wO19maWxlbmFtZT1udWxsO19oZWFkZXJzQ2FwYWJpbGl0eT1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKTtfaXNSYW5nZVN1cHBvcnRlZD0hMTtfaXNTdHJlYW1pbmdTdXBwb3J0ZWQ9ITE7X2xvYWRlZD0wO19zdHJlYW09bnVsbDtjb25zdHJ1Y3RvcihlKXt0aGlzLl9zdHJlYW09ZX1fY2FsbE9uUHJvZ3Jlc3MoKXt0aGlzLm9uUHJvZ3Jlc3M/Lih7bG9hZGVkOnRoaXMuX2xvYWRlZCx0b3RhbDp0aGlzLl9jb250ZW50TGVuZ3RofSl9Z2V0IGhlYWRlcnNSZWFkeSgpe3JldHVybiB0aGlzLl9oZWFkZXJzQ2FwYWJpbGl0eS5wcm9taXNlfWdldCBmaWxlbmFtZSgpe3JldHVybiB0aGlzLl9maWxlbmFtZX1nZXQgY29udGVudExlbmd0aCgpe3JldHVybiB0aGlzLl9jb250ZW50TGVuZ3RofWdldCBpc1JhbmdlU3VwcG9ydGVkKCl7cmV0dXJuIHRoaXMuX2lzUmFuZ2VTdXBwb3J0ZWR9Z2V0IGlzU3RyZWFtaW5nU3VwcG9ydGVkKCl7cmV0dXJuIHRoaXMuX2lzU3RyZWFtaW5nU3VwcG9ydGVkfWFzeW5jIHJlYWQoKXt1bnJlYWNoYWJsZSgiQWJzdHJhY3QgbWV0aG9kIGByZWFkYCBjYWxsZWQiKX1jYW5jZWwoZSl7dW5yZWFjaGFibGUoIkFic3RyYWN0IG1ldGhvZCBgY2FuY2VsYCBjYWxsZWQiKX19Y2xhc3MgQmFzZVBERlN0cmVhbVJhbmdlUmVhZGVye19zdHJlYW09bnVsbDtjb25zdHJ1Y3RvcihlLHQsbil7dGhpcy5fc3RyZWFtPWV9YXN5bmMgcmVhZCgpe3VucmVhY2hhYmxlKCJBYnN0cmFjdCBtZXRob2QgYHJlYWRgIGNhbGxlZCIpfWNhbmNlbChlKXt1bnJlYWNoYWJsZSgiQWJzdHJhY3QgbWV0aG9kIGBjYW5jZWxgIGNhbGxlZCIpfX1jbGFzcyBQREZXb3JrZXJTdHJlYW0gZXh0ZW5kcyBCYXNlUERGU3RyZWFte2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUsUERGV29ya2VyU3RyZWFtUmVhZGVyLFBERldvcmtlclN0cmVhbVJhbmdlUmVhZGVyKX19Y2xhc3MgUERGV29ya2VyU3RyZWFtUmVhZGVyIGV4dGVuZHMgQmFzZVBERlN0cmVhbVJlYWRlcntfcmVhZGVyPW51bGw7Y29uc3RydWN0b3IoZSl7c3VwZXIoZSk7Y29uc3R7bXNnSGFuZGxlcjp0fT1lLl9zb3VyY2Usbj10LnNlbmRXaXRoU3RyZWFtKCJHZXRSZWFkZXIiKTt0aGlzLl9yZWFkZXI9bi5nZXRSZWFkZXIoKTt0LnNlbmRXaXRoUHJvbWlzZSgiUmVhZGVySGVhZGVyc1JlYWR5IikudGhlbihlPT57dGhpcy5fY29udGVudExlbmd0aD1lLmNvbnRlbnRMZW5ndGg7dGhpcy5faXNTdHJlYW1pbmdTdXBwb3J0ZWQ9ZS5pc1N0cmVhbWluZ1N1cHBvcnRlZDt0aGlzLl9pc1JhbmdlU3VwcG9ydGVkPWUuaXNSYW5nZVN1cHBvcnRlZDt0aGlzLl9oZWFkZXJzQ2FwYWJpbGl0eS5yZXNvbHZlKCl9LHRoaXMuX2hlYWRlcnNDYXBhYmlsaXR5LnJlamVjdCl9YXN5bmMgcmVhZCgpe2NvbnN0e3ZhbHVlOmUsZG9uZTp0fT1hd2FpdCB0aGlzLl9yZWFkZXIucmVhZCgpO3JldHVybiB0P3t2YWx1ZTp2b2lkIDAsZG9uZTohMH06e3ZhbHVlOmUuYnVmZmVyLGRvbmU6ITF9fWNhbmNlbChlKXt0aGlzLl9yZWFkZXIuY2FuY2VsKGUpfX1jbGFzcyBQREZXb3JrZXJTdHJlYW1SYW5nZVJlYWRlciBleHRlbmRzIEJhc2VQREZTdHJlYW1SYW5nZVJlYWRlcntfcmVhZGVyPW51bGw7Y29uc3RydWN0b3IoZSx0LG4pe3N1cGVyKGUsdCxuKTtjb25zdHttc2dIYW5kbGVyOmF9PWUuX3NvdXJjZSxyPWEuc2VuZFdpdGhTdHJlYW0oIkdldFJhbmdlUmVhZGVyIix7YmVnaW46dCxlbmQ6bn0pO3RoaXMuX3JlYWRlcj1yLmdldFJlYWRlcigpfWFzeW5jIHJlYWQoKXtjb25zdHt2YWx1ZTplLGRvbmU6dH09YXdhaXQgdGhpcy5fcmVhZGVyLnJlYWQoKTtyZXR1cm4gdD97dmFsdWU6dm9pZCAwLGRvbmU6ITB9Ont2YWx1ZTplLmJ1ZmZlcixkb25lOiExfX1jYW5jZWwoZSl7dGhpcy5fcmVhZGVyLmNhbmNlbChlKX19Y2xhc3MgV29ya2VyVGFza3tjb25zdHJ1Y3RvcihlKXt0aGlzLm5hbWU9ZTt0aGlzLnRlcm1pbmF0ZWQ9ITE7dGhpcy5fY2FwYWJpbGl0eT1Qcm9taXNlLndpdGhSZXNvbHZlcnMoKX1nZXQgZmluaXNoZWQoKXtyZXR1cm4gdGhpcy5fY2FwYWJpbGl0eS5wcm9taXNlfWZpbmlzaCgpe3RoaXMuX2NhcGFiaWxpdHkucmVzb2x2ZSgpfXRlcm1pbmF0ZSgpe3RoaXMudGVybWluYXRlZD0hMH1lbnN1cmVOb3RUZXJtaW5hdGVkKCl7aWYodGhpcy50ZXJtaW5hdGVkKXRocm93IG5ldyBFcnJvcigiV29ya2VyIHRhc2sgd2FzIHRlcm1pbmF0ZWQiKX19Y2xhc3MgV29ya2VyTWVzc2FnZUhhbmRsZXJ7c3RhdGljeyJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93JiYhbiYmInVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmJiYiZnVuY3Rpb24iPT10eXBlb2Ygc2VsZi5wb3N0TWVzc2FnZSYmIm9ubWVzc2FnZSJpbiBzZWxmJiZ0aGlzLmluaXRpYWxpemVGcm9tUG9ydChzZWxmKX1zdGF0aWMgc2V0dXAoZSx0KXtsZXQgbj0hMTtlLm9uKCJ0ZXN0Iix0PT57aWYoIW4pe249ITA7ZS5zZW5kKCJ0ZXN0Iix0IGluc3RhbmNlb2YgVWludDhBcnJheSl9fSk7ZS5vbigiY29uZmlndXJlIixlPT57IWZ1bmN0aW9uIHNldFZlcmJvc2l0eUxldmVsKGUpe051bWJlci5pc0ludGVnZXIoZSkmJihhbj1lKX0oZS52ZXJib3NpdHkpfSk7ZS5vbigiR2V0RG9jUmVxdWVzdCIsZT0+dGhpcy5jcmVhdGVEb2N1bWVudEhhbmRsZXIoZSx0KSl9c3RhdGljIGNyZWF0ZURvY3VtZW50SGFuZGxlcihlLHQpe2xldCBuLGE9ITEscj1udWxsO2NvbnN0IHM9bmV3IFNldCxpPWdldFZlcmJvc2l0eUxldmVsKCkse2RvY0lkOm8sYXBpVmVyc2lvbjpsfT1lLGY9IjUuNS4yMDciO2lmKGwhPT1mKXRocm93IG5ldyBFcnJvcihgVGhlIEFQSSB2ZXJzaW9uICIke2x9IiBkb2VzIG5vdCBtYXRjaCB0aGUgV29ya2VyIHZlcnNpb24gIiR7Zn0iLmApO2NvbnN0IGJ1aWxkTXNnPShlLHQpPT5gVGhlIFxgJHtlfS5wcm90b3R5cGVcYCBjb250YWlucyB1bmV4cGVjdGVkIGVudW1lcmFibGUgcHJvcGVydHkgIiR7dH0iLCB0aHVzIGJyZWFraW5nIGUuZy4gXGBmb3IuLi5pblxgIGl0ZXJhdGlvbiBvZiAke2V9cy5gO2Zvcihjb25zdCBlIGlue30pdGhyb3cgbmV3IEVycm9yKGJ1aWxkTXNnKCJPYmplY3QiLGUpKTtmb3IoY29uc3QgZSBpbltdKXRocm93IG5ldyBFcnJvcihidWlsZE1zZygiQXJyYXkiLGUpKTtjb25zdCBjPW8rIl93b3JrZXIiO2xldCBoPW5ldyBNZXNzYWdlSGFuZGxlcihjLG8sdCk7ZnVuY3Rpb24gZW5zdXJlTm90VGVybWluYXRlZCgpe2lmKGEpdGhyb3cgbmV3IEVycm9yKCJXb3JrZXIgd2FzIHRlcm1pbmF0ZWQiKX1mdW5jdGlvbiBzdGFydFdvcmtlclRhc2soZSl7cy5hZGQoZSl9ZnVuY3Rpb24gZmluaXNoV29ya2VyVGFzayhlKXtlLmZpbmlzaCgpO3MuZGVsZXRlKGUpfWFzeW5jIGZ1bmN0aW9uIGxvYWREb2N1bWVudChlKXthd2FpdCBuLmVuc3VyZURvYygiY2hlY2tIZWFkZXIiKTthd2FpdCBuLmVuc3VyZURvYygicGFyc2VTdGFydFhSZWYiKTthd2FpdCBuLmVuc3VyZURvYygicGFyc2UiLFtlXSk7YXdhaXQgbi5lbnN1cmVEb2MoImNoZWNrRmlyc3RQYWdlIixbZV0pO2F3YWl0IG4uZW5zdXJlRG9jKCJjaGVja0xhc3RQYWdlIixbZV0pO2NvbnN0IHQ9YXdhaXQgbi5lbnN1cmVEb2MoImlzUHVyZVhmYSIpO2lmKHQpe2NvbnN0IGU9bmV3IFdvcmtlclRhc2soImxvYWRYZmFSZXNvdXJjZXMiKTtzdGFydFdvcmtlclRhc2soZSk7YXdhaXQgbi5lbnN1cmVEb2MoImxvYWRYZmFSZXNvdXJjZXMiLFtoLGVdKTtmaW5pc2hXb3JrZXJUYXNrKGUpfWNvbnN0W2Escl09YXdhaXQgUHJvbWlzZS5hbGwoW24uZW5zdXJlRG9jKCJudW1QYWdlcyIpLG4uZW5zdXJlRG9jKCJmaW5nZXJwcmludHMiKV0pO3JldHVybntudW1QYWdlczphLGZpbmdlcnByaW50czpyLGh0bWxGb3JYZmE6dD9hd2FpdCBuLmVuc3VyZURvYygiaHRtbEZvclhmYSIpOm51bGx9fWZ1bmN0aW9uIHNldHVwRG9jKGUpe2Z1bmN0aW9uIG9uU3VjY2VzcyhlKXtlbnN1cmVOb3RUZXJtaW5hdGVkKCk7aC5zZW5kKCJHZXREb2MiLHtwZGZJbmZvOmV9KX1mdW5jdGlvbiBvbkZhaWx1cmUoZSl7aWYoIWEpaWYoZSBpbnN0YW5jZW9mIFBhc3N3b3JkRXhjZXB0aW9uKXtjb25zdCB0PW5ldyBXb3JrZXJUYXNrKGBQYXNzd29yZEV4Y2VwdGlvbjogcmVzcG9uc2UgJHtlLmNvZGV9YCk7c3RhcnRXb3JrZXJUYXNrKHQpO2guc2VuZFdpdGhQcm9taXNlKCJQYXNzd29yZFJlcXVlc3QiLGUpLnRoZW4oZnVuY3Rpb24oe3Bhc3N3b3JkOmV9KXtmaW5pc2hXb3JrZXJUYXNrKHQpO24udXBkYXRlUGFzc3dvcmQoZSk7cGRmTWFuYWdlclJlYWR5KCl9KS5jYXRjaChmdW5jdGlvbigpe2ZpbmlzaFdvcmtlclRhc2sodCk7aC5zZW5kKCJEb2NFeGNlcHRpb24iLGUpfSl9ZWxzZSBoLnNlbmQoIkRvY0V4Y2VwdGlvbiIsd3JhcFJlYXNvbihlKSl9ZnVuY3Rpb24gcGRmTWFuYWdlclJlYWR5KCl7ZW5zdXJlTm90VGVybWluYXRlZCgpO2xvYWREb2N1bWVudCghMSkudGhlbihvblN1Y2Nlc3MsZnVuY3Rpb24oZSl7ZW5zdXJlTm90VGVybWluYXRlZCgpO2UgaW5zdGFuY2VvZiBYUmVmUGFyc2VFeGNlcHRpb24/bi5yZXF1ZXN0TG9hZGVkU3RyZWFtKCkudGhlbihmdW5jdGlvbigpe2Vuc3VyZU5vdFRlcm1pbmF0ZWQoKTtsb2FkRG9jdW1lbnQoITApLnRoZW4ob25TdWNjZXNzLG9uRmFpbHVyZSl9KTpvbkZhaWx1cmUoZSl9KX1lbnN1cmVOb3RUZXJtaW5hdGVkKCk7KGFzeW5jIGZ1bmN0aW9uIGdldFBkZk1hbmFnZXIoe2RhdGE6ZSxwYXNzd29yZDp0LGRpc2FibGVBdXRvRmV0Y2g6bixyYW5nZUNodW5rU2l6ZTphLGxlbmd0aDpzLGRvY0Jhc2VVcmw6aSxlbmFibGVYZmE6bCxldmFsdWF0b3JPcHRpb25zOmZ9KXtjb25zdCBjPXtzb3VyY2U6bnVsbCxkaXNhYmxlQXV0b0ZldGNoOm4sZG9jQmFzZVVybDppLGRvY0lkOm8sZW5hYmxlWGZhOmwsZXZhbHVhdG9yT3B0aW9uczpmLGhhbmRsZXI6aCxsZW5ndGg6cyxwYXNzd29yZDp0LHJhbmdlQ2h1bmtTaXplOmF9O2lmKGUpe2Muc291cmNlPWU7cmV0dXJuIG5ldyBMb2NhbFBkZk1hbmFnZXIoYyl9Y29uc3QgdT1uZXcgUERGV29ya2VyU3RyZWFtKHttc2dIYW5kbGVyOmh9KSxtPXUuZ2V0RnVsbFJlYWRlcigpLHA9UHJvbWlzZS53aXRoUmVzb2x2ZXJzKCk7bGV0IGQsZz1bXSxiPTA7bS5oZWFkZXJzUmVhZHkudGhlbihmdW5jdGlvbigpe2lmKG0uaXNSYW5nZVN1cHBvcnRlZCl7Yy5zb3VyY2U9dTtjLmxlbmd0aD1tLmNvbnRlbnRMZW5ndGg7Yy5kaXNhYmxlQXV0b0ZldGNofHw9bS5pc1N0cmVhbWluZ1N1cHBvcnRlZDtkPW5ldyBOZXR3b3JrUGRmTWFuYWdlcihjKTtmb3IoY29uc3QgZSBvZiBnKWQuc2VuZFByb2dyZXNzaXZlRGF0YShlKTtnPVtdO3AucmVzb2x2ZShkKTtyPW51bGx9fSkuY2F0Y2goZnVuY3Rpb24oZSl7cC5yZWplY3QoZSk7cj1udWxsfSk7bmV3IFByb21pc2UoZnVuY3Rpb24oZSx0KXtjb25zdCByZWFkQ2h1bms9ZnVuY3Rpb24oe3ZhbHVlOmUsZG9uZTpufSl7dHJ5e2Vuc3VyZU5vdFRlcm1pbmF0ZWQoKTtpZihuKXtpZighZCl7Y29uc3QgZT1hcnJheUJ1ZmZlcnNUb0J5dGVzKGcpO2c9W107cyYmZS5sZW5ndGghPT1zJiZ3YXJuKCJyZXBvcnRlZCBIVFRQIGxlbmd0aCBpcyBkaWZmZXJlbnQgZnJvbSBhY3R1YWwiKTtjLnNvdXJjZT1lO2Q9bmV3IExvY2FsUGRmTWFuYWdlcihjKTtwLnJlc29sdmUoZCl9cj1udWxsO3JldHVybn1iKz1lLmJ5dGVMZW5ndGg7bS5pc1N0cmVhbWluZ1N1cHBvcnRlZHx8aC5zZW5kKCJEb2NQcm9ncmVzcyIse2xvYWRlZDpiLHRvdGFsOk1hdGgubWF4KGIsbS5jb250ZW50TGVuZ3RofHwwKX0pO2Q/ZC5zZW5kUHJvZ3Jlc3NpdmVEYXRhKGUpOmcucHVzaChlKTttLnJlYWQoKS50aGVuKHJlYWRDaHVuayx0KX1jYXRjaChlKXt0KGUpfX07bS5yZWFkKCkudGhlbihyZWFkQ2h1bmssdCl9KS5jYXRjaChmdW5jdGlvbihlKXtwLnJlamVjdChlKTtyPW51bGx9KTtyPWU9Pnt1LmNhbmNlbEFsbFJlcXVlc3RzKGUpfTtyZXR1cm4gcC5wcm9taXNlfSkoZSkudGhlbihmdW5jdGlvbihlKXtpZihhKXtlLnRlcm1pbmF0ZShuZXcgQWJvcnRFeGNlcHRpb24oIldvcmtlciB3YXMgdGVybWluYXRlZC4iKSk7dGhyb3cgbmV3IEVycm9yKCJXb3JrZXIgd2FzIHRlcm1pbmF0ZWQiKX1uPWU7bi5yZXF1ZXN0TG9hZGVkU3RyZWFtKCEwKS50aGVuKGU9PntoLnNlbmQoIkRhdGFMb2FkZWQiLHtsZW5ndGg6ZS5ieXRlcy5ieXRlTGVuZ3RofSl9KX0pLnRoZW4ocGRmTWFuYWdlclJlYWR5LG9uRmFpbHVyZSl9aC5vbigiR2V0UGFnZSIsZnVuY3Rpb24oZSl7cmV0dXJuIG4uZ2V0UGFnZShlLnBhZ2VJbmRleCkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gUHJvbWlzZS5hbGwoW24uZW5zdXJlKGUsInJvdGF0ZSIpLG4uZW5zdXJlKGUsInJlZiIpLG4uZW5zdXJlKGUsInVzZXJVbml0Iiksbi5lbnN1cmUoZSwidmlldyIpXSkudGhlbihmdW5jdGlvbihbZSx0LG4sYV0pe3JldHVybntyb3RhdGU6ZSxyZWY6dCxyZWZTdHI6dD8udG9TdHJpbmcoKT8/bnVsbCx1c2VyVW5pdDpuLHZpZXc6YX19KX0pfSk7aC5vbigiR2V0UGFnZUluZGV4IixmdW5jdGlvbihlKXtjb25zdCB0PVJlZi5nZXQoZS5udW0sZS5nZW4pO3JldHVybiBuLmVuc3VyZUNhdGFsb2coImdldFBhZ2VJbmRleCIsW3RdKX0pO2gub24oIkdldERlc3RpbmF0aW9ucyIsZnVuY3Rpb24oZSl7cmV0dXJuIG4uZW5zdXJlQ2F0YWxvZygiZGVzdGluYXRpb25zIil9KTtoLm9uKCJHZXREZXN0aW5hdGlvbiIsZnVuY3Rpb24oZSl7cmV0dXJuIG4uZW5zdXJlQ2F0YWxvZygiZ2V0RGVzdGluYXRpb24iLFtlLmlkXSl9KTtoLm9uKCJHZXRQYWdlTGFiZWxzIixmdW5jdGlvbihlKXtyZXR1cm4gbi5lbnN1cmVDYXRhbG9nKCJwYWdlTGFiZWxzIil9KTtoLm9uKCJHZXRQYWdlTGF5b3V0IixmdW5jdGlvbihlKXtyZXR1cm4gbi5lbnN1cmVDYXRhbG9nKCJwYWdlTGF5b3V0Iil9KTtoLm9uKCJHZXRQYWdlTW9kZSIsZnVuY3Rpb24oZSl7cmV0dXJuIG4uZW5zdXJlQ2F0YWxvZygicGFnZU1vZGUiKX0pO2gub24oIkdldFZpZXdlclByZWZlcmVuY2VzIixmdW5jdGlvbihlKXtyZXR1cm4gbi5lbnN1cmVDYXRhbG9nKCJ2aWV3ZXJQcmVmZXJlbmNlcyIpfSk7aC5vbigiR2V0T3BlbkFjdGlvbiIsZnVuY3Rpb24oZSl7cmV0dXJuIG4uZW5zdXJlQ2F0YWxvZygib3BlbkFjdGlvbiIpfSk7aC5vbigiR2V0QXR0YWNobWVudHMiLGZ1bmN0aW9uKGUpe3JldHVybiBuLmVuc3VyZUNhdGFsb2coImF0dGFjaG1lbnRzIil9KTtoLm9uKCJHZXREb2NKU0FjdGlvbnMiLGZ1bmN0aW9uKGUpe3JldHVybiBuLmVuc3VyZUNhdGFsb2coImpzQWN0aW9ucyIpfSk7aC5vbigiR2V0UGFnZUpTQWN0aW9ucyIsZnVuY3Rpb24oe3BhZ2VJbmRleDplfSl7cmV0dXJuIG4uZ2V0UGFnZShlKS50aGVuKGU9Pm4uZW5zdXJlKGUsImpzQWN0aW9ucyIpKX0pO2gub24oIkdldEFubm90YXRpb25zQnlUeXBlIixhc3luYyBmdW5jdGlvbih7dHlwZXM6ZSxwYWdlSW5kZXhlc1RvU2tpcDp0fSl7Y29uc3RbYSxyXT1hd2FpdCBQcm9taXNlLmFsbChbbi5lbnN1cmVEb2MoIm51bVBhZ2VzIiksbi5lbnN1cmVEb2MoImFubm90YXRpb25HbG9iYWxzIildKTtpZighcilyZXR1cm4gbnVsbDtjb25zdCBzPVtdLGk9W107bGV0IG89bnVsbDt0cnl7Zm9yKGxldCBsPTAsZj1hO2w8ZjtsKyspaWYoIXQ/LmhhcyhsKSl7aWYoIW8pe289bmV3IFdvcmtlclRhc2soIkdldEFubm90YXRpb25zQnlUeXBlIik7c3RhcnRXb3JrZXJUYXNrKG8pfXMucHVzaChuLmdldFBhZ2UobCkudGhlbihhc3luYyB0PT50JiZ0LmNvbGxlY3RBbm5vdGF0aW9uc0J5VHlwZShoLG8sZSxpLHIpfHxbXSkpfWF3YWl0IFByb21pc2UuYWxsKHMpO3JldHVybihhd2FpdCBQcm9taXNlLmFsbChpKSkuZmlsdGVyKGU9PiEhZSl9ZmluYWxseXtvJiZmaW5pc2hXb3JrZXJUYXNrKG8pfX0pO2gub24oIkdldE91dGxpbmUiLGZ1bmN0aW9uKGUpe3JldHVybiBuLmVuc3VyZUNhdGFsb2coImRvY3VtZW50T3V0bGluZSIpfSk7aC5vbigiR2V0T3B0aW9uYWxDb250ZW50Q29uZmlnIixmdW5jdGlvbihlKXtyZXR1cm4gbi5lbnN1cmVDYXRhbG9nKCJvcHRpb25hbENvbnRlbnRDb25maWciKX0pO2gub24oIkdldFBlcm1pc3Npb25zIixmdW5jdGlvbihlKXtyZXR1cm4gbi5lbnN1cmVDYXRhbG9nKCJwZXJtaXNzaW9ucyIpfSk7aC5vbigiR2V0TWV0YWRhdGEiLGZ1bmN0aW9uKGUpe3JldHVybiBQcm9taXNlLmFsbChbbi5lbnN1cmVEb2MoImRvY3VtZW50SW5mbyIpLG4uZW5zdXJlQ2F0YWxvZygibWV0YWRhdGEiKSxuLmVuc3VyZUNhdGFsb2coImhhc1N0cnVjdFRyZWUiKV0pfSk7aC5vbigiR2V0TWFya0luZm8iLGZ1bmN0aW9uKGUpe3JldHVybiBuLmVuc3VyZUNhdGFsb2coIm1hcmtJbmZvIil9KTtoLm9uKCJHZXREYXRhIixmdW5jdGlvbihlKXtyZXR1cm4gbi5yZXF1ZXN0TG9hZGVkU3RyZWFtKCkudGhlbihlPT5lLmJ5dGVzKX0pO2gub24oIkdldEFubm90YXRpb25zIixmdW5jdGlvbih7cGFnZUluZGV4OmUsaW50ZW50OnR9KXtyZXR1cm4gbi5nZXRQYWdlKGUpLnRoZW4oZnVuY3Rpb24obil7Y29uc3QgYT1uZXcgV29ya2VyVGFzayhgR2V0QW5ub3RhdGlvbnM6IHBhZ2UgJHtlfWApO3N0YXJ0V29ya2VyVGFzayhhKTtyZXR1cm4gbi5nZXRBbm5vdGF0aW9uc0RhdGEoaCxhLHQpLnRoZW4oZT0+e2ZpbmlzaFdvcmtlclRhc2soYSk7cmV0dXJuIGV9LGU9PntmaW5pc2hXb3JrZXJUYXNrKGEpO3Rocm93IGV9KX0pfSk7aC5vbigiR2V0RmllbGRPYmplY3RzIixmdW5jdGlvbihlKXtyZXR1cm4gbi5lbnN1cmVEb2MoImZpZWxkT2JqZWN0cyIpLnRoZW4oZT0+ZT8uYWxsRmllbGRzfHxudWxsKX0pO2gub24oIkhhc0pTQWN0aW9ucyIsZnVuY3Rpb24oZSl7cmV0dXJuIG4uZW5zdXJlRG9jKCJoYXNKU0FjdGlvbnMiKX0pO2gub24oIkdldENhbGN1bGF0aW9uT3JkZXJJZHMiLGZ1bmN0aW9uKGUpe3JldHVybiBuLmVuc3VyZURvYygiY2FsY3VsYXRpb25PcmRlcklkcyIpfSk7aC5vbigiRXh0cmFjdFBhZ2VzIixhc3luYyBmdW5jdGlvbih7cGFnZUluZm9zOmV9KXtpZighZSl7d2FybigiZXh0cmFjdFBhZ2VzOiBub3RoaW5nIHRvIGV4dHJhY3QuIik7cmV0dXJuIG51bGx9QXJyYXkuaXNBcnJheShlKXx8KGU9W2VdKTtsZXQgdD0wO2Zvcihjb25zdCBhIG9mIGUpaWYobnVsbD09PWEuZG9jdW1lbnQpYS5kb2N1bWVudD1uLnBkZkRvY3VtZW50O2Vsc2UgaWYoQXJyYXlCdWZmZXIuaXNWaWV3KGEuZG9jdW1lbnQpKXtjb25zdCBlPW5ldyBMb2NhbFBkZk1hbmFnZXIoe3NvdXJjZTphLmRvY3VtZW50LGRvY0lkOmAke299X2V4dHJhY3RQYWdlc18ke3QrK31gLGhhbmRsZXI6aCxwYXNzd29yZDphLnBhc3N3b3JkPz9udWxsLGV2YWx1YXRvck9wdGlvbnM6T2JqZWN0LmFzc2lnbih7fSxuLmV2YWx1YXRvck9wdGlvbnMpfSk7bGV0IHI9ITEscz0hMDtmb3IoOzspdHJ5e2F3YWl0IGUucmVxdWVzdExvYWRlZFN0cmVhbSgpO2F3YWl0IGUuZW5zdXJlRG9jKCJjaGVja0hlYWRlciIpO2F3YWl0IGUuZW5zdXJlRG9jKCJwYXJzZVN0YXJ0WFJlZiIpO2F3YWl0IGUuZW5zdXJlRG9jKCJwYXJzZSIsW3JdKTticmVha31jYXRjaCh0KXtpZih0IGluc3RhbmNlb2YgWFJlZlBhcnNlRXhjZXB0aW9uKXtpZighMT09PXIpe3I9ITA7Y29udGludWV9cz0hMTt3YXJuKCJleHRyYWN0UGFnZXM6IFhSZWZQYXJzZUV4Y2VwdGlvbi4iKX1lbHNlIGlmKHQgaW5zdGFuY2VvZiBQYXNzd29yZEV4Y2VwdGlvbil7Y29uc3Qgbj1uZXcgV29ya2VyVGFzayhgUGFzc3dvcmRFeGNlcHRpb246IHJlc3BvbnNlICR7dC5jb2RlfWApO3N0YXJ0V29ya2VyVGFzayhuKTt0cnl7Y29uc3R7cGFzc3dvcmQ6bn09YXdhaXQgaC5zZW5kV2l0aFByb21pc2UoIlBhc3N3b3JkUmVxdWVzdCIsdCk7ZS51cGRhdGVQYXNzd29yZChuKX1jYXRjaHtzPSExO3dhcm4oImV4dHJhY3RQYWdlczogaW52YWxpZCBwYXNzd29yZC4iKX1maW5hbGx5e2ZpbmlzaFdvcmtlclRhc2sobil9fWVsc2V7cz0hMTt3YXJuKCJleHRyYWN0UGFnZXM6IGludmFsaWQgZG9jdW1lbnQuIil9aWYoIXMpYnJlYWt9c3x8KGEuZG9jdW1lbnQ9bnVsbCk7aWYoYXdhaXQgZS5lbnN1cmVEb2MoImlzUHVyZVhmYSIpKXthLmRvY3VtZW50PW51bGw7d2FybigiZXh0cmFjdFBhZ2VzIGRvZXMgbm90IHN1cHBvcnQgcHVyZSBYRkEgZG9jdW1lbnRzLiIpfWVsc2UgYS5kb2N1bWVudD1lLnBkZkRvY3VtZW50fWVsc2Ugd2FybigiZXh0cmFjdFBhZ2VzOiBpbnZhbGlkIGRvY3VtZW50LiIpO3RyeXtjb25zdCB0PW5ldyBQREZFZGl0b3I7cmV0dXJuIGF3YWl0IHQuZXh0cmFjdFBhZ2VzKGUpfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoZSk7cmV0dXJuIG51bGx9fSk7aC5vbigiU2F2ZURvY3VtZW50Iixhc3luYyBmdW5jdGlvbih7aXNQdXJlWGZhOmUsbnVtUGFnZXM6dCxhbm5vdGF0aW9uU3RvcmFnZTphLGZpbGVuYW1lOnJ9KXtjb25zdCBzPVtuLnJlcXVlc3RMb2FkZWRTdHJlYW0oKSxuLmVuc3VyZUNhdGFsb2coImFjcm9Gb3JtIiksbi5lbnN1cmVDYXRhbG9nKCJhY3JvRm9ybVJlZiIpLG4uZW5zdXJlRG9jKCJzdGFydFhSZWYiKSxuLmVuc3VyZURvYygieHJlZiIpLG4uZW5zdXJlQ2F0YWxvZygic3RydWN0VHJlZVJvb3QiKV0saT1uZXcgUmVmU2V0Q2FjaGUsbz1bXSxsPWU/bnVsbDpnZXROZXdBbm5vdGF0aW9uc01hcChhKSxbZixjLHUsbSxwLGRdPWF3YWl0IFByb21pc2UuYWxsKHMpLGc9cC50cmFpbGVyLmdldFJhdygiUm9vdCIpfHxudWxsO2xldCBiO2lmKGwpe2Q/YXdhaXQgZC5jYW5VcGRhdGVTdHJ1Y3RUcmVlKHtwZGZNYW5hZ2VyOm4sbmV3QW5ub3RhdGlvbnNCeVBhZ2U6bH0pJiYoYj1kKTphd2FpdCBTdHJ1Y3RUcmVlUm9vdC5jYW5DcmVhdGVTdHJ1Y3R1cmVUcmVlKHtjYXRhbG9nUmVmOmcscGRmTWFuYWdlcjpuLG5ld0Fubm90YXRpb25zQnlQYWdlOmx9KSYmKGI9bnVsbCk7Y29uc3QgZT1Bbm5vdGF0aW9uRmFjdG9yeS5nZW5lcmF0ZUltYWdlcyhhLnZhbHVlcygpLHAsbi5ldmFsdWF0b3JPcHRpb25zLmlzT2Zmc2NyZWVuQ2FudmFzU3VwcG9ydGVkKSx0PXZvaWQgMD09PWI/bzpbXTtmb3IoY29uc3RbYSxyXW9mIGwpdC5wdXNoKG4uZ2V0UGFnZShhKS50aGVuKHQ9Pntjb25zdCBuPW5ldyBXb3JrZXJUYXNrKGBTYXZlIChlZGl0b3IpOiBwYWdlICR7YX1gKTtzdGFydFdvcmtlclRhc2sobik7cmV0dXJuIHQuc2F2ZU5ld0Fubm90YXRpb25zKGgsbixyLGUsaSkuZmluYWxseShmdW5jdGlvbigpe2ZpbmlzaFdvcmtlclRhc2sobil9KX0pKTtudWxsPT09Yj9vLnB1c2goUHJvbWlzZS5hbGwodCkudGhlbihhc3luYygpPT57YXdhaXQgU3RydWN0VHJlZVJvb3QuY3JlYXRlU3RydWN0dXJlVHJlZSh7bmV3QW5ub3RhdGlvbnNCeVBhZ2U6bCx4cmVmOnAsY2F0YWxvZ1JlZjpnLHBkZk1hbmFnZXI6bixjaGFuZ2VzOml9KX0pKTpiJiZvLnB1c2goUHJvbWlzZS5hbGwodCkudGhlbihhc3luYygpPT57YXdhaXQgYi51cGRhdGVTdHJ1Y3R1cmVUcmVlKHtuZXdBbm5vdGF0aW9uc0J5UGFnZTpsLHBkZk1hbmFnZXI6bixjaGFuZ2VzOml9KX0pKX1pZihlKW8ucHVzaChuLmVuc3VyZURvYygic2VyaWFsaXplWGZhRGF0YSIsW2FdKSk7ZWxzZSBmb3IobGV0IGU9MDtlPHQ7ZSsrKW8ucHVzaChuLmdldFBhZ2UoZSkudGhlbihmdW5jdGlvbih0KXtjb25zdCBuPW5ldyBXb3JrZXJUYXNrKGBTYXZlOiBwYWdlICR7ZX1gKTtzdGFydFdvcmtlclRhc2sobik7cmV0dXJuIHQuc2F2ZShoLG4sYSxpKS5maW5hbGx5KGZ1bmN0aW9uKCl7ZmluaXNoV29ya2VyVGFzayhuKX0pfSkpO2NvbnN0IHc9YXdhaXQgUHJvbWlzZS5hbGwobyk7bGV0IGo9bnVsbDtpZihlKXtqPXdbMF07aWYoIWopcmV0dXJuIGYuYnl0ZXN9ZWxzZSBpZigwPT09aS5zaXplKXJldHVybiBmLmJ5dGVzO2NvbnN0IGs9dSYmYyBpbnN0YW5jZW9mIERpY3QmJmkudmFsdWVzKCkuc29tZShlPT5lLm5lZWRBcHBlYXJhbmNlcykseT1jIGluc3RhbmNlb2YgRGljdCYmYy5nZXQoIlhGQSIpfHxudWxsO2xldCBxPW51bGwsdj0hMTtpZihBcnJheS5pc0FycmF5KHkpKXtmb3IobGV0IGU9MCx0PXkubGVuZ3RoO2U8dDtlKz0yKWlmKCJkYXRhc2V0cyI9PT15W2VdKXtxPXlbZSsxXTt2PSEwfW51bGw9PT1xJiYocT1wLmdldE5ld1RlbXBvcmFyeVJlZigpKX1lbHNlIHkmJndhcm4oIlVuc3VwcG9ydGVkIFhGQSB0eXBlLiIpO2xldCBTPU9iamVjdC5jcmVhdGUobnVsbCk7aWYocC50cmFpbGVyKXtjb25zdCBlPW5ldyBNYXAsdD1wLnRyYWlsZXIuZ2V0KCJJbmZvIil8fG51bGw7aWYodCBpbnN0YW5jZW9mIERpY3QpZm9yKGNvbnN0W24sYV1vZiB0KSJzdHJpbmciPT10eXBlb2YgYSYmZS5zZXQobixzdHJpbmdUb1BERlN0cmluZyhhKSk7Uz17cm9vdFJlZjpnLGVuY3J5cHRSZWY6cC50cmFpbGVyLmdldFJhdygiRW5jcnlwdCIpfHxudWxsLG5ld1JlZjpwLmdldE5ld1RlbXBvcmFyeVJlZigpLGluZm9SZWY6cC50cmFpbGVyLmdldFJhdygiSW5mbyIpfHxudWxsLGluZm9NYXA6ZSxmaWxlSWRzOnAudHJhaWxlci5nZXQoIklEIil8fG51bGwsc3RhcnRYUmVmOm0sZmlsZW5hbWU6cn19cmV0dXJuIGluY3JlbWVudGFsVXBkYXRlKHtvcmlnaW5hbERhdGE6Zi5ieXRlcyx4cmVmSW5mbzpTLGNoYW5nZXM6aSx4cmVmOnAsaGFzWGZhOiEheSx4ZmFEYXRhc2V0c1JlZjpxLGhhc1hmYURhdGFzZXRzRW50cnk6dixuZWVkQXBwZWFyYW5jZXM6ayxhY3JvRm9ybVJlZjp1LGFjcm9Gb3JtOmMseGZhRGF0YTpqLHVzZVhyZWZTdHJlYW06aXNEaWN0KHAudG9wRGljdCwiWFJlZiIpfSkuZmluYWxseSgoKT0+e3AucmVzZXROZXdUZW1wb3JhcnlSZWYoKX0pfSk7aC5vbigiR2V0T3BlcmF0b3JMaXN0IixmdW5jdGlvbihlLHQpe2NvbnN0e3BhZ2VJZDphLHBhZ2VJbmRleDpyfT1lO24uZ2V0UGFnZShhKS50aGVuKGZ1bmN0aW9uKG4pe2NvbnN0IGE9bmV3IFdvcmtlclRhc2soYEdldE9wZXJhdG9yTGlzdDogcGFnZSAke3J9YCk7c3RhcnRXb3JrZXJUYXNrKGEpO2NvbnN0IHM9aT49aGU/RGF0ZS5ub3coKTowO24uZ2V0T3BlcmF0b3JMaXN0KHtoYW5kbGVyOmgsc2luazp0LHRhc2s6YSxpbnRlbnQ6ZS5pbnRlbnQsY2FjaGVLZXk6ZS5jYWNoZUtleSxhbm5vdGF0aW9uU3RvcmFnZTplLmFubm90YXRpb25TdG9yYWdlLG1vZGlmaWVkSWRzOmUubW9kaWZpZWRJZHMscGFnZUluZGV4OnJ9KS50aGVuKGZ1bmN0aW9uKGUpe2ZpbmlzaFdvcmtlclRhc2soYSk7cyYmaW5mbyhgcGFnZT0ke3IrMX0gLSBnZXRPcGVyYXRvckxpc3Q6IHRpbWU9JHtEYXRlLm5vdygpLXN9bXMsIGxlbj0ke2UubGVuZ3RofWApO3QuY2xvc2UoKX0sZnVuY3Rpb24oZSl7ZmluaXNoV29ya2VyVGFzayhhKTthLnRlcm1pbmF0ZWR8fHQuZXJyb3IoZSl9KX0pfSk7aC5vbigiR2V0VGV4dENvbnRlbnQiLGZ1bmN0aW9uKGUsdCl7Y29uc3R7cGFnZUlkOmEscGFnZUluZGV4OnIsaW5jbHVkZU1hcmtlZENvbnRlbnQ6cyxkaXNhYmxlTm9ybWFsaXphdGlvbjpvfT1lO24uZ2V0UGFnZShhKS50aGVuKGZ1bmN0aW9uKGUpe2NvbnN0IG49bmV3IFdvcmtlclRhc2soIkdldFRleHRDb250ZW50OiBwYWdlICIrcik7c3RhcnRXb3JrZXJUYXNrKG4pO2NvbnN0IGE9aT49aGU/RGF0ZS5ub3coKTowO2UuZXh0cmFjdFRleHRDb250ZW50KHtoYW5kbGVyOmgsdGFzazpuLHNpbms6dCxpbmNsdWRlTWFya2VkQ29udGVudDpzLGRpc2FibGVOb3JtYWxpemF0aW9uOm99KS50aGVuKGZ1bmN0aW9uKCl7ZmluaXNoV29ya2VyVGFzayhuKTthJiZpbmZvKGBwYWdlPSR7cisxfSAtIGdldFRleHRDb250ZW50OiB0aW1lPWArKERhdGUubm93KCktYSkrIm1zIik7dC5jbG9zZSgpfSxmdW5jdGlvbihlKXtmaW5pc2hXb3JrZXJUYXNrKG4pO24udGVybWluYXRlZHx8dC5lcnJvcihlKX0pfSl9KTtoLm9uKCJHZXRTdHJ1Y3RUcmVlIixmdW5jdGlvbihlKXtyZXR1cm4gbi5nZXRQYWdlKGUucGFnZUluZGV4KS50aGVuKGU9Pm4uZW5zdXJlKGUsImdldFN0cnVjdFRyZWUiKSl9KTtoLm9uKCJGb250RmFsbGJhY2siLGZ1bmN0aW9uKGUpe3JldHVybiBuLmZvbnRGYWxsYmFjayhlLmlkLGgpfSk7aC5vbigiQ2xlYW51cCIsZnVuY3Rpb24oZSl7cmV0dXJuIG4uY2xlYW51cCghMCl9KTtoLm9uKCJUZXJtaW5hdGUiLGZ1bmN0aW9uKGUpe2E9ITA7Y29uc3QgdD1bXTtpZihuKXtuLnRlcm1pbmF0ZShuZXcgQWJvcnRFeGNlcHRpb24oIldvcmtlciB3YXMgdGVybWluYXRlZC4iKSk7Y29uc3QgZT1uLmNsZWFudXAoKTt0LnB1c2goZSk7bj1udWxsfWVsc2UgY2xlYXJHbG9iYWxDYWNoZXMoKTtyPy4obmV3IEFib3J0RXhjZXB0aW9uKCJXb3JrZXIgd2FzIHRlcm1pbmF0ZWQuIikpO2Zvcihjb25zdCBlIG9mIHMpe3QucHVzaChlLmZpbmlzaGVkKTtlLnRlcm1pbmF0ZSgpfXJldHVybiBQcm9taXNlLmFsbCh0KS50aGVuKGZ1bmN0aW9uKCl7aC5kZXN0cm95KCk7aD1udWxsfSl9KTtoLm9uKCJSZWFkeSIsZnVuY3Rpb24odCl7c2V0dXBEb2MoZSk7ZT1udWxsfSk7cmV0dXJuIGN9c3RhdGljIGluaXRpYWxpemVGcm9tUG9ydChlKXtjb25zdCB0PW5ldyBNZXNzYWdlSGFuZGxlcigid29ya2VyIiwibWFpbiIsZSk7dGhpcy5zZXR1cCh0LGUpO3Quc2VuZCgicmVhZHkiLG51bGwpfX1nbG9iYWxUaGlzLnBkZmpzV29ya2VyPXtXb3JrZXJNZXNzYWdlSGFuZGxlcn07ZXhwb3J0e1dvcmtlck1lc3NhZ2VIYW5kbGVyfTs=";
|
|
2
|
+
export {
|
|
3
|
+
Z as default
|
|
4
|
+
};
|